Features, Supports and Changes in MAME ====================================== 0.271 - New games: Chaoji Dou Dizhu Jiaqiang Ban (S300CN), Chaoji Dou Dizhu Liang Fu Pai (V109CN), Chaoji Tuolaji Jiaqiang Ban (V206CN), Long Hu Zhengba (China, VS105M, set 1), Long Hu Zhengba 4 Dui Hua Ban (V203CN), Long Hu Zhengba III Shengji Ban (V300C5), Mingxing San Que Yi (China, V201CN) and Miracle Seven - Heaven's Gate (Japan, v1.0.2) - New Working games: Bare Knuckle II (bootleg of Mega Drive version), Crazy Bugs (V103JP), Fever 13 (Japan, v1.3), Kart Duel (World, KTD2/VER.A), Kart Duel (Japan, KTD1/VER.A) and Poker & 21 - New Non-Working games: Bullion 2, Carnival (Astro Corp., US.004.D), Cashline, Diamond Heart (v1.0), Double Hearts, Dynasty (Ver. 1.02), Fisherman Battle (Japan, ver 1.03), Jungle King (V302US), La Maquina del Tiempo, Multistar 14, Multistar 5, Mystery J & B (V1.3G), Mystic Jaguar, Santa Claus (IN.001.07.A), Sunset Riders / Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive versions), Super 70's (V100US), Super Cherry Master (V5.2), Super El Dorado (Ver. 1.04H), Triple Jack (V1.6G), Triple Play (M0000230, Spanish) and Wanpaku Pirates (Japan, ver 1.00) - New clones: 1945k III (Promat license, OPCX1 PCB), Chaoji Da Manguan II (China, V754C, set 2), Chaoji Dou Dizhu (V217CN), Chaoji Dou Dizhu (V219CN), Crazy Balls (Bontempi, set 2), Discs of Tron (Environmental, prototype, 8/9/83), Jungle King (V103A), Labyrinth Runner (World Ver. F), Last Duel (Modular System), Long Hu Zhengba (China, VS105M, set 2), Long Hu Zhengba III (V106C5M), Metal Black (World, single PCB), Mirax (set 3), Power Spikes (Modular System), Race On! (Japan, RO1 Ver. B), Raiden II (Great Britain), Return of the Invaders (Video Dens bootleg, without MCU), Star Rider (PROTO 3), Super Cherry Master (V1.2), Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver OAA) and Twin Cobra (Modular System) - New AGEMAME games: Aladdin's Cave (Maygay M2, SW8-323 SW8-299), Aladdin's Cave (Maygay M2, SW8-322 SW8-298), Aladdin's Cave (Maygay M2, SW8-298 SW8-144), Big Break (Maygay M2, SW6-656 SW6-635), Big Break (Maygay M2, SW6-657 SW6-636), Bullion Blox (BWB) (BVM_____.1__) (MPU4 Video), Each Way Gambler (Maygay M2, SA6_128 SA6_114), Each Way Gambler (Maygay M2, SA6_129 SA6_115), Each Way Gambler (Maygay M2, SA6_130 SA6_115), Each Way Gambler (Maygay M2, SA6_281 NONE), Each Way Gambler (Maygay M2, SA6_282 NONE), Each Way Gambler (Maygay M2, SA6_283 NONE), Each Way Gambler (Maygay M2, SA6_284 NONE), Guinness Book Of Records (Maygay M2, SW8-146 SW7-360), Guinness Book Of Records (Maygay M2, SW8-147 SW7-361), Jack & Vera (Maygay M2, set 2), Jack & Vera (Maygay M2, set 3), Jack & Vera (Maygay M2, set 4), Krypton Factor (Maygay M2, set 2), London Underground (Maygay M2, SW8-233 SW8-155), Pinball Wizard (Maygay M2, SW8-099 SW8149), Pinball Wizard (Maygay M2, SW8-099 SW8149), Risk (Maygay M2, SW9-025 SW9-023), Risk (Maygay M2, SW9-024 SW9-026) and Super Clue (Maygay M2, SW8-153 SW8-131). - New drivers: bullion2.cpp, cashline.cpp, cirsa2080606.cpp, cle68k.cpp, dyna_d0703.cpp, igs_m027_023vid.cpp, lastduel_ms.cpp, pspikes_ms.cpp and twincobr_ms.cpp - New devices: atari_trakball, atmel_29c020, f2mc16_adc, f2mc16_clock_generator, f2mc16_intc, f2mc16_port, f2mc16_ppg, f2mc16_reload_timer, f2mc16_uart, hd38870, hd44840, hd44848, hd44860, hd44868, igs023, jvs_port, mb90f574, md8412b, namco_amc, namco_asca1, namco_asca3, namco_asca3a, namco_asca5, namco_c77, namco_csz1, namco_cyberlead, namco_cyberlead_led, namco_cyberleada, namco_emio102, namco_empri101, namco_fca10, namco_fca11, namco_fcb, namco_tssio, namco_xmiu1 and vpx3220a - CPU . DEC T11: VM1 does not use RMW bus transaction for MOV and MOVB insns (fixes writing to floppy) (cpu\t11\t11ops.hxx) . Hitachi H8: Disable logging by default & don't log debugger reads. Only start sending data via DMA if transmitter is enabled. Clear TEND when sending data via DMA. TDRE, RDRF, ORER, PER and FER flags can be cleared to 0 only if they have first been read while set to 1. Only set TEND when there is no more data to send. Receiver is started only on high to low rxd in asynchronous mode, when receiving and sending in synchronous mode when data is sent, or continuously when receiving without sending in synchronous mode. Set rx status to idle when stopping clock in rx_async_step(). Removed double invert when calculating parity in rx_async_step(). Removed redundant check for synchronous mode in rx_async_step() (h8\h8_sci.cpp). . Hitachi HD44801: Set page start to 0x3f (hmcs40\hmcs40d.cpp) . IBM PowerPC: Fixed QNan check. a) All constants were one digit too short. b) The payload was always expected to be 0 (which is just a special case qnan (Real Indefinite) though) (powerpc\ppccom.cpp). . Intel 4004: Don't log messages about NOP aliases for the 4004 (the Linux/4004 firmware uses these for instrumentation points) (mcs40\mcs40.cpp) . Motorola MC68000: Renamed m_instruction_restart to m_can_instruction_restart to clearly distinguish from m_restart_instruction . Motorola MC68000 FPU: Added FPU instructions 'FETOX', 'FETOXM1', 'FTWOTOX' and 'FTENTOX' (m68000\m68kfpu.cpp, softfloat3\bochs_ext\f2xm1.c, softfloat3\bochs_ext\softfloat3_ext.h) . Motorola MC68030: Added gdbstub support . Motorola MC68030/40: Don't emulate byte smearing for the 68040 and fixed disabling the FPU for the 68030 . NEC V25: Added stubs for serial interface registers (nec\v25.cpp). Logging fixes (nec\v25sfr.cpp). - DEVICE . Flash ROM: Added ATMEL_29C020 and support for SDP & added missing state save registrations (machine\intelfsh.cpp). . Floppy . Removed #include "screen.h" (imagedev\floppy.h) . Don't enable_transfer after tc. Indicate ready status in polling irq sense. Reset st0 when starting a seek and fail if drive isn't ready (machine\upd765.cpp). . Added read 86f image support (formats\86f_dsk.cpp). Different workaround for (unused) BIG_ENDIAN enum (formats\86f_dsk.h). . Fujitsu Micro F2MC-16: Created devices for the onboard analogue to digital converter, clock generator, interrupt controller/Extended intelligent I/O service, I/O port, Programmable Pulse Generator, reload timer and UART. CPU core exposes the RMW line for onboard devices. Log messages will contain the address of the start of the instruction, rather than the next byte the CPU is about to fetch. Added INT9/INT addr16 & INT addr24 software interrupt instructions. Fixed INCW @RWx & DECW @RWx instruction length. Added missing fetch of immediate value in MOV @RWx + RW7, #imm8. . Intel 82371 southbridge: Reduced PIT range. i82371sb_isa_device can now redirect their IRQs (machine\i82371sb.cpp). . MC68681 DUART/SC28C94 QUART: Unambiguous xr68c681 control blocks. 'SC28C94 QUART' has 64 registers (machine\mc68681.cpp). . National Semiconductor NSC810 RAM-I/O-Timer: Save internal state (machine\nsc810.cpp) . Real Time Clock interface: Devirtualize set_current_time and cleaning up misuse (emu\dirtc.h) . SiS 85C496/497 chipset: sis85c496_host_device can now redirect their IRQs (machine\sis85c496.cpp) . Timekeeper: Suppress side effects for debugger reads . Z180 ASCI: Fixed calculation of framing and parity errors (z180\z180asci.cpp) - SOUND . K054539 ADPCM: Correct reverb RAM size and addressing. Top address bit for the 32K RAM is bit 16, rather than the intuitive bit 14. - asteroid.cpp: Set the watchdog frequency. Note: This seems to have been omitted for some reason. - bestleag.cpp: Cleanups - changyu.cpp: Implemented changyu2 MCU communication well enough to get attract mode working with music. Added inputs for both games. - cidelsa.cpp: Verified clocks for Cidelsa's Destroyer and Altair (efo\cidelsa.h) - dec0.cpp: Use input merger device for 6502 irq - esd16.cpp: Cleaned up code. Use appropriately sized integers for tilemap color values. Reduced literal tag usage, improved variable names and use C++ line comments. - fuukifg2/3.cpp: Init palette ram to black (nomore white flash at boot) [hap]. - gkigt.cpp . Cleanup video functions, hookup debug terminal as default. 'SC28C94 QUART' has 64 registers (machine\mc68681.cpp). Removed most QUART2 overlay hacks. . Added debug notes and preliminary background layer. Partial decoding of CG ROM regions. Hookup OPLL, irq3 ties with the other QUART. Fixed release years for ms3 and ms72c. . Suppress SENET readback for now, fixed base video ROM banks and documented workaround for i960 init crash. - igs_m027.cpp . Added memory clear switch to clear memory contents when power is removed (hard reset with the switch on to clear NVRAM) . Fixed title for Long Hu Da Manguan Duizhan Jiaqiang Ban (V400C3M) . Use mnemonic short names for clones. Added version numbers from service mode or bookkeeping to descriptions, and added comments where displayed version number doesn't match what was already in the description. . Confirmed I/O and DIP switches match other games. Added some notes about DIP switch settings. . Trojaned internal ROMs for cjddzlf, lhzb3106c5m and lhzb3sjb. . Reduced repetition in inputs a little, made conventions a bit more consistent across files and correct a few comments. . Confirmed some more internal ROM dumps. Added notes about game controls. Hide inactive inputs for more games. - igs_m027xa.cpp . Dumped internal CPU ROM for clone Crazy Bugs (V103JP). Promoted game to working. Fixed inputs for clone Crazy Bugs (V103JP). Got rid of hopper from Crazy Bugs (V103JP) since there appears to be no way to use it and exposed hopper switch as a user input so it can still be tested. Got rid of third bank of DIP switches from Crazy Bugs (V103JP) as comments indicate it isn't physically present (although it is displayed in the input test). . Use mnemonic short names for clones - igs017.cpp . Dumped GFX ROM for clone Tarzan Chuang Tian Guan (China, V110) . Fixed DIP switches and cleaned/improved inputs for Chaoji Da Manguan II, Manguan Caishen, Manguan Daheng, Shuang Long Qiang Zhu 2, Tian Jiang Shen Bing and Tarzan Chuang Tian Guan. Correct Long Hu Zhengba 2 DIP switch settings and cleaned up inputs. . Reduced repetition in inputs a little, made conventions a bit more consistent across files and correct a few comments. . Use slots input types for Tarzan Chuang Tian Guan in "joystick" mode to make playing slightly less confusing. Removed mahjong keyboard row that isn't read from Tarzan Chuang Tian Guan. . Added notes about game controls - lwings.cpp: Hooked up sound CPU reset control for Trojan and Avengers. Original Trojan schematic shows that the main CPU controls the sound CPU reset line. - megadriv_acbl.cpp . Hook up PIC MCU to Bare Knuckle II (bootleg of Mega Drive version). Promoted game to working. TODO: Unknown inputs to Port B of the emulated PIC. MCU clock frequency. There is only a 50 MHz XTAL on the PCB, are the other clocks correct? . Sorted DIP switch options. Order coinage options from least to most generous, put off to the left of on. - midvunit.cpp: Fixed range error in "Galil" wheel controller emulation (midway\midvunit.h) - mosaic.cpp: Minor cleanups. Suppress side effects for debugger reads. Use more appropriate types for some integer variables. Use generic graphics decoding layouts, made CPU ROM region size match size of ROM. - multfish.cpp: Minor cleanups: Use more appropriate types for integer variables and made some variables constant. Allocate video RAM on start and reduced run-time tag lookups. Improved some function and variable names and reduced use of static functions and preprocessor macros. Cleaned up spacing and converted single-line comments to C++ line comments. - multfish_boot.cpp: Converted single-line comments to C++ line comments - namcos12.cpp and namcos23.cpp: Added a new modular JVS framework. New devices added: Namco Cyber Lead I/O LED(I/O) PCB 8699014200, Namco Cyber Lead I/O LED(I/O) PCB 8699014200 (compatibility patch), Namco Cyber Lead I/O LED(LED) PCB 8699014500, Namco AMC PCB (Extra I/O,JPN,Ver1.10), Namco ASCA-1 (Multipurpose I/O,JPN,Ver2.00), Namco ASCA-3 (Multipurpose + Rotary Encoder,JPN,Ver2.04), Namco ASCA-3 (Multipurpose + Rotary Encoder,JPN,Ver2.02), Namco ASCA-5 (Multipurpose,JPN,Ver2.09), Namco CSZ1 MIU-I/O (GUN-EXTENTION,JPN,Ver2.05), Namco EM I/O1-02 (Techno-Drive I/O,JPN&EXP,Ver2.00), Namco TSS-I/O (GUN-EXTENTION,JPN,Ver2.02) and Namco XMIU1 TSS-I/O (GUN-EXTENTION,JPN,Ver2.11,Ver2.12). Note: The Cyber Lead compatibility patch is required because later versions aren't. Namco FCA-1 (Multipurpose + Rotary Encoder,JPN,Ver1.00), Namco FCA-1 (Multipurpose + Rotary Encoder,JPN,Ver1.01) and Namco FCB (TouchPanel&Multipurpose,JPN,Ver1.02). Note: These use ASCA3 patched to return the correct ID string as the full ROM is yet to be extracted. Namco EM Pri1-01. Note: The printer for Techno Drive is HLE'd only enough to make the game happy. - namcos12.cpp . Promoted Kart Duel (World, KTD2/VER.A) and clone (Japan, KTD1/VER.A) to working (ID 08867) . Added Namco C77 CPU (custom H8) . Converted Namco System 12 to allow JVS or JAMMA in each game. See src\devices\bus\jvs\cyberlead.cpp for list of games that support Namco Cyber Lead cabinet animations. Moved CDXA documentation and memory map into it's source file, converted the shared memory to 16bit on the PlayStation side and acknowledge the interrupt correctly. Converted to logmacro.h. Setup analogue inputs to match the games defaults, except Kart Duel because the defaults seem impossible to achieve. Made set names and formatting consistent. . Added Techno Drive LED artwork. Lower analog controls keydelta for Techno Drive. - namcos23.cpp . Significant improvements. More games boot and are playable, albeit with glitchy graphics at times. Fixes Race On causes MAME to freeze after self-test (ID 08924). . Increased timeout in namco_csz1 ROM to stop it timing out, the H8 is either running too fast or the SUB CPU is running too slow (jvs\namcoio.cpp). . Configured Crisis Zone gun to match game defaults & default to namco_csz1 JVS I/O board. Stop motor error in Crisis Zone test mode . Removed texture_enabled flag, it caused missing graphics so this bit must have a different meaning. Reset poly counts each frame to prevent trailing graphics and MAME crashing when holding INS. - pgm.cpp: Removed unneeded trampoline (igs\pgm.cpp). Fixed some regressions (igs\pgmprot_igs027a_type1/3.cpp). - sigmab98.cpp: Fixed regression with hopper motor. Fixes all games using the Sammy Medal BIOS set except tdoboon: Games return "Hopper Overrun" error upon exiting service menu after backup RAM initialization (ID 08941). - taito_f3.cpp: Added TODO note to use common TC0640FIO device - tecmo.cpp: Reduced literal tags and cleaned up code. Use I/O port array finder for DIP switches, made some variables const. Use C++ line comments for single-line comments and added notes. - toaplan2.cpp: Lower sound volume because of distortion - warpwarp.cpp: Update sound stream before volume decay (namco\warpwarp_a.cpp and namco\geebee.cpp) - wpc_s.cpp: Correct rom region for some sets. Fixes corv_la1, corv_lx2, jm_05r, nf_08x and nf_10f with Fatal Error on emulation start (ID 08945). - AGEMAME: Split the maygayew.cpp 'altrevs' in proper clone sets - Alien Command: Driver cleanups. Port over cischeat_draw_sprites. - Champion Poker 2: Verified dump with another PCB - D-Day (Jaleco set 1): Hookup i8257 in place of custom code - Fever 13: Promoted game to working - Mahjong Senpu . Cleaned up code: Use palette_device handlers for palette. Correct video RAM width and changed to allocate on start. Constrain screen update to clipping rectangle. Fixed input matrix reading. Reduced literal tags, changed logging to use logerror and made come variables const. Reduced duplication and improved ROM region names. Added notes about languages for in-game text and voice samples. Use C++ line comments for single-line comments. . Fixed I/O and DIP switch settings. This makes it possible to complete a game with either mahjong keyboard or joystick controls. - Mirax: Minor cleanups. Use more appropriate types for some variables. Simplified graphics ROM decoding. Reduced literal tags, made some variables const, improved ROM region and variable names. - Moon Light (Inder): Dumped ROMs from "bonus expansion board" used by Moon Light. This board is used for driving lamps. It is described in the manual and schematics. - New York! New York!: Added DAC enable bit - Operation Wolf 3: Dumped unprotected PALs - Poker & 21: Promoted game to working - PT Reach Mahjong: M14 driver cleanup - R2D Tank: Removed unneeded trampoline - Saboten Bombers: Fixed clone Cactus (bootleg of Saboten Bombers) causes MAME crash (ID 08944) - Skins Game: Removed unused leftover - Snooker 10: Identified manufacturer for clone Ten Balls (Ver 1.05), using original program ROM. - Space Invaders: Changed clones Jatre Specter (set 1/2) to licensed. As described in MT 08149, Jatre Specter was licensed by Taito. - Task Force Harrier: Hook up MCU for clone Task Force Harrier (Lettering bootleg). Test mode can now be accessed. - Yizhi Xiangqi: Fixed GFX decoding, tilemap and screen size. - Fixed rom names in igs017.cpp, model2.cpp and snookr10.cpp - Description changes of 999, Acchi Muite Hoi Battle (Japan, ver 1.04), Aka Mahjong (Double Bet, ver 1 16), Aladdin's Cave (Maygay M2, SW7-536 SW7-465), Aladdin (bootleg of Mega Drive version), Alien Command (v2.1), Bare Knuckle (scrambled bootleg of Mega Drive version), Bare Knuckle II (scrambled bootleg of Mega Drive version), Bare Knuckle III (bootleg of Mega Drive version), Bare Knuckle III (scrambled bootleg of Mega Drive version), Bare Knuckle III / Sunset Riders (scrambled bootleg of Mega Drive versions), Big Break (Maygay M2, SW6-618 SW6-601), Boo Boo Donpatchi (Japan, ver 1.01), Bullion Blox (BWB) (BV_1P___.2__) (MPU4 Video), Bullion Blox (BWB) (BV_50___.2__) (MPU4 Video), Bullion Blox (BWB) (Datapak) (BV_1P___.2__) (MPU4 Video), Bullion Blox (BWB) (Datapak) (BV_50___.2__) (MPU4 Video), Chaoji Da Manguan II (China, V754C, set 1), Chaoji Dou Dizhu (V215CN), Chess Challenge II (ver. 1445A), Crazy Balls (Bontempi, set 1), Docchi Fighter (Japan, ver 1.02), Each Way Gambler (Maygay M2, SA6_127 SA6_113), Fruit Paradise (V214US), Guinness Book Of Records (Maygay M2, SW7-235 SW7-240), Jack & Vera (Maygay M2, set 1), Krypton Factor (Maygay M2, set 1), London Underground (Maygay M2, SW8-232 SW8-154), Long Hu Da Manguan (V102C3M), Long Hu Da Manguan Duizhan Jiaqiang Ban (V400C3M), Long Hu Zhengba 4 (V104CN), Long Hu Zhengba III (V400CN), Long Teng Hu Yao Duizhan Jiaqiang Ban (S104CN), Mahjong Senpu (Japan), Maque Wangchao / Chaoji Da Manguan 2 - Jiaqiang Ban (China, V100C), Mayo no 21, Mogu Mogu Hammer (Japan, ver 1.01), Mortal Kombat 3 (scrambled bootleg of Mega Drive version), Pinball Wizard (Maygay M2, SW8-098 SW8148), Que Long Gaoshou (S501CN), Return of the Invaders (bootleg, without MCU, set 1), Return of the Invaders (bootleg, without MCU, set 2), Return of the Invaders (bootleg, without MCU, set 3), Return of the Invaders (bootleg, with MCU), Risk (Maygay M2, SW7-614 SW7-461), Shippe Champion (Japan, ver 1.02), Stadium Cross (World, linkable), Star Rider (REV 1), Sunset Riders (scrambled bootleg of Mega Drive version), Super Clue (Maygay M2, SW8-152 SW8-130), Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive version), Wan Wan Dash (Japan, ver 1.01), Zenigata Ponta (Japan, ver 1.02) and Zhongguo Chu Da D (V102C). - Dipswitch fixes in funtech.cpp, gkigt.cpp, igs017.cpp, igs_m027.cpp, igs_m027xa.cpp and megadriv_acbl.cpp - Renamed (cjddz) to (cjddz215cn), (crzybugsj) to (crzybugs103jp), (crzybugsb) to (crzybugs200us), (crzybugsa) to (crzybugs202us), (fgtlayerj) to (fgtlayerja), (fruitpara) to (fruitpar206us), (haunthiga) to (haunthig101us), (kartduelj) to (kartduelja), (lthy) to (lthyp), (mgzza) to (mgzz100cn), (mrdrillrj) to (mrdrillrja2), (oceanpara) to (oceanpar101us), (olympic5a) to (olympic5107us), (soulclbr) to (soulclbrac), (soulclbra) to (soulclbr), (soulclbrja) to (soulclbrja2), (tektagtc1) to (tektagtc1a), (tektagtja) to (tektagtja3), (tenkomorja) to (tenkomorja1), (tripfevb) to (tripfev105us), (tripfeva) to (tripfev107us) and (unkwht) to (yizhix). - MAME . VIDEO RENDERING SYSTEM: Always translate coordinates if container is found (emu\render.cpp). Fixes Touch drag gestures that leave the window do not behave correctly. The menu jumps to an unexpected position when the touch point is outside the window. . MEMORY SYSTEM: Allow ioport finders in portr/w/rw. Converted a number of drivers to use ioport finders in the memory map. This is not entirely gratuitous. The idea is to ensure all the ports are in the class, so that eventually ioport finders become ioport creators. The ultimate aim is to C++-ify port descriptions which would be made way nicer by getting rid of the need for PORT_START (emu\addrmap.h). . DEVICE: Improved stop bit handling. Fixes bytes are read too slow in serial emulation. Never check more than one stop bit on reception. Don't add an extra stop bit on transmission. Got rid of the per-instance parity lookup table (emu\diserial.cpp). . INPUT . Fixed deadlock issue with joystick (removed reset() call during process_event) (input\input_sdl.cpp) . Added piano keyboard definitions and automatic names (emu\ioport.cpp) . Improved validation of DIP switch locations. Treat an empty switch name as an error. Treat a non-positive switch number as an error. Also allocate fewer temporary strings (emu\ioport.cpp). . Made syntax for configuring callbacks more consistent. You now use FUNC or NAME to configure port field callbacks, like you would when configuring other kinds of callbacks. This has a number of benefits: No need to remember different syntax for port field callbacks and more approachable for new contributors. May use function templates with multiple arugments using NAME((&...)) syntax without resorting to another layer of macros. May use non-member functions on the odd chance it's useful. More natural syntax for referring to member functions (emu\ioport.h). . UI . Allow pressing UI Clear to restore default pointer timeout settings (ui\ui.cpp and ui\videoopt.cpp) . Don't ignore character input when no pointer is active (ui\selmenu.cpp). Handle menus resetting items from custom pointer handlers better (ui\menu.cpp). . CHD/CHDMAN . Made some APIs return errors rather than throwing exceptions (util\chd.cpp and util\chdcodec.cpp) . More API changes: Have metadata_find return std::error_condition instead of throwing an exception. Replaced the is_XXX predicates with check_is_XXX methods that return a std::error_condition, enabling improved error reporting for cdrom_image_device. Retain read error information in chd_file_compressor. Make a bunch of methods noexcept (util\chd.cpp). . Throw errors when examining metadata to determine compression defaults (tools\chdman.cpp) . Made a few more member functions return error conditions. Also mark error paths as unexpected to optimise against them (util\chd.cpp). . Added a safer way to let codecs do special stuff with hunks (util\chd.cpp and util\chdcodec.cpp) . Improved notes about DirectX SDK and added a link in compiling instructions. Also fixed typo "SDL" in place of "SDK" (docs\source\initialsetup\compilingmame.rst). . Consolidated drivers into single files (fuukifg2.cpp, supbtime.cpp) - Compiling . Added ATTR_COLD to common lifecycle methods for many files in src\mame and src\devices . Use qmake to query Qt libexec directory to find moc (osd\modules.lua) . Upgrade checkout and upload-artifacts actions (github\workflows\*) - Debugger . Clean up #includes a bit (emu\debug and osd\modules\debugger\qt) 0.270 - New games: Aka Mahjong (Double Bet) and Triple Slot (V200VE) - New Working games: Chaoji Dou Dizhu, Crazy Bugs (V200US), Crazy Bugs (V202US), Crazy Bugs (V204US), Fruit Paradise (V206US), Fruit Paradise (V214), Jungle King 2002 (V209US), Long Hu Da Manguan, Long Hu Da Manguan Plus, Long Hu Zhengba III, Long Hu Zhengba 4, Long Teng Hu Yue, Manguan Zhizun (V100CN), Manguan Zhizun (V101CN), Manguan Caishen 3 (V101CN), Ocean Paradise (V101US), Ocean Paradise (V105US), Que Long Gaoshou, Shuang Long Qiang Zhu 3 (China, VS107C) and Zhongguo Chu Da D. - New Non-Working games: Boo Boo Donpatchi, Cherry Bonus V Five (V1.3), Cherry Master 2005 (Ver. 1.10U), Countertop Champion 2 (ver 2.11), Double 8 Line, Fever 13 (Japan, v1.3), Halloween Party (US.23.A), Jack's Venture - Inca Treasure, Lucky V Line, Magical Kengo, Penguin Party, Reel Magic Turbo Play and Triple Slot (V200VE) - New clones: Automat (bootleg of Robocop, Modular System), Cherry Bonus III (ver.1.40, set 6), Cherry Master 2005 (Ver. 0.14H), Cherry Master 2005 (Ver. 1.02U), Diet Go Go (Europe v1.1 1992.09.26, set 1), Fruit Paradise (V206US), Lunar Rescue (Artic bootleg), Mushiking The King Of Beetles - Mushiking IV / V / VI (Taiwan), New Lucky 8 Lines (set 12, W-4, encrypted), P-47 - The Freedom Fighter (World), Super Cherry Master Plus (V1.0U), Triple Fever (V105US), Triple Fever (V108US) and Turbo PK (Ver 2.3B2, encrypted) - New drivers: champ2.cpp, dyna_d0404.cpp, filetto.cpp, hummer.cpp, syvg.cpp and tetriskr.cpp - New devices: floppy_3_dsqd, floppy_3_dssd, floppy_3_sssd, igs027a, igs_xa_ics_sound, igs_xa_subcpu and neon250 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://youtu.be/7pkx19m02x4 - CPU . ARM7: Added interrupt helpers, hid details from most clients. Moved input line and state item numbers into class declaration so most users don't need the internal header. Added callbacks so run to next interrupt works in the debugger. Added helpers for SoCs that generate effective FIQ/IRQ signals with and onboard interrupt controller. . Hitachi H8: Put register list enum under public (h8\h8.h) . NEC V2x/V3x: Don't log message on bus lock by default (nec\nec.cpp and v25.cpp) . Philips MX10EX: Implemented add with indexed addressing mode for source. Used by clone Triple Fever (V105US) microcontroller program. The game no longer causes a fatal error, but hangs instead (cpu\xa\xa_ops.cpp). . Texas Instruments TMS34020: Implemented TMS34020 cvdxyl_b instruction. Used by Atronic gambling systems (tms34010\34010ops.hxx). . Toshiba TMP90xxx/TMP91640: Small spacing cleanup and removed execute_burn altogether (renamed but keeping it in z180 after seeing TODO note) (tlcs90\tlcs90.cpp). Moved too generic irq enum to class (tlcs90\tlcs90.h). . Toshiba TMP95C06x: Replaced a number of preprocessor macro constants with enum and constexpr. Use callback arrays and member function templates to simplify I/O port handling (tlcs900\tlcs900.cpp). . Zilog Z80 . Changed PAIR to PAIR16 (all those registers are 16bit) (z80\z80.h). Moved logmacro stuff to C++ files so subdevices can add their own logging if they want (z80\z80.inc). . Removed identical local copy of z80.inc (z80\r800.cpp). Added m_ea/m_rtemp to savestates (z80\z80.cpp). Moved nsc800 device to its own file (z80\nsc800.cpp). . Removed Z80 boguswait pin (tried to fix (MESS) super6 properly but no luck). Use LOGMASKED instead of a macro for each log type. - SOUND . DCS/2 Audio xxxx: Got rid of unused memory share (fixes mismatched width warning for DCS Denver) (shared\dcs.cpp) . SSi TSI S14001A: Level triggered 1-bit handler does not make sense. Removed overloaded set_clock. - DEVICE . Floppy . Floppy hard-sector support. Mix of Eric Anderson's and Mark Gallager's patches. Removal of the flux screen experiment. Removal of the unused get_pos(). . Be more permissive about allowing double-sided images in single-sided drives (formats\d88_dsk.cpp). Relax track_count check to a warning (formats\d88_dsk.cpp). . Use standard drives for hard-sectored systems. Added single-density 3" drive types. Added 3-inch double-sided quad-density format (imagedev\floppy.cpp) . Don't bail immediately when a sector address crc failure fixes ea interlock copy pro (machine\upd765.cpp) . MOS 6551 ACIA: Misc fixes. Suppress receiver full and transmitter empty IRQs when disabled by command write. Added address map for future use. Correct pin label on diagram (machine\mos6551.cpp). . Motorola MC6845 CRTC: Lift horizontal display and mode control from being zeroed in device_reset. Fixes (MESS) bml3 getting stuck on soft resets. . Samsung S3C24xx: Workaround for array out of bounds compiler warning (machine\s3c24xx.hxx) . Ticket Dispenser: Get device configuration constants out of the global namespace. Changed ticket MOTOR_ACTIVE_LOW and STATUS_ACTIVE_LOW to HIGH. Removed motor/status_active setters (machine\ticket.cpp). . VideoLogic PowerVR Neon: Added 'VideoLogic PowerVR Neon 250' stub - amuzy.cpp: Roms u2/u3 are OKI ADPCM roms, fixed rom loading. - atarisy2.cpp: Changed some ioport tag lookups to portr and fixed conflict between PORT_SERVICE and IPT_SERVICE - atronic.cpp: Implemented TMS34020 cvdxyl_b instruction. Used by Atronic gambling systems (tms34010\34010ops.hxx). - bombjack.cpp: Removed BIT(v, 0, n), just use a mask and re-add enters after comment block - changyu.cpp: Added PSG to sound CPU memory map. When the system writes 21 to 0x0c, an alarm sounds. - filetto.cpp and tetriskr.cpp: Splitted driver pc\pcxt.cpp into filetto.cpp and tetriskr.cpp. Fine tune Filetto um5100 pitch frequency. - igs_fear.cpp: Hooked up IGS027A GPIO callbacks properly and improved DIP switch labels - igs_fear.cpp, igs_m027.cpp, igs_m027_link.cpp, igs_m027xa.cpp and pgm.cpp . Fixed a number of places interpreting ROM as non-native width. Removed literal ROM region lengths (igs\pgmcrypt.cpp). . Removed obsolete lhzb3_decrypt and lhdmgp_decrypt. Changed some functions to make it clearer that keystream is generated from address. Got rid of literal ROM lengths from decryption functions for igs\igs_fear.cpp games (igs\pgmcrypt.cpp). . Use uploaded XOR tables where available (igs\pgmcrypt.cpp) . Decouple 8255 PPI device from igs017_igs031 emulation and give that custom device its own input ports. Privatize some more stuff (igs\igs017_igs031.cpp). . Started encapsulating IGS 027A onboard peripherals from igs_fear.cpp, igs_m027.cpp and igs_m027xa.cpp (igs\igs027a.cpp). Added 5-bit output port. Correct timer interval calculation. Fixes slowdown in jking02. Added output port, and flagged as having imperfect timing as confidence in timers is still low. Slight simplification. Moved presumed onboard RAM and possible FIQ enable into the device (igs\igs027a.cpp). . Consolidated MCU interface logic from igs_fear.cpp and igs_m027xa.cpp (igs\xamcu.cpp). Updated system flags. Adjusted XA MCU communication and interrupts. Slight simplification (igs\xamcu.cpp). - igs_m027.cpp . Promoted games to working: Chaoji Dou Dizhu, Fruit Paradise (V206US), Fruit Paradise (V214), Jungle King 2002 (V209US), Long Hu Da Manguan, Long Hu Da Manguan Plus, Long Hu Zhengba 4, Long Hu Zhengba III, Long Teng Hu Yue, Manguan Caishen 3 (V101CN), Manguan Zhizun (V100CN), Manguan Zhizun (V101CN), Ocean Paradise (V101US), Ocean Paradise (V105US), Que Long Gaoshou, Shuang Long Qiang Zhu 3 (China, VS107C) and Zhongguo Chu Da D. . Added internal IGS027A ROM dumps for chessc2, cjddz, extradrw, lhzb4, oceanpar, oceanpara and tripfev. . Implemented dual 128KiB Oki sample banks for Chaoji Dou Dizhu. Use uploaded XOR table. Use transliterated title. . Patch out 'Chess Challenge II' startup checks to aid in verifying decryption. Added enough inputs to make the game playable. . Added more RAM for Extra Draw. Fixed graphics loading and decoding. Changed year to 2001. Improved ROM labels and added note about additional 8255 PIA. Added second 8255 PPI. Second PPI is installed in memory map, but no I/O connected to it yet. . Fixed decryption for Fruit Paradise. Hooked up I/O, sound banking and added layout. . Improved Jungle King 2002 inputs. Identified the inputs required to play and navigate the setup menus. Filled in DIP switches shown in service mode (haven't tested that all of them do what the name suggests). Added support for 36+10 wiring option and clickable layout. . Hooked up mahjong controls for Long Hu Da Man Guan. Fixed DIP switches. Only two banks of 8 switches connected directly to PPI ports. Filled in remaining settings. Added inputs for clone Long Hu Da Manguan Plus. Added preliminary sound banking. . Added inputs and identified I/O for Long Hu Zhengba 4. Hooked up hopper and mahjong keyboard. Route outputs through I/O ports. Implemented dual 128KiB Oki sample banks. . Confirmed 'Long Hu Zhengba III' uses the same IGS027A ROM as 'Long Hu Da Man Guan'. Correct sound samples region tag. Added inputs and preliminary sound banking. . Hooked up controls and DIP switches for Long Teng Hu Yue. Disabled link feature by default. Since this game doesn't have a hopper, for payouts, it's playable with the link feature disabled. Joystick and mahjong keyboard are both working. . Hooked up inputs, hopper and counters for Manguan Caishen 3. Route outputs through I/O ports. Implemented dual 128KiB Oki sample banks. . Hooked up inputs and joystick inputs for Manguan Zhizun (V101CN) and clone Manguan Zhizun (V100CN). Route outputs through I/O ports. Note: Output routing is different depending on the control panel type for thesse games, so it needs PORT_CONDITION or it will give a "hopper empty" error. Correct year. . Hooked up I/O and added layout. Hooked up sound banking for Ocean Paradise. Use standard IGS double/small/take/big button arrangement (layout\oceanpar.lay). . Added inputs for Que Long Gaoshou. Simplified graphics ROM address unscrambling for Sheng Dan Wu Xian (igs\igs017_igs031.cpp). . Hooked up I/O for Shuang Long Qiang Zhu 3. Added inputs and joystick for Zhongguo Chu Da D. . Added DSW read. Use set_ioport instead of trampolines for PPI b/c. Initialize m_dsw_io_select to 7. Removed tilemap ROM unscrambling for zhongguo and related games. Fixed some tile ROM loading. . Started hooking up outputs (hopper, counters, lamps, etc.). Correct PPI mapping. Added notes about Oki sample ROM contents. Added non-volatile RAM. . Cleaned up installation of varying numbers of PPIs, got rid of the chessc2 and gonefsh2 PPIs that don't really exist. - igs_m027_link.cpp: Removed 8255 that doesn't seem to exist here - igs_m027xa.cpp . Added outputs, second coin slot and clickable layout for Crazy Bugs. Promoted Crazy Bugs (V204US) and clones Crazy Bugs (V200US) and Crazy Bugs (V202US) to working. . Correct PPI mapping. Copied sound MCU interface and timer logic from igs_fear.cpp and use uploaded XOR tables when available. Fixed communication with sound MCU and improved inputs. m_ prefix for class variables. . Dumped XA microcontroller for Triple Fever (V108US) (matches Crazy Bugs). Hooked up proper inputs, lamps and layout for Triple Fever games. Only one version of Triple Fever crashes MAME. . Implemented add with indexed addressing mode for source. Used by clone Triple Fever (V105US) microcontroller program. The game no longer causes a fatal error, but hangs instead (cpu\xa\xa_ops.cpp). - igs017.cpp and igs_m027.cpp: Share IGS mahjong keyboard matrix between drivers (igs\mahjong.cpp) - jaguar.cpp: Correct mistaken "GPI0" to "GPIO" in comments - lastbank.cpp: Use ioport_array instead of live tags. Bump main CPU to /2 clock. Hopper hookup. - namcos86.cpp: Mark PCM MCU as NO_DUMP. Changed some single line comments to //. - nmk16.cpp: Get sprite DMA trigger from PROM, it's 2 scanlines earlier. Fixes discolored otter in 'Hacha Mecha Fighter' title screen after bootup (ID 08910). Hook up ssmissin/airattck vtiming PROM. - popobear.cpp: Hooked up one DIP bank - segas32.cpp . Updated some OSC info. Multi 32 master clock is 32MHz. Got rid of clock defines, it gets messy with MASTER_CLOCK_S32 and MASTER_CLOCK_M32, and especially 2 defines for the timer0 clock. . Small cleanup to code style consistency (sega\segas32.h, segas32_m.cpp and segas32_v.cpp) - sg1000a.cpp: Small note update - ssv.cpp: Adjusted sound levels so Mahjong Hyper Reaction isn't constantly clipping - vsnes.cpp: Fixed some save state and debugger issues. Use fixed size types for more data members and register more data members for save states. Suppress side effects for debugger reads. Use conventional read/write handler naming, made some variables const. - Armadillo Racing: Use trackball and provide option to use original 45 degree orientation - Avengers: Removed unneeded m1 trampoline, assume that unused palette bits in MCU rom are not a bad dump. - Diet Go Go: Added note about sprite roms - Double Crown: Misc cleanups. Pinpoint a bunch of DIPs. Converted to tilemap and fixed screen size. Preliminary hopper hookup. - Double Dealer: Use timing PROM contents to trigger video interrupts. Small cleanup. - Dream 9 Final: Added coin counters, coin lockout and hopper payout. - Flower: Added MACHINE_SUPPORTS_SAVE flag, slightly lower quantum. - Jin Hu Lu 2: Improved program decryption and descrambled GFX ROM - Karate Champ: Removed duplicate function - Kung Fu Fighters: Moved clone Kung Fu Fighters (IGS, v100) to cabaret.cpp driver - Oli-Boo-Chu: Tweaked refresh rate to ~62.5hz. Moved sound interrupts to scanline timer. Documented flip screen latch(?) usage. Seems to be debug or diagnostics? Added PCB references to the driver notes. Convert graphics definitons to macros. Reduced tag literal usage, more const specifiers. Reduced duplicate sprite drawing code. Converted palette to compute_resistor_weights (resistances are a guess). - Royal Poker 2: Fixed regression with hopper line_r - Super Cherry Master Plus: Dumped GFX ROM - Super Mario Bros. 3 (NES bootleg): Added note about smb3bl timer CPU ROM content. An oversize ROM is used with the content repeated multiple times. Also added CRC and SHA1 for a smaller ROM with the same content seen on some boards to comment. - Treasure Island (Subsino, set 1): Looks like clone New HUNTer (bootleg, set 3) uses a plain Z80 - Fixed rom names in cb2001.cpp and segas16a.cpp - Description changes of all amuzy.cpp, Chaoji Dou Dizhu, Cherry Bonus 2001 (V1.1I), Diet Go Go (Europe v1.1 1992.09.26, set 2), Diet Go Go (Europe v1.1 1992.09.26, set 3), Extra Draw (V100VE), Jin Hu Lu 2 (v412GS), Long Hu Da Manguan, Long Hu Da Manguan Plus, Manguan Caishen 2 (link version, extension, S110CN), Manguan Caishen 2 (link version, host), Manguan Caishen 3 (V101CN), Manguan Zhizun (V100CN), Manguan Zhizun (V101CN), New DongmulDongmul 2 (V1.2N), PuLiRuLa (World, dual PCB), PuLiRuLa (World, single PCB), Que Long Gaoshou, Riot (NMK), Riot (Woong Bi), Shuang Long Qiang Zhu 3 (China, VS107C), Super Cherry Master Plus (V1.6) and Zhongguo Chu Da D - Dipswitch fixes in amuzy.cpp, cabaret.cpp, dblcrown.cpp, igs_fear.cpp, igs_m027.cpp and igs_m027xa.cpp - Renamed (dietgoea) to (dietgoeb), (dietgoe) to (dietgoea), (dietgo) to (dietgoe), (mgcsh) to (mgcs2h), (mgcsl) to (mgcs2l), (p47b) to (p47bl), (scherrym) to (scherrymp), (sddz) to (cjddz) and (tripfev) to (tripfeva) - MAME . MEMORY SYSTEM: Added support for passing mem_mask parameter on 8-bit handlers (emu\emumem.h and emumem_aspace.cpp) . INPUT . Increase event queue size (input\input_common.h) . Empty event queue on resets (input\input_win32.cpp and input\input_sdl.cpp) . Set RIDEV_INPUTSINK flag because of missed keyup events, causing stuck inputs (input\input_rawinput.cpp) (ID 08789). . Made DIP switch location validity errors more precise (emu\ioport.cpp) . Convert more string posting methods to std::string_view (emu\natkeyboard.cpp) . Got rid of [DECLARE_]CUSTOM_INPUT_MEMBR - it's just obfuscation at this point (emu\ioport.h) . Added 32.2159_MHz_XTAL (emu\xtal.cpp). C++ style comments, remove list of xtals that could be purchased via digikey in 2008 (emu\xtal.cpp). . Fixed error popmessage param index (imagedev\snapquik.cpp) . MiniMAWS: Removed Python 2 support (scripts\minimaws\minimaws.py). Use python3 superclass method call syntax (scripts\minimaws\lib\*.py). - Compiling . Correct some save_pointer usage (atari\atarixga.cpp, irem\redalert_v.cpp, konami\k001006.cpp, misc\videosaa.cpp, sega\315_5338a.cpp and sega\315_5649.cpp) . Added out-of-line destructors to various device classes that aren't templates and aren't in anonymous namespaces . No need for offs variable in tilemap mappers (baraduke.cpp, digdug.cpp, galaga_v.cpp, mappy_v.cpp, skykid.cpp, warpwarp_v.cpp, pacman_v.cpp and schick.cpp) . Removed vestigal execute_input_lines() and execute_burn override (emu\diexec.cpp) . Don't use image_error::BADSOFTWARE for things that aren't software list errors . Bumped GitHub CI to three simuataneous jobs for Windows and Linux - this should be OK with 16GB RAM. 0.269 - New Non-Working games: Cai Jin Shen Long (link version, extension, S111CN), Cai Jin Shen Long (link version, host), Dancing Bells, Geki Makaimura, Jin Hu Lu 2, Long Hu Da Man Guan, Long Teng Hu Yue, Magical Jack (VA 4.00), Magical Jack Plus (VA 6.03), Manguan Caishen (link version, extension, S110CN), Manguan Caishen (link version, host), PK - New Exciting Poker!, Poker & 21, Tropical Fruits (V. 24-06.00 Rev. 4.0), Turbo PK, 'unknown WHT gambling game' and Wan Wan Dash - New clones: Crazy Balls (Bontempi), Fruit Genie (Version 1-1-03, set 2), Fruit Genie (Version 1-1-03, set 3), Fruit Genie (Version 1-1-03, set 4), Fruit Genie (VT 2.11), Heavy Barrel (US, revision 3), Hyper Street Fighter II: The Anniversary Edition (Japan 040123), Long Hu Da Man Guan Plus, Magical Jack (VA 2.0), Magical Jack (VA 3.11), Magical Jack (VA 3.30), Magical Jack Plus (VA 6.01), Manguan Caishen (China, V106CS), Quiz Gakuen Paradise (Japan, ver. 1.02), Quiz Gekiretsu Scramble (Japan, prototype), Shuang Long Qiang Zhu 2 VS (China, set 2), Tarzan Chuang Tian Guan (China, V110), Te Yi Gong Neng (China, V632C), Tic Tac Trivia (6221-25, U5-0E, 05/08/86, UK), 'Umi de Poker / Marine Paradise (Japan, newer)' and X-Men Vs. Street Fighter (Japan 970113). - New PinMAME games: Pentacup (rev. T) - New drivers: boramz80.cpp, igs_m027_link.cpp, igs_m027xa.cpp and whtm68k.cpp - New devices: st_m29w640gb and upd7220a - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://youtu.be/7pkx19m02x4 - CPU . DEC T11: Improved interrupt handling on K1801VM1 CPU, misc fixes. Allows bus error handlers on (MESS) Elektronika BK to deal with interrupt from STOP key (causes a HALT-mode IRQ and triggers access to unmapped region at 177674). Changed PC display to octal. Made clear_virq/raise_virq safer (machine\pdp11.h). . Intel 8086: Make "out dx,al" output masked AX on data bus (i86\i86.cpp) . MCS-48: MCU reset sets bus to hi-z if ea=0. Improved EA pin and added it to Mario Bros.. Shorthand variable types (mcs48\mcs48.cpp). . NEC uPD7751: Renamed n7751 to upd7751 - SOUND . SSi TSI S14001A: Shorthand variable types. Small cleanup. Removed statistics. Use logmacro for debug msgs and device_rom_interface (sound\s14001a.cpp). . TMS5110/TMS5220: Renamed extract_bits to read_bits (sound\tms5110.cpp and sound\tms5220.cpp) - DEVICE . Flash ROM: Added ST M29W640GB 8K Flash device (machine\intelfsh.cpp) . Floppy: Removed HFE image format from the general list for rewrite (imagedev\floppy.cpp) . K052109 Tilemap Generator: Removed the color kludge for xmen/gradius3. Proper handling (init/save) of new m_addrmap variable (konami\k052109.cpp). . MC146818 RTC: Implemented Valid RAM and Time (VRT) register (machine\mc146818.cpp) . Z80 DMA Controller: Burst mode and refactoring (machine\z80dma.cpp) - alien.cpp: Changed dokodemo and wontame to use boot loader ROMs from pingu/gekimara instead of handmade hack. Note: Needs verification if these games really use same boot ROMs. - cntsteer.cpp: QA cleanup, use data_pending_callback for soundlatch irq. - deco_ld.cpp: Converted to tilemap. A few less literal tags. - gms.cpp: Added preliminary reels support - igs_fear.cpp: Added save SRAM/NVRAM. Tidy up inputs (F2 service key, single button, no trackball on fearless). - igs_m027.cpp . Added IGS027A internal ROM dumps for crzybugs, fruitpar, jking02, lhdmg, lhdmgp, lthy, mgcs3, mgzz, mgzza, qlgs, slqz3 and zhongguo. Allow slqz3 to show something. . Added decryption for lhdmg and lhdmgp. Fixed decryption for mgcs3 and mgzz. - igs_m027_link.cpp: Added IGS027A internal ROM dumps for cjslh and mgcsh. Preliminary decryption for the extension sets. - igs_m027xa.cpp . Moved sets with Philips MX10EXA CPU (crzybugs, haunthig, tripfev and wldfruit) from igs_m027.cpp to igs_m027xa.cpp for now. . Dumped MX10EXA for crzybugs US sets and wldfruit, matches dumps for crzybugsj and haunthig. - igs017.cpp: Moved sprite/tile gfx decryptions out of driver into video device. Fixed a regression with Super Tarzan. - metro.cpp: Split driver state class for different hardware configurations. Suppress side effects for debugger reads. Moved save state registration and other initialization to machine_start. Reduced literal tag usage and runtime tag lookups. Cleaned up switch matrix reading. - neogeo.cpp and midas.cpp: Fixed display timing related parameters (neogeo\neogeo_spr.h). Fixed zoom table RAM size. Note: The maximum allowed access is 64K bytes (neogeo\midas.cpp). - nightgal.cpp: Inputs cleanup - quizdna.cpp: Cerified DIPs for gakupara and quizdna - sderby.cpp: Improved clone Croupier (Playmark Roulette v.03.09) and Magic Touch a bit. Need PIC dump and core to be playable. - Animal Wonders: Got game to boot - Au: Combine program rom files to match known set (same rom contents) - Battle Gear 2: Documented hdd - Bu Bu Car: Added CPLD dump - Cherry Master I: Redumped GFX ROM for clone Hamburger House 9. - Cosmic Cop: Decapped and added MCU for clone Gallop - Armed Police Unit (Japan, M72 hardware) - Dance Dance Revolution Solo Bass Mix: Implemented proper MP3 decryption algorithm - Football Power: Added notes and ROM placeholder for Football Power I/O PCB. Note: Game has a small PCB inside the ball controller, very similar to the one found on Gaelco Football, with two accelerometers and a PIC. - Mario Bros.: Improved EA pin and added it to Mario Bros (mcs48\mcs48.cpp). Mark sound MCU as NO_DUMP. Removed USE_8039 and added note about soundrom hack. Removed old changelog from comments. - Mirage Youjuu Mahjongden: Minor cleanup - Moonquake: Added ROM locations and improved documentation. Note: Information compiled from pictures of an eBay auction for a Moon Quake cart. Flyer in the same auction shows a picture of a Moon Quake cart with U12 & U18 (ROM5L/H) populated but the actual cart for sale had these 2 sockets unpopulated. That cart pictured might have been a dev or prototype cart and the production versions were reduced down to not need the extra ROM chips. - Puzzle Time: Cleanups. Make video blinking more sensical. Converted custom ticket handling to ticket_dispenser_device and EEPROM/ticket to portw. Avoid potential out-of-cliprect bitmap layer drawing. - Revelations: Provided a default NVRAM - Speed Up: Added note and ROM placeholder about coin distribution - Star Rider: Replaced bad Processor Interface board (PIF) program ROM dump - Target Panic: Increased irq frequency. Update notes (ID 07797). - Thunder Dragon: Improved controls and scrolling for clone Thunder Dragon (bootleg with reduced sound system). IRQs related problems remain. - unknown Chang Yu Electronic gambling game 2: Added VBL NMI and hook up the YM2413 OPLL - unknown Labeled 'WU- MARY-1A' Music by: SunKiss Chen . Improved peripherals. Fixed PSG and 8279 clock frequencies. Save contents of battery-backed static RAM. Cleaned up inputs. . Use an I/O port finder array. Fixed I/O port selection. Fixed LED active polarity in layout (layout\marywu.lay). - X-Men . Added service switch inputs. Note: Reverse-engineered schematics: https://github.com/jotego/jtbin/blob/master/sch/xmen.pdf . Workaround for broken right side screen colors in clone X-Men (6 Players ver ECB) - Fixed rom names in gei.cpp, igs_m027.cpp, merit.cpp and mquake.cpp - Description changes of Au (location test), Barmy Army, Crazy Balls (NAT), Croupier II (Playmark Roulette v.03.09), Ding Dong Bells (B Gaming Technology), Fruit Genie (Version 1-1-03, set 1), Heavy Barrel (US, revision 1), Man Guan Zhi Zun (V101CN), Max A Million (set 1), Max A Million (set 2), Quiz Gakuen Paradise (Japan, ver. 1.04), Ring & Ball (Ver. 2.6), Super Kids / Jiu Nan Xiao Yingxiong (S019CN) and Umi de Poker / Marine Paradise (Japan, older) - Dipswitch fixes in goldstar.cpp, igs_m027.cpp, jungleyo.cpp and bnightgal.cpp - Renamed (hbarrelu) to (hbarrelua), (hsf2j1) to (hsf2j2), (mgzz) to (mgzza), (mgfx) to (mgzz), (umipoker) to (umipokera), (xmvsfjr3) to (xmvsfjr4), (xmvsfjr2) to (xmvsfjr3), (xmvsfjr1) to (xmvsfjr2) and (xmvsfj) to (xmvsfjr1) - MAME . MEMORY SYSTEM: Fixed possible nullptr crash. Added exists() getter (emu\emumem.h and emu\emumem_mview.cpp). . UI . UI pointer options: Set inc/dec to 1s (hold shift for shorter 0.1s). Allow 0.0s hide delay to disable pointer. Warning message if delay is set to 0.0s. . Be consistent with custom_render passed variable names (ui\*) . Changed driver status "Overall:" to "Status:" (ui\selmenu.cpp and ui\simpleselgame.cpp) . Avoid floating point equality comparison. Fixes pointer input not working on menus at some window sizes in 32-bit x86 builds (ui\menu.cpp). . INPUT: Offset analog value by half a step because of rounding issue when crossing 0 (crossing 0 now takes 1 step instead of 2, and there's 0.5 step wiggle room at edges) (emu\ioport.cpp) . Consolidated drivers in single files (shangha3.cpp) - Debugger . Don't sleep waiting for events on debugger update (debugger\debugqt.cpp) . Added -debugger_host option. This allows setting the host to 0.0.0.0 to accept connections from outside of localhost. Command line options need to be documented. Don't assume C strings returned as option values remain valid indefinitely. Fixed wording for option description (debugger\debuggdbstub.cpp and lib\osdobj_common.cpp). . Fixed bad display if view is scrolled horizontally (debug\dvdisasm.cpp) . Don't restrict maximum window sizes (debugger\win\debugwininfo.cpp) 0.268 - New games: Au (Swimmer conversion) - New Working games: The Couples (set 1), The Couples (set 2), The Couples (set 3), Dodge City (2131-82, U5-0D), Dodge City (2131-82, U5-50), Dodge City (2131-82, U5-0 GT), Fearless Pinocchio (V101US), Match'em Up (6221-51, U5-1), Match'em Up (6221-55, U5-1, German), Megatouch 5 (9255-60-01 R0C, Standard version), Montana Super Draw (4436-05, U5-0), Revelations, Super Kids (S019CN), Super Poker (v102UA), Super Poker (v200UA), Super Poker (v201UA), Super Poker (v203US), Super Poker (v205US), Super Poker (v306US) and Superstar (4435-81, U5-1) - New Non-Working games: Battle Gear 3 (Ver.2.01A), Boo 1000, Dice Master, 'Hard Puncher Hajime no Ippo 2 - The Fighting! - Ouja e no chousen (VER.2.00J)', Hill Climber, Icescape (V104FA), Jungle King 2002 (V209US), Lucky Cross (V106SA), Multi-Action 6711-14-R0A, Multi-Action 7558-01-R4, Multi-Action 8340-01-R1, Multi-Action 9800-20-R0, Ocean Paradise (V105US), Olympic 5 (V112US), 'Sega Yonin Uchi Mahjong MJ Network Taisen Ver. (Update Disc Ver.3.000, Japan) (CDP-10002F)', Sutjaro Haeyo Deluxe, 'Terebi Denwa Thomas the Tank Engine and Friends', Triple Fever (V107US), UFO A La Carte and Wild Fruit (V208US) - New clones: Crazy Bugs (V200US), Crazy Bugs (V202US), Crazy Bugs (V204US), Dodge City (9131-02, U9-2B), Grand Prix (Treasure Bonus bootleg), Guttang Gottong, Hamburger House 9, Haunted House (IGS, V109US), Jingle Bell (v200US), Link (Korean bootleg of Atari Tetris), Miss World 2002, Missile Command (rev 1, A035467-01 PCBs), Missile Command (rev 2, A035467-01/03 PCBs), Missile Command (rev 3, A035467-01/03 PCBs), Ocean Paradise (V101US), Olympic 5 (V107US), Pop'n Music Animelo 2 (JAA), Pop'n Music Animelo 2 (JAA, license expired), Sega Yonin Uchi Mahjong MJ (Update Disc Ver.1.007, Japan) (CDP-10002A), Sega Yonin Uchi Mahjong MJ (Update Disc Ver.1.011, Japan) (CDP-10002C), Sega Yonin Uchi Mahjong MJ Network Taisen Ver. (Update Disc Ver.2.000, Japan) (CDP-10002D), Sega Yonin Uchi Mahjong MJ Network Taisen Ver. (Update Disc Ver.2.002, Japan) (CDP-10002E), Street Smart (bootleg of World version 1), Super Glob (Pac-Man hardware, bootleg) and WOW New Fantasia - Removed games: Police 24/7 (ver EAD, alt), Thrill Drive 2 (ver AAA, alt), Thrill Drive 2 (ver AAA, alt 2), Tsurugi (ver EAB, alt), Wild Fang (year hack?) and World Combat (ver AAD:B, alt) - New drivers: boo.cpp, m102.cpp, pspikes.cpp and stella8085.cpp - New devices: dio98624, hp9133, k056230_viper, ldp1450hle, mx10exa, ncr53c825_pci, r65c52, tms32020, toshiba_tc58256aft and xa - Bob Zed (What's new video): https://youtu.be/kwxijouhSA0 - CPU . Fujitsu Micro F2MC-16: Flesh out CPU emulation. Support INT #vct8, LSL A, R0 and FILSWI instructions. Support many more EA-type instruction modes. Prevent MOVS(W)I and FILS(W)I from clobbering RW0 if it lies within the destination range (f2mc16\f2mc16.cpp). . Hitachi H8: Added system clock getter (divided clock()) (h8\h8.h, h8\h8_sci.cpp and h8\h8_timer8.cpp). Added safety check in internal_update for possible negative ticks (h8\h8_sci.cpp). . Intel I386 . Some limit checks. Note: This a hack, only use if there are sync problems with another cpu (i386\i386.cpp). Disable logging. . Correct buggy fxsave and fxrstor opcodes and let Chihiro show 3D again (i386\pentops.hxx) . Correct errors in pentops.hxx caused by bad mmxprolog routine. Currently the mmxprolog routine can raise a #NM exception. But the caller will execute the MMX opcode anyway, unfortunately by fetching the bytes from the first instruction in the exception service routine. This adds a bool return value to mmxprolog so the caller can return too without making a mess (i386\pentops.hxx). . x87 stack top set to 0 when entering MMX state, generate #NM only from TS bit. MMX opcodes generate #NM only when TS is set, EM bit generates #UD (i386\pentops.hxx). . Correct various MMX and SSE opcodes in pentops.hxx. Expecially for the case when the source and destination registers are the same. Moved a couple Cyrix routines together with the other ones (i386\pentops.hxx). . Fixed cycles when leaving rep when out of cycles and count == 0 (i386\i386ops.hxx) . Motorola MC6809: Added sync acknowledge callback (m6809\base6x09.lst and m6809\m6809.cpp) . Motorola MC68000 FPU: Fixed fmovem reads for mode=2. Note: 'Updated 680x0 FPU to Softfloat' in MAME 0.267 changed the write part, but missed to convert the read part. This fixes booting HP-UX 9 on hp9k_3xx (m68000\m68kfpu.cpp). . Philips MX10EXA: New Philips XA CPU and disassembler . Texas Instruments TMS32020: Added primary TMS32020 support . Texas Instruments TMS32025: Allow stack push/pop to be inlined . Zilog Z80: Fixed compile issue (z80\z80ndasm.cpp). Small cleanup (z80\z80dasm.cpp). Reset m_ref when PC is changed through state_import (z80\z80.cpp). - SOUND . Acclaim RAX: Use device_mixer_interface for sound route. Cleanups. Use C++ style comments for single line comments. Suppress side effect for debugger reads. Make variables constant. Fixed spacing. Reduced literal tag usages. Added variables into save state (shared\rax.cpp). . Beep and DAC: Increased sample rate in favor of better resample quality. Small cleanup. Added note about buffer size (sound\beep.cpp and sound\dac.cpp). . Biquad Filter: Added protection against Biquad Filters producing aliased output or other noise if the stream sample rate is below the cutoff of the filter. Converted to use logmacro.h and added some additional optional log messages. Fixed some incorrect calculations for the MFB band-pass filter parameters (sound\flt_biquad.cpp). . Yamaha YMF292-F SCSP: Use util::sext for sign extension and use lowercase hexadecimal literals (sound\scspdsp.cpp) - DEVICE . ATA: Clear DMA modes when switching to PIO mode. Do not log reads when reading from the debugger (machine\atahle.cpp). . Floppy: Drive busy bits should not be cleared until a SIS is executed (machine\upd765.cpp). Note: The upd765 does not clear the drive busy bits until you issue a sense interrupt status command. Without this fix CP/M Plus on the QX-10 gives disk I/O errors because it expects the busy bit to stay set until it has a chance to issue the SIS command. . K056230 LANC: Refactor regs_r/_w to regs_map. Preliminary LANC support for viper.cpp. . PC hardware: Connect iochrdy properly. Also don't forward the same thing more than once - it could be std::move'd out the first time (machine\genpc.h). . Rockwell 65C52 DACIA: Added Rockwell 65C52 Dual Asynchronous Communication Interface Adapter. A slightly tweaked combination of two 6551 ACIAs on a single chip. Correct bug associated with IRQ handling. Simplified update_irq. Added call to update_irq at each place IER or ISR changes and debugger side effects check on reads (machine\r65c52.cpp). . RS-232 Port: Added Mouse Systems serial mouse to default RS-232 devices (rs232\rs232.cpp). . Sony LDP-1450: Added HLE of player and hookups to some games that use it. Tweaked timings. Added some more comms and text overlay logging. Added multibyte command support (machine\ldp1450hle.cpp). - aerofgt.cpp, crshrace.cpp, f1gp.cpp, fromance.cpp, gstriker.cpp, inufuku.cpp, pspikes.cpp, suprslam.cpp, taotaido.cpp and welltris.cpp . Implemented device_gfx_interface to decode graphics and use delegates for priority mapping (vsystem\vsystem_spr.cpp). . Implemented device_gfx_interface to decode graphics and fixed issues with save states (vsystem\vsystem_spr2.cpp). . Merged aerofgt.cpp driver into single file and moved every set but aerofgt itself into a separate driver (pspikes.cpp). Reduced code duplication. . Use generic graphics decoding layouts for crshrace.cpp, suprslam.cpp and welltris.cpp. . Tidied bootleg sprite drawing code in f1gp.cpp . Fixed sprite delay in gstriker.cpp . Added comment about possibly incorrect tilemap offset to inufuku.cpp . Use generic graphics decoding layouts for welltris.cpp - alpha68k_i.cpp: Small cleanup to spacing - bombjack.cpp: Avoid needing to remove and replace devices in machine configuration - cave.cpp: Use actual resonator value for the OKI6295 on donpachi, jumbogod, paccarn, paceight and pacslot. - cclimber.cpp: Improved driver. Small cleanup. - cesclass.cpp: Break LCD output in two screens. Implemented bitmap DMA trigger (fix screen tearing). Replaced palette with amber shades. - chihiro.cpp . Correct buggy fxsave and fxrstor opcodes and let Chihiro show 3D again (i386\pentops.hxx) . Correct errors in pentops.hxx caused by bad mmxprolog routine (i386\pentops.hxx). Fixes graphics goes blank in all Chihiro games (ID 08617). - cops.cpp: Fixed loose input that stopped Nova games from booting. Srcclean and tidy. - igs_fear.cpp . New Philips XA CPU and disassembler. This adds basic execution to XA core. It emulates enough of the XA to give fearless and superkds working sound. Only the exact forms of the opcodes used so far have been implemented. No optimizations have been done, use of const, inline use, templates etc. are planned for a future update; code is still primed for debugging and development. Overall structure, code style are not 100% final (see above) and will be adjusted as the CPU is better understood. Peripherals, interrupts etc. are not yet fully implemented, nor is anything outside of the page zero mode used here due to lack of test cases. . Hooked up Philips MX10EXA CPU to fearless and superkds. Fixed fearless decryption. Added IGS027A dump. . Added timer and interrupt, RTC, input and dipswitch and fipx in sprite drawing. Promoted Fearless Pinocchio and Super Kids to working. - igs_fear.cpp, igs_m027.cpp and pgm.cpp: Fixed endianness issue for 32-bit games (igs\pgmcrypt.cpp) - igs_m027.cpp: Hooked up Philips MX10EXA CPU to crzybugs and haunthig - macrossp.cpp: Cleaned up code. Marked quizmoon as having imperfect graphics and sound due to incorrect blending and sound in title scene. Use object finder arrays and function templates for tilemaps and related stuff. Use generic graphics decoding layouts. Reduced literal tag usage and improved ROM region names. - merit.cpp . Implemented proper use of bit 0 in m_extra_video_bank_bit. Promoted Match'em Up (6221-51, U5-1) and clones Match'em Up (6221-55, U5-1 German), The Couples (set 1), The Couples (set 2) and The Couples (set 3) to working. . Made the video control bits a bit clearer . Added preconfigured NVRAM to avoid error on boot. Fixed 'Points Per Coin' dipswitch. Promoted Montana Super Draw (4436-05, U5-0) to working. - model1/2.cpp: Measured clocks (shared\segam1audio.cpp) - model1/2/3.cpp: Fixed volume. Added variables into save states. Cleanups. Moved devices into private. Initialize variables at machine start. Removed hardcoded tags and literal tag usage. Added notes. Fixed spacing. Constantize values. Use correct typename values (sega\dsbz80.cpp). - namcos10.cpp: Preliminary Namco MEM/IO board support. Added Toshiba TC58256AFT flash device (machine\nandflash.cpp). - nmk16.cpp . Extract NMK004 internal ROM using a new technique. It was dumped from two different devices taken from Acrobat Mission and Thunder Dragon boards. The dump was exactly the same from those 2 devices, so I consider it a good and reliable dump. It was achieved using a custom tool to read internal ROMs from TLCS90 MCUs: https://github.com/sergiopolog/tlcs90-rom-reader. Previously existing dump made by 'trap15' only differs in 3 bytes starting at 0xFBD address. That difference could be caused by the method used to extract the ROM back then. Actually, I talk to him about it and he stated that area around 0xFBF address was marked as unsure when he carried out the process (nmk\nmk004.cpp). . Adjusted values for proper screen size, timings and interrupts according to real hardware. Fixed timings and flip-screen for NMK16 games. Removed MACHINE_NO_COCKTAIL flag from airattck, bjtwin, macross2, nouryoku, sabotenb, ssmissin and tdragon2 and clones. Added MACHINE_NO_COCKTAIL flag to tharrier and clones. Fixed background offset for some Afega games. Fixed offset in the additional bg layer of strahl and bioship. Fixed flipscreen on bioship and vandyke. . Fixed max sprite clock related to screen size. Upgraded interrupts trigger system based on PROM contents. Added info about screen resolutions and timings. Fixed NMK16 prom timing. . Merged powerins.cpp into nmk16.cpp driver to make use the new interrupt system. Fixed interrupts config for clones Power Instinct (USA, bootleg set 2) and Power Instinct (USA, bootleg set 3). - segaufo.cpp: Assume NMI enable is on IO2 CNT1. Fixed regression with debug popmessage. Small cleanups. - snesb.cpp: Fill in missing DIP switches for several games. Added continue counter init for Wild Guns (SNES bootleg). - spoker.cpp: DIP switches are a switch matrix - viper.cpp . Preliminary K056230 LANC support. Applies portions of Hydreigon's basic LAN controller implementation for Konami Viper (PR #12546). Fixes gameplay hangs/crashes in gticlub2, xtrial, code1d and wcombat. . Hookup World Combat inputs. Updated QA. . Removed all clones with alt CF dumps of the same version: p911ea, thrild2ab, thrild2ac, tsurugie and wcombatb. Marked clone Thrill Drive 2 (ver EAA) CF dump as bad (blue screens because of it). - zn.cpp: Cleanups. Suppress side effects for debugger reads. Make variables constant. - 64th. Street: Use default 'Lives' setting from manual - Buggy Challenge: Improved sky gradient blending. Hookup unused DSW1:8. - Cherry Master '91: Redumped GFX rom. Fixes spurious white dots on some reels. - Cosmo Gang: Small cleanups - Daytona USA: Dumped audiocpu roms for clone Daytona USA - Dodge City: Promoted clones Dodge City (2131-82, U5-0D), Dodge City (2131-82, U5-50) and Dodge City (2131-82, U5-0 GT) to working - FreeWay: Added very preliminary drawing and palette decoding - Gaelco Football: Added notes and rom placeholder - Megatouch 5: Added NVRAM to clone Megatouch 5 (9255-60-01 R0C, Standard version). Promoted game to working. Note: Game will NOT start without a valid NVRAM. - Midnight Landing: Use TMS32020 DSP instead of TMS32025 - Monza GP: Dumped a Monza GP original PCB which had the same roms as clone Monza GP (bootleg). Dropped the bootleg designation from the title. - Multi-Action 6710-21: Hacked a bit to make game show something. It starts with game malfunction message. It can be started by switching IN2:2 on, then pressing discard 3. - Odyssey: Added NCR53C825_PCI stub - Revelations: Added CHD. Create an HLE implementation of the Sony LDP-1450 laserdisc player. Added Rockwell 65C52 Dual Asynchronous Communication Interface Adapter. Promoted game to working. - Seibu Cup Soccer: DIP Switches updates for clone Goal! '92 - Street Smart: Added PLDs to clones streetsm1, streetsmj and streetsmw. - Super Poker (v306US): Promoted Super Poker (v306US) and clones Super Poker (v102UA), Super Poker (v200UA), Super Poker (v201UA), Super Poker (v203US) and Super Poker (v205US) to working. - Superstar (4435-81, U5-1): Promoted game to working - Terra Cresta: Fixed the filters and mixing resistors on clone Terra Cresta (YM2203)'s YM2203 SSG channels A+B-tied-together and C being inadvertently swapped. Fixes BGM bass is not playing (ID 08886). Added a note that this circuit needs to be converted to a netlist to be accurate due to the unusual hookup, and added a boost factor to the SSG channels to temporarily work around that fact. - Tetris: Redumped OKI ROMs for clone Tetris (bootleg set 7, with OKI M5205) - Zing Zing Zip: Made clone Zing Zing Zip (bootleg) go a bit further, marked its Oki ROM as bad. Main blocker is the different sprite format. - Fixed rom names in expro02.cpp, missile.cpp, namcos2.cpp, merit3xx.cpp, naomi.cpp and toaplan1.cpp - Description changes of Deluxe Trivia ? Whiz Edition 5 (6221-70, U5-0A), Deluxe Trivia ? Whiz Edition 5 (6221-75, U5-0, Vertical), Dodge City (9131-02, U9-2T), Grand Prix (Dutch) (Bellfruit) (Scorpion 1), Guttang Gottong (Sega license), Guzzler (Swimmer conversion), Haunted House (IGS, V101US), Match'em Up (6221-55, U5-1, German), Miss World 2002 (Daigom license), Monza GP (set 1), Monza GP (set 2), Phraze Craze (6221-40, U5-3, Expanded Questions), Phraze Craze (6221-40, U5-3A, Expanded Questions), Phraze Craze (6221-45, U5-2, Vertical), Pop'n Music Animelo 2 (JAC), Pop'n Music Animelo 2 (JAC, license expired), Special Forces - Kung Fu Commando, Super Glob (Pac-Man hardware, German bootleg), Super Kids (S019CN), Superstar (4435-81, U5-1), Tecmo Knight (US), Tic Tac Trivia (6221-22, U5-0, Vertical), Trivia ? Whiz Edition 2 (6221-05), Trivia ? Whiz Edition 2 (6221-05, Alt Sex trivia), Trivia ? Whiz Edition 3 (6221-04, U5-0E, Vertical), Trivia ? Whiz Edition 3 (6221-05, U5-0C), Trivia ? Whiz Edition 3 (6221-05, U5-0D), Trivia ? Whiz Edition 3 (6221-05, with Sex trivia III), Trivia ? Whiz Edition 4 (6221-10, U5-0A), Trivia ? Whiz Edition 4 (6221-13, U5-0B, Vertical, Alt Sex trivia), Trivia ? Whiz Edition 4 (6221-13, U5-0B, Vertical), UFO Catcher 7, Vimana (World, rev A), Vimana (World)', Wild Fang (Japan), Wild Fang / Tecmo Knight (World?) and WOW New Fantasia (Explicit) - Dipswitch fixes in buggychl.cpp, cesclass.cpp, freeway.cpp, goal92.cpp, megasys1.cpp, merit.cpp, merit3xx.cpp and merit3xx.cpp - Renamed (crzybugs) to (crzybugsj), (diamond) to (diamrun), (dodgectya) to (dodgectyba), (dodgectyb) to (dodgectybb), (dodgectyc) to (dodgectybc), (gutangtn) to (gutangtns), (haunthig) to (haunthiga), (jingbell) to (jbell157us), (jingbella) to (jbell155ue), (jingbellb) to (jbell153ue), (jingbellc) to (jbell141ue), (jingbelli) to (jbell133i), (ma7558) to (ma7558r0), (missilea) to (missilebl), (missw02) to (missw02d), (mj1) to (mj1b), (monzagpb) to (monzagpa), (powb) to (powbl) and (unkmerit) to (msupstar) - MAME . VIDEO RENDERING SYSTEM . Generate cosine table at compile time. Made cosine table constexpr, got rid of lambda and loop. Appease complilers that don't believe in constexpr trigonometry. Don't use class template deduction with large initialiser list that upsets Clang (emu\rendersw.hxx). . Added decoder for xxxxxBBBxGGGxRRR format (emu\emupal.cpp) . UI . Do an extra item reset the next time through the event loop after making a change. Updated DIP switch and configuration field values aren't seen in the port value until the next I/O port manager frame update, and hence enable state won't be seen until then (ui\confswitch.cpp) (ID 08878). . Dismiss error messages on pressing left or right (ui\selmenu.cpp) . Updated "CPU Tester" sample code so it will mostly build and work again. Only remaining issue is that m_icountptr is now private, so it can't set remaining cycles (emu\drivers\testcpu.cpp). . Merged drivers in single files (aerofgt.cpp, prehisle.cpp and snk68.cpp) - Compiling: Various cleanup - Debugger: Fixed crash on hard reset (debugger\qt\mainwindow.cpp and windowqt.cpp) 0.267 - New games: Hayauchi Gun Kids - New Working games: Soccer 10 (ver. 16.44) - New Non-Working games: Another World (Japan, V1.8), Cut The Rope, Mad Money 2, Print Club (Japan Vol.3), Print Club Yoshimoto V1 (J 970208 V1.000), Santa Fe Mine (set 1), Shun, Super Kids (V019CN), Super Luster II and 'unknown Yuvo Joy Stand game (set 1)' - New clones: Aerolitos Espaciales (Spanish bootleg of Asteroids), Cheri Mondo '97 (V1.4I), Cherry Bonus III (Ziogas V4.1 hack, set 1), Cherry Bonus III (Ziogas V4.1 hack, set 2), Goindol (Afega), Great 1000 Miles Rally 2 USA (95/07/11), Jigoku Meguri (Japan), Little Casino (set 2), Little Casino II (v30.0), Match It, Ms. Pac-Man (Elmac bootleg, earlier), Ms. Pac-Man (Elmac bootleg, later), Pac-Man (Model Racing bootleg), Pleiads (GMP Games), Salamander (Tecfri license), Santa Fe Mine (set 2), Secret Service (4.0, Europe), Shisensho - Joshiryo-Hen (Japan, set 1), Trivia (Questions Series 7, alt question ROM) and X-Reel - New PinMAME games: Grand Lizard (L-1) and La Rana (set 2) - New drivers: anoworld.cpp, cuttherope.cpp and madmoney2.cpp - New devices: nsc810, pic16cr83, pic16cr84, pic16f83, pic16f84 and pic16f84a - Bob Zed (What's new video): https://youtu.be/4vmZ0eZWaEc - CPU . Fujitsu Micro F2MC-16: Added and fixed several instructions. Added additional instructions from Prin-C disassembly (f2mc16\f2mc16.cpp). Disassembly updates: Correct decoding of FILSWI. Eliminated unnecessary and somewhat confusing INC A and DEC A aliases (f2mc16\f2mc16d.cpp). . Hitachi H8: Return 0xff when reading from port DDR (eg. RMW opcodes on DDR) . Motorola MC68000: Updated 680x0 FPU to Softfloat 3 from 2. Fixes Jigsaw Puzzle is glitched out in (MESS) Macintosh LC III (ID 05411) and Mac 68881 Emulation returning bad results (ID 08793). FREM and FMOD now generate the quotient bits in FPSR, required by Apple's SANE to do sin/cos/tan properly. FMOVE of a float to a Dx integer register generates the exception status bits, fixing square roots in SANE. Rewrote how FMOVEM instructions are decoded and executed, fixing issues including skipping too few or too many opcode bytes and causing serious weird behavior. FPU instructions all now have more realistic cycle timings for a 68881. All FPU instructions now generate exception bits in FPSR. Turn off FPU verbose logging and implemented missing FMOVE #imm32 mode. FPU now sets the NaN flag for all NaNs, not just signalling. Fixes dendego black screen in attract mode (m68000\m68kfpu.cpp). . Zilog Z80: New generatable core. Updated core generator to support 'ASCII R800' CPU. Removed inaccessible wait check in check_icount (m_wait_state is never 1 here). Refactor redoable case. Moved busrq check to service step. Added busack output pin. Fixed misleading-indentation. Decide to remove embedded changelog from comments (refer to github history) (z80\z80.cpp). - SOUND . SN76496: Fixed log neutrality violation . Sound Interface: Fixed various warnings and simplify sound\coreaudio_sound.cpp - DEVICE . ATA: Log disk geometry at verbose level (rather than debug) so it can be shown in release builds. Also use logmacro.h for compile-time configurable logging (machine\atastorage.cpp). . Floppy . Lower drq at the end of track write (machine\wd_fdc.cpp) . Fixed a bug with reading the first 1-bit on a track (imagedev\floppy.cpp). Note: 'floppy_image_device::find_index' uses binary search to find the index for which 'buf[spos] <= position < buf[spos + 1]'. However, the algorithm behaves incorrectly when 'position < buf[0]'. In this case, the algorithm returns 0, as if 'position' was between 'buf[0]' and 'buf[1]'. The effect of this is that if 'get_next_transition' is called with a timestamp that is between the start of the revolution and the first transition, then instead of returning the timestamp of that transition, it returns the timestamp of the second transition instead. Essentially, the first 1-bit on the track gets flipped to a 0. I have encountered this in Apple II emulation, where this bug manifests as sporadic I/O errors. Fixed it by doing two things: 1. Replaced 'find_index' with a call to 'upper_bound' from the standard library, which behaves correctly in edge cases. 2. If 'upper_bound' signals that 'position < buf[0]', then adjust 'base' and 'index' to point to the last transition of the previous revolution. . Fixed out-of-bounds access to the seek sample (imagedev\floppy.cpp). Note: Currently, when 'floppy_sound_device::step' selects a new seek sample, the value of 'm_seek_samplepos' remains the same as it was the last time a seek sample was played. This might be an invalid position for the new sample, since the seek samples have different lengths. When this is the case, the next call to 'floppy_sound_device::sound_stream_update' makes an out-of-bounds memory access as it reads the sample data. Fixed this by resetting 'm_seek_samplepos' to 0 when a new seek sample is selected. This also makes the seek sounds more consistent, since previously they would start from a semi-random position each time. . M6M80011AP EEPROM: Converted printfs to logmacro (machine\m6m80011ap.cpp) . T5182 MCU: Removed hardcoded tags. Cleanups. - albazg.cpp, badlandsbl.cpp,d cmmb.cpp, darkmist.cpp, metlfrzr.cpp, mustache.cpp and panicr.cpp: Cleanups - bombjack.cpp: Merged Calorie with BombJack driver. Cleanups and fixes. Fixed large sprites in Bomb Jack by implementing the sprite size latches. Simplify and fix gfxdecode macros for Bomb Jack. Fixed background tilemap loading in Bomb Jack to properly use D0-D3. Fixed memory maps to match the schematics. Added watchdog reset and enable (not used in Calorie Kun). Proper screen params for Bomb Jack and Calorie Kun. Proper audio timings for Calorie Kun. Added notes on audio filter and PCB references. Cleaned up other notes. Fixed spacing. - dkong.cpp: Added busack output pin (z80\z80.cpp) - equites.cpp: Reverse irq meanings, fix Bull Fighter timing. - ettrivia.cpp: Switched to configured banking and enabled save state support - expro02.cpp: Converted screen to use set_raw - gaelco2.cpp: Added developers/licencees to manufacturers and cleaned up code. Moved snowboar/maniacsqs protection simulation to a derived class. Reduced use of literal tags and duplicated code. Improved ROM region names. Changed single-line comments to C++ line comments. - gaiden.cpp: Updates & Cleanups. Split driver class for wildfang and raiga via protection methods. Split driver class for mastninj via MSM5205 controls. Fixed raiga post-load behavior. Use C++ style single line comments. Reduced literal tag usage, duplications and unused functions. Fixed function namings. Make some variables constant. Fixed/Correct type for variables. Fixed code style consistency. Call base device_post_load() and use logmacro.h. - igs_fear.cpp: Function naming reduction. Cleanups. Fixed notes based on PCB images provided. Standardize types in XingXing's code. Turn off logerror. Added IGS027A internal MCU ROM from Super Kids to Fearless Pinocchio. - konamigx.cpp: Fixed PSAC4 color offset and gfxdecode bitplanes, honor cliprect. Hookup Racin' Force brake and gear shift inputs. - ksys573.cpp: Initialize m_pccard_cd - lastfght.cpp and subsino2.cpp: Dumped internal H8 rom for lastfght and bishjan, humlan, new2001, qbeebing, queenbee, queenbeeb, queenbeei, queenbeesa, squeenb, treamary, xiaoao and xreel. - leland.cpp: Fixed rom samples playback. Mid-execution trickery with set_state_int doesn't work properly anymore on z80 after recent rewrite, so do sync workaround differently (cinematronics\leland_a.cpp). - magicard.cpp: Added PIC16F84 to Magic Lotto Export - mastboy.cpp: Cleanups. Use tilemap and palette format helper. Reduced unused variables and literal tags. - namcond1.cpp: Replaced ygv608_draw_mosaic fn -> draw_mosaic (namco\ygv608.cpp) - naomi.cpp: Added DIMM v3.01 firmware (sega\naomigd.cpp) - rpunch.cpp: Minor cleanups. Use generic gfx decode layout. Fixed ROM region naming. Reduced preprocessor defines and literal tag usages. - segac2.cpp: Minor changes for the Print Club boards. Added many notes. - seta.cpp: Removed character design crediting across manufacturer fields - splendor.cpp: Denote same irq meanings as per equites.cpp Bull Fighter - wheelfir.cpp: Improved graphics emulation of Wheels & Fire and Power Ball + some cleanup. Added PLDs dumps to Kong Ball and Radical Enduro. - Alone Shettle Crew: Changed palette PROM decode to match Wiping. Removed MACHINE_IMPERFECT_COLORS flag. - Aqua Jack: Removed non-existant dial input - Bu Bu Car: Added missing flash roms - Catacomb: Dumped color prom - Chance Thirty Two: Cleanups and QA - DJ Boy: Use palette format helper to handle palette writes - Goori Goori: Use generic gfx decode layout. Cleanups. Fixed ROM region naming. Correct type for variables. Make variables constant. Reduced literal tag usages. Fixed spacing. Implemented display enable. Chore EEPROM handling to portw. - Heavy Unit: Reduced literal tag usage and improved graphics ROM region names - Joker Master: Some improvements for the Joker Master sets - Little Casino II: Reordered sets. Added PCB layout. - Match It: Added original Match It (IREM M80) version. Dumped missing ROMs and PLDs for Match It and Shisensho sets. Added a PCB layout for IREM's Match It M80 based games - Medal Network: Rockman EXE: Fixed music and speed - PoPo Bear: Cleanups. Identified timer chip (better title screen auto animation). Added coin counter and DIP locations. - Reality Tennis: Assume MC68000P8 clock is 8 MHz, demoted driver to MACHINE_IMPERFECT_TIMING. - Royal Casino: Cleanups. Preliminary 8-liner rowscroll/window effect. Fixed Z80 clock. - Shoot Away II: Demoted game to MACHINE_IS_SKELETON - Soccer 10: Added correct GFX decode. Promoted game to working. - Vampire (prototype?): Correct some PCB locations and added edge connector pinout - Fixed rom names in nmkmedal.cpp, shootaway2.cpp and vampire.cpp - Description changes of Bomb Jack, Bomb Jack (earlier), Bowl-O-Rama (Rev 1.0), Bulk replace Deal Or No Deal -> Deal or No Deal, Bulk replace Euro -> Europe, Cherry Master '97 (V1.7), Competition Golf Final Round (World?, revision 3), Goindol (SunA, Japan), Goindol (SunA, US), Goindol (SunA, World), Joker Master 2000 Special Edition (V512), Joker Master 2000 Special Edition (V515), Kong Ball (prototype), La Rana (set 1), Little Casino (set 1), Little Casino II (v17.0), Little Casino II (v18.1), Mad Ball (V2.0), Mad Ball (V2.0, with nudity), Mallet Madness (v2.1), Match It (bootleg), Print Club 2 Vol. 8 '97 Summer (J 970616 V1.100), Rapid Fire (v1.1, Build 239), Rapid Fire (v1.0, Build 236), Rapid Fire (v1.1, Build 238), Rollergames (LA-2), Salary Man Champ - Tatakau Salary Man (GCA18 VER. JAA), Shisensho - Joshiryo-Hen (Japan, set 2), Sichuan II (bootleg, set 1), Sichuan II (bootleg, set 2), Soul Calibur III: Arcade Edition, Street Fighter II': Champion Edition (Japan 920322, UPL bootleg?), Various Taito drivers, Target Ball (with nudity), Tetris + Global Money Fever (Corsica, v8.01, Korean bootleg), some Trivia Questions games and unknown Yuvo Joy Stand game (set 2). - Dipswitch fixes in chance32.cpp, goldstar.cpp and popobear.cpp - Renamed (elecyoyo2) to (elecyoyoa), (gtmr2u) to (gtmr2ua), (kram2) to (krama), (kram3) to (krame), (ladymstr2) to (ladymstra), (lkageo) to (lkagea), (lkageb) to (lkagebl1), (lkageo2) to (lkageb), (lkageb2) to (lkagebl2), (lkageb3) to (lkagebl3), (lkageb4) to (lkagebl4), (matchit) to (matchitb), (ltcasin2a) to (ltcasin2b), (ltcasin2) to (ltcasin2a), (othunderuo) to (othunderua), (pitnruna) to (pitnrun), (pitnrun) to (pitnruna), (ringfgt2) to (ringfgta), (shisen) to (shisena) and (tsamurai2) to (tsamuraia) - MAME . VIDEO RENDERING SYSTEM: Added helper for GGGGRRRRBBBBxxxx format (emu\emupal.cpp) . DEVICE: Fixed possible time travel issue in defer_access (emu\devcpu.cpp) . LUA engine: Fixed what looks like a copypaste error with screen_type_enum (mame\luaengine.cpp) . UI . Fixed out-of-bounds access when no primary items are visible, fixes GitHub #12429 (SIGSEGV crash on MAME4droid new support for touch screens). Also fixed separator being highlighted as though it were selectable. . Ensure WM_MOUSE* to WM_POINTER* event translation is always disabled (osd\windows\window.cpp) . 3rdparty: Updated 3rdparty\softfloat3. Softfloat3 was always being built for a big-endian host, causing incorrect math on LE x64 and AArch64 machines. Fixed up Softfloat3 to build properly as part of MAME and up-ported the Bochs extensions. In latest Bochs, they were only partially up-ported and Softfloat3 had been hacked up to be more like 2; here they're fixed to work with stock Softfloat3. . PLUGINS: Added support for Game & Watch 'Donkey Kong Jr (New Wide Screen)' and Tandy Radio Shack Color Computer 'Zonx'. Added delay to ballbomb/lupin3 entry to fix saved hiscore loading (plugins\hiscore\hiscore.dat). . Relax log message. Get rid of verbose call and reword comments (machine\watchdog.cpp). . Fixed undefined behavior in find_approximate_matches. If 'it' points to the last element of 'penalty', the 'resize' call invalidates it and the subsequent call to 'emplace' is undefined. This causes a crash in MSVC debug mode. Fixed it by resizing _after_ emplacing (emu\drivenum.cpp). . Fixed core_file failing to propagate write errors (util\corefile.cpp) . Added assertion to write_at equivalent to the one in write. Checks for invalid results from underlying write call. Also more const (util\ioprocs.cpp). . Consolidated drivers in single files (btoads.cpp, goldstar.cpp, m10.cpp, m107.cpp, m52.cpp, m57.cpp and m58.cpp) . Added sections with recommendations for submitting machines that require media and/or user intervention to start up (docs\source\contributing\index.rst) . MiniMAWS: Fixed deprecation warning in Python 3.11 (CGI module deprecated) (scripts\minimaws\lib\wsgiserve.py) - Compiling . Fixed various warnings (debugger\osx\debugview.mm, netdev\taptun.cpp, sound\coreaudio_sound.cpp and tools\aueffectutil.mm) . Got rid of some sprintf and strcat (generates warnings on macOS) (sharc\sharc.cpp, emu\image.cpp, emu\network.cpp, konami\zs01.cpp, sega\segaufo.cpp and taito\wgp_v.cpp) . Fixed build error on VC++ (emu\emucore.h) . Added missing #include for std::lround() (input\input_sdl.cpp) (Build MAME on NetBSD). - Debugger: Fixed tracesym command outputs NULL strings in case of single symbol (debug\debugcmd.cpp) (ID 08870) 0.266 - New games: Jumbo Godzilla and Medal Network: Rockman EXE - New Working games: Alone Shettle Crew, Moriguchi Hiroko no Quiz de Hyuu!Hyuu! (Ver 2.2J 1995/05/25) and Video Hustler (bootleg, set 4) - New Non-Working games: Ganbare Momotarou Oni Taiji, Jail Break (Recreativos Franco slot machine), Jungle's Animals (v3.0), Kong Ball (early prototype), Long Hu Feng Yun Gao Qing Ban (V206CN), Long Hu Zheng Ba Gao Qing Ban (V105CN), Monkey Jump, New DongmulDongmul 2, Onliner Touch Party, Power Ball (prototype), Radical Enduro (early prototype), Tairyo-Daiko 337 Byoshi, 'unknown gambling game on Inder pinball hardware' and 'unknown Ram Star multi-game (version 80.1)' - New clones: Cobra Sport Dart / Tour Sport Dart (AY-8910 sound), Double Dragon (Japan set 2), Frog (Hermatic, bootleg on Galaxian hardware from Electro Game), The Glob (Pac-Man hardware, set 2), Jump Bug (bootleg, set 2), Lucky Seven, Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware, set 2), Quick & Crash (set 2), Secret Agent (Modular System), Super Galactic Wars (bootleg of Galaxian), Superbike (bootleg on Galaxian hardware), Tetris (bootleg set 7, with OKI M5205), Tetris + Cherry Master (Corsica, v8.01, Korean bootleg), Trojan (Romstar, set 2), Video Hustler (bootleg, set 5) and Zero Time (Spanish bootleg, set 2). - New PinMAME games: Antar (Recel) and Rollergames (LA-1) - New drivers: conliner.cpp, cubieboard4.cpp, ganbaremo.cpp, ramstar.cpp rfjailbrk.cpp and shettle.cpp - New devices: bongo_sound, id245p01, konami_dual_pccard, m68000msh and pm24276 - New Wayder Cheat.dat: https://ss1.xrea.com/nekoziman.s601.xrea.com/cheat/ - Bob Zed (What's new video): https://youtu.be/PJCHnGDHJ9M - CPU . DEC T11: Reuse z80_daisy_chain for QBus vectored interrupts and forward INIT signal to all cards on QBus. . Motorola MC6809: Fixed invalid escape sequence warnings (m6809\m6809make.py) . Rockwell PPS-4/2: Reverted incorrect ADSK change that was originated from a bad dump . ST0016: Improved documentation comments based on PR#7786 . Texas Instruments TMS34010: Suppress side effects for debugger reads - SOUND . OKI MSM9810 ADPCM: Implemented sequencer . Yamaha YMZ770C AMMS-A: Added decode of "AMMSL" type sample for YMZ770B (sound\mpeg_audio.cpp and sound\ymz770.cpp) - DEVICE . ATAPI CD/DVD-ROM and SCSI CD/HD: Playback from current head and other misc cleanup. Implemented T10MMC_CMD_MECHANISM_STATUS. Implemented TOC_FORMAT_FULL_TOC, TOC_FORMAT_SESSIONS and return proper indexes for T10MMC_CMD_READ_SUB_CHANNEL (machine\t10mmc.cpp). . CD-ROM: Added preliminary support for multisession CD-ROMs, indexes and track flags. Refactoring. Read all indexes from cue files. Read in track flags from cues. Multisession support for cues (util\cdrom.cpp). . DECO 52 Sprite: Use device_gfx_interface for decoding graphics and cleaned up code. Also do configuration at machine configuration time. . Floppy: Added write support (formats\fs_fat.cpp). Note: Removal of files is untested and floptool does not have a command to delete a file. . Hitachi HD44780 LCD Controller: Simplify some code (video\hd44780.cpp). KS0066U f00 rom validated on a live PSR. . PWM Display: Fixed potential time travel issue . S3 86C3xx: Initial steps for major structural refactoring. Flatten s3dvirge.s3d down to one struct (m_bitblt), get rid of src_stride and dest_stride fns, updated QA. RAMDAC runs in unpacked mode if streams processor disabled. Added primary streams stride override, fix Ubuntu flavor gfxs. Moved NOP logic in dequeue fn. Merged draw & command timers in one, simplify state logic, workaround GFX corruption issue. Refine a bit FIFO status. Base conversion to FIFO (video\s3virge.cpp). . Yamaha SWP30 sound chip: Improved DPCM sample decompression (sound\swp30.cpp) . Z80 CTC Channel: Fixed channel bus readback on unset timer. Fixes (MESS) x1turbo not detecting YM regression caused by MAME 0.209 (Prevent integer overflow in Z80 CTC device, which causes a runtime error on WebAssembly builds) (machine\z80ctc.cpp). - 1945kiii.cpp: Cleanups. Use generic gfx decode layout. Use C++ style comment for single line comments. Reduced preprocessor defines. Constantize variables. - 3x3puzzl.cpp: Cleanups. Use generic gfx decoding layouts. Use array for Tile RAM and Tilemap. Use C++ style comments for single line comments. Fixed spacing. Reduced preprocessor defines. - aerofgt.cpp: Cleanups. Split driver state class to reduce optional object finders and variables. Reduced duplicated code. Use generic graphics decoding layouts. Fixed aerofgtb sprite/tilemap offset. Reduced literal tag usage. Improved names of address map functions. Use memory_bank for pspikesb and pspikesc OKI bank switching. - backfire.cpp, deco156.cpp and simpl156.cpp . Use memory_share_creator instead unique_ptr/array . Changed rowscroll RAM size to 0x800 words. This matches the size of the mapping in the address map and fixes buffer overruns (dataeast\simpl156.h). - belatra.cpp: Tried to give the driver some flesh - blmbycar.cpp: Hookup Blomby Car button 2 in digital mode, demoted Water Balls to MACHINE_IMPERFECT_TIMING and upgrade notes. - cb2001.cpp: Updated tile banking, works better with the newly dumped set 'New DongmulDongmul 2'. Converted driver to use MAME tilemaps and started adding real DIP definitions. - coolpool.cpp: Moved different configurations to separate driver state classes. Use palette device for amerdart palette. Suppress side effects for debugger reads. Use logmacro.h for configurable logging. Cleaned up code. - downtown.cpp: Cleanups. Use logmacro for logging functions. Split driver class related to Tilemap chip and X1-010 soundchip. Use C++ style comments for single line comments. Fixed naming for ROM region and shared RAM tags. Reduced literal tag usages. Fixed PCMMUTE bit for calibr50. Suppress side effects for debugger reads. - esd16.cpp: Constantize variables - fromanc2.cpp: Cleanups. Split driver state class to reduce optional object finders. Reduced literal tag usage and runtime tag lookups. Suppress side effects for debugger reads. Use generic graphics decode layout. Use C++ style line comments. - globalvr.cpp: Added info about hardware setups (https://service.globalvr.com/reference/default.htm) - gts1.cpp: Redumped A1752CF BIOS rom - konamigq.cpp, konamigv.cpp and twinkle.cpp . Process SCSI DMA transfers instantaneously. Avoids issues described in (ID 08860) (Loading parts are VERY slow). Added TODO notes about implementing correct DMA timings. . No need to cancel a newly allocated timer in konamigq.cpp - ksys573.cpp . Moved PC Card devices to devices\bus\pccard and changed signals to match specification to avoid unnecessary inversions. . Added new KONAMI_DUAL_PCCARD device, used by Punch Mania 2 to allow 2 x 32MB linear flash cards to be installed in a single slot (replacing the previous 64MB linear flash card, that does not seem to exist) (pccard\konami_dual.cpp). . Renamed the remaining 16MB and 32MB flash cards, to indicate that they are rebranded Fujitsu cards. . Linear flash cards can now be write protected (pccard\linflash.cpp). . Added new ID245P01 device, a rebranded Sharp linear flash card that is also used by Konami and PM24276 device, a 16 bit linear flash card. - mcr68.cpp: Merged driver files - meritm.cpp: Use Microtouch touch-enabled layout for Megatouch III/IV/5/6/7 - micro3d.cpp: Cleanups. Use C++ style comments for single line comments. Use reference instead pointers. Added missing items into save state. Reduced unnecessary lines. Fixed variable and function namings. Suppress side effects for debugger reads. Use array for noise generator. Constantize variables. Reduced preprocessor defines. - midvunit.cpp: Split driver state class to reduce optional finders and cleaned up code: Made video clock match PCB documentation (33.3333MHz). Suppress side effects for debugger reads. Added missing data members to save states. Use logmacro.h for configurable logging. Cleaned up member and region naming and const-qualify more variables. - midwayttl.cpp: Added preliminary list of games - midyunit.cpp: Moved different sound systems to separate driver state classes. Also simplified machine configurations and added missing data members to save states. - midzeus.cpp: Cleanups. Split driver state class per IO config. Use C++ style comments for single line comments. Use logerror.h for logging function. Reduced unnecessary lines. Constantize variables. Reduced preprocessor defines. Fixed naming for ROM region and tags. Reduced runtime tag lookups. Moved driver init code into machine_start and address map. - mtouchxl.cpp: Added touch-enabled layout. Improved pointer mapping code (layout\microtouch.lay). - ninjakd2.cpp: Updates and cleanups: Changed robokid and omegaf palette format to 15-bit. Improved graphics ROM region names. Suppress side effects for debugger reads. Removed unnecessary prefixes from function names. Reduced use of preprocessor macros and changed single-line comments to C++ line comments. - nmg5.cpp: Fixed ROM region naming. Simplify gfx decode layout. - pntnpuzl.cpp and tmaster.cpp . Added touch-enabled layout with touchscreen and buttons to Paint 'N Puzzle. All gameplay controls work with mouse/touch. Added checks for debugger accesses on reads with sideeffects and added object finders for inputs. Improved pointer mapping code (layout\pntnpuzl.lay). . Recycled touch-enabled Megatouch XL layout for tmaster driver - segaybd.cpp: Switch Sega Y-Board games back to Musashi. Fixes Power Drift and clones locks up with black screen (ID 08783). Added option to use Musashi for M68000 emulation. - seta2.cpp: Cleanups: Moved mj4simai-specific stuff into derived mj4simai_state class. Reduced literal tags and run-time tag lookups. Suppress side effects for debugger reads. Use logmacro.h logging utilities, made more variables const. Use C++ line comments for single line comments and fixed spacing. - silvmil.cpp: Fixed ROM region namings. Reduced literal tag usage. - ssv.cpp: Cleanups and modernizations. Split driver state class for with DSP. Use C++ style comments for single line comments. Suppress side effects for debugger read. Reduced preprocessor defines, duplicate, unnecessary lines, usage of literal tags and runtime tag lookup. Constantize variables. Fixed spacing, typename values and document. Use generic gfx decode layout for gdfs tilemap. Fixed naming for ROM region and tags. Cleaned up key matrix code. - taito_f3.cpp . Major rewrite. Fixes tile layer 4 is not visible at cutscenes in Arabian Magic (ID 02733). Fixes incorrect boss explosion in Bubble Memories and clones (ID 07321). Fixes the traces of objects (sprites) are not displayed during the scene changes in zone G, H, I and J (ID 01922), the oval pond(?) has no transparency and the background has no gradient shadow in the boss scene of zone H and J (ID 01923) and the shadow of the boss hehind the cloud can not be seen in zone V (ID 01924) in Darius Gaiden and clones. Fixes "Mission Name" screens have graphics issues (ID 01907), shooting lights doesn't make the room go dark (ID 02002) and missing floor darkening when lighting is destroyed (ID 05893) in Elevator Action Returns. Fixes completely black continue screen in Grid Seeker (ID 00026). Fixes small square glitches on the title screen and the scrolling of the background at the beginning of Area 1's framerate is off when moving the ship (ID 08817) in Gunlock and clones (ID 02527). Fixes transparent (down)scaled graphics in clone Kaiser Knuckle (Ver 2.1J 1994/07/29) are drawn incorrectly (ID 08697). Fixes missing blending effects in Puchi Carat (ID 03741). Fixes very dim display in clone Space Invaders DX (Ver 2.6J 1994/09/14) (ID 02097). . Optimized for performance (taito\taito_f3_v.cpp): Changed per-pixed blend Z buffers from array-of-structures to structure-of-arrays. Allow vectorization of line blending operations. Restored empty line optimization by tracking tilemap row use. Consolidate sprite frame buffers (still pulls from it multiple times for each priority group). Rearranged various operations to improve performance. . Fixed quiz text positioning and heavy sprite window usage for Moriguchi Hiroko no Quiz de Hyuu!Hyuu! Promoted game to working. - taitogn.cpp: 'ATA Flash PC Card' creates a generic CIS and identify buffer if it is missing from the CHD, also the card can be detected (pccard\ataflash.cpp). - Air Rescue: Mask address for data RAM accesses in NEC uPD7725 - Alone Shettle Crew: Moved game to its own driver. Added preliminary sprites support and improved inputs. Improved colors, converted background layer to tilemap and workaround stuck sprite. Used shorthand variable types uniformely. Promoted game to working. - Black Jack (Irem): Dumped PROMs. Renamed driver to irem\m78.cpp since that's how the PCB is marked. Identified video and palette basics. Added second layer, improved colors and added basic inputs. Reverse GFX bitplanes, fixes service mode color text. - Bongo: DIP switches are memory mapped in clone Bongo (Galaxian hardware). Hooked up Galaxian discrete sound for clone Bongo (Galaxian hardware). - Cobra Sport Dart / Tour Sport Dart: Added very basic memory maps. Added PCB ASCII layout for AY-3-8910A based PCB. - Crypt Killer: Fixed hard disk image tag. Fixes game fails to boot, throws an error to "MEDIA Check" (ID 08856). - Data East: Cleanups for various drivers: Constantize values. Reduced literal tags and runtime tag lookups. Fixed ROM region namings. Suppress side effects for debugger read. Simplify deco146/104 related function namings. Reduced duplicates. Reduced unnecessary lines. Fixed sound routing if chip and/or PCB supports mono sound only. Fixed palette entries (boogwing.cpp, cbuster.cpp, cninja.cpp, darkseal.cpp, dassault.cpp, dblewing.cpp, deco32.cpp, dietgo.cpp, funkyjet.cpp, lemmings.cpp, mirage.cpp, rohga.cpp, sshangha.cpp, supbtime.cpp and tumbleb.cpp). - Dribbling: Fixed the PARATA netlist and optimized performance. Removed the SOUND_INCOMPLETE tag. Putting stop_palla and calcio netlists behind FRONTIER. Put all sublists behind a temp FRONTIER (mr\nl_dribling.cpp). - El Circulo: Added a basic memory map - Got-cha Mini Game Festival: Simplify gfx decode layout - Hammer Champ: Redumped sound ROM - Jackal: Dumped correct GFX ROMs for clone Jackal (World, Rotary Joystick) - Legendary Wing: Identified Legendary Wings rev. C and correct ROM labels - Pocket Gal Deluxe: Simplify gfxdecode layout. Fixed metadata for bootleg set (title screen says (c)1993 Data West). - Scramble: Added rudimentary protection circumvention for clones Scramble (Model Racing, Italian bootleg), Scramble (unknown bootleg) and New Century (Spanish bootleg of Scramble). The data bit 2 was problematic in the original dump of 303.fg2 in clone Scramble (Model Racing, Italian bootleg), but ROM is clearly the same as the one in clone Scramble (Recreativos Franco, Spanish bootleg). Left as BAD_DUMP just as extreme precaution. - Sky Lancer: Make game use canonical 3 'Lives' as default DIP - Space Fury: Redumped speech ROMs for clone Advisor (Italian bootleg of Space Fury) - Video Hustler: Fixed clone Video Hustler (bootleg, set 4) stuck on boot - Promoted to working. - Wall Crash: Added missing PLD to clone Brick Blast (bootleg of Wall Crash). Also reformatted single line comments. - Water-Nymph: Fixed duplicate SW4:6 - Wheels & Fire: Demoted game to MACHINE_NOT_WORKING - XX Mission: Mark tiles dirty on writing to tilemap RAM. Refactored common parts of address maps into a common function. Simplified graphics decoding layouts. - Fixed rom names in ddragon.cpp, gts1.cpp and segag80v.cpp - Description changes of Antar (Playmatic, set 1), Antar (Playmatic, set 2), Avengers (US, rev. A), Avengers (US, rev. C), Avengers (US, rev. D), Black Jack (Irem, satellite unit, rev. T), Bongo, Bongo (Galaxian hardware), Cobra Sport Dart / Tour Sport Dart (OKI M6376 sound), Double Dragon (Japan set 1), The Glob (Pac-Man hardware, set 1), Harley Davidson (Stern, CPU 1.08, display F1.05, France), High Roller Casino (CPU 2.10, display A2.00), Jump Bug (bootleg, set 1), Legendary Wings (US), Legendary Wings (US, rev. C), Mahjong Reach (Ver. 1.00, bootleg), Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware, set 1), Power Spikes (China, bootleg), Quick & Crash (set 1, V2.200), Section Z (US), Section Z (Japan, rev. A), Trojan (Romstar, set 1) and Zero Time (Spanish bootleg, set 1) - Dipswitch fixes in cb2001.cpp, funkybee.cpp, m78.cpp, scobra.cpp, shettle.cpp and subsino2.cpp - Renamed (avengersb) to (avengersc), (avengersa) to (avengersb), (avengers) to (avengersa), (avengersc) to (avengers), (bongoa) to (bongog), (ddragon) to (ddragonj), (ddragonw) to (ddragon), (ddragonb) to (ddragonbl), (ddragonb2) to (ddragonbl2), (ddragon2b) to (ddragon2bl), (ddragonba) to (ddragonbla), (ddragonw1) to (ddragona), (lwings2) to (lwingsa) and (zerotimeu) to (zerotimea) - MAME . VIDEO RENDERING SYSTEM . Log script errors at warning level rather than verbose level (plugins\layout\init.lua). Reordered all layouts to place views after element and group definitions and scripts last. This matches how layout files are interpreted by MAME. Fixed various errors identified by validating layout files against an XSD schema. . Removed some now unneeded trampolines for flipscreen related functions (bagman.cpp, holeland.cpp, mermaid.cpp, pitnrun.cpp, skyarmy.cpp and zaccaria.cpp) . Clarified licensing (opengl\gl_shader_tool.h) . UI . Update slider list on demand rather than on frame updated. Fixes cycling through BGFX chain effects with tilde menu crashes (ID 08857) (osd\mac\osdmac.h+window.cpp, osd\modules\lib\osdobj_common.cpp+osdobj_common.h, osd\sdl\osdsdl.h+window.cpp and osd\windows\window.cpp/h). . Don't rebuild menu just to update one item. Fixes mouse input in Tape Control menu doesn't work (ID 08859). Also automatically rebuild if a script or something changes media underneath. Ensure device monitored for media change is up-to-date (ui\tapectrl.cpp). . Fixed issue with focus rotation when filter matches no items (ui\selmenu.cpp) . INPUT: Added an SDL lightgun provider. This does essentially the same thing as the Win32 lightgun provider, mapping the absolute pointer position over the window to gun axes (input\input_sdl.cpp). Also added a bunch of const in the windows input handling code. . 3rdparty: Updated ASIO to 1.30.2 (3rdparty\asio). Patch config.hpp to hopefully work with strict preprocessor warnings (asio\detail\config.hpp). Set Win32 API version to 0x0600 for Windows SDL builds (osd\sdl_cfg.lua and osd\asio.h). . Bumped version, as features that are not in a released version of MAME are now documented (docs\source\*). . Documented taps and contention/interruptibility (docs\source\techspecs\memory.rst) . Consolidated drivers in single files (dday.cpp, portrait.cpp and powerins.cpp) - Compiling . Fixed a few class memory access warnings (exidy\vertigo_v.cpp, exidy\victory_v.cpp, konami\viper.cpp, sega\saturn_v.cpp, sega\segaic16.cpp, sega\segaic16_road.cpp, seibu\seibucop.cpp, shared\xbox_usb.cpp, sound\spu.cpp, tatsumi\tx1_m.cpp and ussr\tiamc1_a.cpp) . Added override qualifiers for overridden virtual member functions (emu\http.cpp and util\server_http_impl.hpp) . LUA engine: Work around apparent regression in Clang 18. When taking a pointer to a static member function template in a class template, Clang reports a substitution error if the noexcept specification uses an expression that depends on class template arguments. See https://github.com/llvm/llvm-project/issues/91362. Work around another place where noexcept depends on class template arguments (3rdparty\sol2\sol\sol.hpp). . Changed a pointer to a const reference in an API (osd\windows\window.cpp) . Removed an array overflow (this is dead code, function never gets called, but GCC 14.1 complained) (MESS) rm380z_v.cpp. 0.265 - New games: CEI 60.04 (CEI 906-III Poker, Schedule 09F) - New Working games: Tokimeki Memorial Oshiete Your Heart (GQ673 JAA), Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA) and Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB) - New Non-Working games: Alone Shettle Crew, Black Jack (Irem), Dawg Gone Fun, Hammer Champ (Japan), Knights in Armor, Man Guan Caishen 3 (V101CN), Man Guan Zhi Zun (V100CN), Neo Print - Fairy Tales (World) (T4i 3.07), Qing Cheng Zhi Lian, Que Huang Zheng Ba (V100CN), Soccer 10 (ver. 16.44) and Wheels II - New clones: Animal House (bootleg of Jingle Bell), Bongo (set 2), CEI 51.08 (CEI 906-III Poker, Schedule 09F), CEI 51.08 (CEI 906-III Poker, Schedule 21F), Galaxy Games StarPak 4, Gorf (Spain, Irecsa license), Kokontouzai Eto Monogatari (Japan, prototype?), Mahjong Gekisha Part II (Japan), Mahjong Reach (Ver. 1.00), Mahjong Reach Part II (Ver. D88), Poker Ladies (Uncensored bootleg, encrypted), Ruleta RE-800 (v1.0, set 2), Super Ms. Pac-Man (turbo hack, NVC284/NVC285 hardware) and Xiao Ao Jiang Hu (China, Ver. 1.00) - New PinMAME games: Scared Stiff (1.1) - New drivers: blackjack92.cpp, dawg.cpp, midwayttl.cpp, namcoeva.cpp and sealy_eagle.cpp - New devices: 24c128, 24c256, cat702_piu, dac3350a, isa16_piu10, macronix_29f1610mc, macronix_29f1610mc_16bit and nss_tvinterface - Bob Zed (What's new video): https://youtu.be/_WATWJ7mhtQ - CPU . Dynamic Re-Compiling: Avoid deprecated functions (drcbex86.cpp\drcbex64.cpp) . Intel 80186 . Fixed DMA on timer2 and timer2 as prescaler. Fixed drq_callback case when used with timer 2. Only run timer 0,1 when not incremented via timer 2 pre-scaler. Removed outdated error message (i86\i186.cpp). . Use cycles_to_attotime and attotime_to_cycles for timer period calculation (i86\i186.cpp). Gives better timings for Am188EM-based games in Subsino2 driver. . Motorola MC6801: Fixed new regression with eat_cycles (m6800\m6801.cpp) . Motorola MC68000: Fixed pc interactions in debugger (m68000\m68000.cpp) . Toshiba TMP95C06x: Fixed setting programcounter in debugger (tlcs900\tlcs900.cpp) (ID 08839) - SOUND . AY-3-8910A: Suppress configuration warnings . DCS/2 Audio xxxx: Implemented device_mixer_interface for sound output. Suppress side effects for debugger reads. Reduced use of literal tags. Reduces public class members. Use C++ style line comments (shared\dcs.cpp; drivers: atlantis.cpp, kinst.cpp, midtunit.cpp, midvunit.cpp, midwunit.cpp, midxunit.cpp, midzeus.cpp, seattle.cpp, vegas.cpp, wpc_95.cpp, wpc_dcs.cpp, wpc_s.cpp). . Micronas MAS 3507D MPEG decoder: Mix sample internally before playing (sound\mas3507d.cpp) - DEVICE . CD-ROM: Zero entire output TOC structure in cdrom_file::parse_metadata. Fixes issues with fields that are not explicitly assigned in all situation (util\cdrom.cpp). . Floppy: Removed unused variable (machine\upd765.cpp) . Hitachi H8: Correct division of negative numbers (h8\h8.lst) . I2C Memory: Added 24C128 and 24C256 I2C Memory variants . Intel 8253 PIT: Fixed old regression with mode 3 and odd timer count (machine\pit8253.cpp) . Midway IOASIC/Serial PIC XXXX: Reduced hardcoded tags and cleaned up code. Suppress side effects for debugger reads. Use C++ style line comments for single line comments. Reduced use of literal tags (midway\midwayic.cpp; drivers: atlantis.cpp, midvunit.cpp, midwunit.cpp, midzeus.cpp, seattle.cpp and vegas.cpp). . Z80 CTC and Z80 DMA Controller: Added support for derived device classes - 4roses.cpp: Hooked both PIAs 6821 for I/O. Tied basic input lines. Added/fixed documentation and notes. Some cleanups. - anyworks.cpp: Changed placeholder CPU from SE3208 to ARM9 - bmcpokr.cpp: Ported over backpen handling from Koftball driver, fixes some minor GFX problems. - calomega.cpp: Added more/correct documentation - capbowl.cpp: Added machine().side_effects_disabled() check for debug - de_3.cpp and whitestar.cpp (PinMAME) . Implemented device_mixer_interface for sound output. Also removed root device references in tags and added data members to save states (shared\decobsmt.cpp). Use C++ line comments for single line comments. . Register data members for save states and suppress side effects for debugger accesses. Reduced unnecessary memory banks, literal tags and excess configuration (pinball\decodmd1.cpp). - deco32.cpp: Moved Tattoo Assassins to its own state class, use C++ line comments for singleline comments. - fastfred.cpp: Correct XTAL - harddriv.cpp: Correct brake pedal ADC channel for Street Drivin' (prototype) (ID 08221). Added note about brake calibration for Street Drivin' (prototype). Fixed steering and brake controls ranges for Hard Drivin's Airborne (prototype) and Street Drivin' (prototype). - igs_fear.cpp, igs_m027.cpp and pgm.cpp: Some standardization and pending device conversion (igs\pgmcrypt.cpp) - igs_m027.cpp: Added decryption for Crazy Bugs (V103JP) and Que Long Gao Shou, fixed some others. - itech8.cpp: Cleaned up code. Removed TLC34076 for games that lack it. Use palette devices for palettes and input merger for VIA/YM3812 FIRQ. Reduced tag lookups and suppress side effects for debugger accesses. Use more const. Changed single-line comments to C++ line comments. - itech32.cpp: Cleaned up code. Reduced tag lookups, suppress side effects for debugger reads. Improved ROM region names. Moved some game-specific members out of the base driver state class. Reduced preprocessor macros and duplicated code. Changed logging to use logmacro.h. - koftball.cpp . Added 3rd and 4th tilemap layers, fixes missing GFX. Ported over IRQ handling and 'pixmap' related methods from BMCpokr driver. Test mode is now visible, although badly. Hooked up DIP switches. Identified some DIPs and inputs. Decoded bitmap layer and added back layer pen. . Added inputs and hooked up NVRAM for Jinxiu Zhonghua. - konamigq.cpp: Use "new SCSI" 53CF96 and drives - konamigv.cpp . Promoted Tokimeki Memorial Oshiete Your Heart (GQ673 JAA), Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA) and Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB) to working. . Use "new SCSI" 53CF96 and drives . Redumped CD for Dead Eye (GV054 UAA01). Updated Dead Eye (GV054 UAA01) CHD by combining five more reads. Marked Dead Eye as having imperfect graphics due existing texturing issues that cause in-game text to be jumbled. . Marked nagano98, naganoj and simpbowl as not supporting save states due to DMA pointer in member variable. . Tokimeki Memorial Oshiete Your Heart games (tmosh, tmoshs and tmoshsp) . Implemented inputs and printer check. Added GSR sensor input. Added simulated pulse sensor simulation. Added stub printer simulation allowing games to be played. Added configuration option for direct heartbeat pulse input. Added printer simulation. Removed inputs that are not present. These inputs are not physically present and are not displayed in test mode. . Added hand crafted EEPROM for 'Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)' to allow the game boot. . Correct SPU audio channel routing ('Beat the Champ' test mode exposes this). - konamim2.cpp: Fixed array out of bounds access on m_tm.m_regs (konami\3dom2_te.cpp) - lwings.cpp . Improved MCU/soundlatch timing. Fixes Avengers and clone Hissatsu Buraiken MCU synchronicity issue (ID 08840). . Removed now unused variable in Legendary Wings - midyunit.cpp: Various cleanups: Moved Terminator 2 and Mortal Kombat "YAWDIM" bootleg to derived classes. Simplified Mortal Kombat "YAWDIM" bootleg machine configuration. Suppress side effects for debugger reads. Improved ROM region naming. Use logmacro.h for configurable logging. Use C++ line comments. Use callback for interrupt output and reduced hard-coded tags and unnecessary configuration (midway\midtunit_v.cpp). Moved variants with ADPCM ad DCS sound hardware to separate driver state classes (midway\midtunit.cpp). - midwunit.cpp and midxunit.cpp: Suppress side effects for debugger reads. Removed unnecessary object finders and #includes, reduced literal tags and use logmacro.h for configurable logging. Removed unnecessary prefixes from member function names, use C++ line comments for single line comments and reduced preprocessor macros (midway\midwunit.cpp). - namcops2.cpp: Documented English BG3 dongle - namcos12.cpp: Fixed out of bounds array access. Added error messages for unimplemented clock settings (machine\icd2061a.cpp). - srmp2.cpp: Added PCB ref. numbers for all games - subsino.cpp . Updated 'New DongmulDongmul' ROM loading so that it boots. Still need correct reel GFX loading/decoding and also hangs after a while. . Gave clone New HUNTer (bootleg, set 3) its own memory map, makes it boot. Still not working. - subsino2.cpp: Updated hardware notes. Provided actual dump of DS2430A EEPROM for Bishou Jan (Japan, Ver. 203). Dumped DS2430A EEPROM for Ying Hua Lian 2.0 (China, Ver. 1.02). - twinkle.cpp: Migrated to "new SCSI" - williams.cpp and wmg.cpp . Various cleanups: Use memory views for ROM/palette overlays and simplified banking. Suppress side effects for reads from the debugger. Reduced tag lookups. Improved ROM region naming. . williams.cpp: Eliminated address_map_bank_device. Got rid of unnecessary williams2_state derived classes. Simplified class hierarchy. Added missing item to save states for Mystic Marathon. Cleaned up ROM loading for Defender hardware. . Williams Multigame: Eliminated address_map_bank_device. Removed dependency on defender_state. Use a memory bank for NVRAM and got rid of a really pointless trampoline function. - xtom3d.cpp: Added 'ISA16 PIU10 for MK-III' card (misc\xtom3d_piu10.cpp) for Pump It Up. Added Micronas DAC 3350A device (sound\dac3350a.cpp), CAT702 variant with different interface logic for PIU10 (machine\cat702.cpp) and Macronix 29F1610MC Flash device (machine\intelfsh.cpp). - 1942: Correct default 'Lives' dipswitch (ID 08848) - Attack UFO: Mask offset to fix possible array out of bounds access (sound\mos6560.cpp) - Bu Bu Car: Worked around crash for now. Added preliminary decryption (igs\igs036crypt.cpp). - Dribbling: Dumped missing ROMs from the Automave version - Games Family: Stub motherboard portion - Get A Way: Fixed undefined behaviour when reset occurs during a data derivation sequence (tms9900\tms9900.cpp) - Gladiadores: Added a Counters SEEPROM dump to gladiador. The SEEPROM content probably is probably unique for each machine, possibly tied to the serial number. - Heat of Eleven '98: Redumped CD - Last Fighting: Dumped DS2430A EEPROM - Long Hu Tebie Ban: Redumped game - Lotto Fun: Fixed old regression with ticket dispenser (writepa_handler -> writepb_handler) (ID 08847) - Mahjong Tensinhai (Japan): Dumped TMP90841 internal ROM - Ms Pac Man Twin: Added extra documentation and ASCII PCB layers - Rolling Crash / Moon Base: Fixed 'Moon Base' claiming "you are too strong". Note: Looks like simple protection for 'Moon Base', see routine at $0EB1, gets called at $0DD2. It checks for score overflow, and the game ends with message "YOU ARE TOO STRONG" when score overflows from 99990 to 0. If bit 0 value = 1, the game ends prematurely when score hits 1000. - Sand Scorpion: Suppress side effects for debugger reads of sound latches. Also give sprite ROM region a more meaningful name. - Skimaxx: Suppress side effects for debugger reads and reduced tag lookups - Tong Zi Maque: Descrambled Oki ROM - Fixed rom names in calomega.cpp, dribling.cpp and karnov.cpp - Description changes of Black Jack (InterFlip), Bongo (set 1), Cal Omega - Game 17.51 (Gaming Draw Poker, Sch 07-0T), CEI 51.07 (CEI 906-III Poker, Schedule 05F), CEI 51.08 (CEI 906-III Poker, Schedule 05F), Destroyer (Atari, version O2), Destroyer (Atari, version O1), Destroyer (Cidelsa, set 1), Destroyer (Cidelsa, set 2), Gorf (program 1, with French language ROM), Gorf (program 1, with German language ROM), Hana Jingi (Japan set 1), Hana Jingi (Japan set 2), Hana Kochou (Japan), Mahjong Electromagnetic Base (Japan), Mahjong Electromagnetic Base (Japan), Mahjong Electron Base (parts 2 & 3, Japan set 1), Mahjong Electron Base (parts 2 & 3, Japan set 2), Mahjong Electron Base (parts 2 & 4, Japan bootleg), Mahjong Electron Base (parts 2 & 4, Japan), Mahjong Gekisha (Japan), Mahjong Ougon no Hai (Japan bootleg set 1, medal), Mahjong Ougon no Hai (Japan bootleg set 2, medal), Mahjong Ougon no Hai (Japan bootleg set 3, medal), Mahjong Reach (Ver 1.00, bootleg), Mahjong Tenkaigen (Japan bootleg b), Mahjong Tenkaigen (Japan bootleg c), Mahjong Tenkaigen (Japan set 2), Mahjong Tenkaigen (Japan), Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan), Marvel Super Heroes (USA 951024 Phoenix Edition) (bootleg), MotoGP (MGP1004-NA-B), Night Love (Japan 860705), Oriental Legend / Xiyou Shi E Zhuan (ver. ???, Chinese Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 105, Korean Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 105, Taiwanese Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 111, Chinese Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 111, Korean Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 111, Taiwanese Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 112), Oriental Legend / Xiyou Shi E Zhuan (ver. 112, Chinese Board), Oriental Legend / Xiyou Shi E Zhuan (ver. 126), Oriental Legend 2 (Korea) / Xiyou Shi E Zhuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 203) [Oriental Ex], Oriental Legend 2 (Korea) / Xiyou Shi E Zhuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 205) [Oriental Ex], Oriental Legend Special / Xiyou Shi E Zhuan Super (ver. 100, set 1), Oriental Legend Special / Xiyou Shi E Zhuan Super (ver. 100, set 2), Oriental Legend Super / Xiyou Shi E Zhuan Super (ver. 101, Korean Board), Ruleta RE-800 (v1.0, set 1), Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826), Sanguo Qunying Zhuan Zhengzong Plus (bootleg of Knights of Valour Plus, set 1), Sanguo Qunying Zhuan Zhengzong Plus (bootleg of Knights of Valour Plus, set 2), Sanguo Qunying Zhuan Zhengzong Plus (bootleg of Knights of Valour Plus, set 3), Super Gem Fighter: Mini Mix (USA 970904), Super Gem Fighter: Mini Mix (USA 970904 Phoenix Edition) (bootleg), Wizard of Wor (with German language ROM), Xiyou Shi E Zhuan 2 (V101, China), Xiyou Shi E Zhuan 2 (V103, China), Xiyou Shi E Zhuan 2 (V104, China) and Xiyou Shi E Zhuan Super (ver. 103, China, Tencent) (unprotected). - Dipswitch fixes in 4roses.cpp and koftball.cpp - Renamed (mjreach) to (mjreachbl) and (galgame4) to (galgame4p) - MAME . VIDEO RENDERING SYSTEM . Support pressing multiple clickable layout items simultaneously. Allow UI elements to be drawn in any window (emu\render.cpp). Added layout view events for pointer input (emu\render.cpp and mame\luaengine_render.cpp). . Fixed possible array overflow with system name string (d3d\d3dhlsl.cpp) . Added clickthrough attribute (misc internal artwork). Allow layout views to control pointer display (emu\rendlay.cpp and ui\ui.cpp). Got rid of the "clickable artwork" system flag (emu\gamedrv.h). Disable orange mouse pointer (false positive clickable artwork detection) (misc internal artwork). Removed vertical widescreen views (shifter overlay). Removed orange mouse pointer/block clickable input (shifter overlay). Added opaque shifter option (shifter overlay). . DEVICES: Removed unneeded memset on attotime object in constructor (emu\diexec.cpp) . UI . Allow the UI handler to control pointer display (ui\ui.cpp). Added mouse/touch and more keys for navigating field state list (ui\analogipt.cpp). Use vertical swipe to scroll and horizontal swipe to adjust. Draw after processing input - greatly improves responsiveness. Ignore keyboard/gamepad input during pointer actions (ui\menu.cpp). Made left/right info pane arrows repeat when held. Use middle click to move keyboard focus. Let filter list scroll if it's too tall, and use a bit of horizontal padding. Improved divider sizing (ui\selmenu.cpp). . Don't allow clicks to pass through the confirm deletion prompt to the menu (ui\state.cpp). Fixed error message display and graphics/sound status not showing. Allow tap/click to dismiss error message (ui\simpleselgame.cpp). Show UI for choice filters when there are no choices - it's less confusing (ui\utils.cpp). Handle mouse wheel units properly (ui\menu.cpp and ui\selmenu.cpp). . Force left-align for view list. Use empty 'radiobuttons' to indicate current view (ui\videoopt.cpp). Made pointer activity timeout configurable (ui\ui.cpp and ui\videoopt.cpp). Hold Ctrl to jump to the next one-second interval for pointer timeout (ui\videoopt.cpp). . INPUT: Initial touch input support. Feed mouse/pen/touch pointer events through UI input manager with Win32 and SDL. Started migrating UI code to use new API and reworking mouse/touch interaction. Made scaling for mouse scroll better match RawInput and DirectInput (input\input_sdl.cpp). Added support for horizontal scroll axis (input\input_rawinput.cpp). Added support for scroll axes and more buttons to mouse/lightgun (input\input_win32.cpp). Don't fight over events with the UI manager - it breaks menus. Refuse to break if unable to take over UI input (debugger/debugimgui.cpp). Translate mouse position to window cooridinates for scroll wheel events (windows\window.cpp). Supply last mouse position for scroll wheel events if possible (sdl\window.cpp). Made zero input mask an error - it was only being used to block clicks (scripts\build\complay.py). . PLUGINS: Make string.char and string.format available to cheats (cheat\init.lua) . CHDMAN: Added support for extracting cue/bin GD-ROM images and producing one binary file per track. Use --splitbin/-sb option for extractcd to produce one binary file per track. When producing one binary file per track, the binary file name must contain a %t format conversion for the track number (tools\chdman.cpp). . 3rdparty: Updated AsmJit to upstream version 1.13.0 (3rdparty\asmjit) . Updated RTD to 2.0.0 and removed dependency on jQuery (docs\themes\sphinx_rtd_theme) - SDLMAME: Fixed a class memory access warning (osd_window_config initialises all members to zero in constructor) (osd\sdl\video.cpp) - Compiling . Cleared inappropriate execute bits on a few source files . Drop support for GCC < 10.3, Clang 6, SDL < 2.0.14 and Qt 5.10. Disabled GCC stringop-overflow warning due to numerous false positives (scripts\genie.lua). . Added C compiler flags for Wayland EGL from pkgconfig to OSD build options on Linux. This will hopefully fix compiling on openSUSE where Wayland headers are in \usr\include\wayland (osd\sdl_cfg.lua). . Added C compiler flags for Wayland EGL backend to BGFX build options (scripts\src\3rdparty.lua) . Removed folder from self #include (misc files) . Fixed a few class memory access warnings (misc\3do_m.cpp, bfm\bfcobra.cpp, midway\midyunit_v.cpp, phoenix\phoenix_a.cpp/h, nintendo\n64_m.cpp/n64_v.h/n64types.h, emu\render.cpp, machine\1801vp128.cpp/h, machine\fdc_pll.h, machine\iopdma.cpp, formats\wavfile.cpp, util\xmlfile.cpp and tools\regrep.cpp) . Handle UTF-8 Windows code page internally in osd_uchar_from_osdchar (osd\strconv.cpp) . srcclean batches of twenty files - improves performance when process creation or filesystem walk is expensive (makefile). - Debugger . Don't write data to socket in text mode (debugger\debuggdbstub.cpp) . Fixed bad iterator comparison in postfix conversion. One iterator was being compared with another from the wrong container. I observed this by chance when I hit an assert in a debug MSVC build with checked iterators enabled. This bug could cause dereferencing of a past-the-end iterator in expressions ending with an operator (debug\express.cpp). 0.264 - New games: 'Hana Awase 6 Part II' and Vampire (prototype?) - New Non-Working games: Alantin - Aladdin's Magic Lamp, Bao Qing Tian, Bu Bu Car (English), Cal Omega - Game 21.4 (Wild Double-Up Poker), Captain Shark (Ver. CS.01.6, Apr 21 2006), Caribe, Charleston (V2.1, Catalonia), Dark Seal (8-liner), 'Festival: Goldfish Scoop', Gladiadores (V1.0, CAA), Happy Farm (Ver. US.01.02.B), Happy Lucky!, Jinxiu Zhonghua, Maque Wangchao / Chaoji Damanguan 2 - Jiaqiang Ban (China, V100C), New Carrera - Version 2000, New DongmulDongmul, Prize Zone Gold (USA, v2.01), Pull The Trigger, San Se Caishen (Version 0502), Shizhan Sanguo Ji Jiaqiang Ban (Version 8.9 980413), Speed Master (Ver. V1.0, Apr 29 2004), Tong Zi Maque and Wicked Witch (Ver. AA.01.A) - New clones: 1942 (Itisa bootleg), Animal House (set 4), Bagman (bootleg on Moon Cresta hardware, set 3), Bomberman (Version 6.6, Avraam bootleg), Bomberman (Version 6.6, J.T. bootleg), Corsarios (Cirsa slot machine, V5.10D, Catalonia), 'Diviertate Galaxia (Multivideo, Spanish bootleg of Galaxian)', Dribbling (Automave), Flicky (128k Version, 315-5051, larger roms, newer), Fruit Dream (Japan, Ver. 1.10), Mr Pac-Turbo ('Made in Greece' Fermin bootleg), Ms Pac Man Twin (Argentina, set 2), Rail Chase (Japan, Rev B), Run Run (Do! Run Run bootleg), Speed Master (Ver. V1.0, Apr 28 2004), Speed Master (Ver. V1.0, May 23 2003) and Two Minute Drill (Ver 2.2A 1993/10/18) - New AGEMAME games: Instant Winner (Spanish) - New PinMAME games: Transporter the Rescue (LA-1) - New drivers: fstgfish.cpp, haplucky.cpp, przone.cpp, pullttrigger.cpp, sterz80.cpp, ticz80.cpp and vampire.cpp - New devices: atari_cx85, clgd5446_pci, g80_1500, h8s2310, h8s2311, h8s2312, h8s2313, h8s2315, h8s2316, h8s2317, h8s2318, h8s2319, hle_ps2_mouse, it8705f, kb_3270pc, kb_ec1841, kb_iskr1030, kb_ms_natural, kb_pc83, kb_pcat101, kb_pcat84, kb_pcxt83, keytronic_pc3270, keytronic_pc3270_at, mediagx_cs5530_video, mediagx_vga, mm74c922, mm74c923, nmk214, ns32381, pc_kbdc, pdc20262, przone_jamma_if, s3_86c764_vga, s3_86c864_vga, s3_86c964_vga, s3_86c968_vga, sis6236_vga, sis6326_agp, sis85c496_host, vision864, vision964, vision968 and w83787f - Bob Zed (What's new video): https://youtu.be/NIYm-3a0aHk - New Wayder Cheat.dat: https://ss1.xrea.com/nekoziman.s601.xrea.com/cheat/ - CPU . DEC T11: Improved trace trap processing (t11\t11.cpp) and added basic interrupt processing to the (MESS) K1801VM1 CPU. . Fujitsu MB884x: Clean up spacing, single line comments and shorthand variable types (mb88xx\mb88xx.cpp and mb88xx\mb88dasm.cpp). . Hitachi H8 . Split rx and tx clocks to make full duplex work. Use logmacro. Entirely revise clocking. Fixed sync transmissions. Suppress SCK transition at end of transmit sequence (h8\h8_sci.cpp). Clock divider table was the wrong way around (h8\h8_watchdog.cpp). Don't detect an nmi at power-on when initial pin state is 'ASSERT_LINE'. Removed unneeded trampolines (maybe a leftover from the past when emumem didn't support it). Fixed issue with multiple pending edge triggered irq (h8\h8_intc.cpp). . Prevent multiple interrupts when timer wasn't clocked. Removed impossible check. Overflow only happens when m_counter_cycle is the full range. Edge case: If live counter is above m_counter_cycle, first count to 0xff instead of immediate modulo. Fixed edge with compare match if both tt and tgr are larger than counter_cycle. Compare match event was off by 1 (h8\h8_timer8.cpp and h8\h8_timer16.cpp). Removed unneeded timer_tick function (h8\h8_timer8.cpp). . Fixed addx8/subx8 H flag when C=1 (h8\h8.cpp). Fixed absolute address bst/bist opcode IMM data (h8\h8.lst). h8s2329 ADCR CKS1 is on bit 3 and correct typo (h8\h8_adc.cpp). Apparently fixed Funcube watchdog reset issue. Improved overflow flag reset (h8\h8_watchdog.cpp). Fixed standby time travel problem. Added more variables to savestate (h8\h8*). Fixed N flag with exts opcode, regression with jsr abs8i, bst abs16 opcode and rte in normal mode (h8\h8.lst). . Correct typo with DASM abs16 (h8\h8d.cpp). Added internal rom to address map for some h8 devices (h8\h8*). Digital I/O ports are 8bit (probably leftover from when they were in AS_IO address map) (Misc h8 drivers: flashbeats.cpp, hrdvd.cpp, metro.cpp, namcond1.cpp, namcos10.cpp, namcos12.cpp, seta2.cpp and invqix.cpp). . Write hi-z output pins as 1 (h8\h8_port.cpp). Don't save the mode settings (h8\h8.cpp). . Hitachi H8S/2000: The abs16/abs32 variants of the bit operations seem to have been introduced in the h8s2000 . Hitachi H8S/231x: Added h8s/2319 family . Hitachi H8S/2329: Does not have ICR registers (h8\h8s2329.cpp) . Hitachi H8S/2600: Moved mac_saturating var to H8S2600 and hook it up . Hitachi H8/333x: Added readback of wscr and stcr (h8\h83337.cpp) . Intel I386: Handle double and triple faults (i386\i386segs.hxx) - SOUND . GI SP0256 Narrator Speech Processor: Removed reset lrq timer workaround that was added there for (MESS) Odyssey 2 killer bees. Bad luck: Everything o2 works same as before except turtlesu (bus\odyssey2\voice.cpp), instead of failing to detect The Voice only sometimes, now it happens more commonly. Not due to the removed timer, but actually the stream updates before accessing I/O which should be more accurate. When callbacks are used, add bg timer like SP0250 does. . Sound Blaster 16: Added remap to sb16 (isa\sblaster.cpp), allow Prize Zone Gold to boot to VGA mod. - DEVICE . AGP: Separated AGP cards to their own container. Added SiS6326 AGP card (pci\sis6326.cpp) and SiS6326 VGA core (video\pc_vga_sis.cpp). . ATAPI CD/DVD-ROM and SCSI CD/HD: Fixed MSF to LBA conversion for T10MMC_CMD_PLAY_AUDIO_MSF. Clean up how to_msf/to_lba is used throughout the code (machine\t10mmc.cpp). Fixed minor error in previous refactoring (machine\t10spc.cpp). . Cassette: Added support for saving cassette images in FLAC format (imagedev\cassette.cpp and formats\flacfile.cpp). Implemented seek/tell callbacks for FLAC library (util\flac.cpp). . Cirrus Logic GD54xx: Misc cleanups and bulk replace device naming (video\pc_vga_cirrus.cpp). Added Cirrus Logic GD5446 card (pci\clgd5446.cpp). Added start address bit 19 for GD5430+ (video\pc_vga_cirrus.cpp). Fixed pitch offset (video\pc_vga_cirrus.cpp). . Floppy: Fixed apparent logic error in write splice setting test (formats\flopimg.cpp) . Intel 82371 southbridge ISA bridge: Fixed PIC mapping (machine\i82371sb.cpp) . MIDI: Cleaned up MIDI interface a little more (interface\midiport.h) . Network: Cleaned up network interface a little more (netdev\pcap.cpp, netdev\taptun.cpp) . NMK214 Graphics Descrambler . Added NMK214 graphics unscrambling device (nmk\nmk214.cpp). The current implementation is less than ideal due to inflexibility of device_gfx_interface. . Hooked up NMK214 device for Saboten Bombers. Use emulated NMK214/NMK215 protection for Bombjack Twin, GunNail, Nouryoku Koujou Iinkai and Super Spacefortress Macross. . S3 Vision: Separated Vision864/964/968 from Trio64 and fixed SDD UVCONFIG.EXE detection. Fixed start address shift in extended video mode and heavy 'Prize Zone Gold' flicker and SDD scroll tests (video\pc_vga_s3.cpp). . VGA: Standardized DEFINE_DEVICE_TYPE descriptions (video\pc_vga_*). Bulk rename s3_vga_device -> s3trio64_vga_device. Retire vblank_timer_cb override and added a latch_start_addr fn in place (video\pc_vga.cpp). . Voodoo 2 PCI: Fixed Voodoo 2 PCI config values (video\voodoo_pci.cpp) - astropc.cpp and matrix.cpp: Hookup MediaGX CS5530 Bridge/IDE Controller devices. Prepare for MediaGX virtual VGA hookup. Documented GP/DC maps (machine\mediagx_host.cpp). Moved VGA to own core (video\pc_vga_mediagx.cpp). - bfm_sc1.cpp and bfm_sc2.cpp: Changed const -> constexpr, fixes undefined references when building with -O0 on macOS (bfm\bfm_bd1.h and bfm\bfm_bda.h). - bwing.cpp: Moved from bankdev to view - cave.cpp: Moved Cave drivers and devices to atlus project and a new cave project - mpu4vid.cpp: Fixed row table addressing mode as per documentation (video\scn2674.cpp) - mtouchxl.cpp: Fixed PIC and RTC mapping. Added ISA irq pins and int pin mapper (machine\sis85c496.cpp) - nss.cpp, sfcbox.cpp, snesb.cpp and snesb51.cpp: Fixed wraparound in (stack,S),Y addressing mode. Emulated (direct,X) emulation mode wraparound bug and fixed handling of direct page accesses in emulation mode. Ignore emulation mode for 24-bit pointer reads/writes. Force usage of native 16-bit stack handling for 65816-exclusive stack instructions. PEI also forces native 16-bit direct page handling. PLB reads from ($200) instead of ($100) when S=$1FF in emulation mode (g65816\g65816.cpp/h, g65816\g65816op.h). - pacman.cpp: Made code less confusing (pacman\pacman_v.cpp) - photoply.cpp: Converted to new PCI - taito_h.cpp: Updated notes, DIP switch defaults and emulation flags. Marked Syvalion as not supporting cocktail mode and added notes about issues. Correct default lives DIP switch settings for Syvalion to match manual. Added notes about ROM type selection settings. - tecmo.cpp: Changed Gemini Wing (World) and Rygar (US set 1) 'Difficulty' setting names to better reflect documentation - unico.cpp: Verified OKI frequency and pin 7 and added DIP location - Block Hole: Made it use view instead of bankdev - Cal Omega - Game 7.9 (Arcade Poker): Added proper bipolar PROM dump - Cosmo Gang the Video: Added zoom table ROM to Cosmo Gang the Video (US) and clone (Japan). Content is the same as other games on the platform. - Cybattler: Added TMP91640 MCU program. Also added for Chimera Beast, marked as a bad dump until it can be confirmed to use the same mask ROM. - Dribbling: Added netlist sound simulation. Marked as imperfect sound for now due to lack of a suitable JFET model for the PARATA function generator. - Funcube /2/3/4/5: Use memory_share_creator for NVRAM. Apparently fixed Funcube watchdog reset issue (h8\h8_watchdog.cpp). - Game King (Set Chips): Redumped keychip key00016 - Game Magic: Clarify set_model detection (ata\xm3301.cpp). Added v8000 M68EC020 roms. - GameCristal: Housecleaning (machine\sis5513_ide.cpp). Initial implementation for IT8705F Super I/O. Added UARTs and non-working FDC (machine\it8705f.cpp). Replaced PS/2 controller back to LLE. Resolved hangs described in PR #11797 by using a microsoft serial mouse (machine\sis950_lpc.cpp). More BIOS notes. - Gomoku Narabe Renju: Fixed frequency of oneshot voices - Kozure Ookami: Game uses waveform select function of YM3812. Previously MAME used YM3526. This results incorrect tone. - Monkey Land: Redumped u26 GFX ROM for Monkey Land and clone (Ver. AA.13.B) - Neo Mania: Added parallel port device notes - Odyssey: Fixed BIOS expansion ROM mapping. Added 'S3 86C968 Vision968' card. Start implementing new MMIO for Vision 968. Fixed screen orientation. Preliminary COM1/COM2/LPT1 support (machine\pc87306.cpp). Added SGI BIOS 62. - Quake Arcade Tournament: Replaced Laguna 3D experiment with Voodoo Banshee card - Super Cherry Master (v1.0): Added PLDs dumps for clone Animal House (set 3). - Yumefuda [BET]: Added DIP locations - Fixed rom names in exidyttl.cpp, m72.cpp and neptunp2.cpp - Description changes of Chaoji Damanguan II (China, V754C), Corsarios (Cirsa slot machine, V6.0D), Dribbling (Videomac bootleg, Brazil), Flicky (128k Version, 315-5051, larger ROMs), Flicky (128k Version, 315-5051, larger ROMs, newer), Fruit Dream (Japan, Ver. 1.20), Jikkyou Pawafuru Puro Yakyu EX '98 (GC811 VER. JAA), Jikkyou Pawafuru Puro Yakyu EX (GX802 VER. JAB), Manguan Caishen (China, V103CS), Manguan Daheng (Taiwan, V123T1), Manguan Daheng (Taiwan, V125T1), Ms Pac Man Twin (Argentina, set 1) and Multi Points (V1.0, CAA) - Dipswitch fixes in albazg.cpp, taito_h.cpp, tecmo.cpp and unico.cpp - Renamed (driblingbr) to (driblingvm) - MAME . VIDEO RENDERING SYSTEM . Set minimum width of scaled bitmap for font chars used in .lay files to 1 if it's larger than 0.5, this prevents lowercase l and i not showing while the text label is still readable (emu\rendfont.cpp). . Fixed off-by-1 error with alpha blended disk element (emu\rendlay.cpp) . Increased texture hashtable size ((MESS) Chess Robot Adversary were crashing with opengl renderer) (render\drawogl.cpp) . DEVICE . Removed fread overloads that allocate memory for output (emu\diimage.h) . Changed the rx start delay to more realistic 0.5 cycles (emu\diserial.cpp) . UI . Removed dependency from OSD network device to libemu. This allows save states to be created and loaded when network interfaces are present. device_network_interface may need some more attention to get save states taken while receiving a packet to work properly (osd\osdnet.cpp). . INPUT . Various cleanup and minor enhancements (osd\modules\input\*) . Got rid of the DirectInput key code macros. DirectInput headers are always available on Windows - it's just an opportunity for bygs (input\input_common.h). Added default names for keys mapped to MAME's "other switch" type (input\input_common.cpp). . Simulate Pause key being held for 30ms, similarly to what's done for Caps Lock on macOS with SDL. Also added a gross hack to give "correct" names for Pause and Num Lock. Properly align buffers for RAWINPUT header (input\input_rawinput.cpp). . Get default key names from SDL. Not really that useful as it isn't aware of the current keyboard layout. Key map files are still needed for anything other than a US ANSI layout (input\input_sdl.cpp). . Save state: Made illegal save state registrations always fatal (emu\save.cpp) . PLUGINS: Fixed renamed sets (plugins\hiscore\hiscore.dat) . CHDMAN: . Fixed splitframes handling. Added warning when extracting GD-ROM CHDs to cue/bin format (tools\chdman.cpp). . Refactored parse_cue to handle GD-ROMs. Don't discard any data from GD-ROM cue/bin input including pre-gap data (util\cdrom.cpp). Fixes chdman 0.263 error does not compress dreamcast games (GitHub #12081 and #12087). . Implemented seek/tell callbacks for FLAC library (util\flac.cpp) . Added wrappers for common patterns (util\ioprocs.cpp) . Changed output size of load to size_t (util\corefile.cpp) . Work around spurious maybe uninitialised warning with certain GCC versions (util\unzip.cpp) . Eliminated core_crc32 wrapper function in favor of util::crc32_creator (util\coreutil.cpp, debug\debugcpu.cpp, emu\rendfont.cpp, emu\save.cpp) - Compiling . Use a raw string literal for regular expression. Fixes Pylint invalid escape sequence warning (scripts\build\verinfo.py) . Consolidated drivers in single files (bloodbro.cpp, bwing.cpp, cabal.cpp, darkmist.cpp, dcon.cpp, deadang.cpp, kncljoe.cpp, lemmings.cpp, raiden.cpp, srmp2.cpp, stfight.cpp, toki.cpp, unico.cpp and wiz.cpp) . Removed unwanted comments/separators in various drivers . Fixed compile error in 3rdparty\asio with newer Emscripten versions (scripts\genie.lua) and in 3rdparty\bx (3rdparty\bx\src\debug.cpp). . Get rid of swlist folder (docs\swlist\*). Removed [TTL] and [BET] tags in titles (misc drivers). - Debugger . Fixed checksum on Windows and m68000 register names (debugger\debuggdbstub.cpp) . Added support for lowercase hex to printf/logerror. Also simplified implementation by better leveraging util\strformat.h (debug\debugcmd.cpp). . Added NUL-terminated string argument support to printf/logerror. Use %s to read NUL-terminated strings from emulated memory. Precision sets maximum length. Also added left-justification option for numeric and string formats. Made documentation more consistent and removed duplication (debug\debugcmd.cpp). 0.263 - New games: Open 5 Cards - New Working games: Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV), Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV, Harrah's GFX) and Joker's Wild (B52 system, WP02001-054, Ver.031WM) - New Non-Working games: Bingo Planet (Rev C) (M1 Satellite board), Black jack (Olympic Games, v5.04, upgrade kit for Wild Card), Dream Rail Lovely, Multi-Action 6710-21, Multi-Action 8350-00-R1, Operation Tiger Second Mission (Ver 2.02 J), Packy's Treasure Slot (Japan, main ver. 1.3, video ver. 1.1), Renda Fighter (Japan, main ver. 2.02, video ver. 2.03) and Wild Card (Olympic Games, v2.0) - New clones: Guardians / Denjin Makai II (bootleg), Hachoo! (Japan), Lord of Gun (World), Magic Train (Ver. 1.4), Martial Beat (G*B47 VER. JAB), Panda Train (Ver. 1.3), Phoenix (bootleg), Scud Race / Sega Super GT - Deluxe (Export), Side by Side (Ver 3.0 OK), Sports Authority Challenge (Rev 3), Sugorotic JAPAN (STJ1 Ver.A), Vuelo Espacial (Spanish bootleg of UniWar S), Wild Fang (year hack?) and Zoku Otenamihaiken (V2.05J 2003/05/12 18:00) - New PinMAME games: Space Game (Bingo 6+1) - New devices: es1946_solo1e, h8325_intc, h8325_timer16_channel, jaleco_vj_king_qtaro, jaleco_vj_qtaro, k1801vm1, ns32532, oti64111_pci, p80c552, p80c562, p87c552, pcf8573, promotion_vga, scorpion_ic, vt6306, wd9710_pci and xm3301 - Bob Zed (What's new video): https://youtu.be/oKk_yX25rQ8 - CPU . DEC T11: Improved accuracy: Ignore least significant bit of PC when fetching opcodes. Correct MTPS and MFPS to be byte-wide. Reject instructions not implemented by each variant. . Hitachi H8 . Status flags are set no matter the irq enable flags (h8\h8_timer16.cpp). Fixed V flag with INC opcodes. Fixed add/sub16 H flag and rotxl2 lsb (h8\h8.cpp). Like subx, addx does not modify Z flag if result is 0. Fixed jsr abs8i return address. Added fetch_noinc for jsr opcodes and preliminary support for movfpe/movtpe (h8\h8.lst). Changed bsr rel16 fetch_noinc back to internal(1) (h8\h8.lst). . Port registers are not modified at reset (h8\h8_port.cpp). Improved cycle timing for pre-h8s arch (h8\h8.cpp and h8\h8s2000.cpp). Added software standby mode and optional NVRAM (h8\h8.cpp). Fixed Yamaha MU100 regression with 16bit timer (h8\h8_timer16.cpp). Return 0xff for unconnected digital input ports (h8\h8.cpp). Fixed divide by 0 crash (h8\h8_timer8.cpp). . RTE does not block interrupts (h8\h8.cpp). h8h does not have 16-bit iscr. Added support for rising edge interrupts. Base h8 does not have ISR. Don't clear irq pin inputs at reset (h8\h8_intc.cpp). Pass along ddr on write for high-impedance pins (h8\h8_port.cpp). Small correction in recalc_event (h8\h8_timer8.cpp). Shorthand variable types (h8\*.*). . Appears to be better for performance without virtual calls for r/w functions (h8\h8.cpp). Set logerror verbosity to 0 (performance issue in (MESS) Kasparov GK 2000). Added variables to save_item (h8\h8*.*). Correct interrupt timing after software standby (h8\h8.cpp). . Correct H8/300 opcode map (i suspect H8/300H also has opcodes in the map that belong to newer arch but didnt check). Fixed mov with negative disp for H8/300 (h8\h8.lst). . Hitachi HD6309: Added missing index addressing modes. Pop CPU state if indexed addressing mode caused illegal operation trap (m6809\hd6309.lst). . MCS-51: Correctly override some SFR names in dissassemblers (mcs51\mcs51dasm.cpp) . Microchip PIC16C62x: Core overhaul: Use callbacks rather than address space for I/O ports. Eliminated unsafe use of get_write_ptr and let the internal memory map decode each special register individually. Eliminated several macros, magic ID numbers and some unnecessary tables. Adjust execution of a few opcodes to avoid reading operands twice and set flags correctly. Added PCLATH to state display (pic16c62x\pic16c62x.cpp). . Motorola MC6800: Shorthand variable types (m6800\m6800.cpp) . Motorola MC6801: If NVRAM it's currently not battery-backed, don't save at all. Shorthand variable types. Added input ports ddr override mask (m6800\m6801.cpp). . Motorola MC68000: Regenerated C++ source files. . National Semiconductor COP4xx: Zerofill class variables (cop400\cop400.cpp) . NEC uPD78C10: Moved near empty upd7811 file to upd7810 . Philips P80C562/P87C552: Added placeholder device types for P87C552 and P80C562 (see funeball.cpp and midqslvr.cpp), with custom SFR definitions for their disassemblers (mcs51\mcs51.cpp). . RCA CDP180x: Fixed disassembly of LBNQ, LBNZ and LBNF (cosmac\cosdasm.cpp) . Texas Instruments TMS32010: Fixed memory access helpers for variants with 64k-word program space (tms32010\tms32010.cpp) . Toshiba TMP68301: Added parity tx support (m68000\tmp68301.cpp) . Z80 SCC Channel: Implemented RTxC clock source. Fixes serial emulation at 115200 or 230400bps. . Zilog Z86xx: A little more optional logging for IRQs (z8\z8.cpp and z8\z8ops.hxx) - SOUND . Discrete Sound: Use appropriate memory barriers for task synchronisation (sound\discrete.cpp) . Namco C140: Timer reload value = written reg data + 1, fixes music tempo in Dragon Saber (sound\c140.cpp) (ID 08814). - DEVICE . 8042 Keyboard/Mouse Controller: Improved behavior coming out of reset, locking device until AA is written to command port. Allow some systems to write D1 command first (machine\8042kbdc.cpp). . ATA Connector: Added 'Matsushita CR589 CD-ROM Drive' (cr589) as mountable option (ata\atadev.cpp) . CD-ROM: Removed unreachable additional handler for MODE2/2336 tracks (util\cdrom.cpp) . Discrete Netlist: Removed duplicate $(OBJ)/devices from object directories in netlist\build\makefile . Floppy . Various fixes. Get the volume label from the root directory, rather than from the extended BPB (which is less reliable). Ignore long file name entries for now (formats\fs_fat.cpp). Delete unused getter that leaked details (imagedev\floppy.cpp). . Floppy fixes. Refilter list of specific floppy formats using the known form factor and variant before trying to mount a filesystem on an image. Sort identify results by decreasing score (code already expects the best format to be first) (tools\image_handler.cpp). . Fujitsu MB87030 SCSI controller: Fixed some bit definitions for the SCMD register (machine\mb87030.h) . Intel 8275 CRTC: Moderate change to API and major expansion of configuration possibilities. Changed the "draw character" callback to pack all attribute flags in a single parameter. A bit enum is provided to facilitate unpacking the bits. Allow for configurations in which up to four CRTCs are attached to the same character clock and screen. The secondary CRTCs are not fully emulated with regard to timing and some output callbacks, but their character and attribute outputs may be merged with those of the primary screen through the same display callback. . Microchip PIC16C5x: Register file cleanup: Use member variables for core special registers, eliminating unsafe abuse of get_write_ptr and permitting watchpoints to trigger on accesses to these. Use arrays for TRIS registers and port read/write callbacks. Narrow the width of some variables and function parameters. Store FSR and show in debugger without extra high bits. Eliminated now-unnecessary reset kludge (pic16c5x\pic16c5x.cpp). Fixes PIC16F54 debug problems in Magic Card Export 94 (ID 08818). . Motorola MC6845 CRTC: Mark set_show_border_area and set_visarea_adjust as hack setters (video\mc6845.h) . PCI: Propose a way to find the busmaster space for newpci (machine\pci.cpp) . VGA: CRTC logmacro and fixed a bunch of masks towards SVGA (video\pc_vga.cpp) . Voodoo 1 PCI: Fixed default values, allows SiS 85C496 chipset to detect card (video\voodoo_pci.cpp). . Winbond W83977TF Super I/O: Hookup basic LPT port (machine\w83977tf.cpp) . Z80 DMA Controller: Added PULSE mode handling (machine\z80dma.cpp) - aristmk5.cpp . Fixed set chips selector. It was limited to 7 entries before, making some set chips unreachable. . Added set chip v4.04.01. One ROM doesn't match the checksum in the sticker and gives CRC error. - hexion.cpp, spy.cpp and thunderx.cpp . K052591: Modified K052591 PMC emulation to reflect how the real programs work. Added comments to PMC program dumps. Use multibyte.h functions, variable scope and type cleanup. . hexion.cpp: Added special 16-byte VRAM clearing command for K052591. Fixed a potential heap smash and don't mark tiles dirty unnecessarily. Fixed tile invalidation range when 16-byte clear is not four-byte aligned. . spy.cpp: Confirmed K052591 projection function constants, more accurate collision check without the need for special case handling. Fixed video enable never being set to false and added an object finder for ROM bank (reduce tag lookups). . thunderx.cpp: Simplified K052591 collision check, fixed object flags updates. Fixed pointer comparison. Realign PMC program comments. - lastfght.cpp and subsino2.cpp: Fixed timing-related regressions - lindbergh.cpp: Added basic legacy VGA control (video\gf7600gs.cpp) - merit3xx.cpp: Invert char and attr RAM, allows 'Multi-Action 6710-13' and 'Multi-Action 6710-21' to show error message. Updated DIP switch spelling and other metadata updates. - midyunit.cpp: Updated DIP definitions/locations - pgm.cpp: Fixed PGM input regression (igs\pgmprot_igs027a_type1.cpp), fixes kov and kovplus do not work. - tetrisp2.cpp: Added preliminary King Qtaro PCI video decoder card device (jaleco\jaleco_vj_qtaro.cpp). Video decoding is not implemented yet. Get DMA space from up the PCI chain (jaleco\jaleco_vj_qtaro.cpp). - Dragon Saber: Namco C140 timer reload value = written reg data + 1, fixes music tempo in Dragon Saber (sound\c140.cpp) (ID 08814). - Dragon World 3/Dragon World 3 EX: Fixed games hangs after beginner or expert selection (igs\pgmprot_igs025_igs022.cpp, pgmprot_igs025_igs028.cpp, pgmprot_igs027a_type2.cpp and pgmprot_orlegend.cpp) (ID 08822) - Galactic Storm: Added PLDs dumps - Game Magic . Redumped game CD-ROM. Converted driver to new PCI. Added correct BIOS (m7s04.rom) from (MESS) PC/AT 586. Hookup Voodoo 2 card. Added OAK OTI Spitfire (VGA). Added segment, aperture and basic SVGA pixel modes. Preliminary HW cursor and added path for 32bpp color mode (video\pc_vga_oak.cpp). Fixed BAR2 IO flag and added revision register (pci\oti_spitfire.cpp). . Added basic Toshiba XM-3301 ATAPI CD drive (bus\ata\xm3301.cpp). Allows mounting with TAISATAP.SYS in DOS, allows gammagic to moving on to Voodoo init. - GameCristal: Added game port to 'SiS 7018 Audio AC97' (machine\sis7018_audio.cpp). Added base x86 interface for atirageiidvd_device (video\atirage.cpp). Placeholder for extended clock modes, reformat sequencer logging. Added extend QA notes. Documented remaining sequencer regs (video\pc_vga_sis.cpp). - Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV): Created default NVRAMs. Improved the documentation. Cleaned up the driver. Promoted parent and clones to working. - Magic Card Export 94: Microchip PIC16C5x register file cleanup: Use member variables for core special registers, eliminating unsafe abuse of get_write_ptr and permitting watchpoints to trigger on accesses to these. Use arrays for TRIS registers and port read/write callbacks. Narrow the width of some variables and function parameters. Store FSR and show in debugger without extra high bits. Eliminated now-unnecessary reset kludge (pic16c5x\pic16c5x.cpp). Fixes PIC16F54 debug problems in Magic Card Export 94 (ID 08818) - Mahjong Ougon no Hai (Japan): Dumped MCU (not correctly hooked up yet). Added proper address map. - Major Havoc: Removed timer_set - Matrix: Preliminary (?) decryption - Pool 10: Removed empty read-protected PLD baddumps from clone Pool 10 (Italian, Dino 4 hardware, encrypted) (ID 08824) - Popper: Added addressable latch device - Psychic Force 2012: Added base x86 interface for atirageiidvd_device (video\atirage.cpp) - Rainbow Islands: Fixed crash/exception immediately after start in clones Jumping (ID 08826) - Soreike Kokology/Soreike Kokology Vol. 2: Fixed some bit definitions for the SCMD register (machine\mb87030.h) - Super Free Kick: Reverse analog control (ID 08825) - Thayer's Quest: LED display DA3 is not connected (fixes possible crash). Updated PORT_NAMEs, removed PORT_SERVICE because it takes the F2 key by default and swap F1-F4 and 1-0 with 1-4 and F1-F10 because of default IPT_COIN mapping. TODO: Conflict between keyboard and service mode default key (F2). - Traverse USA: Added an alternate palette PROM arrangement (One/Two character palette PROMs BIOS) for Traverse USA and clone MotoTour - Fixed rom names in exidyttl.cpp - Description changes of Hachoo! (World, set 1), Hachoo! (World, set 2) and Sports Authority (Rev 1) - Dipswitch fixes in cheekyms.cpp, goldnpkr.cpp and midyunit.cpp - Renamed (lordgun) to (lordgunu), (mtrain) to (mtraina), (sidebs) to (sidebsj), (sprtauth) to (sprtauth1) and (zokuoten) to (zokuotena) - MAME . MEMORY SYSTEM: Fixed little Endian byte read/write to 64-bit areas. Apparent copy/paste error was causing big Endian semantics to be used (emu\memarray.cpp). . UI . Swap columns when sorted by shortname. Added UI header. Don't add switch item ordering menu entry when there's only 1 swlist item (ui\swlist.cpp). . Readjust visible width if heading width exceeds that of the menu (ui\menu.cpp) . Added the global cheat enable toggle to the menu. Indicate if no cheats were found. Moved global cheat enable to the bottom. Fixed reset(reset_options::REMEMBER_REF) with add/remove favorite (ui\cheatopt.cpp). . Added quick save/load state shortcut, default key undecided (emu\inpttype.h and ui\ui.cpp). . Use forwarding header (#include "utilfwd.h") (util\options.h) . Default UI keys cleanup: Pause moved from P to F5. Step single frame moved from Shift-P to Shift-F5. Create save state moved from Shift-F7 to F6. Toggle cheats moved from F6 to Shift-F6. Restored tabulation (emu\inpttype.ipp). . Fixed OSD interaction with updated default keys (emu\inpttype.ipp, input\input_windows.cpp and sdl\osdsdl.cpp) . OSD SDL default keys: Removed ctrl-blocks on F3 and F4 and moved OpenGL filter from LCTRL+F5 to LALT+F10. Moved prescale keys from CTRL+F6/F7 to ALT+F8/F9 (sdl\osdsdl.cpp). Don't indicate max value for SDL modify_prescale. Show prescale popup when it hasn't changed due to hitting the limit. This makes it easier to see that you’ve hit the limit and MAME isn't just ignoring your keystrokes (mac/window.cpp and sdl/window.cpp). . OSD Windows default keys: Moved post processing key from LCTRL+LALT+F5 to LALT+F10 (input\input_windows.cpp) . MAME default keys: Moved rewind step from SHIFT+tilde to SHIFT+F4, moved cheat from SHIFT+F6 to SHIFT+F8 and moved quick save/load from (none) to SHIFT+F6/F7 (emu\inpttype.ipp). . Added filename to save/load state message (emu\machine.cpp) . CHDMAN . Added --hunksize/-hs option for createdvd command and default to 4K hunks (2 sectors, same size as hard disk hunks). Also removed --outputbin/-ob option from extractdvd command - it did nothing as it's CD-specific. . Added preliminary CHDMAN documentation. Most common options have at least basic descriptions, supported options are listed for all commands and supported compression algorithms are described (docs\source\tools\chdman.rst). . Fixed numerous issues, including: Support input start/size options for createdvd. Fixed not reporting an error on unrecognised command line options. Fixed --fix/-f option for verify command not working. Report an error when conflicting options are supplied (e.g. hard disk template and C/H/S geometry, or input start offset in both bytes and hunks). Previously the results would be unpredictable. Detect more invalid combinations of options and detect when output unit size or hunk size doesn't match parent. Changed order of processing options for createhd so using a template cannot not inadvertently result in an invalid combination of sector size and hunk size. Don't require an explicit unit size for createraw if an output parent CHD file is supplied. Fixed an object leak in createcd (util\chd.cpp, tools\chdman.cpp, docs\source\tools\chdman.rst). . Report unsuitable CHDs as "invalid image" rather than "unsupported operation" (imagedev\cdromimg.cpp). Report unsuitable CHDs rather than crashing (imagedev\harddriv.cpp). . Calculate size of buffer needed to store hunk map (util\chd.cpp), fixes CHDMAN fails to create disk images if compressed hunk map is larger than expected. . Fixed cases where bits would be dropped when reading and writing. In some cases, bits would be dropped when writing if there wasn't enough space in the buffer. Fixes bad hunk maps being written to CHD files and incorrect hunk map data being read. Adjust m_doffset based on m_dbitoffs when flushing. Fixes issues exposed when reading LaserDisc CHDs (util\bitstream.h). . Multi-Language: Updated Russian UI translation. Updated copyright years (language\*\strings.po). . Delete NVRAM file on save if there's a write error or result file is 0 bytes (emu\machine.cpp) - Dipswitch fixes in lazercmd.cpp, meadows.cpp and midyunit.cpp - Compiling . Consolidated drivers in single files (cheekyms.cpp, citycon.cpp, lazercmd.cpp and meadows.cpp) . Fixed compilation against musl (Linux C standard library; musl.libc.org) (netlist\plib\pexception.cpp and sound\pulse_sound.cpp) . Fixed INPUT_PORTS_END and ROM_END macro indent (n8080.cpp and rfslots8085.cpp) . Removed some unnecessary backslash line continuations. Removed unnecessary preprocessor line continuations from C++ code. Use parentheses to avoid need for line continuations in expressions in Python code. Removed line continuations at the end of lists in makefiles. . Fixed a couple shortsights (scripts\src\video.lua) - Debugger: Fixed lockup and debug assert (debugger\debugimgui.cpp) 0.262 - New games: Altair II, Golden Joker (Ver 16.06UNG-25, set 1) and Jack House - New Working games: Cherry Chance, Dance Dance Revolution (GC845 VER. JAB), Dragon's Lair (US Rev. F2) and clones (US Rev. D, Pioneer LD-V1000), (US Rev. E) and (US Rev. F), Lucky 7 (Impera, V04/91a, set 2), Mahjong Raijinhai DX (Ver. D105), Novo Play Club Card (V3.3H), Novo Play Club Card (V6.2H), Poker (Impera, V11/90b), Thayer's Quest (set 2), Thayer's Quest (set 1) and Time Traveler (Japan) - New Working AGEMAME games: adonisu, bootsctnu, bootsctnua, bootsctnub, bparty, cashchamu, cuckoou, dolphntrce, dolphntrcea, dolphntrceb, dolphntru, eforsta5cea, gambler, glizrdce, goldpyr, goldpyra, hnktonku, incasunu, incasunua, kgalahce, koalamnt, kyhatonu, locolootu, magimask, magimaska, magimaskb, marmagicu, marmagicua, mountmonua, partygrs, partygrsa, pengpayce, pengpuck, qnilece, qnilecea, qnileceb, qnileu, qnileua, sldeluxe, unicorndu, wafricau and wcougaruc - New Non-Working games: Cast Away (dual 6809 GI Australasia PCB), Circlun - Kuru.Kuru-Count, Cool 104, Cuty Line Limited (ver.1.30), Diga Mart (rev. A), Free Deal Twin Jokers Progressive, Good Luck! (dual 6809 GI Australasia PCB), Jester Chance (dual 6809 GI Australasia PCB), LD Mahjong #1 Marine Blue no Hitomi (Japan), Lucky 88 (Aristocrat MK-7), Medal Get Hammer (V100JP), Monkey Land (Ver. AA.21.A), Nittere Shiki! Mirai Yosou Studio / NTV Future Forecast Studio (Japan, Rev A), Playcenter Evolution III (v14.0, 'Epox' hardware), Rockman EXE Battle Chip Stadium Ver.3.00, Rockman EXE The Medal Operation, Sega Network Taisen Mahjong MJ 3 Firmware Update (GDX-0019) and Simply the Best (CZ750, v1.0) - New clones: Cherry Master '92 (V1.1D), Cruis'n Exotica (version 2.0, alternate ROM format), Euro Champ '92 (Japan), Fruit Star Bonus (Ver 8.30UNG-25, set 1), Fruit Star Bonus (Ver 8.30UNG-25, set 2), Gals Panic SU (Korea, version 5), Golden Joker (Ver 16.06UNG-25, set 2), Hat Trick Hero (US), Incan Pyramid (Konami Endeavour, Queensland), JoJo's Bizarre Adventure (Euro 991015, NO CD), JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 991015, NO CD), Lucky Coin (Jun 24 2002), Mahjong Cafe Doll Great (Japan, Ver. 1.00), Mahjong Gakuensai (Japan, set 2), Mahjong Raijinhai (Ver. D105), Medal no Tatsujin Doki! Ooatari-Darake no Sugoroku Matsuri (MTL1 SPR0A), Monkey Land (Ver. AA.13.B), NBA Jam (proto v 1.01 1/23/93), NBA Jam (proto v 2.00 1/24/93), NBA Jam Tournament Edition (proto 2.00 12/17/93), Operacion Defender (bootleg of Defender), Operation Tiger (Ver 2.09 J), Operation Tiger (Ver 2.10 O), Pit Boss Superstar III 30 (9233-00-01 R0B, Standard version), Puzz Ball (Japan, PZB1 Ver.C), Return Of Sel Jan II [BET] (Japan, NM508), Rolling, Sega Touring Car Championship, Skill Drop Georgia (Ver. G1.01S, Oct 1 2002), Stompin' (prototype?), Tekken 2 Ver.B (World, TES2/VER.D) and Violent Storm (ver UAB, bootleg) - New AGEMAME games: Black Rhino (4VXFC830, NSW), Green Lizard (4VXFC811, NSW), Heart Throb (01J02866, Venezuela), Indian Dreaming (02J01856, Venezuela), Loco Loot (0300670V, Queensland), Sweethearts II (0100860V, Queensland) and Tequila Sunrise (1VXFC613, NSW) - New PinMAME games: Bad Girls (alternate set), Baywatch (3.00 German), Bugs Bunny Birthday Ball (LG-2) German, Diner (LG-2) German, Elvira and the Party Monsters (LG-3), Hook (USA 4.01, display A4.00), Hook (USA 4.01, display F4.01), Screech, Whirlwind (LG-1), Whirlwind (LG-2) and 'The Who's Tommy Pinball Wizard (Dutch 2.01, display A2.00)' - Removed games: Code One Dispatch (ver UAA), Martial Masters / Xing Yi Quan (ver. 102, 101, 101TW) and Screech (4 players) - New drivers: aristmk7.cpp, digamart.cpp, gi6809.cpp, jackhouse.cpp, kkcount.cpp and sigmab88.cpp - New devices: aha2940au, audiowerk2, banshee_x86, bfm_gu96x8m_k657c2, ds2416, geforce256, geforce256ddr, hd641016, isa16_pumpitup_io_sound, isa16_xtom3d_io_sound, ldv1000hle, matrox_vga, mbm29f160te_16bit, mediagx_cs5530_bridge, mediagx_cs5530_ide, mediagx_host, mga2064w, opti82c861, pci_slot, promotion3210, quadro, rtl8029as_pci, rtl8139_pci, sei0210, sei0211, sonicvibes, ssi263hle, stt_sa1, sw1000xg, zfmicro_usb and zr36057 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://youtu.be/depD4DZeZTU - CPU . Fujitsu MB884x: Added an internal flag set on servicing an interrupt and cleared by RTI. Suppressing nested interrupts appears to fix issues in Arabian (Missing bird at top of the screen (ID 03916) and 2 Player freezes after Player 1's death (ID 08436)). Also renamed m_nf to m_if to match the datasheet (mb88xx\mb88xx.cpp). . Hitachi HD6301: Port output latches are kept intact when in standby mode, x0 does not have ddr4 (hd6301: m6800\m6801.cpp). RTI after TRAP returns to the address where the trap error occured (hd6301: m6800\6800ops.hxx). ST IMM opcodes cause a trap interrupt. Fixed timer 2 serial clock (hd6301: m6800\m6801.cpp). Fixed SLP during pending interrupt (hd6301: m6800\6800ops.hxx, m6800.cpp and m6801.cpp). Added ext irq enable mask and ext irq2 (hd6301x: m6800\m6801.cpp). Don't save internal registers to nvram when it's not battery backed (hd6301: m6800\m6801.cpp). Instead of skip, zerofill NVRAM when no battery save (hd6301: m6800\m6801.cpp). Added irq pins to p5 read (hd6301x: m6800\m6801.cpp) . Hitachi HD641016: Correct disassembly of SMOV and SSTR (h16\h16dasm.cpp) . Intel I386 . Don't handle op/addr size prefixes twice in rep (i386\i386ops.hxx) . In the cpu state view show the flags of the x87 status words and some of CR0. Added constants for the bits in the CRx registers and start using them. Display cr0 and x87 status registers as before plus more usages for the crx bits constants. . MIPS-III: Reduced amount of code hidden behind preprocessor #ifs (mips\mips3.cpp) . Mitsubishi M37702S1/M37710S4: Removed obsolete UCHAR_MAX check (m37710\m37710cm.h). Clean up include guards (m37710\*). . MOS 8520 CIA: Fixed a couple of initial states as per vAmigaTS/showcia1 test. Fixed UNUSED register behaviour (machine\mos6526.cpp). . Motorola MC6800: Removed ONE_MORE_INSN macro and re-added irq logmacro. . Motorola MC6801 . Port data latches are not initialized at reset (m6801). Mask unused ram ctrl reg bits (m6801). . Added timer output compare 2/3 regs (6801U4). Small simplification with ocr2h/l_w (6801U4). . DDR1/DDR3 is 1-bit (hd6301x/y). Save more internal registers to NVRAM (hd6301). . NEC uPD78C10: Added support for internal RAM (upd7810\upd7810.cpp and upd7810\upd7810_opcodes.cpp). Set MM RAE to 1 at power on (datasheet says it's undefined at reset) (upd7810\upd7810.cpp). . Zilog Z80: Updated WZ during in block I/O instructions. The inir, indr, otir and otdr instructions modify WZ when updating PC when the repeat condition is met. - SOUND . Samsung KS0164 Wavetable Synthesizer: Reduced the octave bits to 4 . Sound Interface: Removed cfg defvol/newvol (was already deprecated) (emu\sound.cpp) . Volume Filter: Renamed flt_volume_set_volume to set_gain. Added getter for gain (sound\flt_vol.cpp) . Yamaha SWP30 sound chip: Tighten the wires that went loose (Pitch conversion table; sound\swp30.cpp) . Yamaha YMW-258-F: Correct interpolation around sample loop point (sound\gew.cpp). Fixes 'SELECT' song in Virtua Racing. - DEVICE . 3dfx Voodoo Banshee: Added Voodoo Banshee x86 BIOSes. Implemented legacy VGA clock setups (video\voodoo_banshee.cpp). . 8042 Keyboard/Mouse Controller: Added port60/port64_r/_w accessible aliases (machine\8042kbdc.h) . ATAPI: Made DMA ready configurable (ata\atapihle.cpp) . Cassette: Fixed stereo output for stereo input images (imagedev\cassette.cpp) . CD-ROM: Don't strip pregaps from Redump GD-ROM files (util\cdrom.cpp). Fixed object lifecycles when loading from softlist or ROM region (imagedev\cdromimg.cpp). Fixed size of track info array. Also made it possible to enable VERBOSE in cdrom.cpp without link errors (util\cdrom.cpp). . Dallas DS2430A 1-Wire EEPROM: Fixes and adjustments. Undo incorrect swapping of tPDL and tPDH and make latter slightly longer. Remember to pull up data line after reading last bit from ROM (machine\ds2430a.cpp). Use DS2430A device emulation in viper.cpp driver. . DECO Karnov Sprites and DECO MXC06 Sprite: Use device_gfx_interface to decode graphics ROMs (dataeast\deckarn.cpp + decmxc06.cpp). Make ROM region names more descriptive in systems using these devices. . Flash ROM: Implemented fast mode for Fujitsu flash (machine\intelfsh.cpp) . Floppy: Ignore deleted directory entries (formats\fs_fat.cpp). Updated class variables to current naming convention (imagedev\floppy.cpp). . Generic Cartridge Slot: Use out-of-line virtual destructors to avoid vtable link errors in certain single-driver builds (generic\slot.cpp) . Hitachi HD44780 LCD Controller: Implemented timing (busy/status and blink interval) based on the input clock. Added notes about device variants. Adjust blink timer in device_clock_changed. Set typical clock to 270khz. . Imagetek I4100/4220/4300 VDP: Added blitter logging (video\imagetek_i4100.cpp) . K007121 Sprite/Tilemap Controller: Use device_gfx_interface to decode graphics (konami\k007121.cpp). Also adjusted graphics ROM loading in drivers using this device to allow use of gfx_8x8x4_packed_msb (combatsc.cpp, contra.cpp, fastlane.cpp, flkatck.cpp, hcastle.cpp and labyrunr.cpp). . K007342 Video Controller and K007420 Sprite Generator: Use device_gfx_interface to decode graphics ROM. Also cleaned up code and reduced macro use (konami\k007342.cpp + k007420.cpp) . Kaneko PANDORA GFX: Use device_gfx_interface to decode graphics (kaneko\kan_pand.cpp) . Motorola MC6845 CRTC: Don't enable line timer until valid parameters are set (video\mc6845.cpp). Fixes hang in 'Multi-Action 7551-20-R3T'. . Netlist: Added 74147, 74148, 74151 and 74368 chips to netlist devices (macro\nlm_ttl74xx_lib.cpp). Changed times to the typical of the fast type instead of the max of the worst type (macro\nlm_ttl74xx_lib.cpp). . PCI: Better irq support (but incomplete, missing shared) (machine\pci.cpp) . PCI extension motherboard port: Created a first stab at slottable cards (pci\pci_slot.cpp). Embrace the future insanity. Correct upcalls. . Pseudo terminal: Removed unused constexpr (rs232\pty.cpp) . S3 86C325/75 ViRGE PCI: Moved new MMIO mapping to map_extra. Fixed Ubuntu-flavored & BeOS 3.x black screen when switching to display managers. Fixed BAR compliance (pci\virge_pci.cpp). . SCSI CD-ROM: Correct allocation length for READ TOC/PMA/ATIP command (nscsi\cd.cpp) . Seibu Kaihatsu SEI0210/11 Sprite generator: Encapsulated SEI0210/SEI0211/SEI0220 sprite chip emulation (seibu\sei021x_sei0220_spr.cpp; banprestoms.cpp, bloodbro.cpp, dcon.cpp, goodejan.cpp, legionna.cpp and sengokmj.cpp) . Taito PC060HA CIU + Taito TC0140SYT: Use callbacks for interrupt and reset outputs. Also suppress read side effects for debugger accesses (shared\taitosnd.cpp). . Taito PC080SN: Use device_gfx_interface to decode graphics. Also cleaned up redundant code. - 1943.cpp: Improved DIP switch setting labels (ID 08797) - 39in1.cpp . Intel XScale PXA255 Peripherals: Cleaned up peripheral emulation code. Implemented free-running timer. Eliminated internal header in favor of scoped enums. Eliminated double-dispatch switch/case in handlers, in favor of individual register handlers. Reworked GPIO handling for correctness (machine\pxa255.cpp). . Fixed GPIO hookup in '39 in 1 MAME bootleg', now boots on its own. - balsente.cpp: Use palette format utilities and reduced runtime tag lookups - banprestoms.cpp and sengokmj.cpp: Use single-pass sprite drawing - baraduke.cpp: Use single-pass sprite drawing with priority. Also added a check for disabled side effects in a read handler. - bloodbro.cpp: Split driver state classes for different hardware configurations - bmcpokr.cpp: Identified controller selection DIP for Fengyun Hui and clone Pili Shen Deng - cave.cpp: Moved systems with Z80 sound CPU and triple screens to derived classes. Also reduced literal tags and macros. - cidelsa.cpp: Changed 'Difficulty' DIP settings to use standard names for all games in the source file - cop01.cpp: Correct sprite transparency pen - cv1k.cpp: Removed unused palette device - dcon.cpp: Fixed sprite coordinate format - dynduke.cpp, mustache.cpp and travrusa.cpp: Consolidated driver in single file - flstory.cpp: Use single-pass sprite drawing and moved games with MCU to a derived class - gaiden.cpp, galspnbl.cpp, spbactn.cpp, tbowl.cpp, tecmo.cpp, tecmo16.cpp and wc90.cpp . Use device_gfx_interface to decode graphics ROMs and callback for priority (shared\tecmo_spr.cpp - Tecmo Chained Sprites) . Adjusted graphics ROM loading so standard layouts can be used to decode tiles (galspnbl.cpp, spbactn.cpp, tbowl.cpp and wc90.cpp) . Use mnemonic names for graphics ROM regions (gaiden.cpp and tecmo.cpp) - gladiatr.cpp: Use palette format helper and cleaned up code. Removed VIDEO_START_MEMBER and MACHINE_RESET_MEMBER (override virtual member functions instead). Reduced run-time tag lookups. Made graphics region tags more descriptive. - goldstar.cpp . Enabled girls display for Cherry Master '91 and other games on same hardware. Removed 2nd PPI as PCB pics and readme only show one. . Added gfx rom 1h and proms from clone (V1.1D) to parent set Cherry Master '92 (V1.2D) - gticlub.cpp: Improved palette handling (visible in Hang Pilot). Split up driver state class for different hardware configurations. Use palette format utilities. Use separate palettes for multiple video boards. Only enable palette RAM access when video board is mapped over system RAM. - hornet.cpp: Implemented device_palette_interface for palette. Also cleaned up code and reduced hard-coded constants (konami\k037122.cpp). - igs_m036.cpp: Fixed IGS036 description and device type - istellar.cpp: Converted fg layer to tilemap, implemented sprites and hookup NMI to coins. Confirm sprite priority and added pinpoint overlay control. - kikikai.cpp . Added MC6801U4 MCU ROM dump to KiKi KaiKai. Hook up MCU. Correct MCU frequency and merged driver. Removed YM2203 ymsnd busy flag workaround. . Cleaned up driver. Added missing data members to save states. Removed incorrect coin counter connections. Fixes auto-incrementing coin counters on boot in Kick and Run (ID 08718). - konendev.cpp . Dumped correct IFU2 rom for Amazon Spirit and clone Safe Money (Konami Endeavour, NSW) . Dumped flash ROMs for Black Rose Rapid Fire Grand Prix (Konami Endeavour, Queensland) - magicard.cpp . Fixed typos in the logs for 'DS1207 Time Key' (machine\ds1207.cpp). Switched dipswitches description Tschech-->CSFR. Remapped KEY OUT input to match the "All Coins Out" from the test. . Dallas Poker: Improvements. Added workaround to avoid the 68070 UART stuck. Added proper inputs. Created button-lamps control panel layout (layout\dallaspk.lay). Game now is playable (MACHINE_UNEMULATED_PROTECTION). Needs the PIC16F84 emulation. . Lucky 7 (Impera, V04/91a, set 2: Created default NVRAM - Promoted clone to working. Fixed inputs for Lucky 7 (Impera, V04/91a, set 1) and clone Lucky 7 (Impera, V04/91a, set 2). . Magic Card: Added CANCEL & BET inputs and button-lamps layout to Magic Card (v1.10 14.09.94) and clone Magic Card (v1.2 200/93, set 1). Now these games are completely playable. . Poker (Impera, V11/90b): Added inputs and dipswitches from scratch. Created a default Dallas DS1207 binary to match the game requeriments. Created a default clean NVRAM. Different works on lamps and inputs. Some other fixes. Added a clickable button-lamps layout. Promoted game to working. - merit3xx.cpp: Added some video, hookup sound and NVRAM. Use object finders in a couple more places. Don't enable line timer until valid parameters are set (video\mc6845.cpp). Fixes hang in 'Multi-Action 7551-20-R3T'. - naomi.cpp: Added early Set5 Dev.box boot ROM (naomi_boot_2491.ic27). Note: Contains monitor routine which run in a dead loop and waiting for commands from host PC via Dev.ROM board's SCSI or serial. Not supposed to boot games. - nbmj9195.cpp: Decouple common mahjong inputs from NB1413M3. Use common inputs for nbmj9195, use 74166 for DSW reading and code cleanup. Use common nichisnd device and IPT_CUSTOM for mahjong input. Machine config cleanup. Added coin counters. Added DIP locations for all games. - neogeo.cpp: Make palette byte access behave the same as on real hardware (neogeo\neogeo_v.cpp). Note: On real hardware, a byte writen in palette RAM is repeated in the whole word. This is used by some software to detect emulation. - nichild.cpp . Implemented mahjong panels, allows 'LD Mahjong #4 Shabon-Dama' to boot. Preliminary sound. Figured out and hook up some dipswitches. Implemented alt input method for quiz games. Pinpoint soundlatch clear. Added SW game releases. TMPZ84C011 runs on separate 6 MHz XTAL. . Added note about missing gfx ROM and pinpoint 'Demo Sounds' DIP in 'LD Quiz dai 4-dan'. Decouple common mahjong inputs from NB1413M3. Use common inputs for nichild, added coin counter and changed DSW order. - pinball2k.cpp: Fixed Prism ROM loading and added temp VGA ISA card - royalmah.cpp . Got 'Ichi Ban Jyan' to work reliably enough. GFX glitches still fastidious, so still marked MACHINE_NOT_WORKING. Updated notes. . Fixed first part of protection check for Mahjong Cafe Doll, updated note on why it doesn't work yet (Fails protection check at 0x178, it puts 0x55 in 0xFFBF instead of 0x56 like the code expects and chaos ensues). . Moved Mahjong Raijinhai sets from dynax.c to royalmah.c driver. Added TMP91P640 MCU dump from clone Mahjong Raijinhai (Ver. D105) to parent Mahjong Raijinhai DX (Ver. D105) (ROM test gives all ok and works fine) - Promoted game to working. - segasm1.cpp: Fixed irq hookups, added sound to main soundlatch and inputs for Tinker Bell. Fixed blicks DIPs and update QA. - speedatk.cpp: Updated SpeedAttack driver. Watchdog period was too short for Daifugo. - system1.cpp . Filled in Shooting Master game settings from manual . Fixed Noboranka when complete the level 1, the music and effects not sounds anymore (ID 07157). - taito_f3.cpp: Eliminated game-specific tilemap palette hack (taito\taito_f3_v.cpp) - tmnt.cpp: Merged identical screen update functions - viper.cpp . Cleanups. Converted EPIC to address_map & logmacro. Re-arranged I2C code, experimentally move its irq code in timer callback. Filter irq state change until current one is actually serviced, make everything more stable. . Correct PowerPC clocks. Preliminary lightgun. Feasibility study about the I2C attached analog chip. Implemented Epic PCTPR. Hookup PC16552D. Use DS2430A device emulation in viper.cpp driver. . Boxing Mania, Mahjong Fight Club and Tsurugi: Move sound irq enable to something less hackish, fixes sound in Boxing Mania, Mahjong Fight Club and Tsurugi. . Code One Dispatch: Make clone 'Code One Dispatch Ver 1.16 (ver UAB)' playable with heavy GFX glitches. Fixed 'Code One Dispatch Ver 1.21' M48T58 NVRAM and DS2430 content. Also removed clone 'Code One Dispatch (ver UAA)' as the game content on the disk image is identical to parent set. Removed second DS2430A (probably superfluous if first is OK). . Mocap Boxing: Implemented front/rear speakers. Updated QA notes. Placeholder inputs. . Mocap Golf: Implemented stub screen demuxer. Added digital inputs. Documented Voodoo overlay behaviour. . Police 911: Implemented front/rear speakers. Updated QA notes. . Police 911 2: Added second DS2430A. Fixes "RTC SELF CHECK BAD" for 'Police 911 2'. Use OR logic on 1-Wire outputs instead of multiplexing on access patterns. . Silent Scope EX: Implemented stub screen demuxer. Documented Voodoo overlay behaviour. . Silent Scope Fortune Hunter: Implemented stub screen demuxer . World Combat: Identified some inputs . Xtrial Racing: Added digital inputs - xtom3d.cpp . Implemented ISA EEPROM stub for 'ISA16 Oksan I/O & Sound board for MK-III'. Fixed flash hookup, implemented inputs and misc. Hookup YMZ280B. Fixed EEPROM hookup. Updated QA. . Pump It Up: Hookup YMZ280B. Added input override and Red Book audio for 'Pump It Up'. Demoted 'Pump It Up' CD as BAD_DUMP. - zr107.cpp: Use palette format helpers and base palette entry count on palette RAM size - AGEMAME . Promoted several games to working: adonisu, bootsctnu, bootsctnua, bootsctnub, bparty, cashchamu, cuckoou, dolphntrce, dolphntrcea, dolphntrceb, dolphntru, eforsta5cea, gambler, glizrdce, goldpyr, goldpyra, hnktonku, incasunu, incasunua, kgalahce, koalamnt, kyhatonu, locolootu, magimask, magimaska, magimaskb, marmagicu, marmagicua, mountmonua, partygrs, partygrsa, pengpayce, pengpuck, qnilece, qnilecea, qnileceb, qnileu, qnileua, sldeluxe, unicorndu, wafricau and wcougaruc. . aristmk4.cpp: Rearranged Enchanted Forest sets in line with common practice. Enchanted Forest (4VXFC818, NSW) set is now parent. Modernized .lay files. Changed default "CBOPT1" DIP switch position for non-US sets to stop coin diverter error from occurring. Changed default "5201-5" DIP switch position for US sets to stop fhunter/fhuntera/cgold2 from being stuck. Changed USA description to US in line with the other Aristocrat drivers. . aristmk5.cpp: Added parent/clone relationships to clones with alternate names. Renamed chariotcv to chariotcpe and qnilev to qnilepe to reflect their regions. . acesp.cpp: Hook up HD6301 irq2 . Fixed calling of the Starpoint Electronic Counter (SEC) functions data_w() and clk_w(), they require 0 or 1 to be passed (barcrest\mpu5sw.cpp and bfm\bfm_sc4.cpp). . bfm_sc5sw.cpp: New driver for BFG 96x8 dot matrix VFD (bfm\bfm_gu96x8m_k657c2.cpp). Added 96x8 dot matrix display to Bell Fruit Scorpion 5. - Air Buster: Fixed offset of CALC1 chip in devram - Air Raid: Dumped proms and Text rom for clone Cross Shooter (Single PCB) - American Poker II, Hot Chilli, Jolly Card and other Funworld games: Realistic clickable buttons (layout\ampoker2.lay, layout\hotchili.lay, layout\jollycrd.lay) - Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp) . Ensure sprites gets updated once per effective scanline, fixes stuck vertical stripe in (MESS) Kick Off & Sword of Sodan (amiga\amiga_v.cpp). Get rid of logic setups in screen_update. . Assume max size if audlen == 0, fixes missing sound in (MESS) VideoKid and WWF WrestleMania (machine\8364_paula.cpp). Misc cleanups. - Arabian: Added an internal flag set on servicing an interrupt and cleared by RTI. Suppressing nested interrupts appears to fix issues in Arabian (Missing bird at top of the screen (ID 03916) and 2 Player freezes after Player 1's death (ID 08436)). Also renamed m_nf to m_if to match the datasheet (mb88xx\mb88xx.cpp). - Breakout [TTL]: Tweak color overlay. Changed colors to match gel sheets. - Cherry Chance: Implemented hopper. Promoted game to working. TODO: Complete I/O, requires manual for DIPs and (likely non-)JAMMA pinout. - Cherry Master I: Added/Redumped ROMs and PLDs and improved GFX for clone Hamburger House - Chexx (EM Bubble Hockey, 1983 1.1): Dumped Digitalker roms. Fixed rom loading. - Crazy Bugs: Dumped 80C51 MCU rom MX10EXAQC - Crazy Climber: Verified PROMs for clone Crazy Climber (ManilaMatic bootleg) - Crush Roller: Fixed number of 'Lives' DIP settings in clone Crush Roller (bootleg set 3) (ID 08800) - Dancing Stage: Redumped CD-ROM and dumped missing flash roms for clone 'Dance Dance Revolution (GC845 VER. JAB)' - Promoted game to working. - Dragon's Lair: Added zero-dropout LD-CHD for Dragon's Lair rev. F2/F/E/D. Promoted Dragon's Lair (US Rev. F2) and clones (US Rev. D, Pioneer LD-V1000), (US Rev. E) and (US Rev. F) to working. - Gegege no Kitaro Yokai Yokocho Matsuri de Battle Ja: Redumped game - Hang Pilot: Setup default screen cliprects, fixes regression. - Hold & Draw: Added gfx decoding stub - Knock Down 2001: Redumped game - Major Poker: Removed bad PLD dump from clone Super Yutnori (bootleg of Major Poker) - Martial Masters: Removed clone 'Martial Masters / Xing Yi Quan (ver. 102, 101, 101TW)' after confirming it's a bad dump - Matrix . Added BIOS loading stub. Wrote PCI stubs for MediaGX host & CS5530 bridge. Initial stub for legacy southbridge with $92 A20 gate (machine\mediagx_cs5530_bridge.cpp). Implemented base Super I/O & GXBASE interfaces and BC_XMAP_2 & BC_XMAP_3 (machine\mediagx_host.cpp). . Added stub for ZFMicro USB controller (machine\zfmicro_usb.cpp). Added CS5530 IDE PCI block (machine\mediagx_cs5530_ide.cpp/h). Added 8042 keyboard controller. Moved debug AGP declaration under compile switch. - Narc: Dumped PLS153s - Night Gal Summer [BET]: Flag game with MACHINE_UNEMULATED_PROTECTION - Novo Play Multi Card / Club Card: Novo Play buttons are now clickable (layout\novoplay.lay). Reverse-engineering the code of clones Novo Play Club Card (V3.3H) and Novo Play Club Card (V6.2H) to pass all the tests - Promoted games to working. Rewrote the protection bypass, created a default NVRAM for both and hardcoding all the expected values to work properly. Also derivated their own inputs. - Operation Tiger: Changed gun axes back to analog stick inputs. Also marked game as MACHINE_NOT_WORKING and MACHINE_IMPERFECT_TIMING. - PinMAME . Redumped clone Black Knight 2000 (LG-1) . recel.cpp: Added Recel System III BIOS. Verified that the BIOS is the same for 1702 (13) and 2716 (14) chips and also verified the BIOS ROM size. Added 'Screech' (Inder 1978). Removed old 'Screech' set, as we confirmed it's a fake set made by collectors for replacing the original personality PROM 1702 with a more common 2716 EPROM. - Pirate Ship Higemaru: Added tile x/y flip, fixes hi-score screen. - Road Riot 4WD: Dumped communication board ROM for Road Riot 4WD (04 Dec 1991, conversion kit) and clone (13 Nov 1991, conversion kit). This is the ADSP-2105 from the com-link board for kit versions of Road Riot. - Poker Monarch: Fixed inputs to be ACTIVE_LOW, added DIP definitions and updated QA. - Poker Spirit: Fixed rom loading so that bitplanes are in correct order and added palette. No idea where attribute bits are though. Removed tilemaps and hook up preliminary spritelist. - Royal Gum: Demoted game to MACHINE_MECHANICAL - Savage Quest: Added interlace mode and fixed offset behaviour. Fixes 800x600 and 1024x768 basic drawing (video\pc_vga_s3.cpp). - Shamisen Brothers Vol 1: Implemented driver for Kato's Shamisen Brothers. Implemented fast mode for Fujitsu flash (machine\intelfsh.cpp). Made DMA ready configurable (ata\atapihle.cpp). Emulated STT-SA1 PCM sample playback (sound\stt_sa1.cpp). Implemented tile X/Y flip flags. Also correct reversed names of loop variables tile_x and tile_y. Promoted game to working. - Shooting Star: Hook up DUART IRQs. Get the self-test one step closer to passing. - Shooting Zone System BIOS: Set Light Phaser as default option and reorder root buttons. Tie TL pins to gun inputs. - Shuuz: Implemented sprite-to-playfield shadow effect (missing since MAME 0.62). These shadows are visible at the feet of the round-card woman and the standing on-screen players. Note: MO color 1 causes a playfield palette shift + 0x200, if the MO has priority over the playfield. - Sliver: Use palette_device for RAMDAC layer drawing - Super Cobra: Redumped clone Super Cobra (Stern Electronics) (encrypted, KONATEC XC-103SS CPU) - Thayer's Quest . Added Laserdisc CHD to Thayer's Quest (set 1) and clone (set 2). Promoted games to working (https://youtu.be/xsAFKtDmKaw). . Fixed periodic IRQ hookup. Fixed COP421 clock divisor. Switched to Pioneer LD-V1000 by default and removed LD-PR7820 support for now. Switched to using logmacro and shorthand data types. Adjusted IRQ triggering and acknowledgement according to schematics. . Added a temporary SSI-263 Speech Synthesizer device extracted from thayers.c driver which remaps Votrax SC-02 phonemes onto the SC-01's phoneme set (sound\ssi263hle.cpp). . Added an HLE version of the Pioneer LD-V1000 laserdisc player (machine\ldv1000hle.cpp). Added a general-purpose parallel LaserDisc player interface to have a common class parent for Pioneer LD-PR7820 (machine\laserdsc.h). Only adjust video and audio enables on field 0, improves seeking visuals (machine\ldv1000hle.cpp). - Time Traveler: Replaced LaserDisc image with a good capture in clone Time Traveler (Japan). Promoted Time Traveler (Japan) to working. - Ultra Toukon Densetsu: Correct YM3438 sound chip clock divider. Also changed to mono sound output as the board lacks stereo outputs. Sound now matches PCB recording: https://www.youtube.com/watch?v=Gq0vScbBmyI - Victor 6: Fixed no YM3812 OPL2 sound in Victor 6 and clones (ID 08802) - Virtua Racing: Correct interpolation around sample loop point (sound\gew.cpp). Fixes 'SELECT' song in Virtua Racing. - Wink: Demoted game to MACHINE_NOT_WORKING - Fixed rom names in metro.cpp, magicard.cpp, midzeus.cpp, nemesis.cpp and taitopjc.cpp - Description changes of Alien: The Arcade Medal Edition (satellite), Arctic Wins (4XF5227H03, US), Blicks (Japan), Caribbean Gold (3VXEC449, US), Caribbean Gold II (3XF5182H04, US), Chariot Challenge (04J00714, Peru), Cherry Master '92 (V1.2D), Dallas Poker (CZ/V1), Daytona USA 2: Battle on the Edge (Japan, Revision A), Daytona USA 2: Power Edition (Japan), Fortune Hunter (2XF5196I01, US), Fortune Hunter (2XF5196I02, US), Gals Panic S2 (Asia, version 1.1), Gals Panic S2 (Europe, version 3), Golden Pyramids (0100878V, ASP), Jungle Juice (0200240V, ASP), Knight Boy (bootleg of KiKi KaiKai, set 1), Knight Boy (bootleg of KiKi KaiKai, set 2), Mahjong Gakuensai (Japan, set 1), Mahjong Raijinhai DX (Ver. D105), Mexico 86 (bootleg of Kick and Run, set 1), Mexico 86 (bootleg of Kick and Run, set 2), Mocap Golf (ver EAA:B), Novo Play Club Card (V3.3H), Novo Play Club Card (V6.2H), Paewang Jeonseol / Legend of a Warrior (Korean censored Samurai Shodown IV), Penguin Pirate II (0100869V, ASP), Pit Boss Megatouch (9234-20-01 R0A), Pit Boss Superstar III 30 (9233-00-01 R0, Standard version), Pit Boss Superstar III 30 (9233-00-06 R0A, California version), Pit Boss Supertouch 30 (9234-00-01 R0A), Pit Boss Supertouch 30 (9234-10-01 R0), Poker (Impera, V11/90b), Pump It Up: The 1st Dance Floor (ver 0.53.1999.9.31), Queen of the Nile (04J00784, Peru), Road Riot 4WD (04 Dec 1991, conversion kit), Road Riot 4WD (13 Nov 1991, conversion kit), Road Riot 4WD (04 Jun 1991, dedicated twin), Samurai Shodown 64 / Samurai Spirits / Paewang Jeonseol 64, Screech (4 players) and Shamisen Brothers Vol 1 (V1.01K), Sega Touring Car Championship (newer), Time Traveler, Time Traveler (Japan), Whirlwind (LA-3) and Whirlwind (LU-2) - Dipswitch fixes in 39in1.cpp, aristmk4.cpp, bmcpokr.cpp, cidelsa.cpp, goldstar.cpp, kikikai.cpp, magicard.cpp, merit3xx.cpp, nbmj9195.cpp, magicard.cpp, nichild.cpp, pkspirit.cpp, poker72.cpp, royalmah.cpp, segasm1.cpp, system1.cpp, viper.cpp and xtom3d.cpp - Renamed (blkrhino) to (blkrhinonz), (bumblbugql) to (bumblbugq), (chariotcv) to (chariotcpe), (chickna5ql) to (chickna5q), (dolphntrql) to (dolphntrq), (eforest) to (eforestu), (eforesta) to (eforest), (eforestb) to (eforestnz), (galpansu) to (galpansua), (hthero) to (htheroj), (indrema5ql) to (indrema5q), (jjokeri) to (pokeri), (jojoba) to (jojobar1), (jojobaj) to (jojobajr1), (jojobajr1) to (jojobajr2), (jojoban) to (jojobanr1), (jojobane) to (jojobaner1), (jojobaner1) to (jojobaner2), (jojobanr1) to (jojobanr2), (jojobar1) to (jojobar2), (pbss330) to (pbss330a), (puzzball) to (puzzballa), (qnileql) to (qnileq), (qnilev) to (qnilepe), (reelrockql) to (reelrockq), (skilldrp) to (skilldrpa) and (tekken2) to (tekken2ud) - MAME . VIDEO RENDERING SYSTEM . Keep alpha channel intact when drawing text components (emu\rendlay.cpp). Improves appearance of text drawn over colors other than black. . Removed obsolete text bg rect in layouts (layout\xxx.lay) . Added forward declaration for render_bounds (emu\emufwd.h) . Added out of bounds check to 16-bit get_texel (32-bit version already has it) (emu\rendersw.hxx) . Let's make noscreens layout window aspect ratio 4:3 (layout\noscreens.lay) . DEVICE . Added media change notifier and exposed to LUA. This allows interested parties to receive notifications on media changes. This is demonstrated by the file manager and media image information menus now updating immediately if the system ejects a mounted image, or a mounted image is changed by a script or something (emu\diimage.cpp). Removed now-unused function (emu\diimage.h). . gen_latch reset latch_written at reset through function instead of directly (machine\gen_latch.cpp) . INPUT: Allow punching holes in IPT_UNUSED and IPT_UNKNOWN (emu\ioport.cpp) . UI/OSD . Update file manager and media image information menus immediately on media image changes (ui\filemngr.cpp and ui\info.cpp). Return index of added item from item_append (ui\menu.cpp). . Fixed misleading error messages from -verifysoftware (mame\clifront.cpp) . 3rdparty . Updated FLAC (3rdparty\flac) to version 1.4.3, JPEG (3rdparty\libjpeg) to 9e, LZMA (3rdparty/lzma) to 23.01, utf8proc (3rdparty\utf8proc) to 2.9.0 and ZLIB (3rdparty/zlib) to 1.3.0. Enabled some more warnings for LZMA now that upstream is cleaner (scripts\src\3rdparty.lua). Removed Subversion attributes from .gitattributes. Always define NDEBUG to avoid log spam for 3rdparty\flac. . Added support for compact cassette images in FLAC format (formats\cassimg.h and formats\flacfile.cpp). Added support for flac data where bits_per_sample != 16. . Added Zstandard compression library version 1.5.5 (3rdparty\zstd\*). Added Zstandard support for zip archives (util\unzip.cpp) and CHDs (util\chdcodec.cpp). . Be more consistent with s32 param (emu\schedule.cpp (timer)) . No need to always change cpuclock at reset when non-default port_changed takes care of it (only MESS drivers). - Compiling . Changed drivers on where to place class variables . Use C++ swappable idiom correctly, clean up #include guards for headers that were moved. . Ensure that the has_* file actually has data in them (scripts\genie.lua). Note: The previous PR (MAME 0.261: Make generation of has_foo.h files deterministic) had clearly never been tested. . Removed sh1_ and sh2_ prefixes from Hitachi SH-1/2 CPUs . Removed use of utf8.h, \xc2 and \xc3 in input defs, mame\ui and devices\bus. Removed some unneeded PORT_NAME from input defs. Cleanup and added escaped characters to comments. . Make building emulator optional. By using make TOOLS=1 EMULATOR=0 it is now possible to build tools only. . Removed superfluous semicolons . Use multibyte.h helpers (ata\cr589.cpp, imagedev\harddriv.cpp, isa\mcd.cpp, machine\atastorage.cpp, machine\smc91c9x.cpp, mips\o2dprintf.hxx, nscsi\cd.cpp, nscsi\hd.cpp, nscsi\s1410.cpp, pinball\wpc_pic.cpp, shared\xbox_usb.cpp, sega8\sega8_slot.cpp) . Use util::sum16_creator (neogeo\prot_cmc.cpp, sega8\sega8_slot.cpp). Use std::clamp (shared\xbox_nv2a.cpp) . mingw-w64-x86_64-llvm is required for llvm-ar (.github\workflows\ci-windows.yml) . Make #include guards match paths, sort filenames (bus\pci\* and mame\shared\*). . Miscellaneous cleanup (machine\ds2430a.cpp, machine\eeprom.cpp/h, machine\nvram.cpp, ui\icorender.cpp/h) - Debugger . Allow -count to be specified in hexadecimal or octal (tools\unidasm.cpp) . Added aliases for some MOS 6502-compatible CPUs. Allows m6507, m6510, m65c02, m65ce02 and w65c02s to be debugged with GDB stub (debugger\debuggdbstub.cpp). 0.261 - New games: Fengyun Hui - New Working games: Baby & Bombo, Eibise (Japan), Parent Jack (Japan) and Tekken Tag Tournament (Japan, TEG1/VER.C1) - New Non-Working games: Animal House (V1.0, set 1), Blue Shark (MDS Hellas), Crazy Bugs (V103JP), Donkey Kong Jungle Fever (Ver.1.000, 2005/08/03), Seoul 88 Fever and Slot no Oujisama / Slot Prince (Japan, SLO1 Ver. B) - New clones: Animal House (set 3), Animal House (V1.0, set 2), Aracnis (bootleg of Scorpion on Moon Cresta hardware, set 2), Astro Fighter (Taito), Bomb Jack (bootleg), Chimera Beast (Japan, prototype, set 2), Crazy Mazey, El Dorado (V1.4D), El Dorado (V5.1DR), Forty-Love (bootleg), Grand Prix '98 (V100K, set 2), Hachoo! (set 2), Hamburger House, Hyper Olympic (bugfixed), Knight Boy (Game Corporation bootleg), Magic Bomb (Ver. AA.72.C, 25/05/05), Mahjong Jong-Tei [BET] (Japan, Techno-Top license), New HUNTer (bootleg, set 3), Pili Shen Deng, Pleiads (Irecsa, set 2), Pole Position (Atari version 1 on Namco PCB), Puck Man (Alca bootleg), Quiz Channel Question (Korea, Ver 1.10), Rally X (Video Game bootleg), Red Bird (bootleg of Space Firebird), Scrabble (Spanish bootleg of Scramble), Sea Wolf (set 3), Seven Land, Space Panic (set 4), Spider (Buena Vision, with nudity), Stadium Hero '96 (Korea, Dream Island license), Street Fighter: The Movie (v1.12K, Korea), Super Yutnori (bootleg of Major Poker) and Time Scanner (bootleg) - New PinMAME games: Black Magic - New drivers: mirderby.cpp and seoul88.cpp - New devices: hd44780u, hd6801v0, m6801u4, mc68120, mc68121, ms1_d65005, ms1_gs88000, ms1_unkarray, samsung_k9f1g08u0m, samsung_k9f2g08u0m, taitoio_opto and tmp68303 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://www.youtube.com/@bobzed5447/videos - CPU . ARM: Fixed register-counted shifts in disassembly (arm\armdasm.cpp). Use util::sext in execution of branch instructions (arm\arm.cpp). . ARM7: Correct DASM of register shift op2 (arm7\arm7dasm.cpp). Use util::sext in execution of branch instructions (arm\arm7ops.cpp). . ATAPI CD/DVD-ROM and SCSI CD: Fixed interpretation of CD Audio control page data (machine\t10mmc.cpp) . Hitachi H8: Fixed divs (h8\h8.lst). Fixes the voice volumes in the (MESS) Yamaha MU100 . Hitachi HD44780 LCD Controller . Explicitly define a clock for all HD44780 and derivative LCD controllers and added a validity check to ensure the defined clock is non-zero. . Replaced HD44780A00 rom with correct version from 1985 datasheet (which matches videos of vintage devices). Added HD44780UA00 variant device with rom from 1999 datasheet. Added HD44780UA02 device and hook it to the (MESS) avrmax.cpp driver, as the international characters from UA02 are required for some strings in (MESS) CC2-Schachzwerg (German). Fixed two incorrectly transcribed characters from the Epson SED1278 datasheet. Cleaned up mess in ROM selection code. . IBM PowerPC: Use util::sext for sign extension in disassembler (powerpc\ppc_dasm.cpp). Don't generalte illegal instruction exception for LMW invalid forms (powerpc\ppcdrc.cpp and ppcfe.cpp) (ID 08791). . Motorola MC6801 . Added standby pin. Save ram control reg upper bits to 'NVRAM'. Removed local implementation of m6801 standby pin and ram control reg in (MESS) Psion. Fixed SLP wakeup from Tin input capture event. Added pulse on SC1 to properly latch data from M6801 MCU port in Bubble Bobble and 'Kick and Run'. Added support for canned NVRAM. Added setter for NVRAM battery status. . Moved RAM, ROM and I/O areas into internal maps for all variants (including a few that lacked their own device types until now). CPU device now saves NVRAM for applicable standby areas, which only include the first part of internal RAM on NMOS variants (m6800\m6801.cpp: Hitachi HD6301, HD6303, HD63701, Motorola MC6801 and MC6803). . Motorola MC68705: Added preliminary support for analog input ports (m6805\m68705.cpp) . Samsung KS0164 audio processor . CPU refinements. Force source register to be the same as destination register for max/min instructions. Fixes missing instruments and eventually disappearing music in Elfin attract. Write "tst" instead of "zero |=" in disassembly (ks0164\ks0164.cpp). . Fixed neg/not and looping. Added volume and envelopes. Correct loop flag and pan swap. Fixed registers on nonloop so that the voice is freed correctly. Bonus usage debug output, to be removed at some point. Fixed looping calculations and removed debug stuff (ks0164\ks0164.cpp and sound\ks0164.cpp). Actually lower TX full semaphore when host reads MPU-401 buffer. This fixes elfin losing sound and the ability to coin up during attract (sound\ks0164.cpp). . Texas Instruments TMS32025: NEG instruction accidentally modifies the wrong status register - C_FLG is in ST1, not in ST0. Calling CLR0(C_FLG) or SET0(C_FLG) accidentally modifies ST0's INTM bit instead of ST1's C bit. . Toshiba TMP68301: Downshift timer irqs by one (m68000\tmp68301.cpp), fixes Poker Spirit input reading. . Toshiba TMP68303: Added stub for TMP68303 (bingowav.cpp, joystand.cpp and pkspirit.cpp) . Toshiba TMP90xxx/TMP91640: Added I/O ports and halt support (tlcs90\tlcs90.cpp) - SOUND . Yamaha SWP30 sound chip: Use natural addresses, reorganized the meg and make envelopes and keyoff a little better. Corretly decompress the samples. Added lfo, correct issue in state readback making the program lose track of some samples. Added mixer, fixed a number of things and reverb (sound\swp30.cpp). Small advances to the disassembler (sound\swp30d.cpp). . Yamaha XT446 synth: Assign address maps to correct space numbers (fixes validation errors) (sound\xt446.cpp) - DEVICE . ALPHA-8201: Removed unneeded zerofill . NAND Flash Memory/Samsung K9xxx: Only reset page address on read or program command. Added Samsung K9F1G08U0M and K9F2G08U0M (machine\nandflash.cpp). . Floppy . Implemented get_sectors_per_track() (formats\imd_dsk.cpp). Check for unrecognized options (imgtool\main.cpp). . Removed hard-sector floppy support (imagedev\floppy.cpp) (MAME 0.259) and workaround for index timing regression (imagedev\floppy.cpp) (MAME 0.260). Note: This has caused numerous regressions, including floppy formats not working and application hangs when using some formats. . Mega System 1 Tilemap: Trigger screen update on scroll register write (visible in Saint Dragon) (jaleco\ms1_tmap.cpp) . National Semiconductor INS8250/NS16xxx UART: Implemented transmit Break functionality. Removed scratchpad register access to 8250 class chips (machine\ins8250.cpp). . Netlist . Report line number when an exception occurs. Break up resistor arrays into individual resistors (tools\nl_convert.cpp). . Maximum count for 9310 is 9, not 10 (netlist\devices\nld_9316_base.hxx). Fixes scores over 200 break the score counter in Breakout [TTL]. - atronic.cpp: Added basic notes about the Atronic CashLine and successor.s - changyu.cpp: Identified palette and tilemap format, allow changyu2 to show some GFX. - cchance.cpp, pkspirit.cpp and sbmjb.cpp . Added TAITOIO_OPTO device (taito\taitoio_opto.cpp), fixes coin insertions. Allow multiple instances and more flexible connections. . Fixed some inverted inputs for Honoo no Invader . Added I/O irq source, DSWC and TAITOIO_OPTO to Cherry Chance. Overhaul inputs. Fixed GFX bitplane order. - cischeat.cpp and megasys1.cpp . Started splitting up megasys1.cpp driver state class and hooked up microcontroller . Encapsulated gate array simulation as a device (jaleco\ms1_gatearray.cpp). Fixes Shingen Samurai-Fighter hard crash in stage 2 (or later) (ID 08541). Refined memory maps and cleaned up code. Reduced reliance on driver init functions. Removed placeholder microcontroller ROMs from games using gate arrays. Updated notes. - cv1k.cpp and nexus3d.cpp: Migrated to use newer Flash memory emulation (machine\nandflash.cpp) - ddenlovr.cpp: General clean-up - dinoking.cpp: Added basic hookups - dynduke.cpp: Use single-pass sprite drawing (seibu\dynduke_v.cpp). Manage sprite/tilemap priorities using priority masks. Added code to clear the priority bitmap before drawing this time. - ggconnie.cpp: Use input_merger for irqs, fixed 'Go! Go! Connie chan Jaka Jaka Janken' freezes. Added OKI bank_array, improves sound. - goodejan.cpp: Updated sprite rendering. Fixed sprite coordinates for goodejan. Use single-pass sprite rendering. Minor cleanup. - gsword.cpp: Slight cleanup - interflip8035.cpp: Common sampleset for all games - itech8.cpp: Splitted class related to sensor hardware and timer. Removed unused stuffs. Convert logging feature to logmacro.h. - karnov.cpp: Interrupt enable feature added as per schematics - megaplay.cpp: Use export NTSC Mega Drive system configuration. MegaPlay was apparently only intended for export markets and games shouldn't run in Japanese. - megasys1.cpp: Trigger screen update on scroll register write (visible in Saint Dragon) (jaleco\ms1_tmap.cpp). Fixes Saint Dragon 1P start screen - texts are not moving like they should (ID 05423). - nss.cpp, sfcbox.cpp, snesb.cpp and snesb51.cpp: Use properly sized types for registers, fixes SNES-Test wanting execution to wrap within the same bank (g65816\g65816.h). - rfslots8085.cpp: Major rewrite of Recreativos Franco i8085 + projectors based slots driver: Hooked all the remaining devices and worked on them to get the system working. Inputs and outputs from the scratch. Motors, projectors and lots of improvements. Redesigned ASCII PCBs layers to be more readable. Designed an internal artwork that allow Baby & Bombo to be playable. Simulated the physical Baby & Bombo (bingo roller) in the internal layout. Promoted Baby & Bombo to working. Added technical notes. - royalmah.cpp: Dumped TMP90840/91640 internal roms for Mahjong Cafe Break and Mahjong Cafe Doll - sms_bootleg.cpp . Mark smssgamea as clone of smssgame, added MCU NO_DUMP and mark both games with MACHINE_UNEMULATED_PROTECTION flag. Clean and update notes. . Initial stab at game ROM banking. Fixed Super Mario in smssgame. Added some sense over $8000-$bfff, fixes Wonder Boy, Alex Kidd and Solomon Key. Rewrote and simplify banking, allows Hello Kang Si and Buk Doo Sun to boot. Implemented $4000-$7fff bank, fixes Final Bubble Bobble. Simplify banking scheme, move menu roms inside game_data space, fixes smssgamea game loading. - taito_f3.cpp: Cleaned up code: Replaced macros with functions and lambdas. Changed variables to more appropriate types. Removed fixed scale version of drawing function. Removed saturating byte addition table. Reduced scope of local variables (taito\taito_f3.h and taito_f3_v.cpp). - taito_o.cpp . Promoted Parent Jack and Eibise to working . Added TAITOIO_OPTO coin chutes. Tie irq 7 to all clear switch, allows game init from user side. . Interrupt 6 and hopper implementation for both games. Also refactored some inputs and DIP switches. Clean-up (still working on solving issues). Added different hopper implementation. Work on output lines, mech counters, button lamps, etc. Hooked int7 to a new button to init the NVRAM. . Rewrote I/O section. Fixed Eibise sprite priorities. Fixed unused lambda capture. Added internal clickable control panel layout to Parent Jack and clickable control panel with button lamps to Eibise. Switched the BET and MAX BET buttons in Eibise control panel according to the service mode lamps sequence. Fixed Parent Jack 'Credits at start' DIP default. - taitotz.cpp: Don't generalte illegal instruction exception for LMW invalid forms (powerpc\ppcdrc.cpp and ppcfe.cpp). Fixes Landing High Japan, Densha de GO 3 and possibly all games in the driver stuck at TLCS900 initialize screen (ID 08791). - thunderx.cpp: Simplified K052591 PMC emulation code a little. Removed some redundant variables and removed complementary division/multiplication. - travrusa.cpp: Correct CPU clock and screen timings based on schematics - 18 Holes Pro Golf: Rewrote RMW portion, fixes map display. Cleanups. TODO: 6845 resolution/refresh rate calculation is incorrect (256x256), is it actually trying to fit 256 columns into 240? - 64th. Street: Dumped I/O microcontroller (TMP91640 internal code) - Area 51: Site 4: Added stub LPT0. TODO: PC_LPT check at POST, wants a debug device? - Big Striker: Emulated microcontroller - Breakout [TTL]: Maximum count for 9310 is 9, not 10 (netlist\devices\nld_9316_base.hxx). Fixes scores over 200 break the score counter in Breakout [TTL] (ID 08787). - Cherry Chance: Confirm year and manufacturer - Cow Tipping: QA notes. Replaced MC68328 CPU1 with 'MC68EZ328 DragonBall-EZ Processor'. TODO: AMD_29LV640MB (64 MBit with Boot Sector). - Diamond Derby: Fixed game keeps playing static sound on bootup (ID 08792). Added layer enable, fixed video priorities and converted fix layer to tilemap. Fixed racetrack layer drawing, sprite upper tile bank, racetrack-sprite priority and text layer flipxy bit. Fixed sound section. Implemented sound CPU reset. Added base inputs to clone Diamond Derby (EDG Impeuropex bootleg). - Fortune Wheel: Untangle driver from sms_state and added ROM bank - Gun.Smoke: Swapped coin inputs and corresponding DIP switched to match the manual - Jongkyo: Added notes about $4x area (memory space protection?), demoted game to MACHINE_UNEMULATED_PROTECTION. - Last Fighting: Added non-instant blitter timings - Magic Bomb: Added sprites rom mx29f1610ml.u26 from clone Magic Bomb (Ver. AA.72.C, 25/05/05) to clone Magic Bomb (Ver. AA.72.D, 14/11/05). - Mahjong Vegas: Complete DIP definitions for Mahjong Vegas and clone - Master's Golf: Added extra notes about undumped protection entity - Miracle Derby: Make game to display something. Moved game to its own driver, added several bits and cleanups. Fixed sub CPU bank, make it run in attract mode. Combined main/sub memory maps and identified flip screen. Added Player1 key matrix inputs, gfx bank and irq masks. Implemented P2 side inputs. Added base scrolling. Assume scroll disables thru $7ffa. Added NVRAM, identified Z80 as a coin dedicated CPU and sort notes. Improved sprites. - Nandemo Seal Iinkai: Added unemulated_features (jaleco\tetrisp2.h) - New Lucky 8 Lines: Fixed the control panel layout colors (layout\lucky8.lay) - Operation Thunderbolt: Converted screen to set_raw. Fixed clone Operation Thunderbolt (Japan) "For use in Japan" disclaimer drawing, DIP default language to Japanese and clone Operation Thunderbolt (US, rev 1) to English. - Poker Spirit: Added TE7750 input getters. Downshift timer irqs by one (m68000\tmp68301.cpp), fixes Poker Spirit input reading. Map Z80 ROM to $4000, allows game to have some sound. Added DIP definitions. - Riot City: Demoted main CPU roms as BAD_DUMP. Note: In memory test, the game recognize the A6 and A8 roms as "bad" (ID 08782). - Section Z: Swapped coin inputs to match the manual. Also swapped corresponding DIP switch setting descriptions. - Solitaire . Added PCB layout for the F-E1-16-004 PCB and added additional information. Also redefined the keys used to be logical and named them as per the control panel. . Added speedup and templated speedup methods - Space Battle: Boost scheduler interleaving during communication with speech CPU for Space Battle (Hoei, set 1). Note: Main CPU polls for response from 8039. - Space Force: Confirm I8035 CPU2 XTAL value - Spectar: Confirmed PAL dumps for Spectar sets - Success Joe: Make sure sound section starts in a disabled state, fixes full ADPCM playback on soft resets. - Super Crowns Golf: Modernized palette/vram memory view and reduced ADPCM aliasing. Misc cleanups. Rewrote ADPCM section, improves playback. - Super Mario Fushigi no Korokoro Party 2: Dumped missing boot ROMs - Tekken Tag Tournament: Redumped clone Tekken Tag Tournament (Japan, TEG1/VER.C1) - Promoted game to working. - Treasure Island (Subsino): Added more memory to map to the New HUNTer clones. Dumped missing proms for New HUNTer and clone New HUNTer (bootleg, set 2). Demoted New HUNTer and clone New HUNTer (bootleg, set 1) to machine imperfect graphics and not working. These sets need video hardware corrections and work on inputs and lamps. Dumped GALs for New HUNTer (bootleg, set 2). - Victory Shoot: Flagged game with MACHINE_REQUIRES_ARTWORK being clearly a mechanical game - X-Men: Redumped clone X-Men (4 Players ver AEA, bootleg) - Fixed rom names in astrcorp.cpp, dec8.cpp, exidy.cpp, itech32.cpp, mw8080bw.cpp, namcos12.cpp, pass.cpp, taito_f2.cpp, taito_z.cpp and vamphalf.cpp - Description changes of Aracnis (bootleg of Scorpion on Moon Cresta hardware, set 1), Bad Dudes vs. Dragonninja (US, revision 1), Birdie Try (Japan, revision 2), Birdie Try (Japan, revision 2, revision 1 MCU), Birdie Try (Japan, sample version), Bubblen Roulette (Japan, main ver. 1.8, video ver. 1.3), Chimera Beast (Japan, prototype, set 1), Diamond Derby (Quinella bet, EDG Impeuropex bootleg), Diamond Derby (Win bet, newer), Diamond Derby (Win bet, original), Dragonninja (Japan, revision 1), El Dorado (V1.1TA), Hachoo! (set 1), Honoo no Invader (Japan, main ver. 1.35, video ver. 1.35), Grand Prix '98 (V100K, set 1), Mahjong Cafe Break (Ver. 1.01J), Mahjong Cafe Doll (Japan, Ver. 1.00), Mahou no Lamp (v. JAA02), Miracle Derby (Japan), Night Love (Japan 860705, Bet), Pac-Man (Video Game SA bootleg), Paranoia (Arcade PC Engine, bootleg?), Pleiads (Irecsa, set 1), Robocop (US, revision 0), Robocop (US, revision 1), Robocop (World, revision 3), Robocop (World, revision 4), Secret Agent (Japan, revision 2), Secret Agent (World, revision 3), Sly Spy (US, revision 2), Sly Spy (US, revision 3), Sly Spy (US, revision 4), Sonic Blast Man's Janken Battle (Japan, main ver. 1.1, video ver. 1.0), Spider (Buena Vision, without nudity), Stadium Hero '96 (Europe, EAJ, Tuning license), Super Game (Sega Master System Multi-game bootleg, 01 Final Bubble Bobble) and Super Game (Sega Master System Multi-game bootleg, 01 Tri Formation) - Dipswitch fixes in bmcpokr.cpp, cchance.cpp, gunsmoke.cpp, lwings.cpp, mediagx.cpp, mirderby.cpp, namcos12.cpp, othunder.cpp, rfslots8085.cpp, royalmah.cpp and taito_o.cpp - Renamed (eldoradd) to (eldoraddo) - MAME . VIDEO RENDERING SYSTEM . Added some additional layout functionality and script bindings (mame\luaengine_render.cpp) . Added bitmap classes to layout sandbox (plugins\layout\init.lua) . Use std::clamp (render\bgfx\clearreader.cpp) . MEMORY SYSTEM: Added some parentheses on ternary conditional operators for clarity. Added a raw read function for memory regions (mame\luaengine_mem.cpp). . LUA engine: Fixed jobs waiting for frame updates sleeping forever. Restored ability for wait functions to yield values from coroutines (mame\luaengine.cpp). Made the documentation on what it's supposed to do a bit clearer. . INPUT: Fixed rarely-used PORT_CROSSHAIR_MAPPER and PORT_CROSSHAIR_MAPPER_MEMBER macros (emu\ioport.h) . UI: Refactor probably-unsafe code referencing temporary object (ui\menu.h) . 3rdparty: Fixed error check in sockatmark() (3rdparty\asio\include\asio\detail\impl\socket_ops.ipp) . Multi-Language: Fixed some editing errors in Turkish UI translation . Disallow zero-length regions in ROM definitions and software lists (emu\validity.cpp and emu\softlist_dev.cpp) . Added option for Wayland support to compiling guide (docs\source\initialsetup\compilingmame.rst). Clarified behaviour of memory region read/write methods (docs\source\luascript\ref-mem.rst). - Linux: Suppress Clang unused label warning (src\3rdparty.lua). Fixed inadvertent assignment in PulseAudio callback (pulseaudio\pa_linux_pulseaudio_cb.c). - Compiling . Make generation of has_foo.h files deterministic. Without this patch, order of entries in generated/has_{buses,cpus,formats,machines,sounds,videos}.h varied across builds. This patch was done while working on reproducible builds for openSUSE (scripts\genie.lua). . Use multibyte.h helpers (igs017.cpp, konamigq.cpp, konamigv.cpp, k573mcal.cpp, naomigd.cpp) . Use util::sext for sign extension (mb86233\mb86233.cpp, saturn_v.cpp, seibuspi_v.cpp and ygv608.cpp) . Keep local headers before library headers (pkspirit.cpp, sbmjb.cpp, taito_o.cpp) 0.260 - New games: Jack Use (Jackpot settings for Interflip slots machines) and Solitaire (version 2.5) - New Working games: Baby Fruits (100 pts version), Costa Brava, Mahjong Vegas (Japan), Sevilla and Toledo - New Non-Working games: Bingo Parade (main) (MDA-C0008E), Go & Stop, Hanguk Pro Yagu 98, Spin Fever and 'unknown Yuvo Joy Stand game' - New clones: Bingo Galaxy (main) (MDA-C0039A), Costa Brava (1 jackpot point, 77%), Costa Brava (2 jackpot points, 77%), Costa Brava (4 jackpot points, 77%), Costa Brava (8 jackpot points, 77%), Deluxe Trivia ? Whiz (6221-75, U5-0 Edition 5 Vertical), Demon's World / Horror Story (set 6), Geo Storm (Japan, 026 custom sound CPU), Gorf (program 1, with French Language ROM), Match'em Up (6221-51, U5-1), Multi Game (Italian, Versione 3.9.8 - 1.5.7, 01-JUL-98), New HUNTer, New HUNTer (bootleg, set 1), New HUNTer (bootleg, set 2), Pack'n Bang Bang, The Pit Boss (2214-07, U5-0), Sevilla (1 jackpot point, 77%), Sevilla (2 jackpot points, 77%), Sevilla (4 jackpot points, 77%), Sevilla (8 jackpot points, 77%), Sum-eoitneun Deongdalireul Chat-ara!, Super Magic Card, Super Nove (Playmark, Euro currency), Tic Tac Trivia (6221-23, U5-0C, 07/07/86), Toledo (1 jackpot point, 79%), Toledo (2 jackpot points, 83%), Trivia ? Whiz (6221-10, U5-0A, Edition 4) and Trivia ? Whiz (6221-05, U5-0C, Edition 3) - New drivers: cougar.cpp - New devices: clgd5465_laguna, i82443lx_host and i82443lx_bridge - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://youtu.be/aeqqwqnLtXo - CPU . Analog Devices ADSP-2100: Use count_leading_ones_32 where it's simple rather than inverting and counting leading zeroes (adsp2100\2100ops.hxx) . Hitachi SH-1/2/3/4: Improved SH7021 SoC emulation. Added (rudimentary) SH7021 DMA, timers and GPIO and logging for the rest. Fixed SH2 NMIs occurring in a delay slot when using the interpreter. Generally cleaned up code and renamed functions/macros/variables more conventionally. Fixed MAC_W regression (sh\sh.cpp). . Samsung KS0164 audio processor: Swap bges and bles (fixes sound effects). Fixed some disasm issues and documented a new opcode (ks0164\ks0164.cpp and ks0164d.cpp). . Texas Instruments TMS57002 'DASP': Workaround compile issue with tms57002.h / tms57002.hxx - SOUND . Atari C012294 POKEY: Double-check to make sure timer IRQs are enabled before raising them. Latch current value of keyboard count when registering presses in non-debounce mode. Fixes start button not responding in (MESS) a5200:pitfall (sound\pokey.cpp). . Samsung KS0164 Wavetable Synthesizer: Attempt to fix audio looping issues (sound\ks0164.cpp). - DEVICE . 8042 Keyboard/Mouse Controller: Unbundle keyboard from device and make it optional (machine\8042kbdc.cpp) . Floppy . Removed flopimg.h and fsmgr.h from floppy device header (imagedev\floppy.cpp). Workaround for index timing regression (imagedev\floppy.cpp). . Formats-related #include cleanup: Note that IMD is one of the default MFM formats, so there is no need to add it explicitly. Floppy format API refinements: Added noexcept to format information overrides and several simple floppy_image accessors. Be more const-correct and use references instead of raw pointers wherever applicable. In particular, floppy_image_device::load and floppy_image_device::save now take a reference to floppy_image rather than a pointer, const-qualified in the latter case. . MC146818 RTC: Split non-direct read and write handlers into more hardware-accurate handlers for address writes and data reads/writes. Note that address_r is not provided since the original IC makes no provision for reading data strobed with AS back. However, a getter has been provided for some situations where this may be dubiously possible. . MIDI In image device: Support loading sysex dumps (imagedev\midiin.cpp) . NEC uPD7220: Wrap the line if pitch is smaller than aw (upd7220_device::draw_graphics_line) . TI TMS34061 VSC: Added accessors to get the horizontal and vertical visible resolution and totals (video\tms34061.h) - dgpix.cpp . Refactor to use Intel Flash ROM. Added controls and sound banking for BMkey PCBs Beat Player 2000 and Let's Dance. Fixes incorrect input mapping in Beat Player 2000 (ID 08771). . Demoted Let's Dance and Beat Player 2000 to not working - gms.cpp: Added DIP settings for Shizhan Ding Huang Maque and Shizhan Majiang Wang - interflip8035.cpp . Interflip electromechanical slots major rewrite. Hooked all devices, inputs, outputs, reels mechs, internal layout with all parameters and working reels. Also added docs and technical notes. The machine is currently passing all the tests. Added internal layout for Interflip electromechanical slots. . Changed default Door Switch state. Added missing kbdc scan line mask to get the machine in working state. Added and hooked Hopper Device. Fixed reels symbol's positions in external artworks for all machines. Fixed reels symbol's positions for Toledo internal layout. Changed where possible logical operators with BIT function. Added coin-in sound sample. Added Lever mechanical rattle sound sample. Added and updated technical notes. Correct the notes about Costa Brava payment. Switch the system to game mode by default. . Improved the internal layouts, creating new ones for all the different games. Arranged the reels/symbols per machine. Improved the samples system. Derived new machine config to cover specific sets. . Promoted Costa Brava, Jack Use, Sevilla and Toledo to working. - merit.cpp . Added additional notes to some sets. Added a few missing dipswitch settings. Several ROM name corrections. . Dumped the KEY BPROM for 'Deluxe Trivia ? Whiz' and Phraze Craze. Arranged Phraze Craze questions roms as found on actual ROM board. Added PLD dumps to matchem, matchemg, phrcraze, phrcrazea, phrcrazeb, phrcrazec, phrcrazev, riviera, rivieraa, rivierab, trvwz3, trvwz3a and trvwz3b. . Marked clones Match'em Up (6221-55, U5-1 German), The Couples (set 1), The Couples (set 2) and The Couples (set 3) as BAD_DUMPs - mtouchxl.cpp and pcat_dyn.cpp: Updated CMOS definition so keyboard can be safely removed - nmk16.cpp . Replaced MCU simulation in hachamf and hachamfa with emulated NMK-113 MCU. The MCU appears to be a multipurpose MCU, as it has multiple program paths depending on a port. . Replaced MCU simulation in clone Thunder Dragon (4th Jun. 1991, protected) with emulated NMK-110 MCU. . Load the MCU 215 binary for Saboten Bombers (set 1) and clone (set 2) too, even if for emulation purposes it seems unimportant. - rfslots8085.cpp: Marked 'Baby Formula 2' as BAD_DUMP. Main and audio CPU ROMs bits 2 & 5 are stuck to 0. - rfslotsmcs48.cpp . Major rewrite: Hooked all the remaining devices and worked on them to get the system working. Inputs and outputs from the scratch. Motors, projectors and lots of improvements. Fixed conditional requesting ay8910 data. Redesigned ASCII PCBs layers to be more readable. Designed an internal artwork that allow Baby Fruits to be playable. Promoted Baby Fruits (100 pts version) to working. Added technical notes. . Marked Baby Fruits (100 pts version) and clone Baby Fruits (25 pts version) as BAD_DUMP. Baby Fruits (100 pts version) main CPU ROM is underdumped and duped halves. Baby Fruits (25 pts version) has too many illegal opcodes and full of garbage. Marked Ajofrin City as BAD_DUMP. Main CPU ROM is underdumped and duped halves. Seems to be a bad/dirty higher address pin. Needs a redump. - royalmah.cpp: Dumped internal roms for clone Mahjong Vegas (Japan) and Mahjong Cafe Paradise. Promoted clone Mahjong Vegas (Japan) to working. Added preliminary address map to Mahjong Cafe Paradise. - subsino.cpp and subsino2.cpp: Added some fake internal ROM to encrypted HD647180X games so the MMU can get set up properly. Removed extraneous RAM from HD647180X memory maps where the MCU has some internal RAM. Replaced Zilog Z80180 CPU1 with Hitachi HD647180X MCU in mtrain, strain, tbonusal and wtrnymph. - undrfire.cpp: Fixed assert failure in debug build (taito\undrfire.h) - Dora Neco BanBan: Use PWM display device for the 7segs. Better guess for irq frequency. - Double Dealer: Replaced MCU simulation with emulated NMK-110 MCU - Funky Ball: Removed AT keyboard - Kung Fu Fighters: Moved 'Kung Fu Fighters (IGS, v202N)' to jackie.c driver, boots but has incorrect GFX and some missing controls. - Kung-Fu Taikun: Added preliminary protection simulation for clone Kung-Fu Taikun (set 2). Protection is similar to Wiz. This simulates enough that the game doesn't crash after bonus rounds. - Quake Arcade Tournament: Regenerated HDD geometry, with -chs 4200,16,63 as per reported HDD label. Note: Throws "Primary master hard disk fail" in shutms11. Disk has a non canonical -chs of 263,255,63. - Rezon: Made licensee configurable as boards showing Taito date with 1991 year have been seen and made 1992 version the parent. Correct label for tilt input displayed in service mode. - Solomon's Key: VBLANK interrupt modernization. PSG type correction. - Super Trio: Assumed fix for the game resets at 110m hurdle bonus stage, needs testing to confirm (ID 07148). - Trivia (Questions Series 8): Fixed rom load typo in clone Trivia (Questions Series 9) (ID 08772) - Fixed rom names in dec0.cpp, kaneko16.cpp, merit.cpp and zn.cpp - Description changes of '1945 Er Dai / 1945 Part-2 (Chinese hack of Battle Garegga)', 62x bootlegs and hacks, Costa Brava (2 jackpot points, 81%), Geo Storm (Japan, 014 custom sound CPU), Koi Koi Shimasho - Super Real Hanafuda, Kung Fu Fighters (IGS, v100), Kung Fu Fighters (IGS, v202N), 'Leishen Chuan / Thunder Deity Biography (Chinese hack of Battle Garegga)', Mahjong Cafe Paradise (Ver. 1.00), Match'em Up (6221-55, U5-1 German), Renju Kizoku - Kira Kira Gomoku Narabe, Rezon, Rezon (earlier), Sevilla (2 jackpot points, 81%), Space Zap (Midway), Super Nove (Playmark, Lire currency), Tic Tac Trivia (6221-23, U5-0C, 02/11/86), Toledo (2 jackpot points, 87%), Trivia ? Whiz (6221-04, U5-0E, Edition 3 Vertical), Trivia ? Whiz (6221-05, U5-0D, Edition 3), Trivia ? Whiz (6221-05, Edition 3 Sex trivia III), Trivia ? Whiz (6221-13, U5-0B, Edition 4 Vertical Alt Sex trivia), Trivia ? Whiz (6221-13, U5-0B, Edition 4 Vertical) and Zing Zing Zip (World) / Zhen Zhen Ji Pao (China?). - Dipswitch fixes in gms.cpp, interflip8035.cpp, jackie.cpp, merit.cpp, rfslotsmcs48.cpp, seta.cpp and toaplan2.cpp - Renamed (phrcraze) to (phrcrazeb), (phrcrazea) to (phrcrazec), (phrcrazeb) to (phrcraze), (phrcrazec) to (phrcrazea), (rezon) to (rezono), (rezont) to (rezon), (tictac) to (tictaca), (trvwz3h) to (trvwz3b), (trvwz3ha) to (trvwz3), (trvwz4) to (trvwz4v), (trvwz4a) to (trvwz4va), (trvwzh) to (trvwz), (trvwzha) to (trvwza) and (trvwzhb) to (trvwzb) - MAME . VIDEO RENDERING SYSTEM . Cherry-picked upstream commits needed to support Wayland on Linux (3rdparty\bgfx\*). Added initial support for Wayland on Linux (render\drawbgfx.cpp). Return an error if Wayland EGL surface can't be created for additional windows (render\drawbgfx.cpp). . Fixed duplicate import of GL functions on Linux when using GLES 2.0. Fixes build when using GLES 2.0 and Wayland (bgfx\src\glimports.h). . Nuke previous scaler when releasing a render_texture in case it gets recycled later. This fixes occasional bad downcasts in debug builds when trying to bring up the tilemap viewer in certain drivers (emu\render.cpp). . Filesystem code refactoring. Separated fs::block_t and fs::filesystem_t to a new source file and header (formats\fsblk.cpp). Removed inclusion of flopimg.h from fsmgr.h. . Fixed many editing errors and spelling errors. Also fixed outdated link to contributing guidelines (docs\source\*). Fixed a number of grammatical errors and editing errors (docs\source\*). . CHD/ROMLOAD . Allow clone CHDs to use parent CHDs as parents. Allow caller to provide a helper for finding parent CHDs and expose (recursive) missing parent status (util\chd.cpp). Search parent systems/devices/software for parent CHDs on encountering a delta CHD (emu\romload.cpp). Report error on delta CHDs when parent can't be found (emu\romload.cpp). Check parents for matching CHDs with different names for devices as well as systems and software (emu\romload.cpp). . Don't search parent device search path for software media. This was a piece of emergent behaviour in the original implementation of software media loading. It was preserved in the last big refactor of ROM loading, but it can be removed now to simplify the code (emu\romload.cpp). . Updated docs for changes to media loading behaviour. Note: To save space, MAME allows delta CHD files to be used for clone systems, devices with parent ROM devices and clone software items. The delta CHD file must use a CHD format disk image from the parent system, parent ROM device or parent software item as its parent CHD file. The space saved depends on how much content can be reused from the parent CHD file. MAME searches the same locations for parent CHD files that it would search for the disk image itself. . PortAudio: Updated to latest upstream version. Resolves issues building with Visual Studio. Enabled PortAudio when building with Visual Studio and Clang-CL. Removed note about duplicate GUID symbols in PortAudio when built with MSVC. . Multi-Language: Updated Turkish UI translation. Correct grammar of several German UI message translations. . Consolidated drivers in single files (iqblock.cpp) . Normalized terminology for retitled bootlegs and hacks of arcade games, preferring "bootleg/hack of title" to "title bootleg/hack", which might be confused with bootlegger names or regions. Label a few more sets as hacks. - MAC OS X: Xcode 15 requires explicitly setting -rpath to find the SDL framework (osd\sdl.lua) - Compiling . Added explicitly defaulted copy and move constructors for emu_fatalerror (emu\emucore.h) . Fixed apparent misunderstanding of const. Returning const value types and casting to const value types is pointless outside very narrow use cases. Putting const value type parameters in interfaces just makes trouble. . Use multibyte.h function in tools\chdman.cpp and (MESS) imgtool\modules\bml3.cpp, \cybiko.cpp and \psion.cpp. Don't pollute global namespace, constexpr implies inline, make narrowing casts explicit (util\multibyte.h). . Updated some outdated stuff (makefile) . Explicitly #include prefix header (sh\sh7021.cpp and sh7032.cpp). Fixes unknown type name 'offs_t' during 0.259 build on FreeBSD (GitHub #11591). . Fixed documentation compilation warning (title underline too short) (commandline\sdlconfig.rst) 0.259 - New games: Beat Player 2000, Booby Kids (Magnet System), Fishing Maniac 2+, Let's Dance and Super Tank Attack (prototype rev. 1.12) - New Working games: Dora Neco BanBan, Fashion Gambler (set 1), Fashion Gambler (set 2), Hipoly (bootleg of Hyper Olympic), Quick Jack, Skat TV, Skat TV (version TS3) and Truck Kyosokyoku (Japan, TKK2/VER.A) - New Non-Working games: Ball Challenge (20020607 1.0 OVERSEA), Blue Moon II, Bubblen Roulette (main ver. 1.8, video ver. 1.3), Costa Brava, Creatures of the Sea (20050328 USA 6.3), Doraemon no Dokodemo Door, Eibise (Japan), Multi-Action 7551-20-R3T, Quizard Fun and Fascination (French Edition V1 - 01/96), Sevilla, Terebi Denwa Super Mario World, Toledo, Tropical Chance, Um Jammer Lammy NOW! (Japan, UL1/VER.A) and 'unknown Merit game (4435-81, U5-1)' - New clones: Amerug (Shoei bootleg of Atari Football), beatstage complete MIX (ver KA-B), The Big Pro Wrestling! (set 2), Bonk's Adventure (prototype), Danger Zone (rev 0), Espial (Japan), Espial (Nova Apparate license), F-15 Strike Eagle (rev. 2.2 02/25/91, 29K ver. 3.1f), Fantastic Car (Micro-87 hardware, newer), Flicky (64k Version, on Up'n Down boardset, set 2), Gran Derby (Spanish hack of Jockey Club), Kart Duel (World, KTD2/VER.A), Macro-Cosm Wars (bootleg of Galaxian), Reel Fun (Version 7.00), Super Ruleta 36 (Spanish hack of The Roulette), Super Volleyball (US), Tatakai no Banka (Japan, old ver.), Time Scanner (set 3, Japan, System 16B) (FD1089B 317-0024), Trivia (Questions Series 11 Alt Question Rom, set 2), Wonder Boy - Monster Land (English, difficulty hack), Xain'd Sleena (bootleg, set 2) and Zero Team (Japan?, earlier?, set 2) - New AGEMAME games: Amazon Spirit (Konami Endeavour, NSW) and Safe Money (Konami Endeavour, NSW) - New drivers: interflip8035.cpp and stingnet.cpp - New devices: floppy_525_qd16, helifire_sound, icd2061a, lc78836m, magnum6_pad, namcos12_cdxa, scsi_tape, sh2_sh7014, sh7014bsc, sh7014dmac, sh7014dmacchan, sh7014intc, sh7014mtu, sh7014mtuchan, sh7014port, sh7014sci, sheriff_sound, simh_tape_image, spacefev_sound, stingnet_cdr, toshiba_xm6402b_cdrom and zip100_ide - New Cheat.dat (Pugsy): http://www.mamecheat.co.uk/ - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new video): https://youtu.be/xXGnM4b9AKU - CPU . Analog Devices ADSP-2100: Code cleanup: Use BIT helpers for unpacking and disassembling opcodes. Use count_leading_zeros_32 for "detect exponent" operations rather than shift loops. Convert comments to C++ single line style and some constant macros to unscoped enums. Deobfuscate bit manipulation in the "mode control" instruction. Fixed more comments in disassembler (adsp2100\2100dasm.cpp). Fixed a couple of disassembly regressions (adsp2100\2100dasm.cpp). Fixed one operation (adsp2100\adsp2100.cpp). . Hitachi SH-2: Refactored SH-2 refactored code to separate onboard peripherals from CPU core. . IBM PowerPC: Don't overwrite RA in lmw instruction. For 4xx series and 601, skip over the register update. For any other flavor, raise an illegal instruction exception (powerpc\ppcdrc.cpp). . M6805: Use vector_mask parameter for HD6305 variants (m6805\m6805.cpp) . MIPS-I: Cache diagnostic fixes. Implemented cvt.w.fmt infinity/NaN exception (mips\mips1.cpp). . Zilog Z80 . Improved emulation of undocumented flags. Removed instruction timing tables and helpers for systems with simple wait states. . Keep all member initialisations in the constructor initialiser list. Added a validity check for impossibly low cycle counts. Reformatted an if/else tree. Fixed rop() opcode read call (z80\z80.cpp). - SOUND . Samples: Moved interface variables to protected (sound\samples.cpp) . Samsung KS0164 Wavetable Synthesizer: Identified the correct decompression table (sound\ks0164.cpp) . Speaker: Added configurable speaker panning. Set pan range to -1 to 1 (emu\speaker.cpp). Show channel volume in percentage and increase maximum to 400% (ui\ui.cpp). - DEVICE . 6821 PIA: Removed pia6821 clock freq param in all drivers . 7400 Quad 2-Input NAND Gate: Removed unused 7400 logic device (machine\7400.cpp) . ATAPI CD/DVD-ROM and SCSI CD . Support page 0x3f (return all pages) for MODE SENSE (machine\t10mmc.cpp). Fixed reading user data from mode 1 tracks using T10MMC_CMD_READ_CD. Added support for T10SBC_CMD_SEEK_10 command. . Support subclassing atapi_fixed_cdrom_device (ata\atapicdr.cpp) . Cirrus Logic GD54xx: Fixed graphics don't display properly in MegaTouch XL 6000 (video\pc_vga_cirrus.cpp) . DS1386-32K RAMified Watchdog Timekeeper: Removed non-existant set_current_time fn override (machine\ds1386.h) . Flash ROM: Support reading the busy/ready pin for Flash chips that have one (machine\intelfsh.cpp) . Floppy/HD . Retire pick_integer_[bl]e and place_integer_[bl]e in favor of the simpler functions in util\multibyte.h (formats\imageutl.h). . Cleanup formats\fsmgr.cpp: Use multibyte.h functions for packing and unpacking words. Removed a few aliases for cstdlib functions. Converted rstr and wstr functions to std::string_view. Restore trim_end_spaces as a std::string_view function and use it in place of strtrimrightspace in FS code (formats\fsmgr.cpp). . Added hard-sector floppy support (imagedev\floppy.cpp) . Added optional logging for data reads and writes (machine\wd_fdc.cpp) . Recognized SSDD images for 3(.5)-inch floppy drives (formats\td0_dsk.cpp). Fixes loading of (MESS) CP/M Plus v1.5 on pcw8256. Do more error checking, hopefully eliminating softlocks when trying to load truncated images (formats\td0_dsk.cpp). Don't swallow bits and bytes at the end of Huffman-encoded images, when the word buffer can no longer be filled (formats\td0_dsk.cpp). . K057714 GCU: Removed unecessary clipping that caused medal games not to display properly and improved VBL IRQ handling (konami\k057714.cpp). . SCSI Bus: Designated initializers require C++20. Pass pointer to struct for sense_data (machine\nscsi_bus.cpp) . VGA: Implemented RAMDAC palette_update fn (video\pc_vga.cpp) . Z80 PIO: Changed an if/else block to switch/case - adp.cpp: Promoted fashiong, fashiong2, quickjac, skattv and skattva to working. Except funlddlx which keeps looping between F_IN and FOUL messages and fstation's game 'Suntris' crashes when executing HD63484 paint commands. - alien.cpp . Enable DRC. Added QA notes. Fixed mem_mask size on I/O in1. . Added base flash ROMs for dkbanans, dokodemo, masmario2 and wontame. Added wontame inputs. - cedar_magnet.cpp: Added a new game (Booby Kids), ordered the games on the driver and reformatted comments. - cps2.cpp: Support for CPS2 debug DIP switches: Initial working version. Fixed incorrect mapping in memory by using a custom read handler, cleaned up unnecessary port conditions and vetter comments. Moved read handler directly into the map segment and renamed hardware type device tag. Correct accidentally moved line break. Switched from native array usage to optional_ioport_array. Changed dsw setting order in UI from on-off to off-on. - gei.cpp: Found documentation confirming Sex Triv is an alternate ROM question for Series 7. Verified undocumented Series 12 N.F.L. Football question ROM. Added Adult Sex 3* question ROM to Series 11, with documentation. Verified Newer Adult Sex 2* & Adult Sex 3* questions ROMs and labeled alt sets as "old". Documented the romboard and question type for the Reel Fun sets. - gms.cpp . Converted driver to use the tilemap system. Correct input matrix reading. Added tilemap scroll. Added OKI banking. . Patched protection in Shizhan Ding Huang Maque (missing PIC core) and 'Super Card 2 in 1' for now. Hooked up 3rd tilemap, correct 3rd layer colors, improved decode of 1st layer and added/correct some more inputs for 'Super Card 2 in 1' and Magic Slot. - jalmah.cpp: Correct size of undumped MCU. Added some labels from PCB photos. - konendev.cpp . Use 'CY7C131 Dual-Port SRAM' device . Dumped flash roms for Rapid Fire 5. Redumped program flash roms for Enchanted Lamp. - lwings.cpp . Added an older version of Tatakai no Banka (known as Trojan outside Japan). Added rom tb_01.6d (ADPCM) from (Japan, old ver.) to clone Tatakai no Banka (Japan) . Correct ROM labels for Legendary Wings, Section Z and Trojan games. - maygayv1.cpp: Use addressable latch device - merit.cpp: Split driver in subclasses. Correct some inputs for couple and clones. Made Match'em Up (German) parent as is the only original set, while the couple sets are bootlegs. - n8080.cpp: Encapsulated sound boards - namcos12.cpp: Emulated Namco System 12 CDXA board, IC Designs 2061A programmable clock generator and Sanyo LC78836M audio DAC. Added SH7014 SoC. - ojankohs.cpp: Fixed Chinese Casino [BET] (Japan) freezes when you select a girl and start the game. After the dice is rolled and the tiles are distributed and arranged, the game will not move beyond that point (ID 08756). - pgm.cpp: Hard-code sprite zoom table entry 0x0f to 1 (igs\pgm_v.cpp). Note: Some games (e.g. DoDonPachi III) have zero in last zoom table entry but expect 1 is the last entry hard-coded to 1, or does zero have the same effect as 1? - segaorun.cpp: Reverted erroneous change in MAME 0.258. Fixes Super Hang-On crashed after insert coin (ID 08769). - segas18.cpp: Eliminated runtime port tag lookups. Use 8255 PPI for 4-player versions of D. D. Crew. Use MSM6253 ADC for gun inputs in Laser Ghost. - segaybd.cpp: Use device_resolve_objects() instead of machine_start(), fixes G-LOC and Strike Fighter access violating (GitHub #11535). - speedatk.cpp: Fixed clock frequency of Z80 and AY-3-8910 based on video footage of real PCB (ID 08764) (see https://twitter.com/BEEP_SHOP/status/1385425741236432897) - system1.cpp . Do cycle adjust with modulo instead of float . Changed Z80 CPU1 clock speed from 20MHz to 4MHz. Note: A 20MHz crystal clocks an LS161 which counts up from either 10 or 11 to 16 before carrying out and forcing a reload. The low bit of the reload value comes from the Z80's /M1 signal. When /M1 is low (an opcode is being fetched), the reload count is 10, which means the 20MHz clock is divided by 6. When /M1 is high, the reload count is 11, which means the clock is divided by 5. Since /M1 is low for 2 cycles during opcode fetch, this makes every opcode fetch take an extra 2 20MHz clocks, which is 0.4 cycles at 4MHz. - vegas.cpp: Fixed shift count bug in 48-bit and 64-bit big-endian functions (util\multibyte.h). This fixes "CHD ERROR: Decompression error" in sf2049, sf2049se and nbagold (ID 08768). - zac1b1120.cpp . Fixed zoomed sprite mask. Fixes wrong graphics when cars crash in Dodgem (ID 08748) . Shuffle around some source code and added section headers. Added Dodgem color overlay. No need to savestate bitmaps that get overwritten with each screen update and removed unneeded input port trampoline. - Ace Attacker: Map trackball inputs through uPD4701 device - Alien Challenge: Redumped clone Alien Challenge (China) - Dodge City: Removed the bad dump (crt-209_2131-82) from two PCBs from clones Dodge City (2131-82, U5-0 GT), Dodge City (2131-82, U5-0D) and Dodge City (2131-82, U5-50). - Dora Neco BanBan: Fixed the error at boot. Found and hooked the DIP switches bank. Found and hooked the Test Sounds mode. Hooked the Coin In and a special coin input. Changed the OKI6295 pin7 to HIGH and comparing the sounds against the videos on the net. Added more inputs related to the stepper motors. Added preliminary 7-seg LEDs support. Added support for port 08h. Hooked debug lamps to see the ports behaviour. Created an internal layout. Improved inputs. Hits microswitches by arm. Coinage DIP switch. Test Mode DIP switch. Proper door, coin-in & service coin inputs. Added port 8000h for two different game types. Added inputs for game select. Fixed the 7seg LEDS. Rewrite the output system. Added support for the bidirectional stepper motors for cat arms. Hooked the arm sensors. Figured out and added the food lamps. Added a internal layout with all the output lines activity, besides a working playfield. Added technical notes. A lot of other things to get the game working. Use the external artwork for a realistic experience. Added a PCB layout. Improved the interrupts timming. Fixes some bits and matches the game duration and arms stress as seen in the videos floating around. Verified OKIM6295 pin7 high. Added partial PPI's connections and CPU clock from crystal diagrams. Added japanese ranks and speech docs. Adjusted interrupts timing to match the real thing. - The Final Round: Dumped priority PROM for Final Round and clones - Funny Strip: Fixed eeprom_w in address_map - Heavyweight Champ: Use MSM6253 ADC device - Kart Duel: Redumped bad rom kdt1rom0l.ic12 for clone Kart Duel (Japan, KTD1/VER.A), fixes "BSOD" issue. - MegaTouch XL 6000: Fixed graphics don't display properly (video\pc_vga_cirrus.cpp) (ID 08763) - Quick & Crash: Start hooking up peripherals. Fixed exception at start. - Racing Jam: Fixed mismatched timekeeper data for GM and GN sets - Rezon: Lower screen refreshrate - Sarge: Dumped PLDs (PLS153N) - Super Xevious: Make Super Xevious a parent set instead of clone of Xevious - Task Force Harrier: Added placeholder ROM entry for likely undumped MCU - Thrill Drive: Added hand brake lever to clone Thrill Drive (ver GN713JAB) - Time Crisis II: Removed outdated timecrs2 comment in driver (ID 08766) - Track & Field: Redumped ROMs for clone Hipoly (bootleg of Hyper Olympic) - Promoted game to working. - Video Poker: Restored full NVRAM saving - Unknown Cointek game: Possibly descrambled audio CPU ROM. TODO: Decryption may be incomplete, though code flow looks sane both for the main CPU and the audio CPU. The game puts some strings at 0xc000 and at 0xf810. At 0xf810 it puts 'MICRO' in DPRAM and then it expects to read 'DRAGON' (put in DPRAM by the audio CPU), if it doesn't it loops endlessly. For reasons to be investigated the audio CPU puts it at a slightly wrong offset. HD63310 seems to have more features than the DPRAM chips emulated in machine\mb8421.cpp. Maybe reason for the above problem? - Fixed rom names in gei.cpp, lordgun.cpp, lwings.cpp, merit.cpp and system1.cpp - Description changes of Ares no Tsubasa (Japan, rev. B), The Big Pro Wrestling! (set 1), Chaoji Da Man Guan II (China, V754C), Chibi Maruko-chan ~Minna de Sugoroku Asobi~ no Maki (Ver.1.00B, 2005/06/22), Chibi Maruko-chan ~Minna de Sugoroku Asobi~ no Maki (Ver.1.00A, 2004/04/20), Chuugokuryuu (Japan, V020J), Chuugokuryuu (Japan, V021J), Doko Demo Issho: Toro's Fishing (Ver.1.00, 2006/06/07), F-15 Strike Eagle (rev. 2.2 02/25/91, 29K ver. 2.2a), Fantastic Car (Micro-87 hardware, older), Flicky (64k Version, on Up'n Down boardset, set 1), GI Turf Wild 3 (ID 08757), Hissatsu Buraiken (Japan, rev. A), Multi-Action 7551-21-R2P, Multi-Action 7556-00-R2, Multi-Action 7558-01-R0, Pingu's Ice Block (Ver.1.00 2006/01/27), Primal Rage (version 2.3, Jan 1995), Primal Rage (version 2.3, Dec 1994), Section Z (set 2 rev. A), Super Mario Fushigi no JanJanLand (Ver.1.00C, 2006/08/29), Super Volleyball (US, Data East license), Trivia (Questions Series 11 Alt Question Rom, set 1), Won! Tertainment Happy Channel (Ver.1.00E 2008/02/21), Xain'd Sleena (bootleg, set 1) and Zero Team (Japan?, earlier?, set 1) - Dipswitch fixes in gms.cpp, katosmedz80.cpp and merit.cpp - Renamed (f15se) to (f15se22), (fantcar87) to (fantcar87a), (kartduel) to (kartduelj) and (ma7551) to (ma7551p) - MAME . VIDEO RENDERING SYSTEM: Use multibyte.h functions (emu\rendfont.cpp) . DEVICE: Use count_leading_zeros_64 to calculate format width (emu\distate.cpp) . LUA engine: Correct spelling of screen device xoffset and yoffset property names (mame\luaengine.cpp) . INPUT: Trim extra spaces in keyboard key names more safely (emu\ioport.cpp). Use multibyte.h functions (emu\ioport.cpp). . AVI: Code cleanup (util\aviio.cpp): Use multibyte.h functions and std::swap. Turn most macro constants into enums and move them down into classes. Changed comments to C++ style. Use std::clamp. . PLUGINS: Fixed renamed sets (plugins\hiscore\hiscore.dat) . Changed parameter type for device_network_interface::set_mac from char * to u8 * (emu\dinetwork.cpp) . Use std::string_view in determine_bios_rom (emu\romload.cpp) . Consolidated drivers in single files (batman.cpp, beathead.cpp, blstroid.cpp, canyon.cpp and ccastles.cpp) - SDLMAME: Fixed interpretation of result of SDL_GetDesktopDisplayMode. Fixes display mode not being printed (sdl\osdsdl.cpp). Don't specify SDL_WINDOW_BORDERLESS for full-screen windows (sdl\window.cpp). May address GitHub #7532 and #7922. - Compiling . Added util\multibyte.h. Added constexpr for getters and noexcept for all functions. Added functions for reading and writing 48-bit values. Fixed shift count bug in 48-bit and 64-bit big-endian functions (util\multibyte.h). This fixes "CHD ERROR: Decompression error" in sf2049, sf2049se and nbagold (ID 08768). Use multibyte.h functions in emu\ioport.cpp, emu\rendfont.cpp, formats\dsk_dsk.cpp, flopimg.cpp, mdos_dsk.cpp..., formats\fsmgr.cpp, formats\imageutl.h, imgtool\modules\amiga.cpp, imgtool\modules\fat.cpp, machine\akiko.cpp, machine\am79c90.cpp, machine\i82586.cpp, machine\k053252.cpp, machine\spi_sdcard.cpp, machine\stvcd.cpp, machine\t10mmc.cpp, machine\t10sbc.cpp, machine\t10spc.cpp, tools\image_handler.cpp, util\avhuff.cpp, util\aviio.cpp, util\cdrom.cpp, util\chd.cpp, util\chdcodec.cpp, util\flac.cpp, util\msdib.cpp, util\unzip.cpp and util\vbiparse.cpp. . Removed some output().set_value() calls (fireball.cpp, mw8080bw.cpp, pong.cpp and segaybd.cpp) . Use util::sext and rotate inline (video\voodoo_render.cpp and sound\vrender0.cpp) . Fixed MinGW AArch64 issues (GitHub #11521): Don't enable SSE on MinGW ARM64 targets (scripts\src\3rdparty.lua). Added Windows ARM64 support (diagnostics\diagnostics_win32.cpp). 0.258 - New games: Daifugo (Japan) and Wanpaku Safari (J 981109 V1.000) - New Working games: Derby Quiz My Dream Horse (Japan, MDH1/VER.A2), Kaiun Quiz (Japan, KW1/VER.A) and Super Bubble Pop - New Non-Working games: Cobra Sport Dart, G1 Turf Wild 3, Jolly Joker? (Impera, V11/90b), Killer Instinct (SNES bootleg with timer), 'Mini Azar D' and 'unknown LJF Corporation poker game' - New clones: Argus no Senshi (Japan set 2), Diamond Derby (EDG Impeuropex bootleg), Dogyuun (8/25/1992 location test), Final Fight 3 (SNES bootleg, set 2), The Legend of Kage (MSM5232 sound), Lucky 7 (Impera, V04/91a, set 2), Makaimura (Japan Revision B), Pururun (set 1), 8x Racing Jam (Gxxxxxxx), 8x Racing Jam: Chapter II (Gxxxxxxx). Seibu Cup Soccer :Selection: (bootleg, set 5), Sinistar (revision 2, cockpit), Sinistar (revision 3, cockpit), Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg, set 3), Surf Planet (version 2.0) and X80 - War Command (ManilaMatic bootleg of Missile Command) - New AGEMAME games: Comet Catcher (Leisure Games) (MPU2) (5p Stake, \xa31 Jackpot), Deal or No Deal Easy Money (Scorpion 6, 9560933), Deal or No Deal Easy Money (Scorpion 6, 9560933, protocol), Deal or No Deal Easy Money (Scorpion 6, 9561082), Deal or No Deal Easy Money (Scorpion 6, 9561082, protocol), Fruitopoly (VFS) (MPU2) (Hi Lights conversion, 10p Stake, \xa33 Jackpot), JMT9 Test Program (Barcrest) (MPU1/2), Lucky Line (Leisure Games) (MPU2) (5p Stake, \xa32 Jackpot), Lucky Strike (Associated Leisure) (MPU2) (5p Stake, \xa32 Jackpot), Rock On (Barcrest) (MPU2) (10p Stake, \xa32 Jackpot), Spot Light (Barcrest) (MPU2) (revision 4, 10p Stake, \xa32 Jackpot), Spot Light (Barcrest) (MPU2) (revision 7, 10p Stake, \xa32 Jackpot), Spot Light (Barcrest) (MPU2) (revision 9, 10p Stake, \xa32 Jackpot), Star Light (Dutch) (Barcrest) (MPU2) (revision 07), Super Star (Dutch) (Barcrest) (MPU2) and Triple Chance (VFS) (MPU2) (Spot Light conversion, 2p Stake, \xa31.50 Jackpot) - New PEPlus games: Player's Edge Plus (PP0052) Joker Poker (Aces or Better) and Player's Edge Plus (X000444P+XP000038) Standard Draw Poker - New PinMAME games: Farfalla (French speech), Mexico 86 (Italian speech), Pinball Champ (7 digits French speech), Pinball Champ (French speech) and Time Machine (Zaccaria, Italian speech) - New drivers: bfm_sc6.cpp, konmedalppc.cpp and tvcobrasd.cpp - New devices: gotsndspr1, hd6305v0, hd6305y2, m6503 and mb86292 - Bob Zed (What's new video): https://www.youtube.com/watch?v=Ijbngd57pyY - CPU . Hitachi HD63705Z0: Split HD63705 into specific types. Moved on-chip memory into internal maps. . Intel 8085A: Correct rim/sim cycles and renamed some undocumented opcodes, arhl is arithmetic shift (i8085\8085dasm.cpp). Correct cycles for XCHG as well (i8085\i8085.cpp). . MIPS-I: Improved cache logic for partial word store (mips\mips1.cpp) . MOS Technology 6502: Don't clear input pins external state at device_reset. Don't detect edge triggered inputs before the first clockcycle. . MOS Technology 6503/4/7: Changed logaddr width . Motorola MC6800/6805: Use manufacturer's syntax for disassembling indexed addressing modes (m6800\6800dasm.cpp and 6805dasm.cpp) . Motorola MC6809: Zerofill more variables at device start - SOUND . AY-3-8910A PSG: Reorder documentation . GI SP0250 LPC: Make drq_r return an int instead of u8 . S3 86C3xx: Added DPSDxax ROP to video\s3virge.cpp, fixed regression with Win98SE 256 colors. . Samples: Added getters for num channels and loaded samples (sound\samples.h) . Sound Blaster: Added 8-bit DMA continue command. Fixes missing sounds in (MESS) ibm5170_cdrom.xml games sideline and jagdead at least and teardown hang in sideline (isa\sblaster.cpp). . Votrax SC-01: Use logmacro - DEVICE . ATA: Support READ_BUFFER and WRITE_BUFFER commands, used by early ATA Macs to verify drive communications. Don't report an error on SET_FEATURES for ENABLE_ECC, ENABLE_RETRIES, and ENABLE_READ_LOOK_AHEAD. Support the secondary "hdd" interface so software lists can work with multiple drive types (machine\atahle.cpp and atastorage.cpp). . ATAPI CD/DVD-ROM and SCSI CD: Implemented most features of T10 MMC read CD (0xbe) command (machine\t10mmc.cpp) . Floppy: DRQ fixes: Drop DRQ immediately when a new command is written, without even waiting for it to be committed (fixes observed regression in ms0515). Eliminated logic for raising IRQ if DRQ is serviced while FDC is idle (machine\wd_fdc.cpp). . MC6840 PTM and MOS 6522 VIA: Zerofill variables at device start. Clear output ports at reset in MC6840 PTM. . MC68681 DUART: Idle tx lines after transmitter reset (machine\mc68681.cpp) . MOS 6530/6532 (new): Use template for pa/pb_w. Timer goes back to count mode when irq flag is cleared. Added pa/pb_w byte handler and irq callback to 6530. . SCSI Hard Disk: Support the secondary "hdd" interface so software lists can work with multiple drive types (nscsi\hd.cpp) . VGA: Implemented line_compare_mask getter (video\pc_vga.cpp), fixes (MESS) Matrox Millennium 'IS-STORM / MGA-2064W' 1600x1200x8 video mode (video\mga2064w.cpp). . Z80 SCC Channel: Channel reset empties FIFOs - alien.cpp . Decode charset uploaded to VRAM. Added YMZ770 bindings. Added CF card I/F. Added enough of sound ROM reading and SIO I/O so that mariojjl and mmaruchan can enter service mode. . Added MB86292 Graphics Controller with register documentation, base CRTC, BltCopyAlternateP ROP command, Console layer basics and XINT pin. Implemented SetRegister, DrawRectP & Flush_FB commands. Fixed BltRectP not honoring rxs/rys. Preliminary implementation of drawing FIFO, fixed DrawRectP for good. Added transparent pen for C layer (video\mb86292.cpp). - astropc.cpp: Added notes on AstroCard dongle from looking at the game's code - cesclass.cpp: Mark games with MACHINE_REQUIRES_ARTWORK - circus.cpp: Split classes. Added color overlay for clone Crash (set 2). Updated color overlay for Crash (set 1). - dec8.cpp: Split state classes, reduced run-time tag lookups and cleaned up code. Also updated code to use abbreviated integer type names. - dynax.cpp: Standardize mahjong games metadata. Identified Bet versions. - forte2.cpp and unkhorse.cpp: Small cleanup - gottlieb.cpp . Changed joystick back to 4way for qbert, qbertqub and sqbert . Added support for the older version of the MA-216 "Sound and speech" board which has a Votrax SC-01 populated instead of an SC-01-A (see qberttst and reactor) - hornet.cpp and nwk-tr.cpp: Organized Racing Jam and Thrill Drive inputs - killcom.cpp . Changed gameplan.cpp to alliedleisure\killcom.cpp. Use mos6532_new_device. Some other small improvements. . Leprechaun gfx is 3bpp. Possible fix for Pirate Treasure lockup (ID 07276). Changed monitor orientation to vertical in Challenger. . MOS 6532 (new) timer goes back to count mode when irq flag is cleared. Fixes missing background/level introduction music in Leprechaun and Pirate Treasure (ID 00293). - konmedal.cpp: Assume Z80B is 6MHz - lkage.cpp: Combined source files and cleaned up code. Tweak layer offsets. Added layer disable and watchdog. Default Bygone 'Unknown' dipswitches to Off. - missbamby.cpp: Grouped related systems - namcos12.cpp . Promoted Derby Quiz My Dream Horse (Japan, MDH1/VER.A2) and Kaiun Quiz (Japan, KW1/VER.A) to working . Fixed ROM banking and other bugs. Fixed banked ROM region sizes for various games. . Marked kartduel ROMs as bad dumps. Changed sws2001 ROM bank layout to match how data is addressed. Marked toukon3 as having imperfect graphics (possibly related to timing). - namcos21_c67.cpp: Mask offset for point24 ROM accesses (namco\namcos21_dsp_c67.cpp). Fixes Cyber Sled crash after defeating Round 3 in Vs. Computer Combat (ID 06302). - norautp.cpp . Mostly decrypted Noraut Joker Poker (console, set 1) and Noraut Joker Poker (console, set 2). Still incomplete, but they are nearing playability. Tweaked substitution tables, fixing a lot of the remaining bugs. . Made Noraut Joker Poker (V3.010a) and Noraut Joker Poker (V3.011a) boot. May be working, need someone who knows this type of games to check. Added proper inputs, Settings Mode, button-lamps layouts and documentations. Figured out some DIP switches. Minor cleanups. . Cleanup driver - rbmk.cpp: Patched out protections checks to allow Super 555 to boot and fill in inputs. Added preliminary OKI MSM6295 hookup to the games without MCU and Shizhan Majiang Wang. - stv.cpp . Dumped EPR-23603 (Japan 00/10/24) BIOS . Removed obsolete hack from 'Soreyuke Anpanman Crayon Kids' - taitosj.cpp: Fixed bitmap size regression (taito\taitosj_v.cpp). Use raw parameters for screen. - tugboat.cpp: Improved scrolling and small cleanup. Assume vblank goes to pia1 like on calomega. Added brief PCB notes. Shorthand variable types and added P1/P2 start lamps. Get rid of unneeded memory_access. Updated Tugboat romlabels. No need to latch fine scroll. - AGEMAME . mpu1.cpp: Added MPU2 support, including fourteen playable sets with barebones layouts. Correct overdumped ROMs for m_gndgit. Removed separate MPU2 driver, as it directly builds on MPU1. . bfm_blackbox.cpp and jpmsru.cpp: Correct some input labels and system descriptions . jpmsru.cpp: Made the existing SRU layouts larger - Burger Kids: Added PCB layout - Burning Rival: sed good GFX ROM dumps for clone Burning Rival (Japan). Note: The gfx1 region ROMs were wrongly named (same MPR codes as Arabian Fight) and were otherwise slightly corrupt versions of the Burning Rival ROMs. The sprites had slight corruptions too, despite having the same MPR numbers as the parent (so just bad dumps of the parent ROMs. - Car Polo: Take missing characters rom (2513.4l) from Exidy Circus instead of Atari Night Driver. Removed unneeded driver init. - Counter Run: Verified PROMs for clone Counter Run (bootleg set 3) - Cube Quest: Simplify DACs array. Removed obsolete _BIT macro in Cube Quest CPU. - Dora Neco BanBan: Hooked both I8255 (NEC D71055C) properly. Added two raw input ports and logged the four output ports for testing. - Exterminator: Use sound emulation from shared\gottlieb_a.cpp (Gottlieb Sound pin. 5) - Fire Fox: Use mos6532_new_device - Flower: Overclock cpu again. TODO: CPU speed is probably wrong. The pacing is fine at 3.072MHz, but then the game locks up sometimes. Or is the cause elsewhere? - Mouser: Documented the UPL PCB, CPU type, the OSCs, the BPROM types and the latch type. - Midnight Landing: Zerofill class variables - NATO Defense, Raimais and Tapper: Correct labels and added PCB locations and PLDs. - PinMAME . Use mos6532_new_device for allied.cpp, gts80.cpp and spectra.cpp. Tie up all irq pins in allied.cpp. . Added 'MOS Technology 6503' CPU. Use mos6530/2_new_device, sync writes and improved gottlieb_sound_p3_device (shared\gottlieb_a.cpp). . Added support for the older version of the MA-216 "Sound and speech" board which has a Votrax SC-01 populated instead of an SC-01-A (see marspp) - Sinistar: Added support for Sinistar cockpit sound - SNES 4 Slot arcade switcher: Added 27c256_06_01.u43 BIOS - Star Castle: Size point primitives properly. This fixes -beam_dot_size being effectively ignored by this renderer (render\drawogl.cpp). Fixes invisible projectiles in Star Castle on OpenGL backend (ID 08745). - Super Bubble Pop: Enable joystick inputs. Promoted game to working. Looks like it still has (presumed) protection checks remaining. TODO: Level token counter on the right stays stuck after finishing level 1 (internal token counter still works, so you can still progress). Any other protection checks later on? - Time Crisis II: Added link ID switch. It's now possible to play on the blue side. - Tora Tora: Improved timing, added color overlay and small cleanups. - Trivia Quest: Do rom bankswitch the normal way - Volfied: Small reorg with source code blocks - Zing Zing Zip: Added machine configuraton setting for title language - Fixed rom names in gaelco3d.cpp, killcom.cpp, mouser.cpp, taito_l.cpp, thief.cpp and tugboat.cpp - Description changes of All American Football (rev D, 2 players), Argus no Senshi (Japan set 1), 'The Berenstain Bears in Bigpaw's Cave', Crash (set 1), Crash (set 2), Diamond Derby (newer), Diamond Derby (original), Dogyuun (10/9/1992 location test), Fatal Fury Special (SNES bootleg with timer), Final Fight 3 (SNES bootleg, set 1), Hana Jingi (Japan set 1, Bet), Hana Jingi (Japan set 2, Bet), Hero in the Castle of Doom (DK conversion, not encrypted), Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4, 2 players), many jpmsru.cpp, Kick Start: Wheelie King, Leprechaun (set 1), Leprechaun (set 2), Lucky 7 (Impera, V04/91a, set 1), Mahjong Dial Q2 (Japan set 1), Mahjong Dial Q2 (Japan set 2), Mahjong Electromagnetic Base (Japan, Bet), Mahjong Electron Base (parts 2 & 3, Japan set 1, Bet), Mahjong Electron Base (parts 2 & 3, Japan set 2, Bet), Mahjong Electron Base (parts 2 & 4, Japan bootleg, Bet), Mahjong Electron Base (parts 2 & 4, Japan, Bet), Mahjong Gekisha (Japan, Bet), Mahjong Ougon no Hai (Japan bootleg set 1, Bet), Mahjong Ougon no Hai (Japan bootleg set 2, Bet), Mahjong Ougon no Hai (Japan bootleg set 3, Bet), Mahjong Ougon no Hai (Japan), Mahjong Tenkaigen (Japan bootleg b, Bet), Mahjong Tenkaigen (Japan bootleg c, Bet), Mahjong Tenkaigen (Japan set 2, Bet), Mahjong Tenkaigen (Japan, Bet), Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan, Bet), Mortal Kombat 3 (SNES bootleg with timer), Noraut Jacks Plus / Joker Poker (V3.010a), Noraut Jacks Plus / Joker Poker (V3.011a), Noraut Joker Poker (console, set 1), Noraut Joker Poker (console, set 2), Pururun (set 2), Sinistar (revision 2, upright), Sinistar (revision 3, upright), 'Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi', 'Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi (early development board)', Super Mario Fushigi no JanJanLand (Ver.1.00C, 06/08/29) and 'Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Chousen'. - Dipswitch fixes in alien.cpp, killcom.cpp, gts80a.cpp, lkage.cpp, norautp.cpp, rbmk.cpp, seta.cpp, toratora.cpp, trvquest.cpp and tugboat.cpp - Renamed (leprechn) to (leprechna), (leprechp) to (leprechn), (lkageoo) to (lkageo2), (pururun) to (pururuna), (tappera) to (tapperb) and (tapperb) to (tappera) - SDLMAME: Fixed sound level default for underrunning case (sound\js_sound.js) - MAME . VIDEO RENDERING SYSTEM . Use std::clamp for clamping aspect ratio (emu\render.cpp) . Don't request OpenGL context (render\drawsdl.cpp) . Avoid divide-by-zero with low-resolution time source. Emscripten builds are affected as clock resolution is intentionally degraded to mitigate side channel exfiltration attacks (render\draw13.cpp). . Size point primitives properly. This fixes -beam_dot_size being effectively ignored by this renderer (render\drawogl.cpp). . DEVICE: Removed set_log and append_log. These helpers were unintuitive and inflexible. In particular, set_log on a write handler would only log when the value is non-zero, which doesn't appear to be the desired behaviour for several uses (emu\devcb.h). . PLUGINS: Enable layout plugin by default (plugins\layout\plugin.json). Don't add library plugins to plugin.ini (mame\pluginopts.cpp). Don't write plugin.ini file if no plugins were found (mame\clifront.cpp). Fixes fresh plugin.ini via 'mame -cc' may create empty file (ID 08738). . UI . Always leave a space between option and description in usage messages (util\options.cpp). Get decimal separator from C++ locale. Also random cleanup (ui\info.cpp). . Added a source file filter for system selection menu (ui\utils.cpp). Show system source file in general info (ui\selmenu.cpp). Get decimal separator from C++ locale (ui\devopt.cpp). . Replaced imprecise "driver" with "source file" (ui\info.cpp and ui\simpleselgame.cpp) . Swap notworking/mechanical warnings, only add initial \n if there were warnings before it. Added \n before 'BTANB' warning strings (ui\info.cpp). . Catch exceptions by const reference (emu\machine.cpp and emu\render.cpp) . Consolidated source file path formatting in one place (mame\infoxml.cpp) . Consolidated drivers in single files (exterm.cpp, gottlieb.cpp, lkage.cpp and m79amb.cpp) . Removed unneeded comment on clickable artwork. - Compiling . Removed some use of set_log (24cdjuke.cpp, champbas.cpp, darius.cpp, imolagp.cpp, kopunch.cpp, ninjaw.cpp, pkspirit.cpp, schick.cpp, slapfght.cpp, slapfght_ms.cpp, spdheat.cpp, sweetland.cpp and vsmjtria.cpp) . Flipped include order in bus\nscsi\cd.cpp to put module header immediately after prefix header . Removed some output().set_value() calls (cischeat.cpp, cops.cpp, exidy.cpp, djmain.cpp, ggconnie.cpp, grchamp.cpp, joystand.cpp, jpmimpct.cpp, mcr.cpp, meritm.cpp, midvunit.cpp, mpu4.cpp, mpu5.cpp, namcos11.cpp, namcos12.cpp, othunder.cpp, portrait.cpp, seattle.cpp, segaorun.cpp, sspeedr.cpp, twinkle.cpp and undrfire.cpp). More use of BIT helper (namcos11.cpp, portrait.cpp, grchamp.cpp and othunder.cpp). . Replaced pi constant with M_PI (mcs48\mcs48.h and sound\vgm_visualizer.cpp) . Fixed some Coverity warnings in the nscsi_apple_cdrom_device (nscsi\cd.cpp) 0.257 - New Working games: Arkanoid (Phoenix Electronics Co. license) - New Non-Working games: Bell Star Plus, Bell-Star+ (Vip2 v.25.02.02), Bell-Star+ (Vip2 v.30.1.02), Bell-Star+ 5 (Vip2 v.3.6.02), Bingo Roll (209 / 19-1-95), Bingo Roll (Vip2 v26.02.02), Bingo Roll 2001 (v22.1), Dora Neco BanBan, Doraemon (Power Link), Galileo Factory (main), Love Pi Chan (Power Link), Name Club Ver.4 (J 971202 V1.000), Quick & Crash (V2.200), Rolling Joker, Rolling Joker (v.99.7), Rolling Joker (v23.11.91), 'unknown golf game', 'unknown 'VIP 2000' game (set 2)' and 'unknown 'VIP 2000' game (set 3)' - New clones: Bare Knuckle III (bootleg of Mega Drive version, protected), Counter Run (bootleg set 3), Daioh (prototype, earliest), Fire Truck / Smokey Joe (ROM version), Frogger - New Serie 92 (bootleg), Hatris (show version), Magic Bomb (Ver. A3.6A), Magic Bomb (Ver. A4.0A), Mortal Kombat (Victor bootleg of rev 3.0 08/31/92), Nemo (Japan 901120, 89625B-1 ROM board), New Zero Team (V33 SYSTEM TYPE_B hardware, Zhongguo Shantou Yihuang license) and Terra Force (US, alternate sound) - New AGEMAME games: 21 Up (Bellfruit) (Black Box) (10p Stake, £2 Jackpot), 21 Up (Bellfruit) (Black Box) (5p Stake, £1 Jackpot), Bell Trail (Bellfruit) (Black Box) (5p Stake, £1 Jackpot), Crackerjack (Bellfruit) (Black Box) (5p Stake, £2 Jackpot), Double It (Bellfruit) (Black Box) (10p Stake, £2 Jackpot), Fiesta (Associated Leisure) (Black Box) (2p Stake, £1/£2 Jackpot), Fire Cracker (Bellfruit) (Black Box) (10p Stake, £2 Jackpot), Fruit Star Bonus (Ver 8.17BGL-3, Burgenland, set 1), Fruit Star Bonus (Ver 8.17BGL-3, Burgenland, set 2), Fruit Star Bonus (Ver 8.23PSTK, Steiermark), Golden Spin (BWB) (Black Box) (MK1.5, 5p Stake, £50 Jackpot), Nudge Climber (Bellfruit) (Black Box) (5p Stake, £1 Jackpot, all cash), The Nudge Machine (ADMC) (Black Box) (5p Stake, £1/£2 Jackpot), Oranges And Lemons (Bellfruit) (Black Box) (10p Stake, £2 Jackpot), Reel Gambler (Bellfruit) (Black Box) (10p Stake, £2 Jackpot), Spin Up (CTL) (Black Box) (10p Stake, £3 Jackpot), Upstairs 'N' Downstairs (Bellfruit) (Black Box) (5p Stake, £1 Jackpot) and Upstairs 'N' Downstairs (Bellfruit) (Black Box) (5p Stake, £1 Jackpot, all cash) - New PEPlus games: 'Player's Edge (PK0846-PC098) Standard Draw Poker' and Player's Edge (PK1017-PC041) Standard Draw Poker' - New PinMAME games: Cue Ball Wizard (older display rev.), Elvis (CPU 1.00, display A1.00), 'Mr. and Mrs. PacMan (set 2)' and Odin (prototype) - New drivers: bfm_blackbox.cpp, katosmedz80.cpp, quickncrash.cpp, tmnt2.cpp and unkgolf.cpp - New devices: em_reel, pvga1a, pvga1a_jk, pvga1a_vga, riva128zx, rivatnt, rivatnt2, rivatnt2_m64, rivatnt2_ultra, vanta, wd90c00_jk, wd90c00_vga, wd90c11_lr, wd90c11a_vga, wd90c30_lr, wd90c30_vga, wd90c31_lr, wd90c31_vga, wd90c31a_lr, wd90c31a_zs, wd90c33_vga, wd90c33_zz and wd90c90_jk - New Cheat.dat (Pugsy): http://www.mamecheat.co.uk/index.htm and (Wayder): https://ss1.xrea.com/nekoziman.s601.xrea.com/cheat/ - Bob Zed (What's new video): https://youtu.be/egKaZDqhnQU - CPU . Intel I386: TZCNT opcode fall back to bsf for 386 and 486 too (i386\i386ops.h) . Intel i960KB: Correct disassembly of dcinva instruction (i960\i960dis.cpp). 0xad should be disassembled as dcinva, not 0xac. . MIPS-I: Emulated instruction and data caches. Fixed swl/swr cache logic (mips\mips1.cpp). . MIPS-III: Reverted mistaken change in MAME 0.256 (mips\mips3drc.cpp). Fixes warfa and sf2049 no longer starts (ID 08694). . Motorola MC68000: Allow drivers and devices to use the instruction restart capability on the 020/030/040 (m68000\m68kcpu.cpp and m68000\m68kmusashi.h) . NEC V25: Added address translation for IDB window - SOUND . Exidy SFX: Clean up shared\exidysound.cpp. Replaced riot6532_device with mos6532_new_device and untangle exidy_sh8253_sound_device a bit. . K005289 SCC: Fixed off by 1 error. Pre instead of postincrement voice counter to prevent confusion. . K051649 SCC1: Pre instead of postincrement voice counter to prevent confusion. Fixed possible array overflow when reading voice counter. Added more logical channel halt. Fixed issue with sample reload, fixes Konami SCC sample reload is wrong in (MESS) MSX1 driver (ID 08707). . Sanyo VLM5030: Update stream before changing st/rst pin. Small cleanup. Fixed overflow problem on unvoiced sample. - DEVICE . 6532 RIOT: Removed use of devcb pointers. Update irqstate when enabling/disabling a7 irq. . ATA Flash PC Card/Taito Compact Flash/Taito PC Card: Untangle machine\ataflash.cpp from the parallel ATA interface. This isolates the ATA disk drive interface implementation from the physical parallel ATA device interface. The ATA Flash PC Card is no longer a kind of parallel ATA device. Derive from CF card base rather than hard disk base (machine\ataflash.cpp). Made the CF Card behave more like a CF card (machine\atastorage.cpp). . Floppy: Simplified/Optimized how bus inverting is handled (machine\wd_fdc.cpp) . IBM 8514/A Video: Address self review [skip ci] (video\ibm8514a.cpp) . K052109 Tilemap Generator: Removed now-superfluous methods from 052109 device emulation . MOS 6530/6532 (new) . Use loops for repeated I/O callbacks, edge_w bits are on address, not data and added live timer status to savestate (machine\mos6530n.cpp). . Replaced convoluted timer implementation with one mostly copy pasted from Aaron's 6532riot. 6530 irq pin output is enabled when PB7 ddr is set to input. Removed a7800 workaround (machine\mos6530n.cpp). . Use mos6530_new_device for tomcat.cpp and starwars.cpp . Use mos6532_new_device and small cleanups for tourtabl.cpp . nVidia GFX: Added nVidia Riva 128 ZX/TNT/TNT2/TNT2 Ultra/Vanta/TNT2 Model 64 and nVidia GeForce 256/Ultra/Quadro . PCI: Misc cleanups (machine\i82443bx_host.cpp, machine\w83977tf.cpp and misc\xtom3d.cpp) . S3 86C3xx: Moved s3virge out of bus/isa . SCSI Bus (new): Correct SCSI command names (machine\nscsi_bus.cpp) . VGA: Part 2 of interface modernization (video\pc_vga.cpp): Update QA and moved SVGA related function to bottom of file. Intermediate step to convert crtc/seq/attribute/gc_reg_read/write to maps from violating parties. Converted pc_vga sequencer regs to space memory. Make sure that address_space_config is preserved when inheriting. Converted ATC to attribute_map, GC to gc_map and CRTC to crtc_map. Reorder functions. Modernized VGA main I/O interfaces. Use yet another custom address_map_constructor in place of the non-working memory_view pattern. Preliminary implementation of an interlace_mode virtual getter (video\pc_vga.cpp). . Winbond W83977TF Super I/O: Implemented keyboard port PnPs - cave.cpp: Correct YMZ280B clock frequency for Gaia Crusaders and Thunder Heroes - corona.cpp: Made Le Grandchamps a parent set. Fixed colors in Le Grandchamps. Cleaned up the driver. Added technical notes. - cps1.cpp . Added DIP switches to clone Daimakaimura (Japan Resale Ver.) . Updated clone 'Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921)' DIP switch settings. Set default difficulty recommended in manual. Correct demo sounds settings - exidy.cpp, exidy440.cpp and victory.cpp . Increased number of collision detection timers (like how it was before the timer_set refactor) . Replaced riot6532_device with mos6532_new_device in exidy.cpp and victory.cpp (shared\exidysound.cpp) . Replaced mos6530n convoluted timer implementation with one mostly copy pasted from Aaron's 6532riot. Fixes background music stops working during gameplay in Hard Hat, Pepper II and Venture (ID 08689). - gambl186.cpp, pcat_nit.cpp and photoply.cpp: Preliminary implementation of hidden DAC mode for Cirrus Logic CL-GD542x - giclassic.cpp: Fixed array oob accesses - konamigs.cpp: Use ATA CF card device (true IDE mode 4) - konendev.cpp: Hooked up sound and removed need for ROM patches - konmedal.cpp: Added K051649 SCC enable register - lwings.cpp . Replaced Avengers protection simulation with hookup of emulated MCU. Added wait states to main CPU to keep it in sync while downloading the palette from the MCU. . Merge driver files. Avoid runtime memory bank tag lookups. Miscellaneous cleanup. - mtouchxl.cpp: Added DRAM boundary regs and hookup ISA bus (machine\sis85c496.cpp). Added preliminary IDE support and hookup Voodoo 1 (machine\sis85c496.cpp). - nemesis.cpp . Break up LN style comments. Improved gx400 hw speech start. . Hook up Salamander speech busy pin . Fixed K005289 SCC off by 1 error. Fixes sound regression in Nemesis (ID 08698). . Improved gx400 hardware speech start. Fixed VLM5030 overflow problem on unvoiced samples. Fixes announcer should say "Stage One" instead of "One" in TwinBee (ROM version) (ID 08699). - qix.cpp . Driver overhaul: Set three-state callbacks for B ports on PIAs. Prevent coin counter from automatically incrementing at startup for games using 68705 MCU (ID 08702). . Slither: Separated driver state class. Make SN76489 interface more accurate. - supercrd.cpp . Added inputs and DIP switches for Red Line and Super Stars. Added bunch of XOR tables tweaks. . Added complete DIP switches to Fruit Star (T10S, encrypted) and clone (v810, encrypted) . Some more XOR tables tweaks for Super Card and Gamble Poker - system1.cpp: Set most 8255 PPI tristate to 0 (ID 08705) - taitogn.cpp . Avoid outright crash, booting still stops with 'system error'. Fixed Flash card image tags. . Untangle machine\ataflash.cpp from the parallel ATA interface. This isolates the ATA disk drive interface implementation from the physical parallel ATA device interface. The ATA Flash PC Card is no longer a kind of parallel ATA device. This fixes all TaitoGNET games crashes after starting game (ID 08687). - tmnt.cpp . Split all games except cuebrick, mia, tmnt & clones to a separate driver (tmnt2.cpp = blswhstl, glfgreat, lgtnfght, prmrsocr, punkshot, qgakumon, ssriders, thndrx2 and tmnt2). . Consolidated driver in single file. Eliminated runtime tag lookups for memory banks and I/O ports. . Only allow CPU access to one byte at a time from the 052109. Removed now-superfluous methods from 052109 device emulation. Modernize VBLANK interrupts, sourcing them from 052109 except for remaining tmnt.cpp games and Sunset Riders bootlegs. - zac1b1120.cpp: Renamed zac2650.cpp driver to zac1b1120.cpp (Zaccaria 1B1120 hardware (Signetics 2650 based)). Added XTAL-derived timings and some notes. Eliminated spurious 3x scaling of Y-axis. Added notes. - zaccaria.cpp: Use raw parameters for screen - 1943: Measured MCU clock - AGEMAME . Added notes and correct release years for astropc.cpp . Added driver for 'Bellfruit Black Box' electromechanical fruit machines (bfm\bfm_blackbox.cpp). Encapsulated electromechanical reel simulation (machine\em_reel.cpp). . Refactored mpu1.cpp to use new electromechanical reel device (machine\em_reel.cpp) - Arkanoid: Dumped MC68705 A75_15 MCU code for clone Arkanoid (Phoenix Electronics Co. license). Promoted game to working. - Beezer: Swap PTM6840/VIA6522 at machine_config, so VIA doesn't write to PTM before PTM is reset. Fixes Beezer boots randomly without sound (ID 08734). - Bonze Adventure and Rainbow Islands/ - Extra Version: Fixed P2 left input not working (ID 08727) (ID 08729) - Captain Silver: Dumped priority prom - Change Lanes: Added screen raw parameters, fixed gas pedal sensitivity (ID 08714) and small cleanups. Fixed test mode (ID 02005). Break up m_memory_devices arrary. Shorthand variable types. Fixed tree priorities, tweak layer offsets and merged driver. Removed duplicated code. Added notes. 1 scanline is 63.6us. - Ez2dancer 2nd Move: Added nVidia Riva TNT2 Model 64 (NV5). Repair ez2d2m BIOS from OEM image inside HDD. - Flower: Removed unneeded vblank irq trampoline - GameCristal: Converted machine\sis950_lpc.cpp to use PS/2 HLE version. Moved SiS630 SVGA portion to video\pc_vga_sis.cpp. - Gorf: Improved internal artwork lamps - Heat Up Hockey Image: Security PIC dumped - Jackpot Bowling: Fixed gfxdecoding. Added NMI, CRTC and basic input hooks. Set address_map with unmap_value_high, makes it to initialize EEPROM to a sane default. Added UART and some interrupts - Last Fighting: Modernized VBLANK interrupt - Meta Fox: Revert screen raw parameterization in MAME 0.256 that caused graphics regression (ID 08691) - Mortal Race: Fixed sound clock frequency and added placeholders PLDs - New UFO Catcher: Filled in DIP switch settings from manual - Odyssey: Should use KBDC8042_DOUBLE for set_interrupt_type (machine\pc87306.cpp) - PinMAME: Redumped Mr. Evil - Poker Spirit: Confirmed on a second PCB that the Oki ROM socket isn't populated - The Real Ghostbusters: Redumped clone Meikyuu Hunter G (Japan, bootleg), confirmed it's a bootleg and added correct PROMs. - Sea Battle: Identified clone as Armada. Added dumps of the missing program and sound roms for clone Armada. Minor cleanup. Added PCB locations. - Sindbad Mystery: Fixed coin counters. Fixes coin counters (ID 08709). - Space Invaders / Qix Silver Anniversary Edition: Fixed screensize off-by-1 error (ID 08730) - Super Tank: Fixed reset caused by watchdog on titlescreen - Wacky Gator: Initialised a couple of variables - Wizard of Wor: Fixed stereo sound regression (ID 08685) - Fixed rom names in dec8.cpp, pipedrm.cpp and seabattl.cpp - Description changes of Armada, Captain Silver (Japan, revision 2), Cue Ball Wizard, Cue Ball Wizard (rev. 2), Cue Ball Wizard (rev. 3), Dragon Slayer (Russia, v15.B, 2005/08/10), Dragon Slayer (Russia, v16.B, 2005/11/10), Fire Truck / Smokey Joe (PROM version), Jackpot Bowling (Ver 16.16L), Jackpot Bowling (Ver 1.16L), Meikyuu Hunter G (Japan), Meikyuu Hunter G (Japan, bootleg), Mr. and Mrs. PacMan (set 1), Mr. Doom, Mr. Evil, Nemo (Japan 901120, 89622B-3 ROM board), New Zero Team (V33 SYSTEM TYPE_B hardware, Haoyunlai Trading Company license), Player's Choice (PC644VZ) Standard Draw Poker, Player's Choice (PC679CY) Standard Draw Poker, Player's Choice (PC714VZ) Standard Draw Poker, Player's Choice (PC716VY) Standard Draw Poker, Player's Choice (PC718VY) Standard Draw Poker, Player's Edge (PK0758-PC041) Standard Draw Poker, Player's Edge (PK0773-PC041) Standard Draw Poker, Sea Battle, SwashBuckler and 'unknown 'VIP 2000' game (set 1)' - Dipswitch fixes in arkanoid.cpp, changela.cpp, cps1.cpp, segaufo.cpp, supercrd.cpp and topspeed.cpp - Renamed (meikyuha) to (meikyuhbl), (nzeroteama) to (nzeroteamb) and (seabattla) to (armada) - MAC OS X: Make compile again. Does not yet start up because BGFX tries to force OpenGL (osd\mac.lua and osd\mac\*). - MAME . PLUGINS: Fixed detection of software item lines (plugins\hiscore\hiscore.dat) . Make watchdog_enable compatible with writeline, added a watchdog reset writeline and a debugger side effect checks for watchdog reset_r (machine\watchdog.cpp). . Consolidated drivers in single files (champbas.cpp, changela.cpp, compgolf.cpp, dassault.cpp, freekick.cpp, lwings.cpp, markham.cpp, terracre.cpp, tmnt.cpp and topspeed.cpp) . Moved Lua API reference to its own section (docs\source\luascript\*) - Debugger . Allow the use of either Qt5 or Qt6 on Linux. Look for MOC in QT_HOME/libexec if not found in QT_HOME/bin. Use the Qt6* libraries if the Qt version is >= 6. Switch the include paths for QAction & QActionGroup for Qt >= 6. Replaced the deprecated + operator for keys with | (osd\modules.lua, debugger\qt\*). 0.256 - New games: Mortal Race - New Non-Working games: Caramball, Gamble Poker (v816, encrypted), Gamushara Battle! Puchi Monster (Japan 990519), Happy Video, Lost Treasure (V1.03), Mini Hockey, Red Line (v808, encrypted), Super Stars (v839, encrypted), 'Taiko no Tatsujin RT: Nippon no Kokoro (Japan, TKN1 Ver.A)', 'unknown Top game' and Wheel of Fortune (P517 V16, English) - New clones: Amidar (bootleg, set 2), Arkanoid (Phoenix Electronics Co. license), Condor (Valadon Automation bootleg of Phoenix), Euro League (Italian hack of Tecmo World Cup '90, set 3), Fruit Star (v810, encrypted), Gamble Poker (v812, encrypted), Octopussy, Pit & Run - F-1 Race (set 3), Psycho-Nics Oscar (World revision 0, bootleg), Sky Fire, Sprint 4 (Rev 03), Super Six Plus II English Mark Darts (v3.3), Super Stars (v834, encrypted), TeddyBoy Blues (315-5111, Old Ver.), Turbo Sub (prototype rev. TSB8), Turbo Sub (prototype rev. TSC5), Turbo Sub (prototype rev. TSC5*), Turbo Sub (prototype rev. TSC8) and Wheel of Fortune (P517 V11, English) - New PinMAME games: Black Knight (L-2) - New PEPlus games: Montana Choice (MG0225) Multi-Game, Player's Edge (PK0785-PC041) Tens or Better, Player's Edge (PK0788-PC041) Tens or Better, Player's Edge (PK1015-PC088) 4 of a Kind Bonus Poker, Player's Edge (PK1031-PC088) 4 of a Kind Bonus Poker, Player's Edge Plus (BE0013) Blackjack, Player's Edge Plus (KE0026) Keno, Player's Edge Plus (PP0005) Standard Draw Poker, Player's Edge Plus (PP0042) 10's or Better (set 1), Player's Edge Plus (PP0079) Standard Draw Poker, Player's Edge Plus (PP0083) 10's or Better (set 1), Player's Edge Plus (PP0094) Standard Draw Poker (set 2), Player's Edge Plus (PP0117) Standard Draw Poker, Player's Edge Plus (PP0122) Deuces Wild Poker, Player's Edge Plus (PP0125) Deuces Wild Poker (set 1), Player's Edge Plus (PP0143) Deuces Joker Wild Poker, Player's Edge Plus (PP0418) Deuces Wild Poker (set 2), Player's Edge Plus (PP0420) Standard Draw Poker (set 1), Player's Edge Plus (PP0425) Joker Poker, Player's Edge Plus (PP0430) Deuces Joker Wild Poker (set 1), Player's Edge Plus (PP0451) Bonus Poker Deluxe, Player's Edge Plus (PP0459) Joker Poker (set 1), Player's Edge Plus (PP0469) Deuces Wild Poker, Player's Edge Plus (PP0508) Loose Deuce Deuces Wild! Poker (set 1), Player's Edge Plus (PP0540) Double Bonus Poker (set 1), Player's Edge Plus (PP0729) Double Bonus Poker, Player's Edge Plus (PP0750) Standard Draw Poker (set 1), Player's Edge Plus (PP0777) Royal Deuces Poker??, Player's Edge Plus (X000014P+XP000055) Standard Draw Poker, Player's Edge Plus (X000127P+XP000038) Deuces Wild Poker, Player's Edge Plus (X002004P+XP000038) Double Double Bonus Poker and Player's Edge Plus (X002046P+XP000038) Ace$ Bonus Poker. - New drivers: caramball.cpp, downtown.cpp, happyvideo.cpp, minihock.cpp and unktop.cpp - New devices: a5200_rom, a5200_supercart, a800_adawliah, a800_atrax, a800_blizzard, a800_blizzard_32kb, a800_diamond, a800_phoenix, a800_phoenix_ast2k, a800_rom_16kb, a800_rom_right, a800_siccart_128kb, a800_siccart_256kb, a800_siccart_512kb, a800_sparta_128kb, a800_supercharger, calchase_jamma_if, et4000_kasan16, h8h_dma, h8h_dma_channel, h8s_dma, h8s_dma_channel, i82439tx, isa16_p5txla_mb, isa16_taito_rom_disk, maxflash_128kb, maxflash_1mb, nvidia_nv3_vga, pc87306, rageii, rageiic, rageiidvd, ragepro, riva128, sega_315_5111, teac_fd_55a, teac_fd_55b, tvga9000 and w83977tf - New Cheat.dat: http://cheat.retrogames.com/ - Bob Zed (What's new video): https://youtu.be/lAwu6YemCi8 - CPU . Hitachi H8 and MOS Technology 6502 . Make fully wait-states compatible . Use finders for H8. Reorganized and upgrade h8\h8_dma.cpp. Converted h8_adc and h8_port I/O to devcb at cpu level. . More h8 I/O simplifications. Bring h8_sci interface up in the cpu. . Added PC to unhooked port logging message and notes about and slightly adjust cycle counts. . MC68340 and Philips SCC68070: Don't mess with devcbs in device_start . MCS-51: Added rxb8 to uart reset . MIPS-III: Removed stray printf (mips\mips3.cpp). Fixed tlb modify exception registers (mips\mips3com.cpp and mips\mips3drc.cpp). . MOS Technology 6502: Return to implicitly using read_arg to read operands at PC (fixes regression in all (MESS) XaviX games). Side note: This changes the semantics of read_pc to what was formerly known as read_pc_noinc. Now that memory accesses themselves can be interrupted and restarted, updating PC as a side effect is obsolete anyway. . Motorola MC6800: Zerofill more class variables . Motorola MC68000 . Extract m68000mcu from m68000. Implemented M68008 as a 68000 variant. . When a SR S-flag update happens in parallel to a bus access, be careful to delay the update to after the access because it is otherwise seen too early through fc and acts on mmus&co. Fixes hp_ipc. . Zilog Z80: Added EI to IM0 handler. Interrupt mode 0 should be able to execute arbitrary opcodes. Note: The (MESS) heath\h89.cpp with a z37 soft-sectored controller uses IM0 and places an EI instruction on the bus when DRQ signal is received from the WD disk controller. - SOUND . Votrax SC-01-A: Removed imperfect_features flag (sound\votrax.h) . Yamaha YMW-258-F: Implemented reverse flag (sound\gew.cpp) - DEVICE . Floppy: Added Teac FD55-A and FD55-B drive types (imagedev\floppy.cpp) . ISA: Retire TGUI9680 from being selected (all refs points to be a PCI card only, there's mention of a VLB card but haven't seen a single retail dump/photo yet) (isa\isa_cards.cpp). . MC68681 DUART: Separated transmitter holding and shift registers. Delay setting of TxRDY until start bit time has passed, fixes DUART test on (MESS) AT&T 630 (machine\mc68681.cpp). . PC hardware: Retire pcat_base_state::pcvideo_* fns (shared\pcshare.cpp) . VGA: Moved everything that doesn't belong to main VGA/SVGA interfaces to per-manufacturer family files (video\pc_vga.cpp). Temporary moved gamtor_vga_device from video\pc_vga.cpp to misc\gamtor.cpp. Rework and fixed VGA input sense (necessary to allow Riva 128 to survive POST). . Sega 315-5296 I/O: Correct logerror message . SVGA: Added TVGA9000 ISA card (isa\svga_trident.cpp) (magtouch.cpp and pcat_dyn.cpp). Added earlier ColorImage ET4000AX variant and Kasan Hangulmadang-16 Korean variant ISA (isa\svga_tseng.cpp). . Z80 SCC Channel: Fixed access to wr7'. Reset Highest IUS command is available on NMOS versions too according to manuals (machine\z80scc.cpp). - 1943.cpp: Don't ignore audiocpu reset line. Correct MCU interrupt pin. - aerofgt.cpp, crshrace.cpp, f1gp.cpp, gstriker.cpp, inufuku.cpp, pipedrm.cpp, tail2nos.cpp, taotaido.cpp and welltris.cpp: Improved soundlatch timing where applicable - anes.cpp: Got it to boot and added preliminary video and inputs. Identified some more inputs and dips from manual. Added NVRAM and enabled save state support. - bfm_swp.cpp: Fixed ROM offset mask (it's words, not bytes) - calchase.cpp: Converted custom JAMMA i/f to ISA device. Connected Trident VGA to ISA bus. - cdi.cpp: Fixed Quizard cdrom region - chihiro.cpp: Better fix for dangling pointer warning (shared\xbox_nv2a.cpp) - coinmvga.cpp . Fixed CPU type after OG feedback, video a bit and most of GFX decoding. Fixed the 8bpp graphics. Added more documentation about the H8/3002/3007 CPU used and other components. . Incremental improvements: Added I2C EEPROM and RTC. Hook up YMZ280B IRQ properly. Use standard VGA screen parameters. - cv1k.cpp: Apply clipping to Blitter calculations as well (video\epic12.cpp). Fixes excessive blitter delays when games do large over-draws. The fog in stage 1 of Mushihime-Sama Futari Ver 1.5 is a good example of this. - exidy.cpp: Fixed Spectar and Targ palette decoding - harddriv.cpp: Swap coin inputs for Hard Drivin' and clone Race Drivin' (compact, rev 5) - iteagle.cpp: Fixed issue with LOG_SERIAL (itech\iteagle_fpga.cpp) - markham.cpp: Fixed SN76496 PSG chip balance (ID 08662) - micro3d.cpp: Use more plausible input ranges. Fixes Joystick Up and/or Right is very sensitive (ID 08656). - midas.cpp: Removed neogeo.h dependency - namcos1.cpp, segahang.cpp, segas16a.cpp, stv.cpp, turbo.cpp, tx1.cpp and zaxxon.cpp: Set 8255 PPI tristate to 0 in the drivers or inverted coin counters. Fixes coin counters increase at each boot up even though credits are not being added and coin inputs not working correctly (ID 08663) (ID 08664) (ID 08665) (ID 08666) (ID 08668) (ID 08670). - namcos10.cpp: Put test switch on F2 - namcos12.cpp: Updated documentation - popeye.cpp: Set screen always_update flag depending on interlace config. Fixes single rendered field hangs on the screen while pressing Insert when interlace mode is set to "Interlaced (bitmap)" (ID 08677) - psikyo.cpp: Correct screen timings and interrupts for Gunbird and Samurai Aces clone Sengoku Ace. Gunbird is verified to use the same timings as Strikers 1945 and Tengai, so clone Sengoku Ace can be assumed to be similar. - seta.cpp and downtown.cpp: Split out Arbalester, Caliber 50, DownTown, Meta Fox, Thundercade, Twin Eagle and U.S. Classic from the Seta driver to a separate driver seta\downtown.cpp. Eliminated set_vblank_int and reduce usage of HOLD_LINE. Replaced remaining uPD71054 simulation with PIT device. - supercrd.cpp: Some fixes to the Fruit Star XOR tables. Tweaked Super Card XOR tables. Fixed colors in almost all games (need to get them decrypted to be sure). - taito_f3.cpp . Fixed visible tile check for alternate tilemap lines (taito\taito_f3_v.cpp). Fixes Kaiser Knuckle when the "Best Players" list is displayed in attract mode, there is nothing listed (ID 00899). Fixes Kirameki Star Road background in the lower half of the dance game and the middle demonstration screen is not neatly displayed (ID 02576). . Fixed line zoom regression. Fixes 'Top Ranking Stars' background theme of fire after game starts (https://github.com/finalburnneo/FBNeo/issues/1483). - tigeroad.cpp: Removed tilerom tag lookup - tx1.cpp . Removed IPT_COIN3 in Buggy Boy, coin3 is service coin (TX-1 does not have it). . Removed unpopulated DS3 in TX-1 (wire jumper setting on sound PCB) and fixed steering wheel mask - AGEMAME . bfm_sc2.cpp: Added sound ROM to Majestic Bells (Bellfruit) (set 1) (set 1) taken from clone (set 1, Protocol) (set 2) . gamtor.cpp: Temporary moved gamtor_vga_device from video\pc_vga.cpp to misc\gamtor.cpp . mpu4plasma.cpp: Added Z8530 SCC - Arkanoid: Dumped the 68705 A75 23 MCU for clone Arkanoid (Japan, newer w/level select) - Atari 800 (bartop52.cpp and maxaflex.cpp): Modernized cart slot interface (bus\a800/*). Use address_maps instead of catch-all handlers. Implemented rd4 and rd5 line views. Converted a800_rom_williams_device to the new system, make almost every entry in mega* and prisma* SW to actually boot. Implemented maxflash_1mb / maxflash_8mb devices. This allows loading arbitrary collection of .xex files built thru Maxflash Cartridge Studio program as flash ROM binaries (bus\a800\maxflash.cpp). Implemented sic_128kb / sic_256kb / sic_512kb flash ROM devices (bus\a800\sic.cpp). Implemented ast2k, atrax, Blizzard 32kb, Adawliah, SpartaDOS 128KB and A5200 Super Cart variants (bus\a800\*). Implemented Super Charger math unit device (bus\a800\supercharger.cpp). Fixed xegs cart default slot for loose cart loading (a800\a800_slot.cpp). Merged a800_turbo64 and a800_turbo128 into single a800_turbo slot option (a800\a800_carts.h). Split a5200 to own interface (a800\a800_slot.cpp). - Avengers: Dumped protection I8751 MCU - Block Carnival / Thunder & Lightning 2: Added YM2151 music to clone Block Carnival / Thunder & Lightning 2 (bootleg) - Ez2dancer 2nd Move: ASUS CUBX is a i440bx flavour, basic driver conversion to PCI. Added HDD dump QA notes. - Flower: VBLANK interrupt modernization. Assume CPUs are 3MHz instead of 4.6MHz and vblank rissing edge is irq set, latch falling edge is irq clear. - Galactic Storm: Fixed coin counter 2 - Glass: Clean up interrupt control and adjust refresh rate, fixes regression in clone Glass (Ver 1.1, Break Edition, Checksum D419AB69, Version 1994). - The Invaders: Dumped sync PROM - Killer Instinct/2: Do slot output signals the sensible way (ata\atadev.cpp/h, ata\atahle.cpp/h), fixes Killer Instinct and Killer Instinct 2 do not get beyond blue startup screen. - Missile Command: Added debugger side effects check. Correct irq timing. Use ioport_array. Added addressmap via bankdev. - Odyssey: Base conversion to i430hx chipset. Needs unemulated National Semiconductor PC87306B Super I/O to continue. Fixed PCI config space. Write a skeleton device for PC87306 Super I/O. Added keyboard enable mechanism (machine\pc87306.cpp) - Parent Jack: Updated dipswitches according to manual - Poker Spirit: Game show something - Psychic Force 2012 . Converted Taito Wolf System to new PCI model. Hookup ATI Rage II+ DVD variant to P5TX-LA board (video\atirage.cpp). . Virtualize CMOS and RTC as MB resources, initial implementation of Taito Wolf ROM DISK ISA. 'Psychic Force 2012' now manages to start loading the DOS process, failing with EMM386. Added proper main BIOS. Redumped data_rom e59-01.u20. . Changed CMOS type. Added Voodoo 1. Allows pf2012 to draw a 3Dfx logo then page faults. Upper ISA bank port is a view select. Converted ROM disk to address_map_bank, goes in service mode. . Converted $cbxxx to map area, added tc0510nio inputs and removed unnecessary by now VGA card. . Added pf2012 EEPROM hookup. It now enters attract mode after first time init thru service mode. Fixed CPU type and speed. Entering service mode now works (watchdog resetting from '510nio if the host CPU isn't enough). . Split pf2012 to own taitowlf_state, update QA, added debug bootscreen fn and srcclean. . ISA irq 7 is necessary for coin insertion - Savage Quest: Fixed s3_vga_device inheritance (was subclassing from ati_vga_device) (video\pc_vga_s3.cpp) - Silverball: Base conversion to PCI model for i440zx BIOS - SNES 4 Slot arcade switcher: Dumped a newer BIOS - Turbo Sub: Removed non-existant PORT_PLAYER(3) tags - U.S. Championship V'ball: Redumped (US) version - Fixed rom names in arkanoid.cpp, taito_b.cpp and warpwarp.cpp - Description changes of Amidar (bootleg, set 1), Frogger (Sega, set 1), Frogger (Sega, set 2), Frogger (Sega, set 3), Fruit Star (T10S, encrypted), Hissatsu Buraiken (Japan, bootleg), Jingling Jiazu Genie 2000, some Player's Edge Plus, Psychic Force 2012 (Ver 2.04J), Puckman Pockimon Genie 2000, Puckman Pockimon Genie 2000 (bootleg), Raiden (Japan), Raiden (World set 1), Raiden (World set 2, newer hardware), Scramble (Stern Electronics, set 1), Scramble (Stern Electronics, set 2), Sprint 4 (Rev 02, set 1), Sprint 4 (Rev 02, set 2), Street Fighter III: New Generation (Asia 970204, NO CD, BIOS set 1), Street Fighter III: New Generation (Asia 970204, NO CD, BIOS set 2), Super Card (v417, encrypted), Super Six Plus II English Mark Darts (v2.7), Super Six Plus II English Mark Darts (v2.8, Spanish) and Ton Puu Mahjong Version 2.0 RX [BET] (Japan). - Dipswitch fixes in anes.cpp, taito_o.cpp and taitowlf.cpp - Renamed (arac6000) to (arac6k27), (arac6spa) to (arac6k28sp), (pepp0042a) to (pepp0042b), (pepp0042) to (pepp0042a), (pepp0083) to (pepp0083a), (pepp0420) to (pepp0420a), (pepp0430) to (pepp0430a), (pepp0459) to (pepp0459a), (pepp0508) to (pepp0508a), (pepp0540) to (pepp0540a), (pepp0750) to (pepp0750a), (puckpkmn) to (puckpkmnb), (puckpkmnb) to (puckpkmn), (puckpkmna) to (jingling), (raiden) to (raidenj), (raidena) to (raiden) and (sprint4) to (sprint4b) - MAME . VIDEO RENDERING SYSTEM . BGFX: Fixed glslang build with newer GNU C/C++ standard library verisons (bgfx\3rdparty\glslang\glslang\MachineIndependent\SymbolTable.h) . DEVICE . Removed device (READ|WRITE)_LINE_MEMBER in favor of explicit function signatures (emu\device.h) . Added a lookup() member function to device finders. This simplifies looking up the target device during configuration. It is useful when configuring child devices in things like CPUs with integrated peripherals (emu\devfind.h). Allow templated subdevice() and siblingdevice() to work with classes that don't derive from device_t (e.g. classes that derive from device_interface) (emu\device.h). Added more noexcept. Won't make much difference as most of the affected member functions are inline anyway (util\delegate.h). . Added resolve_safe and resolve_all_safe helpers. Uses decay rules, so if a delegate returns a reference and you want to supply a referene to an object you don't want copied as the default result, remember to use std::ref. Updated a few devices to use resolve_safe on device delegates to streamline code (emu\devdelegate.h). . Eliminated the need to call resolve() on callbacks. Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution (emu\devcb.h). . PLUGINS: Updated changed sets (plugins\hiscore\hiscore.dat) . Consolidated drivers in single files (seta.cpp and zac2650.cpp) - MAC OS X: Cleaned up most macOS deprecation warnings up to and including 10.13 (osd\modules\debugger and modules\sound). This raises the hard minimum macOS and SDK versions to 10.13. In practice, the minimum since 0.252 has been macOS 11 Big Sur. 10.13/10.14/10.15 can be built and run with this unsupported patch: https://gist.github.com/rb6502/8a1736ee3775f998e8e71faa47ae4b59. The patch works for me, but no guarantees are offered and it may break at any time. - Compiling . Clean up several sprintf() deprecation warningss in non-3rdparty code . Changed "Bios" to "BIOS" in several drivers 0.255 - New games: Burger Kids (Japan) - New Working games: Gamshara (20020912A / 10021 Ver.A), Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A), Gunbalina (Japan, GNN1 Ver.A), Point Blank 3 (World, GNN2 Ver.A), Pop'n Music 4, Pop'n Music 5, Pop'n Music 6, Pop'n Music 7, Pop'n Music 8, Pop'n Music Animelo (license expired), Pop'n Music Mickey Tunes, Pop'n Music Mickey Tunes!, Seishun-Quiz Colorful High School (CHS1 Ver.A) and Tsukkomi Yousei Gips Nice Tsukkomi (NTK1 Ver.A) - New Non-Working games: Ace Driver 3: Final Turn, Bolsa Internacional (euro), Isshoni Wanwan Waiwai Puppy 2008, Poker Spirit, Pump It Up: The 1st Dance Floor, Taiko no Tatsujin 11 (T111001-NA-A) and Victory Shoot - New clones: Galaxian III (bootleg of Galaxian), GX Part 2 (Galaxian hack), Gyakuten!! Puzzle Bancho (Japan, set 1), Jolly Game (V1, Otti Karl logo), Jolly Joker (original program, interleaved GFX, Otti Karl logo, set 1), Jolly Joker (original program, interleaved GFX, Otti Karl logo, set 2), Karate Champ (US, 2 players), Master Crane (set 2), Mega Card (Ver.0053, encrypted), Nandemo Seal Iinkai (ver 1.3), Novo Play (V3.3H), Novo Play (V6.2H), Pop'n Music Animelo, Pop'n Music Animelo 2, Street Fighter II': Champion Edition (World 920803) and WWF Superstars (bootleg with 2xYM2203) - New AGEMAME games: Kung Fu Pounda and Let's Get Kraken - New PinMAME games: Zankor (TMS5220 Italian speech) - Removed games: DrumMania 9th Mix eAmusement (G*D09 VER. JCA), DrumMania 10th Mix eAmusement (G*D40 VER. JCA), Evil Night (ver EAA), Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA), Guitar Freaks 11th Mix eAmusement (G*D39 VER. JBA), Percussion Freaks 9th Mix eAmusement (G*D09 VER. ABA) and Percussion Freaks 10th Mix eAmusement (G*D40 VER. ACA) - New drivers: bolsaint.cpp, pkspirit.cpp, pluto6.cpp and vicshoot.cpp - New devices: bt479, cp2024, ds1643, dvdrom, dvdrom_fixed, dvdrom_image, fdc37m707, gdrom_image, i82371eb_acpi, i82371eb_ide, i82371eb_isa, i82371eb_usb, i82443bx_bridge, i82443bx_host, isa16_oksan_lpc, isa16_oksan_rom_disk, isa_ibm_speech, lc82310, nn71003f, ns10_type2_decrypter_nonlinear, ppc740, ppc750, r5900be, ss9602, ss9802, tc9223, votrsc01 and zr36110 - New Cheat.dat: http://cheat.retrogames.com/ - Bob Zed video: https://youtu.be/vmqPEWxSaSk - CPU . ATAPI CD/DVD-ROM and SCSI CD: Track command 48h just plays track when TNO start == TNO end. Fixed redbook silent regression with konamigv.cpp (machine\t10mmc.cpp). Make a little les chatty (machine\t10mmc.cpp). . ES5510: Avoid calling DESCRIBE_INSTR when not verbose-logging . IBM PowerPC 4xx/6xx: Added 740 and 750 models to give the correct IDs. The 740/750 extended TLB is not yet supported (powerpc\ppc.h and ppccom.cpp) . Intel I386: Use logmacro.h granular logging (i386\i386.cpp) . Hitachi HD6303R: Fixed HD6303R to use an internal map and removed internal-only handlers from associated drivers (m6800\m6801.cpp). . MCS-51: Implemented serial input/output as bit stream (mcs51\mcs51.cpp) . MIDI: Fixed error condition handling so MIDI files can be loaded again (imagedev\midiin.cpp) . MIPS-I: Fixed address translation (mips\mips1.cpp) . MIPS-III . Fixed MIPS3 PRID. Report proper fcr0 PRID (same as CPU PRID in most cases) (mips\mips3.cpp). . Bumped major rev of R4600 PRID to 2 (original R4600 was too problematic so almost all systems are shipped with R4600 rev 2.0) (mips\mips3com.cpp) . Motorola MC6809: Set V flag on XDEC (m6809\m6809.lst) . Zilog Z80: Fixed incorrect cycle counts when custom cycle tables are used (z80\z80.cpp). Added support for variants with address translation and implemented Z84C015 chip selects. . Zilog Z80180: Fixed cycle timings for branches not taken (one operand byte is always read) (z180\z180ops.h) - SOUND . CD/DA: Modernize a little (sound\cdda.cpp) . Ensoniq ES5503: Support sync and AM modes and the last oscillator volume bug . MSM5232: Revise caps and resistors values. Use correct attack/decay time nominal value when the lower 3 bits of attack/decay time data are 0x6 or 0x7 (sound\msm5232.cpp). Fixes MSM5232 tone duration is longer in MAME (ID 04567). . NEC uPD7759: Correct polarity of uPD7759 ST line writes (88games.cpp, combatsc.cpp, mainevt.cpp, tmnt.cpp and twin16.cpp) . PlayStation SPU: Don't explode when the reverb parameters couldn't be found after a save state (sound\spu.cpp) . Sound Interface: Made -volume in source file INI or higher priority context take precedence over volume read from CFG file (emu\sound.cpp). This matches behaviour of -bgfx_screen_chains. . Votrax SC-01/SC-01-A: Added support for the older Votrax SC-01 chip (Gorf and Wizard of Wor). Currently only used by Bally Astrocade-derived arcade hardware. All other devices remain using the Votrax SC-01-A. . Yamaha AICA: Fixed EXTS[1] routing (sound\aica.cpp) - DEVICE . ATAPI CD/DVD-ROM: Make the dvdrom drives be dvdroms (ata\atapicdr.cpp). Set CDDA image on device reset (ata\atapicdr.cpp and scsi\scsicd.cpp). . Brooktree Bt47x: Added Bt479 1024 Color RAMDAC device (video\bt47x.cpp) . Dallas DS2430A 1-Wire EEPROM: Silence logging (machine\ds2430a.cpp) . DS1643 Nonvolatile Timekeeping RAM: Added Dallas DS1643, a clone of the STMicro M48T58 (machine\timekpr.cpp). . GD-ROM: Fixed READ_TOC command. Improved logging. Added redbook playback & repeat and basic CD status. Fixed loopchk Maker/Model identify ATA command 0104. Flip is_ready() to true, fixes several hangs (cfr. hash\dc.xml). . MagicEyes VRender0 Video Engine: More accurate VRender0 pipeline inner workings, fixes 'Donggul Donggul Haerong' split screen. . NEC uPD7810: Added support for externally clocked serial mode . Philips CDD2000 CD-R: Hook up SCSI IRQ (nscsi\cdd2000.cpp) . Pseudo terminal: Copied flow control code from bus\rs232\null_modem.cpp (bus\rs232\pty.cpp) . SMBus interface: Make map public so it can be reused by i82371eb_acpi (would otherwise fail mapping to the intended HW) (machine\pci-smbus.h) - aleck64.cpp: Minor cleanups (nintendo\n64.cpp/h). Re-enable option for -drc. Implemented interlace mode (nintendo\n64_v.cpp). - astrocde.cpp . Added support for the older Votrax SC-01 chip (Gorf and Wizard of Wor) . Eliminated deprecated use of PORT_RESET for trackball inputs (Demons & Dragons and Extra Bases) - chihiro.cpp: Worked around another GCC 13.1 error (shared\xbox_nv2a.cpp) - comebaby.cpp, midqslvr.cpp and xtom3d.cpp . Initial work towards i440bx chipset. Implemented stubs for i82443bx_host and i82371eb PCI devices. Hook up base PCI stubs. . Make map public so it can be reused by i82371eb_acpi (would otherwise fail mapping to the intended HW) (machine\pci-smbus.h) . Preliminary implementation of Oksan ROM DISK ISA card to X Tom 3D - cps1.cpp: Documentation update for clones Chiki Chiki Boys (Japan 900619) and Nemo (Japan 901120) - cps3.cpp: Fixed CD-ROM detection - crystal.cpp: More accurate VRender0 pipeline inner workings (video\vrender0.cpp), fixes 'Donggul Donggul Haerong' split screen. - cubo.cpp: Fixed regression crash (machine\akiko.cpp; Cubo CD32 games still don't automount). Fixed the setup. - cv1k.cpp . Changed clipping for CV1K games to draw 32 pixels surrounding the visible area. This can be easily seen in Muchi Muchi Pork, which has a VRAM viewer in Special mode (Object Test), which will show 32 px drawn around the visible areas of framebuffers. For most gamers, this wont really matter at all... except for in Muchi Muchi Pork, where changing this actually fixes a bug for Rafute. When Bombing with Rafute, the screen background will go wavy in a sine-like pattern. Currently in MAME, the top of screen will show black pixels when this happens. With this fix for clipping, the background will instead be visible correctly. . Renamed the "scroll registers" to have it more clear which one of these are actually used as a "scroll register" (or rather offset for drawing), and which one is strictly used for clipping. - firebeat.cpp . Target the correct device in the rom regions . Updated Pop'n Music games to use DVD CHDs. Promoted Pop'n Music 4, Pop'n Music 5, Pop'n Music 6, Pop'n Music 7 and Pop'n Music 8 to working. Fixes CHDs are in the wrong format (ID 07999) . Added new DVD images to Pop'n Music Mickey Tunes and clones Pop'n Music Animelo (license expired), Pop'n Music Animelo 2 (license expired) and Pop'n Music Mickey Tunes!, promoted games to working. Fixed typo (ADC_1 --> ADC_3) (sound\xt446.cpp). - hng64.cpp: Added ROM banking for network CPU. Improved RAM mapping and figure out where COM20020 would be mapped - hrdvd.cpp . Renamed csplayh5.cpp to hrdvd.cpp (High Rate DVD). Fixed the image regions. Make the initial dvdrom test pass. . Added skeleton driver for Zoran ZR36110 MPEG video decoder. Hook up the MPEG chip. . Replaced CD-ROMs with DVD images . Added placeholders for all the chips (machine\tc9223.cpp and sound\nn71003f.cpp), thanks Guru for tracing the PCB. - kinst.cpp: Correct pixel clock - konamigv.cpp: Track command 48h just plays track when TNO start == TNO end. Fixed redbook silent regression with konamigv.cpp (machine\t10mmc.cpp). Fixes missing background music in possibly all KonamiGV games (ID 07184). - konamim2.cpp: Fixed CD-ROM image loading - kpython.cpp: Fixed CPU endianness and BIOS loading. Changed CPU to PS/2 Emotion Engine. - kpython2.cpp: Redumped drmnv3's update DVD (data SHA1 matches the older dump) and converted it to CHD with the new createdvd option (hash\kpython2.xml). Updated the cdrom references to dvdrom (interface, diskarea and part names) (hash\kpython2.xml). - ksys573.cpp: Fixed CD region names and e-amusement CDs. Updated minimp3 to latest source. Added helper class to decode MP3 frame data (sound\mp3_audio.cpp), abstracting away minimp3 from devices. Implemented save states for MP3 decoder. Remove the CDROM drive from games that do not use CD/DVDs. - lastfght.cpp and subsino2.cpp: Create new device for I/O ports (subsino\subsino_io.cpp) - maxaflex.cpp: Added pwm_display for 7segs. Fixes the digits don't display correctly (ID 00516) - mazerbla.cpp: Added ADCs and removed runtime port tag lookups - megatech.cpp: Swap screens in default view. This fixes the smaller information monitor in the Mega-Tech systems was placed above the main game screen (ID 08612). Fixed some titles in the driver and comments. - micro3d.cpp: Implemented serial input/output as bit stream (mcs51\mcs51.cpp). Fixes missing music/audio in Micro3D games since MAME 0.153 (ID 05495). - namcops2.cpp . Dumped Ace Driver 3: Final Turn and Taiko no Tatsujin 11 (T111001-NA-A) . Dumped firmware updater CD for Taiko no Tatsujin 7. Redumped 'Taiko no Tatsujin 8' DVD (data SHA1 matches the older dump) and converted it to CHD with the new createdvd option. - namcos10.cpp . Clean up constants . Dumped CDs for taiko3 and taiko5. Added decrypter for taiko3 and taiko5. Factory reset taiko3 and taiko5. . Promoted games to working: Gamshara (20020912A / 10021 Ver.A) (Redumped Flash ROM at 8E) and Point Blank 3 (World, GNN2 Ver.A) and clone Gunbalina (Japan, GNN1 Ver.A) (Added decrypted Point Blank 3 program code). . Set unscrambler in machine configuration. This further reduces the places that need to be touched for adding a decryption setup. . Fixed light gun inputs for Golgo 13: Juusei no Requiem . Added MP3 decoder support to the MEM(P3) board. Updated 3rdparty\minimp3 to latest source. Added helper class to decode MP3 frame data (sound\mp3_audio.cpp), abstracting away minimp3 from devices. Added basic Sanyo LC82310 MP3 decoder emulation (sound\lc82310.cpp). Implemented save states for MP3 decoder. . Promoted Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A), Seishun-Quiz Colorful High School (CHS1 Ver.A) and Tsukkomi Yousei Gips Nice Tsukkomi (NTK1 Ver.A) to working . Added partial decrypter for Point Blank 3 (namco\ns10crypt.cpp). Calibrated light guns for Point Blank 3 and clone Gunbalina (Japan, GNN1 Ver.A). - namcos23.cpp: Updated Gorgon hardware info - nss.cpp: Zerofill class variables and get rid of conflict with snes_state::m_wram - peplus.cpp: Added correct CAPX2352 color PROM (same data as CAPX2346) to pexmp014. Updated comments. - royalmah.cpp . Zerofill class variables . Put decrypted rom of Mahjong Senka (Japan) in its own region. Fixes randomly exits in an unstable manner (ID 08609). - simpl156.cpp . Added workram mirror for Osman (needed for truck in final stage) . Added base memorymap - stv.cpp: Better split LOG calls to areas of interest (machine\stvcd.cpp) - subsino.cpp: Renamed subsino_m.cpp/h to subsino_crypt.cpp and don't hardcode region - system1.cpp: Fixed incorrect Z80 cycle counts when custom cycle tables are used (z80\z80.cpp) - toaplan2.cpp: Minor documentation updates - vertigo.cpp: Zerofilled 1 variable - Alpine Ski: Fixed 'End of Race Time Bonus' dipswitch (ID 08631) - Bubble Bobble II: Fixed VRAM wrap width (Bubble Symphony platforms). Correct mistake introduced in MAME 0.142u1 (Converted Taito F3 video chip (TC0630FDP) to have a parallelism of 16-bit). - Chequered Flag: Driver modernization. Use ADC device for analog inputs. Eliminated runtime port tag lookups. Replaced bankdev with memory view. Added start lamp output. - Demolish Fist and Musapey's Choco Marker: Fixed PowerVR 2 hardlocks MAME emulation when coined up with -drc (sega\powervr2.cpp) (ID 08088) - Doodle Jump Arcade: Replaced ASUS BIOS with the Compaq one found on the original Raw Thrills machine - Drag Race: Added raw parameters for screen and correct IRQ timing - Extreme Downhill: Workaround Extreme Downhill ending crash (ID 08614). TODO: Open bus for unmapped I/O areas? extdwnhl wants to read non-zero at POST for watchdog (?) otherwise will mangle RAM boundaries and fails booting. It also perform a blantantly invalid access during ending, expecting anything that isn't a 0xffff to skip it (A0=0x20434f56, MT08614). - The FairyLand Story: Revise caps and resistors values (sound\msm5232.cpp). Fixes MSM5232 tone duration is longer in MAME (ID 04567). - Haunted Castle: Fixed work RAM banking and coin counter mapping. Simplify ram banking. - Jump Bug: Fixed 'Difficulty' dipswitch (ID 08630) - Motocross Go!: Fixed bad bit in user1 rom of clone Motocross Go! (Japan, MG1 Ver. A, set 1) - Primal Rage: Added input definitions for newest version of Primal Rage. The latest 2.3 version has dedicate start buttons. Deal with 'temporary' INPUT_PORT_OVERRIDE_FULLY_NUKES_PREVIOUS still being set. - Ridge Racer Full Scale: Changed clone Ridge Racer Full Scale (World, RRF2) to a parent set - Space Gun: Added maximum quantum. Fixes game stutters to about 1 frame per 10 secs (ID 08629) - Strikers 1945 III: Dumped masked ROMs and PALs for Strikers 1945 III (World) / Strikers 1999 (Japan) (bootleg, set 2) - Treasure Bonus: Added working sound (replacing nonfunctional ADPCM) - Tri-Pool: 3-In-One (Casino Tech): Added 3 more buttons and some dipswitches (ID 08613) - Vulcan Venture: Correct polarity of uPD7759 ST line writes. Fixes different voice when starting Vulcan Venture and clone Gradius II (ID 08628) - WWF Superstars: Replaced bad dumped rom wwfs47.bin from clone WWF Superstars (bootleg) with rom 3_28.bin from (bootleg with 2xYM2203) - Fixed rom names in hrdvd.cpp, peplus.cpp, psikyosh.cpp and toaplan2.cpp - Description changes of Gamshara (20020716A / 10021 Ver.A), Gamshara (20020912A / 10021 Ver.A), GekiToride-Jong Space (10011 Ver.A), Gyakuten!! Puzzle Bancho (Japan, set 2), Mambo A Go-Go (GQA40 VER. JRB, Rental), Master Crane (set 3), Nandemo Seal Iinkai (ver 1.1), Pop'n Music Animelo (license expired), Pop'n Music Animelo 2 (license expired), Tri-Pool: 3-In-One (Casino Tech), Tri-Pool: 3-In-One (Coastal Games) and Zankor (TMS5200 Italian speech) - Dipswitch fixes in galaxian.cpp, jack.cpp and namcos10.cpp - Renamed (gamsharaj) to (gamsharao), (mastcranea) to (mastcraneb), (nndmseal) to (nndmseal11), (pbancho) to (pbanchoa), (popnanm) to (popnanma) and (popnanm2) to (popnanm2a) - MAME . VIDEO RENDERING SYSTEM . Raised maximum prescale value to 20 to account for very small LCDs (windows\video.cpp) . Replaced old MCFG_ references in a warning message with member function names (emu\screen.cpp) . D3D9: Fixed lack of post-pass application when bloom is disabled. Fixes shadow_mask does not work unless bloom scale is a non-zero value (render\d3d\d3dhlsl.cpp). Always set a default texture at scene start. Fixes pausing a game while in windowed mode causes the screen to flash grey or white (render\drawd3d.cpp). . BGFX: Removed duplicate scanline_variation setting (bgfx\chains\hlsl.json) . Really inhibit full screen toggle in debug mode to prevent accidental crashes (mac\video.cpp and sdl\osdsdl.cpp) . DEVICE . Input line methods can't be called reliably until the device has started, so assert that it has (emu\diexec.h). . Added machine time to bit logging messages (emu\diserial.cpp) . UI . Don't use facets of destructed locales . Fixed file menu enable (ui\mainmenu.cpp) . For an empty media device, look for another device with a mounted software item that has compatible parts before falling back to the file manager. This is useful when mounting a multi-part item via the menus, or for a system like the X68000 with multiple drives where the boot disk remains mounted but another application disk is automatically ejected when you're prompted for the next disk (ui\filemngr.cpp). . Don't assume mounted images are always from software lists and take the first image mounted from a software list rather than the last (ui\datmenu.cpp). Fixes MAME freezes when inserted an external rom via the File Manager and afterwards you select View External DAT View (ID 08620). . INPUT . Made explicit -no{mouse|joystick|lightgun} take precedence over -{mouse|trackball|adstick|paddle}_device etc. from lower priority levels (emu\ioport.cpp). . Put IPT_ADJUSTER in same class as IPT_CONFIG (emu\ioport.cpp) . CHD . Added DVD support. Better abstraction in general and multi-image support in arcade-type drivers. Added extractdvd command (tools\chdman.cpp). . Fixed initialisation order and refine gdrom support (imagedev\cdromimg.cpp, imagedev\harddriv.cpp, emu\diimage.cpp and emu\image.cpp) . Executive decision: disk regions used the owner name (e.g., no :image) . 3rdparty: Re-base Nano SVG on latest upstream (3rdparty\nanosvg). This fixes some issues with abbreviate path commands, gradients and locale sensitivity when parsing percentace-style colours. . Network: Fixed adapter detection on windows for newer versions of taptun driver (3rdparty\tap-windows6\tap-windows.h and netdev\taptun.cpp) . Audit: Work around issues when no ROMs are shared with immediate parent. The issue occurred when a system with no ROMs or only bad dumps had an immediate parent with no ROMs in common. This is another thing broken by the attempts to hide "missing" ROM sets from audits (mame\audit.cpp). Fixes (MESS) StrongARM Risc PC does not start from the UI (ID 08625). . Validate characters in software list names (emu\softlist_dev.cpp) . Updated to LZMA SDK version 22.01. Updated util\unzip.cpp for latest LZMA SDK. . Correct CPU type (battlnts.cpp, combatsc.cpp, fastlane.cpp, labyrunr.cpp and lethal.cpp) . Consolidated drivers in single files (cloak.cpp, cloud9.cpp, copsnrob.cpp, cyberbal.cpp, dragrace.cpp, eprom.cpp, firetrk.cpp, foodf.cpp, gauntlet.cpp, jedi.cpp and mhavoc.cpp) - VGM player: Changed list description to reflect the nature of the files (hash\vgmplay.xml) - Compiling . Support GCC 13.1 / Fedora 38 (-Wno-error=dangling-reference, -Wno-error=dangling-pointer and -Wno-xor-used-as-pow) (scripts\genie.lua) . Make drivers a little les chatty (m68000\tmp68301.cpp and machine\t10mmc.cpp) . Added missing #include (modules\lib\osdlib.h) . Got rid of a bunch of unnecessary simple_list . Set LinkSupportCircularDependencies for FreeBSD as well as NetBSD (scripts\genie.lua) - Debugger . Documented gp command . Cleaned up logging across the codebase. Converted various logging patterns to use logmacro.h consistently. Removed redefinitions of LOG_GENERAL. Use LOGMASKED in more places. 0.254 - New games: GAHAHA Ippatsudou (World, GID2 Ver.A), GAHAHA Ippatsudou 2 (Japan, GIS1 Ver.A), Space Micon Kit, Top Driving (version 1.1) and Waku Waku Anpanman (Rev A) - New Working games: Gamshara (Japan, 20020716A / 10021 Ver.A), Gekitoride-Jong Space (10011 Ver.A), Kono e Tako (10021 Ver.A), Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A), Mr. Driller 2 (Japan, DR21 Ver.A), Mr. Driller 2 (World, DR22 Ver.A), Mr. Driller G (Japan, DRG1 Ver.A), Panikuru Panekuru (Japan, PPA1 Ver.A), Star Trigon (Japan, STT1 Ver.A) and Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A) - New Non-Working games: Family Bowl (Japan, FB1/VER.A V1.00), Golden Region, M3004, M4002, M5001 (rev. A), Medal no Tatsujin 2 Atsumare! Go! Go! Sugoroku Sentai Don Ranger Five (MTA1 STMPR0A), Seishun-Quiz Colorful High School (CHS1 Ver.A), Shamisen Brothers Vol 1, Shippe Champion, Sugorotic JAPAN (STJ1 Ver.C), Sweet Land 4 Bright (ver 2004.9.29), Taiko no Tatsujin 2 (Japan, TK21 Ver.C), Taiko no Tatsujin 3 (Japan, TK31 Ver.A), Taiko no Tatsujin 4 (Japan, TK41 Ver.A), Taiko no Tatsujin 5 (Japan, TK51 Ver.A), Tsukkomi Yousei Gips Nice Tsukkomi (NTK1 Ver.A), 'unknown AnyWorks / Sega medal game BIOS', Wanpaku Fishing, 'World Club Champion Football European Clubs 2004-2005 Ver.1.2 (Japan) (CDV-10021)', 'World Club Champion Football European Clubs 2005-2006 (Japan) (CDV-10025)' and Zenigata Ponta - New clones: Agent Super Bond (Super Cobra conversion, not encrypted), F-1 Grand Prix (set 3), Hammerin' Harry (World, Playmark bootleg), Manx TT Superbike - DX, Mr. Driller 2 (US, DR23 Ver.A), Soreike! Anpanman Popcorn Koujou (Rev A), Space Battle (Space Invaders bootleg), Strikers 1945 III (World) / Strikers 1999 (Japan) (bootleg, set 2) and 'World Club Champion Football European Clubs 2004-2005 Ver.1.1 (Japan) (CDV-10020)' - New AGEMAME games: 100 Lions (30223811, ASP), 5 Dragons (10176611, ASP), 5 Dragons (10178611, New Zealand), 5 Koi - Power Pay (1J016211, ASP), 50 Lions (0152077, US), Arabian Nights (10122611, ASP), Big Ben (10169611, ASP), Brazil (10218511, ASP), Buccaneer (Aristocrat, 10181911, ASP), Buffalo (20232611, ASP), Desert Gold (20202311, ASP), Diamond Eyes (10129211, ASP), Dolphin Treasure (10177911, ASP), Dolphin Treasure (20265311, New Zealand), Dream Catcher (10172921, ASP), Fire Dancer (10191311, ASP), Fortune King (10230911, ASP), Geisha (10112411, ASP), Geisha (10122011, ASP), Go For Green (10122111, ASP), Golden Pyramids (10196511, ASP), Heart of Gold (10184211, ASP), Helen of Troy (10116411, ASP), Helen of Troy (10122711, ASP), Helen of Troy (10129121, ASP), Hollywood Dreams (10122811, ASP), House of Hearts (10208411, ASP), Indian Dreaming (10192211, ASP), King of the Nile (10127511, ASP), Let's Go Fish'n (10223911, ASP), Money Tree (10122211, ASP), Paris Lights (10139011, ASP), Peacock Magic (10134311, ASP), Pelican Pete (10196211, ASP), Pirates (10122311, ASP), Pompeii (10122411, ASP), Queen of Sheba (30146921, ASP), Queen of the Nile (10192311, ASP), Queen of the Nile (10204311, ASP), Queen of the Nile Special Edition (10127411, ASP), Ruby Magic (10148811, ASP), Scatter Magic II (10122511, ASP), Silk Road (10176811, ASP), Snap Shot (20115211, ASP), Spring Festival (20267211, New Zealand), The Golden Gong (20196011, ASP), Tigress (20243811, ASP), Tiki Torch (10124011, New Zealand), Torch of the Gods (20210211, ASP), Turtle Treasure (10239811, ASP), Where's The Gold (10177111, ASP), Wild Cats (20258111, ASP), Wild Cougar - Power Pay (30214211, ASP), Wild Goose (10155911, ASP), Wild Panda (20225011, ASP), Wings over Olympus (10176511, ASP) and Zorro (20167511, ASP) - New PEPlus games: Sovereign (1PF434A3) Fantasy - New PinMAME games: Mary Shelley's Frankenstein (Italy), The Shadow (LF-4) French, Teenage Mutant Ninja Turtles (A 0.7 VUK prototype), The Who's Tommy Pinball Wizard (Belgium 1.02, display A1.02) and The Who's Tommy Pinball Wizard (German 3.01, display G3.00) - Removed games: Manx TT Superbike - DX/Twin (Revision C, set 2) and Mr. Driller G (Japan, DRG1 Ver.A) - New drivers: anyworks.cpp, goldenregion.cpp, shambros.cpp, sweetland4.cpp and topdrive.cpp - New devices: ds1971, ds2430a, hd63266f, hrdvd_atactrl, intel_28f640j5, mb89351, namcos10_exio, namcos10_exio_g, namcos10_mgexio, ns10_type2_decrypter, nxm5401, samsung_k9f1g08u0b, samsung_k9f2808u0b, samsung_k9f5608u0b, samsung_k9f5608u0d, samsung_k9f5608u0dj, samsung_k9lag08u0m and tms1270 - New Command.dat: https://www.progettosnaps.net/download/?tipo=command&file=pS_Command_254.zip - Bob Zed video: https://youtu.be/Pr-Tf2bC834 - CPU . ADChips SE3208: Removed hack to ignore misaligned memory accesses (se3208\se3208.cpp) . ES5510: Fixed some ALU flag problems . Hitachi H8: Enabled DEND interrupts (h8\h8_dma.cpp) . Hitachi H8/3002: Clean up TEND configuration (h8\h83002.cpp) . Hitachi H8S/232x: Enabled DREQ inputs and added TEND outputs (h8\h8s2320.cpp). . IBM PowerPC 4xx/6xx: Minor disassembly improvements: Support over & out debugging flags for a few more instructions. Provide special operand format for POWER svc instruction (powerpc\ppc_dasm.cpp). . Intel 8257 DMA Controller: Minor logging improvement . Intel i960KB: Shift opcode fixes. Ensure logically correct results for shift counts >= 32. Preserve sign for shli. . Intel P8x9x: Fixed a case where events could be delayed by mistake (mcs96\i8x9x.cpp) . MIPS-III: Sign-extend result of COP0 LL instruction. Ported COP0 Random implementation from new R4000 interpreter (mips\mips3.cpp). . MIPS IDT R4650 (big): Fixed memory access handling. Correctly support the R4650's lack of TLB. . MOS Technology 6502: Template 6502 microcontroller helper on underlying CPU type (m6502\m6502mcu.h/ipp) . Motorola MC6809 . Added undocumented instructions and dissasembler (m6809\m6809.cpp, m6809\6x09dasm.cpp). Fixes incorrectly handling opcode 0x104F (ID 06797). Reference: https://github.com/hoglet67/6809Decoder/wiki/Undocumented-6809-Behaviours. . Read reset vector during execute_run rather than device_reset to facilitate bank switching of vectoro area . Motorola MC68000: Some variables were missing from savestate/zerofill . NEC V810: Make opcode timings a bit more faithful to reality. Suppress I/O space properly when it has no configured map. Separate irqs into individual lines as a PoC. Allows (MESS) NEC PC-FX to detect a CD as Audio (needs TOC/Mode Select (10) fixes for actual PC-FX detection, uses t10mmc.cpp under the hood). Fixed device_reset behaviour. Fixed MPYHW opcode, makes (MESS) Red Alert (Nihon Telenet 1989) not to crash on attract/gameplay. . Sony CXD8xxxx (PSX CPU): Implemented reached 0xFFFF and reached target bits in counter mode register. Suppress side effects (psx\rcnt.cpp). - SOUND . K053260 KDSC: Added sample reverse flag. Allow to change rev flag on the fly (sound\k053260.cpp) . PlayStation SPU: Calculate tables based on clock speed (sound\spu.cpp) . PortAudio: Sync to upstream. Tested and works on Windows, macOS and Linux. Fixes compatibility with macOS Ventura and bugfixes WASAPI and WDM-KS on Windows (3rdparty\portaudio\*). . TI SN76477 CSG: Make it less verbose . Yamaha YMW-258-F: Some MultiPCM fixes (sound\gew.cpp; envelope behavior, sample lengths, stream updates and save state members) - DEVICE . ATAPI CD/DVD-ROM and SCSI CD: Avoid a stack overflow if device can't read CD data, allows (MESS) PC-FX menu to be useable (with CD in ...) (machine\t10mmc.cpp). Added preliminary implementation of "read CD" (0xBE) command. . Dallas DS2430A 1-Wire EEPROM: Hook up DS2430A device to crazyfgt, lastfght and all subsino2.cpp, added handcrafted EEPROM data to satisfy serial protection checks and removed ROM patches that forced them to pass. . Flash ROM: Added Intel 28F640J5 device (machine\intelfsh.cpp) . Floppy . Don't clear DRQ on LDB/INTR and fixed spurious READ TRACk/ADDR FM mark syncs (machine\wd_fdc.cpp), fixes (MESS) SuperUtility 3 and Marble Maze on TRS-80 Color Computer (ID 08511). Cleaned up (machine\upd765.cpp). . Always interrupt upon command completion and clear busy flag if the latter was set (even if DRQ was not serviced). Drop DRQ when "Force Interrupt" command is issued in idle state (machine\wd_fdc.cpp). Cleaned up (machine\upd765.cpp). . Hudson HuC6270 VDC: Fixed RCR sync, it happens one line earlier (video\huc6270.cpp). Fixes (MESS) NEC PC Engine games (hash\pce.xml): draculax stage 4 "all blue" Richter, faussete stage 2 excessive slowdown and erratic water line, xwiber stage 2 boss never spawning (ID 07384), ppersia misplaced line (ID 07727), ddragon2 options menu display and tblade hang after third person view (ID 08585). . MagicEyes VRender0 SoC: Removed idle skip hack (it causes stability issues) (machine\vrender0.cpp) . NAND Flash Memory: Separated NAND Flash from SmartMedia (machine\nandflash.cpp) . Philips CDD2000 CD-R: Added ROM banking to prevent code from running off rails (nscsi\cdd2000.cpp) . SCSI CD-ROM: Implemented basic CDDA support (nscsi\cd.cpp) . Toshiba TMP68301: Reimplement TMP68301 in the new68k framework. Added timers and fix interrupts (thanks 'Guardians / Denjin Makai II' for the test cases). Removed leftover debug break and reduce log spam. Fixed confusion between internal copy of SR and interrupt in-service register (m68000\tmp68301.cpp). . Z80 SCC Channel: Make receive error logging conditional (machine\z80scc.cpp) - aristmk6.cpp: Dumped 3 more System EPROM sets. Renamed "Malaysian" games to ASP as the games don't have any specific region, only the BIOS does. - crystal.cpp: Added default NVRAM contents for Wully Bully with valid coinage setting - cv1k.cpp: Improved CV1000 blitter timings based on hardware testing and removed unsafe mode. Fixed an off-by-one bug when setting dst_x_end and dst_y_end which caused destination writes to be one pixel too big. Correct calculations to utilize both source and destination VRAM row counts. Updated VRAM access overhead. Track of when blitter is idle, since long sequences of clipped draws can cause the blitter to not do any work while remaining busy. Removed the edge case for "pixel widths need to be evenly divisable by 8" until more examples can be studied. Pad draws to even 4-byte boundaries, since VRAM accesses are always 4 pixels at the time. Also added documentation for 6 unhandled Blitter command offsets (see blitter_w). Thanks rtw for looking at these (video\epic12.cpp). Updated CV1k driver some notes. - cvs.cpp: Initialize some more TMS5110 variables at reset (sound\tms5110.cpp). Fixes nonexistent or erratic speech on CVS games. - dynax.cpp and ddenlovr.cpp: Started splitting up the state class according to hardware features - galaga.cpp and polepos.cpp: Quantise timer to clock frequency (namco\namco06.cpp). Fixes inserting coin in clone Super Xevious (Japan) automatically start 2 player game with issues (ID 07892) and explosion sound of enemy bases in Bosconian breaks after DIP switch change (ID 08327). - namcos10.cpp . Refactored driver and implemented MEM(M) and MEM(N) boards. Reevaluate assumption about how later blocks are handled. Added Intel 28F640J5 device (machine\intelfsh.cpp). . Implemented the basics of the MEM(P3) memory/I/O board. Added controls for more games. Marked all games as MACHINE_IMPERFECT_SOUND in anticipation of complaints. Added System 10 I/O expander board (EXIO) emulation (namco\namcos10_exio.cpp). Moved per-game decryption setup to client configuration (namco\ns10crypt.cpp). . Added decryption setups for GAHAHA Ippatsudou 2, GAHAHA Ippatsudou, Golgo 13: Juusei no Requiem, Keroro Gunso Chikyu Shinryaku Shirei Dearimasu!, Medal no Tatsujin, Medal no Tatsujin 2, Pacman BALL, Panikuru Panekuru, Puzz Ball, Sekai Kaseki Hakken, Sugorotic JAPAN, Taiko no Tatsujin 2/4/6 and Tsukkomi Yousei Gips Nice Tsukkomi. . Added decrypter for Mr. Driller G. Promoted game to working. . Tidied some system descriptions. Don't use std::function unnecessarily. Calculate GF2 reduction table at compile time. Use native population count helper in place of table. Allow client to provide initialisation vectors (namco\ns10crypt.cpp). . Added CD-ROM drive support and I/O for Taiko games. Added some notes about the MEM(P3) board. . Promoted games to working: GAHAHA Ippatsudou (World, GID2 Ver.A), GAHAHA Ippatsudou 2 (Japan, GIS1 Ver.A), Gamshara (Japan, 20020716A / 10021 Ver.A), Gekitoride-Jong Space (10011 Ver.A), Kono e Tako (10021 Ver.A), Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A), Mr. Driller 2 (Japan, DR21 Ver.A), Mr. Driller 2 (World, DR22 Ver.A), Mr. Driller G (Japan, DRG1 Ver.A), Panikuru Panekuru (Japan, PPA1 Ver.A), Star Trigon (Japan, STT1 Ver.A), Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A), . Restore factory defaults for chocovdr, g13jnr, gahaha, gahaha2, mrdrilr2, mrdrilr2j, nflclsfb, nicetsuk, taiko2, taiko4 and taiko6. . Redumped Ball Pom Line, Gekitoride-Jong Space (10011 Ver.A), Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A), Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A), Point Blank 3 (World, GNN2 Ver.A), Puzz Ball (Japan, PZB1 Ver.A) and Taiko no Tatsujin 6 (Japan, TK61 Ver.A). . Marked games as BAD DUMP: Gamshara (World, 20020912A / 10021 Ver.A), Gegege no Kitaro Yokai Yokocho Matsuri de Battle Ja (GYM1 Ver.A), Pacman BALL (PMB2 Ver.A.) and Sekai Kaseki Hakken (Japan, SKH1 Ver.A). . Label gamshara region/license DIP switch settings. Updated taiko2 and taiko4 CD images to CHDv5. - namcos23.cpp: Fixed memory access handling in the IDT MIPS R4650 core. Correctly support the R4650's lack of TLB. Note: The IDT MIPS-series manual is rather explicit about the R4650 lacking TLB entirely. Instead, COP0 registers 0 through 3 are occupied by Instruction Base/Bound and Data Base/Bound pairs, with the CPU throwing an address error if a user-mode memory access exceeds that bound, and adding the Base register to the user-mode access's virtual address if it's in-range. This fixes an assortment of crashes in at least rapidrvr, rapidrvrp, finfurl, motoxgo, timecrs2 and 500gp due to Namco's own program code accessing null or near-null addresses, as all games run in Kernel mode, meaning there is no address translation nor bounds-checking. - neogeo.cpp: Hooked up more control lines. Hooked up the memory card write enable/disable and register select lines and correct the address range where memory card access is enabled. Card addressing still isn't quite right - the card bank register isn't hooked up. Neo Geo CD consoles also haven't been updated. Also, more of the same mechanical cleanup of copy/pasted comments, const and variable scope. Hooked up memory card bank register. Register select only affects reads - writes always go to memory (neogeo\ng_memcard.cpp). - polepos.cpp: Correct rom names, added PCB locations and PLDs to clones Pole Position (Atari version 1), Pole Position (Atari version 2) and Pole Position II (Atari). - psikyo.cpp: Use accurate measurements for 'Tengai' video timings. Measured using a Saleae Logic Pro 16 logic analyzer, sampling at 500Mhz. Correct vertical blanking interrupt for s1945/tengai and removed MACHINE_IMPERFECT_TIMING flag. - segafruit.cpp: Attempted decryption (decryption needs to be verified (may be good), then everything else) - segas32.cpp: Switch driver to NSCSI MB89352 implementation. Added CDDA audio routing. Added XTAL value and silence printfs. - seta2.cpp: Fixed samshoot and derivatives. Note, the parallel port is connected to a set of active-low DIP-switches or straps, which are currently unimplemented. - srmp2.cpp: Cleaned up inputs a little and suppress side effects of reads for debugger - subsino2.cpp . Added RTE-to-RTS ROM patches that were missing to Queen Bee Bingo, Treasure Mary and clones Queen Bee (Israel, Ver. 100) and Queen Bee (SA-101-HARD). . Changed Treasure Mary configuration to one that allows booting into title screen rather than getting stuck on initial tests - supercrd.cpp . Preliminary decryption. Addressed feedback and some tweaks to the XOR tables. Identified one more XOR for Super Card (encrypted). Tweaked XOR tables a bit for Fruit Star (encrypted). . Super Card improvements: Added a set of service inputs that allow the game to enter the attract. Added Coins and remote inputs. Fixed the bottom of the screen. Now messages are properly displayed. Added Coinage, Remote and Personal A settings DIP Switches. Added internal remote credits switch. - taito_f3.cpp: Ignore first line zoom value. Corrects subtle playfield 2 and 3 offset issues in several games (taito\taito_f3_v.cpp). Fixes ending slide has wrong vertical offset in Land Maker (ID 08593). - Crazy Fight: Use standard types for inputs, also number these and note pinout. Hook up DS2430A device, added handcrafted EEPROM data to satisfy serial protection checks and removed ROM patches that forced them to pass. Hook up coin counter. - Ninja Baseball Bat Man: Dumped PLDs for parent and clones - Psychic 5: Added DIP locations - Racing Jam: Chapter II: Made game as a parent - Run and Gun: Removed unused function. Eliminated some tag lookups. - Sky Smasher: Dumped U083 PROM (N82S135N) at 4J - Speed Attack!: Correct CRTC type - T-MEK: Added m_cage->reset_w for clone T-MEK (v2.0, prototype), otherwise game will cause a Cage CPU crash (ID 07146). - Ultraman: Fixed all sprites don't display main color but only the underlying shadow pen (ID 08602) - Fixed rom names in liberatr.cpp, m92.cpp, polepos.cpp and quantum.cpp - Description changes of AGEMAME (lots of), Agent Super Bond (Super Cobra conversion, encrypted), Dragon Ball Z: V.R. V.S. (Japan, Rev A), Gamshara (Japan, 20020716A / 10021 Ver.A), Gamshara (World, 20020912A / 10021 Ver.A), Gegege no Kitaro Yokai Yokocho Matsuri de Battle Ja (GYM1 Ver.A), Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A), Hammerin' Harry (Playmark bootleg), Keroro Gunsou: Pekopon Shinryaku Shirei...De Arimasu!, Kono e Tako (10021 Ver.A), Legend of Hero Tonma (Playmark unprotected bootleg), Liberator (prototype), Liberator (version 2), M4001 (rev. A), Manx TT Superbike - DX/Twin (Revision C), Medal no Tatsujin Doki! Ooatari-Darake no Sugoroku Matsuri (MTL1 SPR0B), Mr. Driller G (Japan, DRG1 Ver.A), NBA Jam Tournament Edition (Nani Edition, rev 5.2 8/11/95, prototype), NBA Jam Tournament Edition (rev 1.00 1/17/94), NBA Jam Tournament Edition (rev 2.0 1/28/94), NBA Jam Tournament Edition (rev 2.1 2/06/94), NBA Jam Tournament Edition (rev 3.0 2/26/94), NBA Jam Tournament Edition (rev 3.0 3/04/94), NBA Jam Tournament Edition (rev 4.0 3/03/94), NBA Jam Tournament Edition (rev 4.0 3/23/94), Panikuru Panekuru (Japan, PPA1 Ver.A), Strikers 1945 III (World) / Strikers 1999 (Japan) (bootleg, set 1) and Zabavni Karti (Bulgarian, cyrillic, encrypted) - Dipswitch fixes in namcos10.cpp, psychic5.cpp and supercrd.cpp - Renamed (50lionsm) to (50lionsa), (5koipp) to (5koi), (antcleom) to (antcleoa), (crysprim) to (cryspria), (csdm) to (csda), (dimeye) to (dimeyeu), (f1gpb) to (f1gpbl), (g13jnc) to (g13jnr), (gldgong) to (gldgongu), (holdrma) to (holdrma6), (liberatr2) to (liberatrp), (mrdrilr2) to (mrdrilr2j), (mrdrlr2a) to (mrdrilr2), (mrdrilrga) to (mrdrilrg), (silkrda6) to (silkrda6u), (snapsot_image) to (snapshot_image), (thaiprncm) to (thaiprnca), (unks10md) to (medalnt), (unks10md2) to (ballpom), (wheregldm) to (whereglda), (wingoly) to (wingolyu) and (wwaysm) to (wwaysa). - MAME . VIDEO RENDERING SYSTEM . Fixed some corner cases (video\rgbvmx.cpp) (GitHub #11051) . Allow loading PNG/JPEG/MS DIB bitmaps from LUA and cleanup. Use VirtualAlloc rather than VirtualProtect on Windows to change page protection, as the latter can cause severe performance issues with some antivirus software. Added noexcept to lots of hash- and bitmap-related things and added a little more error checking. . MEMORY SYSTEM . Encourage use of read/write delegate creator helpers (Demo on (MESS) Game Boy cartridges). This makes it simpler to install read-write handlers, as you don't need to think about the "smo" suffixes (emu\emumem*). . Allow emu::rw_delegate to work with device finders (emu\emumem.h) . DEVICE . Allow range-based for loops on memory share finders (emu\devfind.h) . API change for device_image_interface: Removed the seterror method for recording error messages and conditions. Condition codes have been made return values for call_load, call_create and various related callbacks. Error messages (which many devices weren't generating) are now displayed through osd_printf_error. Eliminated the image_init_result and image_verify_result pass/fail enumeration types. Update many functions that were returning these enumerations or simply bools to return std::error_condition instead. In some cases, this type is now passed down from internal parsing/loading functions which were already returning it. In various other cases, the former default UNSPECIFIED has been used as a catchall for I/O errors; anticipated future refactorings should make these error returns more specific. Expand the image_error categories to include INVALIDLENGTH, NOSOFTWARE and BADSOFTWARE. The first is largely self-explanatory. The second is generated by the core to indicate failure to find software items in lists. The third is provided for devices to indicate semantic errors in software list entries. Changed the return type of floppy_image_device::identify to a pair so the potential error condition can be passed along to the UI without storing it in a member variable. Moved device_image_interface::message down into snapshot_image_device and change its implementation to use string_format instead of printf. Correct a typo in the shortname of the generic snapshot device. . Restored ability of for image devices to report specific error messages. Moved responsibility for displaying the error message in the UI to the caller rather than device_image_interface and made device_image_interface always log the error along with the full path and error condition content. Gave several image devices more detailed error messages. Added some FIXME comments for apparent bugs. . LUA engine . Addressed some LUA engine fallout from running things in coroutines: Don't crash accessing dead Lua thread state from callbacks. Allow returning values via yielding functions. Don't run address space tap and layout view callbacks in coroutines to save overhead. Better logging of errors from callbacks (mame\luaengine.*). . Improved some LUA APIs: Moved several machine lifecycle callbacks to the notifier/subscriber model. The old callback registration model is still available for them for now, but prints a deprecation warning. Added pre-save/post-load notifications. Use a single allocated timer rather than one anonymous timer per waiter. Waiters no longer prevent saved states from being loaded. Clean up outstanding waiters on stop or state load rather than just leaking them. Started documenting parts of the emulator interface object that should be relatively stable. Code changes to notifications and waiters corresponding to the docs/plugins changes in previous commit. Dispose of notifiers before closing Sol. . Fixed i686 Linux GCC build (mame\luaengine.ipp) . UI: Create single-threaded COM apartment on main thread (osd\windows\winmain.cpp) . Recognize reset phase in describe_context (emu\machine.cpp) . Choose correct emu_fatalerror constructor when format string is an rvalue (emu\emucore.h) . Changed -listbios to work more like -listslots, showing all BIOS options in a system (mame\clifront.cpp). . Added deduction guides for common delegate creation patterns (only used in sega\segas16a.cpp so far) (emu\devdelegate.h and util\delegate.h) . Thread device processing. Gives about a 10% speed improvement overall and avoids the need to mess with the locale of the ultimate output stream (mame\infoxml.cpp). . Consolidated drivers in single files (88games.cpp, asterix.cpp, bishi.cpp, chqflag.cpp, crimfght.cpp, dbz.cpp, djmain.cpp, gijoe.cpp, gradius3.cpp, lethal.cpp, moo.cpp, qdrmfgp.cpp, rungun.cpp, simpsons.cpp, spy.cpp, ultraman.cpp and xexex.cpp) . Fixed an object leak on unload. Also changed some other media image devices to use smart pointers (imagedev\avivideo.cpp) . Improved AVI framerate accuracy (emu\recording.cpp) (Numerator values above 0x3fff'ffff have support issues currently, specifically, YouTube will refuse to process an MP4 with it, and it's a pretty common container). . Support keypad Enter on Windows (3rdparty\linenoise\linenoise-win32.c) - MAC OS X: Fixed compile with Clang 14.0.3 on macOS (3rdparty\portmidi\pm_mac) - Compiling . Edited a pile of copy/pasted comments and made some minor code cleanups (reducing variable scope, etc.) . Reduced I/O port lookups in a number of drivers. Reduced scope of some variables and edited some copy/pasted comments. . More noexcept on things that have no business throwing exceptions (lib\osdlib.h, lib\osdlib_macosx.cpp, lib\osdlib_unix.cpp, lib\osdlib_win32.cpp and osd\osdcore.h) . Clean up floppy-related code in various drivers with finder arrays - Debugger . Apply workaround for debugger history command consuming ridiculous amounts of memory when jumping around large address spaces (debug\debugcmd.cpp). Note flaw in design (debug\debugbuf.cpp). . Improvements to debugger 'map' command. Added names of physical and logical spaces now that one space can map to another. Correct usage of address space masks (debug\debugcmd.cpp). . Show image mount/create error messages on the console (debugger\win\consolewininfo.cpp) 0.253 - New games: Akazukin (Japan) and Hot Body I - New Working games: Baby Suprem - New Non-Working games: Ballroom Glitz, Honoo no Invader (main ver. 1.35, video ver. 1.35), Hot Body II, Multi Game IV (AMGSK_VA3.85), Shimura Ken no Bakatono-sama Ooedomatsuri, Sweetheart and VJ: Visual & Music Slap - New clones: Bloxeed (bootleg), Desert Wars (bootleg of Battle Zone), Fruit Star Bonus (Ver 8.2.00ITL), Gals Panic SU (Korea, Gals Panic 4 re-release), Heroes (World ver EM-1), Jockey Club II (USA v4.00, bootleg), The Ocean Hunter (Japan, Revision A), The Pit (US set 3), Sauro (set 4, easier), VJ Dash (ver 1.0), WWF Superstars (Canada) and Yakyuu Kakutou League-Man (Japan, set 2) - New PinMAME games: Flipper Football (v1.03) - New drivers: akazukin.cpp, brglitz.cpp and gameace.cpp - New devices: centennial_sl01m_15_11194, centennial_sl02m_15_11194, centennial_sl04m_15_11194, cpcdigiblst, dac_5bit_bw, dac_5bit_r2r, ds1397, fdc37c93x, hpblp, i82371sb_ide, i82371sb_isa, i82439hx, jaleco_vj_pc, jaleco_vj_sound, ks0066_f00, mitsubishi_mf31m1_lycat01, ncr53c96, nlq401, rs232_densei_ups, sega_315_5006, vastar_viddev, virge_pci, virgedx_pci and z180csio - CPU . AMD Athlon XP: The Athlon processor has been updated to support writes in the as_opcodes space (i386\athlon.cpp) . Analog Devices ADSP-21xx: Fixed regression with ABS opcode S flag (adsp2100\2100ops.hxx). Fixes Fight End/Game Over tone fade-in issue in Killer Instinct and Killer Instinct 2 (ID 06643). . ARM7: Clean up various code using util::sext and multiply inlines (arm7\arm7*.cpp) . Fujitsu MB86235 "TGPx4": One more use of util::sext (mb86235\mb86235drc.cpp) . Hitachi H8: Made clock mode a scoped enumeration and fixed a save state issue (h8\h8_sci.cpp). Replaced sprintf with type-safe equivalents. . Hitachi H8/5xx: Fixed silly mistake in disassembly of illegal instructions (h8500\h8500dasm.cpp) . I386, MIPS and PPC: Wrap the constants (emu\divtlb.cpp) . MCS-48: Cleanup (mcs48\mcs48.h) . MCS-96: Translate first 256 bytes of main memory space to register space (mcs96\mcs96.cpp) . Mitsubishi M37450: Correct PC value following LDA ($zz, X) (m6502\om740.lst) . Motorola MC68000 . First try at wait states (emu\emumem*). Implemented the passthrough handler priority ordering, fixes a number of 68000 interrupt problems (emu\emumem.cpp). . New implementation, generated from the micro/nanocode. Fixed byte order in movep and bit number modulo on bxxx, thanks qkumba. The ext-derived over ALU operation should clear aluo (it's actually slightly more complicated but clearing is the end result). Fixes some address calculations in div (thanks qkumba again) (m68000\m68000.h). . Correct when interrupt testing happens, fixes stop. Fixed the vpa timings. Properly acknowledge interrupts when no mixer is present. Fixed the vpa wait state, make using irq 7/NMI a little more transparent. . Ensure start_interrupt_vector_lookup/end_interrupt_vector_lookup are called only once per lookup (m68000\m68000*.cpp). Ensure tas rmw cycle is actually uninterruptible enough (m68000\m68000*.cpp). . Move to sr/ccr must also update the internal flags (was preventing (MESS) Atari ST's 'The Union Demo' from booting) . Re-added debugger exception hook for interrupt/trap vectors and register IR for debug state. . Ensure exception hook is called before SP is updated . Bus and address errors do *not* disable the write part of the micro-instruction. Fixes the (MESS) Atari ST's delta force protections (Syntax Terror, Punish your machine). . Motorola MC68040: Reduce error logging spam for some unemulated instructions (m68000\m68k_in.lst and m68kops.cpp) . Motorola MC68HC11xx: Clean up interrupt code and generalize handling. Enable all timer output compare and count overflow interrupts (only TOC1 was fully supported before). Use standard interrupt handling for RESET vector and added XIRQ input. Fixed WAI handling and STOP recovery (mc68hc11\mc68hc11.cpp). . NEC Vxx: Implemented bitfield instructions INS and EXT (nec\necinstr.hxx) . Sony CXD8xxxx: Modernized logging in subdevices (cpu\psx\*) . Texas Instruments TMS32010 and TMS32025: Replaced sprintf with type-safe equivalents (tms32010\32010dsm.cpp and tms32025\32025dsm.cpp) . Zilog Z80180/Z8S180/Z80182 and Hitachi HD64180RP: Added CSIO emulation (z180\z180csio.cpp). Fixed SLP instruction (z180\z180ops.h). - SOUND . Atari C012294 POKEY: Improved some subtle aspects of keyboard handling . CD/DA: Added an actual write callback for audio playback end event. Fixed longstanding regression with get_channel_volume, rename it to get_channel_sample (sound\cdda.cpp). . DAC: Added generic 5bit DAC (sound\dac.h) . Ensoniq ES5503: Preserve fractional phase, allows high-freq sample play. Cleaner fix for preserving the full accumulator phase on looping. . Ensoniq ES5506: Converted comments to C++ style and added notes and additional logging (sound\es5506.cpp) . NEC uPD7759: Only detect mode change in idle state (sound\upd7759.cpp) - DEVICE . Floppy: Eliminated superfluous return value for load callback (imagedev\floppy.h). Encode certain tracks as single density in .d88 floppy format (formats\d88_dsk.cpp). . MOS 6522 VIA: Made input ports read transparently when corresponding interrupt flag is clear (machine\6522via.cpp) . PC Card Slot: Added callbacks for card detect, battery voltage and write protect to the PCCard interface. Added helpers to read/write data swapped (similar to the existing support in the ATA device). Updated the linear Flash PCMCIA card emulation to use the new card detection support (machine\linflash.cpp) . PCI: Added new config read/write functions to support bridges that allow software to issue both Type 0 and Type 1 config addresses (machine\pci.cpp) . SCSI CD-ROM: Added vendor-specific Read TOC command for Apple SCSI CD-ROM drive. Included track numbers in results of AppleCD Read TOC command (nscsi\cd.cpp and util\cdrom.cpp) - aerofgt.cpp: Splitted the driver class up a little. It's still a mess. - akazukin.cpp and vastar.cpp: Created a device to encapsulate the orca\orca40c.cpp video code. Better sprite flip handling (orca\vastar_viddev.cpp). - aleck64.cpp . Simplified N64 RDP disassembler. Removed all snprintf and reduced duplication (nintendo\n64_v.cpp). . Made out-of-range shift deterministic. Matches the SSE and VMX implementation. Fixes obvious rendering artefacts with the N64 RDP on AArch64 targets (emu\video\rgbgen.h and emu\validity.cpp). - amaticmg.cpp: Identified decryption keys for Multi Game I and Multi Game V. Removed tag lookup. - cchance.cpp and tnzs.cpp . Made lightweight base class for tnzs.cpp with only the parts shared with with cchance.cpp. Use a single view for RAM/ROM bank. Untangled inheritance a bit (taito\tnzs.cpp). . Reduced duplication in address maps. Got rid of bankdev and inaccessible RAM hiding under sprite chip (it used to use shares, but now allocates its own memory). Got rid of unnecessary I/O ports in Cherry Chance. - chihiro.cpp: The PCI devices shared with the Xbox have been updated to support DMA on the LPC bus (shared\xbox.*). - cvs.cpp, galaxia.cpp and quasar.cpp: Created a base class (cvs\cvs_base.cpp) from which cvs.c, galaxia.c and quasar.c derive - dec0.cpp: Cleaned up code. Suppress side effects of reads for debugger. Split up class, reducing optional object finders and replaced bankdev with views. - eolith.cpp, eolith16.cpp and vegaeo.cpp . Isolated the speedup code in the Eolith base state, so eolith16 and vegaeo driver aren't inheriting a pile of stuff they don't need. . Added basic support for partial screen updates . Fixed oversight causing stealsea to crash on start. Renamed base state class to make its purpose more obvious (eolith\eolith_speedup.cpp). . Set EEPROM write/erase timing to make KlonDike+ happy. Note: Game locks up on the title screen if you don't insert a coin soon enough before. - exprraid.cpp: Minor cleanup - flstory.cpp: Consolidated source files, replaced literal tags and removed some vestigial code from the old MCU simulation. Clean up driver a little. - gaelco.cpp and wrally.cpp: Fixed screen decryption (gaelco\gaelcrpt.cpp) - hng64.cpp . Improved Hyper Neo Geo 64 sprite drawing. Render sprites to intermediate buffer buffer and blend when mixing (fixes sprite/sprite priorities). Implemented mesh/checkerboard fake transparency (previously sprites using this were skipped). Improved precision of sprite scaling (fixes gaps and smoothness of scale in many places). Improved floor layer rendering for buriki and fatfurwa. Added preliminary sprite mosaic effect support. . Use 44.1kHz for sound stream, disable all sounds on device_reset and added QA notes. Misc notes (sound\l7a1045_l6028_dsp_a.cpp). . Improved sprite mosaic effect. Implemented mosaic effect in Y direction. Improved transition control register use for fade effects on Buriki One jumbotron. Updated notes. . Use 16-bit indexed format for 3D layer buffer (snk\hng64_3d.ipp) . Further video improvements: Identified 'blend' flag for 3D objects and added minimal implementation. Emulated 'split' tilemap effect. Don't draw sprites with zero zoom values, rather than using an unscaled sprite. Made 'sprite erase' code less aggressive (prevent it from wiping out palette values). Implemented 'texture scrolling' (used for glass and water effects). . Implemented raster interrupt (used to enable fatfurwa floor layer). Improved layer priorities - still needs a proper per-pixel mixer. Improved colour mixer effects - still imperfect, but highlights areas needing attention. . Improved rendering: Fixed Roads Edge name entry screen. Render sprites before mixing. Fixed texture scroll (visible on Roads Edge billboards). Added safety checks on texture fetches. . Implemented texture wrap size table. Fixes many texturing issues in Roads Edge and Xtreme Rally. . Added 'wraparound enable' bit to the tilemaps, this bit gets disabled on the Fatal Fury: Wild Ambition title screen and Roads Edge name entry screen, both cases where tilemap wrap definitely looks to need to be disabled. . Added a global disable for the tile replacement 'animation' (aka 'auto-anim') which is used to stop the crowd animating in some scenes of Buriki One attract. . Reenable using the lighting information in the final mix, plus attempt to match refresh frequency. - homedata.cpp and thunderx.cpp: Cleaned up a little. Replaced bankdev with views, cleaned up ROM banking and split up classes for fewer optional object finders. - jangou.cpp: Splitted driver into derived classes so all object finders are required and device_remove isn't necessary. Also use the data pending callback on latches as it's there. - kinst.cpp: Fixed regression with ABS opcode S flag (adsp2100\2100ops.hxx). Fixes Fight End/Game Over tone fade-in issue in Killer Instinct and Killer Instinct 2 (ID 06643). - leland.cpp: Modernized log function using logmacro - m72.cpp: Correct rom names and added IC locations for many sets - m92.cpp: Added IC locations and PLDs to most sets, minor rom label corrections. - micro3d.cpp: Record the timer input level always, even if the timer is off (machine\mc68901.cpp). - neogeo.cpp . Added a BIOS found on a restored Japanese Irritating Maze cabinet. Sadly it appears to be a hack by the arcade distributor who restored it. . Don't treat Puzzle De Pon! R! (puzzldpr) as a clone . New MC68000 implementation, generated from the micro/nanocode. Fixes Garou background loop sequence is broken on the Terry's 3rd round (ID 03954) and Neo Turf Masters horizontal shaking lines for the Japan course (ID 08349). - nmk16.cpp: Ignore lane select for main RAM writes for Vandyke and Bio-ship Paladin. This is necessary for high score entry to work. - plygonet.cpp . Updated string formatting code. Removed vestigial (and excessively slow) "new" execution code (cpu\dsp56156\*). Use digit grouping in large integer literals (dsp56156\dsp56ops.hxx). . Install memory directly when logging is disabled (small performance improvement) (konami\plygonet.cpp) - psychic5.cpp: Cleaned up and modernised a little. Splitted system-specific code into derived classes. - royalmah.cpp: Moved games with banked ROM to a separate class. Fixes clone Janyou Part II crashes with exception (ID 08580). - system1.cpp: Fixed SN76489A clocks for Gardia and Noboranka to match videos from PCB - taito_f3.cpp: Implemented line RAM palette offset effect. Improved line clipping effects and palette for landmakr, pbobble4 and quizhuhu (ID 00950, ID 01014, ID 02819). Fixes the surface of the space colony in zone E of Darius Gaiden does not have a gradient shadow (ID 01921). Cleaned up code a little and got some stuff out of the global namespace (taito\taito_f3_v.cpp). - taito_l.cpp: Use normal start/reset handlers rather than an elaborate maze of indirection - tetrisp2.cpp . Improved video emulation. Added partial emulation of PC for music games. . Dumped hard disk for Stepping 3 Superior . Fixed Stepping Stage Special text display (tetrisp2_v.cpp) - Amiga (alg.cpp, arsystems.cpp, mquake.cpp and upscope.cpp) . Simplified dsksync behaviour, makes swordsod and itcame to boot without hacks at very least (machine\amigafdc.cpp). . Rewrote the Amiga Gayle emulation, adding support for PCMCIA (machine\gayle.cpp). Fixed an issue with Amiga interrupts arriving at the wrong time. - Baby Suprem: Added basic layout file which makes the game playable. Promoted game to working. - Blood Bros.: Dumped missing gfx3 roms and uncomment gfx3 gfxlayout for clone Blood Bros. (Modular System) - Bozo's Pail Toss: Added coin inputs and sound. Actually map the handlers. - Cow Tipping: Avoid a collision between the internal status register and the interrupt status register (machine\mc68328.cpp) - I, Robot: Initialise mathbox stack after loading decoding opcode PROMs - Lethal Thunder: Added correct sound roms to clone Thunder Blaster (Japan) - Lucky Ball 96: Use the new Z180 CSIO - Moonquake: Preserve fractional phase, allows high-freq sample play. Cleaner fix for preserving the full accumulator phase on looping (sound\es5503.cpp). - Mortal Kombat: Fixed input descriptions for clones Mortal Kombat (rev 1.0 08/09/92) and Mortal Kombat (rev 2.0 08/18/92) (ID 08570) - NBA Jam: Correct and documented NBA JAM sound roms - Ninja Baseball Bat Man: Added correct sound roms to clone Yakyuu Kakutou League-Man (Japan, set 1) - The Ocean Hunter: Fixed rom loading for the Ocean Hunter sets, they now boot and run with GFX glitches. - PinMAME: Redumped Space Poker - Power Drift/Power Drift - Link Version: Use default assignment for "Gear Shift" input - Raiden Fighters 2: Added cartridge PAL dumps for Raiden Fighters 2 and clones - Shuuz: Fixed trackball regression - Snow Bros. 2: Correct MSM6295 pitch (ID 08578) - Soreike Kokolog and Soreike Kokology Vol. 2: Fixed reset readback and selection timeout (machine\mb89352.cpp) - Fixed rom names in cave.cpp, m72.cpp, m92.cpp, midtunit.cpp, nemesis.cpp, psychic5.cpp and system16.cpp - Description changes of The FairyLand Story (earlier) (ID 08579), Harley-Davidson and L.A. Riders (Export, Revision A), Harley-Davidson and L.A. Riders (Export, Revision B), Ken-Go (Japan), Ken-Go (World), Lightning Swords (World), Multi Game I (V.Stm 2.7), Multi Game V (AMGHU_VB3.65), Red Baron (revised hardware), Scud Race / Sega Super GT - Deluxe (Export, Revision A), Scud Race Plus / Sega Super GT Plus - Twin/DX (Export), Scud Race Plus / Sega Super GT Plus - Twin/DX (Export, Revision A), Sanrin San Chan (Japan, 315-5096), Spatter (315-5096), Virtua Fighter 3 (Japan, Revision A), Virtua Fighter 3 (Japan, Revision C), Virtua Fighter 3 (Japan, Revision D), Virtua Fighter 3 Team Battle (Japan), Virtual On 2: Oratorio Tangram (Japan), Virtual On 2: Oratorio Tangram (Japan, Revision A), Virtual On 2: Oratorio Tangram (Japan, Revision B), Virtual On 2: Oratorio Tangram (Japan, ver 5.4g), Virtua Striker 2 (Step 1.5, Japan, test/debug?), Virtua Striker 2 (Step 1.5, Japan, test/debug?), Virtua Striker 2 '98 (Step 1.5, Japan), Virtua Striker 2 '98 (Step 2.0, Japan), VJ Dash (Ver 1.2) and Yakyuu Kakutou League-Man (Japan, set 1) - Dipswitch fixes in babysuprem.cpp and midyunit.cpp - Renamed (flstoryj) to (flstoryo), (fruitstbc) to (fruitstbd), (fruitstbb) to (fruitstbc), (fruitstba) to (fruitstbb), (fruitstb) to (fruitstba), (kengoa) to (kengoj), (oceanhun) to (oceanhuna) and (vjdash) to (vjdasha) - MAME . VIDEO RENDERING SYSTEM . D3D HLSL regression fixes . Fixed regression in distortion shader (hlsl\distortion.fx). Return an alpha of 1 rather than texel alpha, fixes broken HLSL bloom since MAME 0.252 (hlsl\bloom.fx). Fixed double-drawing of screen data with D3D9 HLSL and screen scale/offset (hlsl\post.fx). . Fixed screen-container search function, fixes HLSL and Game & Watch combo causing failure to display and ACCESS VIOLATION's (render\d3d\d3dhlsl.cpp). Fixed downsample pass, fixes blocky vector bloom (render\d3d\d3dhlsl.cpp). Changed screen LUT application to be applied during the color convolution pass on raster systems (render\d3d\d3dhlsl.cpp). Fixed alpha value when clearing target (render\d3d\d3dhlsl.cpp). . BGFX: Only treat source file or more sepecific INI as higher priority than CFG file for setting screen chains (render\bgfx\chainmanager.cpp) . Fixed various OpenGL issues, fixes -nowaitvsync not working on Windows with -video opengl. Turned shader tool/shader manager into a class so multiple screens/windows don't nuke each other. Don't try to get supported extensions without a valid GL context with Windows OSD. Use per-context GL function pointers for shader manager and for all functions when using GL dispatch. Windows doesn't guarantee extension functions from one context are valid for another. Hopefully work with more GL implementations (opengl\gl_shader_mgr.cpp). . Fixed accumulated rounding error when drawing text (emu\rendlay.cpp) (ID 08573) . Made out-of-range shift deterministic. Matches the SSE and VMX implementation. Fixes obvious rendering artefacts with the N64 RDP on AArch64 targets (emu\video\rgbgen.h and emu\validity.cpp). . Swapped red and blue channels (fixes GitHub #11001) (artwork\lut-default.png) . Marked lots of things constexpr. Bitmaps don't throw exceptions on allocation failure, they just become invalid. Almost nothing in MAME actually checks for this (util\bitmap.cpp and util\palette.cpp) . MEMORY SYSTEM . First try at wait states (emu\emumem*). Fixed delegates on delay methods (emu\emumem.cpp). Implemented the passthrough handler priority ordering, fixes a number of 68000 interrupt problems (emu\emumem.cpp). . Added the target address space to translate and wrap the constants (emu\dimemory.cpp) . Added the forgotten key, allows to distinguish ram zones at the same address in different views, including recursively (emu\emumem_mview.cpp). . DEVICE . Allow base device to be specified directly in delegate setters (emu\devcb.h) . Added defer_access() method, which is useful for keeping the cpu in a loop restarting the current instruction to emulate waitstates (emu\devcpu.cpp). . LUA engine . Various LUA updates. Compile LUA as C++. When LUA is compiled as C, it uses setjmp/longjmpfor error handling, resulting in failure to unwind intermediate stack frames. Trying to ensure no objects with non-trivial destructors are in scope when raising a LUA error is error-prone. In particular, converting an exception to a LUA error becomes convoluted, and raising a LUA error from a constructor is effectively impossible. Updated LUA to 5.4.4 - this includes a brand-new garbage collector implementation with better performance. The main thing removed is the deprecated bitlib. Updated sol2 to version 3.3.0 - This adds support for LUA 5.4 and fixes a number of issues, including not correctly handling errors when LUA is built as C++.Updated LUAFileSystem to version 1.8.0 - this adds support for symbolic links on Windows, as well as LUA 5.4 compatibility. Updated LUASQLite3 to version 0.9.5 - this fixes issues in multi-threaded environments, as well as LUA 5.4 compatibility. Fixed double-free after attempting to construct a debugger expression from LUA with an invalid string, and exposed expression error to LUA in a better way. Added warning level print function to LUA. Fixed saving cheats with shift operators in expressions, although this code isn't actually used as there's no cheat editor. . Updated forked linenoise to latest upstream. This removes the need to force it to build as C++, and adds proper UTF-8 support for Windows. Since this is a fork of linenoise, there's no hope for getting LUA-linenoise to sync with it upstream. I made the bare minimum changes to keep it working, but didn't add bindings for new functionality (e.g. multi-line editing). . Cleaned up LUA thread context object a little and made it possible to pass any LUA object as a status value. Be more strict with concurrency and multiple contexts (mame\luaengine.cpp). . Better bindings for device_state_interface. This avoids creating a table every time the state property of a device is accessed, adds proper support for getting/setting floating/point state entries from Lua, calls the state entry's formatting method to convert to a string (for flags fields, etc.) and exposes more properties. This is a breaking change as the exposed properties on state entries have changed, and the value property has different semantics for floating-point state entries (mame\luaengine.cpp). . Fixed MSVC link failure due to mismatched signature (mame\luaengine.cpp) . Expose UI controls toggle state (mame\luaengine.cpp) . Run everything in coroutines: This lets you use emu.wait(...) directly without mucking around creating coroutines. Allow emu.wait to accept an attotime argument. Added a couple more wait helper functions (mame\luaengine*). . UI/OSD . Don't pump events when reading inputs. This was a drain on performance. If anything is trying to poll inputs in a loop, it needs to call input_update() to ensure it gets up-to-date state. Cleaner way of dealing with input updates. . Updated accumulating relative inputs exactly once per frame. This fixes "amplification" effects that would happen if the frame rate rose above 100 Hz (whether by unthrottling or otherwise). Synchronise with wall clock any time inputs are read. Not doing this has weird effects on relative inputs with frame skipping and contributes to unresponsiveness of menus. Reduced visual latency for mouse movement on menus when paused or skipping frames. The rest of the code changes to menus won't provide benefits until draw can happen after event handling. . Moved some windows-specific stuff into osd\windows\window.cpp/h. Do not raise fatal error on -video auto -videodriver wayland (osd\sdl\osdsdl.cpp). . Cleaned out more leftover crud and removed debug printfs (ui\ui.cpp) . Don't pass IPT_UI_BACK event to the implementation when dismissing the menu (ui\menu.cpp). Honour UI enable for machines without keyboards (ui\ui.cpp). Moved the UI active flag from the machine to the UI manager (ui\ui.cpp). . INPUT . Minor fix to error message (emu\ioport.cpp). Fixed a corner case in XInput DJ Hero controller turntable handling (input\input_xinput.cpp). . Modernised interface for enumerating DirectInput devices. Gets rid of some state in the winhybrid joystick module that's only used during initialisation (osd\modules\input\*). . Always use DirectInput with desktop window in background mode. There are multiple issues with what MAME was doing, but the most glaring is that it violates the DirectInput interface contract that requires the window associated with an open device must not be destroyed. See documentation for IDirectInputDevice8::SetCooperativeLevel: "This parameter must be a valid top-level window handle that belongs to the process. The window associated with the device must not be destroyed while it is still active in a DirectInput device". The previous code also prevented DirectInput controllers from working when using multiple windows if any window other than the first window had focus. Also fixed SDL builds not correctly recognising when all windows lose focus, and save state menu not appearing (osd\modules\input\*). . Changed config save/load behaviour for conditional fields. See GitHub #10937 for issues with current approach. Only save configuration for enabled fields. Apply loaded configuration to all matching fields (emu\ioport.cpp). . Work around inability to have stdcall non-capturing lambdas (fixes 32-bit MinGW build) (input\input_dinput.h). Adjusted heuristics to work better with newer DualShock/DualSense controllers (input\input_dinput.cpp/h). . PLUGINS . Added a couple of things to the layout script sandbox (plugins\layout\init.lua) . Fixed tab completion after linenoise update. Can now cycle through candidates by repeatedly pushing Tab (plugins\console\init.lua). . Use local sqlite3 library variable, fixes "Show DATs view" (plugins\data\database.lua) . Don't be so eager to create empty settings folders (plugins\autofire and plugins\inputmacro) . Interrupt callback rationalization: Make CPUs pass interrupt return PC as a second argument to standard_irq_callback. Added interrupt return PC to "Stopped at interrupt" message produced by debugger 'gint' command. Added messages to trace logs whenever interrupts are accepted. Attempt to step over interrupt routines for applicable debugger commands. Eliminated standard_irq_callback_member wrapper method. Updated many CPU cores to invoke standard_irq_callback at the start of or during interrupt processing, rather than at the end or when the input line changes. Removed IRQ callbacks for some input lines that never cause interrupts. MB88xx and MCS48: Added IRQ callbacks for internal interrupts. . Programmable Logic Device (PLD): Fixed a bug when logging parsed fuse values and added more useful error log messages (util\jedparse.cpp) . Got rid of a few of the remaining MCFG macros (ninjakd2.cpp and moo.cpp) . Got rid of bankdev: sega\model2.cpp and taito\taitocchip.cpp . Drop support for libc++ 6 altogether - it's missing std::unordered_map::extract (emu\validity.cpp) . Consolidated drivers in single files (exprraid.cpp, flstory.cpp, thunderx.cpp, truco.cpp and trucocl.cpp) . Updated documentation (machine\segacrpt_device.cpp) . Multi-Language: Updated Czech and Slovak UI translation. Removed some obsolete outdated translations (Czech\strings.po). . MiniMAWS: Let command-line romident identify media inside ZIP archives (scripts\minimaws\lib\auxverbs.py and minimaws.py) - Android MAME: Removed local copy of SDL source (3rdparty\SDL2\*) and update Android build support. Updated android-project\app\build.gradle. Updated SDL2 Java support glue code. Increased minimum supported Android API version to 24. Updated required asset files for Android app. Added proper tag for Android logging. Added SDL2 hint to make BGFX work on Android. - SDLMAME: Removed support for SDL < 2.0.6 - VGM player: Workaround for 7759 MD pin write (virtual\vgmplay.cpp) - Compiling . Reduced usage of sprintf. Replaced most simple uses of sprintf with type-safe equivalents. . Prevent use-after-free warning (GCC; 3rdparty\bgfx\examples\common\nanovg\fontstash.h) . Fixed a few "const qualifier has no effect" warnings. . Avoid the need for buildoptions -fpermissive since Clang doesn't like it (3rdparty\*) . Use the same rules for character literals and strings in C++. Escape 'high' Unicode characters found in strings rather than nuking them (tools\srcclean.cpp). . Correct placement of U integer suffix in definitions of shifted LOG_xxx constant macros . Retired the over-stretched "system type" flags. Functionally, the only difference between the system definitions is that GAMEL lets you specify an additional internal layout and SYST lets you specify a compatible system. COMP and CONS are just aliases for SYST - the aliases can be phased out. . Removed arcade.flt and mess.flt altogether . Traded away some unnecessary flexibility for more compact code. The stream objects must derive from std::basic_ostream now - they can't just be any old objects with the expected operators (util\strformat.cpp). - Debugger . Fixed debugger exception point hit message (debug\debugcpu.cpp) . Fixed oversight in recent refactoring (uninitialized variable) (debug\dvmemory.cpp) . Actually use scope-based profiling helpers. This makes the comment at the top of emu\profiler.h less dishonest and makes it easier to write exception-safe code. Got rid of some do { ... } while (0) loops that only existed so break could be used like a goto (emu\profiler.cpp). Abort if the profile stack overflows rather than throwing an exception. This is a developer feature and if it overflows, the code is broken. Calling a noreturn noexcept function generates less code than throwing an exception, which adds up (emu\profiler.cpp). Disable assertion that profiler isn't enabled/disabled with profile scope active (emu\profiler.cpp). 0.252 - New games: Bowling Gum, Computer Othello, Pikkari Chance, 'Saturn: Space Fighter 3D', Super Petrix (ver. 1P) and Vs. Super Captain Flag (Japan) - New Working games: Andromeda SS (Japan?) - New Non-Working games: Baby Formula 2, Baby Suprem, Bonus Talker, Doodle Jump Arcade (v1.16), Fruit Genie (Version 1-1-03) and Super Pirulo - New clones: Bank Panic (Tecfri bootleg), Born To Fight (set 2), DJ Girl (Promat license), Espgaluda II (2005/11/14.MASTER VER.), Find Out (Version 4.04, set 2), Gals Panic (unprotected, ver. 2.0), Games V25.1, Gaplus (GP7), Hydro Thunder (v1.00d), Hydro Thunder (v1.01b), Image Fight (Japan, bootleg), Jungle King (Japan, earlier, alt), Ms. Pac-Man ('Made in Greece' Enavi bootleg), Mutacion (Explomatic Spanish Moon Cresta bootleg), Omega Race (set 3, 7/27), PlayCenter Champions Tournament (v9.3, 'Celeron' hardware), PlayCenter Champions Tournament (v9.3, 'K6' hardware), Raiden II (Australia), SegaSonic Cosmo Fighter (World), Soreike! Anpanman Popcorn Koujou 2 (Rev A), T.T Spacian Part-2, Tekken 2 (US, TES3/VER.A), Tekken 3 (World, TET2/VER.C) and YoYo Spell (prototype) - New PinMAME games: Swords of Fury (LG-2) Germany - New drivers: babysuprem.cpp, cleartone.cpp and cothello.cpp - New devices: a2video_comp, a2video_comprgb, dac_3bit_r2r and ncr53cf96 - New mame.ini options: Added joystick_threshold (CORE INPUT OPTIONS), controller_map and background_input (OSD INPUT MAPPING OPTIONS), midiprovider (OSD MIDI OPTIONS) and networkprovider (OSD EMULATED NETWORKING OPTIONS). Removed menu (WINDOWS VIDEO OPTIONS) and global_inputs (INPUT DEVICE OPTIONS). - CPU . ADChips SE3208: Execution code cleanup. Removed most macros, replacing a few important ones with coretmpl inlines. Eliminated some unnecessary operand masking (cpu\se3208\se3208.cpp). . Hitachi HD6309: Fixed STBT instruction (m6809\hd6309.lst) . Intel 8085A: Fixed problem with DAA opcode (i8085\i8085.cpp) . Intel I386 . Fixed FPU log2 and atan (i386\x87ops.hxx and machine\i8087.cpp). Don't change x87 stack pointer until after memory access in case of a page fault (i386\i386.cpp, i386\x87ops.hxx). EMMS should trap too (i386\pentops.hxx). . Added fxsave and fxstor (i386\pentops.hxx) . MCS-48: Correct opcode cycles for IN A, DBB and OUT DBB, A (mcs48\mcs48.cpp). . Microchip PIC16C5x . Small cleanup (1-line comments C++ style and switch/case spacing). Removed bitpos arrays. Don't do a double read with swapf. Statusreg high bits are 1 on old GI PIC. Make it easier to write in the comment block. . Writing to reg 2 takes one more cycle. Improved RTCC pin timer count. Lowercase function names that aren't macros. Shorthand variable types. No need for m_old_data class variable. . Motorola MC68000: Added support for fmove.p (d16,An), Dn. Fixes frequent floating point errors running HP-UX 8 on HP9000/370 (m68000\m68kfpu.cpp). . National Semiconductor INS 8050 SC/MP: Rewrote disassembler. Changed CPU endianness (cpu\scmp\scmp.cpp). . NEC Vxx: Removed logerror on HLT opcode (nec\nec80inst.hxx and necinstr.hxx) . Texas Instruments TMS34010: Removed really old disassembler makefile . Zilog Z8002: Fixed m20 word I/O writes - SOUND . MIDI: Added option to select MIDI provider module (currently only PortMidi and the dummy module are available). Also put various things in namespaces, and fixed builds including SDL sound module with native Windows OSD (osd\modules\midi\portmidi.cpp). - DEVICE . 3Com EtherLink Plus: Avoid excessive 82586 resets (isa\3c505.cpp) . ATA: Reset error state on writing CS0 command. Also added constants for standby commands (not implemented yet) (ata\atahle.cpp). . Discrete Netlist: Stop using deprecated std::iterator template (netlist\plib\plists.h) . Floppy . Unify data_irq and other_irq (machine\upd765.cpp). Mitigate against rot in legacy floppy code (formats\d88_dsk.cpp and formats\dsk_dsk.cpp). . Eliminated use of sprintf for error messages (tools\image_handler.cpp) . K053246/K053247 Sprite Generator and K055673 Sprite Generator: Moved assert to work around Konami GX games failing to start - the code is still dodgy (konami\k053246_k053247_k055673.cpp). . Laser Disc: Always add video quad to screen container, adjust tint based on m_videoenable instead (machine\laserdsc.cpp). Don't try to allocate a 1MB object on the stack, fixes launching ldresample with no parameters causes SIGSEGV (tools\ldresample.cpp). . MC146818 RTC: Eliminated the set_binary_time configuration parameter . MOS 6522 VIA: Fixed VIA_IFR write. These 3 datasheets http://archive.6502.org/datasheets/mos_6522_preliminary_nov_1977.pdf, rockwell_r6522_via.pdf and synertek_sy6522_via_1978_jan.pdf state that: The IFR bit 7 is not a flag. Therefore, this bit is not directly cleared by writing a logic 1 into it. It can only be cleared by clearing all the flags in the register or by disabling all the active interrupts as discussed in the next section. But this is what current code does. If more updated datasheets are available, please share the links. . National Semiconductor MM58274C RTC: Correct operator precedence in calculating m_clk_set and allow disabling side effects of status read. . NEC uPD7810 . Fixed upd7810 serial input failing to detect the start bit of the next byte if there are zero serial idle state bits sent between the serial bytes to the upd7810 receive line. . Fixed Clang error: Shifting a negative signed value is undefined [-Werror,-Wshift-negative-value] (upd7810\upd7810.cpp) . Real Time Clock: Use device_rtc_interface to acquire base time (mc146818.cpp, mm58274c.cpp, rtc65271.cpp, s3520cf.cpp, smpc.cpp and timekpr.cpp). Added machine configuration option for synchronizing to UTC instead of local time (was previously only an option for mc146818, and always enabled for dp8573) (device_rtc_interface). . S3 86C3xx: Fixed remapping, allow (MESS) pcipc with ibm5170_hdd:win98se to boot without hacks in 256 color mode. Hookup VGA ports to MMIO, makes HW mouse cursor usable. Update BAR fix to catchup lower address config (video\virge_pci.cpp). S3 86C3xx: Implemented DPna, DSna, DSno, DSPDxax and DSo ROP opcodes. Fixed device_reset inheritance, make s3d to start in idle state. Fixed source pitch stride. Make bitblt_colour_step / bitblt_monosrc_step a bit less verbose. Stride follows up what's reading it. Clip against de bit. Initialize pattern variable in mono mode. Fixed mistake with shift << 8 in 8bpp pattern path, fixes (MESS) Windows tooltips/Windows XP welcome setup screen. QA notes (isa\s3virge.cpp). Added Sn ROP for (MESS) Windows 98 invert colors in Magnifier (isa\s3virge.cpp). . SCSI CD-ROM: Handle larger INQUIRY sizes ((MESS) Solaris 2.6 requests 48 bytes) (nscsi\cd.cpp) . VGA: Fixed pixel_xfer transfer shifting, makes Windows 95 to be usable in SVGA 8bpp mode (video\pc_vga.cpp). . Z80 DMA Controller: Correct/Improved end of block test (machine\z80dma.cpp). - cop01.cpp: Removed need to remove devices from machine config - cv1k.cpp: Use device_rtc_interface for system time acquisition (machine\rtc9701.cpp) - ddenlovr.cpp: Fixed AY8910 clock for Monkey Mole Panic according to video from PCB. Fixed AY-3-8910A, YM2413 and MSM6295 clock speed for animaljr, animaljrj, animaljrs, funkyfig, funkyfiga, hanakanz, hkagerou, mjchuuka, mjdchuka, mjreach1 and mmpanic - dkong.cpp: Added SN76496 sound device to Special Forces and Special Forces II. Cleaned up some recent changes. - hng64.cpp . Improved rendering: Filter out most (but not all) the bad polygons in roadedge/xrally by handling display list more correctly. Fixed 4bpp texture handling (used extensively for background details on sams64/sams64_2). Added 4bpp texture decode for easy viewing of the 4bpp texture pages. Fixed some texture palette issues connected to the 4bpp textures and incorrect enable bits being used (wheels and windscreen palette in racing games for example). Found a flag that seems to enable backface culling, improves bbust2 school bus without breaking roadedge. Cleaned up logging. . Implemented some missing Hyper NeoGeo 64 video features. Enabled additive blending in certain situations where it improves the visuals. Prevent background colour flickering in sams64/sams64_2 due to using wrong register bit. Added mosaic effect for tilemaps. . Generate X offsets at compile time - lucky37.cpp: Put the driver in an anonymous namespace - m10.cpp . Promoted Andromeda SS (Japan?) to working. Dumped missing maincpu rom 'am8'. Changed the ship and "ATTACK !" text colour and move "ATTACK !" to the top of the screen, to match the video from a working board. Set the dipswitch default so you don't receive free credits. Added 'Coinage' dipswitch. . Changed MOS6502 clock to 733khz for M15 (andromed, greenber, skychut and spacbeam). Added PORT_ADJUSTER for IRQ freq (andromed, ipminvad and skychut). Simpler IRQ handling for M10 (ipminvad). . Assume video timing for M11 is same as M15 (andromed and skychut) - m72.cpp . Dumped I8751 MCU for Battle Chopper . Correct MCU clock for clone Image Fight (Japan, bootleg), game boots. Added new maincpu rom ic111.9e, fixes some SFX don't play. Promoted game to working. - megaphx.cpp: Removed PPI reset workaround and removed vector table ram copy workaround - mlanding.cpp and taitoair.cpp: Give throttle control a distinct type, and don't auto-centre (taito\taitoio_yoke.cpp). - namcos12.cpp: Correct Soul Calibur region. Fixed Fighting Layer maincpu rom (ftl3vera.2e had 1 bad bit). - namcos2.cpp: Changed collective pitch control to AD Stick Z - naomi.cpp . Dumped missing data rom for clone The House of the Dead 2 (prototype) . Dumped data roms for clone Virtua NBA (prototype) - pgm.cpp: Use logmacro.h for logging - smd2144c.cpp: Documented that The Castle and clone The Rock are actually missing the H8S internal ROM - tickee.cpp . Added YM2151 to Rapid Fire and Mallet Madness, used for background music in Mallet Madness. Correct Rapid Fire/Mallet Madness pixel clock. . Added ticket dispenser and some dipswitches to Mallet Madness . Removed duplicate screen update function - tigeroad.cpp: Derived clocks from actual XTALs present of PCBs - toaplan2.cpp: Split up driver state class by hardware features. Made RAM-based text layer graphics and linescroll finders optional (toaplan\toaplan2.h). - tubep.cpp: Removed some tag lookups - usgames.cpp: Identified the Play and the Cancel buttons - 4nin-uchi Mahjong Jantotsu: Correct SN76489A clocks to match reference video - AGEMAME . Rearrange SVGA map layout for gamtor.cpp, allow Beetlemania to show video. . Fixed window/clear operations. Fixes graphical issues in SC5 games (bfm\bfm_bd1.cpp and bfm_bda.cpp). - The Dealer (Visco): Identified memory reset input as such (Attendant Reset/Clear?: Clears tilt condition) - Double Dragon II: Added layer priority PROM to clones. These systems work correctly using the same PROM as Double Dragon II, but marked as bad until dumps from these versions can be obtained. - Games Family: Replaced hard disk image with a correctly created CHD - Gladiator . Updated notes. gladiatr and clones start with one credit due to the way MAME initialises memory and the dodgy code the bootleg MCUs use to synchronise with the host CPUs. On an F3 reset they randomly start with one credit or no credits. More specifically, the 1st opcode in cctl and ccpu is nonsense. Whether it's a bad dump or done on purpose by the bootleggers is unknown. The JNT0 test makes no sense, and if the jump would have succeeded, the jump target is in the middle of another opcode. It makes more sense if the 1st byte was 0x22 instead of 0x26 and that would fix the coin issue. . Patch MCU roms to fix coin issue (ID 06475) - Jibun wo Migaku Culture School Mahjong Hen: Updated to use memory view instead of bankdev and other small cleanups - Major Poker: Removed tag lookups and bankdev use. Enabled save state support. - Mega Blast: Fixed shield powerup aura on option is missing (ID 08543) - Meijinsen: Correct audiocpu irq freq and added unemulated protection flag - Neo Mania: Replaced hard disk image with an official restore image - PC-based . Demoted HDD images to BAD_DUMP having bad CHS geometries (comebaby.cpp, midqslvr.cpp, playcenter.cpp, quakeat.cpp and unianapc.cpp) . Rearranged driver base setup and QA notes, for future conversion to PCI drivers ( bntyhunt.cpp, cavepc.cpp, chameleonrx1.cpp, comebaby.cpp, ez2d.cpp, frenzyxprss.cpp, gfamily.cpp, globalvr.cpp, midqslvr.cpp, neomania.cpp, newcanasta.cpp, odyssey.cpp, photoplys.cpp, photoplysx.cpp, playcenter.cpp, quakeat.cpp, radikaldarts.cpp, rawthrillspc.cpp, rbowlorama.cpp, rfslotspcpent.cpp, silverball.cpp, skopro.cpp, startouch.cpp, taitotx.cpp, unianapc.cpp and xtom3d.cpp). . Added an alternate BIOS set for Tokyo Cop . Rearrange igspc.cpp base setup and fixed CPU class family - Pengo: Sorted Pengo sets and changed scheme for short names. Export versions have replaced music/faster maze drawing. Japan versions have slow maze drawing and 'popcorn' music. The unencrypted sets are the newest releases we have of both versions - for Japan that is ROMs 5120-5127 and for export that is ROMs 5128-5135 (suggesting these unencrypted versions were both released at the same time). - PinMAME . Redumped sound ROM for Super Bowl . Added actual sound CPU ROM (baddump) for clone Cosmic Flash . Added note about 'Mundial 90' - PlayCenter Champions Tournament: Replaced current PlayCenter Champions Tournament hard disk dump with a restore image - Pushman: Verified ROMs/PROM dumps, dumped PLDs, correct clocks and rom labels. - Soldier Girl Amazon: Labelled debug controls - Super Wing: Used finder instead of tag lookup for memory bank and other small cleanups - Thunder Ceptor: Correct audiocpu type. Removed input tag lookups. - unknown game on TrueSys hardware: Fixed execution of 'or' instruction (cpu\nios2\nios2.cpp) - WWF Superstars: Fixed spriteram oob access - Fixed rom names in scregg.cpp, megaphx.cpp, merits.cpp, namcos11.cpp, tigeroad.cpp and usgames.cpp - Description changes of Baby & Bombo, Born To Fight (set 1), Bounty Hunter (GC-Tech Co., LTD), Disco Boy (Promat license), Fighting Layer (Asia, FTL3/VER.A), Find Out (Version 4.04, set 1), Great Gurianos (bootleg?), Jr. Pac-Man (Pengo hardware, bootleg), Pengo (Japan, 315-5007 type, rev A), Pengo (Japan, 315-5010 type, rev C), Pengo (Japan, bootleg), Pengo (Japan, not encrypted), Pengo (World, 315-5010 type, set 1), Pengo (World, 315-5010 type, set 2), Pengo (World, 315-5010 type, set 3), Pengo (World, not encrypted, rev A), Penta (bootleg), PlayCenter Champions Tournament (v9.3, 'Epox' hardware), Point Blank 2 (World, GNB5/VER.A), Point Blank 2 (World, unknown version), Racing Jam: Chapter II (GQ888AAA), Racing Jam: Chapter II (GQ888EAA), Racing Jam: Chapter II (GQ888JAA), Racing Jam: Chapter II (GQ888UAA), SegaSonic Cosmo Fighter (Japan), Soul Calibur (Asia, SOC14/VER.B), Soul Calibur (Asia, SOC14/VER.C), Soul Calibur (World, SOC12/VER.A2) and Usagi: Yasei no Topai Online (v2.04J). - Dipswitch fixes in terracre.cpp, konmedal68k.cpp, m10.cpp, thedealr.cpp and tickee.cpp - Renamed (espgal2a) to (espgal2b), (espgal2) to (espgal2a), (galpanicb) to (galpanicc), (galpanica) to (galpanicb), (galpanic) to (galpanica), (imgfightb) to (imgfightjb), (pengo) to (pengoja), (pengo2u) to (pengo), (pengo2) to (pengoa), (pengo3u) to (pengoj), (pengo4) to (pengoc), (pengo5) to (pengob), (pengob) to (pengojbl), (pengo6) to (pengojb), (sonicfgt) to (sonicfgtj), (soulclbraa) to (soulclbra), (soulclbrwb) to (soulclbrab) and (unkrfslt) to (bbombo). - MAME . VIDEO RENDERING SYSTEM . Updated BGFX, BX and BIMG. Fixed parameters for mingw build (scripts\src\3rdparty.lua). Save values of most BGFX sliders per-system. Back out some formatting changes to minimise conflicts (bgfx\chainmanager.cpp). Fixed compile error on mingw due to invalid setting for ASTCENC_SSE (scripts\src\3rdparty.lua). Suppress unused variabe warnings for SQLite3 - Clang 15.0.5 for Windows considers sqlite3_os_type unused (scripts\src\3rdparty.lua). Disabled SSE on all 32-bit builds - it assumes x86-64 integer ALU is available when using SSE (BIMG; src\3rdparty.lua). . Improved NTSC parameter descriptions and ranges in OSD: Correct units of some parameters (they are MHz, not Hz) and correct one default (color carrier should be 3.57 MHz, not 35.7). Use a step size of 1/8800 MHz for the color carrier so that the NTSC value of 315/88 MHz can be exactly represented (to float precision) (bgfx\chains\hlsl.json and render\d3d\d3dhlsl.cpp). . Major D3D and BGFX code refactoring and bug fixes . BGFX: Improved clearing and blending. Added prescale support. Fixes Artwork + screen combined with multiply-blend does not work on BGFX D3D9 (ID 07586), Artwork + multi-screen layer blending problem with BGFX (ID 07587) and BGFX files interacting poorly with art/overlays in warpwarp.cpp games (ID 08084). Fixed blend and tint handling (Github #1953). Support non-separated blend mode specification for BGFX effects (bgfx\blendreader.cpp). Reworked how horizontally-padded screen textures are handled. Likely fixes MT08512 and MT08505. Ensure that a texture's width margin is updated in all cases. Got rid of a lot of unnecessary object copying during setup. Fixed texture object lifecycle issues (render\bgfx). Fixed BGFX crash on toggling fullscreen on Linux. Allow BGFX to bounce cleanly when toggling fullscreen on Windows with multiple output screens/windows (windows\window.cpp). Refined configuration handling: Fixes toggle Full Screen bgfx screen chains reset to default (ID 07660). Sort screen chains by none, default, then collation order (rather than whatever order the filesystem yields). Correctly persist settings across fullscreen toggle when explicit screen chains are configured. If chains are specified for a single window only, apply them to all windows. Treat empty string for screen chain as "default" rather than crashing. Changed default setting for bgfx_screen_chains to an empty string so chain selection will be saved/restored per system with mame.ini file created by -cc with no other settings. Check window manager type returned by SDL (BGFX; render\drawbgfx.cpp). . D3D: Fixed tinting in HLSL post-processing mode. Avoid most redundant state-setting calls. Reduces D3D API calls by about 90% on fruit machine drivers. Assign SourceDims and QuadDims uniforms to only those effects that use them (d3d\d3dhlsl.cpp). Fixed prescaling without HLSL - WRL COM pointer has some surprises. Also added some additional error checking (render\drawd3d.cpp). . OSD: Turned video modules into actual modules, fixed various issues. Don't ignore the return status of OSD module initialisation. Attempt to fall back to an alternate module if the selected module fails to initialise. Log more useful diagnostic information at verbose level. Fixed BGFX crash on exit after toggling fullscreen. Also persist more settings than just the selected chains across toggling fullscreen. Turned video modules into OSD modules in the same sense as all the other OSD modules. They now use the same selection/fallback mechanism as all the other modules without special extra code in the OSD implementations. Untangled some object ownership mess. Windows own renderers, OSD objects own windows. Fixed a refrence loop that caused the first window object to always leak. Don't create renderer object until after underlying window has been created. Fixed issues with order of creation/destruction when toggling fullscreen or changing prescale in fullscreen with -switchres in SDL builds. Use more smart pointers in BGFX and Direct3D render modules. Most of the code now reutrns a smart pointer when handing over ownership or a naked pointer when retaining ownership. Fixed a few leaks and simplified cleanup code. Encapsulated various OSD modules better. Implemented probe for D3D module to detect lack of D3D9 sooner (render\drawd3d.cpp). . SDL: Fixed render\draw13.cpp upsetting older versions of Clang. Got rid of a simple_list (render\draw13.cpp). Fixed leaked/double freed texture data. The texture malloc's its own storage if the copy info doesn't have the passthrough flag set - the test was reversed (render\draw13.cpp). . DEVICE . Don't try to read unused value() during formatstr. max_length() has no use for value() either (emu\distate.cpp). . Moved a few macro and delegate definitions down into subclasses (emu\diimage.h) . Got rid of long-obsolete ROMENTRYTYPE_CARTRIDGE and improved comments on ROM entry type constants (emu\romentry.h) . Discrete Netlist: Updated static solvers (generated\static_solvers.cpp) . UI/OSD . Give menus an opportunity to recompute metrics on window resize. Also reworked calculation of menu geometry in general and limited width of left panel on system/software selection menus. Fixes images in the right panel and icons on the system/software selection menus not being scaled correctly when the window is resized. Fixes thumbnail preview is blurry on first load (ID 08539). Fixes bad font size selection at low resolutions when using bitmap fonts like uismall.bdf (GitHub #7105 = UI font not readable in native resolution on CRT). Fixes collapse/expand arrows on left/right panels of system/softwre selection menus getting bigger if the window is made narrower. . More UI cleanup: Got rid of more UI globals. Cache more metrics in system/software selection menus. Don't lose a BDF font specified on the command line when changing font size via the UI. For win32 debugger, behave as though most recent history item was just entered when restoring session state. . Allow menus to set required space above and below menu when metrics change. Fixes the initial bad layout on the system selecton menu, or bad layout after resizing windows [frontend\mame\ui\*]. . Added -listbios command to list alternate BIOSes for drivers and devices (frontend\mame\clifront.cpp, commandline\commandline-all.rst and commandline-index.rst) . Fixed bar graph display for fields with ranges that wrap through zero (ui\analogipt.cpp). Added a fixed-content text box menu class for future use (ui\textbox.cpp). . INPUT . Input code cleanup: dinput and xinput: Use proper item IDs for hat switches rather than "other switch" (input\input_dinput.cpp and input_xinput.cpp). xinput: Map right thumb stick to Z/rZ for consistency with SDL and DirectInput. Map triggers to additional absolute axes 1 and 2. Map start and back buttons to start and select (input\input_xinput.cpp). Added default assignments for player 5-10 start/select. Added default assignments for 5P-8P start and coin 5-8. . Swap ports and button bits at runtime. Avoids multiple input defs per-device (vcs_ctrl\paddles.cpp). . Better XInput and SDL game controller input enhancements: Added initial support for XInput controller subtypes, starting with driving, arcade and flight controllers. Check XInput capabilities to ignore buttons and hats that aren't present. Added preliminary SDL Game Controller joystick provider. Reconnection and mixed Game Controller/Joystick devices are unsupported. Show the input token for the highlighted control on input device menus. . Include mapping string in verbose output when enumerating SDL game controllers. Fixed names of face buttons on Switch Pro Controller with SDL Game Controller provider. Fixed names of DualSense controller buttons with SDL Game Controller provider (input\input_sdl.cpp). . Improved SDL Game Controller joystick provider: Allow fallback to joystick API for devices without game controller mappings. Detect controller reconnection. Force Switch Pro Controller ZL/ZR to act like buttons. Added button names for Google Stadia controller. Also fixed dumb copy/paste error on my part in Windows clipboard code (input\input_sdl.cpp and lib\osdlib_win32.cpp). . Added support for mapping files to sdlgame joystick provider and made it default with SDL. This changes behaviour, however I think it's a net positive: Most games using Steam Input or SDL2 to read game controllers have this behaviour, so users have come to expect it. This module is better at giving meaningful names to buttons on common controller, and assigning axes consistently. . Button/axis mapping files using a widely-used format are supported. The old behaviour is still available with '-joystickprovider sdljoy' if anyone wants it. The new option for controller mapping files is in the general OSD options rather than SDL options as it can be extended to DirectInput in the future (commandline\commandline-all.rst, input\input_sdl.cpp, input_xinput.cpp and lib\osdobj_common.cpp). . Work around bad XInput capabilities report from Retro-Bit Saturn pad (input\input_xinput.cpp). Recognise Joy-Con pairs with sdlgame input module (input\input_sdl.cpp). Added option to accept SDL game controller/joystick input when losing UI focus. Better button names for NVIDIA Shield and Xbox One controllers with SDL game controller module. Work around another observed invalid XInput capabilities report (input\input_xinput.cpp). . Added support for guitar and drum kit controllers via XInput (input\input_sdl.cpp and input_xinput.cpp). Improved XInput guitar support and added XInput Rock Band keyboard support (input\input_xinput.cpp). . Better XInput rhythm game controller support on Windows: Better support for extended controller type information. Support for velocity sensitive six-drum controller. Don't ignore button capabilites for keyboard controller (input\input_xinput.cpp). Still more XInput rhythm game controller support for Windows: Added support for DJ Hero turntable controller. Added support for Rock Band keyboard controller pedal. Fixed pickup selector switch on guitar controllers (emu\inputdev.cpp, input\input_winhybrid.cpp and input\input_xinput.cpp). Better scaling factors for XInput DJ Hero turntable dials (input\input_xinput.cpp). . Separateed analog axis deadzone and switch threshold settings, reduced default deadzone, and fixed a potential division by zero if the deadzone and saturation settings are equal (emu\inputdev.cpp). . Fixed behaviour of absolute analog fields where range passes through zero - it previously only worked for specific combinations of mask, minimum and default. Removed a workaround from universal/getaway.cpp that is no longer necessary (emu\ioport.cpp). . Fixed unintuitive behaviour when an absolute field is assigned an OR combination of a relative control folled by an absolute control (e.g. Mouse X or Joy 1 LSX). Also fixed reading axis input sequences where an axis code is followed by a switch code (these can only be produced by manually editing configuration files, not through MAME's UI), and fixed the returned type when multiple relative axes sum to zero (emu\input.cpp). . Fixed hat switches being stuck in up position when input is suspended in the background (osd\modules\input\input_dinput.cpp). . Renamed inputs that were causing confusion. "Bill" and "Track" were causing confusion for translators and hence likely causing confusion for many users, especially those who are not native English speakers. "Track" as an abbreviation for "Trackball" was frequently being mistranslated, e.g. in the sense of a CD track selection button or even in the sense of a railway track. There's no reason to abbreviate it. "Bill" in the US English sense as a banknote is too ambiguous and was causing confusion for translators. It's better to use the less ambiguous "Banknote". Correct Greek translations of "Trackball" (emu\inpttype.ipp). . Various input and OSD refactoring: OSD: Supply OSD object to modules on initialisation. Encapsulated some event handling in the OSD objects rather than leaving it in free functions. Put various stuff in namespaces. osd/modules/input: Enabled dinput, xinput and winhybrid modules for Windows SDL builds, and enabled background input for dinput and xinput (and by extension winhybrid) modules. Also fixed some COM and X11 resource leaks. osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match Windows, and exposed vertical and horizontal scroll as Z and rZ axes. Moved SDL UI event handling out of input devices into OSD object. osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's correctly identified as a relative axis (it maps to the scroll wheel equivalent). OSD: Added an option to choose the network provider module. Mostly useful if you build with both TUN/TAP and pcap support included, or if you want to disable emulated networking completely. emu/input.cpp: Use a better strategy for assembling input code names that uses fewer temporary strings and doesn't require use of the non-Unicode-aware space trimming function, fixes UI control names ending in certain characters cause display issues (ID 08552). osd/modules/input_dinput.cpp: Improved polling logic. OSD: Made various parts of the input code less dependent on concrete emu objects, and reduced inappropriately passing around the machine object. Made input modules less dependent on OSD implementation. Encapsulated some stuff and got rid of some vestigial newui and SDL1 support code. Cleaned up some interfaces. Moved OSD options classes to their own files. Prepare to remove main.h from emu.h - it's mostly used to get the application name, which the vast majority of emulated devices don't need to do. . Don't swallow text input with -keyboardprovider win32 (input\input_win32.cpp), fixes keyboardprovider=win32 breaks search on the machine list. . Clarified documentation of input options. Made explanation of interaction between device class enable options (-[no]mouse, -[no]joystick, -[no]lightgun) and automatic device class enable options (-*_device) more explicit. Also documented that -mouse_device mouse is set by default in both relevant places. Provided a better explanation of the purpose of -dual_lightgun (commandline\commandline-all.rst and windowsconfig.rst). . Added an introduction to the input system for developers (docs\source\techspecs\inputsystem.rst). Fixed regression in display of some joystick inputs (emu\input.cpp). . Split up interface classes into a few more files to reduce where the input device interface class needs to be included. Made OSD independent of concrete input_device class (osd\interface\input*). . Allow input devices to provide tokens for controls without standard item types and additional default input assignments. Fixes issues assigning Yen and Backslash on Japanese keyboards (osd\modules\input, emu\inputdev.cpp and emu\ioport.cpp). . Input refactoring: Made most default joystick assignments supplied by input modules. Input modules take available controls into consideration when generating default assignments (osd\modules\input and emu\inpttype.ipp). Added a separate "Back" UI input separate from Cancel. You may want an easier to hit combination for moving to the previous menu than for exiting or cancelling input. They both default to Escape (emu\inpttype.ipp). Added a UI Help control. Currently only used by analog inputs menu (emu\inpttype.ipp). Moved I/O port field type enum to its own header and sorted UI controls so they appear in a more logical order (emu\inpttype.h). Don't use UI Select to restore defaults - people should be getting used to the UI Clear input by now. UI Select cycles multi-value items instead (mame\ui\*). Don't use immediate cancel to cycle between clearing and restoring default assignment (use UI Clear instead) (ui\inputmap.cpp). Reduced the number of files needing to include the dreaded emu.h. Got some implementation out of headers (src\osd\*). . Fixed failure to display localised analog input adjustments help (ui\analogipt.cpp) . 3rdparty: Updated RapidJson . Removed unneeded bankdev.h include in various drivers (atarisy2.h, pcat_dyn.cpp, lependu.cpp, namco65.h, namco68.h and taito_l.h) . Consolidated drivers in single files (arcadecl.cpp, cbuster.cpp, clshroad.cpp, cop01.cpp, crshrace.cpp, cybstorm.cpp, f1gp.cpp, hyhoo.cpp, klax.cpp, liberatr.cpp, magmax.cpp, metalmx.cpp, metlclsh.cpp, nitedrvr.cpp, offtwall.cpp, orbit.cpp, pastelg.cpp, poolshrk.cpp, seicross.cpp, skydiver.cpp, skyraid.cpp, speedspn.cpp, sprint2.cpp, sprint8.cpp, starshp1.cpp, subs.cpp, rampart.cpp, relief.cpp, shuuz.cpp, skullxbo.cpp, tank8.cpp, taotaido.cpp, thunderj.cpp, toobin.cpp, triplhnt.cpp, tunhunt.cpp, ultratnk.cpp, videopin.cpp, vindictr.cpp, wolfpack.cpp and xybots.cpp) . Updated png.py to 0.0.20 (last version before Python 3.4 support dropped) (scripts\build\png.py) . Added check to catch I/O port fields using UI input types. Be a bit more paranoid with null pointer checks and also disallow empty strings in BIOS definitions (emu\validity.cpp). . Used standard ROM loading macros (dblaxle, freezeat, micro3d.cpp, segaybd.cpp and turbosub) . Better way to get module handle. This was leftover support for Windows 2000 and earlier that hadn't been cleaned up (windows\winutil.cpp) . Sorted mame.lst by project - location of all new additions has to make sense now (mame\mame.lst). . Replaced implementation of normalize_string with similar one in infoxml.cpp that returns a new std::string instead of a static buffer (mame\infoxml.cpp, util\xmlfile.cpp and mame\clifront.cpp) . Minor logging improvement (util\unzip.cpp) . Multi-Language: Updated Chinese, Greek, Japanese and Ukrainian UI translation. Added new message translations and fixed some spelling inconsistencies (language\Japanese\strings.po). - Compiling . Got rid of some unnecessary and contradictory member initialisations. Having members initialised in the constructor and also at declarations just leads to confusion (sega\315_5296.h and sega/segas18.h). . Put drivers in anonymous namespaces where applicable, updated #ifndef guards to the current tree structure. . Avoid use of non-standard variable-length arrays (render\d3d\d3dhlsl.cpp and tools\chdman.cpp). Use EQUIVALENT_ARRAY to avoid issues with std::size on member arrays, enable warnings for VLAs in C++ (scripts\genie.lua, input\input_xinput.cpp, render\d3d\d3dhlsl.cpp and tools\chdman.cpp). . Avoid variable-length array (font\font_sdl.cpp). De-conflict include guards (cpu\i386\i386.h, m68000\m68kmusashi.h and machine\i8087.h). . Got main.h out of emu.h as it's only used in a very small number of places, mostly for getting the application name. Added eminline.h to attotime.h as it's used without emu.h. Cleaned up forward declarations in emufwd.h a little. . Code cleanup (Regression test report generator): Eliminated use of sprintf to construct temporary strings. Pass string views instead of string references wherever convenient. Use util::path_concat for building paths (tools\regrep.cpp). . Fixed building with GCC-13 - Debugger . Don't skip a history item in Win32 debugger when initially pressing down (win\editwininfo.cpp) . Added GitHub issue template for bug reports (.github\ISSUE_TEMPLATE\bug-report.yml and config.yml) . Don't use paged formats for addresses in disassembler output unless logical address width exceeds page size (debug\debugbuf.cpp) . Removed long-obsolete macros (debug\debugcon.h) . Cascade positions of new debugger windows (debugger\debugwin.cpp and debugger\win\*) . Use ovectorstream instead of static char array and sprintf (debug\debughlp.cpp) 0.251 - New games: DECO Cassette System ROM Multigame (Darksoft, v17) and Nebula (DECO Cassette) (UK) - New Working games: Magical Pumpkin: Puroland de Daibouken - New Non-Working games: The Castle, Dream Rail, Heat Up Hockey Image (Ver.1.003R), Name Club Disney (J 980614 V1.000), Super 555 (English version V1.5) and Yataimura Shateki (1-player, Japan, Ver 1.000) - New clones: Bonze Adventure (World, prototype, older), DECO Cassette System ROM Multigame (Darksoft, v15), DECO Cassette System ROM Multigame (Darksoft, v16), Final Fight 30th Anniversary Edition (World, hack), Gun.Smoke (USA and Canada, 1986-01-20), Pocket Gal / unknown card game, Power Instinct 2 (US, Ver. 94.04.08, set 1), Racing Jam (GQ676AAC), Racing Jam (GQ676EAC), Racing Jam (GQ676UAC), Racing Jam: Chapter 2 (GQ888AAA), Racing Jam: Chapter 2 (GQ888UAA), The Rock, Slots (Belgian Token, Game Card 95-750-452), Tee'd Off (World), Thrill Drive (ABB), Thrill Drive (ABE), Thrill Drive (ACB), Thrill Drive (ACE), Thrill Drive (EDE), Thrill Drive (JCB), Thrill Drive (JCE), Thrill Drive (UDB), Thrill Drive (UDE), Thrill Drive (ver GE713JAB), Thrill Drive (ver GK713EAB), Thrill Drive (ver GK713EEB), Thrill Drive (ver GK713K*B), Thrill Drive (ver GM713JAB), Thrill Drive (ver GN713JAB) and Thrill Drive (ver GP713JAB) - New PinMAME games: White Water (P-6) - Removed games: White Water (P-8 P-1 sound) - New drivers: megadriv_sunmix.cpp, smd2144c.cpp and splendor.cpp - Removed drivers: bgt.cpp - New devices: ad7520, atmega1280, atmega168, atmega2560, atmega328, atmega644, atmega88, attiny15, gamegear_io_port, h8s2241, h8s2242, h8s2245, h8s2246, konami_gn676a_lan, konami_gn676b_lan, konppc_jvs_host, mc68ez328, megadrive_io_port, micom_xe_1a, mpu4okisnd, sms_diypaddle, sms_hypershot, sms_md6button, sms_mdpad, sms_megamouse, sms_rs232, sms_segamouse, sms_teamplayer and sms_xe1ap - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed video: https://youtu.be/IbqizEFk-_E - CPU . ADChips SE3208: Added exception hook callback . Hitachi HD647180X MCU: Fixed typo on port E read . Motorola MC6809, Hitachi HD6309 and KONAMI CPU . Removed tuple implementation used by the EXG and TFR instructions of the 6809, 6309 and Konami CPUs. It was unnecessary because fundamentally these are implemented with a single, 16 bit wide temporary register. Changed how the 6809 CPU processes the invalid 8 to/from 16 bit register combinations. Their behavior now matches actual hardware. I used page 66 and 138 of Darren Atkinson's 6x09 manual (https://colorcomputerarchive.com/repo/Documents/Books/Motorola%206809%20and%20Hitachi%206309%20Programming%20Reference%20%28Darren%20Atkinson%29.pdf) for reference. I also double checked with my own hardware (http://tlindner.macmess.org/?p=945). Checked for regressions using (MESS) CoCo + NitrOS-9, Aliens and 88Games. . KONAMI CPU: CPU has internal /4 divider. Enable 'hd6309 native mode' (m6809\konami.cpp/h). Match indexed opcode timing with hd6309, fixed carry flag on LSRD & ASRD and looped shift opcodes indexed mode (m6809\konami.lst). Don't use m_opcode as a temp variable and no need for those safe_shift functions (m6809\konami.cpp). Added IMM_IM from hd6309. . Ricoh RP2A03/G: Don't read from unmapped apu regs - SOUND . AY-3-8910A PSG: Added machine().describe_context() to some logerror . RP2A03/X APU . Updated stream before reading statusreg, fixes (MESS) nes [summer92] drum sounds play wrongly (ID 05996). Can no longer read from anything but status register (sound\nes_apu.cpp). Added RP2A03 soundcpu bus conflict to Donkey Kong 3 (ID 08520). . Implemented frame counter interrupt. Fixes (MESS) nes [ajyureir] and nes [portopia] have no sound and nes [dquest and doordoor] locks up (ID 06186) (ID 07625) (ID 07658). Removed wrongly placed dpcm irq clear. - DEVICE . ADC0808 A/D Converter: Fixed logerror . Floppy . Clear data_irq in fifo_r/w. Also disable clearing data_irq in msr_r. Fixes (MESS) pc8801 Donkey Kong 3 (ID 07199). Clear wc if the found sector has the correct cyl in the address field (machine\upd765.cpp). . Fixed floppy sound spin sample oob access (imagedev\floppy.cpp), fixes (MESS) Apple II memory access violation in floppy device sound emulation (ID 07974). . Imgtool: Removed some unused functions (imgtool\stream.cpp) . Intel 8259 PIC: Treat slave IRQs as level-triggered even when LTIM = 0 . K052109 Tilemap Generator: Changed invalid logerror m_maincpu->pc to machine().describe_context() . Trident TVGA9000: Converted isa\trident.cpp to logmacro, override trident_set_video_mode in tvga9000_device, makes Paint 'N Puzzle to set a sane refresh rate. . VGA . Fixed Read Mode 1 target color for comparison. Fixes at least transparent pen sprite-like in (MESS) ibm5150:lombrall and ibm5150:intsocch and missing text in ibm5150:pcglobe sets. . Preliminary implemention for line_compare in vga_vh_ega mode . Yamaha V9938 VDP: Implemented V9958 registers 26 and 27 for graphic23 and graphic4 modes, fixes (MESS) FS-A1FX + Space Manbow choppy background scroll (ID 08466). - cave.cpp: Added PLD dumps for Gogetsuji Legends and Power Instinct 2 - cham24.cpp, famibox.cpp, multigam.cpp, nes_arcade_bl.cpp, playch10.cpp and vsnes.cpp . Improved behavior of OAM writes during PPU rendering (video\ppu2c0x.cpp). Noticeably improves (MESS) NES High Hopes demo. . Use documented recommended default DIP switch settings for vsnes.cpp. Affects hogalley, smgolf, suprmrio, vsbball, vsgradus, vsgshoe, vssoccera and any clones. Made separate DIP switch settings for vssoccer and smgolfj, as their starting point values differ from other sets. Fixed incorrect Zapper-like trigger behavior and made gun alarm wire machine configurable. . Added save state support and cleaned up code for cham24.cpp . Cleaned up sprite RAM DMA trigger trampolines in all drivers . Added separate gun trigger input to playch10.cpp - cobra.cpp, hornet.cpp and nwk-tr.cpp . Refactored JVS host code into a common device for Konami PPC400 series systems . Implemented JVS for nwk-tr.cpp. Replaced JVS code and hooked up Windy2 I/O for Fighting Wu-Shu 2nd! (cobra.cpp) . Rewrote GN676 LAN board emulation. Now passed boot checks and supports x76 security chip (konami\konami_gn676_lan.cpp) (ID 07241). . Added variants for Thrill Drive, Racing Jam and Racing Jam: Chapter 2. Added Thrill Drive security chips. . Improvements for Silent Scope and Teraburst: Implemented ADC12138 for Silent Scope board. Made the GN680 return gun controls for Teraburst (ID 00315). Added note about IRQ0 and IRQ1 bits in sysreg_w. Fixed regression causing Teraburst's gun I/O to fail boot test. - decocass.cpp . Added handcrafted BIOS C (UK) (single byte changed) because 'Nebula (DECO Cassette) (UK)' requires region C. Fixed bit error in cnebula tape image. . Cleaned up BIOS macros. Reworked BIOS macros, added missing 'older' types and sorted new to old. Undo lopsided tables (older version of srcclean) (dataeast\decocrpt.cpp). . Added support for a different aftermarket multi-game kit - epos.cpp: Added tristar8000 coin latch - equites.cpp and splendor.cpp . Merged driver files. Removed function name prefixes. . Moved Splendor Blast, Splendor Blast II and High Voltage to its own driver. Disconnect splndrbt_state from equites_state. Get rid of tag lookup in screen update. - exidy440.cpp: Zerofill more class variables (exidy\exidy440_a.cpp) - highvdeo.cpp: Make blit_ram writeonly, fixes heap-buffer-overflow (ID 08488) - konmedal.cpp: Correct K051649 audio clocks - mappy.cpp: Undid DIP switch setting reordering - namcond1.cpp: Clean up some indentation in YGV608 VDP - namcos22.cpp: Apply preliminary lighting to more games (namco\namcos22_v.cpp) - neptunp2.cpp: Removed skeleton driver bgt.cpp and fold sets into neptunp2.cpp - othello.cpp: Removed a tag lookup - seta.cpp: Restrict partial updates in the Seta X1-012 tilemap chip to Caliber 50, it breaks too many other places due to unmasking some bad timing problems in the drivers. This fixed corrupt graphics in Zombie Raid (ID 08530). - tehkanwc.cpp . Added shared addressmap. Removed old joystick hack, soundcpu reset timer hack and unneeded trampoline for writing leds. Merge driver files. Reset msm together with soundcpu. Removed tag lookups. . Removed patch in Tee'd Off to avoid the game jumping in shared memory. Made palette RAM write-only. - tmnt.cpp: Removed useless define. Improved sound NMI. - toaplan1.cpp . Clean up coin counter/lockout handling. Correct Z180 cpu speed for Fire Shark and Vimana. . Soundlatch modernization for Fire Shark. Set mcu unmap_value_high, fixes continue music keeps playing after you select yes in clone Same! Same! Same! (ID 08522). Quantum can be reduced after adding latch device. - turbo.cpp . Correct sprite priority (74148 decoder) for Buck Rogers. Fixes ship disappears behind the growing blue warp effect at the end of each stage, enemy ships are drawn behind the distant mountains at Round 1 Sector 7 and ship appears ahead of the mothership, instead of behind it, making targeting it difficult at Round 1 Sector 8 (ID 08513). Added configuration to select (upright) button machine or (cockpit) pedal machine. Correct cabinet type DIP switch. Improved internal artwork score panel (layout\buckrog.lay). . Added 3D scope shutter output to Subroc-3D. Swap Joystick left/right. Added internal artwork 3D scope views. Put score panel view in a collection. Added viewfinder to internal artwork. Improved internal artwork score panel (layout\subroc3d.lay). . Added pedal to Turbo. Made shifter start in low gear by default. No need for port_0_r. Clarified 'Lives' DIP switch setting name. Increase steering sensitivity. Added the gear shift to internal artwork. Improved internal artwork score panel (layout\turbo.lay). . Minor code simplification (sega\turbo_v.cpp) - vendetta.cpp: Changed irq to assert/clear (matches schematics), set_vblank_int to screen_vblank and 'not really vblank' flag to obj dma busy. Correct some input ports. - zaccaria.cpp: Fixed cocktail mode. Small cleanup. - zerozone.cpp: Added PCB infos and derived clocks from actual XTALs, pending measurements. - Aero Fighters: Removed possible spriteram oob access in clone Aero Fighters (bootleg, set 1) (ID 08481) - AGEMAME . Fixed bad logging format string (barcrest\mpu4vid.cpp) . Encapsulated sampled sound board as a device (barcrest\mpu4.cpp and barcrest\mpu4vid.cpp) . Got rid of duplication in non-video and video system drivers. Set sound output to mono to match the circuit schematics. Added Alarm tone circuitry. . Correct duty cycle on reset. Preserve internal data buffers on POR (machine\roc10937.cpp). . Added duty effects to layouts for fruit machines using ROC10937 and clones. . aristmk6.cpp: Converted video to RGB565 + misc notes . bfm_sc1.cpp and bfm_sc2.cpp: Added flash mode and correct character table (bfm\bfm_bd1.cpp). . bfm_sc4.cpp: Added brightness and flash controls (bfm\bfm_bda.cpp) . gamtor.cpp: Offset bit 1 in VGA memory bankswitches to char RAM, make it to display initial POST messages. . globalfr.cpp: Back out fading effect, hardware doesn't support it (layout\globalfr.lay). . jpmimpct.cpp: Registered variables for state saving. Preserve internal data buffers on POR (machine\roc10937.cpp), fixes blanked display in JPM IMPACT. Made VFD fading effect mroe realistic for JPM IMPACT games. . jpmsys5.cpp: Correct VFD type to 16-segment for JPM System 5 games. Start working on inputs inputs and added reel interface. - Combat School: Fixed spriteram oob access in clone Combat School (bootleg) (ID 08492) - Cow Tipping: More MC68328 CPU cleanups. Improved LCD controller emulation. Fixed reported Coverity issues (machine\mc68328.cpp). Added a generic device to handle MC68328-style LCD output signals. - Crazy Climber: Hand fixed a couple of GFX ROMs for clone Crazy Climber (ManilaMatic bootleg). Still need a proper dump from another PCB. - Crime Fighters: Fixed 'Lives' default dipswitch - Dirt Devils: Added drive board ROM from Scud Race to Dirt Devils (uses the same PCB) - Donkey Kong 3: Added soundcpu bus conflict and extended write tap range (ID 08520), fixes Stanley death sound only plays partially. Fixed clone Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware) crash regression. Added notes about dkong3 sound. - Express Raider: Identified unknown prom as gfx layer priority - Ginga NinkyouDen: Reduced 6840 clock. Fixes tempo of the music is unusually fast (ID 08514). - Gomoku Narabe Renju: Removed unused input ports - Magical Pumpkin: Puroland de Daibouken: Added steering wheel and SFZ63B mapper. Promoted game to working. - Mega Drive (hshavoc.cpp, megadriv_acbl.cpp, megaplay.cpp, megatech.cpp and puckpkmn.cpp) . Added Mega Drive I/O port controller device (sega\mdioport.cpp). Adapted all Mega Drive hardware drivers to work with the new I/O port device and moved based Mega Drive 68k peripherals to a common address map function. . megadriv_acbl.cpp: Added base machine configuration to attach an optional I/O port to the EXP port and moved some stuff to derived classes. Use more derived memory maps and fewer driver init functions. . puckpkmn.cpp: Eliminated dependency on other Mega Drive arcade bootlegs. Cleaned up code, register local class member for save states and suppress side effects for debugger. Considering boards without the U6612 exist, assume it uses a Mega Drive II VDP clone with integrated FM sound. . Further broke up base Mega Drive class. Created a light-weight base class with just the core functionality, used for "Genie" hardware (Puckman Pockimon). Moved built-in controller emulation to a derived class so it isn't lurking underneath the consoles with pluggable controllers. Moved the Sun Mixing Mega Drive bootlegs to their own source file - they're substantially different, not using the I/O blocks for input. . Moved YM sound out of "core" Mega Drive state and made more devices required in "base" Mega Drive state. Made (MESS) Pico/Copera derive from "core" Mega Drive state so they aren't carrying unnecessary baggage (all it uses is the CPU and VDP). . Turned controller ports into slots - no need to simulate controllers in the cartridge device (bus\megadrive\jcart.cpp). . Simplified wired 6-button controller to use a single input port per pad (sega\megadriv.cpp) - Meijinsen: Added voice DAC - Mr. Jong: Fixed horizontal sprite offset when screen is flipped - Omega Race: Replaced input lookup table with encoder function - Operation Tiger: Fixed poly rom region size, fixes heap-buffer-overflow (ID 08500) - Paint 'N Puzzle: Fixed Trident TVGA9000 display. Converted isa\trident.cpp to logmacro, override trident_set_video_mode in tvga9000_device, makes Paint 'N Puzzle to set a sane refresh rate. Pass timer irq status. Added ID inputs. - Parodius DA!: Fixed KONAMI CPU looped shift opcodes indexed mode (m6809\konami.lst), fixes Parodius DA! background in Level 7 & 9 does not move (ID 08531). - Sprint 8: Cleaned up input code. Made the gear shift levers toggle inputs. This needs to be confirmed from a manual. - Starship 1: Set thrust control to slow when not pushing button - Thunder Ceptor: Correct cpu type. Let's default view to 2D mode for clone 3-D Thunder Ceptor II. - Fixed rom names in bfm_sc2.cpp, exprraid.cpp and nwk-tr.cpp - Dipswitch fixes in crimfght.cpp, epos.cpp, hornet.cpp, mappy.cpp, neptunp2.cpp, sprint8.cpp, turbo.cpp and vsnes.cpp - Description changes of Bonze Adventure (World, newer), Bonze Adventure (World, older), Bonze Adventure (World, prototype, newer), DECO Cassette System ROM Multigame (David Widel), Ginga Ninkyouden (set 1), Ginga Ninkyouden (set 2), Gokujou Parodius: Kako no Eikou o Motomete (ver JAD), Gun.Smoke (Germany, 1985-11-15, censored), Gun.Smoke (Japan, 1985-11-15), Gun.Smoke (USA and Canada, 1985-11-15, set 1), Gun.Smoke (USA and Canada, 1985-11-15, set 2), Gun.Smoke (USA and Canada, 1986-04-08), Gun.Smoke (World, 1985-11-15) (bootleg), Jingling Jiazu, Magical Pumpkin: Puroland de Daibouken (Japan 960712), Parodius Da!: Shinwa kara Owarai e (World, set 1), Parodius Da!: Shinwa kara Owarai e (World, set 2), Parodius Da!: Shinwa kara Owarai e (Japan), Parodius Da!: Shinwa kara Owarai e (Asia), Power Instinct 2 (US, Ver. 94.04.08, set 2), Puckman Pockimon (set 2), Racing Jam (GQ676JAC), Racing Jam: Chapter 2 (GQ888JAA), Racing Jam: Chapter 2 (GQ888EAA), Skull Fang - Kuhga Gaiden (Japan 1.09), Skull Fang - Kuhga Gaiden (Asia 1.13), Thrill Drive (EDB), Thrill Drive (ver GE713UFB), The Tower (DECO Cassette) (Europe), White Water (P-8), Youkai Douchuuki (Japan, old version (YD1)) and Youkai Douchuuki (Japan, new version (YD2, Rev B)) - Renamed (gunsmokeub) to (gunsmokeuc), (gunsmokeua) to (gunsmokeub), (hkittymp) to (mpumpkin), (pwrinst2) to (pwrinst2a), (racingj) to (racingjj), (racingj2) to (racingj2e), (teedoff) to (teedoffj), (thrilld) to (thrilldja), (thrilldb) to (thrilldbja) and (thrilldbu) to (thrilldgeu) - MAME . VIDEO RENDERING SYSTEM: Fixed a crash when toggling fullscreen, fixes numscreens 2 followed by Alt-Enter crashes MAME in windowed mode (ID 08535). Check for a non-null renderer before issuing a draw request to the renderer (osd\windows\window.cpp). . MEMORY SYSTEM: Fixed MAME 0.250 (Fixed range tracking when creating a subdispatch) broken memdump (emu\emumem_hedr.ipp and emumem_hedw.ipp) . LUA engine: Removed the "type" property from system driver metadata. It's effectively deprecated. . DEVICE . Fixed wrong value when used with callexport in device_state_entry::format (emu\distate.cpp) . Allow command-line creation for tapes/memory cards/printouts (imagedev\cassette.h, magtape.h, memcard.h and printer.h) . Made image devices not request read access when creating files for write-only devices (emu\diimage.cpp) . UI/OSD . Load INI files for the 'empty' driver that runs under the system selection menu (frontend\mame\mame.cpp and mameopts.cpp) . Don't magically substitute environment variables when opening files (osd\modules\file\posixdir.cpp, posixfile.cpp, winfile.cpp and winrtfile.cpp) . Added option types for single and multiple paths. Substitute environment variables in values from defaults and INI files. Fixed overriden default option values from OSD (util\options.cpp). . Removed hard-coded list of multi-path options (ui\dirmenu.cpp) . Work around reevaluate_default_card_software trying to purge XXX_default values. Reword some comments (emu\emuopts.cpp). . Clear BIOS option setting when reloading empty pseudo-driver to prevent spurious ROM loading errors for this and other drivers (frontend\mame\mame.cpp). Fixes running a NeoGeo game, causes MAME to display false warning in other games afterwards (ID 08292). . Rationalised right panel behaviour: Removed the "default" state for the image tab where it would show different things for different types of machine - it just confused users. Remember the selected tab and image in the right panel. State for system selection menu is remembered across sessions. Last used state for software selection menus is remembered across sessions. Within a session, state is remembered separately for recently selected machines, similarly to the way filter selection is remembered. Fixed some focus order issues in the software selection menu (mame\ui\*). . Fixed issue when copying options that don't carry values (util\options.cpp) . Got rid of the check for "arcade" systems - it broke managing favourites for the slotted Neo Geo (ui\inifile.cpp). . PLUGINS: Don't substitute environment variables in path options (plugins\*) . SOFTWARE LIST: Give "slot_default" option values default priority rather than maximum priority, so command line option specifications can override these. Silently ignore software list-provided default options or values that don't exist in a particular system configuration (emu\emuopts.cpp). . Reworked Sega Master System controller bus (bus\sms_ctrl\*). Rationalised interface, got rid of TH from the "pulled" lines, and extended to support output on all data lines. Renamed to be less specific as the same interface is shared by multiple consoles. Removed a lot of unnecessary indirection through I/O ports and multiple levels of inversion in peripheral emulation that was obfuscating the code. Made Rapid Fire Unit switches toggles so they can be assigned to controller buttons and switched on/off easily during gameplay. You can still see/change the current state in the Toggle Inputs menu if you don't want to assign buttons. Implemented idle timeout in Furrtek 4-player Master System adapter. Improved crosshair tracking in Graphic Board, added ability to raise/lower pen, and greatly cleaned up code. Fixed paddle controller when used with export consoles. Added 3-button and 6-button Mega Drive control devices. . Fixed bug where copyInto failed to copy nodes (util\xmlfile.cpp) . Consolidated drivers in single files. Minor cleanups (equites.cpp, silkroad.cpp, sshangha.cpp and tehkanwc.cpp) . Multi-Language: Fixed some errors in Brazilian Portuguese translation . Added preliminary guide for would-be contributors (docs\source\contributing\*). Expanded C++ guidelines following suggestions by P. Mackinlay. - Compiling: #include shuffling (imagedev\harddriv.h, util\harddisk.cpp/h and imgtool\imghd.h) - Debugger . Improved session save/restore. Qt: Save expression for memory and disassembly views. Made command history behave more like Cocoa. Added expression history and made behaviour more like Cocoa. Refactored global notifications to use signals. Added missing override qualifiers in Qt debugger. Win32: Increased command/expression history size to 100 items. Cocoa: Save state of device info viewer windows. Hopefully fix undefined names in Cocoa debugger. Qt/Win32/Cocoa: Save command/expression history. 0.250 - New Working games: Alpine Surfer (World, AF2 Ver.A, set 1), 'The Crystal Maze (v1.3, Datapak) (MPU4 Video)', 'The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video)', 'The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video)', Quizard 3 (v3.2, German, i8751 DE 132 D3), Quizard 3 (v3.4, German, i8751 DE 132 A1), Quizard 3 (v3.4, German, i8751 DE 132 D3), Quizard 4 Rainbow (v4.0, German, i8751 DE 142 D3), Quizard 4 Rainbow (v4.1, German, i8751 DE 142 D3), Quizard 4 Rainbow (v4.2, Czech, i8751 TS142 CZ1) and Quizard 4 Rainbow (v4.2, German, i8751 DE 142 D3). - New Non-Working games: Bin Bin Bingo (Japan, terminal), El Circulo, Fantastic Car (M89 hardware), Golden Chip, Hello Kitty Magical Pumpkin (Japan 960712), La Perla del Caribe (V1.0, Catalonia), Multi Points, UFO Catcher 7 (V20011112), 'unknown 960606-5 based machine (set 2)' and 'unknown Sega air hockey game' - New clones: Alpine Surfer (World, AF2 Ver.A, set 2), Bloxeed (Japan, earlier) (FD1094 317-0139), Championship Bowling (location test), Cherry Master (bootleg, Game FB55 Ver.2), Deroon DeroDero (earlier, set 2), Domino Man (set 2), Fantastic Car (Micro-87 hardware), Galactica-2 (Moon Alien Part 2 bootleg), Gallop - Armed Police Unit (Japan, M84 hardware), Gradius IV (ver AAA), Gradius IV (ver AAC), Gradius IV (ver UAA), Gradius IV (ver UAC), Gradius IV: Fukkatsu (ver JAA), Ibara (2005/03/22 MASTER VER.., '06. 3. 7 ver.), Mini Golf (11/25/85), NBA All The Way (ver EAA), NBA All The Way (ver EAB), NBA Play By Play (ver AAA), NBA Play By Play (ver JAB), NBA Play By Play (ver UAA), NBA Play By Play (ver UAB), Netchuu Pro Yakyuu 2002 (NPY1 Ver. C), New Cross Pang (set 2), Pitapat Puzzle (set 2), Punching Kid (Japan), Quizard (v1.0, Italian, i8751 IT 11 I2), Quizard (v1.2, Italian, i8751 IT 11 I2), Quizard (v1.7, Italian, i8751 IT 11 I2), Quizard (v1.8, Italian, i8751 IT 11 I2), Scud Hammer (ver 1.4), Silent Scope (ver AAA, Ver 1.00), Silent Scope (ver AAB, Ver 1.20), Silent Scope (ver AAC, Ver 1.30), Silent Scope (ver AAC, Ver 1.30, GQ871 Voodoo 2 video board), Silent Scope (ver AAD, Ver 1.33), Silent Scope (ver AAD, Ver 1.33, GQ871 Voodoo 2 video board), Silent Scope (ver EAA, Ver 1.00), Silent Scope (ver EAB, Ver 1.20), Silent Scope (ver EAC, Ver 1.30), Silent Scope (ver EAC, Ver 1.30, GQ871 Voodoo 2 video board), Silent Scope (ver EAD, Ver 1.33), Silent Scope (ver EAD, Ver 1.33, GQ871 Voodoo 2 video board), Silent Scope (ver JAA, Ver 1.00), Silent Scope (ver JAB, Ver 1.20), Silent Scope (ver UAC, Ver 1.30, GQ871 Voodoo 2 video board), Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01), Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02), Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03, GN715 Voodoo 1 video board), Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01), Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01, GN715 Voodoo 1 video board), Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02), Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02, GN715 Voodoo 1 video board), Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01), Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02), Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03), Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01), Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02), Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02, GN715 Voodoo 1 video board), Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03), Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03, GN715 Voodoo 1 video board), The Simpsons (4 Players World, set 3), Soreike Kokology, Super Invaders (Emag bootleg set 2), Super Real Magic (V6.3), Teraburst (1998/02/25 ver JAA), Teraburst (1998/02/25 ver UAA), Teraburst (1998/07/17 ver HEL), Teraburst (1998/07/17 ver JEL), Trivia (Questions Series 18), Trojan (location test) and Twins (older) - Removed games: Krokha - New drivers: elcirculo.cpp, segaufoh8.cpp and unkhockey.cpp - Removed drivers: krokha.cpp - New devices: hornet_jvs_host, lh5045, mixer, tc58fvt800, windy2_1l6b, windy2_2l12b, windy2_2l6b, windy2_2l8b and windy2_quiz - CPU . Analog Devices ADSP21062 'Sharc': Use util::sext and other bit utility functions (sharc\sharc.cpp). Be a bit more paranoid about extreme values of bit6 and len6 (non-DRC). Use rot[lr]_32 some more (sharc\sharcops.hxx). . ARM: Use rotr_32 for handling unaligned reads . Hitachi SH-1/2/3/4 and Intel i960KB: Use rotl_32 and rotr_32 for executing rotate instructions . Hyperstone E1-xxxx: Provide new helper functions for extracting signed 16-bit halves (e132xs\e132xs.h). Fixed missing bit mask causing UBSAN warnings (e132xs\e132xsfe.cpp). . IBM PowerPC 40x: Made PPC400 series external serial clock configurable. Also use actual configured system clock for serial timer when selected rather than hard-coded number. . Intel 8080/8080A/8085A: Removed cputype enum and possible time travel issue (i8085\i8085.cpp) . Motorola MC68000: Added a level of transparent indirection, turn the reset output line into devcb. Musashi's BUSERROR line is edge-triggered (m68000\m68kmusashi.h). Prevent CI/CEI bits from remaining set after MOVEC to CACR. Fixes (MESS) Macintosh LC not booting (The code tries to flush the instruction cache by adding #8 to the old value of CACR, which doesn't work if CI reads back as 1) (m68000\m68k_in.lst and m68kops.cpp). . National Semiconductor INS 8060 SC/MP II: Fixed unreliable order of execution in JMP instruction (cpu\scmp\scmp.cpp) - SOUND . Atari C012294 POKEY: Removed m_SKCTL assignment hack in device_start and issue a potgo at device_reset instead, fixes (MESS) Atari 1200XL booting to self-test no matter J1 setting. . FM core: Updated YMFM library to latest (https://github.com/aaronsgiles/ymfm). Fixed uninitialized member causing slight jitter in timing (GitHub #10414: -wavwrite output seems to differ on each run), OPNA behavior when LFO is disabled and a PCM playback wraparound bug due to incorrect auto-incrementing. . ICS2115 WaveFront Synthesizer: Fixed volume calc sign overflow (ID 08475) . Sound Interface: Don't force lower samplerate for dummy sound output module (emu\sound.cpp). When using LUA instead of OSD to obtain samples, we don't need sound output, but we need decent sample rate. - DEVICE . AT&T DSP32C: Simplify int24 operator logic (dsp32\dsp32ops.hxx) . ATA: Added alternate CS0/CS1 handlers with built-in byte swapping for big-endian host systems (ata\ataintf.h) . Buffered 8/16/32-bit Sprite RAM: Added length() getter (video\bufsprite.cpp) . Flash ROM: Retire variant enum (machine\intelfsh.cpp). Added Toshiba TC58FVT800 Flash for (MESS) Phusion. . Floppy . Fixed FDC Busy bit for overlapped commands (machine\wd_fdc.cpp), fixes (MESS) TRS-80 Model I graphic adventures with custom boot loader fails (ID 08464). Note: The problem here is that the end of the previous command clears the BSY status bit which makes it appear to system code that the second command has completed (when it has not). . Added FDC Write Protect Delay (machine\wd_fdc.cpp), fixes (MESS) error booting OS-9 on Color Computer 2B (ID 08258). . JVS device: Fixed chaining resets and always cascade broadcast messages to slave devices (machine\jvsdev.cpp) (chihiro.cpp (jvs13551.h), cobra.cpp, hornet.cpp, ksys573.cpp, naomi.cpp) . JVS Host: Fixed size of encoded packet with escaped bytes (machine\jvshost.cpp) (chihiro.cpp, cobra.cpp, ksys573.cpp and sega\mie.h). Replaced JVS impl in hornet.cpp with jvs_host device. . K007121 Sprite/Tilemap Controller: Small cleanup . K033906 PCI bridge: Fixed usage for Voodoo 2 . SCSI Bus (new): Fixed hard disk formatting for (MESS) ABC 1600 by introducing configurable byte transfer and command delays into the NSCSI system (machine\nscsi_bus.cpp). Fixed NSCSI regression in CPS3 driver (machine\nscsi_bus.cpp). . Serial EEPROM: Correct data out level (machine\eepromser.cpp) . Taito TC0100SCN: Fixed longstanding color regression (taito\tc0100scn.cpp) with World Grand Prix - 20pacgal.cpp: Better values for unknown SERVICE and EEPROMIN port bits. Fixed bug in 25pacmano where after 64 plays, copy protection prevents game from starting (tracked at address 0x3E-0x3F in EEPROM). Ports of 25pacman left as-is, no hardware to verify with. Changed 20pacgal ports verified on hardware, though makes no noticeable difference to gameplay. - alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp: Propagate 68k reset lines, fixes Guru Meditation regression in arsystems.cpp. - arcadecl.cpp, atarisy1.cpp, atarisy2.cpp, cyberbal.cpp, eprom.cpp, gauntlet.cpp, toobin.cpp, vindictr.cpp and xybots.cpp: Correct 2804 EEPROM address range (ID 06829) - armedf.cpp, galivan.cpp and terracre.cpp . Emulated the analog filtering for the audio from the FM chip and the two R2R DAC channels, as well as emulating the additional analog filtering and mixing on the YM2203 version of Terra Cresta. . Consolidated some common configs down into their own machine_config sections and reduced a lot of code duplication. Also fixed audio volume balance to compensate for the fact that the YM3012 Serial DAC for the FM chips outputs at half the peak to peak voltage of the R2R DACs, and the YM2203's SSG channels have another, different peak output level as well. This also adds filtered sound to Legion. - balsente.cpp: Identified Mini Golf (10/8/85) and Name That Tune (Bally, set 1) as the 3/31/86 version. Added actual Mini Golf (11/25/85). Fixed rom names and documents label format for various sets. Documented currently undumped Mini Golf Cocktail (10/18/85) set. Miscellaneous documentation updates and / or corrections. - banprestoms.cpp: Identified RTC. Added preliminary Sharp LH5045 RTC device. - bartop52.cpp and maxaflex.cpp . Removed shadowed m_pokey in maxaflex.cpp, declared in atari_common_state. . Misc connection notes (atari\gtia.cpp) - bestleag.cpp, calorie.cpp, copsnrob.cpp, drtomy.cpp, ironhors.cpp, m90.cpp, sslam.cpp and vortex: Fixed spriteram/videoram oob access (ID 08482) (ID 08484) (ID 08485) (ID 08489) (ID 08493) (ID 08494) (ID 08495) (ID 08501) - bestleag.cpp and ironhors.cpp: Calculate spriteram bounds end - blueprnt.cpp: Fixed negative index array access (ID 08487) - cdi.cpp: Promoted Quizard 3, Quizard 4 and clones to working. - cinemat.cpp: Simplified code for right-shifting 12-bit values arithmetically (ccpu\ccpu.cpp) - gladiatr.cpp: Use std::swap_ranges for descrambling GFX ROMs - hornet.cpp . Replaced JVS impl with jvs_host device. Scope reduction and cleanup. Added new regional variants of games. Added Konami Windy 2 JVS I/O device. . Added security EEPROM (X76F041) for Gradius IV and NBA Play By Play. Added NVRAM data for Gradius IV, Teraburst and Silent Scope series. Fixed 4 player cabinet type in NBA Play By Play (ID 08058). - konamim2.cpp: Fixed malformed logerror (konami\3dom2.cpp). Fixed probable copy-and-paste error (konami\3dom2_te.cpp). Replaced rand() -> machine().rand(), fix coverity scan CID 375713 violations. - leland.cpp, qix.cpp, starfire.cpp and vertigo.cpp: Zero-filled variables (ID 08471) (ID 08476) (ID 08477) (ID 08490) - m72.cpp: Correct ROM labels. Added PCB locations and PLDs to various sets. Added main board BPROMs to most sets. - midtunit.cpp and midyunit.cpp: Fixed protection ram size off by 1 (ID 08497) - namcos22.cpp . Fixed array out of bounds on text tiles (ID 08480). Separate classes for some of the SS22 games. . Added text layer mid-screen x scroll updates, poly alpha pen mask and object brightness adjust. Do cz_adjust/bri_adjust differently. . Fixed zsort overflow problem. S22 fog is per poly (ID 08296). Window clip doesn't need to be float. Changed poly.h rendering from float to double (fixes occasional polygon stitching issue in skybox). Improved S22 draw_direct_poly. Possible overflow on texture bank (shouldnt happen). . Reword game strings (region 1st). Use common helpers for integer manipulation and more appropriate use of inline/static/constexpr (namco\namcos22.h). . Added Alpine Surfer prg rom banking. Redumped maincpu roms. Fixed major problems. Promoted game to working (ID 00776). . Fixed Cyber Cycles speed dial (ID 08329) - naomi.cpp: Added Dev BIOS v1.2. Note: BIOS for games debugging and testing using NAOMI dev.box. Basically it's same as retail BIOSes but have enabled monitor/debugger and does read region code from DSW2/3/4. BAD_DUMP note: we got only 1st half of ROM, 2nd half was handcrafted from same revision retail BIOS. - nes_arcade_bl.cpp: Added emulation for NES side of hardware - nss.cpp, sfcbox.cpp and snesb.cpp: Clean up image loading handlers (nintendo\snes.h) - thepit.cpp: Mask sprite cliprect with main cliprect. Don't access invalid gfxnum in tilemap.get_info_debug (emu\tilemap.cpp), fixes accessing debug tilemap viewer in thepit.cpp crashes MAME (ID 07576). - seta.cpp: Force a partial update for tilemaps whenever the scroll registers change (seta\x1_012.cpp) - needed for a crude raster effect when entering underground areas on Caliber 50. - ssingles.cpp: Some minor cleanups - vectrex.cpp: Clean up image loading handler (vectrex.h) - AGEMAME . Added IC4 port B shadowing of serial and 50Hz signals (barcrest\mpu4.cpp). Also fixed AY8913 chip select routine that relied on the wrong PIA and improved save state support. . A few small formatting cleanups and scope reductions (barcrest\mpu4.cpp). Fixed regression for games using sampled sound (barcrest\mpu4.cpp). . Promoted clone 'The Crystal Maze (v1.3, Datapak) (MPU4 Video)', 'The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video)' and 'The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video)' to working - Atari 4 Player Football: Tilemap was too large for tileram (ID 08478) - Battle Lane! Vol. 5: Fixed garbled Player 2's sprites in cocktail mode (ID 08440) - Blasteroids: Fixed playfield tilemap size (ID 08486) - Bosconian: Mark 'Bosconian - Star Destroyer (version 5)' PROMs as good - Championship Bowling: Cleanup. Identify input select flag and use it instead of peeking into NVRAM. Reverse trackball X axis to agree with service mode display. Eliminated runtime port tag lookups. - Cherry Master I: Use std::swap_ranges in clone Lucky Line III init function - Crazy Balloon: Fixed Player 1's first balloon is stuck in Cocktail mode (ID 08437) - Crazy Climber: Redumped gfx roms for clone Crazy Climber (ManilaMatic bootleg) - Defender: Dumped PROMs for clone T.T Defender. Note: Same as Colony 7 with different labels. The type is NEC B425, equivalent to 82S141 and 74S474. - Dice - The Dice Game!: Added some unknown dipswitches (ID 08413) - Dodge City: Dumped CRT-209 module for clones dodgectya, dodgectyb and dodgectyc. - Dr. Tomy: Added PCB layout and correct clocks based on actual OSCs on board - Field Combat: Fixed gameover screen in cocktail mode - Flower and Gomoku Narabe Renju: Safer intermediate sound mixer buffer size (ID 08496) - Frantic Fred: Identified steering wheel scheme for Frantic Fred (Release 2) and clone Frantic Fred, make it sorta playable. TODO: Implement steering wheel properly, identify ticket, identify extra button. Steering wheel goes thru irq1, catches input thru bit 4 of $4500010, fires off at intervals until it reaches target value. What kind of steering wheel this really uses? Impossible to emulate if we don't know the timer resolution. - Grudge Match: Fixed clone Grudge Match (v00.80, prototype) input port import - Krazy Bowl: Fixed cocktail mode flip screen has graphical glitches (ID 08454) - Legend (SNES bootleg): Combined the 3x bad dumps of rom u37 to have a working one, until another PCB can be found. - Mag Max: Added analog filtering for the four mixed 'meta-channels' from the 9 AY-3-8910 channels and redid the audio gain control to be more based on component values, fixes explosion sound is different from PCB (ID 07622). - Net Wars: Fixed missing graphics in cocktail mode or Player 2 (ID 08457) - Oli-Boo-Chu: Added clone Punching Kid and verified color prom. - Paint 'N Puzzle: Hookup correct SVGA card (Trident TVGA9000) - Portraits . Apply some WIP cleanups, make it playable. Make color palette to be b&w for the time being, being more visible to the eye than the previous washed out attempt. . Mask sprite area against defined playfield clip rectangle. Fixed global sprite Y positions, they mostly follow up current scroll value except for some edge cases. . Attempt to fix sprite priorities. Make tilemap bank more logical (?) bitwise. Simplify scroll hookup. TODO: Desperately needs a PCB analysis, particularly for color PROM formation. Fix colors. Several unknown sprite bits. Find a cheat that disables player collision detection. - Return of the Jedi: Fixed disappearing gfx when deathstar explodes (ID 06793) - Son Son: Consolidated driver in single file. Minor cleanups. Changed vsync to 55.40Hz. Source of measurements: https://github.com/MikeS11/Arcade-Sonson_MiSTer/issues/1#issuecomment-1312089702. The value originally set must have been a typo, according to Corrado Tomaselli. The original PCB alternates between 55.37Hz and 55.43Hz and it is Corrado's suggestion to run it at 55.40Hz. - Starship 1: Don't draw starfield outside cliprect (ID 06830) - Tee'd Off: Mark maincpu and sub roms as BAD_DUMP - unknown game on TrueSys hardware: Preliminary execution core and gdb support (cpu\nios2\nios2.cpp) - Vs. Mahjong: Added missing DIP switch settings - World Grand Prix: Fixed longstanding color regression (taito\tc0100scn.cpp) - X-Men: Fixed corrupt or invisible sprites in clones X-Men (6 Players ver ECB) and X-Men (6 Players ver UCB) (ID 08470) - Fixed rom names in balsente.cpp, itech32.cpp, jrpacman.cpp, m72.cpp, midtunit.cpp, shangha3.cpp and snesb.cpp - Dipswitch fixes in aquarium.cpp, balsente.cpp, cocoloco.cpp, lethalj.cpp, m90.cpp, portrait.cpp, sub.cpp, vulgus.cpp, vsnes.cpp and witch.cpp - Description changes of Alpine Surfer (World, AF2 Ver.A, set 1), Chicken Shift (11/23/84), Deroon DeroDero (earlier, set 1), Domino Man (set 1), Double Dragon II: The Revenge (World), Double Dragon II: The Revenge (Japan), Double Dragon II: The Revenge (US), Double Dragon II: The Revenge (US, bootleg), Double Dragon 3: The Rosetta Stone (US), Double Dragon 3: The Rosetta Stone (bootleg), Double Dragon 3: The Rosetta Stone (Japan), Double Dragon 3: The Rosetta Stone (prototype), Grand Cross (v1.02F), Hat Trick (11/12/84), Last Bronx: Tokyo Bangaichi (Japan, Revision A), Master Boy Version II (Italian, rev A), Mini Golf (set 1), All namcos22.cpp games, Name That Tune (Bally, 3/31/86), Netchuu Pro Yakyuu 2002 (NPY1 Ver. B), New Cross Pang (set 1), NFL Blitz (ver 1.21, Dec 5 1997), Off the Wall (Sente) (10/16/84), Pitapat Puzzle (set 1), Power Flipper Pinball Shooting (v1.33), Scud Hammer (older version?), Silent Scope (ver UAA, Ver 1.00), Silent Scope (ver UAB, Ver 1.20), Silent Scope (ver UAC, Ver 1.30), Silent Scope (ver UAD, Ver 1.33), Silent Scope (ver UAD, Ver 1.33, GQ871 Voodoo 2 video board), Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03), Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03), Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01, GN715 Voodoo 1 video board), Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02, GN715 Voodoo 1 video board), Spiker (5/5/86), Spiker (earliest?), Super Invaders (Emag bootleg set 1), Team Hat Trick (11/16/84), Teraburst (1998/02/25 ver HAA), Trivial Pursuit (Genus II Edition) (3/22/85), Trivial Pursuit (Think Tank - Genus Edition) (2/12/85), Trivial Pursuit (Young Players Edition) (3/29/85), Twins (Electronic Devices license, newer), Twins (Electronic Devices license, older), Twins (newer), Ufo Robo Dangar (4/09/1987) and 'unknown 960606-5 based machine (set 1)' - Renamed (alpinesa) to (alpines), (gallop) to (gallopm72), (ibara) to (ibarao), (mastboyib) to (mastboyiv2), (minigolf2) to (minigolfb), (nametune2) to (nametunea), (nbapbp) to (nbapbpja), (netchu02) to (netchu02b), (nstocker2) to (nstockera), (scudhamm) to (scudhamma), (snakepit2) to (snakepita), (spiker) to (spikera), (spiker3) to (spiker), (spiker2) to (spikerb), (sscopea) to (sscopeua), (sscopeb) to (sscopeub), (sscopec) to (sscopeuc), (sscoped) to (sscopevd2), (sscope2b) to (sscope2ubvd1), (sscope2c) to (sscope2ucvd1), (terabrsta) to (terabrstaa) and (trivia12) to (triviag1a) - MAME . VIDEO RENDERING SYSTEM . Don't access invalid gfxnum in tilemap.get_info_debug (emu\tilemap.cpp), fixes accessing debug tilemap viewer in thepit.cpp crashes MAME (ID 07576). Removed problem with nullptr math in tilemap_t::draw_instance and added another safety check for priority bitmap (emu\tilemap.cpp). . Fixed locale-sensitive number handling (emu\rendlay.cpp), fixes locale setting causes .lay parser error in (MESS) ChessSystem R30 and Kasparov Renaissance (ID 08521). . MEMORY SYSTEM . Fixed range tracking when creating a subdispatch (emu\emumem_hedr.ipp and emumem_hedw.ipp) . Don't forget to select the correct page when installing handlers, especially dynamically (emu\emumem_mview.cpp). . TIMER SYSTEM: Rename getter functions to match emu_timer (machine\timer.h) . UI . Fixed display of software favourites (ui\selgame.cpp) . Use path concatenation utility function (ui\state.cpp) . PLUGINS . Use clear_value to release I/O port fields (plugins\autofire\init.lua and plugins\inputmacro\init.lua) . hiscore.dat update (plugins\hiscore\hiscore.dat) . Added optimised rotate helpers to osd\eigccx86.h. These perform better than the constexpr function when the value is not known at compile time. If the value is known at compile time, you probably shouldn't be using these utilities anyway. . Ensure queue->thread will have at least 1 work_thread_info in it. For platforms which do not support threads (i.e. emuscripten), queue->thread might not have any work_thread_info's added to it. This is bad as osd_work_item_queue_multiple will access queue->thread[0] when queue->threads == 0, and subsequently crash as the queue has no items in it (osd\osdsync.cpp). This fixed all sets in cv1k.cpp and coolridr crashed when OSDPROCESSORS is set to 1 (ID 06828). . Consolidated drivers in single files. Minor cleanups (aquarium.cpp, commando.cpp, crospang.cpp, dribling.cpp, exedexes.cpp, funybubl.cpp, galspnbl.cpp, gcpinbal.cpp, higemaru.cpp, mugsmash.cpp, sonson.cpp, srumbler.cpp, stlforce.cpp, mrjong.cpp, quizdna.cpp, quizpani.cpp, sub.cpp, timelimt.cpp, vulgus.cpp, witch.cpp and zerozone.cpp) . Multi-Language: Updated Brazilian Portuguese, Czech Slovak and Greek UI translation. - Compiling . Removed mul_16x16 function (osd\eminline.h) . Removed #include from emu\emu.h and moved it into source files that still require it . Updated various source files to use swapendian_int16. Use core inline functions as appropriate (util\aviio.cpp and util\msdib.cpp). . Worked around a couple of MSVC warnings reported in GitHub #10488 (nintendo\vsnes.cpp and (MESS) sinclair\tsconf_m.cpp and ussr\dvk_kcgd.cpp) . Added utility function for sign-extending values of arbitrary width (util\coretmpl.h) . Use util::sext and other bit utility functions (es5510\es5510.cpp, ks0164\ks0164.cpp, mb86235\mb86235.cpp, sharc\sharc.cpp and video\upd7220.cpp) . Updated instructions for adding mame package repository in MSYS2 (docs\source\initialsetup\compilingmame.rst) . Fixed issues identified by Coverity: Removed unnecessary comparison that can't be true from 'HC05 timer handler (m6805\m68hc05.cpp). Fixed flag test in logging (machine\z80scc.cpp). Fixed use-after-move in functoid constructor (emu\devdelegate.h). Fixed integer promotion issue in ZIP16 member header handling (util\unzip.cpp). Got rid of custom allocator functions that have alignment issues and no longer provide value (util\xmlfile.cpp). Use machine().rand() for determinism (capcom\alien.cpp). I/O stream eof() returns whether a read stopped short due to EOF, not whether the file pointer is at EOF (ensoniq\esqpanel.cpp). Fixed an apparent bug in what appears to be a setter member function (monitor\monitor_module.h). . Removed unneeded calls to driver_device (atari\liberatr.cpp and misc\notechan.cpp) . Simplify some bits of code using util::sext (cpu\dsp56156\dsp56ops.hxx, i960\i960.cpp and scudsp\scudsp.cpp) . Fixed the linux CI (github\workflows\ci-linux.yml) . Fixed narrowing warning from older versions of Clang (util\path.h) - Debugger . Moved debugger command parameter validation helpers into debugger_console . Modernized logging calls (video\psx.cpp and sony\zn.cpp) 0.249 - New games: Jackpot Joker Poker (Version 88V 01) and Muscle Master - New Working games: The Crystal Maze (v1.3 alt) (MPU4 Video) and Teenage Mutant Ninja Turtles - Mutant Warriors (SNES bootleg) - New Non-Working games: Arm Champs (Japan), Slotters Club: Umi Monogatari and Winner's Wheel - Magical Spot - New clones: beatmania 3rd MIX (ver EA-A), Big Bang (9th Nov. 1993, set 2), Bosconian - Star Destroyer (version 5), Club Kart Prize Version B (prototype), Dynablaster / Bomber Man (bootleg, set 4), The Gladiator / Shen Jian Fu Mo Lu / Shen Jian Fengyun (M68k label V100) (ARM label V104, ROM 04/02/03 SHEN JIAN V104), Gun Dealer (Yam! Yam!? hardware, set 2), Kyukyoku Tiger (Japan, newer), Mad Shark (bootleg), Magic Bomb (Ver. NB6.1, 26/04/04), Penguin-Kun Wars (Japan, set 2), Pit Boss Megastar (9244-00-01 R0B), Primal Rage (version 2.3, newer build), Pro Bowl 2, Street Fighter II': Champion Edition (Red Wave, bootleg, set 2) and X-Men (4 Players ver AEA, bootleg) - New PinMAME games: Star Wars Trilogy (CPU 3.00, display A3.00) - New drivers: armchamp.cpp, m119.cpp, mpu4redpoint.cpp, musclem.cpp and winclub.cpp - New devices: a5200_16k2c, a5200_bbsb, a5200_cart_slot, a800_034m, a800_043m, a800_bbsb, a800_cart_slot, a800_corina, a800_corina_sram, a800_express, a800_m091, a800_oss8k, a800_rom, a800_rtime8, a800_sitsa, a800_sparta, a800_tlink2, a800_turbo, a800_williams, a800_xegs, a8sio, a8sio_cass, atari1050, atari810, atari_fdc, legacy_floppy_image, m3000, m3002, mos6530_new, mos6532_new, nios2, pic1654s, vcs_control_port, vcs_joystick, vcs_joystick_booster, vcs_keypad, vcs_lightpen, vcs_mouse, vcs_paddles, vcs_wheel and xegs_cart_slot - Bob Zed video for 0.249: https://youtu.be/_h5eVwDSMb0 - CPU . ARM: Eliminated big-endian bus variant not actually implemented until ARM6 (which is also not emulated here) (arm\arm.cpp) . MC68340: Changed to 16 bit data bus instead of 32. Don't use lambda auto-capture (machine\68340sim.cpp). . Motorola MC68000: Split the header to make future semi-indenpendant implementations sane . NEC uPD7810: Adjusted instruction clock counts to match the UPD78[C]1x datasheet; also applied similar fixes to the upd7807 when instructions matched and timing otherwise was identical to the upd7810, or when the timing was documented elsewhere. Made some minor fixes to debug information for certain illegal opcodes (upd7810\upd7810_table.cpp). Fixed serial input/output. . NEC V25: Fixed crash on encountering invalid LDEA (nec\necinstr.hxx). Call exception hook on bankswitch interrupt (nec\v25.cpp). - SOUND . Atari C012294 POKEY: Use logmacro.h instead of custom macros for debug logging and add IRQ logging type. Include the machine context in logging messages rather than the device tag (which gets prepended automatically now). Replaced custom IRQ callback with line handler and allow the output to be cleared properly without HOLD_LINE. Acknowledge SEROC in progress flag, make (MESS) Atari 800 Telelink II to boot. . Biquad Filter: Added the ability to define a biquad filter using raw parameters, instead of only by using component values or by type/cutoff/bandwidth/gain. Fixed some of the issues with the Multiple Feedback Bandpass filter (sound\flt_biquad.cpp). . Sound Interface: Save cfg master volume when non-default (emu\sound.cpp) . Yamaha YMW-258-F: Changed which bit selects 12-bit samples, fixes (MESS) Yamaha MU-5 bad instruments. Correct address bus width. Make address space big-endian. - DEVICE . Floppy . Added support for specifying volume attributes in 'floptool flopcreate'. An example command line: flopcreate vdk coco_rawdsk_os9_35 newdisk.vdk -name mycooldisk -creation_date "1999-02-28 13:23:47". Attributes are identified on the command line prefixed with '-'; if this is not the preferred syntax this can be changed. Implementing this also forced a change to fs::meta_value where the various as_*() calls can now be called without respect to which type the fs::meta_value is; this is necessary so that floptool code doesn't need to "own" parsing of the various types of fs::meta_value. And with this change, fs::meta_value::to_string() is now replaced by fs::meta_value::as_string(). . Added extended DDAM handling to FD1771 FDC (machine\wd_fdc.cpp), fixes (MESS) TRS-80 Model I (Level II Basic) WD1771 does not support a1 DAM status bit (ID 08435). Reset the contents of data_reg when the sync is changed (machine\wd_fdc.cpp), fixes (MESS) WD FDC FM sync incorrect in two places of trs80l2 and trs80m4 (ID 08458). . K051316 PSAC: Added K051316 tile flip configuration bits, replaces flag setting in callbacks. Removed flags cb parameter and added bool for each configuration bit. Cleanup driver. Removed device_reset and bool-int comparison. . MC6840 PTM: Fixed unsigned comparison . Microchip PIC16C54: Added support for the GI PIC1654S . Ticket Dispenser: Added proper hopper communications to machine\ticket.cpp. Added a devcb_line for output handling to communicate with hardware (machine\ticket.cpp). - appoooh.cpp: Get rid of unsafe ADPCM code - argus.cpp and psychic5.cpp: Small cleanup to whitespace (jaleco\jalblend.cpp) - bankp.cpp: Added display on/off control and palette high bit - bartop52.cpp and maxaflex.cpp . VBL status is always held no matter enable irq reg (atari\antic.cpp), fixes (MESS) Atari 800 Anteater hangs. . Fixed player/missile width rendering (atari\gtia.cpp), fixes (MESS) Atari 800 Jumpman Junior at very least. . Use pixel_period() for steal_cycles timer (atari\antic.cpp). Fixes a majority of the screen flashes color, when speech is played (ID 05081), (MESS) Atari 800 Elektra Glide, Galaxian and Blaster (Prototype) crashes, Pitfall II score display (ID 05698), 'Alf in the Color Caves' stuck on first hole, 'Halftime Battlin' Bands' GFX faces on gameplay, M*A*S*H and 'Boulders and Bombs' flickering and likely more. . Enable PIA IRQs in Max-a-Flex (these will be useful later) . Display area is 240 in both NTSC and PAL (atari\antic.cpp), fixes cut top/bottom in (MESS) Atari 800 Crystal Raiders and Math Mileage. . Fixed readback of undocumented read registers and consol direction readback. Added better cold boot initial values (atari\gtia.cpp), fixes (MESS) Atari 800 test suite Acid800 "GTIA: default value" and "GTIA: CONSOL test" items. Make CHECK_GRACTL macro switch to actually compile. . Guard against side_effects reads for WSYNC. Make m_scanline to be consistant across soft resets (atari\antic.cpp). Reset chand/chxor helpers, fixes (MESS) Atari 800 Track and Field timer/length hidden text (atari\antic.cpp). . Double pixels for Mode 9 graphics (atari\antic.cpp), fixes (MESS) Atari 800 Caverns of Mars title screen. Removed long-obsolete "used colors" tables (atari\antic.cpp). . Converted drivers to screen raw parameters . Removed hardcoded input port name and make it a GTIA callback instead (atari\antic.cpp). Removed second trigger buttons from Max-a-Flex. - berzerk.cpp: Mute S14001 speech when writing 0 volume. Correct S14001 busy flag. Use volume filter device. - blueprnt.cpp: Fixed an oob array access - highvdeo.cpp: Fixed manufacturer for bingopd, saladue and zoomania (ID 08426). - namcos21_c67.cpp: Tidied up transfer_dsp_data a little - namcos23.cpp: Start on completing I/O configs for some games - pitnrun.cpp: Added separate controls for cocktail mode and multiplexer device (very similar to thepit.cpp). Added raw screen and watchdog timings. Use different watchdog reset address for Jump Kun. Improved alignment for flipped sprites. Modernized VBL interrupt. Added tilt input (which just resets the system). - whitestar.cpp: Cleanup. Added display PLD. Added display version on game names (very useful when looking for undumped sets, but also informative to final users). Reformat comments. Added spacing, newlines, etc. to improve readability. - AGEMAME . Refactored MPU4 machine configuration: Added hopper support and DUART-based hoppers. Set YM crystal to match PCB. Fixed some Dutch reel/input setups so that sets boot. Moved a some more sets to appropriate source files. Disable coin lock logic for now - it probably needs per-machine code. Removed an identical clone set - game clearly boots as 'Atlantis', not Triple Dice'. . Fixed a few more reel setups. Turned the reel templates into simple methods, and moved the config templates to where they're used. Cleaned up some more, removing m_mod_number parameter, unnecessary headers and some unused configurations. Set up reels/lamps/hoppers/LEDs as traits. Ignore transitions on SCLK while POC is active and don't reset input line states on POC (machine\roc10937.cpp). . MPU4: Removed palette device from base class. Continued moving methods down into derived classes. mpu4mod2sw.cpp: Confirmed that m4nnww2__hx5 is a bad dump. mpu4mod4oki.cpp: Allow m4madhse to boot based on AJR's research. mpu4mod4yam.cpp: Split out YM2413 configuration from parent class, and hooked up the YM2413 using address maps. mpu4redpoint.cpp: Actually renamed the stuff in this driver. mpu4unsorted.cpp: Changed m4matdr to a 6-reel setup, allowing it to pass the reel check before encountering another error. Got m4luckwb to boot and moved it out of the "unsorted" file. Identified m4cbing sound chip, move it to new configuration and made it boot. Improved m4blkgda ROM loading. . Added proper hopper communications to machine\ticket.cpp. Added a devcb_line for output handling to communicate with hardware (machine\ticket.cpp). . MPU4: Fixed hopper hookup to use the ticket dispense handler. Updated base map to remove DUART hack. . Promoted clone The Crystal Maze (v1.3 alt) (MPU4 Video) to working - D-Day (Jaleco): Simplify gfx init - Double Dealer: Dumped PROMs - Dragon Breed: Fixed sprites on scorebar regression in Dragon Breed and clones (ID 06970) - Field Combat: Improved colors a bit and tile alignment. The unknown dipswitch is 'Coinage'. Make the choppers spin their blades. Copy color resnet from Exerion (Jaleco). Fixed bg colors and added fg tilemap instead of drawing manually. - Flying Shark: Updated infos for clone Flyin' Shark (bootleg of Hishou Zame) - G.T. Block Challenger: Added paddle position read. Even shorter paddles after hitting ceiling. - The Hand: Change joystick to 4way - Hot Chase: Added dipswitches from the Operators Manual (ID 08460) - Ironman Ivan Stewart's Super Off-Road: Added PCB info - Magical Truck Adventure: Redumped game - Ninja Emaki: Added PCB info - Othello: Hook up upd7751c sample player - Out Run: Simpler sprite logic (sega\sega16sp.cpp) - Parallel Turn: Removed unused (superceded) function - Pingu's Ice Block: Dumped BOOT ROMs - Plump Pop and Jumping Pop: Unmap cheat button and removed duplicate coins - Saboten Bombers: Dumped PROMs (same as Bombjack Twin PROMs) - Super Crowns Golf: Added (Japan) rompatch also for Super Crowns Golf (World). TODO: Remove the rom patch and understand what needs to be modified for the gfxs, it reads from 0x06(PPI1 port C) and then fails to fill bg vram correctly. PPI1 ports configuration is very standard, so it's not a 8255 device bug. - Teenage Mutant Ninja Turtles - Mutant Warriors (SNES bootleg): Fixed protection simulation (Game now playable). TODO: Dipswitches. - unknown game on TrueSys hardware: Hook up new skeleton CPU device (Altera Nios II soft processor). Improved memory map. - Fixed rom names in galaga.cpp, m92.cpp, midxunit.cpp, nova2001.cpp, olibochu.cpp, rampart.cpp, rampart.cpp and rbowlorama.cpp - Dipswitch fixes in blockch.cpp, twincobr.cpp, fcombat.cpp, mpu4redpoint.cpp, namcos23.cpp, snesb.cpp and wecleman.cpp - Description changes of Albatross (US prototype?), Big Bang (9th Nov. 1993, set 1), Gun Dealer (Yam! Yam!? hardware, set 1), Kyukyoku Tiger (Japan, 2 player alternate), Kyukyoku Tiger (Japan, 2 player cooperative), Lucky Wild Boar (MPU4) (set 5, unprotected), Magical Truck Adventure (Export), Oli-Boo-Chu (USA), Paradise (Industrias Brasileiras, Version 1.04), Penguin-Kun Wars (Japan, set 1), Pit Boss Megastar (9243-00-01 R0), Pit Boss Megastar (9244-00-01 R0), Primal Rage (version 2.3, older build), Street Fighter II': Champion Edition (Red Wave, bootleg, set 1) and all whitestar.cpp games - Renamed (ktiger) to (ktigera), (pitbossma) to (pitbossmb), (pitbossm) to (pitbossma) and (primrage) to (primrageo) - MAME . VIDEO RENDERING SYSTEM . Make information overrides noexcept (device_palette_interface) . Some layouts need more scales on the same texture (emu\render.h) . MEMORY SYSTEM: Added pre and post rom bank change callbacks and changed almost all users to 'pre' (emu\dirom.ipp/h) . LUA engine: Fixed input device items upper bound (mame\luaengine_input.cpp) . UI . Reword mechanical "cannot be emulated" to "cannot be emulated accurately" as often times we do crudely emulate mechanical elements (ui\info.cpp). . Added support for shows localised system name in Favorites (ui\selgame.cpp) . PLUGINS . Overwrite existing hotkeys if all hotkeys are cleared, fixes GitHub #10387 (cheat\init.lua). . Use path_concat utility function (mame\pluginopts.cpp) . Moved UTF8_xxx string literal macros to new header in lib\util\utf8.h . Additions to osd\eminline.h: Added mul_16x16 inline function to perform a signed 16x16-bit multiplication with 32-bit result. This was moved from cpu/e132xs to unite it with the analogous 32x32 operations. Added rotl_32, rotr_32, rotl_64 and rotr_64 inline functions to perform 32-bit and 64-bit circular shifts in either direction by the specified number of places, modulo 32 or 64. It is anticipated that these will eventually be replaced by standard functions in C++20's header, and so they have been given similar signatures and semantics (which are also validity-checked). Removed LSL, LSR, ROL and ROR macros from cpu/arm and cpu/arm7 to ameliorate unnecessary obfuscation. . Fixed path_append and path_concat of >2 arguments (util\path.h) . Use std::string_view for filename (render\aviwrite.cpp) . Modernized core_strwildcmp() and core_iswildstr(). Changed parameters from 'const char *' to 'std::string_view'. Removed 16-character limit in core_strwildcmp(). . Consolidated drivers in single files. Minor cleanups (aliens.cpp, arabian.cpp, battlnts.cpp, bladestl.cpp, circusc.cpp, ddribble.cpp, divebomb.cpp, finalizr.cpp, gberet.cpp, gyruss.cpp, hyperspt.cpp, ikki.cpp, ironhors.cpp, jackal.cpp, jailbrek.cpp, mainevt.cpp, mikie.cpp, pandoras.cpp, pingpong.cpp, pooyan.cpp, rockrage.cpp, rocnrope.cpp, sbasketb.cpp, scotrsht.cpp, shaolins.cpp, timeplt.cpp, toaplan2.cpp, tp84.cpp, yiear.cpp and xmen.cpp) . Multi-Language: Updated German and Ukrainian UI translation - Compiling . Moved filename utilities to path.h (util\corefile.cpp and util\path.cpp) . Moved std::function template deduction guide (apple\mactoolbox.h) to more accessible core header (emu\devdelegate.h) . Added Windows/Clang GitHub CI build task . Adjusted GitHub CI workflows: Changed Linux GCC build to use the tiny subtarget. Added chdman and unidasm executables to artefacts. - Debugger . MACOS_X_VERSION_10_15 is not defined on really SDKs (debugger\osx\debugview.mm) . Removed unused legacy logging functions (misc\39in1.cpp and sega\flashbeats.cpp) 0.248 - New games: Conquest (prototype) - New Non-Working games: Acchi Muite Hoi Battle, Docchi Fighter, Exciting Speed Hockey (V19930325), Mogu Mogu Hammer, Paradise (Industrias Brasilerias, Version 1.04), Sala Due (Version 3.04), Super Mario Bros. 3 (NES bootleg) and Zoomania (Version 10.04, set 1) - New clones: Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAC), Dance Maniax (G*874 VER. AAA), DrumMania 9th Mix (G*D09 VER. JAB), DrumMania 9th Mix eAmusement (G*D09 VER. JCA), DrumMania 10th Mix eAmusement (G*D40 VER. JCA), Golden Tee Golf (Trackball, v2.1), Guitar Freaks 5th Mix (G*A26 VER. AAA), Guitar Freaks 11th Mix eAmusement (G*D39 VER. JBA), Percussion Freaks 9th Mix (G*D09 VER. AAA), Percussion Freaks 10th Mix (G*D40 VER. AAA), Sala Due (Version 1.04), Soul Calibur (Asia, SOC12/VER.A2), Strikers 1945 III (World) / Strikers 1999 (Japan) (bootleg), Virtua Golf / Dynamic Golf (prototype) and Zoomania (Version 10.04, set 2) - New PinMAME games: 'Maverick, The Movie (2.00)' and 'Red and Ted's Road Show (PA-2 prototype)' - Removed games: San Francisco Rush (boot rom L 1.06A) - New drivers: amuzy.cpp, eshockey.cpp, nes_arcade_bl.cpp and sraider.cpp - New devices: apu2a03, macronix_29f008tc, nes_sharpcass and rp2a03 - New MAME samples: https://www.progettosnaps.net/samples/ (ozmawars, redclash and zerohour) - CPU . Hyperstone E1-xxxx: E132XS cleanups: Use count_leading_zeros_32 instead of loop for TESTLZ. Simplify overflow mask calculation for SHL(I). . Intel I486 CPU: Use swapendian_int32 (i386\i486ops.hxx) . NEC uPD7810: Don't change carry flag with inr/dcr opcodes. Still affect HC flag. Refresh port C on MCC related output changes. Some variables were missing from savestates. . Mitsubishi M37450: M740 fixes. Only access data memory in indirect modes (m6502\m740.cpp). . MOS Technology 6502: Do not overwrite the variable with the access address on a read in case we want to rerun it. Added the missing uses_custom_memory_interface. Avoid multiple instructions on one line for when reads at restartable. . Sony CXD8xxxx: Initialise some DMA channel registers on reset, fixes (MESS) PlayStation Game Booster port peripheral no longer functions (ID 08407) (cpu\psx\dma.cpp). Without this, booting a parallel port device jumps into the weeds. Actual DMA channel state on reset needs to be investigated. . Zilog Z80: Fixed WZ flag - SOUND . Ensoniq ES5503: More correct behavior in some swap-mode corner cases . Ricoh N2A03 + RP2A03 APU: Added earliest hardware variant of 2A03 APU (found in punchout, spnchout, dkong3, VS. systems and some early Famicoms). It's estimated that these letterless CPU versions are in the first two million or so Famicoms (about 10% of Famicoms sold). There are games developed on the RP2A03 that have sound glitches on later, more common Famicoms. For instance, the very last note in the game over melody in Balloon Fight rings out with a loud buzz on later machines. The new famicomo driver plays it as the developers must have intended. - DEVICE . Floppy . Fixed use-after-std::move() issue in constructor (formats\fs_fat.cpp) . Changed fs::manager_t::enumerate_f() to simplify logic within file system drivers. enumerate_f() used to contain quite a bit of boilerplate logic to determine whether a particular floppy type should be added. This change attempts to move this logic outside the file system drivers to simplify the drivers. The riskiest part of this change is unformatted_image::enumerate_f(). I attempted to replicate the logic that was previously determining with unformatted image types to use, but the logic is tricky and it isn't clear to me that replicating the logic is the correct action - I may be cargo culting. * Fix to floppy_image_device::fs_enum::add_raw(). * Updating FS_FAT to reflect this PR. * On the advise of Sarayan, I moved the filtering to the fs::manager_t::fs_enum base class. This is actually a less intrusive change than what I originally had because it keeps the unformatted raw image handling closer to what we had previously. Some misgivings about these changes: 1. We now have fs::manager_t::fs_enum::add() being a thin call that invokes a protected method called fs::manager_t::fs_enum::add_format(). Better ideas for names are welcome. 2. It feels odd that we've removed the need to do filtering from the various FS modules, but the unformatted module has to ask the fs_enum() for its internal variables for filtering to perform the same logic. This seems to be the least worst option. Feedback is welcome (formats\fsmgr.cpp, tools\image_handler.cpp, imagedev\floppy.cpp). - aleck64.cpp: Fixed stack buffer overflow (nintendo\n64_v.cpp) - atarisy1.cpp, atarisy2.cpp, gauntlet.cpp and starwars.cpp: Re-added boost interleave on soundlatch write, fixes random occasional graphics corruption in Road Blasters (ID 07855). - bfm_sc2.cpp: Fixed upd7759 sample triggering and reset control (ID 08325). Made the volume ramp a little less aggressive. - docastle.cpp: Updated notes - highvdeo.cpp: Got rid of function statics, made some sets to boot and set some to the correct machine type so the video renders as it should. Use a more obvious pixel loop with fewer tests and cleaned up spacing. - ladybug.cpp and sraider.cpp: Put sraider driver and ladybug_video device in their own files. - oneshot.cpp: Fixed unsigned comparison to zero bugs - seattle.cpp . Added newer BIOS for NFL Blitz . Added San Francisco Rush Boot Code Version L1.12 as a BIOS option. Turned San Francisco Rush Boot Code Version L1.06A into a BIOS option rather than a clone - the game version is the same. - speedbsk.cpp: Added sound banking - vsnes.cpp . Added earliest hardware variant of 2A03 APU. Fixes several audio bugs with the noise channel in VS. System games, including: High-pitch sound in Vs. Gumshoe percussion track. Jet sounds in Vs. Raid on Bungeling Bay. Number of tanks killed count screen in Vs. Battle City. Vs. Platoon's bullet and enemies dying sounds are subtly changed. . Correct bnglngby 'Lives' dipswitch settings and added 'Difficulty' dipswitch settings. Correct supxevs 'Bonus Life' dipswitch settings and added 'Hidden Password Screen' dipswitch settings. Correct 'Lives' dipswitch settings for jajamaru. - zerohour.cpp . Red Clash: Added white background and preliminary sound. Bullet width is software controlled. Added player shoot sample and minimal beeper frequency. Fixed stuck sound on highscore screen. . Zero Hour: Added Samples sound. Correct score panel colors. Removed imperfect gfx flag. Bullet width is software controlled. Added 1bit DAC. . Moved the star generator to its own file (universal\zerohour_stars.cpp) (driver now doesn't weirdly include ladybug_v anymore). Note: These functions emulate the star generator board. All this comes from the schematics for Zero Hour. It has a 17-bit LFSR which has a period of 2^17-1 clocks (one pixel shy of "two screens" worth). So, there are two starfields drawn on alternate frames. These will scroll at a rate controlled by the speed register. Renamed redclash driver to zerohour. Put driver into a single file. - Air Buster: Added 'Kaneko CALC Hitbox' collision/protection device - Arm Wrestling, Punch-Out!!, Donkey Kong 3 and Super Punch-Out!!: Added earliest hardware variant of 2A03 APU - Cobra: The Arcade: Redumped DVD - Cosmic Alien and Tournament Arkanoid: Fixed some incorrect rom locations and labels in clones Cosmic Alien (early version II?) and Tournament Arkanoid (US, newer), added some notes and mark an existing dump as good based on a redump. - Embargo: Removed input tag lookups - Get A Way: Improved colors and added DIP locations - Oli-Boo-Chu: Improved AY-3-8910 sound. Added HC-55516 speech sound and confsetting for the palette. - Ozma Wars: Added preliminary samples to replace the incorrect Invaders ones (ID 07173). Confirmed Ozma Wars has 2 SN76477. - Percussion Freaks 9th Mix: Added missing multisession CD-ROM to clone DrumMania 9th Mix (G*D09 VER. JAA) - San Francisco Rush 2049: Special Edition: Removed bad dump flag from rom U27. The POST checksum failure for the boot ROM was normal for this game. - Super Pinball Action: Fixed some dips for clone Super Pinball Action (US, prototype, dual screen) - Teenage Mutant Ninja Turtles - Mutant Warriors: Identified sblast2ba as actually being Teenage Mutant Ninja Turtles - Mutant Warriors. Decrypted it. Still doesn't work, possibly because of additional protection. - Top Roller: Added safety cliprect mask (nichibutsu\cclimber_v.cpp) - Fixed rom names in arkanoid.cpp, cosmic.cpp, itech8.cpp and markham.cpp - Dipswitch fixes in getaway.cpp, highvdeo.cpp, olibochu.cpp, seattle.cpp, thief.cpp and vsnes.cpp - Description changes of Bubbles (prototype), Coccinelle (bootleg of Lady Bug), Hoccer (earlier), Hoccer (newer), Jurassic Park (USA 5.01, display G5.01), Lady Bug (bootleg), No Fear: Dangerous Sports (1.0F), Maverick, The Movie (4.04, Display Rev. 4.02), Maverick, The Movie (1.00), Maverick, The Movie (Display Rev. 4.00), Maverick, The Movie (4.02, Display Rev. 4.01), San Francisco Rush and Zero Hour (bootleg), Shadow Force - Henshin Ninja (Japan, Version 2), Sonic Blast Man II Special Turbo (SNES bootleg) and Teenage Mutant Ninja Turtles - Mutant Warriors (SNES bootleg) - Renamed (ddr2mla) to (ddr2mlb), (ddr2ml) to (ddr2mla), (drmn9m) to (drmn9ma), (gtgt) to (gtgt20), (gtgt1) to (gtgt10), (nf_10) to (nf_10f), (pcnfrk10m) to (pcnfrk10ma), (pcnfrk9m) to (pcnfrk9ma) and (sblast2ba) to (tmntmwb) - MAME . VIDEO RENDERING SYSTEM . Fixed wrapping constructors for indexed bitmaps taking the wrong parameter type (nothing was using them before) (util\bitmap.h). Fixed potential use-after-free issues with bitmap palettes (util\bitmap.cpp). . Make flipscreen setters compatible with writeline (emu\driver.cpp) (ladybug.cpp, sraider.cpp and zerohour.cpp) . Added a space before %FPS in speed text (emu\video.cpp) . Removed obsolete sample layout files (bgfx\layouts\sample\horizontal\default.lay and vertical\default.lay) and updated documentation . MEMORY SYSTEM . Added the bank tag to a fatal error message where it was missing (emu\emumem.cpp). . UI . OSD/network interface cleanup: Moved osd_midi_device from osdcore.h to osdepend.h. Moved osd_list_network_adapters from osdcore.h to osdnet.h (was already defineduniquely in osdnet.cpp). Moved #include from osdcore.h to emu.h. Removed dinetwork.h from emu.h. . Added an option to copy input device IDs to the relevant menus. Added an item for setting the software lists files path (-hashpath) to the folder setup menu. Allow pasting text from clipboard in most places that allow typing (searching, entering filenames and entering barcodes). Changed the software selection menu heading to be a bit less misleading. Made barcode menu less eager to rebuild itself unnecessarily and removed some confusing and apparently pointless code. . Added some functionality to OSD and cleaned up a little: Added a function for copying text to the clipboard. Moved function for converting Windows error codes to standard error conditions to winutil.cpp so it can be used from more places. Removed duplicate declaration of osd_get_clipboard_text and made the function noexcept (including fixing implementations). Made macOS implementation of osd_get_clipboard_text skip the encoding conversion if it finds UTF-8 text first. Changed the default -uimodekey setting so it doesn't lose the "not shift" that stops the default from interfering with UI paste. . INPUT . Log 1-based device numbers, matching what's shown in the internal UI and used in tokens in CFG files (emu\input.cpp and emu\inputdev.cpp). . Reworked and expanded documentation on configuring stable controller IDs (docs\source\advanced\ctrlr_config.rst and devicemap.rst) . LUA engine: Added low-level palette objects. Added indexed bitmap types. Added a bitmap method for extracting pixels from a rectangular area as a packed binary string. Changed screen device pixels method to return width and height in addition to the pixels. . PLUGINS: Resort hiscore.dat and set changes (plugins\hiscore\hiscore.dat) . Multi-Language . There's a menu item for copying a device ID to the clipboard and associated success/failure messages. There's the menu item for setting the software list file search path. One of the lines in the software selection menu heading has changes as it could be interpreted as implying it showed a software list name. . Updated Chinese, Greek and Ukrainian UI translations . Renamed add_scheduling_quantum to add_quantum and added perfect_quatum and use that for most cases of boost_interleave (emu\schedule.cpp) . Validate slot cards only once per device type during 'quick' validation passes, which were taking rather long for some drivers (e.g. (MESS) at.cpp) (emu\validity.cpp) . Fixed the version of utf8_from_uchar that returns std::string blowing up on invalid codepoints (util\unicode.cpp) . Changed core_stricmp to take std::string_view parameters (util\corestr.cpp). Note that the implementation is still not UTF-8 aware. . Made error messages more detailed when opening a configuration file fails and bumped error messages to warning level (emu\config.cpp). Preserve elements with no registered handlers in default and system configuation files (emu\config.cpp). . Consolidated drivers in single files. Minor cleanups (aeroboto.cpp, airbustr.cpp, bankp.cpp, battlex.cpp, blmbycar.cpp, djboy.cpp, drmicro.cpp, espial.cpp, exerion.cpp, fcombat.cpp, funkybee.cpp, galastrm.cpp, gatron.cpp, ginganin.cpp, glass.cpp, gomoku.cpp, groundfx.cpp, gunbustr.cpp, homerun.cpp, marineb.cpp, mcatadv.cpp, mjkjidai.cpp, momoko.cpp, mrflea.cpp, msisaac.cpp, oneshot.cpp, pirates.cpp, pitnrun.cpp, retofinv.cpp, rollrace.cpp, sbugger.cpp, skyfox.cpp, ssrj.cpp, targeth.cpp, thief.cpp, thoop2.cpp, vastar.cpp, volfied.cpp, warriorb.cpp, wiping.cpp, wrally.cpp, xorworld.cpp and zodiack.cpp) - MAC OS X: Full dark mode support for macOS 10.14 and later. Raise requirement for Dark Mode to 10.15. - Compiling . Ignore all but type 0x20 symbols (osd\modules\diagnostics\diagnostics_win32.cpp) . Fixes for Clang 15.0 on Windows . Removed not strictly needed use of strrchr (util\plaparse.cpp) . Updated build prerequisite package names for newer Ubuntu versions (initialsetup\compilingmame.rst) - Debugger . Added exception points as a new class of "points" triggering on specific exception numbers, with a similar set of commands to breakpoints and registerpoints. Removed the per-instruction callback hook from device_debug. Only one driver was using this (rmnimbus.cpp), and what it was doing with it could be done more cleanly with exception points. Changed the type of the action string parameter for "points"-creating methods and make some parameters optional for those. Changed trace file logging to use a std::ostream instead of FILE * to take better advantage of strformat. . Capture big objects by reference in lambdas (tools\unidasm.cpp) . Reallow debugger single-step command to break into subroutines during over/out stepping (debug\debugcpu.cpp) . Added capability to save/restore window arrangement. Format is mostly compatible with the Cocoa debugger, besides reversed vertical positioning. . Made Qt debugger more compatible with configuration format used by Win32 and Cocoa debuggers. Added a crude dark theme for the Win32 debugger. . Made a start on weaning the Qt debugger off its weird configuation objects. It can now save more view state with less string comparisons on memory labels, but it can't restore all of it yet. . Made closing the Qt debugger console window hide all debugger windows and run the emulated machine (debugger windows will be shown on next user break or breakpoint hit). This matches the behaviour of the Win32 and Cocoa debuggers. Made Qt debugger clean up its windows on exit rather than on subsequent starts. This fixes GitHub #9789. Made Qt debugger less reliant on global variables, and made code to save and load configuration a bit less convoluted. It still needs more refactoring on this front, but it's in slightly better shape now. Made Qt debugger a bit less crashy on invalid configuration. Still plenty of ways to crash it, but every little bit counts. Made Qt debugger do less comparisons on menu item names and object names - it might be possible to localise one day. Moved all the C++ debugger implementations into namespaces. They're using awfully generic class names, so it's about time. . Don't try closing windows if debugger console wasn't created (debugger\debugqt.cpp) . Use swapendian_int* (debugger\debuggdbstub.cpp) . Added debugger exception hook calls (cpu\h8\h8.lst and cpu\sh\sh2.cpp) 0.247 - New games: BMX Stunts - New Working games: Dino Dino (Ver. A1.1, 01/13/2005), Hacher (hack of Win Win Bingo EN.01.6), Lucky 7 (Impera) V04/91a, Magic Bomb (Ver. A3.1), Magic Bomb (Ver. L3.5S), Magic Card (v1.10 14.09.94), Magic Card (v1.2 200/93, set 1), Magic Card Export 94 (V2.11a, set 3), Puzzle Me!, Stone Age (Astro, Ver. EN.03.A, 2005/02/21), Super Pinball Action (US, prototype, dual screen), Win Win Bingo (Ver. GM.03.3, Feb 23 2006) and Zoo (Ver. ZO.02.D, Aug 27 2004) - New Non-Working games: DANCE 86.4 FUNKY RADIO STATION (E01:J:A:A:2005040400), Dance Dance Revolution Karaoke Mix 2 (GQ947 VER. JAA), Dance Dance Revolution SuperNOVA (FDH:A:A:A:2006071300), Dance Dance Revolution SuperNOVA (FDH:J:A:A:2006090600), Dance Dance Revolution SuperNOVA (FDH:U:A:A:2006072400), Dance Dance Revolution SuperNOVA 2 (GDJ:A:A:A:2007100800), Dance Dance Revolution SuperNOVA 2 (GDJ:J:A:A:2007100800), Dance Dance Revolution SuperNOVA 2 (GDJ:U:A:A:2007100800), Dancing Stage SuperNOVA (FDH:E:A:A:2006072500), DrumMania V (E02:A:A:A:2005050200), DrumMania V (E02:J:A:A:2005050200), DrumMania V2 (F02:A:A:A:2006011201), DrumMania V2 (F02:J:A:A:2006011201), DrumMania V3 (F32:A:A:A:2006101800), DrumMania V3 (F32:J:A:A:2006101800), Guitar Freaks V (E03:A:A:A:2005050200), Guitar Freaks V (E03:J:A:A:2005050200), Guitar Freaks V2 (F03:A:A:A:2006011201), Guitar Freaks V2 (F03:J:A:A:2006011201), Guitar Freaks V3 (F33:A:A:A:2006101800), Guitar Freaks V3 (F33:J:A:A:2006101800), Hit Parade 108 / 144 / 160, Hold & Draw, Magical Poppins, Rally Montecarlo, Thrill Drive 3 (D44:J:A:A:20050316), Toy's March 2 (F00:J:A:A:2005110400), Toys March (E00:J:A:A:2005011602) and Western Dream Gold - New clones: B.Rap Boys Special (World, older), Battle Garegga (Japan, bootleg) (Sat Feb 3 1996), Battle Garegga (Korea / Greece) (Wed Feb 7 1996), Big Kong (Crazy Kong bootleg on Galaxian hardware), Dance Dance Revolution SuperNOVA 2 (GDJ:A:A:A:2007071100), Dance Dance Revolution SuperNOVA 2 (GDJ:J:A:A:2007071100), Dancing Eyes (World, DC2/VER.B), Dancing Stage SuperNOVA (FDH:E:A:A:2006032200), DrumMania V2 (F02:A:A:A:2005101600), DrumMania V2 (F02:A:A:A:2005112800), DrumMania V2 (F02:J:A:A:2005101600), DrumMania V2 (F02:J:A:A:2005112800), DrumMania V3 (F32:A:A:A:2006072600), DrumMania V3 (F32:J:A:A:2006072600), Games V21.1C, Guitar Freaks (GQ886 VER. AAA), Guitar Freaks (GQ886 VER. EAA), Guitar Freaks (GQ886 VER. JAA), Guitar Freaks (GQ886 VER. UAA), Guitar Freaks V2 (F03:A:A:A:2005101600), Guitar Freaks V2 (F03:A:A:A:2005112800), Guitar Freaks V2 (F03:J:A:A:2005101600), Guitar Freaks V2 (F03:J:A:A:2005112800), Guitar Freaks V3 (F33:A:A:A:2006072600), Guitar Freaks V3 (F33:J:A:A:2006072600), Master Boy (Italian, rev A, set 3), Miss Packman Plus, Project Justice / Moero! Justice Gakuen (Rev B), Red Earth (Asia 961023, NO CD), Red Earth (Asia 961121, NO CD), Silent Scope 2 : Fatal Judgement (ver EAD), Trivia Master (set 5) and Turbo Force (US, set 2) - New AGEMAME games: Big Apple (Leisure Games) (MPU1) (5p Stake, \xa31 Jackpot), Big Apple (Leisure Games) (MPU1) (5p Stake, \xa32 Jackpot), Golden Nudge It (Barcrest) (MPU1) (5p Stake, \xa31 Jackpot), Lite a Line (Dutch) (JPM) (SRU) (revision 52), Lucky Nudge (Leisure Games) (MPU1) (5p Stake, \xa31 Jackpot), Match It (Barcrest) (MPU1) (5p Stake, \xa31 Jackpot), Match Up (Barcrest) (MPU1) (10p Stake, \xa32 Jackpot) and Super Shuffle (Louth Coin) (SRU) (5p Stake, \xa31.50 Jackpot) - Removed games: Nudges Unlimited (Barcrest) (MPU3) and Win-A-Gain (Bwb) (MPU3, set 2) - New drivers: amstarz80.cpp, hitparade.cpp, kpython2.cpp and mpu1.cpp - New devices: am186em, am188em, astro_cpucode, ds1207, iopcdvd, iopdma, iopintc, iopsio2, iopspu, ioptimer, mc141000, mc141200, pc8477b, ps2dmac, ps2mc, ps2pad, ps2sif, ps2timer, scc66470, scsi_cdrom_news, tms1000, tms1040, tms1070, tms1100, tms1170, tms1200, tms1300, tms1370, tms1700 and tms1730 - New Cheat.dat (Wayder): https://ss1.xrea.com/nekoziman.s601.xrea.com/cheat/ - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . Hitachi H8: MULXS & MULXU are slower without a MAC (h8\h8.lst) . Intel 80186: Added Am186EM and Am188EM variant types - SOUND . Atari C012294 POKEY: Improved accuracy of POKEY emulation. The implementation changes come from the A7800 project (https://github.com/7800-devtools/a7800). Fixes bass voice missing in (MESS) Atari 800XL "Zybex" game music (ID 08219), broken POKEY Join Mode (GitHub #8911), inaccurate distortion playback (ID 07378) and incorrect firing sound in Centipede (ID 06096). Minor cleanup and got rid of an unnecessary member in channel structures (only used in inline member functions). . MIDI: Send All Notes Off CC when unloading a MIDI file (imagedev\midiin.cpp) - DEVICE . CD-ROM: Pass phys flag to read_partial_sector in read_subcode (util\cdrom.cpp). Note: This fixes the data roundtrip problem mentioned in #10230. This does not address the TOC returning CD_ROM instead of CD_ROM_XA that is mentioned in the same issue. . Floppy . Initial FAT file system support for Floptool. Current Limitations: Read only. Only supports floppy disks. No FAT32 support. No Long Filenames Support. . Fixed reversed error checking logic (tools\floptool.cpp). Fixed truncating when a write doesn't reach the end of stream (util\ioprocsvec.h) . K051960 Sprite Generator: Implemented shadow configuration bits, fixes shadows in Devastators. Added descriptions for the other previously undocumented register bits, even if they shouldn't affect any game. Attempted to get Chequered Flag shadow/highlights working properly with no k051960 hack. . K054000 Protection: Updated implementation to better match how the chip works, fixes 'Thunder Cross II' K054000 unit tests and ROM check (11C/12C and 14D return bad). . Microchip PIC16C5x: Expose driven lines to I/O handlers in mask (pic16c5x\pic16c5x.cpp) . NVRAM: Separate backup-enable parameter (which prevents both loading and saving) from nvram_can_save (emu\dinvram.cpp) . OKI MSM6242 RTC: Fixed interrupt output pulse duration . SKNS Sprite: Don't draw outside the cliprect. Fixed sign overflow (kaneko\sknsspr.cpp). Fixes Gals Panic S3 crashes soon after start (kaneko\sknsspr.cpp) (ID 08401). . Z180 ASCI: Fixed logic errors (z180\z180asci.cpp) - astrcorp.cpp . Promoted astoneag, dinodino, hacher, magibomb, magibombe, winbingo and zoo to working . Protection and layouts update. Emulated the "CPU Code" protection in newer games (astoneag, dinodino, hacher, magibombd, winbingo, winbingoa and zoo). . Expanded ROM patches to work around imperfect data in the first 0x400 bytes (ROM overlay?), getting all games to boot. . Implemented 16x32 sprites in astoneag. Created layouts and factory defaults EEPROMs for all sets. Fixed regression in showhand that caused the new opponent face to be invisible while entering the screen. - cps1.cpp . Gave reverse sprites its own bit as it's used often . Fixed priorities and highscores for clone Knights of the Round (bootleg, World 911127) - goldstar.cpp: Marked Tetris + Cherry master clones as clones - magicard.cpp . Promoted lucky7i, magicrd1, magicrd1c, magicrdeb and puzzleme to working . Added required devices and default NVRAM contents . Expose driven lines to I/O handlers in mask (pic16c5x\pic16c5x.cpp). Added DS1207 Time Key device (machine\ds1207.cpp). Fixed MSM6242 RTC interrupt output pulse duration (machine\msm6242.cpp). Added Philips SCC66470 Video and System controller device (machine\scc66470.cpp) . Correct Magic Card game names. Also changed short names to better reflect parent/clone relationships. - mappy.cpp . Renamed 'Freeze' dipswitch to 'Freeze / Rack Test (Cheat)' in Super Pac-Man. Note: When Freeze is on, press P1 button 1 to skip levels. . Reformatted comments, aligned PORT_CONDITIONs and removed useless comments. - mcr3.cpp: Added ADC0804 A/D Converter to Spy Hunter and Turbo Tag - multfish.cpp: Added documented game dumps from file outside of SRC tree (attic\multfish.ref). Note: These sets are known to exist based on official documentation, but have not been dumped. - photoply.cpp: Added notes about security dongles - pktgaldx.cpp: Subclasses and other small cleanups - playch10.cpp . Merged source files. Added finders for joystick and gun inputs. Fixed some bad masks (sprite DMA write and PinBot). Made color PROM loading more concise. Various other minor cleanups. Minor bug fix and MMC1 cleanup. . Replaced PRG and CHR dumps and removed MACHINE_IMPERFECT_GRAPHICS from Gauntlet (PlayChoice-10) . Added MACHINE_IMPERFECT_GRAPHICS flag to Captain Sky Hawk (PlayChoice-10). Note: Severe graphics glitches on second level. . Removed pc_1942 imperfect graphics flag. It looks as bad as it should. - pokechmp.cpp: Switched to configured banking, enabled save state support and minor cleanups - redclash.cpp: Improved sprite colors. Removed duplicate input ports. Bigger player bullets for Red Clash. Note: According to video reference(could only find 1), redclash player bullets should be 4*2px red on the 1st half of the screen and 8*2px yellow on the 2nd half, zerohour bullets are correct though(always 8*2px magenta). TODO: Colors are not right. In zerohour P1 score should be white, the top score green and "TOP" should be magenta. How is this determined? It's as if only the top part of the screen has this exception. Maybe via the unknown PROM? Sprite colors look ok. Some graphical problems in both games redclash supports more background layer effects: white+mixed with other colors, used in canyon parts and during the big ufo explosion. - scobra.cpp: Make bullets 2x2 pixels instead of a single pixel for Rescue and Minefield - senjyo.cpp: Removed dead code that doesn't work anymore (can use debugger memory view instead). Improved DAC sound. - subsino2.cpp: Replaced I80188 CPU1 with AMD Am188EM in expcard, ptrain, saklove, treacity, xplan and xtrain - turbo.cpp: Use an optional device finder to get discrete sound device. The function that would add this seems to have been lost. - vsnes.cpp . Various cleanups: Merged vsnes_m.cpp and vsnes.h into vsnes.cpp. Split into base class and three separate classes for UniSystem, DualSystem and SMB bootleg machines. Merged DualSystem's main/sub VROM banking functions. Added a separate speaker for each screen on VS. DualSystem - sound from the two APUs is not. . A few minor changes: Added watchdog timer (currently only active on DualSystem games). Set perfect quantum for vsmahjng, just like all the other DualSystem games. Switched clone vssoccera from bnglngby's init, which installs a fake IRQ hack, to standard init. Switched clone suprmriobl to empty_init and gave it more consistent function naming. . Removed nonexistent P3 and P4 controls from Vs. Star Luster. Correct credits per game mode DIP switch for Vs. Tennis. Removed redundant inputs for clone Vs. Baseball (Japan, set BA A-3), which are identical to parent Vs. Baseball (US, set BA E-1). Correct which Vs. Stroke & Match Golf clones use P3/P4 start button inputs. Added missing DIP setting 'Credits for 2 Players' to Vs. Clu Clu Land. Removed fake remapping of buttons for clone Vs. Pinball (Japan, set PN3 B). Added 'Lives' and 'Bonus Life' DIP settings for Vs. Super Xevious. Updated note about Sun prototypes. . More cleanups of INPUT_PORTS. Use macros for the common repeated definitions of joystick, coins, etc. Player buttons are "B" and "A", like the real panels. Start buttons have number and color, etc. Removed as many modifications from the base VS. machine IO ports as possible for bnglngby, iceclimb, jajamaru, nvs_machridera, supxevs and tkoboxng. Adjusted coin PORT_IMPULSE closer to hardware, so that all games now work with it. Updated notes on why Coin 2 inputs don't work in some games. . Added some DIP settings for clone Vs. Mach Rider (Fighting Course Version, set MR4-1 A) - williams.cpp and wmg.cpp: Clean up driver inits and setting blitter type in machine configs instead - AGEMAME . Added Barcrest MPU1 fruit machine driver. Note: Barcrest's first fruit machine platform to use a conventional CPU, possibly the first of it's kind. Has electromechanical reels instead of the usual stepper reels. The hardware features a MC6800 CPU clocked at around 1 MHz, 128 bytes of RAM and two PIAs for I/O. The PIAs can interface with up to 13 lamps, 4 reels, 8 triacs and 12 inputs (4 of these being special coin inputs). A 1-bit DAC is used for audio. Games are stored on cartridges that can hold up to 4K of data. Most cartridges use a common 2K mask ROM, with the remaining 2K available for the game program. . jpmsru.cpp: Cleaned up the driver. Added a postload callback to fix clone j_ewnc not updating reels after loading a save state. Changed order of display digit outputs to reflect actual order in the memory map. Cleaned up layouts. . Use mpu4_characteriser_pal for MPU3. Better MPU3 reel hookup. - Chequered Flag: Attempted to get Chequered Flag shadow/highlights working properly with no k051960 hack (konami\k051960.cpp). - Crazy Climber: Partially redumped clone Crazy Climber (ManilaMatic bootleg) - Devastators: Implemented shadow configuration bits (konami\k051960.cpp), fixes shadows in Devastators. - Falcons Wild: Identified encryption device (Sega 315-5018) for clone 'Falcons Wild - World Wide Poker (Falcon original)', seems to run now but needs more work. - Gals Panic S3: Fixed sign overflow (kaneko\sknsspr.cpp). Fixes Gals Panic S3 crashes soon after start (ID 08401). - Hard Times: Dumped PIC16C57 sound program. Fixed missing sound. - M-79 Ambush: Invert PROM data using region flags - Moonwar: Removed deprecated PORT_RESET - Pang: Redumped sprites roms for clone Pomping World (Japan). Also updated labels as per PCB pics. - Percussion Freaks: Dumped and added audio CD for clone DrumMania (GQ881 VER. JAD ALT CD) - Psychic 5: Correct underdumped audio rom in clone Psychic 5 (Japan) - Puzzlet: Fixed regression - Raiden: Documented more of the configuration bytes. Converted comments to C++-style. - Renegade: Correct sprite RAM size. Combined source files and cleaned up a little. More sprite RAM to fix flickering regression. - Speed Racer: Redumped game - Super Card: Added some notes about the encryption - Super Pinball Action: Added preliminary inputs and sound for clone (prototype). Added emulation of 2nd screen for clone (prototype) - Promoted game to working. Reorder the mcfg. - T.V. 21 III: Correct 700120.46 prom - Tengai: Dumped security MCU for Tengai (not hooked up yet). Added on both sets by now, although it was dumped from a World PCB. - Thunder Cross II: Updated K054000 Protection implementation to better match how the chip works, fixes K054000 unit tests and ROM check (11C/12C and 14D return bad). - Wonder Momo: Changed joysticks to 8-way (ID 08404) - Fixed rom names in astrcorp.cpp, leland.cpp, magicard.cpp, mitchell.cpp and williams.cpp - Dipswitch fixes in magicard.cpp, mappy.cpp, pass.cpp and vsnes.cpp - Description changes of B.Rap Boys Special (World, newer), Dino Dino (Ver. A1.1, 01/13/2005), FixEight - Jigoku no Eiyuu Densetsu (Japan), FixEight - Jigoku no Eiyuu Densetsu (Japan, Taito license), Hacher (hack of Win Win Bingo EN.01.6), Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4?), Lucky 7 (Impera) V04/91a, Magic Bomb (Ver. A3.1), Magic Bomb (Ver. AA.72.D, 14/11/05), Magic Bomb (Ver. AB4.2, 11/10/01), Magic Bomb (Ver. AB4.5A, 07/10/02S), Magic Bomb (Ver. BR4.4, 04/19/02S), Magic Bomb (Ver. NB4.5, 06/14/02S), Magic Card (v1.10 14.09.94), Magic Card (v1.2 200/93, set 1), Magic Card (v1.2 200/93, set 2), Magic Card (v1.5 17.12.93, set 1), Magic Card (v1.5 17.12.93, set 2), Magic Card (v2.01), Magic Card Export 94 (v2.09a), Magic Card Export 94 (V2.11a, set 3), Magic Card III Jackpot (V4.01 6/98), Magic Card III Jackpot (V4.01 7/98), Master Boy (Italian, rev A, set 1), Master Boy (Italian, rev A, set 2), Master Boy (Spanish, rev A), Master Boy (Spanish, rev A, hack?), (several) MP3 games, Scud Race / Sega Super GT - Twin/DX (Export), Scud Race / Sega Super GT - Deluxe (Revision A), Scud Race Plus / Sega Super GT Plus - Twin/DX, Scud Race Plus / Sega Super GT Plus - Twin/DX (Revision A), Scud Race - Twin/DX (Australia), Skill Drop Georgia (Ver. G1.0S, Sep 13 2002), Speed Drop (Ver. 1.06, Sep 3 2003), Stone Age (Astro, Ver. EN.03.A, 2005/02/21), Super Pinball Action (US, prototype, dual screen), Super Shuffle (Louth Coin) (SRU) (10p Stake, \xa33 Jackpot), Turbo Force (US, set 1), Wangpai Duijue (China), Win Win Bingo (Ver. GM.03.3, Feb 23 2006), Win Win Bingo (Ver. GM.05.1, May 11 2006) and Zoo (Ver. ZO.02.D, Aug 27 2004) - Renamed (cmtetrsa) to (cmtetrisa), (cmtetrsb) to (cmtetrisb), (cmtetrsc) to (cmtetrisc), (cmtetrsd) to (cmtetrisd), (danceyes) to (danceyesu), (j_ewsbl) to (j_supsh), (magicarda) to (magicrd1a), (magicardb) to (magicrd1b), (magicarde) to (magicrde), (magicardea) to (magicrdea), (magicardeb) to (magicrdec), (magicardec) to (magicrdj), (magicardf) to (magicrdeb), (magicardj) to (magicrdja), (magicardw) to (magicrd1c), (pjustic) to (pjustica), (unkpkr_w) to (magicrd1d), (unkte06) to (magicrd1) and (zulu) to (zoo) - MAME . VIDEO RENDERING SYSTEM . Removed some custom GFX decodes in favor of the ones provided in emu\video\generic.cpp (bbusters.cpp, cardline.cpp, clpoker.cpp, crshrace.cpp, docastle.cpp, dooyong.cpp, esd16.cpp, fresh.cpp, fromanc2.cpp, fuukifg2.cpp, gcpinbal.cpp, ginganin.cpp, goldstar.cpp, gundealr.cpp, jungleyo.cpp, leland_v.cpp, mechatt.cpp, nova2001.cpp, ms1_tmap.cpp, plygonet.cpp, prehisle.cpp, quizpun2.cpp, sfbonus.cpp and skyfox.cpp) . Give cloneof ext artwork priority over internal artwork (emu\render.cpp) . MEMORY SYSTEM . Added accessors lookup_{read,write]_*_flags to lookup flags without actually doing the access (emu\emumem*.*) . Removed the flags interface from address_space (still available through specific and cache), may make ld less cranky (emu\emumem.h and emumem_aspace.cpp). . DEVICE . Don't load any NVRAM other than the default for devices whose configurations inhibit NVRAM saving (emu\machine.cpp) . Bus: Get rid of some dubious tag manipulation. The implementation details of how the cartridges allocate storage for memory really shouldn't be part of the interface. Having tags in the headers encourages people to depend on these implementation details. This gets rid of it in most of the headers. A few particularly leaky abstractions (bbc/rom, electron/cart, gba, generic, jakks_gamekey, m5) depend on this, so it can't be removed in those cases without further refactoring to encapsulate the slot devices better. This doesn't change behaviour, it just mechanically removes stuff from the headers and uses device_t::subtag rather than string manipulation on tags. Most of the cartridge devices shouldn't have rom_alloc member functions at all - the region created by the software list loader can be used directly when loading from the software list, and the slot can allocate a region with the same tag when loading loose software. This avoids creating an extra region and copying the data when loading from the software list. See vboy for an example that doesn't allocate a superfluous region. . UI . Swallow save state slot key/button (ui\state.cpp) . Base "no sound" check on speaker devices. Currently the speaker device is the only way sound can get to the OSD layer, so its presence or absence determines whether the emulated system is capabale of producing sound. A few systems use chips with sound capability for other purposes (typically I/O or video) while leaving the sound outputs disconnected. These systems should display the notice about the absence of sound output (emu\validity.cpp and ui\info.cpp). . CHDMAN: Fixed TOC session type detection for extractcd (tools\chdman.cpp) . Timer system: Make operator+ and operator- constexpr (emu\attotime.h) . Driver device API cleanups: Remove the confusing driver_init virtual override. The function has been de-virtualized in most drivers that were calling it explicitly, and replaced by alternate overrides in others. Remove MCFG_VIDEO_RESET_OVERRIDE (not used anymore). Provide MCFG_MACHINE_START_REMOVE and MCFG_VIDEO_START_REMOVE for consistency. . LUA scripting enhancements: Added minimal support for manipulating bitmaps and drawing them in render containers. Y'CbCr 4:2:2, RGB and ARGB are supported. Argument order doesn't always match the underlying classes to make the Lua interface more consistent with render bounds and render containers. Added bindings for device_palette_interface. Fixed some errors in the documentation as well as documenting new functionality (mame\luaengine.cpp and luaengine_render.cpp). . Tweaked MAME icon . Consolidated drivers in single files. Minor cleanups (ashnojoe.cpp, aztarac.cpp, baraduke.cpp, battlane.cpp, bigevglf.cpp, bigstrkb.cpp, blockout.cpp, bogeyman.cpp, bombjack.cpp, chaknpop.cpp, darkseal.cpp, deniam.cpp, dogfgt.cpp, gumbo.cpp, gundealr.cpp, holeland.cpp, kopunch.cpp, lvcards.cpp, matmania.cpp, mosaic.cpp, mouser.cpp, mystston.cpp, namcond1.cpp, namcofl.cpp, news.cpp, pbaction.cpp, pktgaldx.cpp, pokechmp.cpp, renegade.cpp, sauro.cpp, shadfrce.cpp, sidepckt.cpp, solomon.cpp, spacefb.cpp, spbactn.cpp, spcforce.cpp, speedbal.cpp, ssozumo.cpp, stactics.cpp, suprloco.cpp, suprridr.cpp, tagteam.cpp, tankbatt.cpp, tecmo16.cpp, vaportra.cpp and wwfsstar.cpp) - SDLMAME: Include device serial number in ID when available for SDL joysticks (input\input_sdl.cpp) - VGM player: Added 60 new entries (hash\vgmplay.xml) - Compiling . Removed unused variables that may give compiler warning. Fixed some unused local variable compiler errors (formats\fs_oric_jasmin.cpp and tools\floptool.cpp). Cleaned up some ROM macro indentation and spacing. . Added support for building on OpenBSD/arm64 . Use util::streqlower in more places (emu\diimage.cpp, dislot.cpp, softlist_dev.cpp and ui\utils.cpp). Use std::collate for filename sorting (ui\inifile.cpp and ui\miscmenu.cpp). . Fixed SUBTARGET=tiny build (required Sega encrypted CPUs to be added) (mame\tiny.lua) - Debugger . Changed debugger command handler parameter vector element type from std::string to std::string_view . Changed gdbstub to no longer expect a CPU named ':maincpu'. The logic was changed to find the first CPU, without any particular expectation about naming. This should address the trouble getting -debugger gdbstub to work with Sega SG1000/SC3000 as it always segfaulted. Some cleanup (debug\debugcmd.cpp and debugger\debuggdbstub.cpp). . Removed some residual debugging stuff (sega\saturn.h) . Code cleanup. Use ioprocs methods and do a single read for normal input files (i.e. without an additional memcpy). Compute pc_mask without using loop. Correct likely mistake in calculation of rounded_size. Split main function in two (tools\unidasm.cpp). . Fixed failure to find CPU. Implemented thread alive command (debugger\debuggdbstub.cpp). 0.246 - New games: Tetris + Cherry Master (Aidonis Games bootleg) and Tetris + Cherry Master (Corsica, v8.01, encrypted) - New Working games: Polygonet Commanders (ver UAA) and Poly-Net Warriors (ver JAA) - New Non-Working games: Animal Wonders (ver A900), Inter Stellar Zangus (Laser Fantasy vol. 2), New Canasta, Puzz Ball (Japan, PZB1 Ver.A) and 'unknown Namco System 10 medal game (unknown code)' - New clones: Acrobat Mission (bootleg with Raiden sounds), Avengers (US), Avengers (US, revision C), Birdie Try (Japan revision S), Crazy Climber (ManilaMatic bootleg), Croupier (Playmark Roulette v.03.09), Derby Owners Club World Edition (Rev T), Football Power (Version 1.1), The Grid (version 1.01), Lucky Line III, Manx TT Superbike - DX/Twin (Revision C, set 2), Super Marukin-Ban (Japan 911128), Thunder & Lightning (set 2), Total Carnage (prototype, proto v 2.0 02/10/92), 'unknown Sidam poker (horizontal)' and Varth: Operation Thunderstorm (bootleg, set 3) - Removed games: Gun Smoke (Barcrest) (Dutch) (MPU4) (DGU 1.6) (alt sound roms), Old Timer (Barcrest) (Dutch, alt 'Black and White' sound roms) (DOT 1.1), Old Timer (Barcrest) (Dutch, alt 'JPM Classic' sound roms) (DOT 1.1) and Triple Dice (Barcrest) (Dutch) (MPU4) (DAT 1.4) - New drivers: kiwame.cpp and newcanasta.cpp - New devices: atacf, dac_2bit_oc, ns32008, ns32016, ns32032, ns32081, ns32082, ns32332 and opus108pm - New Cheat.dat: http://www.mamecheat.co.uk/ - CPU . IBM PowerPC 4xx/6xx: Added debugging flags to disassembly for simplified forms of branch instructions (powerpc\ppc_dasm.cpp) . Motorola MC6809: Simplify disassembly of pushes and pulls of both A and B (m6809\6x09dasm.cpp) . Motorola MC68HC11: Added M68HC11 internal EEPROM for relevant models (hitpoker.cpp and nscsi\cdd2000.cpp) - SOUND . DAC: Removed dac_4bit_binary_weighted_sign_magnitude_longcat_device (sound\dac.cpp). Removed "are these real" section, move 2bit 1s complement DAC to the others (it's not r2r or binary weighted, but simply connects one output to (+) speaker lead, one output to (-) speaker lead). . FM core . Updated YMFM library to latest version (https://github.com/aaronsgiles/ymfm) . Fixed incorrect operator volumes in some cases for OPL. Fixes music sounds different from Truxton PCB (ID 08108). Fixed PCM playback to cut off previous notes when new waveforms are selected (see dragnblz). Fixed reversed OPM noise frequency. Fixed bug preventing CSM key ons from being noticed. Fixed bug where SSG EG envelope could be left in inverted state. Fixed SSG envelope handling when tone and noise are off. . Increased strength of DAC discontinuity in YM2612 (ID 08231). Improved latching logic for fnums in OPN. Increased envelope suppression threshold so some effects don't get prematurely muted. . Improved ADPCM-B behavior at stop/limit addresses (more thorough rewrite here coming later). . K053260 KDSC: Updated sound NMI implementation for Asterix, Parodius DA!, Rollergames, The Simpsons and Vendetta. . K054539 ADPCM: Revert K054539 cubic interpolation in MAME 0.245 (causes regression with reverb and hardware realtime cubic interpolation did not exist yet). - DEVICE . ATA CompactFlash Card: Added ATA CompactFlash device (bus\ata\idehd.cpp) . Discrete Netlist . Added RS mode to netlist 9314 (devices\nld_dm9314.cpp) . Fixed regression: Code was parsing lib\netlist\macros instead of using compiled version. . Fixed TTL_74157_GATE (netlist\macro\nlm_ttl74xx_lib.cpp) . Include file work. Moved code to more appropriate locations. Apply Clang-format to modified files. Fixed some cspell errors. Applied emu.h rule. . Fixed-Frequency Monochrome Monitor: Make the code look more like the other MAME code: Indent initialiser lists by one level. Indent parameters by two levels when they need to be wrapped. Don't use const on parameters passed by value (not part of signature). Changed C-style casts to function-syntax casts (reduces parentheses) (video\fixfreq.cpp). . Floppy: New API and blk_t is probably going to change too (formats\fsmgr.cpp) . MC6840 PTM: Fixed a number of bugs in the emulation. Fixed one-shot behavior and timer enabling when switching to internal clock. Fixed counter duration and fixed output behavior in single-shot and dual-8-bit modes. . PCI: Fixed PCI device initialization (machine\pci.cpp) . Seta X1-001 Sprites: Seta X1-001 sprite device cleanup. Use 16-bit pointer for sprite RAM storage (despite some systems only having 8-bit CPUs). Renamed device and move to src/devices. Clean up variable naming in associated drivers. . Z80 SCC Channel: Added support for using /W//REQ as the RX DMA pin, as well as the /DTR//REQ pin as the TX DMA pin, allowing software that uses both directions simultaneously to function (machine\z80scc.cpp). - exidy440.cpp: Fixed invalid array access. Fixes certain sounds won't play in Cheyenne and Crossbow (ID 08128). - fgoal.cpp, supduck.cpp, supertnk.cpp and suprslam.cpp: Use finders for I/O ports, memory banks and other small cleanup. - goldstar.cpp: Dumped a couple missing roms for New Fruit Machine (Ming-Yang Electronic, vFB02-07A) and clone (Ming-Yang Electronic, vFB02-01A). - ksys573.cpp: Untangled some stuff from the base state. Save additional DDR stage state members. Fixes save state bug preventing stage input (GitHub #8890). - mainsnk.cpp, munchmo.cpp and rbisland.cpp: Consolidated driver in one file and minor cleanups - plygonet.cpp: Still got a lockup at quantum 600 - segae.cpp: Minor cleanup - seta.cpp . Redumped Block Carnival sound rom. Note: The rom for the Seta X1-010 chip was dumped at half size (4 MBit silkscreen on PCB but it's actually double that). . Added DIP locations to SD Gundam Neo Battling. Reduced clocks in Krazy Bowl to match known XTAL value. . Eliminate timer hack in Crazy Fight since YM3812 IRQ works well enough now - taito_z.cpp: Use generic output tag for cpua_ctrl_w. Fixes missing lamp output in Battle Shark (ID 06232). - vectrex.cpp: Pass the new value with the timer param, so it ends up in the y integrator. Param now holds a value and a destination, so that we write the value that existed at send time, rather than whatever's in PORTA when receipt occurs. Fixes 45 degree vectors in Thrust and Moon Lander (and presumably others). - AGEMAME . MPU4 . Set more likely extender boards for a number of mpu4 sets, based on how they're used. Allows more games to light all their lamps. Fixed (?) large extender hookup so that all lamps light, eg. m4andybt. Gave m4andybt better inputs (is mostly playable now, but some 7segs in the display still aren't hooked up). Moved some sets to mpu4mod2 and mpu4mod4yam based on sound chip use. . Refactoring and functionality additions. Added the ability to override the lamp current checks (will fix Lamp Drive errors) - Connect4 no longer requires a lamping hack. Replaced data logger with serial loopback for systems that expect this. . Current MPU4 work + sorting (including progress to make m4andybt display correctly with existing layout). Do the invert in the layout instead for 7segs. Fixes led extender strobes, allows output to be inverted. . Set YM XTAL to match PCB. Fixed some Dutch reel / input setups so that sets boot. Moved a couple of sets. Disable coinlock logic for now, the code is clearly not suitable for all cases, probably needs to be per machine. Fixed a few more reel setups. Allow m4madhse to boot based on AJR's research. m4matdr appears to be a 6 reel setup, this pushes it past the reel check to another error. . m4bjsm and m4bjsma: Added M48T02 RTC and system boots now. . bfm_sc4.cpp: Reduced some redundancy in a few more slot layouts . jpmsru.cpp: Added DAC sound to Lucky Casino (JPM) and clone - Air Duel: Decapped and dumped MCU for clone Air Duel (World, M72 hardware) and replaced simulation. Fixes missing graphics garble and blinking colours at startup, etc (ID 00184). Dumped also PAL rom. - Asterix, Parodius DA!, Rollergames, The Simpsons and Vendetta: Updated sound NMI implementation. Fixed missing sound effects in Asterix (ID 08379). Removed dead code in konami\asterix.cpp. - Avengers: Added Avengers protection chip info. Note: The protection chip underneath the sound module. Needs dumping. The protection is extensive: Palette data, calculates player movement and even a hand in the sound. The angle/movement stuff isn't 100% accurate either. - Bagman: Change fake 'Cabinet' dipswitch to configuration. Note: The Cabinet type set run through the edge connector, not dipswitch (verified on real PCB). - Belly Bomber: Fixed ROM loading - Cherry Chance: Derive clocks from known XTAL - The Dealer (Visco): Replaced i8742 simulation with 8742 I/O MCU emulation. Added timer hack to allow LED outputs to stabilize. - Dragon's Heaven (development board): Stop error.log filling up with gigabytes of junk - F-1 Grand Prix: Redumped clone F-1 Grand Prix (Playmark bootleg) - Gran Trak 10/Trak 10/Formula K [TTL] . Working racetrack and car graphics. Added test controls, coin/start switches and 555 countdown timer. Added RS mode to netlist 9314 (devices\nld_dm9314.cpp). . Fixed video and visible area. Fixed display of finish line, disable hack. . Performance and other improvements and fixes: Added support parameter FORCE_TRISTATE_LOGIC on mk28000. Added system device SYS_PULSE to generate pulse based on input changes parameters are delay, pulse width, input polarity and output polarity. Added USE_SPEED_HACKS define to gtrak10 to enable the use of the above. Brings gtrak10 from 18% to 120%. Improved interlaced video support in fixfreq.cpp. Added two interlace modes: progressive and interlaced which can be selected in machine configuration. More clang format work. Renamed link to connection. Introduced typed aliases. This information may be used later to rewrite netlists. Added a three terminal base device. This will allow the analog code to be more easily comparable to literature about MNA (Modal node analysis). BJT code is now a lot better readable. Fixed doxygen consistency. Added an example for a cmos inverter based on NMOS/PMOS fets. TRUTHTABLE_START was renamed to TRUTH_TABLE. Truth tables are now enclosed in braces. Netlists are now enclosed in braces. TRUTHTABLE_END() and NETLIST_END() removed from files. Fixed static solver script. Added file path to includes in nltool. - Lucky Ball 96: Fixed random crash at start (ID 08371) - Manx TT Superbike: Updated documentation - Mogura Desse: Added hardware info. Minor cleanups. Made PROM-to-palette mapping more obvious using bitswap. - Power Drift . Replaced World sound roms in clone Power Drift (Japan) and Power Drift - Link Version (Japan, Rev A) with versions from a complete Japan-version PCB. The EPR number on the Z80 program fits the sequence for pdriftj but the sound itself seems to be the same as the World version. . Dumped drive board ROM - Pro Mahjong Kiwame: Moved game to separate driver and updated notes. Removed unneeded banking callback. - Queen Bee: Identified several inputs (ID 08365) - The Simpsons: Fixed sound problems after soft reset (F3 key) (ID 08333) - Space Wars: Updated controls for clone Space Ship - SportStation: NBA Showtime NBA on NBC: Dumped revision 2.6 of the boot ROM - Stunt Cycle [TTL]: Fixed up rom addressing so that cycle displays properly. Added debugging defines to document still existing issues in Stunt Cycle netlist (atari\nl_stuntcyc.cpp). - Xain'd Sleena: Revert audio CPU clock change (MAME 0.245) that broke sound (ID 08366) - Fixed rom names in lwings.cpp, segae.cpp, seta.cpp, vegas.cpp and wallc.cpp - Dipswitch fixes in bagman.cpp, mpu4mod2sw.cpp, mpu4mod4oki.cpp, mpu4mod4yam.cpp and subsino2.cpp - Description changes of Avengers (US, revision A), Avengers (US, unknown revision), Bishi Bashi Champ Mini Game Senshuken (ver JAA, 3 Players) (ID 08362), Caribbean Boule (M1 Satellite board), Hissatsu Buraiken (Japan, revision A), Inter Stellar (Laser Fantasy), Manx TT Superbike - DX/Twin (Revision C, set 1), Manx TT Superbike - DX/Twin (Revision D), Super Bishi Bashi Champ (ver JAA, 2 Players), Super Bishi Bashi Champ (ver KAA, 3 Players), Super Bishi Bashi Champ (ver KAB, 3 Players), Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 1), Tetris + Cherry Master (Corsica, v8.01, unencrypted, set 2) (ID 08362), Touch and Go (earlier revision), Touch and Go (Korea, unprotected), Touch and Go (Non North America), Touch and Go (World), Thunder & Lightning (set 1) and 'unknown Sidam poker (vertical)' - Renamed (avengers) to (avengersc), (avengers2) to (avengersa), (m4jokmil) to (m4jok300), (m4jok300) to (m4jok300a), (m4remag) to (m4tbplayd), (m4rmg) to (m4tbplayc), (marukin) to (marukina), (totcarnp) to (totcarnp1) and (unkm1) to (carboule). - MAME . VIDEO RENDERING SYSTEM . Fixed -aviwrite/-mngwrite with -snapview native more than two screens. Previously it would attempt to use the same file name for all screens but the first (emu\video.cpp). . Improved naming of snapshots, especially when using -snapview native with -aviwrite/-mngwrite (see GitHub #10005). The automatically included screen number should come before the extension if supplied. Also, assume that users actually know what they're doing if they include a dot in a snapshot filename pattern (emu\video.cpp). . BGFX: Increased number of taps for halation and increased maximum width (crt-geom-deluxe). Moved repeated crt-geom/crt-geom-deluxe functions into their own file (crt-geom*). Added support for sRGB output gamma ramp and made it the default (crt-geom and crt-geom-deluxe). Re-built shaders for crt-geom update. . MEMORY SYSTEM: Fixed issues with memory views and snapshot naming. Include device tag in memory view save item registration names. Without this, instantiating two of the same device (or two devices with identically named memory views) causes a fatal error on start (emu\emumem_mview.cpp). . UI: Clear up std::vector asserts triggered when menu items is empty (ui\selgame.cpp and selsoft.cpp) . LAYOUT: More quality of life features for new source layout: Added support for wildcards in .flt filter files. You'll need to quote them to avoid /* being parsed as a comment initiator, like "seta/*.cpp" on a line including the quotes. Added an XSLT filter for listing system driver sources, like mame -lx | xsltproc scripts/xslt/list-system-sources.xslt. Converted the ci subtarget (which isn't really used much) into a .flt rather than .lua and .lst files. . PLUGINS: Fixed story.dat errors (data\data_story.lua) . 3RDPARTY: Fixes communication with WebSocket servers that send data immediately after the handshake (util\client_ws.hpp) . Removed a now-unnecessary cast to std::string (util\zippath.cpp) . Multi-Language: Updated Chinese UI and Brazilian Portuguese translations. Made parent/clone terminology consistent in Chinese translations. - SDLMAME/LINUX: Removed keyboard/mouse/joystick device mapping options. The keyboard and mouse device mapping options did nothing at all, mostly because of lack of support for separating inputs from multiple devices. The joystick options were useless when you have two of the same kind ofcontroller, and you can achieve the same thing with controller configuration files (osd\modules\input\input_sdl.cpp, sdl\osdsdl.h and sdl\sdlmain.cpp). - VGM player: Added 40 new entries and 5 updated entries (hash\vgmplay.xml) - Compiling . Reduced project cross-dependencies and slightly improved renaming script. Rearrange source to match project structure (done using the script in src/tools). . Eliminated cross dependencies between driver projects. Driver projects now use globs to search for files. There's less effort editing the Lua files when things are moved around. Remember it won't automatically pick up a change, so if you add/remove/change files, you should touch makefile to get it to find the change. Driver projects no longer get the top-level MAME directory as an include path. This means you need to think about how you structure things and not introduce nasty circular dependencies. Subtarget projects can now be generated entirely from .flt files without the need for separate Lua scripts and .lst files. This has been done for the arcade, mess and virtual targets. It effectively works like a SOURCES= build on a large scale. This means you need to organise things so the dependency genrators can find them. . Converted nl subtarget to use a filter rather than a script and driver list . Added make opions for filter file, adjusted source path display. Added SOURCEFILTER option to specify a driver filter file in your make options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or put it in your useroptions.mak if you'll be using it a lot). It functions more-or-less like SOURCES on steroids. Changed the way system/device source file paths are displayed to suit the new source layout better. INI file loading hasn't changed, that still just uses the base file name (ID 08378). Added overlooked trigger to src\bus.lua to include NES controller bus if the NES zapper sensor is needed. . Prevent src\devices from inadvertently including headers from src\mame. Start moving devices out of src\mame\shared to more appropriate places. . Set minimum required permissions on GitHub Actions workflows . Added support for directory names in SOURCES=. Added GitHub actions workflow to build bgfx shaders and upload as an artefact (workflows\bgfxshaders.yml). . Added notes about issues building MAME with Visual Studio (docs\source\initialsetup\compilingmame.rst) . Added CI job to check for likely mame.lst errors (workflows\ci-linux.yml and build\makedep.py) . Explicitly set LinkSupportCircularDependencies for NetBSD (scripts\genie.lua). Fixes GitHub #10011. Added support for building with Clang on OpenBSD . Clean up #includes in src\osd. Removed not used template function (osd\modules\lib\osdobj_common.h). . Fail earlier in the build process if SOURCES= specifies no files containing system definitions (scripts\build\makedep.py and scripts\genie.lua) . Don't put full path to target resources in generated version resource file (scripts\src\main.lua) . Removed leftover timer enums in some drivers and devices . Updated documentation on compiling MAME (docs\source\initialsetup\compilingmame.rst) 0.245 - New games: Ganbare Goemon, Marble Madness II (prototype), Megumi Rescue and Micon-Kit Part II - New Working games: Borderline (Tranquillizer Gun conversion), Champion Poker 2 (V100A), Happy Skill (Italy, V611IT), Invasion (bootleg set 1, R Z SRL Bologna), Long Hu Zhengba 2 (China, set 1), Shuang Long Qiang Zhu 2 VS (China, VS203J), Super Poker (V100xD03) / Formosa, Super Tarzan (Italy, V100I), Super Treasure Island (Italy, v1.6) and Tarzan Chuang Tian Guan (China, V109C, set 1) - New Non-Working games: Belly Bomber, Blicks, Covidarts, Frenzy Express, Higurashi no Naku Koro ni Jong (Japan), Ice Cold Beer (ICE), Jungle Treasures, M3001, M4001, Magic Touch, Minidart, Sanma - San-nin Uchi Mahjong [BET] (Japan, version 2.60), Sea Devil, Sekai Kaseki Hakken (Japan, SKH1 Ver.B), Space Liner, Tinker Bell, Tom's Adventures and 'unknown Zilec game on Blue Print hardware' - New clones: Beta Force, Butterfly Video Game (version A00), 'Chibi Maruko-chan ~Minna de Sugoroku Asobi~ no Maki (Ver.1.00A, 04/04/20)', Cookie & Bibi 2 (English / Korean), Dead or Alive (Model 2A), Egg Venture (Release 1), Final Star Force (Japan, set 2), Halley Comet (set 3), Hoop it Up World Tour - 3 on 3 (Rev 21), Knuckle Bash (location test), Kung-Fu Senjyo (bootleg, Spanish), Moon Cresta (Centromatic Spanish bootleg), Nostromo, Rolling Panic (v2.33), Samurai (World), Speedway (set 2), 'Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, encrypted)', Super Ship, Tournament Arkanoid (US, newer), Treasure Island (American Alpha, v3.0N), TV Game 8080, 'unknown 'Pac Man with cars' gambling game' and Wonder Boy (Tecfri bootleg) - New AGEMAME games: Cash Nudger? (SRU) (5p Stake, \xa32 Jackpot), Centurion (0152314, US), Each Way Nudger (JPM) (SRU) (revision 23C, 5p Stake, \xa31 Jackpot), Each Way Shuffle (bootleg?) (SRU) (10p Stake, \xa33 Jackpot), Each Way Shuffle (JPM) (SRU) (revision 13A, \xa32 Jackpot), Each Way Shuffle Deluxe (CTL) (SRU) (\xa33 Jackpot), Golden 2's (CTL) (SRU) (2p Stake, \xa31.50 Jackpot), Lite A Nudge (JPM) (SRU) (5p Stake, \xa31 Jackpot), Lucky Casino (JPM) (SRU) (revision 8, lower %), Lucky Casino (JPM) (SRU) (revision 8A), Nudge Double Up (JPM) (SRU) (5p Stake, \xa31 Jackpot), Nudge Double Up Deluxe (JPM) (SRU) (revision 12, \xa32 Jackpot), Silver Shuffle (CTL) (SRU) (2p Stake, \xa31.50 Jackpot), Spring Carnival - Jackpot Carnival (10032721, Queensland), Super 2p Shuffle (Mdm) (SRU) (2p Stake, \xa31 Jackpot) and Two Step (JPM) (SRU) (5p Stake, \xa32 Jackpot) - New PinMAME games: Aqualand (set 2), Phantom Haus (0.4), Super Star (Recreativos Franco, set 1), Wipeout (rev.2, set 2) and World Cup Soccer (Lx-1) - Removed games: The Big Match (Bwb) (MPU4) (set 6), Chase Invaders (Barcrest) (MPU4) (set 7), Reel Timer (Barcrest) (MPU4) (DWT), Pong (Rev E) external [TTL] and Vegas Strip (Barcrest) (MPU4) (VSG 0.3 YE, hack?) - New drivers: frenzyxprss.cpp, marblmd2.cpp, miconkit.cpp, segafruit.cpp, segas16b_isgsm.cpp and tomsadvs.cpp - New devices: g80_1500, hle_ps2_mouse, igs_inc, igs_mux, igs_string, kb_3270pc, kb_ec1841, kb_iskr1030, kb_ms_natural, kb_pc83, kb_pcat101, kb_pcat84, kb_pcxt83, keytronic_pc3270, keytronic_pc3270_at, kp64, mpu4chrboot_blast, mpu4chrpal, mpu4chrpal_bwb, pc_kbdc, sis5513_ide, sis630_bridge, sis630_gui, sis630_host, sis630_svga, sis7001_usb, sis7018_audio, sis900_eth, sis950_lpc, sis950_smbus, xmpu4chrpalboot19, z180asci_channel_0, z180asci_channel_1, z180asci_ext_channel_0 and z180asci_ext_channel_1 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . Hyperstone: Cleanups: Added helper functions for double-word register accesses and multiplication. Make 16-bit multiplications signed for EHCMULD and EHCMACD. Correct typo in comments (e132xs/e132xs.h and e132xsop.hxx). . Intel 80186: Converted i86\i186.cpp to use logmacro. Display and SIO wip for (MESS) Compugraphic MCS PowerView 10. . Intel 80C51GB: Correct SFR address of ACON for i8xc51gb disassembly (mcs51\mcs51dasm.cpp) . Intel I386: fsave resets the FPU (i386\x87ops.hxx and machine\i8087.cpp) . Intel Pentium III/4: Enable CMOV feature for Pentium III and 4. Added PSN stub feature for Pentium III (i386\i386.cpp). . Kawasaki Steel KL5C80A12: Added KP64 timer/counter units . MIPS R4000: Partially implement secondary cache tag manipulation (mips\r4000.cpp) . Motorola MC6809: Added support for stepping out (m6809\6x09dasm.cpp) . Motorola MC68000: Fixed disassembly of bit field extract instructions (m68000\m68kdasm.cpp) . Motorola MC68705xx: Timer updates. Allow timer prescaler and mode to be determined by configuration parameters on models for which these are not otherwise programmable (P2, P6, R2 and U2 models). Changed default value of timer input from 0 to 1 (m6805\m68705.cpp). . Taxan KY-80: Documentation update . Zilog Z80180/Z8S180/Z80182 and Hitachi HD64180RP: Implemented ASCI serial communication (z180\z180asci.cpp) - SOUND . ICS2115 WaveFront Synthesizer: Make fast timers less expensive and cleanup timer code (sound\ics2115.cpp) . K054539 ADPCM: Fixed DPCM table and added cubic interpolation. Using powers of 2 rather than squares for the DPCM table fixes DC offsets for 4-bit sample playback. . Sound Interface: Fixed missed samples due to state save. Use "stream.sound_stream" as module name for save_item. Use presave handler to store end_time() (emu\sound.cpp). Note: A save state may occur between time slices. Sound devices through sound.cpp are updated during a timer call every 20ms. When the state is saved, these devices are not updated to the current machine time. Consequently after a state load the devices have have a "time lag" since in postload buffer end time is forced to machine time. This change will save the last buffer end time so that all outstanding samples are processed. This is a core change. I tested it on some drivers. This needs a very thorough review and I post the PR primarily to document a possible solution. - DEVICE . 8042 Keyboard/Mouse Controller: Return 0 when reading data port with no data (makes (MESS) Nvidia nForce PC BIOS usable) . Atari RLE Motion Objects: Correct indentation on some source lines (video\atarirle.cpp) . Crazy Climber Sound Board: Use a Timer+DAC instead of MAME samples and added support for looping. Fixed off-by-1 problem when looping (audio\cclimber.cpp) . Discrete Netlist . Added cstddef to includes in ppmf.h. More explicit comments in ppmf.h. Fixed more typos and improved readiability. Fixed aligned_alloc. . Netlist plib\palloc.h now uses C++17 alignment aware operator new. Added more documentation to palloc.h. Made the use of allocation arenas more transparent throughout code. palloc now uses C++17 alignment aware operator new. This required further changes to the arena_deleter object to track alignment and size of allocated objects to avoid the use of alignment and size of base classes in case a unique_ptr was cast to a unique_ptr of the base class. Abbreviate one more type trait in palloc.h. . Static solver work and improve code readability. Added support for building individual static solver files (nltool). Added pre-built documentation files for nltool and nlwav. Extended typed_version to have patchlevel as well (netlist\plib). Compile more of ppmf.h with nvcc (netlist\plib). Added include guards to the generated files (create_devinc.py). Recreate generated files when python code has changed (build\makefile). Reduced nld_base.h usage in the core. Moved extern template class declarations to where they belong. Generally improved code readability and fixed a lot of issues cspell reported. . Make plib\ptypes.h noexcept issue workaround trigger for Clang 8 or Apple Clang 11.0.0 . Fixed bugs and more cpp instead of macros: C-style comments converted to C++. Fixed crash in state saving code when an abort queue processing event is pending. Fixed a bug where a net could be twice in the queue. Converted more macros to C++. Fixed SUBTARGET=nl build. Fixed potential bugs which would allow a terminal to belong to more than one net. This is not possible even for a short time. Moved some member function definitions out-of-class. Moved code out-of-class. Added constexpr where appropriate. Fixed mamenl build. Cleanup and indentation. . Fixed a bug where a net processing error may trigger a nullptr access. Applied some clang-tidy recommendations. Added no_return to plib::terminate. Properly encapsulate dynamic_cast usage. More review of noexcept. Added a clang-format file. Over time, all source files will be processed with clang-format. Used clang format on a number of files. Rewrote 74174. All device constructors now use a struct to pass data on to base classes. Neither netlist state nor the name are intended to be used in a constructor. After the base class was constructed, they can be accessed by state() and name(). The device construction macros can now be removed. Changes to the core will not need to be reflected in constructors. Changed truth table macros so that going forward NETLIST_END and TRUTH_TABLE_END can be replaced by a closing curly brace. netlists can than use curly braces enclosed blocks. More clang-format. Removed some macros completely. All derived classes from base_device_t now don't use macros any longer. As a result, delegator_t was removed. This class was only used to support macros. . Floppy . Changed the constructor of fs::dir_entry to take 'std::string &&name' instead of 'const std::string &name' (formats\fsmgr.h) . Fixed uPD765 command decoding, FDC works now in (MESS) Compugraphic MCS PowerView 10. . IBM Enhanced Graphics Adapter: Palette and memory map fixes (isa\ega.cpp). Added irq and row preset (isa\ega.cpp and video\crtc_ega.cpp). Latch start address (video\crtc_ega.cpp), fixes (MESS) PC (EGA) screen flickers and doesn't refresh properly (ID 08317). . IGS022 encrypted DMA device: Fixes for IGS017 games. Fixed initial auto-DMA mode. Enlarged internal RAM. Added stack. Fixed command 12: Copy -> Stack Push. Added command 45: Stack Pop. Fixed command 6d opcode 1: Add Imm -> Sub Values. Added command 6d opcode 0: Add Values. Extended logging. Don't do unneeded work on strings when logging is disabled (igs022 handle_command_6d; machine\igs022.cpp). . K056230 LANC: Some fixes . MOS 6522 VIA: Implemented Shift Register Mode 0 . Motorola MC6845 CRTC: Fixed unwanted L chrs for (MESS) mbee -bios 1 (video\mbee.cpp and video\mc6845.cpp) . PC hardware . Enable accesses to keyboard-related registers (pc_noppi_mb; machine\genpc.cpp) . ISA irq2 is redirected to pic8259_2 ir1 (fruitpc.cpp, magtouch.cpp, mtouchxl.cpp (machine\at.cpp) and pcat_dyn.cpp) . Volume Filter: Fixed regressions, apply_gain takes effect too early so do it it in a loop like how it was before. Use default variable type for m_gain (sound\flt_vol.cpp). . Z80 DMA Controller: Ensure DMA is stopped after most commands (machine\z80dma.cpp) - 20pacgal.cpp: Added support for RS232 terminal. Fixed regression, by connecting cts signal. - 8080bw.cpp and mw8080bw.cpp . Some cleanup/untangling. Got Space Invaders specific stuff out of the Midway 8080 B/W base class and some of the game-specific stuff out of the _8080bw_state class. Fixed cocktail mode input and DIP switches in a few games. . Updated Space Invaders (CV Version) and Space Invaders Part II input definitions based on schematics and manuals. Got rid of the duplicate joystick inputs in Rolling Crash / Moon Base. - cosmos_playc8f.cpp: Added main PCB ASCII layout - hyprduel.cpp and yunsun16.cpp: Use standard ROM loading macros and other minor cleanups - igs017.cpp . Promoted Champion Poker 2 (V100A), Happy Skill (Italy, V611IT), Long Hu Zhengba 2 (China, set 1), Shuang Long Qiang Zhu 2 VS (China, VS203J), Super Poker (V100xD03) / Formosa, Super Tarzan (Italy, V100I) and Tarzan Chuang Tian Guan (China, V109C, set 1) to working. . Improved protection and decryption. Implemented "magic" I/O as a memory map (IGS_MUX) for added flexibility. Cleaned up/Finished hopper emulation. Added DIP locations. . Hooked up IGS_INCDEC protection to cpoker2, spkrform, starzan and tarzanc. Implemented specific IGS_INC protection in cpoker2. Hooked up improved IGS022 protection to lhzb2 and slqz2. Added IGS025 string protection to lhzb2, lhzb2a, mgcs, slqz2, spkrform, starzan, tarzanc and tjsb. . Palette scramble and tweaked tiles decryption in tarzanc (used also by cpoker2, happyskl and starzan). Decrypted sprites in starzan and tarzanc (used also by happyskl) . Lamps and layout for cpoker2, happyskl and starzan. . Joystick inputs in mgcs. Finished inputs in clone spkrform. Allow hiding gambling (switching to Formosa and back). . Moved protection data to external files (genius6, genius6a, genius6b, iqblocka, iqblockf, lhzb2, lhzb2a, mgcs, slqz2, spkrform, starzan, tarzan, tarzana, tarzanc and tjsb) . Changed 'unknown IGS game (V100A)' to 'Champion Poker 2 (V100A)'. . IGS022 encrypted DMA device: Fixes for IGS017 games. Fixed initial auto-DMA mode. Enlarged internal RAM. Added stack. Fixed command 12: Copy -> Stack Push. Added command 45: Stack Pop. Fixed command 6d opcode 1: Add Imm -> Sub Values. Added command 6d opcode 0: Add Values. Extended logging (machine\igs022.cpp). . Fixed 'Demo Sounds' dipswitch for tarzanc - midwunit.cpp: Added interlock and bill inputs for all games - midxunit.cpp: Correctly designate interlock input as such - pacman.cpp: Cleaned up inputs. Removed DIP switch locations from edge connectors/split-pads in pacman. Added DIP switch locations to mspacman. Removed duplicated inputs from mspacpls and mspachmp. Marked Rack Test as PORT_TOGGLE. Changed fake DIP switches to machine configuration settings. Added publisher for Titan (Pac-Man hack). - pgm.cpp: Merged the two halves of the latches and removed overeager synchronizing (machine\pgmprot_igs027a_type1.cpp). - piggypas.cpp: Added PCB ASCII layout - plygonet.cpp . DSP56156 fixes: Fixed ANDI, BFCLR errata and DEC24 not affecting flags. Fixed or added support for too many opcodes to list. Added proper devcb_write16 for Port C output (cpu\dsp56156). . Polygonet cleanup . Fixed banking and tightened up VRAM access. Account for endianness in tilemap accesses. Switched to logmacro, merged into one file and general code cleanup. Added span-drawing support. . Changed sound hookup so that Poly-Net Warriors can boot and fixed some gfxdecode errors for the ROZ layer. Poly-Net Warriors goes in-game. More PSAC2 fixes, some K056230 fixes, plus some screen size fixes. . More fixes. Applied likely ROZ layer clamping behavior. Reduced quantum from perfect to 600Hz. - punchout.cpp: Correctly labeled service button and coin 2 inputs - rohga.cpp: Cleanup driver. Factored out common machine configuration. Correct nitrobal protection device. - rpunch.cpp: Modernised code a little - segas16b.cpp: Moved ISG Selection Master games to its own driver (segas16b_isgsm.cpp) - segaufo.cpp: Small update to notes. Added GAL for UFO Catcher 21. - seta.cpp . Cleaned up a few more legacy callbacks. Split a bit more off from base class. . Implemented protection for Thunder & Lightning using a PALCE16V8. Correct address range for protection write handler. Added recreated PAL image based on analysis - su2000.cpp: Added SD2000 and SU2000 games list and a link to SU2000 technical manual - thepit.cpp: Modernizations and fixes. Replaced legacy VBLANK interrupt generators. Derived audio CPU interrupt from VSYNC, not VBLANK. Added multiplexer device for inputs. Fixed screen offsets for cocktail-flipped mode (ID 08273). - tickee.cpp: Fixed Rapid Fire gun inputs and cleaned up code. Split the lightgun games into a derived class. Got rid of run time I/O port tag lookups. Got rid of legacy start/reset callbacks. Registered some members for save states. - AGEMAME . Reduced redundancy in more fruit machine layouts (bfm_sc1.cpp, bfm_sc2.cpp, bfm_sc4.cpp and mpu5sw.cpp). Added notes to pluto5.cpp. . MPU4 refactoring, reverse engineering and notes etc.: . Moved protection simulation to devices and got more games to boot. Correct lamp output mapping for most games. Correctly identified more games and removed bad dumps. Organised sets better and cleaned up some of the implementation. Moved some crystal specifics into crystal state and removed some unneccessary parts of the bootleg chr emuation. . Further moving of class specifics into classes, sorting of sets and reel configs for booting: Moved manufacturer / system specifics into subclasses (eg. some bwb configs). Identified correct reel setups for many sets, allowing them to boot further. Added some default input configurations for games needing stake keys and percent keys so that they boot by default. Moved some sets around based on the machine type. . Identified more mpu4bwb.cpp sets and set better input defaults . jpmsru.cpp: Added new sets and fixed audio. Fixed audio by setting a precise value for the tone pot, also removed unnecessary amplifier section resistor. Added impulses to coin inputs to stop j_ewnd giving credits every frame. Turned the audio level down a bit. - Berzerk: Documented the differences between RC28 and RC31 sets - Bingo Party Multicart and unknown Sega gambling game: Fixed missing port in games with the comms board - Bomb Bee: Redumped game and added hardware info - Borderline: Promoted clone Borderline (Tranquillizer Gun conversion) to working. Added new maincpu 1174a.u30. - Breakout [TTL]: Improved cpanel in internal artwork, hide it by default (layout\breakout.lay). - Catch (prototype): Fixed game continually reboots/restarts - triggering watchdog (ID 08358) - Fantasy Land: Verified CPUs and XTAL - Final Fight: Added test mode and button 3 notes - Fire One: Swapped P1/P2 inputs and simplified paddle reads - Galaxy Wars: Fixed port 0 - it requires a fixed value. - GameCristal: Initial work towards a SIS630 based chipset driver. Added more or less complete implementations of sis630_host, sis950_lpc, sis630_gui, sis5513_ide, sis7001_usb, sis7018_audio and sis900_eth devices. - Golden Axe: Easier/Easy dipswitch setting was the wrong way around for Golden Axe and clones Golden Axe (bootleg) and Golden Axe (encrypted bootleg). - Hanaroku: Use Seta device for sprites and correct type of sound chip - King Derby: Prevent clone Cow Race (King Derby hack) from locking up MAME - M-79 Ambush: Improved input lookup table generation and added DIP switch locations - Mambo A Go-Go: Use dsem2 BIOS like real hardware does - Missile Command: Improved inputs. Added correct factory default DIP switch settings. Removed duplicate inputs from clone Super Missile Attack (for rev 1). - Multi Win: Demoted clone Multi Win (Ver.0091, encrypted) to MACHINE_IMPERFECT_GRAPHICS (different encryption scheme and different tilemap/screen parameters). - Nostromo: Correct the default number of 'Lives' for clone Star Trek (Head On hardware) - PinMAME . gts1.cpp and recel.cpp: Fixed 2 PPS4 CPU bugs, gts1 games are mostly playable. Fixed PPS4 bug with lb/lbl commands (pps4\pps4.cpp). Improved the gts1 sound. . Updated status of some pinballs - Pong [TTL]: Removed obsolete external version 'Pong (Rev E) external [TTL]' - Psycho-Nics Oscar: Added hardware infos - Rescue: Fixed game lockup after hitting reset "F3" at the title screen showing "RAM 1GHJK" (ID 08246) - River Patrol: Fixed resetting game crashes with ram error (ID 08237) - Rockin' Bowl-O-Rama: Added info about I/O board - Safari Rally: Use membank for the banked vram - The Simpsons: Fixed attract mode music cuts off (ID 08333). Note: The Z80 checks if NMI has gone from high to low during the instruction, on the rising edge of CLK, at the start of the last cycle (in this case cycle 3 of the write). The circuit raises NMI when MREQ/WR goes high, on the falling edge of CLK, half way through cycle 3 of the write. NMI is then lowered when the sound chips timer output subsequently goes from low to high. MAME instead does not emulate memory cycle timing and checks the NMI before executing an instruction, so we have to manually delay the NMI until the following HALT instruction has started. - Sonic The Hedgehog 3: Make game to boot. Added basic protection simulation. - Space Duel: Added support for Space Duel's cocktail mode. This change introduces a cabinet type setting which allows Space Duel to be placed into cocktail mode. When run in a cocktail cabinet, the game: Strobes the invert x & invert y outputs to rotate the video 180 degrees. This is necessary because the monitor in the SD cocktail is mounted upside-down relative to the upright. Draws the player 2 score in an orientation where they can be read by the second player, who stands on the opposite side of the cabinet as player one. In addition to the driver support, I had to implement video flipping in avg_device, as it didn't support it. - Space Invaders: Improved emulation for clone Invasion (Sidam), promoted clone Invasion (bootleg set 1, R Z SRL Bologna) to working. Further clarifications for Sidam Invasion hardware. - Super Shanghai Dragon's Eye: Fixed pf1 tilemap paging size, necessary for end credits to be displayed properly. - Treasure Bonus (Subsino, v1.6): Fixed clone Super Treasure Island (Italy, v1.6) protection patch, promoted game to working. - TH Strikes Back: Added PLD files - Thunder Dragon: Fixed missing sprites in attract mode for clone Thunder Dragon (bootleg with Raiden sounds, unencrypted), thanks to info from hammy. - Top Roller . Fixed textlayer color problem, fixes incorrect player life counter graphics (ID 08344). Replaced gfx1 rom 15.h4 with a redump from July 2001. . Correct playfield visible area. Use a Timer+DAC instead of MAME samples and added support for looping. Fixed off-by-1 problem when looping (audio\cclimber.c), fixes incorrect vehicle sound effects (ID 08343). Assume COIN3 is service coin (unlike COIN1/COIN2, makes no sound effect). . Fixed bigsprite layer in cocktail mode (video\cclimber.cpp) - Turtle Ship: Dumped PROMs, added hardware info and correct clocks. - Up Scope: Put code in anonymous namespace - Vamf x1/2: Improved hardware info - Venture: Hooked up coin counters - Volfied: Changed joysticks from 8-way to 4-way. Supported by the manual: "The control of this game uses one 4-way lever and one button". - Xain'd Sleena: Correct audio CPU clock to match measurements - Xybots: Swap coin inputs - Fixed rom names in dec8.cpp, dotrikun.cpp, igs017.cpp, jack.cpp, m72.cpp, namcos23.cpp, segaufo.cpp, sidearms.cpp, warpwarp.cpp and zn.cpp - Dipswitch fixes in 8080bw.cpp, astinvad.cpp, igs017.cpp, megadriv_acbl.cpp, missile.cpp, model2.cpp, pacman.cpp, segas16b.cpp, segasm1.cpp, starfire.cpp, system16.cpp and vicdual.cpp - Description changes of Aqualand (set 1), Champion Poker 2 (V100A), 'Chibi Maruko-chan ~Minna de Sugoroku Asobi~ no Maki (Ver.1.00B, 05/06/22)', Cookie & Bibi 2 (English, set 1), Cookie & Bibi 2 (English, set 2), Cookie & Bibi 2 (English, set 3), Cue Ball Wizard (set 1), Cue Ball Wizard (set 2), Cue Ball Wizard (set 3), Diana Bifuca (unknown version, ProSPDP based), Driving Party: Racing in Italy (ver EAA), Each Way Nudger (JPM) (SRU) (5p Stake, \xa31 Jackpot), Each Way Shuffle (JPM) (SRU) (revision 8A, \xa32 Jackpot), Each Way Shuffle (JPM) (SRU) (revision 13C, \xa32 Jackpot), Final Furlong 2 (Japan, FFS1 Ver.A), Final Star Force (Japan, set 1), Gladiators (pinball), Halley Comet (set 1), Halley Comet (set 2), Jurassic Park III (ver EBC), Jurassic Park III (ver UBC), The Keisatsukan: Shinjuku 24-ji (ver AAC), The Keisatsukan: Shinjuku 24-ji (ver AAE), The Keisatsukan: Shinjuku 24-ji (ver JAE), The Keisatsukan: Shinjuku 24-ji (ver KAC), The Keisatsukan: Shinjuku 24-ji (ver KAE), La Cucaracha (set 1), La Cucaracha (set 2), Long Hu Zhengba 2 (China, set 1), Long Hu Zhengba 2 (China, VS221M), 'machinaZOIS Virtual Training Center', Man Guan Caishen (China, V103CS), Man Guan Daheng (Taiwan, V123T1), Man Guan Daheng (Taiwan, V125T1), 'lots of MPU4 games', Petaco (new hardware, set 1), Petaco (new hardware, set 2), Police 911 (ver UAD), Lucky 2's (JPM) (SRU) (revision 9, 10p Stake, \xa32 Jackpot), Lucky Aces (SRU) (\xa31.50 Jackpot), Plus 2 (CTL) (SRU) (2p Stake, \xa31 Jackpot), Samurai (Japan), Shuang Long Qiang Zhu 2 VS (China, VS203J), Shuzi Leyuan (China, V127M, gambling), Speedway (set 1), Stargate (pinball), Stargate (pinball, rev.1), Stargate (pinball, rev.2), Stargate (pinball, rev.3), Stargate (pinball, rev.4), Stargate (pinball, rev.5), Street Fighter II (pinball, set 1), Street Fighter II (pinball, set 2), Street Fighter II (pinball, set 3), Super 2 (SRU) (2p Stake, \xa31 Jackpot), Super Da Man Guan II (China, V754C), Super Mario Brothers (pinball, set 1), Super Mario Brothers (pinball, set 2), Super Mario Brothers (pinball, set 3), Super Mario Brothers (pinball, set 4), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 1), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, unencrypted, set 2), Super Star (Recreativos Franco, set 2), Tarzan Chuang Tian Guan (China, V109C, set 1), Tarzan Chuang Tian Guan (China, V109C, set 2), Tee'd Off (pinball), Tee'd Off (pinball, rev.1), Tee'd Off (pinball, rev.3), Tian Jiang Shen Bing (China, V137C), Tournament Arkanoid (US, older), Wipeout (rev.2, set 1), World Challenge Soccer (rev.1, set 1), World Challenge Soccer (rev.1, set 2), Yosaku to Donbei (set 1) and Yosaku to Donbei (set 2) - Renamed (andretti) to (andretti0), (andretti4) to (andretti), (butrfly) to (butrflybl), (cueball2) to (cueballa), (cueball3) to (cueballb), (doaab) to (doaae), (freddy) to (freddy3), (freddy4) to (freddy), (gokidetor) to (cucaracha), (gokidetor2) to (cucaracha2), (j_ews) to (j_ewsb), (j_ews8a) to (j_ews), (j_luck2) to (j_lt), (j_luckac) to (j_la), (j_unk) to (j_ewnc), (m4addrc__e) to (m4nnww2__hx3), (m4addrc__f) to (m4nnww2__hx4), (m4addrc__n) to (m4nnww2__hx5), (m4c9__a0) to (m4c999e), (m4c9__a1) to (m4c999f), (m4c9__a2) to (m4c999g), (m4c9__a3) to (m4c999h), (m4c9__ay) to (m4c999i), (m4c9__az) to (m4c999j), (m4c9__n) to (m4c999), (m4c999) to (m4c999c), (m4c999a) to (m4c999d), (m4c999b) to (m4c999a), (m4c999c) to (m4c999b), (m4centpt) to (m4swpnotb), (m4centpta) to (m4centpt), (m4ch30) to (m4nnww__ay), (m4cld02) to (m4rhrc__9), (m4crzjwl) to (m4crzjwle), (m4crzjwle) to (m4crzjwl), (m4crzjwlh) to (m4cjdlx), (m4csoc) to (m4csoc__j), (m4csoc__a) to (m4csoc), (m4csoc__b) to (m4csoc__a), (m4csoc__c) to (m4csoc__b), (m4csoc__d) to (m4csoc__c), (m4csoc__e) to (m4csoc__d), (m4csoc__f) to (m4csoc__e), (m4csoc__j) to (m4csoc__f), (m4eaw__bz) to (m4eaw51), (m4exotic__a) to (m4exotic), (m4exotic__c) to (m4exotic__b), (m4exotic) to (m4exotic__c), (m4exotic__b) to (m4exotic__a), (m4hvhel__f) to (m4hvhel__g), (m4hvhel__g) to (m4hvhel__h), (m4hvhel__h) to (m4hvhel__f), (m4hypvip) to (m4shv), (m4hypvip__a) to (m4shv__q), (m4hypvip__b) to (m4shv__g), (m4hypvip__c) to (m4shv__b), (m4hypvip__d) to (m4shv__c), (m4hypvip__e) to (m4shv__a), (m4hypvip__f) to (m4shv__d), (m4hypvip__g) to (m4shv__0), (m4hypvip__h) to (m4shv__1), (m4hypvip__i) to (m4shv__6), (m4hypvip__j) to (m4shv__7), (m4hypvip__k) to (m4shv__10), (m4hypvip__l) to (m4shv__h), (m4hypvip__m) to (m4shv__r), (m4hypvip__n) to (m4shv__f), (m4hypvip__o) to (m4shv__2), (m4hypvip__p) to (m4shv__3), (m4hypvip__q) to (m4shv__5), (m4hypvip__r) to (m4shv__9), (m4hypvip__s) to (m4shv__11), (m4hypvip__t) to (m4shv__4), (m4hypvip__u) to (m4shv__8), (m4hypvip__v) to (m4shv__12), (m4indycr__b) to (m4indycr__a), (m4indycr__a) to (m4indycr__e), (m4indycr__c) to (m4indycr__b), (m4indycr__d) to (m4indycr__f), (m4indycr__e) to (m4indycr__c), (m4indycr__f) to (m4indycr__d), (m4montez) to (m4przmc__g), (m4nnww__0) to (m4nnww2__c), (m4nnww__1) to (m4nnww2__d), (m4nnww__2) to (m4nnww2__e), (m4nnww__3) to (m4nnww2__f), (m4nnww__4) to (m4nnww2__g), (m4nnww__5) to (m4nnww2__h), (m4nnww__6) to (m4nnww2__i), (m4nnww__7) to (m4nnww2), (m4nnww__8) to (m4nnww2__j), (m4nnww__as) to (m4nnww2__o), (m4nnww__at) to (m4nnww2__k), (m4nnww__au) to (m4nnww2__l), (m4nnww__av) to (m4nnww2__m), (m4nnww__aw) to (m4nnww2__n), (m4nnww__ay) to (m4nnww2__hx1), (m4nnww__az) to (m4nnww2__hx2), (m4nnww__y) to (m4nnww2__a), (m4nnww__z) to (m4nnww2__b), (m4przmon__0) to (m4przmc__q), (m4przmon__1) to (m4przmc__s), (m4przmon__q) to (m4przmc__h), (m4przmon__r) to (m4przmc__p), (m4przmon__s) to (m4przmc__i), (m4przmon__t) to (m4przmc__j), (m4przmon__u) to (m4przmc__k), (m4przmon__v) to (m4przmc__l), (m4przmon__w) to (m4przmc__r), (m4przmon__x) to (m4przmc__m), (m4przmon__y) to (m4przmc__n), (m4przmon__z) to (m4przmc__o), (m4ra__r) to (m4redunk), (m4rhr__9) to (m4supst__b7), (m4rackem) to (m4rackem__a), (m4rackem__a) to (m4rackem), (m4ssclas__f) to (m4supst__b6), (m4sss) to (m4przsss__1), (m4sss__a) to (m4sss), (m4suphv) to (m4shv__e), (m4suphv__a) to (m4shv__i), (m4suphv__b) to (m4shv__s), (m4suphv__c) to (m4shv__x), (m4suphv__d) to (m4shv__j), (m4suphv__e) to (m4shv__t), (m4suphv__f) to (m4shv__y), (m4suphv__g) to (m4shv__k), (m4suphv__h) to (m4shv__u), (m4suphv__i) to (m4shv__l), (m4suphv__j) to (m4shv__m), (m4suphv__k) to (m4shv__v), (m4suphv__l) to (m4shv__n), (m4suphv__m) to (m4shv__w), (m4suphv__n) to (m4shv__z), (m4suphv__o) to (m4shv__o), (m4suphv__p) to (m4shv__p), (m4supscr__a) to (m4supscr), (m4supscr) to (m4supscr__n), (m4supscr__b) to (m4supscr__a), (m4supscr__c) to (m4supscr__b), (m4supscr__d) to (m4supscr__c), (m4supscr__e) to (m4supscr__d), (m4supscr__f) to (m4supscr__e), (m4supscr__g) to (m4supscr__f), (m4supscr__h) to (m4supscr__g), (m4supscr__i) to (m4supscr__h), (m4supscr__j) to (m4supscr__i), (m4supscr__k) to (m4supscr__j), (m4supscr__l) to (m4supscr__k), (m4supscr__m) to (m4supscr__l), (m4supscr__n) to (m4supscr__m), (m4tutfrt__a0) to (m4tutbwb_e), (m4tutfrt__a1) to (m4tutbwb_f), (m4tutfrt__a2) to (m4tutbwb_g), (m4tutfrt__a3) to (m4tutbwb_h), (m4tutfrt__a4) to (m4tutbwb_i), (m4tutfrt__a5) to (m4tutbwb_j), (m4tutfrt__av) to (m4tutbwb), (m4tutfrt__aw) to (m4tutbwb_a), (m4tutfrt__ax) to (m4tutbwb_b), (m4tutfrt__ay) to (m4tutbwb_c), (m4tutfrt__az) to (m4tutbwb_d), (m4vivalv) to (m4vivalv__z), (m4vivalv__0) to (m4vivalv__l), (m4vivalv__1) to (m4vivalv__m), (m4vivalv__2) to (m4vivalv__n), (m4vivalv__3) to (m4vivalv__o), (m4vivalv__4) to (m4vivalv__p), (m4vivalv__5) to (m4vivalv__q), (m4vivalv__6) to (m4vivalv__r), (m4vivalv__7) to (m4vivalv__s), (m4vivalv__8) to (m4vivalv__t), (m4vivalv__9) to (m4vivalv__h), (m4vivalv__a) to (m4vivalv__i), (m4vivalv__b) to (m4vegast__0), (m4vivalv__c) to (m4vegast__1), (m4vivalv__e) to (m4vivalv__0), (m4vivalv__f) to (m4vivalv__1), (m4vivalv__g) to (m4vivalv__u), (m4vivalv__h) to (m4vivalv__v), (m4vivalv__i) to (m4vivalv__2), (m4vivalv__j) to (m4vivalv__3), (m4vivalv__k) to (m4vivalv__4), (m4vivalv__l) to (m4vivalv__5), (m4vivalv__m) to (m4vivalv__6), (m4vivalv__n) to (m4vivalv__w), (m4vivalv__o) to (m4vivalv__x), (m4vivalv__p) to (m4vivalv__y), (m4vivalv__q) to (m4vivalv__a), (m4vivalv__r) to (m4vivalv__b), (m4vivalv__s) to (m4vivalv__c), (m4vivalv__t) to (m4vivalv__d), (m4vivalv__u) to (m4vivalv__e), (m4vivalv__v) to (m4vivalv__f), (m4vivalv__w) to (m4vivalv), (m4vivalv__x) to (m4vivalv__g), (m4vivalv__y) to (m4vivalv__j), (m4vivalv__z) to (m4vivalv__k), (m4xtrm__b) to (m4xtrm), (m4xtrm) to (m4xtrm__b), (pongf) to (pong), (prospdp) to (dibifpspdp), (samurai) to (samuraij), (sekaikh) to (sekaikha), (sfight2) to (sfightii), (sfight2a) to (sfightiia), (sfight2b) to (sfightiib), (smb) to (smbp), (smb1) to (smbpa), (smb2) to (smbpb), (smb3) to (smbpc), (stargatp) to (stargatp0), (stargatp5) to (stargatp), (supstarf) to (supstarfa), (teedoffp) to (teedoffp0), (teedoffp3) to (teedoffp), (unkigs) to (cpoker2) and (wcsoccerd2) to (wcsoccer1a) - MAME . VIDEO RENDERING SYSTEM . Honour antialias flag on textured quad primitives (render\drawbgfx.cpp), fixes gfx view renders blurry tiles for BGFX (ID 08340). . Put a layout with views for common monitor aspect ratios in a place where cards can use it (layout\monitors.lay). This is especially useful for the (MESS) NuBus cards that can support portrait monitors. . DEVICE . Removed device_timer, device_timer_id, et al in favor of direct callback members. Primarily, this removes device_t::device_timer, device_t::timer_set, device_t::synchronize, device_t::timer_expired, and device_timer_id. Use of device_timer often resulted in unnecessary trampolining in addition to switch/case overhead on a driver/device level, and additional logic to manage delegated vs. ID-based timers on a core level. In the worst cases, devices were performing a switch/case with only one valid case. device_scheduler::timer_set is marked deprecated as the only remaining direct uses are via the Lua engine and a few drivers that need refactoring anyway. The remaining uses occur via device_scheduler::synchronize. As a middle ground between the extremely short timer_alloc() and the extremely long machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(widget_device::contoso_tick), this)), a helper function in device_t has been added which can be invoked with the following syntax: timer_alloc(FUNC(widget_device::contoso_tick), this). . Removed ID-based timer_alloc. Removed timer_set. Removed synchronize. Removed timer_expired. Added shorthand timer_alloc to avoid lengthy machine().scheduler().timer_alloc() calls (emu\device.cpp). . Removed now-unused m_id and m_device members (emu\schedule.cpp) . Converted some devices to use logmacro. Made usage of m_member prefix consistent. Removed string-based ioport lookups. Favored BIT() macro for single-bit checks. Removed C89-style variable declarations when noticed. Removed FUNCNAME to avoid compiler-specific #define checks in devices. Removed unecessary member prefixes/suffixes. Re-ordered driver overrides and function members. Made capitalization consistent on class members. . UI . Removed legacy OPTION_* option type constants. These constants were polluting the global namespace (util\options.h). . Added menus to fill a couple of gaps and improved consistency . Added menus for controlling toggle inputs, and showing recognised input devices and control state. Moved input menu options off main menu to a submenu, as there are a lot of them now. Moved menu heading drawing into base class, added headings to more menus, and made headings more consistent with the menu items used to reach them. Also made terminology more consistent. Changed the default names for buttons and hat switches/D-pads to use 1-based numbering. DirectInput still returns 0-based button numbers for some devices. Started adding documentation for menus, to hopefully help people find menus they remember seeing but can't recall how to access. . For translators, this makes terminology more consistent. In particular: * "Settings" is preferred over "configuration" in a number of places, as the latter can be construed as referring specifically to settings stored in .cfg files in the cfg_directory folder. Also, references to saving machine configuration could be interpreted as relating to the settings on the "Machine Configuration" menu. * The controls on host input devices (e.g. keys, buttons, joystick axes) are referred to as "controls", while emulated inputs are referred to as "inputs". * The menus for assigning host controls to emulated inputs are called "input assignments" menus to distinguish them from other input settings menus. * Combinations of controls that can be assigned to emulated inputs are referred to as "combinations" rather than "sequences". * The potentially confusing term "ROM set" has been removed altogether. Use "short name" to refer to a device or system's identifier. * "System" is used in almost places to refer to a complete, runnable system rather than "Machine". * "Driver" is now only used to refer to source files where systems or devices are defined - it is no longer used to refer to individual systems. * A few more menus have message context for the messages. This makes it a bit easier to guess where the messages are used. It also means you can use different translations in different places if necessary (e.g. if the same English text should be translated differently as an item in one menu and as a heading in another). . Put the system-specific items on the input settings menu together and fixed the crosshair visibility settings. . Got rid of some of the OSD input modules dependence on concrete input classes from emu . Avoid assert in std::vector when no items in menu (ui\selgame.cpp) . PLUGINS . Cleaned up data plugin a little (plugins\data\init.lua) . Reworked the data plugin code substantialy: Use the plugin data folder for storing the cache. The history folder may be read-only or shared with different configurations. Don't create the cache database or surrounding folder if there's nothing to store in it. Actually use prepared queries multiple times rather than always destroying them after a single use. Added proper error checking for most database operations. Improved query performance by avoiding outer joins and table scans (plugins\data\*). Updated data plugin documentation (plugins\data.rst). . Changed osd_subst_env to accept a std::string_view and return a std::string (osd\osdcore.h) . Scheduling engine . Optimised the scheduler's handling of unscheduled timers - gives a 50% performance improvement in some timer-heavy drivers (emu\schedule.cpp). . Silence compiler warning in non-debug build (emu\schedule.h). Fixed regressions with some temporary timers (emu\schedule.cpp). . Fixed a few more pessimising assumptions. Gains a few percent in Ketsui and SNES SuperFX. Fixed some issues with Visual Studio project generation after the changes to Windows resource creation. . Added better endianness swizzling helpers. Added some more operations on endian-swizzlers. Changed a few more drivers to use them (util\endianness.h) (drivers\targeth.cpp, thoop2.cpp, twins.cpp, ultrsprt.cpp, wrally.cpp, machine\gaelco2.cpp, machine\kaneko_toybox.cpp, video\beathead.cpp, video\psikyo.cpp, video\psikyo4.cpp, video\psikyosh.cpp, video\rungun.cpp, video\segas32.cpp and video\taitojc.cpp) . The bookkeeping assert was checking the wrong entity (nice find) (emu\machine.h) . Work around an MSVCPRT shortcoming with promise types (see e.g. GitHub #9665) (mame\infoxml.cpp) . Use finders, templates and other small cleanups (astinvad.cpp, blueprnt.cpp, gotya.cpp, plygonet.cpp, rollerg.cpp, rpunch.cpp, sderby.cpp, shootout.cpp, tankbust.cpp and yunsun16.cpp) . Multi-Language: Updated translations and cleaned up a little. Updated Czech and Slovak, Greek and Ukrainian translations. - SDLMAME/LINUX . Moved devmap_init down into class (input\input_sdlcommon.cpp and input_x11.cpp) . Acknowledge presence of circular dependencies to keep GNU ld happy on Linux (scripts\genie.lua) . Throw a fatal error if combination of bgfx video and wayland videodriver has been detected (sdl\sdlmain.cpp) - VGM player: Added 162 new entries and 6 updated entries (hash\vgmplay.xml) - Compiling . Removed spurious /wx option from prjects generated for Visual Studio. With that warnings as errors were always enabled even if option NOWERROR=1 was specified (scripts\genie.lua). . Cleaned up Windows API usage a little. Bumped target windows version to 6.0.0 (Vista). Use WRL COM pointers to manage some COM-like objects. Cleaned up logging in DirectSound module. Cleaned up includes in Windows input modules. Switched to Common Item Dialogs in Windows debugger. Replaced disabled code that never really worked with a TODO comment. . Adjust toolchain versions for triggering workarounds (makefile). Disable lifetime DSE optimisation for GCC 10.2 (this may be an issue in GNU libstdc++ rather than GCC itself - using compiler version as a proxy for standard library version is bad, but it's the path of least resistance for now) (scripts\genie.lua). . Removed unneeded header files (scripts\target\mame\ci.lua, nl.lua and tiny.lua) . Cleanup of the source files lists for src\mame: Every file in src\mame\{includes,drivers,audio,machine} with the exception of konamiic.txt has to appear in one and only one of the projects of arcade.lua or mess.lua (ignoring mameshared). Files in mameshared must exist in mame.lua. . Removed local copy of MinGW xaudio2.h as it's now included in the MSYS2 package. Also fixed building the DirectSound sound output module with the SDL OSD on Windows - the Windows headers are sensitive to include order. . Got rid of some legacy MESS support glue: Got rid of the special-casing for the "mess" subtarget name. Got rid of the MESS-specific Windows resources, emuator info source and man page. Added subtarget name to the internal name and original name in Windows resources. . Added src\mame sources reorganization tool (tools\reorganize.py). Updated scripts to support SOURCES= builds (scripts\build\makedep.py, genie.lua and src\main.lua). . Removed a few unimportant 64-bit functions (osd\osdcomm.h; cpu\psx\psx.cpp, cpu\scudsp\scudsp.cpp and cpu\tms34010\34010ops.hxx) - Debugger . Impose an arbitrary upper limit on the count parameter of the gni command to prevent denial of service (debug\debugcmd.cpp) . Small refactoring. Verify that data written to memory spaces read back as the same values (debug\dvmemory.cpp). . Documented gbf, gbt and gni commands (debugger\execution.rst) . Prevent debugger commands from being evaluated when they are assignment expressions and only supposed to be validated at the moment (debug\debugcon.cpp). . Return proper enumeration value (debugger\qt\deviceswindow.cpp). 0.244 - New games: Hot Chilli (95103, v0104) and Mahjong The Mysterious Orient Returns [BET] (Japan, v1.00) - New Working games: Multi Win (Ver.0091, encrypted) and Skelagon - New Non-Working games: Dallas Poker, Kajot Card (Version 1.01, Wien Euro), Neo Print - European Version (World) (T4i 2.00), Neo Print - Popeye (Japan) (T4i 3.04), Pong Boo! 2 (Ver. 1.31), Rally Point 2 and 'unknown Poker 'W'' - New clones: Batsugun (bootleg), Batsugun (older, set 2), Dogyuun (oldest set), The House of the Dead (Revision A), Knights of Valour 2 / Sanguo Zhan Ji 2 / Sangoku Senki 2 (ver. 102, 102, 100HK), Magic Card Export (v4.01), Magic Card Export 94 (v2.9a), Magic Card Export 94 (v2.11a, set 2), Moon Cresta (Electrogame S.A. Spanish bootleg, set 2), Thunder Dragon (bootleg with Raiden sounds, unencrypted) and unknown 'Space Invaders' gambling game (unencrypted) - New AGEMAME games: Double Top (JPM) (SRU) (revision 13, £2 Jackpot), Lite A Nudge (JPM) (SRU) (£2 Jackpot), Lite A Nudge (JPM) (SRU) (revision 17F, 5p Stake, £1 Jackpot), Nudge Double Up (JPM) (SRU) (revision 17, 5p Stake, £1 Jackpot) and Nudge Double Up (JPM) (SRU) (revision 17, 5p Stake, £1 Jackpot, lower %) - New drivers: hotchili.cpp and rallypnt.cpp - New devices: cps2comm and fruit_samples - CPU . Fujitsu MB884x: Uppercase mnemonics and removed opcode explanations from DASM (mb88xx\mb88dasm.cpp). Mask ram r/w and read_r to 4-bit (mb88xx\mb88xx.cpp). . H8/5xx: H8/500 disassembler updates. Added some spaces between instruction operands. Render just the first byte of any illegal instruction (cpu\h8500\h8500dasm.cpp). . NEC V2x/3x Added support for EXT reg,imm4 and INS reg,imm4 (nec\necinstr.hxx) . NEC V53A: Optionally resynchronize to the implicit clock domain on clock frequency change (emu\device.cpp and emu\diexec.cpp; cpu\nec\v5x.cpp) . Texas Instruments TMS9995: Byte write to the decrementer fills the other byte with the same value. Note: Tests on a real 9995 show that both bytes have the same value after a byte operation. . Zilog Z80 . Improved timing within instructions. This allows improved emulation of bus contention in the (MESS) ZX Spectrum family. Also updated Z80 timings for MSX, Amstrad CPC and Sega System 1/2. . Fixed "floating" int for (MESS) Spectrum 48k. Now border in demos stays steady and not shaking. Removed undesired state var in cpu implementation. . Bug fix for 16-bit operands . Zilog Z80180/Z8S180/Z80182 and Hitachi HD64180RP: Added callbacks for tend; decrement bcr1 when DMA channel 1 is active (cpu\z180\z180.cpp). - SOUND . MIDI: Fixed Windows MIDI callback signatures (portmidi\pm_win\pmwinmm.c) . NEC uPD7759: Added support for mode switching (sound\upd7759.cpp) - DEVICE . 6821 PIA: Removed some unnecessary 6821 readca1_handler, readca2_handler and readcb1_handler hookups (drivers\arachnid.cpp, by17.cpp, by35.cpp, calomega.cpp, s8.cpp, s9.cpp and starrider.cpp) . 7474 TTL: Fixed use of uninitialised members (machine\7474.cpp) . ATA: Fixed save state for 8-bit mode (ata\atahle.cpp) . Discrete Netlist . Netlist lint, first version of a FAQ and small code changes. Added a first version of a FAQ. Use better error messages in pfunction. Made member functions static where appropriate in nld_solver. . Reduced the use of macros by converting defines into C++ constants. More minor code clean up. . Standalone makefile and prototype modifications. Updated netlist makefile to more recent compilers. Prototypes for NETLISTs in macros are now created create_devinc.py. Apply ctidy recommendations. Python None in create_device.py. . Use templates to compile with NETLIST_CREATE_CSV=1 (machine\netlist.cpp) . Fixed standalone nltool building with NVCC (NVIDIA CUDA Compiler). NVCC 11.3 (latest Cuda tools) has an issue with some auto x (some variable) declarations. . Improved PPMF target support and test coverage. This addresses most of the issues described in #8590. Fixed standalone Visual Studio 2019 builds, including support for Clang toolchain. Added static stub to PMF to support MSVC ABI. Better aligned ppmf syntax with MAME's delegate syntax. Added tests\test_ppmf*.cpp testing examples given in #8590. Also worked around issues some versions of Apple Clang have with 'Standalone makefile and prototype modifications'. . Pointer to member function code. Fixes to address PR #9752 and issue #8590 / EMSCRIPTEN (#9773). Changed comments in ppmf.h. Added support for function desciptors (IA64). sizeof(size_t) may be different on build targets make plib::hash use uint64 to ensure consistent static solver hashes across platforms (EMSCRIPTEN). Moved constructor and member functions outside the class declaration with the exception of "call" member functions. Updated comment on accessing RDX. Added more test cases. Removed execution bit on certain files. I have separated out the raw processing code into 'ppmf.cpp'. I have also taken first steps to clean the abi identification. The code submitted now supports: a) The unknown virtual inheritance case with specific code for MSVC for simple (i.e. scalar, void, reference, pointer) return types using the optimized code. This is the test case only supported under MSVC and which should return 7. Please have a look at the code. Basically m_vptr_offset is an index into a pointer table. It needs to be multiplied by 'sizeof(void *)'. b) If you enable PPMF_EXPERIMENTAL complex return type member functions for MSVC will also use the optimized code path. This is explained in detail in the code in ppmf, including caveats and possible solutions. c) Enabling PPMF_USE_MAME_DELEGATES will use 'src\lib\util\delegate.h' as a replacement for 'ppmf.h'. This allows to run the same tests ('nltool -c tests' from standalone build) as for the ppmf code. d) The code now also supports 'Clang-CL'. e) sizeof(size_t) may be different on build targets. Make plib::hash use uint64 to ensure consistent static solver hashes across platforms. This fixes loading static solvers (if enabled) on EMSCRIPTEN. . Fixed detection of Clang versions with noexcept issue and added feature constants for C++ standard library version (netlist\plib\pmatrix2d.h and ptypes.h). . More C++ and less macros: Significantly reduced the use of unused_var and replaced it with [[maybe_unused]]. Use enum class in ppmf.h. Changes to testing code in ptest.h: Catch exceptions in more places. The verbosity of the output can now be controlled. Display of test stats totals. Added support for cspell. Fixed various typos. Fixed SUBTARGET=nl build. Fixed more file permissions. srcclean and add fix_permissions target to netlist makefile. . Flash ROM: Fixed address mask for SST 39SF040 (machine\intelfsh.cpp) . Floppy . Changed floppy_image_device::identify() to take std::string_view instead of std::string (imagedev\floppy.cpp) . If waiting for additional command bytes, treat a data register read as an open bus write (tested on real hardware) and always trigger the DRQ line even if in nodma mode (machine\upd765.cpp). . I2C Memory . I2C Memory and derived devices: Only acknowledge correct I2C device-id (machine\i2cmem.cpp) . Added FIXME comments to badly behaved I2C target devices. I2C slaves should only ACK their own device-id and NAK all others. SDA output should only change state while clock is low. Idle state of SDA must be high (machine\pcf8593.cpp, machine\x76f041.cpp, machine\x76f100.cpp, sound\mas3507d.cpp and machine\zs01.cpp). . MC6850 ACIA: Initialized receive section (machine\6850acia.cpp) . MOS 6522 VIA: Fixed (MESS) Commodore LCD real time clock reading, it relies on the RTC chip being able to ground PORT A while it is set to an output. Which is documented in the 6522 datasheet as being possible. It's NMOS, so it has weak pull ups and doesn't drive it's output hard. However due to a bug in the prototype ROM code, it currently has the date and month swapped round. . PowerVR 2: Naomi rendering fixes. Allow rendering non-textured sprites (filled boxes), causes spritetest to render properly. Fixed alpha blending for textures to key off of the right value. Some code cleanup. . Z80 SCC Channel: Fixed a cast-to-bool that broke detection of changes to one register bit (machine\z80scc.cpp) - atlantis.cpp, seattle.cpp and vegas.cpp . Mask logging of sio_r for vegas.cpp . Use logmacro.h helpers for debug logging (machine\midwayic.cpp) . Updated CarnEvil 'Unused' dipswitches based on the operator manual and verified via the service menu. . Fixed reversed dipswitch names (EPROM-based Test and Disk-based Test) - avalnche.cpp: Changed periodic interrupt to scanline interrupt. Added watchdog timeout. - beezer.cpp, cheekyms.cpp, dribling.cpp, n8080.cpp, redclash.cpp, seicross.cpp and toratora.cpp: Use raw timing parameters for screen - bfcobra.cpp: Fixed interface to upd7759 sounds. Interface to upd7759 was using start and reset inputs when should've been using mode and reset. - exidy.cpp: Got rid of duplicate coin inputs. Partially addresses GitHub #9757. Fixes Coin 1 and 2 are listed twice in the key mapping in Venture and Mouse Trap (ID 01288). Coin 2 doesn't work for Targ and Spectar, but that isn't a regression (it was already broken, not sure if error in schematics, game bug or emulation issue is to blame). Dipswitches and locations are still a bit of a mess, too. - funworld.cpp: Use the decryption PROM for clone Multi Win (Ver.0091, encrypted). Promoted game to working. Use the decryption PROM in other set where available, too (Mega Card and Power Card). - iteagle.cpp: Adjust processor clock. Gives proper 1ms ostick now. Added default console terminal serial port settings (machine\iteagle_fpga.cpp). - ksys573.cpp: Don't create an insane number of textures for fghtmn and pnchman internal artwork (layout\pnchmn.lay). Fixed layout\pnchmn.lay alpha channel values. - littlerb.cpp and megaphx.cpp: Correct visible dimensions of screen (machine\inder_vid.cpp) - magicard.cpp: Added technical notes and moved the PCB layouts to the ROM load zone for consistency - megatech.cpp: Fixed crash in service mode - nemesis.cpp: Correct dot clock - neogeo.cpp: Work around rendlay bounds issue (layout\neogeo.lay) - rbmk.cpp: DIPs are read correctly now - slapfght.cpp . Correct sprite placement (ID 08326). Note: Partial hand-made schematics don't show a buffer, but the games most definitely need it. Could be the second half of the ram, which seems otherwise unused, but it would be weird bandwidth-wise. It's not double-buffering through page swapping, sprite updates are incremental. . Hooked up flip screen output to MCU for Alcon and Slap Fight clones (machine\taito68705interface.cpp). - redclash.cpp: Added raw parameters for screen and addressable latch devices - snookr10.cpp: Realigned the ASCII diagrams and cleanups - system1.cpp: Identified dipswitches for Shooting Master and Ufo Senshi Yohko Chan (ID 08303) - umipoker.cpp: Removed Coin 2 and Coin 3 inputs (these appear to do nothing) and swap Coin 1 with Key In - usgames.cpp: Fixed debug assertion in all US Games (ID 08306) - vigilant.cpp: . Fixed sound in Bowmen by allowing it to see the area of ROM with music data . Correct video timings for Vigilante. Note: Video timings were measured using a logic analyzer by atrac17 on an original PCB. The results were reviewed by Jose Tejada. . Cleanups & modernization. Replaced legacy interrupt generators with vertical blank and scanline timer callbacks. Added presumed raw timing parameters for all games, based on known XTAL values. Correct maincpu XTAL value for Buccaneers. - AGEMAME . mpu5sw.cpp: Tidied another batch of slot machine layouts . jpmsru.cpp: Fleshed out I/O and added layouts. Added JPM SRU 200-step pattern to machine\steppers.cpp. Added device for simulated fruit machine sounds (audio\fruitsamples.cpp). - Bad Lands: Added missing PROMs to clone Bad Lands (Modular System) - Beezer: Replaced bankdev with memory view - Bubble Trouble - Golly! Ghost! 2 and Golly! Ghost!: Use generic output strings. NOTE: Update external artwork file. Fixes score LEDs not hooked up in Bubble Trouble - Golly! Ghost! 2 (ID 07768). - Cheeky Mouse: Modernized VBLANK interrupt - Cherry Bonus III: Decrypted clone Cherry Bonus III (alt, set 2), needs correct address map. - Cherry Master I: Fixed colors/bitplanes and added bruteforced PLDs to clone Channel Three - Ghostmuncher Galaxian (bootleg): Fixed colors that have been wrong since MAME 0.124u1 (ID 03729) - Gladiator: Removed old simulation of Gladiator MCUs (unused for a while now) - Head On: Added correct control prom to clone Head On N - Krokha: Fixed "Attempt to register save state entry after state registration is closed" - Lucky 7 (Impera), Puzzle Me! and unknown Poker 'TE06': Added ASCII PCB layout - Monkey Magic: Implemented Monkey Magic flip screen & multiplexed controls. The dump is likely from a cocktail board as the screen flipping is the only indication of which player is up. - Pango Fun: Removed unnecessary screen legacy setup and added QA notes - Performan: Partially guessed video adjustment - Salamander: Fixed coin inputs in Salamander and clones (ID 08315) - SF-X: Added missing first 4k from SF-X maincpu to clone Skelagon (Game now playable) - Space Force: Modernized interrupt handling and fixed freeze on soft reset (ID 08261) - Space Invaders: Removed cocktail inputs from clones Space Attack II (bootleg of Super Invaders) and Super Invaders (Zenitone-Microsec) - Space Pokan: Fixed out-of-bounds access on POST VROM test (ID 08307) - Super Dead Heat: Demoted to MACHINE_IMPERFECT_SOUND. Analog filters and actual speaker arrangement are not emulated. - Super Street Fighter II: The New Challengers: Added TOURNAMENT board communication simulation for the 'Super Street Fighter II: The Tournament Battle' clones (machine\cps2comm.cpp). See YouTube: https://youtu.be/Ov2acW-ABiA - Vortex: Added color video output emulation - Williams Multigame: Fixed black screen or resets when a game is chosen from the menu (ID 08316). Fixed rom loading. Saved 128k of memory. Fixed Defender rom map. - Yatterman Plus: Dumped I/O board ROM - Fixed rom names in goldstar.cpp, magicard.cpp, nmk16.cpp, seta.cpp and xain.cpp - Dipswitch fixes in 8080bw.cpp, jpmsru.cpp, rbmk.cpp, seattle.cpp, system1.cpp and vegas.cpp - Description changes of Batsugun (older, set 1), Cherry Bonus III (Ivanhoe V46-0799), Dardos, DDRMAX - Dance Dance Revolution 6th Mix (G*B19 VER. JAA), DDRMAX2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA), Each Way Nudger (JPM) (SRU) (\xa32 Jackpot), Each Way Nudger (JPM) (SRU) (revision 20, 5p Stake, \xa31 Jackpot), Each Way Nudger (JPM) (SRU) (revision 26A, \xa32 Jackpot), Each Way Shuffle (Barcrest?, set 1, revision 16), Each Way Shuffle (Barcrest?, set 2, revision 8a), Honey Doll, Lucky 2's, Magic Card Export 94 (v2.11a, set 1), Mahjong Hourouki Part 1 - Seishun Hen (Japan), Moon Cresta (Electrogame S.A. Spanish bootleg, set 1), Wonder Boy - Monster Land (XXX) (ID 06443) (ID 08321), Nudge Double Up Deluxe (JPM) (SRU) (revision 10, 5p Stake, \xa31 Jackpot), Nudge Double Up Deluxe (JPM) (SRU) (\xa32 Jackpot), Reikai Doushi - Chinese Exorcist (Japan), 'unknown 'Space Invaders' gambling game (encrypted, set 1), unknown 'Space Invaders' gambling game (encrypted, set 2), Thunder Dragon (bootleg with Raiden sounds, encrypted), Thunder Dragon (bootleg with reduced sound system) and 'unknown Compumatic ProSPDP based darts machine' - Renamed (hotd) to (hotdo), (j_ewnd20) to (j_ewn), (j_ewnda) to (j_ewnb), (j_ewnud) to (j_ewna), (j_nuddup) to (j_dud), (j_nuddup2) to (j_duda), (unkdarts) to (dardos) and (vgoalsca) to (vgoalsoca) - MAME . VIDEO RENDERING SYSTEM: BGFX: Honour texture wrap flag (bgfx\chainmanager.cpp and drawbgfx.cpp) . DEVICE: Optionally resynchronize to the implicit clock domain on clock frequency change (emu\device.cpp and emu\diexec.cpp; cpu\nec\v5x.cpp) . INPUT: Improved display name scheme for joystick axes and buttons. . FILE SYSTEM: Use visitors with variants where it makes sense (formats\fsmeta.cpp) . UI . Added ability to restrict tiles to integer scale factors. Also encapsulated things a bit more and made the UI manager hold onto the storage rather than keeping it in file statics (ui\viewgfx.cpp). . Remember orientation, position and scale per tilemap. More encapsulation. Fixed some cases where no tiles would appear with tall or wide aspect ratio windows (ui\viewgfx.cpp). . Do not lose slot card name when setting slot card BIOS (emu\emuopts.cpp) . Use unordered map for session data, to tempt fate with toolchain bugs (ui\ui.h). . Device Network Interface: Added MTU paramter and removed unnecessary floating point calculations (emu\dinetwork.cpp) . Use finders, templates and other small cleanups (4enraya.cpp, appoooh.cpp, brkthru.cpp, firetrap.cpp, gstriker.cpp, gunsmoke.cpp, pacland.cpp, paradise.cpp and vball.cpp) . Added hardware infos for acrobatm, atetris, calibr50, commando, ikari, tnzs and xsleena - SDLMAME/LINUX . Detect joystick reconnection with SDL . Prefer the X11 SDL video driver on Linux (sdl\sdlmain.cpp) . Initial GCC 12 support for Fedora 36. Fixed error flagged by GCC 12 (mips\mips3.cpp). - Compiling . Init variables for Coverity software (jaguar.cpp, nwk-tr.cpp and taitogn.cpp). . Updated minimum required SDL version to 2.0.6 for all targets, added note that Python 3 is included with Xcode and updated instructions for downloading stand-alone Python 3 for MacOS (docs\source\initialsetup\compilingmame.rst). . Fixed SUBTARGET=nl build (Compiles all drivers using netlist code) . Suppress compile warnings in asmjit with GCC 7 (scripts\src\3rdparty.lua). Sync AsmJit with upstream. Fix for building with clang 14 as asmjit uses | & operators on bools (scripts\genie.lua). . Improved version detection in str_to_version. Don't treat hypen and dot as the same thing - it will cause issues with pacakge revisions. Cleaned up some LUA code as well. Also show warnings about potentially uninitialised stuff with GCC 12, just don't make them fatal errors (makefile and scripts\genie.lua). . Removed superfluous semicolons from various source files - Debugger . Added time command to MAME debugger. Returns current machine time. Added debugger time command to docs (docs\source\debugger\general.rst). . Option-related changes: Eliminated -mode option that has done nothing for years. Allow -basepc address and -skip count to be specified in octal (tools\unidasm.cpp). 0.243 - New games: Bowmen, Cal Omega - Game 17.0 (Amusement Poker), Le Pendu (Bilingue, Version 04), Le Super Pendu (V1, words set #1) and Le Super Pendu (V1, words set #2) - New Working games: Football Crazy (Video Quiz) - New Non-Working games: Flying Fortress [TTL], Horses For Courses (NSW, Australia), Long Hu Tebie Ban (V101CN), Maxi Double Poker (version 1.8), Photo Play 2002 (Belgium), The Quest (NSW, Australia), Sport Damjes 1, Super 97 (Ver. 1.00) and 'unknown darts game (487 System I)' - New clones: Bad Lands (Modular System), Blood Storm (v2.21), Densha de GO! (Ver 2.3 J), Dragon Ninja (Modular System), Finger (bootleg of Stinger), Galaxian (Artic System bootleg), Golden Poker Double Up (bootleg, set 2), Golden Poker Double Up (bootleg, set 3), Golden Poker Double Up (bootleg, set 4), Hard Drivin' (compact, rev 2 bootleg), Indoor Soccer (Tecfri license PCB), Multi Win (EPM7032, encrypted), Multi Win (Ver.0091, encrypted), Photo Play 1999 (Netherlands), Photo Play 2000 (Netherlands), Photo Play 2001 (Netherlands), Photo Play Masters 2001 (Netherlands), Slap Fight (Modular System) and Street Fighter III 2nd Impact: Giant Attack (Hispanic 970930) - New drivers: badlands_ms.cpp, lependu.cpp, paokaipc.cpp, slapfght_ms.cpp and spdamjes.cpp - New devices: mc68hc11e1 and sega8_korean_188 - CPU . Dynamic Re-Compiling: Fixed assert in debug build with some CPUs (PowerPC, SH) (cpu\drcbex64.cpp) . Intel I386: Fixed multiple issues with breakpoint emulation (i386\i386.cpp, i386ops.hxx and i386segs.hxx) . MIPS-III: Added new DRC option to added extra validation to hash jumps. Moved unchanging conditionals outside for loop in generate_checksum_block; 7% faster (mips\mips3drc.cpp). - SOUND . Atari CAGE / Atari CAGE Seattle: Added partially support of variable sound output channels (audio\cage.cpp) . Discrete Sound: Explicitly initialise members of discrete "devices" to zero (sound\discrete.h). There is no way around doing this in headers due to the macro soup used to build the constructors. . TMS5220: Work around problem with sound CPU interrupts that was preventing PSG sounds from playing (sound\tms5220.cpp and drivers\looping.cpp) . Williams WPC Sound: Added save-state support (audio\wpcsnd.cpp) - DEVICE . 3dfx Voodoo Graphics: Changed vsync counter to start immediately after vblank. Based on documentation of vretrace register (video\voodoo.cpp). . ATAPI CD/DVD-ROM and SCSI CD: Return error response when no CD is available (machine\t10mmc.cpp) . BACTA Datalogger: Prevent continuous transmission of 0xff (machine\bacta_datalogger.cpp) . CD-ROM . Classify cdrom_file. Could use more internal work, but it's a step. . Clean up code somewhat. Use std::string_view for filename parameters. Use ioprocs rather than core_file. Reduced commenting out of miscellaneous logging (util\cdrom.cpp). . CHDMAN: Optimized error return from read_metadata (util\chd.cpp) . Floppy . Removed the save support that is just too broken and member variables (formats\imd_dsk.cpp). Constify the floppy image handling interface. Removed the intermediate allocator (lib\formats\*_dsk.cpp). Changed the internal format to flux changes, updated the MFI format accordingly (keep read compatibility with the old MFI) (imagedev\floppy.cpp). Revisit the identify returns (lib\formats\*_dsk.cpp). Removed write support for now, it has issues (sharing data between read and write, copy/pasting the pll code, not supporting v3) (formats\hxchfe_dsk.cpp). . Changed floppy_image_device::init_fs() to set the dirty bit on the floppy image (imagedev\floppy.cpp). Note: This is not an actual user facing bug right now, because in the MAME UI the call to init_fs() is followed up by a call to setup_write(), which forces the image to commit without regard to the dirty bit. There is an argument that this is itself code smell; setup_write() perhaps should be set_output_format() and not arbitrarily perform a commit. . Changed fs::meta_value::to_string() to not be static and not require meta_type. No need to pass in the meta_type when using std::visit() on the std::variant (tools\floptool.cpp and formats\fsmeta.cpp). . Consolidated floppy_image_device::m_create_fs and floppy_image_device::m_io_fs vectors. We had two separate members in floppy_image_device (m_create_fs and m_io_fs) that contained the same data. Whether the file systems can be formatted or read can be identified by querying fs::manager_t. For this reason, it seems bad to have these separate members, the seemingly only reason to make the UI code slightly less complicated. For this reason I consolidated these two members and moved the burden of selecting which ones are creatable to the UI code (imagedev\floppy.cpp, ui\filecreate.cpp and ui\floppycntrl.cpp). . Fixed some issues involving fs::meta_description constructing. With the recent change to use std::variant more closely, I noticed a problem where meta_descriptions of type meta_type::String got defaults of type 't'. This was because the templated ctor for meta_description would convert 'const char *' to 'bool'. This change added another overload to catch 'const char *', along with asserts to catch problems. In the process I correct a few meta_description ctors. It is possible that this change does not go far enough. Perhaps the meta_type argument should be removed, and we should instead create distinct ctor types (rather than relying on templates) and specify the precise meta_type in the overload. Or even go further and remove m_type from meta_description, and instead create an overload that calculates meta_type based on calling std::visit on the variant. Taking this change a bit further, and removing m_type from fs::meta_description; it was superfluous. Also doing some minor C++-ifications (formats\fsmeta.h). . Added a 'type()' accessor to fs::meta_value. Let's try to hide the nastiness of std::visit() as much as humanly possible. Changing visitor approach for std::visit() call in fs::meta_value::type() (formats\fsmeta.cpp). . Fixed string constructor for fs::meta_value. In absence of a constructor that explicitly took 'const char *', passing a const char * would be interpretted as a bool (formats\fsmeta.h). . Fixed issues when wrapping in generate_bitstream_from_track which were especially damaging for (MESS) Apple drivers (formats\flopimg.cpp) (ID 07449) . GD-ROM: Fixed crash with no GD-ROM loaded (machine\gdrom.cpp) . Harddisk: Classify hard_disk_file. Hide the CHD (hard_disk_file). . Imagetek I4100/I4220/I4300 VDP: Added external pin callbacks and disallow internal irq acks for 5 to 7 lines. Extend external pin notes (video\imagetek_i4100.cpp). . MC68340 Timer Module: Fixed potential crash on mode logging (machine\68340tmu.cpp) . MIDI In image device: Use util::random_read rather than buffer pointer in MIDI file parser (imagedev\midiin.cpp) . SCSI CD-ROM: Don't crash on certain commands when no cdrom is inserted (nscsi\cd.cpp) . Yamaha V9938 VDP: Fixed out-of-bounds errors from invalid command writes in certain modes . Z80 SCC Channel . Fixed incorrect setting of baud rate due to uninitialised variables. Added support for WR15_ZEROCOUNT interrupts (machine\z80scc.cpp), fixes (MESS) Apple IIgs Diversi-Tune 1.1 freezes MAME (ID 08239). . Removed unused Z80SCC_USE_LOCAL_BRG and simplified WR15_ZEROCOUNT usage to reduce the likelihood of needless timer activation. - 1942.cpp: Added hardware info and correct main CPU clock - aristmk5.cpp, ertictac.cpp and ssfindo.cpp . Workaround missing default QS1000 sounds in 'See See Find Out' and 'Tetris Fighters' by disabling DAC outputs for the time being (machine\acorn_vidc.cpp). . Improved serial DAC overrun/int handling, makes SFXs to work better in Pang Pang Car (machine\arm_iomd.cpp). - atlantis.cpp and vegas.cpp . Fixed watchdog reset in nbanfl and nbagold when select other game menu from service menu (ID 07823) . Moved hdd set_dma_transfer into machine config for vegas.cpp . Added new DRC option to added extra validation to hash jumps (mips\mips3drc.cpp). Moved unchanging conditionals outside for loop in generate_checksum_block; 7% faster (mips\mips3drc.cpp). . Fixed screen tearing in Gauntlet Dark Legacy and Gauntlet Legends (ID 08064) - chihiro.cpp, naomi.cpp and triforce.cpp: Use swapendian_int64 instead of custom rev64 function (machine\naomigd.cpp). Fixed crash with no GD-ROM loaded (machine\gdrom.cpp). - cinemat.cpp: Fixed mistake in return statement (flagged by some versions of Clang, ccpu\ccpudasm.cpp) - cosmos_playc8f.cpp: Added "SY-MUSIC01" PCB ASCII layout - cubo.cpp: Fixed exception on start (machine\akiko.cpp) - cv1k.cpp: Detect versions of the EP1C12 firmware (video\epic12.cpp) - ddenlovr.cpp: Added banked NVRAM, simplified ROM loading and stop using regions for RAM for the later games: daimyojn, hanakanz, hkagerou, jongtei, kotbinsp, kotbinyo, mjchuuka, mjdchuka, mjgnight, mjreach1 and momotaro. - fruitpc.cpp, gammagic.cpp and paokaipc.cpp: Inherit proper PCI_ROOT bus - galaxold.cpp . Identified 'Cabinet' configuration, 'Coinage' and 'Award Free Game' dipswitches for clone Bulls Eye Darts (Galaxian conversion) (ID 08283). Added 82s153 PLD dump. . Identified 'Coin A/B', 'True or False Bonus' and 'Attract Mode' dipswitches for Trivia Challenge (ID 08285) - gottlieb.cpp: Added save-state support for the non-laserdisc games - hyprduel.cpp and metro.cpp . Added external pin callbacks and disallow internal irq acks for 5 to 7 lines. Extend external pin notes (video\imagetek_i4100.cpp). . Tie irq line 5 to a vblank source with external pin 0 as irq enable, fixes graphics and speed issue in karatour, karatourj, ladykill and 3kokushi (ID 08203). . Added note about Varia Metal layer alignments. Fixed Blazing Tornado and Grand Striker 2 regressions. Address code review. - jaguar.cpp: Fixed nodisc crash and restore state - ksys573.cpp . Workaround for segmentation fault when starting systems with fewer than two CD-ROMs . Improved counters and status flags (machine\k573dio.cpp and k573fpga.cpp) - looping.cpp: Work around problem with sound CPU interrupts that was preventing PSG sounds from playing (drivers\looping.cpp and sound\tms5220.cpp) (ID 08289) - m92.cpp: Only use 'palette bank' on the later games with ROM banking. This fixes R-Type Leo did not flicker between two colors during the invulnerability phase at the beginning of the game or when dying (ID 03289). Initialized a few members (video\m92.cpp). Note: There is a further test case with R-Type Leo. The flickering invulnerability effect when you spawn does not work correctly with the palette bank hooked up, and also causes a 2nd player spawning in to have the incorrect palette at first. It appears that the only games requiring the palette bank logic are Major Title 2, Ninja Baseball Bat Man, Dream Soccer '94 and Gun Force 2. These are also the games with the extended ROM banking, suggesting a difference on those boards is a more likely explanation. - model2.cpp: Fixed crash in debug build - nss.cpp, sfcbox.cpp and snesb.cpp: Fixed JSR being a cycle short (g65816\g65816op.h). Properly calculate page crossing penalty cycle for Y addressing modes (g65816\g65816.cpp). - nwk-tr.cpp: Fixed crashes on start - royalmah.cpp: Fixed memory_bank::set_entry exception in debug build for mjtensin, mjvegasa and mjvegas - seattle.cpp . Fixed Hyperdrive randomly freezes (ID 07568) . Changed interrupt handler to not send new interrupts if an interrupt has already been asserted and improve DMA timing (machine\gt64xxx.cpp) . Added some harddrive dma delay to make harddrive performance more realistic. Moved hdd set_dma_transfer into machine config. . Fixed calibration failure regression in San Francisco Rush and San Francisco Rush: The Rock - stv.cpp: Be a little more robust to not having any cdrom reader (machine\stvcd.cpp) - twinkle.cpp: Implemented commands required for Twinkle DVD player (JVC XV-D701; rs232\xvd701.cpp) - vigilant.cpp: Clean-up, no functional changes. - viper.cpp: Use normal vsync polarity - AGEMAME: Tidied up the test views in some more fruit machine layouts (m5gdrag, m5ggems20, m5gimmie, m5grush, m5grush5, m5gsstrk07, m5gstrik and m5hellrz) - Big Karnak: Verify clocks - Black Tiger (Modular System) and Slap Fight (Modular System): Fixed out-of-range access warning in some GCC versions. The implicit conversion from size_t to int could theoretically produce a negative value, which triggered a warning on the memcpy. - Contra: Added hardware infos - Daioh: Used correct gfx3 rom for clone Daioh (prototype, earlier), fixes various GFX glitches. Fixed incorrect 'Bonus Life' dipswitch options in clone Daioh (prototype, earlier). - Double Dragon II: Updated 'Timer' dipswitch naming for parent and clone (Japan) (ID 08276) - The End: Correct DIP switches for clone Take Off (bootleg of The End) (ID 08286) - Evil Night: Fixed clone Evil Night (ver EAA) crash at start - Football Crazy (Video Quiz): Added CD-ROM. Promoted game to working. Fixes game crash about 8 seconds into startup (ID 05533). I486: Fixed multiple issues with breakpoint emulation (i386\i386.cpp, i386ops.hxx and i386segs.hxx). NCR 53C7xx SCSI CPU: DFE bit is not reset when status register is read (machine\53c7xx.cpp). Zilog Z85C30 SCC: Fixed incorrect setting of baud rate due to uninitialised variables (machine\z80scc.cpp). Prevent continuous transmission of 0xff (machine\bacta_datalogger.cpp). - Fun World Quiz (German), (German, 12-11-1990) and (German, 27-04-1990): Dumped and added the missing Geo3 questions bank ROM. Rearranged the remaining banks accordingly. - Game Magic: Removed unused legacy PCI hookup and demoted Game Magic and clone 99 Bottles of Beer to BAD_DUMPs. Discover that removing data track pregaps makes CD-ROM dumps to be mountable. - GameCristal: Added extend notes over dump analysis - Go Go Strike: Split game into own driver and removed legacy PCI header defined. - Kyros: Correct comment and clocks - PinMAME . Indicate save-state availability for all pinball drivers. Merged s8a.cpp driver into s8.cpp. Moved Rat Race from S9 to S8 driver. Game is now playable. . Use finder instead of tag lookup for memory bank in whitestar.cpp. Williams WPC Sound: Added save-state support (audio\wpcsnd.cpp). - The Pit: Correct 'Coinage' DIP switch settings for The Pit. Identified dipswitches 'Coinage', 'Game Speed' and 'Time Limit' for clone The Pit (bootleg on Moon Quasar hardware) (ID 08280). - Pocket Racer: Decrease analog controls range - Power Instinct: Correct one sprite rom for clone Power Instinct (USA, bootleg set 3) - Space Invaders: Added 'Difficulty' dipswitch to clones Super Invaders (Zenitone-Microsec) and Space Attack II (bootleg of Super Invaders) - Space Zap: Added 'Lives' dipswitch (ID 08274) - The Speed Rumbler: Connect YM2203 irq to soundcpu - SunA Quiz 6000 Academy: Fixed MAME crashes when answering the quiz (Fatal error: memory_bank::set_entry) (ID 08297) - T.V. 21 III: Dumped 2 more chips - Time Traveler: Fixed 'Very Difficult' dipswitch. Be paranoid about minimum size of unsigned (machine\ldv4200hle.cpp) - US AAF Mustang: Fixed clone US AAF Mustang (Lettering bootleg) crashes MAME (ID 08294) - Vendetta: Added brute-forced PLD dumps to Vendetta and clones. Added notes for clone Vendetta (World, 2 Players, ver. W). - Wink: Identified several dipswitches for Wink and clone (ID 08284) - Renamed (bloodstm10) to (bloodstm104), (bloodstm11) to (bloodstm110), (bloodstm21) to (bloodstm210), (bloodstm22) to (bloodstm220) and (dendego) to (dendegoa) - Dipswitch fixes in 8080bw.cpp, astrocde.cpp, ddragon.cpp, galaxian.cpp, galaxold.cpp, igs017.cpp, rastersp.cpp, seta.cpp, tbowl.cpp, timetrv.cpp, thepit.cpp and wink.cpp - Description changes of Centaur (Inder) (set 1), Centaur (Inder) (set 2), Champion Poker 2 (V100A), Gals Panic (unprotected), Gals Panic (ULA protected, set 1), Gals Panic (ULA protected, set 2), Golden Poker Double Up (bootleg, set 1), GTI Club: Rally Cote D'Azur (ver EAA), GTI Club: Rally Cote D'Azur (ver AAA), GTI Club: Rally Cote D'Azur (ver JAA), GTI Club: Rally Cote D'Azur (ver UAA), The Lost World: Jurassic Park (Japan, Revision A), The Lost World: Jurassic Park (location test), The Lost World: Jurassic Park (Pinball, 2.02), The Lost World: Jurassic Park (Pinball, 2.00), Photo Play 1998 (Spain), Photo Play 1999 (Spain), Photo Play 2000 (Spain), Photo Play 2001 (Italy), Space Attack (bootleg of Space Invaders, 2k roms), Space Attack (bootleg of Space Invaders, bproms), Space Invaders Part Four (bootleg of Space Attack II), Shuzi Leyuan (China, V127M, gambling), Starhawk, War: Final Assault (EPROM 1.9 Mar 25 1999, GUTS 1.3 Apr 20 1999, GAME Apr 20 1999), War: Final Assault (EPROM 1.3 Apr 7 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999), War: Final Assault (EPROM 1.6 Jan 14 1999, GUTS 1.1 Mar 16 1999, GAME Mar 16 1999) and War: Final Assault (EPROM 1.91 Apr 13 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999) (ID 08298). - MAME . VIDEO RENDERING SYSTEM . Draw until current hpos (not inclusive) when doing an update_now (emu\screen.cpp and emu\video.cpp) . Removed some custom GFX decodes in favor of the ones provided in video\generic.cpp (various drivers) . Use set_clock(x) instead of m_clock=x (emu\screen.h) . MEMORY SYSTEM: Reduced make_unique_clear to a single variant for POD arrays (util\corealloc.h) . DEVICES: Don't pre-clear memory for drivers (emu\device.h). Ivan Vangelista fixed at least the majority of things that crashed outright and Robbbert initialised variables that Coverity complained about. It's unlikely anything will break due to this. . LUA engine: Made I/O port manager type_seq a bit more tolerant of omitted arguments (mame\luaengine_input.cpp) . UI . Respect clicks on headings (ui\datmenu.cpp) . Added an 'image_display_enabled' property to mame_ui_manager and exposed it to LUA. This property allows one to disable image-specific UI displays (mame\luaengine.cpp, ui\ui.cpp). . File handling cleanup . Removed fgetc, fgets and ptr methods from device_image_interface. Removed the core_file::buffer method to read an entire file into memory and rewrite emu_file::hashes to not depend on it. . Make core_in_memory_file a final class; now that buffering is gone, core_osd_file no longer subclasses it but a new superclass that retains some common methods. . Renamed the offset and length methods used internally in core_file implementations to index and size due to frequent clashes with parameter names. . Converted comments in util/corefile.cpp to C++ style. Added a new overload of the hash_collection::compute method which hashes data from a random_read stream, reading it into memory one chunk at a time. As a result, the hash_collection::begin and hash_collection::end methods have been removed as obsolete (similar methods are now used internally only). . Enhanced error messages for the frontend media identifier when it encounters file errors. . Make a couple of overloads const (osd\modules\osdhelper.h) . Use finders and some other small cleanups (ajax.cpp, angelkds.cpp, bottom9.cpp, buggychl.cpp, cbasebal.cpp, contra.cpp, crgolf.cpp, epos.cpp, exzisus.cpp, galpanic.cpp, goal92.cpp, gng.cpp, hcastle.cpp, hexion.cpp, himesiki.cpp, kangaroo.cpp, ksayakyu.cpp, labyrunr.cpp, parodius.cpp, pcktgal.cpp, shisen.cpp, skykid.cpp, spdodgeb.cpp, surpratk.cpp, tbowl.cpp and vendetta.cpp) . 3rdparty: Updated zlib to version 1.2.12 . Multi-Language: Added Ukrainian UI translation. Updated simplified Chinese and Greek translation for autofire button name format. - Compiling . Init variables for Coverity software (drivers, machine, video, audio, devices, bus and includes) . Revert initialisation of device members in headers. This is problematic in several ways: Initialising things at construction that aren't needed until after start slows down -romident, -validate, -listxml, etc. Slot cards can be a particular drain on -listxml and -validate as they're instantiated for every compatible slot. It's more pronounced for array members, too. Splitting member initialisation between declaration in headers and constructors in source files means you have to look at two places to check for the initial value, and you always need to check the constructor even if an initialiser is present in the header because the constructor initaliser list takes precedence. (This isn't as much of an issue for driver classes because the constructor is most often inlined at declaration, so it isn't far from the member declarations). Initialisers in headers for frequently-used devices increases the frequency of recompiling dependent devices/drivers as they're exposed to any changes in initialisers. Initialisers in frequently-used headers increase build times because there's more for the compiler to parse/cache (This affects makedep.py as well for single-driver builds, but that's a single pass). It's not a lot individually, but it adds up given the size of MAME, which keeps increasing. . Try to work around the uninitialised member warning in sol::optional (mame\luaengine.ipp, luaengine_debug.cpp and luaengine_mem.cpp) . Initialized some variables which were causing problems (sound\discrete.cpp) . Fixed Coverity software error (acefruit.cpp, chinagat.cpp, queen.cpp, royalmah.cpp). Init variables, fixed Coverity error and use standard variable names (cps1.cpp). Fixed Coverity software buffer overflow (machine\315-5838_317-0229_comp.h). . Init cleanups (cpu\mn10200\mn10200.cpp and cpu\psx\psx.cpp). Init 2 more variables (machine\cat702.cpp). . Enabled GCC lifetime dead store elimination optimisation. Note: Disabled for GCC 9, otherwise takes issue with Sol's get >() (scripts\genie.lua). . Fixed DRVNOCLEAR build issues (namcos22.cpp) . Added multibyte check to osd_uchar_from_osdchar to fix decoding ASCII text (osd\strconv.cpp). Note: This allows ASCII INI files to be parsed on Windows systems set to use a double-byte code page. It should also work with correctly-encoded Shift-JIS, GB2312, Big5 and EUC-KR. It won't work for more complex variable-length encodings or when the input is not correctly encoded. . Replaced a couple of static_cast with dynamic_cast for safety, cleaned up some formatting (drivers\seattle.cpp and vegas.cpp). - Debugger . Debugger feature improvements: Added 'gbt' and 'gbf' debugger commands to step until a true or false conditional branch has been detected. Updated over 100 of the disassemblers in MAME to output a new STEP_COND flag for all conditional branches. Besides being used for execution of the new 'gbt' and 'gbf' commands, this flag also now helps the debugger 'out' command to properly handle conditional return instructions. Removed STEP_OVER from many instructions that aren't actually subroutine calls (e.g. DJNZ on Z80). A 'gni' debugger command (go next instruction) has been added to accommodate some of the misuse. Added instruction flag support to several more disassemblers that lacked them entirely (e.g. st62xx). Don't pass over delay slots for debugging in ASAP core. . Removed obsolete debugger.h include from devices\cpu\* files 0.242 - New games: Kick & Kick (GNA36 VER. EAA) - New Working games: Attack Force (unencrypted), Fruit Star Bonus (Ver 8.20PIR), Fruit Star Bonus (Ver 8.27PVIE), Good Luck! poker (Sisteme France) and Time Traveler (set 1) - New Non-Working games: Basketball (Benchmark Games, set 1), Bin Bin Bingo (Japan, main unit), Dino Family, Gun Shot, Super Road Champions [TTL], Ten Strike Classic and 'unknown game on TrueSys hardware' - New clones: Ace Driver: Victory Lap (Rev. ADV2 Ver.B, World), Basketball (Benchmark Games, set 2), beatmania complete MIX (ver JA-C), Credit Poker (ver.30b, 7 & 9 bonus), Cruis'n USA (v1.1), Cruis'n USA (v2.0), Dead or Alive (Export, Model 2A, Revision A), Dino Family (Portuguese, Tangasoft license), Frogger (Turtles hardware), Fruit Star Bonus (Ver 8.30UNG-200), Fruit Star Bonus (Ver 8.36UNG-1100), Kid no Hore Hore Daisakusen (bootleg set 2), Mandinka (bootleg of Amidar), Monsters World 2 (bootleg of Super Pang), Ms. Pac-Man (Leisure and Allied bootleg), Pang! 3 (bootleg, set 4), Pang! 3 (bootleg, set 5), Pontoon (FD1094 317-?), Red Hawk (horizontal, Spain, set 2), Ridge Racer (Rev. RR2 Ver.B, World), Ridge Racer 2 (Rev. RRS8, World), Rim Rockin' Basketball (V1.5), Royal Card (stealth with NES multigame, set 2) and Super Poker (v201UA) - New PEPlus games: Player's Choice (PC644VZ) Jacks or Better, Player's Choice (PC679CY) Jacks or Better, Player's Choice (PC714VZ) Jacks or Better, Player's Choice (PC716VY) Jacks or Better, Player's Choice (PC718VY) Jacks or Better and Player's Choice RAM Clear. - New PinMAME games: Airborne (1.5), MAC's Galaxy (blue version, M.042) and U.S.A. Football (P08, redemption) - New drivers: cosmos_playc8f.cpp and truesys.cpp - New devices: amiga_copper, gotsndp2, gotsndp3, gotsndp4, gotsndp5, gotsndp6, gotsndp7, ldv4200hle, mk98pic, nes_rob, nes_zapper_sensor, sm590, sm591 and sm595 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . ARM7 . Added debugger privilege callback for 26/32, A/T and user mode changes (arm7\arm7.cpp) . Disassembly improvements: Correct formatting of LDR and STR pre-indexed writeback modes. Correct opcode suffixes for LDM and STM in ARM mode. Correct LDRSH mnemonic in Thumb mode. Omit destination register for data processing instructions when Rd = Rs. Recognize RRX shift mode. Disassemble immediate ADD or SUB from R15 as ADR in both ARM and Thumb modes. Use ARM-preferred LSL, LSR, ASR, ROR and RRX mnemonics for shifted MOV operations. Fully disassemble flag field for MSR [CS]PSR. Use 0x as hexadecimal prefix except for small constants. Make output in Thumb mode prettier. Recognize a few more ARMv5/v5TE instructions. Added STEP_OUT debugging flag to a few more instructions commonly used for exits. Regularize a lot of sloppy formatting. Somewhat reduce code duplication in Thumb disassembler (arm7\arm7dasm.cpp). . DEC T11: Jumps to register cause trap to 4 . Intel I386: Changed a couple of disassembler helpers to return std::string (i386\i386dasm.cpp) . Intel i960KB . Added DMOVT opcode. Fixes activating the debug mode crashes MAME in Virtua Fighter 2 and clones (ID 07800). Note: The dmovt instruction moves a 32-bit word from one register to another and tests the least-significant byte of the operand to determine if it is a valid ASCII-coded decimal digit (001100002 through 001110012, corresponding to the decimal digits 0 through 9). For valid digits, the condition code (CC) is set to 000; otherwise the condition code is set to 010. . Added cycle count adjustment for DMOVT instruction . Motorola MC68000: Support for external MMU bus error instruction restart. Fixed PC increment location on TRAPcc instructions. . Motorola MC68010: Don't set SR (which may change SP to USP) until after unwinding 1000 stack exception frame (68010 RTE). Create 1000 format stack frame on bus error (68010). Set fault address in 68010 and 68070 stack frames and set fc and rw in 68010 stack frame. . National Semiconductor INS 8060 SC/MP II: Format as(ptr) directly into output stream and avoid formatting it when not necessary (scmp\scmpdasm.cpp) . Signetics 2650: Fixed errors in the z80-format disassembler . Toshiba TMP95C061: Check timer enable before clocking chained timer, this improves (MESS NeoGeo Pocket Color) ngpc svccard2. Fixed LCDF16, ANDCF16, ORCF16 and XORCF16 opcodes (cpu\tlcs900\900tbl.hxx and tlcs900.h). - SOUND . K005289 SCC: Minor cleanups. Use struct for voices. . K051649 SCC1: Fixed input clock. Simplified some routines. Reduced unnecessary variables. Minor cleanups. . N2A03 APU: Fixed a DPCM table entry that was off by one (sound\nes_defs.h). Removed old, unused or redundant code variables and comments. Removed array used for reading back registers. APU registers cannot be read. Updated length counter table to match hardware counts. Consolidated some functions. Don't zero DPCM channel's output. Fixes some audio popping (sound\nes_apu.cpp). - DEVICE . Floppy . Fixed typo in error message. Allow creating unformatted images again (tools\floptool.cpp). . Correct sector extraction in wd/upd when extracted sector is smaller than expected (formats\upd765_dsk.cpp and wd177x_dsk.cpp) . K007232 PCM Controller: Fixed frequency bits (based on reverse engineering https://github.com/furrtek/VGChips/tree/master/Konami/007232) . Laser Disc: Added functionality to retrieve if a disc is CAV. Added savestate registration (machine\laserdsc.cpp) . Nintendo Zapper Lightgun and Nintendo Zapper Lightgun Photodiode: Split zapper sensor off as a reusable device . PWM Display: Added support for multi-state outputs per brightness level (video\pwm.cpp) . Z80 DMA Controller: Fixed interrupt enable output. Implemented the byte counter as an up counter. Note: (MESS) abc1600 expects an up counter and checks that the byte counter value is 0x200 after transferring 0x200 bytes. This is corroborated by the Z-80 DMA Controller Product Specification (February 1980) on page 7 (machine\z80dma.cpp). - 8080bw.cpp and mw8080bw.cpp: Use 8080 INTE output to control interrupt generation - actfancr.cpp: Fixed Segmentation fault (spriteram16) (ID 08210) - alpha68k_n.cpp: Changed Super Stingray audio clocks to match recording from PCB. Also changed second and third sound chips for Super Stingray and Kyros to AY-3-8910 based on PCB photos. - blktiger.cpp, capbowl.cpp, fastlane.cpp, flkatck.cpp, goindol.cpp, megazone.cpp, quizpun2.cpp, tail2nos.cpp, thedeep.cpp, wc90.cpp, wc90b.cpp, welltris.cpp, xxmissio.cpp and yunsung8.cpp: Use finder for memory bank and other minor cleanups - dynax.cpp: Correct screen order for Jong Yu Ki (Japan) and Jong Tou Ki (Japan) (ID 05102) - galaxian.cpp . Redumped the bad roms for clone 'Frogger (Hermatic, bootleg on Scramble hardware from Video Dens)' . Added 'Auto Fire' dipswitch to Mighty Monkey and clones Mighty Monkey (bootleg on Scramble hardware), Mighty Monkey (bootleg on Super Cobra hardware) and Mighty Monkey (Kaina Games, bootleg on Scramble hardware) (ID 08259). . Added 'Lives' dipswitch to clone Aracnis (bootleg of Scorpion on Moon Cresta hardware) (ID 08262) and fixed default coinage to 1C_1C. . Correct DIP switches for clone Space Empire (bootleg) (ID 08245) - gauntlet.cpp: Use ROM_CONTINUE instead of doing block-swapping in driver init - gei.cpp: Documented how to clear remaining credits (To clear remaining credits: Press STAND, DEAL and 3rd DISCARD buttons at the same time. Hold all 3 buttons down for 5 seconds. The screen will turn RED indicating a successful "CLEAR" occurrred) - hnayayoi.cpp: Correct clocks and DIPs. Note: With the correct clocks the game seems to run a voice test at start up that didn't happen with the Z80 wrongly clocked at 5 MHz. Halving the 'nmiclock' restores previous behaviour. Verify on PCB what's the correct behaviour. - hng64.cpp: Make game titles consistent - multigam.cpp: Added PPU address map and use memory banks for nametable RAM - namcos2.cpp: Fixed regression with valkyrie sprite shadows (video\namcos2_sprite.cpp) (ID 08238) - nemesis.cpp and quickpick5.cpp: Fixed sound output routine for sound chips with only 1 outputs. Reduced nemesis.cpp sound output routine duplicates. - photoply.cpp . Added recovery discs (UPDATE 2001 Disc 1, UPDATE 2001 Disc 2 and SNAKE II Service Release Update 2001) to Photo Play 2001 (Italian) . Added security dongle MCU dumps for Photo Play 1999 (Spanish). Four dongles have been dumped, containing different mixes of MCU programs and EEPROMs. The "rev" sticker on each dongle doesn't seem to relate to the contents. - playch10.cpp . Removed unused shared pointer (address_map) . Various cleanups . Modernized PRG ROM banking. Cleaned up cart daughter board initialization code. Fixed daughter board RAM sizes for Baseball Stars, PinBot and Mike Tyson's Punch-Out!!. . Nametable RAM is now 2K, except for the two games (Rad Racer II, Gauntlet) that have extra RAM on daughter boards. Removed unnecessary overridden machine/video start code for PinBot. Added an address map for the PPU. Further simplified initialization code for games that have VRAM or special RP5H01 usage. Lots of conversion to C++-style comments with a few corrections along the way. . Use memory banks for nametable RAM . Replaced RP5H01 rom in prototype dumps pc_bload, pc_ttoon and pc_virus - peplus.cpp: Minor cleanups. Enabled clickable artwork for Keno sets. - seattle.cpp: Fixed input port for 'San Francisco Rush' and 'San Francisco Rush: The Rock' - senjyo.cpp: According to tweet (https://twitter.com/sintan_jp/status/1294465615076315142) by Shinichi Sakamoto (composer and one of sound circuit designers of Senjyo and Starforce), fuse ROM (07b.bin) is used to store waveform data. Read it by CTC to generate frequency, then send it to R-2R ladder DAC. - slapfght.cpp . Correct screen timings and removed non-existing sprite buffer ram . Added missing proms to Alcon (US) and clones Slap Fight (A76 set, GX-006-A PCB) and Slap Fight (A77 set, 8606M PCB) - snesb.cpp: Moved Fatal Fury Special (SNES bootleg) from snesb.cpp to snesb51.cpp driver. Patched out protection for Final Fight 3 (SNES bootleg) for now. Note: Protection isn't figured out. - snesb51.cpp: Fixed regression - system1.cpp: Dumped 315-5139.ic50 PLD for Shooting Master and Choplifter - vsnes.cpp . Simplified graphics memory handling a bit. Added address maps for PPUs, eliminating some variables and associated setup. Separated banking from base light gun input handler. . Various cleanups: Modernized PRG ROM banking. Gets rid of banking via memcpy. Clean up some of the daughter board code, including protection routines. Lots of C-style comment to C++-style conversion. . A few more improvements: Unify some functions that are the same on both Main and Sub sides of board. Removed machine reset macro - AGEMAME . Added games list to astropc.cpp . Cleaned up layout\m5bbro.lay, m5fiddle.lay, m5fire.lay, m5firebl.lay, m5flipcr.lay, m5fortby.lay, m5frnzy.lay and m5funsun.lay. Fixed editing error in layout\m5bbro.lay. . Added missing hyphen between "Hi" and "Lo" in j5hilos, j6hilosv and clones (ID 07190). - Alien Invaders, Alpha Fighter / Head On, The Bounty, R2D Tank, Rolling Crash / Moon Base, Sky Love and Wanted (Sega): Added 'Bonus Life' dipswitch (ID 08236) (ID 08250) (ID 08251) (ID 08256) (ID 08257) (ID 08263) (ID 08267). - Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp, upscope.cpp and (MESS) amiga.cpp) . Copper: Converted to device. Added copins implementation as debugging mailbox and converted to logmacro.h (machine\amiga_copper.cpp). . Paula: Converted audio implementation accessors from switch-case to per-channel maps (machine\8364_paula.cpp) . Amiga: Converted OCS/ECS/AGA chipset flavours to address_map_bank_device, currently using the older custom_chip_r/_w as a legacy trampoline that will be progressively removed once that we have working implementations of Agnus/Denise and derivatives. Allow LOF bit to be set by writing bit 15 on VPOSW, fixes roadkill AGA boot. Disallow blitter address writes to go beyond the allocated chip RAM, fixes OCS sockid and AGA sockid_a drawing spurious filled tiles on playfield. Allow DDFSTRT and DDFSTOP to read bit 2 in lores mode, fixes swordsod GFX pitch in gameplay. Use pf2pri for non-dual playfield, fixes alfred player sprite visibility. Disable floppy drive default for CD32. Allow CD32 to read CDTV titles from SW list. Subq command adds +2 in command buffer, fixes cdtv:defcrown hardlock emulation (machine\akiko.cpp). Better elaborate QA notes, added "Trackdisk" to device long name as officially referred by Amiga SDK (machine\amigafdc.cpp). . Amiga AGA: Fixed sprites and bitplanes in dualpf modes, fixes at very least cd32:dstreets on gameplay. Fixed BPLCON0 when planes == 7 is set, fixes title screen GFXs in surfninj. Use HAM6 when not in AGA mode, fixes colors in cdtv:townona when run with CD32 system. Fixed sprite control fetches when FMODE != 0, fixes at very least Digger AGA sprites display. Added extended bitplane delay hooks. Fixed HAM8 when in HIRES mode, fixes at least roadkill title and car screens. Implemented Extra Half-Brite mode, used by bblow_a main menu. Workaround most GFX pitch corruptions, caused by implicit DDFSTOP overrunning width loop. Implemented bscan2 (video\amigaaga.cpp). . cubo.cpp: Added inputs to Eldorado, Odeon Twister and Odeon Twister 2. - Attack Force: Promoted clone Attack Force (unencrypted) to working - Beyond Kung-Fu: Use a named shared zone for the tileram - Black Tiger, Green Beret, Pitfall II, Teenage Mutant Ninja Turtles and US AAF Mustang: Added hardware infos. Correct Black Tiger MCU clock. Correct Green Beret bootleg clocks. - Blasted: Added PLD dump - Bonze Adventure: Gamr has no ADPCM-A samples - Chameleon 24: Improved banking. Use memory banks for nametable RAM. - Choplifter: Added 315-5139.ic50 PLD from Shooting Master - Claybuster: Added 'Number of Flings' dipswitch (ID 08254) - Contra: Verified clocks - Cruis'n Exotica: Added PIC dump. Note: The PIC still need to be properly hooked up. Also reformatted single-line comments on the ROM definitions. - Dangerous Bar: Redumped display rom (drb1_dot0.ic13) - Donkey Kong 3: Correct RAM size for audio CPUs - FamicomBox: Added verified cartridges and removed nonexistent cartridges. dded some input control bits. Joypads now swap depending on which one hit start on game select menu. Controller inputs ignored during attract mode before inserting coin. Minor cleanups of cart switching. Use memory banks for nametable RAM. - Fruit Star Bonus . Promoted Fruit Star Bonus (Ver 8.27PVIE) and clone Fruit Star Bonus (Ver 8.20PIR) to working . MPU-12 driver major improvements: Fixed screen matrix according to the CRTC values. Improved memory map. Hooked the AY-3-8910. Adjusted the clock. Decoded bitplanes and unscrambled the color PROM addressing. Calculated the color resnet. Got the correct palette and game colors. Working inputs from the scratch. Completely reversed all the DIP switches. Supported Button-lamps. Added control panel layout. Added two new hungarian clones. Promoted all supported games to working. Added hopper support. Added default NVRAM to all sets. Added more findings, diagrams and technical notes. - Get A Way: Updated metadata and notes considering Japanese flyer. Removed imperfect controls flag and changed description to note that the dumped set seems to be for the upright cabinet shown on the Japanese flyer. The version for sit-down cabinet with additional I/O is undumped. - Good Luck! poker (Sisteme France): Reconstructed the corrupted program (init_pokersis) and removed unused machine driver. Promoted game to working. - Hangman: Correct DIP switches (ID 08209) - Jail Break: Dumped PALs and added PCB info for clone Jail Break (bootleg) - Lunar Rescue: Removed MB14241 device from clone Lunar Rescue (Model Racing bootleg, set 2) (the bootleg code patches out all accesses), fixes broken collision detection (ID 08227). - Master of Weapon: Dumped PALs and added PCB info - Mega Zone: Added PCB infos and some notes about clone Mega Zone (unknown program code 1) - Midnight Resistance: Fixed control scheme in clone Midnight Resistance (World, set 2) - Monster Zero and SF-X: Added 'Demo Sounds' dipswitch (ID 08268) - PinMAME . alvg.cpp: Added layout, BSMT2000 sound, DMD and save state. 'A.G. Soccer Ball' and 'U.S.A. Football' are playable. . by17.cpp, by35.cpp and zac_2.cpp: Added savestate items. Made inputs visible in (this machine) for by17.cpp and by35.cpp. . byvid.cpp: Added 'Bally Cheap Squeak Board' sound . capcom.cpp: Added notes. Cleaned up rom definitions. . de_3.cpp: Fixed sound for Batman and TMNT. Checkpoint. Used optional_memory_region. . gp_1.cpp, gp_2.cpp, hankin.cpp, st_mp100.cpp and st_mp200.cpp: Replaced output.set_value with finder . gp_2.cpp: Andromeda and Cyclopes are playable (To start, hold CX hit 1. End ball, CX) . gts1.cpp and gts80/a/b.cpp: Improved sound. Added bonus display. Fixed mmmaster and topsound. Added sound to Bone Busters Inc. . gts1.cpp, inderp.cpp, jeutel.cpp and wico.cpp: Use led14seg instead of led8seg_gts1. Removed led8seg_gts1 (emu\rendlay.cpp). Added outputs to gts1.cpp. . gts3.cpp and gts3a.cpp: Added sound to most remaining games. Added rom banking for OKI6295. DMD partially working, 11 gts3a.cpp games are playable. . jp.cpp: Fixed display for clone Faeton (6 digits), Petaco (new hardware) and clone Petaco (new hardware, alternate set). All games are playable. . play_2.cpp, recel.cpp, spectra.cpp, spirit76.cpp, zac_2.cpp and zac_proto.cpp: Added some namespace . zac_1.cpp: Improved the sounds . zac_2.cpp: Got 43 out of 45 games to work (but no sound yet) . zac_proto.cpp: Added 'Slam Tilt' button - Q*bert: Used output finder for knocker - Raimais: Correct 'Bonus Life' dipswitch (ID 08244) - Sega Rally Championship: Dumped IO board ROM for clones Sega Rally Championship - DX (Revision A) and Sega Rally Championship - DX - T.V. 21 III: Dumped most missing PROMs - Terra Cresta: Correct driver notes (According to music sheet officially offered from Nichibutsu (https://jogrm.blogspot.com/2022/02/blog-post_19.html), sound in the intro of main theme in old/older set seems not a glitch) - Time Traveler . Dump Laser Disc. Added high-level Pioneer LD-V4200 player emulation (machine\ldv4200hle.cpp). Promoted Time Traveler (set 1) to working. . Fixed bill-validator hookup. Fixed layout to not warp screen to non-4:3 aspect (layout\timetrv.lay). Hooked up 1-bit audio DAC. Fixed overshoot issue with Multi-Speed Forward/Reverse in Pioneer LD-V4200 HLE. - Fixed rom names in famibox.cpp, itech8.cpp, jailbrek.cpp, kaneko16.cpp, model2.cpp, namcos22.cpp and system1.cpp - Dipswitch fixes in 8080bw.cpp, alinvade.cpp, cubo.cpp, galaxian.cpp, gts1.cpp, gts80/a/b.cpp, hnayayoi.cpp, mpu12wbk.cpp, r2dtank.cpp, statriv2.cpp, taito_l.cpp, vicdual.cpp and zodiack.cpp - Description changes of Airborne (1.6), Al's Garage Band Goes On A World Tour (R01c), Beast Busters: Second Nightmare, Buriki One: World Grapple Tournament '99 in Tokyo (rev.B), Dinosaur Eggs (R02), The Empire Strikes Back (Hankin Pinball), Fatal Fury: Wild Ambition / Garou Densetsu: Wild Ambition (rev.A), Get A Way (upright), Good Luck! poker (Sisteme France), Hi-Lo Silver (JPM) (IMPACT) (set 1-6), Hi-Lo Silver (JPM) (SYSTEM5), Hi-Lo Silver (System 85, set 1-2), Kid no Hore Hore Daisakusen (bootleg set 1), Leader Board Golf (Arcadia, set 1, V 2.5), Leader Board Golf (Arcadia, set 2, V 2.4), Leader Board Golf (Arcadia, set 3), MAC's Galaxy (yellow version, M.6), Masked Riders Club Battle Race / Kamen Rider Club Battle Racer, Player's Edge Plus (X000225P+XP000079) Deuces Joker Wild Poker, Player's Edge Plus (X000430P+XP000079) Deuces Joker Wild Poker, Player's Edge Plus (X000556P+XP000038) Deuces Joker Wild Poker, Ra's Scepter (Russia), Red Hawk (horizontal, Spain, set 1), Ridge Racer (Rev. RR3 Ver.B, US), Ridge Racer (Rev. RR3, US), Ridge Racer Full Scale (Rev. RRF2, World), Roads Edge / Round Trip RV (rev.B), Royal Card (stealth with NES multigame, set 1), Samurai Shodown 64: Warriors Rage / Samurai Spirits 2: Asura Zanmaden, Sport Darts T.V., U.S.A. Football (R06u) and Vs. Baseball (*, set * *-*) - Renamed (acedrvrw) to (acedrive), (bmcompmx) to (bmcompmxb), (raveracw) to (raverace), (raveracj) to (raveracej), (raveracja) to (raveraceja), (ridgeracb) to (ridgeraca), (ridgerac) to (ridgeracb), (ridgerac3) to (ridgeracc) and (victlapw) to (victlapa) - MAME . VIDEO RENDERING SYSTEM . Removed vestiges of artwork dotmatrix element (emu\rendlay.h). Removed led8seg_gts1 (emu\rendlay.cpp). . Fixed possible color overflow on disk element (emu\rendlay.cpp). This fixes color channels may overflow depending on its color alpha value when using the disk element in internal artwork (ID 08226). . Removed some custom GFX decodes in favor of the ones provided in video\generic.cpp (aerofgt.cpp, cop01.cpp, dacholer.cpp, galivan.cpp, pzletime.cpp, taxidriv.cpp, terracre.cpp and welltris.cpp) . BGFX . Added default LUT PNG and fixes LUT-effect crash. Fixed external texture loading and restoring HQx filters. . Improved stability when encountering missing files and improved multi-window stability . Fixed YUV shader to have better brightness balance . Added error retval check for BGFX on fallback (sdl\window.cpp and windows\window.cpp) . Added video-init fallback functionality to other OSDs (osd\mac\window.cpp, sdl\window.cpp and windows\window.cpp). Removed no-longer-needed addition of post_create(). . (MESS) Spectrum graphics improvements (emu\screen.h) . DEVICE: Cleaned up a little using C++17 type traits helpers. Re-added std::moves that aren't pessimising (emu\devcb.h). . LUA engine . Make setting analog I/O port field values user-friendly. Exposed minimum/maximum values for analog fields. Together with defvalue, they can be used to check range of values and neutral position. Previously you had to send a normalised value between -65535 and 65535 which would be scaled depending on machine specifics. You could read the scaled value from the port, but you couldn't send scaled values in. This allows scripts to set scaled values as seen by the machine (mame\luaengine_input.cpp). . Made LUA I/O port field sensitivity nil for digital fields and put in some more const (mame\luaengine_input.cpp). . Started changing LUA function bindings to use set_function to avoid potential issues related to ThePhD/sol2#608, and worked out what was causing problems with symbol table read_memory/write_memory (they aren't really essential - you can do the same thing with the address space object itself, but they're easier to parameterise). . Enable checks for debug builds and kill sol::buffer (ID 08242) . LUA engine improvements: Made auto-boot script errors and plugin bootstrap errors fatal. Run auto-boot scripts in a sandbox. Globals can be accessed, but not set. The sandbox is cleared on hard reset, but not on soft reset. Added (hopefully) useful to string metafunctions to device_t and address space that show short names and tags. Fixed issues in plugins that surface when strict type checking is enabled, as this means numbers and nil are not automatically converted to strings. Plugins should be tested with debug builds to check for this. Made save item read_block raise an error on invalid arguments rather than returning an empty string, and made it use luaL_buffer directly rather than using the helper wrapper. Changed some more function bindings to use set_function to avoid issues related to ThePhD/sol2#608, and got rid of some unnecessary lambda captures. . INPUT . Use ioprocs classes instead of emu_file for device_nvram_interface's load and save methods, and have these return false on I/O errors. . Fixed out of bounds access to std::string_view (emu\input.cpp) . Allow re-plugging mouse/keyboard (input\input_rawinput.cpp) . PLUGINS . Don't try to call a handler for the previous menu option (plugins\cheatfind\init.lua) . hiscore.dat update (plugins\hiscore\hiscore.dat) . 3rdparty: Fixes for ASIO 1.20.0 (util\client_ws.hpp and client_wss.hpp). Fixed Clang error: Lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture] (util\client_ws.hpp). . Fixed a couple errors in the Technical Specifications. These seemed like copy paste errors in their contexts (techspecs\memory.rst and techspecs\object_finders.rst). . Added page describing how MAME searches for media. Also made error messages for missing CHDs and missing files for software parts using the image file loader show search paths, and changed the (poorly named) bitbanger device to use the image file loader rather than the ROM loader for software items (usingmame\assetsearch.rst). . Fixed MAME reports missing BGFX files and crashes (Arch LINUX only) (ID 08272) - VGM player: Added 56 new entries (hash\vgmplay.xml). Removed outdated comments. Fixed compatiblity for old VGMs (drivers\vgmplay.cpp). - Compiling . Re-enabled some compiler warnings and cleaned up some Python scripts a little. Disabled Clang warnings again - only the GCC ones should be re-enabled. Fixed some GCC warnings (cpu\dsp56156\tables.cpp). . Don't use static buffers for building messages (machine\decocass_tape.cpp) . Don't use static buffers for messages, don't clash with the LOG_GENERAL constant (machine\53c7xx.cpp) . Init variables for Coverity software (drivers, includes and formats) - Debugger . Use std::string_view in command parsing and eliminate initial buffer copy (debug\debugcon.cpp) . Modernized implementation details of mini_printf (debug\debugcmd.cpp) . Fixed some debugger memory view annoyances and cleaned up LUA bindings. Made the debugger memory view not depend on isprint which is affected by the global locale. Assume the OSD will display as ISO-8869-1 and replace problematic printable characters. . Fixed an assert in the debug build (cobram3, drivers\gottlieb.cpp) 0.241 - New games: Chic Gum Video, Dice - The Dice Game!, Fail Gate, Krokha, Space Battle (Hoei, set 1) and The Tower (DECO Cassette) (Europe?) - New Working games: Bonne Chance! (Golden Poker prequel HW, set 1), Bonne Chance! (Golden Poker prequel HW, set 2), Mega Double Poker (conversion kit, version 2.3 MD), Mega Double Poker (conversion kit, version 2.1 MD), Super Poker (v114IT) and Super Poker (v116IT-MX) - New Non-Working games: BattleFront, Blackjack (Ver. 1.31), Color Match, Extra Draw, Fruit World (V111), Jumanji (V502), Magic Slot (normal 1.0C), Minna de Kitaeru Zenno Training (Ver. 1.50), New Tiger, Plutus (V100), Poker's Wild (V117), Road Star, Scratch!! Scratch!!, Sport Memory, Striker, Super Card 2 in 1 (English version 03.23), Torre Eiffel, 'unknown game on FR004 hardware (set 1)', 'unknown game on FR009 hardware', 'unknown PMC game', 'unknown SMK game' and Yatterman Plus (J 981006 V1.000) - New clones: Attack Force (unencrypted), Boa Sorte! (Golden Poker prequel HW), Break Thru (bootleg), Coco Louco, Code One Dispatch (ver UAA), CoMotion (patent), Credit Poker (ver.23b, 7 & 9 bonus), Cyber Cycles (Rev. CB1 Ver.C, Japan), Defend the Terra Attack on the Red UFO (bootleg, set 3), Devil Fish (Galaxian hardware), Dung Fong Zi Zyu (Hong Kong, V011H, set 2), FamicomStation, Fruit World (V110), House of Cards (HSC1), Kung Fu (IGS, v202N), Magic Bomb (Ver. NB4.5 061402), Majestic Twelve - The Space Invaders Part IV (US, revised code, Rev 1), Midnight Resistance (World, set 2), Multi Game (English, Version Soft 4.1.2T - 1.5.7, 16-MAY-00(397)), Multi Game (French / English, Version Soft 4.4.8T - 4.0.5, 26-OCT-00), Puzzle & Action: Ichidant-R (World) (bootleg), Sauro (set 3), Space Battle (Hoei, set 2), Super Poker (v100), Teenage Mutant Ninja Turtles (bootleg, US 4 Players, version H), Tokyo Wars (Rev. TW1 Ver.A, Japan), 'unknown game on FR004 hardware (set 2)', 'unknown game on FR004 hardware (set 3), 'unknown game on FR004 hardware (set 4)', Violent Storm (ver AAB, bootleg) and Wally wo Sagase! (rev A, Japan, 3 players) (FD1094 317-0198A) - New PinMAME games: Machina Zois Virtual Training Centre, Mysterian (prototype) and Rush (1.0) - New drivers: krokha.cpp, novadesitec_fr002.cpp, novadesitec_fr004.cpp, novadesitec_fr009.cpp and pmc.cpp - Removed drivers: de_3b.cpp, s6a.cpp and white_mod.cpp - New devices: h8s2320, h8s2321, h8s2322, h8s2323, h8s2324, h8s2326, h8s2327, h8s2328, h8s2329, nes_4score_p1p3, nes_4score_p2p4, nes_arcstick, nes_bandaihs, nes_bcbattle, nes_bcbattle, nes_ccpadl, nes_ccpadr, nes_control_port, nes_dorepiano, nes_famtrain, nes_fckeybrd, nes_fcpad2, nes_fcpadexp, nes_hori4p, nes_horitwin, nes_joypad, nes_konamibag, nes_konamihs, nes_miracle, nes_mjpanel, nes_pachinko, nes_partytap, nes_powerpad, nes_snesadapter, nes_suborkey, nes_taptapmat, nes_turbofile, nes_vaus, nes_vausfc, nes_vboyctrl, nes_zapper, sbhoei_sound, snes_bcbattle, snes_control_port, snes_joypad, snes_miracle, snes_mouse, snes_multitap, snes_pachinko, snes_sscope, snes_twintap, w65c02s, wmss11, wmss4, wmss6 and wmss9 - CPU . ARM: Disassembly improvements (arm\armdasm.cpp): Correct mnemonic suffixes for LDM and STM. Correctly distinguish between pre-indexed and post-indexed modes of LDR and STR. Use shorter syntax for R15-relative LDR or STR. Disassemble R15-relative ADD and SUB as ADR. Identified RRX shift type and P modes of test instructions. Changed hexadecimal prefix to &. Make ! and ^ suffixes for operands, not mnemonics. Many minor syntax corrections. Fixed PC display for watchpoint hit message. . Dynamic Re-Compiling: Sync AsmJit library with upstream (3rdparty\asmjit). MAME integration (cpu\drcbex64.cpp and drcbex86.cpp). . Intel 8086: Wrap at end of segment not at 64k boundary (i86\i86inline.h). Fixes (MESS) VIS (Video Information System MD-2500) audio popping. . MIPS-III: Replaced a std::function with a marginally more efficient delegate. Fixed some bugs (cpu\mips\mips3.cpp) . Motorola MC68010: Create 1000 format stack frame on bus error. 68010 RTE: Don't set SR (which may change SP to USP) until after unwinding 1000 stack exception frame (m68000\m68k_in.lst, m68kcpu.cpp and m68kops.cpp). . National Semiconductor COP40x: Added accessors for sk/so output pin state - SOUND . N2A03 APU . Added noise channel period table for PAL systems. Fixed a value in the parallel NTSC table for the largest period (lowest freq) and a value in the counter length table (for all channels but DMC) (sound\nes_apu.cpp and nes_defs.h). . Implemented non linear mixer output, some misc fixes and improvements. Fixed Pulse channel duty behavior, triangle output behavior, noise output behavior and DMC output and clamp behavior. Now DMC output is affects triangle and noise volume. Reduced unnecessary variables. Split channel update function and output variable. Reference: https://wiki.nesdev.org/w/index.php?title=APU (sound\nes_apu.cpp and nes_defs.h). . Improvements for triangle channel: Don't set output level to zero, it is always determined by sequencer, which cannot be reset. This eliminates most of the popping, hopefully. Raised artificial frequency cutoff to about 18KHz instead of 11KHz. Added linear counter reload flag. . Yamaha SWP30 sound chip: Added waverom reading (sound\swp30.cpp) . Yamaha YMF271 OP: Fixed timer A period and added notes for timer - DEVICE . ATI MACH32: Removed duplicate save state registration (isa\mach32.cpp) . HuC626x video: Fixed SCSI identifier and added extensive QA (video\huc6272.cpp) . I2C Memory: Initialized m_bits (machine\i2cmem.cpp) . Mitsumi ISA CD-ROM Adapter: Fixed CD audio and changed TOC data (isa\mcd.cpp) . Intel 8253/4 PIT: Prevent elapsed_cycles from going negative . VGA: Made video RAM size configurable at machine configuration . X76F041/100 Secure SerialFlash: Implemented new operations and security features (machine\x76f041.cpp and x76f100.cpp) - 39in1.cpp: Brought Plutus decryption on par with the other sets - cave.cpp: Added notes for version/date string in ROM. Fixed metadata matches to in-game display. - cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp: A few background palette fixes (video\ppu2c0x.cpp): Added function to unify grayscale and palette emphasis flags application. Flags now applied to background pixels (including separate cases: 0 tile pixel, disabled background lines and blanked 8-pixel left column). Fixed special case where background is disabled and scanline color is set by PPU address latch pointing to palette RAM (used in Micro Machines). Plus a few minor simplifications and cleanups. - cmmb.cpp: Added WDC W65C02S CPU emulation with subtly different fetch patterns from classic 65C02 and use it for Centipede / Millipede / Missile Command (rev 1.03) and Centipede / Millipede / Missile Command / Let's Go Bowling (rev 1.62). - goldnpkr.cpp . Fixed interrupts, GFX banks and bitplane order for Bonne Chance! (Golden Poker prequel HW, set 1), Bonne Chance! (Golden Poker prequel HW, set 2). Promoted games to working. . Promoted Mega Double Poker (conversion kit, version 2.3 MD) and clone Mega Double Poker (conversion kit, version 2.1 MD) to working - ksys573.cpp . Updated security flash data . Added master calendar for initializing security cassettes (machine\k573mcal.cpp) . Implemented new operations and security features for X76F041/100 Secure SerialFlash and Konami ZS01 PIC - m62.cpp: Shrink I/O memory maps - nss.cpp, sfcbox.cpp and snesb.cpp: Partial revert DMA cycle function (machine\snes.cpp). Fixes (MESS) snes wildguns flickers heavily after entering gameplay in the first level (ID 08190). - playch10.cpp . Correct NT mirroring for various games (machine\playch10.cpp). Fixes Tennis (PlayChoice-10) screen quickly flashes garbage, when starting a game (ID 02646). Mark Excitebike (PlayChoice-10), Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10), Rad Racer (PlayChoice-10) and Rad Racer II (PlayChoice-10) as imperfect graphics. . Properly clear IRQs for MMC3 boards. Removed WRAM from PinBot, there's none on its PCB. . Mute/unmute according to SOUNDMASK (machine\playch10.cpp). Fixes audio loop after game demo in pc_drmro, pc_mtoid and pc_ttoon (ID 06721). . Made zapper less bad (pc_duckh, pc_hgaly and pc_wgnmn; machine\playch10.cpp): Limited light detection to scanlines recently drawn by CRT. Lowered light detection threshold to better reflect how real zapper behaves; color doesn't need to be white. Bugs fixed: Not detecting hits on certain white objects. Misdetecting hits on objects far away from the pointer. Not being able to track where zapper is pointed in demo/test software. This fixes shooting at the white part of a target, the shot will not register in pc_wgnmn, hogalley and duckhunt (ID 00537). . Made zapper sensor fuzzier: Removed the pixel-perfect sensor by averaging pixel brightness over circular area around gun position. Treat RGB values equally and don't use lib\util\palette.h's weighted brightness function. - spoker.cpp: Decrypted clones Super Poker (v114IT) and Super Poker (v116IT-MX), added inputs and promoted to working state. - taito_z.cpp: Based clocks on actual XTAL values - twincobr.cpp and wardner.cpp: Properly acknowledge IRQs. Fixes soft reset issue in Wardner (ID 08197). - vectrex.cpp: Fixed regression - vegas.cpp . Fixed UART definition . Cleanup driver: Combine DUART interrupts. Disabled SIO logging that had been left on. Added system LED output and added it to 'San Francisco Rush 2049' layout (hidden by default). - vsnes.cpp . Set raw screen parameters. Simplified nametable mirroring (machine\vsnes.cpp). . Various fixes and cleanups: Fixed size and mirroring of RAM. Correctly share shared RAM only. Shared RAM is also now properly NVRAM (Wrecking Crew saves high scores, etc). Removed spurious "extra RAM" installed in a couple spots. Added coin read/write address mirroring. Renamed "mapper 68" to Sunsoft-3, the chip on Platoon's board. Fixed its write masking. Implemented proper strobe behavior for joystick read/writes. Removed now unnecessary lightgun-specific read function and unused variables. . Made zapper less bad (duckhunt, hogalley, vsfdf and vsgshoe; machine\vsnes.cpp): Limited light detection to scanlines recently drawn by CRT. Lowered light detection threshold to better reflect how real zapper behaves; color doesn't need to be white. Bugs fixed: Not detecting hits on certain white objects. Misdetecting hits on objects far away from the pointer. Not being able to track where zapper is pointed in demo/test software. . Made zapper sensor fuzzier: Removed the pixel-perfect sensor by averaging pixel brightness over circular area around gun position. Treat RGB values equally and don't use lib\util\palette.h's weighted brightness function. - AGEMAME: Reduced redundancy in more slot machine layouts (mpu3.cpp, mpu4.cpp and mpu5sw.cpp) - Air Raid: Removed leftover from testing (IPT_BUTTON3). More time between IRQs. - Bio-hazard Battle (Mega Play): Demoted Bio-hazard Battle (Mega Play) to NOT WORKING, it frequently locks up on continue, usually the 2nd or so continue on the 2nd stage, likely another manifestation of the Shinobi III (Mega Play) timing comms issue. - Blades of Steel: Added a note about a buggy dipswitch in clone Blades of Steel (version E, Trackball) - Defend the Terra Attack on the Red UFO: Added DIP locations for the redufo bootlegs - DonPachi: Use rom u58 from parent set for clone DonPachi (Korea), fixes corrupt graphics in ending (ID 08194). - Dunk Mania: Redumped wave rom for Dunk Mania and clone (Japan, DM1/VER.C) - FamicomBox: Various improvements: Added NES controller slots. Added r/w of zapper enable bit through appropriate ports. Controllers and zapper now pass the internal self-test. Shrunk nametable RAM down to correct 2K (mirroring still not correctly implemented). - Finalizer - Super Transformation: Removed imperfect sound flag - Gals Panic 4 (Europe): Dumped the missing YMZ280B sound rom - Kuzmich-Egorych: Minor code cleanup - Lady Master of Kung Fu: Mark clone Nunchackun PROMs as bad, there's no way these PROMs can give the colours seen in reference videos, if these *were* on the PCB it must have been a bootleg conversion. - Mr. Do!: Universal set protection is not same as Taito's. Readded the crazy hack for Mr. Do!, it should be working same like before. This fixes the "E" turns only gray and the others remain yellow after the "EXTRA" demo (ID 08201). Note: Protection via U001 (PAL16R6), but not as simple as the Taito version, it appears that m_pal_u001 outputs are fed back to inputs. The game won't work properly after the EXTRA reward when using the Taito protection. Notably, the Taito version NOPped out the EXTRA protection check. - Neo Mania: Added manufacturer and correct year - Phoenix: Dumped a second PCB for clone Phoenix (Assa, Spanish bootleg), verified PROMs and ROM labels. - PinMAME . Added Williams DAC sound card device for s3.cpp, s4.cpp and wms_shuffle.cpp. . Added Williams DAC+Speech device for s6.cpp and s7.cpp. Merged s6a.cpp into s6.cpp. . Fixed wms_shuffle.cpp inputs. Added 'Williams System 9 Sound Board' sound to Strike Zone (Shuffle) (L-5) and clone (L-2). Added 'Williams System 11 Sound Board' sound to Alley Cats (Shuffle) (L-7). . Made sound card a device (WILLIAMS_S9_SOUND) for s8a.cpp and s9.cpp. . Took local variables out of the public space (s11a.cpp, s11b.cpp and s11c.cpp). WIP (s11.cpp). Fixed the worst of the flickering (S11) and also the Riverboat Gambler (L-3) issue. . Added commas to s7 and s9. Added special solenoids to s3-11. . Added keycodes to start games and savestate to wpc_an.cpp, wpc_dcs.cpp, wpc_dot.cpp, wpc_flip1.cpp and wpc_flip2.cpp. Added m_ to global vars to wpc_dcs.cpp. . Added m_ prefix to variables, updated inputs and added keycodes to wpc_s.cpp . Added m_ prefix and WIP on inputs. Added inputs and keycodes to wpc_95.cpp. Games are playable. . Added notes to by6803.cpp and pinball2k.cpp. Initialised global variables to 0 in pinball2k.cpp. Most by6803.cpp machines are playable. . Added inputs to whitestar.cpp, some machines are playable. Merged white_mod.cpp into whitestar.cpp. Added documentation to sam.cpp. . WIP (de_2/3.cpp). Added documentation. Merged de_3b.cpp into de_3.cpp. Fixed type1&2 displays. Removed unused code. Added outputs and removed unused switch (machine\decopincpu.cpp). . Added notes to alvg.cpp and capcom.cpp. Added added inputs, NVRAM and notes for alvg.cpp. - Raiden: Use prio_* for sprite draw routine. Minor cleanups. Reduced unnecessary memory region size. Simplify gfxdecode layouts. Fixed namings. Use shorter/correct type values. Added notes of country/game mode byte. High nibble is respawn behavior related, only for single play. Low nibble is region/country code. - Repulse: Mark PROMs in clone '99: The Last War (bootleg) as bad, there's no way these PROMs can give the correct colours for the unique 1st stage in this set. - Rock'n Rage: Correct and added DIP switch setting. According to contents of operator's manual (https://archive.org/details/arcademanual_RockNRage), some DIP switch settings need to be correct and added. - Tiger Road: Documented clone Tiger Road (US bootleg) PCB - Trivia (Questions Series 8): Fixed incorrect DIPs 5, 6 & 7 for clones Trivia (Questions Series 12 Alt Question Rom) and Trivia (Questions Series 14 Alt Question Rom) (ID 08198). - Fixed rom names in mrdo.cpp, phoenix.cpp, namcos22.cpp, sanremo.cpp and tigeroad.cpp - Dipswitch fixes in galaxian.cpp, gei.cpp, famibox.cpp, rockrage.cpp, s6.cpp, s7.cpp and wms_shuffle.cpp - Description changes of Atlantis (rev. 3), Attack Force (encrypted), Bubble Trouble - Golly! Ghost! 2 (World, Rev B) (ID 08195), Bubble Trouble - Golly! Ghost! 2 (Japan, Rev C), many cave.cpp games, CoMotion, Daai Baan Sing (Hong Kong, V027H), Devil Fish (Galaxian hardware, bootleg), Devil Fish (Scramble hardware), Dung Fong Zi Zyu (Hong Kong, V011H, set 1), Excitebike (PlayChoice-10), League Champ (1.1) (Shuffle), Lung Fu Bong II (Hong Kong, V185H), Majestic Twelve - The Space Invaders Part IV (US, earlier code base), Majestic Twelve - The Space Invaders Part IV (US, revised code), Midnight Resistance (World, set 1), Multi Game (Italian, Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?), Multi Game (Italian, Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?), Multi Game (Italian, Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?), Ridge Racer 2 (Rev. RRS2, World), Super Space Invaders '91 (World, revised code, Rev 1), Super Space Invaders '91 (World, revised code), Super Space Invaders '91 (World, earlier code base), Strike Master (L-4) (Shuffle), Striker (Pinball), Treasure Island (DECO Cassette) (Europe?), Wally wo Sagase! (rev A, Japan, 2 players) (FD1094 317-0197A) and Wally wo Sagase! (rev B, Japan, 2 players) (FD1094 317-0197B) - Renamed (devilfsg) to (devilfshgb), (kungfu) to (kungfua), (kungfum2) to (bkungfu), (majest12ua) to (majest12ub), (majest12u) to (majest12ua) and (saurob) to (saurobl) - MAME . VIDEO RENDERING SYSTEM: Modest refactoring (emu\rendfont.cpp): Use ioprocs classes rather than emu_file in various helper functions. Make save_cached take an already-open file (like load_cached) rather than a filename. Make load_cached_bdf take a std::string_view. Changed some osd_printf_warnings to osd_printf_info. . MEMORY SYSTEM . Exposed memory pass-through handlers (address space taps) to LUA (mame\luaengine_mem.cpp and debug\points.cpp) . Addressed some LUA scripting pitfalls . Addressed pure virtual function call crash on end of emulation session if you haven't explicitly removed all address space taps, memory corruption on end of emulation session if you haven't explicitly removed all address space change notifiers, and symbol being garbage-collected out from under you while you have parsed expressions or other symbol tables that depend on them. . Removed the copy constructor for parsed expressions as the underlying C++ copy constructor appears to be broken, and simplified symbol table constructors. Also made symbol table add methods return the new entry to avoid the need for an extra lookup. . Fixed breakpoint/watchpoint objects being inappropriately copied into the tables returned by bplist() and wplist(), allowing the enabled property to be modifiable for breakpoint and watchpoint objects in LUA. . Fixed drivers and devices causing a new memory pass-through handler to be allocated on each soft reset, and fixed multiple instances of taps being installed in the event the machine is reset before the tap is removed. . Added classes for managing broadcast subscriptions, and adapted address spaces to use this for change notifications. Hold onto memory cache handler change subscriptions (emu\emumem.h). Don't try copying memory access caches (sound\st0016.cpp) . DEVICE: Force recomputation of clock-related parameters whenever a device clock or scale changes by way of loading a save state (emu\device.cpp) . UI . Use util::core_file instead of emu_file where applicable (frontend\mame\*.*) . Added 57 glyphs (mostly arrow symbols) to uismall.bdf . INPUT . Only show items for first device in non-multi classes. It's not possible to actually use higher-numbered device assignments for classes that combine all host devices. For example you can't use the default "Mouse 2" assignments if -multimouse isn't enabled (emu\input.cpp). Fixes mouse B0 doesn't work by default in (MESS) Nintendo Zapper Lightgun (ID 06842). . Added default assignements for P2-P4 mahjong/hanafuda inputs when using -multikeyboard (emu\inpttype.ipp) . Added doxygen comments so one doesn't need to read the source to work semantics (util\ioprocsfilter.h) . Attempt to appease GCC's stricter handling of incomplete types (emu\machine.cpp) . Removed optional second argument of path_iterator::next (emu\fileio.cpp) . Fixed broken links and added missing links in command line options index. Also removed documentation for an option that no longer exists and fixed some inconsistent terminology (docs\source\commandline\ and docs\source\debugger\). . Treat WinImage compressed disk images (*.imz) as ZIP archives (mame\media_ident.cpp) . hiscore.dat update (plugins\hiscore\hiscore.dat): Added megaman2h, fixed gtmr, gtmra, gtmro and gtmrusa (1000 Miglia: Great 1000 Miles Rally) and added clones gtmrb and gtmro. . Fixed the viewing of a GAL16V8 device when in simple mode and pins 15 or 16 have no product terms (tools\jedutil.cpp) - SDLMAME: -video auto now means "bgfx" on all platforms. Keep -video soft as the default for Emscripten for now (sdl\video.cpp). - VGM player: Added 35 new entries and two shortname corrections (hash\vgmplay.xml) - Compiling . MEMORY SYSTEM: Removed unused initialization method taking address_space parameter (emu\memarray.cpp) . Fixed building with GCC-12 (netlist\plib\pstream.h) . Removed http related header polution and now invalid message. Fixed issued detected by Clang and CR at EOF (emu\emu.h, emufwd.h, http.cpp, machine.cpp and main.cpp). . Removed void *ptr parameter from emu_timer, timer_device and all related callbacks. . Separated includes by module in various drivers. Drop unnecessary executable permissions. . Added some missing standard headers (util\flac.cpp) . Removed extra semicolons after function bodies in headers (src\devices\* and src\mame\*) . Removed fileio.h from emu.h. Organised #included headers by module (emu\machine.cpp). - Debugger . Exposed debug symbol tables and parsed expressions to LUA (these can be used when the debugger is not active). Also made it simpler to walk input types (frontend\mame\luaengine_debug.cpp and luaengine_input.cpp). . Deleted some unnecessary c_str() calls (debug\debugvw.cpp and debugger\qt\mainwindow.cpp) 0.240 - New games: Mahjong Block Jongbou 2 (Japan) - New Non-Working games: Fun-E-Ball, Gumball Rally, Beyond Kung-Fu (location test) and Neo Mania - New clones: Aero Fighters Special (USA), Diet Go Go (Euro v1.1 1992.09.26 v3), Gals Panic EX (Korea), Genius 6 (V132F), Insector X (bootleg), Lethal Crash Race / Bakuretsu Crash Race (set 2, alternate sound ROM), Mouse Trap (German, version 4), Nebulas Ray (prototype), Rastan Saga (bootleg, Japan Rev 1, earlier code base), Rod-Land (Japan bootleg with unencrypted program and GFX), 'SAM IV Test Fixture', Tail to Nose - Great Championship / Super Formula, Tetris (bootleg set 5) and Tetris (v342R) - New AGEMAME games: Fruit Star Bonus (Ver 8.27PVIE) - New Multi Fish games: Crazy Monkey (030217 World), Crazy Monkey (030225 World), Crazy Monkey (030227 World), Crazy Monkey (030404 World), Crazy Monkey (031016 World), Crazy Monkey (090711 Entertainment), Crazy Monkey (100324 Entertainment X), Crazy Monkey (100331 Entertainment X), Crazy Monkey (101208 Entertainment N), Crazy Monkey (110111 Entertainment A), Crazy Monkey (110124 Entertainment A), Crazy Monkey (110204 Entertainment A), Crazy Monkey (110311 Entertainment B), Crazy Monkey (110411 Entertainment C), Crazy Monkey (140526 Entertainment B), Crazy Monkey 2 (100413 Entertainment X), Crazy Monkey 2 (101208 Entertainment N), Crazy Monkey 2 (101220 Entertainment N), Crazy Monkey 2 (101220 Entertainment X), Crazy Monkey 2 (110111 Entertainment A), Crazy Monkey 2 (110124 Entertainment A), Crazy Monkey 2 (110204 Entertainment A), Crazy Monkey 2 (110311 Entertainment B), Crazy Monkey 2 (110411 Entertainment C), Crazy Monkey 2 (140526 Entertainment B), Fruit Cocktail (030505 World), Fruit Cocktail (030512 World), Fruit Cocktail (031028 World), Fruit Cocktail (100324 Entertainment X), Fruit Cocktail (100331 Entertainment X), Fruit Cocktail (101208 Entertainment N), Fruit Cocktail (110111 Entertainment A), Fruit Cocktail (110124 Entertainment A), Fruit Cocktail (110204 Entertainment A), Fruit Cocktail (110311 Entertainment B), Fruit Cocktail (140526 Entertainment B), Fruit Cocktail 2 (080904 Russia), Fruit Cocktail 2 (100412 Entertainment X), Fruit Cocktail 2 (101208 Entertainment N), Fruit Cocktail 2 (110111 Entertainment A), Fruit Cocktail 2 (110124 Entertainment A), Fruit Cocktail 2 (110204 Entertainment A), Fruit Cocktail 2 (110311 Entertainment B), Fruit Cocktail 2 (110411 Entertainment C), Fruit Cocktail 2 (140526 Entertainment B), Garage (040122 World), Garage (040123 World), Garage (040216 World), Garage (100331 Entertainment X), Garage (101208 Entertainment N), Garage (110111 Entertainment A), Garage (110124 Entertainment A), Garage (110204 Entertainment A), Garage (110311 Entertainment B), Garage (110411 Entertainment C), Garage (140526 Entertainment B), Gnome (090810 Entertainment), Gnome (100407 Entertainment X), Gnome (101208 Entertainment N), Gnome (110124 Entertainment A), Gnome (110204 Entertainment A), Gnome (110311 Entertainment B), Gnome (110411 Entertainment C), Gnome (140526 Entertainment B), Island 2 (061214 World), Island 2 (100401 Entertainment X), Island 2 (101208 Entertainment N), Island 2 (110111 Entertainment A), Island 2 (110124 Entertainment A), Island 2 (110204 Entertainment A), Island 2 (110311 Entertainment B), Island 2 (110411 Entertainment C), Island 2 (140526 Entertainment B), Keks (100330 Entertainment X), Keks (100331 Entertainment X), Keks (101209 Entertainment N), Keks (110204 Entertainment A), Keks (110208 Entertainment A), Keks (110311 Entertainment B), Keks (110411 Entertainment C), Keks (110816 Entertainment A), Keks (110816 Entertainment B), Keks (110816 Entertainment N), Keks (110816 Entertainment X), Keks (140526 Entertainment B), Lucky Haunter (030707 World), Lucky Haunter (031027 World), Lucky Haunter (101209 Entertainment N), Lucky Haunter (110111 Entertainment A), Lucky Haunter (110204 Entertainment A), Lucky Haunter (110311 Entertainment B), Lucky Haunter (140526 Entertainment B), Multi Fish (021120), Multi Fish (021121), Multi Fish (021219), Multi Fish (021227), Multi Fish (030511), Multi Fish (031026), Multi Fish (031117), Pirate (051229 World), Pirate 2 (100406 Entertainment X), Pirate 2 (101209 Entertainment N), Pirate 2 (110111 Entertainment A), Pirate 2 (110124 Entertainment A), Pirate 2 (110204 Entertainment A), Pirate 2 (110311 Entertainment B), Pirate 2 (110411 Entertainment C), Pirate 2 (140526 Entertainment B), Resident (090722 Entertainment), Resident (100331 Entertainment X), Resident (101209 Entertainment N), Resident (110111 Entertainment A), Resident (110124 Entertainment A), Resident (110204 Entertainment A), Resident (110311 Entertainment A), Resident (110411 Entertainment A), Resident (140526 Entertainment A), Rock Climber (040823 World), Rock Climber (100331 Entertainment X), Rock Climber (101209 Entertainment N), Rock Climber (110111 Entertainment A), Rock Climber (110124 Entertainment A), Rock Climber (110204 Entertainment A), Rock Climber (110311 Entertainment B), Rock Climber (110411 Entertainment C), Roll Fruit (030821), Sweet Life 2 (100408 Entertainment X), Sweet Life 2 (101209 Entertainment N), Sweet Life 2 (110111 Entertainment A), Sweet Life 2 (110124 Entertainment A), Sweet Life 2 (110204 Entertainment A), Sweet Life 2 (110311 Entertainment B), Sweet Life 2 (110411 Entertainment C) and Sweet Life 2 (140526 Entertainment B) - New PEPlus games: Player's Edge (PK0756-PC092) Standard Draw Poker, Player's Edge Plus (KE0004) Keno (set 2), Player's Edge Plus (KE0004) Keno (set 3), Player's Edge Plus (KE0017) Keno (set 2), Player's Edge Plus (PP0046) 10's or Better (International, set 2), Player's Edge Plus (PP0078) Standard Draw Poker, Player's Edge Plus (PP0516) Double Bonus Poker (set 3) and Player's Edge Plus (XMP00014) 5-in-1 Wingboard (CG2352) - International. - Removed games: Akai Katana (2010/ 8/13 MASTER VER.) and 'Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352)' - New drivers: dc_atomiswave.cpp, funeball.cpp, gumrally.cpp, kungfum2.cpp, neomania.cpp and wms_shuffle.cpp - New devices: bitmap_printer, dc_g2if and upd784031 - CPU . ADSP-21xx: Added partially support for PMOVLAY register. Allow PMOVLAY and DMOVLAY register reading on opcodes and debugger states. Added device_post_load for restore external space overlay state. . Dynamic Re-Compiling: Fixed 64-bit OP_TEST UML instruction for C backend (cpu\drcbec.cpp) . Fujitsu MB884x: Clarify interrupt line is 'logical', not voltage-based. Clear the appropriate interrupt enable flag when taking the int (mb88xx\mb88xx.cpp). . Hitachi H8: Don't set TDRE when receiving (cpu\h8\h8_sci.cpp) . NEC uPD78C10: Fixed LDAX and STAX tables to match proper instruction size (upd7810\upd7810_table.cpp) - SOUND . Ensoniq ES5503: Fixed interpretation of oscillator enable register (GitHub bug #9045; Music Studio is out of tune in Apple IIgs). The Mirage boot ROM spams $FF to the oscillator enable register, so handle it. Additional cleanups to oscillator enable usage. . N2A03 APU: Added missing DPCM period table for PAL. Fixes pitch being flat for DPCM sounds for (MESS) nespal and m82p (ID 08183). This is most apparent in Mr. Gimmick (1993) game, though it affects all software that use the DPCM channel (sound\nes_apu.cpp and nes_defs.h). . Yamaha AICA: $2814 CA reads doesn't need shifting, fixes ADX repeating sample/hang bugs in many entries. - DEVICE . Interface overhaul (device_image_interface) . Removed the iodevice_t classification, which was not used that much and was incomplete anyway. Image device implementations must now provide their own instance names and brief instance names. Several new parent classes have been created to make it easier to use the old standard names. . Changed must_be_loaded from a pure virtual function to be overridden in implementations to a getter for a base class property that can be set on the host side (as was formerly made possible for NES, MD and "generic" cartridge slots) but defaults to false for all types. This restrictive property has been unset for a small number of cases. . Created parent classes for paper tape and magnetic tape devices. At present these are dummy classes that do little to nothing, but may help unify implementations in the future. . Changed several member functions to take std::string_view parameters rather than const std::string & or const char *. . Make update_names take into account brief names, as discussed in PR #2555. . Removed the obsolete uses_file_extension function (which used thread-unsafe strtok). . Floppy . Improved SRA and SRB emulation and added DP8473 reset irq (machine\upd765.cpp). Check write protect during write & format commands (machine\upd765.cpp). . Fix usage message in tools\floptool.cpp: Getting the name of the tool from argv[0] (stop hardcoding floptool.exe). Added missing hddir/hdread/hdwrite declarations. . Minor fixes to directory entry handling (formats\fsmeta.cpp, tools\floptool.cpp) . Changed to use fsblk_t::r[8|16|24|32]b(). Changed the above functions to be const (formats\fsmgr.cpp). . Enable PC floppy sounds for all the PC FDC variants (isa\fdc.cpp) . Intel 8255 PPI: Always latch input data when strobe is asserted . Namco 06xx: Synchronize data writes. Improved NMI delay (machine\namco06.cpp). . Namco 50xx/51xx/52xx/54xx: Use chip select lines and synchronize writes (machine\namco50.cpp, machine\namco51.cpp, audio\namco52.cpp and namco54.cpp). . SCSI: Expand SCSI device selection (bus\nscsi\devices.cpp) . Slots: Added option_replace, option_replace_internal and option_remove to make it easier to derive option configurations (emu\dislot.cpp). - aleck64.cpp: Fixed several RDP regressions. YUV texture fetch and color space conversion. Textured rectangle command parsing. Set primitive depth command parsing (video\n64.cpp and rdptpipe.cpp). - cdi.cpp . Fixed audio crackling and various hangs (machine\cdicdic.cpp) . Assorted changes (video\mcd212.cpp): Replaced verboselog with logmacro. Correct end-of-line region control handling, fixing garbage in The Apprentice. Fixed screen bitmap handling to be more in line with MAME standards. Simplified region-control handling. Removed historical reliance on debug machine switches. Converted to use a map() function rather than an internal switch. Converted to use dipalette and rgb_t internally instead of separate CLUT arrays. Optimized by replacing rgb_t usage with uint32_t values. Optimized by calculating plane transparency on the fly. Templatized mix_lines to reduce inner-loop branching. Fixed a clamping issue with pre-calculated DYUV limits. Reduced effective color depth back to 6:6:6 to match hardware. Fixed region array filling at end-of-line. . CD-ROM (util\cdrom.cpp): Allow recognizing CDI/2352 in cuesheets . Various audio-related changes (machine\cdicdic.cpp): Attempt to descramble sectors that don't initially appear sensible. Added support for playing CDDA sectors. Fixed faulty logic in TOC processing. . Always byteswap CDDA data if necessary (machine\cdicdic.cpp). Fixes (MESS) Alien Gate (Euro). . Various accuracy and timing improvements (video\mcd212.cpp): Added wait states on ROM and VRAM accesses. Simplified pixel-duplication in 360/384-width modes. Fixed DCA to process after VSR. Switched to use raw parameters for screens. Fixed some transparency-fill issues with disabled ICM/VSR. - dc_atomiswave.cpp and naomi.cpp . Splitted Atomiswave into own file from NAOMI driver (dc_atomiswave.cpp) . Converted aw_modem_r/_w to 32-bit, added 3p/4p inputs to Guilty Gear Isuka and expose EXID to an input/output ioports for future extensions. . Extended Extreme Hunting 2 ALL.Net hack for -drc, move around state machine to derive ALL.Net external device mapping instead of driver_init fn, demote to MACHINE_UNEMULATED_PROTECTION for obvious reasons. . Added Area 1 mirrors, fixes Maximum Speed title screen animation. . Support for Player 2 keyboard inputs . Added proper inputs to Airline Pilots (World, Rev B), Airline Pilots (Japan, Rev A) and Sega Strike Fighter. . Hookup lightgun for Death Crimson OX . Make G2-DMA timings slightly more accurate (fixes 'Street Fighter Zero 3 Upper' silent BGMs regression caused by implicit insta-DMAs) . Sega Dreamcast G2 System Bus I/F . Wrote a device for G2 DMA interface (machine\dc_g2if.cpp), fixes Jingi Storm black screen on boot. . Added E1/E2/DD channels thru template, area protection and illegal address and overflow exceptions (fixes loopchk g2 bus tests 0302 and 0303). . PowerVR 2 . YUV pitch follows U size, fixes Kurukuru Chameleon corrupted Starfish-SD GFX logo. . Moved Elan related stuff back into naomi2_state. Make ISP/TSP irq to be slower, fixes regression bug with Capcom fighters having frame hiccups (video\powervr2.cpp). . Yamaha AICA: $2814 CA reads doesn't need shifting, fixes ADX repeating sample/hang bugs in many entries (sound\aica.cpp). . Added missing G.rev as additional manufacturer to La Keyboard (ID 08143) . Streamlined logging across chips to use logmacro.h, removed popmessages and printfs in production code (sh\sh4comn.cpp, machine\gdrom.cpp, ata\atapihle.cpp, sound\aica.cpp and video\powervr2.cpp). Added missing include guards in header files. - galaga.cpp . Re-order Namco 06xx callbacks, for consistency. . Use correct callback for Bosconian Namco 06xx read/write. Use correct clock for the second Namco 06xx in Bosconian. . Fixed inserting coin automatically start 2 player game with issues in clone Super Xevious (Japan) (ID 07892) - jpmimpct.cpp: Added year info to Buzzundrum (Ace), Treasure Quest and Money Spider (Ace) (https://www.martinward.games/ace.html) (ID 08181) - ksys573.cpp . Fixed Guitar Freaks knob and wail input. Don't write data from controllers if a controller isn't connected to the port (machine\k573mcr.cpp). . Documented more registers and updated PCB diagram. Stubbed registers for network communication. Implemented mp3 start/end address read (machine\k573dio.cpp). . Implemented motor movement for Punch Mania I/O and added layout - looping.cpp: Added DIP locations. Fixed flipscreen and verified XTALs on PCB. - nemesis.cpp: Made Bubble System DIP settings game specific. Fixes 'Bonus Life' dipswitches are wrong in Gradius (Bubble System) and TwinBee (Bubble System) (ID 08187). - nss.cpp, sfcbox.cpp and snesb.cpp: Make absolute indexed indirect JMP/JSR fetch destination addresses from program memory instead of data memory when the two are separated. Removed some not-useful definitions (Ricoh 5A22; cpu\g65816\g65816op.h). - ohmygod.cpp: Used finder for memory bank and other minor cleanups - peplus.cpp: Minor documentation clean up - seattle.cpp . Removed Player 3 and 4 inputs for games that don't use them (calspeed, carnevil, hyprdriv, mace, sfrush, sfrushrk and vaportrx). . Changed Hyperdrive's upper serial number offset. This now makes the game read its PIC as the correct ID instead of a development PIC. - segasp.cpp: YUV pitch follows U size, moved Elan related stuff back into naomi2_state and make ISP/TSP irq to be slower (video\powervr2.cpp). - tmaster.cpp: Work around game-crashing game bug. Fixes emptying any column in the "Solitaire" subgames on any version of Touchmaster results in crash/freeze with very specific onscreen behaviour (ID 03252). - toaplan1.cpp: Added Truxton hardware info and added correct names/locations for all roms - viper.cpp: Dumped IO board EPROM for Mocap Golf. Added skeleton CPU device and disassembler for NEC 78K/IV (uPD784XXX) architecture. - yuvomz80.cpp: Correct machine name - AGEMAME . Reduced redundancy in a few more slot machine layouts (maygay1bsw.cpp and mpu3.cpp) . Fixed 'Exchange Number' button port name and built-in layout for Big Bucks (JPM) (IMPACT) . Fruit Star Bonus: Improved gfxdecode. Added two extra bitplanes, more ASCII layouts and technical notes. Added the missing GFX bitplanes rom to Fruit Star Bonus (Ver 8.20PIR). - Biomechanical Toy: Redumped clone Biomechanical Toy (ver. 1.0.1870, checksum ba682195) - Cosmic Guerilla: Added protection as bit-flip (different connected data pins), fixes demonstration stops at end of 2nd loop (ID 05237). - Donkey Kong 3: Correctly indentify service mode button - Finalizer - Super Transformation: Added sound MCU internal rom - Ghostmuncher Galaxian (bootleg): Added DIP locations and a note about its PROMs. Updated Cabinet type DIP to be a configuration setting, as per comments. - Go 2000: Used finder for the memory bank, derived clocks from XTAL value and other very minor cleanups. - Magical Truck Adventure: Marked program roms as bad because a single instruction appears to be faulty (a bit is flipped) requiring a patch in the SuperModel emulator to run. - Mr. Do!: Removed protection hack and replaced with logic from PAL dump - PinMAME . byvid.cpp: WIP. Both games playable (no sound). . gts3/80/a/b.cpp: Added multiball keycodes . jeutel.cpp: WIP. Both games are playable. Added mechanical sounds and NVRAM. Fixed outputs. . jvh.cpp: WIP . pinball2k.cpp: Added DCS roms to rfmpb, rfmpbr2 and swe1pb. . sleic.cpp and spinb.cpp: Added some gristle to the bones . st_mp200.cpp: Added keycode list. All games are now playable. 'SAM III Test Fixture' internal tests are working now. . wms_shuffle.cpp . Split off Williams Shuffle games to their own driver (alcat_l7, arist_l1, bstrk_l1, gmine_l2, kingt_l1, omni_l1, pomp_l1, shfin_l1, szone_l2, szone_l5, taurs_l1, tdawg_l1, topaz_l1, tstrk_l1, tts_l1 and tts_l2) . Fixed Alley Cats (Shuffle) (L-7) layout - Royal Mahjong: Fixed clone Royal Mahjong (Falcon bootleg, v1.01) crashes with Exception (ACCESS VIOLATION while attempting to read memory at 0000000000007f1c) (ID 08175). - Samurai: Fixed palette banking (wrong colors on title sequence and player select screens) (ID 08173) - Slip Stream: Third DIP switch freezes game (undocumented feature?) (ID 08164) - Sonic Blast Man: DIP switch corrections (ID 08160) - Fixed rom names in crshrace.cpp, exidy.cpp, gaelco.cpp, galaxian.cpp, tail2nos.cpp and toaplan1.cpp - Dipswitch fixes in dkong.cpp, galaxian.cpp, jeutel.cpp, ksys573.cpp, looping.cpp, naomi.cpp, nemesis.cpp, segag80v.cpp, segas32.cpp, sleic.cpp, taito_b.cpp and wms_shuffle.cpp - Description changes of Animal Basket / Hustle Tamaire Kyousou (19 Jan 2005), Animal Basket / Hustle Tamaire Kyousou (24 Jan 2005), Big Karnak (ver. 1.0, checksum 1e38c94), Biomechanical Toy (ver. 1.0.1870, checksum ba682195), Biomechanical Toy (ver. 1.0.1878, checksum d84b28ff), Biomechanical Toy (ver. 1.0.1884, checksum 3f316c70), Biomechanical Toy (ver. 1.0.1885, checksum 69f5e032), Bioplaything Cop (ver. 1.0.1823, checksum cd960fc9, prototype), Diet Go Go (Euro v1.1 1992.09.26 v2), Fruit Cocktail 2 (090525 Lottery), Hexa President (YM2610 set), Hexa President (YMZ280B set), Last KM (ver 1.0.0275, checksum 13bff751, prototype), Maniac Square (ver 1.0, checksum b602, prototype), some naomi.cpp games, NASCAR Arcade (original), NASCAR Arcade (Rev A), Player's Edge (PK0756-PC011) Standard Draw Poker, Player's Edge (PK0756-PC084) Standard Draw Poker (El Cortez), Player's Edge Plus (KE0004) Keno (set 1), Player's Edge Plus (KE0017) Keno (set 1), Player's Edge Plus (PP0046) 10's or Better (International, set 1), Quiz Aa! Megami-sama ~Tatakau Tsubasa to Tomoni~ (Japan), Rod-Land (Japan bootleg with unencrypted program), SAM III Test Fixture, Squash (ver. 1.0, checksum 015aef61), Sushi Bar / Toretore! Sushi, Tetris (bootleg set 6, with UM3482) and Thunder Hoop (ver. 1, checksum 02a09f7d) - Renamed (aerofgts) to (aerofgtst), (dietgoe) to (dietgoea), (dietgo) to (dietgoe), (fruitstb) to (fruitstba), (goldhexa) to (hexaprsz), (hexapres) to (hexaprs), (pepk0756c) to (pepk0756d), (pepk0756b) to (pepk0756c), (pepk0756a) to (pepk0756b), (pepk0756) to (pepk0756a), (pepp0046b) to (pepp0046c), (pepp0516b) to (pepp0516c), (pexmp017b) to (pexmp017a), (st_game) to (st_sam) and (tail2nos) to (tail2nosa) - MAME . VIDEO RENDERING SYSTEM . Render-related cleanup: Undo inclusion of screen.h within render.h and update many source files that were stealth-including the former. Moved texture_format enum to emu\rendertypes.h. Make a few methods static (emu\rendlay.h). Use C++11-style iteration for render targets (ui\info.cpp). . Improved scale factor selection. Fixes aspect related issues, undesired overscan, etc. (GitHub #8209, GitHub #8387 and MT08110) (emu\render.cpp and osd\windows\window.cpp). Fixes -autostretchxy causing cropping in some vertical games (dkong, pacman and 1942) (ID 08110). . Correctly adjust window size based on the computed visible area for different stretching cases (sdl\window.cpp and windows\window.cpp). . Reset "last time" measurements when loading a state (emu\video.cpp) . API cleanup + minor related OSD render cleanups (emu\render.cpp, rendutil.cpp, render\drawd3d.cpp and drawogl.cpp) . UI: Sort directory selection menu items. Fixes browsing folders are sorted by date (ID 08167). Also fixed selecting (not moving up more than one level). Removed a vestigial member function from the file selection menu (ui\dirmenu.cpp and ui\filesel.cpp). . Moved filesystem library into separate namespace and use shorter uX type names there . Future-proofing by using correct #include for SOFTWARE_LIST device . List MSYS2 packages required to build PDF documentation on Windows now that TeX Live is available (docs\source\initialsetup\compilingmame.rst). Added PDF documentation to dist.mak. . Used finder for memory banks (usgames.cpp, audio\nichisnd.cpp and audio\rax.cpp) - VGM player: Added 25 new entries, 17 updated entries and one name change (hash\vgmplay.xml). - Compiling: Include $ERRNO_CODES in Emscripten build to fix error loading software in Emularity loader - see issue emscripten-core/emscripten#10061 (scripts\genie.lua) - Debugger: Fixed size prefix in find command (debug\debugcmd.cpp) 0.239 - New games: Amstar Draw Poker, Kuzmich-Egorych and Super Model II - New Working games: Mahjong Ougon no Hai (bootleg set 1) - New Non-Working games: Chibi Maruko-chan ~Minna de Sugoroku Asobi~ no Maki, Coche Bully, Final Fight 3 (SNES bootleg), Long Hu Zhengba San He Yi (V100CN), Master Crane (set 1), Puyo Puyo! The Medal Edition, Sonic The Hedgehog 3 (bootleg of Mega Drive version) and Super Mario Fushigi no JanJanLand - New clones: Chouji Meikyuu Legion (Japan ver 1.05, set 2), Dirt Dash (Rev. DT2 Ver.B, World), DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07.Black Ver, newer), Downhill Bikers (World, DH2 Ver. A), Fighting Layer (FTL3/VER.A), Gals Panic II (Korea, single PCB), Golden Tee '98 (v1.00C), The Lord of King (bootleg, protected), Mahjong Ougon no Hai (bootleg set 2), Mahjong Ougon no Hai (bootleg set 3), Majestic Twelve - The Space Invaders Part IV (US), Master Crane (set 2), Off Road Challenge (v1.00), The Outfoxies (Japan, OU1, alternate GFX ROMs) and Super Real Mahjong VS (Rev A) - New PEPlus games: Player's Edge Plus (PS0015) Super Joker Slots, Player's Edge Plus (PS0040) Jackpot Jungle Slots, Player's Edge Plus (PS0041) Jackpot Jungle Slots, Player's Edge Plus (PS0044) Red White & Blue Slots, Player's Edge Plus (PS0048) Double Jackpot Slots, Player's Edge Plus (PS0070) Hurricane Slots, Player's Edge Plus (PS0086) Earth Quake Slots, Player's Edge Plus (PS0205) Red White & Blue Slots, Player's Edge Plus (PS0267) Spin Til You Win Slots, Player's Edge Plus (PS0271) Spin Til You Win Slots, Player's Edge Plus (PS0275) 4th of July Slots (set 1), Player's Edge Plus (PS0275) 4th of July Slots (set 2), Player's Edge Plus (PS0280) 4th of July Slots (set 1), Player's Edge Plus (PS0291) Haywire Slots and Player's Edge Plus (PS0623) Black Cherry Slots - New PinMAME games: Motor Show (set 2) and Motor Show (set 3) - New drivers: atari_4x4.cpp, compucranes.cpp, falgas_m89.cpp, lancelot.cpp and superga2.cpp - New devices: a2video, apple2com, cfp1080s, gaelco_vram_crypt and mc68hc16z1 - CPU . ARM7: Fixed TLB Flush behavior (ID 07878) (ID 08140): Support for the "Flush single unified TLB entry" coprocessor operation. Fixed bugged "Flush single DTLB entry" operation and "Flush single ITLB entry" was equally nonexistent. . Data East DECO16: Added Motorola MC68HC16Z1/CPU16. Note: Currently this device is just a stub with no actual execution core. . DEC T11: Power fail trap is NMI. Added bus error trap. . NEC V60: Code cleanup. Removed #ifdefs and use attributes instead. Removed "never reached" return statements. - SOUND . FM core: Correct for free-running timer B multipler (ymfm\src\ymfm_fm.ipp). Fixes music speed is slow in Aliens (ID 01232), Contra (ID 08146), Gang Wars (ID 07066), Salamander (ID 03737), Teenage Mutant Ninja Turtles (ID 07078) and Vendetta (ID 04825), flaws in sound emulation in Super Contra (ID 03754), credits sequence out of sync in Captain America and The Avengers (ID 06764) and sounds are heavily distorted in Galactic Warriors, Nemesis and TwinBee since the RC filters were added (ID 06437). . MIDI: Made channel remapping configurable. Handle channel remapping at playback time instead of load time, also small fix to sysex event parsing (imagedev\midiin.cpp). . Sound Interface: Suppress sound_assert errors for fill and copy-type operations when start index is out of range (emu\sound.h) . Yamaha AICA: Removed code smell on LP flag read - DEVICE . CGA: Make ISA 'Wyse 700' it not completely crash (isa\cga.cpp) . K054000 Protection . Fixed incorrect hitboxes for some grounded enemies and broken demo sequences in Vendetta (ID 06393) (ID 07839) . Converted all drivers using K054000 to access with address map, fixes Gaiapolis and Bucky O'Hare ranges. . Initialized variables at machine_reset time. Moved collision dump to a debug compile switch. Cleanup driver. . PowerVR 2: Added support for render mode 5 . SCSI Hard Disk: Minor logging changes (nscsi\hd.cpp). Copy "MODE SELECT 6" from bus\nscsi\cd.cpp, fixes unable to format (MESS) Macintosh 128k hard disk (nscsi\hd.cpp). . System 32 Communication Board: Fixed machine\s32comm.cpp. This fixes F3 soft reset in 'F1 Super Lap' causes the emu/game to crash if NVRAM is empty. Changing game settings can cause the game to fail (ID 08145). . Z80 CTC: ZC/TO goes high for one clock cycle - CHDMAN: Fixed chdman threading on cpus with many cores. Remove 4-thread limit from non-high-freq work queues. osd_event flags don't need to be atomic. Fixed race condition that made work queues not wake up enough threads for processing (osd\osdsync.cpp). - actfancr.cpp and battlera.cpp: Use finders and minor cleanups - alien.cpp: Populate memory map enough for Medalusion 1 games starts booting and removed unneeded NVRAM dumps. - cdi.cpp: Complete re-write of Philips CD-i CDIC handling. Re-promoted driver to working (ID 07716). - dec0.cpp: Updates and cleanup. Use MB8421 device for Robocop shared RAM. Removed some superfluous handlers for clone Midnight Resistance (bootleg with 68705). - gaelco.cpp and gaelco2.cpp . CG-1V/GAE1 video/audio fixes: Support y scroll in rowscroll mode. Prevent shadow sprites from corrupting previously drawn shadow sprites. Fixed cases of samples not being played where the 2nd chunk addresses are written first. Removed old hack to work around ancient MAME number of colour limits. . Misc Gaelco improvements: Fixed Thunder Hoop (ID 05919) and Squash priorities. Added IRQ acks. Set Maniac Square prototype to 1992 and de-cloned it. This was an earlier project that was redone from scratch for the released game. . Research into Thunder Hoop and Squash 'refresh rate' protection. Prevents freeze when dying in stage 4 of Thunder Hoop (ID 03232) and bad text on continue in Squash. . Fixed Big Karnak freezes under some circumstances (ID 06027) - galspnbl.cpp: Added some PCB info in header and corrects clock of 68000 based on OSC - gberet.cpp . Removed tagmap lookups and split the main class in subclasses . Dumped PROMs for clone Green Beret (bootleg). Demoted the bootleg to not working status, as it needs a different PROMs decoding. - gkigt.cpp: Set i960 burst regions so games show something again - jack.cpp: Correct default number of lives for Joinem and Uncle Poo - magicard.cpp: Map RAM at $008***** on several entries, tie vblank irqs to int2_w and update QA. This allows 'Puzzle Me!' to enter into attract mode. - megatech.cpp: Replaced some tag lookups with finders - micro3d.cpp: Simplify Am29000 shift calculation for multiply and divide steps, eliminating unnecessary 64-bit intermediary variables (am29000\am29ops.h). - namcofl.cpp: Use memory view instead of bankdev and flags(i960_cpu_device::BURST) for everyone - playch10.cpp: Dumped an alternate BIOS - rohga.cpp: Drop sound levels - royalmah.cpp: Some tagmap cleanup and configured banking. Merged ichiban.cpp with royalmah.cpp driver. - seattle.cpp and vegas.cpp: Dumped security PICs for San Francisco Rush and San Francisco Rush: The Rock. Dumped security PICs for San Francisco Rush 2049 and San Francisco Rush 2049: Special Edition. San Francisco Rush 2049: Tournament Edition uses same PIC as San Francisco Rush 2049: Special Edition. - stv.cpp: Moved video into video\saturn.cpp to remove possible circular dependency. - tmnt.cpp: Fixed Thunder Cross II overdriven sound. Make Thunder Cross II to bypass protection checks via ROM patch, acknowledge it with 14D bad and demoted it to MACHINE_UNEMULATED_PROTECTION. - vendetta.cpp: Fixed incorrect hitboxes for some grounded enemies, broken demo sequences and overdriven sound (noticeable on first boss) in Vendetta (ID 06393) (ID 07839). - viper.cpp . Documented the I/O board for Mocap Golf . Dumped DS2430 for Silent Scope EX and clone Sogeki. Can now get in game Sogeki, but unplayable due to very heavy GFX glitches and missing gun controller emulation. - vsnes.cpp . Replaced MMC3 implementation with Namco 108 (machine\vsnes.cpp) . Fixed swapped dipswitches for Vs. BaseBall - zr107.cpp: Tilemap position fixes. Correct 'Transmission Type' dipswitch label and inputs. Fixes putting the Transmission Type to "T-Gate" will do the opposite and put the Transmission Switching to a Button instead of the weird T-Gate that the actual cabinet uses to select Auto or Manual (ID 08166). - Cow Tipping: Updated logging to match handler size (machine\mc68328.cpp) - Far West (Compumatic): Improved documentation for Far West (Compumatic). The sound contains shooting samples and a small sample of the Rawhide main theme. Background layout (four shooting targets as food cans with led circles), see https://youtu.be/YVxThMwhvKQ. - Flower: Replaced hardcoded tags to region pointers. Fixed some sound/cocktail mode behaviors. Use tilemap_t for text layer. Added notes for hardware and unknown sound register writes. Added sound I/O register value for debug purpose. Fixed initializing behavior. Use shorter/correct type values. Fixed spacings. Fixed GFX ROM naming. Reduced unnecessary values/pointers and use STRUCT_MEMBER for save values. Fixed Volume LUT ROM accessing. Added notes (audio\flower.cpp). - Ichi Ban Jyan: Fleshed out a bit. Needs correct banking. Added DIPs. - In Your Face: Improved handcrafted priority PROM, fixing missing graphics in cutscenes. - Jackal: Removed now unneeded hack (HACK: running at the nominal clock rate, music stops working at the beginning of the game). - Kicker: Use correct sprite ram. Added scan line register and screen raw parameters. Fixed sprite video regressions. Match previous sprite position, real y coordinate has 7 subtracted from the work area so 248 should be 241. Align appearing sprites to doors when flipped (this might be a game bug, needs verifying). - Mahjong Ougon no Hai: Added maincpu rom ougonhai_tmp91p640n-10.5b from (bootleg set 2) to parent and clone (bootleg set 1). Promoted (bootleg set 1) to working. - New HyperMan: Redumped rom u78.bin from clone New HyperMan (3-in-1 with Cookie & Bibi & HyperMan) (set 2), it was good afterall. - Parent Jack: Merged everything in the driver file - PinMAME . atari_s1 and atari_s2: WIP. All games except 4x4 are playable. Fixed Hercules inputs. Fixed Middle Earth crash caused by incorrect length of memory share. . by6803.cpp: Added a layout for Gen 2 machines . flicker.cpp: Fixed a couple of mistakes . hankin.cpp and rowamet.cpp: WIP . inder.cpp: WIP. Fixed dipswitches. Machines are all playable. Added some overrun protections. . jp.cpp: WIP. Added outputs. . lancelot.cpp: Moved 'Sir Lancelot' from Peyper driver to its own driver . mephistp.cpp: Preliminary WIP . mrgame.cpp: WIP. Most game are playable. . peyper.cpp: Added outputs and mechanical sound. Improved display to Ator. Moved Petaco from JP to Peyper driver as it is a better fit. . play_1.cpp, play_2.cpp and play_3.cpp: WIP. The majority of the machines are playable. Fixed some bugs and a regression. Added outputs to play_2.cpp. Split Zira into a derived class. . s3.cpp: Fixed various bugs, all games playable. Used correct segment decoder as per videos. Fixed startup tune for Hot Tip (L-1). . s4.cpp: WIP. Added outputs and fixed match digit. Used correct segment decoder as per videos. . s6.cpp: All games are playable. Added outputs. Used correct segment decoder as per videos. . s6a.cpp: Added outputs. Used correct segment decoder as per videos. . s7.cpp: WIP. All machines are somewhat playable. Made 'Wild Texas' a clone of Firepower II. . s8.cpp and s8a.cpp: Added outputs, save-state and button labels. . s9.cpp: Added outputs, savestates and notes. . s11.cpp: Moved Alley Cats (Shuffle) (L-7) to s11 driver . spinb.cpp: WIP. Moved Metal Man from Inder to Spinball driver. . spirit76.cpp: WIP . taito.cpp: Added code for clone Mr. Black (Z-80 CPU). Improved sound for some Votrax games. . Initialised class variables in drivers - Poker Monarch: Updated driver to use a finder for the memory back and other minor cleanups. Removed palette_init and less palette entries. - Quiz Quest: Unused DIP switches are actually a countdown timer (ID 08135) - Santa Fe Golden: Added PCB layouts and hardware notes - Sky Destroyer: Reversed joystick up and down inputs (ID 08162) - Space Wars: Fixed inputs for Space Wars and clone Space Ship (ID 08148). Added missing playfield reset button. Fixed missing 'FIRE' and 'HYPERSPACE' buttons for clone Space Ship. - Sport Fishing 2: Removed regions hacks - Unknown Cointek game: Minor updates - Vs. Balloon Fight: Fixed 'Bonus Life' DIP settings (ID 08147) - Wardner: Switched driver to use views - Fixed rom names in balsente.cpp, lancelot.cpp, mystston.cpp, play_2.cpp and snk68.cpp - Dipswitch fixes in alien.cpp, atari_s1.cpp, hankin.cpp, inder.cpp, itech32.cpp, jack.cpp, spinb.cpp, taito_b.cpp, taito_f2.cpp, vsnes.cpp and zr107.cpp - Description changes of Ace Driver: Victory Lap (Rev. ADV1 Ver.C, Japan), Bishoujo Senshi Sailor Moon (Ver. 95/03/21, Hong Kong), Bishoujo Senshi Sailor Moon (Ver. 95/03/21, Japan), Bishoujo Senshi Sailor Moon (Ver. 95/03/21, Taiwan), Bishoujo Senshi Sailor Moon (Ver. 95/03/22, Hong Kong), Bishoujo Senshi Sailor Moon (Ver. 95/03/22, Japan), Bishoujo Senshi Sailor Moon (Ver. 95/03/22, Taiwan), Bishoujo Senshi Sailor Moon (Ver. 95/03/22B, Hong Kong), Bishoujo Senshi Sailor Moon (Ver. 95/03/22B, Japan), Bishoujo Senshi Sailor Moon (Ver. 95/03/22B, Taiwan), Chouji Meikyuu Legion (Japan ver 1.05, set 1), DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07.Black Ver, older), Ejihon Tantei Jimusho (J 950613 V1.000), Fighting Layer (Japan, FTL0/VER.A), Fist Of The North Star / Hokuto no Ken, The Italian Job (Maygay) (EPOCH, vx.x) (ID 07191), The Italian Job (Maygay) (M1A/B) (set xx), The Italian Job Club (Maygay) (EPOCH) (2.x, set x), Kero Kero Keroppi no Isshoni Asobou (Japan), Last KM (Ver 1.0.0275, prototype), Long Hu Zhengba 4, Long Hu Zhengba III, The Lord of King (bootleg, not protected), Mahjong 4P Shimasho (Japan), Mahjong Ougon no Hai (bootleg set 1), Majestic Twelve - The Space Invaders Part IV (US, earlier?), Magic Card III Jackpot (4.01), Maque Da Zhonghua Quan [BET] (Taiwan, D111), Maque Zhonghua Ernu [BET] (Taiwan), all megadriv_acbl.cpp games, Panel & Variety Akamaru Q Joushou Dont-R, Player's Edge Plus (PS0280) 4th of July Slots (set 2), Quiz Bishoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un, Rave Racer (Rev. RV2 Ver.B, World), Ridge Racer 2 (Rev. RRS2 Ver.B, World), The Simpsons Bowling (GQ829 UAA), unknown Poker 'TE06' and Yam! Yam! (Korea) - Renamed (ddpdojblka) to (ddpdojblkb), (ddpdojblk) to (ddpdojblka), (dirtdash) to (dirtdasha), (downhill) to (downhillu), (fgtlayer) to (fgtlayerj), (majest12u) to (majest12ua), (peps0280) to (peps0280a), (ougonhaib) to (ougonhaib1) and (srmvs) to (srmvsa) - MAME . VIDEO RENDERING SYSTEM . Use simple_list instead of std::list for containers. Removed old remnants of "internal" debugger (emu\render.cpp). . Removed old dot matrix components. Added warning message for reel components (emu\rendlay.cpp). . Changed a few more fruit machines to eliminate reel components; also made the reel lamps simpler and more efficient in these layouts. . Fixed incorrect clipping of untextured rectangles (emu\rendersw.hxx). Cleaning up fruit machine layouts to reduce bloat. Fixed a few miscellaneous Coverity errors. . Get the initial view check off the hot path (emu\render.cpp). Fixes Screen #0 setting reverts back to default in San Francisco Rush 2049 and San Francisco Rush 2049: Special Edition (ID 08159). . Expand buffer size from 15 to 16 for %t time in video_manager::open_next (emu\video.cpp) . MEMORY SYSTEM . Unref the root dispatch when destroying the address space (emu\emumem_aspace.cpp). Fixes memory leak after MAME hard reset (ID 08139). . Allows handlers to have user-defined flags set on them, which can them be picked up on access with the {read,write}_*_flags variants of the accessors. Example use with the i960 and its burstable ROM/RAM (emu\addrmap.cpp and emu\emumem.*). . DEVICES . Made checks on device add/replace stricter. Trying to replace a non-existent device or trying to add a device with root or parent references in the path is now fatal. . Removed some machine().root_device() calls (drivers\cv1k.cpp, namcos10.cpp and audio\wiping.cpp) . UI . Fixed various errors reported by Coverity, one of which actaully breaks stuff (mame\ui\*). . Give heading items in menus a bit of horizontal space (ui\menu.cpp) . Changed string parse for screen Hz info (ui\devopt.cpp and ui\info.cpp) . Don't call .name() on I/O port fields without a running machine (ui\devopt.cpp) . Fixed lockup loading UI with Emscripten builds that don't support threading (ui\systemlist.cpp) . INPUT . Marked PORT_RESET deprecated (emu\ioport.h) . Fixed SlikStick configuration is not working for Asteroids (emu\ioport.cpp and ctrlr\slikstik.cfg) (ID 07153) (ID 01080). The reason for this is that Asteroids overrides the default assignments for the buttons, so the ctrlr\slikstik.cfg file needs to use the syntax for overriding specific inputs. See here: https://docs.mamedev.org/advanced/ctrlr_config.html . Fixed the \ctrl files don't override driver specific mappings (ID 01080) . Fixed a bug in how specific input overrides are applied (emu\ioport.cpp) . Moved localised I/O port name lookup into I/O port manager. Added pseudo format specifiers to controller port names: %p for player and %% for literal percent symbol. This lets you get the localised player identifier in overridden input names (see NES and Neo-Geo for examples), and reduces the number of messages to translate. . Removed awkward initial_state setter from machine\input_merger.cpp and added notes . Added Player 3 and Player 4 mahjong input types (emu\inpttype.ipp) . Multi-Language . Completed Slovak translation. Updated Chinese (Traditional and Simplified), Czech, Greek and Slovak translations. . For translators, the new messages are mostly previously existing messages with wording adjusted for clarity (e.g. referring to "media" rather than "ROMs" in several places, as things like disk and tape images are included). It's also possible to localise the "???" dipslayed for an input without a valid name, but that should never actually appear in practice. . Implemented download links in docs theme. Modified the RTD theme to add PDF and EPUB download links in the left pane (docs\themes\sphinx_rtd_theme\versions.html). . Cleaned up various bits and pieces (albazc.cpp, homedata.cpp, ladyfrog.cpp, nbmj8900.cpp, overdriv.cpp, ssv.cpp and zn.cpp) . Patched up code that was rotting behind UNUSED_FUNCTION and switched to [[maybe_unused]] attribute (cpu\g65816\g65816.cpp, drivers\cclimber.cpp, dkong.cpp, konamigx.cpp, m90.cpp, mcr3.cpp, mediagx.cpp, nmk16.cpp, seibuspi.cpp, viper.cpp, formats\wavfile.cpp, modules\amiga.cpp, fat.cpp, sound\aica.cpp, video\zeus2.h). Various cleanups. . Refactor html docs build process to use new template and env variable . Improved transliateration of a few game titles . Report refresh rate <1hz as error in validity check . Filesystem code cleanup: Eliminated dependencies on emu.h. Replaced most fatalerror calls and floptool's emu_fatalerror class with standard exception classes. Use range-based std::string constructors in some methods. Moved filesystem metadata handling to a separate source file (formats\fsmeta.cpp). Eliminated src\emu as an include path for libformats (necessitates kludge in (MESS) formats\ti99_dsk.cpp). - Compiling . Removed template code generators . Fixed MSVC build by reordering configuration statements (scripts\src\3rdparty.lua) . Fixed a few coverity errors, several of which are real bugs (drivers\amspdwy.cpp, opengl\gl_shader_mgr.cpp, sound\sdl_sound.cpp and imgtool\imgtool.cpp). . Removed a few outdated references to MESS . Fixed build with newer versions of Emscripten. Minimum supported version is now Emscripten 2.0.25 (https://emscripten.org/docs/getting_started/downloads.html). . Initialised class variables several driver 0.238 - New Working games: Monster Zero (set 1) - New Non-Working games: The Fast And The Furious (v3.06), Guitar Hero Arcade (v1.0.5), House Ball, Main Event (Destron), Rockin' Bowl-O-Rama (v2.1.1) and Stop - New clones: '48 in 1 MAME bootleg (ver 3.08, HPH-V000)', Grudge Match (v00.90, prototype), Mirai Ninja (Japan, set 2), Monster Zero (set 2), Mushiking The King Of Beetle (2K3 2ND Ver. 1.000-, China), Mushiking The King Of Beetles - Mushiking II / III / III+ (Ver. 1.000-) (Korea), New HyperMan (3-in-1 with Cookie & Bibi & HyperMan) (set 2), Pop'n Music 1 (ver TA-A, HDD 1.01) and Super Street Fighter II: The New Challengers Super 2 (USA 930911) - New PinMAME games: Cowboy Eight Ball (set 2), Martian Queen, Space Poker and Teenage Mutant Ninja Turtles (1.01) - New drivers: dmainevent.cpp, houseball.cpp, rawthrillspc.cpp, rbowlorama.cpp and stop.cpp - New devices: tms32033, tms7000, tms7001, tms7002, tms7020, tms7020_exl, tms7040, tms7041, tms7042, tms70c00, tms70c20, tms70c40 and tms70c46 - CPU . IBM PowerPC 4xx/6xx: Added Power family disassembly (tools\unidasm.cpp). Reduced enum scope (powerpc\ppc_dasm.cpp). . Mitsubishi M37450: STY ZP should store Y, not X (IIgs ADB MCU @ $FF15) (m6502\om740.lst) . MCS-48: Correct comments - D87xxH have UVEPROM, not EEPROM (mcs48\mcs48.h) . Motorola MC68000: Bug fix for FMOVEM with empty register list (m68000\m68kfpu.cpp) . Texas Instruments TMS320C3x: Added TMS320VC33 emulation support . Texas Instruments TMS34010/20: Clarify that not all illegal opcodes are actually trapped. Separate TMS34020 emulation better. . Texas Instruments TMS9900: Fixed PC display for watchpoint hits . Texas Instruments TMS9995: Fixed PC not displaying when watchpoint hit - SOUND . Philips SAA1099: Fixed output behavior when both noise and tone are enabled - DEVICE . Floppy: Wait for sector read/write to complete on interrupt d0-7, fixes (MESS) rmnimbus floppy access errors (machine\wd_fdc.cpp). . IDT720x FIFO: Fixed triggering of half-full flag . PowerVR 2: Fixed the BG offset to be based on the param base so non-zero bases get backgrounds . uPD4701A Incremental Encoder: Changed input update method to not use PORT_RESET (see drivers\cabal.cpp, cps1.cpp, dec0.cpp, konamigv.cpp, ksys573.cpp, m72.cpp, segae.cpp, segas18.cpp, segas24.cpp, segas32.cpp, seta.cpp, speedbsk.cpp, ssv.cpp, taito_l.cpp, tnzs.cpp and ultrsprt.cpp) - a1supply.cpp: Correct clock - aristmk5.cpp and ertictac.cpp: Implemented DAC differences between VIDC1 and VIDC1a (machine\acorn_vidc.cpp) - cps1.cpp . Fixed small issue with stars palette cycling (video\cps1.cpp) . Fixed 2 players mode DIP switch for clones Street Fighter II': Champion Edition (Japan 920322), (Japan 920513), (Japan 920803) and 'Street Fighter II' Turbo: Hyper Fighting (Japan 921209)'. Looks like Capcom inverted the default configuration (OFF) to set "2 Credits/Continue" option by default, instead "1 Credit/No Continue" present in the Street Fighter II': Champion Edition (Japan 920xxx) clones. . Marked clone Forgotten Worlds (Japan) as a prototype, it's an unfinished version of the game. - galaxian.cpp . Monster Zero: Promoted game to working. Boosting the interleave during three way cpu communications speeds up protection check. Improved bullets x offset. Only uses 1 button for shooting. Use Galaxian stars instead of Scramble. Added kludge for sprite y offset issue. . SF-X: Improved bullets x offset. Added kludge for sprite y offset issue. - m92.cpp: Updated B board references for all games - nss.cpp, sfcbox.cpp and snesb.cpp: Fixed SNES timing and interrupt (machine\snes.cpp) - segag80r.cpp and segag80v.cpp: Various small cleanups - seta.cpp: Removed some unneeded VIDEO_START macros - stv.cpp: Removed most run time I/O port lookups and removed PORT_RESET. IOGA port G counter reset is emulated correctly now. Increased sensitivity for patocar trackball - it seemed too slow with mouse or analog stick. - taito_h.cpp: Moved Syvalion trackball handling to a derived class and reduced copy/paste in I/O handler function. Fixed Dynamite League vertical blanking interrupt. - taito_x.cpp: Splitted driver in subclasses and minor cleanups - toaplan2.cpp: Added GP9001 initialization register (0x0E) values for remaining games (Batrider, Battle Bakraid, Battle Garegga, Enma Daio, Kingdom GrandP, Othello Derby, Power Kick and Sorcer Striker; video\gp9001.cpp) - Alien vs. Predator: Correct some overdumps - Block Carnival / Thunder & Lightning 2: Marked X1 sample rom as BAD_DUMP as it appears to be half size. Note: The game plays music from 0x000000 to 0x0bffff and sfx from 0x0c0000 to 0x0fffff. Loading the ROM mirrored like this causes sfx to play instead of music in some levels. The most logical conclusion is that the ROM below was dumped at half size and should be 1MByte, hence BAD_DUMP. - Cop 01: Unused dipswitches enable an undocumented invulnerability cheat (ID 08132). Note: When both switches are on, then the player cannot die anymore. - Cow Tipping: Cleaned up MC68328 register handlers and structure. Moved #define macros into enums within the class. - Future Flash: Fixed a bug in sound output and improved trackball handling. Various small cleanups. - Mahjong Kyou Jidai: Identified coinage DIPs and very minor cleanups - PinMAME . allied.cpp, g627.cpp and spectra.cpp: Added save-state and external outputs support . gp_1.cpp, gp_2.cpp, gts3.cpp and gts3a.cpp. WIP. Added some missing maincpu roms to Mike Bossy. . ltd.cpp and techno.cpp: WIP. Added sound. Splitted ltd.cpp into derived classes. . macp.cpp: Added some flesh to the skeleton driver. 2 games are playable. . micropin.cpp: Pentacup working and WIP for clone Pentacup (rev. 2). Splitted driver into derived classes. . nsm.cpp: WIP. Test menu works. . st_mp100.cpp and st_mp200.cpp: WIP. Fixed some long-standing mistakes. Moved Black Sheep Squadron to the correct driver. Black Sheep Squadron cleanup. . stargame.cpp: WIP. Space Ship (Pinball) is working. . vd.cpp: Both games working. . wico.cpp: Added outputs and save-state support - Royal Gum: Improved peripheral hookups. Added uPD7759 controls. Added preliminary inputs. Identified some DIPs and minor comments update. - Fixed rom names in djmain.cpp, stargame.cpp and techno.cpp - Dipswitch fixes in macp.cpp, mjkjidai.cpp, rgum.cpp, st_mp100.cpp and st_mp200.cpp - Description changes of '4 in 1 MAME bootleg (ver 3.00, PLZ-V014)', '4 in 1 MAME bootleg (PLZ-V001)', '48 in 1 MAME bootleg (ver 3.09, HPH-V000)', '48 in 1 MAME bootleg (ver 3.09, HPH-V000, alt flash)', '48 in 1 MAME bootleg (ver 3.02, HPH-V000)', Cowboy Eight Ball (set 1), Forgotten Worlds (Japan) (English prototype), Gouketsuji Ichizoku: Senzo Kuyou (v200906230) (ID 08127), Kot-Rybolov (Terminal), Mirai Ninja (Japan, set 1), Monster Zero (set 1), New HyperMan (3-in-1 with Cookie & Bibi & HyperMan) (set 1), Zephy (set 1) and Zephy (set 2) - Renamed (grudge) to (grudgei) and (popn1) to (popn1a) - MAME . VIDEO RENDERING SYSTEM . Replaced some locale-sensitive configuration parsing code (render\d3d\d3dhlsl.cpp). Fixes MAME freezes on non-English Windows OS (ID 08118). . Fixed BGFX flurry of bogus warning messages (bgfx\targetmanager.cpp) . Fixed buffer overflow crash with VIDEO_VARIABLE_WIDTH screens (emu\screen.cpp). Fixes (MESS) snes ctrigger consistently causes segfault (ID 07556). . Added scroll support for all Layout elements (emu\render.cpp and rendlay.cpp). Fixed texture size calculation for oblong items (emu\render.cpp). . Support texture wrap/clamp properly for (A)RGB formats. Also got rid of names starting with an underscore followed by an uppercase letter, as they are reserved (emu\rendersw.hxx). . UI . Fixed wrongly placed messagebox (ui\selmenu.cpp). Fixes program/copyright info overflows UI frame (ID 08120). . Refactored menu event handling and fixed a number of issues (ID 07570). Moved common code for drawing about box, info viewer, and other text box menus to a base class; removed the last of the info viewer logic and the multi-line item hack from the base menu class. Added previous/next group navigation for general inputs and plugin input selection menus. Moved message catalog logic to lib/util, allowing osd and emu to use localised messages. Made the base menu class use the UI manager's feature for holding session state rather than a static map and mutex. Improved menu event handling model, and fixed many issues, particularly with menus behaving badly when hidden/shown. Added better support for menus that don't participate in the usual menu stack, like the menuless sliders and the save/load state menus. Made a number of menus refresh state when being shown after being hidden, fixes (ID 08121) among other issues. Fixed indication of mounted slot option in the slot option details menu. Improved appearance of background menus when emulation isn't running - draw all menus in the stack, and darken the background menus to make the edges of the active menu clearer. . Started adding some documentation for MAME's internal UI, and updated the list of example front-ends. . Make all the textbox menus use the custom navigation flag, on the off chance they become scrollable somehow. . Made it so you can press UI On Screen Display to hide the Analog Controls menu and see the response to your inputs without the risk of changing settings, and see more axes at once and scroll them for systems with very large number of axes. Also ensure the axis being configured is visible when the menu is visible, and made the menu behave a bit more like the system input assignments menu (including previous/next group navigation). Allow LUA to draw to the UI container - this addresses the main complaint in #7475. Note that drawing to the UI container will draw over any UI elements, including menus. Plugins can check menu_active to avoid drawing over menus. Also removed some unnecessary use of sol::overload. Improved info/image box navigation on the system/softwre selection menus, and cleaned up some leftover code that came from the copy/pasted event handling functions. Fixed sliders menu not handling Alt+Shift as intended (thanks Coverity). Fixed a couple of harmless Coverity errors, too. Added basic description of the system and software selection menus, and correct a couple of errors in the LUA reference. Fixed some localisation issues in Analog Controls menu. Don't let the non-menus get as far as trying to draw (frontend\mame\ui). . More cleanup: Got rid of some abuse of "special main menus". Added a helper class for auto-pause menus that don't spawn submenus. Got rid of the fake menu that schedules an exit on the first frame. Turned the confirm quit prompt into a menu, eliminated one more special-cased event loop. Fixed the confirm quit prompt resuming if you return to emulation if you weren't paused to begin with. . Allow cycling modifiers for an absolute axis by pressing repeatedly without going through an append step (frontend\mame\iptseqpoll.cpp). . Don't inappropriately truncate text in menu text boxes (ui\menu.h and ui\ui.cpp). Added input provider module options to menu, worked around machine options not showing modules. . Handle WM_UNICHAR (ui_input; windows\window.cpp). Handle analog controls with high sensitivity numbers better (ui\analogipt.cpp). . Show error message box on a separate thread (see MT08118; osd\windows\winmain.cpp). Fixed stupid potential deadlock on exit (osd\windows\winmain.cpp). Don't set parent window for error message box - it doesn't appreciate the parent being pulled out from under it (osd\windows\winmain.cpp). . Default to built-in UI language rather than English. The external English message catalog is a placeholder anyway (emu\emuopts.cpp). . Some changes to menu item class that will make it possbile to reduce the number of menu rebuilds. . Various minor improvements: Made a few more menus reset values to the default in response to the UI clear input. Made the minimum info text size less unreasonable and fixed a locale issue in the font/size selection menu when parsing option strings. Made the keyboard mode menu toggle items on double click or UI select. Made the menuless sliders menu remember the last slider shown (this probably broke when sliders were moved out of the UI manager itself). Made a few menus just update the highlighted options when it's adjusted rather than unnecessarily rebuilding the menu. Made a few more menus reset on being reactivated to cope with scripts or other things changing stuff out from under them (frontend\mame\ui). Fixed master volume values set from tilde bar and slider controls menu don't agree (ID 03046). . Show more unemulated/imperfect features per-device in warnings menu (ui\info.cpp) . Fixed crashes switching between favourites and other filters (ID 08137). Also made the system and software selection menus a bit less eager to reselect the first item. Fixed another case where the system selection menu could get confused when changing filters (ui\selgame.cpp). . PLUGINS . Fixed crash (plugins\console\init.lua). Fixes tab completion causing segmentation fault (ID 08119). . Moved input selection menu and sequence polling code to a common library. Fixed the issue that prevented keyboard inputs being mapped with -steadykey on. . Added next/previous group navigation to input macro edit menu (plugins\inputmacro\inputmacro_menu.lua) . Moved the timecode recording functionality to a plugin (plugins\timecode\*). Gave the timecode plugin an option to count emulated frames. . Simplified logic in autofire and inputmacro plugins to try and avoid leaking state across sessions (plugins\autofire and inputmacro). Ensure state is destroyed on stop (plugins\inputmacro). . Fixed cheatfind menu flags and write XML cheat text to ui container so it's not sideways on rotated screens (plugins\cheat) . Reduced amnesia for autofire and inputmacro plugins. Made autofire and inputmacro plugins capable of remembering settings if the host input device for the binding is missing or if an input for a slot device that isn't present is referenced. . Rewrote timer plugin fixing multiple issues. Added emulated time recording as well as wall clock time. Fixed recording time for multiple software items per system. An incorrect constraint on the database table meant that time was only being recorded for a single software item per system. Detect the "empty" driver so the time spent at the selection menu isn't recorded (you'd get multiple entries for this due to the way options leak when returning to the system selection menu). Included schema migration code to update existing timer plugin databases. Also replaced some unnecessary floating point code with integer maths, added log messages, and made the plugin unload unload its database access code during emulation. Changed other plugins' use of paths with trailing slashes as this causes stat to fail on Windows. . Work around menu not remembering selection when ref is nullptr . INPUT . Made the default assignment for Save State recognise right shift (emu\inpttype.ipp) . Fixed "MAME lost my joystick settings" (emu\ioport.cpp) . Made default behaviour better (emu\ioport.cpp) . If an input is configured to some combination of controls that are not present at all, ignore the setting altogether for the session. . Fixed relative axes with PORT_RESET not responding to absolute controls. Fixes mapping joystick to trackball causes input to go haywire in sonic, cabalus and possibly others using upd4701a (ID 07685). . Fixed relative axes not responding to an absolute control if the value doesn't change every frame (eg. holding a stick against the stop). . Changed the scaling for absolute controls assigned to relative axes to make defaults more sane (e.g. arkanoid or spdheat with a joystick). Added documentation on assigning inputs (docs\source\usingmame\ui.rst). . Fixed some default setting handling issues. Issues were unlikely to actually manifest unless you use controller configuration files to change specific system input defaults (emu\ioport.cpp). . Added size accessor to multi-element output finder. std::size will work on the top rank of an outut finder now (emu\output.h). . Exposed a couple more input related things (mame\luaengine_input.cpp). Exposed constructor and a few methods on input_seq required for scripts to properly clear assignments or restore default settings. Exposed ioport_manager::set_type_seq which is required to configure general input assignments properly. Removed unnecessary use of sol::overload in favour of optional parameters. Updated documentation and also fixed a few errors. Added description for axis setting assignments. . Enabled complex combinations for analog axes: Made it possible to add digital controls to axis settings as enables. Mix multiple analog controls assigned to an axis setting. Added a "reverse" modifier for analog controls (useful with mixing). Fixed an issue assigning mouse axes using multiple mouse-like devices with -nomultimouse. . 3rdparty . Updated ASIO to version 1.20.0. The doc folder isn't included as it's pretty big. This required include\asio\detail\win_iocp_socket_accept_op.hpp due to mismatched order in the member declarations and initialiser list for the win_iocp_socket_accept_op class. I reversed the declaration order so it matches win_iocp_socket_move_accept_op. . Multi-Language . Updated Brazilian Portuguese, Greek and Chinese translations. Removed obsolete messages from Brazilian Portuguese translation. . Added partial Slovak translation . Updated localisations for UI changes in 0.238. For tranlators, the main changes are: The former "device mapping" menu is now "input device options" and includes the input provider module options. The analog controls menu (where sensitivity, auto-centre, etc. is configured) is now localisable. The timecode logging features (used when making gameplay videos) have been moved to a plugin, and display messages are localisable. There are a few extra messages for the autofire and input macro plugins to handle cases where a configured input is not present. The timer plugin has options to show wall clock time (real time elapsed according to host OS clock) or emulated time. . Build cleanup and UWP removal: Removed Android MIPS/64, CMake target, Creator-Ci20, FASTBUILD, iOS, Native Client PNaCl, Raspberry Pi, Steam Link, UWP, Visual Studio LLVM, VisualStudio 2015/17, Windows Phone, Windows Store and XCode4. Note: This removes options for deprecated platforms pnacl, steamlink and ci20. rpi target is not used for Raspberry Pi - linux target with parameters is used instead. MIPS architecture for Android has not been supported for some time - removed leftovers. Visual Studio versions older than 2019 are not able to compile anyway, so removed. CMake target was not able to be used for compiling anyway (just to give some editors a way to see project organization). Xcode4 support was added to get iOS to compile, and that was never finished, so removed. UWP has been deprecated by Microsoft, so we remove it as well. . Fixed buffer overflow with osd_output stack (osd\osdcore.cpp) . Regenerated message catalog sources. For translators, the new strings are mostly: The names of the inputs provided by the OS-dependent layer for things like fullscreen and video features. These show up in the user interface inputs menu. The names for automatically generated views. These show up in the video options menu - test with a system with a lot of screens to see more variants. The input macro plugin UI. A few format strings for analog input assignments. A few strings for the about box header. . Fixed locale issues in -listxml (frontend\mame\infoxml.cpp) - VGM player: Added 10 new entries and 1 updated entry (hash\vgmplay.xml) - Compiling . Fixes for variables set but not used (scripts\src\3rdparty.lua, cpu\arcompact\arcompact_execute.cpp, debug\dvdisasm.cpp, formats\dfi_dsk.cpp, fdd_dsk.cpp, ti99_dsk.cpp, vt_dsk.cpp, cobra.cpp, gunpey.cpp, nemesis.cpp, seicopbl.cpp, video\3dom2_te.cpp, fmtowns.cpp, midtunit.cpp and model2.cpp) . Define _FILE_OFFSET_BITS=64 on Linux (scripts\genie.lua). Note: Compiles GENie with off_t defined as a 64-bit integer to assist with building MAME on a 32-bit operating system like Raspberry Pi OS and a storage volume larger than 2 GB. Without this, the build can fail with a misleading error. . Clang fixes ("-Wno-unused-private-field"; osd\modules.lua and windows\winmain.cpp). Miscellaneous #include cleanup. - Debugger . Debug memory view improvements: Added options for 1-byte, 2-byte, 4-byte and 8-byte octal data display, which are selected automatically for memory spaces configured as octal. Octal data has also been made editable. Added options for displaying addresses in decimal or octal as alternatives to the typical hexadecimal format. This also affects the address expression box. Prevent the cursor from moving left from the first address or right from the maximum address. Note that the new options have only been hooked up for the Qt debugger. The Windows and OS X debuggers should also be updated to include them. . Support octal on the Mac native debugger . Made GUI debuggers more uniform. Added new memory view features to Win32 debugger. Fixed spelling of hexadecimal in Cocoa debugger and added decimal address option. Fixed duplicate keyboard shortcut in Cocoa debugger (Shift-Cmd-D was both new device window and 64-bit float format). Made keyboard shortcuts slightly more consistent across debuggers. . Fixed menus losing focus, added octal display and octal/decimal address select (debugger\debugimgui.cpp). 0.237 - New Non-Working games: Exciting Boat Race, Las Vegas (Jeutel, set 1), Manpuku Suizokukan and Speed Basketball - New clones: Advisor (Italian bootleg of Space Fury), Amidar (Cirsa bootleg), Asuka & Asuka (Japan, version 1), Buccaneer (set 2), City Attack (Petaco S.A., bootleg of Pleiads), Cosmic Alien (version II, set 3), Floritas (Multivideo Spanish Moon Cresta bootleg), Guttang Gottong (Sede 3 bootleg on Galaxian type hardware), Komemokos ('Pac-Man (Cirsa, Spanish bootleg)' hack), Las Vegas (Jeutel, set 2), Meteor (Alca bootleg of Moon Cresta), Pac-Man (Cirsa, Spanish bootleg on Galaxian hardware), Pengo (set 6, encrypted), Street Fighter Zero 2 Alpha (Asia 960805), Super Rider (v1.3), Winning Spike (ver AAA) and Yataimura Kingyosukui (1-player, Japan, Ver 1.005) - New PinMAME games: Ice Cold Beer (set 2) - New drivers: speedbsk.cpp - New devices: gt913_intc, oti111_vga, rs232_patch_box and xga_copro - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . AM9517A: Store actual line state in status register, correcting to logical state when used. Reverted previous 0.234 change that corrupted DREQ input state when the mask register was written to. Added configuration methods to define initial state for DREQ inputs being active low (or high). Added a few more internal helper functions. Disable side effects of reads for debugging. Fixes (MESS) Apollo DN3000 machine cannot load programs from tape. . ST0016: Use seperated address space for character RAM space. Use device_video_interface for screen finder. Use device_mixer_interface for sound output instead preinstalled speaker device. Fixed spacing. Added notes. Use shorter/correct type values. . Zilog Z8002: Simplified EXTS[BL]? implementation (z8000\z8000ops.hxx) - SOUND . AY8930 EPSG: Improved AY8930 noise algorithm and simplify some logic . Seta ST0016 (Audio): Fixed sound pitch related to CPU clock. Use struct for each voices. Minor fix in sample position. Use device_memory_interface for fetching sample behavior. Added notes. - DEVICE . Floppy: Use the command sector size not the address size in read track and set the correct bit in st2 to indicate data crc error (machine\upd765.cpp) . RS232 Port: Added a configurable patch box device and various cleanups. Added comments with V.24 interchange circuit numbers and names to rs232.h to make the meanings of the abbreviated signal names clearer. Moved a few slot card classes out of headers and into anonymous namespaces to reduce compile depedencies and exported symbols (rs232\rs232.cpp). Added patchbox device source (bus\rs232\patchbox.cpp). - a1supply.cpp: PCBs use a 4040 CPU. Updated ROM labels. Dumped another PCB for TV Poker. - asuka.cpp: Split in subclasses - bagman.cpp . Correct mapping for PSGs and added watchdog timer. Fixes a scratchy sound in Botanic when you eat a leaf. It's supposed to be like a "ping" with different random tones each time. Sometimes after a reset, the first game you start might randomly produce the correct sound once or twice, then you get the scratchy sound. This noise appears to be a programmed effect on one AY-3-8910 channel. It is generated by the subroutine at 028B in the Z80 program. The "ping" tone effect might perhaps be a function of analog sound mixing. The commit removes some glitchy interference between this noise and music playing on the other PSG. . Fixed protection read value for clone Botanic (English / Spanish, Bagman conversion). The PCB incorrectly had a Bagman PROM left in place, we're using the one from the other Botanic sets instead but marked as BAD_DUMP. - cv1k.cpp: Driver cleanup - ddenlovr.cpp, dynax.cpp and thepit.cpp: Added DIP locations to mcnpshnt, mjmyorn2, mjmyornt and suprmous. - deco32.cpp: Refactor Dragon Gun and Locked 'n Loaded to use the Namco C355 (Sprites) device instead. Removed 'DECO Zooming Sprites' device. - dietgo.cpp: Moved everything into the driver file, as video\dietgo.cpp only had one method. - epos.cpp: Updated notes with pinout from IGMO manual - esripsys.cpp: Arbitrarily initialize bank1 to avoid debugger crash - karnov.cpp: Cleanup - konmedal020.cpp: Added 'IBM XGA Coprocessor' skeleton and few VGA 'Oak Technologies Spitfire 64111' bits (video\pc_vga.cpp). Added XGA blits. - marineb.cpp: More accurate interrupt generation. Added watchdog timer. Workaround for hang after soft reset. Fixes changes, changesa, hopprobo, looper, marineb and springer freezes when pressing reset (ID 08068). - namconb1.cpp: Update Namco C355 Zooming sprites (video\namco_c355spr.cpp). Prevents bad tile on top left of J-League Soccer V-Shoot during certain scenes (ID 00763). - photon2.cpp: Hook up 8255. No change in functionality. Marked Brodjaga as IMPERFECT_CONTROLS. - segac2.cpp: Speed up initialization - segahang.cpp: Some games don't feature freeplay (Hang-On and Space Harrier) - segasp.cpp: Added security PIC dumped to 'Love And Berry - 1st-2nd Collection', 'Love And Berry - 3rd-5th Collection' and clones. - simple_st0016.cpp: Added notes of CPU clock - AGEMAME: Dumped and added PAL for Escalera Tobogan - Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp, upscope.cpp and (MESS) amiga.cpp) . Connect missing DSKINDEX signal from FDC to CIA-B ICR bit 4. Ignore bit 0 with BPLxMOD writes, fixes (MESS) hpoker/hpokera GFXs (drivers\amiga.cpp). . Fixed output channel of irq delegation, and throw one when a DMA reaches the end of a stream. Fixes asparmgp/gpmaster BGMs at very least. Avoid reading audio DMA buffers outside the allocated ranges, fixes sound buzzing/aliasing bug. Fixed DMA reload behaviour (fixes BGMs in (MESS) Ocean games), added live logging and misc (machine\8364_paula.cpp). . Fixes missing sound effects in Sidewinder, Space Ranger and Up Scope (ID 06601) (ID 06695) (ID 07601). . Guard against resetting IRQs when none is chained. Makes timer B polling reads to actually work in (MESS) barb2paln4, fixing booting (machine\mos6526.cpp). . Workaround live_counter > 8 to reset, makes abreed to boot to gameplay. Start adding logmacros. Fixed DMAON readback, giving logica2 diag BIOS the chance to print extensive floppy test info (machine\amigafdc.cpp). QA, consistent XML titles, consistent ids of virus plagued disks (additional field plus mark these as baddump). Mark the failures on mount and bulk test with ATK. Misc QA notes (hash\amigaecs_flop.xml). . Standardized alg.cpp title metadatas - Blandia: Added PLD dumps - Bowling Try!: Added support for separate voice commands per output channel to 'Tontek TT5665 ADPCM Voice Synthesis LSI' - Fast Lane: Fixed score layer color - Gun Champ: Identified unknown dipswitch as 'Enter Initials' (ID 08095) - Koi Koi Part 2: Added reference video for colors (https://www.youtube.com/watch?v=inc4tyuh4qk). Note: Color PROM outputs are connected to one of PALs. Missing color PROM apparently. - Legend of Success Joe: Added 'Wave' to company string (ID 08096) - Lucky Draw: Made working in the electronic sense. Added coin counter. - PinMAME . Added sound, outputs, save states and labels for inputs to zac_proto.cpp . Added some sound to zac_1.cpp . WIP. Some gts80.cpp, gts80a.cpp and gts80b.cpp games can be played. Indicated GTS80/A BIOS and added a list of known alternate roms. . gts1.cpp and recel.cpp: Fixed error message in Rockwell A17xx. Added sound card. Removed duplicate set. . All 4 inderp.cpp games now playable - ROLLing eX.tre.me: Hooked up EEPROM. Rewrote the PP disassembler (tms32082\dis_pp.cpp). - Royal Gum: Updated notes, it doesn't have an encrypted Z80. - Shooting Gallery: Adjusted MAME's crosshair to match actual crosshair. Shooting Gallery's default PORT_CROSSHAIR values are reverse and unscaled against the game's screen resolution. The game does not offer a calibration option, but the test mode that comes up after a few seconds upon setting the DIP switch shows the internal crosshair for adjusting the gun. The new offsets are manually determined. They are visual cues for the MAME users only and are unrelated to the game's operation. - Super Eagle Shot: Fixed 1 pixel gap in ST0016 layer. Fixed ST0016 clock (these are hasn't 8MHz or 48MHz XTAL). Fixed naming. - Super Real Mahjong P5: Fixed ST0016 clock (these are hasn't 8MHz or 48MHz XTAL). Fixed naming. Reduced unnecessary line (m_soundcpu->set_game_flag(9)). - Talbot: Added 'Rabbits to Capture' dipswitch (ID 08093) - Fixed rom names in a1supply.cpp, starfire.cpp, starfire.cpp, zac_1.cpp and zac_proto.cpp - Dipswitch fixes in 8080bw.cpp, champbas.cpp, ddenlovr.cpp, gts1.cpp, gts80a.cpp, inderp.cpp, lckydraw.cpp, rgum.cpp, segae.cpp, segahang.cpp, williams.cpp and zac_1.cpp - Description changes of alg.cpp games, Ameisenbaer (German bootleg on Galaxian hardware), Botanic (English / Spanish), Botanic (English / Spanish, Bagman conversion), Buccaneer (Aristocrat, 10173011, NSW/ACT), Buccaneer (Aristocrat, 0252523, US), Buccaneer (set 1), Centaur (Inder, alternate set), Crazy Kong (bootleg on Scramble hardware), Fighting Wu-Shu 2nd! (ver JAA) (ID 08107), Floritas (Moon Cresta bootleg), Frog (bootleg on Galaxian hardware), Galaxian Part X ('Moon Alien' hack), Galaxian Turbo ('Super Galaxians' hack), Guttang Gottong (bootleg on Galaxian hardware), Guttang Gottong (Sede 3 bootleg on Galaxian hardware), Ice Cold Beer (set 1), Kamakazi III ('Super Galaxians' hack), Monita to Rimoko no Head On Channel (prototype, hack), Moon Cresta (bootleg on Galaxian hardware), Pac-Man (bootleg on Galaxian hardware, set 1), Pac-Man (bootleg on Galaxian hardware, set 2), Pac-Man (bootleg on Moon Alien 'AL-10A1' hardware), ROLLing eX.tre.me (US), Space Dragon (Moon Cresta bootleg), Space Invaders Galactica ('Galaxian (Namco set 2)' hack), Super Galaxians ('Galaxian (Namco set 2)' hack), Zig Zag (bootleg Dig Dug conversion on Galaxian hardware, set 1) and Zig Zag (bootleg Dig Dug conversion on Galaxian hardware, set 2) - Renamed (asukaj) to (asukaja), (cosmica2) to (cosmica2a), (cosmica3) to (cosmica22) and (spcdraga) to (floritas) - MAME . VIDEO RENDERING SYSTEM . Updated BGFX, BX and BIMG to latest upstream. Fixes BGFX Vulkan backend does not start and falls back to OpenGL. . BGFX: Updated mipmap support in Fighters chain. Fixes crashes on Linux using Vulkan backend (bgfx\chains\Fighters.json). . MAME CORE . Notes from experiments with Clang (util\delegate.cpp). Detect Clang x86-64 thunk for first vtable entry (util\delegate.cpp). . Further API cleanups: Turned 'core_file' into an implementation of 'random_read_write'. Turned PNG errors into a standard error category. Added a helper for generating what look like derived classes on-the-fly. . UI . Made file manager software list menu search behave better (based on file selection menu code) (ui\swlist.cpp) . Locale-aware sorting for software list items (ui\selsoft.cpp and ui\swlist.cpp). Put software description on the left and sort by description by default (ui\swlist.cpp). . Set locale on start so sorting in the UI works properly (osd\windows\winmain.cpp) . Internal UI enhancements . Work around for MAME can't remember last_used_filter (ui\selgame.cpp; GitHub issue #8634) . Added support for message context to localisations. Added string_view versions of the message lookup functions. Added a few more folder options to the internal UI. Use more appropriate containers (emu\softlist.cpp). Switched to Python 3 by default - this will become a requirement. Updated scripts\build\msgfmt.py for message context support. Show all software item info in the internal UI. Search alternate titles in software selection menu. Updated 3rdparty\utf8proc to v2.6.1 (has several fixes). Added software filters for common info fields. Allow UI manager to hold onto persistent session data. Cache software lists for eight machines. Added support for loading localised system names. Added UI for selecting localised system names. Fixed clone sorting (string_view treatment; osd\strconv.cpp). Fixed a bug with ANSI codepage (osd\strconv.cpp). Added string_view treatment for the last two holdouts (util\unicode.cpp). Fixed build on non-WIN32 systems (util\unicode.cpp). . If in doubt, micro-optimise (halves startup time on Windows). Support phonetic reading field from localised system name lists. Fixed sorting of clones when not using localised system names. Allow falling through to file manager for systems that require media (ID 08103). Moved plugins menu off the main menu - it's only one level deeper now. Don't show toggles for plugin libraries, show a message when no plugins are found (ui\miscmenu.cpp). . Recovered precious vertical space for system/software names. Reduced the height of the bottom info panel by one line. The system shortname or list/software name tuple are now only displayed in the info box on the right. It's a bit out-of-the-way, but it's not something you need to see all the time. The main reason for having the quit or return to previous menu item always visible is to make it easy for someone to quit if they only have a mouse. However, we don't need waste space on the menu for this when we have a toolbar. Users without a mouse can exit using the keyboard/controller UI Cancel input (given how important this is, it's unlikely they won't have it mapped to something usable). There's now a toolbar button on the extreme right for returning to the previous menu or quitting. The tooltip and icon are appropriately context-sensitive. This recovers one line on the system selection menu, and two on the software selection menu since the separator is no longer needed. Replaced the toolbar icons bitmaps with SVGs. Colours/shapes may be tweaked before the release if people have good suggestions Flipped the simple system selection menu so the description is on the left. Moved the handling of special cases for the final menu item out of the base menu class. It's still hacky having it handled there at all, but it's less hacky without if menus that want to do something different can do it themselves. Fixed another dumb clone sorting bug (ui\selsoft.cpp). . Keep cleaning up. Got rid of one of the UI audit inputs. There only needs to be one, and the options can be presented in the confirmation menu. Two secret keystrokes is too confusing. Also got rid of the long-obsolete UI Toggle Debugger input. Added audit media button to the toolbar so it's a bit less opaque, and it can be accessed with a mouse/trackball (not just by knowing the key mapping). Made default I/O port names localisable. Made autofire plugin save port fields using the { port, mask, type } tuple, the same way MAME does. Unfortunately this will break existing autofire configuration, but it should be more stable going forward. Added some more UI keys to the default key mappings documentation. . More UI enhancements/cleanup: Made the headings in the info viewer clickable, so you can switch between DATs with a mouse or trackball (or maybe a lightgun if that's your thing). Made the UI red/yellow/green traffic light status colours less dirty-looking. The "yellow" is more of an amber-brown than a cat puke brown now, and red is brighter. The contrast with white text is definitely fine for red and green, but it's reduced a bit for yellow. However there's a limit to how dark you can make a yellow or orange colour before it looks muddy. Reduced the number of places the UI uses red for things that aren't errors. The error colour should be used sparingly, for actual errors. Improved the colour swatch display in the RGBA colour editor. It now has black/white underlay so alpha effects are move obvious. Also fixed a bug preventing the channels being run down to zero. Fixed double-clicking configure machine causing MAME to exit from the system selection menu. Also slightly adjusted the colours of the toolbar buttons again. More wording and localisation fixes for colours menus. . Allow clicking the adjuster arrows on menu items. This allows things like video options and DIP switches to be configured using a mouse only. Also fixed a bug preventing paging menus with a mouse if the first item scrolled off the bottom is not selectable. . Made it possible to cancel a media audit while it's in progress. Also made the media audit multi-threaded so it's faster. Made the DIP switches in the DIP switch preview clickable. Made the system and software selection menus leave focus on the same system when clearing the search rather than jumping to the first item. Also fixed a couple of bugs in the logic for keeping the selected item visible. Fixed a few places that weren't showing localised system names. Made UI Cancel clear a search in the file manager the same way it does on the system and sofware selection menus (ID 07928). Made it possible for plugin menus to handle UI Cancel more naturally, backing up to the previous plugin menu rather than dropping straight back to the list of plugins. Updated the autofire, cheat and cheatfind plugins, and fixed a few other issues in the cheatfind plugin. Show full sofware name in right panel for favourites, too. . Audit menu was using one variable for two things, which obviously doesn't work. DIP switch menu could trigger spurious clicks on for systems with too many DIP switch groups to show. Also work around Xcode's issues with casting non-const to const reference wrappers. . Cleaned up rendering of info views. Put the description for systems in the info box - it's useful for the fruit machines with very long names that are truncated in the list. Also stopped truncating manufactuer and parent name in the info box. Made the text layout class capable of handling lines containing combinatations of left/centre/right-justified text and got rid of the legacy UI manager text wrapping function. Made the system/software selection menus and the info viewer share the same code for formatting info text. This means the multi-column layout works properly in the info viewer now, and the code is a lot simpler. Also the system/software selection menus don't have to redo the text layout every frame now. Made the info viewer update the text layout if the output aspect ratio changes, and cleaned up more legacy code. The lines in the info viewer are no longer bogus "menu items", and there's a lot less special-case code to support it in the base menu class. . Better code for carrying justification across when wrapping. Fixed horizontal offset on text boxes with blank lines. Further improved behaviour of info box on system selection menu, and fixed alignment issues. . Changed the default mapping for UI select to not trigger on Alt+Enter fullscreen toggle (fullscreen toggle still doesn't work in menus - actually fixing that is complicated.) Made the about box wrap text properly, made the title and backtrack menu item always visible, and added a footer with the VCS revision. Don't highlight the favourites and info toolbar buttons if there's no selection (can happen if filters produce no results). Also made the info viewer appear even if no info is available - it's less confusing to see an empty menu than wonder why clicking the button does nothing. . Added a bit more info to the about box, moved the VCS revision to the heading. Don't show "not" codes in prompts - they're not helpful. Fixed a couple of Coverity warnings. . Pass events for automatically generated menu items to the plugin - they will have index zero. Don't try calling the data plugin from the main menu if the system isn't starting yet - doing so will prevent the data plugin from loading at all. Don't show plugin options menu in main menu before start - it doesn't work anyway. Fixed another case where the menus may not automatically scroll the first item into view. . Beter provision for plugins with multiple menu levels. Make it possible for a plugin to specify which item should be selected on repopulate. Also allowed plugins to specify the UI heading flag for menu items. Fixed untranslated info box title appearing on system/software selection menus. . PLUGINS . Added a new plugin that lets you create input macros. Besides the obvious application of cheating in Track & Field, this may be useful for making emulated games more accessible to people with disabilities or injuries that make certain input sequences difficult. To try out the attached demos (https://www.mameworld.info/ubbthreads/download.php?Number=392226), extract the archive into your plugin data directory. Included are: raiden: player 1 autofire on keyboard space bar, sf2ce: player 1 right-facing shoryuken using light punch on keyboard M, trackfld: player 1 sprint cheat on keyboard left shift and hotgmck: player 1 "punish" on keyboard Q ("pianos" the discard keys - it's actually too fast for the key matrix scan to see every input). Updated input macro plugin to select sane items when changing menus. Other plugins not updated yet, but may be at some point in the future. Documented the input macro plugin. The only undocumented plugins now are the cheat plugin, the cheat finder plugin, and the port name plugin. . Sort input selection menus for autofire plugin. Made left/right repeat when held (makes setting long delays/durations easier). Added headings for devices in input selection menus (helps when controller buttons have identical names, e.g. AES). Made intial selection when moving between menus intuitive, log some errors on saving/loading configuration. . Fixed ticking when menu is left on the screen (plugins\timer\init.lua) . Changed the hiscore plugin to save inside the "hiscore" folder in the plugin data directory. The old hiscore path setting has already been removed from MAME for some time. This means the plugin was always saving in the "hi" folder in the working directory with no way to change it, which is problematic on Linux and macOS, particularly for distro packagers. There are lots of plugin and UI changes in this release, so we may as well get this out of the way now. Also made it possible to change the "timed save" option from the Plugin Options menu, and save that in the data folder, too. . Started documenting plugins. Added a couple of missing command-line options and added a local table of contents to the (rather long) command line options page. . Use SPDX short identifiers for licenses in exports (more precise and easier to localise), use CC0 for hiscore plugin rather than CC0. . Handle multiple blocks in dat (plugins\data\data_command.lua and load_dat.lua) . SOFTWARE LIST . Added support for a 'notes' field to store information about a software list or software list item (emu\softlist.cpp). . Use more appropriate containers (emu\softlist.cpp). Ignore notes elements when loading software lists. It's effectively a comment that isn't a comment syntactically, it's being used for things that are not useful to display in the internal UI, and it slows down startup (emu\softlist.cpp). . MiniMAWS . Added software list and software notes to MiniMAWS (scripts\minimaws\lib\*) . Changed geometry of disclosure triangles (scripts\minimaws\lib\assets\disclosedown.svg and discloseup.svg) . Fixed up schema for software list notes, made sofware list notes display initially collapsed (scripts\minimaws\lib\*). . Multi-Language . Re-generated translations for I/O port names. Trying to collect messages from everything at once hits some limit in xgettext and causes messages to be lost no, so I've split it up by the second-level source directories. For some reason xgettext thinks overloaded LUA functions are blasphemy, so that has to be worked around, too. . Updated Chinese and Greek translations. Made some corrections to Chinese localisation after discussion with YuiFAN. Fixed syntax errors in translation files (Chinese_Simplified/strings.po and Chinese_Traditional/strings.po). . Fill in Japanese names for main player buttons (language\Japanese\strings.po) . Optimized the multithreading strategy for -listxml. The previous algorithm would spawn tasks but wait for them in sequential order. This is not necessarily optimal, and with these changes we will respond to whichever task completes first. This triples the speed of a full -listxml on a (Quad Core 2) computer (mame\infoxml.cpp). . Set file names via -snapname when exiting in -seconds_to_run. Note: The '-str' option will write a screenshot to the system's snapshot directory with the file name determined by the '-snapname' option (emu\video.cpp). . Made behaviour of trying to open things inside archives a bit more consistent, fixed another bug with root paths. Fixed two issues affecting Windows: Browsing from a location inside an archive causes MAME to hang. Files inside archives are not listed (util\zippath.cpp). . More cleanup on the FAQ page (usingmame\commonissues.rst) - VGM player: Added 44 new entries and 3 updated entries (hash\vgmplay.xml) - Compiling . Cleaned up CI targets: Restricted Linux CI build to only run on changes to code, translations, software lists, and build scripts. Restricted Windows/macOS CO to only run on changes to code and build scripts. They provide nothing over Linux for the other stuff. Added plugin properties and controller file validation to the "hash" workflow. Added a workflow for building documentation, so pull requests that affect documentation will at least get a basic check in advance (.github/workflows/ci-linux.yml, ci-macos.yml and ci-windows.yml). Added a separate CI target for localisation updates that produces an artefact, and removed the message catalogs from the trigger paths for the Linux CI build. . Removed compiled message catalogs on clean, show clean commands for VERBOSE=1 (makefile). . Avoid MSVC debug assertion (osd\strconv.cpp) - Debugger . Removed outdated/unused FD1094_HACK (debug\dvmemory.cpp) . Extended target address syntax to include device/address space. . Added a validity check to ensure address space names are tag-like and unique, since they're now used as identifiers in debugger commands. . Extended the syntax for target addresses to allow them to be qualified with a colon followed by an optional device tag and/or address space name. If only the device needs to be specified, a debugger CPU number may also be used. This makes commands like bpset and wpset more flexible, as they can operate on CPUs other than the currently visible CPU. Commands like find, fill, dump and load are more flexible as they can access any space of any device. . Removed now-redundant CPU parameters from many commands, and renamed pcatmemp to pcatmem for consistency with other commands. Extended region syntax for saver/loadr to support tags relative to the visible CPU (e.g. you can use "." for the region with the same name as the visible CPU, or "^sibling" syntax). Added an optional root device parameter to memdump. Changed interpretation of Boolean values to support numeric expressions as well as true/false strings and literal 1/0. . Added checks that the specified device is CPU-like to various commands that require a CPU (e.g. focus). Previously these commands would crash or trigger an assertion failure if a tag for a non-CPU devices was specified. . Fixed the cpunum symbol so it uses the same rules for determining what is or isn't a CPU as parameter parsing. . Made device_t sanitise subtags better. Previously you could cause an assertion failure or crash MAME by giving it unexpected relative tags via LUA or the debugger. . Added help topic alias support, and reworked the data structures to improve the performance of looking up debugger commands and help topics. Removed the "ref" parameter from debugger command functions (std::bind can hold extra argument values for you if you need them). Also added an error message if duplicate debugger commands are registered. . Updated help for commands that changed syntax, and also updated summaries for some commands that had changed in the past without corresponding help updates. . Fixed multiple issues with debug memory tracking. Track write accesses rather than read accesses. Actually install the taps when the trackmem command is executed. Correct cell addresses for address-shifted spaces in Qt and Windows memory viewers (debug\debugcpu.cpp and modules\debugger\qt\memorywindow.cpp). . Fixed pcatmem command (debug\debugcmd.cpp) . Extended the memory access prefixes in debugger expressions to support address space names. Made the debugger history command aware of how much history it has collected, and added a help topic for it to the built-in debugger help. Started updating the documentation for the web site, and correct some of the more misleading built-in debugger help. . Allow wplist and bplist to accept a CPU argument to list breakpoints/watchpoints for a single CPU only. Fixed some corner cases in address space syntax in memory accesses, and allowed memory region accesses to use tags relative to the visible CPU. . Updated more pages of debugger documentation. Also updated more of the built-in debugger help. . Made the mount and unmount commands accept instance names as well as brief instance names. Also updated another page of debugger documentation. . Added a register points view to the GUI debuggers, to go with the breakpoints and watchpoints views. Extended [brw]p(clear|(en|dis)able) commands to accept multiple arguments to perform the same action on multiple (break|watch|register)points at once. Also made rplist accept a CPU for showing a single CPU's register points ([bw]plist already support this). Updated registerpoints debugger commands page, and updated other pages for latest extensions to syntax. . Updated cheat commands to work with arbitrary devices and address spaces. You can still only search RAM areas in a single address space at a time, but any address space of any device can be used now. Made the cheatinit/cheatrange commands not affect current state if the arguments are invalid. Also fixed some bugs in the cheat commands. Updated documentation for cheat commands, and added a simple worked example. Also added single-sentence descriptions of what (break|watch|register)points are to the top of the relevant pages. Fixes MAME debugger crashes when using 'cheatinit' and giving few parameters (ID 06583). . Documented debugger's built-in functions for expressions (docs\source\debugger\index.rst). Octal cheats for octal address spaces. Fixed regression in interpreting db@, ib@, ob@ and similar memory access operators (debug\express.cpp). Memory accesses in expressions don't support taking the first exposed space (debug\express.cpp). 0.236 - New games: Danger Express (prototype), Head On Channel (prototype, hack), OOPArts (prototype, joystick hack), SegaSonic Bros. (prototype, hack) and 'unknown Paradise Automatique / TourVision bowling themed poker game with gum prizes (France)' - New Working games: Killer Instinct 2 (upgrade kit) - New Non-Working games: Que Long Gao Shou, 'unknown medal game GS471' and Zelos (Japan, terminal) - New clones: American Poker II - Jackpot (Spanish, set 1), American Poker II - Jackpot (Spanish, set 2), American Poker II - Jackpot (Spanish, set 3), beatmania complete MIX (ver AA-C), Carnival (cocktail, earlier), Casino Five (3315-12, U5-0), Cherry Bonus III (set 5, encrypted bootleg), Jor-eop Jeungmyeongseo (Korea), Leader (version Z 2F, Greece), Missile / Circuit (bootleg of Alpha Fighter / Head On), Mushiking The King Of Beetle (2K3 2ND Ver. 1.000-, Korea), Pucman, Route 16 (Sun Electronics, set 2) and 'unknown 'Pac-Man' gambling game (set 2)' - New AGEMAME games: Diamonds & Hearts - Power Pay (10229311, NSW/ACT), Escalera Tobogan (MPU4, set 1), Escalera Tobogan (MPU4, set 2), Escalera Tobogan (MPU4, set 3) and Peacock Flutter (01J00011, NSW/ACT) - New PinMAME games: Alaska, Black Magic 4, Cavalier, Crazy Race, Don Quijote, Faeton (6 digits), Fair Fight, Fast Track, The Flipper Game, Hardbody (rev. D), Hook (UK 4.06, display A4.01), Hot & Cold, MotorDome (rev. B), Mr Doom, Mr Evil, Poker Plus, Screech, Swashbuckler and Torneo - Removed games: Motor Show (set 2) - New drivers: konmedal020.cpp and recel.cpp - New devices: ace_sp_reelctrl, ace_sp_reelctrl_pcp, demoneye_audio, irem_m37b_audio, irem_m37b_ue17b_audio and panther_audio - New mame.ini options: compressor (CORE SOUND OPTIONS) - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . Dynamic Re-Compiling: Proof-of-concept for optimisation of calling out. Resolve address space virtual member function addresses on constrcution and call them directly. Provides a small but measurable improvement to performance in drivers that use the recompiler and access the memory system a lot (cpu\drcbex64.cpp). . Hitachi H8: Fixed NMI on H8/300 (h8\h8_intc.cpp) . hyperstone E1-32XN: Fixed issues with SARDI instruction (e132xs\e132xsdrc_ops.hxx and e132xsop.hxx) . Intel 8257 DMA Controller: Fixed device so TC can work with multiple devices . Intel I386: When DEBUG_MISSING_OPCODE is defined, log a small backtrace. This way together with the full list of bytes that form the non recognized opcode there are the addresses of the previously executed instructions. . Motorola MC68HC11xx: Added stubs for TCTL registers. Documented coding bug in asma2k (mc68hc11\mc68hc11.cpp). . Texas Instruments TMS32082: Various bug fixes - SOUND . Ensoniq ES5503: Initialize variable properly. Clean up code a little. . OKI MSM6295/6376/9810 ADPCM: Explicitly clamp output streams to within range . Sound Interface . Added compile-time option to show visible annoying red border when sound is overdriven. Leaving it on for a bit at the start of the cycle so that devs might identify and fix some of these cases (emu\sound.h and ui\ui.cpp). . Fixed overdriven sound in various Atari games (atarig1.cpp, atarig42.cpp, atarigx2.cpp, beathead.cpp, cybstorm.cpp, eprom.cpp, harddriv.cpp, skullxbo.cpp and thunderj.cpp) . Clip less in xexex.cpp. Rebalance audio levels in most seta.cpp games. Reduced volume in Mario Bros. so we don't clip constantly just when running around (audio\mario.cpp). . Reduced overdriven audio volumes (ID 02099) in 20pacgal.cpp, alpha68k_n.cpp, cvs.cpp, dkong.cpp, equites.cpp (audio\ad_sound.cpp), hng64.cpp, kaneko16.cpp, lethalj.cpp, mcr68.cpp, meritm.cpp, stellafr.cpp, tank8.cpp and audio\decobsmt.cpp (deco32.cpp, de_3.cpp, de_3b.cpp and whitestar.cpp) . Fixed overdriven sound in atarisy1.cpp, dec0.cpp, gaelco3d.cpp, Gunbird and audio\segam1audio.cpp. Clamp audio from the custom device in cps3.cpp. Fixed ridiculously overdriven sound in toaplan2.cpp. Reduced volume in Ghox (spinner) to avoid overdriving speaker. . Reduced overall volume to prevent overdrive in m72.cpp, segas16a.cpp and segas16b.cpp. Lowered OKIM6295 volume in sbmjb.cpp. Reduced audio levels to avoid hitting the limiter in cchasm.cpp. . Various volume level adjustements to avoid hitting limiter in astrocde.cpp, boogwing.cpp, gottlieb.cpp, ladybug.cpp, metlfrzr.cpp, mustache.cpp, pgm.cpp, terracre.cpp and xyonix.cpp. . Make the compressor optional (clamp overdrive to -1.0-1.0 when off) (emu\sound.cpp). Note: The audio compressor temporarily reduces the overall volume when the audio output is overdriven. The default is ON (\-compressor). . ICS2115 WaveFront Synthesizer: Implemented pan for stereo support . Votrax SC-01: Re-balanced some Votrax stuff, attempting to keep the chip output between +/-1.0. - DEVICE . 8042 Keyboard/Mouse Controller: Improved management of PS/2 mouse. Added mouse interrupt. Support more mouse commands. Use command byte to enable/disable mouse and keyboard interrupts. Now the PS/2 mouse works with Windows 98. Mouse reset answers at least one byte if mouse disabled. Makes (MESS) nforcepc BIOS happy. . Clock: Added setters for period, duty cycle and pulse width (machine\clock.cpp). Note: Set the period either with device_t m_clock, or with set_period if it needs to be more fine-tuned (m_clock has higher priority). The duty cycle can be changed with set_duty_cycle (default is 50%), or the pulse width (active time) can be set directly with set_pulse_width. Output signal at machine start is right after falling edge. . CHDMAN: Allow specifying the desired block size for loose files/verifying a CHD's block size (util\harddisk.cpp) . Floppy . Added head count check (formats\wd177x_dsk.cpp). Prevents further evaluation of incompatible formats. . Fixed address usage for serial port registers (machine\fdc37c665gt.cpp) . Imgtool: Removed opresolv.h from emu.h and some other base headers. Splitted legacy floppy image class into a separate file. Clean up a lot of #includes in src\lib and tools\imgtool. - New Cheat.dat (Wayder): https://ss1.xrea.com/nekoziman.s601.xrea.com/cheat/ - banprestoms.cpp: Identified some DIPs - bartop52.cpp and maxaflex.cpp: Fixed Atari 'ANTIC' DLISTL and DLISTH writing to only affect the high and low byte component that is spread between m_dpage and m_doffs (video\antic.cpp). Fixes artifact colors in (MESS) Atari 800 Choplifter, David's Midnight Magic, Lode Runner, Diamond Mine and Ultima IV. - by35.cpp and mcr.cpp: Moved several constructors out of the header, fixed a save state issue and made outputs use finders (audio\bally.cpp). - chihiro.cpp and naomi.cpp: Dumped Sega 838-13683-91 Rev.A JVS I/O (machine\jvs13551.cpp) - cromptons.cpp: Improved notes - cv1k.cpp: Cleanup driver - dooyong.cpp: Reduced volume for YM2151/M6295 sound and coalesced some machine configuration - exidy.cpp: Split up state class and reduced reliance on driver init functions - f-32.cpp . Royal Poker 2 fixes and updates. Game is now essentially playable, but marked not working due to settings-saving issues. Hooked up M6295. . Fixed issues with SARDI instruction (e132xs\e132xsdrc_ops.hxx and e132xsop.hxx), fixes Mosaic (F2 System). - funkyjet.cpp: Moved everything into the driver file, as video\funkyjet.cpp only had one method. - galpani3.cpp, jchan.cpp and suprnova.cpp: Fixed oob access on transcient incorrect sprites, use masking instead of % (video\sknsspr.cpp). Silence watchdog access in suprnova.cpp. - goldnpkr.cpp: Base screen parameters on how games program the CRTC. Filled in proper screen parameters for goldnpkr, witchcrd and megadpkr. There may be other games that use different parameters. Demoted megadpkr and megadpkrb to not working as they can only boot once before writing timekeeper data that prevents booting again. - goldstar.cpp . Decryption progress on clone Super Seven. It now gets in game but needs GFX and color fixes, plus decryption might have some error lurking. . Point reel tilemap to the right GFX rom offset for Cherry Master '97 - kikikai.cpp: Added PCB infos and correct DIPs. Clean up video\kikikai.cpp a little. - kinst.cpp . Simulate CPLD for clone Killer Instinct 2 (upgrade kit) (Game now playable). Original device was reverse-engineered with a logic analyzer and test ROMs. The CPLD behaves as a slave device, returning data when selected, based on previous writes. . Driver cleanup. Added preliminary screen raw parameters. - konmedal68k.cpp . Identified konslot and konslot2 (Cross Magic Mark 2 (1996) and Fruits Magic (1996)). Fixed display resolution and offsets. . Adjusted some DIPs definitions . Made 'Powerful Chance' show the title screen - meritm.cpp: Removed layer enable debug keys - merits.cpp: Correctly identified Scorpion (Mar 24, 1992) as "Pub Time Darts II" - missbamby.cpp . Identified unknown game = Multy (Deta 1987). Added its PCB ASCII layout. . Dumped the PROM for Basket - n8080.cpp . Merged some input ports and removed tag lookups . Added conf setting for switching Space Fever to monochrome - qix.cpp: Removed PIA 5 popmessage. This PIA is supposedly unused. - redalert.cpp: Converted sound boards to devices and removed a couple of trampolines, making the driver state class considerably tidier. Tidied up the driver a little. - royalmah.cpp: Configured banking and views for Mahjong Shinkirou Deja Vu (Japan) and Mahjong If...? [BET] - segac2.cpp . Decouple driver class from md_base_state (machine\megadriv.cpp and includes\megadriv.h) . Improved Waku Waku Marine controls - segas16b.cpp . Revert MAME 0.231 video attributes workaround, it just causes new problems. Fixes random graphics flickering in Altered Beast (set 8) and clone Altered Beast (set 6) (ID 08065). . Decapped and dumped I8751 MCU for clone Juuouki (set 7, Japan) (8751 317-0077), fixes music does not stop when the sequence of transformation begins (ID 04022). - srmp2.cpp: Fixed no character voices in Super Real Mahjong Part 2/3 (includes\srmp2.h) (ID 08081) - stv.cpp . NMI is unconditionally requested for screen clock change commands, fixes booting in (MESS + hash\saturn.xml) bigichig, capgen1, capgen4 and capgen5 (machine\smpc.cpp). . Guard against deleting partial sectors in cmd_delete_sector_data, fixes (MESS) pstarcol crash after first attract cycle. Added fixed status for NetLink, allow (MESS) dragndrm to actually boot (on -non drc). - taito_z.cpp: Use output finders instead of output().set_value, split up state class a little. - tiamc1.cpp: Set games release years to 198?. Actual release dates unknown. According to one of developer Konek-Gorbunok, Billiard and Kot-Rybolov was made before 1988, Snezhnaja Koroleva after 1988. - toaplan1.cpp, twincobr.cpp and wardner.cpp: Use single pass priority drawing for sprite vs tilemap priority. Use device-specific delegate for priority mask. Use device_video_interface to find screen (video\toaplan_scu.cpp). - AGEMAME . acesp.cpp: Dumped the 68705P3 MCUs on 2 different types of sp.ACE fruit machine reel driver PCBs . aristmk6.cpp: Updated documentation. Added new game_rom's to Wild Africa - Millioniser (0351083, US). - Agress - Missile Daisenryaku (Japan): Fixed 'Lives' dipswitch - Baby Fruits: Added year for clone Baby Fruits (25 pts version) - Bonze Adventure: Added PCB infos - California Chase: Don't try to use portr for half the bus width - Carnival: Correct PROM label and location for Carnival sets using standard PCB - Change Lanes: Fixed steering problem, probably (ID 08075). - Cosmic Chasm: Combined source files, added I/O port finder and reduced audio levels to avoid hitting the limiter. - Cyberstorm: Cleaned up inputs and added comments to match observations and behaviours in test mode - Darius: Added 'Continue Price' dipswitch to clone Darius (US, rev 2) (ID 08077) - Dead Connection: Fixed mislabled and misassigned dipswitches (ID 08059) - Fantasy Zone: Revert MAME 0.231 video attributes workaround for Fantasy Zone, it just causes new problems. - Kart Duel: Redumped data roms - Marvel Land: Made clone Marvel Land (Japan) the parent, the US prototype is an earlier incomplete build, it ends abruptly, lacks any end credits, and is missing many of the levels plus various other incomplete elements, see https://tcrf.net/Marvel_Land_(Arcade). - Missile Command: Eliminated space.device() calls - Multi Baby: Added basic mappings - PinMAME . barni.cpp: Added layout. WIP. . gts1.cpp: Various fixes. Still not working though. Descriptions for DIPs. . s3.cpp, s4.cpp, s6.cpp and s6a.cpp: Use output finders instead of output().set_value, reduced tag lookups. . spirit76.cpp: Added a layout. Mostly working. Fixed knocker when free game attained. . mrgame.cpp: Added tilemap drawing - Dakar works properly and World Cup 90 has some issues. Fixed 5bpp sprite layout, only put attribute handler over tilemap attribute area of object RAM. Merged Motor Show (set 1) and Motor Show (set 2) and added a third BIOS rom set (cpu_2.ic13b and cpu_2.ic14b). Added new roms to Mac Attack. - Pipeline: Hook up sound communications and YM2203. Fixed sound PPI mapping - Play Sonic 4: Added inputs and DIPs as per test mode - Pole Position II: 'Freeze' dipswitch works fine (ID 08090) - Roller Jammer: Added screen raw parameters. Modernized MSM5205 hookup, fixes broken 'SOUND TEST' in service mode (ID 08076). Added missing input. - ROLLing eX.tre.me: Mostly playable driver. Various bug fixes to the TMS320C82 core. TODO: TMS320C82 parallel processors are not emulated. PP0 transfers polygon data from a software FIFO to the graphics processor. This is currently HLE'd. PP1 most likely does sound mixing. This is currently not emulated. 93C66 EEPROM. Alpha blending (probably based on palette index like on gaelco3d). Minor Z-buffer issues. Wrong textures in a few places (could be a CPU core bug). Networking. - Rumba Lumber: Correct main CPU clock, fixes sound regression. - Space Harrier: Hook up I8751 MCU and removed simulation. The MCU for clone Space Harrier (8751 315-5163) is handcrafted and marked BAD_DUMP. There is a slight issue with the initial synchronisation, so there is a hack to ignore the problematic write. - Speedway: Redumped u29 gfx1 rom - Taxi Driver: Reduced tag map lookups in driver - Vigilante: Swapped punch/kick buttons to match with arcade cabinet (ID 08078) - Wonder Planet: Decapped and dumped MCU. Removed simulation and clean ups. - Fixed rom names in aristmk6.cpp, namcos1.cpp, segaatom.cpp, segas16b.cpp and vicdual.cpp - Dipswitch fixes in banprestoms.cpp, blockout.cpp, cybstorm.cpp, d9final.cpp, darius.cpp, gts1.cpp, kikikai.cpp, konmedal68k.cpp, plsonic4.cpp, polepos.cpp, spirit76.cpp and taito_f2.cpp - Description changes of Carry On (Pcp) (sp.ACE) (set 1), Carry On (Pcp) (sp.ACE) (set 2), Cross Magic Mark 2, Faeton (7 digits), Final Frontier (Bwb) (sp.ACE), Fruits Magic - The Magic Party, Hardbody (German rev. B), Hardbody (rev. C), Killer Instinct 2 (upgrade kit), MK6 System Software/Setchips, Makaimura (Japan), Makaimura (Japan Revision C), Makaimura (Japan Revision G), Marvel Land (US, prototype), MotorDome (German rev. B), Motor Show, MotorDome (rev. D), Pub Time Darts II Plus 2 with Solo Challenger (Mar 24, 1992), Queen of Sheba (10133721, NSW/ACT), Route 16 (Sun Electronics, set 1), SegaSonic Cosmo Fighter, Sotsugyo Shousho (Japan), SF-HiSplitter (set 1), SF-HiSplitter (set 2), SF-HiSplitter (alt sound), Space Fever (new version), Space Fever (old version), Space Fever (older version), 'unknown 'Pac-Man' gambling game (set 1)', Wild Tepee - Power Pay (20230211, NSW/ACT) and Wizard Ways - Lady Luck (20139121, NSW/ACT) - Renamed (hardbody) to (hardbodyc), (konslot) to (crossmg2), (konslot2) to (fruitsmg), (marvland) to (marvlandup), (marvlandj) to (marvland), (scrpiondc) to (pubtimed2ch) and (unkslot) to (multy) - MAME . VIDEO RENDERING SYSTEM . BGFX . Fixed UV rounding errors in fs_blit_palette16. Switched back to direct texture upload rather than CPU copy. . Use D32F texture format instead of D24, should fix AMD hardware (bgfx\target.cpp). . Switched fs_blit_palette16 to expand bitmap_ind16 contents to R8. Fixes vertical off-by-one shift in games with an odd pixel count along X. . Fixed option -bgfx_backend d3d9 not working (ID 07883) . Use I/O filter for zlib decompression, avoiding the need to use zlib directly (emu\render.cpp). . Polygon rendering: Removed unused flags, expose object data array directly and added ability to register other poly_arrays. Minor naming/consistency cleanups (video\poly.h). Added docs for poly_manager (docs\source\techspecs\poly_manager.rst). . Added rectangles operators & and | (intersection and union) from the existing &= and |= ones (lib\util\bitmap.h) . Updated the example layout links to point to 0.235 - this means there's now an example of embedded SVG (techspecs\layout_files.rst). . MEMORY SYSTEM . Fixed a number of problems with specific boundaries (emu\emumem*) . Take into account the pre-offsetting when expanding handlers (emu\emumem_hedr.ipp and emumem_hedw.ipp) . DEVICES . Allow devices to specify a parent for the purpose of searching for ROMs (emu\device.cpp) . Reworked device type definition macros to eliminate one level of indirection when using device types by name. Fixed a potential initialisation order issue that could affect device parent ROMs. Eliminated the need for DEFINE_DEVICE_TYPE_NS - just use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_PRIVATE with fully-qualified names. Changed device type aliases to static auto references in the headers. Added ROM parents for m68705u3 and a2diskiing. Added Doxygen comments for system/device definition macros and system flags. Updated Doxygen configuration to be based on up-to-date template, updated bootstrapped theme so it doesn't 404 (still won't work due to lack of support for jQuery smartmenus). . Moved a few slot devices into anonymous namespaces, getting more stuff out of headers and reducing dependencies. . MAME CORE (util\delegate.*) . One less level of indirection for functoid delegates (util\delegate.cpp). If a delegate is set to a functoid (e.g. a lambda) with a signature that is an exact match for the delegate's signature, it will be bound directly. If arguments or the return value need conversion, a static adaptor will be generated. This removes unnecessary indirection through std::function::operator() (util\delegate.cpp and emu\devdelegate.h). . More cleanup and future-proofing (util\strformat.h, util\delegate.h). Found a SFINAE trick to detect absence of stream-out operators. Fixes building with C++20 standard library (util\strformat.h). Fixed a commend and removed an unused declaration from MSVC member function pointer wrapper. Added support for discarding functoid return values for delegates returning void. Added support for using std::ref to bind non-copyable functoids (util\delegate.h). . Fixed multiple issues (util\delegate.cpp): Fixed this_pointer displacement being reapplied after delegates are copied - caused issues with classes with multiple inheritance. Made null member function pointer test conformant with Itanium C++ ABI specification. Correct size of this pointer displacement - fixes issues on big Endian targets. Fixed function addresses for virtual member functions on targets that use function descriptors (e.g. PPC64). Applied shift to this pointer displacement for targets that use the ARM variant of the Itanium ABI. Fixed this pointer displacement not being applied for virtual member functions on targets using ARM variant of the Itanium ABI. Fixed this pointer displacement being incorrectly applied to vptr on targets using ARM variant of the Itanium ABI. Made less code conditionally compiled to make it easier to catch errors (util\delegate.cpp). . Try to catch issues earlier and some cleanup (util\delegate.cpp). Optimised generation of late bind helper functions. The late bind helper function doesn't depend on the delegate signature - only on the late bind base class and function target class. Having it inside the delegate base class means it needs to be instantiated for every combination of late bind base class, function target class and delegate signature. In a typical driver file, there is only one late bind base class (delegate_late_bind), and there will be delegates with multiple signatures bound to function members of the same class (e.g. read and write handlers, possibly of different widths, bound to members of the driver state class). By moving the late bind helper out of the delegate base class, the number of required instantiations can be reduced. By moving the body out of the enclosing class declaration, the compiler can be encouraged to coalese instantiations across translation units. While this won't give a further reduction in compile time, it should at least reduce the output binary size by reducing duplication for devices that frequently have handlers installed in memory maps. Added an additional template parameter to delegates allowing the late bind base class to be changed if desired. Moved the MSVC implementation "this" pointer optimisation out-of-line and added logging. Also cleaned up the Itanium "this" pointer adjustment and code pointer resolution implementation to reduce duplication and conditional compilation. Made binding_type_exception give a more meaningful what() message than "std::exception". Added extensive validity tests for delegate functionality. Pointers to member functions are tested, including multiple inheritance, virtual and non-virtual member functions, and checking for generational loss across copying/assigning delegates. This should properly exercise "this" pointer adjustment for the Itanium and MSVC implementations, and vtable lookup for the Itanium implementation. So-called late binding functionality is tested, including exceptions on failure. Functoids are tested, although given the encapsulation it's not possible to check that an apator isn't generated when it shouldn't be. Fixed calculation of this_pointer when casting member function pointers across virtual inheritance relationships using MSVC with /vmg (util\delegate.cpp). . Fixed structure return with MSVC C++ ABI. Automatically use delegate_mfp_compatible to generate an adaptor for member functions that return non-scalar, non-reference types (partially addresses GitHub #8597). Enabled the MSVC delegate implemenation for MSVC on AArch64. Switched back to neater delegate types for layout item bounds and colour (util\delegate.h). . Made MSVC delegates capable of walking past all the thunks MSVC puts in the way of actually calling a member function. I'm not accounting for the "this" pointer being passed in RDX when the return value is an oversize scalar. This is harmless because it won't see anything that looks like a virtual call thunk using RCX when RCX points to uninitialised space for the return value. It just means virtual member function calls won't be bypassed if the return value is an oversize scalar, but that doesn't happen frequently anyway (util\delegate.cpp). . Make comparison operators more technically correct. For Itanium ABI, two null member function pointers should compare equal even if the undefined bits differ. For MSVC ABI, there's all sorts of complexity around what happens when you compare pointers to member functions for different inheritance types. You'll still occasionally get weird results comparing pointers to members of different classes (util\delegate.h). . Recognise a couple more MSVC thunks. The MSVC C++ ABI doesn't reserve the first vtable entry for classes without a virtual destructor, so the instruction to load the virtual member function address may not need an immediate displacement. Also recognise virtual member function call thunks for AArch64. Added a couple of comments about assumptions (util\delegate.cpp). . PowerPC-64 Little Endian drops function descriptors. At some point I'll make a proper header ABI detection. There's too much stuff to keep in the delegate sources, and it will be useful for other stuff like recompilers (util\delegate.cpp). . Use "compatible" delegates for MinGW GCC i686. The Itanium delegate has questionable value on on MinGW i686 as it injects a conditional branch in the hot path for delegates anyway to deal with the different __thiscall convention. It's somehow breaking and causing memory corruption in full builds, but I don't have the time to work out exactly which delegate type is the problematic one, especially not with a release coming soon. This will probably cause 32-bit MinGW builds to become substantially larger (util\delegate.h). . INPUT/OUTPUT . Use output finders instead of output().set_value for atari_s1.cpp, by17.cpp, by35.cpp, by6803.cpp, harddriv.cpp, kenseim.cpp, opwolf.cpp, play_1.cpp, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, taito_z.cpp and videopkr.cpp . Used finders instead of tagmap lookups for rombanks in d9final.cpp, igs_m027.cpp, ppmast93.cpp, tmspoker.cpp and ultrsprt.cpp . Used finders instead of tagmap lookups and other minor cleanups in airraid.cpp and hanaawas.cpp . UI/OSD . Started refactoring file I/O stuff. Added more modern generic I/O interfaces with implementation backed by stdio, osd_file and core_file, replacing io_generic. Also replaced core_file's build-in zlib compression with a filter. Added option to supply abstract I/O interface to unzip.cpp and un7z.cpp rather than filename. Converted osd_file, core_file, archive_file, chd_file and device_image_interface to use std::error_condition rather than their own error enums. . Return would block when reading a socket with no data available - no error can be confused with remote shutdown (osd\modules\file\posixsocket.cpp and winsocket.cpp). . Added fractional zoom-out support to the tilemap viewer (ui\viewgfx.cpp). Also added IPT_UI_ZOOM_AUTO for toggling auto-zoom mode without needing to cycle through all zoom levels. . Made zoom controls a bit more intuitive . The UI controls are described as zoom in/out, but they had the opposite effect on the palette and tile viewers. That has been changed to make them consistent with the tilemap viewer. . Made the default zoom key not act as a toggle. People are familiar with the function of Ctrl+0/=/- in web browsers, so making them behave similarly in MAME should make it more approachable. Also added the default zoom key to the relevant documentation page. . Implemented the default zoom key for the palette and tile viewers. . In the tilemap viewer, if the view is in default expand to fit mode, zoom in/out starting from the actual zoom ratio. Once again, this behaves more like the zoom controls in a web browser displaying an image so it should be more intuitive. . Made more messages from the tilemap viewer localisable. Fixed attempted loading of loose software does not work with MAME filemanager (util\zippath.cpp) (ID 08074). . There were multiple issues at play here. After #8443 was applied, is_root was simply never returning true on Windows, as OSD_WINDOWS isn't actually defined outside libosd and libocore. This caused phantom parent items to appear in disk roots on Windows, but it meant that the check in zippath_resolve would always fail so the trailing backslash would be trimmed. Fixing the macro test in is_root meant the trailing backslash from C:\ would no longer be trimmed, which caused the stat in zippath_resolve to fail. Reduced tag map lookups in several drivers and devices. Removed an overload of bitswap that can be avoided using if constexpr (util\coretmpl.h). Added doxygen comments to some classes, and fixed several doxygen warnings. Test for _WIN32 rather than WIN32 (util, osd). . In C++17 mode, WIN32 is no longer a predefined macro, although various things in 3rdparty define it to maintain legacy support. We're better off moving forward anyway for when WIN32 disappears entirely. WIN32 is not a reserved name, while _WIN32 is, starting with an underscore follwed by an uppercase letter. . Prevent UI file select menu from crashing in error cases where no files can be found (ui\filesel.cpp) . Removed VISIBLE_SOUND_OVERDRIVE compile-time option in favor of enabling the red overdrive border when speaker_report is non-zero (ui\ui.cpp) . Use std::optional to make code clearer (util\unzip.cpp) . Moved endianness type into lib\util header (lib\util\endianness.h; scripts\src\lib.lua, cpu\mips\mips1.cpp, emu\debug\dvmemory.cpp, emu\emucore.cpp/h, emumem.h, emumem_mud.cpp/h, memarray.cpp, mame\luaengine_mem.cpp and tools\unidasm.cpp) . Fixed recently-introduced path-trashing bug in zippath_resolve (util\zippath.cpp) . Update css for sphinx_rtd_theme to latest version, which includes selectors missing from old version (docs\source\techspecs\poly_manager.rst, docs\themes\sphinx_rtd_theme\static\css\theme.css). Update the RTD theme to the 1.0.0rc1 release. I noticed no issues building docs with this, and it includes sphinx 4 CSS fixes. . Convert JED, PLA and JEDBIN parsers to (mostly) use ioprocs instead of raw memory interfaces. . MiniMAWS: Better equality for devices (scripts\minimaws\lib\dbaccess.py and wsgiserve.py). Made table sort widgets (and the code behind them) less ugly. Added disclosure triangle controls to many sections (scripts\minimaws). . Disable a validity check using an MSVC language extension when using Clang in MSVC ABI mode (emu\validity.cpp). Disable broken validity tests when detected (libc++ 6 std::is_invocable_r doesn't work on MFP for incomplete class) (emu\validity.cpp). - VGM player: Added 31 new entries (hash\vgmplay.xml) - Compiling . Fixes for building with Clang 12.0.1 on Windows (src\3rdparty.lua, osd\windows.lua and input\input_dinput.cpp/h) . Do not build with -m64 on riscv64 (makefile) . Use std::clamp for clamping (sound\disc_sys.hxx and sound\ymz770.cpp) . Reduced repeated directory walking in cleansrc target (substantially improves speed of building the target on Windows) (makefile). - Debugger . Octalize watchpoint hit message for memory spaces defined as octal . Initialised m_readbuf_state on construction (debugger\debuggdbstub.cpp) . Make debugger 'out' command step over return delay slots on SH architectures (debug\debugcpu.cpp and sh\sh_dasm.cpp) . Fixed suppressing trailing whitespace in copied text on completely blank lnes (most noticeable for the console view) (debugger\qt\debuggerview.cpp and win\debugviewinfo.cpp). 0.235 - New games: Paris Dakar (31/03/87, Spanish) - New Working games: Operation Tiger - New Non-Working games: Basket, Baby Fruits (100 pts version), Dracula's Castle (Magnet System), Multi Baby, Radikal Darts (Diana Version 7.29.25), Soreike! Anpanman Popcorn Koujou 2 (Rev C), Speedway and Zelos (Japan, main unit) - New clones: Air Inferno (World), Baby Fruits (25 pts version), Bubble Buster (USA, B-System), Espgaluda II (2005/11/14 MASTER VER, newer CV1000-B PCB), Guitar Freaks 2nd Mix (GQ883 VER. AAA), Guitar Freaks 2nd Mix (GQ883 VER. EAA), Guitar Freaks 2nd Mix (GQ883 VER. JAA), Guitar Freaks 2nd Mix (GQ883 VER. KAA), Guitar Freaks 2nd Mix (GQ883 VER. UAA), Guitar Freaks 2nd Mix Link Kit 1 (GE929 VER. JAA), Guitar Freaks 2nd Mix Link Kit 2 (GC929 VER. JBB), Guitar Freaks Ver 1.01 (GQ886 VER. AAD), Guitar Freaks Ver 1.01 (GQ886 VER. EAD), Guitar Freaks Ver 1.01 (GQ886 VER. JAD), Guitar Freaks Ver 1.01 (GQ886 VER. UAD), Kangaroo (Loewen-Automaten), The Killing Blade / Ao Jian Kuang Dao (ver. 100), Mag Max (set 2), Police 24/7 (ver UAD), Police 911 (ver KAE), Rafflesia (not encrypted), Rescate Lunar (Spanish bootleg of Lunar Rescue), 'S.V.G. - Spectral vs Generation / Sheng Mo Shiji (M68k label V101HK) (ARM label V101HK, ROM 06/20/05 S.V.G V100)', Sea Wolf (Tecfri), Seoul Symphony (Bubble Symphony bootleg with OKI6295) and Time Crisis 3 (TST3 Ver. A) - New drivers: opercoin.cpp and radikaldarts.cpp - New devices: f2mc16, mb90610a, mb90611a and mb90641a - CPU . Fujitsu Micro F2MC-16: Emulated various additional instructions and modes. Fixed banking for direct addressing mode. Fixed semantics of CLRB and number of bytes consumed by SETB. Fixed mistake with calculating N and Z flags for SUB and CMP and writing incorrect result for SUB. Use INC(W)(L) A and DEC(W)(L) A pseudo-operations in disassembly. General cleanup: Added helper functions for increment and decrement operations and short direct banking. Rationalize use of temporary variables. Modify only lowest 8 bits of accumulator for XOR A, #imm8. Perform a 16-bit rather than 8-bit write for MOVW @RLx + #disp8, A. Use SSB instead of USB for @RW3 or @RW7 addressing when S flag is set. Fixed numerous flag calculations. Emulated many more opcodes. Added interrupt callback for debugger. Correct disassembly of MOVW io, A. Added "extra" I/O CPU (MB90611A F2MC-16) to Motocross Go! configuration . I386, MIPS and PPC: Removed a crash caused by the modulus operator (emu\divtlb.cpp). In the original code all values are signed integers, so m_dynindex would overflow and become negative, then the modulus of a negative value by a positive one would generate a negative result and finally the next array read would make the program crash. Also the maximum value plus one of m_dynindex is not generally a multiple of m_dynamic and this would cause a jump in the values of liveindex. . Texas Instruments TMS57002 'DASP': Genearate seaparate DASM header - SOUND . ICS2115 WaveFront Synthesizer: Improved sound using next-state logic - DEVICE . 3dfx Voodoo Graphics: Address minor coverity complaints . Atari DVG: Support XY flip (video\avgdvg.cpp) for 'Major Havoc - The Promised End' (HBMAME) cocktail mode . CHDMAN: Added a few more hard disk templates (Seagate, Maxtor, Micropolis...) . Floppy . Fixed segmentation fault saving FM track. Incorrect cell size for FM track results in empty bitstream that ultimately causes data.empty() to seg fault (formats\imd_dsk.cpp). . Don't assume string iterators can be indexed (reported by Coverity software) (formats\fsmgr.cpp) . SCSI Bus (new): Added initialization of sense buffer on reset (machine\nscsi_bus.cpp) . SMC91C9x Ethernet Controller: m_loopback_result needs to be a signed into so negative status codes remain negative. FDSE bit was masked out. When full duplex switched internet is active, deferrals and collisions not used. Implemented AUTO_RELEASE. . TC0780FPA Polygon Renderer: Fixed texture issues in Operation Tiger. Improved texture wrapping (video\tc0780fpa.cpp). - albazc.cpp, albazg.cpp, chanbara.cpp, crystal.cpp, jantotsu.cpp and tryout.cpp . Made use of object finders and other minor cleanups . Documented 'Test' dipswitch for Wully Bully - aleck64.cpp . Fixed handling of 8bpp framebuffer mode. Adjusted how VI scan-out functions. Swapped 'magic matrix' dither pattern axes to match hardware tests (machine\n64.cpp and video\n64.cpp). . N64 RDP: Fixed incorrect channel swapping on 32-bit resampled framebuffers. Temporarily adjusted framebuffer resampling to not exceed screen bounds in some games. . N64 RSP: Fixed LWV and VMOV behavior. Added reserved instructions V056, V057, V073 and VNULL. Removed unused DRC and SIMD support. General code cleanup. . N64: Fixed SP DMA behavior based on hardware tests. Pass K4 and K5 factors to threaded drawing code. Fixes black geometry in (MESS) Conker's Bad Fur Day. - clshroad.cpp . Added tilemap color bank, fixes lightning flashing and color cycling for Fire Battle. . Hand-tuned all clock frequencies for clshroad and halved vblank irq rate, syncing video and sound timings in logical sense. Minor realign documentation. - cv1k.cpp: Replaced clone 'Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER)' program ROM with clean dump, previous was dumped from upgraded futari15 PCB and contained trailing garbage. - megasys1.cpp . Documented different clone 'P-47 - The Freedom Fighter (Japan)' ROM board configurations . Correction to the audio CPU memory map and verified that clone 'E.D.F. : Earth Defense Force (bootleg)' has an undumped PIC. Verified XTAL and clock. . Dumped Peek A Boo Japan 1.1, matches parent set. . Standardized PROM locations for games running on 1A board. - mermaid.cpp . Added missing items to state saving . Updated to use measured clock and marked Mermaid and clone as imperfect graphics. Note: Incomplete GFX emulation in Mermaid (see MT07985 and MT08000). - namcofl.cpp: Fixed network status error, this also fixes the paralyzed flagman in Final Lap R (ID 08042). - naomi.cpp: Documentation misc additions. Correct PIN number for mask ROMs on 171-8132B carts. Sorted games by year/number. - seibuspi.cpp: Added/Fixed notes for Jumper JP1 - ssfindo.cpp . Preliminary QS1000 hook up. There seems to be a bug in the ARM_VIDC20 device that causes static/bad sounds. Just set the related volume sliders to 0 to hear the QS1000. . Hooked up DIPs for Pang Pang Car. Note: Pang Pang Car uses the VIDC internal DAC for SFX and the QS1000 for music. It's configured to use the undumped internal ROM. - timelimt.cpp: Halve maincpu NMI rate and fixed spriteram out of bounds access (ID 08046). Note: PCB output video confirms that the enemies in Progress move too fast in MAME (https://youtu.be/3MX_qCf_no0). - viper.cpp . Added audio support, updated inputs and improved default NVRAM contents. Updated compatibility lists, added NVRAMs, added more inputs and per-game DIP switches. Fixed port DIP location values. Added comment about Boxing Mania's pad controller. . Fixed MAME closes with error when pressing F3 at the 'DISTRIBUTION ERROR' screen in Police 911 (ID 07002). - 18 Wheeler: Dumped earlier/prototype Sega 837-13844 JVS I/O board rom epr-21868p.ic7 - AGEMAME: Added missing sound roms for 'James Bond (Maygay) (M1A/B) (set 1)' - Champion Base Ball Part-2: Mapped some areas and added some logging for clone Taikyoku Base Ball (ID 08053) - Dino Dino: Gets to the ROM error screen. The first few hundred bytes don't decrypt correctly. - Dock Man: Fixed down button for clone El Estivador (Spanish bootleg of Port Man on Galaxian hardware) (ID 08051). Not 100% the same as clone Port Man (bootleg on Moon Cresta hardware). - Enigma II: Minor updates to DIP locations - Games Family: Improved notes. Added new BIOS version (award_i6a6ixe19.bin). - Ginga NinkyouDen: Fixed missing PCM samples (ID 08050) - Knuckle Joe: Added sprite layer clipping. Fixed off-by-1 with sprite layer clip. - Motocross Go!: Added "extra" I/O CPU (MB90611A F2MC-16) to configuration - The Ninja Kids: Fixed default 'Lives' dipswitch to 3 (matches all OFF convention) - One + Two: Derived frequency from XTAL present on PCB - Operation Tiger . Fixed driver lockup issues and improved tilemap emulation . Fixed texture issues and improved texture wrapping (video\tc0780fpa.cpp). Fixed save states (Game now playable). - Royal King Jang Oh 2: Added banking. Almost playable, but bad colors. - Super Chexx: Map some memory - Super Glob: Swap ceiling/call elevator button assignments on clone Beastie Feastie to match Super Glob/The Glob - Tumble Pop: Added preliminary OKI hookup for clone Tumble Pop (Playmark bootleg) - Twin Bee Yahhoo!: Made 'Twin Bee Yahhoo! (ver JAA)' parent of Magical Twin Bee as the latter has substantial content removed rather than being localised, making it less complete. - Wiping: Convert to Xtal and added tentative screen raw parameters. Make custom audio to actually not divide internally by 2 (audio\wiping.cpp). - Yori Jori Kuk Kuk: Got game to boot, left as not working as it needs a ROM patch for now. - Yuuyu no Quiz de GO!GO!: Added 'AllowContinue' dipswitch - Fixed rom names in megasys1.cpp - Dipswitch fixes in crystal.cpp, enigma2.cpp, seibuspi.cpp, ssfindo.cpp, viper.cpp and taito_f2.cpp - Description changes of Code One Dispatch Ver 1.16 (ver UAB), Code One Dispatch Ver 1.21 (ver UAD), Espgaluda II (2005/11/14 MASTER VER, original CV1000-B PCB), Jurassic Park 3 (ver UBC), Keisatsukan Shinjuku 24ji (ver JAE), Mag Max (set 1), Mini Guay VD, Peek-a-Boo! (Japan, ver. 1.1), Mocap Boxing (ver AAB), Police 24/7 (ver EAD), Police 24/7 (ver EAD, alt), Police 911 (ver AAC), Police 911 (ver AAE), Silent Scope Fortune Hunter (ver EAA) and Soreike! Anpanman Popcorn Koujou (Rev B) - Renamed (ainferno) to (ainfernou), (espgal2) to (espgal2a), (gtrfrks) to (gtrfrksc), (gtrfrksa) to (gtrfrksac), (gtrfrksj) to (gtrfrksjc), (gtrfrksu) to (gtrfrksuc), (p911e) to (p911ed) and (p911uc) to (p911ac) - MAME . VIDEO RENDERING SYSTEM . Fixed automatic sizing of snapshots/recordings (emu\render.cpp). This fixes bad scaling on snapshots and recording when using -uesx and forced scale factors. . INPUT: Slightly cleaned up OSD input modules. Removed support for DirectInput 7 and earlier. It hasn't been tested in years, and it's not relevant on any supported OS. DirectInput is effectively finalised at version 8 and is unlikely to get an API update in the future. Use more string[_view] and fewer C strings and tightened up scope of a few things. . 3rdparty . Updated BGFX, BX and BIMG to latest. . BGFX fixes for various backends. Fixed palette and UYVY conversion in all backends. Fixes rendering for Laserdisc games is flawed (ID 07760). Fixed a typo in render\bgfx\targetmanager.cpp, thanks LN for the heads-up. . Applied srcclean to JSON files in BGFX subtree . Revised BGFX fs_blit_palette16 to not use pixel rounding. Fixes issues in Car Polo, Knuckle Joe and others. . OSD_WINDOWS isn't a safe way to detect Windows target, and OSD_* macros must not be used outside libocore/libosd (util\zippath.cpp). - ANDROID: Use log write calls directy on Android (osd\osdcore.cpp) - Compiling . Fixed OSD=mac compile (osd\mac\window.cpp and osd\modules\render\drawogl.cpp) . MSVC fixes to drivers\royalmah.cpp and stv.cpp . Fixed SDL UI choosing the root path (util\zippath.cpp) . Use std::clamp in more source files. Use C++17 library function for clamp (and std::min in one place where the value could not possibly be lower than 0 anyway) (video\3dom2_te.cpp). . Fixed a duplicate #include (plib\pfunction.cpp) - Debugger . Updated debugimgui to compile with latest imgui . Debugger-related feature removals and cleanup: Removed the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint. Removed the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.). Removed the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface. Changed the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index. Removed some obsolete watchpoint-related definitions from machine.h. . Substitute strongly typed enum for magic numbers specifying data format (debug\dvmemory.cpp). Fixed exception in debug memory viewer selecting a floating point format when the number of chunks per row is too small (debug\dvmemory.cpp). 0.234 - New games: Runaway (Sun Electronics, Japan) - New Working games: Pac-Carnival and VS Mahjong Triangle - New Non-Working games: Olimpic Hockey (EM Bubble Hockey, set 1), Same Same Panic, Super Mario World - Mario Undoukai and Terebi Denwa Doraemon - New clones: Armored Warriors (Brazil 941024), Gunbarl (Japan, GNB1/VER.A), Magical Twin Bee (ver EAA), Nandemo Seal Iinkai (alternate ver 1.0), Nandemo Seal Iinkai (Astro Boy ver. 1.1), Olimpic Hockey (EM Bubble Hockey, set 2), Silent Scope (ver UAD, Ver 1.33, GQ871 video board), Silent Scope 2 : Fatal Judgement (ver UAB, Ver 1.01, GN715 video board), Silent Scope 2 : Fatal Judgement (ver UAC, Ver 1.02, GN715 video board), Sky Shark (bootleg) and Space Mission (SegaSA / Sonic, Spanish bootleg of Scramble) - New AGEMAME games: Phantom Pays Classic (0101003V, NSW/ACT) and Rainbow Warriors (0101132V, NSW/ACT) - New drivers: banprestoms.cpp - New devices: i8744 and te7751 - CPU . AM9517A: Setting mask bits also sets status - SOUND . Biquad Filter: Added a differentiator bandpass filter primitive (sound\flt_biquad.cpp) . FM core . Save busy end time (sound\ymfm_mame.h). Fixes music stucks in all games/systems using OPM/N FM (ID 08018). . Removed dead code in MAME interface. Removed ay8910.h include from sound\ymfm_mame.h and added it to places that still need it. . Sync with upstream (3rdparty\ymfm\*). Fixed LFO disable on YM2151. Fixed swapped lower nibbles for 12-bit PCM on OPL4. . Return masked status from set/reset function (ymfm\src\ymfm_fm.h). Fixes missing voice samples in Fighting Soccer (ID 08034). . Allow PCM writes if new2flag is set, even if newflag is not (YMF278B; ymfm\src\ymfm_opl.cpp). Fixes no background music in Alien Challenge during gameplay (ID 08033). . RC Filter: Renamed the filter types to be more consistent with regards to behavior: old LOWPASS_2C is now LOWPASS (to match the behavior of HIGHPASS); old LOWPASS is now LOWPASS_3R. . Yamaha SWP30 sound chip: Start implementing something remotely looking like envelopes (sound\swp30.cpp) - DEVICE . 3dfx Voodoo Graphics: Major Voodoo rewrite: Changed to use modern poly.h instead of polylgcy.h. Moved helper classes into separate voodoo namespace. Derived device classes from video_device_interface. Split classes so that later versions derive from earlier versions. Created device maps to be directly included. Redesigned register mapping to use helper classes and delegates. Rewrote rasterizers to use C++ templates instead of macros. Added logic to compute equations for color/texture combine units. Added special generic identity-texel rasterizer cases. Removed pipeline stalls on texture and palette changes. Removed pipeline stalls on most all parameter changes. Generally re-thought and cleaned up logic throughout. Parameterized cycle stealing on status reads; updated all existing voodoo consumers to configure it as it was before. Restore some cycle stealing on vretrace to allow San Francisco Rush to boot. Increased vretrace cycles to 2 so mace will boot again. Added missing rasterizers for later gtfore games. Removed outdated comments. Improved LOD calculation accuracy. Removed stw_helper as any benefit it provides is within the noise. Improved pixel pipeline throughput for LFB writes. Helps gtfore and related games. Improved fidelity of synchronization points. Added synchronization back to NOP to fix flicker in gtfore06. Fixed dither subtraction. Fixes squares around balls in Virtual Pool. Return 0 on invalid reads (video\voodoo.cpp), seems to fix Funky Ball. Improved logging of unexpected accesses to include register name. . Cassette tape image: Don't construct string from nullptr. Note that std::string() was tried but somehow caused another bug (tape preset as play was instead stopped) (formats\cassimg.cpp). . K001604 2D tilemaps + 2x ROZ: Added callback for vblank irq (video\k001604.cpp) . Namco C355 (Sprites) . Fixed handling of sprite attribute table index and sprite position (video\namco_c355spr.cpp), fixes missing sprites in Final Lap R. . Adjusted sprite attribute table index mask to accommodate 'J-League Soccer V-Shoot' . Use namco_c355spr_device built in sprite buffering to pevent flickering gfx in Suzuka 8 Hours 2 . Treat 'dy' as signed, seems a more logical solution to Final Lap R 'missing objects' and also fixes the flags on course select screen. . PCI: Added support for adding subdevice maps directly (machine\pci.h) . Polygon rendering: Various improvements: Exposed poly_array class for broader use. Changed poly_array to intelligently determine maximum size. Added logic to track multiple "last" instances in poly_array. Extended logic to support up to 16m work items. Removed MaxPolys parameter from poly_manager template. Added Flags parameter to poly_manager template. Added POLY_FLAG_NO_CLIPPING flag to remove clipping code when not needed. poly_manager now supports a MaxParams value of 0. Made paramcount a template parameter for render_* functions. Added reset_after_wait() method to be overridden by derived classes. Switched to using std:: helpers instead of internal methods. Removed useless dependency on screen_device. TRACK_POLY_WAITS now produces more complete statistics. Removed legacy implementation of polygon renderer (video\polylgcy.cpp). 'Early out of waits' if no outstanding work (video\poly.h). . K001005 Polygon Renderer: Major rewrite and documentation update (video\k001005.cpp): Implemented missing texture+gouraud polygon type. Implemented fog using correct parameters. Fixed lighting calculations. Implemented bilinear filtering in games that use it (Solar Assault and Operation Thunder Hurricane). Use templates for rasterizer code paths. Refactored polygon parser. Disable fog when using constant Z. . K056230 LANC: Clear network interrupt properly (machine\k056230.cpp), fixes screen flashing in ZR107 driver. . SMC91C9x Ethernet Controller: Reset should disable promiscuous mode. RCR - handle promiscuous changes, adjust soft reset handling. EPH_STATUS should be LINK_OK by default (previous code wouldn't set LINK_OK unless RX_EN is set but LANceGS won't set RX_EN unless LINK_OK is set). B0_BANK bits 4-8 are unspecified in the documentation but LANceGS expects a 3 (used in Card detection logic). MIR values depend on device type and resets when the mmu resets. Reading/writing the data register needs to be aware of 8-bit I/O. Calculate FCS. Removed WMS OUI filtering hack. - aristmk5.cpp: Updated comments and added some ROM labels - cedar_magnet.cpp, play_3.cpp and zpinball.cpp: Added working ADPCM sound to EFO ZSU (audio\efo_zsu.cpp) and Magnet System sound boards - cobra.cpp: Restore driver to somewhat working state. Adjust visible area to match the K001604. Added RAM for RF5C400 sound. Fixes Fighting Bujutsu doesn't get to the title screen anymore (ID 07174). - dangbar.cpp and namcos2.cpp: Removed YM2151 sound in Dangerous Bar. C121 custom isn't a rebadged YM2151 (custom logic for 6809 CPU). - dgpix.cpp: Added list of undumped games - expro02.cpp: Verified a BTANB: Fantasia and New Fantasia have a service mode but it doesn't work well (text is missing or replaced by garbage). This has been verified to happen with New Fantasia (1994 copyright) on a Comad 940630 PCB. - gaelco.cpp and wrally.cpp: Eliminated space.device() accesses in machine\gaelcrpt.cpp - gticlub.cpp and zr107.cpp . Clear network interrupt properly (machine\k056230.cpp), fixes screen flashing in zr107.cpp (ID 05617). Also fixes player vehicle in GTI Club and Jet Wave skips/jitters during the end sequence (ID 07432). . Fixed tilemaps and lockup issues (attotime => 15000) in zr107.cpp. Fixes Winding Heat hangs during race (sticky 3D graphics) (ID 07490) and the AI cars are always Toyota Truenos in standard mode (ID 06381). . Major K001005 Polygon Renderer rewrite: Implemented bilinear filtering in games that use it (Solar Assault and Operation Thunder Hurricane). . New EEPROM dumps for GTI Club and Operation Thunder Hurricane + clones. - ichiban.cpp: Very minor comment updates - m62.cpp: Use raw parameters for screen - magic10.cpp: Split in subclasses, used arrays. Added ticket and hopper devices. - megasys1.cpp: Adjusted ROM area size for type A main CPU and added RAM mirror for audio CPU (verified on hardware) - model1/2.cpp: Fixed MB86233/4 TGP flags behaviour on -0, seems to fix Virtua Fighter and Motor Raid collision detection (ID 07801). Refined the patch to only do FP-type flag setting on FP operations (mb86233\mb86233.cpp). - namconb1.cpp . Adjusted sprite attribute table index mask to accommodate 'J-League Soccer V-Shoot' (video\namco_c355spr.cpp) . Added Namco posirq kludge for Nebulas Ray to prevent a bad line on the right of the screen and some stars don't scroll correctly (ID 06666). - namcos2.cpp . Use extra bit on x coordinate (video\namcos2_sprite.cpp), prevents large oversized bad sprites in Final Lap 2/3 and Suzuka 8 Hours. . Added Namco posirq kludges for Burning Force to prevent a bad line on horizon (ID 05261) (ID 06944) and for Suzuka 8 Hours 2 tunnels (see 2nd attract demo). - nss.cpp, sfcbox.cpp and snesb.cpp: Use int8_t instead of old MAKE_INT_8 macro (MAKE_INT_8 fails on GCC/ARM) (cpu\spc700\spc700.cpp) - royalmah.cpp: Preliminary banking for chalgirl, mjsenka, mjyarou and clone mjyarou2. Girls now appear. These games don't appear to set the palette bank, so they all have bad colors. - seattle.cpp: Prevent lockups by disallowing 0-duration timers (machine\gt64xxx.cpp) - turbo.cpp: Added subclasses, input/output finders and save state preparation. - viper.cpp: Dumped DS2430 and M48T58 for Mocap Golf and Silent Scope Fortune Hunter - Alien Challenge: Allow PCM writes if new2flag is set, even if newflag is not (YMF278B; ymfm\src\ymfm_opl.cpp). Fixes no background music during gameplay. Fixed also way overdriven volume. - Batman: Offset layers to align with real PCB videos. Fixes glitch on some of the Batman ending screens (ID 02356). - Bowling Try!: Extensive QA notes, make it to populate display list for the science. - Chanbara: Render low priority sprites - Crush Roller: Redumped clone Painter (hack of Crush Roller) - The Destroyer From Jail (Korea): Support the DAC samples. Better balance, don't mute DAC when NMI disabled, speed up Z80 so it doesn't bog down. Verified DIPs against manual and removed MACHINE_IMPERFECT_SOUND flag. - Disco Boy: Fixed tile banking (boss stages) in clone Disco Boy (Promat license?). - Final Lap R . Fixed handling of sprite attribute table index and sprite position (video\namco_c355spr.cpp), fixes missing sprites in Final Lap R (Objects in the side of the track are not shown (ID 05358), AI cars are never reflected in the rear mirrors (ID 05978) and corrupt graphics (ID 06904)). . Treat 'dy' as signed (video\namco_c355spr.cpp), seems a more logical solution to finalapr 'missing objects' and also fixes the flags on course select screen. - Funky Ball . Implemented timer. Found a reference to 32539 in the code that looks to be a reasonable guess at the timer frequency. Return 0 on invalid reads (video\voodoo.cpp), seems to fix Funky Ball. Improved logging of unexpected accesses to include register name. . Added KS0164 sound cpu - Gyruss: Fixed comment image hashes to match latest offering (Gyruss diagnostic rom) - Heroine's Memory: Some basic work to make it display something. Fixed error in GFX ROM loading. Map TE7751 I/O expander. - The Irritating Maze: Added newer Universe BIOS versions, this allows the Japanese version to be seen by switching the region and joystick play using a cheat although 2.3 and later also support trackball play. A joystick is still required for setup and to use the in-game menu. - Joker Master: Dumped PROMs and PLDs for clones Poker Master (ED-1993 set 1) and (ED-1993 set 2) - Mahjong Shiyou: Got game to a somewhat playable state. Colors are bad and it's missing the audio CPU + MSM5205 hook up. - Metal Slug 4: Added 'Noise Factory' as additional manufacturer (ID 08027) - Midnight Run: Fixed ROM loading for clone Midnight Run: Road Fighter 2 (AAA, Asia v1.10, newer sound program), game now boots. - Pac-Carnival: Fixed address map and added Bet 12 button (Game now playable) - Runaway (Atari, prototype): Merged video code into main driver file, split state classes, reduced a bit of redundancy, eliminated runtime input tag lookups and generally tidied up code. - Sengoku no Jieitai: Changed game title of 'No Man's Land' to 'Sengoku no Jieitai' (ID 08023). Note: This set appears to be the original Japan set. In Japan the game was called 'Sengoku no Jieitai'. "No Man's Land" was the overseas title. Videos from the Japan PCB match the set in MAME. - Shooting Zone: Made the timer side show something. Added SMS side. Somewhat playable but needs more work. - Sky Soldiers: Demoted game to MACHINE_UNEMULATED_PROTECTION flag since MCU actually controls bosses time out behaviour - Sonic Blast Man: Named a couple of inputs - Sonic Blast Man's Janken Battle: Map TE7751 I/O expander and some RAM. Tentatively hooked up most devices. Attract mode runs fine but need hopper emulation before it can be playable. - Space Harrier: Dumped 315-5163A I8751 MCU - Super Slam: Try to fix graphics (ID 08030) - Suzuka 8 Hours 2: Use namco_c355spr_device built in sprite buffering to pevent gfx flickering - Unknown Cointek game: Minor update to the preliminary decryption - VS Mahjong Triangle: Allow comms to actually work so that game can be coined up properly from either side. Added NMI acknowledge and NVRAM clear using SW2. Fixed coin input polarity, gal B display and flip screen behaviour. - Xyonix: Removed tagmap lookups and used logmacro. - Fixed rom names in expro02.cpp, hornet.cpp, msisaac.cpp and pacman.cpp - Dipswitch fixes in funkball.cpp, magic10.cpp, royalmah.cpp, sbmjb.cpp, segas16b.cpp, shtzone.cpp, taito_b.cpp and turbo.cpp - Description changes of Nandemo Seal Iinkai (Astro Boy ver. 1.0?), Runaway (Atari, prototype), Sengoku no Jieitai, Sonic Blast Man's Janken Battle (main ver. 1.1, video ver. 1.0), Spider (Buena Vision) and Tapper (Budweiser, 1/12/84) - Renamed (rainwrce) to (rainwarrce) and (roboarma) to (roboarmya) - MAME . VIDEO RENDERING SYSTEM . Correctly apply -keepaspect with -unevenstretchx/y. Correctly apply -keepaspect with -unevenstretchx/y. Initialize window at the correct size when -intscalex/y is used. Get correct window size upon maximizing/minimizing with integer scaling (emu\render.cpp). . Improved min/max for SSE4.1+ and scale+clamp operations for all (video\rgbsse.cpp). . Made palette expansion constexpr and added argbexpand function (video\rgbutil.h). . MEMORY SYSTEM . Removed endianness template parameter from handler_entry_read, handler_entry_write and closely related classes (emu\emumem.*). This appears to substantially reduce compilation time and binary size without too much impact on critical paths. The only critical-path parts really touched by this are probably handler_entry_read_units::read and handler_entry_write_units::write, which no longer need a branch on descriptor endianness for the downcast. The other instances of where the endianness now needs to be fetched from the address space are practically all in constructors, which probably don't get called too often except in drivers where the memory map is regularly rewritten (e.g. segas16b.cpp); even then the performance impact probably isn't huge. . INPUT . API cleanups (emu\input.cpp and util\unicode.cpp) . Allow controller files to override input sequences for inputs that don't use defaults, and to override the toggle setting for digital inputs (emu\ioport.cpp) . Expose configuration level (mostly matters for controller files), improved verbose diagnostic messages, and moved a few things out of the global and preprocessor namespaces (emu\config.cpp). . Added documentation for some controller configuration file features (docs\source\advanced\ctrlr_config.rst). The device mapping feature documentation will be merged in at some point. . List shortnames of subdevices that have ROMs as part of -listroms header (mame\clifront.cpp) . Changed osd_ticks to use QueryPerformanceCounter on Windows since the mingw std::chrono::high_resolution_clock is anything but (osd\osdcore.cpp). . Multi-Language: Updated Brazilian Portuguese translation . Filling out missing hashes for commented ROM_LOADs when known . Fixed verbose printf (emu\softlist_dev.cpp) . hiscore.dat update (plugins\hiscore\hiscore.dat) - VGM player: Added 22 new entries (hash\vgmplay.xml) - Compiling . Removed some tag lookups (bfm_ad5.cpp, bfm_sc5.cpp, gamtor.cpp, jpmsys7.cpp, seta2.cpp, machine\mcf5206e.cpp and machine\lpci.cpp) . Disable another MSVC warning (C4611) that is known to be noisy (and which showed up with the recent setjmp workaround). . Fixed Visual Studio case with displaced object base (internal representation seems to have drifted since it was originally written) (util\delegate.h). - Debugger . Fixed mount and create image dialogs (debugger\debugimgui.cpp) . Fixed building mametest (tests\lib\util\options.cpp) 0.233 - New games: Invinco / Car Hunt (Germany) - New Working games: Final Lap 3 (bootleg) and Guttang Gottong (bootleg on Galaxian type hardware) - New Non-Working games: Driving Simulator, Fortune Wheel, Play Sonic 4, Super Chexx (EM Bubble Hockey), VS Mahjong Triangle and Zooty Drum - New clones: Aliens (World set 4), Armadillo Racing (Rev. AM2 Ver.A, World), The Astyanax (mask ROM version), Asura Buster - Eternal Warriors (USA), Asura Buster - Eternal Warriors (Japan, set 2), Ball Boy (3 players), Battle Arena Toshinden 2 (Euro 951124), Battle Arena Toshinden 2 (Japan 951124), Crazy Kong (SegaSA / Sonic bootleg), Exerion (Assa, bootleg), Gals Panic S - Extra Edition (Korea), Karate Champ (Tecfri bootleg), Mini Money (set 2, v1.5?), Mini Money (set 3, v1.4?), Nitro Ball (World, set 3), Ojanko Club (Japan, Program Ver. 1.3, set 2), Painter (hack of Crush Roller), Scorpion (Mar 24, 1992) and Silk Worm (bootleg, set 2) - New PinMAME games: Bushido (set 3), Jurassic Park (USA 3.07, display A4.00) and La Rana - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Titan (TourVisión PCE bootleg) (1991) - New drivers: fwheel.cpp, galaxian_rockclim.cpp, plsonic4.cpp, schexx4gen.cpp, segas18_astormbl.cpp and vsmjtria.cpp - New devices: floppy_525_vtech, hd6435348, hd6475208, hd6475368, lrk331, pana_ju_363 and sega837_14438 - CPU . Analog Devices ADSP21062 'SHARC': Cycle-based DMA. Added support for write stalling. Re-enable SHARC recompiler for Gradius IV. . Hitachi HD64x5xx8 (H8/5xx): Added mode control and EPROM variant types - SOUND . Ensoniq ES5503: Bits 0 and 6 are always high for this register . Epson 7910 Melody: Added placeholders for missing Epson 7910 Melody ICs to nextfase, pleiads, rockclim and tattack. . FM core . Some progress on OPZ (ymfm_opz.cpp). Fixed OPZ fine tuning and envelope shift (ymfm_fm.ipp). Now pretty much all the (MESS) TX81Z built-in instruments sound reasonable. . Improved OPQ behavior for timers and register access (ymfm_opq.cpp). Added YM3533 device and use that instead of YM3806. Don't mask off top bit of octave for OPQ (ymfm_opq.h). . Match OPN LFO frequencies to hardware measurements (ymfm_opn.cpp). Improved OPQ detune, reverb and KSR (ymfm_opq.cpp). . Fixed panning calculations in YMF278B OPL4 (ymfm_pcm.cpp). Make OPQ reverb less ridiculous (ymfm_opq.cpp). . Fixed reporting of ADPCM-B end-of-sample (ymfm_opn.cpp). Seems to fix background music has missing parts in Metal Slug (ID 08006); hopefully will fixed other NeoGeo issues as well. . Play ADPCM-A samples through the end of the end block inclusive (ymfm_adpcm.cpp) . Gottlieb Sound: Minor updates to handlers. Save some more members (audio\gottlieb.cpp). . Namco C140: Fixed regression with NamcoSystem 2 Assault engine noise. Correct offset range when reading keyon status (sound\c140.cpp). . Namco C219: C219 has less voice regs, don't call c140_r. . Sega 315-5124 SMS1 VDP: Fixed color (video\315_5124.cpp). Note: Blue channel is non-linear, verified from die shot reference: https://www.retrorgb.com/sega-master-system-blue-channel-mysteries-further-uncovered.html . Votrax SC-01: Tell the device's parent when the IRQ line is lowered. Improves (MESS) Type 'N Talk. - DEVICE . 3dfx Voodoo Graphics: Fixed Hornet games POST crash (video\voodoo.cpp) . Atari DVG: Don't interfere with the slapstic on 'The Empire Strikes Back' (video\avgdvg.cpp) (ID 08008) . Atari Slapstic: ALT_COMMIT alt4 must be done with /cs . Epson RTC-65271 RTC: Allow for default NVRAM data initialization using external data . Floppy . Reorganized the floptool code, added some write support (tools\floptool.cpp). . Experimental flux viewer, activate by #define FLUX_SCREEN 1 in imagedev\floppy.cpp. Disable new code when FLUX_SCREEN is #defined as 0 (and thereby work around crash with some disks). . Changed the formats from an intrusive list to a vector . Test to make sure the floppy drive has room for all of the tracks (formats\wd177x_dsk.cpp) . Removed tests for head count. Added track count test in check_compatibility() becuase it will segfault if disk drive doesn't have enough tracks (formats\wd177x_dsk.cpp). . Wrap the decoding state in a sub-structure (formats\ipf_dsk.cpp) . Removed legacy pool allocator usage (formats\flopimg.cpp). Removed legacy object pool usage from tools\imgtool. . Hitachi HD61830B LCD Controller: Fixed character blink mode. When Cursor=Off and Blink=On, the controller is in "Character Blink" mode, according to the data sheet. This means that the character cell at the position of the cursor is turned fully ON at a 50% blink duty cycle. Verified on a device with a real HD61830 (Atari Portfolio). Fixed cursor in d2. . K001604 2D tilemaps + 2x ROZ: Major rewrite and documentation update. Simplified memory layout. . K037122 2D Tilemap: Better RAM layout logic. Implemented ROZ and scrolling. Added tilemap origin. . MC68681 DUART: Wait until transmitter is actually empty to set TxEMT . MIDI In image device: Added support for providing a .mid file as input (imagedev\midiin.cpp) . Z80 PIO: Changing the vector neither enables nor causes an interrupt. Fixes crash in (MESS) Microbee 256TC when F2 pressed. . Z80 SCC Channel: Implemented local loopback - alg.cpp: Fixed company name, it's "Picmatic", not "Web Picmatic". - aristmk5.cpp: Added a couple of alternate versions of the setchips - atetris.cpp: Fixed regression in clones Tetris (bootleg set 2) and (bootleg set 3) (ID 07893). Note: Though of course none of the bootlegs have the actual SLAPSTIC, at least some appear to have simulated it using TTL and PLDs. - ddribble.cpp, finalizr.cpp and ironhors.cpp: Minor cleanups - dkong.cpp and ladybug.cpp: Clean up machine\latch8.cpp a little: Making the bit read functions honour the XOR mask is easy in theory, but dkong.cpp is doing scary things with the XOR mask and bit read handlers on one of its latches, so it could end up breaking something. Honouring the read callbacks would add two tests to each of the bit read functions, which could hurt performance. The whole design of this device seems somewhat incoherent. - exidy.cpp . Redumped clone Spectar (revision 1?), confirmed 2 PROMs and the third was missing. . Replaced bad sound ROMs for Pepper II - firebeat.cpp: Added default unlocked RTC files - galaxian.cpp: Started splitting up the state class to encapsulate game-specific stuff - gameplan.cpp . Fixed videoram readback (video\gameplan.cpp). Fixes graphics corruption during rainbow screen in Leprechaun and clones (ID 03067). . Keep VIA clocks consistent with CPU clock in Leprechaun - hornet.cpp . Clear interrupts on sound cpu reset. Fixes sound devices fail self test in all games (ID 07968) . Fixed Hornet games POST crash (video\voodoo.cpp). Fixes Gradius IV crash during Test Mode Rom Check with -video d3d (ID 06605). . Better RAM layout logic for K037122 ansd implemented ROZ and scrolling. Fixes 'Monitor Type' dipswitch 24KHz and 15KHz display issue (ID 00125). Fixes 2D graphics glitches in NBA Play By Play (ID 07256). . Added tilemap origin to K037122. Fixes 'Screen Flip (V)' dipswitch doesn't completely flip text layer in Gradius IV (ID 06604). . Re-enable SHARC recompiler for Gradius IV - inufuku.cpp: Minor cleanups. Removed unnecessary VRAM read trampolines. Use buffered_spriteram16_device for buffered sprite RAM. Derive clocks from crystals. Reduced runtime tag lookups and unnecessary region size. Fixed naming and spacing. Use generic graphics layouts and fixed color usage of gfxdecode related to palette size. Restrict rowscroll to screen clipping rectangle. - ksys573.cpp: Changed ATAPI_CYCLES_PER_SECTOR from 5000 to 30000. This change fixes "CD-ROM DRIVE ERROR (-8)" errors in clone Drummania 2nd Mix. - ladybug.cpp: Added DIP locations - legionna.cpp: Fixed several incorrect dipswitches and added DIP locations to all games - mermaid.cpp: Support the masking effect (imperfectly). First implementation of the split-bg effect for Rougien (video\mermaid.cpp). - mitchell.cpp . Fixed 'TEST MENU' screen can't be accessed in clone Super Pang (World 900914, bootleg, set 1) (ID 08007) . Added dipswitches to clones Pang (bootleg, set 3), Pang (bootleg, set 5), Pang (bootleg, set 7), Super Pang (World 900914, bootleg, set 1) and Super Pang (World 900914, bootleg, set 2). - naomi.cpp: Added a new device for the Sega 837-14438 "SH I/O BD" hopper board (Kick '4' Cash and Shootout Pool Prize) - neogeo.cpp . Fixed reporting of ADPCM-B end-of-sample (ymfm_opn.cpp). Seems to fix background music has missing parts in Metal Slug (ID 08006); hopefully will fixed other NeoGeo issues as well. Play ADPCM-A samples through the end of the end block inclusive (ymfm_adpcm.cpp). . Play ADPCM-A samples through the end of the end block inclusive (ymfm_adpcm.cpp). Fixes sound isn't correct when players character (gravedigger) lands on platform or floor after a jump action in Nightmare in the Dark (ID 07996). - nwk-tr.cpp . Combined CG boards into single screen alternate frame rendering . Make LAN board act like other machines are disconnected (machine/konami_gn676_lan.cpp) - pasha2.cpp: Minor cleanups. Removed palette RAM trampolines, use XTAL for clock sources and bitmaps_ind16 and copybitmap for bitmap buffers - psikyosh.cpp: Updated comments based on PCB markings and marked games as MACHINE_NO_COCKTAIL. Because flip screen isn't support now. Added docs for ROM location/usage and Export name for daraku. Fixed fill value for empty ROM area. - seta.cpp . Fixed Clang error: [[fallthrough]] annotation does not directly precede switch label. . Fixed hiscore table is R/W from protection area in DownTown. Fixes high scores are reset to zero after entering a high score (ID 05385). - starwars.cpp: Don't interfere with the slapstic on 'The Empire Strikes Back' (video\avgdvg.cpp). Fixes game tends to soft reset during gameplay (ID 08008). - stv.cpp . Moved protection functions to driver . Redumped IC13 for Virtua Fighter Remix . Added preliminary 7-seg led support for Critter Crusher - taitosj.cpp . Used arrays, removed tagmap lookups and other minor cleanups. . Fixed collisions (video\taitosj.cpp). Fixes Tin Star when you go straight to the bottom right side of the screen, the character lays on the floor and cannot get up until after some time or a bullet hits you (ID 07000). . Added a postload so that savestates work - tourvis.cpp: Promoted Dragon Egg! to working (hash\pce_tourvision.xml) - tsamurai.cpp: Added DIP locations - Alien Storm: Re-worked clones Alien Storm (bootleg, set 1) and (bootleg, set 2), put in their own driver to study. This renders the tile strip backgrounds, making them a lot more playable. - Alpha Fighter / Head On: Use 'Space Attack / Head On' color prom for 'Alpha Fighter / Head On' too, since it's basically the same game. - Assault: Fixed regression with NamcoSystem 2 Assault engine noise (sound\c140.cpp). Fixes tank engine sound stops after less than 1 second after game starts (ID 07997). - Big Run: Dumped PROMs - Big Twin: Re-added unique input for clone Big Twin (No Girls Conversion) (ID 08016) - Chanbara: Swapped left and right joysticks (ID 08015) - Combat School: Converted driver to sublasses, views and (array of) finders. - Cosmo: Fixed colors to match hardware (RGB_3BIT -> RBG_3BIT) - Densha de GO 3! Tsukin-hen: Added controls - Dragon Unit: Changed manufacturer to Athena / Seta (ID 07993) - Dynamic Dice: Fixed sound regression - Final Lap 3: Allow clone Final Lap 3 (bootleg) to boot/run (custom bootleg protection) - Jackal: Avoided allocating memory in ROM regions and general cleanups. Needs proper K005885 device for further cleanup. - Jackpot (Ver 16.16L): Very preliminary text tilemap hookup, to show on screen where the boot stops. - Juno First: Fixed screen colour didn't change during key actions (video\tutankhm.cpp) (ID 07992). Note: The screen turns green when you shoot a bonus (a ball with bright spots), the screen turns red if you pick up the astronaut who escapes from the bonus ball and the screen turns blue when you die. - Locked 'n Loaded: Documented how to enter gun calibration screen - Loco-Motion: Moved clone Guttang Gottong (bootleg on Galaxian type hardware) from galaxold.cpp to galaxian.cpp. Improved graphics and inputs and promoted gane to working. - M-79 Ambush: Modernized interrupt and use raw parameters for screen - PinMAME . Correct dump for Come Back . Added gfx3 rom from 3.07 revision to clone Jurassic Park (USA 3.05, display A4.00) - Quartet: Update default button assignments on Quartet and clone Quartet 2 to match control panel (jump button to left of fire button) (ID 08003) - Rock Climber and Survival . Fixed Rock Climber sprite bank select. Reworked Rock Climber to be based on galaxian.cpp (was in galaxold.cpp). Demoted game to imperfect sound due to missing Epson 7910 Melody emulation. . Added DIP locations - San Francisco Rush 2049: Removed bogus button4. Fixes pressing Y on XBOX One controller or Logitech G920 also presses Keypad digit #4 in San Francisco Rush 2049: Special Edition (ID 07998). - Star Fighter: Dumped PROM - Super Butterfly 2000: Very minor start at descrambling - Super Chick: Fixed sound hookup. Force a different default palette so that we can see the details on the letter tiles (should make finding the banking easier). Further protection notes. Other protection(?) observations. Removed no longer needed hack. - Solar Assault: Fixed title screen - Tetris (Korean bootleg of Mirrorsoft PC-XT Tetris): Fixed drawing and added sound. Patch program bug. - Time Attacker: Identified all dipswitches, added DIP locations and save state support. - Unknown Sega gambling game (M1 Satellite board): Identify undumped ROM from "SYSTEM M1 COM" board - Wing War: Redumped rom epr-16951.4 for clone Wing War (US) - Fixed rom names in aliens.cpp, exidy.cpp, legionna.cpp, model1.cpp and vicdual.cpp - Dipswitch fixes in galaxian.cpp, galaxian_rockclim.cpp, ladybug.cpp, mitchell.cpp, ojankohs.cpp, segam1.cpp, seta.cpp, tattack.cpp, tsamurai.cpp and vicdual.cpp - Description changes of The Astyanax (EPROM version), Asura Buster - Eternal Warriors (Japan, set 1), Athena no Hatena?, Ball Boy (2 players), Battle Arena Toshinden 2 (Japan 951124, 32Mb mask ROMs), Battle Arena Toshinden 2 (USA 951124), Battle Arena Toshinden 2 (USA 951124, 32Mb mask ROMs), Cool Boarders Arcade Jam (Export), Dead Or Alive ++ (Japan/USA/Export), DrumMania (GQ881 VER. UAB) (ID 07989), The Fallen Angels (World) / Daraku Tenshi - The Fallen Angels (Japan), Flame Gunner (Export), Gals Panic S - Extra Edition (Europe, revision 1), Gals Panic S - Extra Edition (Japan, revision 1), Gals Panic S - Extra Edition (Korea, revision 1), Jurassic Park (USA 3.05, display A4.00), Ojanko Club (Japan, Program Ver. 1.3, set 1), Phoenix (G.G.I. Corporation, set 1), Phoenix (G.G.I. Corporation, set 2), Phoenix (G.G.I. Corporation, set 3), Phoenix (Irecsa / G.G.I. Corporation), Pleiads (Famaresa, Spanish bootleg), Sengoku Blade: Sengoku Ace Episode II (Japan) / Tengai (World), Shanghai Matekibuyuu (Japan), Silk Worm (bootleg, set 1), VS Mahjong Otome Ryouran (revision 1) and VS Mahjong Otome Ryouran (revision 2). - Renamed (adillor) to (adillorj), (asurabus) to (asurabusj), (asurabusa) to (asurabusjr), (pcnfrku) to (drmnu), (ts2) to (ts2ua), (ts2a) to (ts2u) and (ts2j) to (ts2ja). - MAME . VIDEO RENDERING SYSTEM . Fixed assertion failure with -D_GLIBCXX_ASSERTIONS (emu\rendlay.cpp) . Use setjmp/longjmp for libjpeg error unwinding (emu\rendutil.cpp). Apparently Linux AArch64 has issues with throwing exceptions across C function frames. . Removed some unneeded VIDEO_START_OVERRIDEs in atarig1.cpp, atarig42.cpp, blstroid.cpp, blueprnt.cpp, eolith.cpp, galaga.cpp, galspnbl.cpp, igs_fear.cpp, megaplay.cpp and vegaeo.cpp . MEMORY SYSTEM . Allow to know the currently selected entry (emu\emumem.h) . Correct logic in populate_mismatched_nomirror and populate_passthrough_nomirror. This fixes a bug causing watchpoints set on portions of the address space exceeding 16K to sometimes not fully cover the range (emu\emumem_hedr.ipp and emumem_hedw.ipp). . Initialized m_config in all situations (emu\addrmap.cpp) . UI . Added reset to default to BIOS selection menu (the one from the TAB menu, not the popup when starting a machine) (ui\miscmenu.cpp) . Allow saved states to be deleted from the internal UI (ui\state.cpp) . On input mapping menus, use UI left/right to switch between setting and appending to an input sequence (ui\inputmap.cpp and ui\menu.cpp). . PLUGINS . Strip CR characters showing at the end of each history.xml line under Linux (plugins\data\data_history.lua) . INPUT: Added setter for initial state (machine\input_merger.cpp) . Slots: Preserve configuration for slot cards when not selected. Slightly better test for deselected slot cards (emu\ioport.cpp). . Miscellaneous improvements for software lists: Show list name in software selection menu (machines have multiple lists). Actually report software list parsing errors during validation. Check that software list name attribute matches filename. Limit software list names to 24 characters - they're getting too long, and they need to be practical in command lines. . Removed leftover mame64 from docs (configuringmame.rst and usingmame.rst) . Multi-Language: Re-generate localisations. Updated Chinese (language\Chinese_Simplified and Chinese_Traditional) and Greek translations. - Compiling . Allow building without PulseAudio on Linux (makefile) . Fixed stupid warning (-Wno-unused-const-variable) (scripts\genie.lua) . Fixed PCAP builds . Added helpers for 64-bit count leading zeroes/ones (osd\eivcarm.h, osd\eminline.h). Fixed 32-bit GCC/Clang builds (osd\eigcc.h). . End the big-endian block in the right place, fixes FreeBSD section. . Eliminated remaining uses of auto_alloc and friends. Split off auto_alloc changes from deprecated branch. Make the keymap reader non-static so it can access the unique_ptr. Removed emualloc.cpp/h. . Retire legacy object lib\util\pool.cpp/h, removing vestigial references. - Debugger: Fixed sound_assert in debug builds (machine\netlist.cpp) 0.232 - New games: Cal Omega - Game 18.4 (Pixels), CEI 51.07 (CEI 906-III Poker), Dokaben 2 (Japan) and Mrs. Dynamite - New Working games: Arcadia (JPM), Cal Omega - Game 7.9 (Arcade Poker), Cal Omega - Game 9.4 (Keno), Cal Omega - Game 10.7c (Big Game), Cal Omega - Game 12.5 (Bingo), Cal Omega - Game 12.7 (Keno), Cal Omega - Game 13.4 (Nudge), Cal Omega - Game 14.5 (Pixels), Cal Omega - Game 16.8 (Keno), Cal Omega - Game 17.6 (Nudge), Cal Omega - Game 18.1 (Nudge), Cal Omega - Game 18.3 (Pixels), Cal Omega - Game 18.5 (Pixels), Cal Omega - Game 18.6 (Pixels), Cal Omega - Game 20.4 (Super Blackjack), Cal Omega - Game 20.8 (Winner's Choice), Cal Omega - Game 23.6 (Hotline), Cal Omega - Game 24.6 (Hotline), Cal Omega - Game 27.2 (Keno, amusement), Cal Omega - Game 27.2 (Keno, gaming), Cal Omega - System 903 Diag.PROM, Cal Omega - System 905 Diag.PROM, Indiana Jones (JPM), Jumping Beans (0100161V, NSW/ACT), Oxo Bingo (JPM), Quicksilver (RAL), Reel Money (JPM), Ricochet (JPM), Snakes & Ladders (JPM), Stardust (JPM), Wild King Club (JPM) and Wizard Of Odds (JPM) - New Non-Working games: Ajofrin City, Dangerous Bar, Multi-Action 7558 and Panic Shot Rockman - New clones: Alpine Racer (Rev. AR1 Ver.C, Japan), Basket Ball (8-way joystick bootleg of Arch Rivals), Cadash (Germany), Dance Dance Revolution Karaoke Mix (GQ921 VER. JBB), Diamond King (without Euro support), Exerion (bootleg, set 2), Percussion Freaks 2nd Mix (GE912 VER. AAA), Percussion Freaks 3rd Mix (G*A23 VER. AAA), Percussion Freaks 5th Mix (G*B05 VER. AAA), Percussion Freaks 6th Mix (G*B16 VER. AAA), Percussion Freaks 7th Mix (G*C07 VER. AAA), Percussion Freaks 8th Mix (G*C38 VER. AAA), Percussion Freaks 9th Mix eAmusement (G*D09 VER. ABA), Percussion Freaks 10th Mix eAmusement (G*D40 VER. ACA), The Pit Boss (M4A4), Player's Choice (M3C1), Puzzle Break (set 2), Raiden II (easier, US set 3), Spinal Breakers (US, prototype), Tech Romancer (Asia 980914), Thrill Drive (ver UFB), Time Killers (v1.20, alternate ROM board), U.N. Defense Force: Earth Joker (US / Japan, set 3), Warp-1 (Japan) and World Rally (Version 1.0, Checksum E586) - New PinMAME games: Pin Ball - Removed games: Bingo Circus (terminal) - New drivers: dangbar.cpp, missamer.cpp, psrockman.cpp and rfslotsmcs48.cpp - New devices: bingoct, crd254sh, h83040, h83041, h83042, k573kara, konami_gn676_lan, mockingboardd, namcos2_sprite_finallap and namcos2_sprite_metalhawk - New mame.ini options: share_directory (CORE OUTPUT DIRECTORY OPTIONS) - CPU . Data East DECO16: Added CPU16 disassembler (tools\unidasm.cpp) . Intel 80286: Clear m_fire_trap before interrupt (i86\i286.cpp) . Motorola MC6800: Account interrupt cycles for timer counter. Removed outdated logs. . Motorola MC68000 . Implemented FMOVEM mode 0b11. Since the two bits seem to have symmetry, it's odd this wasn't there before (m68000\m68kfpu.cpp). Should fix issues with (MESS) Domain/OS and NeXTSTEP emulation. . Support instructions with 80-bit FP immediate values (m68000\m68kfpu.cpp). Fixes 3D Atlas launch on (MESS) Macintosh LC III. . Backport FPU fixes from upstream Musashi (m68000\m68kfpu.cpp). - SOUND . Filtered DAC: Changed device description, it's not 1bit (sound\spkrdev.cpp). Note: The default is 1-bit, but can be customized with set_levels. . Hudson Soft HuC6280 PSG: Fixed C6280 volume envelope shape . Namco C140: Added sample status readback (sound\c140.cpp), fixes engine sound in Suzuka 8 Hours, Final Lap and Four Trax game series (ID 02778), fixes machine gun samples do not seem to play ingame in Steel Gunner 2 (ID 00774) and fixes missing sound effects like talking in Lucky & Wild and clone (ID 07772). . PulseAudio interface: Update build requirements for Ubuntu (docs\source\initialsetup\compilingmame.rst) . Refactor new FM engine into a 3rdparty library . Moved ymfm core implementation to 3rdparty/ymfm. Split out each family (OPM/OPN/OPL/etc) into its own source file. . Added preliminary OPQ and OPZ support, still WIP. Put all 3rdparty code into its own namespace ymfm. . Fixed various bugs reported in https://github.com/mamedev/mame/issues/8042 . Created interface class for communication between the 3rdparty engine and the emulator . Standardized MAME implementation of all Yamaha devices based on a template class . Created standard base class ym_generic that can be used when multiple YM chips are swapped in. . Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device. . Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off). . Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc). Switch to internal SSG for YM2203/2608/2610. Clean up code to determine the number of SSG outputs. . Fixed binding errors due to usage of class names that are no longer derived from related classes (2mindril.cpp, cpzodiac.cpp, fb01.cpp, slapshot.cpp, warriorb.cpp and zn.cpp) . I/O callbacks are now consolidated into a single read callback and a single write callback, with an access type specifier. . Added complete YMF278B support. Implemented YM278B vibrato and status register flags. Formally replace the old YMF278B engine with the one from YMFM. Rotated YMF278B outputs into a more logical order. . Fixed envelope rate computation. Renamed ymfm_interface::external_type to access_class and clean up the fallout. . Re-evaluted envelope calculations and 2x works better than the weird 15/8 before. Also changed the way FM resampling is computed to be more precise (and simpler). . Turned off extraneous debugging. Start of/reset to a null state with no loaded waveforms. Boost ADPCM-B volume by a factor of 2 to more closely match previous levels (ymfm_opn.cpp), fixes lower volume on parts of music in the NeoGeo games mslug, mslugx and garou. . Fixed OPL3 waveform 7 to better match hardware (ymfm_opl.cpp) - DEVICE . Floppy . Start block-devicing filesystem support. First steps on metadata and hopefully make GCC happier on enumerate (imagedev\floppy.cpp and tools\floptool.cpp). Temp hack to fix Clang compile (formats\fsmgr.cpp). Be stricter about types (tools\floptool.cpp). . Start of read support, experiements in directory tree reading and added file and resource reading (formats\fs_prodos.cpp). . Format/filesystem errors were printing the wrong argument (tools\floptool.cpp) . Namco C45 Road: Tweak road position in Final Lap/2/3, Suzuka 8 Hours/2 and Lucky & Wild to better match hardware videos (Four Trax is uncertain) (video\namco_c45road.cpp) . NB1412M2 Mahjong Custom: Don't return a bool for uint8 . PWM Display: Added separate handlers for matrix x/y sides (video\pwm.cpp) . RAM: Update RAM device notes. Set default fill value to 0xff instead of 0xcd (machine\ram.cpp). . Sega 315-5338A I/O Controller: Added command readback and more serial output commands. Also always output on port writes (machine\315_5338a.cpp). - aristmk5.cpp: Redumped Jumping Beans (Game now playable) and Super Bucks II and updated driver contents and layouts - atari_s1.cpp and atari_s2.cpp: Synced sets with PinMAME. Verified 20967-01 PROM dump. - calomega.cpp . Added support for extended graphics. Fixed cardbacks for 906-III games. Fixed Nudge Bingo graphics. Added hopper to the 906-III games. Fixed docs/technical notes. . Worked the analogic color system and adding the three R-G-B presets. Added the PORT_ADJUST for RGB in all games, defining the default values. . Inputs from the scratch for all the Pixels, Keno and Hotline games. Promoted to WORKING. Fixed Pixels games colors. . Connected System 903/904 PIA #0 IRQB line to CPU IRQ. Set a handler for System 903/904 PIA #0 CB1 line, as IRQ ack. . Added external keyboard controller (i8035 + i8251) for Keno Games, system 903. Added virtual clickable keyboard layout to keno games, necessary to get them working. . Added the following System 903 counters: coin in, coin out and optional (per game). . Fixed rotten/bad bits from the program ROM with educated guess to make Cal Omega - Game 7.9 (Arcade Poker) playable (ID 04186). Fixed inputs on Cal Omega - Game 7.6 (Arcade Poker). Now it's playable. Created proper inputs from the scratch for Cal Omega - Game 12.5 (Bingo). . Fixed inputs on Cal Omega - Game 8.0 (Arcade Black Jack). Redumped the Cal Omega - Game 20.8 (Winner's Choice). Reworked proper inputs. Specific inputs for games 12.8, 15.7, 15.9, 17.2 and 20.4. Promoted to WORKING. . Added hopper support to Cal Omega - Game 7.4 (Gaming Poker, W.Export). . Reworked inputs for Cal Omega - Game 14.5 (Pixels). Bypassed the checksum to get it working, and flagged as BAD_DUMP. . Promoted Cal Omega - Game 7.9 (Arcade Poker), Cal Omega - Game 9.4 (Keno), Cal Omega - Game 10.7c (Big Game), Cal Omega - Game 12.5 (Bingo), Cal Omega - Game 12.7 (Keno), Cal Omega - Game 13.4 (Nudge), Cal Omega - Game 14.5 (Pixels), Cal Omega - Game 16.8 (Keno), Cal Omega - Game 17.6 (Nudge), Cal Omega - Game 18.1 (Nudge), Cal Omega - Game 18.3 (Pixels), Cal Omega - Game 18.5 (Pixels), Cal Omega - Game 18.6 (Pixels), Cal Omega - Game 20.4 (Super Blackjack), Cal Omega - Game 20.8 (Winner's Choice), Cal Omega - Game 23.6 (Hotline), Cal Omega - Game 24.6 (Hotline), Cal Omega - Game 27.2 (Keno, amusement), Cal Omega - Game 27.2 (Keno, gaming), Cal Omega - System 903 Diag.PROM, Cal Omega - System 905 Diag.PROM to working - cyclemb.cpp: Removed MACHINE_IMPERFECT_SOUND flags in Cycle Maabou and Sky Destroyer - dragrace.cpp and sprint2.cpp: Added DIP locations - ertictac.cpp: Converted driver to use IOC and MEMC devices - gticlub.cpp, hornet.cpp, nwk-tr.cpp, zr107.cpp: Misc cleanups - hornet.cpp and nwk-tr.cpp . Extracted LAN board implementation from NWK-TR driver to a device (machine\konami_gn676_lan.cpp) and hooked it up to clone Thrill Drive (ver UFB). Updated hornet.cpp hardware infos. . Made use of arrays, kill trampolines and tag lookups and other minor cleanups. - itech32.cpp . Correct labels for clone Hot Memory (V1.1, Germany, 11/30/94) and Hot Memory (V1.2, Germany, 12/28/94). Verified the correct ROM board & ROMs for the Time Killers v1.00. Added PCB layout for the 3 known ROM boards for Time Killers. . Misc format & whitespace clean-up - jpmimpctsw.cpp . Promoted Arcadia (JPM) and 8x clones, Indiana Jones (JPM) and 11x clones, 'Oxo Bingo (JPM) (IMPACT) (OX6 L12) (set 1)', 'Oxo Bingo (JPM) (IMPACT) (OX6 L12) (set 2)', Quicksilver (RAL), Reel Money (JPM) and 3x clones, Ricochet (JPM) and clones, Snakes & Ladders (JPM) and clones, Stardust (JPM) and clones, Wild King Club (JPM) and clone, Wizard Of Odds (JPM) and clones to working. . Fixed Ace Of Clubs (Crystal) reel symbols - konamigv.cpp: Added hardware info for Tokimeki Memorial Oshiete Your Heart - m72.cpp: Fixed sound balance (FM output volume is louder than DAC output volume in previous behavior compared to real hardware). - merit3xx.cpp . Give CRT-350 games their own bank switch handler . Preliminary mappings, device additions and hook up ROM bank switch for Multi-Action 6710-13 - namcos1.cpp: Fixed abbreviated titles for Chou Zetsurinjin Berabowman (Japan, Rev C) and clone Chou Zetsurinjin Berabowman (Japan, Rev B), Pro Tennis World Court (Japan) and Pro Yakyuu World Stadium (Japan) and clones Pro Yakyuu World Stadium '89 (Japan) and Pro Yakyuu World Stadium '90 (Japan). - namcos2.cpp . Force Final Lap to use 32x32 sprite size for title screen . Added Namco C140 sample status readback (sound\c140.cpp), fixes engine sound in Suzuka 8 Hours, Final Lap and Four Trax game series (ID 02778), fixes machine gun samples do not seem to play ingame in Steel Gunner 2 (ID 00774) and fixes missing sound effects like talking in Lucky & Wild and clone (ID 07772). Removed imperfect sound flag for racing games. . Tweak road position in Final Lap/2/3, Suzuka 8 Hours/2 and Lucky & Wild to better match hardware videos (Four Trax is uncertain) (video\namco_c45road.cpp) . Use derived classes for Namco System 2 sprites, give Final Lap its own based on schematics showing 32x32 select is different. - neogeo.cpp: Boost ADPCM-B volume by a factor of 2 to more closely match previous levels (ymfm_opn.cpp). Fixes lower volume on parts of music in mslug, mslugx and garou (ID 07956). - snesb.cpp: Minor cleanups - taito_f3.cpp: Fixed off-by-1 with line clipping. Fixes a vertical line in the black screen of Arabian Magic that disappears when you enter the game just before round 1 starts (ID 00147). - tourvis.cpp: Cleanup hash\pce_tourvision.xml to match changes to hash\pce.xml. Be Ball and Gomola Speed do in fact match the only verified dumps in pce.xml. Old alternates in pce.xml appear to be bad dumps. - Bingo Circus: Converted terminal to a device, partially works now. - Bubble Bobble and KiKi KaiKai: Removed embedded MCU I/O ports emulation and use 6801U4 I/O map 0-7 instead. Note: Added 6801U4 extra timer registers (though Bubble Bobble and KiKi KaiKai seem to work fine without). - Cop 01: Added imperfect sound flag - Crazy Climber: Fixed gfx rom load in clone Crazy Climber (bootleg set 1) - Dai 3 Wakusei: Use PORT_COCKTAIL instead of PORT_PLAYER in input defs. Updated notes. - Golden Winner: Added missing prom - Gunpey: Added save states. Fixed init. Added version info from startup screen. Minor cleanups. - Itazura Tenshi: Changed default 'Difficulty' level (ID 07982) - Kollon: Mark as not working - Miss Americana: Moved 'Miss Americana' to its own driver. Flesh out driver to make it mostly work. Create artwork showing all lamps and inputs. - Ms Pac Man Twin (Argentina): Mark game as a hack - Night Driver: Removed tagmap lookups and other very minor cleanups - Percussion Freaks: Added new CD-ROM image a25aaa02 to Percussion Freaks 4th Mix (G*A25 VER. AAA) - River Patrol: Correct boat color in River Patrol (Japan) and River Patrol (Japan, unprotected) (ID 04137) - Scramble: Fixed Offensive (Spanish bootleg of Scramble) by swapping bad ROMs with correct ones from another dumped set (ID 07969) - Solar Assault: Attempt to fix stage 3 crash (video\k001005.cpp) (ID 05692) - Time Limit: Fixed broken sound after game over (ID 07960) - Fixed rom names in aristmk5.cpp, hornet.cpp, itech32.cpp, ksys573.cpp, merit3xx.cpp, mitchell.cpp, namcos1.cpp and segaufo.cpp - Dipswitch fixes in aristmk5.cpp, calomega.cpp, dacholer.cpp, exerion.cpp, hornet.cpp, jpmimpctsw.cpp, namcos1.cpp and sprint2.cpp - Description changes of Arch Rivals (rev 2.0 5/03/89, 8-way joystick bootleg), Cal Omega games, Chariot Challenge (0100787V, NSW/ACT), Chariot Challenge (04J00714, Peru?), Chou Zetsurinjin Berabowman (Japan, Rev B), Chou Zetsurinjin Berabowman (Japan, Rev C), Diamond King (with Euro support), DrumMania 8th Mix (G*C38 VER. JAA), Exerion (bootleg, set 1), Jumpin' Joeys (0100383V, NSW/ACT), jpmimpctsw.cpp games, Miss Americana, Ms Pac Man Twin (Argentina), Pro Tennis World Court (Japan), Pro Yakyuu World Stadium (Japan), Pro Yakyuu World Stadium '89 (Japan), Puzzle Break (set 1), Queen of the Nile (04J00784, Peru?), River Patrol (bootleg), Sonic Blast Man II Special Turbo (SNES bootleg, set 1), Sonic Blast Man II Special Turbo (SNES bootleg, set 2) and Warp-1 (Japan, Taito license). - Renamed (j6arcadeg) to (j6arcadef), (j6arcadeh) to (j6arcadeg), (j6arcadei) to (j6arcadeh), (j6arcadej) to (j6arcadei), (j6arcadek) to (j6arcadej), (j6slagnb) to (j6snakesh), (j6slagnc) to (j6snakesi), (j6slagnd) to (j6snakesj), (j6slagne) to (j6snakesk), (j6slagnf) to (j6snakesl), (j6slagng) to (j6slagnb), (j6slagnh) to (j6slagnc), (pcnfrk2m) to (pcnfrk2mk), (pcnfrk3m) to (pcnfrk3mk), (pcnfrk5m) to (pcnfrk5mk) and (warp1) to (warp1t). - MAME . VIDEO RENDERING SYSTEM . Increased MAX_TEXTURE_SCALES a bit (emu\render.h) . Adjust the common screen timings on old Capcom games (emu\screen.h, 1942.cpp, 1943.cpp, bionicc.cpp, blktiger.cpp, commando.cpp, gng.cpp, gunsmoke.cpp, supduck.cpp, tigeroad.cpp and vulgus.cpp) . MEMORY SYSTEM . Get rid of the dummy space device (emu\machine.cpp) . Fixed missing import of submaps in views. Need to fix more about import_submap vs. prepare_map vs. populate_from_map though (emu\emumem_mview.cpp). . LUA engine: Added a couple error messages to emu.thread. Also changes exit(0) when the script of the thread returns non-string to an error message instead. Exit stops the whole process not just the thread (mame\luaengine.cpp). . UI . Added -share_directory option. This sets a directory on the host system which emulated systems can directly access. . Workaround for 'File Manager' crashes MAME in spectacular ways (ui\imgcntrl.cpp) (ID 07978) . Don't make assumptions about what's off the end of a string view (ui\selmenu.cpp) . PLUGINS . Save line history for the console and other minor fixes. Changed a loadstring to load, since LUA 5.3 loadstring is not available. Made sure the linenoise thread returns a string. After Ctrl+D stop reading lines (plugins\console\init.lua). . Changed "historypath" (only supposed to be used for DATs) to "homepath" (where plugin data should reside) (plugins\console\init.lua). . LAYOUT: Use self-closing tags for bounds and color elements. . INPUT: Handle Caps Lock key up events via a frame callback instead of the SDL key up event (which is too fast) (input\input_sdl.cpp) . Don't transmit FCS (emu\dinetwork.cpp) . Extended the snapname templates to allow for a timestamp %t option, so to allow for alternate ways to organize the generated snaps (emu\video.cpp). . Docmumentation update/expansion (docs\source\initialsetup\configuringmame.rst) - SDLMAME: Added option -attach_window (create or attach to an existing window) - VGM player . Ensure all writes to Yamaha FM chips are spaced by 1 cycle. The old FM cores did not really require this spacing and didn't implement the busy flag, so many VGM captures have multiple writes stacked in the same cycle. This won't work with the new cores, so this kludge helps ensure we don't end up with ugly playback on existing files (drivers\vgmplay.cpp). . Updates of tracks and/or metadata from the most recent pack releases (hash\vgmplay.xml) - Compiling . Avoid name collision on Y2 (util\timeconv.h) . Preliminary support for GCC 11.1 (Fedora 34) - Debugger . Fixed minor positioning glitches in disassembly view related to changing sources (debug\dvdisasm.cpp) . Fixed crashes in Qt debugger caused by trying to select a nonexistent disassembly or memory view (debugger\qt\dasmwindow.cpp and memorywindow.cpp) . Added option to use octal instead of hexadecimal for output (tools\unidasm.cpp) 0.231 - New games: Bare Knuckle (Chinese bootleg of Megadrive version), Bare Knuckle II (Chinese bootleg of Megadrive version), Casino 21 UCMC/IWC (ver 30.08), Poker UCMC/IWC (ver 162.03) and Warp-1 - New Working games: Beatmania III Append 6th Mix, Beatmania III Append Core Remix, Cal Omega - Game 15.7 (Double-Draw Poker), Cal Omega - Game 15.9 (Wild Double-Up), Cal Omega - Game 17.2 (Double Double Poker), CEI 51.08 (CEI 906-III Poker), Give Us A Break Club (JPM), Impulse (JPM), Kung Fu (Ace), Money Talks (JPM) and Monopoly 60th Anniversary Edition (JPM) - New Non-Working games: Aminosan (satellite) and Percussion Freaks (GQ881 VER. EAB) - New clones: Daioh (prototype, earlier), DrumMania (GQ881 VER. JAD ALT CD), Funky Jet (Korea, prototype?), Handle Champ (GQ710 97/12/18 VER. SAA), Heavyweight Champ (set 2), Invinco / Head On 2 (set 2), JoJo's Venture (Asia 981202), JoJo's Venture (Asia 990108), JoJo's Venture (Asia 990128), Mars Matrix: Hyper Solid Shooting (Asia 000412), Narc (rev 6.00), NBA Hangtime (ver L1.2 8/29/96), NBA Hangtime (ver L1.3 10/10/96), NBA Hangtime (ver M1.1 4/16/96), NBA Hangtime (ver M1.2 8/29/96), NBA Hangtime (ver M1.3 10/10/96), NBA Jam TE (rev 2.1 2/06/94), NBA Jam TE (rev 3.0 2/26/94), NBA Jam TE (rev 4.0 3/03/94), NBA Maximum Hangtime (ver L0.9 10/30/96), NBA Maximum Hangtime (ver M1.0 11/08/96), Out Run (deluxe sitdown) (Enhanced Edition v2.0.3), Out Run (sitdown/upright, Rev B) (Enhanced Edition v2.0.3), Percussion Freaks (GQ881 VER. AAB), Percussion Freaks (GQ881 VER. KAB), Percussion Freaks (GQ881 VER. UAB), Point Blank 2 (unknown region), Poker UCMC/IWC (ver 162.03 20-6-91), Sega Golf Club Network Pro Tour 2005 (Rev B) (GDX-0010B), Sonic Blast Man 2 Special Turbo (SNES bootleg, set 2), Tekken 3 (World, TET2/VER.D), Trog (prototype, rev PA5-PAC 8/28/90), Trog (rev LA3 2/10/91) and Warp-1 (Japan, bootleg) - Removed games: Libero Grande (Japan, LG1/VER.A) - New drivers: mechatt.cpp - New devices: cdu415, cdu561_25, cdu75s, centronics_smartboard, cxd1185, h83030, h83031, h83032, ioc, konami_007452, m37732s4, memc, sensorboard, snk_bbusters_spr, tasc_sb30, ym2423 and ymf281 - CPU . Hitachi H8: Fixed disassembly of abs16 (h8\h8d.cpp) . MIPS-III: Ensure there is at least 1 cycle to be counted after reading Count. Without this, some timing loops won't exit to the scheduler until they complete (mips\mips3drc.cpp). . MIPS R4000: Timing improvements: External clock is doubled internally. Consume additional cycles for integer multiply/divide. Streamline memory access. Physical address space is 36 bits. Simplified branch state. . Motorola MC68HC11xx: Fixed bug causing DES to decrement IX rather than the stack pointer (mc68hc11\hc11ops.hxx). - SOUND . Biquad Filter: Emulated the lowpass audio filter for (MESS) Mac 128/512/Plus/SE and fixed the volume control so it correctly gets louder when the slider is raised in control panel instead of quieter (sound\flt_biquad.cpp). . Filtered 1-bit DAC: Fixed regression with filtering (sound\spkrdev.cpp) . New BSD-licensed OPL/OPLL (YM3526, YM3812, YM2413, Y8950, YMF262, etc) core . OPL preparation: Define FAMILY constant in register classes, and use that instead of template specialization for family-specific behaviors. Expand channel masks to 32 bits. Added is_keyon() helper. * Made FM channel and operator mapping more flexible. Operators are now owned by the engine and can be dynamically assigned to channels. Register classes now provide a mapping between a linear set of operators and channels. The register data array is now a regular array instead of a vector. * Introduce OPL registers and create a ymopl_engine. Added support for sustain-less notes and the OPL envelope clocks (which does not divide by 3). * Moved keycode calculations into register class. Removed unnecessary recalc in phase generator. Lined up OPL frequency, feedback, algorithm, and total level. * Implemented key scale level and OPL-specific LFO and phase handling. * Created new YM3526 device based on new OPL. Fixed keyon and sustain behaviors. * Fixed weird OPL multiple values. Clean up and further document OPL LFO. * No busy flag on OPL, so no need to do the work. Added a right shift of 1 to the output stage to line up volume with old implementation. * More compact way of representing key scale level values. * Moved the KSL bitswap into the registers since it's apparently fixed in OPLL and perhaps others. * Added support for ryhthm generation in OPL. Changed compute_volume to take a phase value directly, and expose operator phase. * Fixec OPL timers. * Start LFSR with a non-zero value to ensure it actually starts generating for OPL. * Fixed silly bug in sustain logic for OPL. Fixes a lot of previously missing sounds. * Create OPL2 engine. Added waveform support for OPL2/3 waveforms. * Wire up YM3812 to the new OPL2 engine. * Reset OPL timers when the mask is written as well. * Managed rhythm key ons separately. Fixes Wardner awfulness. * Explicitly make channel logic handle 0, 2 or 4 operators rather than checking each one for null. Also simplify the combining logic for the 2 operator case. * Reverse bit order of LFSRs to make things a little simpler. Fixed OPL LFSR so that it has its full 23-bit period. * Changed outputs along the path to arrays rather than stereo items. This allows for four channel output. Also added a constant for the number of outputs to the register class. * Moved status register bit definitions to the registers class. Generically support the IRQ bit. * Create shared helpers for FP encode/decode/roundtrip and use them throughout. Also update TMNT to use the FP decoder. * No need to clamp when using the roundtrip. * Clear the EOS flag when execute is turned off on ADPCM-B. Fixed combine_status in YM2608 to ignore previously set flags. * Added missing note_select in base class. Don't add 1 to the OPL release rate. * Moved Y8950 over to new OPL engine. * Removed old y8950, along with FMOPL and YM DELTA-T. * Added updates prior to status reads for ADPCM systems. * Added status_mask and irq_reset logic into the core. Clean up documentation on family-specific registers. Includes some temporary gross debugging stuff. * Made debugging less gross by giving operators and channels a reference back to their owner. * Fixed status port address in OPL chips. Reduce ADPCM volume to match previous implementation. * Fixed Y8950 ADPCM start. Return masked status properly. * Initial cut at OPLL mapping. * Added YM2413 support based on YMFM. Added YM2423 amd YMF281 variants as well. Instrument data is now loaded via external ROMs. Added 'depress' envelope support to the core engine. Fixed a number of issues in the ymopll_engine. Documented hard-coded values. Moved register clear into register-specific reset. * Added missing identifier. * Y8950 is OPL not OPL2. * Some documentation cleanup. Consistency fixes in the register classes. * Consolidate large comments. Added support for delayed modulators for OPL. Broke out 2-op and 4-op cases to help simplify logic. Fixed overflow handling in fp encoding. * Changed operator assignment mechanism to be more readable. Added prepare method to be called at the start of sound update. Added ALL_CHANNELS constant to register files. Updated all consumers to call prepare and use constants where applicable. * Moved YMF262 and YMF278B to use new FM engine for OPL3/4. Fixed several issues in OPL3 logic, which now seems to work ok. * Minor fixes. More documentation. * Added caching of data to prepare methods to improved performance. Moved non-register decoding logic out of the .h file and into .cpp file. Moved phase_step calculation into register class. * More notes. Removed keycode from cache. Splitted 2/4-operator outputs into separate functions. Changed OPN/OPL to use templates for variants. Added channel/operator_offset helpers. * Fairly substantial overhaul of register interface. Register interface is now stateless and contains family-specific state. Channel and operator accessors are prefixed by ch_/op_ now and require an offset to the specific channel or operator. Moved LFO/noise generation into register class, along with keyon logging. * Added noise back to OPL/OPLL. * Added early-out for low envelope. Moved waveform logic out into family-specific code. General clean up of ordering. Reduced family base class to minimal needed. * More aggressively track active channels to help performance. * Use only summing outputs for consideration of active channels. Centralized the logic of determined 4-op vs 2-op. * More conservative channel deactivation. * Added helper to compute the sample rate and use it in all implementations. Removed unneeded chnum/opnum members. * Fixed error in YM2612 that caused crashes. * Switching parameters and locals to 32-bit values gives a noticeable performance boost. * Ensure SSG inverted flag is only tested on systems with SSG support in the innermost loops. * Make most constants 32-bit as well. Expose some constants via the engine class. * Expand waveforms ahead of time. Optimized the attenuation lookup a bit. * If volume is low, don't erase output, just leave it alone. Fixes missing sound in raimais. * Replaces a couple of magic numbers with constants. * Normalization of FM engine usage across consumers. * Removed explicit external prepare() call; this logic is now automatically done after writes and periodically. Changed OPL/OPLL to use native formats for block/fnum. Fixed waveform generation. Fixed PM and AM depth on OPL/OPLL. * Cache multiple value. Clean up output handling a bit. * Moves multiple caching ahead of phase step caching. * Fully split OPLL from OPL. Removes many hacks now that OPLL registers can have state. Created shared helpers between OPL/OPLL. Removed more aggressive channel disables since it was not rhythm friendly and didn't really buy much. * Removed bad write in OPL mode case. Fixes fsoccer intro. Only call set_reset_status() once per mode call. * Removed FM output boost in YM2608/2610. Better matches previous volume now. * Make AM/PM logging less confusing. * Let's actually set DYNAMIC_OPS properly. * Improved logging. * Comment cleanups. Added constant for dynamic phase. Pre-shift sustain level. Srcclean. * Fixed memory regions on YM2608 games. * Clean up YMADPCM to line up with recent YMFM changes. * ym2413, ym3526/ym3812 and y8950: Reshuffled read/write handlers. Rename them to less confusing names. * ymf262: Match read/write details to datasheet and previous tests. * Use a constexpr function instead of macro for packing operator numbers. Pre-compute OPM LFO waveforms. * Generated OPL4 engine to support the proper clock divider and new flags. Update YMF278B to use FM timers and status rather than replicating the logic. * Fixed 4-operator enable on new OPL4 instance. * Fixed FM downsampling and adjust balance in YM278B. . Fixed ID register implementation, fixes several Metro games that were hanging (sound\ymf278b.cpp). . Don't pre-mask status bits with the status mask, apply instead at time of consumption (sound\ymfm.cpp). Fixes missing music in Kick Ball. . Initialized ADPCM-A pans and instrument volume (sound\ymadpcm.cpp). Fixes some homebrew NeoGeo sounds. . Mark the system modified when the mode register is written as well (sound\ymfm.cpp). Fixes (MESS) Streets of Rage II punch sound on Megadrive. . Increased soundcpu overclock hack because music broke again in Jackal (ID 07927) . Fixed KiKi KaiKai name entry tune is broken (ID 07929) . Fixed coverity issue, documented differences between YM2608/10 and Y8950 DAC formats (sound\ymadpcm.cpp). . Fixed missing samples in 'Twinkle Star Sprites' by masking the ADPCM-A end address properly (sound\ymadpcm.cpp) . Check for decay->sustain transitions even if we just transitioned from attack->decay (sound\ymfm.cpp). Affects the cymbal sounds in Shinobi and fixes the bad helicopter sound on Mission 2 (ID 07930). . Sound Interface . Changed audio_latency valid range from 1-5 to 0-5 (sound\direct_sound.cpp and xaudio2_sound.cpp) . Pulseaudio support (sound\pulse_sound.cpp) . Don't go down to the OSD on redundant mute calls (like VGMPlay's 44100 times per second) (emu\sound.cpp) . Fixed wrapping bug when using fill/copy/bulk-add on write_stream_views (emu\sound.h) . Yamaha YMW-258-F: Retrigger after writing to sample register if key is on (YMF278 also does this) (sound\multipcm.cpp) - DEVICE . CD-ROM . Return index 1/start of track data instead of index 0/start of pregap data in generated TOC. Added a pre-calculated field for data from current logofs to end of track. Removed pregap adjustment from (MESS) FM Towns code. Added pregap adjustment so track ends when audio data ends in PSX CD player. Fixed pce_cd load error (util\cdrom.cpp). . Fixes 'Dancing Stage - Internet Ranking' version plays CDDA tracks much later, causing very noticable audio delay in gameplay and UI (ID 07881). . Disable debug log message when parsing TOC. Also some miscellaneous cleanup/consistency (util\cdrom.cpp). . Floppy . Don't crash when trying to put a 80-track image in a 40-track drive. Do the number of tracks test only on 5.25, 8" and 3.5" is always 80, 3" is always 40 (formats\imd_dsk.cpp) . Filter unsupported image formats (formats\upd765_dsk.cpp and wd177x_dsk.cpp). Fixed a bug that caused creation to crash for some subformats (formats\wd177x_dsk.cpp). . Konami 007452 math chip: Added Konami 007452 multiplier/divider, fixes rolling mines trajectories in contra. Plugged k007452 in combatsc, flkatck and wecleman. . Namco C355 (Sprites): Color 0xfe is for a palette offset instead of shadow (video\namco_c355spr.cpp) . NB1412M2 Mahjong Custom . Fixed BGM tempo was unstable. The frequency setting of DAC and timer clock are now linked. When changes the DAC clock, Sound driver set wait loop count ($C010) in the range of 2 to 4 in order to keep the tempo of BGM even if changed clock. This was the cause of the slow BGM in previous versions. Fixed DAC clock calculation. I changed this so that sound plays same as PCB. Implemented a protect command 0x11 to stop the DAC. This is needed to stop DAC sound when the psycho gun is stopped (machine\nb1412m2.cpp). This fixed various sound issues in Mighty Guy so that it sounds almost exactly like PCB. . Make NB1412M2 clock input same for all drivers (drivers\galivan.cpp and terracre.cpp) . PWM Display: Removed the need to manually call update (video\pwm.cpp) . Ricoh RF5C68: Updated stream before writing to wave ram - aristmk5.cpp: Converted to use IOC and MEMC devices - calomega.cpp . System 906-III improvements . Reworked a lot of things to get the platform playable. Switched to Rockwell R65C02 CPU. Added missing inputs, timers, clocks and connections. . Proper inputs for the IWC poker games. Fixed/Improved the interrupts system. Preliminary button-lamps support. Simplified and partially cleaned the code. Added technical notes. . General improvements: The PIAs set for each MACHINE_CONFIG were made independent. All the PIAs lines were adapted according to the needs of each platform. All the interrupts were set/placed as indicated in the schematics (903/905). A global hopper was added, currently assigned to platform 906-III, but it can be used by other platforms. . Promoted Cal Omega - Game 15.7 (Double-Draw Poker), Cal Omega - Game 15.9 (Wild Double-Up), Cal Omega - Game 17.2 (Double Double Poker) and CEI 51.08 (CEI 906-III Poker) to working - cyclemb.cpp: Improved input, sound, flip screen and dipswitches. Support for correct input of Cycle Maabou roller controller. Previous inputs did not work correctly. This made it impossible to clear stage 3 and later, which requires roller inputs. Fixed possibly incorrect handling of sound latch. Fixed issue where Cycle Maabou would not play the stage music. Previously, command to get input was being overwritten by sound latch. Support I/O input for hiding screen. Screen switching at start of a stage is now correct. Fixed position of tilemap in flip screen of Cycle Maabou. Added support for Sky Destroyer flipscreen. Fixed dipswitches. Removed definition of unused bits for non-dipswitch inputs. Added some dipswitch definitions. Implemented work RAM switching for sprites. Games on this board used to switch two sprites work RAM every frame. This implementation improved the frame rate of the sprites. - firebeat.cpp . Added missing harddisks to 'Beatmania III Append 6th Mix' and 'Beatmania III Append Core Remix' (Games now playable) . Make the stream synchronous, added dummy-ish internal register read and more logging (sound\swp30.cpp). - funkyjet.cpp: Tweaks to the Funky Jet addition, also apply single pixel video offset to match hardware. - jack.cpp: Added raw screen timing parameters based on schematics - laserbat.cpp: Quantise area effect 2/shell effect for Cat and Mouse - megasys1.cpp: Reset the sound devices when the sound CPU is reset. This fixes the stuck note in Soldam's attract mode (ID 00355). - midtunit.cpp, midwunit.cpp, midxunit.cpp and midyunit.cpp: Additional notes, documentation & history of Williams/Midway games based on source code notes. - model1.cpp: Added main NVRAM used for bookkeeping - neptunp2.cpp: Added program ROM to Corsario (Cirsa slot machine) and improved hardware documentation - pgm.cpp . Added kov and kov114 sets redump. Confirmed actual dumps are good. . Correct ROMs labels for kov set and orlegend105k set. PGM documentation update according to PCBs scans. Added new tiles rom to clone dwpc101j. - raiden2.cpp: Improved tilemap performance by not marking tiles dirty unless data changes (video\raiden2.cpp) - segas16a/b.cpp . Changed video attributes when video is updated (for Fantasy Zone) and bump quantum time for System 16A cases with MCU (for Quartet stage 18) . Fixed two capacitor labels in audio\nl_segas16b.cpp - seibuspi.cpp: Fixed document based from hardware manual (http://ikotsu.blogspot.com/2010/01/raiden-fighter-jet-seibu-spi-jet.html) - stfight.cpp: Removed YM2203 frequency hack and set prescaler at machine_start. Fixes music pitch is too low in Empire City: 1931 and clone Street Fight (ID 03911). Use device_array for YM2203. Moved YM2203 prescaler to driver init since clone Cross Shooter (2 PCB Stack) doesn't need it. - taito_z.cpp . Continental Circus: Added electronic shutters and shifter for 3D scope (video\taito_z.cpp and layout\contcirc.lay) . Added 3D scope view for clone Enforce (Japan, Analog Controls) - travrusa.cpp: Hold vblank interrupt for the whole of the vblank period, allowing it to retrigger in some cases - improves Shot Rider countdown sync at start of race (ID 01086). - twinkle.cpp: Added partial dumps of security dongle to beatmania IIDX (863 JAB), beatmania IIDX (863 JAA), beatmania IIDX with DDR 2nd Club Version (896 JAB), beatmania IIDX with DDR 2nd Club Version (896 JAA), beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM), beatmania IIDX Substream (983 JAA) and beatmania IIDX Substream (983-AA JAA). - tx1.cpp: Fixed array out of bounds crash - AGEMAME: Promoted Give Us A Break Club (JPM), Impulse (JPM), Kung Fu (Ace), Money Talks (JPM) and clones to working - Battle Bakraid: Fixed music timing. Added hardware notes. - Battle Lane!: Fixed a problem with double height sprites at last boss - Beast Busters and Mechanized Attack: Refactoring and bug fixes. Moved sprite handling to a device. Adjusted audio balance (channel 0 was overpowering everything) and priority handing on Mechanized Attack (planes now correctly rise from underground hanger on stage 3, train carts in later level). Splitted bbusters.cpp driver into bbusters.cpp and mechatt.cpp. General refactoring etc. Removed Player 2 inputs from clone Mechanized Attack (US, Version 1, Single Player) - it doesn't respond to them at all. - Bubble 2000: Redumped clone Hot Bubble (Korea, with adult pictures) - Contra: Added Konami 007452 multiplier/divider, fixes rolling mines trajectories in Contra (ID 05725). - Gauntlet II and Rolling Thunder: OPL preparation. Pre-compute OPM LFO waveforms. Fixes YM2151 music plays incorrectly during Rolling Thunder cutscenes (ID 07924) and pops and cracks heard during title music (YM2151) in Gauntlet II and clones (ID 07926). - Gigandes: Fixed sprite offsets (regressed around december) - Great Sluggers '94: Color 0xfe is for a palette offset instead of shadow (video\namco_c355spr.cpp). Fixes some colors aren't correct on the pre-game screens in Great Sluggers '94 and clone (ID 03161). - Kot-Rybolov: Fixed regression with filtering (sound\spkrdev.cpp). This fixes corrupted sound in Kot-Rybolov (ID 07773). - Magic Reels: Redumped IC24 - Mazin Wars / Mazin Saga (Mega Play): Fixed DIPSW settings - Mighty Guy: Fixed various sound issues in Mighty Guy so that it sounds almost exactly like PCB (machine\nb1412m2.cpp). - Mighty! Pang: Correct QSound sample loading for clone Mighty! Pang (USA 001010) - Ninja Emaki: Removed BAD_DUMP flag from color proms yncp-2d.bin and yncp-7f.bin (ID 07934). The checksums are the same as clone Youma Ninpou Chou (Japan). - Omega Race: Fixed cocktail spinner input (ID 07941) - Puzz Loop 2: Mark clone 'Puzz Loop 2 (Japan 010226 Phoenix Edition) (bootleg)' as bootleg (ID 07917) - Revolution X: Added sound software release 2 rom - Shooting Master: Added prom 315-5139.bin. Confirmed that the missing IC7, IC13 and IC19 (315-5155) proms are not PLDs, but are custom graphics shifter. - Silent Scope 2: Redumped comm board ROMs. Game now boots. Also correct a couple of rom locations. - Speed Rumbler: Correct xtal/cpu speed - Stadium Cross: Retrigger after writing to sample register if key is on (YMF278 also does this) (sound\multipcm.cpp). Fixes no engine sound in Stadium Cross and clones (ID 07607). - Sub Hunter (Model Racing): Start to flesh out the skeleton driver - still nowhere near close to working. - Super Crowns Golf: Fixed gfx roms loading for clone Albatross (US Prototype?) and fill in the missing ROMs with the world version ones instead of the Japanese version ones, as the dumped ROM matches 100% the world version one and not the Japanese one. - Twinkle Star Sprites: Fixed missing samples by masking the ADPCM-A end address properly (sound\ymadpcm.cpp) (ID 07950) - World Beach Volley: Added preliminary sound to clone World Beach Volley (set 1, S87C751 audio CPU) by adapting the SuperSlam driver code for clone Power Balls (Super Slam conversion). - Fixed rom names in asteroid.cpp, hornet.cpp, itech8.cpp, magreel.cpp, midxunit.cpp and pgm.cpp - Dipswitch fixes in calomega.cpp, itech8.cpp, megaplay.cpp and rfslots8085.cpp - Description changes of But-ten Ohara's Suit-Cha Luck-a Dog-Fight (Japan) (ID 07948), Corsarios (Cirsa slot machine), Handle Champ (GQ710 1997/12/08 VER. JAB), Heavyweight Champ (set 1), Invinco / Head On 2 (set 1), jpmimpctsw.cpp games, Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 117, Hong Kong), Maze (Trog rev LA4 3/11/91 bootleg), NBA Hangtime (ver L1.1 4/16/96), NBA Jam (rev 1.00 2/1/93), NBA Jam (rev 2.00 2/10/93), NBA Jam (rev 3.01 4/07/93), NBA Jam TE (rev 1.00 1/17/94), NBA Jam TE (rev 2.0 1/28/94), NBA Jam TE (rev 3.0 3/04/94), NBA Jam TE (rev 4.0 3/23/94), NBA Maximum Hangtime (ver L1.0 11/08/96), NBA Maximum Hangtime (ver L1.03 06/09/97), Rabbit (Asia 1/28?), Sonic Blast Man 2 Special Turbo (SNES bootleg, set 1), Steering Champ (GQ710 97/12/18 VER. UAA), Total Carnage (prototype, proto v 1.0 01/25/92), Trog (prototype, rev 4.00 7/27/90), Trog (prototype, rev PA6-PAC 9/09/90), Trog (rev LA3 2/14/91), Trog (rev LA4 3/11/91) and Trog (rev LA5 3/29/91). - Renamed (hndlchmp) to (hndlchmpj), (nbahangt) to (nbahangtl11), (nbajamte2) to (nbajamte2a), (nbamht1) to (nbamhtl10), (outrundxeh) to (outrundxeha), (outruneh) to (outruneha) and (vrc7snd) to (ds1001) - MAME . MEMORY SYSTEM: Invalidate the caches on bank selection change (emu\emumem_mview.cpp) . DEVICE: Added some softwarelist warnings for Tafoid's tests (emu\diimage.cpp) . UI . Disable option sleep when using -bench . Simplified the statename/snapname logic for naming after image devices (e.g. %d_cart or %d_flop1) while allowing for more general non-alphanumeric separators, so that for instance %d_cart_%i correctly produces a name with the software name, followed by an underscore and an index, rather than failing to be recognized and defaulting back to %g/%i (emu\machine.cpp and video.cpp). . Allow breaking into main menu before the machine fully starts (i.e. just before the initial soft reset) by using the normal "Config Menu" UI input. Note that the minor code shuffling in machine.cpp is necessary to prevent emulation from getting confused if "Select New Game" happens to be selected (ui\menu.cpp and ui\ui.cpp). Added separator before 'return to previous menu'. . Allow UI file manager to create floppy images before machine is started (ui\floppycntrl.cpp) . Added message when trying to config unavailable machine inputs (ui\inputmap.cpp) . Option -romident has no use for mediapath, but it does use hashpath (mame\clifront.cpp) . Added space to prevent long strings concat when printing results (mame\media_ident.cpp) . PLUGINS . Fixed XML cheat loading (plugins\cheat\init.lua) when emulation is launched with an image option specified (e.g. mame nes -cart smb) or by loading directly one part of the software (e.g. mame a600 amigaocs_flop:lslarry2:flop1). Fixed getting arbitrary screen. . Properly clear history data when loading new file (plugins\data\data_history.lua) . Fixed XML cheats which use multiple spaces (plugins\cheat\cheat_xml.lua) . MULTI-LANGUAGE: Updated Dutch translation. Added all missing strings for the Dutch language. Also made spelling and meanings more consistent after testing the menu's with previous translations. . LAYOUT: Use for shifter in Buggy Boy/Speed Buggy and segaorun.cpp (layout\buggyboy.lay and layout\outrun.lay) - Compiling . Used anonymous namespace in pockchal.cpp . Added param to override AR (Archiver) (mame\makefile) . Use llvm-ar for GitHub Actions Windows CI build (.github\workflows\ci-windows.yml) . Fixed vs2019_clang build (scripts\genie.lua) . Fixed compilation with Emscripten versions greater than 2.0.8 (scripts\toolchain.lua) . Updated compiling document to reflect that MSVC 2019 is working and recommended (initialsetup\compilingmame.rst) - Debugger . Added %o format support to debugger printf command (debug\debugcmd.cpp) 0.230 - New Working games: beatmania IIDX 2nd style (GC985 JAA), beatmania IIDX 3rd style (GC992 JAC), beatmania IIDX 3rd style (GC992 JAA), beatmania IIDX 5th style (GCA17 JAA), beatmania IIDX Substream (983 JAA), Beatmania III, Beatmania III Append 7th Mix, Beatmania III The Final, Big 50 (JPM), Big Bucks (JPM), Camelot (JPM), Casino Crazy (JPM), Go For Gold (JPM), Keyboardmania, Give Us A Break (JPM), Happy Hour (JPM), Keyboardmania 2nd Mix, Keyboardmania 3rd Mix, ParaParaDancing, ParaParaParadise, ParaParaParadise v1.1 and Untouchable (JPM) - New Non-Working games: Bee-Zerk, Corsario (Cirsa slot machine), Marbella Vice (100Hz display), Mini Money, Mushiking The King Of Beetles 2006 First (Japan), Super Mario All-Stars (Nintendo Super System), Tierras Salvajes (100Hz display) and 'unknown VLC multigame' - New clones: beatmania IIDX 3rd style (GC992 JAB), beatmania IIDX 7th style (GCB44 JAA), beatmania IIDX Substream (983-AA JAA), Cuore 1 (Italian, set 6), Cuore 1 (Italian, set 7), Cyber Troopers Virtual-On - Twin (Export), Genius 6 (V133F), Keyboardheaven (Korea), Magic 10 Nevada (bootleg of Pool 10), Mazan: Flash of the Blade (Japan, MAZ1 Ver.A), Maze (Trog bootleg), Mega Man: The Power Battle (CPS2, USA 950925, SAMPLE Version), Meijinsen (set 2), Oedo Fight (Japan, Bloodless version), Rabbit (Asia 1-28?), Raiders5 (Japan, set 2, bootleg?), Scorpion (Dec 24, 1993), Surf Planet (Version 3.0), Task Force Harrier (Lettering bootleg), Thunder Dragon (bootleg, set 2), US AAF Mustang (Lettering bootleg), Virtua Striker 2 '99.1 (Step 1.5, Export, USA, Revision B) and Virtua Striker 2 '99.1 (Step 1.5, Japan, Revision B) - New PEPlus games: Player's Edge Plus (PP0419) Standard Draw Poker (set 1) and Player's Edge Plus (PP0419) Standard Draw Poker (Old Chicago Casino) - New PinMAME games: A.G. Soccer Ball (R18u, 2.5L sound), Bad Cats (LG-4), The Flintstones (LA-5), Lucky Draw (pinball, set 2), No Fear: Dangerous Sports (0.8X) and Theatre Of Magic (1.2A) - New drivers: cirsa910510.cpp and vlc34010.cpp - New devices: ds1287, firebeat_spectrum_analyzer, h8s2653, h8s2655, mc68hc811e2, meg, megemb, rs232_sync_io, st0032_sound, swp30, x24c01 and xt446 - New ui.ini options: unthrottle_mute (UI MISC OPTIONS) - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . Hitachi HD647180X MCU: Eliminated data space and instead map internal RAM into program space using memory view . IBM PowerPC: Fixed MCRXR UML, UM for lswx and stswx. Fixed MMU/exceptions debug messages (powerpc\ppcdrc.cpp). . Intel 80186: Timer updates. Implemented retrigger mode. Clean up code a little and removing redundant "active_count" flag. Modernized save state registration. . Motorola MC68HC11xx: Memory modernization and updates. Eliminated data and I/O spaces, using memory views to remap internal RAM and I/O registers within the program space. Added MC68HC811E2 type. Lay some groundwork for future internal EEPROM support. Added RTI and counter overflow flag. Register debugger state for a few more internal registers. - SOUND . CD/DA: Return LBA position as currently playing LBA (sound\cdda.cpp) . New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips, along with new device drivers for YM2203, YM2608, YM2610, YM2610B, YM2612, YM3438 and YM2151 based upon these. Correct some ymsnd regions that had been overlooked. . Schedule all interrupt changes via timers to ensure proper ordering. Fixes the seibu sound issue in a more generic fashion (sound\ymfm.cpp). . Explicitly sync writes to the mode register to ensure timer control bits are handled in sync (sound\ymfm.cpp) . Improved LFO noise behavior. Added logging (under verbose) when LFO noise sounds are played to help ID cases for further study. This will be removed prior to release. . Fixed missing sound in Bad Dudes stage 3 boss transformation (ID 07161) . Fixed sound effect of the van's backdoor cuts off suddenly in robocop, robocopu and robocopw (ID 06930). . Fixed ADPCM-B processing logic. Force external mode on for YM2610. Fixes Neogeo sound playback. . Fixed TMNT audio decoding so that it doesn't invoke undefined C++ behavior (drivers\tmnt.cpp). Also don't bother registering decoded sample data for saving. . Implemented in-service lockout for IRQs (audio\seibu.cpp), prevent Cabal from locking up the sound CPU with an unacknowledged interrupt after reset. Fixes coins don't work when Demo Sound dipswitch is off (ID 05785). . Fixed sound randomly speeds up and eventually dies in Boulder Dash and Sly Spy (ID 06740) . If volume is low, don't erase output, just leave it alone (sound\ymadpcm.cpp). Fixes missing sound in Raimais. . Fixed missing ADPCM in Hatris and Tecmo World Cup '90. Fixed YM2608 memory regions in bbusters.cpp, itech8.cpp and tail2nos.cpp games. . Removed YM2608 and YM2610 FM output boost to match previous volume better. . Backport active channel detection to help improve performance. Further performance improvements will come in the next cycle, but require more extensive changes (sound\ymfm.cpp). Turn off VERBOSE (sound\ymfm.cpp). . Ricoh RF5C400: Added channels for effect outputs . Seta X1-010: Clamp output samples to within range - DEVICE . ATAPI CD/DVD-ROM and SCSI CD: Added CD media type check for special LBA 0 case (machine\t10mmc.cpp). Note: The special case of setting m_lba to 150 when m_lba is 0 is only applicable to data and mixed mode media CDs. . Discrete Netlist: Relicensing of the GPL code to BSD-3 with the blessing of the copyright owners. Much thanks for that Couriersud, the main creatorand contributor, but also to Jonathan Gevaryahu and Sergey Svishchev. There are small remnants in machine/NL_*, specifially Breakout, Pong Doubles and Rebound that are also copyrighted by the DICE team, whoever that means. They're not critical since they only concern these drivers and not an important core subsystem. . Floppy . Do not crash on damaged disks (formats\upd765_dsk.cpp and wd177x_dsk.cpp). Implemented sector-based termination conditions for read commands (machine\upd765.cpp). . Don't fault on nibble extraction on degenerated tracks (formats\flopimg.cpp) . Reimplemented SMSC FDC37C665GT controller with floppy and parallel support (machine\fdc37c665gt.cpp) . Turn the floppies format arrays into function calls. Create a default "mfm", "fm" and "pc" list of formats. Their contents, and which driver uses what, may need some tuning. . Created mame_formats_full_list which gives access to all the supported formats, make floptool use it. Castool should use it too probably, but I don't want to touch it. . Beginning of the support for preformatted floppy images. Don't fail creation because the extension is unknown. Make format determination earlier (imagedev\floppy.cpp). . Correct index duration (2ms, not 20us) and polarity in superdrive (imagedev\floppy.cpp). Turned off log output per step (imagedev\floppy.cpp). . Fixed an annoyingly subtle write bug (imagedev\floppy.cpp) . Restored legacy pc_dsk floppy support for Imgtool only . I2C Memory: Added Xicor X24C01 support . Intel 8251 USART: Allow write_cts before device has started . K057714_device GCU: Implemented raster timing registers . MC146818 RTC: Improved update in progress handling . MOS 6522 VIA: Fixed timing (7 edges to cb1 change from start of read) . RS232 Port: Added device for synchronous I/O (rs232\rs232_sync_io.cpp) . Taito TC0090LVC: Included Z80 core (machine\tc009xlvc.cpp; interrupt handler not yet ported). Converted banked video RAM handler into internal memory space. . Taito TC0091LVC: Fixed opaque background used in Gemcrush - 1943.cpp: Don't draw past end of spriteram - alg.cpp: Preliminary address lines descrambling for Platoon V.3.1 US. Added notes about Picmatic games. - coolridr.cpp: Use measured clocks by correct XTAL usage based on documentation in header of the driver - dec0.cpp: Sound randomly speeds up and eventually dies (ID 06740) - dfruit.cpp, heromem.cpp, taito_l.cpp: Included Z80 core (machine\tc009xlvc.cpp; interrupt handler not yet ported). Replaced Z80 CPU1 with Taito TC0090LVC or TC0091LVC. - electra.cpp: Some more info updates - firebeat.cpp . Redumped and re-converted CDs for Keyboardmania and Keyboardmania 2nd Mix. Included proper CD subchannel data for Keyboardmania and Keyboardmania 2nd Mix. Added Keyboardmania 2nd Mix dongle dump. . Fixed IN1 values and added notes about dipswitches . Added dongle dumps for all missing dongles (bm3, bm3final, kbh, kbm, popn4, popn7, popn8, popnanm, popnanm2, popnmt, popnmt2, ppp and ppp11). Documented how dongles are used in various game series. . Documented cabinet info register bits meanings for various games . Added support for Beatmania III FDD and spectrum analyzer . Promoted Beatmania III, Beatmania III Append 7th Mix, Beatmania III The Final, Keyboardmania, Keyboardmania 2nd Mix, Keyboardmania 3rd Mix, ParaParaDancing, ParaParaParadise, ParaParaParadise 1st Mix Plus and ParaParaParadise v1.1 to working with imperfect sound. . Implemented raster timing registers for k057714_device GCU. Gives precise timings for Firebeat screens. . Added interface with the Yamaha XT446 (Embedded version of the MU-100B) to Keyboardmania, Keyboardmania 2nd Mix and Keyboardmania 3rd Mix. - gaelco3d.cpp . Fixed sound has repeating distortion/crackling in surfplnt, surfplnt40 and speedup (ID 07831). Do a little less error logging. . Added gearshift layout to Speed Up (ID 07898) - hng64.cpp . Implemented priority Z sort mode for sprites . Improved projection matrix calculation and 3D clipping - jclub2.cpp and srmp6.cpp . Added preliminary support for 16-voice ST0032 variant (sound\setapcm.cpp). Hooked up ST0032 sound to jclub2.cpp. . Derive sound clocks from crystal frequencies - konamim2.cpp, menghong.cpp and trivrus.cpp: Got rid of auto_alloc_array and tagmap lookups - ksys573.cpp . Return LBA position as currently playing LBA (sound\cdda.cpp). Fixes songs run at halved framerate in ddr2mla, ddrbocd and any 573 Analog DDR game exccluding JP Dancing Stage series (ID 07856). . Use clone ddr2ml disc as base for clone ddr2mc2. Note: ddr2mc2 expects a different CD when the memory card reader is present. - midzeus.cpp: Turn off hardcoded 'in video driver' debugging keys by default, it's a common source of confusion. - ms32.cpp: Added missing save item (machine\jaleco_ms32_sysctrl.cpp) - namconb1.cpp: Making the clip registers signed, fixes black screen after winning first match in J-League Soccer V-Shoot (ID 06789). The underlying issue may be weirder though. - namcos21.cpp, namcos21_c67.cpp and namcos21_de.cpp . Added save state support and made pixel clocks more clear . Removed unnecessary driver init and added hardware notes to namcos21.cpp . Fixed configuration flag for Driver's Eyes (game has 4 2Mbit PCM ROMs) - naomi.cpp: Dumped House of the Dead 2 Korea BIOS. Added latest NAOMI revision docs. - segas24.cpp: Fixed out-of-bounds access in sprite drawing with inverted clipping (could crash during Crack Down attract mode) (video\segaic24.cpp) - simple_st0016.cpp: Got rid of tagmap lookups and other small cleanups. Enabled save state support. - srmp2.cpp: Added NO_DUMP entries for suspected undumped MCUs - suna8.cpp: Removed auto_allorc_array, started work on save state supports and other minor cleanups. - tatsumi.cpp: Removed obsolete YM2151 hack - tecmo16.cpp . Improved IRQ ack mechanism. Fixes Level Select, Minigame Select and Credits musics doesn't play in Ganbare Ginkun (ID 07909). . Don't trigger multiple interrupts per frame in Riot - twinkle.cpp . Added missing hard disk and security dongle to 'beatmania IIDX 2nd style (GC985 JAA)', 'beatmania IIDX 3rd style (GC992 JAC)' and beatmania IIDX 5th style (GCA17 JAA). Replaced CD image marked as bad dump in clone 'beatmania IIDX 3rd style (GC992 JAA)'. Promoted games to working. . Replaced hand-crafted dongle data for 'beatmania IIDX 4th style (GCA03 JAA)' and 'beatmania IIDX 5th style (GCA17 JAA)'. Added security dongle to 'beatmania IIDX 6th style (GCB4U JAB)'. . Replaced CD image marked as bad dump in 'beatmania IIDX 6th style (GCB4U JAA)' and 'beatmania IIDX with DDR 2nd Club Version (896 JAB)'. Added security dongles to 'beatmania IIDX 7th style (GCB44 JAB)' and 'beatmania IIDX 8th style (GCC44 JAA)' and replaced CD images marked as bad dump. . Added missing video CDs to 'beatmania IIDX with DDR 2nd Club Version (896 JAB)', 'beatmania IIDX with DDR 2nd Club Version (896 JAA)' and 'beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)' . Added missing CD image to 'beatmania IIDX Substream (983 JAA)'. Promoted game to working. . Removed periodic source for IRQ2 in Twinkle driver. Only periodically assert IRQ1. Added comment about SPU IRQ2 handler. . Fixed beatmania IIDX games (bmiidx6, bmiidx8 and bmiidxc2) crashing in Expert mode (ID 06809) - AGEMAME . Promoted Big 50 (JPM), Big Bucks (JPM), Camelot (JPM), Casino Crazy (JPM), Go For Gold (JPM), Give Us A Break (JPM), Happy Hour (JPM), Untouchable (JPM) and clones to working . Fixed reel display in Big 50 (JPM). Improved illusion of this being 2 sides of the same wheel. Tweak reel offset. Promoted Big 50 (JPM) and clones to working. . Added sound ROM used by other emulators to Untouchable (JPM). Promoted Untouchable (JPM) and clone again now we have sound. - Cabal: Implemented in-service lockout for IRQs (audio\seibu.cpp), prevent Cabal from locking up the sound CPU with an unacknowledged interrupt after reset. Fixes coins don't work when Demo Sound dipswitch is off (ID 05785). - Fever Soccer: Added notes on unpopulated RS232/Ethernet ICs - Gemcrush: Fixed opaque background - GunNail: Fixed machine config of clone GunNail (bootleg). Note: Crappy sound, unknown how much of it is incomplete emulation and how much bootleg quality. - Hatris: Fixed missing ADPCM - Inferno (Williams): Fixed DAC sound playing (ID 07389) - Ixion: Switched sprite/tilemap priority - Joy Stand Private: Converted cartridge access function into address_map_bank_device. Added MACHINE_NODEVICE_PRINTER flag because printer emulation is missing. Added notes and cleaned up code. - Kyuukoukabakugekitai - Dive Bomber Squad: Fixed debug assert shortly after launch (ID 07887) - Last Fighting and Raccoon World: Demoted games to not working due to timing issues. Note: Game speed seems to be completely wrong, timers and player movement too fast? - Mahjong Cafe Time: Resolved DIPSW settings (ID 05580) - Megadrive hardware: Added EEPROM cartridge variant with Xicor X24C01 (bus\megadrive\eeprom.cpp). Made all MD cartridge types able to be locked on (bus\megadrive\sk.cpp). - Mobile Suit Gundam Final Shooting: Fixed sound rom loading - Momoko 120%: Fixed glitches on high score table after memory system updates (was reading past end of region) - Narc: Dumped the correct REV1 sound ROMs for clone Narc (rev 1.80) - PinBot (PlayChoice-10): Fixed exception attempting use of single screen BIOS (ID 07916) - PinMAME: Synced set rvrbt_p7 and totan_04 with PinMAME - Quasar: Flipped 'Free Play' switch based on observed behavior (maybe freeplay isn't the best name for this) - Roc'n Rope: Fixed state saving, minor cleanups. - Run Run Puppy: Redumped boot ROM - Sea Fighter Poseidon: Fixed unknown DIPs (ID 07849) - Shooting Master: Redumped and verified the 315-5159A I8751 MCU - Speak & Rescue: Adjusted DAC output and improved notes in Speak & Rescue and clones - Virtua Striker 2 '99: Fixed longstanding cut-n-paste in clone vs299a exposed by set reordering - Zero Team USA: Correct 'Bonus Life' dipswitches in clones New Zero Team - Fixed rom names in mcr.cpp, midtunit.cpp, model3.cpp and pgm.cpp - Dipswitch fixes in merits.cpp, namcos21_de.cpp, rocnrope.cpp, royalmah.cpp, r2dx_v33.cpp and taitosj.cpp - Description changes of A.G. Soccer Ball (R18u, 2.1 sound), beatmania IIDX 7th style (GCB44 JAB), Cyber Troopers Virtual-On - Relay (Japan), Cyber Troopers Virtual-On - Twin (Japan, Revision B), Cyber Troopers Virtual-On - Twin (USA, Revision B), Discs of Tron (Upright, 9/22/83), Discs of Tron (Upright, 10/4/83), jpmimpctsw.cpp games, Lucky Draw (pinball, set 1), Meijinsen (set 1), Oedo Fight (Japan, Bloodshed version), Player's Edge Plus (PP0419) Standard Draw Poker (set 2), Rabbit (Japan 1/28, location test), Raiders5 (Japan, set 1), Techno Drive (Japan, TH1/VER.B), Thunder Dragon (bootleg, set 1), US AAF Mustang (bootleg, set 1) and Virtua Striker 2 '99.1 (Japan, Revision B) - Renamed (agsoccer) to (agsoccera), (dotron) to (dotrona), (dotrona) to (dotron), (pepp0419) to (pepp0419b), (von) to (vonu), (vs29915) to (vs29915a) and (vs299b) to (vs299j) - MAME . VIDEO RENDERING SYSTEM . BGFX: crt-geom and crt-geom-deluxe enhancements: Made spot size parameters adjustable also increased samples from 2 to 3 scanlines for crt-geom-deluxe. Made horizontal interpolation adjustable. bgfx crt-geom-deluxe: Made phosphor decay smoothly to zero at specified cutoff time. bgfx crt-geom-deluxe: Added lowpass filter. Fixed crt-geom{,-deluxe} shader compilation and recompiled shaders. Disabled lowpass filter by default by setting it to its maximum value, since it does not account for actual monitor type. We can revisit this decision in the future if better monitor information is provided from the driver. . MEMORY SYSTEM . Allow creators in the memory map (emu\addrmap.h) . Fixed init_handlers in specific cases and mapping ioports in views (emu\emumem_hedr.ipp, emumem_hedw.ipp and emumem_mview.cpp) . Keep a reference to the handlers so that installs overlapping them don't kill them (emu\emumem_mview.cpp) . Use count_leading_zeros to simplify awidth calculation (emu\emumem_mview.cpp) . Ensure alternatives are always created (emu\emumem_mview.cpp) . UI . Tell user to get the correct files (ui\imgcntrl.cpp and selmenu.cpp) . A few incremental UI code improvements: Simplified message when toggling UI controls. Show actual configured UI toggle key, not misleading hard-coded text. Push window activated/deactivated events to UI manager. Simplified SDL window event handling code - events are pretty precise. Miscellaneous code cleanup. Fixes incorrect message when enabling/disabling UI on systems with emulated keyboard (ID 07824). . Restored validation for command-line and .ini options (disabled since 0.188) and make some errors non-fatal (mame\clifront.cpp and util\options.cpp) . Added option to mute when unthrottled to advanced options menu. Also refactored slightly to avoid some initialisations before main. . PLUGINS . Fixed missing LUA API changes (plugins\cheat\init.lua and portname\init.lua). Fixed selection (plugins\cheat\init.lua). . hiscore.dat update (plugins\hiscore\hiscore.dat) . MULTI-LANGUAGE: Updated Portuguese-Brasil - SDLMAME: Fixed ZEXALL target compilation (zexall\main.cpp) - VGM player: Fixed some shortnames to match MAME. Assorted metadata fixes (hash\vgmplay.xml). - Compiling . Initialized some variables which were causing incorrect behaviors in DRVNOCLEAR debug builds . Fixed MSVC build (drivers\dynax.cpp) . Coverity (software): Fixed unused code (drivers\8080bw.cpp). Fixed crash at start due to buffer overrun (drivers\magictg.cpp) (ID 05875). Removed unused code in clone 1942 (Tecfri PCB, bootleg?) (video\1942.cpp). Fixed wrong variable (video\avgdvg.cpp). Fixed buffer overflow (video\neogeo_spr.cpp and drivers\vgmplay.cpp). . Make core_filename_extract_base behave more robustly in degenerate cases (util\corefile.cpp) . Fixed building with Clang 6 (scripts\genie.lua). Note: Annoyingly, Clang 6 produces warnings for unused private static data members, but does not recognise the [[maybe_unused]] attribute for them. - Debugger . Added 'wpsize' variable to access the data size from a watchpoint . Fixed Debugger rewind is not functional (emu\save.cpp) 0.229 - New games: Ms PacMan Twin (Argentina), Power Up Baseball (prototype) and Run Run Puppy - New Working games: Ace Of Clubs (Crystal), Bonanza (JPM) and Sonic The Hedgehog (JPM) - New Non-Working games: Beatmania III, G.T. Block Challenger, Games Family, Golden Fruits, Olympus (Z Games, version 10), Photo Play 2001 (Spanish), PlayCenter Champions Tournament (v9.3), Pop'n Music Animelo, Pop'n Music Mickey Tunes, Score 5, Silverball (8.01) and Super Butterfly 2000 - New clones: Asteroids (bootleg on Lunar Lander hardware, set 2), Barracuda, Born To Fight (Vifico license), Defense (Defender bootleg), Drift Out (Europe, Cameltry conversion), Galaxian (Electromar Spanish bootleg), Hot Night, Hunchback (FAR S.A. bootleg on Galaxian hardware), Kamikaze (Electrogame, Spanish bootleg of Galaxian), Mach 2 (set 2), Mars (bootleg), Oli Bug (Jump Bug bootleg), ParaParaParadise 2nd Mix (AAA), Pop'n Music Mickey Tunes!, Radar Scope (TRS02, rev. D), Silverball Bulova (4.09, set 1), Silverball Bulova (4.09, set 2), Silverball (6.32), Silverball (7.20), Storming Party / Riku Kai Kuu Saizensen (set 2), Street Fighter II': Magic KO Turbo!! - Nightmare Crack, Wayne Gretzky's 3D Hockey Fatality Edition (prototype) and World Beach Volley (set 1, S87C751 audio CPU) - New PEPlus games: 'Player's Edge Plus (PP0104) Standard Draw Poker (set 2, Fitzgeralds)' - Removed games: NFL Blitz (boot ROM 1.1) - New drivers: blockch.cpp, gfamily.cpp, photoplys.cpp, playcenter.cpp and silverball.cpp - New devices: pcf8570 and rs_serial_printer - CPU . ES5510: Added serial control register for debugging. Fixed/Added some hardware features. Implemented (partially) RAM clear function. Fixed host control register (host access OK flag is inverted (0 is active)). Added notes. . Kawasaki Steel KL5C80A12/KL5C80A16: Emulated on-chip parallel ports . Motorola MC6809: Partially qualify the dummy cycles. Improved accuracy of dummy fetch patterns. Fixed regression in RTI timing (m6809\base6x09.ops). . National Semiconductor COP4xx: Small notes cleanup - SOUND . Namco sound: Allow channels to still play with a frequency of 0 and allow writes to manipulate the counter directly for Namco 15xx (sound\namco.cpp) . Ricoh RF5C400: Fixed looping and implemented position readback - DEVICE . ATAPI CD-ROM: Added way to specify Ultra DMA as a machine configuration (bus\ata\atapicdr.cpp) . Atari Slapstic: Full rewrite, using infrastructure we did not have previously. Fixes clone Pit Fighter (rev 3) crashes randomly in later matches (ID 07866). . Floppy: Filter out the writes when write protected, useful when the Apple IIgs does a packet send (e.g a write) over DCD with write protect forced on (to avoid damaging a possibly present disk). Ignore set_write_splice when the motor is not running (imagedev\floppy.cpp). . I2C Memory: Added PCF8570 device . K057714_device GCU: Adjusted transparency blend mode based on new info from Beatmania III. Fixed some crashes (divide by zero, out of bounds). Clear vram between resets. . MC68681 DUART: Ignore tx enable if already enabled . Rockwell 10937 VFD controller: Added state output for the brightness(duty) value. Can be accessed as 'vfddutyX' where X is the port number. Examples of it in use have been added to the generic MPU4, JPM System 5 and Impact layouts, and a full SVG based version in the JPM Sonic the Hedgehog layout. . RS232 Port . Added generic Radio Shack printer option (generates break condition when online) (bus\rs232\rs232.cpp) . HLE updates: Removed option to change the number of start bits (1 was always the default, and the RS232 protocol requires one start bit). Added many historically significant baud rates ranging from 50 to 7200. . Sega 315-5313 Megadrive VDP: Fixed/Added hardware related notes . SVGA: Added BIOS for S3 86C775/785 and ExpertColor M50-02 86C775 (both V.1.01.04) . Z80 SCC Channel: Tidy logging a little bit. There's only one WR2. Note: WR2 is the interrupt vector register. Only one vector register exists in the SCC, and it can be accessed through either channel. - alpha68k_i.cpp . PCB documentation for The Next Space and Paddle Mania, derive chip clocks from OSCs. . Replaced color ROM dump in Paddle Mania and added dump about bootleg boards. Removed NO_DUMP entry for the Alpha 8511 MCU, since actual PCBs don't have it. - aristmk5.cpp and ertictac.cpp: Disabled side effects in high_mem_r handler (machine\acorn_memc.cpp) - cave.cpp: Correct some typos & update documentation for Hotdog Storm - deco_mlc.cpp: Added sprite autoflicker flag and fixed small problem with use8bppMode (video\deco_mlc.cpp) - dec0.cpp: Updated hardware infos. Fixed MSM6295 sound clock in Midnight Resistance. - firebeat.cpp . Implemented SPU DMAs and fix SPU device configurations . Large refactor and initial 'Beatmania III' support. Changed DMA to deliver one byte at a time. Converted to use I/O port and output finders. Correct handler widths and cleaned up code. Lots of other cleanup and miscellaneous fixes. . Added 'Beatmania III' BIOS, security dongle generated through a tool and proper SPU rom to 'Beatmania III Append 6th Mix', 'Beatmania III Append 7th Mix' and 'Beatmania III The Final'. . Added 'Beatmania III' BIOS and SPU roms to 'Beatmania III Append Core Remix' . Added security dongle generated through a tool to 'Keyboardmania', 'Keyboardmania 2nd Mix', 'Pop'n Music 6', 'Pop'n Music 7', 'Pop'n Music 8', 'Pop'n Music Animelo 2', 'ParaParaDancing', 'ParaParaParadise', 'ParaParaParadise 1st Mix Plus' and 'ParaParaParadise v1.1'. - halleys.cpp: Eliminated deprecated auto_alloc - hng64.cpp: Only swap/clear 3D buffer when flag is set (video\hng64.cpp) - itech32.cpp . Added support for the WIDTHPIX blit flag (video\itech32.cpp) . Updated NVRAM mapping on '020 machines to cover full 128k - ksys573.cpp: Added ATA CS1 to memory map - looping.cpp: Offset/Truncate the COP420 rom instead of loading it the hard way for Looping and Sky Bumper - luckgrln.cpp: Use generic xBGR_555 palette support, decrease amount of colors. Added DIP locations. Changed service switch type to not toggle on 7 Smash. Added screen raw parameters. - neogeo.cpp: Added notes for AES clock and regional difference. - seattle.cpp: Updated Wayne Gretzky's 3D Hockey (ver 1.3) and NFL Blitz (boot ROM 1.2) to use the BIOS system. Clone NFL Blitz (boot ROM 1.1) has been removed since it was identical to the parent set and created only to load the different BIOS version. Use mnemonic BIOS names and organised BIOS versions in ascending order. - snookr10.cpp: Correct XTAL for sound ROM as per hardware - thepit.cpp: Identified and dumped colour proms for clones The Hole (bootleg of The Pit) and The Porter (bootleg of Port Man) - 10-Yard Fight: Fixed misplaced graphics (ID 06650) - AGEMAME . Promoted Bonanza (JPM) and Sonic The Hedgehog (JPM) (IMPACT) and clones to working (except (SO10P C13, Protocol) and (set 9)). Mark Untouchable (JPM) and clone as not working, promotion may have been premature. . Added GAL for the FM sound board to maygay1bsw.cpp . Added emulation of Xicor X9C103 (digital potentiometer) to jpmimpct.cpp, fixes volume setting. . Fixed layout of Big Bucks (JPM). Miscellaneous mpu4.cpp layout fixes. Fixed layout\j6cascze.lay and layout\j6sonic10.lay. . Improved SVG stencils for VFD layout (layout\j6sonic10.lay; drivers\jpmimpctsw.cpp) . Improved VFD output in BFM games - Bogey Manor and Shoot Out: Correct monitor orientation to ROT180 - Cobra Command: Fixed clones Cobra Command (M.A.C.H. 3 hardware, set 1) and (set 2) showing only a black screen when a NVRAM is present (ID 07874) - Cookie & Bibi 2: Dumped MCU for Cookie & Bibi 2 (set 1) and clone Cookie & Bibi 2 (set 2) - Future Flash: Improved gfx rendering, implemented BG scrolling and correct screen raw parameters. - Gokidetor: Converted JEDECs to binary format and added anonymous namespace - Good (Korea): Identified some DIPs - Grobda: Eliminated DAC and allow the Namco 15xx custom to play the speech sample - High Seas Havoc: Simplified the already working part of the decryption - Ironman Ivan Stewart's Super Off-Road: Dumped missing roms and correct mismatched ROMs for clone Ironman Ivan Stewart's Super Off-Road (rev 3) - Jongkyo: Removed tagmap lookups and auto_alloc_array. Clean up input code a little. - Jungle (Italy VI3.02): Added reel layer drawing, implemented priority selection and hooked up palette. Updated notes. - Magic Reels: Added placeholder for undumped PIC - Major Havoc: Fixed graphics missing in maze stages (MAX_POINTS 20000 is needed) (ID 06668) - New Pro Bowl: Fixed gfx loading - ParaParaParadise 2nd Mix: Added working dongles for ppp2nd (JAA) and added a dongle to boot ppp2nda (AAA). Added sensor inputs for ppp2nd and ppp2nda. - Pepper II: Dumped PROMs and correct version 2 sound ROMs for Pepper II (version 8) - Pontoon (Konami): Added text layer tilemap, palette and char ROM readback for POST. Hooked up sprite ROM readback, marked sound CPU dump as bad. Hooked up sound CPU and comms, POST now fully passes. - Raiden: Fixed sound communication and improved sound chip hookup for clone Raiden (Modular System). Music and sound effect playback is triggered correctly. FM audio still doesn't sound great, but it's at least functional. - Scramble Spirits: Fixed assert in clone Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c) (ID 05873) - Sega Bass Fishing Deluxe: Added EEPROM for I/O CPU to clone Get Bass: Sega Bass Fishing (Japan) - SNES 4 Slot arcade switcher: Added new BIOS version '12-07'. Found on PCB with Siemens SAB 8051A-P (4KBytes internal ROM undumped). - TH Strikes Back: Fixed sprite vs sprite priority. Moved virtual functions in protected: section. - World Tennis: Correct size for rom ten14.h4 - Fixed rom names in alpha68k_i.cpp, cave.cpp, leland.cpp, midtunit.cpp, midyunit.cpp and seattle.cpp - Dipswitch fixes in exidy.cpp, firebeat.cpp, good.cpp and luckgrln.cpp - Description changes of Asteroids (bootleg on Lunar Lander hardware, set 1), jpmimpctsw.cpp games, Jungle (Italy VI3.02), Mach 2 (set 1), Mortal Kombat II (rev L3.1, European), Mortal Kombat II (rev L3.2, European), NFL Blitz (ver 1.21, Dec 5 1987), Olympus (Juegos Populares), ParaParaParadise 2nd Mix (JAA), Percussion Freaks 4th Mix (G*A25 VER. KAA) (ID 07863), Player's Edge Plus (PP0104) Standard Draw Poker (set 1), Radar Scope (TRS02?, rev. C), Storming Party / Riku Kai Kuu Saizensen (set 1) and World Beach Volley (set 1, PIC16C57 audio CPU) - Renamed (asteroidb) to (asteroidb1), (j6sonicd) to (j6sonice), (j6sonice) to (j6sonicf), (j6sonicf) to (j6sonicd) and (radarscp) to (radarscpc) - MAME . VIDEO RENDERING SYSTEM . BGFX: Fixed failure to load texture .png files when -artpath contains multiple directories. Fixes BFGX Shadow Mask not appearing in slider controls when more than one artpath present in mame.ini (ID 06935). Use platform-specific path separator more consistently (render\bgfx\chainentryreader.cpp). . Fixed assertion failure in some GCC builds (util\palette.cpp) . Increased precision of ellipse calculations. Also optimised drawing fully covered ellipse pixels and added a few comments (emu\rendlay.cpp). . BGFX . CRT-Geom and CRT-Geom-Deluxe enhancements: Added a "brightness boost" feature for the shadow mask that works by making the brightness ratio between bright and dark mask pixels closer to 1 for the brighter parts of the image. Added clamping to zero so that underscanning produces a black border. Added a "raster bloom" effect to crt-geom-deluxe that makes the image grow slightly when the average brightness of the screen is high, mimicking a common defect in CRTs. . Added new compiled shaders for Direct3D, ESSL, Metal and SPIR-V. . MEMORY SYSTEM . Fixed regions and shares on dynamically-installed device maps (emu\emumem*) . Disabled the unmap-value-in-device-map test for now (emu\emumem_aspace.cpp and emumem_mview.cpp) . UI . Clean up slider callbacks. Removed now-unused slider ID macros/enums (ui\ui.h) . Improved messages displayed when files are missing. Only show things preventing launch in UI (not NO_DUMP, optional, etc.). Don't show details like file lengths and checksums in UI. Actually do system audit when launching from favourites. Log the more detailed summary at info level (ui\selgame.cpp, selmenu.cpp and selsoft.cpp). . Fixed exception in debug build when selecting machine category filter (ui\utils.cpp) . INPUT . Prevent race condition between ui_input().pressed() and poll() (ui\inputmap.cpp) . Added prompts to input mapping menu to make it less intimidating (ui\inputmap.cpp) . Don't prompt to toggle to default if default is None (ui\inputmap.cpp) . PLUGINS . Fixed softlist longname (plugins\discord\init.lua) . Fixed watch and write (plugins\cheatfind\init.lua) . Initialized some variables that were causing crashes/asserts in DRVNOCLEAR builds . Code cleanup (video\resnet.cpp) . Moved lru_cache_map to separate header (util\coretmpl.h -> util\lrucache.h) . Converted a few more functions to use std::string_view (emu\input.cpp and inputdev.cpp) . Use std::clamp in various core functions (emu\render.cpp and sound.h) . Updated changed set names (plugins\hiscore\hiscore.dat) . LISTXML: Added a few more driver flags to -listxml output (Driver requires artwork, unofficial, nosoundhardware and driver incomplete) . Make -listmedia compatible with grep/find. Examples: List all systems with .tap support: mame -listmedia | find ".tap" and list all systems with paper tape reader: mame -listmedia | grep (ptap. . Validity: Ensure validation of device tags in non-default slot options (emu\validity.cpp) - VGM player: Added 32 new entries - Compiling . Removed 64 suffix on the main executable. If you want to build 64-bit and 32-bit in the same tree without them stomping on each other, use SEPARATE_BIN=1 (you already need to do this for TOOLS=1 anyway). Updated GitHub CI for executable names, added ORM check to Linux builds. . Unbreak aarch64 and arm builds (makefile). Fixes compiler error on Raspberry Pi (ID 07860). . Declare intent when requesting virtual memory for NetBSD (lib\osdlib_unix.cpp). . Suggested changes to MacOS to build: Changes in macOS section regarding current build requirements. Added basic info for Apple Silicon to macOS build instructions (docs\source\initialsetup\compilingmame.rst). . Initialized some variables which were causing incorrect behaviors in DRVNOCLEAR builds . LLD (LLVM linker) seems to add a minimal symbol that the system libraries catch. Be smarter about ignoring that (osd\modules\diagnostics\diagnostics_win32.cpp). . Fixed issues detected by Coverity Static Analysis (software) (machine\i8271.cpp, video\snes_ppu.cpp, audio\rax.cpp, ui\custui.cpp, ui\confswitch.h, drivers\halleys.cpp, bfm_sc2.cpp, highvdeo.cpp, lordgun.cpp, midzeus.cpp (thegrid), sfcbox.cpp and tnzs.cpp (tnzs.cpp)) . Removed references to non-existent headers and duplicate source file references (scripts\src\bus.lua, cpu.lua, emu.lua, netlist.lua, target\mame\arcade.lua and mess.lua) . Eliminated ARRAY_LENGTH template in favor of C++17's std::size . Moved definition of EQUIVALENT_ARRAY to coretmpl.h (osd\osdcomm.h) . Use STRUCT_MEMBER for save state registration (cpu\sharc\sharc.cpp, machine\gt64xxx.cpp, sound\ym2413.cpp, video\snes_ppu.cpp) . Use std::fill(_n) instead of memset (cpu\arm7\arm7.cpp, tms9900\tms9995.cpp, machine\pckeybrd.cpp and video\jangou_blitter.cpp) . Removed obsolete typedef (emu\emucore.h) . Used object finders for istrebiteli.cpp . Removed unneeded machine().root_device() calls (megatech.cpp, mrgame.cpp, stuntair.cpp and vegas.cpp) - Debugger . Fixed parsing for preincrement & predecrement operators. Make debugging function print_tokens usable again (debug\express.cpp). . Added context menu with Copy Visible and Paste commands to debug views to win32 debugger (debugger\win\debugviewinfo.cpp) . Qt debugger updates: Added context menu with Copy Visible and Paste commands to debug views. Made memory view last PC display a context menu item. Fixed crash on right-clicking a memory view showing something other than an address space (ID 06350). Improved scrolling behaviour in Qt debugger. Fixes disassembly view glitch on bottom line (ID 07795). . Fixed commas in dumpkbd output (emu\natkeyboard.cpp) . Fixed debugger problem when writing values into memory (MESS Myarc Geneve 9640) and added debugger method to TMS9995 . Improved behaviour of bottom line in Qt and win32 debugger views. Ported memory tracking feature from Qt to win32 module. . Fixed build on GCC (tools\unidasm.cpp) . Updated state views when memory is modified through the debugger (since registers can be memory-mapped) (debug\debugcpu.cpp) . Stop converting debugger console commands to all lowercase before parsing them. Case insensitivity has been preserved for command names, CPU and region tags and certain symbolic parameters (as well as expressions, which were treated as case-insensitive in other contexts), but filenames and character constants are no longer automatically lowercased. . Removed some superfluous c_str() calls (debug\debugcmd.cpp and debugcon.cpp). Removed local member referencing debugger_cpu, which is accessed only rarely since the console now tracks the visible CPU (debug\debugcmd.cpp). . Added m68000 to debugger\debuggdbstub.cpp . Added CLS command to clear console buffer (debug\debugcmd.cpp) 0.228 - New games: Club Card (ver. 1.1 English), Get A Way and Namennayo (Japan) - New Working games: 'Cat and Mouse (type 01 program)', Forte Card (Ver 103, English) and Roller Coaster (JPM) (IMPACT) - New Non-Working games: Bingo Circus (terminal), Champion Pool (v1.0), Diamond King, Fatal Fury Special (SNES bootleg), Happy Pierrot, Heroine's Memory, Hungry Hungry Hippos (redemption game), Mini Guay, New! Cherry Plus (Ver. 3.10), Pontoon (Konami), Sonic Blast Man's Janken Battle, Surprise 5 (Ver. 1.19), Tsururin Kun and 'unknown 'Rolla' slot machine' - New clones: beatstage 4th MIX (ver KA-A), Big Fight - Big Trouble In The Atlantic Ocean (Japan, rev F), Crime Patrol v1.0, Dirt Devils (USA, Revision A), DrumMania 4th Mix (G*A25 VER. KAA), The Hole (bootleg of The Pit), New Draw 8 Lines (Version 2.1), The Porter (bootleg of Port Man), Puchi Carat (Ver 2.04A 1997/11/08), Rabbit (Japan 3/6?), Red Hawk (horizontal, Spain), Sega Bass Fishing Deluxe (USA), Treasure Quest (Protocol) and Zabavni Karti (Bulgarian, encrypted) - New AGEMAME games: Adults Only (Ukraine, V. 43.17), Black Pearl (Ukraine, V. 42.01), Black Pearl (Ukraine, V. 43.04), Black Pearl (Ukraine, V. 43.07), Blits Loto (Ukraine, V. 30.08), Del's Millions (Bellfruit) (set 11, UK, ??GBP Jackpot) (Scorpion 2/3), Del's Millions (Bellfruit) (set 12, UK, ??GBP Jackpot) (Scorpion 2/3), Donkey Kong (Maygay) v?.? (M1A/B), High Roller (Bellfruit) (Scorpion 4), Grand Canyon (Ukraine, V.42.06), Grand Canyon (Ukraine, V.42.13), Grand Canyon (Ukraine, V.43.05), Lucky Shell (Ukraine, V. 42.10), Maski Show (Ukraina V. 42.05), Maski Show (Ukraina V. 42.11), Maski Show (Ukraina V. 43.07), Safari (Extrema, Ukraina, V. 42.04), Safari (Extrema, Ukraina, V. 42.07), Safari (Extrema, Ukraina, V. 43.08), Strong Link (Ukraine, V. 43.45), The Simpsons (Maygay) (M1A/B) (set 9) and SPRINT (Maygay) (M1A/B) and Treasure Hunt (Extrema, Ukraina, V. 34.02) - Removed games: 'Arcadia (JPM) (IMPACT) (V10, set 2)' and Reno Reels (JPM) - New drivers: cosmicg.cpp, diamondking.cpp, getaway.cpp, heromem.cpp, ice_hhhippos.cpp, kpontoon.cpp, miniguay.cpp and sbmjb.cpp - New devices: bt471, bt475, bt476, bt477, bt478, ds1202, jpmtouch, mfd51w, mfd75w, oa_d34v, psx_analog_joystick, psx_controller_port, psx_dualshock_pad, psx_multitap, psx_standard_controller, psxcard, psxcontrollerports, r65c22, r65nc22, sega8_x_terminator, sys573_jvs_host and w65c22s - CPU . ARM: Fixed carry flag in ADC instruction (cpu\arm\arm.cpp) . ARM7: Added optional logging for Windows CE calls (arm7\arm7.cpp and cecalls.hxx) . Dynamic Re-Compiling: Allow recompilers to work with W^X policy. Slightly reduce the number of page protection state changes (cpu\drcbex64.cpp/drcbex86.cpp). Added compile-time option to disable recompiler W^X mode. Detect whether RWX pages are supported (cpu\drccache.cpp). . MCS-48 . Separated F0/F1 from upi41 STS and fixed F0 flag read from upi41_master_r. Small bugfix for DA A (mcs48\mcs48.cpp). Fixed possible problem with A11 and RET during interrupt. . Fixed (MESS) Odyssey 2 loading games with -cart not working (i8048; mcs48\mcs48.cpp) . Mitsubishi M37450 . Restored M740 T flag correctly during PLP and RTI. Previous emulation inherited from the 6502 base device caused these instructions to always set T in P and not affect instruction decoding at all (m6502\dm740.lst, m740.h and om740.lst). . Changed many M740 instruction timings and dummy fetch patterns to match Mitsubishi documentation rather than 6502 behavior. Added overrides to be used for separable data space in future M50734 emulation. Fixed incorrect addition of Y to address of EORT $zp. Eliminated INCT A and DECT A instructions (T=1 has no effect on INC A or DEC A). Added STP and WIT instructions (not distinguished for now). Eliminated generic M740 device type (not used by anything) (m6502\dm740.lst, m740.cpp/h and om740.lst). NMI does not exist. Updated notes. . Motorola MC68000: Don't clear interrupt input state upon reset (m68000\m68kcpu.cpp) . NEC V53A: Allow configuration registers to be read back . Toshiba TMP95C06x: Fixed disassembly of PC-relative addressing (tlcs900\dasm900.cpp) - SOUND . Ensoniq 5505/5506 to 5510 interface: Removed unneeded logerror (sound\esqpump.cpp) . RCA CDP1863: Initialized more member variables . SSi TSI S14001A: Simplified code, removing the uDeltaAdrP2 switch. - DEVICE . 6821 PIA: Added callback to set port B three-state output . AM9517A: Simplify software request handling . Atari Slapstic . Added missing Slapstic triggers to Vindicators Part II . Fixed slapstic communication in Gauntlet and Peter Pack Rat. Fixes protection issues when finishing a level in gauntlet, gaunt2 and clones (ID 07834). . Cassette tape image: Added cassette_image::image_read_byte method for reading one byte at a time (formats\cassimg.cpp) . Dallas DS1202 Serial Timekeeping Chip: Added DS1202 variant . Floppy . Actually build the accepted variants list in floppy (imagedev\floppy.cpp). Provide the variants to the floppy formats. Updated floptool to the new prototypes (tools\floptool.cpp). . If an IMD image is 40 track but the drive is HD, put the data on even tracks like hardware would show. Use has_variant() and accept either HD or QD as 80-track drives (formats\imd_dsk.cpp). . Fixed precision issue and missing cache clear on write (imagedev\floppy.cpp) . Changed the extracted bitstreams into vector and the extracted sectors into vector> . When the floppy head stays on an unformatted track from more than an hour and ten minutes and reading happens then interval_index*2+1 overflows. Found and tracked down by Colin Howell, with much thanks (imagedev\floppy.cpp). as_ticks returns a u64, so go unsigned all the way (imagedev\floppy.cpp). . Imagetek I4100/I4220/I4300 VDP: Moved metro.cpp and hyprduel.cpp interrupt control (mostly) down into VDP. Added state of CRTC related value for debug. . K057714_device GCU: Implemented display resolution register and various fixes to drawing . MOS 6522 VIA: Distinguish some different VIA types - astrcorp.cpp . Derive screen timings from crystals and cleaned up code . Added vblank and DRY on memory maps. Splitted state machine, fixed video and added default EEPROM. Changed m_draw_sprites -> m_sprite_dma. Confirm sprite drawing being same deal, no need for override. . Added meat to Stone Age. Moved Stone Age decryption data and RAMDAC declaration in a subclass, make screen always enabled for convenience. . Added preliminary decryption for Dino Dino, Win Win Bingo and clones. Updated Zulu (Ver. ZO.02.D). - aristmk5.cpp and ertictac.cpp: Acorn Archimedes code reorganization: Separated Acorn IOC and MEMC into devices. Emulated 8051-based serial keyboard. Ensure only one logical page is mapped to a single physical page (machine\acorn_memc.cpp). Fixed RISC OS POST IOC register test. Added debug code to display RISC OS POST failures (drivers\aa310.cpp). Dumped Acorn Archimedes keyboard microcontroller (machine\archimedes_keyb.cpp). - atarisy1.cpp . Correct LSI BIOS 136032.115 regression . Added 'Flip Screen' configuration to clone Indiana Jones and the Temple of Doom (cocktail) - blitz68k.cpp: Switched to logmacro - bzone.cpp: Added save state support (audio\redbaron.cpp) - champbwl.cpp: Added controls for cocktail mode - cosmic.cpp: Added raw screen timing parameters based on schematics - dynax.cpp and hnayayoi.cpp: Added DIP switch locations as shown in service mode for some games. Identified one more dipswitch for Hana Kochou and some DIP switches for clone Hana no Mai (Japan). - firebeat.cpp: Fixed input range for wheels in Keyboardmania games. Fixed flash clearing for Pop'n Music (machine\intelfsh.cpp). - hikaru.cpp: Added pinout for AICA jtag connector - hng64.cpp: Added flat shaded polygons, with no texture or lighting (video\hng64_3d.hxx). - hyprduel.cpp and metro.cpp: Moved interrupt control (mostly) down into VDP. VDP clock is not so standard on some PCBs (gakusai and gakusai2). - jpmimpct.cpp and jpmimpctsw.cpp: Various changes. Refactored driver to use emulated DUARTs for both the primary and the touchscreen (fixes video corruption in cluedo intro). Fixed bugs in the non-video hookups, including incorrect shifts on addresses and data. Hooked up BACTA_DATALOGGER so that the 'protocol' sets boot. Hooked up actual Bt477 device for palette in the video-based games. Started giving non-video games usable default inputs (jackpot/stake keys). Fixed some ROM loading. Reparented some sets based on analysis, as some were mishandled due to incorrect source information. - ksys573.cpp . Implemented JVS memory card reader device for System 573 . Improved accuracy of System 573's digital I/O audio emulation. Refactored mas3507d and k573dio/fpga to be more accurate to real hardware. . Updated 3rdparty\minimp3\minimp3 to latest master and removed local changes. Fixed missing song playing during attraction mode while showing Dancemania promos in clone Dance Dance Revolution Solo 2000 (GC905 VER. JAA) (ID 07713). - ladybug.cpp: Added raw screen parameters - magicard.cpp: Decapped and dumped PIC16F84 for clones Magic Card Jackpot (4.01) and Magic Lotto Export (5.03) - metro.cpp: Fixed tilemap offset regression. Fixes bad graphics on screen margins in bangball, msgogo, puzzli and probably others (ID 07845). - model3.cpp: Correct game set names & game titles. Added miscellaneous documentation updates/notes. - mpu4.cpp and nwk-tr.cpp: Use strcmp instead of core_stricmp for per-game hacks - namcos2.cpp and namcos21_c67.cpp: Restored T flag correctly during PLP and RTI (m6502\dm740.lst, m740.h and om740.lst). Fixes coin counter in Starblade does not work (ID 07837) and credit buttons in Lucky & Wild and Steel Gunner 2 doesn't work (ID 07842). - neogeo.cpp: Cleaned up SMA protection bitswaps (neogeo\prot_sma.cpp) - playmark.cpp and powerbal.cpp: Preliminary minor cleanups in preparation of subclassing and adding of the new World Beach Volley MCU dumps. Started splitting the driver in derived classes. - segas32.cpp: Added save state support and fixed backdrop color fill when screen resolution is changed - snesb.cpp: Revisited some decryptions to standardize them - AGEMAME . Added PLD dumps to bfm_sc2.cpp and maygay1bsw.cpp . Improved service inputs for consistency with other drivers in jpmimpctsw.cpp. Promoted Roller Coaster and clones to working. . Started refactoring/researching more of JPM System 5 drivers (jpmsys5.cpp and jpmsys5sw.cpp). Various sets now proceed further in boot sequence, but still fail. Some additional elements (reel lamps, 7segs etc.) now have outputs so can be represented in fallback layout. Use recently added repeater feature of layouts in fallback layout* begin jpmsys5 refactoring. . jpmimpct.cpp/jpmimpctsw.cpp progress on non-video fruit machines: Hopper tweaks to allow many more sets to boot. Return 0xffff from some unknown memory addresses to allow later games to boot (security / anti-tamper?). Better per-game defaults to allow more sets to boot. Alt reel configs for a handful of ACE games to allow them to boot. Removed a few bad dumps. Correct ROM loading on several sets. Fixed up manufacturer information for several sets. Use timed coin optos for coins so that they insert reliably without triggering scam detection. Adding per-game input configurations. Various notes/observations based on behavior to identify where improved hookups are still needed. Work on correctly mapping buttons for each machine. . Added preliminary decryption for all extrema.cpp games - Battletoads: Fixed garbled graphics (ID 07838) - Black Tiger: Attempted to make clone Black Tiger (Modular System) do something. Still a long way to go. - Buggy Challenge: Decreased steering wheel sensitivity - Cat and Mouse: Added new 4k maincpu rom to clone (type 01 program) (Game now playable) - Chase Bombers: Fixed shifter displays (layout\cbombers.lay) (ID 07843) - Cosmic Guerilla: Separated driver from Cosmic Alien driver. Added MC6845 CRTC and use it for all video updates. Configure screen with raw parameters. Added support for display flipping in cocktail mode. - Crazy Balloon: Added accurate video timings and watchdog, reduced CPU clock and clean up various things. - DrumMania: Added audio CD, but the game is still not playable. - Erotictac/Tactic: Replaced '24C02 I2C Memory' with PCF8583 RTC device - Forte Card . Added a default serial EEPROM after an exhaustive reverse-engineering work of Grull Osgo. Refactored and cleaned up the sets and driver. Added technical notes. Added Coin In/Out counters and Auto Play DIP switch. . Promoted clone Forte Card (Ver 103, English) to working - Gals Panic II (Asia): Correct the rom loading and generate an image list - Gladiator: Fixed PORT_CHANGED typo - Jungle (VI3.02): Completed decryption and added inputs and (bad) sound to Jungle (VI3.02). Added a second tilemap. - Kaiser Knuckle: Don't clear interrupt input state upon reset (m68000\m68kcpu.cpp). Fixes missing sound in Kaiser Knuckle (ID 07841). - Kingpin: Various updates: Added basic layout showing buttons and lamps. Hook up lamp outputs and hopper. Map missing buttons and second coin slot. Label setup mode dip switches. Updated default NVRAM to enable attract music, second coin slot and hopper. - KO Punch: Acknowledge coin IRQs - Magic Bomb: Two more address bits are involved in the Magic Bomb (Ver. L3.5S) descrambling. Partially decrypted clone Magic Bomb (Ver. AA.72D, 14/11/05), same problem as Stone Age, hangs at ROM error. Added sprites gfx rom and EEPROM dump for clone Magic Bomb (Ver. A3.1A). - Mini Super Fruits: Cirsa 810601-A PCB has 4 dipswitches, not 8. - Mr. Kougar: One gfx rom is confirmed bad in clone Troopy (bootleg of Mr. Kougar) - Quiz Show: Added cassette device - Raiden: Lower the OKI volume - Shogun Warriors: Confirm DIP defaults in Shogun Warriors/Fujiyama Buster by manual - Slime Kun: Added dipswitch definitions - Street Fighter II': Champion Edition: Documented 'Turbo Vs CPU' mode and 'Projectile Path' dipswitch settings for clones 'Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)', (set 2) and (set 3) hacks. - Trebol: Transfer Trebol to MissBamby driver, since hardware appears to be almost the same. - Ufo Senshi Yohko Chan: Correct rom labels and location for 'Ufo Senshi Yohko Chan (bootleg, not encrypted)', verified against PCB. - Wiping: Fixed spriteram - World Class Bowling: Fixed game resets itself during gameplay (ID 07846) - World Rally: Fixed 'Pot Wheel' analog control don't work in game and Test Mode (ID 07836) - Xybots: Fixed coin inputs (ID 05379) - Fixed rom names in fortecar.cpp, laserbat.cpp, relief.cpp, system1.cpp and taito_f3.cpp - Dipswitch fixes in atarisy1.cpp, blktiger_ms.cpp, cps1.cpp, dynax.cpp, fortecar.cpp, hnayayoi.cpp, jpmimpct.cpp, jpmimpctsw.cpp, jpmsys5sw.cpp, kaneko16.cpp, kingpin.cpp, konmedal.cpp, missbamby.cpp, playmark.cpp and powerbal.cpp - Description changes of Cat and Mouse (type 01 program), Cat and Mouse (type 02 program), Daytona USA 2 (Japan, Revision A), Daytona USA 2 Power Edition (Japan), Dino Dino (Ver. A1.1), Dirt Devils (Export, Ver. G?), (all) extrema.cpp, Fighting Vipers 2 (Japan), Fighting Vipers 2 (Japan, Revision A), Get Bass: Sega Bass Fishing (Japan), Get Bass: Sega Bass Fishing Deluxe (Japan), Get Bass: Sega Bass Fishing Upright (Japan), (many) jpmimpctsw.cpp games, L.A. Machineguns (Japan), Le Mans 24 (Japan, Revision B), Scud Race Deluxe (Revision A), Scud Race Plus Twin/DX, Scud Race Plus Twin/DX (Revision A), Scud Race Twin/DX (Australia), Scud Race Twin/DX (Export), Sega Rally 2 (Export), Sega Rally 2 Deluxe (Export), Ski Champ (Japan), Spikeout (Export, Revision C), Spikeout Final Edition (Export), Star Wars Trilogy Arcade (Export), Star Wars Trilogy Arcade (Export, Revision A), The Lost World (Japan, Revision A), The Ocean Hunter (Japan) and Zulu (Ver. ZO.02.D). - Renamed (bass) to (getbassur), (bassdx) to (getbassdx), (dirtdvlsa) to (dirtdvlsau), (fortecar) to (fortecrde), (j6roller) to (j6rollerk), (j6rollera) to (j6rollerl), (j6rollerb) to (j6rollerm), (j6rollerc) to (j6rollern), (j6rollerd) to (j6roller), (j6rollere) to (j6rollera), (j6rollerf) to (j6rollerb), (j6rollerg) to (j6rollerc), (j6rollerh) to (j6rollerf), (j6rolleri) to (j6rollerg), (j6rollerj) to (j6rollerh), (j6rollerk) to (j6rolleri), (j6rollerl) to (j6rollere), (j6rollerm) to (j6rollero), (j6rollern) to (j6rollerp), (j6rollero) to (j6rollerd) and (j6rollerp) to (j6rollerj), (scud) to (scudau), (scuda) to (scud), (scudj) to (scuddx), (srally2x) to (srally2dx) and (zoo) to (zulu). - MAME . VIDEO RENDERING SYSTEM . Use std::string_view instead of bare pointers in various functions (emu\rendlay.cpp) . Use std::fill instead of memset for dirty vector. Added range check (util\palette.cpp). . Dependency refactoring. Splitted out layout class declarations into rendlay.h, with some adjustments for the resulting incomplete types (std::reference_wrapper unfortunately does not allow these by C++17 rules) (emu\render.h). Moved old header contents to layout/generic.h (emu\rendlay.h). . BGFX: Added LCD-grid shader. Note that this is currently only compiled for GLSL. Fixed overlapping register in LCD-grid shaders and compiled for Direct3D, SPIR-V, Metal etc. . MEMORY SYSTEM . More idiomatic way to access members inherited from argument-dependent base templates (may or may not work around GCC11 bug) (emu\emumem_*.cpp) . Fixed some issue when the view does nor span an exact power-of-two block (emu\emumem_hedr.ipp and emumem_hedw.ipp) . OSD . Splitted out file, directory and path classes and methods to a new header (osdfile.h), Doxygenizing the documentation comments (osd\osdcore.h). . Centralized basic functions and de-virtualize various getters (osd\modules\osdwindow.cpp) . Fixed a couple of fixed-size buffers in Windows OSD code. Marked MAME as aware of long paths in Windows manifest. Made a cleaner, thread-safe API for getting volume names. . Minimised full-screen windows on losing focus (osd\windows\window.cpp). Clean up window title formatting. Show data type model in window title. Moved window title formatting to a single place (osd\modules\osdwindow.cpp). Rearranged window title to put system name first (modules\osdwindow.cpp). . Moved GCC intrinsics out of eminline.h so MAME_NOASM will take the pure C++ implementation with GCC (makes testing the fallback easier). . UI: Fixed use of strmakelower (ui\selsoft.cpp) . PLUGINS . Migrate remaining XML cheat code for LUA API changes (plugins\cheat\cheat_xml.lua). Fixes cheats show errors attempting to activate (ID 07830). . Use history.xml and added XML parser for it (plugins\xml\init.lua and plugin.json) . Removed logging and fixed query (plugins\data\data_history.lua) . Better hiscore parsing and other improvements (plugins\data\data_hiscore.lua) . INPUT: Fixed a recent regression with processing XInput DPAD input item tokens. Prevent code_to_token from blowing up in strange cases (emu\input.cpp and inputdev.cpp). . Removed natkeyboard from ioport_manager (emu\ioport.cpp) . Changed string processing to use std::string_view parameters. Added sum16 type (lib\util\hash.cpp and hashing.cpp). Added -h option to print hashes and 16-bit sums for all files (tools\romcmp.cpp). . Make "slot" feature in software lists and a few related features case-sensitive . Simplified snapshot/quickload callback parameters. Removed some uses of auto_alloc_array (imagedev\snapquik.cpp). . Adopt std::string_view as the input parameter type for most functions (this necessitates some explicit copying to std::string since other APIs have not been updated yet). Remove zippath_parent_basename, whose implementation was utterly broken and fortunately unused. Fixed unintialized variable issue in zippath_resolve. Eliminated one internal helper function (util\zippath.cpp). . Documentation update: Added note explaining that view options saved in machine CFG take precedence over INI/command line. Added prerequisites for building HTML documentation under MSYS2 and Fedora Linux. Explicitly mentioned that Ubuntu modifies GCC to enable "fortify source" by default in the relevant section. Removed obsolete reference to glibstdc++6. Re-formated compiling guide source (hard wrap at 80 columns, typographical quotes, code blocks for sample command lines). - Compiling . C++ comment conversion (util\xmlfile.cpp). Added get_attribute_string_ptr method that distinguishes between empty strings and absent attributes without falling back to C strings (util\xmlfile.cpp). . Eliminated redundant std::string("...").c_str() pattern (emu\ioport.cpp) . Initialized more pointers and variables (drivers\hitpoker.cpp and video\tlc34076.cpp). Fixes random chance of launching with missing colors in ghoshunt, mouseatk, tickee and tutstomb (ID 07833). . Changed puts to take a std::string_view parameter (util\corefile.cpp and emu\fileio.cpp) . Removed the using declaration importing util::string_format into the global namespace. It has been moved to emucore.h and a few tool sources. Other references have been qualified (util\strformat.h) . Disaggregate many #includes that were including other standard or custom headers. emu.h now includes basically the same things that it did, but other headers have been streamlined; for instance, emucore.h no longer stealth-includes osdcore.h several ways. . The string_format calls need qualification now (file\windir.cpp and winrtdir.cpp) . Purge #include "rendlay.h" where not necessary . Changed some unused functions to use [[maybe_unused]] attribute so they don't rot (audio/redbaron.h, drivers\deco_ld.cpp and pinball2k.cpp) . Disable MSVC windows CI, breaks for probably unfisable heap space issues (workflows\ci-windows.yml). . Fixed build on FreeBSD/powerpc64. FreeBSD uses powerpc64 name for what Linux calls ppc64. . Clean up inline maths utilities. Removed inline assembly for operations compilers handle well. Added ARM and AArch64 implementation for a few operations. Added unsigned integer add with carry out operations. Make preprocessor usage a bit more consistent in inline utilties for PPC/ARM. . Much more core std::string_view modernization: Removed corestr.h from emu.h; update a few source files to not use it at all. Changed strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type. Changed strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string. Removed the string-modifying version of zippath_parent. Changed tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char*. Removed the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only. Moved the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this). Change doutput_manager to use std::string_view for output name arguments. Changed core_options to accept std::string_view for most name and value arguments (return values are still C strings for now). Changed miscellaneous other functions to accept std::string_view arguments. Removed a few string accessor macros from romload.h. Removed many unnecessary c_str() calls from logging/error messages. . Removed some unnecessary .c_str() calls (tools\chdman.cpp) . C++17: Replaced ATTR_UNUSED with [[maybe_unused]]. Fixed for GCC build ("-Wno-error=attributes", -- GCC fails to recognize some uses of [[maybe_unused]]). 0.227 - New games: Black Touch II (Korea) and Tsurikko Penta - New Working games: Klax (version 5, bootleg set 1), Klax (version 5, bootleg set 2), Master's Fury and Multipede - New Non-Working games: Biplane [TTL], Dancing Fever Gold (J 000821 V2.001), dogstation Deluxe, Moto GP (MGP1004-NA-B), Pro Evolution Soccer The Arcade (ver EAA), Slime Kun, Space Pokan, Trio de Bingo, Twin Basket, 'unknown 960606-5 based machine', 'unknown Cirsa slot machine on 820501 A PCB', 'unknown Cointek game', 'unknown Konami medal game (game code GS662)', 'unknown Recreativos Franco slot machine (model RF51W14-CG)' and Win Bingo 2006 - New clones: 1944: The Loop Master (Euro 000620), Astro Ambush (Scramble bootleg on Galaxian hardware), Cadash (US, version 1?), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg, set 2), Cookie & Bibi 2 (set 2), Croquis (Korea), Cuore 1 (Italian, set 2), Cuore 1 (Italian, set 3), Cuore 1 (Italian, set 4), Cuore 1 (Italian, set 5), Death Crimson OX (USA), Diana Olakoa (v8.38), Dragon Ball Z 2 - Super Battle (bootleg), Endless Riches (Ver 1.21), F-1 Grand Prix (set 1), Final Lap R (Japan Rev. B), Flying Shark (World, bootleg), Forgotten Worlds (Japan), G-Darius (Ver 2.02O), Hishou Zame (Japan, bootleg), Magic's 10 2 (ver. BETA3), Moune Creste (Jeutel French Moon Cresta bootleg), Ms. Pac-Man (bootleg, set 4), Narc (rev 4.00), Narc (rev 1.80), Olympic Darts K7 (v3.00), P.O.W. - Prisoners of War (US version 1, mask ROM sprites), Pool 10 (Italian, set 10), Prop Cycle (Rev. PR1 Ver.A, Japan), Riot (Woong Bi license), Ryu Jin (Japan, ET910000B PCB), Sauro (set 1), Scramble (unknown bootleg), Street Fighter II': Champion Edition (Playmark bootleg, set 3), Super Cup Finals (Ver 2.1O 1993/11/19, single PCB), Twinkle (set 2), Wardner (World, bootleg) and Wardner no Mori (Japan, bootleg). - New PinMAME games: Ator (set 1, 2 bumpers), Jurassic Park (3.05), Last Action Hero (unknown CPU, display L1.05), Le Grand 8, Pool Player (1.0) and Storm - Removed games: Mexico Lindo and Shooting Master (8751 315-5159) - New drivers: cirsa820xxx.cpp, cointek.cpp, kongs470.cpp, rf51w14cg.cpp, twinbskt.cpp and winbingo.cpp - New devices: 3xtwin, aplcd150, com52c50, jaleco_ms32_sysctrl, pcf8582 and x1_012 - New artworks: https://mrdo.mameworld.info/ + https://mrdo.mameworld.info/mame_artwork_ingame.php - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . ARM7: Fixed interaction between instruction prefetching with the MMU enabled. Added rudimentary TLB support. Allows (MESS) HP Jornada 720 to boot further. . Dynamic Re-Compiling: Don't leak using namespace from the header (cpu\drcbex86.cpp and cpu\drcbex64.cpp) . Hitachi H8 . Preliminary support for short address mode (h8\h8_dma.cpp). . Fixed interpretation of IPR bits for the H8S CPUs. (MESS) PSR-340 PortaSound boots now (cpu\h8\h8_intc.cpp). . Fixed race condition in SCI where a new byte was written right before the last tick and froze the transmitter (h8\h8_sci.cpp). . Fixed the watchdog read, fixes (MESS) Yamaha MU80 test mode (h8\h8_watchdog.cpp). . Intel 8085A: Fixed sta/lda instruction name (i8085\8085dasm.cpp). Make sure SOD outputs 0 upon the first reset. . Mitsubishi M740: M740 family updates. Added cycle clock dividers. Removed SO input line (not apparently supported on any Mitsubishi model). Fixed cycle timings for CLB/SEB ($zz), BBC/BBS (all modes) and RRF. A few more timing corrections (m6502\om740.lst). . Motorola MC68000: Accept addressing mode 6 for FSAVE/FRESTORE (m68000\m68kfpu.cpp) . STmicro ST6228: Various changes. Fixed RETI and LD rr,A opcodes. Optimized internal register handling. Converted to use logmacro. Added initial timer support. . Texas Instruments TMS57002 'DASP': Clear some forgotten registers . Toshiba TMPZ84C015: Added WDT emulation - SOUND . AY-3-8910A PSG: Removed old printf msg . Biquad Filter: Allow recalculating the filter values at runtime if a component value can be altered or changed through some means . Gaelco GAE1: Fixed gaelco_gae1_device channels init, fixes random crashes and possibly audio issues in Surf Planet (sound\gaelco.cpp) . Namco C140: Reduced duplication in fetching sample . Samsung KS0164 audio processor: Pitch is floating point . Sega Universal Sound Board: Fixed Sega USB sound device, was using more memory than allocated (fixes Zaxxon and segag80r/segag80v.cpp) . Seibu ADPCM interface: Use interface to MSM5205 device for seibu_adpcm. Fixed hardware notes (audio\seibu.cpp). . Yamaha YMF278B OPL4: Fixed the OPL4 low byte order in 12bits so that it matches the datasheet and the multipcm (GEW8) . Yamaha YMW-258-F: Ported 12-bit sample support from Yamaha SWP30, still needs work. Fixed endianness of word reads. Some 12-bit samples sound almost reasonable now. Fixed the 12bits mode decoding. Found the real 12-bit format flag. Correct clock divider and clocks for users of YMW-258-F to match schematics. . Yamaha YMZ280B PCMD8: Fixed major mixer overdriving. Rebalance sound after YMZ280B change (drivers\firebeat.cpp, gunpey.cpp, konamim2.cpp, realbrk.cpp, tecmosys.cpp, vgmplay.cpp and zn.cpp). . YMF262 OPL3: Fixed off-by-one error in OPL3_SLOT_CONNECT - DEVICE . 6821 PIA: Improved PA and CA2 output handling . ATAPI CD/DVD-ROM and SCSI CD: Fixed calculating relative value in T10MMC_CMD_READ_SUB_CHANNEL (machine\t10mmc.cpp) . Atari Slapstic . Removed legacy init/reset, use the start device ones. Make the interface even nicer. Removed legacy stuff and reduced logging (machine\slapstic.cpp). . Between a guess, the opcode going through the memory and and the cycle-perfect 6502 the kludge is not needed anymore. Removed access68k and space as a secondary consequence (machine\slapstic.cpp). . Modernised the Slapstic hookup in atarig1.cpp, atarisy1.cpp, cyberbal.cpp, gauntlet.cpp, rampart.cpp and xybots.cpp. . Converted Empire Strikes Back to the Slapstic bank interface . The Slapstic in Marble Madness seems to trigger on more than the banking zone (machine\slapstic.cpp and drivers\atarisy1.cpp) . Fixed Slapstic problems in Rampart level 4, big thanks to rodneylives for all his help (ID 07119). Note: The Slapstic seems to trigger on the whole rom, but that slows things down too much. Limit to the range Rampart actually needs. . Discrete Netlist: Give devices the C++17 namespace treatment . I2C Memory: Added PCF8582 device . Imagetek I4100 052 VDP: Added some missing initializations, hopefully fixing random metro.cpp crashes at startup (video\imagetek_i4100.cpp). . Intel 8275 CRTC: Fixed a case where the DRQ output could remain unexpectedly set due to DMA cycles happening too quickly. . K055673 Sprite Generator: Put the real memory size (video\k053246_k053247_k055673.cpp). Fixes the Soccer Superstars crashes, if not the memory test itself. Fixes Racin' Force crashes in attract mode after a while (ID 07318). . MC146818 RTC: Added square wave output . MC68681 DUART: Output counter ready on OP3. Suppress unnecessary interrupt callbacks. Fixed counter clock rate calculation. . PC Keyboard: Merged "PC KBDC" device with slot connector. Removed 'PC KBDC' and 'PC keyboard port' device. . PCF8583 RTC with 240x8 RAM: Reimplemented I2C protocol and added clock and alarm modes (machine\pcf8583.cpp) . Rockwell 10937 VFD controller: Initialized one variable in the constructor to avoid race condition (machine\roc10937.cpp) . Seta SETA001 Sprites: Moved gfxdecode down into device. Added putative master clocks (video\seta001.cpp). . SNES PPU: Use device_palette_interface for palette, fixed CGRAM size and direct color behavior (video\snes_ppu.cpp). . TMS9928A VDP: Fixed failure to output initial interrupt state - CHDMAN: Support Redump extended bin/cue format for Dreamcast discs. Initial check-in of Redump bin/cue support for Dreamcast GDI. Correctly identifies multi-cue format and sets GDROM flags. Creates a working Crazy Taxi chd from a Redump bin/cue. Disabled debugging code and started tidying up. Simple tool to compare chdman bin/cue and bin/gdi conversions, should be identical. Final tidy up, the testing is going well. Testing failed for Aero Dancing i (Japan), didnt zero last track. Added some comments about .gdi compatibility. Addressing review feedback on pull request #7422. Match TOSEC layout for Pattern I discs (3 tracks). Initial support for Pattern III discs. Pattern III discs now work and match TOSEC layout. Reading datasize from wrong track, same result though. Identify the GDI pattern, makes the code clearer. Support for Pattern II and consecutive AUDIO tracks. Use C99 type not POSIX type to build on Windows. Support Redump tracks split across two .bin files (util\chdcd.cpp and tools\chdman.cpp). - aristmk4.cpp: Fixed driver. May be slightly incorrect, but was is sure is that the current video update routine needs 0x804 bytes, not 0x800. - atarisy2.cpp: Fixed atarisy2 way too magic use of shares - balsente.cpp: Removed outdated MC6850 ACIA hack (sound communications now work better without it). Fixes Sente Diagnostic Cartridge fails Sound Board Test (ID 07815). - bnstars.cpp, ms32.cpp, tetrisp2.cpp . Wrote a Jaleco MS32 System Control Unit device. . bnstars.cpp: Fixed machine configuration and proper split for sprite and gfxdecode devices. Make it boot again. Note: bnstars1 never ever set up the CRTC at boot, causing no irq. We currently compensate by basically giving one frame of time, ofc on the real thing the first vblank is really when screen sync occurs. . ms32.cpp: Fixed sprite transfer direction bit, removes an ugly per-game table. Fixed drawing honoring the wrong variable and causing a segmentation fault. Correct palette size. Move optional features (YUV, zooming) at init time (video\ms32_sprite.cpp). . tetrisp2.cpp: Fixed extra screens in stepstag/vjdash to run at 60 Hz instead of 30. Fixed rightmost screen in stepstag/vjdash bitmap configuration (thanks to Osso for catching it). - bublbobl.cpp, kikikai.cpp, pacman.cpp and rallyx.cpp: Eliminated set_input_line_vector and HOLD_LINE - chihiro.cpp, naomi.cpp and triforce.cpp: Make DIMM board work again after memory system changes. Removed usage of auto_alloc_array (machine\naomigd.cpp). - cosmic.cpp: Fixed bug in sound output handler and cleaned up sample playback code. Removed some redundant calls, and turned the questionable [[fallthrough]] into a break. - cps1.cpp: Removed usage of octal literals, probably a typo (video\cps1.cpp). - cps3.cpp: Removed GAME_FLAGS alias now that it's not multiple flags anymore - cv1k.cpp: A bit more accurate frame rate - de_3.cpp . Fixed some parent-clone relationships, sorted the sets and change set names to follow a common pattern. Fixed memory share width and Endianness issues. . New clones marked as NOT_WORKING, added CPU and display version on games descriptions and fixed some games metadata. Added display version when available and fixed some metadata. Added CPU version information to descriptions and used the region version string from the display ROM on the description also. - dec8.cpp: Added DIP locations - deco32.cpp: Replaced sprite alpha blending with alternate frame flicker (video\deco_zoomspr.cpp) - drgnmst.cpp . Improved scrolling, buffer sprites and added notes on offsets. . Redumped of 'Master's Fury' from partially populated PCB marked "Dragon Master 96". Use the proper YM2151 type and mapping. Promoted game to working, remaining issues are minor. Tweak some priorities, although still not 100% how they derive from the register (doesn't seem identical to cps1). Added PCB layout. - dynax.cpp: Clarified some unknown dipswitches in tenkai, majrjhdx and ougonhai. - exidy.cpp: Make driver compilable with SOURCES= and fixed Side Trak - firebeat.cpp: Changed clock speed from 64 MHz to 66 MHz - fungames.cpp: Added infos on undumped games (Sky War [TTL] and Tankers [TTL]) - galaxold.cpp and scramble.cpp . Modernized S2650 interrupts . Transplant clones Bagman (bootleg on Moon Cresta hardware, set 1) and Bagman (bootleg on Moon Cresta hardware, set 2) to modern Galaxian driver - goldnpkr.cpp . Clean-up driver. Cleaned up inputs, using standard keyout and payout types and key assignments. . Made 'Witch Up & Down' artwork clickable . Improved the short names for clones Witch Card and Witch Game . Re-arranged the Golden Poker button lamps so that the 6-button layouts for Jolli Witch and Wild Witch make sense. In 6-button mode, the hold buttons double as bonus game and bet buttons, but the lamp outputs don't change. The simplest way to deal with this without requiring the user to switch views or using layout scripting is to place the dedicated buttons directly below the hold buttons that correspond to them. - goldstar.cpp: Fixed the decrypted_opcodes share size - hng64.cpp: Dumped EEPROMs for the IO boards. Major documentation update. - konamigx.cpp: Fixed 'System GX' BIOS crashed shortly after OK (ID 06121) - liberate.cpp: Fixed bank hack turned into share hack - lsasquad.cpp: Fixed videoram access (video\lsasquad.cpp) - m72.cpp: Fixed sprite drawing routine - magic10.cpp: Fixed incorrect tilemap size - metro.cpp: Added some missing initializations to video\imagetek_i4100.cpp, hopefully fixing random driver crashes at startup. - mcr3.cpp: Don't overdrive the mixer - midqslvr.cpp: Avoid outright crashes - model3.cpp: Fixed Model 3, unallocated bank. - namcos22.cpp: Window clip camera VL/VR was wrong way around, fixes misaligned zoom effect in Prop Cycle score entry screen (ID 07790). Removed 1 usage of auto_alloc (2 remaining). Removed an unneeded machine_start. - naomi.cpp: Added Altera FPGA firmware from original DIMM (machine\naomigd.cpp). Added Atomiswave ANET.Net board docs. - nova2001.cpp: Fixed incorrect palette size - nyny.cpp and spiders.cpp . Replaced bogus "temporary" screen parameters with correct CRTC configuration, making reported refresh rates more reasonable. . Fixed emumem-related regression in New York! New York!. Make video flip controls more accurate. - peplus.cpp: Fixed PEPlus, no need to ram to store the rom. - pgm.cpp: Minor documentation update according to PCB scans - play_2.cpp: Fixed logic bug related to periodic interrupts. Minor adjustment to sound communications in Cerberus (Pinball) and Zira. - psikyo.cpp: Fixed width of video RAM shares - royalmah.cpp: Fixed incorrectly sized videoram - segas16b.cpp . Verified 315-5298 dump and added it to all ROM boards which use it (171-5797, 171-5521, 171-5704) . Demoted clone Bay Route (set 1, US) (unprotected) to MACHINE_NO_SOUND - seta.cpp . Separated emulation of tile layers as new device (video\seta.cpp and video\x1_012.cpp). Slight further cleanup. . Separated driver state class a little. Acknowledge 65C02 IRQs. Eliminated strcmp for per-game hacks (video\seta.cpp). . Fixed insidious variable type mistake that caused tilemap regressions (video\x1_012.h) - seta2.cpp . Fixed Funcube, may have side effects on clone 'Hong Tian Lei (A-Blast) (bootleg)' which really doesn't work on the first place so I do not really care. . Changed previously unknown DIP switch of Guardians. Figured out that this one dipswitch, when toggled on, makes the game give an extra life at 500,000 points, instead of 300,000 points when toggled off. - shanghai.cpp: Fixed CPU clock (CXQ70116 can't support 16MHz) and ADPCM clock in Kyuukyoku no Othello. Added notes. - simple_st0016.cpp: Improved documentation and add PCB locations to Neratte Chu - sfcbox.cpp: Dumped KROM 2.0 BIOS - shangkid.cpp: Updated driver to use derived classes - tecmo.cpp: Documented Silk Worm PCBs and updated Rygar's documentation. Adjusted Silk Worm main CPU clock according to measurements. - toaplan1.cpp . Use prio_transpen rather than custom sprite drawing function . Fixed Rally Bike has a different spriteram size . Added note about missing MCU dump for Demon's World and marked currently used code as bad since it's not from an original board. - tsamurai.cpp: Added missing item to save state (was incorrectly being saved only for VS Gong Fight) - twincobr.cpp . Decapped TMS32010C based MCUs for Flying Shark (World), clone Hishou Zame (Japan) and Twin Cobra clone Kyukyoku Tiger (Japan). The Flying Shark (World) one is also compatible with clones Sky Shark (US, set 1), Sky Shark (US, set 2), Wardner (World) and clones Pyros (US) and Wardner no Mori (Japan). . Removed state-changing postload method that makes no sense now - twincobr.cpp and wardner.cpp: Created bootleg sets to preserve actual bootleg DSP code dumps (Flying Shark (World, bootleg), Hishou Zame (Japan, bootleg) and Wardner (World, bootleg)) - undrfire.cpp: Hooked up TC0360PRI priority controller, fixes priorities and missing graphics in attract mode of Chase Bombers (ID 01807). - unico.cpp: Fixed usual region width issues - vcombat.cpp: Fixed messy sharing of shares. Separated the memory maps for single and dual i860. - vendetta.cpp: Switched from bankdev to memory_view - vicdual.cpp . Fixed extraneous parentheses on comparison warning . Simulated protection for clones Carnival (Head On hardware, set 1) and Carnival (Head On hardware, set 2), fixes gamed crashes after clearing first round (ID 07778). . Correct 'Lives' dipswitch for clone Crash (bootleg of Head On) - williams.cpp: Set the videoram as a single 48k block (which it is), derive everything from it. - 3-D Bowling: Fixed function of DIPs labelled as Unused (ID 07783) - Armor Attack: Improved artwork. Better alignemnent and transmission colours in particular. Adjust alignment of overlay. I adjusted the alignment based on where the shots hit the buildings. It doesn't seem possible to not have the tanks partly overlap the buildings but still have the hitboxes inset into the buildings by the right amount on all sides. - Birdiy: Fixed Birdiy inputs. The inputs for Birdiy were copied from Pac-Man and were incorrect. P1 attack button was incorrectly mapped to the service mode DIP. P2 attack wasn't mapped at all. "Stop Screen" DIP does nothing, so mark it as unused. "Rack test" is some kind of test mode, not Pac-Man style level skip, label it as such. - Bloxeed: Clarified 'Credits' DIPs in clones Bloxeed (World, C System) and (US, C System, Rev A) and fixed the credits to start DIP switches. - Bongo: Transplant to modern Galaxian driver - Cabal: Use interface to MSM5205 device for seibu_adpcm (audio\seibu.cpp) (ID 01550). Fixed ADPCM clock. Added hardware documentation. Added PROMs to Cabal (World, Joystick), Cabal (Korea?, Joystick), Cabal (UK, Trackball) and Cabal (UK, Joystick). Correct M5205 measurement. - Captain Silver: Moved game to its own state class - Centipede: Added watchdog reset address to Centipede bootlegs, and nop some other address ranges to match original sets. - Championship Bowling: Minor adjustment to foreground offset in flip screen (ID 04905) - Circus / Acrobat TV: Changed clone (bootleg) to 'Circus / Acrobat TV (older)' as it has been verified to be identical to the older version of Circus with the revision 9004 ROM and fixed the rom names on to match the labels on the actual PCB. Fixed the ROM label on the parent set 'Circus / Acrobat TV' to reflect that it uses ROM revision 9004A. - Crazy Kong Part II: Transfer Crazy Kong bootlegs to modern Galaxian driver - Dock Man: Transplant clones Port Man (bootleg on Moon Cresta hardware) and El Estivador (Spanish bootleg of Port Man on Galaxian hardware) to modern Galaxian driver. - Empire City: Fixed clone Empire City: 1931 (France) locked at start (ID 07817) - F-1 Super Battle: Move game to own state. Added layout. - Fighting Basketball: Fixed missing AY-3-8910A sound (ID 07803) - Gachaga Champ: Fixed Player2 inputs up and right are swapped (ID 07813) - Gals Panic II (Asia): Cleanup the MCU commands and added the slave ones - Hard Drivin': Fixed Hard Drivin', a bad combination of wrong width memory and wrong-sized allocation. The palette was working by sheer luck (and memory block size rounding). - Hit Poker: Fixed mistake in allocation size - Invader's Revenge: Adjusted sound timings to more closely match a real machine (info from Tafoid) - Klax: Promoted clones Klax (version 5, bootleg set 1) and Klax (version 5, bootleg set 2) to working - Magic the Gathering: Verified exact CPU model - Magical Touch: Fake the BIOS shadow a little less badly - Major Title 2: Use parallel EEPROM device - Malzak: Implemented TLC (Transmitted Large Character) output line (video\saa5050.cpp) - Metal Clash: Removed tag lookup for RAM bank and fix save state loading - Mighty Monkey: Transplant Mighty Monkey and clones Mighty Monkey (bootleg on Super Cobra hardware), Mighty Monkey (bootleg on Scramble hardware) and Mighty Monkey (Kaina Games, bootleg on Scramble hardware) to modern Galaxian driver. - Ms. Pac-Man: Fixed machine_config regression in clones Ms. Pac-Man II (Orca bootleg set 1) and Ms. Pac-Man II (Orca bootleg set 2) - Multipede: Support switching games in Multipede - Game now playable. Moved Multipede stuff into a new class, optimized memory map switching a little. - NBA Showtime NBA on NBC: Fixed release year (ID 07757) - NFL Blitz '99: Fixed NFL Blitz '99 input port mapping by setting default values for unused I/O bits. Fixes attract mode constantly skips (ID 07799). - Operation Tiger: Decapped TMS320BC53PQ80 DSP - Quiz Punch II: Fixed service mode doesn't work (ID 07812) - Ozon I: Transplant to modern Galaxian driver. Added 8255 PPI. - Photo Play Spirit Xtreme: Added notes about the USB dongle and a partial dump of its non-volatile memory - Quartet: Fixed incomplete protection hookup in Quartet, fixes the moving floors that appear after the 15th stage are not displayed (ID 07792). - Saint Dragon: Fixed high scores higher than 1.000.000 points are not displayed correctly at the high scores table (plugins\hiscore\hiscore.dat) (ID 07796). - Shooting Master: Redumped and verified Shooting Master's EPR-7100 maincpu rom - Space Duel: Fixed POKEY audio (ID 07808) - Starship 1: Fixed tilemap size (gets rid of uninitialized chars on screen) - Super Derby (satellite board): Preliminary work on decryption - Super Donkey Kong / Super Bomberman 2 (Super Famicom Box): Dumped GROM - Teenage Mutant Ninja Turtles - Turtles in Time: Make ROM access work more like it did before - Tough Turf: Fixed Tough Turf (set 2, Japan) voice samples not playing back properly. Note: Neither Starting nor Bonus Energy dips really works for both tturf and tturfu, former does on tturfbl, is it based on a later rev we don't have? - Tunnel Hunt: Fixed Tunnel Hunt, bringing the driver to this side of 2020. Restored save state support. - Vector games (Atari AVG/DVG) . Modernised code (video\avgdvg.cpp and emu\save.cpp). This fixes many vector games do not return stably from save state (ID 07435). Fixed bwidow.cpp games, tidied up code some more. . Fixed a bug (pre-dating the recent conversion to bitswap) in the sparkle LFSR preset load value (video\avgdvg.cpp), and added a comment explaining what the source is for bits 4, 5 and 6 of the preset load value. - Vulgus: Fixed Vulgus stutter in MAMEUI (ID 07784). Note: When the cannon is fired, it causes the AY8910 to issue a storm of "EShape" messages into the verbose log. MAME uses a different method which is why the issue isn't noticed there. - Wing War: Fixed throttle (Pedal 1) doesn't work in clone Wing War R360 (US) (ID 07820) - Winning Run Suzuka Grand Prix: Decapped TMS320C25. TODO: Verify, hook up and check if same for all games. - Input port: Cleaned up RawInput code slightly (input\input_rawinput.cpp) - Fixed rom names in circus.cpp, cps2.cpp, fungames.cpp, goldstar.cpp, midwunit.cpp, ms32.cpp, namcofl.cpp, nmk16.cpp, pgm.cpp, segag80v.cpp, segas16b.cpp, seta2.cpp, simple_st0016.cpp, snowbros.cpp and tecmo.cpp - Dipswitch fixes in dynax.cpp, galaxian.cpp, goldnpkr.cpp, meadows.cpp, midyunit.cpp, pacman.cpp, segac2.cpp, seta2.cpp, snowbros.cpp and vicdual.cpp - Description changes of Ator (set 2, 3 bumpers), Chatan Yara Kuushanku - The Karate Tournament (Japan) (ID 07786), Chibi Maruko-chan: Maruko Deluxe Quiz (ID 07785), Circus / Acrobat TV (older), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg, set 1), Cookie & Bibi 2 (set 3), Cuore 1 (Italian, set 1), Daytona USA (ID 05701), Daytona USA (Revision A), Daytona USA Special Edition (Revision A), (many) de_3.cpp games, Death Crimson OX (Japan), Death Crimson OX (Japan, Rev A), Diana Olakoa (v8.27), Dungeons & Dragons: Shadow over Mystara (Asia 960619), Dungeons & Dragons: Shadow over Mystara (Japan 960223), F-1 Grand Prix (set 2), Final Fight Revenge / Final Revenge (JUET 990930 V1.100) (ID 07782), Final Fight Revenge / Final Revenge (JUET 990714 V1.000), High Impact Football (prototype, revision0 proto 8.6 12/09/90), Lethal Weapon 3 (2.04 England, display A2.02), NBA Maximum Hangtime (rev L1.03 06/09/97), NBA Maximum Hangtime (rev L1.0 11/08/96), Olympic Darts K7 (v3.11), Ryu Jin (Japan, ET910000A PCB), Sauro (set 2), Scud Race Deluxe, Scud Race Twin, Sharpshooter (Game Plan), Star Trek 25th Anniversary (1.10, display A0.27), Star Wars (1.01, display A1.02), Star Wars (1.01 Germany, display G1.02), Star Wars (1.03, display A1.04), Star Wars (1.06, display A0.46), Star Wars (1.06, display A1.05), Star Wars (1.06, display S1.05), Super Cup Finals (Ver 2.1O 1993/11/19, F3 Cartridge), Super Cup Finals (Ver 2.2O 1994/01/13, single PCB), Super High Impact (prototype, proto 4.0 09/10/91), Super High Impact (prototype, proto 5.0 09/15/91), Super High Impact (prototype, proto 6.0 09/23/91), Super Nova (Game Plan), Teenage Mutant Ninja Turtles (1.04, Germany), Terminator 2 - Judgment Day (German, rev LG1 11/04/91), Total Carnage (prototype, proto v1.0 01/25/92), Twinkle (set 1) and WWF Royal Rumble (1.03 French, display F1.01) - Renamed (1944) to (1944u), (ator) to (ator3bmp), (btmn_f13) to (btmn_103f), (btmn_g13) to (btmn_103g), (circusb) to (circuso), (cookbib2a) to (cookbib2b), (croquis) to (croquisg), (deathcox) to (deathcoxj), (diolakoa) to (diola827), (endrichs) to (endrichsa), (f1gp) to (f1gpa), (finalapro) to (finalapr1), (gdarius) to (gdariusj), (gdariusb) to (gdariusu), (hook_401p) to (hook_401_p), (jupk_g51) to (jupk_501g), (lah_f104) to (lah_104f), (lah_l104) to (lah_104s), (lah_l108) to (lah_108s), (lw3_204) to (lw3_204e), (rab_103) to (rab_103s), (ryujin) to (ryujina), (scfinalso) to (scfinalsoc), (shtngmste) to (shtngmst), (stwr_106s) to (stwr_106_s105), (stwr_a046) to (stwr_106_a046), (stwr_a14) to (stwr_103_a104), (stwr_e12) to (stwr_102e), (stwr_g11) to (stwr_101g), (tftc_104) to (tftc_104s), (tomy_h30) to (tomy_300h), (trek_11a) to (trek_110_a027), (witchcda) to (witchcrda), (witchcdb) to (witchcrdb), (witchcdc) to (witchcrdc), (witchcdd) to (witchcrdd), (witchcde) to (witchcrde), (witchcdf) to (witchcrdf), (witchcdg) to (witchcrdg), (witchcdh) to (witchcrdh), (witchcdi) to (witchcrdi), (witchcdj) to (witchcrdj) and (witchcdk) to (witchgmea) - MAME . VIDEO RENDERING SYSTEM . Fixed drawscanline_core leftover loop, should not live inside unrolled loop (emu\drawgfxt.ipp) . Added links to some internal layouts that demonstrate various features (docs\source\techspecs\layout_files.rst) . Use delegates to avoid hot conditional branches. Set initial value for bounds callback, it can be called before tags are resolved (emu\rendlay.cpp). . Exposed a few information view item properties (emu\render.cpp) . Moved some rendering code to constexpr (emu\drawgfx.cpp, rendersw.hxx and rendutil.h) . Added "Non-Integer Scaling" and "Keep Aspect" settings to UI video options menu and removed SDL hotkeys for same. Removed keepaspect and fullstretch members of osd_video_config. . BGFX: Modified crt-geom-deluxe to track the power-law fall-off for longer (up to 1024 frames). Ensured that the intensity falls to zero afterward. Note that this is currently only compiled for GLSL. . MEMORY SYSTEM . Simplify memory management (emu\emumem.cpp). API impact: install_ram/rom/writeonly now requires a non-null pointer. If you want automatically managed ram, add it to a memory map, not in machine_start. install_*_bank now requires a memory_bank *, not a string. One can create memory banks outside of memory maps with memory_bank_creator. One can create memory shares outside of memory maps with memory_share_creator. Memory maps impact: RAM ranges with overlapping addresses are not shared anymore. Use .share(). RAM ranges touching each other are not merged anymore. Stay in your range. Extra note: There is no need to create a bank just to dynamically map some memory/rom. Just use install_rom/ram/writeonly. . Clean-up and consistency fixes after memory system changes . Use if constexpr to make code clearer (emu\emumem.cpp). Fixed memory leak on address_space_specific destruction (emu\emumem.cpp). . Don't reject re-loading an unused bank (emu\emumem.cpp) . Implemented views, which are essentially bankdevs integrated into the memory map system. Fixed recursion on views dup and lookup (emu\emumem_aspace.cpp) . Save view register state (emu\emumem_mview.cpp) . Removed the lambdas, seems to make the compiler usage resources less catastrophic and pre-inline h_make_1, reduces the memory a little more (emu\emumem.h and emumem_mview.cpp). . DEVICE . General maintenance on emu\devfind: Harmonised memory region/share finder/creator APIs. Moved .found() to optional object finders. Added truth test operator to optional object finders. Fixed things that were testing .found() on required object finders. Improved Doxygen API documentation. . Made read_safe avaiable for optional I/O ports only (emu\devfind.h). Added the next couple of sections explaining object finders (docs\source\techspecs\object_finders.rst). . Added missing memory_share_array_creator (emu\devfind.h) . More cleanup/consistency changes (emu\devfind.cpp): Removed .mask(), as it's not reliable in the general case. Added asserts to things that assume power-of-two sizes. Got rid of virtual qualifier on pointer-to-member operator. Made helpers a bit more assertive about logging warnings. . Cleaned up emu\dirom and made it stricter: Made it an error to specify address map and explicit ROM region. Made it an error if explicitly specified ROM region is not found. Made the ROM region tag apply relative to the current device. . Removed some software list data that was redundantly copied into device_image_interface (m_supported was never even set, so it didn't even work), and made crc() work better (previously it wasn't recalculuated after unloading and loading another image) (emu\diimage.cpp). . LUA engine . Use sol::lua_nil instead of sol::nil (sol::nil is an alias of it that may not always be available). Fixed constructable usertypes. Changed definition for rest of usertypes. . Apparently sol::make_user is a recipe for dangling references, get rid of it. SOL3 needs non-const device reference to wrap. . Splitted lua_engine user type registrations across a few files to make it a bit more manageable . Moved Clang warning suppression to the right file, disabled MSVC C4503 suppression for now, will see which files need it for SOL3. . Fairly significant overhaul of LUA engine and some cleanup. The things that were previously called device iterators are not iterators in the C++ sense of the word. This is confusing for newcomers. These have been renamed to be device enumerators. Several LUA methods and properties that previously returned tables now return lightweight wrappers for the underlying objects. This means creating them is a lot faster, but you can't modify them, and the performance characteristics of different operations varies. The render manager's target list uses 1-based indexing to be more like idiomatic LUA. It's now possible to create a device enumerator on any device, and then get subdevices (or sibling devices) using a relative tag. Much more render/layout functionality has been exposed to LUA. Layout scripts now have access to the layout file and can directly set the state of an item with no bindings, or register callbacks to obtain state. Some things that were previously methods are now read-only properties. Layout files are no longer required to supply a "name". This was problematic because the same layout file could be loaded for multiple instances of the same device, and each instance of the layout file should use the correct inputs (and in the future outputs) for the device instance it's associated with. This should also fix video output with MSVC builds by avoiding delegates that return things that don't fit in a register. . Work around MSVC ambiguous overload error (mame\luaengine_render.cpp) . Used unchecked optional getter after explicit check (mame\luaengine.ipp and luaengine_render.cpp) . Cleanup and enhancements: Changed memory manager banks, regions and shares to lightweight wrappers. Exposed tag, width and Endianness of regions and shares. Exposed memory tag and entry of banks (scripts can change entry). Modernised syntax and switched to abbreviated integer types. . LUA engine improvements: Added methods for enabling and disabling breakpoints and watchpoints, and made debugger views update when breakpoints/watchpoints are manipulated from LUA. Made breakpoints and watchpoints objects rather than tables. It's not possible to enable/disable a breakpoint or watchpoint from the object itself, you have to go through its owners' debug interface. Exposed more device_t members for dealing with child/sibling tags and devices. Also provided a way to get regions/shares/banks from a device using relative tags rather than going through the memory manager with absolute tags (mame\luaengine_debug.cpp). . Exposed cassette image devices, device_slot_interface, emu_options, slot options, device_t interface on screen_device and some cleanup. . Exposed enough of the layout system to LUA to allow position and colour to be animated. Fixed Clang warning about unused lambda capture. . LUA engine cleanup and input edition: Modernised and cleaned up LUA bindings for input classes. Exposed the input_sequence_poller class to LUA and updated the autofire and cheat plugins to use it, rather than continuing to pretend it's part of the input manager. Exposed more of the natural keyboard manager, including the ability to enable/disable individual keyboard and keypad devices like you can from the keyboard mode menu. Exposed a few more things on ioport_port and input_device. . Exposing image format information to LUA. Feedback from Carl. Addressing what I expect would become Vas feedback. Vas feedback, minus making image formats a container wrapper. Changed image formats to have a proper container wrapper. Now indexed by an integer index. . Clean up render classes and expose screen image adjustments. Started moving LUA class reference to docs. Expecting people to find the class reference material in the source isn't going to help make it approachable. The docs allow longer explanations, better formatting, and cross reference links. Added another layout scripting example to the docs. . LUA cleanup and documentation migration checkpoint. Cleaned up some more of the LUA inteface. Mostly replacing methods with properties, some consistency fixes, a few renames, some more exposed functionality, and a couple of properties that have no business being set from scripts made read-only. Moved a lot more LUA documentation out of source comments into the documentation, and expanded on it in the process. Got more UI code out of the input manager. Changed input sequence poller to a polymorphic class where you specify your intention upfront. Changed the cheat plugin to use UI Clear to clear hotkey assignments and leave them unchanged if the user starts assignment but doesn't press any switches. Ported AJR's fix for over-eager double-click recognition from SDL to Windows OSD (mame\luaengine.cpp). . More LUA interface cleanup, additional properties and methods, and documentation migration/expansion. Emulated switch inputs can have "not" codes applied to host input axis directions. It works the same way as host switch inputs - push twice for a "not" prefix. Input polling helpers no longer need to store state in the input device items. There's less leakage, and less chance of things interfering with each other. Allow snapshot view options to be configured through the internal UI via the video options menu. Made video options menus place initial focus on the currently selected view item. Removed some crud from the menu base class. Fixed the description of the "snapview" option. The value to get raw screen pixels was changed to "native" a long time ago but the description was never updated. . Exposed the "native snapview" option on the video manager. Trying to use presence of a single view is a poor proxy that breaks with multi-screen systems. Allow rotation to be changed for native snapshot views, and disable the zoom to screen area control when it has no effect on the selected view. Treat an empty string identically to "auto" for view selectction. Previously this was being used for prefix matching so it would force the first view (this caused the bad snapshot view selection. It had been relying on "internal" not being a common view name prefix so it fell through to automatic selection, but when changed to an empty string it forced the first view). Documented "auto" as well as "native" for the -snapview option and changed the default to auto rather than an empty string for consistency with the -viewN options. Added [w]string_view handlers to the stuff that's instantiated in strformat.cpp since we'll be increasingly using them. Cleaned up and updated some documentation. . More LUA interface cleanup - it's simpler with cleaner underlyng APIs. Made the sound manager mute controls readable, and got rid of system enable since it just controls system mute anyway. This was causing confusion: phantom2 was trying to use both independentlyt casuing the mute bit to be ignored. The LUA interface changes are mostly changing methods to properties, some renames to make things clearer, and some additional properties for better control over snapshots. . Exposed a couple more things to LUA so the plugins can show the actual key mapped to UI clear . UI . Added MAME version to About menu header . Removed long-disused UI button color tables (emu\ui\cmddata.h) . Fixed crash with unmounted images (ui\filemngr.cpp) . PLUGINS . Fixed menu item not updating visually when disabling a cheat with UI Left (plugins\cheat\init.lua) . Fixed not finding the first screen after screen enumerator was exposed as an object rather than using a table (plugins\cheatfind\init.lua). . Replaced environment variable substitution function with core version (plugins\*) . Use emu.subst_env (plugins\portname\init.lua) . MULTI-LANGUAGE: Fixed Portuguese_Brazil translation errors . Deprecate machine resource pool (emu\machine.h). This has outlived its usefulness. Use smart pointers (std::unique_ptr, std::shared_ptr, etc. from ) to manage object lifecycles. . Miscellaneous clean-up. Replaced several uses of auto_alloc (isa\isa.cpp, machine\vrender0.cpp, drivers\menghong.cpp, photoply.cpp and video\liberatr.cpp). . Fixed another annoying edge case (mame\audit.cpp) . Cleaned up MACHINE_START_OVERRIDE / MACHINE_RESET_OVERRIDE / VIDEO_START (segac2.cpp, tsamurai.cpp, tubep.cpp and wecleman.cpp) . Got rid of some MACHINE_*_MEMBER and VIDEO_*_MEMBER in various drivers . hiscore.dat update (plugins\hiscore\hiscore.dat) . Properly handle numpad enter (3rdparty\linenoise\linenoise.c) . Removed "unicode.h" from emu.h (except for UTF8_xxx macros, which have been transplanted to emucore.h since a lot of drivers use them) and osdepend.h. Added std::string_view overrides for uchar_from_utf8 and normalize_unicode. - SDLMAME: Fixed a couple of X11 resource leaks (osd\modules\input\input_x11.cpp, midi\portmidi.cpp and sdl\sdlmain.cpp) - MAC OS X . Disable BGFX threading, which causes crashes and wrong drawing on Catalina and Big Sur (scripts\src\3rdparty.lua) (ID 07746). Tidied up compiler warning options for 3rdparty (scripts\src\3rdparty.lua). . Fixed compilation errors in 'posixfile.cpp', for older MacOS/Xcode releases. . Added macosx_arm64_clang target support (makefile, scripts\genie.lua and toolchain.lua) . Temp macOS compile fix for bundled SDL2 pending the 2.0.14 release (3rdparty\SDL2\src\atomic\SDL_spinlock.c). Added AudioToolbox framework when building SDL2 on macOS, fixes TOOLS=1 link errors (scripts\src\osd\sdl.lua). Use -Wno-strict-prototypes when building SDL2 on macOS (scripts\src\3rdparty.lua). . Temporary hack so most DRC games work on the M1/Apple Silicon (lib\osdlib_macosx.cpp) - VGM player: Added 47 new entries from most recent package release + some shortname consistency fixes (hash\vgmplay.xml) - Compiling . Switch to building MAME as C++17. Updated sol2 to 3.2.2. Updated pugixml to 1.10. Increased minimum Clang version to 6. Cleaned up some stuff that can use new features. . Updated compilingmame.rst doc required MSYS64 packages for using lld (mingw-w64-x86_64-libc++). Added some notes about setting up and using MSYS2 (docs\source\initialsetup\compilingmame.rst). . Apple calls LLVM/Clang 10 Xcode 12, update warning flags (scripts\genie.lua). . Initialized some variables to avoid asserts/crashes/regressions in DRVNOCLEAR builds (20pacgal.cpp, aerofgt.cpp, argus.cpp, aristmk5.cpp, atarig42.cpp, atarisy1.cpp, beathead.cpp, bfcobra.cpp, calchase.cpp, cvs.cpp, drw80pkr.cpp, eolith.cpp, exerion.cpp, galaxian.cpp, galaxold.cpp, gameplan.cpp, ghosteo.cpp, gts80b.cpp, halleys.cpp, hng64.cpp, hyhoo.cpp, igs011.cpp, igs017.cpp, jalmah.cpp, jeutel.cpp, jpmsys5.cpp, ksys573.cpp, lethalj.cpp, m72.cpp, malzak.cpp, mediagx.cpp, megatech.cpp, metlfrzr.cpp, mlanding.cpp, model1.cpp, model2.cpp, mpu4.cpp, namcos10.cpp, nbmj8688.cpp, nbmj8891.cpp, nmk16.cpp, opwolf.cpp, peyper.cpp, pgm.cpp, pinball2k.cpp, s3.cpp, s4.cpp, seattle.cpp, segas18.cpp, segac2.cpp, segajw.cpp, snk.cpp, srmp2.cpp, suna16.cpp, system1.cpp, system16.cpp, taitotz.cpp, taitowlf.cpp, tecmosys.cpp, tmnt.cpp, trvquest.cpp, tumbleb.cpp, vectrex.cpp, vega.cpp, viper.cpp, wecleman.cpp, williams.cpp, xtom3d.cpp, machine\archimds.cpp, machine\snes.cpp and includes\mpu4.h) . Removed update step for ci-windows.yml to prevent errors about outdated mirrors. Bump microsoft/setup-msbuild to 1.0.2 (.github\workflows\ci-windows.yml). . Fixed some MSVC failure to resolve overloaded operator errors. MSVC isn't trying the object finders' cast-to-pointer operators when looking for a suitable operator+. Since GitHub actions can only find 100 occurrences of a string and don't actually give you the full raw log when you ask for it, it's going to take several passes to catch all of these. . Started writing page on object finders with worked examples (docs\source\techspecs\object_finders.rst) . Clang doesn't like how we're using std::void_t (emu\devcb.h and emu\emumem.h) - switch back to our own void_t-alike until it can be investigated. . Enable GCC implicit fallthrough warning . Removed some deprecated instantiations of static constexpr members (MSVC complains about them now) . Work around GNU libstdc++ wanting to stack large temporaries when vector elements can be trivially constructed. . C++17 string handling updates (without charconv so as not to break GCC 7). render.cpp, rendlay.cpp, ui\ui.cpp, ui\menu.cpp: Changed argument types for text processing functions from const char * to std::string_view. ui\menu.cpp: Added overloads of item_append omitting the frequently empty subtext argument. cheat.cpp: Removed some c_str() calls that became unnecessary a while ago. . More uses for std::string_view (debug\debugcon.cpp, textbuf.cpp and emu\rendfont.cpp) . Fixed build by updating charconv.cpp to use string_view internally (imgtool\charconv.cpp) . Made strformat.h and devcb.h play nicer with C++17 and pre-standard C++20. Format precision now correctly limits the length of string views. Confirmed that strformat.{h,cpp} works with pre-standard C++20 support in GCC 9 (util\strformat.h). . Eliminated many unnecessary c_str calls (emu\addrmap.cpp, device.cpp, distate.cpp, emumem.cpp, emuopts.cpp, ioport.cpp, mconfig.cpp, sound.cpp, xtal.cpp, frontend\mame\clifront.cpp...) . Updated util\png.cpp add_text to take std::string_view for arguments and use std::string_view internally in another function . Removed another entirely useless string_format call (bgfx\chainmanager.cpp) . Fixed linking the virutal subtarget (scripts\target\mame\virtual.lua) - Debugger . Added M6809 support for gdb remote debugger (debugger\debuggdbstub.cpp) . Added "n2a03" (6502 CPU clone) to gdbstub for NES, and swapped 6502 PC/SP to SP/PC (debugger\debuggdbstub.cpp). . Allow input piped from stdin by specifying a bare hyphen as the filename (tools\unidasm.cpp) . Added strdump debugger command for dumping memory as ASCII strings . Prevent certain register values from being formatted with invalid characters added in debugger state views (e.g. upd7810) (debug\dvstate.cpp) . Documented loadr and saver debugger commands (debug\debughlp.cpp) 0.226 - New Working games: Gondomania (World), 'Pacman Club / Club Lambada (Argentina)', Pacman Club (set 1, Argentina), *All* Mega Play games (except for Shinobi III), Vs. Super Mario Bros. (bootleg with Z80, set 1) and Vs. Super Mario Bros. (bootleg with Z80, set 2) - New Non-Working games: Cow Tipping - Shake Cattle & Roll (set 1), Mega Double Strip (Ver. 1.10b), Mushiking The King Of Beetles 2006 Second (Japan), Must Shoot TV (prototype), Photo Play Spirit Xtreme (Spanish) and Santa Fe Golden - New clones: Astro Fighter (Famaresa bootleg, set 2), Bagman (Stern Electronics, revision A3), Cow Tipping - Shake Cattle & Roll (set 2), Diana Bifuca (v9.25), Diana Bifuca (v7.43), Photo Play Spirit Xtreme (update, Spanish), Ray Crisis (V2.03O 1998/11/15 15:43), Reality Tennis (set 2), 'unknown IGS game (V100A)' and VF (bootleg of Hang-On) - New PinMAME games: Cosmic Flash (NSM) and The Games (NSM) and Lethal Weapon 3 (2.04, display A2.02) - Removed games: Pacman Club (set 2, Argentina) and Vs. Super Mario Bros. (bootleg with Z80, set 3) - New drivers: cowtipping.cpp, photoplysx.cpp and rfslotspcpent.cpp - New devices: borderline_audio, filter_biquad, frogs_audio, hc55532, mc68328, n2a03_core, ppu2c04c, tmp95c061 and tt5665 - CPU . MCS-48: Check irq before opcode to fix Fire Fox, but re-added (MESS) WY-100 hack (mcs48\mcs48.cpp). Execute_jcc param is a bool, not u8. . Microchip PIC16C5x: Initialised a couple of variables that can be problematic (pic16c5x\pic16c5x.cpp) . Mitsubishi M740: Added missing JSR ($zz) and TST $zz instructions. Fixed return address for JSR ($zz) (m6502\dm740.lst and om740.lst). . Motorola MC68000: Separated FPU code from header . Texas Instruments TMS9995: Initialized one variable which caused crashes in 'Formula 1' - SOUND . Biquad Filter: Added a biquad-based 2nd order filter emulation for an audio stream (to go along with flt_rc 1st order filter emulation). . DAC . Improved sound\dac.cpp performance. Modified DAC to accept streams of any input rate to avoid resampling. Modified DAC to assume input voltage streams are constant by only grabbing the first input sample. Restructure the DAC sound devices a bit. Centralized implementation based on lookup tables. Added set_constant_vref() method for the common case where references are constant, thus avoiding the need for voltage regulator devices. Converted williams.cpp to using this new method as a test. . Various improvements: Default to output range -1..1, by far the most common case. Detect if inputs are specified and use those for output range. Make default range for 1-bit DACs 0-1 instead of -1-1. . Filtered 1-bit DAC: Fixed sample volume averaging . HC-55516: Major update for HC55516 CVSD audio device and related filtering, as well as hooking it to drivers. Splitted HC55516 core into separate cores/subclasses for HC55516 and HC55532 (new 'digital' implementation based on decap/die tracing) as well as MC3417 and MC3418 (old existing 'analog' implementation left alone) and hooked the HC55516 and MC3417 implementations to the appropriate hardware drivers. This should vastly improve CVSD sound quality in drivers that use the HC55516. . Midway Sounds Good Sound Board: Added DAC filtering to Midway "Sounds Good" hardware and added notes/mirroring regarding the undumped memory mapper PAL. . Midway Turbo Cheap Squeak Sound Board: Added DAC filtering to Midway "Turbo Cheap Squeak" sound hardware . MSM5232: Fixed behaviour when the 'ARM' flag set while envelope generator is on a decay state. MSM5232, a tone generator chip which is used by some early TAITO and Alpha Denshi arcade PCBs, has 'ARM' flag that alters behavoiur of envelope generation. Basically, the 'ARM' flag turns Attack-Decay-Release envelope generation to simpler ON/OFF states. If the 'ARM' flag set, the transition from Attack to Decay doesn't occur unless explicitly indicated. On current implement, when this 'ARM' flag is set on a channel which is on a Decay state, the Decay state continues. It seems that, the state should be turned into a Attack state in this situation. . Namco: Eliminated auto_alloc . Sound Interface . Complete sound modernization of remaining devices. Removed legacy stream support and stream_sample_t. . Removed silly mixer tables in favor of math in gomoku and wiping. Removed tiny vectors in favor of fixed arrays in micro3d. Went back to std::unique_ptr array for LFSR in phoenix. Fixed the scale factor inwiping. . Reserved space before taking addresses of new vector items. This code is still unsafe, 16 just happens to be enough for the systems in MAME (The old vector_t implicitly reserved space for 16 items on construction) (sound\discrete.cpp). Fixed more crashes and modernise a little. Reserved some space in another vector that it takes addresses to members of (fixes lack of sound in dkong and dkongjr). Removed dependence on auto_alloc and friends. There's one more problematic make_unique_clear now, but there are several fewer auto_alloc family calls (sound\discrete.cpp). Get rid of vtables in factories. This speeds up compilation (sound\discrete.cpp). . Use some vaguely C++-like code internally (sound\tiasound.cpp) . Sample rate now saved as part of the stream (emu\sound.cpp). Fixes distorted sound in sfrush and sfrushrk when loading from save state (ID 07765). . Fixed bug where gain was doubly-applied in some cases (emu\sound.cpp) . Sound Interface: Created m_specified_inputs_mask to track which inputs have been specified (emu\disound.cpp) . Sound streams: Updated the following sound cores to the new stream update callback: cps3, cassette, dsbz80, exidy, exidy440, floppy, flower, geebee, gomoku, gridlee, gus, istrebiteli, hyprolyb, laserdsc, micro3d, paula, phoenix, pleiads, polepos, redbaron, s2636, segag80r, segausb, seibu, snk6502, special, tiamc1, turrett, tx1, warpwarp and wiping. . Voltage Regulator: Removed Voltage Regulator uses that are not needed anymore with the recent DAC changes (sound\volt_reg.cpp) . Votrax SC-01: Adjust the final filter - DEVICE . Cassette tape image: Make the interface look something like C++. Finished encapsulation of cassette_image class (formats\cassimg.cpp). . Discrete Netlist . Fixed Astro Blaster sonar sound and two singular matrices being created. Fixed slowdown, a connection error and order of PARAM overwrite (static_solvers.cpp and audio\nl_astrob.cpp). . Removed "extended validation mode". No longer added value. . Implemented stricter validation. Devices like BJTs and FETs which are defined but not used will now cause an error. An unused device will create an additional solver with a singular matrix. This is adding unnecessary performance overhead. It complicates debugging because the unused device will cause an arithmetic signal if used with --fperr (nltool). Fixed all validation errors. . Use C++ std::vector and range-based for sound\discrete.cpp . Applied some Clang tidy recommendations. Rewrote frontier documentation. Also includes a small optimization for FP signal code. . Fixed a net splitting issue with four term devices. Under cirtum circumstances the splitter would create "ghost" solvers consisting of terminals already used in another and complete solver. This may impact all netlist which use opamps and thus is committed early in the cycle. This commit adds functionality to instruct the splitter code to include terminals which will not create matrix elements into the parsing of net groups for solvers. Fixed build on old compilers not compliant with retroactive C++11 revisions (sound\discrete.h). . Added parse optimization to pfunction: * "(1 + 2)*a" now during parse step will be rewritten to "3*a". Moved core_terms to netlist_state. These are used during creation and reset only. No need to maintain them on net_t level. Simplified code. . Reverted changes intended to make the code work on OSX 10.10 (plib\pmatrix2d.h and pmatrix_cr.h) . Catch parenthesis count mismatch in formulas. Fixed error in formula in audio\nl_boxingb.cpp. Explicitly trim connection names. . Hook up netlist for Borderline and Tranquillizer Gun. Added static solver, using dynamic timestep and update driver flags. Added frontiers and reduced timestep to improve performance (audio\nl_brdrline.cpp and generated\static_solvers.cpp). . Added Frogs netlist. Added AFUNC frontiers to improve performance. . Added LM348, CD4071 and CD4081 devices. . Use constexpr where it won't change semantics. The other function-like macros will invoke type decay or promotion depending on what the argument expressions evaluate to, so chaning them to constepr functions could change semantics (machine\rescap.h). . K001005 Polygon Renderer: Added a missing command only used in Jet Wave's "How to Control" screen. This screen would show some model of the jetski in turning the handlebars and leaning on the jetski for controls. This fixes an issue where not only the model(s) wouldn't be present but the game would slow down complaining about an unknown polygon command (video\k001005.cpp). . Keyboard . Fixed natural mods for pc_keyboard & at_keyboard devices. Added more logging (emu\natkeyboard.cpp). . Internalized input ports for PC Keyboard (machine\pckeybrd.cpp) . MC6840 PTM: Initialized array to fix listxml and validate crash. Updated m_gate initialization. It seems to fix the remaining on and off crashes in (MESS) Fairlight CMI IIx. . Motorola MC6845 CRTC: Fixed some uninitialised variables. Enabled strobe output (RA4) in transparent mode. . Sega 315-5124 SMS1 VDP: Improved registers 03 and 04 behavior in mode 4. Registers 03 and 04 behavior in mode 4. Disable sprites in mode 3 for real. Use logmacro.h for configurable logging. . Z80 SCC Channel: Fixed vector modification in high bits (machine\z80scc.cpp) - bagman.cpp . Redumped and correct color proms for clones Bagman (Stern Electronics, revision A3), (Stern Electronics, revision A4) and Bagman (Stern Electronics, revision A5). New color prom produces title screens that match screenshots from PCBs (ID 02508). . Updated clone Super Bagman (Stern Electronics) and now the title also match screenshots from PCBs - cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp . Added 2C04 PPU clone device and use the real palette ROMs for the bootlegs. Implemented most PPU behavior differences for VS System bootlegs. Added the 2c04 clone's delayed sprite rendering (video\ppu2c0x.cpp). . Working sound and improved graphics in clones 'Vs. Super Mario Bros. (bootleg with Z80, set 1)' and (bootleg with Z80, set 2) based on kevtris' schematics/video. Removed clone 'Vs. Super Mario Bros. (bootleg with Z80, set 3)'. - chihiro.cpp: Type-1 media-board dumped - cinemat.cpp: Removed redundant code and move speakers to game drivers - deco_mlc.cpp: Zoom algorithm is incorrect/unverified, reference: https://www.youtube.com/watch?v=eCwAVt0GbhQ - gaelco.cpp, gaelco2.cpp and wrally.cpp: Added PLDs to bang, bangj, bigkarnk, squash, thoop and wrally. - galaga.cpp: Re-added max quantum for multi cpu synchronization. Fixes strange players behaviour in attract mode (ID 07764). - igs017.cpp . Added inputs for Happy Skill, Super Tarzan and unknown IGS game . Added some state saving to igs017.cpp and machine\igs025.cpp - itech32.cpp: Added additional safety to prevent out-of-bounds GROM access, at the cost of some cycles. - kpython.cpp: Internal ROM of H8 MCU isn't 32 bit - leland.cpp and williams.cpp: Updated drivers to leverage new DAC capabilities - mcr68.cpp: Added a biquad-based 2nd order filter emulation for an audio stream (to go along with flt_rc 1st order filter emulation) and hooked it to to archrivl, pigskin and trisport (HC55516) following the original schematics. This is necessary as the original HC55516 chip produces a very pronounced audible 16khz 'carrier' in its output audio even on the real chip, and these filters suppress this. This also happens to a lesser extent with the 8khz quieting waveform noise on both MC3417 and HC55516. - megaplay.cpp . Fixed a Genesis VDP status bit which was breaking Mega Play MC68000 -> Z80 communications (ID 02082). Note: Only set interlace frame status bit when interlace is enabled (video\315_5313.cpp). This fixed the interaction between BIOS and 68k side is not fully understood. The BIOS often doesn't register that a game has been started and leaves the 'PRESS P1 OR P2 START' message onscreen during gameplay as a result.If this happens, the games usually then crash when you run out of lives as they end up in an unknown state. . Promoted all games to working (except for Shinobi III) - metro.cpp: Initialized a couple of variables (video\imagetek_i4100.cpp) - ms32.cpp: Extend ROZ notes (video\ms32.cpp) - namcos10.cpp: Added EXIO, MEM(P3) PCB config skeleton and notes. - namcos12.cpp: Added notes for RAM size - ninjaw.cpp and warriorb.cpp: Fixed inverted stereo output channels - nwk-tr.cpp . Updated documentation as well as added some code from hornet.cpp's driver to correct the whole "dual screen" situation. . Added the second K001604. Since NWK-TR does use two CG boards, there should be a second K001604 as well. Also had to add additional read/write parameters to support using two K001604s for now. . Updated network board documentation to better explain the chip at 2G, XICOR X76F041, and functions. Added NO_DUMP placeholders to the games that use this specific network board with the added EEPROM. . Renamed 'Thrill Drive (EAA)' to 'Thrill Drive (EAB)' because the program rom used for this set uses the 'B' version. Also removed the "BAD_DUMP" flag from the timekeeper because the network board and timekeeper region data do not match. I would add a parameter for thrilldbe to change the network region data to "EA" but I don't know if it's even worth changing the simulation (imo better to hook the correct device like with ksys573). . Demoted Thrill Drive (JAE) and clone Thrill Drive (JAB) to NOT_WORKING. The two never really worked to begin with and have gotten worse in later versions (freezes and crashes more often). I did test versions of mame with and without my edits and both act the same. . Added Voodoo and screen parameter changes by cam900 from hornet.cpp. So far so good for this driver too. . Added additional CG board roms for Racing Jam (JAC) and clones Racing Jam: Chapter 2 (EAE) and (JAE). According to Racing Jam: Chapter 2 (EAE)'s kit manual, it prompts the operator to change roms from the master and slave CG boards thus giving proof of the two using extra CG board roms. Thrill Drive's kit manual doesn't prompt the operator to replace the slave CG board roms. . Made some attempts to fix the handbrake with no avail. Adding another pedal input port may have to be necessary. - psikyo.cpp: Fixed side effect in debugging - s11.cpp/s11a/s11b/s11c: Made Williams System 11 and s11_bg relative sound mixing more accurate to the original audio flow on the PCB itself. Fixed tiny build (missing s11c_bg_device). - segaorun.cpp: Fixed port tag/mask for shifters in 'widescreen' views (layout\outrun.lay) - segasp.cpp: Added MACHINE_IMPERFECT_GRAPHICS to GAME_FLAGS and changed MACHINE_NO_SOUND to MACHINE_IMPERFECT_SOUND - vicdual.cpp . Hook up netlist for Borderline and Tranquillizer Gun . Tranquillizer Gun uses the same sound board as Borderline. Sound improvements: Cleaned some parts of audio\nl_brdrline.cpp (removed test points). Changed MB4391 function to pow2 to shorten sounds a bit. Changed trigger inputs in audio\vicdual.c to fit more to the sounds i remember. Moved trigger mapping from vicdual to audio\nl_brdrline. . Added protection handling to Tranquillizer Gun so that the game plays correctly - Astro Fighter: Dumped proms for clone Asterion - Bare Knuckle II (bootleg of Megadrive version): Added PIC dump - Bowling Try!: Implemented TT5665 emulation. Similar as OKIM6295, but with support more ROM capacity, phrase spaces and 2 sound outputs. - Cosmo Gang: Make internal artwork more fun - Dardomania: Added some basics, still seems to do nothing of note. There are clear signs this is just a bad dump anyway. Fixed loading issue from refactor. Improved patches. - Darius: Fixed swapped MSM5205 left/right channels volume control - Enigma II: Added PCB infos, DIP locations and correct colors (ID 03181). - Exciting Soccer II: Redumped Exciting Soccer II. Added correct color proms, fixes graphic glitches (ID 05026). Verified it only has 2x AY8910. Measured clocks. - Fatal Fury 2: Fixed bitswap and added notes - Fire Fox: Check I8049 irq before opcode (mcs48\mcs48.cpp) - Frogs: Added Frogs netlist. Make sound board interface more general. - Gladiator: Extracted AQ 007 microcontroller program from original PCB - Gondomania: Redumped maincpu dt02.f6 for Gondomania (World). Note: Same label as the US version, but content identical to Japanese version. Added also hand-crafted I8751 MCU from the US version (Game now playable). - Gradius III: Fixed K007232 sound glitch in clone Gradius III (Japan, program code S, split) (ID 07769) - Jet Wave: Added a missing command to video\k001005.cpp only used in Jet Wave's "How to Control" screen. This screen would show some model of the jetski in turning the handlebars and leaning on the jetski for controls. This fixes an issue where not only the model(s) wouldn't be present but the game would slow down complaining about an unknown polygon command. - Joust 2: Switched game to use the s11_bg common sound device rather than its own implementation - Jungle: Started work on decryption - Major Havoc: Verified AVG prom. All PCB pics point to this game using the 136002-125 PROM. Page 4-30 of the operation manual states 6c is 136002-125, too. However MAME had it using the 036408-01 PROM. They have identical contents, anyway. - Midnight Resistance: Fixed 'Lives' dipswitch - Mouse Trap . Made 'Mouse Trap' use a timer to clock the MC3417 and update the state readable by the Z80 rather than relying on the MC3417 to accept a clock parameter and update the Z80 state via a callback (ID 07136) (ID 01157). The timer implementation ensures proper synchronization and prevents missed clock transitions from the Z80 side causing noise in the CVSD audio. . Added a biquad-based 2nd order filter emulation for an audio stream (to go along with flt_rc 1st order filter emulation) and hooked it to 'Mouse Trap' (MC3417) and williams drivers (HC55516) following the original schematics. For HC55516 this is necessary as the original chip produces a very pronounced audible 16khz 'carrier' in its output audio even on the real chip, and these filters suppress this. This also happens to a lesser extent with the 8khz quieting waveform noise on both MC3417 and HC55516. - Net Select Horse Racing: Victory Furlong: Redumped game - Pacman Club . Promoted 'Pacman Club / Club Lambada (Argentina)' and clone Pacman Club (set 1, Argentina) to working. Correct inputs and restructured I/O stuff a bit for 'Pacman Club / Club Lambada (Argentina)'. Added inputs and protection latch for clone Pacman Club (set 1, Argentina). . Removed clone Pacman Club (set 2, Argentina), since it's a bad dump. - Pop'n Music 9: Moved game into kpython driver. Added notes for DS2430 data. - Power Drift: Fixed small oversight in widescreen layout - Reality Tennis: Added bruteforced but verified PLD dump to parent set. Fixed the clock per the crystal on the PCB. As per the game speed, we've recorded a small video for reference: https://www.youtube.com/watch?v=C1rzWiFDItA - Side Pocket: Hook up MCU and removed simulation. Added correct sound rom for clone Side Pocket (Japan, Cocktail). Correct rom labels and misc informational updates. - Wedding Rhapsody: Added option to use joystick/button inputs. Control panel type can be selected in service mode. This allows playing with joystick/button inputs, and also allows the completely unused second and third button inputs to be tested in service mode. It's still possible to navigate service mode and correct the control panel setting if the wrong type is selected. - Fixed rom names in champbas.cpp, enigma2.cpp, segasp.cpp, sidepckt.cpp and tmaster.cpp - Dipswitch fixes in dec0.cpp, igs017.cpp and pacman.cpp - Description changes of Astro Fighter (Famaresa bootleg, set 1), Bagman (Stern Electronics, revision A4), Bagman (Stern Electronics, revision A5), Bowling Try!, Diana Bifuca (v7.27), 'Net@Select: Horse Racing - Victory Furlong', 'Net@Select: Salaryman Kintaro', Pacman Club (Argentina), Reality Tennis (set 1), Side Pocket (Japan, Cocktail) and Thrill Drive (EAB) - Renamed (bagmans2) to (bagmans4), (dibifuca) to (dibif727), (pyson) to (kpython), (raycris) to (raycrisj) and (thrilldae) to (thrilldbe) - MAME . VIDEO RENDERING SYSTEM . Cleaned up bitmap API: Made const-qualified pixel accessors (pix, pixt, raw_pixptr) return const-qualified references/pointers to pixesl, and added non-const versions. This makes bitmap more like standard library containers where const protects the content as well as the dimensions. Made the templated pixt accessor protected - having it public makes it too easy to inadvertently get a pointer to the wrong location. Removed the pix(8|16|32|64) accessors from the specific bitmaps. You could only use the "correct" one anyway, and having the "incorrect" ones available prevented explicit instantiations of the class template because the static assertions would fail. You can still see the pixel type in the bitmap class names, and you can't assign the result of &pix(y, x) to the wrong kind of pointer without a cast. Added fill member functions to the specific bitmap template, and added a explicit instantiations. This allows the bitmap size check to be skipped on most bitmap fills, although the clipping check is still there. Also fixed a couple of places that were trying to fill an indexed 16-bit bitmap with rgb_t::black() exposed by this (replaced with zero to get the same net effect). The explicit template instantiations in the .cpp file mean the compiler can inline the function if necessary, but don't need to generate a local out-of-line body if it chooses not to. Extended the size of the fill value parameter in the base bitmap class to 64 bits so it works correctly for 64-bit bitmaps. Fixed places where IE15 and VGM visualiser weren't accounting for row bytes potentially being larger than width. Fixed an off-by-one in an HP-DIO card where it was treating the Topcat cursor right edge as exclusive. Updated everything to work with the API changes, reduced the scope of many variables, added more const, and replaced a few fill/copy loops with stuff from . . Consider that screens can be hidden when choosing a default view (emu\render.cpp) . OpenGL: Fixed stray space char in osd_opengl.h . Pre-load image components when changing video options (emu\render.cpp and rendlay.cpp) . Allow item animation to emu\rendlay.cpp . Various improvements to image file handling: Moved MS DIB parser out of ICO file reader and made it available for artwork and layout images. Added more efficient I/O and better error checking for JPEG file loading (MAME will no longer exit immediately on a bad JPEG file). Made caller responsible for opening files for loading images, to avoid decompressing images used in ZIP/7z artwork multiple times. Added support for JPEG and Windows DIB to picture_image_device. Added support for SVG image files in external artwork. Added support for using I/O port value for animation state and masking animation state values. Made bounds elements more flexible in layouts. Reworked headers to reduce dependencies. Updated layout file format documentation. . Allow layout files to embed image data. Also improved symmetry of disk components, fixed positioning of components when fitting to the pixel grid, and fixed inherited color when item has no color specified. Removed the dotmatrix components from complay.py - there are more flexible ways to achieve the same thing. . C99 doesn't need float-to-double-float for floor (emu\rendutil.h) . Use steady clock for timing double-clicks (osd\windows\window.cpp) . Load from all external artwork paths (emu\render.cpp). Made real component drawing code a bit less gross (emu\rendlay.cpp). Less screaming now that things aren't macros (debug\debugcon.cpp). . Draw disk components with area-based anti-aliasing. Also fixed alpha blending within an element for rect and disk components. Fixed accumulation error causing black pixels on certain transparent colours (emu\rendlay.cpp). . Got rid of an unused capture that upsets Clang (emu\rendlay.cpp). Fixed an issue reporting the full path of files found in archives that was breaking artwork (emu\fileio.cpp). . Fixed issue causing elements to be clipped on bottom/right (emu\render.cpp). Tidied up and optimised ellipse drawing code a little (emu\rendlay.cpp). Reduced space between LEDs on several systems with matrix displays. Work around error accumulation issue that could cause hang with x87 floating-point (emu\rendlay.cpp). . Avoid another issue with floating point error accumulation when drawing disk components. Fixed one more place where disk drawing had error accumulation issues (emu\rendlay.cpp) . DEVICE . Don't clear memory before constructing devices, with the exception of drivers for now. This substantially reduces the overhead of running -validate, -romident, etc. and brings us a little closer to not needing to disable lifetime dead store elimination optimisations. There are likely to be some issues that weren't fixed while this was still on a branch, so everyone be alert (emu\device.h). . UI . Show software selection menu before doing system audit, for casual browsing. . Made the event type a scoped enum (emu\uiinput.cpp). Show device descriptions as well as tag paths (ui\inputmap.cpp). . Only populate BIOS Selection menu with system and slot cards that actually have BIOS options (ui\miscmenu.cpp and ui\info.cpp) (ID 06675) (ID 07550) . Apply shift to analog fields in preview (ui\analogipt.cpp) . INPUT . Allow keyboard devices to be enabled/disabled. This fixes the "typing on all keyboards at once" issue. You can now enable and disable keyboard/keypad inputs per device in the Keyboard Mode menu. Default is to enable the first device with keyboard inputs and all device with keypad inputs but no keyboard inputs. The settings are saved in the CFG file for the machine. Typing in natural keyboard mode only ever types on one keyboard at a time, but now you can control which keyboard it types on, as it will be the first enabled keyboard. You can easily try this out with something like: mame64d zorba -rs232 terminal cpm. . Improved initial keyboard enable settings when changing slot options (emu\ioport.cpp) . 3rdparty . Updated to SQLite 3.33.0 and 3rdparty/expat to 2.2.10 . Sync Nano SVG with upstream (3rdparty\nanosvg). This version is supposed to be less sensitive to the global locale. . MULTI-LANGUAGE: Updated Turkish translation . Got rid of most of the remaining problematic uses of make_unique_clear and on 'manager' objects (emu\machine.cpp) . Got rid of global_alloc/global_free. The global_alloc/global_free functions have outlived their usefulness. They don't allow consistently overriding the default memory allocation behaviour because they aren't used consistently, and we don't have standard library allocator wrappers for them that we'd need to use them consistently with all the standard library containers we're using. If you need to change the default allocator behaviour, you can override the new/delete operators, and there are ways to get more fine-grained control that way. We're already doing that to pre-fill memory in debug builds. Code was already starting to depend on global_alloc/global_free wrapping new/delete. For example some parts of the code (including the UI and Windows debugger) was putting the result of global_alloc in a std::unique_ptr wrappers without custom deleters, and the SPU sound device was assuming it could use global_free to release memory allocated with operator new. There was also code misunderstanding the behaviour of global_alloc, for example the GROM port cartridge code was checking for nullptr when a failure will actually throw std::bad_alloc. As well as substituting new/delete, I've made several things use smart pointers to reduce the chance of leaks, and fixed a couple of leaks, too. . Fixed failure to recognise device ROMs that use continue/ignore load commands (mame\audit.cpp). Better heuristics for matching shared ROMs (ID 07410). This should address at least some of the remaining issues from MT07410 and GitHub #7314. If this causes issues like MT07756 to reappear, it will need to be fixed/reverted before release. . Optimised some SVG images (images\MAMElogo.svg and images\mahjongpanel.svg). Cleaned up some geometry on MAME logo. - VGM player: Added 43 new entries and updated 24 entries based on recent releases. Adjusted a few short names to correct some badly applied machine tags (hash\vgmplay.xml). - Compiling . FreeBSD fixes. Use gl includes from pkg-config. GenieOS is named simple BSD. . Fixed link errors with new versions of Emscripten (scripts\genie.lua) . Created GitHub Actions for CI. This is intended as a replacement for AppVeyor and parts of TravisCI. It will create full builds of MAME (including tools) for the following platforms: Linux (GCC and Clang), macOS (Clang) and Windows (GCC and MSVC 2019). It will also upload the resulting executable as artifact so that it can be used for regression testing. This commit also removes the unused TeaCI drone files. . Allow memory size to grow at runtime for Emscripten when targeting WebAssembly as there is no longer a performance hit (scripts\src\main.lua) . Added build fix for older OS X versions (scripts\src\3rdparty.lua) - Debugger: Removed more macros, added more const and make a couple more things use smart pointers (emu\debug\*). 0.225 - New games: Janken Game Acchi Muite Hoi! (Japan 1.3) and Super Bubble Bobble (Sun Mixing, Megadrive clone hardware) - New Working games: 'Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2)', Quick Pick 5 and Tetris (bartop, prototype) - New Non-Working games: Bare Knuckle III / Sunset Riders (bootleg of Megadrive versions), Lucky Player, Matrix, Mexico Lindo, Mini Super Fruits, New Pro Bowl, Pac-Carnival, Photo Play 1998 (Spanish), Photo Play 2001 (Italian), Star Horse 2002 (live), Star Horse 2002 (main screens), Star Horse 2002 (sound and backup, Rev A), 'unknown Hobby Play slot machine', 'unknown Konami slot medal game (set 1)', 'unknown Konami slot medal game (set 2)', 'unknown MGA or Costa Net slot machine', UNO the Medal, Wai Wai Jockey and Wild Guns (SNES bootleg) - New clones: Air Duel (World, M72 hardware), Asterion, Battle Garegga (location test) (Wed Jan 17 1996), Bubble Bobble (bootleg of Japan Ver 0.0 with 8749), Cruis'n USA (v4.5), CTA Invader, Gals Panic II (English, 2 PCB ver.), Gundam Wing: Endless Duel (SNES bootleg, set 2), The History of Martial Arts (set 2), JoJo's Bizarre Adventure (Euro 990913), JoJo's Bizarre Adventure (Euro 990927), Le Bagnard (Itisa, Spain), The Legend of Kage (bootleg set 4), Master Bond (bootleg of Secret Agent), Meteor (bootleg of Asteroids), Midnight Run: Road Fighter 2 (AAA, Asia v1.10, newer sound program), Olivmandingo (Spanish bootleg of Mandinga on Galaxian hardware, set 2), P.O.W. - Prisoners of War (bootleg of US version 1), Pac-Man (Calfesa, Spanish bootleg on Galaxian hardware), Pacom Invader (set 2), Panic Park (Japan, PNP1 Ver. B, set 2), Photo Play 2000 (Spanish), Polaris (latest version), Route X (bootleg, set 2), Speed Up (Version 2.20), Street Fighter II': Champion Edition (bootleg, set 1), Street Fighter II': Champion Edition (bootleg, set 2), Street Fighter II': Champion Edition (Playmark bootleg, set 2), Super Space Invaders '91 (World, earlier?), Tecnodarts (Recreativos G.R. license) and Traverse USA (bootleg, set 2) - New PinMAME games: Sahara Love (France) - New drivers: hobbyplay.cpp and matrix.cpp - New devices: alpha_8921, cat28f020, hd6435368, kp63_3channel, kp63a, mm5837_stream, omti_disk_image, omti8621ap, omti8621isa and z86e02 - New ui.ini options: skip_warnings (UI MISC OPTIONS) - CPU . DEC T11: Disassembly updates: Correct mnemonics for CLC, CLV, CLZ and CLN. Added MFPT mnemonic. Renamed JSR/RTS short forms to CALL and RETURN. Eliminated alternate PUSH and POP mnemonics. Added notes on instructions not implemented on T-11. . Kawasaki Steel KL5C80A12/16: Added emulation of KP63(A) Timer/Counter unit. This improves timings in sigmab98.cpp games Animal Catch, Hae Hae Ka Ka Ka, Pye-nage Taikai and Taihou de Doboon. . MCS-48: Fixed problem with strt_cnt if counter was already enabled (mcs48\mcs48.cpp) . Zilog Z8681: Added interface notes. Added optional logging for SIO. Fixed reads from Ports 0 & 1 (z8\z8.cpp). . Zilog Z86E02: Added Z86E02 type - SOUND . Acclaim RAX: Modernized RAM allocation and object lookups . AY-3-8910A PSG: Reduced performance when expanded mode is enable and fixed noise rate regression . CEM3394 Synthesizer Voice: Major rework. Updated to new stream callback. All calculations are now doing in floating point. External input is now done via an input stream. First attempt at implementing a proper filter -- needs some major work; checking in current state to get some assistance. . Ensoniq ES5505: Correct Taito ES5505 Bankswitching behavior. Sample bank per ES5505 voice is actually taito_en.cpp specific. Moved external bank behavior into taito_en.cpp. Added getter for voice index. Added precalculated ES5505 bank table for reduce performance issue. Added getter for CPU. . MM5837: Unify implementations: Create base mm5837_source device to provide raw output. mm5837_device is based on it. mm5837_stream_device generates a sound stream from it. Frequency calculation now computed instead of table-based. . OKI MSM9810 ADPCM: Make address space big-endian . SN76496: Removed u8106 alias. Note: Sound chips have custom label "U8106". Or "8106" or unlabeled with the original label scratched off. They are presumedly SN76489. Note that Lady Bug's PCB S/N is also 8106 and has the same sound chips. . Sound Interface . Drive updates more sensibly from the sound manager, fixing some asserts (emu\sound.cpp). Fixed edge case where pending sample rate matches output and some crackling when upsampling (emu\sound.cpp). . Some optimizations for common cases. Reuse resamplers if routing the same output to multiple targets at the same rate. Avoid copying when there's only one stream going through a mixer (emu\disound.cpp and emu\sound.cpp). Fixed asserts due to sample-rate ping-pong in (MESS) esq5505 driver (emu\sound.cpp). . Added a few new helpers to write_stream_view: put_clamp - clamps the input value before writing, put_int - takes an integer and coverts it to float, put_int_clamp - converts and clamps an integer and add_int - converts an int and adds to the current sample (emu\sound.h). Fixed assertion when loading save state from command line (emu\sound.cpp). . Changed some sound devices back to using std::unique_ptr for things that don't need to change size (sound\k005289.cpp, k054539.cpp and mos6560.cpp). Using a std::vector has additional overhead for keeping the size and allocated size, and it means you can inadvertently resize it. Also, if you register one for save state then cause it to reallocate, very bad things happen. . Disable SOUND_DEBUG for non-debug builds (emu\sound.h) . Sound streams . Significant internal changes to sound streams: Abstracted buffers of sound data into an internal stream_buffer class, with helper classes read_stream_view and write_stream_view which offer readable/writable "views" into the buffers. Internal sound calculations are all done using stream_buffer::sample_t, which is a 32-bit float; existing callbacks are supported through an adapter that converts to/from signed 32-bit integers. Improved behavior of dynamic stream sample rate changes to resample a short runway of data to preserve continuity across transitions. Created a new stream update callback which passes a std::vector of read_stream_views for inputs, and a std::vector of write_stream_views for outputs. Updated core mixer and speaker devices to the new stream update callback. Changed existing stream update callback to make inputs explicitly const and the output pointers const as well, since they are re-used across calls; fixed several engines that violated this rule. Sound_manager::stream_alloc can no longer automatically connect to a device's sound_stream_update callback; instead, the stream_alloc() on the sound_device_interface should be called; updated many violators of this rule. Streams can be created with SAMPLE_RATE_OUTPUT_ADAPTIVE, which dynamically tracks the sample rate of its first downstream output, or with SAMPLE_RATE_INPUT_ADAPTIVE, which tracks the sample rate of its first input. Changed resampling to be a separate sound_stream that is invoked as needed, opening the path for selectable resampling implementations. Added a flags parameter to the new stream allocation method that allows you to specify a that input streams should not be resampled. Exposed stream_input and stream_output classes directly, simplifying access to user gains and stream names. Added a simple dynamic compressor to sound_manager to provide nicer results when overdriven sound happens; compression does not affect speaker_report results. Improved verbose speaker_report to print a graph of peaks over time. More aggressive debugging enabled for now even in release builds (should be disabled prior to next release) via SOUND_DEBUG define in sound.h; report any assertions for fixing. . Updated the following sound cores to the new stream update callback: aica, asc, astrocde, awacs, ay8910, beep, bsmt2000, c140, c352, c6280, cdda, cdp1863, cdp1864, cdp1869, cem3394, dac, dac76, digitalk, discrete, dmadac, es1373, es5503, es5506, esqpump, rf5c400, rf5c68, flt_rc, flt_vol, gaelco, hc55516, i5000, ics2115, iremga20, k005289, k007232, k051649, k053260, k054539, ks0164, mas3507d, mea8000, mos6560, msm5205, msm5232, multipcm, namco, nes_apu, netlist, nile, okim6295, okim6376, okim9810, pokey, qs1000, qsound, s_dsp, saa1099, samples, scsp, segapcm, sn76477, sn76496, snkwave, sp0250, sp0256, spkrdev, spu, st0016, t6w28, tc8830f, tia, tms36xx, tms5110, tms5220, tms57002, upd7752, upd7759, upd934g, vgm_visualizer, vlm5030, volt_reg, votrax.vrender0, x1_010, ym2203, ym2608, ym2610, ym2612, ymf262, ym3526, ym3812, y8950, ym2413, ymf271, ymf278b, ymz280b, ymz770 and zsg2. . Taito Ensoniq Sound System: Fixed overdriving that caused distortion and pops in previous versions (audio\taito_en.cpp) . Votrax SC-01: Fixed pitch and closure. Note that the dynamic clock changes will sound bad until Aaron's sound stream fixes are in. Fixed Votrax SC-01 hookup for Gorf and Wizard of Wor. Updated to new stream callback. . Yamaha YMF271 OPX: Modernized save state registration and allow disabling of side effects for reading - DEVICE . 6522 VIA: Added support for CB2 pulse mode. Port B special modes are only on write, not read. . BACTA Datalogger: Attempt at a fix for missed character transmissions. Turn off log pollution. . Discrete Netlist . Use macro DIP definitons for 8277, 9314, 9334, AM2847, MM5837 and TMS4800. . Templatize 74107 and code maintenance. Removed some dead friend declarations. Optimized template times_ns2. . Fixed visibility in some devices (private rules) . References to subdevices should be symbolic: Exposing sub-device members is not best practice. The need for sub-devices is a clear indication that a netlist language implementation would be a better solution. . In devices folder all DIP devices were removed. NE555 and MC1455P were the last devices with DIP definitions in devices. . Build system improvements. Medium term this will significantly ease adding devices to netlist. Clang tidy include order fixes. . Added 7417, 7438, 74290 and 74293 devices. Fixed PROM DIPs. . More standalone makefile changes: On windows a simple make is now enough to build. Devices, macro and tests folders now included with wildcard. No more makefile changes if a device is added. Moved nld_devinc.h to generated folder. Added to python scripts to create nld_devinc.h and lib_entries.hxx. TEST MODE: these two files are created automatically but are not used currently. Once I get feedback that the python scripts work in different environments I will remove header files from devices and macro and start using these files in production. . Fixed various issues around include directories: Removed include directory src\lib\netlist from various genie files to avoid potential issues. Code using netlist should use #include "netlist/*". Updated includes. Fixed standalone makefile depend target to properly deal with relative paths. . Various minor adjustments based on PR comments . Standalone makefile support for OSX . Truth tables are now standalone objects. Added TRUTHTABLE_ENTRY to netlist language. Please see nlm_ttl74xx for reference implementation. . Fixed processing of TRUTHTABLES for generated files. Also made nld_devinc.h srcclean friendly. nld_devinc.h and lib_entries.hxx are currently not used. You can try the automated build by changing NL_AUTO_DEVICES in setup.h to 1. . Code maintenance and performance optimizations. Renamed some misleading type names. Removed callback_t and replace by better scalable approach. Hide implementations details. Moved sources classes from putil.h to psources.h. Reduced code complexity. Improved parsing performance, parsing netlists now is twice as fast. Fixed issues around multi-byte string support. Moved psplit into pstrutil.h. Fixed multi byte string issues. . Implemented voltage dependent timing for CD4006. Added listmodels command to nltool. . Moved netlist to generated header and link support files files. Removed device and macro header files. All of those can be generated automatically so going forward there is no need for these any longer. Introduced the modules concept. Modules are netlists for which automatic lib entries are generated. Going forward you just store them in macro/modules and they will be automatically registered as device elements. You need to do a "make generated" is src\lib\netlist\build. Some_device.cpp still needs to be added to netlist.lua. Added documentation on how to add devices to netlist. Please refer to adding_devices.md for more information. Moved selected NET_MODELS into the core. . Moved ICL8038_DIP and NE556_DIP to core. Removed code duplication. . Optimized headers. Where possible rely on forward declarations to optimize compile time. Emscripten can not use specialization efficiently. Consequently prefer to save on compile time and size. . Added netlist devices for MCM14524, CD4029, CD4030, CD4042, CD4049 and CD4076. . Code refactoring. Optimization to the gmres solver. Simplifcation of vector operation code. . Significant performance increase. Uses all 4 Sonar oscillators. Uses randomized resistor values (5% range). Uses frontiers to separate oscillators. Improves performance to 340% locally (netlist\generated\static_solvers.cpp and audio\nl_astrob.cpp). . Use default move and copy constructors. Various minor edits like adding noexcept. Removed a lot of inline keywords. Improved queue handling documentation in code. Documented that for performance reasons pushes to queue are allowed even if they may not change state and are filtered out during process. Provide alternative code path. This is currently not used. Fixed 128 bit integer support. Clear identify void * casts. . Make pstring length/size use consistent. Length reports the number of character codes in the string. Size reports the size in memory units. Reminder: Set PSTRING_USE_STD_STRING to 1 in pstring.h and get native std::string. pstrings are compatible to std::string but only support a limited subset of functionality. By default (always like this) utf8 is supported and thus length reports the number of multi-byte characters. . Added a number of minor fixes leading to an increase of 570% to 588% on pongf. Admittedly micro optimization. Includes some comments why certain decisions have been taken. . Ensoniq ES5503: Modernized device. Use put_int for sample scaling and fill_n for faster clear. Fixed some corner cases with swap mode on even vs. odd oscillators. Use std::vector as intermediate buffer and resize on sample rate changes. . Floppy . Correct register commit delay for WD177x according to datasheet (machine\wd_fdc.cpp) . Fixed bug when changing IMD image. Some arrays weren't zeroed when changing a IMD disk for saving (formats\imd_dsk.cpp). . Hitachi HD6845S CRTC: Fixed off-by-one error in calculating bottom of DE window . Imgtool: Fixing an Imgtool build issue with LLVM on MSVC . K001006 Texel Unit: Removed alternate texture layout . Namco 51xx: Reimplement outputs that were accidentally disabled when device switched to using low-level emulation. This restores start LEDs and coin lockouts for various games in galaga.cpp (ID 07733) and polepos.cpp. . SCSI Hard Disk: Have bad hard disk reads actually fail instead of just returning zeroes (bus\nscsi\hd.cpp). . Western Digital WD33C9x SCSI Controller: Handle 'polled DMA' in vme_hcpu30 (machine\wd33c9x.cpp) - 39in1.cpp: Some improvements to the decryption of the newer games, still missing something. - astrocde.cpp: Fixed Votrax SC-01 hookup for Gorf and Wizard of Wor - bingor.cpp: Mark all PIC dumps as bad in bingor1, bingor2, bingor3, bingor4 and bingor5. - cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp: Made use of the code that was already partially present in the NES PPU code to handle emphasis modes, used to highlight tally bars etc. in (MESS) 'nes rampart', apply a red tint to (MESS) 'fds bublbobl' and dim the screen in a number of other games (video\ppu2c0x.cpp). - chihiro.cpp: Set values for various configuration space PCI registers - cinemat.cpp: Small cleanup/safety improvement (audio\cinemat.cpp) - cps1bl_5205.cpp, cps1bl_pic.cpp and midyunit.cpp: Added PALs to clones Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2), Captain Commando (bootleg with 2xMSM5205), Jurassic 99 (Cadillacs and Dinosaurs bootleg with EM78P447AP), Knights of the Round (bootleg with 2xMSM5205, set 2), Mortal Kombat (Yawdim bootleg, set 2) and Saturday Night Slam Masters (bootleg with PIC16C57, set 1). Redumped clone Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2) bad gfx rom. - cv1k.cpp: Slightly more accurate frame rate - ddenlovr.cpp: Separated state class a little - deco_mlc.cpp: Fixed invisible pixel issue in vertical zooming algorithm. Reduced unnecessary line check. Fixed GFX loading and decoding. Only Stadium Hero '96 has the DECO146 on cart, so updated the maching configs to reflect this. Also removed some unused variables. - gottlieb.cpp: Tweaked Votrax speech frequency settings to better match samples/recording for Q*bert (audio\gottlieb.cpp) (ID 06462) - magicard.cpp: Decapped and dumped PIC16C54/56 devices for Magic Card Export 94, Magic Card - Wien (Sicherheitsversion 1.2), Puzzle Me! and unknown 'TE06' - neogeo.cpp: Device-fied PRO-CT0 for protection for Fatal Fury 2, aka ALPHA-8921 or SNK-9201. Note: This chip is sprite ROM data serializer or optional security device. Used in some later 80s Alpha Denshi hardware (ex: Gang Wars). Some early Neogeo MVS motherboards and AES cartridges. Also integrated in NEO-ZMC2 and NEO-CMC. Reference: https://wiki.neogeodev.org/index.php?title=PRO-CT0. - pgm2.cpp . PGM2 lores refresh rate was approximated from video recording, hsync/vtotal are not verified. Measured common resolution refresh rate. . Changed 'The King of Fighters '98: Ultimate Match HERO' refresh rate to match PCB video - segas32.cpp: Eliminated auto_alloc and a bizarre comparison between bitmap pointers - seibuspi.cpp: Allow recovery if MAME is exited during the initial flash process - seta2.cpp: Fixed invisible pixel issue in horizontal zoom algorithm. Added notes for background color. - sigmab98.cpp . Pile kludge upon kludge for Animal Catch poorly understood video timing register. Increased frequency of one timer interrupt for Go Go Cowboy and Itazura Monkey and hopper timing in Go Go Cowboy. . Modernized state_add syntax for KC82 and KP69 . Added emulation of KP63(A) Timer/Counter unit for KL5C80A12 CPU. This improves timings in Animal Catch, Hae Hae Ka Ka Ka, Pye-nage Taikai and Taihou de Doboon. - taitogn.cpp: Fixed debug assert in most games (ID 07468) - toaplan2.cpp: Fixed YM2151/OKI level balancing for Armed Police Batrider and Battle Garegga - zr107.cpp: Correct texture roms loading in all ganes. They now pass the texture mask ROM check. Partially fixes MT07731. The tile mask ROM test still fails. - AGEMAME: Added preliminary layout and inputs for Double Take (BWB). Added an experimental LUA script to the Double Take layout. This takes individual lamp lines that are used for LED selects and recombines them. To see the effect, plugin -layout is needed. - Astro Blaster: Significant performance increase. Uses all 4 Sonar oscillators. Uses randomized resistor values (5% range). Uses frontiers to separate oscillators. Improves performance to 340% locally (netlist\generated\static_solvers.cpp and audio\nl_astrob.cpp). - Bingo Roll / Turbo Bingo?: Decapped and dumped PIC16C54 device - Columns III (Mega Play): Make the existing dipswitch definitions actually used - Cyberball: Fixed SAC communications between 6502 and MC68000 CPUs (ID 07749) - Dardomania: Added missing rom. Now the dump is complete. Added ASCII PCB layout. - Double Dealer: Use tilemap_t for splittable foreground tilemap. Fixed MCU input with side effects. Fixed masking. Reduced runtime tag lookup and duplicates. Use shorter type values. - EuroPlay 2001: Added two new BIOS dumps - Funny Strip: Added address_map and input ports to clone Ring Ball - Ginga NinkyouDen: Removed trivial ROM patch, use nopw() instead. - Hola Don Pepito: Decapped and dumped PIC16C56 device - Jungle King: Significant internal changes to sound streams. Updated DAC sound to the new stream update callback. Fixes broken DAC sound in Jungle King since MAME 0.198 (ID 07036). - Karnov: Dumped and hook up MCU for Karnov (US, rev 6) and clone Karnov (US, rev 5). Use a handcrafted MCU dump based on the US version for clone Karnov (Japan). - Kyros: Improved clone Kyros no Yakata (Japan) PCB documentation - Mortal Kombat 4: Added security PIC dump - Mr. Do!: Replaced the 2x U8106 sound with 2x SN76489 - NBA Jam Extreme: Fixed region width in clone NBA Jam Extreme (ver. 1.04) - PinMAME: Cleaned up Williams System 11 pinball layouts (layout\s11.lay, s11a.lay, s11b.lay and s11c.lay) - Prehistoric Isle in 1930: Fixed priority - Puzzlet: Replaced coin MCU simulation with low-level Zilog Z86E02 CPU emulation - Q*bert: Better approximation of Votrax frequencies, pending deeper analysis (audio\gottlieb.cpp). - Quick Pick 5: Added serial IO device and input ports (Game now playable) - Sega Golf Club Network Pro Tour 2005: Brute forced key - Super Space Invaders '91: Added PLDs - Tetris: Added support for clone Tetris (bartop, prototype) bank switching (Game now playable). Moved bartop proto handler into new subclass of atetris_state. - Tetris: The Grand Master: Added config port for Tetris: The Grand Master debug buttons - Thunder Dragon 2: Dumped mask roms for clone Thunder Dragon 3 (bootleg of Thunder Dragon 2) - Treasure Island: Fixed artwork labeld for buttons - Video Poker: Clean up layouts and make layouts clickable for poker and slots games - 'unknown Recreativos Franco slot machine': Added ASCII PCB layout - Input port . Moved axis movement checking code down into input devices. Transfer crosshair polling loop to render_crosshair. . Overhaul the default keys list (docs\source\usingmame\defaultkeys.rst) . Cleaned up inputs a little. Removed the IPT_POKER_BET, replacing it with IPT_GAMBLE_BET. Re-organised the order of input types in the source and the documentation to better reflect how they're logically grouped or organised on a mahjong or gambling control panel. Made the blackjack, poker and slots documentation headings subheadings under the gambling heading. Cleaned up inputs for a number of gambling games. Added mahjong panel diagram. - Fixed rom names in 8080bw.cpp, aristmk4.cpp, m92.cpp, midxunit.cpp, photoply.cpp, startouch.cpp and williams.cpp - Dipswitch fixes in gaelcof3.cpp, megaplay.cpp and vegas.cpp - Description changes of 19 in 1 MAME bootleg (BAR-V000), 48 in 1 MAME bootleg (set 1, ver 3.09, HPH-V000), 48 in 1 MAME bootleg (set 2, ver 3.09, HPH-V000, alt flash), 48 in 1 MAME bootleg (set 3, ver 3.02, HPH-V000), 60 in 1 MAME bootleg (ver 3.00, ICD-V000), Cruis'n USA (v2.1), Cruis'n USA (v4.0), Cruis'n USA (v4.1), Cruis'n USA (v4.4), Cruis'n World (v1.3), Cruis'n World (v1.7), Cruis'n World (v1.9), Cruis'n World (v2.0), Cruis'n World (v2.3), Cruis'n World (v2.4), Cruis'n World (v2.5), Gals Panic II (Italy, 2 PCB ver.), Gals Panic II (Taiwan, 2 PCB ver.), Genshitou 1930's, The History of Martial Arts (set 1), Gundam Wing: Endless Duel (SNES bootleg, set 1), Joust (Green label), Joust (Red label), Joust (Yellow label), Le Bagnard (Itisa, Spain, older), Meteor (Hoei bootleg of Asteroids), Midnight Run: Road Fighter 2 (AAA, Asia v1.10, older sound program), 'NBA Showtime NBA on NBC (ver 2.0, Apr 25 1999)', Olivmandingo (Spanish bootleg of Mandinga on Galaxian hardware, set 1), Pacom Invader (set 1), Polaris (first revision), Polaris (original version), Polaris (second revision), Panic Park (Japan, PNP1 Ver. B, set 1), Route X (bootleg, set 1), 'SportStation: NBA Showtime NBA on NBC (ver 2.1, Sep 22 1999) / NFL Blitz 2000 Gold Edition (ver 1.5, Sep 22 1999)', 'SportStation: NBA Showtime NBA on NBC Gold Edition (ver 3.0, Feb 18 2000) / NFL Blitz 2000 Gold Edition', Street Fighter II': Champion Edition (Playmark bootleg, set 1), Traverse USA (bootleg, set 1) and Wonsido 1930's (Korea). - Renamed (airduelm72) to (airdueljm72), (bagnardi) to (bagnardio), (crusnusa) to (crusnusa44), (dbreedm72j) to (dbreedjm72), (galpani2e2) to (galpani2i2), (jojoba) to (jojobaj), (jojobar1) to (jojobajr1), (joustwr) to (jousty), (photoply) to (photoply2k), (polarisa) to (polarisb), (polaris) to (polarisa) and (speedup) to (speedup12) - MAME . VIDEO RENDERING SYSTEM . May need to recompute selected view when loading visibility toggle configuration . Apply target orientation when mapping points to layout elements, fixes rotating view in clickable artworks does not rotate clickable part (ID 07375). Also increase efficiency when layouts contain large numbers of non-interactive elements (e.g. thousands of matrix display dots). Also includes work in progress for future improvements (emu\render.cpp). . Don't restrict borderless full-screen windows to monitor work area (osd\windows\window.cpp). Fixed MAME gameplay position is offset when Windows taskbar is moved to top of screen (ID 07745). . PWM Display: Removed now-obsolete savestate workaround (video\pwm.cpp) . Added parameter animation and state masks. Components may have multiple bounds and/or color child elements with state attributes, allowing for piecewise linear position/size/colour animation. Components may have a statemask attribute, allowing for things like using external images to draw a multi-segment LED/VFD display without requiring dozens of outputs for the individual lines or thousands of images for all possible states (Texture caching still never releases anything, so MAME can still exceed the maximum number of textures, but that's a separate issue). Image components with alpha now blend over previously drawn components. Layouts have been changed to use yes/no for inputraw to match what's used for flipx/flipy. External layouts with 1/0 will still work, but complay.py will complain (emu\rendlay.cpp). . Small optimisation for opaque pixels in image component (emu\rendlay.cpp) . Correct output alpha for rect and disk components. This corrects alpha for cases when both the rect/disk and whatever it's drawing over are translucent, and also optimises for fully opaque and fully transparent pixels (emu\rendlay.cpp and layout\cgang.lay). . Use std::fill_n to get better code for modern CPUs (lib\util\bitmap.cpp) . DEVICE . Catch missing required I/O ports in systems (excluding slot cards). Move explicit template instantiations below all member bodies to make Clang behave (emu\devfind.cpp). . Device State Interface overhaul . device_state_entry::value and device_state_entry::set_value now do everything except the register lookup, allowing them to be made public. The debugger expression engine now uses these. . device_state_entry::dvalue and device_state_entry::set_dvalue have also been made public, theoretically permitting outside code layers to inspect and modify floating-point registers. . The double specialization of device_pseudo_state_register (now renamed device_functional_state_register) has been added to the core. . state_add now has an additional specialization that takes both a reference and a write function, using the former for reads only. . state_max_length has been eliminated in favor of obtaining the relevant info through device_state_entry::max_length. . he debugger state view no longer adds "flags" as "???" if none have been registered. . set_state_string has been removed. It was never properly implemented, and it is difficult to see how it could have been done in a useful and consistent way. . state_find_entry and its typical callers state_int and set_state_int have been inlined for some hopeful efficiency gains. . Use logmacro for optional logging and make the messages more useful (emu\diserial.cpp) . UI . Added option to skip repeated imperfect emulation warnings. The option is called skip_warnings, and it must be set in ui.ini (it can be set using the internal UI). Red warnings cannot be skipped; yellow warning can be skipped under certain circumstances. For a yellow warning to be skipped, the system must have been launched in a way that allows warnings to be displayed, in a configuration with the same set of devices flagged with unemulated/imperfect features, within the last seven days, and the warning must have been displayed within the past 14 days. Also fixed a bug with display of the MACHINE_NO_COCKTAIL flag in the internal UI, and increased the size of XML integer attributes to 64 bits. . Make unimplemented graphics and sound severe warnings. This means you'll get an unskippable red warning for systems that have unimplemented sound or graphics that are otherwise marked working. This also applies to subdevices, so for example plugging a non-working video card or sound card into a computer driver will now cause a red warning. This should make it clearer when a game is playable but missing sound, or when a video or sound card doesn't work. The downside is that this could cause annoyance in a couple of situations. Workstations/servers with unemulated video that have working serial terminals and networking will now cause a red warning, and terminals/keyboards/etc. with missing beepers, key click, etc. will now cause a red warning even if they're otherwise usable. It may be worth making unimplemented controls and keyboard a severe error as well, since plugging in a non-working emulated keyboard is likely to make a system unusable. . XML: Escape attribute and element content. The previous behaviour was unintuitive - parsing an XML file and writing it out immediately would produce invalid XML if the file contained any ncharacters that needed escaping. It makes far more sense to escape on writing rather than expecting the user to escape input. Added preliminary support for visibility toggles to artwork system. This allows the user to show/hide related elements in a view, with nesting. The view can specify whether elements are shown or hidden by ndefault. Settings are saved per host window/screen per view. There is nno way to set the initial visibility state on the command line. Legacy n"Space Invaders cabinet model" layers are mapped onto visibility toggles. This is not stable yet. In particular, the XML element/attribute names have not been finalised. The new features have not been added to complay.py to prevent them from being used before they're finalised (util\xmlfile.cpp). . LUA engine: Added load_software, time_until_pos and ioport():type_seq. . Don't ignore config elements with attributes but no child nodes (emu\config.cpp and util\xmlfile.cpp) . Get rid of a bunch of _Names - any name starting with an underscore followed by an uppercase letter is reserved . Fixed STRUCT_MEMBER in audio\segausb.cpp and sound\sp0250.cpp . Validity: Limit characters allowed in I/O port tags and check ROMs and I/O ports for devices individually (emu\validity.cpp). Catch missing required I/O ports in systems (excluding slot cards) (emu\validity.cpp). . Use appropriate standard exceptions for reporting errors, allowing libemu to be removed from imgtool and floptool (formats\flopimg.cpp). . LAYOUT . Adding new mechanism for allowing parts of views to be hidden. Changed name of element to "collection" and initial visibility attribute to "visible", and added them to documentation. Also added them to complay.py. Fixed issue with collection inside group, and improved initial view selection behaviour. Updated some internal layouts to demonstrate new features, including et3400, irrmaze, ltcasino, mekd3/mekd4, seawolf and vgmplay. Removed all uses of cpanel, marquee and overlay from internal layouts and removed them from complay.py to actively discourage use. Also cleaned up view names in layouts that were using them in place of spaces, and removed some superfluous name attributes on elements that won't do anything useful with an output value anyway. . Bulk-updated layouts using bezels without backgrounds or screen. These layouts had bezel elements only. It makes no sense to allow turning off all elements in a layout leaving the user with a blank window (It's possible some of them are suited to breaking up using collections, but that's a bigger job). . Bulk-updated layouts using backdrops without bezels or screens. These are mostly automatically generated/converted fruit machine layouts. They were fortuitously triggering the "alternate" layout mode by having multiple background elements without overlays, so alpha blending mode was used for all elements. . Fixed issue that automatically generated unnecessary internal views. Updated a few more internal layouts, mostly bezel-only ones. brkball wasn't using the DMD dots at all (it has a screen). The Aristocrat layouts could use collections to allow buttons and tower lamps to be enabled/disabled independently. . Updated another batch of layouts. The majority of these were using for control panels. Cleaned up the stactics layout, made laser LEDs use additive blending, and made it possible to hide just the control panel. Added several view options to the Jockey Club family of games. Added ability to show/hide parts of several other layouts. . Fixed bug calculating group bounds with repeats. Bounds were being miscalculated when the first element inside the group was inside a repeat or a collection. Most visible in md6802. A lot of these were using a black backdrop element to force bounds when either explicit view bounds or an empty element is a better way to achieve the same thing. Bally by17/by35 pinball layouts have had a bit of an overhaul with the three sections of the display now abled to be toggled independently. Ensoniq VFD layouts refactored to reduce a very large number of lines down to a few nested repeats. . Updated efootb4, einvader and einvaderc layouts to zoom view when hiding score display. Added some optional verbose logging for debugging group bounds calculation. . Eliminated remaining elements from internal layouts. These layouts have changes to element stacking order that can't be avoided without changing the group structure in the layout files. I think it's harmless, but it's possible it could have had a detrimental effect on (MESS) risc2500 (I tested it and didn't see any changes, but I might not have known what to look for). complay.py: Added basic checks for dupicate collection names. As with other checks of this kind, it doesn't actually instantiate the layout so it doesn't check things when variable substitution is involved. . Converted video\bfm_dm01.cpp back to using outputs and update layouts. Outputs no longer require string formatting and hash lookups, and only changes to output values result in notifications. Performance is better than before. We never had any kind of post-processing to make the "alternate pixels" screen bitmap look like a DMD, and the bilinear scaling looked awful. . Print warning messages on encountering deprecated elements . Cleaned up de_2.cpp layouts using loops and made bounds fit the content. Made caveman (gts80a.cpp) screen match the height of the backglass, fixed bounds and added backglass-only view. . Fixed some layouts that were depending on emergent behaviour rather than specifying state="0" on components explicitly . Added support for saving arrays of attotimes and renamed macros to make purpose more obvious (emu\save.h) . PLUGINS . Added emu.plugin table to contain plugin exported interfaces (plugins\boot.lua, plugins\cheat\init.lua). Copy the cheat table to not expose internal state (plugins\cheat\init.lua). . hiscore.dat: Removed Gauntlet. The high scores are in the NVRAM, these cause more problems then they are worth. Fixed set names. . Fixed ROM sets incorrectly reported as not found by partially reverting MAME 0.224 (Fixed audit finding sets that you don't have) (ID 07756). - Android: Auto-discover Clang version. Fixed android builds after mame-0.224 (makefile). - SDLMAME: Drop MASK from osd\sdl\taputil.sh - VGM player: Adding new mechanism for allowing parts of views to be hidden. Fixed issue with collection inside group and improved initial view selection behaviour. Updated some internal layouts to demonstrate new features, including vgmplay. Made vgmplay cycle visualiser modes when visualiser screen is clicked. - Compiling . Added naming conventions for certain things. This isn't supposed to be too prescriptive. The C++ stuff just codifies some things we've managed to mostly agree on for public interfaces. The stuff for titles/descriptions is also just codifying existing rules so there's something to point people towards. This will need to be refined as we go forward (docs\source\techspecs\naming.rst). . Emscripten . Fixed Clang version detection under Emscripten . Netlist and OpenGL improvements: Most OpenGL link issues fixed. Two remain from drawogl.cpp. This isn't working anyhow. "-video accel" now uses WebGL. This allows GL based scaling and provides a performance improvement. Fixed pong and other games by adding another function to the exception whitelist. Target now is mame.html. This allows emrun to be used for testing. mame.js is created as well and thus the current behaviour unchanged (scripts\genie.lua and scripts\src\main.lua). . Deal with loops when there are parent directory references in #include directives. As an aside, it would be nice if the loops weren't there in the first place (scripts\build\makedep.py). . Get rid of more inappropriate use of emu_fatalerror . Removed memarray.h from emu.h . Removed embed files unintentionally added to Emscripten build (scripts\src\main.lua) - Debugger . Replaced simple_list with std::list in parsing. Report too few or too many function parameters in debug expressions as expression errors instead of exiting MAME with a fatal error (debug\express.cpp). . Added abs, bit, s8, s16 and s32 functions to debugger (debug\debugcmd.cpp) 0.224 - New games: Break Ball and Gratis Poker (V.204, set 1) - New Working games: Super 98 (3-hands, ICP-1) - New Working AGEMAME games: v4addladd, v4barqstd, v4bloxd, v4mated, v4psibcd, v4pzteta, v4pztetc, v4strike2d and v4striked - New Non-Working games: Bare Knuckle II (bootleg of Megadrive version), Bingo 75, Hola Don Pepito, Photo Play 1999 (Spanish), Sega Golf Club Network Pro Tour 2005 (Rev C) (GDX-0010C) and 'SNES 4 Slot arcade switcher (NBA Jam)' - New clones: Cherry Master I (ver.1.01, set 9), Cherry Master I (ver.1.01, set 10, BET stops all), Cherry Master I (ver.1.01, set 11, TAKE stops all), Cuatro en Linea (rev. A-06), Dead or Alive (Model 2B, Revision C), Gratis Poker (V.204, set 2), Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100, ARM ver. V100CN), Jolly Card (Italian, encrypted bootleg, set 3), Jolly Joker (40bet, lower paytable), Jolly Joker (Solid State module in suicide board), '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. M203XX, 200, 100CN)', Monopoly (JPM) (Version 3) (SYSTEM5 VIDEO), Monopoly (JPM) (Version 4H, Protocol) (SYSTEM5 VIDEO), Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO), Monopoly Deluxe (JPM) (Version 1) (SYSTEM5 VIDEO), Monopoly Deluxe (JPM) (Version 6, Protocol) (SYSTEM5 VIDEO), Mr. Do! (bootleg), Mighty! Pang (Asia 001010), Gkoulit (encrypted GFX), 'Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 203) [Oriental Ex]', Oriental Legend / Xiyou Shi E Chuan (ver. 105, Taiwanese Board), Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/30/99 build), Reflex Cards (English, serial protected), Ring of Destruction: Slammasters II (Brazil 940902), Sector Zone (set 2, Tecfri hardware), Sector Zone (set 3), Shan Liang San He Yi (Flash 3-in-1) (V102 08/23/04 13:03:26), Tougenkyou - Road of the Sword (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN) (Japan, JAMMA PCB), Zhongguo Long II (ver. 101C, China), Zhongguo Long Pretty Chance [Dragon World Pretty Chance] (V110 03/19/02 11:13:16, China) and Zoo Keeper (bootleg) - New AGEMAME games: Gold Rush (BWB) (Release 3, 20p Fixed, Cash+Token) (MPU4 Video), Miami Dice (BWB) (Release 6, Arcade Standard, 20p-\xa38 Token - Fixed) (MPU4 Video), Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO), Monte Carlo Or Bust (BWB) (German) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Switchable, Cash and Tokens) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, S/Site Standard, 20p Fixed, \xa38 All Cash) (MPU4 Video), Piccadilly Night (Nova, German) (set 2) (MPU4 Video) and Piccadilly Night (Nova, German) (set 3) (MPU4 Video) - New PinMAME games: Baywatch (2.01 French) and Middle Earth (alternate) - New devices: astrob_audio, bacta_datalogger, elim_audio, kl5c80a16, kp69, ky80, lagunar_audio, pinsnd88, s11_bgm, s11_bgs, s11_obg, spcfury_audio and zektor_audio - New mame.ini options: speaker_report (CORE SOUND OPTIONS) - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . ARM7: Fixed THUMB ROR behavior for shift values of 0 or >= 32. All tests in FuzzARM (CPU test for Game Boy Advance) now pass (arm7\arm7thmb.cpp) . Kawasaki Steel KL5C80A12: Emulated KP69 interrupt controller. Clean up KP69 code a bit. Don't latch masked-out requests. Prepare for device variant. Log kc82 MMU changes. . MCS-48: Fixed cycles not deducted for timer IRQ, get rid of (MESS) Kaypro 10 hack. Burn opcode cycles before executing opcode. Get rid of wy100 irq hack. Fixed possible missed timer overflow if burn_cycles is larger than 2. Fixed cond jump address if argument fetch was at 0x7ff or 0xfff (mcs48\mcs48.cpp). . NEC uPD7810: Analog fixes (conversion registers, scan mode). Fixed semantics of SKIT NMI and SKNIT NMI. Simplified analog input code. . NEC Vxx/V25: Use anonymous namespaces to avoid ODR violations with enums . Texas Instruments TMS34010/20: Eliminated pure 8-bit read/write bus accesses (these are always read-modify-write, even if aligned) . Texas Instruments TMS34020: Upgraded data bus to 32 bits and add preliminary masking for 16-bit operations. . Zilog Z80: Don't continue cpu when halt opcode gets overwritten . Zilog Z80180: Correct FRC counting rate and direction. Run programmable reload timer off FRC. Emulated a subtle difference from Z80 behavior in fetching opcode after DD CB or FD CB. . Zilog Z8681: Fixed bug in decimal adjust (z8\z8ops.hxx). Fixes PRINT 654 in (MESS) BERT (1987). - SOUND . GI SP0250 LPC: Matched clock divider to real chip measurements. Fixed behavior when not fed enough data; addresses "gapping" in speech in Sega games. Implemented accurate LFR noise generator according to real chip measurements. Added pulse-width modulation DAC output mode for future consumption by netlist. Further verification from real hardware. . K054539 ADPCM: Allow side effects. Added imperfect_features related to unverified/unemulated effects and some registers. . Sega Speech Sound Board: Wrote netlist-based backend for 'Sega Speech Sound Board'; currently disabled pending future sound system changes. . Sega Universal Sound Board: Improved Universal Sound Board implementation for better accuracy in Star Trek and Tac/Scan (ID 07103). Wrote netlist-based backend for 'Sega Universal Sound Board'; currently disabled due to limitations in the system. . Speaker: Added new option -speaker_report to report clipping and other statistics after each session. This replaces the previous compile-time define and offers more detail. - DEVICE . 3dfx Voodoo Graphics: Disabled debug statistics popup (video\voodoo.cpp) . Atari CAGE: Added one missing variable to state saving (audio\cage.cpp), fixes no sound in sfrush and sfrushrk when loading from save state (ID 07724). . Discrete Netlist . Added netlist sound to Destroyer (https://youtu.be/xOxXcZqIoeo), Fire One (https://youtu.be/xOl0NR5in5o), Flyball (https://youtu.be/AaVw4egRCRc), Star Cruiser (https://youtu.be/XwNVSPnM4dQ), Star Fire (https://youtu.be/pOPmgesqO6c), Star Fire 2, Super Speed Race and Tank Battalion (https://youtu.be/Gv5wLv6Ry-o). . Added netlist-based sound to Astro Blaster, Eliminator, Space Fury and Zektor. . Added netlist for Tank/Tank Cocktail [TTL]. Currently runs at about 0.005% of full speed, unsure why. . Fixed building with GCC-10.1 on MinGW32 (machine\nl_palestra.cpp) . Removed test code from nld_74125.cpp. Further nl_base.h splitting into headers in core subdir. Fixed a crash if an exception happened during validation (machine\netlist.cpp). Fixed a bug in preprocessor if and elif parsing. Added a missing directive to the file parser. Necessary changes towards runtime processing of macro directory. . Source stream refactoring. This is an infrastructure change to enable better error reporting including file/source and line numbers in the future. . Added CD4011, CD4024, 7407 and CD4053 devices. Fixed 4011 implementation. Converted CD4013 DIP to macro. Fixed an issue during proxy hookup. Added cd4053 to netlist.lua. Recreated nld_devinc.h. . Fixed 74ls629 implementation and some cherry-picking issues. Disable dangerous optimization. This was an over-aggressive optimization. Now prints an info and recommends to comment out if appropriate. . Device refactoring: Moved DIPs for 82S16, 82S115 and 2102A devices into nlm_proms. Moved 7448 DIP to a macro. Replaced 7442 with truthtable and macro. Moved 74LS629 DIP into macro. Expand truthtable to handle 10 outputs. Updated 7450, 7473/7473A, 7474, 7475/7477 devices to use DIP macros instead of C++ DIPs. Reworked 7475/7477 more in the style of 7474, leveraging system signal activation and edge detection. Fixed incorrect sense in warning (analog\nld_mosfet.cpp). . Added CD4017/4022 devices. Fixed 7492 and roms include bug (devices\nld_7492.cpp and macro\nlm_roms.h). . Macro-ized 7483, 7485, 7490, 7492, 7493, 7497, 9310, 9316, 9322, 74107, 74113, 74153, 74161, 74163, 74164, 74165, 74166, 74174, 74393 and CD4006 DIPs. . Minor optimization to remove sqrt from inner loop (solver\nld_matrix_solver_ext.h). Moved documentation from header to cpp file: Header files will disappear and only nld_devinc.h which is can be created by nltool will stay. These commits ensure that the documentation is preserved when the header files are deleted at some point in the future. . Added example documentation to SN74LS629_DIP (macro\nlm_ttl74xx.cpp) . Silence indentation warning in 3rdparty/ under Emscripten . Refactored pokenizer. Separated tokenizing and reading of tokens. This enables caching of parsing results on the token level. Implemented caching of token stream. Overall this significantly improves parsing performance (~10x). Next step towards a bare-bone nltool which does not depend on macro devices. . Added documentation for devices in nlm_ttl74xxx.cpp. Documentation for all devices in nlm_ttl74xxx now is available in the doxygen documentation. . Renamed DM9312 to TTL_9312 for consistency. Added man target to netlist makefile (help2man). . Header file separation. Fixed creation of static solvers. Fixed line-number tracking when at end of line. . Align naming of files within the macro folder. Use a consistent naming scheme. Improved parsing performance. Preparational work for easier device addition. . More include untangling. nl_base.h now basically only includes files from core. All headers in core compile on their own. . Untangle sound and cpu devices. Member variables are now where they belong. Avoid over/underclocking of netlist sound devices. . Make streams accept logic parameters as well (netlist\nl_interface.h). Added THRESH parameter to AFUNC (devices\nlid_system.h). . Added machine.time() rules. Avoid overshooting sound devices, i.e. advancing past machine.time(). . Fixed elif processing (plib\ppreprocessor.cpp). Removed printf debugging (netlist\nl_parser.cpp and nl_setup.cpp). Also raises error if during parsing a local source is not found (netlist\nl_errstr.h). . buffered_param_setter refactoring: Each parameter to set now has a dedicated buffered_param_setter device. This allows different sample times per device. Updated netlist.cpp for new approach. buffered_param_setter is a template. The template parameter is a class which is expected to support the [] operator. The value passed to [] operator is the requested sample number. . Regenerated static solvers and fixed errors preventing static solvers from generating . Increase queue sizes to accomodate nl_tank complexity (netlist\nl_config.h). Properly fixed 74165 implementation. Fixed MK28000 address latching. . Moved dead code into examples/lostfound.cpp. This work didn't improve performance but still may serve as examples for complex truth table implementations. . Added compile-time option to record nltool-compatible CSV files. Improved CD4020 implementation. Fixed CD4053 behavior. Added 74139 device. Added TL082 device. . Use posix_memalign with ANDROID (netlist\plib\palloc.h). Optimized 74165. Added AN6551 opamp. . Added NETLIB_DELEGATE_NOOP(). This should be used for inputs which do not need a handler. Examples are data inputs which are only accessed on a clock change. . Removed duplicate device definitions. Use macro DIP definitons for 74175, 74192, 74193, 74194 and 74365. . Fixed-Frequency Monochrome Monitor: Improved handling of interlaced video. Will now detect half lines before vsync and determine field (video\fixfreq.cpp). . Intel 8253 PIT: Added explicit synchronization to all writes. Cleaned up some timing calculations to avoid double<->attotime conversions. Fixed cycles computation error due to using floating-point. . MC68681 DUART: TX/RX clocking from timer fixed and added partial support for break signal. . Microtouch Touchscreen: Added BIOS 2.2 . Midway Serial PIC: Removed few unneeded HLE hacks. Added debugger access guards (machine\midwayic.cpp). . S1410 Hard Disk: Fixed format unit command and data input (nscsi\s1410.cpp) . SCSI Bus (new): Implemented REZERO command (machine\nscsi_bus.cpp) . Taito TC0030CMD (C-Chip): Fixed analog input values . Z80 DMA Controller: Added IEO callback - atronic.cpp: Fixed address mapping issue - cdi.cpp: Demoted cdibios and (MESS) cdimono1 to MACHINE_NOT_WORKING per developer request - cps2.cpp: Use ROM_LOAD_64_BYTE macro where appropriate - funworld.cpp: Cleaned-up the driver. Added and correct technical notes. - gaelcof3.cpp: Added PCB ASCII layout - guab.cpp: Hooked up BACTA datalogger, fixes coinup issues. Moved BACTA Datalogger to shared library, improved message handling. - karnov.cpp: Use OCS to derive clock speeds - mcr68.cpp: Switch Midway MCR-68k hardware (archrivl, pigskin and trisport) to use the s11c_bg implementation of the Williams System 11 BG sound board instead of the older implementation. - midvunit.cpp, seattle.cpp and vegas.cpp: Added security PIC dumps with ID and config word for CarnEvil, Gauntlet Dark Legacy, Gauntlet Legends, Mace: The Dark Age, NFL Blitz '99 and War Gods. Cruis'n World uses newer type PIC. - midwunit.cpp . Added I/O shuffling to fix sound stops working during attract mode of WWF: Wrestlemania (ID 07552). Eliminated dependencies on Midway T-Unit driver. . Hooked up security PICs to Rampage: World Tour and Ultimate Mortal Kombat 3 - nmk16.cpp: Fixed DMA timing related regression. Example Hacha Mecha Fighter title screen (ID 07730). - pgm.cpp . Overhauled rom labels according to PCB pics. Standardized set names. . Added new user1 roms to clones Martial Masters / Xing Yi Quan (ver. 102, 101, 101CN) and Oriental Legend Special / Xiyou Shi E Chuan Super (ver. 100, set 2). - photoply.cpp: Added notes about BIOS versions - segag80v.cpp . Implemented wait states and the vector DRAW flag to help improve timing (video\segag80v.cpp) . Improved 'Sega Universal Sound Board' implementation for better accuracy in Star Trek and Tac/Scan (ID 07103) . Wrote netlist-based backend for 'Sega Universal Sound Board' and 'Sega Speech Sound Board'; currently disabled due to limitations in the system and pending future sound system changes. - sigmab98.cpp . Changed CPU to new KC82-derived type for sigmab98.cpp games b3rinsya, dashhero, dodghero, gegege, lufykzku, pepsiman, sushimar, tbeastw2 and ucytokyu. . Added back NVRAM (and more of it) in Minna Ganbare! Dash Hero now that memory map has been correct - starfire.cpp: Added netlist sound to Fire One, Star Fire and Star Fire 2. Removed MACHINE_IMPERFECT_SOUND flags. - vp101.cpp: Fleshed out inputs. Fixed sound POST hanging. Found framebuffer base address register. - 18 Holes Pro Golf: Added hardware info and verified clocks - 280-ZZZAP: Fixed netlist engine sound tone - 39 in 1 MAME bootleg . Decrypted clones '4 in 1 MAME bootleg (set 1, ver 3.00)' and '4 in 1 MAME bootleg (set 2)'. Started working on decryption of clones '19 in 1 MAME bootleg' and '48 in 1 MAME bootleg (set 1, ver 3.09)'. . Hooked up DIPs - 3-D Bowling: Fixed unable to credit up (ID 07729) - AGEMAME . Fixed Payout Shelf opto switch and added overlay for Prize Space Invaders . Added inputs to mpu4vid.cpp BWB games. Fixed fatalerror for v4monte and clones. . Added an implementation of the BACTA Datalogging protocol used in many of the AWP drivers. Hooked the BACTA logger up to the MPU4 driver (mpu4.cpp, mpu4avan.cpp, mpu4bwb.cpp, mpu4concept.cpp, mpu4crystal.cpp, mpu4dealem.cpp, mpu4empire.cpp, mpu4mdm.cpp, mpu4misc.cpp, mpu4mod2sw.cpp, mpu4mod4yam.cpp, mpu4plasma.cpp, mpu4sw.cpp and mpu4vid.cpp) to fix Datapak/Protocol games. Moved BACTA Datalogger to shared library, improved message handling. . Improved mpu4vid.cpp set identification, fixed some palette issues. - Arm Champs II: Updated hardware notes - Battletoads: Use 8-bit handlers for NVRAM, reducing size to 8192 bytes. - Black Tiger: Decrypted main CPU roms for clone Black Tiger (Modular System). Flagged game as MACHINE_IS_SKELETON. - Cops'n Robbers: Use raw parameters for screen timing - Cruis'n USA: Confirmed the P2 and L1 revision U2 sound code to be identical for Cruis'n USA - Dardomania: Added missing PROM - Dead or Alive: Redumped polygons rom mpr-19324.19 - Destroyer: Added netlist sound. Use raw parameters for screen timing and correct IRQ timing. - Double Wings: Added PAL dumps - Flyball: Added netlist sound. Note: Flyball entirely lacked audio in MAME, with not even recorded samples available. Use raw parameters for screen timing - Frisky Tom: Made clone Frisky Tom (set 3) use an M6802 - Funny Strip: Decrypted clone Ring Ball. Currently stuck at initialization / test mode. - Invasion - The Abductors: Marked PIC dump as BAD - Laguna Racer: Added Laguna Racer to the 280-ZZZAP netlist audio driver, with conditional changes to the netlist for the circuitry differences between the two games. Adjust some netlist components that apparently changed from the 280-ZZZAP schematic to production machines. Removed the driver's private MC3340 netlist, using the equivalent one in the netlist library instead. - Legend of Hero Tonma: Redumped and verified the i8751 MCU for Legend of Hero Tonma (World) - Metal Maniax: Probably fixed regression - Photo Y2K: Added new sprite roms - PinMAME . Separated Williams System 11 BG sound boards into the 5 functionally different types that existed, and hooked the appropriate types to each system 11/a/b/c driver. Switched to using a rom load region with a listed parent:sub space rather than using a set_romregion function within the device for all users of the s11c_bg device. Replaced the embedded bg sound and bg music board emulation on s11.cpp with the appropriate devices. Updated notes for the WPC Sound board. . Added and hook up a device for the D-12338-567 Williams Pin Sound '88 board, used on the Williams System 11B 'Jokerz!' pinball. Switched Williams Pin Sound 88 board to use two device_mixer_interface outputs for its output channels, instead of having speakers handled internally to the device. Fixed the Pin Sound 88 /SYNC_PULSE line to connect to Jokerz' System 11B PIA@3400 CA1 instead of CB1, based on board pictures of the W2/W3 jumper positions. Added a note about the infamous audio hum issue on the real Jokerz! pinball table, and updated device comments to clarify things and fix some minor errors. . Share the memory maps for the System 11/A/B/C mainboard maincpu and audiocpu between the s11, s11a, s11b, s11c drivers to remove redundant identical copies in each driver. Made the MC1408 dac a member device of the s11 main class to get rid of some init-time tag lookups and prepare for future enhancements. Put the initialization order of devices in the sound-board specific machine configs in a more sane order. . Added inputs to Big 40 Poker (BWB). - Raiden: Added PCB ASCII layout to Raiden (Modular System), added year and promoted from skeleton to MACHINE_NOT_WORKING. - Renegade: Renegade/Kunio-kun fixes. Reverted 6809 soundlatch IRQ and improved 6502 IRQ timing (ID 07717). - Revolution X: Manually restored BAD PIC16 dump and hooked to driver (ID 03228). Cleanup security chip access. Use 8-bit handlers for NVRAM, reducing size to 8192 bytes. Eliminated dependencies on Midway T-Unit driver. - Rodent Exterminator: Added preliminary decryption - Sega Bass Fishing: Added KL5C80A16 I/O CPU to configuration - Shadow Warriors: Combined D sprite roms verified with redump, apply the same to Japanese set. - Silk Worm: Fixed last level graphics in clone Silk Worm (bootleg) - Sinistar: Correct rom names and added documentation - Space Tactics: Use raw parameters for screen timing - Speed Freak: Added internal layout. Clean up gearing logic. - Spy Hunter: Added widescreen layout - Star Cruiser: Added netlist sound - Super Speed Race: Added netlist sound. Added save state support. - Tank Battalion . Added netlist sound. Removed MACHINE_IMPERFECT_SOUND flag (ID 03090). . Various fixes and cleanups. Correct CPU and video clocks. IRQ is scanline-based, not coin-triggered. Clean up and modernize VBLANK NMI handling. Added watchdog timer. Verify memory map and add mirrors. Added imperfect colors flag (color PROM usage is now known to be wrong). Increase queue sizes to accomodate nl_tank complexity (netlist\nl_config.h). - Tank/Tank Cocktail [TTL]: Added netlist for Tank/Tank Cocktail [TTL]. Commented out CPU-choking motor sound for now. Fixed a transcription error. At least partially fixed screen parameters. Attempted to hook up proper timing params, doesn't seem to work. Assorted fixes and changes. For some reason, GNE (H4.6) never goes low at the start of the game. - Tecnodarts: Added PCB ASCII layout - Venture: Replaced BAD_DUMP gfx1 rom with verified - Vigilante: Added PAL and PROMs to clone Vigilante (bootleg) - Fixed rom names in champbas.cpp, circus.cpp, de_3b.cpp, exidy.cpp, karnov.cpp, leland.cpp, m72.cpp, m92.cpp, pgm.cpp, thunderx.cpp and williams.cpp - Dipswitch fixes in 39in1.cpp, goldnpkr.cpp, mpu4vid.cpp, seta.cpp and vp101.cpp - Description changes of 19 in 1 MAME bootleg (SAC-V000), 39 in 1 MAME bootleg (GNO-V000), 4 in 1 MAME bootleg (set 1, ver 3.00, PLZ-V014), 4 in 1 MAME bootleg (set 2, PLZ-V001), AGEMAME (lots of), Cuatro en Linea (rev. A-07), Dungeons & Dragons: Shadow over Mystara (Asia 96061), Dungeons & Dragons: Shadow over Mystara (Japan 96022), El auto feo, Frisky Tom (set 3), Jolly Joker (40bet, higher paytable), Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 111, Japanese Board), Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 114, Hong Kong), Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/20/99 build), Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 96086), Ring Ball (Ver. 2.6), Sector Zone (set 1), Sinistar (AMOA-82 prototype) and Susanita - Renamed (dmnfrnta) to (dmnfrnt102), (dmnfrntb) to (dmnfrnt103), (doa) to (doab), (drgw2c) to (drgw2100c), (drgw2hk) to (drgw2100hk), (drgw2j) to (drgw2100j), (dw2v100x) to (drgw2100x), (dwpc) to (dwpc101j), (jolyjokrb) to (jolyjokrb1), (kov100) to (kov111), (kov100hk) to (kov114), (kovshpa) to (kovshp100), (martmastc) to (martmast104c), (martmastc102) to (martmast102c), (martmastc103) to (martmast103c), (monopolya) to (monopoly4), (pgm3in1) to (pgm3in1c100), (photoy2k102) to (photoy2k102j), (puzlstar) to (puzlstara), (sinistar1) to (sinistarp), (thegladpcb) to (thegladpcba), (v4monteh) to (v4monte5), (v4montei) to (v4monte5a), (v4montej) to (v4monte5b), (venture2) to (venture5a) and (venture2b) to (venture5b). - MAME . VIDEO RENDERING SYSTEM . Added getter for pixeltime (emu\screen.h) . Fixed overwriting last pixel of previous update and rendering whole scanline when update was called inside hblank. . Fixed possible issue if update_now and update_partial are both called from driver (emu\screen.cpp) . Clean up the preprocessor glue for selecting RGB utility implementation a little and check macros are defined before doing comparisons (emu\validity.cpp, video\rgbgen.cpp, rgbsse.cpp and rgbutil.h) . Removed unsupported setter, emumem enforces unmapval 0 or ~0 (emu\addrmap.h). . Fixed audit finding sets that you don't have when: 1. A clone has a rom that hasn't been dumped but it has the same name as a rom in the parent that has been dumped. 2. If roms are the same between parent and clone but loaded differently (ID 05556). 3. If parent has all the roms in the clone & you have neither set but you have a device rom that is used (ID 07410). . Added widescreen layouts for working machines with shifters: 280-ZZZAP, Buggy Boy Jr/Speed Buggy, Buggy Challenge, Change Lanes, Chase Bombers, Chequered Flag, Cisco Heat, Continental Circus, Destroyer, Double Axle, Enforce (Japan, Analog Controls), Final Lap, Grand Champion, Grand Prix Star, Laguna Racer, Namco System FL, Outrun, Pole Position, Power Drift, Rad Rally, Speed Freak, Speed Race, Stocker, Top Racer, Top Speed, Turbo Tag (Prototype) and WEC Le Mans 24. Added widescreen layouts for non-working machines with shifters: Round-Up 5 - Super Delta Force, Spy Hunter (bootleg on Tecfri PCB), and Over Drive. . Cleaned up save/load state menu code. Fixed display names for states saved with keyboard keys. Wait for at least one frame with no keys pressed before saving/loading. Fixes save state menu saves too quickly if activated by Joystick buttons (ID 07140). . hiscore.dat update (plugins\hiscore\hiscore.dat) - MAC OS X: Pass FORCE_C_DRC_BACKEND=1 on ppc architectures: PowerPC architecture is special in a way that it has some inline assembly code but no DRC support. As a result, NOASM=1 was never configured. In contrast to the old DRC, asmjit only compiles on the architectures it supports. FORCE_C_DRC_BACKEND=1 needs to be passed to the makefile or the compilation will fail (makefile). - VGM player . Added 40 new entries. Fixed a good number of entries for correct shortnames, increased description info and filled in "no_data" fields (hash\vgmplay.xml). . Added proper dates to nearly all ?? YEAR fields. Fixed dozens of short names to better match MAME's softlist metadata. Enhanced some descriptions for many Sega titles - properly denoting the actual console when possible (hash/vgmplay.xml). - Compiling . Use swapendian_int16/int32 (i860\i860dec.hxx, machine\dp8390.cpp, machine\gayle.cpp) . Fixed redundancy in pacman-key --verify call. Appveyor VS2017 image only ships with pacman 5.1.3 as of now. In that version pacman-key --verify only takes one argument, the signature (appveyor.yml). . Added simple .editorconfig. Clean up command-line -h output, tidy up emulator_info class a little and added trim trailing whitespace to .editorconfig. . Documentation update for vector options (docs\source\commandline\commandline-all.rst). Fixed compilation of docs for HTML and manfiles. . Fixed non-x86 build and try to make sure it does not break silently again. Do not build x64 DRC backend when C backend is forced. New CI target (mametiny + kinst). Switch travis to CI target and appveyor to CI target. . Define IMGUI_DISABLE_OBSOLETE_FUNCTIONS consistently: IMGUI_DISABLE_OBSOLETE_FUNCTIONS was defined in osd\modules.lua but not in 3rdparty.lua. As a result, two different variants of struct ImGuiIO were being defined, causing a C++ One Definition Rule violation (scripts\src\3rdparty.lua). . Clean up Clang options now that Clang 5 is a hard requirement and suppress xor-used-as-pow warning introduced in Clang 10. . Cleanup mame\arcade.flt and mess.flt . Enable ppc64le for travis: Added akkaarrh to the ci target. Switched Travis CI to Ubuntu Focal. Allow ppc64le CI build to fail. Report CI status as soon as a job has failed or remaining jobs are allowed to fail. . CHDMAN: GCC 9.3 is actually the cutoff point for legacy MSVC-style long format flags . Make cleansrc target use shell type to select correct syntax rather than assuming Windows uses cmd shell (makefile). - Debugger . Added 'fill' command to debugger. Syntax and operation are similar to 'find' command (debug\debugcmd.cpp). . Documented rowsize parameter for dump command in debugger help. . #if DEBUG_VRAM_VIEWER instead #ifdef (video\epic12.cpp) 0.223 - New games: 'Dice game' - New Working games: NBA Showtime: NBA on NBC (ver 2.0), NBA Showtime / NFL Blitz 2000 (ver 2.1), NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (SportsStation), Photo Y2K 2 and 'unknown rocket/animal-themed poker' - New Working AGEMAME games: Adders and Ladders (v2.0) (MPU4 Video), Adders and Ladders (v2.1) (MPU4 Video), Blox (SJM BLOX, 50p/20p Play, Version 2.0) (MPU4 Video), The Crystal Maze (v0.1, AMLD) (MPU4 Video), The Crystal Maze (v1.1) (MPU4 Video), The Crystal Maze (v1.2) (MPU4 Video), The Crystal Maze (v1.3) (MPU4 Video), The Crystal Maze Team Challenge (v0.8) (MPU4 Video), The Crystal Maze Team Challenge (v0.9) (MPU4 Video), The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video), The Mating Game (v0.4) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.0) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video), Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (MPU4 Video), Prize Tetris (BWB) (Datapak) (MPU4 Video), Prize Tetris (BWB) (MPU4 Video), Strike it Lucky (v0.5) (MPU4 Video), Strike it Lucky (v0.53) (MPU4 Video), Tetris Payout (BWB TET1 Version 2.2, set 1) (MPU4 Video), Tetris Payout (BWB TET1 Version 2.2, set 2) (MPU4 Video) and Vegas Poker (prototype, release 2) (MPU4 Video) - New Non-Working games: Bingo Roll / Turbo Bingo?, Captain Lucky, Destruction Derby [TTL], Diana Olakoa, El auto de papa, Far West (Compumatic), Lucky 7 (Impera), Puzzle Me!, Reno Reels (JPM), Sport Dart TV, Susanita tiene un raton, Tecnodarts, Unknown Compumatic ProSPDP based darts machine, Yataimura Kingyosukui (4-player, China, Ver 1.000) and unknown 'TE06' - New clones: 4-in-1 (version SWS1-052587), Astro Fighter (set 4), Cruis'n USA (rev L4.4), Dead Or Alive ++ (Korea), Double Wings (set 2), Galaxian (Cirsa Spanish bootleg), Hammerin' Harry (World, M84 hardware bootleg), Jack Potten's Poker (set 13, ICP-1 PCB), Jolly Joker (original program, interleaved GFX, Impera logo), Jolly Joker (original program, interleaved GFX, no logo), Pipi & Bibis / Whoopee!! (Ryouta Kikaku bootleg, decrypted), Magic Card - Wien (Sicherheitsversion 1.2), Master Boy (1987, Z80 hardware, Ichi-Funtel, set 2), Ms. Pac-Man (bootleg, set 3), Ms. Pac-Man (Novatronic bootleg), New Lucky 8 Lines (set 11, W-4), Nove Diamante (bootleg), Race Drivin' (compact, prototype), Robotron: 2084 (Unidesa license), Slap Shot (Ver 3.0 O), Space Trek (Video Game S.A., Spanish bootleg of Scramble), Splash (Modular System), Witch Star and Zero Time (Spanish bootleg) - New AGEMAME games: Adders and Ladders (v2.1d) (MPU4 Video), Barquest (v2.6) (MPU4 Video) and Chase Invaders (Barcrest) (MPU4) (set 8) - New PinMAME games: Football, Funhouse (L-2), Funhouse (L-2, prototype PA-1 System 11 sound), Laser Ball (L-2, PROM sound), Last Action Hero (1.04 France), Last Action Hero (1.07) and Michael Jordan (1.30) - Removed games: Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 2) and 'unknown animal-themed game (top)' - New drivers: gaelcof3.cpp, sigmab31.cpp, special_gambl.cpp, splash_ms.cpp and tecnodar.cpp - New devices: acb2072, armora_audio, barrier_audio, boxingb_audio, centronics_samdac, ibm21s850, ibm21s851, pxa250, pxa270, ripoff_audio, s11_bg, solarq_audio, spacewar_audio, specimx_sound, speedfrk_audio, starcas_audio, starhawk_audio, sundance_audio, tailg_audio, tsb12lv01a, warrior_audio, wotw_audio and zn426e - New mame.ini options: beam_dot_size (CORE VECTOR OPTIONS) - CPU . Dynamic Re-Compiling . Implemented asmjit emitter (cpu\drcbex86.cpp and drcbex64.cpp). Consolidated many helpers. Correct previously reported bugs (cpu\drcbex64.cpp). . Fixed logging problem (cpu/drcbex86.cpp and drcbex64.cpp). Implemented asmjit emitter (cpu\drcbex86.cpp). . Hitachi HD6309, KONAMI CPU and Motorola MC6809: Fixed ASR8 and ASR16 opcodes. Still perform an IRQ acknowledge cycle on software interrupts (cpu\m6809\base6x09.ops). Fixes (MESS) Fairlight CMI IIx memory-map diagnostics. . Intel XScale PXA255: Added preliminary support for RTC, clock and power management registers. Correct PXA255 CPU ID. Added placeholder devices for PXA250 and PXA270. . Kawasaki Steel KL5C80A12: Emulated MMU within CPU device. Internalized internal RAM and clock divider. Updated notes. . MIPS-III: Removed depricated DRC flag and added a flag to disable intrablock branching (cpu\mips\mips3drc.cpp and mips3.h) . MOS Technology 6502: NMI is edge triggered, fixes (MESS) Intelligent Chess. . Motorola MC68000: Eplicitly set rounding mode for FREM opcode (m68000\m68kfpu.hxx) . Toshiba TMP95C06x: Fixed MAX instruction (tlcs900\900tbl.hxx) - SOUND . DAC: Added ZN426E device (sound\dac.h) . ICS2115 WaveFront Synthesizer: Improved envelope behavior and debugging registers. Fixed ramping. . K007232 PCM Controller: Updates and cleanup. Use device_memory_interface for fetching sample. Fixed frequency behavior. Allow dynamic clock changes. Use shorter/correct type values. Simplify update routine. . K051649 SCC1: Fixed frequency behavior. Modernized save state. Correct type values. . K053260 KDSC: Allow side effects . OKI MSM9810 ADPCM: Modernized logging . Philips SAA1099: Fixed output and frequency behavior. Added notes. Reduced unnecessary, unused values, duplicates and macros. . Ricoh RF5C400: Fixed loop position is not being calculated correctly. Modernized save states. Allow clock changed behavior. Added imperfect_features related to unemulated effects and unverified envelope issues. . Samsung KS0164 Wavetable Synthesizer: Profiling says 40% of the time is spend calling describe_context() and not using the result (sound\ks0164.cpp) . Speaker: Changed speaker maximum sample tracking to be based on new compile-time define SPEAKER_TRACK_MAX_SAMPLE instead of MAME_DEBUG (emu\speaker.cpp) . Yamaha YM2151 OPM: Fixed noise behavior . Yamaha YMZ280B PCMD8: Modernized save state. Fixed frequency calculation. Allow side effects. Reduced unnecessary defines. Use shorter/correct type names. Fixed spacings. Added notes. Better fix for signed arithmetic issue. - DEVICE . 3dfx Voodoo Graphics . Disabled backbuf debug key (L), it interferes with player 3 default controls . Only flag texture controls as changed if they are actually changed (video\voodoo.cpp). . SSE use shift left by 8 instead of floating point multiply by 256 for perspective correction calculation (video\vooddefs.ipp and voodoo.h). . Fixed outdated missing MAX macros used for statistics (video\polylgcy.cpp). Added checks for bilinear filter vector routines (emu\validity.cpp). . 6821 PIA: Guard against side effects when these should be disabled (machine\6821pia.cpp) . 8042 Keyboard/Mouse Controller: Generate data for mouse only if mouse is enabled. Now it is possible to use the (MESS) Nvidia nForce PC BIOS setup without it crashing. . Discrete Netlist . Code maintenance. Decreased use of reinterpret_cast. Changed some defaults for better TTL game optimization. Various code cleanup. . Include file refactoring. The purpose of this ongoing exercise is to remove unnecessary dependencies in header files. Netlist implementations should only have access to what they need. The same applies to device implementations. Core stuff will be moved to the core subdirectory going forward. . Fixed 74377 pin assignment. Fixed parameter value resolution on rom devices. Also simplifiy a return. Documented parameter value resolution. . Added hints for outputs not connected. Logic and analogue outputs can now be flagged as "NC" (not connected). Example: "HINT(IC13.4, NC)". This will suppress info messages to be logged. The HINT must apply to an existing terminal. HINTs for non-existing terminals are treated as fatal errors. Terminals and logic inputs not connected are still treated as warnings. These need though and a proper fix. . Fixed crash on Windows when freeing netlist objects (plib\palloc.h). Fixed static_assert warnings at the origin (plib\palloc.h and pmatrix2d.h). Rework hints to broaden their use and fix NC hint. Use NC hint for 74377. Fixed debugging in MSVC (plists.h). Moved everything not needed by netlists from nl_setup.h into core/setup.h. Fixed some Clang tidy warnings. . Added comparison operators to plib\pfunction.cpp. Comparison operators evaluate either into 0.0 or 1.0. Thus they can be used like "(a==1)*(b==2)" which will only result in 1.0 if a equal 1 and b equal 1. . Added log() to plib\pfunction.cpp. Added parameter to varclock (devices\nlid_system.h). Align design VARCLOCK to AFUNC (devices\nld_system.cpp). Added more constructors and () operator to plib\pfunction.h. . Added progress indicator to nltool. When running a netlist "--progress" may be used to display a progress indicator. Fixed pfunction if. The if postfix evaluation corrupted the stack. Fixed polarity of 74LS125 tristate input. . Added basic unit testing support. Added google test syntax compatible unit testing support. This is a very limited subset of the google test framework and not intended ever to be a replacement. Adding a dependency to google test for the functionality required was considered to be an overkill. nltool -c tests runs unit tests if linked in. This is *not* the case for the version of nltool compiled with TOOLS=1. Added unit tests for plib::pfunction. . Removed soft reset support. Electronic circuits and base components like resistors or capacitors do not have a reset line. You can use them to create reset circuits. There is thus no point to support soft reset, the equivalent to pressing the reset button. Fixed some bugs around reset and start up logic. This also fixes the "scramble F3" crash. . The pfunction now supports unary minus operators. Updated documenation on noise sources. The pfunction supports unary minus and removed duplicate code. . Removed some warning suppression from netlist\build\makefile. Fixed signedness warnings in ptime.h. . Unit test macros now have a "P" prefix. Will allow to use both googletest and Catch frameworks. On unexpected std::exception include what() in error message. . Added 74113, 74121 and 74157 devices and refactor 74123 code. Migrated DIP devices to netlist devices. Refactor code to be based on device description structs. Fixed 74121 clocking logic. . Improved dealing with non-convergence situations. No changes for well-behaved netlists. Netlists reporting "newton loops exceeded" messages should now report a lot less of these messages. In case newton-raphson does not converge, netlist will reset the state back to the beginning of the timestep. It will than use a number of very small timesteps to hopefully deal with the non-convergence due to a too big timesteps. Afterwards solving continues using dynamic timestepping until the time-slice is complete. This is a lot better than the previous approach. This is meant as a performance optimization helper. Ideally, your netlists never produce "newton loops exceeded" messages. Any events for connected analog and digital inputs will happen after the timeslice is complete. Thus this approach - as the previous one - are not suited for high-frequency (such as video outputs) situations. In these case, only dynamic timestepping or reducing the fixed timestep are a suitable solution. . Use threads on netlist logs. This significantly increases the performance of output/terminal logs. Added a psemaphore class to pmulti_threading.h. . Fixed power pin names for CMOS devices. For truthtable cmos devices the power pin names will now be set according to the logic family. Fixed some issues for CD4538. Changed "already connected" warning to info level. Some ICs (CD4538) connect pins internally to GND and the schematics again externally. This will cause this info to be printed. The warning now is a lot more verbose. . All inputs now explicitly specify a signal handler: Currently devices use the "update" function if no handler is given for an input. For this to work the update function has to be virtual. This will cause issues on shared execution schemes like CPU/GPU using NVCC. This is the first batch of changes to ensure that handler resolution is static. . Emit a warning every 100 invocations of Newton Raphson resolution (solver\nld_matrix_solver.cpp) . Always take power pin names from logic family. Default NMOS power pins to VCC and GND. MOS uses VDD/VSS - update gamemachine netlist. . Reduced overshoot impact on NE555 astable frequency: If TRIG and TRESH are connected overshoot compensation will be enabled. The approach is raw but delivers results (at 5 to 10 steps per discharge/charge) within a couple of percent. Please take into account that any datasheet formulas are idealistic. Neither capacitor, resistor, internal resistor tolerances are taken into account. Nor are ambient temperature and chip temperature. . Fixed Inductor state saving (analog\nlid_twoterm.cpp). Code maintenance: More handler alignment. Dead code removal. Removed update calls which do nothing. Comment out empty reset and update calls. . Avoid NE555 oscillation due to overshoot compensation. Fixed Clang error: No matching constructor for initialization of 'analog::nld_twoterm' (devices\nld_4066.cpp). . Prepare road towards trapezoidal integration. This is a long term transition goal. Documented in source (see NL_USE_BACKWARD_EULER). . Potential regression trigger: Removed update and NETLIB_UPDATE completely. Startup initialization order may change. This may cause regression tests to trigger. This is expected. Logic TTL devices do not have a defined power-up state. That's why reset circuits exist which create a reset signal *after* all power supply lines are stable. . Include timestamp in newton-raphson loop warnings (solver\nld_matrix_solver.cpp). Fixed logging of final timestamp (devices\nld_log.cpp). . Added netlist simulations for the following games: Armor Attack, Barrier, Boxing Bugs, Rip Off, Solar Quest, Space Wars, Speed Freak, Star Castle, Star Hawk, Sundance, Tail Gunner, War of the Worlds and Warrior. Removed previous samples-based sound. . Modernized 74164 and 74393 netlist TTL devices . nld_matrix_solver is now owned by nld_solver. Added frontier documentation (devices\nlid_system.h). . Rewrote scheduler scheduling: All solver scheduling is now handled by nld_solver. Previously, for dynamic timestepping the sub solvers would be responsible for their scheduling themselves. This prevented any attemps to use parallel execution of solvers. Now the route is free towards experiments to use parallel execution of solvers. Uses ptimed_queue_linear in solver scheduling. Improved netlist queue implementation (template now). Added const delegates and subsolver stats. Removed dead code. . Separated nl_base.h into separate header files. This clean-up exercise will hopefully make it easier to navigate the core code. Another long term goal is to further straighten the object model. . Include GMRES solver in build. The GMRES solver for larger matrices (>>100) can outperform Gaussian elimination. Including it so it gets wider attention. As far as I know netlist is the only SPICE-like circuit simulation providing a GMRES solver. . Sub solvers now have their own parameter set. Example: PARAM(Solver.Solver_0.METHOD, "GMRES"). Will use the GMRES solver instead of the default MAT_CR solver. Same applies to all Solver parameters. Please use with care. If you change your netlist (e.g. using frontiers) the allocation of nets to solvers and the number of solvers may change. Thus this type of tweaking should only be used after the netlist completely works. . Floppy . Fixed spinup on interrupt command. Do not RESTORE at reset WD1770/72 (machine\wd_fdc.cpp). . A single missing sector was causing it to give up on an images, as incompatible. Being a little more permissive here helps working with some old recovered disk images with some lost sectors (formats\wd177x_dsk.cpp). . Imagetek I4100 052 VDP: Partially fix flip screen. Fixed sprite position, tilemap offsets and glitches in Hyper Duel. . Intel 8255 PPI: Set ibf flag in output mode for port A . MC6840 PTM: Fixed a couple of issues related to the T3 divisor . Printer: Initialized the data output high. High is the restful state for RS232. The low level could cause continual breaks to be received by an attached device and this could cause problems for some drives (bus\rs232\printer.cpp). . Sound Blaster and Game Blaster Sound Card: Fixed SAA1099 output and clock inputs (verified from real hardware) . V3021 RTC: Support serial interface. Implemented RAM and address commands. Use device_rtc_interface for RTC handling (machine\v3021.cpp). - aleck64.cpp: Modified burn_cycles method (machine\n64.cpp) - bigkarnk_ms.cpp, bloodbro_ms.cpp, galpanic_ms.cpp, raiden_ms.cpp, splash_ms.cpp and toki_ms.cpp: Minor improvements. Misc work on sprites for Raiden (Modular System). - cave.cpp: Use gfxdecode for sprite decoding. Use generic gfx layout for 4bpp tilemap. Reduced duplicates and unnecessary values. - cinemat.cpp . Added netlist simulations for the following games: Armor Attack, Barrier, Boxing Bugs, Rip Off, Solar Quest, Space Wars, Speed Freak, Star Castle, Star Hawk, Sundance, Tail Gunner, War of the Worlds and Warrior. Removed previous samples-based sound, fixes (ID 02603), (ID 03307) and (ID 03720). . Added built-in minimal artwork for Warrior. Decreased noise level in Space War and Barrier to allow filtering to kick in. - ddenlovr.cpp: Replaced Z80 CPU1 with 'Kawasaki Steel KL5C80A12' in Mahjong Daimyojin and Mahjong Momotarou - exidyttl.cpp . Death Race roms 36 and 35 were corrupt, fixed with correct images from clone Robot Hunting (bootleg of Death Race). Added note about format of image 36. . Clone Robot Hunting (bootleg of Death Race) roms now match Death Race 100%. Driver now uses Death Race rom images. . All Demolition Derby 512 byte roms were set to length 256 (incorrect length). Some upper bits in nibble-wide roms were not set to default zero. . Added newly dumped Destruction Derby roms from Exidy PCB, images now match fixed images from Demolition Derby (expected). Redundant with Demolition Derby in chicago.cpp, but it is a different PCB layout and different company. - goldnpkr.cpp: Clean-ups, fixes, updated links and a new addition. - gotcha.cpp and zerozone.cpp: Minor cleanups - hng64.cpp: Emulated MMU in KL5C80A12 CPU. MMU handling in HNG64 has been moved to the core; the rest is not implemented yet. - hyprduel.cpp . Fixed sprite delay . Fixed Imagetek I4100 052 VDP glitches in Hyper Duel - megaplay.cpp: Added 5x motherboard PLDs - midzeus.cpp . Moved some Zeus2-specific members into the appropriate subclass and added more state registration . Added skeleton devices for the IBM 21S850 IEEE 1394 PHY controller and the TI TSB12LV01A IEEE 1394 link-layer controller. 'The Grid' no longer hangs. Added skeleton IBM 21S850 IEEE PHY support, hooked it up in midzeus2 to accurately reflect the PHY model used. - nemesis.cpp: Fixed VLM5030 speech at least halfway in TwinBee (gx400_speech_w; drivers\nemesis.c) (ID 07537) - pgm.cpp . Simulated 'Photo Y2K 2' sprite offset decode (machine\pgmprot_igs027a_type1.cpp) (Game now playable). Support for V3021 RTC serial interface. Implemented RAM and address commands. Use device_rtc_interface for RTC handling (machine\v3021.cpp). . Use struct for sprites and raw parameters for screen. Fixed timing of intro sequences in some games. Use generic gfx layout for foreground. Moved VBlank IRQ into screen_vblank. Reduced duplicates. Added notes. - photon.cpp: Cleanup - seattle.cpp and vegas.cpp: Fixed 8 way and 49 way joystick selection on Vegas and Seattle drivers (ID 07340) - segas18.cpp: Fixed controls do not work in Laser Ghost and Wally wo Sagase! (ID 07708) - sigmab98.cpp . Eliminated hack to force starting PC. Changed Sammy medal games to use KL5C80A12 CPU device with proper MMU emulation (animalc, gocowboy, haekaka, itazuram, pyenaget and tdoboon). . Execute enough of the Sammy medal game BIOS to initialize things properly. Split up driver state class. - taito_l.cpp . Removed old rombank debug logging . Fixed Fighting Hawk rombank mask, fixes background graphics garbled (ID 07696). - tigeroad.cpp: Minor cleanups - tourvis.cpp: Added BIOS V4-54 - vegas.cpp . Fixed nbashowt, nbanfl and nbagold (Games now playable). Removed depricated DRC flag and added a flag to disable intrablock branching (cpu\mips\mips3drc.cpp) (ID 07340). . Added default port mapping for 8WAY players. Fixes a crash in Road Burners caused by trying to read undeclared io ports. Set default ioport IN2 to IPT_UNUSED for analog games. - midyunit.cpp: Cleaned up the banking on the Williams System 11 Background Sound/Music board device to support banking up to 27c010 sized EPROMs, which are used on the prototype Funhouse pinball and on High Impact Football on Midway Y-Unit hardware. Added more notes about the operation/hookup and variants of the System 11 Background Sound/Music board. - 18 Holes Pro Golf: Documented differing opcode in clone (set 2) which causes the wrong ball positioning - 280-ZZZAP: Improvements to 280-ZZZAP netlist audio. Noise-based sound effects correct. The original strength of the zener noise voltage was about three orders of magnitude too low for the current being passed through a zener of this type. This prevented the noise generator from working as designed and made the noise far too weak for the noise-based sound effects to work properly. Those effects now sound much closer to the real hardware. Implemented faster high-level emulation version of noise generator (Credit to Couriersud for suggesting this). The correct noise voltage made the component-level emulation of the noise generator much too demanding on the minimum timestep needed to produce accurate results without unrealistic voltage spikes, and so will not run accurately at reasonable emulation speeds. But by replacing it with a simple but effective AFUNC()-based comparator, we get a functionally similar noise signal generator that produces effectively identical output while still being able to run with 48 kHz static timestepping. So we get both decent emulation speed and correct-sounding noise effects. Added output voltage clipping on post-crash sound to remove voltage spikes, resulting in a smoother, more accurate sound (Credit to Aaron Giles for suggesting this clipping method). Changed output to be taken from second LM3900 output opamp (inverted signal) for smoother waveform and better tone quality. Added master volume potentiometer which can be user-set, set to midpoint by default. Adjusted output scaling and offset to match. Various explanatory comments expanded or correct. - AGEMAME . Added AY8913 sound chip back to MPU4Video boards to fix the 'lock in warning' sounds in The Crystal Maze. Adjusted internal layouts to fix ESCAPE button alignment. . Adjusted clock speed of sampled sound board in 'The Mating Game' and clones, fixes playback. Adjusted inputs to match reports in test mode . Fixed some clone relationships in v4mazbla, v4psi14d, v4psi20d, v4psi214, v4psia, v4psib and v4tetrs1. . Allow 'Strike it Lucky (v0.5) (MPU4 Video)' and 'Barquest (v2.6d) (MPU4 Video)' to decode questions . Protection workarounds to get more games showing video . Basic layout and input tweaks to v4addlad . Hookup joystick interfaces to Tetris Payout and Prize Space Invaders . Added inputs and layout for Strike it Lucky. Correct inputs for Adders and Ladders. . Added support for simple LED extender to mpu4.cpp driver . Added inputs and layout for Barquest and Barquest 2, added DIL switches to Prize Space Invaders and Prize Tetris. All games in this driver now default to a common set of inputs for easier discovery (drivers\mpu4vid.cpp). Correct typo in logger (machine\mpu4.cpp). . Added payout shelf opto to Prize Space Invaders . Start to untangle and split apart and properly identify some mpu4vid sets now that they boot. There's nothing actually new here, despite it appearing that there are a lot of new clones and new sets, they're just the result of finally being able to identify some things properly, work out what belongs where, and gain a better understand of what is missing - some things were in entirely the wrong drivers, or paired with the incorrect ROMs. . Tweaks to some MPU4 Video inputs - Block Gal: Partial DIPs fix (ID 07702) - Bosconian: Sprites have a lower priority than background (video\bosco.cpp) - Captain Silver: Redumped and verified the i8751 MCU - Dobou-Chan: Moved game from BishiBashi to KonMedal68k driver, GFX are mostly correct. - Double Dragon: Modified clone Double Dragon (bootleg with 3xM6809, set 1) machine config to actually reflect what's on the PCB - Escape from the Planet of the Robot Monsters: Fixed game freezes upon end of demonstration (ID 07691) - EuroPlay 2001: Added new motherboard BIOS - Four Trax: Fixed default gearshift binding - G-LOC Air Battle: Dumped drive board rom - Gun Fight: Multiple improvements to Gun Fight netlist audio: Model for transistors adjusted, replacing default NPN transistor model with a high-gain NPN transistor type that more closely resembles those used by the real Gun Fight sound circuits. This has a quite obvious effect on the shot sounds, and it seems the circuits were designed for this effect. Made all volume potentiometers user-adjustable; previously fixed at 50%. Replaced abstract model of noise generator with component-level one, including a model of the generator's zener diode. Zener noise is provided by an associated Gaussian white noise source running off a 48 kHz clock. Both the zener diode and Gaussian white noise source are component models recently added to the netlist library. Supply voltage to amplifying transistors tweaked downward from 16.5 volts to 16 volts, determined by properly analyzing power supply circuit and confirmed with a documented reference. Much more commentary describing the sound circuits' function and modeling issues. - IGMO: Added color prom, palette is now correct. - Image Fight: Dumped i8751 MCU - King Derby: Fixed debug assert in clone Cow Race (King Derby hack) (ID 07690) - Lethal Crash Race: Minor cleanups - Mahjong Senka: Decrypted game, gets in game but glitches heavily. - Mortal Kombat: Fixed sound and added PAL dumps to clone Mortal Kombat (Yawdim bootleg, set 2) - Moon Cresta: Merged Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 1), Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 2) and a third dump in a single correctly dumped set 'Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg)'. All three had corrupted ROMs. - PinMAME . Switch all the pre-WPC Williams pinballs to using io port arrays for their switch matrix, which gets rid of runtime lookups and fixes MAME crashes if a value with more than one bit set is written to the column select (drivers\s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp and s11c.cpp). . Fixed old copypaste mistake (m_pias->irqa_handler() --> m_pias->irqb_handler(); drivers\s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp and s11b.cpp). Added override for all early williams pinballs. . Switch William system 11/11a/11b/11c pinballs to use input_merger for the maincpu and audiocpu IRQ inputs, and rewrote the timer IRQ generator to be more accurate vs hardware. Fixes the advance and up/down operator inputs, and may make certain games more stable. . Make drivers\wpc_dcs.cpp and wpc_s.cpp class definition style more consistent with the other Williams pinball drivers . Williams System 11/11a/11b/11c pinballs: Further consistency fixes with device and function names, more fixes (missed a few earlier) relating to the CVSD speech clock polarity and digital input bit masking, and correct some memory/device mirroring issues to be consistent across the drivers. . Williams System 11C "background" Audio Board: Added PIA portb and cb2 write callbacks and synchronize fences, and hook them up, this fixes the "MUSIC ERROR" and various bg-music feedback-triggered sounds in Williams System 11C pinballs, i.e. the "song" in Dr. Dude works correctly now. This is also preparation for renaming this device to "Williams D-11581 Audio Board" as the same PCB is also used on some Midway Y-unit arcade games, some Williams System 11A pinballs and all Williams System 11B pinballs (except Jokerz), not just on Williams System 11C pinballs. Added notes to Williams D-11581 Audio Board device. . Williams System 11B: Switched to use the Williams D-11581 "Audio Board" device instead of its own implementation. Document the switches needing to be held to get in-game in all of the System 11B pinballs. Fill out the remainder of the System 11B switch matrix to allow all 64 possible switches to be hit. . Fixed the input matrices in Williams System 11/A/B/C and the WPC Alphanumeric drivers, so all possible inputs can be triggered with keyboard keys. Fixes lack of coins (which are mapped in a non-standard location) in the WPC versions of Dr. Dude. Add some notes about the WPC S11 sound interface adapter board used by WPC version of Dr. Dude and the prototype version of Funhouse. . Cleaned up the banking on the Williams System 11 Background Sound/Music board device to support banking up to 27c010 sized EPROMs, which are used on the prototype Funhouse pinball and on High Impact Football on Midway Y-Unit hardware. Added more notes about the operation/hookup and variants of the System 11 Background Sound/Music board. . Splitted the Williams System 11 Background Sound/Music board emulation off the 11C version into a subdevice, so the different mixing resistors used on the System 11C vs 11A/11B versions can be emulated. Switch Williams System 11A over to use the common Williams System 11 Background Sound/Music Board device. Added a device line to the Williams System 11 Background Sound/Music Board device for the incoming /RESET signal and hook it to the various drivers. . Fixed Visual PinMAME build. Changed return value to same type as expected (s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp and s11.cpp) . Correct Pokerino (L-1) sound PROM. Fixed loss of sound in Still Crazy (ID 07689). Added correct roms for clone Pentacup (rev. 2). . Fixed rom loading for Funhouse prototype w/System 11 Sound HW. Miscellaneous typo and detail fixes for notes in Williams System 11 BG Audio Board device and WPC Alphanumeric driver. - Sadari: Added button 3 (ID 07693) - The Simpsons: Get rid of black borders by improving the screen aspect ratio - Space Invaders Anniversary: Game doesn't have ZSG-2 sound - Super Free Kick: Switched to bankdev (adapting pengadvb.cpp implementation) - Super Othello: Fixed ASR8 and ASR16 opcodes (cpu\m6809\base6x09.ops). Simplified maincpu-subcpu comms, game works again since the M6809 rewrite in MAME 0.148u2 (ID 06033). - Super Two In One: Correct dipswitch connections, dipswitch settings and button labels using manual as a guide. Use recommended button layout/labels from manual and fixed coin/credit counter outputs. - Tournament Solitaire: Skip protection(?) check in clone Tournament Solitaire (V1.04, 06/22/95) - Truco-Tron: Cleaned up the driver and improved the documentation - unknown rocket/animal-themed poker: Merged parent and clone to 'unknown rocket/animal-themed poker'. They are just one set with banked programs. Added technical notes. Promoted game to working. - Varia Metal: Fixed flipped tilemap offset - Vector games: Added new option beam_dot_size that controls the rendered size of 'dots' - Violent Storm: Added needed mirror to fix a gfx issue - X-Men . Use shared_ptr_array . Fixed some gfx issues in clone X-Men (6 Players ver ECB) - Fixed rom names in cave.cpp, ddragon.cpp, exidyttl.cpp, itech8.cpp, leland.cpp, m72.cpp, midvunit.cpp, mw8080bw.cpp, namcos2.cpp, s3.cpp, sidepckt.cpp and tempest.cpp - Dipswitch fixes in armedf.cpp, ddenlovr.cpp and schick.cpp - Description changes of 4-in-1 (version SWS1-110984), AGEMAME (lots of), Danger Zone (rev 2), Diana Bifuca, Double Wings (set 1), Funhouse (9.05H), Funhouse (L-3), Funhouse (L-4), Funhouse (L-5), Funhouse (L-9, SL-2m), Funhouse (L-9, SL-2m, bootleg improved German translation), Master Boy (1987, Z80 hardware, Ichi-Funtel, set 1), New Quiz (Modular System bootleg of Gals Panic), Pipi & Bibis / Whoopee!! (bootleg, decrypted), Pipi & Bibis / Whoopee!! (Ryouta Kikaku bootleg, encrypted), Slap Shot (Ver 2.2 J), Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (Gamest review build), Ultra X Weapons / Ultra Keibitai (Gamest review build) and unknown rocket/animal-themed poker - Renamed (crusnusa) to (crusnusa41), (dblewinga) to (dblewingb), (microdar) to (dibifuca), (slapshot) to (slapshotj), (sms4in1) to (sms4in1a), (v4barqst) to (v4barqstd), (v4cmaze2a) to (v4cmaze2_amld), (v4cmaze3a) to (v4cmaze3_amld), (v4cmazea) to (v4cmaze_amld), (v4mazbla) to (v4mazbel15), (v4miami) to (v4mdiceger), (v4psi14d) to (v4psibcd), (v4psi20d) to (v4psid), (v4psi214) to (v4psi14a), (v4psia) to (v4psibc), (v4psib) to (v4psi14), (v4time) to (v4tmach) and (v4wizea) to (v4wizeo) - MAME . VIDEO RENDERING SYSTEM . Properly clean up d3dintf (render\drawd3d.cpp) . More lenient with resizing very large views in windowed mode. Reduced minimum window height (osd\windows\window.cpp). . Added default flags parameter in draw function (TILEMAP_DRAW_ALL_CATEGORIES; emu\tilemap.h) . Don't add parent set external artwork if artwork found (emu\render.cpp) . DEVICE . Removed m_totalcycles workaround (emu\diexec.h) . Added workaround for GCC and Clang 8 (emu\devcb.h) . UI . Able to show emulation warnings from tab menu. Swap order of popup screens (gameinfo first, warnings second) and added "press any key" to gameinfo. . Get help from website instead of files that don't exist (mame\clifront.cpp) . PLUGINS: Don't save empty configuration files file (plugins\autofire\autofire_save.lua) . Validity: Added checks for bilinear filter vector routines (emu\validity.cpp) . Device Network Interface: Set default network device to be none to avoid inadvertantly spamming a network (emu\dinetwork.cpp) . Updated RTD docs theme to 0.5.0 to fix search box (docs\themes\sphinx_rtd_theme). Preliminary work on -joystick_map redesign. Adjustments to phrasing for analog mapping (docs\source\commandline\commandline-all.rst). Added Health warning text. . Enabled save state support in big10.cpp, blackt96.cpp, kas89.cpp, kurukuru.cpp, littlerb.cpp, looping.cpp, lucky74.cpp, luckybal.cpp, namcos2.cpp, sfkick.cpp, srmp6.cpp, supertnk.cpp, tigeroad.cpp and tonton.cpp. Fixed save state support in luckybal.cpp and rulechan.cpp. . Fixed initializations issues that were causing problems in DEVNOCLEAR debug builds (cpu\h8\h8_dma.cpp, machine\6850acia.cpp, 8042kbdc.cpp, ncr539x.cpp, s32comm.cpp, video\dp8350.cpp, k057714.cpp and jangou_blitter.cpp) . Updated changed set names in plugins\hiscore\hiscore.dat - VGM player: Support SAA1099 stereo output (Reference: Pinout, datasheet) - Compiling . MinGW SDL build fails with end-group auto added by that LinkSupportCircularDependencies flag option (scripts\genie.lua) . asmjit: Only build asmjit on x86 and x86_64 (scripts\src\3rdparty.lua and main.lua). Fixes unable to compile MAME 0.222 for ARM processor (Rasbian Buster) (ID 07687). . Added arm64 and s390x to Travis CI (travis.yml). Overhaul travis.yml in an attempt to speed up macos builds (travis.yml). . Switch appveyor GCC build to -O3 (appveyor.yml). Appveyor MSYS2 workaround: Work around appveyor not being able to update MSYS2. There has been a change to MSYS2 package maintainers, meaning that the packages are now signed with a different key: https://www.msys2.org/news/#2020-06-29-new-packagers. Import the new keys manually until appveyor image is updated with a new msys2-keyring package. Explicitly kill msys2 before the second pacman call (appveyor.yml). . Removed superfluous semicolons in various devices and drivers (x();;) . Restored some standard library #includes, added some things that were used but not #included and clean up some #include guards. . Fixed SOL2 build on GCC 10.2 by working around overload resolution problem (3rdparty\sol2\sol\) - Debugger . Added debugger command saver for memory region and debugger command loadr for memory region (debug\debugcmd.cpp). . Don't leak an open FILE when an argument is invalid and also fixed a spelling error. The saver/loadr commands should consider region endianness for portability (debug\debugcmd.cpp). 0.222 - New games: Black Hole (EFG Sanremo), Super Motor (prototype) and TwinBee (Bubble System) - New Working games: Bingo Time, Kick and Run, Tetris + Cherry Master (Corsica, v8.01, set 2), Witch Card (ICP-1, encrypted) and World Class Bowling Tournament (v1.30) - New Non-Working games: Crazy Balls [TTL], Dardomania (v2.1), Densha de GO 3! Tsukin-hen (V2.03J), High Roller and Jackpot (Ver 16.16L) - New clones: Air Duel (US location test, M82 hardware), Circus (bootleg), Cleopatra Fortune (Ver 2.1O 1996/09/05, bootleg), Dirt Dash (Rev. DT1 Ver.A, Japan), DonPachi (Japan, Satsuei version), FreeWay (V4.31), Gals Panic (Taiwan, EXPRO-02 PCB), Golden Par Golf (Joystick, V1.0), Hot Blocks - Tetrix II (set 2), Hot Blocks - Tetrix II (set 3), Jackie Chan - The Kung-Fu Master (rev 4?), Jackpot (Ver 1.16L), Karate Dou (Arfyc bootleg), 'Konglongwang - D-Kids VS Alpha Yaosai (China, Ver 2.501) (MDA-C0081)', Magic Bomb (Ver. A3.1A), Magic Bomb (Ver. AA.72D, 14/11/05), Magic Bomb (Ver. AB4.2, 11/10/01), Magic Bomb (Ver. AB4.5A, 07/10/02), Magic Bomb (Ver. L3.5S), Pit Boss Superstar (9221-12-02, Minnesota version), Police Trainer (Rev 1.3B, Rev 0.3 PCB), Prebillian (bootleg), Raiden II (Spain), Road Fighter (set 3, unencrypted), Shinobi (Datsu bootleg, set 3), Shuffleshot (v1.35), Shuffleshot (v1.38), Street Fighter (Japan, bootleg), 'Super Six Plus II English Mark Darts (Spanish)', Trivia (Questions Series 12 Alt Question Rom), Trivia (Questions Series 14 Alt Question Rom), Trivia (Version 1.03a Sex questions, Alt revision questions), Vampire Savior: The Lord of Vampire (Brazil 970519), Varth: Operation Thunderstorm (bootleg, set 2) and Video Pinball (4 ROMs version) - New PinMAME games: The Raid (alternate set), Star Wars (1.01), Trebol and Twilight Zone (L-5) - New drivers: crazybal.cpp, drdmania.cpp, jackpot.cpp, regama.cpp, schick.cpp and smotor.cpp - New devices: 24c512, c219, cxd1180, ds80c320, i8344, i87c51fa, jag_blitter, m24c02, m6512, m68hc705c4a, mbm29lv800b, pcd8572, pic17c43, pic17c44, sab80c535, sed1278_0b, w65c802 and zzzap_audio - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - New Cheat.dat: http://www.mamecheat.co.uk/ - CPU . Analog Devices ADSP21062 'SHARC': Fixed DRC crashes in DEVNOCLEAR debug builds . DEC T11: More accurate emulation of interrupt acknowledgment. Added PF and HLT interrupts. This is accurate behavior for the T11, but it makes some of the driver changes a bit more awkward than they probably should be, given that one device is standing in for every CPU vaguely related to the PDP-11 family. Galaxy Game obviously wasn't written for a T11, and the BK-0010's K1801VM1 doesn't look like a lot like the T11 either. Changed default interrupt vector. . Hitachi HD6309: Removed 0x20 opcode (m6809\hd6309.ops). Note $1020 is an illegal opcode on the 6309. On the 6809 it is a rarely used form of LBRA. I tested on a real 6309 and $1020 vectors to Illegal. . Hyperstone: Fixed DRC crashes in DEVNOCLEAR debug builds (e132xs\e132xs.cpp) . Intel 8085A . Stop in debugger after an interrupt is taken, not immediately before. . Interrupt updates: Eliminated special-casing and three-in-one loading of CALL (and JMP) vectors in favor of fetching each byte in succession like a normal instruction. Added INTA callback, called only when INTR (and not any other interrupt) is acknowledged. Enforce that TRAP (NMI) must be held at a high level until acknowledgment. . Intel 8086 . Correct a fortuitously harmless typo in state registration (i86\i86.cpp). Updated m_prev_ip (and therefore CURPC) after taking interrupt. Added exception hook for debugger gex command. . Fixed old regression with NEG opcode flags. Fixes mysterious deaths in Krull cave scene (ID 06896). . Intel 8086/80186/80286: Don't automatically clear IRQ state upon acknowledgment (i86\i86.cpp). Added byte registers to debugger state and improved tracking of previous PC for debugger. Added exception hook for debugger gex command. . Intel 80186: Initialized variable as needed to avoid timing regression in some leland.cpp games in debug DEVNOCLEAR builds (i86\i186.cpp) . Intel 80286: Don't clear INT state upon acknowledgment and added exception hook for debugger (i86\i286.cpp). Updated m_prev_ip (and therefore CURPC) after taking interrupt. . Intel i960KB: Added missing opcodes. Rewrote disassembler (i960\i960dis.cpp). Added partial support for all IAC messages. Log unimplemented IACs (i960\i960.cpp). . KONAMI CPU: Fixed broken ROLD/RORD opcodes (m6809\konami.ops) . MCS-51: Added Dallas DS80C320 HSM, Siemens SAB80C535 and Intel 8344AH RUPI-44 disassemblers (cpu\mcs51\mcs51.cpp) . Microchip PIC16/17: Added disassembler for PIC17 family and preliminary PIC17C4X emulation. Added a PIC16C70 disassembler. . Mitsubishi M37710S4: Rename some registers to agree with Mitsubishi documentation. NOP unused SFR area. Actually SFR area 2-9 is external on some chips. . Motorola Atari Jaguar GPU 'Tom': Added notes of debugging feature. GPU code can be executed out of external RAM. Reference: Midsummer Technical Reference Manual. . Motorola MC6801 . Clear OCF when output compare register is rewritten, not read from. Fixed #define TOH. . Removed hack, the real cause of (MESS) Coleco Adam locking up at boot was fixed recently with TCSR_OCF clear. TCSR upper 3 bits are read-only. . Motorola MC68000: Added exception hook for debugger gex command (m68000\m68kcpu.cpp). Added fmod instruction (m68000\m68kfpu.hxx). . Motorola MC68HC05Cx: Simplified handler signatures. Added MC68HC705C4A type (m6805\m68hc05.cpp). . NEC Vxx: Added exception hook for debugger gex command. Added byte registers to debugger state. Improved tracking of previous PC for debugger. Use more NEC register names. . Sony PSX CPU: Switched PlayStation CPU over to memory_access_specific . Texas Instruments TMS9995: Fixed different behaviour of the (MESS) tutor.cpp driver in the DEVNOCLEAR branch . Texas Instruments TMS32031: Added/Correct notes for internal peripherals and chip family differences. Fixed chip name (no NMOS variant exists) and some descriptions. Fixed Microcomputer mode when 320C30 internal ROM is empty. Reference: TMS320C3x User's Manual. . Toshiba TMP95C06x: Splitted derived types into separate files. No need for separate 8-bit and 16-bit maps now. Break up the register blocks (cpu\tlcs900\tlcs900.cpp). - SOUND . Atari C012294 POKEY: Removed #include "machine\rescap.h" (sound\pokey.h, audio\jedi.cpp, drivers\asteroid.cpp, ccastles.cpp, centiped.cpp, cloak.cpp, liberatr.cpp, maxaflex.cpp, mhavoc.cpp, missile.cpp, tempest.cpp and tunhunt.cpp) . Atari CAGE: Fixed [debug] assertion in 'San Francisco Rush' and 'San Francisco Rush: The Rock' (audio\cage.cpp) (ID 07668) . ICS2115 WaveFront Synthesizer . Added imperfect_features related to incorrect/unverified interrupt, interpolation and ramping Interpolation issue is most noticeable in Cave PGM hardware game music (sound\ics2115.h). . Use device_memory_interface for fetch external samples and for later DMA and DRAM interface support. Allow ulaw interpolation (some instrument sound samples in IGS PGM Motherboard sound ROM is u-law). Added notes. Reduced duplications. . K053260 KDSC: Fixed panning, interrupts and general volume for The Simpsons. . Namco C352: Allow byte accessing. Modernized save states. Added notes. Use shorter/correct type/argument values. . Namco 54XX: Increase the length of the Namco 54XX IRQ to fix Bosconian shot sound regression . OKI ADPCM: Added looped sample support. Allow reading current output without decoding. Fixed initial values and descriptions (sound\okiadpcm.cpp) . QS1000: Added save state related to loop support (disabled currently) . N2A03 APU: Correct noise algorithm . Ricoh RF5C164: Verified default register map (datasheet). Implemented some chip variant differences. Implemented RF5C164 default register map (Reference: RF5C68 Datasheet and Mega CD hardware manual PCM sound source). Use STRUCT_MEMBER for state saving. . Ricoh RF5C400: Fixed wrong bus width (sound\rf5c400.h) . SSi TSI S14001A: Zero-fill variables, fixes missing speech in some (MESS) Fidel chess drivers in DEVNOCLEAR builds. . Williams CVSD Sound Board and Williams NARC Sound Board: Fixed the Williams audio HC-55516 digit write to mask the digital input bit correctly (instead of sending a whole byte) and fixed the clock set and clear logic to accurately reflect schematics (audio\williams.cpp). . Williams WPC Sound: Fixed wpcsnd memory map to explicitly define mirrors and fixed two swapped write handlers in the map (audio\wpcsnd.cpp) - DEVICE . 6522 VIA: Correct vocabulary, raise cb2 on shift in to make open-collector work correctly. Don't lose sync on edge count when the serial clock is external. . 8042 Keyboard/Mouse Controller: Initialized variable that caused problems for the PCI PC drivers in DEVNOCLEAR builds (machine\8042kbdc.cpp) . Atari Slapstic: Transfer legacy slapstic handling routines from machine\atarigen.cpp to device. Eliminated address_space argument from legacy read/write handlers (machine\slapstic.cpp). . Discrete Netlist . Fixed Clang-tidy warnings. Fixed some windows build issues in build\makefile. Improved const-awareness and tidy changes. Identified a number of code locations which could accept const arguments. . Added 74163 4-bit counter, 74393 device and unit test. . More code maintenance. Make some calls private which were public before. Eliminated functions which would be executed only once. Make terminal reference functions in twoterm.h return const. Clearly identify the use cases which need a non-const ref to terminals. . Fixed "--cmd=listdevices". Broken for quite a while this is now working again (prg\nltool.cpp). Fixed documentation build on windows in makefile. Documentation should be created on Windows using make mingw PARAMS=doc. Admittedly this is ugly and the makefile needs to be changed to use something like "make HOSTOS=windows doc". . Fixed some edge cases in static compile. Comes with a new version of static_solvers.cpp. . Stub implementation of 566 VCO. Added NE566 to netlist.lua. Fixed output stage on NE566 . Added the NE566 as a macro device. The device can be found in nlm_other.cpp. Removed nld_ne566.*. Added SYS_SW, SYS_SW2 and SYS_COMP. These are single switch, alternating switch and a analog comparator with digital outputs. Renamed RES_SWITCH to SYS_SW. Added example ne566.cpp in netlist/examples. . nld_log now writes out last value at end of run . Fixed polarity issue in CCCS device. Note: This affects all use cases of CCCS. . Faster LM3900 model (macro\nlm_opamp.cpp) . Unknown parameters really should be fatal. Unknown parameters like Solver.ABCD now will cause a fatal error to be generated. Fixed unknown parameter on ne566 and VS 2019 build. . Fixed a long standing bug in proxy/family code. This never materialized because proxies were always connected to GND in existing netlists (netlist\nl_base.h). . Added simple ZDIODE model. The model is driven by three additional model parameters: NBV, IBV, BV. Example code how to define a typical 7.5V Zener diode: ZDIODE(ZD, "D(BV=7.5 IBV=0.01 NBV=3)") or NET_MODEL("A1234 D(BV=7.5 IBV=0.01 NBV=3)") ZDIODE(ZD, "A1234") . Changed license for netlists in examples to CC0 (public domain). Moving over to Clang-tidy-11 and enabling more warnings. . Adding prandom.h (PseudoRandom Number Generator (Mersenne Twister)). Simplified pfunction state handling. Removed dependency on pstate.h. . Added two noise sources. The two sources act as voltage sources, though noise may also be injected as conductivy or current noise. SYS_NOISE_MT_U: Mersenne Twister uniform noise and SYS_NOISE_MT_N: Mersenne Twister normal noise. nld_sys_noise is templated: Using NETLIB_NAME(sys_noise_mt_u) = NETLIB_NAME(sys_noise);. Thus the approach is scalable. The implementation is state save aware, and thus reproducible results are guaranteed. An example use case is provided as well, see examples/noise.cpp. . Restructered the save state system. This change makes state saving contract based. Objects which need to save state need to have the following template member: template void save_state(ST &st) { /* Example */ st.save_item(m_p, "m_p"); st.save_item(m_buf, "m_buf"); }. This member function is called when the object is passed to the state manager save function. . Fixed two nlwav bugs. First one corrupted wav files produced on windows. The second one produced wrong sample integration results. . New nlwav functionality: nlwav now supports 16 and 32 bit integer format (wav16s, wav32s) as well as 32 bit float format (wav32f). The "wav" format is no longer supported. Added support for high and low pass filtering the wav output. Dynamic volume adjustment (use "-a 0") --hpboost can suppress spikes at the beginning of the file (<10ms). The addition of the float format simplifies debugging significantly since it covers the whole dynamic format. Added nlwav to the local VS 2019 build. . Added elif processing to preprocessor (plib\ppreprocessor.cpp) . Moved nld_power_pins to nl_base.h. This removes a large number of dependencies on nlid_system.h. . Reduced the usage of NETLIB_CONSTRUCTOR_DERIVED to implement dip package objects. This aligns the programmatic approach with the approach used in the macro folder, i.e. using netlists. Untangle model definition and interpretation as well. This changes are a first step in aligning models and families and thus simplify the source further. . Fixed VCCS definition (netlist\analog\nld_fourterm.h) . Removed family_setter. Naming alignment and family becomes model. Architecture cleanups. Reviewed reset logic. Pass truthtable family as string to factory. This is another set of changes on the path to align logic families and models. As a side effect, the object model now makes a clear distinction between analog models and logic models. The number of macros in nl_base.h has decreased significantly due to these changes. . Provided more information for warning on connecting two terminals already on the same net . Logic devices now support model parameter. This a big forward to allow reuse of code. Still a longer way to go but the foundation there. Also brings quite a number of simplifications and dead code removal. . Added undef support to the preprocessor. Added support for empty #defines to preprocessor. Added detection and reporting of re-definitions (netlist\plib\ppreprocessor.cpp) . Extended functionality and code cleanup: Working macro level parameters. Simplified code significantly. Fixed a number of hidden issue. Dead code removal. It is now possible to define netlist level parameters (see example). The code also has been prepared to allow something along the lines of LIBENTRY_MODEL(DM74LS00_DIP, DM7400_DIP, "LS74XX") to define a LS version on top of an DM7400_DIP bare TTL implementation. This however will need more efforts to existing devices to honour some timing adjustment in the model definition. It will already honour different output specifications between LS series and bare TTL if connected to analog components. . Code cleanup to better separate the following stages: Parsing, setup and run. In addition preliminary native tristate support was added. Not yet production ready, please don't use it. . Added 74377/74378/74379 devices to netlist. Re-do the 74377/8/9 as macros. Added devices CD4013, CD4069 and CD4070. . Fixed Breakout SLOW_BUT_ACCURATE (machine\nl_breakout.cpp) . Rewrote rom devices from scratch. This is a rewrite from scratch for rom devices. It uses a generic template to implement rom devices which is used together with a description struct to define a rom device. This leads to highly efficient code since all information is available at compile time. This is also a step forward to support tristate outputs. All rom devices covered by this approach have tristate or open collector outputs and thus all code changes to support tristate outputs can now be made consistently in one file. . Added working 74125 and 74126 implementations. These tristate buffers natively support tristate outputs. For use cases with fixed enable inputs the devices support a parameter FORCE_TRISTATE_LOGIC which if being set to 1 makes the device behave like a logic output. Added additional syntax and consistency checks for tristate outputs. Updated the example and added dip implementations including documentation. . Improved typesafety for source locations. During object creation netlist tracks the source files which provide object creation. This is later used e.g. by nltool to create documentation from source. . Added missing TTL_74125 definition (netlist\macro\nlm_ttl74xx.h). Added 7421 device. . Improved timing accuracy for sound devices. Better alignment between netlist_time and attotime. . Simplified factory call structure. This change will make it a lot easier to add enhanced functionality to the factory infrastructure. Using integral constants also improves linking stability. Improved syntax of generic device descriptors. . Added tristate support for rom devices. Rom and prom devices now properly support tristate outputs. Native OC output still on the todo list. In addition this commit fixes a number of bugs around dealing with macro level parameters and improves documentation by adding a parameter table. Also srcclean. . Consolidate 9316-type counters. This needs more attention since for certain compilers there is a considerable performance degregation. It looks like this is only triggered if too many variants are declared in one cpp file and the compiler stops inlining. . Fixed performance issues and VC2019. For reasons unknown to me compile optimizations do not behave for template code. If the implementation is in separate compile units, the code compiles and performs. . Better integretation of INT128. Moved penum into own header file (netlist\plib\penum.h). . Pong (Rev E) [TTL] now peaks at 589% compared to 570% before. Amongst a number of improvements in nl_base.h and the 7493 was touched. Also has some code cleanup and hopefully faster compilation due to extern template declarations. . Moved configuration entries into netlist namespace and netlist parsing where it belongs. Memory system cleanup. . Fixed NVCC compile for 10.2. plists.h was splitted into plists.h, pmulti_threading.h and ptimed_queue.h. In addition removed plists.h from a number of files it wasn't used in. Certain minor adjustment needed to be made for CUDA toolkit 10.1 and 10.2. . Refactored ppmf.h. Make more use of C++. Prepare coexistence of different delegate types. Untangle code. Reduced macro usage. Changed use of NETLIB_DELEGATE macro. The macro now has only one parameter, the local name of the delegate. Use callbacks to access terminals (debugger). Device factory enhancements. Factory elements can now pass additional parameters to device constructors. This makes the design of interface objects like analog callbacks easier. The change also allowed to remove some "deep" calls into the core from the MAME interface in netlist.h. Drop C++11 support. This wasn't working since the last factory changes. Removed it. Basically replace C14CONSTEXPR with constexpr. Moved multiparameter streaming into nl_interface.h. Clang-tidy, header order fixes. . Enabled UTF7 filenames on windows. Fixed visibility of classes in nlid_system.h and tidy warning for penum. Reduced macro usage and make use of pstring UTF8. Fixed win float exceptions. . More C++14, use enable_if_t instead of enable_if. Cleaned up the use of memory allocation arenas. Reduced MACRO usage, use std::conditional where possible. ppmf simplification. Arena code maintenance. Fixed MSVC build. MSVC has an issue with SFINAE and overloading resolution. A discussion can be found here: https://stackoverflow.com/questions/31062892/overloading-on-static-in-conjunction-with-sfinae. The previous code compiled with GCC and Clang on all platforms and compilers apart from MSVC. Replaced with double template specialization. Allow selection of base arena for pmempool_arena. Further optimize ppmf.h: Moved towards a pure c++ constexpr solution to derive the optimal pointer to member function solution. All the macro madness is centralized to a compile_info struct with static members. For the time being the evaluation result is compared against the previous approach. Going forward this will be dropped as well as the support for MINGW with GCC <= 4.6. Prepare path to non-virtual update functions. . Fixed win32 compile and all targets without INT128 support . Improved static solver performance by 5%. Use a more condensed matrix format for go, gt and Id matrices. In addition, optimize the static compilation code. Make fostrm actually write to file. . Performance improvement and refactoring: Kid Niki now achieves up to 910% when run with static solvers and with nltool. That is significant better than the 860% we have seen previously. This increase is driven by using a global memory pool in the solver code. In addition the following refactoring and code maintenance work is included. Please excuse the large commit, some of this took interfered with other work and the detail development steps were ugly. GSL support: This commit adds pgsl.h which implements a very limited number of the functionality of the gsl header described in the C++ core guidelines. Clang-tidy fixes. A significant refactoring of palloc.h. Aligned hints were removed, they added complexity without a significant performance gain. Vector operations should better be done on special spans/views. The code has been tested on linux with G++-7, G++-9, Clang-11. On Windows MinGW-10, VS2019 and OSX Clang-11. . Fixed for some compilers not being CWG 1579 compliant (netlist\nl_setup.cpp). Fixed copy elusion bug on OSX and Clang < 8. Solution discussed with AJR in chat (machine\netlist.cpp and nl_setup.cpp). Fixed nltool build on CWG 1579-noncompliant compilers. . Floppy . Improved HLD behavior, always activating output at start of type II & III commands. Use attotime::to_string instead of custom time-to-string method and fixed command logging messages (machine\wd_fdc.cpp). . Improved HLD/HLT handling, fixed FD1771 timings and enable spinup_on_interrupt. Do not delay SEEK with no Verify flag. Improved write protection. Set BUSY during initial restore to make it correctly interruptable (machine\wd_fdc.cpp). . Accept new commands while in busy state, workaround for spurious recursive calls if HLD used for drive motor control, don't change track and data registers during reset (machine\wd_fdc.cpp). . GP9001 VDP: Fixed GP9001 sprite drawing, fixes Truxton II sprites flicker or disappear during certain parts of the game (ID 07642). . Hitachi HD44780 A00 LCD Controller: Allow function set register to be updated again right after changing the data length. . I2C Memory: Created i2cmem sub classes for all used device types, fixed the buffer sizes that were wrong, removed the methods for modifying the data & buffer sizes and changed the drivers to use the correct types. . Intel 8155 RAM, I/O & Timer: Allow writes to port registers to alter latches whether or not output mode is configured. Turn logging back off. . Intel 8259 PIC . Z80/8085 slave PICs need 32 bit vectors. Emulated three-cycle acknowledge for non-8086 mode (machine\pic8259.h). . Moved recently-introduced inta_call hack down into the only Z80-based driver that still needs it. The hardware-accurate way of synthesizing multiple INTA pulses in a Z80 system (which involves rerouting what would otherwise be normal memory reads) is not so simple and deservedly rare. . Intel 8279 KDC: Keyscan overhaul: Improved handling of multiple key depressions. Emulated debounce cycles (emulation partly disabled due to MAME updating inputs only once per frame). Added switch closed status flag for sensor matrix mode. . K037122 2D Tilemap: Updated K037122 hardware information. Added screen raw parameters (verified in both 3DFX Voodoo and K037122 display timing parameters). . K052109 Tilemap Generator: Correct video clocks (drivers\simpsons.cpp and video\k052109.cpp) . K056230 LANC: Misc demacroization. Documentation updates. . Keyboard . Fixed typos in PORT_CHAR definitions (machine\keyboard.cpp) . Fixed for UI Paste with the Default Serial Terminal (emu\natkeyboard.cpp). Without this fix, 8 characters @^&()\:" cannot be pasted from the UI. . Konami PowerPC Common Functions: Removed 7seg LED hack (machine\konppc.cpp) . MC6850 ACIA: DRE should read clear in reset and set coming out of reset. Fixes a lockup running UniFlex on the SWTPC09. Tested on hardware, the TDRE flag reads as zero in the reset state and reads as set when taken out of reset, and even if data has been written to the data register while in the reset state. . Motorola MC6845 CRTC: Max visible lines might not be what really is displayed, see (MESS) IBM PC 5150t demo 8088mph. . Namco C140 . Updated data bus behavior and support 12 bit PCM. Verified from Assault (namcos2.c) schematics. Added/Updated notes. Use shorter/correct type values. Fixed address/data bus bits and modernized save states. Fixed spacing. Reduced unnecessary lines and duplicates. Moved little endian interface in c140.h. Moved bankswitch behaviors in each drivers. Reduced noisy sound regression in previous commit remain in vgmplay for compatiblity. Implemented some features from QuattroPlay by superctr. Splitted sound stream update and host interface. . Fixed C140 input clock source according to crystal for gal3.cpp and namcos21*.cpp. Added notes. . Namco 50xx/51xx/52xx/53xx/54xx/05xx: set_input_line is synced, don't need extra synchronize. . NVRAM: Don't save 0byte file (machine\nvram.h, emu\dinvram.h, machine\rp5c01.h and emu\machine.cpp) . PSX GPU: Initialized a couple of variables that were causing problems in DEVNOCLEAR debug builds . Signetics SCN2674 AVDC: Delayed commands use display pointer address, not screen 2 address. . Voltage Regulator: Fixed problem with DAC stream slice update (sound\volt_reg.cpp) . Z80 SCC Channel: Don't invent data (m_rx_fifo_rp_step). Clear IUS not IP. - 40love.cpp: Use MB14241 device - 8080bw.cpp: Periodic timer can't be adjusted (audio\8080bw.cpp) - aleck64.cpp: Initialized variable that caused problems in DEVNOCLEAR debug builds (machine\n64.cpp) - atarifb.cpp: Improved interrupts, LED multiplexing and sprite raster effects (ID 01731). - atarisy1.cpp . Some of the BIOS roms were wrong (136032.105.l13, 136032.115.j10 and 136032.107.b2) (ID 07656). Clone Road Blasters (cockpit, rev 1) also expects LSI BIOS. . Fixed Road Blasters steering wheel does not auto center. The RoadBlasters steering wheel is very much like the Star Wars yoke, without the vertical (Y) axis (ID 07671) - cdi.cpp . Various CD-I changes: Started hooking up the Quizard MCU. Renamed CDI_SLAVE to CDI_SLAVE_HLE in prep for an LLE device. Added more comprehensive notes to the driver. Removed NO_DUMP cdic.bin as the CDIC is apparently not an MCU. Copied SERVO and SLAVE MCUs into cdimono1 set from cdi910 set and marked with BAD_DUMP. Replaced protection HLE with proper MCU hookup. Philips SCC68070: Improved UART Tx/Rx behavior, though it still functions in parallel rather than serial. . Initial changes to get Quizard 3 and Quizard 4 Rainbow working. More CDIC fixes, (MESS) Hotel Mario now has correct audio (machine\cdicdic.cpp). - chihiro.cpp . More precise implementation of rcc and rcp vertex shader instructions. Moved poly_manager dependency to new nv2a_rasterizer class (video\xbox_nv2a.cpp). Fixed "xbox vprogdis" debug command (machine\xbox.cpp). Added placeholder for methods 1e80-1e90 (video\xbox_nv2a.cpp). . Added debugger command "xbox vdeclaration", used to decode the vertex shader declaration stored at a certain address (machine\xbox.cpp). Some refactoring before modifying vertex data reading (video\xbox_nv2a.cpp). . Big update to chihiro/xbox 3D graphics: Vertex shader and pixel shader refactoring. Register combiners support multithreading. Correct reading of vertex attributes. Perspective correct vertex attribute interpolation and texture mapping. Basic support for texture address modes. Secondary color and fog color available as inputs to pixel shader. Interpolate all 4 possible texture coordinates. Correct order of vertices when drawing quad list primitives. Debug aid to write in a text file the vertex shader disassembly, input and constant registers values. To test the update enable the register combiners with the "xbox nv2a_combiners" debugger command. Try to remove GCC 7.2.0 warning (video\xbox_nv2a.cpp). . Small 3D update: Read textures with pixel formats X8R8G8B8 and A8. More changes to vertex reading and processing. Corections to negative-w vertices clipping. - chihiro.cpp, naomi.cpp and triforce.cpp: Eliminated get_read_ptr (machine\naomigd.cpp) - cischeat.cpp . Added OKI mirrors to Arm Champs II, fixing missing/erratic sounds. . Fixed Scud Hammer/Arm Champs II irq and refresh rate to be measured 59.17 Hz instead of 30. Moved armchmp2 specific I/Os into own state machine, and demoted it to MACHINE_NOT_WORKING because the arm input not exactly understood and not supposed to require user input at POST anyway. - cps1.cpp . Fixed scroll offset for various SF2 bootleg sets (video\cps1.cpp) . Fixed clone 'Street Fighter II: The World Warrior (RK, bootleg)' gfx rom load and decode - dec8.cpp . Restoring coin-up sound . Identified 3 bad bits in Captain Silver MCU dump, hooked up MCU. - ddenlovr.cpp: Default palette to all_black - dkong.cpp: Use mirror() instead of trampolines in s2650_map - ertictac.cpp (Archimedes): Switched Erotictac driver and (MESS) Archimedes 310 over to use machine\pcf8583.cpp, which is not currently based on i2cmem.cpp but might be worth merging in the future. - gaelco2.cpp: Fixed analog controls don't work (ID 07675) and audio channels are flipped (ID 07676) (machine\gaelco2.cpp) - gaiden.cpp, tecmo16.cpp, suprnova.cpp . Moved delayed sprite drawing function into screen_vblank . Use generic gfx layout in suprnova.cpp. Fixed CPU clock related to XTAL. Use device for screen. - gei.cpp: Documented Trivia sets series 12 through 19. Sorted out question ROMs as per documentation results in 3 new clones. Added lots of misc information to various sets. Correct a couple of comments. - hornet.cpp . Added screen raw parameters (verified in both 3DFX Voodoo and K037122 display timing parameters) . Added notes for Silent Scope screen. Fixed raw parameters. - igs009.cpp: Make use of arrays and templates - jaguar.cpp: Moved I/O handlers to specific maps, untangle register array usage, to be completed. Nuke duplicate I/O accesses, rename to iobus_r/w, make go_w to be an actual line. Fixed addqmod & subqmod modulo mask for DSP. Refactor TOM to host CPU function, and fix GPU irq lv 3 when a GPU object is encountered. Fixes mutntpng and atarikrt booting. Fixed Jaguar irq line to 2, trusted. Start reworking the blitter. Relicensed to BSD. - kikikai.cpp: Hooked up Kick and Run MCU. Split up kikikai class. - leland.cpp: Initialized variable as needed to avoid timing regression in some Leland games in debug DEVNOCLEAR builds (i86\i186.cpp) - maygayv1.cpp: Minor cleanups - merits.cpp: Updated CPU type and PCB notes - model3.cpp: Added screen raw parameters - namcona1.cpp: Replaced Namco C140 sound with C219 - namconb1.cpp . Reduced duplicates. Moved virtuals under protected. Use shorter/correct type values and fixed spacing. Converted sprite bank delaying behavior into unique_ptr. Removed unnecessary device. . Fixed animation glitch in Mach Breakers (ID 07369) - namcos22.cpp . Changed SS22 poly/sprite spot a bit better. Mitsubishi M37710S4: NOP unused SFR area. Actually SFR area 2-9 is external on some chips. . Tweak some analog minmax (acedrvrw, raveracw, ridgera2, ridgerac and victlapw) - naomi.cpp . NAOMI2 USA BIOS Rev.C and Korea BIOS Rev.B dumped . Dumped Namco JYU2/SWP JVS I/O board firmware for Ninja Assault (World, NJA2 Ver.A) - nbmj8688.cpp: Removed empty debug function - neogeo.cpp: Neo-Geo documentation updates (driver and hash\neogeo.xml) - peplus.cpp: Fixed regression in peps0615 introduced in MAME 0.220, the game writes to the page buffer then sends a spurious start condition before the stop condition that writes the buffer. - peyper.cpp: Simplified handler signatures and mask SL for reads - pgm.cpp . Added some hardware notes . Switched Ketsui clones ketarr, ketarr10, ketarr15 and ketarr151 to 4 button inputs. - phoenix.cpp and naughtyb.cpp: Fixed log messages and only log error by default (sound\tms36xx.cpp and audio\pleiads.cpp) - redalert.cpp . Audio updates (audio\redalert.cpp): More accurate emulation of 555-based IRQ timing. Use 6821 PIA device to generate sound IRQ in Demoneye-X. Simplify handler signatures. . Various fixes . Fixed Panther input labels, marked maincpu ROMs as bad and volum (sic) lever is vertical not horizontal. Reduced input defs. Added communication hand-shake and fixed audio mapping, emits a few sounds. . Better Demoneye-X colors. Added bitmap layer. Fixed drawing order and tile banking. - seattle.cpp and vegas.cpp: Input cleanups - seta2.cpp . Further work on zooming: Y zoom improvements. Fixed yzoom issue. Improved Penguin Brothers, break Guardians. Test Guardian improvement. Minor adjustment. . Improved x enlarge cases (Penguin Brothers end of level and attract modes of Deer/Trophy/Turkey Hunting games etc.) (ID 07269) . Fixed missing transition graphical zoom/spin effect in Wakakusamonogatari Mahjong Yonshimai (Japan) (ID 06456) . Demoted 'Star Audition' to MACHINE_NOT_WORKING. Note: Game needs flipscreen hooking up properly with new code to function at all. . Added notes for hardware configs and emulation issues in some game. Fixed clock for P0-113A PCBs. - skylncr.cpp: Fixed [debug] assertion (ID 07664). Added arrays, templates and state saving. - taitowlf.cpp: Updated documentation. Figuring out PCI comms between boards as well as reading the two program roms, u1 and u2, may prove tricky. - tubep.cpp: Quiet logging and improved soundlatch. Added text and sprite drop shadow (video\tubep.cpp). Fixed "GAME OVER" display is skipped (ID 07620). Marked Tube Panic as MACHINE_IMPERFECT_SOUND. Fixed no sprites on left edge. - turbo.cpp: Fixed 8279 clock - twinkle.cpp: Physical aspect ratio should be 16:9. Fixed layout\bmiidx.lay. - umipoker.cpp: State saving support, templates and array. - williams.cpp: Fixed colors in Williams games. This fixes color issue introduced by Mystic Marathon changes. - wpc_an.cpp: Added some notes about getting Funhouse pinball in-game - 280-ZZZAP and Laguna Racer: Updated 280zzzap audio API in preparation for netlist audio. This is only API changes, following the pattern used by cuavas within the past year to update other games in mw8080bw. New netlist-based audio implementation for 280-ZZZAP (audio\nl_280zzzap.cpp), derived from Midway game logic board schematic. The sound generally matches that heard in videos of the machine, though the real machine seems to have more bass and less treble. This may be a cabinet effect or something else, such as a difference in component values. Due to the number of complex components being emulated and the nature of the circuits, this netlist adds a lot of overhead, but it's still fast enough to run at greater than real speed on modern hardware. With minor changes, this implementation should also support 'Laguna Racer'; with somewhat more substantial changes, it would also support 'Super Speed Race'. Both of these games use sound circuits based on those for 280-ZZZAP. - Alpine Surfer: Demoted game to MACHINE_UNEMULATED_PROTECTION - Andromeda SS: Correct metadata - Armed F: Fixed the resolution difference from PCB (ID 07640). Correct game title. - Basketball: Improved interrupts and don't change vertical resolution - Bingo Time: Fixed Bingo Time (Game now playable). Added preliminary sound. - Biomechanical Toy: Fixed 'Lives' dipswitch setting - Blood Bros.: Added missing PROMs to clone Blood Bros. (Modular System) - Bosconian: Increased the length of the Namco 54XX IRQ to fix Bosconian shot sound regression. Fixed tilemap offset problem (ID 00480). Added 'Star Destroyer' sub title to description. Note: Is the screen horizontal resolution maybe 285? PCB videos do show a slightly larger right border though. Bullet vs tilemap offsets are correct when compared with PCB videos (both playfield area, and radar area). Bullet vs sprite offsets are also correct. The radar area is offset by 3 pixels, also confirmed with PCB video when it does the VRAM check. - Burger Time: Fixed 'Bonus Life' dipswitch values in clones Burger Time (Data East USA) and Burger Time (Midway) (ID 07678) - Circus / Acrobat TV: Added (bootleg) proms to 'Circus / Acrobat TV' and clone Springboard (bootleg of Circus) - Crush Roller: Fixed Crush Roller and clone Make Trax constantly added coins to the coin counter in the background (ID 07591) - Deal 'Em: Fixed gfxdecode color amount - Desert Patrol [TTL]: Fixed netlist (netlist\generated\static_solvers.cpp and machine\nl_dpatrol.cpp) - Diana Elite: Added disassembler for PIC17 family and preliminary PIC17C4X emulation. Replaced PIC16C55 CPU1 with 'Microchip PIC17C44'. - Dirt Dash: Redumped bad pointrom dt1ptrm1.16j from a different PCB (one was internally bad on the Dirt Dash DT2 Ver.A PCB). Updated documentation with many changes including measuring DSP and MCU clocks. - Dottori Kun: Removed unneeded layout file - Donkey Kong 3: Changed 'Difficulty' dipswitch string to numbers (ID 07648) - Fool Race: Changed 'Head On (bootleg on dedicated hardware)' to 'Fool Race', an Italian imitation of Head On by EFG Sanremo (it's not a bootleg). Added 'Lives' dipswitch. - Galaxian: Fixed manufacturer of clone Galaxian (Irem) (ID 07653) - Gaplus: Fixed displaying of starfield with reference to PCB. Scrolling speed and direction (ID 00434). Clipping the Display Area (ID 07663). Modified to use sprite color instead of text color with refer to the PCB. Added blinking when the movement of the star changes. Changed 'Bonus Life' default settings to Namco's factory settings (50k/150k/every 150k). - Golfing Greats: Demoted Golfing Greats and clones to MACHINE_NOT_WORKING - Grobda: Changed 'Bonus Life' default settings to Namco's factory settings (10k only) - Hanafuda Hana Gokou: Correct DIPs as per DIP sheet and added DIP locations - Hot Blocks: Replaced Intel 8088 CPU1 with NEC V20 and YM2149 and with AY-3-8910A - Krull: Fixed old regression with Intel 8086 NEG opcode flags, fixes mysterious deaths in Krull cave scene (ID 06896). - Magic Train: Fixed 'Double Up' dipswitch and 'Stop 2/3' PORT_NAMEs (ID 07634) (ID 07635) - Mouse Trap: Redumped prom 74s288.d6. Updated note regarding prom 74s288.h14. - N.Y. Captor: Coin inputs active high, fixes high score entry (ID 00783). - Operation Thunder Hurricane: Added I/O M68k stub - Pengo: Various documentation updates - Pirate Ship: Fixed Clang build [-Werror,-Wunused-private-field] - Pong (Rev E) [TTL]: Game now peaks at 589% compared to 570% before. Amongst a number of improvements in nl_base.h and the 7493 was touched. Also has some code cleanup and hopefully faster compilation due to extern template declarations. - Raiden II: Added U0342 PAL to Raiden II and clones (see https://twitter.com/neSneSgB/status/1232115385303879680). - Shuffleshot: Added gfx1 roms from clone (v1.38) to parent set Shuffleshot (v1.40) and clone Shuffleshot (v1.39). Note: They match programs internal checksum values. - Silent Scope: Added notes for Silent Scope screen. Fixed raw parameters. - The Simpsons: Correct video clocks. Fixed K053260 panning, interrupts and general volume. - Skins Game: Dumped BIOS 1.01 for clone Skins Game Tournament Edition - Snap Jack: Fixed year info (ID 07629) - SOS Game: Screen color was inverted. Changed game title to 'SOS Game', year to 1979 and manufacturer to 'K.K. Tokki (Namco license)' (ID 07651) - Space War (Leijac Corporation): Fixed parent/clone relationship (ID 06898) - Street Fighter: Added I8751 dump to clones Street Fighter (Japan) (protected), Street Fighter (US, set 2) (protected) and Street Fighter (World) (protected), removed the protection HLE. - Super Chick: Improved decryption, gets in game. Still lots to do before it can be considered playable. Moved Super Chick to its own driver, fixes debug assert (ID 07667). Added PROMs place-holders, updated flags and comments. - Super Shot: Correct cpu type - Super Six Plus II English Mark Darts: Added notes about dipswitches - Tetris + Cherry Master (Corsica, v8.01, set 2): Fixed rom loading (Game now playable) - TX-1: Adjusted analog steering - Virtua Striker 4 (Japan, Rev E): Replaced clone 'Virtua Striker 4 (Japan, Rev C) (GDT-0013C)' GDROM dump with RAW/2352 - Witch Card: Reversed the NVRAM and set by default to promote clone Witch Card (ICP-1, encrypted) to working status - World Class Bowling: Dumped user1 rom wcb_prom0_v1.30t for clone World Class Bowling Tournament (v1.30) (Game now playable) - Fixed rom names in capbowl.cpp, headonb.cpp, hyperspt.cpp, itech8.cpp, kchamp.cpp and pengo.cpp - Dipswitch fixes in btime.cpp, ddenlovr.cpp, gaelco.cpp, headonb.cpp, itech32.cpp, kikikai.cpp, policetr.cpp, seattle.cpp and vegas.cpp - Description changes of Air Duel (Japan, M72 hardware), Air Duel (World, M82 hardware), Andromeda SS (Japan?) (ID 07652), Armed F (Japan) (ID 05766), Armed F (Fillmore license), Atari 4 Player Football, Atari Basketball, Bio F.R.E.A.K.S (prototype, boot ROM 0.1i), Bosconian - Star Destroyer (*), CART Fury Championship Racing (ver 1.00), Daiku no Gensan (Japan, M72 hardware), Daiku no Gensan (Japan, M82 hardware), Daiku no Gensan (Japan, M84 hardware), Dragon Breed (Japan, M72 hardware), Dragon Breed (World, M72 hardware), Dragon Breed (World, M81 hardware), Flash (Williams, L-1), Flash (Williams, L-2), 'Flash (Williams, T-1) Ted Estes', Fool Race, Gallop - Armed Police Unit (Japan, M72 hardware), Fred Flintstone's Memory Match (*), Hammerin' Harry (US, M84 hardware), Hammerin' Harry (World, M81 hardware), Hyperdrive (ver 1.40, Oct 23 1998), Indiana Jones and the Temple of Doom (cocktail), IPM Invader (set 1), IPM Invader (set 2), Jackie Chan - The Kung-Fu Master (rev 3?), Magic Bomb (Ver. BR4.4, 04/19/02), Mini Golf (Atari, prototype), NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (SportsStation), Panther (bootleg?), Pengo (set 1 rev C, encrypted), Pengo (set 2, encrypted), Pengo (set 2, rev A, not encrypted), Pengo (set 3, not encrypted), Pengo (set 4, encrypted), Pengo (set 5, encrypted), Pit Boss Superstar (9221-12-01, California version), Police Trainer (Rev 1.3B, Rev 0.5B PCB), Police Trainer (Rev 1.3B Newer, Rev 0.5B PCB), R-Type (Japan, bootleg M82 conversion), R-Type II (Japan, bootleg M82 conversion), Road Fighter (bootleg GX330 conversion), SOS Game, Tiger-Heli (US) (ID 07198), Tiger-Heli (Japan), Tiger-Heli (bootleg set 1), Tiger-Heli (bootleg set 2), Tiger-Heli (bootleg set 3), Tiger-Heli (bootleg set 4), Time Warp (Williams, L-2), Time Warp (Williams, L-3), Time Warp (Williams, T-2), Vapor TRX (GUTS Jul 2 1998 / MAIN Jul 18 1998), Vapor TRX (GUTS Apr 10 1998 / MAIN Apr 10 1998), Varth: Operation Thunderstorm (bootleg, set 1), Video Pinball (16 PROMs version), Wayne Gretzky's 3D Hockey (ver 1.3), Witch Card (ICP-1, encrypted), X Multiply (Japan, M72 hardware), X Multiply (World, M81 hardware) and Yie Ar Kung-Fu (bootleg GX361 conversion) - Renamed (galsnew) to (galsnewu), (galsnewa) to (galsnew), (headonb) to (foolrace), (jchan) to (jchana), (magibomb) to (magibomba), (policetr) to (policetr13) and (roadf3) to (roadfh) - MAME . VIDEO RENDERING SYSTEM . Fixed prescale option does not work properly on D3D renderer (ID 07536). Removed old StretchRect code. All drivers these days punt it to a shader backend anyway, and it's causing issues with -prescale (render\d3d\d3dcomm.h and drawd3d.cpp). . Don't do frameskip related calculations at init time (emu\video.cpp). Frameskip setting is now upper frameskip limit when autoframeskip setting was enabled (emu\emuopts.cpp and video.cpp). Show frameskip max value in speed_text (emu\video.cpp). . BGFX: Correct a data overrun in the D3D12 backend from allocating only enough texture data for width*height, not rowpixels*height. Don't try to invoke a frame immediately after resetting the renderer during tear-down. Fixes crash on exit with the D3D12 backend. Correct hlsl.json to apply the intended screen tint (bgfx\chains\hlsl.json). . MEMORY SYSTEM . Slight emu\emumem.cpp speedup. Implemented on the 680x0 for now. memory_access_specific is declared and used exactly like memory_access_cache, but does not cache. It does, however, shortcut the virtual call into address_space, so that's one layer of call less. Gives another nice speedup for accesses with bad locality (e.g. anything that's not opcodes), at the expense of having a specifically typed object in the class. Should do well for cpus in general, drivers can keep using the address_space access calls for easier logistics. Masking before dispatch at top level is not needed because it's already done at the global mask level. . Mask address where absolutely necessary (emu\emumem.cpp). This change fixes the edge case of an unaligned accesses to the top of the space not wrapping around, which was causing at least one driver (Alpine Surfer) to crash. . Cache and specific change syntax, and are not pointers anymore (emu\emumem.*): Added a template parameter to everything (theoretically the address space width, in practice a level derived from it to keep as much compatibility between widths as possible) so that the shift size becomes a constant. Changed the syntax of declaring and initializing the caches and specifics so that they're embedded in the owner device. Solves lifetime issues and also removes one indirection (looking up the base dispatch pointer through the cache/specific pointer). Protect against savage memsets (emu\emumem.h). . Fixed bad destruction order by not removing the notifier on cache destruction, they're supposed to be long-lived anyway (emu\emumem.h). . DEVICE . Initialized a couple of variables, fixes numerous bugs in DEVNOCLEAR debug build with BIOS roms in devices (emu\device.cpp). . Removed the space for the handlers, it is not needed anymore (emu\devcb.cpp). . Timer system . Added to_string() to get a human-readable version of the time (emu\attotime.cpp) . Periodic timers are not adjustable, be a little more affirmative about it (machine\timer.h). . UI . Skip -romident matching process and display error message when no files are found (mame\clifront.cpp) . Only warn about external artwork when it wasn't loaded (ui\info.cpp and emu\render.cpp) . LUA engine . Consolidated code for pasing enum strings. Added rom_entry library (mame\luaengine.cpp). . Setting analog inputs don't work in LUA (emu\ioport.cpp). Fixed set_value for analog inputs. Expose ioport_setting to luaengine. . Programmable Logic Device (PLD) . Added GAL20V8 support to the jedutil tool . jedutil updates: Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. Added support to view 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 ythe 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. Initial work on supporting the GAL20V8 device. Adding an initial regression test for the GAL20V8. Tweaked the function to print text to handle the end of line character. Fixed some mis-configurations of the GAL20V8 device. Added regression tests for the GAL20V8 device. Fixed the output of the GAL20V8 when viewing a jed in simple mode to properly display outputs as also being inputs for certain pins. Fixed the output of a GAL16V8 device in Simple Mode to mark relevant output pins as providing feedback as documented in the datasheet. Correct the output feedback state when in simple mode for the GAL16V8 and GAL20V8 devices. . Misc demacroization (machine\k056230.cpp, drivers\model2.cpp, stv.cpp, machine\315-5838_317-0229_comp.cpp and pgmprot_orlegend.cpp) . Moved some RC timing macros out of the core (machine\rescap.h; drivers\bfm_sc1.cpp, bfm_sc2.cpp, capbowl.cpp, gottlieb.cpp, lockon.cpp, mpu3.cpp and mpu4.cpp) . Simplified many handlers and READ/WRITE macros removal . First attempt at auto-sort of mame.lst . First completed pass of commandline parameters. Get the audio latency numbers right and add PortAudio info. FreeSync/GSync information cleanup. Added tip for keyboardprovider (commandline\commandline-all.rst and usingmame\commonissues.rst). . Fixed frame sync regression (emu\machine.cpp, recording.cpp and util\png.cpp). Fixes recorded MNG and WAV files are out of sync (ID 07673). - MAC OS X: Fixed OS X build with Xcode 7 (scripts\src\3rdparty.lua). Fixed OS X build on older Xcode versions. - CHDMAN: Support characters outside ASCII in command line arguments. I64 size qualifier is only needed for MSYS64 GCC 9 and earlier (tools\chdman.cpp). - VGM player: Implemented some features from QuattroPlay by superctr - 3rdparty: New AsmJit library (https://asmjit.com). Added AsmJit to COPYING. - Compiling . Fixed GCC 10 uninitialized (modules\vzdos.cpp) struct warning and GCC 10 fix for sqlite3 (scripts\genie.lua) . Enable option to generate symbols in Release as well as Debug under Visual Studio (this is important because debugging Debug builds is too slow) (scripts\genie.lua) . Fixed scripts\target\mame\dummy.lua . Updated Travis CI build environments (travis.yml). Switched Ubuntu build from GCC-9 to GCC-10 and MacOS build from Xcode 11.0 (MacOS 10.14.6) to Xcode 11.5 (MacOS 10.15.4). - Debugger . Refocus debugger on CPU when one of its watchpoints is hit (debug\debugcpu.cpp). This solution may be less than ideal for some multiprocessing environments where CPUs share spaces, but it prevents the focus from shifting unpredictably to whichever CPU happens to be next in line to execute (e.g. when synchronization for a soundlatch write aborts the original CPU's timeslice). . Added PC to debugger exception hit message (debug\debugcpu.cpp) . Added optional condition parameter to debugger gex command . Fixed focus command (debug\debugcpu.cpp) . Fixed debugger regression with systems such as fi6845/fi8275 where a DMAC or other non-focusable executing device is scheduled first of all (debug\debugcpu.cpp) . Debugger expression and memory access overhaul: Memory references in expressions no longer default to the console's visible CPU if no device name was specified, except when entered through the console itself. Expressions in view windows now use the context of the currently selected device instead. The pcatmem debug command and similar qt mouseover function now produce an error message if the initial address translation fails. Related internal changes: The debugger_cpu class no longer interprets memory accesses. The existing routines have been moved into symbol_table (which used to invoke them as callbacks), and reimplemented in most other places. Thecode duplication is a bit messy, but could be potentially improved in the future with new utility classes. The cheat engine no longer needs to hook into the debugger_cpu class or instantiate a dummy instance of it. The inclusion of debug\express.h within emu.h has been undone. Some debugging structures now need unique_ptr to wrap the resulting incomplete classes; hopefully the performance impact of this is negligible. Another direct consequence is that the breakpoint, watchpoint and registerpoint classes are no longer inside device_debug and have their own source file. The breakpoint list is now a std::multimap, using the addresses as keys to hopefully expedite lookup. The visible CPU pointer has been removed from the debugger_cpu class, being now considered a property of the console instead. Many minor bits of code have been simplified. Fixed crash when attempting to write to memory from debugger (debug\express.cpp). . Added '-debuglog' option to log debug console output to file. When this option is specified, all console output is echoed to a log file. Some caveats/limitations: The file-open process was copied from -log, so it has the same limits. Filename is hard-coded (debug.log). File is overwritten if it exists. File is opened during emulation initialization. Thus, the file is cleared if you invoke the "Hard Reset" debugger command. Probably some other details I don't know about. Logging works as such: When a string is appended to the scrollback buffer, it is also written to the log file. Some commands forcibly wrap their output (e.g. 'help' to 80 columns). Because this wrapping is done inside the scrollback buffer, the text written to the file is not wrapped. This can be seen with 'help execution'. Eliminated space.device() in watchpoint code (debug\points.cpp). . Added 'condump' command to export console buffer to a log file. This is another debugger enhancement - it allows you to export the current contents of the debug console window to a file. The filename parsing is based on the 'trace' command, and as such, supports both the "{game}" placeholder, and the ">>" prefix for appending instead of overwriting. . Allow debugger dump command to dump with byte granularity from address spaces with positive shifts. 0.221 - 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 - CPU . 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 - SOUND . Atari C012294 POKEY and Yamaha YM2414 OPZ: Modernized struct saving . Discrete Sound: Documented DISCRETE_FILTER1 and DISCRETE_FILTER2 better (sound\disc_flt.hxx) - DEVICE . 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 - atarisy1.cpp . 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 - cave.cpp . 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) - cninja.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[1], only tile bank is different in 8bpp tile). - cps1.cpp . 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. - dec8.cpp . 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) - equites.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. - konamigx.cpp . 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 - nmk16.cpp . 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. - segas32.cpp . 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, correct DIPs and rom labels. - snk.cpp . 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. Correct 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. - Malzak . 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 parameters 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 (ID 06635). - Route 16: Added missing MCU region to the Route 16 original sets, correct 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) - MAME . 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. . DEVICE . 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) . UI . 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 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) - Compiling . 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) - Debugger . 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. 0.220 - New games: Professor Trivia (set 1), Solite Spirits and Soreike Kokology (Rev A) - New Working games: Enforce (Japan, Analog Controls), Green Beret (Irem), Sky Army and Trivia Madness - New Non-Working games: Air Walkers and Snowball War - WakuWaku Yukigassen - New clones: Blue Shark (Model Racing bootleg, set 2), Borench (Japan), Burning Fight (prototype, newer, V07), Cobra-Command (World/US), Crazy Kong (bootleg on Moon Cresta hardware, set 2), Dribbling (set 2), Galaxian (Rene Pierre bootleg), Jungler (Olympia), Miss Puzzle (Nudes, less explicit), New Cherry '96 (v3.0, A PCB), New Cherry '96 Special Edition (v3.51, D PCB), New Cherry '96 Special Edition (v3.61, DK PCB), New Fruit Bonus '96 (v3.1, A PCB, set 2), New Fruit Bonus '96 (v97-3.1c, B PCB), New Fruit Bonus '96 Special Edition (v3.40, D PCB), New Fruit Bonus '96 Special Edition (v3.53, D PCB), New Fruit Bonus '96 Special Edition (v97-3.3c, D PCB), The Outfoxies (Korea?), Pang! 3 (bootleg, set 2), Penguin Adventure (bootleg of MSX version, not encrypted), Scramble (Okapi bootleg), Speed Ball (set 1), Tetris (bootleg set 4), Thunder Force AC (Japan, prototype, bootleg), Professor Trivia (set 2) and Undercover Cops - Alpha Renewal Version (US) - New AGEMAME games: Black Rose Rapid Fire Grand Prix (Konami Endeavour, Queensland), Choy Sun Doa - Jackpot Carnival (20156611, Queensland) and Red Baron - Jackpot Carnival (10160911, Queensland) - New PEPlus games: Imperial (1P1952IZ) Blue Moon, Imperial (1P19S1IZ) Sheer Magic, Imperial (2P1929IZ) Castaway Stampede and Imperial (3P1940IZ) Cashline D Bucks - New PinMAME games: Cirqus Voltaire (D.52 prototype) and Spider-Man v1.02 (English,French) - New drivers: sealy_fr.cpp and triviaquiz.cpp - New devices: adc0803, bt451, bt453, bt454, bt455, bt457, bt458, bt467, ex1280, hd6301v1, hd6301x0, hd6301y0, hd6303x, hd63701v0, hd63701x0, hd63701y0, isa_bblue2, m6803e, scn2641, scn2651, scn2661a, scn2661b, scn2661c, sst_39sf040, ultra12f32, upd78210 and ym2164 - CPU . Hitachi HD6301 und HD63701: Splitted "HD6301" and "HD63701" devices into several different types (functionally identical now, but won't be compatible once accuracy improves). SLP is no longer disassembled as "illegal" on the HD6301. Tentatively start to support the extra ports of the HD6301X/HD6301Y. Implement more HD6301X weirdness. Added preliminary HD6301X internal register map. Added second timer output comparator and associated status register to the HD6301X and HD6301Y. . Hitachi SH-3/4: Removed unnecessary SuperH 3/4 timers restarts (cpu\sh\sh4tmu.cpp) . Intel P8098: Fixed I8096 JNH/JH opcode according to manual (mcs96\mcs96ops.lst). This makes the (MESS) CM-32P Orch. Hit patch work. . Motorola MC6801 . Attempt at cleaning up internal registers. Splitted the all-in-one m6801_io_r and m6801_io_w handlers into separate handlers for each register. Use m() instead of rw() to map these for now. Make all port direction registers write-only. . Fixed a bug that deadlocked the emulation during WAI/SLP if a timed event had already occurred. . Added DDRs as mask for port output callbacks. Added second timer output comparator. . Motorola MC6803: Added Motorola MC6803E and Hitachi HD6303X types. Delete the "unused" NOP mapping from $0020 to $007F in the MC6803 internal map (datasheets make clear that external accesses can be made here). . NEC uPD7801/7807/7810/78C11: Divide internal clock by 2 or 3 . NEC uPD7810 . Make internal timers run at former speed and A/D timer at former rate relative to CPU states . Interrupt-related fixes: Prevent NMI from being masked out. Make EI take effect only after the following instruction. Inhibit clearing of interrupt flag upon acknowledgment when another interrupt with the same priority is also enabled. Added a crude start bit check to asynchronous serial mode. . Fixed random hanging in Gun Master and probably other games with uPD7810 sound by not syncing on each shift (drivers\metro.cpp). Fixed loss of sound in games with uPD7810s other than Daitoride, Pururun and Gun Master (drivers\metro.cpp). . Added configuration option to disable port pullups for output . Refresh PA/PB/PC/PF outputs upon mode change . TLCS-90 (Toshiba TMP90840/41/PH44/TMP91640) . Split up the t90_internal_registers_r/w handlers. This work anticipates modifying the internal register map for TMP90PH44 and other incompatible model. First draft of 90844 register map amd improved logging for unemulated registers. . Added TMP90C051 disassembler (only accessible through unidasm for now) - SOUND . NEC uPD7759: Fixed Ribbit! random jumps back to 1st round (sound\upd7759.cpp and drivers\segac2.cpp) (ID 02343). Note: Ribbit does random measure of UPD7759 sample #A playback time and reset to round 1 if its not in expected range (see routine @1D8D2). . Seta X1-010: Accurate frequency calculation. Minor cleanups. Reduced unused and unnecessary lines. Fixed notes and spacing. Use shorter/correct type values. . SN76496: Fixed ready_r handling - DEVICE . Data East 99 'ACE' Chip: Added notes for alpha value usage. Improved mixing behavior related to DECO ACE chip. Added notes of splitted palette area and for alpha value usage (video\deco_ace.cpp). . DECO 52 Sprite: Allow priority/color callback usable with external mixing bit . DECO 55 / 56 / 74 / 141 Tilemap Generator: Fixed drawing behavior with 16bit indexed bitmap. Implemented runtime color bank changes. Fixed 8bpp color base (video\deco16ic.cpp). . Discrete Netlist . Use initializer_list in object_array_t . Added constructor which accepts a format string for object names . Started work on logic_input8 which provides 8 logic outputs . Added sampled output format to netlist\prg\nlwav.cpp. Using this output format nlwav will pick point samples at regular intervals from log files. This can be used to e.g. calculate RGB output levels with netlist. Use netlist to calculate RGB values for Turkey Shoot. This example shows how the netlist tools can be used to derive RGB tables from a schematic. All steps are given in netlist\examples\turkey_shoot.cpp. Fixed inductor calculation. Updated Turkey Shoot example to skip start-up swinging of L1/C60 LC circuit. Recording now starts at 1ms. . Document linearized diode model in the range exceeding maximum dissipation (netlist\analog\nld_generic_models.h). The intention is to have a faster convergence but this yet not really is observable. . Changed MB3614 outout impedance (netlist\macro\nlm_opamp.cpp). Documented alternative opamp output stage (netlist\analog\nld_opamps.cpp). . Floppy: Added a MON callback so that drives, which are unselected early, do not spin forever. Changed spindown delay to 9 revs according to specs, added MON clearing directly in master reset (machine\wd_fdc.cpp). . I2C Memory . Latch the upper address bits from the I2C device ID after receiving the lower 8 bits of the address, implemented 2-wire softwarereset for I2C, stop nack from lowering sda and removed redundant state from I2C page write (machine\i2cmem.cpp). . Added support for the address high byte to i2cmem for devices greater than 4096 bytes . Namco C355 (Sprites): Converted sprite drawing behavior related to template bitmap. Fixed overwritten shadowed pixel. Support bitmap_rgb32. Implemented m_screenbitmap clearing. Added renderable bitmap with sprite effects to m_screenbitmap (video\namco_c355spr.cpp). Fixed copybitmap. . S3 86C3xx: Plumbed out linear framebuffer support. Fixes graphics in (MESS) 'Analog 801' demoscene demo. . Signetics SCN26xx: ew and completely rewritten emulation of SCN2651 PCI, SCN2661 EPCI & SCN2641 ACI. This is far more thorough and accurate than the preexisting MC2661 device emulation. Synchronous modes have been implemented but not tested. . TE7750 Super I/O Expander: Simplified handler signatures . uPD4992 RTC: Simplified handler signatures. Don't default clock configuration. . Z80 DART: Replaced old device with new variant of modern SIO emulation (machine\z80sio.cpp) . Z80 SIO: Replaced legacy device emulations i8274_new and upd7201_new. Make LOGBIT less spammy. Booleanize a few members (machine\z80sio.cpp). - 1945kiii.cpp . Implemented VRAM access toggle behavior. Implemented sprite limitation per frame. Correct VRAM flip-flop behavior. Converted screen parameters into raw format. Added Hardware notes. . Added input ports for clone 1945k III (older, OPCX1 PCB) - 20pacgal.cpp: Measured CPU clock and updated comments - 39in1.cpp: Converted Intel XScale PXA255 to logmacro, added more GPIO callbacks and removed unnecessary prefixes. - aristmk6.cpp: Reorganized BIOS order and updated documentation - cps1bl_5205.cpp: Fixed assertion 'm_current_device' failed in debug builds - deco32.cpp . Fixed palette effects and background color. Added notes. . Night Slashers: Minor blending/priority adjust. Fixes missing alpha blending for message windows (ID 03708). Fixed wheel vs hospital wall priority (video\deco32.cpp). . Tattoo Assassins: Improved blending behavior. Implemented runtime color bank changes (video\deco16ic.cpp). - ddragon.cpp: Modernized HD63701Y0 configuration - dgpix.cpp: Added Samsung KS0164 Wavetable Synthesizer device. Use correct XTAL for KS0164, as per Guru's PCB layout. KS0164 disassembler and core work. - drw80pkr.cpp: Hook up MC6845 CRTC. Added screen raw parameters. - holeland.cpp: Added DIP locations and screen raw parameters - homedata.cpp: Slow down main CPU to 2 MHz for all games, fixing the 'Mahjong Ikaga Desu ka (Japan)' audio problem the opposite way. MC68B09E is only rated for 2 MHz operation anyway. - itech32.cpp . Decapped and dumped ITGFM-3 PIC16C54 for clone Golden Tee '97 (v1.21S) and ITBWL-3 PIC16C54 for World Class Bowling (v1.6), (v1.61), (v1.65), (v1.66), World Class Bowling Tournament (v1.30) and (v1.40). Not hooked up. . Added notes of register usage (video\itech32.cpp) - konamigs.cpp: Games do not enable SH-3 CPU cache, so it's actual rate is way lower than may/should be. - kyugo.cpp: Added Repulse bootleg PCB layout and DIP locations - metro.cpp . Fixed random hanging in Gun Master and probably other games with uPD7810 sound by not syncing on each shift . Fixed loss of sound in games with uPD7810s other than Daitoride, Pururun and Gun Master. - micro3d.cpp: New and completely rewritten emulation of SCN2651 PCI, SCN2661 EPCI & SCN2641 ACI. Replaced old MC2661 device with new SCN2651 device and make some associated changes - namcos21.cpp and gal3.cpp: Fixed palette entries related to RAM size - neogeo.cpp: Added Universe Bios (Hack, Ver. 4.0) - nmk16.cpp: Updated Test Mode usage notes (ID 07580) - segac2.cpp: Changed segac2_tfrceacjpb set_ignore_read_direction to a bit more logical set_ddr_override mask, port D works ok now (machine\315_5296.cpp). - segahang.cpp . Fixed Space Harrier/Enduro Racer music playing after highscore entry (ID 07038) . Better Space Harrier protection simulation. This fixes constantly increasing game difficulty due to time delayed protection (ID 07581). - segas32.cpp: Make the 4 DIPs selectable singularly and added DIP locations - ssv.cpp: Dumped PLDs for Gourmet Battle Quiz Ryohrioh CooKing and Pachinko Sexy Reaction 2 - stv.cpp: Dumped v1.11 USA BIOS - taito_f2.cpp: Fixed sprite vs tilemap priority - taito_z.cpp . Added screen raw parameters for all games. Correct h/vtotals after feedback . Fixed analog inputs in clone Enforce (Japan, Analog Controls), always been broken and promoted game to working status (ID 07229). - tecmo16.cpp . Final Star Force: Fixed titlescreen scroll timing issue (ID 00954) . Lower screen refreshrate to match Final Star Force video recording and also match Ninja Gaiden (drivers\gaiden.cpp) - toaplan1.cpp: Added DIP locations and enabled all jumpers combinations - toaplan1.cpp, toaplan2.cpp, twincobr.cpp and wardner.cpp: Removed some now unused macros (includes\toaplipt.h) - toaplan2.cpp: Implemented sprite limit per frame/sprite size. Added notes (video\gp9001.cpp). - williams.cpp . Improved 2nd Generation Williams hardware color display (Inferno, Joust 2, Mystic Marathon and Turkey Shoot). Changed color levels for williams2 hardware to better color display. Output levels are computed in netlist. These levels are aligned to LTspice modelling I did. Also improved the modelling to do what the actual hardware for Mystic Marathon did: Color decoding depends on W13..W11. These are actually flip screen versions of V13..V11. Fixed treatment on Bit0 although not used by the game code. Added R,G,B gain and offset sliders for the williams2 hardware. MAME only supports one setting for all channels. This is not good enough to come close to video recordings found on youtube. Minor changes to nltool to better measure time taken to run a simulation. . Improved color processing. Offsets now cut off before gain is applied. This is how the "cutoff" monitor controls on arcade monitors worked. Adjusted R,G,B gains and offsets. . Use floating point literals to stop MSVC warning C4305 (video\williams.cpp) . Random cleanup: Group the color numbers in eights so it's easier to visually find a particular index, and restore the styling of the file (two blank lines between functions, three blank lines between sections) (video\williams.cpp and includes\williams.h). - Athena: Dumped PROMs for clone Super Athena (bootleg) - Boogie Wings: Fixed priority with alternative palette fading and palette effects. Fixed 1st boss shadow effect. - Cherry Master I: Identified 'Enable stats menu' dipswitch - Cobra-Command: Added PCB locations and PLD to Cobra-Command sets - Dance Dance Revolution Kids: Demoted game to MACHINE_IMPERFECT_TIMING - Fire Battle: Removed death sequence HACK. Demoted game to MACHINE_UNEMULATED_PROTECTION as stated in the notes - Gomoku Narabe Renju: Added save state support - Gratia: Verified the background graphics ROM from clone Gratia - Second Earth (ver 1.0, 91022-10 version) is correct - Green Beret (Irem): Added missing ROM gb7. Added up/down joystick control (Game now playable). - Heavyweight Champ: Improved input handling, added Y handle limits that allows player to change stance, block and attack directions. - Konami GT: Added steering wheel to Konami GT and clone Konami RF2 (ID 05331) - Kuri Kinton: Added verified working PAL images to Kuri Kinton. Applies to all released rom revisions. - Mahjong Gal no Kokuhaku: Resolved DIP settings for clone Mahjong Hyouban Musume [BET] (Japan) (ID 05554) - Michael Jackson's Moonwalker: Approved default DIPs. Fixed Coin1 & 2 mapping in common mode. - Moon Cresta: Use 'Moon Cresta (bootleg set 2)' m7.bin for 'Moon Cresta (bootleg set 4)' in place of the bad rom - New Fruit Bonus '96 Special Edition: Correct GFX roms - Push-Over: Major driver update: Hook up color attribute. Added a handmade palette, so colors should be mostly correct now. Hook up scroll registers (scrolling is still wrong though). Fixed memory map (A15 and A14 are not decoded). Map most of the rest of the inputs, better labels for inputs. Added a rudimentary layout showing the lamps and buttons. Hook up coin counters. Removed references to MC6845 and AY8910. Added a link to the patent describing the machine. TODO: Scrolling is wrong. Missing graphics at top and right (pound values). Palette (currently handmade). Sound (discrete?). Better artwork. - Ribbit!: Fixed random jumps back to 1st round (sound\upd7759.cpp and drivers\segac2.cpp) (ID 02343). Note: Ribbit does random measure of UPD7759 sample #A playback time and reset to round 1 if its not in expected range (see routine @1D8D2). - Seibu Cup Soccer: Added DIP locations and documentation. Fixed visible area. - Sky Army: Fixed bitrotten rom a1h.bin, makes the game fully playable. The problem to complete the game no longer exists, especially on the 3rd level the helicopters don't fly forward. - Special Criminal Investigation: Dumped missing BPROMs and PALs - Speed Ball: Redumped and confirmed that rom 4.u48 is correct - Spiders: Fixed discrete sound clock (ID 07518) - Super Dodge Ball: Replaced protection simulation with emulation of HD63701Y0 MCU - Super Roller: Added PCB ASCII layout - Trivia Madness: Rewrote driver (Game now playable). Hook up inputs using AY8910 and added a simple layout. Showing the lamps and hook them up. Fixed banking: Game no longer hangs and NVRAM works. Hook up correct palette RAM, colors possibly correct now and 6845 CRTC. Updated screen config to raw parameters. Simplified rendering using a tilemap. Added PAL dump and save state support. - Turbo Sub: Added Star Wars flight yoke controller. This fixes the inverted input that existed since MAME 0.192 (ID 06913). - X-Plan: Demoted game to MACHINE_NOT_WORKING. Note: Starts with 4 credits, no controls to move the aircraft. - Xexex: Implemented blend enable flag. Added note of unknown Xexex writes to machine\k054321.cpp. - Fixed rom names in dec8.cpp, gaelco2.cpp, m92.cpp, segac2.cpp and trvmadns.cpp - Dipswitch fixes in 1945kiii.cpp, clshroad.cpp, toaplan1.cpp, dribling.cpp, goldstar.cpp, holeland.cpp, kyugo.cpp, legionna.cpp, m10.cpp, nbmj8991.cpp, pengadvb.cpp, segas18.cpp, segas32.cpp, summit.cpp, trvmadns.cpp and taito_z.cpp - Description changes of Blue Shark (Model Racing bootleg, set 1), Burning Fight (prototype, near final, ver 23.3, 910326), Crazy Kong (bootleg on Moon Cresta hardware, set 1), Double Dragon (bootleg with MC6803), Dribbling (set 1), Magical Date / Magical Date - Dokidoki Kokuhaku Daisakusen (Ver 2.02J), Magical Date EX / Magical Date - Sotsugyou Kokuhaku Daisakusen (Ver 2.01J), Miss Puzzle (Nudes, more explicit), New Fruit Bonus '96 (v3.1, A PCB, set 1), Pang! 3 (bootleg, set 1), Penguin Adventure (bootleg of MSX version, encrypted), Pesadelo (bootleg of Konami Knightmare), Push-Over (Summit Coin), Speed Ball (set 2), Tetris (bootleg set 5, with UM3482), Tetris: The Absolute - The Grand Master 2, Tetris: The Absolute - The Grand Master 2 Plus, Tetris: The Grand Master (Japan 980710) and Undercover Cops - Alpha Renewal Version (World) - Renamed (mspuzzlen) to (mspuzzleb) and (speedbal) to (speedbala) - MAME . VIDEO RENDERING SYSTEM . Added a missing break function to emu\screen.cpp . Replaced SET_TILE_INFO_MEMBER macro with tileinfo.set helper. That macro has contributed nothing but obfuscation since we moved to C++ (emu\tilemap.h). . DEVICE: Simplified handler for a few devices (video\bufsprite.h, ramdac.cpp, tms9927.cpp and zeus2.cpp) . LUA engine: Added save state to/from binary string buffer . UI: Added an 'About' menu option to display the contents of COPYING in order to be more license-compliant (frontend\mame\ui\about.cpp) . Removed winpcap and cleaned up network module selection. The pcap.h header itself has the problematic original BSD license, including the obnoxious advertising clause. Using tap/tun networking on Windows provides a much better experience, so the extra setup is worth it. This patch also allows you to enable pcap on platforms where it's disabled by default with USE_PCAP=1 if you really want to use it. . Simplified video handlers (cpu\h6280\h6280.cpp, video\ef9369.cpp, hd61830.cpp, huc6260.cpp, jangou_blitter.cpp, mb90082.cpp, mb_vcu.cpp, ppu2c0x.cpp and snes_ppu.cpp) . Simplified sound handlers (sound\ad1848.cpp, astrocde.cpp, c6280.cpp, cdp1863.cpp, cdp1869.cpp, dave.cpp, digitalk.cpp, es5506.cpp, es8712.cpp, huc6230.cpp, iremga20.cpp, k005289.cpp, k007232.cpp, k056800.cpp, mea8000.cpp, mos6560.cpp, msm5205.cpp, msm5232.cpp, multipcm.cpp, n63701x.cpp, namco.cpp, okim9810.cpp, qs1000.cpp, qsoundhle.cpp, s14001a.cpp, segapcm.cpp, snkwave.cpp, sp0250.cpp, st0016.cpp, tiaintf.cpp, tms5110.cpp, upd1771.cpp, upd7752.cpp, upd934g.cpp and ymz770.cpp) . Simplified driver handlers (drivers\24cdjuke.cpp, 2mindril.cpp, 30test.cpp, 4roses.cpp, 5clown.cpp, ace.cpp, acefruit.cpp, aces1.cpp, airraid.cpp, akkaarrh.cpp, albazc.cpp, albazg.cpp, alinvade.cpp, allied.cpp, cclimber.cpp and kyugo.cpp) . Eliminated now-unnecessary bus_r and bus_w handlers (drivers\asteroid.cpp, astrocde.cpp, dkong.cpp and mario.cpp) . Cleanup: Added doxygen comments for bit manipulation functions. Added an overload of BIT that works like the AArch64 UBFX instruction. Kill off some of the silly concatenating overloads for emu_file::open. Make searchpath acually useful for devices. . Restored lost message about invalid BIOS (emu\romload.cpp) . Fixed 'Viewpoint' entry in plugins\hiscore\hiscore.dat (ID 07592) . Roll back no longer needed /ZI workaround (scripts\src\tools.lua). It has been fixed as of Visual Studio 2019 16.5. . Removed tools\src2html.cpp - VGM player: Added a visualizer. Provides a waterfall, spectrograph and VU view. Mark few fake VGZ files as bad_dump (hash\vgmplay.xml). - Compiling . Re-Added "premake.gcc.ar = toolchainPrefix .. "gcc-ar"" for MinGW cross-compilation (scripts\toolchain.lua) . Updated more stuff in top-level makefile . Compile in the contents of the COPYING file for the about box - safer than assuming it will be in the working directory. no attempt at compressing it for now (scripts\build\file2lines.py, ui\about.cpp). - Debugger: Fixed two cases where debugger can crash MAME ("cheatlist" command before "cheatinit", long strings after "help") (debug\debugcmd.cpp and debughlp.cpp) 0.219 - New games: Merry Circus (Version 1.0.2) - New Working games: Witch Card (ICP-1) - New Non-Working games: 3 Cards Poker 96 (V1.6), Gegege no Kitaro Yokai Yokocho Matsuri De Batoru Ja (GYM1 Ver.A), Keroro Gunso Chikyu Shinryaku Shirei Dearimasu! (KRG1 Ver.A), Super Roller (v7.0) and Super Shanghai 2001 - New clones: 3 Cards Poker 96 (V1.0), Ataque Androide - Moon Cresta (FAR S.A. Spanish bootleg), Battle Balls (Portugal), Blood Bros. (Korea), Cherry Angel (set 2), Club Kart: European Session (2003, prototype, set 2), Dharma Doujou (Germany), Double Wings (Asia), El Estivador (Spanish bootleg of Port Man on Galaxian hardware), The End (SegaSA / Sonic), Ferrari F355 Challenge (private show version), Final Star Force (World?), Galaktron (Petaco S.A.), Galaxian (Spanish bootleg), The Lord of King (bootleg), Master Boy (1987, Z80 hardware, Ichi-Funtel), Mr. Do! (Fabremar bootleg), New Fruit Bonus '96 Special Edition (v3.60, DK PCB), New Fruit Bonus '96 Special Edition (v3.61, DK PCB), New Fruit Bonus '96 Special Edition (v3.61a, C1 PCB), New Fruit Bonus '96 Special Edition (v3.61a, DK PCB), Olivmandingo (Spanish bootleg of Mandinga on Galaxian hardware), P-47 Aces (ver 1.1), Pang (bootleg, set 7), Puzzle & Action: Tant-R (Japan) (bootleg set 4), Puzzli (revision A), Raiden II (easier, US, prototype? 11-16), Rampart (Joystick, smaller ROMs), Ribbit! (Japan), Seicross (set 2), Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 1), Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 2), Space Pilot (set 2), Street Fighter II: The World Warrior (USA 920312), Teenage Mutant Ninja Turtles (US 4 Players, version N), Three Ds - Three Dealers Casino House (set 2), Time Crisis 4 (Japan, TSF1001-NA-A), Time Killers (v1.00) and Viper Phase 1 (New Version, Portugal) - New AGEMAME games: Rapid Fire 5 (Konami Endeavour, NSW) - New PinMAME games: Formula 1 and Ice Mania - New devices: 24c04, gunsense, ide_gdrom, ks0164, lz8420m and upd78213 - CPU . Motorola MC68000: Allow RTE to unwind type 1000 (68010 bus error) stack frames (m68000\m68k_in.lst, m68kops.cpp) . NEC uPD78213: Added disassemblers for NEC 78K/0, 78K/I and 78K/II MCU types . Sony SPC700: Added fix for opcodes TCLR1 and TSET1 (https://mametesters.org/view.php?id=5409). This makes Blargg's CPU_tset_tclr pass (from spc_smp.sfc). Removed page crossing penalty on EA_DIY. Doing so allowed some of our internal S-SMP/S-DSP tests to pass. - SOUND . Beep: Changed BEEP_RATE to 384000 . Gravis Ultrasound: Active channels are numbered from 0. Calculated GF1 sample rate. Fixed divide by zero (isa\gus.cpp). . ICS2115 WaveFront Synthesizer: Calculated sample rate related to clock. Activated OSC numbers. . OKI MSM5205 ADPCM: Added DAC output bit difference. Make Data capture timing related to input clock. Added notes for MSM5205 can be usable with 768kHz input clock (from official document) and Cutoff Frequency. . Samsung KS0164 audio processor: First try at a disassembler. Added KS0164 to dgPIX driver. Get #include guards in line with filenames, avoid expensive things in static initialisation. . Sound Blaster: Support more playback commands . Yamaha YMF271 OPX: Correct envelope release time . Yamaha YMF278B OPL4: Fixed output rate and clock divider of FM part and mixing behavior. . YMF262 OPL3: Support clock divider difference - DEVICE . 6821 PIA: Improved LOG messages a bit . DECO 55 / 56 / 74 / 141 Tilemap Generator: Fixed 1 pixel glitch (video\deco16ic.cpp) . Discrete Netlist . Minor update to audio\nl_zac1b11142.cpp . Fixed issues with parsing netlists (solver\nld_solver.cpp), CMOS switches (4066/4016) and inactive code-path (macro\nlm_opamp.cpp). . Added current controlled voltage source (CCVS) . Fixed/Extended SPICE format conversion. "nltool -c convert -f UA741.mod" now runs without errors. UA741.mod is the official TI SPICE subckt for the 741 opamp. This commit fixes a number of issues and adds linear POLY support for E/F SPICE models. . Fixed some Clang lint warnings. Removed dead code. . Experimental parser code to allow calculations in parameter value. This already works for compiled netlists. These changes are currently disabled. Updated Pong netlist to work with this new code. . Make gain parameter mandatory for controoled sources. Fixed crash in infix function evaluation. Fixed parameter update recalculation. . Parameters evaluated when netlist is created. Parameters are now passed to the netlist core as strings. During netlist creation they are evaluated as functions. This opens the path to parameters on subdevice level. Examples: PARAM(device.XY, (1+2*0.005)); RES(R1, 2.05*RES_K(1)+1). In addition the commit contains dead code removal. . Changed ptime operators to align with C++ textbooks . Code symplification and bugfixes. Fixes performance regression and net_splitter struct and nltool time measurements. pstream simplification. . Spice-to-netlist conversion sync with MAME/discrete. This is work in progress. The aim is to remove all hacks in netlist conversion going forward. . Align nltool -c convert with mame/discrete/README.md . Removed dead code. Fixed lint warnings. Make spice netlist conversion more flexible. Implemented changes to controlled sources. . Fixed plib\pstring.h VISUAL C++ compiling . Added support for pots to spice conversion (tools\nl_convert.cpp). Added min and max to netlist\plib\pfunction.cpp. . Turn off alignas for -Wattributes on ARM. Changed output impedance to more realistic values (netlist\nl_base.cpp). Fixed log file option in nltool. Updated VS files for standalone build. . Floppy: Condition command completion interrupt on busy flag having been set. Increased HLD idle timeout to 15 revolutions except for FD1771 and FD1781 (machine\wd_fdc.cpp) . I2C Memory: Added '24C04 I2C Memory' device type . Imagetek I4100 052 VDP: Confirm raster bug for Puzzli . Intel 8155 RAM, I/O & Timer: Make timer more efficient by not counting each cycle . Intel 8251 USART: Resolved callbacks at device_resolve_objects time . Intel 8279 KDC: Simplified handler signatures. Added save state. Disable read side effects. Removed timing hack. Make sure SL3 gets output (MESS) Pied Piper Communicator needs it. Correct keyboard scan rate and logging. Fixed accidentally uncovered crash in Turbo (Sega 1981) (machine\i8279.cpp). . K052109 Tilemap Generator: Fixed/Cleanup tilemap scrolls, fixes Fuusen Pentai and missing star field background rotation in Surprise Attack. . MC6840 PTM: Added specific logging channels . MC6850 ACIA: Updated use of logmacro.h . MM5837 Digital Noise Source: Documented frequency by supply voltage . Samsung S3C24xx SoC: Replaced get_read_ptr with memory_access_cache . Sega 315-6154 Northbridge: Converted 315-6154 device into a real PCI host. And updated DIMM Board accordingly. - armedf.cpp: Use pdrawgfx for sprite drawing. Make text VRAM into shared_ptr. Moved install_handler into address map. Fixed terraf_io without NB1414M4. Simplified handlers and gfxdecode. Reduced duplicates. Fixed namings. Use shorter/correct type values. - deco32.cpp: ACE ram is not masked. Use fixed point values for palette fading behavior (video\deco_ace.cpp). - ddenlovr.cpp: Added coin counters and fixed metadata to all games - dgpix.cpp: Added Samsung KS0164 audio processor - goodejan.cpp: OKI pin 7 is high from PCB readme, fix voice pitches. Added 'Difficulty' dipswitch. Converted screen refresh rate to set_raw. - gstream.cpp: Implemented sprite limit per frame - jaguar.cpp . Eliminated unsafe raw memory pointer usage from blitter, stops (MESS) Tempest 2000 from crashing (video\jagblit.hxx). . Fixed Jaguar GPU (Tom)/DSP (Jerry) movei disassembly, previously the immediate value included two bytes of the following instruction (cpu\jaguar\jagdasm.cpp). - konamigs.cpp: Documented I/O and hook up bookkeeping - konendev.cpp . Hooked up H8/3007 "IFU" CPU. Added Konami Endeavour BIOS. . Additional inputs mapped, documentation and cleanups. - konmedal.cpp: Fixed/Cleanup K052109 tilemap scrolls, fixes Fuusen Pentai. Removed MACHINE_IMPERFECT_GRAPHICS flag from Fuusen Pentai, Mario Roulette and Shuriken Boy. - micro3d.cpp: AUTO_TURNAROUND is only done once (machine\mc68901.cpp) - midqslvr.cpp: Finish documentation - naomi.cpp . Dumped Sega Atomiswave BIOS. Note: BOOT ROM from Sega 837-14624R PCB, in comparison with Sammy's BOOT contain minor code change to keep video output disabled during Sammy logo display routine. Only last 128KB of whole 512KB ROM actually used (2 high address pins tied to Vcc). . Make "Gun Sense" board a separate device . Added two debug-only dipswitches to configure emulation (machine\naomigd.cpp). Changed dipsetting macro into confsetting macro (machine\naomigd.cpp). - pastelg.cpp: Splitted driver in subclasses - psikyo.cpp: Added skeleton LZ8420M device. It has additional IO, embedded RAM used in Psikyo driver. Fixed Gunbird PCB clock related to XTAL. - seibuspi.cpp: Fixed water graphics effect and linescroll (video\seibuspi.cpp) in Raiden Fighters (ID 07562) - sfbonus.cpp: Added templates and arrays. Configured banking and save state support. - stv.cpp: Minor fix for gouraud shading (video\stvvdp1.cpp) - toki.cpp: Converted screen refresh rate to set_raw - twin16.cpp: Restrict sprite drawing routine into screen cliprect - 1942 . Improved sprite priorities, but not yet perfect and IRQ timing accuracy. Fixed per-scanline sprite ordering. . Partial updates aren't required and they broke clone 1942 (Tecfri PCB, bootleg?) which has it's own timer and sprite drawing code. Confirmation of title screen sprite effect on Tecfri version is required. . Fixed gaps on Capcom logo on title screen to match pictures from real hardware, sprites are rendered to a line buffer one scanline before the are displayed. - Bishou Jan: Added missing MAHJONG_RON button - Blood Bros.: Added some missing PROMs and PLDs to clone Blood Bros. (Modular System) - Boogie Wings . Further blending implementation. Fixed museum stage windows. Window frames are must be solid pixel, not blended. Further priority acknowledge, fixes transporter pilot priority incorrection (video\boogwing.cpp). . Fixed tilemap in some final stage effects and palette effect boundary (video\boogwing.cpp) . ACE ram is not masked. Use fixed point values for palette fading behavior (video\deco_ace.cpp). - Congo Bongo: Documented netlist progress. Fixed devices. - Emergency Call Ambulance: Redumped clone (US location test?) - The Grid: Decapped PIC16C57 - Mahjong Sisters: Hook up 6845 CRTC. Added screen raw parameters. - Puzzli: Confirm raster bug (video\imagetek_i4100.cpp) - Spark Man: Fixed buttons read (ID 07079) - Stadium Hero: Added PCB layout - Strikers 1945 and Tengai: Some measurements (HSync, VSync, etc) - Stunt Cycle [TTL]: Assorted fixes to machine\nl_stuntcyc.cpp - Surprise Attack: Fixed/Cleanup K052109 tilemap scrolls, fixes missing star field background scrolling and rotation (ID 06790). - Twin Eagle: Fixed 'Bonus Life' and 'Difficulty' default dipswitch settings - Witch Card: Fixed decryption of clone Witch Card (ICP-1) (Game now playable) - Wonder Planet: Fixed broken coin inputs (ID 07557) - Xyonix: Hook up 6845 CRTC. Added screen raw parameters. A scanline based renderer using MC6845_UPDATE_ROW has been added but is commented out because the tilemap renderer is much simpler. - Fixed rom names in atarigx2.cpp, raiden2.cpp, snk.cpp and tsamurai.cpp - Dipswitch fixes in ddenlovr.cpp, goodejan.cpp and seta.cpp - Description changes of African Adventure (Konami Endeavour, Russia), Beezer (unknown earlier version), Beezer (version 9.0), Cherry Angel (set 1), Club Kart: European Session (2003, prototype, set 1), Dragonfly (Konami Endeavour, Russia), Enchanted Lamp (Konami Endeavour, Russia), Exciting Animal Land Jr. (USA, Canada, Mexico), Gypsy Magic (Konami Endeavour, Russia), Hanafuda Hana Ginga [BET] (Japan), Hanafuda Hana Gokou [BET] (Japan), Hanafuda Hana Gokou Bangaihen [BET] (Japan), Hanafuda Hana Tengoku [BET] (Japan), Incan Pyramid (Konami Endeavour, Russia), Jester Magic (Konami Endeavour, Russia), Lee Trevino's Fighting Golf (US, Ver 2, set 1), Lee Trevino's Fighting Golf (US, Ver 2, set 2), Lucky Fountain (Konami Endeavour, Russia), Mahjong Chuukanejyo [BET] (China), Mahjong Dai Touyouken [BET] (Japan), Mahjong Daimyojin [BET] (Japan, T017-PB-00), Mahjong Gorgeous Night [BET] (Japan, TSM003-01), Mahjong Janshin Plus [BET] (Japan), Mahjong Jong-Tei [BET] (Japan, NM532-01), Mahjong Momotarou [BET] (Japan, T027-RB-01), Mahjong Reach Ippatsu [BET] (Japan), Mahjong Seiryu Densetsu [BET] (Japan, NM502), Mahjong Super Dai Chuuka Ken [BET] (Japan, D115), Mahjong The Dai Chuuka Ken [BET] (China, D111), Mahjong The Mysterious Orient [BET] (Japan, v1.00), Mahjong The Mysterious Orient Part 2 ~ Exotic Dream ~ [BET] (Japan, v1.00), Mahjong The Mysterious Universe [BET] (Japan, D85), Mahjong The Mysterious World [BET] (Japan, set 1), Mahjong The Mysterious World [BET] (Japan, set 2), Master Boy (1987, Z80 hardware, Covielsa, set 1), Master Boy (1987, Z80 hardware, Covielsa, set 2), Mohican Sun (Konami Endeavour, Russia), Puzzli (revision B), Quiz Channel Question (Japan, Ver 1.00), Quiz Channel Question (Taiwan?, Ver 1.23), Rampart (Joystick, bigger ROMs), Return Of Sel Jan II [BET] (Japan, NM557), Roman Legions (Konami Endeavour, Russia), Safe Money (Konami Endeavour, Russia), Seicross (set 1), Show Queen (Konami Endeavour, Russia), Space Pilot (set 1), Spice It Up (Konami Endeavour, Russia), Sultan's Wish (Konami Endeavour, Russia), The Monster Show (Konami Endeavour, Russia), Three Ds - Three Dealers Casino House (set 1), Time Crisis 4 (World, TSF1002-NA-A), White Russia (Konami Endeavour, Russia) and Witch Card (ICP-1) - Renamed (fitegolf2) to (fitegolfua), (p47aces) to (p47acesa), (pokerduc) to (witchcdj), (tmntub) to (tmntuc) and (tmntua) to (tmntub) - MAME . DEVICE: Changed syntax in emu\devcb.h for constructing/resolving arrays of callbacks. Saves a lot of typing { *this }, { *this }... Switched all DEVCB arrays to new syntax. . LUA engine: Exposed osd_subst_env as emu.subst_env. This is intended as a functional replacement for lfs.env_replace, but that is now used in a fair number of plugins whose code structure I don't know well enough to trust that the simple substitution is correct. . 3rdparty: Sync with GENie upstream revision - VGM player: Fixed YMF262 handling and YMF278B volume. Fixed reported badly formatted/invalid characters from labels (hash\vgmplay.xml). - Compiling . Fixed some Clang warnings: readability-static-accessed-through-instance, readability-redundant-string-cstr, readability-redundant-control-flow, modernize-use-nullptr, performance-faster-string-find, performance-for-range-copy, performance-unnecessary-value-param, modernize-redundant-void-arg, modernize-use-bool-literals, modernize-use-emplace, performance-move-const-arg, readability-redundant-control-flow, readability-redundant-string-cstr, performance-unnecessary-value-param, modernize-use-equals-default and modernize-use-auto. . Fixed MM5837 entry in scripts\src\sound.lua, allows clean single driver build of beezer.cpp to complete. . Future-proof for C++20. Also removed a workaround for older versions of GNU libstdc++ with incomplete C++14 support (util\strformat.h) 0.218 - New games: Dance Dance Revolution Kids (GQAN4 JAA) and Muscle Ranking Kinniku Banzuke Spray Hitter - New Working games: Buttobi Striker, Dam Dam Boy, Fuusen Pentai, Kattobase Power Pro Kun, Korokoro Pensuke, Lucky Girl (Wing), Mario Roulette, Pittanko Zaurus, Rushing Beat Shura (SNES bootleg), Shuriken Boy, Toki (Modular System), Tsukande Toru Chicchi and Yu-Gi-Oh Monster Capsule - New Non-Working games: Challenge Girl (Falcon bootleg), Diana Elite, Dinoking Battle, Dinoking Kids, Dragon Dance (V1.02J), Eldorado (4.2), Knock Down 2001 (Japan, KD11 Ver. B), Laser Quiz Greece, Mirage World (satellite), Odeon Twister (v1.4), Scorpion (Jun 15, 1999), Texas Reels (Ver. 2.00), 'unknown Namco System 10 medal game (MTL1 SPR0B)' and War III Cherry Best - New clones: Denjin Makai (set 1), Driving Force (Galaxian conversion, Seatongrove UK, E-0237), Enduro Racer (YM2151, FD1089B 317-0013A), Fantasy Story (set 2), Fighting Fantasy (Modular System), GunNail (location test), Klax (version 5, bootleg set 3), The Last Apostle Puppetshow, Match'em Up (German), Minky Monkey (Japan), New Cherry '96 (v3.1, B PCB), New Cherry '96 (v3.1C, G PCB), New Cherry '96 Special Edition (v3.55, C1 PCB), New Fruit Bonus '96 (v3.1, A PCB), New Fruit Machine (Ming-Yang Electronic, vFB02-01A), Pop'n Music 1 (ver JA-A, HDD 1.00), Pop'n Music 1 (ver KA-A, HDD 1.01), Quizard 3 (v3.4, German, i8751 DE 132 A1), Quizard 4 Rainbow (v4.2, Czech, i8751 TS142 CZ1), Scorpion (Oct 01, 1997), Seibu Cup Soccer :Selection: (bootleg, set 4), Super Bagman (version 5), VS Computer Mahjong and Wild Cat 3 (CMV4 hardware) - New PinMAME games: Flashman and The Lord Of The Rings (3.00) - New drivers: dinoking.cpp, ffantasy_ms.cpp, konamigs.cpp, merits.cpp, skopro.cpp and teamjocs.cpp - New devices: arm710t, gdrom, mooncrst_sound, rtc4553, sega315_6154, spansion_s29gl064s and ymf276 - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - New artworks . 1942, abcop, astorm, breakout, crash, destroyr, pongd, rachero, scyclone, sharrier, skyraid, skysoldr, smash, spacedem, spacefb, swa, tourtabl and vball . Updated 1941, 19xx, 720, aliencr, apb, asteroid, badlands, bankp, blazlaz, blstroid, crbaloon, csprint, cyberbal, decocass, defender, gaunt2, gauntlet, joust, joust2, keith, klax, ladybug, madalien, marble, paclandp, paperboy, rampage, roadblst, robotron, spyhunt, ssprint, stargate, superbug, tempest, timber, tomahawk, toobin, vindictr and xybots . Fixed astdelux and swtrilgy default.lay - CPU . ARM7: Switched to using logmacro and disabled logging by default. Added debug print ability for Happy Fish (V2 PCB, 302-in-1). . DEC T11: Use octal for debug register state and disassembly. Fixed disassembly of SOB instruction. Fixed empty disassembler output for some invalid opcodes. . Hitachi SH-3/4: Handle INTEVT register. Disable timers at reset. . Intel I386: Fixed over/underflow result and zero div (i386\i386.h, x87ops.hxx). movzx r16 rm16 is an alias for mov (i386\i386ops.h) . Intel i960KB: Fixed dissassembly format output (cpu\i960\i960dis.cpp) . Microchip PIC16C62x: Correct rom memory size. Enabled ability to set configuration word. . MIPS-I: Alignment checking/exceptions . NEC V60 . Fixed XOR instructions to not change the carry flag. Added friendlier flags display in the debugger. . Fixed AND and OR instructions to also not change the carry flag. NEG instructions should set or clear carry based on non-zero or zero results, not based on borrow. . Sign-extend displacements for various addressing modes and DB/TB instructions. This seems to have regressed with the great disassembler refactoring. - SOUND . Hudson Soft HuC6280 PSG: Fixed noise, volume calculation and interface behavior related to manual. Modernized save states. Use shared index between wavefrom writing and sound playback. Fixed spacings/namings. Use correct/shorter type values. Added notes. Reduced unnecessary lines. Reference: https://archive.org/stream/PCEDev/HuC6280%20-%20CMOS%20Programmable%20Sound%20Generator%20Manual. . MagicEyes VRender0 Sound Engine: Use struct for each channels and address map for sound interface and wave memory. Fixed wave address calculation and volume. Fixed channel starting behavior (fixes start position). Partially implemented envelopes and interrupts. Moved dynamic sample rate change behavior into device_clock_changed. Use operation clock related sample rate. Use shorter/correct type values. Reduced duplicates. Added notes. Reference: https://web.archive.org/web/20040628133240/http://www.mesdigital.com/support/downfile/vr0510q_datasheet_v1.31.pdf. . Signetics S2650: Changed to big-endian . YM2612 OPN2: Fixed output bits (sound\2612intf.cpp). Added output bit variation (sound\fm2612.cpp). - DEVICE . 3dfx Voodoo Graphics: Eliminated auto_alloc . 8-bit ISA slot . Provisional ready line interface . Halt CPU by ISA READY line in (MESS) poisk1 and mc1502 FDC devices . Cassette: Hopefully fixed cassette bugs (imagedev\cassette.cpp) . Discrete Netlist . Force invalidation of save states. Added netlist version information. This is used to enforce the invalidation of save states when the major/minor netlist version changes. This catches edge cases for which neither the size or names of saved items changes during releases. . Workaround for a bug in MSVC (https://github.com/mamedev/mame/issues/6106). __VA_ARGS__ are expanded to a single token in MSVC, all other compilers expand to a list of tokens (netlist\plib\putil.h). . Code maintenance. Introduced an additional absolute time type netlist_time_ext to identify whether absolute or relative time is used in the netlist code. Extend ptime code to allow operations between ptime derived types with different internal types. In addition rewrote main queue serve loops. Adds a very small performance increase. . Dead code removal . Make sure diodes step enough (netlist\analog\nld_generic_models.h). The diode model uses log-stepping as proposed in "Circuit Simulation" (Farid N. Najm) page 183. If the previous voltage was sufficiently negative the new voltage after a log step could not have increased enough to alter matrix and rhs vector. This bug surfaced in stuntcyc video signal mixing which uses a diode for the composite signal. . Moved some functions to pmath . Increased the time resolution from 1 nano second to 100 pico seconds. Make sure that icount and netlist internal time are better synched by tracking the remainder of the division. Fixed the netlist sound device. There is a one sample overflow every 13 seconds at 48000 Hz due to integer truncation which is now ignored. Added more doxygen documentation. . Fixed overclocking and building with 128bit integers . Checked and fixed conditional compile paths. Simplified memory allocation. Generalized signal handling. . Fixed 741 opamp representation . Implemented KONAMI filters using netlist into galaxian.cpp. This change improves accuracy and scalability. Added some notes about M51516L amplifier. . Removed pthrow trampline as proposed by Vas. Identified throwing code by adding noexcept(false). Moved "connected term" information to setup code. . Added CD4006 and CD4070 devices. Added TL084 opamp model. Clock now supports proxies, i.e. can be connected to analog devices. Fixed netlists using CLOCK. Added some comments. Fixed prg\nlwav.cpp. . Added analog filters to System16A games with YM2151 and UPD7759 . Fixed missing Tennis net in Pong Doubles [TTL] (ID 07368) . Fixed-Frequency Monochrome Monitor: Added machine configuration switches for netlist drivers using the fixed frequency monitor (video\fixfreq.cpp). These are intended for debugging and setting up new netlist drivers. As a side effect one can emulate e.g. loss of synchronization. This commit also fixes a crash on Windows/BGFX by limiting screen refresh rates. . IDE Hard Disk: Assign interface 'ide_hdd' (bus\ata\idehd.cpp) . K052109 Tilemap Generator: Improved colors for K052109 games Shuriken Boy, Fuusen Pentai and Mario Roulette. Added hackfix for Mario Roulette scrolling, documented observed row/col scroll K052109 tilemaps issues. . K056832 Tilemap Generator: Added tilemap priority . Kaneko KC002/VU002 Sprites: Fixed drawing behavior. Fixed priority in enabled 'keep sprite' function. Splitted 'Copy temporary bitmap into screen bitmap' function and Getting sprite function. . Microtouch Touchscreen: Added BIOS ROM load for MicroTouch device (not hooked up) . PSX GPU: Set NTSC mode refresh rate to 59.82 for 240 and 59.94 for 480 screenheight. Fixes sync issues regarding beatmania IIDX games (video\psx.cpp) (ID 06871). Refresh rate more decimals. . S3 86C3xx: Get started on BitBLT support, gets Windows 3.1 usable with S3 Virge drivers (bus\isa\s3virge.cpp, video\virge_pci.cpp). Fixed height of mono pattern BitBLTs in 8 and 15/16 bpp (bus\isa\s3virge.cpp). . S3 Graphics VGA: Make hardware cursor display correctly in 15bpp and 24bpp video modes for svga_s3 and s3virge (video\pc_vga.cpp) . Samsung S3C24xx SoC: Converted to use logmacro. Removed redundant accessors. . Sega DIMM Board: Added communication between SH-4 and security PIC and serial memories and with mainboard to DIMM Board plus some ram. Added memory controller entry to memory map of DIMM Board. Give the ability to activate the cpus in the DIMM Board to test it. Added binary files with serial memories contents (dimmspd.bin and 93c46.bin). . Seiko Epson S-3520CF RTC: Various fixes and improvements. Added Epson RTC-4553 model. . Signetics SCN2674 AVDC: Fixed premature address rollover with 16-bit extended addresses - atarisy1.cpp: Hardware to generate interrupt 3 only exists on LSI Cart 3, 4 & cockpit boards, it is missing on TTL, LSI and LSI Cart 2. - cdi.cpp: Decapped and dumped a German i8751 MCU for the Quizard 2 sets and a Czech i8751 MCU - gaelco2.cpp: Fixed timing issued with DS5002FP - galaxian.cpp: Implemented KONAMI filters using netlist. This change improves accuracy and scalability. Added some notes about M51516L amplifier. - kaneko16.cpp . Fixed sprite delay. Added notes. . Correct Explosive Breaker OKI bankswitching (tied into m_ym2149[0] port B) - konendev.cpp: Hooked up correct RTC and DPRAM - konmedal.cpp . Misc updates. Added hopper, NVRAM and CCU. Added swap endian trampolines. Decode tiles. Driver can play some uPD7759 samples. (All games now playable) . Improved colors for K052109 games Shuriken Boy, Fuusen Pentai and Mario Roulette. Fuusen Pentai is much improved. . Added hackfix for Mario Roulette scrolling, documented observed row/col scroll K052109 tilemaps issues. . Dumped color PROMs for Buttobi Striker . Fixed konmedal debug assert (ID 06969). Fixed out of bounds error in Dam Dam Boy (ID 06818). - konmedal68k.cpp: Fixed dipswitches. Added NVRAM and Coin Hopper to Kattobase Power Pro Kun, Korokoro Pensuke, Pittanko Zaurus and Yu-Gi-Oh Monster Capsule (Games now playable). - micro3d.cpp: Preliminary Motorola MC68901 MFP cleanup. Sweeping rewrite of USART emulation (no longer based on device_serial_interface), adding support for 16x clock prescaler and data transition synchronization, break generation and detection, internal loopback and synchronous mode (machine\mc68901.cpp). - missbamby.cpp: Added notes about undumped games on same hardware - model1.cpp . With the V60 fixes, IC4 of clone Wing War (US) appears to be a valid bad dump. . Correct a few more Virtua Fighter TGP rom bits. Demoted Virtua Fighter to MACHINE_NOT_WORKING. Note: Gameplay mechanics - specifically, collision detection - are significantly broken due to imperfect TGP RAM port emulation or hookup. This is observable in both attract mode and in-game. It seems to break when both characters attack at the same time. . Create "screen" before "ioboard:screen" . Added MACHINE_IMPERFECT_GRAPHICS and MACHINE_IMPERFECT_CONTROLS to Star Wars Arcade. Note: After recent changes, ship models periodically disappear for a frame or two during attract mode and while in-game. There are indeterminate issues with the analog controls in-game. - namcona1.cpp: Updated chip types, keycus and ROM locations - naomi.cpp . Added support for external irq line, used by DIMM Board, to dc_state class (machine\dc.cpp). . Added external irq and reset out lines to ROM Boards base device. The external irq is connected only in NAOMI and NAOMIGD systems. External irq will be used by the DIMM Board. . Added a new device for the 315-6154 system manager chip used in the DIMM Board. It is still incomplete but can be used. . Added an IDE controller for the GDROM to the DIMM Board (machine\naomigd.cpp). Modifications to make it useable with the NAOMI DIMM Board (machine\gdrom.cpp). . Let the DIMM Board see the encrypted des data from the GDROM. Now it only has to reset/reboot the NAOMI below itself. . Send reset request to NAOMI and disable PIC watchdog (machine\naomigd.cpp). Pesky watchdog would reset the PIC and comunication with the SH-4 would stop working . Enable reset from DIMM Board and make games boot. To test set the constant work_mode in naomigd.h to 1. - pgm.cpp: Correct ROM region width and sprite pixel extract algorithm. Reduced unnecessary values. - route16.cpp: Small cleanup - segas16b.cpp: Added analog filters to systems with YM2151 and UPD7759. Reviewers can use USE_NL define to produce unfiltered sound. - segasp.cpp: Added network firmware ver 1.21 - system1.cpp: Fixed color handling, palette RAM handling and bitmap clear behavior. Use indirect entries for palette lookup. Reduced runtime tag lookup and unnecessary lines. Use correct/shorter type values. - taitogn.cpp and zn.cpp . Reduced duplicates related to zn.cpp (Taito GNET uses ZN2 motherboard, same as capcom ZN2 based board). Moved subclass into zn.h. Moved state class declaration into taitogn.cpp. . Minor fixes - twinkle.cpp: Set NTSC mode refresh rate to 59.82 for 240 and 59.94 for 480 screenheight. Fixes sync issues regarding beatmania IIDX games (video\psx.cpp). - twins.cpp . Major cleanups. Added default NVRAM for all games. . Worked around crash after stages 1-5 in Twins and clone Twins (Electronic Devices license, set 2) (ID 07516) - williams.cpp . Eliminated MACHINE_*_OVERRIDE and VIDEO_START_OVERRIDE and magic switches on tilemap config for Williams2. Added numerous subclasses to reduce optional device usage and reduced custom driver init callbacks. . De-virtualize functions to fix clone Blaster (conversion kit) using the wrong override (includes\williams.h) - 30 Test (remake): Updated notes. Added more buttons, inputport array for the buttons and Port D. Small update to artwork. - Breakout [TTL]: Added machine configuration switches for netlist drivers using the fixed frequency monitor (video\fixfreq.cpp). This commit also fixes Breakout crashes on Windows with BGFX video driver (ID 07531). - Brick Zone: Fixed 'Bonus_Life' and 'Difficulty' default dipswitch settings - Cliff Hanger: Fixed 'Short Scenes' dipswitch (ID 04300) - Double Dragon II: Added Layer priority prom - Empire City: Fixed filling the screen red when text or BG layers are hidden (video\stfight_dev.cpp) (ID 06897) - F-1 Super Battle: Added some dipswitches - Funny Strip: Added DIP locations - Gold Medalist: Improved dash event timings, relaxing gameplay qualification requirements. - Golden Crown: Marked clone Golden Crown Hopper (Dutch, Game Card) as not working. It's never really worked since it was added. - Gratia - Second Earth: Use hand crafted graphics ROM for clone (ver 1.0, 91022-10 version). Verified the "tx tiles" 94019_2.030 matches 94019_30ver1.0.30 when decrypted. That only leaves the "bg tiles" as not being verified 100% identical between sets. Leaving marked as BAD_DUMP until a proper ROM redump is supplied. - Gun.Smoke: Remarks based on PCB exploration and FPGA conversion - Happy Fish (V2 PCB, 302-in-1) . Switched ROM size members from u32 to u64 (emu\romload.cpp). Fixes incorrect loading percentages in Happy Fish. . Added preliminary I2C hookup for FS8806 device and more documentation. Added debug print ability for Happy Fish to the ARM7 CPU. . Hooked up preliminary inputs - Indoor Soccer: Flagged clones Indoor Soccer (set 2) and American Soccer as NOT WORKING - Kung-Fu Roushi: Guess cpu type. Code styling. Small tweaks to layout. Use device arrays and templates. - Legend of Hero Tonma: Fixed PCB ASCII layout for clone Legend of Hero Tonma (Gaelco bootleg, Modular System) - Lucky Girl (Wing): Fixed decryption, rom loading and input (Game now playable). - Lucky Lady (Wing, encrypted): Fixed decryption. Game runs now, but needs correct inputs and colors. - Ninja-Kid II: Redumped and correct the JT-104 set from an original UPL PCB - Omega Race: Clean up and document some things - Pop'n Stage EX (ver JB-A): Re-added roms 970jba01 - 970jba10 - Power Spikes: Preliminary sound for clones 1991 Spikes (Italian bootleg, set 1) and (Italian bootleg, set 2). Needs verifying of the completeness of the sound latch hook up and hook up of the OKI M5205. - Relief Pitcher: Documented the difference in versions of Relief Pitcher as per Atari Bulletin - Rushing Beat Shura (SNES bootleg): Fixed protection, inputs and dipswitches (Game now playable). - Stunt Cycle [TTL]: Hook up fixedfreq monitor - Super Volleyball: Very preliminary sound for clone Super Volleyball (bootleg). Needs correct sound latch hook up and hook up of the OKI M5205. - Tetris (set 1): Added UM3482 raw dump and remaining UM3482 ROM areas to clone Tetris (bootleg set 4, with UM3482) - Toki: Added some meat to clone Toki (Modular System), confirm being similar to clone Toki (Datsu bootleg). Added PCB ASCII layout for Toki (Modular System). - Virtua Bowling: Added DIP locations. Correct input for clone Virtua Bowling (Hong Kong, V101HJS). - Vs. Janshi Brandnew Stars: Fixed broken sprites and missing graphics (ID 07533) - Wild Cat 3: Improvements to decryption. Still something important missing, but at least the game seems to work with some prodding. - Williams Multigame: Fixed compile issue - Fixed rom names in cdi.cpp, cgang.cpp, djmain.cpp, itech8.cpp, konmedal.cpp, ms32.cpp, namcona1.cpp, neogeo.cpp, ninjakd2.cpp and relief.cpp - Dipswitch fixes in 30test.cpp, cliffhgr.cpp, goldstar.cpp, hapyfish.cpp, igs011.cpp, jangou.cpp, konmedal.cpp, konmedal68k.cpp, ms32.cpp, splash.cpp and suna8.cpp - Description changes of 30 Test (remake), Atlant Olimpic (Italian bootleg), Cheongchun Ilbeonji (Korea), Denjin Makai (set 2), Driving Force (Galaxian conversion, Seatongrove UK, E-0010), Enduro Racer (bootleg of Rev A, YM2151, FD1089B 317-0013A set), Enduro Racer (bootleg of YM2203, FD1089B 317-0013A set), Enduro Racer (Rev A, YM2151, FD1089B 317-0013A), Enduro Racer (Rev A, YM2151, mask ROM sprites, FD1089B 317-0013A), Enduro Racer (YM2203, FD1089B 317-0013A), Fantasy Story (set 1), 'JT 104 / NinjaKun Ashura no Shou', Lucky Girl (Wing), New Fruit Machine (Ming-Yang Electronic, vFB02-07A), P-47 Aces (ver 1.0), Pop'n Music 1 (ver AA-A, HDD 1.00), Pop'n Stage EX (ver JB-A), Quizard (v1.0, German, i8751 DE 11 D3), Quizard (v1.2, German, i8751 DE 11 D3), Quizard (v1.7, German, i8751 DE 11 D3), Quizard (v1.8, German, i8751 DE 11 D3), Quizard 2 (v2.2, German, i8751 DN 122 D3), Quizard 2 (v2.3, German, i8751 DN 122 D3), Quizard 3 (v3.2, German, i8751 DE 132 D3), Quizard 3 (v3.4, German, i8751 DE 132 D3), Quizard 4 Rainbow (v4.0, German, i8751 DE 142 D3), Quizard 4 Rainbow (v4.1, German, i8751 DE 142 D3), Quizard 4 Rainbow (v4.2, German, i8751 DE 142 D3), Relief Pitcher (Rev D, 07 Jun 1992 / 28 May 1992), Relief Pitcher (Rev C, 26 Apr 1992 / 08 Apr 1992), Relief Pitcher (Rev B, 10 Apr 1992 / 08 Apr 1992) and Super Bagman (version 3?) - Renamed (denjinmk) to (denjinmka), (lsrquiz2) to (lsrquiz2i), (popnstage) to (popnstex) and (sbagman) to (sbagman2) - MAME . VIDEO RENDERING SYSTEM . Changed Direct3D renderer to call GetAncestor() in device_create() to get the root window. This is to make -attach_window work with non-root windows (render\drawd3d.cpp). . Fixed incorrect swapping of red and blue components of screen tint (render\bgfx\chainentry.cpp) . Clamp to edge, same as the other renderers (render\drawogl.cpp). . Higher maximum prescale to 8 (ID 05993). Note: Scale emulated video by this factor before applying filters/shaders. . Cleanups (emu\rendersw.hxx) . DEVICE . Substitute some cases of deprecated tag lookups with device finders . Updated usage of device finders and remove hardcoded cpu tags in chipset devices (lpci\i82371sb.cpp, i82439tx.cpp, northbridge.cpp and pci.cpp) . LUA engine: Allow reading a block of raw bytes for addr_space. Redo space:read_block() to be more rebust and flexible. . PLUGINS . Strip the leading colon from device names as necessary in order to avoid doubling of the root colon (plugins\cheat\cheat_xml.lua). . Made read_config in hiscore LUA plugin more robust (plugins\hiscore\init.lua) . Switched ROM size members from u32 to u64 (emu\romload.cpp). Fixes incorrect loading percentages in Happy Fish (V2 PCB, 302-in-1). . LISTXML . Fixed attribute order in software_lists output. Fixes QMC2 software list display. . The software list device is identified by its tag, the name is tells you which list it will load XML attributes are order-insensitive - compliant validators (e.g. libxml2's xmllint) accepted the XML how it was before. It would be better if parsers didn't enforce rules that don't exist. . Fixed -aviwrite/-mngwrite crash with screenless systems. Can record video with noscreens. Need to use default frame rate for screen-less MNG recording as well. . Don't strip linefeed characters (Ctrl-J) from natural keyboard input except when pasting strings (emu\natkeyboard.cpp) . Eliminated simple_list_wrapper and replaced its only use. The replacement of append with emplace_front alters the sequence, but that should cause no difference in behavior here (util\coretmpl.h, emu\ioport.cpp). . Software List: Avoid "Redundant default attribute value assignment" in hash files - SDLMAME: Process control characters so that the natural keyboard can see them (SDL normally strips these out) (input\input_sdl.cpp) - VGM player: Updated 7 entries to match the vgmrips release - Compiling . Lower number of warnings disabled with Visual Studio from 71 to 27 (scripts\genie.lua and scripts\src\3rdparty.lua). And most of the remaining ones could be removed with simple code modifications. . Fixed some Clang warnings: bugprone-throw-keyword-missing, modernize-use-nullptr, readability-delete-null-pointer, performance-faster-string-find, performance-for-range-copy and readability-redundant-string-cstr . Use C++ library includes - Debugger . Removed the remaining bits of the FASTDEBUG/MAME_DEBUG_FAST introduced in MAME 0.150 (makefile, scripts\genie.lua, emu\emucore.h) . Handle word endianness for address-shifted architectures correctly and safely (tools\unidasm.cpp) 0.217 - 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), Mandinga (Electrogame S.A. bootleg of Amidar), Megatouch 5 (9255-60-50 R0G, Bi-Lingual GER/ENG version), Poitto! (revision C), Raiden (Modular System), Snow Bros. 2 - With New Elves / Otenki Paradise (Nyanko), 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, fujitsu_29lv002tc, ms32spr, pic16c620, pic16c620a, pic16c621, pic16c621a, pic16c622, pic16c622a and pwm_display - CPU . IDT R3041: COP0 initialization . Intel I386 . Show status of some cpu flags in the state debugger view . Unbreak the x87 and flesh out 486 float exceptions a bit. FPU env in v86 mode is like real mode. Set opcode and clear data ptr for instruction that don't access memory. . FENI and FDISI are nops on the 387+ . 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 - SOUND . Philips SAA1099 . Modernized struct member save registration. Use narrower types for members. Clean up code slightly. . Added padding to saa1099_noise to force alignment on Linux i686 . 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) - DEVICE . 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 . Added Fujitsu 29LV002TC Flash . 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. . Fixed corrupted Ninja Emaki continue screen (machine\nb1414m4.cpp) (ID 04344) . 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[0] == ':' 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 - cdi.cpp: Splitted Quizard and associated functions into its own driver class and eliminated MACHINE_RESET_OVERRIDE use in the driver - chihiro.cpp . 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) - cliffhgr.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. Documented empty rom sockets. - dreamwld.cpp . Decapped Dream World MCU . Moved fake protdata into MCU code using the code from Dream World for baryon, cutefght, gaialast and rolcrush. - fcrash.cpp and segas16a.cpp: Fixed assert Expression: dest.cliprect().contains(cliprect) in debug builds - galivan.cpp . 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. Fixed corrupted Ninja Emaki continue screen (machine\nb1414m4.cpp). - 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). - goldstar.cpp . Make Win Cherry show RAM initialization screen . Get Cherry Master '97 to show things. Gameplay is basically fine, but GFX are really broken. - 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 - ltd.cpp: PinMAME sync. Added rom tm4-l.bin to Time Machine (LTD, 4 players). Added roms tzu14_l2 and tzu15_l2 to clones Twilight Zone (P-3) and (P-4). - metro.cpp: Updated to use standard ROM loading macros - midxunit.cpp: Added sound board ASCII layout - model1.cpp . Added internal TGP programs to Sega NetMerc, Star Wars Arcade, Virtua Fighter and Wing War. . Fixed Star Wars Arcade and Wing War (Games now playable). Removed MACHINE_IMPERFECT_GRAPHICS flag in Virtua Fighter. . Slightly hacky background color fix (video\model1.cpp) . More fixes to the internal TGP program of Virtua Fighter . Clear up some stuff. Get rid of the ram collisions (machine\model1.cpp). - 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 - snk6502.cpp . 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. - subsino2.cpp: Fixed inputs cannot be change in new2001, queenbee and squeenb (ID 07524) - 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. - tumbleb.cpp . 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. . Decapped Choky! Choky!, Date Quiz Go Go and Hatch Catch MCUs - zn.cpp: Splitted driver into subclasses, eliminated optional devices and removed MACHINE_START_OVERRIDE and MACHINE_RESET_OVERRIDE - 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 - Legend of Hero Tonma: Fixed clone 'Legend of Hero Tonma (Gaelco bootleg, Modular System)', boots now. GFXs need lots of work. - 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 coin counter 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 and https://www.youtube.com/watch?v=5QhTNrNH-CU. 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 - Fixed rom names in cps1bl_5205.cpp, dec8.cpp, itech32.cpp, karnov.cpp, meritm.cpp, segahang.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), Mandinga (Artemi bootleg of Amidar), 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), Snow Bros. 2 - With New Elves / Otenki Paradise (Hanafram), 'unknown H8 Italian gambling game', 'unknown TMS9980 poker game' and Wacky Gator (US) - Renamed (gondo) to (gondou), (magicbubb) to (magicbubc) and (masmario) to (masmario2) - MAME . VIDEO RENDERING SYSTEM: Clean up render_screen_list code, replacing simple_list with std::list. . DEVICE: 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. . UI . 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) . PLUGINS . 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). . Software List . Get some stuff out of the global namespace (emu\softlist_dev.cpp) . Make -listsoftware and -getsoflist recognise software lists that come from slot cards (mame\clifront.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. 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 (emu\addrmap.cpp). . Minor cleanup, getting rid of a few static helpers (emu\romload.cpp) . LUA engine: Added address_mask and endianness to addr_space library . 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) . Different approach to member initialisation - hopefully work around issue with move constructor; also stop using names that start with underscore followed by capital letter as they're reserved (util\coretmpl.h). . 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 . 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. Reduced network operations when initially loading a machine page. Added rudimentary software lists to machine pages. Display software lists for selected slot options on machine pages (scripts\minimaws). . 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. - Compiling . 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) . Enable visual studio warning C5038 about member initialization order. Also put vs warning options all in one place (scripts\genie.lua). . Enable Clang missing braces warning - it's useful to be able to see when you're initialising a structure or nested array inside an array (scripts\genie.lua). . Fixed ACCESS VIOLATION when using -verbose in assorted drivers (ID 07528). Note: It only happens when MAME is built with GCC 8.3.0, and then only on certain system configurations. - Debugger . 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) . Show opcodes in octal when disassembling code from octal spaces (debug\debugbuf.cpp) 0.216 - New games: Cane and Orbite - New Working games: Super Triv (English questions) - New Non-Working games: Fantasy Zone (medal game, REV.A) (J 990202 V1.000), Fishing Master (971107 JPN), Metabee Shot, Powerful Chance, Rodent Exterminator, Spade and Yu-Gi-Oh Monster Capsule - New clones: Berzerk (revision RC31A), Cadillacs and Dinosaurs (bootleg with PIC16C57, set 3), Captain Commando (bootleg with 2xMSM5205), Channel Three, Cosmic Alien (version II, set 2), Eeekk!, Heavy Unit (Japan, alternate ROM format), JoJo's Venture (Euro 981202), JoJo's Venture (Euro 990108), JoJo's Venture (Euro 990128), Knights of the Round (bootleg with 2xMSM5205, set 2), Operation Wolf 3 (Japan), 'Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release, bug fix revision)', Saturday Night Slam Masters (bootleg with PIC16C57, set 2), Street Fighter II': Champion Edition (Dstreet-6, bootleg), Street Fighter II': Champion Edition (L735 Test Rom, bootleg, set 2), Super Dead Heat (Japan), Super Puzzle (Sang Ho Soft) and Verbena (bootleg of Carnival) - New PinMAME games: Chicago Cubs' Triple Play (German), Mephisto (Stargame) (newer?), Oba-Oba (old hardware) and Space Train (Pinball, old hardware) - New drivers: cps1bl_5205.cpp, cps1bl_pic.cpp and gsspade.cpp - New devices: cane_audio, cy7c131, eistwib, idt7130, m37730s2, mc68hc11f1, mk68564, mk68564_channel, sdlc_logger, smoc501, starfield_05xx_stars, swtpc8212_device and swtpc8212_terminal - New mame.ini options: lowlatency (CORE PERFORMANCE OPTIONS) - CPU . DEC T11: Increased the maximum number of cycles to take interrupt acknowledgment into account. Changed do { ... } while to while { ... } because interrupt acknowledgment can devour lots of cycles before this. Removed the probably mistaken recursive call in t11_check_irqs. . Hitachi SH-2: Implemented watchdog timer . Intel 8086 . Disabled warning when executing lock (0xf0) instruction (why warn at all?) . Fixed pathological case where jumping into pages of FF-prefixed invalid opcodes could lock up MAME . Mitsubishi M37702M2: More accurate mapping of port and interrupt registers. De-duplicate address maps. . MOS Technology M6502: Eliminated the disable_cache hack. Now that 'direct_read_data' has been replaced with 'memory_access_cache', which is better equipped to deal with dynamic banking, there should be all the more reason to put an end to this pernicious antipattern. . MOS Technology M65C02: 65C02 opcode timing and bus usage corrections: BBR and BBS use one or two extra cycles when the branch is taken, like other conditional branches. TRB and TSB perform an extra read of the operand instead of an extra write. . Motorola MC68000: Added more accurate cycle counts to SCC68070 (m68000\m68kcpu.cpp), distinguished from MC68000 and MC68010. . Motorola MC68705xx: Calculated min_cycles and max_cycles once at device_start time (m6805\m6805.cpp) . Motorola MC68HC11 . Clock is internally divided by 4. Added preliminary MC68HC11F1 type. . Fixed size of fetched operand for ADDD indexed modes (mc68hc11\hc11ops.hxx). This appears to have accidentally regressed in 0.212. . Increased some MC68HC11 clocks to compensate for newly emulated internal divider (30test.cpp, hitpoker.cpp and skeetsht.cpp) . Emulated FDIV instruction . NEC V5x . Moved remappable IO handler into seperated space. Fixed remapping IO behavior (nec\v5x.cpp). Added timer 2 control input (nec\v5x.h). . Emulated internal/external timer clock input selection. Internalized CPU clock divider for V40/V50. . Nintendo & SGI Reality Signal Processor RSP: Added 32-bit opcode alignment for disassembly - SOUND . Ensoniq ES5505/ES5506 . Implemented ES5505/5506 difference. Fixed spacing. Various updates. Reduced duplicates, unnecessary lines and #define macros. Implemented reset behavior (RESB in ES5506). Added notes. Fixed filter behaviors. Sync to official documents. More constant-expandable volume lookup tables. References: http://zine.r-massive.com/ensoniq-technical-documents-and-schematics/. . Correct algorithms. Allow signed shifting. Fixed envelope and volume. . K007232 PCM Controller: Added optional WAV logging of PCM samples . Namco C352: Added optional compile-time PCM logging and cleaned up some code . TI SN76477 CSG: Replaced the char array with a std::string in sn76477_device::open_wav_file to override possible buffer overrun. Minor cosmetic change in a boolean expression in sn76477_device::sound_stream_update. Fixed LOG_WAV_ENABLED_ONLY (m_enable has to be checked only if LOG_WAV_ENABLED_ONLY is set). Added log data to the right channel of the wave, accordingly to the definition declared in LOG_WAV_VALUE_R. Fixed an error with tag() returning a ':' and generating a filename not valid in Windows environment. . Yamaha YMW-258-F: Added optional compile-time sample logging - DEVICE . 8042 Keyboard/Mouse Controller: Recognize mouse reset command . Cypress CY7C131 8-bit Dual-Port SRAM with Interrupts: Device-fied CY7C131 Dual port SRAM (firebeat.cpp and twinkle.cpp) . Discrete Netlist . Preprocessor enhancements. The builtin preprocessor now behaves closer to CPP: Supports macro parameters (i.e. define x(a) a), stringification (i.e. define x(a) #a) and concatenation (i.e. define x(a) a ## _ext). In addition, error reporting now provides a source context including the include history. . Code maintenance. Removed code no longer used. Added noexcept where appropriate. Splitted pparser.[c|h] into ppreprocessor and ptokenizer. Smaller optimizations, e.g. use of std::size_t. Fixed lint warnings. . Improved localized storage. Removed some trampolines. . Fixed some bad design in netlist solvers. Moved solver stuff into separate namespace. New namespace "solver". Minor ptime modifications. Align matrix population along the various solvers and deleted dead code. . Added ability to compile using float instead of double. Specifically the solver as well as the infrastructure now can have their own floating point type. Currently this is only an academic exercise since numerically demanding circuits like kidniki only work with double/double support. Using float here is pushing numerical stability over the limits. The long term design goal is too have the matrix type (double/float) being a parameter. . Converted constexpr constants into constexpr inline functions . Fixed a bug in the parray constructor. Replaced NL_NOEXCEPT with noexcept where appropriate. . Support for float, double and long double solvers. Added new solver parameter FPTYPE. This determines in which floating point domain the linear system is solved. May be one of "FLOAT", "DOUBLE" or "LONGDOUBLE". Added option "--fperr" to nltool. This enables floating point exceptions. This helps debugging the code under gdb. The purpose of this going forward is to have more choice in optimization. Non-dynamic systems should be just fine in the float domain. Dynamic systems (i.e. diodes, bjts, mosfets) should in general work with double. Certain edge cases may require long double resolution. . Added RELTOL/VNTOL solver parameters. Type safety. The newly added RELTOL and VNTOL parameters implement Newton convergence checks comparable following other SPICE implementations. The ACCURACY solver parameter now is only used for convergence checks in iterative solvers. In addition, type safety was significantly improved and a lot of "magic" numbers are identifiable now. . Improved readability. Renamed cast member of the constants struct to magic to clearly identify magic numbers. Introduced nlconst struct inheriting from plib::constants to make code better understandable. . Added __float128 support. float128 is a GNU extension delivering true 128 bit floating point support. . Separates code out into pmath.h and pstonum.h. Optimized pfmtlog.h a bit. . Switched nl_pongf and nl_rebound to dynamic timestepping. Pong (Rev E) and Rebound (Rev B) now runs about 20% faster than previously. . Explicitly raise exceptions instead of leaving this to log.fatal(). Correct a number of cppcheck findings. . "nltool -c docheader" now scans sources and creates usage focussed doxy documentation for devices. Very early stage, but works. For an example, please see ne555 source. Started migrating to pure C++, i.e. "//" comments. Added cppcheck configuration to netlist/build. . Switch to VS 2019 community and fix standalone build . First steps on the way to calculated parameters. This commit is a first step towards using formulas in parameters, i.e. MAINCLOCK(clock, 20 * 30). The intention is to improve readability and scalability. Since device registration already provides all necessary information about parameters, the code to create an include file for all devices has been improved. Long term, this will remove the need for device specific header files. In addition going forward devices will accept either no connections or all specified connections, i.e. TTL_7400_NAND(name, chip1.2, chip2.3) or TTL_7400_NAND(name)NET_C(...)NET_C(...). This will allow to remove all duplicate definitions which are currently necessary, i.e. TTL_7400_NAND/TTL_7400_GATE. . Moved memory pool to netlist_state_t. Added memory allocation stats to verbose output. nl_assert no longer throws, first step to remove NL_EXCEPT macro. . Fixed a code in the netlist creation which caused multiple proxies to be created for output->terminal connections. A nice side effect of this fix is a performance increase ~9% for kidniki and ~4% for pong. Speaking about pong ... maximum is 490%. Dice is running at 280 FPS/60 FPS = 466%, however without any analog emulation. Replaced NL_NOEXCEPT with noexcept. assert is now exception-free. . Proxy and power terminal hack removal: Devices ttlhigh and ttlhow are no longer automatically created. All logic input devices (e.g. TTL_INPUT, LOGIC_INPUT) now need to have their power terminals (VCC, GND) connected. This opens the route for more appropriate proxy devices but comes at a cost. If the connections are omitted your circuit will not work as expected. Example: LOGIC_INPUT(I_SD0, 1, "AY8910PORT") NET_C(VCC, I_SD0.VCC) NET_C(GND, I_SD0.GND). Removed proxy information from terminal objects. This was replaced by a lookup hash whose life-span does not exceed netlest setup. These changes enable the removal of a number of hacks from the source going forward. . Removed DUMMY_INPUT. NC (not connected) pins should now use NC_PIN. If a NC_PIN is actually connected, an error will be logged and validation will fail. Enabled "extended" validation. This will catch now if power terminals are not connected. Added const and noexcept where appropriate. Fixed the 7414 Schmitt-Trigger device to use nld_power_pins. . Added VECTOR support: Fixfreq now supports VECTOR screens automatically. For now the default remains to be RASTER since BGFX does not support VECTOR screens. Nevertheless please expect changes in the video output. Video output is now collected timing-exact, i.e. with subpixel accuracy. Only during screen_update this is converted and scaled to the bitmap. There may be changes due to rounding in comparison to current rendering. . Added 7492 Divide-by-12 Counter and 7442 4-Line BCD to 10-Line Decimal Decoder . DS1302 Timekeeper: Subtle fix for CE writes. Improved logging. . Floppy: Get rid of the hardcoded FLOPPY_n tags as much as practical, mostly adding device finder arrays in their place. Moved remaining functions using FLOPPY_n down into appldriv and sonydriv (both of which may be eliminated once FDC emulation is modernized). Replaced CLEAR_LINE and ASSERT_LINE with 0 and 1 (these were being inaccurately used to represent active-low control line states) (imagedev\flopdrv.cpp). . Hitachi HD44780 A00 LCD Controller: Make initialization procedure slightly less strict than datasheet implies. Turn logging back off. . Intel 8251 USART: Required initial state to enable receiver of a 8251a and also to avoid sending start bit to diserial on reset and get framing error. . Konami Custom: Less crude hack to clean tilemap (video\k054156_k054157_k056832.cpp) . MB8421 8-bit Dual-Port SRAM with Interrupts: Support variable size and data width. Use template for base device. Add notes. . RS232 Port: Put the swtpc8212 terminal in the default RS-232 devices . Sega Custom . Sega 315-5124 SMS1 VDP: Allow dividing hcounter related to using LCM. Fixed color related to hardware measured value. . Sega 315-5313 Megadrive VDP: Allow LCM scaling of horizontal resolution . Sega 315-5649 I/O Controller: Populate features for future use . Z80 SIO: Fixed some log messages. Verified sync byte behavior for SDLC/HDLC, LOG message details added. - cave.cpp and mcatadv.cpp: Added tile size check related to VRAM is found. Moved mirroring map into driver (video\tmap038.cpp). This fixes graphical bug in attract mode of DoDonPachi (ID 07479). - cedar_magnet.cpp: Added PCB ASCII layout - chihiro.cpp: Fixed memory leaks in Xbox USB - coolridr.cpp: Get rid of redundant hacks - cps1.cpp: Added C-Board PAL dumps to mercs, mercsu, mercsur1, mercsj, sf2ee, sf2ue, captcomm, captcommr1, captcommu, captcommj and captcommjr1. - ddz.cpp: Make this driver no more broken than it was before - deco32.cpp: Fixed region endianness. Still not sure the reversed loading order is correct (the data here is unused currently). - epos.cpp: Moved epos-on-pacman members from pacman_state to derived epospm_state - flstory.cpp . Dumped and hook up M68705 MCU for Victorious Nine . Added DIP locations to The FairyLand Story - galaga.cpp . Implemented accurate starfield for Galaga and Bosconian based on reverse engineering the Namco 05xx chip . Changes: 1. Regenerates starfield colors based on LFSR state for every frame. 2. Pixel accurate to Namco original 05xx. 3. Restores one line horizontal starfield shift for every 256 vertical pixel shifts. 4. Properly handles LFSR reset (_STARCLR). 5. Restores missing 4 stars from previous implementations. 6. Fixes potential issue with the number of stars on screen at any one time. 7. Restores 4 pixel/line scrolling capability (not currently used for any driver). Documentation and notes have been added inline to the code for the galaga video driver. . Note: The starfields for Galaga and Bosconian are driven by a custom Namco 05XX chip that is contains an internal 16-bit Linear Feedback Shift Register (LFSR) and all the necessary support logic for generating a 6-bit RGB signal. The chip is fed all the required signals from the video system to allow it to output a colored "star" at pseudo-random intervals and to scroll these stars in both horizontal and vertical directions. The chip can generate a total of 256 stars in 4 banks of 64 for each vertical frame. Two of these banks of stars will be active at any one time, controlled by two starfield selector pins. Some stars will be hidden by the vertical and horizontal blanking, so there will always be less than 128 stars on screen at one time. - lethalj.cpp: Correct XTAL value - megaplay.cpp: Use LCM of support horizontal resolution in both VDPs. Fixed SMS VDP overlay (ID 03829). - midqslvr.cpp: Added I/O board readme/documentation - mpu4vid.cpp: Clean up driver a little - nss.cpp, sfcbox.cpp and snesb.cpp . Fixed rapid vertical scrolling in rexronan and other games (video\snes_ppu.cpp) . Fixed MAME crashes when starting a game with (MESS) SNES (PAL) (ID 07472) . Apply raw parameters as (MESS) SNES, fixes black screen in snesb.cpp (ID 07473) . Fixed doubled-up frames on interlaced games, off-by-one-line graphical glitches in some games and out-of-bounds vector accesses on interlaced SNES games. . Ported over more of BSNES's PPU-fast implementation. Fixes many bugs, possibly causes more. . Fixed (MESS) Super Mario World sprite blending regression (video\snes_ppu.cpp) . Converted OAM code from BSNES ppu-fast - peplus.cpp: Redumped CG roms for pepp0596 and pepp0598 - photoply.cpp: BIOS region is 8-bit, so map it as such. - popeye.cpp . Fixed final game resolution output is different at original game (ID 05600) . There are now three rendering modes selectable via machine config: False progressive: Same as before. Interlaced (scanline skip): only the current field is drawn with the other field's scanlines blacked. This gives the same flickering impression as interlaced display. Interlaced (bitmap): Bitmap is constructed from odd and even fields. Result is comparable to PAL/NTSC videos played back on progressive displays without additional processing. Some modernisation, all members initialized in constructor. - psikyo.cpp: Updated notes. All games uses PORT_VBLANK and legacy screen parameters (which is already bad per-se), with also naive and unlikely measurements (i.e. exactly 59.30 or 59.90 Hz). The most blunt examples of something being wrong with timings are with Gunbird and Tengai: They both have FOUR frames of input lag, the real thing doesn't sport anything like that. All games are marked with MACHINE_IMPERFECT_TIMING until somebody provides accurate H/Vsync signals for at least one game of this driver. - qix.cpp . Added machine side effects and unmapped reads . Fixed inputs for Kram and Zoo Keeper. Fixes unable to start game or use first coin slot (ID 07386). - stv.cpp: Moved per-game I/O into memory maps. Simplified code. - taitogn.cpp: Make region endianness consistent with everything else - taitojc.cpp: Correct "gfx" region widths and rename for clarity - taitopjc.cpp: Fixed some region definitions - tatsumi.cpp: Correct region widths - whitestar.cpp: Added stub configuration for sets using ARM7 instead of BSMT2000 - 30 Test (Remake): Fixed inputs and sound (ID 07487) - Air Rescue: Better way of copying DSP code and data - Hayaoshi Quiz Nettou Namahousou : Fixed final round and flame text priorities - Legend of Hero Tonma: The MCU of clone Legend of Hero Tonma (Japan, bootleg with i8751) is running in external mode on daughtercard. Same data as lohtj just padded with 0xff. - Oli-Boo-Chu: Clean up some bitscanning and indentation - Pacman Club / Club Lambada: Descrambled clone Pacman Club (set 1, Argentina). Boots but resets during attract. - Pong (Rev E) external [TTL]: Fixed pong.netlist rom length - Raiden: Fixed graphical regression in clones Raiden (set 3) and Raiden (US set 3). Improved set descriptions. - Roc'n Rope: Added cpu/video board pal10l8.6g - Saturday Night Slam Masters: Fixed clone (bootleg with PIC16c57, set 1) scroll priorities and Player 4 - Space Invaders: Fixed selection of game B in clone Jatre Specter; seems it hadn't worked since 0.139. - Street Fighter II': Champion Edition: Added PAL dumps to clone sf2cems6a, sf2cems6b and sf2cems6c - Super Dead Heat: Enabled save state support - Super Speed Race Junior: Fixed input and 'Difficult' dipswitch (ID 07492) - Super Triv (English questions): Fixed maincpu rom loading (Game now playable) - Tekken 4: Fixed year info (ID 07489) - Wild Cat 3: Very preliminary and incomplete data decryption - Fixed rom names in berzerk.cpp, bfm_sc4.cpp, cinemat.cpp, cps1.cpp, flstory.cpp, jack.cpp, m72.cpp, spdheat.cpp and zn.cpp - Dipswitch fixes in cps1.cpp, flstory.cpp, ggconnie.cpp and ssrj.cpp - Description changes of Armed Formation (Japan), Beastie Feastie (Pac-Man conversion), Berzerk (revision RC31), Berzerk (revision RC28), Berzerk (French Speech, revision RC31), Berzerk (German Speech, revision RC32), Berzerk (Spanish Speech, revision RC32), Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM5205, set 1), Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM5205, set 2), Cosmic Alien (version II, set 1), Dragon Breed (World, M72 PCB version), Eeekk! (Pac-Man conversion), Frenzy (revision RA1), Image Fight (World), Knights of the Round (bootleg with 2xMSM5205, set 1), Knights of the Round (bootleg with 2xMSM5205, set 1), Ninja Spirit (World), Raiden (set 3, newer hardware), Raiden (US set 2, SEI8904 hardware), Raiden (US set 3, newer hardware), Saturday Night Slam Masters (bootleg with PIC16C57, set 1), Solar Quest (rev 10 8 81), Street Fighter II': Champion Edition (L735 Test Rom, bootleg, set 1), Street Fighter II: The World Warrior (bootleg, set 1) and Super Dead Heat (World) - Renamed (berzerk) to (berzerka), (berzerk1) to (berzerkb), (eeekk) to (eeekkp), (jojo) to (jojou), (jojor1) to (jojour1) and (jojor2) to (jojour2) - MAME . VIDEO RENDERING SYSTEM . Make internal layout compression type a scoped enum (only zlib is supported still, but at least the values aren't magic numbers now) . Set global locale when parsing with nanosvg (emu\screen.cpp), fixes SVG display issues when locale is not English. Be strictly POSIX compliant, reduced fragmentation and get rid of an unused member (emu\screen.cpp). Only clear or allocate scan bitmaps in excess of the previous height. Fixes blank portions of smw2u, possibly others (emu\screen.cpp). . OpenGL render: Fixed bug preventing adjustment of gamma, brightness and contrast. Starting MAME with defaults, i.e. gamma == 1.0, no RGB palette will be allocated. If gamma than is changed, a new palette will be allocated. But the texture will not be updated because the palette is not checked. This fix will check for palette changes. Note: If the palette is changed inplace, i.e. without reallocation, this will fail. The correct fix would be that the texture palette is not only a pointer to rgb_t * but to texture_palette_type. texture_palette_type would hold the pointer, the length and a sequential id which is checked in addition to pointer equality (render\drawogl.cpp). . BGFX . Fixed waitvsync for BGFX vulkan backend (bgfx\src\renderer_vk.cpp). Note: Currently waitvsync is broken in the BGFX vulkan backend. The option is just ignored and a mode waiting for vsync is selected. This also breaks throttle. -nothrottle doesn't work. These changes fix this. If available a non-syncing mode is used if -nowaitvsync is used. . Fixed resource leak (bgfx\chain.cpp) . Fixed 'Tetris The Grand Master' crash on resolution change (bgfx\chainmanager.cpp) . Fixed broken rendering when using bgfx_screen_chains none (render\drawbgfx.cpp). Fixes 'Spider-Man: The Videogame' crash in few seconds (ID 07495). . Fixed assertion when running LaserDisc games (e.g. Fire Fox) with any bgfx backend. Fixed MAME crashes in any driver which configures a rgb32/argb32 screen, trying to change any of the Brightness, Contrast or Gamma sliders. . Fixed edge case around B/C/G settings. If e.g. Kid Niki is started with default gamma (1.0), changing gamma with slider doesn't work. Setting to a gamma <> 1 and restarting MAME will apply the gamma (render\drawbgfx.cpp). . Apply line width provided by renderer (render\drawogl.cpp) . Fixed Laserdisc games showing four squares instead of LD video with -bgfx_backend OpenGL . DEVICE . There can only be one "perfect quantum" device - enforce that only the root machine can set it, as allowing subdevices to will cause weird issues with slot cards overiding it . Allow multiple devices to set maximum quantum and use the most restrictive one (it's maximum quantum, it would be minimum interleave) . Got rid of device_slot_card_interface as it wasn't providing value. Added a helper template to reduce certain kinds of boilerplate in slots/buses. . Cleaned up some particularly bad slot code (plenty more of that to do), and made some slots more idiomatic. . Start putting noexcept on things that have no business throwing exceptions, starting with diimage. also fix a slight bug in the interface matching function for software list parts. . Make many device_execute_interface functions noexcept, including the "information" overrides. This also covers several time-related functions in attotime, running_machine and emu_timer. Added as_khz and as_mhz to emu\attotime.h. . Make devdelegate more like DEVCB for configuration. This is fundamental change to show device delegates are configured. . Device delegates are now aware of the current device during configuration and will resolve string tags relative to it. This means that device delegates need a device to be supplied on construction so they can find the machine configuration object. There's a one-dimensional array helper to make it easier to construct arrays of device delegates with the same owner (I didn't make an n-dimensional one because I didn't hit a use case, but it would be a simple addition). . There's no more bind_relative_to member - just call resolve() like you would for a DEVCB. There's also no need to cast nullptr when creating a late bind device delegate. The flip side is that for an overloaded or non-capturing lambda you'll need to cast to the desired type. . There is one less conditional branch in the hot path for calls for delegates bound to a function pointer of member function pointer. This comes at the cost of one additional unconditional branch in the hot path for calls to delegates bound to functoids (lambdas, functions that don't take an object reference, other callable objects). This applies to all delegates, not just device delegates. . Address spaces will now print an error message if a late bind error is encountered while installing a handler. This will give the range and address range, hopefully making it easier to guess which memory map is faulty. . For the simple case of allowing a device_delegate member to be configured, use a member like this: template void set_foo(T &&...args) { m_foo_cb.set(std::forward(args)...); }. For a case where different delegates need to be used depending on the function signature, see src\emu\screen.h (the screen update function setters). . Device delegates now take a target specification and function pointer. The target may be: * Target omitted, implying the current device being configured. This can only be used during configuration. It will work as long as the current device is not removed/replaced. * A tag string relative to the current device being configured. This can only be used during configuration. It will not be callable until .resolve() is called. It will work as long as the current device is not removed/replaced. * A device finder (required_device/optional_device). The delegate will late bind to the current target of the device finder. It will not be callable until .resolve() is called. It will work properly if the target device is replaced, as long as the device finder's base object isn't removed/replaced. * A reference to an object. It will be callable immediately. It will work as long as the target object is not removed/replaced. . The target types and restrictions are pretty similar to what you already have on object finders and DEVCB, so it shouldn't cause any surprises. Note that dereferencing a device finder will changes the effect. . The order of the target and name has been reversed for functoids (lambdas and other callable objects). This allows the NAME macro to be used on lambdas and functoids. For example: foo.set_something(NAME([this] (u8 data) { m_something = data; }));. I realise the diagnostic messages get ugly if you use NAME on a large lambda. You can still give a literal name, you just have to place it after the lambda rather than before. This is uglier, but it's intentional. I'm trying to drive developers away from a certain style. While it's nice that you can put half the driver code in the memory map, it detracts from readability. It's hard to visualise the memory range mappings if the memory map functions are punctuated by large lambdas. There's also slightly higher overhead for calling a delegate bound to a functoid. If the code is prettier for trivial lambdas but uglier for non-trivial lambdas in address maps, it will hopefully steer people away from putting non-trivial lambdas in memory maps. . There were some devices that were converted from using plain delegates without adding bind_relative_to calls. I fixed some of them (e.g. LaserDisc) but I probably missed some. These will likely crash on unresolved delegate calls. . There are some devices that reset delegates at configuration complete or start time, preventing them from being set up during configuration (e.g. devices\video\ppu2c0x.cpp and src\devices\machine\68307.cpp). This bgoes against the design principles of how device delegates should be used, but I didn't change them because I don't trust myself to find all the places they're used. . UI updates . Made DIP switch display scale with UI font and improved layout . Improved analog control display giving an indication of neutral position . Fixed menu heading sizes not being recalculated after font is changed . Cleaned up memory management in some more menus . Don't walk the directory every time the crosshair menu is refreshed . Sort crosshair pictures. Show a selector menu when crosshair picture item is selected. . Make input mapping menus more efficient - most of the properties of a field won't change. . Get rid of the pool allocator in base menu class - it was encouraging bad design. Get rid of some pointless members of input mapping menu. . Allocate bitmap in place rather than using global_alloc; explicitly initialize each member of ui_gfx_state (ui\viewgfx.cpp). . Hook up focus next/focus prev on system/software selection menus (Tab and LShift-Tab, respectively by default). Allow joystick buttons to be used to change focus on system/software selection menus. Fixed bug that allowed focus to move to hidden panels. If panel is collapsed while focused, return focus to systems/software. . UI show feedback when configuring an input to give the user more of an idea of what's going on . When modifying an input mapping, only cycle default/none if UI_CANCEL is the first thing pressed. Note: If you hit UI_SELECT to modify an input then hit UI_CANCEL immediately, it will cycle default/none; however if you press any other input first and then hit UI_CANCEL, it will just back out the change. . Support PORT_CONDITION for PORT_ADJUSTER. PORT_CONDITION can now enabled/disabled the display of PORT_ADJUSTER sliders in the UI. . UI input mapping menu updates: When a switch-type input is selected, show feedback when it's pressed. If an invalid code is entered (e.g. only negatives) abandon the change rather than cycling default/none. If an invalid code is entered display a message until the user takes some other action. . UI input menu: treat codes containing a postive and negative of the same thing as invalid (e.g. A S not A) . UI updates: Re-wrote localisation loader: Sanitise input, check for buffer overruns, fixed endianness handling, keep data in a single allocated block, do a single hash lookup when fetching a string and print diagnostic output when things go wrong. Sort UI language menu so it's not in whatever random order the filesystem yields. Fixed most menu code to adjust L/R border for UI aspect ratio and pass container to render manager when getting UI aspect ratio. Converted a couple more things to use smart pointers. . 3rdparty . Sync BGFX, BX and BIMG with upstream. Fixed the hlsl fs_chroma.sc matrix transposition properly. . INPUT . Replaced output().set_value with output finders . Display emulated analog input values on the anaolg controls menu screen . Removed up to one frame of input latency. Makes MAME virtually lagless on VRR monitors. Use empty parentheses and clean interface member calls. Added new option -lowlatency (-lolat) to make this feature optional. . Removed internal autofire functionality as there's a plugin for that now . Recognized GUIDs for joysticks, allows stable input ID mapping (input\input_sdl.cpp). . Updated emu\input.cpp: constexpr crusade on input_code and input_seq and some very slight optimisation to input_seq. seq_poll* is a frontend function and had no business being in the core, so it's a utility class now. seq_poll* now exposes a bit more detail, enabling improved interaction on the UI inputs menu. Global state is reduced a little, but the poll_* functions are still members of the input manager with global state. . Better than 50% reduction in compile time, and better locality for static data. Better encapsulation, const correctness and noexcept usage (emu\ioport.cpp). . LUA engine: The LUA engine has been updated in a way that maintains source compatibility with existing LUA scripts. This is less than ideal, but it minimises impact. Ideally someone (possibly me) will be able to expose the input sequence poller helper properly. I tested the changes with the cheat and autofire plugins and I was able to assign sequences. However I found two issues: It's seems impossible to assign a more complex sequence than a single key/button in the autofire plugin (i.e. no AND or NOT conditions, I confirmed this is pre-existing, not a regression), and in both the cheat and autofire plugins I found it a bit unwieldy trying to enter a complex sequence without live feedback of the sequence as it's built (this was also applicable to MAME's own input mapping menu until I added the live display yesterday). . Moved some stuff to an anonymous namespace (emu\emumem.cpp), and fully specialise templates that are no longer member classes. . Changed emu_fatalerror to use util::string_format semantics . Eliminated nmi_line_pulse usage in espial.cpp, galaga.cpp, mainevt.cpp, superwng.cpp and zodiack.cpp . Modernized VBLANK interrupts for mainevt.cpp, superwng.cpp and zodiack.cpp . Fixed invalid std::vector<> lookup in util\aviio.cpp. This fixes a case where: m_soundbuf_samples == processedsamples, processedsamples > 0 and processedsamples * stream->channels() == m_soundbuf.size(). In this scenario, the std::memmove() would do nothing (moving zero bytes), but the operator[] on the second parameter to std::memmove() overflows the array. This can be benign in optimized builds (because the third parameter to std::memmove() is 0), but on debugging builds this can cause an assert. . Assert aborts on failure - abort is not an exception. Conditional noexcept is an antipattern, get rid of it (emu\device.cpp, diexec.cpp, emucore.h, machine.h and schedule.cpp) . Updated emu\schedule.cpp . Don't create pipe unless requested (osd\modules\file\winptty.cpp) . PLUGINS . Disconnect if timed out (plugins\discord\init.lua). Only time out input sequence entry if nothing is entered (plugins\autofire and plugins\cheat). . Some simplifications and bugfixes (plugins\cheatfind\init.lua). Show pressed buttons when setting hotkeys (plugins\cheat\init.lua). Permit input sequences (plugins\autofire). . Fixed renamed set in hiscore.dat . Fixed ROM region width in many drivers. Note: Many of these ROMs are really accessed as bytes or 16-bit words rather than at the native 32-bit or 64-bit widths, thanks to unemulated dynamic bus sizing and/or bridge controllers. . Fixed a buffer overrun in wavwrite (buffer half requried size). Slightly reduced dependencies and overhead in wavwrite. . Print the name of non-fundamental save_items when fatalerroring, for easier debugging (emu\save.h) . Get rid of global_alloc/global_free (sound\coreaudio_sound.cpp) . Don't attempt to load a translation file if the language setting is empty (mame\language.cpp) - MAC OS X . Work around Retina issue on MacOS Catalina until SDL catches up (render\drawogl.cpp) . SDL -video auto on MacOS now selects BGFX rather than OpenGL for future-proofing (sdl\video.cpp) . Get rid of allocWithZone as it's ignored on 64-bit ABI. Missed a couple of Mac debugger things (debugger\osx\disassemblyview.mm and memoryview.mm). - Compiling . Fixed MSVC compile (netlist\plib\palloc.h) . Fixed some incorrectly marked up stuff in build scripts . Eliminated auto_alloc in bartop52.cpp + maxaflex.cpp (video\antic.cpp), cischeat.cpp, irobot.cpp, konamim2.cpp (video\3dom2_te.cpp), wheelfir.cpp and audio\dcs.cpp . Workaround to fix cross compilation to x86 from a x64 host (makefile) - Debugger . Get rid of some more simple_list in core debugger code . Made new disassembly windows in Qt debugger default to current CPU . Make debugger view startup more efficient - it's still not going to be practical with 200k save items, but it's better than before. 0.215 - New games: Super Dead Heat - New Working games: Gold Medalist (set 2, Alpha68k III PCB), Gold Medalist (bootleg, Alpha68k III PCB), Golfing Greats, Quartet (8751 315-5194), Quartet (Rev A, 8751 315-5194) and Super Stingray - New Non-Working games: El Dorado, Kursaal Darts and Vortex (Island Design) - New clones: 19XX: The War Against Destiny (Euro 960104), Bank Robbery (Ver. 1.23), Beastorizer (USA, Jun 21 1997), Bomberman (Version 6.6), Buggy Boy/Speed Buggy (cockpit, rev. B), Derby Owners Club World Edition (Rev A), Dragon Breed (Japan, M72 PCB version), Hard Head (bootleg, set 3), Megatouch III Turnier Edition (9255-30-50 R0F, Bi-Lingual GER/ENG version), P-47 - The Freedom Fighter (World, bootleg) and Vs. Super Mario Bros. (bootleg with Z80, set 3) - New AGEMAME games: Rollamatic 5-Line Special (Barcrest) (MPU3) - New PinMAME games: The Flintstones (LX-3), Terrific Lake and Top Sound (French) - New drivers: alpha68k_i.cpp, alpha68k_n.cpp, island.cpp and spdheat.cpp - Removed drivers: laz_awetoss.cpp - New devices: adc0804, aic580, alpha68k_palette, boothill_audio, clowns_audio, desertgu_audio, dogpatch_audio, dplay_audio, gmissile_audio, gunfight_audio, hd64180rp, hd647180x, hd6805u1, invad2ct_audio, invaders_audio, isa_epc_mda, isa_pcmidi, m4_audio, mb91101a, nmk16spr, phantom2_audio, px320a, seawolf_audio, spacwalk_audio, spcenctr_audio, sunsoft_5b_sound, tmap038, v40, z80182 and z8s180 - CPU . Hitachi H8: Make debug PC adjustment and breakpoints actually work . Hitachi HD6805U1: Added HD6805U1 type for future use (m6805\m68705.cpp) . Hitachi SH-2/SH-4: Don't emit fast RAM accesses when the debugger is enabled . IBM PowerPC 4xx/6xx: Fixed debug flag test causing fast RAM accesses to be erroneously emitted (powerpc\ppcdrc.cpp). Hopefully fixes unusual breakpoint/watchpoint behaviour. . Intel 8257 DMA Controller: Various small improvements. Synchronize at a couple of critical points. Allow read side effects to be suppressed while debugging. Improved TC timing. Allow HLDA to abort DMA cycle. Don't clear request input state when device is reset. . Intel I386: Prevent (MESS) ISA-386U30 REV.2.2 from hanging MAME (i386\i386segs.hxx) . NEC uPD7810: Fixed problem with first INTF2 being ignored . NEC V50/V53: Separated V50/V53 common peripherals and former device from V33 base. Added V40 type for future use. . MIPS-III: Log a message if a "fast" register is set via the debugger . Motorola MC6801: More logging and reduced unneeded updates of Tx line . Texas Instruments TMS34020: Implemented CLIP and SETCDP opcodes (tms34010\34010ops.hxx). Fixed out of bounds read, when extra logging is enabled . Toshiba TLCS-90 MCUs: Separated TMP90840 and TMP90844 disassemblers (cpu\tlcs90\tlcs90.cpp) . Zilog Z180 . Splitted generic Z180 device into several subtypes (Hitachi HD64180RP, Hitachi HD647180X MCU, Zilog Z80180 and Zilog Z8S180). HD647180X now has specific device emulation for the internal PROM, RAM and parallel ports. . Added internal clock divider for Z180 family and adjust CPU clocks in many drivers to compensate. Reduced logical address width to 16 bits. - SOUND . Added position description to 'subwoofer' (emu\speaker.h) . Taito Ensoniq Sound System: Slight XTAL correction . Yamaha YMF278B OPL4: Allow scaling for FM DO2 output - DEVICE . ADC0804 A/D Converter: Emulated ADC0804 and added device to various drivers (cischeat.cpp (armchmp2, scudhamm), nemesis.cpp (citybomb, hcrash), overdriv.cpp, polepos.cpp, segae.cpp, segahang.cpp, segaorun.cpp, segaxbd.cpp, tmnt.cpp, wallc.cpp and wecleman.cpp) . Cassette: Added bitwise operators for cassette_state (imagedev\cassette.cpp) . CXD1095 I/O Expander: Default clock to 0 . Discrete Netlist . Switch to C++ streams. Removed the home-brew implementation pstreams and replaced those with C++ streams. . Fixed a number of minor issues and warnings. Removed const on return types. . Moved more code in headers and deleted some cpp files. Code simplification. . Fixed SUBMODEL. Moved to strongly typed matrix sort constant. Extend maximum matrix size to 512x512. Optionally do parallel processing based on total operations. Templatize GMRES solver loops. . Avoid duplication in solver parameter code. Matrix sort type is now a parameter. . Use unique_ptr where possible. GMRES update and new preconditioner. Maintenance and lint fixes. . Improved code readability and simplifications. kidniki uses frontiers again (speed improvement). . Separated solving linear systems from underlying matrix (netlist\plib\mat_cr.h) . Moved netlists out of driver code into audio\ or machine\ as nl_xxx.cpp files. Identified and documented extended validation. . Optimized the core queue dispatching logic. Minor performance increase. Fixed a number of bugs in parray. Now parray will be purely dynamic allocation with the number of elements passed in the constructor. Added noexpr where appropriate. Simplified the queue. . After the recent string of updates pongf performance increased again. Some fixes for the aligned memory operations. . Solver now uses dynamic allocation on systems larger than 512x512 . Added support for line markers to the preprocessor and parser and for include processing to the preprocessor. Moved sources base type to plib to be used for preprocessor includes. This enables to include e.g. from rom memory regions. . Floppy: Changed Interrupt command logic based on WD1772 and VG93(1793 clone) decaps (machine\wd_fdc.cpp) . Intel 8251 USART: Modernized debug printouts . Intel 8253 PIT: Introduced logmacro.h based logging . Intel 8275 CRTC: Simplified read/write handlers . National Semiconductor INS8250 UART: Fixed cleared pending THRE interrupt. The code notes that reading the iir register "will clear the int if this is the source of the int" and the code cleared a pending THRE interrupt if it was *pending*. This causes a lost THRE interrupt for the SWTPC 8121 terminal firmware and this locks up the TX side of the terminal. This occurred regularly when the ISR read this register upon a higher priority RX pending interrupt. The documented operation has been reinterpreted as only clearly the THRE interrupt if THRE is the highest priority interrupt and so is the pending interrupt *causing* the interrupt. This fixes that lost THRE interrupt for the SWTPC 8121 terminal. . MB14241 Data Shifter: Simplified handlers . Motorola MC6845 CRTC: More logging and reduced (not eliminated) warning spam significantly at startup when register values doesn't make sense . OKI MSM5832 RTC: Simplified handlers . RS232 Port . Moved some initialization to a device_reset() function. Calling the line handlers, such as m_cts_handler() from the device_start() function is problematic as some of these handlers may wish to read ioports and that is not safe at this stage, so move these to a new device_reset() function. . Added DTR flow control to RS232 Null Modem. Some terminals use the DTR output for hardware flow control, so added that as another option. . Sega 16-bit hardware (segahang.cpp, segaorun.cpp, segas16a.cpp, segas16b.cpp, segas18.cpp, segaxbd.cpp, segaybd.cpp and system16.cpp) . Code cleanup, reorganization and decoupling. . Moved open_bus_r down into the 315-5195 mapper device (not 100% ideal, but the next best place). Splitted out 315-5195 mapper device into separate source file and modernized logging. . Moved remaining portion of sega_16bit_common_base (all to do with palettes) into video\segaic16.cpp . Tecmo Chained Sprites: Hardcode behavior based on visible width, not full screen width. - alpha68k.cpp and snk68.cpp . Support for opaque tiles for V board, fixes title screen clipping effect in Sky Adventure. Also removed hack for the priest priority in level 1 in Sky Adventure, being a game original bug. . Simulated screen blanking for Gold Medalist starter pistol shot on dash events . Promoted clones Gold Medalist (set 2, Alpha68k III PCB) and Gold Medalist (bootleg, Alpha68k III PCB) to working. Fixed Gold Medalist missing status bar and "player 1 start/hurry up" GFXs for Player 1. . Replaced protection simulation in Super Stingray with MCU emulation. Fixed MCU communications and coinage DIP setting. . Kyros MCU is underdumped . Converted alpha68k.cpp to snk68 sprite chip . Converted alpha68k.cpp and snk68.cpp to a common palette device and decoded it with NeoGeo specs, causing more accurate colors especially visible on dithered backgrounds . Split up alpha68k I and N games into own files - argus.cpp: Separated state classes. Simplified handlers. Eliminated legacy overrides. - aristmk5.cpp: Fixed error in Cash Cat's layout\cashcatnz.lay - bfm_sc1.cpp and bfmsys85.cpp: Correct 6809 type and clock - cave.cpp and mcatadv.cpp . Added 038 Tilemap generator device and converted tilemap draw routine into tmap038 . Added notes to cave. Fixed spacing. Reduced duplicates. . Simplified mcatadv handlers. Reduced unnecessary line. Fixed tilemap flicker with debug function enabled. Use shorter/correct type values. - cdi.cpp: Switched SERVO and SLAVE MCUs to use the correct device type with internal maps - chihiro.cpp: Improved Chihiro GD-ROM documentation - cps1.cpp and segas16b.cpp: Fixed some unsafe bitmap usage in video update routines causing tilemap asserts in debug builds and segmentation faults in some non-debug builds. - cps3.cpp . Added not compressed Character DMA . Confirmed that CD-ROM image of clone jojobar1 is good, converted to CHDv5. - cubeqst.cpp and leland.cpp: Make better use of loops in machine configuration - dec8.cpp . Replaced handcrafted MCU code with actual code from a decapped/dumped MCU for 'The Real Ghostbusters' sets. Verified all clocks. . Redumped Last Mission MCU, fixes bit rot in unused area. - f1gp.cpp: Switch button order as per service mode - goldstar.cpp . Decrypted clones Poker Master (ED-1993 set 1) and Poker Master (ED-1993 set 2). Still needs inputs and dips fixed. . Decrypted clone Super 97-2 (Witch Bonus). Needs correct inputs. - igs017.cpp: Misc cleanup - joctronic.cpp: Fixed yearold regression from MFCG removal - audio CPU interrupt is latched. - konamim2.cpp: No longer need to hack around broken PPC fast RAM - laz_ribrac.cpp: Combined laz_awetoss.cpp and laz_ribrac.cpp into a single driver and start fleshing it out - lucky37.cpp: Decapped MCUs for Lucky 21, Lucky 21-D and Lucky 37. Preliminary memory map for MCU. - m72.cpp . Fixed sample-related communications on 8751-protected games. Improved reset behavior. . Replaced MCU simulation/hack with proper MCU code for clones Air Duel (Japan, M72 PCB version) and Dragon Breed (Japan, M72 PCB version). Clone Dragon Breed (M72 PCB version) requires different currently undumped MCU code. . Fixed imgfightj, mrheli and nspiritj doesn't show "for use in Japan" messages on POST correctly (ID 07438). . Legend of Hero Tonma use now the MCU from clone (World, bootleg with i8751). It works but marked as BAD_DUMP. - m90.cpp: Documentation and IC location update - markham.cpp: Improved master irq firing and rowscroll in Strength & Skill, which was causing missing sprites in stage 2 and 3 at least. - megaplay.cpp: Be safer about endianness. Removed unused variable. - model1.cpp: TGP interface fixes. This fixed graphic glitches (ID 07025) and improved gameplay calculations and physics issues in Virtua Racing (ID 07026). - model2.cpp: Fixed gas and brake pedals are mixed up in Over Rev (Model 2B) and Super GT 24h (ID 07445) - mw8080bw.cpp . Turned several audio subsystems into devices (clowns, gmissile, gunfight, m4, pantom2, seawolf and spcenctr) . Moved stuff out of the giant class. Reduced runtime tag map lookups. . Use blend modes for Space Encounters layout . Added explosion lamps to internal artwork for Sea Wolf . Completely untangle tone generator from machine state and moved more stuff out to derived state classes. - mystwarr.cpp: Added missing Coins 3 and 4 to Violent Storm and Mystic Warriors (ID 07463) - namcos21_de.cpp: Use same sound FIRQ source as other System 21 games - nexus3d.cpp and machine\vrender0.cpp: Correct pixel clock crystal value - ninjaw.cpp and warriorb.cpp: Accurated PSG output position (subwoofer only) - nmk16.cpp and powerins.cpp . Converted NMK 16 bit sprite hardware to a device. Fixed flipped case. Allow pdrawgfx drawing. Correct clock source (pixel clock mostly). Added value for sprite limitation. Added notes. . Converted nmk16.cpp and powerins.cpp sprite draw routine into video\nmk16spr.cpp . Verified clock related to on-board XTALs for Power Instinct - nss.cpp, sfcbox.cpp and snesb.cpp . Run HTOTAL double only if needed. Also run HDMA when vpos=0 (video\snes_ppu.cpp and machine\snes.cpp). Fixed (MESS) Vortex & Judge Dreed graphics. . The SNES only has 64kbytes of VRAM, not 128kbytes (video\snes_ppu.cpp). Fixes graphics in (MESS) Yoshi's Island, probably others. . Fixed background layer drawing based on higan ppu-fast (video\snes_ppu.cpp). Adjusted HBlank timing interval to the most common case. Fixes off-by-one parallax in (MESS) Yoshi's Island. Fixed some breakage from the port of BSNES ppu-fast. . Added support for screens that vary horizontal width mid-frame (emu\screen.cpp), and hooked it up to the SNES driver. Fixes (MESS) dkongcu intro and others. - playch10.cpp: Correct BIOS PPU rom loading - psychic5.cpp: Eliminated MCFG_VIDEO_RESET_OVERRIDE - qix.cpp: Misc cleanup - scramble.cpp and wallc.cpp: Avoid some calls to subdevice<>() - segahang.cpp: Splitted I/O handlers. Eliminated probably unnecessary open bus read semantics to decouple from sega_16bit_common_base. - segas32.cpp . Fixed again engine noise loops/resets in F1 Exhaust Note (ID 04531). Note: RF5C68 needs to be initialized to 0xff, otherwise f1en has bad sound. . Cleanup driver - seta.cpp . Fixed 'Lives' dipswitch in Blandia (ID 07444). Note: Test mode shows wrong values for Blandia and clone Blandia (prototype). . Switch J. J. Squawkers to use three buttons. Note: Hardware reads three buttons, and button 3 is used in the sound test. - snowbros.cpp: Restore an output level setting lost in MCFG removal - stv.cpp: Don't start subdevices in device_start - the machine does it for you (bus\sat_ctrl\segatap.cpp). - subsino2.cpp . Added save state support and clean up code a little. Replaced dual 8-bit RAM pointers with 16-bit pointers. Eliminated MCFG_VIDEO_START_OVERRIDE. Replaced set_vblank_int with screen callback. . Fixed Treasure City scrolling regression - tmnt.cpp . Separated some state classes. Get rid of MCFG_MACHINE_START_OVERRIDE but keep other overrides for now. . Added analog controls and ADC0804 A/D Converter to Golfing Greats. Removed spurious fourth button and MACHINE_UNEMULATED_PROTECTION flag. - vcombat.cpp: Modernize logging code. Use optional_device_array. Eliminated MCFG_MACHINE_RESET_OVERRIDE. - Aftershock: Documented DIP switches after manual - Altered Beast: Replaced MCU simulation with actual dumped MCU code for Altered Beast (set 6) (8751 317-0076) - Bad Dudes vs. Dragonninja: Decapped and dumped the i8751 MCU for Dragonninja (Japan revision 1) - Big Karnak: Adjusted YM3812 clock so pitch matches reference recording. Use OSC based clocks Based of picture (https://ibb.co/0XBwxzX). - Biomechanical Toy: Changed 'Lives' dipswitch to 'Lives in Reserve' (ID 07442). Note: Test mode doesn't show the value of the lives given, but of the ones after you die the first time. - Caveman Ninja: Fixed wrong priority in level 4 fall (ID 07447) - Chelnov . Added MCU dump to Chelnov - Atomic Runner (World) and hook it up. Other regions were created by patching the dump. Removed the MCU simulation. . Verified clone Chelnov - Atomic Runner (Japan) i8751 dump . Replaced handcrafted MCU with actual code from decapped/dumped i8751 for Chelnov - Atomic Runner (US) - D-Day: More accurate PSG type - Dream Soccer '94: Fixed coin3 and coin4 buttons for Player 4 (ID 07457) - Dynamite Dux: Replaced MCU simulations with real code from a decapped/dumped MCU for clone 'Dynamite Dux (set 1) (8751 317-0095)' - Escape from the Planet of the Robot Monsters: Fixed 'Control Test' in Test Menu (ID 07452) - Exed Exes: Measured maincpu clock clock and vsync. Verified sound chips clocks. - Fire Trap: Added decapped/dump MCUs for Fire Trap (US) and clone (Japan). Removed the MCU simulation. - Great Swordsman: Measured MCUs clocks - Hard Head 2: Made clone Hard Head 2 (v2.0, bootleg) have correct data/opcodes split. Code flows, but no visible changes for now. - Heavy Unit: Fixed coin counters - Kid Niki . Fixed a number of audio issues. Better document schematics and added J4. Fixed a number of resistor/capacitor values and one barrier statement. Simplified code. . kidniki uses frontiers again (speed improvement) (audio\nl_kidniki.cpp) - Kung-Fu Master: Added some IC locations and PLD placeholders to clone Spartan X (Tecfri hardware bootleg) - The Lost Castle In Darkmist: Fixed interrupt vectors RST 08h and RST 10h - Mustache Boy: Game runs in IM1 (no irq vector used) and irq stays high during vblank. It's an old regression from MAME 0.147u2. - P-47 - The Phantom Fighter: Updated the p47b sound system - Pickin': Changed 'Cabinet' dipswitch to configuration. Note: The Cabinet type set through edge connector, not dipswitch (verified on real PCB). - Pot O' Gold: Identified start of TMS code in clone (U.S. Games, v580F) - Quartet: Replaced MCU simulation code with real MCU code from decapped/dumped for Quartet (Rev A, 8751 315-5194) and clone Quartet (8751 315-5194) - Section Z: Measured maincpu clock and vsync on an original Section Z PCB and on a bootleg sectionza PCB - Shizhan Ding Huang Maque: Decapped AT89C51 MCU - Special Criminal Investigation: Fixed Turbo button is activated when toggle speed with Shifter (ID 07448) - Stadium Hero: Make stage music selection and various other things more random (ID 01070) - Super Pinball Action: Use raw parameters for screen - Super Spacefortress Macross II: Redumped the tiles rom for clone Macross II (Korea) - Super Star (Recreativos Franco): Updated commented code to DEVCB3 syntax - Super Two In One: Enabled save state support. Made use of templates. Added a note about the GFX ROM. - Triforce DIMM Updater: Redumped "Triforce DIMM Updater (3.17) (GDT-0011)", previous was bad dump. - Ufo Robo Dangar: Redumped audio CPU roms for clone Ufo Robo Dangar (9/26/1986, Japan) - 'unknown Chang Yu Electronic gambling game 2': Decapped 87C51 MCU - World Grand Prix: Read inputs through ADC device - Fixed rom names in aerofgt.cpp, karnov.cpp, m72.cpp, m90.cpp, sidepckt.cpp, spartanxtec.cpp, wardner.cpp and zn.cpp - Dipswitch fixes in alpha68k.cpp, bagman.cpp, carrera.cpp, gaelco.cpp, laz_aftrshok.cpp, laz_ribrac.cpp and seta.cpp - Description changes of Aftershock (Lazer-Tron, set 1), Aftershock (Lazer-Tron, set 2), Air Duel (Japan, M72 PCB version), Awesome Toss 'Em (Lazer-Tron), Battle Chopper (World), Beastorizer (USA, Sep 22 1997), Bloody Roar (Japan, Jun 21 1997), Buggy Boy/Speed Buggy (cockpit, rev. D), Daiku no Gensan (Japan, M72 PCB version), Daiku no Gensan (Japan, M84 PCB version), Dragon Breed (World, M81 PCB version), Dynamite Dux (set 1, World) (8751 317-0095), Gallop - Armed Police Unit (Japan, M72 PCB version), Gold Medalist (set 1, Alpha68k II PCB), Gold Medalist (set 2, Alpha68k III PCB), Gold Medalist (bootleg, Alpha68k III PCB), Hammerin' Harry (US, M84 PCB version), Hammerin' Harry (World, M81 PCB version), Legend of Hero Tonma (World), R-Type II (World), The Real Ghostbusters (US 3 Players, revision 2), The Real Ghostbusters (US 3 Players, revision 3B?), Ribbit Racin (Lazer-Tron), X Multiply (Japan, M72 PCB version) and X Multiply (World, M81 PCB version) - Renamed (19xx) to (19xxu) and (m21) to (mirco21) - MAME . VIDEO RENDERING SYSTEM . Validate crystal values used for set_raw (emu\screen.h) . Added some sanity checks to video\sprite.cpp . Relax assert and do some sanity checks (fixes mtrain and strain with DEBUG=1) (emu\tilemap.cpp). . MEMORY SYSTEM . Added rudimentary validity checking for address_space_config objects (emu\dimemory.cpp) . Added emu_fatalerror in case subdevice fails to find things (emu\addrmap.h) . Added ref count in flight calls and when a tap is installed (emu\emumem_heu.cpp), plus fix for less permissive compilers. Fixes segmentation fault in E-Swat (ID 07456). . Disabled VALIDATE_REFCOUNTS, due to (MESS) nforcepc installing a device map while a handler is being temporarily ref counted to prevent it being deleted. . LUA engine: Callback after sound update has generated new samples (mame\luaengine.cpp) . UI . Moved one variable down into subclasses and fixed some confusing variable naming . Fixed display of Covers tab in UI (ui\selmenu.cpp) . AVI . Added an image device to provide looping uncompressed AVI frames as input (imagedev\avivideo.cpp) . Fixed AVI framerate. MAME was setting up AVI before devices have properly launched, so default 60fps was used, which resulted in skipped frames in the video if machine's framerate is above 60 (btoads), and presumably duplicate frames for machines below 60fps (haven't tested). Now every frame that is generated is also present in the video. . Don't crash on buffer overflow and increased max AVI size (util\aviio.cpp) . 3rdparty . Sync GENie, BGFX, BX and BIMG with latest upstream. Added astc-codec decoder and NVN stub. Build BGFX as Objective-C++ on MacOS. Enabled Direct3D12 and Vulkan BGFX rendering backends. Added and building of spirv shaders. Do texture format conversion for BGFX via a full-screen GPU pass. Fixed BGFX build on older OS X systems. The Vulkan renderer has to be disabled on Yosemite and older because its backend depends on Metal. . Unbreak building shaders in cmd shell and added support for building them in MINGW bash shell (bgfx\scripts\tools.mk) . MiniMAWS . Load ROMs and disks and added a romident subcommand (scripts\minimaws\minimaws.py) . Added WEB interface for identifying ROM dumps. Chromium doesn't like in-place modification of returned JSON data. . Easier mod_wsgi deployment. Allow read-only database connections to be passed between threads . Get rid of sound start/reset overrides in machine configuration (emu\driver.cpp). Note: The various start/reset overrides are bugs waiting to happen. It's not immediately obvious that the ones run earlier can end up being called multiple times if subsequent ones throw missing dependencies exceptions. They're a relic of when everything from the old C-style drivers was thrown into classes all jumbled together. . Fixed flytiger entry in hiscore.dat (ID 07454) - MAC OS X: Fixed build on Apple LLVM version 7.0.2 (Clang-700.1.81). The same fix might also be needed for some non-Apple Clang versions. - SDLMAME/Linux . Support RRGGBB00 format used by ARM Mali GPUs (render\drawsdl.cpp) . Check that m_display is not null to prevent crash. Fixes X11 Lightgun routine does not check for valid X11 display, resulting in crash (segmentation fault) (ID 07372) . Odroid N2 build fixes. Allow specifying NO_OPENGL manually. Switch BGFX to OpenGL ES renderer if NO_X11 is specified. Only link against EGL when NO_X11 is specified on linux, netbsd and openbsd. Only switch BGFX to OpenGL ES on linux, netbsd and openbsd. Indentation fix. - Compiling . Build system maintenance . Re-write makedep.py for better performance and better parsing front-end . Make srcclean deal with kinds of preprocessor abuse I never want to see in real life . The new parser front-end is better at recognising C++ syntax and also substantially faster - bootstrapping a single-driver build should be noticeably quicker. Having a single parser for C++, .lst and .flt files also gets us a bit closer to making it simpler to create custom subtargets. . Make osd_printf_* use util/strformat semantics. Also removed a pile of redundant c_str and string_format, and some workarounds for not being able to portably format 64-bit integers or long long. . Allow updating version.cpp when IGNORE_GIT=1 is passed (makefile). Without this tweak it would only create the file if it doesn't exist, and wouldn't update an existing one. . Fixed a compilation bug under Clang-CL (netlist\plib\putil.h) . Fixed std::array initialisation with GCC5 in netlist\prg\nlwav.cpp, stop suppressing -Wterminate now that asserts are really asserts. . Visual Studio . Some Visual Studio 2019 fixes. Added initial ClangCL support. Fixed uwp builds' vs version typos. Added missing VS2019 toolchain.lua bits. . Use Visual Studio 2019 (16.3.0) image for AppVeyor build (appveyor.yml) . vs2019_Clang builds and links with portaudio disabled . Removed all AM_ macro in comments . Clean up leftovers from MCFG removal . Added doxygen comments for a bunch of core stuff and converted a bunch of comments to doxygen format . Fixed build for nonstandard compiler versions like '8.3-win32' (scripts\genie.lua) . Continuous integration improvements: Added workaround for imgtool and jedutil failing vs2019 debug builds with /ZI. No longer allow msvc build to fail. Enabled tools build for travis to make it more useful. Switched travis to Xcode 11 in order to fix nltool linking failure. Prefer 64-bit compiler with VS 2019 too. Setting PreferredToolArchitecture to x64 is not needed, genie puts it into the project files for vs2015 or later. OPTIMIZE=1 build is faster that OPTIMIZE=0 for some reason. So fast in fact, that TOOLS=1 can be enabled without hitting the 60 minute timeout. Switched MINGW build to VS 2017 image until appveyor figure out why builds on VS 2019 are almost twice as slow. Run pacman twice to account for core system upgrades. . Reduced memory usage during compilation. Previous semantics were encouraged by sol2, and ThePhD admitted it was a bad idea for usertypes with lots of members. sol3 allows to assign members outside a constructor for regular usertypes, but MAME can't move to sol3 because it requires C++17. Turns out sol2 also has a way to add members separately, and that is what I used. This helps immensely. This approach required a fix to warning C5046 copied from here https://github.com/ThePhD/sol2/commit/57990845726e17fba11a39cfcb1fc0127a7ea638 . Tested current MAME plugins, everything seems to work. PS: Due to come black magic, if I use simple_usertype::set() with "manager" as well, "machine" member dies (others are fine!), so I had to leave it intact. . Fixed bimg build for asmjs and added BGFX file . Added details on compiling MAME documentation (docs\source\initialsetup\compilingmame.rst) - Debugger: Migrate to softfloat3 (debug\dvmemory.cpp) 0.214 - New games: Draw Poker (Joker Poker V.01) and Urachacha Mudaeri (Korea) - New Working games: Champion Poker (v101), Champion Poker (v201F), Lady Liner (encrypted, set 1), Lady Liner (encrypted, set 2), Lady Liner (encrypted, set 3), Lady Liner (encrypted, set 4) and New Lucky 8 Lines (set 10, W-4, encrypted NEC D315-5136) - New Non-Working games: Maldaliza and Wully Bully - New clones: Birdie Try (Japan revision 2, revision 1 MCU), Gouketsuji Ichizoku (Japan, prototype), Kuri Kinton (US, World Games license), Pac Man (U.G. bootleg of Puck Man), Pipi & Bibis / Whoopee!! (bootleg, set 2), Psyvariar -Medium Unit- (V2.02O 2000/02/22 13:00), Raiden Fighters (Greece) and Venture (version 5 set 2, bootleg) - New devices: acorn_vidc10, acorn_vidc10_lcd, nec_315_5136, pcf8583, segabill and vr0uart - CPU . ADChips SE3208: Clean up disassembler and remove unwanted newline . Fujitsu MB9061x: Implemented timers 0 and 1, including external event counter mode . Fujitsu Micro F2MC-16 . More opcodes and more robust IRQ handling. Fixed BBC branch offset, add savestates, cleanup variable usage in utility functions. . Added more opcodes to diassembler (f2mc16\f2mc16dasm.cpp) and normalized bit syntax. This allows disassembling most of the Namco System 23 "Extra I/O" programs, which use an MB90611A. . Hitachi H8: Disassembly improvements: Correct sign extension for 16-bit absolute addresses. Use H' prefix for hexadecimal numbers. Restrict address length depending on model. Format arguments in separate column. . Hudson Soft HuC6280 PSG: Added workaround to HuC6280 core to fixed music speed in Crude Buster, Dark Seal and Vapor Trail. Use official names for banking registers. Reduced logical width of address space. Fixes the tempo of Crude Buster music played by one of the OKI6295's speeds up when the flamethrower is used (ID 00389). Fixes Dark Seal when using your weapon the music playback would ever so slightly increase (ID 00130). Fixes Vapor Trail sound driver messed up during game play, tempo all wrong when firing (ID 02108). . MIPS-I: Added undocumented behaviour of REGIMM opcode . Mitsubishi M37710S4: Internalized timing for A-D converter . MOS Technology M6502 . Fixed reset procedure. Fixes incorrect default stack pointer position for the M6507 CPU in (MESS) Atari 2600 (ID 06486). The console hardware uses $FD. MAME reveals the default stack to be set to $BD. . Added dummy reads before reset (cpu\m6502\om6502.lst) . MOS Technology M65C02: Added stack access to 65c02 reset too (cpu\m6502\om65c02.lst) . Motorola MC68HC05L9: Added (somewhat provisional) model-specific register names . Philips SCC68070: Split up internal register block handlers. Added some RESET behavior. . Texas Instruments TMS34020: Fixed BLMOVE aligment handling. BLMOVE has actually 4 different cases of execution based on two lowest bits in opcode, which were not properly handled. Fixes endless loop in atronic / atricmon. - SOUND . AY-3-8910A PSG . Added feature value for chip specific features. Added runtime pin26 handler. Use struct for tone and envelope. Reduced performance issue. Reduced defines and unnecessary lines. Fixed naming and spacings. Added notes. . Don't play fast and loose with register initialization; some builds warn about that. . AY8930 EPSG: Implemented expanded mode . K051649 SCC1: Fixed mirroring in address map. Added save states. Fixed spacing. Reduced unnecessary lines. Use shorter/correct type values. . Namco C140: Added timing output to trigger periodic FIRQ . Yamaha YM2151 OPM: Fixed reset behavior . Yamaha YMW-258-F: Saner pointer allocation - DEVICE . Discrete Netlist . Added simple oscillator with 74LS14 and voltage and current source test . Removed a lot of C library use and instead use C++. Improved pstring compatibility to std::string. Prepare removal of pstream. . Prepare move to C++ streams and later std::string. Fixed more lint and Clang pedantic warnings/errors. Fixed some bugs. . DP8350 CRTC: Apply some subtle timing fixes and save one more variable . DS1994: Added FIXME comments. Removed redundant tag from logging helper. Correct device name. Removed copy/pasted application note (copyright infringement). . Hitachi HD44780 A00 LCD Controller: Added alternate interface using direct writes to bus control lines. This is necessitated by an odd edge case where the LCD controller is addressed in 4-bit mode and the busy flag is polled continuously by setting R/W = 1, RS = 0 and E = 0 and then just waiting for DB7 to be cleared. In this case, the ordinary read operation will select an alternate nibble each time, resulting in spurious values. Hitachi's HD44780 datasheet does not actually recommend this polling method, so it might actually be for one of the many compatible LCD controllers from other manufacturers. . Hitachi HD6845S CRTC: Specialized the cursor emulation. For the HD6845 the cursor does not wrap around as it does for the MC6845. . Hitachi SH-2: Added SH2 clock multiplier logs . Imagetek I4100 052 VDP: Reduced duplicates. Use struct for sprite drawing routines. Fixed spacings. Use shorter/correct type values. Added notes. . Intel 8251 USART: Preliminary addition of synchronous support. Can transmit and receive with one sync byte. Added bisync support. Updated list of save-state variables. . Intel 8253 PIT: Minor refactor . K051960 Sprite Generator: Use device_video_interface to hook screen . K052109 Tilemap Generator: Use callback to generate IRQ for most drivers. Fixed IRQ enable logic (otherwise simpsons is very broken). Use device_video_interface to hook screen. . MagicEyes VRender0 Video Engine: Various improvements over Vrender0 based systems: Made some experimental work with menghong based HW, allowing 'Crazy Dou Di Zhu II' to boot and improving menghong colors. Internalized video and audio components inside the SoC. Wrote a preliminary UART subdevice. Made external video clock to be settable by the host driver. . Motorola MC6845 CRTC . Improved the cursor emulation. Implemented partial cursors. . The MC6845 shows a full cursor if the cursor end raster address is greater than the maximum raster address, restore that case in general. The issue on the BBC, that uses the HD6845S, might be the use of the maximum raster address here, it appears to be programmed differently on the HD6845S and also to depend on the interlaced mode. This patch fixes the BBC while preserving the cursor emulation for the MC6845. . Added address cursor display edge case in interlaced mode. It appears that the cursor is not displayed when the start raster address is equal to the maximum raster address in the 'interlace and video' mode. At least this addresses a claimed regression in the (MESS) apricot machine. To be explore further on hardware. The maximum raster address was also off by one in these calculations. . Sega 315-5124 SMS1 VDP: Fixed naming . Sega 315-5313 Megadrive VDP: Fixed 3bit color mode masking. Added gfx/palette viewer for debug (off for default). Simpler VRAM write/replace function. Converted drawing routine using device_gfx_interface. Added device_gfx_interface for gfxdecode. Added gfx for shadow/hilight case. Fixed naming. - CHDMAN: Clean up some archaic string code - aristmk5.cpp and ertictac.cpp (Acorn Archimedes) . Fixed cursor enable and variable size, used by caverns to display score and main player sprite (machine\archimds.cpp and acorn_vidc.cpp) . Added preliminary RTFM joystick and serial joystick support (machine\archimds.cpp). Added compatibility tests. . Rewrote Acorn VIDC10 into own device file. Improved raster effects on games that dynamically change palette on active frame. Added stereo sound support. Internalized palette and externalized screen. Fixed off by 16 sound DMA transfers, improving sound quality. . Generate u255 law sound table on device start (machine\acorn_vidc.cpp) - champbas.cpp and lwings.cpp: VBLANK IRQ modernization - cps3.cpp . Hook coin locks and counters . Return 5 and 6 buttons to JoJo's Venture and clones (they used in dev.mode). Fixed intro missing star sprite and game title bg color. . Changed 'SS' RAM and registers to 8bit. Renames of function's/variable's names to their actual functions. Misc cleanups. Documentation update and fixes. . Delay Palette/Character DMAs interrupt, get rid of periodic irq and more register docs. . More docs and cleanup . Render tilemaps as set of rows from sprite-list (fixes sfiii Alex's stage background) . Removed IMPERFECT_GRAPHICS flag, improved save states, fixed EEPROM size and document known issues. Tweak screen rates as per new measurements. . Added sprite list caching (fixes warzard 2p VS screen and jojo intro "enemies" text appearance) . Replaced "bad" v4 CHDs with v5 built using Trurip DATs (actual game data verified to remain the same) . Reverted RGB color extension, hardware doesn't do that. . Handle tile map X/Y flip. Delay sprite DMA ack. Buffered global scroll registers. Various cleanups and notes. . Replaced color DMA fading algo, expected to be hardware-accurate. . Little fixed tilemap linescroll - deco_mlc.cpp . Updated blending behavior closer to real hardware. Make background color blendable. Slightly simpler blending behavior. Added notes, Fixed spacing. Reduced unnecessary lines. Use shorter/correct type values. Reduced unnecessary pointer. Fixed 8bpp index behavior. . Restore zero offsets in regions where more than one ROM file is loaded, and removed a few zero offsets from disk regions and regions loading a single ROM file. - exidy440.cpp . Fixed crash/assertion failure caused by palette having too few entries. Fixes Yukon and clone crash or get stuck during the initial checks (ID 07413). . Eliminated anonymous timers (video\exidy440.cpp) - gameplan.cpp and trvquest.cpp: Use callblank to drive CA1 from VBLANK. Eliminated some old-style overrides. - goldstar.cpp . Cherry Bonus III: Simplified the decryption routine . Lady Liner: Decrypted clones Lady Liner (encrypted, set 1), (encrypted, set 2), (encrypted, set 3) and (encrypted, set 4) (Games now playable) . New Lucky 8 Lines: Added NEC 315-5136 decrypt device for use on clone New Lucky 8 Lines (set 10, W-4, encrypted NEC D315-5136) (Game now playable) - iteagle.cpp: Added Golden Tee Fore! upgrade CD-ROM images softwarelist (hash\gtfore.xml) - legionna.cpp . Minor revert MAME 0.210 changes . Fixed Denjin Makai setgfxbank. Fixes broken backgrounds in 2 game endings (ID 07416). - marineb.cpp: Added DIP locations to most sets - menghong.cpp: Made some experimental work with menghong based HW, allowing 'Crazy Dou Di Zhu II' to boot and improving menghong colors. - model2.cpp, model3.cpp and stv.cpp . Hook up Sega Billboard emulation to Model2 A/B games . Hook up 315-5649 I/O and Sega Billboard emulation to Model 3 . Emulated the Sega Billboard and hook it up to the STV driver. It's not shown by default. To view it, choose the layout view 'Billboard'. Added vertical billboard layout for Shienryu. . Adding visual and descriptive board layout for Versus City Billboard - n8080.cpp: Split up state class and simplified read/write handlers - namcos21.cpp: Derive clocks from known XTALs. Use Namco C140 INT1 for FIRQ. - namcos21_c67.cpp: Use Namco C140 INT1 for FIRQ. Use known XTALs for clocks. Reduced sound CPU clock to be within MC68B09E parameters. - naomi.cpp: Redumped initdv2ja and ggxxsla GD-ROMs - nmk16.cpp: Added on-board chip & XTAL verifications - nss.cpp, sfcbox.cpp and snesb.cpp . Do not update HDMA if enabled channels are the same (machine\snes.cpp). Fixing (MESS) Pilotwings (ID 06205). . Fixed 5a22 and spc700 clock cycles (cpu\g65816\g65816.cpp and cpu\spc700\spc700.cpp). Fixes (MESS) snes jdredd stops working after title screen (ID 06901) and snes firemenu has black screen (ID 07419). - policetr.cpp . Added speed-up for clones Police Trainer (Rev 1.0), Sharpshooter (Rev 1.1) and Sharpshooter (Rev 1.7) . Redumped U163 sound rom for clone Police Trainer (Rev 1.0) - psikyosh.cpp: Reduced duplicates. Fixed spacing. Use shorter/correct type values. - segac2.cpp: Added notes for sound output balance - segas24.cpp: Implemented clip reverse y logic, fixes Crack Down pre-title screen sprite priorities (video\segaic24.cpp) - supbtime.cpp: Fixed the main and audio cpu clocks for the DE-0343 board. The 68000 core, DATA EAST chip 59, should run at 10.738636MHz. This is confirmed by DE-0343-4, Tumblepop. Pin 57 is for the clock. The HuC6280 core seems to run at 8.055MHz rather than 16.110MHz. Confirmed by DE-0343-4, Tumblepop. - taito_b.cpp: Separated hitice state class and eliminated old-style overrides - vastar.cpp and zodiack.cpp: Implemented device_video_interface (video\orca40c.cpp) - Air Buster, DJ Boy and Heavy Unit: Generate sound IRQ from YM2203 rather than VBLANK - Arkanoid: Fixed clones arkgcbl, arkgcbla, arkangc2, arkbloc2, arkbloc3, block2 and paddle2 from crashing (ID 07427). - Black Touch '96: Measured PIC clock - Calcune: Reduced duplicates. Converted drawing routine into using VDP internal palette. Added save state. - Champion Poker . Decrypted clone Champion Poker (v300US) and correct controls . Workaround to fixed the random locks for protection in Champion Poker (v220I) and clones (v100), (v101), (v200G), (v201F) and (v210KS). . Fixed Champion Poker (v220I) and clone (v200G) freezing during play (ID 03635). Fixed Champion Poker (v220I) and clones (v200G) and (v201F) inputs. . Promoted clone Champion Poker (v101) and Champion Poker (v201F) to working - Chelnov . Hook up MCU to clone Chelnov - Atomic Runner (Japan, bootleg with I8031, set 1) . Redumped and correct clone Chelnov - Atomic Runner (Japan) color BPROMs - China Gate: Added PCB layout for the main, second board and information on TRJ-100. This patch update China Gate to have more concrete information on TRJ-100. Now pin assignments are almost investigated as we cantry dumping it. Also, this comment clarify which SRAM chip constructs bgvideoram. - Commando: Accuracy improvement. Note: The main CPU frequency is 3 MHz, after a two-stage FF clock divider. The CPU clock is gated by bus arbitrion logic. The CPU clock is halted until video hardware has an opening in memory access, then the CPU is allowed to access common memory. This slows down the CPU but doesn't alter its basic 3MHz frequency. There is also a DMA circuit that copies object data from the CPU RAM to a buffer this also slows down the CPU as it is halted during that time. - Cross Puzzle: Improved flash loading. RTC interface improved but still nonfunctional. - Cruis'n USA: Redumped PAL a-19993.u38 - Ghosts'n Goblins: Removed watchdog. Note: There is no watchdog in GnG, as previously stated in the MAME driver. Instead, there is a DMA circuit that copies object data from the CPU RAM to a buffer this also slows down the CPU as it is halted during that time. The DMA is triggered when a certain memory location is addressed. That location was thought to be a watchdog before. - Heavy Unit: Use correct graphics rom for clone Heavy Unit (Japan, Newer) - Hyper Duel: Added MACHINE_NO_COCKTAIL flag related to wrong flipped screen displaying - Major Havoc: Fix for Alpha One clones which doesn't have coin and service ports - Rock 'n' Roll: Added EEPROM dump - Sprint 4: Added fix for Player 4 default controls - Street Fighter II': Champion Edition: Added a PAL dump and some repair info to clones (Mstreet-6, bootleg, set 1), (Mstreet-6, bootleg, set 2) and (Mstreet-6, bootleg, set 3) - Tournament Table: Use device_palette_interface, save bitmaps and converted update method to RGB32. - Twin Falcons: Correct source of sound IRQ - Witch Game: Fixed the extended gaphics in clone Joker Card (witch game). Added game notes. - Wyvern F-0: Measured clocks - Fixed rom names in dec0.cpp, dec8.cpp, karnov.cpp, policetr.cpp, segas16b.cpp, segas32.cpp, seibuspi.cpp and tigeroad.cpp - Dipswitch fixes in marineb.cpp, menghong.cpp, model2.cpp, model3.cpp, stv.cpp and trivrus.cpp - Description changes of Alien3: The Gun (US, Rev A), Bad Dudes vs. Dragonninja (US revision 1), Dragon Ball Z V.R.V.S. (Japan, Rev A), Dragonninja (Japan revision 1), F1 Exhaust Note (Japan, Rev A), F1 Exhaust Note (US, Rev A)', F1 Exhaust Note (World, Rev A), Golden Axe: The Revenge of Death Adder (US, Rev A), Golden Axe: The Revenge of Death Adder (World, Rev B), Holosseum (US, Rev A), Jurassic Park (World, Rev A), Marvel Land (US, prototype?), Michael Jackson's Moonwalker (US) (bootleg of FD1094/8751 317-0158 set), Michael Jackson's Moonwalker (World) (bootleg of FD1094/8751 317-0159 set), Pipi & Bibis / Whoopee!! (bootleg, set 1), Spider-Man: The Videogame (US, Rev A) and Super Visual Soccer: Sega Cup (US, Rev A). - Renamed (birdtry) to (birdtrya), (powerinsp) to (powerinspu) and (psyvaria) to (psyvarij) - MAME . VIDEO RENDERING SYSTEM . Print a warning and continue on encountering malformed XML in a layout file (emu\render.cpp) . Added 2x2 grouped case of 16x16 gfx layouts. These are made of 4 8x8 tiles, currently 4bpp packed and 8bpp raw layout is exists. More usage of generic gfx layouts. Fix naming and spacing (video\generic.cpp). . Eliminated extract_scanline8/16/32, replacing the scant existing usage with std::copy_n (emu\drawgfx.cpp). . Make bitmap8_t, bitmap16_t, bitmap32_t and bitmap64_t specializations of one class template (util\bitmap.cpp). . Renamed emu\drawgfxm.h to drawgfxt.ipp and replaced the mega-macros with template functions . Mark drawgfx core templates inline to prevent linker trying to coalesce them across compilation units, and hopefully encourage the compiler to specialise them when drivers call them with fixed argument values. Make wraparound parameter for ROZ drawing functions bool - it's a simple true/false value. Clean up spacing in a few places. . Don't force throttling while paused (emu\video.cpp) . Added assert to catch wrong pixclock configuration (emu\screen.h) . Improved contains assert in emu\tilemap.cpp, fixing tilemap viewer in debug build. . LUA engine . Exposing running_machine::exit_pending() and running_machine::hard_reset_pending() to LUA. . Fixed issue that caused most LUA callbacks to be duplicated (mame\luaengine.cpp). Fixes "autofire" plugin is not working properly (ID 07408). . UI . Distinguish DIP switches that belong to different devices but have the same name in UI menu. This is most likely to occur when multiple instances of the same device type are configured on bus slots (ui\inputmap.cpp). . Fixed presentation of error message about invalid INI options (mame\mameopts.cpp) . PLUGINS: Added time functions to cheat sandbox (plugins\cheat\init.lua) . Changing some arrays to use std::array<> in emu\natkeyboard.cpp . PORT_CUSTOM simplification . Removed both arguments from CUSTOM_INPUT_MEMBER (adding template parameters as necessary) . Removed 'param' from PORT_CUSTOM_MEMBER and assume 'device' is DEVICE_SELF (use PORT_CUSTOM_DEVICE_MEMBER if it isn't) . Replaced PORT_CUSTOM_MEMBER with PORT_READ_LINE_MEMBER where applicable . Added implicit DEVICE_SELF variants of PORT_READ_LINE_DEVICE_MEMBER and PORT_WRITE_LINE_DEVICE_MEMBER . Removed ioport_field argument from PORT_CROSSHAIR_MAPPER . Separated captflag and gmgalax driver classes from base - SDLMAME . The current Emscripten release is not happy with the use of '-s ERROR_ON_MISSING_LIBRARIES=0' as a link option, it gives an error stating that all libraries must now be present, so remove that use. This leaves a missing 'util' library. This did not appear to be needed on the few builds I have tried, and this patch avoids adding this library for asmjs (osd/sdl.lua; configuration=asmjs). . Avoid explicitly linking SDL2_ttf. It appears that it is sufficient to include '-s USE_SDL_TTF=2', and emcc links in the SDL2_tff library, and it does not like attempts to link this twice (osd/sdl.lua; configuration=asmjs). - MAC OS X . Fixed exception on MacOSX (netlist\plib\pfmtlog.cpp). Some unknown system library seems to force the use of the global locale on OSX. This is not the case for other *nix or Windows builds. This commit fixes this by forcing the C locale in pfmt. . Fixed SUBTARGET nl and move netlist makefile to GCC-9 . Preliminary Mac native OSD. Not working yet. This will compile, link and run a driver all the way to the first info screen, provided you use -video bgfx. - VGM player: Fixed crash (ID 07412) - Compiling . Migrate travis-ci to GCC-9 . Fixed vrender0 link by moving mame\video\vrender0.cpp to devices\video\. . Fixed vsllvm build (sound\mas3507d.cpp). LLVM refuses to coerce the iterator to a pointer. . substr doesn't modify std::string, but erase does (tools\src2html.cpp). . Eliminated auto_alloc in model1.cpp, model2.cpp, video\midzeus.cpp, video\slapshot.cpp, video\taito_f3.cpp, video\zeus2.cpp and sound\multipcm.cpp . Bring static variables inside class in atlantis.cpp and midzeus.cpp . Changed osd_get_clipboard_text() to return std::string. This change has only been tested on Windows. The Un*x/Mac versions were made blindly; they might not even build. This needs to be checked prior to merging. . Added GCC build to AppVeyor. As tea-ci has been broken for quite a while now there has been no MINGW CI available. MINGW builds can be done in AppVeyor too. Tools build had to be disabled as it takes longer than the allowed 60 minutes. Wa,-mbig-obj was added to avoid "file too big" errors. Align AppVeyor GCC build configuration with travis. This will hopefully make the build fast enough not to miss the 60 minute maximum build time. . Get rid of assert_always - it's better to be explicit about what this thing is supposed to do. Get rid of a few MCFG_*_OVERRIDE. - Debugger . Added -xchbytes option to UNIDASM swap bytes . Small cleanup and clarification to debugger\debuggdbstub.cpp. Old GDBs expected the regnum values for some registers to be hardcoded. This is no longer the case with GDB clients that support target.xml. We expect the GDB client to support target.xml (and won't support the 'g', 'G', 'p' and 'P' commands unless it is sent). Added mips (tested with indy_4610) and m68k (tested with macii). Added support for executing MAME debugger commands from the GDB client. It's now possible to send MAME debugger commands, such as "cheatinit", "snap", etc... . Use std::forward_list for breakpoint and registerpoint lists . Fixed QT debugger (debugger\qt\mainwindow.cpp) . Fixed debugger dump command for address-shifted spaces (debug\debugcmd.cpp) 0.213 - New games: The Destroyer From Jail (Korea) and 'Potten's Poker stealth with Breakout front game' - New Working games: Birdie Try (Japan), Casino Poker (Ver PM88-01-21, German) and SD Gundam Sangokushi Rainbow Tairiku Senki - New Non-Working games: Bubble Torneo, Microdar SPD, Rock 'n' Roll, 'SNES 4 Slot arcade switcher' and Wanted (Sega) - New clones: Block Out (Europe and Oceania), Commando (bootleg set 3), Crazy Kong Part II (bootleg), Joker Card (witch game), Lady Liner (encrypted, set 1), Lady Liner (encrypted, set 2), Lady Liner (encrypted, set 3), Lady Liner (encrypted, set 4), Lady Liner (set 2), Lovely Cards (encrypted), Magic Export (V.211A), New Lucky 8 Lines (set 8, W-4), New Lucky 8 Lines (set 9, W-4, Eagle, licensed by Wing), New Lucky 8 Lines (set 10, W-4, encrypted NEC D315-5136), New Lucky 8 Lines Crown Turbo (Hack), New Lucky 8 Lines Super Turbo (Hack), Power Instinct (USA, bootleg set 3), Punk Shot (World 2 Players), Star Wars Arcade (US), Street Fighter II': Champion Edition (RE, bootleg), Super Shanghai Dragon's Eye (Korea), Tiger Heli (bootleg set 4) and Victor 5 - New AGEMAME games: Bonus Poker (Atronic), El Trebol de la Suerte (Bellfruit) (Adder 5), I C Money (Atronic), Lady Luck (Bellfruit) (Adder 5) and Wild Thing (Atronic) - New PinMAME games: Cyclopes (11/85), Fish Tales (P-2), Flash Gordon (French Vocalizer sound), Miss Americana (Bingo), Police Force (LG-4) Germany, Robocop (2.9) and WWF Royal Rumble (1.03 French) - New PEPlus games: Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (MGM Grand Casino) - New drivers: crospuzl.cpp, ddz.cpp, menghong.cpp, microdar.cpp, pokerout.cpp, psattack.cpp, snesb51.cpp and trivrus.cpp - New devices: cdp1804, cdp1805, cdp1806, ds1286, ds1386_8k, ds1386_32k, ds1685, ds1687, ds17285, ds17287, ds17485, ds17487, ds17885, ds17887, m68hc705j1a, mc68hc11d0, mc68hc11k1, mc68hc11m0, okim6650, pcf8584, sec and vrender0 - New mame.ini options: attach_window (WINDOWS VIDEO OPTIONS) and debugger_port (OSD DEBUGGING OPTIONS). Removed skip_mandatory_fileman (CORE MISC OPTIONS). - CPU . Fujitsu Micro F2MC-16: Checkpoint. (MESS) Prin-C now runs for a few seconds then enables Timer 0 (not yet implemented) and waits for it. . Hudson Soft HuC6280 PSG: Fixed unintended behaviour on timer value latch . KONAMI-1: Decrypt KONAMI1 opcodes in the debugger . MIPS-I . Address is only 26 bits (mips\mips1dsm.cpp). Clear softfloat exceptions. . Rework interrupts. This fixes a bug causing (MESS) IRIX to crash on 4D/20. Specifically, IRIX doesn't handle the case where the pc is pointing to an unmapped address when an interrupt occurs; presumably on real hardware this doesn't happen because the instruction fetch happens before interrupts are tested (or the pc isn't updated until after), and the fetch exception is prioritised over the incoming interrupt. . MOS Technology M6502: Added P |= F_I to STATE_RESET (https://www.pagetable.com/?p=410) . MOS Technology M65C02 . Correct memory access patterns for read-modify-write instructions. The extra operand cycle in CMOS versions becomes a dummy read rather than a writeback, and page boundaries do not figure into cycle timings for indexed modes. . D flag is cleared on reset in CMOS models . Motorola MC68HC05xx: Update notes . Motorola MC68HC11 . CPU device modernization: Replaced the old-style fake I/O space with callbacks. Added address spaces to handle remappable accesses to internal RAM and registers. Eliminated set_config in favor of separate device types for each model (not differentiated properly yet...). . Added internal latches and direction registers for ports. Related changes: Splitted up hc11_regs_r/w into many separate handlers. Give each MC68HC11 model its own specific io_map. Removed now-unnecessary readback handlers from skeetsht.cpp and taitojc.cpp. . MCS-51: Added some disassembly helpers for (MESS) Monon Color (mcs51\mcs51dasm.cpp) . NEC uPD7810: Fixed breakpoints. Added notes. . NEC V25: Added more interrupt SFRs, including underpinnings for macro service. . RCA CDP180x: Use conventional decimal numbering for registers . Rockwell R65C02 . Correct memory access patterns for read-modify-write instructions. The extra operand cycle in CMOS versions becomes a dummy read rather than a writeback, and page boundaries do not figure into cycle timings for indexed modes. . Don't throw away the branch offset for BBR and BBS (m6502\om65c02.lst). . Zilog Z180: Fixed verbose logging - SOUND . OKI MSM6376 ADPCM: Use device_rom_interface and converted logging calls to logmacro.h - DEVICE . DS17x85 RTC: Added device emulation for DS17x85 series of MC146818-compatible RTCs with additional features . Floppy: Added a SSO callback (machine\wd_fdc.cpp). Some machines do not connect the SSO output to control the floppy side. When this new callback option is used the wd_fdc no longer controls the floppy, rather calls the SSO callback. . Harddisk . Support non-CHD harddisk images in raw and 2MG format and harddisk images in HDI format . Check for CHD by header string, allows files not named .chd that are CHDs to be recognized (imagedev\harddriv.cpp) . Hitachi HD61830B LCD Controller: Number of characters must be even 2-128 . MagicEyes VRender0 Video Engine . Major refactoring of VRender0 SoC device. Improved encapsulation between video and machine SoC periperals. . Split up HWs in individual files where they don't belong to Crystal System HW, makes future development easier. . Untangled reads/writes to draw/display bankswitches from screen_update, now they can be unthrottled safely. . Added CRTC screen raw parameters. Added DMA hold feature and clear irq on mask writes, specific for P's Attack. . Improved Cross Puzzle flash loading, currently failing at POST for a SPU error. . Added some preliminary work, currently does some VRender3d pipeline fill with a debug trick. . Namco Custom: Added ROM definitions for undumped MCUs (machine\namcoio.cpp) . S3 ViRGE Graphics Card: Added PCI interface to S3 ViRGE and linear framebuffer support . Sega 315-5313 Megadrive VDP: Correct timer rate related to screen refresh rate. Simplified DMA behavior and handlers. Reduce duplicates and unnecessary lines. Fixed spacing. Use shorter / correct type values. Fixed debugger issue. Use struct for nametable. . Still Image: Added still-frame PNG image device for use by digitizers/cameras/etc (imagedev\picture.cpp). Other formats can be added, we already have libjpeg in 3rdparty. . Timekeeper: Fixed bcd wrap in machine\timehelp.h . Western Digital WD33C9x SCSI Controller: Clarify hardware reset. Hardware reset triggers a SCSI_STATUS_RESET interrupt when the MR signal is asserted, but this is also true when the device first powers on. Move the interrupt generation to device_reset so all hardware resets trigger the interrupt. - arkanoid.cpp: Use ordinary read handler instead of custom port for input mux - atronic.cpp: Identified video CPU, added new sets and fixed rom loading etc. based on information provided. Standardized the TMS screen hookup a bit using btoads as a reference. Added more onboard devices, including new PCF8584 Bus Controller skeleton. - bfm_ad5sw.hxx: Added flash PCB pinout to bfm_ad5.cpp - bfm_sc4.cpp, mpu5.hxx: Converted Barcrest/Bell Fruit Serial ELectronic Counter (SEC) to a proper MAME device (machine\sec.cpp) - calcune.cpp and segac2.cpp: Correct screen refresh rate. Added notes (https://segaretro.org/Sega_Mega_Drive/Technical_specifications). - changyu.cpp: Added gfxdecode - chihiro.cpp: Added secondary channel to IDE controller and derive NV2A from the agp_device class - dec0.cpp and dec8.cpp . Decapped and dumped the MCU for Birdie Try. Hook up MCU and removed simulation (Game now playable). Fixed rom names. Added PCB locations, correct rom labels and document the PCB combo. . Decapped and dumped actual MCU for Heavy Barrel (World). Clean up Heavy Barrel rom labels (ID 05461). . Verified Bad Dudes MCU dump as correct . Added DEC0 motherboard proms to baddudes, bandit, birdtry, hbarrel, hippodrm and robocop . Use correct sized proms for robocop - dec8.cpp: Hook up MCU for Last Mission. Fixed coinage settings. The MCU for the Japanese version has been created from the US version by patching the ID byte. - legionna.cpp and raiden2.cpp . Fixed sprite priorities for Seibu Cup Soccer and SD Gundam Sangokushi Rainbow Tairiku Senki (Game now playable) . Identified sprite priority bit for command $c480 (seibucop\seibucop_cmd.hxx), fixes 3rd level mid-boss in 'SD Gundam Sangokushi Rainbow Tairiku Senki' being submerged when touching ground layers. . Disable sprite DMA dest increment for 'SD Gundam Sangokushi Rainbow Tairiku Senki' if X positions are outside expected ranges, fixes sprite clipping. - midvunit.cpp: Minor bugfix and cleanup. Midway V-Unit linking stub. More likely implementation of m_comm_flags. - mtouchxl.cpp: Only include mouse on PS2 keyboards, avoids extra invalid mouse device on touchscreen drivers (machine\8042kbdc.cpp and drivers\mtouchxl.cpp) - naomi.cpp: Simplified Atomiswave key scheduling, get rid of 20bit key files (machine\awboard.cpp). - nemesis.cpp: Removed VBLANK attributes flag from salamand, blkpnthr, citybomb and nyanpani. Fixes sprites flicker in Salamander (ID 07401). - nexus3d.cpp: Added some preliminary work, currently does some VRender3d pipeline fill with a debug trick. - nmk16.cpp: Reduced duplicates. Added notes for screen raw parameters. - rulechan.cpp: Added 8255 PPIs - seta2.cpp: Fixed TMP68301 CPU1 and Seta X1-010 sound clock speeds in grdians and gundamex - subsino.cpp . Confirmed the bipolar PROM dump for 'G.E.A.'. Reparent the Victor 5 sets. . Added dumps of the missing samples ROMs for 'G.E.A.' and Victor 21. Added speech sounds through OKI 6295. - zr107.cpp: Moved DSP set_flag_input outside the drawing routines - Acrobatic Dog-Fight: Correct sound chip type - Athena no Hatena: Added joystick/buttons inputs. Note: Athena no Hatena is a quiz game that uses only four buttons for inputs. However, the hidden "Test Program" menu makes use of the standard stick/3-button input layout. With the default input mapping, the menus are unusable as the three SHOT buttons are unmapped. So we have two input configurations to allow the debug menu to be usable. More information about the Test Program menu: http://sudden-desu.net/entry/athena-no-hatena-debug-menu-and-functions. - Bionic Commando: More cleanups: Clean up notes and added TODO. Use pulse_input_line for NMI. Documented coin lockout and attribute RAM layout. Background layer color is actually 3 bits. - Casino Poker: Fixed Casino Poker (Ver PM88-01-21, German) (Game now playable) - China Gate: Update PCB information: Current document says it's unknown where are the background images stored. But it should be in the TRJ-100 custom package, that needs a custom adapter to dump it. Also add a side note that the TRJ-100 chip generates 5MHz clock for some unknown reasons, and used by some ICs as a clock. This may help to solve the speed problems in the future. - Cross Puzzle: Improved flash loading, currently failing at POST for a SPU error. - Dacholer: Dumped color prom and PBROMs located on top and bottom board. - The Deep . Hook up MCU and removed simulation. Correct sound cpu type. . Use 'DECO BAC06 Tilemap' device instead of custom routines - Goldart: Some rendering improvements. Added notes on DS5002 issues. - Hit Poker: Fixed regression in "Test BTN". Added DS17487 RTC. - Legend of Hero Tonma . Re-redumped the GAL of clone Legend of Hero Tonma (unprotected bootleg). The last dump we did didn't work on the real hardware, so we've dumped it again with different equipment and this new dump works fine on the real PCB. . Added PCB ASCII layout for clone Legend of Hero Tonma (Gaelco bootleg, Modular System) - Magic Purple: Added PCB layout - Mega Bonus Star II: Fixed graphics corruption and/or crashes caused by drawing outside screen bounds (ID 07398) - Neptune's Pearls 2: Added notes about the Cirsa Unidesa "960606-5" PCB. Added XTAL definition. - Olympic Darts (K7): Added PCB ASCII layout - P's Attack: Added DMA hold feature and clear irq on mask writes, specific for P's Attack. - Police Trainer: Use RAMDAC device - Popeye: Use real prom dumps for clones Popeye (bootleg set 1) and (bootleg set 2) protection - Pot O' Gold: Added MCU dump and very preliminary MC68HC705J1A MCU device to clone Pot O' Gold (U.S. Games, v580F) - Power Kick: Changed inputs to slot type - Q*bert: Added notes about differently sized roms found - Royal Poker '9: Correct bitswaps for clone Royal Poker '96 (set 4, C3 board). Now stuck at Program Check screen. - Simpsons Bowling: Redumped CD-ROM - Spotty: Hook up AT89C4051 audiocpu - Star Wars Arcade: Added (US) version. Redumped TGP rom mpr-16477.27. - Strategy X: Fixed stage 3 invisible bullets - Super Breakout: Verified main CPU clock - Teenage Mutant Ninja Turtles: Fixed input port configuration to allow player start buttons to work for clone (4 Players ver UEA) (ID 07396). - Tetris Giant: Dumped security PIC - The Tower of Druaga: Fixed the sound of the first credit is not played (machine\namcoio.cpp) (ID 00148) - Trocana: Added preliminary MSM6650 device and some test inputs - Fixed rom names in dacholer.cpp, dec0.cpp, m72.cpp, model1.cpp, segaybd.cpp, slapfght.cpp, subsino.cpp, system1.cpp and tumbleb.cpp - Dipswitch fixes in dec8.cpp, expro02.cpp, goldart.cpp and hitpoker.cpp - Description changes of Birdie Try (Japan revision 2), Cyclopes (12/85), Fire Trap (US), Fire Trap (US, rev A), Lady Liner (set 1), Mephisto (Stargame) (rev. 1.1), Mephisto (Stargame) (rev. 1.2), Poker Dice (V1.7), Ring King (US, Woodplace Inc.), Rhythm Nation (v01.00.04, boot v3.1.5) and Star Wars Arcade (Japan) - Renamed (caspoker) to (caspokera), (caspokerb) to (caspoker), (caspokera) to (caspokerb), (firetrap) to (firetrapa), (firetrapa) to (firetrap), (hbarrel) to (hbarrelu), (hbarrelw) to (hbarrel), (swa) to (swaj) and (victor5) to (victor5a). - MAME . VIDEO RENDERING SYSTEM . Better automatic group bounds behaviour for layout files (emu\render.h and rendlay.cpp) (ID 07379) . Removed tilemap.h from emu.h . Correct calculation of visible area height and width (emu\tilemap.cpp) . Added debug assert to validate cliprect (emu\tilemap.cpp) . LAYOUT: Allow inputmask=0 when inputraw=1 for canceling input listener section (build\complay.py) (ID 07400) . Removed single-use (and savestate unsafe) rand_memory function (util\coreutil.cpp and cpu\cosmac\cosmac.cpp) . Enabled default move vector/assignments in core_options and changed plugin_options code to use them (util\options.h and mame\pluginopts.cpp). . Removed Machine configuration macros and functions from emu\mconfig.h . Listxml . Refactored info_xml_creator::output(): The two variations of output() no longer duplicate logic. No longer relying on driver_enumerator::config() to create machine_config objects. Because driver_enumerator would cache all objects created, we would needlessly hog memory. . Simplifies listxml by collapsing the newly introduced enum info_xml_creator::devices_disposition into a bool . Changed info_xml_creator to use std::ostream. We are now passing the stream to every function, rather than sloppily keeping it in a member variable. . Speeding up -listxml by performing the heavy lifting asynchronously. Changed info_xml_creator to not use std::endl. . Ensuring that devices emitted by -listxml are sorted. This is primarily to make the output be deterministic. . Moved most of the implementation of info_xml_creator to anonymous namespaces. This is to keep things isolated to a single translation unit as much as possible. . strtok is not reentrant - it's not safe to call it any time you might be multi-threaded. . Creating an -attach_window command line parameter on Windows to attach to an existing window. Moved -attach_window option to Windows-specific code. Created an osd_set_aggressive_input_focus() function and exposed to LUA. Created a dummy implementation of osd_set_aggressive_input_focus() forSDL. . Changed mechanisms for overriding the mandatory file manager. Removed the -skip_mandatory_fileman command line option. Created an emu.register_mandatory_file_manager_override() LUA function to allow LUA plugins to substitute the mandatory file manager. Surpressing mandatory file manager when -str (seconds to run) is on. . Changed PORT_CHANGED_MEMBER param type from void * to u32 (emu\ioport.cpp) . LUA engine . Exposed sound buffer and samplerate to luaengine . Exposing input device classes, input devices and input device items to LUA. . Changed LUA seq_poll_start to take the input_item_class as a string. This seems to work around a problem that (at least for me) caused the'sol::object seq' parameter to not properly handle a specified sol::user. . Created emu.register_before_load_settings(), to allow LUA scripts to override default input port values before settings are loaded. New ioport_field methods/props ([set_]default_input_seq(), port). . Extracting input sequence cleaning logic into an seq_clean() function and exposing to LUA. Exposing ioport_manager::type_group() and ioport_field::keyboard_codes() to LUA. . Save state: Change workaround (emu\save.h) . Fixed makai high scores (hiscore\hiscore.dat) - Compiling . Fixed building using system rapidjson (mame\arcade.lua and video\midtunit.cpp) . Fixed build in newer Emscripten versions . Fixed 'cleansrc' target for Unix/Linux (makefile) . Enable precompiled header usage in the Visual Studio compiler. But only for libraries emu frontend precompile dasm optional. . Fixed Solaris 2.11 (non-Oracle) . Improved cleansrc target for source content and srcclean capabilities (makefile) . Resolved [[nodiscard]] warning from c_str() call (emu\rendfont.cpp). In C++98/03, basic_string::c_str() was allowed to be a reallocation to insert the null terminator. MAME is ensuring this actually happens with a do-nothing call to c_str(). In C++11 and later, this is prohibited, and the string is mandated to be always null terminated. As a result Visual C++ marks c_str() with [[nodiscard]], triggering a warning here for discarding the result. . Explicitly use Ubuntu Trusty (travis.yml). Note: Due to ppas used the travis-ci only works when trusty is being used. With xenial being the default as of August 2019 the builds fail most of the time. Request trusty explicitly until the CI configuration can be migrated to a more recent Ubuntu release. . Migrate travis-ci configuration to Ubuntu Bionic. Make sure Qt5 is the default when tools like moc are being called. - Debugger . Make debug memory view show correct data when chunks are too small for a space's address shift (debug\dvmemory.cpp) . Fixed 32bit overflow in some debug commands (debug\debugcmd.cpp) (ID 07382) . Added R65C02 to UNIDASM . Added address shift for SCUDSP to UNIDASM . Move to the position of the cursor only if the cursor is actually visible. Otherwise it would jump to a seemingly random position in certain cases (debug\dvdisasm.cpp). . Added new GDB stub debugger. This debugger can be used to connect to an external debugger that communicates using the GDB Remote Serial Protocol, such as GDB itself or many other GDB frontends. Currently i386 (ct486), arm7 (gba), m6502 (apple2e) and ppc (pmac6100) and z80 (pacman) are supported. Side-effects must be disabled before reading memory, otherwise apple2e starts failing after the first read to 0xc080. Since GDB doesn't support those processors, I made up the features name with "mame.". I also had to choose the registers to export in the target.xml file, and since I don't have any experience with these processors I don't know if I made the best choice. Enabled GDB stub debugger in mac and windows builds. 0.212 - New games: The Boat, Double Joker Poker (CGI) and Super 21 - New Working games: Street Fighter II: The World Warrior (RK, bootleg) - New Non-Working games: Bingo Time, Bonanza Enterprises' Joker Poker, 'Kodai Ouja Kyouryuu King - Mezame yo! Arata-naru Chikara!! (Japan, Ver 4.000) (MDA-C0061)', Lucky 21, Lucky 21-D, Lucky 25, Lucky 37, 'unknown Chang Yu Electronic gambling game 1' and 'unknown Chang Yu Electronic gambling game 2' - New clones: Black Tiger (Modular System), Casino Poker (Ver PM88-01-21, German), 'Dragon World 3 EX / Zhongguo Long 3 EX / Dungfong Zi Zyu 3 EX / Chuugokuryuu 3 EX (ver. 101CN)', F1 Super Lap (World, Unprotected), Gold Strike (Barcrest) (MPU5) (V1.00, Spanish, Bilso S.A.), Legend of Hero Tonma (Gaelco bootleg, Modular System), New Lucky 8 Lines (set 7, W-4, encrypted), 'Photo Y2K 2 / Chaoji Bi Yi Bi 2 / Dajia Lai Zhao Cha 2 / Real and Fake 2 Photo Y2K (ver. 100, Japanese Board)', Royal Casino (D-2608208A1-1, Smaller Board, set 2), Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UEA), Video Hustler (bootleg, set 4), Wyvern F-0 and Zip & Zap (Less Explicit) - New PinMAME games: Cue (Prototype) - New drivers: blktiger_ms.cpp, changyu.cpp, lucky37.cpp and tvg01.cpp - New devices: cdd2000, cdr4210, cdrn820s, cw7501, i80c51gb, m68hc05l11, m68hc05l9 and scsi_s1410 - New mame.ini options: skip_mandatory_fileman (CORE MISC OPTIONS). Removed use_backdrops, use_overlays, use_bezels, use_cpanels and use_marquees. - New artworks . bm7thmix, bmclubmx, bmfinal, dplay, einning, myhero, ripcord, swtrilgy, tornbase and truxton . Updated bm1stmix, bm2ndmix, bm3rdmix, bm4thmix, bm5thmix, bm6thmix, bmcompm2, bmcompmx, bmcorerm, bmdct, cheyenne, choplift, crbaloon, ebases, frogger, hmcompm2, hmcompmx, kod, outrun, panic, shdancer, spyhunt, subroc3d, toutrun, turbo and wboy - CPU . DEC T11: Switch to MACRO-11 syntax, decode deferred addressing modes (cpu\t11\t11dasm.cpp) . Fujitsu Micro F2MC-16: Preliminary Fujitsu F2MC-16 CPU core. Added MB90610A and MB90611A microcontrollers. First pass with working IRQs. Added F2MC-16 to unidasm. . Hitachi H8/3002, H8/3003, H8/3006, H8/3008 and H8/3048 . Added configuration option to restrict address space to 20 bits . Undo variable shadowing for H8/3048 . Intel I80186: Fixed weird handle_eoi bug . Intel I386 . Added hardware breakpoint functionality . vm86 segment flags are 0xf3 as cs must be read/write like real mode . Use floatx80_scale for fscale . MCS-48: Workaround for interrupt latency issue. A better fix for the JNI problem. Documented a few more variants (mcs48\mcs48.cpp). . MCS-51: Disassembler update: Restored some 8052 SFR and bit names that were inadvertently omitted for more advanced models. Added a few more T2-related names. Added i8xc51fx and i8xc51gb disassemblers with additional SFR and bit names. Removed i80c51 from unidasm (actual differences from i8051 are not significant). . MIPS-I . Added bus error line . Diagnostic fixes. Some fixes identified by MIPS Rx3230 diagnostics: Assert/clear irq based on fpu exception state and mask entryhi/lo reserved bits. . Mitsubishi M37710S4 . Kill the unnecessary set_line indirection. Break up m37710_internal_r/w and m_m37710_regs block. Fixed interrupt-related regression. Added internal clock divider. . Fixed Alpine Racer regression (port writes are blocked when direction register = 0, not FF). Fixed UART control register 1 writes and raveracw regression. More UART register adjustments. . Motorola M6805: Allow vectors to be placed at an internal boundary other than the end of the address space. Eliminated the generic m6805_device type. . Motorola MC68040: Stop CINV DATA instruction from causing F-line exception (cpu\m68000\m68k_in.lst and m68kops.cpp) . Motorola MC68HC11: Implemented more of the instructions. Limited testing of these additions on 6800 code. The fdiv instruction appears the only one remaining now. Cleaned up some of the existing definitions to make the patterns more consistent, and to make it easier to spot inconsistencies and errors. . NEC V5x: Removed v33_internal_port_map() (derives from v30 not v33) . Philips SCC68070: Converted device to use logmacro . Zilog Z8681: Fixed Z8 calculation of half carry flag. Z8671 BASIC no longer prints "12" when the result is 18 (z8\z8ops.hxx). - SOUND . MIDI: Fixed reception of several System Common messages (midi\portmidi.cpp) . Taito Ensoniq Sound System: Saner dividers for MB87078, fixes regression with Taito F3 volume control being too quiet (audio\taito_en.cpp). - DEVICE . 6522 VIA: Changed most mappings into m() . Cassette image: Cleanup and fixed a few minor but annoying bugs: Create new tape, hit Reset: fatal error - internal error. Load empty file to record onto, same error. Randomly have to hit Play a number of times before it takes. Randomly tape "plays" silently with the motor off. . Floppy . First stab at weak zones handling (imagedev\floppy.cpp) . Surpass some copy-protected tracks (formats\dsk_dsk.cpp) . Intel 8155 RIOT: Update port outputs upon mode change . Intel 8212 I/O Port: Simplified read/write handlers . Intel 8275 CRTC . Continue DMA bursts when display is stopped . Added LC output callback . Calculate refresh rate from software-configured parameters . K053936 Video Controller: Added zoom draw for bitmap_rgb32 . Namco C355 (Sprites): Don't added shadow offset to black_pen, it will crash MAME (and black+shadow = black anyway). Fixes crash during attract mode in sws95, sws96 and sws97 (ID 07370). . SCSI . Moved modern SCSI CD/HD devices into devices\bus\nscsi. Default list of nscsi devices. . Class overhaul: SCSI slot options are no longer required to implement nscsi_device themselves. Instead they implement nscsi_slot_device_interface, which contains a finder for a nscsi_device. This is to accommodate LLE SCSI drives with their own LSI interface chips. SCSI bus device connection is now done through device_resolve_objects rather than device_config_complete (The pessimized code to access the device finder is because that will not have been resolved yet). Added a validity checking method for nscsi_connector. . Minor sequence bug (machine\ncr5390.cpp) . Sega 315-5124 SMS1 VDP: Adjusted horizontal screen positions . Western Digital WD33C9x SCSI Controller: Added interrupt on reset. Don't fatalerror. The SGI 4D/20 boot prom likes to write to the command register immediately after a hard reset (which raises an interrupt), so we can't die here. - bfm_ad5sw.hxx and bfm_sc5sw.hxx: Dumped the PLDs from the Bellfruit Scorpion Five main PCB and it's ISS Adder 5 Video Card - bfm_sc5sw.hxx: Added PCBs ASCII layouts - bzone.cpp: Simplified handlers and silence some dummy reads - cdi.cpp: Moved Quizard MCU HLE from SCC68070 device to CD-I driver and converted SCC68070 to use logmacro - cps1.cpp . Moved palette init into machine_config . Provided correct dump of CDT 21 rom for clone Cadillacs and Dinosaurs (Asia TW 930223) . Redumped clone Street Fighter II: The World Warrior (RK, bootleg). Added correct gfx roms and promoted to working. . Correct roms for clone Street Fighter II': Champion Edition (M6, bootleg), which was incorrectly using standard ROMs but for 2 of the program roms. - cps1.cpp, cps2.cpp and fcrash.cpp: Made use of the standard romentry.h macros - deco32.cpp: Simplified handlers. Reduced unnecessary handlers, runtime tag lookups, region spaces and unnecessary lines. Fixed spacings. Use shorter/correct type values. - dooyong.cpp: Simplified handlers. Use callback for ROM based tilemap attributes. Implemented tilemap ROM limitation. Added notes. Allow tilemap drawing with masked priority. Reduced unnecessary lines. Fixed namings and spacings. Use shorter/correct type values. - dwarfd.cpp: Fixed regression by reducing CRTC clock - gstriker.cpp: Added DIP locations and fixed CPU order. Confirm defaults. - gticlub.cpp, hornet.cpp, nwk-tr.cpp and zr107.cpp . Greatly improved inputs (among other things). Fixes analog controls do not respond in Jet Wave (ID 07188). . Restored PORT_PLAYER() for gticlub.cpp and hornet.cpp. Added DIP location for gticlub.cpp. - iteagle.cpp: Fixed gtfore02, gtfore03, gtfore04, gtfore05 and gtfore06 fails to boot into the game (machine\iteagle_fpga.cpp) (ID 07373) - itech32.cpp . Reduced logging noise . Use generic latch device for sound communications and added second latch to 68EC020 systems. This is an attempted fix for (ID 07098; Incorrect sounds playing during gameplay in all Golden Tee sets). It might not be enough, but it at least undoes the ITech32 machine config modernization in MAME 0.201 and thr inversion of CPU order. - ksys573.cpp: 'Konami 573 digital I/O board' now correctly reports the actual number of samples already played (instead of rounding up by one discrete mpeg frame in advance and disregarding samples that have been copied to the stream but not yet actually played) (sound\mas3507d.cpp). - legionna.cpp and raiden2.cpp: Fixed flipped sprites alignment in macro command $c480 for 'SD Gundam Sangokushi Rainbow Tairiku Senki', noticeable for stage 3 mid-boss (seibucop\seibucop_cmd.hxx). Added notes. - m72.cpp: Use buffered_spriteram16_device for buffered spriteram. Reduced duplicates, runtime tag lookups and unnecessary lines. Simplified handlers. Use seperated address map related to config and shorter/correct type values. Correct PCM sample rates. Rounding fixes. - metro.cpp and hyprduel.cpp: Converted screen update method to bitmap_rgb32 (video\imagetek_i4100.cpp) - midtunit.cpp . Added MIDTUNIT_LOG_PNG define to log unscaled 32bpp PNGs of all DMA draw calls. Added optional debug #define to emit JSON metadata about each DMA draw call. Removed #define-based PNG/JSON logging and moved it to a debugger command (video\midtunit.cpp). . Clarified the ROM offset values in metadata by splitting into byte and bit offsets - model2.cpp: Changed .lay workaround, also fix lightgun cursor not showing in Virtua Cop (create "screen" before "ioboard"). - mpu5.hxx: Added some game hardware info and PCB ASCII layout - namcos2.cpp: Drop ROZ optimization hack, which was causing missing backgrounds for Phelios. - nemesis.cpp . Gradius (Bubble System) . Fixed 72-scanline timer for bubble system hardware, which fixes the logo draw speed, respawn time and other issues in the Bubble System version of Gradius. Fixed the sound Z80 speed, which was too fast on the pre-Salamander hardware and fixed the sound cpu timer to run at the correct rate based on the Nemesis schematics. Added lots of hardware notes and TODOs based on tracing and PCB pictures. . Demoted Gradius (Bubble System) to MACHINE_UNEMULATED_PROTECTION. Note: Game requires ~16 seconds to resume after each death (way too much?), has missing gfxs on title screen logo and still needs proper MCU emulation. . Documented PCB ID for Salamander/Lifeforce; note possibly undumped speech ROM for clone Lifeforce (Japan). . Converted driver to screen raw parameters . Fixed irq generation for Hyper Crash, fixes coin insertion and gameplay glitches. - nmk16.cpp: Reduced duplicates. Moved Afega related stuffs into afega_state. Cleanup Twin Action OKI bankswitching routine. tdragon2 and raphero has address-swapped main RAM; related to protection? Simplified handlers. Reduced unnecessary lines and runtime tag lookups. Fixed spacings and namings. Use shorter/correct type values. Correct sound output (Afega games aren't have a stereo output). Fixed metadata. Added/Fixed notes. Clone Vince (bootleg of Red Hawk) seems like bootlegger name. Added 'horizontal' in horizontal screen version of Red Hawk games. Fixed tilemap RAM bankswitching behavior - mark tilemap dirty when RAM bank is changed. Fixed sound output balance. Fixed metadata related to regional notice. Correct clocks related to on-board XTALs. - pgm.cpp . Added configs related to ARM7 speed and on-board XTALs. Reduced duplicates and unnecessary lines. Added notes and version infos. Fixed metadatas. . Correct 'The Killing Blade Plus' ARM7 clock (machine\pgmprot_igs027a_type3.cpp). Reference: http://www.gc8tech.com/ - playch10.cpp: Fixed order and updates for both screens (ID 05102) - playch10.cpp and vsnes.cpp: Fixed light gun regression in Duck Hunt (PlayChoice-10), Hogan's Alley (PlayChoice-10), Wild Gunman (PlayChoice-10), Vs. Duck Hunt, Vs. Gumshoe (set GM5) (ID 03862) and Vs. Hogan's Alley (ID 07331) - seta.cpp: Clickable artwork flag for some games - seta2.cpp: Verified sound tempo, pitch and cpu clock. - taitojc.cpp: Stop CINV DATA instruction from causing F-line exception for MC68040 CPU, fixes reset loop after startup screen in all sets (ID 07357). - vamphalf.cpp: Don't change screen size/fps when flipscreen state is changed. Make sprite drawing routine related to cliprect. Reduced duplicates and unnecessary lines. Simplified handlers. Fixed spacings. Added notes. - usgames.cpp: Converted to MC6845 update row, fixes screen alignment. - vamphalf.cpp: Don't change screen size/fps when flipscreen state is changed. Make sprite drawing routine related to cliprect. Reduced duplicates and unnecessary lines. Simplified handlers. Fixed spacings. Added notes. - 1943 . Decapped and dumped C8751H-88 MCU for 1943: The Battle of Midway (Euro) and clones (US), (US, Rev C), (Japan), (Japan, Rev B) and (Japan, no protection hack) and 1943: The Battle of Midway Mark II (US) and 1943 Kai: Midway Kaisen (Japan). . Hooked up MCU and removed simulation. - Bagman: Mark clones Bagman (Stern Electronics, set 1) and Bagman (Taito) PROMs as bad, as per MT02508 (Incorrect colors on Stern/Seeburg logo) - Battletoads: Correct typo in audiocpu->set_periodic_int - Bionic Commando: Proper MCU hookup and removed hacks. Correct audio CPU NMI source. - Choplifter: Redumped Choplifter MCU and removed patches - Cycle Shooting: Mark some roms as BAD_DUMP as they contain significantly less data than the bootlegs, and will definitely need to be checked if/when an original PCB shows up to dump the MCU. - Fuusen Pentai: Dumped color proms - Gardia: Added known PALs to clone Gardia (Japan, 317-0006) - Guilty Gear Isuka: Dumped "Sammy Atomiswave MPSYSTEM" device. Note: 4-cabinet splitter device, likely was used in GG Isuka and maybe in 2-player AW-NET games too. - Hebereke no Popoon: Documented debug mode - Kicker: Workaround for Service Mode (ID 00349) - Legend of Hero Tonma: Make clone Legend of Hero Tonma (unprotected bootleg) boot. Seems the graphics hw is rather different. - Moon Cresta: Marked clone Moon Cresta (bootleg set 4) as not working pending a redump. Note: The second half of code is missing in rom $03800. - Night Driver: Changed resolution to 256x240. Draw tiles manually. - Rainbow Islands - Extra Version: Dumped C-CHIP EPROM data - Sega Rally Championship: Dumped correct sound roms for clones 'Sega Rally Championship - DX' and 'Sega Rally Championship - DX (Revision A)' - Senjyo: Fixed background pixel layer width/enable long standing regression - Spinal Breakers: Fixed regression in machine config (ID 02060) - Standard Change-Makers System 500 / 500E: Identified CPU type as 80C51GB (specific differences obviously not emulated) - Star Rider: Added fake CHD - Super Masters Golf: Fixed the swing power controller emulation (ID 04159) - Survival: State BPROM type and verified colors - Toki: Added missing prom to clone Toki (Modular System) - Witch Card: More accurate, less hacky interface between PIA and PSG for clone Witch Card (Falcon, enhanced sound). - World Rally: Fixed output latch addressing. Fixes Coin1 + Coin2 do not function (ID 07385). - Wyvern F-0: Dumped and hooked up TAITO68705 MCU - Fixed rom names in berzerk.cpp, cps1.cpp, phoenix.cpp, system1.cpp and wyvernf0.cpp - Dipswitch fixes in gstriker.cpp, gticlub.cpp, hornet.cpp, legionna.cpp, nwk-tr.cpp and zr107.cpp - Description changes of Blue Hawk (Japan, NTC license), 'Dragon World 3 EX / Zhongguo Long 3 EX / Dungfong Zi Zyu 3 EX / Chuugokuryuu 3 EX (ver. 100)', 'DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V100)', 'DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05.Master Ver, 68k Label V101)', 'DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07.Black Ver)', 'DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver)', 'DoDonPachi Dai-Ou-Jou Black Label (Japan, 2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion)', Gemcrush (Japan, prototype), Gulf Storm (Japan, Media Shoji license), Primella (Japan, NTC license), Red Hawk (horizontal, bootleg), Red Hawk (horizontal, Greece), Red Hawk (horizontal, Italy). Sadari (Japan, NTC license), Royal Casino (D-2608208A1-1, Smaller Board, set 1), Spectrum 2000 (vertical, Korea), Wyvern F-0 (Rev 1) and Zip & Zap (Explicit). - MAME . VIDEO RENDERING SYSTEM . Make layout format more flexible: . There is no longer a concept of "layers" - there are only screens and elements . Elements are now instantiated with . Screens and elements can have explicit blending mode specified with blend="..." . Default blending mode for screens is "add" and default for other elements is "alpha" . Other supported modes are "none" and "multiply" . This removes the options to enable/disable layers individually - use views instead . Legacy layouts can still be loaded and support won't be removed for at least a year . The current artwork model is over-stretched. It's based on a Space Invaders cabinet model, and isn't applicable to a lot of the systems MAME emulates now. The fact that MAME has to switch to an "alternate" mode to deal with games like Golly! Ghost! without requiring pre-matted bitmaps shows that the Space Invaders model wasn't even adequate for general arcade use. It shows in that for a lot of the systems that heavily depend on artwork, people just seem to randomly choose layers for elements until they get something that works. Also, the fact that MAME will switch to an alternate (Golly! Ghost!) mode depending on the combination of elements is a trap for people learning to make artwork. There are cases that the current approach of implying the blending mode from the layer doesn't work with. Examples include LEDs behind diffusers (requires additive blending for layout elements), and mutliple stacked LCD panels (requires RGB multiplication for screens). For configurability, it's now a lot easier to make multiple views using groups. For example, if you want to make it possible to hide the control panel section of your layout, you can put the control panel elements in a group and create views with and without it. I will gradually migrate the internal artwork to use the new approach. I have an XSLT stylesheet that helps with this, but I'm not comfortable adding it because it isn't a complete solution and it still requires manul steps. I wanted to get the re-worked pointer handling done sooner so I could push them both at the same time, but unfortunately various things have prevented me from progressing as quickly as I wanted to. Sorry guys, that stuff's going to have to wait. . Don't crash when a layout references a conditional I/O port field (emu\rendlay.cpp) . PWM Display: Fixed savestate problem (video\pwm.cpp) . Removed TEXFORMAT_PALETTEA16 . Some simple screen ind16 -> rgb32 conversions (drivers\kinst.cpp and sbrkout.cpp) . Fixed fatalerror with PRIMFLAG_TEXFORMAT(TEXFORMAT_RGB32) | PRIMFLAG_BLENDMODE(BLENDMODE_RGB_MULTIPLY). Renamed draw_quad_argb32_multiply to draw_quad_rgb32_multiply since it actually doesn't multiply per pixel alpha (emu\rendersw.hxx). . Handle layouts that wanted screens to be opaque. if you have a layout with only screens and need to add, mark them explicitly. haven't tracked down the lightgun pointer issue yet. . Additional fix to MAME slowdown on screenless view (MAME 0.207: Stop frameskipping constantly on screenless systems with frameskip=0 and don't use iter count). . Render 7seg off-segments and background with alpha, this allows LCD 7segs (emu\rendlay.cpp). . Allow per-layer blend modes supplied by driver for screens, as required for Laserdisc overlays (emu\rendlay.cpp). This is a change in behaviour, and it means that games like Golly! Ghost! will need an explicit blend mode specified in the XML. I'm not entirely happy with the situation, but a better, more general solution than this would require some serious refactoring to MAME's renderer. . DEVICE: Reverted unnecessary change from MAME 0.211 in emu\devcb.h (isnull() checks the list of unresolved functions along with the list of resolved ones, so resolve_safe() doesn't really need a return value as long as it is called second). . UI . Changed the various usages of UI_*COLOR to be calls to frontend\mame\ui\moptions.h. The various UI_*COLOR macros were implemented as calls to decode_ui_color, which cached the values for the various options in a static array, which was obviously a gross hack. This refactoring is strategic because I am trying to confine awareness of mame_ui_manager to code in frontend\mame\ui, and the implementation of decode_ui_color() relied on the ability to access mame_ui_manager as a singleton from outside this code. Created a ui_colors object, so that queries for UI RGB values would not always require parsing strings. Replaced UI_TARGET_FONT_[ROWS|HEIGHT] and UI_BOX_[LR|TD]_BORDER macros with property calls. These macros were implemented with a call to a function (get_font_rows()) that opportunistically stashed the results of option accesses in static variables; in other words, a gross hack. Because get_font_rows() attempted to access mame_ui_manager as a singleton, it was an obstactle to providing an alternative implementation of ui_manager. Removed stray debugging cruft that found a way into the other PR. Converted a few more options().zyx_color() to colors().zyx_color(). . Disable ui startup screens for "-video none" . Fixed segfault when trying to access some image option that does not exists (emu\emuopts.h and image.cpp) (ID 06654) (ID 06655) (ID 06677) (ID 06880) (ID 07377) . LUA engine . Added video:size(), video:pixels() and screen:refresh_attoseconds(). pixels() and size() correspond to internal game resolution covering all screens and internal pixel colors. The same values are used for bitmap dumping. Similar things available for screen_device LUA library take into account final UI resolution and colors, so they can't be used when accurate framebuffer is needed. refresh_attoseconds() allows to calculate precise numerator and denominator for framerate. . Moving paste() from mame_ui_manager class to natural_keyboard class, exposing to LUA. Exposing sound_manager and natual_keyboard object to LUA. Making video_manager::effective_frameskip() public and exposing via LUA. Saving snapshots in LUA now supports absolute paths. Exposed various methods/properties on device_image_interface to LUA: Exposing must_be_loaded and display() on device_image_interface's LUA implementation. Exposing device_image_interface::create() to LUA. Exposed the ability to set input seqs on ioport_field in LUA. . Exposed miscellaneous ioport_field methods and properties to LUA: ioport_field::type_class(), ioport_field::seq(), user values on ioport_field and writing user values on ioport_field. Exposing device_image_interface::[brief_]instance_name() to LUA. Added ui_input_manager::[set_]presses_enabled() and exposed to LUA. . Created a -skip_mandatory_fileman option (skip prompting the user for any mandatory images with the file manager at startup). Added support for profiling LUA. . LUA boot.lua file now handles multiple paths (delimited by semicolons) on -pluginspath. . Sound . Suggestion for very-low-latency mode on PortAudio. Needed to keep audio in sync when playing rhythm game machines such as Konami System 573. This is because the lowest audio_latency currently supported (audio_latency 1) introduces at least 10 ms of variable latency. I am unsure how to go about this without breaking backward compatibility so I set it to work only when audio_latency is 0 (which was previously ignored by mame itself and was treated equivalent to audio_latency 1). I am aware that setting audio_latency to 0 is not supported by many mame frontends, but this change seems natural. Otherwise, would it be better to add a new mame.ini option, or to automatically enable this low-latency mode when pa_latency is set lower than, say, 0.01 (10ms), which would break people's configurations if they already rely on the old behavior? (sound\pa_sound.cpp). . Get rid of sound\wave.h usage . Save state: Print all duplicate savestate entries found rather than bailing after the first one (emu\save.cpp) . Screenshot/AVI . Modernized imagedev\snapquik.cpp delegate and removed MCFG macro (quickload; drivers\jaguar.cpp) . Added functionality to read RGB24 and YUV420p uncompressed video frames (util\aviio.cpp) . Removed generic/slot macros . Coin fixes for Big Karnak, Return of Lady Frog, Splash!, Squash, TH Strikes Back and Thunder Hoop (machine\gaelco2.cpp) . Removed a stray (likely vestigial) variable from windows\window.cpp. Changing win_window_info::draw_video_contents()'s update parameter to be bool and winwindow_has_focus() to return bool. . PLUGINS . Refactored MAME's plugin system (plugins\boot.lua, mame\clifront.cpp, luaengine.cpp, mame.cpp, pluginopts.cpp/h and ui\miscmenu.cpp) . Indicate that plugin errors are now fatal . hiscore.dat update (plugins\hiscore\hiscore.dat) . MULTI-LANGUAGE: Updated Turkish translation - Debugger . Fixed calculation of TMS34010/020 shifted memory addresses for debug save and load commands (debug\debugcmd.cpp) . Added CMDFLAG_CUSTOM_HELP, in order to flag custom device-specific commands that have custom help text (debug\debugcon.cpp). . Fixed bug in error-log window. New Memory Window would clear the log (debugger\win\debugwininfo.h and logwininfo.h). . Updated debug media menu to latest version (debugger\win\consolewininfo.cpp) 0.211 - New games: Gemcrush (Japan) and Pro Stepper Tele Cardioline (Salter Fitness Stepper V.1.0, Checksum F208) - New Working games: Bikkuri Pro Wrestling, Pro Cycle Tele Cardioline (Salter Fitness Bike V.1.0, Checksum 02AB) and RyuKyu (Rev A, Japan) (FD1094 317-5023A) - New Non-Working games: Fuusen Pentai, Goldart (Spain), Korokoro Pensuke, Magic Bomb, Olympic Darts (K7), Queen Bee Bingo, Rhythm Nation (v01.00.04), Super Train (Ver. 1.9), Taiko no Tatsujin 6 (Japan, TK61 Ver.A), Treasure Bonus (American Alpha, Ver. 1.6), Treasure City (Ver. 208) and Treasure Mary - New clones: Big Karnak (Modular System), Captain Zodiac (World), Champion Poker (v101), Champion Poker (v201F), Champion Poker (v210KS), Champion Poker (v300US), Cyber Troopers Virtual-On Relay (Japan), Gals Panic (Modular System bootleg), Goldart (Portugal), 'Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100HK, ARM ver. V100HK)', Mushiking The King Of Beetle (2K3 2ND Ver. 1.002-, World), 'Photo Y2K / Chaoji Bi Yi Bi / Dajia Lai Zhao Cha / Real and Fake (ver. 103, Japanese Board)', Puzz Loop 2 (Japan 010226 Phoenix Edition) (bootleg), Super Invasion (Electromar, Spanish), Thunder & Lightning (bootleg with Tetris sound, set 2), Toki (Modular System) and Treasure City (Ver. 202) - New PinMAME games: Corvette (PX3 Prototype) and Master - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Paranoia (TourVision PCE bootleg) and Racing Damashii (TourVision PCE bootleg) - New drivers: bigkarnk_ms.cpp, galpanic_ms.cpp, goldart.cpp and toki_ms.cpp - New devices: ad558, centronics_chessmec, chessmachine, i8041ah, i8042ah, i8741ah, i8742ah, isa_chessmdr, isa_chessmsr, squawk_n_talk, squawk_n_talk_ay, superio_device, tc0620scc and upd7004 - CPU . ARM: Use standard_irq_callback, fixes (MESS) ChessMachine ISA card lockup. . Hitachi HD44801: Removed port enum (cpu\hmcs40\hmcs40.h) . Hitachi SH-2: First pass over SH7604 SoC refactoring. Fixed division unit overflow flag clearance. . Intel C8095 and Intel P8098: Added baud rate register (mcs96\i8x9x.cpp) . Intel I8086: Delay interrupts for one instruction after sti . Intel I386/Athlon: Removed some MSVC warnings. Fixed up some commented out testing code (i386\cache.h). . MCS-48: Added (unemulated) CMOS IDL opcode (mcs48\mcs48dsm.cpp). Update documentation. Further distinction of UPI variants. . Motorola M6805: Flag fix. CLRX doesn't clear the carry flag (m6805\6805ops.hxx). . Motorola MC680xx: Accurate byte-smearing write behavior for 32-bit members of the M68K family. Apply byte smearing to PMMU as well. Fixed PMMU translation error that broke (MESS) Macintosh II (m68000\m68kcpu.cpp). . Zilog Z180: Separated out internal registers by function and get rid of a lot of not-so-useful macros - SOUND . TMS5220: Switch the log mask define comments to be above the defines. Adjust delay time between /RS going low and /READY being set. Note: The datasheet doesn't list this time exactly, but something close (time between /RS going low and the data being valid on the bus). It's measured in usec, not clock cycles. . Yamaha YMF278B OPL4: Eliminated clock macro - DEVICE . 6821 PIA: Fixed method names in comments. Removed unused set_port_a_z_mask calls and m_port_a_z_mask variable. For port A reads, only use the DDR for reading pins unless. Provide an override option when a device depends on slightly undefined behavior of an external device driving the pins and changing the value read. One board seems to need this (coinmstr). I don't have the schematics, but it seems it uses this to check its meter operation. . DECO MXC06 Sprite . Fixed regression (MAME 0.210), fixes Birdie Try sprite problems on the title screen and during gameplay (ID 07345). . Fixed Bandit regression. Removed outdated comments. Further fixes of multi-width sprite handling. . Floppy: Don't let the absence of the new callback break the device. Emulated writes to master reset line; allow read side effects to be disabled. Adopt new mr_w handler in various drivers (machine\wd_fdc.cpp). . HLE PS/2 Mouse: Added high-level emulation of PS/2 mouse (bus\pc_kbd\hle_mouse.cpp) . Imgtool: Solved mess_hd issue (ID 06693; Imgtool will crash or give "Unexpected error" or loops endlessly upon attempting to create certain formats of image files) . Intel 8275 CRTC: Cancel out reverse video for hidden attribute characters. Improved and simplify handling of field attributes. . Keyboard . Minor tweaks. Resolve aux irq callback. Renamed mouse to aux. Added logging and some notes. Added a Compaq rom dump (machine\at_keybc.cpp). . PC/AT and PS/2 101-key keyboard works now. Command issue resolved by bug-fix to 6805 (bus\pc_kbd\pcat101.cpp). . MC68340 Timer Module: Fixed prescaler calculation. Handle various reset behaviors. TOUT changes recorded in status register. Better handling of COM flag and compare register being zero. Reload not immediately after reaching zero but on next cycle (machine\68340tmu.cpp). . MC68681 DUART: Correct MC68340 module baud rate calculation. Save a few more registers. . NB1413 Mahjong Custom: Kill NB1413M3 busy flag publicness and busyflag hack in threeds (machine\nb1413m3.cpp) . PC/AT Keyboard Controller: Minor tweaks. Resolved aux IRQ callback. Renamed mouse to aux. Added logging and some notes. Added a Compaq rom dump (machine\at_keybc.cpp). . PCI: Correct bug (machine\pci.cpp) . RAMDAC: Added new Brooktree Bt47x 256 Color RAMDAC device (video\bt47x.cpp) . Sega 315-5124 SMS1 VDP: Implemented /NMI-IN as a line write handler rather than as an input callback . Simple Capcom (Tiger Road) Sprite: Internalized gfxdecode. Fixed spacings and notes. Reduced unnecessary lines. Use shorter/correct type values (video\tigeroad_spr.cpp). . Taito Custom . Taito PC090OJ: Internalized gfxdecode. Use callback for color bank/priority behavior. Reduced defines and unnecessary lines. Simplified handlers. Use shorter/correct type values. . Taito TC0091LVC: Internalized on-chip functions (ROM/RAM bankswitching, GFX, IRQ vector and enables the Palette and Vregs). Use address_map_bank_device for ram banks. Use lr8 for bankswitched ROM reading. Simplified handlers. Reduced unnecessary values, lines, pointers and duplicates. Fixed spacings. Use shorter/correct type values. Added notes. . Taito TC0100SCN: Added sync granularity function with bg gfx. Internalized gfx. Added color base for when color base is differs. . Taito TC0280GRD / TC0430GRW: Internalized gfxdecode. Allow masked priority . Taito TC0480SCP: Internalized gfxdecodes. Correct text rom behavior of bootleg boards. . Taito TC0620SCC: Added gfx layout for hi 2bpp data of 6bpp gfx roms. Used for all TC0620SCC tile based games. . VGA/SVGA display parameter correction (bus\isa\vga.cpp, vga_ati.cpp, svga_cirrus.cpp, svga_s3.cpp, svga_trident.cpp and svga_tseng.cpp; ) . Z80 SCC Channel: Reduced gratuitous logging. Read/write handler cleanups. Simplified handler signatures. Renamed cd_ab_r/w and ba_cd_inv_r/w to dc_ab_r/w and ab_dc_r/w to be more hardware-accurate. Eliminated cd_ba_r/w and ba_cd_r/w (no legitimate uses in existing code). . Z80 SIO: Massive enhancement to Z80 SIO driven by (MESS) HP98046 test software (http://www.hpmuseum.net/display_item.php?sw=324). Fixed a few regressions in systems with z80sio/i8274 - 1943.cpp: Correct sprite priority handling routine. Reduced runtime tag lookups. Fixed namings. Simplified handlers and gfxdecodes. Use shorter/correct type values. - 2mindril.cpp: Converted VRAMs into shared_ptr. Fixed namings and spacings. Simplified gfxdecodes and handlers. Splitted hi 2bpp of gfx data to each rom. Correct 6bpp gfx decode behavior into mix rom data. Reduced duplicates, runtime tag lookups and unnecessary lines. Fixed postload. Added gfx layouts for hi 2bpp datas of 6bpp gfxs. - 4enlinea.cpp: Added I2C EEPROM - aquarium.cpp and gcpinbal.cpp . Simplified handlers and gfxdecodes. Reduced unnecessary lines and runtime tag lookups. Fixed namings. Use shorter/correct type values. Moved virtuals under protected. Rearranged devices under values in .h files. . aquarium.cpp: Correct 5bpp gfx decode behavior into rom data mixing. Fixed naming. Simplified gfxdecodes. Reduced unnecessary lines. Added layout of hi 1bpp data of gfx roms. . gcpinbal.cpp: Make tilemap dirty when tilebank is changed . Update video\excellent_spr.cpp: Internalized gfxdecode. Use callback for priority behavior. Reduced unnecessary lines. Simplified handlers. Fixed spacings. - aristmk5.cpp: Added BIOS sets USA Set Chip v1.0, v4.03.07 and v4.04.05 - aristmk6.cpp: Added BIOS set Aristocrat MK6 Base (25012805, Queensland) - ashnojoe.cpp: Simplified handlers and gfxdecodes. Correct tilemap usage (actually visible tilemap is 6). Reduced duplicates, rom region usage and runtime tag lookups. Fixed naming and spacings. - asuka.cpp: Simplified handlers and gfxdecodes. Reduced unused, trampolines and duplicates. Fixed namings and spacings. Use shorter/correct type values. - asuka.cpp, opwolf.cpp, rastan.cpp, rbisland.cpp and volfied.cpp . Simplified gfxdecodes. Reduced trampolines and duplicates. Fixed namings. . Update video\pc090oj.cpp: Internalized gfxdecode. Use callback for color bank/priority behavior. Reduced defines and unnecessary lines. Simplified handlers. Use shorter/correct type values. - bionicc.cpp, tigeroad.cpp and supduck.cpp: Simplified gfxdecode. Reduced unnecessary lines. Fix spacing and namings. - boogwing.cpp, cninja.cpp, deco32.cpp, deco156.cpp, dietgo.cpp, mirage.cpp and supbtime.cpp: Simplified gfxdecodes - by35.cpp . Fixed recent AS2888 sound board audio regression playing wrong tones. Changed default sound board test switch that conflicted with in game service switch (audio\bally.cpp). . Added sound LED to layouts. Whitespace/formatting cleanup. Added filters to audio device output. The boards have them, and the chip like to output DC at idle. This can cause clipping in the mixer. Moved over cabinet switches. This makes more room for a sound board LED. . Added new 'Bally Squawk & Talk w/ AY8910 Board'. Removed clock from 'Bally AS2888 Sound Board', as it's a discrete board. Adjust TMS5220 delay time between /RS going low and /READY being set. - cbuster.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary handlers and unnecessary lines. Use palette_format for color update. Use shorter/correct type values. - chihiro.cpp: Share PCI devices between Xbox and nforcepc. Added separate device for Xbox debug serial port. PCI IDE device starts supporting both channels, PCI IDE specification, Native-PCI and compatibility modes. - cv1k.cpp: Update video\epic12.cpp: Implemented debug VRAM viewer. Reduced unnecessary lines. Simplified handlers. Fixed spacings. Removed hardcoded tags and unnecessary pointers. Use shorter/correct type values. - darius.cpp: Moved volume initialize function into machine_start. Simplified handlers and gfxdecodes. Cleanup sprite priority behavior. Fixed namings and spacings. Reduced duplicates, unnecessary lines and runtime tag lookups. Use shorter/correct type values. - dblewing.cpp: Simplified gfxdecodes. Reduced unnecessary rom region size. - ddenlovr.cpp: Correct CPU type for hanakanz, hkagerou, jongtei, kotbinsp, kotbinyo, mjgnight and mjreach1 (Z80 CPU1 -> KL5C80A12) - dfruit.cpp and lastbank.cpp . Reduced unnecessary address map. Fixed address map range. . Update machine\tc009xlvc.cpp: Internalized on-chip functions (ROM/RAM bankswitching, GFX, IRQ vector and enables the Palette and Vregs). Use address_map_bank_device for ram banks. Use lr8 for bankswitched ROM reading. Simplified handlers. Reduced unnecessary values, lines, pointers and duplicates. Fixed spacings. Use shorter/correct type values. Added notes. . Correct audiocpu ROM region size in lastbank.cpp - fuukifg2.cpp and fuukifg3.cpp . Correct spriteram and vreg types. Use tilemap buffer behavior into RAM bank (number of actually visible tilemap layer is 3). Simplified handlers. Reduced unnecessary lines. Fixed notes and spacings. Use shorter/correct type values. . Update video\fuukifg.cpp: Use callback for colour, priority and tilebank behaviors. Internalized gfxdecodes. Use external spriteram. Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values (video\fuukifg.cpp). - galastrm.cpp: Simplified gfxdecode. Fixed naming. - goldstar.cpp . Decrypted clones Cherry Angel and Cherry Angel (encrypted, W-4 hardware). Cherry Angel gets in game but gets stuck when betting or after some time in attract mode. Cherry Angel (encrypted, W-4 hardware) shows a black screen but can enter various test screens. I'm decently confident these aren't decryption issues but maybe extra protection. . Decrypted Joker Master (V515) and clone (V512). Left as not working as GFX, inputs and sounds aren't hooked up correctly. - groundfx.cpp: Simplified gfxdecodes. Fixed spacing. Correct 6bpp gfx decode behavior into mix ROM data. Reduced unnecessary lines. Added gfx layout for hi 2bpp data of 6bpp gfx roms. Used for all TC0620SCC tile based games. - gunbustr.cpp: Simplified gfxdecodes. Fixed namings. - hornet.cpp: Documented the GN680 I/O board - igs017.cpp and igs_m027.cpp: Reduced usage of gfx_element (video\igs017_igs031.cpp) - iteagle.cpp: Fixed problem with ITEagle caused by PCI change (machine\pci-ide.cpp) - jaguar.cpp . Fixed metadata. Correct XTAL frequency. . Jaguar DSP/GPU: Simplified handlers. Reduced defines and unnecessary lines. Use shorter/correct type values. Removed register_postload. Added notes. - konmedal.cpp . Correct K052109 hookup and tile banking for Shuriken Boy and Fuusen Pentai . Fixed visible area, colors and priorities for Shuriken Boy. Added NEC uPD7759 sound. - ksys573.cpp . Fixed regressions in machine\k573dio.cpp and k573fpga.cpp: Fixed memory address stuff (fixes graphics, random glitches, games not booting, etc). Handle playback flag. Added volume control. Fixed transitioning between two MP3 files. Fixed the way playback time is reported which should fix looping. Fixed audio decoding and timing issue. Store the original key1 in k573dio and not k573fpga. Restored masks for RAM addresses to avoid overflows. . Fixed regressions in sound\mas3507d.cpp: Rework how starting and stopping the MAS3507D works as well as reporting playback time. - mcr.cpp: Use new 'Bally Squawk & Talk Board' implementation for NFL Football and clone Discs of Tron (Environmental) - megatech.cpp . Fixed documentation and hash\megatech.xml . Correct mpr-13905a.ic1 rom size in Bonanza Bros. (Mega-Tech) - metro.cpp: Fixed screen vblank interrupt function when screen_vblank is noop - mpu3.cpp: Don't invert the VFD power on reset line. It doesn't go through an inverter. I believe this was done to work around a bug in the PIA port A implementation. - mtouchxl.cpp: SVGA display parameter correction (mtchxl5k, mtchxl6k, mtchxlgld, mtchxlti and mtouchxl) - ninjaw.cpp: Removed register_postload. Simplified handlers and gfxdecodes. Cleanup sprite priority behavior. Reduced unnecessary lines. Splitted gfx layout related per each TC0100SCNs. Added notes. Fixed namings and spacings. Use shorter/correct type values. - opwolf.cpp: Simplified gfxdecodes. Reduced trampolines and duplicates. Fixed namings. - othunder.cpp: Simplified gfxdecodes. Reduced runtime tag lookups and unnecessary lines. Use shorter/correct type values. - psikyo.cpp: Fixed regression by not using a 32-bit handler for 8-bit writes - realbrk.cpp: Added example usage for prio_copybitmap to video\realbrk.cpp. Simplified handlers. Use priority bitmap for sprite priority. Fixed spacings. Use shorter/correct type values. - seta.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary lines. Fixed spacings. Allow protection reading with side effect disabled. Use shorter/correct type values. - shisen.cpp: Fixed coinage dipswitch - slapshot.cpp: Simplified gfxdecodes. Fixed namings. Correct 6bpp sprite gfx decode behavior into mix rom data. - subsino2.cpp: Emulated Hopper/Ticket dispenser for X-Train and Panda Train, fixes pay button does not work in Panda Train. The key previously labeled 'Pay Out' was actually 'Key Out'. The pay out key has been properly mapped now (ID 07351). - superchs.cpp: Simplified gfxdecodes. Fixed namings. - taito_f2.cpp . Simplified handler and gfxdecodes. Allow masked priority for ROZ layer. Fix namings. Correct Final Blow 6bpp gfx decode behavior into mix rom data and fixed regression. . Update video\tc0280grd.cpp: Internalized gfxdecode. Allow masked priority. - taito_f3.cpp: Converted VRAMs into shared_ptr. Fixed namings and spacings. Simplified gfxdecodes and handlers. Splitted hi 2bpp of gfx data to each rom. Correct 6bpp gfx decode behavior into mix rom data. Reduced duplicates, runtime tag lookups and unnecessary lines. Moved structs into taito_f3.h. Fixed postload. Moved taito_f3.cpp exclusive things under private. Added gfx layouts for hi 2bpp datas of 6bpp gfxs. - taito_z.cpp: Reduced MCFG_MACHINE_START and MCFG_MACHINE_RESET usage. Fixed namings and spacings. - toaplan2.cpp: Simplified handlers. Fixed namings and spacings. Reduced duplicates, unnecessary lines and runtime tag lookups. Correct output rate. Use optional_memory_bank for bgaregga/batrider OKI bankswitching because they aren't present NMK112. Use shorter/correct type values. Update video\gp9001.cpp: Simplified handlers and gfxdecodes. Use callback for gfx bankswitching behavior. Use shorter/correct type values. - topspeed.cpp: Simplified handlers and gfxdecodes. Reduced runtime tag lookups. Unnecessary lines. Fixed namings and spacings. Use shorter/correct type values. - toypop.cpp: Fixed flower sprite in Libble Rabble withered by an enemy like scissors was not correct - undrfire.cpp: Simplified gfxdecodes. Correct 6bpp gfx decode behavior into mix rom data. Added gfx layout for hi 2bpp data of 6bpp gfx roms. Used for all TC0620SCC tile based games. Reduced unnecessary lines. - vectrex.cpp: Vectrex reset into bank 1 for 64kb carts. This fixes "Where Have All the Pixels Gone?" and "EigenVectrex," quite possibly others. No regressions found (bus\vectrex\rom.cpp). - warriorb.cpp: Correct clock (related to XTAL on actual PCB). Simplified handlers and gfxdecodes. Correct rom loading. Added notes. Reduced unnecessary lines. Fixed namings. - wgp.cpp: Simplified handlers and gfxdecodes. Removed register_postload. Reduced duplicates and unnecessary lines. Allow masked priority behavior for drawscanline. Fixed priority handling, namings and spacings. Use shorter/correct type values. Added notes. - Beast Busters: Updated gun handling, fixes strange Players AI behaviour in attract mode (ID 07333). Use uPD7004 device. Adjusted gun limits to the factory defaults. Removed no longer needed default EEPROMs. Calibration in service mode now also works and doesn't cause the game to refuse to boot. - Bikkuri Pro Wrestling: Kill NB1413M3 busy flag publicness and busyflag hack in threeds (machine\nb1413m3.cpp). Added gambling control and fixed machine config (Games now playable). - Birdie Try: Fixed 'DECO MXC06 Sprite' regression, fixes sprite problems on the title screen and during gameplay (ID 07345). - Bubble Bobble II and Road Riot's Revenge: Mark dump of protected GALs and PALs as NO_DUMP, as they contain no info at all. - Car Polo: Fixed player controls. Put timer tick in vblank again, fixes collision detection (ID 07343). - Chanbara: Added DIP locations - Counter Steer: Fixed sprite colors and magnify feature. Replaced 2x AY-3-8910A sound with 2x YM2149. - Exed Exes: Use prio_* for sprite draw routine. Simplified handlers and gfxdecodes. Reduced runtime tag lookups and unnecessary lines. Fixed namings and spacings. - Legend of Hero Tonma: Added GAL dump for clone Legend of Hero Tonma (unprotected bootleg) - Locked 'n Loadedp: Provided gun Y minmax values, making it calibratable. - Megadrive hardware: Refactor and convert read/write handlers to 16-bit space (machine\mega32x.cpp; drivers\hshavoc.cpp, megadriv_acbl.cpp, megaplay.cpp, megatech.cpp, puckpkmn.cpp and segac2.cpp). - Pickin': Changed Pickin' to use an 8-way joystick as it should be per notes from original board owners. Also added confirmed bonus life DIP and updated locations to match same notes. - Pro Cycle Tele Cardioline: Fixed graphic alignment (Game now playable). Added I/O PCB and PCB ASCII layouts. - Return of the Jedi: Simplified handlers. Added gfxdecode for debug and palette_device for palette handling. Reduced runtime tag lookups. Fixed some drawing routines, namings and spacings. Reduced unnecessary lines. Use shorter/correct type values. Added notes. - Road Riot's Revenge: Mark dumps of protected PALs as NO_DUMP, as they contain no info at all. - RyuKyu: Added FD1094 317-5023a.key to 'RyuKyu (Rev A, Japan) (FD1094 317-5023A)' (Game now playable). - Shuriken Boy: Dumped proms - Sky Base: Added 'Cabinet' dipswitch, fixes inverted upright and cocktail switches (ID 07347). - Space Cruiser: Fixed Cabinet and Flip Screen dipswitch (ID 07354) - Star Rider: More notes - Strikers 1945: Start splitting up the MCU handlers - Team Hat Trick: Fixed Player 3 and 4 reversed joystick inputs - Tutankham: Small cleanup - Waku Waku Ultraman Racing: Added DIPs and identified bits used by the wheels. Needs proper wheels emulation. - Wonder Boy III: Decrypted clone Wonder Boy III - Monster Lair (set 6, World, System 16B) (8751 317-0098). Still not working because GFX and sound need to be emulated correctly. - Zwackery: Removed PIA port A z_mask setting. This would only be relevant if the PIA was read while in output mode. These are inputs and only read in input mode, so z_mask is not relevant. - Fixed rom names in leland.cpp, pingpong.cpp and cpzodiac.cpp - Dipswitch fixes in bagman.cpp, chanbara.cpp, dfruit.cpp, segas16a.cpp, segas16b.cpp, seta.cpp, system1.cpp and taitosj.cpp - Description changes of Captain Zodiac (Japan), Corvette (PX4 Prototype), Gingateikoku no Gyakushu, Gingateikoku no Gyakushu (bootleg set 1), Gingateikoku no Gyakushu (bootleg set 2), Gingateikoku no Gyakushu (bootleg set 3), Inu no Osanpo / Dog Walking (Japan, Export, Rev A), Kyros no Yakata (Japan), Lode Runner III - Majin no Fukkatsu (Japan), Mahjong Ougon no Hai, Mahjong Ougon no Hai (bootleg), Mushiking The King Of Beetle (2K3 2ND Ver. 1.003-, World), New Super 3D Golf Simulation - Waialae no Kiseki / Super Mahjong 2 (Super Famicom Box), Punch Mania 2: Hokuto no Ken (GQA09 JAA), Punch Mania: Hokuto no Ken (GQ918 VER. JAB ALT CD), Punch Mania: Hokuto no Ken (GQ918 VER. JAB), Red Clash, Red Clash (Tehkan, set 1), Red Clash (Tehkan, set 2), RyuKyu (Rev A, Japan) (FD1094 317-5023A), Senko no Ronde (Japan) (GDL-0030), Senko no Ronde (Japan, Rev A) (GDL-0030A), Senko no Ronde Special (Export, Japan) (GDL-0038), Shikigami no Shiro II / The Castle of Shikigami II (GDL-0021), Shougi no Tatsujin - Master of Shougi, Super Mario Fushigi no Korokoro Party 2, Taiko no Tatsujin 10 (T101001-NA-A), Taiko no Tatsujin 7 (TK71-NA-A), Taiko no Tatsujin 8 (TK8100-1-NA-A), Taiko no Tatsujin 9 (TK91001-NA-A), Thunder & Lightning (bootleg with Tetris sound, set 1), Two Minute Drill (Ver 2.93A 1994/02/16), Valkyrie no Densetsu (Japan) and Zunzunkyou no Yabou (Japan) - Renamed (cpzodiac) to (cpzodiacj), (redclash) to (redclasht), (redclasha) to (redclashta), (redclashk) to (redclash), (ryukyua) to (ryukyu), (ryukyu) to (ryukyua) and (saltcrdi) to (sltpcycl) - MAME . VIDEO RENDERING SYSTEM . Moved additive blending function into emu\drawgfx.h. Added priority related copybitmap functions. Fixed spacings. Added priority related copybitmap and draw_scanline function is sprite like priority handling(prio_*) and tilemap like priority handling(primask_*). These are helpful for priority related bitmap/scanline drawing routines (emu\drawgfx.cpp). Added variations of priority related pixel draw functions. Fixed spacings (emu\drawgfxm.h). Added example usage for prio_copybitmap to video\realbrk.cpp and add_blend_r32 to video\hng64.cpp. . Added packed and raw case of generic gfx layouts. Added example usage to f1gp.cpp, pgm2.cpp, powerins.cpp and psikyosh.cpp. . Added PWM (strobed) display elements (devices\video\pwm.cpp/h). Use pwm_display_device for (MESS) hh_tms1k.cpp, tispeak.cpp and tispellb.cpp. . Default SVG region (emu\screen.cpp) . Since value is unsigned, it will never be lower than zero (emu\render.cpp). . Solve the quit-on-minimize problem (render\drawgdi.cpp, drawnone.cpp, drawogl.h and drawbgfx.h) . Fixed alt-tab crash in D3D mode (render\drawd3d.cpp; Launch MAME in full screen, then hit ALT+TAB which brings up a menu of other active windows but instead makes MAME assert) (ID 06264) . MEMORY SYSTEM . Fixed subtle memory subsystem bug (emu\emumem_mud.cpp) . Make submaps work with address-shifted spaces. Note that submaps are now assumed to use an address shift of 0. It is possible, though unlikely, for this to cause some breakage (emu\addrmap.cpp and emumem.cpp). . PLUGINS: Changed autofire config directory to homepath (plugins\autofire\autofire_save.lua and init.lua) . Eliminated legacy callback syntax (template devcb_base &set_?_callback/handler(?) { return...}; emu\devcb.h, screen.h, cpu\nec\v25.h, s2650\s2650.h, machine\74175.h, ataintf.h, cr511b.h, eepromser.h, i8212.h, i8251.h, namcos21_dsp_c67.h, pci-ide.h, sound\2203intf.h, 2608intf.h, 2610intf.h, 2612intf.h, 3526intf.h, 3812intf.h, es5503.h, ics2115.h, mos6560.h, msm5205.h, nes_apu.h, s14001a.h, spu.h, video\psx.h, v9938.h, audio\dsbz80.h) . Defaulting to empty search path if null (emu\machine.cpp) . Added focus next/previous input types, will be hooked up later (emu\inpttype.h and ioport.h). . Device Network Interface: Added loopback control (emu\dinetwork.cpp) . Make more use of the NODEVICE_LAN flag . Adding a -version command line argument to get the current build version (mame\clifront.cpp) . Validity . Be more verbose when validating device type (emu\validity.cpp) . Fixed -validate errors detected and assured it passes xmllint (hash\cd32.xml) - Linux: Overhaul to advanced gun instructions. This cleans up spelling and other issues in the original text. This work is still prototype and will probably require fine-tuning (docs\source\advanced\linux-lightguns.rst). - Compiling . travis.yml: Added libxi-dev to Travis Linux Config . Fixed VS LLVM configuration: dxsdk was missing from includes. winmm was missing from libs. Narrowing warning was silenced for VS, but not from vsllvm, where it leads to an error in menu_video_options::handle() (scripts\genie.lua and osd\modules.lua). - Debugger . Fixed fatal error when attempting to set watchpoint covering unaligned portions of two adjacent native words (debug\debugcpu.cpp) . Correct address shifts for UNSP and upd7725 (tools\unidasm.cpp) 0.210 - New games: Gradius (Bubble System) - New Non-Working games: Cricket, MegaTouch XL Titanium (Version r0?, cracked), Percussion Freaks 2nd Mix (GE912 VER. KAA), Power Sled (Slave, Revision A), Sega Network Taisen Mahjong MJ 3 Evolution Firmware Update (GDX-0023), Sega Yonin Uchi Mahjong MJ (Update Disc Ver.1.008, Japan) (CDP-10002B), SpongeBob SquarePants Ticket Boom, Star Horse 2002 (sound, Export/Taiwan), Star Rider and Super Mini-Boy - New clones: Boxy Boy (World, SB2), Carnival (upright, PIT8253 music), Cycle Warriors, Deer Hunting USA V4.4.1 (Japan), Gunlock (Ver 2.0O 1993/12/15), GunNail (bootleg), Jack Potten's Poker (set 11, German, W.W.), Jack Potten's Poker (set 12, no Double-Up), Kid Niki (bootleg), Last Fortress - Toride (Japan, VG460 PCB), Moon Cresta (bootleg set 4), Ms. Pac-Man (Impeuropex bootleg), Point Blank 2 (World, GNB2/VER.A), Point Blank 2 (World, GNB2/VER.A alt), Power Sled (Main, hack of Relay), Power Sled (Relay, Revision A), Royal Card Part-Two (Nichibutsu HW, Ver. 1.02), Street Fighter EX2 (Euro 980312), Super Bobble Bobble (bootleg, set 6), Super Cobra (encrypted), Tetris (D.R. Korea, set 2), Touchmaster 7000 (v8.04 Germany) and Viewpoint (prototype) - New AGEMAME games: Dolphin Treasure (0101250V, Queensland) and Indian Dreaming (0101340V, Queensland) - New PEPlus games: Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better, set 2), Player's Edge Plus (X000403P+XP000013) 4 of a Kind Bonus Poker and Player's Edge Plus (X000556P+XP000038) Dueces Joker Wild Poker - New PinMAME games: The Phantom of the Opera (3.1) - New drivers: segaatom.cpp and starrider.cpp - New devices: aic565, as2888, as3022, asc88, cheap_squeak, ds1994, ec1840_mb, fifo2812, i82355, idt7201, idt7202, k573fpga, ncr5380_new, ncr53c80, scsi_cdrom_apple, sharp_lh28f160s3, sounds_plus and sst_49lf020 - CPU . Analog Devices ADSP21062 SHARC: Added compute_fcopysign . Intel I386 . Added more msrs releted to SMM to Athlon XP (i386\cpuidmsrs.hxx and i386.cpp/h). Athlon XP now supports system management mode. . Improved splitting of unaligned accesses (excluding program fetches). This entails a major code reorganization just to keep the scale of it all halfway sane. . Fixed enter insn (i386\i386op16.hxx and i386op32.hxx) . Intel I80186: Peripheral register refinements. Emulated strange but documented behavior of unaligned accesses and byte writes to internal peripheral registers. Use more official register mnemonics. Use official names for DMA registers. . Intel i960KB: Implemented logr and expr opcodes (cpu\i960\i960.cpp) for Power Sled . MC68340: Fixed interrupt vectoring . MIPS-I/III/IV . Preserve upper 32 bits for single-precision fp operations. While this behaviour is undefined according to the MIPS R4000 Microprocessor User's Manual, various factors point toward it most likely being correct, including: 1. The fact MIPS-I exposes 16x64-bit floating-point registers, but internally implements them as pairs of 32-bit registers (with only the even-numbered pairs being valid for arithmetic operations), making it somewhat likely MOV.S, like LWC1 and SWC1, can access either half. 2. Explicit mention in IDT documentation and "See MIPS Run", i.e. "The odd-numbered registers can be accessed by move and load/store instructions", and other commentary. 3. The presence of paired-single operations in later MIPS32/64 specifications, which operate on independent single-precision values stored in each of the lower and upper halves of a single floating-point register. . Use sequence generator for random tlb indices so that DRC and non-DRC code sequences match . Fixed tlbmiss in delay slot (mips\mips3drc.cpp) . MIPS R4000 . Relaxed address validity checks in 32-bit mode allowing simplified base + offset computation. Removed inaccurate/partial cycle counting. Slight adjustment to ll/sc logic. Correct address alignment exception type. Changed LL/SC behaviour to not use a write tap. Possibly incorrect behaviour, but IRIX 6.5 installer doesn't hang anymore on miniroot creation. Added bus error functionality. . SGI IDE fixes. Corrects some TLB diagnostic errors (remaining ones require implementing a data cache) and the FPU "underflow" test (really an unimplemented instruction exception, not an underflow) by checking for denormalized or quiet NaN operands for all floating point arithmetic instructions. . Mitsubishi M37710S4: Replaced I/O space with callbacks . Motorola M6801: Fixed bug where irq is never triggered . Motorola MC680x0 . Converted code generator to python. Stop using spec_proc. Merged table and opcode body together. Changed method pointers to state IDs in the big tables. . SCC68070 fixes: Added several MC68000 opcodes that were inadvertently unsupported. Changed behavior of CLR with memory operand to match MC68010 and later (datasheet makes it clear that the extra read is not performed). Clarify that SCC68070 RTE is more like MC68010 than MC68000. Re-added a few more inadvertently illegalized opcodes (CHK, DIVS, DIVU). . M68000: Read the initial SP and PC from memory after rather than during machine reset time. This removes the need for many drivers to reset the CPU an extra time to load the correct vector. . Show M68K_SR. Renamed ISP to SSP for pre-68020 (m68000\m68kcpu.cpp). Fixed MOVEC formatting (m68000\m68kdasm.cpp). . Reverted the ATC calculation fix in MAME 0.209 (m68000\m68kmmu.h) which broke both Mac OS and HP-UX. Fixed the real MMU problem Domain/OS was having. . Motorola MC68705 . Prevent registration of illegal debug states for nonexistent port latches/DDRs . Fixed prescaler update. Restored the proper behaviour of the timer (ID 07317). . RCA CDP1801/2: Fixed long branch instruction timing . Texas Instruments TMS57002 DASP: Simplified handlers. Fixed code styles and notes. Use shorter type values. . Zilog Z8002: Added register save state. Misc cleanup. Pile on some extra address spaces. - DEVICE . 6821 PIA: Added port line write handlers . Atari ASIC65: Simplified handlers. Use shorter type values. Reduced unnecessary lines. Fixed debugger issues and spacing. . Atari Custom . atarigen.cpp: Simplified handlers. Reduced unnecessary lines. Fixed debugger issues, notes and spacings. Use shorter type values. . atarirle.cpp: Simplified handlers. Use shorter type values. Fixed spacing. . Data East Custom . DECO 55 / 56 / 74 / 141 Tilemap Generator: Allow masked priority behavior. Use shorter/correct type values. Fixed spacings. . DECO BAC06 Tilemap: Allow priority drawing behavior. Use shorter/correct type values. Fixed spacings. Implemented priority. . Data East IRQ Controller: Simplified handlers. Fixed debugger issue. Use shorter/correct type values. . DECO MXC06 Sprite: Use callback for colour masking and priority behavior. Moved configuration into handlers. Reduced unnecessary lines and unnecessary configuration values. . DECO Karnov Sprites: Removed unnecessary configuration values. Use callback for color and priority behavior. Use shorter/correct type values. Reduced unnecessary lines. . Discrete Netlist . More structure for caches . Added power terminals to most logic devices. This fixes an over simplification. Logic devices implicitly assumed that GND/VDD actually is connected to GND(i.e. 0V). There is no immediate benefit from this change. It is a preparation for the future scalability. Now all power terminals (typically 7/14, 8/16) have to be explicitly connected to the supply rails. Also added a validation mode to the netlist core. This is not intended for running, but solely to better indentify pins which are not properly connected. . Bug fixes and nltool validation. nltool now supports a validate command which acts similar to MAME's validation. . Use A,B,C,... for packaged components . Runtime performance statistics can now be enabled with nltool option "-s". To enable those with MAME you need to run NL_STATS=1 ./mamenl64 -v -oslog game. . Minor optimization (netlist\nl_base.h and plib\pconfig.h) . All pstonum calls now need to specify if they want local locale or the "classic" "C" locale. Fixes MAME exception with -debug on Linux with some non-C locales (ID 06827). . Fixed memory leak when exception is thrown in constructor (plib\palloc.h and pmempool.h). Fixed Clang build (Clang treats -Wswitch-bool as error) (netlist\nl_base.h). . Protected defines in nl_config.h with ifdefs. Added a define to disable queue statistics during compile. This is only needed during development. Documented performance improvement efforts so I don't try this again. . Moved truth table implementation of 7448 in macro. At the same time added power terminals and update game netlists accordingly. Don't assume constructors will only throw things derived from std::exception (plib\palloc.h). . Converted NL_MAX_LINK_RESOLVE_LOOPS into a netlist parameter. Reduced potential bit-rot. nltool -v --version now displays values of all compile time defines. There are still far too many compile time defines. However, most of them ensure and test future scalability. . Only print queue stats if they are enabled (netlist\nl_base.cpp). Fixed SLOW_BUT_ACCURATE mode (machine\nl_breakout.cpp) in Breakout [TTL]. Fixed include order and logging queue stats. OMP defines belong into pconfig.h since pomp.h - used by netlist - depends on them. . Provided example for state in truthtable. The truthtable implementation of 74107 (JK-Flipflop) is included for educational purposes to demonstrate how to implement state holding devices as truthtables. It will completely nuke performance for pong and therefore is disabled. . Switch to output array in devices\nld_9316.cpp. Fixed a warning in plib\ppmf.h. . Fixed CMOS 40xx and 4316 power pins and GCC-9 error . Removed base_dummy class and fixed CD4020 VCC/VDD . netlist_time array -> std::array (devices\nld_74161.cpp and nld_7474.cpp) . Flash ROM: Added 'SST 49LF020 Flash' to machine\intelfsh.cpp . Floppy: Uncluttered global name space as per Vas suggestion (formats\flopimg.h) . Hitachi HD6845S CRTC: More consistent identification of HD6845S variant (HD6845S same as HD46505S and HD6845 same as HD46505R) . IDT7200/1/2 FIFO: Separated device types by size. Allow side effects to be disabled for reads. . IGS Custom . IGS017_IGS031: Internalize palette. Removed hardcoded tags. Simplified handlers. Reduced unnecessary lines and defines. Fixed namings and spacings. Use shorter/correct type values. Added save states (video\igs017_igs031.cpp). . IGS022: Reduced hardcoded tags and runtime tag lookups. Unnecessary pointers and lines. Use shorter/correct type values. . Kaneko Custom . Kaneko VIEW2 Tilemaps: Internalized gfxdecode and values. Reduced unnecessary lines. Fixed spacings. . Kaneko KC002 Sprites and Kaneko VU002 Sprites: Internalized gfxdecodes (VU002 has 4bpp and KC002 has 8bpp). Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values. . Keyboard: PC/AT and PS/2 101-key keyboard update. Still doesn't process commands from the host properly - not sure if it's a cpu or port issue (bus\pc_kbd\pcat101.cpp). . Konami Custom . K033906 PCI bridgep: Simplified handlers. Fixed some spacings. Converted arrays into std::unique_ptr. . K051316 PSAC, K051960 Sprite Generator and K053244/053245 Sprite Generator: Simplified handlers . K052109 Tilemap Generator: Simplified handlers. Removed unnecessary handlers. Fixed notes. . K053251 Priority Encoder and K054000 Protection: Simplify handlers. Reduced unnecessary handlers. . K054338 Mixer: Simplified handlers. Reduced duplicates. . K055673 Sprite Generator: Simplified handlers. Reduced duplicates, unnecessary lines and tags. Use shorter type values. Fixed spacing. . K056832 Tilemap Generator: Simplified handlers. Reduced unnecessary handlers, tags and lines. Fixed notes. Reduced deprecated AM_* macro comments. . Namco Custom . Namco C355 (Sprites): Internalized gfxdecode and initialize values. Simplified handlers. Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values. . Namco System 2 Sprites (C106,C134,C135,C146): Simplfied/Fixed sprite gfx select behavior. Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values. . Motorola MC6845 CRTC: Use standard device method to adjust input clock (video\mc6845.cpp) . PLA: Added optional logging to present the decoded terms . SCSI Bus: Disabled LOG_DATA_SENT by default to minimize log spam (machine\nscsi_bus.cpp) . SCSI Hard Disk: Verified stub. Windows NT setup uses the VERIFY command without data comparison (machine\nscsi_hd.cpp). . Sega Custom . Sega 16-bit common hardware: Moved palette shadow/hilight toggle bit function into palette handler (excpect hangon; it has external shadow/hilight toggle bit). Simplified some handlers. Fixed debugger issues and spacing. Use shorter/correct type values (machine\segaic16.cpp). . Sega 16-bit Road Generator: Simplified handlers. Removed hardcoded tags and unnecessary pointer. Reduced unnecessary lines. Fixed debugger issues. Use shorter/correct type values. . Sega 315-5313 Megadrive VDP: Use color lookup. Converted bitmap drawing function into bitmap_rgb32. Reduced unused. Fixed save pointers and external palette handlers. Implemented 3 bit color mode. . Sega 315-5124 SMS1 VDP: Use color lookup and correct color levels for 315_5313. Added notes. . Sega 315-5649 I/O Controller: Set all ports to input on reset, fixes some Model 2 games (rchase2, gunblade, topskatr, srallyc and manxtt) can't keep any change in Test Menu options after power down and restart (ID 07315). . Taito Custom . Taito I/O Yoke: Simplified handlers. Reduced runtime tag lookups. . Taito PC080SN, Taito TC0150ROD, Taito TC0480SCP and taito_helper.cpp: Allow masked priority behavior. Use shorter/correct type values. Fixed spacing. . Taito PC090OJ: Fixed validation by (partially) adopting device_gfx_interface . Taito TC0080VCO: Allow masked priority behavior. Use shorter/correct type values. Fixed spacing. Internalized gfxdecodes. Sprite drawing routines. Simplified handlers. Reduced unnecessary lines and unnecessary configuration values. Fixed spacings. Added notes. . Taito TC0110PCR: Implemented device_palette_interface for internal palette. Simplified handlers. Reduced defines. Use shorter/correct type values. . Taito TC0280GRD / TC0430GRW: Simplified handlers. Use shorter type values. Reduced unnecessary lines. Fixed spacings. . Updated machine\taitoio.cpp: Simplified handlers. Fixed debugger issue. Reduced unnecessary lines. Use shorter/correct type values. - 1945kiii.cpp: Fixed flicker behavior. Simplified handlers. Use shorter type values. Added notes. - alpha68k.cpp . Fixed banking. This fixes broken title screen graphics in Time Soldiers since MAME 0.209 (ID 07323). . Simplified handlers and gfxdecodes. Reduced unnecessary handlers and unnecessary lines. Fixed bankswitch behavior, naming and spacings. Use shorter/correct type values. - amaticmg.cpp: Added DS1994 device and modified prom load - argus.cpp and psychic5.cpp: Update video\jalblend.cpp: Moved alpha table into palette. Fixed spacing and some behavior. Reduced unnecessary line. Use shorter/correct type values. - badlands.cpp and gauntlet.cpp: Fixed irq acknowlodge behavior - bbusters.cpp: Added coin counters - bgt.cpp: Replaced V30 CPU1 with I80186 - bingor.cpp: Fixed palette size and restore palette RAM to prevent crashing. Note: The palette RAM really is physically part of the same RAM used for video data. This is controlled by an unemulated VDP. - blockout.cpp: Simplified handlers. Use palette format for palette. Fixed/Cleanup some drawing behavior, namings and spacings. Reduced unnecessary lines. Unnecessary pointers. Use shorter/correct type values. - bnstars.cpp, ms32.cpp and tetrisp2.cpp: Moved sprite gfx rearrange function from machine\jalcrpt.cpp into gfxdecode. - by35.cpp . Added support for AS3022, a sound board Bally used in pinballs. . Added Bally Frontier pinball switch names. Fixed incorrect dipswitch settings for Frontier and other by35 os40 machines. . Added by35_os35, by35_os40 and by35_os5x specific dipswitch settings. Added OS specific dipswitch settings to Speakeasy, BMX and Grand Slam. Added dipsettings for more machines. . Added support for Sounds Plus w/ vocalizer and various Bally pinball cleanup (audio\midway.cpp) . More sound improvements and refactoring. Move pinball sound boards to a new file. Move AS2888 code to a proper device. Added Cheap Squeak sound board. Fixed bug in M6801 CPU where irq is never triggered. Mark the AS2888 games as non-skeleton. Refactor state classes. - cave.cpp . Simplified handlers. Use common interface for palette, seperated gfxdecode, palette, screen finder ans bitmap for ppsatan each screen. Moved sprite granularity into video_start. Allow save state for 'Pretty Soldier Sailor Moon' 3th tilemap. Reduced runtime tag lookups and unnecessary lines. Fixed debugger issue and spacings. Use shorter/correct type values. Added notes. . Allow mix multi sprite chip in single screen (partially) - cedar_magnet.cpp: Simplified handlers. Reduced unnecessary lines, duplicates and runtime tag lookups. Converted arrays into std::unique_ptr. Fixed namings and spacings. Use shorter type values. - chihiro.cpp . Added simple interfaces for LPC bus devices (machine\xbox_pci.cpp). Start supporting smm and let (MESS) Nvidia nForce PC use it (machine\xbox_pci.cpp). . Added Chihiro satellite DVD docs - cubo.cpp, mquake.cpp and upscope.cpp: Converted screen update routine to RGB32 (video\amiga.cpp) - ddenlovr.cpp: Converted screen update methods to use RGB32 format - dec0.cpp and dec8.cpp: Added priority values for future use (priority mixing) - dgpix.cpp: Simplified handlers. Reduced unnecessary runtime tag lookups and lines. Use shorter/correct type values. Fixed spacings and namings. - dreamwld.cpp: Simplified handlers. Correct VRAM data type. Converted lineram into shared_ptr. Reduced unnecessary lines. Fixed spacings and namings. Use shorter/correct type values. - funworld.cpp: Driver cleanup: Removed revision history - we use version control for a reason. Don't #define things before inluding the PCH, and don't #define generic names before #including anything. - gaelco2.cpp: Simplified gfxdecodes - galaga.cpp: Manually applied the star field LFSR code from Wolfgang (http://www.pin4.at/pro_custom_05xx.php) and Jindrich Makovicka (https://github.com/mamedev/mame/pull/3532) and verifying against static star field. Also added documentation and findings about the known star field decoding algorithms. - galgames.cpp: Use shared_ptr for OKI RAM. Added save states. Simplified handlers. Fixed spacings. Reduced unnecessary lines. Use shorter/correct type values. - groundfx.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary lines and runtime tag lookups. Fixed spacings. Use shorter/correct type values. - gunbustr.cpp: Simplified handlers and gfxdecodes. Reduced unused, runtime tag lookups and unnecessary lines. Fixed namings and spacings. Use shorter/correct type values. - homedata.cpp . Mahjong Ikaga Desu ka (Japan) . Removed MACHINE_IMPERFECT_SOUND and updated comments. Note: SFX have been working since MAME 0.156. . Fixed game boots and immediately gets stuck at a white screen since 0.206 (ID 07314). This restores working state, though the move to using genlatch seems to have exposed some communication problems (the log gets spammed). . Identified some DIPs and added DIP locations according to Test Mode . Added opcode MOV_MT_A to NEC uPD7807 CPU (port T input threshold level; uPD7807 only) . Updated row selection in pteacher_keyboard_r, fixes inconsistencies reported in MT06473 (mjkojink and games based on it: Incorrect dipswitch reading). Still needs more work as DIPs for the second bank are inverted wrt how MAME expects them, but at least now all DIPs are useable. . Updated DIPs for Mahjong Jogakuen according to the Test Mode . Added ioport array for the mahjong keys and 2nd player inputs for newer mahjong games. - igs011.cpp: Simplified handlers. Reduced duplicates, runtime tag lookups and unnecessary lines. Fixed namings and spacings. Use shorter type values. - igs017.cpp: Simplified handlers. Reduced duplicates. Use shorter type values. Unnecessary runtime tag lookups and lines. Fixed spacings. - igs_m027.cpp: Reduced duplicates. Use shorter type values. - jaguar.cpp . Correct timer frequency related to DSP clock (audio\jaguar.cpp) . Correct GPU timer rate related to GPU clock. Fixed notes and crash cause in 68EC020 cpu games (all 68EC020 based games are HDD based and not bankswitched roms). . Added palette device for precalculated YCC color lookup. Fixed spacings and notes. Reduced unnecessary lines. - jchan.cpp: Correct sprite delay. Simplified handlers. Reduced unnecessary lines. Runtime tag lookups. Fixed spacings. Use shorter/correct type values. - kaneko16.cpp: Correct spriteram buffer behavior. Simplified handlers. Added notes. - ksys573.cpp . Partial support for encrypted audio in Konami 573 digital I/O board (machine\k573dio.cpp). Removed extraneous wav file from all Konami System 573 digital io games (machine\k573fpga.cpp). . Updated k573dio/k573fpga to use a proper algorithm for decrypting 'Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)' audio. Fixed volume bug. . Full playability with all testable games. Fixed issues with remaining GFDM games. Fixed regressions with ddrextrm, ddrmax2, ddrsbm and dsem2. Attempt to fixed timing issues by emulating a buffer before the song actually plays. This value was found by choosing something that had a tight but known timing window (the Konami logo sound in DM10) and finding an offset that didn't allow you to hear it loop before the song end command was sent. Reverted changes for dynamic base address because I still can't figure out a more logical way that Konami could've implemented this. Use the last non-0 diff to fix some games. . Fixed bugs linked to the sample counter. Note: One thing to do would be to turn the 'Konami 573 digital I/O board' into a device_mixer_interface to have the connection to the speakers done at the driver device level. - laserbat.cpp: Minor consistency fix (PORT_DIPSETTING -> PORT_CONFSETTING) - legionna.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary regions, lines and duplicates. Fixed tilemap dirty behavior when tilemap bank is changed. Fixed spacings, namings and notes. Use shorter/correct type values. - limenko.cpp: Simplified handlers. Cleanup sprite gfx drawing routines. Reduced unnecessary lines. Fixed some drawing routines and spacings. Use shorter/correct type values. - miniboy7.cpp . Fixed button-lamps order for Mini-Boy 7. Removed log with implemented R/W. Fixed lamp blinking. Documented the way PIA port B lines 4-7 are multiplexed through a 74LS157 to read the 8 lines of DSW2 using the AY8910 port B line 7 as selector. Added ASCII diagram. . Added support for Super Mini-Boy that runs in different HW revision. Added technical and game notes. Some clean-up. . Enabled save state support since it already has everything ready - model2.cpp: Set all ports to input on reset in Sega 315-5649 I/O Controller, fixes some Model 2 games (rchase2, gunblade, topskatr, srallyc and manxtt) can't keep any change in Test Menu options after power down and restart (ID 07315). - namcona1.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary lines and register_postload. Fixed/Cleanup some drawing routines. Fixed tilemap mark dirty behavior. Moved tilemap palette change behavior into vreg handler. Fixed spacings and bit modification values. Use shorter/correct type values. - namcond1.cpp: Internalized YGV608 VDP palette - namcos2.cpp: Simplified gfxdecodes - namcos22.cpp: Fixed broken MCU analog controls in aquajet, dirtdash and tokyowar (ID 07297) - ninjaw.cpp and warriorb.cpp: Splitted gfxdecode per each screens. Fixed spacings. - nss.cpp, sfcbox.cpp and snesb.cpp: Fixed sound issue when autosave is enabled in (MESS) SNES (audio\snes_snd.cpp) (ID 07307) - oneshot.cpp: Fixed clocks for CPU and Audio components - overdriv.cpp: Fixed objdma behavior. Removed unnecessary address map and deprecated AM_* macro in comments. - peplus.cpp: Redumped the color prom for clone Player's Edge Plus (XM00002P+XMP00006) Multi-Poker (MGM Grand Detroit Casino) - pgm.cpp: Updated drivers\pgm.cpp and machine\pgmprot_*.cpp: Simplified handlers and gfxdecodes. Moved non-public things into protected and/or private. Make sprite drawing routine related to cliprect. Fixed tilemap region size for fit 5bpp tile correctly. Reduced unused, unnecessary lines, MCFG_MACHINE_START, MCFG_MACHINE_RESET, MCFG_VIDEO_START overrides and runtime tag lookups. Fixed debugger issues, namings and spacings. Use shorter/correct type values. Fixed notes. - polepos.cpp: Support save states (audio\namco52.cpp and namco54.cpp) - pong.cpp: Fixed "1" pixel issue mentioned. Actually this is more of a "half" pixel issue and caused by discretization to pixels by drawing arbitrary length horizontal vectors onto a bitmap. The fix uses a 4x horizontal resolution and causes some 25% performance loss (ID 06085). - punchout.cpp: Use generic gfx_layouts - r2dx_v33.cpp and raiden2.cpp: Added buffer sprite RAM, fixes Zero Team starting bikes. Minor improvement to sprite sort DMA. - rastan.cpp: Simplified handlers and gfxdecodes. Fixed namings. Reduced unnecessary lines. Use shorter type values. - rohga.cpp: Simplified gfxdecodes and handlers. Reduced unnecessary lines. Fixed spacings and namings. Use shorter/correct type values. - seibucats.cpp and seibuspi.cpp . Simplified handlers and gfxdecodes. Fixed/Cleanup some DMA and drawing routines. Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values. . Added seperate video config related to no tilemap present and sprite bpp differs for seibucats.cpp. Added notes. Fixed sound output. - seta.cpp . Greatly improved Crazy Fight PCB documentation. Also updated the clocks in machine config accordingly. . Added 2nd player inputs for Pro Mahjong Kiwame - slapshot.cpp: Simplified handlers and gfxdecodes. Reduced runtime tag lookups and unnecessary lines. Fixed namings. Use shorter/correct type values. - splus.cpp: Fixed segfaults for sets spset005, spset015 and spset026. - superchs.cpp: Simplfied handlers and gfxdecodes. Reduced unnecessary lines and runtime tag lookups. Fixed spacings and namings. Use shorter/correct type values. - stv.cpp . Fixed blending when tilemap transparency pen is disabled and some transparency behavior (video\stvvdp2.cpp). . Fixed transparency, endcode behavior, gouraud shading behavior and sprite count. Added note (video\stvvdp1.cpp). - taito_f2.cpp . Reduced duplicate in config when TC0110PCR is present . Simplified handlers and gfxdecodes. Reduced register_postload, duplicates, runtime tag lookups and unnecessary lines. Fixed bankswitching behaviors, spacings and namings. Use shorter/correct type values. - taito_h.cpp: Simplified handlers and gfxdecodes. Reduced unused pointers, defines, unnecessary lines, duplicates and runtime tag lookups. Fixed spacings. Use shorter/correct type values. - taito_o.cpp: Simplified handlers and gfxdecodes. Reduced runtime tag lookups and unnecessary lines. Fix namings, spacings and notes. - taito_x.cpp: Simplified handlers and gfxdecodes. Reduced duplicates. Fixed naming. - taito_z.cpp: Simplified handlers and gfxdecodes. Reduced duplicates, register_postload, runtime tag lookups and unnecessary lines. Fixed spacings. Use shorter/correct type values. - taitoair.cpp: Simplified handlers and gfxdecodes. Reduced unnecessary lines and runtime tag lookups, Fixed spacings and code styles. Use shorter/correct type values. - tecmosys.cpp: Fixed gfxdecode - undrfire.cpp: Simplified handlers and gfxdecodes. Reduced duplicates and runtime tag lookups. Fixed spacings. Use shorter/correct type values. - vendetta.cpp: Removed outdated comments. Fixed notes - vicdual.cpp: Splitted off carnival driver class - vsnes.cpp: Redid Z80 interfacing to schematics, still doesn't work. - wpc_95.cpp: Fixed typo in 'Attack From Mars' output name - xmen.cpp: Removed deprecated handler in comment - Baby Boom Challenge: Added a work-around to get in-game (currently commented out). Added preliminary inputs and confirmed it needs question roms. - Card Line: Borrowed hap's workaround for missing save state support for the outputs. Fixes long-standing save state problem. - Counter Steer: Added proms and preliminary color prom decoding. Improved colors. - Cube Quest: Updated CUBEQCPU. Simplified handlers. Use correct/shorter type values. Fixed spacings. - Field Combat: Simplified handlers. Reduced runtime tag lookups. Unnecessary lines. Fixed namings and spacings. Use shorter/correct type values. - Five Clown: Documented how to access the hidden settings table. Use CRTC for rendering. - Frantic Fruits: Added MK48T08 timekeeper dump - Galactic Storm: Simplified handlers and gfxdecodes. Reduced unnecessary lines. Fixed spacings. Use shorter/correct type values. Added notes. - Great Guns: Fixed palette init typo - Hot Blocks - Tetrix II: Hook up I2C EEPROM - Invader's Revenge . Added sound. Currently clone (Game World, single PCB) has a bad dump sound rom. . Fixed interrupt (ID 07309). Note: The situation here with interrupts being acknowledged at a time nominally preceding the condition that triggered them suggests a disturbingly general problem with MAME's CPU scheduling. However, it should only affect machines in which such interrupt vectors are calculated from free-running counters (as this hardware does) rather than the more normal priority encoding of latched requests. . Cleaned up NMI code - Juno First: Added raw screen parameters (ID 03799) - Klax: Simplified handlers and gfxdecodes. Fixed naming. Reduced unnecessary lines. Use shorter/correct type values. - Konkyuu no Hoshi: Added missing video-related interrupt and reguess VIA clock - Mahjong Diplomat [BET] (Japan): Updated DIPs (ID 05553) - Megadrive hardware: Use color lookup. Reduced unused. Added device_palette_interface (machine\mega32x.cpp; drivers\hshavoc.cpp, megadriv_acbl.cpp, megaplay.cpp, megatech.cpp, puckpkmn.cpp and segac2.cpp). - Midnight Landing: Simplified handlers. Reduced duplicates, runtime tag lookups and unnecessary lines. Use shorter/correct type values. - Momoko 120%: Simplified handlers. Reduced runtime tag lookups and unnecessary lines. Fixed namings and spacings. Use shorter/correct type values. - Mosaic: Decapped PIC16C55 for Mosaic. Not hooked up yet. - MX5000: Correct CPU type - Puzzle Time: Splitted palettes and converted screen update to RGB32 - Quiz Olympic: Clean up VRAM banking, screen update and converted to RGB32. Clean up ROM banking. Use XTAL values. Added COIN2 and document more dipswitches. - Rebound: Performance optimization - Return of the Invaders: Soundlatch modernization - Route 16: Fixed missing right-side walls in main map of Route 16 and clones Route 16 (set 2) and Route 16 (set 3, bootleg?) (ID 07310). Note: New code to better emulate the protection was added in MAME 0.194, but it turned out to harbour a bug (see MT07310). Therefore the previous patches have been restored, and the protection routine has been nullified (but still there in case someone wants to revisit it). - Star Rider: Added AMD/Plessey 2812 FIFO device (for WIP Star Rider driver) - Strike Bowling: Fixed cocktail mode grapics (ID 07325). Added P2 button1 for cocktail mode. Note: Cocktail mode still not working, the horizontal sprite positioning is wrong when the screen is flipped. - Super Real Darwin: Fixed srdarwin_draw_sprites priority checking behavior - Total Vice: Redumped clone Total Vice (ver AAB) CD-ROM - Tutankham: Implemented starfield and better colors (ID 02932). Used color code from galaxian for better color approximation. The starfield code was added to better document the 084 custom chip. There are two star fields implemented now. The active one can be selected in Machine Configuration. a) Scramble Starfield: 1/3 star width like scramble/galaxian, starfield code same as scramble. This one is similar to the Konami starfield video below. The 084 uses the same signals as scramble. b) Bootleg Starfield: Guru provided schematics of a daughter-board which on a Konami bootleg replaced the custom chip 084. This starfield matches the starfield (picture) of this bootleg. At least there is now a starfield which matches a real-life(tm) bootleg. None of the two alterntives reproduces the star field which can be observed in the Stern videos on YouTube. The Konami video mentioned in video\tutankhm.c is different from Tutankham. Looks like we are missing an early board dump. - Vector games (Atari AVG/DVG): Removed hardcoded tags and runtime tag lookups. Simplified handlers. Reduced unnecessary lines. Fixed spacings, some code styles and namings. Use shorter/correct type values (video\avgdvg.cpp; drivers\asteroid.cpp, bwidow.cpp, bzone.cpp, mhavoc.cpp, omegrace.cpp, quantum.cpp, starwars.cpp, tempest.cpp and tomcat.cpp) - Wizz Quiz: Don't know how this escaped modernization - Zig Zag: Fixed game hangs when you play a 2 Player game (ID 07332) - Fixed rom names in avalnche.cpp, berzerk.cpp, flkatck.cpp, m72.cpp, segahang.cpp, seta2.cpp, taito_f3.cpp, tatsumi.cpp and vicdual.cpp - Dipswitch fixes in 8080bw.cpp, by35.cpp, homedata.cpp, quizo.cpp and statriv2.cpp - Description changes of Carnival (upright, AY8912 music), Football Power (Version 1.2), Hang-On (Rev A, ride-on), Parent Jack (Japan), Last Fortress - Toride (Japan, VG420 PCB), Royal Card (Nichibutsu HW), 'Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better, set 3)' and Tetris (D.R. Korea, set 1, encrypted) - Renamed (boxyboy) to (boxyboya), (pepp0550a) to (pepp0550b) and (sfex2) to (sfex2u) - Linux . Added python to list of required ubuntu packages (docs\source\initialsetup\compilingmame.rst) . Documented Linux Lightguns with Xinput. Added a new doc page within the 'Advanced Configuration' section which describes how to enable Lighuns on Linux using the XInput lightgun provider (docs\source\advanced\linux-lightguns.rst). . Enabled Xinput support by default on Linux. The Xinput lightgun driver is the only reliable+accurate method to use lightguns on Linux, we should enable this by default to reduce the friction for Linux Lightgun users. This should have no effect on users of Windows/Mac etc (makefile and osd\sdl.lua). Fedora users need libXi-devel now that X11 XInput is enabled by default - no clue about other Linuxes (docs\source\initialsetup\compilingmame.rst) - MAME . VIDEO RENDERING SYSTEM . Converted screen update functions to RGB32 in numerous games. This is intended to expedite CRTC-based video modernization (4roses.cpp, 5clown.cpp, albazg.cpp, amaticmg.cpp, aristmk4.cpp, avt.cpp, bmcbowl.cpp, buster.cpp, calomega.cpp, carrera.cpp, chance32.cpp, coinmstr.cpp, docastle.cpp, fastinvaders.cpp, fortecar.cpp, funworld.cpp, gluck2.cpp, goldnpkr.cpp, goldstar.cpp, hitpoker.cpp, jokrwild.cpp, jubilee.cpp, kingdrby.cpp, luckgrln.cpp, magicfly.cpp, majorpkr.cpp, mpu12wbk.cpp, mpu4dealem.cpp, murogem.cpp, nibble.cpp, peplus.cpp, progolf.cpp, rgum.cpp, royalmah.cpp, sanremo.cpp, skylncr.cpp, snk6502.cpp, speedatk.cpp, summit.cpp, supercrd.cpp, tmspoker.cpp, toaplan1.cpp, truco.cpp, twincobr.cpp, usgames.cpp, vlc.cpp and wardner.cpp) . Fixed screen_device::update_now() when drawing partial lines. Fixed pixel-access functions to use the current bitmap (emu\screen.cpp). . DEVICE . Added sanity check to emu\distate.cpp . Correct parity output. Make received parity consistent with transmitted parity (emu\diserial.cpp). . Simplified handlers (emu\tilemap.cpp, machine\74259.cpp, adc1213x.cpp, huc6202.cpp, huc6260.cpp, huc6261.cpp, huc6270.cpp, igs017_igs031.cpp, voodoo.cpp) . Reduced unnecessary handlers (drivers\gradius3.cpp, machine\atarigen.cpp) . UI . Allow palette alpha value viewable (ui\viewgfx.cpp) . Privatized a few variables. Provided more helpers (ui\menu.cpp). . INPUT PORT . Improved sorting of items for machine input menu. Inputs of the same type are sorted by name, and keyboard keys are sorted by their assigned character codes (if any) (ui\inputmap.cpp). . Disabled WII Lightgun hack by default . LUA engine . Improved comments (fixes and updates). Fixed/Added comments for emu.thread(), machine:popmessage(), watch/breakpoints, debugger presence note, val for write functions, input:seq_poll*, memory_share library, explain emu.register_callback(callback, name) and emu.step(). . Added machine_flags library. Make machine_flags fields of game_driver rather than a new table. . PLUGINS . hiscore.dat update (plugins\hiscore\hiscore.dat) . Added plugin for autofire: Hardcoded autofire plugin. Changed register_frame to register_frame_done, removed pause check. Added support for multiple buttons loaded from a file. Implemented saving settings on quit. Fixed multiple keybindings for same button from overwriting each other. Replaced double-quotes with single-quotes. Refactored saving/loading into a separate module. Changed button format to use input_code rather than string token. Settings format is unchanged (still saved as string token). Rewrote table initialization in save/load. Implemented menus. Added helper messages for "on frames"/"off frames". Fixed bugs related to reloading roms. Soft resets would reload autofire settings without saving them first, causing the settings to be lost. This commit adds a check to only reload from the settings file if loading a different rom than before. Hard resets would leave bad references lying around, causing MAME to crash under certain circumstances (i.e. resetting while in the edit menu and entering the menu again). This commit makes sure to properly clean up and reinitialize menu and button states when resetting. Used set_folder to avoid hardcoding plugin name in settings path. . RAM auto-sharing is going away, so fix drivers relying on it (drivers\ambush.cpp, amiga.cpp, appoooh.cpp, armedf.cpp, astrocde.cpp, atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, bagman.cpp, banctec.cpp, batman.cpp, bingor.cpp, by68701.cpp, cball.cpp, ccastles.cpp, cclimber.cpp, contra.cpp, coolridr.cpp, cps2.cpp, crystal.cpp, ddragon.cpp, deadang.cpp, eprom.cpp, equites.cpp, expro02.cpp, feversoc.cpp, fitfight.cpp, gaelco2.cpp, gaelco3d.cpp, galaxian.cpp, galaxold.cpp, gamepock.cpp, goindol.cpp, hvyunit.cpp, ironhors.cpp, legionna.cpp, liberate.cpp, liberatr.cpp, ltd.cpp, m62.cpp, maygayep.cpp, maygayv1.cpp, mgolf.cpp, midvunit.cpp, mps1230.cpp, namcos12.cpp, namcos23.cpp, nemesis.cpp, nmk16.cpp, o2.cpp, olibochu.cpp, punchout.cpp, realbrk.cpp, rocnrope.cpp, rohga.cpp, scv.cpp, senjyo.cpp, seta.cpp, skimaxx.cpp, ssv.cpp, stfight.cpp, subs.cpp, subsino2.cpp, tagteam.cpp, tankbust.cpp, taxidriv.cpp, tbowl.cpp, wecleman.cpp, wiping.cpp, yiear.cpp, zaccaria.cpp, audio\cage.cpp). . Removed not needed offset from files in HASH folder - VGM player . Fixed volume. Make stereo output when chip can be stereo output. More correct behavior (not overall chip count related) - but noisy, comments for now. . Fixed VGM player crashes when sliders selected (ID 07316) - Debugger: Allow hexadecimal values for -skip with 0x prefix (tools\unidasm.cpp) 0.209 - New games: Akka Arrh (prototype), Bonus Poker, Fun World Quiz (German, 27-04-1990), Fun World Quiz (German, 12-11-1990) and Nevada (French, encrypted) - New Working games: Dragon World (Korea, V040K), Jolly Card (German, Fun World, bootleg), Joker Card (Inter Games), Jolly Card (Italian, bootleg, set 2), Joker Card 300 (Ver.A267BC, encrypted), Little Casino II v17.0, Mega Card (Ver.0210, encrypted), Multi Win (Ver.0167, encrypted), Power Card (Ver 0263, encrypted), Royal Card (Evona, Polish, encrypted), Royal Card (Italian, Dino 4 hardware, encrypted), Saloon (French, encrypted), Tripple Draw (V3.1 s) and Wonder Boy (system 2, set 2, 315-5176) - New Non-Working games: Bikkuri Pro Wrestling (Japan 881221, Ver 1.05), Centipede / Millipede / Missile Command (rev 1.03), Multi-Action 6710-13, Multi-Action 7551, Multi-Action 7556, Panther Darts and Trivial Pursuit (Volumen V, Spanish, Maibesa hardware) - New clones: Casino Poker (Ver PM86-35-1, German), Dock Man (set 2), Dock Man (set 3), Empire City: 1931 (France), Euro League (Gaelco bootleg, Modular System), Image Fight (Japan, bootleg), Little Casino II v18.1, Street Heat (set 2, older?) and Super Bobble Bobble (bootleg, set 5) - New PinMAME games: Dr. Dude (LA-2), 'Elvira and the Party Monsters (LF-1) French', Gilligan's Island (L-8) and Last Action Hero (1.06 Canada) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): F1 Triple Battle (TourVision PCE bootleg) - New drivers: akkaarrh.cpp, daryde.cpp and merit3xx.cpp - New devices: i82586, i82596dx_be, i82596dx_le, i82596sx_be, i82596sx_le, dc320b, dc320e, dc820, dc820b, m6805p2, m6805p6, m6805r2, m6805r3, m6805u2, m6805u3, ultra12f, ultra14f, ultra24f and upd72069 - CPU . Intel I386 . Added new MAME debugger function cacheflush(x) to writeback cache: cacheflush() or cacheflush(0) writes back dirty cachelines to ram, cacheflush(1) also marks dirty cachelines as clean and cacheflush(2) or cacheflush(3) also invalidates the whole cache. . Athlon XP updates to memory access: Now Athlon XP supports WrMem and RdMem bits in fixed range MTRRs. Accesses to the first megabyte can be directed to system memory (ram) or memory-mapped-io (mmio) (the pci bus). Above 1mb accesses below the top_mem MSR address ram the others mmio. At reset everyting is directed to mmio. Addresss spaces work in the following way. AS_PROGRAM is used for ram. AS_DATA is used for mmio. AS_OPCODES is used by the debugger disassembler and in memory views to look at the memory contents from the point of view of the microprocessor, including the cache. Also some class members have been added to the save state. . MC68307: Use internal map for interrupt acknowledgment (was overlooked). Disabled side effects for interrupt acknowledgment. . MIPS-III . Added divide by zero floating point exception . Clean up LL/SC instructions and add debug break to DRC . Always set BadVaddr on TLB miss. The TLB handler needs this to fill in the table (mips\mips3drc.cpp). . Don't adjust EPC to pc-4 when not backing up (mips\mips3.cpp) . Motorola MC6809 . battlane.cpp: Speculative 6809 de-legacying . bfm_sc2.cpp: Verified 6809 types (driver and video\bfm_dm01.cpp) . lemmings.cpp: De-legacy the MC6809, which will run slower (more within parameters) as a result. XTAL and CPU type verification. . mpu4dealem.cpp: Changed legacy type of "existing 6809 CPU" to be the same as base MPU4 . Motorola MC68000 . Rework 68000 interrupt handling: Implemented the cpu space as an address space. Make all vectored interrupts use the cpu space. Make it possible to direct the cpu space to another space, use it for amiga (which handles it as a normal AS_PROGRAM read). Make it possible to disable the priority muxer and get 3 lines instead, use it for CPS2. . Fixed build (this instruction will need further fixing) (m68000\m68k_in.cpp) . Fixed vector fetch width and autovector mapping (m68000\m68kcpu.cpp) . Use 8-bit handlers for 68000 vector fetches . Make the autovector abstraction a bit less leaky (m68000\m68000.h and m68kcpu.cpp) . Fixed ATC entry calculation error that was crashing Domain/OS (m68000\m68kmmu.h) . Motorola MC68705 . Added other Motorola M6805 Family HMOS variants . Use NVI for internal map to prevent segmentation fault . Texas Instruments TMS99xx . Changed setaddress handling (write operation, including DBIN state). Added missing initialization of m_ready_bufd; modernized logging. . Combined DBIN/IAQ operation with setaddress, no need for separate callbacks. . Checked min/max cycles . Changed setaddress method signature to (address, buslines); treating an address as a value to be written does not work with memory maps. . Texas Instruments TMS9900: Modernized logging, fixed LDCR/STCR handling of reg indirect/auto-inc mode (*Rx+). . Texas Instruments TMS9980A: Don't completely block reads from debugger . Toshiba TMP68301: Disabled side effects for interrupt acknowledgment . Z8 / Zilog Z8681: Added register pairs to debug state . Z80 CTC: Prevent integer overflow in Z80 CTC device, which causes a runtime error on WebAssembly builds. The issue was introduced in MAME 0.204 (fixed-rate clock input to be configured...) - SOUND . Hudson Soft HuC6280 PSG: Fixed LFO enable bit. Implemented LFO reset bit behavior. Correct frequency behavior. Added notes (sound\c6280.cpp). . K053260 KDSC: Simplified handlers. Use std::s. Shorter type values. Fixed spacings. . K054321 Maincpu-Soundcpu interface: Fixed synchronizing maincpu-soundcpu communication issue. Use gen_latch. . QS1000: Added imperfect_features related to emulation incorrection . Ricoh N2A03: Added device_mixer_interface instead hardcoded tags . Taito Ensoniq Sound System: Use CPU space for interrupt vectoring (audio\taito_en.cpp) . Yamaha AICA . Minor correction. Added notes. Removed some unused/unnecessary values. Implemented 18bit output. . Converted PCM/DSP memory access to device_rom_interface. Fixed code styles and some namings. Reduced unnecessary lines and unused values. Use shorter/correct type values. Simplified handlers (AICA and AICADSP). Added save state. device_memory_interface'd memory handlers. Reduced memset. . Yamaha YMF278B OPL4: Fixed sync. Added DO1/2 output. Fixed timer/buffer when clock is changed. . Yamaha YMF292-F SCSP: Use shorter type values. Removed hardcoded tags. Unnecessary values. Added notes (sound\scsp.cpp and scspdsp.cpp). . Yamaha YMZ774 AMMS2C: Calculate volume table . YM2608/YM2610: Fixed 12-bit wrapping behavior in YM2608/2610 ADPCM_A decoding, fixes some glitches in certain samples in the Metal Slug series and likely other games (sound\fm.cpp). - DEVICE . DECO 55 / 56 / 74 / 141 Tilemap Generator: Moved cninja exclusive transmask function into video\cninja.cpp . DECO 104 Protection: Reduced unnecessary line. Use shorter type values. . DECO 146 Protection: Simplified handlers. Reduced unnecessary lines, arguments and duplicates. Fixed spacings and debugger issues. Use shorter type values (machine\deco146.cpp). . DECO BAC06 Tilemap: Make bpp masking related to gfx. Make tilemap draw routine related to cliprect. Cleanup unnecessary address_space in handlers. Fixed spacing. . Discrete Netlist . Added MOSFET model. Currently capacitances are not modelled. This is a 3-pin model (bulk connected to Source) with provisions to extend it to 4-pin at a later stage. . Added a capacitor generic model which is charge conserving. Switch netlist to use this model instead of constant capacity model. . Start putting constants into a central place. Note: Please expect minor timing differences due to a different numerical path. The cmos inverter example illustrates the analog implementation of a cmos inverter gate. These were used a lot back in the 70s/80s to generate sinus waves. The model should also be able to better emulate 4066 analog switches. The addition of a relatively simple capacitor model is planned at a later stage. Expect everything from the MOSFET model at the current stage. Wrong results as well as convergence issues and crashes. . Improved MOS transistor model. This is a significant improvement to the MOS transistor model. It added modelling of the Meyer capacitance model. This is a somewhat academic addition since the effects occur on a nanosecond time scale and have a huge impact on performance. I plan to make the capacitance model selectable. Both on a model level as well as by introducing a global solver parameter. The model delivers comparable results to LTSpice. . Timing bug fix. Affects regression tests. This fixes a rounding issue in the ptime code. This bug surfaced when I tested netlist with picosecond resolution in ptime. This will have a small impact on every driver using netlist. Forbreakout, it required to adjust the color overlay. . Added global parameter to disable semi-conductor capacitance modelling. Added global NETLIST.DEFAULT_MOS_CAPMODEL parameter. Setting this to zero disables using capitance modelling in mos models. On a per mos device basis this can be achieved by adding CAPMODEL=0 to the model definition, e.g. MOSFET(X, "NMOS(CAPMODEL=0)"). Improved MOSFET convergence by using log-stepping. . Refactored model code. Move generic models into nld_generic_models. . Added nld_generic_models.h to netlist.lua . TYPE=2 opamp model and MB3614 fixes: Untie diode code. Fixed some typos. Added TYPE=2 opamp model which omits output voltage limitation. Useful for determining causes of non-convergence. Fixed MB3614 opamp parameters to match datasheet . MB3614 function controlled VARCLOCK and other improvements: Fixed MB3614 parameter. Added VARCLOCK which derives step size from function. Optimized function handling in CS and VS. Fixed a bug in ppreprocessor. Added trunc to pfunction. Added opamp_amplification_curve to derive characteristic amplification curve. . Added LM2902 . LM3900 . Align LM3900 pin names with other opamps. Added a better voltage clamping model. Added high precision model (disabled due to performance). Adjusted LM3900 model, fixed clipping in Zaccaria. Added frontiers to netlist audio and fixed AY8910 interfacing. The setup needs AY8910_RESISTOR_OUTPUT. Frontiers boosted performance. Route speech and DAC through netlist filtering. Also hook up all potentiometers so they can be adjusted from within the MAME UI (audio\nl_zac1b11142.cpp and zaccaria.cpp). . Improved and fast LM3900 model: LM3900 model 3 only has half the number of BJTs compared to model 1. But delivers comparable results for Money Money. Model 3 follows the datasheet. I left code for Model 0 and 2 in for educational reasons. Fixed Mario Bros LM3900 regression (audio\nl_mario.cpp). . NET_C(GND, CASSA) no longer relevant now that LM3900 saturates (audio\nl_zac1b11142.cpp) . Added more SPICE elements to the conversion code . Added frontiers to netlist audio and fixed AY8910 interfacing. The setup needs AY8910_RESISTOR_OUTPUT. Frontiers boosted performance (audio\nl_zac1b11142.cpp and zaccaria.cpp). . Clang lint fixes and pedantic warning fixes. Bug fixing: Fixed sound route dependency. Added "K" as a valid Kilo multiplier. Fixed current source parameter update. . Modernized interface . Added palestra, testpat and cocoloco to mamenl subtarget (scripts\target\mame\nl.lua and mame\nl.lst). Added skeleton drivers to mamenl build (a1supply.cpp, aleisttl.cpp, bailey.cpp, chicago.cpp, electra.cpp, exidyttl.cpp, fungames.cpp, meadwttl.cpp, monacogp.cpp, pse.cpp, ramtek.cpp, segattl.cpp, taitottl.cpp and usbilliards.cpp). . Improved netlist initialization in drivers. . Added validation support to netlist device. mame -validate now also checks all netlist devices. It does this by constructing a temporary netlist. This commit also fixes some memory leaks and a bad bug which surfaced in validation. . Improved validation code. Adjusted warning levels and fixed a number of topics identified. . Scalable error messages. This approach uses functors for logging messages. . Floppy . Eliminated floppy_get_count (imagedev\flopdrv.cpp) . Implemented threshold to accept disk images with a few excess and empty tracks at the end used by HFE and DSK loaders for now (formats\dsk_dsk.cpp, flopimg.h and hxchfe_dsk.cpp). . Drive selection improvements: Deselect drives upon reset, or select drive 0 for older FDCs with multiplexed select lines. Deselect other floppies when using set_floppy (machine\upd765.cpp). . Harddisk: Added ability to throttle HDD DMA transfer speed, fixes strange freeze in attract mode of San Francisco Rush 2049 (ID 07242). . Intel 8259 PIC: Avoid reacting to debugger reads . InterLan NP600A-3 Intelligent Protocol Processor: Preliminary 82586 hookup. Added 82586 interrupt. . Kaneko KC002 Sprites and Kaneko VU002 Sprites: Simplified handlers, fixed namings and use shorter type vales (video\kaneko_spr.cpp). . Kaneko VIEW2 Tilemaps: Added address_map for VRAM handling. Moved expro02.cpp exclusive tilemap bankswitching function into expro02.cpp (now callback'd). Fixed namings. Reduced duplicates. Simplified handlers. . Keyboard: Connected matrix and ports (bus\pc_kbd\pcat101.cpp). After this change, the keyboard sends scan codes to the host successfully, but fails to receive/process commands from the host. Failure is probably due to differences between the 6805U3 that's really in the keyboard, and the 68705U3 that's the best match in mame at the moment, so requires expanded 6805 emulation. . MC68681 DUART: Disabled side effects for interrupt acknowledgment . Motorola MC6845 CRTC: Fixed/Recomputed MC6845 clock parameters and improved logging (ID 07282). Note: After the screen is reconfigured for the (MESS) Alphatronic PC 80-column mode, the calls to reset_origin become more frequent than the screen device's frame updates. This is a nasty CRTC/screen timing bug. . Motorola MC68901 MFP: Added (untested) callback for daisy-chained interrupt acknowledgment . Philips SCC68070: Merged CPU device with on-chip peripheral emulation. Added internal clock divider. Added a few crude hacks to force status bits in unemulated UART and I2C (machine\scc68070.cpp). Specified a few of the unique aspects of the SCC68070 core (m68000\m68k_in.cpp and m68kcpu.cpp/h). . SCSI CD-ROM: Support mode page 0x01, allows (MESS) Apple II SCSI Card to access CD-ROMs. . Taito TC0100SCN: Moved Taito F2 exclusive bankswitch function into taito_f2.cpp driver. Simplifed handlers. Fixed namings. Use shorter type values. Allow masked priority behavior. Internalized text GFX. Reduced duplicates, unnecessary values and functions. Make some draw routine related to cliprect. . Taito TC0480SCP: Fixed naming. Removed unnecessary handlers and duplicates. Simplified handlers. Use shorter type values. Internalized text GFX. Unnecessary pointers and functions. Default mem_mask values. . Tecmo Chained Sprites: Replaced gfx_element instead gfxdecode_device, reduced unused/unnecessary lines and value and fixed some value type (video\tecmo_spr.cpp). . TMS9927 VTC: Support a custom visible area . 6522 VIA: Removed unneeded space and offset (machine\6522via.cpp) - actfancr.cpp: Simplified gfxdecode. Fixed spacing. - adp.cpp, dcheese.cpp and stellafr.cpp: Interrupt modernization - aristmk5.cpp: Updated artwork based on a few photos of the button labels - atarittl.cpp and pong.cpp: Comments fix - cdi.cpp . Modernized interrupt handling. Disentangle video\mcd212.cpp from driver state class. Improved clock documentation. . Philips SCC68070: Merged CPU device with on-chip peripheral emulation. Added internal clock divider. Added a few crude hacks to force status bits in unemulated UART and I2C (machine\scc68070.cpp). . Misc updates (video\mcd212.cpp): Removed spurious second interrupt output (was already dummied out). Take ownership of shared pointers to video RAM. Improved device name. Modernized logging. - cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp: Replaced VDP bitmap access with screen().pixel() for lightgun emulation. Fixed order of nametable/attribute reads (video\ppu2c0x.cpp). - cninja.cpp: Moved cninja exclusive transmask function into video\cninja.cpp - cps1.cpp: Don't access extra I/O ports if they're not configured (video\cps1.cpp) - cps3.cpp: Use shorter type values. Added enum / constexpr values instead some macros. Reduced duplicate snd unnecessary garbage in text layer gfx. Convert/Correct shared_ptr type for ss_ram and colourram. Minor cliprect restriction. Minor code style fixes. Fixed namings. Reduced unnecessary gaps in some zoomed sprites. - crospang.cpp: Simplified handlers. Fixed namings. Moved alternative GFX layout into gfxdecode. Move most private things under private (includes\crospang.h). - crystal.cpp: Dumped alternate MX27l1000 BIOS - deniam.cpp . Added xBGRBBBBGGGGRRRR case of palette format (emu\emupal.cpp). Note: Bit 15 is toggle shadow/hilight? . Simplified handlers. Fixed freezing screen behavior. Reduced runtime tag lookups and unnecessary lines. Use shorter type values. - funworld.cpp . Support for custom CPUs' opcode decryption . Added documentation and hardware notes to Joker Card / Multi Card (Epoxy brick CPU) about the behaviour and how the scheme works. Added a default NVRAM. . Improvements to Saloon (French, encrypted) and Nevada (French, encrypted) (Games now playable): Added I2C bus, default serial EEPROM, default NVRAM, dipswitches and technical notes. Improved memory map. Removed PIAs. Reworked inputs. Fixed colors. I2C bus inclusion only for Saloon/Nevada instead of all games. . Fixed Saloon (French, encrypted) (Game now playable) . Fun World encrypted games improvements: Moved the Multi Win class to the header. Reworked the memory maps. Fixed the ROM loads. Changed tilemaps size. Added new video start. Extended the encryption range to covering the new ROM space. Reworked inputs (still need some work). Fixed graphics bitplanes & palettes. Added technical notes. . Joker Card 300 (Ver.A267BC, encrypted) improvements (Game now playable): Redumped the faulty graphics ROM thanks to a special custom device constructed with forensics technics. Removed the imperfect graphics flag. Promoted the game to working. Added technical and game notes. . Added default NVRAM to Royal Card (Italian, Dino 4 hardware, encrypted). Fixed issues with the PIAs that doesn't allow the game to boot. Added technical and game notes (Game now playable). . Royal Card (Evona, Polish, encrypted) improvements . Modified the machine_config to bank the palette in a different way. Inverted the graphics ROM load, fixing the bitplanes. Tiles now are visible and have perfect colors. Moved the royalcrdf class to the header. Created new memory map. Fixed the VRAM offsets. . Adjusted the decryption offsets. Improved memory map. Mirrored PIA #0 to $6800 and PIA #1 to $6000. Improved inputs. Created a default NVRAM. Switched the CPU base to R65C02 to avoid the bug when a NMI occurs in a BRK. Added a temporary workaround to force a NOP after the BRK, and balanced checksums. Will be removed once found a workaround in the decryption routines. Added technical and game notes. Promoted the game to working. . Fixed Mega Card, Multi Win and Power Card (Games now playable) . Marked clone Royal Card (German, set 4) graphics ROM roj.ic26 as bad dump. Address line 08 is faulty, so you have 0x100 bytes blocks repeated along the dump. Verified the GFX dump from Royal Card (German, set 4) as a mix of Royal Card & Jolly Card graphics, with faulty address. Used GFX set from parent, that matches 100%. Removed the imperfect graphics flag. . Reworked clone Jolly Card (Italian, bootleg, set 2) and added default NVRAM. Added button-lamps support to clones Jolly Card (Italian, bootleg, set 2) and Jolly Card (German, Fun World, bootleg) (Games now playable). . Joker Card (Inter Games) improvements (Game now playable): Reworked memory map. Found the real VRAM offset. Added splitted attr/color RAM. Mirrored attr/color RAM for separated writes. Hooked the AY8910 properly. Changed CPU from 65C02 to 65SC02. Generated periodic interrupts. Temporarily patched some hardware checks. Added default NVRAM. Promoted game to working. Added technical notes. . Added CRTC as multiplexed with PSG and stub handlers for protection accesses . Switched Austrian-->German for all sets, since the language is in fact German - gaelco2.cpp: Added device_rom_interface for sound data. Correct sound pitch (related to clock). Minor code style fixes (https://youtu.be/9ISkG2ggfEc; sound\gaelco.cpp). Minor XTAL correction and added notes. - goldnpkr.cpp . Dumped and confirmed the bipolar PROM for PlayMan Poker. Fixed and complete specs and PCB layout. . Confirmed bipolar PROM dump for Casino Poker - itech32.cpp: Simplified handlers. Reduced unncesessary ACCESSING_BITs and duplicates. Runtime tag lookups. Fixed some namings. Use shorter type values. Default mem_mask values. - jaguar.cpp: Fixed interrupt acknowledgment by adding CPU space - kaneko16.cpp: Reduced duplicates, runtime tag lookups and unnecessary ACCESSING_BITs. Simplified handlers. Move most of things under protected / private. Simplified handlers, fixed namings and use shorter type vales in video\kaneko_spr.cpp. - kickgoal.cpp: Removed MCFGs. Minor cleanups. Fixed some namings. Added notes related to gfxs. Reduced unnecessary line, handlers and duplicates. Use shorter/correct type values. - konamim2.cpp: 3DO M2 BDA Triangle Engine (video\3dom2_te.cpp): alu_calc ALU mode (result < 0) was not possible and simplify Boolean mode. - leland.cpp . Simplified handlers. Fixed some namings. Reduced some runtime tag lookups. Use shorter/correct type values. Removed hardcoded tag for ROMs and host CPU in audio\leland.cpp. . Changed 'Up Your Alley' from a parent set to a clone of Alley Master. Note: Prototype of Alley Master? - ltcasino.cpp . Various updates: Rewrote driver. Hook up the two 6821 PIAs. Clean up inputs, added dipswitch locations and label. Added output ports and hook up coin counter and lamps. Added simple layout showing the five buttons (clickable artwork). Correct RAM size. Hooked up CRT5037. Adjusted clocks. Resolved a few more dipswitch functions. . All games are now fully playable with correct graphics. Little Casino: This is the monochrome version. Added a layout with color overlays based on a flyer. . Fixed reset on coin-up in 'Little Casino II v17.0' (Game now playable) . Fixed service mode DIP does not work in ltcasino, ltcasin2 and mv4in1 (ID 03122). Note: To enter service mode, set Service Mode to On in the settings and disable the games ("Enable Poker" etc. set to Off), then reset it. . Use required_device_array for the PIA as suggested. Use 18MHz XTAL for ltcasino/ltcasin2 and updated ROM labels and notes. . Clean up/Fixed verbiage. Added additional information. . Updated and verified all dipswitches and added NVRAM. Also documented service mode and updated notes. The dipswitches now fully match the dipswitch menu in service mode. . Provided IRQ through PIA and clean up tabs in comments. . Fixed Service Mode DIP does not work (ID 03122) . Top overlay bar should be yellow in layout\ltcasino.lay - m72.cpp: Fixed sample rate for M72 PCBs. Added notes. Correct DAC volume, fixes the volume of the "victory scream" in Hammerin' Harry (ID 07075). - m72.cpp + m90.cpp: Removed hardcoded tags, unused functions and values and added device_rom_interface for sample roms (audio\m72.cpp). Fixed notes. - metro.cpp: Use CPU space for interrupt vectoring - midzeus.cpp: Fixed typo from MAME 0.202 ('MCFG removal and other cleanup'), fixes frame rate slowdown in 'The Grid'. - model1.cpp: Added individual output lines - namcos10.cpp: Rearranged regions like it has already been done for Namco System 11/12 - namcos22.cpp: Separated System Super 22 state class. Replaced I/O space with callbacks in M37710S4 CPU. - nichild.cpp: Fixed VDP interrupt by filtering it through internal CTC - nmk16.cpp: Take care of the address line scrambling in clones Red Hawk (Greece) and Red Hawk (Italy) via bitswap instead of ROM_CONTINUE, making them consistent with the other games in the driver. - nss.cpp, sfcbox.cpp and snesb.cpp: Simplified handlers. Added input clock (shared to SPC700 or independent?) and device_clock_changed. Use shorter type values. Reduced unnecessary lines. Fixed spacings. Added notes (audio\snes_snd.cpp). - oneshot.cpp . Added PCB layout for Mad Donna & various notes for One Shot One Kill . Simplified handlers and GFX layouts. Fixed some namings and spacings. Reduced runtime tag lookups and unnecessary lines. - pgm.cpp: Implemented some inputs. Fixed naming. Added inputs for CAVE PCB (machine\pgmprot_igs027a_type1.cpp). - pong.cpp: Fixed Breakout [TTL] regression - psikyo4.cpp: Fixed YMF278B output when used - psikyosh.cpp . Make tilemap draw routine related to cliprect. Fixed tilemap size when enabled per-line effects. Removed MCFGs, ACCESSING_BITS and runtime tag lookups. Minor code style fixes. Added seperated address map related to mahjong controller. Fixed namings. Reduced unnecessary values/handlers. Added notes. Converted some arrays into std::unique_ptr. Fixed some spacing. Added constant values instead macro. . Simplified handlers. Use shorter/correct type values. Cleanup sprite drawing routines. Reduced unnecessary lines and device. - r2dx_v33.cpp . Fixed compile. Fixed naming. Reduced runtime tag lookups and duplicates between drivers r2dx_v33 and raiden2. . Simplified handlers. Use shorter values. Fixed code styles. Reduced some unnecessary line. - raiden2.cpp . Splitted video functions into video\raiden2.cpp. Cleanup ACCESSING_BITs. Fixed naming. Reduced runtime tag lookups and unused code. Added save state for sprite encryption values. Fixed 'X Se Dae Quiz (Korea)' config because this game is running into modified Zero Team Hardware and second OKI chip/surface are not exists. Use protected:/private (includes\raiden2.h). . Simplified handlers. Use shorter values. Fixed code styles. Reduced some unnecessary line. - sandscrp.cpp: Simplified handlers. Use shorter/correct type value. Fixed some namings. Reduced some unnecessary lines. - simpl156.cpp: Simplified handlers and gfxdecode. Reduced duplicates. Fixed namings and spacing. OKI clock confirmed by PCB OSCs - PCBs hasn't 32.22MHz XTAL. Added MSM6295 clock notes. - snk68.cpp:Splitted pow. searchar_state is related to foreground layer difference. Fixed namings. Reduced ACCESSING_BITs, runtime tag lookups, unnecessary handlers and ROM regions. Bool'd flipscreen value. - statriv2.cpp . Fixed machine config, interrupt and input for Tripple Draw (V3.1 s) (Game now playable). . Fixed segment fault in debug memory viewer for sets without question data - tmnt.cpp: Device'fied Premier Soccer exclusive K054986A interface - tourvis.cpp: Removed redundant 0 offset labels. Added game ID for "F1 Triple Battle". The "F1 Triple Battle" cart ID was reverse-engineered by System11. It has such a specific set of inputs required to start the game in 1p or 2p mode that it was easy to isolate the correct string from the 200+ defined in the data tables. - tumbleb.cpp: Drive ADPCM sound through PIC (sound communications not hooked up yet) - zaccaria.cpp . Added frontiers to netlist audio and fixed AY8910 interfacing. The setup needs AY8910_RESISTOR_OUTPUT. Frontiers boosted performance (audio\nl_zac1b11142.cpp and zaccaria.cpp). . Route speech and DAC through netlist filtering. Also hook up all potentiometers so they can be adjusted from within the MAME UI. - wc90b.cpp: Tidy driver a bit - Ameri-Hockey . Added preliminary inputs. Log outputs. . Added coin counters and basic layout for 7-segment LED scoreboard. Sound is OK; date is still too uncertain. - Aztarac . Tie spaces together for interrupt vectoring; derive clocks from XTAL; use X2212 for NVRAM. . Acknowledge main interrupt; UBR access is 8-bit. - Bubble Bobble II, Chance Thirty Two and Road Riot's Revenge: Mark dumps of protected PLDs as NO_DUMP - Crystal Castles: Adjust initial screen parameters (ID 03130) - Double-Up Poker (Jubilee): Fixed CRU address that acknowledges interrupt - Dragon World: Decrypted clone Dragon World (Korea, V040K) (Game now playable). Seems ok (at least with how far the game can get without protection handling) but could probably be simplified a bit more. The set needs protection handling to be promoted to working. - Fire Shark: Fixed coinage for clone 'Jiao! Jiao! Jiao! (China, 2P set)' - Funky Jet: Added PIC dump for clone Funky Jet (World, rev 1). Note: The PIC still needs to be properly hooked up. - Ginga NinkyouDen: Simplified GFX layouts and handlers. Reduced runtime tag lookups, unnecessary batch and lines. Fixed namings. Use shorter/correct type values. - Hot Blocks - Tetrix II: Removed MCFGs. Simplified handlers. Use address_bank_map_device for video bank function. - Kid Niki: Fixed Kid Niki schematics after review. The Kung-Fu Master schematics differ from the kidnik schematics in wiring D4, D5 and Q4 with other components. The manual corrections to the kungfu master schematics make sense and thus are used here. opamp XU1.B according to schematics has no feedback loop between output and inputs. The arrangement of components in the schematic however indicate that this is not the case and indeed a connection exists. This results in sounds at output XU1.14 to contain more detail. - Lock-On: Fixed coin counters (Bookkeeping says Credits A, B & C have a credit in it but i did not actually did so) - Mario Bros: Fixed an error in Mario Bros schematics. This became obvious after the improved LM3900 model was introduced. Thanks to Tafoid for indentifying the issue (audio\nl_mario.cpp). - Match Games: Use tilemap system for drawing, clean up palette and gfxlayout. - Moonwar . Documentation update for Moonwar and clone Moonwar (older) based on eBay auction pic (MOON WAR II - STERN 1981) . Correct rom names for Moonwar (older) and correct the color BPROM. - NBA Showtime Gold / NFL Blitz 2000: Changed serial number for nbagold, fixes hang starting blitz 2000. - Omega: Fixed impossible space before filename entries in clone Omega (earlier) - Pool 10: Added PLDs to clone Pool 10 (Italian, Dino 4 hardware, encrypted) - Samurai Nihon-Ichi: Fixed 'Lives' dipswitch in clone Samurai Nihon-Ichi (bootleg, harder) (ID 07265) - Sasuke vs. Commander: Fixed initial music plays partially or not at all after hitting start (audio\snk6502.cpp) (ID 07266) - Scramble: Dumped color PROM for clone Scramble (bootleg, set 2) and confirmed the 3 sanded-off chips initially believed to be PROMs are actually 74LS251 - Seibu Cup Soccer: Use measured clocks for Seibu Cup Soccer bootlegs sets - Super Chick: Partially decrypted Super Chick - Skimaxx: Updates/Cleanups. Use region_ptr for blitter ROM. Fixed some namings. Use shorter type values. Reduced runtime tag lookups and MCFGs. - unknown TMS9980 Poker Game: Added preliminary CRU I/O - Wonder Boy: Decrypted SEGA 315-5133 device used by clone Wonder Boy (system 2, set 2, 315-5176) (Game now playable). - Fixed rom names in galaxian.cpp, leland.cpp, model1.cpp, namcos2.cpp and seicupbl.cpp and wc90b.cpp - Dipswitch fixes in funworld.cpp, ltcasino.cpp and tsamurai.cpp - Description changes of Bonus Card (German), Bonus Card (German, ATG Electronic hack), Dock Man (set 1), Dr. Dude (LU-1) Europe, Euro League (Italian hack of Tecmo World Cup '90, set 1), Euro League (Italian hack of Tecmo World Cup '90, set 2), Fun World Quiz (German), Futari Mahjong Ron II, Joker Card (Inter Games), Joker Card / Multi Card (Epoxy brick CPU), Joker Card 300 (Ver.A267BC, encrypted), Jolly Card (German, Fun World, bootleg), Jolly Card (German, set 1), Jolly Card (German, set 2), Little Casino II v17.0, Little Casino, Mr. Driller 2 (World, DR22 Ver.A), Name That Tune (Bally, 3/23/86), Name That Tune (Bally, set 1), Neo Print - Fuyu Pri Iitoko-dori (Japan) (T4i 3.07), Point Blank 3 (World, GNN2 Ver.A), Pro Cycle Tele Cardioline (Salter Fitness Bike V.1.0, Checksum 02AB), Royal Card (Evona, Polish, encrypted), Royal Card (German, set 1), Royal Card (German, set 2), Royal Card (German, set 4), Royal Card (German, set 5), Royal Card (German, set 6), Royal Card (German, set 7, CMC C1030 HW), Royal Card (German, set 8), Royal Card (German/Polish, set 3), Street Heat (set 1, newer?), World Cup '90 (European hack, different title) and 'unknown 1980 poker game'. - Renamed (dd_l2) to (dd_lu1) and (ltcasinn) to (ltcasin2a) - MAME . VIDEO RENDERING SYSTEM: Added xBGRBBBBGGGGRRRR case of palette format (emu\emupal.cpp) . DEVICE . Simplified read/write handlers (audio\decobsmt.cpp, geebee.cpp, warpwarp.cpp, taitosnd.cpp, drivers\expro02.cpp, itech32.cpp, ninjaw.cpp, othunder.cpp, slapshot.cpp, taito_z.cpp, warriorb.cpp, williams.cpp, wmg.cpp, emu\emupal.cpp, ins8250.cpp, watchdog.cpp, z80ctc.cpp, z80dart.cpp, z80pio.cpp, z80sio.cpp, sound\saa1099.cpp, video\decbac06.cpp, deco16ic.cpp and tc0360pri.cpp) . Removed unnecessary arguments in handlers (machine\gen_latch.cpp and sound\tms5220.cpp) . Misc MACHINE_CONFIG removal . MEMORY SYSTEM: Removed obsolete alignement limit (emu\emumem.cpp). Correct start/end on big endian (emu\emumem_mud.cpp). . Possible fixed OSD sleep (osd\osdcore.cpp) (ID 07275). Note: Strange pacing issue, the games do not run at 100% always, but the speed fluctuates (+/- 3 or 4%). It's caused by osd_sleep from emu\video.cpp(aka the "sleep" setting in mame.ini). I did some quick testing and notice that it sometimes oversleeps by more than 10ms. I assume this is Windows-specific, plus whatever compiler update that broke std::this_thread::sleep_for. . Offset is now optional and defaults to 0 (emu\softlist.cpp) . Annotated all uses of set_input_line_vector with CPU type (Example cvs.cpp: m_audiocpu->set_input_line_vector(0, 0x03); // S2650) . Multi-Language: Updated Brazilian Portuguese, Chinese (simplified/traditional) and Greek translation - Linux: Linux X11 Input: Fixed multiple lightgun support on X11 Linux, every lightgun event was passed onto every lightgun device within MAME. This obviously works for 1 gun, but with 2, it causes both crosshairs to move in the same direction at the same time (input\input_x11.cpp). - MAC OS X . Updated OS X debugger window titles when restoring configuration for disassembly and memory viewers (osx\disassemblyviewer.mm and memoryviewer.mm) . Fixed compiling with Xcode 10.2 on MAC OS. This shouldn't affect any other Clang configurations (or any older Xcodes); LMK if problems occur (3rdparty\asio\include\asio\detail\config.hpp). - VGM player: Volume Multipler support - Compiling . Fixed compile (bgfx\shaders\chains\xbr\fs_xbr-lv3-noblend.sc). Note: We do not seem to have shader compilation in our automated testing, that could be a problem. . Fixed non-Apple Clang (3rdparty\asio\include\asio\detail\config.hpp) . Fixed compile warning under Emscripten (ui\videoopt.cpp) . Standardised #include guards - Debugger: Fixed debugger crashes when accessing memory under certain conditions (ID 07270) 0.208 - New games: Rebound (Rev B) [TTL] - New Non-Working games: AS-1 Controller, Frantic Fruits, Jurassic Park (bootleg of Megadrive version), Neo Print - Chicken Ramen (Japan), Neo Print - Fuyo Pri Iitoko Tori (Japan) (T4i 3.07), Neo Print - Otogibanashi (Japan) (T4i 3.00), Neo Print - Senyou Cassette Ver. 1 (Japan), Neo Print Special: Sekai Ryokou 2 (Japan) and Super Chick - New clones: Komo Como (Topmar, bootleg?), DJ Boy (Japan, set 2), DJ Boy (World), Finalizer - Super Transformation (set 2), Gemini Wing (World), Karate Champ (US VS version, set 3), Karate Champ (US VS version, set 4), Omega (earlier), Over Rev (Model 2B, Revision A), Pang Pom's (Nova), Raiden (US set 3) and Sega Rally Championship - Twin/DX (Revision A) - New PinMAME games: Star Trek: The Next Generation (LX-5) - New drivers: cromptons.cpp and unkpoker.cpp - New devices: aha1542a, aha1542b, aha1542c, aha1542cp, aha1740, aha1742a, aic6250, aic6251a, bt542b, bt542bh, bt545s, hpc46003, hpc46104, ncr5390, ncr53c90a, ncr53c94, ncr53cf94, novell_dcb, sk1100_link_cable, sk1100_printer_port and vrc7snd - New artworks: 289 new widescreen artworks created by Divemaster with lamps and clickable buttons (https://mrdo.mameworld.info/mame_artwork_ingame.php) - CPU . I8051 / MCS-51 CPU: New version of old hack to break out of JB INT0/INT1 loops when interrupt is triggered (cpu\mcs51\mcs51.cpp) . Intel I80188: Added interrupt controller registers to debugger state . Intel I386: Added a simple cache to the Athlon XP processor. A single 64K 2-way set associative cache. Used for both instructions and data. Enabled only for addresses in the first megabyte. Works always in writeback mode. It is needed by the NVIDIA nForce motherboard BIOS that uses it to simulate a block of ram at address d0000 before ddr ram is configured (i386\i386.cpp, i386priv.h, i486ops.hxx and cpuidmsrs.hxx). . MC68307: Added override for RESET instruction . Motorola MC6809/MC6809 (legacy): Fixed for 6809 disassembly. Increment PC for indexed addressing with single byte offset. Indexed addressing was incorrectly labeled indirect in function name. Use labels for pc relative indexed addressing. Force extended addressing (m6809\6x09dasm.cpp/h). . Motorola MC68000: Removed MC68301 device type . MIPS-I . FPU emulation. Code refactoring makes the changes hard to isolate, but the main improvements are: Implemented fpu instructions and exceptions. Correct swl/swr implementation. TLB MRU lookup optimization. Interrupt and privilege debugger breakpoints. . BC2/BC3 always work. BCzF/BCzT can be used (by reading input lines) when coprocessor 2 or 3 are enabled, even when there's no real coprocessor hardware. . Texas Instruments TMS9900/TMS9980A/TMS9995 CPUs . CRU addressing change: Shift all CRU addresses by 1 in memory maps. This makes CRU addressing more consistent with both register values and external address lines. (CRUOUT is multiplexed with the lowest address line on the 8-bit bus versions). Addressing for CRU read accesses is now the same as it has been for CRU write accesses: one address for each bit. This simplifies the CPU cores (which were already emulating bit access times), though it means some read handlers now have to do some additional work. CRU space is now little-endian, despite the big-endian memory organization, because less significant bits correspond to lower CRU addresses. . Notes on CRU addressing. The current emulation of the CRU space involves a 1-bit address shift, reflecting the one-to-one correspondence between CRU bits and words (not bytes) in the lower part of the memory space. (On the TMS9980A and TMS9995, CRUOUT is multiplexed with the least significant address line.) Thus, what TI's documentation calls the software address (the R12 base value plus the bit offset multiplied by 2) is used in address maps and CPU-side operations. MAME's memory architecture automatically translates these to right-justified hardware addresses in the process of decoding offsets for read/write handlers, which is more typical of what peripheral devices expect. (Note also that address spaces do not support data widths narrower than 8 bits, so these handlers must specify 8-bit types despite only one bit being useful). . Toshiba TMP68301: Merged on-chip peripheral emulation with CPU device - SOUND . Atari C012294 POKEY . Performance optimization by not using modulus . Renamed pokey_device::m_output -> pokey_device::m_out_raw. Note: There is a variable pokey_device::pokey_channel::m_output. Two variables with same name in close context but complete different maning are not exactly helpful to understand the code. Renaming pokey_device::pokey_channel::m_output was not an option because this would damage stored machine states. . Rework for performance enhancements: Profiling with valgrind pointed (pokey_device::step_one_clock()). . Rework prescaler handling: CLK_1 does not have a prescaler so there is no need to increment and reset m_clock_cnt[CLK_1]. Unroll other prescalers. It gives performance win and reading is easier. . step_pot is called from step_one_clock only and just in case Pokey is not in reset state -> No need to check reset state again. In case there were no bits in 'upd' latched to one, there is no need to call synchronize(SYNC_POT, 0) because m_ALLPOT won't change. . Force recalculation of raw sound output after reset . BSMT2000: Fixed 4-bit ADPCM sample playback . Texas Instruments TMS9900/TMS9995: Fixed handling of C and OV status bits for INV and SLA instructions . Yamaha YM2413 OPLL . Implemented instrument table for VRC7 (Konami VRC-7 cartridge). Added notes. . Added the debug-dumped set of VRC7 drum patches, to go along with the dumped VRC7 instrument patches. Replaced the inaccurate YM2413(OPLL) drum patches with the ones dumped from the VRC7, and noted that these still need to be verified from hardware. - DEVICE . DECO BAC06 Tilemap . Fixed problem with (video\decbac06.cpp). The previous emulation logic change was correct, however Sly Spy, Hippodrome and Birdie Try suffered from an ordering bug - tilemap.cpp in the core cached the tile indices before the game updated the dynamic colmun/row major bit. It seems the correct fix is to make sure tilemap::mappings_update() should be called when the column/row bit changes, however this is currently a private function. I've put in a hack at line 396 so that mappings_update() is called as a side effect of a flip. The better fix would be just to expose mappings_update for general driver use, but I didn't want to make that larger change without approval. . Removed camel case and mapping hack in favour of tilemap.h change. Small cleanup. Fixed wide mode used by Act-Fancer. . Discrete Netlist . Prepare further optimization. Moved fillmatrix to matrix solver base class. More alignment related refactoring. Tidy changes and better constexpr support for ptime class. . Analog readability refactoring. Changed the sign of go (or in other terms a12 and a21 matrix stencil elements). This should make further optimization of matrix population easier. In addition hopefully improve the readability of the code by sacrifying overloads for more verbose member names. . Cosmetic changes (mostly indentation). Improved readability. Memory code refactoring. . Fixed running any machine using netlist components back to back from UI will cause fatal error (ID 07254) . Fixed reset bug in 555 device (nld_ne555.cpp). Added reverse parameter to 3-pin-potentiometer (nlid_twoterm.cpp). . Fixed Breakout [TTL] paddle regression. The interesting parts in datasheets are always those which are not mentioned. . Migrated Rebound [TTL] from DICE. Added all missing elements, discrete startup logic, credit LED, missing start and coin discrete elements and missing paddle elements. Fixed bugs in start and coin logic and ensured it matches schematics. Replaced HLE by discrete elements. Documented PCB connector. Note: DICE Project: http://sourceforge.net/projects/dice/ and Rebound manual https://archive.org/details/ArcadeGameManualRebound. . Fixed artificial clicks in streaming sound device (machine\netlist.cpp) . Fixed bug in LOGIC_INPUT devices (devices\nlid_system.h). Now 'FAMILY' parameter is actually used. Also fixed bugs in code using this device (audio\nl_kidniki.cpp and nl_zac1b11142.cpp). . Added output resistance to NE555 (devices\nld_ne555.cpp). This is a first-order approximation of the output driving stage. A logic output with appropriate family may be better but would add more complexity. . Added MC1455P as device. Fixed formatting bug. . Added UJT example for 2N6027 (Programmable Unijunction Transistor; nl_examples\2N6027.cpp) . Added B-E and B-C capacitance to EB model. Despite the overhead - two devices more per transistor - this addition significantly reduces computing time on switching conditions by reducing the needed Newton-Raphson loops dramatically. . Refactor model code . Fixed-Frequency Monochrome Monitor: Separated interface from implementation/logic (video\fixfreq.cpp) . Floppy . Fixed Speedlock copy protection regression. Allow read side effects to be disabled (machine\upd765.cpp) . Correct result from Read ID when scan failed. Result from Read ID must be the sector ID information during execution phase. So result must be: Zeroes if not ready (execution phase is not reached). Command codes if ready but scan failed (execution phase is reached but ID is not found). This patch fixes this. If scan is correct then result is the ID information from sector found (machine\upd765.cpp). Fixes disk version of (MESS) Amstrad CPC6128 game "Perico Delgado Maillot Amarillo" stucks in fourth level/black screen (ID 06611). . Avoid segfault if double sided DSK image is loaded on simple sided disk device. MAME crashed if user was trying to load a dsk image with more heads or tracks than disk device supports. Now the error 'Incompatible image format' is raised (formats\dsk_dsk.cpp). . GDROM: Added security commands docs . I2C Memory: Fixed page write logic (machine\i2cmem.cpp) . INS8154 RAM I/O: Added internal 128-byte RAM and simplified handlers . Intel 8155 RAM, I/O & Timer: Simplified read/write handlers. Renamed "read" and "write" handlers to data_r and data_w, since these are neither complete nor typically-used accessors (machine\i8155.cpp). . Intel 8251 USART: Allow read side effects to be disabled . Keyboard: Fixed keyboard with PC/XT (bus\pc_kbd\pc_kbdc.cpp) . Motorola MC6845 CRTC . Reset line counter only if ((!m_reconfigure_cb.isnull() && (!postload)) (video\mc6845.cpp). Fixes graphics issues in (MESS) Amstrad CPC6128 games Galactic Tomb, The Living Daylights and Terminator 2. Games like Profanation 2 works now (ID 06423, 06854 and 06997). . Check if vsync should be enabled when frame is reset. Fixes (MESS) Amstrad CPC464/CPC6128 game Hundra gets stuck in a black screen after leaving main menu (ID 06927). . Check for vsync on frame reset only if vsync witdh is supported - Candy Crane (AGE): Added skeleton CPU device (HPC46104) and disassembler for HPC architecture and a HPC46003 type for future use. - astrocde.cpp . Various changes: Removed inaccurate comment from astrocde.xml regarding the 2000-baud tape interface. Converted astrohome controllers to slot devices. Added preliminary (not yet working) 300-baud cassette tape slot device. Changed potentiometer callbacks from tagged IO ports to devcb3. Added feature flag to indicate lack of, or support for, cassette device. . Added I/O access handling to expansion slot. Added INS8154 I/O functionality to Blue RAM boards (RAM not yet hooked up). Hooked up cassette saving and loading to Blue RAM boards. . Slot-ified accessory port and added lightpen device - champbas.cpp: Removed 74LS259 hack, the LS259 device does this automatically now. - chihiro.cpp . smbus controller actually supports two buses . Fixed crashes in xbox and chihiro sets (MAME 0.202; machine\xbox.cpp). Thanks to Tafoid for helping in tracking the regression. Removed MACHINE_CONFIG macros. - cninja.cpp: Fixed tilemap color mask behavior - cps1.cpp . Fixed kick buttons do not seem to be hooked up in clone Street Fighter II: The World Warrior (bootleg with rules screen) (video\cps1.c) (ID 07240) . Verified clone Street Fighter II': Champion Edition (protected bootleg on non-dash board) dump and added ROM locations - dec0.cpp: Use PORT_RESET and uPD4701A device for trackballs - esd16.cpp: Reduced unnecessary lines, duplicates and ACCESSING_BITs. Simplified handlers and gfxdecodes. Mark 8x8 tilemap dirty when VRAM data is changed. Fixed naming. Default mem_mask value. - expro02.cpp: Small update to PCB README - fcrash.cpp . Removed horrible hacks in clones The Punisher (bootleg with PIC16c57, set 1) and Street Fighter II': Magic Delta Turbo (bootleg, set 2) . Slight improvement to The Punisher (bootleg with PIC16c57, set 1) graphics - freekick.cpp: Documented connector pinouts - galaxian.cpp . Added a custom handler for Ten Spot's space bar key, replacing the previous bodge. Fixes space bar didn't cycle through all ten games (ID 07263). . Added notes about maincpu roms and garbage rom wotbg-w-3.bin of clone 'War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German)' - gaelco2.cpp: Reduced duplicates, unnecessary lines and defines. Fixed namings, spacings and code styles. Simplified handlers. Use shorter/correct type values. Mark tilemap dirty when RAM base is changed. - ggconnie.cpp: Modified pixel clock to be the same as the other drivers using the PCE video chips, now games run at the correct speed. Implemented OKI banking for smf, sound test and intro seem ok but needs to be verified after hopper implementation allows to coin up and get in game. OKI banking still wrong for 'Go! Go! Connie chan Jaka Jaka Janken'. - itech8.cpp: Reduced unnecessary arguments in some routine - itech32.cpp: Correct sound cpu type - model1.cpp: Hooked up drive board outputs to Model 1 driver and (again) to Virtua Racing, choose anything but 'standard' cabinet type. - mosaic.cpp: Verified and correct clocks - namcos1.cpp: Reduced duplicates and runtime tag lookups. Simplified handlers. Use shorter/correct type values. - namcos22.cpp: Removed some unnneeded void* cast in INPUT_PORTS - nss.cpp, sfcbox.cpp and snesb.cpp: Added callback for fetching open bus (bus\snes\*) - segaybd.cpp: Reduced unused code - silvmil.cpp: Simplified handlers. Moved handler behaviors under silvmil_state and alternative GFX layout into gfxdecode. Reduced unnecessary lines. Use shorter type values and fixed namings. - toaplan1.cpp, twincobr.cpp and wardner.cpp . Simplified handlers. Fixed minor namings. Removed register_postload. Fixed some code styles. Use shorter type values. Mark tilemap dirty when ROM/RAM bank is changed. . Reduced unnecessary lines. Fixed code styles (video\toaplan_scu.cpp) . Cleanup duplicates. Reduced unnecessary runtime tag lookups, lines and functions. Simplified handlers. Fixed namings and code styles. Splitted 'Demon's World / Horror Story' and 'Same! Same! Same!' specific machine state related to exclusive value and device. Removed register_postload. - witch.cpp: Correct foreground tilemap and bankswitching behavior. Fixed some naming. - Break Thru: Added note about how to access Test Mode (ID 07251) - Candy Crane: Added HPC46104 CPU. Note: HPC still not actually emulated. - Dai-Dai-Kakumei: Fixed regression by eliminating stupid hack (parallel port data register) - Dinosaur King: Dumped/Added security PIC to Dinosaur King (USA), Dinosaur King - D-Team VS. the Alpha Fortress (Export, Ver 2.500) (MDA-C0047) and Dinosaur King - Operation: Dinosaur Rescue (USA, Export) (MDA-C0021) - Dunk Shot: Added dipswitches 'Allow Continue' and 'Winner Advances' to Dunk Shot Rev A and Rev C (ID 07250). Note: In a July 1987 StarTech Jounal service bulletin from Atari (they licensed Dunk Shot from Sega) regarding a "Free credits bug" if DIP1 and DIP8 are on. DIP1 is assigned as "Winners Advance" and DIP8 assigned as "Game Continuation". Not sure what the Winners Advance does but I can confirm that turning DIP8 to on does turn on a prompt to add coins in order to continue after a game ends. These DIPs seem to work only in Rev A and Rev C of Dunk Shot. Turning either or both of these DIPs on in Dunk Shot (FD1089A 317-0022) seems to have no effect. - Football Champ / Euro Football Champ: Dumped PALs - Gauntlet II: Dumped prom 82s129-136043-1103.4r and correct size of rom 136043-1104.6p - High Seas Havoc: Fixed validation error - Legend of Hero Tonma: Dumped i8571 MCU for clone Legend of Hero Tonma (World, bootleg with i8751) - Night Mare (Spain): Tweak EFO90501 VDP dots per line to get closer to typical PAL rates - Space Position: Minor doc update - Top Speed: Fixed missing engine sounds (ID 07260) - Turret Tower: Fixed Turret Tower hang during the boot process (ID 07244). Note: Game sometimes accesses RAM via kuseg, which on R3041 is mapped at a 1GB offset. RAM is also accessed via kseg0/kseg1, meaning the hardware must ignore at least A30. - Dipswitch fixes in segas16b.cpp - Fixed rom names in angelkds.cpp, cps1.cpp, gottlieb.cpp, meadows.cpp, metro.cpp, micro3d.cpp (ID 07258) and pirates.cpp - Description changes of DJ Boy (Japan, set 1), DJ Boy (US, set 1), DJ Boy (US, set 2), Finalizer - Super Transformation (set 1), Mad Donna (Tuning, set 1), Mad Donna (Tuning, set 2) and 17x Prize Viva Espana (Barcrest) (MPU4)* - Renamed (djboy) to (djboyu), (djboya) to (djboyua), (gemini) to (geminij) and (maddonnb) to (maddonnab) - MAME . VIDEO RENDERING SYSTEM . Added constructor for SVG screens and removed a couple of macros (emu\screen.h) . Removed MCFG_VIDEO_SET_SCREEN usage (emu\divideo.h) . Added set_visarea_full plus some random examples (emu\screen.h). Added verbose message instead of aspect ratio helper for SVG screen (emu\screen.cpp). . Improved OpenGL performance by moving calculations out of loop (render\drawogl.cpp) . Added "inputraw" parameter, for use with inputtag and inputmask (emu\render.h and rendlay.cpp). It sets the element state directly to the raw input data & mask. Example uses: 8 way joystick state, multi-bitmask dipswitch state. If you don't want it to respond to layout mouse clicks, add a dummy inputtag rect under it. . Added inputraw to Compressed internal layouts (build\complay.py). Correction and added inputraw notes (techspecs\layout_files.rst). . DEVICE . Misc MACHINE_CONFIG removal . BIOS flag should apply to fills (and removed zero-value comments) (emu\romload.cpp) . Allow an address shift of 1 (to the right) for 8-bit spaces (emu\emumem.cpp) . Simplified read/write handlers (machine\74157.cpp, am9517a.cpp, at29x.cpp, at_keybc.cpp, cs4031.cpp, ds128x.cpp, fdc37c93x.cpp, hdc92x4.cpp, i8155.cpp, i82371sb.cpp, k051649.cpp, mc146818.cpp, rtc65271.cpp, sis85c496.cpp, strata.cpp, tms9901.cpp, upd765.cpp, wd7600.cpp, video\tms34061.cpp and sound\vlm5030.cpp) . Removed space and mem_mask from read/write handlers (video\tms9928a.cpp and v9938.cpp) . Expose state_find_entry (emu\distate.h and debug\debugcmd.cpp) . Added more granular device_feature bits as well as a couple more catch-all categories (emu\device.h) . Updated UI and XML output for additional emulation status flags (CAPTURE, COMMS, DRUM, MEDIA, PUNCH, ROM and TAPE) . Multi-Language: Regenerated localisation files - SDLMAME: Fixed German keymap (keymaps\km_de_LINUX.map) - LINUX: Fixed lightgun support for Linux X11. SDL/X11 number mouse/lighgun buttons 1, 2 and 3, while Windows and other parts of MAME like offscreen_reload expect 0, 2 and 1. Transpose buttons 2 and 3, and then -1 the button number to align the numbering schemes. This fixes lightgun support on Linux - tested with an Ultimarc AimTrak and the following config: lightgun = 1, lightgun_device = lightgun, lightgunprovider = x11, lightgun_index1 = "Ultimarc Ultimarc" and offscreen_reload = 1. Note: MAME must be compiled with XInput support: make -j10 NO_USE_XINPUT=0. - Compiling: Fixed build (cpu\g65816\g65816.h) - Debugger . Fixed error in determining where clicks are in memory and debugger views (debugger\qt\memorywindow.cpp and debuggerview.cpp) . Excluded non-CPUs from numerical indexing for debugger commands (debug\debugcmd.cpp) . Expose state_find_entry (emu\distate.h and debug\debugcmd.cpp) 0.207 - New games: Hi Pai Paradise 2 - New Working games: Double Dragon II - The Revenge (Japan), Knights of the Round (bootleg), Play 2000 (Super Slot & Gran Tesoro) (v7.0i) (Italy) and Play 2000 (Super Slot & Gran Tesoro) (v4.0i) (Italy) - New Non-Working games: Bandit (US), Neo Print - Millennium Multi Shot Edition (World) (T4i 3.07), Neo Print - Spring '98 (T4i 3.07), Neo Print - Spring Ver. 4 (Japan) (T4f 1.00), Neo Print - Suizokukan Version (Japan) (T4i 2.00) and Neo Print - Usagi Frame (Japan) (T4i 3.07) - New clones: Boggy '84 (bootleg, set 2), Crazy Monkey 2 (100618 Russia), Double Axle (US), Ghost Chaser Densei (SNES bootleg, set 2), The Glob (Pacman hardware, Magic Electronics Inc. license), Gals Panic S - Extra Edition (Asia), Guardian Storm (horizontal, Australia), Island (090806 Entertainment), Keks (110816 Russia), Keks (110816 World), The King of Route 66 (prototype), Lethal Enforcers (ver EAD, 11/11/92 10:52), Love And Berry - 3rd-5th Collection (China, Ver 1.001) (MDA-C0071), Pasha Pasha Champ Mini Game Festival (Korea, set 2), Pirate (090803 Entertainment), Play 2000 (Super Slot & Gran Tesoro) (v7.0i) (Italy), Queen Bee (Israel, Ver. 100), Queen Bee (SA-101-HARD), Queen Bee (Ver. 114), Raiden Fighters 2 - Operation Hell Dive (Japan set 4), Red Clash (Suntronics), Rise of the Robots (prototype, older), Roll Fruit (100924), RyuKyu (Japan) (FD1094 317-5023A), Sweet Life (090720 Entertainment), Virtua NBA (prototype, 15.11), World Class Bowling Tournament (v1.30) and X-Men (4 Players ver JEA) - New AGEMAME games: The Magician (20210111, NSW/ACT) - New PinMAME games: Champion 85 and Star Wars (1.06, Display A0.46) - New devices: 24c01, 24c02, 24c08, 24c16, 24c16a, 24c64, gamegear_cart_slot, omv_cart_slot, sc3000_cart_slot, scsi_cdrom_sgi, sega8_4pak, sega8_basicl3, sega8_card_slot, sega8_cart_slot, sega8_castle, sega8_ccatch, sega8_codemasters, sega8_dahjeea, sega8_dahjeeb, sega8_eeprom, sega8_hicom, sega8_janggun, sega8_korean, sega8_korean_nb, sega8_megacart, sega8_mgear, sega8_multicart, sega8_music, sega8_nemesis, sega8_othello, sega8_rom, sega8_seojin, sega8_terebi, sega8_zemina, sg1000_card_slot, sg1000_cart_slot, sg1000mk3_cart_slot, sms_card_slot, sms_cart_slot, sms_expansion_slot and sms_gender_adapter - New artworks . bzone, cheyenne, copsnrob, dpatrol, elecyoyo, gaplus, gberet, jetfight, journey, karnov, medlanes, monacogp, phoenix, sidetrac and starcrus. http://mrdo.mameworld.info/mame_artwork_ingame.php . Updated dkongjr, gunfight, popeye, subs and superpac - CPU . Intel I80186: Make DRQ level triggered . Intel I386: Added comments about Athlon memory type range register MSRs (i386\cpuidmsrs.hxx) . Motorola MC68000: Added overrideable method to signal RESET instruction to internal peripherals (m68000\m68000.h, machine\68340.cpp). Added m68k_reset_peripherals() call to the non-generated file (m68000\m68k_in.cpp) . MIPS-III . Experimental R4000 implementation. Tweak address calculation. Added the ability to CTC and CFC from unknown fpr30, which IRIX does often. Added a primitive MRU scheme for tlb searches, resulting in an average of ~1.5 iterations per scan and 2-3% speedup in one test case. Also removed the confusing reverse-endian logic from lwl/lwr and friends because apparently no commercial software implementation has ever used it (and wasn't supported in any of the other instructions anyway). Paranoid approach for 64-bit mode check. Sign extension bugs. Signed multiply bug. Fixed ABS.S and ABS.D. Fixes X server crashing in IRIX. . Use the new 64x64 multiply helpers. Make sure unordered exceptions are generated by abs.fmt. Correct an unimportant drc flag (mips\mips3.cpp and mips3fe.cpp). . RCA CDP1802: Don't skip over instructions in debugger after DMA cycles. This does nothing to fix MT07232 (Unable to successfully boot a cartridge game (MESS) RCA Studio II), but could make the problem easier to debug. . Texas Instruments TMS9995: Fixed double-triggered INT1/4 by clearing the INT1/4 latch . Texas Instruments TMS34010: Internalized I/O register. Removed register_postload. Added notes. - SOUND . AY8930 EPSG: Added notes for AY8930 expanded mode. Added mode register for debugging. Additional logs. . Ensoniq 5505/5506 to 5510 interface: Use required_device for m_esp. Added device_clock_changed. Added notes. Changed timer frequency related to sample rate(clock). . Ensoniq ES5506: Sync sample rate with sound\esqpump.cpp . ICS2115: Removed unnecessary arguments in handler. Moved igs011.cpp exclusive 16bit handlers into ics2115.cpp. Minor code style fixes. Use shorter type values. Correct device name. Minor code style fixes. . Excellent Systems ES8712 Sound Controller: Allow MSM5205 to be configured with a device finder or reference (sound\es8712.h) . QS1000: Added getter for internal CPU - DEVICE . 8042 Keyboard/Mouse Controller: Added timer to periodically check mouse. Fixes mouse in (MESS) SGI Indigo2/Indy IRIX. . Discrete Netlist . Refactoring and some innovations. Still some work ahead to separate interface from execution. This is a preparation to switch to another sparse matrix format easily which may be better suited for parallel processing. On the linear algebra side there are some nice additions: Two additional sort modes: One tries to obtain a upper left identity matrix, the other prefers a diagonal band matrix structure. Both deliver slightly better performance than just sorting. Parallel execution analysis for Gaussian elimination and LU solve. This determines which operations may be done independently. All of this is not really useful right now. The matrix sizes are below 100 nets. I estimate that we at least need four times more so that CPU parallel processing overhead pays off. For GPU, add another order. But it's nice to have code which may scale. . Code maintenance and fixing Kid Niki to run at acceptable speed again. Removed trampoline code. . All devices now specify parameters in factory constructor. This previously was part of net_lib.cpp and repeatedly caused bugs. . Refactoring and some functionality enhancements. Removed dead code. nltool now adds a define NLTOOL_VERSION. This can be tested in netlists. It is used in kidniki to ensure I stop committing debug parameters. Optimized the proposal for no-deactivate hints. Documented in breakout that hints were manually optimized. Minor optimizations in the order of 2% enhancement. . Aligned solver calls (netlist\devices\nld_4066.cpp, nld_4316.cpp, nld_mm5837.cpp, nld_schmitt.cpp, nld_system.cpp and nlid_proxy.cpp) . Optionally store input values instead of referencing them. Useful for debugging purposes in the end - but not performance. Store input values in logic_terminal_t: Set to 1 to store values in logic_terminal_t instead of accessing them indirectly by pointer from logic_net_t. This approach is stricter and should identify bugs in the netlist core faster. By default it is disabled since it is not as fast as the default approach. . Refactoring after adding Clang-tidy support to netlist makefile: Converted macros to C++ code. Order of device creation should not depend on std lib. Some state saving cleanup. Added support for Clang-tidy to makefile. Modifications triggered by Clang-tidy-9. . More CPP core guidelines work. Make constants struct members constexpr const. Enabled GCC diagnostics in vector ops for GCC 7 again. Use forwarding in vector_ops. . Added parameter STARTUP_STRATEGY to switch between startup strategies. This determines the order of device triggering: 0: Full - trigger all delegates. Next all devices not touched, 1: Backwards - trigger all devices backwards (only update delegate) and 2: Forward - trigger all devices forward (only update delegate). . Fixed crashes on certain hardware/library combos. At least on MacOSX memory used by an object seems to be invalidated before the dtor is executed. This of course is deadly for child objects with references to the parent-in-deletion which may call back into the parent. One of the worst issues I had to fix. Ever. Lesson learnt: No tricks in dtors. Never. . Indentation cleanup (plib\palloc.h). Memory allocation clean-up. . Memory pool now supports aligned storage. Set USE_MEMPOOL to 1 to try this (max 5% performance increase). For MinGW, there is no alignment support. This triggers -Wattribute errors which due to -Werror crash the build. . Separation of duties. Make it clearer what is used during parsing a netlist, "compiling" a netlist and execution of a netlist. . Refactoring startup process and array usage. Removed locked-in context from sources. Fixed access specifiers. . Memory management in plib is now alignment-aware. All allocations respect C++11 alignas. Selected classes like parray and aligned_vector also provide hints (__builtin_assume_aligned) to G++ and Clang. The alignment optimizations have little impact on the current use cases. They only become effective on bigger data processing. What has a measurable impact is memory pooling. This speeds up netlist games like Breakout and Pong by about 5%. Tested with Linux, MacOSX and Windows cross builds. All features are disabled since I can not rule out they may temporarily break more exotic builds. . Fixed some more exotic compile options. 128bit integers on kaby lake are not that much slower than 64bit. This may be an option for MAME's attotime as well. Moved ptime struct into plib namespace and fixed relative includes. . INS8154 RAM I/O: Fixed bit register accesses . MC6850 ACIA: Allow disabling side effects for reads. Simplified read/write handlers. . Sega 315-5124 SMS1 VDP: Implemented internal PSG. Use shorter type values. Removed register_postload and unnecessary arguments in handlers. . Signetics SCN2674 AVDC . Row buffering and timing improvements. Added optional read callbacks for row buffering DMA. Added MBC output. . Correct timing of BREQ and VBLANK outputs. Improved character blink and cursor blink timings. . Fixed line counter desyncing in (MESS) PCX video (video\scn2674.cpp). Blank display line by line. . SMC91C94 Ethernet Controller: Pull sticky stringstream settings out of loop . TI TLC34076 VIP: Removed unnecessary address_space arguments . Timer: Refactor IRQ timers (machine\timer.h) . Voltage Regulator: Output of 32768 is above MAME's sound stream cutoff (-32768 to 32767) (sound\volt_reg.h). Set default m_output. . Western Digital WD33C93B SCSI Controller: Silence logging by default (machine\wd33c9x.cpp) . Z8 / Zilog Z8681: Fixed disassembly of LD IR, R opcode. Write RRn instead of Rn when disassembling INCW/DECW (z8\z8dasm.cpp). - 8080bw.cpp and mw8080bw.cpp . Interrupt modernization . Re-guess CPU and video clocks in clone Space Combat (bootleg of Space Invaders) - aristmk6.cpp: Give BIOS options mnemonic names: "set-" prefix for set chips, ISO 3166-1 apha-2 country code, hyphen and state/province/territory abbreviation if applicable and ascending number. - berzerk.cpp: Updated comments about ROM labels needing verification - btoads.cpp and tapatune.cpp: Removed remaining BSMT2000 related MCFGs. Use private for most things (includes\btoads.h). - chihiro.cpp: Docs additions and corrections - dcheese.cpp: Cleanups. Removed MCFGs. Reduced runtime tag lookups and unnecessary lines. Use shorter/correct type values. Fixed some namings and spacings. - dec0.cpp: Implemented trackball inputs - gaelco2.cpp . Fixed PAL and IOMCU NO_DUMP rom sizes in Pro Tele Cardioline. Note: Maybe we should remove the sound hardware mapping and add the MACHINE_NO_SOUND_HW flag, since the PCB has no sound hardware. . Fixed hangs in Play 2000 (Super Slot & Gran Tesoro) without a ROM hack. Promoted (v7.0i) and clone (v4.0i) to working. - ghosteo.cpp and vegaeo.cpp . Removed deprecated warning in ghosteo.cpp . Use getter for qs1000 internal CPU - harddriv.cpp: A little less logging (audio\harddriv.cpp) - leland.cpp: DMA line mask bits and fixes (audio\leland.cpp) - limenko.cpp: Correct QS1000 device to optional. Simplified OKI read/write handlers. Removed deprecated warning. - naomi.cpp . Documentation update . Redumped rom ic22.bin of clone Club Kart: European Session (2003, prototype) - nova2001.cpp: Cleanups. Reduced duplicates, unnecessary lines and MCFGs. Fixed some namings and spacings. Use shorter type values. - nss.c, sfcbox.c and snesb.c: WDM is a 2-byte opcode per WDC docs, added WDM callback (cpu\g65816\g65816.cpp/h). - snk6502.cpp: Fixed music playing incorrectly in most games since MAME 0.199 (ID 07225) - triforce.cpp: Documentation update, correct game years and uniform game descriptions. - After Shock: Added some basic stuff - American Horseshoes: Fixed broken controls (ID 07230) - Cool Boarders Arcade Jam: Dumped PLDs - Gigas: Documented rom locations for Gigas (bootleg) - Ichi Ban Jyan: Figured out opcode/data split. Added NVRAM and start mapping devices. - Knights of the Round: Fixed sound regression in clone Knights of the Round (bootleg) and marked game as working - Mobile Suit Gundam: Redumped rom 27c8001-5.bin in clone (bootleg), fixes graphics issues. Note: The dump matched the expected values as shown by the hand crafted example. - Over Rev: Minor doc update for clone (Model 2B, Revision B) - R2D Tank: Correct CPU type and better guesses at CPU and PSG clocks - Space Guerrilla: Eliminated unnecessary dependency on mw8080bw driver - Stone Age: Figured out the first layers of the encryption - Warrior Blade - Rastan Saga Episode III: Dumped PALs - Dipswitch fixes in taito_z.cpp - Fixed rom names in ddragon.cpp, freekick.cpp and suprnova.cpp - Description changes of 18 Wheeler (deluxe, Rev A), 18 Wheeler (deluxe, Rev T), Boggy '84 (bootleg, set 1), Capcom Vs. SNK 2 Millionaire Fighting 2001 (Japan, Rev A) (GDL-0007A), Club Kart Prize (Export, Japan, Rev A), Crazy Monkey 2 (100310 World), Dai 3 Wakusei (Japan), Double Axle (US, Rev 1), Double Axle (US, Rev 1, Linkable), Ghost Chaser Densei (SNES bootleg, set 1), Goindol (Japan), Initial D Arcade Stage (Export, Rev A) (GDS-0025A), Initial D Arcade Stage (Japan, Rev B) (GDS-0020B), Initial D Arcade Stage Ver. 2 (Japan, Rev A) (GDS-0026A), Initial D Arcade Stage Ver. 2 (Japan, Rev B) (GDS-0026B), Initial D Arcade Stage Ver. 3 (Japan, Rev B) (GDS-0032B), Initial D Arcade Stage Ver. 3 (Japan, Rev C) (GDS-0032C), Initial D Arcade Stage Ver. 3 Cycraft Edition (Export, Rev A) (GDS-0039A), Initial D Arcade Stage Ver. 3 Cycraft Edition (Export, Rev B) (GDS-0039B), Jiao! Jiao! Jiao! (China, 2P set), 19x The Key Of Avalon*, Pasha Pasha Champ Mini Game Festival (Korea, set 1), OutRun 2 Special Tours (Japan, Rev A) (GDX-0011A), Play 2000 (Super Slot & Gran Tesoro) (v4.0i) (Italy), Play 2000 (Super Slot & Gran Tesoro) (v5.0i) (Italy), Power Wheels (Japan, Rev 2, Linkable), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan, Rev A), Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A), 6x Virtua Striker 4*, Wangan Midnight Maximum Tune (Export, Rev B) (GDX-0009B), Wangan Midnight Maximum Tune (Japan, Rev B) (GDX-0008B), Wangan Midnight Maximum Tune 2 (Export, Rev A) (GDX-0016A) and Wangan Midnight Maximum Tune 2 (Japan, Rev A) (GDX-0015A). - Renamed (dblaxleu) to (dblaxleul), (goindolk) to (goindolj), (play2000) to (play2000_40i), (play2000a) to (play2000_50i), (queenbee) to (queenbeeb) and (samesamech) to (samesamecn) - MAME . VIDEO RENDERING SYSTEM . Added constructor for monochrom screens and removed MCFG_SCREEN_ADD_MONOCHROME and MCFG_SCREEN_COLOR (emu\screen.h) . Additive oversleeping for video throttling (emu\video.cpp) . Stop frameskipping constantly on screenless systems with frameskip=0 and don't use iter count (emu\video.cpp) . DEVICE . Misc MACHINE_CONFIG removal . Removed unnecessary address_space arguments on FM sound chips read/write handlers. Removed unnecessary arguments in handlers. Get rid of some copy/pasted macros for different numbers of arguments. . Added spacenum getter for required_/optional_address_space (emu\devfind.h) . Simplified read/write handlers (kingobox.cpp, videopin.cpp, machine\mos6551.cpp, machine\6821pia.cpp, machine\6840ptm.cpp, machine\6850acia.cpp, video\crtc_ega.cpp, video\mc6845.cpp and sound\votrax.cpp) . Use shorter/correct type values. Removed unnecessary arguments in handlers (sound\ay8910.cpp). . Make -[no]nvram_save option also inhibit saving of "battery" NVRAM for image devices (emu\diimage.cpp). Note: Save the NVRAM contents when exiting machine emulation. By turning this off, you can retain your previous NVRAM contents as any current changes made will not be saved. Turning this option off will also unconditionally suppress the saving of .nv files associated with some types of software cartridges. . Default input clocks to zero (machine\mos6551.h and sound\dac.h) . Use shorter/correct type values. Fixed code styles (drivers\atlantis.cpp, cps1.cpp, itech32.cpp, konamim2.cpp, midzeus.cpp, multfish.cpp, vegas.cpp and machine\harddriv.cpp). . MEMORY SYSTEM: Eliminated the default address map member of address_space_config. Since all device address maps are now class methods defined in ordinary C++, default RAM maps can be provided more simply with an explicit has_configured_map check in an internal map definition. A number of default address maps that probably weren't meant to be overridden have also been changed to ordinary internal maps. . UI: Fixed crash when exiting directly while filter UI is active (ui\menu.cpp) . PLUGINS . Fixed address step when shift is negative (plugins\cheatfind\init.lua) . Cheat Finder Usability Improvements (plugins\cheatfind\init.lua): 1. Changed visual indications to make it nicer & quicker to use. 2. Added selectable automatic pause capability to the cheat finder menu. 3. Allows the Test/Write poke to be changed. 4. Added another cheat format capability for cheat.simple (write support only). . hiscore.dat update (plugins\hiscore\hiscore.dat). Added start delay and use emu.time (plugins\hiscore\init.lua). . Added history command (plugins\console\init.lua and 3rdparty\lua-linenoise\linenoise.c) . Updated commandline\commandline-all.rst and initialsetup\compilingmame.rst docs . Initial implementation of new logo for docs (images\MAMElogo.svg). Added svg->pdf conversion support (docs\source\conf.py). . Snapshot/Quickload . Enabled sub-second snapshot timers. Switch to attotime and accept doubles (imagedev\snapquik.cpp) . Make the delay for snapshot/quickload an attotime and allow implicit zero. Removing the MCFG macros properly requires changing the pattern for the delegates. . Multi-Language: Updated Brazilian Portuguese translation (better description of what MAME is really doing) . Fixed XML file structure for files in HASH folder which required it (hash\neogeo.xml...). Loadflag no longer required for jpond (hash\megadriv.xml) (ID 07231). Srcclean the softlists. - SDLMAME . Fixed SDL2 keymap processing. Keymaps must have been broken for ages: It is now possible to map every scancode SDL2 defines. Removed keycode field. This was a leftover from SDL1.x. Fixed bug preventing keymaps from working. Fixed the DE keymap. Converted other keymaps to new format and added a comment that they have to be reviewed and fixed. . Show video-mode option 'accel' in help and GUI (sdl\sdlmain.cpp) . Added SDL testkeys as a tool again. Attempt to fix testkeys linking in more configurations. Testkeys: Clean up and modernise code. Use std::endl to end lines for its implicit flush. Centre window (less likely to hide behind taskbar, etc.). OSDWin: Ensure new windows are positioned within the work area of a monitor (windows\video.h and window.cpp). . Use lowercase for some libraries that are lowercase in System32 on Windows anyway. Make USE_BUNDLED_LIB_SDL2=0 not use the bundled SDL (osd/sdl.lua and tools.lua). . Updated Brazilian ABNT2 keyboard map for SDL keyboard input (keymaps\km_br_LINUX.map) - VGM player: Added most recently released vgmrip packs (hash\vgmplay.xml) - Compiling . Support LLVM extension in MSVC (make vsllvm) using extension from here: https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain . Fixed 3rdparty/ASIO to compile with libc++ 9.0 (asio\detail\config.hpp). Fixed 3rdparty\lua\src\lundump.c Clang 9 compile. . Added 64x64 multiply helpers (osd\eivcx86.h and eminline.h). Added GCC/Clang implementations of 64*64->128 multiply for x86_64 and adjust some integer casts (osd\eigccx86.h and eminline.h). . Fixed cross compile MAME/SDL/Windows . Use OVERRIDE_CC if defined to determine GCC_VERSION. Fixes some cross-compilation issues and most likely edge case using OVERRIDE_CC (makefile). . Removed some superfluous const, a superfluous temp, superflous semicolons, etc. and also fixed a known broken build script change. . Documented cross-compilation options . Removed MCFG_DEVICE_DISASSEMBLE_OVERRIDE usage (emu\didisasm.h) - Debugger: Eliminated qsort usage in debugger (debug\debugcmd.cpp, dvbpoints.cpp/h and dvwpoints.cpp/h) 0.206 - New Working games: 58x aristmk5.cpp games, San Francisco Rush 2049, San Francisco Rush 2049: Special Edition and Sonic The Hedgehog 2 (bootleg of Megadrive version) - New Non-Working games: Chihiro Change Region GD USA (611-0028A), FreeWay (V5.12), Hoop it Up World Tour - 3 on 3 (Rev 23), Joker Card (Epoxy brick CPU), Miss Bamby, Queen Bee (Brazil, Ver. 202), Super Queen Bee (Ver. 101), Twinkle Tale (bootleg of Megadrive version) and Virtua Striker 2002 (Type 3) (GDT-0012) - New clones: Blaze On (World), Bubble 2000 V1.2, Club Kart for Cycraft (GDS-0029), Deroon DeroDero / Tecmo Stackers, F-Zero AX (Rev D) (GDT-0004D), Fantasy Zone (FD1089B 317-0016), Funky Jet (bootleg), Guardians / Denjin Makai II (P0-113A PCB), Initial D Arcade Stage Ver. 2 (Japan) (Rev A) (GDS-0026A), Kamikaze (Euromatic S.A., Spanish bootleg of Scramble), The Key Of Avalon - The Wizard Master (client) (Rev A) (GDT-0006A), The Key Of Avalon - The Wizard Master (server) (Rev A) (GDT-0005A), Lupin The Third - The Shooting (Rev A) (GDS-0018A), Mobile Suit Gundam (bootleg), New Fruit Bonus '96 Special Edition (bootleg set 4, v97-3.3c English), Pang (bootleg, set 6), Samba De Amigo (Rev A), Same! Same! Same! (China, 2P set), Sega Network Taisen Mahjong MJ 3 (Rev C) (GDX-0017C), Sega Network Taisen Mahjong MJ 3 Evolution (Rev A) (GDX-0021A), Stadium Hero '96 (Japan?, EAE), Super Cobra (bootleg, set 3), Tank Force (bootleg), Tetris Plus 2 (World, V2.7), Top Secret (Japan, revision B), UFO Robot Attack (bootleg of Invasion, older set), Virtua Striker 4 (Asia) (Rev B) (GDT-0014B), Virtua Striker 4 (Export) (Rev A) (GDT-0015A) and Virtua Striker 4 (Japan) (Rev C) (GDT-0013C). - New AGEMAME games: Big Ben (20201111, Queensland), Choy Sun Doa (10121111, Queensland), Double Dolphins (40003211, Queensland), The Golden Gong (10217411, Queensland), Moon Fire - Jackpot Carnival (30164211, Queensland), Queen of the Nile - Money Train II (10203811, Queensland), Reelin-n-Rockin - Fast Lane (10298611, Queensland), Queen of the Nile (0201200V, Queensland), Queen of the Nile - Fast Lane (0101670V, Queensland), Reelin-n-Rockin (0101460V, Queensland), Red Baron - Fast Lane (10160711, Queensland), Show Me The Money (10015711, Queensland), Spring Festival (20262311, Queensland) and Where's the Gold (20184811, Queensland) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Added Blodia (1989), Ganbare! Golf Boys (1989), Hanii on the Road (1990) and Time Cruise II (1991) - New drivers: freeway.cpp, missbamby.cpp and namcos1b.cpp - New devices: ds12885ext, eisa_dma, ev346, jc1310, np600a3, nrrd45, nxm3301, nxm5301sun, nxm5401sun, nxm5701, nxm5701sun, scsi_cdrom, wd33c92, wd33c93a, wd33c93b and z8682 - New artworks: 3wondersb, cavenger, cosmica, cosmicm2, cosmicmo, darkplnt, ncombat, seawolf, solarwap and stratof. Renamed ddpdoj -> ddp3. http://mrdo.mameworld.info/mame_artwork_ingame.php - New Cheat.dat: http://www.mamecheat.co.uk/ - CPU . AM9517A: Silence logging. Added EISA variant. . Hitachi FD1089 Encrypted CPUs: Minor changes to SEGA FD1089 keys to match the format of real ones, thanks to Ed Cross (afighter, afighterc, afighterd, afighterf, afighterg, afighterh, alexkidd1, aliensyn2, aliensyn3, aliensyn5, aliensynj, aliensynjo, aurail1, aurailj, defense, dunkshot, dunkshota, dunkshoto, enduror, enduror1, endurora, outrundxj, sdi, sdia, sdib, shangon1, shangon2, shangon3, sjryuko, sjryuko1, timescan1 and wb35). . Hitachi SH-2: Fixed interpreter for CPS3 . Intel I8086: Fixed passing of opcode address to coprocessor . MC68307: More accurate emulation of internal priority interrupt controller . MC68340: Preliminary cleanups. 68340 Interrupt overhaul: Interrupts are now properly acknowledged and arbitrated (many remain unimplemented). Interrupts are no longer automatically cleared upon acknowledgment except for the Programmable Interrupt Timer. Timer unit clears COM and sets TC and TO in the status register on applicable conditions. Timer unit's confusion of IE0 (TC IRQ enable) with IE2 (TO IRQ enable) has been sorted out. . MCS-48: Fixed disassembly of short jump instructions located on page boundaries (mcs48\mcs48dsm.cpp) . MIPS-I . Fixed stupid tlb error . Fixed coprocessor exceptions: Set the coprocessor error number in the cause register. Correct side-effect handling in address translation. Added logging for RISC/OS system calls. . Magic number removal and more logging. RX3230 SCSI DMA (machine\mips_rambo.cpp). . MIPS-III . Fixed fastram accesses and COP0 exception handling . Fixed block checksumming. Fixes IRIX installer hang on (MESS) ip225015 (mips\mips3drc.cpp). . Added minimal support for revealing the Secondary Cache Line size in the Status Register. Added debugger exception hook. . Z8 / Zilog Z8681: Rewrote timer emulation, including support for most TIN and TOUT modes. Handle more timer corner cases. Preliminary UART emulation. Added standard_irq_callback for the sake of debugging. Mask RP properly for debug register view. Splitted sio_tick into two functions. . Z8 / Zilog Z8682: Added Z8682 type with (fake) internal ROM; prevent timer from endlessly thrashing with a count of 1. Provide Z8 test ROM from Zilog application note. First 18 bytes of this (the interrupt/reset bootstrap) are identical to the previous hand-crafted binary. - SOUND . DCS Audio Denver: Fixed ram bank mapping in Denver DCS audio (audio\dcs.cpp) . Seta ST-0026 NiLe: Added save states support . Sound Blaster: DMA fixes for SB Pro and SB16 (isa\sblaster.cpp) . Taito Ensoniq Sound System: Eliminated set_input_line_vector (audio\taito_en.cpp) . YMF262 OPL3: Fixed save states - DEVICE . 8/16-bit ISA bus . Preparation for supporting DACK handshake line . Modernized ISA device configuration: Configure spaces without using cpu_device. Removed NMI enable logic (the flag is usually a property of the bus controller, not the bus itself). Default many unnecessary 8253 and 8259 clocks. Note that with this change, ISA devices can no longer cause a NMI on the host CPU unless the IOCHCK callback is explicitly configured. Fixed custom space configuration. . 6522 VIA . Count negative PB6 pulses in T2 counter mode. Note: VIA interrupt remains disconnected in (MESS) tv950 due to CRTC-related problems. This is fairly likely to cause regressions in other drivers which may need explicit writes to PB6. . Fixed timing for shifting under control of system clock . ADC083x/ADC084x A/D Converter: Default input clocks . ATAPI CD/DVD-ROM and SCSI CD: m_sotc isn't implemented as bool (machine\t10mmc.h) . Bus Master IDE Controller: Another use for required_address_space (machine\idectrl.cpp) . CHDMAN: Fixed GDI 2048 extraction . Discrete Netlist . Fixed incorrect order of constructor parameters in netlist_mame_int_input_device (machine\netlist.h). Fixes audio in Mario Bros. and clones, probably others too (ID 07185). Improved readability (machine\netlist.cpp). . Added gitignore to lib\netlist. Also clean up doxygen genereated files in netlist makefile (netlist\build\makefile). Code maintenance and fixed "pure virtual call" error. . More C++ alignment. pstring now behaves like std::string. This change removes all string extensions like trim, rpad, left and right from pstring and replaces them by function templates. This aligns a lot better with the intentions of the standard library (machine\netlist.cpp, nl_base.cpp, nl_parser.cpp, plib\pfmtlog.cpp and nltool.cpp). . Rewrote and simplified tiny bits. Fixed inappropriate use of netlist_sig_t for non-boolean values (nld_7474.cpp, nld_7483.cpp, nld_7493.cpp, nlid_truthtable.h, nl_base.cpp/h and nl_config.h). . Added 7497 netlist device. The 7497 device should now work as described in the TI datasheet. This datasheet contains an internal schematic with details on gates and D flip-flops used. Netlist WIP: 7474 and 7497 test driver. . Fixed TP1983 and 7497 and added 7497 DIP version. The schematic for the TP1983 contains an error. R19 is connected to GND. This will never work since when Q goes low, the reset pulse will dead lock Q to low. R19 needs to be connected to VCC (5V). This will generate the proper high-pass filtered pulse. Further fixes for the 7497 as well. . C++ and minor performance optimizations. Improved type safety on string->numeric conversions. . 5% performance improvement for Breakout [TTL] from a single device (devices\nld_82S16.cpp) . Moved mainclock code from nl_base into header of nlid_system. Also moved some simple functions from nl_base.cpp into header. . Improved dealing ownership in pstreams. Replaced ATTR_UNUSED by C++ template. Reenabled LOG_STATS. Added && and || operators to preprocessor expressions. Fixed logging during object construction. Improved type safety for parameters. . Replaced downcast with static_cast to avoid errors . Refactored netlist creation. This is an effort to separate netlist creation from netlist execution. The primary target is to avoid that code which will only run during execution is able to call setup code and thus create ugly hacks. . More run/setup separation. Still some distance ahead in properly separating execution and setup. Added NVCCBUILD support to netlist makefile. Also converted some by-ref calls to pass by value. . Removed const on return types and non-necessary ref-by. pstream and ppreprocessor (now a pistream) refactoring. . nlwav now also converts log files to VCD format. Please refer to nlwav --help for examples. There is also an example how to create multi-channel wav files. . Added comment processing to preprocessor. Comments are now processed in the preprocessor. Previously directives in multiline comments were processed. . Refactor code for better scalability and flexibility. These changes aim to remove some of the duplication of code in the various solvers. Tested with GCC-7 Clang-8 and nvcc-9.2. . DS12885 RTC/NVRAM: Added device ds12885ext same as ds12885 but 256 bytes ram . Fixed-Frequency Monochrome Monitor . FixFreq code maintenance and added RGB channel functionality . Implemented sub-pixel horizontal resolution. This is not yet used and missing static initialization interface. Electron beams in CRTs are not discrete. They are continous on a scanline. This modification allows a higher horizontal resolution to better model "subpixel" timing. . Removed FIXFREQ MCFG macros. Internalized screen configuration. . Floppy: Added output callback for unit/drive select lines. This is intended for future use by machines in which the US/DS lines are neither directly connected to the drives nor wholly disconnected from them (machine\upd765.cpp). . Intel 8251 USART: Flag parity and framing errors in status register. Protect some members no longer subjected to hacky public use. . Intel 8253 PIT and Intel 8259 PIC: Default input clocks to zero . InterLan NP600A-3 Intelligent Protocol Processor: Added skeleton driver (isa\np600.cpp) . OKI MSM6253 A/D Converter: Removed MCFG macros and added DEVCB3 support . MC68681 DUART: Detect framing and parity errors, storing flags with FIFO characters. . Midway Custom: Added serial number input kludge from PIC to generate serial data (machine\midwayic.cpp) . Motorola MC68901 MFP: Detect framing and parity errors and signal Rx error interrupt if enabled . National Semiconductor INS8250 UART . Detect framing and parity errors; allow side effects of reads to be disabled. . Allow writes to MSR with lower 4 bits zero to clear the associated interrupt. This is not confirmed behavior, but is logically consistent with nonzero bits causing interrupts when written. . Nintendo Custom: Don't use float on cycles_to_attotime (video\ppu2c0x.cpp) . SCSI CD-ROM and SCSI Hard Disk . Added the read TOC command and fixed inquiry (machine\nscsi_cd.cpp) . Correct inquiry with missing lun behaviour. Return error on mode sense for unsupported page (machine\nscsi_cd.cpp). . Track the current block LBA on writes (machine\nscsi_hd.cpp). Stubs some mode pages for SCSI Hard Disk. Note: The (MESS) MIPS systems complain if hard disks don't support these pages and allow mode select on some of them. Added stubs for some mode pages. Detect and report an error for unsupported pages. Accept and ignore mode select command (machine\nscsi_hd.cpp). . Return diagnostics (machine\nscsi_cd.cpp and nscsi_hd.cpp) . Request sense returns minimum of allocated length or available data (or 4 bytes). Set the additional length properly. Fixed some magic numbers (machine\nscsi_bus.cpp). . Sega 315-5313 Megadrive VDP: Restored additional Sega 315-5313 palette entries used by 32X . SMC91C9x Ethernet Controller: Refactor code. Added initial MAC filter and fixed multicast address filtering and WIP. . Western Digital WD33C9x SCSI: New NSCSI device for WD33C9x SCSI Controllers. Handle disconnect command properly. Fixes fatalerror in (MESS) ip225015 with new WD core. Fixed non-dma data retrieval. . Z80 SCC Channel: Don't spam interrupt state - aristmk4.cpp: Improved default DIPs for some games and removed the fake "test" coin inputs from Caribbean Gold II (3XF5182H04, USA) - aristmk5.cpp . Promoted some games to working after testing by Hehihachi_73: baddog, buttdeli, cashcatnz, cashcham, cashchamnz, chickna5, dmdfever, dolphntra, dolphntrb, drgneye, dstbloom, dstblooma, eforsta5, geisha, incasunnz, jumpjoey, kgalaha, kgbirda5, locoloot, locoloota, locolootnz, lonewolf, luckyclo, mammothm, minemine, montree, mountmon, mountmona, mystgard, one4all, orchidmsnz, oscara5a, pengpaya, pengpayc, phantpay, przfight, qnileb, qnilebr, qnilenl, qnilenz, qtbird, reelpwr, retrsama, retrsamb, rushrst, snowcat, swhr2a, thndh, thndha, thor, topbana, toutangonl, trpdlght, unicorndnz, wamazona, wcougar, wildbill and wldangel . Updated flags as requested in comments to the previous commit . Load and config setchips only for the US sets . Improved inputs for baddog and multidrw. Adjusted baddog.lay accordingly. - aristmk6.cpp: Added BIOS sets Aristocrat MK6 Base (01040505, Queensland), Aristocrat MK6 Base (14011605, Queensland), Aristocrat MK6 Base (20012305, Queensland) and Aristocrat MK6 Base (20012605, Queensland). - capbowl.cpp: Can't multiply attotime with float (watchdog_timer/period) - chihiro.cpp . Moved AT devices into mcpx_isalpc PCI device. Added mc1885ext device as RTC. . Use the same mcpx_isalpc device in both (MESS) nforcepc and xbox. Also use new smbus_logger device in (MESS) nforcepc to log smbus accesses. Small corrections to xbox_pci.cpp. - chihiro.cpp, naomi.cpp and triforce.cpp: Documented undumped Sega GD-ROM games, minor docs corrections. - cps3.cpp . Correct color fading behavior closer to real hardware . Added save states. Converted drawing routine restricted to cliprect rectangle. Use private. Added draw case when fullscreen zoom is 100%. Minor updates. . Made some members protected to fix HBMAME issue. Fixed WD33C9x select-and-transfer and disable IRQ when drq is active. Fixed SH-2 CPU interpreter for CPS3. . Converted CPS3 driver to use the new WD33C9x NSCSI device - ddenlovr.cpp: IRQ handler cleanup - fcrash.cpp . Improved graphics in clones Knights of the Round (bootleg) and Street Fighter II': Magic Delta Turbo (bootleg, set 2) . Fixed crash in clone Street Fighter II: The World Warrior (bootleg). - firebeat.cpp: Various improvements to video emulation in Keyboardmania games (video\k057714.cpp) - funworld.cpp: Created new machine drivers for Fun World games with epoxy CPU brick to fix colors and palette addressing - homedata.cpp . Update/Cleanups: Added generic_latch_8_device for CPU-CPU interface. Moved driver_init handler differs into address_map. Use update_partial/tilemap mark_all_dirty when only GFX bank is changed. Use palette decoder for color. Move video related save_item into video_start. Fixed reset behavior. Simplified gfxdecodes and bankswitched areas. Reduced runtime tag lookups and unnecessary arguments, values and MCFGs. Fixed spacings and some naming. Added notes. . Added address_map_bank_device for Mahjong Rokumeikan banked area . Fixed Reikai Doushi sound clocks (Battlecry runs at similar hardware as Reikai Doushi and sound clock is same?). Sound clock reference: https://youtu.be/eRZ7h96m0pc - iteagle.cpp: Fixed targeting is off in Big Buck Hunter, Big Buck Hunter - Shooter's Challenge and Big Buck Hunter II - Sportsman's Paradise (ID 07104) - jaguar.cpp: Fixed 68020 Cojag games - kissproto.cpp: Removed I8035 MCFG macro. Mapped at least one of the program ROMs. - konamim2.cpp: Preliminary DRC. Still disabled by default (cpu\dspp\dspp.cpp). - legionna.cpp: Correct parameters. Fixed OKI clock. Framerate related to docs/on-board XTALs. - megadriv_acbl.cpp . Promoted 'Sonic The Hedgehog 2 (bootleg of Megadrive version)' to working . Further updates for sonic2mb and twinktmb - megasys1.cpp: Cleanups/Updates. Allow tilemap scroll register readable. Separated address map/config for smeared OKI access instead driver init. Correct palette size related to RAM size. Minor fix of code styles. Reduced runtime tag lookup. Cleanup duplicates. Hardecoded tags. Use shorter type values. Removed unnecessary device and handler. - midas.cpp . Fixed namings. Reduced some runtime tag lookup. Added notes (MCUs in machine config, etc...). Sound output correction. . Removed unnecessary device pointer. Converted pointer into region_ptr. Added device_video_interface for screen (video\neogeo_spr.cpp). - model3.cpp: MetalliC added force feedback controller rom dvctbd.bin - mpu3.cpp: Use input merger device for IRQ; improved documentation. Removed unused. - naomi.cpp: Added Sega Gun Board firmware to hod2bios - namcond1.cpp: Update notes - neogeo.cpp . Fixed AES memory card detection (ID 07179). Minor metadata updates of NeoGeo games. Correct year and publisher/developer. Added notes related to title screen, staff roll, etc. AES release of razion is exists. Sync to neogeo.cpp metadata (hash\neogeo.xml). . Implemented NVRAM for Jockey Grand Prix and V-Liner (neogeo\cmc.cpp and neogeo\rom.cpp) . Simplified xzoom checking. Reduced unnecessary line (video\neogeo_spr.cpp). Minor driver cleanup. Removed unnecessary device pointer. Converted pointer into region_ptr. Added device_video_interface for screen (video\neogeo_spr.cpp). - neopcb.cpp . Minor spacing fix . Fixed cracking/distortion/buzzing sound in SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1) (ID 07205) - peplus.cpp: Documentation updates - psikyo.cpp . Minor corrections. Changed s1945jn to s1945nj to reflect it's a direct clone s1945n, standardizing clone name format. Added note about single bit difference in s1945bl spritelut graphics data Battle K-Road (Korea) set config default to Korea "for use in" notice. . Fixed OKI bank count . Cleanups/Updates. Use buffered_spriteram32_device for sprite ram. Correct buffered spritelist behavior and sprite transparent behavior. Fixed clone Strikers 1945 (Hong Kong, bootleg) OKI bankswitching. Reduced unnecessary ACCESSING_BITs. Added notes (remain for bootleg differs). Use correct/shorter type values. - quizpun2.cpp: Removed bad EEPROM dumps from Quiz Punch and Quiz Punch II. Note: These dumps contain no valid or even interesting data; the data (once swapped) just counts up from 0180 to 01BF (Did an EEPROM programmer read back the commands by mistake?). At least quizpun2 can successfully reprogram the EEPROM if the data it fetches from there is invalid. - timelimt.cpp: Fixed HBMAME problem (includes\timelimt.h) - tourvis.cpp: Cleaned the TourVision software list: Unified publisher names with the PCE softlist, where it's just publisher, not developer or copyright holder (taken from the serial prefix). Changed cartridge IDs to hexadecimal format and fixed some ROM region sizes. Trimmed over-dumped ROMs where the data matches the corresponding PC Engine HuCard dump. Marked dumps that don't match any known PC Engine HuCard. Fixed some ROM area sizes. Added "alt_title" info. Removed Parasol Stars as it is rumored, but has not actually dumped from a TourVision cartridge. Checked and splitted also the 1MB -> 384KB dumps. - vectrex.cpp: Fixed maze in (MESS) Clean Sweep (video\vectrex.cpp) - vegas.cpp . Added some pre-defined rasterizers for clone San Francisco Rush 2049: Special Edition (video\voodoo_rast.hxx) . Promoted 'San Francisco Rush 2049' and clone 'San Francisco Rush 2049: Special Edition' to working . Minor bugfix and cleanup. Fixes leader lamp output. - videopin.cpp: Output_finder for the LEDs - Ameri-Hockey: Slow down ADPCM chip to a much more reasonable speed - Bomber Man World / New Dyna Blaster - Global Quest: Redumped clone Bomber Lord (bootleg) and documented ROM locations and read protected PLDs - Chopper I: Correct ROM labels and added PCB locations to the Chopper I sets - Galactic Storm: Converted Galactic Storm to use device implementation of TC0110PCR. Cleanup ACCESSING_BITs. Reduced duplicate code, unnesessary runtime tag lookups, handlers and pointers. - Great Swordsman: Updated notes - GTI Club: Corso Italiano: Identified dipswitch setting to bypass password request and get clone 'GTI Club: Corso Italiano (ver EAA)' in game. Now hangs at car selection like the parent set. - Gundhara: 'Lives' dipswitch is actually +1 for all settings - Moon Cresta: Clones Eagle (set 1)/(set 2) uses a wiring harness wiht RGB swapped to GBR, fixes incorrect color palette (ID 06300). - QB-3 (prototype): Fixed black screen/exception after OK (ID 07189) - Super Eagle Shot: Fixed bitmap size typo - Super Real Mahjong P6: Use buffered_spriteram16 for sprite ram. Simplified gfxdecode. Fixed color fading. Added save states. Reduced runtime tag lookups. Use shorter type values. Fixed namings. Minor code style fixes. Added notes and video reference (https://youtu.be/wNm3tu1iGvM). - Risky Challenge: Verified program roms labels - Time Limit: Fixed HBMAME problem (includes\timelimt.h) - Virtua Racing: Fixed undetected communication board in Virtua Racing and clone Virtua Formula (ID 07015) - Dipswitch fixes in aristmk4.cpp, megadriv_acbl.cpp, midvunit.cpp, midwunit.cpp, midzeus.cpp, psikyo.cpp, seattle.cpp, vegas.cpp and viper.cpp - Fixed rom names in gei.cpp, homedata.cpp, m90.cpp, naomi.cpp, segas16a.cpp, seta.cpp, snk.cpp and splash.cpp - Description changes of Battle K-Road (Korea), Capcom Vs. SNK 2 Mark Of The Millennium 2001 (USA) (GDL-0008), Capcom Vs. SNK 2 Millionaire Fighting 2001 (Japan) (Rev A) (GDL-0007A), Chance in Hell - Lil' Lucy (0251125, US), Chopper I (US), Chopper I (US Ver 2), Chopper I (US Ver 1?), Choutetsu Brikin'ger / Iron Clad (prototype), Choutetsu Brikin'ger / Iron Clad (prototype, bootleg), Deroon DeroDero (earlier), Fight Fever / Wang Jung Wang (set 1), Fight Fever / Wang Jung Wang (set 2), Guardians / Denjin Makai II (P-FG01-1 PCB), Initial D Arcade Stage Ver. 3 Cycraft Edition (Export) (Rev A) (GDS-0039A), Initial D Arcade Stage Ver. 3 Cycraft Edition (Export) (Rev B) (GDS-0039B), Invasion (Italian bootleg), Invasion (bootleg set 1, R Z SRL Bologna), Invasion (bootleg set 2, R Z SRL Bologna), Kamikaze (Potomac Games, bootleg of Galaxian), The Lost World (location test), Quiz King of Fighters (Korea), Quiz Salibtamjeong - The Last Count Down (Korean localized Quiz Daisousa Sen), Tetris Plus 2 (World, V2.8), UFO Robot Attack (bootleg of Invasion, newer set), Virtua Striker 2002 (Export) (GDT-0002), Virtua Striker 2002 (Japan) (GDT-0001), Virtua Striker 4 (Asia) (GDT-0014), Where's The Gold (20177111, Malaysia), Wild Panthers - Lil' Lucy (0651310, US), World Club Champion Football Serie A 2002-2003 Ver.2.12 (Italy) (CDV-10002) and World Club Champion Football European Clubs 2004-2005 (Asia) (CDV-10013) - Renamed (blazeon) to (blazeonj), (chopper) to (chopperb), (choppera) to (chopper), (chopperb) to (choppera), (lostwsgo) to (lostwsgp), (lupinsho) to (lupinshoo), (s1945jn) to (s1945nj), (vs4) to (vs4o) and (vs4e) to (vs4eo) - MAME . VIDEO RENDERING SYSTEM . Start cleaning up palette configuration: Basically, initialisers go in the constructor arguments, and things for setting format go in set_format. Initialisation patterns can be specified with an enum discriminator or with a FUNC and optionally a tag. Formats can be specified with an enum discriminator or a size and function pointer. You must always supply the number of entries when setting the format. When initislising with a paletter initialisation member, you can specify the entries and indirecte entries together. The palette_device now has a standard constructor, so use .set_entries if you are specifying entry count with no format/initialisation. Also killed an overload on delegates that wasn't being useful (emu\emupal.cpp). . Fixed palette regressions in dgpix.cpp, inufuku.cpp, mugsmash.cpp and playmark.cpp . Transposed transformation matrix to fix BGFX colors . DEVICE . Actually check parity of received bytes in modes other than PARITY_NONE; fixed transmission of parity bit in PARITY_EVEN mode (emu\diserial.cpp). Make is_receiver_register_full and is_transmit_register_empty const and inline (emu\diserial.cpp) . Misc MCFG removal . Mark empty PLD dumps from protected devices as NO_DUMP (chry10, chrygld, crsbingo, iqpipe, jackie, jingbelli, kingdrbb, mastninj, polepos2bi, pool10e, pool10j, quiz211, quizvid, royalcrdp and suprmriobl) . Added object finder for address spaces (emu\devfind.cpp). The constructor and set_tag methods for required_address_space and optional_address_space work slightly differently from other finders in that they take the address space number as an extra argument. There is also an option to request a space having a specific data width, and validation checks this as well as the space number. There is also no (required|optional)_address_space_array, but that shouldn't really be necessary since devices shouldn't need large numbers of these finders. . UI . Removed irrelevant header . Eliminated qsort (ui\inputmap.cpp) . Improved search function (use algorithm derived from Jaro-Winkler similarity to match search strings) (ID 06204) . UI cleanup: Fixed crash on builds with fewer than 16 drivers. Fixed "available" filter in internal UI. Get rid of some UI globals that shouldn't be global. Better encapsulation in UI. Clean up favourites manager - in particular kill hidden state and O(n) walks. This breaks adding systems/software to favourites from the main tab menu. . More UI stuff: Splitted up the different parts of ICO loading in the menus (locating files, scaling, drawing, etc.). Added icon support to software selection menu. Added support for more ICO file variants, including PNG-in-ICO (new DIB parser is overkill for ICO but I can factor it out for BMP loading at some point). Added favourites filter for software menus - includes software that's favourited on any system, so GBC includes DMG favourties and vice versa. Eliminated unnecessary member variables and O(n) walks in software selection menu. Made the menus' cached texture structures a bit more efficient. . Restored functionality of the "Add to Favorites" item on the main in-emulation menu (emu\softlist_dev.cpp and ui\inifile.cpp) . Make search apply to the filtered list in system/software selection menus, and cache stuff used for searching in software selection menu. . Eliminated custom_port_read and use ioport finders instead (cyclemb.cpp, dbz.cpp, dreamwld.cpp, fuukifg3.cpp, jaguar.cpp, midvunit.cpp, psikyo4.cpp and stadhero.cpp) . Eliminated space and mem_mask arguments from read/write handlers (machine\68307.cpp, 68340.cpp, 68340ser.cpp, mc2661.cpp, mc68681.cpp and scn2674) . Added device support to configure_scanline (machine\timer.h) . Case sensitivity training for INI: Further standardization of the formatting. Correct filtering instructions (docs\source\advanced\bgfx.rst, advanced\devicemap.rst, advanced\glsl.rst, advanced\hlsl.rst, advanced\multiconfig.rst, advanced\paths.rst, advanced\shiftertoggle.rst, commandline\commandline-all.rs, commandline\sdlconfig.rst, commandline\windowsconfig.rst and initialsetup\installingmame.rst). Make INI file loading examples match current behaviour at least (advanced\multiconfig.rst). . Added some example XSLTs that operate on -listxml output (scripts\xslt\list-bios.xslt, list-runnable-tree.xslt and list-runnable.xslt). Treat *.xslt as XML (tools\srcclean.cpp). . Make informational verbs a bit more consistent, reduce copy/pasted code, a slight performance improvement for reading localisation files, and more documentation clean-up/correction/clarification (commandline\commandline-all.rst, techspecs\layout_files.rst, frontend\mame\clifront.cpp, clifront.h and language.cpp). Major formatting update for command line options (commandline\commandline-all.rst). Better documentation for compiling on Windows (initialsetup\compilingmame.rst). . Device Network Interface: Always call send_complete_cb, even if no adapter is present (emu\dinetwork.cpp). . Apply -verbose after processing command-line options and after first pass over .ini files . Fixed assert in field_set_name if no field is configured. This should help catch instances where PORT_NAME is accidentally substituted for PORT_START (a frequent mistake of mine) (emu\ioport.h). . Removed address_space argument from read/write handlers (machine\bankdev.cpp; drivers\pengadvb.cpp and cedar_magnet.cpp) . Updated hiscore.dat set changes - SDLMAME . Clean up sdl_sound a bit (sound\sdl_sound.cpp) . Workaround for Web Audio autoplay restrictions in Chrome 71 (sound\js_sound.js) . Fixed joystick initialization with Emscripten SDL (input\input_sdl.cpp) . Better Emscripten SDL fix (input\input_sdl.cpp) . Keep track of which SDL input subsystems were initialized (input\input_sdl.cpp) - Compiling . Downscope (audio\sente6vb.h and includes\balsente.h) . Updated some documentation and get the MAME and legacy MESS pages more in sync (docs\man\mame.6, mess.6 and source\commandline\commandline-all.rst) . Removed irrelevant header (drivers\sbowling.cpp) . Fixed non-trivial templates in emu\devdelegate.h for MSVC . Fixed a few missing #includes flagged by VS2019 beta (lib\util\timeconv.h and bgfx\effect.h) . Fixed errors with single-driver build of vsnes.cpp (scripts\genie.lua and src\main.lua) . Additional documentation on compiling MAME (docs\source\initialsetup\compilingmame.rst and osd\sdl_cfg.lua) . Reduced logging spam (sound\ymz280b.cpp and drivers\bfm_sc4.cpp) . Fixed SUBTARGET=nl build (netlist code; scripts\target\mame\nl.lua and mame\nl.lst) . Fixed MSVC compile (llvm toolset): Conditionally uninitialised variables in PortAudio. Floats passed to attotime. unsigned->signed enums (this one is technically still wrong). - Debugger . Send logerror to stderr if no debugger is attached and -oslog is on (osd\windows\winmain.cpp and winutf8.cpp) . Don't blow up when TMS34010 disassembler tries to read 32-bit operands (tools\unidasm.cpp) 0.205 - New games: Four Play, Jong Shin (Japan), Magic Purple, Pastel Island (Japan, prototype), Super Ball (Version EC-3.50 N165), Super Ball (Version EC-3.50 N322), Venom & Spider-Man - Separation Anxiety (SNES bootleg) and Video Eight - New Working games: Break Thru (Tecfri license), Evil Night (ver UBA), Fruit Bonus 2010, Heat of Eleven '98, Hell Night (ver EAA), Tobe! Polystars (ver JAA) and Total Vice (ver EBA) - New Non-Working games: Flash Beats, Les Fiches (ver 1.3), Pro Tele Cardioline (Salter Fitness Bike V.1.0, Checksum 02AB), Super Mario Fushigi No Korokoro Party 2, Trivial Pursuit (Volumen IV, Spanish, Maibesa hardware) and Won! Tertainment Happy Channel (Ver E) - New clones: Eagle Shot Golf (Japan, bootleg?), Galaxy Gunners (1990 year hack), Grand Prix Star (ver 4.0), Iga Ninjyutsuden (Japan, bootleg), Legend of Hero Tonma (World, bootleg with i8751), Les Fiches (ver 1.2), New Biliard 98 (Pool 10 hack), Pit Fighter (rev 1, 2 players), Street Fighter EX2 Plus (Euro 990611), Street Fighter II': Champion Edition (Red Wave PtII, bootleg), Street Fighter: The Movie (v1.14N, Japan) and Trivial Pursuit (Volumen II, Spanish, Maibesa license) - New AGEMAME games: 15 Lions (10166211, Queensland), More Chilli (20289311, Queensland), Orchid Mist (0101241V, New Zealand), Pelican Pete - Jackpot Carnival (10226711, Queensland), Queen of the Nile (0300785V, New Zealand), Spring Carnival (10008011, Queensland) and Werewolf Wild (20290711, Queensland) - New PEPlus games: Player's Edge Plus (X002143P+XP000043) Joker's Revenge Poker - New PinMAME games: Black Belt (Zaccaria, French speech), Black Belt (Zaccaria, German speech), Black Belt (Zaccaria, Italian speech), New Star's Phoenix (French speech) and Star's Phoenix (French speech) - Removed games: Pool Champion (alternate sound) - New drivers: flashbeats.cpp, minivideo.cpp and rulechan.cpp - New devices: a2058, coin_hopper, dspp, m2bda, m2cde, m2ctrlport, m2memctl, m2mpeg, m2powerbus, m2te, m2vdu, m6507, mos8721, sente6vb, te7752, tunitvid, wunitvid, x2404p and xunitvid - New artworks: http://mrdo.mameworld.info/mame_artwork_ingame.php - CPU . Dynamic Re-Compiling: Fixed failure to construct/destruct non-trivial objects that caused crashes when using DRC back-ends (cpu\drcbeut.cpp) . Hitachi H8: Improved logerror in relation to machine().side_effects (h8\h8_watchdog.cpp). Internal MCFG elimination. . Hyperstone . Re-enabled DRC now that the apparent source of hang issues has been fixed. Fixed CMPB opcode comparing source register against source register (e132xs\e132xsdrc_ops.hxx). Fixes Land Breaker shows only black screen in service mode (ID 06985). . Fixed SUBC flag calculation for DRC and instruction length flags. Fixes hang in DRC. . Intel I386 . Moved CPUID and MSR routines to new file cpuidmsrs.hxx . Added STEP OVER to REP and REPNE instructions (i386\i386dasm.cpp) . Fixed esp after segment faults (i386\i386op16/32.hxx) . MCS-48: Fixed all games using MCS-48 are crashing when trying to set watchpoint with wpd (cpu\mcs48\mcs48.cpp) (ID 05732) . MCS-51: Added derived CPU type for AX51-CORE (used by AX208 and others) so that we can start to customize disassembly and execution. Added SFR register names for axc51 disassemler. . Motorola MC68000 . MMU: Fixed "Set B bit in ATC on buserror" (m68000\m68kmmu.h; MAME 0.204). Note: ps == 8 should be ps - 8, which cause a compiler error. However, the code doesn't work. It wasn't noticed due to the typo, so remove it for now. . Added (d16,An) addr mode to WRITE_EA_FPE() required by NetBSD ps command, which utilizes the FPU (m68000\m68kfpu.hxx). . MIPS-I . Added FPA imp/revision numbers. Handle exceptions in delay slot instructions. I introduced this error when adding tlb support and modifying the exception code previously. This resolves the error, cleans up delayed branch handling and fixes a panic in the mips rx2030 and rx3230 driver. Make sure the exception target address isn't incremented. . TLB fixes: Correct cop0 context register encoding. Correct invalid tlb entry exception vector. Improved logging. . STmicro ST6228: Fixed JRR and JRS opcodes . Texas Instruments TMS3203x: Fixed disassembler. Confirmed radikalb still works and mk4 and drivedge no longer stack-overflow. . Z8 / Zilog Z8681: Register overhaul: Created address space for internal register file. Added port output registers to debug state. Lock out interrupts on reset until EI. - SOUND . Yamaha YMF292-F SCSP: Implemented EXTS mixing and DAC18B. Removed MCFGs. Reduced machine().device. Added save states and fixed postload functions. Correct SSCTL and initial RBL. Code style fixes. Cleanup unused / duplicates. Added notes. - DEVICE . ATAPI CD/DVD-ROM and SCSI CD: Reverted erroneous CD audio change in MAME 0.199, and added gain setters for each CD channel (machine\t10mmc.cpp). Support 256 gain levels (machine\t10mmc.cpp) . Atari Custom: Disentangle drivers from atarigen_state . Atari Slapstic: Updated Slapstic information based on observations of Pit Fighter sets & build dates . EEPROM: Serial EEPROMs don't actually have reset lines, so remove the device_reset handler that automatically switches back to STATE_IN_RESET at machine reset time (machine\eepromser.cpp). This change might cause erratic behavior in some systems which should be deasserting CS by clearing their EEPROM latches on reset, but is more appropriate for some MCU-based systems which actually depend on CS being automatically asserted through pull-ups when their quasi-bidirectional ports are reset. . Floppy . Fixed "Read Only" access mode (the flag was not respected; ui\floppycntrl.cpp) (ID 07049) . Make formats\upd765_dsk.h slightly safer with defualt initialisers for key format members. . Changed signature of stuff in imagedev\floppy.h to hint that it needs an array, not just a pointer, although it doesn't actually warn if you just give a pointer anyway. . Added (mostly standard) clocks to all UPD765 devices in the family. These clocks are currently unused, and their sources and dividers are often unclear. In some cases they are clearly software-configurable, which has not been emulated at all. . SCSI: Fixed sense data if not cdrom in drive (machine\nscsi_bus.h and nscsi_cd.cpp) . TE7750 Super I/O Expander: Default clock and updated docs. Added TE7752 type. . Toshiba TMP68301: More accurate registration and acknowledgment of pending interrupts within TMP68301 interrupt controller - ampoker2.cpp: Fixed NVRAM size - aristmk5.cpp: Improved doumentation - aristmk6.cpp: Added 2 BIOS sets and fixed some PCB locations - balsente.cpp . Added a missing PAL for the Bally/Sente PCB . Separated emulation (and ROM) of 6VB audio board from driver class. This serial audio board appears to be based on the Sequential Circuits Six-Trak synthesizer. . Eliminated install_readwrite_handler hacks. Do banking without memcpy. Correct palette format. Fixed Trivial Pursuit (Genus II Edition) init. . Improved documentation for Spanish Trivial Pursuit sets. Start working out 6809 map for triviaes4. Improved banking. - cave.cpp: Moved common config into common functions - chihiro.cpp: Brute forced DES key for Sangokushi Taisen 2 satellite (Chihiro) - coolridr.cpp . Make screen update routine related to cliprect. Reduced code duplication. Correct YMF292/sound CPU clock speeds and sound output balance. . Added region_ptr for gfx ROM instead pointer. Converted arrays into std::unique_ptr. - cps2.cpp: Do cps2_set_sprite_priorities() before video update instead of at interrupt handler. Fixes sprite priority problem in mvscu, xmvsf and mshvsf on final stage (8) with Onslaught (large transformation) (ID 04954) (ID 05657). - deco32.cpp . Make ACE related mixing routine now related to cliprect. Minor code style fix. . Fixed graphical regression in Captain America and clones - gcpinbal.cpp: Emulated raster effects for Power Flipper Pinball Shooting - gsword.cpp . Preliminary MCU emulation. Connected gsword MCUs and correted connections for DIP switches, player inputs, start buttons, coin chutes and coin counters. Lots of guesses due to lack of measurements, schematics or even good PCB pictures. Demoted gsword to MACHINE_NOT_WORKING and MACHINE_IMPERFECT_SOUND as there are issues with credits registering and sound. Added extensive notes. . Removed BAD_DUMP flag from josvolly MCU dump - there's no reason to believe the MCUs contain different programs, and Allumer were known to use different silkscreen on identical parts (would still be nice to get confirmation). - konamim2.cpp . Massive update. Fixed debug assertion (ID 06539). Added 3DO DSPP CPU and 3DO M2 Bulldog ASIC. . Fixed ROM region width for Tobe! Polystars EEPROM. Swapped the default EEPROM now that it's a BE ROM region rather than native. . Byte-swap EEPROM and YMZ280B rom for Evil Night and clone Hell Night (ver EAA) . Mark Tobe! Polystars CD-ROM as bad . Splitted m2_te_device declaration into its own header file and cleaned up some underscore usage in M2-related #defines. . Mark CD images read-only . Updated Total Vice default EEPROM (previous version began each game with 47 lives). . Fixed TE lerp/mult bit field def (video\3dom2_te.cpp). Fixed constant color register channel extraction (video\3dom2_te.cpp) . Flag Konami M2 as MACHINE_IMPERFECT_TIMING for now . Added MACHINE_IMPERFECT_TIMING and MACHINE_IMPERFECT_GRAPHICS flags to Heat of Eleven '98. Note: Game is non-working due to soft-lock when selecting Japan for a team. - midtunit.cpp: Various cleanups. Converted video to device. Removed static globals. Added an optional DMA-blitter viewer behind a #define. - midxunit.cpp: Various cleanups. Converted to logmacro. Removed MCFG macros - model2/3.cpp: Correct YMF292/sound CPU clock speeds and sound output balance. - nss.cpp, sfcbox.cpp and snesb.cpp: Clock PPU at MCLK - pgm2.cpp . PGM2 and PGM2 Memory card cleanups. Moved most of things into private. . Do single-pass sprite drawing (uses screen.priority). Simplified gfxdecode. . Make decrypt rom size related to ROM board integreated RAM size when RAM exists in ROM board. Removed machine().save().register_postload. . Fixed RAM test fail (RAM4 at kov2nl, kov3, kof98umh, ddpdojt) . Removed unused routine/values. Shorter type values. Reduced runtime tag lookups. Removed MCFGs. Added internal ROM version notes related to test mode. Added notes. - prehisle.cpp: Cleanup gfxdecode and handlers. Fixed scroll and some namings. Moved non-video related save state into machine_start. - psikyo4.cpp: Updates/Cleanups. Fixed sound output. Reduced code duplication and runtime tag lookups. Cleanup ACCESSING_BITs. Added notes. - qix.cpp: Cleanup - seta.cpp . Splitted out state classes for some games; do away with the stupid ROM patch for Pro Mahjong Kiwame. . Fixed breakage in Zombie Raid due to MCFG_MACHINE_START_OVERRIDE shadowing machine_start - seta2.cpp . Make code more friendly for a line rendering approach, preparation for raster IRQ hookup. . Improved screen size, visible area and offset handling. Added preliminary raster effects. Documented raster effect findings. . Improved tilemap wrapping in 8x8 mode, helps Guardians intro. Fixes also a occasional 1-frame glitches (ID 02774). . Use special bit (maybe legacy mode/fixed config bit?) for Guardians map screen overlay. . Removed some patches that don't appear to be needed now . Alter coin timing for Funcube because existing value falls outside of what Funcube 2 expects . Cleanups. Reduced unnecessary handlers and ACCESSING_BITS. Protected more handlers. Converted array into std::unique_ptr. - ssv.cpp . Emulated rowscroll effect. Fixes missing raster effect in Eagle Shot Golf and Dyna Gear (ID 04053). . Added masking logic for non 6/8bpp modes, needed by Eagle Shot Golf. . Enabled 'Flip Screen' dipswitch in Monster Slider by default. Note: Service Mode calls this OFF. Check if it's an error in the video code, or a mistake in the game. . Minor documentation update - stv.cpp . ST-V CD-ROM: Added device_mixer_interface related to SCSP EXTS . Added 'Sega Saturn/ST-V CD Block HLE' sound to Sport Fishing 2 - toypop.cpp: Simplified coordinate calculation of foreground - vamphalf.cpp: Fixed Hyperstone SUBC flag calculation for DRC and instruction length flags. Fixes worldadv randomly freezes and luplup and poosho freeze after about 36 minutes (ID 07005). - vigilant.cpp: Clock fix - yunsun16.cpp: The Oki sound chip definitely isn't mapped there on Magic Bubble. - Bombjack Twin: Improved sprites for clone Atom (bootleg of Bombjack Twin) - Break Thru: Redumped clone Break Thru (Tecfri license) and promoted it to working. Also dumped the PROMs and fixed colors. - Darwin 4078: Dumped PALs and added PCB layout. Also added note about a different PROM which was on the PCB. - DJ Boy: Show how clocks are derived and renamed 1 rom - Dragon Master: Use XTAL macros - Equites: Fixed loss of sound after changing any dipswitch and reset (ID 07169). This appears to have been due to failing to clear the TRAP (NMI) line after a soft reset. The Equites sound board apparently performs this through hardware alone, even though it also has a software trigger to clear the flipflop. - Fruit Bonus 2010: Dumped missing GFX roms + improvements (Game now playable) - Lucky Lady (Wing, encrypted): Preliminary decryption. Not really close yet. - Major Havoc: Gave banked vector roms their own rom region - Namco Stars: Patched a few of the stuck bits. Not a very workable fix, but perhaps better than nothing - Puzzle Yutnori: Replaced ROM patch with protection simulation - Rushing Beat Shura (SNES bootleg): Setting the correct boot vector for Rushing Beat Shura, helps but isn't enough. Boots to the copyright screen, than stands there. - Vivid Dolls: Added JAMMA inputs - Dipswitch fixes in aristmk5.cpp, goldstar.cpp, snesb.cpp and ssv.cpp - Fixed rom names in berzerk.cpp, brkthru.cpp, djboy.cpp and snk.cpp - Description changes of Eagle Shot Golf (US), Midnight Run: Road Fighter 2 (AAA, Asia v1.10), Midnight Run: Road Fighter 2 (EAA, Euro v1.11), Midnight Run: Road Fighter 2 (JAD, Japan v1.10), Mobile Suit Gundam Final Shooting (Japan), Rushing Beat Shura (SNES bootleg), Shin-ip Sawon - Seok Dol-i and Trivial Pursuit (Volumen III, Spanish, Maibesa license) - Renamed (f1gpstar) to (f1gpstar3), (f1gpstaro) to (f1gpstar2), (rushbeat) to (rushbets), (sfex2p) to (sfex2pu) and (sftmj) to (sftmj112) - MAME . Make validity checker warn about configured maps for nonexistent spaces (emu\dimemory.cpp) . DEVICE . Eliminated MCFG macros from many devices and drivers, including all but one of the CPUs. . Added separate hopper_device (machine\ticket.cpp) . Sound Interface . Fixed wrong dll loaded in XAudio2 module since MAME 0.180 (sound\xaudio2_sound.cpp) (ID 07170) . Make DirectSound default over XAudio2 (lib\osdobj_common.cpp). Note: XAudio2 module was completely disabled for over 2 years and unmaintained. Using "auto", MAME actually chose dsound as default. Plus it seem to be getting random buffer underflows/overflows with it, it needs to be more stable before it can be default. . Clean up and improved option descriptions (emu\emuopts.cpp, lib\osdobj_common.cpp, sdl\sdlmain.cpp, windows\winmain.cpp) . Pass UI cancel to LUA (ui\pluginopt.cpp) . Removed m_baseptr, may fix the save state issues (Memory banking not restored correctly when loading save states in numerous drivers) (emu\emumem.cpp/h) (ID 07116). . 3rdparty: Updated BGFX, BIMG and BX to latest upstream. . PLUGINS: Fixed typo (plugins\cheatfind\init.lua) - SDLMAME: Reworked the circular buffer (sound\sdl_sound.cpp). Previous code had several oddities. Like checks against buffer overflows/underflows done at several places in the code, usage of a spinlock, unnecessary use of "volatile" qualifier, redundant informations about the circular buffer and exposed details about the split nature of ranges in the buffer. This lead to an unlikely deadlock once in a great while. - Android: Android compile fix. These fixes enable Android builds to work with NDK r18b, latest Android Studio and latest Gradle as well. - Compiling . Don't #include legacy header "flopdrv.h" except where it's still used. Included floppy.h explicitly in drivers and bus cards, rather than indirectly through popular FDC headers. . Uniform spacing, standardised logging and capitalised template parameters . Added per-language compiler flag options to help with exotic setups (makefile, scripts\genie.lua) . CHAR_WIDTH and LONG_WIDTH are preprocessor macros in limits.h with glibc if __GLIBC_USE (IEC_60559_BFP_EXT) is enabled - avoid using them as names (sound\cdp1869.cpp, video\clgd542x.cpp, pc_vga.cpp, v9938.cpp etc.). . More header cleanup, split up some more all-in-one state classes. . Added support for building with Clang on FreeBSD/NetBSD . Appease deprecation warning for machine\galaxold.cpp - Debugger . Prevent watchpoints from being installed multiple times recursively (debug\debugcpu.cpp) . Work around Qt crash (debugger\debugqt.cpp) 0.204 - New games: Bare Knuckle III (bootleg of Megadrive version) - New Working games: Alpha One (Vision Electronics) and Abnormal Check - New Non-Working games: Bingo Galaxy (main), Bingo Galaxy (satellite), Capitan Uncino (High Video, version 2), Doko Demo Issho: Toro's Fishing, Top T. Cash and 'unknown Elsy game' - New clones: Arizona 10 (v1.1), Centipede (bootleg, set 2), Dirt Devils (Germany?), Dragon Master (set 2), Fighting Vipers 2, Hacha Mecha Fighter (Location Test Prototype, 19th Sep. 1991), Klax (Japan, version 4), Klax (version 5, bootleg set 2), The Lost World (older), Magic Colors (ver. 1.6), Sega Rally 2 (prototype, 29 Dec 1997), Sega Rally 2 (prototype, 8 Dec 1997), Shin Ib Sa Won - Seok Dol I, Shinobi (set 5, System 16B) (unprotected), Smashing Drive (Spain, Portugal), Smashing Drive (World), Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg, set 2), Star Wars Trilogy Arcade (location test, 16.09.98), Street Fighter II: The World Warrior (USA 910522, Rev. H), Street Fighter II: The World Warrior (World 910204), Touchmaster 4000 (v6.02 England), U.N. Defense Force: Earth Joker (US / Japan, set 2), Virtual On 2: Oratorio Tangram, X-Men: Children of the Atom (Asia 941219) and Xevious 3D/G (World, XV32/VER.A) - New PinMAME games: Come Back, Skate Board (Inder) and Sport 2000 - New devices: a2065, am7990, am79c90, dp835x_a, r2000a, r3000, r3000a, r3052e, rs232_mouse_hle_sgi, v50 and v5x_icu - CPU . AM9517A: Added 16 bit transfer support to v5x_dmau variant . Hyperstone: Temporarily disabled Hyperstone DRC (e132xs\e132xs.h) . Intel I80186: Reverted the MAME 0.203 DMA change, breaks (MESS) tandy2k and pcd. . Intel I386 . Added virtual methods for cpuid and msr instructions . Default implementations in class i386_device log an error message . Derive Pentium MMX, Pentium II, Pentium III classes from pentium_pro_device. Pentium MMX class derives from pentium_device. . Removed pentium_msr_* p6_msr_* piv_msr_* MSR_READ MSR_WRITE routines and call virtual methods instead . The routine pentium_rdmsr modifies the registers only if the msr is valid . Prepare to change hxx files into regular cpp files. Changed order of include files at top of i386.cpp. Moved some routines between i386.cpp and i386priv.h. Moved part of x87ops.hxx into new file x87priv.h. Now you only have to rename the hxx files to cpp and add the following at the top of each one: #include "emu.h", #include "i386.h", #include "i386priv.h", #include "x87priv.h", #include "cycles.h", #include "debugger.h", #include "debug\debugcpu.h" and #undef i386. . Signal a privilege change to the debugger whenever protected mode is enabled or disabled or the CS descriptor flags are changed . MIPS-I . Modernized IDT R30xx core. Replaced memory accessors. Implemented TLB and address translation. Correct exception vector logic. Improved cache isolation behaviour. Added comments/formatting. Adjusted memory map in policetr.cpp to match R3041 address mapping and to restore sound. . Fixed overflow logic. Handle no cache. . MIPS-III . Added correct R5271 processor ID . Various changes: Added an #ifdef to display DPRINTF calls from the SGI O2 PROM. Switched R4000BE/LE, R4400BE, R4600BE and R5000BE to 64-bit data bus. Fixed a bug that caused a crash with 64-bit data bus and the DRC. . Started laying the groundwork for cache support. Added logging of cache opcodes. . Added secondary cache instruction decoding (mips\mips3dsm.cpp) . Mitsubishi M37710S4: Added basic support for up-down count on timers in event counter mode . Motorola MC68000 . Fixed ptest instruction (m68000\m68kdasm.cpp) . Fixed rw bit in address error frame. Note: RW bit actually means 1 = read, 0 = write. It was also not shift in m68000_base_device::set_buserror_details(). . Show PMMU registers for 68020/030/040 in debugger . MMU . Handle RW bit in ATC cache properly. Added page table walk that result in BUSERROR to ATC. Fixed ptest instruction. . Trap if PLOAD is called with MMU disabled on MC68851. Don't skip descriptor status update for page descriptors. . Set address in ptest to last descriptor address. Added function code page table lookup. Fixed ptest level report in MMU SR. . Fixed TT register matching (test RW bit, fix masking of bits). Decode fc field for pload instruction. Fixed decoding of pload instruction. . Fixed compare of SUPERVISOR_ONLY bit in 8 byte descriptors. Don't change Page table/ATC state during translations caused by debugger. . Set B bit in ATC on buserror. Store last logical address for bus error handler. . Support flushing ATC by FC/EA . NEC V25: Added address space for internal data area and SFRs . NEC V53 . Added the NEC V50 to the existing V53/V53A devices . Refactored code to better align with current best practices. Added 16-bit transfer support to DMAU. Cleaned up SCU implementation. . Zilog Z8681 CPU / Z8: Use DEVCB3 instead of MCFG_ macros - SOUND . Discrete Sound: Eliminated unnecessary address space argument from handlers . Hudson Soft HuC6280 PSG: Fixed LFO scale bit . K054321 Maincpu-Soundcpu interface: Remember initial speaker input gains, this fixes volume balance in X-Men (ID 06607). . K054539 ADPCM: Swapped left/right K054539 channels in gijoe.cpp, lethal.cpp, moo.cpp, mystwarr.cpp, rungun.cpp, xexex.cpp and xmen.cpp, also removed setting REVERSE_STEREO (H054539 doesn't implement it at all, maybe it did ages ago). . Sound Interface: Added getters for input/output gain (emu\disound.cpp) . YM2149 SSG: Replaced AY-3-8910 sound with YM2149 in 40love.cpp, adp.cpp, big10.cpp, dominob.cpp, fcombat.cpp, halleys.cpp and vroulet.cpp - DEVICE . 3dfx Voodoo Graphics: Mark frame buffer as changed after direct LFB write (video\voodoo.cpp). Fixes missing text during NBA Showtime Gold power on tests. . CD-ROM: Added various legacy SCSI and new-SCSI CD-ROM devices which support 512-byte blocks by default . DECO 55 / 56 / 74 / 141 Tilemap Generator: Added support for gfxdecode device pointer (video\deco16ic.h) . DP8350 CRTC: Added customized CRTC (DP835X) for (MESS) Univac and configure CTC using verified input frequencies. . Floppy: Avoid to use uninitialized booleans (formats\dsk_dsk.cpp). Fixes (MESS) Amstrad CPC6128 DSK images reading (ID 07134). Thanks to Klez for testing. . Intel 8251 USART: Implemented send break command. Minor tidy on v5x_scu variant. . Intel 8259 PIC: NEC V5x ICU is always in x86 mode . M48Txx Timekeeper: Fixed watchdog delay setting (machine\timekpr.cpp) . MB87078 Volume Controller: Refactor and correct data_w/r. Only update channel latch when dsel is low. . Namco C123 (Tilemaps): Added support for offsets, half-height tilemaps and eight-bit I/O (for using in namcos1.cpp). Reduced unnecessary handlers and code duplication. Fixed naming for 16 bit handlers. Cleanup palette changing behavior. . Namco C355 (Sprites): Fixed inconsistency, deprecation and duplication. . RST Interrupt Buffer: Set default clock to 0 . SAA5050 Teletext Character Generator: Replaced dump of SAA5050 internal character generator ROM with verified copy from decap. This also matches the Signetics and Mullard SAA5050 datasheet pixel listings. . Serial Flash: Added support for page size configuration and fixed block erase command and read/write past last page (machine\serflash.cpp) . Seta ST0020 Sprites: Reduced code duplication. Use device finder. Cleanup tilemap mapping. Removed MCFG macros. . Signetics SCN2674 AVDC: Added BREQ output; get a bit smarter about screen reconfiguration. . Western Digital WD33C93 SCSI: Style cleanup and improved logging. Silence logging by default. . Z80 CTC: Allow a fixed-rate clock input to be configured for each channel. This improves performance by alleviating the need to drive the CLK/TRG inputs with high-frequency timers. . Z80 DART: Don't reset the receiver whenever WR5 changes - acesp.cpp: Dummy out ace_sp_portmap, this not so useful bit. - backfire.cpp: Simplified graphics decode. Deferred scroll RAM allocation until start time. Reduced code duplication. Converted arrays into std::unique_ptr. Added notes. Fixed metadata related to regional warning screen (both dumped sets are Japan release). - blmbycar.cpp and wrally.cpp . Added shadow/headlight to Blomby Car. Note: Blomby Car is a bootleg of World Rally, many things are similar, but not quite the same, including the sprites. Previous emulation of Blomby Car was missing the shadow and highlight effect entirely. This was implemented on World Rally. Bringing the video implementations closer together has allowed me to add this missing effect to Blomby Car. . World Rally improvements. Note: Looking at some reference material it seems the emulation of the shadow / highlight effect on World Rally was 'too good' in some cases, for example, looking at original hardware videos it looks very much like you're meant to see a car shaped shadow as your headlights pass through the starting arch. This wasn't present on previous emulation which used 2 pass drawing, but is present with the single pass drawing and mixing. . blmbycar.cpp: Cleanup ACCESSING_BITS. Reduced code duplication and runtime tag map lookups. Fixed memory map and sound output (both chip and PCB can't support stereo output). . wrally.cpp: Cleanup gfxdecode and ACCESSING_BITS. Reduced runtime tag lookups and code duplication. - bmcpokr.cpp: Correct sound output channel. Cleanup ACCESSING_BITS. Reduced code duplication. Removed MCFGs and register_postload. Correct value types. - cave.cpp: Cleanups. Removed unnecessary palette init, register_postload and some MCFGs. Cleanup some ACCESSING_BITs, write handlers, inputs and gfxdecodes. Fixed tilemap update. Added notes. - chihiro.cpp: Some cleaning (machine\xbox_pci.cpp) - cninja.cpp and deco32.cpp: Trigger interrupts at the start of hblank instead of at the 1st active pixel. Allow raster irqs in active display (glitches in Dragon Gun bottom part of screen otherwise) (machine\deco_irq.cpp). Fixes screen goes black in Dragon Gun on 3rd stage and game stops (ID 07046). - dec0.cpp: Converted sprite RAM to buffered_spriteram16_device. Cleanup gfxdecode and improved member names. - deco32.cpp: Cleanups. Moved tilegen configurations into video_start and removed VIDEO_START_MEMBER. Cleanup duplicates in gfxdecode. Reduced unnecessary address_space arguments and unnecessary arrays. Fixed tattass* metadata related to date in ROM/RAM check screen. Fixed spacing and namings. Fixed Tattoo Assassins EEPROM logging. - docastle.cpp . Put maincpu irq back to vsync. Note: docastle schematics say that maincpu(and cpu3) interrupt comes from the 6845 CURSOR pin. The cursor is configured at scanline 0, and causes the games to update the next video frame during active display. What is the culprit here? For now, it's simply hooked up to vsync. . Fixed top of screen flickers in dowild when level 1 completed (either by player or via attract mode) (ID 07149) - f1gp.cpp: Various cleanups. Reduced code duplication. Splitted f1gp2 specific functions into driver state. Moved GFX swap into rom load. Added shared_ptr for GFX RAM. Changed clone F-1 Grand Prix (Playmark bootleg) sound output to mono. - fantland.cpp: Cleanup ACCESSING_BITs. Reduced code duplication and runtime tag map lookups. Fixed some namings and spacings. Removed unnecessary MACHINE_START_CALL_MEMBER and MACHINE_RESET_CALL_MEMBER. Splitted borntofi state related to ADPCM and input. Reduced/correct ROM region usage and some trampoline. - gaelco.cpp: Cleanup gfxdecode and naming. Reduced code duplication and runtime tag lookup. - galaxian.cpp and galaxold.cpp: Moved audio\galaxian configuration to driver files - gottlieb.cpp: Cleanup driver and gfxdecode. Reduced unnecessary arguments. Fixed namings. Reduced unnecessary arguments of handlers (audio\gottlieb.cpp). - highvdeo.cpp: VBLANK modernization - hng64.cpp: Updated to match V53 changes - hyprduel.cpp and metro.cpp . hyprduel.cpp: Cleanup ACCESSING_BITS . Fixed sprite lag in Blazing Tornado and Grand Striker 2. Adjusted Grand Striker 2 sound balance. . metro.cpp: Cleanup ACCESSING_BITS. Reduced code duplication and unnecessary address_space arguments. Fixed namings. . Imagetek I4100/4220/4300: Added support for buffered sprites. Cleanup sprite drawing routine. Internalized gfxdecode (all driver shared same gfxdecodes). Cleanup and removed MCFGs. - igs011.cpp: Removed unnecessary palette handler. Converted memory_region into region_ptr. - karnov.cpp: Cleanup. Converted background tilemap into generic MAME tilemap system. Cleanup handlers. Reduced code duplication, address_space arguments and region sizes. - lordgun.cpp . Cleanup naming and unnecessary handlers. Reduced code duplication. . Fixed Alien Challenge YMF278B clock (https://www.youtube.com/watch?v=_RaCpHwyS78). - m52.cpp . Use multiple palettes and regions instead of kludging into one . Fixed sprite colours, looks like mpatrol could potentially support 3bpp anyway and the existing kludging of the sprite clut prom was to save memory. . Alpha One (Vision Electronics): Improvements. Splitted game into different class etc. Promoted to working. - m72.cpp: Miscellaneous cruft removal - magic10.cpp: Updated game list with hardware setup. More detailed hardware setup description. Fixed a few ROMs names as per real labels. Updated boot instructions for all games. - namcos1.cpp: Added Namco C123 device (Tilemaps). Reduced code duplication. Correct device types, XTAL'd YM2151 clock and namings. - namcos2.cpp . Fixed Namco C123 video RAM mirroring issue. Fixes Metal Hawk intermission (ID 06685). . Fixed flickering or misplaced sprites (ID 07009) - namcos22.cpp . Get rid of ioport tag lookups, tweak SS22 analog limits. Small driver update. . Added basic support for up-down count on timers in event counter mode to M37710S4 CPU. Improved Prop Cycle/Armadillo Racing controls. . Added SS22 volume control . Fixed bug with priority over textlayer (video\namcos22.cpp), fixes Cyber Commando arrows (black part) should be below textlayer when a messagebox pops up. - naomi.cpp: Fixed M1 security keys endian (machine\naomim1.cpp) - peplus.cpp: Minor documentation update/info for various PE+ sets/roms - segas16b.cpp: Added QUANTUM_TIME for games with 8751, this gets rid of sprite lag in goldnaxe (ID 06474) and altbeast. - segas32.cpp: Reduced code duplication. Cleanup ACCESSING_BITs and naming. - segasp.cpp: Added SystemSP Network Board firmware ver 1.23 and alternate network board 1.23 firmware, dumped and documented one more Bingo Galaxy satellite PCB. - stadhero.cpp: Minor cleanups. Removed some MCFGs. Fixed some namings. Cleanup gfxdecode. Reduced unnecessary handlers. Added notes. - supbtime.cpp . Restored tilemap offset to tumblep and chinatwn that were lost when driver was merged with supbtime (verified with hardware videos) . Fixed line on left of screen when flipped in Tumble Pop (ID 04991) - tecmo.cpp: Converted scroll array into shared_ptr. Reduced code duplication and runtime tag map lookups. Removed unnecessary handler installs. Fixed spacing and naming - thoop2.cpp: Simplified graphics decode. Reduced code duplication and runtime tag lookup. - toaplan2.cpp . Improved member naming and removed unnecessary use of register_postload . GP9001 VDP: Cleanup/Fixed naming. Reduced unnecessary handler. Make tilemap drawing routine related to cliprect and buffered_spriteram16 for sprite RAM (video\gp9001.cpp). - tourvis.cpp: Added game IDs as a "feature" (hash\pce_tourvision.xml). Game IDs are relevant to the emulation, and should be on the XML, not on comments. Also updated the comments on missing games and missing IDs. - tx1.cpp: Make TX-1 use something that looks like C++ rather than driver_data abuse (still needs splitting tx1 and buggyboy parts) - vamphalf.cpp: Demoted several games due to non-DRC issues - Abnormal Check: Redumped graphics roms (Game now playable) - American Poker II . Simplified decryption of clone Rabbit Poker (Arizona Poker v1.1?) . Documented and simulated clone Piccolo Poker 100 protection and removed ROM patches. Some clean-ups. Added technical notes. - Asteroids Deluxe: Default ER2055 EAROM to zero fill to suppress invalid high score display (ID 07151) - Break Thru: Marked roms 6 and 7 of clone Break Thru (Tecfri license) also as BAD_DUMP. The PCB owner redumped the ROMs, getting variable results on ROMs 6, 7 and 8, and constant reads on all other ROMs. He also recorded a video of the game running: https://www.youtube.com/watch?v=eBbToDz0YQw. - Dragon Master: Fixed 8x8 tile bank - Hang-On: Dumped PAL CK2605 devices - Happy Jackie: Small cleanups - Hot Blocks: Added PALETTE_FORMAT for palette. Cleanup video update routine. Converted VRAM array into std::unique_ptr. Confirmed XTAL (PCB has only a 24 MHz XTAL). - Kick Goal . Decapped and hooked up PIC16C57. It's possible the banking is wrong on the OKI still as the game really doesn't attempt to use the majority of the sounds in the rom, there are only a few screens where music even plays. . Fixed Kick Goal clock speeds. Both Kick Goal and Action Hollywood run on the same PRO-3/B PCB so use the measured clocks from Action Hollywood for Kick Goal. - Mouse Trap: Verified one of Mouse Trap's original PROMs matches the corresponding one dumped from a bootleg. The other 2 PROMs couldn't be read. Correct PROM PCB locations. - Parent Jack: Fixed volume. Game uses FM channel of YM2203 for jingle/musics. - Pinball Action . Hooked up numeric pinball LED displays for clone Pinball Action (Tecfri license) (working but missing some comms) . Added hardware documentation, 74HCT259 latch, removed some MCFG and clean up names for clone Pinball Action (Tecfri license) - PinMAME: Correct sound CPU rom dump for Clown (Inder) and Top Pin - Prehistoric Isle in 1930: Dumped correct char rom for clone (Korea), fixes introductory text not displayed properly (ID 05613). - Royal Ascot . Added satellite roms . Make 68K/Z80 communications work instead of patching it out - Smash T.V.: Added SL1 revision sound ROM to clone Smash T.V. (rev 3.01) - Tetris: Decapped Intel P8749H microcontroller from Tetris (bootleg set 3). Matches already existing dump. - U.N. Defense Force: Earth Joker . Marked parent set as a bad dump and applied a patch based on earthjkrp (fixes row scroll on final stage) . Reduced sound levels to avoid clipping - Video 21: Use deal/stand for blackjack control buttons now that we're not using deal for vblank. First 4 buttons on cabinet are: bet/einsatz, start, card/karte and stop. - Dipswitch fixes in blmbycar.cpp, megadriv_acbl.cpp and namcos22.cpp - Fixed rom names in exidy.cpp, magic10.cpp, midtunit.cpp, namcond1.cpp, segas16b.cpp, williams.cpp and xevi3dg - Description changes of Backfire! (Japan, set 1), Backfire! (Japan, set 2), Blomby Car (Version 1P0), Blomby Car (Version 1P0, not encrypted), Capitan Uncino (Nazionale Elettronica, Ver 1.2), Centipede (bootleg, set 1), Chatan Yarakuu Shanku - The Karate Tournament (Japan), Dragon Master (set 1), Fighting Vipers 2 (Revision A), Judge Dredd (rev TA1 7/12/92, location test), Klax (Germany, version 2), Klax (Japan, version 3), Klax (version 4), Klax (version 5), Klax (version 5, bootleg set 1), Klax (version 6), L.A. Machineguns, The Lost World (Revision A), Magic's 10 2 (ver. 1.1), Music Sort (ver. 2.02), Pinball Action (Tecfri license), Pinball Action (set 2, encrypted), Pinball Action (set 3, encrypted), Pinball Action (set 4, encrypted), Sega Bass Fishing, Sega Bass Fishing Deluxe, Shinobi (set 6, System 16B) (unprotected), Ski Champ, Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg, set 1), Street Fighter II: The World Warrior (World 910204, conversion), Super Gran Safari (ver. 3.11), Tattoo Assassins (Asia prototype, Mar 14 1995), Tattoo Assassins (US prototype, Mar 14 1995), Trivial Pursuit (Spanish, Maibesa license), U.N. Defense Force: Earth Joker (US / Japan, set 1), Virtua Striker 2 '99 (Export, USA), Virtua Striker 2 '99 (Export, USA, Revision A), Virtua Striker 2 '99 (Japan, Revision B), Virtua Striker 2 '99 (Step 1.5, Export, USA), Virtua Striker 2 '99.1 (Export, USA, Revision B), Virtua Striker 2 (Step 1.5, Export, USA), Virtua Striker 2 (Step 1.5, Japan), Virtua Striker 2 (Step 2.0, Export, USA) and Xevious 3D/G (World, XV32/VER.B) - Renamed (klax2) to (klax5), (klax2bl) to (klax5bl), (klax3) to (klax4), (klaxd) to (klaxd2), (klaxj) to (klaxj3), (pbaction2) to (pbactiont), (pbaction3) to (pbaction2), (pbaction4) to (pbaction3), (pbaction5) to (pbaction4), (shinobi5) to (shinobi6), (smashdrv) to (smashdrvb) and (xmcotaar1) to (xmcotaar2) - MAME . VIDEO RENDERING SYSTEM . Added a device callback to make it easier to hook the scanline timer (emu\screen.cpp) . Don't assert on update_partial with scanline<0, plenty drivers do update_partial(vpos-1) (emu\screen.cpp). . DEVICE . Removed MCFG usage in AY8910/2/4, M37702S1, MC6845, MSC1937, S16LF01, YM2151, cpu\pps4\pps4.h, machine\gen_latch.h, nmk112.h, pic8259.h, pit8253.h, pxa255.h, r10696.h, ra17xx.h, roc10937.h, rp5h01.h, rtc4543.h, rtc65271.h, rtc9701.h, s2636.h, s3520cf.h, s3c2410.h, s3c2440.h and bus\isa\isa.h . Removed MACHINE_CONFIG_START/_END for zerozone.cpp, zr107.cpp and zwackery.cpp . LUA engine . Added description comments for emu.item() . Make render.targets table a property to match the doc . Added background color for draw_text . Added pixel(x,y) and pixels() functions (Get pixel at x, y as packed RGB in a u32 and get whole screen bitmap as string) . Added as_hz() to emu\attotime.h. Replaced ATTOSECONDS_TO_HZ with as_hz where appropriate. On 0hz "attotime::from_ticks" return "attotime::never" instead of crashing. . PLUGINS: Fixed XML writer (plugins\cheatfind\init.lua) . hiscore.dat update (plugins\hiscore\hiscore.dat) . Device Network Interface: Avoid crashing (emu\dinetwork.cpp) . Network: Padding and fcs on Linux (netdev\taptun.cpp) - SDLMAME: Added force feedback (haptic) device (input\input_sdl.cpp) - Compiling . Put #include emu.h as the first preprocessor directive in various files to support precompiled headers in Visual Studio (sound\dac.cpp, video\cgapal.cpp, video\rgbgen.cpp, rgbsse.cpp and rgbvmx.cpp) . Added ini/examples to dist.mak . Renmead flipendian_int16/32/64(mem_mask) to swapendian_int16/32/64(mem_mask) (osd\osdcomm.h, cpu\uml.cpp, util\unicode.cpp, emu\save.cpp...) . Misc cleanup - mostly missing #include guards and inconsistent initialiser list formatting. Cleanup header. - Debugger . Added 'gp' command. gp 'go privilege' starts execution until the privilege mode changes. This can be used to break on task switches. I.e on m68k, one could do: gp { ~sr & 0x2000 && crp_aptr == 0x1234567 }. Which would execute until the privilege mode changes to user mode and the CPU root pointer is 0x1234567. For cpu code, all that is needed to make this work is calling debugger_privilege_hook() when the execution level changes. . Added %c to logerror. This is useful for catching putchar() like functions and printing the written value to error.log. On hp9k_3xx, i'm using this with the HP 300 test software, to log test error messages that get printed on screen to error.log, so i have the message directly after the debug messages from my driver. Example: wpset 0xfffe36be,80,w,1,{ logerror "%c", wpdata; g }. 0.203 - New games: Nerae! Super Goal (J 981218 V1.000) and Sky Challenger (J 000406 V1.000) - New Working games: Tokyo Wars and Video 21 - New Non-Working games: Bowling Road (Ver 1.5), Gynotai (Japan), Labyrinth (Ver 1.5), MVS-TEMP 'SubSystem Ver1.4' (Nazca development board), Pin Ups (Ver 1.0 Rev A), Rushing Beat (SNES bootleg), Super Derby (satellite board), UFO Robot (Ver 1.0 Rev A) and World Cup (Ver 1.5) - New clones: Ace Driver: Victory Lap (Rev. ADV1, Japan), Altered Beast (bootleg), Arm Champs II (ver 2.7), Bowling Road (Ver 1.4), Bowling Road (Ver 1.4, ND2001 hardware), Break Thru (Tecfri license), Crazy Rally (Recreativos Franco license), Crock-Man (Marti Colls bootleg of Rene Pierre Crock-Man), Emergency Call Ambulance (Japan), Fenix (Niemer bootleg of Phoenix), Heated Barrel (World version ?), The Killing Blade / Ao Jian Kuang Dao (ver. 106), Koutetsu Yousai Strahl (World), Land Maker (Ver 2.02O 1998/06/02), Ms. Pac-Man ('Made in Greece' bootleg, set 2), Ms. Pac-Man (Marti Colls bootleg), Mushiking The King Of Beetle (MUSHIUSA '04 1ST, Prototype), Pac Man (FAMARE S.A. bootleg of Puck Man), Pengo (Marti Colls bootleg on Pac-Man hardware, set 1), Pengo (Marti Colls bootleg on Pac-Man hardware, set 2), Phoenix (G. Universal Video bootleg), Pocket Gal Deluxe (Asia v3.00), PuLiRuLa (World, earlier?), Rapid Hero (NMK), Rim Rockin' Basketball (V1.2, bootleg), Showdown (version 4.0), Soldier Girl Amazon (Tecfri license), Street Fighter II: The World Warrior (World 910204), Super Pang (World 900914, bootleg, set 2), Super Street Fighter II: The Tournament Battle (USA 930911), Tazz-Mania - El Trompa (U.R.V. BBCPE bootleg), Tetris (bootleg set 4, with UM3482), Twins, Twins (Mega Twins bootleg), World Cup '90 (european hack, different title), World Cup (Ver 1.4), Zero Time (Marti Colls) and Zorton Brothers v1.01 (Los Justicieros) - New AGEMAME games: BwB Tetris v 1.0? (MPU4 Video), Excalibur (Mdm) (MPU4, V1.0D), Prize Space Invaders (v1.4D?) (MPU4 Video), Prize Space Invaders (v2.0D?) (MPU4 Video) and Prize Space Invaders (v2.14?) (MPU4 Video) - New PEPlus games: Player's Edge Plus (SET033) Set Chip, S-Plus SET005 Set chip, S-Plus SET015 Set chip and S-Plus SET026 Set chip - New PinMAME games: Congo (1.1, DCS sound 1.0), Diner (PA-0 prototype), Heavy Metal Meltdown (German) and Jack*Bot (0.4A prototype) - New devices: cx25871, dp8350, dp8367, edevices_sforce_vid, edevices_vid, eeprom, nand, pic16lc, ps2_keybc, r2000, s3c2440, smartmedia and tms9981 - New mame.ini options: bgfx_lut (BGFX POST-PROCESSING OPTIONS), chroma_mode, chroma_conversion_gain, chroma_a, chroma_b, chroma_c, chroma_y_gain (DIRECT3D POST-PROCESSING OPTIONS) and lut_texture, lut_enable, ui_lut_texture, ui_lut_enable (BLOOM POST-PROCESSING OPTIONS) - CPU . I80188: Improved the emulation of the 80188 to 87C451 MCU connection in order to reliably set a status bit disktool depends on . Intel P8098 . MCS-96 . Replaced I/O space with callbacks; use internal space for non-executable register file and SFR area. . Make SFRs more accessible to the debugger . Improved MCS-96 (i8x9x) disassembly: Properly decode names of directly addressed SFRs. This involves a major refactoring of the instruction execution/description unit to keep track of operand sizes and write-only destinations (since 8X9X maps numerous write-only SFRs to the same addresses as read-only SFRs). Correct operand size for immediate modes of ADDCB and SUBCB and indexed mode of MULB. Correct destination register for execution of the indexed mode of 2-argument ANDB. Correct assembler syntax of JBC and JBS (the bit specifier follows the register). . Added save state and miscellaneous other stuff . Save the int_pending register as well (but note that it is not actually cleared upon reset) . i8x9x: Added HSO stuff (interrupts & A/D conversion) and A/D interrupt . MCS-48 . Eliminated now-unneeded arguments from p1_r and p2_r handlers . Fixed critical bugs with P4-P7 reads in the emulation of the MCS-48 MOVD A,Pp instruction . Set lower 4 bits of P2 to input during (and after) MOVD A,Pp . Fixed length of flags display . MIPS 3: MIPS3 exception handling fixes: Nested exceptions shouldn't overwrite the EPC. Nested tlb exceptions go to the general exception vector. Removed breakpoint for tlb exceptions and branch to proper vector. . MOS Technology M6502: Allow debugger to step over CALLF instruction (m6502\m6502make.py) . Motorola M6801: Use DEVCB for ports; removed I/O space and MCFG macros. . Motorola MC68000 . Fixed andi, ori and eori instruction. From https://github.com/kstenerud/Musashi/commit/df0fb402a8042c964a70cb987fe6f27ff96952ef and a16bd2bb289ea2cdbb1ca11a997490774eb32b5e. . Improved/simplified chk2cmp2 opcode (m68000\m68k_in.cpp), fixes the helicopter in level 3 of Time Crisis can't be destoryed (ID 00777), the enemy laser is too short in the 3rd stage of Gunlock (ID 01920), the tanks in Tokyo Wars and the background seems to "skip" where it is supposed to scroll at the beginning of the 3rd stage in Elevator Action Returns (ID 01101). . MMU (m68000\m68kmmu.h) . Added Special Status Word (SSW) to exception frames . Throw MMU configuration exception if SRP/CRP is invalid . Deduplicated code to set buserror details. Factor out ATC lookup into pmmu_atc_lookup(). . Cleanups. Factor out TT register matching into pmmu_match_tt(). Simplify tt/fc matching. Removed dead code. Factor out table walking code. Replaced printf by logerror. This should be switched over to use LOG(), but can't right now because the header file is included directly in C++ classes. . Support short indirect descriptors and set MMU status flags in pmmu_atc_lookup(). This makes the (MESS) HP-UX 9 installer boot. Also tested that the following systems still work: Macintosh IIx with Mac OS 7 and HP-UX 7. . Don't try to read address bits in indirect descriptors as status bits and initialize m_mmu_tmp_sr before doing a table search. With this commit, everything required to run HP-UX 9 in mame is upstream. Tested the following machines with this mmu change: maciix with Mac OS 7, hp9k360 with HP-UX 7, HP-UX 9 and the HP-UX 9 installer. . Splitted m68881_ops() into subfunctions . Decode ptest and pflush (m68000\m68kdasm.cpp). This adds some more decoding to some of the MMU instructions. . Texas Instruments TMS9980A: Internalized clock divider . Texas Instruments TMS32025: Updated save_item . Zilog Z8681 CPU / Z8: Allow step-over with djnz (z8\z8dasm.cpp). When pc adjusted, move yellow bar (z8\z8.cpp). - SOUND . Atari C012294 POKEY . Return most recent m_ALLPOT during SK_RESET. Don't count POT counters as long as SK_RESET is applied, i.e. bit #0 and bit #1 of SKCTL are both clear. . Remember m_allpot_r_cb() value . Irem GA20 . Rewrote channel update to make data 0 act as sample terminator. Note: In all currently supported GA20 sample ROMs, samples are followed by 1 to 16 bytes with value 00 (depends on alignment). Thus I assume that this is a sample end marker. The "sample end" register might be used for something else (looping?). . Assumed keyon is at reg 6 bit 1 (not just any non-0 value), removed 2nd end of sample check, misc refactor and added notes. . Fixed frequency update algorithm . QSound (HLE): Saturate voice and output accumulators (The DSP16A accumulator has built in saturation). Fixes clipping in Super Puzzle Fighter II Turbo and possibly others (ID 07115). - DEVICE . Clock: Simplified clock_device (machine\clock.cpp) . DP8350 CRTC: More complete line-by-line emulation of timing outputs . Generic Cartridge Slot: Added default param to constructor so that it can be used without file extensions (generic\slot.h) . Intel 8243 I/O Expander . Fixed critical bugs with P4-P7 reads . Emulated the CS line, which will be useful for driving multiple 8243s. . Provided a separate callback for each 4-bit port . Eliminated space and offset arguments from p2_r and p2_w . Added save state . Release P2 output after completion of read operation . K054321 Maincpu-Soundcpu interface: Make it work on all speaker inputs, not just the first. . MC6840 PTM: Fixed dual byte mode once again. Two problems in dual byte mode: The high time flag is the same for all counters. High time flag is reset on each counter reload, but should only be reset if the timer is reload by the user. . Namco Custom . Namco C116 (Video Controller): Implemented device_palette_interface for internal palette . Namco System 2 ROZ (C102): Removed unnecessary device. Internalized gfxdecode (8bit data bus for ROM). . Namco System 2 Sprites (C106, C134, C135, C146): Get palette from graphics decode, avoiding redundant configuration. . Namco C123 (Tilemap): Internalized gfxdecode (Gfx layout is shared at all hardwares - 8bit data bus for ROM). Mask region. Implemented tilemap disable bit. . Namco C169 (ROZ): Internalized gfxdecode (Gfx layout is shared at all hardwares - 8bit data bus for ROM). Mask region. . Namco C355 (Sprites): Added support for double-buffered sprites, simplified configuration and cleaned up code . National Semiconductor INS8250 UART: Added interrupt line read handler for later use . K007121 Sprite/Tilemap Controller: Removed hackish implementation . Keyboard / Mouse . Emulated PS/2 keyboard/mouse controller . Skeleton driver for IBM Model M PC/AT and PS/2 keyboard . Polygon rendering: Initialize m_unit_bucket in constructor (video\poly.h). . PSX GPU: Copy the textures STP bit, which improves (MESS) Silent Hill (Sony PlayStation). . PSX GTE: Use count_leading_zeros() & count_leading_ones() instead of counting manually . Real Time Clock interface: Added leap year support (emu\dirtc.cpp) . SCSI: Disable debug. The default debug settings are filling up error.log pretty quick when booting SCSI machines like (MESS) hp9k_3xx. Disable debug in the default settings, it can still be enabled if some dev/user wants to debug NSCSI (machine\nscsi_bus.cpp, nscsi_cd.cpp and nscsi_hd.cpp). . TMS9902 ACC: Make timer interrupt work and added save state - bfmsys85.cpp: Added save state support, no idea why this was marked as SUPPORTS_SAVE. - blitz68k.cpp: Reduced code duplication and made state class members private as appropriate - chihiro.cpp: First step in using real devices with smbus - cinemat.cpp: Fixed save state regression - cps3.cpp: Implemented score layer row scroll effects, fixes 'JoJo's Venture' and 'JoJo no Kimyou na Bouken' combo meters (ID 06157). Cleaned up code. - crystal.cpp . Cleanup duplicates. Converted to use derived address maps and configured banking. Removed register_postload. Made class members private where appropriate. Improved device names and removed MCFG macros. Updated/Added information for CRTC operation. . VRender0 sound: Fixed naming. Removed MCFGs and unused. Added notes. - ddragon.cpp and ltd.cpp: Fixed regressions related to recent M6803 CPU changes - gaiden.cpp, spbactn.cpp and tecmo16.cpp . Correct sprite lag for Raiga - Strato Fighter (reference: https://www.youtube.com/watch?v=gKsYGqOfJyQ) and Final Star Force (reference: https://www.youtube.com/watch?v=cgj81VA7j_Y) . Tecmo 16-bit Mixer (video\tecmo_mix.cpp): Added mixing for text layer bitmap, made background pen blendable and removed MCFG macros. . gaiden.cpp and tecmo16.cpp: Cleanup gfxdecode duplicate. Correct sprite lags behavior. . tecmo16.cpp: Correct sprite lag and added notes - hyprduel.cpp and metro.cpp: Added missing save state to video\imagetek_i4100.cpp, fixes Mahjong Gakuensai 2 (Japan) save state regression. - itech8.cpp . Converted sound latch to generic_latch_8_device. Reduced runtime tag lookup. ACCESSING_BITS cleanup. Removed unnecessary GROM pointer. Make bankswitch reset to 0 is only affect when maincpu rom is banked. Splitted address map related to bankswitch. Removed unused and cleanup duplicates. Fixed spacing and naming. . Clean up rom loading and banking - itgamble.cpp: Added consistent hardware info and evolution of hardware over time. Confirmed producer and year for a few games that were missing it. - jpms80.cpp: Correct CPU/PSG types & clocks and minimize region length - model1/2.cpp: Modernised 'Sega Model 1 Sound Board' - mwarr.cpp and stlforce.cpp: Driver refactoring. Converted video code to a device. - namcofl.cpp: Implemented screen clipping and shadow. Fixed sprite banking. Confirmed XTALs. Removed unnecessary defines - namconb1.cpp . Correct sprite lags. Fixes garbage on the door of the "Shoot 14 criminals" stage in Point Blank (ID 01132). . Added raw screen parameters (Nebulas Ray reference: https://youtu.be/mAB66HhZNIM). Reduced code duplication and cleaned up code. - namcond1.cpp: Updated YGV608 VDP save state support, fixed Namco ND-1 games save state regression. - namcops2.cpp: Redumped superdbz DVD and confirmed gundzaft DVD dump - namcos1.cpp: Convert pointer into required_region_ptr. Reduced code duplication. - namcos2.cpp . Removed unnecessary memory banks. Added raw screen parameters. Fixed some namings. Removed MACHINE_START_MEMBER and MACHINE_RESET_MEMBER. Reduced unnecessary VIDEO_START_MEMBER. . Namco System 2 ROZ (C102): Removed unnecessary device. Internalized gfxdecode (8bit data bus for ROM). . Namco System 2 Sprites (C106, C134, C135, C146): Removed unnecessary device - namcos21*.cpp: Improved member names and tags and cleaned up code - namcos22.cpp . Added viewmatrix reflection. This fixes Alpine Racer 2 character selection screen, Rave Racer and Ridge Racer 2 rear-view mirrors, secret mirror track in Rave Racer, missing title logo graphics in Ridge Racer (ID 06164) and the speedometer graphics in Dirt Dash (ID 07111). . Get rid of scanline timer for DSP IRQs . Make MCU IRQ timer trigger 3 times per frame instead of every scanline . Fixed possible array out of bounds reads at simulate_slavedsp . Small optimization and misc updates. Assumed the 40MHz XTAL is for the DSPs. . Redo video params. Added rear_center speaker. Fixed coin handling. Moved video TODO over to main driver file. Shorthand variable types. . Added savestates and render from pointram (Ridge Racer waving flag) . Improved S22 fade, SS22 fog (Dirt Dash, Aqua Jet and Time Crisis) and SS22 spot (Dirt Dash and TestMode). . Fixed stuck poly layer. Added preliminary posirq and other small changes. Improved window clipping. . Show Alpine Racer 2 titlescreen animation, preliminary. . Improved/simplified chk2cmp2 opcode (m68000\m68k_in.cpp), fixes hitboxes for helicopter in Time Crisis (ID 00777) and tanks in Tokyo Wars. Promoted Tokyo Wars to working. . Added/documented SS22 outputs . Increased SS22 quantum a bit more, controls were still unresponsive sometimes. - namcos23.cpp: Rapid River wants auto-inc in some way here (NGs point ROM self test otherwise) - phoenix.cpp: Don't configure_entries and set_base on the same bank (see MT07116) - segas24.cpp: Cleanups. Added save state support. Cleanup duplicates. ACCESSING_BITS cleanup. Fixed namings. Reduced some MCFGs. Splitted machine config/address map related to ROM board. Removed register_postload. - taito_f3.cpp . Verified that Puchi Carat's Asia cart ROMs match the overseas dump . Improved/simplified chk2cmp2 opcode (m68000\m68k_in.cpp), fixes enemy laser is too short in the 3rd stage of Gunlock (ID 01920). - taitosj.cpp: Added missing save state, fixes save state regressions in various games. Also removed MCFG macros. - targeth.cpp: ACCESSING_BITs cleanup. Fixed naming. Reduced Runtime tag lookup and code duplication. - tmspoker.cpp: Clock divider and ROM loading fixes - tourvis.cpp: Dumped BIOS versions V4-42 and V4-51 - toypop.cpp: Improved cocktail mode. Fixed Toypop 'Flip Screen' dipswitch. Misc cleanup. - twinkle.cpp: Updated documentation to match data gleaned from kits - warpwarp.cpp: Fixed Player 2 shot (or ball) offset in cocktail mode (video\warpwarp.cpp) - Bad Dudes vs. Dragonninja: Dumped 68705 MCU for clone Dragonninja (bootleg with 68705). Not hooked up. - Combat School: Added video and scroll memory to save states - Contra: Fixed sprite RAM mapping - Double-Up Poker (Jubilee): CPU should run slow, but not that slow. - Flipper Jack . Reimplemented video using CRT controller row update method . Fixed cocktail mode and changed rotation from 90 degrees to 270 degrees. . Modernized interrupts and cleaned up code - Gardia: Documented that Gardia (317-0006) is Sega factory conversion - Glass: Simplified code and Gfxdecode, removed duplication and improved region names. - GTI Club: Corso Italiano: Dumped memory card and ATA ID for clone (ver EAA). Disk media check is ok but game asks for password. - Happy Fish: Replaced driver with (MESS) Mini2440, allowing it to boot from NAND Flash. Correct Flash IDs and Flash switching, bootloader now loads Linux kernel and then nothing happens. - Kosodate Quiz My Angel: Added PCB layout - Lucky 9: Better guess at CPU type. Added AY8910, RAMDACs and hack in a boot jump. - Mad Ball: Updated information about a Spinner Controls Daughtercard and added DIP locations for Mad Ball - Monza GP . Added DP8350 CRT controller . Experimental visible area offset for Monza GP. 11-line offset makes attract mode look symmetric. Added imperfect graphics and colors flags. - Moon Patrol . Fixed sprite priority . Fixed position of the background (distant mountains, hills and cityscape were different from the real hardware) . Fixed cross-hatch test pattern and flip screen. Real hardware: http://youtu.be/F3_q-AN4AQM - Mouse Trap: Identified P1/P2 Start LEDs - MX5000: Fixed sprite-sprite priorities and removed hackish implementation in K007121. Sprites are double buffered. Fixes the ground bases has the highest priority value meaning that planes and bullets goes behind it (ID 00430). - One + Two: Small cleanups. Added PALETTE_DECODER for color decoding. - Operation Wolf: set_input_gain on speaker device overrides the one set on sound route, this makes it look less misleading now. - Pac-Land: Fixed incorrect value of 'Bonus Life' dipswitch - Pinball Action: Official Tehkan board maincpu is 315-5128. Added XTALs. - Space King 2, Sprint 8 and Syusse Oozumou: Fixed save state regression - Super Tank . Put this back up to speed, using confirmed XTAL value. Note: XTAL on CPU board is marked 20.790 on one PCB, 22.118 on another. . Added addressable latch and clean up names a little . Added provisional screen parameters; make interrupt acknowledgment more plausible - TelePachi Fever Lion: Added PCB layout - Tetris: Added PLDs to clone (bootleg set 2) - TouchDown Fever: Fixed 'Allow Continue' dipswitch (ID 07110) - Toypop: Fixed reversed "Flip Screen" dipswitch - Ultimate Mortal Kombat 3: Get rid of impefect sound flag which was added because of a (now known) Bugs That Aren't Bugs - Vega . Added DP8350 CRT controller . Misc cleanups (still nowhere near clean enough) - Video 21: Assumed there is no deal button, but instead vblank status. Added win buttons, preliminary sound, hopper and color overlay (Game now playable). - Yosaku To Donbei: Added color overlay (ID 07126) - Dipswitch fixes in pacland.cpp, paradise.cpp, snk.cpp, toypop.cpp and video21.cpp - Fixed rom names in namcond1.cpp, segas16a.cpp, system1.cpp and video21.cpp - Description changes of Arm Champs II (ver 1.7), Arm Champs II (ver 2.6), Excalibur (Mdm) (MPU4, V1.4), Fenix (Orio bootleg of Phoenix), Frogger (Hermatic, bootleg on Scramble hardware from Video Dens), Grand Prix Star (ver 2.0), Grand Prix Star (ver 3.0), Mighty Warriors (24/1), Rapid Hero (Media Trading), Ms. Pac-Man ('Made in Greece' bootleg, set 1), Sanrin San Chan (Japan, 315-5xxx), Spatter (315-5xxx), Super Derby (Playmark, v.07.03), Super Derby (Playmark, v.10.04), Super Derby II (satellite board), Super Pang (World 900914, bootleg, set 1), Twins (Electronic Devices license, set 1), Twins (Electronic Devices license, set 2), WEC Le Mans 24 (v2.00), WEC Le Mans 24 (v2.00, hack), Witch (with ranking), Witch (Sega license), Worldcup '90 (hack), Zero Time (Petaco S.A.) and Zorton Brothers v1.00 (Los Justicieros) - Renamed (armchmp2) to (armchmp2o2), (landmakr) to (landmakrj), (raphero) to (rapheroa), (strahl) to (strahlj), (strahla) to (strahlja), (twins) to (twinsed1), (twinsa) to (twinsed2) and (zortonbr) to (zortonbr_100) - MAME . VIDEO RENDERING SYSTEM . Fixed BGFX not rendering in multiple windows. Internal UI is still glitchy (osd\windows\window.cpp). . HLSL Color Transforms and 3D LUT . Removed broken scanline uniform from post_pass . Added 3D LUT to HLSL . Allow individual LUTs for screen and UI . Added individual phosphor color conversion for HLSL: Shader for converting xyY3 to sRGB (hlsl\chroma.fx). Minor changes to emphasize idea that phosphors are color agnostic (hlsl\phosphor.fx). Conversion from signal RGB to xyY3 (hlsl\post.fx). . Added phosphor examples and update presets . Port 3D LUT and phosphor color shaders to BGFX . Get rid of LCD_FRAMES_PER_SECOND (emu\video.h; (MESS) comquest.cpp, lynx.cpp and ssystem3.cpp) . Fixed compilation with libjpeg for environments where TRUE and FALSE aren't preprocessor macros (emu\rendutil.cpp). . DEVICE: Removed MCFG usage in metro.cpp, machine\steppers.h, te7750.h, tmp68301.h, upd4701.h, upd4992.h, video\ramdac.h and RS232 . Invalidate memory access caches when removing watchpoints to prevent crashes on subsequent accesses to the same memory areas (emu\emumem.cpp) . Trying to avoid confusion with the length of the container, or with the number of empty slots (util::fifo.queue_length(); util\coretmpl.h) . UI: Improved search behaviour in file selection menus (ui\filesel.cpp) . PLUGINS . Use hex values for mask (plugins\portname\init.lua) . Added softlist parent loading and import tag (plugins\portname\init.lua) . Restored erroneously-removed game-specific INI option reversion between runs. Fixes specialized ini file settings get retained on a second game launch, instead of using raster.ini or mame.ini (ID 06171). . Fixed command line parsing for the long form of the first instance of a media option (emu\emuopts.cpp) . Started commandline documents update to dismiss items no longer in source and start listing recently added commands. More work to come. . Fixed broken document structure (docs\source\techspecs\nscsi.rst): Those chapter numbers are auto generated by sphinx. Fixed the chapters not been bold like the rest of the documentation. Fixed chapter numbers not in sync with the rest of the documentation. Changed the last two chapters to keep up with the document consistency. Fixed bold for nscsi_full_device. - SDLMAME: Disable setting the SDL_WINDOW_OPENGL extra flag if -video none is set. This allows a true headless run when the environment variable SDL_VIDEODRIVER=dummy is set prior to mame/mess execution. - MAC OS X . Support for MAC OS Mojave (10.14) (build\gmake.darwin\genie.make) . Fixed compiling with SDL 2.0.8 and later on MAC OS - VGM player: Support extra clocks in extended header, for cases like Super Locomotive that has two chips with different clock speeds. - Compiling . Fixed compile error on Linux with NO_USE_XINPUT=0 (emu\save.h) . Allow undefined GL symbols for WebAssembly target (scripts\src\main.lua) - Debugger . Fixed watchpoints for CPUs with a negative address shift (debug\debugcpu.cpp) . Correct endianness of TMS9980 and TMS9995. Konami CPU is big-endian (tools\unidasm.cpp) . Added STmicro ST6228 (st62xx) to UNIDASM 0.202 - New games: Pitapat Puzzle - New Working games: Air Combat 22, Cart Fury and Lucky Ball 96 - New Non-Working games: Video 21 - New clones: 800 Fathoms (older), Botanic (English / Spanish, set 2), Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 2), Defend the Terra Attack on the Red UFO (bootleg, set 2), Four Trax (Japan), Frogger (Video Dens, bootleg on Scramble hardware), Gals Panic 4 (Europe), Hard Head 2 (v2.0, Music Program v2.0), The House of the Dead (prototype), Jongputer, Lucky Ball 96 (Ver 3.01), Lucky Ball 96 (Ver 4.01), Mandanga (bootleg of Mandinga on Galaxian hardware, set 1), Mandanga (bootleg of Mandinga on Galaxian hardware, set 2), Meteorite (Proel bootleg of Asteroids), Midnight Landing (Japan), Midnight Run: Road Fighters 2 (JAD, Japan v1.10), Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware), River Patrol (Japan, unprotected), The Simpsons (4 Players Asia), Star Castle (cocktail), Tehkan World Cup (1986 year hack), Toki no Senshi - Chrono Soldier (MC-8123, 317-0040), TouchDown Fever 2 (bootleg), Vendetta (World, 4 Players, ver. ?) and WEC Le Mans 24 (v2.01) - New PinMAME games: Diner (LF-2) French - New drivers: namcos21_c67.cpp, namcos21_de.cpp and video21.cpp - Removed games: River Patrol (bootleg set 1) - New devices: gt64111, mp1210, namco_c123tmap, namco_c169roz, namco_c355spr, namco_de_pcb, namcos21_3d, namcos21_dsp_c67_device, namcos21_dsp_device, namcoc65, namcoc67, namcoc68, namcos2_roz, namcos2_sprite, pssj3, r4000be, r4000le, r4400be, r4400le, rs232_mouse_hle_logitech, rs232_mouse_hle_wheel and rs232_mouse_hle_rotatable - MIPS 3/4 CPUs: Implemented DMULT and DMULTU. Added R4000 and R4400 variants. - Mitsubishi M740 CPU: Make SET instruction in Mitsubishi M740 subfamily actually affect execution (cpu\m6502\m740.h). This fixes missing P1/2 coin buttons in Steel Gunner 2 (MT07091), and may fix subtle problems in other drivers as well. - PSX CPU: Converted PSX SIO to DEVCB3 - Zilog Z8681 CPU / Z8 CPU . Fixed detection of stack type and JP @ and CALL @ instructions (cpu\z8\z8.cpp) . Added DA instruction (Decimal Adjust). Fixed numerous bugs. Now all 4 machines in (MESS) jtc.cpp are pretty much working now. - Exidy SFX sound: Get rid of double TMS5220 device read - N2A03 APU sound: Removed read/write trampolines and zero $4015 at reset https://wiki.nesdev.com/w/index.php/CPU_power_up_state - SN76496 sound . Renamed NCR7496 to NCR8496 for Tandy 1000TX and similar machines based on PCB pictures and service manual parts list. . Added support for PSSJ-3 ASIC used in later Tandy 1000 machines. Fixed noise generatior behavior in NCR8496 and PSSJ-3 to match hardware tests. - TMS5220 sound: Removed read/write handler trampolines - CD-ROM: Accept .toast as a synonym for ISO images (util\chdcd.cpp) - EEPROM: Added AM28F020 - Floppy: Sectors must be read even if it contains Deleted Mark. FDC will read the data if SK bit is not set (formats\dsk_dsk.cpp). Fixes some disk games gives error when running in (MESS) Amstrad CPC6128. - Intel 8251 USART: Provided standard read/write handlers and eliminated memory space as argument - MC6840 PTM . Fixed output pins in Dual 8 bit mode. In Dual 8 bit mode the output isn't inverted on every TC, instead it's low until the count reaches 0xff, and high afterwards. . It's generally not a great idea to do integer ops on bool - it implicitly casts to/from int and may perform poorly (machine\6840ptm.cpp; ptm6840_device::timeout). - Mouse . Re-write serial mouse support . Splitted Microsoft mouse into separate two-button (Microsoft), three-button (Logitech) and click wheel devices. . Added Microsoft wheel mouse. Made Mouse Systems mouse behaviour better match early Mouse Systems models. . Added "rotatable" Mouse Systems mouse support (untested due to lack of software) . Simplified code and eliminated timers . X/Y translation and buttons works for all devices. The wheel on the wheel mouse seems to be transmitting the right data, and CuteMouse detects the wheel as being present, but no software seems to support it properly. Software supporting the Mouse Systems "rotatable" mouse is very rare - typically people just set the DIP switches on their M-1 for "non-rotatable" mode. A standard mouse driver will see the "rotatable" mouse moving two mickeys for each count, and move eratically on rotation. The "rotable" mouse is poorly tested due to lack of software. . MAME doesn't have a proper input type for a mouse wheel, and it doesn't seem to be possible to map the host mouse wheel to an axis when configuring inputs. The default mapping ends up assigining the wheel or rotation to one of the translation axes, which is very unhelpful. - PowerVR 2 . Store different types of polygons in different lists . Make opaque polygons opaque. Previously, MAME's PowerVR 2 implementation treated all polygons as transparent. This resolves missing graphics in certain games which were rendering opaque polygons with alpha values which would make them transparent if they weren't on the opaque list. In the future, punch-through polygons will also require special consideration. These are polygons which support transparency but not blending (every pixel is either entirely transparent or entirely opaque). For now, they're still treated the same as transparent polygons. - PSX GPU . Added textured dot rendering (video\psx.cpp). Fixed building with PSXGPU_DEBUG_VIEWER. . Implemented transparent dots & lines and declare variables on first use. Fixes the visual effect for the UI box on the stage clear screens (ID 06448). . Implemented GPU STP draw and checking, which is used on Aquarush for water effects. - SCSI Hard Disk: Added FORMAT_UNIT command to machine\nscsi_hd.cpp - Seta SETA001 Sprites: Removed a sprite drawing kludge - Signetics SCN2674 AVDC: Added hack to allow (MESS) PC-X to get its first interrupt and make PC-X display work again in new resolution - Timekeeper: Switched to use the new logmacro system. Fixes issue that could cause updates to be missed. - Z80 DART: Default RXD to 1 to eliminate spurious break condition. Correct CTS level in RR0 after "Reset External/Status Interrupt" command. Allow immediate inactivation of RTS output when nothing is being transmitted. - 1945kiii.cpp: MCFG cleanup - artmagic.cpp: Reduced runtime tag lookups. Cleanup naming etc. - astrocde.cpp: Fixed bad format string (includes\astrocde.h). Fixes a debug assertion in Ten Pin Deluxe (ID 07090). - bartop52.cpp: Get rid of required ram_device in Atari 8-bit common state - it isn't required/used by Bartop5200 driver and get rid of bogus RAM device in Bartop5200 driver. - by35.cpp: Syncing with PinMAME. Added new cpu2 rom to Dark Shadow and Super Bowl. Marked Top Pin sound1 rom as BAD DUMP. - coolpool.cpp: DAC type identification - crospang.cpp . Fixed tile banking which should fix some Bestri bugs . Fixed Bestri gfx1 rom loading - dkmb.cpp: Added notes - dreamwld.cpp: Fixed rowscroll - fuukifg2/3.cpp: Fixed damage/tilemap buffer offset - gaiden.cpp: Reverted type of still-undumped MCU. Note: The location of the protection MCU (right next to the DIP switches, and not populated on Ninja Gaiden) is marked uPD8049 on the PCB. This has found to actually be a 8749 (internal EPROM type) on Raiga and Tecmo Knight/Wild Fang. - gal3.cpp, namcofl.cpp, namconb1.cpp, namcos2.cpp and namcos21.cpp . Converted Namco C65, C67 and C68 to devices for namcos2.cpp and namcos21.cpp. Some cleanup. . Use configured banking for audiocpu for namcos2.cpp and namcos21.cpp . Splitted Namco C169 ROZ chip, C123 tilemap chip and C355 sprite chip from namcos2 shared state by making them devices. . Untangle gal3, namcofl, namconb1 and namcos21 from namcos2 now that things are devices . Splitted namcos21.cpp into 3 drivers as the different configurations really are entirely different boardsets with similar components, not a real 'system' emulated entire PCB set for Driver's Eyes (http://www.tvspels-nostalgi.com/Bilder/PCB/Namco/driverseye_cage_inside.jpg) although how the PCBs communicate is not yet known (C139 maybe, which might also be an MCU). . Survived F3 resets without crashing or breaking the 3D (machine\namcos21_dsp_c67.cpp) . Moved 3D code into device (video\namcos21_3d.cpp). Splitted DSP support code into device (machine\namcos21_dsp.cpp). Moved code for C67 based DSP PCB into it's own device (machine\namcos21_dsp_c67.cpp). . Added default NVRAM to Dirt Fox and Driver's Eyes, Winning Run, Winning Run '91 and Winning Run Suzuka Grand Prix . Fixed credit screen doesn't update and only shows 1 in Finest Hour (ID 03797) (ID 07029) . Added new maincpu roms to clone Four Trax (US?, censored banners) and use correct slave roms. The old dump of this set only differed in having a 0x00 fill in the 2nd half instead of a 0xff fill. . Give Galaxian 3 some DSPs. Splitted C355/palette/GFX decode/video functions related to obj-board and each screen. Added save state. Minor cleanups. . Fixed Lucky & Wild damage due to bad ram size assumptions . Added PLDs to clone Rolling Thunder 2 (Japan) . Restored CPU yield hack for Solvalou - namcos22.cpp: Fixed SS22 text layer alpha blending (eg. Alpine Racer highscore table and Air Combat 22 radar). Added limits to Air Combat 22 analog controls, also let's just mark the game as working. - galaxian.cpp . Start moving memory stuff out of init functions and into address maps . Converted driver to use MCFG_SCREEN_VBLANK_CALLBACK . Fixed protection in 'The End'. 'The End' now shows the HIT UFO screen after the CHANCE TIME round. . Correct Jump Bug background hardware behavior, as per real hardware. Stars actually show up until the 232nd pixel. . Correct bullet behavior and protection in Scramble. Shells are now two pixels long and have been verified on real hardware. . Correct background hardware on SF-X and Monster Zero to now show stars and RGB backgrounds. Colors may not be correct, and the current schematics scans are not easy to read. . Moved Scorpion's extra ROM and sound handlers into address maps . Added correct MACHINE_CONFIG_START to clone Frog (Galaxian hardware) . Added necessary extra sprite RAM to address map for Time Fighter (Time Pilot conversion on Galaxian hardware) and PSG reads for good measure. . Fixed (?) clocks on Jungler (Subelectro, bootleg on Scramble hardware). The Subelectro 113 board has no XTALs, and I am assuming the CLK lines come from the pixel clock on the Konami L-1200-2 board. . Correct sync and machine setup for Take Off, Explorer and Amigo (bootleg of Amidar, set 2). Sidam bootlegs of Konami games have a 12MHz pixel clock with video being scaled by two pixels instead of 3. All are now correctly set up as per the 12 MHz pixel clock. . Mark Explorer and Amigo (bootleg of Amidar, set 2) as MACHINE_IMPERFECT_SOUND. Explorer requires the same sound timer as Take Off, which I have no idea how it works. The latter probably has a similar case, although it might be different from Explorer. . Mark Take Off as MACHINE_WRONG_COLORS. See the reference video for more; some colors that are purple with the default palette_init are green on real hardware. . Given Take Off's hardware hierarchy, correct the year from 1980 to 1981 as a guess. . Turpin (bootleg on Scramble hardware) is likely more derived from Super Cobra hardware than Scramble hardware. Changed the set description to match this statement. - iteagle.cpp, seattle.cpp and vegas.cpp: Changed readback value of PCI config 0x40 based on Voodoo card type (video\voodoo_pci.cpp). Fixes NFL Blitz hangs on a black screen if the power on self test is enabled (ID 06874). - konamigq.cpp, konamigv.cpp, ksys573.cpp, namcos11.cpp, namcos12.cpp, taitogn.cpp, twinkle.cpp and zn.cpp: Moved imperfect graphics flag down into PSX GPU device (video\psx.h) - konamigx.cpp: Updated documentation - lethalj.cpp: Reduced runtime tagmap lookups and improved function and region naming - mcr.cpp and mcr3.cpp: Set midway_ssio_device pointer to NULL. This fixed debug assertion failed! Expression: m_target (ID 07085). - mcr68.cpp . Fixed MC6840 PTM output pins in Dual 8 bit mode. In Dual 8 bit mode the output isn't inverted on every TC, instead it's low until the count reaches 0xff, and high afterwards. This fixed Xenophobe doesn't start. . Mapped MC6840 to lower data bits on all MCR68 games, which matches the Blasted schematics. I used cswidth as different games write at odd or even addresses, even though the boards look visually similar. Byte writes will work in either case as the MC68000 puts the same data on the upper and lower part of the bus. Reads are a mix of odd and even addresses, clone 'International Team Laser' and Spy Hunter II exclusively read at even addresses. It's unclear whether this is a bug in those games or not. - megatech.cpp: Added cart label numbers from manual - meyc8080.cpp: Replaced Intel 8080 CPU1 with Intel 8080A - micro3d.cpp: Fixed all sets hang during the boot process (DCD polarity input) (ID 07096) - midzeus.cpp: MCFG removal and other cleanup - model1.cpp: Fixed netmerc, swa and wingwar crashes due to reading from nonexistent memory region. This fixes swa crashes with access violation after a while (ID 06991). - mpu4vid.cpp: Properly configure CRTC clock and screen timing parameters - neogeo.cpp and neopcb.cpp . Dumped sp1-u4 BIOS from a US 4-slot MVS . Moved out-of-place section to where it was before. Removed unused defines. Eliminated register_postload. Cleanup naming. Removed some MCFGs. . Fixed crash when fix BIOS is not exists (video\neogeo_spr.cpp) - nmg5.cpp: Added copybitmap_trans for bitmap layer. Cleanup duplicates/ACCESSING_BITs and filling bitmap layer. - psikyo.cpp: Fixed rowscroll (video\psikyo.cpp). This fixes bad glitch graphic on some stages in Tengai and clone (ID 07076). - raiden2.cpp . Group Raiden 2 / DX sets by code revision so that we can more easily see which just differ by region byte, make it clear what features determine game type (normal, easier, harder). . Fixed OKI6295 clock and pin7 level for Zero Team and clones New Zero Team and Zero Team 2000 - seta2.cpp: Added P0-113A PCB layout and note about undumped version of Guardians using this board - taito_b.cpp: Removed MCFG_SCREEN_VBLANK. One less callback to configure (video\tc0180vcu.cpp). - taitogn.cpp and zn.cpp . ZOOM ZSG-2 (sound\zsg2.cpp): Properly reset emphasis filter state at key-on . Removed leftovers in audio\taito_zm.cpp . Implemented transparent dots & lines, which fixes weird background color for score recap in Usagi (ID 06258). - vamphalf.cpp . Changed the common base refresh rate to 59Hz and added a note of measured sync clocks for 'Cool Minigame Collection' . Complete redump of clone Cool Minigame Collection (Italy) - vegas.cpp . MCFG removal and define device clock and use derived clock for UART (machine\vrc5074.cpp) . Promoted Cart Fury to working . Removed no sound flag from clone Gauntlet Legends (version 1.2) as I couldn't find any major sound bugs in recent versions . Added imperfect sound flag to sf2049 and clones, nbashowt, nbafl and nbagold (previous flagged as no sound). - vpoker.cpp: 6809 type identification - yunsun16.cpp: Cleanup tilemap scanning and duplicates. Reduced runtime tag lookups and unused members. Fixed notes. - 3 Super 8 (Italy): Fixed palette related crash and removed MCFG macros - Aquarush: Implemented PSX GPU STP draw and checking, which is used on Aquarush for water effects. - Beast Busters . Fixed sprite priority. Credit to Daniel Filner for information. Palettes 0xc-0xf on 2nd sprite chip behind the tilemap - confirmed on level 2 and matches real hardware video. Removed imperfect_graphics flags as no open bugs. . Use single pass sprite render with priority buffer in case of cut-out effects . Removed imperfect sound. Reference video at https://www.youtube.com/watch?v=i3txCb5tpkc - The Bounty: Added notes about (set 2) - Devastators: Added MACHINE_UNEMULATED_PROTECTION flag - Dog Fight: Dumped PROMs for clone (Orca, prototype) - Dragon Buster: Fixed title logo displaying (ID 07074) - Funny Bubble: Converted driver to tilemap. Added address_map_bank_device for banked VRAM. Cleanup OKI banking and fixed OKI clock related to On-PCB XTAL. Added paletted decoder member for palette. Reduced runtime tag lookups. Fixed naming. - Guardian: Added missing PROMs to clone Get Star (bootleg set 1). Updated an already added PROM (was different on the PCB), added a PAL as NO_DUMP (protected) and updated ROM labels and verified some ROMs that were corrupt when set was originally dumped. - Guardians / Denjin Makai II: Documented undumped Guardians on the P0-113A PCB and provided a PCB layout for the P0-113A PCB - Hot Chase: Fixed debug palette assertion - Ikari III: Added PAL dumps to clone (World, Rotary Joystick) - Lucky Ball 96 . Banking, inputs, demux and a lot of work to get the game working properly. . Rewrote of the whole multiplexed input system as requested, and standardized each input. Also explained some things about the hardware behaviour. Cleaned up the driver. Added DIP locations and ASCII diagram of Inputs/Outputs through 3x 4099 addressable channels and 3x 4512 data selectors. . Changes to the memory map and banking after an exhaustive hardware analysis - Midnight Landing: Updated PCB layout and derive clocks based on actual OSC - Mighty Monkey: Fixed mirroring for video writes for clones Mighty Monkey (bootleg on Scramble hardware) and Mighty Monkey (Kaina Games, bootleg on Scramble hardware). Score is now displayed correctly. - Operation Wolf . Moved C-Chip simulation out of driver and cleaned up code. . Added speaker volume control (global fade in/out at intermissions) and ADPCM sample volume control . Use Z80 for clone Operation Bear (bootleg of Operation Wolf) to read inputs instead of directly mapping them. - Pac-Land . Fixed the difference with real hardware: Fixed incomplete priority of sprites on foreground and sprites could not be displayed at the bottom of the screen. . Changed driver to approach real hardware behavior - Pipi & Bibis / Whoopee!!: Bootleg clone has different clocks - Primal Rage 2: Hooked up watchdog - Quest of D Oukoku no Syugosya: Brute forced security key - R-Type II: Added PAL dump to clone (Japan) - River Patrol: Added correct gfx2 rom to parent set - Speed Ball - Contest at Neonworld: Fixed P1 START key - Steel Gunner 2: Make SET instruction in Mitsubishi M740 subfamily actually affect execution (cpu\m6502\m740.h). This fixes missing P1/2 coin buttons in Steel Gunner 2, and may fix subtle problems in other drivers as well (ID 07091). - Super Shanghai Dragon's Eye . Improved video mixing and palette handling. This fixes sprite priority bug with the ingame message boxes (ID 05904) and black sprites in some cutscenes (ID 06020). . Fixed OKI clock/pin7. Reference video at: https://www.youtube.com/watch?v=buCb-exoJWo . Added save state support and removed MCFG macros - Target Hits: Fixed Player 2 Light gun control (ID 07092) - Thunder & Lightning: Restored (bootleg with Tetris sound) to previous working state - Tumble Pop . Improved documentation for clone Tumble Pop (bootleg with PIC) . Gave clone Tumble Pop (Playmark bootleg) it's own memory map, adjusted spriteram location. - Valtric: Redumped gfx3/text rom vt_07.bin. The rom was overdumped (although both halfs were not identical, having two different bytes). The rom socket on the PCB was labeled as "27128", pointing that the new size is the right one. - Zen Nippon Pro-Wrestling Featuring Virtua: Clone (T 971123 V1.000) runs only with Taiwanese BIOS - Fixed year info for chessc2 (ID 05059), denjinmk and heuksun - Dipswitch fixes in crospang.cpp, lastduel.cpp, luckybal.cpp, route16.cpp and vegas.cpp - Fixed rom names in cclimber.cpp, circus.cpp, mlanding.cpp, model1.cpp, model2.cpp, seta2.cpp, slapfght.cpp and tumbleb.cpp - Description changes of Air Combat (AC2, US), Air Combat (AC1, Japan), Botanic (English / Spanish, set 1), Bubble Trouble - Golly Ghost 2 (World, Rev B), Bubble Trouble - Golly Ghost 2 (Japan, Rev C), Chess Challenge II, Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 1), Cyber Sled (CY2, World), Cyber Sled (CY1, World?), Defend the Terra Attack on the Red UFO (bootleg, set 1), Diner (LA-4), Diner (LA-3), Diner (LU-1) Europe, Diner (LU-2) Europe, Dirt Dash (Rev. DT2 Ver.A, World), Driver's Eyes (Japan) (1992/01/10, Main Ver 2.1, Sub Ver 1.1), F-1 Super Battle, Four Trax (US?, censored banners) Frogger (Coin Music, bootleg on Scramble hardware), Hard Head 2 (v2.0, Music Program v2.4), Major Havoc - Return to Vax, Meteorites (VGG bootleg of Asteroids), Raiden II (easier, Germany), Raiden II (easier, Japan), Raiden II (easier, Korea), Raiden II (easier, US set 1), Raiden II (easier, US set 2), Raiden II (harder, Raiden DX hardware, Korea), Raiden II (harder, Korea), RollerCoaster Tycoon (ID 05881), Solvalou (SV1, Japan), Starblade (ST2, World), Starblade (ST1, Japan), Toki no Senshi - Chrono Soldier (prototype?), Turpin (bootleg on Super Cobra hardware), unknown MP-200 pinball game, Winning Run (World) (89/06/06, Ver.09), Winning Run '91 (Japan) (1991/03/05, Main Ver 1.0, Sub Ver 1.0) and Winning Run Suzuka Grand Prix (Japan) (89/12/03, Ver.02) - Renamed (cybsledj) to (cybsleda), (galpani4) to (galpani4j), (luckybalc) to (luckybald), (luckybalb) to (luckybalc), (luckybala) to (luckybalb), (luckybal) to (luckybala), (simpsons4pa) to (simpsons4pe), (tokisens) to (tokisensa), (weclemanb) to (weclemanc), (weclemana) to (weclemanb) and (wecleman) to (weclemana) - MAME . VIDEO RENDERING SYSTEM . HLSL . Apply scanline effect before defocus effect and moved scanline effect into separate shader. Port scanline modification to BGFX. . Fixed not set default uniforms for vector pass (render\d3d\d3dhlsl.cpp) . A better way of doing scanline timers (machine\timer.h; (MESS) apple2e.cpp) . Generate layouts for dual-screen machines rather than loading dualhsxs.lay. This ensures aspect ratio is correct for non-4:3 screens (emu\render.cpp). . Allow watchdog timer to take any tag-like for the screen tag rather than only C strings (foodf.cpp, galaga.cpp, gottlieb.cpp, grchamp.cpp, mcr3.cpp, missile.cpp, polepos.cpp, rampart.cpp, sbrkout.cpp, sprint2.cpp, sprint4.cpp, tecmosys.cpp, toobin.cpp and ultratnk.cpp) . Fixed palette-related asserts in ddragon.cpp, efdt.cpp, peplus.cpp, royalmah.cpp, spoker.cpp, system16.cpp, taito_h.cpp and wardner.cpp . Replaced a fail-safe in util\palette.cpp with an assert. Expect regressions, so better to get it out of the way now. . Added read functions for paletteram_ext (emu\emupal.cpp) . DEVICE . Fixed ioports/membanks in internal maps (emu\device.cpp and emumem.cpp) . Fixed unmapped values with subunits (emu\emumem_heu.cpp) . Removed MCFG usage in hotstuff.cpp, micro3d.cpp, machine\i2cmem.h, i8212.h, i8243.h, i8251.h, i8255.h, i8257.h, i8279.h, intelfsh.h, ins8154.h, ins8250.h, iteagle_fpga.cpp, k033906.h, k053252.h, k054321.cpp, k056230.h, latch8.h, m6m80011ap.h, mb14241.h, mb3773.h, mb89363b.h, watchdog.h, wd33c93.h, mc146818.h, mc2661.h, v3021.h, x76f041.h, x76f100.hm z80ctc.h, z80daisy_generic.h, z80dart.cpp, z80dma.cpp, z80pio.h, z80scc.cpp, z80sio.h and video\v9938/v9958.cpp . Don't abuse object finders for things that can't be found at object resolution time . Separate out screen device in konamigq.cpp, konamigv.cpp, ksys573.cpp, namcos10.cpp, namcos11.cpp, namcos12.cpp, psx.cpp, taitogn.cpp, twinkle.cpp and zn.cpp . PLUGINS: Fixed memshares and aligned search option in plugins\cheatfind\init.lua . Eliminated savestates register_postload in sound\msm5232.cpp, okim6376.cpp, spkrdev.cpp and vlm5030.cpp . Eliminated register_postload from video\k052109.cpp, k053251.cpp, k054156_k054157_k056832.cpp, pc080sn.cpp, tc0080vco.cpp, tc0100scn.cpp, tc0110pcr.cpp, tc0480scp.cpp and ygv608.cpp . Network: Changes to make (MESS) InterPro networking work on Windows with the TAP-Windows6 driver: Pad short Ethernet frames and append FCS (Windows-only until Linux taptun behaviour is verified) (netdev\taptun.cpp). Fixed bugs in carry flag handling, prefer sign bit for tests (clipper). Introduced somewhat realistic delays into network transmit and receive paths. This version works by adding functions to device_network_interface which enable a device to be informed when the transmit or receive completes. The delay is only crudely approximated based on the specified bandwidth and the number of bytes being transmitted, but it should be good enough in practice. Existing drivers should not be impacted by these changes; overriding the new functions (and no longer overriding recv_cb) is necessary to obtain the new behaviour. Added transmit/receive delay timers, handlers and logic (emu\dinetwork.cpp). Added the ability to start the receive timer (osd\osdnet.cpp). . Software List: Fixed displaying of software lists title images (ui\selmenu.cpp) (ID 06998) . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . Multi-Language: Updated Korean translation translation . Added missing short commands (docs\source\commandline\commandline-all.rst) - VGM player . Added support for HuC6280, Sega 32x, SN76496, YM2203, YM2608, YM2610, YM2612 and Y8950 sound . Added detection of bad NES rips where no audio channels are enabled. Updated messages to make it clear that the hacks are required due to bad rips. When a bad 32x rip is detected then both the left and right channels are enabled. . Report incorrect header size and replace with default - Compiling . Workround so you can still compile if you install the Visual Studio 15.8 update, as long as you install the 14.14.26428 compiler as well (3rdparty\genie\src\actions\vstudio\vstudio_vcxproj.lua and 3rdparty\genie\src\host\scripts.c). . Set Visual Studio to 64 bit by default (3rdparty\genie\src\actions\vstudio\vstudio_vcxproj.lua). Enabled edit and continue in Visual Studio debug builds (scripts\genie.lua) . Restored some authors' stylistic choices. Make some stuff more consistent. This fixed debug assertion in aristmk4.cpp, bagman.cpp, gts3a.cpp, mac.cpp, pacman.cpp and others (ID 07089). . Fixed lots of inadverently mutable static pointers . Fixed inadvertently non-const pointers - emu.h edition (lib\util\hash.cpp). This fixes all the non-const pointers with static lifetime I could find with a cheap grep (in combination with the last commit). There are likely more lurking that I didn't find, and things that aren't pointers that should be made const. There are still a few mutable static pointers that break the ability to host multiple drivers but these require refactoring to fix. - Debugger: Fixed debugger memory view editing for address-shifted spaces 0.201 - New games: A Day In Space (31/03/87), The Burning Cavern (31/03/87) and Night Mare (Spain) - New Working games: Psychic Force EX (Ver 2.0J) - New Non-Working games: Catherine Wheel, F-Zero AX Monster Ride, Joker Lady, Lady Gum, Paradar and Winner - New clones: 18 Wheeler (deluxe), 18 Wheeler (deluxe) (Rev T), Asian Dynamite / Dynamite Deka EX (older), Astro Blaster (version 2b), Biomechanical Toy (Ver. 1.0.1870), Club Kart: European Session (Rev C), Crash (alt), Devastators (ver. 2), Dog Fight (Orca, prototype), Flicky (64k Version, on Up'n Down boardset), Golfing Greats (US, version K), Hacha Mecha Fighter (19th Sep. 1991, protected, set 2), Halley's Comet (Japan, prototype), The House of the Dead 2 (Export), Ikari III - The Rescue (World, Rotary Joystick), Ikari Warriors (US, set 2), The King of Fighters 2002 Unlimited Match (Japan), Mario Bros. (bootleg on Ambush Hardware, set 2), Master Boy (1987, Z80 hardware, set 1), Pool 10 (Italian, set 9), Raiden II (Korea), Ring Out 4x4, Super Shanghai Dragon's Eye (World), Tecmo World Cup '90 (Euro set 3), Virtua Striker 2 Ver. 2000, War Mission (WM 09/04/87), World Cup Volley '95 (Asia v1.0), World Grand Prix (World), WWF WrestleFest (US) and Zombie Revenge (Export) - New PinMAME games: Night Fever and Third World - New drivers: cwheel.cpp, nightmare.cpp and videosaa.cpp - New devices: a1000kbd_de, a1000kbd_dk, a1000kbd_fr, a1000kbd_gb, a1000kbd_it, a1000kbd_se, a1000kbd_us, a1000kbrst, a1200kbd_rb, a2000kbd_ch, a2000kbd_de, a2000kbd_dk, a2000kbd_es, a2000kbd_fr, a2000kbd_g80_de, a2000kbd_g80_dk, a2000kbd_g80_gb, a2000kbd_g80_se, a2000kbd_g80_us, a2000kbd_gb, a2000kbd_it, a2000kbd_no, a2000kbd_se, a2000kbd_us, a2052, a2091, a2232, a500kbd_ch, a500kbd_de, a500kbd_dk, a500kbd_es, a500kbd_fr, a500kbd_gb, a500kbd_it, a500kbd_no, a500kbd_se, a500kbd_us, a590, a600kbd_ch, a600kbd_de, a600kbd_dk, a600kbd_es, a600kbd_fr, a600kbd_gb, a600kbd_it, a600kbd_no, a600kbd_se, a600kbd_us, amiga_ar1, amiga_ar2, amiga_ar3, amiga_dmac, amiga_kbd, arm710a, athlonxp, buddha, cr511b, efo90501, exp_slot, gayle, hng64_lamps, i8276, idt71321, m6500_1, m65ce02, m68hc05c4, m68hc05c8, m68hc705c8a, orca_ovg_40c, pls100, rf5c164, sda2006, st6228, tpi6525, xr68c681, zorro_slot and zorro2 - New Cheat.dat: http://www.mamecheat.co.uk/ - Hitachi H8 CPUs: Added H8/3003 support - Hudson Soft HuC6280 CPU: Internalized peripherals and sound - Intel I386 CPU . Fixed a bug that could cause a relatively common CPU detection check to see a 386 as a 486. Fixed a dead code bug. . Added enumeration for feature information bits . The CPUID opcode logs an error message if called with a not yet supported value in the EAX register . Added Athlon XP processor - Intel I486 CPU: XADD instructions must set flags based on sum result (i386\i486ops.hxx). This is required by Windows XP setup. - Intel i860XR: Hotfix for coverity issue (cpu\i860\i860dec.hxx) - MC6809 CPU: Disassembly tweaks: Use FCB directive to represent illegal opcodes. Removed unnecessary spaces for instructions without operands (m6809\6x09dasm.cpp). - MOS Technology M6502 CPU: Added MCU capabilities. Fixed execute loop in 6502 MCU. Fixes 6502 core freakout in (MESS) C64 'Pac Man Arcade' Demo (ID 05990). - NEC V33/V53 CPUs . Emulated V33/V53 expanded addressing mode, including BRKXA and RETXA instructions. . Start pushing down V33/V53-specific memory stuff into a new base class . Added 8-bit mappings to V53 for internal peripherals and save associated registers - PSX CPU: Hookup debugger_exception_hook and debugger_interrupt_hook - Texas Instruments TMS57002 CPU . Added instructions 3c/3d, make them behave as NOP as they're undocumented and not understood. Added undocumented instruction saom / raom, they set saturation mode for the ALU. Added a few unimplemented instructions. . Fixes to make Taito Zoom DSP working. Implemented MACC pipeline. Added callbacks for dready, EMPTY and PC0 pins. . Proper behavior of CMEM UPLOAD mode. Fixed an issue where program is not properly loaded if PLOAD is set after a program has already been written. . Fixed a TMS57002/KonamiGX regression. Changed flag instructions back to type "2b" (cpu\tms57002\tmsinstr.lst). . Added trick to reduce the compiler memory usage - Toshiba TMP87PH40AN CPU . Flesh out TLCS870 core. This added opcode execution for all TLCS870 opcodes that I previously wrote a skeleton of for the Hyper Neogeo 64 IO MCU, refactoring and cleaning code along the way. Flags still need verifying (and in some cases adding), CPU cycles for timing still need adding. TMP87PH40 specific peripherals (including interrupt handling) etc. still need adding. Overall this should move things forward and make it easier to work with tho, obviously with the goal of finishing it off and seeing if the dumped HNG64 IO MCU is suitable for all board types or not. ALU flags, passes internal RAM check. Interrupt wait loop depends on JF always getting set. . Takes first interrupt. Bit of port interface guessing to pass port based shared RAM check. Added analog ports, fixed some TLCS870 exec issues. Start adding stubs for various tlcs870 features. Fake timer to push it along. - Zilog Z180 CPU: Added workaround for missing serial and counter emulation (CSIO flags and FRC). This is necessary for Lucky Ball 96. - Discrete sound . Fixed DISC_555_TRIGGER_DISCHARGES_CAP option in DISCRETE_555_MSTABLE. This fixes the sound in Amazing Maze so that it plays for more then 30s (sound\disc_dev.hxx). . Fixed filenames in DISCRETE_CSVLOGx and DISCRETE_WAVLOGx making them function again and use device->basetag() (sound\disc_sys.hxx). - Hudson Soft HuC6280 sound: Added notes - NEC uPD7759 sound . Converted to use device_rom_interface and added md input for selecting between master and slave . Finished hooking the UPD7759 up to the following drivers VGM player, Bay Route (encrypted, protected bootleg), E-Swat - Cyber Police (bootleg, set 1), Golden Axe (encrypted bootleg) and Passing Shot (2 Players) (bootleg) - QSound (HLE) . Fixed a couple of typos pointed out by Coverity (dsp16\dsp16fe.cpp) . Saturate ROM offsets (sound\qsoundhle.cpp). Apply ADPCM sample bank (sound\qsound.cpp). . Added improved qsound_hle core. Use ROM lookups instead of copying tables at init and use enums for most DSP ROM addresses. Replacing memset at the cost of legibility (sound\qsoundhle.cpp). Fixes awful buzz sound noise in the Super Street Fighter series (ID 06990) - Seta X1-010: Simpler handlers - Sound stream: Fixed sound_stream::sample_rate(). Was broken since adding support for setting a zero rate, nothing appears to rely on it (emu\sound.h). - Yamaha AICA sound . Added input clock related to sample rate . Implemented MONO/MVOL and EXTS mixing - Yamaha YMF278B sound: Added device_post_load for FM part and device_clock_changed - YMF292-F SCSP: Added device_clock_changed, support device_rom_interface, use correct clock frequency, "space" removal and fixed some endian issues. - Cassette tape image: Allow cassette sound to be directly routed to a sound output (imagedev\cassette.cpp) - Discrete Netlist: Added netlist for a large portion of Atari Gran Trak 10 schematics (1974) - still not working - Floppy . Added debug asserts to help catch geometry errors (formats\flopimg.h) . Fixed FIFO mess-up on unexpected FIFO pushes on HX5102 floppy drive (machine\upd765.cpp) . Simplified API of machine\wd_fdc.cpp - Imgtool . Fixed parsing options with enum values. When parsing an enumerated option, we should use the parameter of the enumerated value, as an integer, instead of the raw identifier as a string. The behaviour probably changed around commit b60879e595 (2016-08-27), but modules still expect the old behaviour. . Fixed off by one error with leap years (util\timeconv.h) - Intel 8155 RIOT: Eliminated unnecessary memory interface for internal RAM - Intel 8255 PPI . Added handlers for strobed Port A/B reads in Modes 1 & 2, this allow some side effects to be disabled in Sindbad Mystery and Super Locomotive. . Refactor to make clear the exact sequences of actions acka_r and ackb_r correspond to - MB8421 SRAM: Converted callbacks to DEVCB3 and update to recent coding standards - MC146818 RTC: Fixed problems with direct-access mode - MC68681 DUART: Added Exar XR68C681 support to MC68681 with MISR register and extended baud rate - Polygon rendering: Bumped up the default number of scanlines per bucket (video\poly.h) - PowerVR 2: Turn some per-pixel branches into per-polygon branches. Note: In MAME 0.200 I did something stupid from a performance standpoint, which was to select the shading function on a per-pixel basis even though it can only change on a per-polygon basis. This commit uses c++ templates and inline functions to so that the compiler's constant folding can eliminate the switch statement that selects shading functions (thus making the choice a per-polygon one). I also did the same thing for the texture and bilinear filtering checks. This brings back a little less than half of the performance hit on my PC, so things still aren't as fast as they used to be. Benchmark (running a full cycle of Crazy Taxi NAOMI's attract) on my PC: Before MAME 0.200: 30%, after MAME 0.200: 23% and with this commit: 26%. Regarding the other 4% of the drop, that is coming from the pixel shading. When I hardcode powervr2 to always use shading instruction 0, performance jumps up to 29.5%, but when I hardcode it to use shading instruction 3 performance falls a bit down to 25%. Shading instruction 3 is the most complicated of the four and shading instruction 0 is the simplest, so I think that proves that the shading instructions themselves are a major bottleneck. I don't have any ideas about how to make them faster yet. - PSX GPU: Use device_palette_interface. Real hardware is connected with triple 8-bit video DAC; so allow RGB24 display. Some old GPU has only 16bit video output. Fixed debug mesh display. - Sega 315-5124: Fixed off-by-one bug in 315-5124/315-5313 sprite zoom limit. Fixed 315-5214 tile/line numbers in leftmost column. Avoid flagging sprite collisions twice on the same line for 315-5313. Make code more consistent. - Timekeeper . Default input clock for all devices . Converted M48T37 callbacks to DEVCB3 (atlantis.cpp and vegas.cpp) - TMS9928A VDP . Configuration modernization: Replaced callback configuration macros with DEVCB3 (slightly shortening function names in the process). Changed configured clock to be twice the dot clock (as on hardware), rather than equal to it. Allow the VDP to configure the screen in device_config_complete (taking into account 60 Hz/50 Hz variations), making MCFG_TMS9928A_SCREEN_ADD_NTSC/_PAL macros obsolete. Added notes on clock outputs. Fixed number of vertical lines for NTSC devices. Eliminated the clock validity check, which has fulfilled its purpose. . Make EFO90501 VDP its own device type (might be a custom mask variant). Set EFO90501 refresh rate tentatively to 50 Hz (this is now a device setting). - Z80 SCC Channel . Serial control signal fixes: /CTS, /DCD and /SYNC are active low lines represented as 1's in rr0 when asserted. Immediately deassert /RTS in some circumstances. Fixed rr1 "all sent" status handling. There is no ring indicator input line. Generated interrupts for /SYNC input. Fixed Z-BUS access. . Updated /WREQ when transmitter is enabled/disabled, use 0 for assert state of active low output. - Z80 SIO: Ignore "Send Abort" command when not in SDLC mode - allows (MESS) jade.cpp to start. - actfancr.cpp and dec0.cpp: Reduced code duplication - cntsteer.cpp: Eliminated MCFG_DEVICE_VBLANK_INT - cvs.cpp: Replaced ROM patches with protection simulation for Hero, Hunchback Olympic and Superbike - dcheese.cpp: Correct palette size. Reduced some runtime tag lookups. Cleanup naming etc. - deco32.cpp: Fixed background color for Dragon Gun. Added notes to video\deco_zoomspr.cpp. - hikaru.cpp . Fixed AICA sound output and added XTAL connected with AICA. Correct number of AICAs (1x at motherboard and 1x at AICA PCB). . Dumped Development / prototype BIOS v.074 - hng64.cpp . Flesh out TLCS870 core. Added notes about MIPS side IRQ, sams64 IRQ and some IRQ addresses. . Added DPRAM device. Added dualport ram device (really just gets treated as RAM, but on a technical level, it should be a device). Converted fake IO handlers to 8-bit, and ports to 8-bit since the real IOMCU reads 8-bit ports, the DPRAM is also 8-bit, and this should make transition to proper emulation easier later. Hook TLCS870 up to the dualport RAM device. Allow emulated TLCS870 to do the initial handshake with the MIPS instead of the simulation (takes a few seconds before ffwa allows coins now, but that's probably due to IRQ timing and timers being completely fake). Read a bunch of ports through the IO MCU instead of simulation. Start actually reading some inputs through IO MCU. . Allow IOMCU to trigger MIPS IRQs. Removed coinage hack in Buriki One. . Added save states to sound\l7a1045_l6028_dsp_a.cpp . Misc cleanups. Added kludge so that Roads Edge and Xtreme Rally can be coined up and played without them crashing. Properly mapped inputs. . Documented outputs (lamps, coin counters) and use device finder for analog ports . Improved sprite filtering in Roads Edge - konamigx.cpp . Fixed a TMS57002/KonamiGX regression. Changed flag instructions back to type "2b" (cpu\tms57002\tmsinstr.lst). . Hook up channels 3 and 4 of TMS57002. The Lethal Enforcers II schematics are not complete so I couldn't figure out exactly how they are connected to the sound chips and the DAC, but this sounds OK for now. Documented TMS57002 outputs. . Improved Taito ZSG2 and TMS57002. Fixes slightly distorted/scratchy sound in Fantastic Journey and clones (ID 06579). - konamim2.cpp and vegas.cpp: Tidy-up terminal - laserbat.cpp: Added PLS100 (82S100) PLA device - m72.cpp: Overhaul V30/8751 comms using DPRAM and GENERIC_LATCH_8. Fixes clone Mr. HELI no Daibouken (Japan) freezes in the first stage (ID 06433). - mainevt.cpp: Added proper screen parameters and some extra notes - mastboyo.cpp: Cleaned-up the driver. Added remaining dipswitches allowing the initial test mode. - naomi.cpp . Added NAOMI Development / tester BIOS (Nov 1998), Ferrari F355 DLX prototype Japan and Export BIOSes, NAOMI Rev F Export BIOS and Ferrari F355 DLX prototype motor board firmware. . Dumped Cycraft Motion PC software for Club-Kart and Initial D Arcade Stage Ver. 3 Cycraft Edition - neogeo.cpp: Added start buttons to dial controller (bus\neogeo_ctrl\dial.cpp). This fixes start buttons don't work in Pop 'n Bounce (ID 07073) - policetr.cpp . Cleanup. Converted bitmap_ind8 for dstbitma. Cleanup pointer/runtime tag lookups/ACCESSING_BITs/naming. Added save states. . Removed a no-longer-needed video check. Identified some unknowns ports. - seta.cpp . Converted X1-010 address XOR into LRW8. Simpler handlers for X1-010 sound. . Added NVRAM and PCM mute control to Caliber 50 . Fixed Twin Eagle music (timing is related to screen framerate) (ID 00867) - seta.cpp and seta2.cpp: Added memory_banks for X1-010 bankswitching. - taitogn.cpp and zn.cpp . ZOOM ZSG-2 (sound\zsg2.cpp) . Improved Taito Zoom ZSG-2 sound emulation. Implemented emphasis filter, this is a noise reduction scheme that amplifies higher frequncies to reduce quantization noise. . Added sample interpolation and another adjustable lowpass filter. This seems to be roughly what real hardware does. . Improved panning registers and identify DSP output gain registers. Register 0b appears to be status flags. Proper ramping implemenation and added register map. . Attempt to reduced clicks . Made the emphasis filter much more simple. I think this matches hardware, as a filter like this could be implemented with very few gates in hardware. Also reset the filter state when the sample position reaches the start address, this fixes Ray Crisis song #9. . Clamp audio output to 16-bits. Optimized the filters. Saturated the emphasis filter output. Right shifting will cause unwanted noise. . Discharge the output filter slowly when the cutoff is set to 0. Fixes popping noises in Ray Crisis song #12. . Taito Zoom ZSG-2 sound board (audio\taito_zm.cpp) . Added working DSP emulation. Reduced MCFGs. Added device_mixer_interface for sound gain. Added imperfect_features related to DSP and notes. Fixed TMS57002 clock. . Adjust volume balance, hopefully fixing Psyvariar -Revision-. I would need hardware recording for proper verification though. . Texas Instruments TMS57002 CPU . Added instructions 3c/3d, make them behave as NOP as they're undocumented and not understood. Added undocumented instruction saom / raom, they set saturation mode for the ALU. Added a few unimplemented instructions. . Fixes to make Taito Zoom DSP working. Implemented MACC pipeline. Added callbacks for dready, EMPTY and PC0 pins. . Proper behavior of CMEM UPLOAD mode. Fixed an issue where program is not properly loaded if PLOAD is set after a program has already been written. - tx1.cpp . Fixed non-functioning shifter in Buggy Boy and Buggy Boy Junior (layout\buggyboy.lay and buggybjr.lay) (ID 07058) . Fixed missing engine sounds in Buggy Boy and TX-1 (ID 07059) - yunsung8.cpp: Minor doc update - Astro Wars: Mark rom astro.13i as bad dump, because game resets at start of stage 5. Suspected bad byte at 0x2a00. - Battle Rangers: Removed unnecessary handlers, bank read/writes and added notes. - Canvas Croquis: Fixed flip screen - Centipede / Millipede / Missile Command / Let's Go Bowling: Misc improvements: Better flash mapping means the IRQ handler can run now without crashing. Hooked up up/down and service2 (0) keys to navigate service mode. Bankdev added to handle 2000-AFFF region. NVRAM access to the 29c020 flash ROM now works properly. - City Connection: Added PROMs and PLDs to clone City Connection (set 2) - Come On Baby: Fixed CPU model so that it doesn't jump to 0 when it writes to a p6+ msr - Decathlete: Implemented 315-5838 compression / encryption chip - Dynamite Dux: Added PROMs and PLDs to clone Dynamite Dux (Datsu bootleg) - El Fin Del Tiempo: Various things: Use line callback instead of VBLANK_INT and acknowledge interrupt. Use (likely) addressable latches instead of pointers to (fake?) RAM. Added watchdog timer. Clean up audio CPU ROM region length. - Eyes: Fixed gfx loading and color prom in clone Eyes (bootleg set 1) - F1 Exhaust Note: Mapped second start button - Funky Ball: Use UART and RS232 port for diagnostic serial output - Gondomania: Decapped MCU for clone Makyou Senshi (Japan) - Mars Matrix: Hyper Solid Shooting: Fixed sound effects are only emitted from the left channel (ID 02209) - Mega Phoenix: Verified PALs as BAD_DUMP/protected - Operation Wolf . Added C-Chip ROM, credit to CAPS0ff for dumping it. Old C-Chip simulation is retained for documentation purposes. Added accurate hardware information for documentation. . Actually properly disable Operation Wolf protection simulation, fixed coin counters. - PinMAME . Various mrgame.cpp updates and modernizations. Screen raw parameters (circuitry is surprisingly similar to Galaxian). Addressable latch for video CPU. VBLANK callback instead of MCFG_DEVICE_VBLANK_INT (interrupt also acknowledged now). Separated machine configuration for World Cup 90, which now displays something. . Use 'Generic ripple counter' device in play_2.cpp - Psychic Force: Added a new e22-11.2 rom to clone Psychic Force EX (Ver 2.0J). This fixes game resets itself (ID 04540) (Game now playable). - Spectar: Fixed explosion samples playing (audio\targ.cpp) (ID 07067) (ID 07068) - Super Shanghai Dragon's Eye: Added PCB layout and correct the clocks based off of actual OSC - Tao Taido: Cleanup video functions. Added save states. Reduced runtime tag lookups. Shared ptr for sprite banks. - Task Force Harrier: CPU/XTAL identification - Twin Cobra: Verified OSC - War Mission: Added new floppy image - Fixed year info for pc_rrngr (ID 06192) - Dipswitch fixes in cmmb.cpp, hng64.cpp, mastboyo.cpp and policetr.cpp - Fixed rom names in cosmic.cpp, ddragon3.cpp, dotrikun.cpp, gaelco.cpp, toaplan1.cpp and yunsung8.cpp - Description changes of Caliber 50 (Ver. 1.01), Club Kart: European Session (Rev A), The Combatribes (US, rev 2, set 1), The Combatribes (US, rev 2, set 2), The Combatribes (US, rev 1), The Combatribes (Japan, rev 2), Fever Chance (W-6), Golfing Greats (World, version L), Golfing Greats (Japan, version J), Halley's Comet (Japan), Hacha Mecha Fighter (19th Sep. 1991, protected, set 1), Halley's Comet (Japan, rev 1), Ikari III - The Rescue (World version 1, 8-Way Joystick), Ikari Warriors (US, set 1), The King of Fighters - Fuchou Zhi Lu/Road to Revenge / The King of Fighters 2002 Unlimited Match (China), Mario Bros. (bootleg on Ambush Hardware, set 1), Master Boy (1987, Z80 hardware, set 2), Lethal Crash Race / Bakuretsu Crash Race (set 1), Lethal Crash Race / Bakuretsu Crash Race (set 2), Quiz Gakumon no Susume (Japan ver. JA1 Type H) (ID 06653), Ring Out 4x4 (Rev A), SAR - Search And Rescue (Japan version 3), Tecmo World Cup '90 (World set 1), War Mission (WM 04/06/87) and WWF WrestleFest (US, rev 2) - Renamed (ctribe1) to (ctribeua), (ctribeo) to (ctribeu1), (devstors2) to (devstorsx), (devstors3) to (devstorsv), (halleysc) to (halleyscja), (halleys) to (halleysc), (halleycj) to (halleyscj), (halley87) to (halleysc87), (mastboyo) to (mastboyoa), (sshangha) to (sshanghaj), (wcvol95) to (wcvol95j), (wgp) to (wgpu) and (wwfwfestb) to (wwfwfestub) - MAME . VIDEO RENDERING SYSTEM . Better support for screen orientation/geometry . Eliminates the need for the horizontal/vertical/LCD/SVG layout files . Screens can now have orientation and physical aspect ratio specified . RASTER/VECTOR defaults to 4:3, LCD/SVG defaults to square pixels at config time . System orientation is applied on top of screen orientation . Added save state support for std::array/C array nested to any depth . Automatically generated single-screen views and orientation flags in XML output now work correctly for systems with multiple screens in different geometries/orientations, e.g. housemnq, rocnms, stepstag or netmerc. . The "core rotation options" only interact with system orientation. Allowing multi-screen systems to work well with one monitor per emulated screen is a complex topic. System orientation also affects the GFX viewer while screen orientation doesn't. The orientation displayed in the system selection menu is from the system orientation. . Make rectangle work better with constexpr, changed many things to use designated getters/setters. . Ignore SVG dimensions (emu\screen.cpp) . Clean up some corner cases in layouts with repeating blocks. Make complay.py validate many more elements and attributes. Make complay.py easier to use for just validating a layout. Removed redundant view from Sega VMU layout. Make buttons visually respond to input in (MESS) whousetc.lay. Added view with LED displays as well as terminal for (MESS) aim65_40 and use repeats. Start documenting layout format. Make highlights visible on white squares in (MESS) mephisto_modena.lay. . Allow and to work on group references. Fix some corner cases where group bounds could be miscalculated and MAME could incorrectly refuse to instantiate groups. . Calculated physical aspect ratio whenever required, not in device_config_complete, since the renderer caches the result anyway (emu\screen.cpp). . Fixed have_screen_update(), which was broken and returned false under any valid configuration, and rename the function has_screen_update(). This fixes regressions in 'Granny and the Gators' and other drivers using custom update functions with CDP1861, CDP1864 and TMS992x VDPs (emu\screen.h). . BGFX: Improved rendering with artwork by 5-10x or more . DEVICE . Removed timer_set() in orbit.cpp, seta.cpp, machine\namco50.cpp and namco53.cpp . Use already present device_finder (machine\pcecommn.cpp) . Removed some device tag look-ups from model3.cpp and machine\inder_vid.cpp . Added device_clock_changed to sound\k053260.cpp, k054539.cpp, qsound.cpp, sn76496.cpp, ymf262.cpp and ymf278b.cpp . HuC6272 device_add_mconfig modernization . Added DEVCB3 support to MC6854, ataintf, MB89352 and WD33c93 . Set default clocks to 0 in machine\8042kbdc.h, i8255.h, idectrl.cpp, intelfsh.h, mb89352.h, ram.h, wd33c93.h and sound\volt_reg.h . Removed legacy DEVCB accessors in 8042kbdc, MB89352 and MC6854 . Allow set_tag() with a reference or a pointer to a device (emu\devfind.h). Fixed the build by removing calls that don't exist when DeviceClass happens to be an interface (emu\devfind.h). . Removed MCFG usage in machine\6522via.h, 6532riot.h, 6821pia.h, 68230pit.h, 68307.h, 6840ptm.h, 6850acia.h, 7200fifo.h, 7400.cpp, 7404.cpp, 74123.h, 74145.cpp, 74148.cpp, 74148.h, 74153.h, 74157.h, 74161.h, 74165.h, 74166.h, 74175.h, 74259.h, 74259.h, 8364_paula.h, aakart.h, adc0808.h, adc083x.h, adc0844.h, adc1038.cpp, adc1213x.h, akiko.h, am2847.h, am53cf96.h, am9519.h, amigafdc.h, ataintf.cpp, bankdev.h, cxd1095.h, eeprom.cpp, idectrl.cpp, i8155.h, mos6551.h, nvram.h, pci-ide.cpp, ram.h, z80sio.cpp and cpu\cosmac\cosmac.h. . Machine config modernization for cops, gameplan, gts3, gts3a, itech32, itech8 and jvh . Converted 'Generic ripple counter', MB8421, MC68901 and M48T37 to DEVCB3. Added DEVCB3 accessors to I8279, YM2608, ES5503, TMS34061 and Z80 SCC . Modern configuration accessors for COP400, NVRAM, TLC34076 and Watchdog . Fetch screen to be potentially configured during device_config_complete. Allow device finder to be used as an argument for set_screen (emu\divideo.cpp). . MEMORY SYSTEM . Allow simplified versions of handlers . A standard memory handler has as a prototype (where uX = u8, u16, u32 or u64): uX device::read(address_space &space, offs_t offset, uX mem_mask) and void device::write(address_space &space, offs_t offset, uX data, uX mem_mask). We now allow simplified versions which are: uX device::read(offs_t offset, uX mem_mask), void device::write(offs_t offset, uX data, uX mem_mask), uX device::read(offs_t offset), void device::write(offs_t offset, uX data), uX device::read() and void device::write(uX data). Use them at will. Also consider (DECLARE_)(READ|WRITE)(8|16|32|64)_MEMBER on the way out, use the explicit prototypes. Same for lambdas in the memory map, the parameters are now optional following the same combinations. . Examples: bloodbro.cpp, cabal.cpp, dcon.cpp, legionna.cpp, pntnpuzl.cpp, r2dx_v33.cpp, raiden2.cpp, machine\6522via.cpp and audio\seibu.cpp . Put capabilities at parity (emu\addrmap.cpp, devcb.cpp and emumem.cpp) . Default input clock for 'Address Map Bank' (machine\bankdev.h) . UI . Make the software list "special" to prevent pausing while typing (ui\imgcntrl.cpp) . Clean up some outdated "game" terminology in clifront.cpp . Fixed incorrect "On/Off" color on "AutoFire Status" screen (ui\cheatopt.cpp) (ID 07069) . Fixed disk entry processing (emu\romload.cpp) . Optimised start up by delaying the state save sort and check for duplicates until all the devices have been started. This has the most visible effect on vgmplay because it registers over thirty thousand state save entries. . Adjusted indentation of DTD to better reflect structure (mame\info.cpp) . Multi-Language: Created a full Norwegian translation - SDLMAME: Fixed debug assert failure when using SDL fullscreen toggle - VGM player . Added support for C140, OKIM6258, SCSP, X1-010, Y8950, YMF262 and YMF278B. Preliminary hook up of YM2610. Added QUICKLOAD and software list support. Start all clocks at zero and reset all sound chips on a song change. Note: This is damn sensitive code (emu\schedule.cpp and sound.cpp), and generates differences all over the place we don't really explain. The changes should be justified by themselves and tested in collaboration with Tafoid to ensure the differences are not a problem. Don't try to update m_totalcycles on devices with a zero clock, as it will crash (emu\schedule.cpp). . All header sizes are valid for all versions from 1.50 on, as long as header has at least 64 bytes. If the VGM data starts at an offset that is lower than 0x100, all overlapping header bytes have to be handled as they were zero. Fixed OKI 6295 clock. Fixed VGM player don't crash on YM3438 songs. Updated warning checks. . Skip writes for data that hasn't been loaded, fixes crash in Wally wo Sagase. Trigger the clock hacks on specific values, to avoid causing problems with correct files. . Added all sound chips (including multiple instances supported by the vgm format) & all chips have been reordered into the vgm chip id order. ES5503/SAA1099/VSU now work but the other new additions are greyed out (these will require work to the sound cores themselves). . WonderSwan sound is working now. Sound is muted when songs end . Updated hash\vgmplay.xml to include all major packages makers (VGMRips, SMSPower and Project2612), now consisting of over 3100 game entries. Great effort has been made to keep package shortnames consistent to their source origin (arcade or machine softlist). All information in the individual package's readme files were carried over into the hash file. Further refinement will be done later to fill in missing dates, publishers, and other information. While there are still some sound chips not handled by vgmplay, the vast majority of these will have accurate playback. - Compiling . Fixed Arcade build . Extended the existing TUN/TAP OSD module (modules\netdev\taptun.cpp) to support Windows through the TAP-Windows6 driver (https://github.com/OpenVPN/tap-windows6) . Fixed for undefined fmin & ceil on GNU Guix with GCC 5.5.0 (cpu\mips\mips3.cpp and ps2vif1.cpp) . Added DEVCB workround to allow Mitsumi keyboard to build with Visual Studio (src\emu\devcb.h) - Debugger . Use std::deque for token stack (debug\express.cpp) . Moved scripting functions down into console (debug\debugcpu.cpp) . Mask address expressions in debug disasm view (debug\dvdisasm.cpp) . Mask address expressions correctly in debug memory view when using physical addresses beyond logical limits (debug\dvmemory.cpp) . Don't apply logical address masks to physical addresses in debug memory accesses (debug\debugcpu.cpp) . Fixed scrolling glitch in memory view when address expression is applied (debug\dvmemory.cpp) . Apply logical address mask properly in debug disassembly view. Associated core changes: Moved definition of address_space_config from dimemory.cpp to emumem.cpp (declaration was already in emumem.h). Added getters for more members of address_space_config with future privatization in mind. 0.200 - New Non-Working games: Captain Zodiac, Donkey Kong / Donkey Kong Jr / Mario Bros, Fever Chance and Marbella Vice - New clones: Air Rescue (World), Apache 3 (rev E), Hayaoshi Quiz Nettou Namahousou (ver 1.2), Led Storm Rally 2011 (US, prototype 12), Pink Sweets: Suicide Club (2017/10/31 SUICIDECLUB VER., bootleg), Raiden DX (Portugal), Scramble (bootleg, set 2), Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 1), Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 2) and Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 3) - New PinMAME games: Jokerz! (G-4), Safe Cracker (1.0) and Topaz (Inder) - New drivers: cpzodiac.cpp and dkmb.cpp - New devices: am8753, ams40489_ppi, arm11, arm1176jzf_s, ps2gif, ps2gs, ps2intc, ps2vif1, sonyiop, sonyvu0, sonyvu1, wd1007a and z8671 - New Cheat.dat: http://www.mamecheat.co.uk/forums/viewtopic.php?f=10&t=12477 - Intel 4004 CPU: Fix for ambiguous call to overloaded function when using MSVC (mcs40\mcs40.h) - Intel I386/I486 CPUs: Avoid some unintended undefined behavior. Spotted by cppcheck. - MIPS CPUs: Added basic Emotion Engine support ((MESS) PS2). Added S bit to TLB mapping. Added support for VSUB, VIADD, VSQI, VISWR, VOR, LQ, SQ, MFSA, MTSA, MFHI1, MFLO1, MULT1, DIV1, DIVU1, PEXTLW, PADDUW, PMFHI, PMFLO, PCPYLD, PCPYUD, SQC2 and LQC2 opcodes. - MIPS R30XX CPUs: Fixed some R3000 bugs, started fleshing out IOP devices in (MESS) Sony PS2. - Motorola MC68000 CPU: Stop the cpu on recursive BERR (Bus error) - RCA CDP1802 CPU . Interface overhaul: Splitted execution of long branch/long skip instructions into two separate states. Eliminated reset state. Sample pushed EF lines at the right time. Implemented a few CDP1801 differences. Correct disassembly of destinations for skip instructions. SC callback also includes state of N lines for I/O instructions. TPB callback added (not used yet). Callbacks can be configured through devcb3 bindings. . Fixed disassembly (cosmac\cosdasm.cpp). Added helper functions. Minor cleanup. - Zilog Z8 CPUs: Added dump of pre-programmed Z8671 MCU with BASIC/DEBUG interpreter - Atari CAGE sound: Minor cleanups. Use device finder. Fixed communication. - DCS2 Audio Denver: Reinstate hastily removed eat_cycles to audio\dcs.cpp. Fixes DCS2 sound hardware test failed in War: The Final Assault (ID 07027). - Ensoniq ES5503 sound: Fixed bad playback of synthLAB sampled-attack looped-sustain instruments - Gottlieb sound: Clean up/encapsulate gottlieb sound (audio\gottlieb.cpp) - Seibu Sound System: Interrupt modernization (audio\seibu.cpp) - Sound Interface: Added seperated acknowloge case to machine\gen_latch.cpp - YM3812 OPL2 sound: Synchronized IRQ outputs to prevent lossage - 6821 PIA and MC6850 ACIA: 6821 and 6850 have no clock for bus logic side - Cassette tape image: Bug fix for multi-channel reads in cassette_get_samples() (formats\cassimg.cpp). Use the unused "sample_bytes" arg the same way as cassette_put_samples(). Can be used with multi-channel files now. Rename sample_bytes to more descriptive sample_spacing. Added some comments about sample functions and sample_spacing variable. - ER2055 EAROM (64x8) . Eliminated "Atari VG EAROM" in favor of newer ER2055 device (astdelux, bwidow.cpp, centiped.cpp, digdug, redbaron and tempest) . Removed spurious address space and added pin diagram - Floppy: Mostly tiying up and simplifying the i82072 behaviour; the only change that could potentially impact other upd765 users is marking the st0_filled after every interrupt-generating command ends, rather than only the non-data ones. This appears to be correct behaviour, and will only affect systems which actually do a "sense interrupt status" after a command-completion interrupt (like the (MESS) InterPro does). Report valid interrupt sense data after all interrupt-generating commands. Improved i82072 drive busy handling and motor control (machine\upd765.cpp). - Intel 8255 PPI: Created 8255 PPI clone based on the (MESS) Amstrad Plus ASIC, and use it with the Amstrad Plus/GX4000 drives. Made device flags const. Clean up. - MB3773 Power Supply Monitor: There is no reset input, so resetting the status of the variable tracking the external signal makes no sense. However we should probably restart the timer on all resets (instead of just at start/watchdog timeout), to avoid a watchdog reset if you press F3 at the wrong time. - MC146818 RTC: Support direct-access bus hookup method. This chip has 8 address/data lines and an address/data strobe. Most users hooked it up so the low-order address bit is the address/data strobe, allowing you to write an address and then read/write data at an adjacent address. But if you don't mind using a few more gates you can latch the low-order address bits from the CPU into the chip then latch the data in or out of it so it works just like a RAM. The (MESS) DECstation did this in their I/O ASICs. - NAMCO Custom (machine\namcoic.cpp) . Converted ROZ tilemap code mangles into callback. Splitted config for each game when tilemap mangle is different. Reduced code duplication. . Fixed Final Lap R title screen . Fixed Lucky & Wild graphics . Moved Metal Hawk swap xy function into gfxdecode. Fixed Metal Hawk zoom. . Added C169 wraparound disable bit . Moved Namco NB-2 hardware specific ROZ bankswitch into namconb1.cpp - PowerVR 2: Improved color handling. Note: PowerVR2 represents color using two components: A base color and an optional offset color. The base color is combined with the incoming texture sample (if any) according to the fixed-function specified by the tsinstruction in the per-polygon parameters, and then the offset is added to this color (with the exception of alpha; the offset color has an alpha component but it does not appear to ever be used). The base color and offset color can be specified on a per-vertex basis (as either a group of four 8-bit integers or a group of four single-precision floating points) or they can be specified on a per-polygon basis (in floating-point only) and then scaled based on per-vertex scalar values (also floating point). - SCSI CD-ROM: Added support for CD-ROMs with 512-byte blocks (machine\nscsi_cd.cpp). Older UNIX workstations used SCSI CD-ROM drives with 512-byte logical blocks instead of the now standard 2048. This change makes the block size configurable, and adds logic to translate logical blocks to/from the underlying 2048 byte sectors as needed. Added stub for "prevent/allow medium removal" command. - SCSI Hard Disk: Minor fix for "inquiry" command (machine\nscsi_hd.cpp) - Sega Custom . 315-5124: Emulated bits of the status register for the number of the first sprite that overflows. Emulated sprite zoom limit of sega315_5124 VDP. Fixed inaccurate scrolling reproduced with Charles' scrolling test. Improved leftmost column color behaviour in mode 4 when fine scroll is applied. Implemented display modes 1 (text) and 3 (multicolor). Renamed vram_write()/vram_read() to data_write()/data_read(). Renamed register_write()/register_read() to control_write()/control_read(). Use "const" and the "BIT" macro where appropriate. . 315-5313: Created a sega315_5313_mode4_device class to emulate some specific 315-5313 behavior in mode 4. Derivate sega315_5313_mode4 (MD) from sega315_5246 (SMS2) instead sega315_5124 (SMS1). Emulated some sega315_5313_mode4 timings and behavior verified with Flubba's VDP Test. Emulated sprite zoom limit of sega315_5313 VDP. . 315-5377: Renamed GG VDP from sega315_5378 to sega315_5377 to match maintenance manual. Derivate sega315_5377 (GG) from sega315_5246 (SMS2) instead sega315_5124 (SMS1). Emulated some specific sega315_5377 timings verified on hardware. - Seta SETA001 Sprites: Converted arrays into std::unique_ptr. Minor cleanups (video\seta001.cpp). - Signetics SCN2674 AVDC: Added optional second space and associated buffers for attribute RAM - Xicor X2212 256x4 NOVRAM: Eliminated MCFG_X2212 macros from drivers (balsente.cpp, ccastles.cpp, cloud9.cpp, firefox.cpp, foodf.cpp, irobot.cpp, jedi.cpp, quantum.cpp and starwars.cpp) and added pin diagram. - Z80 SCC Channel . Fixed transmit interrupt behavior that was locking up the (MESS) Apple IIgs . Clear tranmitter interrupt if a written byte fills the FIFO. Fixes (MESS) Apple IIgs problems without breaking Intergraph. - arachnid.cpp: Added NVRAM and correct clocks and CPU type - argus.cpp . Removed tilemap hack of Argus (tilemap size can be larger than 65536). Reduced RAM usage of argus tilemap. . Moved Butasan tilemap scanning into TILEMAP_MAPPER_MEMBER . Added MACHINE_NO_COCKTAIL tag because scroll is wrong when flip screen. Reduced code duplication. Fixed spacing. - atarigt.cpp: Cleanup video. Converted m_expanded_mram into std::unique_ptr and m_is_primrage into bool. - bbusters.cpp: Splitted mechatt_state (difference at tilemap size, number of sprite layer, gun in/output and used register). Cleanup duplicates. Reduced runtime tag lookups. Moved GFX byte-swap into ROM load. - cidelsa.cpp: CDP1802 CPU interface overhaul. Replaced CDP1852 I/O callback macros with devcb3 bindings; use line write handler to clock output from TPB - cischeat.cpp . Reworked interrupt generation. Fixed attract mode desyncs in Big Run. . Fixed Grand Prix Star stuck tyre sprite in attract mode bug - galpani3.cpp . Implemented/Fixed some effects. Fixes background color fading in intro and girl display in stage start. . Added device_palette_interface for palette (video\kaneko_grap2.cpp). Minor cleanups. - galpani3.cpp, jchan.cpp and suprnova.cpp: Implemented bitmap clearing disable bit (video\sknsspr.cpp) - iteagle.cpp: Use callbacks to access IO ports - lastduel.cpp: Cleanups. Fixed naming. Added PALETTE_DECODER for palette. Reduced code duplication. - m107.cpp: Added buffered_spriteram16_device for buffered spriteram. Splitted address map/machine configs related to ROM size/bankswitch. Removed MCFGs (sound\iremga20.cpp). Minor cleanups. - m92.cpp: Minor cleanups - mappy.cpp: Use timer delegates instead of device_timer - metalmx.cpp: Minor cleanup. Reduced duplicates. - model1/2.cpp . Screen indexes have flipped due to device replace instead of remove/add (layout\model1io2.lay) . Allow layouts to specify screen tags rather than indices (emu\rendlay.cpp) - makes order of instantiation irrelevant in Model 1 etc. - mpu4vid.cpp: Added optional second space and associated buffers for attribute RAM - namconb1.cpp: Simplified tile bitswap. Moved Namco NB-2 hardware specific ROZ bankswitch (machine\namcoic.cpp) into Namco NB-1 driver. Minor cleanups. - namcos2.cpp: Simplified tile bitswap (video\namcos2.cpp). Converted C116 to device. Fixed Final Lap boot. - neogeo.cpp: Added edge connector pinouts - nmk16.cpp . Reduced code duplication and runtime tag map lookups . Moved tilemap ram bankswitching into seperated value. Added save states and for protection values. Implemented sprite limitation. Simplified bit manipulations. . Fixed Acrobat Mission palette size related to palette RAM size . Added bad dump flag to roms in clone Thunder Dragon 3 (bootleg of Thunder Dragon 2) sourced from a different PCB - peplus.cpp: Use output finder, removed timer_set and added save state support. - play_2.cpp and play_3.cpp: Use TPB callback (CDP1802) instead of artificial clock - realbrk.cpp: Fixed sprite priority and rotation bits. Added notes. Reduced runtime tag lookups. - runaway.cpp: Added addressable latch - seattle.cpp and vegas.cpp . Make io member naming consistent . Reinstate hastily removed eat_cycles to audio\dcs.cpp. Fixes DCS2 sound hardware test failed in War: The Final Assault. - sigmab52.cpp: Fixed framerate to 60 Hz - srmp2.cpp: Minor cleanups - suprnova.cpp: Restricted bitmap drawing to clipping rectangle (video\suprnova.cpp). Minor cleanup. - taito_b.cpp . Update/Cleanup driver and video. Moved TC0180VCU functions from into video\tc0180vcu.cpp. Reduced unnecessary gfxdecode (in Nastar schematics, TC0180VCU GFX ROM is 32-bit wide (CH0-31 is connected by data bus)). . TC0180VCU: Converted some arrays into required_shared_ptr. Internalized gfxdecode. Added notes - taito_x.cpp: Split out common parts of memory maps and separated kyustrkr machine configuration. Reduced runtime tag map lookups. - tmmjprd.cpp: Clean-up driver. Make the dead code actually compilable, if not runnable. - unico.cpp: Variable and namings cleanups. Converted video RAMs into shared_ptrs. Reduced runtime tag lookups. Some ACCESSING_BITS cleanups. Added PALETTE_DECODER for palette. - usgames.cpp: More specific CPU type - williams.cpp and wmg.cpp: Removed hard-coded service button assignments and map to IPT_SERVICE buttons. IPT_MEMORY_RESET used for high score reset. - Arkanoid: Updated documentation and replaced a75-23.ic14 MCU in clone Arkanoid (Japan, newer w/level select) with one created from an original MCU rather than the bootleg. - Dig Dug: Use MCFG_DEVCB_RSHIFT for MCU DSW inputs - Dragon Master: Cleanups. Reduced code duplication. Added PALETTE_DECODER for palette. - Fortune Pot (Castle): Added 6821 PIA and RAM - Game Magic: IDE works, basic system is usable now (machine\i82371sb.cpp) - Iron Horse: Fixed framerate to 61 Hz (ID 04621) - The Legend of Silkroad: Reduced redundant/unused code and ACCESSING_BITS checks - Lucky Girl: Slight improvements to decryption - Quiz Show: Verified m2 gfx rom - Shanghai III: Reverted MACHINE_IMPERFECT_GRAPHICS flag for Shanghai III. Not that big of a reason to flag it as such. - Stepping Stage Special: Added support for YUV422 colors. Clamp YUV422 conversion with std::min/max. - Treasure Bonus: Added NVRAM, as verified on real hardware. - Fixed rom names in artmagic.cpp, namcos2.cpp, raiden2.cpp and system1.cpp - Description changes of Apache 3 (rev F), Apache 3 (Kana Corporation license, rev G), Ferrari F355 Challenge (twin/deluxe, preview), Safe Cracker (1.8 German sound) and Scramble (bootleg, set 1) - Renamed (apache3a) to (apache3b) and (arescue) to (arescueu) - MAME . VIDEO RENDERING SYSTEM . Improved behaviour in general for systems with two screens . Reduces blowups in render\drawbgfx.cpp and make bgfx\chainmanager.cpp a little less crash-prone . LAYOUT . Allow layouts to specify screen tags rather than indices (emu\rendlay.cpp) - makes order of instantiation irrelevant in Model 1 etc. . Allow per-device internal layouts. Input and screen tags are now resolved relative to a layout's owner device. Easy way to demonstrate is with: mame64 intlc440 -tty ie15. Previously you'd only get the IE15 terminal's layout and you'd be unable to use the INTELLEC 4/40 front panel. Now you'll get the choice of layouts from both the system and the terminal device in video options. . Allow user variables and repetition in layouts, also add a few more predefined variables. . Allow repeating elements and groups - useful if you need e.g. a lot of numbered labels, but it limits complay.py's ability to check for invalid references as it can't evaluate expressions. . Disabled multiple constructor warning for rendlay.cpp (scripts\genie.lua) . DEVCB3 . There are multiple issues with the current device callbacks: . They always dispatch through a pointer-to-member . Chained callbacks are a linked list so the branch unit can't predict the early . There's a runtime decision made on the left/right shift direction . There are runtime NULL checks on various objects . Binding a lambda isn't practical . Arbitrary transformations are not supported . When chaining callbacks it isn't clear what the MCFG_DEVCB_ modifiers apply to . It isn't possible to just append to a callback in derived configuration . The macros need a magic, hidden local called devcb . Moving code that uses the magic locals around is error-prone . Writing the MCFG_ macros to make a device usable is a pain . You can't discover applicable MCFG_ macros with intellisense . Macros are not scoped . Using an inappropriate macro isn't detected at compile time . Lots of other things . This changeset overcomes the biggest obstacle to remving MCFG_ macros altogether. Essentially, to allow a devcb to be configured, call .bind() and expose the result (a bind target for the callback). Bind target methods starting with "set" repace the current callbacks; methods starting with "append" append to them. You can't reconfigure a callback after resolving it. There's no need to use a macro matching the handler signatures - use FUNC for everything. Current device is implied if no tag/finder is supplied (no need for explicit this). . Lambdas are supported, and the memory space and offset are optional. These kinds of things work: .read_cb().set([this] () { return something; }), .read_cb().set([this] (offs_t offset) { return ~offset; }), .write_cb().set([this] (offs_t offset, u8 data) { m_array[offset] = data; }) and .write_cb().set([this] (int state) { some_var = state; }). . Arbitrary transforms are allowed, and they can modify offset/mask for example: .read_cb().set(FUNC(my_state::handler)).transform([] (u8 data) { return bitswap<4>(data, 1, 3, 0, 2); }) and .read_cb().set(m_dev, FUNC(some_device::member)).transform([] (offs_t &offset, u8 data) { offset ^= 3; return data; }). . It's possible to stack arbitrary transforms, at the cost of compile time (the whole transform stack gets inlined at compile time). Shifts count as an arbitrary transform, but mask/exor does not. . Order of mask/shift/exor now matters. Modifications are applied in the specified order. These are NOT EQUIVALENT: .read_cb().set(FUNC(my_state::handler)).mask(0x06).lshift(2) and .read_cb().set(FUNC(my_state::handler)).lshift(2).mask(0x06). . The bit helper no longer reverses its behaviour for read callbacks, and I/O ports are no longer aware of the field mask. Binding a read callback to no-op is not supported - specify a constant. The GND and VCC aliases have been removed intentionally - they're TTL-centric, and were already being abused. . Other quirks have been preserved, including write logger only logging when the data is non-zero (quite unhelpful in many of the cases where it's used). Legacy syntax is still supported for simple cases, but will be phased out. New devices should not have MCFG_ macros. . Standardized "On"/"Off" items in UI menus. "On" is now consistently to the right of "Off", as with dipswitches. . Moved ROM loading macros to romentry.h and removed romload.h from emu.h . Backend modernization (emu\emumem.cpp). Ensure split accesses are always done in increasing addresses order (emu\emumem_heu.cpp). . Eliminated MCFG_DEVICE_VBLANK_INT and use MCFG_SCREEN_RAW_PARAMS in avalnche.cpp, canyon.cpp, nitedrvr.cpp, skydiver.cpp and sprint2.cpp . Removed MCFG macros in 1942.cpp, machine\315_5649.h, arkanoid.cpp, asuka.cpp, beezer.cpp, c140.cpp, c45.cpp, coolridr.cpp, ddenlovr.cpp, dynax.cpp, fitfight.cpp, flicker.cpp, fruitpc.cpp, homedata.cpp, sound\iremga20.cpp, kurukuru.cpp, m72.cpp, m90.cpp, macs.cpp, magtouch.cpp, cpu\mcs40\mcs40.h, metro.cpp, mlanding.cpp, model2.cpp, model3.cpp, mtouchxl.cpp, namco_c116.cpp, namco_c139.cpp, neogeo.cpp, opwolf.cpp, pcat_dyn.cpp, piratesh.cpp, rbisland.cpp, segas32.cpp, shisen.cpp, slapfght.cpp, sound\sp0256.h, taito.cpp, taito_f2.cpp, taito_x.cpp, taitoair.cpp, machine\taitocchip.h, upd7810.h, cpu\nec\v53.cpp, vigilant.cpp and volfied.cpp . Removed timer_set() in irobot.cpp, mappy.cpp, peplus.cpp and cedar_magnet.cpp . Identified CPU type for darwin, ddragonb and maniach . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . VGM player: Added support for GA20, RF5C68 and RF5C164. Fixed NMK112 banked table mask. Added PCM Write handler. Fixed PCM write command and address of chips. Reduced address space usage. Added sound cores to mame\virtual.lua. - UNIX: Fixed crash when running a DRC CPU core under Emscripten (lib\osdlib_unix.cpp) - MAC OS X: Fixed getting unwanted macros and out of discovered "check" - Compiling . Allow passing std::unique_ptr directly to save_pointer and remove now-superfluous .get() in many drivers/devices (emu\save.h and emu\device.h). . Made many class members private and removed dead code exposed. Fixed Clang build [-Werror,-Wunused-private-field]. Some private -> protected are needed for derived classes. . Reduced runtime tag lookups for champbwl.cpp, lastduel.cpp, nmk16.cpp, seattle.cpp, seta.cpp, srmp2.cpp, taito_x.cpp, thedealr.cpp, vegas.cpp, machine\iteagle_fpga.cpp, midwayic.cpp and audio\cage.cpp . Eliminated machine().device usage in chihiro.cpp, megazone.cpp and machine\namco_c148.cpp . emu.h must be the first thing in a compilation unit and nowhere else, or behaviour becomes inconsistent between MSVC and GCC due to how pre-compiled headers are handled in MAME. . Misc cleanup and devcb3 prep. Stuff to make macro removal easier. . Fixed building with Clang 6.0.1 and Microsoft Visual Studio 2015 . Added AppVeyor badge back to README.md (https://ci.appveyor.com/project/startaq/mame) . Allow multiple digits in components of Clang version (makefile) . Updated WebAssembly parameters for current Emscripten (scripts\src\main.lua) . srcclean and some cleanup . Make more #include guards follow standard format - using MAME_ as the prefix makes it easy to see which ones come from our code in a preprocessor dump, and having both devices\machine\foo.h and mame\machine\foo.h causes issues anyway . Get #include "emu.h" out of headers - it should only be the first thing in a complilation unit or we get differences in behaviour with PCH on/off . Added out-of-line destructors to some devices - it forces the compiler to instantiate the vtable in a certain location and avoids some non-deterministic compiler behaviours - Debugger . Removed running_machine::device() call in QT debugger (debugger\qt\deviceinformationwindow.cpp) . Fixed some watchpoints (debug\debugcpu.cpp) 0.199 - New games: El Fin Del Tiempo and Megatouch 7 Encore Edition (9255-90-01 R00, Standard version) - New Working games: Head On (Sidam bootleg, set 2), Head On 2 (Sidam bootleg) and War Mission - New Non-Working games: Hikaru Check ROM Board, Mad Dog II: The Lost Gold (3DO hardware) and Shootout at Old Tucson (3DO hardware) - New clones: Air Hockey (6.12?, encrypted), The Bally Game Show (LG-6) Germany, The Bally Game Show (LU-3) Europe, Bubble Memories: The Story Of Bubble Bobble III (Ver 2.5A 1996/02/21), Come-Cocos (Ms. Pac-Man) (Cocamatic bootleg), Donkey Kong Banana Kingdom (satellite), Ferrari F355 Challenge (twin/deluxe, prototype), Galaxy Wars II (Defender bootleg), Ghost Pilots (prototype), Golden Tee Golf (Joystick, v3.3), Gran Rally (Spanish bootleg of Pole Position II), Hat Trick Hero '95 (Ver 2.6Asia 1994/11/17), Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02), Jump Coaster (World), 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), Power Stone 2 (bootleg), Puyo Pop Fever (World) (GDS-0034), Raiden Fighters (US, newer), Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi (early development board), Strikers 1945 (World, unprotected), Titan (Pac-Man hack) and Viper Phase 1 (New Version, Germany) - New PEPlus games: Player's Edge Plus (PP0472) Deuces Wild Poker, Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (Stratosphere Players Club), Player's Edge Plus (X000827S+XS000002) Red, White & Blue Slots and Player's Edge Plus (X002149P+XP000038) Triple Bonus Poker - New drivers: efdt.cpp and nichild.cpp - New devices: at89c52, at89s52, buggyboyjr_sound, bus_mouse, cdracula_blitter, dcs2_audio_denver_2ch, fantasy_sound, isa8_ec1841_0003, monsterb_sound, mtrap_sound, neocart_mslug3a, nibbler_sound, pballoon_sound, pxa255_periphs, r5900le, reel, sasuke_sound, satansat_sound, tc17g032ap, 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) - MCS-51 MCU: Consolidated internal address maps. Eemoved P0 from ROMless versions since it conflicts with external accesses on hardware. - Motorola MC68000 . Fixed carry flag clear in divs and divu instructions (m68000\m68k_in.cpp). Note: The HP9000/300 selftests hangs in (MESS) hp9k_3xx.cpp. The debugger shows the following code: move.l (a2)+, d0; move.l (a2)+, d1; move d6, ccr; divs.w d0,d1 and loop: bcs.s loop. Clearly this tests whether the carry flag is cleared - the Motorola Reference Manual says it's always cleared. However, in our implementation, it's not cleared on overflow. The divu instruction is always cleared, even on overflow. . Fixed pack instructions (m68000\m68k_in.cpp). Note: The following test code from the 'HP9000/300 series mainframe tests' fails: lea bytes, a0; pack -(a0),-(a1), #$FEDC; move.b (a1),d0; cmbi.b #$E,d0; loop: bne.s loop and bytes: 0x41 0x42. It looks like most of the pack instructions have the byte order wrong, but the pack dx,dy variant seems to have been fixed already. - AD1848 16-bit SoundPort: Swapped the crystals so it's playing at 32Khz instead of 22.05. This fixes all sounds playing too fast in mtouchxl.cpp (ID 06983) - ATAPI CD/DVD-ROM and SCSI CD: 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 successfully tested in Scream Tracker 2.2 - TMS5220 sound . Converted logging calls to logmacro.h standard . Renaming improperly capitalized pseudo-macros and removed pseudo-macros from lvalues. Reorganized savestate values into a sane, maintainable order. Removed the unused, deprecated time_to_ready and cycles_to_ready functions. Fixed the race condition bug with m_buffer_low and m_buffer_empty flags not being updated before setting the interrupt state. Fixed the issue where if no VSM is actually attached to the 5220, the chip will get stuck speaking silence forever if it gets a Speak VSM command. In reality (at least on the tms51xx and probably the same here) the pin reads as open bus/noise, but will eventually hit a stop frame by reading 4 ones in a row. Added/fixed debugger fences for read functions where they were missing, and a write function where it was unnecessary and caused issues when issuing manual writes from the debugger. Changed the types of the flag variables already used for boolean values to bool, and simplified comparisons with them; also renamed the ambiguous m_data_register variable to the more descriptive name of m_read_byte_register. Changed status_read such that reading the status register from the debugger returns a valid value instead of 0, but doesn't otherwise affect the emulation. Make it so the /READY(readyq) callback only changes state to ready after a write during speak external mode, if the write actually completed because there was room in the FIFO. If not, it polls the fifo state every 16 cycles until there is room, and only then asserts the readyq callback. Actually zero the FIFO during initialization and when speak external goes active. Replaced memset calls with std::fill. - 3dfx Voodoo Graphics: Reinstate texture address masking. Fixes segmentation fault in War: The Final Assault. - Floppy: Improved logging, removed status flag ST1.ND on missing IDAM/DAM and added HEAD_LOAD state, used as a spinup delay by some systems (machine\upd765.cpp). - Intel 8275 CRTC: DMA refinements: Exclude FIFO characters from counting towards filling character buffer. Extended DMA up to one character past an "end of DMA" control code. Clean up code slightly. - MC146818 RTC . Don't restart timer unnecessarily . Correct interrupt polarity. This change makes the MC146818/DS128x devices use the regular ASSERT_LINE/CLEAR_LINE protocol like almost all other devices, removing an unexpected surprise. The devices are fairly widely used, so I've tried to review all of those references and check if they're affected. A surprising number of systems appear to have the interrupt hooked up, but were not accounting for the inversion, so this change might possibly correct some behaviour. The behaviour of the following might change: calchase.cpp, hotstuff.cpp, mtouchxl.cpp, pcat_dyn.cpp, su2000.cpp, machine\pcshare.cpp, machine\sis85c496.cpp and bus\lpci\southbridge.cpp. - MC6840 PTM: Fixed divide-by-8 mode. In divide-by-8 mode the value computed in compute_counter() is wrong because the function doesn't divide the clock before the calculation. - PSX GPU: Added missing primitives (video\psx.cpp) - Serial EEPROM: Prevent ambiguity between clock and streaming enable - SVGA: Moved memory mappings to remap routine (isa\svga_tseng.cpp) - TMS9928A VDP: Exposed internal palette using device_palette_interface - Xicor X2212 256x4 NOVRAM: Removed memory interface and clean up code. Added address sanity checking. - Z80 SCC Channel . Removed generic device type 'Z80 SCC' (which nothing was using) and custom MCFG_SCCXXXX_ADD macros . Actually clear interrupt state - 1945kiii.cpp: Minor cleanups. Added notes. - 20pacgal.cpp: Cleanups. Converted palette to device. Moved video start functions into video_start. Reduced runtime tag lookups. Converted some arrays into std::unique_ptr. Make drawing sprite/chars functions related to cliprect. Added notes. Minor cleanup of palette. - 3do.cpp . 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. - acommand.cpp, cischeat.cpp and megasys1.cpp: Initialize VRAM to sane default (video\ms1_tmap.cpp) - alpha68k.cpp . Added addressable latch for type II and V configurations . Update/Cleanup driver and video. ROM region defragmentation. Reduced runtime tag lookups and unnecessary values. - balsente.cpp . Use Intel 8253 PIT device and clean up names. Split NVRAM between two X2212 devices. . Use MC6850 ACIA devices for sound communication - champbas.cpp . 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) - cischeat.cpp . Moved sound irq into YM irqhandler, fixes "orchestral hits" are played off-key during attract mode in Grand Prix Star (ID 00392). . Big Run . Fixed road / sprite priorities . Fixed long standing road colors regression (dawn effect & left edge at start of game) . Hand-tuned sound frequencies to match reference . Initialize VRAM to sane default (video\ms1_tmap.cpp), fixes ugly back pen showing up in Big Run. . Removed the IMPERFECT_GRAPHICS flag. The remaining glitches are BTANBs (ID 03008). . Added backup RAM to Captain Flag . Hooked up sprite DMA to Wild Pilot (fixes flickering) - ddenlovr.cpp and dynax.cpp: Make "Rev. 2" blitter (TC17G032AP-0246 custom DIP64) a device - ddragon.cpp: Cleanups. Fixed bit manipulations. Added object finders instead runtime tag lookups and address_map_bank_device for darktowr_state bankswitching. Fixed ADPCM ROM mapping (both MSM5205s hasn't share ROM space). Fixed bit manipulation. Fixed sprite position regression (ID 07032). - dreamwld.cpp: Documented MCU and fixed MCU ROM region size - 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. - hornet.cpp . Added separate dipswitch settings for Gradius IV . Allows gun to work with default settings in Silent Scope and Teraburst. This fixes 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 - jalmah.cpp . Misc cleanups. Rewrote video emulation using Mega System 1 tilemap devices (video\ms1_tmap.cpp). Fixed second tilemap size for good. Documented extended mahjong inputs. . Otogizoushi Urashima Mahjong: Fixed video priority during gameplay (score display and calls). Emulated video scrolling partial updates, fixes winning animations. Fixed color protection (girls and test mode). Misc cleanups. . Converted 1st version MCU code snippets to ROM. Note: The original MCU actually uploads these into shared work ram area. . Wrote a MCU code snippet for sound banking in Urashima Mahjong/Mahjong Channel Zoom In/Mahjong Daireikai. - kinst.cpp: Killer Instinct driver needs to stay in machine_reset(). Fixes game hangs during attract mode (ID 06988). - ksys573.cpp: Cleanup driver - legionna.cpp, r2dx_v33.cpp, raiden2.cpp and seicupbl.cpp: Eliminated machine().device and hardcoded tags and dependency on palette_device (machine\seibucop\seibucop.cpp) - leland.cpp: Removed more literal tags, splitted redline/offroad/etc. out of Leland state. - ltcasino.cpp: Updated notes. Various minor clean-ups and hooked up ay8910 read ports. - m92.cpp: Cleanup duplicates. Reduced runtime tag lookups. Make EEPROM save/loadable using NVRAM device. Fixed spacing. Splitted machine configs/address maps related to main CPU ROM. Added notes. - megaplay.cpp: Demoted Mega Play games to MACHINE_IMPERFECT_GRAPHICS, because overlay bitmap is wrong (title screen, Mega Play logo, etc...). Added notes of overlay. - meritm.cpp: Small clean-ups - ms32.cpp: Identified CPU types and fixed audio CPU clock - mtouchxl.cpp: Swapped the crystals in AD1848 so it's playing at 32Khz instead of 22.05. This fixes all sounds playing too fast (ID 06983). - neogeo.cpp: Added Japan NEO-MVH MV1C BIOS - ninjakd2.cpp . Basic inheritance. Reduced duplicates and runtime tag lookups. . Attempted to fix bullets not shot by enemies in Omega Fighter - pgm.cpp: Fixed Martial Masters metadata (machine\pgmprot_igs027a_type2.cpp) - 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. - shangha3.cpp: Cleanups. ACCESSING_BITS cleanups. Fixed spacing. Cleanup Oki banking. Demoted Shanghai III to MACHINE_IMPERFECT_GRAPHICS related to MT01002. - snk.cpp: Cleanup unused. Reduced runtime tag lookup. Separated countryc machine configuration and address map. - snk6502.cpp . 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. - starwars.cpp . 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. - tatsumi.cpp . 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/column 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. - vegas.cpp . Updated DCS audio to get San Francisco Rush 2049 closer to working (audio\dcs.cpp) . Reinstate 3dfx texture address masking. Fixes segmentation fault in War: The Final Assault. - williams.cpp . Cleanups. Reduced runtime tag lookups and duplicates. Added input_merger for interrupts. . Fixed naming and converted palette to device for williams_state/blaster_state games . Reduced runtime tag lookups and cleanup duplicates in audio\williams.cpp. Use output finder. . Splitted Speed Ball address map - 39 in 1 MAME bootleg: Splitted Intel XScale PXA255 peripherals into a separate device - 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) changes and correct 'Difficulty' dipswitch - BanBam: Improved BanBam protection simulation. Still imperfect, but all graphics are correct and game doesn't 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). - Cycle Maabou: Bumped sprite size and fixed some missing sprites (for example how to play screen). - Double Dealer: Misc cleanups - 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 - King & Balloon: Fixed King's voice playing (ID 07017) - Major Havoc: Use parallel EEPROM device - Missile Command: Fixed 'Trackball Size' dipswitch (ID 07010) - Monster Bash: Splitted sound board into a proper device - Motogonki: Seems running and showing something. Correct CPU clock, document hidden test mode. Replaced bad prom ($200) dump with fixed one. - Pingu's Ice Block: Redumped Compact Flash card. Added hand-made boot ROMs (modified from dkbanans). - Portraits and Quiz de Hyuu!Hyuu: Demoted games to not working. - Power Instinct . Correct sprite lags. Converted byte swapped gfx into ROM_LOAD16_WORD_SWAP and vblank irq into MCFG_SCREEN_VBLANK_CALLBACK. This fixes in stage of Reiji, Annie and White Buffalo when player character move for sides or double jump you see that objects in background move with issues (ID 06502). . Reduced code duplication and runtime tag lookups. Added notes. - 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. Split 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 - Street Fighter: Cleanups. Reduced code duplication, RAM usage of tilemap and runtime tag lookups. - Strikers 1945: Fixed maincpu length in clone Strikers 1945 (Japan, unprotected) - Tetris (set 1): Replaced NVRAM with parallel EEPROM. Hook up I8749 MCU to get working sound in clone Tetris (bootleg set 3) - Trojan: Fixed DIP location numbering (ID 07020) - Truco Clemente: Allow multiple coin insertions - Video Poker: Clean up - War Gods: Fixed Sound D/RAM chip and "Listen for Tone" failing during the post (ID 03472) - 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). - Williams Multigame: Make game working again. Cleanups. Added address_map_bank_device for IO Bankswitching, machine_start/reset instead MCFG_MACHINE_START/RESET and save state. Fixed naming and crash. - Xain'd Sleena: Clean up. Reduced code duplication and literal tags. - Dipswitch fixes in asteroid.cpp, ltcasino.cpp, tatsumi.cpp, trucocl.cpp and vicdual.cpp - Fixed rom names in bking.cpp, itech8.cpp, fastfred.cpp, leland.cpp, meritm.cpp, neogeo.cpp, system1.cpp and taito_f3.cpp - Description changes of The Bally Game Show (LA-3), The Bally Game Show (LU-4) Europe, Cabaret Show, The King of Fighters 2003 (NGM-2710, Export), Player's Edge Plus (X002150P+XP000038) Triple Bonus Poker, Raiden Fighters (Japan, earlier), Raiden Fighters (Japan, earliest), Raiden Fighters (Japan, newer), Raiden Fighters (US, earlier), Trophy Hunting - Bear & Moose V1.00, Trophy Hunting - Bear & Moose V1.00 (location test) and Turkey Hunting USA V1.00 - Renamed (dynamoah) to (dynamoaha), (gs_l3) to (gs_la3), (gs_l4) to (gs_lu4), (gtg) to (gtgj31), (jumpcoas) to (jumpcoasa) and (puyofev) to (puyofevj) - MAME . 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 . ROMLOAD . 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 . DEVICES . 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, othello.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 (calcune.cpp, konamigx.cpp, megatech.cpp, midyunit.cpp, model2.cpp, multigam.cpp, munchmo.cpp, segac2.cpp, segas18.cpp, video\315_5313.cpp and video\k054338.cpp) . Removed machine().device usage from beathead, by17, by35, cave, coolpool, cps3, dfruit, dkong, dvk_kcgd, foodf, gridlee, hyprolyb, irobot, itech32, jedi, jpmimpct, jpmmps, jpms80, kaneko16, mario, mcr, mcr3, mystston, phoenix, pkscram, pleiads, polepos, redalert, scramble, segag80r, segag80v, segas24, sis85c496, slapstic, snk6502, starwars, stv, subsino2, 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) . Misc device finder / private members (jongkyo.cpp, namcos86.cpp, nsmpoker.cpp, pachifev.cpp, pinkiri8.cpp and system1.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. . Lift some stuff needed by devcb3 out of address map entry . Get rid of some overloaded names - a lot of these will become unnecessary after new memory and devcb are ready. . 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) . Make it possible to set screen update functions without macros without syntax that looks absolutely terrible (emu\screen.h) - examples will come with DEVCB3. . PLUGINS . 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 - Compiling . Added asserts to detect tag being set after object resolution and resolved multiple times . Added AppVeyor build configuration (appveyor.yml) . Fixed SUBTARGET=virtual (cripts\target\mame\virtual.lua) . Made m68000 makefile respect the VERBOSE build optio (m68000\makefile) . Removed emupal.h from emu.h . Enable building on RISCV64 - Debugger . Added command for go_exception . Make save/load support virtual memory. This makes these commands useful and consistent with dump in a virtual memory environment. One minor issue is what to do with save for an unmapped memory address: the approach taken here is to write the space.unmap() value, which seems the least harmful. On load, unmapped addresses are not written to, meaning that save/load with a constant address map work as expected. 0.198 - New games: Jikkyou Powerful Pro Yakyuu EX '98 (GC811 VER. JAA), Keirin Ou, Tom Tom Magic and World Adventure - New Working games: Capcom Vs. SNK Millennium Fight 2000 Pro (Japan) (GDL-0004), Cleopatra Fortune Plus, Coco Loco (set 3), Genius 6 (V110F), IQ Block (V113FR, gambling), Shuzi Leyuan (V127M, gambling) and 'unknown Sidam poker' - New Non-Working games: Air Hockey (6.03, encrypted), Donkey Kong Banana Kingdom (host), Fonz [TTL], The King of Fighters - Road to Revenge / The King of Fighters 2002 Unlimited Match, LD Quiz dai 4-dan - Kotaetamon Gachi! (Japan), Motogonki, Multi Game V (AMGHU_V83.65), Pop'n Run - The Videogame (set 1), Sharpshooter (coin pusher), 'unknown Ace System 1 game' and War Mission (WM 4/6/87) - New clones: Batman (1.03 France), Battle Balls (Germany, earlier), Bow & Arrow (Prototype, rev. 22), Centipede (Japan, revision 3), Donkey Kong Junior (US, bootleg?), Final Fight (Japan 900405), Grand Champion (set 2), Grand Champion (set 3), Karate Blazers (World, Tecmo license), The King of Dragons (World 910731), Last Mission (World revision 8), Marvel Super Heroes (Brazil 951024), Naughty Boy (bootleg, set 2), Pit Boss Superstar III 30 (9233-00-06, California version), Pop'n Run - The Videogame (set 2), Real Puncher (Japan, v2.12J), Sengoku 3 / Sengoku Densho 2001 (set 2), Spy Hunter (Spain, Recreativos Franco S.A., Bally Midway license), Strider 2 (Euro 991213), Street Fighter II': Champion Edition (bootleg with level selection), Tapper (Budweiser, 1/27/84), Trophy Hunting - Bear & Moose V1.0 (location test), V-Liner (v0.53), V-Liner (v0.7e), V-Liner (v0.7a), World Heroes 2 (ALH-006) and World Soccer Finals (rev 4) - New drivers: dynamoah.cpp, gamemasters.cpp, segattl.cpp and y2.cpp - Removed drivers: strnskil.cpp - New devices: 315_5649, dckb, igs_bitswap, igs_incdec, lba_enhancer, locomotn_audio, model1io2, tms32030, voodoo_2_pci, voodoo_banshee_pci, voodoo_3_pci and zn428e - Hitachi SH-4 CPU: UML implementations of FABS, FCMP_EQ, FCMP_GT, FLDI0, FLDI1, FLOAT, FNEG, FRCHG, FSCHG, FSTS and FTRC. Optimized some implemented UML. Fixed SR state in new CMP implementations. - Intel I8086 CPU: Fixed HALT state - MCS-51 MCU . Added more interrupt and timer registers to debug state . Eliminated atrocious hack for breaking out of INT0 polling loops . Minor DASM fix for case 0x95 - NEC V60 CPU: Fixed disassembly of branch opcodes (displacement is signed) - Texas Instruments TMS32031 CPU: Added TMS320c30 and basic hold/holda support. For some reason there was no TMS320C30 device, so it's been added. Stubbed in basic HOLD/HOLDA line/callback support which is used to suspend DSP external bus access, and used by the InterPro EDGE graphics boards under development. This change doesn't actually change the 'C30 behaviour yet, but allows the external device to get an acknowledgement and proceed. - Texas Instruments TMS9995 CPU: Fixed latching of pulsed interrupts - Toshiba TMPZ84C015 CPU: Added missing callback for CTC ZC3 - AICA sound: Changed register names to match development manual, documented unimplemented registers and flagged imperfect features. - Exidy sound: Better split of state classes. Added device finders and input merger. General cleanup (audio\exidy.cpp) - Hudson HuC6280 sound: Implemented LFO. Fixed channel check when LFO is enable. Added notes. - NEC uPD7759 sound: Fixed uPD7759 class hierarchy, and reset callback before resolving it. - QSound (HLE): Better rnd on negative (dsp16\dsp16core.ipp). Fixed condition mask in disassembler (dsp16\dsp16dis.cpp). - Ricoh RF5C68 sound: Added save states. Added device_rom_interface, because Datasheet says it's can connect with ROM. Added rom_bank_updated and device_memory_interface instead device_rom_interface. - Sound stream: If stream->update() is done going back in time (originating from different devices at a different execution point), don't try to generate a negative number of samples (emu\sound.cpp). - 3dfx Voodoo Graphics . Use device finders instead of machine().device. Deal with needing to be able to configure screen/CPU or set them at start in a safer way (video\voodoo.cpp). . Created devices for each of the voodoo PCI cards - ADC0808 A/D Converter: Reduced CPU overhead by smarter timer usage. Made timing more accurate to the datasheet. - ATA Interface: Get abstract_ata_device working again - needs a better solution long-term (machine\ataintf.cpp) - Data East Custom . Internalize palette for boogwing.cpp and deco32.cpp (video\deco_ace.cpp) . Splitted supbtime.cpp driver into video and includes . Allowed internal register read-back on DECO HuC6280/YM2151 sound system. Cleanup driver and duplicates (boogwing.cpp, cbuster.cpp, cninja.cpp, darkseal.cpp, dassault.cpp, deco32.cpp, dietgo.cpp, funkyjet.cpp, madmotor.cpp, rohga.cpp, supbtime.cpp and vaportra.cpp) . Moved dragngun*/lockload* specific m_sprgenzoom into dragngun_state (deco32.cpp) - EEPROM: Set default EEPROM clock to zero (machine\eepromser.h and drivers\popeye.cpp) - HuC626x video: Use required_device instead of explicit lookups for HuC6261 and HuC6272. Internalized palette HuC6260. - Intel 8255 PPI: Improved readback of port C high output latches when port A is in Mode 1 (see https://github.com/mamedev/mame/pull/3544) - Intel 8259 PIC: Use device_resolve_objects - Intel 8275 CRTC: Blank top and bottom row lines when underline is greater than 7. Start offloading parts of the device_timer routine to helper functions. Allow side effects of reads to be disabled. - ISA: ISA devices now have the possibility to remap themselves. * ISA bus managers have a list of their slots. * ISA bus managers and device base classes have a new virtual method remap(). * Modify the ET4000 ISA device to support the new method. Currently ISA devices map themselves in their address space ranges only in device_start() and if something unmaps them, they are not visible anymore remap(int space_id, offs_t start, offs_t end) of the isa bus manager can be called to tell devices that if they have mapped something in address space space_id from start to end they should remap themselves. - Konami PowerPC Common Functions: Use device finders and eliminated machine().device(tag) (machine\konppc.cpp) - Nintendo Custom: Make palette internal to device (video\ppu2c0x.cpp; drivers\cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp). Changed NMI to line callback. - PCI . PCI devices now have the possibility to remap themselves. Like in the ISA bus remap (int space_id, offs_t start, offs_t end) of the PCI bus manager can be called to tell devices that if they have mapped something in address space space_id from start to end they should remap themselves. It will be used with system management mode. . PCI devices can ask to be mapped before the others. Will be used by the ISA bridge in the southbridge. - Sega Custom . Converted Sega 315-5649 I/O Controller to device. Allow side effects of analog read to be disabled (machine\315_5649.cpp). Moved index parameter into template. . Improved 315-5338A I/O Controller and clean up . Interrupt callback modernization of Sega 315-5250 Compare/Timer - TI TLC34076 video: Converted implementation to use device_palette_interface. m_pens is unnecessary now. - VGA: Cleanup machine().device - Z80 CTC: Disabling a channel interrupt also turns it off - Z80 DAISY: Implemented independent RETI decoding. Moved z80daisy* to devices\machine. - 1945kiii.cpp: Added sprite color flashes (ID 06971). Reduced palette size. Fixed OKIM6295 reads so fewer samples play on stopped channels. - aces1.cpp: Minor documentation update - alpha68k.cpp: Cleanups and clock corrections (gangwars, sbasebal and skyadvnt). Sound interrupt frequency correction. - argus.cpp: Fixed sound writes (second YM2203 has not implemented). Cleanup duplicates. Reduced runtime tag lookups. - asteroid.cpp . Swapped start LEDs and suppress logging for many spurious writes . Configure all lamp/LED outputs as line callbacks in asteroid, astdelux and llander. . Added cocktail configuration that flips screen for 2nd Player - astrocde.cpp: Driver and device modernization. Renamed sound device, documented pinout and added input and output callbacks. Added addressable and non-addressable output latch devices. Added watchdog timers for most games. Use memory maps instead of hacking in handlers in DRIVER_INIT. Split up base class a little. - atarigt.cpp: Removed some calls to state() - atarisy4.cpp: Get rid of static state - atlantis.cpp: Added missing MCFG_VIDEO_SET_SCREEN. This fixes Fatal error: No screen specified for device ':zeus2' (ID 06962) - blitz68k.cpp: Replaced machine().device with finder - cdi.cpp: Use device finders instead of machine().device, plus some driver_device cleanup. - cinemat.cpp: Splitted out stuff unique to Demon and QB-3 (prototype), use virtual methods a bit more. Cleanup/separation - no longer needs a selector member or start overrides. - citycon.cpp and ikki.cpp: Added MCFG_SCREEN_RAW_PARAMS - coolridr.cpp: Use 315-5649 I/O Controller device - cps1/2.cpp: Separated state class - dooyong.cpp: Cleanup. Changed sprite layouts. Added input_merger_any_high_device for YM2203 irq handler. - exidy440.cpp and vertigo.cpp: Use finder for audiocpu instead of absolute tag lookup. Improved encapsulation for audio device (audio\exidy440.cpp). - f1gp.cpp: Added some undocumented dipswitches and the possibility to use 4-way joysticks - fuukifg2.cpp: Minor cleanups. Fixed gfxdecodes and spacing. - fuukifg3.cpp: Minor cleanups. Fixed YMF278B handler and spacing. - gaelco2.cpp . Verified Dallas DS5002FP clock for World Rally 2. No serial EEPROM for this game. . Updated some PCB layouts to be more accurate . Verified MCU clock for Touch & Go - galaxia.cpp: Added notes - goldngam.cpp: Added devices - highvdeo.cpp: Cleanup drawing (related by cliprect). Splitted machine config and address map per each games. Cleanup duplicates. Added output finder. Cleanup ROM loading. Added precalculated color for game with drawing directly RGB565. - jaguar.cpp: Cleanups. Added address maps related from rom board (for cojags). Reduced runtime tag lookups. Moved bankswitch configurations into machine_start. - jpmsys5sw.cpp: Fixed uPD7759 class hierarchy, and reset callback before resolving it. This fixes debug assert in all JPM System 5 sets (ID 05484). - kinst.cpp: Fixed driver screw-up that effectively prevented loading non default BIOSes - leland.cpp . Cleanup duplicates. Added generic_latch_16_device for maincpu to soundcpu comms. Improved tags. Reduced runtime tag lookups. Make drawing function relate to cliprect. Background is tilemap. . Moved audiocpu to device and removed frequent tag lookup . Split out ataxx-specific stuff from base state class. Optimised use of tilemap. - ltcasino.cpp: Preliminary palette hookup. Added "Demo Sounds". Added PCB layout for clone 'Mini Vegas 4in1'. - luckgrln.cpp: Use output finder and arrays. Added save state. Removed outdated notes. - m72.cpp: Simplified gfx layout - m90.cpp: Cleanup duplicates. Added user_data for tilemap ram base. Reduced runtime tag lookups. Fixed rowscroll bias between layers. - magictg.cpp: Cleanup driver - markham.cpp: Merged strnskil with markham driver. Modernization driver and cleanups. Added MCFG_SCREEN_RAW_PARAMS. Added coin counters to markham, strnskil, banbam and clones. - model1.cpp and model2.cpp . Improved Model 1 I/O board interface and drive board read/write callbacks (machine\model1io.cpp). Redumped epr14869b.25 used by Virtua Fighter and Star Wars Arcade (machine\model1io.cpp). . Acknowledge IRQs explicitly for Model 1; use MB8421 DPRAM device for Model 1/2. . Emulated the I/O board used by Virtua Cop, Wing War and Netmerc. Improved dipswitches. Hook up watchdog MB3773. Map second RS232 port and connect control signals. Clock for 315-5338A and MSM6253 (machine\model1io2.cpp). . Use 315-5649 I/O Controller device for Model 2. Improved and clean up all inputs. Fixed input issue with srallyc (possibly others). . Model 2 use required_device_array for timers - namcond1.cpp: Eliminated some explicit device tag lookups (namcond1.cpp and video\ygv608.cpp) - namcos21.cpp: Demoted Cyber Sled and Solvalou to not working, added notes describing the issue - naomi.cpp . Preliminary keyboard emulation, hooked up to 'The Typing of the Dead', 'La Keyboard' and 'Lupin The Third - The Typing' (machine\dc-ctrl.cpp). . New Working games: Capcom Vs. SNK Millennium Fight 2000 Pro (Japan) (GDL-0004) and Cleopatra Fortune Plus . Fixed dreamcast controller ID values in fixed_status, makes it possible to surpass VMU not found errors in DC games by pressing start (machine\dc-ctrl.cpp). - neogeo.cpp . Added US MVS (U3), Japan MVS (J3, alt) and UniBios 3.3. . Moved start buttons to controllers, clean up NEO-FTC1B board a little. . SIT and FTC1B are only compatible with MV-1B/MV-1C cost-reduced boards . Allow AES joystick to be connected to arcade systems with D-sub connectors (common for "consolised" use) . Pass through Select input from D-sub connectors on JAMMA variants . Default to Japan BIOS for fixed software using mahjong panel (Euro BIOS doesn't support mahjong panel) . Use JAMMA joystick panel for 'Mahjong Kyo Retsuden' since (doesn't support mahjong panel in MVS mode) . Allow controls to be changed for MVS mahjong games (only BIOS and bakatono support joysticks, but still useful) - nmk16.cpp . Simplified gfx layout. Fixed spacing. . Fixed Thunder Dragon 2 bankswitching - popeye.cpp . Adjust Popeye and Sky Skipper layer positions to match tests on real hardware . Added preliminary emulation of the corruption on the Popeye bootleg logo caused by x flipped and non x flipped sprites being displayed right next to each other. . Use USE_NEW_COLOR only to switch between 680 & 1300 resistor in Sky Skipper - rbmk.cpp: Use device finder. Removed NMI interrupt from AT89C4051 MCU which has no NMI line. - redalert.cpp: All games have the same sound start anyway (audio\redalert.cpp) - royalmah.cpp: Eliminated machine().device - sangho.cpp: Get rid of some MACHINE_(START|RESET)_MEMBER - sanremo.cpp: Use output finder and added save state support - segac2.cpp: Fixed uPD7759 class hierarchy, and reset callback before resolving it (fixed assert in Sega C2). - segas18.cpp: Reduced runtime tag lookups. Added output finders. - segas32.cpp: Reduced runtime tag lookups. Fixed bit manipulations. - seibuspi.cpp: Fixed middle layer row scroll (video\seibuspi.cpp) - stv.cpp . (video\stvvdp1.cpp) . Fixed transparent sprite shadows (Game Tengoku and (MESS) Pretty Fighter X) . Disable transmask code for mode 2 sprites, fix Sasissu racing stage background clouds color. . (video\stvvdp2.cpp) . Disable ROZ optimization if mode is either 2 or 3, fixes at least (MESS) 'Bulk Slash' and 'Death Crimson' ROZ layer bugs. . ROZ fixes for Radiant SilverGun Xiga stage . Support for line windows. Undocumented behaviour: Rotation parameter read control seems to mirror/have a correlation in the subsequent register. . Don't repeat ROZ when screen over process is equal to 1, fixes (MESS) D-Xhird practice stage. . Implemented vertical cell scroll ((MESS) Sonic Jam) . Fixed potential bug with window Y sizes when double density interlace is enabled . Fixed illegal sprite mode in diehard and dnmtdeka (ID 04539) - system16.cpp: Reduced runtime tag lookups. Fixed bit manipulations. Reduced duplicates. - taito_b.cpp: Added clock for TC0180VCU and use device finder instead of machine().device - taito_z.cpp . Dumped motor CPU ROM for Chase H.Q. and added detailed hardware description . Put subwoofer closer to observer than front centre in chasehq and nightstr - taitogn.cpp: Cleanup duplicates - tatsumi.cpp . Reduced runtime tag lookups. Fixed region tags. Move CLUT'ed tile expand functions into video_start. Reduced duplicates. . Demoted Cycle Warriors and Apache 3 to not_working (missing important game elements) . Added preliminary row/column scroll enable for tilemaps, fixes background scrolling and foreground text in Cycle Warriors. Improved road colors. - toaplan2.cpp . Reduced duplicates. Removed unnecessary things. Reduced runtime tag lookups. Fixed DMA'd palette/text things. Added input_merger_any_high_device for batrider sound IRQ. . GP9001 Video: Minor cleanups. Reduced duplicates. Make sprite draw function related by MAX_SPRITE (it's possibly lower than 256 at real hardware). - vamphalf.cpp . First pass dedeprecation/splitting class up. Misc corrections. . Added PCB layout for Boong-Ga Boong-Ga (Spank'em!) . Secured a second PCB and redumped the graphics roms for clone Lup Lup Puzzle v1.05 - vectrex.cpp: Fixed probable bug with lightpen-triggered interrupt (video\vectrex.cpp) - vsnes.cpp: Device finder cleanup - witch.cpp . Fixed colors . Merged memory maps and moved state machine data into header file - williams.cpp and wmg.cpp: Clean up scanline timers - 39 in 1 MAME bootleg: Use finder array for DMADAC - Blomby Car: Added optical and potentiometer wheel inputs - Centipede: Correct PSG type in clone Magic Worm (bootleg of Centipede, set 1) - Coco Loco: Redumped the bitrotten rom c1.bin in clone Coco Loco (set 3) (Game now playable) - Crazy Rally: Documentend PALs for clone Crazy Rally (Gecas license) - Cube Quest: Fixed cache endianness - Cyber Commando: Put rear speakers behind - Dragon Master: Fixed output because both PCB and chip doesn't support stereo - Genius 6: Emulated the protection (Game now playable) - Godzilla: Kludge a few weird Godzilla collision checks - Gunpey . Implemented emulation of AG-1 real sprite decompression agorithm. Avoid intermediate buffer. . Minor cleanups. Fixed object finder. Converted VRAM into std::unique_ptr. Cleanup duplicates. - High Seas Havoc: Decapped PIC16C55 - IQ-Block: Emulated the protection in clones IQ Block (V113FR, gambling) and Shuzi Leyuan (V127M, gambling) (Games now playable) - The Irritating Maze: Added color lamps to layout. On the real cabinet, these are behind the marquee. Fixed timer lamp order. They now follow the order of the test menu and match recorded footage. Changed size of screen, and most lamps to better match the real cabinet. Changed CPO button/trackball color to better match the real controls. Fixed clickable start button. - Lucky Girl: Updated decryption. Plaintext seems correct, but needs quite a lot more work. - Major Havoc: Use array finder for POKEYs and device finder for TMS5220 - Mighty Guy: Hooked up NB1412M2 protection. Improved sound capabilities, makes Mighty Guy to have a sense sound wise. Added DAC sound. - Missile Command: Fixed displayed DIP to match actual/manual display for R8 (ID 06966) - Multi Champ Deluxe: Verified different sound sample rom for Multi Champ DX as bit-rot - Pesadelo (bootleg of Knightmare on MSX): Fixed address line swap - Pingu's Ice Block: Redumped Compact Flash card. Note: Sectors 2-255 is empty (2 sectors of header / file list and 252 sectors of main.abs ELF executable), which makes this dump almost useless. - PinMAME: Quick protection before freeze for atari_s1.cpp, jeutel.cpp, rowamet.cpp and spectra.cpp - Renegade: Fixed bit manipulations - Rohga Armor Force: Fixed background color of title screen in clone Wolf Fang - Run and Gun: Added coin counters. Improved sound mixing. Minor cleanups. - Seibu Cup Soccer bootlegs: Fixed device chip endianness (machine\seicopbl.cpp). Jumping is done with case 0x0905. Hookup layer disable. Fixed some sprite priorities. - Simpsons Bowling: Separated state class and use required_device_array - Space Invaders: Correct clone Space War (Sanritsu) romset - Spiders: Use required_device_array for PIAs and input merger for IRQ - Submarine (Sigma): Added flip screen support. Splitted driver into video and includes files - Subs: Eliminated set_led_value by binding outputs directly to callbacks - Tapper: Latest version of Tapper known to come with "standard" graphics roms. Created the version with alternate graphics. Unknown if those graphics are hacked or a later revision. - Top Speed: Dumped motor CPU ROM. Minor cleanups. Added arrays for reduce duplicates. Added macro for when 64 bit ROM data bus case (emu\romload.h). - unknown Sidam poker: Added decryption and make the cards appear (background tilemap) (Game now playable). - Venture: Added proms - X the Ball: Correct latch type - Fixed year info for groovef, popn2 and popn3 - Dipswitch fixes in aerofgt.cpp, coolridr.cpp, f1gp.cpp, iqblock.cpp, markham.cpp, missile.cpp, model1.cpp, model2.cpp and wallc.cpp - Fixed rom names in aerofgt.cpp, bionicc.cpp, gaelco2.cpp, galaxian.cpp, namcos2.cpp, pgm.cpp, pgm2.cpp, starwars.cpp and vamphalf.cpp - Description changes of Battle Balls (Germany, newer), Bow & Arrow (Prototype, rev. 23), F1 Grand Prix (Nuova Bell Games), Final Lap 3 (World, Rev C), Final Lap 3 (Japan, Rev C), Fire Hawk (World) / Huohu Chuanshuo (China) (horizontal), Fire Hawk (World) / Huohu Chuanshuo (China) (switchable orientation), Grand Champion (set 1), Grand Tour (V100U), Got-Ya (12/24/1981), Hong Tian Lei (A-Blast) (Japan), Hong Tian Lei (A-Blast) (bootleg), IQ-Block (V100U), IQ Block (V113FR, gambling), Kuai Da Shizi Huangdi (China?, Revised Hardware), Naughty Boy (bootleg, set 1), pgm.cpp games (over 100), Pit Boss Superstar III 30 (9233-00-01, Standard version), Real Puncher (World, v2.12O), Sengoku 3 / Sengoku Densho 2001 (set 1), Senkyu (Japan, newer), Senkyu (Japan, earlier), Shuzi Leyuan (V127M, gambling), Super Contra - Alien no Gyakushuu (Japan), Toushin Blazers (Japan, Tecmo license), unknown Sidam poker, V-Liner (v0.6e) and V-Liner (v0.54) - Renamed (ffightj3) to (ffightj4), (lastmisn) to (lastmisnu6), (lastmisno) to (lastmisnu5), (strider2) to (strider2u), (tapper) to (tapperg), (vliner) to (vliner6e), (vlinero) to (vliner54) and (wsf) to (wsf3) - MAME . DEVICES . Concrete device types now have a call operator that instantiates a device. This change means you *must* use DECLARE_DEVICE_TYPE to declare the public interface of your device, even if it's device_t. If you want to use private implementation classes, use DEFINE_DEVICE_TYPE_PRIVATE and instantiate the object finders. . Make devopt menu localisable (ui\devopt.cpp). Make machine_config aware of device being configured so owner doesn't need to be passed everywhere. . Device callback (emu\devcb.cpp) . Write callbacks can now be configured as 'OUTPUT("item_name")'. This behaves equivalently to a zero-dimensional 'output_finder', while eliminating the need to instantiate and resolve this in driver classes separately from the callback itself. . The width of a callback's default mask now properly depends on its type (as was half-implemented before), instead of always being reset to 0xffffffffffffffff when actually configured. This allows MCFG_DEVCB_INVERT to work with line write callbacks as one might logically expect. . Use new OUTPUT callback object in various (mostly Atari) drivers (atarisy1.cpp, avalnche.cpp, bsktball.cpp, canyon.cpp, centiped.cpp, cloak.cpp, cloud9.cpp, destroyr.cpp, dragrace.cpp, firefox.cpp, gridlee.cpp, liberatr.cpp, mcr3.cpp, orbit.cpp, pacman.cpp, rallyx.cpp, sbrkout.cpp, sprint2.cpp, sprint4.cpp, starwars.cpp, suprloco.cpp, tankbatt.cpp, tomcat.cpp, ultratnk.cpp and warpwarp.cpp) . Set finder tag relative to current device being configured rather than the finder's owner. This meand you no longer need to care about the your relationship to the object being configured and a lot of ^ and : can disappear. There's a bit reduction in string pasting in macros from this. . Bind devcb relative to current device. This is probably going to break plenty of things with late bind errors. . Route sound relative to current device. Slot card additions run in the context of the slot itself, which isn't entirely intuitive. Slot configuration needs a bunch of other cleanup anyway (emu\disound.cpp). . Use device_resolve_objects to resolve callbacks in output_latch_device. Renamed machine\latch.cpp/h to machine\output_latch.cpp/h. . Allow devcb to be bound to a device/mixin or the target of a device finder. This works outside machine configuration context so the workarounds in ATA HLE and MSX slots are no longer necessary. It also allows reduction in tag repetition in machine configuration (see converted (MESS) osborne1.cpp, zorba.cpp or the more extreme tranz330.cpp). Allow reimagined device instantiation to take a device finder based on current device being configured to reduce repetition (see tranz330.cpp). . Make MCFG_DEVICE_ADD and callable device types more flexible: . Allows defaulted clocks (see subtle example with vboy) . Allows additional constructors (see RS232 port in tranz330) . Allows use of device finder in place of tag in MCFG_DEVICE_ADD . Requires out-of-line destructor for devices using incomplete types . Requires XTAL or explicit u32 for clocks for devices with private types . Devices must still define the standard constructor. When writing additional constructors, be aware that the constructor runs before device_add_mconfig in the context of the existing device, not the new device. See osborne1, zorba, tranz330, and vboy for examples of this in use. Compilation is a bit slower, but this is temporary while refactoring is in progress. . Eliminated the need for MCFG_SOUND_ROUTE_EX . Removed macros from slot option configuration - they just obfuscated code and slowed it down with needless dynamic casts, but didn't actually simplify it. . Streamline machine configuration macros - everyone's a device edition. . Start replacing special device macros with additional constructors, starting with ISA, INTELLEC 4 and RS-232 buses. . Allow an object finder to take on the target of another object finder. For a combination of the previous two things in action, see either theINTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out looping over a device finder array to instantiate devices in some places. Lots of things no longer need to pass tags around. . Start supplying default clocks for things that have a standard clock or have all clocks internal. . Eliminated the separate DEV versions of the DEVCB_ macros. Previously, the plain versions were a shortcut for DEVICE_SELF as the target. You can now supply a string tag (relative to current device beingconfigured), an object finder (takes on the base and relative tag), or a reference to a device/interface (only do this if you know the device won't be replaced out from under it, but that's a safe assumption for your subdevices). In almost all cases, you can get the effect you want by supplying *this as the target. . Eliminated sound and CPU versions of macros. They serve no useful purpose, provide no extra checks, make error messages longer, added indirection, and mislead newbies into thinking there's a difference. . Removed a lot of now-unnecessary ":" prefixes binding things relative to machine root. Clean up some miscellaneous rot. . Make cards inherit clock from slot by default. Make speaker config more explicit. Added a couple more constructor options. . Get rid of implicit prefix for GFX decode names and prefix them all. Get rid of special macro for adding GFXDECODE in favour of constructor. Make empty GFX decode a static member of interface. Allow palette to be specified to GFXDECODE as a device finder. Removed diserial.h from emu.h as it's used relatively infrequently. . Added support for custom device constructors when replacing devices. Current syntax: MCFG_DEVICE_REPLACE(tag_or_finder, TYPE, ...). Next-generation syntax: TYPE(config.replace(), tag_or_finder, ...). Get rid of the token-pasting voodoo and casts in the discrete sound macros. . Eliminated some explicit device tag lookups (drivers\namcond1.cpp, machine\nb1413m3.cpp, video\antic.cpp, video\tia.cpp and video\ygv608.cpp) . Eliminated non-diexec PULSE_LINE hacks and disable some side effects . Interrupt API changes (emu\diexec.cpp): PULSE_LINE is no longer a value. Existing uses have been changed to pulse_input_line with attotime::zero as the second argument. Formerly only INPUT_LINE_NMI and INPUT_LINE_RESET were allowed with PULSE_LINE. INPUT_LINE_NMI no longer receives special handling; instead, CPU devices must specify which of their input lines are edge-triggered and thus may be used with zero-width pulses by overriding the execute_input_edge_triggered predicate. INPUT_LINE_RESET is still special-cased, however. execute_default_irq_vector now allows a different default vector to be specified for each input line. This added flexibility may or may not prove useful. . machine().device(tag) is now deprecated . Removed machine().device usage from the core (emu\addrmap.cpp and diexec.cpp), suprnova.cpp and playch10.cpp . Kludge some absolute tag lookups in the core that can't really be helped (debug\debugcmd.cpp, debugcpu.cpp, emu\romload.cpp and schedule.cpp) . Removed many mainly PCI-related MCFG macros in favour of constructor overloads, removed some absolute device lookups, removed some absolute device tags and generally clean up stuff. Fixed incorrect device class for PCI APIC. . Use device finder for exterm.cpp, igs011.cpp, looping.cpp, mhavoc.cpp, r2dtank.cpp, rbmk.cpp, taito_b.cpp, tp84.cpp, vcombat.cpp, machine\konppc.cpp, video\k001005.cpp and audio\exidy.cpp . Use device finders instead of machine().device for video\voodoo.cpp and looping.cpp . Replaced MCFG_CPU_VBLANK_INT with line callbacks in jantotsu.cpp and mrjong.cpp . INPUT/OUTPUT . Output system changes: Cleaned up syntax for network provider. Added pause and savestate commands to both network and win32 providers (output\network.cpp, output_module.h and win32_output.cpp). . Use output finder for 30test.cpp, berzerk.cpp, caswin.cpp, dblcrown.cpp, dynadice.cpp, fortecar.cpp, funtech.cpp, galaxi.cpp, gatron.cpp, highvdeo.cpp, mappy.cpp, meyc8088.cpp, mil4000.cpp, pacland.cpp, sanremo.cpp, segas18.cpp, subsino.cpp, tenpindx, usgames.cpp, machine\ticket.cpp and audio\exidy440.cpp . Replaced set_led_value and set_lamp_value with output_finders. Keep the 2 bit lamp outputs in segaufo.cpp. . Get rid of the assert replacement (emu\emucore.h). It prevents you from using assert in a destructor for a literal type due to the implicit nothrow. It's just not worth the trouble it's causing. . Clean up some line write handlers (sound\namco.cpp and audio\polepos.cpp; gaplus.cpp, jrpacman.cpp, mappy.cpp, pacman.cpp, pengo.cpp and polepos.cpp) . Fixed faulty assertion that was breaking (MESS) nes_vt.cpp in debug builds (emu\dipalette.cpp) . Renamed direct_read_handler to memory_access_cache. Parametrize the template on more information (data width, endianness) to make it possible to turn it into an handler cache eventually, and not just a memory block cache. Make it capable of large and unaligned accesses (emu\emumem.cpp). . Removed DRIVER_INIT-related macros in favor of explicitly-named member functions. Made init_ prefix on driver initializers explicit. Fixed up GAME/COMP/CONS macro spacing. . Use siblingdevice instead of absolute tag lookup. Added screen tag validation for scanline timers (machine\timer.cpp). . Eliminated extraneous machine argument (emu\romload.cpp) . Removed unused tag look-up in atarisy2.cpp, malzak.cpp and pgm2.cpp . 3rdparty: Initial import of SoftFloat release 3E. This is a pre-usage import so everyone can get things in line for various compilers. GCC/Clang should be OK on most targets as-is. MSVC may need to edit 3rdparty/softfloat3/build/MAME/build.h to conform. Please report failure/success with various compilers. . PLUGINS . Fixed opcode space (plugins\cheat\cheat_xml.lua) . Translate debugger expressions by space index as the debugger does (plugins\cheat\cheat_xml.lua) . Handle the case where the ui prepends the list name to the list entry name . Updated hiscore.dat (plugins\hiscore\hiscore.dat). Make hiscore\sort_hiscore.lua much faster. . Multi-Language: Updated Brazilian Portuguese, Chinese, Dutch, German, Greek, Japanese, Korean and Spanish translations - SDLMAME: Disabled multithreading on the Emscripten target (osd\osdsync.cpp) - Compiling . Begin preliminary GCC 8 support . Don't use C++ flags on plain C files (scripts\genie.lua) . set_tag can now take things other than C strings - Debugger . Replaced references to 'decrypted opcodes' with 'opcodes' (debug\debughlp.cpp) . Simplified now obsolete and buggy memory access code (debug\debugcpu.cpp) . Make debugger dump command work with unaligned addresses (debug\debugcmd.cpp) . Sort save state items in alphabetical order in the debugger memory viewer source list . Fixed error in debug build with SMS card options (emu\emuopts.cpp) 0.197 - New games: Master Boy (1987, Z80 hardware) and New Cross Pang - New Working games: F-1 Dream, Quiz Channel Question, Rail Chase 2 and Ufo Robo Dangar (9/26/1986, Japan) - New Non-Working games: Genius 6 (V110F), T.T. Speed Race CL [TTL] and unknown Elsy poker - New clones: Amazonia King Plus (V204BR), Crazy Bonus 2002 (Ver. 1, set 2), Enduro Racer (YM2151) (mask ROM sprites, FD1089B 317-0013A), Explosive Breaker (Korea), Garou - Mark of the Wolves (NGH-2530), Gokidetor (set 2), Joker Master (V512), Jolly Card (Italian, bootleg, set 3), Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 1.05 / 981214), Paperboy (prototype), Pochi and Nyaa (Ver 2.02), Popeye (Braze High Score Kit P1.00D), Renegade (US bootleg), Silk Worm (bootleg), Street Fighter II': Champion Edition (Playmark bootleg), Time Killers (v1.21, alternate ROM board), World Rally 2: Twin Racing (mask ROM version) and WWF: Wrestlemania (proto 2.01 06/07/95) - New drivers: mastboyo.cpp - New devices: 315_5338a, adc0808, adc0809, generic_fifo_u32_device, m58990, mb86234, model1io, nb1412m2, sad8852 and z80ctc_channel - ARM (little) CPU . Eliminated spurious LSL #32 shifts from disassembly. Calculated R15-relative offsets in disassembly (cpu\arm\armdasm.cpp). . Fixed erroneous identification of S field in data processing opcodes. Calculated result of ADD/SUB Rn, R15, #imm (cpu\arm\armdasm.cpp). - Hitachi SH-4 CPU: UML implementations of FADD, FDIV, FMAC, FMUL, FSUB, LDCSPC, LDCSSR, LDSFPUL, MOVCAL, STCDBR, STCSGR, STCSPC, STCSSR, STSFPSCR and STSFPUL. Fixed possible error in previous FPU conversion. - Intel I386 CPU: Fixed stack size in call and sp masking - Intel I80186 CPU: Handle program space mapping for I/O block same as I/O space - Intel i960KB CPU: Don't lose register values on read stalls - MCS-51 MCU: Safer way to propagate INT0 and INT1 inputs, which also need to be active low. - Motorola M6801 CPU . Added configurable logging . Separated SCI Tx/Rx tick and event logging, fixed some missing save state and make order match delaration. - uPD7725 CPU: Fixed disassembly (upd7725\dasm7725.cpp) - QSound . Improved performance of DSP16 interpreter a little by generating six variants of execution loop . Bypass DSP16 memory system for work RAM access when debugger is disabled - gives small performance gain. - 3dfx Voodoo Graphics: Fixed vsync timing and removed anonymous timer - ADC0808 A/D Converter . Rewrote ADC0808 device so it actually works. Allow polling of EOC line. Allow side effect disabling for reads. . Added ADC0808 to backfire, othunder, topgunnr and wheelfir. . Added ADC0809 to atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, cbombers, eprom.cpp, firefox, foodf, galastrm, gdfs, groundfx, harddriv.cpp, hydra, irobot, jedi, opwolf3, roadriot, superchs, starwars.cpp, taito_z.cpp, tceptor, tmek and tomcat. . Added M58990 to apache3 and lockon - Atari Custom . Removed sound interrupt status from machine\atarigen.cpp base class . Separated a few Atari drivers from atarigen_state . Separated 'Atari VAD video controller' source files from atarigen . Decoupled ThunderJaws from atarigen_state - Floppy . Minimal improvements on the disk handling. Keeping the 35 tracks drive as an option. Reducing the crashes a bit more. This helps matching the form_factor and the parameters found in the TeleDisk images, thus exiting before a serious crash. It is NOT enough to improve the 8" disk image handling, nor it solves all the stability problems, but it is a tiny step forwards (formats\td0_dsk.cpp). . Added FM resyncs in READ_TRACK and changed threshold (machine\wd_fdc.cpp) - TI TLC34076 video: Converted m_pens and m_local_paletteram into std::unique_ptr. Minor cleanup. - Z80 CTC: Make channels into subdevices - 4roses.cpp: Decrypted Four Roses and Rugby program roms. Moved Rugby video RAM to where it fits better. - aerofgt.cpp . Cleanup duplicates. Fixed object finder names related sprite lookup tables. Minor gfxdecode cleanup. . Splitted Spinal Breakers ROM lookup function - aleck64.cpp: Improved Magical Tetris Challenge tetrominoes display (ghost pieces and colors) - arcadecl.cpp: Minor cleanups. Removed unnecessary bitmap. Cleanup of duplicates. - asuka.cpp: Cleanups. Reduced duplicates/runtime tag lookup. - atarigt.cpp: Eliminated sound_int_gen (machine\atarigen.cpp) - atarisy2.cpp: Minor cleanups for bankswitching. Added address_map_bank_device for VRAM bankswitch handlers. - atlantis.cpp and iteagle.cpp: Use device_post_load instead of callbacks (machine\vrc4373.cpp) - coolpool.cpp: Added generic_latch_16_device for CPU-DSP communications. Splitted coolpool and 9ballsht DSP I/O map. Fixed rom tags. - ddenlovr.cpp . Separated blitter IRQ handlers; fixed interrupts in mjmyster and related sets. . Changed main CPU type to TMPZ84C015 for most Z80-based games . Promoted Quiz Channel Question and clone (Ver 1.23) to working - dec8.cpp . Replaced MCU simulation with 8751 code dumped from Breywood and hacked for Shackled . Use input merger for coin IRQs in Psycho-Nics Oscar and Shackled . Split up 6809 IRQ assertion/acknowledgment handler . Acknowledge FIRQ from 8751 instead of using HOLD_LINE for Captain Silver, Last Mission and Shackled. Note: Psycho-Nics Oscar doesn't use a 8751. - docastle.cpp: Replaced MCFG_CPU_VBLANK_INT with CRTC callbacks. Fixes different BONUS letters sequence in Mr. Do's Wild Ride (ID 01022). - dreamwld.cpp: Cleanups. Added tilemap size register. Fixed crash in VRAM write handler and tilemap rowscroll and transparency handling. - dynduke.cpp: Dumped proms - expro02.cpp and galpanic.cpp: Added missing 2nd button to includes\galpnipt.h (ID 06937). Note: Turn on 'Service Mode' dipswitch, reset and press P1 START. Pressing the second button is not reflected on screen (appears as "Shot 2"). The main game doesn't use it, but it's needed for the "Animation Test" that can also be turned on in the dipswitches. - gaelco2.cpp: Added pinout information for World Rally 2 and REF.950906 PCB layout for Touch & Go - galivan.cpp and terracre.cpp . Rewrote NB1412M2 protection into a device . Fixed protection in clone Ufo Robo Dangar (9/26/1986, Japan) (Game now playable). Note: Game has unemulated protection at I/Os 0x80-1 for missing sprites. This is a Nichibutsu 1412M2, which is the same chip used in TerraCresta and Cop01 driver. The protection here is used for a code snippet at 0xf9c0, that of course is the sprite handling. The code snippet is sum8 with 0x27 at 0x9d74 so no, the later Dangar US version snippet doesn't work. - guab.cpp: Added RS-232 port and updated notes - gundealr.cpp: Cleanups - irobot.cpp and starwars.cpp: Reduced tag lookups - mainevt.cpp: Derived clocks from XTAL values. Replaced HD6309 CPU1 with HD6309E. - model1.cpp . Rewrote MB86233/4 CPU cores. Added missing lab and notd mode to MB86233. . Use the real 315-5573 Virtua Racing coprocessor program . Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller. . Map outputs and coin counter for netmerc, swa, vf, vr, wingwar and wingwar360. Added second coin slot for wingwar360 and removed view buttons. Map netmerc analog controller unit. - model2.cpp . MB86233/4 CPU rewrite. Added missing lab and notd mode to MB86233 used by Virtua Fighter 2 in-game and collision. . Revamped the coprocessors communications . Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller. . Map outputs and coin counters for daytona, desert and vcop. Cleanup inputs. Map debug switch for vcop to not show enemies. . Proper default values for lightgun games. This avoids the need to calibrate the lightguns in the service mode. Also clean up lightgun interface. Five percent of the full range is now declared off-screen and will act as a reload area. . Promoted Rail Chase 2 to working . Fixed segmentation fault in all Model 2 games (ID 06148) . Fixed TGP test in Daytona USA test mode (ID 05530) - mpu4vid.cpp: In row table mode double size in cached in screen start 1 (video\scn2674.cpp). This fixes graphic corruption in all sets (ID 06928). - namcos11.cpp: Cleanup bankswitch handler. Reduced runtime tag lookups. - namcos12.cpp: Cleanups. Reduced runtime tag lookups. Splitted machine config for COH716 CPU Board case and motherboard/cpuboard configurations. Fixed GPU for COH716 board. - naomi.cpp: Centralized DRC settings (machine\dc.cpp) - neogeo.cpp . Converted NeoGeo EL panel outputs to lamps - it uses six outputs from a 1-of-8 decoder to enable EL panels to illiminate the selected game logo. . Start splitting up the state classes for the different variants properly . Split into real models: Moved common stuff (mostly video) into a base memory map. Split common edge connector inputs into JAMMA and MVS. Added clones with different numbers of game slots, edge connector, controller ports, memory card and speakers. Based fixed-software drivers on MV-1 JAMMA board configuration. Removed memory card and controller ports from single-PCB games and converted to mono output. Coin lockouts/counters still not connected, and LED/EL output isn't suppressed for variants that lack it. Suppress leading space in RAM option names. . Further improvements: Removed LEDs/lamps from configurations that lack them. Hooked up coin counters and lockouts. Improved I/O register mapping. Added controller detection connections for AES. Hooked up SPI-like outputs on SIT board used by irrmaze. . The Irritating Maze: Hooked up SPI-like outputs on SIT board. Added layout showing strobes and most lamps. Game still missing card dispenser, air compressor and colour lamps. . Re-added boost interleave on audio command write - fixes glitches in Strikers 1945 Plus. - pgm.cpp: Fixed object finder. Removed unused things. - popeye.cpp . Implemented NMI acknowledge and TPP2 watchdog . Swapped clones Popeye (bootleg set 1) and Popeye (bootleg set 2) and repaired some of the proms as they appear to be bad dumps. - psikyo.cpp: Cleanups. Fixed background pen. Documented PIC. Fixed crash due to incorrect shift calculation and the bootleg hardware. - seattle.cpp and vegas.cpp . Added separate transmit FIFO to SMC91C9x Ethernet Controller and fixed irq handling. Use device_pre_save and device_post_load instead of pre/post callbacks. . Use device_post_load instead of callbacks (machine\gt64xxx.cpp and machine\vrc5074.cpp) . Fixed volume button mapping for San Francisco Rush . Removed set_lamp_value from Vegas driver and added driver init for NBA Showtime Gold - segaufo.cpp: Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller which is hooked up to the Sega UFO driver now. - ssv.cpp: Simplify ST010 ROM loading - stv.cpp . Fixed regression with Cotton 2 backgrounds in stage 2 onward (video\stvvdp2.cpp; enables ROZ mode 3 without neither rotation parameter windows nor actual rotation parameters). This fixes also the corrupt background in Virtua Fighter Kids (ID 06886). . Preliminary implementation of PMOD 7 (gouraud + half transparent) (video\stvvdp1.cpp), fixes (MESS) Sega Saturn 'Lupin the 3rd Pyramid no Kenja' enemy shadows. . ROZ windows applies per screen output not per bitmap (video\stvvdp2.cpp), fixes at least Batman Forever character select & the Riddler final stage graphics. . Fixed RBG0 cache map range (video\stvvdp2.cpp), fixes (MESS) Head On graphics update in Sega Memorial Collection 1. . Fixed t1_mode_w in address map of achine\sega_scu.cpp - suprnova.cpp: Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). This fixes no audio is present (ID 06929) - tourvis.cpp: Added Tourvision BIOS v1.1 - umipoker.cpp . Changed YM3812 clock and use it to drive sound CPU interrupt. Use known XTAL for clocks. . Added output finder for Slot Poker Saiyuki lamps and clean up driver a little - viper.cpp: Correct Voodoo vsync timing and removed anonymous timer. Changed Konami Viper so that driver boots again. - zn.cpp: Simplified Z80 bank switching for FX-1A games (mgcldtex, psyforce and sfchamp) - AGEMAME: General cleanup of video\bfm_adr2.cpp (drivers\bfm_sc1/2.cpp) - Air Buster: Reduced code duplication and runtime tagmap lookups. Removed unnecessary bitmap. - Airwolf, Flashgal and '99: The Last War. Added PROMs and PLDs - Amidar: Fixed 'Lives' dipswitch for clone Amidar (Scramble hardware) (ID 06926) - Backfire! . Added ADC0809 A/D Converter for Backfire potentiometer controls (currently only working in test mode) . Cleanup inputs and acknowledge IRQ - BeatHead: Replaced NVRAM with parallel EEPROM - Bingo Circus and Western Dream: Added I/O controller - Bionic Commando: Start hooking up MCU (similar to F1 Dream) however it still relies on some hacks to work at the moment. - Blades of Steel: Soundlatch modernization - Contra: Acknowledge sound IRQ - DJ Boy: Added generic_latch_8_device for comms. Added stereo sound output, because PCB has stereo sound output connector and OKI is connected per each output. Cleanup OKI ROM loading and gfxdecode. Fixed sound output level. Fixed tags. Fixed MCU acknowledge writes. - Dora-chan: Better protection and cleanup - F-1 Dream: Decapped and dumped F-1 Dream I8751 MCU (Game now playable). Fixes F-1 Dream's car "teleports" into another part of the track, when crashing on horizontal guard-rails (ID 00966). - Fever Soccer: Eliminated set_lamp_value and MCFG_CPU_VBLANK_INT - Fire Fox: Cleanups. Added output finder/object finder. Reduced runtime tag lookups. - Godzilla: Fixed regression in background tilemap colors (uses DMA mode 4 like Denjin Makai). Fixed OKI sound bankswitch. - Heavy Unit: Minor cleanup - Hit Poker: IRQ modernization - Jungler: Apply mooncrst decoding to clone Jungler (Subelectro, bootleg on Scramble hardware), game boots. Verified inputs. Added preliminary sound and dipswitches. - Kaitei Takara Sagashi: Added optional color setting. Make color config as default. Note: Some PCB videos/images shows a b&w arrangement, others a full colorized one. This is due of the monitor type used, cfr. http://news.livedoor.com/article/detail/5604337/. - Lemmings: Cleanups - Mega Blast: Use real C-Chip rom. Hook it up, for some definition of hook up, since it basically does nothing at all the game cares about. - Operation Thunderbolt: Changed game to mono speaker, as shown on schematics and verified on real board. - Pasha Pasha 2: Cleanup duplicates. Cleanup bitmap write handlers. Added object finder instead runtime tag lookups. Fixed tags. Hook up AT89C52. Added output finders. Converted m_bitmap* into std::unique_ptr. - Pinball Action: Use CTC to provide interrupts for sound CPU - Repulse: More accurate ROM labels for clone '99: The Last War (Kyugo). Fixed gfx1 ROM size. - Sexy Gal: Added sample player - Sindbad Mystery: Adjusted sound clocks to match PCB footage. Acknowledge sound interrupt the 8255 Mode 2 way. - Space Chaser: Added some sound to clone Crash Road (bootleg of Space Chaser) - Starblade: Allow full range of crosshair movement - Super Stars: Demoted game to not working - errors out when inserting coins. - Tech Romancer: Fixed fatal error regression (ID 06936) - TomCat: Fixed XTAL value - unknown Japanese horse gambling game: Lowered frequency of 8155 timer driving speaker - VLC Nevada: Fixed memory mapping and IRQs for DUARTs and RTC - Wink: Added addressable latch and acknowledge NMI - Xyonix: Acknowledge main interrupt - Input/Output . Standardised on IPT_CUSTOM for hooking up custom code in PORT_BIT, leaving IPT_SPECIAL for the UI. . Use output finder for 24cdjuke, 30test, allied.cpp, amaticmg.cpp, atari_s1.cpp, atari_s2.cpp, barata.cpp, by6803.cpp, chexx.cpp, crusnexo, ecoinfr.cpp, fireball.cpp, firefox, gotcha.cpp, gp_1.cpp, gp_2.cpp, grchamp, gts3.cpp, gts3a.cpp, gts80.cpp, gts80a.cpp, gts80b.cpp, icecold.cpp, inder.cpp, jeutel.cpp, jp.cpp, jpmimpct.cpp, kungfur.cpp, ltd.cpp, marywu.cpp, micropin, model1.cpp, nsm.cpp, play_1.cpp, play_2.cpp, play_3.cpp, rotation, rowamet.cpp, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp, saiyukip, spectra.cpp, speedbal.cpp, splus.cpp, sspeedr.cpp, st_mp100.cpp, st_mp200.cpp, taito.cpp, techno.cpp, turbo.cpp, vd.cpp, videopkr, wico.cpp, wpc_an.cpp, zac_1.cpp, zac_2.cpp and zac_proto.cpp. . Use two-dimensional output finder for imolagp and monzagp . Removed legacy outputs from acommand.cpp, allied.cpp, ampoker2.cpp, amusco.cpp, aristmk4.cpp, aristmk5.cpp, buggychl.cpp, bzone.cpp, cinemat.cpp, copsnrob.cpp, m79amb.cpp, skydiver.cpp, skyraid.cpp, stactics.cpp, starcrus.cpp, tceptor.cpp, taitojc.cpp, tehkanwc.cpp and wecleman.cpp . Removed set_digit_value and deprecate set_lamp_value and set_led_value (emu\output.h) - Dipswitch fixes in galaxian.cpp, hitpoker.cpp, jp.cpp, konblands.cpp, model2.cpp and viper.cpp - Fixed rom names in gaelco2.cpp, kyugo.cpp and model1.cpp - Description changes of Bakuretsu Breaker (Japan), Blades of Steel (version T, Joystick), Blades of Steel (version L, Trackball), Blades of Steel (version E, Trackball), Crazy Bonus 2002 (Ver. 1, set 1), Explosive Breaker (World), Gokidetor (set 1), Hotdog Storm (Korea), Joker Master (V515), Pochi and Nyaa (Ver 2.00), Popeye (bootleg set 1), Popeye (bootleg set 2), Silk Worm (prototype), Ufo Robo Dangar (9/26/1986, bootleg set 1), Ufo Robo Dangar (9/26/1986, bootleg set 2) and World Rally 2: Twin Racing (EPROM version) - Renamed (pnyaa) to (pnyaaa), (popeyeb2) to (popeyebl), (popeyebl) to (popeyeb2) and (wrally2) to (wrally2a) - MAME . VIDEO RENDERING SYSTEM . Cleaner handling of layout parsing errors (emu\rendlay.cpp and layout\noscreens.lay) . Bulk conversion . Converted MCFG_DEVICE_VBLANK_INT to MCFG_SCREEN_VBLANK_CALLBACK . Use MCFG_SCREEN_VBLANK_CALLBACK instead of MCFG_CPU_VBLANK_INT . Replaced MCFG_CPU_VBLANK_INT with line callbacks . Use MC6845 sync callback instead of MCFG_CPU_VBLANK_INT in funworld.cpp, goldnpkr.cpp and madalien.cpp . Use MC6845 for vertical interrupt generation in gluck2.cpp, mpu12wbk.cpp and ssingles.cpp . Added some plausible raw params and eliminated MCFG_CPU_VBLANK_INT in twins.cpp . Removed underscores from template parameter names (emu\emupal.h) . DEVICES . Allow machine configuration to specify BIOS easily, move default BIOS selection into device configuration complete. . Removed unnecessary device_t::memory() (drivers\bublbobl.cpp, missb2.cpp and superqix.cpp) . Removed safe_pc() and safe_pcbase() (emu\distate.h) . Show RAM options in XML output that can actually be controlled from the command line - the others are practically useless (machine\ram.cpp and mame\info.cpp). Expose RAM size in "minimaws". . Get rid of more uses of inefficient output methods (drivers\de_2.cpp, de_3.cpp, flicker.cpp, jankenmn.cpp and machine\decopincpu.h) . Removed emucore from external tools (scripts\src\tools.lua) . Save a ref to waiting co-routine to prevent it from being gc'd (mame\luaengine.cpp) . PLUGINS: Require returns true if package returns nil (plugins\data\database.lua) . Moved some not-directly-emulation-related helpers to lib\util\coretmpl.h and disasmintf.h, further extricate emu.h from tools. . MEMORY SYSTEM . Allow for an address shift (machine\bankdev.cpp) . Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). Fixed fencepost in memory_manager::region_containing, which caused regions to be registered for state saving (emu\emumem.cpp). . Relaxed constraints on address mirroring/global mask combinations. Mirror bits are now allowed to fall outside the driver-specified global mask, though memory map validation requires that they cover the entire masked-out portions of the address space if any do. This change is intended to expedite debugging of software written for the TMPZ84C015 or similar Z80-based controllers which use 8-bit I/O addressing for the on-chip peripherals but may use either 8-bit or 16-bit addressing externally (emu\addrmap.cpp). . Completely eliminated address map macros . PLUGINS . Work around small issue in conversion (plugins\cheat\cheat_xml.lua) . Changed indentation in save file by request and sort the output file (plugins\portname\init.lua) . Fixed cpu tags and print detailed errors (hiscore\hiscore.dat and init.lua) - SDLMAME: Set SO_REUSEADDR in posixsocket. Without it you have to wait until the socket is moved out of the TIME_WAIT state, which can take quite a while. This is pretty anoying when using mame with serial ports forwarded via TCP (modules\file\posixsocket.cpp). - Compiling . Added possibility of building using system pugixml . Fixed issues with CHD loading under Emscripten (scripts\src\main.lua) - Debugger . Documented debugger expression number syntax (debugger\expressions.rst) . Moved around the debugger hooks to get a small but measurable performance increase . Fixed scheduling session events from debugger (debug\debugcpu.cpp) . Added suspend and resume debugger commands for suspending and resuming scheduled devices (debug\debugcmd.cpp) . Documented dumpo command (debug\debughlp.cpp) 0.196 - New games: Big Buck Hunter (v1.00.14) and Warai no Hana Tenshi (Japan) - New Working games: Eyes (Italy), Gunpey, Motor Raid - Twin, Virtua Fighter 2 and War: The Final Assault - New Non-Working games: Badlands (Konami, set 1) and Photo Play 2004 - New clones: Badlands (Konami, set 2), Big Buck Hunter II - Sportsman's Paradise (v2.02.08), Big Buck Hunter II - Sportsman's Paradise (v2.02.09), Daytona USA (GTX 2004 Edition), Game King (EZ Pay, v4.0), Ghox (joystick, older), Irion, Master Boy (Spanish, PCB Rev A), Opa Opa (Rev A, unprotected), The Real Broadway (9131-20-00 R0C), Street Fighter II: The World Warrior (Thunder Edition, bootleg, set 2), Street Fighter III 3rd Strike: Fight for the Future (Japan 990512), Street Fighter III 3rd Strike: Fight for the Future (Japan 990608), Super Cobra (bootleg, set 2) and Super Seven - New PinMAME games: Earthshaker (Prototype) (PA-4), Lucky Draw (Pinball) and Strange Science (Rev C) - New drivers: konblands.cpp and lckydraw.cpp - New devices: dec_rs232_loopback, mb89374, pit_counter and scn2672 - New mame.ini options: comm_framesync = 0 (CORE COMM OPTIONS) - Analog Devices ADSP21062 CPU . Added Rn = Rn FDEP Rx BY : opcode used by Last Bronx for a vital geometrizer function (sharc\sharcops.hxx). . Added fmul abs multi opcode (used by Gunblade NY) (sharc\compute.hxx, sharc.h and sharcops.hxx) . Added SET_UREG case $67 (Zero Gunner 2B) (sharc\sharcops.hxx) . Fixed LSHIFT negative operations to not extend the sign on result, fixes Last Bronx frame flickering (sharc\sharcops.hxx). - Dynamic Re-Compiling: Make UML shorthand a bit easier to use without using namespace everywhere. Modernised cpu\drcuml.cpp. - Fujitsu MB86233 CPU: Some DASM changes - IBM PowerPC 4xx/6xx CPUs: Clean up a bit of macro hell in PowerPC core - Intel 8257 DMA Controller CPU: Cleanup - Intel I8051 / MCS-51 CPU: Use callbacks for parallel ports - Intel i960KB CPU: Support burst stall on writes - NEC uPD7810 CPU: Dasm fix (cpu\upd7810\upd7810_dasm.cpp) - TLCS-90 CPU: Separated TLCS-90 external IRQ line state from internal request register (fixes Mahjong Tenkaigen slowdowns) - ES8712 sound: The ES8712 is actually a controller for MSM5205/MSM6585 and 74157-type TTL pair, accurate this (gcpinbal.cpp, lastbank.cpp, metro.cpp and witch.cpp). Added notes. - K051649 sound: Added scc_map to reduce duplication in driver memory maps - N2A03 APU sound: Derive frame counter from clock input - Namco C352 sound . Changed mu-law algorithm to match Namco's WII VC emulator. This appears to be the original algorithm used in the hardware. . Fixed static noise between fights in Tekken 3 . Fixed the order of the phase inversion flags - QS1000 sound: Converted set_irq into WRITE_LINE_MEMBER - QSound . Rewrote/Improved DSP16 disassembler. Less ambiguous, more like the manual. Less cluttered output, better handling of ambiguous operations, look-ahead for predicated jumps, live will/won't comments on conditional instructions (cpu\dsp16\dsp16dis.cpp). . Cycle-accurate DSP16 core (disabled in QSound for performance reasons). Start adding DSP16 recompiler boilerplate. . QSound LLE available with a 3-character change. Changed sample rate and playback behaviour to better match DSP for qsound_hle. Simplified sample fetch/scale and register writes for qsound_hle. . Clean up host and DAC comms a bit, hopefully fix desync (sound\qsound.cpp). . Marginal DSP16 performance improvement by precalculating SIO clock divider preload, also push ILD/OLD on mode change. Moved most core state into DRC cache - keeps a lot of details out of the main header (DRC is still stubbed out). - Sega PCM sound: De-staticify initializations. Added device_clock_changed. Minor cleanup (sound\segapcm.cpp; drivers\segahang.cpp, segaorun.cpp, segaxbd.cpp and segaybd.cpp). - Taito Ensoniq Sound System . Moved imperfect_features() into es5510.h. Verified ESP input clock and output channels from GunBuster schematics (same in other PCBs?). Added m_bankmask instead runtime tag lookups. Added notes. . ES5510 CPU: Fixed DRAM read/write. Converted gpr, instr and dram into std::unique_ptr. Added save states and notes. Minor cleanup. . Ensoniq 5505/5506 to 5510 interface (sound\esqpump.cpp): Cleanup unused m_otis/m_otto and converted e[0x4000] into std::unique_ptr if used. - ER2055 EAROM: Separated CLK writes to make emulation usable for (MESS) CIT-101 - Intel 8251 USART: Added XMIT FLAG polling to (MESS) DEC VT100 using new i8251 line read handler - Intel 8253 PIT: Converted counters to subdevices - Kaneko Custom: Added device_rom_interface instead memory pointer (video\sknsspr.cpp; drivers\galpani3.cpp, jchan.cpp and suprnova.cpp) - National Semiconductor INS8250 UART: Added hack to reset transmitter when baud rate is changed. This is needed to make the (MESS) VT102 printer loopback test pass because ins8250_uart_device does not fully emulate the baud rate generator as the independent block it really is, but relies on the all-purpose, somewhat faulty device_serial_interface implementation. - PCI bus: De-staticize callbacks and remove both device parameters (machine\lpci.cpp) - Rockwell 10937 video: Cleanup - RS232 Port: Moved devcb resolution to device_resolve_objects. Added V.24 cross reference. Added speed indicator to modem control and speed select output. Added DEC 12-15336-00 RS232 loopback connector type (required for (MESS) VT102 modem control self-test). - SCN2674 Video . Use same character width for text and graphics modes. This change has been made partly to bring the implementation in line with other character-based video devices. It is also consistent with the documented ability of the SCN2674 to combine text and graphics modes on the same screen, which rules out bitmap resolution changes. . Massive register/command processing/logging cleanup - Sega Custom . Added xhout and xvout register callbacks (video\segaic24.cpp), and hooked them up to Model 2 driver, fixing 3D viewport positions. . Internalized communication latches for sega_315_5195. 315-5195 mapper has same clock as CPU (segaorun.cpp, segas16b.cpp and segas18.cpp) - Taito Custom . C-Chip . Use dumped C-Chip for Bonze Adventure, Rainbow Islands, Superman and Volfied and removed simulation. . Bonze Adventure: This most likely fixes the 1st level of Bonze Adventure, if you go into the secret hole and die in the cave, you restart in a totally black area and you can't do anything. And when you die in the 3rd level, an error message popped up and you was unable to do anything (had to restart the game) (ID 00205). This also fixed the 3rd level of Bonze Adventure, if you die, the game hangs because the restart level is wrong (ID 00377). . Mega Blast: Correct C-Chip clock . Operation Wolf: Measured C-Chip clock on working PCB (Taito custom C-Chip marked 'TC0030CMD, with sticker 'B20-18'. Clock input 12.00MHz on pin 20) . Rainbow Islands: Simulation isn't yet removed because Rainbow Islands Extra still needs it (Haze is checking if he can make a temporary ROM until it is so that we can clean it up in the meantime). . Rainbow Islands - Extra Version: Use a handcrafted C-Chip rom for Rainbow Islands Extra, pending a real dump, allows removal of simulation code and general cleanups. Also made Rainbow Islands Extra a parent, since it has it's own game code, own C-Chip and is generally considered a semi-sequel rather than a bugfix / revision of the original game. Best I can tell behavior matches the differences between original and extra that were present in the simulation at least, but obviously the real chip could be hiding more secrets. . Superman and Volfied: Made the 68k and uPD7810 use different banked windows into the RAM, this seems to prevent the fighting I was seeing, and also Superman suggests that it might be correct, as it puts response values in a bank for the 68k but then changes the window so the 68k can't see them. Needs further testing tho (other C-Chip dumps might tell us more later). Removed debug structure. . Volfied: Interrupt source still needs to be verified, but I've tested this to the end and it works fine with the real dump. - TMS9927 video: Configure device using character clock rather than dot clock - VGA video: Internalized palette - Voodoo GFX: Added rasterizers for cartfury, roadburn, sfrushrk and warfa (video\voodoo_rast.hxx) - artmagic.cpp: Replaced NVRAM with parallel EEPROM and improved ADPCM banking. This fixes new NVRAM will cause a blasted sound on Get Ready screen at the beginning of Cheese Chase (ID 06917). - asuka.cpp: Fixed clock speeds & misc updates. Both Galmedes & U.N. Defense Force: Earth Joker are chip swaps for Asuka & Asuka so use the Asuka machine config. Note that both games don't use the OKI MSM5205, but it's still on the PCB. - crospang.cpp: Fixed clock speeds based on OSC & PCB info. Note: 68000P10 is a 10MHz part, so it's not going to be overclocked to 14.318MHz. All PCBs on this platform have only a single 14.31818MHz OSC so the Oki clock is either ~1.7MHz (OSC/8) or ~.89MHz (OSC/16). - ddragon.cpp: Replaced HD6309 CPU1 with HD6309E - dec8.cpp: Use input_merger for Gondomania and Garyo Retsuden. Acknowledge NMI another way for The Real Ghostbusters. - dkong.cpp: Changed orientation so that -norotate matches direct feed recordings - dynax.cpp . Hana Jingi: Simplify bitswap for clone Hana Oriduru (Japan) . Mahjong Tenkaigen: Separated TLCS-90 external IRQ line state from internal request register (fixes Mahjong Tenkaigen slowdowns) - eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp and vegaeo.cpp . Converted QS1000 set_irq into WRITE_LINE_MEMBER . Cleaned up VRAM handler/drawing pixel (eolith.cpp, eolith16.cpp, vegaeo.cpp) . Modernize soundlatches (eolith.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp) . Minor cleanup. Added object finders instead runtime tag lookup. Replaced user* -> saner ROM areas (eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp). . Minor cleanup of sprite drawing (limenko.cpp) . Added machine_config instead driver_init for Hidden Catch 3 - gcpinbal.cpp: Minor cleanup. Added object finder instead runtime tag lookup. Replaced gfx* -> saner ROM areas. - goldstar.cpp . Merged TCL (Taiwan Chess Legend) driver into Goldstar, since it's same hardware. . Replaced macros with lambdas - gstream.cpp: Added pre-calculated RGB Palette for X2222 drawing gfxs. Removed unneeded arguments of drawgfx_transpen_x2222. Cleanup duplicates. - hnayayoi.cpp: Use HD6845 CRTC for video; improved screen parameters. - hyprduel.cpp . Cleanups . Added imagetek_i4220_device. Only draw portion of tilemaps exposed by clipping rectangle (improves performance). . Allocated sound output from real PCB (real PCB only has mono sound output) . Boost tilemap drawing routines when VIDEO_UPDATE_SCANLINE case of screen video attributes and fixed tilemap drawing at tilemap offset X/Y !=0 case (video\imagetek_i4100.cpp) - iteagle.cpp: Set CPU frequency to 166MHz. Seems to fix 'Big Buck Hunter Call of the Wild' and 'Big Buck Hunter II' runs slow on certain levels despite being 100% in MAME (ID 06908). - kaneko16.cpp: Cleanup OKI banking and soundlatch handler - mcatadv.cpp: Cleanup duplicates. Allocate sound output (Magical Cat Adventure PCB has mono sound output only). Updated notes (PCB hasn't any delta-t ROM). - metro.cpp . Boost tilemap drawing routines when VIDEO_UPDATE_SCANLINE case of screen video attributes and fixed tilemap drawing at tilemap offset X/Y !=0 case (video\imagetek_i4100.cpp). Added notes. Reorder romsets in a sane order. . Added object finder instead runtime tag lookup . Manual for Daitoride says button 2 is used for change direction of mount of tiles . Enabled Puzzli raster irq . Fixed _3kokushi config name . Allocated sound outputs from real PCB for Blazing Tornado (HUM-002 PCB has stereo speaker connector, HUM-003 doesn't). Fixed sound bankswitching. - midvunit.cpp: Cleaned up Midway V-Unit inputs and outputs. Better motion inputs and sorted main buttons. Removed runtime tagmap lookup. - model1.cpp . Clear up some memory issues with very recent GCC (includes\model1.h and video\model1.cpp) . M1COMM . Updated simulation based on real firmware. Read partial frames correctly now. Added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open). Added config option to sync frames over network. Better sync. Detect lost connection. Use osd_file rather than emu_file for better control (machine\m1comm.cpp). . Added preliminary MB89374 emulation to Virtua Racing and Wing War. Removed Z80 CPU in netmerc, swa and vf. Moved knowns roms to M1COMM device. . Fixed camera position problem in Virtua Racing and Virtua Fighter (ID 06861) - model2.cpp . Standardized protection accessors for Model2/3 315-5881 device . Added custom debugger commands to dump geometrizer disassembly and triangle list . Work around for 'ld rN, (rN)' read on FIFO, fixes crashes for desert, overrev, pltkids, sgt24h, skytargt and zerogun. . Bump renderer max polygons to 0x10000 (includes\model2.h) . Added Rn = Rn FDEP Rx BY : opcode used by Last Bronx for a vital geometrizer function (cpu\sharc\sharcops.hxx). Fixed LSHIFT negative operations to not extend the sign on result, fixes Last Bronx frame flickering (sharc\sharcops.hxx). Fixed also AddressSanitizer: heap-use-after-free (ID 05870) . Added geo/raster state saving. Added save state registration. . Added xhout and xvout register callbacks (video\segaic24.cpp), and hooked them up to Model 2 driver, fixing 3D viewport positions. . Stateized float_to_zval, fixed z code (video\model2.cpp). Cleanup culling. . In geo mode 2 & 3 normals are skipped for every triangle/quad. Fixes graphical glitches in Virtual-On, Gunblade NY, Dead or Alive, Sonic the Fighters, Rail Chase 2, Virtua Fighter 2 and Desert Tank. . Added fmul abs multi opcode (used by Gunblade NY) (sharc\compute.hxx, sharc.h and sharcops.hxx) . Fixed untextured path colors (Motor Raid, Daytona USA) (video\model2rd.hxx) . MB86235 . Make TGPx4 to be debuggable even in non-DRC mode (cpu\mb86235\mb86235.cpp). Wrote a preliminary TGPx4 interpreter core. . generate_reg_read and generate_ea fixes. Added ALU OR / XOR (cpu\mb86235\mb86235drc.cpp). Misc fixing (floating point conversions, broken REP opcode and support for rascot2 MOV2 int->ext opcode). . SCSP / Interrupt ports cleanups . Added direct framebuffer drawing used by Last Bronx title screen. . Fixed Model 2/2A garbage 3D when exiting test mode. clip_plane belongs to clip_polygon function. . Apply focus in a specific function. Overhauled inputs. Added dipswitch bank (Zero Gunner Debug mode). . Added inputs to bel, gunblade, indy500, overrev, segawski, sgt24h, skisuprg, skytargt, stcc, topskatr, von and waverunr. Handle brake input in srallyc. Cleanup vcop inputs. Fixed rchase2 inputs. . Fixed obc == 0 case for Cyber Troopers Virtual-On and Gunblade NY . Workaround hardlocks in Fighting Viper and Sonic Championship . Avoid Daytona USA with master controller to crash . Fixed segmentation fault in clone Daytona USA (Japan) (ID 05863) . Fixed black screen in Zero Gunner (Export, Model 2A) . Fixed Motor Raid and Virtua Fighter 2 (Games now playable) . Fixed AddressSanitizer: heap-buffer-overflow in Sega Touring Car Championship (ID 05874) and Virtua Fighter 2 (ID 05876) . Attempt to fixing Sky Target gameplay speed . Fixed Zero Gunner background priorities . Fixed Daytona is too slow even at 100% speed (ID 03534) . M2COMM: Updated simulation. Read partial frames correctly now. Added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open). Added config option to sync frames over network. Added relay mode (used by Sega Touring Car Championship) and "connection loss". Use osd_file rather than emu_file for better control. Handle connection loss in a a more elegant way (machine\m2comm.cpp). . Indy500 - 4 Player Setup: https://www.youtube.com/watch?v=59O4wk8DyWk - naomi.cpp . NAOMI/Dreamcast save_pointer needs units, not bytes. No longer crashes when saving state. . Updated ROM board and BIOS documentation - naomi.cpp and segasp.cpp: Enabled SH-4 Dynamic Re-Compiling by default - nbmj8688.cpp: Supported d2 in text mode (video\hd61830.cpp) - nss.c, sfcbox.c and snesb.c: Allow use of separate address spaces for program, data, opcodes and/or vectors (cpu\g65816\g65816.cpp) - piggypas.cpp . Fixed interface between MCU and LCD controller for Fiddle Stix and Round and Round . Added 7-segment digits to Fiddle Stix and Round and Round . Cleanup driver. Handle serial outputs in a more hardware-consistent way. - rohga.cpp: Fixed gfxdecode instead garbage (ID 06895) - seattle.cpp: Cleaned up outputs - segas32.cpp . ACCESSING_BITS cleanup . S32COMM: updated simulation. Handle connection loss. Use osd_file rather than emu_file for better control (machine\s32comm.cpp). - segaybd.cpp: Soundlatch modernization - taito_f3.cpp: Fixed exception after logo is displayed in Riding Fight and Ring Rage (ID 06894) - tecmosys.cpp . Updated driver. Fixed background color. Cleanup bankswitching. Reduced duplicates. Cliprect related mixing. . Added object finders instead runtime tag lookup. Demoted games to MACHINE_IMPERFECT_GRAPHICS, because some graphic features (linescroll and mixing) is not perfectly emulated. Added MACHINE_NO_COCKTAIL tags, because tilemap scroll is wrong when flipscreen case. Fixed sprite drawing and transparent drawing. Minor cleanup and added notes. . More const, keep scope tight and use lambdas in preference to macros. - vigilant.cpp: Fixed no sound (ID 06921) - wecleman.cpp: Added stereo output for both WEC Le Mans 24 and Hot Chase. Because real hardware has stereo sound output with seperated sound board. Added enum for m_gameid and m_sound_hw_type. Minor cleanup. Replaced gfx* -> saner ROM areas. Added notes. - A-Plan: Make game capable of reaching at least a couple of test screens, like Cherry Master '99. - Bombjack Twin: Moved clone 'Atom (bootleg of Bombjack Twin)' from NMK16 driver to Power Balls driver. Gives sprites, though it needs some more work. - Chequered Flag: Minor cleanup - Connect 4: Fixed digit segment - D-Day (Jaleco): Fixed clouds priority, title screen colors and added flipscreen. - Dream 9 Final: Added NVRAM - Eyes: Redumped maincpu and gfx1 roms for clone Eyes (Italy) (Game now playable) - Flash Point: nternalized communication latches for sega_315_5195; sound works now in clone (Japan, bootleg set 2) - Gals Panic 3 . Bit of improves on bg-bg priorities. Fixed some galpani3 alpha blending and sprite-bg/bg-bg priorities. Cleanup duplicates. Added notes. . Kaneko GRAP2: Added device_rom_interface instead runtime tag lookup. Converted address map related defines into device address map. Added internal palette configs. Implemented brightness. Added m_brightreg on save state. Fixed color (video\kaneko_grap2.cpp). - Game King (Set Chips): Clear chips - Gunpey: Extracted decompressed sprite data from Gunpey. Hooked these up for now while we study the compression scheme, fixing graphics. Added sprite zooming (Game now playable). - Hole Land: Fixed priority bug on the boss level (ID 06900) - King Derby: Use output finders instead of set_digit_value - Kyuukoukabakugekitai: Minor cleanup. Added generic_latch_8_device for cpu comms. Added input_merger_any_high_device for fgcpu irq. Fixed tags. - Last Bank: Added object finder instead runtime tag lookup. Added generic_latch_8_device instead internal value. - Liberator: Separated CLK writes (machine\er2055.cpp) - Master Boy: Minor cleanup. Moved banked ram handler into address_map_bank_device. Fixed "RAMM err.". Added notes. Replaced gfx*/user* -> saner ROM areas. - Mouser: Soundlatch modernization - Pig Out: Fixed rom labels and documented undumped PALs - Shuttle Invader: Correct maincpu clock divider and detailed README - Space Guerrilla: Added missing PROMs (74s288.6a and 74s288.6b; the 2 PROMs are identical) - Street Fighter III 3rd Strike: Dumped Japanese BIOS - Tetris: Documentation updates for clones Tetris (bootleg set 2) and Tetris (bootleg set 3) - Ultraman: Minor cleanup - unknown Italian poker game: Added switch to disable card graphics in bookkeeping mode - Valtric: Dumped PROM - War: The Final Assault: Fixed scaling functions for negative values (video\rgbsse.h). Fixes graphical anomalies (Game now playable). - Witch: Minor cleanup. Added object finder instead runtime tag lookup. - Xexex: Minor cleanup. Added object finder instead runtime tag lookup. Add notes. Demoted Xexex/Orius to MACHINE_IMPERFECT_GRAPHICS, because it has alpha blending issue and MACHINE_NO_COCKTAIL flag, because tilemap scroll is wrong when cocktail mode. - Fixed rom names in leland.cpp and pacman.cpp - Description changes of Ataxx (rev 4), Ataxx (rev 5), Daytona USA (Turbo hack, set 1), Daytona USA (Turbo hack, set 2), Daytona USA (To The MAXX), Gongtit Jiucoi Iron Fortress (Hong Kong), Mahjong Ougon No Hai, Mahjong Ougon No Hai (bootleg), Master Boy (Spanish, PCB Rev A, hack?), Pig Out: Dine Like a Swine! (rev 1), Pig Out: Dine Like a Swine! (rev 2?), Rainbow Islands - Extra Version, Strange Science (Rev A), Science (German, Rev A), Street Fighter II: The World Warrior (Thunder Edition, bootleg, set 1) and Super Cobra (bootleg, set 1) - Renamed (ataxx) to (ataxxa), (ataxxa) to (ataxx), (gkigtez) to (gkigtezms), (ironfortj) to (ironfortc), (mastboy) to (mastboya), (ougonpai) to (ougonhai), (ougonpaib) to (ougonhaib), (realbrod) to (realbroda), (strngsci) to (strngscia) and (strngscg) to (strngscig) - MAME . VIDEO RENDERING SYSTEM . Fixed scaling functions for negative values (video\rgbsse.h). Fixes graphical anomalies in War: The Final Assault. . Address performance concerns with previous change to screen.cpp/h . Better handling for arbitrary numbers of screens . MEMORY SYSTEM . Renamed some memory stuff (emu\addrmap.cpp) . Address maps macros removal (AM_RANGE() -> map(); AM_DEVICE16() -> .m(m_XXX, FUNC(); AM_DEVICE32() -> .m(m_XXX, FUNC()); AM_DEVICE8() -> .m("XX", FUNC()); AM_DEVREAD -> .r(); AM_DEVREADWRITE() -> .rw(); AM_DEVWRITE() -> .w(); AM_NOP -> .noprw(); AM_RAM -> .ram(); AM_RAM_READ() -> .ram().r(); AM_RAM_WRITE() -> .ram().w(); AM_RAMBANK() -> .bankrw(); AM_READ() -> .r(); AM_READ_PORT() -> .portr(); AM_READ16() -> .r(this, FUNC()); AM_READ8() -> .r(this, FUNC()); AM_READNOP -> .nopr(); AM_READONLY -> .readonly(); AM_REGION() -> .region(); AM_ROM -> .rom(); AM_ROMBANK() -> .bankr(); AM_SHARE() -> .share(); AM_WRITE() -> .w(this, FUNC()); AM_WRITE_PORT() -> .portw(); AM_WRITE32() -> .w(this, FUNC()); AM_WRITE8() -> .w(this, FUNC()); AM_WRITENOP -> .nopw(); AM_WRITEONLY -> .writeonly() ) . Fixed issue causing drivers using netlists to fail on the Emscripten target . PLUGINS . Use print_error to make testing easier (plugins\cheat\init.lua) (ID 06869). Search any address space (plugins\cheatfind\init.lua). . Changed Port name to address objections, also as suggested converted the controls.ini in repo https://github.com/cracyc/portname. Removed the import but will still load parent if available + Describe revised format (plugins\portname\init.lua). . Updated hiscore.dat (plugins\hiscore\hiscore.dat). Added handhelds that have high scores. . Give up if the database can't be created (plugins\data\database.lua) . Restricted ROM labels to a filesystem- and shell-safe subset of printable ASCII. Account for same label different hash (sldh) comments that arose with rom label changes. . Fixed count_leading_zeroes(0) C fallback (osd\eminline.h). Test all 32 results from count_leading_zeros() & count_leading_ones() (emu\validity.cpp). . Include option and file names in fatal error message for failure to load image (emu\image.cpp) . Get rid of dioutput - it's only used in one place, and it upset GCC on Linux debug builds for some reason (emu\dioutput.cpp -> video\dm9368.cpp). . Implemented Sega PCM interface registers in VGM player. Use QSound DSP emulation in VGM player. Disable POKEY and QSound devices if not required. . Multi-Language: Updated Brazilian Portuguese, Chinese (simplified/traditional), Dutch, French and Spanish translations - Compiling . De-staticify initializations for src\devices\video, devices\sound and others . Removed poor-performing parts of the output_manager (emu\output.cpp): Turn deprecated declaration warnings on by default and make them non-fatal. Make output_finder iterable in algorithms and range-based for loops. Replaced a lot of set_something with output_finder. Fixed end()/cend() on output_finder (acefruit.cpp, bfm_sc4.cpp, by17.cpp, by35.cpp, dlair.cpp, ecoinf2.cpp, ecoinf3.cpp, gts1.cpp, jp.cpp, jpmsys5.cpp, maxaflex.cpp, maygay1b.cpp, mpu3.cpp, mpu4.cpp, mwsub.cpp, peyper.cpp, segaufo.cpp, sigmab52.cpp, stactics.cpp, twinkle.cpp, wacky_gator.cpp, machine\bfm_bd1.cpp and bfm_bda.cpp). . Forward some objects; line continuations are not scope (machine\6532riot.h, pla.h and r10788.h). . Deprecated and removed all uses of running_machine::first_screen - there's been plenty of warning (emu\machine.h) . Use device_video_interface and configured screens instead of first_screen (drivers\gambl186.cpp, gamtor.cpp, photoply.cpp, pntnpuzl.cpp, machine\i82371sb.cpp, isa\svga_cirrus.cpp, svga_s3.cpp, svga_trident.cpp, svga_tseng.cpp, vga.cpp and vga_ati.cpp) . Added device_video_interface and eliminated first_screen (video\psx.cpp) . Use screen_device_iterator rather than first_screen (mame\luaengine.cpp) . Removed first_screen usage from bartop52.cpp, cham24.cpp, famibox.cpp, ghosteo.cpp, laserbat.cpp, maxaflex.cpp, multigam.cpp, playch10.cpp, popper.cpp, punchout.cpp, rungun.cpp, stv.cpp, vsnes.cpp, machine\archimds.cpp, audio\dkong.cpp, machine\namco51.cpp, machine\s3c24xx.cpp/hxx, machine\smpc.cpp, video\avgdvg.cpp, video\huc6270.cpp, video\stvvdp2.cpp, sound\nes_apu.cpp, render\aviwrite.cpp and render\d3d. . Removed all uses of first_screen from core files (emu\crsshair.cpp, emu\debug\debugcpu.cpp, emu\debug\dvstate.cpp, emu\inpttype.h, emu\ioport.h, emu\mconfig.cpp, emu\screen.cpp, emu\video.cpp, ui\cheatopt.cpp, ui\ui.cpp, ui\viewgfx.cpp and osd\modules\input\input_windows.cpp). . Eliminated vestigial member that was behind machine().first_screen() (emu\machine.cpp) . Get rid of the last set_indexed_value in drivers/devices, this ends up a bit ugly to maintain backwards compatibility with layouts/web UI (emu\output.h) . Fixed issue causing drivers using netlists to fail on the Emscripten target (netlist\plib\pdynlib.cpp) . Disable multithreading on the Emscripten target as it is not currently supported. Fixes e.g. drivers using discrete audio components (scripts\src\main.lua and osd\osdsync.cpp). . Removed stray address maps on spaces that don't exist (drivers\twincobr.cpp and (MESS) drivers). Cleanup address map remnants (de_2.cpp, s11c.cpp, segaybd.cpp and techno.cpp). . Added missing override (sound\coreaudio_sound.cpp and sound\pa_sound.cpp) . Apply same flags when building with SOURCES= as when building normally (scripts\build\makedep.py). This fixes the issue which prompted "model1: clear up some memory issues with very recent gcc" (which only occurred in a SOURCES= build). . Use more constexpr and literal classes in UML to give compiler more optimisation opportunities (cpu\drcfe.cpp and uml.cpp) . Reduced scope of stuff with different definitions across CPUs (cpu\e132xs\e132xs.h and sh\sh.h) . Prettier way of adding DRC framework on-demand (scripts\src\cpu.lua) . Reduced use of naked pointers, using namespace and preprocessor macros in recompiling CPU cores. . Don't sleepcode (dasm_override in emu\didisasm.h) - for some reason this only upset GCC, not Clang. - Debugger . Fixed extent of debug view of address-shifted memory spaces (debug\dvmemory.cpp) . Fixed output of wplist debug command and find command for address-shifted spaces (debug\debugcmd.cpp) . Fixed watchpoint view for address-shifted spaces (debug\dvwpoints.cpp) . Fixed masking of offset expressions in debug view of address-shifted spaces (debug\dvmemory.cpp) 0.195 - New games: Hammer Boy - New Non-Working games: Blockout (TAX), The Dealer (ACL), Pittanko Zaurus, Sekai Kaseki Hakken (Japan, SKH1 Ver.A), Soreyuke Anpanman Crayon Kids (J 001026 V1.000), Super Medal Fighters (Japan 970228), VJ Visual & Music Slap and Zhaoji Fengdou - New clones: Ares no Tsubasa (Japan, rev. A), Dam Dam Boy (on Tsukande Toru Chicchi PCB), Donkey Junior High Score Kit (hack,V1.2), Donkey Kong High Score Kit (hack,V1.0a), Donkey Kong High Score Kit (hack,V1.2), Donkey Kong/DK (Japan) (hack,V1.1 IKE), Donkey Kong/JR (combo) (hack,V1.2), Double Donkey Kong (hack,V1.2), Gee Bee (UK), Gigas Mark II (MC-8123, 317-5002), Hard Yardage (v1.10), Ironman Ivan Stewart's Super Off-Road (rev 3), Moon Shuttle (US, version A), Pac-Land (Bally-Midway), Pac-Man (bootleg, Video Game SA), Quarterback (rev 1, cocktail), Rabbit (Japan, location test), Sangokushi II (bootleg), Street Fighter II': Champion Edition (Taiwan 920313), Street Fighter II: The World Warrior (bootleg with rules screen), Street Fighter II: The World Warrior (bootleg, set 2), Tapper (Budweiser, 12/9/83), Target Ball '96 and Tecmo Bowl (World, set 2) - New PEPlus games: Player's Edge Plus (PS0280) 4th of July Slots - New drivers: badlandsbl.cpp, blocktax.cpp and konmedal68k.cpp - New devices: clgd5446, es5510, esq_5505_5510_pump, ladybug_video, rst_pos_buffer, rst_neg_buffer, stvcd and zerohour_stars - ADSP21062 CPU: Disabled fatalerror on debugger data area access - I286/I386 CPUs: Fixed default CS flags - I8086 CPU . Make read_byte/word and write_byte/word overridable virtual functions (80186 MMU probably will need to override this in the future). . Make fetch_op an alias for fetch (implementations were identical already). . Removed sreg argument from read_byte/word and write_byte/word (it was almost always m_easeg as set by calc_addr, sometimes with dubious evaluation order). . Restrict logic for separating address spaces for CS/ES/SS accesses to 8086/8088 (later x86 models do not broadcast the descriptors). . Encapsulate m_e16 within the only function that used it. - I80186 CPU: Added some internal peripheral block registers to 80186 debug state - i960kb CPU . Fixed disassembly of REG instructions . Support for burst mode stalling save and restore. Experimental FIFO burst mechanism. Cleanups and commentary. - K051649 sound: Added clock change support - M6502 CPU . Created derived 6502 type for (MESS) XaviX because it has at least one custom . Fixed tracing and breakpoints for paged variants - MC6809 CPU . Replaced MC6809 (legacy) with MC6809E in brkthru.cpp, bwing.cpp, chanbara.cpp, cntsteer.cpp, compgolf.cpp, homedata.cpp and sidepckt.cpp . Replaced MC6809 (legacy) with MC6809 in brkthru.cpp and renegade.cpp - Z80 CPU: Changed refresh callback to write8 - OKI MSM9810 sound: Correct sample rate divider table. Added support for clock changes. Implemented DADR, serial interface and added notes. - POKEY sound: Removed check_debugger - Seta X1-010 sound: Improved naming of member variables/functions - Sound Interface: Soundlatch modernization in 40love.cpp, bigevglf.cpp, crgolf.cpp, ddenlovr.cpp (mmpanic and funkyfig), kurukuru.cpp, ssozumo.cpp, vaportra.cpp and yunsung8.cpp: - Taito Ensoniq ES5505-based sound: Hooked up ES5510 effects DSP (audio\taito_en.cpp) - YM2203 sound: Handle interrupt output as instant timer to prevent synchronization glitches (sound\2203intf.cpp) - YMF271 sound: Allow 4 channel output. Converted external memory handler to address space. Moved global imperfect_sound tags to device imperfect_features. Added notes. - YMZ280B sound: Added device_rom_interface instead external memory handlers - 6840 PTM . Stop defaulting external clocks to 1 Hz. Fully configure MC6840 timer to pass self-test for (MESS) Panafacom Duet-16. . Counter/timers are numbered from 1 to 3, not 0 to 2 as with 8253. Renamed OUT0, OUT1 and OUT2 callback configuration macros to match pin names (O1, O2 and O3). Updated all verbose logging messages to be one-based. Removed unnecessary mentions of device type in logging messages. - 8250 UART: Unbreak the (MESS) IBM pcjr - 8257 DMA: Don't clear DRQ on tc (machine\i8257.cpp; drivers\dkong.cpp and fastinvaders.cpp) - Data East Custom . Fixed tilemap flip (video\decbac06.cpp) . Fixed flip screen rendering of DECO MXC06 sprites (video\decmxc06.cpp). This seems to fix all remaining attract mode glitches in Act-Fancer. This fixes also flipscreen shows "split" sprites in Mad Motor (ID 04942) and Vapor Trail (ID 04987). . Synchronize soundlatch writes, fixes dropouts in Double Wings (machine\deco146.cpp). - Discrete Netlist . Fixed assertion when debugging in Visual Studio (netlist\plib\pstring.cpp) . Fixed is_set() when generic_function is an int array (netlist\plib/ppmf.h) . Disabled netlist statistic logging on shutdown, because it triggers a use after free in void device_debug::errorlog_write_line(const char *line) & fixed the copy & pasted comment (netlist\solver\nld_solver.h). - HD63484 video: Added external skew kludge to prevent display cutoff in Kyuukyoku no Othello - I8275 video . Handle invisible field attributes and "end of row - stop dma" special code better; honor Video Enable bit. Fixes display is not stable and flickers in (MESS) Radio-86RK (4K ROM) (ID 05764). No visual change on (MESS) mikromik, zorba and radio86 clones. . Make Preset Counters command useful. Fixes visuals in (MESS) tim100 and hp64k. - MSM6242 RTC: De-assert interrupt output when the IRQ flag is cleared - RST buffer: Created RST interrupt buffer device - Sega Custom . Kill tile32/char32 tranpolines (video\segaic24.h) . Added object finder m_rom instead memregion(":maincpu") (machine\st0016.cpp) . Make sega_315_5195 and sega_315_5250 sound read/write delegates standard device callbacks (segaorun.cpp, segas16b.cpp, segas18.cpp, segaxbd.cpp and machine\segaic16.cpp) - TMS9927 video . Fixed excessive sync width after recomputing parameters during sync . Adjust vertical positioning of cursor by upscroll value - V9938 video: Improved logging options with logmacro - asteroid.cpp: Use 74LS153 device for dipswitches - bnstars.cpp, macs.cpp, ms32.cpp, seibuspi.cpp, simple_st0016.cpp and speglsht.cpp: Cleanup bankswitching - cave.cpp: Reduced code duplication with templates and object array finders. Fixed spacing and added notes. Fixed FIFO and graphics. - cdi.cpp: Made DMA handling safer (machine\cdicdic.cpp). Note: This fixes the regression in quizard/2/3/4. It's surprising that this very unsafe code hadn't been crashing until just recently. - chihiro.cpp: Clean up some unnecessary machine-relative accesses (machine\xbox.cpp) - ddenlovr.cpp: Clean up DSW mux and fixed akamaru - dec8.cpp . Cleanup bankswitch initializes, driver_init_members and duplicates. . Some accurate CPU type from PCBs and added notes. Converted m_buffered_spriteram16 to unique_ptr. . Removed defined memory map for "If a new dec8.cpp game with a different mapped main CPU ROM is found" . Replaced HD6309 CPU1 with HD6309E in garyoret, ghostb and gondo. - deco32.cpp . Cleanup duplicates. Removed unneed shared_ptr. Added notes. . Converted m_spriteram16*/m_spriteram16_buffered*/m_pf_rowscroll* to std::unique_ptr . Rowscroll ram size allocated to memory mapped size. Moved m_oki2_bank to dragngun_state. Fixed DECO32 ioport tags when "DSW" aren't actually dipswitch. . Improved OKI bankswitching in Locked 'n Loaded . Demoted Dragon Gun to MACHINE_IMPERFECT_SOUND, because OKI3 bankswitching aren't verified. . Fixed ioport tags for Captain America - decocass.cpp: Inverted sprite/sprite priority (seems to help Oozumou - The Grand Sumo) - deco_mlc.cpp . Cleanup unused/duplicates . Added sprite drawing when 8bpp and alpha using simultaneously. Implemented alpha/shadow selectable bits. . Correct game name/region related each rom versions. Implemented more blending mode. Changed m_mainCpuIsArm to m_irqLevel for when discovered non-DECO156 CPU games with different IRQ pin is connected. Accurate shadowMode. Added notes. . Added MACHINE_NOT_WORKING and MACHINE_IMPERFECT_GRAPHICS flags to Skull Fang, because it has sometimes random hangs and these blending and raster effect features aren't fully emulated currently. - djmain.cpp: Fixed MAME exception in all DJMain sets (ID 06884) - dkong.cpp . Simplified banking. Don't clear DRQ on tc (machine\i8257.cpp). . Hooked up undocumented service switch and undumped diagnostic rom to Donkey Kong and Donkey Kong Junior - firebeat.cpp: Minor cleanups. Split main CPU memory maps related for number of allocated GCU chips in PCB. - fromanc2.cpp: Cleanups - gaiden.cpp . Reduced code duplication using templates and object finder arrays. Minor fixes. . Split wildfang/raiga machine config/address map . Fixed hang at soft reset in Raiga - Strato Fighter - gkigt.cpp: Hookup RAMDAC. Some improvements to make most games to boot up to display CMOS error. Hook up SC28C94 QUARTs. Commented out for now to not interfere with development. - itech32.cpp: Hooked up stereo audio output for Driver's Edge and Time Killers - jchan.cpp . Improved sprite-tile priority. Cleanup duplicates . Verified background pen. Fixed tilemap offset. Added notes. - jclub2.cpp and srmp5.cpp: Accurate tag for CPUs and configurated ST0016 rom bankswitching - ladybug.cpp/redclash.cpp: Untangle ladybug and redclash state classes. Moved Space Raider back to Lady Bug driver. - luckgrln.cpp: Use MSM6242 RTC device - m90.cpp: Replaced VBLANK INTERRUPT_GEN with line callbacks - m92.cpp: Soundlatch modernization - megaphx.cpp . Bank the ROM in a somewhat less hacky way. This improves sound in Hammer Boy (whose sound program indeed reads different interrupt vectors, though from a table at the same addresses). Clean up code and added register state for saving (machine\inder_sb.cpp). . Mark Hammer Boy working. Patch PIC ROM to shorten timer or the game times out waiting for an answer from the PIC. Start fixing dip switches for Hammer Boy. Various cleanups. Prevent random hanging in Hammer Boy. - model2.cpp . Cleanups. Fixed viewport. Kill tile32/char32 tranpolines (video\segaic24.h). . Converted colorxlat & lumaram to 16-bit accessors . State-ized frame_start / geo_parse (video\model2.cpp) . Fixed 2D priority over polygons (Virtua Cop level select, Dead or Alive chara select etc.) . Fixed bufferram size and improved geo_parse() . Modified poly_manager parameters, crashes less often now. . Testing sRGB color space . Mask polygon_rom/texture_rom checks towards bounds. Fixed ROM loading regressions. Initialized bufferram to a sane default. . The render_mode can be read back, cfr. Gunblade NY. . Some inputs fixes and updates . Fixed Dead or Alive protection reads . Added "Bat Swing" inputs to Dynamite Baseball and Dynamite Baseball 97 . Fixed texture rom loading for Virtua Fighter 2 and rom loading for Rail Chase 2. . Added 30 Hz renderer mode, fixes Virtua Striker timings. . Hookup polygon count for Sky Target. Note: Only Sky Target seems to use this for unknown purpose. . Make Rail Chase 2 pass the initial network check (has tons of 3D issues) . 'Dead or Alive' protection was actually good this way, mangled 3D is caused by comms or core bugs (machine\315-5838_317-0229_comp.cpp) . i960KB: Fixed disassembly of REG instructions. Support for burst mode stalling save and restore. Experimental FIFO burst mechanism. Cleanups and commentary. Known status (difference from before): daytona: Runs at better speed, crashes/hangs at expert course. dynamcop, indy500, motoraid, vcop2 and vf2: Playable. fvipers: Playable if you coin it up fast enough, crashes in attract otherwise. lastbrnx: Runs a bit further, needs a few extra geometry opcodes. overrev/sgt24h/zerogun: 3D regressions (?). - ms32.cpp: Real arcade board can output stereo sound (http://www.nicovideo.jp/watch/sm23743949), it has a second stereo sound connector. - namcona1.cpp . Fixed soft reset hangs. Improved encapsulation. Demoted all games to MACHINE_NO_COCKTAIL. . Fixed status bar colors for VS Express event in Numan Athletics . Fixed video disable graphic transitions (i.e. temporary gfx seizures) . Added dynamic screen visible area change effect, used mostly by Numan Athletics on transitions. . Fixed bogus palette transfers for X-Day 2. Fixed horizontal scroll adjust and background color pen, improves X-Day 2 video emulation. Added MSM6242 RTC and fixed EEPROM type. - namcos1.cpp: Use 74LS157 device for dipswitches and correct order of switches - nmk16.cpp . Cleanup duplicates. Update documents. . Verified OKI bankswitching for clones Atom (bootleg of Bombjack Twin) and Vandyke (bootleg with PIC16c57). Fixed OKI clock. - nss.cpp: Removed m_clock_line (video\m50458.cpp) - popeye.cpp . Reverted clone Popeye (bootleg set 1) to 0.33b6 names and contents. The tile ROM was replaced with the contents from the TPP2 set and all the graphics roms were renamed to match the names in use at the time. The tile rom in the recently dumped "Popeye (bootleg set 2)" also matches the old tile rom, so it's a reasonable bet that the dump was correct. . Fixed background alignment in TPP2 sets. Converted machine config, address maps, palette init, background write handler & background drawing to virtual methods. Only include protection device on hardware that has it. . Fixed TPP2 test mode background . Added Popeye sprite ram, background scroll and palette buffering. Unmap $8000 to $87ff for TPP2 as 7f is not populated at the factory. . Moved popeye palette resistor network into driver class . NMI disable is latched from A9 (which corresponds to bit 0 of the I register) when RFSH goes from high to low . Moved Popeye Copyright from dipswitches to machine configuration, the schematics show that they are just resistors. The Unknown bit isn't hooked up on the schematics and the game doesn't access it, so I've changed it to unused. . Added 'Difficulty' dipswitches to Sky Skipper - rohga.cpp: Cleaned up IO, protection handling and duplicates. Added notes and removed outdated comments. - segag80v.cpp: Fixed G80 vector opcode handling. This fixes Tac/Scan hangs or resets beyond the second phase (ID 06888). - segas24.cpp: Kill tile32/char32 tranpolines (video\segaic24.h) - seibuspi.cpp: Single PCBs only output mono sound (sxx2e PCB: unverified) - seta.cpp . Configurated M6502 bankswitching. Converted memcpy to std::copy. . Cleanup duplicates. Converted to unique_ptr when array size is >= 0x100. - stv.cpp . Moved existing CD-ROM emulation down into device for Sport Fishing 2 (machine\stvcd.cpp) . Fixed regression due to an unexpected CDDA dependency - taito_f2.cpp: Fixed palette format for games when using 15-bit palette area - taito_l.cpp: Converted VRAM banks to address_map_bank_device. Cleanup duplicates. - tetrisp2.cpp . Workable Stepping Stage Special driver: Added fundamental communication between main 68000 and (undumped) Windows PC. Figured out correct logic of data uploading from main CPU to (maybe an FPGA on some unknown board). Discovered proper V-blank frequency of 4 logigal screens (routed to 3 physical screens in real hardware), which effects the communication and synchronization between 2 68000 CPUs, thus affect booting. Borrowed foreground graphics from vjdash, added proper foreground layer handling and removed hack code. Seperated palette and decoding of 3 screens, and added independent 3rd screen decoding/drawing routine, as each screen has their own palette, and may display totally non-related graphics. Correct sprite rom loading of step3. Mapped dancing floor light, spot light, neon light and key led output, based on some video footage of real arcade machines. Correct NVRAM handling. Adjusted key-mapping of foot step input port, avoided key conflict. The in-game palettes are in 8-BIT YUV(UYUY) format. Each entry may contains 2 pixels. In the real game hardware, the sprites are to be mixed with a MPEG-1 under-layer, then converted together to RGB. . Driver for the recently dumped Vjdash (a 4-monitor game): Figured out that vjdash uses similar hardware to Stepping Stage. Identified graphics roms of foreground/background/ROZ layers. Been able to boot to self-test, thus mapped inputs. In addition to the currently obtained board, this game also needs a 2nd 68000 board which drives 3 upper screens, and one Windows PC, like in Stepping Stage series. This board may have 2 more (missing?) ROM ICs for sprites. - vamphalf.cpp: Converted OKI map to configured banking. Implement OKI bankswitching to Diet Family. - vaportra.cpp: Code cleanup - vectrex.cpp: Partially untangled console and arcade variants from each other - zn.cpp . Cleanup unused/duplicates. Moved bankswitch initializations to MACHINE_START. . Moved bank scheme to address_map_bank_devic in NBA Jam Extreme . Identified CPU type and sound chip for clone Beastorizer (USA bootleg) - Alien Command: Cleanups - Ameri-Hockey: Make Z8 CPU address spaces big-endian - American Poker II: Added vertical blanking input - Bad Lands: Splitted Bad Lands bootlegs into own file. Added preliminary sprite drawing to the bootlegs. Cleanups and improved sound. TODO: badlands_molayout doesn't want to link for some reason, for now I split defs into both files. - Bagman: Fixed broken clone 'Le Bagnard (bootleg on Crazy Kong hardware)' after recent memory changes - BanBam: Added notes regarding protection issues for BanBam/Pettan Pyuu. Note: Banbam has a Fujitsu MB8841 4-Bit MCU for protection labeled SUN 8212. Its internal ROM has been imaged, manually typed and decoded as sun-8212.ic3. Pettan Pyuu is a clone of Banbam although with different levels/play fields. Protection currently fails on both Pettan Pyuu and Banbam if you play either game to Round 11. When you get there, the music still plays but all you see is "ERR-43" in red text at the bottom left of the screen and the game is no longer playable. Also, in some earlier rounds you notice the background graphics are also not producing logical playfields as bits of graphics are in different locations. - Buster: Preliminary work to make it actually show something - Centipede / Millipede / Missile Command / Let's Go Bowling: Some minor investigation. Game is super weird. - Chinese Casino [BET]: No more state hacking for palette writes - City Connection: Don't lose the sprites; added some RAM mirroring. - Come On Baby: Make it to execute some opcodes - Crude Buster: Cleanup duplicates. Moved spriteram buffer functions to buffered_spriteram16_device. Removed unneeded rambank/shared ptr. Minor fix. - Cruis'n USA: Label for PAL2. Verified PAL dumps as bad. - Cyberball: Untangled the dual-screen and single-screen versions - there are substantial hardware differences. - Dark Seal . Dark Seal and clone 'Gate of Doom' have 64x64 PF1 and full 0x2000 area of PF1 ram is used. This fixes background is missing in the first boss area and third stage (ID 06889). Minor duplicate cleanup. . Clean up "control" handlers - Draw Poker III / Dwarfs Den (Dwarf Gfx): Set DIP defaults to display usable graphics - Driving Force: Verified PROMs for clone Driving Force (Galaxian conversion, Seatongrove UK) - Haunted Castle, Ponpoko and Son Son: Use 4-way joystick as documented in manuals - Kirameki Star Road: Added PAL dump - Kyuukyoku no Othello: Added external skew kludge to prevent display cutoff (ID 06446) - Little Robin: Added PCB layout - Mad Motor: General cleanup - Magic's 10: Fixed longstanding regression with gameplay not behaving properly - Mario Bros.: Workaround for missing music/sound effects (audio\mario.cpp) (ID 06870) - Ninja Warriors and Warrior Blade . Cleanup duplicates. Demoted games to MACHINE_IMPERFECT_SOUND, because SSG Output isn't accurate. . Identified Sound chip type for Warrior Blade - Photo Play 2000 . Added Cirrus Logic GD5446 VGA PCI device (video\clgd542x.cpp), now shows some legacy BIOS error (presumably needs PCI support to properly boot). . Many fixes and improvements, see driver notes for more info. . Preliminary EEPROM hookup. Hack EEPROM timings to make it work. - Quiz Do Re Mi Fa Grand Prix 2: Removed IDE hack now that Ted Green's work allows it. This fixes game hang on boot (ID 06885). - Raiden: Correct xtal / clocks for clone Raiden (set 3) - Revolution X: Added crosshairs (ID 06866) - Sand Scorpion: Fixed sprite-tile priority (ID 06688). Make loop counters to individual values and removed hack. Minor cleanups. - Scramble: Fixed dipswitches for clone Scramble (Reben S.A. Spanish bootleg) - Shizhan Ding Huang Maque: Decapped and dumped PIC16F84 - Soul Edge: Fixed background colours in Li Long stage (ID 03563) - Space Gun: Use cswidth for TC0510NIO access - Techno Drive: Added default NVRAM with printer "off" and marked game as MACHINE_NODEVICE_PRINTER (ID 06867) - Time Crisis II: Redumped maincpu program roms for clone Time Crisis II (World, TSS2 Ver. B) - Time Traveler . Removed bogus interrupt generators . Added EEPROM and INS8250 UART - Tora Tora: Fixed dipswitches and DIP locations - Wall Crash: Updated clone (set 2) XTAL value according to PCB pic - Warrior Blade: Use 8-bit handler for TC0510NIO - Fixed year info for piccolop, rchase2, sf2049 (ID 06872), sf2049se, sf2049te and von - Dipswitch fixes in buster.cpp, dwarfd.cpp, galaxold.cpp, gkigt.cpp, namcos1.cpp, popeye.cpp, tetrisp2.cpp and toratora.cpp - Fixed rom names in freekick.cpp, galaxold.cpp, itech32.cpp, leland.cpp, littlerb.cpp, mcr.cpp, model2.cpp, ms32.cpp and tbowl.cpp - Description changes of Avengers In Galactic Storm (US/Europe 1.0), Avengers In Galactic Storm (Japan 1.2), Back to the Future - The Pinball (2.0), Back to the Future - The Pinball (2.1), Back to the Future - The Pinball (2.7), Back to the Future - The Pinball (2.7, Germany), Back to the Future - The Pinball (2.8), Best Bout Boxing (ver 1.3), Dam Dam Boy (on dedicated PCB), Danny Sullivan's Indy Heat (rev 1), Desert War / Wangan Sensou (ver 1.0), Driver's Edge (v1.6), Gratia - Second Earth (ver 1.0, 91022-10 version), Gratia - Second Earth (ver 1.0, 92047-01 version), Hayaoshi Quiz Nettou Namahousou (ver 1.5), Idol Janshi Suchie-Pai II (ver 1.0), Idol Janshi Suchie-Pai II (ver 1.1), Ironman Ivan Stewart's Super Off-Road (rev 4), Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4, 2 Players), John Elway's Team Quarterback (rev 2), John Elway's Team Quarterback (rev 3), Mahjong Angel Kiss (ver 1.0), Print Club 2 Puffy (J V1.100), Quarterback (rev 2), Quarterback (rev 5), Skull Fang (Japan 1.09), Skull Fang (Asia 1.13), Skull Fang (Europe 1.13), Stadium Hero '96 (Europe, EAJ), Street Fighter II': Champion Edition (Hung Hsi, bootleg, set 1), Tapper (Budweiser, 1/27/84), Tapper (Budweiser, Date Unknown), Target Ball (With Nudity), Tecmo Bowl (World, set 1), Tetris Plus (ver 1.0), Tetris Plus 2 (ver 1.0, MegaSystem 32 Version), The Game Paradise - Master of Shooting! / Game Tengoku - The Game Paradise (ver 1.0), Viper (rev 3), Vs. Janshi Brandnew Stars (Ver 1.1, MegaSystem32 Version) and World Soccer Finals (rev 3) - Renamed (tapper) to (tapperb), (tappera) to (tapper), (tgtball) to (tgtballn) and (tgtballa) to (tgtball) - MAME . DEVICES . API change . Memory maps are now "last entry wins". This allows for the much more natural "import another map and patch it" structure, or "cover a whole region then punch holes in it". Our previous first-entry-wins rule was always a surprise to newcomers, and oldcomers too. . Memory maps are now methods of the owner class. Fixed extra-large device map (emu\addrmap.cpp). Removed multiple handlers with different unitmasks on the same line (aerofgt.cpp, astrcorp.cpp, fromanc2.cpp, gaelco3d.cpp, mcatadv.cpp, neogeo.cpp, pgm.cpp, taito_b.cpp and tatsumi.cpp). Fixed (machine\iteagle_fpga.cpp, namco_c139.cpp, drivers\mcatadv.cpp). . Generalized support for byte-smeared accesses: The new cswidth address map constructor method overrides the masking normally performed on narrow-width accesses. This entailed a lot of reconfiguration to make the shifting and masking of subunits independent operations. There is unlikely to have any significant performance impact on drivers that don't frequently reconfigure their memory handlers (emu\addrmap.cpp and emumem.cpp). Set up heavily mirrored memory ranges with subunit masks (e.g. orunners) much more efficiently (emu\emumem.cpp). . Internal maps must now be constructed last to have priority (emu\addrmap.cpp). Fixed memorymap ordering/regression in aeroboto, alibaba, armedf, buster.cpp, calchase.cpp, cave.cpp, cdi.cpp, csplayh5.cpp, cubo.cpp, diamond, exterm.cpp, fastfred.cpp, formatz, gammagic.cpp, jangou.cpp, jpmimpct.cpp, liberate.cpp, ltcasino.cpp, megaplay.cpp, metalmx.cpp, metlfrzr, mlanding.cpp, mpatrol, namcos11.cpp, namcos21.cpp, nbmj8688.cpp, nmk16.cpp, psikyo4.cpp, raiden2.cpp, renju, skyraid, scobra.cpp, scramble.cpp, seabattl.cpp, srmp5.cpp, ssv.cpp, system16.cpp, taito.cpp, tankbatt, tazmania, toratora, tnzs.cpp, voyager.cpp and williams.cpp. Fixed renju regression (emu\emumem.cpp). . Screwed macros: Replaced MACHINE_CONFIG_DERIVED with MACHINE_CONFIG_START. Removed MCFG_FRAGMENT_ADD. There's no voodoo involved in derived machine configurations and fragments any more. The macros were just obfuscating things at this point. . Made some methods private in devices\bus\*.h now that it's possible. Some private-ization and removed some duplication. . Lots of cleanup and encapsulation (drivers\ace.cpp, albazc.cpp, albazg.cpp, aleisttl.cpp, altair.cpp, appoooh.cpp, arcadecl.cpp, aristmk5.cpp, aristmk6.cpp, atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, badlands.cpp, bagman.cpp, batman.cpp, beathead.cpp, bfcobra.cpp, bfm_ad5.cpp, bfm_sc1.cpp, bfm_sc2.cpp, big10.cpp, blstroid.cpp, bowltry.cpp, boxer.cpp, bsktball.cpp, bzone.cpp, canyon.cpp, carpolo.cpp, caswin.cpp, ccastles.cpp, clayshoo.cpp, cloak.cpp, cloud9.cpp, copsnrob.cpp, cyberbal.cpp, cybstorm.cpp, destroyr.cpp, dooyong.cpp, dragrace.cpp, eprom.cpp, eprom.cpp, equites.cpp, equites.cpp, exidy440.cpp, firefox.cpp, firetrk.cpp, flyball.cpp, foodf.cpp, forte2.cpp, gauntlet.cpp, gridlee.cpp, irobot.cpp, jedi.cpp, klax.cpp, ladybug.cpp, liberatr.cpp, looping.cpp, manohman.cpp, mediagx.cpp, meijinsn.cpp, metalmx.cpp, mgolf.cpp, mpu2.cpp, mpu3.cpp, mpu5.cpp, nitedrvr.cpp, offtwall.cpp, ohmygod.cpp, opwolf.cpp, orbit.cpp, patapata.cpp, pengadvb.cpp, poolshrk.cpp, quantum.cpp, quizshow.cpp, quizshow.cpp, rampart.cpp, redclash.cpp, relief.cpp, rmhaihai.cpp, sbrkout.cpp, sfkick.cpp, shougi.cpp, shuuz.cpp, skullxbo.cpp, skydiver.cpp, skyraid.cpp, sprint4.cpp, sprint8.cpp, starshp1.cpp, stellafr.cpp, superslave.cpp, supertnk.cpp, tamag1.cpp, tank8.cpp, tempest.cpp, thunderj.cpp, tomcat.cpp, toobin.cpp, tourtabl.cpp, triplhnt.cpp, tunhunt.cpp, ultratnk.cpp, unico.cpp, vectrex.cpp, vertigo.cpp, victory.cpp, videopin.cpp, vindictr.cpp, wolfpack.cpp, wrally.cpp, xybots.cpp and machine\atarigen.cpp) . Register device callbacks and added some basic validation for them (emu\devcb.cpp, device.h, emufwd.h and validity.cpp) . PLUGINS . Read whole block (plugins\cheatfind\init.lua) . Make the console behave like the docs, unlike the official LUA console if you are in a block, entering a newline on a blank line gets you out (plugins\console\init.lua). . Flip screen . Set flip screen state without peeking into driver_data (video\decbac06.cpp, deckarn.cpp, decmxc06.cpp and decospr.cpp). . Flip screen API cleanup: Make the global flipping functions of driver_device protected so as not to be accessible from within subdevices. Eliminate the flip_screen_set_no_update kludge. . Added K051649 support to VGM player . Added support for multiple patterns and devices to -listfull verb. (mame\clifront.cpp and commandline\commandline-all.rst) . MAME documentation . Terminology cleanup of docs commandline section (docs\source\commandline\commandline-all.rst) . More docs work: Escapes, debugger update. Missed a couple escape sequences. A little more escaping, acronym fixes, fixed oddity in symlist. Updated debugger internal help to match docs. Lowercasing for CPU in command parameters, fix casing on ASCII (docs\source\debugger\breakpoint.rst, cheats.rst, expressions.rst, general.rst, watchpoint.rst, tools\imgtool.rst and debug\debughlp.cpp) . Multi-Language: Updated Brazilian Portuguese and Turkish translations - Compiling . Fixed issue linking Emscripten build with certain single-driver compiles (e.g. spectrum.cpp). Emscripten 1.37.29 or higher is now required (scripts\genie.lua). . MAME_INCLUDES__H is now the standardized way for a MAME include header, starting with a double underscore is reserved by the C++ standard go figure. . Fixed building using system utf8proc and portaudio. Allow using system-wide ASIO (1.11.0 or higher required), GLM and RapidJson headers. Put all ext_includedir calls together. Fixed build failure when SOURCES is defined (scripts\build\makedep.py and target\mame\arcade.lua). . De-staticify initializations for src\mame\video, machine, includes and audio - Debugger . Fixed ASCII dump output for big-endian spaces (debug\debugcmd.cpp) . Fixed F10 step over of instructions with a branch delay slot 0.194 - New games: Cyberstorm (prototype), Last KM (Ver 1.0.0275) and Otakara Itadaki Luffy Kaizoku-Dan! (Japan, v1.02) - New Working games: Knights of Valour 3 (V100, China, Hong Kong, Taiwan), Knights of Valour 3 (V102, China, Hong Kong, Taiwan) and Knights of Valour 3 (V104, China, Hong Kong, Taiwan), Road Burners (ver 1.0) and Road Burners (ver 1.04) - New Non-Working games: Lucky Ball 96 (Ver 3.50 - 627), Missing In Action, Odyssey, Quick Pick 5, Strike Zone (Purple Star), Tiger (slot) and Trocana - New clones: Area 51 / Maximum Force Duo (R3000, 2/02/98), Bioplaything Cop (Ver. 1.0.1823, prototype), Cadash (Spain, version 1), Cookie & Bibi 2 (set 2), Driving Force (Galaxian conversion, Seatongrove UK), Four Trax (Asia), Jolly Card (Italian, bootleg, set 2), Kick Goal (set 2), Knights of Valour 2 New Legend (V300, Oversea), Knights of Valour 2 / Sangoku Senki 2 (ver. 104, 102, 100HK), Knights of Valour 2 New Legend (V301, Oversea), Knights of Valour 2 New Legend (V302, Oversea), Knights of Valour 3 (V101, China, Hong Kong, Taiwan), Lucky Ball 96 (Ver 3.50 - 616), Lucky Ball 96 (Ver 3.50 - 623), Lucky Ball 96 (Ver 3.50 - 626), Maniac Square (unprotected, Version 1.0, Checksum 66B1, 960419/1 PCB), NEW Moero!! Pro Yakyuu Homerun Kyousou, Oriental Legend 2 (V101, Japan), Oriental Legend 2 (V103, Japan), Oriental Legend 2 (V104, Japan), Popeye (bootleg set 2), Popeye (bootleg set 3), Pretty Soldier Sailor Moon (Ver. 95/03/21, Europe), Pretty Soldier Sailor Moon (Ver. 95/03/21, Hong Kong), Pretty Soldier Sailor Moon (Ver. 95/03/21, Japan), Pretty Soldier Sailor Moon (Ver. 95/03/21, Korea), Pretty Soldier Sailor Moon (Ver. 95/03/21, Taiwan), Pretty Soldier Sailor Moon (Ver. 95/03/21, USA), Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 2), Super 97-2 (Witch Bonus), Super World Court (World, bootleg), Track & Field (Centuri, unencrypted), Turbo Force (World, set 2), World Class Bowling (v1.0) and X-Men: Children of the Atom (Brazil 950331) - New drivers: cybstorm.cpp, luckybal.cpp, nmkmedal.cpp, odyssey.cpp, quickpick5.cpp and strkzn.cpp - New devices: deco_ace, generic_cartslot, ls157_x2, seganetw and ttl165 - New mame.ini options: nvram_save = 1 (CORE MISC OPTIONS). fallback_artwork and override_artwork (CORE ARTWORK OPTIONS). - New artworks . bankp, blueprnt, circus, devzone, fireone, lockon, magspot, magspot2, p47, polepos, polepos2, rygar, shuuz and timber . Updated default.lay for dkong3, fantasy->fantasyu and tws96->twsoc96 - 8085A CPU: Clean up state registration. SOD and SID are 8085-specific. STATUS and INTE are 8080-only outputs. Added IM register for 8085. - ADSP-21xx CPUs: Fixed m_pcbucket log typo - ARM7/9 CPUs . Reverted ROR cases in arm7\arm7thmb.cpp, explicit masking and rotating was unneeded (except for POP {Rlist} which is correct), handle v5 behavior (LSB address bit is ignored in 16bit loads) in arm946es_cpu_device::arm7_cpu_read16 instead, manually handle v4 and v5 difference for LDRSH signed halfword load. NOTE: It looks like all? v5 cores ignore least significant address bit during 16bit loads, so we should add something like virtual uint32_t arm7_cpu_read16(uint32_t addr) override { return base_class::arm7_cpu_read16(addr & ~1)}; into theirs class declaration. . Added front-end for ARM7 DRC (arm7\arm7fe.hxx) - Dynamic Re-Compiling: Fixed an 'optimization' which was actually a random bug inducer (cpu\drcbex86.cpp) - Hyperstone CPUs . Added Dynamic Re-Compiling (cpu\e132xs\e132xs.cpp). Added subs to DRC, fixes Hidden Catch fatalerror when selecting a difference. . Allocated core from DRC cache. Potentially fix DRC crash on Linux and OSX. Fixed some 32-bit DRC issues and address Coverity concerns (cpu\e132xs\e132xsdrc_ops.hxx and e132xsfe.cpp). - I386 CPU: Correct when some opcodes were introduced and permit lock with other prefixes (cpu\i386\i386ops.h) - I8051 / MCS-51 CPU: Added DPTR, P0, P1, P2 and P3 to debug state registration - M6502 CPU: Fixed memory leak in M6502 CPU cores (M4510, M6502, M6504, M6507, M6509, M6510 and M65CE02) (ID 06810) - M6800/6801 CPU: Error logging fixups - MC6809 CPU . SWI2 is not HD6309-exclusive (m6809\6x09dasm.cpp) . Fixed memory leak in M6809 CPU core (ID 06811) . Fixed disassembly of relative instructions - M68000 CPU: Fixed m_cpcc in cpu\m68000\m68kdasm.cpp - MC68HC11 CPU . CPU is big-endian . Fixed dissassembly of instructions with 16-bit operands (immediate or direct) - MCS-48 CPU . Use paged mode for disassembler. UPI41 lacks MB0/MB1 paging and has no external memory space. Use 11-bit offsets now (cpu\mcs48\mcs48dsm.cpp). . Program counter wraps at 11 bits . More specific emulation of Intel 8021: Separated disassembler for i802x (including unemulated 8022 instructions). Provided separate (though mostly just more limited) 8021 opcode table. Writes to 8021 P0 no longer go through memory space. - PSXCPU (CXD8530AQ, CXD8530BQ, CXD8530CQ, CXD8661R and CXD8606BQ): Improved PSX state saving - S2650 CPU: Use paged mode for disassembler - Z80 CPU: Fixed disassembly when $ed, $dd & $fd prefixes are used but the instruction is not valid (z80\z80dasm.cpp) - DCS sound: Some minor changes mainly for DSIO and DENVER systems (audio\dcs.cpp) - Time Pilot Audio: Moved soundlatch down into device (audio\timeplt.cpp), since it's actually part of the board (drivers\pooyan.cpp, rallyx.cpp, rocnrope.cpp, timeplt.cpp and tutankhm.cpp). - Yamaha YMW-258-F sound . Avoid unnecessary initialization and fixes division by zero (sound\multipcm.cpp) . Moved bank schemes to DEVICE_ADDRESS_MAP and allow 512 Samples (0x1800 Header size, 12byte Header per sample). Fixed MultiPCM banking in segas32.cpp (chip doesn't have panning-related bankswitching). - YMZ770 sound: Updated documentation and tidied up - CD-ROM: Recognized ISO images with 2336 byte sectors - CGA video: Fixed 400 line text mode for (MESS) Olivetti M24 - Data East Custom . Removed space, offset and mem mask from decocomn_device::priority_r. Get rid of nonbuffered_palette_w (video\decocomn.cpp; drivers\boogwing.cpp, cninja.cpp, dassault.cpp and rohga.cpp). . Splitted ACE Chip emulation from video\deco32.cpp into video\deco_ace.cpp . Split pf1/pf2 RAM allowing sizes to differ (video\deco16ic.c) - Floppy: Got rid of bogus default drive in lookup functions, avoid some potential nullptr dereferences and made floppy_get_drive() internal for imagedev\flopdrv.cpp. - Generic Cartridge Slot: Differentiate between cartridge (cart) and romimage (rom) in generic slots (generic\slot.cpp) - IDE: Actually implement read multiple command for machine\idehd.cpp. Fixes crash on 'NBA Showtime: NBA on NBC' where the vegas driver assumes that the buffer is 16 deep. - Konami Custom . K001604: Implemented front layer rotate and zoom (drivers\cobra.cpp, gticlub.cpp, nwk-tr.cpp and zr107.cpp) . K054539: Moved sample RAM to address map (drivers\djmain, konamigq and qdrmfgp) - SCN2674 Video Controller . Splitted up logging. Hook up SCN2674 to (MESS) Micro-Term 420. . Avert screen_device::update_partial assert failure during debugging in debug build - SVGA video . S3 hardware pointer colour select is now reset on reading CR45, as per documentation. . ATI MACH8/MACH32: Limit sourcex/y to 11 bits, fixes MACH32 detection in bundled Win9x drivers. Mapped MACH32 hardware pointer registers. Added 8514/A compatible DAC registers, fixes I/O port conflict in DOS MACH32 utilities and 8ppp colours under Win9x. Get MACH32 hardware cursor to display. . Added Scan To X command to MACH8, used by Win9x drivers to write cursor data. . Correct MACH32 display of 16bpp video mode in Windows 9x (hardware pointer still needs work) - TMS9927 video . Added BL line read for future use . Correct sync timings and added untested HSYN callback . Added 80-column/132-column display clock switch for (MESS) Visual 100 . Disabled side effects for reads - TTL . Converted 74157 TTL to bitswap<4> . Added two-in-one version of LS157 and hook it up to Alien Arena, Joust, Plotting and Splat!. . Use 74157 device in williams.cpp to do input multiplexing. Added port names. . Added SN54/74165 8-Bit Parallel-In/Serial-Out Shift Register for Otakara Itadaki Luffy Kaizoku-Dan! . Improved 74153 interface (carpolo.cpp) - V9938 video: V9938 should abort a command when the mode is switched before completion - VGA video: Avoid crash in (MESS) Windows 95 'A-10 Cuba!' - Xicor X2212 256x4 NOVRAM: Eliminated alloca() - aristmk5.cpp: Green Lizard (AHG1623, US) and King Galah (AHG1625, US) were actually Cash Express versions (and Honky Tonk wasn't, oddly enough). Updated the descriptions to suit. Fixed bugs in layout\qnilecea.lay and added new layouts. - asteroid.cpp: Added coin counters and clarify LEDs - atlantis.cpp: Fake waitstates for RTC reading and adjust DCS polling offset. RTC changes fixes RTC clock stopped warning in Atlantis driver. - blockout.cpp . Fixed Agress offsetted text layer, worked around initial VRAM check. . Converted to SCREEN_RAW_PARAMS and fixed visible area for Agress and Block Out. . Fixed input labels and hookups, following manual and in-game descriptions. . Cleaned up video function . Separated Agress rom patch from blockout_state - chihiro.cpp . Temporary fix machine\xbox_pci.cpp to show Xbox recovery screen. Make USB work again. . Added skeleton Sega network device so that the rom can be moved from chihiro.zip to seganetw.zip - cninja.cpp: Added MCFG_SCREEN_RAWS. Cleaned up I/O and protection handling. - deco156.cpp: Get rid of unused functions - esd16.cpp: Added factory defaults (EEPROM) for Deluxe 5, Multi Champ Deluxe and Multi Champ Deluxe (ver. 1114, 14/11/1999) so they don't run with bogus values - gaelco.cpp: Fixed sample end position in sound\gaelco.cpp, fixes clicking sounds in various games. Verified this with the sample data in ROM, looks correct, we were playing an extra byte from a different sample each time. - gaelco2.cpp: Updated documentation based on photos of PCBs - goldstar.cpp: Expanded maincpu region from 32KiB to 64KiB for lucky8 and derivatives and mapped ROM in 0xC000-0xF7FF range (needed for some sets). - hng64.cpp: Enabled preliminary ROZ floor for Fatal Fury: Wild Ambition and Buriki One - homerun.cpp: Added screen raw parameters - kickgoal.cpp . Cleaned up driver so that it uses OKI6295 mem map etc. . Added pic16c57 audiocpu rom, 93c46 EEPROM and a redumped TMS27C040 OKI rom to Kick Goal (set 1). - m72.cpp: Clean up address maps - mexico86.cpp: Fixed some fallout - model1/2.cpp: Added configured banking to audio\segam1audio.cpp - ms32.cpp . Improved and cleaned up tile-tile priorities. Fixes title screen in 'Idol Janshi Suchie-Pai II', 'Gratia - Second Earth' intermissions and 'Hayaoshi Quiz Nettou Namahousou' flame screen during attract. . Fixed MAME exit with exception "unhandled priority type f8" in Gratia ending screen (ID 03790) - multfish.cpp and multfish_boot.cpp: Added pre-initialized factory defaults to all sets so they boot by default - namcond1.cpp . Added mosaic effect for NCV1 'Galaga Arrangement' ending/staffroll (video\ygv608.cpp) . Guessed that R#13 is used for transparent color, fixes 'COLOR TEST' in ND-1 self test. . Fixed a small graphics glitch in 'RALLY-X Arrangement' (video\ygv608.cpp) - namcos2.cpp and namcos21.cpp: Namco C148 (CPU Bus Manager) use required_device and optional_device (machine\namco_c148.cpp). This fixes debug assert in winrun, winrun91 and winrungp when starting emulation (ID 06548). - nss.cpp, sfcbox.cpp and snesb.cpp . TnDIV divides by 256 when setting written is 0 in SNES sound. Merged timer counters into one single function (audio\snes_snd.cpp) . All SNES APU docs claims that SPC700 audio CPU runs at 2.048 MHz and there's no mention about an internal divider (which should belong to the CPU core while fixing the opcode cycles anyway). - nwk-tr.cpp: System has 2 graphics boards. Implemented front layer rotate and zoom (video\k001604.cpp). This fixes crash shortly after OK in clones Racing Jam: Chapter 2 (EAE) and (JAE) with debug build (ID 05632). - pgm2.cpp . Do rowscroll for all rows so 240 cases work . Dumped internal firmware/module keys for Knights of Valour 3 (V104, China, Hong Kong, Taiwan) and clone (V102, China, Hong Kong, Taiwan). Added default SRAM, speedups and fixed visible area. Note: FPGA comms emulation required, currently hacked out. . Emulated kov3 ROM module communication and removed hack. Added few more kov3 security notes. . Fixed foreground tilemap size, fixes kov3 boss death sequences. . Added 'sprite disable' bit, prevents stray horemen heads in kov3 attract and changes what you see in the shop. . Handle MSB of zooming, used by kov3. . Removed BAD_DUMP flags from orleg2 sprites_colour roms, they are not suspects anymore. . Ensure savestates work from commandline (eg launching with -state 0) tag driver as supporting states . Improved simulation using real data and make fake keys for kov3 100 and 104. - playch10.cpp: Exposed countdown LEDs through output system and render with artwork (ID 02076). Note: Add "-bios single" or "-bios singleb" on command-line to access it and set in MAME "Video Options" to "Single Screen". - popeye.cpp . Fixed background in Popeye (Japan), Popeye (Japan, Older) and Popeye (bootleg set 1). Popeye (Japan) does not run on the exact same hardware as Sky Skipper & was the basis for the popeyebl set. Fixed horizontal and vertical scroll register behaviour in Popeye. Changed function names from the game name to the hardware id the functionality was first used in. . Fixed Popeye background scrolling when screen is flipped . Implemented tile palette banking on TNX1 hardware, the side bars in Sky Skipper are now darker on night time levels. This is a guess based on the prom contents, due to lack of unmodified TNX1 boards. . Implemented sprite priority & clipping (ID 03725). Note: On the real Popeye hardware, sprite colour 0 is not transparent with respect to overlapping sprites. It's only transparent with respect to the background graphics. When two sprites overlap in Popeye, the sprite with the highest priority completely overdraws the sprite underlying it, including the transparent area (pixel with colour value 0). The result is that instead of proper sprite prioritzing, overlapping sprites are overdrawn like chunky blocks. . Moved protection save state into driver_start() leaving driver init for decryption, combine sprite proms & invert bootleg proms in the rom load, bank the sprite palette & only update the palette if the bank register changes, draw background directly into bitmap & include the area above the background buffer (although it's not clear exactly where the values are fetched from on real hardware). - psikyo4.cpp: Cleanup YMF278B banking - r2dx_v33.cpp: Moved globals into state - rohga.cpp . Improved Nitro Ball priority/alpha mixing. Demoted Nitro Ball/Gun Ball to MACHINE_IMPERFECT_GRAPHICS, because it has priority/blending issue. . Updated priority mode 0x20 - segas32.cpp: Fixed MultiPCM banking (chip doesn't have panning-related bankswitching). Added configured banking and notes. - segaxbd.cpp and taitotx.cpp: Don't use driver_device - seta.cpp . Replaced ROM patches with protection simulation for Meta Fox . Added IRQ acks and PIT8254 for latter to madshark and magspeed . Use PIT8254 device in kamenrid and msgundam . Acknowledge interrupt for tndrcade, thunderl, wiggie and wits - stv.cpp . Fixed color calculations for non-mode 5 sprites (i.e. (MESS) Sega Saturn 'Virtual Hydlide' avatar shadow) (video\stvvdp1.cpp) . Fixed mode 2 transparent pen sprites for (MESS) Sega Saturn 'Scud - The Disposable Assassin' (video\stvvdp1.cpp) . Fixed some boundary checks for filters access (machine\stvcd.cpp) - system16.cpp: Removed sprite device in Beauty Block and IQ Pipe - thief.cpp: Interrupt modernization and use MCFG_SCREEN_RAW_PARAMS - twinkle.cpp: Moved a couple of functions into driver class - vamphalf.cpp . Improved Mr. Dig speedup, it appears to be faster and works for DRC & interpreter. . Improved Mr. Kicker speedup and standardised the rest (except Age Of Heroes) . Removed "space" calls and use e132xs state enum instead of magic numbers - vegas.cpp . Use only assert/clear interrupts on a change in VRC5074 System Controller. Prevents clearing of MIPS3 timer interrupt inadvertantly (machine\vrc5074.cpp). . Promoted Road Burners and clone to WORKING . Calculate screen size and timing using Voodoo CRTC and PLL registers. Use CRTC registers for vblank start (video\voodoo.cpp). . Actually implement read multiple command for machine\idehd.cpp. Fixes crash on 'NBA Showtime: NBA on NBC' where the vegas driver assumes that the buffer is 16 deep. . Only clear edge triggered interrupts and initialize timer from counter register (machine\vrc5074.cpp) . Fake waitstates for RTC reading and adjust DCS polling offset. RTC changes fixes RTC clock stopped warning in Vegas driver. - viper.cpp: Moved remaining globals into viper_state - wms.cpp: Added year to WMS sets and copyright/year to mame.lst - AGEMAME . Added 74HC259 device (addressable latch) to maygay1b.cpp . Added some rudimentary handlers and guessed devices to Lucky Dip (Maygay) - Backfire!: Palette cleanup - Black Touch '96: Fixed pickup colours and hook up OKI6295 sound - Block Hole: Restored Button 2 and 3 and Joystick Down inputs - Boogie Wings: Alpha blend/Palette effect improvements (ID 02183). Hooked up DECO 99 "ACE" chip. Updated alpha blending notes. Demoted game to MACHINE_IMPERFECT_GRAPHICS. - Cabaret and Time Traveler: Added 8255 PPIs - California Chase: Added some keyboard inputs - City Connection . Fixed MC6809E sound CPU speed . Hooked up AY-3-8910A read, which fixes cop car spin sound. - Crush Roller . Replaced ROM patches with protection simulation for Make Trax. Restored maketrax save state support. Fixed maketrax regression (teleport holes DIP not working). . Fixed regression in clones mbrush and crushbl2 . Simulated protection for korosuke and cleanup - Darius Gaiden - Silver Hawk: Removed outdated kludge - Diamond Run: Fixed missing level start music (ID 06825) - Dragon Master: Fixed palette (12-bit RGB 4-bit intensity; fixes fading) - Draw Poker III / Dwarfs Den (Dwarf Gfx): Removed unnecessary gfx expand code, the interpolation is impossible to properly display in the gfx display anyway. Show tiles as 8x8. - F-1 Grand Prix: Fixed getting stuck on "ID CHECK" - Ginga NinkyouDen and Xain'd Sleena: Identified 6809 type - Grudge Match: Default 'Free Play' dipswitch to 'Off' for the recently added Grudge Match parent set (Free Play doesn't work properly on it anyway). Leave it to 'On' for the previous set because Coin mode doesn't work properly there. - Hana Jingi: Fixed hjingi_bank_w regression. Managed to removed it entirely in the course of separating the bank switches. This fixes emulation hang (ID 06799). - Intrepid: Fixed 'Lives' dipswitch for Intrepid bootleg sets - Jolly Card: Added full specs for clone Jolly Card (Italian, different colors, set 1) - The King of Fighters 2002: Added gross hack to fix clone 'The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)' state save, save_pointer() must be called after the pointer is set & does not cope with it changing. - Max RPM: Converted ADC0844 write to bitswap<4> - Mosaic: Added PCB layout and changed CPU/Sound clocks to be derived from actual OSCs on PCB - Nurete Mitaino: Redumped sound rom - Olympic Hot Stuff: Added MC146818 RTC to make one more test pass and serial interface - Passing Shot: Fixed address map for Passing Shot (4 Players) (bootleg) - PinMAME: Replaced M6809 CPU in wpc_s.cpp with MC6809E - Polygonet Commanders: Added K054321 sound control - The Punisher: Fixed m_sprite_base for clones The Punisher (bootleg with PIC16c57, set 1/2/3) - Route 16: Replaced ROM patches with protection simulation for Route 16. Restored save state support for protected sets. - Shooting Star: Added 68681 DUARTs and YM2149 sound - Shuriken Boy: Allowed game to display and fully pass POST and hooked up I/O ports - Splash!: Draw sprites in reverse order. This fixes wrong sprite priority on bonus items in Splash! and clones (ID 06791) - Strike Force: Fixed black screen after rom check (machine\midyunit.cpp) (ID 06804) - Thunder Zone: Added MCFG_SCREEN_RAWS. Demoted game to MACHINE_IMPERFECT_GRAPHICS, because blending effects aren't fully emulated. Added notes. - Top Gunner: Added XTAL and motor MCU. Removed no longer used functions. - Turbo Sub: Switch to non-legacy 6809E CPU - Warriors of Fate: Verified clone Warriors of Fate (World 921002) program ROMs dump - Fixed year info for Behind Enemy Lines and Virtua Fighter 2 - Dipswitch fixes in balsente.cpp, blockout.cpp, konmedal.cpp, tigeroad.cpp and toaplan2.cpp - Fixed rom names in gaelco2.cpp, jaguar.cpp, kickgoal.cpp and mosaic.cpp - Description changes of Aero Fighters (bootleg, set 1), Aero Fighters (bootleg, set 2), Area 51 (Time Warner license, Nov 27, 1995), Area 51 / Maximum Force Duo (R3000, 2/10/98), Chicken (01J01886, Venezuela), DoDonPachi Dai-Ou-Jou Tamashii (V201, China), Cookie & Bibi 2 (set 1), Dongfang Zhi Zhu (Hong Kong, V011H), Enchanted Forest - Cash Express (AHG1615, US), Fortress 2 Blue Arcade (World) (ver 1.01 / pcb ver 3.05), Fortress 2 Blue Arcade (Korea) (ver 1.00 / pcb ver 3.05), Four Trax (World), Green Lizard - Cash Express (AHG1623, US), Hong Hu Zhanji II (China, set 1), Hong Hu Zhanji II (China, set 2), Honky Tonk (BHG1455, US), Hudie Meng 97, Jolly Card (Italian, bootleg, set 1), Kick Goal (set 1), King Galah - Cash Express (AHG1625, US), Knights of Valour 3 (V100, China, Hong Kong, Taiwan), Knights of Valour 3 (V102, China, Hong Kong, Taiwan), Knights of Valour 3 (V104, China, Hong Kong, Taiwan), Mahjong Long Hu Zhengba 2 (set 1), Mahjong Long Hu Zhengba 2 (VS221M), Mahjong Man Guan Caishen (V103CS), Mahjong Man Guan Daheng (Taiwan, V123T1), Mahjong Man Guan Daheng (Taiwan, V125T1), Neraidoula, Popeye (bootleg set 1), Popeye (Japan), Popeye (Japan, Older), Queen of the Nile - Cash Express (AHG1608, US), Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 1), Shizhan Ding Huang Maque (Version 4.1), Shizhan Majiang Wang (Version 8.8), Shuzi Leyuan (V113FR), Shuzi Leyuan (V127M), Sorcer Striker, Sorcer Striker (Korea), Thunder Hoop (Ver. 1, Checksum 02A09F7D), Turbo Force (World, set 1), Wanli Changcheng (China, V638C), Xingyun Man Guan (China, V651C), Zhongguo Long (China, V010C), Zhongguo Long (Japan, V020J), Zhongguo Long (Japan, V021J) - Renamed (47pie2) to (suchie2), (47pie2o) to (suchie2o), (chickna5b) to (chickna5v), (chickna5qld) to (chickna5ql), (ddpdojh) to (ddpdojt), (eforsta5ub) to (eforsta5cea), (glizardu) to (glizrdce), (kgalahu) to (kgalahce), (kov2nl) to (kov2nl_302cn), (kov2nl_300) to (kov2nl_300cn), (kov2nl_301) to (kov2nl_301cn), (pengpayuc) to (pengpayce), (qnileub) to (qnileceb), (sailormno) to (sailormnn), (sailormnoh) to (sailormnnh), (sailormnoj) to (sailormnnj), (sailormnok) to (sailormnnk), (sailormnot) to (sailormnnt), (sailormnou) to (sailormnnu), (sstrikera) to (sstrikerk), (suchipi) to (suchiesp), (weststory) to (weststry) and (weststorya) to (weststrya) - MAME . VIDEO RENDERING SYSTEM . BGFX . Use bgfx::ViewMode::Sequential fixes handheld overlays (render\drawbgfx.cpp). This fixes bitmap overlays don't display with BGFX video output (ID 06806). . Abstracted some view-related functions into bgfx_view class . Fixed two issues with the GLSL Bilinear Shader: 1. Off-by-one pixel coordinates. 2. Sampling of wrong pixels at some non-integer stretch factors. Note: First was noticed while comparing screenshots of the software and OpenGL w/GLSL renderers (OpenGL output was shifted up and to the right). Fixed by subtracting a 1/2 pixel from the texture coordinates when calculating the bottom left pixel to use for interpolation. Second was apparent when running Pac-Man fullscreen on a 1920x1080 screen and allowing non-integer stretching. Manifested as irregular horizontal 'steps' in the output. Fixed by sampling from the center of all pixels which should avoid any funny business in regards to pixel coordinate rounding. . Added GLSL Bicubic Shader to OpenGL backend. This shader uses the equation described by R. Keys in the paper 'Cubic Convolution Interpolation for Digital Image Processing' which is, in this case, the same as a Catmull-Rom spline. This produces a sharper upscaled image than bilinear filtering. The new shader is selected by setting gl_glsl_filter to 2. Consequently, gl_glsl_filter is now treated as an int rather than a boolean. Also fixed a variable name problem in the code guarded by GLSL_SOURCE_ON_DISK. . Fixed update_gamma_ramp (render\drawd3d.cpp). This fixes full screen Brightness/Contrast/Gamma settings not working anymore (ID 06623). . Privatized m_screen and other variables of device_video_interface . Fixed Blit function (binding reference to nullptr; emu\screen.cpp) . Added artwork override and fallback options. Removed debug testing code. Allow loading of built-in layouts even if override_artwork is specified. Allow loading of fallback_artwork if only default view have been found. Fixed order of built-in layouts with regards to fallback_artwork as agreed upon the forums. Changed |= true to = true, and changed override artwork so it only checks for default.lay if the .lay is not found (emu\render.cpp and emuopts.cpp). . DEVICES . Removed space.device().safe_pc() from devices . Eliminated some machine().firstcpu usage. Eliminated unnecessary downcast in debug\debugcpu.cpp. . Moved machine\meters.cpp/h and ticket.cpp/h to devices\machine\ . Differentiate between cartridge (cart) and romimage (rom) in generic\slot.cpp . API Change: Machine configs are now a method of the owner class, and the prototype is simplified. NOTE: Beware, the device context does not follow in MCFG_FRAGMENT_ADD anymore due to the prototype change. So creating a device then configuring through a fragment doesn't work as-is. The simplest solution is just to add a MCFG_DEVICE_MODIFY at the start of the fragment with the correct tag. Fixed timeplt_audio and Chance Kun regression. Regression fixes/cleanups to pooyan.cpp, rocnrope.cpp and tutankhm.cpp. Removed machine_config_constructor (emu\emu.h, gamedrv.h, mconfig.cpp and validity.cpp). . UI . Added option to disable saving NVRAM on exit (emu\emuopts.cpp and machine.cpp) . Fixed AddressSanitizer: alloc-dealloc-mismatch when closing dipswitch menu (ui\menu.cpp) (ID 06816) . Disambiguate memory handlers . Replaced list of crystal/resonator/oscillator frequencies with a solution that doesn't require recompiling everything on changes . Fixed nodump disk validation regression (emu\softlist.cpp). Simplified nodump CHD check. . Added verbose logging for configuration files (emu\config.cpp). Note: We already have verbose logging for INI files that get parsed, so having CFGs get similar treatment is useful. . Converted zippath directory to a C++ interface (ui\filesel.cpp, imgcntrl.cpp, util\zippath.cpp and debugger\debugimgui.cpp) . PLUGINS . New WIP plugin for loading translations or alt names for input port fields. Use a subdir and emu.file so they can be packaged in ZIPs. Added #import and #set tags. Note: Use plugin options to save the input port list to a gettext formatted file. The file is saved in the ctrlrpath dir. Use #import to load names from a different file. Use #set ,,... to override names for a child set, common names should be listed at the top before any #set tag. Sort the list and print the port names and masks (plugins\portname\init.lua and plugin.json). . Fixed table lookup in plugins\data\database.lua (ID 06821) . Added reporting of database errors (plugins\data\database.lua and data_marp.lua) . Don't pollute the namespace and use emu.print_error (plugins\data\data_marp.luam database.lua and load_dat.lua) . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . Fixed plugins\cheatfind . Use C locale for int/float in XML files (util\xmlfile.cpp) . Clean up and improved comments for some Chinese names. Hong Kong titles should probably be Cantonese. . Basic anchor links for FAQ page (docs\source\usingmame\commonissues.rst) . Updated documentation for castool and added floptool (tools\castool.rst and floptool.rst) . Overhaul commandline section of docs, includes index with linkable anchors (docs\source\commandline\commandline-all.rst): The first set of commandline overhauls. Correct case on headings, further improvements to index and spelling fix. More updates to the index and cleanup to the commandline stuff. More core options in the index. Finished multiplatform commandline index. Completion of first revision commandline index. . Added HuC6280 stereo, K054539, NMK112, dual OKIM6295 and Qsound support to VGM player. Cleanup of duplicated code using templates and device finder arrays (drivers\vgmplay.cpp). . Multi-Language . Regenerated localisations . Updated Dutch, German and Greek translation - MAC OS X: Detect attached debugger on OSX before generating trace/breakpoint trap - Compiling . Added workround for Clang static builds and enable them again, don't force -O1 on Clang builds (scripts\genie.lua). . Added -lSDL2main to fix linking with GCC 7 (osd\sdl.lua). Use dynamic linking for Windows SDL builds to workround an error during linking about liblualibs.a being corrupt, which is dependant on the order of the .o files contained within it (scripts\genie.lua). . Removed qtmain on windows, it conflicts with SDL2_Main (osd\modules.lua). Fixed building for windows with qt debugger (osd\windows\window.cpp). . Fixed tiny build (scripts\target\mame\tiny.lua) . Fixed MSVC 2015 build (drivers\eprom.cpp) . Added asserts for index out of bounds with e.g. mushi2k4 (ID 06817) and ddboy to sound\aica.cpp and video\k054156_k054157_k056832.cpp . Restored SANITIZE make option. Restored basic support for SANITIZE make option. Disabled some unwanted UBSAN checks / enabled nullability checks / enabled ASAN use-after-scope checks. . std::function is too inefficient, std::function and delegate both require runtime relocations and slowing down startup. Just use function pointers. Get rid of a circular dependency between gamedrv.h and mconfig.h (emu\devdelegate.h, driver.cpp, emu.h, gamedrv.h and mconfig.h). . Eliminated core_strdup (mame\pluginopts.cpp, util\corestr.cpp and lib\osdobj_common.cpp). This fixes memory leak in options (ID 06813). Work around glibstdc++ allocator not dealing with T & being the same thing as T const & because T is already const-qualified. Note that this makes the code less safe because modifying elements of the list can cause the addresses of the data to change (mame\pluginopts.h). . Removed unused macro in osd\windows\winmain.h . Temp workaround for GCC 7.3 (3rdparty\glm\glm\simd\platform.h) - Debugger . Fixed masking of signed integer types in debug state (emu\distate.h) . Added MAME Debugger help documentation . Removed address-to-byte calls in emu\debug\debugcpu.cpp and mame\luaengine.cpp. This fixes cheats not working in Battletoads and other games (ID 06857). 0.193 - New games: 4-in-1, Calcune (Japan, prototype), In Your Face (North America, prototype), Joker Poker With Hi-Lo Double-Up, The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23), Slot (unknown bootleg?) and TelePachi Fever Lion (V1.0) - New Working games: Action Fighter (FD1089B 317-unknown), Action Fighter (FD1089B 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-0018), Action Fighter (System 16B, FD1089B 317-unknown), Action Fighter (System 16B, FD1089B 317-unknown, analog controls), beatmania IIDX 4th style (GCA03 JAA), beatmania IIDX 6th style (GCB4U JAB), beatmania IIDX 6th style (GCB4U JAA), beatmania IIDX 7th style (GCB44 JAA), beatmania IIDX 8th style (GCC44 JAA), beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM), Dodonpachi Daioujou Tamashii (V201, China), Knights of Valour 2 New Legend (V300, China), Knights of Valour 2 New Legend (V301, China), Knights of Valour 2 New Legend (V302, China), Oriental Legend 2 (V101, China), Oriental Legend 2 (V103, China), Oriental Legend 2 (V104, China), San Francisco Rush: The Rock and Tazz-Mania (Arfyc / Rodmar bootleg) - New Non-Working games: Golden Hexa, Hexa President, Multi Game IV (V.Ger 3.44), Pitch Hitter - Baseball Challenge, Real Battle Super Phoenix Mahjong (Version 4.1), Shuriken Boy and Torarechattano - AV Kantoku Hen (Japan) - New clones: A-Blast (Japan), Amigo (bootleg of Amidar, set 2), Attack (Defender bootleg), Blood Bros. (US), Blue's Journey / Raguy (ALH-001), Dangerous Curves (Ver 2.9 O), Death Crimson OX (Rev A), Fantasy (Germany, set 2), G.I. Joe (Asia, AA), Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Covadonga Spanish bootleg), Jolly Card (Italian, bootleg), Oriental Legend 2 (V101, Oversea), Oriental Legend 2 (V103, Oversea), Oriental Legend 2 (V104, Oversea), San Francisco Rush 2049: Tournament Edition Unlocked, Super Bagman (Itisa, Spain), Teki Paki (location test), Twin Brats (set 1) and West Story (bootleg of Blood Bros., set 2) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Final Soldier, PC Genjin, Saint Dragon, Splatterhouse, Tora e no Michi and Violent Soldier - New AGEMAME games: Boot Scootin' (AHG1547, US), Bumble Bugs (CHG0479-99, US), Chicken (01J01886, NSW/ACT), Chicken (RHG0730-99, US), Enchanted Forest (AHG1615, US), Enchanted Forest (JHG0415-99, US), Filthy Rich (English), Green Lizard (AHG1623, US), Honkey Tonk - Cash Express (BHG1455, US), Inca Sun (01J01946, Venezuela), Keep Your Hat On (BHG1204, US), King Galah (AHG1625, US), Mine, Mine, Mine (NHG0416-99, US), Money To Burn (English), Mountain Money (BHG1464, US), Penguin Pays (OHG0417-02, US), Penguin Pays (OHG0417-03, US), Penguin Pays - Cash Express (AHG1544, US), Queen of the Nile (AHG1608, US), Queen of the Nile (GHG4091-03, US), Reel 'Em In (English), Wild Africa (AHG1535, US), Wild Cougar (AHG1531, US), Wild Cougar (NHG0296-07, US), Wild Cougar (NHG0296-99, US) and Winning Bid (English) - New PinMAME games: Creature from the Black Lagoon (L-2) and Striker Xtreme (1.01 Italy) - New MAME Build Tools (2017-12-26): http://mamedev.org/tools/ - Removed games: Margarita Magic (EHG1559, US, set 2) - New drivers: calcune.cpp, nsg6809.cpp and yuvomz80.cpp - New devices: hd6309e, mc2661, mc6809, mc6809e, mos6551, pgm2_memcard, pit68230 and ripple_counter - New mame.ini options: rewind = 0 and rewind_capacity = 100 (CORE STATE/PLAYBACK OPTIONS) - ARM7/9 CPUs . Fixed misaligned 16-bit loads (thanks to MoochMcGee for report) . Made LDMIA/STMIA align to 32-bit boundary (cpu\arm7\arm7thmb.cpp) . Only define LSL, LSR, ROL & ROR when building the cpu core (cpu\arm7\arm7core.h). Protect trampoline constructors (cpu\arm7\arm7.h). . Mask address LSB during 16/32 bit memory access, as per ARMv5/ARM9 behavior. Handle 2 magical ROR cases. This needed to be changed or split when we will be emulate ARMv6/ARM11 (cpu\arm7\arm7thmb.cpp). - I386 CPU . In the poentium_smi() routine all calls to WRITE32 have the parameters swapped . x87 bug fixes and FERR support . Small change to enter system management mode (cpu\i386\i386.cpp). Fixed rsm instruction (cpu\i386\pentops.hxx). . Separated i8087 FPU device and added save state. Fixed i8087 regression pending further investigation with (MESS) Fanuc driver. - I4004 CPU: MCS-40 is paged - M680x0, MC68307 and MC68340 CPUs . Refactor 680x0 so that member variables aren't public . More static, less const and some irrelevant inline (cpu\m68000\m68kcpu.h). . Removed safe_pc() from MC68307 and MC68340 CPU - MC6809/HD6309 CPU . Resolved the great device type/clock divider mix-up . Fixed MC6809 clock speed in aeroboto.cpp, archrivl, beezer, bfcobra.cpp, bladestl.cpp, capbowl.cpp, citycon, darktowr, ddragon, de_2.cpp, de_3.cpp, de_3b.cpp, demoderb, ddungeon, exidy440.cpp, exprraid, firefox, gladiatr.cpp, gng.cpp, hotchase, itech8.cpp, itech32.cpp, jackal.cpp, jdreddp, joust2, kram3, maxrpm, mk, mpu12wbk.cpp, mpu4.cpp, mpu4avan.cpp, mpu4bwb.cpp, mpu4concept.cpp, mpu4crystal.cpp, mpu4empire.cpp, mpu4mdm.cpp, mpu4misc.cpp, mpu4mod2sw.cpp, mpu4plasma.cpp, mpu4sw.cpp, mpu4union.cpp, nbajam, nyny, pigskin, s11.cpp, s11a.cpp, s11b.cpp, s11c.cpp, sarge, sbasketb.cpp, shaolins.cpp, sigmab52.cpp, sonson, sothello, spdodgeb, spyhunt2, srumbler, stoffy, toffy, tattass, trisport, tstrike, vectrex.cpp, vertigo.cpp, whitestar.cpp, wpc_an.cpp, wpc_dot.cpp, wpc_flip1.cpp and wpc_flip2.cpp . Replaced M6809 with MC6809E in aristmk4.cpp, balsente.cpp, baraduke.cpp, bigkarnk, bladestl, citycon, contra, de_3.cpp, de_3b.cpp, dec8.cpp, ddribble, exidy440.cpp, gaplus, halleys.cpp, hotchase, icecold, irobot, ironhors, mappy.cpp, mastkin, mikie, namcos1.cpp, namcos2.cpp, namcos21.cpp, namcos86.cpp, overdriv, pacland, pandoras, qix.cpp, skykid.cpp, spy, starwars.cpp, toypop.cpp, tp84, tutankhm, white_mod.cpp, whitestar.cpp, wico.cpp, williams.cpp, wmg, wpc_95.cpp, wpc_an.cpp and yiear . Replaced M6809 with HD6309E in ajax and bottom9 . Replaced M6809E with MC6809 in byvid.cpp and wackygtr . Replaced HD6309 with HD6309E in bladestl, contra and rockrage - TMS9995 CPU . Fixed debugger do command . Fixed READY check on RESET (auto-waitstate) - Z180 CPU: Fixed Z180_RCR_REFW and added Wait State Generator (DCNTL) support - DCS sound . Fixed DCS audio banking for DENVER and DSIO DCS audio . DSIO and DENVER don't use SDRC DMA - FM sound: Turn a bit more of fmopl into something resembling C++ - RF5C400 sound . Fixed sound regression. This fixes Gradius IV, and also fixes the dog whistling and other issues in the beatmania IIDX games. . Converted RF5C400 to use device_rom_interface. . Save/restore the external memory registers. Moved static variable into device state. Fix the commented out osd_printf_debug. Fixed "always values". Added skeleton for reading and writing channel register 0x0F (which is used by the beatmania IIDX games). - Williams ADPCM Sound Board: Lower ADPCM volume. This fixes possible volume balance issue in NBA Jam / Williams ADPCM Sound Board (ID 06780). - YMZ770 sound: Implemented CHAN/SEQ "keep playing" command, document other known SPU in this series. - YMZ774 sound . Added sequencer, blind work based on KOF98UM rom data, not tested at all. Assume each sequencer have its own current bank. . Implemented SQC thing on top of sequencers, fix sequencers timers setup. . When SQC stopped stop SEQ too, make SEQ/SQC save state-friendly and cleanup. . Added volume delayed transition and handle CHAN/SEQ pause/resume - 6522 VIA: Eliminated truly ancient hack to default clock to that of first CPU. All VIAs in MAME now have properly configured clocks. - 6850 ACIA: Created standard read/write handlers - 8257 DMA: Added LOG messages - ATA: Simplified class hierarchy so there is no ambiguity with 16 & 32 bit methods. Removed the memory system read/write handler trampolines from the ATA devices as they are not required (machine\atadev.cpp). - Floppy: Updated debug printouts to use logmacro.h LOG messages (machine\wd_fdc.cpp) - IDE: Disambiguated 16- and 32-bit CS access and added non-space CS access methods - Konami Custom: Removed space from k007121_device::ctrlram_r - RS232: Added DCE RxC/TxC callbacks (untested) and table of standard signals - SCSI Hard Disk: Use CHD IDNT metadata for inquiry and logmacro.h logging (machine\nscsi_hd.cpp) - Taito Custom: Removed space and mem_mask from some TC0080VCO call - VGA video: CRTC start address is supposed to be shifted left by 2, from 86Box (video\pc_vga.cpp). - Voodoo GFX: Set number of SGRAM chips to 2 for 16M cards - adp.cpp: Updated documentation. Clean up driver. - amaticmg.cpp . Some cleanup. Removed the third 8255 PPI from AMA-8000-1 system since only has two of them. AMA-8000-2 and the new hardware for MGIV have three PPI devices. Need to set the ports. . Switched Multi Game III (V.Ger 3.64) to the new machine config since has a lot of similarities with The MGIV memory map - atlantis.cpp, iteagle.cpp, seattle.cpp and vegas.cpp . Promoted San Francisco Rush: The Rock to working . Added wheel force control for initial calibration. Set wheel calibration complete as soon as any SYSTEM button is hit (seattle.cpp and vegas.cpp) . NEC VRC5074 System Controller: Don't try to save zero length vectors (vegas.cpp) . NEC VR4373 system controller: Correct VRC4373 device/vendor id PCI field (atlantis.cpp and iteagle.cpp) . SMC91C9X ethernet controller: Fixed loopback and added proper MMU handling. Switch from queue to vector for save state support. Added packet padding and variable transmit timing (seattle.cpp and vegas.cpp). . Added gearshift to sfrush and sfrushrk . Disconnect ethernet for War: The Final Assault. Fixes game hang at start. . Midway DCS Audio: Fixed DCS audio banking for DENVER and DSIO DCS audio (atlantis.cpp and vegas.cpp). DSIO and DENVER don't use SDRC DMA. Fixes boot hang on Road Burners. - bagman.cpp: Fixed Bagman dying sound plays repetitively when game starts (ID 06784) - bfcobra.cpp: Fixed AY-3-8910 bad clock - coolpool.cpp: Fixed stupid TMS340X0 Shift register bug - cps1.cpp and kenseim.cpp: Substituted IOC1 PAL logically equivalent replacement with real dump from an unprotected device - harddriv.cpp: Fixed harddriv sound - ksys573.cpp: Improved Hyper Bishi Bashi Champ and Salary Man Champ control - manohman.cpp: Merged Backgammon (adp.cpp) with manohman driver, which has a better description of same hardware. Reduced region size. - mcr.cpp and mcr3.cpp: Moved some globals into the state class, started splitting some in subclasses. - mermaid.cpp . Added new 'Generic ripple counter' device to Rougien. This device emulates basic ripple counter logic ICs with fallingedge clocks and a synchronous reset inputs such as CD4040 and 74LS393. . Don't break Mermaid and clone not using MSM5205 ADPCM - metro.cpp: Added coin counters. Updated notes. - micro3d.cpp: Added diagnostic terminals to the DrMath and VGB boards - namcos12.cpp: Replaced strcmp with polymorphism in namcos12_state::machine_reset() - pgm2.cpp . Dumped internal rom from 'Dodonpachi Daioujou Tamashii (V201, China)', 'The King of Fighters '98: Ultimate Match HERO' and 'Oriental Legend 2 (Oversea) (English)' IGS036 chip. The 'Oriental Legend 2' cartridge confirming only the region byte changes in that case. Other regions, including Japan single PCB need confirming to see if there are further changes in those cases or not. As the Oversea version ignores the Card Reader MCU we can mark it as working, so new working machines. . Make RTC ticking and removed orleg2 patch, its not needed anymore. Document PGM2 debug features. . Updated IGS036 encryption to support kof98umh (machine\igs036crypt.cpp). Use uploaded IGS036 encryption tables for kov2nl and orleg2. . Use sprite decryption keys uploaded by games where we have internal rom. Tweak MCU timing for kov2nl and hook shared ram. . Added MCU HLE, now it works like if MCU/RW is alive but card is not inserted. Added ICRW simulation (machine\pgm2_memcard.cpp). . Memcard reader now uses image_device stuff, cards can be inserted/removed and get saved. Use optional_device_array. . Promoted The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23), Knights of Valour 2 New Legend (V302, China), (V301, China), (V300, China), Oriental Legend 2 (V101, China), (V103, China) and (V104, China) to working. As each game/region requires a valid default card in order to save said cards are part of romset. . IGS036 seems to be derived from a ARM946ES type core based on using MPU not MMU, change it to be such (cpu\arm7\arm7.cpp). . Added PGM2 GPU registers notes. Added foreground scroll. Fixed end of sprite list handling. Dynamic resolution change. Fixed bug in yzoom code causing hang. . Added default memcard for future use to Knights of Valour 3 (V104, China) . Rewrote Atmel ARM AIC logic and implemented most features (machine\atmel_arm_aic.cpp) . Allow ddpdojh to actually run code from ram rather than treating ram as rom (even if the game doesn't actually care). Added few notes. - pgm2.cpp and igs_m036.cpp: The format of the IGS036 key tables is now compatible with the real ones provided by the internal ARM (machine\igs036crypt.cpp) - segae.cpp: Minor documentation update - tatsumi.cpp . Driver state class separation . Removed calls to driver_data - toaplan2.cpp: Added line reads to GP9001 video controller for polling sync outputs and privatize a few things - tourvis.cpp: Moved known games list to the software list (hash\pce_tourvision.xml) - twinkle.cpp . Many fixes to waveram banking and DMA, most sets are semi-playable now. . Games promoted to working: beatmania IIDX 4th style (GCA03 JAA), beatmania IIDX 6th style (GCB4U JAB), beatmania IIDX 6th style (GCB4U JAA), beatmania IIDX 7th style (GCB44 JAA), beatmania IIDX 8th style (GCC44 JAA) and beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM). . Changed RF5C400 clock to match board notes in driver. Added 8Mb of dummy ram to the RF5C400 and adjusted the banking so that sounds play correctly. Fixed RF5C400 sound regression. This fixes the dog whistling and other issues in the beatmania IIDX games. . Improved LED font from available reference sources. Mapped lamps and dipswitches. Added basic internal artwork. . Changed security card padding from 0x00 to 0xff. Security card for beatmania IIDX 4th & 5th has now been dumped and scrubbed serial numbers. - vectrex.cpp: Quick and dirty regression fix - zn.cpp: Mostly switched to configured banking. NBA Jam Extreme banking still to update. Very preliminary work on supporting save state. Will need more work in various devices. Use optional_memory_bank. - 1941: Added yi22b.1a PAL dump and confirmed lwio.12e dump for clone 1941: Counter Attack (Japan) - Action Fighter: Added 317-0018 decryption key to clones Action Fighter (FD1089B 317-unknown), (FD1089B 317-unknown, analog controls), (System 16B, FD1089A 317-0018), (System 16B, FD1089B 317-unknown) and (System 16B, FD1089B 317-unknown, analog controls) (Games now playable). Fixed year info in clones afightere, afighterf, afighterg and afighterh. - AGEMAME . aristmk5.cpp: Redumped Inca Sun (DHG1577, US), Loco Loot (AHG1513, US) and Unicorn Dreaming (BHG1584, US). Layout updates. . jpmmps.cpp: Added 74LS259 device and correct clocks . mpu4*.cpp: Proper CPU type and XTAL value . stellafr.cpp: Added some devices - Amiga: End driver_data use; make all functions and tables members. Eliminated driver_data dependencies in machine\amigafdc.cpp. - Archimedes (aristmk5.cpp and ertictac.cpp): Clean 8bpp color handling (machine\archimds.cpp) - Armed Police Batrider: Fixed Z80 CPU2 clock - Batman Forever and NBA Jam Extreme: Fixed Acclaim RAX sound - Beezer: Sound section has its own XTAL - Blood Bros.: Verified sprite data in clone West Story by converting original mask rom into bootleg format and figuring out what was scrambled from there, it's a very simple but quite stupid bitswap on 2 of the roms. Made a note that one byte actually differs in the bootleg even after this, since it's been verified on 2 bootlegs it could be the original mask rom has a bad byte in it instead, should really be checked. - Borderline: Demoted clone Borderline (Tranquillizer Gun conversion) due to bad rom dump (never should have been considered working) - Chequered Flag: Notes and demotion to IMPERFECT_COLORS / UNEMULATED_PROTECTION - Fruit Deuce: Added devices - Ghosts'n Goblins: Added correct character rom to clone Ghosts'n Goblins (prototype) - Gradius IV: Fixed RF5C400 sound regression - Head On: Minor documentation update for clone Super Crash (bootleg of Head On) - Iron Horse: Measured clocks - Landing Gear: Fixed throttle control - Mario Bros.: Verified Mario Bros. (US, Unknown Rev) as revision G and identified the unknown PROM as the main cpu memory map decoding PROM. - Megadrive hardware: Removed driver_data usage (machine\megadriv.cpp; drivers\hshavoc.cpp, megadrvb.cpp, megaplay.cpp, megatech.cpp, puckpkmn.cpp and segac2.cpp) - Mighty Warriors: Switched to configured banking - Paint & Puzzle: Updated notes based on schematics - PinMAME . idsa.cpp: Random fixes . wpc_an.cpp: CPU type and clock determined . Updated zira.snd rom for Zira. According to the schematic this is a 2716 rom with a size of 2048 and it contains the same code twice. - Polaroid Instant Memories: Added MC1408 DAC sound. At the moment it simply outputs all the speech strings, one after the other, then stops. - Quizard 3: Decapped and dumped MCU - Spy Hunter: Added CD4099 demuxer for lamps - Surprise Attack: Fixed visible area (ID 06683) - T.T Mahjong: Added Player 2 inputs - Twin Brats: Correct OKI clock - X the Ball: Added 74LS259 addressable latches - Input port . Eliminated legacy read/write methods and "active bit" nonsense (machine\ticket.cpp) . Fixed random strings of question marks in displayed key names (emu\ioport.cpp) - Dipswitch fixes in aristmk5.cpp, pgm2.cpp, rbmk.cpp, twinkle.cpp and vicdual.cpp - Fixed year info for afighter, anpanman, batlgear, gal3, mastrglf, pacapp, panicprk, shabdama, thunderh and vs2v991 - Fixed rom names in asuka.cpp, bloodbro.cpp, cps1.cpp, gottlieb.cpp, segae.cpp, seta2.cpp and zn.cpp - Description changes of A-Blast (bootleg), Action Fighter (FD1089B 317-unknown), Action Fighter (FD1089B 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-0018), Action Fighter (System 16B, FD1089B 317-unknown), Action Fighter (System 16B, FD1089B 317-unknown, analog controls), Amigo (bootleg of Amidar, set 1), Blood Bros. (Japan), Blood Bros. (World?), Blood Bros. (Japan, rev A), Cadillacs and Dinosaurs (Asia TW 930223), Crush Roller (Famare SA PCB), Fantasy (Germany, set 1), Hang-On Jr. (Rev. B), Margarita Magic (EHG1559, US), Mario Bros. (US, Revision G), Paint 'N Puzzle, Real Battle Mahjong King (Version 8.8), Striker Xtreme (1.02 France), Striker Xtreme (1.03 Germany), Striker Xtreme (1.02 Italy), Striker Xtreme (1.02 Spain), Striker Xtreme (1.01 UK), Tazz-Mania (Arfyc / Rodmar bootleg), Twin Brats (set 2), Twin Brats (set 3) and West Story (bootleg of Blood Bros., set 1) - Renamed (bloodbro) to (bloodbroja), (bloodbroa) to (bloodbroj), (bloodbrob) to (bloodbro), (dangcurv) to (dangcurvj), (deathcox) to (deathcoxo), (filthyr) to (filthyrr), (gijoea) to (gijoeea), (mario) to (mariof), (marioo) to (mario), (mtburn) to (mtburnr), (orleg2) to (orleg2_104cn), (orleg2_101) to (orleg2_101cn), (orleg2_103) to (orleg2_103cn), (penbrosk) to (ablastb), (reelemin) to (reeleminr), (twinbrat) to (twinbrata), (twinbrata) to (twinbratb), (weststry) to (weststory) and (winbid) to (winbidr) - MAME . UI . Fixed can't change into directories that have a "." prefix in their name (ui\filesel.cpp and posixdir.cpp) (ID 06785) . Fixed off-by-one crash (ui\selsoft.cpp) . MEMORY SYSTEM . API change (emu\emumem.cpp): * direct_read_data is now a template which takes the address bus shift as a parameter. * address_space::direct() is now a template method that takes the shift as a parameter and returns a pointer instead of a reference. * The address to give to {read|write}_* on address_space or direct_read_data is now the address one wants to access. Longer explanation: Up until now, the {read|write}_* methods required the caller to give the byte offset instead of the actual address. That's the same on byte-addressing CPUs, e.g. the ones everyone knows, but it's different on the word/long/quad addressing ones (TMS, Sharc, etc...) or the bit-addressing one (TMS340x0). Changing that required templatizing the direct access interface on the bus addressing granularity, historically called address bus shift. Also, since everybody was taking the address of the reference returned by direct(), and structurally didn't have much choice in the matter, it got changed to return a pointer directly. Longest historical explanation: In a cpu core, the hottest memory access, by far, is the opcode fetching. It's also an access with very good locality (doesn't move much, tends to stay in the same rom/ram zone even when jumping around, tends not to hit handlers), which makes efficient caching worthwhile (as in, 30-50% faster core iirc on something like the 6502, but that was 20 years ago and a number of things changed since then). In fact, opcode fetching was, in the distant past, just an array lookup indexed by pc on an offset pointer, which was updated on branches. It didn't stay that way because more elaborate access is often needed (handlers, banking with instructions crossing a bank...) but it still ends up with a frontend of "if the address is still in the current range read from pointer+address otherwise do the slowpath", e.g. two usually correctly predicted branches plus the read most of the time. Then the >8 bits cpus arrived. That was ok, it just required to do the add to a u8 *, then convert to a u16/u32 * and do the read. At the asm level, it was all identical except for the final read, and read_byte/word/long being separate there was no test (and associated overhead) added in the path. Then the word-addressing CPUs arrived with, iirc, the tms cpus used in atari games. They require, to read from the pointer, to shift the address, either explicitely, or implicitely through indexing a u16 *. There were three possibilities: 1. Create a new read_* method for each size and granularity. That amounts to a lot of copy/paste in the end, and functions with identical prototypes so the compiler can't detect you're using the wrong one. 2. Put a variable shift in the read path. That was too expensive especially since the most critical cpus are byte-addressing (68000 at the time was the key). Having bit-adressing cpus which means the shift can either be right or left depending on the variable makes things even worse. 3. Require the caller to do the shift himself when needed. The last solution was chosen, and starting that day the address was a byte offset and not the real address. Which is, actually, quite surprising when writing a new cpu core or, worse, when using the read/write methods from the driver code. But since then, C++ happened. And, in particular, templates with non-type parameters. Suddendly, solution 1 can be done without the copy/paste and with different types allowing to detect (at runtime, but systematically and at startup) if you got it wrong, while still generating optimal code. So it was time to switch to that solution and makes the address parameter sane again. Especially since it makes mucking in the rest of the memory subsystem code a lot more understandable. . Constexpr implies inline, generalise iabs, work around lack of C++14 constexpr in VS2015 (emu\emucore.h and emumem.cpp/h). . Replaced space.machine() with machine() (emu\emumem.cpp) . Eliminated remaining uses of address_space::machine() outside of emumem (debug\debugbuf.cpp, debugcmd.cpp and machine\seibucop\seibucop_cmd.hxx) . Removed machine member of address_space (emu\emumem.cpp) . DEVICES . Fixed -listdevices misplacement of subdevices in some configurations (mame\clifront.cpp) . Moderate overhaul of device_rom_interface: Allow endianness and data/address width to be altered during configuration. Raise memory_space_config from private to protected so it can be overridden. Make entire interface optional (as needed by one device to be added soon). Use interface_post_load instead of explicitly registered delegate. Only call rom_bank_updated when bank actually changes. Removed prototypes for nonexistent functions (emu\dirom.cpp). Documentation update (docs\source\techspecs\device_rom_interface.rst). . Replaced some space.device() calls (drivers\namcos11.cpp, namcos22.cpp, namcos23.cpp, naomi.cpp, rmhaihai.cpp, witch.cpp, x1.cpp, xexex.cpp, xmen.cpp, xyonix.cpp, yunsung8.cpp and zn.cpp) . Eliminated device pointer conversion from device_interface (emu\device.h) . Added rewind feature and RAM savestates . How RAM states work: Implemented using util::vectorstream. Instead of dumping m_save.m_entry_list to file, it writes them as binary to vectorstream. Compression is not used, as it would slow down the process. The header is written as usual, also in binary. When a state is loaded, the savestate data gets binary-read from vectorstream. How rewind works: Rewind is optional, it can be turned off through MAME GUI while not running. Rewind capacity is available there too. Rewind step hotkey is available from the standard hotkey menu. In the debugger you have the "rewind" command ("rw" shortcut) that works the same as the hotkey. Every time you advance a frame (pause step), rewinder captures a RAM savestate of the frame you were at. It does the same when you do step into/over/out in the debugger. Every time it captures a new state (and when you unpause), it marks as invalid all its states that go after the current machine time, because input might change, so they are not relevant anymore. It keeps their buffers allocated though, for future use. When rewinder runs out of allowed amount of savestates it can have, it invalidates the first state in the list and tosses its unique_ptr to the end of the list, then it uses its buffer to capture a new state. When you hit the rewind step key, or use "rewind" command in the debugger, it loads a state that is immediately before the current machine time. Invalid states between valid ones are not allowed to appear, as that breaks rewinder integrity and causes problems. Rewinder keeps its own set of ram states as a vector of unique_ptr's. All rewinder operations and errors get reported using machine().popmessage(). . icount was missing from the savestates. When you load a state, icount (*icountptr) would remain whatever it was before loading, messing with the remaining cycles and with the amount of code executed per run() call. This introduced non-determinism and badly influenced usage of savestates while debugging. machine().time() would also return wrong values after that, since it adds remaining cycles (emu\diexec.cpp). . Reset scheduler savestate to what it was for years before rewind. Changing saved variables should be done after thorough testing. right now, adding some vars breaks some machines, adding other vars breaks others. Switch to megabyte-wise capacity. Savestate size greatly differs between machines, relying on state count is unstable. Switch to internal indexing. No longer depends on inaccurate machine time. Rewind accelerator key in debugger (Ctrl+F11). Report capacity hit (once), with some useful info. Make error reports saner. Mention rewind and rewind_capacity in the docs. . Get rid of legacy BITSWAP* (BITSWAP8(_) -> bitswap<8>(_)) (emu\emucore.h) . Stop save and load logging timers unless VERBOSE is set (emu\schedule.cpp) . Changed misleading parameter name (emu\softlist_dev.cpp) . Validity: Prevent insane recursion when multiple slot devices have the same tag (emu\validity.cpp) . PLUGINS . Fixed sentence building by concatenation, and at the same time collapse two translatable strings to one (plugins\cheatfind\init.lua). . Raise a fatal error if LUA console is requested but the console plugin is not found (rather than crashing) (frontend\mame\mame.cpp) . Updated hiscore.dat. Removed duplicate sets, debug print and merged identical entries. . Fixed crlf issue (plugins\data\load_dat.lua) . 3rdparty: Updated GENie, BGFX and BX. Added BIMG since it is separated now, updated all shader binaries and MAME part of code to support new interfaces. . Multi-Language: Updated Brazilian Portuguese, French and Italian translations. Note: All translation updated to follow GNOME Translation Rules for Brazilian Portuguese, this are the same rules for other Linux Distributions, Manuals, etc. Now we can avoid translation conflicts (http://br.gnome.org/GNOMEBR/ErrosFrequentes and http://br.gnome.org/GNOMEBR/GuiaDoTradutor). . Added preliminary YM2608 OPNA support for VGM player - Compiling . Start replacing auto_alloc_* with smart pointers, get rid of reference constants in the debugger in favour of capturing the value in the bind/lambda (cpu\i386\i386.cpp, debug\debugcmd.cpp/h, debugcpu.cpp/h, express.cpp/h, mame\cheat.cpp/h, drivers\amusco.cpp, coolridr.cpp, includes\cave.h, wecleman.h, video\cave.cpp and wecleman.cpp). . Allow compiler a little more optimisation leeway in x86 count_leading_* (emu\validity.cpp, osd\eigccx86.h and eivc.h) - Debugger . Disassemblers are now independant classes. Not only the code is cleaner, but UNIDASM has access to all the CPU cores again. The interface to the disassembly method has changed from byte buffers to objects that give a result to read methods. This also adds support for lfsr and/or paged PCs. Fixed building with Visual Studio 2017 & Clang 5.0.0 (also tested with GCC 7.2.0). . Reset m_dasm on source switch (debug\debugvw.h and dvdisasm.cpp/h) . Added nicer autoscrolling (debug\dvdisasm.cpp) . Fixed watchpoint hit message for address-shifted processors (debug\debugcpu.cpp). Fixed memory window (debug\dvmemory.cpp). . Changed back to uppercase hex for util::stream_format (debug\debugbuf.cpp) . Set REG_BEAMX/BEAMY/FRAME to 0 on invalid eg. screenless (debug\dvstate.cpp) . Removed stutter in dump command ASCII bytes (debug\debugcmd.cpp) 0.192 - New games: Akai Katana (2010/ 8/13 MASTER VER.), The Big Joke (Version 0.00), Pac-Eight and Player's Edge Plus (PS0239) Jackpot Jewels Slots - New Working games: Flower, Ping-Pong King and Time Attacker - New Non-Working games: Golgo 13: Juusei no Chinkonka (Japan, GLT1 VER.A) and Mushiking The King Of Beetles - Mushiking IV / V / VI (World) - New clones: '99: The Last War (bootleg), The 26th Z (Japan, location test), Action Fighter (FD1089A 317-unknown), Action Fighter (FD1089A 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-unknown, set 1), Action Fighter (System 16B, FD1089A 317-unknown, set 2), Action Fighter (System 16B, unprotected, analog controls), Action Fighter (unprotected), Action Fighter (unprotected, analog controls), Battlecry (Prototype), Battlecry (Version C), Bucky O'Hare (ver AA), Gran Trak 10/Trak 10/Formula K (older) [TTL], Grudge Match (v00.90, Italy, location test?), Gunbird 2 (set 2), Head On N, Landing High Japan (Ver 2.02 O), Martial Masters (ver. 102, 101, 101TW), Taikyoku Base Ball, Thunder Dragon 3 (bootleg of Thunder Dragon 2) and Troopy (bootleg of Mr. Kougar) - New devices: adc0844, adc0848, arm_aic, c8095, cga_cportiii, flower_sound, i4100, i4220, i4300, i8156, i8274_channel, igs036, p8098, scn2681, teac_fd_30a and ymz774 - 8085A CPU . Code readability (just whitespace/comments cleanup here). Moved opcode macros to main file, will convert these to functions. Moved single-use opcodes to execute function. Lowercase/Renamed some functions. . Make cputype an enum, change flags and stuff to constexpr. Shorthand variable types. Changed opcode macros to functions. Cleanup. Added opcode space. - ARM7/9 CPU . Added rudimentary instruction prefetch buffer. Fixes (MESS) GBA NES Classics games. . Added 32- and 64-bit population count utilities. Only used in ARM7 core for now. Requires -msse4.2 or -mpopcnt to use CPU feature on x86 and -mpopcntb to use CPU feature on POWER (cpu\arm7\arm7ops.cpp and osd\eminline.h). . Fixed ARM7_BE and ARM7 MMU regressions . Derived IGS036 type in ARM7/9 core, because it seems like MMU could be different and there are probably other internal devices. . Fixed (?) BLX (LO) thumb opcode in ARM7/9 core, was storing a return address that skipped the following opcode. There might still be ARM9 issues. . LDR/LDRM switch to Thumb mode on ARMv5T (cpu\arm7\arm7ops.cpp). Added ARM v5/9 check. Handle DP-commands ROR case where Rs=32/64, removed few outdated comments. . Added support for high vector option, fixed v5 BLX to save the return address in R14. . Implement BLX Rn instruction for ARM9. (MESS) Nintendo DS ARM9 BIOS gets to the first checkpoint. . Flesh out ARM946ES, added movable DTCM and ITCM support. - CDP1802 CPU: Added WAIT/CLEAR input lines - HuC6280 CPU: Fixed brk logerror - Hyperstone CPUs . Some optimization (cpu\e132xs\e132xs.cpp), Elfin (dgPIX Entertainment Inc. 1999) benches roughly faster. . Removed unnecessary full reinit of regs_decode struct (cpu\e132xs\e132xs.cpp) . Reworked all opcodes, now considerably faster. . Templated all opcodes to reduce code duplication and fixed a few oversights. Fixed ldxx2 local,local case. . Added template check, index move, mask and sum handlers. sum Rd,C,const was incorrectly using the whole SR rather than just the carry value; sums with local register as destination was not burning cycles; negs doesn't need explicit guard against trapping when source is SR as carry flag alone can never cause an overflow. Template register-register mov and correct trap behaviour privilege trap should prevent user state code from writing high global registers; also change DEBUG_PRINTF to standard logmacro.h stuff. . Simplified set opcode, removed some needless use of set_global_register to get some speed back. - M68000 CPU: Reinstated registration of SR for debug expressions (cpu\m68000\m68kcpu.cpp) - M68010/68020/68030 CPUs: Added support for bus error stack frames formats. This fixes common CPU type detection routine: http://www.easy68k.com/EASy68Kforum/viewtopic.php?p=1105#p1105 (cpu\m68000\m68kcpu.h). - MCS-48 CPU: The MCS-48 core needs to be re-written so it works at S-cycle level (if not clock cycle level), but for now I've worked around this case in the least intrusive way possible. - MIPS CPUs . Minor MIPS DRC fastram optimization and simplification (cpu\mips\mips3drc.cpp) . Cleanup TX4925 CPU implementation - PowerPC 4xx/6xx CPUs: Attempt at fixing PPC DRC scheduling (cpu\powerpc\ppcdrc.cpp). This fixes black screen on launch in Scud Race Twin (ID 06615). - SH-3/4 CPU . Added some SH3/4 recompiler changes that got lost at some point. It fixes an issue where 'Mushihime-Sama Futari Black Label' sound would cut out if left in attract mode on first boot due to timer irq 0 being missed and then never refiring due to the way the DRC code blocks work. . Mark DRC cache dirty on reset - TLCS-90 CPU: First step towards modernization of internal peripherals (cpu\tlcs90\tlcs90.cpp) - Z80 CPU: Implemented Z80 HALT output and clear HALT condition during reset. Wakeup (MESS) Ritam 'Monty Plays Scrabble' and 'Master Monty' from HALT instruction using reset. - Williams ADPCM Sound Board: Lower the DAC volume of the williams_adpcm_sound_device (audio\williams.cpp). This fixes missing music in Mortal Kombat (ID 06694). - YMZ770 sound . Added pan, main volume level and clip limit control. Renamed "elem" for readability. Added 2nd volume control and notes. . Preliminary Yamaha YMZ774 emulation . Use cached cos table for YMZ770 MPEG audio decoding (sound\mpeg_audio.cpp) - 6522 VIA: Added some interrupt LOGs - 68681 DUART . DUART drives (MESS) Micro-Term 5510 EEPROMs (mc68681_base_device::ip6_w). Distinguish SCN2681 and MC68681 DUART types. . Use MCFG_DEVICE_ADD instead of custom macro. - 74123 TTL: Use line handlers for single lines (m10.cpp, nyny.cpp, r2dtank.cpp and spiders.cpp) - 74LS259 TTL . Added descriptive names for 74LS259 nibble write handlers to mjsister and rallybik . Added 74LS259 device to jackpool.cpp, pturn.cpp, twincobr.cpp and wardner.cpp - 8155 RIOT: Substantially rewrote timer emulation. Modernized logging. Abandon "RIOT" name properly belonging to MOS 6532. Provided separate device type for 8156. Regression fix for Golden Arrow. - ADC0844 and ADC0848 A/D Converter . Added ADC0844 A/D Converter for input to mcr3.cpp (maxrpm), mcr68.cpp (spyhunt2), micro3d.cpp, midvunit.cpp and midyunit.cpp (term2) . Support ADC0848 variant, some adjustments to differential mode. Added ADC0848 to midxunit.cpp (revx). - CGA video . Added Compaq Portable III video, text modes and color need to be fixed. . Supported 400 line text modes. (MESS) Olivetti M24 also has 400 line text mode. - CHDMAN: Use DeviceIoControl to get disk length, allows chdman to access physical drives on Windows 10 (file\winfile.cpp) - Data East Custom . Fully handle sound latch internal in the DECO 146 device (boogwing.cpp, cninja.cpp, dblewing.cpp, deco32.cpp, dietgo.cpp, funkyjet.cpp, lemmings.cpp and rohga.cpp) . Added DECO CRTC (12MHz/2) and screen raw parameters for bogeyman.cpp, chanbara.cpp, dec0.cpp, dec8.cpp, firetrap.cpp and ssozumo.cpp - DS12885 RTC: Fixed DS128X/DS1288X main frequency divider. The output frequency must be fixed to 1HZ with these devices. In the MC146818, DV2-DV0 were used to select the input frequency to provide a proper time base. Since the DS12885/87 and DS1685/87 use only the 32.768kHz crystal these 3 bits are used to turn the oscillator on or off and to reset the countdown chain. There are not used anymore to select the main clock divider value. - EEPROM . Added serial EEPROM using new DO write callback to (MESS) TTI SBC (machine\eepromser.cpp). Added reference info for X2444 commands. . Added device emulating 28F010 Flash memory and family (not compatible with JEDEC Flash protocol). Converted (MESS) Interpro to use this device. - Floppy . Don't segfault on empty tracks, fixes (MESS) Einstein 4game (formats\dsk_dsk.cpp) . Converted line handlers to READ/WRITE_LINE_MEMBER to make them devcb-accessible (machine\wd_fdc.cpp; drivers\guab.cpp) . Added TEAC FD-30A 3 inch floppy drive (MESS) Tatung Einstein - I8275 video: Added check to avoid potential buffer overflow - Konami Custom: K051937 actually sets up a register when background should be dimmed, fixes start/end pouring event colors in Chequered Flag. - MC6845 CRT: Minor transparent update refactoring - RS232: Changed 9615 baud configurations to the nominal 9600 baud now that Z80SIO is more tolerant - uPD4701 counter: Better handling of uPD4701 control lines - V9938/9958 video: Converted to use RGB32 bitmaps. Palette has been retained mostly for the sake of the palette viewer, and now reflects the actual programmed values, rather than being a fixed RRRGGGBBB encoding plus a hacky mess for the V9958's YJK colors. V9938-on-V9938 transparent overlay is fixed for meritm.cpp (was broken a few releases ago). - Voodoo GFX . Use SSE routines for texture perspective correction . Suppress function-like macro expansion for MSVC - Z80 DAISY: Added a generic Z80 daisy chain device, for use in drivers with non-Z80 peripherals ((MESS) Einstein). Added irq output callback (cpu\z80\z80daisy_generic.cpp). - Z80 SCC: General cleanup and backport of Z80 SIO improvements (machine\z80scc.cpp) - Z80 SIO . Moved object finder resolution before device_start (emu\device.cpp and machine.cpp). This fixes Z80SIO not safe with attached RS232 port. MAME can crash if a device sets the initial state of the input lines for a z80sio_device at device_start time. . Made async receive behave more like real device. Check that start bit persists for half a clock interval. Sample data bits mid-interval. Handle invalid stop bit as described in Zilog manual. Check parity and latch overrun and parity errors. This fixes the issues with corrupt characters being typed on the Kaypro. Synchronous modes are still broken. The channels are still using device_serial_interface to transmit frames, but receiving is handled entirely in the device class itself. Overruns still aren't handled properly. . Better handling of Rx FIFO and interrupts in async mode. Framing error should always generate interrupt in interrupt-on-first mode. . Moved dlair.cpp and proconn.cpp driver from z80dart.h to z80sio.h . First stab at WRDY emulation. Some logging improvements. Use arays for callbacks. . Don't use device_serial_interface for transmit - it can't support sync modes, on-the-fly register updates, and other weirdness. Better modelling of 1-deep transmit queue. Better RTS/CTS behaviour. Completely overhauled interrupt logic - vectors should be correct for most async modes. Implemented different auto-reset receive errors in MPSC vs SIO. Implemented SDLC transmission including bit stuffing, transmit CRC, abort, and underrun/end-of-message behaviour. Added an SDLC consumer device that logs SNA frame headers and data. . Generalise synchronous transmission to other modes, re-implement break detection. . Implemented enough of synchronous receive mode to pass (MESS) Univac UTS-20 channel A loopback test. Treat disabling transmitter as satisfying a transmit interrupt. Disabled automatic CRC transmission in monosync mode. Clear receive errors on channel reset. Fixed reporting receive errors. - amusco.cpp: Improved colors. Removed VRAM placeholder, allocate it in video_start. - aristmk5.cpp . Added BIOS / USA Set Chip v4.04.08 . Redumped Adonis (BHG1508, US), Boot Scootin' (GHG1012-02, US), Bumble Bugs (CHG0479-03, US), Cash Chameleon (DHG4078-99, US), Enchanted Forest (JHG0415-03, US), The Gambler (EHG0916-02, US), Golden Pyramids (AHG1206-99, US), Magic Garden (AHG1211-99, US), Margarita Magic (EHG1559, US, set 1), Party Gras (BHG1284, US), Sweet Liberty Deluxe (AHG1575, US), Sweethearts II (PHG0742-02, US) and Tropical Delight (PHG0625-02, US). Now the sets pass the checksum and boots. . Reformatted the game drivers spacing to be more readable at first sight - cb2001.cpp: IRQ acknowledgment - cidelsa.cpp: Added WAIT/CLEAR input lines to CDP1802 CPU. Added DO read function to CDP1852 I/O. - cps3.cpp: Fixed CPS3 Multi-game bootlegs and Street Fighter III 2nd Impact bootlegs to use for 6 buttons - crgolf.cpp: Minor update - cv1k.cpp . Demoted all sets to imperfect speed, set audio output to mono. Document dipswitches. Consistent service mode enter button. . Added some SH3/4 recompiler changes that got lost at some point. It fixes an issue where 'Mushihime-Sama Futari Black Label' sound would cut out if left in attract mode on first boot due to timer irq 0 being missed and then never refiring due to the way the DRC code blocks work. . Added YMZ770 pan, main volume level and clip limit control. Added YMZ770 2nd volume control and notes. - cyclemb.cpp: Added preliminary sound for Cycle Maabou and Sky Destroyer - dec0.cpp . Emulated sound protection state machine for Secret Agent/Sly Spy and get rid of ROM patch. Emulated Sly Spy RNG device at $31c00d. This makes gameplay to behave very differently than before, game extensively uses this port to mix up stuff especially with the bosses. . Fixed sound randomly speeds up and eventually dies in bouldash and secretag/slyspy (ID 06740) - dgpix.cpp: Some minor optimization, Elfin benches roughly faster. - dwarfd.cpp: Added check to avoid potential buffer overflow (video\i8275.cpp). This fixes debug assert shortly after start (ID 05761). - firetrk.cpp: Added screen raw parameters. Got rid of using PORT_CODE on IPT_BUTTONs. - gei.cpp . Moved 'signatures' out of the source and into a ROM, as suggested. . Switched to configured banking . Added save state support . Added default NVRAMs to avoid errors on first boot and signature roms to findout, geimulti, gtsers15, reelfun, reelfun1, sexappl, sprtauth, suprpokr, suprpokra and suprpokrb. . Fixed game checks 'signature' in GEI Multi Game (ID 04651) . Cleanup - hyprduel.cpp: Removed sprite register hack - idsa.cpp: Added PPIs and updated notes - konamigv.cpp . Trackball modernization for btchamp and simpbowl . Better handling of uPD4701 control lines for btchamp - mainevt.cpp . Reversed button1 and button2 as per service mode for The Main Event . Fixed sprite shadows for Devastators - meritm.cpp: V9938-on-V9938 transparent overlay is fixed for meritm.cpp (was broken a few releases ago). This fixes "Run21" game in the Megatouch sets which are missing graphics for black-suited cards (ID 03719). - metro.cpp . Rewritten Imagetek I4100/I4220/I4300 video display processor family, hooked it up. Configure VDP the normal way with its standard XTAL. . ACCESSING_BITS cleanup . Added scanline timer-based vblank interrupt to Bang Bang Ball. This fixes game runs sometimes like slow-motion (ID 00525) . Videoregs are read-backable. This fixes sprite layer disappears entirely in Blazing Tornado after completing single player game (ID 06518). Side effect is that it correct the ending too (disregard the odd black pens, probably background shouldn't be there in the first place, pending further investigations). . Added sprite x/y center point registers, removed screen check hack. Mahjong Gakuensai 2 uses RMW access on POST. . Puzzlet actually uses the same window VRAM area RMW as Karate Tournament, clean both. - micro3d.cpp . Added ADC0844 A/D Converter for input and fixed throttle regression. The throttle has been broken since MAME 0.154. Note: Clone Battle of the Solar System (rev. 1.1 3/24/92) doesn't have the analog throttle. . Attach RS232 port to monitor port. Start with "mame f15se -monitor terminal" for example to see debug messages from the game. . Correct and simplify device tags in Micro3D driver. Improved USART behavior for polled operation (machine\mc68901.cpp). - model2.cpp: Input port rationalization - model3.cpp . Added Player 2 inputs for all games and left/right stick for Virtual On 2 . Attempt at fixing PPC DRC scheduling (cpu\powerpc\ppcdrc.cpp). This fixes black screen on launch in Scud Race Twin (ID 06615). . Fixed music and reduced log spam (audio\dsbz80.cpp, machine\m3comm.cpp) - mpu4vid.cpp: More standard device configuration for SCN2674 display controller - n8080.cpp: Directly set 8035 IRQ line rather than generate fake pulses, restores some sounds in HeliFire. - namcond1.cpp . Fixed rotation and scrolling. Small cleanups (video\ygv608.cpp). . Added scrolling-by-row used in NCV1 'Xevious Arrangement' . Fixed scaling effect used in NCV2 'Pac-Man Arrangement' staffroll . Fixes ROZ effect should only work in the Galaga (enhanced) bonus stage in ncv1j, ncv1j2, ncv2 and ncv2j (ID 01678). - namcos10.cpp: Updated hardware and type 3 daughterboard docs - naomi.cpp . Replaced bad dump 317-0437-com.ic3 rom in 'Mushiking The King Of Beetles - Mushiking II / III / III+' . Dumped Wave Runner GP motor board rom - peplus.cpp: Added new gfx1 roms to Player's Edge Plus (XM00009P+XMP00002) Multi-Poker - pgm2.cpp . Preliminary PGM2 emulation. Most video features emulated, Oriental Legend 2 mostly OK. See notes. . Dumped internal IGS036 roms from Oriental Legend 2 (V104, China) and Knights of Valour 2 New Legend (V302, China) . Creating devices for the Atmel ARM AIC and a derived IGS036 CPU. Emulated IGS037 video hardware, this covers sprites (with zooming), tilemaps (including rowscroll) and the priority system. . Fixed (?) BLX (LO) thumb opcode in ARM7/9 core, was storing a return address that skipped the following opcode. There might still be ARM9 issues. . Added pan, main volume level and clip limit control. Added 2nd volume control and notes (sound\ymz770.cpp). . Added yshrink for sprites, line doubling and sprite xgrow/xshrink for basic non-flipped cases. . Support sprite zooming for flipped/reversed cases (lightly tested, only seems used by lightning on orleg2 char select at the moment) . Use pre-calculated cosine table for DCT decoding, yields significant performance improvement (sound\mpeg_audio.cpp). . Still marked NOT_WORKING due to missing memory card emulation (requires simulation of undumped MCU) - piggypas.cpp: XTAL-derived clocks. Focumented some chip types. Added NVRAM. More documentation. - playmark.cpp: Make games in driver respect common/separate Coin slot. Issue: DIPs where defined as "SW1" and conditional statements where looking for DSW1. Also makes coinage into a DEFINE statement and uses PORT_INCLUDE & PORT_MODIFY for clone Big Twin (No Girls Conversion) which only has 1 dipswitch deference. - seattle.cpp and vegas.cpp: SMC91C9X Ethernet controller now working in connected mode with WinPcap or TUN/TAP tunnel - segahang.cpp and segas16b.cpp: Use MCFG_SCREEN_VBLANK_CALLBACK instead of irq0_line_pulse for Sega i8751 interrupt - seibucats.cpp: Dumped obj roms - seta.cpp . A few small cleanups. Documentation update. . Improved wraparound handling for relative inputs (emu\ioport.cpp). This fixes speed difference when rotating player in Caliber 50. . Soundlatch modernization for Wiggie Waggie, Thunder & Lightning (bootleg with Tetris sound) and Ultra Toukon Densetsu . Added ADC device to Zombie Raid - shanghai.cpp: Fixed fast gameplay and sound (ID 06193) - stv.cpp . Fixed line/polyline drawing (video\stvvdp1.cpp), fixes wireframe map in Die Hard Arcade. . Moved internal SCUDSP program/data maps (machine\sega_scu.cpp) into CPU core (cpu\scudsp\scudsp.cpp) . Fixed shanhigw and sokyugrt starts with 2 credits inserted (video\stvvdp2.cpp) (ID 04366) - taitosj.cpp: Fixed ay2,3,4 volume regression. This fixes Elevator Action sound (ID 06527). - techno.cpp: IRQ modernization. Reimplement IRQ generation based on an educated guess. - vegas.cpp: Improved debug messaging for serial port (machine\vrc5074.cpp) - vicdual.cpp . Added bonus sound sample to Depthcharge (http://www.progettosnaps.net/samples/zip/depthch.zip) . Fixed Head On 2 colors and clean up . Added sound samples to Tranquillizer Gun and clone Borderline (Tranquillizer Gun conversion) (http://www.progettosnaps.net/samples/zip/tranqgun.zip) . Mark Space Trek as imperfect graphics. Star field and background gradient is missing. See https://www.youtube.com/watch?v=xsEP_oUygzY. - Champion Base Ball Part-2: Redumped clone Taikyoku Base Ball (previously called Champion Base Ball Part-2 (set 2) and only partially dumped). - Chequered Flag . Fixed dimmed screen condition bug when soft resetting . Improved shadow/highlight code, fixes black rain and lights at dawn. . K051937 sets up a register when background should be dimmed, fixes start/end pouring event colors. . "Black" colored rain definitely don't show up when it starts/ends pouring, fixed tables accordingly. - Darius: Break up "IOC" handlers - Dobou-Chan: Allow GFX ROM test to pass. Added inputs. - Double Wings: Added save item (soundlatch pending) - Flower . Rewrote driver from scratch, fixing multiple issues that persisted in previous implementation. . Changed visible area to 288x224, fixes left-most columns (inside the big ship). Background layers actually had reversed priority (outside and inside the big ship). . Fixed all outputs. Added third Z80, sprite shrink feature, flip screen and other stuff. Fixed zoom points for 32x32 sprites. . Actually using Namco xtal so most likely runs at 60.606060. Fixed various video bugs along the way (most notable one is the priority at the last stage of a loop). . Rewrote custom sound device. Added guessed 'Flower Custom Sound' clock. - Game Magic . Correct error in shadow ram adresses and convert comments to C++ (bus\lpci\i82439tx.cpp) . Not all sothbridges have an internal keyboard controller, RTC, serial and parallel devices. Now southbridge_device does not have them. There is a new southbridge_extended_device that has them. i82371ab_device derives from southbridge_extended_device. Converted comments to C++. - Jackpot Cards: Added 74LS259 addressable latches and NS16550 UART - King & Balloon: Added correct soundrom to King & Balloon (US). Note: The 2nd half was missing ("bye bye" voice cut off). - King of Boxer: Fixed misconfigured NMI gate in clones Ring King (US set 1/2); works again now. - Marine Date . Rewrote driver from scratch, fixing multiple issues that persisted in previous implementation. . Added sea bitmap and flashing when shark appears. Improved sprite/tilemap colors, now more accurate to the references. Fixed priority, both sprite layers are actually above text tilemap. Added player 2 trackball inputs, and global coin lockout. Streamlined and improved collision detection (still not perfect therefore game still marked NOT_WORKING). Sprite offset fixes and minor other changes. . Fixed MAME crashed when starting game (ID 06745) - Monkey Magic: Added sound samples (http://www.progettosnaps.net/samples/zip/mmagic.zip) - Mortal Kombat: Lower the DAC volume of the 'Williams ADPCM Sound Board' (audio\williams.cpp). This fixes missing music in Mortal Kombat (ID 06694). - Out Zone: Fixed screen is misaligned 16 pixels to the left in clone Out Zone (Zero Wing TP-015 PCB conversion) (ID 06749) - Pac-Land: Keep sprite-sprite priorities intact on priority-over-fg sprites. This fixes Pac-Man are displayed in front of the hat in invincible state (ID 06742). - Paint & Puzzle: Added 6522 VIA interface and 8798 MCU dump - Parallel Turn: Added 74LS259 device and coin counters. Removed PULSE_LINE. - Perfect Billiard: Minor doc update & rom label correction - Ping-Pong King . Added preliminary MCU simulation for Ping-Pong King inputs . Added preliminary YM2203 and MSM5205 ADPCM sound. Added P2/ DSW1 / clean stuff and flip screen. . Added sub CPU IRQ ack and MCU input check on state 3 . Fixed input lag protection. DSW2 reading now works too. . Fixed sprite left edge wraparound, made "round" dipsw more verbose, misc cleanups (Game now playable). - SD Gundam Psycho Salamander no Kyoui: Replaced rom patch with a slightly less gross hack. Note: Routine at $134C sends no sound commands if lowest bit is 0. - Sexy Parodius: Demoted game to IMPERFECT_SOUND & UNEMULATED_PROTECTION - Space Firebird: Fixed DAC sound (ID 06766) - Super Othello: Very minor cleanups + preparation for save state support - Syusse Oozumou: Fixed wrong colors in the title logo (ID 03804) - Tekken Tag Tournament: Fixed clones (World, TEG2/VER.C1, set 2) and (US, TEG3/VER.B) doesn't boot - Thunder Ceptor: Properly hooked up 3D scope view to 3-D Thunder Ceptor II - Time Attacker . Added ball, edges and wall drawing. Fixed background color and visible area. . Added paddle input & drawing. Added bottom edge and enable feature. Added paddle shrink, hooked up flip screen and bricks color bank. . Fixed some dips/inputs. Emulated brick blinking effect. Added sound samples (http://www.progettosnaps.net/samples/zip/tattack.zip) (Game now playable). - Time Crisis 3: Added dump of V291 I/O board - Wai Wai Jockey Gate-In!: Fixed wrong colors in Wai Wai Jockey Gate-In! and clone Photo Finish (bootleg?) (ID 03805) - Wiping: Removed unused variable. Added guessed 'Wiping Custom Sound' clock. - World Grand Prix: Added save state support, removed anonymous timers and killed trampolines. - Zoofari: Cleanup TX4925 CPU implementation (cpu\mips\mips3.cpp) - Input port . Lower beeper volume (machine\terminal.cpp) . Added a little logging to machine\input_merger.cpp . Better wraparound handling for relative inputs (emu\ioport.cpp). This fixes speed difference when rotating player in Caliber 50 (ID 06759). Fixed core rounding error with analog input sensitivity scaling (emu\ioport.cpp). - Dipswitch fixes in bishi.cpp, cv1k.cpp, cyclemb.cpp, gladiatr.cpp, marinedt.cpp, pgm2.cpp, playmark.cpp, popeye.cpp and tattack.cpp - Fixed rom names in cps2.cpp, itech8.cpp, freekick.cpp, naomi.cpp and pacman.cpp - Description changes of 3-D Thunder Ceptor II, Battlecry (Version E), Daytona USA (Japan), Grudge Match (v00.80, prototype), Gunbird 2 (set 1), Knights of Valour 2 New Legend (V300, China), Landing High Japan (Ver 2.01 OK), Last Fortress - Toride (China, Rev A), Last Fortress - Toride (China, Rev C), Last Fortress - Toride (Japan), Last Fortress - Toride (Germany), Mr. Kougar (bootleg), Mr. Kougar (German bootleg), unknown Fun World A0-1 game, unknown Fun World A7-11 game 1, unknown Fun World A7-11 game 2, unknown Inter Games poker, unknown game (MAC #1808), unknown poker game PKII/DM, unknown Sega gambling game (M1 Satellite board) and unknown 'VIP 2000' game - Renamed (champbb2a) to (tbasebal), (grudge) to (grudgep), (mtkob2) to (mushike), (orleg2oa) to (orleg2_101), (orleg2o) to (orleg2_103), (bbustersj) to (bbustersja), (bbustersja) to (bbustersj), (kov2nlo) to (kov2nl_301) and (kov2nloa) to (kov2nl_300) - MAME . VIDEO RENDERING SYSTEM: Various palette and screen improvements. Use device_resolve_objects to removed the need for resolve_palette. Palette format no longer depends on configuration of first screen (emu\dipalette.cpp, divideo.cpp and screen.cpp). . DEVICE: Moved object finder resolution before device_start (emu\device.cpp and machine.cpp) . UI . Fixed tilemap live updates regression (ui\viewgfx.cpp) . Fixed Reset was sometimes ignored in File Manager (ui\filemngr.cpp) . Removed irqN_line_pulse interrupt generators. Vestigial commented-out uses remain in cdi.cpp. This does not affect nmi_line_pulse (emu\driver.cpp/h). . Replaced driver_device::generic_pulse_irq_line with device_execute_interface::pulse_input_line + CPU minimum quantum. This "Pulse" an input line by asserting it and then clearing it later. Correct irq pulse timing in dotrikun.cpp and duration in firetrk.cpp. For meyc8088.cpp the interrupt is auto cleared by INTA (emu\diexec.cpp, driver.cpp, audio\dcs.cpp, rax.cpp, drivers\cball.cpp, changela.cpp, cvs.cpp, dotrikun.cpp, equites.cpp, firetrk.cpp, fitfight.cpp, gaelco3d.cpp, homedata.cpp, igs_m027.cpp, m90.cpp, mgolf.cpp, namcond1.cpp, namcos22.cpp, pntnpuzl.cpp, ssfindo.cpp, starshp1.cpp, zac_2.cpp, machine\3do.cpp, archimds.cpp, galaxold.cpp, namcos2.cpp and pgmprot_igs027a_type3.cpp). . Merged popcount implementation in emucore.h with the new osd\eminline.h (see namcona1.cpp driver; printf("popcount ...population_count_32(m_keyval...)) . Added MACHINE_NODEVICE_LAN flags (cischeat.cpp, cps2.cpp, namcofl.cpp, namcos11.cpp, namcos22.cpp, neogeo.cpp and segaxbd.cpp) and CAMERA and MACHINE_NODEVICE_PRINTER flags (neoprint.cpp, stv.cpp and taito_b.cpp) (ID 06586) . Get rid of branches in cout_leading_zeros and ount_leading_ones (osd\eigccppc.h and eigccx86.h) . PLUGINS: Added option to hiscore.ini to only_save_at_exit (hiscore\init.lua) . Multi-Language: Updated Dutch, Greek, Portuguese (PT-PT) and Spanish translations - SDLMAME: Make SDL input less eager to generate double-click events when mouse doesn't move between clicks (input\input_sdl.cpp) - Compiling: Get rid of some "auto" (cpu\z180\z180.cpp, sound\ymz770.cpp and drivers\gaelco3d.cpp) 0.191 - New Working games: Big Casino, Target Hits (ver 1.1, Checksum 5152) and Target Hits (ver 1.0, Checksum FBCB) - New Non-Working games: Baby Boom Challenge, Casino Strip I (Poker version, for Pioneer LD, set 1), Casino Strip II (Poker version, for Sony LD), Casino Strip III (Poker version, for Sony LD), Casino Strip IX (Poker version, for Sony LD), Casino Strip Private Eyes / All Start (Poker version, for Sony LD), Casino Strip V (Poker version, for Pioneer LD), Casino Strip V (Shooting Game version, for Pioneer LD), Casino Strip VI (Poker version, for Sony LD), Casino Strip VI (Shooting Game version, for Pioneer LD), Casino Strip VIII (Poker version, for Sony LD), Casino Strip VIII (Shooting Game version, for Pioneer LD), Casino Strip Vivid 1 (Poker version, for Sony LD), Casino Strip X (Poker version, for Sony LD), Casino Strip XI (Shooting Game version, for Pioneer LD), Casino Strip XII (Poker version, for Sony LD), Dobou-Chan (ver JAA), E-Touch Mahjong Series #2: Joshiryou de NE! (Japan), E-Touch Mahjong Series #6: Scandal Blue - Midara na Daishou (Japan), E-Touch Mahjong Series #7: Trap Zone - Yokubou no Kaisoku Densha (Japan), Gokidetor, Note Chance, Ocha-Ken Hot Medal and Ton Puu Mahjong [BET] (Japan) - New clones: Alien3: The Gun (Japan), Athena (bootleg), Biomechanical Toy (Ver. 1.0.1878), Cabal (UK, Joystick), Casino Strip XI (Poker version, for Sony LD, set 2), Cobra Command (M.A.C.H. 3 hardware, set 2), Cyberball (rev 1), Flash Point (Japan, bootleg set 2), G-LOC R360 (Japan), Knights of the Round (bootleg, World 911127), Knights of Valour 3 (V104, China), Knights of Valour 3 (V100, China), Poker Ladies (Censored bootleg, set 2), Rod-Land (World, set 2), SD Gundam Sangokushi Rainbow Tairiku Senki (Korea), Super Hang-On (Hang-On conversion, Beta bootleg), Target Hits (ver 1.1, Checksum 86E1), Tecmo World Cup '94 (set 3), TH Strikes Back (Non North America, Version 1.0, Checksum 020EB356), unknown 'Space Invaders' gambling game (set 2), Virtua Athletics / Virtua Athlete (prototype) and World Series: The Season (rev 0) - New PinMAME games: 301/Bullseye (Traditional Scoring), A.G. Soccer Ball (R07u), Cheetah (Blue Cabinet), Eight Ball (rev. 17), Time Warp (L-3) and Trident - New drivers: anes.cpp, gokidetor.cpp, notechan.cpp and seibucats.cpp - New devices: i8212, pc060ha, sega_scu and smpc_hle - 8085A CPU: Correct a few opcode names (cpu\i8085\8085dasm.cpp) - DS5002FP MCU . Added DS5002FP SRAM dumps to Target Hits and clone (Games now playable). Bring visible area down to size of test screen, seems more likely. See https://youtu.be/ChJbrTF2dBs. . Dumped Touch & Go DS5002FP SRAM from 2 more boards, used that dump to verify/correct the SRAM image. - Dynamic Re-Compiling . Changed SSE control to not use Denormals-Are-Zero. Allows MIPs DRC to function correctly and fixes mismatch between MIPs DRC and non-DRC modes (cpu\drcbex64.cpp). Fixes various effects in Gauntlet Legends and Gauntlet Dark Legacy cause more damage than they probably should (64-bit only) (ID 06724). . Fixed compile due to unused variable (cpu\uml.cpp) - I386 CPU: Use correct stack size in retf - M6800 CPU: Fixed behaviour of V flag #2 in CPX (compare X) instruction (m6800\6800ops.hxx). Previous fix for CPX a year ago (MAME 0.175) was flawed and didn't handle overflow properly. - M6809 CPU: Fixed overflow flag problem with SBC8 and ADC8 (cpu\m6809\base6x09.ops) (ID 06719). Credit goes to Pierre Sarrazin and Tim Lindner for investigating/finding this bug. - SCUDSP CPU . Fixed register state for debugger . Moved SCU related functions inside a device (machine\sega_scu.cpp) - SH-3/4 CPU . Merged Hitachi SuperH CPU cores and implemented a preliminary SH3/SH4 recompiler . Recompiler is currently enabled for Cave CV-1000 but disabled for Sega NAOMI and can more than double the benchmark speed of CV-1000 games. - Z8000/Z8002 CPU: The Z8000 daisy chain is different enough from the Z80 that it'll probably need it's own implementation if anything uses it. The (MESS) P8000 (16bit Board) uses glue logic to make Z80 daisy chain devices work. - EEPROM: Removed endianness check (machine\eeprom.cpp) - Floppy . Don't set mon_w(0) if there's no image otherwise you have to insert, remove and insert a disk again before ready is set (imagedev\floppy.cpp). . Don't change sides if the drive has only one head (imagedev\floppy.h) - HuC6270 video . Inverted h/vsync logic for interrupts, fixes several PC Engine hangs (video\huc6270.cpp). . VRAM is actually only 0-0x7fff, area 0x8000-0xffff is open bus and cannot be written to. . Moved VRAM-VRAM DMA from vblank callback to hsync, fixes extended/Unexpected periods of black screen in (MESS) PC Engine Takeda Shingen (ID 06701). . Actually battlera.cpp can access upper VRAM bounds, fixed regression. - Imgtool: Created a more flexible imgtool::datetime structure for use within Imgtool. This is intended to replace most usage of time_t. Changing the granularity of imgtool_clock from 1ms to 100ns, as per Vas' suggestion. Created arbitrary_datetime in timeconv.h to facilitate interpretation of datetime info. I concluded that invoking std::mktime on manually assembled std::tm is bad, because it is indeterminate how the std::tm members may be "dominant". This required that I go further in imgtool, and updated a number of drivers (imgtool\modules\amiga.cpp, cybiko.cpp, cybikoxt.cpp, fat.cpp, mac.cpp, macbin.cpp, macutil.cpp, prodos.cpp and thomson.cpp) and eliminated the parameter of imgtool::datetime that takes std::tm. - MC146818 RTC: Fixed main interrupt flag - Taito Custom: Draw a nominal distinction between PC060HA and TC0140SYT. Separated Raimais configuration and unified video. Clone Cameltry (World, YM2203 + M6295) uses PC060HA. Darius more likely to use PC060HA instead of TC0140SYT. - Voodoo GFX . Use optimized routine to get color data (video\vooddefs.h) . Use table lookup for RGB565 conversion (video\vooddefs.h) . Added some code optimizations and reorganized a few function calls to make profiling easier (video\vooddefs.h, video\voodoo.cpp). . Incorporated some more SSE optimizations (video\rgbsse.h) . Check for starting x outside of clipping rectangle and fix clipping xstop (video\vooddefs.h) - Z80 DART/SCC/SIO . Eliminated custom MCFG_Z80DART_ADD/Z80SIO_ADD macros . Inverted DCD status bit in Z80 SIO . Z80 SIO and Z80 SCC now returns CPU specific default vector when no interrupt found to acknowledge. . Fixed SCC interrupt mask generation - avt.cpp: Added devices. Added notes from the remnants of the schematic. Fixed regression and added notes. - bishi.cpp: Added input labels to Bishi Bashi and Super Bishi Bashi based on in-game and cabinet images - cv1k.cpp: Implemented a preliminary SH3 recompiler. Recompiler is currently enabled for Cave CV-1000 and can more than double the benchmark speed of CV-1000 games. - dec0.cpp . Updated inputs. Added input labels for most games in the driver and removed unused buttons. . Updated positional rotary for Heavy Barrel/Midnight Resistance to use remap table . Made Boulder Dash to use 4way stick as per manual . Hooked up priority video port to Midnight Resistance bootlegs. This fixes missing sprites in the section where the player saves the family (and gets powerups) and the ending. - cedar_magnet.cpp: Fixed typo in audio\efo_zsu.cpp (MCFG_DEVICE_ADD("fifo",HC40105 -> CD40105) - gaelco.cpp . Fixed various clock speeds (biomtoy, biomtoya, maniacsp, squash and thoop) . Added PCB layout for Biomechanical Toy - gcpinbal.cpp: Name keys as per game's test screen - jalmah.cpp: Improved fake palette DMA behaviour, avoid corrupt colors for girls. - micro3d.cpp: Fixed TCDCR register in MC68901 MFP. Bits 6-4 are used for timer C and bits 2-0 are used for timer D, see https://www.nxp.com/docs/en/reference-manual/MC68901UM.pdf page 43. - namcond1.cpp . Rewrote built in RAM access control. Added screen control 7, 8 & 9 (video\ygv608.cpp). . Fixed page select boundaries for tilemap drawing (video\ygv608.cpp), fixes Namco Classic Collection Vol.2 garbage gfxs in attract mode. . Reset pattern name table states on mode changes (video\ygv608.cpp), fixes corrupt tiles in 'Mappy Arrangement' of Namco Classic Collection Vol.1. . Added screen control 11 (layer transparency enable), made POST screens again green for NCV1 & 2. . Kill legacy code, legacy register code and legacy ports variables (video\ygv608.cpp). . Enabled sprite wraparound when both sx and sy past clipping boundaries, fixes Namco Classics Vol. 2 disappearing char on game select. . Sprite drawing cleanups. Added screen control 12. Fixed CRTC vblank period, fixes NCV2: Dig Dug Original regression. Added note about missing registers. - naomi.cpp . Converted last remaining key data to PIC binary for Azumanga Daioh Puzzle Bobble . Decap and identify Atomiswave 'ROMEO' ASIC - segae.cpp: Minor documentation updates. Document Megumi Rescue. - segag80r.cpp: Replaced protection kludge with something less horrible - segas16b.cpp: Some corrections to Aurail documentation - segasp.cpp: Network firmware ver 1.25 dumped - seibucats.cpp: Revised old notes; some address map findings. - stv.cpp . Fixed STV crashing regression, make m_cart_reg explicitly nullptr if not initialized. . SMPC device-ification (System Manager and Peripheral Control MCU simulation; machine\smpc.cpp) . Reset/halt/nmi lines delegation. Moved IREG & OREG to internal device state. Execute commands internal to the device for ST-V. . Simulated SETTIME bit behaviour if an invalid NVRAM data is found for Sega Saturn like original hardware does. All Sega Saturn ROM sets now calls the BIOS setup if NVRAM is uninitialized, setting up proper defaults. . Added remaining devices, removed almost all trampolines, cleanups and merged implementations between ST-V and Saturn. . Moved SCU related functions inside a device (machine\sega_scu.cpp) and added DMA save state registration . Added ROZ mode 3, fixes split screen in 'Taisen Tanto-R Sashissu!!', backgrounds in 'Touryuu Densetsu Elan-Doree / Elan Doree' and Guy stage in 'Final Fight Revenge' (video\stvvdp2.cpp). . Fixed potential crash in video\stvvdp1.cpp. CEF bit gets reset when the framebuffers get swapped (video\stvvdp1.cpp), fixes (MESS) 'Twinkle Star Sprites' arcade mode hang at least. . Use explicit AM_REGION to prevent unnecessary copying; use AM_MIRROR for ROM mirrors. . Don't downcast controllers that aren't configured (machine\smpc.cpp) . Modernized BIOS mirroring; fix up finders and region lengths/widths. . Don't let SCU DSP go anywhere, use device_reset_after_children() (machine\sega_scu.cpp). . Fixed Guardian Force hangs after insert coin (ID 06697). The game tests an exclusive monitor mode bit to be 1 from title screen to gameplay. Sea Bass Fishing explicitly wants this bit to be 0 when screen is disabled from bios to game transition. . Fixed Sport Fishing 2 'No CDROM found' regression. Patch BIOS to actually return a country code. Added bare bones MPEG CD commands. Game now loops into attract mode with mostly missing graphics (MPEG video logic not yet added). . Added Batman Forever input labels (Jump, Punch and Kick). Fixed MAMEDEV warning message (SCU Transfer From BIOS Area, Contact MAMEDEV) appears when the game loads from the BIOS (ID 06550). . Fixed Cotton Boomerang ground layer invisible while fighting against 1st boss (ID 05987) - supbtime.cpp . Merged tumblep.cpp with supbtime.cpp driver. Removed duplicate code. . Screen raw parameters and XTAL values. Added DIP locations to all games. . Added PAL dumps for Super Burger Time - taito_b.cpp: Fixed pixel layer offset and enable for Hit the Ice - tecmo.cpp and tecmo16.cpp: Soundlatch modernization - vegas.cpp: Changed SSE control to not use Denormals-Are-Zero. Allows MIPs DRC to function correctly and fixes mismatch between MIPs DRC and non-DRC modes (cpu\drcbex64.cpp). Fixes various effects in Gauntlet Legends and Gauntlet Dark Legacy cause more damage than they probably should (64-bit only) (ID 06724). - Air Inferno: Dumped controller rom - Ameri-Hockey . Fixed Z8 disassembly of "LDE Irr, r" . Make game play a few noises - Big 10, Pyon Pyon Jump and TonTon: In according Success website (https://www.success-corp.co.jp/developments/works), Big 10 is Success gambing game, 'Pyon Pyon Jump' year is 1991 and release year is 1985 and 'Waku Waku Doubutsu Land TonTon' year is 1987 (ID 06487). - Big Casino: Fixed input (Game now playable) - Bottom of the Ninth: Fixed K051960 gfx rom loading (sprites have incorrect colors) in clone Bottom of the Ninth (version N) (ID 06690) - Bubble Bobble . Use MCFG_SCREEN_VBLANK_CALLBACK instead of irq0_line_pulse . Fixed sets with no MCU - Capriccio Spin 2: Reduced address range for TE7750; add some notes on mystery writes. - Denjin Makai: Fixed background pen colors - Double Axle: Saner interleave CPU timings, attempt to fix road layer getting stuck on continue. - Gauntlet: Reinstated correct size for gfx1 rom 136037-104.6p (second half 0x00), which was chopped off a long time ago. - Hippodrome: Demoted clone Fighting Fantasy (bootleg with 68705) to MACHINE_NOT_WORKING. Note: Game doesn't move on when killing the Lamia, is the MCU involved? - Kick Off: Fixed rom loading, OKI2 now plays proper crowd cheering. - Mahjong Tenkaigen: Fixed credits lost after exiting the game. The game checks for the string "A WARNING.IF YOU COPY OUR ITEMS,WE REVENGE BY ALL MEANS." at address 0x6E17, and will reset everything if the string does not match when the game starts. I'm not sure what the exact NVRAM address is, but at least this works. - Martial Champion: Fixed game does not disable interrupts during EEPROM read when in test mode (ID 00759) - Metal Black: Fixed inverted Single/Dual settings for 'Upright Controls' dipswitch - PinMAME . Fixed CPU type and added 6522 VIA to Escape (jvh.cpp) . Super Star (Recreativos Franco): Renamed I8212 IRQ to INT to agree with Intel pin names. I8212 overhaul: Changed the mode setting from a line write to an input callback. This is based on the observation that MD is nearly always tied to either Vcc or GND on actual hardware. Make the mode a scoped enumeration. Added strobed write handler for input mode. This allows the device to be hooked up in supstarf in place of generic_latch_8_device. Added interrupt acknowledge callback for future use. Added extensive introductory comments. - Qix: Added some documentation to clone Qix (set 2, larger roms). Note: The same ROMs, with different labels, were also found on an original Taito TT Qix 2 PCB set. - Super Pinball Action: Provisional MCFG_SCREEN_RAW_PARAMS. Acknowledge main IRQ; restore legacy screen configuration due to missing sprites. - Tokio: Removed partial updates from Tokio video, fixes graphic glitches on the right side of the screen (ID 06691) - Wheels & Fire: Converted palette to RAMDAC device - Input port . Tighten up scope. Get rid of vestigial palette that was breaking generic terminal when it isn't first screen (machine\terminal.cpp). . Expose condition for dipswitches, configuration entries and adjusters. This eliminates ambiguities between settings with different conditions and allows a frontend/tool to generate a dipswitch preview (emu\ioport.h). . Added support for multiple PORT_CHAR() bindings, and adopted in the (MESS) CoCo driver. . Proposed fix for rotary positional joystick with skipped positions (emu\ioport.cpp) (ID 06154) . Make xinput analog triggers half-axes and default IPT_PEDAL2 to RZ- instead of Z+, placing IPT_PEDAL and IPT_PEDAL2 on separate axes. - Dipswitch fixes in supbtime.cpp, stv.cpp and taito_f2.cpp - Fixed rom names in by17.cpp, itech8.cpp, naomi.cpp, st_mp200.cpp and thoop2.cpp - Description changes of 301/Bullseye (301 Darts Scoring), A.G. Soccer Ball (R18u), Casino Strip I (Poker version, for Pioneer LD, set 2), Casino Strip IX (Poker version, for Pioneer LD), Casino Strip VIII (Poker version, for Pioneer LD), Casino Strip XI (Poker version, for Sony LD, set 1), Cheetah (Black Cabinet), Cobra Command (M.A.C.H. 3 hardware, set 1), Cyvern - The Dragon Weapons (US), Cyvern - The Dragon Weapons (Japan) (ID 06704), Dragon Ball Z (rev A), Dragon Ball Z (rev B), Dragon Ball Z 2 - Super Battle, Eight Ball (rev. 20) (ID 06713), Flash Point (Japan, bootleg set 1), G-LOC R360 (World), The House of the Dead, The House of the Dead 2 (USA), The House of the Dead 2, The House of the Dead 2 (prototype)', The House of the Dead 4 (Export) (Rev B), The House of the Dead 4 (Export) (Rev A), The House of the Dead EX (Japan), Meteor (First release), Meteor (Bug fix release), Naomi The House of the Dead 2 Bios, Oriental Legend 2 (Korea) / Xi You Shi E Zhuan Super Plus (World, China, Japan, Hong Kong, Taiwan) (ver. 205) [Oriental Ex], Panic Park (World, PNP2 Ver. A), Poker Ladies (Censored bootleg, set 1), Rod-Land (World, set 1), SD Gundam Sangokushi Rainbow Tairiku Senki (Japan), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B (prototype), Super Strike Bowling (V1), Target Hits (ver 1.1, Checksum 5152), Target Hits (ver 1.0, Checksum FBCB), TH Strikes Back (Non North America, Version 1.0, Checksum 020E0867), unknown 'Pac-Man' gambling game, unknown 'Space Invaders' gambling game (set 1) and World Series: The Season (rev 1) - Renamed (cstrip) to (cs1_spp2), (cstripix) to (cs9_spp), (cstripviii) to (cs8_spp), (cstripxi) to (cs11_sps), (meteorp) to (meteorpo), (meteorp2) to (meteorp), (kov3) to (kov3_102), (targetha) to (targeth10), (trident) to (tridento) and (unkfr) to (unksig) - MAME . VIDEO RENDERING SYSTEM . Generated layouts for systems with three or more screens, fixes crash with four or more emulated screens (emu\render.cpp). Fixed unused variable error compiling with MSVC (emu\render.cpp). . Rather simple performance optimization (video\rgbsse.h and validity.cpp). Optimized some SSE routines. Created a generic getter instead of having individual color operation. Allow up to 12 bits for scaling factors (video\rgbsse.h). Clamp intermediate values to u8. . Fixed layout files loading (emu\render.cpp) (Work around for GCC compiler bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81721) . Device state interface (emu\distate.cpp) . Polymorphism and std::function for entries. Created a templated subclass of device_state_entry to provide separate read/write interfaces for registers of varying widths. The efficiency impact of this should be minimal, given that this eliminates the need to make each byte width a subcase for reads and writes. Created similarly templated "pseudo-register" versions of device_state_entry that provides custom read/write interfaces through std::function. The intent of this is to eventually replace the dummy register + state_export interface hitherto necessary to provide debugger access to bankswitched or computed state registers. State registers can now be made read-only, and this is automatically done now when state_add is called with a std::function read handler but no write handler. This property is honored by MAME debug expressions. . Added override keyword . Removed explicit instantiations that were causing linking errors in tools build. . Explicitly allow floating point values for state registers (cpu\dsp32\dsp32.cpp, powerpc\ppccom.cpp and machine\netlist.cpp). Note: The internal debugger's expression interpreter is not set up to handle floating point values at all, so they remain disabled there. . Polymorphic classes need virtual destructors . PLUGINS . Added input sequence cheats (plugins\cheat\init.lua). Fixed 'no xml or simple for ram_device cheat'. . Bail if database not open (plugins\data\data_marp.lua) . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . Multi-Language . Updated Chinese, German, Greek, Japanese, Portuguese, Serbian and Russian translations . Added LUA translation to makefile and regenerated translations . Improved localisation: Changed makefile rules to treat mame.pot as a target so rules can depend on it. Put mame.pot inside the build directory so it will get cleaned. Couldn't get xgettext to scrape LUA and C++ in the same command and still remove stale strings. Use larger strings and format specifiers to fix some localisation issues: Issue with "None" lacking context in Russian and Turkish translations. Issue with "Not implemented" changing depending on the noun in Serbian. Issues with LUA plugins not allowing for languages with different grammar/punctuation. . Removed timer_device from emu.h and move it out of src\emu . UI . Fixed an options overhaul regression. This crash (discovered by Wizz) had the following symptoms: 1. Start MAME, 2. Choose "Configure Machine" and 3. Choose "Video Options"... CRASH. This was the result of the options editor not having a fully formed list of options where it was expecting one. The fix is to change the declaration of emu_options to one that have full OSD options (it is possible that SDLMAME needs something slightly different). . Actually make sure OSD options are included when saving through UI (ui\ui.cpp) (ID 06637), fixes also configuring machine level "Video Option" causes crash (ID 06656). . Small fixes to general info panel on internal UI. This fixes unknown numbers showing up at the right side panel (ID 06702). . Fixed the last used game is not saved, if you exit MAME (ui\selgame.cpp) (ID 06711). . Fix for prescale value entry. Top prescale value allowed via command-line is 3 (ID 06720). . Avert potential crash when populating DSW menu (ui\inputmap.cpp) . LISTXML . Removed deprecated attributes from -listxml output and DTD (mame\info.cpp) . Expose condition for dipswitches, configuration entries and adjusters. This eliminates ambiguities between settings with different conditions and allows a frontend/tool to generate a dipswitch preview (emu\ioport.h). . Reduced number of calls to fprintf - saves overhead of setting up the formatting engine (mame\info.cpp). - MAC OS X: Xcode 9 compile fix (ui\selgame.cpp) - SDLMAME: Fixed ZEXALL build target (zexall\main.cpp) - Compiling . Fixed compile warning under Emscripten (3rdparty\asio\include\asio\detail\socket_types.hpp) . Restored ROM directory, it's used when building packages. 0.190 - New games: unknown Italian poker game - New Working games: Alligator Hunt (Spain, protected), Big Buck Hunter, Big Buck Hunter II, Big Buck Hunter Call of the Wild, Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994), Glass (Ver 1.0, Break Edition, Checksum C5513F3C), Glass (Ver 1.0, Break Edition, Checksum D3864FDB), Great Guns, Maniac Square (protected, Version 1.0, Checksum CF2D), Slap Fight (A76 set, GX-006-A PCB) and Virtual Pool - New Non-Working games: Bingo Wave, Cisco/Fisco 400 [TTL], Gaelco Football, Gran Trak 10/Trak 10/Formula K [TTL], Gran Trak 20/Trak 20/Twin Racer [TTL], Le Mans [TTL] and Qwak!/Quack [TTL] - New clones: Alligator Hunt (World, protected), Beast Busters (Japan, Version 2, 3 Player), Big Buck Hunter - Shooter's Challenge (v1.60.01), Chuka Taisen (Japan) (P0-025-A PCB), Iron Horse (version K), Kick Off (bootleg), Lady Master of Kung Fu (set 2, older), Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 1.0) (AT89c52 protected), Maniac Square (protected, Version 1.0, Checksum DEEE), Robot Hunting (bootleg of Death Race) [TTL], Royal Card / Royal Jackpot (with a third draw)(encrypted), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B -P, Syvalion (US, PS2 Taito Legends 2) and Syvalion (World, PS2 Taito Legends 2) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Bomberman 93, Die Hard, Hit The Ice and Knight Rider Special - New PinMAME games: Guns N Roses (2.00) and Meteor (Stern, set 2) - New drivers: bingowav.cpp - New devices: amd_29f800b_16bit, arm946es, deco_irq, i82072, lc7535, mc68340duart, mc68340sermod, mc68340timmod, mea8000 and ta7630 - ADSP21062 CPU: Removed leftover debug code - ARM7 CPU: Various changes. Added ARM946ES variant. Fixed up CPU ID values. - COP400 CPU . Emulated COP402 MCU in Quiz Punch II . Rewrote the execution control logic to fetch each byte of an instruction separately in one pass of the main loop. This provides EEPROM-compatible timing for the SIO shift register, allowing the 93C46 on Quiz Punch II to be read and written properly (though its default contents are a bad dump). . Added M pseudo-register (internal RAM referenced by B) to debugger state . Added T register to debugger state on devices where it only affects SKT . The SIO state is now displayed in binary when it is defined as a shift register . Skipped instructions and the SKIP flag can be debugged by compile-time switch (disabled by default) - M68000 CPU: Fixed abcd/sbcd/nbcd opcodes to pass 68k-bcd-verifier (cpu\m68000\m68k_in.cpp). FlameWing has a test that claims to exhaustively test BCD instructions: https://github.com/flamewing/68k-bcd-verifier. Verified the test on MegaDrive Model1 (68000). - M68705 CPU: Fixed corrupt bytes in two MC68705 dumps of clones Arkanoid (Japan, newer) and Nekketsu Kouha Kunio-kun (Japan) after re-analysis of raw dump data. - MC68340 CPU . Fixed MCR register enum error and silented some logerror spam by turning them into LOGx statements (machine\68340tmu.h) . Deskeletonized the serial module as a device derived from the DUART device defined in mc68681.cpp (machine\68340.cpp and 68340ser.cpp). Fixed SIM module read register bug and added informative chip select logic LOG messages (machine\68340sim.cpp). Fixed -validate errors and made slight cleanup. . Simplified code by making the timer module implementation a device and created two independent instanses, as it should be. - MN1020012A CPU: Fixed savestate issue - PSXCPU: Implemented program counter break point to PlayStation CPU & re-added PlayStation EXE, CPE & PSF loading. - uPD7725 CPU . Updated OV1 and S1 flag calculation to be correct based on AWJ's NESdev forums post and the original datasheets. . DPL bits of the instruction field are ignored if DP is the destination register of the current opcode. Similarly, RPDCR bit is ignored if RP is the destination register of the current opcode. - SAA1099 sound: Removed unnecessary device tag from logerror messages - Sound Interface . Soundlatch modernization in 1942.cpp, airbustr.cpp, aquarium.cpp, astrocde.cpp, bking.cpp, bombjack.cpp, dacholer.cpp, ddragon3.cpp, deniam.cpp, exterm.cpp, gaelco3d.cpp, gaiden.cpp, karnov.cpp, lkage.cpp, m90.cpp, mainsnk.cpp, mazerbla.cpp, onetwo.cpp, seicupbl.cpp, segajw.cpp, seta.cpp, shadfrce.cpp, snowbros.cpp, spartanxtec.cpp, spbactn.cpp, spyhuntertec.cpp, sub.cpp, suprridr.cpp, tecmosys.cpp, thedeep.cpp, vball.cpp and wwfsstar.cpp . Added 74LS259 device to balsente.cpp, munchmo.cpp, pitnrun.cpp and sub.cpp . aquarium.cpp: Soundlatch modernization. Use BITSWAP8 to implement MSM6295 line swap. . dblewing.cpp: Modernized soundlatch. Improved IRQ arbitration for (hopefully) less dropped sound commands. . karnov.cpp and mugsmash.cpp: Use MCFG_GENERIC_LATCH_DATA_PENDING_CB for soundlatch . sub.cpp: Soundlatch modernization. Added watchdog timer. Acknowledge all interrupts. - TA7630 sound: Wrote a new device for TA7630 (bass/treble and volume/balance), hooked it up to 40love.cpp, buggychl.cpp, msisaac.cpp and flstory.cpp. - YMF271 sound: Added slot end status bits, fixes at least missing shots samples for Desert War. - 6840 PTM and 6850 ACIA: Fixed so that LOG_OUTPUT_FUNC can be defined as printf. Removed c_str() in 6840 LOG statements. - 68681 DUART: Added the DUART compatible 68340 serial module (machine\mc68681.cpp) - 8155 RIOT: Cleanup timer start, a clock of 0 causes MAME to freeze. - 8250 UART: Added and use INS8250 register defines. Replaced LCR, LSR and MCR bits by defines. - 8251 USART: Fixed setup for sync byte - 8259 PIC: Break up the MCFG_PIC8259_ADD macro - Data East Custom: Use DEVCB for DECO 146 input ports and explicitly define these in all drivers (machine\deco146.cpp) - EEPROM: Improvements to 28XX parallel EEPROM emulation. Emulated direct manipulation of /OE line for read/write mode control. Special handling for data polling before a write has completed. Allow optional configuration of device to lock EEPROM after each write, as often used by Atari. Eliminate the Atari EEPROM interface devices, since their special features have been incorporated into the base device. To continue using old NVRAM files, renamed them from eeprom_eeprom to eeprom (machine\eeprompar.cpp; drivers\arcadecl.cpp, atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, badlands.cpp, batman.cpp, blstroid.cpp, cyberbal.cpp, eprom.cpp, gauntlet.cpp, klax.cpp, mastboy.cpp, offtwall.cpp, rampart.cpp, relief.cpp, shuuz.cpp, skullxbo.cpp, thunderj.cpp, toobin.cpp, vindictr.cpp, xybots.cpp, includes\harddriv.h and machine\atarigen.cpp). - Flash ROM: Added 29F800B flash boot device for (MESS) D-box - Floppy: Added drive LED callback. This currently only works if you set the drive select lines correctly, which the upd765 does now. Hook it up to (MESS) Kontron PSI98 and use the TEAC FD-55F drive instead of the generic one. - MB3773 Power Supply: Added watchdog device to aquarium.cpp and gcpinbal.cpp - Programmable Logic Device (PLD): Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101 (tools\jedutil.cpp). - Voodoo GFX . Removed wrapping after y origin conversion so that proper y-clipping is performed (video\vooddefs.h and voodoo.cpp). Fixes pool cue wrapping out of top the screen in Virtual Pool. . Changed 2x2 dither matrix values. Allows ITEagle driver power-on video memory tests to pass (video\voodoo.h). . Fixed depth buffering for Voodoo 2 cards and greater (video\voodoo.cpp) . Declare scale_imm_and_clamp as inline to ensure that it compiles as fully inlined in voodoo rasterizers (video\rgbsse.cpp). - atlantis.cpp . Clean up interrupt handling and adjust PCI device mapping . Changed to interrupt callback instead of direct interrupt assertion (machine\vrc4373.cpp) - cninja.cpp and deco32.cpp . Added 'Data East IRQ Controller' device. This implies proper VBlank IRQ ack for all games now. Use a device map, move screen include to header (machine\deco_irq.cpp). . Added and improved raw screen parameters for various games. - deco_mlc.cpp: Removed erroneous I/O ports - deco156.cpp: Palette cleanup - deco32.cpp . Emulated LC7535-based volume control for Dragon Gun board based games . Added DSW3 and DIP locations to Captain America . Reorganized driver and start cleaning it up (in progress) - f1gp.cpp: ACIA interrupt goes to second CPU - flstory.cpp: Merged memory maps and fixed gfx bank default (fixes Onna Sanshirou POST messages). Added screen raw parameters. - gaelco2.cpp . Added DS5002FP SRAM dump to Maniac Square (protected, Version 1.0, Checksum CF2D) (Games now playable) . Added DS5002FP SRAM dumps to Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994) and clones (Ver 1.0, Break Edition, Checksum C5513F3C) and (Ver 1.0, Break Edition, Checksum D3864FDB). . Base Gaelco game's CPU clock speed on actual OSCs - galaxian.cpp . Miscellaneous configuration cleanups and corrections . 555 star blinking timer is only present on Scramble, Super Cobra and similar hardware. . Scramble clone Explorer (bootleg of Scramble) uses two AY-3-8912 and no 555 timer . Added the (first) two 8255 PPIs only in konami_base and stop removing and readding these in derivative configurations . Safer order for static definitions - gstriker.cpp . Fixed MB60553 zooming tilemap compared against visible area. Improved MB60553 zooming alignment, mostly noticeable in Tecmo World Cup '94. . Added buffered spriteram (sprites being ahead 2 frames; video\gstriker.cpp) . Tecmo World Cup '94: Added MCU simulation to clone (set 2). Fixed tournament logic. Added input labels. Replaced MACHINE_NOT_WORKING flag with MACHINE_UNEMULATED_PROTECTION. . Fixed dipswitches for V Goal Soccer and added DIP locations . Added rotation to MB60553 core, used by V Goal Soccer during display of football field. . Serial link preparation (6850 ACIA) for Grand Striker - homedata.cpp: Fixed sound I/O write in Homedata driver (affected hourouki, mhgaidenm, mjhokite, mjclinic and mrokumei). This fixes missing voices of "Reach", "Ron" etc. in Mahjong Hourouki (ID 00490). - iteagle.cpp . Changed 2x2 dither matrix values. Allows ITEagle driver power-on video memory tests to pass (video\voodoo.h). . Added vblank handling, updated gun control and added proper eagle1 (Virtual Pool) battery ram functionality (machine\iteagle_fpga.cpp). . Virtual Pool: Removed wrapping after y origin conversion so that proper y-clipping is performed (video\vooddefs.h and voodoo.cpp). Fixes pool cue wrapping out of top the screen in Virtual Pool. Set "Medium" resolution as default for Virtual Pool. Setting to VGA is buggy and low resolution will hang the game. Removed MACHINE_NOT_WORKING and IMPERFECT_GRAPHICS flags - Game now playable. . Updated DIP settings for Big Buck Hunter series and Virtual Pool. . Set MIPS3DRC_STRICT_VERIFY option. Sees to eliminate game hangs in Big Buck Hunter series. . Set Carnival King to start at medium resolution by default . Promoted Big Buck Hunter - Shooter's Challenge (v1.60.01), Big Buck Hunter - Shooter's Challenge (v1.50.07), Big Buck Hunter II - Sportsman's Paradise (v2.02.11) and Big Buck Hunter Call of the Wild (v3.02.5) to working . Changed to interrupt callback instead of direct interrupt assertion (machine\vrc4373.cpp) - kaneko16.cpp . Berlin Wall clearly uses 4way sticks . Made dial/paddle optional for Great 1000 Miles Rally, fixes INP playback. - ladyfrog.cpp: Added missing DAC sound chip, fixes death scream in Touche Me. Added screen raw parameters. - leland.cpp: Fixed missing DAC sounds in later Ataxx-era audio - mazerbla.cpp . Added multi-layer drawing (video\mb_vcu.cpp) . Improved layer clearances for Mazer Blazer . Fixed layer clearances for Great Guns (video\mb_vcu.cpp). Fixed lightgun inputs. Soundlatch modernization. . Added backup RAM . Improved collision detection and fixed layer 0 data setups. Driver and input cleanup. . Promoted Mazer Blazer sets from NOT_WORKING to UNEMULATED_PROTECTION - megaplay.cpp . Try make start buttons work properly through BIOS (ID 00535). Demoted Mega Play to not working. Note: Driver is marked as NOT WORKING because interaction between BIOS and 68k side is not fully understood. The BIOS often doesn't register that a game has been started and leaves the 'PRESS P1 OR P2 START' message onscreen during gameplay as a result. If this happens, the games usually then crash when you run out of lives as they end up in an unknown state. . Log the internal P1/P2 Start activity to make it more obvious where things are going wrong - midzeus.cpp: Map proper * key to keypad - model2.cpp . Fixed luma overflow (Virtua Striker flag colors) (video\model2rd.hxx) . fixed Model2 address map, the framebuffer for Last Bronx title screen is not a mirror. - ninjaw.cpp: Saner interleave CPU timings, attempt to fix missing enemies bug in Ninja Warriors. - seattle.cpp: Adjust tx interrupt status to mirror tx buffer empty (machine\smc91c9x.cpp) - segas24.cpp: Added uPD4701A devices for analog input. Updated documentation. - seta.cpp . Use uPD4701A device for analog input in Krazy Bowl . Added uPD4701A device with multiplexing to U.S. Classic . Replaced bogus "kiwame_nvram" with TMP68301 parallel interface in Pro Mahjong Kiwame - superqix.cpp . Correctly implemented 8751 port2 latch based on PCB tracing. Fixed semaphores implementation to match PCB tracing. Got rid of z80<->mcu 'pending' communication hacks by using synchronize calls. Moved superqix specific variables and member functions to its own subclass. Consolidated the 8031 bootleg and 8751 protected set port2 handling code. Removed some unnecessary trampoline functions. . Added a sync trampoline for reading the semaphores via the AY-3-8910 #1, MCFG_QUANTUM_PERFECT is no longer needed. - taitosj.cpp: Added synchronize calls on soundlatch write and bit7 clear, as well as for writing and clearing the secondary sound semaphore. Use input_merge for both NMI enable and the secondary semaphore. Added sound cpu mirroring. - tnzs.cpp: Removed outdated comments - tourvis.cpp: Added new BIOS dump, clarified BIOS names and updated several games with newly discovered ID codes. - vegas.cpp . Adjust tx interrupt status to mirror tx buffer empty (machine\smc91c9x.cpp). Fixes linking boot hang on Cart Fury. . Added Denver UARTs, gearshift and updated input dips for various Vegas games. . Clean up timer code in VRC5074 controller . Clean up DUART code and make parallel read return not busy - Alcon: Added MCU to clone Slap Fight (A76 set, GX-006-A PCB) (Game now playable) - Alligator Hunt: Added new DS5002FP SRAM dump to Alligator Hunt (Spain, protected) (Game now playable). Data was verified using a 2nd board, only 1 byte changed in the code area, data table is also verified by checksum in the code, and by the unprotected set as reference. This is a good read. - Ameri-Hockey . Make Z8 CPU data space optional and fixed stack pop semantics. Mask addresses for external memory accesses based on P0 control bit and external stack accesses. . Fixed C flag polarity for CP, SBC, SUB and actually subtract with carry in SBC. This lets Ameri-Hockey pass its initial checksum calculation. . Interrupts are working now (Z8681 CPU; cpu\z8\z8.cpp) - Big Event Golf: Added DAC (cup in and crowd applauses samples) - Blood Bros: Prevent mistimed interrupts that were killing sound in clone West Story (bootleg of Blood Bros.) - Borderline: Added sound samples (http://www.progettosnaps.net/samples/zip/brdrline.zip) - Buggy Challenge . Removed NMI trampolines. Added details and mirrors to memory map based on schematics. Added note about the maybe unused scoreboard hookup, similar to Grand Champion. . Fixed sound timer irq frequency, fixes enter initials BGM tempo. . Fixed background pen and clipping enable (fixes title screen and stage 3 graphics). Converted accelerator to analog, proper sound irq frequency. . Fixed PORT_SERVICE_DIPLOC in conflict with IPT_SERVICE, causing F2 to toggle service to not work. . Wrote a new device for TA7630, hooked it up to Buggy Challenge. - Capriccio Spin 2: Some rather blind guesses that don't help much now - Caveman Ninja: Fixed sound banking in clone Tatakae Genshizin Joe & Mac (Japan, bootleg) - Chain Reaction: Game uses 4-way joystick and 2 buttons - Championship Bowling: Separated trackball reset handler - Cool Minigame Collection: Added speedup - Demons & Dragons (prototype): Added MACHINE_IS_INCOMPLETE flag since sound program is missing - Dinosaur King - Operation: Dinosaur Rescue: Dumped origin Compact Flash card. Removed rom_board roms. - Exterminator: Soundlatch modernization and save state support. Might as well make the IRQ line explicit. - F1 Super Battle: Fixed extra VRAM boundaries and inputs. Added coin counters. - Grand Champion: Fixed the sound latch system such that the bit 7 clearing actually works and properly synchronized the sound latch writes and bit 7 clears. Added memory map comment for sound cpu. Added missing sound NMI enable and hooked sound NMI to the sound semaphore. Added sound semaphore readback. Minor format changes to ease potential future code merge. - Guzzler: Added PAL dump to clone Guzzler (Swimmer Conversion) - Heavy Unit: Added more generic latch devices for inter-CPU communication - Hexion: Fixed music speed by hooking up the INT_TIME callback from the K053252 CCU properly. Fixed music pitch for clone Hexion (Asia ver AAA, bootleg). - King Derby: More plausible method of generating NMI on sound CPU - Lunar Lander: Changed Language rom which passes now self-test (former source built attempt had 2 bytes differing) - Metal Hawk: Fixed missing sound (ID 06680) - Ninja Clowns . Fixed palette read accesses, fixed many color bugs (title screen fade-in, water spray properly blue and color cycle effects in bonus stage). . Fixed 0x40000-0x7ffff constant area, now program ROM checksum correctly returns OK status. . Moved vblank irq generation for Ninja Clowns, fixes frames per second jerkiness. - QB-3: Fixed missing AY-3-8910 sound (ID 06682) - Quiz Punch II: Emulated COP402 MCU. Rewrote the COP400 execution control logic to fetch each byte of an instruction separately in one pass of the main loop. This provides EEPROM-compatible timing for the SIO shift register, allowing the 93C46 on Quiz Punch II to be read and written properly (though its default contents are a bad dump). - Panic Road: Demoted Panic Road to MACHINE_NOT_WORKING. Playtesting shows that the collisions aren't right. - PinMAME: Added meat to the bones to inderp.cpp and stargame.cpp - Pocket Gal Deluxe: Added vblank interrupt acknowledge - Return of the Invaders: Fixed colors in clone (bootleg no MCU set 3) - Rock'n Rage: Fixed priorities and text tile banking for Rock'n Rage. Fixes stage 1 boss eyes flashing and Shena display inside the bubble at stage 5 boss. - Star Wars: Fixed missing sounds by restoring the old boost_interleave method as an annex to the modern soundlatch semaphore handling (ID 06672) - Stunt Air: Added 74LS259, NVRAM and watchdog timer. Attempt at improving sound communication. - Super Qix: Traced out correct clock divider for CPU and MCU from PCB. Fixed issue with clone Super Qix (bootleg of V1.0, 8031 MCU) not working with the correct clock speed and synchronize fences. Added emulation of the 8031 bootleg MCU port 3 output latch. - Ultraman: Sound IRQ modernization - Wyvern F-0: Misc fixes and added DAC. - Input port . Using a better overload of utf8_from_uchar() in ioport_field::key_nam (emu\ioport.cpp) . Fixed a longstanding INP playback desync bug caused by a rand() call in the MAME core (emu\ioport.cpp), fixed playback lose sync in B.Rap Boys and Blood Warrior (ID 04209), INP playback fails after a short time in Shinobi III (Mega Play) (ID 04280) and Shogun Warriors cannot be replayed from .inp file (ID 03967). . Prefer lower shift states, eliminate O(n) lookup allows Alt-combos on European Amiga keyboards to be restored as MAME will now prefer the simpler Shift-combos to get characters that can be typed in more than one way. - Dipswitch fixes in champbwl.cpp, gstriker.cpp, inderp.cpp, iteagle.cpp, legionna.cpp, mazerbla.cpp, seattle.cpp, subsino.cpp (ID 06673) and vegas.cpp - Fixed rom names in inderp.cpp, tnzs.cpp, tourvis.cpp, tsamurai.cpp and zn.cpp - Description changes of 500 GP (US, 5GP3 Ver. C), Ace Driver: Racing Evolution (Rev. AD2, World), Ace Driver: Victory Lap (Rev. ADV2, World), Alpine Racer (Rev. AR2 Ver.C, World), Alpine Racer (Rev. AR2 Ver.D, World), Alpine Racer 2 (Rev. ARS2 Ver.A, World), Alpine Racer 2 (Rev. ARS2 Ver.B, World), Alpine Surfer (Rev. AF2 Ver.A, World), Angler King (Japan, AG1 Ver. A), Aqua Jet (Rev. AJ2 Ver.B, World), Armadillo Racing (Rev. AM1 Ver.A, Japan), Beast Busters (Japan, Version 2, 2 Player), Chuka Taisen (Japan) (P0-028-A PCB), Chuka Taisen (US) (P0-028-A PCB), Chuka Taisen (World) (P0-028-A PCB), Crisis Zone (US, CSZO3 Ver. A), Crisis Zone (US, CSZO3 Ver. B, set 1), Crisis Zone (US, CSZO3 Ver. B, set 2), Crisis Zone (World, CSZO2 Ver. A), Crisis Zone (World, CSZO4 Ver. A), Crisis Zone (World, CSZO4 Ver. B), Cyber Cycles (Rev. CB2 Ver.C, World), Dai Ressya Goutou (Japan, version K), Dinosaur King - Operation: Dinosaur Rescue (USA, Export) (MDA-C0021), Dirt Dash (Rev. DT2, World), Downhill Bikers (US, DH3 Ver. A), Final Furlong (World, FF2 Ver. A), Glass (Ver 1.0, Break Edition, Checksum C5513F3C), Glass (Ver 1.0, Break Edition, Checksum D3864FDB), Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994), Glass (Ver 1.1, Break Edition, Checksum D419AB69, Version 1994) (censored, unprotected), Grand Striker (Europe, Oceania), Graplop (DECO Cassette) (US) (Prototype?), Gunmen Wars (Japan, GM1 Ver. A), Gunmen Wars (Japan, GM1 Ver. B), Iron Horse (version H), Lady Master of Kung Fu (set 1, newer), Maniac Square (protected, Version 1.0, Checksum CF2D), Maniac Square (unprotected, Version 1.0, Checksum BB73), Meteor (Stern, set 1), Motocross Go! (Japan, MG1 Ver. A, set 1), Motocross Go! (Japan, MG1 Ver. A, set 2), Motocross Go! (US, MG3 Ver. A), Motocross Go! (World, MG2 Ver. A, set 1), Motocross Go! (World, MG2 Ver. A, set 2), Ninja Clowns (27 oct 91), Panic Park (Japan, PNP1 Ver. B), Panic Park (World, PNP2 Ver. A), Prop Cycle (Rev. PR2 Ver.A, World), Race On! (World, RO2 Ver. A), Rapid River (US, RD3 Ver. C), Rapid River (World, RD2 Ver. C), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) (Rev A), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B, Slap Fight (A76 set, GX-006-A PCB), Slap Fight (A77 set, 8606M PCB), The NewZealand Story (Japan, new version) (P0-043A PCB), The NewZealand Story (Japan, old version) (P0-041A PCB), The NewZealand Story (US, old version) (P0-041A PCB), The NewZealand Story (World, new version) (P0-043A PCB), The NewZealand Story (World, old version) (P0-041A PCB), The NewZealand Story (World, prototype) (P0-041-1 PCB), The NewZealand Story (World, unknown version) (P0-041A PCB), Time Crisis (Rev. TS2 Ver.A, World), Time Crisis (Rev. TS2 Ver.B, World) and Tokyo Wars (Rev. TW2 Ver.A, World) - Renamed (aligator) to (aligators), (bbhsc) to (bbhsca), (ironhors) to (ironhorsh), (maniacsq) to (maniacsqu), (mp_twc) to (mp_twcup), (tecmowcm) to (twcupmil), (twrldc94) to (twcup94), (twrldc94a) to (twcup94a), (tws96) to (twsoc96), (wc90) to (twcup90), (wc90a) to (twcup90a), (wc90b) to (twcup90b), (wc90b1) to (twcup90b1), (wc90b2) to (twcup90b2), (wc90ba) to (twcup90ba) and (wc90t) to (twcup90t) - MAME . VIDEO RENDERING SYSTEM . PNG . Make verify_header public (util\png.cpp) . Detect image format(png) before loading image. No PNG error message anymore when loading JPG (emu\rendlay.cpp). . Multi-Language: Updated Dutch, Italian, Turkish and Russian translations . Returning a reference from various corestr.cpp calls to avoid unnecessary string copies (util\corestr.cpp) . Fixed warning message (ui\info.cpp) . PLUGINS . Fixed is_oneshot() (cheat\init.lua). Fixed cheats driven by _("") ) . Updated hiscore.dat . LUA engine: Translation support . Validity . MAME -validate will now report an error if no matches occur. Fixed exit status (emu\validity.cpp). . Added a natural keyboard validation to check for valid natural keyboard (uni)codes (emu\ioport.cpp and validity.cpp) . UI . Don't translate info box titles twice (ui\datmenu.cpp, ui\selmenu.cpp) . Bug fix for network menu (ui\miscmenu.cpp) . Merged duplicate code for drawing UI palette menu . Use std::unique_ptr to manage instances of slider_state (ui\slider.h). Eliminate now-unnecessary machine parameter (ui\ui.cpp). . Don't use auto_alloc for temporary bitmaps (ui\selmenu.cpp). Eliminated last use of auto_alloc in frontend (ui\ui.cpp). . AUDIT/ROMLOAD/LISTXML . Defer decoding DOS timestamps (util\unzip.cpp) . Turn most of the ROM entry accessor macros into templates, and make them work on tiny_rom_entry/rom_entry pointers/references, also claw back a little performance lost in the ROM entry refactoring. . Make ROM BIOS reported in listxml output match what ROM loading does. This is the soure of the "BIOS can only apply to one region" meme - it actually works for all regions, but the listxml output was wrong, making it look like it didn't work. . Start adding stuff for iterating ROM entries in a more C++ way without needing to allocate everywhere, improved performance of -listxml by another 10% or so. . Attempted to sanitize/rationalize how we access UTF-8 command line arguments. Specifically, this creates a call osd_get_command_line() that returns UTF-8 command line arguments as std::vector. On non-Windows platforms, this does nothing more than build the vector. On Windows, this invokes GetCommandLineW() and CommandLineToArgvW(). This also attempts to unwind usage of wmain()/_tmain() on Windows, which is not standard. Related to this, this fixes a bug in Imgtool; specifically, non-7 bit ASCII was not being handled correctly in Windows. This is really an admission that the way that Windows handles Unicode and command line arguments sucks, and it is my belief that having a wmain() or _tmain() declaration specific for Windows is a worse solution. . Added support for C++ output streams using LOG_OUTPUT_STREAM instead of using printf as LOG_OUTPUT_FUNC (emu\logmacro.h) - SDLMAME: Make the C-like parts more consistent with MAME (tools\aueffectutil.mm) - Compiling . Fixed compling on OS X Sierra (machine\diablo_hd.cpp) . Fix for Clang 5 unused lambda capture errors . Changed the Clang workround for ../../../../../3rdparty/compat/winsdk-override\wrl/internal.h:23:13: error: function declared 'noreturn' should not return [-Werror,-Winvalid-noreturn] to work with Clang 5.0. 0.189 - New games: Kick Ball, Poosho Poosho, Tekken Battle Scratch and 'unknown 'Space Invaders' gambling game' - New Working games: Football Power, Forty-Love (Japan), International Toote II (v1.24, P387.V01), Night Gal Summer, TH Strikes Back and Virtua Bowling (Hong Kong, V101HJS) - New Non-Working games: Konnano Hajimete! (Japan), Magic Reels, Nurete Mitaino... - Net Idol Hen (Japan), Sengoku Mahjong Kurenai Otome-tai (Japan), Sexy Gal Tropical [BET] (Japan 850805 SXG T-02), Super Game (Sega Master System Multi-game bootleg) (alt games) - New clones: 1943: Midway Kaisen (Japan), Alligator Hunt (unprotected, set 2), B.Rap Boys Special (World), Carrier Air Wing (USA 901130), Cool Minigame Collection (Italy), Crash Road (bootleg of Space Chaser), Crazy Climber (US set 2), Crime Fighters 2 (Japan, 4 Players, ver. N), Daiku no Gensan (Japan, M82), Derby Owners Club World Edition (Rev B), Dirt Devils (Japan, Revision A), DoDonPachi III (World, 2002.05.15 Master Ver), Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 2), Mega Zone (program code L), Ordyne (World), Popeye (Japan, Sky Skipper hardware, Older), Port Man (Japan), Print Club (World), Street Fighter (World) (protected), Street Fighter II: The World Warrior (Quicken, bootleg), Super Athena (bootleg), Super Chase - Criminal Termination (1992/01/18 18:29:18 CHASE 3 VER 1.3O, prototype), Trigger Heart Exelica (Japan) (GDL-0036), Vamf x1/2 (Europe, version 1.0.0903), Virtua Fighter 4 Evolution (Version B) (Japan) (GDS-0024C) and WWF Superstars (US revision 6) - New AGEMAME games: Honey Pot (03J00241, NSW/ACT), Koala Mint (CHG1573, US) and Venice (02J02056, Venezuela) - New PinMAME games: Goldeneye (4.02) and Star Wars (1.06, Display S1.05) - Removed games: Koala Mint (CHG1573, US, set 2) - New drivers: magreel.cpp - New devices: cd4099, f9334, hc259, hct259, ipt_merge_all_hi, ipt_merge_all_lo, ipt_merge_any_hi, ipt_merge_any_lo, ls259, mb8421_mb8431_16, taitoio_yoke and tmpz84c015 - HD44801 CPU: Workaround related to MT06638 (Exception when using -debug); this disables a poorly implemented disassembly feature to prevent assertion failures and crashes when debugging drivers using HD44801 CPU (champbas.cpp, equites.cpp and shougi.cpp). Get rid of next_pc tables (cpu\hmcs40\hmcs40d.cpp) - I386 CPU: Created explicit i386dasm include for x86 DRC - I8086 CPU: Added support for IF status and segreg address spaces - M6502 CPU: Correct cycle counts for undocumented $BF instruction (om6502.lst). Note: Passes now the Lorenz testsuite-2.15's cputiming.prg and does not break laxay.prg. Ref: NMOS 6510 Unintended Opcodes no more secrets (v0.91 - 24/12/16) http://csdb.dk/release/?id=152327 page 14 ($BF) cycles = 3 to read and 4+1 if page boundary. - MC68340 CPU: Added implementations for VCO clock synthesizer and Timer module Counters, IRQs and one operational mode. - V25 CPU: Make IDB register state visible to debugger - Irem M72 Audio: ACCESSING_BITS cleanup (m72_audio_device; m72.cpp, m90.cpp, shisen.cpp and vigilant.cpp) - MSM5205 and MSM6585 sound: Delay data capture timing (should help with synchronization later) - Seibu Sound System: Use 8-bit handlers for main CPU accesses (audio\seibu.cpp) - Sound Interface . Soundlatch modernization in amspdwy.cpp, brkthru.cpp, btime.cpp, buggychl.cpp, dassault.cpp, dec0.cpp, flstory.cpp, gaelco.cpp, lsasquad.cpp, m107.cpp, madalien.cpp, nycaptor.cpp, progolf.cpp, rpunch.cpp, shangha3.cpp, sidepckt.cpp, splash.cpp, tagteam.cpp, tbowl.cpp, toaplan2.cpp and tubep.cpp . Synchronize machine\gen_latch.cpp at start to ensure broadcast of initial "not written" state. This fixes sound in Onna Sanshirou and makes the N.Y. Captor hack unnecessary. - Yamaha YMW-258-F sound: Confirmed Sega/Yamaha 315-5560 MultiPCM as Yamaha YMW-258-F - YM2151 sound: Emulate reset line - 8259 PIC: Removed hack used by M92 driver (HACK_get_base_vector(); machine\pic8259.h) - CD-ROM: Added cdrom_get_chd (Get a handle to a CHD from a cdrom; util\cdrom.cpp) - HuC6260 video: Fixed B&W mode in (MESS) PC Engine 'Son Son II' causes total palette corruption (ID 06641) - Imgtool . Changed a pointer to a reference and fixed a std::string(nullptr) bug (imgtool\imgtool.cpp) . Proper cleanup of floppy object after create/open failure (imgtool\iflopimg.cpp) . Merged normalize_filename() into cannonicalize_path() and C++-ification . Eliminated Imgtool-specific rand() function. Changed another charconverter access. . C++-ification of imgtool_forkent structure . Made the logic for B&W icon able to handled non-masked set pixels for (MESS) Classic MacOS images (imgtool\modules\mac.cpp) . Fixed features.supports_geticoninfo. Fixed the "GET" command (imgtool\imgtool.cpp) - Irem Custom: VCK modernization and removed unnecessary subdevice resets (audio\irem.cpp and sound\msm5205.cpp; m52.cpp, m57.cpp, m58.cpp, m62.cpp and travrusa.cpp) - MOS6526 CIA: Show state of registers that can be read without side effects in debugger - TTL . New 74LS259/9334/CD4099 devices . These humble 16-pin logic devices were commonly used in 8-bit arcade games to control coin counters/lockouts, IRQ flipflops, graphics banking, slave CPU reset lines, discrete audio triggers, screen flipping, serial EEPROMs and much else. Over 100 drivers and a few bus devices have been updated to use the new implementation, and a great deal of research has gone into documenting the physical location of these devices on actual PCBs in the source. Write handlers have been provided for both orthodox and somewhat less conventional memory mappings. . Added coin counters and/or lockouts to Atari System 1 games, Basketball, Gauntlet, Gyruss, Hana Yayoi, Hole Land, Jr. Pac-Man, Mahjong Sisters, Pooyan, Roc'n Rope, Squash, Thunder Hoop, Time Limit, Time Pilot '84 and many others. This also cleans up coin counter behavior in Sauro and Rally Bike. . Note: The purpose of committing this change, which has been several months in the making, early in the 0.189GIT cycle will be to allow time for fixing potential regressions; I've fixed a number of drivers that lost sound from this for various reasons (hnayayoi.cpp having missing or garbage ADPCM was particularly painful, since the three games in that driver all work slightly differently), but I can't test all affected drivers exhaustively. @Tafoid, don't bother running automated screen capture comparison tests on this, as many drivers are now expected to have the screen flipped for the first few seconds after reset. . Make 74LS259 configuration member const, avoid Object and object distinguished only by case in one line, use MAME_ prefix on all include guards to make it easier to deal with them in -dM (dump preprocessor macros) output. . Added write_d1 handler . Added 74LS259 device to ambush.cpp, asteroid.cpp, atarisy1.cpp, bagman.cpp, cclimber.cpp, centiped.cpp, champbas.cpp, changela.cpp, cinemat.cpp, circusc.cpp, cloak.cpp, cloud9.cpp, clshroad.cpp, cortex.cpp, crgolf.cpp, ddenlovr.cpp, dynax.cpp, equites.cpp, fastfred.cpp, firefox.cpp, freekick.cpp, funkybee.cpp, gaelco.cpp, gaelco2.cpp, gaelco3d.cpp, galaga.cpp, gauntlet.cpp, gladiatr.cpp, glass.cpp, gng.cpp, gomoku.cpp, gridlee.cpp, gyruss.cpp, harddriv.cpp, hnayayoi.cpp, holeland.cpp, hyperspt.cpp, jedi.cpp, joctronic.cpp, jp.cpp, jpms80.cpp, jrpacman.cpp, junofrst.cpp, kchamp.cpp, kyugo.cpp, ladybug.cpp, liberatr.cpp, looping.cpp, m63.cpp, mappy.cpp, marineb.cpp, mario.cpp, mastboy.cpp, megazone.cpp, mermaid.cpp, mikie.cpp, mirax.cpp, mjsister.cpp, mouser.cpp, nemesis.cpp, pacman.cpp, pandoras.cpp, pengo.cpp, playch10.cpp, polepos.cpp, pooyan.cpp, punchout.cpp, rallyx.cpp, retofinv.cpp, rocnrope.cpp, rollrace.cpp, sauro.cpp, sbasketb.cpp, shangkid.cpp, shougi.cpp, skyarmy.cpp, slapfght.cpp, sonson.cpp, spcforce.cpp, splash.cpp, stactics.cpp, targeth.cpp, thepit.cpp, thoop2.cpp, timelimt.cpp, timeplt.cpp, toaplan1.cpp, tomcat.cpp, tp84.cpp, trackfld.cpp, tsamurai.cpp, tubep.cpp, turbo.cpp, tutankhm.cpp, vastar.cpp, warpwarp.cpp, wiping.cpp, wrally.cpp, xorworld.cpp, zaccaria.cpp and zaxxon.cpp . Added 74HC259 device to de_3.cpp (video\decodmd1.cpp) and neogeo.cpp . Added F9334 device to avalnche.cpp, bsktball.cpp, canyon.cpp, copsnrob.cpp, destroyr.cpp, dragrace.cpp, flyball.cpp, orbit.cpp, sbrkout.cpp, skydiver.cpp, sprint2.cpp, sprint4.cpp, sprint8.cpp, starshp1.cpp, starwars.cpp, subs.cpp, triplhnt.cpp and ultratnk.cpp . Added CD4099 device to tankbatt.cpp . Driver and audio cleanups for asteroid.cpp, avalnche.cpp, copsnrob.cpp and playch10.cpp . dynax.cpp: Fixed blitter IRQ acknowledgment in most games. Use bankdev for gekisha and tenkai. . jp.cpp: Added ADPCM sound system used by some game . mappy.cpp: Clean up I/O handlers. Don't pulse the reset line when it's already being asserted. This allows Mappy and Pac & Pal to boot again (machine\namcoio.cpp). . mario.cpp: Added coin counters . spcforce.cpp: Added coin counters, start lamps and addressable latch device. . starwars.cpp: Put 'esb' bank2 in memory map so DEVCB can find it . tankbatt.cpp: Improved handling of sample triggers (fire sound is no longer doubled) - uPD4701 counter: Added read-triggered X reset & Y reset routines to device - V-System C7-01 GGA: Document some pins and clocks - Voodoo GFX: Updated comments for PCI config registers (video\voodoo_pci.cpp) - aerofgt.cpp, f1gp.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp and welltris.cpp: Clock all Video System GGAs - aristmk5.cpp . Driver update. Fixes some sets. . Redumped Koala Mint - atlantis.cpp: Use standard way of handling keypad inputs - bublbobl.cpp and missb2.cpp . Reimplemented sound cpu semaphores and sound NMI according to schematics. . Implemented sound semaphores into Tokio / Scramble Formation as well, fixing SOUND ERROR in test mode. Added notes about sound cpu addressing. . Reimplemented /SRESET as a separate function called on sound cpu reset according to schematics. . Added correct watchdog to Bubble Bobble and Tokio and disabled it on clone Bubble Bobble (prototype on Tokio hardware). . Added proper 'wired-or' sound cpu IRQs to Bubble Bobble. Renamed 'slave' cpu to 'subcpu' to match schematics. . Added NMI back to Miss Bubble II. Fixed some potential reset issues and made 'soundnmi' a required device. - bwing.cpp: PSG and DAC correction - csplayh5.cpp: Added dipswitches - dec8.cpp: Sound IRQ timing from schematics. Eliminated timer_set. - deco32.cpp . Rewritten interrupt handling. Input repetition removal and labels. . Locked 'n Loaded: Improved X axis gun input. Added raw_params and fixed second OKI frequency, matching other games in the driver. Improved lightgun support. Note: It's now possible to actually play the game to some extent assuming you recalibrate the guns by holding both service buttons. Game randomly crashes tho so not yet markable as working. - decocass.cpp . Major improvements to colors and graphics layer priorities . Implement the PRI2 pen modification effect. This makes the tunnels and headlight in Highway Chase look much more accurate, and makes some color changes work in Astro Fantasia. . Shadow color in Skater is now properly black (not a pen modification effect) . Correct background fill color, making high score screen in Super Doubles Tennis properly blue. - dynax.cpp . Reduced log spam in Mahjong Gekisha. Added alternate flyer title note: Mahjoung Expose. . Changed CPU type to TMPZ84C015 in mjelctrn, mjembase, majxtal7 and neruton and improved interrupt handling . Use address map bank device for most games in this driver. Many of these games will now successfully retrieve the local time at the start through an RTC device previously treated as read-only. . Added blitter IRQ ack to Mahjong Tenkaigen; doesn't fix interrupt problems. - flstory.cpp . Fixed CPU communication issue that sometimes caused sound to disappear entirely . Eliminated NMI trampolines - fromance.cpp: Use gen_latch and added GGA clocks - gaelco2.cpp . Added some workarounds to Play 2000 so that it actually boots. Fixed gfx rom loading. . Bang! supposed to have not PORT_IMPULSE - gaelco3d.cpp . Increased TMS ROM region, makes Football Power players models visible. . Added analog inputs. Better Football Power ball mechanic simulation (Game now playable). . Fixed EEPROM access (MCFG_EEPROM_SERIAL_ENABLE_STREAMING) - gaiden.cpp: Acknowledge main IRQ - galaxia.cpp: Restored original refresh rates to Galaxia/Astro Wars, fixes wrong sound for time being. Speed issues still need to be figured out, perhaps something relating to S2650 interrupts?. - galpanic.cpp and kaneko16.cpp: Disentangle dependencies - igs011.cpp . Decrypted clone Virtua Bowling (Hong Kong, V101HJS) and added its own bitswaps for IGS003 and IGS011 . Found dipswitches to perform a protection test in Virtua Bowling. Changed IGS012 mode toggling to pass the test. . Changed IGS003 command 48 in Long Hu Bang II and Virtua Bowling to potentially work in more cases (based on Long Hu Bang II tables) - jangou.cpp and nightgal.cpp . Rewritten blitter setters (video\jangou_blitter.cpp) . Fixed Night Gal Summer GFX ROM out of bounds accesses. Fixed rom loading. Added preliminary protection emulation (Game now playable). . Fixed gfxs for Sexy Gal and clone Sweet Gal. Added audio CPU (NSC8105) to Sexy Gal. For clone Sweet Gal this definitely doesn't exist (PCB photo). - kaneko16.cpp . Further organizational cleanups . Removed shadowing RAM with ROM in sound CPU. - m107.cpp: Removed IRQ hacks - midvunit.cpp: Better documentation for Midway V-Unit wheel board. Added part numbers. - mlanding.cpp and taitoair.cpp . Wrote a new device for Taito yoke-based inputs (found in Midnight Landing and Top Landing). . Added screen raw parameters to Taito Air System, fixes pilot acknowledge sound sample timing. Mark missing Mecha rom as undumped. . Added coin counters and Yoke device to Midnight Landing, fixed throttle counter (it's 12 bits). - naomi.cpp: Atomiswave security notes (machine\awboard.cpp) - royalmah.cpp . Changed CPU type to TMPZ84C015 in Janputer '96 and Janputer Special (Japan). Changed drive interrupts through internal CTC. . Completed dipswitches for Mahjong If (ID 05608) . HOLD_LINE cleanup - seattle.cpp . Buffer multiple writes for PCI stall (machine\gt64xxx.cpp). Fixes triangles flicker in California Speed (ID 06636). . Set proper NFL Blitz '99 dipsettings . Added gearshift to California Speed (ID 00975) . Fixed Hyperdrive brake button doesn't function in calibration (ID 00470) - seibuspi.cpp: Provide full chip name and standard oscillator frequency (machine\ds2404.cpp) - shangkid.cpp . Redo interrupt handling based on Chinese Hero schematics. This fixes sounds get really screwy in the later levels of Shanghai Kid (ID 01005). . Added coin counters - spinb.cpp: Correct ADPCM type for jolypark and vrnwrld - supbtime.cpp: IRQ modernization - toaplan2.cpp . Added HD647180X MCU dumps to Ghox and Pipi & Bibis / Whoopee!! (Teki Paki hardware), allowing for sound emulation in both of them. This also fixes the high score table background in Ghox, which was also MCU related (ID 04024) and a small bit of garbage on the ending screen (ID 04049). . Correct the decryption of some V25 opcodes used in the EEPROM service routine. Removed the ugly FixEight EEPROM routine that hardcoded a region for each set. Added and document a secret input that rewrites the EEPROM for any region. - vegas.cpp . Re-added blitz00_nov30_1999.u27 rom. Mark as BAD_DUMP and added patch to fix. . Correct DIPs for Gauntlet Dark Legacy and Road Burners . Added 16550 UART subdevice (machine\vrc5074.cpp). This fixes Gauntlet Legends randomly freezes (ID 01991). - zaccaria.cpp: Improved documentation. Note: The protection device at 1A on the ROM board (1B11147) is unidentified on the schematics but appears to be a PAL16L8 or PAL16R4. It sits on bits 4-7 of the data bus, and is read from locations where only bits 0-3 are connected to regular devices (6400-6407 has 4-bit RAM, while 6c00-6c07 has a 4-bit input port). - Beraboh Man: Fixed joystick dropping inputs bug for crouching/running actions - Buggy Challenge: Correct clocks and added sound semaphores. Replaced AY-3-8910A sound with YM2149. - Chanbara: Identified sprite flip X bit (player sword thrusts) - Change Lanes: Changed default DIP setting to keep coin counters separate. Workaround for mistaken activation of test switch due to LS259 changes. - Combat School . Fixed wrong priority in the drill instructor screen (ID 06259) . Improved interrupt handling in clone Combat School (bootleg) - Data East Cassette System Multigame . Replaced gross hack for banking "dongle" with something likelier . Fixed Treasure Island sprites and removed stray Unicode character - Desert Gun: Replaced bad rom in clone Road Runner (Midway) and added notes - Dragonball Z: Fixed 'Language' and 'Demo Sounds' dipswitches (ID 05788) - Forty-Love: Added input labels, promoted clone Forty-Love (Japan) as working. - Funny Strip: Separate driver state class - Gyruss: Added missing DIP location for DSW3. Fixed dipswitches for clone Gyruss (Centuri). Added correct labels and locations to clone Gyruss (Centuri). Fixed labels for clone Gyruss (bootleg?). Updated diagnostic ROM info. Adjust some memory region sizes. Removed unused DRIVER_INIT. - Hanafuda Hana Tengoku: Use address map bank device - Hebereke no Popoon: Better documentation - Jockey Club . Added layout with keyboards. Clean up inputs and added own dipswitches. Correct RTC and emulated hoppers. Hook up outputs, NVRAM and trackball (for hidden editor). . Promoted clone International Toote II to working - Jockey Club II: Greatly simplify the layout files jclub2.lay and jclub2o.lay thanks to the new group feature - Karate Champ and King of Boxer: Identified DAC type - King of Boxer: NMI modernization - Legend of Silkroad: Base OKI clocks on OSC values. Note: PCB pic reveals no resonators so the clock is based off of either 32MHz or 3.579545MHz. Old guessed values where 1.056MHz and 2.112MHz so new values are 32MHz/32 & 32MHz/16 for 1 & 2 MHz respectively. - Midnight Landing: Added coin counters - Mirax: Changed PSG type to AY-3-8912A and use device finders - Ninja-Kid II: Fixed missing sound in Ninja-Kid II and clones (ID 06645) - Ordyne: Ordyne and clones uses an older IO MCU ROM (sys2_c65b.3f). Clean ROM labels as per PCB photos. Documented sprite zoom table rom. - Pengo: Added partial dipswitches for clones Pengo (bootleg on Pac-Man hardware, set 1) and (bootleg on Pac-Man hardware, set 2) (ID 05945) - Penguin Adventure: Added start/continue button, this partially fixes game resets itself in stage 4 (see MT04528). Note: A timer apparently expires when beating stage 4 (signalled by a long beeping sound). Player needs to insert another credit and press start button (?) in order to continue. Is this timer supposed to be shown on screen or there are additional 7-LEDs not handled? - Poker Ladies: Added PALs and EEPROM dumps to clone Poker Ladies (Leprechaun ver. 401), also correct rom labels. - Return of Lady Frog: Added NMI ack - Salamander: Improved VLM5030 control - Shadow Warriors: Implemented dual OPN + dual MSM5205 ADPCM sound system for clone Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden) as in Automat - Shock Troopers: Swapped Shock Troopers sets since what was known as set 2 is actually a newer revision than set 1, as per MAME parent-clone policies parent must be the newer revision. - Street Fighter II': Champion Edition: Correct dipswitches for clone (Accelerator Pt.II, bootleg) (ID 05277) - Teki Paki: MCU soundlatch modernization and cleanup - Tetris (Japan, System E): Fixed 2-Player mode (ID 06644) - TH Strikes Back . Added new DS5002FP SRAM dump (Game now playable). Note: Dumped from 3 boards, reconstructed with 2/3 wins rule, all bytes verified by hand as correct. There is a priority bug on the title screen (Gaelco logo is hidden by black borders). It seems sprite priority is hacked around on most of the older Gaelco drivers. . Added PCB layout - Thunder Zone . Created MB8421/MB8431 16-bit expanded variant and added it to Thunder Zone/Desert Assault . Acknowledge IRQs - Trick Trap: Fixed tile-sprite priorities, mostly visible when exiting an area in most stages (ID 04872). - Virtua Striker 4 Ver.2006 (Japan): Redumped GDROM - Input port . Fixed up input_merger: Added more variants, synchronisation and save state support and removed dubious reset behaviour (machine\input_merger.cpp; drivers\aristmk5.cpp, beezer.cpp, buggychl.cpp, rpunch.cpp, includes\btime.h, bublbobl.h, flstory.h, kingobox.h, lsasquad.h, nycaptor.h and audio\efo_zsu.h (cedar_magnet.cpp and play_3.cpp)). . Use input merger device for btime.cpp . Return explicit "file not found" error if inp file isn't found on playback, added error code number to any other error found (emu\ioport.cpp). - Save state: Fixed new load/save state menu does not respect -statename (ID 06621) - Dipswitch fixes in changela.cpp, cps1.cpp, csplayh5.cpp, dbz.cpp, dynax.cpp, gyruss.cpp, m90.cpp, namcos2.cpp, pacman.cpp, royalmah.cpp, seattle.cpp and vegas.cpp - Fixed rom names in gyruss.cpp, kaneko16.cpp, mitchell.cpp, pacman.cpp, pastelg.cpp, segae.cpp, seta.cpp, shangha3.cpp and snk6502.cpp - Description changes of 1943: Midway Kaisen (Japan, no protection hack), Ai-mode - Pet Shiiku (Japan), Alligator Hunt (unprotected, set 1), Brave Firefighters, Cosplay Tengoku 7 - Super Kogal Ranking (Japan), Crazy Climber (US set 1), DoDonPachi Dai-Ou-Jou V101 (Japan, 2002.04.05.Master Ver), DoDonPachi Dai-Ou-Jou V100 (Japan, 2002.04.05.Master Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07.Black Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07 Black Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion), Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 1), Donkey Kong Junior (Japan set F-1), Goldeneye (4.04), Koala Mint (CHG1573, US), International Toote (Germany, P523.V01), International Toote II (v1.24, P387.V01), Jockey Club (v1.18), Mahjong Mogitate (Japan), Mario Bros. (Japan, Revision C), Mega Zone (program code I), Mega Zone (unknown program code 2), Mega Zone (program code J), Mega Zone (program code H), Mega Zone (unknown program code 1), Neo Geo CTHD Protection (bootleg) (ID 06649), Nibbler (Pioneer Balloon conversion - rev 6), Nibbler (rev 9, alternate set), Night Gal Summer [BET] (Japan 850702 NGS 0-01), Star Wars: Racer Arcade, Star Wars Trilogy Arcade (Revision A), Star Wars Trilogy Arcade (ID 06659), Vamf x1/2 (Europe, version 1.1.0908), Vamp x1/2 (Korea, version 1.1.0908), WWF Superstars (US revision 4) and WWF Superstars (US revision 7) - Renamed (1943ja) to (1943jah), (brapboysj) to (brapboyspj), (brapboysu) to (brapboyspu), (cawingu) to (cawingur1), (inttootea) to (inttoote2), (ordyne) to (ordyneje), (podrace) to (swracer), (grtesoro) to (play2000a), (grtesoro4) to (play2000), (megazonec) to (megazoneh), (megazoneb) to (megazonej), (megazonea) to (megazoneb), (megazonei) to (megazonea), (megazone) to (megazonei), (shocktro) to (shocktroa), (shocktroa) to (shocktro), (vendetta2p) to (vendetta2pw), (vendettaj) to (vendetta2pp), (vf4evo) to (vf4evob), (wwfsstaru) to (wwfsstaru7) and (wwfsstarua) to (wwfsstaru4). - MAME . VIDEO RENDERING SYSTEM . Reduced weight of render.h by moving component specialisation declarations into emu\rendlay.cpp . Added support for layout item groups, replaced simple_list with more appropriate containers, removed misleading const qualifiers and reduced repeated XML walking (build\complay.py, emu\render.cpp/h and rendlay.cpp). Groups aren't parameterised, so they aren't as useful as they could be. However, it's already useful for putting a common set of elements in multiple views, potentially at different locations/scales. See intlc44.lay and intlc440.lay for examples of the level of copypasta this can eliminate. Be aware that groups with explicit bounds don't clip thair content, it's only used for calucating the transform matrix. Get rid of string hashes when fetching output values in layout rendering. . Get rid of forced sleep in emu\video.cpp . PNG . Added minimal support for reading Adam7 interlaced PNG (emu\rendutil.cpp and util\png.cpp). Note: Decompression and unfiltering is fully supported, at least for all the pixel formats that previously worked. Expanding 1/2/4bpp to 8bpp should work properly, too. Bitmap mapping for Adam7 is only implemented in rendutil.cpp which is whate everything in MAME uses. The function in png.cpp (used by pngcmp) has not been updated. At some point I'll unify at least one of the functions in rendutil.cpp with the one in png.cpp and we can go from three functions that need to do the mapping down to two at the most. . Unified code for copying PNG data into bitmap for MAME and pngcmp. Fixed upsampling of monochrome PNGs (need to splat across byte). Added support for greyscale+alpha. Detect more unsupported conditions rather than just behaving badly. Support 16-bit samples. . Support greyscale with transparent pen, encode/decode text chunks as UTF. Fixed indexed transparency. . DEVICE . Fixed -slot card, bios=rev (selected BIOS was being applied to slot itself, not card) . Added address-shifted versions of AM_DEVREAD/_DEVWRITE/_DEVREADWRITE. These new macros make it easy to map devices addressed using higher address lines (which on actual HW helps to reduce loads on the lowest address lines) without needing to set up custom handlers and associated device finders. The implementation should not impact the efficiency of the core memory system since the semantic details are contained within C++11 lambdas. Improved way to transform offsets for AM_DEVREAD/_DEVWRITE. Replaced AM_DEVREADWRITE_RSHIFT with a similar but more functional-looking interface (now known as AM_DEVREADWRITE_MOD), which also now supports address line inversion as well as shifting (drivers\equites.cpp, gaelco.cpp, gaelco3d.cpp, goodejan.cpp, gridlee.cpp, legionna.cpp, r2dx_v33.cpp, raiden2.cpp, splash.cpp, taito_l.cpp, thoop2.cpp, timeplt.cpp and wrally.cpp). . UI . Eliminated use of hairline spaces for alignment in the info box (ui\selgame.cpp, selmenu.cpp and ui\text.cpp) . Use aggregate emulation status in UI menus, expose more flags in info box. Use aggregate flags for -ui simple as well. . Added indication for presence of analog controls and keyboard inputs in info box (ui\selgame.cpp). . Greatly reduce copy/paste code for drawing menu header/footer boxes. Display full name of selected slot device below slots menu. Fixed spacing on dircetory configuration menu. Fixed minimum/maximum for UI font rows per screen setting. . Fixed info box navigation when system selection menu doesn't have focus . Make filter names localisable, fixed keyboard navigation of software filter box, encapsulate a couple more things in selmenu and friends, get rid of hacks in selector tying it to implementation details of other menus. Note: This turns the filters into polymorphic objects that will be more manageable and not require so much copy/pasting when updating APIs. . Polymorphic machine\software list filters: Localisable filter names. Uniform interface for most filters without far less special-casing. Stacking year/manufacturer/etc. does OR rather than useless AND. Prevent stacking contradictory filters (e.g. parents and clones). Fixed alignment of filter list. Removed most of the lambdas added the other day. There's no longer an implicit "not BIOS" filter. Can't add (un)available to custom machine filter (will address). . Improved layout of art/info box, support mouse wheel scroll in info text, allow home/end to jump to beginning/end of filter list, consolidate logic. A number of vestigial constants have been removed. Some hacky input types that were just used as a trick to pass information between menu functions are gone. MACHINE_NO_STANDALONE is a relic from when drivers were used as arbitrary ROM containers, and in a world of first-class devices this is no longer necessary. . Don't process every character individually when searching, this reduces lag if you keep typing while a big list is searched. . Make category filter work like all the other filters: Category filter is now saved/restored if it's last used. Category filter can be used in composite custom filters. Less confusing when no categories found. De-duplicated code for drawing category list. . Fixed software art/info display when keyboard focus leaves software selection list, consolidate more logic, more code deduplication, fixed gutters on dats view and fallthrough from dats to save. There's some weirdness with shortcust for dats/export/favourite toggle if they result in a character being typed. . Save/restore images/info selection in right panel . Fixed selecting a slot to fill for "EXP" causes Fatal Error in (MESS) C64 (ui\slotopt.cpp) (ID 06657). Note: The source of the issue is that the logic for rotating slot options was broken. It would count selectable options and skip over options that were not selectable, except for the specific scenario where the index was zero. I ended up largely replacing the logic to be more C++-ish. . Added a not BIOS machine filter (useful in composite filters), support RGB PNG with transparent pen because why not. . Clean up some of the UI filter stuff, show list descriptions rather than names when choosing list to filter on. Fixed a localisation issue and a loop bounds issue. . Make (Un)Available a polymorphic filter (works in custom filter again). Fixed bugs and improved performance of code for detecting systems without ROMs. Show progress while auditing ROMs. Use actual INI file format for mame_avail.ini. . Fixed crash on invalid/empty/outdated ui.ini . LUA engine . Added debugger manager support . Refactor server_{ws,http}.hpp into separate interface and implementation headers. When shutting down the HTTP server, also explicitly stop the asio::io_context (emu\http.cpp). . PLUGINS . Catch errors in cheat scripts and preliminary breakpoint/watchpoint support (cheat\init.lua) . Added GDB stub plugin . Use 2 column format and clean up some parse errors (plugins\data\data_story.lua and load_dat.lua) . Added MARP scores plugin . Updated hiscore.dat . Moved unimplemented/imperfect flags from machines into devices. Allows dynamic warning flags depending on slot configuration. Unclutters GAME/CONS/COMP/etc. definitions where a family of machines or a device have the same flags. Allows more combinations of flags. Right now, flags for unemulated/imperfect features apply at system level. This falls over quickly with systems that have slot devices. For example you can plug in a broken sound card or keyboard on a PC or Amiga driver and get no warnings. There's also no way to propagate these flags from a device to all systems using it. This changeset addresses these issues. It's now possible to report unemulated/imperfect features on a device level with static unemulated_feeatures() and imperfect_features() member functions. So far the only thing using this is the votrax device. To support front-ends, this is exposed in -listxml output as a new "feature" element that can appear in system/device descriptions. It has a "type" attribute indicating which feature it is, potentially a "status" attribute if the device itself declares that the feature is unemulated/imperfect, and potentially an "overall" attribute if the device inherits a more severe indication from a subdevice. The embedded DTD describes possible values. Example: device/machine declares imperfect sound: . Example: device/machine declares unemulated keyboard: . Example: device declares imperfect controls but inherits unemulated controls from a subdevice: . Example: device doesn't declare imperfect LAN but inherits it from a subdevice: . It's still possible to add these flags to machines in the GAME/COMP/CONS macro. If the state class declares them with static member functions, the two sources will be combined. If you subclass a device, you inherit its flags if you don't redefine the relevant static member functions (no override qualifier is necessary since they're static). The UI has been updated to display appropriate warnings for the overall machine configuration, including selected slot devices, at launch time. The menus don't display overall status, only status for the machine itself. We can make it scan subdevices if we decide that's desirable, it just needs caching to enure we don't take a huge performance hit. Trade MACHINE_IMPERFECT_KEYBOARD, MACHINE_NODEVICE_CAMERA and MACHINE_NODEVICE_WAN for MACHINE_IMPERFECT_CONTROLS: MACHINE_IMPERFECT_KEYBOARD is more applicable on keyboard devices - most of them should be devicified eventually. MACHINE_NODEVICE_CAMERA tends to apply across a family of machines, so it's easy to apply at state class level. MACHINE_NODEVICE_WAN isn't even used. MACHINE_IMPERFECT_CONTROLS is widely applicable, knock yourselves out adding it to GAME macros. Updated machines that were using MACHINE_IMPERFECT_KEYBOARD or MACHINE_NODEVICE_CAMERA to apply it at device or state class level. Added flag for imperfect timing. . Multi-Language . Update localisation .po files. Our localisations are rotting badly, so please update what you can for recent UI changes. Note that to run make translation you need to patch GNU gettext to support C++14 digit grouping. See the attached patch here: https://savannah.gnu.org/bugs/?50117 . Updated Chinese (simplified/traditional), German, Greek, Italian, Japanese, Portuguese (Brazil), Russian, Serbian, Serbian (Cyrillic), Spanish, Swedish and Turkish translations. . Added "minimaws" scripts, a reference -listxml consumer (implemented with Python/WSGI and JavaScript): Provides verbs for loading data, some basic batch queries and an interactive web server mode. Serves linked HTML pages for machines, devices and source files. Demonstrates how to dynamically discover slot/BIOS options from static -listxml output. Allows user to build a slot configuration and shows necessary command-line arguments or INI lines to produce it in MAME. As a side effect, this provides additional validation of -listxml output, several issues and limitations were addressed. . Fixed -sleep and -refreshspeed options (MAME will no longer use 100% of a CPU core for the least demanding systems; emu\emuopts.cpp) . Validity . Fixed description check (emu\validity.cpp) . Validate BIOS names and fix most errors found: Error on characters other than [a-z0-9.-_] in name. Error on duplicate name or description and Error on non-existent default BIOS. - MAC OS X . Use proper font metrics and handle space glyphs with null bounding box on OS X. . Handle fonts where space glyphs return a null bounding box (e.g. Hiragino family) restore ability to localise info box headings (font\font_osx.cpp). - Android: Modification for Android build (NDK r14b, build-tools 21.1.2 and gradle 2.2.1) - Compiling . Work around GCC ambiguous template error (emu\output.h) . Removed a whole lot of I64 from format strings. There are a couple of issues here: Firstly, the determining factor for whether I64 or ll is needed as the size qualifier doesn't depend entirely on whether you're using MSVC or not, it depends on the C runtime library. The msys64 C runtime apes the Microsoft runtime and requires I64 as well, so a lot of files where LLFORMAT had been copy/pasted wouldn't work right if you depeneded on it anyway. Secondly, one of the major benefits of util::string_format, util::stream_format and logerror in their current forms is that you don't need size specifiers for integers at all (unless you're using them to truncate a value, but in that case you're better off casting the argument for clarity). If you do use them, logerror and friends will accept both Microsoft- and SUS-style independently of the C runtime. . Moved additional content for release archive from build repository to main repository (artwork\apertureXXXXX.png, artwork\scanlines.png, ctrlr\hotrod.cfg, hotrodse.cfg, scorpionxg.cfg, slikstik.cfg, ctrlr\xarcade.cfg and dist.mak). - Debugger: In the windows debugger log window added a Log/Clear menu to removed all logged messages 0.188 - New games: Deco Cassette System Multigame (ROM based), Go Go Cowboy (English, prize) and Legend (SNES bootleg) - New Working games: Black Touch '96, Explorer (DECO Cassette) (US), Frogger (bootleg on Amigo? hardware), Mega Double Poker (conversion kit, version 2.3 MD), Ron II Mah-Jongg, The Roulette (Visco), Sega Ninja (315-5113), Touch & Go and World Rally 2 - New Non-Working games: Abnormal Check, Ai-mode - Pet Shiiku, Block Pong-Pong, Casino Strip, Casino Strip IX, Casino Strip VIII, Dam Dam Boy, DVD Select (Japan), Mahjong Gal-pri - World Gal-con Grandprix (Japan), Mahjong Hanafuda Cosplay Tengoku 6 - Junai-hen (Japan), Mahjong Mogitate, Need for Speed - 4 Cab Link (2 Discs) (v1.0.1 Rev B), Need for Speed GT (Hard Drive+2 Discs) (v1.1.0 Rev C), Percussion Freaks 4th Mix (G*A25 VER. AAA), PokoaPoka Onsen de CHU - Bijin 3 Shimai ni Kiotsukete! (Japan), Renai Mahjong Idol Gakuen (Japan), Super Derby II, Tsuugakuro no Yuuwaku (Japan) and WaiWai Drive - New clones: Act-Fancer Cybernetick Hyper Weapon (World revision 3), Bubble Bobble (prototype on Tokio hardware), Cobra-Command (World/US revision 4), Fighting Vipers (Revision B), Golden Poker Double Up (bootleg), Kageki (World), Logger (Rev.2), Motocross Go! (MG2 Ver. A, set 2), New Super Triv III, The Ninja Warriors (World, earlier version), Operation Wolf (Japan, SC), Return of the Invaders (bootleg no MCU set 3), Return of the Invaders (bootleg w/MCU), Silk Worm (prototype?), Solar Assault (ver JAA), Solar Assault Revised (ver JAA), Space Invaders (Nas Corp bootleg), Street Fighter II: The World Warrior (Japan 911210, CPS-B-17), Super Triv (English questions), Taisen Idol-Mahjong Final Romance 2 (Japan, newer), Tazz-Mania (Rodmar bootleg), Tetris (v341R), Triv Five Special Edition, Virtua Striker 4 (Export) (GDT-0014), Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B), War: The Final Assault (EPROM 1.91 Apr 13 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999), World Kicks PCB (World, WKC2 Ver.A) and Xevious 3D/G (World, XV32/VER.A) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Doraemon - Nobita no Dorabian Night and Majin Eiyuu Den Wataru - New PinMAME games: Beat the Clock (with flasher support), Dirty Harry (LF-2) and MAC Jungle - New PEPlus games: Player's Edge Plus (PP0006) Standard Draw Poker - New drivers: sderby2.cpp - New devices: cchip, deco_rmc3, fe2010_pit, gaelco_ds5002fp, i4040, m37720s1, nichisnd, ub8830d, upd78c11, z8601, z8611 and z8681 - New mame.ini options: dtd = 1 (FRONTEND COMMAND OPTIONS) - New artworks . aztarac, cfboy0a1, clowns, cocean1a, dankuga, dariusgx, decocass, dkongpe, dragrace, redalert, mslug2, solarq, spacedx, sprint1 and starshp1 . Updated default.lay for armora, astdelux, cobram3->cobra, gokuparo->fantjour, dfeveron->feversos, vfive->grindst, invaddlx, invaders, machridr->nvs_machrider, mahoudai->sstriker, motorace->travrusa, shippumd->kingdmgp, omegrace, warzard->redearth, seawolf, seawolf2, slyspy->secretag, solarq and vfive->grindstm - New Cheat.dat: http://www.mamecheat.co.uk/index.htm - DS5002FP CPU . Added dumped Dallas DS5002FP chips to TH Strikes Back, Touch & Go and World Rally 2 using the method published by Morten Shearman Kirkegaard and Peter Wilhelmsen as documented at http://www.afdelingp.dk/files/articles/ds5002fp/ds5002fp.pdf . Touch & Go and World Rally 2 are now playable. A 2nd verification pass is still needed on them from additional boards, as bad bits existed in World Rally 2 even prior to extraction (steering logic was broken but bad byte was identified and fixed as the code for that command handler was identical to World Rally 1) and TH Strikes Back is crashing at the first boss (could also be a CPU core issue). . The DS5002FP SRAM for World Rally 2 has been dumped from 2 PCBs. The first had unused space filled as 0x00, the 2nd space was filled as 0xff. In addition, the first had 2x bad bytes and was partially patched out, so we're using the 2nd dump. . Glass was also dumped, but at the time the data wasn't extracted, only the code, and the board has since died, so needs redoing. Alligator Hunt was dumped and works, but not yet added, want to verify on a 2nd PCB first as the process does corrupt some bytes and a couple had to be handfixed, so the only way to know for sure is multiple dumps. . Made DS5002FP store battery-backed internal RAM and SFR registers as NVRAM. Made SFR defaults configurable in ROM loading like NVRAM defaults. Made external SRAM persistent as well (some games store scores etc. in it). Cleaned up Touch & Go dump and added preconfigured internal RAM. Created device for Gaelco protection module and removed remaining simulation code. . Clean up Galeco Dallas hookup device: There is no need for a second device for World Rally and Glass, it's the same thing. How the address lines are hooked up for host memory access is part of the driver and can be done with a mirror/mask in the address map provided by the driver. There's also no need for the SRAM trampolines in the device, that can be done entirely through address maps. The drivers need trampolines to do the address swizzling. We should be able to get rid of these when we get better support for 8-bit views of 16-bit components (dooyong drivers also have ugly trampolines for doing this kind of thing). - I4004 CPU . Rewrote 4004 core and disassembler: Renamed to MCS-40. Emulated 8-clock instruction cycle, interruptible at any point. Converted TEST input to an input line. Added SYNC and CM output lines. Added support for 4040 CY output, logical operations, extended registers, ROM banking and disassembly. Made I/O space mapping more flexible to support the variety of peripherals available. Notable missing features are 4040 interrupt and halt, and "program memory" space. . Make disassembler/debugger use syntax closer to what ASL accepts. Use 2D lookup to make debugger tables more compact. Allow 4-bit registers to be set independently. Save state fixes. Implemented WPM/RPM instructions. Expose some signals from a 4008/4009 or 4289. Can't use opram when program and opcodes are not related in the slightest. Check for disabled side-effects! Better reflection of 4289 timings for performing program read/write. . Added support for 4040 stop/ack and HLT instruction, hook up stop/single step buttons in (MESS) INTELLEC 4/MOD 40. . Splitted ROM and RAM port address spaces. Splitted RAM memory and status address spaces (no more read/modify/write). Fixed bug in FIN handling. Exposed cycle callback. - M377xx CPU: Preliminary M37720 support - M6800 CPU: Fixed LSR/ROR/ASR instructions set overflow flag (V flag) to 'N' XOR 'C' (ID 06624). Document more CPU types. - MB88XX CPUs: Converted MB88XX ports to DEVCB and removed generic device type (audio\namco52.cpp, namco54.cpp, drivers\arabian.cpp, strnskil.cpp, machine\namco50.cpp, namco51.cpp, namco53.cpp and namco62.cpp) - MC68340 CPU: Added configuration macros and callbacks for 8 bit ports A and B (machine\68340.cpp). Added 8 bit ports A and B, updated LOG system (machine\68340sim.cpp). - N2A03 CPU: Added auxillary output callback (machine\midwayic.cpp) - PIC16C74 MCU: Load recent CAPS0ff PIC16C74 MCU dump for croupier and croupiera, not hooked up for now. - TMP68301 CPU: Interrupt cleanups - DCS sound . Get audio to start working (audio\dcs.cpp) in Skins Game (1.06) . Re-enable speedups for external ram - Namco CUS30, YM2151 and YMF271 sound: Support dynamic changes to clock frequency - OKI6376 sound: Replaced custom handlers with device_clock_changed - Sound Interface . Soundlatch modernization in starwars.cpp and xain.cpp . exprraid.cpp: Use MCFG_GENERIC_LATCH_DATA_PENDING_CB . firetrap.cpp: Sound-related modernization. Use callback for soundlatch interrupt. Use modern MSM5205 callback and LS157 selector, and eliminate an instance of HOLD_LINE. Clean up some names. Added placeholder 8751 device. . gcpinbal.cpp: Modernized the callback of the MSM6585 sound . gladiatr.cpp: Hook up SSRST (sound reset) according to badly scanned schematics . magmax.cpp: Soundlatch modernization & various stuff from schematic . Make a few more methods const (emu\disound.cpp) . Added machine().side_effect_disabled to machine\gen_latch.cpp - TMS5110 and YMZ280B sound: Implemented device_clock_changed - TMS5220 sound: Use device_clock_changed instead of custom method and misc modernization - 6532 RIOT: Added some WRITE_LINEs to set individual port lines through callbacks - 6821 PIA: Logging improvements: Use logmacro.h interface. Removed device tags superfluous with modern logerror. Make LOG_SETUP actually handle something. - 8253 PIT: Handle slight Faraday FE2010 PIT incompatibility for (MESS) Commodore PC10 - Flash ROM: Fixed global variables (machine\intelfsh.cpp) - ISA: Added unmap_device method and in install16_device use I/O space width - Nintendo Custom: Fixed cpu\m6502\n2a03.cpp/h - NCR 5390 SCSI: Improved initiator transfer information logic. Split transfer count/counter. Added rudimentary 53c90a/53c94 support. Reworked initiator transfer information state machine: should now support all SCSI phases. Improved handling of dma/non-dma commands. Added an undocumented hack to make (MESS) InterPro work. Match updated 5390 device. Inherit memory map. Implemented interrupt status flag in status register for 53c90a, this is critical for (MESS) InterPro. Improved tcounter and dma/drq handling. - SCSI Hard Disk: Correction for INQUIRY with bad lun (machine\nscsi_hd.cpp) - Taito Custom . Created C-Chip device with correct CPU type in it and a bunch of notes (pinout etc.) (asuka.cpp, opwolf.cpp, rbisland.cpp, taito_f2.cpp, taito_x.cpp and volfied.cpp) . Created a uPD78C11 derived CPU type for this purpose, with internal ROM map. . Use internal ROM map for other uPD78C10 chips as it's always present . Added missing NO_DUMP definitions to various games using C-Chips with correct size etc. (bonzeadv, megablst, rbisland, superman and volfied) . Pump Mega Blast through the device code as really all it ever does is bank the C-Chip window and test the RAM . Load CAPS0ff C-Chip dumps for Operation Wolf and clones, checksum on MASK rom part passes, but game specific EPROM is still bad for the time being. Added small note about what's wrong with the C-Chip EPROM dump. . Put C-Chip stuff in Type X driver. Removed outdated comments. . Hooked up the four 'asic ram' shared bytes/semaphores/command registers between external cpu and the C-Chip and got rid of the 'return 0x01' hack for Mega Blast (achine\taitocchip.cpp). - Voodoo GFX: Fixup logging and implement actual vRetrace and hvRetrace functions - Z80 SCC: Basic wait/dma request implementation. Renamed WRDY to WREQ to match datasheet, minor touch-up. - atlantis.cpp: Save states supports static vectors natively (machine\vrc4373.cpp). Use actual M48T37 timekeeper. Minor cleanups. - csplayh5.cpp and niyanpai.cpp . Moved around DVD firmwares into 'nichidvd' BIOS set since it's common component. Parallel port is connected, unknown purpose tho. . Wrote a new device container for Nichibutsu sound HW, merged usage for csplayh5 and Niyanpai driver. . Added Nichibutsu High Rate DVD BIOS - crystal.cpp: Document P's Attack edge connector pinout which is non JAMMA. Correct pinout for gun connector & changed JAMMA to 56PIN connector. - dec8.cpp and karnov.cpp . Made DECO RM-C3 (custom palette) into a device used by DEC8 games . All Karnov driver games use now the DECO RM-C3 palette. This is really just a documentation change as the previous colour weighting was correct so there is no visual difference with this change. - decocass.cpp . Identified dipswitches for a number of DECO Cassette sets . Split decocass state class up so that the dongle types aren't polluting base class. Also added support for bootleg multigame and fixed regression caused by change in draw order. . Added roms from the DECO GRO DE-0091C-1 overlay PCB to Explorer (DECO Cassette) (US) - docastle.cpp: Weird and inefficient way of reading inputs based on schematics, but code seems to agree. Clarify reset behavior. - ettrivia.cpp, usgames.cpp and wallc.cpp . PSG type correction (AY-3-8910A -> AY-3-8912A) . Use object finders in ettrivia.cpp - gaelco2.cpp . Fixed protection in Touch & Go and World Rally 2 (Games are now playable) . Swap left/right channels on Touch & Go and World Rally 2 to match screens - galaxian.cpp . Clean up driver by using device arrays . Added preliminary controls/dips for clone Frogger (bootleg on Amigo? hardware) through I8255 PPI. Game has sound now. - iteagle.cpp: Save states supports static vectors natively (machine\vrc4373.cpp) - kinst.cpp . Added AnyIDE roms, switched to BIOS system. Merged Killer Instinct (v1.5d), (v1.3), (v1.4), (proto v4.7) and BIOS (v1.5d AnyIDE) to 'Killer Instinct'. Merged Killer Instinct 2 (v1.4), (v1.0), (v1.1), (v1.3) and BIOS (v1.4 AnyIDE) to 'Killer Instinct 2'. Merged clones Killer Instinct 2 (v1.3k, upgrade kit), (v1.4k, upgrade kit) and BIOS (v1.4k, upgrade kit AnyIDE) to 'Killer Instinct 2 (Upgrade kit)'. . Updated hardware info - legionna.cpp and seicupbl.cpp: Initialized tile banks to 0, this should fix problems on Linux & debug builds (includes\legionna.h). - m62.cpp: Split PROM regions up by function (legacy from when MAME only allowed a single PROM region per system). Made use of multiple palettes and gfxdecode structures. - mappy.cpp: Use LS157 TTL device for DSW2 mux - namcond1.cpp . YGV608 video accessors are 8-bits not 16. Moved a few statics out from r/w handlers. Converted ports to AM_DEVICE. . Log registers into own space, handling will follow up. Added CRTC function and moved irqs in handler callbacks. Added preliminary raster irq hookup (limited usage in NCV2). . Moved YGV608 base address out of legacy switch case and ROZ registers out of the legacy code. Return h/vblank status bits. Misc IRQ changes. Address pointer clean-ups. Silence some ports in driver. . YYGV608 pattern name table pointer access, log mosaic and added border color (makes the POST screens to be black and not green). Added 3rd button. - naomi.cpp . Dumped earlier Sega Gun Board firmware (hod2bios) . Reverted MIE back to higher clock (Z80 CPU 13.5->16MHz) and added notes about CPU core. Fixes alpiltdx, hotd2, hotd2o, airlbios and possibly others no longer boot and show black screen (ID 06552). - neogeo.cpp: Reintegrated NeoGeo romdefs in the source (neodriv.hxx -> neogeo.cpp) - paranoia.cpp, tourvis.cpp and uapce.cpp: Standardize button layout for Arcade PCE - segae.cpp: Modernized driver - stv.cpp: Experimental force resync on DMA completed (machine\saturn.cpp) - tehkanwc.cpp: Fixed dipswitches for clone (set 4, earlier) (different setup to other sets). Added DIP locations for all sets in driver. - seattle.cpp and vegas.cpp: Improved wheel board - vegas.cpp . Save states supports static vectors natively (machine\vrc5074.cpp) . Added I40 board. Added keypad. Use standard way of handling keypad inputs. . Mark BIOS in clone 'San Francisco Rush 2049: Special Edition' as BAD_DUMP (ID 06370) . Added layout for sf2049 - AGEMAME: Put mpu4 back into how it should be (mpu4.hxx -> mpu4.cpp, mpu4avan.hxx -> mpu4avan.cpp, mpu4bwb.hxx -> mpu4bwb.cpp, mpu4concept.hxx -> mpu4concept.cpp, mpu4crystal.hxx -> mpu4crystal.cpp, mpu4empire.hxx -> mpu4empire.cpp, mpu4mdm.hxx -> mpu4mdm.cpp, mpu4misc.hxx -> mpu4misc.cpp, mpu4mod2sw.hxx -> mpu4mod2sw.cpp, mpu4mod4yam.hxx -> mpu4mod4yam.cpp, mpu4sw.cpp -> mpu4sw.cpp and mpu4union.hxx -> mpu4union.cpp) - Ameri-Hockey and Bozo's Pail Toss . Attempt at CPU identification . Make some educated guesses regarding manufacturer, decade, MCU and sound chip types. A few technical modifications to Z8 CPU memory interface and added Z8681 type for Ameri-Hockey. - Arkanoid: Added M68705P3 MCU and AY-3-8910 machine definition for clone Arkanoid (bootleg with MCU, harder), matching real hardware. Added some notes about bootleg roms and what sets they are copied from or derived from. Updated note about hidden credits with hiscore initials. - Bionic Commando: Fixed screen misalignment regression - Black Touch '96: Added flip screen and coin counter support. Rewritten text layer to tilemap. Added notes and promoted game with MACHINE_IS_INCOMPLETE, bugs like the timer not decrementing are actually caused by sloppy coding. Converted sound command port to 8-bits and lowered difficulty default (Games now playable). - Bongo: Map jump as a button and not as up direction - Candy Crane: Document MCU type that isn't emulated - Clown Roll Down: Flesh this skeleton driver out slightly - Crude Buster . Fixed colours (verified against real hardware). Added documention. . Added a x3 hack to the YM2203 clock frequency to fix incorrect pitch - Fantasy: Made Fantasy (US) the parent for consistency, since up until now the parent was the German version. - Fast Lane: Removed imperfect colors flag, Kold verified it and there's no issue with colors. - The First Funky Fighter: Fixed missing music and partial sound FX (ID 05900). Correct 'Country' dipsetting. - Forty-Love: Clone (Japan) needs MCU double check - Funny Strip: Added serial EEPROM for high score entries - Game Magic . Do not always assert on unimplemented PCI configuration registers (Intel 82439TX Northbridge; bus\lpci\i82439tx.cpp). Log a message in the error log instead. Also put writes to 0x58 and 0x5c in their own case. Give derived classes the ability to intercept writes to debug port 0x80 (lpci\southbridge.cpp). Added boot_state_hook devcb to receive writes to debug port 0x80 (lpci\i82371sb.cpp). . Splitted the single rw handler to io ports 60 and 61 into two separate handlers one for each port. To support systems in the future where the southbridge does not contain a keyboard controller (lpci\southbridge.cpp). - Gladiator: Inverted coin counters and minor HW note - Golden Axe: Replaced bad dump 317-0122 i8751 MCU in clone Golden Axe (set 2, US) (8751 317-0112) with working redump from undamaged chip. Removed MCU simulation code. - Gun & Frontier: Fixed 'Upright Controls' dipswitch (OFF is Single and should not be the default). - Lady Bug: Documented a different program ROMs arrangement - Levers and Nibbler: Changed joysticks to 4-way as documented in manuals - Mahjong Chinmoku no Hentai: Removed DSW B, this does not exist on a real PCB (ID 06592). - Marchen Maze: Added default NVRAM - Master Boy: Use parallel EEPROM type for "EAROM" rather than generic NVRAM - Mega Double Poker: Load recent CAPS0ff 68705P5 MCU dump for Mega Double Poker and clone. Hook up 68705P5 MCU, figure out banking and added timekeeper RAM and inputs. Merged driver with Golden Poker driver to get working sound (graphics and sound should be identical) (Game now playable). - Miss Bubble II: Fixed OKI read/write bitswap so what seem to be the correct sound effects are played. Used the OKI rom from clone 'Bubble Pong Pong' in place of the badly dumped missb2 OKI rom due to all non-corrupted areas being identical, so they're most likely supposed to be the same, but marked it as BAD_DUMP until redump. Added watchdog (same as parent bublbobl hardware has). - Mr. Do!: Load protection PAL data (not used at the moment) - N.Y. Captor: Fixed colors in clone Colt - Ninja Clowns: Fixed potentially crash during fighting the final boss 'Twisto'. The blitter code was writing outside the limits of the VRAM (ID 06620). - Omega: Dumped the color proms, correcting the colors. Minor updates to dipswitches. Set default values for unknown dipswitches to "Off". Correct coin counter polarity; name config structures more consistently. - Parodius: Fixed 'Bonus Life' dipswitch - PinMAME . joctronic.cpp: Added new maincpu to Punky Willy. Callback modernization for its own sake. . wpc_dcs.cpp: Added new DCS roms to Judge Dredd (L-7) and clones (L-4), (L-5) and (L-6). . flicker.cpp: Updated Flicker (prototype) to use new MCS-40 core. Added save state support. Removed NVRAM - it's unlikely a dynamic PMOS RAM would be battery-backed. Hook up the rest of the inputs (operator adjustments). React to input changes on test line. Added notes. Re-implemented I/O based on how hardware actually works. Correct RAM size. Hooked up playfield lamp outputs - this really needs PWM. - Pole Position II: Fixed crowd cheering sounds are messed up at the chequered flag goal (ID 06261) - PT Reach Mahjong: Added samples and cleanup driver (http://www.progettosnaps.net/samples/ptrmj.zip) - Quest of D (CDV-10005C): Added Firmware Update DVD dump - Return of the Invaders . Added original Taito 68705 MCU dump to Return of the Invaders . Moved bootleg 68705 MCU to its own new set 'Return of the Invaders (bootleg w/MCU)'. Renamed sets to make it more obvious which are bootlegs. . Verified XTAL, dividers and SN76489A type from PCB pictures. Added missing original Taito CLUT PROMs and fixed video driver to be able to use those or the single bootleg CLUT prom. . Added DIP locations and document edge connectors - Rod-Land: Added information regarding clone 'R&T (Rod-Land Prototype)' - see http://sudden-desu.net/entry/rod-land-location-test-code-and-stage-editor - Ron II Mah-Jongg: Ron II actually works, promoted to working. - Rotary Fighter: Added PPI and coin counter - The Roulette (Visco): Fixed interrupts, graphic and input&dips. Added new Seta X1-010 rom and PCB layout (Game now playable) - Schmeiser Robo: Game sets rowscroll to be bigger than assumed size of tilemap. This fixes exception on exit on Linux 64bit and Windows XP (ID 06613). - Sega Ninja: Decrypted SEGA 315-5133 used by clone Sega Ninja (315-5113), promoted it to working. Shares identical code with other sets (SWAT (315-5048), just with a different number. - Shoot Away II: Added AT28C64 EEPROM dump - Soreike Kokology Vol. 2: Redumped sound data ROM. Fixed missing voice (ID 06627). - Steel Force: Switched to OKI map instead of ROM_COPY - Super Real Darwin: Replaced MCU simulation in Super Real Darwin with internal ROM dump. Handcraft MCU rom for clone Super Real Darwin (Japan) like was done for other games in the driver so the old simulation can be killed off, marked as BAD_DUMP. Fixed incorrect behaviour for 6th boss (no longer skips first form). - Superbike: Kludged a protection check that was resetting the machine under certain conditions. Also demoted to MACHINE_UNEMULATED_PROTECTION since game can lock indefinitely under a particular condition. - Super Chase: Fixed shifter display in layout - Target Hits: Added PCB layout and base CPU clocks on actual OSC/Resonator. Correct OKI clock and program rom labels. - Time Limit: Redumped color proms. Promoted colors after counter-check with real screens. - Tsukande Toru Chicchi: Added dipswitches - unknown TMS9980 Poker Game: Fixed maincpu rom loading - Victory: Added PIO devices - Victory Road: Added PAL dumps - Wolf Pack: Fixed missing torpedo trail - World Rally: Added PCB layout - Save state . Added a menu listing existing state files displayed when choosing a position to save/load. Any position may be selected with keyboard 0-9/A-Z or joystick buttons. Existing positions may be selected using UI navigation controls. . Moved save state registration to interface post start. Plays nicely with device_missing_dependencies exceptions. Frees implementation from having to call save state registration method. Improved save state support in devices that neglected to call method. . Explicit sizes for enums and enum class used in save states, one should always do this to maximise save state compatibility. Fix up a couple in src\mame as well. - Dipswitch fixes in decocass.cpp, ddenlovr.cpp, freekick.cpp, galaxian.cpp, konmedal.cpp, m14.cpp, parodius.cpp, seta.cpp, taito_f2.cpp, tehkanwc.cpp and vegas.cpp - Fixed rom names in retofinv.cpp, seta.cpp, stv.cpp and targeth.cpp - Description changes of Cobra-Command (World/US revision 5), The First Funky Fighter (USA, Canada, Mexico / Japan, set 1), The First Funky Fighter (USA, Canada, Mexico / Japan, set 2), Lee Trevino's Fighting Golf (World?) (ID 06128), Lee Trevino's Fighting Golf (US), Lee Trevino's Fighting Golf (US, Ver 2), Killer Instinct, Killer Instinct 2, Killer Instinct 2 (Upgrade kit), Logger (Rev.3), Mega Double Poker (conversion kit, version 2.3 MD), Mega Double Poker (conversion kit, version 2.1 MD), Motocross Go! (MG2 Ver. A, set 1), The Ninja Warriors (World, later version), The Ninja Warriors (US, Romstar license), Play 2000 (Super Slot & Gran Tesoro) (v5.01) (Italy), Play 2000 (Super Slot & Gran Tesoro) (v4.0) (Italy), R&T (Rod-Land prototype), Return of the Invaders (bootleg no MCU set 1), Return of the Invaders (bootleg no MCU set 2), The Roulette (Visco), Street Fighter II: The World Warrior (Japan 911210, CPS-B-13), Super Triv (French questions), Taisen Idol-Mahjong Final Romance 2 (Japan, older), Tehkan World Cup (set 4, earlier), Trigger Heart Exelica Ver.A (Japan) (GDL-0036A) and Vince (bootleg of Red Hawk) - Renamed (actfancr) to (actfancr2), (fantasy) to (fantasyg), (kageki) to (kagekiu), (kinst2k3) to (kinst2uk), (retofinv1) to (retofinvb1), (retofinv2) to (retofinvb2), (sderby2) to (sderby2s), (striv) to (strivf) and (xevi3dg) to (xevi3dgj) - MAME . UI . Overhauled MAME options handling. The new options system is more dynamic and should detect errors earlier. The slot menu now shows updated options in response to selections made by the user. This fixes loading softlist items from the command line with changed slot options (ID 06588) and various problems with software loading/unloading (ID 06581). Don't lose the system inipath when looking for hashpath (mame\mameopts.cpp). . Fixed options regression (ui\selsoft.cpp) . Allow experimental overclocking of sound devices through UI sliders with -cheat enabled (ui\ui.cpp) . Fixed slot unmount issue: Start (MESS) mame sorcerer, then enter the slots menu, empty the RS232 slot, then choose Reset. It crashes with an access violation (emu\image.cpp). . Made internal UI list missing/incorrect files when audit fails. Also consolidated selgame/selsoft code for actually launching systems into one place. Reduced header clutter (ui\selmenu.cpp). . Fixed fatal error on selecting software part from internal UI. Sort software part menu in internal UI (was ordered by hash). This preserves the option priority behaviour from 0.187 when setting the instance option to the desired part. Note that software part selection from internal UI doesn't actually work. For example with zorba:cpm, no matter which part you select, you'll always end up with flop1 in A: and flop2 in B:. This actually did work properly in 0.187, so something has gone wrong in between (ui\selmenu.cpp). . DEVICE . Fixed issue loading reset_on_load() images (emu\diimage.cpp). Fixed custom instance names and slot devices don't work properly with the current MAME options code (emu\diimage.cpp). Fixed media option numbering with custom instance names (emu\diimage.cpp). . Fixed scheduler overflow when a device executes for more cycles than there are in a second . Fixed Clang build (emu\device.h) . Lift the cap on the number of address spaces per device (emu\dimemory.cpp). Make device_memory_interface slightly less of a special case, use a typedef to avoid nested templates everywhere. Made device_memory_interface own its address space objects. Kill a trampoline (memory.dump(); debug\debugcmd.cpp and emu\emumem.cpp). . Make machine().describe_context() a const function returning a std::string. As part of this change (because std::string is not printf-compatible), several devices have been updated to use the modern logmacro.h logging system. . Save partname to inifile, so that the correct part is loaded next time (emu\image.cpp). . PLUGINS . Fixed NESS Game Genie decoder and link simple cheats (plugins\cheat\cheat_simple.lua). Added UI support for joystick hotkeys (plugins\cheat\init.lua). Poll for setting hotkeys. Create dirs. Popmessage for hotkey setting. . Updated hiscore.dat . Initialization ordering fixes (emu\emumem.cpp/h and machine.cpp) . Improved -romident performance by dynamically allocating large arrays at device_start time (sound\ay8910.cpp, audio\taito_en.cpp and video\powervr2.cpp) (ID 04355) . Removed redundant flags MACHINE_NOT_WORKING and MACHINE_NO_SOUND and replaced them with MACHINE_IS_SKELETON. . Fleshed out network output provider so it has the same capability as legacy Win32. Clients: Connect to TCP port 8000. Messages will be of the form "verb = value\1"; if your client is busy when MAME is spamming, you may get multiple messages glued together by \1 separators. (\1 was chosen because it's neutral on Win32/Mac/Linux). You will get a "hello = 1" message upon connection to MAME, and a "mamerun = 0" message when MAME shuts down. You may send "send_id = n" to MAME to get IDs where n=0 means ROM set name of current game, 1-? = output node names. MAME will reply "req_id = string\1"; this is currently the only case where a string will be returned instead of an integer value. A working example POSIX client will be released soon (output\network.cpp). . Include -output option in documentation (docs\source\commandline\commandline-all.rst) . XML listing enhancements: The -listxml command will try to find and list any devices whose shortnames are specified on the command line. Any number of devices can be listed at once, and wildcards will be compared against device names as well as driver names. DTD output for -listxml, -listsoftware and -getsoftlist can be disabled by a new -nodtd option. It remains enabled by default. . Better handle the case where HTTP is not enabled (emu\http.cpp) . Switched to delegate timers. Frees implementations from having to call timer method. Eliminates risk of ID conflicts with implementations/other interfaces. . LAYOUT . Made scripts do substantial validation of layouts at build time (scripts\build\complay.py). Removed vestigial exception class. Comment out problematic parts of internal layouts detected by build-time validation (layout\checkma5.lay, mmerlin.la and tisub.lay) . Don't drop an entire layout if one view fails to load - it breaks (MESS) intlc44/intlc440 with null_modem (emu\rendlay.cpp) . Changed backslash to unicode in some layouts . Made parent/clone loops raise a fatal error rather than hanging in a loop appending to a string (emu\driver.cpp) . Validity: Removed validation check - it causes MSVC release builds to crash, and the things it flags usually get detected elsewhere (emu\validity.cpp). . VGM player . Added YMF271 and YMZ280B support to VGM player. Added sound cores needed to allow virtual subtarget to compile (YMF271 and YMZ280B; scripts\target\mame\virtual.lua) . Fixed playing .vgm/.vgz files containing 2 X POKEY (ID 06631). Fixed clock speed for dual POKEY. Produce error message when nonexistent file specified rather than create a spurious empty file and segfault trying to read it. . LUA engine: Safer cleanup and fixed leak . Changed Romload to show all actual hashes on a mismatch (emu\romload.cpp) . travis.yml: Fixed QT 5.5.1 for Ubuntu 14.04 "Trusty Tahr" (allows Travis CI build to complete) - SDLMAME . Added SDL_WINDOW_BORDERLESS for fullscreen, required by some window managers on Linux. Breakage was in MAME 0.160. . Fixed sound_sdl::sdl_callback, fill buffer with silence when underflow. The problem is most noticeable when you are saving state and the save takes a relatively long time, short period of audio gets played repeatedly, which is usually unpleasant. I found out it's caused by sdl_sound::sdl_callback not fill the audio buffer with silence when underflow occurs. According to https://wiki.libsdl.org/SDL_AudioSpec, if there's nothing to play, the callback should fill the buffer with silence. I tested this change and the problem is gone. . Updated compiling instructions for Fedora Linux. DNF is now preferred package manager. alsa-lib-devel is also required (not mentioned in the current docs) (initialsetup\compilingmame.rst). - MAC OS X . Added basic support for saving/restoring Cocoa debugger window state, compatible with Qt debugger where possible. . Fixed some Cocoa debugger desync issues. Scroll to selection on gaining focus by keyboard (e.g. tab) only. Fixes jump on clicking a memory or disasm view that you've scrolled. . Make XML file a class of its own managed with smart poitners. Added a method for copying part of an XML tree into another tree and use it to fix Cocoa debugger fatal error (util\xmlfile.cpp). . Save/restore console split positions . Fixed include path with USE_LIBSDL on macOS. The cflags will contain an include path ending in "SDL2", not just "SDL", and removing just the latter leaves a stray "2" on the end (osd\sdl_cfg.lua). - Compiling . Fixed tiny build (missing Z80PIO; scripts\target\mame\tiny.lua) . Renamed AS_DECRYPTED_OPCODES to AS_OPCODES . C++14 constexpr doesn't cooperate with universal references (bus\isa\isa.h, machine\gt64xxx.h, pci.h, vrc4373.h and vrc5074.h) . Clean up inlines for MSVC. No reason to prefer inline assembly over MSVC _BitScanReverse intrinsic on x86 (osd\eivcx86.h) . c_str() is no longer needed with emu_file::open since it now takes a std::string (emu\machine.cpp) . Fixed save/load states in Emscripten build. Simplified Emscripten integration points. Moved standalone JS functions to be static member functions of running_machine. Improved Emscripten main loop. Use convenience functions for cleaner code. As an added bonus, this now allows for proper shutdown of the running machine when running in the Emscripten environment - previously, attempts to exit the program were just being ignored. Export soft_reset, hard_reset, exit, load and save functions for Emscripten builds (scripts\resources\emscripten\emscripten_post.js). . Convenience macro for enum bitwise operators (ENUM_OPERATORS -> ENUM_INCDEC_OPERATORS; cpu\tlcs90/tlcs90.h, emu\emucore.h, input.h, ioport.h, profiler.h, render.h and mame\cheat.h) - Debugger . Simplify by decoupling information creation and display rendering (debug\dvdisasm.cpp) . Eliminated direct() from read_opcode (debug\debugcpu.cpp) . Reverted debugger F8 behaviour, to run until next start of vblank, by re-adding a check that was removed in MAME 0.175. . Made the length parameter for debugger 'load' command optional (defaults to lenth of file), converted code from stdio to iostream. . In class consolewin_info method set_cpu does nothing if the cpu to be set is the current one. This solves a problem in the windows debugger where the registers view would always return to the topafter being scrolled down (debugger\win\consolewininfo.cpp). . Don't assume a watch point exists for the address space passed to watchpoint_update_flags(), which fixes the hotspot command. Stop hotspot from crashing when you start running (debug\debugcpu.cpp). 0.187 - New games: Jump Kun (prototype), Ron II Mah-Jongg, Sel-Jan [BET], Victory (Comsoft) and Waku Waku Ultraman Racing - New Working games: Treasure Island (DECO Cassette) (Region D) - New Non-Working games: Bel Slots Export (5.01), Big Deal Belgien (5.04), Ez2dancer 2nd Move, Jack Potten's Poker (set 10, ICP-1 PCB), Percussion Freaks 5th Mix (G*B05 VER. KAA), Pingu's Ice Block and Quingo Export (5.00) - New clones: Animal Basket (19 Jan 2005), The Bounty (set 2), Burnin' Rubber (DECO Cassette) (Japan), Danger Track (Rally X bootleg), E-Swat - Cyber Police (bootleg, set 2), Forty-Love (Japan), Gingateikoku No Gyakushu (bootleg set 3), Graplop (DECO Cassette) (Japan), Guerrilla War (Version 1, set 2), Lock'n'Chase (DECO Cassette) (Japan), Mach-9 (bootleg of Vulgus), Macross II (Korea), Marchen Maze (Japan, hack?), Money Money (set 2), Motor Raid - Twin/DX, New Century (Spanish bootleg of Scramble), Offensive (Spanish bootleg of Scramble), Operation Thunderbolt (Japan, SC), OutRun 2 Special Tours (Japan) (GDX-0011), Palamedes (US), Pengo (set 5), Power Instinct (USA, prototype), Pro Tennis (DECO Cassette) (Japan), Spectar (revision 2, bootleg), Tehkan World Cup (set 4, earlier?), Time Killers (v1.32I) and Victory (Comsoft) (bootleg) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Ankoku Densetsu, Batman, Burning Angels, Cadash, Gradius, Toilet Kids and World Jockey - New PEPlus games: Player's Edge (PK1002-PC082) Jake's Jacks Bonus Poker - New PinMAME games: Black Knight 2000 (PF-1) and Spirit of 76 - New drivers: ez2d.cpp, ron.cpp and spirit76.cpp - New devices: 74hc157, taitosjsecmcu, tc0040ioc, tc8521 and te7750 - ADSP2100 CPU: Make HALT_LINE halt the cpu and added function for get base address of circular buffer - M68705 CPU . Use actual M68705 dump in Field Day/Undoukai, Onna Sanshirou and Rumba Lumber, replaces inaccurate simulation. . Replaced MCU simulation with new M68705 dump in Chack'n Pop, Get Star (Japan), Guardian (US), Nekketsu Kouha Kunio-kun (Japan) and Prebillian . Replaced hand crafted MCUs with dumped 68705 dumps for clones Arkanoid (US, newer), Arkanoid (Japan, newer) and Tournament Arkanoid (US) . Added an unused (not programmed) 68705P5 MCU dump to Tetris (D.R. Korea) . Use new 68705 image that includes the bootstrap code in The FairyLand Story . Replaced MC68705P3 CPU3 with MC68705P5 in Taito SJ - S2650 CPU . I/O modernization. Replaced fake S2650_SENSE_PORT address with line read callback (set_input_line should also work). There are still some doubts regarding whether VBLANK should be inverted in various drivers. . Replaced fake S2650_CTRL_PORT and S2650_DATA_PORT addresses with... well, these aren't dedicated parallel ports, so they actually haven't gone away. They have, however, been moved to a new 1-bit address space, since the ports share the main data bus and are distinguished from each other by an address line. . Allow program counter to be properly tracked by debugger. A few small status register-related refinements. - TLCS-90 CPU . Replaced fake TLCS-90 I/O space with callbacks (cpu\tlcs90\tlcs90.cpp, drivers\dynax.cpp, royalmah.cpp and machine\nmk004.cpp) . Forwarding and some other stuff (cpu\tlcs90\tlcs90.h) - AY-3-8910 sound . Added pinout and removed outdated comments from .h . Updated/fixed documentation and comments and added additional pinouts and links to decaps and documentation. Document device names. . Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid. . Replaced AY-3-8910A sound with YM2149 in arkanoid.cpp, bigevglf.cpp, calorie.cpp, cchance.cpp, flstory.cpp, fromance.cpp, ginganin.cpp, goldstar.cpp, hotblock.cpp, lsasquad.cpp, ojankohs.cpp, shangha3.cpp and tehkanwc.cppt . Replaced AY-3-8910A sound with AY-3-8912A in funkybee.cpp, spartanxtec.cpp and spyhuntertec.cpp - AY-3-8913 sound: Added diagram - ATAPI CD/DVD-ROM and SCSI CD: Improved CD audio play track/index command handling (machine\mb89352.cpp and t10mmc.cpp). kokoroj2 needs mods in the MB89352 core that won't break (MESS) Sharp X68000 as well. kokoroj2 requires the printer interface, a command to stop current track is sent with CD & printer disabled in dipswitches. - DMA-driven DAC sound: Check if list item exists before calling member function (sound\dmadac.cpp) - MSM5205 sound: New callback implements accurate VCK timing. The old "VCLK" method with no duty cycle is now deprecated. - OKI6295 sound: Simplify logerror messages - SAA1099 sound: Created standard write handler; substitute for bogus YM2413 in Magic Card. Zero writes are not errors (logerror()). - Sound Interface . Allow device to be configured for acknowledgement to occur separately from data reads (machine\gen_latch.cpp); use this for Armed Police Batrider. . Use MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) and for all aerofgt.cpp games except bootlegs which need more research. . Use callback for soundlatch interrupt in actfancr.cpp . Soundlatch modernization in aerofgt.cpp, blockout.cpp, crshrace.cpp, f1gp.cpp, gstriker.cpp, inufuku.cpp, pipedrm.cpp, psikyo.cpp, renegade.cpp, spdodgeb.cpp, suprslam.cpp, tail2nos.cpp, taotaido.cpp, wc90.cpp and welltris.cpp - Taito Ensoniq ES5505-based sound: Use MB8421 for communication RAM (audio\taito_en.cpp; drivers\galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp, taito_f3.cpp, taitojc.cpp and undrfire.cpp) - Williams ADPCM/CVSD/NARC Sound Board: Handler cleanup (audio\williams.cpp) - 8255 PPI . Added tristate outputs . Use 8255 PPI devices (most of which are only used for input) and use the new 8255 tristate callbacks to removed some workarounds in subsino.cpp. . Use 8255 PPI devices for I/O in mjkjidai.cpp and piggypas.cpp . Replaced soundlatch with 8255 PPI device that runs in mode 2 in suprloco.cpp - Discrete Netlist: Added Zaccaria driver to mamenl build (sound\dmadac.cpp) - Kaneko Custom: Eliminate driver_data dependency (video\kan_pand.cpp, drivers\airbustr.cpp and snowbros.cpp) - MB3773 Power Supply: Added MB3773 device to aerofgt.cpp, gstriker.cpp and taotaido.cpp - PCI-IDE controller: Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold. - RP5C01 RTC: Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to yesnoj (though the game remains stuck in the 20th century). - Taito Custom . Replaced TC0220IOC with TC0510NIO (newer I/O version) in Space Gun . Added port 3 write callback for TC0220IOC and TC0510NIO in othunder.cpp and taito_z.cpp . Use callbacks to set coin counters and coin lockouts from Taito I/O devices. This is a largish and not particularly elegant change, but those outputs aren't exactly internal. . Made TC0040IOC its own device type and separated its functionality from TC0220IOC (ninjaw.cpp, taito_b.cpp, taito_h.cpp, taito_l.cpp, taito_z.cpp and topspeed.cpp) . Use TC0510NIO device for inputs in 2mindril.cpp, galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp and undrfire.cpp . Added MACHINE_NODEVICE_LAN flag to Chase Bombers, Ground Effects and Gunbuster - Timekeeper: Added watchdog function to M48T37. M48T08 doesn't have watchdog. - TTL: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs. - uPD4701 counter: Use uPD4701 device for analog input in arknoid2, fiveside, jpopnics and plumppop. - Voodoo GFX . Calculate dither pointer when needed for fogging. Fixes graphics crash in San Francisco Rush 2049. . Separate vblank (external) and PCI interrupt (internal) callbacks . Extended PCI interrupt support to Voodoo 2 and above . Write register data to intrCtrl - Z80 SCC . Added support for resetting RX interrupts/status by reading Rx FIFO through RR3 . Moved rearming of tx interrupt from tx buffer write to transmit complete when using WR0_RESET_TX_INT - aerofgt.cpp: Video and sound refinements: Fixed sound loss in Spinal Breakers and clones caused by misconfigured ROM bank. Work towards flip screen support for most games; clone Aero Fighters (Taiwan / Japan, set 1) is nearly correct now. - balsente.cpp: Minor doc update - cps1.cpp: Interrupt acknowledge routine based on schematics - csplayh5.cpp: Clean-ups and notes updates and added system inputs - cubo.cpp: Demoted Laser Quiz Italy and Laser Quiz 2 Italy, they never really worked. - exidy440.cpp: Partial revert of timer_set removal. This needs to be studied better. This fixes mouse trigger doesn't work correctly (ID 06596). - f1gp.cpp: Preliminary RS232 device hookups for multiboard communications - gaelco3d.cpp: Load correct roms for Football Power - gstriker.cpp . Undumped MCUs can be difficult to cooperate with . Soundlatch modernization. This fixes Grand Striker music only plays in the first match (ID 01209). - ice_tbd.cpp, mmm.cpp and mpu2.cpp: Rattled a few old bones - jack.cpp: IRQ acking done right - konamigx.cpp: Get rid of old popmessage. Stop logging spam. - m72.cpp: Put IRQ hacks out of their misery. Fixed V35-based games (Cosmic Cop, Ken-Go and Lightning Swords). Restore text layer (if scanline == 256; Dragon Breed). - m90.cpp: Use 4-way joysticks (as service manuals suggest) in Dynablaster, Bomber Man World and clones - m92.cpp: Put IRQ hacks out of their misery. Cleanup and kludge removal. - magicard.cpp . Created standard write handler for SAA1099 sound; substitute for bogus YM2413 in Magic Card. . Fixed address map in Hot Slots. Replaced SAA1099 sound with YMZ284. - mitchell.cpp: Sound improvements in clones Pang (bootleg, set 3 and set 5) and Super Pang (World 900914, bootleg). Reduced ADPCM rate to make music speed sound more like the original. Use callback for audio IRQ. - model1.cpp: Readded TGP roms 315-5571.bin, 315-5572.bin and 315-5573.bin to netmerc, swa, vf, vformula, vr and wingwar - mtouchxl.cpp: Initial support for SiS85c496/497 PCI chipset and first pass shadow RAM and SM RAM support - naomi.cpp . Added real dump of SPI EEPROM used in M1/171-7978B-type cartridge to gram2000, kick4csh, mtkob2, shootpl and tduno2. Updated docs. . Converted existing M1-type cart SN# EEPROM data to be like real dump in clubkprz, clubkpzb, hopper, kick4csh and mvsc2. . Identified "Airline Pilots" sets as domestic Japan and World versions, according to information from Sega. . Removed "empty ROMs" in 'The Typing of the Dead (Rev A)' and clone, actually not populated on real ROM boards. - neodriv.hxx: Updated video\neogeo_spr.cpp. Correct Neo Geo sprite tile code mask to 20 bits (was previously 19 bits), stop masking MSB. - norautp.cpp . Make 8255 PPI handshaking work in Noraut Poker. Restored some 8255 inputs in Noraut Poker that were disconnected since MAME 0.134u3 due to failed attempts to simulate a 8255 PPI configured in an unusual mode. The readout switch (Key 9) is now working again (ID 03585). . Don't hardcode "Readout" inputs in driver - psikyo.cpp: Some basic driver cleanup - system16.cpp . Added preliminary sound to clone Alien Storm (bootleg, set 2) and correct clocks . Added preliminary sound to clone Michael Jackson's Moonwalker (bootleg) instead of cheating by loading the sound ROMs of the original. There's probably something wrong with rom loading / OKI banking, since I don't believe the correct BGMs are always playing. Left as MACHINE_IMPERFECT_SOUND because of this. - taito_b.cpp: Removed "bypass" that was made superfluous many years ago - taito_f2.cpp . General documentation update. Added TE7750 Super I/O Expander device. . Added Player 3 and 4 inputs to Dead Connection shown in test mode (and otherwise unused) . Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to Yes/No Sinri Tokimeki Chart (though the game remains stuck in the 20th century) and test switch is 'NO TOGGLE'; note lack of printer emulation. - taito_l.cpp: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs. - taitosj.cpp: Made security MCU hookup a device - terracre.cpp . Actual hookup for protection data and fixed potential buffer overflow . Fixed clone Booby Kids regression and clean-ups . Discard protection reading for clone Kid no Hore Hore Daisakusen (bootleg), memory map cleanups. - toaplan2.cpp: Generate (and acknowledge) video interrupts within VDP (video\gp9001.cpp) - vegas.cpp . Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold. . Calculate dither pointer when needed for fogging (video\voodoo.cpp and vooddefs.h). Fixes graphics crash in San Francisco Rush 2049. . Added watchdog function to M48T37 timekeeper - zaccaria.cpp: Clear up some stuff with board photo (audio\nl_zac1b11142.cpp) - zaxxon.cpp . Make "Universal Sound Board with ROM" work again (see Ixion and Razzmatazz) (ID 06599) . Use WRITE_LINE instead of INTERRUPT_GEN - Ace Attacker: First stab at I/O board - Air Combat 22: Changed auto-centring throttle from Pedal to AD_STICK_Z - Arkanoid: Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid (ID 06614). - Bubble Bobble II: Added address map for clone Bubble Symphony (bootleg with OKI6295) - Dragon Treasure: Bruteforced main unit DES key - Hyper Crash: Fixed missing VLM5030 speech since 0.176. Also increased VLM volume. - Imekura Mahjong: Fixed graphic corruption (ID 06617) - Karate Blazers: Fixed sound regression in clone Karate Blazers (bootleg with Street Smart sound hardware) - Karate Champ: Fixed distorted ADPCM sound in clones kchampvs, kchampvs2 and karatevs (ID 06479) - Kusayakyuu: Acknowledge main interrupt - Little Robin: Use more likely clocks for Little Robin based on PCB XTALS (main CPU is more likely 8MHz than 12MHz). Also use a hack to overclock the TMS to 120% so that the map screen renders properly, points at possible timing errors in the core? Note: Various scenes flicker to the point of graphics being invisible (eg. the map screen at the very start of a game). Unless you overclock the TMS34010 to 120%, possible timing bug in the core? this is a hack. - Mahjong Kyou Jidai: Identified the memory reset input - Mighty Guy: Added notes about sound "protection". Improved sound. - PinMAME . Added new sound_m3.bin rom to Metal Man . Modernized MSM5205 callback in inder.cpp and spinb.cpp - Prebillian: Fixed vblank input so game doesn't hang with new real MCU dump, fixed player 2 spinner input and added ball launch button. - Quiz Show . Changed fake tape input back to old pseudo-random values that program handles better for some reason . Driver cleanup. Removed unnecessary prefix from function names. Removed unused I/O space. Added dummy callback for flag output (which is used). - Red Corsair: Fixed gfxdecode and use more likely CPU types - Royal Mahjong: Added MC6845 CRT controller to clone Janyou Part II (ver 7.03, July 1 1983) - Royal Poker V 1.85: Push emulation a little further along - Side by Side: Fixed POST failure in debug build - Space Gun: Replaced TC0220IOC with TC0510NIO (newer I/O version) - Spectar: Added PROMs taken from clone (revision 2, bootleg) to Spectar - Star Audition: Flag game with no printer/camera - Starship 1: Fast/Slow control from toggled to momentary, as in real game. Updated clocks per latest information. Added note about Throttle Level behaviour. Changed format of comments (ID 03041). - Tail to Nose . Added flip screen support and document non-effect of "Country" switch . Preliminary RS232 device hookups for multiboard communications. - Taisen Mahjong Final Romance 4: Preliminary step towards 4-player link support. Some serial INS8250 interrupts for future use. - Treasure Island (DECO Cassette): Handcraft a BIOS rom for clone ctisland3 (the only difference between the A/B BIOS roms is the single byte it checks in the header anyway). Compared to the other ctisland sets it uses a different encryption and has a region code of 'D' in the header. Changed description of clone (unk) to 'Treasure Island (DECO Cassette) (Region D)'. - Video Poker: First attempt at proper configuration the clone Video Poker (v1403) - Dipswitch fixes in 2mindril.cpp, csplayh5.cpp, pacman.cpp and taito_f2.cpp - Fixed rom names in arkanoid.cpp, gottlieb.cpp, minivadr.cpp, s11b.cpp and taito_l.cpp - Description changes of Airline Pilots (Japan, Rev A), Airline Pilots (World, Rev B), Alien Crush (United Amusements PC Engine), Animal Basket (24 Jan 2005), Blazing Lazers (United Amusements PC Engine), The Bounty (set 1), E-Swat - Cyber Police (bootleg, set 1), Flash Boy (vertical) (DECO Cassette MD) (No.12/Ver.0/Set.1,Japan), Forty-Love (World), Gradius IV: Fukkatsu (ver JAC), Guerrilla War (Version 1, set 1), Gun Dealer (Yam! Yam!? hardware), Keith Courage In Alpha Zones (United Amusements PC Engine), Money Money (set 1), Onna Sanshirou - Typhoon Gal, Onna Sanshirou - Typhoon Gal (bootleg), Pac-Land (United Amusements PC Engine), Sega Rally Championship - Twin/DX (Revision B), Sega Rally Championship - Twin/DX (Revision C), Silent Scope 2 : Dark Silhouette (ver UAD), Spelunker II - 23 no Kagi (Japan), T.T Block [TTL], T.T Defender, T.T Fitter (Japan), Treasure Island (DECO Cassette) (Region D) and unknown Labeled 'WU- MARY-1A' Music by: SunKiss Chen - Renamed (alpilota) to (alpilotj), (alpiltdx) to (alpilot), (gteikob2) to (gteikokub2), (gteikokb) to (gteikokub) and (palamed) to (palamedj) - MAME . VIDEO RENDERING SYSTEM . Make the palette optional (emu\drawgfx.cpp). device_gfx_interface does two things: Go from a possibly weird rom layout to a one-byte-per-pixel tiled layout and draw the tiles so created. The second part requires a palette, but the first doesn't. And low-level emulations of individual graphic chips (konami tilemap or sprite generators for instance) are not supposed to care about the palette. They just output bits which are partly indexes into palettes, and partly not, and in any case become pen ids only much further in the rendering chain. But they need access to the decoding step, because one-byte-per-pixel is real nice. So now such a device, which inherits from device_gfx_interface, can call set_palette_disable(true) and no palette tag will be required. Calling the draw functions will segfault though. As a side effect, the gfx_element constructor now takes a palette pointer instead of a reference, since it's now optional. . Fixed the case when a gfx element has no palette (ui\viewgfx.cpp) . BGFX: Fixed xBR-lv2-multipass, xBR-lv2-fast, xBR-lv2-noblend, xBR-lv2, xBR-lv3-noblend and xBR-lv3 shaders . Changed the profiler to use std::ostringstream as the text sink (instead of std::string) (emu\profiler.cpp) . Validity . Added validation check for contradictory flags, fix things it caught. . Attempt basic validation of slot cards. Note that this currently segfaults on anything ISA and probably other stuff. For example, any of the following will crash: mame -valid c386sx16, mame -valid 386i and mame -valid b128. Pushing before dinner so others can take a look. Fixed vas' problem, region_length() is expected to return 0 if the region doesn't exist, not crash. . Improved code for instantiating slot devices for validation. Fixed region validation for slot devices. Fixed the missing default subslot devices on slot card validation . Further improvements to slot option validation: All slot options are now validated whether or not they are user-selectable. This has already exposed a bug in one MSX-Audio device. Slots within slots, however, get added for validation only if they are declared fixed. Various Commodore floppy drives have been affected by this, since it doesn't look as if the current FDC emulation allows for detachability. . Improved validation checking for address ranges (emu\addrmap.cpp) . Multi-Language: Attribution correction for Hungarian language translation . DEVICE . Updated devices\cpu, devices\machine and devices\bus\* devices to use device_add_mconfig insted of device_mconfig_additions. Got rid of machine_mconfig_additions in devices\bus\*. . Better detection of bad -ramsize strings, move some private code to anonymous namespace. There was a longstanding bug where '-ramsize 16kfoo' would be treated as '-ramsize 16k'. Changed parse_string() to explicitly look for the suffixes "[k|m][|b|ib]" (machine\ram.cpp). . Device name changes: AY-3-8910A to AY-3-8910A PSG, AY-3-8912A to AY-3-8912A PSG, AY-3-8913A to AY-3-8913 PSG, AY-3-8930A to AY8930 EPSG, YM2149 to YM2149 SSG and YMZ284 to YMZ284 SSGL . PLUGINS . Added hotkey support to cheat plugin. Be more careful with unpack (plugins\cheatfind\init.lua). . Added NES, SNES, Genesis and Game Genie support to cheat plugin. More Game Genie and NES Action Replay cheat format decoder. . Fixed erroneous space padding before linefeed on -listclones and -listbrothers output (mame\clifront.cpp) . Added line hold capability. Note: Whoever feels like saying that "HOLD does not exist in hardware", I invite to admire the beautiful TTL circuit to the left of the 68000s in the Over Drive schematics (emu\devcb.cpp). . UI: Fixes a crash when returning to the front end when a system was launched from favorites. This bug could be reproduced with the following steps: 1. Put 'nes' in 'Favorites'. 2. Launch 'nes'. 3. Choose something from the software menu and run the emulation. 4. Escape back... CRASH. . Sort slot options by name in -listslots. Device names can be obtained without instantiation now (mame\clifront.cpp) . Fixed address_map configure (emu\addrmap.cpp) . Disable side effects in some read handlers (machine\msm6253.cpp and upd4701.cpp) - Compiling . Coverity (software) . Fixed errors about unintended truncation (machine\cs4031.cpp and genpc.cpp) . Cleanup and constructor delegation (video\poly.h, includes\orbit., includes\pass.h, machine\bfm_bd1.cpp, bfm_bda.cpp and taitoio.cpp) . Compile fix for machine\ldvp931.h and pdc.h . Fixed etc\template_driver.cpp compile . Verify some same label different hash (sldh) rom parts and commented following established procedures - Debugger . Windows debugger: Added ability to load software-list items. Mount File/Create default to swpath instead of randomness (win\consolewininfo.cpp). . Changed 'enum read_or_write' to be 'enum class' (debug\debugcmd.cpp, emu\emumem.cpp and machine\fddebug.cpp) . Don't try to read past the end of a memory space in debug view (debug\dvmemory.cpp) . Removed "Mount Item" for now due to bugs, also removed internal media slots from images menu (win\consolewininfo.cpp). . Changed a few 'const char *' ==> 'const std::string &' in the MAME debugger . Fixed an issue that could cause the debugger 'source' command to falsely display I/O error 0.186 - New games: Gunstar Heroes (Mega Play), Hashire Patrol Car (J 990326 V1.000), Jang Taku (V 1.3) and Space Cyclone - New Working games: 7 Smash, Heated Barrel, Jockey Club II, Legionnaire, Mahjong Yarou, MegaTouch XL, MegaTouch XL 6000, Microman Battle Charge, Poker Genius, Revenger '84, T.T. Defender, Technical Bowling and Tetris Fighters - New Non-Working games: A-Plan, Dream Hunting (US), Dragon Treasure (Rev B) (GDS-0030B), Football Power, Mushiking The King Of Beetles 2004 Second (Japan), Quest of D Oukoku no Syugosya Ver. 3.02 (CDV-10026D), Quest of D The Battle Kingdom (CDV-10035B), Royal King Jang Oh 2 (v4.00 1984 Jun 10th), Shoot Away II and Hog Wild (US) - New clones: Bagman (Taito), Bucky O'Hare (ver JAA), Cadillacs and Dinosaurs (Asia TW 930223, bootleg?), Capcom Vs. SNK 2 Mark Of The Millennium 2001 (GDL-0008), Captain Silver (Japan, revision 1), Dottori-Man Jr., Dragon Treasure (Rev A) (GDS-0030A), Galaxy Wars (Taito), Jackal (bootleg, Rotary Joystick), King of Boxer (Japan), Mahjong Yarou [BET] (Japan, set 2), Mandinga (bootleg of Amidar), Mega Force (World), MegaTouch XL 6000 (Version r04), Mouse Trap (version 4, bootleg), Nebulous Bee, Nibbler (rev 7), Ojanko Club (Japan, Program Ver. 1.2), Pang (bootleg, set 5), Penky (Italian), Phoenix (Hellomat Automaten bootleg), Rastan Saga (Japan Rev 1), Real Mahjong Haihai (Japan, older), Revenger '84 (newer), Shiritsu Justice Gakuen: Legion of Heroes (Japan 971216), Space War (Leisure and Allied), Space Wipeout, Special Forces Elite Training (v01.02.00), Star Sweep (World, STP2/VER.A), Star Trek: Voyager (stand-up version 1.002), Super Street Fighter II: The Tournament Battle (Asia 931005), Tatacot (JA 951128 V1.000), Thrill Drive 2 (ver JAA), Top Landing (Japan), Touchmaster 2000 (v4.XX3 Spanish Evaluation), Touchmaster 3000 (v5.02 Spanish), Touchmaster 3000 (v5.XX Standard AMOA Evaluation) and Wonder Boy (set 6, 315-5179) - New AGEMAME games: Bachelorette Party (BHG1579, US), Betting Zoo - Mr. Cashman (0251064, US), Big Ben (20126911, NSW/ACT), Big Red (1J009211, NSW/ACT), Buccaneer (0252523, US), Canyon Rose (AHG1463, US), Cash Crop (0300447V, NSW/ACT), Diamond Destiny (AHG1533, US), Dynamite Jack (CHG1562, US), Enchanted Forest - Cash Express (CHG1536, US), Fortune Fever (BHG1566, US), Geisha - Jackpot Carnival (0351033, US), Helen of Troy (1J008311, NSW/ACT), Inca Sun (DHG1577, US), Jumping Beans (0100161V, NSW/ACT), King Penguin (20109021, NSW/ACT), Koala Mint (CHG1573, US, set 2), Loco Loot (AHG1513, US), Margarita Magic (EHG1559, US, set 2), Mountain Money (BHG1465, US), Mountain Money - Cash Express (AHG1629, US), One For All (0101503V, New Zealand), Party Gras (AHG1568, US), Peacock Magic (0151352, US), Penguin Pays (0300113V, NSW/ACT), Pompeii (0151158, US), Queen of the Nile (0301059V, Holland), Queen of the Nile Special Edition (20102811, NSW/ACT), Return of the Samurai (10117211, NSW/ACT), Scatter Magic III (0452569, US), Sun & Moon (0251303, US), Super Bucks II (0300006V, NSW/ACT), Sweet Liberty Deluxe (AHG1575, US), Toucan Tango (0301388V, Holland), Unicorn Dreaming (BHG1584, US), Wild Coyote (AHG1515, US) and Wild Thing (0201176V, NSW/ACT) - New PEPlus games: Player's Edge Plus (PS0629) Double Hot Peppers Slots - New PinMAME games: Teenage Mutant Ninja Turtles (1.04) Germany - New drivers: scyclone.cpp, shootaway2.cpp and unianapc.cpp - New devices: cheekyms_audio, gt64xxx, k054321, mb89352, mc8123, s29190_16, s29290_16, s29390_16, ttl166, usb_connector and vrc5074 - New Cheat.dat: http://www.mamecheat.co.uk/index.htm - New ClrMamePro version: https://mamedev.emulab.it/clrmamepro/#downloads - ADSP21062 / SHARC CPU: Fixed SHARC disassembly in debug build (cpu\sharc\sharc.h) - H8 CPUs . Fixed H8 instruction eepmov.b (used r4h instead of r4l). Added support for non-autorequest DMA (DREQ edge, DREQ level) in H8. . Added support for H8/300H to h8_dma (previously only H8/300S supported) . Added DMA channels and RTMCSR register to H8/3002 - I80186/286 CPU: Added opcodes config stuff - M6800 CPU . Fixed invalid instruction length / Program counter behavior. Fixed random crash while drawing characters at the screen borders. draw_char_40 & draw_char_80 : use of std::min. Fixed invalid instructions length. Each 6800 invalid opcodes have a different behavior. This commit fix the PC increment of each invalid opcode execution. There is three groups of invalid opcodes: One byte invalid opcodes/instructions: 00,02,03,04,05,12,13,15,18,1A,1C,1D,1E,1F,21, 38,3A,3C,3D,41,42,45,4B,4E,51,52,55,5B and 5E. Two bytes invalid opcodes/instructions: 61,62,65,6B,83,93,A3,C3,D3,DC,E3,EC and ED. Three bytes invalid opcodes/instructions: 71,72,75,7B,B3,CC,CD,F3,FC and FD. Behavior checked from the Visual 6800 and the real hardware (goupil computer) http://www.visual6502.org/JSSim/expert-6800.html. Invalid opcodes renamed. . Quick and dirty split of most MC6801/MC6803/HD63701 features from base M6800 class. The code remains generally archaic and awful and in need of a sweeping rewrite. At least one static variable is no more. - MC-8123 CPU: Make MC-8123 into a device (chinsan.cpp, freekick.cpp, ninjakd2.cpp, segae.cpp, segas16b.cpp and system1.cpp). Fixed IRQ-related regression in Gigas (freekick.cpp). - MCS-48 CPU: Converted MCS-48 ports to devcb: T0, T1 and PROG handlers are now 1-bit rather than 8-bit. Eliminate several T0/T1 handlers that DEVCB macros can take care of now. T0 CLK output emulation. - SPC700 CPU: Get rid of unneeded shifts. Fixed N flag in OP_LSRM. - TMS32031/2 CPUs: RTPS should be RPTS - TMS34010 CPU: Fixed DASM of MOVB/MOVE absolute to absolute - Z180 CPU . Added support for DREQ and TEND signals. Fixed DMA0 count and DREQ handling. . Fixed obvious type detected by Coverity (software) . Tried to make Z180 table allocation/setup a bit safer - BSMT2000 sound: Changed DECO BSMT2000 ready callback into a device delegate - MSM5205 sound: Use clocks_to_attotime - Q-Sound: Updated QSound/DL-1425 ROM and comments with corrections from recent decap - SCSP sound: Fixed SCSP UNPACK sign extension (sound\scspdsp.cpp) - SN76477 sound: Unconnected resistor treated as invalid even though it's the initial value - uPD7759 sound: Fixed/Reduced logging - Y8950, YM2608 and YM2610/B sound: Tidy up some code (sound\ymdeltat.cpp) - YM2203 sound: Fixed crash on fatal errors (sound\2203intf.cpp) - 6522 VIA . Refactored shifter supporting more fetures and fixed a few bugs. Removed old code and cleaned up a bit. . Tuned shifter IRQ timing to be more cycle accurate . Fixed the flank timer value which improved but not completelly reverted the Vectrex regression - 8255 PPI . Hook up 8255 PPIs to chinsan.cpp, igspoker.cpp, jackie.cpp, megaphx.cpp, segae.cpp, taito_l.cpp, tatsumi.cpp (apache3 and roundup5), thief.cpp (thief) and upscope.cpp . Use 8255 PPIs for interboard communication and PIC for sub interrupt in mrflea.cpp - CHDMAN: Minor improvement to CHD metadata loading. Writing into an std::string is now legal with C++11 (util\chd.cpp). - Discrete Netlist . Changed Solver.PARALLEL parameter logic: 0 = Parallel processing of solvers disabled. 1 = One processor parallel processing. Can be used to measure OPENMP overhead. >1 = Solve n analog subnets in parallel. Previously, all available processors were used which caused performance to degrade on hyperthreading. . Netlist refactoring: OPENMP refactored. All OPENMP operations are now templatized in pomp.h. We don't need thread-safe priority queue. Event code updating analog outputs now runs outside the parallel code. . Reordered members to be more cache friendly (devices\nld_7493.cpp and nld_9316.cpp) . Cleanup of solver code. Various code alignments across solvers. Added Cheeky Mouse to mamenl build. Fixed state saving for pfunction lfsr. . Fixed debug assert in many drivers using netlist (netlist\nl_setup.cpp; atarittl.cpp, hazeltin.cpp, m62.cpp, mario.cpp and pong.cpp) (ID 06538) - EEPROM: Added support for Seiko S-29X90 16-bit EEPROMs (machine\eepromser.cpp) - Imgtool . Cleanups to validity code and transitioned to std::wcerr. Windows doesn't like mixing std::wc[out|err] and printf(). . Fixed issue with 'listfilters' command. Extremely basic fix to the Imgtool <==> CHD HD bridge. This really needs much more work (MT06576). - Konami Custom . Implemented K054321 as a device (gijoe.cpp, lethal.cpp, moo.cpp, mystwarr.cpp, rungun.cpp, xexex.cpp and xmen.cpp). Fixed validation for drivers\xmen.cpp. Fixed K054321 for Lethal Enforcers and Monster Maulers. . Added save state support to K054321. Also removed unneeded includes from the driver where the generic soundlatches were removed. - MC6845 CRT: Added (partial) correct register mappings to HD6345 - Nintendo Custom . Added wrappers for SNES PPU operations so members can be made protected (video\ppu2c0x.cpp and video\snes_ppu.cpp) . Basic VT03 video support. Some support for extended sprite addressing used by (MESS) Cyber Arcade 120-in-1 - PCI-IDE controller: Added save states to machine\pci-ide.cpp. Allow for setting the top 12 decode address bits in legacy mode. Moved default legacy address assignment from device_start to device_reset. Allow for address size resolving even in legacy mode. Added function to set default PIF byte (machine\pci-ide.cpp). - Seta Custom: Added 4 tilemaps and switchable resolution to ST-0020. ST-0032 video on par with ST-0020. - TTL: Added SN54/74166 8-Bit Parallel-In/Serial-Out Shift Register (machine\74166.cpp) - uPD4701 counter: Partially rewrite uPD4701 device and hook it up to cabal (trackball sets), calibr50, eaglshot, fbaitbc, forgottn, horshoes, poundfor, ridleofp, sonic and wwallyj - Voodoo GFX: Some more Voodoo cleanup - Z80 DART: Improved encapsulation of Z80DART channels - Z80 CTC: Minor clock cleanup - Z80 SCC: Implemented Reset Tx Interrupt Pending Command (machine\z80scc.cpp) - aleck64.cpp: Wrap PC to 12 bits in a few more places (cpu\rsp\rspdrc.cpp and rspfe.cpp) - atlantis.cpp and midzeus.cpp . Added save state support to machine\pci-ide.cpp, pci.cpp, pci9050.cpp, vrc4373.cpp, video\zeus2.cpp and drivers\atlantis.cpp . Atlantis driver cleanup - battlex.cpp: Fixed graphics decode issues and improved palette generation in Dodge Man and Battle Cross - bingor.cpp: Random cleanups - chihiro.cpp: Migrated PCI devices to new PCI bus framework (machine\xbox.cpp). Some USB/OHCI renaming. USB hotfix. USB devices are now slot devices. - chinsan.cpp . Inputs cleanup, added flip flop and statistics buttons. Use tilemap system for rendering and general driver cleanup. . Identify coinage and demo sound dipswitches . Set YM2203 clock to a more likely 10MHz/8, restore PCB number. . Merged mayumi.cpp with chinsan.cpp driver. Interrupt enable, flip screen hooked up and NVRAM support for chinsan. - clshroad.cpp: Init background VRAM to 0xf0 and assume common divider for all Z80s - cobra.cpp: Fixed some input issues - epos.cpp . Added flip screen support . Fixed Revenger EPOS TRISTAR 9000 board clocks and rom labels. Combined, refined and expanded README's for both Revenger sets. . Fixed RAM based colors and added backup RAM to dealer, revngr84/revenger and beastf . Fixed Z80 CPU1 and AY-3-8910A clock speeds in dealer and revngr84/revenger . Fixed input. I/O map 0x38 is actually AY8910 read in dealer. . Implemented Tristar 9000 hardware AY-3-8910 port A 'multiplexer', PSG REGISTERS test can (in theory) pass with dipswitches set now. . Switched Tristar 8000 hardware to use AY-3-8912 as shown on schematics (catapult, igmo, megadon and suprglob). - flkatck.cpp: Fixed old regression when memorymaps were merged - iteagle.cpp . Set correct UART crystal frequency and added CPU delay to prevent TX UART timeouts (machine\iteagle_fpga.cpp) . Added save states to sound\es1373.c, video\voodoo_pci.cpp, machine\iteagle_fpga.cpp and drivers\iteagle.cpp - lastfght.cpp, subsino.cpp and subsino2.cpp: Used ramdac_device instead of custom implementations - legionna.cpp: Fixed Legionnaire and Heated Barrel scenery walking bug (a different 138e trigger is used; machine\seibucop\seibucop.cpp/h and seibucop_cmd.hxx) (Games now playable) - liberate.cpp: All PSGs are AY-3-8912A - m52.cpp, m57.cpp, m58.cpp, m62.cpp and travrusa.cpp: Replaced generic latch with more accurate emulation. Fixed missing d7 on sound latch, device_reset to correctly clear sound latch and a potential situation where sound CPU/IRQ could be incorrectly cleared. - megatech.cpp: Fixed Free Play regression - micro3d.cpp: Untangled Microprose 3D noise from driver state - mitchell.cpp: Fixed NVRAM saving - model1.cpp . Implemented workaround for race condition to fixed broken sound in Virtua Fighter (ID 06587). This fix causes 'Star Wars Arcade' to show an error message before booting normally, due to the I/O board not being emulated properly in the first place. . Preliminary configuration of I386SX Polhemus CPU in Sega NetMerc - mtouchxl.cpp: Fixed buttons, coins and key stuff - multfish.cpp: Converted driver to use hopper device - namconb1.cpp: Everyone gets all 4 player inputs. All games (even 2 player games) can test for all 4 player inputs and TEST switch. So for everything except Gun Bullet use the standard Namco System NB-1 inputs. - namcos12.cpp . Correct Asia "2" region to World . Notes about S12 Network area stuff - ojankohs.cpp: Rewrote input handling: Added missing player 2 controls. Verified and removed non-existing keys from games. Added dipswitch locations to all games. Identified some of the unknown dipswitches. Clean up and correct code. Removed tagmap lookups. - royalmah.cpp: Removed aysnd tagmap lookups, partial move to configured banking and save state preparation. - seattle.cpp . Updated driver to new PCI bus system . Galileo GT-64xxx Controller: Removed address map trampolines and added save state support to machine\gt64xxx.cpp. Changed physical memory configuration to fixed crashes with Wayne Gretzky's 3D Hockey and NFL Blitz (machine\gt64xxx.cpp). Cap memory space mapping to physical memory bounds. Reduced Seattle board to 8 MB ram. Changed SDRAM configuration options (machine\gt64xxx.cpp). - segae.cpp: Added coin counters. Minor clarification. - segas32.cpp . Replaced protection MCU simulation with emulation of actual program in Arabian Fight. Make more sense of unused MCU routines (ga2- and arabfgt opcode table). . Converted classes in segas32.cpp to device_add_mconfig . Base MB89352 SCSI hookup in 'Soreike Kokology Vol. 2', disabled by default. - segam1.cpp: Hook up video devices, sound and much else. bingpty and unkm1 both boot to error screens now. - seta.cpp: Added IRQ acks for Caliber 50 and U.S. Classic - ssfindo.cpp: Added preliminary EEPROM hook up. Tetris Fighters is now playable (coins work). Left as not working since EEPROM isn't correctly saved, thus the inputs are screwed on reset. - ssv.cpp . Updated SSV driver to new Seta ST-0020 Sprite video . Promoted Microman Battle Charge and Technical Bowling to working. Thanks Osso for pointing similar to Hashire Patrol Car medal cabinets. - taito_l.cpp . Added custom I/O chips TC0220IOC and TC0510NIO . Reduced coin impulse in Evil Stone . Use MB8421 for Taito_L, less HOLD_LINE (fixes sound in Evil Stone). - vegas.cpp . Added working controls for Road Burners and 'War: The Final Assault' . Added new NEC VRC 5074 System Controller device. Added save states to VRC5074 and fixed serial register handling. Converted Vegas driver to use new PCI bus. . Added additional PCI configuration registers for Vegas support (video\voodoo_pci.cpp) . Added some logic to get 'warfa' to start booting . Set link to be unconnected by default to keep warfa (drivers\vegas.cpp) from hanging (machine\smc91c9x.cpp) . Added proper IOASIC shuffling for NBA Showtime Gold and added SIO FPGA register reset. - viper.cpp: Gun triggers for Jurassic Park 3 and Police 911 - williams.cpp and wmg.cpp . Williams Special Chip 1/2: Added pinout diagram and clarify the abbreviations to reduce confusion with similarly named chips. Fixed a comment error about SC1 vs SC2 behavior. . Added a note and flag that Williams' Mayday has unemulated protection which is currently hacked around . Reduced tagmap lookups and identified some dips for Jin (drivers\williams.cpp) - zaccaria.cpp: Preliminary netlist sound for the Zaccaria 1B11142 board: * Tromba (trumpet) sound is not working - requires Schmitt trigger device. * Connecting cassa (bass drum) swamps other instruments so it's disconnected for now. * Mixing melody sound with speech/SFX is not done in netlist (should be). * Relative levels of melody/speech/SFX are probably still wrong. A good test case for this is Money Money. There's a bit of buzzing on this one as well. The problem with the cassa could be caused by running into non-ideal characteristics of opams again (the LM3900 seems to ignore the V+ value supplied to it). When the netlist library gets Schmitt trigger support, the tromba can be completed. Unfortunately, the tromba is a key part of the characteristic sound of these boards, so you really notice when it's lacking. Bump up accuracy on audio\nl_zac1b11142.cpp netlist - runs slower but sounds a lot better. Added a crude TTL schmitt trigger model and hook up in audio\nl_zac1b11142.cpp sound board, completing the tromba circuit. Fixed typo in audio\nl_zac1b11142.cpp schematics. 7414/7474 combo now actually works. - 7 Smash: added DIPs and layout for '7 Smash' (Game now playable) - AGEMAME . Added extra sets. Improved documentation for aristmk4, aristmk5 and aristmk6. . Added correct maincpu rom to fvrpitch . Correct some fruit machine driver classes (drivers\bfm_sc4.cpp and jpmimpctsw.cpp) - Alien Command: Untangle devices switch-case. Fixed sprite flip x & background pen. Put score 7segs in internal layout. Use tilemap device. - Bad Lands: Make bootlegs to actually boot. Base audio hookup. Fixed tilemap gfxs and sprites are different from original hardware. Added coin counters and freeze switch, moved sound related irq generation into audio CPU block. Converted bootleg to mimic irq 0 sound generation. - Bonus Chance: Fixed CPU clock and added undumped MCU - Captain Flag: Fixed input labels & hookup - Cheeky Mouse . Added netlist sound based on schematics provided by Sam Grech. It doesn't work quite right yet. The "Hammer" and "Pest" sounds are generated by free-running 555/556 timers and gated with LM324 applifiers. For whatever reason, the netlist system produces a kind of buzzing from the "Hammer" circuit when it's supposed to be suppressed, and it doesn't think the pest sound should be suppressed completely so you can always hear it at a low level in the background. The "Cheese" circuit is a bit weird - either they're using the base-emitter junction of a 2SC945 as a signal diode, or there's an error in the schematic (collector is shown unconnected). Connecting this part of the circuit causes the netlist system to hang, so R2/R3/C8/Q2 are not connected for now. . Explain the pest and hammer circuits. Increase solver accuracy to reduce number of false solutions. The usual 1e-8 is not enough here, we need 1e-10. . Added rand() function to pfunction expression parser. Use this to simulate E-B noise in Cheeky Mouse and fix the "cheese" choose. Fixed issues identified by Vas and LordKale4: Made local netlists in Cheeky Mouse static. Replaced stdlib rand by 16 bit galois lfsr. - Critter Crusher: Improved gun control - Daytona USA: Added feedback driver board (including ROM) - Defender: Redumped bad maincpu rom in clone T.T. Defender (Game now playable) - Dream Soccer '94: Removed redundant DSWs - Flower: Scroll, inputs and sprites. Added sprite sizes. - Football Champ: Changed clone 'Euro Champ '92 (World)' to a parent set - Frogger: Fixed long standing background_draw_colorsplit regression. According to schematics it is at 128+8, but it has been verified different on real machine. Video proof: http://www.youtube.com/watch?v=ssr69mQf224 - Fruit Fresh: Added some sound - Jockey Club II . Splitted sets by software revision. Added default EEPROMs and document the procedure. . Finish I/O and added layout for on-screen keyboards . Added sound communication. Fixed backgrounds and colors. . Splitted 'Jockey Club II (older hardware)' into 'Jockey Club II (v1.12X, older hardware)', 'Jockey Club II (v1.10X, older hardware)', 'Jockey Club II (v1.01, older hardware)' and 'Jockey Club II (v1.00, older hardware)'. Changed 'Jockey Club II (older hardware, set 2)' into 'Jockey Club II (v2.03X RC, older hardware, prototype)'. Splitted 'Jockey Club II (newer hardware)' into 'Jockey Club II (v2.00, newer hardware)', 'Jockey Club II (v2.01X, newer hardware)', 'Jockey Club II (v2.04, newer hardware)', 'Jockey Club II (v2.05, newer hardware)' and 'Jockey Club II (v2.20X, newer hardware)'. - Kusayakyuu: Videoram bit 6 isn't flip Y - Laser Battle and Tora Tora: Unconnected SN76477 resistor treated as invalid even though it's the initial value. This fixes debug assert when starting emulation in Laser Battle/Lazarian and Tora Tora (ID 06541) (ID 06542). - Mahjong Dunhuang: Added missing OKI6295 hook up, now the game has speech. Used ramdac_device instead of custom implementation. Reduced tagmap lookups. - Mahjong Yarou: Redumped Mahjong Yarou [BET] (Japan, set 1) and verified it only has 1 Z80 (Game now playable) - Mega Phoenix: Removed Mega Phoenix PIC MCU simulation. It's now emulated using the existing PIC16C54 dump. Clean up dipswitches and added DIP locations. Added documentation. - Monaco GP: Fixed PCB table - Mouse Trap: Added PROMs from clone (version 4, bootleg) to all other Mouse Trap sets and marked them as bad dumps. The Mouse Trap manual confirms it has 3 PROMs. They also match the Teeter Torture ones. - Nintendo Custom: Privatized video\ppu2c0x.h & includes\vsnes.h variables - Pang: Demoted all MSM5205 Pang clones to MACHINE_IMPERFECT_SOUND, since music speed, which is actually set by the MSM5205 VCK output, is likely too fast for all of these. The sound CPU probably does run at 4MHz, since it's a Z80A. - Pata Pata Panic: Fixed OKI6295 audio - PinMAME: Added missing ROM dump for clone Flash Gordon (prototype rev. 1) - Poker Genius: Hook up devices and improved documentation. Graphics decoded. Added coin counter and hopper. Identified dipswitches and double-up game controls. Promoted to working (Game now playable). - Pound for Pound: Rewrote uPD4701 device and hook it up to Pound for Pound. This fixes the arrow didn't move on the menu screens to choose the other boxer or game (ID 00599). - PT Reach Mahjong: Revised PT Reach Mahjong, making it actually working. Added ball and paddle screen drawing (ID 06471), green background as per flyer pics, reach button, flip screen support and updated input labels. - Puzzle Club (Japan prototype): Added ROM FILL (region gfx2) to fixed title screen corruption since MAME 0.178 (ID 06589) - Puzzlet: Identified Player 2 inputs and a couple of DIPs - The Real Ghostbusters: Confirmed that the fake MCU ROM is the cause of clone 'The Real Ghostbusters (US 3 Players, revision ?)' not working - SD Gundam Psycho Salamander no Kyoui: Added base clocks on actual OSCs - Shadow Dancer: Dumped/added later version of sound CPU ROM to Shadow Dancer (World), document main program EPR labels. - Space Invaders: Updated some documentation for clone Space Ranger and added 'CV Version' color proms. Note: A PCB set (CVN 3-layer) was found with a 'Shinnihon Kikaku' sticker on the top board. - Starship 1: Removed hack to restore correct behavior. This fixes also the speed problem (ID 03041). Note: Some mysterious game code at address $2CCE is causes erratic images in the target explosion sequence. But this is the way the actual game worked! - Super Poker (v306US): Identified some dips - Taiwan Chess Legend: Better decode of gfx2 region, borrowed from Goldstar driver. - Thief: Verified XTALs and clean up machine configs - Unknown 'VIP 2000' game: Hook up a few devices (MSM6242 RTC, Intel Flash etc.). More driver progress. - Video Poker: Identified DAC (MC1408) - X-Men: Implemented K054321 as a device. This fixes service menu's "Sound Volume" setting does not affect sound volume (ID 04762). - Input port: Added hopper-like mode to ticket dispenser device (drivers\stv.cpp, machine\ticket.cpp) - Dipswitch fixes in aristmk4.cpp, chinsan.cpp, cischeat.cpp, clpoker.cpp, flower.cpp, galaxian.cpp, luckgrln.cpp, m107.cpp, metro.cpp, namconb1.cpp, ojankohs.cpp, royalmah.cpp, spoker.cpp, ssfindo.cpp and williams.cpp - Fixed rom names in aristmk4.cpp, epos.cpp, kingobox.cpp and royalmah.cpp - Description changes of Battle Gear (Ver 2.40 A), Beastie Feastie, Buffalo (0252636, US), Captain Silver (Japan, revision 3), Dark Horse (USA v4.00, bootleg of Jockey Club II), Ehrgeiz (World, EG2/VER.A), Fever Pitch (2VXEC534, NSW), Football Champ / Euro Football Champ (World), Football Champ / Euro Football Champ (World) (bootleg), Ghoul Panic (World, OB2/VER.A), Gun Survivor 2 Biohazard Code: Veronica (World, BHF2 Ver.E), Jansou (V 1.1), Johnny Nero Action Hero (v01.01.08), Kiki-Ippatsu Mayumi-chan, King of Boxer (World), Koala Mint (CHG1573, US, set 1), Landing High Japan (Ver 2.01 OK), Mahjong Yarou [BET] (Japan, set 1), Margarita Magic (EHG1559, US, set 1), Mazan: Flash of the Blade (World, MAZ2 Ver.A), Mega Force (US), MegaTouch XL (Version R1, prototype?), Mushiking The King Of Beetle (2K3 2ND, World), Mushiking The King Of Beetles 2005 First (Japan), Ojanko Club (Japan, Program Ver. 1.3), Libero Grande (World, LG2/VER.A), Ninja Assault (World, NJA2 Ver.A), Ninja Assault (Asia, NJA4 Ver.A), Operation Tiger (Ver 2.14 O) (ID 06103), Pata Pata Panic, Penguin Pays (0200113V, NSW/ACT), Poker Genius, Rastan Saga (Japan, Earlier code base), Rastan Saga (Japan Rev 1, Earlier code base), Real Mahjong Haihai (Japan, newer), Revenger '84 (older), Space Ranger, Special Forces Elite Training (v01.01.01), Stunt Typhoon Plus (Ver 2.04 J), Thunder Heart (10173811, NSW/ACT), Touchmaster 7000 (v8.1X ASI Standard Evaluation), Tonton [BET] (Japan, set 1), Dunk Mania (World, DM2/VER.C), Sega NetMerc, Soul Edge (World, SO2/VER.A), Soul Edge Ver. II (Asia, SO4/VER.C), Tekken (Asia, TE4/VER.C), Tekken (World, TE2/VER.B), Tekken (World, TE2/VER.C), Tekken 2 (World, TES2/VER.A), Tekken 2 Ver.B (World, TES2/VER.B), Tekken 3 (World, TET2/VER.E1), Tekken 3 (World, TET2/VER.A), Tekken 3 (World, TET2/VER.B), Tekken Tag Tournament (World, TEG2/VER.C1, set 1), Tekken Tag Tournament (World, TEG2/VER.C1, set 2), Tenkomori Shooting (World, TKM2/VER.A1), U.S.A. Football, World Cup (L-1), World Kicks (World, WK2 Ver.A) and World Kicks (US, WK3 Ver.A) - Renamed (acchi) to (patapata), (adustcm) to (aduskcm), (cvs2gd) to (cvs2mf), (ehrgeiz) to (ehrgeizua), (ehrgeizaa) to (ehrgeiz), (hlntroy) to (hlntroyu), (jgakuen) to (jgakuen1), (kingpeng) to (kingpengsp), (lovestrk) to (lovestuk), (marmagicua) to (marmagicu), (marmagicu) to (marmagicua), (mazan) to (mazanu), (mazana) to (mazan), (megaforc) to (megaforcu), (ninjaslt) to (ninjaslta), (ninjaslta) to (ninjaslt), (pompeia6u) to (pompeia6ua), (qnilese) to (qnilesea), (qsheeba) to (qsheba), (rastsagaa) to (rastsagab), (rastsaga) to (rastsagaa), (souledgeaa) to (souledgea), (specfrce) to (specfrceo), (starswep) to (starswepj), (sunmoon) to (sunmoona), (tekken) to (tekkenac), (tekkenac) to (tekken), (tekken2aa) to (tekken2a), (tekken2ab) to (tekken2b), (tekken3) to (tekken3je1), (tekken3ae) to (tekken3), (tekken3aa) to (tekken3a), (tekken3ab) to (tekken3b), (tektagt) to (tektagtuc1), (tektagtac) to (tektagt), (tektagtac1) to (tektagtc1), (wldkicks) to (wldkicksu) and (wldkicksa) to (wldkicks) - MAME . Disambiguated the WINOPTION_YIQ_PHASE_COUNT option. "yiqp" was used for WINOPTION_YIQ_PVALUE and WINOPTION_YIQ_PHASE_COUNT. Removed redundant ";global_inputs" (windows\winmain.cpp). . rand() corrections in src\devices\* and src\mame\* . NPOT subunit compromise: Handlers with a non-power-of-2 number of subunits are allowed once again. However, the offset multiplier will be rounded up to the nearest power of 2 (emu\addrmap.cpp). . DEVICE . Fixed an issue that could cause problems when loading reset_on_load devices (like cartridges) from softlists at runtime. This was not guaranteed to cause a problem; the specific issue here was reported by mr_gw in the context of the CoCo, and the proximate issue (hanging) was in CoCo-specific code. That said, this could cause problems elsewhere (emu\diimage.cpp). . Defend clocks_to_attotime and attotime_to_clocks against the possibility of the device clock being 0 (emu\device.cpp) . Mechanism for devices to generate clocks for other devices. Have set_unscaled_clock and set_clock_scale not call notify_clock_changed unless the device has been started. Owner-derived clocks are now updated whenever the owner's clock is changed, including at configuration time. This simplifies the configuration of various (MESS) NES clones. Added clock_update_delegate type to represent device-generated clock outputs that may be dynamically modified. The model implementation of this is the CLK output in I8085A. DERIVED_CLOCK now updates in response to clock changes and changed (MESS) CoCo to use this mechanism. . Use a proper error message in emu\emumem.cpp . Copy longname, manufacturer, year, filetype, etc. for image info in all softlisted cases (emu\diimage.cpp) . Moved static data (short name, full name, source file) out of devices into the device types . Core changes: * Short name, full name and source file are no longer members of device_t, they are part of the device type. * MACHINE_COFIG_START no longer needs a driver class. * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary. * Specify the state class you want in the GAME/COMP/CONS line. * The compiler will work out the base class where the driver init member is declared. * There is one static device type object per driver rather than one per machine configuration. . Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. . Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. . Other things: * More descriptive names for a lot of devices. * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes. * Used object finders for Irem sound subdevices. * Started to break out common parts of Samsung ARM SoC devices. * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++. * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant. * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size. * Factored out some boilerplate for YM chips with PSG. * Toaplan2 gfx. * Video System video. * Out Run/Y-board sprite alignment. * GIC video hookup. * SMS passthrough control devices starting subslots. . Device name changes: 53C7xx SCSI to NCR 53C7xx SCSI, AMD Am29000 to AMC Am29000, ARM to ARM (little), ARM7 to ARM7 (little) or ARM7 (big endian) to ARM7 (big), AY8930 to AY-3-8930A, C140 to Namco C140, C352 to Namco C352, C69 (M37702) to Namco C69 (M37702), C70 (M37702) to Namco C70 (M37702), C74 (M37702) to Namco C74 (M37702), C75 (M37702) to Namco C75 (M37702), C76 (M37702) to Namco C76 (M37702), CDP1802 to RCA CDP1802, CDP1863 to RCA CDP1863, DAC-76 COMDAC to PMI DAC-76 COMDAC, Digitalker to MM54104 Digitalker, DISCRETE to Discrete Sound, ES5505 to Ensoniq ES5505, ES5506 to Ensoniq ES5506, ES8712 to Excellent Systems ES8712 ADPCM, ESRIP to Entertainment Sciences RIP, FD1089A to Hitachi FD1089A Encrypted CPU, FD1089B to Hitachi FD1089B Encrypted CPU, FD1094 to Hitachi FD1094 Encrypted CPU, H6280 to HuC6280, HuC6280 to Hudson HuC6280, I5000 to Imagetek I5000 Sound, i960kb to i960KB, Intel 8257 to Intel 8257 DMA Controller, Intel I4004 to Intel 4004, Irem M72 Audio Custom to Irem M72 Audio, MAS3507D to MAS 3507D MPEG decoder, MEDIAGX to Cyrix MediaGX, MOS656X to MOS 656X VIC (Attack UFO), MOS6581 to MOS 6581 SID, MOS8520 to MOS 8520 CIA, Namco 15XX to Namco 15xx, NiLe to Seta ST-0026 NiLe, OKI6295 to OKI MSM6295 ADPCM, OKI6376 to OKI MSM6376 ADPCM, OKI9810 to OKI MSM9810 ADPCM, PENTIUM to Pentium, POKEY to Atari C012294 POKEY, PowerPC 603e to PowerPC 603E, PXA255 to Intel XScale PXA255, RCA CDP1869 to RCA CDP1869 VIS, RF5C400 to Ricoh RF5C400, RF5C68 to Ricoh RF5C68, S14001A to SSi TSI S14001A, SAA1099 to Philips SAA1099, SCSP to YMF292-F SCSP, SCUDSP to Sega SCUDSP, SEGA VDP PSG to Sega VDP PSG, Sega/Yamaha 315-5560 to Sega/Yamaha 315-5560 MultiPCM, Signetics 2636 to Signetics 2636 PVI, SN76477 to TI SN76477 CSG, SP0250 to GI SP0250 LPC, SP0256 to GI SP0256 Narrator Speech Processor, SPU to PlayStation SPU, ST0016 (Audio) to Seta ST0016 (Audio), TC8830F to Toshiba TC8830F, TIA to Atari TIA (Sound), uPD7756 to NEC uPD7756, uPD7759 to NEC uPD7759, VLM5030 to Sanyo VLM5030, X1-010 to Seta X1-010, Y8950 to Y8950 MSX-Audio, Yamaha YMZ770 to Yamaha YMZ770 AMMS-A, YM2151 to Yamaha YM2151 OPM, YM2203 to YM2203 OPN, YM2413 to Yamaha YM2413 OPLL, YM2608 to YM2608 OPNA, YM2610 to YM2610 OPNB, YM2610B to YM2610B OPNB, YM2612 to YM2612 OPN2, YM3438 to YM3438 OPN2C, YM3526 to YM3526 OPL, YM3812 to YM3812 OPL2, YMF262 to YMF262 OPL3, YMF271 to Yamaha YMF271, YMF278B to Yamaha YMF278B OPL4, YMZ280B to Yamaha YMZ280B PCMD8, Z8002 to Zilog Z8002 and ZSG-2 to ZOOM ZSG-2. . Worked around for Street Drivin' (prototype) sound regression and fixed Steel Talons regression . Support -listroms for devices (e.g. mpu401 or m68705p3) . Fixed a regression in -listmedia/-listslots. The issue is that -listmedia/-listslots were not honoring command line options specified on the slot. This works around the problem. . Extend slot option processing to the -listdevices command as well. Don't try adding any system-specific options when a wildcard is specified. . Have -listroms display a user-friendly message when no ROMs are required (mame\clifront.cpp) . Updated mame\audio, devices\sound, devices\video, mame\video, mame\drivers and mame\machine devices to use device_add_mconfig insted of device_mconfig_additions . Fixed emu\image.cpp: 1. If either a multipart softlist item was loaded, or a single-part item loaded into a system with more than one of the same media slot, then a reset would cause a fatal error. 2. If a non-existing image was listed in the ini, it would fatal error at start and there was no way to fix it except by hand-editing the ini file. This restores the previous behaviour of ejecting the bad image with the first error. . Fixed issue when the hash length is zero (emu\diimage.cpp) . Fixed issue with the Emscripten port where the emulation would continue to run while paused (emu\machine.cpp) . UI . Added the ability to select different tilemap categories. This allows you to select different tilemap categories in the built-in tilemap viewer. The default is to render all categories (same as before), but you can select to render only a specific tilemap category with the PAGE_UP and PAGE_DOWN keys. . Cleanups to slot options (ui\slotopt.cpp): 1. Polished up residual traces of this code's pre-C++ heritage. 2. Moved completely private code to an anonymous namespace. 3. Created device_slot_interface::slot_name() to wrap the pattern of taking the tag and removing the initial colon. . Added trailing newline to several frontend error messages . Changed 'int ignore_warnings' parameter on core_options::parse_ini_file() to be 'bool ignore_unknown_options' . Fixed bug that permanently disabled some UI search strings when they were cleared. This adopts std::string::clear() and empty() consistently, rather than storing and checking for NUL as with C-style buffers. This fixes issue #2295 ("Search bar broken after changing ROM list view mode") and probably other unreported bugs afflicting UI search text input. . Starting from the Favorites menu now starts the software list submenu (if necessary). Starting a machine containing a list of the software from the Favorites menu, now determines the launch of the appropriate sub-menu with the list of software. . Better completions (plugins\console\init.lua) . Adding hack to fish hashpath option out of INI files prior to softlist evaluation. EIENTEI95 reported an error where the hashpath specified in INI files was not being honored in softlist evaluation. This is a change to preprocess INI files for the sole purpose of finding the hashpath prior to evaluating softlists. . Check for callback name being a null pointer before sending it to %s (emu\schedule.cpp) . Refactoring/cleanup to state load/save handling: Changed running_machine::schedule_[load|save]() to take 'std::string &&' instead of 'const char *'. Changed running_machine::saveload_schedule to be 'enum class'. . Improvements to ROM comparison (tools\romcmp.cpp): Identify plain ASCII text files as such. If a ROM has the same data in each half, print the hashes for that. Avoid buffer overruns. For calculating address masks, don't assume file size to be a power of 2. . Bug fix to -romident and aux verb cleanup. Fixed a bug where resolved slot/image options would choke -romident (reproducible in MAME 0.185 with 'mame64 -romident coco.zip'). 'mame64 -romident' no longer crashes. Resurrected auxverb_cleanup_and_romident_bugfix. Changed usage for -romident and minor cleanups. Supporting auxverbs in any order. . PLUGINS: Updated hiscore.dat . 3rdparty: Replaced Linenoise-NG with a different port that is simpler and uses a different UTF8 parser. Work around older libc (3rdparty\linenoise\linenoise.c). . VIDEO RENDERING SYSTEM . Fixed HQx shaders with BGFX OpenGL backend . Removed the minimum sleep time constraint in video_manager::throttle_until_ticks (emu\video.cpp) . Audit/Validity check . Perform unitmask checking during validation in non-debug builds (emu\addrmap.cpp) . Make single-driver command-line validation work again. Removed some now-redundant checks related to device name validity (including the slot test, which also made assumptions that some (MESS) TI99 bus devices now break). . ~67% improvement of device walk in -verifyroms (mame\clifront.cpp) . -validate complains if device shortnames exceed 32 characters. -listroms and -verifyroms accept multiple names/patterns. . Allow multiple patterns/names for -listxml. Make -listxml instantiate slot devices in slots rather than under the machine root. Fixed -listxml output stops with many sets (agat.cpp, c64.cpp, c128.cpp, ec184x.cpp, iskr103x.cpp, ksys573.cpp, pet.cpp, poisk1.cpp and ti99_4ev.cpp) (ID 06558) (ID 06591). . Removed duplicates from list of approximate software matches (emu\softlist_dev.cpp) . Palette . Don't hardcode color PROM region name and added error handling (emu\emupal.cpp; drivers\aeroboto.cpp, arkanoid.cpp, chinsan.cpp, commando.cpp, exprraid.cpp, exzisus.cpp, flower.cpp, freekick.cpp, goindol.cpp, hexion.cpp, hnayayoi.cpp, holeland.cpp, ichiban.cpp, kyugo.cpp, lasso.cpp, lsasquad.cpp, m63.cpp, mexico86.cpp, mjkjidai.cpp, mjsister.cpp, ppmast93.cpp, pturn.cpp, rmhaihai.cpp, sauro.cpp, shangkid.cpp, slapfght.cpp, snk.cpp, tsamurai.cpp and vastar.cpp) . Replaced some custom palette inits with the appropriate standard callback (drivers\40love.cpp, gluck2.cpp, istellar.cpp, lvcards.cpp and mustache.cpp) . Removed MACHINE_CONFIG_FRAGMENT. This is a pretty minimal change. The point where the root device is added has been moved from the MACHINE_CONFIG_START macro to the constructor of the machine configuration class (made possible by giving drivers their own device types). This isn't the final change in this area. The root device is still being handled specially in that its configuration comes from the game driver structure. This needs to be harmonised with regular devices. . Added device-specific machine configuration (emu\device.cpp, driver.cpp, gamedrv.h and mconfig.cpp). Use Zaccaria driver as a demo for machine config in members. Get rid of mconfig trampoline in a few devices, make handlers protected. Changed some device_mconfig_additions to device_add_mconfig. . General cleanup: Moved rarely-used output and pty interfaces out of emu.h. Consolidate and de-duplicate forward declarations, also remove some obsolete ones. Clean up more #include guard macros. Scope down a few more things. . Cleanups to ram_device (machine\ram.cpp): 1. Changed ram_device to expose specific options, removing the burden for clients to parse RAM strings. 2. Moved validation of command line arguments out of device_validity_check(); that method is only intended for checking the device itself. 3. Miscellaneous polishing. . Multi-Language: Updated Hungarian language localization . Retired min/max in attotime.h, in favor of std::[min|max] (emu\attotime.h, schedule.cpp). . Fixed tools\romcmp.cpp regression with identifying bits stuck high - Compiling . Removed timer_set in dday.cpp, exidy440.cpp, lethalj.cpp, m10.cpp, m92.cpp, metro.cpp and segag80r.cpp . Removed timer_pulse in mw8080bw.cpp, rbisland.cpp, qdrmfgp.cpp, tetrisp2.cpp, machine\rtc9701.cpp, machine\s3520cf.cpp, machine\v3021.cpp, sound\sp0250.cpp, audio\namco52.cpp and emu\schedule.cpp . Fixed a few things found by Coverity (software) in gts1.cpp, rowamet.cpp and mame\info.cpp . LUA . LUA scripts cleanup (scripts\src\lib.lua) . Support LUA style args for some emu.file members (mame\luaengine.cpp) . GCC 7.1 . Fixed obvious bugs found by GCC 7.1 (cpu\dsp56k\dsp56pcu.cpp, spc700\spc700.cpp, machine\stvcd.cpp, video\snes_ppu.cpp, decodmd1.cpp, emu\render.h and machine\n64.cpp) . Fixed buffer overrun warnings from GCC 7.1 (cpu\i8089\i8089_dasm.cpp, drivers\megasys1.cpp and pengadvb.cpp) . Fixed remaining GCC 7.1 issue (mame\luaengine.h, netlist\plib/ppmf.h and tools\chdman.cpp) . Fixed compile with PSXGPU_DEBUG_VIEWER on (video\psx.cpp) . Make the code acceptable to Clang 4.0.0 (drivers\cedar_magnet.cpp) . Don't use -static on msys2 Clang 4.0.0 as it's currently broken, also removed -static-libgcc & -static-libstdc++ on GCC builds as they have no effect if you use -static (scripts\genie.lua). . 32-bit release builds need /bigobj (scripts\genie.lua) - Debugger . Fixed a crash in the 'symlist' debugger command (debug\debugcmd.cpp) (ID 06575) . Assert output calback is set for keyboard/terminal . Scoped enum for Windows (debugger\debugwin.cpp; MACHINE_PHASE_RUNNING -> machine_phase::RUNNING) . m_owner->tag() -> owner()->tag() cleanup in machine\68561mpcc.cpp, scnxx562.cpp, z80dart.cpp, z80scc.cpp and z80sio.cpp 0.185 - New games: Acchi Muite Hoi, Galaxy Games StarPak 4 (prototype), Pirate Ship (ver UAA) and Tekken Card World - New Working games: Popper and Soreike Kokology Vol. 2 - New Non-Working games: Gaelco Championship Tuning Race, GI-Classic EX (satellite terminal), GI-Classic EX (server), MegaTouch XL (Italy Version R1), MegaTouch XL 6000 (Version r07), MegaTouch XL Gold (Version r01), MegaTouch XL Super 5000 (Version R5I), Otomedius (ver GGG:J:A:A:2008041801), Police Trainer 2, Ring Riders (Software version v2.2), Shark [TTL], Super Derby II (Satellite board), Super Star (Recreativos Franco), "Unknown Poker Game", "Unknown Sega gambling game (M1 Satellite board)" and "Unknown 'VIP 2000' game" - New clones: Bionic Commandos (bootleg, set 2), Gals Panic DX (Asia), Knights of Valour / Sangoku Senki (ver. 100, Hong Kong), Mach Breakers (World, MB2), Martial Masters (ver. 103, 102, 101CN), Megatack (set 2), MegaTouch XL Gold (Version r00), MegaTouch XL 6000 (Version r02), MegaTouch XL Super 5000 (Version R5B), MegaTouch XL Super 5000 (Version R5E), Prehistoric Isle in 1930 (World, bootleg), Rastan (World, Earlier code base), The Real Ghostbusters (US 3 Players, revision ?), Sonic Blast Man (US), Street Fighter II': Champion Edition (UPL bootleg), Tokyo Cop (US, dedicated version), Tokyo Cop (US, kit version) and Up Maguila (bootleg of Donkey Kong Jr.) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Dragon Egg! (Masaya 1991) - New PinMAME games: Galaxy Play, Rocky (French speech) and U.S.A. Football (R01u) - New drivers: acchi.cpp, clpoker.cpp, giclassic.cpp, mtouchxl.cpp, otomedius.cpp, piratesh.cpp, supstarf.cpp and usbilliards.cpp - New devices: 3c505, ad7523, aga, aga_pc200, aha1542, ap2000, at_keybc, at_mb, atmel_49f4096, centronics, centronics_printer, clgd542x, comx_pl80, covox, covox_stereo, crtc_ega, cxd1095, dectalk_isa, dm_clgd5430, dms3d2kp, dp8390d, dp8473, ds1205, e05a03, e05a30, ec1481, ec1840_0002, ega, el2_3c503, et4000, ex800, fdc344, fdcmag, finalchs, gf1, gfxultra, gfxultrp, hdc, hdc_ec1841, i486dx4, i8272a, ibm_mfc, ibm_vga, input_buffer, isa_adlib, isa_com, isa_com_at, isa_gblaster, isa_gus, isa_hercules, isa_ibm_mda, isa_ibm_pgc, isa_ide, isa_lpt, isa_mpu401, isa_pds, isa8_fdc_at, isa8_fdc_ps2, isa8_fdc_smc, isa8_fdc_superio, isa8_fdc_xt, k053250ps, lx800, lx810l, mach32, mach32_8514a, mach64, mach64_8514a, mach64isa, mcd_isa, mcpx_ac97_modem, mcpx_apu, mcpx_av97_audio, mcpx_eth, mcpx_ide, mcpx_lpc, mcpx_ohci, mcpx_smbus, mcs3201, mos6581, mos8580, mpu401, msm6253, n82077aa, ne1000, ne2000, nv2a_agp, nv2a_gpu, nv2a_host, nv2a_ram, number_9_rev, output_latch, p72, pc_fdc_at, pc_fdc_superio, pc_fdc_xt, pc_lpt, pc8477a, rtl8019a, s3_764, s3virge, s3virgedx, s97269pb, s97271p, sb16, sega32_pcb_4player, sega32_pcb_analog, sega32_pcb_cd, sega32_pcb_multi_6player, sega32_pcb_multi_analog, sega32_pcb_trackball, segakbd_pcb_aburner2, side116, smc37c78, ssi2001, st11m, stereo_fx, tc8566af, tgui9680, tmp90ph44, upd72065, upd7220, upd765a, upd765b, usb_ohci, virge_vga, virgedx_r1, virgedx_vga, vs9209, wd1002a_wx1, wd11c00_17, wd2010, wd37c65c, wdxt_gen, xt_hdc and xtide - Dynamic Re-Compiling: Added case for parameter PTYPE_CODE_LABEL in UML instruction disassembly (cpu\uml.cpp) - Hyperstone CPUs: Moved memory macros out of header file to help prevent naming conflicts (cpu\e132xs\e132xs.cpp) - I386 CPU . Ignore float exceptions in debugger . Added a CPUID supporting I486DX4 - I386 CPU and M68000 CPU: Workaround for multiple inclusion until SoftFloat is updated to version 3 - I8051 / MCS-51 CPU: Fixed the indirect memory access opcodes dec,inc and xch_a. Indirect access can't touch the SFR and must point to the extra memory above 0x80. This probably fix many machines using this MCU (cpu\mcs51\mcs51ops.hxx). - I8086 CPU . Added decrypted opcodes space support . Fixed jnl flags test - TMS32025 CPU: Fixed TMS32026 status register and banking - Sound Blaster 16: Added save DSP state. Fixed incessant popping before first use. - YMF262 sound: Added save state support to YMF262 and slot pointer checks. - 8251 USART: Improved logging; restrict external command_w and mode_w access to V53 variant. - Crystal: Correction and addition (emu\drivers\xtal.h) - CD-ROM: Translate from 2336 to 2048 (Return 2048 bytes of Mode 1 data from a Mode 2 form or XA sector) - Discrete Netlist . Turn psring iterator into a real forward iterator that works with standard algorithms. There are a few changes to achieve this: * Renamed to const_iterator since it's immutable. * Typedef iterator to const_iterator for now as there's no mutable iterator. * Added default constrcutor and operator-> required by concept, const-qualify operators. * Removed operator+ and operator+= since it's not a random-access iterator (use std::next and std::advance instead). * Return reference/pointer to a proxy rather than a code_t value from opertator*/operator->. The final change is required to meet the requirement that operator* for two equivalent forward iterators return an equivalent reference. The pstring doesn't actually contain a sequence of code_t, so there's no way to return a reference to code_t directly. Instead, a reference to a proxy object aliased on the string storage is returned. The proxy is implicitly convertible to code_t. The most noticeable side effect is that auto c = *s.begin() or for (auto c : s) won't work. You need to do for (auto &c : s) or for (code_t c : s) instead. . Changed pstring to use std::string as storage container. This removes all allocation code from pstring. const_iterator is consequently now based on pstring::const_iterator. Removed pstring_buffer. This was class wasn't a good idea. Vas was right: This change did not impact runtime performance. Startup performance (string intensive) increased. Use char32_t were appropriate. Fixed pedantic Clang warnings. . pstring, pdynlib, pfmtlog refactoring: pstring: Added support for UTF16LE to pstring. Renamed size() to mem_t_size(). Renmaed len() to length(). Added size() == length(). Added empty(). Added simple compare(). pfmtlog: Simplified pfmtlog, added more C++. pdynlib: Added a dynproc type to dynlib to wrap dynamic library calls. Various: Fixed two coverty scan issue. Various Clang warnings fixed. . Netlist code refactoring: More use of C++ features. Some CRTP in pfmtlog. Demangled code for truthtables. Use more constexpr. Rewrote main loop. Use default constructors and assignment operators were applicable. Optimized 7448 and 9316. All of this has decreased startup time by approx. 25% to 30%. Complex netlists like pong or kidniki are parsed, analyzed and constructed in around 15 ms. Run performance has increased by about 5%. All in all not to bad. A game like pong uses a clock of 7 MHz (after division by 2). That's 14 MHz clock invocations. Running at over 200%, 28MHz. On a 3.9 GHz Machine about 140 cycles/clock change. . Refactored 74715 to one device layout. Removed subdevice. . Parametrized device activation in truthtables and minor optimization (devices\nlid_truthtable.h) - ISA: Provide proper unitmask for address spaces of any data width (bus\isa\isa.h) - Konami Custom: Fixed palette-related regressions in Konami GX games (video\k053246_k053247_k055673.cpp) - Midway Custom: Block register updates until unlocked (machine\midwayic.cpp) - Sega Custom . segajw.cpp: Use 315-5296 for I/O . segam1.cpp: Added 315-5296 and some placeholder RAM areas . segas24.cpp and segaybd.cpp: Read inputs through 315-5296 . Sega Rally Championship: Hook up 315-5296 I/O on drive board (does nothing yet) - Sony Custom: Added CXD1095 CMOS I/O Port Expander - V9938 video: New device interface for palettes. Created device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. Updated screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. Modified v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case. A little cleanup V9938. - Voodoo GFX: Changed multi base address selection to fix Funky Ball textures (video\voodoo.cpp). Reverted texture base address calculation to fix seattle driver. - VS9209 I/O: Added VS9209 I/O device for aerofgt.cpp, gstriker.cpp, suprslam.cpp and taotaido.cpp - alpha68k.cpp: Added missing save_item's because otherwise the sound was missing with autosave enabled (ID 06532) - atlantis.cpp and midzeus.cpp . Fixed waveram0 write. Changed conversion to screen coordinates. Added initial blending (video\zeus2.cpp). . Added texture lookup for RGB555 direct color type (video\zeus2.cpp) . Added UV scaling (video\zeus2.cpp) . Increase input FIFO empty interrupt time and start to use address for quad selection (video\zeus2.cpp) . Working on depth buffering. Don't include texture information on normal builds to reduce exe size (video\zeus2.h). . Handle buffer wrapping during frame clear. Select quad size based on microcode source and add code for trimesh rendering (video\zeus2.cpp). . Fixed fast fill routine (video\zeus2.cpp) . Added trackball and keyboard to 'The Grid'. Driver reorg and cleanup. . Updated thegrid and mwskins dips. Block register updates until unlocked (machine\midwayic.cpp). - chihiro.cpp . Added high level simulation of AN2131SC. Let's pretend there is a drive board connected, so OutRun 2 can run with USB enabled and no patches. . Make 'Chihiro Firmware Update For Compact Flash Box (4.01)' start too (video\xbox_nv2a.cpp) . Minor driver update. USB is always enabled now and removed unused parts. . Fixed jamdis debug command . First step in removing the legacy PCI system in favor of the new one (machine\xbox.cpp) - chihiro.cpp, naomi.cpp and triforce.cpp . Converted avalon20, cleoftp, ghostsqu, gundamos, hotd3, initdv3jb, lupinsho, mj2, mj3d, monkeyba, outr2st, radirgyo, scg06nt, tfupdate, wangmid2 and wangmid2j bad CHD v4 to good v5, track1 and track2 length was restored based on known now data patterns. . Added TMP90PH44 device type for Sega 837-13551 I/O Board . Removed identical second halves of overdumped MCU PROMs (machine\jvs13551.cpp) - coolpool.cpp: Fixed TMS32026 status register and banking (cpu\tms32025\tms32025.cpp). This fixes 9-Ball Shootout and Cool Pool can't coin up (ID 06516). - ddealer.cpp: Fixed 'Gun Card' logic. Minor port fix. - decocass.cpp: Fixed missile colors for Astro Fantasia and Highway Chase (ID 03901) - galgames.cpp and tmaster.cpp . Improved blit coordinates (video\cesblit.cpp), fixes some missing graphics in e.g. Galaxy Games StarPak 4. . Fixed OKI6295 CPU1 clock speed in galgames.cpp - hng64.cpp: Moved TLCS-870 macros into source file for now to avoid potential naming conflicts - ksys573.cpp: Fixed 'Guitar Freaks 6th Mix' from booting up due to an incorrect flash card memory size. 32MB works for Guitar Freaks 5th Mix as well. - lindbergh.cpp: Added placeholder for OHCI device (machine\pci-usb.cpp) - megaplay.cpp: Use CXD1095 device for BIOS I/O - megatech.cpp: Rewrote CXD1095 as a device - model1/2/3.cpp: Converted Sega Model 1 Sound Board and Z80-based Digital Sound Board to use proper UART-based serial interfaces. Fixed Sega sound data serial rate. - model2.cpp . Rail Chase 2: Added I/O CPU and expander. There seems to have been an unrelated regression since 0.181 in Rail Chase 2, which now only displays a black screen. Load user1 ROMs closer together to avert read from undefined data at 0x2600000 that drives CPU off rails in debug build. This might not be the correct loading method, but it's at least similar to vf2 and bel (which, like rchase2, have 2MB rather than 4MB ROMs). It's a non-working driver in any case. . Sega Rally Championship: Hook up 315-5296 I/O on drive board (does nothing yet). Added OKI MSM6253 device. - namcofl.cpp: Killed anonymous timers, moved to configured banking and added save state support. Also moved some remaining functions inside the class. - namconb1.cpp . Correct coin inputs and added in Coin3 & Coin4 as needed in outfxies and 'nbsports' games . Correct coin inputs, when set to individual coins slots they were reversed. - naomi.cpp . Redumped clone 'Initial D Arcade Stage Ver. 2 (Export) (GDS-0027)' . Converted Monkey Ball bad CHD v4 to good v5, track1 and track2 length was restored based on known now data patterns - neodriv.hxx: Fixed out of bounds issues in NeoGeo memory access. The NeoGeo driver exposes a number of different memory regions as vectors. Accessing the pointers was done through a '&vector[0]' pattern. This caused problems when the region was size zero; I changed the code to return null pointers in these scenarios. This was reported by Robbbert in response to recent regressions (the command line was 'mame aes bjourney'), but it seems to be present in MAME 0.184. - nss.cpp, sfcbox.cpp and snesb.cpp: Removed a few legacy type macros and eliminated uint type properly (cpu\g65816\g65816cm.h) - peplus.cpp . Documentation updates based on printed IGT materials . Patriot Poker has multiple Bonus levels - sangho.cpp: Fixed clocks based on actual XTAL. Picture of PCB clearly shows a 21.4772MHz, PCB has a Z80B so clock is 3.58 based on XTAL like the YM2413. - segas32.cpp . Input modernization: Use I8255 or MSM6253 devices for most non-JAMMA inputs. Separate service and test inputs in Multi-32 and twin-unit sets. . Four coins are recognized in Air Rescue, not just two. Use MB8421 device for V25 communications in Golden Axe 2. Assign keys in OutRunners to some 2P inputs. . Correct Kokoroji 2 inputs. Added SONY CXD1095 CMOS I/O Port Expander. Promoted Kokoroji 2 to working. Find switch to disable CD & printer; game presumably works now, though rather imperfectly. Game name changed to agree with title screen. Added a whole bunch of lamps. . Use Sega 315-5296 device for primary I/O. Restored Coin 2 inputs to f1lap, radm, radr and slipstrm. . Identified onboard service inputs and restore them to practically all games . Disabled some (probably strictly unnecessary) address mirroring due to memory init thrashing when combined with DEVREADWRITE8(0x00ff) . Removed device clocks for 315-5296 (not used by the emulation) where not verified - segaxbd.cpp: Rewrote CXD1095 as a device. Watchdog type is MB3773. Prevent unwanted watchdog resets (too many watchdog resets; schematics may be wrong). Fixes memory test resets in Super Monaco GP and clones (ID 01688). - segaybd.cpp: Read inputs through 315-5296. Added OKI MSM6253 device. Watchdog type is MB3773. Correct I/O clock; misc notes. - seibuspi.c and zn.c: When built with MSVC, clear() resets m_buffer size to 0 and m_buffer[0] throws an exception (machine\7200fifo.cpp). - stv.cpp: Workaround for finlarch/sasissu/magzun ODD bit regression (video\stvvdp2.cpp) - tatsumi.cpp: Read inputs through CXD1095 device (cyclwarr and bigfight) - vicdual.cpp: Added 97269-P-B and 97271-P daughterboards for N-Sub. Fixed missing explosion sound. - viper.cpp . Input cleanups. Identified dipswitch position. Inverted flip dip. Red pen these placeholder dumps. . Fixed 'ParaParaParadise 2nd Mix' dipswitch error . Tsurugi "Foot Pedal" input . Bypass serial check for Police 911 - vp101.cpp: Improved support for reduced-cost VP050 version - BeatHead: Removed speedup hack - Bingo Circus: Added 8x UARTs - Blood Bros., Toki and others: Added dump of bipolar PROM. Documented undumped PROMs for cupsoc, dbldynj, dynduke, raiden, skysmash and totmejan. - Boxer (prototype): Added save state support - Chameleon 24: Don't crash on soft reset - China Gate: Explicitly specify 8-way joysticks for consistency - Disco Boy: Kill trampoline, removed unneeded prefixes and use bankdev for the first ram bank. - E Jong High School: Correct game name; document adapter layout. - Funky Ball: hanged multi base address selection to fix Funky Ball textures (video\voodoo.cpp). Changed MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH from 64 -> 32 - Hot Rod: Read pedals through MSM6253 - Janken Man Kattara Ageru: Added DAC type - Jumping Pop: Fixed 'BG Modesty' dipswitch in Jumping Pop. The nude/bikini pics are displayed after a level when set; more modesty means more clothes and vice versa. - Knights of Valour 3 HD: Redumped game - Mahjong CLUB 90's: Removed DSW B from the driver as it does not exist on the real PCB (ID 06526) - Mahjong Sisters: Substitute timer_set with timer_alloc(timer) and timer->adjust() - Midnight Landing: TMS32025 memory map fix - New York! New York!: Documented that Taito's T.T. New York New York ROMs match the Sigma set. - PinMAME: Adjust Meg-Aaton clocks to conform with schematics - Popper: Fixed memory map and finish gfx rendering. Game is fully working again. - Sprint 4 and Ultra Tank: Killed anonymous timers, removed unneeded prefixes and added save state support. - Sprint 8: Added save state support - Volfied: Removed prefixes and used timer_alloc instead of timer_set - Wolf Pack: Added save state support, removed unneeded prefixes and moved from timer_set to timer_alloc. - VLC Nevada: Make it to show something - Input port . albazc.cpp: Use standard inputs consistent with other hanafuda games. Hanafuda games usually have a mahjong panel for input. Removed hard coded IPT_SERVICE assignments. Assign "Data Clear" to IPT_MEMORY_RESET. Changed "Medal In" & "Pay Out" to standard gamble service buttons (Previously standard service buttons). Changed Lockout "Key" to PORT_TOGGLE type. Payout operation has been clarified and noted at start of driver. Correct "Payout" button to use "IPT_GAMBLE_PAYOUT". Added Hookup hopper to TODO list. Added hopper activity addresses to notes. Set IPT_SERVICE & Double up buttons as standard assignments. Set "Ext In 1" & "Ext In 2" as IPT_OTHER. . aleck64.cpp: Correct Service/Test Button assignments. "Service Mode" which is assigned to IPT_SERVICE is not located in aleck64.cpp - No changes. "Service Button" is assigned to IPT_SERVICE1 (Hard coded keycode removed & default used). "Test Button" is assigned to IPT_SERVICE2 (Test Button is not displayed in Machine input). . amaticmg.cpp: Removed hard coded key assignment and use default mapping . ampoker2.cpp: Make various key assignments consistant. Cleanup different assignments for the same buttons across supported games while still keeping true to the Game Notes / Operation instructions. 1. Make "Operator Key" consistant (Use IPT_GAMBLE_SERVICE), 2. Make "Supervisor Key" consistant (Use IPT_SERVICE2), 3. Make "Hopper 1" consistant (Use IPT_OTHER, KEYCODE_Y), 4. Make "Hopper Out" consistant (Use IPT_OTHER, KEYCODE_G), 5. Make "Hopper Low" consistant (Use IPT_OTHER, KEYCODE_H), 6. Make "Return Line" consistant (Use IPT_OTHER, KEYCODE_J), 7. Make "Coin Refill" consistant (Use IPT_OTHER, KEYCODE_R), 8. Make "Payout" consistant (Use IPT_GAMBLE_PAYOUT), 9. Make "TILT" consistant (Use IPT_TILT) and 10. Make "Double" consistant (Use IPT_GAMBLE_D_UP). . realbrk.cpp: Removed service button hard coded keycode assignment. Removed hard coded key assignment and use default mapping. - Dipswitch fixes in ddealer.cpp, nbmj8891.cpp, viper.cpp - Fixed rom names in namconb1.cpp, shangha3.cpp and segas32.cpp - Description changes of Bionic Commandos (bootleg, set 1), Boxing Mania: Ashita no Joe (ver JAA), Knights of Valour 3 HD (M-105CN 13-07-04 18:54:01), GTI Club: Corso Italiano (ver JAB), GTI Club: Corso Italiano (ver EAA), Mach Breakers - Numan Athletics 2 (Japan, MB1), Megatack (set 1), Merit Joker Poker (9131-09), Mushiking The King Of Beetles - Mushiking II / III / III+ (Ver. 2.001) (World), Mushiking The King Of Beetles - Mushiking II / III / III+ (Ver. 1.001) (World), Soreike Kokology Vol. 2 - Kokoro no Tanteikyoku and U.S.A. Football (R06u) - Renamed (machbrkr) to (machbrkrj), (sbm) to (sbmj) and (tokyocop) to (tokyocopi) - MAME . 3rdparty: BGFX, BGFX shaders, GENie and BX. Assume LLVM libc++ if __llvm__ is defined but __GLIBC__ is undefined (bx\platform.h). Fixed GENie linking order. . VIDEO RENDERING SYSTEM . Guard against assert failure on partial updates starting from incomplete first line (emu\screen.cpp) . Moved "optional" basemem and extmem arrays out of tilemap_t. This is intended as a first step towards divorcing tilemap_t and tilemap_device. . Reverted entries(), indirect_entries(), shadows_enabled() and hilights_enabled() to return the configuration parameters instead of accessing the live state. The thought behind the implementation change was that palette devices could potentially determine the number of entries from the sizes of devfind objects. The regressions caused by this have been worked around, but it was probably a bad idea in the first place. Zero-entry palettes are no longer valid. The code that tried to support them was basically left over from when every running machine had a single global palette. Reverted entries(), indirect_entries(), shadows_enabled() and hilights_enabled() to return the configuration parameters instead of accessing the live state. The thought behind the implementation change was that palette devices could potentially determine the number of entries from the sizes of devfind objects. The regressions caused by this have been worked around, but it was probably a bad idea in the first place. Zero-entry palettes are no longer valid. The code that tried to support them was basically left over from when every running machine had a single global palette. Disallow a negative number of palette entries by changing some types (emu\dipalette.cpp) . BGFX: Apply environment variable substitution to bgfx_path (render\bgfx\chainmanager.cpp, effectmanager.cpp and shadermanager.cpp) . DEVICE . Renamed the write-only -printer image instance type to -printout. The former option name conflicts with RS232 printer ports in several drivers (emu\diimage.cpp). . New device interface for palettes. Created device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. Updated screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. Modified v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case. Enforce dependencies in various Konami, Sega & Seta GFX devices. Disable palette uniqueness check in divideo. . Made a number of device_image_interface members private. This also fixes a number of get_default_card_software() implementations that were accessing m_file incorrectly. Removed duplicate prototype. . Fixed an issue where reset_on_load images would not properly persist across emulation sessions (emu\image.cpp) . Workaround for issue where the cannonical instance_name for a device was lost (emu\image.cpp). This is a hack; details are in the source code. I felt that it was too late in the 0.185 release cycle to do anything intrusive. I intend to fix this "for real" when image/slot option morphing is encapsulated within emu_options. . UI . Input map fixes: Fixed a longstanding bug that prevented binding several ORed buttons to any input belonging to a non-root device. Fixed a visual glitch when assigning inputs to analog sequences. Fixed buttons cannot be mapped to more than one key using 'or' logic using internal UI in all drivers with slot-based controllers (ID 06519). . Fixed selecting a new ROM file through the internal UI for consoles via external path ((MESS) a2600, a7800, coleco, genesis, nes and snes) (ID 06531). Fixed UI 'Switch Item Ordering' corrupts software list (ID 06402). . Fixed issues specifying image/slot options fron INI files. I added hooks so that options specified at the command line can also be responded to when parsed from INI files, but in the long run much of the logic that is currently in mame_options should go into emu_options so that when an option is specified, all of the wacko logic around slot/image specification "just works" because it is encapsulated within emu_options. . More options refactoring: Stabilization options function for 0.185 release . Fixed a regression in the mandatory image check. As a consequence of recent changes, we were not properly blocking the emulation from starting when a must_be_loaded() image had an unspecified image (ui\info.cpp and ui.cpp). . Workaround for scenarios where both the command line and an INI specify an image option. This is a hack; see commentary within the code. I intend to fix this "for real" when emu_options become more self contained (emu\emuopts.cpp). . MEMORY SYSTEM: Removed direct_update from the core (emu\emumem.cpp) . Fixed issue that could cause bogus arguments to be reported incorrectly (util\options.cpp). Examples: 'mame -whatever nes' would previously be reported as "Unrecognized argument: nes". . SOFTWARE LIST . Fixed a bug that caused "Switch Item Ordering" in the software list menu to dupe entries (ID 06402) . Changed a lookup within the softlist code to use std::find_if() . Changes to make get_default_card_software() less stupid. The goals with this change is to make get_default_card_software() a bit more standalone by making it a const method that does not mutate the state of the device_image_interface. This is done by passing in a small structure that encapsulates the minimum of information that get_default_card_software() needs. This also eliminates the need for device_image_interface::open_image_file() . Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts. Converted the NTFS filetime code and Mac datetime code to use util::arbitrary_clock. This is in preparation for a bigger change to Imgtool where I eliminate usage of time_t. . Validity . Changed the validity checks to have its own emu_options. This comes from a regression reported by Tafoid whereby the following command line "mame coco wildcat" would report the following error, which was not really fatal because it happened within validation: Driver t4426 (file coco12.cpp): 1 errors, 0 warnings Errors: Fatal error Unknown slot option 'pak' in slot 'ext'. My changes to option processing changed emu_options to put image and slot options in their own arrays, and I expect those image/slot options to be pertinent to the active driver. However, driver validation was passing the emu_options associated with the main emulation to validation specific maching_config for other drivers. This changes validate_one() to always use a fresh emu_options with each individual validation. . Changed validity_checker to keep a fresh emu_options for validation purposes. This seems to solve the performance problems introduced by PR#2221 while keeping with that PR's goals of not using the "runtime" emu_options for purposes of validation. . Workaround for sibling disk image loading issue (emu\romload.cpp) - MAC OS X: Fixed OS X tools build when MAME_DIR includes spaces (src\tools.lua) - Compiling . Fixed a pedantic MSVC warning in emu\dipalette.h . Made a number of methods be const correct and static where appropriate. Also changed a few methods to return 'bool' when appropriate. . Removed timer_set in artmagic.cpp, blstroid.cpp, cave.cpp, galastrm.cpp, galaxian.cpp, gpworld.cpp, groundfx.cpp, gunpey.cpp, hyprduel.cpp, midtunit.cpp, overdriv.cpp, segas32.cpp, taito_f3.cpp, toaplan2.cpp, triplhnt.cpp, tubep.cpp and victory.cpp. . More timer_alloc changes in astinvad.cpp, boxer.cpp and destroyr.cpp. . Removed anonymous timers in astrocde.cpp, asuka.cpp, dcheese.cpp, flyball.cpp, gameplan.cpp, gaplus.cpp, gcpinbal.cpp, gunbustr.cpp, hyhoo.cpp, kinst.cpp, midvunit.cpp, midzeus.cpp, nightgal.cpp, opwolf.cpp, othunder.cpp, pastelg.cpp, policetr.cpp, rabbit.cpp, rollerg.cpp, segaorun.cpp, sprint8.cpp, stfight.cpp, tehkanwc.cpp, thunderx.cpp and trucocl.cpp - Debugger . More robust memory access operator parsing (debug\express.cpp) . Fixed writes to decrypted opcode memory (debug\debugcpu.cpp). Fixes problem in the debugger and the cheat engine as currently the writes to opcode memory are not handled correctly, so separated EXPSPACE_RAMWRITE and EXPSPACE_OPCODE case statements to allow opcode writes to access the correct memory. Example: In flicky this will now disable cat collisions with the main sprite: maincpu.ob@3ac6=c3. This is the simplest way of updating this, EXPSPACE_OPCODE is now a copy of EXPSPACE_RAMWRITE except it uses AS_DECRYPTED_OPCODES instead of AS_PROGRAM. This method means I've got a lot of work updating a lot of cheat file warnings ...but this is the correct way of doing this. . Make debugger 'dasm' command able to traverse virtual spaces with unmapped holes. Previously, 'dasm' would enter an infinite loop if it hit an unmapped pc, continuing to grow the output file until the program was killed (debug\debugcmd.cpp). 0.184 - New games: Shiny Golds and 'Soreike! Anpanman Popcorn Factory (Rev B)' - 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), Gals Panic (MCU Protected, set 2), Griffon (Olympia bootleg of Phoenix), Karnov (Japan, bootleg with NEC D8748HD), NBA Play By Play (ver AAB), OutRun 2 Special Tours (GDX-0014), Penguin Brothers (Japan, bootleg), Phoenix (IDI bootleg), Pot O' Gold (U.S. Games, v580F), 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), Shanghai III (US, prototype), 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, 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: ad557, ie15_cpu, ie15_device, ie15_keyboard, ie15_terminal, sega32_pcb_upd7725 and tms1025 - New Cheat.dat: http://www.mamecheat.co.uk/index.htm - ARM7 CPU: Repair broken ARM (arm7\arm7ops.cpp) - I386 CPU . Fixed enum range check (cpu\i386\i386ops.hxx and pentops.hxx) . Save additional CPU flags (cpu\i386\i386.cpp) - Dynamic Re-Compiling . Fixed MAME crashed running scud with -bench 90 (cpu\drccache.cpp) (ID 06492) . Fixed regression on OS X - MIPS CPUs . Retry fixing FPU register aliasing (mips\mips3.cpp and mips3drc.cpp) . Make sure branch delay slot instruction is not virtual instruction before trying to generate code to add it to the block checksum (mips\mips3drc.cpp). . Initial support for VR5500 and TX4925 CPUs - N2A03 CPU: Refactored clock definitions (includes other drivers using the N2A03) (cpu\m6502\n2a03.h) - T11 CPU . Emulated MFPT instruction . MOV, CLR and SXT read memory before writing to it (Page B-8 of User's Manual) - 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. . Overrided device method to support changing clock frequencies in the AY8910. Added virtual keyword to declaration. - TMS5110 sound: Updated some comments - uPD7725 sound . Fixed disassembly . Added preliminary IRQ support. Handle the LSB-first load from SI properly, for when SI gets hooked up in the future. . Added siack and soack registers and their requisite jumps, not used yet. Fixed missing si register and flags registers savestate registration. . Fixed an off-by-one error when loading uPD96050 roms for SNES games (bus\snes\upd.cpp) . Fixed LSB-first bit ordering for SO reg, not used yet. Use accessors to access the SR p0 and p1 bits, rather than masking. . Correct which registers are actually reset by /RESET and fixed/updated IRQ system, should behave more properly now. - 6821 PIA: Incremental C++-ification of 6821pia.cpp.1: Changed some 'int' ==> 'bool' where appropriate. 2. Changed the various control byte macros to static functions. - 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. . Fixed openmp compile (solver\nld_solver.cpp) - Floppy . 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) - MC6845 CRT: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor. - Nintendo Custom: Improved PAL clone timings (video\ppu2c0x.cpp) - PCI-IDE controller: Perform IDE reset during PCI device reset (machine\pci-ide.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. Added palette configuration to save state. Fixed broken port reads on state load. VGA card now saves vga.dac to the state, as the MAME palette is clobbered periodically with data from here. Changed the type of vga.dac.colour to a flat uint8_t array seeing as save_item isn't struct-friendly. Fixes Liero. Saved more VGA flags, including vga.miscellaneous_output, which despite the vague name is needed for reading from the ports. - Z80 SIO . Added I8274 type macros and derived class + logging . Changed (MESS) isbc.cpp to use z80sio.cpp i8274 device driver instead of z80dart.cpp . Variant support for i8274/upd7201 and a refactored interrupt support and cleanup Z80-SIO - aerofgt.cpp, f1gp.cpp, fromance.cpp, ojankohs.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp, welltris.cpp: Added skeleton device for Video System C7-01 GGA - ambush.cpp: Driver state cleanups - amusco.cpp: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor - aleck64.cpp . Added short delay between RDP full sync and DP interrupt (machine\n64.cpp and video\n64.cpp). Since the RDP is not currently scheduled for its own timeslices, this will allow the RSP interrupt from graphics tasks to arrive at the main CPU first. In some instances, the RSP timeslice would end after the RDP had been sent the full sync command, but before the RSP could finish its task. No issues were manifest if both RSP and RDP interrupts arrive at the same time, but it is still expected that the RSP interrupt should arrive first. . Let debugger disassembly windows track RSP PC . Flush RSP drc cache when SP DMA changes IMEM (machine\n64.cpp) . Make element selection in vector load/store DRC C functions consistent with other implementations (cpu\rsp\rspcp2d.cpp). . Fixed a minor issue with RDP disassembly listing for Load Block (video\n64.cpp). - atlantis.cpp and midzeus.cpp: Better texture lookup (video\zeus2.cpp) - atlantis.cpp, midzeus.cpp, seattle.cpp and vegas.cpp: Added serial input (machine\midwayic.cpp) - bagman.cpp: Use 4-way joysticks in all games except Squash (Itisa) - blockade.cpp: Rewrote driver - chihiro.cpp . Redumped Ollie King (GDX-0007) . Some information on USB commands for AN2131SC. AN2131SC is used as a USB to serial converter, one of the 2 serial ports can be setup as MIDI. - ddenlovr.cpp and dynax.cpp: Device type corrections - deco32.cpp: Comment out popmessage - dkong.cpp: Major latch8 and discrete device cleanup: Eliminate the AM_LATCH8_XXX address map macros. The normal DEVREAD/DEVWRITE ought to be good enough. Eliminate the "offset" specifications from latch8_device. This was used mostly to funnel outputs to discrete_device, which now has a templated write_line handler. (Inputs can use MCFG_DEVCB_RSHIFT instead.). Organize latch8_device's callbacks as arrays of devcb_readline/devcb_writeline, helping simplifying code greatly. Change latch8_device::bit[0-7]_(q_)?r to be proper line read handlers. This requires two extra READ8 handlers in audio/dkong.cpp, but memory-mapping for the MCS-48 T0 and T1 lines is totally artificial anyway. Comment out an assert that now tends to fail due to buggy AM_MIRROR behavior. - docastle.cpp: Read inputs through TMS1025. Added input callbacks and read handler to TMS1024/TMS1025. Clean up code a little. Added MS pin to TMS1024, added write to port 0. - dooyong.cpp: Fixed regression (spriteram8 -> spriteram16) - galaxian.cpp . 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 - homedata.cpp . Various updates. Changed 4-way joysticks to correct 8-way to Reikai Doushi and Battlecry according to manual. Added button descriptions. . Added DSW layouts to Reikai Doushi and Battlecry & a note about their numbering according to the manual. - marineb.cpp: Correct 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 . Added roms 315-5571.bin and 315-5572.bin to the Model 1 CPU Board . Added dumped internal TGP rom 315-5573.bin to Virtua Racing and clone Virtua Formula - model1.cpp and model2.cpp: Massive MB86233 disassembler overhaul - naomi.cpp . 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 . Dumped 'House of the Dead 2' Japan BIOS . Measured NAOMI's MIE MCU speed - peplus.cpp: Fixed CID: 138606 "Logical vs. bitwise operator" - polyplay.cpp: Hook up the SIO - raiden2.cpp: Added tile_scroll_w safety fence - rpunch.cpp: Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - seicross.cpp: Added XTAL - sg1000a.cpp: PSG is SN76489AN, just like the console. - vp101.cpp: Added framebuffer, some inputs, ATA, NVRAM and protection cheat. Implemented ATA DMA. - wildpkr.cpp: Work out several device hookups. The use of a DS2401 "ID" in tabpkr is inferred from the code. The data supplied for it is totally artificial and the chip may have been stripped from the PCB pictured on citylan.it. Much still needs to be learned about the hardware of these games. The emulation doesn't display even error codes yet. - AGEMAME: New aristmk5.cpp sets, layouts and documentation - Air Rescue: Added Air Rescue's uPD7725 DSP and load its roms. Disabled for now, since the uPD7725 CPU core will need some features added before this can work. - Alpha One: Adjusted screen size - Area 51: Site 4: Documented an earlier BIOS version. Doesn't seem compatible with the HDs available. - Assault, Bouncing Balls, Dangerous Dungeons, Dark Tower, Kid no Hore Hore Daisakusen, Klax, Mad Donna, Pushman, Super Duck, Super Toffy, Toffy and Trog: Use 4-way joysticks. No manual or flyer showing controls for Super Duck is available, but gameplay does not seem to accept diagonal input at any time. Dangerous Dungeons, despite being a conversion of Double Dragon, has a manual that notes that 4-way joysticks should be used. It seems reasonable to assume that the other non-Technos games should do the same, with the exception of Thunder Strike. - 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 fixes 3D graphic objects in Hyperdrive (ID 06512). - Rushing Heroes: Redumped sound rom - Last Bank: Added coin counters - Mario Kart Arcade GP and Mario Kart Arcade GP 2: Added security PIC dumps 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. - Pasha Pasha 2: Hook up lamp outputs and clickable artwork - Phoenix . Dumped/redumped the PROM for some of the bootlegs. Also started documenting the differences. . Added MACHINE_IMPERFECT_SOUND to the games known to substitute the melody generator with a piggyback PCB. There might be more. - PinMAME: Added program ROMs and correct title for Volley. Redumped Columbia. - Poizone: Fixed 'Setting 2' dipswitch - Popper . 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). - Return of the Jedi: Fixes a yellow vertical line on the left after insert coin (ID 06369) - Rock Climber: Fixed MACHINE_CONFIG (rockclim base off mooncrst) - Sea Bass Fishing: Fixed game shows only black screen (video\stvvdp2.cpp) (ID 04454). Note: Sea Bass explicitly wants a monitor mode bit to be 0 when screen is disabled from bios to game transition. - Space Warp: Added Hunchback (Galaxian hardware) color prom - Teenage Mutant Ninja Turtles - Turtles in Time: Fixed missing 3Player & 4P inputs in clone (4 Players ver EAA) - Time Attacker: Update notes - Tsukande Toru Chicchi: Added clock XTAL definition for the Z80 CPU, divisor is guessed. - Trog: Use different inputs for clone Trog (prototype, rev 4.00 07/27/90) - 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, itech8.cpp, konamigx.cpp, neopcb.cpp and suprgolf.cpp - Description changes of CoMOTION, Dynablaster / Bomber Man (bootleg, set 1), Dynablaster / Bomber Man (bootleg, set 2), Dyno Bop (V1.1), Gals Panic (MCU Protected, set 1), Griffon (Videotron bootleg of Phoenix), 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) and (trpdlght) to (trpdlghtu) - MAME . 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 regression when loading multipart softlists. Pernod found a regression introduced in the 0.183 softlist refactoring whereby multi-part softlist items would not distribute to multiple slots. The problem was that the old code was relying on the image slots being loaded into the core. This is not the way the new system works, so I've added a hook into software_list_device::find_mountable_image() that allows the new approach to work. . Fixed Software list items with the "requirement" sharedfeat don't work (ID 06464) . DEVICE . 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. 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. This fixes sampleof entries show up on devices which do not have samples (ID 06347). . 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. . Device cleanup (machine\segacrpt_device.cpp) . 3rdparty . Updated GLM to tip of stable branch (0.9.8.5 pre-release), fixes build with MacPorts Clang. . Refactored HTTP handling to be easier to extend and use . Added emu_file::write, enables the use of sockets and pipes from LUA without needing a third party library (mame\luaengine.cpp). . 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 . AUDIT . Fixed null pointer bug when -verifyroms is used without a driver spec . Substantially speed up -verifyroms, hack other verbs temporarily while device data is being refactored. . Greatly improved performance of -romident on multiple files (mame\clifront.cpp and media_ident.cpp). This hashes all the files upfront, then does the expensive driver/software scan only once. It also walks all devices so it can identify ROMs for slot devices that aren't inserted by default. . Include devices in -listxml with * or no argument . Preliminary attempt to fix regression caused by poor understanding of get_default_card_software() (mame\mameopts.cpp) . Converted screen_device VBLANK callback to devcb_write_line: WRITE_LINE callback has same functionality, except that screen is not an argument. Renamed screen_eof_xxx to screen_vblank_xxx in many drivers. No changes to externally registered vblank delegates or screen update methods. . PLUGINS: Updated hiscore.dat . Uncovered what might be a core bug: AM_SELECT does not work properly with masked handlers. . Memory unit masking and address mirroring fixes: Fixed a bug which effectively treated AM_MIRROR as AM_SELECT when applied to a single-address range mirrored into a contiguous block. The automatic expansion of zero address masks now only applies to those stemming from (default) configuration, not from optimization (This allows the assertion in latch8_device to be reinstated). Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - SDLMAME: Fixed SDL build on Win32 and ZEXALL build - Compiling . 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 &' - Debugger . 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 . Print octal addresses in the trace if CPU is octal (debug\debugcpu.cpp) . Added missing disable_side_effect in find_pc_backwards (debug\dvdisasm.cpp) 0.183 - New games: Dodge Man, Flash Boy (DECO Cassette), Galaxy Games StarPak 3, Omega and Sega Sonic Cosmo Fighter - New Working games: Donkey Kong 3 (bootleg on Ambush hardware) and Gallop Racer 2 - New Non-Working games: The King of Fighters XII (v1.00), KOF Sky Stage (v1.00J), Mega Card (Ver.0210, encrypted), Star Horse 2001 (satellite, Rev B) and Tsukande Toru Chicchi - New clones: Dungeons & Dragons: Shadow over Mystara (Japan 960223), Gals Panic S2 (Europe), Gamshara (World, 10021 Ver.A), Head Panic (ver. 0702, 02/07/1999), The King of Fighters '99 - Millennium Battle (Korean release), Missile Attack, Momoko 120% (bootleg), Mouse Trap (version 2), The Pit Boss (2214-07, U5-0A), Puzznic (US), Red Hawk (Greece), Speak & Help, Street Fighter EX2 (USA 980312), T.T. Defender, Virtua Bowling (Hong Kong, V101HJS), Virtual On 2: Oratorio Tangram (Revision A), VS Block Breaker (Europe) and Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000) - New AGEMAME games: Dolphin Treasure - Cash Express (AHG1606, US), Dragon's Eye (0100521V, NSW/ACT), Golden Pyramids (0100878V, Victoria), K.G. Bird (0200024V, NSW/ACT), Margarita Magic (EHG1558, US), Panther Magic (0100716V, NSW/ACT), Penguin Pirate II (0100869V, Victoria), Pet Shop (0100731V, NSW/ACT), Phantom Pays (0500005V, NSW/ACT), Q.T. Bird (0500009V, NSW/ACT), Toucan Tango (0100782V, NSW/ACT), Winning Post (RHG0418-04, US) and Wizard Ways (0200396V, NSW/ACT) - New PinMAME games: Amazon Hunt III (rev. 1, French), Arena (French), Arena (German), Bad Girls (French), Bad Girls (German), Big House (French), Big House (German), Bone Busters Inc. (German), Bounty Hunter (German), Diamond Lady (French), Diamond Lady (German), Excalibur, Excalibur (German), Genesis (French), Genesis (German), Gold Wings (French), Gold Wings (German), Hollywood Heat (French), Hollywood Heat (German), Hot Shots (French), Hot Shots (German), Mars - God of War (Prototype), Monte Carlo (Pinball, French), Monte Carlo (Pinball, German), Monte Carlo (Pinball, rev. 2), Raven (German), Robo-War (French), Rock (German), Rock Encore (German), Rollergames (AD-2) Prototype, Rollergames (LF-2) French, Rollergames (LF-3) French, Spring Break (French), Spring Break (German), Tag-Team Wrestling (German), TX-Sector (French), TX-Sector (German), Victory (Pinball, French) and Victory (Pinball, German) - New drivers: galgames.cpp and konmedal.cpp - New devices: cesblit, dac08, dac0832, galgames_slot, pic16c56, starpak_cart, tmp87ph40an and ymz284 - New Compile Tools: MSYS2 (http://mamedev.org/tools/) - ARM7 CPU . ARMv5 addition. Added support for the second BLX form for ARMv5, and fix behavior of second BLX form in THUMB. . Further fixes for ARM - Dynamic Re-Compiling: Fixed long-standing copy/paste error (cpu\drcbec.cpp) - M6805 CPU . Added skeleton M6805 CMOS devices . Added M146805 and M68HC05 to UNIDASM . Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families. . Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error. . Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map . Fixed disassembly of BIT opcodes. Don't burn cycles on disabled interrupts. Added partially implemented MC68HC05C8 and MC68HC705C8A. Implemented 'HC05 digital I/O, timer/capture/compare and COP watchdogs. Probably still some bugs in 'HC05 peripherals. . Implemented M68HC05 edge-sensitive external interrupts in MC68HC05 . Clean up bih/bil handling - M68705 CPU . Dumped MC68705R3 for clone Bouncing Balls (Adult). Hook up protection MCU in clone Bouncing Balls (Adult), added to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). . Confirmed MC68705R3 bootstrap program matches Bouncing Balls (Adult) M68705R3 . Fixed problem with edge case in 68705 timer overflow interrupt. This fixes the missing enemies in the second stage of Xain'd Sleena (ID 06499). - PIC16C5x CPU . Fixes for writes with the status register as destination: Write all bits except TO and PD, thus enabling e.g. bcf, bsf or clrf to change the flags. rlf and rrf must update the flags after the store to work correctly on this register. . Small update, correct savestates. . Added PIC1650 and PIC1655 devices. Removed unused MCFG_PIC16C5x_T0_CB callbacks. . Added RTCC pin (not called T0, plus it was implemented in reverse). Made RTCC (aka T0CKI) pin an inputline handler. Added alias for RTCC pin (Note: In the mid-90s RTCC was renamed to T0CKI). . Fixed RTCC clocking in sleep mode and potentially clocking it too fast . Added basic support for the old GI PIC1650 and PIC1655 - SH-4 CPU: Fixed FMOV* opcodes. Note: Half of FPU was not correct. Fixed formatting. - T11 CPU: HALT opcode jumps to fixed restart address with PSW=0340 - uPD7807/7810 CPUs: Replaced fake I/O space with callbacks - C352 sound . Implemented volume ramping behavior and confirmed with recording of real hardware (Tekken 3) . Rewroted mulaw algorithm. This is not quite perfect yet but is closer to recordings and sounds a bit clearer (example: Time Crisis). . Use word swap macro for C352 sound rom in Armadillo Racing and Prime Goal EX. Reverted Time Crisis byteswapped C352 rom in 0.177. - ES8712 sound . Working sound and music in Last Bank . Added busy status read and notes on device . Added a reset line callback for the ES-8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES-8712 device. All known games that loop samples do so by status polling or IRQs. - SAA1099 sound: Use the correct LFSR polynomial for the SAA1099 noise generation and added some notes about an unemulated undocumented feature of the noise clock. - ATAPI CD/DVD-ROM and SCSI CD: Added Play Audio MSF (0x47) command, used by Another CD Player and Astrocounter of Crescents (machine\t10mmc.cpp) - 6522 VIA . Updated LOG messages to latest cut and added some new . Fixed 50/50 duty cycle for T2 and O2 driven CB1 shift IN & OUT on CB2 . Added stop of device_timer when going from internaly to externaly clocked shift modes. Fixed so shift out and in flank is not controlled by pcr in accordance with datasheet. Added missing final and leading flanks when shifting out and in respectivelly. - Discrete Netlist . Added infix notation parsing to the function parser . Netlist refactoring . Refactored netlist pmf code . Small optimization for diode calculations . Minor refactoring across the board . Removed virtual from some destructors and make them protected . Various cleanups . Small performance improvement . Fixed some inconsistencies . More C++ refactoring. Fixed netlist code generation. Fixed compile on some unknown compiler(netlist\plib\pstring.cpp) and Visual Studio (plib\pfunction.cpp). Cleanup of includes. . Fixed warning about non existing memory space when netlist is used as an additional cpu. . Fixed bug which caused (MESS) Hazeltine 1500 to crash . Reduced overhead to load data (roms) in netlist significantly. The previous solution involved a significant amount of redundant replication of information and objects. Now, a rom name specified as SOMEROM(x21, "romlabel") will automatically be loaded from region "netlisttag:romlabel". Examples are (MESS) Hazeltine 1500 and Stunt Cycle [TTL]. . Fixed a hidden bug in the GMRES solver and more optimization . Logging enhancement: For netlist device debugging one can now use #define LOG(...) log().info(__VA_ARGS__) to use debugging and the known #define LOG(...) do {} while (0) do disable debugging on device level. To avoid bitrot one could as well use #define LOG(...) log().info.log(__VA_ARGS__) and #define LOG(...) log().info.log(__VA_ARGS__). The later disables debugging. If the compiler can assume that there are no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}", foo(a/b));' should be completely optimized away. Log channels available are info, verbose, warning, error and fatal. Don't use debug, it is enabled only on specific debug builds. Use would be e.g. LOG("abc {1:04x}", 2); The format specifier in the string are enclosed in "{}". "{2}" is the second parameter after the format string. Types are determined automatically. "{3:04x}" would format a number as a hexadecimal with 4 leading zeros. . Rewroted mat_cr_t to include data as well. Fixed some bitrot in other parts. Simplified solver creation. . Separated include file usage for netlist. Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. . Fixed crashes on terminals without nets (i.e. connected to a rail). Reviewed "FIXMEs" and correct some minor ones. Made m_cur_analog protected. Fixed pmf delegates to work with MSVC. More optimizations to the solver code. Started work on a better signal pipeline in nlwav. Only generate documentation for entities which are documented. . Some documentation work. Set default models for devices missing them. Fixed standalone makefile to work in MinGW environment. Doxygen work. Added constexpr and noexcept. Fixed 9322. . It is now possible to have multiple handlers per device for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition: Fixed MEMPOOL on OSX. Removed dead code. Avoid bit-rot. Added delegate support for emscripten and arm processors. Added delegate support for VS 2015 x64. . Explicitly #include C++ headers for features use . Make sure netlist includes are not found directly on include path. Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. . Make windows builds of nltool and nlwav understand unicode. nltool and nlwav now use wmain, i.e. UNICODE main on windows. Reorder include order to comply with best practices. . Added state saving and loading to nltool. Save states are needed for regression tests going forward. . Added standalone VC2015 build file in lib\netlist\build. This was the last platform without standalone compile. Sure needs more attention, grateful for any help. . Moved inline constructors from header to cpp. Moved from cstring to std::copy and friends. . Optimized 7493 device. Gives some 5 to 10% improvement to Pong. 7493 also is an example on how to use multiple handlers on a device makes design easier. . Reworked Netlist truthtables: Moved 9312 and 74279 to TTL macro library. Renamed TTL_9312_* to DM9312. This is more appropriate. Fixed a number of warnings from latest Ubuntu Clang-5.0. . Added 74164 (8bit parallel output serial shift register). Added BCD display netlist for (MESS) Prodigy chess computer. - Floppy: Propagate CRC error flags (CRC_ERROR_IN_ID_FIELD and CRC_ERROR_IN_DATA_FIELD; formats\dsk_dsk.cpp) - HuC626x video . Fixed YUV colors, added palette offset and HuC6261-A mixing, fixes (MESS) NEC PC-FX boot screen graphics & colors. . HuC6272 "King" clean-ups and identify SCSI registers . Added stub HuC6271 device for (MESS) Rainbow . Added full pad inputs, some register hookups in HuC6272 "King" and fixed few bit mistakes. Added SCSI interface to "King" device. - MC6845 CRT . Scroll fix for (MESS) Osborne-1 (Nuevo Video) . Fixed scanout. The device should not try to scan-out more lines than has been programmed into the 'visible' register. - MC8123 encryption: Make code a bit more readable - Namco Custom: Register internal Namco C148 stuff to save state - TMS9927 video: Modded TMS9927 to allow for driver-specific overscan areas. Aligned (MESS) STIC video and TMS9927 graphics properly. Changed (MESS) intvkbd to use generic TMS9927 support. - 5clown.cpp, bzone.cpp, gekisou and qix.cpp: Correctly assign service buttons (ID 06470) - aerofgt.cpp: Cleaned up audiocpu rom loading, avoided some tag lookups, thus minor speed up. - aleck64.cpp . Added PIN64 logger class (video\pin64.cpp). Treat commands as blocks, 50% file size savings for PIN64 captures. . Make N64 RDP use uint64_t types for commands - ambush.cpp . Rewrote driver. Use tilemap system to draw background/foreground characters and use generic gfx_8x8x2_planar layout. . Added mario and dkong3 bootlegs running on extended hardware (color PROMs for those haven't been dumped, using the PROMs from the original currently) . Updated and correct dipswitches. Documented tile attribute RAM and sprite RAM layout bits. . Use screen raw parameters. Added connector layout. Updated TODO list and ROM filenames. - aristmk5.cpp . Moved the GAME definitions for the known bad dumps to their own section for easier reference if somebody wants to track those specific versions down for redumping. Tidy comments. Added region info. . Rearranged controls to be more playable and added PORT_NAMEs - asteroid.cpp, bwidow.cpp, firetrk.cpp, starwars.cpp, tempest.cpp and Gekisou: De-hardcode "Diagnostic Step" input - capbowl.cpp: Identified DAC type - cubo.cpp: Make Akiko independent from driver state - dec0.cpp . Added I8751 MCU rom dump to Bad Dudes vs. Dragonninja . Replaced MCU simulation for clone Dragonninja (Japan) with hacked version of baddudes dump. Added note about likely bit error in new MCU dump. . Latch cleanup. 'LS374 senses positive edge, others are educted guesses. . New and improved PCB README for the DEC0 based games - freekick.cpp . Added Omega (Nihon System 1986). Note: Omega code/gfx looks to be based on Gigas Mark II, given the "MarkII" graphic in the gfx roms and Gigas Mark II style continue numbers etc. PCB is marked "K.K NS6102-A" and seems to be somewhere between Gigas hardware and Free Kick hardware (3x dipswitch arrays). Supposedly an extremely limited release with ~10 PCBs produced. . Added comments about Gigas Mark II. Note: Gigas Mark II is a romswap/upgrade to Gigas and uses the same MC8123 (317-5002). The original, MC8123-protected version of Gigas Mark II is undumped, we only have the bootleg. - galgames.cpp . More complete Galaxy Games emulation . Created devices for the Galaxy Games carts (EEPROM + Flash + PIC) and the slot(s) . Removed code patches and emulated the PIC communication and bank switching . Converted the blitter to a device (cesblit.cpp) . Moved the Galaxy Games from tmaster.cpp to their own driver galgames.cpp . Provided the PIC code for all four StarPak cartridges - gcpinbal.cpp . Added HCT157 for ADPCM interface . Added interface for 93C46 EEPROM . Modernization and sound improvements: Break up the bogus IOC structure and use 8-bit handlers where appropriate. This fixes a music playback glitch due to the old handler's failure to take byte mirroring into account. Improved OKI M6295 sounds by using correct bit for banking. . Load more music by sending interrupt when ES-8712 finishes playing sample. Updated machine flags to better reflect current emulation status. - hng64.cpp: Added preliminary TLCS-870 disassembler - konamim2.cpp: Added terminal. Some fixes allowing M2 console version to show "Please Wait". - marineb.cpp . Fixed sprite colors in Battle Cruiser M-12 . Changed PSGs to AY8912 in Battle Cruiser M-12 and Wanted. Added note on PCB. - namcond1.cpp: Enabled preliminary ROZ effects in YGV608 core. Needs testing and references, they are certainly off for e.g. Galaga Arrange Challenge stages. - namcos22.cpp . Added per-game speaker configurations. Source: Game manuals and sound test messages. . Added 'bodysonic' speaker to Air Combat 22. The name comes from test mode, manual scan is not clear enough to show the name of this speaker. - naomi.cpp . Minor NAOMI 2 specifics . Redumped Crackin' DJ Part 2 . NAOMI docs update: Added 2 Naomi cartridge S/N-s, document Atomiswave game exe Build time stamps shown in Test Mode, correct few game years and sort game list as per build dates. - nbmj9195.cpp: Fixed dipswitches for jituroku (ID 05559), mjanbari (ID 05577) and pachiten - pgm2.cpp: Improvements. Fixed address map and added some notes. - polyplay.cpp: Added light organ and optional layout. Traced the lines on the board to figure out how the lightorgan worked. A zero cross detector triggers NMI on the cpu, which then operates the light organ. - pong.cpp: Clean up #includes - segas16b.cpp: Improved inputs for Excite League and Super League - Amiga . Converted the Amiga keyboards to a bus interface with slot devices . Moved audio related registers into Paula device. The device is now independent from the Amiga state class. . Make Akiko independent from driver state - Aquarium . Correct OKI M6295 clock with actual resonator . Replaced PCB layout with with a more informational version. List out major chips on the PCB including customs. - Arkanoid: Added detailed memory map and proper mirroring of various memory mapped areas. Documented and mapped the joystick ports which, while present and fully functional on the pcb, are unused by the game code. - Arrow Bingo . Fixed clocks to be more accurate, hooked principal inputs to make the game playable, added technical notes and cleaned-up a bit the driver. . Added a new input requested by the code. Added more technical notes about the program. - Bouncing Balls . Dumped MC68705U3 for clone Bouncing Balls (Adult) . Hook up protection MCU in clone Bouncing Balls (Adult), added MCU to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). Also Bouncing Balls is the most criminal under-utilisation of a MC68705R3 ever. It uses none of the features the R family has over the P family (second interrupt, port D, ADC, wider port C), and it barely has any program code in it at all. It's barely a "protection" program either, as it has no hidden state variables, and no internal tables. It really does just produce a 16-bit response by doing a trivial manipulation on a 16-bit input. ElSemi's simulation was almost perfect. - Canvas Croquis: Added flip screen - Combat School: Mark Combat School trackball and Boot Camp clones as MACHINE_NOT_WORKING - Double Crown: Simplify code by adding 8255 PPI and PSG type is YMZ284 - Funky Ball: Added basic inputs - Galaxian: Fixed 'Bonus Life' settings in clone Galaxian (Midway set 2) (ID 06503) - Gallop Racer 2: Redumped bankedroms - Game now playable - Hoops '96: Work around for Dunk Dream '95 sound routing issue - Kung-Fu Taikun: Added MACHINE_NODEVICE_MICROPHONE - Kyuukyoku no Othello: Added DIP SW2 and identify dipswitches and locations - Last Bank . Added working sound and music. Allow sound CPU to reset the ES-8712 and M6295. . Filled in dipswitches. Added NVRAM, remaped/renameed inputs and added RTC notes. - Mephisto: Adding devices based on schematics - Missile Command: Made clones Missile Combat (Videotron bootleg, set 1), Missile Combat (Videotron bootleg, set 2) and Missile Combat (Sidam bootleg) boot. They still need inputs and sound (AY8912). - PinMAME: Fixed year info in Ator (ID 06485) - Pole Position II . Correct DIP switches and locations for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) . Use modern DEVCB features to make extra 4-bit input ports unnecessary - Power Card: Dumped the CY7C291A from inside of the custom CPU. Added technical notes. - Puzznic: Confirmed all sets uses same MCU, correct MCU clock as per PCB photo - Space Cruiser: Added "P1/2 Continue" button. Note: The game has a dedicated button to continue the game if all lives are lost. The player has to enter a coin and press the "Continue" button. - Super Real Mahjong Part 3: Added dipswitch settings for clone Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan) (ID 05599) - Thayer's Quest: Fixed keyboard scanning and keyboard - Varia Metal and Witch . Added busy status read to ES8712 sound and notes on device. Misc ES-related code cleanups. . Added a reset line callback for the ES8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES8712 device. All known games that loop samples do so by status polling or IRQs. . Varia Metal sound improvements: Implemented IRQ used to loop ES8712 music (much like gcpinbal). All extant samples should be playable now. Reduced unreasonably high OKIM6295 volume. Removed MACHINE_IMPERFECT_SOUND flag. - Xain'd Sleena: Fixed problem with edge case in 68705 timer overflow interrupt. This fixes the missing enemies in the second stage of Xain'd Sleena (ID 06499). - Yam! Yam!?: Use own program map, added note about undumped PROM and removed unneeded variable - Zig Zag: Install handlers and banks using address map rather than hacking them in with DRIVER_INIT - Dipswitch fixes in aristmk5.cpp, avt.cpp, funkball.cpp, lastbank.cpp, nbmj9195.cpp, polepos.cpp, shanghai.cpp and srmp2.cpp - Fixed rom names in aquarium.cpp, asuka.cpp, freekick.cpp, galgames.cpp, midwunit.cpp and suprnova.cpp - Description changes of The Chariot Challenge (04J00714, Venezuela), Excalibur (French), Gallop Racer 2 (Export), Gamshara (Japan, 10021 Ver.A), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2), The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program), Omega (bootleg?) and Print Club 2 2000 Summer (J 000509 V1.000) - Renamed (excalibr) to (excalibrf), (galpans2) to (galpans2j), (gamshara) to (gamsharaj), (kof99k) to (kof99ka), (omega) to (omegab), (petshop) to (petshopa), (pitboss) to (pitboss04), (pitbossa) to (pitboss03), (pitbossa1) to (pitboss03a), (pitbossb) to (pitbossps), (pitbossc) to (pitbossm4), (vblokbrk) to (vblokbrka), (wamazon) to (wamazona) and (wamazona) to (wamazon) - MAME . 3rdparty . Updated BGFX, BX, Catch, GENie, GLM, libjpeg, LUA, Sol2 and zlib. BX is now static library. . PortAudio: Fixed issues on 32-bit builds and clamp latency. Minimal const-correctness. . Use std::sort instead of qsort in listdevices (mame\clifront.cpp) . Make devcb objects more consistently available for further configuration . Arcade build restructuring: Created EFO, Promat, Terminal and Wing projects to help reduce the weight of libmisc. Eliminated Veltmeijer Automaten project (only two games by this company are in MAME, and one actually on Excellent System hardware). . Cheat engine: Fixed crash on loading invalid cheats, MAME now logs an error and continues (ID 06477). . Hashing util: Fixed Hashing helper classes (util\hashing.h) . PLUGINS . hiscore.dat: Use videoram share for Missile Command scores so madsel isn't disturbed. Don't permit hiscore parse scripts to modify the shared environment or save any persistent data. Print_verbose unimplemented stuff. . Fixed unable to load DAT file using multiple paths (plugins\data\load_dat.lua) (ID 06500) . Sync with upstream (util/client_http.hpp) . Make object finder arrays meet more Container/Sequence requirements (allows range-based for and many algorithms to work) (emu\devfind.h) . Added RGB unit testing (video\rgbutil.cpp). . LIST command format changes: Changes to output produced to better deal with maximum limits of certain items. Fixed issue with -LISTROMS output not displaying hapyfsh2 rom sizes correctly. . SOFTWARE LIST . Allow softlist software parts to use different interfaces: imgcntrl: Don't assume first software part, find part with correct interface. swlist: Check all software parts for matching interface when populating list of software lists. softlist_dev: Check all software parts when finding approx matches. . Revert 'Make "requirement" field in softlists actually work (MAME 0.182; MT06464)' - Compiling . Fixed building using system utf8proc . Fixed CHD build . Converted m_p_chargen into a required_region and associated cleanups. . Removed device_config_complete from numerous devices that don't really need it . Make emu\emucore.h a bit more readable . Removed emu.h from headers. Per Vas' request. If the compile fails for you (i'm thinking OSX and Windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure MSVC compiles are identical to GCC/Clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude. . Removed #undef min/max, we already have NOMINMAX now in scripts. . Cleanup headers of not used friend classes . Use size_t for sizes and algorithm for algorithms. Fixed up some files that were getting linked into multiple libraries. Add missing virtual method to sh2 peripheral class. Put shortname in driver struct for locality. Made LRU cache use shared pointers for safety. - Debugger: Make debugger fall back from binary to default base on 0b prefix. This makes expressions like 0B12 parse as hex in hex memory spaces. Where there's ambiguity (e.g 0B01) binary takes precedence. 0.182 - New games: Enma Daio (Japan), Hangzo (Japan, prototype) and Poly-Play (ZRE-PP) - New Working games: Future Flash, Laser Base and Sky Robo/Tatakae! Big Fighter - New Non-Working games: Happy Fish (V2 PCB, 302-in-1) and Mega Bonus Star II (Euro, Millennium Edition) - New clones: Dynamite Duke (Japan, 25JUL89), Fighting Fantasy (Japan revision ?), King of the Monsters 2 - The Next Thing (older), Poly-Play (ZRE-PP - Czech), Robo Army (NGM-032 ~ NGH-032), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2), Skull Fang (Asia), Star Fighter (bootleg of Astro Fighter), Star Horse Progress (backup data), Star Horse Progress (live, Rev A), Star Horse Progress (main screens, Rev B), Star Horse Progress (sound & backup, Rev A) and World Kicks (Japan, WK1 Ver.A) - New PinMAME games: Ator, Bloody Roller, Cobra (Playbar), Eight Ball Champ (Spain, Z-Pinball hardware), MotorDome (German) and Slalom Code 0.3 - New drivers: hapyfish.cpp - New devices: ad7224, arkanoid68705p3, arkanoid68705p5, efo_zsu1, m68705p3, m68705r3, namco_c139, namco_c148, namcoio_gearbox, netlist_logic_output, netlist_rom_region, pps4_2, taito68705, taito68705tiger, z80sio, z80sio_channel and zn429e - New mame.ini options: HTTP SERVER OPTIONS: http, http_port and http_root. PORTAUDIO OPTIONS: pa_api, pa_device and pa_latency. - COP400 CPU . Fixed disassembly of jump instructions and used decimal for LDD/XAD . Fixed instruction timing and time-base counter . Fixed debugger behavior on skip . Removed non-working, incomplete COP440 code. Fixed COP444 disassembly. Properly separated COP444L from COP444C. . Fixed debugger register/flags view - i386 CPU: Logerror for invalid rep rather than fatal error (cpu\i386\i386ops.hxx) - M6805 CPU . Fixed state of input lines being lost on reset . Reduced massive amounts of redundancy by templating opcode handlers . Replaced the epic switch statement with a dispatch table . Fixed timings for a few instructions . Turn a lot of macros into inline methods so they can be scoped down . Correct affected flags in comments on opcode handlers (actual code was correct) . Removed unnecessary flag calculation tables . Added a table with CMOS instruction timings - M68705 CPU . Taito 68705 refactoring (40love.cpp, bigevglf.cpp, bking.cpp, bublbobl.cpp, buggychl.cpp, flstory.cpp, lkage.cpp, lsasquad.cpp, msisaac.cpp, nycaptor.cpp and slapfght.cpp). . Improvements to I/O emulation in new MC68705 device . All internal memory handlers are now private members . DDRs zeroed when device reset (as per datasheet) . Port writes no longer transmit bits not set in DDR . DDR updates may cause port bits to be written out (this is important) . Added external read/write handlers for ports . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Refactoring and improvements . Moved 68705 devices into their own file . Made P3, P5 and U3 variants and made them load bootstrap ROMs . Implemented EPROM control (write is stubbed out with a logerror) . Implemented differences for open drain I/O ports . Base device with peripherals should really derive from the 6805 device directly, not the 68705 devices, as I/O ports are present on mask devices (e.g. 6805P2). All drivers and devices that were using M68705_NEW have been changed to M68705P5 - someone who knows the drivers better should fix them up. . Fixed pushed input ports, implement EPROM write (not saved yet). Save EPROM contents using NVRAM mechanism. . Disassemble memory addresses symbolically . Re-implement timer/counter . Support MOR-controlled mode . Correct count direction . Correct startup and reset states . Exposed more more internal registers through the state interface . Shows contents of registers that can't be read by program code . Completely eliminate the concrete 68705-without-peripherals class . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). Added lots of logging to help trace issues. . Taito 68705 interface improvements . Moved stuff arkanoid/puzznic have in common with other games to new abstract base class . Got rid of the unnecessary hacks for Big Event Golf, it doesn't need anything special . Moved Xain'd Sleena M68705 stuff to the common interface class. Fixed regressions in tokio and daikaiju. . Started instantiating common device finders with the devices to marginally improve build/link time . Use common Taito 68705 interface device in Mania Challenge and clone . Removed non-obvious mcu_status_r and semaphore_r members and move to drivers (varies by system) . Slap Fight M68705 functionality can be safely folded into base class so do so . Removed leftover crud from driver state classes . ddragon.cpp, maxaflex.cpp, qix.cpp, stfight.cpp, taitosj.cpp, bub68705 and changela use new MC68705P3 core. mexico86 use new MC68705P3 core, simulate synchronous latches better. . Added MC68705R3 for Pipeline. Renegade use common Taito 68705 hookup. . quizpun and pitnrun use new MC68705P5 core, MCU now gets timer interrupts correctly. retofinv use common Taito MCU hookup. . ADC is stubbed out with logerror (pipeline doesn't use it at all) . Bootstrap ROM is believed to be identical to U3 but need to confirm . tigeroad.cpp . M68705 cleanup and modernisation . Split out bballs and pushman state classes . Use new MC68705R3 core for Pushman (this one uses port D - another test case) . Make Pushman MCU hookup believable (internal registers can't be in shared RAM). Better understanding of how CPU reads MCU data/status in Pushman. . Use derived memory maps rather than installing handlers in init members . Simplify protection MCU simulation in Bouncing Balls using pushman hookup as a guide. Bouncing Balls appears to use a simpler single-word arrangement for messages from CPU to MCU, perhaps so it can use a 28-pin MCU (pushman MCU receives the command byte on port D, which the 28-pin parts lack). - PowerPC 4xx/6xx CPUs: Clear two LSBs of the branch target address. This is what a real CPU does in order to prevent branching to an invalid address. - DAC sound . Replaced '8-Bit R-2R DAC' sound with MC1408 in archrivl, hiimpact, joust2, pigskin, shimpact, smashtv, trisport, trog, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp and s11c.cpp. . Replaced '8-Bit R-2R DAC' sound with AD7524 in jdreddp, mk, narc, nbajam, nbajamte, term2, totcarn, wpc_an.cpp, wpc_dot.cpp, wpc_flip1.cpp and wpc_flip2.cpp. . More DAC identification and Namco sound research (sound\dac.h, namco.cpp, drivers\byvid.cpp, galaxian.cpp, junofrst.cpp, mappy.cpp and namcos1.cpp) - MSM5205 sound: Use s32 instead of int32_t for consistency. Architectural cleanups. - Sound Interface . New callback for generic_latch_8/16_device . Added MCFG_GENERIC_LATCH_DATA_PENDING_CB to raise and lower a line automatically as the latch is written and read. This should make sound IRQs easier to deliver and reduce the incidence of HOLD_LINE in drivers. . Updated a few drivers to use this new callback (dec0.cpp and discoboy.cpp). . Invert logic (latch_read -> latch_written). Also fixes initial callback after start. . Soundlatch cleanups in ashnojoe.cpp, crospang.cpp, crshrace.cpp and dcheese.cpp - 6821 PIA: Updated the LOG mechanism - 68681 DUART: Preliminary support for SC28C94 QUART. Channels C and D can now transmit properly for sc28c94. - 8251 USART: Make receive more reliable, cleaned up a little - CHDMAN: Added support for hard disk templates and added some initial ones - Discrete Netlist . Added LM747, LM747A and 2N2565 . Roms now specify an identifier in the netlist. The identifier is used to load data from a source_t implementation. This allos a consistent approach in netlists independent of netlist implementation. Both sources code and parameter code needed quite some rewrite to support this. . Fixed nullptr exception and loading roms in two devices . Added "-r" option to nltool to pass path to a folder containing rom files. Multiple "-r" options may be given. Zip files are not supported, just individual files. . Fixed 74123, 74629 and some internals. Make Mario Bros. sound netlist compiling again. . Moved proxy code into separate file. Some preparation for future changes on proxies and chip families. . Analog to digital proxy rework. Properly handle connected inputs when creating a-d proxy. Aligned a-d proxy to d-a proxy class structure. . Align noexcept usage. Rename register_con to add_terminal for clearity. Changed cstr() ==> c_str(). . Simplify code. Introduced consistent approach to loading macro devices. Changed nltool "listdevices" command accordingly. Fixed some bugs which surfaced by this exercise. . Refactored factory. Use namespace "factory" instead of prefix factory_ all over the place. Fixed parsing of macro devices. Fixed pin assignment 4001. . Update to input definition file (nl_examples\congo_bongo.csv): Create congo bongo sounds with ./nltool -c run -t 10 -i nl_examples/congo_bongo.csv -f nl_examples/congo_bongo.c -l RO.1 and convert to wav with ./nlwav -i log_RO.1.log -o t.wav. Sounds played are: GORILLA, BASS_DRUM,CONGA_H, CONGA_L, RIM0 and again GORILLA. Using Solver.PARALLEL=1 significantly increases performance from 270% to 380%. However, this has to be taken with a grain of salt. Enabling this on predominantly logic netlists can severly kill performance. . Added FREQ parameter to MM5837 noise generator. Specs in datasheet range from 24000 Hz to 56000 Hz. Properly use VDD for output reference voltage. . Added SIGFPE enabling code to plib\pexception.*. Moved plib exceptions into these files as well. The code uses which is part of C++11 standard. Non-standard glib extensions are currently only used on linux and (i386 or x86_64). . Fixed some pedantic Clang warnings. Fixed Clang "-Wno-weak-vtables" warnings in netlist source. Refactored code along the way. . Make destructors virtual on base classes. intX_fast_t may depend on compiler implementation and thus is not suited for save states. . Added skeleton drivers to nl.lst (commented out) . Fixed startup when there are no timestep devices present, i.e. capacitors or inductors. . Removed parameter GS_THRESHOLD and misleading solver parameters. It is now outdated. . Make stop be called again. Fixed METHOD parameter. No need for a virtual stop which is needed only by the solver. Reduced memory footprint for parameters. . Moved netlists into macro folder. nlwav now accepts stdin and stdout: cat log_RO.1.log | ./nlwav | play - . Removed gnd() method. Fixed potential reset and initialization issues. Fixed timing issue in CD4538. Added "pow" (power) to the function model. . Added code to remove devices connected only to rail terminals. Prepare source for consistent error message usage. . Introduced a more structured approach to models. Added more documentation to diode and bjt model. . Moved analog devices into "netlist::analog" namespace. Added documentation to opamp model. . Preparation work for automatically generated include file for devices. nltool now is able to create all defines from the factory definitions. This will reduce the number of places needed to touch when adding devices and always ensure that the parser and statically compiled netlist code use the same syntax. This will enable us to delete most device include files, e.g. nld_74107.h. Netlist usage to create this header file: ./nltool -c header > src\lib\netlist\devices\nld_devinc.h. This is not yet used in production. It will be enabled after additional tests. . Keep track were registry elements are created. Register all devices using NETLIB_DEVICE_IMPL. Fixed encoding issue. . Refactored reverse polish notation evaluator into own source files . Added function parameter to current and voltage sources VS and CS. You can now use those to e.g. produce a sine wave. . Changed code to allow devices to optionally be treated as dynamic or timestepping devices . Converted warnings and fatal log messages to constants. Also refactored some code to ease the exercise. . Default argument on plib::environment now optional. Assume string literals are UTF8 in netlist code. At the same time, any char pointer has to be explicitly converted to pstring by specifying an encoding. Not yet optimal, but certainly better than what was there before. Removed unneeded methods from pstring. . Make streams provide binary access only. Use putf8_reader and putf8_writer to actually access streams. Replaced some char * parameters with pstring where appropriate. Minor code refactoring and move functionality were it belongs. - Floppy . Inhibit reading/stepping until drive has spun up; this concerns drives/controllers that do not use the READY line . Don't crash on tracks with no data (formats\imd_dsk.cpp). Accept images produced from 8" SSSD disks in TeleDisk loader (formats\td0_dsk.cpp). . Added TODO comments; revert stp_w ignore on spin-up until further evidence. . Minor floppy internals improvements (imagedev\floppy.cpp) - Imgtool . Miscellaneous cleanups and C++ modernization (CoCo/RS-DOS) . Changed to use wcout/wcerr in order to support Unicode console output . Changed charconv from an enumeration to an interface. Fixed recently introduce bug on attribute listings. . Fixed recently introduced bug in the code that emits usage text - MC68230 PIT . Don't forget all externally driven line states when the DDR changes. Return proper port values when line states are pushed instead of pulled. . Added support for the PSR register, H1-H4 sense and direct pin levels - Namco Custom . Rewrote Namco C148 device (Interrupt Controller; namcos2.cpp and namcos21.cpp) . Rewrote Namco C139 device (Serial I/F Controller (SCI); namcos2.cpp and namcos21.cpp) - PCI-IDE controller: Added legacy mapping based on prog i/f register (machine\pci-ide.cpp) - TMS9927 video: Scrollup fix. Avoid reconfiguring all the CRTC parameters on any cursor shape change, which was resetting the scroll counter. Fixes scrollup for the (MESS) Otrona Attache. - TTL: Rewrote 74153. Only output state when the level changes. Use 74153 for the serial clock selector in (MESS) Apricot PC. - Z80 CTC: Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - Z80 DAISY . Reconfigure Z80 daisy chain behavior to use the standard vector for an external IRQ, rather than a bogus one from the last device in the chain. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). . Source note regarding IM 2 behavior contrary to Zilog datasheet (was fixed way back in 0.35b11) . Simplify daisy-chain IRQ ack routine (get rid of delegate member) - Z80 SCC: Improved LOG printouts. Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). - aerofgt.cpp, expro02.cpp, ddenlovr.cpp, f1gp.cpp, feversoc.cpp, fuukifg2.cpp and gaelco.cpp: ACCESSING_BITS cleanup - aristmk5.cpp: Added SPI and hopper emulation, allowing non-US games to boot. - arkanoid.cpp . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Converted Arkanoid 68705 interface to device. Arkanoid bootlegs use P3 MCUs. . Confirm MCU reset also resets semaphore flags. Fixed watchdog to match PCB tracing and updated some comments. Non-arkanoid games lack muxed analog inputs. - armedf.cpp and tecmo.cpp . Dumped i8751 MCU for Sky Robo / Tatakae! Big Fighter and added basic hookup to make it work (Game now playable) . Clean-ups and changed sound CPU to use 24MHz/4 in all games . Fixed screen refresh rate in Tatakae! Big Fighter. Fixed service switch and updated DIPS/inputs with locations and content to match those showing on screen and observation. Added debug code for initial area. . Clocks verified for Sky Robo / Tatakae! Big Fighter . Legion and Rygar have YM3526 instead of YM3812 . Documented DACs for Legion, Terra Force and Tatakae! Big Fighter - asuka.cpp: Added 74LS157 for MSM5205 interface in Asuka & Asuka and Maze of Flott - atarittl.cpp: Split Stunt Cycle into its own netlist. Added logic probe to stuntcyc for debugging, does not seem to work, pushing so others can take a look. Fixed some NOR gates that should have been NANDs, fixes the playfield. Fixed stuntcyc/nld_7485 regression. - atlantis.cpp, iteagle.cpp, lindbergh.cpp and midzeus.cpp . Squelch logerror from interrupt control (machine\midwayic.cpp) . Added better game selector and use register values for 'Skins Game' direct rendering (video\zeus2.cpp) . Changed waveram viewer to use V key to fix conflict with game controls (video\zeus2.cpp) . Consolidate waveram1 writing and add more logging for models (video\zeus2.cpp) . Added alternative texture loading subroutines to video\zeus2.cpp . Clean up Atlantis driver and added info . Moved interrupt line and pin functions into PCI device and added variables (machine\pci.c) - atvtrack.cpp . ATV Track improvements, game code running now as it should . Extract CPU initial boot from FPGA bitsream. Yep, its possible, at least for such FPGA family. . Implement NAND Flash erase and program commands, game is running now. . Hooked GPU IRQs control. Basic simulation of GPU's internal CPU for game init speedup. Documented IO-port multiplexing. - cdi.cpp: Decapped/dumped an MCU for Quizard (v1.8) and Quizard 4 Rainbow (v4.2) and clones - cedar_magnet.cpp . Conversion of the Cedar Magnet board from a base device class to a mix-in interface . Emulated EFO ZSU as main variant of the Cedar Magnet sound board. Modernize ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). - chihiro.cpp . Xbox graphic improvements . Added support for packed float vertex color r11g11b10f . Correct drawing of indexed vertices primitives . Added "xbox nv2a_wclipping" debug command. Small graphics adjustments. - chinagat.cpp and ddragon.cpp: IRQ cleanups - cvs.cpp: Show popmessage on unknown writes only if VERBOSE is defined - deco32.cpp: Added preliminary global volume control for Night Slashers and Fighter's History - gkigt.cpp: Hook up NVRAM and added initialized defaults for Multistar 3 and Multistar 7 2c - gladiatr.cpp . Separate Gladiator and Ping-Pong King state classes . Eliminated tagmap lookups on input read. This fixes coinage in clone Great Gurianos (Japan?). . Hook up all four MCUs in Gladiator and clones. The MCU doesn't like impulse coins, added hack to simulated sets to make them work with non-impulse coins. . Confirmed clocks with original board . Fixed coinage dipswitches have no effect in gladiatr, ogonsiro and gcastle using MCU simulation (ID 06468). Note: MCU simulation replaced with bootleg MCU programs in all affected sets. They now start with one credit due to MAME's memory initialisation, but the coinage DIPs work correctly. . Use input changed member - gsword.cpp . Identified josvolly "AA 007" chip as NECD8255A for reading input ports as shown by CAPS0ff die shot . Split out gsword and josvolly functionality from base driver class . Hooked up josvolly MCUs for communication between CPUs. Added DIP locations to josvolly based on test mode. Named unknown DIP settings after the location they control in main RAM. . Run the MCUs faster in josvolly to get it back to same state as with simulation. Identify cabinet type dipswitch. Removed now-unnecessary MCU simulation. Note: I still don't want to drop the NOT_WORKING flag as the game's clearly still not quite right, but it's as playable as it was previously now, but using original MCU code for CPU comms. The clocks are still guesses, just better guesses. - gts1.cpp: PPS-4 refinements and modernization: Split PPS-4 and PPS-4/2 device types; better explain and properly implement the difference. Use callbacks for discrete input/output ports instead of fake memory addresses. A17xx reads the address bus directly during I/O accesses. Misc chip documentation. - harddriv.cpp . Hooked up the first serial port as an RS232 device to enable linking. This allows one to link up two Race Drivin' using null-modem and bitbanger (38400 8E1; two instances of MAME running Race Drivin' in Link mode: https://www.youtube.com/watch?v=35nz0kxco-g). . Added "single screen"-layouts for clone Race Drivin' Panorama - hng64.cpp: Added a dump of one of the HNG64 TMP87PH40AN I/O chips. Note: This came from a sample OTP chip that was purchased for testing / analysis, not one of the chips actually taken from a HNG64 unit! It just ended up turning out to be the case that the sample chip had clearly been pulled from such a board at some point in the past. As a result it isn't clear if this is the driving, shooting or fighting MCU type. Contains the internal string "64Bit I/O Controller Ver 1.0 1997.06.29(C)SNK". A CPU core is needed. - jollyjgr.cpp: Updated readme and correct clocks - midyunit.cpp: Identify DACs used in most Midway and Williams games - namcos2.cpp: Added Namco C148 device. Finest Hour accesses 0x461xxx in service mode, make the whole area in Namco System 2 driver to be mirrored. - namcos21.cpp . Added preliminary Gear Box input for Driver's Eyes. Added mechanical clutch and make it to automatically set to neutral on press, added debug for current gear. Wrote a device core for the Namco 6-speed gearbox (used by Driver's Eyes, Ridge Racer DX and Ace Driver). . Added input labels (Gun-, Missile- and Viewport Change Button) for Cyber Sled. Removed unused 4th button. . Untangle screen updates into different routines and other clean-ups. Added winrun_bitmap_draw. . Added SCREEN_RAW_PARAMS. Added Namco C148 device to Namco System 21. . Fixed misplaced controls in winrun, winrun91, winrungp and driveyes (ID 05313) . Hooked up Namco C148 to Winning Run GPU. Fixed POSIRQ line and POS interrupt generation for Winning Run, fixes map indicator in Winning Run '91. Fixed trail tachometer drawing in Winning Run. - naomi.cpp . Added 'Master CPU Clock Rate (Cheat)' configuration for main CPU unscaled clock. . Moved debug inputs into machine configuration . Added inputs for Mars TV . Made doa2m, dankuga and dariusgx parents. NAOMI flash carts rom names consistency for inunoos, sambap, shorsel and soulsurf. . Moved Atomiswave and NAOMI 2 specifics into own state machines. Research & document master/slave ROM boards feature. - polyplay.cpp . Added newer ZRE-PP based Poly-Play version/board (SIO not yet hooked up) . Documented differences in hardware. Added a check export version with the new menu. . Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - rohga.cpp . Added dipswitch locations to all sets. Filled in missing 'Difficulty' switches for Schmeiser Robo. Filled in most switches for Hangzo. . Fixed cropped attract mode text in clone 'Wolf Fang -Kuhga 2001- (Japan)' (ID 06422) - segasp.cpp: Added missing EEPROM 93C46 device to fix -validate errors - stfight.cpp . Fixed ADPCM control . Latch ADPCM counter on the correct edge . Removed unused members, eliminate function statics and fix up save state registration. . Reduced runtime tagmap lookups - stlforce.cpp: Fixed OKI6295 speed (ID 06460) - stv.cpp . Clean up comments and BAD_DUMP flags in choroqhr and prc2ksu. NOTE: Print Club 2 2000 Summer fails IC7 check but rom read consistently, might be okay, might not be - supposedly ST-V print carts are known to have bad ROM tests(?). . Added preconfigured NVRAM to Print Club 2 2000 Summer and a new one to Choro Q Hyper Racing 5 - superqix.cpp . Bare minimum work to extricate hotsmash/pbillian from superqix_state and cleanup. Reduced tagmap lookups. . Hot Smash use M68705P5 core instead of in-driver peripherals - taito_f3.cpp: Fixed missing graphics on state load - taito_l.cpp . Split giant state class up into family tree, reduced tagmap lookups. . Re-use new Arkanoid 68705 interface device for Puzznic, eliminate Puzznic protection hacks. Removed crud from puzznic bootleg. . Clean up ROM unscrambling function for clone Plotting (World set 2, protected) . Shuffle taito_l family tree, should fix missing device errors. - tmaster.cpp: Minor doc update about the CES Galaxy Games carts - Archimedes (aristmk5.cpp and ertictac.cpp): Finally correct audio frequency setting - Aztarac: Verified and correct labels/locations and added newly dumped video board PROMS for this machine - Bagman: Fixed clone Le Bagnard (bootleg on Crazy Kong hardware) inputs and shuffle PROMs for better colors (game still tends to crash) - Battle Cross: Flipscreen problem (background scroll) - Bazooka [TTL]: Redumped clone Bazooka (Brazil) [TTL] - Biomechanical Toy: Dumped clone Biomechanical Toy (Ver. 1.0.1884) sound roms, fixes audio in this version. - Car Polo: Rewrite 74153. Only output state when the level changes. - Combat School: Fixed score line is not flipped with screen in Combat School an clones (ID 04907) - Eeekk!: Input port_name clarifications as well as further details for 'Difficulty' dipswitch settings. Fixes 2P Start Button map is missing (ID 06461). - Fever Soccer: Use 16-bit handlers for input reads; implement IRQ ACK. - Future Flash and Laser Base . Fully reverse engineered and emulated the Z1 protection IC (Games now playable) . Replaced laserbas macros with lambdas, make operation of bit selection more obvious . Fix for building with Visual Studio which doesn't support GCC extension "?:", simplify code & make spacing consistent. The Z80 is probably not running at 66MHz. - Joyful Road: IRQ cleanups. Eliminate HOLD_LINE while remaining true to schematics. Let main CPU properly acknowledge NMI. Use one VBLANK handler instead of two. Correct audio CPU clock divider (should be same as PSGs according to schematics). Misc stylistic streamlining. - Karate Champ: All IRQs/NMIs acknowledged. Added 74LS157 for clone Karate Champ (US VS version, set 1). - Mahjong Shinkirou Deja Vu: Demoted Mahjong Shinkirou Deja Vu and clone Mahjong Shinkirou Deja Vu 2, see MT00964 for more info. - Mario Bros. . Hook up Luigi walking sound in netlist mario sound implementation. Mario driver now uses netlist audio implementation instead of discrete implementation. The previous discrete sound emulation has not been removed yet because it still contains a lot of documentation. . Fixed compile for I8039 test code in mario sound - Midnight Resistance: Added MCU (disabled) to clone Midnight Resistance (bootleg with 68705) config - Number Crash: Added PCB readme - Out Run: Added in Speed Indicator for clone 'Out Run (sitdown/upright, Rev B) (Enhanced Edition v1.1.0)'. The Enhanced versions use DSB-4 for showing speed in km/h or MPH. This is a new additional the original sets didn't support. - PinMAME . Device hookups and memory maps in joctronic.cpp, following available schematics. . Added a ridiculously incomplete dump of the CPU ROM to Punky Willy . Tried to make some sense of the DIP settings in the service manual of Break '86. Update notes in vd.cpp source. . Hook up ZSU1 to Skill Flight (Playmatic) and Phantom Ship. Modernized ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Added AY8910 reads to peyper.cpp . Identify DACs used in most Midway and Williams games . Identified EFO90503 in play_2.cpp and note usage; improve notes on EFO sound boards . Identified unknown DAC in byvid.cpp - Plump Pop: Verified that Plump Pop uses the same M-Chip as Extermination and Dr. Toppel. Added and correct labels, locations and chip types for several ROMs/PROMs as well as updated notes, based on PCB pictures. - Pole Position II . Preliminary work on Gran Premio F1 sound system. Redumped some faulty roms for polepos2bs (the former speech ROM has bit6 fixed), plus added proper bipolar PROMs dumps. Documented the 'A', 'B' and 'C' board edge connectors for polepos2bs. . Sound improvements for bootlegs: Working Spanish/Italian voices in polepos2bi and polepos2bs. DAC for passing car sound in topracern, polepos2bi and polepos2bs. These bootlegs may still be missing explosion sounds. - Pyon Pyon Jump: Documented board 7908B pinout and bank #1/2 DIP switches - Sky Adventure: Increased buttons usable from 2 to 3 which matches port test in service mode as well as matching information in the conversion manual - Sky Army . Fixed screen flipping in cocktail mode . Re-added second AY-3-8910A that generates explosion sounds; the claim as to its absence made in 2003 was probably based on less accurate AY8910 emulation and/or a stripped PCB. . Added coin counter - Stadium Hero: Correct tilemap colors - Super Qix: Deprotected an original Japan/World Super Qix 8751 MCU and verified that the presumptive B03 // 03 MCU dump is correct - Tang Tang: Added a preconfigured NVRAM so it won't boot with invalid settings - Thayer's Quest: Fixed COP400 divisor. Keyboard WIP. - Zwackery: Perfect quantum not needed for this driver, restores previous performance level. - Input port . Service mode DIP switch adjustments . Changed how input sequences are assigned to service mode DIP switches. The frontend now assigns them the default sequence for the non-toggle service mode/test switch (not necessarily the F2 key, the previously hardcoded default) unless the machine happens to have one of those as well (as is somewhat common with gambling games). . All DIP and configuration switches are automatically defined as toggle fields to make assigning input codes to them easier. Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp). . Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp) - Dipswitch fixes in armedf.cpp, aztarac.cpp, gsword.cpp, naomi.cpp, pacman.cpp, rohga.cpp, vd.cpp and vicdual.cpp - Fixed rom names in kangaroo.cpp, midwunit.cpp, ms32.cpp, pse.cpp, segae.cpp and tnzs.cpp - Description changes of The Double Dynamites (Japan, 13NOV89), The Double Dynamites (US, 13NOV89), Dynamite Duke (Europe, 03SEP89), Dynamite Duke (Europe, 25JUL89), Dynamite Duke (Japan, 03SEP89), Dynamite Duke (US, 25JUL89), F-14 Tomcat, New Double Bet Mahjong (bootleg of Royal Mahjong) [BET] (ID 05392), Poly-Play (ZRE), Print Club 2 2000 Summer (J 000509 V1.000), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1), Smashing Drive (UK), Star Horse (live and backup), Star Horse (main screens) and Star Horse Progress (satellite, Rev A) - Renamed (starhrcl) to (shorse), (starhrct) to (shorsel), (starhrpr) to (shorsepr), (starhrse) to (shorsem), (starhrsp) to (shorsep) and (wldkicksj) to (wldkickspj) - MAME . HLSL . Changed cached texture format to floating point . Removed hacks in hlsl\phosphor.fx . Tweak presets for ini\presets\raster.ini, vector-mono.ini and vector.ini. . Changed cache texture format to floating point for precise for phosphor and ghosting shaders (render\d3d\d3dcomm.h, d3dhlsl.cpp and drawd3d.cpp) . 3rdparty . Updated zlib to 1.2.9 . Updated BGFX, BX and GENie . Added initial HTTP/HTTPS webserver/websocket server support. Added websockets as well. . PortAudio library update and backend. Fixed memory leak and log error checking (sound\pa_sound.cpp). Fixed PortAudio MinGW cross-compilation (3rdparty\portaudio\src\hostapi\wasapi/pa_win_wasapi.c). Fixed allowed latency range in PortAudio. Simplify the audio buffer and fix a wrap-around issue. . Added 'WAIT' function to LUA engine . UI . Added service mode DIP switch adjustments (emu\ioport.cpp, ui\info.cpp and ui.cpp). Removed find_dipname. . Changed ui\filesel.cpp to use wstring_from_utf8() . ROMs over 2 GB no longer reported as negative size in XML (mame\info.cpp) . PLUGINS: Updated hiscore.dat . Added handy ROM filename discrepancy spotter scripts . UWP (Universal Windows Platform): ASIO fix. Already sent pull request upstream. Fixed alt key input. . SOFTWARE LIST: Make "requirement" field in softlists actually work (ID 06464). MAME's architecture for software loading remains gruesomely overcomplicated, and this makes it even less efficient than it already was. However, I think more invasive cleanups would best be left until later. - MAC OS X . Fixed OSX build (CGFloat; osx\debugconsole.mm) . Autoscroll log window for OS X Cocoa debugger. Improved view scroll behavior. - Compiling . Move special windows.h include directives to build defines . Added JuliaLang utf8proc as a third party library with wrappers . Make DEBUG=0 and SYMBOLS=0 behave (makefile) . Fixed MSVC compile (src\3rdparty.lua) . Removing unnecessary callback (MSVC 2015 error; emu\main.cpp) - Debugger . Parse octal expressions (prefixed by '0'). Use 0o for octal prefix, added support for binary with 0b a la C++ and uppercase radix speifier (debug\express.cpp). . Added a facility to allow logerror output to reside in traces. As a consequence, the debugger 'trace' command was changed so that the third parameter is a list of '|' delimited options. . Created a new debugger command 'tracesym'. 'tracesym' is intended to be a shorthand of 'tracelog', whereby the user doesn't have to specify a format string; the default format string is used. . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h) 0.181 - New games: Eeekk!, Miss World 2002 and Power Flipper Pinball Shooting - New Working games: Tokio / Scramble Formation - New Non-Working games: Knights of Valour 3 HD (V105), Multistar 3 and Royal Ascot II - New clones: Flicky (128k Version, 315-5051, larger roms), Golden Crown Hopper (Dutch, Game Card), Knights of Valour 3 HD (V101), Knights of Valour 3 HD (V102), Knights of Valour 3 HD (V103), Knights of Valour 3 HD (V104), Mahjong Clinic (Japan, set 2), Momoko 120% (English text), Multi Wars (bootleg of UniWar S), The NewZealand Story (World, old version) (older PCB), Raiden (Korea, bootleg), Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release), Same! Same! Same! (1P set, NEW VER! hack), Sega Rally Championship - DX, Side by Side 2 Evoluzione RR (Ver 3.1 J), Simpson Junior (bootleg of J. J. Squawkers), Space Dungeon (larger roms), Steering Champ (GQ710 VER. UAA), Super Visual Football: European Sega Cup, Top Skater (USA), Turbo Force (US) and Virtua Striker 2 '99 (Step 1.5) - New PEPlus games: Player's Edge Plus (XMP00011) 5-in-1 Wingboard (CG2298) - New PinMAME games: Back To the Future (2.8), Lost in Space (1.01 France), Monday Night Football (2.9, 50cts) and X-Files (3.03 France) - New drivers: pgm3.cpp and zwackery.cpp - New devices: 74hct157, 74ls157, bitbanger, cd40105, dac76, ef9369, input_merger_hi, m68705_new, midway_serial_pic_emu, mm5837, null_modem, printer_image, pseudo_terminal, rs232_loopback, scc85C30, serial_keyboard, serial_printer, serial_terminal, sunkbd, sunkbd_adaptor and z80scc_channel - ADSP21062 / SHARC CPU: Use standard memory maps - ARM CPU: Fixed STR! with rd == rn - COP400 CPU . Added COP400 LEI opcode (reset L pins when EN2=0) . Correct internal RAM memorymap . Added L pins tri-state callback - Dynamic Re-Compiling: Fixed XMM usage on x64 ABI, restores debugger functionality on Mac/Linux for DRC drivers (cpu\drcbex64.cpp) - i960kb CPU . Added scanbyte and IP-relative lda opcodes, masked low bits of branch targets. Removed printf. . Preliminary support for CALLS instruction and WIP on FAULTx instructions - M68020 CPU: Respect 68020 "freeze I-cache" bit; (MESS) 'Micro 20' 68020 cache test now passes. - M68705 CPU: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian, Tiger Heli and Tokio / Scramble Formation. - MB86235 CPU: Added preliminary recompiler, disable for now. Fixed PR updates. - PowerPC 4xx/6xx CPUs . Set DSISR to the DSI flags rather than the address on data access faults . Fixed DSI flag bits. Alignment exceptions will need more complex mask/shift depending on the instruction's addressing mode, but that's a job for another time; at any rate it uses the LSBs of the DSISR register. - TMS32025 CPU . Use the standard memory interfaces . Correct space of internal data maps - TMS32051 CPU: Removed address_spacenum. That's an elaborate way to do a nop. - DCS sound: Implemented proper ram bank switch for ADSP2181 systems - Votrax SC-01 sound: Simulated device (gorf, qbert, qbertqub, reactor, sqbert, tylz and wow). Complete simulation of digital section based on die imaging (ID 00486). Plosives are still imperfect. - 6840 PTM: Use standard device clock for internal clock - 8155 RIOT: Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts in Equites - 8253 PIT: Reading back the count while in the middle of a 16-bit write returns a xor'ed version of the value written. Fixes (MESS) Apricot PC error 29. - ATAPI . Fixed issue with 68000 byte writes to sector count by only taking the bottom 8 bits from the bus (machine\atahle.cpp). Note: Don't use mem_mask as ATA doesn't have an equivalent mechanism for byte accesses and it could mask out data that real hardware would keep. . Fixed ATA Write Multiple (command c5) ignoring the block count on the first block (machine\idehd.cpp) - Discrete Netlist . Added simple ROM hookup capability . Device additions: 74161 Synchronous 4-Bit Binary Counter with Clock. 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs. Am2847 Quad 80-bit Static Shift Register. DM9334 8-bit Addressable Latch. 82S126 1K-bit bipolar PROM device. 74174 Hex D-Type Flip-Flop with Clear. 2716 16 Kbit (2048x8) UV EPROM. 74166 Parallel-Load 8-Bit Shift Register device. 74260 Dual 5-Input NOR Gate device. Intel 2102A 1Kbit (1024x1) Static RAM. 74365 Hex Bus Driver with 3-State Outputs. Generic 2- and 3-terminal Tristate device. Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables. Added 74165, 74194, 7475, 7485, DM9322, uA741 in 8-, 10- and 14-pin DIP variants (netlist\macro\nlm_opamp.cpp), 4316 bilateral switch pack, 82S126 4kbit (512x8) TTL bipolar PROM and 82S123 256-bit (32x8) TTL bipolar PROM. . Added shared RAM pointer, for use by netlist RAM devices which need updating by non-netlist driver code. . Various fixes: 7473: Made device only transition on a falling clock. 74161: Inverted Clear and Clock inputs to match datasheet. 74260: Fixed number of inputs. Am2847: Fixed shift register size (was 160 bits, should have been 80 bits). DM9334: Inverted C and E inputs to match datasheet. . Added netlist-based video board emulation to (MESS) Hazeltine 1500 . Added inductor to netlist and some files to nl_examples. Fixed 74107 and 74107A timings to typical values. Leave more comments on differences between 74107 and 74107A. . Added proper connection information for a number of chips to net_lib.cpp. This allows to parse and run (MESS) nl_hazelvid.cpp using nltool: nltool -t 1 -f nl_hazelvid.cpp - Floppy: Added a configuration for disable the motor control when MO line is not connected (machine\wd_fdc.cpp) - Imgtool . Changed a number of declarations to use std::string instead of 'const char *. Removed dead strncatz() function. . Fixed a recently introduced error in the 'dir' command line command. Cleaned up the output of the 'dir' command. - MC68230 PIT . Improved reset, timer and port C behaviour. Fixed typo and removed uneeded counter in exchange for a more clear TIN pin clock update interface . Added bitwise update methods for all ports and moved register access methods to private section . Fixed bug in port A-C write and added check of DDR registers for bit updates . Added initial support for timer interrupts and embryonic support for port interrupts - Microtouch touch screen: Added output status command and fixed data transmission at 2400 baud (drivers\adp.cpp, cubo.cpp, magtouch.cpp, meritm.cpp, pcat_nit.cpp, tmaster.cpp and vlc.cpp) - Polygon rendering: Added method triangles_drawn to get private member m_triangles (video\poly.h) - TTL . Added 74LS157 Quad 2-Line to 1-Line Data Selectors/Multiplexers device . Created new 74LS157 device and hook it up to MSM5205 on Rastan. Use 74LS157 device also in Disco Boy and yunsung8.cpp. 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound. 74157 updates (Pinball division): Added 74HCT157 device type alias. Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics. Changed device and macro names. Stylistic cleanups; avert potential crash in some drivers. This doesn't seem quite right by the schematics, but gives better sound. - Z80 DART . Set the vector status bits to 1 at eoi . Only update serial line configuration if it actually changes. Allows the apricot serial port to work correctly. - Z80 SCC . Enabled more Rx interrupts and fixed FIFO error . Fixed a regression FIFO bug and a bug in the handling of Special Interrupts. Clean up some of this double paren nonsense. - 8080bw.cpp . Fixed loading of the colour proms for moonbase and moonbasea . Fixed colors don't change at certain areas of the screen for each player's turn in a 2-player game of sicv, sicv1, invadpt2, invadpt2br, moonbase and moonbasea. It fixes also the ship colour (the score was already ok) of galxwars, galxwars2, galxwarst, ozmawars, ozmawars and starw1 (ID 06449). - amusco.cpp: Added coin counter and dispenser - astinvad.cpp . Fixed incorrect colors in Space King 2 at certain areas of the screen (ID 06450) . Added bonus sound to Kamikaze and Space King 2 - atarittl.cpp: Added a chip burn-down list, listing which chips still need to be emulated for Indy 4 and Stunt Cycle. - atlantis.cpp, midzeus.cpp and seattle.cpp . Updated Midway Zeus2 Video coordinate scaling and increased Z buffer to 24 bits . Updated screen rectangle to keep Skins Game from crashing. Renamed UART ports in atlantis.cpp. . Added hooks for serial communication (machine\midwayic.cpp) - by6803.cpp, mcr.cpp, mcr3.cpp, mcr68.cpp and zwackery.cpp . Identify DAC (-> AD7533) for Midway Cheap Squeak Deluxe/Turbo Cheap Squeak . Moved the Cheap Squeak Deluxe sound board to its own file (audio\csd.cpp) and give it its's correct name. Updated CSD interface to better reflect real hardware, added address decoding PAL and verify memory map. . Removed "Artificial Artist" board PAL from Zwackery, now included in the CSD device. - cedar_magnet.cpp . Added fresh dump of the magnet system Exzisus disk. One sector different, fixes graphical glitches in first level. The Magnet System were being sold back in the day, so not protos despite the bugs. . Further attempts to improve accuracy of 40105 FIFO emulation - chihiro.cpp . Parametrize constants used in debug command routines to support different bios/kernel versions. Moved threadlist debug command to Xbox. . Enable clipping of vertices where w is negative. Updated w clipping and disable it since it still causes problems. . Added method triangles_drawn to get private member m_triangles (video\poly.h) . Added some debug checks and adjustments in graphics routines - chihiro.cpp and triforce.cpp: Redumped PICs & documented S/Ns for Quest of D, Key of Avalon 2.x and Virtua Striker 4 Ver.2006 (Japan) - darkmist.cpp and raiden.cpp: Added PCB notes - dec0.cpp . Sound improvements for clone Automat (bootleg of Robocop): Reduced YM2203 speed to match music pitch on reference video. Added second MSM5205 + two 74LS157 and fixed communications. Added sound banking (probably not entirely correct). . Don't apply H6280 decryption to sound Z80 in clone Secret Agent (bootleg). Incremental sound improvements. - dec8.cpp: Added id8751h dumps to 'csilver' and 'srdarwin', not hooked up yet. Dumps look good, hookups appears to be slightly different to other games due to different main CPU and interrupt schemes, still investigating. These can probably be used for the japanese clones if the ID byte is changed to create a fake rom, as was done for the other sets in the driver. - epos.cpp . Added multiplexed inputs for clone Beaste Feastie and Dealer . Dumped PAL10H8 for clone Beastie Feastie (conversion kit) . EPOS decryption simplification WIP (machine\epos.cpp) - fromance.cpp . Fixed OL gal display for Rettou Juudan Nekkyoku Janshi. Note: Hardware writes to a VRAM mirror for showing the OL gal. . Added visible horizontal parameter to CRTC - gaiden.cpp, spbactn.cpp and tecmo16.cpp . Final Star Force . Fixed the 'direct sum' of two ARGB colors (video\tecmo_mix.h). This correct the wrong saturated colors in Level 2 (tank underwater,final boss). . Added a video reference (https://www.youtube.com/watch?v=EXBTNk-0ejk) for the wrong background in the title screen. . Fixed macro typo in video\tecmo_mix.cpp; renamed MCFG_TECMO_MIXER_BLENDSOUCE to MCFG_TECMO_MIXER_BLENDSOURCE. Correct some sum_colors mistakes. Added extra parenthesis to std::min for sum_colors and removed 'extra spaces'. - gkigt.cpp: Fill in RAM areas so all sets make it to polling vbl instead of crashing - guab.cpp . Created a Thomson EF9369 video device and use it for the driver . Cleanup driver, hook up SN76489 ready signal, hook up some debug LEDs. . Hook up PPI and ACIA. Label some outputs. . Fixed and improved output labels, add ten up labels - iteagle.cpp . Cleaned up serial handling (machine\iteagle_fpga.cpp) . Remapped service buttons to standard location. Connected CDROM and started adding RS232 communication ports. Removed leftover debug print. - konamigx.cpp: Fixed CPU and sound CPU hanging on state load (video\k053246_k053247_k055673.cpp, sound\k054539.cpp and k056800.cpp) - legionna.cpp, raiden2.cpp and seicupbl.cpp: Fixed palette dimming by respecting a fade-me-not bit (seibucop\seibucop.cpp and seibucop_dma.hxx) - leland.cpp: Initial work towards save state support - mcr68.cpp: Replaced 6840 PTM custom implementation with the standard one - metro.cpp: Made sound output mono. None of these games are stereo. - mitchell.cpp: 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound - midwunit.cpp: Decapped and read out security PICs for Ultimate Mortal Kombat 3 (rev 1.2) and Rampage: World Tour (rev 1.3). Added proper PIC labels. - model1/2.cpp . M1COMM/M2COMM cleanups . Make clone Wing War R360 (US) playable - naomi.cpp . Guessing security PIC number of Shakatto Tambourine . Dumped 253-5508-0364 from unknown NAOMI satellite game and 253-5508-0422J from Quest of D (some undumped newer version) . Added Sega DIMM board architecture documentation - peplus.cpp: Documentation update - photon.cpp: Minor cosmetical cleanup, initial preparation for save state support. - segag80r.cpp: Added "Return 0xffff" HACK for the current program counter while fetching the vector as the segag80r protection currently relies on it. Reduced the number of extraneous reads that the segag80r protection performs. This fixes most/all Sega G-80 sets resets itself during play (ID 06440). - segas16b.cpp . Dumped I8751 317-0078 at location C2 for parent set altbeast. Also renamed the mc8123 regions to 'mc8123' instead of 'mcu' because it was confusing. . Dumped I8751 317-0123A at location C2 for parent set goldnaxe. Although I've had to added a dubious cycle steal change to prevent things from crashing, might need more testing / investigation / work with the PCB to verify interrupt sources and if there's a bus steal mechanism. . Added dump of I8751 '317-0112 at location C2 to clone goldnaxe2. Chip was faulty, some bit errors and internal checksum fails. Still using simulation for now. The code looks to be mostly the same as the goldnaxe set, not even offset, but unused garbage areas have different fills so tracking down exactly which bits are bad is difficult, as they're not neccessarily all in the used code. - slapfght.cpp: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian and Tiger Heli. - srmp2.cpp: Fixed regression with ADPCM playback on M68k based games - stv.cpp . Documented 315-5649 IO chip and fixed Astra SuperStars test mode hang . Fixed bad dumps in Choro Q Hyper Racing 5 . Redumped 'Print Club 2 2000 Summer' and 'Print Club 2 Vol. 8 Summer' using the heat-gun method to obtain valid dumps from fragile ROM chips - system16.cpp . Sound improvements for clones Altered Beast (Datsu bootleg), Mutant Warrior (Altered Beast - Datsu bootleg), Passing Shot (4 Players) (bootleg), Shinobi (Datsu bootleg, set 1) and Shinobi (Datsu bootleg, set 2). Hook up MSM5205 and 74LS157 on the 2xYM2203 bootlegs, all of which now have some imperfect samples playback. . Correct clone Golden Axe (bootleg) sound system configuration (2x YM2203 (4MHz) and MSM5205 (384000 Hz)) - tnzs.cpp . Added Taito M-Chip M-001 dump for Extermination. Also works for Dr. Toppel's Adventure and Plump Pop. . Various driver refactoring . Fixed MCU name in Plump Pop, and marked MCU as bad pending verification that it is the same which Dr. Toppel and Extermination use. . Updated a slew of comments, added most missing pals as undumped, fixed some rom labels, added a chart of the different Taito/Seta PCBs covered by TNZS driver and the differences between each. - toaplan1/2.cpp . Decapped, deprotected, dumped and hooked up the HD647180X MCUs for Vimana, Fire Shark and Teki Paki. . Fixed DSWB reading in toaplan1.cpp (seems to be inverted when read by the MCU), also reverted changes to TJUMP jumper settings and inverted those as well on read, though it still seems to be a bit screwy for some settings. Vimana regions should work fine now. - yunsung8.cpp . Fixed MSM5205 sounds. Simplified ADPCM write: No need for nibble swap. . Inputs clean up. Implemented main irq_ack. Better names for tilemap vars. . Fixed manufacturer in clone Cannon Ball (Yun Sung, vertical) (was "J" not "T"); also added 'Production' suffix. . Use 74LS157 device - 10-Yard Fight: Fixed flipscreen/cocktail mode offset (ID 04796) - AGEMAME . aristmk5.cpp . Added internal layout and connected microtouch to Magic Mask and Party Gras . Added default NVRAM to cuckoou, dolphntru, incasunu, magimask, magimaska, minemine, partygrs, pengpayu, qnileu and wcougaru so the games come up in a playable state. . Redumped clone Chicken (RHG0730-03, US) and Top Banana (0100550V, NSW/ACT), now passes checksum. . mpu4vid.cpp: Updated mpu4vid to use Thomson EF9369 video device - Amiga: Removed a couple of driver_data() calls - Archimedes (aristmk5.cpp and ertictac.cpp) . Make floppies work . Fixed vblank timings in Acorn Archimedes and enabled partial updates, VIDC definitely needs a device rewrite at this stage plus ARM timings are quite off unsurprisingly (machine\archimds.cpp). . Fixed Vertical Count Register and pixel clock timings . Fixed sound double-buffering . Fixed ertictac.cpp regression - Beezer: Rewrote driver. Uses the standard 6840 PTM core for sound generation. New MM583 Noise Generator device. New DAC-76 DAC sound. Use resistor network values for colors. Use bankdev device for banking. - The Berlin Wall: Fixed "Copy Board" error message in clones The Berlin Wall (bootleg?) and (Korea) (ID 00101) - Bombjack Twin: Hooked up OKI6295 in clone Atom (bootleg of Bombjack Twin), needs banking and improved sound tempo. Adjusted dipswitches as per dipsheet. - Burning Fight: Correct clone Burning Fight (prototype, ver 23.3, 910326) romlabels (thanks jackc) and added it to swlist (hash\neogeo.xml). - Crystal Castles: Clarified input situation by assigning port conditions/names to the button inputs so they have proper default mappings between Upright/Cocktail (ID 06451). - Disco Boy: Use 74LS157 device - Double Dealer: Fixed flip screen regression and removed prefixes/suffixes - Dream 9 Final: Set initial banking so Z80 doesn't run off rails - Dynamite Duke: Replacing parent with the set having the latest build date. Also added build dates to the description for all games in driver. - Equites: Use 8155 device. Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts. - Final Fight: Fixed clone Final Crash (bootleg of Final Fight) sprites not flipped when flipscreen is ON (ID 04921) - Finalizer: Fixed flipscreen (ID 04922) - Game Magic: Removed unnecessary file machine\cr589.h - Ghouls'n Ghosts: Added missing PAL dump to clone Daimakaimura (Japan) - Hana Awase: Fixed credits dipswitch does not work (ID 02855) - Mustache Boy: Flip screen improvements. Fixed Y positions of flipped sprites. Implemented flip screen "Hard SW" as in Irem games. Correct polarity of all dipswitches. - NBA Jam Extreme: Added 4th button - Phoenix: Fixed cocktail mode displays incorrectly (ID 06452) - PinMAME . Added missing sound ROM for U-boat 65 . 74157 updates (Pinball division): Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics . Another attempt at improving accuracy of sound emulation in inder.cpp - Rastan: Created new 74LS157 device and hook it up to MSM5205 on Rastan - Shoot Out . Added a note that the PCB has only one 12MHz XTAL, derived all clocks by this value and replaced 'old style' screen parameters with MCFG_SCREEN_RAW_PARAMS. . Removed m_bFlicker variable and used screen.frame_number instead. . Fixed missing title screen music, fixed coin counter and simplified rom loading. Skipping hex values is not so strange for a BCD counter (that would be invalid for a decoder IC). Clarified the coincounter_w comment. - Side Pocket: Fixed cocktail mode, added a note about the 'cooperative mode', implemented y scroll and added VRAM and CRAM mirrors. Small draw_sprites clean-up. Added a TODO node about possible unimplemented MCU simulation for "cocktail mode". - Sky Robo: Fixed Sky Robo doesn't boot since MAME 0.154 - Sunset Riders: Some input port cleanup/simplification for Sunset Riders (4 Player) clones. All inputs mappable are shown in the Test Mode even if they are not used for that particular versions/cabinet type. - Tail to Nose . Added sound semaphore hookup, fixes random BGM lockups. . Added alternative input method, selectable thru control panel dip-switch. Added DIP locations. - Tokio / Scramble Formation: Dumped 68705 MCU and hooked up. Fixed MCU clock rate based on comments in driver (Games now playable). - Turbo Force . Better documentation for the Turbo Force sets . Added correct and verified MASK roms. Fixed size for gfx rom U134 & U135 and added a redumped U180 sound rom at the correct size. - Vapor Trail . Fixed missing 'game over' animation and 'P3 coin' is 'Service Mode' dipswitch. . Implemented main irq acknowledge. Note about the service mode DSW + game alignment. - World Beach Volley: Added PIC16c57 dump. This gives partial sound. OKI banking setup for the game is incorrect in the driver so music doesn't currently play also I cleaned up OKI banking in the whole driver by using configured banking to make further work cleaner. - Zombie Raid: Hook NVRAM, added calibrated default. - Zwackery: Moved gamr to its own driver. It doesn't have much in common with the other games in the driver. Also clean up the implementation, make spriteram 8-bit, added some hardware info and button descriptions. - Dipswitch fixes in mjcamera, mustache.cpp, nmk16.cpp and tail2nos - Fixed rom names in aerofgt.cpp, dec0.cpp, momoko.cpp, neodriv.hxx, tnzs.cpp and zwackery - Description changes of Coccinelle (bootleg of Lady Bug, set 2), Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200), The Double Dynamites (Japan 13NOV89), The Double Dynamites (US 13NOV89), Dynamite Duke (Europe set 1 03SEP89), Dynamite Duke (Europe set 2 25JUL89), Dynamite Duke (Japan 03SEP89), Dynamite Duke (US 25JUL89), Exzisus (EX 1.0, Magnet System), Flicky (64k Version, 315-5051, set 1), Flicky (64k Version, 315-5051, set 2), Flicky (128k Version, 315-5051), Flicky (128k Version, not encrypted), Grand Cross v1.02F, Lost in Space (1.01, Display 1.01), Mahjong Clinic (Japan, set 1), Metal Slug 2 Turbo (NGM-9410) (hack), Momoko 120% (Japanese text), The NewZealand Story (World, prototype) (older PCB), The NewZealand Story (World, unknown version) (older PCB), Sega Rally Championship - TWIN/DX (Revision C), Sega Rally Championship - TWIN/DX (Revision B), Super Visual Football: European Sega Cup (Rev A), Time Scanner (TS 2.0, Magnet System) and Xain'd Sleena (SC 3.0, Magnet System) - Renamed (dynduke) to (dyndukea), (dyndukea) to (dynduke), (ladybgb2) to (ladybugb2), (sidebs2j) to (sidebs2ja), (srallyca) to (srallycdx) and (tnzso) to (tnzsoa) - MAME . Make -console start console LUA plugin . PLUGINS: Updated hiscore.dat . UI . Double-check key state before UI autorepeat, this fixes keyboard/gamepad game list selection jump every two games (emu\uiinput.cpp) (ID 06389). . Added an associative LRU cache with map-like behaviour to util\coretmpl.h. Use LRU cache in ui\selmenu.cpp so icons don't all need to be reloaded on scroll. . Set default character for absent glyphs in uismall.bdf . Encapsulate many BDF and BDC handling details (emu\rendfont.cpp). Make file I/O 64-bit clean, check for allocation errors. More solid BDF parser with error messages and trace logging. Fixed heap smash when building bitmaps for BDF fonts. Extended BDC format to support high planes and default character. Render default character if glyph not found for BDF/BDC. . Make bitmaps movable, allowing them to be used in vectors and emplaced easily. . Another attempt at sorting File Manager entries . Removed the magic bypass in emu\dimemory.cpp . XML refactoring: Moved stuff to namespace util::xml. Scope down some enums. Split config load/save delegate types. Make config load take const so it can't mangle data. . UWP (Universal Windows Platform): Added temporary signing key for MSBUILD support (uwp\mame_TemporaryKey.pfx) . HLSL: Make hlsl\phosphor.fx persistence independent of frame rate . MULTI-LANGUAGE: Update Catalan translation to 361t, 133u . Overhaul of emu\devcb.cpp . Allow stringing multiple callbacks together recursively. Chained callbacks will be read or written in sequence, and each can be configured with its own type and mask/shift/XOR parameters. . Chained input callbacks cannot have overlapping masks (there's no such thing as a free multiplex). Chained output callbacks have no such restriction. . Removed the constant parameter for the LOGGER callback type: It makes no sense for output, was always zero in existing usage, and is now unnecessary with callback chaining. . Changed LOGGER behavior for writes to log the user-defined message only if the output as masked is nonzero. With callback chaining, this can be used to monitor when individual bits become active. . Constant read callbacks can no longer have MCFG_DEVCB_XOR or MCFG_DEVCB_INVERT specified (makes no sense in this context). . Added a MEMBANK callback type to allow output bits to be used for bank-switching. . Added ASSERTLINE and CLEARLINE callback types that raise or lower an interrupt line if the selected bit of the written value is active. These are intended for where periodic or ready-pulse signals from devices are used to trigger IRQs that the CPU program will independently acknowledge. . Added MCFG_DEVCB_BIT as shorthand for masking and shifting out an individual bit for a callback. . Removed DEVCB_LINE_DISPATCH_. Where we're going, we don't need line dispatcher devices. . Note: The incompatibility of compilers with regard to post-C90 printf string formats is shockingly bad. There seems to be no easy way to format a 64-bit value and please both GCC and Clang, let alone MSVC. . Fixed for -romident misattributing device ROMs to alphabetically first driver using them (mame\media_ident.cpp) . Replaced a few debug asserts with friendlier error messages (makes validation less dangerous in debug builds) (emu\addrmap.cpp) - Compiling . Disable incremental linking for VS debug builds (scripts\genie.lua) . Created DYNAMIC_API macros for dynamic bind helper classes. Updated name of DYNAMIC_API macros. . Enable building projects that are separate of MAME but use same core and lives in separate git tree . Detect if SOURCES file do not exist . Don't crash on late binding if no object is actually needed (util\delegate.h) - Debugger . Added 'o' variants to memory debugging commands to request decrypted opcodes space . I8086/I80186/I80286 CPUs: Updated disassembly if IP or CS are changed in the debugger. Also update IP & CS when PC or CURPC changes (currently using a simple algorithm that may need to be improved). Added HALT to debugger state, so you can break out of a hlt instruction. Don't change CS if new PC/CURPC is within the current segment on i86/i186. Fixed i286 PC/CURPC in protected mode. . Lighten combo box list so that it's easier to read (debugger\debugimgui.cpp) . Sort directory entries in mount dialog, as zippath_readdir() does not guarantee entries are in any particular order (debugger\debugimgui.cpp). . Fixed uninitialised memory read as debugger command history and clean up a little 0.180 - New games: Draw 88 Poker (V2.0) and Shikigami no Shiro - internal build (V1.02J 2001/09/27 18:45) - New Working games: Go By RC/RC De Go, Number Crash and Space Lords - New Non-Working games: Meng Hong Lou - New clones: 1945k III (newer, OPCX1 PCB), Burning Fight (prototype, ver 23.3, 910326), Cosmic Invaders (bootleg of Space Invaders), Forgotten Worlds (USA, B-Board 88618B-2, Rev. E), Gran Premio F1 (Spanish bootleg of Pole Position II), Grand Prix Star (v3.0), Hit the Ice (US, with riser board), Metal Slug 2 Turbo (NGM-9410), Mustache Boy (Italy), Ozma Wars (Model Racing bootleg), Road Fighter (set 3, conversion hack on Hyper Sports PCB), Sol Divide - The Sword Of Darkness (Korea), Stone Ball (2 Players, v1-20 21/10/1994), Time Crisis II (US, TSS5 Ver. A), Vendetta (World, 2 Players, ver. ?) and War: The Final Assault (EPROM 1.3 Apr 7 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999) - New AGEMAME games: Cash Chameleon (0200437V, NSW/ACT), Cash Chameleon (0300781V, New Zealand), Chicken (0200530V, Queensland), Diamond Fever (0200302V, NSW/ACT), Inca Sun (CHG1458, US), Jungle Juice (0200240V, New Zealand), Player's Choice - Original (30143011, NSW/ACT), Unicorn Dreaming (0101228V, New Zealand) and Wild Amazon (01J01996, Venezuela) - New PEPlus games: Montana Choice (MG0025) Multi-Game, Montana Choice (MG0026) Multi-Game, Montana Choice (MG0182) Multi-Game, Player's Choice (MG0213) Multi-Game, Player's Edge (PK0885-PC056) Deuces Wild Poker (El Cortez), Player's Edge Plus (PP0001) Standard Draw Poker, Player's Edge Plus (PP0008) Standard Draw Poker (set 1), Player's Edge Plus (PP0008) Standard Draw Poker (set 2, El Cortez), Player's Edge Plus (PP0048) Joker Poker (set 1), Player's Edge Plus (PP0048) Joker Poker (set 2), Player's Edge Plus (PP0048) Joker Poker (set 4), Player's Edge Plus (PP0050) Joker Poker (set 4, El Cortez), Player's Edge Plus (PP0050) Joker Poker (set 1), Player's Edge Plus (PP0050) Joker Poker (set 2), Player's Edge Plus (PP0050) Joker Poker (set 3), Player's Edge Plus (PP0054) Deuces Wild Poker (El Cortez), Player's Edge Plus (PP0057) Deuces Wild Poker (set 2), Player's Edge Plus (PP0057) Deuces Wild Poker (set 3, El Cortez), Player's Edge Plus (PP0057) Deuces Wild Poker (set 4), Player's Edge Plus (PP0103) Deuces Wild Poker (set 1), Player's Edge Plus (PP0103) Deuces Wild Poker (set 2), Player's Edge Plus (PP0103) Deuces Wild Poker (set 3), Player's Edge Plus (PP0126) Deuces Wild Poker (set 1), Player's Edge Plus (PP0126) Deuces Wild Poker (set 3), Player's Edge Plus (PP0127) Deuces Joker Wild Poker (set 2), Player's Edge Plus (PP0188) Standard Draw Poker (set 3), Player's Edge Plus (PP0195) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0218) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0232) Patriot Poker, Player's Edge Plus (PP0294) Aces and Faces Bonus Joker Poker, Player's Edge Plus (PP0295) Super Deuces Wild Poker, Player's Edge Plus (PP0434) Bonus Poker Deluxe (set 2), Player's Edge Plus (PP0445) Aces and Faces Bonus Joker Poker, Player's Edge Plus (PP0447) Standard Draw Poker (set 3), Player's Edge Plus (PP0450) Loose Deuce Deuces Wild! Poker, Player's Edge Plus (PP0452) Double Deuces Wild Poker (set 1), Player's Edge Plus (PP0453) Joker Poker, Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG1199) and Player's Edge Plus (X002240P+XP000038) Joker Poker (Two Pair or Better) - New PinMAME games: Rider's Surf and Star God (variable replay score) - New devices: 136094-0072, 136095-0072, rax_audio, rtc62421, rtc62423, rtc72421, segadimm, sei80bu, taito_cf, taito_pccard1 and taito_pccard2 - New mame.ini options: homepath - ARM CPU . Implemented Transfers to User Bank in LDM/STM and fixed flags corruption in branch opcodes . Fixed register-base shift with a value >= 32, this fixes the RISC OS graphics issues. . Fixed carry for ROR and preserve IRQ_MASK in LDR R15,*** - M6809/HD6309/KONAMI CPU: Merged the M6809, HD6309 and KONAMI CPU disassemblers and changed to properly use streams. - M68000 CPU: Changed (MESS) drivers apollo.cpp and fccpu30.cpp from accessing has_fpu directly to use new set and get methods. FPU enable/disable methods (cpu\m68000\m68000.h). - SH-4 CPU: Begin SH4 MMU improvements (with a view to seeing what Aristocrat MK6 needs). Allow table upload by LDTLB opcode in SH4MMU. Allow experimental SH4 MMU test code to be turned on / off on a per-driver basis. - CD Audio and MSM5205: Removed volume trampolines - DISCRETE sound: Use osd_getenv instead of getenv - N2A03 APU sound: Fixed crash because nes_apu was always binding to root_device() before the n2a03 took over - Q-Sound: Fixed a bug in DSP16 caused by incorrect use of macro - Seibu Sound System (cleanup) . Eliminate SEIBU_SOUND_SYSTEM configuration macros hiding details of device construction . Start using devcb for generic YM hookups. Use device finder to connect seibu_sound_device to audiocpu. . Kyuukyoku no Othello has only one YM2203 and one ADPCM, not two of each . Moved SEI80BU encryption out of the SEIBU_SOUND device and make it a device of its own . Future changes planned: Separate SEI0100BU and SIE150 types; Cabal and Dead Angle should each be using two of the former. Separate SEI80BU device to handle Z80 decryption (Mustache Boy uses this for its main CPU). - 8155 RIOT: Removed unnecessary tag() parameter from logerror calls - 8253 PIT: MSB-only counter writes need to lower outputs in mode 0 - 8259 PIC: Use resolve_safe to protect against segfaults - 8279 KDC: Unify read/write handlers for standard A0-to-A0 hookup - ATAPI: Made constructor protected in machine\atahle.h. - Discrete Netlist: Fix up pstring code: Instantiate static constant members for ODR context. Declare static members of template classes properly. Declare external template instantiations. Fixed blind use of autocomplete ("treats" really?). Fixed ptype_traits on platforms where char is unsigned. Signed char is never an alias for char even if char is signed. Even if eclipse doesn't like using type, surely it supports typedef. - Harddisk . Fixed heap corruption when loading a new CHD fails . Throw CHDERR_FILE_NOT_WRITEABLE rather than CHDERR_UNSUPPORTED_VERSION if you try to open an old version for writing (imagedev\harddriv.cpp and util\chd.cpp) - Imgtool . Consolidated logic for default implementation of imgtool::image::list_partitions() . Changed imgtool::stream::open*() to return imgtool::stream::ptr . Fixed a recently introduced bug which caused image types that do not support partitions to function incorrectly - Laser Disc: Made ldplayer regular driver - MC68230 PIT: Small fixes - MSM5832 RTC: More accurate WR emulation - MSM6242 RTC: Added pin diagrams for good measure - SCN2674 Video Controller . Correct the row on which a split occurs, fixes (MESS) Octopus display of the last row before the status line split. . Added command 0xA6, fixes (MESS) Octopus status line in Concurrent DOS and BIOS character block write function. - TTL . Added 7400 Quad 2-Input NAND Gate . Added 7404 Hex Inverter . Added 74160/161/162/163 device emulation (BCD decade counter / 4-bit binary counter) . Added 74174/175 Hex/Quad D Flip-Flops with Clear . Added DM9334 8-Bit Addressable Latch . Added 82S126/82S129 256x4-bit PROM - Z80 DART: Finalized conversion to use util::fifo. Refactored FIFOs using new template based FIFO class. - Z80 SCC . Added support for RTxC as BRG clock source, allows the SGI Indy to have a console. . Fixed a bug in read register 15 support, allows macplus, etc. to boot now. . Improved interrupt handling, allows mouse pointer to move in macplus driver for System 6.0.8. . Fixed init state of latched rr0 values, improves the success ratio of getting the mouse working in both X and Y on macplus, etc. . Improved LOG printouts for synchrounous features of WR4 and WR10. Added external clock to SCC and decoded SCC synchronous init for (MESS) MacOS 7. Added minimal support for SYNC/HUNT mode to allow MacOS7 to boot to desktop. - Z80 SIO: Added UPD7201 device type and used it in (MESS) Mizar VME8105, plus some maintenance. - 8080bw.cpp: Fixed black screen in 2-Player game in cocktail mode on games using the multi-colored overlay, such as sicv or invadpt2 (ID 06418). - aleck64.cpp . Give priority to current transfer when reading AI length register. Eliminate explicit temps in AI length calculation. Only SP DMA skip for DRAM address, regardless of transfer direction (machine\n64.cpp). . Added Vivid Dolls dipswitches, note digital joystick support needs adding, game is switchable. . Added delayed carry signal for AI address. The AI address register is split into a low half and a high half. A hardware bug allows the carry signal from low to high to persist through a reload of this register. - aristmk5.cpp . Hooked-up EEPROMs, UARTs and some inputs. Fixed video DMA when vidstart != 0. . Added coin input, logic door input and RTC. . Fixed SRAM banking - aristmk6.cpp . Extended MK6 rom area so that the bigger games map properly and pass their checksums. Added several sets from Heihachi_73. . Clean up rom loading. Fixed rom loading in Bob and Dolly, The Buck Stops Here, Flame of Olympus - Cash Express, Player's World - Super, Rumble Reels and Sun & Moon - Bank Buster. . Fixed rom loading in Rumble Reels and switched 1x and 2x IC positions around (passes test and is consistent with others now). . Show framebuffer? instead of debug viewer.. can see startup text at least, games enable the SH4 MMU tho. Begin SH4 MMU improvements with a view to seeing what Aristocrat MK6 needs. Hook IRQ registers, actual sources still unknown. Allow table upload by LDTLB opcode in SH4MMU. Allow experimental SH4 MMU test code to be turned on / off on a per-driver basis. - cedar_magnet.cpp: Preliminary Magnet System sound. Removed unnecessary call to device(). Moved cedar devices out of drivers. - clshroad.cpp . Fixed Fire Battle music tempo. Align background with sprites. . Doc update - crystal.cpp . Fixed VRender0 timers . Added new user1 rom and mahjong control to Crazy Dou Di Zhu II - equites.cpp: Fixed cocktail mode video isn't working correctly in Splendor Blast and High Voltage (ID 06411) - gaiden.cpp: Fixed flip screen slightly offset down (ID 04933) - goodejan.cpp: Improved PCB documentation - gottlieb.cpp: Added (missing?) & to MCFG_LASERDISC_AUDIO - lsasquad.cpp: Refactored priority prom usage for Land Sea Air Squad and Daikaiju no Gyakushu - model3.cpp: Replaced custom RTC-72421 emulation with device - namcos21.cpp: Remap controls to use pedals and paddles for Driver's Eyes, Winning Run, Winning Run '91 and Winning Run Suzuka Grand Prix - naomi.cpp . Various naming changes: Added supported regions info. Changed all to "Export name / Japan name" template and correct few names as per title screens. . Added missing PICs for dragntr3, wccf116 and wccf1dup . Moved DIMM firmwares to device and docs update . Added unused/unknown security PIC dumps 253-5508-0352E, 253-5508-0456J and 253-5508-0506J. - peplus.cpp: Added in known flags. Documentation update & misc fixes. - psikyosh.cpp: Correct all games to mono - skylncr.cpp: Slight cleanup - stv.cpp/saturn.cpp . Worked around VDP1 timings in Sega Saturn, fixes regression with (MESS) Batman Forever gameplay speed (video\stvvdp1.cpp). Added Rotation Parameter read control register, fixes at least Riddler stage ROZ positioning in Batman Forever (video\stvvdp2.cpp). . Fixed visible area in stv.cpp - taitogn.cpp . Implemented G-NET BIOS flashing, games that require the v2 BIOS now require you to update the BIOS and turn off JP1 as part of the installation. A v1 BIOS flash is included, but you aren't forced to use it. . Moved G-NET protection out of ATAFLASH and into individual devices for each type of card . Implemented enough analogue control reading for Go By RC and clone RC De Go (Games now playable) . Added build dates and times to G-NET game descriptions . Added JP1 location for UI and fix digit transposition - tumbleb.cpp . Correct Choky! Choky! OKI xtal. Note: Some PCBs have left factory with a 3.57MHz while some have a 4.096 which matches other games, assuming the former are factory errors. TODO: MAME sound cores doesn't handle on-the-fly sound frequency changes, I guess best action here is to make the sound chip a slot option, assuming it's worth emulating a factory error in the first place. . None of games in the driver are stereo PCBs, correct to mono. - zn.cpp . Added MACHINE_NOT_WORKING flag to clone Psychic Force EX (Ver 2.0J). Note: Exception in attract after reading 0xbbbbbbbb from 0x8025ed18 leads to watchdog reset. . Fixed ZN1/ZN2 DSW descriptions (ID 06118) - Archimedes (aristmk5.cpp and ertictac.cpp) . Reworked Archimedes 310 HLE keyboard and added mouse input . Fixed horizontal display position and cursor position in VIDC . Added new NOT WORKING machines (MESS): Archimedes 305, Archimedes 440, Archimedes 3000, Archimedes 410/1, Archimedes 420/1, Archimedes 440/1, Archimedes 540, Acorn A5000, Acorn A4, Acorn A4000 and Acorn A5000 Alpha. Renamed a310->aa310 to avoid conflict with Amiga machines. Added all missing OS releases Arthur 0.30, RISC OS 2.01, RISC OS 3.00, RISC OS 3.10 and RISC OS 3.19 (German). All machines default to OS (Arthur, RISC OS 2, RISC OS 3) they were shipped with. Correct ROM labels/locations. Added default CMOS to boot to desktop. Mapped Acorn A4 Power Management extension. Added RISC OS 3 Applications to hash\archimedes.xml and removed some bad dumps. - Altered Beast: Fixed missing graphics in the crystal ball of clones altbeastj and altbeast6 (ID 03646) - American Music Poker . Identify and hook up 8155 interface chips for LPT & RTC . Added button-lamps and coin counter support . Fixed PIT8259 IRQs; game speed is much better now. . Coin inputs now read properly through IRQ4. Removed spurious coin counter. . Updated notes on printer - Batman Forever and NBA Jam Extreme . Emulated the Acclaim RAX sound board (audio\rax.cpp), fixing sound in Batman Forever and NBA Jam Extreme. . Hooked up extra NVRAM in NBA Jam Extreme. This fixes game crashes and NVRAM gets corrupted (ID 05928). - Bionic Commando: Added precise video signal timings. MCFG_SCREEN_RAW_PARAMS() still missing. Added proper frame timings. - Dream 9 Final: Hook up RTC-62421 and correct a few input types - Dynamite Duke: The Double Dynamites is actually more like Dynamite Duke TE, promoted to parent. - Fighting Roller: Hooked up coin counters - Gemini Wing: Fixed input issues (ID 06436) - Great 1000 Miles Rally / Mille Miglia 2: Unswapped button mappings for gtmr games so that they match the PCB/manual correctly - Lost Castle In Darkmist . Added real transparent pen mixing from proms, fixes ranking screen and gameplay area. . Added sprite chip fetch from top to bottom, fixes sprite-sprite priorities. - Marvel Land: Tagged as imperfect sound. Note: The sound in this version does not match Japan or any of the ports and sounds incorrect. Needing redump of sound rom. - Mirage Youjuu Mahjongden: Added 93C46 EEPROM hook-up - Mr. Do!: Fixed flipscreen regression - Number Crash: Redumped 2x maincpu roms (Game now playable) - Poker Ladies: Standardise inputs and removed P2 inputs - Power Drift: Made 'Power Drift - Link Version' not a clone since it's a very distinct rereleased version of the game - Pro Mahjong Kiwame: Added backup RAM hookup, fixes "BACKUP RAM ERROR" at first boot. - Puzzle Yutnori: Replaced MACHINE_NOT_WORKING flag with MACHINE_UNEMULATED_PROTECTION. Note: Protection appears to handle the sound, should check if it's just a block of code that is conditionally executed like some of the Semicom titles. - Quiz Punch . Dumped the 68705 MCU for Quiz Punch, protected by an epoxy block. . Hooked up MCU to the driver, improved graphics and sound. - Space Lords . Reverse-engineered Space Lords security FPGA and implemented decryption code (Game now playable) . Fixed input - Super Game (Sega Master System Multi-game bootleg): Added the missing maincpu rom. Note: This is actually quite interesting, this is a 512KB MASK rom, hence why it got missed the first time around. It actually appears to have been pulled straight from a home Sega Master System mulit-game cartridge and used on the arcade PCB. The rom contains another copy of the games menu in the first bank, except this copy of the menu has no timer/credit support and only references games in this specific rom. It is completely ignored by the arcade hardware which uses the game data part of the rom only, never banking this copy of the menu in. As this almost certainly came straight from a bootleg cartridge, this specific rom could also be added to the softlist with a custom mapper for the banking. - Tekken 3: Added Namco Cyber Lead cabinet JVS IO and LED controller PCB dumps. Typically was used with System12 games, put it to Tekken 3 for now. - Teenage Mutant Ninja Turtles: Changed visible screen back to 320x224 (ID 04790). Note: The 8 pixels on the left are being drawn in the overscan area, some monitors are correctly not drawing them, others do. It's clear the intent is for the player not to see them, but the fact remains they're there, on bad monitors. This as an aside is probably the reason for the infamous and much complained about 'shadow' problem on real hardware - the shadows match up with whatever is being drawn into the overscan area, stretched as a faint shadow across the whole screen. - Vigilante: Fixed visible screen area (PCB comparison) - Williams Multigame: Small refactor. Btw, bankdev was tried, but too many bugs resulted. - Input port . Polymorphize input_device and input_class and moved to separate source file (emu\inputdev.cpp/h) . Fixed key names with -keyboardprovider win32 (input\input_win32.cpp) . Drop invalid input tokens when parsing configuration, fixes uncaught exception error when writing configuration. - Dipswitch fixes in aleck64.cpp, dcon.cpp, jangou.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp and zn.cpp - Fixed rom names in clshroad.cpp, ddragon3.cpp, midvunit.cpp, twincobr.cpp and zaxxon - Description changes of Burning Fight (prototype, older), Chaos Heat (V2.08J 1998/09/25 17:00), Chaos Heat (V2.09O 1998/10/02 17:00), Fighting Fantasy (Japan revision 3), Flip Maze (V2.04J 1999/09/02 20:00), Go By RC (V2.03O 1999/05/25 13:31), Grand Prix Star (v2.0), Kollon (V2.04JA 2003/11/01 12:00), Kollon (V2.04JC 2003/11/01 12:00), Lots of NAOMI games, Mahjong Oh (V2.06J 1999/11/23 08:52:22), Mustache Boy (Japan), Night Raid (V2.03J 2001/02/26 17:00), Otenami Haiken (V2.04J 1999/02/01 18:00:00), Otenami Haiken Final (V2.07JC 2005/04/20 15:36), Otenki Kororin (V2.01J 2001/07/02 10:00), Peter Pack Rat (ID 06427), Player's Edge (PK0719-PC092) Standard Draw Poker (El Cortez), Player's Edge (PK0756-PC011) Standard Draw Poker (El Cortez), Player's Edge Plus (PP0008) Standard Draw Poker (set 3), Player's Edge Plus (PP0048) Joker Poker (set 3), Player's Edge Plus (PP0055) Deuces Wild Poker (set 1), Player's Edge Plus (PP0055) Deuces Wild Poker (set 3), Player's Edge Plus (PP0055) Deuces Wild Poker (set 4), Player's Edge Plus (PP0057) Deuces Wild Poker (set 5), Player's Edge Plus (PP0060) Standard Draw Poker (set 4), Player's Edge Plus (PP0103) Deuces Wild Poker (set 3), Player's Edge Plus (PP0126) Deuces Wild Poker (set 2), Player's Edge Plus (PP0127) Deuces Joker Wild Poker (set 1), Player's Edge Plus (PP0130) Aces and Faces Bonus Poker, Player's Edge Plus (PP0434) Bonus Poker Deluxe (set 1), Player's Edge Plus (PP0452) Double Deuces Wild Poker (set 2), Player's Edge Plus (PP0733) Double Aces and Faces Bonus Poker, Power Drift - Link Version (Japan, Rev A), Psyvariar -Medium Unit- (V2.04J 2000/02/15 11:00), Psyvariar -Revision- (V2.04J 2000/08/11 22:00), Quiz Punch II, Time Crisis II (US, TSS3 Ver. B), Ray Crisis (V2.03J 1998/11/15 15:43), RC De Go (V2.03J 1999/05/22 19:29), Shanghai Sangokuhai Tougi (Ver 2.01J 2002/01/18 18:26:58), Shanghai Shoryu Sairin (V2.03J 2000/05/26 12:45:28), Shikigami no Shiro (V2.03J 2001/08/07 18:11), Soutenryu (V2.07J 2000/12/14 11:13:02), Stone Ball (2 Players, v1-20 7/11/1994), Stone Ball (4 Players, v1-20 13/12/1994), Super Puzzle Bobble (V2.04J 1999/2/27 02:10), Super Puzzle Bobble (V2.05O 1999/2/24 18:00), Usagi (V2.02J 2001/10/02 12:41:19), World Club Champion Football European Clubs 2004-2005 (Japan) (CDV-10013), World Club Champion Football European Clubs 2004-2005 Ver.1.1 (Export) (CDV-10015), World Club Champion Football European Clubs 2004-2005 Ver.3.22 (Export) (CDV-10015P), World Club Champion Football European Clubs 2005-2006 (Export) (CDV-10027), World Club Champion Football Serie A 2001-2002 Ver.2 (Japan) (CDP-10001C), World Club Champion Football Serie A 2002-2003 Ver.2.12 (Export) (CDV-10002), World Club Champion Football Serie A 2002-2003 Ver.2.34 (Japan) (CDV-10008), WWF WrestleFest (US), WWF WrestleFest (World), XII Stag (V2.01J 2002/6/26 22:27), Zaxxon (set 1, rev D), Zaxxon (set 2, unknown rev), Zaxxon (set 3, unknown rev)', Zoku Otenamihaiken (V2.03J 2001/02/16 16:00) and Zooo (V2.01JA 2004/04/13 12:00). - Renamed (f1gpstar) to (f1gpstaro), (forgottnu1) to (forgottnuc), (pepp0008) to (pepp0008b), (pepp0048) to (pepp0048b), (pepp0055) to (pepp0055b), (pepp0055a) to (pepp0055), (pepp0055b) to (pepp0055a), (pepp0057a) to (pepp0057d), (pepp0103) to (pepp0103b), (pepp0126) to (pepp0126a), (pepp0127a) to (pepp0127b), (pepp0452) to (pepp0452a), (wwfwfest) to (wwfwfestu) and (wwfwfesta) to (wwfwfest) - MAME . VIDEO RENDERING SYSTEM . Fixed the D3D9 issues people are having (d3d\d3dcomm.h and drawd3d.cpp) . HLSL . Fixed games with off-screen backdrop artworks (e.g. Atari Football and Bowling Alley) that white out the screen when you enable HLSL. . Correct HLSL documentation: Removed -antialias option (does not exist anymore). Added missing -vector_beam_smooth option. Fixed suggested default values for -bloom_lvl_weights options (were messed up in the last update). . UI . Fixed MESS and MAMEinfo.dat display. Passing an empty string uses the current game name for infos so don't do that while in the main menu, since there's further check just below, removing these should be fine (ui\selgame.cpp and selsoft.cpp). Removed extra newlines (plugins\data\data_mameinfo.lua and data_messinfo.lua). . Cache texture/surface were not released when render target was destructed (render\drawd3d.cpp). This fixes MAME crashed with UI and HLSL (ID 06417). . Fixed a bug in parsing the software name option that prevented the loading of slot defaults for software selected from the internal UI (mame\mameopts.cpp) . Encapsulate a bit more of the menu base class to control when layout changes can happen. Encapsulate mouse translation in the menu code, make more stuff const. A bit of prep for making selected index private. . Fixed the mouse hover state drawing (ui\datmenu.cpp) . 3rdparty . Updated BGFX and BX and recompiled shaders. Fixed GLSL. Updated BGFX shader path for Emscripten build (src\main.lua). . Updated to latest GENie. Patches to keep same behavior as we had before. Finally sync with GENie, no more local changes. . ASIO: Header only mode in osd\asio.h. Fixed clear typo in ASIO, sent upstream. Added _WIN32_WINNT so asio.h file could be used and outside OSD section. Added ability to use ASIO in all core MAME parts (scripts\src\devices.lua, emu.lua, frontend.lua). . LUA engine . Replaced LUAbridge in Luaengine with Sol2. Removed non-operational LUA console code. Fixed save_item in Luaengine. Updated Sol2, made LUA console not crash for nil data. Removing SOL_CHECK_ARGUMENTS till we figure all consequences. . Added LUA-linenoise . Hide stuff that shouldn't be touched directly in registry . Updated PugiXML library, no override patches anymore. . Readded sqlite3 and lsqlite3 . UWP (Universal Windows Platform) . Make 3rdparty compile for UWP and start adding new OSD for UWP based on previous Brad work. Added video and window code to UWP. MALLOC_DEBUG part is not able to compile on UWP. Added clipboard handling. Added basic keyboard input. Enable sound. Added support to store files on Local storage. . Added OPTION_HOMEPATH to point to read/write folder, for now used by LUA scripts. Copied all needed files so plugins could be started under UWP. . Implemented GetFileSize and proper winrt file open . New UWP icons/images . Output verbose to debug plus turn off view scaling (windows\winmain.cpp). Different default font. Tahoma not available on XBOX (font\font_dwrite.cpp). Enable gamepad support and update keyboard support. Better keyboard key names. Hotkeys for gamepad plus more time for gamepad discovery. Removed explicit links for winstore builds. . Keyboard scancodes start at 1. Also thread synchronization which will be needed later when we have multiple windows. . Make executable for scripts\src\tests.lua follow rules for main file. Make normal notation for require. Split properly tests. Added more applicable Catch testing framework and converted all tests to be done properly by guidelines. Still needs TESTS=1 to enable build of tests. . Updated LZMA to 16.04 (security and portability fixes) . Fixed make VERBOSE=1 not showing archive commands for static libraries (3rdparty\genie\src\host\scripts.c) . PLUGINS . Fixed driver info (plugins\data\data_mameinfo.lua and data_messinfo.lua). Stored data in database. . Updated hiscore.dat . Made timer plugin use sqlite3 (plugins\timer\init.lua) . Make console a LUA plugin (plugins\console). This fixes CONSOLE does nothing but allow "EXIT" (ID 06413). Further improve completions by removing break chars from linenoise.cpp that hide the full type. Do not take Ctrl-Z since that have it's behavior defined for Linux. Exit on Ctrl-C in console without crashing. . MULTI-LANGUAGE: Updated German translation . Added basic HTTP server (lib\http\), not active yet, based on ASIO example with small refactoring included. . Ability to show custom menu using LUA (ui\pluginopt.cpp) . Address map refactoring: Removed device parameter. De-hand-templatized address_map_entry, removed then unneeded entry parameter. Simplified constructor, thanks Micko. Changed setters into passthroughs. Stream it. Changed to use dot syntax rather than -> syntax for chaining. Made obvious renames and added helpers. . Eliminated attaching memory maps to driver_device . Simplified memory allocation for osd_module . No need for osd_malloc, osd_malloc_array and osd_free. MALLOC_DEBUG not applicable anymore since we use new to allocate in 99.9% of cases. . Let osd_process_kill just kill, rest is on osd users, watchdog only in this case. . Changed window handle storage to template instead of void* . Don't do the periodic_check before every timeslice (emu\machine.cpp) . Rewroted complay.py (Compressed layouts) to parse/minify layout XML. Doesn't make much difference to executable size, but it catches XML errors at build time rather than waiting for you to try the system. . 32 bit windows monitor module fix (monitor\monitor_win32.cpp) - SDLMAME: Updated SDL2 to 2.0.5 - MAC OS X: Fixed MacOS build (scripts\genie.lua) - Compiling . Prevent -Wexpansion-to-defined warning in recent Clang (modules\file\posixdir.cpp) . Experimental support for compiling to WebAssembly using Emscripten (not yet working) . Added a fifo template in util\coretmpl.h. Added 'poke' and 'clear' methods to fifo template. . Added delegate support for lambdas and std::functions in general, also supporting const members now (emu\devdelegate.cpp) - see drivers\statriv2.cpp. . Do not use FUNC in delegate where applicable . Fixed building on IBM S390x and PPC64le . Lambda always have object in util\delegate.h . Hack to allow building with SOURCES=src/mame/drivers/cps2.cpp (ID 06407) . Make shaders compile DX9 and DX11 only on windows . Fixed USE_DISPATCH_GL compile, seams no-one is actually using it since it is broken for a while (render\drawogl.cpp) . XML . Turn xmlfile API into something that looks like C++ and allowed use of const data node objects. It's still a bit quirky but it's far better encapsulated before, and it plays nice with const. Patch up Qt debugger for new xmlfile API. . XMLfile cleanup: An empty tag and a self-closing tag are semantically equivalent, so std::string can be used saving some manual allocation. A valid tag can't have an empty name, so that can be std::string too. Still expose empty strings as nullptr to API users. Scope down the int_format enum. Work around buggy standard libraries. . Added VS2017 support into project files. Fixed compilation under VS2017, default_semantics is used by apply so need to be public. Generated proper SLN header. . Introduced u8/u16/u32/u64/s8/s16/s32/s64: New abbreviated types are in OSD and util namespaces and also in global namespace for things that #include "emu.h". Removed the cstdint types from everything in emu. Removed U64/S64 macros. Fixed a bug in dps16 caused by incorrect use of macro. Fixed debugcon not checking for "do " prefix case-insensitively. Fixed a lot of messed up tabulation. Changed many macros and constants to constexpr. Fixed up many __names. . Removed generic_ptr in emu\emucore.h . Added typographical characters to uismall.bdf, including the hair space used by the internal UI. . Removed Connection Manager part since it is used for compilers check, no need for this to be in release. - Debugger . Changed the 8085A, ARM, ARM7, ASAP, CCPU, COP420, Cosmac, Cube Quest, DSP16A, DSP32C, DSP56k, ESRIP, G65816, H6280, H8, Hyperstone, I386, I4004, I8086, I860, i960, Jaguar GPU, M37710, M6502, M6800, M68000, M6805, MB86233, MB86235, MB88xx, MCS48, MCS51, MC68HC11, MIPS3, MN10200, NEC Vxx, PDP1, PIC16C5x, PowerPC, PPS4, PSXCPU, R3000, RSP, S2650, SC/MP, SC61860, SHARC, SCUDSP, SE3208, SPC700, SH2, SH4, T11, TLCS-90, TLCS-900, TMS32025, TMS3203x, TMS32051, TMS32082, TMS34010, TMS57002, TMS7000, TMS99xx, TX0, uPD7725, uPD7810, V60, V810, Z180, Z80CPU and Z8000 CPU disassembler to use 'std::ostream &' internally . Fixed a number of identifiers beginning with underscores in the M6805 disassembler. Changed m_* ==> md_* (m6805\6805dasm.cpp). . Further cleanups to the TLCS900 disassemlber. Fixed spacing issues, converted a char[] buffer to std::string. . Changed all disassemblers to use output stream rather than character buffer. Changed disassembler overrides to use 'std::ostream &' internally. Changed disassembler infrastructure to not use char buffers internally. . Fixed a recently introduced bug in the 6x09 disassembler that could cause asserts when hitting what would be a legal 6309 instruction when disassembling non-6309 code. . Moved device_memory_interface from driver_device to dummy_space_device. Exposed the dummy_space_device as machine().dummy_space(), with a trampoline in driver_device for existing callers. Debugger no longer needs to special case root_device() to avoid showing the dummy address space. Replaced machine().driver_data()->generic_space() with machine().dummy_space(). Removed some driver_data<> calls. . Moved the declaration for dasmmips3(), ppc_dasm_one() and rsp_dasm_one() to a header file . Fixed debugcon not checking for "do " prefix case-insensitively . Eliminated 'ppc_dasm_one(std::string &string,...' and 'rsp_dasm_one(std::string &string,...' trampolines. Removed 'ppc_dasm_one(std::string &string,...' declaration and updated caller. Changed buffer.vec() to &buffer.vec()[0]. . Eliminated 'device_disasm_interface::disassemble(std::string &buffer, ...'. Moving disasm.clear()/disasm.seekp(0) out of if statement, so the stream is always reset. Refactored device_disasm_interface::disassemble() and dasm_override_delegate to take string buffers as std::string. . Eliminate static char[] buffers in the MB86235 disassembler 0.179 - New games: Exzisus (Magnet System), Humlan's Lyckohjul, Istrebiteli, Mahjong Senpu, Ocean to Ocean (Medal) [DECO Cassette MD], Splendor Blast II, Super Two In One, Time Scanner (Magnet System) and Xain'd Sleena (Magnet System) - New Working games: American Music Poker, Power Drift (Japan, Link Version) and Tatakae Genshizin Joe & Mac (Japan, bootleg) - New Non-Working games: Big Casino, Choro Q Hyper Racing 5, Crazy Dou Di Zhu II, Grande Fratello, Puzzle Yutnori (Korea) and Super Triv Quiz I - New clones: Blue Shark (Model Racing bootleg), Bombjack Twin (prototype? with adult pictures, set 2), Dead or Alive 2, Demon's World / Horror Story (set 2), Lady Maker [BET] (Japan), Mutant Night, Ocean to Ocean (Medal) [DECO Cassette MD] (No.10/Ver.6,US), Poker (Version 50.02 ICB, set 4), Ron Jan, Splendor Blast (set 2), Splendor Blast (set 3), Stargate (rev.5), Tarzan Chuang Tian Guan (V109C, set 1), Teenage Mutant Ninja Turtles (Asia 4 Players, version ?), Time Crisis II (Japan, TSS1 Ver. B), UniWar S (bootleg), Video Hustler (bootleg, set 3) and Wing War R360 (US) - New PEPlus games: Player's Edge Plus (X000013K+XK000012) Keno, Player's Edge Plus (X000846S+XS000006) Wild Star Red White & Blue Slots and Player's Edge Plus (X002002P+XP000038) Double Double Bonus Poker - Removed games: Player's Edge Plus (XMP00030) 5-in-1 Wingboard (CG2426) - New drivers: cedar_magnet.cpp, funtech.cpp, istrebiteli.cpp and mjsenpu.cpp - New devices: ad7521, ad7524, ad7528, ad7533, am6012, cedmag_sound, cedmag_plane, cedmag_sprite, cedmag_flop, dac_10bit_r2r, dac_12bit_r2r, dac_12bit_r2r_tc, dac_16bit_r2r, dac_16bit_r2r_tc, dac_2bit_r2r, dac_3bit_bw, dac_4bit_bw, dac_4bit_r2r, dac_6bit_r2r, dac_8bit_bw, dac_8bit_r2r, dac_8bit_r2r_tc, istrebiteli_sound, mc1408, mc3408, mc3410 and volt_reg - New mame.ini options: swpath = software - ADSP-21xx, ALPHA-8201 and AM29000 CPUs . Changed disassemblers to use std::ostream internally . Removed unnecessary formatstr() in AM29000 & fixed setting PC - M68000 CPU: Added [[noreturn]] instead of ATTR_NORETURN (cpu\m68000\m68kmake.cpp) - ARM7 CPU . Performed some minor optimization . (MESS) Game Boy Advance fix, added update_irq_state to ARM7 on places missing. - SH-2 CPU: Added read-back for BCR1 register, fixing missing polygons in (MESS) Daytona USA CE for Sega Saturn. Added stub bus\sci\wdt devices for SH7604, this part will require more work as H8 and SH-2 shares same chips. - SH-4 CPU: Reinstate lines removed in error - AY-3-8910A sound . Mention the OKI M5255, Winbond WF19054, JFC 95101, File KC89C72 and Toshiba T7766A as compatible / clone (sound\ay8910.h). . Implement upper address check, not configurable at present but chips could be ordered from the factory with ID's other than 0. Allowing you to chain multiple chips without adding extra address lines. Don't hardcode AY8910 into logerror, using name() instead. - CD Audio: m_audio_ended_normally is set within the stream_update(), so update the stream before returning it (sound\cdda.cpp) - DAC sound . Ataxx: Fixed missing sound channel caused by one DAC not being hooked up and one DAC being hooked up to two addresses. . Best Of Best: Fixed high pitch screech caused by incorrect addressing (two dacs weren't hooked up and two were hooked up to two addresses). . Cosmic Chasm: Fixed static noise generation caused by feeding the same bit to both DACs. . Cheeky Mouse: Slightly improved sound by implementing sound triggers as 8 x 1-bit DACs instead of 1 x 8-bit DAC. . harddriv.cpp: Improved 12-bit controls in all games in driver, although centre still goes out of sync. . Mega Phoenix: Fixed noisy samples due to wrong format. . Seicross and suna8.cpp: Changed to a 4-bit DAC as samples are packed nibble. . Space Guerrilla: Preliminary sound using space invaders samples. . Virtual Combat: Fixed static during machine gun fire due to incorrect DC offset removal. . vectrex.cpp: Fixed noisy samples due to wrong format. . Wheels & Fire: Fixed sound, EEPROM & analogue steering wheel and brake pedal. - ES5505/6 sound . Fixed readback of global registers when the current page was in a certain range . Made voices run for a zero-length loop, as real hardware does it and synthesizers rely on it. These changes fixed the playback of "Transwaves" on the (MESS) VFX and SD-series synths. - TMS3615 sound: Use new deprecated attribute - Volume Filter: Update stream before setting the new gain (sound\flt_vol.cpp) - 6840 PTM: Changed WRITE8 to WRITE_LINE for single-bit outputs. Changed device to use an array of devcb_write_line. - 8253 PIT and MSM5832 RTC: Eliminate device name from logging messages - CHDMAN: Fixed chdman addmeta --valuefile by calling the correct write_metadata - Imgtool . Fixed an unsigned overflow error that would causes crashes on 64 bit systems (imgtool\modules\mac.cpp) . Fixed a recently introduced bug that could cause module's close() callback to be invoked if an image fails to be opened or created. . Made imgtool_image (now imgtool::image) a "real" C++ class. C++-ified a few more classes: imgtool_partition ==> imgtool::partition and imgtool_directory ==> imgtool::directory. Changed many 'imgtool::stream *' to 'imgtool::stream &'. Changed a number of callbacks to be std::function instead of old fashioned function pointers. Changed the create/open callbacks to take 'imgtool::stream &&'. Changed 'imgtool::image *' ==> 'imgtool::image &', 'imgtool::partition *' ==> 'imgtool::partition &' and 'imgtool::directory *' ==> 'imgtool::directory &'. Modernized imgtool::image::list_partitions(). Changed imgtool::image::info() to use std::stream and std::stringstream. Consolidated logic for default implementation of imgtool::image::list_partitions(). Changed imgtool::stream::open*() to return imgtool::stream::ptr. Updated quite a bit of client code that manually owned these pointers. - MC6845 CRT: Allow cursor blink state to be read - RP5C01 RTC: Fixed clock regression with RP5C01. This also makes the RP5C01's NVRAM actually non-volatile (previously it would be cleared upon reset after being loaded). The RP5C01 has a power supply line but no reset signal input, so device_reset doesn't seem to make sense here. - Z80 SCC . Z-Bus interface functions zbus_r and zbus_w added supporting shift left/right modes. Improved variant handling including the incomplete read register maps for some. External CTS and DCD interrupts added. Improved device reset values. SWI acknowledge command added. Improved/fixed handling of wr9, rr2, rr3. WR7PRIME register added. Fixed vector modification. . Added iack by reading rr2. z80daisy_iack now returns -1 when no vector found or disabled through the WR9 VIS. Removed z80daisy_reti code to match SCC documentation. Removed defacto reset values where possible and replaced them with documented SCC reset values. . Improved Tx handling with FIFO including special case with 1 slot FIFO - atlantis.cpp and midzeus.cpp . Removed unused define parameter in Atlantis driver. Removed includes\midzeus2.h and video\midzeus2.cpp as not needed. . Zeus-2 video: Updated waveram organization. Updated quad rendering command size. Updated register naming. - chihiro.cpp . Clarifications and renaming for 3D matrices . Tidy up video\chihiro.cpp and updated driver notes. More details about AN2131QC pins. - cischeat.cpp . Set default palette init to black and fixed communications RAM ranges . Fixed dipswitch 'Unit ID' in F-1 Grand Prix Star II. . Added IRQ notes and bumped framerate to 60 Hz to all minus captflag/scudhamm. . Various input related bug-fixes to Wild Pilot: Changed lightgun to an AD-stick. Added Player 2 inputs. Fixed bogus start button starting a play even without a coin inserted. Demoted Wild Pilot to MACHINE_NOT_WORKING. . Fixed missing music in attract mode of F-1 Grand Prix Star II (ID 01205) - crystal.cpp, jalmah.cpp and ninjakd2.cpp: Added MACHINE_UNEMULATED_PROTECTION flag to Mahjong Channel Zoom In, Mahjong Daireikai and Otogizoushi Urashima Mahjong (games have unfinished m68k snippets), Mahjong Kakumei 2 (uses protected RNG), Atomic Robo-kid (random crashes), Donggul Donggul Haerong and Office Yeo In Cheon Ha. - decocass.cpp . Tagged all the DECO Cassette sets as US / Japan based on which BIOS type they use (A = Japan, B = US/World, they aren't compatible, using the wrong one will give a loading error). Note clone Bump 'n' Jump (DECO Cassette, Japan) is for type B, so was incorrectly tagged as Japan (or has been hacked). . Make the different decocass BIOS roms actually selectable. - megasys1.cpp: Added save state support - midvunit.cpp, midzeus.cpp and seattle.cpp: Added clickable buttons to a few Midway layouts (calspeed, crusnexo, crusnusa, hyprdriv and vaportrx) and cleaned up some code. - model1.cpp . Allow NetMerc to boot. There still seems to be something uninitialized or some memory corruption as quite often it will crash instead of launching, but if it does launch you can get a title screen and attract demo with some 3D. Roms pass in rom test now too. 3D is quite broken, lots of polys being stretched in weird ways and no 3D palette. . Make Model 1 render list scanning code safer by masking accesses to the ram size and using less pointer math. Without this invalid displaylists can easily crash MAME because the pointer artihmetic can end up going way beyond RAM sizes with no easy way to mask. NetMerc still crashes due to other things tho. . Allow NetMerc 68k to run - nightgal.cpp: Added some system inputs. Added gamble payout button to backspace as default for Night Bunny. This fixes game stalls when winning a hand (ID 06409). - skylncr.cpp: Update driver to use RAMDAC - stv.cpp: Added Taiwan 97/05/15 v1.14 BIOS. Minor documentation update. - system16.cpp: Preliminary sound for clones Bay Route (encrypted, protected bootleg) and Golden Axe (encrypted bootleg - American Music Poker . Major improvements (Game now playable) . Inputs figured out almost completely . Added blinking cursor for service mode . Gross hacks used to get coins working due to broken IRQ timings . Palette remains in dire need of improvement . RTC writes now actually go through, so the game will remain stuck in 1987 until the date is changed. Added the new machine flag for the unemulated printer. - Caveman Ninja: Some work on clone Tatakae Genshizin Joe & Mac (Japan, bootleg). Promoted to WORKING with known problems. - Destiny - The Fortuneteller: Updated to use stub LCD and updated flags - Draw Poker (Bally, 03-20): Redumped sound roms - Emeraldia: Fixed Emeraldia (World) visible area (ID 06404) - Irritating Maze: Redumped v2 rom and fix rom loading. No XML update as this cart isn't in the softlist as it was for a dedicated machine with custom BIOS only. - Mahjong Kaguyahime Sono2 [BET] (Japan 890829): Fixed clone Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808) year info (ID 06110) - PinMAME: Replaced sound ROMs for Contact, Disco Fever, Phoenix and World Cup Soccer with game specific sound dumps (drivers\s3.cpp). - Poker / Black Jack (Model 7521): Added 82s129 PROM and PAL20L10. Updated PCB layout. - Power Drift: Spotted link ID and link communication mode in clone Power Drift (Japan, Link Version), promoted game to working. - San Francisco Rush: Added layout - Vs. Janshi Brandnew Stars: Added missing soundlatch to Vs. Janshi Brandnew Stars, this fixes crash when you insert a credit (ID 06391). - Vindicators/Vindicators Part II: Added proper input labels. Make left/right sticks labels explicit so that "Left/Up" isn't upper-right direction but "Left Stick/Up". - Witch: Take the 'Hopper Active' dipswitch value into proper account; no longer must it be low. Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense. - Input port . Separate natural keyboard support from ioport.cpp . Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense (machine\ticket.cpp) . Misc keyboard input improvements . Added BS, Tab, 00, 000 keys common on add-on keypads as input items; SDL may recognize these, but DirectInput does not. . Assign Keypad 00 and Keypad 000 in several drivers' input lists . Added SDL keycode for "cancel" key . Added keypad keys as alternates to natural keyboard . Moved has_keyboard() out of the core; enabled() test is unnecessary now that all optional keyboards are slot devices. . Incorporate product/instance directinput device IDs. This change generates a more unique device ID for direct input devices by incorporating the product unique identifier and instance unique identifier. This allows for better disambiguation on device ID when mapping controllers via mapdevice config settings (input\input_dinput.h). . Parenthesize optional items in input menus (ui\inputmap.cpp) . Lock out ioport_fields independently of natural keyboard state . Fixed Left/Right Sticks for P2 and above (emu\inpttype.h) . Removed all ioport and address map macros from (MESS) Tranz 330 (emu\ioport.cpp/h and drivers\tranz330.cpp) - Dipswitch fixes in dynax.cpp, jangou.cpp, mjsister.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp, nightgal.cpp, niyanpai.cpp, segaybd.cpp, snowbros.cpp, srmp6.cpp and ssv.cpp - Fixed rom names in timecrs2 - Description changes of Bishou Jan (Japan, Ver. 203), Bombjack Twin (prototype? with adult pictures, set 1), Bust a Move 2 - Dance Tengoku Mix (Japanese ROM ver. 1999/07/17 10:00:00), Lots of DECO Cassette games, Demon's World / Horror Story (set 3), Demon's World / Horror Story (set 4), Demon's World / Horror Story (set 5), Dynamite Baseball '99 (Japan) (Rev B), Dynamite Baseball NAOMI (Japan), Everyone's A Winner (Barcrest) (MPU4) (unknown rev, bad), Idol Janshi Suchie-Pai II (v1.0), Idol Janshi Suchie-Pai II (v1.1), Mutant Night (Japan), New 2001 (Italy, Ver. 200N), Ron Jan Super, Royal Poker V 1.85, Sega Strike Fighter (Rev A), Sega Strike Fighter (Rev A, no training mode), Splendor Blast (set 1), Tarzan Chuang Tian Guan (V109C, set 2), Tatakae Genshizin Joe & Mac (Japan, bootleg), Time Crisis II (World, TSS2 Ver. B), Time Crisis II (World, TSS3 Ver. B), Time Crisis II (World, TSS4 Ver. A), World Series 99 / Super Major League 99, World Series Baseball / Super Major League (GDS-0010) and X-Plan (Ver. 101) - Renamed (demonwld1) to (demonwld2), (demonwld2) to (demonwld3), (demonwld3) to (demonwld4), (doa2) to (doa2a), (mnight) to (mnightj) and (ronjan) to (ronjans) - MAME . VIDEO RENDERING SYSTEM . HLSL/BGFX . Fixed target texture dimension when -intoverscan is used (this fixes the appereance of scanline and shadow mask) . Added target_scale and screen_count uniforms . Rounded corners now remain aligned with screen bounds when -intoverscan is used (single screen only) . Use floorf rather than floor for float->float (bgfx\chain.cpp, chainmanager.cpp and d3d\d3dhlsl.cpp). Fixed OSX build: Use fabsf rather than abs for float->float (emu\render.h). . Fixed aspect ratio of rounded corners . Reduced defocus effect to one pass (HLSL/BGFX). Removed second defocus pass. Limited defocus stength to a maximum of 2.0. . Fixed use of uninitialized stack memory in render\drawd3d.cpp . D3D/HLSL . Refactored d3d_render_target: Removed cashe_target class. Moved cashe texture and surface to d3d_render_target class. Render targets are now created per screen not per screen texture. Removed useless creation of render targets for ui textures (render\d3d\d3dcomm.h, d3dhlsl.cpp/h and drawd3d.cpp). . Fixed null reference exception (D3D/HLSL), when toggling from fullscreen to window mode. . Disabled clearing of render targets in several passes (HLSL). Which was quite a performance overhead and not necessary because the shaders fill every texel of a target without blending. . Improvements to rgb_t . Make most class methods constexpr . Make color constants (white, black, etc.) into constexpr factory methods, in order to fix a static initialization problem discussed on the MAMEWorld forums. Note that while C++14 allows constexpr member variables to be initialized outside classes, current compilers' support for C++14 constexpr rules has proven to be lamentably deficient. . Created bitmap_rgb32::erase to simplify syntax in update handlers . Erased bitmap_rgb32::erase . Make D3D9 a little more discerning in what level of bad hardware it will allow (render\drawd3d.cpp) . UI . Fixed crash in ui\selgame.cpp . Added "Software Media" folder (swpath). Allows users to specify location of loose software (emu\diimage.cpp, emuopts.cpp and ui\dirmenu.cpp). . Split media_identifier and console in separate files . 3rdparty . Added ASIO networking library. Removed libuv library. Replaced code usage of libuv with ASIO library. Added more warning disable to support compile on various Clang versions. . Added Sol2 header only library as future replacement for luabridge . Added Linenoise Next Generation library for CLI . PLUGINS: Updated hiscore.dat . Increased number of OSD modules (modules\osdmodule.h) . Register window messages before creating window (output\win32_output.cpp) . Proposal for new system flags: MACHINE_NODEVICE_MICROPHONE For unemulated microphone, MACHINE_NODEVICE_CAMERA For unemulated camera, MACHINE_NODEVICE_PRINTER For unemulated printer, MACHINE_NODEVICE_LAN For unemulated linking multi-cabinet capabilities and MACHINE_NODEVICE_WAN For unemulated networking capabilities. Restructured MACHINE_FLAGS into FATAL / WARNING / BTANB main categories, in order to make them easier to expose. . Initial work on console interface. Use Ctrl-Z to close console on any OS. To start use -console parameter. . Soft resets no longer turn back clocks on devices (device_rtc_interface) . Cleanups and refinements . Give RTCs their own phase of machine initialization, right after NVRAM loading . Make RTC feature flag overrides const, including one new one . Make rtc_clock_updated a required override . Fixed INI creating for individual games when the game and the driver share the same name (source.ini must now be in the source subfolder) (ID 03045). . We introduced a 16-char limit to parent sets, for eg. nintendo vs prefix, or when you're short 1 or 2 letters. - SDLMAME: Fixed alt-enter full screen toggling on SDL (Linux/Mac/BSD) builds - Android: Set Android 5.0 as minimum one, older API are not compatible - MESS . Sound Blaster 16 . Drop the upper bit of the address when shifting left, as described http://wiki.osdev.org/ISA_DMA#16_bit_issues (machine\cs4031.cpp). This fixes 16 bit audio in sb16 diagnose.exe. . Intel documentation is conflicting, which prompted osdev to claim that 128k DMA was impossible. Masking the lowest bit of the page instead of the upper bit of the address makes more sense and it does also fixed the issue with SB16 diagnose.exe playing silence (bus\lpci\southbridge.cpp, machine\cs4031.cpp, wd7600.cpp and machine\at.cpp). . Applied IBM AT 16-bit DMA wrap round fix to other implementations. . Added "headphones" to ATAPI CD-ROM drives - Compiling . Fixed two leaks (input\input_winhybrid.cpp and sound\xaudio2_sound.cpp) . Added new string conversion overloads [a|w|t|utf8]_from_[a|w|t|utf8_]string(xyz.c_str()). Bulk renaming of Windows string conversion functions: utf8_from_[a|w|t]string ==> osd::text::from_[a|w|t]string and [a|w|t]string_from_utf8 ==> osd::text::to_[a|w|t]string. . Some bool <-> int not needed conversions, also cleaned drivenum.* was using memset for clearing vector. . Changed dynamic_buffer to std::vector . Use std algo instead of manual setting (emu\screen.cpp) . Use standard types uintptr_t, char16_t and char32_t instead of FPTR, utf16_char, unicode_char . 3rdparty . LUA engine: Added new types, fixing LUA part (mame\luaengine.cpp). . Fixed Google benchmarks build and cleanup U64 and S64 macro definition, it is now in standard (benchmarks\eminline_native.cpp, eminline_noasm.cpp and osd\osdcomm.h). . NOTICE (TYPE NAME CONSOLIDATION): Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8. Also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8. . Converted lot of TRUE/FALSE to real boolean and updated types . Fixed VS build (noticed only when using MSBUILD=1) (scripts\src\3rdparty.lua) . Added virtual for consistency in cpu\alto2\alto2cpu.h, cp1610\cp1610.h, hd61700\hd61700.h, hphybrid\hphybrid.h, i860\i860.h, jaguar\jaguar.h, m6800\m6800.h, mb86233\mb86233.h, pic16c5x\pic16c5x.h, scmp\scmp.h and scudsp\scudsp.h. - Debugger . Fixed disassembly if 6809 is interrupted mid-instruction (debug\debugcpu.cpp and dvdisasm.cpp). Sync pc & curpc and removed superfluous callimport()/callexport() on STATE_GENFLAGS. . Make sure all CPU's export STATE_GENPCBASE and use safe_pcbase() for everything in the debugger, which allows interruptible CPU's to work properly. Changed CPU cores pcbase handling to be consistent with the majority of CPU cores, now that the debugger relies on it. . Fixed disassembly window updating when you set pc/curpc on 68000 and Z80. Removed masking from SH-2 curpc to be consistent with old versions and the pc passed by the interpreter to the hook to be consistent with the DRC. . Added row size as sixth parameter to debug dump command (debug\debugcmd.cpp) . Fixed disassembly window for ADSP21062, ALPHA-8201, ALPHA-8301, APEXC, I80186, PDP8 and MIPS3 CPUs. 0.178 - New games: Poker (Electro-Sport), Slap Shooter and Star Audition - New Working games: Grand Prix '98 (V100K) - New Non-Working games: Pop'n Stage (ver JB-A) and Labeled 'WU- MARY-1A' Music by: SunKiss Chen - New clones: Air Trix (original), Battles (set 2), Chicken Draw (2131-04, U5-0), Condor (S C Novar bootleg of Phoenix), Crush Roller (set 3), Elevator Action (4 pcb version, 1.1), Gemini Wing (bootleg), Jumping Cross (set 2), Le Grandchamps, Ms. Pac-Man (bootleg, set 2), NASCAR Racing (original), NBA Jam Extreme (ver. 1.10I), Nibbler (rev ?), Phoenix (Amstar, set 2), Pinguinos (Spanish bootleg on Pac-Man hardware), Popeye (Japan, Sky Skipper hardware), Raiden Fighters (Great Britain), Road Riot 4WD (set 1, 04 Dec 1991), Rolling Crush (version 1.03.E - 1999/01/29), Sauro (bootleg), Stratovox (set 2), Street Fighter (Japan, pneumatic buttons), Super Qix (World/Japan, V1.0), Tecmo World Soccer '98 (JUET 980410 V1.000), Terminator 2 - Judgment Day (prototype, rev PA2 10/18/91) and Virtua Fighter 3 (Revision D) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Barunba and Power Tennis - New drivers: marywu.cpp - New devices: at29c020, ms1_tmap, msm5832 and sharp_lh28f016s_16bit - New mame.ini options: monitorprovider - i860XR CPU: Fixed an issue on the i860 disassembler that could cause an undefined string to be used (i860\i860dis.cpp) - MC68340 CPU: Memberize public non-member function - PSXCPU: Fixed buffer overflow when debugging (cpu\psx\psxdasm.cpp) - TMS99xx CPUs: Added save state support to TMS99xx; replaced new/delete by unique_ptr. - AY-3-8910A sound: Slight improvements to AY8910 error logging, with some messages now disabled by default. - AY-3-8914 sound: Implement register readback masking for AY-3-8914 as used on (MESS) Intellivision - OKI6295 sound: Directly use set_rom_bank - 6840 PTM: Fixed channel card memory tests in (MESS) CMI IIx. Load the counter when held in reset (machine\6840ptm.cpp). - SCN2674 Video Controller: Make (MESS) Octopus look better (video\scn2674.cpp; ->mpu4vid.cpp) - Sega Custom: Simplify 315-5881 logic and updated comment - Sharp LH28F016S: Added 16-bit hook-up (machine\intelfsh.cpp) - aleck64.cpp: Promoted all games as working minus Magical Tetris Challenge - arkanoid.cpp: Clean up variable names for eventual harmonization with other Taito drivers with MCUs. Comment fixes and variable name clarify. Variable name consistency. - chihiro.cpp: Added debugger command "chihiro threadlist" to list ready threads except current one. Small refactoring. - cischeat.cpp: Added tilemap device to CiscoHeat driver and fixed a few soundlatches - cps1.cpp and mitchell.cpp . Changed joysticks to 4-way in ghouls, pang, spang and pang3 as flyers and manuals indicate . Mark button 2 in pang and spang as optional . Removed buttons 2 and 3 in pang3 (even service mode only shows one "Shot" button) - cps2.cpp . Use keys that can be programmed onto a CPS2 motherboard . Small step towards getting rid of the cps2_dead machine config - cmmb.cpp: Minor consolidations. Inputs and basic flash device hookup. - dwarfd.cpp: Fixed graphics in Poker (Electro-Sport) - freekick.cpp: Added flipscreen support to Gigas, Free Kick and Counter Run - goldnpkr.cpp: Added clickable buttons to layout\goldnpkr.lay - megasys1.cpp: Made Mega System 1 tilemaps into a device - midvunit.cpp: Fixed Midway V Unit wheel output. It seems the diagnostics test for the wheel is poorly coded for turning left as it is correct in game. - naomi.cpp . Docs update. Added machine\naomibd.cpp notes. . Fixed crashed before OK in some sets (ID 06364). The error 'Caught unhandled St11logic_error exception: basic_string::_M_construct null not valid' appears when the game is started (emu\parameters.cpp). Atomiswave developer and game names corrections. . Added Altera's config EPROM dump - nss.cpp: Revised/correct hardware info - photon2.cpp: Documentation update based on schematics research - seattle.cpp . Added layout for California Speed, Hyperdrive and Vapor TRX. . Minor improvement on logging. The LOG define isn't needed as everything expected is found. What could remain would be considered an error and needs to be logged. - segas24.cpp . Moved FDC legacy logging behind a compile switch . Fixed maximum shot power in Dynamic Country Club (ID 00792) - simple_st0016.cpp: Marked all games in st0016.cpp as MACHINE_NO_COCKTAIL - stfight.cpp . Switched to configured banking . Fixed save state problem with clone Cross Shooter (2 PCB Stack) - superqix.cpp . Vs. Hot Smash: Got rid of timer hacks for Z80<->MCU communication. Implemented 68705 DDR registers and proper readback of Z80<->MCU semaphores. Got rid of HOLD_LINE hack for NMI by implementing NMI ACK register. Added more driver notes. Consistencized the AY port bits. Added notes about what the majority of the hotsmash MCU code actually does. Unified memory map for prebillian and hotsmash. Made hotsmash machine config derived from prebillian. . Prebillian: Fixed rom labels and locations and added notes about lack of Taito game ID and PCB label. Improved MCU HLE for Prebillian to use non-anonymous timers instead of scheduler hacks. Consistencized the AY port bits. Got rid of hack mame_rand usage for the MCU semaphores in Prebillian in favor of proper implementation. Unified memory map for prebillian and hotsmash. . Super Qix . Shuffled around the Super Qix machine configs to make a bit more logical sense . Added a custom input member to clean up the MCU semaphore implementation for sqix and clones . Added some notes about the sqixb1 MCU code origin. Marked the recovered sqixb1 MCU dump good for that specific set as it matches a dump from a working PCB and updated notes. Replaced bootleg MCU code on sqix and sqixr1 sets with an MCU dump patched from the decapped sqixu MCU, using hints in the bootleg MCU code to figure out what to change. This very likely will match the real sqix/sqixr1 MCU once it gets dumped, but mark it as BAD_DUMP since it is a user-created image. . Added sqixr0 World/Japan V1.0 romset as a working clone, dumped from an early PCB. Renamed sqixr1, sqix, and sqixb1 set long names to include their version numbers. Updated comments about sqixb1, which is in fact an exact copy of sqixr0 with one gfx rom split and the MCU replaced with a bootleg version. Added notes about the greenwire fix on 7H on the V1.0 pcb vs the res/cap fix on later PCBs and notes about V1.0 coin lockout being inverted compared to the later sets. . Changed the samplerate of the sample playback engine from 5 kHz to 3906 Hz which sounds more correct in hotsmash, and is directly derivable from the 12MHz PCB xtal. . Variable name consistency. Added notes and some debugger access fences on read handlers. . Added notes about what the various rams on hotsmash/prebillian and superqix actually do, including the framebuffer ram. . Implemented AY-3-8910 mixing based on PCB tracing and added XTALs and notes about "SYSTEM" register bits being incorrect as currently implemented. - taitogn.cpp/zn.cpp: Renamed ZN1/ZN2 bios roms based on the label (where known), renamed the bios sets after the board and moved cat702 to files. - taitosj.cpp . Added semaphore and command handshake flags to audio section. This fixes no attract mode sound after first time loading in piratpet, junglek and jungleh (ID 01170). . Added XTALs for various clocks based on schematics. Documented and implemented AY-3-8910 outputs being tied directly together for 3 of the 4 AY-3-8910 chips. . Added proper handling of sound cpu NMI on sound command register and semaphore writes and clears. Added note about an unemulated filter effect on one of the AY chips. Some savestate and init fixes. . Fixed watchdog timing per schematics, and re-enabled watchdog. Bio Attack doesn't incorrectly trigger watchdog on death anymore. . Cleaned up rom labels/locations for the Elevator Action sets and added notes. Noted that the 4 and 5 board sets dumped so far of Elevator Action are the exact same code and gfx, just split differently. - tecmo.cpp: Added preliminary raster effects, improves ending screen effect in Gemini Wing. - tourvis.cpp: Updated information for new card images added - vsnes.cpp: Renamed select sets for Nintendo Vs. which cause -verifysoftware confusion with NES softlist titles due to shared setnames in the form of partial hits. This also tests the waters for expanded setnames for parents. - '96 Flag Rally: Needs START1 hooked up for the continue feature, even if it isn't used to start the game. - AGEMAME . Added new internal layouts to aces1.cpp, jpms80.cpp and mpu5.hxx . Fixed 'Fatal Error' when starting any maygay1b.hxx set (ID 06366) . Updated layouts with fixes and improvements . aristmk4.cpp: Added clickable buttons for 3 Bags Full (5VXFC790, Victoria) and clone 3 Bags Full (3VXFC5345, New Zealand) . aristmk5.cpp: Accurate flags. Added missing ARISTOCRAT_MK5_BIOS defines to some sets, fixing changing System Configuration in adonis to anything but game_prg causes a crash (ID 06374). - American Music Poker . Change CPU type to 8088. Hook up a bunch of devices. Identify a few inputs. Hardware notes. . Use PIC for interrupts and correct SN76489 type - Asterix: Added coin counter and lockout - Bagman: Improved graphics in clone Le Bagnard (bootleg on Crazy Kong hardware). - Big 10 . Various modest input/output improvements . Use applicable gambling input types and keypad for numbers instead of BUTTON . Added ticket dispenser for payout (but is there any hopper feedback? no obvious error message) . Added lamp output(?) . Try to puzzle out some more DIP switches based on what the code does - Birdie Try: Fixed "Allow Continue" and realized that 0x3c7 protection write is actually related with speed of the ball. Demoted to MACHINE_NOT_WORKING. - Caveman Ninja: Fixed sound ROM hookup in clone Caveman Ninja (bootleg, alt) - Combat School . Added SCREEN_RAW_PARAMS . Fixed text tilemap char select enable and opacity in Combat School. This fixes the two rows of garbage blocks at the top of the screen in the 2nd firing range stage (ID 00399). - D. D. Crew: Added inputs to clone D. D. Crew (bootleg), identified OKI write. Missing OKI bankswitch, so sounds are sparse and wrong. - Dirt Fox: Reversed 'Gear Shift Up/Down' - Fighting Roller . Fixed scrolling in Fighting Roller/Roller Aces. This fixes the scrolling bar of initials does not work properly, when you insert your initials (ID 00963). Actually it fixed also "landscape scrolling" when turning right landscape is supposed to go left, not the other way around. . Converted driver foreground to tilemap system and fixed flip flags in it, fixes service mode in clone Roller Aces (set 2). Also fixed a wrap-around regression. - Flower: Some work towards driver - Gold Medalist: Properly mark clones Gold Medalist (set 2) and (bootleg) as unemulated protection flag, they never access the video bank register for whatever reason. - Grand Prix '98: Redumped graphics rom (Game now playable) - Hana Awase: Added IRQ ack. This fixes Dealt cards are not random (ID 00435). - Jackal: Fixed coin counter (ID 02555). Note: All revisions flips the coin counter bit between 1 -> 0 five times, causing the bookkeeping to report 5 coins inserted. Most likely solution in HW is a f/f that disables coin counters when any of the other bits are enabled. - Judge Dredd: Swap non playable Primal Rage 2 for playable Judge Dredd for now (machine\idehd.cpp) (ID 06138) - KiKi KaiKai: Fixed coinage dipswitch settings (ID 02349) - Lethal Enforcers: Fixed linescroll in clone Lethal Enforcers (ver JAD, 12/04/92 17:16) (ID 02446) - Lovely Cards: Assume same frequencies used between lvcards and tehkanwc driver (ID 02473) - Mahjong Gakuensai/Mahjong Gakuensai 2: Fixed OKIM6295 and YM2413 sound volumes (ID 01044) - Moon Alien Part 2: Readded original roms to clone Moon Alien Part 2 (older version) - Mr. Driller 2: On-the-fly decryption support for Mr. Driller 2 - Pairs Love: Fixed screen in service mode goes black (ID 00343). Note: Game sets up two identical palette banks at 0-1ff and 0x200-0x3ff in-game, 0x200-0x3ff only in service mode. Maybe there's a color offset register to somewhere? - Pesadelo (bootleg of Knightmare on MSX): Updated comments - PinMAME . Marked all pinballs as NOT_WORKING . Updated idsa.cpp driver - Power Spikes: Assume clone Power Spikes (Italian bootleg) to have OKIM6295 pin7 low - Puzzle Club: Added NO_DUMP for missing title screen - Shanghai Kid: Fixed buttons 1 and 2 are switched (ID 06368) - Shooting Star: Added protection info. Update Art & Magic driver. - Silent Dragon: Fixed dipswitches 'Friendly Fire', 'Power-Up at Stage Clear' and 'Regain Power buy-in' (ID 00611) - Schmeiser Robo: Game has layer bug with flipscreen. Marked game as MACHINE_NO_COCKTAIL (ID 01890). - Space Chaser: Fixed MCFG_MACHINE_START for clone Space Chaser (CV version - set 1). This fixes crashes on reload (-str 8) in a staggered -str 20 run (ID 06371). - Sunset Riders: Fixed protection chip to use the work RAM buffer for horizontal scrolling in collision detection routine. Fixed players/enemies collision detection on slopes and characters judder when walking diagonally (ID 00952). - Tecmo World Cup '90 . Fixed sprite priority bug with the ball being above the net in Euro League / Tecmo World Cup '90 bootlegs. . Added IRQ acks and second YM2203 sound chip to Euro League, which added piano keys to sound. None of these have flipscreen dip, so why the MACHINE_NO_COCKTAIL? - Time Crisis: Added byteswapped sample rom also to clone Time Crisis (Rev. TS2 Ver.A) - Usagi: Marked game as MACHINE_IMPERFECT_GRAPHICS - missing transparencies. - Virtual Mahjong: Removed optional joystick control inputs from Virtual Mahjong since this game only supports Mahjong panel but was defaulting to Joystick (ID 05652). - Wai Wai Jockey Gate-In!: Fixed visible area - Witch: Sort out which inputs and outputs are which. Use standard gambling input types where appropriate. Identify "Attendant Pay" (keyout?) and payout switches. Removed fake DIP switches. Names of real DIP switches no longer all-caps. Expand range of NVRAM. Added two PPIs for I/O. Partially implement hopper output. Clarification regarding 8255s. - Input port . Added support for binding devices to controller IDs (see devicemap.rst). This allows for stable controller IDs even if USB devices are plugged or unplugged, system is rebooted, etc. . Added id() property to input_device. Added an id() property representing unique device ID. This allows the OSD layer to supply display name along with unique identifier. Currently only used to map a physical controller device to controller ID, but can be used more generally in the future. For raw input devices, device ID is full raw input name. For all other devices, we fall back to device name as the device ID. Device ID uniqueness is not currently enforced programmatically. . Changed use of IPT_START to IPT_START1 in bartop52, guab, midyunit, namcos22, sshot and turrett - Dipswitch fixes in aerofgt.cpp, big10.cpp, idsa.cpp, igs011.cpp, jangou.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, segas24.cpp, sf.cpp, shangkid.cpp, superqix.cpp, taito_b.cpp and taitosj.cpp - Fixed rom names in greatgun, midwunit.cpp, sf.cpp, stv.cpp and superqix.cpp - Description changes of Air Trix (Rev A), Battles (set 1), Chicken Draw (2131-04, U5-1), Condor (Sidam bootleg of Phoenix), Crush Roller (set 4), Crush Roller (set 5), Dragon World II (ver. 100H, Hong Kong), Elevator Action (5 pcb version, 1.1), Face Off (Japan 2 Players), Idol Janshi Su-Chi-Pie II (v1.1), Idol Janshi Su-Chi-Pie II (v1.0), Jumping Cross (set 1), Le Bagnard (bootleg on Crazy Kong hardware), Ms. Pac-Man (bootleg, set 1), NASCAR Racing (Rev A), Net Select: Salaryman Kintaro (ID 06375), Net Select Horse Racing: Victory Furlong, Phoenix (Amstar, set 1), Planet Harriers (Rev A), Road Riot 4WD (set 2, 13 Nov 1991), Road Riot 4WD (set 3, 04 Jun 1991), Rolling Crush (version 1.07.E - 1999/02/11, Trust license), Stratovox (set 1), Super Qix (bootleg of V1.0, 8031 MCU), Super Qix (bootleg, No MCU), Super Qix (World/Japan, V1.1), Super Qix (World/Japan, V1.2), Tank Force (US, 2 Players), Tank Force (US, 4 Players), Task Force Harrier (US) and World Club Champion Football Serie A 2001-2002 Ver.2 (CDP-10001C) - Renamed (acpsx) to (coh1000a), (atluspsx) to (coh1001l), (atpsx) to (coh1000w), (cpzn1) to (coh1000c), (cpzn2) to (coh3002c), (crush3) to (crush4), (crush4) to (crush5), (machridr) to (nvs_machrider), (machridra) to (nvs_machridera), (mightybj) to (nvs_mightybj), (nbajamex) to (nbajamexa), (platoon) to (nvs_platoon), (popnstex) to (popnstage), (psarc95) to (coh1002e), (roadriot) to (roadriota), (roadrioto) to (roadriotb), (taitofx1) to (coh1000t), (taitogn) to (coh3002t), (tps) to (coh1002m), (vf3) to (vf3c) and (vspsx) to (coh1002v) - MAME . VIDEO RENDERING SYSTEM . Fixed GH#1364 (bgfx/chains/crt-geom-deluxe.json and crt-geom.json) . Converted OSD monitor info to modules plus added DXGI implementation. Converted the monitor information code from video.cpp in SDL and Windows to modules. . UI . More new features for UI graphics viewer . Mouse over GFX tiles to reveal pixel values . Mouse over tilemap to reveal tile codes and colors . UI tilemap scrolling controls are now orientation-relative . Make mouse visible everywhere in UI graphics viewer by treating it like a menu. Added all necessary getters to tilemap_t and a few more. Added comment about role of decoder in tilemap creation. . More consistent use of integer types in tilemap_t and other graphics-related classes. Define indirect_pen_t, requiring a slight reordering of emu.h due to an unsurprising dependency. . Fixed File Manager when cfg image directory invalid (ui\imgcntrl.cpp) . Removed datfile_manager (ui\datfile.cpp) and moved UI dats to LUA plugin . Changes the selgame UI sidebar get the dat information from a plugin rather than the hardcoded C++ . Much easier to add other dat files and allow for scripted data . Example included that uses the hi2txt XML parser files to display high score info from hiscore file or NVRAM . Removed enable_dats() option, no longer needed after the switch to LUA plugin. . Fixed remove favorites via "configure machine" menu (ui\miscmenu.cpp) . Sort favorites game list by description (ui\selgame.cpp) . Fixed custom renderer alignment (ui\custui.cpp) . Fixed the failure to select the last used machine if quit with the focus in another part of the main menu. . Exporting game list is now also possible for the favorites list, except if it has software in it (ID 06383). . Consolidated code that inputs characters into buffers. Fixing issue where a multibyte character could cause the maximum size to be exceeded, and obtaining the maximum size with std::numeric_limits (ui\utils.h). . Fixed an off by one error when identifying best entries for typeahead on the file selection and software list dialogs (ui\filesel.cpp and swlist.cpp) . DEVICE IMAGE INTERFACE . Changed the "extension as filetype" behavior for software list images to be opt in behavior . Resist emu\dirom.cpp to out-of-bounds bank numbers. Added a mandatory callback on bank change to dirom. . Added some documentation (device_memory_interface.rst and device_rom_interface.rst) . Allows devices to indicate whether image creation should be supported at the command line (emu\diimage.cpp and image.cpp). This addresses MT06372 bug. The prior issue is that creating serial and/or printer output relied on how image_load() would create images that were not there. This behavior was not universally desirable (the consensus was that it was wrong for disk images, up in the air for cassettes etc). This change makes it possible for devices to control this behavior. Currently I have it associated with image_type(); this might not be the ideal fix. . Now setting m_filetype for images loaded from softlists (emu\diimage.cpp) . PLUGINS: Updated hiscore.dat . SOFTWARE LIST . Increased max length of parent name to 16, for evaluation purposes (emu\softlist_dev.cpp and validity.cpp). Check that driver names contain only [0-9a-z_] (emu\validity.cpp). . Check characters in softlist setnames, fix errors (emu\softlist_dev.cpp). . Added ROM management for newbies (aboutromsets.rst), FAQ entry on common problems with unofficial builds. . Imgtool now supports HP9845B tape image. Retired imgtool_basename(), in favor of core_filename_extract_base(). Changed the read_sector apparatus to use std::vector. - SDLMAME . Partially fix SDL joysticks with same name . Each mouse should track its own double-click status (input\input_sdl.cpp) - Compiling . 3rdparty . Updated BGFX and BX and updated MAME code to support new API. Generated missing shaders. . Updated to LUA 5.3.3 . Updated GLM, Google Benchmark, GoogleTest, PugiXML and RapidJson . Changing an 'assert(false)' to 'throw false', so that this always errors even in non-debug builds (util\opresolv.cpp). option_guide C++-ification, touched up imgtool. . Subscripting std::array<..., 0> is bad; working around this specific case (util\opresolv.h) . Introduced an STL container and changed util\opresolv.cpp to use it. Alphabetizing the #include's and added typedef's for the reverse iterators (util\coretmpl.h). . Initial imgtool C++-ification . Hack for Clang compiling on windows, as it can't tell that calling ::RaiseException will prevent the function from returning (3rdparty\compat\winsdk-override\wrl\internal.h). . Fixed compile for DirectWrite font provider and make it compile with normal windows build (font\font_dwrite.cpp). Disable unknown-attributes & ignored_qualifiers to allow font_dwrite.cpp to build with Clang (scripts\genie.lua). . Changed win_get_window_text_utf8() to return std::string. This eliminated an unnecessary conversion step. . Fixed srcclean when doing multiple files in a single run - Debugger . Fixed trace command access a parameter beyond the list supplied, added an error message if you provide an invalid boolean, allow boolean to be case-insensitive and skip empty strings when parsing booleans. . Initial work towards debug command hookups for Sega Saturn. Usage: saturn inside debugger console. saturn help for a list of currently available commands. . Allow STRIP_SYMBOLS=1 and DEBUG=1 to be applied simultaneously 0.177 - New Working games: Magical Butterfly, Playmatic MPU 1 games, River Patrol (Japan) and Techno Drive - New Non-Working games: The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0019B), The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0018B), Mobile Suit Gundam 0079 Card Builder (CDV-10010), Mobile Suit Gundam 0083 Card Builder (CDV-10030), Multi Game I (unknown V2.4), Quest of D (CDV-10005C), Unknown Fun World A0-1 game, Unknown Fun World A7-11 game 1 and Unknown Inter Games poker - New clones: Air Gallet (older, Europe), Air Gallet (older, Hong Kong), Air Gallet (older, Korea), Air Gallet (older, Taiwan), Air Gallet (older, USA), Akuu Gallet (older, Japan), Casino Five (3315-02, U5-2B), Champion Base Ball (Japan set 3), Dealer's Choice (E4A1), Deluxe 4 U (ver. 0107, 07/01/2000), Escape from Mars (bootleg of Lunar Rescue), Gals Panic S - Extra Edition (Europe, set 2), Golden Tee '98 Tournament (v3.02), Gulf Storm (Korea), Jolly Card (Austrian, set 2), Jolly Joker (Apple Time), Jungler (Subelectro, bootleg on Scramble hardware), Metamorphic Force (ver AAA), Mobile Suit Gundam 0079 Card Builder Ver.2.02 (CDV-10024B), Mobile Suit Gundam 0083 Card Builder Check Disk (CDV-10031), Mobile Suit Gundam 0083 Card Builder Ver.2.10 (CDV-10037B), New Zero Team (V33 SYSTEM TYPE_B hardware), The NewZealand Story (US, old version) (older PCB), OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A), Ring & Ball (unknown title), Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039), Super Street Fighter II X: Grand Master Challenge (Japan 940311), Teenage Mutant Ninja Turtles (US 4 Players, version H), Terminator 2 - Judgment Day (rev LG1 11/04/91), Unknown Fun World A7-11 game 2, Virtua Cop 3 (Rev B) (GDX-0003B), Wangan Midnight Maximum Tune (Japan) (Rev B) (GDX-0008B) and Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0015A) - New PinMAME games: Al's Garage Band Goes On A World Tour (R06a), Amazon Hunt (alternate set), Amazon Hunt II (French), Amazon Hunt III (French), Apollo 13 (2.03), Apollo 13 (5.01, Display 4.01), Arena (alternate set), Basket Ball, Batman Forever (1.02), Batman Forever (2.02), Baywatch (3.00 Dutch), Baywatch (4.00 English), Big Bat (Bat game), Bike Race (2-ball play), Bike Race, Black Knight 2000 (LA-2), Black Knight 2000 (PA-5), Black Knight 2000 (PA-7), Breakshot (1.2), Centaur (alternate set), Centaur (Inder), Chicago Cubs' Triple Play (alternate set), Continental (Bingo, alternate version), Cue Ball Wizard (rev.2), Cue Ball Wizard (rev.3), Cyclone (L-1), Dale Jr. (5.00), Devil Riders (French speech), Diner (L-2), Fire! (L-2), Flash Dragon (alternate set), Galaxy Play 2, Godzilla (Pinball, 0.90), Godzilla (Pinball, 1.00), Grand Lizard (L-3), Guns N Roses (3.00 Dutch), Guns N Roses (3.00 French), Hang-On (Sonic), Hook (4.01 with prototype sound), HyperBall (L-3), Independence Day (v2.01 France), Independence Day (v2.02 France), Io Moon, Iron Balls, Kidnap, King Kong (1.0), Kiss (prototype v.2), Laser War (8.1), Lethal Weapon 3 (2.03), Lost in Space (1.01 Germany), Lost in Space (1.01, Display 1.02), MAC Jungle (New version), MAC's Galaxy, Mars - God of War (French speech), Miss Disco (Bingo), Monte Carlo (Pinball, alternate set), NBA MAC, Petaco (new hardware), Petaco (new hardware, alternate set), The Phantom of the Opera (2.9), Phantom Ship, Pin-Bot (L-1), Pistol Poker (R01), Punchy The Clown (R03), Punky Willy, Raven (alternate set), Red Baron (Pinball), Riverboat Gambler (PA-7), Robocop (3.0), Secret Service (4.2 alternate sound), Sir Lancelot, Soccer Kings (alternate set), Space Jam (2.00), Space Panther, Space Shuttle (L-3), Space Team, Space Train (Pinball), Spring Break (alternate set), Star Trek 25th Anniversary (1.17), Star Wars (1.06), Starship Troopers (2.00), Strikes n' Spares (rev.2), Swords of Fury (L-1), Taxi (Marilyn) (LU-1), Taxi (P-5), Thunder Man, Time Machine (1.8, Germany), Torpedo Alley (1.6), Unknown Game (MAC #1808), V.1, Viper Night Drivin' (1.02), Volcano (Sound Only set 1), Walkyria, The Who's Tommy Pinball Wizard (1.02), Wild Texas and X-Files (2.00) - New drivers: barni.cpp, idsa.cpp, inderp.cpp, joctronic.cpp and macp.cpp - New devices: airraid_vid, cdp1863, dooyong_ram_tilemap, dooyong_rom_tilemap, rshark_rom_tilemap and stfight_vid - New mame.ini options: unevenstretchy and autostretchxy - H8 CPUs: Changed endianness of H8 ADC register (cpu\h8\h8_adc.cpp). This was broken in a rewrite a long time ago, breaking the controls in some Namco System 12 (and probably 23) games. This commit improves controls in golgo13, g13knd and technodr. - 8085A CPU: Fixed i8080 status callbacks during push/pop (i8085\i8085cpu.h) - I8086 CPU: Made common_op virtual for wip tool (cpu\i86\i86.h) - I80186 CPU: Less errorlog spam - I386, MIPS and PPC CPUs: Store address of elemtnt 0 of m_table and return it in vtlb_table, with this in debug mode i386 is 1.7 times faster (emu\divtlb.cpp). - T11 CPU: Fixed IRQs. This fixes Atari's APB police car graphics problem at the point you drive away from your starting square (ID 00550). - TLCS-90 CPU: Fixed a nonsense check - AICA sound: Added ADPCM diff value clamp based on encoder research - C352 sound . Replaced C352 core. The new core has working noise generator and sample interpolation. . Rearrange C352 channels, removed rear channels for systems without second DAC. Rearrangement speakers for Namco NB2. . Removed MACHINE_IMPERFECT_SOUND flags for C352 games - ES5505 sound: Attempt to fix 32bit crash - OKI6295 sound: Fix for save state reloading for many machines using OKI6295 - Sega/Yamaha 315-5560 sound: Make multipcm cache sample data on KeyOn - CHDMAN . Unbreak large files after refactor . Removed create_option_guide() as you can't create CD's (imagedev\chd_cd.cpp) - Discrete Netlist . Minor include cleanup . Fixed a memory hole caused by assign operators . More C++ . Added doc target to netlist makefile. Removed old style cast. . Use noexcept in netlist code where appropriate. Use macro NL_NOEXCEPT if debug builds would throw an exception (e.g. by using nl_assert). This is not entirely safe. Going forward, nl_assert should call log first and than throw. Fixed noexcept and NL_NOEXCEPT to pass g++ 6.x builds. . Added target MinGW to standalone netlist makefile . Added a preliminary parser for RINF netlist format - ISA: Check get_card_device before using. This fixes crash/exception at initialization in various machines using ISA (ID 06328). - Serial device interface: Make buffered serial a mixin to promote reuse (rs232\keyboard.cpp, rs232.h, terminal.cpp, emu\diserial.h) - TMS9902 controller: Improved logging; fixed missed CTS signal, outgoing RTS and incoming DTR. - airraid.cpp, darkmist.cpp and stfight.cpp . Various Seibu Refactoring: Air Raid, Street Fight and Dark Mist all basically use very similar video systems (4 layers, 2 of them being ROM based tilemaps, a CLUT prom for each layer which controls colours and transparency handling) this takes some steps towards allowing a common implementation of it. . Street Fight and Cross Shooter (Street Fight type hw) use a common motherboard but different Video Boards. This makes the video boards into devices to faciliate this. . Added missing_dependencies check to video\airraid_dev.cpp (fixes segfault in tilemap viewer) . Added assert to device_gfx_interface::palette() to help catch dependency mistakes like the above (emu\digfx.h) . Added MACHINE_IMPERFECT_SOUND to clone Cross Shooter (2 PCB Stack) (music desyncs a lot) - alg.cpp and cops.cpp: Separation the LDP-1450 laserdisc player to its own device - amaticmg.cpp: Correct technical notes - centiped.cpp: Correct tag for the ay8910 and removed unneeded callback. - chihiro.cpp . Ghost Squad, The House of the Dead III, Sega Club Golf 2006 Next Tours, Virtua Cop 3 and Wangan Midnight Maximum Tune boots and Sega Network Taisen Mahjong MJ 2 (Rev C) throws an exception. . More USB. Comments-docs update. - dooyong.cpp . Emulated mixing of two 4bpp tilemaps to make 8bpp background in Pop Bingo. Also initialise/save palette bank properly for 8-bit Dooyong games. . Make tilemap generator into a device, move a whole lot of stuff from video start to machine config. . Converted rshark/superx ROM-based tilemaps to device as well and removed all the trampolines. . Clean up, encapsulate stuff, use derived machine configs and better represent the 16-bit text layer block on 8-bit machines. - eprom.cpp: Fixed save state regression - esd16.cpp: Minor documentation update - galpani3.cpp, jchan.cpp and kaneko16.cpp . Stop trashing memory in machine\kaneko_calc3.cpp. This fixes MAME crashed when exiting B.Rap Boys (ID 06349). . Fixed read case in kaneko_calc3.cpp and make kaneko_toybox.cpp safe as well - konamigx.cpp: Comment a printf for performance reasons (type4_prot_w state). This fixes MAME produces several messages about unknown protection command during run in rungun2 and slamdnk2 (ID 05584). - kurukuru.cpp: Input/output improvements: Ticket dispenser now works for real, dispensing on command rather than like crazy. Correct "Payout Mode" DIP settings. Correct DSW1 settings in Pyon Pyon Jump. Rename coin inputs and coin-related DIP switches and reorder them by increasing denomination. Remove bogus "Unknown" inputs that aren't actually used. Full character names only for Kuru Kuru Pyon Pyon (except in bookkeeping mode). Reset button now mapped as "Memory Reset" (though it also resets the program). Random notes based on program code. - midvunit.cpp . Added basic wheel force feedback reference and made notes on other outputs . Finished implementing motion controller. Motion test will succeed and everything sent to motion controller goes to stdout. . Added layout for Midway V-Unit games (Cruis'n USA, Cruis'n World and Off Road Challenge) . Dumping Galil commands to osd_printf_error for now. Not confident enough in the rest of the code to include tests for them so improved the comments about them instead. - midzeus.cpp: Fixed save state crashing in The Grid and Cruis'n Exotica - namconb1.cpp, namcos11.cpp, namcos12.cpp and namcos23.cpp . Updated H8/3002 and C352 frequencies for namcos12 and namcos23. This is based on sound driver research, and comparing the H8/3002 ND-1/ND-2 programs with the System 12 and 23 programs. The figures are similar to the previously measured clock speeds so chances are the earlier values were just measurement error. Removed MACHINE_IMPERFECT_SOUND flags for namcos23.cpp. . Fixed incorrect C352 clock frequency in namcos11 . Fixed sound timing in namconb1 for some games. Did some digging into the sound timing issue in certain NB-1 games. It seems like the C75 MCU does not like non-60 Hz interrupt intervals, wanting the interrupts to sync with a 120Hz internal timer. By moving the interrupt callbacks to separate 60 Hz timers (instead of the 59.7 scanline timer), this fixes the sound tempo in nebulray, gslugrsj, gslgr94u, clones and vshoot (ID 03488). . Changed endianness of H8 ADC register (cpu\h8\h8_adc.cpp). This was broken in a rewrite a long time ago, breaking the controls in some Namco System 12 (and probably 23) games. This commit improves controls in golgo13, g13knd and technodr (ID 06042). . Make Techno Drive workin . The game previously displayed a 'COIN ERROR' at bootup. Fixed this by patching the sub CPU H8 program (not the best fix maybe but I hope it will work for now). . The contents of 'th1fl3l.12' and 'th1fl3u.13' appeared to have been swapped. Swapped the filenames and placed them at the proper memory location (0x1800000) and the game no longer crashes at the Namco logo. Played through the game a few times and it seems to be fully working now. . H8 SCI improvements. This should hopefully prevent the sub CPU from locking up (and making controls unresponsive) in Techno Drive . To play the game, press F2 to enter the test menu, navigate to GAME OPTIONS and disable the printer by setting "PRINTER" to OFF. Printer not emulated. - naomi.cpp . Added all known Sega DIMM board firmware dumps . Dumped Ferrari F355 Japan BIOS - neodriv.hxx . Added mahjong panel to Mahjong Kyo Retsuden . Fixed oversized sprites region in Digger Man - segasp.cpp: Migrate driver to ROM_PARAMETER for board ID - skylncr.cpp . Improvements to almost all games in Sky Lancer driver . Use standard input mappings in all games except Sonik Fighter . Added working hopper outputs and payout buttons . Promoted Magical Butterfly to WORKING after solving the protection (the code wasn't encrypted) and added the button lamps internally associated with it . Decrypted Butterfly Dream 97, which is almost working now with obvious graphical glitches and some apparent input problems. . Created address_space_debug_wrapper to deal with pedantic but common issue - tiamc1.cpp: Tilemap bit layers disable control (used in test mode only) - toaplan2.cpp . Added NVRAM to Power Kick and Othello Derby; document the reset mechanism for the latter. . Added ticket dispenser to Power Kick (seems to work for the most part). . Removed numerous bogus DIP switches. . Thoroughly reconfigure coin inputs in Power Kick and adding counters and lockouts for all three (including the "Key In" input that really isn't). . More meaningful settings for the "Payout" DIP switch in Power Kick (based on program code). - triforce.cpp: Comments-docs update - uapce.cpp: Fixed invalid dipswitch 'Buy-In Feature' - williams.cpp: Added video proms to Turkey Shoot and Mystic Marathon - yunsung8.cpp: Simplified rom loading - AGEMAME . bfm_sc1.cpp, bfm_sc2.cpp and bfm_sc4.cpp: Added new Scorpion 1/2/4 internal layouts. Comment debug helper from being used from bfm_sc4 sets which can really fill up a log when all 3k plus machines are run in a test. Put the DM01 matrix board CPU inside the device for BFM SC2/4. Make the DMD be treated as a screen, avoids tag lookups, adds correct dmd rom to some bfm_sc2 sets etc (video\bfm_dm01.cpp). Improved DMD on/off dot colours (video\bfm_dm01.cpp). . jpmimpctsw.cpp, jpmmps.cpp, jpmsys5sw.cpp and mpu3.cpp: Added new internal layouts . maygay1b.hxx: Partially fix lamp mapping in Maygay M1A/B hardware. Added Maygay M1A MCU bones, commuication not hooked up yet. Fixed Maygay M1A lamping code to work with layouts. Maygay1b: Fixed second set of lamps and partially investigated MCU hookup. Found the rather obvious bug that was actually preventing the 2nd lot of lamps from working. Adding layouts to Maygay M1 driver. Fixed maygay M1A lamping code to work with layouts. Fixed Maygay input strobe order bug. Updated layouts with new MFME2MAME Debug View. Layouts have new fix (same as MPU4) for 'coin slot buttons'. Some reel lamp improvement for 5th reel. Added four new layouts. . mpu4.hxx: Added all known expansions as fragments for DRIVER_INIT. This will permit 'per set' configuration to make the games playable. . mpu4sw.hxx: Fixed many MPU4 set descriptions. Identify and mark hacks. Associate sets with correct games . Added support for MPU4 layouts for games beginning with 'a', based on MFME2MAME conversion. CHR protection data is still not hooked up for many of these sets, so lamping behaviour is incorrect. - Ajax: Slightly adjust visible area (ID 06356) - APB - All Points Bulletin: Fixed IRQs in T11 CPU. This fixes police car graphics problem at the point you drive away from your starting square (ID 00550). - Arkanoid: Clean up comments and fix obsolete set names in comments which have long since changed. Clean up and update notes about which MCUs are used. - Bagman: Got clone Bagman (bootleg on Crazy Kong hardware) to boot, gfx are completely wrong though. - Diamond Derby: Attempt to fix crash on 32bit - Dig Dug: Fixed missing graphics from tilemap 0 (ID 06332). Note: GCC 6.1.0 issue with uninitialized variables. - Dottori Kun . Much better video timing, but still shows glitches in ccovell's ROM . eat_cycles clamps to 0, adjust_icount does do what i intended. - Donkey Kong: Added notes about the Speed-up Kit #2 - Dribbling: Fixed proms (all 4 bits) - Green Beret: Added missing PAL dump to clone Green Beret (bootleg) - Hana Yayoi: Resolve conflicting input bindings - Intergirl: Dumped color PROMs - Laser Ghost: Fixed noticeble offset on the left in the crosshair (ID 01455). Allow gun offset correction to be disabled. - Mahjong games: Designate more memory reset inputs in mahjong games; regularized service inputs in dynax.cpp (dynax.cpp, fromance.cpp, lucky74.cpp, macs.cpp, mayumi.cpp, nbmj9195.cpp, niyanpai.cpp, ojankohs.cpp, pastelg.cpp and royalmah.cpp) - MegaDrive/Genesis (hshavoc.c, megadrvb.c, puckpkmn.c, segac2.c, megaplay.c and megatech.c): Fixed selecting machine / game via softlist though internal menu results exception crash (ID 06326) - Muscle Bomber Duo: Fixed game crashed in demonstration mode (ID 06352) - Need For Speed: Added NFS Underground System Recovery CD dump - Pairs: Restore unique sound rom due cut-n-paste overwrite and not paying attention. - Panel & Variety Akamaru Q Jousyou Dont-R: Fixed OKI6295 banking - Pink Sweets: Found and correct bad bits in Pink Sweets U2 graphics roms based on comparison 4 dumped versions. Notes: pinkswtsb (2006/04/06 MASTER VER.) and pinkswtsx (2006/xx/xx MASTER VER.) uses same U2 graphics content with 1 bad bit difference in pnkswtsb_u2. normally after manual changes in roms BAD_DUMP flag must be raised, but here we have 4 dumps with almost identical contents (only two 128kb files different/changed from oldest to latest version), so 99.9% with these changes we have full good Pink Sweets U2 nand dumps now. Sad stats: 4 dumps, 2 of them was a bit bad, i.e. 50% cases - so bad quality components was used by Cave in theirs 'expensive' SH3 PCBs. - PinMAME . Updated/WIP Play_1, Play_2, Play_3 and Play_5 drivers. All Play_1 games working. . Started syncing with latest PINMAME. Will add new games directly in the wn (alvg.cpp, bingo.cpp, by35.cpp, capcom.cpp, de_2.cpp, de_3.cpp, de_3b.cpp, gts3a.cpp, gts80.cpp, gts80a.cpp, gts80b.cpp, jp.cpp, kissproto.cpp, peyper.cpp, play_2.cpp, play_5.cpp, s7.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp, s11c.cpp sleic.cpp, spectra.cpp, techno.cpp, white_mod.cpp, whitestar.cpp and zac_2.cpp). . Added some skeleton drivers - Plotting: Fixed dipswitches in clone Plotting (US) (ID 06343) - River Patrol: Decrypted main roms in River Patrol (Japan) (Game now playable) - Sengoku Mahjong: Input mappings refined based on examination of program code. All service inputs are active switches, not DIP toggles. Added unused SW2 DIPs as displayed in service mode. Added a couple of obscure inputs not shown in service mode. - Time Crisis: Byteswapped sample ROM ts1wavea.2l - Virtua Racing: Added IO board dumps - Input port . Keyboard/terminal improvements . Mark lots of things constexpr in attotime and turn macros into functions . Added base classes for HLE matrix keyboard and buffered RS232 device . Make generic keyboard/terminal more usable . Keyboard has configurable typematic delay/rate . Keyboard has selectable JIS/ANSI layout . Keyboard handles simultaneous keypresses more intuitively . Keyboard uses meta to set high bit . Terminal has configurable auto LF on CR, auto CR on LF and local echo. Terminal has audible bell (see Funky Ball). . Added linefeed key to generic keyboard (maps to ins by default). . Added workaround for MSVC warning (machine\keyboard.ipp) . Default auto CR on LF for generic terminal (machine\terminal.cpp) . Added F16..F20 keys (present on (MESS) DEC LK201 keyboard and its clones) . Devfind revision . Eliminate read_safe as a global function and make it a method of optional_ioport (and required_ioport, for which it makes less sense). . New constructor for optional_ioport_array and required_ioport_array using std::initializer_list to specify tag list . Removed pointer/reference conversion operators for required_ioport and optional_ioport. Explicit getters like found() and target() are now required when dereferencing isn't wanted. Many drivers have been changed to use required_ioport_array and optional_ioport_array to make this cleaner. . Updated numerous drivers that were using read_safe to use I/O port finders generally. Port names have been kept the same as far as possible to avoid breaking saves (some of the optional finders should probably be required). . Give edfbl and monkelf their own memory maps so hacky input reading routines can be removed. . Clean up some legacy static handlers in amiga.cpp and cubo.cpp. . Fixed Gun#2/Aimtrak Dual Lightguns no longer properly detect (input\input_rawinput.cpp) (ID 06185) . OSD input code cleanup (osd\modules\input\input_...) . Removed legacy forms of (required|optional)_(shared_ptr|ioport)_array, use new syntax for I/O port array. - Dipswitch fixes in cclimber.cpp, kurukuru.cpp, neodriv.hxx, play_1.cpp and taito_l.cpp - Fixed rom names in bfm_sc2.cpp, merit.cpp, midyunit.cpp, tnzs.cpp, triforce.cpp and williams.cpp - Description changes of Al's Garage Band Goes On A World Tour (R02b), Baywatch (4.00 Dutch), Breakshot (1.3), Chicago Cubs' Triple Play, Cross Shooter (2 PCB Stack), Gals Panic S - Extra Edition (Europe, set 1), Godzilla (Pinball, 2.05), Independence Day (v2.02), Jolly Card (Austrian, set 1), The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg), Lost in Space (1.01), Magical Butterfly (version U350C, protected), 'lots of MPU4 games', Mystery Castle (R02), Mystery Castle (R03), New Zero Team (V33 SYSTEM TYPE_B hardware, China?), Pistol Poker (R02), Punchy The Clown (R02), Space Jam (3.00 France), Space Jam (3.00 Germany), Space Jam (3.00 Italy), Space Jam (3.00), Starship Troopers (2.01), Super Hang-On (Hang-On conversion, bootleg), Super Hang-On (Hang-On conversion, ride-on, Japan, FD1094 317-0038), Teenage Mutant Hero Turtles (UK 2 Players, version ?), Teenage Mutant Hero Turtles (UK 2 Players, version U), Teenage Mutant Hero Turtles (UK 4 Players, version ?), Teenage Mutant Hero Turtles (UK 4 Players, version F), Teenage Mutant Hero Turtles (UK 4 Players, version S), Teenage Mutant Ninja Turtles (Japan 2 Players, version 1), Teenage Mutant Ninja Turtles (Japan 4 Players, version 2), Teenage Mutant Ninja Turtles (Oceania 2 Players, version ?), Teenage Mutant Ninja Turtles (US 4 Players, version J)', Teenage Mutant Ninja Turtles (US 4 Players, version R), Teenage Mutant Ninja Turtles (World 4 Players, version X), Turkey Shoot (prototype), Viper Night Drivin' (2.01), Volcano (Sound Only set 2) and Volcano (Sound Only set 3) - Renamed (casino5) to (casino5a), (cshooter) to (cshootert), (cshootere) to (cshooter), (m4addrcc) to (m4addrcc__c), (m4addrcc__c) to (m4addrcc), (m4andybt) to (m4andybt__b), (m4andybt__b) to (m4andybt), (m4buc) to (m4buc__n), (m4buc__n) to (m4buc), (m4cashat) to (m4cashat__ar), (m4cashat__ar) to (m4cashat), (m4coscas) to (m4coscas__d), (m4coscas__d) to (m4coscas), (m4crdome) to (m4crdome__j), (m4crdome__j) to (m4crdome), (m4gbust) to (m4gbust__f), (m4gbust__f) to (m4gbust), (m4gclue) to (m4gclue__j), (m4gclue__j) to (m4gclue), (m4goodtm) to (m4goodtm__ae), (m4goodtm__ae) to (m4goodtm), (m4hijinx) to (m4hijinx__ab), (m4hijinx__ab) to (m4hijinx), (m4hypclb) to (m4hypclb__c), (m4hypclb__c) to (m4hypclb), (m4hypvip) to (m4hypvip__b), (m4hypvip__b) to (m4hypvip__e), (m4hypvip__e) to (m4hypvip), (m4jpgem) to (m4jpgem__g), (m4jpgem__g) to (m4jpgem), (m4jpgemc) to (m4jpgemc__j), (m4jpgemc__j) to (m4jpgemc), (m4jwlcwn) to (m4jwlcwn__k), (m4jwlcwn__k) to (m4jwlcwn), (m4lucksc) to (m4lucksc__b), (m4lucksc__b) to (m4lucksc), (m4luxor) to (m4luxor__j), (m4luxor__j) to (m4luxor), (m4madhse) to (m4madhse__s), (m4madhse__s) to (m4madhse), (m4mag7s) to (m4mag7s__ag), (m4mag7s__ag) to (m4mag7s), (m4nhtt) to (m4nhtt__i), (m4nhtt__i) to (m4nhtt), (m4nnww) to (m4nnww__aq), (m4nnww__aq) to (m4nnww), (m4nnwwc) to (m4nnwwc__7), (m4nnwwc__7) to (m4nnwwc), (m4przhr) to (m4przhr__p), (m4przhr__p) to (m4przhr), (m4przmns) to (m4przmns__n), (m4przmns__n) to (m4przmns), (m4przmon) to (m4przmon__i), (m4przmon__i) to (m4przmon), (m4przrf) to (m4przrf__i), (m4przrf__i) to (m4przrf), (m4przrfm) to (m4przrfm__d), (m4przrfm__d) to (m4przrfm), (m4przwo) to (m4przwo__e), (m4przwo__e) to (m4przwo), (m4przwta) to (m4przwta__p), (m4przwta__p) to (m4przwta), (m4ready) to (m4ready__as), (m4ready__as) to (m4ready), (m4rfym) to (m4rfym__ar), (m4rfym__ar) to (m4rfym), (m4rhog2) to (m4rhog2__l), (m4rhog2__l) to (m4rhog2), (m4rhogc) to (m4rhogc__a), (m4rhogc__a) to (m4rhogc), (m4rhr) to (m4rhr__i), (m4rhr__h) to (m4rhr), (m4rhr__i) to (m4rhr__h), (m4rhrc) to (m4rhrc__j), (m4rhrc__j) to (m4rhrc), (m4rhrcl) to (m4rhrcl__c), (m4rhrcl__c) to (m4rhrcl), (m4rockmn) to (m4rockmn__j), (m4rockmn__j) to (m4rockmn), (m4takepk) to (m4takepk__j), (m4takepk__j) to (m4takepk), (m4thestr) to (m4thestr__e), (m4thestr__e) to (m4thestr), (m4tic) to (m4tic__h), (m4tic__h) to (m4tic), (m4toot) to (m4toot__j), (m4toot__j) to (m4toot), (m4tutcl) to (m4tutcl__j), (m4tutcl__j) to (m4tutcl), (m4uuaw) to (m4uuaw__n), (m4uuaw__n) to (m4uuaw), (m4vegast) to (m4vegast__h), (m4vegast__h) to (m4vegast), (m4vegast__w) to (m4vivaes__aq), (m4vivaes) to (m4vivaes__j), (m4vivaes__ab) to (m4vivalv__9), (m4vivaes__i) to (m4vivaes), (m4vivaes__j) to (m4vivaes__i), (m4viz) to (m4viz__j), (m4viz__j) to (m4viz), (m4wta) to (m4wta__d), (m4wta__d) to (m4wta), (metamrpha) to (metamrphe), (nzeroteam) to (nzeroteama), (ssf2xj) to (ssf2xjr1), (ssf2xjd) to (ssf2xjr1d), (ssf2xjr) to (ssf2xjr1r) and (vcop3) to (vcop3a) - MAME . VIDEO RENDERING SYSTEM . Fixed benchmarking by adding additive-blend YUY16 support to emu\rendersw.hxx . intscalex, intscaley and unevenstretchx now consider the system orientation and screen rotation . Fixed scanline issue also applied for swapped orientation . Updated BGFX shader binaries which have changed after the last BGFX update . Implement new option -unevenstretchy (complementary to -unevenstretchx) . Implemented new option -autostretchxy, to automatically apply -unevenstretchx or -unevenstretchy based on source native orientation. . Consistently apply -intscalex to the long dimension of the target monitor and -intscaley to the short dimension . UI . Fixed stuk softlist art (ui\selmenu.cpp) . Attempt to prevent GCC optimising away global_alloc_clear (scripts\genie.lua). This fixes UI 'Input (general)' selection menus do not display correctly (ID 06335 and ID 06342). . Moved input_character() template method to ui\utils.h and changed menu_software_list::m_filename_buffer to be std::string. . Created class ui::machine_info for holding calculated machine info and generating descriptive strings for the UI. This absorbs a number of unimportant core functions that existed only for the UI's convenience. . Fixed a regression in the bios menu that caused all devices to be displayed (ui\miscmenu.cpp) . Fixed detection of auto option in ui\submenu.cpp . Moved creation roms list where necessary, this gets back to the menu at acceptable reaction times (ui\selgame.cpp). . Show color values in palette viewer: On the UI graphics viewer's palette screen, moving the mouse over a color rectangle will show the index of the entry and its RGB values in hexadecimal. For indirect pens, the index of the corresponding color will also be shown. For colors in normal RAM-based palettes, the raw (i.e. undecoded) value stored in memory will also be shown. This does not currently work with most buffered palettes (though the Seibu SPI driver has been updated for this purpose), and is totally incompatible with PROM-based or RAMDAC-based palettes. The changes made to the core while implementing this feature may look more substantial than they really are. A whole batch of read methods have been made const, and palette_device now has a generic read_entry function that is used both internally and externally. . DEVICE IMAGE INTERFACE . Removed device_image_interface::has_been_created(). This method was necessary long ago when devices didn't have distinct load and create paths, which has since been addressed. . Created device_image_interface::add_format() protected member and made device_image_interface::m_formatlist be private. . Reverse logic of IMAGE_VERIFY (emu\diimage.h) . Made a bunch of device_image_interface members private (instead of protected) . Changed device_image_interface::load() so that it is no longer responsible for both loading images and softlist items . Turn image init/validate into scoped enums to avoid accidental casts to/from integer and boolean types. The image error should also be turned into a scoped enum - the menus were assuming it was the same thing as an init result. . Changed device_image_interface::load() to take 'const std::string &'. Converted more stuff in diimage to use std::string instead of 'const char *'. . Fixed issues where softlist items (that were not for floppies) were loaded from the software list menu. Fixed more softlist regressions. . Eliminated device_image_interface::make_readonly(): 1. All image loads through softlists are done through common_process_file(), and thus going to be readonly anyways. 2. The cassette.cpp call to make_readonly() seems to be a residual hack, if a failure occurs the image will be unloaded anyways. . device_image_interface::software_name_split() ==> softlist.cpp:software_name_parse(). Also consolidated with code that performed a quick pass to identify whether a piece of text is a software name. . Added device_rom_interface for sound chips with rom/memory map alternative (emu\dirom.cpp). Make dirom robust to too big roms. Added/fixed banking support. Better OKIM6295 fix post-release. . Changing device_image_interface::determine_open_plan() to not support creating an image unless device_image_interface::create() is used . DEVICE FINDING . Fixed missing region report when DEVICE_SELF is used (emu\devfind.cpp) . Make &some_required_shared_ptr[offs] work as expected in const context (emu\devfind.h) . Make (required|optional)_ioport_array perform as well as a real array + shared_ptr arrays cleanup (emu\devfind.h). Devices can be found array-style, too. . Changed warning flags for Clang build: -Wno-missing-braces is unfortunately now necessary to avoid errors on almost every single use of the std::array initializer in devfind.h (apparently C++14 does make double braces optional for std::array initializers, but Clang and GCC's -Wmissing-braces never took that into proper account, which is why GCC may still have it disabled by default). Several other Clang-specific warnings have been undisabled; some might perhaps need to be locally reenabled if legacy 3rdparty code or sundry OSD includes happen to disagree with them. The only warning to require any code changes was -Wabsolute-value, which seems to have caught a minor render bug (and nothing more). . Doxyfy a significant chunk of devfind.h. Eliminate a lot of boilerplate code from devfind.h. Keep instantiation of templates in one place to improve build time. Removed some dangerous accessors. . Prepare to make object finders behave like a pointer, not a half-pointer. Make object_array_finder a bit more flexible, centralise instantiation of more templates, more preparation for crud removal (emu\devfind.cpp). . Make object finders behave like pointers for the purposes of implicit casts, dereferencing and array access, not something that's part pointer, part reference, part vector. Require dummy tag to be specified explicitly, magical defaults are unhelpful here as the more common case it to search for a real object. Make the search methods private in concrete classes where possible as users should rely on the resolution process for these things (emu\devfind.cpp). . ROMLOAD . Added some default constructors to rom_entry(), and made it so changes to flags are done through a set_flags() accessor method. . Changes rom_entry from a struct to a class, storing its strings as stdd::string and separated the declaration into a new header. . Fixed breakage caused by a change in how the byte for ROM_FILL is represented with recent changes (emu\romload.cpp) . Introduced a tiny_rom_entry structure, for the purposes of ROM declaration . C++-fiied code that iterates over rom_entry arrays (without usage of rom_[first|next]_*) . Changed how ROM_COPY and ROM_FILL are represented in tiny_rom_entry to be more how they were in the past. Turbo Sub had a ROM_COPY declaration with an expression ('ROM_COPY( "main_code", 0x18000 + 0x2000,...) and this simply did not work with the new model. This required changing ROM_* declarations to more resemble how they used to be and to perform the conversion on load. Adding parentheses around some (but not all) ROM_* macro parameters (emu\romload.h). . SOFTWARE LIST . Fixed issue that prevented softlist items specified on devices from loading . Splitted emu\softlist.cpp/h: The newly refactored rom_entry data structure is used. Keep the refactored softlist code in src\emu, in order to defer the mechanical process of moving it. Keep includes of softlist[_dev].h out of diimage.h, so that changes to either do not trigger an emu.h recompilation. . Changing 'bool iswild' to 'const bool iswild' (emu\softlist_dev.cpp) . Fixed an issue that caused softlist device descriptions to be blank. This also fixes a likely undiscovered issue where the filename in softlist XML parse error messages was also blank. . Changed software_info::find_part() to use std::find_if() . PLUGINS . Updated hiscore.dat . Make path expansion work on win32 (hiscore\init.lua) . Made hiscore path configurable by ini file, fix .hi file path resolution. . MULTI-LANGUAGE . Catalan translation updates . Updated Spanish strings . Validity checking improvements: Always print the name of each driver checked with -validate -verbose, and print before beginning the check to help detect crashes. Fixed already_checked test so that softlists get validated the first time, not every time but the first. Removed #include "validity.h" where not required. attotime::from_double cannot be constexpr because it uses floor. . Fixed UTF-16 encode, pass UTF-16 to Windows character drawing (unfortunately still no nice speaker icon). . New core input type: "Memory Reset": In machines that store their settings and/or bookkeeping logs in some form of non-volatile memory, "Memory Reset" will reset them to some system-provided default. This replaces all existing inputs named "Memory Reset" and a few simply named "Reset" which are known to do this rather than reboot the system (a confusion to be avoided, though many systems will only acknowledge this input at boot time); others should be checked. The default key binding (F1) for this new input type is chosen partly to avoid conflicts with those used by gambling/mahjong games which are currently the only systems to use this, though broader use is envisioned. Added "Memory Reset" input type to Nichibutsu mahjong games (nbmj8688.cpp, nbmj8891.cpp and nbmj8991.cpp) as designated in source. . Make address maps complain when entry bounds lie outside the global mask. Alter a bunch of address maps so all validity checks pass. These includes global address masks in Hexaa and the (MESS) Newbrain FDC (regression testing should be done here). . Use emumem.h defines whenever possible (mem_mask & xxxxxxxx -> ACCESSING_BITS_xx_xx) . Fixed audio distortion with -refreshspeed and -sound xaudio2 (ID 06199). Try to fix audio delay regression caused when fixing -refreshspeed for -sound xaudio2. Minor XAudio2 tweak to not always submit buffers if not needed. . Preliminary VGM player. Use: ./mame vgmplay -bitb file.vgm/vgz. Lots of chips missing, no visualization, no control of anything, no volume control either and no sound shutdown on end of file. Added AY-3-8910, C352, DMG APU, HuC6280, K053260, MultiPCM, NES APU, OKI6295, OKI6295, POKEY, SN76496, YM2203, YM3812, YM2413, YM2612 and YM3526. . Floppy . Fixed an issue with legacy floppy loading caused by filetype() now being a std::string (imagedev\flopdrv.cpp and formats\flopimg.cpp) . Improved floppy sound emulation. Added new floppy sound samples. . Cheat engine . Made path_iterator copy search path to fix use-after-free (emu\fileio.cpp and mame\cheat.cpp). Cleanup mame\cheat.cpp. . Fixed -debug -cheat crash (mame\cheat.cpp) (ID 06269) . Now reporting Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND (file\winfile.cpp) . Make output_manager::find_item much more efficient (emu\output.cpp) . Fixed regression in save states (emu\emumem.cpp) - SDLMAME: Attempt to fix mouse state on startup in SDL builds by initialising members (sdl\window.cpp) - MAC OS X . Remap "P1 Mahjong Score" to / key for OS X (input/input_sdlcommon.cpp; 78-key Apple MacBook & Bluetooth keyboards have no right control key). . Warp mode for relative mouse on OSX SDL 2.0.4 - MESS . Fixed a bug from where video data was sampled that could cause too many samples to be loaded in low MC6847 resolution video modes . Fixed readonly cassette formats (imagede\cassette.cpp, tools\castool.cpp) . Performs argument checking on the return value of CassetteLegacyWaveFiller.chunk_sample_calc() (formats\cassimg.cpp). This is just better error checking. You can see this if you create a garbage file named 'foo.csw' and invoke the following command: mame bbcb -cass1 foo.csw. With this change you get an invalid image error. Without it, you get this: Caught unhandled St12length_error exception: vector::_M_default_append - Compiling . 3rdparty . Updated BGFX, BX and rapidjson . Synced BGFX so it can compile with Clang 4.0 . Make some constexpr functions comply with older C++11 rules to keep Visual Studio happy . Miscellaneous cleanups to diimage.cpp/h; mostly std::string stuff. . Converted a number of zippath calls that took 'const char *' to std::string (imagedev\floppy.cpp, emu\diimage.cpp, ui\filesel.cpp, ui\floppycntrl.cpp, ui\imgcntrl.cpp and util\zippath.cpp/h). Changed int *beginpos/*endpos to std::string::size_type *beginpos/*endpos and other cleanups for util\zippath.cpp. . Changed various string arguments for emu_file::open() from 'const char *' to std::string (emu\diimage.cpp, fileio.cpp/h, romload.cpp and mame\luaengine.h) . Attempt to prevent GCC optimising away global_alloc_clear (scripts\genie.lua) . Miscellaneous cleanups (emu\diimage.cpp/h and ui\imgcntrl.cpp): Removed some c_str() calls when using util::zippath_parent(). Removed the error code return value from set_image_filename(). Consolidated error code translation (osd_file::error ==> image_error_t) in image_error_from_file_error(). Other cosmetic improvements. . Use std::min and std:max instead of MIN and MAX, also some more macros converted to inline functions. . Macros should be turned into constexpr or they can't be used in many situations they were previously use in the silly _partialNN functions are necessary because MSVC doesn't support C++14 properly. . Changed #include to #include where appropriate . Made constexprs lower case and used constexpr for returning input value as well for rest of defines in osdcomm.h . For bool type use true and false instead of TRUE/FALSE . Changed device_image_interface::filetype() to return 'const std::string &' instead of 'const char *' . Introduced is_filetype(), instead of normalizing filetype() to lower case. . Re-write tools\srcclean.cpp to be cool with UTF-8 and C++14. srcclean can now clean layouts. Added LUA-cleaning ability to srcclean. srcclean on LUA plugins, too. . Removed util\cstrpool.cpp/h; it is no longer used. . Compile netlist and LUA only if used. Made proper formats compiled only if needed. . Don't rely on macro expansion to supply parentheses around condition for if statement . Replaced BITSWAP8/16/24/32 macros with constexpr function that works for any number of bits. Check number of bits in BITSWAPnn and expand up to 64 (emu\emucore.h). BIT doesn't need to be a macro. . Tidy up some scope (cpu\g65816\g65816ds.cpp, lh5801\5801dasm.cpp, m37710\m7700ds.cpp and upd7810\upd7810_dasm.cpp) . LUA engine: Removed now unnecessary stuff since a copy of searchpath is made and it won't be garbage collected from underneath us. . Added documentation to main tree . Fixes to build with visual studio: 3rdparty\zlib doesn't seem to be picked up when building drivers, building with msys may work because it comes bundled with it's own zlib.h. GCC pre-compiled headers is broken as it masked the missing emu.h. . Note that compilers are now limited to GCC 5.0.0 and up . Some C++14 features are not supported by VS2013. VS2015 is free for home use so no need for legacy support. . Fixed TARGET=virtual (scripts\target\mame\virtual.lua) . Make iterators actually meet requirements of ForwardIterator (and by consequence, ForwardIterator, Iterator and EqualityComparable). Don't use function statics if they can be avoided - it isn't thread-safe. Removed leftover crud from when dynamic_buffer and friends were templates in lib/util. It's still dangerous that the const behaviour of iterators doesn't match STL. Also, simple_list members with similar functionality to STL container members should be renamed (emu\device.h, emumem.cpp, render.h, rendlay.cpp and util\coretmpl.h). - Debugger . Adding an assert() to util\hash.cpp . ImGui based debugger: Added images menu, with crude file select dialog and very crude create image dialog . The 'trace' and 'traceover' commands were registered as having three arguments. This fixes it so there are four arguments (debug\debugcmd.cpp). . Fixed -debug -cheat crash (mame\cheat.cpp) (ID 06269) 0.176 - New games: Gorodki, Intergirl, Kot-Rybolov, Player's Choice (M4C1) and Swing Gal [BET] (Japan 871221) - New Working games: Flaming 7 (Custom Hardware, Main, 50 Bonus), Flaming 7 (Custom Hardware, Main, 500 Bonus), Flaming 7 (Custom Hardware, Main, 2000 Bonus), Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus) and Flaming 7 (Taiwanese Hardware, unknown version) - New clones: Beaste Feastie, Bubble Trouble (World, Rev B), Fighting Fantasy (World revision 3), Operation Thunderbolt (World, rev 1) and Raiden Fighters 2 - Operation Hell Dive (Japan set 3) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Adventure Island (Tourvision PCE bootleg), Alice In Wonderland (Tourvision PCE bootleg), Drop Rock Hora Hora (Tourvision PCE bootleg), Fighting Run (Tourvision PCE bootleg), Image Fight (Tourvision PCE bootleg), Kato Chan & Ken Chan (Tourvision PCE bootleg), Mesopotamia (Tourvision PCE bootleg), Ordyne (Tourvision PCE bootleg), Power Sports (Tourvision PCE bootleg), Puzznic (Tourvision PCE bootleg), Sokoban World (Tourvision PCE bootleg), Soldier Blade (Tourvision PCE bootleg), Spin Pair (Tourvision PCE bootleg), The NewZealand Story (Tourvision PCE bootleg) and Tricky (Tourvision PCE bootleg). - New drivers: seicupbl.cpp - New devices: cdrom_fixed, jrc6355e, jvs_master and ohci_hlean2131sc - New mame.ini options: bgfx_avi_name = auto and hlsl_write = auto - New HiScore.dat: http://highscore.mameworld.info/ - ADSP21062 CPU: Fixed Linux crash (cpu\sharc\sharcdrc.cpp) (ID 06262) - I8051 / MCS-51 CPU: Converted serial_rx and serial_tx to devcb - I80286 CPU: hlt requires CPL == 0 independent of IOPL - M6502, M6800, M6809 and S2600 CPUs: Removed irq_line methods and replace uses with DEVCB_INPUTLINE. Added several aliases for M6800_IRQ_LINE. - M6809 + HD6309 CPUs: Improved debugging support - M68000 CPU: Replaced M68000 write_irq[1-7] handlers with DEVCB_INPUTLINE - T11 CPU: Added reset output line - VLM5030 sound: Converted VLM5030 to device_memory_interface; correct region lengths. Fixed VLM loading in Jail Break and clones. - YM2151 and YM2413 sound: Isolate, objectify and integrate - 6850 ACIA: Make ACIA write initial line state in reset to avoid crash - 68681 DUART: Added op tx/rx status lines - 8250 UART: Reassert THRE irq when setting mask - 8251 USART . Added rtscts flow control for rs232\null_modem.cpp and relevant fix to i8251 . RTS and DTR outputs now use negative logic (0 = active) - CD-ROM . Fixed >2GB .iso parsing in util\chdcd.cpp . Set pregap subcode type to NONE for .CUE and .TOC for consistency with other formats (util\chdcd.cpp) - CHDMAN: Fixed remaining "CREATE CD" 64bit issues - Discrete Netlist . nltool now accepts -Ddefine=value to pass on to netlists . Improved option handling and added "dummy" options to add grouping and examples in help output. . Improved --cmd=listdevices output . Fixed dynamic timestepping. This will work with breakout using real capacitor modelling instead of delay devices. Really slow, but very useful to calibrate timings. . Fixed an awful bug in timing for delay devices. . Switched to Clang 3.8 and made code compile with -Weverything -Werror -Wno-old-style-cast -Wno-padded -Wno-weak-vtables. -Wno-missing-variable-declarations -Wno-conversion -Wno-c++98-compat. -Wno-float-equal -Wno-cast-align -Wno-global-constructors. -Wno-c++98-compat-pedantic -Wno-exit-time-destructors. -Wno-format-nonliteral -Wno-weak-template-vtables. This was a helpful exercise since it brought forward some serious issues with implicit constructors. . Added more RAII and improved exceptions. Fixed some bugs in parser code. . Removed trampolines (OUTLOGIC, INPLOGIC and friends). Started using doxygen comment and documentation style. Added doxygen files to documentation folder. Refactored code triggered by doxygen output. Moved internal and support classes into namespace detail. Use an anordered map in parser. -Wconversion fixes - All done now. Fixed -Wold-style-cast warnings in netlist code. Added iterators to pstring. Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. Fixed a number of bugs in parser code and exception handling. . Fix for netlist library when built for WINDOWS with UNICODE defined (netlist\plib\pdynlib.cpp). When UNICODE is defined LoadLibrary is redefined to LoadLibraryW which expects a widechar string as library name, while libname is always UTF8. Fixed copying TCHAR conversion code from strconv.cpp since netlist is meant to be also a stand-alone library. - MC68230 PIT: Added support for the 24 bit timer (machine\68230pit.cpp) - R4543 RTC: More complete implementation with better logging features (namcos12.cpp and namcos23.cpp) - airbustr.cpp, ajax.cpp, asuka.cpp, spdodgeb.cpp and vball.cpp: Simplified rom loading - astrocde.cpp: Initialize interrupt line register with 0xff (prevents initial bogus interrupts) and clear active interrupts when an interrupt related register is written (tests would be good to confirm how this works on real hardware). This fixes (MESS) 280Zzzap/Dodgem cartridge resets (ID 06281). - atlantis.cpp and midzeus.cpp . Added analog joystick to Skins Game. Fixed screen resolution in Atlantis driver. Added direct pixel writing for Atlantis. Scaling still needs work. . Added return data for unknown register access to keep 'The Grid' from hangin - bfm_sc4.cpp: Scorpion4 7Segment displays mostly fixed - chihiro.cpp . More descriptions for USB commands in AN2131QC. Moved USB part into new file (xbox_usb.cpp). Small adjustments. . Prepare to use jvs packets. Added a jvs host and a device. Now jvs communication works, although there seems to be some little problem left. . Use the gamepad only in the console and not the arcade . Time for AN2131SC, placeholders for all its USB commands. . Removed USB_HACK_ENABLED define, now USB can be disabled per game, in Xbox console USB is always enabled. Crazy Taxi High Roller boots. . Fixed copying of mcpx code - epos.cpp: Found out the flip screen bit. Flip screen still need work though. Added notes. - expro02.cpp: OKI map instead of memcpy, standard palette, removed a pair of unused variables and enabled save state support. - firebeat.cpp: Added ATAPI_FIXED_CDROM to driver - fromance.cpp: Mahjong dipswitch corrections (ID 05546) - homedata.cpp: Fixed dipswitches (ID 05558) - itech32.cpp: Added save state support - konamigx.cpp: Added coin3, coin4, service3 and service4 for type3 and type4 hardware - legionna.cpp, raiden2.cpp and r2dx_v33.cpp . Fixed priority issues in Legionnaire, Heated Barrel, Denjin Makai and Godzilla. . Fixed Denjin Makai puts sprites above everything for mode 3 . Moved around allocation pointers to own function, and register video pointers/functions to save state (video\legionna.cpp). Updated Denjin Makai and Godzilla flags. . Splitted Seibu Cup Soccer bootlegs into own driver. Fixed black screen in clones Seibu Cup Soccer (bootleg, set 1) and (bootleg, set 2) since MAME 0.155 (ID 06246) . Removed unused stuff and minor doc update. . Fixed Seibu Cup coin slots. Documenting what's wrong with Seibu Cup Soccer collision detection. . Added some unused macro hookups (seibucop\seibucop_cmd.hxx). . Hack Denjin Makai sound comms to work without ROM patch . Improved Zero Team sprite/sprite priorities. Simulation code in clone New Zero Team confirms that COP sort DMA function uses a dword key. Several priorities are still wrong (e.g. bikes invisible on character select screen). . COP command fix for minor Heated Barrel regression and misc notes. - naomi.cpp . Added Net-DIMM 3.03 firmware . Fixed Maximum Speed romload - neodriv.hxx: Added port names to Joystick buttons - ohmygod.cpp: OKI6295 memory map instead of memcpy - psikyosh.c: Fixed crash when attempting to use -cheat in gunbird2 and s1945iii (ID 06323) - seibuspi.cpp . Separated memory maps and make them slightly more accurate . Hook up Seibu CRTC . Hook up flip screen SW (not implemented yet). SPI input cleanups, tweaks and notes. . Making E-Jan Sakurasou multiplexed inputs reading more accurate - tiamc1.cpp . Added games Gorodki and Kot-Rybolov . Added support for KR580VV55A parallel peripheral interface (clone of i8255) . Added technical notes about some odd behaviour with someports, listed the specs of Kot-Rybolov hardware and added all clocks. . Main clock verified against original schematics and docs, Kot-Rybolov uses single i8253 timer for 'sound', the rest 2 controls (at least background's) view area size,Gorodki have AD stick, not paddle. - tmaster.cpp: Fixed coinage in Touchmaster 2000-8000 - tourvis.cpp: Added a number of new dumps (15) to the softlist. Updated driver with new information related to ID and gamelist for tourvis.cpp. - vendetta.cpp: Maincpu rom loading cleanup. Converted Vendetta driver to bankdev, this fixes slowdowns in Escape Kids (ID 06285). - Air Combat: Added PORT_REVERSE to pedal - Arkanoid: Updated notes, added mention of the secret (disabled?) credits scene found by tcrf.net and who is listed in it. - Esh's Aurunmilla: Added beeper - Fever Soccer . Hook up EEPROM, remapped buttons and hook up lamps and serial RTC. . More complete R4543 RTC implementation with better logging features. Added JRC6355E RTC variant used by Fever Soccer. Correct JRC6355E implementation to agree with NJU6355 datasheet. RTC writes and reads in Fever Soccer both fully work now. . Added NVRAM, identify some DIPs and document build date. - Flaming 7 . Reverse-engineer protection to bypass the requested serial number - Games now playable. The iButton device still needs to be hooked. Promoted these games to working with their correspondent flags. . Added tech notes, comments and instructions to boot the machine for first time. - Forte Card: Switched Forte Card (Ver 110, Spanish) to parent set since it's a posterior and newer version. Also cleaned up the driver. - Funky Ball: Fixed fatal error at start (ID 06324) - Meta Fox: Fixed bonus life settings and mask (ID 06266) - Operation Wolf . Fixed all the gameplay problems by improving the C-Chip protection simulation. Gameplay should be a true 100% match to original now. Put extensive notes in the machine file about what has changed. . Fixed bug in 68K->C-Chip simulation that could lead to level 2 boss not appearing after first run. - Out Run: Use correct sub-CPU roms for clone 'Out Run (Japan, deluxe sitdown) (FD1089A 317-0019)' allow all the roms to pass in the MEMORY check routine of the test screen. - Pairs (V1.2, 09/30/94): Added srom0 (ES5506) from clone (09/07/94) to parent set - Sliver: OKI6295 memory map instead of memcpy and added save state support - Spiders: Removed a few IRQ passthroughs - Tetris (bootleg of Mirrorsoft PC-XT Tetris version): Mark Tetris KR as working, see MT02851 for details (ID 02851). - Turtles: Moved clone Turpin (bootleg on Scramble hardware) from Scramble to Galaxian driver and added preliminary sound. Tempo is way to high. - Untouchable: Added dipswitches (ID 05566) (ID 05955) - Input port . Fixed input issues on big endian systems (input\input_common.h, input_dinput.cpp, input_rawinput.cpp, input_sdl.cpp, input_win32.cpp, input_windows.h, input_x11.cpp and input_xinput.cpp) . Fixed 0.172 regression for non-US keyboards (input\input_common.cpp) . Crosshair refactoring: Individual crosshairs are now first-class objects, rather than bits of state scattered across half a dozen arrays. The class is named render_crosshair with a view towards incorporating crosshairs into layouts in the future, rather than managing them separately as crosshair_manager still does now. Removed the old crosshair_user_settings interface for adjusting crosshair settings, since the UI can access the new crosshair objects directly. . Added a device as proof of concept which merges several input lines into a common output line, supporting both active high and active low inputs. . Make ioport_list a map instead of unordered_map, should fix INP incompatibilities across compilers and platforms. - Dipswitch fixes in ddenlovr.cpp, dynax.cpp, fromance.cpp, hnayayoi.cpp, homedata.cpp, jalmah.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp and seibuspi.cpp - Fixed rom names in itech32.cpp and naomi.cpp - Description changes of Beastie Feastie (conversion kit), Buena Suerte (Spanish, set 15, Prodel PCB), Euro League (Italian hack of Tecmo World Cup '90 - alt version) (ID 06293), Live Gal [BET] (Japan 870530), Operation Thunderbolt (US), Operation Thunderbolt (US, rev 1), Pairs (V1, 09/07/94), Tetris (Korean bootleg of Mirrorsoft PC-XT Tetris), The Pit Boss (PSB1), The Pit Boss (M4A1) and Untouchable (Ver. 2.10) - Renamed (beastf) to (beastfp), (bubbletr) to (bubbletrj), (ffantasy) to (ffantasyj) and (othunder) to (othundero) - MAME . VIDEO RENDERING SYSTEM . Polymorphize layout_element::component (emu\render.h and rendlay.cpp) . Misc code cleanups for Direct3D code. Removed unused methods, unused function parameters, redundant casts, doubly linked lists made into singly linked lists, etc. Converted linked lists into vectors of unique pointers. . simple_list to vector in emu\rendlay.cpp . Make monitor list a list of shared_ptr like window_list . Use std::map for mapping XML tag name to layout component creation function - makes the code simpler and easier to read as well as being more scalable. Fixed problem using layout_element::texture in vector - destructor frees resources but generated copy/assignment operators don't release them, leading to a problem any time vector expands or element is added/removed anywhere but end. . BGFX . No need to build all tools, just shaderc (makefile). Documented BGFX shaders compile. . Added crt-geom and crt-geom-deluxe shaders for BGFX. This includes several aperture grille / shadow mask patterns. Note that these are all designed to be used on a display with RGB subpixel order, and may thus suffer if rotated or used with a BGR display. . Fixed crash when BGFX effect folder is not present or incomplete. BGFX renderer requires some effects also when post-processing is disabled. If they are not available, MAME complains about missing effect files, but then goes on and crashes soon after printing the backtrace. This fix just exits gracefully when effect files are incomplete and falls back to a different renderer if the BGFX folder is missing at all, warning the user in advance. . RGB utilities . Introduced validity checks for RGB utilities and fixed uncovered bugs. Added several missing functions to rgbgen. Fixed logical shift right in rgbgen. Fixed sra that should be sra_imm in rdptpipe. Added some simple SSE4.1 optimisations in rgbsse. Re-organised rgbsse, rgbvmx and rgbgen to be in more logical order. Fixed return on some modifying operators. Made some more reference parameters const. Removed inline qualifier from a number of methods as it's implied when body is present at declaration. Mark some constructors explicit. . Check a bunch more RGB operations in validity. Implemented the missing ones in rgbgen. Format similar one-liners in a more tabular way. Use default copy construct/assign. . UI . Added a move constructor and got rid of the 'const char *' overload. More use of std::move() and usage of emplace[_back]() as per cuavas. C++-ified the strings inside of menu items. . Force move construct/assign to be generated (ui\menuitem.h). Reduced usage of c_str() when used with menu::item_append(). . Changing menu_file_selector::append_entry() to return a reference instead of a pointer . uismall.bdf: Added first 48 Latin-1 Supplement characters, many Cyrillic characters (covers at least Russian, Ukrainian and Serbian), most of Latin B, some archaic Cyrillic characters, some IPA extensions and half-width katakana. European Latin and Cyrillic coverage should be pretty good. Added monotonic Greek (and a couple of archaic Cyrillic characters). Can now run mame -uifont uismall.bdf -language Greek for 15kHz monitor lowercase gamma and lambda could probably be prettier, but it's definitely all legible. Improved legibility of Russian at small sizes. . Cleanups to the software list menu . Fixed crash when drawing menus (ui\menu.cpp) (ID 06268) . Fixed choosing any filter which has no data makes the UI unrecoverable (ID 06263) . Fixed separator in ui\pluginopt.cpp . Cleanup ui\filesel.cpp . Fixed how the file selection dialog determines when to show "create" . Added in "Miscellaneous Options" menu one item to hide ROMless machines from the availables list. . Changed a number of file manager related menus to have their outputs be by reference than pointer and tightened up typecasts in menu_select_rw. . Added file create refactoring . Untangling the menu code and reduced visibility of more menu members. . Split out main menu and dat box drawing from base class. Make a bunch of class statics proper per-machine persistent objects. Object lifecycle fixes. . Moved more main menu stuff out of the base menu class. Get rid of the rest of the troublesome static members in ui::menu (there are still problematic function statics in some menu classes). Moved palette menu drawing code out of base into palette menu class. . Added std::bind - accept no substitutes. pointer -> reference conversion. Make more menu members private or protected. Don't play so fast and loose with integer types. Reduced some vector copying. Make more static constants const. . Splitted "widgets" code out of ui::menu::global_state into a separate module . Now using core_filename_extract_base() in menu_file_create ctor . Reduced repeated string allocation in audit code . Moved background bitmap/texture back into ui\menu.cpp . Eliminated some function statics. Moved another launch menu specific member out of base class. Moved some common code from selgame and selsoft into selmenu. Tighten up const and casts. . .h -> .ipp for things that aren't really headers. Make more stuff in selmenu private. Moved the remembered driver/software associated with the snap to the cache object. Start cleaning up constness in datfile manager - it's still a mess of non-const statics. More const where it should be. Don't unnecessarily copy big maps. Don't make things members when they shouldn't be. Get rid of a couple more function statics. Moved custom render and tab navigate up to base class. . Fixed selecting "Category" after listing "Favorites" causes exception (ID 06288) . Making menu_control_device_image::populate() be private (ui\imgcntrl.h). Miscellaneous cleanups to ui\imgcntrl.cpp/h and calling code. . PLUGINS . Added plugin path expansion (plugins/boot.lua and mame\pluginopts.cpp) . Fixed pluginspath in LINUX does not resolve $HOME (ID 06279) . Fixed plugin.ini file is created in the current folder when it should be created in the "ini" path (ID 06280) . Only load plugins in plugin path (plugins\boot.lua) . Cheat . Added logical address space accessors to LUA engine, use by default in translated cheats (plugins\cheat\xml_conv.lua). Better error handling (plugins\cheat\init.lua). . Added address_to_byte and optional arg for physical address space to LUA engine to disable address shift. Cheats created with the cheatfinder won't work with the builtin cheat finder if the cpu has an address bus that isn't 8bits unless the addresses are fixed up. . Added simple cheat file format (cheat\simple_conv.lua) . Added operand size to simple cheat and write cheats from cheatfind into simple file . Added name cheats . Hiscore . Added optional value to prefill for software that clears ram and add examples . Make hiscore.dat sorter stable so everything isn't rearranged every time . Updated hiscore.dat . MULTI-LANGUAGE . Updated and fixed translation files . Updated Brazilian Portuguese . Updated Chinese translations . Fixed Chinese_Simplified & Chinese_Traditional translation files . Updated Greek translation . Pick off some Japanese string translations, improvements welcome. . SOFTWARE LIST . Const correctness related changes to softlist . Better adoption of move constructors. Changed the softlist code to more aggressively use std::string. . std::string::c_str() const never returns nullptr. Get rid of extra length parameter using a template. . Changed some usage of simple_list to std::list in the softlist code . Cure software lists of validity checking errors: Fixed stupid logic errors in software_list_device::internal_validity_check. Allow info and feature list entries to provide an empty string as the value. . Added usage of std::find_if() . Replacing the enum with a class hierarchy, derived from 'software_list_loader'. Consolidated implementations of device_image_interface::call_softlist_load(). . DEVICE IMAGE INTERFACE . Changed image_device_format::extensions() to be a vector (emu\diimage.cpp) . Cleanups for device_image_interface. Removed the loaded_through_softlist virtual method and added a boolean getter with the same name, replacing a few variables that provided similar but redundant flags. Removed call_softlist_load, which the previous change reduces to a simple and unnecessary wrapper. . Simplified memory management for save states and states . Readding overloads that take a std::string& parameter for the result (emu\diimage.cpp, ui\imgcntrl.cpp and util\zippath.cpp/h) . Flush stdout/stderr before killing process (osd\watchdog.cpp). This fixes watchdog dialog is not able to be captured (ID 06284). . Introduced running_machine::compose_saveload_filename() function to convert a filename (for state save/load) to a fully qualified path (emu\machine.cpp) . Pass through the debugger flag from the incoming space argument (machine\bankdev.cpp) . AVI/Screenshot . Direct3D HLSL: Use aviwrite to record avi movies (d3d\d3dhlsl.cpp). Use common infrastructure in aviwrite.c instead of equivalent local code. The target textures used by the HLSL movie recorder are now allocated only when recording is ongoing. Removed shaders->begin_frame() and shaders->end_frame() hooks from the main Direct3D rendering loop. Set default HLSL movie name to hlsl.avi. . Fixed dimension of high-res snapshots (Alt + 12) and AVI records (Alt + Shift + F12) when screen dimension is swapped (d3d\d3dhlsl.cpp) . Added generic fix for -aviwrite (util\aviio.cpp; Captured AVI video from Super Hang-On shows only sound, no image) (ID 06286) . Fixed copy of texture data to bitmap in BGFX. Changed AVI dimension to a lowest integral multiple of 4 (2 was still to low for most video players, e.g. VLC). Added audio to AVI record in HLSL. HLSL AVI record now uses window dimension instead of snap dimension. This fixes unable to view recorded video in Car Polo made with -video bgfx/-window (ID 06291). - SDLMAME . Use allocating mode of ::realpath by default (modules\file\posixfile.cpp). POSIX implementation for valid filename/path character functions (modules\file\posixfile.cpp). . Fixed build on Debian PPC64 with -maltivec (sdl\sdlprefix.h). Problem is caused by puling in which #defines vector, pixel and bool however when the compiler is in Apple Altivec mode, these are context-sensitive keywords and don't need to be #defined we never need the #defines in our own code because we use the GCC-specific __vector instead of vector so we trick the header to think the compiler is in Apple Altivec mode to suppress the #defines. . Fixed warning message says "-waitsync" but should say "-waitvsync" (sdl\video.cpp) (ID 06296) . Take pkg-config path from env if defined (osd\modules.lua, osd\sdl.lua and sdl_cfg.lua) - Linux . Added detection for Linux architectures alpha and mips64el, to avoid using GCC -m64, which isn't available on them. . Fixed pluginspath in LINUX does not resolve $HOME (ID 06279) . GNU/kFreeBSD support. Sync with upstream. . Detect GNU/Hurd systems, but treat them as Linux. Compile fixes for GNU/Hurd systems: Define PATH_MAX if it's not defined and the compiler defines __GNU__. Cherrypick portability fixes for 3rdparty modules. - Android . Android strip SDL lib (src\3rdparty.lua) . Added Android build folders (scripts\toolchain.lua) . Fixed Android x86 and x64 full build. Abuse namespace. - MAC OS X: Removed #include (lib\osdlib_macosx.cpp and osdlib_unix.cpp) - MESS . Notes about how to load a floppy in supervisor mode to drivers\a310.cpp. Fixed Archimedes disk format. . Null Modem: Added rtscts flow control for rs232\null_modem.cpp and relevant fix to i8251. Make flow control optional (rs232\null_modem.cpp). . The Ethernet frame check sequence is now appended to transmit data (bus\isa\3c505.cpp) . uPD7220 video: Alternate drawing direction by line in gchrd . Z80 SCC: Fixed for mid tx reset of scc channel and problem with dropped characters for (MESS) Sun4_75 (machine\z80scc.cpp). Added support for changing the BRG constants after enabling Rx/Tx. Added support for delayed change of Tx baudrate. - Compiling . Fixed compile bug on Bash for Windows and fixed symbol stripping (scripts\toolchain.lua) . Removed FUNC_NULL macro . Made emu_timer register_save properly handle timer_expired_delegate() . Removed timer_expired_func and calls using it . Added a couple msys2 updated MinGW headers to winsdk-override to support linux cross-compile with stock MinGW-w64 . Override without virtual looks uncomfortable (util\vecstream.h) . Changed some int's to size_t's and added assertions where we were assuming that option_resolution was a requiremen. C++-ification of util\opresolv.cpp/h and corefile.cpp/h. . Fixed compile errors due to option_resolution namespacing . Removed some c_str() calls that are no longer necessary (tools\chdman.cpp and src2html.cpp) . Better enum increment/decrement operators: Reduced underlying type rather than assuming int. Return old value from post-increment/decrement. Return reference from pre-increment/decrement. . Use function-style casts, added explicit casts to keep newer GCC happy (video\rgbvmx.h). More PPC fixed (video\rgbvmx.h) and ppc64le (video\rgbgen.h, rgbsse.h, rgbvmx.cpp and rgbvmx.h). Fixed bilinear_filter and blend on ppc64le. . Adopting std::find() and std::find_if() in core_filename_extract_base() and added a check for reverse overflow when extensions is longer than filename (util\corefile.cpp). Fixed issue that could cause core_filename_ends_with() to return true when extension.size() > filename.size(). . Balance configuration macros in genie scripts (osd\modules.lua) . Removed implementations of create_option_guide() that return nullptr. Removed nullptr image_formats and fixed formatting. . Fixed separate compile of drivers using sharc/ADSP21062 cpu . Using decltype() in winfile.cpp and removing +1/-1 "dance" in strconv.cpp. Changed strconv.cpp/h functions to return their results as std::string and std::wstring. . Fixed compile error (video\dynax.cpp) - Debugger . Move disasm overrides into interface, reducing driver-debugger depend. . Don't need debugcpu to translate . Added support for 7z and 'Create' option to windebug images menu (debugger\win\consolewininfo.cpp). . Fixed scroll in debugger state view. Fixed item hilighting in debugger state view when scrolling. Better encapsulate debug_view_state::state_item (debug\dvstate.cpp) . Check for debugger access for reads with side effects machine\s2636.cpp . Make loop collation optional for debugger trace and traceover commands . ImGui based debugger: Fixed order of evaluation making imgui debugger not fail on starting without driver selected (debugger\debugimgui.cpp) . Prevent nullptr exceptions when devices named in expressions lack memory interface (debug\debugcpu.cpp), this fixes crash when attempting to use -cheat in gunbird2 and s1945iii (ID 06323). . Fix for debug build (machine\st0016.cpp) 0.175 - New games: 1943: The Battle of Midway Mark II (US), Kyuukoukabakugekitai - Dive Bomber Squad (Japan, prototype) and Mahjong Joshi Pro-wres -Give up 5 byou mae- (Japan) - New Working games: Flaming 7 (Red, White & Blue 7's + Hollywood Nights), Godzilla (Japan), Idol Janshi Suchie-Pai 3 (JPN), Moto Frenzy, Tora Tora and Usagi - Yamashiro Mahjong Hen (GDL-0022) - New Non-Working games: Flaming 7 (Custom Hardware, Main, 50 Bonus), World Club Champion Football Serie A 2001-2002 Ver. 2 (CDP-10001C), World Club Champion Football Serie A 2001-2002 DIMM FIRM Ver.3.03 (CDP-10003) and World Club Champion Football Serie A 2002-2003 Drive Checker (CDV-10007) - New clones: Astro Combat (encrypted), Buena Suerte (Spanish/Portuguese, set 23), E.D.F. : Earth Defense Force (Japan, prototype), Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus), Flaming 7 (Custom Hardware, Main, 500 Bonus), Flaming 7 (Custom Hardware, Main, 2000 Bonus), Flaming 7 (Taiwanese Hardware, unknown version), Galaxian (bootleg, set 4), Hyper Bishi Bashi Champ (GE876 VER. KAA), Lethal Weapon 3 (2.07), Lucky Poker (bootleg/hack of Major Poker), Magic Card (H8, English), Major Poker (set 2, Micro Manufacturing intro), Major Poker (set 3, Micro Manufacturing intro), Major Poker (set 4, Micro Manufacturing intro), Marvel Vs. Capcom 2 New Age of Heroes (USA) (Rev A), Metamorphic Force (ver EAA - alternate), Mutant Warrior (Altered Beast - Datsu bootleg), Out Zone (Zero Wing TP-015 PCB conversion), River Patrol (Japan), Royal Card (Austrian, set 8), Scramble (Model Racing, Italian bootleg), Side by Side (Ver 2.6 J), Side by Side 2 (Ver 2.6 OK), Space Invaders (CV Version, smaller roms), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 1), Super Street Fighter II: The Tournament Battle (Japan 931005), Teenage Mutant Hero Turtles - Turtles in Time (4 Players ver EAA), Ufo Robo Dangar (4/07/1987), Ufo Robo Dangar (9/26/1986, Japan) and Varth: Operation Thunderstorm (bootleg) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Out Run (Tourvision PCE bootleg) - New AGEMAME games: Antony and Cleopatra (10163211, NSW/ACT), Bumble Bugs (0200456V, Queensland), Choy Sun Doa (20104011, NSW/ACT, Show Program), Inca Sun (0100872V, NSW/ACT, Show Program), King Penguin (40109021, NSW/ACT, Show Program), Player's Choice - Platinum (20282111, New Zealand), Queen of the Nile (0300439V, NSW/ACT), Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT, Show Program), Scatter Magic II (10102711, South Australia) and Wild Waratah (10215911, NSW/ACT, Show Program) - Removed games: Eagle Strike (set 1), Flame Of Olympus, Flames Of Olympus USA (set 1), Foxworthy Redneck, Outback Jack (set 2) and Players Choice Favourites (set 1) - New drivers: divebomb.cpp - New devices: generic_keyboard, generic_terminal, ldp1000, m2comm, xga and zeus2 - New mame.ini options: Added vector_beam_smooth (VECTOR POST-PROCESSING OPTIONS). Removed antialias (CORE VECTOR OPTIONS). - New Cheat.dat: http://cheat.retrogames.com/ - ADSP21062 CPU: Added highly experimental SHARC recompiler. Runtime enable for sharcdrc. Added Model 2 and Zero Gunner compatibility. - Dynamic Re-Compiling . Fixed x64 compile (cpu\drcuml.cpp) . Modified branch in delay slot to match non-DRC behaviour for non-dynamic branch targets (cpu\drcfe.cpp) - M6502 CPU: Disabled VBL opcode logging (use wpiset 0,1,r) (cpu\m6502\odeco16.lst) - M6800 CPU: Fixed behaviour of N and V flags in CPX (compare X) instruction (cpu\m6800\6800ops.hxx). These two flags are only affected by the data comparison of the upper 8 bits, and not the whole 16 bits. - PPS4 CPU, TMS32010 CPU, TMS32025 CPU and V25 CPU: Fixed some cpus with virtual ports, mark them with +1 in any case. - T11 CPU: Fixed MARK insn (not supported by actual T11). Fixed all irqs. - TMS32010 CPU, TMS32025 CPU and V25 CPU: Made it use devcb instead of a memory map for the ports or bio line - TMS57002 CPU: Fixed internal_pgm ADDRESS_MAP range - Z80 SCC: Fixed baudrate calculation issue to make (MESS) Sun3-80 work and some minor debug message errors (machine\z80scc.cpp) - DCS sound . Added sport timer for DCS2 DSIO device (audio\dcs.cpp). Fixed buffer overflow with clone San Francisco Rush 2049: Special Edition. . Updated 2181 SYSCONTROL bits. Added internal ram memory bank for DENVER ADSP 2181 (audio\dcs.cpp). - Sound Interface . Updated more drivers to use the new gen_latch.cpp, which should substitute the soundlatch_* methods in driver_device. . Removed the old soundlatch methods (emu\driver.cpp) . Sound trampolines removal from various drivers - Atari Custom: Removed the slapstic and sloop direct update handlers, which hasn't been necessary since direct access has been enhanced to work correctly on handlers, years ago (machine\atarigen.cpp, drivers\atarig42.cpp and starwars.cpp). - Cassette: Modernized the cassette animation - CHDMAN . Ignore ATA ident CHS values for > 8GB images . Ignore cylinders, heads and sectors from identify device data, based on the ATA 5 specification. . Attempt to workaround hang during CHD creation - Device interface . Removed device_memory_interface in EEPROM, i2cmem.cpp and intelfsh.cpp . More efficient device error logging (emu\device.cpp) - Discrete Netlist . Moved all parameter definitions in constructors . Make netlist compile with C++11, use own implementation of make_unique to avoid C++14. . Removed dependency on osd_ticks. Converted palloc and friends into templates. Moved code into separate plib namespace. . Stop using underscore _names, they're reserved for compiler/system. . Minor cosmetic refactoring. Added a "uninitialised array" template to allow in-place creation (for increased locality) of netlist classes. Main use is in truthtable class. Removed PLIB_NAMESPACE macros. Removed namespace macros. Use explicit namespace declarations. Moved device definitions into cpp files. Moved more device definitions into cpp files. New prefix "nlid" for include files flags purely internal include files not to be leaked into userland. Fixed factory code. . Added constructors to prepare to move terminal setup into constructor. Reworked twoterm setup. Fixed some timebombs along the way. Fixed r2r dac. Remove dead code. analog_outputs now created in constructor. Moved analog_input creation into constructor. Moved logic output creation to constructor. Moved all logic inputs into constructor. Completely removed init_object - finally. . More code cleanup: Dead code removal and minor refactoring. Simplify. Align naming with stl. Fix somed pedantic warnings. More STL compatibility. Removed ATTR_HOT and ATTR_COLD. Refactored netlist_time. Fixed long standing workaround which would ignore policy of change-only" propagation. Rewroted for loops to use auto : semantics. Truthtable cleanup. Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h. Fixed standalone build. Refactor ptypes.h. . Merged netlist_dev branch, all code_refactoring: Object model optimisation. Merged remote-tracking branch 'origin/master' into netlist_dev. Default PHAS_PMF_INTERNAL=0 for 32bit windows MinGW. Changed UINT8 to uint_[fast|least|8_t. Moved state_var so it can be used by base devices as well. Removed last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. More C++. Simplify main processing loop. As a nice side-effect that squeezed out some cycles. More cycle squeezing. Removed pvector_t. Use std::sort. Refactored netlist state manager. Introduction of state_var object template to be used on device state members. Changed remaining save occurrences to state_var. Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. Remove hashmap_t. Fix kidniki regression. . Replaced shared_ptr by unique_ptr. Better seperation of setup_t and netlist_t. Fixed bugs in rdtsc code. Refactored timer code. Simplify conditional activation/deactivation. 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. Moved options code from include to cpp file. Minor modifications to 7493 and 9316. 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. More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays. . Added explicit to constructors to avoid bad surprises later. Srcclean on netlist files. Avoid the merge massacre. - Harddisk: Added CHS and LBA limits when the CHD doesn't contain identify device data (machine\idehd.cpp) - Laser Disc . deco_ld.cpp: Added Road Blaster LaserDisc image. Added bare-bones Sony LDP-1000 device . esh.cpp: Added Esh's Aurunmilla LaserDisc image. Added line blinking and overlay opacity selectors. Added command strobe callback interface for LDV1000, and hooked it up to esh.cpp driver. Fixed IRQ 0 hookup, using device_timer to ack an IRQ for MAME is never a good idea. Added the other blinking mode. . dlair.cpp: Some misc updates. Improved dlair internal layout (based on external artwork by Mr. Do & Co). . Fixed laserdisc screen PAL parameters (machine\laserdsc.h) - PCI-IDE controller: Added IRQ callback (machine\pci-ide.cpp) - Sega Custom: Added basic C-Sync callback to 315-5124, based on Charles' hardware tests. - Slots . Added tagged_list to unordered_map for slots . Proper exception handling (emu\dislot.cpp) - aerofgt.cpp . Fixed POST palette for Spinal Breakers and added minor note. . Found out that Karate Blazers (bootleg) uses a sound system copied from SNK's Street Smart. Hooked up preliminary sound. SFX are wrong. - aleck64.cpp: Disabled fast RAM, as it prevents watchpoints from working and doesn't gain much on the interpreter core (machine\n64.cpp). - atarigx2.cpp: Reverse-engineered Moto Frenzy security FPGA and implemented decryption code (Game now playable). Fixed controls. Left/right were reversed, throttle was defaulting to on and was clashing with BUTTON1. Added port names. - atlantis.cpp, iteagle.cpp and midzeus.cpp . Updated rom naming/mapping and changed ram instantiation (mips\mips3drc.cpp and machine\vrc4373.cpp) . Updated Atlantis driver and address map. Changed Atlantis to DENVER audio. Added DCS3 fifo reset to Atlantis address map. . Use normal array allocation for fixed sized arrays (machine\iteagle_fpga.cpp) . Use new Zeus2 video device for Atlantis and Midway Zeus 2 (video\zeus2.cpp). Re-organize frame buffer ram and add IEEE754 floating point conversion. Closer to getting quad 14 word working. Better quad size selection. Changed texture size selection and attempt to extract last parameters from quad 14. . Fixed 'The Grid' crashes with "Fatal error: Extreme count" after the initial system test (ID 05980) - bfcobra.cpp: Use ramdac_device instead of custom implementation. The driver also has a custom FDC implementation, which I failed to update to the device one. - chihiro.cpp . Try to boot Crazy Taxi High Roller & small 3D adjustments. . Try to complete Xbox memory map, EEPROM must be NTSC. . Added description of 2 commands sent via USB to the AN2131QC chip, based on disassembly of its firmware. They are used to read the I2C EEPROMs connected to the chip. . Removed memory map error - cobra.cpp and zr107.cpp: Removed unnecessary mirrors - cps3.cpp: Speed up initial programming by reducing the number of error.log entries - galaxian.cpp . Preliminary sound hook-up for clone Take Off (bootleg of The End) . Separated memory map for clones Explorer (bootleg of Scramble) and Take Off (bootleg of The End) instead of a lot of install_* at driver_init time. . Documented Galaxian (bootleg, set 2) which mixes roms from other sets (double sized program roms and kamakazi3 gfx roms) - goldnpkr.cpp: Completed clone Buena Suerte (Spanish, set 15). Rearranged the graphics ROMs to get accurate gfx banks. Discrete sound needs to be traced. Game is working properly. Added technical notes, WIP, edge connector and mech counters pinout to clone Buena Suerte (Spanish, set 15). - goldstar.cpp . Flaming 7: Added new technical notes. Added hand made electronic serial DS2401 dump, as a start of electronic serial number support. Hook up serial DS2401 EEPROM. Connected the electronic serial DS2401 device to the proper PPI8255 (PC6) line. Support DS2400-compatibility command 0x0F to read serial no (machine\ds2401.cpp). Promoted Flaming 7 to working: Correct DS2401 hookup on PIA 0 port C. Make serial number ROM to match our program ROM dump. Inputs could be improved. Get past the data error on empty NVRAM with book (0) and reset (R) buttons. . Tetris + Cherry Master (+K, Canada Version, encrypted) hidden switch documentation . Some driver cleanups toward coding standards . Added Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 1). Note: New parent set, since they fixed some weird bug in pulses/bookkeeping. - harddriv.cpp . Added more info for invalid register accesses (cpu\adsp2100\2100ops.hxx). Added callback for dmovlay instruction. . Nop out a memory range, makes log a bit more sane. A 2 second log used to weigh about 700 MB - kinst.cpp: Naming KI1 & KI2 Input buttons the same way it's displayed in original Arcade Control - legionna.cpp and raiden2.cpp . Cleaning up the Seibu COP (Co-Processor) device and documentation . Moved DMA and commands into own files (machine\seibucop\seibucop_cmd.hxx and seibucop_dma.hxx) . Prevent cop_angle to overflow byte range. Fixes III to I quadrant movements in Legionnaire and Heated Barrel. Fixes stage clear player movement in Legionnaire, level 4 boss and maybe access exceptions in Heated Barrel. . Added nicer sorting routine. Moved zsorting to DMA file, improved notes (machine\seibucop\seibucop.cpp). - leland.cpp . Merged ataxx.cpp into leland.cpp as they had a completely shared main header file (leland.h). . Fixed 'missing required objects' fatalerror (ADDRESS_MAP/AM_SHARE"mainram") in Ataxx (ID 06223) - lindbergh.cpp: Updated docs - magicfly.cpp: Refactored PCB layout and pinout with new findings and PCB trace. Also added some technical notes. - megasys1.cpp: Fixed sound regression in System Z hardware games from MAME 0.171. System Z games use a Z80 as sound cpu instead of a M68k. In 0.171 the input lines' enumeration for Z80 was changed and this wasn't updated. - megatech.cpp: Added some title documentation - midzeus.cpp: Naming MK4 P1 & P2 inputs and ports - model1.cpp: Fixed TGP parser crashing in Model 1. This fixes Virtua Racing may crashed if running in linked mode and after coining up (ID 06123). - model2.cpp . Added highly experimental SHARC recompiler. Runtime enable for sharcdrc. Added Model 2 and Zero Gunner compatibility. . Finish the MB86235 disassembler. Fixed 4 compile errors (cpu\mb86235\mb86235d.cpp). . Hooked up M2COMM simulation. Commented out jaleco custom handlers. Cleaned up some Sega comm related stuff. Replaces printf with osd_printf_verbose in a number of places. Removed no longer needed code from Model2. - model3.cpp . Update culling node info (video\model3.cpp) . Hooked up M2COMM simulation. Commented out jaleco custom handlers. - namconb1.cpp: Fixed degraded performance speed in machbrkr and outfxies by disabling logerrors (ID 06244). Also added save state support. - naomi.cpp and segasp.cpp . Added PowerVR2 hack (hacky end of render delay for Capcom games, otherwise they works at ~1/10 speed) . NAOMI documentation update and new DC/NAOMI security system findings . Added Net-DIMM firmware (fpr23718.ic14) and notes . 'Samba de Amigo Rev.A' cartridge contents identical to already dumped Rev.B - nbmj9195.cpp: Fixed mscoutm, imekura and mjegolf inputs (ID 06234) - neodriv.hxx . Fixed most sets in neodriv.hxx crashes if cheats are enabled . Fixed savestate problems in NeoGeo hardware driver (drivers\neogeo.cpp). Many thanks to Tafoid and Osso for the debugging help (ID 06253). - nss.c, sfcbox.c and snesb.c . Fixed back N5A22 clock steps (cpu/g65816/g65816cm.h; timing bug that was lingering for a while, no idea about what it fixes / breaks for SNES but it doesn't seem harmful from a quick random test). . Minor NSS screen output fixes - pacman.cpp, jrpacman.cpp and pengo.cpp: Fixed X and Y flip bits are ignored when sprite is rendered at top of screen due to vertical wrapping (ID 06235). Note: When a sprite is partially off the bottom of the screen (Y values less than $10) the hardware draws the missing parts at the top of the screen, basically wrapping the sprite. - seattle.cpp: Use normal array allocation for fixed sized arrays (machine\gt64xxx.cpp) - splash.cpp and turbo.cpp: Don't use AM_MASK on ram, you end up with an incorrect allocation size. - system16.cpp . Made some observed changes to some of the game flags in the driver . Reorganized the different sound configurations in "fragments" and added preliminary sound to clones Altered Beast (Datsu bootleg), Mutant Warrior (Altered Beast - Datsu bootleg) and Passing Shot (4 Players) (bootleg). - tourvis.cpp: Added Out Run to the Tourvision games list. Minor gamelist changes. - vegas.cpp . Correct sub-device lookup string. Added Nile 4 timer scaling. . Added sport timer for DCS2 DSIO device (audio\dcs.cpp). Fixed buffer overflow with clone San Francisco Rush 2049: Special Edition. - AGEMAME . aristmk5.cpp: Reorganized sets based on their actual description. Unified rom naming and added a few sets that were missing. . aristmk6.cpp . Reorganized sets based on their actual description. 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. . Fixed BIOS loading and some BIOS naming. Removed an overdumped BIOS and moved qnilese base PCB ROMS to the BIOS set. . mpu4.hxx and mpu4sw.hxx: Made efforts to provide a 'simpler' configuration setup for MPU4 hardware to encourage easier 'per game' configuration. Tested with one Andy Capp game for now, but others will follow. - Android (prototype, later build): Fixed ROM labels/locations for clone Android (prototype, early build) and added dumps of the two PLDs. - Battle Rangers: Game is a mono PCB - Blood Bros: Thoroughly reworked clone West Story (bootleg of Blood Bros.) 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 Blood Bros. games. - Breakout [TTL]: Fixed attract mode - Funky Ball . Reversed ROM flash hookup, fixed bogus FPU exception. . Hooked up terminal device. Fixed region endian. - Gals Panic 3: Added correct supplemental graphics roms to clone Gals Panic 3 (Hong Kong) - Godzilla (Japan): Fixed BCD overflow score bug (machine\raiden2cop.cpp). Marked game as working until otherwise proven. - Gradius 4: Added rasterizers (video\voodoo_rast.hxx) - Halley's Comet: Removed goto:s and somewhat simplified the readability of the video driver - Hole Land: Correct default dips (local language, not English) and added dipswitch definitions for clone Hole Land (Spain) - Lucky 9: Replaced TMS9980A CPU with TMS9900, because the 9980 address space is too small. - Major Poker: Added missing PLDs, plus technical notes. - Mario Bros: Fixed 'Bonus Life' dipswitch descriptions for Mario Bros. (US, Revision F) (ID 03321) - Match Games . Added technical notes and correct CRT 810 layout + old notes . Some cleanup for coding standards and fixed coinage dipswitches. - Metal Freezer . Added dips . Fixed missing sprites on edges . Attempt fixing rowscroll enable for stages 5, 10, ... . Removed MACHINE_IMPERFECT_GRAPHICS flag until otherwise proven - Ozma Wars: Added color proms - Poker Monarch: Boots up. By adjusting SW1 you can get various test screens and cards. - Pro Sports: Fixed wrong Upright / Cocktail assignment - Rad Mobile: Swap Lights_lamp and Wiper_lamp (these output signals were misassigned) - Sliver: Made the way jpeglib.h is included more pretty - Street Smart: Fixed sprite regression - Teenage Mutant Ninja Turtles: Correct visible screen area as per real hardware - Tora Tora: Fixed timer and interrupts. Improved sound (Game now playable). - Ultimate Mortal Kombat 3: We're currently using version 1.0 roms for sound for all sets, see MT00751. Marked sound roms bad dump in Ultimate Mortal Kombat 3 (rev 1.2) and clone (rev 1.1). - Input port . Added flag to mark input fields as optional . Don't crash on input modules not derived from wininput_module, like "none" (input\input_windows.cpp) . Added ioport tagged_list to unordered_map . A few minor input fixes and cleanups: Input modules exit() is called twice. Removed the unnecessary input_exit() method. Removed unnecessary pointer init in handle_input_event and should_hide_mouse. When registering event callbacks in SDL, don't assume the SDL enum values are int-sized. - Dipswitch fixes in atlantis.cpp, dlair.cpp, liberate.cpp, mario.cpp, metlfrzr.cpp and poker72.cpp - Fixed rom names in 1943.cpp, aristmk5.cpp, aristmk6.cpp, esh.cpp, galivan.cpp, himesiki.cpp, majorpkr.cpp, n8080.cpp and naomi.cpp - Renamed (50lionr) to (50lionrr), (50lionsa) to (50lionsm), (5draga) to (5drag), (5dragons) to (5dragsp), (adonis6) to (adonisa6), (adonise) to (adonisu), (adonishl) to (adonisce), (aftrhrs) to (afterhrs), (alchemya) to (alchemy), (amzqnar) to (amzqueen), (amzteml) to (amztempl), (antcleo) to (antcleom), (arbngts) to (arabnga6u), (arbnigar) to (arabnga6), (badbog) to (baddog), (bigbenpj) to (bigben), (bigredjp) to (bigred2), (birredar) to (bigred), (bmbgs) to (bmbugs), (bobdolu1) to (bobdolly), (bootscot) to (bootsctn), (bootsctn) to (bootsctnu), (brazilar) to (brazil), (bucanar) to (bucaneer), (buffalar) to (buffalo), (buffaloa) to (buffalou), (bumblbug) to (bumblbugu), (bumbugs) to (bumblbug), (butdeli) to (buttdeli), (callwlar) to (callwld), (canary2) to (canaryrc), (cashcham) to (cashchamu), (cashchm) to (cashcham), (cashcroa) to (cashcra5), (chickena) to (chickna5u), (chkmatar) to (checkma5), (chkrun) to (chickna5), (choysun) to (csdm), (cmpacman) to (cmpacmana), (coralr2v) to (coralrc2), (crspru) to (cryspriu), (crystals) to (crysprim), (cshcat) to (cashcat), (cuckoo) to (cuckoou), (cuckooa) to (cuckoo), (dangar) to (dangara), (dangar2) to (dangarb), (dangarb) to (dangarbt), (davedrag) to (5dragce), (dblagus) to (dblagent), (deltqn) to (deltaqn), (dinoaris) to (dinosa6), (dltbel) to (deltabel), (dmddove) to (diamdove), (dmdtouch) to (dimtouch), (dmneye2) to (dimeye), (dmneyeus) to (dimeyece), (dolphtra) to (dolphntra), (dolphtre) to (dolphntru), (dolptra) to (dolphntrb), (doubdolp) to (dbldolph), (drawpka) to (multidrw), (drfz6us) to (deepfrzu), (drgnlrd) to (drgnlord), (dstblom) to (dstbloom), (dyjack) to (dynajack), (eaglst2) to (estrike), (efcashex) to (efce), (eggsrich) to (eggsrccm), (eldora) to (eldorda5), (enchfore) to (eforsta5u), (enchfrst) to (eforsta5), (encspela) to (encspell), (ent6r) to (enchantr), (firedan) to (firednc), (flamolusa) to (flamolce), (flamoly2) to (flamoljc), (fortela) to (fortellr), (geishaar) to (geishaa6), (geishanz) to (geisha), (gldincas) to (goldincu), (gnomatw) to (gnomeatw), (goapear) to (goape), (goldarjp) to (goldarch), (goldphm) to (qnilemax), (goldprmd) to (goldpyr), (goldra) to (goldenra), (heartgar) to (heartgld), (highnoar) to (highnoon), (hlntry) to (hlntroy), (hlsunmon) to (sunmonbb), (houhear) to (househrt), (hrttrhb) to (swhr2), (incanz) to (incasunnz), (incsun) to (incasun), (indce) to (indremce), (inddrma) to (indream), (indgcm) to (indgldcm), (indiandr) to (indrema5), (indianmm) to (indremmm), (indll) to (indremll), (indsc) to (indrem2c), (indsrp) to (drmcatch), (jailbrar) to (jailbrk), (jewelunc) to (jewelcm), (koalmnt) to (koalama6), (kookabk) to (kookabuk), (loconz) to (locolootnz), (lonwolf) to (lonewolf), (luck88) to (lucky88), (luigball) to (luigibal), (lw3_207) to (lw3_207c), (magicmsk) to (magimask), (magicmska) to (magimaska), (margmgc) to (marmagic), (marmagic) to (marmagicu), (mgctouc) to (magtcha5), (mgforst) to (magforst), (mgmerm) to (magmerm), (monmous) to (monmouse), (moutmon) to (mountmon), (mtreenz) to (montree), (mysteyec) to (mysteycmu), (mystgrd) to (mystgard), (oscarar) to (oscara5), (pariligh) to (parislgt), (parilius) to (parislgtu), (pcfava) to (pcfavor), (pcnewz) to (pcgold), (pelpetus) to (pelipeteu), (pengpays) to (pengpayu), (penpay20) to (pengpaya), (penpaya) to (pengpayb), (penpayus) to (pengpyce), (petshopa) to (petshop), (pharpor) to (pharfor), (piratar) to (pirata6), (pompeiar) to (pompeia6), (pompus2) to (pompeia6u), (prophar) to (prophecy), (prtygras) to (partygrsa), (przfigha) to (przfight), (pwsp1) to (pwsuper), (qncsh) to (qcash), (qnile) to (qnilea6), (qnilecj) to (qnilejc), (qonilea) to (qnile), (qonileb) to (qnilea), (qotn) to (qnileb), (qotna) to (qnileu), (rdtripus) to (roadtrip), (redbarar) to (redbara6), (retsam20) to (retrsama), (retsam5) to (retrsamb), (rpatrol) to (rpatrola), (rubmgc) to (rubymag), (rumbrel) to (rumbreel), (rwarhl) to (rainwrce), (sbucks3) to (sbuk3), (scatmg2) to (scatmag2), (shamnmg) to (shamnmgu), (sharmnm) to (shamnmg), (sidebs2) to (sidebs2u), (sidebsja) to (sidebsjb), (silgolar) to (silgola6), (silkrdus) to (silkrda6), (skydncra) to (skydnca6), (smtmar) to (smtma6), (ssf2tbj) to (ssf2tbj1), (stardrfu) to (stardrftu), (sunmon2) to (sunmoon), (supbuk2) to (sbuk2), (swheart2) to (swhr2u), (swhr2us) to (swhr2a6), (swthrt2v) to (swhr2v), (thaiprar) to (thaiprnc), (thaiprin) to (thaiprncm), (thgamblr) to (gambler), (tigresar) to (tigress), (tiktoru) to (tiktorch), (timwolfu) to (timbwolf), (topshtar) to (topshta6), (torpdice) to (toprdice), (tretrva) to (trstrove), (triptrea) to (tritreat), (trjhrs) to (trojhors), (trkinus) to (trsking), (turtrea) to (turtreas), (venicus) to (venice), (wheregld) to (wheregldm), (whlcshus) to (whalecshu), (whlcshusa) to (whalecshua), (whtwtr) to (whtwater), (wildways) to (wwaysm), (wingolus) to (wingoly), (witgold) to (wheregld), (witgoldd) to (wheregldsp), (wldafus) to (wldafr), (wldamz1) to (wamazon), (wldamz3) to (wamazona), (wldcatsa) to (wldcata6), (wldcoug) to (wcougar), (wldcougr) to (wcougaru), (wldpan2) to (wldpanda), (wldpntus) to (wldpanth), (wldstal2) to (wldstall), (wldthg) to (wthing), (wwaysar) to (wways), (wwaysll) to (wzwaysll), (zorrojp) to (zorroa6) and (zorrous) to (zorroa6u) - Description changes of Adonis - Cash Express (0201005V, NSW/ACT), Adonis - Cash Express (0201005V, NSW/ACT), Adonis (BHG1508, US), All the King's Gold (0152152, US), Bad Dog Poker (0200428V, NSW/ACT), Bad Dog Poker (0200428V, NSW/ACT), Black Panther (0200818V, Victoria), Boot Scootin' (0100812V, NSW/ACT), Boot Scootin' (0100812V, NSW/ACT), Boot Scootin' (GHG1012-02, US), Buena Suerte (Spanish, set 15, Protel PCB), Buffalo (0252636, US), Bumble Bugs (0200510V, NSW/ACT), Bumble Bugs (0200510V, NSW/ACT), Bumble Bugs (CHG0479-03, US), Butterfly Delight (0200143V, NSW/ACT), Butterfly Delight (0200143V, NSW/ACT), Cash Cat (0300863V, New Zealand), Cash Cat (0300863V, New Zealand), Cash Chameleon (0100438V, NSW/ACT), Cash Chameleon (0100438V, NSW/ACT), Cash Chameleon (DHG4078-99, US), Cash Crop (0300467V, NSW/ACT), Cash Crop (0300467V, NSW/ACT), Chance in Hell - Li'l Lucy (0251125, US), Checkmate (01J00681, NSW/ACT), Checkmate (01J00681, NSW/ACT), Chicken (0100351V, NSW/ACT), Chicken (0100351V, NSW/ACT), Chicken (RHG0730-03, US), Chihiro Firmware Update For Compact Flash Box (4.01) (GDX-0024A), Coral Riches II (0100919V, NSW/ACT), Coral Riches II (0100919V, NSW/ACT), Cuckoo (0200753V, NSW/ACT), Cuckoo (0200753V, NSW/ACT), Cuckoo (CHG1195, US), Dengen Tenshi Taisen Janshi Shangri-la (Build 0728), Desert Bloom (0200111V, NSW/ACT), Desert Bloom (0200111V, NSW/ACT), Diamond Dove (0101018V, NSW/ACT), Diamond Dove (0101018V, NSW/ACT), Diamond Touch (0400433V, NSW/ACT), Dolphin Treasure (0100388V, NSW/ACT), Dolphin Treasure (FHG4077-02, US), Dynamite Jack (01J00081, NSW/ACT), Dynamite Jack (01J00081, NSW/ACT), El Dorado (0100652V, NSW/ACT), El Dorado (0100652V, NSW/ACT), Enchanted Forest (0400122V, NSW/ACT), Enchanted Forest (JHG0415-03, US), Fantasy (Germany), Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights), Fortune Teller (01J00131, NSW/ACT), Fortune Teller (01J00131, NSW/ACT), Genie Magic (0200894V, NSW/ACT), Gnome Around The World (0100767V, NSW/ACT), Golden Pyramids (AHG1205-03, US), Golden Pyramids (AHG1206-99, US), Golden Ra (0101164V, NSW/ACT), Golden Ra (0101164V, NSW/ACT), Hole Land (Japan), Hole Land (Spain), Inca Sun (0100872V, NSW/ACT), Inca Sun (0100872V, NSW/ACT), Inca Sun (0101108V, New Zealand), Inca Sun (0101108V, New Zealand), Indian Dreaming (0100845V, NSW/ACT), Karate Blazers (bootleg with Street Smart sound hardware), King Galah (0200536V, NSW/ACT), Koala Mint (CHG1573, US), Kooka Bucks (0100677V, NSW/ACT), Kooka Bucks (0100677V, NSW/ACT), Loco Loot (0100472V, NSW/ACT), Loco Loot (0100472V, NSW/ACT), Loco Loot (0600725V, New Zealand), Loco Loot (0600725V, New Zealand), Lone Wolf (0100587V, NSW/ACT), Lone Wolf (0100587V, NSW/ACT), Lucky Poker (bootleg/hack of Major Poker), Magic Forest (0151139, US), Magic Garden (AHG1211-99, US), Magic Mask (AHG1548, US), Magic Mask (DHG1309, US), Magic Touch (0200455V, NSW/ACT), Magic Touch (0200455V, NSW/ACT), Margarita Magic (EHG1559, US), Marvel Vs. Capcom 2 New Age of Heroes (Export, Korea) (Rev A), Metal Freezer (Japan), Mine, Mine, Mine (VHG0416-99, US), Money Mouse (0400469V, NSW/ACT), Money Tree (0201397V, New Zealand), Money Tree (0201397V, New Zealand), Mountain Money (0100294V, NSW/ACT), Mountain Money (0100294V, NSW/ACT), Multidraw - Free Games (0200956V, NSW/ACT), Multidraw - Free Games (0200956V, NSW/ACT), Mystic Garden (0100275V, NSW/ACT), Mystic Garden (0100275V, NSW/ACT), Naomi DIMM Firmware Update for CF-BOX (4.01) (GDS-0042A), Naomi DIMM Firmware Updater (2.13) (GDS-0023A), Naomi DIMM Firmware Updater (2.17) (GDS-0023C), Naomi DIMM Firmware Updater (3.17) (GDS-0023E), Orchid Mist (0200849V, NSW/ACT), Oscar (0200348V, NSW/ACT), Oscar (0200348V, NSW/ACT), Panther Magic (0101046V, NSW/ACT), Party Gras (AHG1567, US), Party Gras (BHG1284, US), Peacock Flutter (02J00011, NSW/ACT), Penguin Pays (0200357V, NSW/ACT), Penguin Pays (0200357V, NSW/ACT), Penguin Pays (0200359V, NSW/ACT), Penguin Pays (0200359V, NSW/ACT), Penguin Pays (0200460V, NSW/ACT), Penguin Pays (0200460V, NSW/ACT), Penguin Pays (BHI0417-03, US), Pet Shop (0100679V, NSW/ACT), Prize Fight (0100299V, NSW/ACT), Prize Fight (0100299V, NSW/ACT), Queen of the Nile - Maximillions (0401072V, NSW/ACT), Queen of the Nile - Maximillions (0401072V, NSW/ACT), Queen of the Nile (0100439V, NSW/ACT), Queen of the Nile (0100439V, NSW/ACT), Queen of the Nile (0300440V, NSW/ACT), Queen of the Nile (0300440V, NSW/ACT), Queen of the Nile (GHG4091-02, US), Queens of Cash (0100706V, NSW/ACT), Queens of Cash (0100706V, NSW/ACT), Rainbow Warriors - Cash Express (0101332V, NSW/ACT), Rainbow Warriors - Cash Express (0101332V, NSW/ACT), Reelin-n-Rockin (0100779V, NSW/ACT), Return of the Samurai (0200506V, NSW/ACT), Return of the Samurai (0200506V, NSW/ACT), Return of the Samurai (0200549V, NSW/ACT), Return of the Samurai (0200549V, NSW/ACT), Return of the Samurai (0400549V, NSW/ACT), Return of the Samurai (0400549V, NSW/ACT), River Patrol (bootleg set 1), River Patrol (bootleg set 2), Space Invaders (CV Version, larger roms), Sumo Spins (0200606V, NSW/ACT), Super Bucks II (0400501V, NSW/ACT), Super Bucks II (0400501V, NSW/ACT), Super Bucks III (0200711V, NSW/ACT), Super Bucks III (0200711V, NSW/ACT), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 2), Sweethearts II (0200004V, NSW/ACT), Sweethearts II (0200004V, NSW/ACT), Sweethearts II (PHG0742-02, US), The Chariot Challenge (0100787V, NSW/ACT), The Gambler (EHG0916-02, US), Top Banana (0100550V, NSW/ACT), Treasure Trove (01J00161, NSW/ACT), Treasure Trove (01J00161, NSW/ACT), Triforce DIMM Updater (3.17) (GDT-0011), Triforce Firmware Update For Compact Flash Box (4.01) (GDT-0022A), Triple Treat (0201692V, NSW/ACT), Triple Treat (0201692V, NSW/ACT), Trojan Horse (01J00851, NSW/ACT), Trojan Horse (01J00851, NSW/ACT), Tropical Delight (PHG0625-02, US), Unicorn Dreaming (0100791V, NSW/ACT), Wicked Winnings II - Power Pay (10214011, NSW/ACT), Wild Amazon (0200285V, NSW/ACT), Wild Amazon (0200285V, NSW/ACT), Wild Amazon (0200507V, NSW/ACT), Wild Amazon (0200507V, NSW/ACT), Wild Bill (0100297V, NSW/ACT), Wild Cougar (0100167V, NSW/ACT), Wild Cougar (0100167V, NSW/ACT), Wild Cougar (NHG0296-04, US), Wild Thing (0101158V, NSW/ACT), Wild Thing (0101158V, NSW/ACT) and Wings Over Olympus (0252529, US) - MAME . VIDEO RENDERING SYSTEM . HLSL . Added simple procedural texture for vectors with rounded line ends and beam smoothness . Added optional -vector_beam_smooth option . Removed -antialias option, antialiasing is now always applied, except for plain D3D. . Fixed scanlines if the screen output is less than twice the size of the host source. . Small shader corrections . BGFX . Fixed debug crash with BGFX screen chains (chains\hlsl.json, render\bgfx\chain.cpp) (ID 06195) . Fixed crash when using pillarbox shaders. Fixed potential crash when using pillarbox default.lay but not specifying 3 shader chains. . Vector line width is now applied by BGFX . Rearrange shaderc arguments (bgfx\shaders\shader.mk) . Fixed -resolution and -switchres (modules\osdwindow.h, sdl\window.cpp and osd\windows\window.cpp). This fixes MAME can't set window size anymore (eg. -window -resolution 640x480) (ID 06196) . Fixed offset of vector lines and clipping rectangle when vector primitives are prepared to be rendered into a texture (HLSL) instead of directly on the screen (GDI, D3D) (emu\render.cpp) (ID 06222). . Removed dead D3D code: Removed not functional vector texture code. Removed unused D3DTOP_MODULATE2X/4X code. Removed unused antialiasing code for UI lines. Removed usage of vector_time_period which does not exist anymore. . Cleanup vector batch in D3D . Introduced dynamic_module (lib\osdlib.h). This is a central cross-platform facility to dynamically bind functions from shared libraries. Updated all OSD modules to use it. Removed Direct3D abstraction layer (d3d\d3d9intf.cpp and d3dintf.h). The calling convention goes inside the brackets of pointers to functions. Allows compiling with MSVC. . Improved doxygen-style comments for some defs in emu\screen.h, thumbs down for the class. . Fixed crash of D3D when sliders menu is openend and resizing the window or switching between window and full screen mode . UI . Moved menu classes into ::ui namesapce . Reduced scope of many symbols . Make ARRAY_LENGTH cause a compile error if used with a pointer/vector . Clean up text input code, move common operations to inline templates . Fixed numerous one-byte buffer overruns . Don't flat-out ignore input beyond the C1 hole . Fixed decoding of SDL text input . More slider cleanup . Changed the backing representation of OPTION_UI from being a string to an enum . Changed UI handlers to be stored as std::function(); implemented old set_handler() on top of this. . Added template implementations of mame_ui_manager::set_handler(), and changed call sites. . Fixed loading info for several software lists (ui\datfile.cpp) . Fixed issue with volume slider likely introduced with ui handler lambda changes . Changed to C++ comments (ui\sliders.cpp) . Fixed not load for some INI files in the category filter. Removed use of strcmp for menu separators. Modernized and cleaned up some part of code. . A little change to device_image_interface::call_display to better decouple UI fronted and image devices . Fixed crash in attempt to use "Configure Machine" from favorites filter . Boot time reduced by ~15% . Make filesel current path clickable . Fixed crash with icons in main list . Miscellaneous text fixes and cleanups. Changed mame_ui_manager::draw_text_box() to use ui::text_layout directly. Fixed incorrect icons refresh. Prevent NaN errors by initializing variable in ui::text_layout. . Using rgb_t::transparent constant (ui\text.h). Fixed a bug in text layout that could cause text_layout::actual_width() to return something higher than what it really was. . Changing maximum width specified in mame_ui_manager::draw_text_box() to allow for the border (ui\ui.cpp) . Added "return to origin point (0,0)" feature to Tilemap Viewer (tied with HOME key) . Fixed a problem with game list when using MS Sans Serif font . PLUGINS . Make pluginspath apply in plugins\boot.lua. This fixes pluginspath option not fully recognized (ID 06221). . Hiscore: Fixed segaxbd.cpp games and improved error. Fixed remaining hiscore parse error. Fixed renamed/duplicated sets. Removed remaining invalid sets. Sort by source file in an effort to make it somewhat maintainable, mark entries not in mame.lst, and add script to do the sorting and comparing. . Cheat: Added share accessors to LUA engine. Search share regions (plugins\cheatfind\init.lua). Don't turn off cheat.script unless on. . MULTI-LANGUAGE . Updated French/Belgian language files . Small update of Italian translation . 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 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. Some drivers, hopefully not many, will fail the gate-guarding bureaucrat trials. Should be easy to fix actually, I worked on the error messages. A full regression test would be welcome. . Handlers on different subunits of the same address with different address masks are now supported (emu\emumem.cpp) . Added tagged_list to unordered_map in emumem. Removed simple_list from emumem. . Use unshifted addrmask (not bytemask) in check_optimize_foo (emu\emumem.cpp) . Fixed some issues in emumem. Note: It's actually a very old bug that was uncovered. Direct access update mistaked the per-handler mask and the global mask. As it happened the per-handler mask was often the global mask, but I made the frontend *way* more agressive w.r.t masks now. So the bug became way more visible. . CHEAT ENGINE . Using std::vector> instead of simple_list in Cheat engine (mame\cheat.cpp) . Fixed most sets in neodriv.hxx crashes if cheats are enabled (ID 06241) . Fixed Mortal Kombat and Mortal Kombat II doesn't start if cheats are enabled (ID 06225) . STATE SAVING . 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. . Take note that this change completely omits POSIX support, simply because I lack a development environment to support it. This will have to be done by someone else. . SOFTWARE LIST . No need for custom allocators (emu\hashfile.cpp and softlist.cpp) . Added PugiXML and used it for hashfile (3rdparty\pugixml\... and emu\hashfile.cpp) . Fixed a mismatched new[]/delete error in util\corealloc.h . Added template/macro for delaring array with equivalent dimensions (osd\osdcomm.h) . Ensure XAudio2 doesn't crash when no sound card present (sound\xaudio2_sound.cpp). Added XAudio2 init time logging. . Fixed network output to include all data (output\network.cpp) . Placed back old output system as module "-output windows" need more things cleaned (modules\output\win32_output.cpp/h and windows\ledutil.cpp) . Fixed handling VIDEO_NONE on windows . Added ROMX_FILL, passing a ROM_SKIP(param_value) will fill and skip just like a ROM_LOAD16_BYTE macro (emu\romload.cpp). . Fixed debugging code in font_dwrite.cpp . Added WINAPI to other needed functions for stdcall calling convention on 32-bit (font\font_dwrite.cpp, input\input_xinput.h, d3d\d3dhlsl.h, drawd3d.cpp and sound\xaudio2_sound.cpp) . Fixed regression in astrocde.cpp (gorf), atari_s1.cpp, galaxian.cpp (amidar and turtles), mcr.cpp, mcr3.cpp, pacman.cpp (8bpm, drivfrcp and porky) and system1.cpp . Validity checking for AM_MASK/AM_MIRROR/AM_SELECT in 8080bw.cpp, unkhorse.cpp and many others . Supply modified time for files in archives (lib\util\un7z.cpp). Introduced util\timeconv.cpp, moved code from un7z.cpp into it, and implemented win_time_point_from_filetime() in terms of it. - SDLMAME . Disable pthreads under Emscripten for now, they aren't actually available unless you compile with experimental settings (osd\osdsync.cpp). . Fixed video mode opengl duplicated in SDL build (modules\lib\osdobj_common.cpp, sdl\sdlmain.cpp and windows\winmain.cpp) . Fixed SDL version of (MESS) ZEXALL . POSIX implementation for new directory read features, cleanup of Windows implementation, return directory handle as smart pointer, fix full build. - Android . Fixed build (_ prefixed names; netlist\nl_setup.h) . Allow full build on Android . Renamed si_status to si_status_val in n64 as si_status is a preprocessor macro on Android . Renamed PAGE_MASK to page_mask in samcoupe to avoid clash with macro (it's a local anyway) . Abuse namespaces to get around the conflict between our x86emit::REG_Rn and Android's ::REG_Rn in DRC . Changed array assignment to double brackets for C++11 and Android compatibility (machine\iteagle_fpga.cpp) . Fixed Android target libSDL2 circular ref. Also rename ANDROID_NDK_ROOT -> ANDROID_NDK_LLVM to point directly to prebuilt host compiler (removes windows only restriction). . 64bit strip, platform version support. Cleanup make targets and configuration rules. Fixed android_ndk_root env test. - MAC OS X: Fixed mouse behavior on OSX - MESS . Floppy . Added logging to formats\fsd_dsk.cpp . Suppress index pulse irq when busy (machine\wd_fdc.cpp). Did bunch of testing, found no regressions but nothing that even enables the index pulse irq other than the (MESS) Rainbow. . Terminal: Fixed color configuration (machine\terminal.cpp) . WD7600 PC chipset: Fixed memory fatalerrors (machine\wd7600.cpp). Restore keyboard/portb subunits handlers. Fixes POST errors - Compiling . 3rdparty . Updated BGFX, BX and GENie . Removed not used libraries (http-parser and lsqlite3) and commented portaudio that will be used but no need for now. . Added PugiXML and used it for hashfile . travis.yml: Moved to QT5. Updated for OSX. . drone.yml . Created .drone.yml (Build configure for https://www.tea-ci.org (fork of Drone CI with Msys2 support)) . Added file for Windows/Docker CI for MSYS2/MingW64 . Updated tea-ci.org settings. 32-bit due to Cygwin 64-bit bug that bites occasionally. Added -validate with output on success. For the secrets, need to update the YAML to enable, the generate the secrets file, containing the hash of this YAML file once tea-ci is updated to support this. . Added irc bot notification for tea-ci. Encrypted file contains secrets generated from tea-ci.org interface. . Fixed channel for irc notifications - no # + example for pacman, should we never need to bring in non-default deps. . Emscripten tweaks (src\main.lua; configuration=asmjs) . Support msbuild from POSIX shell . Preliminary fastbuild support (experimental in GENie) . Added initial ninja support to use add MAKETYPE=ninja to compile command line. Custom build tasks are not yet working. . 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. . Move window_list to osd_common_t . Fixed double hyphen in -pipe (scripts\genie.lua) . Fixed GCC 6.1.1 warnings . Changed simple_list to std::vector (emu\disound.cpp, screen.cpp and sound.cpp) . osd_printf_verbose . Changed error printing to verbose on probe() and error on init() (input\input_winhybrid.cpp and input_xinput.cpp) . Changed two dynamic bind messages to verbose (netdev\pcap.cpp and d3d\d3dhlsl.cpp) . Use osd_printf_verbose instead of popmessage (sound\ay8910.cpp) . m_formatlist is now vector (imagedev\chd_cd.cpp, flopdrv.cpp, floppy.cpp, harddriv.cpp, emu\diimage.cpp) . Improved workaround for missing cbegin/cend in glibstdc++ (util\strformat.h and vecstream.h) - Debugger . Debugger may crash when validating expression with non-existent memory space name (debug\debugcpu.cpp) (ID 06225) (ID 06226) (ID 06227) . ImGui based debugger . Removed scrollbar from memory windows, and let the view itself control what is displays. Use cursors/pageup/pagedown to control the memory window when the view cursor is visible. . Pressing Enter on an empty console input box does a single step . Added auto select-all flag to disassembly and memory expression inputs . Actually map cursor keys so that they can be used in input text widgets . Use ImGui functions to handle view inputs, allows key repeating to work in the debugger views. . Fixed exception when un-collapsing a single window . Adjust key repeat rate a bit . Made debugger keys also use ImGui keypress functions . Make new window shortcut keypresses not repeat . Send character inputs to the debugger view with focus, allows editing in memory views. . Draw a light rectangle around a view if it has focus, gives a visual cue as which view accepts input. . Use IM_COL32 macro . If console window is active, then give console input widget focus. Note that this means that the disassmbly view in the console cannot get focus at all (but separate disasm windows still can). . Added history functionality to debugger console, fixed issue with main views being re-allocated when no extra windows have been created. . When using history, set the cursor position to the end of the text. Don't add command to history if it's the same as the previous one. . Allow debugger console and log window scrollbars to stay at their maximum value if already there . Added 'comlist comment' and 'commit command' to debugger . Major refactoring of debugger core: Eliminate globals/file statics. Removed lots of stuff from global scope. Use std::function for custom command registration. Eliminate some trampolines. Fixed -nodebug crash (emu\video.cpp). . Fixed keyboard shortcus 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). . Added tagged_list to unordered_map for debugger . Removed all usages of tagmap (scripts\src\lib.lua, machine\netlist.h, emu\dislot.cpp, emucore.h, ioport.cpp, machine.cpp, frontend\mame\clifront.cpp, util\tagmap.h, tools\chdman.cpp and UNIDASM.cpp) . Suppress 'no matching space' debugger error when disassembling CPUs without decrypted opcodes (debug\debugcmd.cpp) . Eliminate some unnecessary pass-through methods from debugcpu 0.174 - New games: Crossed Swords 2 (bootleg of CD version), Idol Mahjong Final Romance 2 (Neo-Geo, bootleg of CD version), Iowa Premium Player (2131-21, U5-1) and Metal Freezer - New Working games: Gigas (MC-8123, 317-5002) - New Non-Working games: Flaming 7 (Red, White & Blue 7's + Hollywood Nights) and Master's Golf - New clones: Champion League (v220I, dual program, set 1), Champion League (v220I, dual program, set 2), Extermination (US, Romstar), Hole Land (set 2), House of the Dead 4 (Export) (Rev B), Hyper Street Fighter II: The Anniversary Edition (Japan 040202), The J.League 1994 (Japan, Rev A), Mercenario (Commando bootleg), New Lucky 8 Lines / New Super 8 Lines (W-4, Lucky97 HW), New Lucky 8 Lines / New Super 8 Lines (W-4, Witch Bonus), Pit Fighter (rev 2), Rage of the Dragons (NGH-2640?), Road Burners (ver 1.04), Shogun Warriors (Korea?), Street Fight (Germany - Benelux), Triki Triki (Lover Boy bootleg) and X-Men Vs. Street Fighter (Japan 961023) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Cyber Core (Tourvision PCE bootleg), Down Load (Tourvision PCE bootleg) and Vigilante (Tourvision PCE bootleg) - Removed games: Golden Gong2, Pelican Pete 2 and Star Drifter 2 - New drivers: metlfrzr.cpp and neopcb.cpp - New devices: cthd_prot, generic_latch_16, generic_latch_8, h8_watchdog, kof2k3bl_prot, neocart_fatfury2, neocart_jockeygp, neocart_kof98, neocart_mslugx, neocart_vliner, periph and watchdog - New mame.ini options: Set vector_length_ratio to 0.5 - Dynamic Re-Compiling . Some micro-optimizations and special case for 'and' and 'add' (cpu\drcbex64.cpp) . Added TZCNT instruction (Trailing Zero Count) (cpu\drcbec.cpp) . Added emitters for movdqa/movdqu to cpu\x86emit.h - H8 CPUs: Added DTC, DMA and watchdog. Lot of fixes. - MIPS CPUs: Fixed Golden Tee Fore (mips\mips3drc.cpp) - PowerPC 4xx/6xx CPUs: Fixed PPC targets (video\rgbvmx.h) - V60 CPU: Reverted Clang compile warning fix (MAME 0.169) that broke conditional compile, added var to save_item to prevent that warning. - Sound Interface: Updated drivers to use the new gen_latch.cpp, which should substitute the soundlatch_* methods in driver_device. - CHDMAN: Fixed for code that expects to be able to dereference a pointer that it knows may be null - Data East Custom . Fixed flipscreen in Double Wings and Multi Champ (video\decospr.cpp) . Temp fix to regain speed in Edward Randy and clones (and quite possibly more) by commenting select logerrors that are spammed unmerciful causing extreme performance degradation (machine\deco146.cpp). . Runtime tag lookup reduction (includes\deco_mlc.h and video\deco_mlc.cpp) - Discrete Netlist . Converted most subdevices to unique_ptr. This is a temporary measure until the device initialisation is moved into the constructor. Started converting constructors of devices to be passed name and netlist. . Implemented 7402, 7404, 7408, 7410, 7411, 7420, 7425, 7427, 7430, 7432, 7437 and 7486 as macro device . Removed nld_signal.h since netlist devices no longer use it . Some minor changes towards C++11 . Simplify object model by removing default_logic_family() . Added Mario Bros. to MAMENL target (mame\nl.lst) . Renamed connect_direct to connect_post_start to reflect usage . Align object registration syntax. A step towards late creation of devices. . Code simplification. Don't include netlist name in device names (netlist\nl_setup.cpp). . Devices are now created after the netlist was parsed. This enables us going forward to move everything in start() into the constructor and get a much cleaner object model. . Some use of share_ptr to ease memory management . More automatic memory handling . Continuing work to move object initialization from start to constructor. Removed family_t. All of this can be determined at runtime from object as well. As part of this, the "template" to write devices has changed. Converted a number of devices to use the new template. . Improved memory handling in factories. More memory timebombs removed. . All netlist devices now follow new syntax. Removed dead code. All sub devices are now forced to be initialized in the constructor. Device setup now completely in constructor. Removed start call. - HD63484 video: Converted Real Puncher (taito_b.cpp) to use the modern HD63484 device - MC146818 RTC: Fixed irqs - PCI-IDE controller: New generic PCI IDE controller. Fixed address map range for BAR config (machine\pci-ide.cpp) - PowerVR2 video: UV clamp/flip (naomi.cpp and segasp.cpp) - TMS9927 video: Added scrolling to (MESS) ITT3030 - Voodoo GFX . Prep work for GPU acceleration . Seattle PCI: Added default PCI BAR locations (video\voodoo_pci.cpp). Added DMA control and proper PCI address mapping to machine\gt64xxx.cpp. New generic PCI IDE controller (machine\pci-ide.cpp). . Stopped blocking of non-fifo'd register writes (video\voodoo.cpp). Added PCI stall functions (machine\gt64xxx.cpp). . Fixed up PCI VGA legacy register mapping - aristmk6.cpp: Added proper descriptions to most sets and removed duplicated sets Golden Gong2, Pelican Pete 2 and Star Drifter 2 - astrafr.cpp: Fixed crash/exception at initialization in most sets (ID 06206) - atlantis.cpp and iteagle.cpp . Fixed Golden Tee Fore and Skins Game (1.06) (mips\mips3drc.cpp). This fixes palette changes when using machines with MIPS DRC in most ITEagle sets (ID 06190). . NEC VRC4373: Moved DMA transfer to separate timed process. Changed NEC VRC4373 to using attotime::never for timer disabling. Added correct PCI config map. . Switched ITEagle to using generic IDE PCI device . Cleaned up EEPROM initialization and RTC names (machine\iteagle_fpga.cpp) - bankp.cpp . Improved flip screen support (see MT04899) . Updated some inputs/dips according to the manual/schmatics. - chihiro.cpp . 3D accelerator update, better support for antialiasing/supersampling . Number of vertex parameters is 13 not 12 (video\chihiro.cpp) . Define USB_HACK_ENABLED works again, OutRun 2 boots now (machine\xbox.cpp) . Since clipping is not present yet, if a trangle has at least a vertex where the w component is <= 0, don't draw it, this makes OutRun 2 more watchable. . Fixed compilation when LOG_NV2A is defined - deco_mlc.cpp: Runtime tag lookup reduction (includes\deco_mlc.h and video\deco_mlc.cpp) - decocass.cpp: Fixed positioning of object sprite. This stops the headlight in Highway Chase from bouncing all over the screen and makes the shadow stick to Skater's toe and fixed player shadow is off-center at times (ID 04973). Reference videos show that color is still 100% wrong. - goldstar.cpp: Driver init cleanups. Added Flaming 7 notes and gamelist. - legionna.cpp and raiden2.cpp . Input documentation and COP tweaks based on M68000 and V30 code . grainbow: Correct score and credits display . heatbrl: Suppress "divide by zero?" message since code actually checks for it (no, still not working) . legionna: 2P inputs now designated as such . zeroteam: Hook up COP PRNG (definitely used in this game) - m72.cpp: Hardware isn't a stereo boardset - macs.cpp: Fixed DMA transfers in kisekaem, kisekaeh and cultname. - megatech.cpp: Updated driver to use fixed slot config - model1.cpp: Some modernization and cleanup. Stat making video\model1.cpp use glm as necessary. - model3.cpp: Updated documentation based on the Real3D SDK (thanks Bart) - naomi.cpp . Redumped Atomiswave BIOS, confirmed good and added information. . Clarified pinout of AW BIOS. NAOMI2 jumpers docs. . Dumped 'Initial D Arcade Stage' card reader-printer firmware . UV clamp/flip (video\powervr2.cpp) . Fixed crash in KOF XI, now boots to title. - neodriv.hxx . Huge clean up of the cartslot code in order to better exploit slot devices . Moved cart-specific components to the carts itself removing the fake protection devices from the main system, since they never belonged there. . Removed hacky rom region destruction/construction when a new cart is inserted, replacing it with proper bank pointers to the carts (except for ymsnd and ymsnd.deltat region which will require modernization of the ym devices). . Started re-organization of bootleg boards emulation, so to reduce the need of collapsing everything into a single cart type with multiple protection devices, more work is needed. . Added information about Japanese titles and release dates to the software list and aligned the list to the driver. . Some cleanups and gaining back some performance in most carts. Optimized sprites data now lives only in the sprite device. Got rid of neogeo_helper as a result. . Made the transition between different carts in the multislot driver smooth again. When launching game-specific drivers, sprites are in any case optimized only once before emulation starts, so that yesterday changes made no difference, but we care about 6-slot NeoGeo too. . Sync neogeo list to driver and clarified the bootleg nature of final - neopcb.cpp: Moved to a separate source file the emulation for JAMMA PCB versions of a few Neo-Geo games, since they don't have a cartslot. - nss.cpp, sfcbox.cpp and snesb.cpp: Moved around STAT78 PAL variable (video\snes_ppu.cpp and machine\snes.cpp) - psikyosh.cpp: PsikyoSH uses bitmap_rgb32, but should really use argb32, but that requires overloading lots of drawgfx for this one driver. Removed assert was wrong and unavoidable. Fixed boundary condition tripping in Daraku Tenshi (ID 03753). - segasp.cpp: UV clamp/flip (video\powervr2.cpp) - suprnova.cpp: Added the Korean modbios - tourvis.cpp . Updated game list. Added some extra notes & known game IDs. Correct SW1 dip 8. Correct 1P button order. . Added Cyber Core, Down Load and Vigilante to the Tourvision games list - Double Wings: Fixed flipscreen offset with split sprites (ID 04912) - The End: Made clone 'Take Off (bootleg of The End)' boot. Sound system needs work (only 1 AY8912). - Gigas: Dumped missing program rom (Game now playable) - Hole Land: Hooked up the SP0256 speech in Hole Land. Enabled SP0256 to resolve missing speech, verified and measures all the clocks and updated comments at the top re: remaining priority issue (ID 06218). - Jail Break: Hooked up coin counters and fixed flipscreen offset (ID 04935) - Lupin III: Fixed multiple regressions in clone (set 2) - Multi Champ: Fixed flipscreen (ID 04920) - The Ninja Warriors: Fixed credit count is wrong on coin slot 2 in clone (US) (ID 06169) - Real Puncher: Converted game to use the modern HD63484 device - Shackled: Fixed MAME crashes when you enter a secret door in area 12 of Shackled and clone Breywood (see MT06208) - Sonik Fighter: Decrypted the program and proper inputs. Added technical notes. Flagged as MACHINE_IMPERFECT_COLORS, due to can't find a proper way to setup the palette. Even when the attract is working properly, the game accepts coins, has sound and all inputs are mapped... the game is still not working. Seems that is expecting something to start a game. - Space Encounters: Improved trench colors and simulate screen flash effect (ID 02826) - Stadium Hero '96: Fixed regression (machine\deco146.cpp) - Vector games: Moved clipping to video\avgdvg.cpp, the only user. Simplify video\vector.cpp and avgdvg.cpp. This fixes missing left graphics line from the boarder in Eliminator and Zektor (ID 01617). - Vicious Circle: Fixed regression (not booting) - Wangan Midnight Maximum Tune: Dumped card reader-printer firmware - Input port . Completely move mouse hit testing down into the UI input module. This reduces some dependencies. . Never return a null pointer from ioport_field::name() to prevent potential crashes. All anonymous inputs are classified as INPUT_CLASS_INTERNAL, so several frontend functions now check type_class instead. Correct a couple of typos. . Correct joystick polling methods in DirectInput8 to better support older joysticks which previously only worked with DirectInput7. This fixes joysticks using PPJOY driver do not work anymore (ID 05932) and MAME fails to accept input from XBCD-supported joysticks with DirectInput 8 (ID 06151). - Dipswitch fixes in legionna.cpp, ninjaw.cpp, skylncr.cpp and tourvis.cpp - Fixed rom names in 1942.cpp, freekick.cpp, holeland.cpp, neodriv.hxx and stfight.cpp - Renamed (hotd4) to (hotd4a), (hsf2j) to (hsf2j1), (jleague) to (jleagueo), (mosyougi) to (moshougi), (roadburn) to (roadburn1), (theendb) to (takeoff), (xmvsfjr2) to (xmvsfjr3), (xmvsfjr1) to (xmvsfjr2) and (xmvsfj) to (xmvsfjr1) - Description changes of 100 Lions (10219211, NSW/ACT), 3 Count Bout / Fire Suplex (NGM-043 ~ NGH-043), 5 Dragons - Cash Express (0152309, US), 5 Dragons (20161011, NSW/ACT), 5 Dragons (20161011, NSW/ACT, Show Program), 5 Koi - Power Pay (10250711, NSW/ACT), 50 Lions - Roaring Riches (20301311, NSW/ACT), Adonis (0151178, US), African Dusk - Mr. Cashman (20006711, NSW/ACT), After Hours (0251071, US), Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008 ~ ADH-008), Alchemy (1J009611, NSW/ACT), All The King's Gold (0152152, US), Alpha Mission II / ASO II - Last Guardian (NGM-007 ~ NGH-007), Amazon Queen (10005511, NSW/ACT), Amazon Temple (10299811, NSW/ACT), Andro Dunos (NGM-049 ~ NGH-049), Apollo Coffee (0151105, US), Arabian Nights (0151356, US), Arabian Nights (2J008211, NSW/ACT), Arctic Wins - Mr. Cashman (0151065, US), Arishinko (0151087, US), Art of Fighting / Ryuuko no Ken (NGM-044 ~ NGH-044), Asian Princess (0352502, US), Bakatonosama Mahjong Manyuuki (MOM-002 ~ MOH-002), Beaver Bucks (20255111, NSW/ACT), Big Ben (30126911, NSW/ACT), Big Hearted (10000511, NSW/ACT), Big Red (2J009211, NSW/ACT), Big Red 2 (5J011311, NSW/ACT), Black Brumby (1J009111, NSW/ACT), Black Mustang (0152584, US), Blue's Journey / Raguy (ALM-001 ~ ALH-001), Blue Tiger (20259511, NSW/ACT), Bob and Dolly (0352298, US), Brazil (20180311, NSW/ACT), Buccaneer (10173011, NSW/ACT), Buffalo (10217811, NSW/ACT), Bumble Bugs (0351180, US), Burning Fight (NGH-018, US), Burning Fight (NGM-018 ~ NGH-018), Bushranger (10006111, NSW/ACT), Cactus Corral (10237711, NSW/ACT), Call of the Wild (10256611, NSW/ACT), Calypso King (20197111, NSW/ACT), Canary Riches (10218211, NSW/ACT), Capcom Vs. SNK Millennium Fight 2000 (Rev A), Capcom Vs. SNK Millennium Fight 2000 (Rev C), Capcom Vs. SNK Millennium Fight 2000, Cashman Tonight (30194711, NSW/ACT), Champion League (v220I, Lattine), Champion League (v220I, Poker), Chance In Hell - Li'l Lucy (0251125, US), Choutetsu Brikin'ger - Iron Clad (prototype), Choutetsu Brikin'ger - Iron Clad (prototype, bootleg), Choy Sun Doa - Cash Express (30149511, NSW/ACT), Choy Sun Doa (10104011, NSW/ACT), Choy Sun Returns (20212211, NSW/ACT), Corrida de Toros (30178311, NSW/ACT), Cosmic Smash (Rev A), Cosmic Smash, Crazy Taxi, Crossed Swords (ALM-002 ~ ALH-002), Crystal Springs (0352557, US), Crystal Springs (10144411, NSW/ACT), Death Crimson OX, Deep Freeze (0154081, US), Deep Freeze (10282311, NSW/ACT), Delta Belle (0252532, US), Delta Queen (20185211, NSW/ACT), Dengen Tenshi Taisen Janshi Shangri-la, Diamond Eyes - Cash Express (0152039, US), Diamond Eyes (0251312, US), Diamonds Forever (10105011, NSW/ACT), Dinosaur (10118811, NSW/ACT), Double Agent (0152082, US), Double Dolphins (20000211, NSW/ACT), Dragon Lord (10173511, NSW/ACT), Dragon Magic (2J015711, NSW/ACT), Dream Catcher (10126721, NSW/ACT), Dream of the Red Chamber (10273811, NSW/ACT), Eagle Rock - Cash Express (0151126, US), Eagle Strike (40289711, NSW/ACT), Easter Island - Cash Express (0151117, US), Eggstreme Riches - Mr. Cashman (0351149, US), Eight Man (NGM-025 ~ NGH-025), Enchanted Forest - Cash Express (0151084, US), Enchanted Spell (10257011, NSW/ACT), Enchantress (20000711, NSW/ACT), Extermination (US, World Games), Eyes of the Tiger (10002011, NSW/ACT), Fatal Fury - King of Fighters / Garou Densetsu - Shukumei no Tatakai (NGM-033 ~ NGH-033), Fatal Fury 2 / Garou Densetsu 2 - Arata-naru Tatakai (NGM-047 ~ NGH-047), Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - Haruka-naru Tatakai (NGM-069 ~ NGH-069), Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 1), Fatal Fury Special / Garou Densetsu Special (NGM-058 ~ NGH-058, set 2), Ferrari F355 Challenge (deluxe, no link), Ferrari F355 Challenge (twin/deluxe), Ferrari F355 Challenge 2 - International Course Edition (twin/deluxe), Fire Dancer (20184911, NSW/ACT), Flame of Olympus - Cash Express (0351025, US), Flame of Olympus - Jackpot Carnival (0251048, US), Follow the Stars (20001411, NSW/ACT), Football Frenzy (NGM-034 ~ NGH-034), Fortune of Athena (10248611, NSW/ACT), Frog Wild 2 (0251114, US), Gamblin' Jack (20197211, NSW/ACT), Garou - Mark of the Wolves (NGM-2530 ~ NGH-2530), Geisha (10000811, NSW/ACT), Generic 16-bit latch, Ghost Pilots (NGH-020, US), Ghost Pilots (NGM-020 ~ NGH-020), Giant Gram 2000, Giant Gram: All Japan Pro Wrestling 2, Giga Wing 2, Go Ape (10006211, NSW/ACT), Go For Green (10003411, NSW/ACT), Golden Archer (10197411, NSW/ACT), Golden Incas (0252533, US), Golden Incas (10174011, NSW/ACT, Show Program), Golden Pyramids Special Edition - Maximillions (10130811, NSW/ACT), Golden Samurai (10247811, NSW/ACT), Grizzly (10214711, NSW/ACT), Heart of Gold (20169511, NSW/ACT), Heart of Vegas (10232911, NSW/ACT), Heavy Metal Geomatrix (Rev B), Helen of Troy (0151336, US), High Noon (20004111, NSW/ACT), Hollywood Dreams (10100511, NSW/ACT), House of Hearts (10200311, NSW/ACT), House of the Dead 2 (USA), House of the Dead 2, House of the Dead 4 (Export) (Rev A), Inca Chief (20190711, NSW/ACT), Indian Dreaming - Cash Express (20109411, NSW/ACT), Indian Dreaming - Lady Luck (20151911, NSW/ACT), Indian Dreaming (10004211, NSW/ACT), Indian Dreaming 2nd Chance (10150611, NSW/ACT), Indian Gold - Mr. Cashman (10102511, NSW/ACT), Indian Princess (10174111, NSW/ACT), Iowa Premium Player (2131-21, U5-1), Jailbreak (10125611, NSW/ACT), Jambo! Safari (Rev A), Janshin Densetsu - Quest of Jongmaster, Jewel of the Enchantress - Mr. Cashman (0151051, US), King Neptune (20189111, NSW/ACT), King of the Monsters 2 - The Next Thing (NGM-039 ~ NGH-039), King of the Nile (20106321, NSW/ACT)' and clone (set 2) to ', King of the Nile (30106331, NSW/ACT), Koala Mint (30001011, NSW/ACT), Kohinoor (10136711, NSW/ACT), League Bowling (NGM-019 ~ NGH-019), Let's Go Fish'n (10220111, NSW/ACT), Let 'em Roll (0151115, US), Line King (0252534, US), Lord Leopard (30111211, NSW/ACT), Louie's Gold - Mr. Cashman (20006911, NSW/ACT), Love Stuck (0152583, US), Lucky 88 (10241411, NSW/ACT), Luigi's Ball (10235411, NSW/ACT), Magic Mermaid (0251331, US), Mahjong Kyo Retsuden (NGM-004 ~ NGH-004), Manic Panic Ghosts! (USA), Marvel Vs. Capcom 2 New Age of Heroes (Export, Rev A), Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660 ~ NGH-2660), Metal Slug 2 - Super Vehicle-001/II (NGM-2410 ~ NGH-2410), Metal Slug X - Super Vehicle-001 (NGM-2500 ~ NGH-2500), Meteor Storm (0152162, US), Milkin' It (10251911, NSW/ACT), Minasan no Okagesamadesu! Dai Sugoroku Taikai (MOM-001 ~ MOH-001), Miss Kitty (10216611, NSW/ACT), Money Tree (10001211, NSW/ACT), Moonlight Waltz (10227611, NSW/ACT), More Chilli (20248711, NSW/ACT), Mr Woo (0252599, US), Mutation Nation (NGM-014 ~ NGH-014), Mystic Arrow (0151009, US), Mystic Eyes - Mr. Cashman (0251024, US), Mystic Eyes - Mr. Cashman (10008111, NSW/ACT), Mystic Mermaid (1J008711, NSW/ACT), NAM-1975 (NGM-001 ~ NGH-001), Naomi Ferrari F355 Challenge (twin/deluxe) Bios, Neo Geo Bangbead CMC42 Cart, Neo Geo Bootleg Protection(s), Neo Geo Cartridge Slot, Neo Geo CMC42 & CMC50 Protection, Neo Geo CTHD 2003 Cart, Neo Geo CTHD 2003 Sp Alt Cart, Neo Geo CTHD 2003 Sp Cart, Neo Geo Fatal Fury 2 Protection, Neo Geo Ganryu CMC42 Cart, Neo Geo Garou AES SMA Cart, Neo Geo Garou Bootleg Cart, Neo Geo Garou SMA Cart, Neo Geo King of Gladiators Bootleg Cart, Neo Geo KOF 10th Ann Bootleg Cart, Neo Geo KOF 10th Ann. EP Bootleg Cart, Neo Geo KOF 2000 CMC50 Cart, Neo Geo KOF 2000 SMA Cart, Neo Geo KOF 2001 CMC50 Cart, Neo Geo KOF 2002 Bootleg Cart, Neo Geo KOF 2002 MP Cart, Neo Geo KOF 2002 MP2 Cart, Neo Geo KOF 2002 Protection, Neo Geo KOF 2003 AES PVC Cart, Neo Geo KOF 2003 Bootleg Cart, Neo Geo KOF 2003 PL Cart, Neo Geo KOF 2003 PVC Cart, Neo Geo KOF 2003 UPL Cart, Neo Geo KOF 2004 SE Bootleg Cart, Neo Geo KOF 2005 Unique Bootleg Cart, Neo Geo KOF 97 Orochi Bootleg Cart, Neo Geo KOF 98 Protection, Neo Geo KOF 99 Korea CMC42 Cart, Neo Geo KOF 99 SMA Cart, Neo Geo KOF2002 Cart, Neo Geo KOF2002 Plus Cart, Neo Geo Lansquenet 2004 Bootleg Cart, Neo Geo Matrimelee Bootleg Cart, Neo Geo Matrimelee Cart, Neo Geo Metal Slug 3 AES CMC42 Cart, Neo Geo Metal Slug 3 SMA Cart, Neo Geo Metal Slug 4 PCM2 Cart, Neo Geo Metal Slug 4 Plus PCM2 Cart, Neo Geo Metal Slug 5 Plus Bootleg Cart, Neo Geo Metal Slug 5 PVC Cart, Neo Geo Metal Slug 6 Bootleg Cart, Neo Geo Metal Slug X Protection, Neo Geo NEOPCM2 Protection, Neo Geo NITD CMC42 Cart, Neo Geo Pnyaa PCM2 Cart, Neo Geo Prehistorik Isle 2 CMC42 Cart, Neo Geo PVC Protection, Neo Geo Rage of the Dragon PCM2 Cart, Neo Geo Samurai Shodown 5 Bootleg Cart, Neo Geo Samurai Shodown 5 Cart, Neo Geo Samurai Shodown 5 Special Cart, Neo Geo Sengoku 3 CMC42 Cart, Neo Geo SMA Protection, Neo Geo SNK vs Capcom PVC Cart, Neo Geo Standard Carts, Neo Geo Strikers 1945 Plus CMC42 Cart, Neo Geo Super Bubble Pop Cart, Neo Geo SVC Bootleg Cart, Neo Geo SVC Plus Alt Bootleg Cart, Neo Geo SVC Plus Bootleg Cart, Neo Geo SVC S.Plus Bootleg Cart, Neo Geo Zupapa CMC42 Cart, Nerds Gone Wild (10197311, NSW/ACT), Ninja Master's - Haoh-ninpo-cho, Open Sesame (0351309, US), Oriental Beauty (10213511, NSW/ACT), Outback Jack (20195211, NSW/ACT), OutTrigger, Owl Capone (10008711, NSW/ACT, Show Program), Panda Pays - Mr. Cashman (0151109, US), Paris Lights - Jackpot Carnival (0251031, US), Paris Lights (30002611, NSW/ACT), Peacock Magic (1J008811, NSW/ACT), Pelican Pete (0252555, US), Pelican Pete (10177511, NSW/ACT), Penguin Pays - Cash Express (0151120, US), Penny Arcade (0251169, US), Pharaoh's Fortune (40000921, NSW/ACT), Phoenix Fantasy (20197511, NSW/ACT), Pirates (10001511, NSW/ACT), Pit Fighter (Japan rev 3, 2 players), Player's Choice - By Demand (10223111, NSW/ACT), Player's Choice - Favourites (20177311, NSW/ACT), Player's Choice - Gold Edition (30291411, New Zealand), Player's Choice - Most Wanted (20234911, NSW/ACT), Player's World - Super (0154019, US), Pokonyan! Balloon (Japan 940322), Pompeii (0251010, US), Pompeii (10002211, NSW/ACT), Power Stone 2, Power Stone, Pride of Africa (10208511, NSW/ACT), Prophecy (20173411, NSW/ACT), Puzzle Bobble / Bust-A-Move (Neo-Geo, bootleg), Puzzle Bobble / Bust-A-Move (Neo-Geo, NGM-083), Puzzled / Joy Joy Kid (NGM-021 ~ NGH-021), Queen of Sheba (10133711, NSW/ACT), Queen of the Nile (3J011111, NSW/ACT), Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT), Queen of the Nile Special Edition (10102811, NSW/ACT), Quiz Ah Megamisama, Quiz Daisousa Sen - The Last Count Down (NGM-023 ~ NGH-023), Quiz King of Fighters (SAM-080 ~ SAH-080), Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042 ~ NGH-042), Rage of the Dragons (NGM-2640?), Rapid Riches (10194211, NSW/ACT), Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095 ~ NGH-095), Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGH-2400), Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - The Newcomers (NGM-2400), Red Baron (10119911, NSW/ACT), Riding Hero (NGM-006 ~ NGH-006), Road Burners (ver 1.0), Road Trip (0152539, US), Roll Up! Roll Up!! (10115911, NSW/ACT), Ruby Magic (10125711, NSW/ACT), Rumble Reels (20288611, NSW/ACT), Samurai Shodown II / Shin Samurai Spirits - Haohmaru Jigokuhen (NGM-063 ~ NGH-063), Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222 ~ NGH-222), Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 1st release, censored), Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720, 2nd release, less censored), Savage Reign / Fu'un Mokushiroku - Kakutou Sousei, Scatter Magic II (10001311, NSW/ACT), Seal The Deal - Jackpot Carnival (0251029, US), Sengoku / Sengoku Denshou (NGH-017, US), Sengoku / Sengoku Denshou (NGM-017 ~ NGH-017), Shaman's Magic (0152647, US), Shaman's Magic (10225911, NSW/ACT), Shore Thing (0251088, US), Shougi No Tatsujin - Master of Shougi, Show Me The Money (10001911, NSW/ACT), Silk Road (0152537, US), Silver & Gold (20100721, NSW/ACT), Sky Dancer (10272711, NSW/ACT), Slashout, SNK vs. Capcom - SVC Chaos (NGM-2690 ~ NGH-2690), Sonik Fighter (version 02, encrypted), Spawn In the Demon's Hand (Rev B), Spring Carnival (10000311, NSW/ACT), Stakes Winner / Stakes Winner - GI Kinzen Seiha e no Michi, Star Drifter (0451341, US), Star Drifter (20150811, NSW/ACT), Star Quest (10009511, NSW/ACT), Status Symbols (0251147, US), Street Hoop / Street Slam / Dunk Dream (DEM-004 ~ DEH-004), Sun & Moon - Bank Buster (0153028, US), Sun & Moon (0151303, US), Sun Queen - Dollar Storm (0451327, US), Super Bucks V (20203611, NSW/ACT), Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - Real Fight Football (NGM-061 ~ NGH-061), Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - Eikou e no Michi, Supercharger 1942 (ID 06188), Sweethearts II - Lucky Devil (10119811, NSW/ACT), Sweethearts II (0151183, US), Tahiti Magic (10238911, NSW/ACT), Take Off (bootleg of The End), Thai Princess (10119321, NSW/ACT), The Buck Stops Here (10294311, NSW/ACT), The Game With No Name! (0452501, US), The Golden Fleece (10158311, NSW/ACT), The Golden Gong (0152558, US), The Good, The Bad & The Money (0351016, US), The King of Fighters '94 (NGM-055 ~ NGH-055), The King of Fighters '95 (NGM-084, alt board), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board 2), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGH-2420), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (NGM-2420, alt board), The King of Fighters 2000 (NGM-2570 ~ NGH-2570), The King of Fighters 2002 (NGM-2650 ~ NGH-2650), The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430 ~ NGH-2430), The Super Spy (NGM-011 ~ NGH-011), The Typing of the Dead (Rev A), The Typing of the Dead, Thrash Rally (ALM-003 ~ ALH-003), Thunderheart (10173811, NSW/ACT), Tigress (20230111, NSW/ACT), Tiki Talk (10239111, NSW/ACT), Tiki Torch (0151003, US), Timber Wolf (0154013, US), Top Player's Golf (NGM-003 ~ NGH-003), Top Shot (30123211, NSW/ACT), Torch of the Gods (10000411, NSW/ACT), Touch of Paradice (20007511, NSW/ACT), Treasure King (0152570, US), Turtle Treasure (10234711, NSW/ACT), Venetian Nights (1J008911, NSW/ACT), Venice (0151355, US), Virtua NBA (USA), Virtua NBA, Virtua Striker 2 Ver. 2000 (Rev C), Virtua Striker 3 (Rev B), Virtua Striker 3, Wave Runner GP (USA, Rev A), Werewolf Wild (10288711, NSW/ACT), Whales of Cash (0451311, US)' and clone (set 2) to ', Whales of Cash (0451346, US), Where's The Gold (10124811, NSW/ACT)' and clone (Demo) to ', Where's The Gold (10124811, NSW/ACT, Show Program), White Water (0151075, US), Wild Africa - Millioniser (0351083, US), Wild Cats (10237511, NSW/ACT), Wild Goose (20131911, NSW/ACT), Wild Gorilla - Power Pay (20279811, NSW/ACT), Wild Panda (20218411, NSW/ACT), Wild Panthers - Li'l Lucy (0651310, US), Wild Riders, Wild Stallion (10230811, NSW/ACT), Wild Tepee - Power Pay (10230211, NSW/ACT), Wild Waratah (10215911, NSW/ACT), Wild Ways (10106911, NSW/ACT), Wizard Ways - Lady Luck (20139111, NSW/ACT), World Heroes 2 (ALM-006 ~ ALH-006), World Heroes 2 Jet (ADM-007 ~ ADH-007), WWF Royal Rumble, You Might Be A Redneck If... - Jeff Foxworthy (0351068, US), Zintrick / Oshidashi Zentrix (bootleg of CD version), Zintrick / Oshidashi Zentrix (bootleg of CD version) and Zorro (0151372, US) and Zorro (30130611, NSW/ACT) - MAME . VIDEO RENDERING SYSTEM . LAYOUT tag external handler support (emu\render.cpp) . BGFX . Fix up BGFX NTSC shader . More BGFX settings refinement . HLSL . Equalized options of HLSL and BGFX HLSL chain . Removed POT texture size from shadow mask in HLSL, U/V size is now simply the percentage of the actual texture size. . Adjusted display names of options . Fixed half texel offset of 'source' shadow mask tile mode . Fixed several HLSL problems when running machines without screen . Small changes to creation of render targest in HLSL: Removed unessesary recreations of non-screen-quad texture targets. Removed creation of cached targets for non-screen-quad texture. . Small tweaks to raster.ini settings - less blurry and less glowing. . Fixed bloom target size for vector screens in full-screen mode, this also improves the performance slightly (d3d\d3dhlsl.cpp). . Normalized vector attenuation settings . vector_length_ratio is now independent from screen size . Changed vector_length_ratio range from [0.0, 1000.0] to [0.0, 1.0] . Updated display name and description of vector_length_scale vector_length_ratio. Moved extension of vector lines to where it belongs. . Fixed window is always on top after ALT+ENTER from fullscreen in Direct3D (render\drawd3d.cpp) (ID 06209). When deleting the D3D device, it was reset before with outdate presentation information. . Fixed half pixel offset of vectors in D3D, appearance should be identical to GDI and BGFX (render\drawd3d.cpp). . Updated http://docs.mamedev.org/advanced/hlsl.html . UI . Relieve UI menus and such from having to constantly fetch UI object from global state . Moved slider_state and ui_menu_item into frontend\mame . PLUGINS . Added layout embedded script helper plugin. Example layout scripts for (MESS) fidel_scc and mdndclab . Added callbacks for plugins to LUA engine . Cheat: Indent the output (plugins\cheat\conv_cheat.lua and cheatfind\init.lua). Handle multiple cheat paths and missing dir in write back. Reverse operator order and add value comparison. Make menu layout much more flexible. . Software list . Check software parts for incompatibility as well as compatibility. This new softlist feature is now used by genesis_tmss to exclude several entries from megadriv.xml. . Use popmessage instead of osd_printf_warning for incompatibility warnings . Unify some common software loading code, which reduces indentation levels in clifront.cpp . Move system name lookup into frontend . Avoid to directly access device variable from inside the driver, when possible (drivers\macs.cpp, simple_st0016.cpp, speglsht.cpp, srmp5.cpp and machine\st0016.cpp) . Make watchdog timer a separate device. Separate watchdog implementation from running_machine (once again) and driver_device. Old-style methods, now hidden behind #ifdefs, will probably be safe to remove soon. Removed legacy watchdog calls. . Fixed MAME hangs when command bench is higher than 299 (ID 05831) . Fixed init of XAudio2 when there is no window active . Memory handling: Get rid of the install_* return value (emu\emumem.cpp). Fixed accessing base() when there is empty buffer (emu\emumem.h). . Removed dead WM_USER_* events for which handling was causing crashes (windows\window.cpp). This fixes Windows debugger crashes on Win10 64-bit (ID 06217). - SDLMAME . Export SDL_SendKeyboardKey function to allow scancode injection in Emscripten build (emscripten\emscripten_post.js) . Removed dead code left over from "-mt". This fixes double-free starting up puckman when using mame64 -mt (ID 05871) . No SDL 1.2 support anymore - MAC OS X: Try to support older XCode (scripts\src\3rdparty.lua) - ANDROID: Updated to latest build tools for Android - NetBSD/OpenBSD . Fixed NetBSD (scripts\src\3rdparty.lua) . Allow building on OpenBSD - MESS . Baud Z80SCC Rate Generator now uses diserial timers through setrate(). Added ADD_ macros for all supported chip variants, Log messages cleanup. . Floppy: Workaround for MT06194, potential segfault during floppy load (imagedev\floppy.cpp and formats\upd765_dsk.cpp). Don't fail immediately on wrong cyl (machine\upd765.cpp). . One step closer to core I2C EEPROM implementation (megadrive\eeprom.cpp) - Compiling . 3rdparty . Updated Benchmark, BGFX, BX, GENie and rapidjson . Added GLM library . Updated to LZMA 16.0 . LUA engine: Avoid null keys (mame\luaengine.cpp) . Cleanup of network output module (modules\ipc\tcp_server.cpp) . R3000 is separate CPU, helps building some drivers with SOURCES (scripts\src\cpu.lua). . Work around linker issues with Emscripten (targetos=asmjs) . Allow separate asteroid.cpp, astrafr.cpp, astrocde.cpp, asuka.cpp, bfm_sc4.cpp, bfm_sc5.cpp, cliffhgr.cpp, eolith.cpp, exidy.cpp, galaga.cpp, hng64.cpp, ladybug.cpp, maygay1b.cpp, midzeus.cpp, mpu4.cpp, mpu5.cpp, ninjaw.cpp, pacman.cpp, pgm.cpp, pluto5.cpp, pong.cpp, puckpkmn.cpp, r2dx_v33.cpp, raiden2.cpp, redclash.cpp, s11a.cpp, s11b.cpp, s11c.cpp, seibuspi.cpp, snowbros.cpp, stv.cpp, taito_x.cpp, thayers.cpp, vicdual.cpp, warpwarp.cpp, wpc_dot.cpp, wpc_flip1.cpp, wpc_flip2.cpp, audio\irem.cpp, includes\amiga.h, machine\deco102.cpp, machine\deco156.cpp, machine\mos6530n.cpp, machine\namcoic.cpp and sound\okiadpcm.cpp . Fixed typos in scripts\src\cpu.lua (cpu\mb86233\ -> cpu\mb86235\), machine.lua (ncr5389.h -> ncr5390.h) and sound.lua (pic-ac97.h -> pci-ac97.h) . Minus sign in subtarget creates problems (makefile) . Changed INC -> HXX makes editors and code analyzers see it as C++ . Added ability to create standalone emulators, added (MESS) ZEXALL as example. . Emscripten options cleanup (scripts\src\main.lua) - Debugger . Only log at start the message about deprecated vblank to avoid spamming logerror debugger window at each frame, which makes debugging quite hard (emu\screen.cpp). . ImGui based debugger . Moved building of source lists for disasm and memory windows so they are done once when created . Use a getter function for combo boxes. Memory windows are now much faster. . Moved view drawing into a single function, few more minor colour fixes. . Made a start on rendering just the visible areas of a debugger view. Generally works, but the scrollbar doesn't appear when viewing a 32-bit or larger address space (imgui bug?). . No deps between osd and frontend, internal debugger removed. 0.173 - New games: Dragon's Heaven (development board), Last Hope (bootleg AES to MVS conversion, no coin support), New 2001 (Italy, Ver. 2.00N), Pokonyan (Japan 940322), Sushi Bar, Team Hat Trick and Tiny Toon Adventures (prototype) (PlayChoice-10) - New Working games: Wonder Boy (US bootleg) - New Non-Working games: Alta Tensione (ver. 2.01a), Euro Double Star Record (ver.1.2), Jungle (VI3.02), Luna Park (ver. 1.2), Polaroid Instant Memories, Print Club 2 2000 Summer, Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000), Print Club 2 Vol. 8 Summer (J 970616 V1.100), Print Club 2 Vol. 9 Autumn (J V1.100), Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000), Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000) and Sonik Fighter (encrypted) - New clones: 1945k III (older, OPCX1 PCB), Android (prototype, later build), Atomic Robo-kid (Japan), Beast Busters (Japan, Version 2), Bestri (Korea, set 2), Champion Number (V0.67), Crystals Colours (Ver 1.02), DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion), Dragon Saber (World, DO2), Espgaluda (2003/10/15 Master Ver, bootleg cartridge conversion), Kamikaze (Potomac Games), Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver., bootleg cartridge conversion), Majestic Twelve - The Space Invaders Part IV (US), Major Title 2 (World, set 2), Mortal Kombat (Reptile Man hack), Mystic Warriors (ver AAB), Operation Wolf (Japan, prototype), Print Club 2 Vol. 6 Winter (J 970121 V1.200), Raiden DX (Japan, set 2), Touch & Go (Korea, unprotected), Vs. Excitebike (set EB4-3 E) and Wonder Boy (system 2, set 2, 315-5176) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Bull Fight - Ring no Haja (Tourvision PCE bootleg), Dragon Saber - After Story of Dragon Spirit (Tourvision PCE bootleg) and Parasol Stars - The Story of Bubble Bobble III (Tourvision PCE bootleg) - New AGEMAME games: 100 Lions, 5 Dragons, 5 Dragons (Demo?), 5 Koi Power Pay, 50 Lions Roaring Riches, Adonis (USA), Adonis Hyperlink, African Dusk Mr Cashman, After Hours, Alchemy, All The Kings Gold, Amazon Queen, Amazon Temple, Apollo Coffee, Arabian Nights, Arabian Nights (MK6), Arctic Wins, Arishinko, Asian Princess, Bad Bog Draw Poker, Beaver Bucks, Big Ben Jackpot, Big Hearted, Big Red, Big Red Jackpot, Black Brumby, Black Mustang, Black Panther (Aristocrat), Blue Tiger (20259511), Bob And Dolly, Boot Scootin, Brazil, Bucaneer, Buffalo, Buffalo (set 2), Bumble Bugs, Bumble Bugs (USA), Bush Ranger, Butterfly Delight, Cactus Corral, Call Of The Wild, Calypso King, Canary Riches 2, Cash Cat (NZ), Cash Chameleon, Cash Crop, Cashman Tonight, Chance in Hell, Chariot Challenge (0100787V), Checkmate (01J00681), Chicken Run, Choy Sun Doa, Choy Sun Doa Cash Express, Choy Sun Returns, Coral Riches 2, Corrida De Toros, Crystal Springs, Crystal Springs (USA), Cuckoo, Dave Dragons, Deep Freeze, Deep Freeze (MK6, USA), Delta Belle, Delta Queen, Desert Bloom, Diamond Dove, Diamond eyes, Diamonds Forever, Diamong Eyes 2, Dinosaur, Dolphin Treasure (alt), Double agent, Double Dolphin, Dragon Lord, Dragon Magic, Draw Poker, Dream Of The Red Chamber, Dynamite Jack, Eagle Rock, Eagle Strike (set 1), Eagle Strike (set 2), Easter Island, Eggstreme Riches, El Dorado, Enchanted Forest Cash Express, Enchanted Spell, Enchantress 6 Reel, Eye Of The Tiger, Fire Dancer, Flame Of Olympus, Flames Of Olympus 2, Flames Of Olympus USA (set 1), Flames Of Olympus USA (set 2), Follow The Stars, Fortune of Athena, Fortune Teller, Foxworthy Redneck, Frog Wild, Gambling Jack, Game With No Name, Geisha, Genie Magic, Gnome Around The World, Go Ape, Go For Green, Golden Archer Jackpot, Golden gong, Golden Gong2, Golden Inca, Golden Incas, Golden Pyramid Hyper Max, Golden Pyramids Maximillions, Golden Ra, Golden Samurai, Grizzly, Heart Of Gold, Heart Of Vegas, Heart Throb, Helen Of Troy, High Noon, Hollywood Dreams, House Of Hearts, Hyperlink Sun and Moon, Inca Chief, Inca Sun, Inca Sun (NZ), Indian Dreaming, Indian Dreaming Cash Express, Indian Dreaming Lady Luck, Indian Dreaming Second Chance, Indian Dreaming Super Reel Power, Indian Gold Mr Cashman, Indian Princess, Jailbreak, Jeff Foxworty, Jewel Unchantress, King Galah (0200536V), King Neptune, King Of The Nile, King of the Nile (set 2), Koala Mint, Kohinoor, Kooka Bucks, Let Em Roll, Lets Go Fishin, Line King, Loco Loot, Loco Loot (NZ), Lone Wolf, Lord Leopard, Louies Gold Mr Cashman, Love Struck, Lucky 88, Luigis Ball, Magic Forrest, Magic Mermaid, Magic Touch, Meteor Storm, Milkin It, Miss Kitty, Money Mouse, Money Tree, Money Tree (NZ), Moonlight Waltz, More Chilli, Mountain Money, Mr Woo, Mystic Arrow, Mystic Eyes Mr Cashman, Mystic Eyes(Cashman), Mystic Garden, Mystic Mermaid, Nerds Gone Wild, Open Sesame, Orchid Mist, Oriental Beauty, Oscar, Outback Jack (set 2), Outback Jack Jackpot, Owl Capone, Panda Pays, Panther Magic, Paris Lights, Paris Lights (USA), Peacock Flutter, Peacock Magic, Pelican Pete, Pelican pete, Pelican Pete 2, Penguin Pays, Penguin Pays (20 Line), Penguin Pays (alt), Penny Arcade, Penquin Pays, Pet Shop, Pharohs Fortune, Phoenix Fantasy, Pirates, Players Choice By Demand, Players Choice Favourites (set 1), Players Choice Favourites (set 2), Players Choice Most Wanted, Players Choice New Zealand, Players World Super, Pompei, Pompeii2, Pride Of Africa, Prize Fight, Prophecy, Queen Of Sheeba, Queen Of The Nile, Queen Of The Nile (0100439V), Queen Of The Nile (0300440V), Queen Of The Nile Clown Jackpot, Queen of the Nile Special Edition, Queens of Cash, Rainbow Warrior Hyperlink (0101332V), Rapid Riches, Red Baron (Aristocrat), Return of The Samura 20line, Return of The Samura 5line, Return Of The Samurai (0400549V), Road Trip, Roll Up Roll Up, Ruby Magic, Rumble Reels, Scatter Magic 2, Seal The Deal, Shamans Magic, Sharmans Magic, Shore Thing, Show Me The Money, Silk Road, Silver And Gold, Sky Dancer, Spring Carnival, Star Drifter, Star Drifter (USA), Star Drifter 2, Star Quest, Status Symbols, Sumo Spins, Sun And Moon 2, Sun Queen Dollar Storm, Super Bucks 5, Superbucks 2, Superbucks 3, Sweet Hearts 2 Lucky Devil, Sweethearts 2, Tahiti Magic, Thai Princess, The Buck Stops Here, The Golden Fleece, The Good Bad Money, Thunderheart, Tigress, Tiki Talk, Tiki Torch, Timberwolf, Top Banana, Topshot, Torch Of The Gods, Touch Of Paradice, Treasure King, Treasure Trove, Triple Treat, Trojan Horse, Turtle Treasure, Unicorn Dreaming, Venetian Nights, Venice, Werewolf Wild, Whales Of Cash (set 1), Whales Of Cash (set 2), Where Is The Gold, Where Is The Gold (Demo), White Water, Wicked Winnings 2, Wild Africa, Wild Amazon (1 Line), Wild Amazon (3 Lines), Wild Bill, Wild Cats, Wild Cougar, Wild Goose, Wild Gorilla, Wild Panda 2, Wild Panthers, Wild Stalion 2, Wild Tepee, Wild Thing, Wild Waratah, Wild Ways, Wings Of Olympus, Wizard Ways Lady Luck, Zorro and Zorro Jackpot - New drivers: instantm.cpp and jungleyo.cpp - New devices: m3comm, neogeo_control_port, neogeo_ctrl_edge, neogeo_dial, neogeo_irrmaze, neogeo_joyac, neogeo_kiz4p, neogeo_mjctrl, ohci_gc, ohci_hlean2131qc, ohciusb, z80_sega and z80_sega2 - New mame.ini options: CORE RENDER OPTIONS: intoverscan. OSD OUTPUT OPTIONS: output. BGFX POST-PROCESSING OPTIONS: bgfx_avi_name. DIRECT3D POST-PROCESSING OPTIONS: distortion, cubic_distortion and distort_corner. - Dynamic Re-Compiling . SSE prefix comes before REX on MOVQ and fixed REX order with all SSE prefixes (cpu\x86emit.h) . Added FCOPYI and ICOPYF instructions to pass raw data between integer and floating-point registers . Map F0-F3 to SSE registers and optimized FMOV (cpu\drcbex64.cpp) - MIPS CPUs . Fixed behavior for 32/64 bit mode floating point register aliasing . Branch and Link instructions unconditionally set return address register . Fixed DMULT and DMULTU in interpreter and DRC modes (mips\mips3.cpp) . Port Happy's branch-and-link fix from mips3 interpreter to DRC and PPC aliasing fix to the MIPS3 DRC (mips\mips3drc.cpp) . Fixed interpreter bug where BADCOP exceptions would execute the faulting opcode twice - PowerPC 4xx/6xx CPUs . Use the new instructions for FPU loads and stores (cpu\powerpc\ppcdrc.cpp) . Map some FPU registers to physical registers. Optimized powerpc\ppcdrc.cpp. - TMS9900 CPU: Log output changed - TMS9995 CPU . Logging changed. Fixed HOLD handling and added synchronous RESET. Changed method names for some input lines. . Clean up MAME drivers which needed adjustment to match changes to the TMS9995 (drivers\jpmmps.cpp, jpms80.cpp, looping.cpp, nsm.cpp, nsmpoker.cpp and pachifev.cpp) - Sound Interface: Added generic latch to replace soundlatch in driver_device and additional members for compatibility (machine\gen_latch.cpp/h) - TMS5220 sound . TMS5220/5110 merge Part 1 . Added a 'combined rs/ws write' function for systems which require both pins to change at exactly the same time and not to reset the chip . Replaced fprintf by logerror; fixed some small issues. - YMZ770 / MPEG sound: Separated MPEG audio as device, made building separate Model3 possible. - AM9517A DMA: Added clone (PC Transporter DMAC/PCXPORT_DMAC) with the non-standard mask behavior of the PC Transporter ASIC (machine\am9517a.cpp) - CD ROM: Declared (std::nothrow) some allocations (util\cdrom.cpp) - CHDMAN . Fixed chdman extractcd track names (was foo.cue.bin instead of foo.bin) . Initialized m_hunknum inside the constructor (util\chd.h) - Discrete Netlist . Visual Studio 2015 netlist fix (src\netlist.lua and solver\nld_ms_w.h) . Added m62(kidniki) to nl.lua. Started some experiments around parallel solving of linear equations. This code is not active. Fixed Kid Niki audio performance. . Minor changes, mostly signed comparisons and adding includes for dependency documentation. . Solver model simplification. Use C++11 features to use more templates. Use templates in nl_math. Simplify solver infrastructure. . Replaced macros with templates (netlist\nl_base.h and plib\pstate.h). Get rid of some init_object calls. netlist_t no longer descends from netlist::object_t. . Fixed type mismatch in netlist\solver\nld_solver.cpp. This fixes OpenMP-enabled builds fail to compile (ID 06170). . Moved solver members to proper place. Minor code changes. Recover from creating solvers by copy paste. . Significant speed improvement: Added a new solver using compressed row format. Fixed sorting. As a result, netlist performance on Kid Niki nearly doubled. The performance increase is mainly due to the fact that sorting decreases the number of operations for gaussian elimination of the Kid Niki matrix from ~7800 to 707. In addition, compressed row format improves L1 usage. Converted Kid Niki netlist into an external one. . Implemented dynamic loading of precompiled solver code - SCSI: Skip disc change detection (machine\cr589.h; drivers\ksys573.cpp). This fixes all KSYS573 sets no longer work when attempting to test the CD hardware (ID 06176). - Sega Custom: Sega encryption emulation (segacrpt and segacrp2) is now a device, kill off a whole bunch of duplicated decryption code across several drivers (angelkds.cpp, appoooh.cpp, calorie.cpp, cclimber.cpp, jongkyo.cpp, pbaction.cpp, pengo.cpp, segae.cpp, segag80r.cpp, segas16a.cpp, senjyo.cpp, sg1000a.cpp, suprloco.cpp, system1.cpp, system1.cpp, turbo.cpp and zaxxon.cpp) - TMS9928A video . Added GROMCLK pin. Optionally provides clock for GROMs. . Added general read/write methods to TMS9928a, allowing address lines to select functions. - Z80 DAISY . Make the Z80/Z180 daisy chain an interface that interfaces with the existing interface. Z8000 has been hooked up to this as well (p8000_16 already configures it), but currently does nothing with it. . Prevent tmpz84c015_device::irq_priority_w from crashing or corrupting the daisy chain. Eliminate the need for TMPZ84C015_DAISY_INTERNAL by not overwriting elements in the daisy list (z80\tmpz84c015.h; drivers\pve500.cpp). - aleck64.cpp . Adjusted SI timing again . Do SI DMA transfer after delay, not before. - arkanoid.cpp: Correct some spelling and clarify comments - bbusters.cpp: Fixed some missing gfx in Beast Busters / Mechanized Attack. - chihiro.cpp . USB is now partially usable . Control, bulk and interrupt transfers work . Started HLE simulation of USB devices on Chihiro baseboard. There is a first implementation of Xbox game controller. . The Chihiro BIOS can now enter system configuration menu - cv1k.cpp: Some work towards save state support. Should work but it would be better not to save the bitmap, so for the time being it is disabled by default. - forte2.cpp and pengadvb.cpp: Get rid of irq trampoline - gaelco2.cpp . Improved video for clone Touch & Go (Korea, unprotected). This is the first working set for this game, all other sets are protected. . Updated stream on read in Gaelco sound driver, Touch & Go still seems to forget to play sounds sometimes tho, like one of the channels gets stuck busy? - harddriv.cpp: Fixed user1 region width in hdrivair, hdrivairp, racedrivpan and strtdriv. Byte order not verified (seems plausible though), but at least these should be able to load again. - himesiki.cpp: Init palette to black. Fixed YM2203 clock speed. - hornet.cpp . Fixed ROM banking. This fixes "MASK ROM CHECK" in Gradius 4 service mode fails (ID 05897). . Hooked up LAN board DS2401 and EEPROM to Silent Scope 2. Comm board roms are bad. - itgambl2.cpp: Added technical notes and some clean-ups - macs.cpp: Converted to use generic cartslot with fixed software configuration. Cleaned up loading and banking systems in the driver as a result - magic10.cpp . Added technical notes, game status, defined clocks, fixed inaccurate notes and some driver cleanup. . Added missing PLD dump to Magic's 10 (ver. 16.55). . Added PCB infos to Magic's 10 (ver. 16.55) and clone (ver. 16.45). - mhavoc.cpp . Minor comment update . Updated Gamma CPU address decoding/mirroring from the schematic in Major Havoc - model1.cpp . Driver checkpoint and intercept experiment (includes\model1.h and machine\model1.cpp) . Inverted normal/point in Star Wars Arcade (ftab_swa; machine\model1.cpp) - model3.cpp: Added Sega Model3/Naomi/Hikaru Communication Board basic. Further work on M3 comm board, added actual Model3 interface (not yet hooked to driver). Hook Comm.Board to Model3. Note: It seems only VF3 expecting SCSI mapped at C000xxxx, the rest of games (incl Step 1.0 Bass Fishing) looking for Comm.Board there. - namcos22.cpp: Optimization to gamma mix for non-Super System22 - neogeo_noslot.cpp: Reworked inputs to work through the slot device interface. You can now configure the 15-pin ports available in the multicart driver (neogeo) with the -crtl1 and -ctrl2 options. Thus, if you want to launch janshin in neogeo with the mahjong control panel you shall now prescribe -edge "" -ctrl1 mahjong and set accordingly the dipswitch (the first option disables inputs from the edge connector). When you run single game drivers (e.g. mslug, or kof94, etc.), instead, a unique controller is available and cannot be modified. In particular, the janshin driver already comes pre-configured in the proper way. - peplus.cpp: Minor doc update - playch10.cpp: Added new PlayChoice-10 BIOS (pck1-c_fix.8t = Single Screen, Freeplay fix, Newer?) - polepos.cpp: Merged sound\filter.cpp/h with audio\polepos.cpp/h (only Pole Position/II use it). Removed unused function. - snookr10.cpp . Added technical notes . Added default NVRAM, technical notes and dedicated inputs for both Crystals Colours sets. - segag80v.cpp: Fixed vector clocks - stv.cpp . Converted controllers to work through slot devices and cleaning up the related code (includes\stv.h) . Small cleanup + Added note about some pad configuration which is not detected correctly (machine\smpc.cpp) - tourvis.cpp . Changed driver to use a software list instead of internal lists. They're just PCE cartridges stuffed inside custom epoxy filled cases with an adapter. . Trimmed all ROMs to correct sizes, confirming that the majority match exactly the PCE roms (only 3 differ, Gomola Speed which could be an alt revision, R-Type II which has been hacked, and Be Ball where there is an unknown single byte change). Verified the new Tourvision Bull Fight edge connector dump matches the PCE dump 100%. . Fixed some Tourvision descriptions - Attack UFO: Cleaned up and identified I/O chip as 6821 PIA. Fixed maincpu rom loading. - Bishou Jan: Mapped missing controls (ID 01792) - Cross Shooter: Some improvements to Air Raid / Cross Shooter driver based on hardware tests, should improve things if anybody ever does work out how to extract the gfx. Unfortuantely it's starting to look like the colour lookup proms are inside the modules too and in the case of the tilemaps the layout data definitely is, so getting access to the clean data from the outside might be very tricky. - Crystals Colours: Added default NVRAM, technical notes and dedicated inputs for both Crystals Colours sets. - Derby Owners Club II: Added protection key - Dynamite Duke: Fixed missing background with flipscreen on (ID 04919) - Flying Shark: Fixed default DIP for Hishou Zame (Japan) based on dip sheet (ID 06174) - Gain Ground: Added O. Galibert's note about why Gain Ground drops into Free Play mode and added a kludge to work around it for now (ID 04474). - Hyper Bishi Bashi Champ: Removed a few unused input bits - Jingle Bell: IGS009 protection patch for the newer Jingle Bell sets - Klax: Kill ioport tag lookup in driver - Last Four: Added PCB info - Libble Rabble: Fixed game resets during second loop of attract mode (ID 06178) - Magical Crystals: Improved ROM labeling for Japan set based on PCB picture, and noted that the Japan set we have is revision 2, but a revision 0 exists, undumped. - Spy Hunter: Get steering wheel to work in clone Spy Hunter (Spain, Tecfri / Recreativos Franco S.A. PCB). Improved inputs and cleanup analog inputs. - Street Fighter: Driver does not have COIN3 and protection MCU on clone 'Street Fighter (Japan) (protected)' is an i8751 - Wonder Boy: Added sys1piox_315_5177 MACHINE_CONFIG_DERIVED to clone Wonder Boy (US bootleg) (Game now playable) - Input port . Recognized the full range of controller inputs. This simplifies an old piece of MESS code that failed to properly classify paddle, pedal, positional and dial inputs, along with many of the less-common digital inputs. The distinction between INPUT_CLASS_MISC and INPUT_CLASS_INTERNAL makes more sense now, though nothing makes use of it (ID 06172). . Added hybrid DirectInput/XInput module. Release WMI COM objects correctly in XInput device discovery. Make Xinput triggers analog and centered at 0. . Extended core input to support up to 10 players - Fixed rom names in kaneko16.cpp, m92.cpp, model2.cpp, namcos2.cpp, sf.cpp and snookr10.cpp - Renamed (androidp) to (androidpo), (crystalc) to (crystalca), (dsaber) to (dsabera), (excitebk) to (excitebkj), (excitebka) to (excitebko), (majest12) to (majest12j), (mystwarra) to (mystwarraa), (wangmid2) to (wangmid2j) and (wangmd2b) to (wangmid2) - Description changes of 1945k III (newer, OPCX2 PCB), Air Raid (Single PCB), Android (prototype, early build), Atomic Robo-kid (Japan, Type-2, set 1), Atomic Robo-kid (Japan, Type-2, set 2), Atomic Robo-kid (World, Type-2), Attack UFO, Bestri (Korea, set 1), Borderline (Tranquillizer Gun conversion), Choutetsu Brikin'ger - Iron clad (prototype), Choutetsu Brikin'ger - Iron clad (prototype, bootleg), Chouzetsu Rinjin - Bravoman (Tourvision PCE bootleg), Coryoon - Child of Dragon (Tourvision PCE bootleg), Cross Shooter (Single PCB), Doraemon Meikyuu Dai Sakusen (Tourvision PCE bootleg), Dragon Saber (World, older?), GunHed (Tourvision PCE bootleg), Hana Taaka Daka!? (Tourvision PCE bootleg), Jingle Bell (EU, V141UE), Jingle Bell (EU, V153UE), Jingle Bell (EU, V155UE), Jingle Bell (US, V157US), Jinmu Denshou (Tourvision PCE bootleg), Major Title 2 (World, set 1), Major Title 2 (World, set 1, alt sound CPU), Makyou Densetsu - The Legenary Axe (Tourvision PCE bootleg), Mr. Heli no Daibouken (Tourvision PCE bootleg), Raiden DX (Japan, set 1), Saigo no Nindou - Ninja Spirit (Tourvision PCE bootleg), Spy Hunter (Spain, Recreativos Franco S.A., Tecfri PCB), Super Pool (ver. 1.2), Tranquillizer Gun (ID 06181), Veigues - Tactical Gladiator (Tourvision PCE bootleg), W-Ring - The Double Rings (Tourvision PCE bootleg), Wonder Boy (set 2, 315-5135) and Wonder Boy (system 2, set 1, 315-5177). - MAME . VIDEO RENDERING SYSTEM . HLSL . Removed hacks for vector screens from shaders: Added handling of texture coordinates for vector screens to core render. Added handling of orientation/rotation for vector screens to D3D renderer. . Fixed texture coordinates for vector screen quad . Solved conflicts in render\d3d\d3dhlsl.cpp . Added reasonable texcoord handling without known examples (emu\render.cpp) . HLSL settings are reset now, when a new machine is selected. . Refactored distortion pass: Separated curvature parameter into distortion, cubic_distortion and distort_corner. Distortion and cubic_distortion can be negative, to compensate each other. Distort_corner is intependent from the image distortion. Refactored BGFX distortion pass. Removed vector hack. . Fixed not used u_humbar_hertz_rate parameter . Fixed half pixel shift of the shadow mask along the screen diagonal. . BGFX . Fixed render target dimension swap for BGFX. Removed not used part of code. Moved texture flags to proper place (render\drawbgfx.cpp). . Updated makefile to support shaders in multiple dirs and added sample shader. Simplify include for shaders. . Pull a bunch of screen chain code from drawbgfx to chainmanager where it belongs (render\bgfxutil.cpp/h) . Added runtime screen chain selection . Added dividing line to BGFX slider list where applicable . Added render.h no longer indirectly supplied via emu.h <- ui\ui.h . Added data-driven render target clearing . Added pillarboxing shaders and layout for BGFX . Added AVI writing to BGFX . Added HQ2x, HQ3x and HQ4x shaders . Added SuperEagle shader . Implemented handling for u_screen_scale and u_screen_offset . Simplified min, max, default and step value handling for chain configuration. min, max, default and step are now floating points without an addition scale factor. . Added "selection" parameter to chain input sampler. If specified all textures (.png) within the same directoy of the given texture will be selectable via slider in the UI. Also added slider for "shadow mask tile mode" to HLSL chain. . Ported xBR shaders from libretro . Fixed preservation of settings when changing screen chain selection with multiple screens . Make overscan on integer scaled targets optional (add option -intoverscan) . Reduced the incidence of required_device in subdevices. Any device implementing device_gfx_interface will require a palette and, once it has started (which many video devices already check for), allow other devices to access it through a getter. This makes it unnecessary in most cases for devices to require both a gfxdecode and a palette; indeed, many devices went on to not use the palette at all. Most cases have been solved in one of two contrasting ways: Removed the palette finder and associated macros for configuring it, or implemented device_gfx_interface and removed the gfxdecode finder. The latter solution, generally adopted for devices that decoded their own graphics internally or through their own subdevice, has doubled the number of implementations of device_gfx_interface and eliminated the need for Konami games to provide empty gfxdecodes. . Fixed alpha handling, (MESS) Donkey Kong (Coleco) looks good now (emu\screen.cpp). . DEVICE . Added extra bit as delay between bytes to make 1 stop bit work (emu\diserial.cpp) . Allow image devices to be configured with a fixed (not user selectable) piece of software and updated a few options and menu to acknowledge such possibility (emu\diimage.cpp). . Sega encryption emulation (segacrpt) is now a device, kill off a whole bunch of duplicated decryption code across several drivers. Give unique descriptions and short names to new SegaCrypt Z80 devices so that they show up properly in devices listings. . UI . Borrow string processing code from ui.cpp so that Pound works in layouts (using UTF-8 encoding at least). Updated sc4fd7tha.lay with UTF8 encoding of Pound sign. . Refactored miscmenu and added advanced menu. submenu lang and cosmetic. . Small UI changes . Added plugin options menu . Fixed the key handler for the error "roms or missing CHD." . Removed the delay in showing the description in the Advanced menu . Enter on keypad now act in the same ways of Enter on keyboard (emu\inpttype.h) . Make sliders use an std::vector instead of a linked list . Removed ui\ui.h dependency from emu.h . Make core vector-related slider handling slightly less egregious . Reduced code for entries of "enum class ui_menu_item_type" and the use of item_append with separators. . Re-enabled configuration menu for single-machine and added some options . Adding handler for the right mouse button in the main menu, calls the machine configuration. . Added advanced options to per-machine configuration . Added ImGui based debugger. Note: Currently only works with the BGFX renderer. Added error log window to debugimgui, and limited the debugger console to display 100 lines, so that rendering it doesn't get too slow. Added sending of mouse clicks to debugger views. Please note that you have to click the view area first to give it focus before you can set the cursor in a disassmbler or memory view. Optimised rendering by drawing text via the window draw list. Added keyboard input for the debug view with focus. . Forced reset in order to properly apply some options . Isolated CLI part - merged emu\cliopts.cpp/h into emu\clifront.cpp/h . Splitted UI and frontend part from core . Reset menu on toggle fullscreen . SOFTWARE LIST . Fixed software loaded outside of software list (e.g. -cart PATH_TO_ROM) fails to save SRAM (emu\diimage.cpp) (ID 06173) . Reverted software-installed slot/image options when changing software. Removed emu.h's stealth include of emuopts.h through mconfig.h; reduced dependency on emuopts.h in other headers and source files. MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than a global one; it still works to override the -drc option setting. . Added support for "rom_ignore" . PLUGINS . Added cheat LUA plugin. Added LUA cheat finder library. Added basic menu for cheatfind. Make ram scan work. Added width and endian awareness. Run same operation over a batch of data. Preliminary support to inject cheats for testing. Added safe table functions to sandbox. Added game time for cheats which want a time delay. Load multiple files and fix load failure. Changed match behavior and add on screen watches. Added bitwise comparisons. Fixed machines with >1 ram regions. . Added sample plugin for game time. Added play count. Don't fail if file is corrupt (plugins\timer\init.lua). . Hiscore: Checksum all the regions (plugins\hiscore\init.lua) . LISTXML/INFO . Improved documentation of input devices in the -listxml output, since having just a generic 'number of buttons' is rather pointless in the context of home systems with configurable controllers (being them keyboards, keypads or joypads). Now the various controllers are listed separately with the number of buttons they have. Frontend authors who relied on the "buttons" attribute of the input node for any kind of filter shall now scan all available controllers and take the maximum among their "buttons" attribute (possibly discarding keyboards and keypads if they want) to recover the old value. . Started to acknowledge PORT_16WAY inputs in -lx, since they were reported as 8-ways so far. . First attempt to fix the longstanding issue about inputs owned by devices being always tagged as P1 inputs in -lx. This proposed solution increases the field.player() value whenever the owner device changes, unless the input is a keyboard: in this way we correctly number pads and other controllers connected via slot devices to consoles/computers, at price of tagging as 3-player games a few arcades (e.g. those in cubo.cpp) which have two controllers + a touchscreen attached through a separate device. . Fixed wrong default BIOS outputted with -listxml command (ID 06019) . MULTI-LANGUAGE . Initial Catalan translation . String Translate for Chinese (Traditional / Simplified) . Czech language translation . Updated German GUI translation . Updated Greek translation . Updated Italian translation . Updated Japanese translation . Updated Portuguese (Brazil) . Updated Serbian translations . Updated Spanish translation . Compressed internal layouts + Python 3 compat . Listxml output fix (port->tag()) . Moved man files, emscripten/windows resources, clipboard handling and common struct to proper location (osd\sdl\man\LICENSE -> docs\man\LICENSE ...). . Use XAudio2 by default if available (lib\osdobj_common.cpp) . Archive handling improvements . Improved error handling in 7zip file I/O code . Fixed reading 7zip files >=4GB on LP32/LLP64 targets . Updated to LZMA SDK to 15.14, supports new 7zip features. Stop relying on local hacks to LZMA SDK. . Support most ZIP64 features excluding directory compression and LZMA-compressed files in ZIP archives . Support Info-ZIP UTF-8 file name fields . Fixed phantom files/directories when browsing archives. Report archive handling errors. . Removed OS dependant output handling and added none and console output providers . Added skeleton for network output . Probably fixed the arcade only build (missing games smssgame and spartanxtec) . Implementation for Universal windows main app classes . Get rid of some options that no longer exist (docs\man\mame.6) . Updated windows to use platform independent watchdog implementation. Renamed class to osd_watchdog. . Standardize platform window pointer storage in osd_window. Also encapsulate show/hide capture/release cursor functionality. Check that we have a window before updating cursor state. . Refactor OSD window. Unified renderer in osd_window as std::unique_ptr. Made windows all std::shared_ptr. Made window lists std::list>. Updated OSD SDL worker_param to not use malloc (not compatible with smart pointers). Made renderer pointer to window a weak reference. May not be available during destruction of the window. . MAME options . Fixed specialized ini file settings get retained on a second game launch (emu\emuopts.h) (ID 06171) . Created mame_options as 1st step towards creating core independent of MAME implementation (m_options -> mame_options + emu\mameopts.cpp) . Create final snapshot on -str runs even for screenless systems (emu\video.cpp) (ID 04965) . Machine management cleanups: Boolean parameter to running_machine::run is no longer firstrun (which is now a member variable of mame_machine_manager) but quiet, which disables logging and audio recording without explicitly checking the system name. Sound recording is now turned on and off by explicit calls. The potential uses of this have not been explored. Dependencies reduced on drivenum.h, where the declaration for GAME_NAME(___empty) has been moved to. . Memory handling: Renamed emu\memory.cpp/h to emu\emumem.cpp/h - SDLMAME . Unsubscribe SDL input modules from events on exit (input\input_sdl.cpp and input_sdlcommon.h) . Cleanup init for SDL in total (input\input_sdl.cpp) . Merged sdl\main.cpp for windows platform (unicode). Moved aueffectutil to tools. . Fixed keepaspect & unevenstretch toggles in SDL OSD . Refactored osd_work to become more C++. Bye to malloc and memset. . Fixed BACKSLASH2 SDL key mapping - MAC OS X . Fixed OSX x86 invalid intptr_t conversion (sdl\output.cpp:86:50: error: format specifies type 'int' but the argument has type 'intptr_t' (aka 'long')). . Removed sdl\osxutils.h/mm, not needed anymore after move to C++11 features. - Android . New icon images (res\drawable-xxxhdpi\ic_launcher.png) . Fixed joystick on Android preventing application to crash, cleanup init for SDL in total. - JSMAME: Updated function signatures for Emscripten (emscripten\emscripten_post.js) - MESS . Added TMS1700/1730 MCU types . TMS9901 Interface: Added RST1 reset line . Added BIOS Rev. 4.35 to (MESS) NCR PC4i . Added more floppy debugging and fixed DMA masking in (MESS) ROLM 9751 . Indicate ready status in st0 after seek (machine\upd765.cpp) - Compiling . Support build without optimize flag. OPTIMIZE= to disable the current default value 3. Also allow ARCHOPTS to be set regardless of OPTIMIZE, useful for debug flags. . Iterate over core classes C++11 style. Avoid auto return types; silence some unused variable warnings. . 3rdparty . Updated BGFX, BX, GENie, Google Test and rapidjson . GENie cl.exe multiprocessor build fix (genie\src\actions\vstudio\vs2010_vcxproj.lua and host\scripts.c) . LUA engine . Added direct and region accessors . Added device_image_interface accessors, emu_file support and indexed items. . Make flags explicit . Added print_verbose, print_info, print_debug and print_error to LUA, and used it instead of print. . Save a copy of the search path so it doesn't get thrown away . Updated libuv to 1.9.0, LZMA SDK to 15.14 and expat to 2.1.1 . Basic TCP server based on libuv . Fixed the MSVC build (src\emu.lua) . Added PRECOMPILE=0 so in conjunction with ccache it gives better compile speed . Added UWP (Universal Windows Platform) compile to windows\winmain.cpp with implementation for cursor methods . Devfind revision phase 1. Cleaning out some legacy stuff. . Eliminate the cached device_t::m_region pointer and its region() getter method. Devices that need to bind to a region with the same tag should use optional/required_memory_region or optional/required_region_ptr with DEVICE_SELF as the subtag; this improves error checking (DEVICE_SELF has been moved to device.h for greater visibility in the source). . Allow required/optional_region_ptr to specify a specific length which must match that of the region found . Implement finder_base::finder_tag() getter for diagnostic purposes . Perform some (not very efficient) validity checks on memory region finders instead of allowing them to automatically pass . Privatize device_memory_interface::m_addrspace . Added includes for dependency documentation. There is still inconsistent use of assert(...) in src\lib\util. libutil compile will use assert from while other parts of MAME will be compiled with assert from emucore.h. . Added more Clang output to tell where #include errors are coming from . Converted osd_event into a class. Since all is std:: now, reduce to inlineable code. . Eliminate device_t::static_config, a type-unsafe legacy feature. . Rewrited or removed every last instance of MCFG_DEVICE_CONFIG and its two aliases, including within comments and dead code. . Moved osdsync to root of OSD and removed osdmini . Use std::chrono instead of GetTickCount in window.cpp/h for Windows OSD . Added short GIT version if building non-release build, also if GIT command is not available or if .git is not there (so building out of other sources). Always rebuild version.cpp when there is GIT version change. . Iterated over devices C++11 style. Replaced the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Added a few more typical getters to device_t::subdevice_list. . Various cleanups suggested by static analyzer (NULL -> nullptr, m_device.xxxx -> device()->xxxx, get_xxxx() { return m_xxxx; } -> get_xxxx() const { return m_xxxx; } ... ) . Instead of DEVCB_NULL use always DEVCB_NOOP to prevent confusion - Debugger . Added DEBUG_DIR and DEBUG_ARGS parameters, make sense right now for VS build (makefile, scripts\genie.lua and main.lua) . Make support for absolute paths for debug dir (scripts\src\main.lua) . Added ImGui based debugger. Note: Currently only works with the BGFX renderer. . Create diagnostic module for profiling and crash diagnostics . Enabled internal debugger, but this would need to go in time, it is too coupled with UI (debugger\debugint.cpp) 0.172 - New games: Android (early build?), Chicken Draw, Fire Ball (FM Work) and Lock On (Philko) - New Working games: Flash Point (World, bootleg), Flash Point (Japan, bootleg), Magical Touch, Tournament Solitaire and Volfied (Tourvision PCE bootleg) - New Non-Working games: Big Buck Hunter II - Sportsman's Paradise (v2.02.11), Butterfly Dream 97 / Hudie Meng 97, Game Tree [TTL], Lucky Bar (W-4 with mc68705 MCU) and Super Game (Sega Master System Multi-game bootleg) - New clones: Armed Police Batrider (Hong Kong) (Mon Dec 22 1997), Batsugun (Korean PCB), Buccaneers (set 3, harder), Cabal (UK, Trackball), Cherry Angel (encrypted, W-4 hardware), Cherry Master '99 (V9B.00), Coco Loco (set 2), Coco Loco (set 3), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Herle SA bootleg), Come Come (Petaco SA bootleg of Puck Man), Crazy Climber (Spanish, Rodmar bootleg), Hipoly (bootleg of Hyper Olympic), Jingle Bell (EU, V141), Jingle Bell (EU, V153), Jingle Bell (EU, V155), Jingle Bell (US, V157), Knock Out!! (bootleg, set 3), Last Resort (prototype), M.A.C.H. 3 (set 2), M.A.C.H. 3 (set 3), Major Title 2 (World, alt sound CPU), Moon Cresta (SegaSA / Sonic), My Hero (bootleg, 315-5132 encryption), Pac-Gal (set 2), Pac-Man (Moon Alien 'AL-10A1' hardware), Pac-Man (SegaSA / Sonic), Pleiads (Niemer S.A.), Robotron: 2084 (1987 'shot-in-the-corner' bugfix), Robotron: 2084 (2012 'wave 201 start' hack), Robotron: 2084 (2015 'tie-die V2' hack), Sega Ninja (315-5113), Spartan X (Tecfri hardware bootleg), Super Bishi Bashi Championship (ver KAB, 3 Players), Super Poker (v102UA), Super Poker (v114IT), Super Poker (v116IT-MX), Super Poker (v200UA), Super Poker (v203US), Super Poker (v205US), Super Poker (v306US), Toki (US, prototype?), Wave Runner GP (original, Rev A), Wonder Boy in Monster Land (decrypted bootleg of English, Virtual Console release), Wonder Boy in Monster Land (decrypted bootleg of Japan New Ver., MC-8123, 317-0043) and Wonder Boy in Monster Land (decrypted bootleg of Japan Old Ver., MC-8123, 317-0043) - New PEPlus games: Player's Edge (PK0756-PC084) Standard Draw Poker, Player's Edge Plus (X002252P+XP000050) Shockwave Poker and Player's Edge Plus (X002309P+XP000038) Triple Double Bonus Poker - New drivers: sms_bootleg.cpp, spartanxtec.cpp and spyhuntertec.cpp - New devices: ad1848, ibm5160_mb, isa_sblaster1_5, mouse_systems_mouse, snk68_spr and tvga9000_vga - New mame.ini options: CORE RENDER OPTIONS: keepaspect, unevenstretch, unevenstretchx, intscalex and intscaley. OSD INPUT OPTIONS: keyboardprovider, mouseprovider, lightgunprovider and joystickprovider. BGFX POST-PROCESSING OPTIONS: bgfx_path, bgfx_backend, bgfx_debug, bgfx_screen_chains and bgfx_shadow_mask. New HLSL presets. NOTE: Create mame.ini and ui.ini with mame -cc - New DATs: Cheat.dat (http://cheat.retrogames.com/), Command.dat (http://www.progettosnaps.net/command/) and GameInit.dat (http://www.progettosnaps.net/gameinit/) - COP400 CPU: Implemented the MICROBUS interface - MIPS CPUs: Fixed for MIPS3 compare timer (mips\mips3com.cpp) - PowerPC 4xx/6xx CPUs: Handle divide by zero (cpu\powerpc\ppcdrc.cpp) - Taito Ensoniq ES5505-based sound: Use device_mconfig_additions() (audio\taito_en.cpp) - TMS9927 sound: Added additional sanity checking to the TMS9927/CRT5027 core - 8250 UART: Don't clear THRE on write to the line status register - ATAPI: Basic disk change support (machine\atapicdr.cpp) - Discrete Netlist . First steps to move towards C++11. Base plist on std::vector. Replaced pstack with std::stack. Removed pnamed_list. Use c++ "for each" in a number of places. Fixed two "time bombs". Removed GCC pragmas. These caused problems with MS compiler. Renamed plist_t to pvector_t to clarify origin. Some code simplification. Use std::atomic in netlist\nl_lists.h with OpenMP. . Netlist code maintenance: Renamed netlist_analog_t to analog_t. Straighten object model. Reduced access to member variables. Use pvector for groups. Simple Coverity fixes. . Prepared code so that matrices can be allocated in one chunk of memory. Fixed Kid Niki sound speed. Make more class members private. . Simply solver code. Removed ATTR_HOT from solver code. Make virtual members protected. More code optimization. Hide matrix_solver_t implementation. Use netlist_time for time deltas. . Fixed pivoting and float usage . First version of Sherman-Morrison solver + some notes. Removed sorting from Sherman-Morrison solver. It doesn't help. . Fixed crash in stat output when no calculations were run . Added Woodbury solver - aleck64.cpp . Few miscellaneous N64 changes / improvements . Non-interlaced field index should be fixed at zero (video\n64.cpp) . Added ability to change reported EEPROM size at runtime. Adjust timing for SI <-> PIF DMA (video\n64.cpp). - angelkds.cpp: Modernized driver a bit. Added I8255 devices, use generic palette handling and removed 'fake inputs'. - bfm_sc4.cpp: Added layout for Frankie Dettori's 7th Heaven - carjmbre.cpp: Basic program-flow. Added sound and inputs (from online doc, obviously dipswitch info is same as before). Added bg tilemap, palette and preliminary sprites. Background colour looks correct compared to flyer (ID 02615). Marked game as working again, still some problems with sprites. - chihiro.cpp: Added region "mediaboard" and put media board rom in it. Also a few litte changes. More USB. Bulk transfers, let's try to comunicate with USB devices on Chihiro baseboard (machine\xbox.cpp). USB device from Chihiro baseboard now sends some data. - chihiro.cpp, naomi.cpp and triforce.cpp: Docs update - gaelco.cpp, targeth.cpp, thoop2.cpp and wrally.cpp: OKI6295 memory map instead of memcpy - goldstar.cpp . Some technical notes and minor cleanup . Added original Dyna Cherry Master '99 QL-1 V9B.00 set. Renamed existing set to cmast99b - it's hacked to remove Dyna name. Added DIP switch settings and defaults from manual, nothing confirmed. Confirm correct ROM loading. - himesiki.cpp . Improved rom banking. Fix up a few things and added i8255 devices . Added proper flipscreen support, previous support was incorrectly. . Hooked up to the scroll registers (Android (early build?) exposed this bug) - igs009.cpp . Added both missing PPI8255 devices and routed all inputs/outputs through them . Derived a memory map for Grand Prix '98, that seems to lacks of these devices. . Reparent all sets of IGS Jingle Bell. Added technical information about the hardware. - iteagle.cpp: Moved serial irq assignment to top level - megadriv.cpp: Swapped the endianess of the md_slot device bus to big endian, fixing megadriv cheats. - model1/2.cpp: Fixed ROM mapping in audio\segam1audio.cpp and correct authorship. This fixes playing certain songs in the Daytona USA sound test will not work, and will usually cause all audio to stop playing (ID 06147). - naomi.cpp: Notes about Atomiswave AW-NET cartridges - nbmj8688.cpp (two-player game improvements) . Flipped Player 2 view in layout\nbmj8688.lay to better represent what they see from their side of cocktail cabinet . Added DIP locations for bijokkoy, bijokkog, housemnq, housemn2 and livegal. Document DIP switches for livegal. Make analyser switch for bijokkoy, bijokkog, housemnq, housemn2 and livegal a toggle. Improved dipswitches for apparel, crystalg, idhimitu, iemotom, kanatuen, korinaim, kyuhito, mcitylov, nightlov, ojousanm, orangeci, ryuuha and vipclub. . Improved mapping of start buttons in two-player cocktails with LCDs (housemnq, housemn2, bijokkog and bijokkoy) (ID 02389). Fixed input handling in crystalg, crystal2 and nightlov is wrong (ID 02392). - neogeo.cpp . Added Universe Bios (Hack, Ver. 3.2) . Added correct roms labels and locations for alpham2p, burningfp and lresortp. . Marked alpham2p and burningfp AES VERSION and lresortp MVS VERSION. Sync neogeo.xml. . Don't load unibios 1.2 and older anyway for AES (includes\neogeo.h) . Fixed clone kof10th unable to start/fatal error (bus\neogeo\bootleg_prot.cpp) (ID 06168) - nmk16.cpp: Some configured banking and OKI6295 memory maps instead of memcpy - pcat_dyn.cpp . Fixed "I/O BOARD FAILURE" . Skip I/O board check and connect mouse . Make post text screen work with Trident VGA . Fixed rom mapping and document some keys . Added support for doubled horiz width in TVGA9000 . Added NVRAM and finish inputs. . Added sound (WSS+Sound Blaster 1.5) and mark Tournament Solitaire working - pcxt.cpp . Use PC motherboard device and banking . Plays music unfortunately - peplus.cpp: Added dump of cap1144.u50 for 'Montana Choice (MG0183) Multi-Game' - pse.cpp: Minor ROM definition fixes - psikyosh.cpp: Hooked up watchdog reset for the ps3_v1 board. Daraku Tenshi resets itself instead of hanging following the steps described in MT01112 (Enter into test mode, then into sound test; calling some music data (examples: 0x24 or 0xffff) will make the game hang, unless you press the reset button. In-game bug?). - segas16b.cpp: Improved clones Flash Point (World, bootleg) and Flash Point (Japan, bootleg) emulation (Games now playable) - shanghai.cpp: Converted driver to use the non-legacy HD63484 video device - spoker.cpp . Added the missing PPI's 8255 and routed the involved inputs/outputs through them. Clone 3 Super 8 (Italy) has PPI's initialization routines, but seems to be a leftover since it lacks of them. Also cleaned up the driver and added technical notes. . Decrypted all the US/UA sets. They are still not working due to hardware differences with the former ones laying in the driver. I/O are driven through IGS custom IC's instead of 2x PPI8255 devices. - sprcros2.cpp: Completely rewrote Super Cross II driver. Fixed sprites y positioning. Split legacy code in convenient function calls. Fixed opaque tiles for foreground. Added screen enable bit. Game can be marked working again. - su2000.cpp: Fixed CMOS size, nothing to boot from though. - suprnova.cpp: Some work towards save state support - taitogn.cpp and zn.cpp: CAT702 transform table must be specified in MCFG. This eliminates two instances of driver_start, including one performing a game-name lookup. - toypop.cpp: Rewritten driver due of relicensing. Fixed fg mapper layout. Getting comms right. Added bitmap. Working sound. Changed toypop_state -> namcos16_state. Added basic sprites. Make Libble Rabble to boot, missing RMW area and it shows. Added SCREEN_RAW_PARAMS (same as Galaxian HW). Libble Rabble and Toypop are playable now. Fixed flip sprites. - triforce.cpp: Avoid crash in case of BIOS loading (ID 06159) - tsamurai.cpp . Hardware actually runs at 224 x 256, especially noticeable in Go Go Mr. Yamaguchi. This fixes Mission 660 graphic problem (ID 00940). . VS Gong Fight sets 0 as player color in work RAM 0xc502 and it's never ever set up properly. Assume protection related issue. - Aero Fighters: Added OKI6295 memory map for clone Aero Fighters (bootleg set 1) - Atari games: SOUNDCPU rom loading cleanups in various Atari drivers - Bad Lands: Configured banking for the audiocpu instead of memcpy - Black Touch '96: Hardware is a Korean clone of 'SNK68' hardware so start to refactor and share code. - Bombs Away (prototype): Removed outdated BAD_DUMPs - Coco Loco: Added technical notes - Crazy Bonus 2002 . Updated DIP switch descriptions/defaults according to manual . Hook up stop buttons and add to layout. There may be a payout or keyout button and hopper switch that still aren't connected the game is playable with the current clickable artwork, but it might be a nice touch to add clickable buttons for the individual reel stop buttons. - Crime Fighters: World rev of Crime Fighters now default, 4P version was made purely for the US market. - Desert Patrol [TTL]: Added rom bd2.l1 from clone (set 2) - Dynamite Baseball: Two user1 roms were incorrectly being loaded into the data region, and a user2 rom was incorrectly marked as a bad dump because it had been paired with the wrong rom. The IC positions don't agree with other games in the driver, but the ROM check agrees with this (IC 11/12 aren't checked as data roms because they're model roms) and the rom pairings are now correct, and data structures match other games. - Fruit Land: Added sound - Gorf: Added missing Quark Laser (Joystick) lamp (ID 06145) - Pyon Pyon Jump: Added traces and notes - Magical Touch: Marked game as working - Moon Alien Part 2: Changed 'Moon Alien Part 2' and 'Moon Alien Part 2 (older version)' from clones of Galaxian (Namco set 1) to parent and clone - Number Crash: Make game boot with redumped rom - Penfan Girls: No longer loading unused ROMs in clone Penfan Girls - Step1. Mild Mind (set 2) since that board physically doesn't have the chips. - Race Drivin': Fixed issue noticed for clone Race Drivin' Panorama (prototype, rev 2.1) - Sega Ninja: Added correct 'rev A' sprite rom to Sega Ninja (315-5102), the program roms were rev A, looks like this ROM was missed when it was dumped before and correct rom names. - Spy Hunter: Pull clone Spy Hunter (Spain, Tecfri / Recreativos Franco S.A. PCB) out of the MCR-3 driver, hardware is too different. Also hook up sound cpu and added notes about inputs. - Star Fighter (v1): Fixed 'Bonus_Life' and 'Difficulty' dipswitches (ID 06153) - Steeplechase [TTL]: Added correct Bugle sound chip rom - TeddyBoy Blues: Added the encryption related prom to clone TeddyBoy Blues (Old Ver. bootleg). Otherwise it's just the same as a regular romset, on a bootleg board. - TH Strikes Back: Added save state support - Vector games: Improved junction points of vector lines and fixed size of vector points. Fixed direction of vector extension. - Volfied (Tourvision PCE bootleg): Added redump of the cart - Removed drivers due to unresolved licensing (replaced with skeleton containing ROM loading only): flower.cpp, marinedt.cpp and popper.cpp - Input port . Rewrote input routines as modules (Common, DirectInput, SDL, Unimplemented, Win32, Windows and X11) . Added XInput support for Windows OSD. Dynamically load XInput. Simplify XInput dynamic linking. . Minor fixes for DirectInput 7 . Code cleanup in rawinput plus use common code for dynamic function binding . Use lambdas instead of wrappers (emu\ioport.h). Wrap up INP header I/O. . Rewroted overly complex rawinput_device_improve_name function for rawinput module, plus fixing some other defects in input modules as detected by Coverity. . General code cleanup in input modules. Using ComPtr to manage DirectInput resources. . Fixed DirectInput stuck joystick directional input when window loses focus. The reset function for the device was overwriting the axis information previously obtained. Changed it to correctly only reset the state member. . Added IPT_POWER_ON/OFF F1/F2 meant for soft-power buttons, as seen often in battery-backed CMOS CPU machines like (MESS) NeoGeo Pocket. - Dipswitch fixes in goldstar.cpp, nbmj8688.cpp and suna8.c - Fixed rom names in nbmj8688.cpp, neogeo_noslot.cpp, spoker.cpp, system1.cpp and vigilant.cpp - Renamed (crimfght) to (crimfghtu), (crimfght2) to (crimfght), (jingbell) to (jingbelli), (pepk0756b) to (pepk0756c), (pepk0756a) to (pepk0756b), (pepk0756) to (pepk0756a) and (sbishik) to (sbishika) - Description changes of Asian Dynamite / Dynamite Deka EX, Cabal (World, Joystick), Cabal (Korea?, Joystick), Cabal (US set 1, Trackball), Cabal (US set 2, Trackball), Cherry Master '99 (V9B.00 bootleg / hack), Coco Loco (set 1), Derby Owners Club 2000 Ver.2 (Japan) (Rev A), Derby Owners Club (Japan) (Rev B), Derby Owners Club II Ver.2.1 (Japan) (Rev B), Derby Owners Club World Edition EX (Rev D), Derby Owners Club World Edition (Rev C), M.A.C.H. 3 (set 1), Pac-Gal (set 1), Sanrin San Chan (Japan, 315-xxxx), Spatter (315-xxxx) and Super Moon Cresta (Gremlin, bootleg) - MAME . UI . Fixed LANGUAGE_MENU changed when the HIDE_MENU on the customize UI are changed by cursor key . Fixed search for software list (ui\selsoft.cpp) . Enabled user interface navigation through UI_CONFIGURE button (tab key by default). Fixed DATs reload after path changes. Fixed software load failure from BIOS submenu. . Fixed missing mouseover highlight for in-game menu (ui\menu.cpp) . More UI internationalization . Removed unused code and key handler fix (ui\menu.cpp) . Use appname instead of hard-coded MAME for main title (ui\selgame.cpp) . Extended keyboard navigation in the UI on the right side. . Added the skeleton for a configuration menu for single machine. . Fixed bug in building the search path for images. . Added NotoSans-Bold as backup font for platforms that do not have default system fonts exposed. . Improved OSD font API: Release font handles on destruction. Moved font enumeration into OSD, implement for SDL, Windows and OSX. Fixed drawing characters outside Unicode BMP with sdl_ttf. Support TTC fonts with sdl_ttf. Separated font display names from configuration names. Made OSX font configuration name the PostScript face name. Made sdl_ttf configuration name Family|Style. Supply ui_small font as a BDF file with Adobe glyph names. . Moved options "Configure Directories" and "Save Configuration" into "Configure Options" menu . Removed unnecessary icons from the toolbar (performed the same actions of entries already in the menu) . Proper handling the export of the list. Updated the .po files . Make some of the UI code more localisable . Changed filter label from "Originals" to "Parents" (ID 06143) . Improved ROM-less and availability checking at startup (ui\selgame.cpp) . Proper removal of the folder from the path (ui\dirmenu.cpp) . Changed %d to %u to correct ARGB settings display (ui\custui.cpp) . Fixed failure to load software from the BIOS menu selection . Added handling of mouse button held down on arrows in the machine list . Fixed "Show mouse pointer" option stays off (ID 06152) . Improved layout for viewing in vertical orientation . Added support and configuration for the image collection "covers". Slightly modernized and simplified the code. . Fixed unwanted games unpauses when loading External DATs view . Fixed BDC loading and fullpath TTF loading (emu\rendfont.cpp) . Proper drawing of the panels arrows for vertical orientation . Reducing the code for managing icons . Added support to "gameinit.dat" (http://www.progettosnaps.net/gameinit/pS_gameinit.zip) . Allow software selected from UI to install slot defaults. Remember to load software when the system name doesn't change. . Made Alt+Arrow minimize or maximize value (ui\sliders.cpp) . MAME OPTION . Let slot_default in softlists override INIs (but not the command line; emu\emuopts.cpp) . Added support to adjust the screen color. This is now used for monochrome screens instead of creating custom palettes (8080bw.cpp, ace.cpp, blockade.cpp, circus.cpp, copsnrob.cpp, fastinvaders.cpp, galgame.cpp, headonb.cpp, hitme.cpp, meadows.cpp, nitedrvr.cpp, orbit.cpp, sbrkout.cpp, sshot.cpp, starcrus.cpp, videopin.cppand MESS drivers) . Changed default value of autoboot_delay to 0 (emu\emuopts.cpp). The LUA scripts themselves can use wait() to delay. . PLUGINS . Added parsing of plugin json files for machine_manager . Populate plugins structures and start marked plugins . Made menu for plugins . Added hiscore plugin (plugins\hiscore\hiscore.dat, init.lua and plugin.json). Added support for softlist rom hiscores. . Added -plugins / -noplugins (to enable or disable plugins in total): -plugin highscore (will enable just that plugin) and -noplugin highscore (will disable just that plugin). plugin/noplugin use comma separated list of plugins. . HLSL . Bloom refactoring: Calculation of bloom dimensions is now done only once, when render target is created. Reduced blur width for non-vector screens. Implemented shadow u/v option for source tile mode. Reduced raster bloom level to 8. Extended vector bloom level to 15. Changed vector bloom to be less blocky. Removed bloom_lvl9_weight and bloom_lvl10_weight options. . Cleaned up sliders a bit in render\d3d\d3dhlsl.cpp . Cleanup primary.fx: Split into primary.fx into 3 techniques for vector buffer, screen and UI pass. Moved register_texture() for shaders outside of texture_info creation. Added render_primitive parameter to register_texture(); currently unused. Removed other unused register_texture() definition. . HLSL presets: Added general presets for LCD, raster and vector screens. Added special presets for Game Boy (monochrome LCD) and Game Boy Advance (color LCD). . Refactoring of render targes and vector texture coordinates: Implemented proper texture coordinates for vector quad primitive. Vector screen is now processed in texture coordinates. Revered workaround for raster screen, which is again processed in texture coordinates. Known issue: cocktail mode for vector screen looks wrong. . Cleanup: Options are reset to loaded preset when game is closed. Changed default values of options to result in no effects activated. init_slider_list() does not returns but sets g_slider_list directly. Removed unnecessary oriented_vector_texcoords. . Fixed infinite loop while building slider list, when more than one window was created (ID 06144). . Added option for scanline variation . Added oversampling option and some cleanup . Get NTSC working in both BGFX and D3D . VIDEO RENDERING SYSTEM . Implemented integer scaling in core renderer: Moved -unevenstretch option to core renderer (-unevenstretch = fractional stretching (default) and -nounevenstretch = integer scaling). Added new options to core renderer: -unevenstretchx = Fractional stretching on horizontal axis, integer scaling on vertical axis, -intscalex = Horizontal integer scale factor, default is 0 (auto) and -intscaley = Vertical integer scale factor, default is 0 (auto) . Added screen-specific shader chain support. Added per-screen sliders. . Moved emu\ui\util render_load_jpeg to emu\rendutil. This also adds simple support for loading JPG in external artwork. . Added data-driven shader system for BGFX renderer: Allows an arbitrary number of passes, with arbitrary connections between passes. Ships by default with three effects: default = Simple bilinear stretch, unfiltered = Simple nearest-neighbor stretch and hlsl = A close reimplementation of the Direct3D HLSL shaders. Does not currently support bloom or vectors. Select the "shader chain" you wish to use with -bgfx_screen_chains * Adjust the settings to your liking with slider controls, saving and loading settings and presets will be added in a future version. See bgfx/chains/hlsl.json and bgfx/hlsl/blit.json for JSON format rules. For additional information, see the official MAME documentation. . FILE SYSTEM . Modernised much of the file handling code: Made core_file, osd_file and avi_file and polymorphic classes. Moved osd_file implementations to shareable OSD module code. Made zip/7z implementations of archive_file with common API. Prefer destructors over explicit close functions. Made APIs supply smart pointers. Pass std::string though lots of APIs rather than C string pointers. Added methods for flushing user-space file buffers. Made archive_file create/destroy thread-safe. Fixed buffer overrun when walking zip ECD. Fixed some resource leaks in file handling code. Fixed edge cases where incorrect error code was returned on Windows. Added Solaris PTY implementation. Support ~/$FOO/${BAR} expansion with SDL OSD. Made emu_file handle zip and 7z archives identically. Search archives with CRC+path, CRC+partial path, CRC, path, partial path when loading ROMs/artwork/cheats/etc. Added support for 7z archives via zippath API. Support 7z archives for fullpath loading and media file manager. Made romcmp tool support 7z archives. . Fixed file naming issue when creating new image from internal file manager with media loaded (thanks BIOS-D for reporting) . MULTI-LANGUAGE . Portuguese-Brazil translation update, reviewed and a few tweaks. Convert file to UTF-8. . Updated Chinese (Traditional / Simplified) translation . Added Dutch translation . Updated French translation . French (Belgium) translations . Some fixes/Update to the German translation . Added Greek translation . Added/Updated some fields in Italian translation . Updated Japanese translation . Updated/Fixed Russian translation . Sensibly improve the Castilian Spanish translation. Follow the Spanish capitalization rules, optimize space and use correct grammar, complete missing translations. . Serbian translation . Converted Serbian Latin to Cyrillic (Serbian_Cyrillic\strings.po) . Spanish translation for UI strings . Make translation will now remove fuzzy translations and will not merge those as well. Added IGNORE_BAD_LOCALISATION flag. . MAME LICENSE . Added LICENSE file and updated README.md and docs\mame.txt . Added license to files that were not part of build or are containing data to build sources for cpu emulation. . Added README and LICENSE files (CC0) to folders containing meta-data or documentation . Added license for translations, plugins, benchmarks, regtests and tests . Added/updated licenses for 3rdparty. Removed Apache 2 licensed library since it is not possible to mix with GPL2. . Fixed error and crash in netdev\pcap.cpp . Added mame.lst as main list, it is now generated and should be updated manually. Filtering for subtargets are done by flt files now (arcade.flt and mess.flt). Made sources build use info from mame.lst. Support for filtering exceptions. . Added DirectWrite font support module (font\font_dwrite.cpp). Added module probe support for directwrite so we can fall back cleanly. DirectWrite font enumeration support. . Use chrono calls for time handling in core . Begin documenting machine config macros (emu\mconfig.h) . Move font enumeration to OSD, separate font name from display name as needed for OSX. . Update Windows OSD file functions to preferred more modern versions. All still available on XP and later. . Fixed narrowing error with GCC if LARGE_INTEGER is a union (modules\file\winfile.cpp) . Fixed handling of return codes from newer Windows APIs. Fixed a handle-leak in Windows stat implementation. Return actual error code when path creation succeeds but file creation doesn't (modules\file\winfile.cpp). . Removing unused functions from winutf8.cpp. Also adding UWP implementations for Set/GetWindowText (windows\winutf8.cpp). . Removed disclaimer since it was not shown anyway and it is known fact . Fixed stack smash bugs in INP read/write and better encapsulate the INP header I/O code (thanks Tafoid for reporting), fix divide-by-zero in pathological case of zero-frame recording. . Added attotime test (scripts\src\tests.lua). Document attotime (emu\attotime.h). - MESS . Created AT motherboard device and split PCI and PS2 machines into own files . Added TP0320 CPU. Make DISASM tables human-readable. Preparation for splitting tms1k source file. Added TP0320 microinstructions decode. . PC . Simplify somewhat the PCs/clones and enable configs with less than 640k ram. tandy1t: make the shared vram actually work and use banking. Some of the tandy's will show garbage on the screen when booted, it's the memory test overwriting the shared VRAM. . It appears the IBM keyboard interferes with the Kaypro 286i a20 check (drivers\at.cpp) . Fixed GUI software list cartridge picker fails to select cartridge (ID 06156) . Floppy . Fixed subtle interaction between wd_fdc initial restore and floppy reset . Renamed ioprocs parameters from "generic" which MS C++ compiler treats as keyword when compiling with /ZW (formats\ioprocs.cpp) . Moved PDC floppy command trigger to correct register in (MESS) ROLM 9751 Model 10 . SVGA: Fixed potential crash when svga_s3 hardware pointer is at the edge of VRAM, and fixed viewport scrolling in Red Hat Linux / XF86_S3. . Initial Z80SCC Baudrate Generator support. Turned off logging. - Compiling . Splitted PARAMS into PARAMS and TARGET_PARAMS + deprecated (makefile) . Added .PHONY sections (makefile) . Renamed names that clash system defines in various environments (emu\luaengine.cpp, lib\netlist\nl_base.h, nl_factory.h and plib\pparser.cpp/h) . 3rdparty . Fixed sent upstream (bgfx\src\glcontext_ppapi.cpp) . Fixed autoboot_command (emu\luaengine.cpp) . Fix up a few things in chain JSON loading . Verbose enable debug data with -video bgfx (render\drawbgfx.cpp) . Added missing XAudio2 header from WINE that is free to use. Make XAudio2 available in all Windows OSD builds, plus use 2.9 if available and code cleanup. . Updated BGFX, BX, benchmark, rapidjson, Google Test and GENie. BGFX_CONFIG_DEBUG=1 for Debug builds. Now BGFX shader compile tools are built on host machine. Merge bgfx_shader into master. . Added ability to build using system libuv (1.8.0 or higher required) . LUA engine . Added LUA function screen.orientation(). Return rotation_angle, flipx and flipy attributes. Example: S = manager:machine().screens[":screen"]:orientation(); print (s.rotation_angle, s.flipx, s.flipy). Added popmessage and logerror for LUA. Added software name getter. Extend system library support (scripts\extlib.lua). . Extend USE_SYSTEM_LIB_* to support providing the library name and include directory. To link against system specific lib names and header path: USE_SYSTEM_LIB_LUA=lua5.3:/usr/include/lua5.3. Multiple link and include path support (ie. USE_SYSTEM_LIB_FLAC=FLAC,ogg:/usr/include). . Fixed LUA error message when MAME folder is in a dir containing non-English characters (ID 06150) . Android . Removed NaCl (Google Native Client) and fixed and PNaCl (Portable Native Client) (makefile, scripts\3rdparty.lua, genie.lua and toolchain.lua). . Make Android targets compile but not link, using Clang compiler in NDK, since GCC will be removed in next one. Fixing some more Android related things. . Fixing some Android related things and compile . Added support for x64 Androids . Added compiling SDL2 for Android + Build SDL2 for Android . Initial work to make MAME work on Android . ARM platform: Support for AArch64 (32/64-bit ARMv8-A; makefile) . Blackberry: No way to support QNX/Blackberry - ARM . Creator-Ci20: Ci20 wip support . MAC OS X: Made Xcode params more generic . OS/2 can not support SDL2 which is needed for MAME to run . Raspberry Pi: Added support for Raspberry Pi cross-compile. Compile BGFX for RPI as well. . SDL . Separated Windows only part in SDL2 build and prepared OSX one . Added -exit_after_playback to man pages sdl\man\mame.6 and mess.6 . Using SDL_INIT_GAMECONTROLLER it explicitly calls SDL_INIT_JOYSTICK some experimental code . Fixed drawing characters outside Unicode BMP with SDL. Font selection on Linux seems to be working provided you don't choose C/J/K fonts. Selecting a C/J/K font causes MAME to give a black screen when dropping back to main menu. Since fallback fonts aren't used, this means you can't use the Chinese/Japanese localisations with SDL font provider. . A lot of TTF fonts (including C/J/K fonts like unifont) do not have an type attribute "Regular". This fix will load the first font found if no "bold" "bold italic" "italic" or "regular" attribute was found. Implement Couriersud's proposal to put style name in the config name for SDL fonts. Enumerate available font styles as well as families. Still has a problem in that TTC fonts are enumerated but can't be loaded by SDL_ttf (font\font_sdl.cpp). Build more of font_sdl.cpp with Emscripten since there is an SDL2_ttf port now (src\main.lua). . Fixed SDL input focus tracking bug plus removed references to USE_OLD_SDL_INPUT compiler directive from the input refactor. . Build project for Windows Store . Fixed build on SteamLink and enforce BGFX on it . Visual Studio . Made Visual Studio use by default bundled SDL2. Make possible to select if bundled SDL2 is used, made MinGW and VS compile so far. . Enabled multi core compile on VS . Replaced strformat, strprintf and strcatprintf with type-safe steam_format and string_format. Updated MAME to use new function. Instantiate ODR-used static constant members. Removed use of retired functions in tools. . Made makefile executable without GNU tools (makefile) . Support *n conversion in stream_format/string_format: Make stream_format return characters printed. Added iostreams with std::vector storage. Move to type-safe templates for logerror and popmessage. Removed now-unnecessary I64FMT from calls to logerror/popmessage. Put some lib/util stuff in util:: namespace. Added ability to pass argument packs that don't need templates all the way down (util\strformat.h). . Added function for flushing file buffers. Explicitly flush log file on each line. Don't need to call FlushFileBuffers (it's equivalent to fsync, not fflush) in emu\machine.cpp and osd\windows\winfile.cpp. . Get rid of most uses of core_i64_hex_format, all remaining uses are in memory.cpp. Also core_i64_format. this cleans up abuse of static buffers in the unmapped read/write reporters. core_i64_hex_format is now a static function in emu\memory.cpp. Implement swappable concept properly (util\vecstream.h). . Use std::atomic and std::mutex where applicable. Removed test in emu\validity.cpp since atomic functions about to be removed. Use std::atomic in chd.cpp/h and sync\work_osd.cpp. Removed asm part for atomic implementations (osd\eigccppc.h, eigccx86.h, eivc.h, eminline.h and sync/sync_windows.cpp). . Used std::thread and std::condition_variable . Reduced number of formatting template instantiations needed - should reduced compile time and executable size a bit (util\strformat.h). . Turn core_file into a proper class that gets cleaned up safely using unique_ptr . TIMER_CALLBACK to TIMER_CALLBACK_MEMBER . Removed I64FMT and SIZETFMT, one usage left in tools\chdman.cpp. . Use type-safe printf for core_file and emu_file, surprisingly few knock-on effects. . Allow seek to position 0 in a vectorstream with empty storage, always reserve 1k for core_file printf buffer. . With latest package from MSYS of Clang 3.8.0 build at least compile fine on windows . Fixed GCC 6.0 build . Clang 3.8.0 supports -municode . Make osd_file a polymorphic class that's held with smart pointers. Make avi_file a class that's held with smart pointers, encapsulate various AVI I/O structures. Make zip_file and _7z_file classes rather than having free functions everywhere. Hide zip/7z class implementation behind an interface, no longer need to call close() to send back to the cache. Don't dump as much crap in global namespace. Added solaris PTY implementation. Improved variable expansion for SDL OSD - supports ~/$FOO/${BAR} syntax. Rearranged stuff so the same things are in file module for all OSDs. Moved file stuff into its own module. 7z/zip open and destruct are still not thread-safe due to lack of interlocks around cache access. Directory functions still need to be moved to file module. SDL OSD may not initialise WinSock on Windows. . Put back Doxygen search box (doxygen\doxy-boot.js). Do not sort Doxygen member functions and macros for now (doxygen\doxygen.config). . ZIP . Removed confusing method from vectorstreams that hide base_ios method (fixes disassembly view). . Allow std::string to pass through core_file unmolested (reduces temporary allocations). . Make zip/7z instances of same class with uniform interface. . Note: zippath browsing is broken at the moment. This is another step towards transparent archive support. It's now possible to access zip and 7z archives with the same code. Nothing is taking advantage of it yet. There's now some very similar code in fileio.cpp and clifront.cpp that could be folded at some point. . Fixed zippath browsing and allow zippath to browse/load 7zip. 7zip romcmp. . Fixed boundary check on parsing ZIP ECD . Make emu_file archive searh order CRC+path, CRC+partial path, CRC, path, partial path and fold some redundant code. Try next archive type if file not found, not just on open error (emu\fileio.cpp). . Emscripten . Fixed Emscripten build when Clang is the default compiler (issue #704) . Build more of font_sdl.cpp with Emscripten since there is an SDL2_ttf port now (src\main.lua) . Enable the internal delegates for Emscripten (util\delegate.cpp) . Allow command-line errors to work in Emscripten (src\main.lua) . Include shadow-mask.png in Emscripten . Fixed many valgrind mismatched free() / delete / delete [] errors (lib\util\corealloc.h) . Get max char size from ANSI codepage instead of IsDBCSLeadChar() (osd\strconv.cpp) . Updated makefile to support more building environments and to prevent crashing if folders are missing . Avoid dereferencing null pointers in set_system_name (emu\emuopts.cpp) . Type-safe C++ printf analog and vector-backed iostreams: Supports most C99, glibc, SUS and MSVCRT format specifications. Allows formatting any object with stream output operator with %s. - Debugger . Changed field format to show leading zeros for debugger 'dasm' command as well . Use stream with contiguous backing store for the disasmview's buffer (debug\dvdisasm.cpp) . Added common debugger commands to global menu bar. Also fix occasional crash in Copy Visible. Note that copy visible, paste, toggle breakpoint and view options still require you to use context menus in windows. Debug/Run menus only work when a debugger window has focus, so Break is less useful than it could be. . Commented out regression slow error.log on Windows (machine.m_logfile->flush(); emu\machine.cpp) 0.171 - New games: '96 Flag Rally and Michigan Super Draw (2131-16, U5-2) - New Working games: Carnival King and Pyon Pyon Jump (V1.40, Japan) - New Non-Working games: Cross Puzzle, Dragon Treasure 2 (Rev A) (GDS-0037A), Lucky 9, Multistar 7 2c, Name Club (J 960315 V1.000), Name Club Ver.2 (J 960315 V1.000), Print Club 2 '98 Summer Ver (J 980603 V1.100), Print Club 2 Pepsiman (J 970618 V1.100), Print Club 2 Puffy (Japan), Print Club 2 Vol. 6 Winter (J 961210 V1.000), Print Club 2 Vol. 7 Spring (J 970313 V1.100), Print Club 2 Warner Bros (J 970228 V1.000), Print Club LoveLove (J 970421 V1.000), Print Club LoveLove Ver 2 (J 970825 V1.000), Print Club Yoshimoto V2 (J 970422 V1.100), Silent Scope Fortune Hunter and Wangan Midnight R (WMR1 Ver. A) - New clones: 1000 Miglia: Great 1000 Miles Rally (94/05/10), 1000 Miglia: Great 1000 Miles Rally (94/05/26), 1943: Midway Kaisen (bootleg), 64th. Street - A Detective Story (Japan, set 2), Block Block (World 911219 Joystick), Cherry Gold I (set 2, encrypted bootleg), Cherry Master I (ver.1.01, set 8, V4-B-), Cherry Master I (ver.1.10), D. D. Crew (bootleg), Fighting Golf (US, Ver 2), Frogger (Sega set 3), Jurassic Park 3 (ver UA), Moon Light (v.02L0A, high program, alt gfx), Moon Light (v.02L0A, low program), Moon Light (v.0629, high program), Multi Champ (World, older), NBA Jam (rev 1.00 02/1/93), NeoGeo Battle Coliseum, New Cherry '96 (bootleg of New Fruit Bonus?), Police 24/7 (ver EAA, alt), Print Club 2 '97 Winter Ver (J 971017 V1.100, set 2), Raiden Fighters 2 - Operation Hell Dive (Italy), Royal Poker '96 (set 4, C3 board), The Rumble Fish (prototype), Space Rocks (Spanish clone of Asteroids), Super Bobble Bobble (bootleg, set 4), Super Cherry Master (v1.0), Thrill Drive 2 (ver AAA, alt 2), Thrill Drive 2 (ver AAA, alt), Touche Me (set 2, harder), Tsurugi (ver EAB, alt), World Combat (ver AAD:B, alt), World Cup Volley '95 Extra Version (Asia v2.0B) and World Rally (Version 1.0, Checksum 8AA2) - New drivers: amazonlf.cpp and nibble.cpp - New devices: ay8930, jangou_blitter, zac1b11107 and zac1b11142 - New Compile Tools: MSYS2 (http://mamedev.org/tools/) - NOTE: Create new mame.ini and ui.ini with mame -cc. New mame.ini options: exit_after_playback = 0, language = English, languagepath = language, pluginspath = plugins, record_timecode = 0 and ui = cabinet. - CPU Interface: Make generic VTLB implementation a modern device interface - H8 CPU: Fixed a typo in the array length of the register names string - i386 CPU . Don't change IF when IOPL < CPL . 80386 sreg push only 16 bits and loadall. All OS/2 betas work with CGA now. - I8086 CPU: Fix i86\i86.txt notes - M68000 CPU . Removed generated files for m68k cpu core. Updated makefile to generate m68k files. Fix to work on OSX and Linux as well. . makefile should inherit CC and GCC if set in parent makefile. Added user overriden parameters for compiling mc68k core (makefile). - NSC8105 CPU . Added opcodes $b2, ldax_imm and stax_imm . ADCX opcode is actually an ADDX . Improved opcode $bb, added extra protection ports. . Fixed DASM for the new opcodes (cpu\m6800\6800dasm.cpp) - Z80 CPU . Added a debug mechanism for /WAIT pin assertion mechanism (enable with STALLS_ON_WAIT_ASSERT in CPU core), and hooked it up to Night Gal driver as a quick example. . Added crude implementation of WAIT pin . Put take_nmi in the execution loop, eg. z80 writes to another device NMI enable register. Removed obsolete irq_line write handler. - 8259 PIC: Added spurious irq 7 with logerror - Atari Custom . Modernized sound volume setting code in various Atari drivers. This lets atarigen.cpp shed legacy sound routines using the archaic method of looking up sound devices by types rather than tags, which until 0.126u2 they weren't required to provide and often didn't have (arcadecl.cpp, atarisy1.cpp, atarisy2.cpp, badlands.cpp, cyberbal.cpp, gauntlet.cpp, rampart.cpp, relief.cpp and machine\atarigen.cpp). . Atari Slapstic: One small step toward slapstic modernization. Make chip number part of device configuration, not init param. Correct mainpcb slapstic number in racedrivpan. Removed many unused slapstics. Hopefully no regressions. - Discrete Netlist . Added a BC548 transistor model (netlist\devices\net_lib.cpp) . Make Zaccaria 1B11142 sound board a device in preparation for netlist sound - Programmable Logic Device (PLD): Added support for the AMPAL18P8 (tools\jedutil.cpp). Adding regression tests for the AMPAL18P8. - Sega Custom: Evidence suggests there aren't 2 channels for 315-5838 / 317-0229 - blmbycar.cpp and glass.cpp: OKI6295 address map instead of memcpy - chihiro.cpp . Added backface culling to 3D accelerator . More USB (machine\xbox.cpp) . Redumped 'Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)' GDROM - cobra.cpp: Register 0x114 is fb read pix/line count - galaxi.cpp: Some cleanups - goldstar.cpp . Golden Star: Rearranged and splitted clone Moon Light (v.0629, low program) by program. This generated the new sets due to the hidden extra programs in the program ROMs. Fixed the program ROM addressing in clone Moon Light (v.0629, low program). This fix the corrupt graphics in the double-Up feature. . Better graphics decode for GFX1 for clone Super Nove (Playmark) and better approach decoding GFX2 bank. Green is OK. Red needs normal goldstar order. . Lady Liner aysnd address/data was wrong way around - the game doesn't do anything then enabling the ay though. . Found in Wild Poker where aysnd is mapped, but doesn't do much with it either. - jangou.cpp . Added screen raw parameters and notes . Moved JANGOU_BLITTER into a device . Implemented flip screen to driver - kurukuru.cpp . Fixed Pyon Pyon Jump (Game now playable). Created derivative machine driver. Hooked the V9938 Yamaha VDP. Added the DIP switches bank #1. Hooked the system input ports. Added support for Yamaha YM2149. Decoupled the YM2149 data read. Correct bankswitching. Added sound latch & output port. Proper inputs + DIP switches support. Second CPU IRQ ack. Promoted to working. OKI M5205 ADPCM samples support. Added notes about Pyon Pyon series. Documented Pyon Pyon Jump. Reverted Jyanpu to Jump. Firstly standard romanisation is "ja" not "jya" anyway, so it isn't even techically correct. Secondly MAME uses English spelling for imported English in Japanese titles, e.g. "gal" not "gyaru" in many mahjong titles. Better explanation of Pyon Pyon, don't hard-code default inputs, use standard bookkeeping input. . Proper year for Kuru Kuru Pyon Pyon from japanese Wikipedia. Notes about ADPCM Samples. - laserbat.cpp . Cat and Mouse: Redumped graphic rom as the correct size. Fixed sprite banking. Better approximation of colours, should be pretty close now. . Laser Battle: Fixed TMS3615 clocks, Guillaume Tell Overture is recognisable again. Note: If demo sounds are enabled (using DIP switches), background music is played every sixth time through the attract loop. Fixed inadvertently swapped TMS3615 organ chip clocks (fixes music). . Replaced some interrupt gen members with MCFG . Make Zaccaria 1B11142 sound board a device in preparation for netlist sound. Moved Zaccaria 1B11107 board into audio\zaccaria.cpp so it can share common stuff with 1B11142. Yes, I realise Cat and Mouse sounds different, the intermediate mixer seems to have that effect. It will all change again when we get netlist filtering anyway. - maygay1bsw.c: Fixed several games are crashing while initializing (ID 06137) - mcr.cpp, mcr3.cpp and mcr68.cpp: Small cleanup (includes\mcr3.h) - meritm.cpp: Replaced AY-3-8910A sound with AY8930. Doesn't use AY8930 expanded mode. - model3.cpp: Updated notes on DSB hardware - naomi.cpp: Added unknown NAOMI development(?) board BOOT ROM - nightgal.cpp . Added opcodes ldax_imm and stax_imm for NSC8105 CPU core, used by Night Gal Summer (cpu\m6800\6800ops.inc) . NSC8105 ADCX opcode is actually an ADDX, fixes gfx garbage in Sexy Gal. . Added opcode $b2, Night Gal Summer shows some graphics now. Improved opcode $bb, added extra protection ports. . Added screen raw parameters and basic outputs . Added a debug mechanism for /WAIT pin assertion mechanism (enable with STALLS_ON_WAIT_ASSERT in CPU core) to the Z80 CPU, and hooked it up to Night Gal driver as a quick example. . Changed Night Gal to use the new JANGOU_BLITTER device . Improved protection in Night Gal Summer . Implemented flip screen to driver - nwk-tr.cpp: Fixed network ram test - sigmab52.cpp: Changed the games description and added some notes - slapfght.cpp: Added Guardian PCB readme - viper.cpp . Unknown serial device at 0xff300000 . Fixed U13 fail in mocapb, mocapbj, p911, p911e, p911j, p911uc, p911kc and p9112 . Added newly dumped CF card for clone World Combat (ver JAA) - zaccaria.cpp . Replaced some interrupt gen members with MCFG . Make Zaccaria 1B11142 sound board a device in preparation for netlist sound. Added to Jack Rabbit and Money Money. - Arkanoid/Tournament Arkanoid . Fixed F3 soft-reset on Arkanoid sets with MCU . Made anonymous timer non-anonymous and fixed savestates for the sets using the original Taito MCU code . Documentation cleanup/updates - Carnival King: Fixed ITEagle FPGA. Game now working. - Chimera Beast: Added priority prom from 64street (ID 02327) - Gals Panic (Unprotected): OKI6295 address map instead of memcpy, added save state support and removed some leftovers. - Glass: OKI6295 memory map instead of memcpy - Janken Man Kattara Ageru: Avoid unnecessary use of PORT_CODE - Karate Champ: Changed clock speed to match music pitch based on video for clone Karate Dou (Japan) from https://www.youtube.com/watch?v=wiKH6qXWcTs. PCM/Samples are still pitched too low as detailed at http://mametesters.org/view.php?id=5607. - Mystery Number: Correct release year and manufacturer - Over Drive . Added screen raw parameters. Added sound irq ack and removed hack (doesn't seem necessary). Fixed gearbox input, flipped around irqs for testing. Note about versions. . Moved sprite irq DMA into a timer callback. Better naming for master-to-slave-irq-assertion. - Print Club 2 '97 Winter Ver: Added missing cart roms - Snow Board Championship: Figured out algorithm and replaced 8GB lookup table with proper emulation of device - Solar Jetman (PlayChoice-10): Changed flag to imperfect graphics - Super Punch-Out!!: Hopefully fixed protection - Taito Cup Finals: Added PALs to clone Hat Trick Hero '93 (Ver 1.0A 1993/02/28) - Vigilante: Added video timing prom. Note: One of the Buccaneers proms matches the Vigilante video sync prom. - Save state . Allow load/save state slots to be bound to joystick buttons . Fixed save state problem in karatblzbl, timeplt.cpp and MC6845/H46505 CRT (i.e. futflash, docastle, usgames and madalien) found by Tafoid . Don't crash on state load when the mixer is disabled by lack of inputs (misconfiguration or missing samples) (emu\disound.cpp) . Fixed save state problem for kof10th - Dipswitch fixes in goldstar.cpp, jangou.cpp, mitchell.cpp, nightgal.cpp and ppj - Fixed rom names in arkanoid.cpp, grdian, midtunit.cpp, naomi.cpp, potopoto, stv.cpp,taito_f3.cpp and wrallyb - Renamed (block) to (blockr2), (blockjoy) to (blockr1), (ngbc) to (ngbcj), (mj2) to (mj2f), (mj2g) to (mj2), (pclb297w) to (prc297wi), (pclb298a) to (prc298au), (pclub298) to (prc298sp) and (wrallyb) to (wrallyat) - Description changes of 64th. Street - A Detective Story (Japan, set 1), Cherry Gold I (set 1), Dead or Alive 2 (Rev A), Dead or Alive 2 Millennium, Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV), Joker's Wild (B52 system, WP02001-054, Ver.031WM), Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV, Harrah's GFX), Moon Light (v.0629, low program), Multi Champ (Korea, older), NeoGeo Battle Coliseum (Japan), Night Gal Summer (Japan 850702 NGS 0-01), Poto Poto (Japan, Rev A), Print Club 2 '97 Winter Ver (J 971017 V1.100, set 1), Pyon Pyon Jump (V1.40, Japan), Super 8 Ways FC (DB98103-011, Fruit combination), Touche Me (set 1), World Rally (Version 1.0, Checksum 0E56) and World Rally (Version 1.0, Checksum 3873). - MAME . UI . Initial import of MEWUI to MAME. . Added UI parameter, option simple gives back old style start screen, features for configuration and in game stays same as with new. Fixed "Can't unpause emulation when SHIFT key is mapped to Pause function (ID 06131)", it's now configurable. . Keep ui options separate from emulator ini file. TODO: Need fixing saving of some core settings that could be changed by UI. Moved some options to ui.ini. . Save mame.ini options only if they are updated in UI . Made -cc creates ui.ini as well. Added option to create mame.ini to minimal UI (ID 02604). . MAME related settings are saved on request only . Added save to simple UI (ui\simpleselgame.cpp) . Allow dat files in the root by default. Fixed search path for snapshots. Fixed text in custom colours setup screen. The video mode in the menu display options are now obtained directly from the settings. . Added new options: -[no]exit_after_playback (default=no) and -[no]record_input (default=no). Added new UI shortcut to save current timecode (default F12). Videosnaps patch (additional file to write: gamename.inp.timecode). Translated variable names and comments to english language. . Removed the creation of cache file 'info_', and also removed 'Screen Type', '(no)Samples' and 'Stereo' filters. TODO: Pending to restore them in a proper manner. . Standard menu now correctly handle the double click of the mouse . Grouped display of external DAT file information in a single view. Fixed crash clicking on the DATs icon in the toolbar if there is no info available. . Fixed ROM-less games like breakout cannot be started from internal UI (ID 06135) . Added support for autofire under cheat menu and available only if cheats activated . Draw FPS counter even in menus . Allocate and draw icons only if available . Fixed search in filesel, dirmenu and swlist. . Added option in the "Customize UI" menu for selecting the language . Make internal mousepointer (that big orange one) smaller and less jaggies (ui\ui.cpp) . Multi-language . Added multi-language support for MAME (language\Afrikaans, Albanian, Arabic, Basque, Belarusian, Bosnian, Bulgarian, Burmese, Catalan, Chinese_Simplified, Chinese_Traditional, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, French_Canada, Georgian, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Macedonian, Norwegian, Persian, Polish, Portuguese, Portuguese_Brazil, Romanian, Russian, Serbian, Serbian_Cyrillic, Slovak, Slovenian, Spanish, Spanish_Mexico, Swedish, Thai, Turkish, Ukrainian and Vietnamese). . Added sample language to show display in cyrillic use mame -lang "Serbian (Cyrillic)". . Added ability to work with static text translation . Added python replacement for msgfmt (Generate binary message catalog from textual translation description) . Software list . Software list entries can now supply slot option defaults. This feature is enabled when executing 'mame driver software'. After the specified software is found in the software list and attached to an appropriate image device, the software part's feature list is examined for any feature whose name is that of a slot device with _default appended. The feature's value field becomes the slot's default option, which overrides any driver-specified default and can be overridden by user-specified options. No software lists have been updated to use this feature at the moment. . Ignore invalid default slot options in software lists. This prevents software lists from (e.g.) trying to put a Zapper into ctrl1 on the Famicom. . Make octal flag part of address_space/address_space_config, not (illogically) device_execute_interface. . Dropped DirectDraw renderer (render\drawdd.cpp and drawdd.cpp) . Fixed -window -r -nokeepaspect behavior on Windows OSD and nounevenstretch (windows\window.cpp) . Fixed ledutil (ID 06134) . HLSL . Fixed skip of phosphor pass (render\d3d\d3dhlsl.cpp) . Improved scanline simulation: Changed the amount of scanline darkness, a setting of 1.0 now becomes fully black (to get the same result as before half your current setting). Scanline height now depends on the brightness of the underlying color. The amount of the scanline brightness and overdrive now depends on the scanline darkness. Renamed 'Scanline Screen Height' to 'Scanline Screen Scale' and 'Scanline Indiv. Height' to 'Scanline Height'. . Fixed Bloom level alignment: Fixed target dimensions of bloom levels, which results in a much better alignment especially for game with very low resolution (therefore current bloom settings might look a little less intense than before). Small cleanups. . Quality and performance improvements: HLSL now uses NPOT sized target surfaces (breaks compatibility with graphics cards based on R300/R400/NV30 and older). HLSL target surfaces now have the size of the screen canvas. Removed HLSL pre-scale factor. HLSL now uses a sharp bilinear interpolation to pre-scale textures to screen canvas size, based on [Themaister's] implementation. Improved overall performance (based on the previously required pre-scale factor, you might notice a 5-50% speed-up depending on your graphics card, more if you used a higher pre-scale factor). Improved shadow mask quality (pixel-perfect) in screen-mode. Fixed half source texel offset of bloom level alignment. Removed ./hlsl/artwork_support folder. All shaders after pre-scale are now based on screen coordinate (workaground, till both raster and vector pass can work on texture coordinates). Disabled distortion shader for more than one screen and for artworks in full mode, does not affect artworks in copped mode (workaground, till both raster and vector pass can work on texture coordinates). Moved compute_texture_size() from texture_info to texture_manager . Resolved conflicts in render\d3d\d3dhlsl.cpp/h, drawd3d.cpp/h and winmain.cpp - SDLMAME . If binding, listening or connecting to a socket fails, then close the socket handle (sdl\sdlfile.cpp). . Substantial improvements to Web Audio sound backend for Emscripten port (sound\js_sound.js) . Make window index part of osd_window . Refactor MACOSX_USE_LIBSDL to USE_LIBSDL for windows and linux static library support . Removed SDL 1.2 support. Added SDL 2.0.4 for Visual Studio, so it can be compiled out of box. Made OSD=sdl build compile out of box in Visual Studio. - MAC OS X . Check STRIP_SYMBOLS in strip function and add strip support for OSX . OSX Clang, silence flac unknown attribute error. - MESS . Fixed Amiga expansion port interrupts, DMAC WIP. . uPD7220 video: Command 05 appears to blank the display - Compiling . Call to nothrow allocation (global_alloc -> global_alloc_nothrow and global_alloc_array -> global_alloc_array_nothrow) (debug\textbuf.cpp, render\drawdd.cpp, sound\wavwrite.cpp, util\corealloc.h and windows\input.cpp). Conversion from auto_alloc_clear -> global_alloc_clear (imagedev\floppy.cpp and emu\diimage.cpp). . Removed pointless cast like (wav_file *) global_alloc -> global_alloc (debug\textbuf.cpp and sound\wavwrite.cpp) . Avoid strlen calls in a loop (debug\debugcmd.cpp, emu\luaengine.cpp and render.cpp) . Simplified "device_image_interface::set_image_filename" function (emu\diimage.cpp) . Replaced int with bool where applicable (int xx = TRUE/FALSE -> bool xx = true/false) . 3rdparty . Added Google Benchmark library. Included sample benchmark for eminline for native and NOASM. Made GoogleTest compile only if tests are compiled. . Added libuv library (https://github.com/libuv/libuv) . Added http-parser (https://github.com/joyent/http-parser) . Initial support for BGFX. Added multi window support for BGFX backend. Significant speed improvements to the BGFX renderer. Enabled BGFX support for SteamLink. Use RGBA instead of BGRA. Added basic JSON-based single-pass shader effect support to BGFX renderer. . LUA engine . Added lua-zlib, lfs and luv support for LUA, exposed all using luaengine. Added plugins and boot.lua as startup script. Initialize LUA bit earlier to give more opportunities to scripts. . Added multiple callback registration for LUA scripts . Extended LUA API + parameters, video, ioport and cheat . Added plugin info json files and made system automatically load available plugins and start them if flagged so . GENie make targets for packager scripts . Added rapidjson . OSD Mini: Fixed build issues (osd\osdmini.lua, osdmini_cfg.lua and minimisc.cpp) . Added macros for alignment checking . Replaced osd_lock with std::mutex. Fixed regression with some drivers, for render we just need to keep mutex per thread. Reverted using dereferenced mutex (sync\work_osd.cpp). . Start making code a little more modern c++y with classes, member functions etc. rather than legacy structs, tokens etc (machine\k033906.cpp/h, video\vooddefs.h, voodoo.cpp/h, voodoo_pci.cpp, drivers\funkball.cpp, gticlub.cpp, hornet.cpp, magictg.cpp, nwk-tr.cpp, savquest.cpp, seattle.cpp, vegas.cpp and viper.cpp) . Added a document with Emscripten build instructions (Compiling MAME to JavaScript via Emscripten) . Suppressed C4592 warning in VS 2015 (scripts\genie.lua) . Fixed compile when using params like OVERRIDE_CXX='ccache g++' OVERRIDE_CC='ccache gcc' . Improved cross compile support: Added TOOLCHAIN make flag for explicit toolchain prefix cross compiling. 0.170 - New games: Il Galeone, Last Four (09:12 16/01/2001), Waku Waku Marine and Wing Force (Japan, prototype) - New Working games: Ninja Kazan and Snow Board Championship - New Non-Working games: Dragon Treasure 3 (Rev A) (GDS-0041A), Game King (Set Chips), Game King (v4.x), Pyon Pyon Jump (Japan), Super Cherry, 'unknown San Remo / Elsy Multigame' and 'Unknown Tab Austria Poker' - New clones: Desert Patrol (set 2) [TTL], Game King (EZ Pay, v4.0, MS), Game King (Triple-Five Play), Game King (v4.3), Game King (v4.3, NJ), Game King (v4.x, MS), Gun Dealer (bootleg), The Karate Tournament, Laser Ghost (Japan) (FD1094 317-0164), Legionnaire (Japan), Maniac Square (protected), Multi Game '96 (Italy), Nova 2001 (Japan, hack?), Pacman Club (set 1, Argentina), Pacman Club (set 2, Argentina), Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt), Raizin Ping Pong (V2.01J), Rambo 3 (bootleg of Ikari, Joystick hack), Royal Card (stealth with MSX multigame), Royal Card (stealth with NES multigame), 'Sega Bass Fishing Challenge Version A', Sly Spy (US revision 4), Stadium Hero '96 (USA, EAH), Strata Bowling (V1 4T, Super Strike Bowling type PCB) and 'Strider (USA, B-Board 90629B-3, buggy Street Fighter II conversion)' - New Tourvision games: 1943 Kai (Tourvision PCE bootleg), After Burner (Tourvision PCE bootleg), Armed-F (Tourvision PCE bootleg), Ballistix (Tourvision PCE bootleg), Be Ball (Tourvision PCE bootleg), Bomberman (Tourvision PCE bootleg), Ch??zetsurinjin Beraboh Man (Tourvision PCE bootleg), Chuka Taisen (Tourvision PCE bootleg), Coryoon (Tourvision PCE bootleg), Daisenpu (Tourvision PCE bootleg), Dead Moon (Tourvision PCE bootleg), Devil Crash (Tourvision PCE bootleg), Dodge Ball (Tourvision PCE bootleg), Doraemon Meikyuu Daisakusen (Tourvision PCE bootleg), Dragon Spirit (Tourvision PCE bootleg), Final Blaster (Tourvision PCE bootleg), Final Match Tennis (Tourvision PCE bootleg), Gunhed (Tourvision PCE bootleg), Hana Taka Daka (Tourvision PCE bootleg), Jinmu Densho (Tourvision PCE bootleg), Kiki Kaikai (Tourvision PCE bootleg), Legend of Hero Tonma (Tourvision PCE bootleg), Mizubaku Daibouken Liquid Kids (Tourvision PCE bootleg), Mr Heli (Tourvision PCE bootleg), Ninja Ryukenden (Tourvision PCE bootleg), Operation Wolf (Tourvision PCE bootleg), Override (Tourvision PCE bootleg), Pac-Land (Tourvision PCE bootleg), PC Genjin Punkic Cyborg (Tourvision PCE bootleg), Power Drift (Tourvision PCE bootleg), Pro Yakyuu World Stadium '91 (Tourvision PCE bootleg), Psycho Chaser (Tourvision PCE bootleg), Puzzle Boy (Tourvision PCE bootleg), R-Type II (Tourvision PCE bootleg), Raiden (Tourvision PCE bootleg), Saiga No Nindou - Ninja Spirit (Tourvision PCE bootleg), Salamander (Tourvision PCE bootleg), Shinobi (Tourvision PCE bootleg), Side Arms (Tourvision PCE bootleg), Skweek (Tourvision PCE bootleg), Son Son II (Tourvision PCE bootleg), Tatsujin (Tourvision PCE bootleg), Terra Cresta II (Tourvision PCE bootleg), Toy Shop Boys (Tourvision PCE bootleg), Veigues (Tourvision PCE bootleg), W-Ring (Tourvision PCE bootleg), Winning Shot (Tourvision PCE bootleg) and Xevious (Tourvision PCE bootleg) - New drivers: gkigt.cpp and sanremmg.cpp - New devices: meters - New Compile Tools: MSYS2 (POSIX/Unix compatibility layer) (http://mamedev.org/tools/) - New Cheat.dat: http://cheat.retrogames.com/ - NOTE: Create new mame.ini with mame -cc. New mame.ini options are: console = 0, hum_bar_alpha = 0.0 (HLSL) and yiq_cc = 3.57954545 (HLSL) - I8086 CPU: (MESS) CPUID.ASM (Bob Smith 1985) suggests that in situations where m_no_interrupt is 1, (directly after POP SS / MOV_SREG), single step IRQs don't fire. - i960kb CPU: More potential workouts for the I960 CPU. Added IGT Game King games (gkigt.cpp). - M68020 CPU: Fixed (020+) bfins results and Z flag (m68000\m68k_in.cpp) - TMP95C063 CPU: Added analog inputs - TMS32051 CPU . More bug fixes (32051ops.inc, dis32051.cpp and tms32051.cpp/h) . Fixed accumulator conditions (32051ops.inc) - Beep sound: BEEP device clock() added, instead of default frequency of 3250 (see babypac, destiny, granny and pentacup). Removed set_volume. - DISCRETE sound: Getting rid of global_alloc_array_clear at least, clearing is essential to objects in vector_t so that is why previous attempt did not work (sound\discrete.h) - RF5C400 sound: Added external memory r/w function - S14001A sound . Added optional devcb callbacks for mem read and BSY pin. Set default amp to 15. . Added more accurate SSi S14001A speech chip emulation, written by one of the people at SSi who originally laid out the S14001a silicon in 1974/5! (http://www.vintagecalculators.com/html/speech-.html). . Added new s14001a_device to Berzerk, Frenzy, Moon War, Wolf Pack and st_mp200.cpp (catacomp, flight2k, freefall, lightnin, orbitor1 and spltsecp) . Added savestates to new s14001a_device - SCSP sound: Make ST-V not crash. coolridr defines a region for the RAM, stv driver doesn't. Uses set_ram_base instead, which seems to be more correct anyway. - YM2608 sound: Null pointer bad (YM2608 YM_DELTAT_ADPCM_Reset; sound\fm.cpp) - 6821 PIA: Stop PIA from spamming debug console by default - ATAPI: Try to fix a problem when m_buffer_size is not a multiple of sector size (machine\atapihle.cpp). When reading sectors using the packet command, if the "Byte count limit" is not a multiple of the sector size, only a subset of the data will be transferred. It happens sometimes with the Xbox. - Atari Custom . Fully disentangle Liberator from machine\atarigen.cpp . Getters for atari_vad_device return devices as references, not pointers. - Flash ROM: Added Intel TE28F320 Flash (machine\intelfsh.cpp) - Harddisk: Respond to command SECURITY DISABLE PASSWORD (machine\idehd.cpp) - Laser Disc: Make ldplayer\ldplayer.cpp compile again - MC6845 CRT: Fixed speed is always 90-98% when throttled in several drivers using MC6845 (ID 06046) - Taito Custom: Swapped TC0780FPA (Polygon Renderer) buffers on command 0 - Voodoo GFX: Shuffle some code around, move included code to .inc file, easier to read / understand than the self-include. also kill off the old rasterizer path, the new one seems to work fine, so it's essentially dead code, hopefully nobody has an issue with this. - 20pacgal.cpp, 8080bw.cpp, pasha2.cpp, segas18.cpp, whitestar.cpp and witch.cpp: Switched driver to configured banking and removed the now unneeded postload. - 40love.cpp . Added global color select bank, fixes colors in later levels for Forty-Love. . Added screen disable bit, used by Field Day/Undoukai during transitions. . Added notes to video\40love.cpp. Fixed TODO. - aristmk5.cpp: Changed games to MACHINE_IMPERFECT_GRAPHICS - bagman.cpp: Fixed prom region lengths in Bagman, Super Bagman and clones - berzerk.cpp: Small cleanup - chihiro.cpp . Improved support for fixed function pipeline . Added simple superio support and more USB. Bytes sent to the supoerio's first RS232 port will be echoed on the console, this way it is possible to see the ouput of the OutputDebugString function. . Try to fix a problem when m_buffer_size is not a multiple of sector size (machine\atapihle.cpp). When reading sectors using the packet command, if the "Byte count limit" is not a multiple of the sector size, only a subset of the data will be transferred. It happens sometimes with the Xbox. . Docs update - cobra.cpp: Fixed JVS handling - cubeqst.cpp, cubo.cpp and midzeus.cpp: Removed spurious palette tags - dkong.cpp: Rewroted TMS6100 command handling - fitfight.cpp: Added new flag MACHINE_IS_INCOMPLETE and hooked it up to 'unknown fighting game 'BB' (prototype)' - iteagle.cpp . Marked 'Big Buck Hunter Call of the Wild' as NOT working. It still locks up after a few rounds, always has, can't be considered working. . Virtual Pool still has random lockups too unfortunately, I guess the previous protection fix wasn't complete, can't be considered working. Marked game as NOT WORKING. - m58.cpp: Small cleanup - naomi.cpp . Atomiswave PIO doesn't have auto inc (machine\awboard.cpp) . Document Atomiswave registers . Fixed rom lengths in 'Sega Bass Fishing Challenge' . Dumped World Club Champion Football's camera sensor board . Docs update - neogeo.cpp: Updated game PCBS info. Documentation update for various sets. - psychic5.cpp . Added SCREEN_RAW_PARAMS . Fixed sprite disable for Bombs Away . Added new flag MACHINE_IS_INCOMPLETE and hooked it up to Bombs Away . Added notes - segas16b.cpp . Implement found() method for object finders . Removed unused(?) sprite device w/no ROMs in Atomic Point and Snapper (Korea) - segas18.cpp . Added documentation of a Laser Ghost test PCB . Fixed sprites rom loading in Bloxeed and clone - taito_f3.cpp: Fixed debug] AddressSanitizer: heap-buffer-overflow (pbobble3, pbobble3j, pbobble3u, pbobble4, pbobble4j, pbobble4u, rayforce and rayforcej) (ID 05866) - taitotz.cpp . Added analog controls . Replaced HLE rendering with actual chip emulation - tourvis.cpp . Tourvision cart flood (+48 carts) . Added V4.0 BIOS - vicdual.cpp . Rewroted Carnival music board emulation and copy-pasted samples handling from audio/pulsar.cpp. Kept sample names and function names the same. . Fixed invalid generic tag 'sound' used in Borderline - viper.cpp . Small cleanup . Fixed most sets in driver crashing at start (32-bit only) (ID 06097) . Fixed unused function issues - AGEMAME: Initial device-ification of machine\meters.cpp (Electro mechanical meters). This fixes MAME crashed when switching games qntoond and quintoon (ID 06117) - Arkanoid . Added emulation of the 68705 timer and timer interrupts . Fixed bugs with MCU port c ddr handling, latches and edge detection, added missing interrupt on Z80 write to MCU, and removed a boost interleave hack which was made unnecessary by these fixes. . Switched the Arkanoid (older) sets to use original Taito A75 06 MCU code as opposed to the bootleg MCU code used until now. The 3 (newer) and 1 Tournament sets still use hand-hacked bootleg MCU code until original MCU chips can be dumped and/or decapped. . All 9 of the dumped Arkanoid MCU code roms now work, if hooked up to the appropriate drivers. . Hooked the now-working 'deprotected Taito' MCU dump up to arkanoidjbl. Added an alternate gfx rom dumped from an original 'older' US board. Minor comment fixes. . Set YM2149 emulation to mix channels the same way the real pcb mixes them, by directly tying them together with no mixing resistors. This introduces some distortion, but is more accurate to actual pcb audio. . Added note about the number of optical quadrature slots (24) the arkanoid 1:20 geared spinner's quadrature wheel. - Battle Cross: Fixed flipscreen (ID 04900) - Bombs Away [TTL]: Andew Welburn redumped Meadows Bombs Away. Dump matched, but we have slightly more info on the PCB now. - California Speed: Added official updater roms to clone (Version 1.0r8 Mar 10 1998, GUTS Mar 10 1998 / MAIN Mar 10 1998) so that you can update the hdd / game revision if you so please. - Fast Invaders . Make Fast Invaders show something, although as we have schems we should probably just use them. Start adding devices. . Some improvements. Added 93427 prom. - Hana Jingi: Worked around long standing save state problem in clone Hana Oriduru (Japan) - Hard Head 2: Fixed Hard Head 2 (v2.0, bootleg) crashes shortly after start (ID 06126). Game remains not working though. - Legionnaire: Added priority prom to Legionnaire (World) and (US) - Lethal Thunder: Fixed 'Continuous Play' dipswitch (manual says Unused) in clone Thunder Blaster (Japan) (ID 06127) - Liberator: Fully disentangle Liberator from machine\atarigen.cpp - Mr. Driller 2: Fixed game crashed during init (ID 06090) - Mystic Marathon: Flagged game as having wrong colors and documented what is known regarding his as a TODO in the source - Ninja Kazan: Make game playable again. This fixes slow graphic rendering and missing graphics (ID 02640) - Operation Tiger: Converted taitopjc driver to tilemaps - Radar Scope: Some comments on TRS-01 'early radar scope' 5-PCB set. Fixed some ROM names in clone Radar Scope (TRS01) based on PCB pictures from Superully. - Raiden II: Added jj4b01 PAL from Sarayan - Snow Board Championship: Added 8GB decrypt table (Game now playable) - Street Fighter II': Champion Edition: Fixed inputs (sf2->sf2hack) in clone Street Fighter II': Champion Edition (M10, bootleg) (ID 06114) - Super Cherry Master: Board really missing a rom, it uses an unmarked MASK rom at 12c, 12a is unpopulated. Size unknown. - Super Dodge Ball: Added the existing from-decap I/O MCU dump to clone Nekketsu Koukou Dodgeball Bu (Japan), from which it was accidentally omitted. The same MCU is used for both US and J sets as far as I'm aware. Not sure about the bootleg set. - Super Free Kick: Filled in missing dipswitches and added DIP locations - Terra Force: Removed unused NB1414M4 in clone Terra Force (Japan, bootleg set 2) - Witch: Added save state support - Dipswitch fixes in sfkick.cpp and thndblst - Fixed rom names in bombaway, elevator, gundealr, skullfng and radarscp1 - Renamed (basschal) to (basschalo), (fi6845) to (fi8275), (fi8275) to (fi6845) and (slyspy) to (slyspy3) - Description changes of Akatsuki Blitzkampf Ausf. Achse, Arkanoid (World, older), Arkanoid (US, newer), Arkanoid (US, older), Arkanoid (Japan, newer), Arkanoid (Japan, newer w/level select), Arkanoid (Japan, older), The Berlin Wall (bootleg?), Bombs Away (prototype), Bygone (prototype), Chimera Beast (Japan, prototype), Fast Invaders (6845 version), Fast Invaders (8275 version), Mad Motor (prototype), Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J), Raizin Ping Pong (V2.01O) and The Karate Tournament (Japan) - MAME . Added realloc implementation as required by the C standard (util\corealloc.cpp) . Validity . Fixed errors from faulty merge (emu\validity.cpp) . Some more validity checking improvements . The -validate command now accepts an optional string, validating only matching drivers. This has proven useful for debugging. The default is to validate all drivers as usual. . Devices' names are tracked when validating their auto-finders . Clear device driver member variables on creation (emu\device.h) . Modernized configuration_manager (emu\config.cpp), crosshair_manager (emu\crsshair.cpp), image_manager (emu\image.cpp and diimage.cpp), network_manager (emu\network.cpp), output_manager (emu\output.cpp), rom_load_manager (emu\romload.cpp) and ui_input_manager (emu\uiinput.cpp). Get rid of global_alloc (emu\crsshair.cpp). Fixed image unload (emu\image.cpp). . Generic machine is now bookkeeping (machine\generic.cpp/h -> emu\bookkeeping.cpp/h). Modernized bookkeeping manager. . Make output be part of driver_device . Changed UI input initialization order and use templates to clear (emu\machine.cpp) . Implement found() method for object finders (emu\devfind.h; drivers\segas16b.cpp) . Print messages for BTANBs (MACHINE_IS_INCOMPLETE and MACHINE_NO_SOUND_HW)(ui\ui.cpp) . Palette . Pass and return palette devices by reference, not as pointers. . Added screen_device::has_palette() . Require device_gfx_interface::gfx() and palette() to access members . Have sound_stream::input_name return the std::string it constructs (emu\sound.cpp) . HLSL . Cleanup . Removed unused pincushion.fx . Refactoring . Replaced shader parameters OrientationSwapXY xor RotationSwapXY by SwapXY . Made shader parameters SourceDims, SourceRect, TargetDims, ScreenDims, QuadDims and SwapXY available for all shaders . Color convolution, defocus and phosphor pass will now be skipped if all influencing parameters are 0 . Removed unused bloom_texture and bloom_target arrays from cache_target class . Fixed half texel offset in prescale.fx . Restructured bloom level size and weight uniforms . Refactored color convergence . Color convergence is now independent from ratio . The radial convergence now "translates" the most outer pixel as thay would be translated by the linar convergence with the same amount . Color convergence is now limited to a maximum of 10 . Added color convergence pass to vector rendering . Fixed YIQ passes . Fixed half texel offset . Readded usage of A value in encode/decode pass . Readded jitter of B value in encode/decode pass . Readded usage of P value in encode pass . Fixed not set O value uniform for decode pass . Removed duplicate YIQ option definition . Changed default of O value back to 1.0 . NTSC Refactoring and Options . Merged YIQ encode and decode pass into one NTSC pass . Added options for most NTSC settings . Reduced sample count to 64 . Changed default O value to 0 . Fit NTSC signal jitter between a reasonable limit of 0 and 1 . Fit A and B value between a reasonable limit of -1 and 1 . Fit scanline jitter between a reasonable limit of 0 and 1 . Added hum bar simulation based on MooglyGuy's GLSL port of the mame shader pipeline . Added monochrome-chessboard.png . Added slot-mask-aligned.png (to simulate a TFT LCD) . Updated some of remaining licenses - MAC OS X: Don't link metal pre El Capitan (scripts\src\osd\sdl.lua) - OS/2: Added patch (scripts\genie.lua) - SDLMAME: Get .ini file default path makefile variable back (osd\sdl_cfg.lua) - Linux: Added SteamLink initial support - MESS . MC6847 video: Fixed (MESS) Goldstar FC-100 and Sanyo PHC-25 crash at start and Samsung SPC-1000 crash when a letter key is pressed. . Rewroted TMS6100 command handling, (MESS) Mr. Challenger sound is now correct. . uPD7220 video: Correct lr in graphics mode - Compiling . Added pre-compiled headers support to build system . Make linking of winpthreads static for posix MinGW build (scripts\genie.lua). Make compiler detection works under posix windows environments (makefile). . 3rdparty . Finish making makedep.py python3-compatible . Synced with latest GENie . Removed FILTER_DEPS, not stable and not functional (scripts\depfilter.awk). . Some cleanup in build scripts, GNU C99 for 3rdparty C files. . Added latest BX and BGFX . Added LUA console support back in . Removed JsonCpp library's source (3rdparty\jsoncpp\*.*) . XAudio2 support . Common OSD path environment var expansion . Removed memory tracking . Removed lib\util\corealloc.cpp file from build. Make make_unique_clear accept all kind of parameters (util\corealloc.h). . Return std::string objects by value rather than pass by reference . strprintf is unaltered, but strformat now takes one fewer argument . state_string_export still fills a buffer, but has been made const. Latching of external_input in Cinematronics CPU makes "state_string_export() const" to work by Juergen. . get_default_card_software now takes no arguments but returns a string . Added vector instead of simple_list . Visual Studio . Fixed solutionVersion for VS2015 and ToolsVersion for all VS201x. This fixes IncrediBuild under VS2015. . Fixed start project for custom builds in Visual Studio (scripts\genie.lua) . Keep naming of binaries for builds made with SOURCES to be same as usual, fixed propagation of flags for builds made with SOURCES. . Make SYMLEVEL=1 for full builds, and when custom builds are made save more debug info, otherwise it is not possible to create working executable (is over 2GB) for full build. . Removed this == nullptr checks and fixed most of the resulting crashes . Some nullptr -> 0x00 and NULL -> nullptr. PORT_C*_MEMBER cleanup. - Debugger . Update debugcon.h: Increased MAX_COMMAND PARAMS and MAX_COMMAND_LENGTH to quadruple their previous size. The previous values did not have the capacity to allow trace logging of all registers at the same time in some CPUS. Setting the maximum to 128 should allow for capturing of systems with large symbolic lists (such as Playstation) if needed. For example, the following command would throw an error when trace logging a 68000 CPU because the maximum parameters (16) would be reached when attempting to capture all registers: trace 68K.log,0,{tracelog "A0=%08X, A1=%08X, A2=%08X, A3=%08X, A4=%08X, A5=%08X, A6=%08X, A7=%08X, D0=%08X, D1=%08X, D2=%08X, D3=%08X, D4=%08X, D5=%08X, D6=%08X, D7=%08X ",a0,a1,a2,a3,a4,a5,a6,a7,d0,d1,d2,d3,d4,d5,d6,d7}. . Fixed vertical scrollbar on large windows (such as the program space of an i386) . Added various keyboard shortcuts and pass keypresses to the debug view with input focus . Prevent keypresses from passing through to internal debugger windows while the windows are hidden . Fixed input regression in internal debugger window editors . Make internal debugger menu remember its currently selected item, to help make switching CPUs/regions/options easier. Also, set all windows to visible only on initial display. . Disable debugging in windows\ledutil.cpp . QT (debugger\qt): Removed usage of NO_MEM_TRACKING macro . Simplify emu\debugger.cpp. Created debugger_manager. . Fixed bug debugging drivers with ES5510 core, possibly some others that do not have AS_PROGRAM at all (debug\dvdisasm.cpp). 0.169 - New games: Captain Flag (Japan), CPS3 Multi-game bootleg for HD6417095 type SH2 (V4) and Panda Train (Novamatic 1.7) - New Working games: Glass (Ver 1.1, Break Edition, Version 1994) (censored, unprotected), Joker Poker (Coinmaster set 1), Joker's Wild (Rev. B), Player's Edge Plus (PS0047) Wild Cherry Slots, Player's Edge Plus (PS0092) Wild Cherry Slots and Space Train - New Non-Working games: After Shock (Lazer-tron, set 1), Ameri-Hockey, Awesome Toss'em (Lazer-tron), Bozo's Pail Toss (v2.07), Candy Crane (AGE), Clown Roll Down (Elwood), Fast Invaders (6845 version), Mortal Kombat 3 (SNES bootleg), Ribbit Racing (Lazer-tron), Standard Change-Makers System 500 / 500E, Tatsunoko Vs Capcom : Cross Generation of Heroes, Tokyo Bus Guide (Rev A), Turbo Drive (ICE), unknown animal-themed game (bottom), World Club Champion Football European Clubs 2004-2005 (CDV-10013), World Club Champion Football European Clubs 2004-2005 Ver. 3.22 (CDV-10015P), World Club Champion Football European Clubs 2005-2006 (CDV-10027), World Club Champion Football Serie A 2002-2003 Ver. 2.12 (CDV-10002) and World Club Champion Football Serie A 2002-2003 Ver. 2.34 (CDV-10008) - New clones: After Shock (Lazer-tron, set 2), Ameisenbaer (German, Galaxian hardware), Aquarium (US), CPS3 Multi-game bootleg for dead security cart (V5), Double Dragon II - The Revenge (US, bootleg), Dragon World (Korea, V040K), Dragonninja (bootleg with 68705), Fast Invaders (8275 version), Gallop Racer 3 (Export), Glass (Ver 1.1, Break Edition, Version 1994) (censored, unprotected), Hard Head 2 (v2.0, bootleg), Hat Trick Hero '93 (Ver 1.0A 1993/02/28), Klax (set 2, bootleg), Knock Out!! (bootleg, set 2), Lethal Enforcers (ver EAA, 09/09/92 09:44), Mexico 86 (bootleg of Kick and Run) (set 2), Miss World '96 (Nude) (C-3000B PCB), Multi Game (Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?), Ninja-Kid II / NinjaKun Ashura no Shou (set 4), Orius (ver UAA), Pirates (set 2), Ring of Destruction: Slammasters II (Hispanic 940902), Run and Gun (ver EAA 1993 10.4) (dual screen with demux adapter), Run and Gun (ver EAA 1993 10.8) (dual screen with demux adapter), Run and Gun (ver EAA 1993 9.10, prototype?) (dual screen with demux adapter), Run and Gun (ver UBA 1993 10.8) (dual screen with demux adapter), Slam Dunk (ver JAA 1993 10.8) (dual screen with demux adapter), Space Chaser (Model Racing bootleg), Street Fighter II': Champion Edition (M10, bootleg), Street Fighter II': Champion Edition ('Taiwan' bootleg with PAL), Super Slam (set 3), Super Street Fighter II Turbo (Hispanic 940223), unknown animal-themed game (top), World Club Champion Football European Clubs 2004-2005 Ver. 1.1 (CDV-10015), World Combat / Warzaid (ver UCD:B), Xain'd Sleena (bootleg, bugfixed) and Zombie Revenge (Rev A) - New PEPlus games: Player's Edge (PK0719-PC011) Standard Draw Poker, Player's Edge (PK0719-PC041) Standard Draw Poker, Player's Edge (PK0719-PC092) Standard Draw Poker, Player's Edge (PK0756-PC001) Standard Draw Poker, Player's Edge (PK0756-PC011) Standard Draw Poker, Player's Edge (PK0756-PC041) Standard Draw Poker, Player's Edge (PK0757-PC074) Two Pair or Better, Player's Edge (PK0758-PC041) Jacks or Better, Player's Edge (PK0769-PC092) Standard Draw Poker, Player's Edge (PK0773-PC041) Jacks or Better, Player's Edge (PK0810-PC011) Joker Poker, Player's Edge (PK0810-PC041) Joker Poker, Player's Edge (PK0811-PC041) Joker Poker, Player's Edge (PK0823-PC009) Standard Draw Poker, Player's Edge (PK0832-PC041) Joker Poker, Player's Edge (PK0849-PC041) Joker Poker (Two Pair or Better), Player's Edge (PK0856-PC011) Joker Poker, Player's Edge (PK0856-PC092) Joker Poker, Player's Edge (PK0858-PC075) Deuces Wild Poker, Player's Edge (PK0873-PC046) Deuces Wild Poker, Player's Edge (PK0873-PC093) Deuces Wild Poker, Player's Edge (PK0930-PC075) Deuces Wild Poker, Player's Edge (PK0930-PC093) Deuces Wild Poker, Player's Edge (PK1004-PC075) Deuces Wild Poker, Player's Edge (PK1013-PC087) Tens or Better, Player's Edge (PK1020-PC078) 4 of a Kind Bonus Poker, Player's Edge (PK1030-PC088) 4 of a Kind Bonus Poker, Player's Edge (PK1069-PC088) Double Bonus Poker, Player's Edge Plus (KE1001) Keno, Player's Edge Plus (KE1012) Keno (set 1), Player's Edge Plus (PP0060) Standard Draw Poker (set 3), Player's Edge Plus (PP0094) Standard Draw Poker, Player's Edge Plus (PP0129) Joker Poker (Two Pair or Better), Player's Edge Plus (PP0189) Standard Draw Poker, Player's Edge Plus (PP0190) Deuces Wild Poker (set 2), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0290) Deuces Wild Poker (set 1), Player's Edge Plus (PP0418) Deuces Wild Poker, Player's Edge Plus (PP0526) Deuces Wild Poker, Player's Edge Plus (PP0559) Joker Poker (Aces or Better), Player's Edge Plus (PP0562) 10's or Better, Player's Edge Plus (PP0587) Standard Draw Poker, Player's Edge Plus (PP0596) Spades Sequential Royal Double Bonus Poker, Player's Edge Plus (PP0598) Hearts Sequential Royal Double Bonus Poker, Player's Edge Plus (PP0711) Bonus Poker Deluxe, Player's Edge Plus (PP0733) Double Aces and Faces, Player's Edge Plus (PP0797) One Eyed Jacks Wild Poker, Player's Edge Plus (PP0822 A5W-A6F) Standard Draw Poker, Player's Edge Plus (PS0358) Wild Star Red White & Blue Slots, Player's Edge Plus (PS0425) Sizzling Sevens Slots, Player's Edge Plus (PS0470) Triple Diamond Slots, Player's Edge Plus (PS0628) Double Black Jack Slots, Player's Edge Plus (PS0708) Double Cherry Bar Slots, Player's Edge Plus (PS0722) River Gambler Slots, Player's Edge Plus (SET012) Set Chip, Player's Edge Plus (SET022) Set Chip, Player's Edge Plus (SET100) Set Chip, Player's Edge Plus (SET117) Set Chip, Player's Edge Plus (X000002P+XP000006) Standard Draw Poker, Player's Edge Plus (X000006K+XK000001) Keno, Player's Edge Plus (X000013K+XK000011) Keno, Player's Edge Plus (X000055P+XP000048) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000132) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000137) Deuces Wild Poker, Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (Horseshoe), Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (Sunset Station Hotel-Casino), Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (The Fun Ships), Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (The Orleans), Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker (The Wild Wild West Casino), Player's Edge Plus (X002033P+XP000038) White Hot Aces Poker, Player's Edge Plus (X002034P+XP000038) White Hot Aces Poker, Player's Edge Plus (X002127P+XP000043) Double Bonus Poker featuring 'Your Property, Player's Edge Plus (X002134P+XP000043) Faces 'n' Deuces Double Bonus Poker, Player's Edge Plus (X002152P+XP000043) Blackjack Poker, Player's Edge Plus (X002211P+XP000043) Double Double Bonus with 3 Jacks Poker, Player's Edge Plus (X002236P+XP000043) Double Double Bonus with 3 Aces Poker, Player's Edge Plus (X002270P+XP000053) Jackpot Poker, Player's Edge Plus (X002279P+XP000057) Ace$ Bonus, Player's Edge Plus (X002297P+XP000112) Jackpot Poker, Player's Edge Plus (X002315P+XP000038) Triple Bonus Poker Plus, Player's Edge Plus (X002376P+XP000038) Super Double Bonus Poker, Player's Edge Plus (XM00002P+XMP00006) Multi-Poker (MGM Grand Detroit Casino) and Player's Edge Plus (XMP00022) 5-in-1 Wingboard (CG2346) - Spanish - Removed games: Player's Edge Plus (X000055P+XP000053) Deuces Wild Poker and Player's Edge Plus (X000055P+XP000112) Deuces Wild Poker - New drivers: age_candy.cpp, amerihok.cpp, clowndwn.cpp, fastinvaders.cpp, ice_bozopail.cpp, ice_tbd.cpp, laz_aftrshok.cpp, laz_awetoss.cpp, laz_ribrac.cpp, scm_500.cpp and tvcapcom.cpp - New devices: pla, tc0780fpa and tms32053 - New Cheat.dat: http://cheat.retrogames.com/ - NOTE: Create new mame.ini with mame -cc. New mame.ini options: bloom_blend_mode = 0 (HLSL) and shadow_mask_tile_mode = 0 (HLSL) - Dynamic Re-Compiling . Modernized x86log.h and x86log.cpp: Use variadic template functions instead of 'va_list' in 'x86log_mark_as_data' and 'x86log_printf'. Added 'noexcept' where appropriate/safe. Use 'constexpr std::size_t' instead of macros for constants. Nest 'nullptr' check to prevent useless check, added assertion in 'x86log_printf'. Moved definitions of 'log_comment', 'data_range_t', 'x86log_context' to 'x86_log.h' from 'x86_log.cpp'. Adapt usages of 'x86log_printf' in 'drcbex64.cpp' and 'drcbex86.cpp'. . Fixed exiting drivers with DRC cores - M68000 CPU: Fixed duplicated save state (m68000\m68kcpu.cpp) - PowerPC 4xx/6xx CPUs: Removed dead PPC code (cpu\powerpc\drc_ops.cpp/h, ppc.cpp, ppc403.inc, ppc602.inc, ppc603.inc, ppc_mem.inc, ppc_ops.h/inc and ppc_ops.inc). - S2650 CPU: Expose INTACK signal - TMP95C063 CPU: Fixed duplicate tags in TLCS900 - TMS32051 CPU . Added TMS32051 idle instruction and I/O space. TMS32051 various fixes. TMS32051 disasm fixes. . Added TMS32053 CPU - TMS32082 CPU: FPU fixes + command callback - SN76477 sound: Notes, typo and RES_INF for default open circuit. - Konami Custom . K053252: Allow the Konami K053252 CRTC to configure the 'slave' screen in the demux setup. Implemented preliminary vertical position count. Just reset internal screen state when a frequency clock change occurs. . K054156/K054157/K056832: Note fix for K056832. Removed Tasman gfx hack in core (video\k054156_k054157_k056832.cpp). . K055555: Fixed write access, fixing Lethal Enforcers II text colors properly. . K056832: Note fix - MC6845 CRT: Cleanup driver - Signetics 2636 sound/video . Re-write S2636 from scratch as needed for Sub Hunter . Needs raw screen parameters and calls from scanline timer to work properly . Collision and completion bits generated correctly including duplicates . Supports background and score display . Generates audio tone from line frequency . Probably hurts performance when rendering per frame . Try to fix S2636 offsets in games using legacy screen params . Added drawing optimisation . Added INTREQ/INTACK to S2636, not used by any drivers yet. - Taito Custom: Splitted TC0780FPA into its own device. Double buffering + better FIFO handling. - aristmk6.cpp . Added notes . Merged BIOS roms 'Aristocrat MK6 Base (15011025, Malaysia)' and 'Aristocrat MK6 Base (11011901, NSW/ACT)' into 'Aristocrat MK6 System Software'. - battlera.cpp, mitchell.cpp and toki.cpp: Added Battle Rangers, Pang and Toki PCB's readme - cave.cpp: Correct all known mono titles (ID 06109) - chihiro.cpp . Correct little error. "enum" -> "enum class" (video\chihiro.cpp) . Fixed "error: 5 enumeration values not handled in switch: 'X1R5G5B5_Z1R5G5B5', 'X1R5G5B5_X1R5G5B5', 'X1A7R8G8B8_Z1A7R8G8B8'..." (video\chihiro.cpp) . Clear render target color buffer supports subregion and single channel . Store up to 1024 primitive vertices for easier debugging - cdi.cpp: Fixed Quizard and (MESS) 'CD-i (Mono-I) (PAL)' crash bugs and get 'CD-i (Mono-I) (PAL)' booting again - dkong.cpp . Added 4bit read support to TMS6100 (Memory Interface) . (MESS) Mr. Challenger expects reads from TMS6100 to be valid after setting indirect address - dooyong.cpp . Make both halves of the banked palette available for use . Added vblank read, allows palette to animate. . Use darker palette bank as the primary one, this seems to be where the correct colours get set. This fixes the two characters in the ending scene have wrong colors (ID 04222) and the missing rockets flame moves and the stars flash in the title screen (ID 05618). . Pollux bombs now cause brightness change . Identified video bit that allows the Flying Tiger title text to colour cycle, probably vblank like other games. Same for Pollux. . Removed not needed ROM_RELOADS in the Dooyong banking - konamigx.cpp . Noted and added a bug filler for Sexy Parodius p1 param . Reinstated alpha-blended tiles as solid, having two examples is already enough for testing (video\konamigx.cpp). . Restructured CCU. Replaced CCU with device version, including pixel clock select mechanism. . Added (always disabled?) hblank irq for Lethal Enforcers II . Added Coin counters . Note: Everything works except Racing Force crashing and Type 3/4 video code not liking the new arrangement for whatever reason. . Silence sound CPU into pitfalling for Konami GX BIOS . Bumped legacy SCREEN_SIZE to 1024 x 1024, fixed crash happening with Konami GX BIOS. . Changed pixel clock only when intended . Fixed Racin' Force crash at POST, "fixed" text tilemap offsets. . Fixed gfx decoding for Konami GX BIOS . Fixed K055555 write access, fixing Lethal Enforcers II text colors properly. . Fixed offsets for type 3/4 - laserbat.cpp . Make Lazarian playable: Decoded PLA bitstream and use for video mixing . Documented colour format and make up usable colour values . Implemented shell and area effects . Use proper video timings . Added PLA from Lazarian to Laser Battle as bad dump as it's needed now . Yes it's impossible to get black because there's no LSB for blue . Colours are still wrong, but at least it's only the intensities now. . Better layer alignment . Added comments . Fixed inputs, P2 controls and all DIP switches are usable now . Support cocktail configuration (set in Machine Configuration) . Fixed conditions for latching sound data . Fixed Cat and Mouse graphics, inputs and video effects. . Confirm DIP switches, use derived machine configs. . Cat and Mouse sound support . Added stuff from manual - legionna.cpp . Fixed Godzilla text tilemap vertical placement . Added preliminary flip screen support (video\legionna.cpp and seibu_crtc.cpp) - megasys1.cpp . Added VRAM mirrors to 64th. Street, this fixes missing background graphics interaction (ID 06067). . Use 68k byte write smearing on main RAM, fixes attract movement in 64th. Street and Chimera Beast (ID 00365) (ID 00366). . Fixed graphics corruption in Soldam high score listing (basically just apply the same hack clone Soldam (Japan) uses) (ID 02844). . Added Sprite Mosaic effect (port of FBA code) used in clone Takeda Shingen when you get the flashy sword (3rd powerup if you let them cycle) (ID 05963) and extensively by Chimera Beast. . Attempt to emulate the sprite trail effect (partial sprite framebuffer clear etc.) used on P47 'Jaleco Logo', probably not accurate yet. . Established that Saint Dragon press start text is a raster effect, however method of specifying line etc. is unknown (MCU?) so not currently enabled. . Logged all irqs for Mega System 1 . MegaSys1 apparently runs at 56.18Hz, based on video references, this is the same as NMK16. . Added screen raw parameters for MegaSystem1A - namcops2.cpp: Partial dumps of Namco FCA and FCB JVSIO MCU's firmware for Ridge Racer V - peplus.cpp . Minor doc update . Added the CAPX2325 chip. Added the color CAP chip for Barbaric Deuces Wild & No Faces Pay the Aces sets. Yes it's a non standard name format and yes it does match CAPX2172 (ACE$ Bonus). . Added new gfx1 roms to Player's Edge Plus (PS0047) Wild Cherry Slots and clone (PS0092) Wild Cherry Slots (Games now playable). . Added new gfx1 roms to several sets . Figured out how and where the dealt bonus info is stored so I could fill in the dealt sequential ACE$ bonus . Added in some know dates & L revisions . Added in actual missing CG numbers. After some research I found the actual CG numbers needed for Treasure Chest and Royal Deuces as well as XP000074 is needed for the Double Down Stud Poker set. . Added cap797.u50 prom to Player's Edge Plus (KE0004) Keno . Based on IGT documentation several sets were updated to correct CG and or CAP files. All sets that have be correct are now tagged with "PSR Verified" . Mark sets using CG2135 as wrong color. Turns out CG2135 is custom card backs for Grand Casino and needs CAP1292 for the correct colors. . PSR verified for superboard games. Correcting CG+CAPX sets as per IGT's PSR. Fixes some issues with the Spanish sets of Deuces wild with programs XP000075, XP000102 & XP000126. Changing language now works properly and shows the correct info. Some sets changed to a more correct XP000xxx poker program. Specialty games have added notes about other compatible poker programs that will work. IE: Jackpot Poker and Mid game bonus payout programs. Fixed up program+data sets and added in year+ L revision when known. - playch10.c: Fixed PinBot hangs after insert coin (ID 04857). Note: The game suffers from heavy gfx glitching anyway, but at least it starts again. - psikyo.cpp: Set all games to mono - segas32.cpp: Added option to clear with value for arrays (util\coretmpl.h and video\segas32.cpp) - segaybd.cpp: Restore pre-2012 Sega Y-board sprite priority behavior, a mask got lost in the mixing code with this update from Aaron resulting in the MT06098 bug (Priority issue after start in G-LOC Air Battle) which is now fixed (ID 06098). - sigmab98.cpp: Comments update - subsino2.cpp . Improved tile size selection (Panda Train (Novamatic 1.7) needs it) . Fixed reel graphics in driver - taitotz.cpp: Fixed inputs - tasman.cpp . Reinstated CCU again . Added preliminary irq masking . Added some better gfxdecoding . Removed Tasman gfx hack in core (video\k054156_k054157_k056832.cpp) - tourvis.cpp: Updated known game list - vsnes.cpp . Fixed broken lightgun usage in Vs. Freedom Force (can't shoot enemies) and Vs. Hogan's Alley (can't select the number of players) (ID 03860) . Set Vs. Balloon Fight to perfect interleave seems to fix the 2nd screen get out of sync when you try to play it using both screens (ID 00363). . Scale gun input to screen size, otherwise it's massively inaccurate near the bottom. . Don't run Vs. Mahjong (Japan) at perfect interleave, it doesn't boot, needs further investigation. - wecleman.cpp . Notes update . Fixed BGM regression in Hot Chase - zn.cpp: Added ZN-1 development version BIOS - Aliens: COIN3 is SERVICE1 - Aquarium . Fixed sound banking using reference video. . Fixed video priorities based on reference video, also fixed bg colour based on WDUD logo in US set. - Digger Man: Sync neogeo.xml softlist. This fixes Digger Man from softlist fails to load using file manager after launching NeoGeo (ID 06092). - Discrete games: Made netlist compile as separate without C++11 or higher deps - Driver's Eyes: Fixed access violation in debug build (ID 01965) - Eco Fighters: Working spinners, enabled by default. - Final Fight Revenge: Set game to the 6 button STV layout (technically it only needs 5, but better than missing buttons) (ID 06093) - Final Lap: Fixed gfx set mismatch in clones (Japan, Rev B) and (Japan, Rev C) - Final Lap 2: Marked clone (Japan) gfx roms as BAD_DUMP. The Japanese versions of these games should use different gfx roms to the World versions, there is corrupt text in attract mode otherwise. - Galactic Storm: Fixed lto odr warning and removed unneeded variable (video\galastrm.cpp) - Gallop Racer 2: Doesn't work because at least 2 of the ROMs are bad dumps, romcmp points out some rather obvious serious problems with them. - Glass . Added unprotected Glass version (playable) . Verified clocks & pin7 status from real PCB - Joker's Wild (Rev. B): Added dipswitches and notes (Game now playable) - Monza GP: Added car inputs and collisions - Operation Tiger . Hook up TMS32053 DSP . Video updates and TMS32051 fixes . Hook up TC0780FPA . Display list logging - Over Drive: Minor notes - Pacman Club / Club Lambada (Argentina): Dumped the bipolar PROMS at locations 4a, 1m, and 3m and the remaining color PROMs. The color PROMs match the Pac-Man/Ms. Pac-Man ones. - ROLLing eX.tre.me: TMS32082 FPU fixes + command callback. Very preliminary video emulation. - Run and Gun . Added K053936 ROM readback . Added from the (ver UAB) clones the gfx1 rom 247a13 to all Run and Gun versions. Note: Non-US versions all reports a bad ROM there, check is pretty simple so I'm positive is a genuine report. . Added video priority mode bit, fixes title screen missing rotation effect (ID 03709). . Fixed single/dual monitor logic setup. Note: Graphics are currently broken if attempting to run the game with dual screen setup. . Demultiplex the video output to 2 screens to simulate the Konami demux board on clone 'Run and Gun (ver UAB 1993 10.12, dedicated twin cabinet)' (only this set for now, as it's a dedicated 2 twin only set with no single screen option). Unfortunately the sprites and tilemaps seem to end up on switched screens, which is confusing. . Use a layout so that the multiplexed output of Run and Gun is still available before it hits the splitter, means you can use your own video splitter if you want. . Experimental Run & Gun base address setup. Added Palette and Text Layers, correctly drawn to each screen. . Added dual setup to all games (sends a black screen to second monitor if disabled and that's it). There are sync issues if sprites are hooked up into video_update, guess they need to be delayed somehow. . Removed dual input and palette hack . Implemented bread and butter dual screen drawing setup. It's now possible to play 4 players with 2 monitors. . Added individual screens (layout\rungun_dual.lay). Changed m_current_frame_number to m_current_display_bank. . Optimized video code by using separate tilemaps for each screen . Handled single screen at 60 FPS . Treat the different run & gun cabinet types as clones, less crashy, no need to pretend there are '3' screens. Technically the demux adapter does mean the hardware they run on is slightly different, MAME could probably do with a better core concept for handling the demuxing of the video signal tho. . Allow the Konami K053252 CRTC to configure the 'slave' screen in the demux setup. BTW, we should probably declared Run and Gun as a new working game in 0.169, it's never really worked properly before all this recent work (eg. you could hang it simply by forgetting to select the 'play independently' option). - War of the Bugs: Fixed address map, added inputs and correct gfx rom (2048 bytes) for clone Space Train (Game now playable). - Zing Zing Zip: Changed game refresh to sync up better with videos, value taken from other games / sets in driver. - Dipswitch fixes in ecofghtr, laserbat.cpp, rungun, segajw and spactrai - Fixed rom names in clubpacm, peplus.cpp and toki.cpp - Renamed (aquarium) to (aquariumj), (cps3boot) to (cps3booto), (cps3boota) to (cps3bootao), (cps3booto) to (cps3booto2), (cps3bootoa) to (cps3bootao2), (glassbrk) to (glass10a), (glpracr3) to (glpracr3j), (peke1012a) to (peke1012b), (peke1012) to (peke1012a), (pepp0060b) to (pepp0060c), (pepp0290) to (pepp0290a), (pepp0190b) to (pepp0190c), (pepp0190a) to (pepp0190b), (pepp0265b) to (pepp0265c), (pex0002pa) to (pex0055pq), (rungunu) to (rungunud), (sslam) to (sslama), (sslama) to (sslam) and (zombrvn) to (zombrvno) - Description changes of CD-i (Mono-I) (PAL) BIOS, CPS3 Multi-game bootleg for dead security cart (older), CPS3 Multi-game bootleg for dead security cart (oldest) (New Generation, 2nd Impact and 3rd Strike only), CPS3 Multi-game bootleg for HD6417095 type SH2 (older), CPS3 Multi-game bootleg for HD6417095 type SH2 (oldest) (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure and Red Earth only), Glass (Ver 1.0, Break Edition) (set 1), Glass (Ver 1.0, Break Edition) (set 2), Glass (Ver 1.1, Break Edition, Version 1994), Joker's Wild (Rev. B), Knock Out!! (bootleg, set 1), Mexico 86 (bootleg of Kick and Run) (set 1), Miss World '96 (Nude) (C-3000A PCB, set 1), Miss World '96 (Nude) (C-3000A PCB, set 2), Miss World '96 (Nude) (C-3000A PCB, set 3), Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?), Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?), Pacman Club / Club Lambada (Argentina), Pirates (set 1), Player's Edge (PK1024-PC095) Aces and Faces Bonus Poker, Player's Edge Plus (KE1012) Keno (set 2), Player's Edge Plus (KE1012) Keno (set 3), Player's Edge Plus (PP0190) Deuces Wild Poker (set 3), Player's Edge Plus (PP0290) Deuces Wild Poker (set 2), Player's Edge Plus (PS0364) Wild Star Red White & Blue Slots, Player's Edge Plus (PS0631) Wild Star Red White & Blue Slots, Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000028) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000109) Deuces Wild Poker, Player's Edge Plus (X000124P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000190P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000224P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000242P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000291P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000417P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000550P+XP000119) Joker Poker (Two Pair or Better), Player's Edge Plus (X000557P+XP000119) Standard Draw Poker, Player's Edge Plus (X002021P+XP000038) Lucky Deal Poker, Player's Edge Plus (X002024P+XP000119) Double Bonus Poker, Player's Edge Plus (X002031P+XP000038) Lucky Deal Poker, Player's Edge Plus (X002035P+XP000038) White Hot Aces Poker, Player's Edge Plus (X002036P+XP000038) White Hot Aces Poker, Player's Edge Plus (X002172P+XP000038) Ace$ Bonus Poker (The Fun Ships), Player's Edge Plus (X002172P+XP000038) Ace$ Bonus Poker, Player's Edge Plus (X002180P+XP000119) Double Bonus Poker, Player's Edge Plus (X002303P+XP000038) White Hot Aces Poker, Player's Edge Plus (X002306P+XP000038) Triple Double Bonus Poker, Player's Edge Plus (X002308P+XP000038) Triple Double Bonus Poker, Player's Edge Plus (X002310P+XP000038) Triple Double Bonus Poker, Player's Edge Plus (X002312P+XP000038) Triple Bonus Poker Plus, Player's Edge Plus (X002314P+XP000038) Triple Bonus Poker Plus, Player's Edge Plus (X002374P+XP000038) Super Aces Poker, Player's Edge Plus (X002377P+XP000038) Super Double Bonus Poker, Pollux (Japan, NTC license, distributed by Atlus), Run and Gun (ver UAB 1993 10.12, dedicated twin cabinet), Super Slam (set 1), Super Slam (set 2), World Combat (ver AAD:B), World Combat (ver KBC:B) and Zombie Revenge - MAME . HLSL . Made defocus strength equal for x/y and independent from screen size . Defocus is now independent from screen size and ratio . Horizontal and vertical defocus now have the same strength . Replaced asymmetric defocus kernel by a symmetric kernel . Defocus is now limited to a maximum of 10 . Added shader uniforms for orientation and rotation settings . Fixed HLSL for LCD screen type . Fixed wrong detection of vector screen, which meant that a LCD screen was also detected as vector screen. . Re-enabled scan-line and other CRT related sliders for LCD screens . Extended Shadow Mask and Bloom functionality . Added shadow mask option to choose between "Screen" and "Source" tile mode ("Screen" is the default as before) . Added bloom type option to choose between "Addition" and "Darken" blend mode ("Addition" is the default as before) . The alpha channel of a shadow mask is now filled with the background color of the screen by the amount of the inverted alpha value . Added artwork\monochrome-matrix.png which can be used in combination with "Source" tile mode and "Darken" blend mode to simulate a STN LCD, for example. . Cleanup . Renamed shadow_mask_type to shadow_mask_tile_mode . Renamed bloom_type to bloom_blend_mode . Implemented "Source" shadow mask tile mode for artwork_support\post.fx . 3rdparty . Enabled compiling part of BGFX that required C++11 . Updated to LUA 5.2.3 . Force delete of copy constructor and operator = (emu\emucore.h) . Fixed narrowing (render\draw13.cpp) . Placed cache back in new form, fixes listxml and similar (emu\drivenum.cpp). . Removed usage of deprecated register keyword (cpu\alto2\a2ether.cpp, a2mem.cpp, alto2cpu.cpp, lr35902\opc_cb.inc, opc_main.inc, sound\sidvoice.cpp, x1_010.cpp and mame\video\gb_lcd.cpp) . nullptr to 0x00 for ROM_FILL and ROM_COPY . Updated some of remaining licenses . Iincreased listxml output to 18% (Replaced strlen(device->shortname())!=0 with device->shortname()[0]!='\0' ) . Refactoring memory map validity checking . Modernized 'simple_list': Added 'noexcept'. Use public '=delete' instead of private ctor/assignment. Removed unused 'virtual' from dtor and mark class as 'final' (util\coretmpl.h). . Make -verifyroms verify sub-devices like mpu401 and c2040fdc (emu\clifront.cpp) . CHDMAN . chdman info verbose metadata output . When chdman wants only the original sectors from CHD-CD, give it only the original sectors (util\cdrom.cpp). . arcade.lst fixes (ID 06112) (ID 06111) - SDLMAME: Make SDL2 use software if hardware acceleration is not available (render\drawsdl.cpp) - MESS . Added AMS40489 CRTC (video\mc6845.cpp) . Use TMS0270 PLA for TMS1980 . Added TMS6100 4bit read support for (MESS) Mr. Challenger. (MESS) Mr. Challenger expects reads from TMS6100 to be valid after setting indirect address. . Z80SCC: Switched to new Z80SCC device and added RS232 ports (not functioning yet) to (MESS) Sun Microsystems Sun 3 - MAC OS X . Silence warnings on OSX Clang3.0 (issue #480) (sound\samples.cpp and emu\emuopts.cpp) . OSX version of Clang 3.5 is actually 3.4 with features . OSX version is taken on different way so it is considered 6.0 . Allow SDLMAME to build on OS X from paths containing spaces (and allow SOURCES option as well) . Support 64 and 80-bit floats in OS X debugger (osx\memoryview.mm) . Fixed MAC compile (cpu/i860/i860.cpp) - Compiling . Merged Clang++ version 30000 and 30400 sections to enable -Wno-constant-logical-operand . Initial conversion of core to C++14. Note that compilers are now limited to GCC 4.9.0 and up, Clang 3.4.0 and up and VS2013 and up. VS2012 is not supported anymore. . Cleanup of genie.lua . Set -std=c++1y to Clang 3.4 . MAME Clang-modernize part 1-7 . Some core C++11 narrowing fixes . Removed need for -Wno-c++11-narrowing for Clang and -Wno-unused-result, -Wno-narrowing and -Wno-attributes on GCC . Added override specifier to virtual function (part 1-3). Respect OVERRIDE_CC and OVERRIDE_CXX. . Added override for macros that could not be auto recognized by tools . Added addprojectflags function and added -Wsuggest-override for all that are not 3rdparty projects. It is place where all additional checks we should put. Can't do override checks due to QT headers. . Propagate ARCHOPTS to linker (scripts\genie.lua) . Fixed build for VS 2013 and earlier (http://stackoverflow.com/questions/22212737/strange-syntax-error-reported-in-a-range-based-for-loop) . Fixed compile in MSVC 2015 . Cleanup of osdcomm.h . tagmap_t to std::unordered_map or std::unordered_set where applicable. tagged_list without tagmap_t. . Macro removal INLINE -> static inline . Added const to qualify source bitmaps in drawgfx . Removed auto_bitmap_ind*_alloc and auto_bitmap_rgb32_alloc and replaced with std::unique_ptr. auto_alloc_array to unique_ptr. Added make_unique_clear. make_unique_clear instead of clear memset. auto_alloc_array_clear -> make_unique_clear. Some manual changes to unique_ptr. . Fixed some that were auto_alloc_array_clear and made them use proper template (drivers\rungun.cpp, saturn.cpp, vboy.cpp and k053246_k053247_k055673.cpp) . global_alloc_array to std::make_unique where applicable . global_alloc for m_gfxdecode->set_gfx changed to work with unique_ptr . Fixed wrong number of arguments to makedep.py in SOURCES build (scripts\genie.lua) . Fixed missing noexcept in Visual Studio 2013 (util\coretmpl.h) . Removed declarations from H files that are not defined in CPP . Added platform parameter and detection for x86/x86_64/arm/powerpc . Fixed Raspberry Pi 2 compile (audio\upd1771.cpp). Build system now autodetects and builds cleanly on Raspberry Pi 2. - Debugger . "byte per chunk" is substituted by "data format", data formats lesser than 9 work as before, data format 9 is 32 but floating point in the debug_view_memory class method bytes_per_chunk is substituted by get_data_format, set_bytes_per_chunk is substituted by set_data_format floating point values cannot be edited currently floating point values are available only in the windows debugger. Next commit will add them to the qt debugger, osx i won't be able to do it afterwards 64 and 80 bit formats will be added. . Make closed windows actually disappear, and add a Run and Hide Debugger option. Also spaced out initial windows, so that they aren't on top of each other to start with. Make internal debugger windows just a bit more pleasing to the eye. Added memory window to internal debugger. . Internal debugger now honours the -debugger_font and -debugger_font_size options . Base the size of internal debugger window title bars on the font size . Made internal debugger window editors appear over the window to which it is related (makes it a little bit clearer). . Stop internal debugger window title and editors from drawing text outside the bounds of the window . Make new internal debugger windows appear in a cascade-like position, and give some windows better default sizes. Change render_target::debug_top() to put targets at the end of the target list, fixing the order in which windows are rendered (nothing else uses this function). . Stop internal debugger windows from drawing space characters, speeds rendering up quite a bit. . Cocoa (debugger\osx): Support float view in OS X debugger (debugger\osx\memoryview.mm) . QT (debugger\qt) . Show 32 bit floating point values in QT debugger memory view (issue #476). Added 8 byte chunks. . Show 64 and 80 bit floats in windows and QT debugger (issue #476) . Show more digits in fp values (issue #476) . QT Debugger as separate lib . Qt5 debugger port. Fixed QT5 build on linux by adding -fPIC and Windows. 0.168 - New games: Fever Pitch? (2VXEC534, NSW, 90.36%) and Trivia R Us (v1.07) - New Working games: Champion Base Ball Part-2 (Japan) - New Non-Working games: Bonne Chance! (Golden Poker prequel HW, set 2), Cherry Master '99, Chicken (RHG0730, Export, 92.588%, touch), Club Kart for Cycraft (Rev A) (GDS-0029A), Enchanted Forest (MV4033, Export, 94.97%), The Gambler (EHG0916, Export, 92.268%), Golden Pyramids (AHG1206-99, NSW/ACT, 87.928%), Koala Mint (MV4137, Export), Magic Garden (AHG1211, Export, 88.26%), Margarita Magic (EHG1559, NSW/ACT), Party Gras (MV4115/3, Export, touch), Sweet Hearts II (PHG0742, Export, 92.252%), Tank II [TTL] and Tropical Delight (PHG0625-02, Export, 92.25%) - New clones: 1943: The Battle of Midway (US), Fighter's History (World ver 43-09, DE-0395-1 PCB), Final Fight Revenge (JUET 990930 V1.100), Forgotten Worlds (World, newer), Genie (ICP-1, set 2), Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev A) (GDS-0039A), Jack Potten's Poker (set 8, Australian), Jack Potten's Poker (set 9, 'just 4 fun'), Karate Blazers (World, set 2), Out Run (deluxe sitdown) (Enhanced Edition v1.0.3), Out Run (sitdown/upright, Rev B) (Enhanced Edition v1.1.0), Ripper Ribbit (Version 3.5), Rolling Thunder (rev 3, hack), Sengoku Ace (Japan, set 2), Super 98 (3-hands, ICP-1), Super Galaxians (Silver Systems), Super Treasure Island (Italy, v1.6) and The Typing of the Dead (JPN, USA, EXP, KOR, AUS) - New PEPlus games: Player's Edge Plus (PP0045) 10's or Better (Las Vegas Rio), Player's Edge Plus (PP0104) Standard Draw Poker, Player's Edge Plus (PP0197) Standard Draw Poker (Cruise), Player's Edge Plus (PP0197) Standard Draw Poker (set 4), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0221) Standard Draw Poker (set 3), Player's Edge Plus (PP0423) Standard Draw Poker (set 4), Player's Edge Plus (PP0454) Bonus Poker Deluxe (set 2), Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better, set 2) and Player's Edge Plus (X002178P+XP000119) Double Bonus Poker - New MAME Build Tools (MinGW 5.2.0): http://mamedev.org/?p=412 - NOTE: Create new mame.ini with mame -cc. New mame.ini options: http = 0, http_port = 8080, http_path = web and console = 0 - 8085A CPU: Use statusflag macro (IM_SID) - ALPHA-8201 MCU: Added protection emulation - ALPHA-8201/8301 MCU: Renamed device to prevent name clash during modernization (L is for Legacy) - SE3208 CPU . Make sure the low bits of the stack pointer are always 0 . Disallow unaligned accesses - TMS32082 CPU: Unsigned value can't be less than zero (m_tcount < 0) - Z80 CPU: Start of an (MESS) ZX80/81 hardware-correct rewrite: Added irqack to Z80 CPU. - Z8000/Z8002 CPU: Fixed disassembly (z8000tbl.inc) (ID 06083) - N2A03 APU sound: Make the NES APU device get added with the N2A03 CPU rather than needing to be added in every driver. Notes: DERIVED_CLOCK doesn't work in cases where MCFG_CPU_MODIFY is used to modify the clock, so I've had to use MCFG_CPU_REPLACE in those cases instead. Sound routing seems a bit messy, but this seems a general MAME thing, we still have an issue where if you add too many devices with their own speaker/sound additions things you get sound overflows, in this case all drivers except NES were set to a 0.50 sound level output, NES was set to 0.90, I see no clean way to do this with the sound chip inside the CPU? - Samples sound: Fixed error in device - Sega/Yamaha 315-5560 sound: Mass cleanup of MultiPCM - TMS5xxx sound: Fixed for occasional audio 'spike' instability/wraparound glitches caused by improper truncation in the lattice filter multiplier. This is not an optimal fix as it isn't correct to hardware, but it works better than the previous approximation. - TMS5110/5220 sound . Added more verbosity to DEBUG_LATTICE . Fixed missing savestate entries in TMS5220 driver - 8251 USART: Improved handling of tx enable/disable bit, RS232 diagnostic on. (MESS) HP 64000 is ok now. - CGA video: Treat CGA as fixed sync monitor. This fixes the game speed/input problem in Tetris (bootleg of Mirrorsoft PC-XT Tetris version) (ID 02851). - MC6845 CRT . Display Start Address is write-only on MC6845 and read-write on HD6845S . Fixed HD6845 rasters in interlace mode. (MESS) BBC now uses correct HD6845. - SAA5050 video: Device outputs all 20 scanlines - aleck64.c: N64 simulation of cpu cycles from the skipped RDRAM initialization. This allows later SI initialization to see something closer to an expected value for the system uptime (cpu\mips\mips3.c and machine\n64.c). - aristmk5.c: More accurate documentation. Also added some technical notes. - cclimber.c . Added Top Roller PCB layout . Fixed sprites in Top Roller (ID 05958). Note: Top Roller is the only machine in the driver which has a bigger spriteram (0xdf instead of 0x1f). This was overlooked when the Top Roller video functions where merged in cclimber. - champbas.c . Use generic watchdog for driver. Get rid of machine start/reset overrides. . Cleanup spriteram handling. Merged memorymaps. . Added ALPHA-8201 device to driver. Now clone Champion Base Ball Part-2 (Japan) that previously locked up at boot is playable. Exciting Soccer II still happens (http://mametesters.org/view.php?id=5026). - chihiro.c: Some cleanup, wait vblank enabled by default. - cps2.c: Fixed some strncmp - crystal.c . Allow VRender0 Video resolutions higher than 512x240 . Disallow unaligned SE3208 CPU dword reads/writes, this allows 'Office Yeo In Cheon Ha' and 'Donggul Donggul Haerong' to work, but I'm not entirely convinced it's correct. . Added dynamic resolution stuff, Donggul Donggul Haerong 2 Player mode sets a 640x480 mode, although scrolling in that mode doesn't currently work properly. . Moved Dou Di Zhu and P's Attack to Crystal System driver - dassault.c: Added Thunder Zone PCB readme - equites.c . Added missing mcu roms to gekisou, hvoltage and kouyakyu . Added new ALPHA-8201 device. But then had to re-add the simulated MCU to the games with an undumped 8304. These give an error on boot otherwise. As exception, kouyakyu works OK. . Get rid of Equites POPDRUMKIT, EASY_TEST_MODE and HVOLTAGE_DEBUG . Added 8bit memory handlers in favour of ACCESSING_BITS checks . Added memorymap to gekisou - goldnpkr.c . Started a big clean-up . Sorted out all Witch Jack sets, renaming and rearranging the parent/clone relationship. Soon these sets will be free for download. . Added technical notes . Added partial decryption to the ICP1 daughterboard games (currently only pokerduc set). . Added port impulse to the Golden Poker's second coin slot. This is needed for both Royale sets. . Derived Genie (ICP-1, set 2) - a new machine with improved memory map, remapped the roms load and created proper inputs set for Genie (ICP-1, set 2). Also added technical notes and findings. - jchan.c: Updated PCB info - konamim2.c: Softwarelist 3do_m2 is only for 3do_m2, removed it from arcade machines in this driver. - mcatadv.c and sandscrp.c: Sand Scorpion and Nostradamus are both mono boards. Have tried to get the sound balance closer to the Nostradamus PCB. - metro.c: Added Karate Tournament PCB readme - namcos21.c: Added Winning Run PCB readme - namcos23.c . Better handle on the GPU communications . Port b bit 6 is also an input, handle accordingly. Probably JVS. Note: Rapid River is back. . Improved Downhill Bikers digital inputs - naomi.c . Added NAOMI 2 PCB readme . NAOMI/triforce docs update . NAOMI notes (machine\naomim2.cpp) . Added "NAOMI Development BIOS v1.10" - peplus.c . Documentation update based on newly found PSR (Program Summary Report) . Added note about Best Bet Products . According to documentation CAPX770 (not dumped) goes with CG2002 in clone Player's Edge Plus (PP0060) Standard Draw Poker (Cruise) . Added data and revision codes - shougi.c: Hooked up ALPHA-8201 protection emulation - toaplan1.c: Added Fire Shark PCB readme - wecleman.cpp . Implemented sound hand-shake flag for Hot Chase and removed irq hack. Fixes for good gameplay speed in it. This fixes game is too slow. You can realize this by checking the in-game chronometer (ID 00825). . Added SOUND-ON and SOUND-RST preliminary mechanisms for WEC Le Mans 24/Hot Chase hardware, fixes hanging sound if entering into service mode for both. Added notes. - Atomic Robo-kid: Added prom to Atomic Robo-kid sets, the cpu module contians a prom, the one we have is a from a bootleg but a likely match, marked it as bad_dump for now anyway. If the prom in the original turns out to be different we can move it to a new bootleg set. - Attack Pla Rail: Game is working, no need for the MACHINE_NOT_WORKING flag. - Discrete games . atarittl.c: Comments fix . pong.c: Added/Fixed comments . Typo fix (src\netlist.lua) . Moved Bazooka [TTL] and clone to pse driver . Added missing rom ramtek3.b3 to Soccer (Ramtek) [TTL] - Dorachan: Small driver cleanup. Fixed visible area. - Exciting Soccer: Added MCU rom to romsets - Gunpey: Fixed condition for a debug printf - Hexa: Zero-fill and save some specific member variables for clone Hexa (with 2xZ80, protected). Also removed OVERRIDE macros since start and reset functions are common for all the machines in the driver. No functional change expected. - Jack Potten's Poker: Fixed wrong inputs/coin lines through dedicated inputs and graphics in clone Jack Potten's Poker (NGold, set 3). - Kamikaze: Fixed year on Kamikaze according to Arcade TV Game list kokunai - kaigai hen (1975 - 2005) - Mahjong G-Taste: Set unused port bits to ACTIVE_LOW so that girl selection works in joystick mode (ID 06070) - Malzak: Fixed SAA5050 graphic issues (ID 06075) - Marine Date: Added PCB layout & ROM locations - Nostradamus . Improved emulation . Sprite masking effect supported (stage 6 boss) . Tilemap enable supported (flickering shadow for stage 7 boss) . Priority 0 sprites now shown (final boss arms) . BG colour changed to more likely pen (fade in/out on intro & end) (ID 06081) - Polygonet Commanders: Fixed Polygonet Commanders with debugger enabled and focused on dsp56k CPU core causes emulation to crash under an unknown condition (ID 06082) - Power Drift: Fixed Power Drift outputs ("bank_motor_position" was never output because we were using the whole 16bit value of m_pdrift_bank in the switch statement). - Shadow Force: Reverted a MAME 0.164 video change - V Goal Soccer: Added correct gfx2 and ymsnd roms to clone V Goal Soccer (US/Japan/Korea) - Vector games . Fixed obvious error (xratio to yratio) (video\vector.cpp) . Fixed dynamic beam width for invariabel vector intensity. The vector renderer now tries to detect a invariabel vector intensity and disables the calculation of a dynamic beam width. - Vs. Super Mario Bros.: Make the bootlegs Vs. Super Mario Bros. (bootleg with Z80, set 1)/(bootleg with Z80, set 2) run a bit at least. - Wacky Gator: Added MACHINE_CLICKABLE_ARTWORK flag - Input port: Make input manager more strict - Dipswitch fixes in cmpacman - Fixed rom names in forgottn and marinedt - Renamed (ffreveng) to (ffrevng10), (fghthista) to (fghthistb), (fghthist) to (fghthista), (forgottn) to (forgottna), (pepp0197c) to (pepp0197d), (pepp0203b) to (pepp0203c), (pepp0203c) to (pepp0203d), (pepp0203d) to (pepp0203e), (shadfrce) to (shadfrceu), (shadfrcej) to (shadfrce), (shadfrcejv2) to (shadfrcej), (stisub) to (stbsub), (wtchjacka) to (wtchjackj), (wtchjackb) to (wtchjacki), (wtchjackc) to (wtchjackh), (wtchjackd) to (wtchjackg), (wtchjacke) to (wtchjackf), (wtchjackf) to (wtchjacke), (wtchjackg) to (wtchjackc), (wtchjackh) to (wtchjackd), (wtchjacki) to (wtchjackb) and (wtchjackj) to (wtchjacka) - Description changes of Bonne Chance! (Golden Poker prequel HW, set 1), Champion Base Ball Part-2 (Japan), Champion Base Ball Part-2 (set 1), Champion Base Ball Part-2 (set 2), Command War - Super Special Battle & War Game (Ver 0.0J, prototype), Dan-Ku-Ga (Ver 0.0J 1994/12/13, prototype), Dora-chan (Japan), Genie (ICP-1, set 1), Initial D Arcade Stage Ver. 2 (Japan) (Rev B) (GDS-0026B), Initial D Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B), Initial D Arcade Stage Ver. 3 (Japan) (Rev C) (GDS-0032C), Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev B) (GDS-0039B), Karate Blazers (World, set 1), Land Maker (Ver 2.02O 1998/06/02, prototype), Mario Kart Arcade GP (Japan, MKA1 Ver.A1), Mario Kart Arcade GP 2 (Japan, MK21 Ver.A), Mario Kart Arcade GP 2 (Japan, MK21 Ver.A, alt dump), Player's Edge Plus (PP0197) Standard Draw Poker (set 5), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 4), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 5), Player's Edge Plus (PP0454) Bonus Poker Deluxe (set 1), Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better, set 1), Player's Edge Plus (X002283P+XP000057) Barbaric Decues Wild Poker, Player's Edge Plus (X002284P+XP000057) Barbaric Decues Wild Poker, Player's Edge Plus (X002287P+XP000057) No Faces Pay the Aces Poker, Recalhorn (Ver 1.42J 1994/5/11, prototype), Sengoku Ace (Japan, set 1), Shadow Force (Japan, Version 2), Shadow Force (US, Version 2), Shadow Force (World, Version 3) (ID 06071), Tank/Tank Cocktail [TTL], The Koukou Yakyuu and Twin Qix (Ver 1.0A 1995/01/17, prototype) - MAME . HLSL . Cleanup . Removed duplicate prescale fields . Made visibility of HLSL options depending on screen type . Disabled scanlines for LCD screen type . Fixed reset of HLSL settings . Fixed bug that resets the HLSL settings when the screen size has changed . Removed hardcoded HLSL presets . Updates HLSL readme . Fixed missing shadow mask texture when enabling HLSL via shortcut keys . Fixed creation order of D3D and HLSL resources . Fixed HLSL visibility when toggling off/on . Sliders will be hidden when toggled off and will be shown when toggled on again . Changed screen adjustment for HLSL . Screen adjustment (scale, offset) can now be handled by the respective render API itself (default behavior is as before) . D3D (if HLSL) is activated handles screen adjustment by itself within the shader, which fixes the odd behavior of some effects (e.g. round corners) when screen scale and offset is used. . Fixed bug that resets the HLSL settings when switching between window mode and fullscreen . Fixed changed screen adjustment for multi screens . The vector renderer now tries to detect a invariabel vector intensity and disables the calculation of a dynamic beam width . Cleanup . Fixed not used HLSL settings from .ini if MAME was started without driver parameter . Removed default values from HLSL sliders, the defaults here are more like null values to hint when an effect would be disable. . Slightly changed default HLSL settings . Fixed missing shadow mask texture when switching between window mode and full screen (render\d3d\d3dhlsl.cpp and drawd3d.cpp) . 3rdparty . BGFX support for 10.6 . Fixed 3rdparty\portmidi\porttime\ptmacosx_mach.c (#import is an Objective-C thing, C should use #include) . Updated to latest BGFX and BX . Removed mongoose due to restricted license and webserver wip till code is restructured . Added cmake support to GENie . Fixed whitespace for publishers and descriptions in softwarelist XMLs and softlist format fixes and validation fix. Fixed softlists validity. . Fixed hash getter compare (emu\hash.h) . Removed unused import and undefined name 'e' in PNG encoder/decoder (build\png.py) . Fixed memory leak (emu\mame.c) . Fixed randomly different results for e01/e01s in -listxml output (bus\econet\e01.c) (ID 06048) - SDLMAME: Added missing header to fix build on NetBSD (sdl\sdlptty_unix.cpp). Removed references to non-existing files. The file was removed from the other gmake.*/genie.make files. The build/gmake.* files do not exist upstream, so this is a purely local problem. I have however filed a PR to get bsd support added upstream: https://github.com/bkaradzic/genie/pull/110 - MESS . Correct number of ISA slots for (MESS) IBM PC/PC XT (drivers\pc.c) . MOS6530n RRIOT: Allow One-On-One Basketball (1on1u) for the Atari 7800 to run again, based on http://mametesters.org/view.php?id=6060. This doesn't fix the (MESS) supercharger tho. . Floppy: Preliminary FSD format support for BBC. Support 36-track Apple II NIB images. Improved machine\wozfdc.cpp (much less CPU usage now!). - MAC OS X . Fixed BX/BGFX on older OSX (3rdparty\bx\include\bx\macros.h and os.h) . Clean up some stuff that upsets GCC5 (osx/debugwindowhandler.m, devicesviewer.m, sdl/aueffectutil.m and sdlos_macosx.c) . Let's assume no-one uses a broken PowerPC 450 core in a multi-CPU configuration (osd\eigccppc.h and modules\sync\sync_ntc.c) . Enable metal on El Capitan (bgfx\src\config.h) - Compiling . New MAME Build Tools (MinGW 5.2.0): http://mamedev.org/?p=412. Removed code that are not needed with official tools. . Resolved issue with compile on later MinGW (3rdparty\bgfx\3rdparty\dxsdk\include\dxgitype.h) . Fixed SDL build fix for windows (osd\sdl.lua) . Make it easier to build multiple configs (makefile and scripts\genie.lua) . Fixed cpu\h8\m6809make.py syntax error on Python 3 . Relaxed emu.h a bit, should make compile a bit faster. . Fixed all instances of PVS-Studio (Program Verification Systems) warnings . V501: "There are identical sub-expressions to the left and to the right of an operator" . V562: "It's odd to compare a bool type value with a value of 0/1" . V564: "The &/| operator is applied to bool type value. You've probably forgotten to include parentheses." . V578: "An odd bitwise operation detected. Consider verifying it." . "ambiguity of ?: operator flagged" and others . Removed render.h from emu.h and fix deps . Cleanup devcpu.h . No need to include network.h . Fixed some errors, some cleanups, init fixes and suggestions pointed by ReSharper C++. . Renamed *.c -> *.cpp in our source, updated build scripts for rename c - > cpp, renamed m -> mm and removed not longer needed ForceCpp flag. . Added make option to generate CMake files for CLion and root project file . Relax dependencies for softfloat (3rdparty\softfloat\mamesf.h and 3rdparty.lua) . Added h files to projects as well (mame\arcade.lua, dummy.lua, mame.lua, mess.lua, nl.lua and tiny.lua) . Fixed compile for Intel C++ 15 compiler . Added info header at the top of each .lua file . Disable some intel compiler remarks that are shown in a release config (scripts\genie.lua) . Added new doxygen templates and limited basic to core . Fixed uninitialized class members . Visual Studio . Fix for VS2013 build (osd\osdcomm.h) . Set only needed VS compile flags for 3rdparty. There are still those in main file, but now can be removed by fixing our code. . Made fast delegates work on VS x64 builds . Added MSBUILD support, msbuild.exe must be in path so update your tools. . Updated OS/2 support for GEnie and MAME . Allow for Emscripten compile to JavaScript out of the box (src\main.lua and sdl\emscripten_post.js). MAME can now be built using Emscripten's 'emmake' tool, e.g. like so: emmake make SUBTARGET=pacman SOURCES=src/mame/drivers/pacman.cpp This should produce a .js file which can be supplied to an HTML front-end. . Fixed warning in sound\js_sound.cpp - Debugger . Making logerror part of machine and device classes. Display tag of device that logged message. . Get rid of one this == NULL comparison, reduces warnings by 10% with Clang 3.6 (emu\devcb.c, ioport.h and mame\drivers\*) . Fixed linking UNIDASM in small builds (scripts\src\tools.lua, cpu\tms9900\9900dasm.c and tools\unidasm.c) . Moved regtests out of source tree and updated paths . Added Clang and GCC flags needed for compilation of 3rdparty libraries and removed checking for shadowing in them (src\3rdparty.lua) . Made 32 bit MinGW-Clang build working (util\delegate.c) 0.167 - New games: SegaSonic Popcorn Shop (Rev B) - New Working games: Led Storm Rally 2011 (US) - New Non-Working games: Attack Pla Rail (Japan, AP1/VER.A), Beatmania III Append 6th Mix, Beatmania III Append Core Remix, Neo Print (Japan) (T2d) and Sub Hunter (Model Racing) - New clones: Air Duel (World, M82-A-A + M82-B-A), Bubble Bobble ('bootleg redux' hack for Bobble Bobble PCB), Bubble Bobble (for Bobble Bobble PCB), Bubble Bobble: Lost Cave V1.0, Bubble Bobble: Lost Cave V1.1, Bubble Bobble: Lost Cave V1.2, Bubble Bobble: Lost Cave V1.2 (for Bobble Bobble PCB), DoDonPachi (2012/02/12 Arrange Ver. 1.1) (hack), Donkey Kong: Pauline Edition Rev 5 (2013-04-22), Final Fight (USA 900424), Gardia (Japan, 317-0006), Joe & Mac Returns (Japan, Version 1.2, 1994.06.06), Ken-Go (set 2), Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.) (alt rom fill), Ketsui: Kizuna Jigoku Tachi (2012/04/17 ARRANGE VER) (hack), Ketsui: Kizuna Jigoku Tachi (2012/04/17 FAST. VER) (hack), Ketsui: Kizuna Jigoku Tachi (2012/06/26 ARRANGE 1.5 VER) (hack), Ketsui: Kizuna Jigoku Tachi (2012/06/26 ARRANGE 1.51 VER) (hack), Ketsui: Kizuna Jigoku Tachi (2012/06/27 MR.STOIC 1.5 VER) (hack), Ketsui: Kizuna Jigoku Tachi (2012/06/27 MR.STOIC 1.51 VER) (hack), Ketsui: Kizuna Jigoku Tachi (2014/07/16 ARRANGE 1.7 VER) (hack), Led Storm Rally 2011 (World), Lightning Swords, Master Boy (Italian, PCB Rev A, set 2), R-Type (Japan, bootleg Major Title conversion, M82), R-Type II (Japan, bootleg Major Title conversion, M82), SDI - Strategic Defense Initiative (bootleg, set 1), SDI - Strategic Defense Initiative (bootleg, set 2), SDI - Strategic Defense Initiative (bootleg, set 3), SDI - Strategic Defense Initiative (bootleg, set 4), SDI - Strategic Defense Initiative (bootleg, set 5), Sliver (set 2), Super Bubble Bobble (bootleg), Turbo Out Run (cockpit) (bootleg of FD1094 317-0106 set), WEC Le Mans 24 (v1.26) and Wonder Stick (set 2, censored) - New AGEMAME games: Adonis (0100751V, NSW/ACT), Adonis (MV4124/1, Export), Boot Scootin' (Export, 92.767%), Bumble Bugs (Export, 92.691%), Cash Chameleon (Export), The Chariot Challenge (04J00714, NSW/ACT), Cuckoo (MV4104, Export), Dolphin Treasure (Export), Magic Mask (MV4115, Export, set 2), Mine, Mine, Mine (Export), Party Gras (MV4115/6, Export), Penguin Pays (Export), Queen of the Nile (MV4091, NSW/ACT) and Wild Cougar (Export) - New PEPlus games: Player's Edge Plus (KE0004) Keno, Player's Edge Plus (KE1006) Keno, Player's Edge Plus (KE1013) Keno (set 1), Player's Edge Plus (PP0042) 10's or Better (set 1), Player's Edge Plus (PP0045) 10's or Better (Annie Oakley's Central City), Player's Edge Plus (PP0045) 10's or Better (Gambler Downtown Reno), Player's Edge Plus (PP0045) 10's or Better (Par-A-Dice Riverboat Casino), Player's Edge Plus (PP0055) Deuces Wild Poker (set 2, Skyline Casino), Player's Edge Plus (PP0430) Deuces Joker Wild Poker, Player's Edge Plus (PP0459) Joker Poker, Player's Edge Plus (PP0515) Double Bonus Poker (set 1), Player's Edge Plus (X000426P+XP000038) Joker Poker, Player's Edge Plus (X002179P+XP000119) Double Bonus Poker, Player's Edge Plus (X002287P+XP000057) Pay the Aces NO Faces Bonus Poker and Player's Edge Plus (XM00006P+XMP00002) Multi-Poker (The Orleans) - New devices: hd44780_a00 - NOTE: Create new mame.ini with mame -cc. New mame.ini options: beam_width_max = 1.0 (Vector), beam_intensity_weight = 0 (Vector) and vignetting = 0.0 (HLSL) - I8086 CPU: Implemented 0xF1 alias for 0xF0 (LOCK). Opcode tested on reenigne's IBM XT bus sniffer and verified on real CPU - MIPS CPUs: Fix to allow mips3 exceptions to detect branch delay slots for settings. Correction to handle the pathological, yet possible, case of an exception triggering an exception (cpu\mips\mips3.c). - PSX GPU: Fixed the 24bit rendering of video sequences on MESS games such as GranTurismo and Digimon World 3 (video\psx.c) - Z80 SCC: z80scc_channel class rebased on device_t instead of z80sio_channel. Improved LOG printouts. Interrupt support started. Made register pointer bits shared bewtween A and B channel as per spec. Variant type keeping moved from channel class to device class where it belongs. Clocks are blocked until Rx/Tx enabled by ROM code. - Z80 SIO: Improved logging. Started variant handling. - Digitalker speech: Fixed Digitalker speed. The interrupt command was triggered at the end of the post-sample blank instead of at the start. It's a tight guess but is on par with real hardware footage of Scorpion. - TMS52xx sound: Fixed a bug where if the FIFO contained exactly 0 bytes and a SPEAK (VSM) command was issued, the command would instantly terminate due to the FIFO being empty even though the chip wasn't in SPEAK EXTERNAL mode. Fixes speech in (MESS) TI Extended Basic. - ATAPI . Ultra DMA modes should be useable now (machine\atahle.c) . Call routine fill_buffer using a timer to avoid reentering read_data and losing data with ultra DMA (machine\atahle.c). Call fill_buffer using a timer only when ultra dma is enabled. Otherwise some drivers have problems. . Small comment changes (machine\idectrl.c) - 8259 PIC: Turn logging back off - Atari Custom: Updated previous fix (video\atarimo.c; MAME 0.165), this fixes palette problem in ThunderJaws (ID 05596). - MC146818 RTC: Fixed date and some other issues in MC146818 (new in MAME 0166) - MC6845 CRT: Screen reconfig callback - MOS6532 RIOT: Fixed Atari 2600 Homebrew ROM cart Stella's Stocking (AtariAge 2008) - Rockwell 10696: Typo/bug fix - SAA5050 video . Implemented graphics generator, no longer read from fake ROM. . Added character rounding . Improved control code handling . Added ROMs for variants saa5051, saa5053, saa5054, saa5055, saa5056 and saa5057. - aleck64.c . Fixed build (video\rdpblend.c) . Fixed reversion for PI. PI transfers round length up, not down (machine\n64.c). Added field for VI interlaced modes (video\n64.c). Display of interlaced video still needs work. - aristmk5.c . Added undumped PLD devices to Adonis (0200751V, NSW/ACT) ROM_LOAD since is running in the same hardware than the recent added clone. . Added PCB ASCII layout and components description. Added extra documentation and some notes. . Added the undumped ST93C46 serial EEPROMS to clone Adonis (0100751V, NSW/ACT), and added a placeholder to the parent set for the same devices, flagged as NO_DUMP. Added master crystal via #define, and derived the CPU clock. Added some technical notes. . Documented the Dolphin Treasure sets revision - champbas.c: Cleanup driver - chihiro.c . Chihiro needs the "xbox waitvblank" debugger command to progress . Do not clear zbuffer/stencil if not requested . Set f0000000-f7ffffff as mirror of physical ram to make 3D routines happy (machine\xbox.c) . When an object is bound to a subchannel log it and its class (video\chihiro.c) - dec0.c: Looking at some bootlegs a bit. Improved clones Midnight Resistance (bootleg with 68705) and (Joystick bootleg) (video\decbac06.c). - firebeat.c . Added proper dongle dumps for kbm3rd, pop4 and popn5 . Added table of missing dumps - gatron.c . Added siren/alarm input to 'Pull Tabs' and beeps/alarm input to 'Four In One Poker'. All these are present in the Test Mode. However, their functions aren't clear. . Switched the SN76496 PSG to SN76489, since it's present in the 'Bingo' PCB. . Added technical notes and more documentation. - hng64.c . Baby steps towards a better "floor" layer (video\hng64.c) . Commented out a bunch of printfs . Crazy camera projection bug fixed . More accurately describes what is going on with the HNG64 linescroll data upload . Video spacing cleanup, variables declared where they're used, etc. The new rasterizing code is better than the old, so I can remove a hack or two. - konamim2.c: Adding preliminary support for CD-ROM in 3do_m2. Also, compatibility with 3do_m2 softwarelist. - lindbergh.c: Updated docs with some PIC numbers - m72.c . Make it clearer that Air Duel (the M82 PCB) is actually a conversion of Major Title, the sprite roms used for the extra sprite layer in Major Title are still present on the board! . Added some M81 PCB details based on Chris Hardy's observations . Use the uPD71059 instead of hacking the irq vectors for different games . Made M82 type hardware switch tilemap sizes on the fly . Added dumped PROMs to clone R-Type II (Japan) . Added 'M81-B-B Jumper J3' configuration to dbreed, hharry and xmultipl - m92.c: Added uPD71059 device. Kill some no longer required code. - m107.c: Added uPD71059 device to avoid per-game irq vector base in the init - namcops2.c . Updated PCB notes and added another JVS I/O I/O board . Doc update for RAM64 PCB used with Wangan Midnight - namcos23.c: Go back to z-sorting - neogeo.c: Added US, 4 slot 'version 2' MVS BIOS - peplus.c: Added new gfx1 roms and cap1046.u50 prom to clones Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2, Skyline Casino) and Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker (Sunset Station Hotel-Casino) - piggypas.c: Fixed CPU type, added layout and some inputs. Replaced Z80 CPU1 with I8031. Added LCD screen (96x8, 50Hz), keypad control, 1 button and 4 coin slots. - playch10.c: Added Alt BIOS pch1-c_8te.8t. This BIOS doens't work properly, selecting service mode causes it to hang, is it good? Maybe different hw? - segas16a.c and segas16b.c: Make screen flipping actually work in the System16 driver (it hasn't since the driver was rewritten). This makes 'SDI - Strategic Defense Initiative' playable again (level 2 onwards had no sprites and completely broken backgrounds) (ID 02919). It also makes Super League and Excite League look correct, both are cocktail only games and have never really worked (ID 00002). Fixed 2nd players graphics not correct in Action Fighter cocktail mode (ID 01857). - timeplt.c . Added presumed video enable, according to Shoestring's findings while creating a Time Pilot diagnostic ROM. . Merged memory maps - 1942: Correct the clocks in clone 1942 (Tecfri PCB, bootleg?) - Block Carnival / Thunder & Lightning 2: Preliminary hook-up of the OKI6295 for clone (bootleg), only SFX work. Is there another sound chip? If not, what's the purpose of the sound cpu? - Chanbara: Fixed background flip and sprites rom loading - Counter Steer . Improved $415-6 buffer modified by M6809 "master" and read by "slave" CPU. Updated notes. . Bit 3 of master CPU controls reset line for slave. Added start-up sequence but still hangs afterwards. . Master CPU irq is actually tied to vblank, fixes gameplay too, now is all video related (rotation, tilemap paging and color). Might as well not mask screen drawing. Added notes. - Crypt Killer . Documented gun connections and some clocks . Updated clocks based on Guru's new PCB layout/readme - Final Fight . Sorted Final Fight sets by displayed date. Minor doc update. . Fixed Final Fight (USA 900424) and Final Fight (USA 900613) in CPS1 config table - Frogger: Fixed sound cuts off in clone Frogger (Moon Cresta hardware) (ID 00100). Thanks to Duke, sound hook up is now more in line with schematics. - Led Storm Rally 2011: Added correct sprite rom dumps. Adjusted the rom loading / gfxdecoding in the driver to accommodate the correct ROMs (Game now playable). - Magical Spot/II: Correct clock verified via schematics - Operation Thunderbolt: Fixed/added ROM locations & update PCB layout - PinMAME . New genpin samples: http://www.progettosnaps.net/samples/ (coil_coinlockout_engage, coil_coinlockout_release, drop_target_reset, kickback, outhole, relay_engage, relay_release, solenoid_engage and solenoid_release.wav) . by17.c and by35.c: Added mockup playfield layouts for Playboy, PowerPlay and Matahari that includes input/output devices. Added sound to first gen -35 games. Various fixes based on schematics and measurements. - Point Blank 2: Documented the gun connections - Rescue: Added some notes about the missing code for clone Rescue (Free Enterprise Games, bootleg) - Space Warp . Moved Space Warp to Galaxold driver, it has code to init the galaxian sound chip and IC locations match galaxian. . Fixed boot procedure - SunA Quiz 6000 Academy: Fixed game crashes when you insert a credit (ID 06055) - Vector games: Vector rendering fixes and improvements - Wacky Gator: Added inputs and internal layout. Added YM2413 sound. Fixed M6809E CPU1 clock speed and dipswitches. - Input port: Allow nameless input devices for windows rawinput - Dipswitch fixes in by17.c, by35.c, galaxold.c, piggypas.c, m72.c and wacky_gator.c - Fixed rom names in lindbergh.c, namcops2.c and othunder.c - Renamed (airduel) to (airduelm72), (ffightub) to (ffightuc), (ledstorm2) to (leds2011u), (peke1013) to (peke1013a), (pepp0042) to (pepp0042a), (pepp0055b) to (pepp0055c), (pepp0515b) to (pepp0515c), (pepp0515a) to (pepp0515b), (pepp0515) to (pepp0515a), (wecleman2) to (weclemana), (zigzag) to (zigzagb) and (zigzag2) to (zigzagb2) - Description changes of Air Duel (Japan, M72), Bloxeed (US, C System, Rev A), Columns (US, cocktail, Rev A), Daiku no Gensan (Japan, M84), Four In One Poker, Gallop - Armed Police Unit (Japan, M72), Hammerin' Harry (World, M81), Hammerin' Harry (US, M84), Ken-Go (set 1), Magic Mask (MV4115, Export, set 1), Master Boy (Italian, PCB Rev A, set 1), Multi 5 / New Multi Game 5 (set 2, censored), Neo Print - '98 NeoPri Best 44 (Japan) (T4i 3.07), Neo Print V1 (World) (E1a), Player's Edge Plus (KE1013) Keno (set 2), Player's Edge Plus (PP0042) 10's or Better (set 2), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2, Skyline Casino), Player's Edge Plus (PP0515) Double Bonus Poker (set 2), Player's Edge Plus (PP0515) Double Bonus Poker (set 3), Player's Edge Plus (PP0515) Double Bonus Poker (set 4), Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker (Sunset Station Hotel-Casino), SDI - Strategic Defense Initiative (bootleg, original hardware), Shougi Part II, Sliver (set 1), Space Warp? (Cosmos conversion on Galaxian hardware), Sub Hunter (Gremlin / Taito), Videotronics Draw Poker, WEC Le Mans 24 (v2.00, set 1), WEC Le Mans 24 (v2.00, set 2), Wonder Stick (set 1), Zig Zag (Dig Dug conversion on Galaxian hardware, bootleg set 1) and Zig Zag (Dig Dug conversion on Galaxian hardware, bootleg set 2) - MAME . Rename of driver files to make names unique (arcadia.c -> arsystems.c, mephisto.c -> mephistp.c, rainbow.c -> rbisland.c) . 3rdparty . BX use pthread_setname_np(3) only with __GLIBC__ . Added NetBSD support to BX . Removed unneeded backup files (3rdparty\scintilla\gtk\makefile.orig and src\Editor.cxx.orig) . LUA engine: Added save/load state support . Get BGFX to compile with MinGW32 headers found in GCC 4.9.3 and 5.2.1 releases (include\dxgitype.h) . Updated BGFX, BX, GENie and googletest/mock . Disabled DX12 on MinGW since it is not working (render\drawbgfx.c) . Fixed conflicts with the newer polygon interface (drivers\namcos23.c, includes\hng64.h and video\hng64_3d.c) . HLSL . Small fixes . Fixed defocus strength with difference prescales . Removed default screen ratio of 4:3, ratio is now based on the screen quad size . Smooth Borders . Enabled smooth border effect and added option, its amount is limited by the amount of rounded corners. . Added raster.ini to parse_standard_inis() . Merged vector and raster bloom options, use vector.ini or raster.ini to distinguish . Bloom Overdrive . Added experimental bloom overdrive effect and options, this effect allows to overdrive pure colors like red, green and blue to become more brighter. . Added lcd.ini to parse_standard_inis() . Cleanup . Changed default values of curvature, vignetting, reflection, round corner and smooth border to 0. . Reverted compute_size_subroutine() back to non static . Removed some test code . Added special post.fx and distortion.fx shader, which support enabled artworks, but they cannot apply some of the previously implemented corrections (e.g. bloom staircase artifacts when screen is curved, elliptic rounded corners when aspect ratio is not 4:3). . Fixed aspect ratios in special post.fx shader for artwork support . Fixed position of reflection effect for vector graphics . Fixed size of rounded corners . Fixed very small black border . Unified HLSL render pipline for raster and vector graphics . Simplified draw call of render pass functions . Reduced number of used render targets from 7 to 4 (2 native and 2 pre-scaled) . Made render pass functions (nearly) independent from each other . Unified render pipeline for raster and vector graphics, which means that all effects are now also available for vector graphics (except scan-lines) . Removed/replaced simple.fx by primary.fx . Removed CU_PHOSPHOR_IGNORE uniform, which was only used in phosphor pass function and is now directly set . Added CU_TARGET_DIMS uniform based on the current render target . Added CU_QUAD_DIMS uniform based on the current full screen polygon quad . Removed pre-scale knowledge from shaders . Fixed DX9 related half pixel offset in most shaders . Reduced shadow mask color bleeding . Fixed defocus strength with different pre-scales . Added slight noise to bloom effect to reduce the color banding of lower bloom levels . Fixed position of reflection effect when screen is rotated or flipped . Fixed roundness and size of rounded corners in any aspect ratio . Added distortion pass, which is applied after the bloom pass and moved curvature, vignetting, rounded corners and reflection effect to this pass . Fixed bloom stair-step artifacts when screen is curved . Added smooth border effect and option, its amount is limited by the amount of rounded corners . Added bloom overdrive effect and options, this effect allows to overdrive pure colors like red, green and blue to become more brighter . Merged vector and raster bloom options, use vector.ini or raster.ini to distinguish . Added raster.ini and lcd.ini to parse_standard_inis() . Added bounds() and screen_bounds() getter to layout_view . Added current_view() getter to render_target . Many other small changes and refactoring . Fixed Vector Intensity and Flicker . Fixed vector intensity in vector.fx . Fixed vector flicker in vector.c . Changed range of vector flicker option from 0 - 100 to 0.00 - 1.00 . Experimental Dynamic Beam Width . Replaced beam width by beam min. and beam max. width, this makes it possible to create a linear dynamic beam width by the amount of intensity of the beam. . Added beam intensity weight, this adds an exponential factor to the dynamic beam width (values greater than 0 will push larger intensities more than smaller intensities). . Fixed displayed ratio of vector points (zero-length lines) . Fixed beam width min. and max. could not be set higher than 1.0 in UI . Partial updates . Added scanline partial update (emu\screen.c). This isn't working right yet with my test case, but I'm fairly certain the actual core part is generally correct, just the (MESS) Apple II video rendering and/or floating-bus reading isn't quite right. . Fixed horizontal partial updates (broken scroll and glitchy sprites) in drivers\beathead.c, cardline.c, cubeqst.c, firefox.c, galaxian.c, merit.c, segas24.c, slotcarn.c and vicdual.c; video\btoads.c, cloak.c, dkong.c, galaxian.c, gyruss.c, itech8.c, meadows.c, qix.c, spacefb.c, system1.c and tp84.c. . They don't all fetch data during the scanline but rather at a fixed point, keep old behavior in MAME drivers for now. . Would be interested in seeing if supporting proper horizontal updates could fix some of the TMS34010 issues with flickering in Mega Phoenix / Little Robin tho. . RGB utilities: Updated VMX/Altivec RGB implementation (fixes PowerPC) - SDLMAME: Removed obsolete CapsLock hack (sdl\input.c) - MAC OS X . Fix for some configurations (debugger\osx\debugview.m) . Fixed PowerPC build (video\rgbvmx.c) - UNIX: Changed pstname_r to ptsname for OSX compatibility. Added inclusion of stdlib.h on systems != Linux (sdl\sdlptty_unix.c). PTY (PseudoTerminal) support for u*x OSes. - MESS . Fixed uPD7220 video in (MESS) MikroMikko 1 from git://github.com/kara1001000/mame. Implemented the 7220 offset and screen size change differently for MikroMikko as there were issues with other machines with 7220s. (MESS) MikroMikko 1 M6 seems to depend on fifo showing empty when there's one byte left to read. . Fixed the memory map mirroring based on schematic in (MESS) Votrax Type 'N Talk . Floppy . Fixed FDD sounds (imagedev\floppy.c). Added new samples floppy_525_motor_end.wav, floppy_525_motor_loop.wav, floppy_525_motor_start.wav and floppy_525_step1 - 5.wav. . Changed rules of "ready" signal on drives with motor that always spins (imagedev/\floppy.c) . Slight I8271 improvement for the (MESS) Acorn BBC Micro. Fix for (MESS) Intel Intellec MDS-II driver after i8271 modernization . Attributing CD32 softwarelist for the CD32 driver (drivers\amiga.c). "Sega CD w/32X" needs compatibility with SegaCD softwarelist (drivers\megadriv.c) . Documented Sega Saturn h/w - Compiling . Moved src\mess\*.* into src\mame\ . Allow current scripts\toolchain.lua for MinGW to work and allow GCC 5.2 to also work if GCC-AR is current enough. Added a little more info about LTO option. . Moved tools in proper place and moved build python scripts together with other scripts . Renamed DRIVERS parameter to SOURCES since you can add any source you wish to include in target . Fixed osd\osdcomm.h compile on VS2013 and util\corealloc.h to make VS2015 release builds possible . Removed some unused variables (std::string args, std::string fulltag, std::string prev_owner, std::string regiontag and std::string tempstr) . Removed not needed conversions (tmp.c_str() --> tmp) - Debugger . Give message if debugger comments are not saved (debug\debugcmd.c and debugcpu.c) . Do not create dasm.lib if no disassembler compiled (devices.lua and main.lua) 0.166 - New games: Waku Waku Sonic Patrol Car - New Working games: Track & Field (NZ bootleg?) and Tuono Blu (bootleg of Rescue) - New Non-Working games: 3 Lil' Pigs, Amazonia King (V104BR), Amazonia King II (V202BR), Cobra: The Arcade (CBR1 Ver. B), Dump The Ump, Fiddle Stix (1st Rev), Hockey (Ramtek) [TTL], Hoop Shot (version 05.22), Jack & The Beanstalk (Doyle & Assoc.?), Kung Fu (IGS, v100), Piggy Pass (version 04.40), Round and Round (Rev 6) (Quick $ilver), Smart Toss 'em / Smartball (Ver 2.0) and Wacky Gator - New clones: A.B. Cop (Japan) (bootleg of FD1094 317-0169b set), A.B. Cop (World) (bootleg of FD1094 317-0169b set), Alien Storm (Japan, 2 Players) (bootleg of FD1094 317-0146 set), Alien Storm (US, 3 Players) (bootleg of FD1094 317-0147 set), Alien Storm (World, 3 Players) (bootleg of FD1094 317-0148 set), Altered Beast (set 5) (bootleg of FD1094 317-0069 set), Aurail (set 1, Japan) (bootleg of FD1089A 317-0167 set), Aurail (set 2, World) (bootleg of FD1089B 317-0168 set), Bay Route (set 2, Japan) (bootleg of FD1094 317-0115 set), Bay Route (set 3, World) (bootleg of FD1094 317-0116 set), Bloxeed (Japan) (bootleg of FD1094 317-0139 set), Bullet (bootleg of FD1094 317-0041 set), Clutch Hitter (Japan) (bootleg of FD1094 317-0175 set), Clutch Hitter (US) (bootleg of FD1094 317-0176 set), Cotton (set 1, Japan, Rev A) (bootleg of FD1094 317-0179a set), Cotton (set 2, Japan, Rev B) (bootleg of FD1094 317-0179b set), Cotton (set 3, US) (bootleg of FD1094 317-0180 set), Cotton (set 4, World) (bootleg of FD1094 317-0181a set), D. D. Crew (Japan, 2 Players) (bootleg of FD1094 317-0182 set), D. D. Crew (Japan, 4 Players) (bootleg of FD1094 317-0185 set), D. D. Crew (US, 4 Players) (bootleg of FD1094 317-0186 set), D. D. Crew (World, 2 Players) (bootleg of FD1094 317-0184 set), D. D. Crew (World, 3 Players) (bootleg of FD1094 317-0190 set), D. D. Crew (World, 4 Players) (bootleg of FD1094 317-0187 set), Desert Breaker (Japan) (bootleg of FD1094 317-0194 set), Desert Breaker (World) (bootleg of FD1094 317-0196 set), Dynamite Dux (set 2, Japan) (bootleg of FD1094 317-0094 set), Dynamite Dux (set 3, World) (bootleg of FD1094 317-0096 set), E-Swat - Cyber Police (set 1, Japan) (bootleg of FD1094 317-0131 set), E-Swat - Cyber Police (set 2, Japan) (bootleg of FD1094 317-0128 set), E-Swat - Cyber Police (set 3, US) (bootleg of FD1094 317-0129 set), E-Swat - Cyber Police (set 4, World) (bootleg of FD1094 317-0130 set), Enduro Racer (YM2151) (bootleg of FD1089B 317-0013A set), Enduro Racer (YM2203) (bootleg of FD1089B 317-0013A set), Excite League (bootleg of FD1094 317-0079 set), Flash Point (set 1, Japan) (bootleg of FD1094 317-0127A set), Flash Point (set 2) (bootleg of Japan, FD1094 317-0127A set), Golden Axe (set 1, World) (bootleg of FD1094 317-0110 set), Golden Axe (set 3, World) (bootleg of FD1094 317-0120 set), Golden Axe (set 4, Japan) (bootleg of FD1094 317-0121 set), Golden Axe (set 5, US) (bootleg of FD1094 317-0122 set), GP Rider (Japan, FD1094 317-0161) (Twin setup), GP Rider (US, FD1094 317-0162) (Twin setup), GP Rider (World, FD1094 317-0163) (Twin setup), Hard Head (bootleg, set 2), Heavyweight Champ (Japan) (bootleg of FD1094 317-0046 set), Hyper Olympic (bootleg, set 1), J. J. Squawkers (older), Juuouki (set 3, Japan) (bootleg of FD1094 317-0068 set), Laser Ghost (US) (bootleg of FD1094 317-0165 set), Laser Ghost (World) (bootleg of FD1094 317-0166 set), Last Survivor (Japan) (bootleg of FD1094 317-0083 set), Line of Fire / Bakudan Yarou (Japan) (bootleg of FD1094 317-0134 set), Line of Fire / Bakudan Yarou (US) (bootleg of FD1094 317-0135 set), Line of Fire / Bakudan Yarou (World) (bootleg of FD1094 317-0136 set), Michael Jackson's Moonwalker (Japan) (bootleg of FD1094/8751 317-0157 set), Michael Jackson's Moonwalker (US) (bootleg of FD1094/8751 317-0158), Michael Jackson's Moonwalker (World) (bootleg of FD1094/8751 317-0159), Minefield (The Logicshop, bootleg), MVP (set 1, Japan) (bootleg of FD1094 317-0142 set), MVP (set 2, US) (bootleg of FD1094 317-0143 set), New Sinbad 7 (set 2), Oriental Legend / Xi You Shi E Zhuan (ver. 111, Korean Board), Pac-Man (bootleg on World Cup '90 hardware), Passing Shot (Japan, 4 Players) (bootleg of FD1094 317-0070 set), Passing Shot (World, 2 Players) (bootleg of FD1094 317-0080 set), Passing Shot (World, 4 Players) (bootleg of FD1094 317-0074 set), Point Blank (World, GN2 Rev B, set 2), Racing Hero (bootleg of FD1094 317-0144 set), Rescue (Free Enterprise Games, bootleg), Revolution X (prototype, rev 5.0 5/23/94), Ridge Racer V Arcade Battle (RRV1 Ver. A), Rolling Thunder (oldest), Route 16 (set 1), RyuKyu (Japan) (bootleg of FD1094 317-5023 set), Shinobi (set 1, System 16A) (bootleg of FD1094 317-0050 set), Shinobi (set 2, System 16B) (bootleg of FD1094 317-0049 set), Shocking (Korea, set 2), Soccer Superstars (ver UAC), Sonic Boom (bootleg of FD1094 317-0053 set), Soul Calibur III (SC31002-NA-A key, NA-A disc), Super Hang-On (sitdown/upright) (bootleg of FD1089B 317-0034 set), Super Monaco GP (Japan, Rev B) (bootleg of FD1094 317-0124a set), Super Monaco GP (US, Rev A) (bootleg of FD1094 317-0125a set), Super Monaco GP (US, Rev B) (bootleg of FD1094 317-0125a set), Super Monaco GP (US, Rev C) (bootleg of FD1094 317-0125a set), Super Monaco GP (World) (bootleg of FD1094 317-0126 set), Super Monaco GP (World, Rev A) (bootleg of FD1094 317-0126a set), Super Monaco GP (World, Rev B) (bootleg of FD1094 317-0126a set), Tekken 5.1 (TE53 Ver. B), Tetris (set 1, Japan, System 16B) (bootleg of FD1094 317-0091 set), Tetris (set 2, Japan, System 16B) (bootleg of FD1094 317-0092 set), Tetris (set 3, Japan, System 16A) (bootleg of FD1094 317-0093a set), Tetris (set 4, Japan, System 16A) (bootleg of FD1094 317-0093 set), Thunder Blade (upright) (bootleg of FD1094 317-0056 set), Tora Tora (prototype?, set 2), Turbo Out Run (cockpit) (bootleg of FD1094 317-0107 set), Turbo Out Run (Japan, cockpit) (bootleg of FD1094 317-0101 set), Turbo Out Run (Japan, Out Run upgrade) (bootleg of FD1094 317-0117 set), Turbo Out Run (Out Run upgrade) (bootleg of FD1094 317-0118 set), Wally wo Sagase! (rev A, Japan) (bootleg of FD1094 317-0197A set), Wally wo Sagase! (rev B, Japan) (bootleg of FD1094 317-0197B set), Wonder Boy III - Monster Lair (set 1, Japan, System 16A) (bootleg of FD1094 317-0084 set), Wonder Boy III - Monster Lair (set 2, Japan, System 16B) (bootleg of FD1094 317-0085 set), Wonder Boy III - Monster Lair (set 3, World, System 16B) (bootleg of FD1094 317-0089 set), Wonder Boy III - Monster Lair (set 4, Japan, System 16B) (bootleg of FD1094 317-0087 set), Wonder Boy III - Monster Lair (set 5, Japan, System 16A) (bootleg of FD1089A 317-0086 set), Wrestle War (set 1, Japan) (bootleg of FD1094 317-0090 set) and Wrestle War (set 2, World) (bootleg of FD1094 317-0102 set). - New drivers: igs_fear.c, piggypas.c, spcwarp.c and wacky_gator.c - NOTE: Create new mame.ini with mame -cc. New mame.ini option: global_inputs = 0 - M68020 CPU . Fixed corner case for 020+ bitfield instructions (m68000\m68k_in.c and m68kops.c) . Fixed 020+ PACK/UNPK nibble ordering - MIPS CPUs: Added cache operation descriptions to MIPS disassembly (cpu\mips\mips3dsm.c) - Z80 SCC: Added Z80 Serial Communications Controller. Added correct reset values. Added correct read FIFO depths for the different SCC variants. Started work on interrupt system, not verified/debugged due to lack of software. Added conditonal compile for MVC and GCC LOG messages to sort out differences. Cleaned up LOG messages. Use MAME standard 64-bit int workaroundfor Z80 SCC. - C352 sound: The C352 clock divider appears to be configurable for each system (228 = Namcos System 11, 288 = System 22/Super 22/NB-12/ND-12/FL, 296 = System 23/Super 23 and 332 = System 12). Changed enum format. Fixed C352 clock divider in namcos23.c. - Game Blaster and Sound Blaster: Minor corrections - SN76489 sound: Fixed PSG chips to have volume reg inited on reset to 0x0 based on tests by ValleyBell. Made Sega PSG chips start up with register 0x3 selected (volume for channel 2) based on hardware tests by Nemesis. - TMS5110 sound . Got rid of the request_bits and FIFO implementation, both of which were incorrect to hardware. . Minor ZPAR fix. Some comment cleanup. . Finally fixed zpar logic correctly . Purge process() of gotos to hopefully make the compiler's optimizer happier . Added same FAST_START_HACK as in TMS5220, makes (MESS) Speak & Math word delay closer to hardware. . Minor comment fixes and changes to debugging log data . Comment updates (sound\tms5110r.inc) - TMS5220 sound . Implemented talk status state machine properly as shown by patent. Got rid of m_target_* hack in favor of loading data from ROM as needed. Fixed ZPAR logic. Fixed pitch zeroing to match(?) patent. Fixes broken Tie fighter 'roar' sound in starwars (ID 04244). . Purge process() of gotos to hopefully make the compiler's optimizer happier. Added a hack so Victory's "Shields Up" sample and the sample afterward aren't corrupted. . Removed outdated comments and other comment updates to TMS5220 - TMS5110/TMS5220 sound . Fixed an off-by-one in the interpolator causing the k5 coefficient to not be zeroed during unvoiced frames. Fixes various speech glitches. . Fixed incorrect implementation of pitch zero which caused an improperly long period with no pitch at an interpolation inhibited -> voiced boundary. Moved unvoiced parameter zeroing into the frame parser, as on the original chips. Some minor TALK/SPEN state machine changes as well, which should have minimal effect. . Added some notes about the TMS51xx interpolator bug - uPD7759 sound: (MESS) Sega Pico PCM improvements: Refactored Valley Bell changes to uPD7759 into a new device derived from the 7759 rather than adding the Fifo into the 7759 (due to Aaron saying it doesn't exist there). It's possible the custom chip that Pico uses has said logic built in somehow as it's not a plain 7759 afaik. - X1-010 sound: Minor X1-010 sound fixes - ATAPI: Added method identify_device_buffer() to ATAPI CDROM (machine\atapicdr.h) like in idehd - Discrete Netlist . Some pedantic netlist changes. Moved netlist from emu to lib. . Removed last traces of printf from plib. Reorganized some code. - Keyboard: Hook up 'Display switch' (machine\at_keybc.c) - MC146818 RTC: Optional binary default and epoch setting - MC68230 PIT . Handle Port C Data Direction Register (register 4) . Hook up 68230 to (MESS) Besta-88 and make its ROM self-test pass - Sega Custom . Make a couple of things (FD1094 decryption) more friendly to multiple instances (drivers\segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segas24.c, segaxbd.c, machine\fd1094.c, video\segaic16.c and segaic16_road.c/h) . Minor changes to 315-5124 and fixed a regression that in theory could affect zoomed sprites in TMS9918 modes - V9938 video . Fixed (MESS) MSX2 and MSX2+ wrong screen resolutions, borders and refresh rates (ID 05622) (ID 05623). Fixed also visible area and VSync in (MAME) big10.c, csplayh5.c, kas89.c, kurukuru.c, meritm.c, sangho.c, sfkick.c, sothello.c and tonton.c. . Fixed off by one for PAL timing - aleck64.c . Development Disk Drive setting support (machine\n64.c and mess\drivers\n64.c) . N64 driver improvements: Added coprocessor unusable exceptions for LWC1/SWC1/LDC1/SDC1 (cpu\mips\mips3.c). Changed PI DMA granularity from eight bytes to two bytes. Added delay timer for SI DMA. Changed behavior for interlaced video to be more useful, but still needing revision. Simplify/removed some AI DMA interrupt signals. Removed line that cleared EEPROM contents with every machine reset (warm or cold). . N64 changes: PI transfers round down/truncate last bit. SI transfers signal busy while waiting for delay. Initial work to seperate VI from RDP as the actual hardware has no direct communication between them. Stop ERET instruction spamming the error log. Stop screen update from spamming the error log for using MCFG_SCREEN_VBLANK_TIME. The value set was also complete nonsense. . More effort to disentangle the VI and RDP in the source. VI now uses the values set in registers to set the screen resolution, instead of using fixed values. . VI timing period is now set dynamically from the VI registers. VI timing should now be accurate (for NTSC) . Added overlooked factor of 2 to VI timing to account for vertical resolution being set in half-lines. Changed RSP disassembly to use MIPS ABI names for registers. Implemented 'start valid' bit in RDP status register. Increased scheduler quantum time to allow for better r4300 <-> RSP signaling. . Reduced quantum frequency. Optimal value still undetermined and likely to change if RDP emulation speed changes. - chihiro.c . Under the hood 3D accelerator changes: Correct some errors. Added more primitives to some graphic methods. Added color mask support. Method 0x100 (NOP) generates correct interrupt. Some method parameters are readable from mmio registers. . Added values for PIC challenge handshake (machine\xbox.c) . Various Chihiro/Xbox updates: Support render targets different than RGB32. Support 16 bit depth buffer. Support independent clearing of stencil and depth values. Update rom loading. Added Xbox hack to avoid stalling. Set Xbox BIOS 4134 as the one used. - deco32.c . Added some missing PAL dumps to captaven and fghthist . Minor doc update and added PCB layout for Night Slashers DE-0395-1 - fcrash.c: Improved the picture in clone Street Fighter II': Champion Edition (M9, bootleg) - goldstar.c . Documented 'Skill Stop' and 'Show Odds In Double Up Game' dipswitches and Stop 1/2/3 buttons for Cherry Master '91/92. Correct settings for ''7' In Double Up Game' and move to uniform descriptions. . Fixed DIPs/inputs and removed redundant PORT_MODIFY in clone Cherry Master I (E-Z Spin bootleg / hack). - igs017.c and igs_m027.c: Refactored some IGS code into a device (video\igs017_igs031.c) so that we can use it - igs_m027.c . Preliminary decryption of newly added sets (Amazonia King and Amazonia King II) . Splitted 'Fearless Pinocchio' into a different driver (igs_fear.c), has different video hardware. . Shuffled driver sets based on board type - konamigx.c . Reworked konamigx startup hack and apply to other games that need it . Enabled K056832 hack in Soccer Superstar to draw full text tilemaps, probably got turned off during a refactor wile the game was broken. . Fixed [debug] Assertion in Racin' Force (ID 05662) - konendev.c: Enchanted Lamp goes ingame - ksys573.c: Redumped CDs for drmn8m and gtrfrk9m - model2.c: M2COMM initial commit (machine\m2comm.c/h) - mpu4vid.c . Forced IR0 to a non zero value at startup, fixes v4cmaze startup but needs investigation (video\scn2674.c) . Always run the linecounter (video\scn2674.c), fixes mpu4vid driver. - namcops2.c . Updated PCB notes and added game compatibility list . Redumped clone Soul Calibur II (SC23 world version) disc, was confirmed bad on h/w. - namcos23.c: Fixed C352 clock divider - naomi.c . GDROM disc redumps for initd, initdv2jo, jingystm, keyboard, luptype, moeru, usagiym, vf4o and ss2005 . Docs update. Reparented NAOMI 1/2 to latest games revisions. - neogeo.c: Adjusted sound balance based on some hardware recordings (ID 06028) - segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segaxbd.c: Added stuff sold as 'universal Sega repair kit'. It is in fact just a collection of decrypted roms, so not very universal at all. - suna8.c: Overhauled the rendering of text sprites and added masking. Not perfect yet but improves a few effects compared to PCB videos. This fixes Super Ranger and others sets has graphics issues when finishing first and last stage (ID 05971) (ID 00878). - system1.c: Fixed Choplifter and Heavy Metal crashed with a message in IC TEST. Palette ram writes were no longer actually being stored in RAM for games with the lookup PROM (ID 06024). - taito_f3.c: Reduced tagmap lookups (was causing severe slowdown in Arkanoid Returns) - zaccaria.c: Commented MCFG_QUANTUM_TIME() entries in driver and tested each game and noticed no ill effects. Money Money and Jack Rabbit now run over two times faster than before, overall. - Atari games: Significant accuracy improvements, documentation and other updates to the ER-2055 EAROM emulation used for several Atari games, based on schematics and datasheets. It now uses a state machine to keep track of the current EAROM bus state (machine\atari_vg.c; drivers asteroid.c, bwidow.c, bzone.c, centiped.c, galaga.c, runaway.c and tempest.c). - Blandia: Fixed garbage graphics during intro and on fights by adding VIDEO_UPDATE_AFTER_VBLANK (ID 04701). Probably is needed by all games in the driver, though the rest seems to work fine with the default method. - Caveman Ninja and Macross Plus: Added PAL dumps - Counter Steer . Fixed Counter Steer booting. Spotted Slave CPU bus request line. Fixed address line swapping for Slave CPU area at 0x2000-0x2fff. Note: Game needs NMI masking for Slave CPU. . Improved bus requesting, assuming that DP is involved. Fixes service mode and a bit of pre-gameplay, game still doesn't work probably due of irqs. - Demolition Derby: Changed PORT_REVERSE to PORT_INVERT. Actual hardware show test mode starts at 0 for wheel inputs, not 128 (ID 04401). - Demon Front: Redumped/confirmed external 32Mbit ARM EPROM and removed bad dump - GP Rider . Correctly emulated the 'Twin' X-Board setup which was used by GP Rider (a bridge board with shared RAM). Apparently GP Rider uses a setup similar to F1 Exhaust Note etc. where the game uses a dual PCB stack and bridge board providing a direct connection containing shared RAM rather than a network connection. In order to facilitate this we need both PCB stacks running, so as per a request from SailorSat I've made this possible, and added a set 'gpridert' which uses this configuration. Unfortunately, for reasons unknown to me, the communication still breaks down (it was thought that this could have been caused by the hacks needed if running multiple instances of MAME with shared RAM as a file instead, but apparently not). As this is something of a failed experiment I'm submitting it for SailorSat to take a look at, might revert it before the next release however, although once we do have full dumps of some of the Sega gambling / redemption games we'll need the various board types as devices anyway as those games mix multiple types of boards for the different screens. . Fixes for GP Rider Twin setup. Works, but needs cleanup. . Marked the Twin setups for GP Rider as working (everything seems fine in my testing with SailorSat's changes) . Fixed missing 'Demo Sounds' (ID 00999) - Ground Effects: Fixed accelerator - GunNail: Better documentation, clocks and ROM names etc. Fixed M68000 clock speed. - Hyperdrive: Added an update rom to the HyperDrive set, unfortunately we can't use it because it seems to be for updating an older drive TO 1.40, and the only dumped drive we have is already 1.40, keep your eyes out for older drive revisions please. - Jack Rabbit: Added PLDs to clone (set 2) - Jump Bug: Fixed missing scrolling starfield by applying the same star generator as Galaxian (ID 05969). Schematics aren't available, but the readme of the rom dump states that the PCB is very similar to Galaxian. - New Sinbad 7: Fixed sprites cut off/not displayed at top of play area (ID 05428) - Prehistoric Isle: Fixed wrong speed (see MT05939). This is a guesswork but in any case it's better than use a standard refresh rate of 60.00 Hz. Values are taken from SNK68 driver which contains games with very similar (if not identical) hardware to prehisle. Notice that the new refresh rate is identical to NeoGeo and this should not be a surprise since we're talking about SNK manufacturer. - Quantum: Added note about AVG prom assumed to be the same, removed BAD_DUMP. Use actual dump from the 82S153 device. - Rescue: Make clone Tuono Blu (bootleg of Rescue) work at least, that one just has a simple security check. - Royal Ascot: Fixed regression - Space Warp: Seperated Space Warp into a skeleton driver for further notice. Still gets nowhere in booting. - Tecmo World Cup '90: Improved sprite handling a little (video\tecmo_spr.c) - Track & Field: Decrypted clone Track & Field (NZ bootleg?) (Game now playable) - Varth: Added correct PLD dump to clones (Japan Resale Ver. 920714) and (USA 920612) - Xor World: Minor fixes to irq_line_assert - Yamato: Fixed game crashed after INSERT COIN and graphics glitches in attract mode (ID 06029). Note: Yamato has one more ROM at 0x7000 - 0x7fff that must be taken care of. I opted for using the same decode for clone Yamato (World?) too, even if 0x6000 was enough for it, to avoid more code duplication. - Input port: Added 'global_inputs' (disabled by default) to allow MAME to read inputs even when it doesn't have the focus. SailorSat made it possible to run multiple instances of MAME for link games, but the problem is that you can only control one MAME instance at a time (the window that has focus). Because win32 MAME supports RawInput, we can make linked games playable with global inputs that will poll simultaneously regardless of whether that MAME instance has focus. In win32 MAME using RawInput, keyboards were already registered for global inputs (RIDEV_INPUTSINK), but the polling code checks if the window has focus, so it wasn't taking advantage of it. I thought it'd be a good idea to add an option for global inputs to win32 MAME with RawInput. The WINOPTION is the "global_inputs" boolean. The option is disabled by default because this is an uncommon use case for MAME. The option is also disabled when forcing direct input and debugging. If the RawInput initialization code fails for whatever reason, the option will not be enabled. If the option is disabled, keyboards are no longer registered for global inputs (dwFlags set to 0 instead of RIDEV_INPUTSINK), because they won't work globally with the screen focus check anyway. - Dipswitch fixes in konendev.c - Fixed rom names in asuka.c, goldstar.c, gunsmoke.c, lethalj.c, nmk16.c and pgm.c - Renamed (clubkrte) to (clubkrto), (clubkrtd) to (clubkrt), (destdrby) to (dmodrbcc), (gprider) to (gpriders), (gpriderj) to (gpriderjs), (gprideru) to (gpriderus), (gunsur2) to (gunsur2j), (gunsur2e) to (gunsur2), (hyprolymb) to (hyprolymba), (mazan) to (mazana), (mazana) to (mazan), (mbaa) to (mbaao), (mbaaa) to (mbaa), (meltyb) to (meltybo), (meltyba) to (meltyb), (mushik2e) to (mushi2eo), (mushi2ea) to (mushik2e), (ninjaslt) to (ninjasltu), (ninjaslt4) to (ninjaslt), (ninjaslt1) to (ninjasltj), (ninjaslt2) to (ninjaslta), (radirgy) to (radirgyo), (radirgya) to (radirgy), (ramtek3) to (soccrrmt), (route16) to (route16c), (route16b) to (route16bl), (ss2005) to (ss2005o), (ss2005a) to (ss2005), (vf4) to (vf4o), (vf4c) to (vf4), (vstrik3c) to (vstrik3co), (vstrik3cb) to (vstrik3c), (wldkicks) to (wldkicksa), (wldkicksa) to (wldkicks) and (wldkicksb) to (wldkicksj) - Description changes of Demolition Derby [TTL], Flash Point (set 2, Japan) (bootleg of FD1094 317-0127A set), Gun Survivor 2 Biohazard Code: Veronica (Japan, BHF1 Ver.E), Gun Survivor 2 Biohazard Code: Veronica (Asia, BHF2 Ver.E), Hard Head (bootleg, set 1), Hyper Olympic (bootleg, set 2), Lethal Justice (Version 2.3), Mazan: Flash of the Blade (Asia, MAZ2 Ver.A), Mazan: Flash of the Blade (US, MAZ3 Ver.A), New Sinbad 7 (set 1), Night Slashers (Korea Rev 1.3, DE-0397-0 PCB), Night Slashers (Japan Rev 1.2, DE-0397-0 PCB), Night Slashers (Over Sea Rev 1.2, DE-0397-0 PCB), Night Slashers (US Rev 1.2, DE-0395-1 PCB), Ninja Assault (US, NJA3 Ver.A), Ninja Assault (World, NJA4 Ver.A), Ninja Assault (Japan, NJA1 Ver.A), Ninja Assault (Asia, NJA2 Ver.A), Point Blank (World, GN2 Rev B, set 1), Pokasuka Ghost!, Revolution X (rev 1.0 6/16/94), Route 16 (set 3, bootleg?), Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (Japan, TRF1 Ver.A), Shocking (Korea, set 1), Soccer (Ramtek) [TTL], Soccer Superstars (ver EAC), Soul Calibur II (SC23 world version), Soul Calibur III (SC31001-NA-A key, NA-B disc), Soul Calibur III (SC31002-NA-A key, NA-B disc), Tuono Blu (bootleg of Rescue), World Kicks (Asia, WK2 Ver.A), World Kicks PCB (Japan, WKC1 Ver.A) and World Kicks (US, WK3 Ver.A) - MAME . Changed GAME_NO_SOUND to MACHINE_NO_SOUND in emu\drivers\emudummy.c . Converted galastrm.c, hng64.c, midzeus.c (+ video\midzeus2.c), model2.c and namcos23.c to render with the newer polygon interface instead of the legacy one. Fixed Clang error in namcos23.c reported by Travis. Fixed writing to the Z-buffer in the wrong spot (video\hng64_3d.c). . 3rdparty . Added GoogleTest and converted tests to us it. Fixed Emscripten compile with GoogleTest. . Added latest BX and BGFX. Updated scripts for compile with latest BGFX. . Removed not needed DirectX files. DX12 not working under MinGW so disabling it for now. . Added missing file for OSX (3rdparty\bgfx\src\renderer_mtl.mm) . Removed deps from 3rdparty to OSD . Prevent main menu from overwriting error.log and wavelog (emu\machine.c and sound.c) . Simplified coreutil.c gregorian_days_in_month . HLSL . Added distortion pass, which is applied after the bloom pass . Moved vignetting, curvature, round corners and reflection effect to distortion pass . Disabled distortion pass for multi screens and activated artworks due to not yet fixed misalignments . Disabled scanlines for vector rendering in post pass shader . Removed prescale knowledge from downsample, bloom and post pass shader . Fixed half pixel offset in most shaders . Fixed position of reflection effect when screen is rotated or flipped . Fixed roundness of round corners in any aspect ratio . Fixed shadow mask bleeding (nearly completly) . Added bounds() and screen_bounds() getter to layout_view . Added current_view() getter to render_target . Some cleanup and refactoring - MESS . Added Professional Graphics Controller (isa_ibm_pgc) skeleton driver. Reinstall ROM mapping at reset time. . Added 80 trak format to (MESS) Vector 06c . Added PCI bus and chipset. -bios 2 and 3 now boot. Other BIOSes require some cache funkiness. . Added TMS1980 CPU . Fixed for regression/fatalerror in (MESS) Kaypro 286i (machine\at.c) - MAC OS X . Fixed netdev\pcap.c crashes on OS X . Fixed build with Xcode 7 . Travis Mac OS X build - Compiling . Fixed GetModuleHandle to be universal (osd\modules\debugger\win\debugviewinfo.c, debugwininfo.c, editwininfo.c, osd\windows\input.c, output.c, window.c, winmain.c and winutil.c/h) . Made FORCE_VERSION_COMPILE option to be used for build server (makefile, scripts\genie.lua and scripts\src\main.lua) . Removed unneeded drawgfxm.h include (video\hng64.c, pc080sn.c, pc090oj.c, tc0100scn.c, tc0110pcr.c, tc0150rod.c, tc0180vcu.c, tc0280grd.c, tc0360pri.c and tc0480scp.c) . Fixed OpenGL overly-strict requirement on SCREEN shaders to match docs . Moved all devices into separate part of src tree (src\emu\ to src\devices\) and updated build scripts and code change in order to fixed compile . Removed direct zlib dependency in code . Backport libflac endian patch to not use winsock.h etc. . Slight speedup to device_scheduler::timeslice() (emu\schedule.c) . Fixed compile for MSVC (netlist\plib\pstream.h and pstring.c) 0.165 - New games: Merit Joker Poker (9131-01) and Pack'n Bang Bang (prototype) - New Working games: Crush Roller (Famaresa PCB), Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs), Super Hang-On (mini ride-on, FD1089B 317-0034), Three Wonders (bootleg) and Virtual Pool - New Non-Working games: Chexx (EM Bubble Hockey, 1983 1.1), Dino Dino, Fruit Paradise (V214), Joy Stand Private, ROLLing eX.tre.me, Techno Drive (Japan, TD2/VER.B) and Unknown Poker PKII/DM - New clones: Americana (9131-01), Dragon's Lair (US Beta 1, Pioneer PR-7820), Dragon's Lair (US Beta 2?, Pioneer PR-7820), E.D.F. : Earth Defense Force (set 2), Face-Off (EM Bubble Hockey), Fighter's History (US ver 42-09, DE-0396-0 PCB), Fighter's History (World ver 43-05, DE-0380-2 PCB), Gun.Smoke (US, 851115, set 1), Hissatsu Buraiken (Japan, bootleg?), Knuckle Bash (Korean PCB), Mahjong The Mysterious Orient Part 2 - Exotic Dream, Meteors, Mighty Monkey (Kaina Games, bootleg on Scramble hardware), Saint Dragon (bootleg), Street Fighter Alpha 3 (USA 980616, SAMPLE Version), Trivia (Questions Series 8) and War: The Final Assault (EPROM 1.6 Jan 14 1999, GUTS 1.1 Mar 16 1999, GAME Mar 16 1999) - New PEPlus games: Player's Edge Plus (KE1012) Keno (set 1) and Player's Edge Plus (PP0555) Standard Draw Poker - Removed games: Trivia (Questions Series 10 Alt Question Rom) - New drivers: chexx.c, joystand.c and rollext.c - New devices: flopsnd - M68000 CPU: Added M68kFPU mode 7, reg 0 (cpu\m68000\m68kfpu.inc) in advance of the (MESS) ROLM 9751 driver in development - TMP68301 CPU: Fixed masking of parallel data register - V60 CPU: Added 'NEC Semiconductor Selection Guide Book' comments - RF5C400 sound: Document some registers - TMS5110 sound . Added correct CD2802 chirp rom from decap (sound\tms5110r.inc) . Replaced the frame parse and speech generation code from tms5110.c with the code from tms5220.c, should be significantly more accurate and allow the cores to be much more easily merged in the future. This also allowed finally getting rid of the COEFF_ENERGY_SENTINEL hack in tms5110r.inc. . Updated the interpolation tables to use the "IP" (0,1,2,3,4,5,6,7) instead of logical (1,2,3,4,5,6,7,0) order. Fixing the initial coefficient index values. . Removed target_x variables in favor of reloading from coefficient ROM during the generation loop (as the real device does). Implemented proper ZPAR and unvoiced ZPAR logic for zeroing parameters during idle and unvoiced frames. Changed the pitch zeroing logic during frame inhibit to last an entire interpolation period rather than one sample. Replaced the speech-is-synthesizing state machine with the original patent TALK, TALKD and SPEN bits. Redid the talk_status logic to use (TALKD || SPEN) as the real device does. Fixed stupid typo, doesn't fix the cvs.c Gold Bug sound inconsistency yet. - TMS5220 sound . Minor cleanups to TMS5220 so savestate and member variables are in the same order. Added a missing savestate entry. Fixing the initial coefficient index values. . Fixed interpolation on TMS52xx to match samples from real chip - 8251 UART: Separated rx and tx data buffers. Updated (MESS) HP 64000 driver. - 8253 PIT: Try to prevent mode 2 triggering twice - Atari Custom: Fixed out of bounds priority check (video\atarimo.c) - Data East Custom: Documentation update (video\deco16ic.c) - Discrete Netlist . Improved MB3614 parameters. Changed some opamps to type "idealized" (type 1) in Congo Bongo netlist and got 50% speed improvement. . Added simple stream classes to netlist code . Added emu\netlist to include dirs to avoid relative paths in netlist include files. Removed relative paths in include statements. . More usage of streams and aligned exception use . utf8 support for pstring. Opted for a scalable solution which should be easily extensible to utf16 and utf32 as well. All position related operations now operate on char code positions instead of byte positions. . Make netlist more typesafe. Added a pformat class to reduce sprintf usage. The approach is also suitable for translated strings with arbitrary positioning of parameters. . Removed vsscanf from netlist. Changed default format for double to "g". . Changed UINT16 - UINT64 to generic types in pformat . Some netlist_time maintenance. Straightened code using it and added support for 128 bit resolution on systems supporting it. This is however disabled since all platforms I know don't have native support but emulate 128 bit. . Converted USE_PIVOT into runtime option PIVOT. Fixed some issues for nl_double == float. . Increase performance from 53% to 69% for matrix size around 30x30. These matrices are e.g. used in Congo Bongo without optimisation. . Created a separate logging class. Netlist code should now be at least 98% type safe. No more fuzzing around with SIZEFMT and friends. Changed formatting to use python style format strings. . Moved nltool.c and nlwav.c into netlist\prg. Added netlist\build\makefile. This allows netlist to be ripped out of the tree and to compile it standalone. - Flash ROM . Added support for TMS29F040 variant (machine\intelfsh.c) . Fixed typos in machine\intelfsh.c (AMD_29F400T and AMD_29F800T) - Konami Custom . K057714: Splitted K057714 GCU from firebeat.c driver into its own file video\k057714.c. Hooked up GCU to konendev.c driver. Driver show some graphics and pass some tests. Added double height characters. Added IRQ callback. Found yet another FIFO. . K051960: Converted various K051960-based drivers to single-pass drawing and make const things const. Start adding irq/firq/nmi callback support. Implemented NMI and VBLANK. Use new K051960 irq support in 88games.c, ajax.c, aliens.c, blockhl.c, bottom9.c, chqflag.c, crimfght.c, gradius3.c, mainevt.c, spy.c, thunderx.c, tmnt.c and ultraman.c. . K052109: Start adding irq/firq/nmi support. Use new K052109 support in Block Hole. - V9938 video: Added clock to device configuration - 8080bw.c: Clean up palette handling - aerofgt.c: Fixed priorities in bootlegs (video\aerofgt.c). There are some bootlegs of Power Spikes that use its drawing sprites method, so they have to be fixed in the same way like MT05981 - MAME 0.164. - aleck64.c: Make video\rdptpipe.c slightly more efficient - astrocde.c: Converted profpac & friends to bankdev - bartop52.c and maxaflex.c: Reduced read_safe usage (machine\atari.c) - bfm_sc4.c: Increased MAX_TEXTURE_SCALES to 16 (emu\render.h). This fixes "FATAL ERROR: Too many live textures in emu\renderer.c" (ID 06008). - chihiro.c: Move parts common with Xbox console into their own files machine\xbox.c and includes\xbox.h. (MESS) Xbox console driver now uses the base common machine setup with Chihiro. - cobra.c: Install some runtime patches to make Fighting Bujutsu boot - cps1.c . Added video kludge to fixed clones Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs) and Three Wonders (bootleg) (Games now playable) (ID 05801). . Fixed a number of graphical errors in clone Three Wonders (hack) and unmapped ports (ID 03193) (ID 02892) - ddenlovr.c, dynax.c, hnayayoi.c and royalmah.c: Sorted dynax games by ID and added some missing IDs (mame\arcade.lst) - deco32.c . Added PCB location and PCB layout to Fighter's History. Verified and correct the rom labels for all sets. . Added PCB layout for DE-0395-1 PCB - gei.c . Dumped and added Alt series 8 question rom . Verified and correct series 8 questions roms . Removed duplicate erroneous new_science series 10 question rom . Minor input clean up/consolidations . Made Trivia games use ZXCVB keys - goldstar.c . Documented 'Hold Pair' dipswitch in cmv4 and 'Hold Pair' and 'Fast Take With' dipswitches in crazybon . Documented 'Card Shuffle Animation' and 'Hold Pair' dipswitches in cmv801 . Dipswitch improvements in cmaster and clones - guab.c: Added Floppy drive sound - iteagle.c . Updated sequence generator initialization for Virtual Pool (Game now playable) . Added separte sequence generator for Eagle 1 hardware. Added additional interrupt clearing for IDE controller (machine\iteagle_fpga.c). - itech8.c and megatech.c: Reduced tagmap lookups and read_safe usage - itgambl2.c and namcos23.c: Fixed problem with uninitialized variables in cpu\h8\h8_timer16.c, this fixes all sets in itgambl2.c and namcos23.c are crashing directly after OK (ID 05762). - konendev.c . Hooked up K057714 GCU to driver. Driver show some graphics and pass some tests. . Added NVRAMs. Patch flash checksum for now . Fixed battery status - legionna.c and raiden2.c: Fixed negative float to unsigned int implicit conversion in machine\raiden2cop.c. This caused issues on ARM hosts where result of such conversion is always 0. Casting the negative float to signed int resolves the issue. Without this fix some sprites had wrong rotation and also bullet direction was not always correct on ARM host. The fix was tested on Intel and ARM host, both platform work OK. - leland.c: Try to prevent mode 2 triggering twice in PIT8253. Fixes horrible audio sound and DAC sounds differently between 32-bit and 64-bit (ID 05377) (ID 05709) (ID 05435). - macrossp.c . Consolidated sprite rendering for ease of pdrawgfx conversion . Fixed sprites pri versus each other and bg with priority buffer and reverse drawing list . Fixed some sprite/bg priority issues . Reverted the zoomed scroll offset to how it was for the time-being . Fixed tilemap zoom for Macross Plus, this fixes offset/zoom in title screen, spr-spr priorities at level 1 boss, spr-spr priorities at 2nd level mid-boss, background at 2nd level end-boss, priorities at level 4 boss and level4 background (ID 03966). . Fudge chained sprite zooming for quizmoon . Removed IMPERFECT_GRAPHICS in macrossp and quizmoon . Fixed reported regression with priorities on quizmoon map screen. Higher tilemap takes precedence when priorities equal. - midzeus.c . Added rudimentary blending to video\midzeus.c (mk4 and invasnab). Note, this doesn't improved Cruis'n Exotica or The Grid, they run on Midway Zeus 2 which is significantly different. . Added alternate back-face culling method. Added additional blend modes. Added depth test and write enables. Slightly improved rasterization. - namcops2.c: Added H/W info for first version of System 246 - namcos10.c . Preliminary decryption support . chocovdr, gamshara, konotako, nflclsfb and startrgn now decrypt themselves on-the-fly . Decryption support for knpuzzle; it doesn't happen on-the-fly due to protection issues . Speeding up device construction . Decryption support for gjspace and more comments . Fixed flash access in startrgn - namcos12.c: Added H8/3334 (14745600 Hz) CPU3 to Truck Kyosokyoku (Japan, TKK2/VER.A) - naomi.c . Added Sega 837-14645 JVS I/O dump to '18 Wheeler (deluxe) (Rev A)' . Added notes about 315-6146 MCU (machine\mie.c) . Added trackball I/O board ROM to OutTrigger - psikyosh.c: Dumped EEPROM from Dragon Blaze (fixes security error) and Mahjong G-Taste - segas32.c: Added PCB layout for S32 Multi network/link PCB - Amiga: Reduced tagmap lookups and read_safe usage and minor cleanups (includes\amiga.h, machine\amiga.c and video\amiga.c). - Ace: Reduced tagmap lookups and minor cleanup - Aqua Stage: Added a wide screen layout. Still not sure why it isn't running correctly, e.g. not sending valid commands for 2nd screen. - Back Street Soccer: Fixed significant performance drop during intro (ID 06007) - Block Hole . Use bankdev and clean up driver . More cleanups, COIN3 is actually SERVICE1, properly reflect the controller configuration. Added notes and issues. . Audiocpu runs in im1, no point setting an interrupt vector. Plug in xtal values from PCB picture. - Crime Fighters . Verified some things from the schematics . Full memory map and proper irq set/clear for the audio cpu . Added mirrors for watchdog/coincount/audioirq ports (address decoding pals need to be dumped for more improvements) . Added coin b settings, not used in game but can be verified in service mode. . The system can read back some bankswitch port values using the port shared with dsw3, emulating this fixes the wrong status display of the service mode dipswitch in service mode (previously inverted). . Converted driver to bankdev. Audio cpu irq is cleared by the irq ack cycle. - Crush Roller: Fixed rom load in clone Crush Roller (Famaresa PCB) (Game now playable) - The Dealer (Visco): Dumped i8742 internal ROM - Escape from the Planet of the Robot Monsters: Fixed out of bounds priority check (video\atarimo.c). This fixes graphics glitch occurs when destroying computer equipment (ID 05690). - Gauntlet Legends and NFL Blitz '99 . Added the gauntleg 1.2 -> 1.6 update roms to clone Gauntlet Legends (version 1.2) Smitdogg and rtw dumped a while back, and allow the driver to see them. Note, this is a 3 stage process, you boot the system with a different rom in the additional slot each time. . Recompressed the CHD in clone Gauntlet Legends (version 1.2) with -chs 4969,16,63 which are valid params for a Quantum Fireball 2.5GB (which based on what I can find online is the original drive type). This allows the updater program to work, so if you desire you can run it on the set and update the set to 1.6 as you would be able to do on original hardware. . Added blitz99 1.2 -> 1.3 update rom to clone NFL Blitz '99 (ver 1.2, Aug 28 1998). Enter Test mode with the upgrade ROM installed. - Konami games . Cleanup drivers aliens.c, battlnts.c, bladestl.c, crimfght.c, gradius3.c, mainevt.c, rockrage.c, rollerg.c, spy.c, ultraman.c and xmen.c . Added raw screen params to ajax.c, aliens.c, blockhl.c, chqflag.c, crimfght.c and simpsons.c. Added note about correct dotclock to crimfght.c and simpsons.c. - Last Striker / Kyuukyoku no Striker: Added different fg offsets. This fixes the shifted up screen (ID 06005). - Mini Vaders: Added PCB layout - Monza GP . Fixed I8035 VRAM read/write . Added background graphics . Added coin and DSW inputs . Fixed gfx RAM . Added 7-seg artwork . Added my car sprite - Pop'n Music 7: Added new dongle (old one was service-only) - Radar Scope: Added support for M58819 'VSM-emulator', fixes speech in clone Radar Scope (TRS01). - Roc'n Rope: Fixed game resets when pressing start (ID 06006) - Royal Mahjong: Added correct color PROMs for clone Tahjong Yakitori (ver. 2-1) - Spectar: Fixed missing sounds (audio\targ.c) (ID 05217) - Super Hang-On: Redumped bad maincpu rom in clone Super Hang-On (mini ride-on, FD1089B 317-0034), correct rom labels and promoted to working. - Tempest: Reverted 0.136u4 flickering fix (MT03634) in video\avgdvg.c only for Tempest, not for Quantum. It breaks Tempest service mode. Maybe the flickering actually happened on real hardware sometimes, or wasn't visible due to the nature of the vector generator? - Input port: Get rid of active_safe (emu\ioport.h) - Dipswitch fixes in goldstar.c, monzagp.c and psikyosh.c - Fixed rom names in capbowl.c, deco32.c, gunsmoke.c, konamigx.c and model3.c - Renamed (americna) to (americnaa), (fghthistub) to (fghthistuc), (fghthistua) to (fghthistub), (fghthistu) to (fghthistua), (gtsers8) to (gtsers8a), (gunsmokeu) to (gunsmokeub), (gunsmokeua) to (gunsmokeu) and (peke1012) to (peke1012a) - Description changes of Bowl-O-Rama Rev 1.0, E.D.F. : Earth Defense Force (set 1), The First Funky Fighter (North America, set 1), The First Funky Fighter (North America, set 2), Gun.Smoke (US, 851115, set 2), Mahjong The Mysterious Universe (Japan, D85), Player's Edge Plus (KE1012) Keno (set 2), Super Hang-On (mini ride-on, FD1089B 317-0034), Toushin Blazers (Japan) (ID 06014), Trivia (Questions Series 8 Alt Question Rom) and War: The Final Assault (EPROM 1.9 Mar 25 1999, GUTS 1.3 Apr 20 1999, GAME Apr 20 1999) - MAME . HLSL . Removed position offset in post.fx . Fixed texture offset caused by 0th level of bloom.fx . Fixed texture offset caused by focus.fx . Changed Passthrough parameter in phosphor.fx to boolean . Simplified defocus pass function and calling it twice . Removed CU_PHOSPHOR_IGNORE (Passthrough) uniform, which was only used in phosphor pass function and is now directly set. . Added CU_TARGET_DIMS (TargetDims) uniform based on the current render target . Fixed missing Prescal parameter in downsample pass function . Some code cleanup . Changed flags from GAME_ to MACHINE_ (e.g. GAME_NOT_WORKING to MACHINE_NOT_WORKING). This better fits the drivers from MESS (which have always illogically used the GAME_ flags despite not being games) and also fits fine with arcade machines. . RGB utilities . Added the rest of the 3-bit palette variants (emu\emupal.c) and added the possiblity to set individual R/G/B levels for pens . Use standard 3-bit BRG, GBR, GRB, RBG or RGB palettes for 8080bw.c, amusco.c, astinvad.c, buster.c, dai3wksi.c, dynadice.c, gei.c, jollyjgr.c, mole.c, sstrangr.c and vpoker.c. . Use an explicit monochrome palette in 8080bw.c for spacecom and shuttlei . Use palette device for junofrst.c, mcr68.c, prosport (palette ram) and tutankhm.c . Use standard palette device ram for atarisy2.c, djmain.c, dynduke.c, galpanic.c, hng64.c, konamigx.c, macrossp.c, magic10.c, micro3d.c, midtunit.c, midwunit.c, midxunit.c, plygonet.c, senjyo.c (seperate standard palette and radar palette), system1.c and tasman.c. . Added support for inverted data palette ram and added more formats (emu\emupal.h) . Misc palette cleanups in mame\drivers\ and mame\includes\ . Removed palette trampoline in amspdwy.c, bogeyman.c, btime.c, cmmb.c and jack.c . Added an adjustable global brightness (emu\screen.c). Use screen brightness instead of changing the palette in macrossp.c and removed some now unneeded functions/variables. . Added support for the IIBBGGRR format, only apply intensity bit if there is a color defined (emu\emupal.c). . Moved rgbi formats out of emupal.h . Updated bionicc.c palette handling . Sync software list rom name validation with regular rom name validation (emu\softlist.c) . Activated dlair_1, dlair_2 and pkii_dm due to locating roms/adding to .lst files . Floppy . Don't truncate if format doesn't support save (imagedev\floppy.c) . Added Floppy drive sound with samples (floppy_35_motor and floppy_35_step). Step sound is now triggered on edge, not level. Added some state save items (imagedev\floppy.c). Invoke step on cylinder change. . Declare as HighDPI aware - application natively scales and doesn't require special support, except for OSD dialogs/debugger windows (windows\mame\mame.man). The default debugger _is_ highdpi aware already. This fixes MAME in Fullscreen crashes on Windows 7 with Display set to 150% (ID 03478). . Added seconds() and attoseconds() to attotime and prefixed members with m_. Rewrote code accessing members to use seconds() and attoseconds(). The changes were triggered by a test how GCC __int128_t would perform as the internal representation. This test revealed that the current implementation is still faster. . Increased MAX_TEXTURE_SCALES to 16 (emu\render.h) . Reverted wav output fix from MAME 0.149u1 ("emu\video.c: recompute_speed even if we skip frame, makes wav's output same for any frameskip"). This broke auto-frameskipping. MAME was unable to correct itself after a hickup and would continue frameskipping and fluctuate speed between 95 and 105%. . Added missing header for va_list (3rdparty\mongoose\mongoose.h) . Removed dumb menuless_mode in ui\sliders.c - MAC OS X: Fixed crash in osx\debugview.m - MESS . New AT29 flash EEPROM circuits . Added floppy noises to some MESS drivers - Compiling . Make all scripts Python 2/3 compatible . Reduced tagmap lookups in drivers\ace.c, alg.c, astrocde.c, gaelco2.c, harddriv.c, itech8.c, lethalj.c, megatech.c, micro3d.c, naomi.c, splus.c, tnzs.c, vegas.c, vicdual.c, warpwarp.c, wgp.c, amiga.c/h, emu\emuopts.c, ioport.c, machine.c, render.c, rendlay.c, video\antic.c and sound\wave.c . Fixed VS build (scripts\src\osd\windows.lua) . Disable warnng C4319 with Visual Studio 2015 (scripts\genie.lua) . Fixed emscripten compile (netlist\plib\pstring.h and osdmini\minifile.c) . Fixed template_driver.c compilation . OS/2 patches for MAME 0.164 - Debugger: Destroy window before destroying view. Destroying the focus window triggers a killfocus event. For cursor-supporting windows, this accesses the just-deleted view data, and then crashes. 0.164 - New games: The Dealer (Visco), Gaia - The Last Choice of Earth, Mahjong Gorgeous Night (Japan, TSM003-01), Mahjong Magic Lamp, Mahjong Super Dai Chuuka Ken (Japan, D115), Monkey Magic and The Round Up - New Working games: 1942 (Tecfri PCB, bootleg?), Spatter (315-5099) and Top Landing - New Non-Working games: Aqua Stage, Mahjong Shuang Long Qiang Zhu 3 (China, VS107C), NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (Sports Station?) and Sega Network Taisen Mahjong MJ 3 Evolution - New clones: Ave Fenix (Laguna, Spanish bootleg of Phoenix), Bubble Bobble II (Ver 2.6O 1994/12/16), California Speed (Version 1.0r8 Mar 10 1998, GUTS Mar 10 1998 / MAIN Mar 10 1998), Crush Roller (Famaresa PCB), Final Fight (bootleg on Final Crash PCB), Galaxy Force 2 (Super Deluxe unit), Gang Hunter / Dead Angle, Hana to Ojisan [BET] (ver 1.00, 1991/08/23), Hot Chase (set 2), Hot Rod (Japan, 4 Players, Floppy Based, Rev C), Indianapolis (bootleg of Turbo), Jumping (set 3, Imnoe PCB), Karate Blazers (bootleg), Maya (set 4, clean), Midnight Resistance (Joystick bootleg), Mortal Kombat (Yawdim bootleg, set 4), NFL Blitz '99 (ver 1.2, Aug 28 1998), Phoenix (Assa, Spanish bootleg), Power Spikes (Italian bootleg), PuzzLove (Korea), Quizard (v1.0), R&T (Rod-Land prototype?), Road Blasters (upright, German, rev ?), The Rumble Fish 2 (prototype), Run and Gun (ver EAA 1993 9.10, prototype?), Shinobi (Datsu bootleg, set 2), Sunset Riders (4 Players ver JAD), Super Cobra (Stern Electronics) (encrypted, KONATEC XC-103SS CPU), Turbo (encrypted, program 1363-1365 rev B), Turbo (encrypted, program 1363-1365), Varth: Operation Thunderstorm (Japan Resale Ver. 920714), Vautour (bootleg of Phoenix) (Z80 CPU, single PROM), Vendetta (Asia, 4 Players, ver. Z) and X-Men Vs. Street Fighter (USA 960910) - New drivers: mmagic.c and thedealr.c - New devices: floppy_35_dd and jvs13551 - New Cheat.dat: http://cheat.retrogames.com/ - DSP56156 CPU: Removed the not required direct update handler - KONAMI-1 CPU: Replaced M6809 CPU1 with KONAMI-1 in circusc, finalizr, gyruss, hyperspt, jailbrek, junofrst, megazone, roadf, rocnrope, sbasketb and trackfld - M68000 CPU: Fixed unaligned pc-relative accesses (m68000\m68kcpu.h) - M68020 CPU: Fixed '020 cache emulation corner case - MIPS CPUs . Added MCFG_FORCE_NO_DRC option (cpu\mips\mips3drc.c, rsp\rspdrc.c and sh2\sh2drc.c) . Minor MIPS fixups. Fixed drc bug. - SCSP sound: MSLC port in SCSP writes seems to mask with 0xf800 according to Jikkyou Oshaberi Parodius - SH-1/SH-2 CPUs . First step in converting SH-2 to have separate internal devices. Fixed SH-1 num of address bits, removed extra read / write memory checks, added cache data array to main SH-2. . Fixed SH-1 internal mem map . Fixed number of address lines for SH-1 . Fixed accessing to internal map, might need another parameter for address cache "masking" (i.e. SH-1 uses address bit 27 for cache). . Added SH-2A flavour, which is SH-2 + SH7021 used by (MESS) Casio Loopy. Added bread-and-butter DMA CH 0 for SH7032, used by (MESS) Casio Loopy for RAM fill. . Added transfer size clear for DMAs, used by Chaos Seed in SS (still randomly crashes tho). - Z8000 CPU: Fixed lda register corruption (store src in case dst == src) - Game Blaster and Sound Blaster 1.0: Correct clock to 7.159 MHz - SAA1099 sound: Fixed driver to actually use clock - YMF278B sound . Added simple FM reg read back . Added (MESS) moonsound FM part (integrated YMF262 to YMF278) - ATAPI: Added Check Power Mode command (machine\atahle.h and atapihle.c) - Discrete Netlist . Code maintenance. In addition, added a parameter to select iterative solver. . Fixed UTF-8 conversion (netlist\solver\mat_cr.h and netlist\tools\nl_convert.c) . Disable "-Wmaybe-unitialized" warnings (netlist\solver\vector_base.h) . Improved Kid Niki sound quality while maintaining speed by adding more frontiers. Added LOGIC_INPUT to netlist which allows to specify a logic family, i.e. output characterics. Used this for improved AY8910 port modeling. . Fixed build without OpenMP (netlist\solver\vector_base.h) . Netlist now compiles with -std=c++98 -Wall -Wpedantic -Wextra -Wno-long-long -Wno-variadic-macros and -std=c++11 -Wall -Wpedantic -Wextra . Added Voltage source and Current source to netlist . Added macro object registration and dynamic includes to netlist. This allows the creation of macro libraries going forward. Any IC which can be described by a truthtable and a package wrapper can now be entirely described in netlist syntax. . Identify size_t usage in printf by enclosing the argument in SIZET_PRINTF(). This is typesafe, can be identified and allows to use proper 64bit computing with compilers up to it. . Added CD4538 . Added MM5837 Noise Generator used by Congo Bongo (nl_examples\congo_bongo.c and mm5837_noise.c) . Documented progress on Congo Bongo. Gorilla sound now works. Performance up from 30% to 170%. Use nltool -c run -f nl_examples/congo_bongo.c -t 2 to test. Minor enhancements and bugfixes. . Fixed issues with GCC4.0 mentioned by Barry and GCC 4.6 compile (solver\vector_base.h) . Added two more models to netlist: OPAMP: Generic opamp model. This does all the annoying calculations. Just pass the datasheet values. LVCCS: A limited current voltage control current source. This will allow slew rate limiting going forward. . Added a (small) parallel conductance to all capacitors to improve convergence. . Some initial work to use "long double" . Created macro libraries for CD4XXX and 74XX chip families. Going forward, these will contain all devices which can be described using truthtables and DIPPINS. Align naming conventions of CD4XXX series. Moved CD4000/CD4020 DIP definitions to macro lib. . Added macro library for opamp models . Added a phashmap_t object for faster lookups . Aligned builtin device identification with parser device identification . Changed phashmap_t to dynamically resize hash table . Use hashmap for factory searches . Changed case for parameter "model" to uppercase to align with rest of code . Added quiet flag to nltool . More phashmap_t usage. Quite some nice effect on larger netlist startup time. Hash objects can now deal with arbitrary hash width. . Consolidate the scattered model parsing code. Now models support recursive models, e.g. DIODE("1N914(IS=1e-15)"). Removed ".model" from model definitions. . Added nlwav to tools. nlwav converts netlist logs into wav files. Example usage: "nlwav -i netlist.log_RO.1.log -o tt.wav" and "nlwav -h". . Added a input control file for Congo Bongo netlist. This file is a standard csv file specifing times and values of parameter modifications for specified devices. This file triggers the various sound inputs using a 10ms impulse. Use "nltool -f nl_examples/congo_bongo.c -t 8 -l RO.1 -i nl_examples/congo_bongo.csv" to create a netlist log file of the Congo Bongo mixer stage. Use "nlwav -i netlist.log_RO.1.log -o tt.wav -a 17000" to create a wav file tt.wav from the log file using an amplification factor of 17000. . Moved MC14584B to netlist\macro\nlm_other.c/h . Added macro models of LM324 and LM358. Made Kid Niki use those (audio\irem.c). . Fixed a buffer overflow in sound\discrete.c . Do not use netlist for 10-Yard Fight sound - Harddisk: Decrease IDE read fill-time to avoids timeouts (machine\idehd.c) - Konami Custom: Added missing save states to K053252 - MC68230 PIT: Started implementation of a Motorola 68230 PI/T (Parallell Interface / Timer) device. Added PBDR register needed for printer on CPU-1, still need to add handshake wiring to the data port to get it to work. More registers added. Started support for CPU-1 Centronics port on Port B. Removed/initialized class members to fix compile problems at Travis etc. - Sega Custom: Let's not save the dynamic memory in video\315_5124.c for now, it causes some nasty crash issues and doesn't look like it will be fixed anytime soon. - V9938 video . Colour mask should not influence the pattern mask as in the TMS911x VDP (video\v9938.c). Fixes MT05711 on MSX2 machines. . Removed set_resolution() method, simplifying the code a bit. All drivers were defaulting to the 'HIGH' setting anyway. This also puts the drivers back in charge of setting the screen parameters. - Voodoo GFX . Added INLINE before ATTR_FORCE_INLINE (video\vooddefs.h) . Converted rasterizer path to use rgbaint_t types. Switched to new reciplog function (video\vooddefs.h). . Converted entire pixel pipe path to use rgbaint_t types (video\voodoo.c) . Added define for turning off cycle eating during regiser reads . Fixed texture bug affect 'Golden Tee Fore! 2006 Complete' Oak Hollow hole 5 water around green (video\vooddefs.h) . Added rasterizers for Virtual Pool (video\voodoo.c), but promoted game not to working state due to lock-ups. - aleck64.c . Removed RSP SIMD version . Merging in direct RSP vector opcodes from CEN64 . Fixed remaining N64 issues on 32-bit (video\rgbgen.h) . Added MCFG_FORCE_NO_DRC option (cpu\rsp\rspdrc.c) . Redumped bad rom from Mayjinsen 3, internal checksum now matches ROM dump. . Fixed graphics bugs in (MESS) Bust-A-Move 2, probably other gfx bugs also (video\n64.c). . Clamp DMEM fetches to 4kb (cpu\rsp\rspcp2.h and vldst.h) . Fixed CTC2 and VCH opcodes in RSP SIMD code (cpu\rsp\rspcp2.c) . Fixed most N64 visual bugs from new RDP SSE code (video\rgbgen.h, rgbsse.h, rgbvmx.h) . Fixed crash when fast-forwarding . Make the align declarations GCC-compatible (cpu\rsp\rspcp2.h) - alpha68k.c: Fixed missing sound FX in Kyros and Super Stingray (ID 05959). There's no more need to doubling audio CPU interrupts per frame after the conversion of the driver to the usage of scanline timers. - appoooh.c, atarisy2.c, gladiatr.c, hexion.c, mazerbla.c, nbmj9195.c, nycaptor.c, pacland.c, pcktgal.c and spdodgeb.c: Switched to configured banking - atarisy2.c: Slapstic doesn't need a direct update handler anymore - chihiro.c . More USB, but still soo much to do. . Changed 'Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)' to parent set. Marked GDROM in (Rev G) as BAD_DUMP. - destroyr.c: Killed anonymous timers - djmain.c: Decrease IDE read fill-time to avoids timeouts (machine\idehd.c). This fixes "HDD ERROR" after initial test in bm1stmix and other (ID 05318). - dreamwld.c . Fixed tilemap size . Fixed rowscroll in Baryon, Cute Fighter and Rolling Crush . Fixed visible area and layer offsets based on real HW evidence - dooyong.c: Fixed screen slightly offset left when flipped in gulfstrm, lastday and clones (ID 04918) - firebeat.c . Completely rewrote the graphics chip emulation . Fixed 8x8 character rendering . Added basic SPU board emulation. Added RF5C400 and CD/DA audio to bm37th, bm3final, popn4, popn5, popn6, popn7, popn8 and popnanm2. . Beatmania (bm37th and bm3final) boots with Keyboardmania BIOS - fuukifg3.c: Removed YMF262 sound - galaxia.c: Added technical manual and schematics links to notes, correct refresh rate and fixes speed in Galaxia and Astro Wars. - guab.c: Updated driver to use the standard WD floppy controller. This also means that it now uses the software list system instead of loading the floppy disk image into a memory region. To run the driver use: "mame guab -flop guab3" now. You may also just start the driver, then choose a floppy disk image from the builtin file manager. - hornet.c and vegas.c: Fixed completly wrong colours in gauntdl, gradius4 and nbapbp (video\rgbgen.c, rgbsse.c, rgbvmx.c and vooddefs.h) (ID 05968) - iteagle.c . Fixed texture bug affect 'Golden Tee Fore! 2006 Complete' Oak Hollow hole 5 water around green (video\vooddefs.h) . Added rasterizers for Virtual Pool (video\voodoo.c), but promoted game not to working state due to lock-ups. - itech8.c: Preparation for save state support. Not enabled yet since Ninja Clowns maincpu goes complete crazy after loading. I suspect something similar to the namcos86 problem. - lastduel.c: Removed comment about visible area in driver - verified with PCBs (ID 02430). - m52.c, m57.c, m58.c, m62.c and travrusa.c . Flagged all M62 games as GAME_IMPERFECT_SOUND while Netlist audio is being worked on . Converted Irem sound into a true device . Do not use netlist for 10-Yard Fight sound . Improved Kid Niki sound quality while maintaining speed by adding more frontiers. Added LOGIC_INPUT to netlist which allows to specify a logic family, i.e. output characterics. Used this for improved AY8910 port modeling. Added macro models of LM324 and LM358. Made Kid Niki use those (audio\irem.c). - model1.c . General: Don't build localhost/remotehost filenames multiple times. Simulation: Fixed "master bytes" - fixes missing "insert coin"/"press start" animation and "V.F."-flashing on Virtua Formula slaves (machine\m1comm.c). . Hooked up the FG gate in both ways (machine\m1comm.c) - namcos1.c . Removed direct-update-handler-using optimization, will be done differently later. . Reduced tagmap lookups and added missing PORT_DIPLOCATION. - namcos86.c: Demacroify address maps and clean up ROM loading - naomi.c . Atomiswave update . Documented Dev.ROM board, PIO access register and ROM board internal layouts . Rewritten awboard to support unencrypted data access and Type-2 ROMBD banking . Added CaH4e3's patches for Extreme Hunting 2 (game now boots to title) . Dumped Sega 838-13683 and 837-13551 JVS I/O MCU firmwares (machine\jvs13551.c) - nbmj9195.c: Killed some trampolines and could do with some more clean up. - segas24.c: Defaulted bnzabros, hotrod, hotroda, hotrodj, sgmastc and sspirits disks in service mode (ID 03064), most had some bookingkeeping data still, for example on time stored, or had been blanked out manually leaving corrupt data. - segas32.c . Documented PALs (machine\s32comm.c) . S32COMM initial commit. Fixed S32COMM link to Stadium Cross. - segaybd.c: Declaring the Galaxy Force 2 Super Deluxe unit with its own Z80 motor CPU (motorpcb.prg rom) - seta.c . Adjusted offsets in Seta video hardware file. This fixes graphics glitches in Daioh on the attract mode screen with the earth down (ID 00317) and offset issues in Thundercade and others (ID 04405). . Completed dipswitches for 'Kero Kero Keroppi's Let's Play Together' from the manual. Thanks to Diet Go Go Fan for pointing it out. . Fixed visible area in U.S. Classic (ID 04877) - seta2.c: Correct all the non-OKI games to mono sound same as fix recently (0.163) applied to seta.c game (ID 01444) (ID 01943) - silvmil.c: Correct various clocks in driver and sound balance, switched to mono as per actual PCB layout. - snowbros.c and tumbleb.c: Put the SemiCom team names in the manufacturer field - stv.c . New message for SMPC undocumented Netlink enable/disable command (machine\smpc.c). Added VDP2/SCU note (machine\saturn.c). . Fixed (MESS) World Heroes Perfect (Sega Saturn) TH Control Mode in SMPC . Added preliminary CD-DA routing to SCSP EXTS parallel port, fixes CD-Rom player equalizer in Sega Saturn. - taitoair.c . Fixed the background gradient in Top Landing . Added double buffering mechanism to ROZ layer, looks a bit better during transitions. . Added crude sprite DMA pause feature: Resuming causes sprites to be drawn above other layers. . Added tweaks . Very preliminary Framebuffer DMA hook-up, mostly used for Top Landing to show Course Select on screen (Game now playable). . Fixed analog inputs, color select for 3D and tilemap priority. . Framebuffer erase_op actually clears only the 3D video buffer. Fixes fade-out in Top Landing. - thunderx.c: Correct visible area in all games. Verified against Super Contra and Thunder Cross PCBs (ID 05593). - tmnt.c: Fixed visible area in Bells & Whistles (ID 05594) and Lightning Fighters/Trigon (ID 05988) - tourvis.c: Updated known game list - vegas.c . Added Gauntlet Legends boot rom v1.4 to clone (version 1.2) . Added BIOS rom for BLITZ2000 to NBA Showtime / NFL Blitz 2000 (ver 2.1) - 1942: Added correct sound rom for clone 1942 (Tecfri PCB, bootleg?) and simplify IRQ logic, fixes powerups not moving down the screen (Game now playable). - Arkanoid: Added rom numbering list, added more info and more correct rom labels for clone Arkanoid (US, oldest rev) from PCB pics. - Chopper I: Fixed visible area (verified with original) (ID 05991) - Crime Fighters: Fixed visible area. Verified on actual PCB (ID 05973). - Harem: Hooked up speech. Added save-states. Verified colors. - Medal Mahjong Moukari Bancho: Game use NAND dump with clean bookkeeping/settings area - Mortal Kombat: Improved sound in some Mortal Kombat Yawdim bootlegs - Rainbow Islands . "Jumping" clocks correctly verified (ID 05979). Special thanks to System11 who had a red Jumping PCB; the clock values should be absolutely correct now. . Jumping (set 1)/(set 2) confirmed to use 18.432MHz crystal for CPU. Not sure on Seyutu split ROM version until one is found again. - Radar Scope: WIP preparing to fix the speech (machine\tms6100.c) - Shadow Force . Reduced tag lookups . Optimized drawing for scanline cases . Fixed video params so vsync matches PCB measurements - Spatter: Added correct maincpu rom to clone Spatter (315-5099) (Game now playable) - Spectrum 2000: Give clone Fire Hawk (switchable orientation) a larger ROM space, documented horizontal / vertical switch (there are basically 2 versions of the program in the program roms the part it runs depends on a dipswitch). Note, vertical mode still doesn't work as we have no dumps of the gfx roms used by that mode, the horizontal roms from clone Fire Hawk (horizontal) seem to work for the horizontal mode. - Super Cup Finals: Added correct default EEPROMs - Turbo: Removed 'needs confirming' comment from clone Turbo (encrypted, program 1363-1365 rev A), confirmed checksums against T5A set - Turbo Force: Fixed sprite priority bugs in some stages (ID 05981) - Xyonix: Added M68705 MCU rom - Save state: Added save state support to deco32.c, destroyr.c, gstriker.c, namcona1.c, namcond1.c, namcos86.c, naughtyb.c, nbmj9195.c, paranoia.c, pcktgal.c, photon2.c, poolshrk.c, scramble.c (harem), sbowling.c, spbactn.c, spdodgeb.c, starcrus.c, tank8.c, tapatune.c, ttchamp.c, vicdual.c and machine\k053252.c - Dipswitch fixes in keroppi, merit.c, namcos1.c and nmk16.c - Fixed rom names in arkanoid.c, qix.c, naomi.c, segas32.c, tnzs.c, turbo.c and vegas.c - Renamed (bublbob2) to (bublbob2o), (calspeeda) to (calspeedb), (ghunter) to (ghunters), (hotrodj) to (hotrodja), (mj2) to (mj2g), (mj2f) to (mj2), (quizard) to (quizard3_32), (quizrd12) to (quizard_12), (quizrd17) to (quizard_17), (quizrd18) to (quizard), (quizrd22) to (quizard2_22), (quizrd23) to (quizard2), (quizrd34) to (quizard3), (quizrr40) to (quizard4_40), (quizrr41) to (quizard4_41), (quizrr42) to (quizard4) and (turbob) to (turboc) - Description changes of 1942 (Tecfri PCB, bootleg?), California Speed (Version 2.1a Apr 17 1998, GUTS 1.25 Apr 17 1998 / MAIN Apr 17 1998), California Speed (Version 1.0r7a Mar 4 1998, GUTS Mar 3 1998 / MAIN Jan 19 1998), Gang Hunter / Dead Angle (Spain), Hana to Ojisan [BET] (ver 1.01, 1991/12/09), Hot Chase (set 1), Hot Rod (Japan, 4 Players, Floppy Based, Rev B), Mahjong Jong-Tei (Japan, NM532-01), Mahjong The Dai Chuuka Ken (China, D111), NBA Showtime: NBA on NBC (ver 2.0), NBA Showtime / NFL Blitz 2000 (ver 2.1), New HyperMan (3-in-1 with Cookie & Bibi & HyperMan), NFL Blitz '99 (ver 1.30, Sep 22 1998), NFL Blitz 2000 Gold Edition (ver 1.2, Sep 22 1999), Phoenix (Sonic, Spanish bootleg), Quizard (v1.2), Quizard (v1.7), Quizard (v1.8), Quizard 2 (v2.2), Quizard 2 (v2.3), Quizard 3 (v3.2), Quizard 3 (v3.4), Quizard 4 Rainbow (v4.0), Quizard 4 Rainbow (v4.1), Quizard 4 Rainbow (v4.2), Shinobi (Datsu bootleg, set 1), Spy Hunter (Spain, Tecfri / Recreativos Franco S.A. PCB), Swinging Singles (US), Turbo (encrypted, program 1262-1264), Turbo (encrypted, program 1363-1365 rev A), Turbo (program 1513-1515) and Vendetta (US, 4 Players, ver. R) - MAME . HLSL . Refactoring . Reduced number of used render textures/targets from 7 to 4 . Some code cleanup . Made most render pass functions independent from each other . Resused phosphor and bloom pass function for vector rendering . Separated downsample pass and bloom pass into two function calls . Removed/replaced simple.fx by using primary.fx to render on screen . Changed PostPass parameter of primary.fx to boolean . Simplified bloom.fx and downsample.fx, prescale parameter is now set correctly from outside depending on raster/vector rendering. . Post Pass effects for Vector rendering . Added support for post pass effects for vector rendering (does not work properly in full screen mode, yet) . Made texture_info::compute_size_subroutine() function public static . Correct vector curvature on x-axis when screen dims and render target dims differ (there is still a difference on y-axis) . Removed support for decrypted bases, use an address space instead (emu\memory.c and dimemory.h). Updated/Fixed cabal.c, cbasebal.c, desertbr (fd1094.c), mitchell.c, mustache.c, pengo.c, segas16b.c, suna8.c, suprloco.c, turbo.c, zaxxon.c and audio\seibu.c. . RGB utilities . Fixed Clang compile (video\rgbgen.h, rgbsse.h, rgbvmx.h and rdptpipe.c) . Fixed completly wrong colours in gauntdl, gradius4 and nbapbp (video\rgbgen.c, rgbsse.c, rgbvmx.c and vooddefs.h) (ID 05968) . Fixed remaining N64 issues on 32-bit (video\rgbgen.h) . Sync with latest rgbsse fixes and use of signed types (video\rgbvmx.c) . Moved video\rgbutil.c to rgbsse.c. Make the SSE tables a static inside the SSE implementation class. Also encapsulate the pointer casting used to access it in static functions. Fixed broken Namcos22 graphics (video\rgbsse.c). . Changed to multiply primitive (video\rgbvmx.h) . Added andnot_reg, clamp_to_uint8 and bilinear_filter_rgbaint member functions (video\rgbgen.h). . Added andnot_reg, clamp_to_uint8, bilinear_filter_rgbaint and += functions (video\rgbsse.h). . Fixed most N64 visual bugs from new RDP SSE code (video\rgbgen.h, rgbsse.h, rgbvmx.h) . Fixed some rgbaint_t functions. Added some optimizations to rgbaint_t. . Defined a standard 3-bit RGB palette (emu\emupal.c) and use it for 4enraya.c, mmagic, nyny, route16.c and spiders. Added a 3-bit BGR variant and use it for dorachan, enigma2, kangaroo.c, r2dtank, route16.c, smsmcorp.c and unkhorse. . Validity fixes . Added basic signed integer arithmetic tests to core validation (emu\validity.c) . Actually return an error when the validity check fails . Updated png.py to drj11/pypng (https://github.com/drj11/pypng/) . Added a bunch of doxygen style comments in screen.h, regarding MCFG_SCREEN_* functions (emu\screen.h). . 3rdparty . Updated Mongoose library to latest. Don't redefine MONGOOSE_ENABLE_THREADS on Windows. . github version of jsoncpp with some fixes: pedantic and C++98 and others. . Added NetBSD support to BX and scripts\toolchain.lua . Don't include BGFX in windows\video.c . Make 'game' and 'machine' match. It makes no sense to say a CHD for this 'game' is incorrect when using CHD images of HDs for a computer system in MESS (emu\ui\ui.c). . Added ability to use system PortAudio - SDLMAME . In command line version, don't look for depth in -resolution (sdl\video.c and windows\video.c). . Fixed Clang version detection in Ubuntu (makefile) . Fixed 0.160 aspect ratio regression . Fixed Linux compile with -Wodr in GCC 5.2 (render\drawogl.c) . Let MAME compile in Arch Linux GCC 5.2. 16G RAM used to prevent crash (scripts\genie.lua). Compile with 'make SSE3=1 LTO=1' testing GCC 5.2 MSYS2 now. - MESS . Moved option ROM to the card to reflect real H/W (bus\isa\3c505.c) . Stop crashing after saving to a disk image loaded from a software list (windows\winfile.c) . Fixed Amiga CRC in formats\flopimg.c (fixes ADF) (ID 05997) - Compiling . Fixed Clang compile in video\rgbgen.h, rgbsse.h, rgbvmx.h and rdptpipe.c . Added some defines to d3dcommon.h to let BGFX compile with VS2013, but it would be much better to update the Direct3D headers to the latest version. . Modify netlist\solver\nld_solver.c to let it comple with VS2013 . Don't make malloc replacement incompatible with malloc and align memory with MALLOC_DEBUG (lib\osdlib_win32.c) . Removed semicolons from end of lines in Python code, removed unused variables and close open files (build\makedep.py) . Fixed GCC 4.4 compile . -Wno-error=pedantic fixes and quiet LTO ODR warnings . Quiet anonymous union errors. Used a couple different techniques, all compile to same code as before with -O3. . Don't need %lf as arguments are always promoted to double . Added travis-ci support (.travis.yml - http://docs.travis-ci.com/user/getting-started/) . Fixed Clang version detection on macos (makefile) . Do not pass -m32 to GCC on ARM . Fixed error handling of osd_truncate (osdmini\minifile.c) 0.163 - New Non-Working games: Bingo Party Multicart (Rev B) (M1 Satellite board) - New clones: Beast Busters (US, Version 3), Bells & Whistles (Asia, Version M), Bionic Commandos (bootleg), Dream Soccer '94 (Korea, M107 hardware), Dunk Shot (Rev A, FD1089A 317-0022), Fantasia II (1998), G-LOC Air Battle (World), Gradius III (Japan, program code S, split), Gundhara (Chinese, bootleg?), Hana Jingi (Japan, Bet, alt.), Mahjong Dial Q2 (Japan, alt.), Mr. Kicker (F-E1-16-010 PCB), New Cherry '96 Special Edition (v3.40, D PCB), New Cherry '96 Special Edition (v3.53, D PCB), New Cherry '96 Special Edition (v3.61, C1 PCB), Paradise (set 2), Paradise (Escape), Space Attack (2k roms)(bootleg of Space Invaders), Space Attack (bproms)(bootleg of Space Invaders), Tahjong Yakitori (ver. 2-1), Turtle Ship (Korea, 88/9) and Turtle Ship (Korea, older) - New PEPlus games: Player's Edge Plus (PP0021) Standard Draw Poker, Player's Edge Plus (PP0040) Standard Draw Poker (set 2), Player's Edge Plus (PP0048) Joker Poker, Player's Edge Plus (PP0085) Joker Poker (Two Pair or Better), Player's Edge Plus (PP0089) Standard Draw Poker, Player's Edge Plus (PP0130) Aces and Faces, Player's Edge Plus (PP0132) Standard Draw Poker, Player's Edge Plus (PP0150) Standard Draw Poker, Player's Edge Plus (PP0181) Standard Draw Poker, Player's Edge Plus (PP0197) Standard Draw Poker (set 2), Player's Edge Plus (PP0223) Deuces Joker Wild Poker, Player's Edge Plus (PP0250) Double Down Stud Poker (set 1), Player's Edge Plus (PP0291) Deuces Wild Poker (set 2), Player's Edge Plus (PP0401) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0410) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0423) Standard Draw Poker (set 1), Player's Edge Plus (PP0423) Standard Draw Poker (set 2), Player's Edge Plus (PP0467) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better), Player's Edge Plus (PP0750) Standard Draw Poker, Player's Edge Plus (PP0757) Double Down Stud Joker Poker, Player's Edge Plus (PP0764) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0812) Deuces Joker Wild Poker, Player's Edge Plus (X000057P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000489P+XP000038) Double Down Stud Deuces Wild Poker, Player's Edge Plus (X000557P+XP000038) Standard Draw Poker, Player's Edge Plus (X000578P+XP000038) Standard Draw Poker, Player's Edge Plus (X002021P+XP000112) Lucky Deal Poker, Player's Edge Plus (X002024P+XP000038) Double Bonus Poker, Player's Edge Plus (X002312P+XP000112) Triple Bonus Poker Plus, Player's Edge Plus (X002412P+XP000096) Standard Draw with 5 decks (Two Pair or Better) and Player's Edge Plus (X002474P+XP000038) Double Double Bonus Plus - New drivers: segam1.c - New devices: adc0838, cdda, cdrom_image, cmc_prot, dac, ds2401, fatfury2_prot, fujitsu_29f016a, harddisk_image, kof2002_prot, kof98_prot, kog_prot, m1comm, mc6845, midi_port, midiin, midiout, mslugx_prot, neogeo_banked_cart, ngbootleg_prot, palette, pc_joy, pcm2_prot, pvc_prot, screen, sma_prot, speaker, x76f041, x76f100, ymf262 and zs01 - I8086 CPU: Added very limited lock support (just enough for the (MESS) Apricot actually) - MIPS CPUs: Make fast RAM handling faster by caching certain values - MN1020012A CPU . Made branch condition and add/sub carry param optional . Changed fake I/O memmap to callbacks - Z8000 CPU . Set flag on even parity . Make 9c00 an alias to testl - AY-3-8910A sound: Added comment about I/O ports A and B. The I/O ports are designed as open collector outputs. Bits 7 and 8 of AY_ENABLE only enable (low) or disable (high) the pull up resistors. The YM2149 datasheet specifies those pull up resistors as 60k to 600k (min / max). We do need a callback for those two flags. Kid Niki (Irem M62) is one such case were it makes a difference in comparison to a standard TTL output. - C352 sound: Added configurable clock dividers - Game Blaster: Fixed Game Blaster emulation, now working. Fixed Game Blaster compatibility in SB1.0. - Irem audio: Documented signals on PortA used for analog sound (audio\irem.c) - SN76496 sound: Added ready read - TMS5110 sound . Added new LPC table data for CD2802, CD2801 and TMS5110A/TMC0281D . Added new information regarding each chip. Reorganize LPC tables to use #defines rather than repeating identical data. . Corrections to some comments in sound\tms5110r.inc . Added CD2801/TMC0280 chirp table . Fixed missing cast for chirp/excitation values, fixed a potential off-by-one for tms5110.c as well. - X1-010 sound: Implemented frequency division flag. This fixes X1-010 sound playback is wrong, garbage or wrong pitch in some instances (ID 04217). - ZSG-2 sound: Correct internal clock - 6532 RIOT: Removed static TIMER_CALLBACK in favour of device_timer (machine\6532riot.c) - Discrete Netlist . Moved all files in src\emu\netlist starting with p into plib folder. This is a first step to ease synchronisation with a stand alone, e.g. outside mame, netlist implementation. More signed/unsigned cleanups and started work on generic truthtable devices. . Introduced user definable truth tables: This enables the addition of devices without changing the netlist source code and allows the creation of libraries. Used pong.c as a proof of concept for the time being. . Got truthtable parsing working in the parser. The plib preprocessor now defines __PLIB_PREPROCESSOR__. This can be checked in netlist code and allows even more sharing code between compiled (embedded) netlists and external netlists. . Use netlist().log() for logging instead of printf. This avoids the printf issue with I64u (aka SIZETFMT) on win builds. . Added first version of a eagle to netlist converter . Commit omitted nl_convert.h. Renamed "find" to find_by_name inH pnamed_list for clarity. . Fixed OpenMP by using spinlocks in push_to_queue. However no observable performance improvement. Without OpenMP, locks will not be compiled. Removed a couple of inlines and added consts were appropriate. . Netlist now uses the same approach as delegate.h to derive member function pointers. If the platform doesn't support this approach, virtual function calls will be used. In addition, this commit contains modifications for standalone compile. . delegate.h now supports MinGW 32 bit builds with INTERNAL configuration. Member functions are called in this case using __thiscall ABI. . Code maintenance. Removed commented out directives. . Fixed save states in netlist . Converted netlist into a library. Moved most code from nl_convert.h to nl_convert.c. Targets using netlist must now specify this explicitly with MACHINES["NETLIST"] = true. Added subtarget "nl" which only contains games with netlist elements. . Found some cycles by removing static declarations in some functions . Changed the way NETLIST_START(NAME) is located and called. This is done now solely by using a netlist_sources_t class. Netlist users just register sources like memregions, hardcoded strings, compiled netlists. Going forward this enables to eventually put macro model librariers into roms. The improvement comes with a price. Compiled netlists to be included must now be registered using LOCAL_SOURCE. . Fixed compile on MSVC (struct and string in struct had same name) (tools\nl_convert.c) . Fixed proxy savestates, solver savestates, 7490 both counts firing at the same time and changed timed list to be resizable. . Fixed bugs in the spice(Kicad) conversion. Fixes submodel difference between inline and parsed netlist. Added truthtable 7404 and 7486 models. Aligned input and output naming for truthtable and specialised 74xx models. . Added Kid Niki sound board netlist to nl_examples. Currently the netlist boils down to a 87x87 matrix. This is due to a total of 6 opamps which all are submodels and thus add their own internal nets. Gauss Seidel iterative solving comes to it's limits. nltool runs this at about 50% speed on my machine. Given the complexity this is quite good. Yet, any M62 game currently will not be playable. Formatted Kid Niki nl_examples to be easier to read. . Made it more convenient to add frontiers (impedance barriers). These - at the right place - enable netlist to split a netlist into multiple smaller netlists. Side mark: The "old" discrete system assumed such a device in every node. . From 45% to 60% to 99%. That's the improvement achieved for a 89x89 audio matrix mostly solved by elimination. Cleaned up some code as well. . Fixed a bug in the SOR solvers . Added a GMRES solver to netlist. The generalized minimal residual method ist certainly more modern than Gaussian elimination and Gauss-Seidel. However, more the current maximum matrix (KidNiki, 89x89) a combination of Gauss-Seidel to solve for maximum one step to catch quasi-stable conditions and fall-back to optimized Gaussian elimination (for sparse matrix) outperforms GMRES by up to 100%. . Netlist code now uses "namespace netlist". At the same time, moved all devices int netlist::devices namespace. . Completely integrated the GMRES solver into netlist solver templates and recoded it from scratch. GMRES now runs at 122% (kidniki), that's a real improement from 60% before. AT the same time, the code should be easier to read and closer to the GMRES algorithm. Ultimately, kidniki will not use this solver but instead use some frontiers to keep it playable. But going forward, for larger matrices this solver is an opton. . Moved solver code into own folder . Fixed reset for proxy devices. In addition, documented how to achieve a reliable voltage stop criteria in gmres solver. . Added analog drums and filtering for Kid Niki and others. In addition: Generalized the device family concept. Truthtable device can now define their own device family model. - Harddisk: Increase IDE fill-time to avoid missed interrupts (machine\idehd.c) - I8275 video: Preliminary version of (MESS) HP 64000 driver (+ fixes to video\i8275.c) - MC6845 CRT . Always set bit 0 of maximum raster address in interlace video mode, fixes (MESS) Apricot screen height. . Only apply the interlace adjust to the (MESS) Apricot since it causes issues with other systems. Really need proper interlace support. - MOS6526/MOS8520 CIA: Fixed port A/B read (ID 05749) (ID 05750) (ID 05751) (ID 05752) - SN76489 sound: Removed old kludge - VGA video . Used a latch for the VGA PEL shift register, should fix jerkiness in games that use it (it does in Raiden, at least). . Force PEL shift to 0 after a line compare, and move latch release to the end of VBLANK. Fixes (MESS) Jazz Jackrabbit scrolling (do let me know if there are any regressions) (video\pc_vga.c). - SVGA video . GD542x: Fixed display of 16-bit video modes, added support for some acceleration features in 16-bit video modes. - Voodoo GFX . Re-organized macros into function calls to help in optimization identification (video\vooddefs.h). The old macros can still used by setting USE_OLD_RASTER to 1. Default to old rasters until new are verified. . Made new functions use SSE2 implementation . Added immediate add and mult add functions (video\rgbgen.h) . Added SSE2 implementation of immediate add and mult functions (video\rgbsse.h) . Added comments for rasters (video\voodoo.c) . Added some custom RASTERIZER_ENTRY lines for Golden Tee Fore! series, seems to help with performance when lots of transparencies are used. Clean up rasters for gtfore. . Fixed Voodoo compile for 32-bit . Small correction in genTexture (video\vooddefs.h) . Separate direct fb write to help performance (video\voodoo.c) . Stop trying to read from null pointers (video\vooddefs.h) - Z80 DART: Added direct control/data access functions - aleck64.c . Fixed graphical bugs with recent N64 opts . Moved m_op member into a struct so it can be allocated in the DRC cache (cpu\rsp\rspcp2.c). Fixes crash/segmentation fault when running DRC (Linux only) (ID 05953). . Work on making blending and combining use color_t instead of UINT8 pointesr (video\n64.c, rdpblend.c and rdptpipe.c). Converted RDP rendering to use SSE2 when available. - chihiro.c . Lets' start playing with USB. Also added two new chihiro debug commands dump_timer and dump_dpc to show the contents of the _KTIMER and _KDPC kernel structures. USB is disabled by default (to allow loading the game), uncomment the USB_ENABLED define to enable it. . Brute forced missing keys for Sega Network Taisen Mahjong MJ 2 and MJ 3 - exidy.c: Reverted the brute force fix for Mouse Trap and Venture sound issues as it doesn't fix the problem and only slightly improves sound stability which still breaks and causes hangs/crashes in some games. - iteagle.c . Added some custom RASTERIZER_ENTRY lines for Golden Tee Fore! series, seems to help with performance when lots of transparencies are used. . Updated eagle1 NVRAM defaults . Clean up DMA routine (machine\vrc4373.c) - ladybug.c: Speedup driver - liberate.c: Validated and consolidated dipswitches and added DIP locations - m58.c and m62.c: Added analog drums and filtering for Kid Niki and others (ID 02490) (ID 00183). - megatech.c: Added Megatech Ver 0 Rev B (alt?) BIOS - model1.c: Added Model1 Communication Board simulation code. Added emulator options required for comm boards. Added the Model 1 communication board as a device. Added an optional simulation for the Model 1 communication (enabled atm.). Allows to play Virtua Racing, Virtua Formula and WingWar in "link mode". Based on http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=297577 and http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=333324. - model3.c . Rewroted projection calculations to use projection matrix . Rewroted polygon clipping to use 4D W-space clipping . Implemented 8-bit texture uploads . Changed all scanline renderers to use rgbutil - namcos1.c: Load MCU internal and external (voice) ROMs in separate regions. Cleanup audiocpu ROM loading/banking too. - namcos1.c, namcos86.c, shisen.c and sprcros2.c: Switched to configured banking - namcos86.c: Preparation for save state support. Not enabled because Return of Ishtar's MCU fails spectacularly on reload. - peplus.c . Minor doc update . Added correct maincpu rom to clone Player's Edge Plus (XM00006P+XMP00020) Multi-Poker . Added new gfx1 roms to clone Player's Edge Plus (X000459P+XP000155) Joker Poker - redalert.c: Fixed for redalert driver games which has a ladybug.n include, but doesn't need all the ladybug_state variables (includes\ladybug.h) - segac2.c: Small cleanup - segas32.c . Properly emulated the double PCB stack System 32 games with shared RAM bridge board (Air Rescue and F1 Exhaust Note). Previously these relied on a hack to make the code believe the 2nd stack was present but this caused issues, now they're correctly emulated as dual screen games without any hack. . Allow individual x/y flipping on tilemaps, 2nd screen on Air Rescue needs this. - seta.c: Correct sound for a lot of games which were incorrectly set up as stereo (ID 01443) (ID 00269). It is likely that nearly all the games are mono but I've only updated the ones I know are *definitely* wrong. - snk68.c . Fixed flipscreen; use core palette handling, etc. . Fixed YM3812 sound clock (ID 05283) - snowbros.c: Have CPU speeds be based off of actual OSC clocks. Use OSC as listed in the driver and use reasonable clock and divider where clocks are unknown. Cross reference with PCB pics for example on Ball Boys MC68000P10 isn't really clocked at 16MHz, it's either 12MHz or 8MHz (16MHz/2) and note in driver. IE: 16MHz/4 vs 12MHz/3 for 4MHz and 16MHz/16 vs 12MHz/12 for 1MHz OKI clock. Better documentation for Honey Dolls. - suna8.c . Changed stereo audio to mono. Fixed YM3812 sound clock speed in sparkman and starfigh. . Spark Man: Fixed Player 2 colors and samples played from second rom . Removed spurious samples played on reset by most games - vcombat.c: Removed do-nothing DIRECT_UPDATE handlers - Discrete games: Updated game lists for aleisttl.c, atarittl.c, bailey.c, electra.c, exidyttl.c, meadwttl.c, pse.c and taitottl.c - Air Attack: According to the manual at: http://www.arcade-museum.com/manuals-videogames/A/Air%20Attack.pdf all unknown dipswitches should be changed to unused (ID 05954). - The Battle-Road: Make Battle-Road text layer colours match the flyer, by swapping the RESNET R/B components (http://flyers.arcade-museum.com/flyers_video/irem/12110501.jpg). Removed IMPERFECT_COLORS flag. - Bells & Whistles: Confirmed that CPU clock derive by actual OSC - Champion Super 3 . Reworked all inputs and implemented full outputs from the scratch. Added DIP switches, DIP locations, extra input port present in the test mode, implemented coin counters and hopper out / ticket out signals, implemented full set of lamps and workaround for the possible Hold3 lamp line circuitry. Also added a nice control panel internal layout. Documented all ports properly and added some findings. Changed the CPU clock to 3 MHz to get the game more playable. Need to check against a real PCB. . Improved the internal layout to represent a realistic control panel, with clickable button-lamps and a coin in. Also added the missing BET MAX function to the HOLD 1 input/button. . Added notes about the sound writes - J. J. Squawkers: Added watchdog. This fixes sound test freeze while playing sound F (ID 02863). - Janken Man Kattara Ageru: Some alignment, spacing, info and notes. - The Lost Castle In Darkmist: Fixed missing sound effects and background music (ID 05967). Switched to configured banking. - Mario Bros.: Fixed sound when netlist sound is enabled - Moonquake: Improved Ensoniq 5503DOC Swap Mode. If one oscillator is in swap mode, its partner should be treated as being in swap mode, even if it is set to one shot. This behavior is undocumented in literature from Ensoniq, but exploited by software developers. This change allows Ninjaforce's NinjaTracker to correctly play looped instruments. - Mr. Kicker: Added speedup - New Cherry '96 Special Edition: Added graphics roms from clone (v3.54, D PCB) to parent set - Pengo/Vastar: Fixed company in clone Penta (ID 05943) and Vastar (ID 05942) - Primal Rage 2: Increase IDE fill-time (machine\idehd.c) to avoid missed interrupts. This fixes Primal Rage 2 no longer boots to attact mode (ID 05614). - Rod-Land: Correct ROMs for Rod-Land (World) and clone Rod-Land (Japan bootleg) (ID 01061) - Samba De Amigo: Added full dump of clone (USA, prototype) - Shakatto Tambourine: Brute forced DES key - Super Bug: Fixed explosion overlay - Wizard Fire . Redumped MAS10 sound sample rom for Wizard Fire and clones at the correct size (1MB). Fixes missing sounds in clone Dark Seal 2 (Japan v2.1). . Added bankswitch hack (sample banks 0/1 are used for the Japanese version and 2/3 are used for the English version) - Xevious (Namco): Added missing video board PAL - Zig Zag: Fixed AY8910 speed to match audio pitch in PCB video (ID 05834) - Input port: Hook up -uimodekey for Windows - Save state: Added save state support to battlera.c, cclimber.c, gaplus.c, grchamp.c, namcos1.c, nbmj8991.c, shisen.c, slapshot.c, snk68.c, spacefb.c, sprcros2.c, srmp5.c, vastar.c, warpwarp.c and warriorb.c - Dipswitch fixes in chsuper.c, liberate.c and nmk16.c - Fixed rom names in darkseal1, madmotor, rodland and theends - Renamed (bbustersu) to (bbustersua), (gloc) to (glocu), (mrkicker) to (mrkickera), (nc96c) to (nc96f), (nc96b) to (nc96c), (pepp0040a) to (pepp0040b), (pepp0197a) to (pepp0197b), (pepp0197b) to (pepp0197c), (pepp0410) to (pepp0410a), (pepp0423) to (pepp0423b), (pepp0250) to (pepp0250a), (vigilano) to (vigilanto) and (vigilanbl) to (vigilantbl) - Description changes of Bells & Whistles (World, Version L), Crash 'n Score/Stock Car [TTL], Cue Brick (World, version D), Detana!! Twin Bee (Japan, version J), Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 1) [TTL], Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 2) [TTL], M.I.A. - Missing in Action (version R) (Japan), Mr. Kicker (SEMICOM-003b PCB), OutRun 2 (Rev A) (GDX-0004A), OutRun 2 SP SDX, OutRun 2 Special Tours (Rev A) (GDX-0014A), Paradise (set 1), Player's Edge Plus (PP0040) Standard Draw Poker (set 1), Player's Edge Plus (PP0197) Standard Draw Poker (set 3), Player's Edge Plus (PP0197) Standard Draw Poker (set 4), Player's Edge Plus (PP0291) Deuces Wild Poker (set 1), Player's Edge Plus (PP0410) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0423) Standard Draw Poker (set 3), Player's Edge Plus (PP0250) Double Down Stud Poker (set 2), Player's Edge Plus (XM00006P+XMP00020) Multi-Poker, Player's Edge Plus (X002412P+XP000096) Standard Draw with 5 decks (Two Pair or Better), Pro Sports - Bowling, Tennis, and Golf, Pro Sports - Bowling, Tennis, and Golf (USA), Samba De Amigo (Rev B), Samba De Amigo (USA, prototype), Tank/Tank Cocktail/Tank II [TTL], Wangan Midnight Maximum Tune 2 (Export) (Rev A) (GDX-0016A) and Wangan Midnight Maximum Tune 2 (Japan) (GDX-0015) - MAME . 3rdparty . Update GENie and BGFX . Added portaudio library and library for supporting unit tests with some initial tests. Fixed compile for portaudio on 32bit and windows Clang (src\3rdparty.lua). . Added LUA script/makefile changes to support building tests and portaudio (scripts\src\tests.lua) . Fixed MinGW compile (3rdparty\bgfx\src\renderer_d3d11.cpp) . Fix for unknown warning options for Clang 3.5 and added check for nil first (src\3rdparty.lua) . Updated metadata in LUA files (scripts\src\bus.lua, cpu.lua, machine.lua, sound.lua and video.lua) . HLSL . Changed vignetting and fixed rounded corners (hlsl\post.fx) . Fixed misaligned scanline with odd resolutions caused by centered coordinates . Refactoring . Simplified render pass functions . Some code cleanup . Added Doxygen template for drivers . UI . Fixed corruption in MAME UI when a game status and a pop message appear at the same time . Added emulation options for comm settings (emu\emuopts.c) . Move UI mode key out of SDL options into generic options . Unlimit shader file size (opengl\gl_shader_tool.c) . Worked around missing sub-devices in -lx output (emu\info.c) . Converted rgbint and rgbaint globals to a class (video\vooddefs.h, drivers\cobra.c, includes\namcos22.h, video\gaelco3d.c, midzeus.c, midzeus2.c, model3.c, namcos22.c and powervr2.c) . Addition of commands and details to docs\config.txt as well as some reordering to match -showusage output . Updated documents to reflect new commands added and made some additions and fixes (docs\config.txt) - MESS . I8089 CPU: Added support for DMA_WAIT_FOR_SOURCE_DRQ (cpu\i8089\i8089_channel.c). Added support for wait for destination drq. . Floppy: Check if the timer for sector register update is already running, fixes BBC format command (machine\wd_fdc.c). Updated (MESS) BBC Micro to use the new wd_fdc. Until the 8271 floppy controller is updated, drive 0 and 1 = 8271 and drive 2 and 3 = wd_fdc. Changes to wd_fdc to get (MESS) Nuova Elettronica Z80NE booting (also fixed Colour Genie EG2000 fm mode). Force interrupt is executed without delay. On receiving a command, immediately set busy. Fixed missing setting of ddm in fm mode. Removed custom dmk implementation. Added support for the ENMF (enable minifloppy) pin, which enables an internal clock divider for some operations. Updated Microbee and Siemens PC-D to take advantage of this, both systems now boot without patches. Allow ENMF line to be switched. After a wd_fdc force interrupt command, return status type 1 (fixes SAM Coupe). Clear wd_fdc head load after 3 disk revolutions, fixes z80netf format command. Fixes wd_fdc to get BetaDisk work without patches. Updated bml3mp1802, coco, dgn_beta, dgnalpha, fm7, hec2mdhrx, mbc200, mbc55x, mz2000, mz2500, pk8020, rm380z, smc777, svi318, swtpc09, thompson, trs80, vector06, x1/x1twin, z100 and Z80NE to use the new WD FDC. Formatting disks now works in x1/x1twin hubasic. Removed support for the old wd fdc in excali64 since the new one works fine. Save all possible data sectors in fm mode (formats\flopimg.c). Added support to mark tracks as deleted data (formats\wd177x_dsk.c). Fixed plain sector disk images (formats\cgenie_dsk.c). Separated soviet FD179x clone (machine\beta.c). Solved the great Sherwood Forest mystery. DOS 3.3 inserts a short (3-4 cycles, roughly equivalent to one bit) delay between writing the header and the data bytes in the sector data block (formats\ap2_dsk.c). Cleanup formats\vdk_dsk.c. Ensure that get_next_transition always provide the next transition (imagedev\floppy.c). Updated apridisk for new floppy system (formats\apridisk.c). Moved some legacy formats over to imgtool since it's now the only user. . PC hardware: Added possiblity to read option lines (bus\isbx\isbx.h) . Softlists . When accessing the internal File Manager for a system with available softlists, let the softlist item be highlighted by default to make navigation faster. . Improved cheat support for games in softlist. XML cheats for home systems should now be stored in a subfolder (or a compressed archive), named after the software list, inside the cheatpath. this allows for loading cheats for consoles / home computers without interfering with arcade cheats when games have identical shortnames. For instance, loading Galaga in NES allows now to use its specific cheats even if a galaga.xml is available in the arcade cheat.7z (previously you'd get an error due to the arcade cheat referring to a cpu not present in the NES). . Fixed a crash occurring when trying to mount a CHD from the internal UI (emu\audit.c and ui\imgcntrl.c) . Added validation entry for softlist items which might miss the nodes . Parse ini files before looking for software (emu\clifront.c) (ID 05952). This way the hashpath setting will actually be used to search for software in software lists. This only occured when starting the emulator with the auto-search/mounting-software-feature: mame nes sonic. This format worked ok: mame nes -floppy sonic. . Refactored XT HD controller into separate device, so that it can be used in non-ISA systems. Added preliminary ST11M type controller and improved PIO support a bit. Improved Write Sector Buffer command. - SDLMAME . Fixed BGFX on Windows SDL build . Fixed compile on GCC 4.4 on old Ubuntu . Added new SDL_INI_PATH flag - MAC OS X . Fixed PMF extension doesn't work on OSX . Fix for OSX 10.6.x build - Compiling . Removed -Wno-unused-variable for MinGW/GCC (scripts\genie.lua and src\3rdparty.lua) . Re-enable optimizing SYMBOLS=1 builds (makefile) . Added skeleton support for Windows Phone and Windows Store - far from working. . Compile fixes for GCC5.1.1 Win64 and CPP11 mode. Requested by MinGW team to test LTO fixes. Please add #ifdefs if 64 bit printf does not work for you! . Let subtarget MESS (not MAME, yet) compile with Windows GCC 5.1 and LTO. I am told 'any' recent GCC for Windows has GCC-AR wrapper, if not, change back the line in toolchain.lua. . Allow compiling with shared libraries. Put SHLIB=1 in the main makefile, or on the command line. The idea is to get a *way* faster link with symbols. It works at least on Linux, with one annoying caveat: You have to be in the build\projects\sdl\mame\gmake-linux directory to start MAME afterwards. We're going to move some things around to be able to use LD_LIBRARY_PATH or have it start as-is from the root. . Fixed .lst files whitespace problem (build\makelist.py) . Added OPT_FLAGS back (makefile and scripts\genie.lua) . Added the ability to use system flac, jpeg, lua, sqlite3, portmidi and zlib based on wallyweek's work. This brings the system lib capabilities back to where they were prior to build system rewrite. . Moved device constructors from the header to the driver in an effort to keep things uniform (sound\sn76496.c/h and video\tms9928a.c/h) . Force rebuild version.c (scripts\src\main.lua) . Start work on creating tiny builds per driver file included (build\makedep.py) . Extract components used, allow comma separated list of input files, generating proper output and analyze all files for deps instead just main (build\makedep.py) . Made possible creation of custom builds with given list of drivers included. Note that game list is parsed so if macros are used they will not be found. Example: make SUBTARGET=cops -j9 DRIVERS=src/mame/drivers/cops.c. Made FM cores compile only in group, that way it always work. For separate drivers use simple naming logic (scripts\src\main.lua). . Missing bits needed for Emscripten compile (makefile) . ARM7 CPU also use DRC code (scripts\src\cpu.lua) 0.162 - New games: Big Buck Hunter Call of the Wild (v3.02.5), Golden Tee Fore! (v1.00.25) and Golden Tee Fore! 2002 (v2.01.06) - New Working games: Breakout [TTL], Golden Tee Fore! 2003 (v3.00.10), Golden Tee Fore! 2004 Extra (v4.00.08), Golden Tee Fore! 2005 Extra (v5.01.00), Golden Tee Fore! 2006 Complete (v6.00.01), Mini-Boy 7 and Race Drivin' Panorama (prototype, rev 2.1) - New Non-Working games: Big Buck Hunter - Shooter's Challenge (v1.50.07), Crazy Dou Di Zhu, Royal Poker 2 (Network version 3.12) and Virtual Pool - New clones: Contra (US / Asia, set 3), Golden Tee Fore! 2003 (v3.00.09), Golden Tee Fore! 2004 (v4.00.00), Golden Tee Fore! 2005 Extra (v5.00.00), Golden Tee Fore! 2005 Extra (v5.01.02), Golden Tee Fore! 2005 Extra (v5.01.06), Hot Toppings (English), Leprechaun's Gold (Spanish), Olympic Soccer '92 (set 3), Vigilante (US, Rev B) and Vigilante (World, Rev A) - New PEPlus games: Player's Edge Plus (X002297P+XP000053) Jackpot Poker and Player's Edge Plus (XMP00030) 5-in-1 Wingboard (CG2451) (CG2451) - Removed games: Mini Boy 7 (set 2) - New drivers: sealy.c - New devices: basic_joy, isa_sblaster_16, midiin_port, midiout_port and mssw_pad - COP400 CPU . Got rid of fake I/O memory map (drivers\cidelsa.c, looping.c and thayers.c) . Fixed LBI mask and B mask on XDS,XIS (cop400\cop400op.inc) . Changed skip-lbi-testing . Changed lbi skip testing again, previous solution didnt work properly. - MIPS CPUs: Added routine for clearing fastram region so that dynamic ram allocation can be mapped to fastram (cpu\mips\mips3.h and mips3drc.c) - TLCS-90 CPU: Fixed TRUN bit masking (timers start/stop) - TMS34010 CPU: Fixed CPU core moving to inline config in MAME 0.155, fixes "GSP TIME OUT ERROR" in harddriv, racedriv, steeltal, strtdriv and racedrivpan (ID 05911). - TMS57002 CPU: Cleanup tmsmake.py - Z8000 CPU . mreq instruction and the apb expects sout to work just like out. Added Z8000 apb support to (MESS) Olivetti M24. . Port access can be unaligned - ATA/ATAPI: Added clear cache command (machine\atahle.c) - CGA video: Added 640x400x1 mode for (MESS) Olivetti M24 - Discrete Netlist . Added adjustable gain to video\fixfreq.c . Don't call outside of netlist in case of noise introduced by solver . Optimized nld_74175.c, nld_82S16.c and nld_9316.c netlist devices . Added LED models. Fixed a bug in the solver code (netlist\analog\nld_solver.c). . Minor speed improvements and some timing adjustments (devices\nld_74175.c, nld_74192.c, nld_82S16.c, nld_9310.c, nld_9316.c and drivers\nl_breakout.c) . Some class structure cleanup (devices\nld_system.h, nl_base.c/h and nl_setup.c) . Improved 9312 device ==> 20% speed increase . Removed netlist_state_t ==> no added value . Removed dead code in solver . Various minor modifications . Performance monitoring now also displays stats for subdevices . Fixed save-state issues and save state in 9312 . Added EXTCLOCK which can generate arbitrary timing patterns. Use two EXTCLOCKs to replace timing circuit (9316) in Breakout. This gives a speed increase from 60% to 75%. . Cleanup of the solver system. Moved all experimental stuff into nld_ms_sor_mat.h to have a production solver. Renamed Gauss-Seidel to SOR since it is actually a SOR with omega = 1. Separated matrix and right-hand-side calculation. Aligned register_sub to follow the same calling convention as other register_* calls. Aligned logic_family usage across objects. . Fixed timing of DICE compatibility capacitor delay (netlist\nl_dice_compat.h) . Removed netlist_ttl_input_t and netlist_ttl_output_t. The logic family is governed by the chip and defaults to TTL. However individual devices may change the logic family of their inputs and outputs as well. Implementing special output/input characteristics of "S", "LS", "HC", ... you name it, devices is now pretty easy. Theoretically e.g. a "LS_HighPrecision" proxy could be used to model the output down to the transistor level. . Introduced a nl_math static class to have all math related functions in one place. This is a portability exercise, e.g. log1p is not supported on all platforms. Fixed recursive call in nl_math. Straightened some code. . Fixed soft reset due to wild BJT_SW oscillations Downsized nld_signal.h to one template. Some minor changes improving performance by some notches. Always compile nl_asserts to avoid bit rot. Adjusted monitor gain for Breakout. Fixed SOR criteria. . Finally got USE_DEACTIVE_DEVICE to work with Breakout as well. This adds about 10% to 20% performance. In addition, increased timing accuracy for deactivated devices. However still, there may be timing inaccuracies which certain circuits may not tolerate. Disabled for now. . Added netlist-level parameter NETLIST.USE_DEACTIVATE. Device deactivation optimisations can now be enabled within the netlist provided the circuit can deal with them. . Fixed TTL output levels. The old ones assumed maximum currents. This fixes latch operation in Breakout. . Added truthtable implementations to a number of devices. The combination of device activation, usage of GCC PMF extensions and truthtables brings breakout to 95% speed up from about 75%. Fixed NE555 initial state. . Avoid header file congestion and prepare for external generic truthtables . Added device deactivation for 7486 and truthtables for 7437. Truthtables in the 7448 don't work with Pong if device de/activation is enabled. . Savestate works. Truthtable device deactivation fixed. Truthtable ignore mask is now determined by a better approach identifying more ignore possibilities. . Removed c99-type usage of non-const arrays . Attempt to fix warning reported by Cowering (devices\nld_9316.c) . Made netlist code compile with "-Wextra -Wdouble-promotion -Wno-unused-parameter" . Rewroted nl_dice_compat.h so that it can be used to support DICE to netlist syntax conversions. Example script included in the header. . Started working on SPICE to netlist conversion. nltool can now convert simple SPICE netlists e.g. from LTSpice to netlist format. . Added a parameter to various calls to indicate we are doing a newton-raphson. Added parray_t. . Added stop virtual method to devices to be able to log statistics outside of destructors. In addition replaced printf by netlist().log(...). . Removed netlist_input_t and net_output_t. Instead introduced netlist_logic_t and netlist_analog_t. Afterwards refactored proxies. This enabled more flexible connection parsing. In addition, connections between two inputs are now parked and retried after all connections were made. The netlist code now correctly parses. . Fixed netlist crash on i386 32bit platforms (netlist\nl_config.h) . Cleanup includes in header files, reworked memory allocation and header optimisation. . Fixed a number of -Wpedantic messages in netlist. The netlist code and nltool can now be again compiled without MAME. Added a simple options class for this purpose. . Only use _mm_malloc when compiling netlist standalone . Added a simple preprocessor to the netlist parsing pipeline. This prepropcessor understands defines and nested if/else/endif without removing preprocessor elements first. This does not work with netlist originating from DICE currently. These have to be converted first. In addition, cleaned up __attribute__ madness in the code. Specifically removed ATTR_COLD from virtual definitions to avoid the vtable being declared as cold. . Fixed some netlist issues the valgrind tool pointed me too. In addition, added a strinb buffer class. . Changed plist_t to be closer to vector. Commented out tons of inlines without any impact on performance. . Added #ifndef, #ifdef to netlist preprocessor and implemented == operator. Fixed more -Wextra warnings, mostly int==>std::size_t and signed comparisons. - MC146818 RTC: Replaced vector.clear with memset in machine\mc146818.c. vector.clear() sets size to zero, causing a crash immediately upon next access. - Sega Custom . Updated 315-5124 palette in TMS99x8 modes . Fixed some 315-5313 save states pointers, fixes palette restore problem evident in (MESS) MegaDrive gauntlt4. - SVGA video . GD542x . Added system-to-video BitBLTs and fixed up patterned BitBLTs. . Fixed shadowed variables . Fixed BitBLTs being short by one scanline, and correct colours used when using both patterns and colour expansion together. . Added reverse direction BitBLTs, and improved colour-expanded pattern handling (still not quite perfect, though). . Added transparency support, fixed some lockup issues with colour expanded system-to-VRAM BitBLTs. . Fixed background and foreground colours in XFree86, which does not enable extended writes that the manuals say enable the extra bits in GR0/GR1. . Added non-writable area if VRAM bank is set past the end of available VRAM on the S3 Trio64 and Virge. S3 BIOSes will now correctly probe RAM size and store it in the strapping registers. - Taito Custom: Fixed TC0100SCN postload, fixes Cameltry save state regression. - Voodoo GFX . Fixed direct LFB reads from PCI memBase1 (non-3D) . Fixed depth selection for pixel pipeline write . Fixed depth selection for rasterizer . Fixed depth biasing for fog selection . Minor fix for color expansion in rasterizer . Minor initialization changes so that address masks are correct . Added different Voodoo card types and configuration options (video\voodoo_pci.c) . Fixed voodoo_1 PCI initialization . Added pre-fetchable flag to BAR - aleck64.c . Fixed/Cleanup Aleck64 inputs . Mouse optimizations and moved global vars to n64_periphs (includes\n64.h and machine\n64.c) . Added 4 controller support for N64/N64DD, as well as rough mouse support. You can select the device on each controller port. Fixed N64 Mouse wrapping. . Fixed input crash . 50% RDP speedup on an i7-5930K (video\n64.c and rdpspn16.c) . Improved blender performance (video\rdpblend.c) . Make code style consistent and make mostly const-correct . Improved RDP speed by eliminating some unneeded code . Removed threaded waits to increase performance (video\rdpspn16.c) . Improved texture filtering performance in the RDP - chihiro.c . Correct 2 errors in video\chihiro.c, one with register combiners. . Added 3D method 1808 and a few misc changes . Added support for swizzled render targets . Simple way to add per-game patches - cv1k.c: Fixed ignored qualifier warnings (video\epic12.h and epic12in.inc) - ddenlovr.c: Removed GAME_SUPPORTS_SAVE in all sets - f-32.c: Fixed EEPROM timing, Mosaic (F2 System) now write to EEPROM and Royal Poker 2 now shows a boot screen. - goldstar.c: Added some technical notes about super9 and cmtetrsb issues - harddriv.c . Fixed "GSP TIME OUT ERROR" in harddriv, racedriv, steeltal, strtdriv and racedrivpan (ID 05911) . Promoted clone Race Drivin' Panorama (prototype, rev 2.1) to working state . Separated the harddriv sound board from the driver class into a device . Fixed Race Drivin' crashes with segmentation fault when reset (audio\harddriv.c) (ID 05910) . Fixed Hard Drivin' year info (ID 05940) - iteagle.c . Corrections to gtfore sets. . Updated configuration methods for FPGA and EEPROM . Fixed crash/exception after failed IDE detection (trackball was missing from the input ports) (ID 05935) . Fixed button mapping for service and test . Fixed port mapping so that standalone iteagle doesn't crash. Added serial port handling in FPGA so that self-test (start==0 at power on) doesn't hang. . Restrain m_serial_idx from going out of bounds (machine\iteagle_fpga.c). . Organized BIOS for iteagle 1 boards (Virtual Pool) . Re-arrange inputs for different games . Added memory for Eagle1 boards and map gun input (machine\iteagle_fpga.c) . Splitted memory space mapping routines for CPU and PCI spaces and added fastram for CPU (machine\vrc4373.c) - magictg.c: PCB info changes - namcos1.c: Some work towards save state support. Got stuck trying to move mcu_bankswitch_w to configured banking. - naomi.c: Added mushi_type1.bin (128 bytes) dump from "empty/dead" management chip to Mushiking The King Of Beetle 2K3 2nd - peplus.c . Added DRIVER_INIT for Superboard with 64K banked CG roms . Fixed PEPlus gfx colors . Added correct CG2228 graphics roms to 'Player's Edge Plus (XM00008P+XMP00006) Multi-Poker' - ramtek.c: Added Knock Out [TTL] notes - segasp.c . Various additions, fixes and notes. . Added net_eeprom.ic74s BIOS file. Added dumps from "empty/dead" management chips to dinoki25 and lovebery - sigmab98.c . Fixed Sammy BIOS crash with exception (ID 05936) . Implemented sprite rotation - taito_f2.c: Killed anonymous timer - taitotx.c: Update gamelists in comments - wms.c . Added a lot of findings and docs to the WMS games. These are video slots identified as WMS 360 / 550. Also added the proper crystals, correct CPU, frequency, preliminary memory map, 2 new sets and technical info. Fixed CPU clock. . Replaced I486 CPU1 with I80188. Hooked the Analog Devices ADSP-2105 CPU (still need proper memory maps). Added technical notes. - Breakout [TTL] . Further work to improve Breakout (Game now playable) . Introduced a switchable resistor to be able to delay output changes. Changed monoflops to use this as a subdevice. Now you can leave away the charging capacitor and the monoflop will properly emit a pulse. This was needed by the scoring part in Breakout. . Added colour overlay . Added LED and lamp components. Start2 works. . Hooked up antenna and free game dipswitch as well . Added EXTCLOCK which can generate arbitrary timing patterns.Use two EXTCLOCKs to replace timing circuit (9316) in Breakout. This gives a speed increase from 60% to 75%. . Doubled horizontal resolution in Breakout because pixelclock has 2:1 and 1:1 duty cycles. Adjusted screen boundaries (video\fixfreq.c and drivers\pong.c). . Adjust layout to fit screen boundaries. Changed lights to be circles. . Adjusted monitor gain for Breakout . Finally got USE_DEACTIVE_DEVICE to work with Breakout as well. This adds about 10% to 20% performance. In addition, increased timing accuracy for deactivated devices. However still, there may be timing inaccuracies which certain circuits may not tolerate. Disabled for now. . Fixed TTL output levels. The old ones assumed maximum currents. This fixes latch operation in Breakout. . Added truthtable implementations to a number of devices. The combination of device activation, usage of GCC PMF extensions and truthtables brings Breakout to 95% speed up from about 75%. Fixed NE555 initial state. - Congo Bongo: Use SN76489A for sound as shown on Congo Bongo schematic - Contra: Made cocktail dipswitch apply to clones Gryzor (set 1/2) only, it has no function in the others. - Dark Seal: Readded flipscreen support (ID 04911) - Gun Force II: Game doesn't have Bonus Lifes, removed DIP SW so it not confuse players. - Heavy Unit: Moved driver to configured banking - Joker's Wild (encrypted): Updated some notes and cosmetic clean-up - MegaDrive/Genesis (hshavoc.c, megadrvb.c, puckpkmn.c, segac2.c, megaplay.c and megatech.c) . Added missing save states to machine\megadriv.c, fixes (MESS) MegaDrive gauntlt4 save state problem discovered by Tafoid's regression test. . Fixed some 315-5313 save states pointers, fixes palette restore problem evident in (MESS) MegaDrive gauntlt4. - Mini-Boy 7 . Fixed video emulation and added inputs (Game now playable) . Changed the buttons to use the standard Poker HOLD style (IE: keys Z X C V B) as per cabinet design . Someone just needs to hook up the lamps and maybe a simple layout, although the actual keys on the machine are not labeled. . Deleted the bad_dump set 2. According to the dumper's notes it's a bad dump of set 3 as rom labels matched that set. Set 2 hangs when trying to play. . Added DSW2-1 as Bartop/Cocktail and added GAME_NO_COCKTAIL flag. Added note about custom AD setup with service button. . Added lamps and a internal button-lamps layout based on the cabinet pictures. Lamps are currently disabled due to other unknown writes are happening on the same port. Need more investigation. Also added the coin counter. - Monster Bash: Fixed typo in audio\segag80r.c, music should work again. - Multi Game (V398) . Updated communication with EEPROM. Service mode works properly, game starts booting. Still missing memory banking, so boot hangs. . Added NVRAM hook up (so you don't need to insert the psw everytime) . Added ROM bank to data ROM, graphics are fixed. Needs an input overhaul because coins doesn't work and by default only one game is enabled. . Worked a complete set of inputs + DIP switches, fixed the CPU frequency, added findings and tech notes. Now the four games could be selected. Roulette, Bingo and Black Jack are playable. Casino 10 (poker) needs the watchdog implemented to work properly. Also changed the game name to Multi Game (Vxxx). . Sounds are 4-bit ADPCM driven by a NEC D7759GC. Hooked preliminary sound routines. Needs more work. . Enabled payout, improved EEPROM behaviour a bit so Poker is somewhat playable. - Savage Quest . Hooked up Voodoo 2 device . Switched to DS12885 device for proper CMOS size . Moved Voodoo register base to proper place . Implemented Voodoo-specific PCI registers to pass Glide validation . Increased frame-buffer size to enable 640x480 resolution . Hooked up ISA bus and SoundBlaster 16 device. Note: Still missing IRQ hookup for SB16, but game boots quite far now when IRQ is simulated. . Extended HASP emulation to return product information. Documented HASP behaviour. . Map in second S3, solved the "white screen" problem. . Added default NVRAM - Super Breakout: Improved color overlay a bit - Vigilante: Corrections to all Vigilante sets plus new clone - Wyvern F-0: Fixed text color and wrong sprite flip x based on game footage - Save state . Added save state support to alinvade.c, berzerk.c, bwing.c, cball.c, cchasm.c, darkseal.c, dynduke.c, hvyunit.c, igs009.c, nbmj8688.c, nbmj8891.c, nbmj8900.c, ninjaw.c, popobear.c, renegade.c, snk6502.c, sound\s14001a.c, usgames.c, videopin.c and wiping.c . Fixed B-Wings save state issue with RAM-based gfxdecode . Fixed saving problems/regressions in 315_5313.c, dgpix.c, midvunit.c, machine\megadriv.c and twins.c found by Tafoid's latest regression test . Fixed TC0100SCN postload, fixes Cameltry save state regression - Dipswitch fixes in contra.c, breakout, gambl186.c, m92.c, miniboy7.c and segasp.c - Renamed (gtfore02) to (gtfore03), (gtfore05) to (gtfore05b), (hottop) to (hottopa), (miniboy7b) to (miniboy7a), (pexmp030) to (pexmp030a), (vigilant1) to (vigilantc), (vigilantb) to (vigilanbl), (vigilantj) to (vigilantd), (vigilantu) to (vigilano) and (vigilantu2) to (vigilantg) - Description changes of Contra (US / Asia, set 1), Contra (US / Asia, set 2), Golden Tee Fore! 2003 (v3.00.10), Golden Tee Fore! 2004 Extra (v4.00.08), Golden Tee Fore! 2005 Extra (v5.01.00), Golden Tee Fore! 2006 Complete (v6.00.01), Mini-Boy 7 (set 1), Mini-Boy 7 (set 2), Multi Game (V398), Multi Game (V399), Rabbit (Asia 3/6) and WMS games XXX (Russia) to XXX (Russian) - MAME . Updated license tags (all files now do have owner) . HLSL . Shader improvements . Changed shadow mask implementation, shadow count XY now represent the number of pixel the shadow UV sized tiles will take on the screen . Implemented rotation of the shadow mask texture depending on the default landscape or portrait view of the screen . Removed prescale and pixel border of the shadow mask texture . Added option to change the shadow UV offset, to reduce the color bleeding of the shadow mask . Adjusted presets to work with the changed mask implementation . Reduced defocus offset . Improved downsampling for better blurring . Improved alignment of bloom layers (raster and vector) . Applied bloom effect to the render output of screenshot and AVI recording . Changed curvature effect to fit screen size . Changed scanlines to be not rendered into bloom layers . Changed shadow mask to be not rendered into bloom layers . Changed color floor to not light the bloom layers . Changed shadow mask to not dark the color floor . Added image vignetting simulation and option . Added round screen corner simulation and option . Added screen light reflection simulation and option . Made usage of unused brightness offset (additive) . Removed unused pincushion option . Removed duplicate shadow count Y options . Removed artwork/adapture.png . Added artwork/adapture-grill.png . Added artwork/shadow-mask.png . Added artwork/slot-mask.png . Added hlsl/simple.fx . Removed unused shaders::blit() function . Added shaders::screen_pass() function, which handles the (raster-)rendering on screen, into screenshot and AVI recording. . Added effect:set_bool() function . Fixed automatic Shadow Mask rotation . Fixed usage of OrientationSwapXY shader parameter . Added RotationSwapXY shader parameters to consider the user defined screen rotation . Fixed automatic Shadow Mask rotation . Added missing RotationSwapXY shader paramter . Fixed curvature zoom to fit the screen size in any aspect ratio . Fixed black border on the right and bottom side of the screen, caused by the previously added rounded corners. . Changed vignetting simulation . Removed screen ratio influence . Changed radius, blur and intensity . Fixed roundness of rouned corners . Fixed roundness of rounded corners; the default aspect ratio of 4:3 should not be stretched anymore when the source has another ratio . Disabled blurring of rounded corners . Some cleanup . Added Doxygen documentation definition file (www.doxygen.org) and make target for it . AUDIT . Slightly optimized -romident so that each software list is parsed only once instead of as many times as the number of drivers it is attached to. Also, removed the implication that files with (size != power of 2) are to be skipped, since we now want to identify also tapes and floppies and not only ROM binaries. . Check device roms only once when using -romident. this does not help as much as the softlist change, but there was no reason to keep the old unoptimal behavior. . Source alignment, corrections and cleans (whitespace) in ampoker2.c, blitz.c, corona.c, gatron.c, i8085cpu.h, kas89.c, supdrapo.c and vpoker.c - SDLMAME . Drop NO_SDL_GLEXT define on OSX (osd\sdl_cfg.lua) . Don't segfault on software list image save (sdl\sdlfile.c) - MAC OS X . Fixed drivers using ioport_arrays on OSX (emu\devfind.h) . Fixed OS X compile (netlist\palloc.c and pstring.c) - MESS . Atmel 8-bit AVR: Fixed AVR8 I/O register constant enumeration. Avoid log message flood in Replicator 1 driver. . Added Camputers Lynx TAP cassette format . Floppy: Return 0xff when reading from FIFO while busy (machine\upd765.c). Only return index pulse status in status type 1 mode (machine\wd_fdc.c). Fixes Nascom formatting. Added a function to return the number of sides the drive has and truncated files to new size on save (imagedev\floppy.c). Improved automatic format choice (formats\wd177x_dsk.c). Added support for the CP/M disk formats, use single sided formats first that are compatible with all drives (formats\nascom_dsk.c). Proper support for single/double sided disk drives and hook up ready line and motor off control, fixes format command (nasbus\floppy.c). Added some RWTS18 title IDs (formats\ap2_dsk.c). Fixed floppy disk image creation from command line. Removed old broken Colour Genie EG2000 floppy implementation, added an expansion bus interface, implemented new floppy controller as expansion device. Works with mfi files, still some issues with plain sector dumps. Simplify interrupt logic and added support for the density switch (cgenie\expansion\floppy.c). Interrupts take priority (machine\wd_fdc.c). . MOS6530 RIOT: Fixed CBM C8050 floppy disk access (machine\mos6530n.c). Refactored CBM C2040 floppy to use MOS6530n. Rewroted the MOS6532 RIOT (machine\mos6530n.c). Fixed MOS6530n address maps, edge detect, timer not running at reset, timer (cur_live.period -> attotime::from_hz()) and timer last count. Set timer initial value. Atari A2600 calgames now boots. . MOS6532 RIOT: Rewroted the MOS6532 RIOT (machine\mos6530n.c). Refactored (MESS) Atari 2600, Atari 7800, CBM C2040, CBM C8050, CBM C8280, CBM D9060, Elektor Electronics Junior Computer, Interpod, Pitronics Beta, Rockwell AIM 65 and Synertek SYM-1 to use the new 6532. Fixed (MESS) Atari 2600 E.T. game (machine\mos6530n.c). . TMS0980 CPU: Added pinout for TMS0980, TMS1xx0 and TMS1400 chips . WD2010 Disk Controller: Provides IRQ / (B)DRQ signals. Honors DRIVE_READY and WRITE FAULT (DRDY / WF) now. Set WF to GND and DRDY to VCC in your driver if signals are not serviced. - Compiling . Changed some rand_r to unknown_r (drivers\24cdjuke.c, bingoc.c, centiped.c, magictg.c, ssv.c, includes\centiped.h and ssv.h) . Fixed issues with white-space in MAME_DIR . Fixed emu\inpttype.h does not work on GCC 5.x and find a better way to disable optimisation . MAME now represent full build, for building MESS drivers only use make SUBTARGET=mess and for building only Arcades drivers only use make SUBTARGET=arcade. . Added makefile switch to choose linking against bundled OR system expat library . Added Cppcheck target in order to run analysis of code (makefile) . Fixed NO_USE_MIDI (src\3rdparty.lua and main.lua) . Support for -Wshadow (show shadow warnings) in Clang (scripts\genie.lua) . Removed nonstandard inline overloads (scripts\genie.lua and util\corealloc.c/h). Mark replacements separate from overloads and removed unneeded prototypes (util\corealloc.c/h). . Removed all uses of setjmp.h in MAME. The only place where it is still referenced is cpu\powerpc\ppc.c. I couldn't find any case in which this file would be compiled using the current build system. Nonetheless documented use using PPC_H_INCLUDED_FROM_PPC_C define. . Fixed a number of "-Wextra -Wdouble-promotion" warnings. Fixed a couple of float-to-double warnings. . Added a function to truncate files (util\corefile.c) . Propagate _subtarget in maintargetosdoptions call (scripts\src\main.lua, osd\osdmini.lua, sdl.lua and windows.lua) . Cleaned up RESTRICT and ATTR_ALIGN usage . Fixed some Clang 3.6 compilation errors - Debugger . No optimization for DEBUG builds PROFILE otherwise symbols are not right (makefile) . Cocoa (debugger\osx): Correctly size controls for user font selection 0.161 - New games: Burning Sanrinsya - Burning Tricycle, Car Hunt / Deep Scan (France), DoDonPachi Dai-Fukkatsu Black Label (2010/1/18 BLACK LABEL), Itazura Daisuki! Sushimaru Kun, Ma Cheon Ru, Minna Atsumare! Dodge Hero and Transformers Beast Wars II - New Working games: Table Tennis Champions - New Non-Working games: Breakout [TTL], Brick People / Block PeePoo (Ver 1.002), Dinosaur King (USA), Dinosaur King - D-Team VS. the Alpha Fortress (Export, Ver 2.500) (MDA-C0047), Dinosaur King - Operation: Dinosaur Rescue (USA, Export), Go Go Strike, Love And Berry - 1st-2nd Collection (Export, Ver 2.000), Love And Berry - 3rd-5th Collection (USA, Export, Ver 1.002) (MDA-C0042), Minna Ganbare! Dash Hero, Super 8 Ways FC (Fruit combination), Taiko No Tatsujin 7 (TK71-NA-A), Taiko No Tatsujin 8 (TK8100-1-NA-A), Tetris Giant / Tetris Dekaris (Ver.2.000), Zoids Infinity and Zoids Infinity EX Plus (ver. 2.10) - New clones: Amuse (Version 30.08A), Area 51 (Time Warner license, Oct 17, 1996), Berzerk (French Speech), Berzerk (Spanish Speech), Boogie Wings (USA v1.7, 92.12.14), Chuugokuryuu 3 Special (Japan, ver. 103), Daioh (93111A PCB conversion), Double Dragon II - The Revenge (Japan), Fighter's History (US ver 42-06, DE-0395-1 PCB), Hexion (Asia ver AAA, bootleg), Hot Bubble (Korea), Love And Berry - 1st-2nd Collection (Export, Ver 1.003), Mutant Fighter (World ver EM-2), Perfect Billiard (MC-8123, 317-5008), Phelios, Puzznic (bootleg, set 2), Raiden Fighters (Germany), Raiden Fighters (Japan set 3), Red Hawk (Korea), Robocop 2 (US v0.10), Scramble (Centromatic S.A., Spanish bootleg), Spatter (315-5099), Stadium Cross (World, alt), Super Champion Baseball (Japan), Super Formula (Japan, set 2), Super Puzzle Fighter II Turbo (Euro 960529), Tetris Giant / Tetris Dekaris (MDA-C0076), Total Vice (ver EBA), Ultimate Arctic Thunder Update CD ver 1.950 (5/3/04) and X-Men (2 Players ver UAB) - New AGEMAME games: 777 Heaven (Scorpion 5), Aladdin (Scorpion 5), Bullseye Hot Arrows (Scorpion 5), Cash Ahoy (Scorpion 5), Club Cash Ahoy (Scorpion 5), Club DOND Red Mist (Scorpion 5), Cluedo Prime Suspect (Scorpion 5), Cops 'n' Robbers Street Wise (Scorpion 5), Deal or no Deal Bank On It (Scorpion 5), Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 13), Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 14), Deal or no Deal East and West Wing (Scorpion 5), Deal or no Deal Eliminator (Scorpion 5), Deal or no Deal Go All the Way (Scorpion 5), Deal or no Deal Gold (Scorpion 5), Deal or no Deal Let's Play (Scorpion 5), Deal or no Deal Live (Scorpion 5), Deal or no Deal Rapid Round (Scorpion 5), Deal or no Deal Red Hot (Scorpion 5), Deal or no Deal Right Deal Right Time (Scorpion 5), Deal or no Deal Seal the Deal (Scorpion 5), Deal or no Deal Spank the Banker (Scorpion 5), Family Guy The Drunken Clam (Scorpion 5), Happy Hour (Scorpion 5), Hard Dk (Scorpion 5), Juicy Gems Community Party (Scorpion 5), Monopoly Gold (Bellfruit) (Scorpion 5), Monopoly Street Party (Scorpion 5), Monopoly Takeover (Scorpion 5), Quidsia (Scorpion 5), Red Hot Silly Peppers Community Party (Scorpion 5), Snakes and Ladders (Scorpion 5), Super 6 Club (Bellfruit) (Scorpion 4) (set 5), Treasure Island Club (Bellfruit) (Scorpion 4) (set 3), Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 9) and Wok 'n' Roll (Scorpion 5) - New PEPlus games: Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG2243), Player's Edge Plus (X000455P+XP000038) Joker Poker, Player's Edge Plus (X002028P+XP000019) Deuces Wild Bonus Poker and Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker (The Fun Ships) - New drivers: nl_breakout.c and segasp.c - ARM7 CPU: STM decrementing mode actually writes in incrementing mode on real h/w (arm7\arm7ops.c). Used heavily by GBA "Classic NES" carts. - I386 CPU: Decorated 64-bit constants, fixes some 32-bit builds (i386\pentops.inc). - I8051 / MCS-51 CPU: Added the ability to MCS51 family processors to use port bits as inputs which actually are used as outputs because a "0" has been written to them. The CMOS chips in the family may be misused in this way when a low impedance source is connected to them. - M68000 CPU . Added generated m68kops files to tree, added makefile for developers working on core. . Commented out fprintf(stderr, "Reloaded, pc=%x\n", REG_PC(m68k)) - MIPS CPUs . Added integer divide-by-zero handling to MIPS III cores . Made fast RAM option common to both interpreter and DRC - SH-4 CPU: Added SH-4 'fastram', disabled by default. - AICA sound: ADPCM looping (DC swirl sound) and address masking (Red Dog) fixes - DCS sound: Added missing save state (audio\dcs.c), fixes DRAM reload problems in NFL Blitz (boot ROM 1.1) and War Gods. - Sega PCM sound: Fixed SegaPCM volume register overflow - TMS5220 sound: Some preparation for a possible future merge of TMS51xx and 52xx into one .c file - 6522 VIA: Added device address map - 8250 UART: msr (modem status register) is writeable, (MESS) IBM PC Jr depends on this. - 8259 PIC: Fixed a polling mode bug - Discrete Netlist . Added rtrim, ltrim and trim to pstring. . Improved truthtable handling in netlist. Prepare per-game setting of USE_DEACTIVE_DEVICE. . Added 9602 one-shot and 9312/DM9312 . Document more work on Breakout. Further additions to nl_dice_compat.h. . Added 74192, 9316, 9310 and 74193 devices to netlist . Added 74175 and 82S16 devices to netlist. nl_breakout now compiles. . Fixed 7432 and 74279 devices . Make logic signal outputs default to low at startup (devices\nld_signal.h). Always connect to the first element in NET_C (netlist\nl_setup.c). . NE555 now supports reset . Various bugfixes for netlist code and improvements for breakout - I8275 video: Improved visual attribute decoding and cursor appearance - Laser Disc: Fixed compiling ldplayer (ldplayer\ldplayer.lua) - SVGA . Added a bit more to the Cirrus SVGA extensions . Made a start on the Cirrus hardware pointer, fixed reading of the lock register (Touchstar Bonanza works again). . Splitted Cirrus video devices to separate files (VGA, SVGA, GD5428 and GD5430) . Made Cirrus ISA cards 16-bit, rather than 8-bit. . Fixing some possible crashes, BitBLT destinations, fixing some errors in handling VGA CRTC registers and found using MFGTST. . GD542x . Cirrus WIP, (MESS) Virtual Pool VESA and non-accel GD54xx drivers are playable. Added generic GD542x ISA card. . Hardware cursor is working, but other acceleration features still need a lot of work. . Made a start at implementing extended write modes 4 and 5 - Voodoo GFX: Attempt to fix LFB pipelined pixel write in Voodoo and fixed fogmode lookup (video\voodoo.c and vooddefs.h) - Z80 PIO . Fixed bit control mode interrupt handling . Added individual write line handlers for port bits - exidy.c . Fixed M6502-related regressions in Mouse Trap and Venture (MCFG_QUANTUM_TIME -> MCFG_QUANTUM_PERFECT_CPU) . Adjusted Bonus_Life dipswitch in Pepper II and Hard Hat (ID 05922) - goldstar.c: DIP/input updates - hng64.c . Push code for what I believe is the sound chip (DSP1 = L7A1045 L6028 DSP) into it's own file. Don't skip bytes during L7A1045 playback. Added volume panning. . Documented used DSP1 register read/writes . Added proper sound comms . Put the dirty hacks to get into test mode in the code, the sound tests are useful at this point, definitely looks like it's writing sample triggers. . PORT_IMPULSE(1) for coins, coin setting not handled by the MCU apparently. . Minor doc fix . Fixed V53 PIT timers, makes BGMs to sound better. - iteagle.c . More improvements . Allow BAR of 0; change "invalid" from 0 to -1 (machine\pci.c) . Implemented bus-master DMA (machine\vrc4373.c) . Do some processing and DMA, and issue IRQs (sound\es1373.c). . Updated iteagle driver, video\voodoo_pci.c and machine\iteagle_fpga.c . Attempt to fix LFB pipelined pixel write in Voodoo and fixed fogmode lookup (video\voodoo.c and vooddefs.h) - m92.cpp: Fixed debug build heap-buffer-overflow with -aviwrite in clone Ninja Baseball Bat Man II (bootleg) (ID 05865). - model2.c: Added workaround for regression ("Caught unhandled St11logic_error exception: basic_string::_S_construct null not valid") found by Tafoid - namcos2.c: Fixed luckywld, luckywldj, metlhawk and metlhawkj crashed after OK in debug build (ID 05010) - namcos23.c: Undo old changes - naomi.c . Implemented G2 DMA channels 1-3 (machine\dc.c) . NAOMIGD BIOS info corrections . More correct ROM board PIO access (machine\awboard.c), fixes Guilty Gear Isuka and Rumble Fish 2 crash. . Workaround for certain NAOMI sets to allow loading using Osso's example for Sega Model 2 driver fixes - niyanpai.c: Configured banking and removed some trampolines - peplus.c . Minor doc updates / corrections. Fixed some "U" locations for the superboard. . Added new custom card back CG set (gfx1 roms) to clone 'Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker (The Wild Wild West Casino)' - quizdna.c: Switched to configured banking - segasp.c . Added skeleton driver Sega System SP (Spider) + BIOS and games . Basic system and IO hookup (BIOS is working), Tetris Giant boots to title. Other rom based games start loading but hang due missing RFID reader. . Added protection keys, main board EEPROMs, basic system hookup and Tetris Giant boots to title. Added inputs. - sigmab98.c . Fixed position of zoomed sprites and added sprite RAM buffer . Emulated background color register . Removed some ROM patches . Fixed Itazura Monkey reset after a time of demonstration and trash NVRAM (ID 05679) and graphics corruptions during Test mode (ID 05680) - snowbros.c: Fixed M68000 and OKI6295 clock speeds - suprnova.c: Allow use of 'modbios' with Super Nova. Also allows you to attempt to run games with the wrong region BIOS, which of course doesn't work due to region locking. - vigilant.c: Let's not save an enormous bitmap in each savestate when we can regenerate it - AGEMAME . Added new bfm_sc5sw.c fruit machine sets . Fixed [debug] Assertion in bfm_sc4.c (sc4coron, sc4crzkyg, sc4dnda and sc4czfrd) (ID 05663) - Blocken (Japan): Minor doc update & verification for Blocken's OKI OSC - Card Line . Fixed game doesn't start correctly (ID 03174) . Hooked up MC6845 CRT controller . Documented ASIC addresses . Properly document address deconding for GFX roms - Donkey Kong Junior: Fixed incorrect dipswitches (ID 05916) - Hexion: Document chip locations and xtal based on pictures of Konami PCB and bootleg PCB - Joker's Wild . Fixed visible area . Dumped GFX roms for clone Joker's Wild (B52 system, set 2) - Jump Bug . Adjusted clock speed to have working audio match that of video from PCB (ID 05834) . Added notes regarding missing discrete sounds and added GAME_IMPERFECT_SOUND flag - Keyboardmania 3rd Mix: Fixed keyboard error (machine\midikbd.c) - Mega Twins: Added missing ck24b.1a PAL rom to parent set - Pairs Redemption: Fixed [debug] Crash after OK (ID 05047) - Power Instinct: Use OKI address map for bootleg - Seicross: Fixed screen is upsidedown (ID 05899) - Spider: Service mode trigger is non-obvious, document it. - Stadium Cross: Redumped oversized gfx1/2/sega roms at the correct sizes - Street Fighter . Switched driver to use configured_entries for banks . Fixed 'Number of Countries Selected' dipswitch for sf, sfj and sfua (ID 05903) - Strider 2: Doesn't work properly (random hangs / crashes), tag it as not working. - Table Tennis Champions . Fixed graphical bug during attract mode (Game now playable) . Added working NVRAM - Touchstar Bonanza: Made a start on the Cirrus hardware pointer, fixed reading of the lock register (Touchstar Bonanza works again). - unknown 186 based gambling game . Some work towards "Unknown 186 Gambling Game". Shows some menus, but it's nowhere near playable. . Implemented communication with EEPROM. service mode passes now, until the memory clear. - Save state . Added save state support to aztarac.c, bagman.c, bigstrkb.c, cheekyms.c, clshroad.c, headonb.c, invqix.c, jackie.c, lwings.c, m107.c, m72.c, mainsnk.c, mirax.c, murogem.c, murogmbl.c, niyanpai.c, pitnrun.c, portrait.c, powerins.c, ppmast93.c, quizdna.c, rmhaihai.c, rotaryf.c, route16.c, roul.c, sauro.c, sbugger.c, shangkid.c, shangha3.c, shanghai.c, shaolins.c, spcforce.c, splash.c, spoker.c, spool99.c, ssfindo.c, stactics.c, thepit.c, toobin.c, truco.c, tunhunt.c, unkhorse.c, vamphalf.c, victory.c, vigilant.c, vroulet.c, warpsped.c and wiz.c . Fixed typo from Blood Bros save state addition . Completed state_save_register_item* removal - Fixed rom names in berzerk.c, exidy440.c, hexion.c, peplus.c, sbasebal and wboyo - Renamed (arctthndult) to (ultarctc), (area51t) to (area51ta), (fghthistua) to (fghthistub), (fghthistu) to (fghthistua), (gtfore02) to (gtfore06), (gtfore02o) to (gtfore02), (pepp0542) to (pepp0542a), (phelios) to (pheliosj), (rdftj) to (rdftja), (rdft) to (rdftj), (rdft2a2) to (rdft2aa), (rdft2j2) to (rdft2ja), (robocop2u) to (robocop2ua), (spf2t) to (spf2tu) and (totlvice) to (totlvicu) - Description changes of Area 51 (Time Warner license, Nov 15, 1995), Chuugokuryuu 2001 [Dragon World 2001] (V100?, Japan), Chuugokuryuu 3 Special (Japan, ver. 100), Chuugokuryuu Pretty Chance [Dragon World Pretty Chance] (V101, Japan), Dragon World 3 / Chuugokuryuu 3 Special (ver. 105), Dragon World 3 / Chuugokuryuu 3 Special (ver. 106), Golden Tee Fore! 2006 Complete, Hot Bubble (Korea, with adult pictures), Mushihime-Sama Futari Black Label - Another Ver (2009/11/27 INTERNATIONAL BL), Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG2020), Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker (The Wild Wild West Casino), Puzznic (bootleg, set 1), Spatter (set 1) and Super Formula (Japan, set 1) - MAME . Optimized attotime with assignment constructor and operator implementations (emu\attotime.h). Gives attotime heavy drivers a nice speedup, e.g. (MESS) st_de: 129.29% -> 151.12% (Average speed before and after). . Documentation fix for docs\hlsl.txt, hlsl_write is incorrectly documented as a boolean (ID 05895) . 3rdparty . Updated to latest . Added USE_BGFX for unsupported platforms to makefile and scripts\genie.lua. Made BGFX compile on more platforms. . LUA engine . Accept any LUA number type as coordinate This commit fixes a type confusion bug in all draw_*() API methods. When decimal (ie. subpixels) values were passed by user scripts, they were incorrectly casted from float to plain integers, resulting in incorrect graphical artifacts. As this may happen quite often within scripts manipulating numerical values in LUA, we now also accept decimal values as coordinates. . Optional text color for to draw_text(). draw_text() now accepts an optional fourth parameter to specify text color, in ARGB format. . Minor bugfixes and enhancements for LUA engine. . Fixed build on OpenBSD . Added AudioUnit effect support to MAME . Fixed YUV texture conversion for OpenGL (render\drawogl.c) . Proper C++ for DirectSound module, get rid of all static variables, some encapsulation (modules\sound\direct_sound.c). . Preventing asserting on vector item access (emu\sound.c) . Fixed leak in osd\windows\video.c . Fixed repetitive monitor updates. By design, MAME has an issue setting aspect correctly on monitor resolution changes. This needs to be addressed separately (osd\sdl\video.c and osd\windows\video.c). . Avoid infinite loop in ui\ui.c when word-wrapping. This commit fixes an infinite loop in draw_text_full(), happening when there is not enough space to draw even a single a char before trying to word-wrap. . Fixed empty input tag on validity test error message (emu\machine.c) (ID 05909) - SDLMAME . Added missing SDLMAME_X11 to osd\sdl_cfg.lua . Added distro support for Linux . Fixed cross-compile. The following will build mame64.exe on Linux: make TARGETOS=windows PTR64=1 OSD=windows OS=linux VERBOSE=1 OVERRIDE_CC="@ccache x86_64-w64-mingw32-gcc" OVERRIDE_CXX="@ccache x86_64-w64-mingw32-g++" OVERRIDE_LD="x86_64-w64-mingw32-g++" WINDRES="x86_64-w64-mingw32-windres" MINGW64=/usr $* . Changed sdl\strconv.c to osd\strconv.c . Added network flags (SDLMAME_NET_PCAP, SDLMAME_NET_TAPTUN and SDLMAME_NET_PCAP) . Bring back some SDL OSD configurability. Get NO_X11, NO_USE_XINPUT and SDL_LIBVER working on Linux. Restored DONT_USE_NETWORK, MESA_INSTALL_ROOT, NO_USE_MIDI, NO_OPENGL, SDL2_MULTIAPI, USE_DISPATCH_GL some more OS support from the old SDL makefile. . Made SDL build to be able to be compiled on VS. . Enabled MALLOC_DEBUG for SDLWin32 . Added CoreAudio sound output module. Advantages over SDL sound output are simpler code and lower latency. Added utility for editing AU effect presets. Converted CoreAudio output to use AUGraph in preparation for effects. . Fixed repetitive monitor updates. By design, MAME has an issue setting aspect correctly on monitor resolution changes. This needs to be addressed separately (osd\sdl\video.c and osd\windows\video.c). . Make sure monitor refresh is called when switchres is used (osd\sdl\window.c) . *nix man pages: Added new options to select debugger font face and size. . SDLMAME v0.160 selects the first mode unconditionally as a best mode when -switchres is used on SDL12 - MAC OS X . Fixed TOOLS linking on OSX. Embedded version information for OSX. Fixed OSX build with Clang on 10.7.x. . Make MinGW and OSX targets use dependencies for running GENie. Use REGENIE=1 to force GENie re-run without removing/touching files. Mark many targets as phony as appropriate. Improved situation for custom targets/OSDs. . Build Qt debugger on OSX if requested . Fixed BGFX leak of autoreleased objects and support OS X 10.6 Snow Leopard. Enable BGFX by default on Snow Leopard. Don't automatically disable BGFX for 10.5 Leopard. . Added back support for big endian targets including OSX-PPC . Skeleton for XCode support. Fixed ForceCpp for XCode4. . CoreAudio sound output good enough to be default on OSX. Added utility for editing AU effect presets. . Start adding .h and .inc files to help usage inside IDE's like VS and XCode . Made libflac possible to compile under Xcode, and simplify for other. - UME . Exclude rc's in UME build (ume\ume.lua) . Added missing devices ES1373 sound and VOODOO_PCI in UME (ume\ume.lua) . Made UME target include MAME and MESS targets . Added UME subtarget dummy so can test compile of all devices - MESS . Added preliminary TMS1600 CPU . Floppy: Emulated the Scandia Metric ABC FD2 floppy controller for (MESS) Luxor ABC 80. Fixed crcs and mfm clock bit update (formats\flopimg.c). Implemented write mode on the Commodore 8050/8250/SFD-1001 floppy drives. Removed write_next_bit_prev_cell hack (machine\fdc_pll.c). Implemented writing to Commodore d64/d67/d71/d80/d82 sector images. Implemented disk writing for IMD format (formats\imd_dsk.c). Added sector image format for the Commodore 8280 8" floppy drive. Added writing to sector dump disk images for victor9k. Added own sector dump disk format for C4040 since it's different from what the 1541 uses. . MOS6530 RIOT: Rewritten to support timer (machine\mos6530n.c) . Pass attotime as const reference (bus\ieee488\c8050fdc.c/h, machine\hdc9234.c/h and victor9k_fdc.c/h) - Compiling . Moved build system to GENie (scripts\genie.lua) . make TARGET=mess -j19 will generate all needed files and build MESS, while developing you can use make TARGET=mess COMPILE=1 -j19 to prevent rebuilding of make files. . Build system have automatic generate of dependencies so will do incremental builds fine. . make clean will remove all generated files/projects and obj files . Made tools to be built with TOOLS=1 param. Added -Wno-unused-result for all GCC versions (scripts\genie.lua). . Made possible architecture override with PTR64=1 param (makefile). PTR64=0 is x86, PTR64=1 is x64. . Include symbols in builds (scripts\genie.lua). sym file generate on MinGW in postbuild process (src\main.lua). . Fixed Visual Studio compilation (machine\vrc4373.c) . Check generated files even if just compiling (makefile) . Made CC and LD override possible (renamed to OVERRIDE_CC and OVERRIDE_LD), more parameter handling, added OVERRIDE_CXX and removed internal CC and LD settings since it's not needed and can be overwritten externally now (makefile, scripts\genie.lua and toolchain.lua). . Fixed for FORCE_DRC_C_BACKEND (scripts\genie.lua and src\cpu.lua) . Make GCC_VERSION work with $(CC) (makefile). Allow ARCHOPTS to contain whitespace (makefile). . Create makefiles for targets per subdir. Generate project files into OSD subdir to facilitate building multiple OSDs. Build into OSD subdirectory for people building multiple OSDs. . Added NOWERROR support (makefile and scripts\genie.lua) . Explicit file listing in LUA scripts making generate much much faster . Added support for per-OSD mak files (makefile) . Added GAWK script to make deps more sane (http://gnuwin32.sourceforge.net/downlinks/gawk-bin-zip.php) . Removed all the stuff that causes driver and emu sources to be compiled differently with different OSDs. Switch back to building for all OSDs in common directory. Move more OSD-specific stuff into OSD scripts. It still isn't completely safe to be building all OSD into same directory. Common OSD "module" files, e.g. debuggers and renderers, build with different options for each OSD. It works at the moment, but you will end up with slightly different executables depending on the order you build OSDs. . Separate OS and TARGETOS recognition and supported more platforms . Enforce OPTIMIZE = 3 for PROFILE builds, suggested by MG. . linux-gmake and linux-gmake-clang: Only run GENie build stage if scripts or makefile has changed. The concept may easily be migrated to other builds. I just don't have the time to test other builds right now. The downside of the approach is that you have to force a build stage run by deleting the build/projects folder. This however is a lot less frequent than normal "make". . Make MinGW and OSX targets use dependencies for running GENie. Use REGENIE=1 to force GENie re-run without removing/touching files. Mark many targets as phony as appropriate. Improved situation for custom targets/OSDs. . Added back UNIDASM, and enabled building even in tiny builds. . Added dependency to makefile, so generation task wait for GENie to be built. . Added IgnoreLDFlags and changed sent upstream. . Removed windows/osinline.h and placed MSVC dependent files in top folder. Moved MSVC defines from winprefix.h to osdcomm.h. Removed empty file compilation - porttime.c. Removed osinline.h in windows and sdl and change files using them. . Fixed VERBOSE=1 for top-level makefile, fix always regenerating makefiles on Windows, make many variable in top-level makefile immediate rather than deferred. . Removed need for winprefix.h and moved alloca define to osdcomm.h . Refactor out common OSD modules into separate LUA file . Added back DIRECTINPUT config for Windows OSD . Bring back NOASM, USE_SDL, CYGWIN_BUILD and malloc debugging for Windows OSD. . Ignore moc missing if MOC_FILES is empty (makefile) . Fixed race condition/crash when using the OSD to choose pcap devices (netdev\pcap.c) . Added custom build steps support to GENie . Added generated m68kops files to tree, added makefile for developers working on core. . Implemented filtering of dependency files, only active if machine have awk or gawk installed (scripts\genie.lua). . Made all windows build use icons . Enabled override of resources by OSD . Supported MinGW-Clang builds. Enable multiple definitions for MinGW-Clang, due to weird issue with multiple symbols. . Added FILTER_DEPS option for post compile filtering . User configuration option can be now stored in useroptions.mak, so no need to alter main makefile. . Added SEPARATE_BIN option to put executable files in bin folder . Added PYTHON_EXECUTABLE to use differently named Python executable . VS2010 and VS2015 compile works . Added SHADOW_CHECK parameter so we can work on shadowing issues in our code . Replaced cstr() -> c_str() as preparation for move to std::string. There is no implicit conversion to char* in std::string. Replaced dynamic_array with std::vector. . Replaced/Renamed string -> str due to future conflicts . Removed not needed astring includes. Converted astring to std::string. Updated astring constructors to have just one string param, to be more like std::string. . Added #include in emucore.h . Removed bool conversion and implicit empty check . Added NO_STRIPPING option and enabled stripping of executable by default (makefile) . Added regression tests and cleansrc to makefile . Unified objdir and targetdir for supported platforms . Use vsnprintf instead of printf to avoid libc buffer overflows (emu\emucore.c) . Accuracy fix for integer division loses fraction (attotime::from_hz -> attotime::from_ticks) (cpu\amis2000\amis2000op.inc, cop400.c, hmcs40.c and com4op.inc) - Debugger . Replaced simple_set with std::set (debug\debugcpu.c) . Cocoa (debugger\osx) . Fixed Cocoa debugger leaks with SDL2 . Added -debugger_font and -debugger_font_size in Cocoa debugger . QT (debugger\qt) . Added two more options to the build system: USE_QT: Compile the QT Debugger. Default is USE_QT=1 (except macosx) and USE_QT=0 to disable. LDOPTS: Optional LDFLAGs. These are mainly used for cross compilation. The following will compile a windows SDL build without QT debugger on linux: make TARGETOS=windows PTR64=1 OSD=sdl OS=linux OVERRIDE_CC="@x86_64-w64-mingw32-gcc" OVERRIDE_CXX="@x86_64-w64-mingw32-g++" OVERRIDE_LD="x86_64-w64-mingw32-g++" WINDRES="x86_64-w64-mingw32-windres" USE_QT=0 ARCHOPTS="-idirafter ${MINGW64DIR}/x86_64-w64-mingw32/include/ -I${MINGW64DIR}/Qt/include/ -v" SUBTARGET=tiny MINGW64=/usr LDOPTS="-L/mnt/mfhome/andre/mame/w64crosslibs" . Build Qt debugger on OSX if requested . Added debugger font choice . Added QT_HOME to support custom QT installations 0.160 - New games: Bang Bang Busters (2010 NCI release), Castle Of Dracula and Spider - New Working games: Brick Zone (v1.1, Spinner), Crazy Bonus 2002, New Cherry Gold '99 (bootleg of Super Cherry Master) (+clones) and Monky Elf (Korean bootleg of Avenging Spirit) - New Non-Working games: Mahjong Ougon No Pai - New clones: Adventure Quiz Capcom World 2 (Japan 920611, B-Board 91634B-2), Battle K-Road (Korean PCB), Boot Camp (set 2), Brick Zone (v6.0, Joystick), Chouji Meikyuu Legion (Japan ver 1.05), The Combatribes (US, older), Daioh (prototype), Frogger (Videotron bootleg), Golden Axe II (Mega Play), Mad Alien (set 2), Mahjong Electromagnetic Base, Nitro Ball (World, set 2), Puzznic (bootleg), Raiden II (France), Lei Shen Zhuan Thunder Deity Biography (Chinese hack of Battle Garegga) and Willow (World) - New PEPlus games: Player's Edge Plus (BE0014) Blackjack (International English/Spanish), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0190) Deuces Wild Poker (set 1), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 4), Player's Edge Plus (PP0515) Double Bonus Poker (set 1), Player's Edge Plus (X000006P+XP000038) Standard Draw Poker, Player's Edge Plus (X000042P+XP000038) 10's or Better, Player's Edge Plus (X000764P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X002010P+XP000038) Nevada Bonus Poker, Player's Edge Plus (X002016P+XP000038) Full House Bonus Poker, Player's Edge Plus (X002017P+XP000038) Full House Bonus Poker, Player's Edge Plus (X002037P+XP000038) Nevada Bonus Poker, Player's Edge Plus (X002039P+XP000038) Nevada Bonus Poker, Player's Edge Plus (X002111P+XP000038) 4 of a Kind Bonus Poker (with Seq Royal Flush), Player's Edge Plus (X002247P+XP000038) Standard Draw Poker and Player's Edge Plus (X002386P+XP000038) 4 of a Kind Bonus Poker - ADSP21062 CPU: Avoid ADSP21062 stack overflow when device is reset while inside interrupt handler. This fixes "SHARC: PC Stack overflow !" doing MASKROM check in Gradius 4. - I386 CPU . x87 condition code flag C1 must be 1 in case of a stack overflow, 0 in case of a stack undeflow (cpu\i386\x87ops.inc). . Added SSE opcodes of the form 66 0f xx and f2 0f xx . Removed bug in x87 fsave and frstor . x87 fpatan implemented using atan2() and not atan() . New implementation of x87 opcode fprem based on intel manual since curent one gives wrong results . Implemented missing opcodes for MediaGX CPU (i386\pentops.inc), but no disassembly. swe1pb (at least) in driver pinball2k.c boots to CMOS checksum failure prompt now. - i960kb CPU: Fixed cosr opcode in i960 (pretty unlikely that it uses sine) - NEC Vxx CPUs: Some cleanup to (MESS) PasoGo. Fixed 0xd8 opcode (cpu\nec\necinstr.inc) - PIC16C5x CPUs: Removed PIC16 MCU fake I/O memory map in bingor.c, blackt96.c, drgnmst.c, kickgoal.c, megaphx.c, midzeus.c and playmark.c - TMP68301 CPU: Initialized variables - MIDI . Fixed memory leak warning (autorelease pool) on OSX (portmidi\pm_mac\osxsupport.m) . Added ability to completely disable MIDI (lib\osdobj_common.c) - 8259 PIC: m_out_int_func() works even in polling mode - (MESS) Siemens PC-D depends on this, go figure. - AM9517A DMA: Register layout is different and it can do wider address range, so not quite a drop-in, and will need more work, but still seems to be related. - CHDMAN . Reduced the image size of some chdman createhd tests . Added some disabled debug code (chdman\chdtest.py) - Crystal: Added 430 kHz resonator for xtal.h - Seta Custom: Moved from old style callback to delegate (video\seta001.c) - Taito Custom: Initialized some variables in PC080SN, attempt at fixing jumping regression. - TMS34061 video: Added save state support - argus.c: Kill trampolines - argus.c and psychic5.c: Converted "Jaleco color blend" (video\jalblend.c) to be a device - capbowl.c, fgoal.c, mgolf.c and tugboat.c: Removed anonymous timers - cps1.c: Documentation update - galaxold.c . Removed fake ROMs from clone Video Pool (Video Hustler bootleg), it plays sounds through the discrete system and sound communication code in there is just a leftover. . The Videotron bootlegs froggerv and hustlerb3 are more 'Moon Cresta' than 'Super Cobra' - goldstar.c . Current crazybon dump comes from a pkrmast conversion kit. Fixed GFX decode for prkmast and crazybon. Added PROM dumps from cmv4 to get correct colours in pkrmast and crazybon until real PROM dumps can be obtained. . Crazy Bonus WIP: Fixed input mapping - all inputs and DIPs work in switch test. Fixed AY8910 mapping, data read and write are at different addresses. Document all DIPs shown in settings screen. Document coin value, coin limit and credit limit DIPs (determined with debugger). Document DIPs with easily visible effect on game. Fixed input naming. Still many unknown DIPs require investigation. . Make Joker Master and clones Poker Master (set 1/2) use same inputs as Crazy Bonus 2000 so they'll run until something better can be discovered. . Lamps/layout for Crazy Bonus 2000 . Documented/confirmed and improved inputs and DIPs. Added info/notes to driver. . Added dipswitches for clone Cherry Angel according to manual (thanks Bad A Billy) . Derived machine configs . Hook up and document lamps and coin counters for more games . Added layouts showing lamp status to many games . Added internal artwork for Poker Master (Tony-Poker V3.A, hack?) . Make artwork clickable for many Goldstar games . Make buttons that may be used when not lit appear semi-lit in Cherry Master layouts . Correct some star100 inputs . Make cmpacman/cmtetris key mapping more consistent with defaults for slot games . Make Cherry Bonus artwork clickable . Hook up second set of lamps for games with two sets of controls. Added second set of lamps to layouts for games with two sets of controls. Make Wing Co layouts (bingowng/lucky8) prettier. Added views to show either or both sets of button lamps. . Hook up AY8910 on unkch hardware for sound and DSW1/DSW2. Hook up and documented lamps for unkch1. Lamps and clickable artwork for unkch sets. . Hook up VBLANK IRQ enable in unkch sets, fixes crash on second coin when Super Jackpot is enabled. Hook up ticket dispenser and save NVRAM in unkch sets. - hng64.c . Some code refactor. Modernized driver. . Splitted the HNG64 code into more files, easier to work with, also modernize a bit more. . Improved some textures (billboards) in Xtreme Rally. Some road parts now look worse however, so still needs work, might be mirror flags too. . Shuffled more HNG64 stuff around, added stub CPU classes for the different CPU types it uses so that we can start implementing the peripherals properly rather than hacking them into the driver. . Added BIOS USA, Export and Korea. Note: All BIOS roms are said to be from 'fighting' type PCB, it is unknown if the actual MIPS BIOS differs on the others, or only the MCU internal ROM. . Start an internal map for the V53 MCU. Few bits of V53 stuff, start dynamic peripheral mapping, attempts to set up timers at least. Timer Unit is functionally identical to uPD71054 (which in turn is said to be the same as a pit8253) so give the V53 one of those other peripherals aren't quite identical, just close to other devices (often missing modes or with other limitations). . Don't crash V53 on garbage values Roads Edge/Samurai Shodown 64 write on startup . Couple of notes about what the various NEC chips in V53 seem to be cloned from thanks to Carl and R. Belmont, added them for now, will try to hook them up and see how things align in a bit. . The V53 SCU is a i8251 clone, but with the command / mode registers separated, and only Asynchronous transfer mode available, this splits the function into something we can use for that purpose. . Exposed V53 device callbacks to users . Roads Edge startup is much better behaved like this . Provided access to the interrupt V53 lines. Hooked V53 irq ack callback so that it can get the correct vector from the controller. . Added sound logerrors and irq notes (audio\hng64.c) . Hooked up ROM banking to Sound CPU, this, along with the above V53 peripherals improves the code flow on the CPU significantly, although the interrupt hookups, communication, and sound generation are still not yet understood. - iteagle.c . Hooked up PCI devices and bridge correctly using new PCI subsystem . Fixed BIOS selection . Fixed VR4373 PCI target accesses . Restored FPGA/PAL bitstreams for board owners - m72.c . Use dumped MCU rom on clone Mr. HELI from unprotected MCU. Note, it does now write the 'for use in Japan' message to one of the tilemaps, but you don't currently see it, either due to timing or video emulation issues. . Hooked up MCU rom for clone 'X Multiply (Japan, M72)' after tidying the driver a little and the game now shows the Japan warning - megasys1.c . Improvements to clone Monky Elf (Korean bootleg of Avenging Spirit), now playable. . Added dumped PROM (priority) to 64th. Street . Added video links of the unemulated mosaic effect used in Shingen Samurai-Fighter and P-47 service mode . Fixed status read for second OKI sound chip - neogeo.c . Updated game PCB info . Misc Documentation update . Added MVS and AES VERSION tag to kof96h, kof98h and ncombath . Fixed clipping bug (e.g. apparent in NeoGeo) for video accel (render\draw13.c). Minor code changes (windows\video.c). - paradise.c: Cleanups. This seems to be another driver where the OKI behaves differently during staggered -autosave runs. - peplus.c . Added in some rom dates & IGT game revision info. . Added documentation to correct the Hit Frequency for the Black Jack Bonus sets - pinball2k.c . Correct notes, install port handlers bridge positions taken from picture in MediaGX document from Carl. . Implemented missing opcodes for MediaGX CPU (i386\pentops.inc), but no disassembly. swe1pb (at least) boots to CMOS checksum failure prompt now. - sam.c: Updated copyright dates to match those from sources (IMDB/arcade-museum) (ID 05879) (ID 05880) - seta.c: Minor fixes - srmp2.c, supertnk.c and thunderx.c: Simplify ROM loading/banking - suna8.c . Emulated sound latch protection . Use measured clocks from Brick Zone PCB, fixes YM3812 music tempo in Brick Zone and Hard Head 2. . Promoted clone Brick Zone (v1.1, Spinner) to working - thunderx.c . Simplified ROM loading/banking and unify it between Super Contra and Thunder Cross . Converted to bankdev, merged with gbusters.c and added notes and correct various things based on schematics . Fixed VSync in gbusters and thunderx - twins.c . Improved blitter and sprite/video . Use RAMDAC for palette on clone Twins (set 2) . Improved colors in Spider and mark it as working - AGEMAME . mpu4.c: Reduced tagmap lookups (drivers\mpu4hw.c). Removed unused declarations (includes\mpu4.h). . mpu4vid.c: Added cursor (video\scn2674.c) and floppy 2 to (MESS) Siemens PC-D - Chelnov: Simulated some protection instead of patching rom. - The Deep: Use existing DECO MXC06 sprite device for The Deep, thanks to Osso for pointing it out. - Funky Ball: Used ioport_array. This enormously reduces tagmap lookups, but doesn't help much with performance. - Gradius 4: Avoid ADSP21062 CPU stack overflow when device is reset while inside interrupt handler. This fixes "SHARC: PC Stack overflow !" doing MASKROM check in Gradius 4 (ID 04138). - M-4: Fixed M-4 audio config / game crashes after pressing COIN 1 (ID 05852). - Midnight Resistance: Fixed strange sprite behaviour in Midnight Resistance (video\decmxc06.c) (ID 05333) - Operation Wolf: Fixed BGM regression - Queen: Intercept OOB access to PIIX4 device. This fixes debug assertion in Queen (ID 05862). - Pooyan: Removed unused member variable - SegaSonic The Hedgehog: Fixed rom names for SegaSonic The Hedgehog and document the FD1149 number & board types - Skins Game: Trivial conversion to real PCI + VR4373. No visible progress. - Stone Age: Decrypted maincpu a tiny bit - Super Wing: Looking at Super Wing based on a crash report at MARP. There is an unused ROM, I think it contains a 2nd stage layout for the game, and appears to be banked in after you finish a bonus round, however, even hooking it up as a banked rom the game crashes, and the data in the ROM looks suspicious (there are flipped bits at fairly regular offsets even in 0xff fill areas). It could be the bank hookup is wrong, but the data concerns me enough to mark the rom as BAD_DUMP. We need another PCB to dump the colour PROM anyway, although we've only seen it once. Tag superwng as NOT WORKING, as it's never worked passed the bonus stage. - Table Tennis Champions . Identified that Table Tennis Champions uses the same style DMA/blitter as the recently added Spider (Twins driver), made some improvements, added sound, it isn't driven by PIC and role of PIC still unknown. . Identified the main difference between the two sets . Added pen based blending and notes. . Global layer clearance is at 0x10 bits 4-5 . Fixed Gamart logo, bit 1 of port 0x10 enables transparent pen for the blitter. . Fixed ROM bank for the blitter - Yori Jori Kuk Kuk: Added gfx1 roms - Input port: Set default version of DirectInput to 8 so it builds with 3rdparty/dxsdk out of the box (windows\windows.mak) - Save state . Added save state support to argus.c, bbusters.c, cabal.c, cocoloco.c, deadang.c, hotblock.c, ironhors.c, jchan.c, mgolf.c, mosaic.c, psychic5.c, pturn.c, realbrk.c, re900.c, rltennis.c, sandscrp.c, shougi.c, shuuz.c, sidearms.c, speedbal.c, speedspn.c, srmp2.c, srumbler.c, ssrj.c, ssozumo.c, sstrangr.c, ssv.c, sub.c, subs.c, suna16.c, supdrapo.c, suprgolf.c, suprloco.c, suprridr.c, tagteam.c, tankbatt.c, tankbust.c, taotaido.c, tbowl.c, tgtpanic.c, timelimt.c, tms34061.c, tryout.c, tsamurai.c, tugboat.c, vulgus.c, wc90b.c, xain.c and xtheball.c . Enabled save state support in capbowl.c, fgoal.c, flyball.c, jankenmn.c, junofrst.c and nova2001.c . Added missing save state to jongkyo.c . Added/improved save state support to the devices used in seta2.c. Save state support in the driver isn't enabled for now. Need to figure out why x1 produced sound isn't reloaded properly. - Dipswitch fixes in funkball.c, goldstar.c and suna8.c - Fixed rom names in madalien.c, mitchell.c, seta.c and segas32.c - Renamed (brickzn) to (brickznv5), (legiono) to (legionjb), (madaliena) to (madalienb), (pepp0158b) to (pepp0158c), (pepp0158c) to (pepp0158d), (pepp0190) to (pepp0190a), (pepp0190a) to (pepp0190b), (pepp0515) to (pepp0515a), (pepp0515a) to (pepp0515b), (tenkaid) to (ougonpaib), (willow) to (willowu) and (willowo) to (willowuo) - Description changes of Boot Camp (set 1), Brick Zone (v1.1, Spinner), Chouji Meikyuu Legion (Japan ver 1.05, bootleg), Crazy Bonus 2002, Daioh (earlier), Daioh, Mad Alien (set 1), Golden Axe II (Mega Play) (Rev B), Mad Alien (set 2, alt gfx), Mahjong Ougon No Pai (bootleg), Mr. HELI no Daibouken (Japan), New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese), New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English), New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese), Nitro Ball (World, set 1), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 4), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 5), Player's Edge Plus (PP0190) Deuces Wild Poker (set 2), Player's Edge Plus (PP0515) Double Bonus Poker (set 2), Player's Edge Plus (PP0515) Double Bonus Poker (set 3), Poker Master (ED-1993 set 1), Poker Master (ED-1993 set 2), Poker Only '97 (Talking ver. 3.3), Royal Poker '96 (set 1, v97-3.5), Royal Poker '96 (set 2, v98-3.6), Royal Poker '96 (set 3, v98-3.6?), Skill '98 (Talking ver. s98-1.33), Skill Cherry '97 (Talking ver. sc3.52), Skill Cherry '97 (Talking ver. sc3.52c4), Table Tennis Champions, Table Tennis Champions (Palencia Elektronik license), Terra Force (Japan, bootleg set 2) and Terra Force (Japan, bootleg with additional Z80) - MAME . C++'d more of windows\video.c and windows\window.c . VIDEO RENDERING SYSTEM . Enabled OpenGL renderer on Windows. By default, run-time function resolution is enabled. To resolve addresses, the code now first tries GetProcAddress followed by wglGetProcAddress. . Moved OpenGL related stuff to modules\opengl . OpenGL on Windows now supports GLSL options. This worked out of the box with Wine64 and on Virtualbox Windows7 (64bit) (Example: mametiny.exe gridlee -video opengl -gl_glsl -glsl_shader_mame0 shader/glsl_plain -glsl_shader_mame1 shader/TV/tv -now -gl_forcepow2texture -keepaspect). . Swapped interval for baseline OpenGL. I can't test this. Neither VirtualBox nor Wine seem to support WGL extensions (render\drawogl.c). . Introduced osd_rect and osd_dim to allow for more code alignment . Fixed resizing on windows (sdl\window.c and windows\window.c) . Moved all renderers to osd\modules\render. . Merged sdl_video_config and win_video_config . Fixed MAME restart in builtin game selector (render\draw13.c) . Fixed detecting rotation for "-video accel" for quadratic screen bitmaps (render\draw13.c) . Fixed clipping bug (e.g. apparent in NeoGeo) for video accel (render\draw13.c). Minor code changes (windows\video.c). . Avoid members having the same names as wgl* functions. Renamed those to pfn_wgl. If any windows headers do some macro magic, this should work around it (render\drawogl.c). . Use configured banks for argus.c, psychic5.c, taotaido.c, tbowl.c, tecmo.c, wc90.c and wc90b.c . 3rdparty . Updated BGFX, BX, Genie and Mongoose libraries to latest . Set default version of DirectInput to 8 so it builds with 3rdparty/dxsdk out of the box (windows\windows.mak) . Updated Mongoose with some patches sent upstream . Android fixes (luaengine.c, luaconf.h, formats\dfi_dsk.c and netlist\plists.h) . LUA engine . Added initial documentation for luaengine API . Use per-container pixel aspect (LUA draw_text bugfix). Do not assume ui-container aspect when drawing on other containers. This fixes LUA draw_text() in multi-screens games, where the font aspect for each screen is wrongly computed on the aggregated target. . Clip screen coordinates to screen size. Screen drawing fixes and initial docs. . Pyton . Removed except clause syntax not supported on Python 3. This change uses sys.exc_info()[1] instead of the "as" syntax to retain Python 2.5 compatibility (cpu\arcompact\arcompact_make.py, h8\h8make.py, m6502\m6502make.py, m6809\m6809make.py, mcs96\mcs96make.py and tms57002\tmsmake.py). . Removed use of has_key() for Python 3 compat (cpu\m6809\m6809make.py). Fixed icounting (m6502\m6502make.py). . Removed unused imports and extra semicolons (build\makelist.py and verinfo.py) . Fixed TypeError exception in file2str.py, changed dangerous variable name and fixed Python 2 compatibility. . Removed unused "opc", fix possible undefined name "inf" (cpu\h8\h8make.py and cpu\mcs96\mcs96make.py) . Python script cleanups based on PyCharm inspection (arcompact_make.py, file2str.py, h8make.py, jedtest.py, m6809make.py, makelist.py, mcs96make.py, png2bdc.py, tmsmake.py and verinfo.py) . Send error messages to stderr instead of stdout (file2str.py, makelist.py, h8make.py and chdtest.py) . Open chdtest.py as binary, read in chunks to reduce memory usage. Make chdtest.py and jedtest.py Python 3 compatible. . Replaced a bunch of set_base()s with set_entry()s in sidearms.c, simple_st0016.c, sothello.c, speglsht.c, srmp2.c, srmp5.c, srmp6.c, srumbler.c, suna16.c, suprgolf.c, suprslam.c, tankbust.c, thunderx.c, tryout.c, usgames.c and vigilant.c . Fixed crashing on ARM Linux targets (util\delegate.h) . Removed relative folders in src (for future use) (emu\info.c) . Don't crash if no memory for bitmap. More graceful exit will occur when next malloc() fails, and condition might be temporary (font\font_windows.c). . Made the mandatory image menu a bit more foolproof, by not allowing a reset. Until a file has been selected (ui\filemngr.c). . Fixed ALT+TAB during ROM loading screen causes assert with -debug (ID 05846) - SDLMAME . Fixed SDL builds and video with OpenGL renderer . Introduced osd_rect and osd_dim to allow for more code alignment . Fixed resizing on windows (sdl\window.c and windows\window.c) . Moved all renderers to osd\modules\render . Merged sdl_video_config and win_video_config . Aligned monitor handling between SDL and baseline . Fixed switchres for SDL build . Fixed fullscreen toggle for the accel driver on OSX . OS/2 patches for SDLMAME 0.159 - MESS . Added TMS1990 CPU device . Added the TMS6125 4KiB VSM pinout (machine\tms6100.c) . Floppy: Show busy status for a moment if seeking to current track (machine\wd_fdc.c). Added a sanity check for TI99 disk format detection and a non-locking Alphalock. . Siemens PC-D keyboard and partial SCSI - Compiling . OpenGL MSVC fix. If compiling under MSVC, don't use GL/gl.h or GL/glext.h. Use our own headers. . First step to move osd_printf_* into osd again. Callbacks are now implemented using an interface and use a push/pop approach where the pop can happen out of order of pushes (emu\validity.c/h, osd\modules\lib\osdobj_common.c/h, osd\osdcore.c/h and osd\windows\winmain.c). . Disabled some parts of UndefinedBehaviorSanitizer for Clang 3.6 (build\flags_clang.mak) . Fixed compile on MSVC 2012 (opengl\osd_opengl.h) . Fixed nltool (debug netlists outside MAME) linking with Visual Studio (tools\tools.mak) . Removed unnecessary assert.h includes from many headers and added it to lots of source. . Cleaned up emu.h usage in src\lib\formats. Replaced off_st usage in src\lib\formats with UINT32 to reduce libemu dependencies. . Some compilers have issue with "!" signs (util\corestr.h) - Debugger . Fixed assert on opening empty watchpoints/breakpoints windows . For raw opcode view, don't crop under minbytes (debug\dvdisasm.c). . Avoid race condition where debugger window update request is made before debugger is initialised (debugger\debugwin.c) . Added command-line option -[no]dummywrite DEBUG (#ifdef MAME_DEBUG) to create snaphots of each frame without writing them to a file. This is a dummy implementation of -aviwrite/-mngwrite and is used in testruns to detect e.g. palette issues. The dummy implementation greatly speed up testrun since it avoids the snapshot to file format conversions as well as the I/O operations. . QT (debugger\qt): Fixed building QT debugger on Windows 0.159 - New games: PuzzLove and Super Miss World - New Working games: Kozure Ookami - New Non-Working games: Attack (Set 1) [TTL], Super Rock and Bowl (V1.1), The Key Of Avalon - The Wizard Master (client) (Rev G) (GDT-0006G), The Key Of Avalon 1.3 - Chaotic Sabbat (server) (Rev C) (GDT-0009C), Triforce Firmware Update For Compact Flash Box (Rev A) (GDT-0022A), Vampire Night (VPN3 Ver. B) and Virtua Striker 4 Ver.2006 (Export) (GDT-0021) - New clones: Asura Buster - Eternal Warriors (Japan) (ARCADIA review build), Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev B) (GDT-0008B), Ghost Squad (GDX-0012), Poke Champ (set 2), Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F), Side Arms - Hyper Dyne (US, 861202), Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (GAMEST review build), The Key Of Avalon - The Wizard Master (client) (Rev E) (GDT-0006E), The Key Of Avalon - The Wizard Master (client) (Rev F) (GDT-0006F), The Key Of Avalon - The Wizard Master (server) (Rev E) (GDT-0005E), The Key Of Avalon - The Wizard Master (server) (Rev F) (GDT-0005F), The Key Of Avalon - The Wizard Master (server) (Rev G) (GDT-0005G), The Key Of Avalon 1.2 - Summon The New Monsters (client) (Rev A) (GDT-0010A), The Key Of Avalon 1.2 - Summon The New Monsters (server) (Rev A) (GDT-0009A), Turbo Out Run (Japan, cockpit, FD1094 317-0101) and Ultra X Weapons / Ultra Keibitai (GAMEST review build) - New PEPlus games: 'Player's Edge Plus (PS0090) Gold, Silver & Bronze Slots' - New devices: t5182 - H8 CPUs: Added some more state saving, fixes Last Fighting and Puzzlet (Japan) saving problems. - I386 CPU . Added x87 opcodes FCMOVB, FCMOVE, FCMOVBE, FCMOVU, FCMOVNB, FCMOVNE, FCMOVNBE, FCMOVNU, FCOMI, FUCOMI and FUCOMIP . Added infrastructure to support opcodes ?? 0f 38 ?? and ?? 0f 3a ?? . Added placeholders in opcode table for all instructions not yet implemented . Fixed opcode group 0f 73 . Added opcode group 66 0f 73 . Moved SSE opcodes movd movdqa to their own routine . Moved SSE opcodes pinsrw pextrw to ther own routine . Added opcodes SSE punpcklbw, punpcklwd, punpckldq and punpcklqdq - I80186 CPU: (MESS) Siemens PC-D doesn't display anything yet but almost completes post - I8741 CPU: Added save state support (machine\tait8741.c) - M6502 CPU: Fixed inline helpers (m6502\m6502.h), does that break (MESS) C65? - M65CE02 CPU: Generalize Kale's findings (m6502\om65ce02.lst) - M68020/30 CPU: Emulated instruction cache for 68020/68EC020 (MC68020 User's Manual, Section 4 - On-Chip Cache Memory). Drivers tested gained anywhere from 3-10% unthrottled on Taito F3 and Konami GX games, 10-12% on the Mac II and 140% on Semicom's Dream World. - T5182 CPU: Moved T5182 internal ROM in the device, instead of having it in the games' romsets. General cleanups to bring the device closer to modern MAME (audio\t5182.c and drivers\darkmist.c, mustache.c and panicr.c) - MIDI: Converted into a module - SAA1099 sound: Added save state support - 6850 ACIA: Fixed parity. This fixes many sets stops at a "Serial Link Failure" screen in mpu4vid driver (ID 05498). - CHDMAN: Report core file position in case of a CHD hunk read error (tools\chdman.c) - Laser Disc: Added CHD placeholders to Casino Strip XI, Cops (USA)/(UK), Dragon's Lair 2: Time Warp, NFL Football, Pop Shot, Revelations, Shabon-Dama, Skeet Shot and Space Ace (DL2 Conversion) - Sega Custom . Updates to 315-5881 encryption based on Daytona USA 2 Power Edition's analysis . naomi.c and hikaru.c: Mark unpopulated 315-5881 keys as -1 because 0 is valid (capsnk) key . (MESS) Improved the SMS code for the Light Phaser, by simplifying the routines and making them slightly faster (bus\sms_ctrl\lphaser.c and video\315_5124.c). - armedf.c and galivan.c: Converted NB1414M4 to a device, no functional change expected. - bfcobra.c: Fixed all sets in BFCobra driver stops on 1st screen, just keeps beeping like some kinda alert (ID 05538). - chihiro.c . Redumped GDROMs in outr2 and wangmid . Redumped 317-0567-exp.pic in ccfboxa - cobra.c: Fixed uninitialized var - cps1.c: Added video measurements notes by Charles MacDonald (includes\cps1.h) - cps2.c: Added Q-Sound amp board notes - expro02.c . The Comad 'Fantasia' games are all derived from the EXPRO-02 Gals Panic codebase. The original Fantasia 940307, 940429 PCBs cloned everything from that, including the encrypted VIEW02 layer. Later releases (940803 PCB and above) removed the VIEW02 tilemap and associated ROMs, but left the code in to access it (that's what we were incorrectly treating as a 'mirror' of the BGram, it presumably goes nowhere instead). The other release of Gals Panic is a different codebase, using the Pandora sprite chip, this one was not cloned by Comad. As a result of this research I've shuffled sets around a bit. Hide gal graphics on title screen until fully drawn (fantasia etc.). I don't know if this is more or less accurate to the PCBs tho, can somebody confirm? . Leave the clear logic in for Gals Hustler, it's not a Comad PCB and not a hack of GP, logic could be different. . Hide gal graphics on title screen until fully drawn (fantasia etc.) I don't know if this is more or less accurate to the PCBs tho, can somebody confirm? . The better handling removes the need for this hack actually. - galpani2.c: Swapped x and y scroll on ind8 layer - fastfred.c: Added save state support to all games except Imago and clone Imago (no cocktail set). These 2 games use the galaxold starfield functions and therefore suffer from the same underlying save problem. Up to now I've not been able to identify the cause. - hornet.c . Fixed access to 93C46 EEPROM in NBA Play By Play (ID 02004). . Made the EEPROM optional since it seems to be only on the LAN board. This is a better fix for the NBA Play By Play issue. - igs011.c: Worked around save state problem as per Tafoid -str 40 test - lindbergh.c: Added the CF card dump to BIOS - model3.c . Added country / region were possible (as shown by game) . Changed Dirt Devils from set 1 & 2 to Export & Australia . Fixed clone Dirt Devils (set 2) (Revision A) key which wasn't updated . Made the Export of Emergency Call Ambulance the parent set . Removed clone Harley-Davidson and L.A. Riders (Revision A) init which isn't need any more - ms32.c: Misc cleanup/modernization - naomi.c . Real fix for "CRC errors" (machine\jvshost.c). Case of last message byte is special 0xD0 value. . Fixed packet encoding (machine\jvshost.c) . M1 keys endian fix & docs . Fixed rom_board rom loading in Dirty Pigskin Football and Extreme Hunting 2. Game seems to run fine now. . Added IO board dump to 'Derby Owners Club (JPN, USA, EXP, KOR, AUS) (Rev B)' . Added missing key PIC for 'Naomi DIMM Firmware Update for CF-BOX (Rev A) (GDS-0042A)'. Misc notes and fixes. . Added initdv2j PIC also to clone Initial D Arcade Stage Ver. 2 (Japan) (GDS-0026) . NAOMI doc corrections - nss.c, sfcbox.c, snesb.c and (MESS) SNES . Converted input code to use slot devices. This means that you now change the emulated controllers (Joypad, Mouse, Multitap, Super Scope) via the Slot Device menu of the UI interface and not anymore from the System Configurations menu. Also, changing controller now requires to reset the system, so please take some time to choose the desired controller *before* starting the game, if you want to play a game that uses special controllers. . Fixed Mouse emulation so that it does not jump back erratically if you keep moving beyond the window border. . Fixed Multitap Adapter emulation so games properly recognize the device and inputs from all 5 controllers are accepted by the games. . Added emulation of the Pachinko controller used by a few pachinko games for Super Famicom. . Added emulation of the Yonezawa Twin Tap controllers, which allow to play with up to 8 players a quiz games for Super Famicom. . Added emulation of the Epoch Barcode Battler unit (even if only as Super Famicom controller, and not as a standalone unit) which is necessary to play Conveni Wars Barcode Battler Senki for Super Famicom. - nwk-tr.c: Documented the network board - peplus.c: Added NO_DUMP for missing CAP chip for 'Player's Edge Plus (PS0615) Chaos Slots'. Use GAME_WRONG_COLOR for games with missing / wrong color CAP chip. - raiden2.c: Fixed MCFG_SCREEN_VIDEO_ATTRIBUTES (VIDEO_UPDATE_AFTER_VBLANK + SCREEN_RAW_PARAMS = fail and VIDEO_UPDATE_BEFORE_VBLANK + SCREEN_RAW_PARAMS = ok!) - ramtek.c . Improved documentation . Added what we know of Volly Industries game info to driver comments - segas16b.c: Small documentation update - triforce.c . Updated docs & verification . Redumped GDROM for avalnc13, avalonsc, gekpurya and vs2002j . Converted tcfboxa and vs42k6ex to CHD and uncommented them. - tx1.c: Reduced tagmap lookups - AGEMAME . bfm_sc2.c: Fixed regression with bfm_sc2 reels . mpu4vid.c . Fixed 6850 ACIA parity. This fixes many sets stops at a "Serial Link Failure" screen in mpu4vid driver (ID 05498). . Reworked SCN2674 Video Display Controller for (MESS) Siemens PC-D. In the mpu4vid driver the SCN2674 sometimes flickers a bit but otherwise looks the same AFAICT. . Added GAME_MECHANICAL flag to a few drivers that should have had it (drivers\mpu4avan.c, mpu4bwb.c, mpu4concept.c, mpu4crystal.c, mpu4empire.c, mpu4mdm.c, mpu4misc.c, mpu4mod2sw.c, mpu4plasma.c, mpu4sw.c, mpu4union.c, sumt8035.c and wms.c) - Back Fire: Removed MSM5205 sound - Baryon - Future Assault: Swapped Bayron sets. The bayrona set had original SemiCom logo'ed labels and the former bayron set didn't have any labels. Also correct the rom labels and made the PCB layout to match the bayron set - verified via a pic of the PCB. - Come On Baby . Updated driver with Guru's notes and added BIOS dump. . Added info on the sound chip - Exzisus: Modernized ROM loading and gfx_layout, removed unused member variables. - Fighting Roller: Added save state support to driver and removed unneeded prefixes - Gun.Smoke and Side Arms: Added build date information to the Gun Smoke sets (ID 05841) and Side Arms sets, based on strings in ROM. - Kozure Ookami . Patched timer over bug. Remarked game as working state, see source notes for further info. . Added protection note for future reference - Magical Tetris Challenge: Replaced corrupt dump with fresh and verified good redump - Pro Soccer: Fixed save state problem as per Tafoid's -str 40 test - Super Bug: Added green color overlay (ID 05838) - Super Real Mahjong P5: Cleanup/modernization - The Deep: Use configured banking - Toki: Use configured banks and modernized gfx layouts - Top Poker: Removed GAME_MECHANICAL flag - Vapor Trail: Verified clocks. Note, doesn't fix the music speedup issue when firing, you have to kludge the clocks lower to do that. There are PAL listings in the driver, but also PALs in some of the romsets, can somebody verify they match and remove? - Vs. Janshi Brandnew Stars: Hooked up Player 2 inputs, removed hazeinputs and misc cleanup/modernization - Input port: Improved responsiveness of 8-way joysticks default behaviour on 4-way games when moves unintentionally become diagonal by favouring the new direction change. - Artwork: Added GAME_REQUIRES_ARTWORK flags to bubbletr, gollygho, suzuka8h and triplhnt - Save state . Give the device when available to the state save subsystem . Added save state support to bloodbro.c, chaknpop.c, cyclemb.c, darkmist.c, dcon.c, exzisus.c, fastfred.c, fuukifg2.c, fuukifg3.c, galpani2.c, galpani3.c, gladiatr.c, goodejan.c, gsword.c, iqblock.c, kaneko16.c, limenko.c, lordgun.c, mastboy.c, mustache.c, panicr.c, pipeline.c, progolf.c, quizo.c, quizpani.c, rabbit.c, raiden.c, retofinv.c, rollrace.c, saa1099.c, scotrsht.c, seicross.c, sengokmj.c, shadfrce.c, shootout.c, sidepckt.c, skyarmy.c, skydiver.c, snowbros.c, speedatk.c, tait8741.c, taxidriv.c, thedeep.c, tecmo.c, tecmo16.c, tecmosys.c, tehkanwc.c, tmmjprd.c, toki.c, vball.c, wc90.c, welltris.c, wink.c, wwfsstar.c, xorworld.c and xxmissio.c . Enabled save state support in bestleag.c, buggychl.c, d9final.c, dreambal.c, gluck2.c, pirates.c, silkroad.c, supduck.c, tnzs.c and wrally.c . Fixed save state in igs011.c and liberate.c - Dipswitch . Fixed dipswitches in armedf.c and segaorun.c . Added DIP locations to opwolf - Fixed rom names in champbas.c, equites.c, mitchell.c, opwolf.c, segas16b.c, segas32.c and shougi.c - Renamed (attckexd) to (attckexd2), (avalon13) to (avalnc13), (avalons) to (avalonsc), (baryon) to (baryona), (baryona) to (baryon), (bigd2) to (zhongguo), (eca) to (ecau), (ecax) to (eca), (sidearmsr) to (sidearmsur1) and (yorizori) to (yorijori) - Description changes of Attack (Set 2) [TTL], Dirt Devils (Export, Revision A), Dirt Devils (Australia, Revision A), Dracula (Pinball), Emergency Call Ambulance (USA), Fighting Vipers 2 (Japan, Revision A), Gun.Smoke (World, 851115), Gun.Smoke (Japan, 851115), Gun.Smoke (US, 851115), Gun.Smoke (US, 860408), Gun.Smoke (World, 851115) (bootleg), Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev B), L.A. Machineguns (Japan), The Lost World (Japan, Revision A), Magical Truck Adventure (Japan), Mobile Suit Gundam: Federation Vs. Zeon, Moero! Justice Gakuen (JPN) / Project Justice (USA, EXP, KOR, AUS) (Rev A), Platoon V.3.1 US, Poke Champ (set 1), Side Arms - Hyper Dyne (Japan, 861128), Side Arms - Hyper Dyne (US, 861128), Side Arms - Hyper Dyne (World, 861129), Ski Champ (Japan), Sonic The Hedgehog 2 (bootleg of Megadrive version), Virtua Striker 3 (USA, EXP, KOR, AUS), Virtua Striker 3 (USA, EXP, KOR, AUS) (Rev B), Yori Jori Kuk Kuk and Zhong Guo Chu Da D - MAME . 3rdparty . Added BGFX latest code to 3rdparty. Added building of BGFX library. Added BGFX as video output. For now rendering info shown only (windows\drawbgfx.c). Added BGFX skeleton to SDL build as well (sdl\drawbgfx.c). Merged in BGFX changes and adapted BGFX draw to inherit from osd_renderer. Made BGFX optional for SLD builds. You have to specify USE_BGFX=1 to enable BGFX. This is a temporary measure until dynamic linking is resolved. BGFX library is set in windows.mak and sdl.mak now. This ensures the library is only build when needed. This is necessary to be able to build MAME on systems without OpenGL support. Support was added for an optional BIN location for executables. The default is still the root folder. Setting BIN=bin e.g. will put executables in bin. . Added dxsdk since lot of things are missing in MinGW headers and libs. Renamed dxsdk .h files so they can be cross compiled on Linux. . Added GENie build system source . Made BGFX compile for Apple GCC 4.2 . Fixed build on NetBSD and possibly Solaris (3rdparty\mongoose\mongoose.c) . Updated of BX, BGFX, GENie and Mongoose. Mongoose change should fixed issue on XP. . Make sqllite3 compile use CCOMFLAGS as well . VIDEO RENDERING SYSTEM . Introduced a comparable "osd_renderer" interface like it now exists for SDL to mainline. Ultimately, this will allow renderers to be placed in modules\renderer and e.g. allow the OpenGL renderer to be used in mainline or the D3D renderer to be used in SDLMAME. . Added a pointer to the render_container to quad_primitives. This can be used to pick up user_settings for gamma, brightness and contrast in case they will ever be supported by the OSD layer (emu\render.c and sdl\drawogl.c). . Make OpenGL renderer available in mainline build as well. This needs to be explicitly enabled by specifying USE_OPENGL=1. More code alignment. . HDC is passed differently to GDI renderer (the only one using it). Merged sdl_window_config and win_window_config into osd_window_config. Use osd_window_config instead of replicating individual member variables in osd_window. . render_containers now always make their own copy of the emulation palette for paletted textures, whether or not there are custom brightness/contrast/gamma settings. Fixes -mt color issues in driftout, raphero, etc. without the additional complexity introduced in MAME 0.158 (which has been reverted). . Converted pcap and taptun network code into modules. Added a netdev provider "none" as a fallback doing nothing. . Better performance for -verifyroms on samba share (emu\audit.c and fileio.c) . WM_DESTROY may be send multiple times (windows\window.c). This also fixes MAME -bench X crashes. . Removed lots of useless sound IRQ trampolines leftover from the pre-devcb era (drivers\backfire.c, bfm_sc4h.c, bfm_sc5.c, bfm_swp.c, bishi.c, cabal.c, deco156.c, gunpey.c, maygayep.c, midas.c, nmk16.c, powerins.h, quizpani.h, shanghai.c, toaplan2.c and zn.c) . Tidy up some Sega S16 stuff in mame.lst, the 'decrypted' comment was misleading (and as we've figured out/dumped the keys to almost every FD1094 we have a set for, irrelevant) There are various decrypted bootleg/suicide repair sets being used on PCBs today tho, a couple were dumped recently. . Show correct version number in file properties/details. Adjusted verinfo code for new version.c format / also added more errorhandling and removed some unnecessary code (build\verinfo.c) (ID 05835) . Removed sstream include (emu\emucore.h) . Allow uppercase characters in ROM names so we can more accurately represent the labels. This is a major bugbear for PCB owners, who are annoyed that we insist they take the time to note every label only for us to then convert everything to lowercase. This just seems to be another legacy leftover from the old days of MAME before we cared so much about label accuracy, and there's no real reason for us to do it as it damages our documentation. This change has been requested multiple times by multiple people (emu\validity.c). - SDLMAME . Converted blit13.h to templates and fixed a number of bugs around different ycc formats . Some fixes for multimonitor fullscreen on Linux and Windows. In Virtualbox, even switchres now works for two monitors. That doesn't imply it will work on real hardware. The probability is higher. On Windows, default render driver now is OpenGL since Direct3d wouldn't work reliably. This functionality currently is limited to the "-video accel" driver. More userspace blitting enhancements. . Defined network API to use on NetBSD. Fixes build on NetBSD (sdl\sdl.mak). . Converted sdl_monitor_info into a proper object . Converted sdl\nedev_pcap.c to dynamic library loading . Fixed SDL1.2 (OSX, Linux and Windows) (sdl\video.c) . All private members for sdl_window_info now start with "m_" . Introduced concept of an osd_renderer. Changed draw code to inherit from this interface. . Aligned code. Once done the window creation code should be in window.c to avoid having near identical code in each render driver (sdl\draw13.c, drawogl.c and drawsdl.c). . Fixed MAME fails to compile in Slackware 14.1 x86_64 with; make: *** [chdman] Error 1 (ID 05837) . Only evaluate sdl- and pkg-config commands once . Fixed natural keyboard input on all platforms for SDL2 builds (sdl\input.c and testkeys.c). Make sure testkeys ends up in $(BIN) (sdl\sdl.mak). . Reworked the -video soft driver so it works like Accel and OpenGL. That will enable the move of some now identical functions back to sdl\window.c. . Fixed GCC 4.9 + Clang compiles (sdl\drawsdl.c) . Moved all window related code to window.c (sdl\draw13.c, drawbgfx.c, drawogl.c, input.c, video.c and sdl\window.c) . Removed some passing around of running_machine where it is not needed (sdl\input.c, video.c and window.c) . Get rid of SDL "resize" render method . Set SDL_HINT_MOUSE_RELATIVE_MODE_WARP only for SDL >= 2.0.2 (sdl\window.c) . Emscripten target now uses SDL2 . Added a pointer to the render_container to quad_primitives. This can be used to pick up user_settings for gamma, brightness and contrast in case they will ever be supported by the OSD layer (emu\render.c and sdl\drawogl.c). . Temporarily break SDL1.2 Xinerama Multi-Monitor Support as announced on mailing list . Removed start_viewscreen, fix sdl.mak. . Added BASELIBS for MACOSX_USE_LIBSDL (sdl\sdl.mak) . Embedded verinfo property list in OSX binaries (sdl\sdl.mak) . Make OpenGL renderer available in mainline build as well. This needs to be explicitly enabled by specifying USE_OPENGL=1. More code alignment. . HDC is passed differently to GDI renderer (the only one using it). Merged sdl_window_config and win_window_config into osd_window_config. Use osd_window_config instead of replicating individual member variables in osd_window. . Fixed fullscreen toggling (SDL2) on OSX. Simplified multithreading code-paths (via defines). . OS/2 patches for SDLMAME v0.158 - JSMESS: Fixed more breakage - MESS . AMI S2000 CPU: Added CPU and DISASM. Added S2000 opcode handlers, most opcodes and some I/O opcodes. Improved d-latch. . NEC uCOM-4 MCU: Added core and disassembler. . TMS0980 CPU: Mnemonics to uppercase (tms0980\tms0980d.c) . Floppy: Verified gaps and base class for KAY format (formats\kaypro_dsk.c). Beta Disk interface convert to wd_fdc. Added empty formats[] member, to keep Clang happy (formats\flex_dsk.c). Enabled I_IMM to be set (machine\wd_fdc.c). Reduced the flux inversion pulse duration to the minimum (machine\wozfdc.c). Support oversized Apple II EDD images (formats\ap2_dsk.c). . Added missing generation of MESS resources. Still doesn't fix the missing details (mess\osd\windows\windows.mak). . Removed duplicate and unused code in emu\softlist.c (compare lib\util\cstrpool.c) - Compiling . Fixed linking tools against system libraries (makefile) . Disabled some Visual Studio warning (windows\vconv.c) . Restored winprefix.h change by Peter Ferrie. Also moved some code around and only defined strtoll when it is actually necessary. Some cleanups. . Work around Emscripten linking issues by avoiding ar altogether (makefile). See https://github.com/kripken/emscripten/issues/2619 . Compile fix for MSVC 2012 (lib\lib.mak, windows\vconv.c and winprefix.h) . Added makefile define CPP11 to compile C++ code as C++11. Moved Clang C++11 warning supression into CPP11 define. . Additions for Clang 3.6 and cleanups. Also enabled some warning by default again. They were disabled because of bugs in Clang which have been fixed by now. Unfortunately the disabling predates the proper version handling, so it's not clear for which versions they should be ignored. So if they come up again we just need to re-added them by checking for the proper version (build\flags_clang.mak). . Fixed Clang 3.4 compilation (build\flags_clang.mak) . Converted makelist and verinfo implementation to Python . Make verinfo.py capable of producing Info.plist for OSX. Re-link emulator binary if version source file changes. If verinfo.py fails don't touch the output file, so subsequent builds won't think it's up-to-date. . Don't use $(DEFS) for moc (sdl\sdl.mak and windows\windows.mak) . Fixed tiny build when there are no buses - Debugger . Fixed debugger crash when setting bytes per chunk to more than current bytes per line (debug\dvmemory.c) . Make the (watch|break)points notify correctly in response to clicks. . Use uppercase ID in break/watchpoints windows to match how it's printed on the console; notify disassembly views on changing breakpoints to prevent Qt debugger menus becoming stale. . Make opening a break/watchpoints window work better if there are already ten or more of them . Many fixes for breakpoints/watchpoints views: Fixed sorting - qsort needs a ternary -1/0/1 comparator. Get rid of the redundant enums - using a funciton pointer is far more concise. Reduced number of allocations and use less expensive functions when updating. Fixed off-by-one error that could cause a crash when clicking the views. Get rid of double iteration. . Cocoa . Break up the MacOS X Cocoa debugger by class, it was ugly crammed into a single file. . Far better handling of font metrics in Cocoa debugger, and more efficient drawing. . More intuitive command/expression history. Check which control sends event. Use newer interfaces. . More functionality, including (break|watch) points view. . Map visited to a background colour. Allocate colours once only. Make disassembly view context menu easier to use again. Console feedback for breakpoint changes. Update views for breakpoint changes. Map Option-/Command-click to middle/right click. Disassembly/memory views inherit focus from parent window. . Allow run-to-cursor and breakpoint set/clear/enable/disable for inactive CPUs . Added devices window to Cocoa debugger . Try not to crash on hard reset . Intuitive mouse dragging on views supporting selection, improved click-through behaviour. . Moved breakpoint control code out of view class - it doesn't really belong there. . Added preliminary device detail windows . Make resizing the device info windows work nicely (debugger\osx\deviceinfoviewer.m). Better autosizing for windows. . Allow copying visible portion of debug view to OS clipboard. Allow paste from OS clipboard to debugger windows (use context menu). . Disabled decrease bytes per line menu items when only one chunk per line is displayed . Suppress trailing whitespace on copy, draw background to edge and more efficient drawing (osx\debugview.m) . More intelligible auto window position code . Added a whole line scroll mode to make breakpoints/watchpoints header work nicely . QT . Make QT debugger file names match class names without redundant prefix . Allow breakpoint toggle and run-to-cursor on non-current CPUs in Qt debugger . Qt debugger dynamically updates menu items controlling disassembly views . Win32 . Port Windows debugger to C++, fixed some memory leaks, make menus and window resize a bit nicer. . (Break|Watch)points window for Windows debugger . Added enable/disable breakpoint from disasm window menus . Make behaviour of breakpoint control a bit more consistent with other debugger implementations 0.158 - New games: Come Back Toto, Endless Riches (Ver 1.7), Pop'n Music 3 (ver JA-A) and Star Trek (Head On hardware) - New Working games: Final Fight Revenge, NBA Jam Extreme, Tecmo World Cup '98 and Touryuu Densetsu Elan-Doree - New Non-Working games: Missile-X [TTL] and Shakatto Tambourine (Rev B) (GDS-0002B) - New clones: Adventure Quiz Capcom World 2 (Japan 920611, B-Board 90629B-3, no battery), Black Widow (prototype), Dungeons & Dragons: Shadow over Mystara (Asia 960208), Over Drive (set 1), Over Drive (set 3) and Space Train - New PEPlus games: Player's Edge Plus (PP0038) Standard Draw Poker, Player's Edge Plus (PP0116) Standard Draw Poker (Mirage), Player's Edge Plus (PS0366) Double Diamond Deluxe Slots, Player's Edge Plus (PS0372) Double Diamond Deluxe Slots and Player's Edge Plus (PS0373) Double Diamond Deluxe Slots - H8 CPUs: Fixed some typos (cpu\h8\h8_sci.c). Fixed function definition of description() (cpu\h8\h8make.py). - I386 CPU . Store all 32-bits of gdt and idt base with 16-bit sgdt and sidt. Testing shows lgdt and lidt only load 24-bits (cpu\i386\i386op16.inc). . Added disassembly of opcodes MOVHLPS and movLHPS. They differentiate from movlps and movhps by bits 7-6 of the modrm byte (i386\i386dasm.c). - M68000 CPU: Implement FTRAP instruction - M68020 CPU: Added "68020 with FPU" CPU type - PENTIUM CPU: SSE opcodes improvements: Added opcodes MOVHLPS MOVLHPS. Safer implementation of PACKUSWB PACKSSDW SHUFPS UNPCKLPS UNPCKHPS. The safer implementation is needed in cases where the source and destination registers are the same (cpu\i386\pentops.inc). - PowerPC 4xx/6xx CPUs: Fixed unterminated strings in powerpc debugger (cpu\powerpc\ppccom.c) - SH-2 CPU: Fixed compile? (cpu\sh2\sh2drc.c) - Pokey sound: Fixed (MESS) Acid5200 pokey_default test. Make Acid5200 pokey_seroc test pass (http://www.virtualdub.org/altirra.html). - QS1000 sound: Added save state support - TIA sound: Added save state support - 6522 VIA: Added missing save states, fixes at least Konkyuu no Hoshi save state problem. - CHDMAN . Fixed ThreadSanitizer data race warnings (lib\util\chd.c) . Bail out in chd_file::hunk_info() on unknown compression type . Added a few more CHDMAN tests . Added -s/--size parameter for "createhd" to create blank harddisk based on size and sector size. Also added unit tests for the new option / moved filesize validation out of guess_chd(). . Added missing catch in chd_file_compressor::async_read() and chdman main() happens when e.g. disk is full. - Discrete Netlist . Most prominent one is a "frontier" element which on a low to high impedance node will, no other connections provided. Let the system create two matrices. . Fixed Visual Studio source analysis warnings (devices\nld_9316.c) . Fixed bug highlighted by Visual Studio Code Analysis (netlist\nl_setup.c) . Removed dependencies on MAME headers in netlist code . Fixed memory allocation in netlist code. This caused a number of memory leaks to disappear. . Introduced an nl_double type. This will be followed by an nl_float type for certain components (mostly matrix and vector). Fixed crash caused by 4066 DIP device. Fixed nltool "-ld" listdevices. . More netlist code reschuffle to separate setup from run . Fixed Clang (most likely > 3.4) compile (tools\nltool.c) - HD63484 video: Added save state support - Konami Custom: Disabled some logging in K001005 - NB1413M3 Custom: Anonymous timer isn't anonymous anymore - Sega Custom . Updates to SEGA's 315-5881 encryption based on new findings from Virtua Striker 2 '98 . Some changes to the 315-5881 to allow basic multiple stream support, Astra SuperStars needs this - we were ignoring a size value in the header, when the 'size' is reached the stream ends, and a new header needs to be read. I need to review the changes w/regards the NAOMI code later (don't have the material to test here) also this will need looking at w/regards compressed streams, as they can be mixed. The data decrypted from astrass is now a 100% match for the data that was extracted from the Saturn version . Two new key bits for SEGA's 315-5881 encryption (machine\315-5881_crypt.c) . Let's maintain the '315-5881- keys in 'machine\315-5881_helper.c' until the key format is finalized as things stand the entire set of keys is of arbitrary bit order / poliarity / number of bits and just based on how our implementation works, storing them in files just means a lot of files have to be regenerated each time our understanding changes. I've left placeholder ROM_LOADs (with invalid crc/sha1s, compiled out) for placing the keys back once the format IS final. The list in 315-5881_helper.c needs updating / syncing with current knowledge, would appreciate somebody doing this. I'm going to see if I can see where / how the chip hooks up on Model 2 and Model 3, and if we can pass those checks with our current code. . Added 315-5881 labels & sort. Key scheduling simplifications. . Partial reverse enginnering of the use of security PIC labels within 315-5881 keys . model2.c . Prepared driver for 315-5881 protection . Dynamite Cop now returns the same values with the key + decryption code as the previous hardcoded returns (strangely I have to return a dummy value of 0x0000 before the start of the stream tho, the old sim did this too, cpu bug??). . Added 315-5881 key for Pilot Kids and Zero Gunner. This fixes AddressSanitizer: global-buffer-overflow in Zero Gunner (ID 05507). . model3.c . Hooked Star Wars Trilogy (Revision A) (Model3) to the 315-5881 decryption function (stream returned matches simulation). Currently unhooks the other games from the sims etc. I'll address this shortly. . Hooked up the 315-5881 to Virtua Striker 2 '98 and clone Virtua Striker 2 '99, note this actually *fixes* them, allowing you to kick off, with the old simulation the game would hang. Same as with no simulation, so I guess it was hooked up incorrectly? . Reconnect 315-5881 protection in some Model3 sets, need to investigate which other ones use it. . Added 315-5881 key for Daytona USA 2, Dirt Devils (fixes HUD gfx), Emergency Call Ambulance, Fighting Vipers 2, L.A. Machineguns, Magical Truck Adventure, The Ocean Hunter and Virtual On 2. . Added the 315-5881 to a few things in model3.c so that we're ready for keys when they're figured out . Added 315-5881 key for Spikeout and Spikeout Final Edition. Note: Didn't make them run in MAME, but I managed to compile SuperModel and extract the data from RAM for key finding). . naomi.c . Updates to SEGA's 315-5881 encryption based on new findings from (Model3) Virtua Striker 2 '98 . Updates to 315-5881 keys: clubkrte, toukon4, vf4cart, vstrik3c, wldkicks and wldrider . stv.c . Using actual Sega 315_5881 decryption for Astra SuperStars set . Some changes to the 315-5881 to allow basic multiple stream support, Astra SuperStars needs this - we were ignoring a size value in the header, when the 'size' is reached the stream ends, and a new header needs to be read. I need to review the changes w/regards the NAOMI code later (don't have the material to test here) also this will need looking at w/regards compressed streams, as they can be mixed. The data decrypted from astrass is now a 100% match for the data that was extracted from the Saturn version. . Fixed decompression case for Tecmo World Cup '98 title screen (machine\315-5881_crypt.c) . Final Fight Revenge promoted to working . Protection keys for Elan Doree, Steep Slope Sliders and Radiant Silvergun . Kill off old ST-V protection simulation code, all games now use the 315-5881 emulation (except Decathlete of course, because that's a completely different chip). . 315-5124 VDP: (MESS) Misc sms/gamegear improvements: Renamed the gear2gear port to EXT port, after reading the references in the official GG documents. Inverted Y1 pin signal bits: now high is 1 and low is 0. More complete Y1 behavior: goes low only for transparent pixels. Fixed color of column 0 when it doesn't completely entered in the active display. Improved behavior of sprite overflow, to not be flagged when VINT is active. The new Y1 pin behavior of the SMS VDP is based on Charles' findings and TMS9918 manual. - Taito Custom: Removed dead code in video\pc080sn.c, video\tc0080vco.c, video\tc0100scn.c and video\wgp.c - TIA video: Added save state support - Z80 DART: Save diserial state, fixes (MESS) Bondwell 12/14 SIO test error after loading a state. - 20pacgal.c: Added inputs for Service Mode Volume control (+/-) for specific to 25pacman - aleck64.c . Actually default Analog Y was changed in machine\n64.c some time ago. Fixed Aleck 64 general inputs. Protection notes. . Debugging (E90 protection). Aleck64, already somehow playable. Palette check. Looks more likely, and at least pieces all have different colors now. . Eleven Beat . Replaced BAD_DUMP for Eleven Beat with fresh and verified good redump from brizzo . Made Eleven Beat to surpass "Joystick Type Error" message. Crashes at kick off though. . Input improvements for Eleven Beat, game plays well (albeit slowly) with -nodrc. Also, took off NO_SOUND flag. . Magical Tetris Challenge: Added E90 protection handlers - calchase.c: Minor comment fixes - calomega.c: Greatly reduced tagmap lookups - dambustr.c, galaxold.c, scobra.c and scramble.c: Removed some unused code - ddenlovr.c and dynax.c: Small cleanups, moved ddenlovr specific variables (includes\dynax.h) into ddenlovr_state. - dgpix.c: Reduced tagmap lookups - dkong.c: Added some documentation and confirmations on upgrade kits. - firetrk.c: Added output so artwork can display current gear settings. Ignore previous push request, missing braces. - gaelco3d.c: Small optimization - gticlub.c: Reduced tagmap lookups - gumbo.c: Make games use OSC derived clock speeds - kinst.c: Added missing save states to machine\idehd.c, fixes kinst.c save state regression. - midtunit.c, midwunit.c and midyunit.c: Reduced tagmap lookups - model2.c . Prepared driver for 315-5881 protection . Dynamite Cop now returns the same values with the key + decryption code as the previous hardcoded returns (strangely I have to return a dummy value of 0x0000 before the start of the stream tho, the old sim did this too, cpu bug??). . Added 315-5881 key for Pilot Kids and Zero Gunner . Moved Decathlete (stv.c) protection in a device, moved the Dead or Alive (model2.c) protection sim there too, added devices to driver (preparation for refactoring, they're the same device, just underused by Dead or Alive). . Kill old sim code - model3.c . Hooked Star Wars Trilogy (Revision A) to the 315-5881 decryption function (stream returned matches simulation). Currently unhooks the other games from the sims etc. I'll address this shortly. . Hooked up the 315-5881 to Virtua Striker 2 '98 and clone Virtua Striker 2 '99, note this actually *fixes* them, allowing you to kick off, with the old simulation the game would hang. Same as with no simulation, so I guess it was hooked up incorrectly? . Reconnect 315-5881 protection in some Model3 sets, need to investigate which other ones use it. . Added 315-5881 key for Daytona USA 2, Dirt Devils (fixes HUD gfx), Emergency Call Ambulance, Fighting Vipers 2, L.A. Machineguns, Magical Truck Adventure, The Ocean Hunter and Virtual On 2. . Added the 315-5881 to a few things in model3.c so that we're ready for keys when they're figured out . Added 315-5881 key for Spikeout and Spikeout Final Edition. Note: Didn't make them run in MAME, but I managed to compile SuperModel and extract the data from RAM for key finding). . Kill old sim code - namcos2.c and namcos21.c: Greatly reduced tagmap lookups in includes\namcos2.h and machine\namcos2.c - namcos21.c: Use region_ptr_finder to reduced tagmap lookups - naomi.c . Game name corrections & docs . Redumped vstrik3c, both existing and new dumps were BAD, made one good-looking from them. . Updates to SEGA's 315-5881 encryption based on new findings from (Model3) Virtua Striker 2 '98. Updates to 315-5881 keys: clubkrte, toukon4, vf4cart, vstrik3c, wldkicks and wldrider . Fixed outputs in machine\jvs13551.c . Mahjong panel simulation. Note: There is more errors in JVS (host?) producing JVS checksum error's, resulting wrong reading of KEY2 line. . Handle Maple reset pattern in machine\mie.c, made a better hack for it and changed frequency to more real (yes, its a 16 or more MHz Z80 core). Findout why SH-4 game code doesn't wait long enough for internal firmware RAM test completes after reset. . Temp workaround CRC errors in machine\jvshost.c - neogeo.c: If the return type is bool, use bool constants and not integers (machine\ng_memcard.h) - peplus.c . Minor note about the MG0183 set using a Dallas DS1216 SmartWatch RAM for RTC functions . CG2374 graphics are not specific to the X002374P poker data set. Move the CG2374 down into the X000055P sets to retain them - segahang.c: MCU simulation has been fixed. This fixes lives counter doesn't work properly in Space Harrier (ID 00995). - senjyo.c . Added irq ack mechanism in Senjyo HW and removed long standing hack from the driver (ID 05790) . Removed unneeded include, member variables and suffixes. . Added member declaration to senjyo.h - stv.c . Using actual Sega 315_5881 decryption for Astra SuperStars set . Some changes to the 315-5881 to allow basic multiple stream support, Astra SuperStars needs this - we were ignoring a size value in the header, when the 'size' is reached the stream ends, and a new header needs to be read. I need to review the changes w/regards the NAOMI code later (don't have the material to test here) also this will need looking at w/regards compressed streams, as they can be mixed. The data decrypted from astrass is now a 100% match for the data that was extracted from the Saturn version. . Fixed decompression case for Tecmo World Cup '98 title screen (machine\315-5881_crypt.c) . Final Fight Revenge promoted to working . Protection keys for Elan Doree, Steep Slope Sliders and Radiant Silvergun . Kill off old ST-V protection simulation code, all games now use the 315-5881 emulation (except Decathlete of course, because that's a completely different chip). . Moved Decathlete (stv.c) protection in a device, moved the Dead or Alive (model2.c) protection sim there too, added devices to driver (preparation for refactoring, they're the same device, just underused by Dead or Alive). Start using callbacks for Decathlete style decompression (start of refactoring). - taitottl.c: Minor comment fixes. Gamelist additions and subtractions. - twinkle.c: The M68000 & SPU board now process commands, some sound f/x play now. - 10-Yard Fight: Fixed save state problem, removed unneeded prefixes. - AGEMAME . bfm_sc2.c: Fixed debug assertion (ID 05816) . maygay1bsw.c: Fixed many sets crashes after OK (ID 05811). Fixed "FATALERROR: Missing some required objects, unable to proceed" in m1bankrl and clones (ID 05812). . mpu4.c: Fixed "FATALERROR: Missing some required objects, unable to proceed" in m4nod set (ID 05812). - APB - All Points Bulletin: Output APB marquee flashing lights via LED0 & LED1 - Armed Police Batrider: Fixed video\gp9001.c. This fixes a portion of the boss's ('Gob-Robo') face is missing (ID 05832). - Bogey Manor: Added missing save state and fixing noted save state regression. Also removed unneeded prefixes. - Boulder Dash: Fixed MAME's video timing. This fixes fadeout/fadein on screen is the wrong speed slightly off (ID 01214) - Disco No.1: Replaced clone (Rev.F) dump with a new one. New dump is 1 bit difference, looking at the dumps it seems to me that the old one is just bad. - Drag Race: Added outputs so artwork can display current gear settings - Egg Venture: Removed Allied Leisure mention in manufacturer of clone eggventra - FAX: Fixed FAX and FAX 2 save state problem. Try to avoid postload, review appreciated. - Funky Ball . Refactor Funky Ball driver flash access to use intelfsh.c via bankdev, doesn't improve anything tho. . Fixed some driver notes, it was calling the sound program the main program in a few places. Fixed region sizes. - Golden Poker Series "Joker's Wild" . Updated year. Internal credits give a copyright date of 1991. . Added save state support to SegaJW driver, also changed flag from GAME_NO_SOUND to GAME_IMPERFECT_SOUND, since sound does seem to work. - Mario Bros: Partial netlist sound implementation for Mario Bros. Luigi sound is missing. By default, the previous discrete.h based sound is compiled. Those curious can change OLD_SOUND to 0 in mario.h. - Ms. Pac-Man: Fixed clones mschamp and mschamps save state problem - NASCAR Racing: Added protection key. This romboard uses the same encryption as NAOMI M1/Actel-type cartridges. - NBA Jam Extreme: Implemented ROM banking and game coins up (Game now playable). This fixes game hangs at black screen (ID 02515). - NFL Blitz '99: Added missing save state to machine\atahle.c, fixes NFL Blitz '99 save state regression. - Penky: Added missing save state, fixes Penky save state problem. - PinMAME: Added simple code to draw the video screen in Caveman (Pinball/Video Combo, set 1/2) - Psychic 5: Idenfitied 'psychic5a' as the World / Overseas version, and the current parent as the Japan version, swapped them and named them as such (see http://tcrf.net/Psychic_5). - Robotron: Renamed joystick inputs - Rolling Thunder: Removed TODO about clone Rolling Thunder (rev 1) crash. Nobody was able to reproduce it (ID 02386). - Sprint 1: Added output so artwork can display current gear settings - Stadium Hero: Reduced tagmap lookups - Super Punch-Out!!: Re-added old protection hack for now. This fixes game automatically resets at KO Time Best 3/Hit Average screen during attract mode (ID 05828) (ID 05829). - Tetris the Absolute The Grand Master 2: Fixed refresh rate (ID 04662) - Top Landing: Fixed non-terrain colors in Top Landing (video\taitoair.c). Also fixed out-of-bounds palette crash bug in it. - Vapor Trail: Removed unused memory pointers (includes\vaportra.h) - Input port . Added a PORT_DEVICE flag to identify inputs of any kind which are connected to a device different from the root_device. These are the dynamical inputs and it might be useful to be able to catch them without performing a string comparison of the device tag against the root_device one (emu\ioport.h). . Group inputs in UI based on the device they are attached to and display their tag only once instead of at each input. - Save state . Factor-out presave/postload dispatchers (emu\save.c) . Added save state support to bogeyman.c, calomega.c, dec0.c, dgpix.c, eolith.c, eolith16.c, hyhoo.c, paradise.c, pastelg.c, segajw.c, senjyo.c, silvmil.c, stadhero.c, stfight.c, stlforce.c, strnskil.c, tourtabl.c, vegaeo.c and xyonix.c . Fixed save state in 10yard, blitz99, bmcbowl, exidy.c, kinst.c, mschamp and mschamps - Renamed (overdriv) to (overdriva), (psychic5) to (psychic5j), (psychic5a) to (psychic5) and (splitsec) to (spltsecp) - Description changes of Over Drive (set 2), Player's Edge Plus (X000055P+XP000028) Deuces Wild Poker (Horseshoe), Player's Edge Plus (X002374P+XP000112) Super Aces Poker, Psychic 5 (Japan), Psychic 5 (World), Reel'N Quake! (Version 1.05), Shakatto Tambourine Cho Powerup Chu (2K1 AUT) (GDS-0016), Shakatto Tambourine Motto Norinori Shinkyoku Tsuika (2K1 SPR) (GDS-0013), Split Second (Pinball) and Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart) - MAME . Palettes are now copied during get_primlist. This should fix multithreading related palette issues. Along the way also added constructors to SDL osd structs. Changed related malloc to global_alloc. Added a copyfrom routine to dynamic_array. Minor code simplifications. . Added zeroing of texcoords to reset() of render_primitve. The omission of doing so may have cause strange drawing issues in case the code assumes these to be 0.0f (emu\render.c). . UI . Fixed for real the wrong confirmation menu being prompted when leaving file creation. Also, better backspace support in the file creation menu (so that it work on Mac too) (imagedev\floppy.c, ui\filesel.c and imgcntrl.c). . Added "Reset" option to Dipswitch and ConfSettings menu, as well as to the File Manager, for consistency with other menus where an hard reset is of help. Fixed Diplocation drawing so that it remains on screen also when highlighting switches without locations. While at it, I have also cleaned up a bit the handling of "Reset" in the slot and bios menus (ui\filemngr.c and miscmenu.c). . Minor improvement to UI Tape Control menu, so that when multiple cassettes are available it is clear which drive controls are displayed (see e.g. sol20 or pet2001 with "-tape2 c2n" slot). Also cleaned up some function names and better described the usage of the devctrl.h base class. Converted (MESS) UI barcode reader menu to use devctrl base class so to avoid the need of an intermediate menu where to select the reader to act on. . Start displaying the device tag close to input names for the dynamical inputs which use PORT_DEVICE, so to avoid some weird quirks in the input menus when slot devices are modified (ui\miscmenu.c). . Added "[Internal]" string to slot options that are not user-configurable and fixed some internal options displayed as "scrollable" (ui\miscmenu.c) . Converted back osd_interface into a pure interface. The previous version just exhibited any member of osd_interface to the core. This one limits core access to osd to those functions originally specified. There is room for improvement going forward here in the design. Left FIXMEs where appropriate (emu\clifront.c). . Simplified Image Information code and made it fully display for systems with many image devices. Note: Compare old and new with a system like smssdisp to see what the "fully display" refers to. . OSD Updates: OSD can now use OPTION_COMMAND; added execute_command handler to osd_interface. Moved list_network_devices and list_midi_devices to OSD. . Avoid inline OSD calls in header file (emu\devfind.c) . Splitted UI code for input mapping and slot option menus from miscmenu . Slightly reworked the UI File Manager initial menu to show which device each media belongs to, so that if you change slot options (e.g. adding further floppy drives to the emulated machine) you can more easily spot which image is currently mounted in each drive. Next, I plan to group media switches by owner, so to avoid unnecessarily long menus. . Re-arranged File Manager a little bit, so that image devices are grouped by owner, like Inputs / Dips / Configs menus. . Added barebone menu for device-specific options. click on any slot device option to see whether it is currently mounted or not, and which additional options depend on the selected value. Eventually, mounted devices should be configurable from this menu. . Fixed bug where slot options set via internal UI did not properly create their sub-options. To see the bug, try to manually set from the UI "com" in a PC ISA port or "multitap" in the SMS driver in an old build, then reset (to apply changes) and re-enter the Slot Options menu just to see that the sub-options (the com serial ports and the multitap joypads) are not configurable because the core was not "informed" of their addition. no bug was present if the options were set from command line or from QMC2, so it was not so easy to spot the issue. . Stop the game selector reporting systems with no roms as missing files. When launching systems with mandatory carts, either from command line or from the game selector, prompt the user with the file manager menu so that he can mount a game where needed, instead of killing emulation with an error. It is now finally possible to launch nes and snes and a2600 (and a few more) from the internal system selector! also MESS doesn't error out anymore if you launch such systems with no carts mounted from command line. In short: emulation finally behaves as users typically expect! . Centralized game info and image info menus to a common source file (creatively named ui\info.c) . Improved File Manager so that attempts to launch softlist entries without having the necessary files don't kill emulation but simply display a message to the user. . Allow -str run to skip the file manager for systems with mandatory carts . Fixed bug where software items that shall create new image devices (e.g., passthru carts) or new slot options, failed to do so when loaded through the File Manager in the internal UI. To see the bug, try to launch with previous code nes with no options, then mount ggenie cart and, after the reboot, try to mount any other game in the -cart2 media switch. System will reboot, but only ggenie remains mounted. Alternatively, launch c64 and manually mount cbmieee from the UI. After reboot the serial slot options in the Slot Options menu are not configurable, because the core was not "informed" of their addition, and any cart you try to mount in -cart2 will be ignored, because the new media switch is not acknowledged by the core. Once again, from command line everything was fine, and thus the issue was hard to spot. . Splitted a few more menu entries from miscmenu.c to separate files, so to avoid having too much assorted stuff in miscmenu.c (now it is down to a reasonable size). . Added BIOS settings and keyboard/keypad inputs in the device option menu (ui\devopt.c) . Slight improvement on device input ordering + small cleanup (ui\inputmap.c and sliders.c). The ordering is still not optimal, imho, but at least if you launch SMS with a lphaser and a paddle you don't get anymore their input mixed in the menu. I will probably get back to this after next release. . Minor fix + additions to the barcode reader emulation (machine\bcreader.c) . Removed inlining of non-performance relevant exceptions and fatalerror (emu\emucore.c) . Link state entries to parent state interface. In device state, link a single device_state_entry to its parent device_state_interface and expose a parent_state() getter (emu\distate.c). . Fixed -fsanitize=null error in address_space::prepare_map() (emu\memory.c) . Converted sound modules to be osd_modules. Simplified code. . Added per-game parameters: Per-game parameters are (tag, value) pairs that follow the same tag structure than everything else. They're added within a ROM section with ROM_PARAMETER(tag, value). You look them up through the device method parameter(tag) which returns the string, or "" if not present. A *lot* of drivers can benefit from that stuff. It should kill most game-name keyed tables, and the alternative approach of bazillon-of-driver-inits. Possible evolutions, if someone wants to do it: Output them in -listxml. Push the softlist parameters present in the XML through that. Maybe allow to change/set them through the command line. . Changed pcap warnings to be verbose (windows\netdev_pcap.c) . Removed lots of useless sound IRQ trampolines leftover from the pre-devcb era (drivers\actfancr.c, aerofgt.c, alpha68k.c, crospang.c, dec8.c, deniam.c, fuukifg2.c, fuukifg3.c, galspnbl.c, hcastle.c, itech8.c, lordgun.c, metro.c, midtunit.c, nemesis.c, nmg5.c, oneshot.c, onetwo.c, prehisle.c, psikyo.c, psikyo4.c, psikyosh.c, stadhero.c, snk68.c, snowbros.c, spbactn.c, spdodgeb.c, spy.c, suna8.c, tbowl.c, tecmo.c, toaplan1.c, toaplan2.c, twincobr.c, wardner.c and yunsun16.) . Description changes for assorted devices to improve readability/uniformity - SDLMAME . Fixed ThreadSanitizer warning about unlocking a non-locked mutex (osd\sdl\sdlsync_tc.c) . Fixed ThreadSanitizer data race warnings (sync\work_osd.c) . Fixed uninitialized memory usage/data race in osd_work_item_wait + cleanups. Appears to be a Linux-only issue (sync\work_osd.c and osd\windows\winwork.c). . Fixed a memory leak in draw13.c and a clipping issues with vertically flipped textures. Simplified the code and added consts were appropriate. This was a preparation for using SDL2.0 texture rotation going forward (sdl\blit13.h and draw13.c). . Fixed compiling with SDL 1.2, BASELIBS need X11 in this case (sdl\sdl.mak). . Renamed draw[sdl2|ogl|sdl]_window_get_primitives and related variables to set_target_bounds. That's what is really done here. Moved common code back to window.c. . Moved sync related osd stuff to osd\modules\sync . Merged winwork and sdlwork into osd\modules\sync\work_osd.c. Moved miniwork.c to osd\modules\sync\work_mini.c. The makefile now adds either a OSD_SDL, OSD_WINDOWS or OSD_MINI define to DEFS. This was necessary so that work_osd.c could determine the build on a OSD level. . Some small work_osd.c refactoring and lots of TODOs (sync\work_osd.c) . Use templates to implement spinning in work_osd.c. This will fixed Radikal Bikers and other games using video\poly.h. Minor code path optimization. . Only allocate main threads when WORK_QUEUE_FLAG_MULTI / some logging of thread count / fixed Clang warning (sync\work_osd.c) . Limit WORK_QUEUE_FLAG_HIGH_FREQ to 3 threads since we don't scale well above / logging tested with n64dd on Windows with Intel Sandy Bridge i7-2600k with GCC and Visual Studio 2013 compiles with and without optimization (sync\work_osd.c). . Lowered SPIN_LOOP_TIME / TODOs. This at least greatly reduces the CPU load when running n64dd. . Fixed linking of chdman (sync\work_osd.c) . Proposal to fix MT05682 (SDL resize issue). Please check and provide feedback whether MT05682 can be closed. . Window height was 0 after a switch from fullscreen to windowed if SDLMAME was started in fullscreen. . Fixed -switchres. This is now working on Ubuntu 14.04 again. Performance will vary on your hardware and drivers and I suspect SDL to be partly broken. . Driver accel now supports "-filter", i.e. bilinear filtering (sdl\draw13.c). . Removed maximum thread limit for WORK_QUEUE_FLAG_HIGH_FREQ queue on Windows with the new SPIN_LOOP_TIME value it now scales (sync\work_osd.c) . Use the non-yield implementation of spin_while() for all platforms futher tests have shown there is no actual speed difference - and it reduces the CPU load even more. Small formating change (sync\work_osd.c). . Use n threads when n CPUs are detected since modern CPUs have at least two cores per CPU also makes -np use the actual number supplied across all platforms (sync\work_osd.c). . Added OSD_EVENT_WAIT_INFINITE and implemented it properly for all platforms (osd\modules\sync\osdsync.h, sync_ntc., sync_os2.c, sync_sdl.c, sync_tc.c, sync_windows.c and work_osd.c) . Fixed compile of sync_sdl.c . Default back to numproc-1 threads for WORK_QUEUE_FLAG_MULTI (sync\work_osd.c) . Fixed linking for Windows SDL cross-compilations: Library names must be lower-case when cross-compiling from Linux (-limm32 instead of -lImm32) and ntohl() needs -lws2_32 (sdl\sdl.mak). . Moved thread count printing to KEEP_STATISTICS / prevent KEEP_STATISTICS loop from going out-of-bounds (sync\work_osd.c) . Fixed testkeys linking on Windows (sdl\sdl.mak) . Use same SPIN_LOOP_TIME value on all platform (sync\work_osd.c) . Fixed bug in work_osd.c causing discrete sound to crash (sync\work_osd.c) . Restored path creation in SDLMAME builds on Windows (windows\winfile.c) (ID 05763) . Moved osd MIDI stuff to osd\modules\midi. Needed to touch a couple of other files so that MAME compiles and links. Tested SDL build (Linux/Windows). . For Unix and Windows, moved osd_ticks() and friends to osd\modules\lib. For mainline and SDL Windows the implementations slightly differed. Dropped the SDL one in favour of mainline Windows osd_ticks() implementation. Moved OSX osd_sleep and friends to modules\lib. Aligned sdlfile.c to winfile.c (which is actually included by SDL). Consequently removed quite some dead code spread across different files. . Get machine for cursor_state from somewhere -> *m_machine (debugger\debugqt.c) . Untangled options inheritance. Previously code locked in osd_options locking any potential future OSD to these. Options inheritance now is core_options, emu_options, cli_options, osd_options and [sdl|win]_osd_options. This required a number of minor changes to other code as well. Tested on Linux-SDL, Windows-SDL, Windows-mainline and OSX-SDL. . Removed some machine() references (osd\sdl\input.c, osdsdl.h, sdlmain.c, sdl\video.c and sdl\window.c) . Aligned strconv.h (same code on SDL and mainline). Aligned font code between SDL and mainline. . SDL keeps adding SDL_HINTs with every patch release (osd\sdl\window.c) . Make 'auto' on SDL Windows mean 'OpenGl' The MACOSX build is already this way so hopefully not an issue. Non-GL performance on Windows is terrible (I struggle to get >100% on pacman) (sdl\video.c). . Fixed SDLMAME build on windows without QT debugger (sdl\sdl.mak) - MESS . TMS0980 CPU: Fixed s_flags[] array out of bounds access. Fixed disasm for rbit and sbit. Added (MESS) TI Language Tutor (preliminary, need to figure out why it's buggy). Preliminary support for TMS1400. Added TMS1400 callstack. TMS1400 opcode 0x09 is F_COMX8 anyway. . Cassette: Added skeleton for Atari 8bit SIO bus. This will not work until pokey learns to speak low level serial. Some Atari 8bit cassette work, not working yet. . Floppy: Support 800k ProDOS order (.po) disks (formats\ap_dsk35.c). Don't allocate 2MB of *stack*, malloc() instead (formats\ap2_dsk.c). When ESCing while creating a new floppy image, fall back to the correct UI menu (imagedev\floppy.c). Initialise error code instead of crashing when menu loads bad image (imagedev\floppy.c). - Compiling . Fixed MemorySanitizer linking (lib\lib.mak) . Fixed ThreadSanitizer data race warnings (osd\windows\winwork.c) . Introduced BASELIBS to makefile to link smaller tools with less dependencies . Support some C99 extensions in older MSVC (windows\winprefix.h) . Run build tools based on build OS (makefile and build\build.mak) . Make cross-compilation easier (makefile and build\build.mak) . Make cross compiled windows build to be independent from dll's (windows.mak) . LUA engine . Added HUD-like capabilities . Added full LuaBridge, Lua 5.3.0 and lsqlite3 sources in 3rdparty folder . Fixed name/tag confusion. Don't mix names and tags when exposing devices to LUA. While at it, also provide the shortname. . LuaBridge Stack specialization. Provide a Stack specialization for LuaBridge, later needed by some APIs. . Exposed device state entries. This commit exposes device_state_entry to LUA, providing methods to enumerate available states for a device object, as well as getting and setting their values. It is mostly usefull to inspect and manipulate registers content. Do not include all LuaBridge if not needed. . Rework state getter/setter for saves. Improved state_get_value and state_set_value by using the parent device_state_interface and triggering callbacks for updates (emu\distate.h and luaengine.c). . Use visible_area for drawing. Drawing and scripts should use the actual visible_area, not the maximum declared screen size. . Added memory writers. Added methods for memory writing, similarly to existing readers. . Added per-screen frame_number() getter. Added method to retrieve frame counter for each machine screen. . Fixed compile of derivatives OSD = winui (makefile) . Fixed non-DEBUG PROFILE=1 build with Clang (makefile) . Make file2str.py compatible with python 2.5 . Changed error about wrong OSD to a warning. Non supported builds can now add the proper define (OSD_WINDOWS, OSD_MINI, OSD_SDL, or OSD_my_own_OSD) in my_own_OSD.mak (makefile) . Proper fix for PROFILE=1 with Clang. png2bdc was crashing because an implicitly enabled optimizations - see http://llvm.org/bugs/show_bug.cgi?id=14713 (makefile). Converted png2bdc.py to python 2.5 syntax. . Moved OS specific low level code to osd\modules\lib. Removed duplicate code. Should support LIB\BASELIB separation better going forward. . Move definition of -DOSD_WINDOWS, -DOSD_SDL and -DOSD_MINI into $(OSD).mak. Added sanity check to makefile. . Added some errorhandling (osd\modules\sync\sync_ntc.c, sync_os2.c, sync_sdl.c, sync_tc.c and sync_windows.c) . Converted png2bcd tool to python . Added integral version of expat, flac-1.2.1, jsoncpp, libjpeg 8c, lzma sdk, mongoose, portmidi, softfloat, sqlite3, WinPcap SDK and zlib in 3rdparty folder. Applied changes same as on previous source. Fixed compile and cleanup includes. . Added include of stdarg to support some platforms (osd\osdcore.h) . Use $(INCPATH) only where needed (makefile, lib\lib.mak) . Put osdcore.o into libutil.a to avoid linking errors on debug builds. This is a workaround. All osd_printf functions are in reality core functions given they are built around delegates and abuse delegates heavily. Therefore they should be moved to util at some point. . Changed osd_font to struct osd_font and removed unnecessary osdepend.h includes. . Moved font code into osd\modules\font. Extended osd_font to a proper interface. . Fixed potential memory leaks (windows\vconv.c) . Documented all disabled warnings / added VS2013 define also removed some warnings, that don't happen anymore and don't like like they should be disabled (windows\vconv.c). . Fixed setname conflict when building UME (drivers\st_mp200.c) . More code alignment (osd\sdl\netdev_pcap.c, netdev_pcap_osx.c, sdlos_win32.c, strconv.c, osd\windows\netdev_pcap.c, strconv.c and winfile.c) . Solaris 11 build support and minor fixes . Removed unused imports (build\file2str.py, png.py, cpu\arcompact\arcompact_make.py and cpu\m6809\m6809make.py) . Promoted osd_getenv from osdlib.h to osdcore.h. Changed return type to "const char*". . Merged winmisc/sdlmisc into osdlib_*.c . Fixed undefined names "logging" and "fname" (cpu\arcompact\arcompact_make.py, h8\h8make.py, mcs96\mcs96make.py and tms57002\tmsmake.py) . Moved some Clang specific stuff from makefile to build\flags_clang.mak - Debugger: Renamed osd_debugger_interface to debug_module in a first step to move to new module infrastructure (modules\debugger\debug_module.h). Converted modules\debugger\* to new module infrastructure. 0.157 - New games: Dona Barata (early prototype) - New Working games: Cute Fighter and Su Ho Seong - New Non-Working games: 2 Spicy, After Burner Climax (Export), Ghost Squad Evolution, House of the Dead 4 (Export), House of the Dead EX (Japan), Hummer Extreme, Initial D4 (Rev D), Let's Go Jungle (Export), Outrun 2 SP SDX, Power Smash 3 / Virtua Tennis 3 (Export), Pride GP 2003 (PR21 Ver. A), Primeval Hunt, Quiz Mobile Suit Gundam: Monsenshi (QG1 Ver. A), Rambo (Export), Sega Race-TV (Export), Star Horse Progress Returns (satellite), Tekken 5 Dark Resurrection (TED1 Ver. A), Time Crisis 4, VBios updater, Virtua Fighter 5 (Export) and Virtua Tennis 3 (Japan) - New clones: Atari Football II, Brick Blast (bootleg of Wall Crash), Chulgyeok D-Day (Korea), Dharma Doujou, Dominos 4 (Cocktail), F1 Exhaust Note (Japan), Fantasy Zone (Time Attack, bootleg), Guilty Gear XX #Reload (GDL-0019), Initial D4 (Rev C), Melty Blood Act Cadenza (GDL-0028), Mortal Kombat (Yawdim bootleg, set 3), Radikal Bikers (Version 2.02), Ridge Racer V Arcade Battle (RRV2 Ver. A), Space Duel (prototype), Space Duel (version 1), Star Wars (set 3), Super Breakout (Cocktail, prototype), Super Street Fighter II Turbo (Asia 940223 Phoenix Edition) and Yam! Yam!? (Korea) - New PEPlus games: Montana Choice (MG0183) Multi-Game, Player's Edge Plus (X002478P+XP000154) Joker Poker - French, Player's Edge Plus (X002479P+XP000154) Joker Poker - French, Player's Edge Plus (X002480P+XP000154) Joker Poker (Aces or Better) - French and Player's Edge Plus (X002485P+XP000154) Standard Draw Poker - French - New drivers: barata.c - H8 CPUs . Added save state support to cpu\h8\h8_intc.c. Puzzlet save state regression not totally fixed, though. . Added save state support to cpu\h8\h8_timer16.c. Fixes Last Fighting save state regression. Init order issue (cpu\h8\h8_timer16.c). - I8086 CPU: Fixed debugging with segment prefixes - I80186 CPU: Forgot to set m_intr.pending = 0 and set_input_line(0, CLEAR_LINE) - M68000 CPU . Disassembler support for FTRAP (cpu\m68000\m68kdasm.c) . Generate the correct kind of stack frame for 68010 bus errors (m68000\m68kcpu.c) - SH-2 CPU . Added crude repeat key support in keyboard handling, makes typing more comfortable (machine\smpc.c and cpu\sh2\sh2comn.c). . Added default SSR value, makes EGWord to boot (cpu\sh2\sh2comn.c) - CD Audio: Moved some FLAC files around to match the distribution package structure - Seibu Sound System . Changed 'Seibu ADPCM' sound to 'Seibu ADPCM (MSM5205)' in Cabal, Dead Angle and Kyuukyoku no Othello . Removed unused functions (audio\seibu.c) - TMS5110 sound . Implemented output and read bit commands . Fixed VSM rom read through the TMS51xx . Fixed usage of uninitialized member in tms5110_device. Happened with (MESS) Speak & Spell. - AM9517A DMA: Added missing save state to am9517a_device, fixes (MESS) mikromik.c save state problem. - Atari Custom . Fixed save state regression in various Atari drivers (machine\atarigen.c), this fixes atarisy2.c driver crashes when loading autosave with "-str 2" (ID 03659). . Fixed attotime/flashing text in Paperboy service mode (machine\atarigen.c) (ID 01591) . Fixed 720 attotime/sprites flicker or disappear sometimes in recent MAME versions (machine\atarigen.c) (ID 00380) - CGA video: Added save state support to isa8_cga_device, fixes at least (MESS) pt68k4.c save state problem (isa\cga.c). - Sega Custom . Added missing save state support to segaic16_video_device. Fixes clone Quartet 2 (8751 317-0010) save state problem. . Assorted changes and fixes to Sega devices: video\315_5124.c, video\315_5313.c and machine\315_5296.c . 315-5124 VDP: (MESS) Game Gear: Moved GG-SMS scaling from VDP file to the machine file; undone the specific X-Scroll timing introduced to fix Chicago Syndicate, for Game Gear, because it causes problems with the games Sonic Drift 1 and 2; reduced the amount of duplicated code in the VDP file. - Taito Custom: Fixed Racing Beat (World) save state problem (video\tc0480scp.c). TC0480SCP save state fix. - Z80 DMA . Fixed Z80DMA buffer overflow. Fixes (MESS) altos5 and wmbullet floppies. . Removed no-longer-needed asserts from Z80DMA - asteroid.c . Use configured bank entries instead of postload . Fixed save state problem for clone Asteroids Deluxe (rev 1) - atarisy1.c: Added missing Atari System 1 TTL Motherboard PAL - bionicc.c, supduck.c and tigeroad.c: Unified sprite handling between bionicc, tigeroad and supduck to "Simple Capcom (Tiger Road) Sprite". - btime.c: Fixed flip screen (ID 04648) - chihiro.c . Chihiro vertex programs update . Added support for zbuffer and stencil plus render target methods . Added support for vblank wait NV2A accelarator method. It is disabled by default since is slows down too much. There is a new debugger command "chihiro waitvblank" to enable and disable it. - cps1.c . Fixed Player3 inputs in clone Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs) (ID 05804). Working sound (ID 05805). If someone owns the PCB of this particular bootleg, please verify if there's a YM2151. . Fixed input in clone Street Fighter II': Champion Edition (Alpha Magic-F, bootleg) (ID 05808) - cultures.c . Modernized driver a bit . Fixed flipscreen and potential out-of-bounds colors. Use region_ptr_finder for tilemap roms. . Fixed bg2 rom loading and OKI6295 sound clock speed. - dooyong.c: Verified clocks for 'The Last Day' and clone D-Day. Changed machine configs to reflect actual OSC used. - galaxold.c, scramble.c: Added a missing save state (video\galaxold.c), improves but doesn't totally fix starfield save problems in 4in1, hunchbkg, tazzmang2, 800fath and mariner - galpani2.c . Use RGB32 for Galpani2 driver, it has blending, very evident in the videos available. I also wonder if the rgb15 layer is 256 pixels stretched to the same size as 320 pixels, the data written during the RAM test compared to what is shown on YouTube videos is suggestive of that. I guess I should try and find the gal images in the data roms to see what format they're stored in too. No real improvement, just the result of me studying it for a bit. . Fixed an old regression in the driver . Use rombank instead of custom handler . Pixel clock notes - gts1.c: Rewrote Rockwell PPS-4 CPU core based on bitsavers.org documents. Introduced m_Skip to skip ops. Clean up and fixes. Fixed cut&paste, typos and some implementation bugs. Added chip pinouts for 10660 and 11660 PPS-4 versions. Connect ROM 6351-1J to the PPS-4 port A/B lines in GtS1 driver. Added led8seg (Futaba), use in gts1.lay and fixed bottom new segment (emu\rendlay.c). Fixed previous opcode detection for LB and LBL. Fixed disassembler for LBL. BU is always 0000 in LBL (pps4\pps4dasm.c). Fixed the TM disassembly. Don't set m_I in ROP() and don't set m_I2 in ARG(). Skeleton Rockwell 10788 chip emulation (Keyboard and Display circuit) and use in gts1 driver (WIP). Added CTYPE_LED8SEG to m_maxstate default setup (emu\rendlay.c). Added logging to R10788 and fixed timer setup. Added 8seg decoding with the modified 7448. Added 4 7seg digits for the outputs 6, 7, 14 and 15. The remaining 22, 23, 30 and 31 are unused. Fixed obsolete comments. Make 7seg display smaller. Renumber digits in gts1.lay according to http://www.pinrepair.com/sys1/. Added Rockwell 10696 General Purpose Input/Output emulation WIP. Added IO chip U2 (10696) for NVRAM access. Connect the GTS1 dipswitches to another 10696. Fixed gts1_lamp_apm_w offsets. Set bit 8+9 of PROM addr from group C bits 1+0. Added preliminary emulation of the Rockwell A17XX chips (ROM, RAM, I/O) and fixed device names in GtS1 driver. Fixed switches and solenoids I/O chip assignment. Log outputs to solenoids. Added NVRAM enable (E2) and W/R. Cleanup and fix comments. Adding switch matrix inputs. Use just part numbers for device tags. Use PORT_INCLUDE instead of macros - thanks Dirk. Small r10788_device initialization cleanup. - gundealr.c: Verified clocks for Yam! Yam!?. Changed machine configs to reflect actual OSC used. - hikaru.c . ROM labels and ROM_LOADs corrections & cleanup . Added protecton keys for AirTrix and Planet Harriers - igs009.c: Updated dips and added locations to comply with the manual for Jingle Bell & Gran Prix '98 - legionna.c and raiden2.c: Endian safety fix (machine\raiden2cop.c) - lindbergh.c . Added game list . Added new NOT WORKING games . Fixed SHA1 hash to match CHD output for Primeval Hunt . Fake PIT and real PCI bridges . Added PCI expansion rom management . Match card and video BIOS. Changed video\gf6800gt.c/h to gf7600gs.c/h. . Autodetect PCI multifunction devices . Fixed some initialisations, Valgrind stops complaining (machine\i6300esb.c, i82875p.c and pci.c) . Added overflow device, high SMRAM (machine\i82875p.c) . Added more PCI bridge registers . Changed BIOS from a game to resource (ID 05308) - naomi.c . Removed M4 keys table (bit order etc. finalized, PICs decapped) (machine\naomicrypt.c) . Use full M4 PIC16 dumps instead of partial "readouts", added handmade 'dumps' with master keys for not yet properly dumped PICs. Added PIC dump to sndynmt, ausfache, illvelo, mamonoro, manicpnc, mbaa, mushik2e, radirgyn, rhytngk, sl2007 and zunou. Removed unneeded decrypted binary rom fpr-24423.ic8d from rhytngk. . Added notes/documentation (drivers\naomi.c and machine\mie.c) . Redumped GDROM in 'Melty Blood Act Cadenza Version B (GDL-0039)' . Changed Melty Blood series game names as per title screen texts . Added dongle for Gundam vs. Gundam . Added BIOS and dongle for Time Crisis 4 - neogeo_noslot.c . Redumped/verified Fight Fever romsets. Added new 060-s1.s1 rom. . Added communication MCU ROM (dumped from a prototype) to the Riding Hero sets - nss.c, sfcbox.c and snesb.c . Fixed save state problem (machine\snes.c) (see (MESS) smwu for example) . Removed unneeded running_machine parameter were it wasn't needed and removed some machine().first_screen() calls (video\snes_ppu.c) - r2dx_v33.c and raiden2.c: Renamed program ROM region so romload automatically picks correct width/endianness. Endian fix for sprite decryption. - seibuspi.c and zn.c: Added missing 7200 FIFO save state, fixes Seibuspi save state problem. - ssv.c . Use required_region_ptr instead of required_memory_region and removed 2 unused variables . Use core palette handling. Use rombank instead of custom handler for Eagle Shot Golf's CPU-mapped gfx roms. Fixed Eagle Shot Golf gfx_element counts. - stv.c . Minor log removal (video\stvvdp2.c) . Added crude repeat key support in keyboard handling, makes typing more comfortable (machine\smpc.c and cpu\sh2\sh2comn.c). - viper.c . Fixed some minor README text layout issues . Added NVRAM and dongle to Police 911 2. Minor version correction of Police 911 2 from test mode and some notes. . More notes about the DS2430 EEPROM. Added some notes about the 'RTC OK' check based on real PCB tests. - yunsun16.c: Use device address map for the OKI6295 - zac2650.c: Added save state support - zaccaria.c: Added save state support. Kill some trampolines. - AGEMAME . Removed unused m_reel_changed field (drivers\bfm_sc1.c, bfm_sc2.c, bfm_sc4h.c, bfmsys85.c and includes\bfm_sc45.h) . Stepper . Converted steppers to device_t . Attempt at fixing the new Stepper device to load correctly for AWP games. This is part 1 of a plan to remove the stepper_interface for a devcb2 setup. . Significant change to Stepper motor device behaviour, using devcb2 interfaces. New functions added: MCFG_STEPPER_ADD(tag) - add a stepper device, MCFG_STEPPER_REEL_TYPE(type) - the equivalent of the first line in the old interface, now also takes NOT_A_REEL for printer and similar applications, MCFG_STEPPER_START_INDEX(int index) - the old second line of the interface, the position (in half steps) where the optic tab first triggers, MCFG_STEPPER_END_INDEX(int index) - the old third line of the interface, the last position (in half steps) where the optic tab triggers, MCFG_STEPPER_INDEX_PATTERN(int pattern) - a coil pattern in hexadecimal that has to be on the motor for the index to trigger (0 if no specific pattern is needed) and MCFG_STEPPER_INIT_PHASE(int phase) - starting phase of the motor. All drivers have been updated, testing done to all specific drivers - Scorpion 4 was particularly complex. . bfm_sc1.c: Removed unused m_reel_changed field. Fixed save state "regression". It actually didn't have any save state support, but the flag was set (possibly copy-paste error). . bfm_sc2.c: Fixed wrong device declaration in SC2 - Botanic: Handle protection? that kicks in when you complete a level. - Cute Fighter: Added protection data (Game now playable) - The Deep and Kid Niki: Removed old redundant hack - Konami Custom: Fixed potential out-of-bounds memory access; removed some dead code (video\k053936.c) - Mahjong Kyou Jidai: Replaced custom sound with MSM5205, added DIP locations and modernized driver. - Prehistoric Isle: PORT_VBLANK seems more likely active low. This fixes wrong vblank IP_ACTIVE_HIGH value (ID 05789). - Puzzle Bobble 3: Updated location/PAL information for clone Puzzle Bobble 3 (Ver 2.1J 1996/09/27) - Relief Pitcher: There are a lot of drivers where we do excessive ROM_RELOAD in the rom structure, or memcpy in the init (or at runtime) where using OKI memory maps is a lot cleaner, this deals with 'relief.c'. - Renegade . Replaced custom sound with MSM5205 . Make ADPCM ROM addressing more hardware-like - Smashing Drive . Added some Smashing Drive hardware details . Make Smashing Drive going somewhere instead of hang emulator - Su Ho Seong: Added protection data and fixed input (Game now playable) - Super Duck: Added Super Duck palette type to emu\emupal.c and use that - Vindicators: Game does not have a slapstic - Save state . Added missing save states to cpu\e132xs\e132xs.c. This fixes save states in gstream, mosaicf2 and pasha2. . Added GAME_SUPPORTS_SAVE to 5clown.c, mjkjidai.c and wallc.c - Dipswitch fixes in dreamwld.c, igs009.c, mjkjidai.c and snowbros.c - Fixed rom names in cave.c, dreamwld.c, starwars.c and taito_f3.c - Renamed (dharma) to (dharmaj) and (radikalb) to (radikalba) - Description changes of Cute Fighter, Dharma Doujou (Japan), Gundam vs. Gundam (GVS1 Ver. A), The Incredible Hulk, L'Hexagone (France), Melty Blood Actress Again Version A (Rev A), Melty Blood Act Cadenza Ver. A (GDL-0028C), Melty Blood Act Cadenza Version B (GDL-0039), Melty Blood Act Cadenza Version B2 (GDL-0039A), Police 911 2 (VER. UAA:B), Puzzle King (PacMan 2, Tetris, HyperMan 2, Snow Bros.), Radikal Bikers (Version 2.02, Atari license), Star Horse (satellite), Star Horse Progress (satellite) (Rev A) and Star Wars (set 1) and Star Wars (set 2) - MAME . Added macros for calculator button symbols, like eg. squareroot (util\unicode.h). . Unicode combining accents go after the base character . Added some more comments about NTSC subcarrier multiples, fixed a mis-ordering, added more to comment about 640 kHz resonator (drivers\xtal.h) . Fixed crash on fatalerror from winwindow_video_window_create() (windows\drawd3d.c and input.c) . Save m_rand_seed (emu\machine.c), fixes save state regressons in bmcpokr, centipdb, caterplr, millpac, jngolady and rivieraa. . Clean up banking and removed unneeded postload callbacks in drivers\mystwarr.c, ninjaw.c, opwolf.c, othunder.c, slapshot.c, taito_h.c, taito_x.c, taito_z.c, taitoair.c, warriorb.c and wgp.c . Uppercase hash cleanup (MAME/MESS drivers) - SDLMAME . Update *nix man pages to 0.156 (osd\sdl\man\castool.1, chdman.1, floptool.1, imgtool.1, jedutil.1, ldresample.1, ldverify.1, mame.6, mess.6, romcmp.1 and testkeys.1) . Fixed build with non-framework SDL 2 issue on OS X (sdl\sdl.mak) . Use consistent logical ID for joystick registration log (sdl\input.c) . Do not check gl_lib() without OpenGL support (sdl\draw13.c) . The gl_lib() function is not defined if we do not #USE_OPENGL, as can be seen in osdsdl.h. Building with NO_OPENGL=1 then breaks, unless we add this conditional #ifdef (sdl\draw13.c). . Improved SDL2 Alt-Enter functionality (now works on all screens at once) and prefer upper-left placement of windowed mode windows (osd\sdl\draw13.c, drawogl.c and video.c/h). . Enable proper network compile for SDL windows build . Fixed "-mt" for SDLMAME windows build . Changed sdl_window_info to be closer to C++: Made some members private. Moved static functions into sdl_window_info. Extended work_param struct with constructors for better readability. . Fixed linking on FreeBSD and simplified network part in sdl.mak a bit - MESS . HCD62121 CPU: Fixed Visual Studio compilation . TMS0980 CPU: Rewrote TMS1xxx MCU core and added support for a couple of (MESS) classic Texas Instruments handheld calculators. Readded microinstructions info. Small cleanup. Added tmc0270_cpu_device, preliminary. Get rid of c_output_pla warning. Preliminary emulation of Speak & Spell hardware with TMS0980. Fixed status being reset too early. . UNSP CPU: Cleanups for cowering . 6551 ACIA: Fixed receive with parity != none (machine\mos6551.c) . MOS7360 TED: Added missing save state to mos7360_device, fixes (MESS) plus4.c save state problem. . Added TMS6100 hookup to (MESS) Speak & Spell (US, prototype) and Speak & Math (US, prototype), fixing speech in them. . uPD7220: Reversed uPD7220 bit order and make address space 16 bit . Floppy: Victor 9000 floppy WIP. Added write_next_bit_prev_cell() that writes a bit at the position the previous bit was read from. This is needed for FDC's that read and write on the same clock cycle, e.g. the Commodore 8050 and Victor 9000 (machine\fdc_pll.c and victor9k_fdc.c). Patched out floppy SCP self test temporarily, CPM86 boots now but hangs while loading menu. NEC PC9801: Added preliminary support for disks in DCP, DCU, DIP and NFD formats. Added support for disks in .fdd format. CBM 8050 Floppy WIP. Include cylinder in savestate (imagedev\floppy.c). Starting to add floppy support to (MESS) Excalibur 64. . Added softlist for Archimedes disks . Moved some includes around to fix compile errors on OSX - Compiling . LUA engine: Added romname() and pause()/unpause(). Added API versioning. Added access to devices and address spaces. This commit maps some more classes (device_t and address_space) to retrieve devices and address spaces out of current running machine. Proxy methods are provided to enumerate/access devices and address spaces, and to read memory content. Added memory-reading capabilities (emu\luaengine.c). . Compile fix from QMC2 (video\poly.h) . Made build tools dependencies smaller (build\build.mak) . Converted build\file2str.c to python file2str.py . Better x64 detection for windows (makefile) . Fixed SANITIZE=thread linking (lib\lib.mak) . Many clarification on disabled UndefinedBehaviorSanitizer checks (makefile) - Debugger . Fixed debugger memory display of little-endian memory regions (debug\dvmemory.c and emu\emucore.h) . Fixed debug build (missing $(OBJ)/lib/util/tagmap.o) . Fixed the GUI for smaller fonts. Using a font pointsize different from 11pt has a consequence that fontWidth (in pixels) is not an integer anymore (debugger\qt\debugqtmemorywindow.c, debugqtview.c). Fixed a string overflow in comments (debug\dvdisasm.c). . Fixed the avl trees logic. The ancestor heights of a node were not updated properly (debug; util/simple_set.h). . Better handling of duplicate memory access. Don't removed and reinsert nodes that correspond to a duplicate memory access, because tree rebalancing kills performances. Update the node's element content instead (debug\debugcpu.c/h). . Fixed wrong initial m_topleft.x value in memory view (debug\debugvw.c and dvmemory.c) . Added device tree view (qt/debug). Looks cool with lindbios or (MESS) mu100. . Added a per-device window (debug\qt) 0.156 - New games: Alien Invaders, Hammer Away (Japan, prototype), New UFO Catcher (standard), Pit Boss Megatouch (9234-20-01), Pop'n Music 1 (ver AA-A), Solar War, Super Duck, UFO Catcher 21, UFO Catcher 800, UFO Catcher Mini and Windjammer (021216) - New Working games: Eggs Playing Chicken, PinMAME (gts3.c) and Street Fighter II: The World Warrior (bootleg) - New Non-Working games: Club Pacman / Lambada (Argentina), Cute Fighters, Desert Patrol [TTL], Smashing Drive, Sonic 2 (bootleg of Megadrive version) and Western Dream - New clones: Arkanoid Returns (Ver 2.02A 1997/02/10), Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix), Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999), Billiard Academy Real Break (Europe, older), Botanic (English / Spanish), Cadash (Japan, oldest version), Cadash (Japan, version 2), Club Kart: European Session (Rev C), Cluedo (Maygay/BwB) v2.1 (Isle of Man) (M1A/B), Cluedo (Maygay/BwB) v2.1 (Isle of Man) (Protocol) (M1A/B), Darius (US, rev 2), Donkey Kong (Spanish Crazy Kong bootleg), Dragon World II (ver. 100H, Hong Kong [Hokg Kong]), Dunk Shot (Rev C, FD1089A 317-0022), Fire Trap (US, set 2), Galaxy Monsters (Laguna S.A. Spanish bootleg of Space Invaders), JT-104 (title screen modification of Rad Action), Knights of Valour 2 New Legend (V300, Taiwan), Magic Bubble (Adult version, YS-0211 PCB), Mushihime-Sama Futari Black Label (2009/11/27 INTERNATIONAL BL), New UFO Catcher (Christmas season ROM kit), New UFO Catcher (Sonic The Hedgehog), New UFO Catcher (Team NFL), Oriental Legend 2 (V101, China), Play Girls 2 (bootleg), Raiden II (Switzerland), S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100), Sauro (Recreativos Real S.A. license), Secret Agent (Japan revision 2), Sega Strike Fighter (Rev A, set 2), Super Breakout (Canyon and Vertical Breakout, prototype), Teenage Mutant Hero Turtles (UK 4 Players, set 3), Tetris (bootleg set 3), Tron (Germany) and Vigilante (World, Rev E) - New PEPlus games: Player's Choice (MG0252) Multi-Game, Player's Edge Plus (IVC006) Clear EEPROM Chip, Player's Edge Plus (KE0017) Keno, Player's Edge Plus (PP0040) Standard Draw Poker (International), Player's Edge Plus (PP0042) 10's or Better, Player's Edge Plus (PP0043) 10's or Better (International, set 2), Player's Edge Plus (PP0060) Standard Draw Poker (Cruise), Player's Edge Plus (PP0429) Joker Poker (Aces or Better, set 2), Player's Edge Plus (SET004) Set Chip and Player's Edge Plus (X002173P+XP000038) Ace$ Bonus Poker - New drivers: alinvade.c, gts3a.c, pse.c, segacoin.c, segaufo.c and supduck.c - M6800 CPU: Fixed usage of uninitialized memory in m6800_cpu_device - DSP56156 CPU: Fixed potential overrun when adding a size_t to a UINT16 (cpu\dsp56k\dsp56ops.inc) - Dynamic Re-Compiling . Flush drcuml.asm log (cpu\drcuml.c) . Added device shortname to DRC UML log for systems with multiple DRCs e.g. N64 - I386 CPU . Added lock. Some of the group opcodes need to be checked. . Mark TSS busy . Zero descriptors and stack size . Fixed segment present check for calls to a TSS . Fixed more presence checks . Moved initialisation of m_lock to i386_common_init(), so that it is always initialised. . GP fault with softint in v86 mode when iopl < 3 . Call with expand down stack - MIPS CPUs . Do not overwrite the opcode_desc.delay vptr in drc_frontend::describe_one() (cpu\drcfe.c) . Sign-extend ROUND.L, TRUNC.L, CEIL.L and FLOOR.L (cpu\mips\mips3drc.c) . Generate -0.0 for NEG.S/D of 0.0 as FNEG does not on x86 (cpu\mips\mips3drc.c) . Fixed left-shift-of-signed-value issues. Fixed compilation with GCC 4.4.7 (cpu\mips\mips3drc.c). . Added asserts for (MESS) n64 -cart conker crash in mips3_device::generate_checksum_block() (cpu\mips\mips3drc.c) - PENTIUM CPU . MMX disassembly fixes (cpu\i386\i386dasm.c) . Some Pentium stuff to make Sega Lindbergh go further . Fixed problems when a BIOS uses SSE XMM4 as call stack . More support of the magic 0x66 prefix (cpu\i386\pentops.inc) - PowerPC 4xx/6xx: Converted remaining PPC callbacks to delegates. Fixed line endings. - PSX CPU . Renamed PSX controller and memory card files . Converted PSX SIO to use devcb - TMS57002 CPU: Initialize TMS57002 CPU variable to fix crackling sound in debug builds for KonamiGX games - uPD7810 CPU . Fixed ADC output register range. ADC functions should return bytes. Sample and hold ADC value at start of conversion process. Clear sample and hold on ADC reset. Removed removed code duplication in timers 0 and 1 and in ETIMER. Set ETIMER interrupts. . Removed gamemaster hack for INTFE1. The extended timer has been properly implemented in upd7810. Tested with (MESS) Continental Galaxy 2020. . Treat NMI like other interrupts . Correctly deal with external interrupts . Return meaningful value when PC3 is in control mode. When PC3 is in control mode, it acts as INT2 and external Timer Input. INT2 may be set by connected devices through set_input_line(), so its value can be used when reading or writing to PC3. There is currently no code to support external timer input. . Some fixes and code simplification . Interrupt-related fixes . Fixed bug introduced in extended timer simplification . ECNT clear control happens after capture control . Fixed, export and improved timer/event counter output. The timer/event counter outputs (CO0 and CO1) are set differently when EOM changes and when a timer update occurs. Most EOM values are cleared on use. The document at [0] is confusing regarding these bits. An older document [1], easier to understand, was used instead. [0] NEC Electronics User's Manual, April 1987. [1] NEC uCOM-87AD Family 8-Bit Microcomputers uPD78C1X Users Manual. Use intermediate flip flops for extended timer/event counter. The extended timer/event counter uses intermediate flip flops (LV0 and LV1) before writing the output to CO0 and CO1. The introduction of LV0/LV1 addresses three issues: Level inversion occurs after the flip flop is output, not before. The intermediate flip flop can be altered without affecting the output of CO0/CO1. upd7810_write_EOM() didn't work properly when the level inversion bit was set along other bits. . Fixed uPD7810 sound/hang regressions in some MAME drivers. Fixed Puzzli sound. - AY-3-8910A sound . Fixed undefined behavior in initialization . Try zero-initializing dynamic arra . Only build the table that will be actually used (per-channel or pre-mixed) - SN76477 sound: Converted to use inline config - X1-010 sound: Fixed frequency for X1-010 and added a note. I know PhilB is working on a totally new driver, but this should be fixed anyways. It's a very small change, but fixes a lot of things and breaks nothing as far as I can tell. - 8259 PIC: Priority and sfnm (machine\pic8259.c) - Atari Slapstic: Get rid of some global stuff by making SLAPSTIC a device - CHDMAN: Fixed "make tools" with VS14 CTP4 - Flash ROM . Added support for AMD 29F400T, AMD 29F800T and FUJITSU 29F160T (machine\intelfsh.c) . Intel component is not MXTC, it's MTXC in calchase.c, gamecstl.c, midqslvr.c, queen.c, savquest.c, taitowlf.c, voyager.c and xtom3d.c. - Konami Custom . K007121: Improved documentation . K051960: Removed 16-bit trampolines . K054156: Save correct amount of videoram, fixes Lethal Enforcers savestates. - PC hardware: Allow sound output if 8253 PIT is never programmed, i.e. all output is done by modulating speaker output line (bus\lpci\southbridge.c and drivers\pcxt.c). - PCI . Experiments in PCI land (drivers\calchase.c, chihiro.c, cobra.c, fruitpc.c, funkball.c, gamecstl.c, gammagic.c, lindbergh.c, magictg.c, mediagx.c, midqslvr.c, photoply.c, pinball2k.c, queen.c, savquest.c, taitowlf.c, viper.c, voyager.c and xtom3d.c) . A little more PCI, reaches an unemulated pslldq at fd228 (machine\i6300esb.c and machine\pci.c). . Added remapping notifiers (machine\i6300esb.c and machine\pci.c) . Added grossly hacked smbus (machine\pci-smbus.c and machine\pci.c) - Programmable Logic Array (PLA) . Made pla_device more generic (machine\pla.c). Fixed cache2 problem and fatalerror on parse error (machine\pla.c) . Made plaparse less strict about whitespace and ordering, added .phase keyword and cleanup (util\plaparse.c) - RTC: Call clock_updated() after increasing the minutes counter (emu\dirtc.c) - Sega Custom . 315-5313: mp_soni2 was trashing so much memory I'm surprised MAME didn't become self aware. Still haven't figured out what causes mp_gslam to trash part of the screen since we started using the real SMS code for the overlay, nor have I fixed the SMS mixing in interlace mode (mp_soni2) or the incorrect horizontal offset (all games) that were also introduced at that time. . 315-5124: The Genesis VDP inherits the SMS VDP code so that it can run in SMS compatibility mode (a feature of the chip) not so that you can try and use it in both modes at the same time. Added an SMS VDP to Megaplay to use as the overlay, rather than abusing this feature of the Genesis VDP. - SVGA . Changed Trident ISA device to be 16-bit, which is likely more correct. . Map Trident memory clock, video clock and LUTDAC registers. . Added zero() to (s)vga_device: zeroes all private variables but vtbls. The vga.memory is resized to 0. . Use vga_device::zero() in cirrus_vga_device::device_start() as well (video\pc_vga.c) . svga_device::zero() does it all - Taito Custom . Some TC0100SCN documentation . Fixed TC0480SCP text layer colors (see Chase Bombers). Some documentation. . Improved documentation (TC0620SCC is the 6bpp tilemap chip) - TIA video: Prevent Nans - VGA: Added Number Nine Revolution 512x32/Revolution 1024x8 (http://en.wikipedia.org/wiki/Number_Nine_Visual_Technology). Only the demo programs tested for now. - aleck64.c . N64: Abort MIPS timeslice when unhalting RSP. Fixes many RSP tests. Avoid setting the DP_FREEZE bit, gets (MESS) Banjo-Kazooie to boot (machine\n64.c). . RSP CPU . Added destination address support to the BREAK opcode (cpu\rsp\rspfe.c) . Added VNOP, VNULL and VRSQ instructions (cpu\rsp\rspdrc.c) . Fixed up how negative values are handled in VRSQL/VRCPL (cpu\rsp\rspdrc.c) . Fixed left-shift-of-signed-value issues (cpu\rsp\rspfe.c) . Fixed crash on Linux when recompiling BREAK opcode (cpu\rsp\rspdrc.c) . Added undocumented ops VADDB, VACCB, VSUBB and VSUCB (cpu\rsp\rspdrc.c) . Added assert for e.g. n64 -cart waveracej crash in rsp_device::generate_checksum_block() (cpu\rsp\rspdrc.c) . Fixed compiling with old (MESS) Apple GCC (hs and hl are unsigned int, and therefore cannot be < 0) (cpu\rsp\rspdrc.c) . Made the RSP interpreter core functional again . Fixed Visual Studio warnings about truncated constant and fixed Clang warning (cpu\rsp\rsp.c). . Splitted RSP vector opcodes into separate files for interpreter, DRC and DRC + SIMD. Breaks interpreter mode for reasons yet unknown. . Fixed RSP interpreter . Removed timeslice yielding when un-halting RSP, is causing hangs in various N64 games. . Optimized accumulator access in multiply instructions (cpu\rsp\rsp.c and rspcp2d.c). Fix for compile on GCC 4.4.7 (cpu\rsp\rspcp2d.c). . Fixed "unresolved external symbol" with RSP during linking with Visual Studio (cpu/rsp/rspcp2d.c). . RDP . Do LOD calculation even in 1-cycle mode. Fixes many tests (video\rdptpipe.c). . Added fatalerror for unsupported FBSize in RDP (video\rdpspn16.c). Happens with e.g. (MESS) n64 -cart blastcrpu1. . Enabled the RDP range checks by default for now (video\n64.h). This reports some out-of-bounds accesses only ubsan would report otherwise - happens with e.g. (MESS) n64 -cart nbaliv99u. . Added another check for unsupported FBSize. Happens with (MESS) n64 -cart sbowlingj (video\rdpspn16.c) . Added assert for usage of uninitialized stack memory in n64_rdp::SpanDraw1Cycle(). Happens with e.g. n64 -cart vprowrs2 - it actually already goes out of bounds in poly_manager::render_triangle_custom() but since that code is generic it's hard to add an assert there / also added another FBSize check (video\n64.c and rdpspn16.c). - alpha68k.c, arkanoid.c and astrcorp.c: Added SCREEN_RAW_PARAMS - bartop52.c and maxaflex.c . Fixed usage of uninitialized members in gtia_device . Pass device_video_interface and kill some machine().first_screen() (video\antic.c) - bwing.c: Replaced achocode with clean modern stuff (bankdev, correct TILEMAP_MAPPER_MEMBER, GFXDECODE_RAM) - calchase.c . Map Trident memory clock, video clock and LUTDAC registers. . Use larger NVRAM. Fixed page fault when booting game (ID 05774) - calomega.c . Fill in some unknown dipswitches . Improved color emulation by analogy with Tugboat driver (which is actually a heavily modified Cal Omega board) - cchance.c and champbwl.c: Fixed cchance and champbwl validation (includes\tnzs.h) - champbwl.c: Untie Championship Bowling driver from tnzs_state, this is not really necessary anymore because SETA001 and all video related functions are a proper device. - chihiro.c, naomi.c and triforce.c: Revised data while adding new information along with some cosmetic changes - cps1.c: Handcrafted CPS-1 PALs for area88r and striderjr - cps2.c: Roman numeral consistency (ID 05781) - cv1k.c: Minor info update. Detangle the speedups. - dec0.c: More sane values for screen raw parameters - dec8.c: Fixed colour overflow. More sane values for screen raw parameters - dooyong.c . Untangle the three basic dooyong board types . Tilemap cleanups - fastfred.c: Added correct xtal for Kaneko Fly Boy/Fast Freddie hardware based on PCB pictures, correct clocks in driver. Fixed Z80 CPU1/2 and the 2x AY-3-8910A clock speeds. - fcrash.c: Fixed some incorrect info about the SF2 bootlegs and got them running better - goldngam.c and popobear.c: Fixed unsafe casts pointed out by Aaron comments - harddriv.c . Start converting the various Hard Drivin' board types to be device . Added the 2 additional video boards to Race Drivin' Panorama. Added default EEPROMs for each of the sub-boards with the views correctly setup. Added driver specific hack. Not marked the game as working yet because the side screens seem to crash when you pick the roadster. . Fixed driver debug build regression - kinst.c and pyson.c: Fixed Memory Leak Warning (ID 05494) - konamigx.c . Moved global variables into driver state . Initialize TMS57002 CPU variable to fix crackling sound in debug builds for KonamiGX games . A few more global variables to the driver state - lindbergh.c . Experiments in PCI land . A little more PCI, reaches an unemulated pslldq at fd228 (machine\i6300esb.c and machine\pci.c) . Some Pentium stuff to make Sega Lindbergh go further . Added remapping notifiers (machine\i6300esb.c and machine\pci.c) . Host bridge (i82875p.c and machine\pci.c) . Generic mapping (machine\pci-smbus.c and pci.c). More mapping verbosity and document more registers (machine\i6300esb.c). . LPC: Skeleton ACPI - megatech.c: Fixed Sonic The Hedgehog 2 (Mega-Tech) crashed shortly after start (ID 05646) - meritm.c: Cosmetic changes. IE: Correct all CRT 2xx to CRT-2xx and standardize all "Touch Screen" to Touchscreen - model3.c . Texture enable has been wrong since 2003 (video\model3.c) . Draw transparent triangles in a separate pass. Implemented viewport priority. . Fixed input in Dirt Devils and clone . Fighting Vipers 2 needs longer delay - mystwarr.c: Small fix - naomi.c . Added HOTD2 (Proto) BIOS and Ferrari F355 Deluxe (USA) BIOS . Docs updates. Cartridge docs updates and additions. NAOMI updates and corrections. . Redumped mpr-21901.ic21s (rom_board $a800000) in Ferrari F355 Challenge . King of Route 66 (Rev A) use real MaskROM cart layout and labels instead of flashcart . Correct 'Ring Out 4x4' and 'Samba de Amigo ver. 2000' maskrom size and labels . Correct vonot maskrom label . Use of security PIC's readouts for Naomi-M4 decryption - neogeo_noslot.c: Make clone kog dipswitch part of the protection device / cartridge. This fixes "Attempted to map non-existent port 'JUMPER' for read in space program of device ':maincpu'" when running from softlist (ID 04742). - nss.c, sfcbox.c and snesb.c . Initialized more class variables (video\snes_ppu.c) . Fixed usage of uninitialized member in snes_ppu_device (video\snes_ppu.c) (happened with e.g. (MESS) snes -cart sdf1gpp). - peplus.c . Added the CAPX2172 color prom to pex2172p correcting color . Minor doc update about MGxxxx program roms and the Player's Choice platform . Moved function to driver state and removed various trampolines . Added the rom from the internal printer control PCB and a little bit more documentation for 'Player's Choice (MG0252) Multi-Game'. - psychic5.c . Correct audio CPU clock for Psychic 5 as measured on PCB . A little more work - raiden2.c: Fixed screen parameters/refresh rate (ID 05780) - segas18.c . Missed a line in sega_315_5195_mapper_device . Added SEGA_315_5296 device to Segas18 driver - segas24.c: Small cleanup - segaybd.c: Mapping the Sega Y-board port bits used to provide motor movement feedback - stv.c . Moved 315-5881 based encryption to it's own file, allowing to experiment with the device for the encrypted ST-V games. . Added test code - taito_l.c: Unify the gfxdecodes in the driver, and give them a real name instead of '2'. - taitogn.c: Changed machine\znsec.c/h to machine\cat702.c/h. Removed unused variable (machine\zndip.h). - taitojc.c: Fixed VSync - tmaster.c . Reverse-engineered the keys for all protected TouchMaster games (tm4k, tm5k, tm7k and tm8k); removed the protection hacks. The Touchmaster 7000 Eval was a chip swap for Touchmaster 5000 for operators to evaluate the next version so it uses the TM5000 security key. . Minor updates. All versions of Touchmaster run on the same PCB so there should only be one basic machine config. The OKI samples play too slow at 1MHz and too fast at 2MHz as compared to a real machine. So 1.5MHz is use as derived by actual OSC 24MHz devided by 16. Fixes sound seems to be played too quickly in tm, tm3k, tm4k, tm5k and tm7k (ID 03402). - tnzs.c: Use bankdev - tumbleb.c . Fixed game sprites not flipped when flipscreen is on (ID 04990) . flip_screen_set() automatically flips tilemaps - twin16.c . Converted the scrolling layers to tilemaps (the fixed text layer was already one). Fixed savestate regression after tilemap conversion. . Miscellaneous cleanups/modernizations . According to schematics the Twin166 video is priority related, not a flip bit. This fixes sprite-background priority is wrong (ID 02523). . Rewrote video mixing based on PAL equations . Added note about Final Round uses a PROM (not dumped) instead of the PAL and some discrete logic to combine some of the inputs - uapce.c: Small correction - vamphalf.c: Moved some video functions into driver class - zn.c: Changed machine\znsec.c/h to machine\cat702.c/h. Removed unused variable (machine\zndip.h). Fixed missing required objects regression. - AGEMAME . Added absolute position for stepper motor (machine\steppers.c) . maygay1bsw.c: Altered FIRQ and NMI handling to improve Maygay M1 operation (ID 05661). Added support for the known first part variants of the Maygay M1 Sound board (an MSM6376 and a uPD7759). Only Empire sound remains unsupported. Fixed missing required objects; also removed OKI-related handlers from address map of sets that have NEC ADPCM instead of OKI6376. Adding banking support for Global games. . mpu4.c: Fixed missing required objects - Amiga . Use memarray for chip RAM and regular array for custom registers (instead of shared_ptr for both) . Added Workbench 1.3.3 and AmigaOS 3.5 to workbench list - Air Buster: Verified clocks/vsync - Bionic Commando . Dumped 8571 MCU from a bootleg Top Secret/Bionic Commando PCB and added it to clone Top Secret (Japan, old revision). All other ROMs on the board matched the topsecrt set. . Show where the machine clocks come from - Buggy Boy: Fixed buggyboy and clone buggyboyjr crashes after launch (ID 05776) - Brick Zone: Do swapped opcode decrypt when command is written rather than predecrypting specific ranges - Cadash: Added PLDs to all sets of Cadash and revision levels to US and German set. Standardize Cadash program rom labels and IC locations. - Centipede: Added missing 2P start button to clone Centipede (revision 3) (ID 05741). Removed 2nd Player in parent Centipede (revision 4). - Cue Brick: Fixed wrong colors in service mode "color check" (ID 05395) - Darius . Minor rom name corrections. Added dipswitch locations to the Darius sets & give the newly added US set the correction coinage. . Added OSC derived clocks - Drag Race: Added dump of the sync PROM at L8 - Eggs Playing Chicken: Implemented missing dipswitch, promote to working. Press "S" to skip the CMOS error, "S" or wait to skip the emm386.exe error (not an emulation issue), use "Coin 2" to coin-up and start the game, and "1 Player Start" to brake. - Godzilla: Fixed VSync - Golgo 13 and Golgo 13 Kiseki no Dandou: Fixed for service mode toggle mode - Gunbuster: Use core palette handling - Hanafuda Hana Tengoku: Fixed NVRAM - Killer Instinct: Fixed DRC regression (cpu\drcfe.c) - Kram: Added GAME_UNEMULATED_PROTECTION flag to clone Kram (encrypted) since encryption isn't fully understood - Lethal Enforcers . Save correct amount of K054156 videoram, fixes Lethal Enforcers savestates. . Sanify palette size and bankdev address map; added placeholder for gfx ROM read. - Lunar Lander: Added 034597-01.m3 language rom for Lunar Lander (built from original Atari source code) (ID 05306) - Magic Bubble: Fixed Z80 CPU2 and OKI6295 clock speeds - Mini Boy 7: Slightly improved colors in Mini Boy 7 (see gfx2 color 4, now correct playing card colors) - Mario Bros.: Fixed monitor switch so it correctly affects both tiles and sprites - Otenki Kororin: Fixed Otenki Kororin fails to boot into the game by reducing ATA flash card seek time to zero (ID 05769) - PinMAME . gts3.c: Splitted into AN and DMD displays. WIP. Display works and attract mode work. Added switches. After setting up, the games are playable. . gts3a.c: WIP . gts80b.c: WIP. Display is working. . spinb.c: Added assert for index out-of-bounds access with Jolly Park . Added licence info to some Pinball drivers - Prehistoric Isle . Make Prehistoric Isle use proper priority rather than two-pass sprite rendering, clean up a little. . Tilemap/pdrawgfx conversion (priority-masked drawing) . Fixed issues introduced by pdrawgfx conversion; use required_region_ptr instead of runtime tag lookup; give gfx regions more meaningful names; remove superfluous "prehisle"'s and "16"'s from member names (it's been many years since you could accidentally plug a handler of the wrong width into an address map and not have the core catch you at compile time). - Quiz TV Gassyuukoku Q&Q: Fixed "BACKUP ERROR" message at start (ID 00135) - Pocket Gals V.I.P: Document that Gals Hustler has been found with genuine AFEGA labels - Rainbow Islands . Added remaining PAL to clones Jumping (set 1) and (set 2) . Redumped gfx2 ($10000) in Jumping (set 2) - dumped multiple times, always the same. - Rock'n Rage: Fixed incorrectly coloured enemy sprites in Rock'n Rage and clones (ID 03590) - Royal Card: Fixed OOB access in Royal Card (Italian, Dino 4 hardware, encrypted). This fixes assert during initialization in debug build (ID 05760). - Skat TV: Added NVRAM init and inputs to clone Skat TV (version TS3) - Sly Spy: Added PALs to the World & Japan Secret Agent sets - Son Son: Correct audio CPU clock as measured on PCB - Super Ranger: Verified clocks/vsync - Super Shanghai Dragon's Eye: Restored flip screen support - Table Tennis Champions: Fixed year info - Tetris: Fixed for clone Tetris (bootleg set 2) regression. Note: Do the bootlegs really have the slapstick? our code assumes so. Maybe it's something equivalent and we don't bother documenting it? - Time Fighter (Time Pilot conversion on Galaxian hardware): No need for a double GAME_SUPPORTS_SAVE flag - Tough Turf . Correct sound rom for Tough Turf (set 2, Japan, 8751 317-0104) - fixed game lacks sound. . Minor doc update & rom name corrections - Vigilante: Make the unknown World set a bootleg. Use the correct roms for the World Rev C version. Standardize a few rom names and or add IC location where possible. Added a note about need to verify / correct the rom sets for the US versions. - Vs. Castlevania: Added 'Bonus points' dipswitch (ID 05740) - Save state: Don't execute a timeslice before loading a savestate from the command line (emu\machine.c) - Input port: Added check for GCC 4.4.4+ for pragma, definitely doesn't work with 4.4.3 (emu\inpttype.h) - Dipswitch . Fixed dipswitches in calomega.c, centiped.c, galpanic.c, naomi.c, segas16b.c and vsnes.c . Added DIP locations to solarwar and videopin - Fixed rom names in asuka.c, darius.c, naomi.c and yunsun16.c - Renamed (botanic) to (botanicf), (cadashj) to (cadashj1), (clubk2kf) to (clubk2kp), (dunkshot) to (dunkshoto), (futaribl) to (futariblj), (pbst30b) to (pbst30a), (sf2mdtc) to (sf2b), (solarwar) to (solrwarr) and (vigilant) to (vigilantb). - Description changes of 18 Wheeler (deluxe) (Rev A), 18 Wheeler (standard), 18 Wheeler (upright), Airline Pilots (deluxe) (Rev B), Ave Fenix (Electrogame, Spanish bootleg of Phoenix), Cadash (Germany, version 1), Cadash (Japan, version 1), Cadash (US, version 2), Club Kart: European Session (2003, prototype), Darius (Japan), Darius (Japan, rev 1), Darius Extra Version (Japan), Darius (World, rev 2), Ferrari F355 Challenge (twin), Ferrari F355 Challenge 2 (twin), Ferrari F355 Challenge (deluxe), Fire Trap (US, set 1), Hyper Street Fighter II: The Anniversary Edition (Asia 040202), Hyper Street Fighter II: The Anniversary Edition (Japan 031222), Hyper Street Fighter II: The Anniversary Edition (USA 040202), Jumping Pop (Nics, Korean hack of Plump Pop), The King of Route 66 (Rev A), Magic Bubble (Adult version, YS-1302 PCB), Naomi Airline Pilots (deluxe) Bios, Naomi Ferrari F355 Challenge (twin) Bios, Player's Edge Plus (PP0429) Joker Poker (Aces or Better, set 1), Player's Edge Plus (SET001) Set Chip, Player's Edge Plus (SET038) Set Chip, Secret Agent (World revision 3), Sega Strike Fighter (Rev A, set 1), Shootout Pool The Medal / Shootout Pool Prize (Rev A), Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B, Street Fighter II: The World Warrior (bootleg), S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP, ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB), Vigilante (bootleg), Vigilante (World, Rev C), Vigilante (US, Rev G) and Vigilante (Japan, Rev D) - MAME . Update windows\winos.c and MSVC2010 compilation fix . USE_NETWORK Ethernet emulation is now enabled by default as per the roadmap. Reverse the networking polarity in the OSD makefiles. Fix for network compile. Restored USE_NETWORK checks. Added -listnetwork option to list available network adapters. . VIDEO RENDERING SYSTEM . Only calculate m_aspect and m_srcaspect in layout_view::recompute() when they are actually used (emu\rendlay.c) . Only normalize component bounds in layout_element::layout_element() when components exist. Avoids division by zero for sets using layout\vertical.lay (emu\rendlay.c). . Respect gfx_element::colors() just like drawgfx.c does. Added temporary assert to catch regressions (i.e. drivers that didn't define their gfx elements correctly) (emu\tilemap.h). Removed temporary assert (emu\tilemap.h). . Tilemap assert fix (ampoker2.c, batman.c, cninja.c, coinmstr.c, deco32.c, legionna.c, pipedrm.c, sbugger.c, tattack.c and video\k054156_k054157_k056832.c) . Taito device tilemap assert fixes, and clean up of obsolete stuff (drivers\darius.c, ninjaw.c, opwolf.c, rainbow.c, rastan.c, slapshot.c, taito_f2.c, topspeed.c, warriorb.c, video\tc0080vco.c, tc0100scn.c and tc0480scp.c) . Update tilemap header comments/example to match current interface. . Internal tilemap documentation update; dooyong.c cleanups; prehisle.c pdrawgfx conversion. Long-overdue documentation about how to use priority-masked drawing (aka pdrawgfx); add some useful constants (emu\drawgfx.h). . MEMORY SYSTEM . Fixed signed integer overflow in address_table::subtable_open() (emu\memory.c) and address_map::uplift_submaps() (emu\addrmap.c) . Fixed an annoying inconsistency between memory_share and memory_region: The width() method of the former returned the width in bits (8, 16, 32 or 64) while the width() method of the latter returned the width in bytes (1, 2, 4 or 8). Now both classes have a bitwidth() method and a bytewidth() method. Updated all callers to use whichever one was more appropriate. Removed the implicit-cast-to-any-integer-pointer ability of memory_regions, which was rather unsafe (if you weren't careful with your * operators and casts it was easy to accidentally get a pointer to the memory_region object itself instead of to the data, with no warning from the compiler... or at least I kept doing it) Updated all devices and drivers that were accessing regions that way to use a region_ptr_finder when possible, and otherwise to call base() explicitly. . devfind . Added rom_ptr_finder, which works like shared_ptr_finder except it finds a ROM region instead of a memory share. Unlike the old memory_region_finder, these can be accessed without any overhead (since it's a pointer directly to the data and not to the memory_region object), can be whatever data type you want (no casting needed) and are strictly type-checked--if you have a required_rom_ptr the region has to be a ROM_REGION32 (or an implicitly 32-bit region due to belonging to a CPU) or the finder won't find it and will tell you why. Basically, rom_ptr_finders are strictly better than memory_region_finders and all drivers using the latter should be converted over. . I've done megasys1.c and twin16.c as examples: . megasys1.c: Use a device address map for the peekaboo OKI instead of memcpy() . twin16.c: Converted the scrolling layers to tilemaps (the fixed text layer was already one). Notice that rom_ptr_finder has a length() method which returns the length in whatever size unit the pointer is, instead of a bytes() method. Yes, I'm going to convert shared_ptr_finder to match, since this way makes a lot more sense (in particular, mask() is useless for shared_ptrs that are anything other than INT8/UINT8). . Renamed rom_ptr_finder to region_ptr_finder after discussion with Aaron. First round of memory_region_finder to region_ptr_finder conversions. . RF5C400: Use a region_ptr_finder to find our sound ROM instead of looking up the region by hand in device_start(). Will probably start converting other sound devices to this pattern (other than the ones that use the memory system) if there are no problems or objections. . Misc cleanups (drivers\atarigt.c, cybertnk.c, djmain.c, hng64.c, magicard.c, model2.c, nightgal.c, sfbonus.c, includes\exidy440.h, hng64.h, midyunit.h, machine\midyunit.c, video\cps1.c, exidy440.c, konamigx.c, nycaptor.c and segas32.c) . Added command-line option -[no]snapbilinear to control binlinear filtering for snapshots (enabled by default). This is mainly for making testruns and debugging faster - could also be used to speed up -aviwrite usage though. . Removed duplicated line of code (windows\winmain.c) . Fixed poteotential -validate crash with invalid softwarelist XML. Actually report softwarelist XML parsing errors in -validate. Fixed softwarelist validation errors. - SDLMAME . SDL2 is now the default except for OS/2 builds . Tell SDL to stop sound when volume is set to max attenuation (sound\sdl_sound.c) . Allow SDL_LIBVER to be overridden without modifying sdl.mak . Experimental rework of SDL buffer size calculation (sound\sdl_sound.c) . Build fixes for Emscripten (makefile and osd\sdl\sdl.mak). Slightly more optimized SDL defaults for Emscripten (sdl\sdlmain.c). . OS/2 build fixes (lib\sqlite3\sqlite3.c and web\mongoose.c) - MESS . CP1610 CPU: Support for the BEXT instruction. The BEXT instruction is needed for the Unisonic Champion driver which I'm building. The Intellivision doesn't need it since its EBCA0, EBCA1, EBCA2 and EBCA3 pins are grounded. The method used was a suggestion from RB (cpu\cp1610\cp1610.h). . SM8500 CPU: Fixed (MESS) Tiger Game.com calculator. Fixed timer in solitaire. Centipede is somewhat playable (cpu\sm8500\sm85ops.h). . TMS0980 CPU: Get rid of old printfs. Minor fixes. Added TMS0970 device. . Centronics interface: Use the same list of centronics devices everywhere (except the Amstrad CPC), the list has been renamed as they aren't all printers. . Floppy: Fixed usage of uninitialized member in wd1770_device (machine\wd17xx.c). Fixed broken detection of disk (formats\ap2_dsk.c). Support some incorrect images (formats\d88_dsk.c). Victor 9000 floppy WIP (formats\victor9k_dsk.c). Included modern .dsk format among default supported formats. . Hard Disk Controller: Added DIPs, make ROM optional. Implement WRITESBUFF command (bus\isa\hdc.c). (MESS) EC-1841 compatibility. . Keyboard: Use correct clock frequency and added new BIOS ROM (bus\pc_kbd\ec1841.c and mess\drivers\ec184x.c). Changed keyboard xtal freq, added speech synthesis swre (bus\pc_kbd\ec1841.c). (MESS) x820: Emulated the ASCII keyboard (key repeat is not working yet). . MDA/CGA: (MESS) ec184x: MDA clone and iskr103x: CGA clone. . MM58167: Implemented IRQs and counters write, this allow to pass the (MESS) K803 RTC diagnostic test. Initialize IRQ control register on reset. . PC, AT: Hook up missing softlists to various drivers . uPD7220 Display Controller: Better output for the (MESS) Telenova Compis and Decision Mate V. Fixed shift expression MSVC doesn't like. Don't skip every other line in mixed mode. Slanted chars. Fixed usage of uninitialized member in upd7220_device. Attempt to resolve apparent contradiction in window behavior. So dividing by lr didn't quite work. This works better but it looks too weird to be entirely correct. Bresenham line drawing. Fills the gaps that were breaking (MESS) Adventureland. Shift screen down by vbp. . Z8536 Counter/Timer: Added assert for index out-of-bounds access in z8536_device::external_port_w() with Apple3 - Compiling . More appropriate types to avoid warning with VS14 CTP4 (drivers\igspoker.c, namcos21.c, segaufo.c, includes\namcos21.h, machine\nvram.c, osd\windows\windows.mak and winprefix.h) . Simplify MSVC fix, tested with official MinGW and VS2013 & VS14 CTP4 (drivers\segaufo.c) . Do not set define HAS_OPENMP when makefile define OPENMP is set - fixes warning about macro redefinition (makefile). . Increased maximum allowed stack size of Visual Studio Code Analysis (windows\windows.mak) . Added WinPCap headers to the project. Include WinPCap headers during Windows build; suppress MSVC debug build warning (osd\windows\windows.mak). . Allow compilation on cygwin based terminals on Windows (like cmder) . Updated comments/TODOs about invalid vptr warnings (build\flags_clang.mak, bus\isa\s3virge.c, trident.c and video\pc_vga.c) . Re-enabled -Wdynamic-class-memaccess and -Wconstant-logical-operand for Clang 3.5 now that all warnings have been fixed (build\flags_clang.mak) - Debugger . The Qt debugger now behaves more like the Windows one, with horizontal scrollbars where the core views expect them. This fixes debugger help text is missing words/lines under Linux (ID 05527). . Fixed strange display of long strings in Qt debugger . Added command-line option -[no]drc_log_uml to control DRC UML disassembly logging. Allows logging of DRC UML disassembly without re-compiling / removes. DRCUML_OPTION_LOG_UML and all the core-specific LOG_UML defines (cpu\arm7\arm7drc.inc, cpu\drcuml.c, cpu\mips\mips3.c, cpu\powerpc\ppccom.c, cpu\sh2\sh2.c and emu\emuopts.c). . Added command-line option -[no]drc_log_native to control DRC native diassembly logging. Allows logging of DRC native disassembly without re-compiling, removes DRCUML_OPTION_LOG_NATIVE and all the core-specific LOG_NATIVE defines, added logging() to drcbe_interface and added logging_native() to drcuml_state. 0.155 - New games: Americana, Elfin, Jump Jump, Kankoku Hanafuda Go-Stop, Merit Touch Joker Poker and Vegas 1 - New Working games: Cycle Warriors (rev C), Dongfang Shenlong, Gundam Wing: Endless Duel, Hacha Mecha Fighter, Music Ball, New Zero Team, PinMAME (allied.c, by17.c, gp_1.c, hankin.c, inder.c, jp.c, ltd.c, peyper.c, rowamet.c, s4.c, s6.c, s6a.c, s7.c, s8a.c, s9.c and st_mp100.c), Raiden DX, Raiden II, Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM), Super Bobble Bobble (bootleg, set 1) and Zero Team 2000 - New Non-Working games: Bazooka [TTL], Capriccio Cyclone, Capriccio Spin 2, Eggs Playing Chicken, Gundam vs. Gundam Next, Host Invaders, Kinnikuman Muscle Grand Prix 2, Mahjong Cafe Paradise, Mushiking The King Of Beetle 2K5 1st, Number Crash, Revelations, Sengoku Basara X Cross, Space Warp?, Su Ho Seong, Trivia (Rev B) [TTL], Won!Tertainment Music Channel and Yori Zori Kuk Kuk - New clones: 19XX: The War Against Destiny (Asia 960104), Air Rescue (Japan), Arkanoid (Japan), Armored Warriors (Asia 941024), Baryon - Future Assault (set 2), Bazooka (Brazil) [TTL], Bonze Adventure (World, prototype), Candory (Ponpoko bootleg with Mario), Centipede (revision 1), Chelnov - Atomic Runner (Japan, bootleg with I8031, set 1), Chelnov - Atomic Runner (Japan, bootleg with I8031, set 2), Circus Charlie (level select, set 2), Cliff Hanger (set 3), Colorama (P521 V13, Spanish), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg), Cops (UK), Crime Patrol v1.2, Crime Patrol v1.51, Donkey Kong 3 (bootleg with 2xAY8910), Dragon's Lair (European, alternate), Dragon's Lair 2: Time Warp (US v2.00, AMOA prototype), F-1 Dream (bootleg, set 2), F1 Exhaust Note (US), Fantasia (940803 PCB), Fast Draw Showdown v1.31, Food Fight (rev 1), Frisky Tom (set 3, encrypted), Frogger (bootleg on Amigo? hardware), Gallagher's Gallery v2.1, Gaplus (Tecfri PCB), Growl (World, Rev 1), Hacha Mecha Fighter (19th Sep. 1991, unprotected, bootleg Thunder Dragon conversion), Hexa (with 2xZ80, protected), Initial D Arcade Stage (Japan) (GDS-0020), Jumping (set 2), Laser Grand Prix (alternate), The Last Bounty Hunter v1.01, Mad Dog II: The Lost Gold v1.10, Mad Dog McCree v2.02 board rev.B, Mario Bros. (Japan, bootleg), Mega Man: The Power Battle (CPS2, USA 950926, SAMPLE Version), Oriental Legend / Xi You Shi E Zhuan (ver. 111, Taiwanese Board), Pac-Man (JPM bootleg), Pac-Mania (111187 sound program), Pengo (bootleg on Pac-Man hardware, set 1), Pengo (bootleg on Pac-Man hardware, set 2), Phoenix (D&L bootleg), Power Drift (Japan, Link Version), Punch-Out!! (Rev B), Raiden DX (China), Raiden DX (Japan), Raiden II (easy version, Germany), Raiden II (harder, Raiden DX hardware), Raiden II (US, set 2), Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM), Search Eye (English / Korean / Japanese / Italian), Shadow Dancer (bootleg, set 2), Shot Rider (bootleg), The Simpsons (2 Players World, set 3), Sky Shark (US, set 2), Space Pirates v1.4, Speed Up (Version 1.00), Storm Blade (Japan), Street Fighter II': Champion Edition (M9, bootleg), Street Fighter II': Magic Delta Turbo (bootleg, set 4), Street Fighter II: The World Warrior (TAB Austria, bootleg, set 3), Street Fighter II: The World Warrior (TAB Austria, bootleg, set 4), Super Punch-Out!! (Rev A), Super Street Fighter II: The New Challengers (World 931005), Vegas 1 (Ver 1.33 single coin pulse), Vegas 1 (Ver 2.1 dual coin pulse, longer), Vendetta (World, 2 Players, ver. EB-A?), Viper Phase 1 (New Version, Holland), Wonder Boy III - Monster Lair (encrypted bootleg), The X-Files and Zero Hour (Inder) - New PEPlus games: Player's Edge (PK1024) Aces and Faces Bonus Poker, Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (X000124P+XP000053) Deuces Wild Poker and Player's Edge Plus (X002308P+XP000112) Triple Double Bonus Poker - New drivers: capr1.c, caprcyc.c, mgavegas.c and s8a.c - New devices: generic_rom_plain, namcoc69, namcoc70, namcoc74, namcoc75, namcoc76, nmk004, votrax and xvd701 - New Compile Tools (mingw-mame-20140905.exe): http://www.mamedev.org/tools/ - New Cheat.dat: http://cheat.retrogames.com/ - DSP32C CPU: Removed unneeded define (dsp32\dsp32.h) - DSP56156 CPU . Added a pair of save states to the DSP56k core, fixes Polygonet Commanders regression. . Modernised dsp56k cpu core - HD6309 CPU: Fixed warning (this was useless anyway: m_temp is really temporary) - Hyperstone CPUs: Fixed do xx= in debugger (cpu\e132xs\e132xs.c) - I386 CPU . Fixed vem486 . Expand down ring 0 stack - I80186 CPU: Fixed usage of uninitialized members. Small cleanup. - I8051 / MCS-51 CPU . Initialize all serial state and added serial state to the save state . Fixed MCS-51 modernization regression (MAME 0.150) with timer 2 interrupts for some cpu cores. This fixes loss of in-game sound in Candy Candy (ID 05676). - M37710 CPU: Typos in unused macros - M68000 CPU . Changed overlapping memcpy() to memmove() (m68000\m68kmake.c) . Added missing save state registration (m68000\m68kcpu.c) - M6809 CPU: Fixed CWAI implementation in base6x09.ops doesn't acknowledge interrupts while polling for systems using M6809 with M6809_HOLD_LINE (ID 05350). Note: CPU cores *must* call standard_irq_callback() when taking an interrupt. No ifs, no buts, Not only HOLD_LINE relies on it, but more importantly run until interrupt relies on it. - MB88xx CPU: Added support for Fujitsu M88201-202 MCU - MIPS CPUs: Throw badcop exceptions on COP1 accesses while the COP1 status bit is not enabled (mips\mips3drc.c). Made badcop exception handling cleaner. - PowerPC 4xx/6xx CPUs . Fixed wrong condition register in stwcx (powerpc\ppcdrc.c) . Fixed unaligned 64-bit accesses - RSP CPU: Modernised cpu core. Fixed "error: zero-length gnu_printf format string" compile issue. - SH-4 CPU . Get rid of pointers to member functions . Fixed irqline usage in case of certain SH3 exceptions (cpu\sh4\sh4comn.c) - TMS32031 CPU: Removed static configs in favor of inline config+devcb - TMS34010 CPU . Work around Clang shift overflow warnings (build\flags_clang.mak and 34010gfx.c) . Converted to use inline config, devcb and delegates. . Fixed compile on MSVC 2012 & 2013 (34010gfx.c) . Disabled -Wconstant-logical-operand again for Clang and tms34010\34010gfx.c cleanups - TMS9900 CPU: Removed antiquated #include - compiles fine without - TMPZ84C011 CPU: Small cleanup - DISCRETE sound . Removed static config for discrete (MCFG_SOUND_CONFIG_DISCRETE() --> MCFG_DISCRETE_INTF()) . Removed static config in RC filter and small cleanup (sound\flt_rc.c) - Filtered 1-bit DAC: Removed static_config from speaker (sound\speaker.c) - K005289 sound: Fixed off-by-one frequency; adds missing detune effect to Nemesis bg music. - K053260 sound . K053260 Delta PCM decoding rolls over instead of clipping; fixes some 'The Simpsons' in-game samples such as "Maggie" and "That's my sister mister" sound bad (ID 01007). . Rewrite K053260 sound device. MSVC compile fix. - MIDI sound . Added note about memory leaks (portmidi\pmlinuxalsa.c) . Rejected invalid MIDI bytes with no status, fixes most 6850-based MIDI setups (osd\osdcore.c) - Samples sound: Converted samples_device to use inline config and delegates - Taito Ensoniq ES5505-based sound: Small cleanup (audio\taito_en.c) - VLM5030 sound: Changed vlm5030_device pin read/write functions to READ/WRITE_LINE - YM2612 sound: Fixed missing DAC channel on savestate load - YMF271 sound: Fixed crash possibility - YMF278B sound: Use the memory system to access YMF278B wavetable data. This should make it possible to hook up RAM as well as ROM to the device, e.g. for computer sound cards in MESS. I'm using the multipcm workaround for default address maps for now. The core change I discussed will go in a separate commit, in case it causes more problems than anticipated. - ZOOM ZSG-2 sound: Added note - 53C810 PCI to SCSI I/O Processor: Reading DSTAT clears DIP bit in ISTAT - 68681 DUART: Fixed usage of uninitialized member in mc68681_device - 8250 UART . Registering save state in INS8250 . NS8250 fixes. Loopback: tx goes high and data is clocked at the correct rate instead of appearing instantly. Modem status register: Don't lose track of external signals when starting, resetting, switching loopback off, writing to register. Handshaking: Active low for consistency (RS232 port now defaults handshaking lines high and serial mouse dtr/rts handling has been adjusted). . Call interrupt callback after clearing internal interrupt state when resetting . 8250 write protect 0x40 in line status register, this bit is used to track whether diserial is running and will call us back. mpz80 writes 0 to this bit and waits for it to be set again, it used to work because loopback was HLE'd. The 8250 datasheet says that transmission in loopback goes through the shift registers, the way the old code worked wouldn't test any send/receive functionality of the chip at all. It's unknown whether clearing this bit would cause the chip to start shifting, the datasheet says you shouldn't write to the register at all & it's reserved for testing the chip in the factory. Initialize m_regs.ier register to stop interrupts randomly being generated before reset, fixes Portfolio booting. - 8251 UART: Added save state (machine\i8251.c) - 8253 PIT . Small cleanup . Fixed an assert and regression - Atari Custom . Fixed video\atarimo.c:225:24: runtime error: index -4 out of bounds for type 'UINT16 [4096]'. . Fixed index out-of-bounds access in asic65_device::read() (machine\asic65.c; atarig42.c and harddriv.c) - Discrete Netlist: Converted video\fixfreq.c to use inline configs - DS2401 RTC: Fixed usage of uninitialized members - EEPROM: Added Support for MSM16911 Serial EEPROM (machine\eepromser.c) - GDROM: Typo fix (switch (command[2] & 0x0f)) - KANEKO Custom . KANEKO CALC3 "standardized" it some. Minor cleanup. (kaneko16.c) . KANEKO TOYBOX cleanups (galpani3.c, jchan.c and kaneko16.c) - Keyboard . Fixed usage onf uninitialized member in serial_keyboard_device. Let's also call generic_terminal_device::device_start (rs232\keyboard.c). . Added save state to machine\keyboard.c and rs232\keyboard.c - Konami Custom . Fixed 8bpp ROM readback in K053246 (video\k053246_k053247_k055673.c) and removed some obsolete trampoline and debug handlers (drivers\konamigx.c, mystwarr.c and rungun.c) . Cleanups and update or removal of obsolete comments (video\k051316.c, k051960.c, k052109.c, k053244_k053245.c and k053250.c) - Midway Custom: Fixed missing streaming BGM/Sounds during gameplay in gauntleg, gauntdl and carnevil (machine\midwayic.c) (ID 05636) - Namco Custom . Implemented the Namco Custom 116 palette and raster IRQ controller as a device, and hooked it up to the namcos1.c, namconb1.c and namcofl.c drivers. . Memory system and Namco improvements: Explicit regions in address maps (AM_REGION) are now looked up relative to the device rather than as siblings when in an internal address map (similar to devices and shared pointers) Besides being more orthogonal than before, this allows internal ROMs of MCUs and similar devices to be hooked up in a nicer and more foolproof way. Updated the m37710 and m5074x (m6502 derivative) to take advantage of this. Divided the M37702/M37710 into specific models, with each model having its own internal address map containing the correct amounts of internal RAM and ROM. M37702 MCUs found on various Namco PCBs are now all unique devices and have their respective internal ROMs loaded as device ROMs. Also did some spring (fall) cleaning in addrmap.c/memory.c/dimemory.c. m_devbase (the base device used for tagmap lookup when late-binding handlers and finding memory regions and shares) is now a reference rather than a pointer, since we know what it is when the address_map_entry is constructed and it doesn't change (it depends solely on whether it's an entry in an MCFG-provided address map or an internal one) And for the same reason, there's now only one m_devbase per address_map_entry rather than individual copies for read/write/setoffset/sharedptr. Removed mysterious unused address_map_entry member "m_region_string", along with a silly assert probably left over from when Aaron was replacing AM_BASE with AM_SHARE years ago. Added a comment noting that "make sure all devices exist" in device_memory_interface::interface_validity_check() actually does nothing, like the proverbial goggles. The reason there's just a comment and not a fix is I haven't figured out how to fix it yet (is it possible to extract the original device tag that was given to a proto-delegate? . namcona1.c: Replaced M37702 CPU2 with 'C69 (M37702)' or 'C70 (M37702)' . namcofl.c: Removed no longer needed endian flip, fixes 'Final Lap R' horizon. . namcofl.c and namconb1.c: Replaced M37702 CPU2 with 'C75 (M37702)' . namcos11.c: Replaced M37702 CPU2 with 'C76 (M37702)' . namcos22.c: Replaced M37702 CPU2 with 'C74 (M37702)' only in acedrvrw, cybrcomm, raveracw, ridgera2, ridgerac and victlapw. - Pokey sound: Updated Pokey to use delegates for its callbacks - PLA: Small optimization to pla_device::read() (machine\pla.c) - RP5C01 RTC . Put in a read_line for the alarm pin (machine\rp5c01.c) . Added RP5C01 device to spnchout . Allow RP5C01 clock of 0 . Allow RP5C01 without battery (MAME core still writes a 0-byte file tho) - RP5H01 security . Changed RP5H01 from read8/write8 to read_line/write_line . Removed unneeded RP5H01 enable/disable in drivers (drivers\nss.c and machine\playch10.c) . Added RP5H01 device to spnchout . Had a look at the datasheet, the RP5H01 dumps look fine to me. - Samsung S3C24xx (ARM MCU): Added assert for index out-of-bounds access with (MESS) Gizmondo - SCSI: Sync rest of lines with input buffer (bus\scsi\scsi.c) - Sega Custom 315-5124 (megaplay.c, megatech.c and segae.c) . Use a simple array for CRAM. Fixes autosave issue found by Tafoid. . Prevent VDP register 6 contents from being overwritten while a line is being drawn. Fixes title screen in (MESS) backtof3. . Added new member to save state . Fixed graphics glitch in (MESS) E-Swat attact mode on the smsj driver and some small cleanups (video\315_5124.c) . Small improvements to the latching of some registers. Fixes flicker in (MESS) Power Strike 2 (video\315_5124.c). . Refactored sprite handling, fixes status bar on Tarzan for Gamegear. Removed m_collission_buffer member variable. Tweaked game gear timing to fix glitches in status bar of Chicago Syndicate for Gamegear. . Disable (MESS) Gamegear SIO register when in ggsms mode. Fixed tilemap mirroring on sms1 VDP needed for Japanese version of Ys. Fixed BIOS support in the Gamegear driver. Fixed collisions when column #0 is disabled. - Seta Custom . Begin ST-0016 reorganization. Untangle some drivers from st0016_state now that it's a device. . Replaced Z80 CPU2 with ST0016 in jclub2.c, macs.c, speglsht.c, srmp5.c and st0016.c. Removed static config from ST0016. - SVGA . Added hookup for Trident TGUI9680 video card . Added video card BIOSes: S3 9503-62 (not working), Elsa Winner 1000/T2D, S3 ViRGE BIOS v1.00-10 and ATi mach64V1 113-34404-104. . Added CLKSYN test register (SR17), gets stock Trio64V2/DX BIOS to boot (video\pc_vga.c) . Fixed Mach32 and Mach64 crash when reading vblank state . Moved Trident VGA device into its own source file. Added ID register, banking and clock selection (isa\trident.c). Added Trident DAC command register, so that we can tell when in a 15 or 16 bit mode. Forced doubleword offset when using an SVGA video mode, fixes display in Eggs Playing Chicken. Some WIP, added CRTC offset bit 8 and start address bits 16-18. Extended 3d8/3d9/CR0E new mode SVGA bank size. BIOS now detects 2MB VRAM (but WIN95 is still clueless). Fixed Trident busy bit, added logging of 2D acceleration registers. Implemented basic bitblt and bresenham line functions. Added mono bitmaps generated by writing to VRAM. . Added 2D acceleration support for 15/16/32bpp video modes to Trident (untested since XFree86 3.3 requires linear addressing, which in turn requires VLB or PCI support) . Improved mono pattern drawing in Trident, fixing foreground colour, adding background colour and clipping it. . Added Trident XOR drawing, added XNEG and YNEG reverse directions for mono pattern BitBLT. Improved Trident Bresenham line drawing, it now at least draws in the right direction. Added Trident hardware cursor. . Added programmable clock, previous clock select was for TGUI9440CXi and TVGA cards, still lacks a divisor for higher refresh rates, but up to 70Hz modes should be correct now. . Hopefully found the clock divider bit used by the BIOS, refresh rates should now be pretty correct. . Fixed Trident programmable clock selection when running XFree86 . Reworked Trident Bresenham line drawing. It's better, but I'm still not convinced it's completely accurate. . Trident MMIO WIP. To test with Win95, set the card ID to 0xe3. - Taito Custom . Added missing save states + small cleanup to TC0480SCP, improves but doesn't totally fix Racing Beat save state. . TC0150ROD cleanups, no functional change expected. - Toaplan Custom: Cleanups and update (video\gp9001.c and toaplan_scu.c) - VGA: Correct access to attribute register when PAS bit is set, allows XFree86 to detect ISA VGA. - Voodoo GFX . Fixed Voodoo 3D graphics have no palette in hangplt or thrilld (video\vooddefs.h) (ID 05629) . Reverted r31185 in video\voodoo.c (Passing of attotime as const references). This fixes emulation hangs in gauntdl, gauntdl24, vaportrx and vaportrxp after initialization (ID 05637) (ID 05638). . Added support for writes to trexInit1 register, to return TMU configuration data. - Z80 DMA: Added asserts for index out-of-bounds accesses with (MESS) wmbullet -flop cpm22 - alpha68k.c: Consolidated some gfx_layouts, use core palette handling. - armedf.c: Text videoram is 8-bit to begin with, no need for this. - artmagic.c: Moved some functions and protection handlers into driver class - asuka.c: Minor doc updates. Added B68-xx PALs to Asuka & Galmedes sets. Asuka & Asuka is the original Taito B68 game. Galmedes runs on the same board with B68 parts as per documentation in the header of the file. - atarisy4.c: Converted from polylgcy.h to poly.h - bartop52.c and maxaflex.c . Big clean up of the driver, simplifying memory map, removing writes to ROM, etc. . Start attempt to untangle a bit the video & machine code . Fixed a regression in Max-a-Flex driver and cleaned up a little bit the driver . Reduced tagmap lookups . Reduced a bit the GTIA #define obfuscation. Untangle GTIA and ANTIC some more. Moved ANTIC start procedure from video\atari.c to video\antic.c. Another small ANTIC bit. Converted GTIA to be a device. Removing a bunch of static vars along the way. Some more ANTIC refactorization. Reduced number of define'd functions (video\antic.c). Small WIP and removed ANTIC_RENDERER. Converted ANTIC to be a device. - centiped.c . Made centtime the parent (this is actually revision 4). Renamed ROMs to include correct part numbers and locations. . Added sync PROM to Warlords - cinemat.c: Moved audio functions to the driver class - coinmvga.c: Minor cleanup, new set added and changed game descriptions. - cops.c . Started reworking Cops driver into a full Nova Lasermax emulation. Added onboard sound chip, fixed the alphanumeric display. . Added more sophistication to cops DACIA - cps1.c . Handcrafted PAL for clone 'Varth: Operation Thunderstorm (USA 920612)' . Replaced gfx ($0) rom in clone 'Street Fighter II': Magic Delta Turbo (bootleg, set 2)' - cv1k.c . Small cleanup. Removed unneeded class member names prefixes. . Fixed usage of uninitialized members in rtc9701_device . Small optimization in cv1k_state::espgal2_speedup_r() . Added game rom from parent set to clones Mushihime-Sama (2004/10/12 MASTER VER.), (2004/10/12 MASTER VER), Puzzle! Mushihime-Tama (2005/09/09 MASTER VER) and Mushihime-Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54) - darius.c/rastan.c: Minor rom loading/banking cleanups - dgpix.c: Slight visual clean up. Minor doc update. - dynax.c: Moved remaining functions into the driver class - eolith.c: Needs faster EEPROM access like vamphalf.c, fixes 'Fortress 2 Blue Arcade' again. - funworld.c: Added assert for index out-of-bounds access with rcdino4 - fuukifg2.c and fuukifg3.c . Correct clock speeds for the Susume! Mile Smile / Go Go! Mile Smile and Gyakuten!! Puzzle Bancho sets . Some Fuuki refactoring. This fixes noticable slowdown while performing full screen frame buffering (ID 02506). - fuukifg3.c: Some Fuuki refactoring - galaxian.c . Redumped clone Battle of Atlantis (set 2) . Fixed Scorpion save state regression - gameplan.c . Clamping pen access in gameplan_state::screen_update_leprechn() . Re-hooked up leprechn videoram read, which was removed when old leprechn.c driver was merged into gameplan.c (MAME 0.115u1). - goldstar.c: Changed 'Fruit Bonus 2010' to a parent set - gottlieb.c: Untangled Gottlieb audio from the arcade driver, so it becomes available for pinball. - highvdeo.c: Fixed 'New Magic Card' and 'Record (Version 1)' palette regression from RAMDAC device conversion (ID 05675) - hitme.c: Fixed save state problem - homerun.c: Fixed garbage at top of screen in ganjaja (ID 05644) - igs011.c: Added save states - igs017.c: Preliminary IGS029 protection simulation for Mahjong Man Guan Cai Shen. Fixes sound, DIPs and crash at game start. - itgambl2.c: De-insanify the address map. This fixes all sets crashed before OK (ID 05493). - jaguar.c: Fixed Clang warning in video\jagblit.inc - kaneko16.c: KANEKO CALC3 "standardized" it some - konamigx.c: Fixed gfx2 rom loading in le2 and winspike - legionna.c and raiden2.c . Ported OG's fix in M68k based games to machine\seicop.c. 'Seibu Cup Soccer' players now turns around right, at the expense of being mostly without the head (!). 'SD Gundam Sangokushi' has less erratic Homing Missiles and third mid-boss doesn't go to wonderland anymore. . Updated 0205 for M68k based games (machine\seicop.c) . Added palette DMA (RAM to private buffer) to all Seibu Cop games. Moved some of the Raiden 2 COP emulation to a new device (just the memory DMA stuff, including private buffer copy code) and started sharing it with legionna.c in order to avoid code duplication. We can slowly move other duplicate code over too and eventually kill the old seicop.c. De-duplicate seicop table upload code. . De-duplicate number conversion code. Restored notes on uploaded tables and divide into functions (machine\raiden2cop.c). Merged some common code. Some code reduction and refactor. Notes and find trigger legacy change. Debug stuff and notes (machine\raiden2cop.c). . Use common collision logic that appears to work for all games using the same commands, tested r2 etc. and 2nd boss still works (machine\raiden2cop.c). . Apparently R2 collisions are more correct like this - it should be possible to pass through the 2nd boss 'straight' attack with a fully powered up ship (it's also more consistent with collisions in r2dx_v33 where you can - that does collisions in software). . legionna.c . Added 'Flip Screen' dipswitch to Denjin Makai . Made Seibu Cup Soccer to be 320x240 from this guess (makes sense considering that there's an ugly black border on bottom screen otherwise). . Reworked the Seibu Cup Soccer debug mode code so that it can be enabled for all sets rather than just the non-functional bootlegs, also documented how you get the Olympic Soccer '92 title screen and disable a debug display in the Cup Soccer Selection sets. The COP could be involved in providing a rom overlay for this area. . Fixed radar for Seibu Cup Soccer (machine\seicop.c) . Fixed foreground tilemap in Godzilla, fixes several missing graphics in it. Fixed scrolling. . Experiment with the bootleg . Use CRTC. Less trampolines. . legionna re-org sound writes . Improved legionna collisions . raiden2.c . Fixed Raiden DX & clones, Raiden II & clones and clones New Zero Team and Zero Team 2000 (Games now playable) . Added COP 0x6200 command to Raiden 2 driver . Fixed sprite DMA for Raiden 2, bullets are now visible. Added notes. . Misc addition. Removed test code. . Raiden DX (UK) banking . Sprite placement and priorities . Added destination base address for sprite DMA, fixes purple laser visibility in Raiden II/DX. . House shadows. Make sprite layer order per-game. Added notes. . Better blending and finetuning . Collision rework. Misc changes. . Fixed sticky sprite on top-left for Zero Team USA / X Se Dae Quiz. Clone New Zero Team doesn't need mainprg banking. Fixed a rom load in clone Zero Team 2000. Added 2 blend pens and blending for Zero Team. Added inputs and collision to clone Zero Team 2000. Fixed New Zero Team resolution. New Zero Team dipswitches. . Sprite layer disable bit . Get rid of set 1,2,3,4,5,6,7,8 and 9 naming . Buffer tilemaps to prevent tilemap / tilebank desync in r2 intro (fixes 1 frame glitches in animation) . Kludge for sprite flickering (video raw params should solve it cleanly but we need to understand seibu crtc more) . Added missing blended colors and glass roof . Fixed sprite clipping . Added save states . Added missing blend table value for Zero Team (used by 1st boss spear, see https://www.youtube.com/watch?v=ZmPyKNHewME) - leland.c . Small cleanup (audio\leland.c) . Fixed Danger Zone sound regression - macs.c: Fixed Clang build - meritm.c: Removed stray addition used for testing which later turned out not to be needed after the separation of Americana & Merit Touch Joker Poker games. - metro.c . Added DIP locations to the Varia Metal sets . Figured out one dipswitch in Mouse Shooter GoGo . Removed some leftovers (includes\metro.h) . Sort games by hardware type, clean up address maps and start unifying MCFGs. Fixed assert. - micro3d.c: Moved video functions into the driver class - midtunit.c, midwunit.c, midxunit.c and midyunit.c: Adjust initial screen sizes in Midway TMS340-based drivers so aviwrite will work better - model1.c: Moved most remaining functions into driver class - model3.c . Rewrote 2D tilemap rendering . New 3D renderer and various fixes (still heavily WIP) . Added Real3D DMA timer . Fixed Harley-Davidson and L.A. Riders . Removed rom patches . Experimenting with interrupts. Fixed Clang build (video\model3.c). - namconb1.c . Improved interrupt handling, fixing raster-effects used by Nebulas Ray and Mach Breakers. This fixes Nebulas Ray is missing a rotation effect in the first level (ID 02124). . Fixed Nebulas Ray test mode . Fixed missing starfield. Basically fixed by Phil's update, we no longer need to patch out parts of the gfx rom. - namcops2.c: Documentation fixes - namcos2.c: Whitespace laundry. Moved most remaining functions into classes. - namcos12.c, namcos23.c: Fixed array out of bounds access in machine\rtc4543.c. Fixed debug assert (namcos23.c). - namcos21.c . Moved most remaining functions into classes . Fixed Winning Run missing 3D (this changes STATIC_COUNT from 0x100 to 0xff) (emu\memory.c) . Fixed bad downcast in Winning Run (machine\namcos2), now it crashes later on as it did in 0.154, where MT01965 (Driver's Eyes) seems to have resurfaced. Up to 0.153 it worked fine. . Kill some trampolines; 'user' memregions get real names. - naomi.c . Redumped IC15 of 'Faster Than Speed', fixes graphics glitches on some stages. . Redumped Initial D Arcade Stage Ver. 2 (Japan) (Rev. B) GD-ROM . Added "offset protection" used by some carts. 'Samurai Spirits Tenkaichi Kenkakuden' and 'The King of Fighters XI' boot now (machine\awboard.c). . M2-type cartridges 4/8MB mode mapping documentation/code . Ferrari F355 Challenge and Virtua NBA (prototype) protection keys and small docs update/corrections . Atomiswave controller type register . Added PIC key to inidv3cy - namcos22.c: Made cabinet type a confsetting instead of dipswitch. Fixed debug assert. - nemesis.c: Fixed K005289 off-by-one frequency; adds missing detune effect to Nemesis bg music. - nmk16.c . Added proper NMK004 internal rom. This fixes Source: NMK004 sound CPU is just (imperfectly) simulated (ID 02417). . Hooked up support for NMK004 internal rom in MAME, replacing Nicola's old simulation code. . Fixed TLCS90 16-bit timers & support NMI in the core . Various tweaks and improvements in NMK16 driver (timings, sound balance, etc.). This fixes a different gfx overlap priority between hugest ships and weapon pickups in Macross II (ID 01117) and music emulation is not 100% perfect (ID 03395). . US AAF Mustang now has sound / music for the first time (ID 02422) . Much better sound / music in the following games Bio-ship Paladin, Vandyke, Black Heart, Acrobat Mission, Koutetsu Yousai Strahl, Thunder Dragon, Hacha Mecha Fighter, Super Spacefortress Macross and GunNail . Note: Thunder Dragon parent was not protected, I've marked it as such and removed the protection sim from it. The protected Hacha Mecha Fighter set never worked properly, I've demoted it to non-working as a result, the new bootleg works with full sound and correct game logic. The protected sets don't handshake with the NMK004 so now lack sound (the sim code didn't care). Currently needs an ugly kludge to prevent bioship resetting periodically, the NMK004 is used as a watchdog, but it ends up hitting it slihtly too late so often resets after a few minutes, probably wants even more precise timing for timers / cores / framerate / whatever? Still need to tweak a few things, convert to raw video params, add 2nd buffer. . Double buffer NMK16 sprites . Moved protection vectors from hachamfb to hachamf, making the latter to work properly too. . Added note about Task Force Harrier dipswitches - nss.c, sfcbox.c and snesb.c . Added a few more members to SNES save state and initialized some unintialized members (video\snes_ppu.c and machine\snes.c) . Removed unneeded RP5H01 enable/disable in drivers . Fixed nss.c assert - nwk-tr.c: Added assert for index out-of-bounds access with racingj2 - pcxt.c: Init CGA bank number. This fixes Tetris (bootleg of Mirrorsoft PC-XT Tetris version) crashed in debug build at start (ID 05633). - peplus.c . Documentation update - File in paytables, minor corrections & add per game paytable + payouts for the Multi-Poker set. . Minor updates: Makes allowances for the Non Plus versions and prevents the Door Open bit from cycling for the earlier 32K versions. This allows several games to properly work such as PP0120 - Wild Sevens Poker. . Fixed coin in cycles to eliminate the Coin-in Timeout errors. All current sets should be fully playable without issues. . Set the French 32K IP0xxx poker games to the nonplus init. Explain in the header of the source file under Initialization: Method 3 about the secondary door that needs to be closed to play. Also made Joker Poker sets clones of the lowest numbered Joker Poker and did the same for the Standard Draw sets. - playch10.c . Removed old hack not needed anymore since ages . Removed unneeded RP5H01 enable/disable in drivers . Fixed assert - plygonet.c: Added a pair of save states to the dsp56k core, fixes plygonet regression. - psikyo4.c . Fixed MAME crashes when enabling flip screen in hgkairak, hotgm4ev, hotgmck, hotgmck3 and hotgmcki (ID 05688). . Enabled GAME_SUPPORTS_SAVE since the driver and the needed cores seem to support save just fine and quick testing didn't show any problem. . Improved and clean up wavetable ROM banking. The mask ROM tests in hotgm4ev and hotgmcki pass now. loderndf still fails for unknown reasons. Miscellaneous cleanups as well. - punchout.c . Added RP5C01 and RP5H01 devices to Super Punch-Out. Removed spunchout protection hack. . Changed vlm5030_device pin read/write functions to READ/WRITE_LINE. Fixed VLM5030 sound clock. . Fixed sound output. Note: On the real Punch-Out machine (cabinet) the N2A03 sound comes out of the right speaker and the VLM5030 comes out of the left. - rallyx.c: Correct Rally X sprite pos based on old video recording, the "displacement" workaround was wrong. - ramtek.c: Year correction - rcorsair.c: Added some notes - segas32.c . Minor doc update. Small cleanup (driver and includes\segas32.h). . Added PCB info to Air Rescue . Added missing user2 rom to Stadium Cross (World) - segac2.c: Added 315-5296 device - segaybd.c: Allow link cpu to execute (Z80E LINK BOARD CPU) - seibuspi.c . Service Coin was wrong (IPT_SERVICE is F2) . Added global alpha bit . Draw sprites front to back, this fixes some issues with shadow. . spi_layer_bank_w unknown bit wasn't alpha blending enable afterall - seta.c: Hooked up PIT8254 to one of the games as example - sf.c . Small cleanup . Added DIP locations. Added sfan analog buttons, removed the fake ones. Note: Timing is a matter of tenth-seconds. Tapping the button too lightly/quickly, will not trigger an attack, same as on the original cab. Similarly, holding the button for too long won't register either, analogous to the original cab by pushing the button down slowly instead of hammering it. - snesb.c . Added decryption for Gundam Wing: Endless Duel (SNES bootleg). Still doesn't work, probably needs correct boot vectors or some other protection? Prevent crash. . Added additional shared memory block to Gundam Wing. Added protection handlers. Correct reset vector. Worked around bad startup. Game now boots but doesn't coin up. . Added coin/DSW inputs to Gundam Wing, game is now playable. . Set up dipswitches for Gundam Wing - spdodgeb.c: Small cleanup - speedbal.c . Added decryption support to Music Ball (Game now playable) . Give Music Ball it's own correct 'Bonus_Life' dipswitch settings. Added DIP locations to Speed Ball & Music Ball. - splash.c . Improved Funny Strip / Puck People protection simulation . Splash was mostly developed by OMK Software: http://www.baudejogos.net/jogoinfo.php?id=2849 - ssv.c: Added PCB for Storm Blade and Drift Out '94 rom board - stv.c: Added assert for index out-of-bounds with saturneu -cart test1f (video\stvvdp2.c) - system1.c: Fixed most (all) save state regressions - taito_b.c: Verified clock speeds for the East Technology's ET910000A PCB used by Sel Feena and Ryu Jin - taito_f3.c: Moved video functions into the driver class - taitojc.c . Removed debug_dsp_command(). . Added op_add_s16_mem and op_bldd_sbmar (tms32051\32051ops.c) . Poking around with Dangerous Curves (cpu\tms32051\tms32051.c). Added notes. . Removed assumption that DSP common ram is an MB8421 (MB8421 used on the sound part) . Tried to fix a debug assert - tourvis.c: Added version 5.3 BIOS - twinkle.c . Beatmania IIDX Twinkle hardware: The IDE DMA is now hooked up, but the sound board isn't running well enough yet for it to make a difference. Hooked up the FDC37665GT and HLE the XVD701 and the 68k sound board responses to get most of the games booting. There is no sound and the games all fail with a HDD error when you start a stage. Beatmania IIDX with DDR 2nd Club Version wants the GQ863 hard disk. . Added missing harddisk images to bmiidxc, bmiidxc2 and clone bmiidxca . Added missing 3rd & 6th style CD images to bmiidx3 and bmiidx3a . Replaced bmiidx5 CD-ROM images - upscope.c and mquake.c: Fixed Up Scope and Moonquake crashing shortly after start (ID 05631) - vamphalf.c: Minor doc update - vectrex.c: Converted Vectrex to use slot devices for their carts - vegas.c, seattle.c: Fixed missing streaming BGM/Sounds during gameplay in gauntleg, gauntdl and carnevil (ID 05636). - wecleman.c: Added missing K007232 volume callback - williams.c . Changed Williams diag AU/MD button to PORT_TOGGLE (ID 05689) . Added missing video board PROM to Joust 2 . Added PROM images for Inferno which have the same data as Joust 2 and not hooked up as of yet. - 500 GP: Fixed recompute_bcount regression in cpu\h8\h8.c, this fixes 'SUBCPU INITIALIZE TIME OUT' (ID 05502). - AGEMAME . aces1.c, mpu5.c and proconn.c: Fleshed out the drivers a bit. Still don't work, but are a bit closer. . bfm_sc2.c: Fixed quintono save state problem. Actually all the games in the driver are marked as GAME_SUPPORTS_SAVE, but there wasn't really any support. Cleaned up a few of the variables that aren't used. Changed default DIPs to allow attract modes to run. . bfm_sc4.c: Added assert for index out-of-bounds access with sc4dnda (machine\68307tmu.c). Added assert for index out-of-bounds access with sc4crzgnlm, sc4casrya and others / use const reference (drivers\bfm_sc45_helper.c). Small cleanup . globalfr.c: Replaced M37710 CPU1 with M37702S1 . tasman.c: Removed extraneous K053246/7 device and use correct gfx layout for K055673; fixes debug assert (ID 05634) and gfx viewer crash. Hooked up K053246/K055673 registers; object ROM tests pass now. . Adding a couple items mistakenly left out to jpms80.c and jpmsru.c - Amiga . Implement the Amiga 500 low-level keyboard controller using the newly dumped internal ROM. Removed existing keyboard HLE (machine\mos6526.c and amigakbd.c). . Silence keyboard log spam and fixed internal ROM filename (machine\amigakbd.c). . Fixed Amiga 600 IDE hard disk regression (machine\gayle.c) . Added preliminary software lists for the Amiga 1000 and Amiga 3000, a general workbench list and an application list for testing. Images in those lists are either verified good or best available currently. Many images are still missing. Update Amiga 3000 Kickstart info. . Added keyboard reset circuit. You can now reset the Amiga with the usual Ctrl-Amiga-Amiga key combination. . Added the latest version of EmuTOS to the Amiga 1000 softlist and fix CIA interrupts getting lost in certain situations. This fixes the EmuTOS keyboard and potentially more. Also fix a possible issue with blitter delays. . Softlist update, added Workbench 1.3.2 DE and some apps. . Added save state support to the Amiga keyboard and some info about A1000 keyboards . Display more info about Amiga images (imgtool\modules\amiga.c) . Fixed crash with expansion slot devices (bus\amiga\zorro\zorro.c) . Connect Zorro interrupts in the Amiga 500 drivers and reinitialize Zorro devices on reset to stop them from disappearing on soft reset. . Fixed expansion slot device initialization (bus\amiga\zorro\zorro.c) . Added an initial software list for some Amiga driver disks - Battle Rangers: Fixed sprite priority problem (fighting against the first final boss) (ID 00385) and (sprites in the same player where the black box with text that appears sometimes are printed in front of them) (ID 00386) by making battlera use the proper PCE video code. Note: There is a significant performance cost to this as the real PCE code is slow, also some graphics will now flicker a bit because the real PCE emulation respects sprite chip limits / masking (which is why the submarine boss now works). - Black Tiger: Sprite priority fixes (ID 00554) (ID 05708) - Bubble Bobble: Fixed clone Super Bobble Bobble (bootleg, set 1), promoted from GAME_NOT_WORKING. - Candy Candy: Fixed I8051/MCS-51 modernization regression (MAME 0.150) with timer 2 interrupts for some cpu cores. This fixes loss of in-game sound in Candy Candy. - Chequered Flag . Fixed save state problem . Converted to bankdev . Improved K007232 volume/pan controls, still largely guesswork. - Cosmoswat: Fixed heap-buffer-overflow with -aviwrite (palette was out of range) (ID 05666) - Cue Brick: Fixed save state regression - Cycle Warriors . Fixed Cycle Warriors (rev C) hangs at boot (Game now playable) . Added the "Hardware Test Mode" dipswitch that rev C has that rev B does NOT. Gave rev B it's own dipswitch setting to reflect the lack of the newer test mode. - D. D. Crew: Fixed Player 3 buttons not working (ID 05705) - Deroon DeroDero: Fixed assert (machine\tecmosys.c) - Dongfang Shenlong: Rewrote skeleton driver (Game now playable) - Drag Race: Added tachometer outputs - Draw Poker III / Dwarfs Den: Added assert for index out-of-bounds access with dwarfd and dwarfda (video\i8275.c) - Flyball . Controls for Batter and Pitcher are intertwined (ID 05697) . Only descramble ROM once at startup - Food Fight: Added default initialized NVRAM - Grand Champion: Fixed character layer colors - Grand Cross: Added PCB layout for Grand Cross. Note: A pic of the PCB shows a few things are missing from the emulation: No ES-8712 ADPCM support, need to determine the correct controls for the M6585 along with the ES-8712 and sample rom use. Missing the EEPROM support. - Grand Tour: Better dipswitches/input port - Gravitar: Added address decoder PROMs to Gravitar and clones. Renamed ROMs to include correct part numbers and locations. - Great Guns: Fixed save state crash - Gridlee: Fixed save state regression - Gyruss and Roc'n Rope: Added irqack (see http://mametesters.org/view.php?id=5350 ). This fixes the issue on Roc'n Rope where the gameplay demo in attract sequence is too short: The player dies on the lower right platform, whereas he's supposed to die on the fourth platform. This was fine with older MAME versions prior to 0148u2 when the M6809 code was rewritten. - Laser Disc: Laserdisc titles added and reorganised to include dumps from other sources. ALG titles in particular have been heavily reorganised. Note: This is phase 1, I have more to add and organise. All ALG games are now marked with NO_DUMP laserdiscs, since it seemed strange to have some one way, and some the other. Dragon's Lair now supports the earliest beta code, including that in machine serial number #001. - Mad Dog II and Virtua Cop: Changed 'Mad Dog II: The Lost Gold v2.02' and 'Virtua Cop (Revision A)' to clones (ID 05686) (ID 05685). - Magical Truck Adventure: Make game boot. Fixed missing textures. - Mahjong Sisters: Fixed crash - Match Games: Changed set mpoker and driver to mgames. Also description from Multi-Poker to Match Games accordingly with the official flyer at http://flyers.arcade-museum.com/?page=thumbs&db=videodb&id=6500 . In fact, these are skill instead of poker games. Also added way more documentation and some cosmetic fixes. - MTV Rock-N-Roll Trivia (Part 2): Fixed save state regression - Pac-Man - 25th Anniversary Edition: Fixed save state crash - PinMAME . New genpin sample: http://www.progettosnaps.net/samples_en.html . allied.c: Everything works. Fixed coins, all 12 games marked as working. Added blanking. Added MOS6530 RIOT. . atari_s1.c: Imperfect sound. Removed unused member. . atari_s2: Marked fourx4 not working (it never worked). Sound for superman, hercules and roadrunner. Added noise circuit, although it doesn't seem to be used. Fixed sound clipping. . by17.c: WIP. Slight improvement in display. Various fixes, 9 of the 10 games are playable. . by17.c, hankin.c, st_mp100.c and st_mp200.c: Used same display method as by35. . by35.c: Copied by17 code in, most games boot although none are playable in a satisfactory manner. Slight improvement in display. WIP, added notes about sound cards used. Fixed display. Most games are somewhat playable. . by6803.c: Preliminary work . g627.c: Fixed clones rota_115 and rota_101 . gp_1.c: Fixed display problem, games marked as working. Working sound for vegasgp, famlyfun and startrip. Added new sample used it in gp_1. . gp_2.c: WIP . gts1.c: Added PPS4/gts1 notes . gts80.c: Preliminary work and WIP. Added original 'sound-only' card. Moved original sound board to audio\gottlieb as a device. . gts80a.c: WIP . hankin.c: Display changed to florescent blue. Added sound. All 5 games marked as working. . inder.c: WIP. 250 CC, Atleta, Brave Team, Canasta 86, Clown, Corsario, Lap by Lap, Moon Light and Mundial 90 are working are working. . jeutel.c: Some work . jp.c: Faeton is working. Another 6 games are playable. Added some notes. . ltd.c: System-3 games Atlantis and Black Hole are working with no sound. System-4 games display but not playable. . micropin.c: Pentacup can coin up & start, but no inputs. Added notes. . rowamet.c: Game playable with imperfect sound. Improved inputs. . peyper.c: Added sound. Improved display; added i8279 chip and inputs. Fixed display for all games. 9 of the 10 games marked as working. Added notes. . s3.c: Minor cleanups and notes. Fixed problems with sound and switches. More improvements to the sound. Documented dips. . s3, s4, s6, s6a, s7, s8, s8a and s9.c: Moved diagnostic buttons to the number pad: 1 = sound card NMI (tests sound card), 2 = sound effects or chimes (default = effects), 3 = speech on/off (default = on) where fitted, 4 = MPU NMI, 5 = Advance button, 6 = Manual-Auto/Up-Down button, 7 = Reset High Score, 8 = Memory Protect (coin door switch) and 9 = Enter dipswitch info . s4.c: Fixed sound, 4 games marked as working (Flash, Stellar Wars, TriZone and TimeWarp). Documented dips. . s6.c: Sound improved, 4 games marked as working (Blackout, Gorgar, Scorpion and Laser Ball). Gorgar Speaks! Fixed diagnostic mode, fixed dips. . s6.c, s6a.c, s8.c, s8a.c, s9.c, s11.c, s11a.c, s11b.c and s11c.c: Up/Down button needs IPT_TOGGLE . s6a.c: Fixed sound. Algar and Alien Poker marked as working. Fixed diagnostic mode, fixed dips. . s7.c: Cleanup. Black Knight, Cosmic Gunfight, Defender, Firepower II, Jungle Lord, Laser Cue, Pharaoh, Star Light, Time Fantasy, Varkon and Warlok marked as working. Most games have sound. Fixed diagnostic mode. . s8.c: Fixed diagnostic mode . s8a.c: Fixed layout and coins, marked Still Crazy as working. Fixed diagnostic mode. . s9.c: Tidy up. Fixed diagnostic mode. Sorcerer and Space Shuttle now working. . s11.c: Resized layouts . spectra.c: Minor improvements. Added slingshot sound and some notes. Fixed coin sound. Removed useless variable. . spinb.c: WIP. Fixed colours in Jolly Park. . st_mp100.c: All 12 games are playable. Fixed display, 4 games marked as working (pinball, stingray, stars and memlane). Added game number of Cosmic Princess. . st_mp200.c: WIP. Fixed display. . taito.c: Initial work, some games playable without sound. A few more sets working or with sound. Added AY8910 sound, snake sounds better now. . wico.c: Minor improvements. Added missing inputs and mechanical sounds. Added notes. Fixed broken bank of switches. . wpc_dot.c: WIP . zac_proto.c: Used correct CPU, fixed inputs and added mechanical sounds. All 3 games are playable. . Removed unneeded includes (by17.c, by35.c, by6803.c, gp_1.c, gp_3.c and gts1.c) . Minor cleanups and notes (flicker.c, gp_2.c, rowamet.c, s3.c, techno.c, wico.c and zac_proto.c) . Added model numbers (wpc_95.c, wpc_an.c, wpc_dcs.c, wpc_dot.c, wpc_flip1.c, wpc_flip2.c and wpc_s.c) - Pop Bingo: Fixed girls 4,5,6 in bonus round - Queen?: Added assert for index out-of-bounds access - Quiz Show: Added 2nd chr prom from Atari's source archive, may have some bad bits. - Raiden II New / Raiden DX . Added EEPROM raidendx_eeprom-r2dx_v33.bin for booting as Raiden DX . Use standard video code in new Raiden II / DX / ZT sets. It still has the sprite protection. Added scroll. tx bank for Raiden II / DX. . Make r2dx_v33 2 sets for now, with different EEPROM, the codepath it takes (R2 or RDX) depends on the content of the EEPROM, I haven't found a switching mechanism (there appears to be code in the ROM for booting with buttons pressed, but it looks broken to me). . Fixed tile banking and better CPU banking. Added sound banking. Replaced bad gfx3 dump. Fixed sound. Angle protection part 1. Added debug port. . Special functions hookup. sqrt is probably newton. Added DMA. . Re-added debug port so player can die (Game now playable) . r2dx other dipswitch is flipscreen according to PCB README . Simplify banking, added save support, note about undumped New Zero Team revision and game license info from title screen. - Rainbow Islands: Use correct bootleg roms in clone Jumping (set 1) instead of ones from original sets - Razzmatazz: Fixed save state sound problem - Rock'n MegaSession: Fixed save state regression - Run and Gun: Make sprite mask ROM tests pass - Sand Scorpion: Fixed what appears to be bad sound ROM banking (Z80 banking was banking in the 'maincpu' romspace?!) - Shadow Warriors: Replaced maincpu rom in clone Ninja Ryukenden (Japan, set 2) - Sky Fox: Small cleanup. Correct color prom resistors. - Soldier Girl Amazon: Fixed lag/desync between sprites and background (ID 05700) - Sonic Championship: Fixed hitting Start can cause hang (ID 03869) - Space Invaders Multigame: Fixed clones Space Invaders Multigame (S0.81A) and (S0.82A) save state problem - Star Wars Pod Racer: Added mask dumps (user 2 roms) - Street Fighter III 2nd Impact: Giant Attack: Added layout - Super Six Plus II English Mark Darts: Added note - Super Slam: Fixed missing sound (due to m68k changes in the 0.154 cycle?). - Two Minute Drill: Removed GAME_SUPPORTS_SAVE flag from Two Minute Drill since it's been converted to be derived from Taito F3, it needs proper save state support in the parent driver first. - unknown Pac-Man gambling game . Renamed and redefined the inputs to match the behavior of both games . Added complete instructions to play the stealth gambling game . Added proper sound support . Rearranged some inputs and hooked extra port. Found some DIP switches. . Added technical notes and instructions. Cleaned up the whole driver. - WWF WrestleFest: Game works again. Fixed M68k byte smearing regression (ID 05693). - Input port . Fixed logic of restrict digital joysticks (emu\ioport.c) . Added aliases for some IPT_x (emu\ioport.h) . ioport_array stuff (namcos22.c, namcos23.c and taitojc.c) . ioport array for Outrun and Sega Y-board . Added friendly macros to initialize an ioport_array_finder with an array of port names. Update namcona1.c, segaorun.c and segaybd.c to use them. Removed runtime ioport tag lookups from a few other drivers. . Converted various pinball drivers to ioport_array (drivers\atari_s1.c, atari_s2.c, flicker.c, g627.c, peyper.c, spectra.c, techno.c, thayers.c and zac_2.c) . Converted SideArms driver to ioport_array . Allow ioport_finder to be dereferenced when NULL so read_safe() can be used (emu\devfind.h) - Dipswitch fixes in 4enraya.c, by17.c, by35.c, gp_1.c, gp_2.c, gts1.c, hankin.c, igs017.c, iqblock.c, legionna.c, metro.c, sf.c, snesb.c, speedbal.c, st_mp100.c, st_mp200.c and tatsumi.c - Fixed rom names in asuka.c, atarig42.c, bwidow.c, centiped.c, circusc.c, destroyr.c, gcpinbal.c, itech32.c and thepit.c. Doing a round of (__x) removals, put in a comment for same-label-different-hash and added // sldh. Noted confirmed instance where same data existed under different labels as a comment for Circus Charlie. - Renamed (19xxa) to (19xxar1), (arkanoidj) to (arkanoidja), (arkanoidjb) to (arkanoidjbl), (arkanoidjb2) to (arkanoidjbl2), (arkanoidjo) to (arkanoidjb), (armwara) to (armwarar1), (boblbobl2) to (sboblbobl), (centiped) to (centiped3), (centtime) to (centiped), (circusc2) to (circusc3), (circusc3) to (circusc4), (crimep211) to (crimep2_11), (crimepat) to (crimepat_14), (crshnscr) to (crashnsc), (fastdraw) to (fastdraw_130), (gogomilej) to (gogomileo), (gravp) to (gravitar1), (growl) to (growla), (lastbh) to (lastbh_006), (maddog21) to (maddog2_100), (maddog22) to (maddog2_202), (mpoker) to (mgames), (pepp0158) to (pepp0158a), (pepp0158a) to (pepp0158b), (pepp0158b) to (pepp0158c), (punchout) to (punchouta), (raiden2a) to (raiden2hk), (raiden2b) to (raiden2j), (raiden2c) to (raiden2i), (raiden2d) to (raiden2e), (raiden2e) to (raiden2ea), (raiden2f) to (raiden2eu), (raiden2g) to (raiden2eua), (sboblboa) to (sboblbobla), (sboblbob) to (sboblboblb), (searchey) to (searcheya), (sf) to (sfan), (sfu) to (sf), (ssf2) to (ssf2r1), (stntcycl) to (stuntcyc), (wsjr15) to (wsjr_15) and (xfiles) to (xfilesk) - Description changes of Air Rescue (US), Baryon - Future Assault (set 1), beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM), Arkanoid (Japan, older rev), Arkanoid (Japan, oldest rev), Arkanoid (US, oldest rev), Arkanoid (World, oldest rev), Bobble Bobble (bootleg of Bubble Bobble), Cavaleiro Negro (set 1), Cavaleiro Negro (set 2), Cavaleiro Negro (set 3), Centipede (revision 4), Circus Charlie (level select, set 3), Coinmaster Roulette P497 V75 (Y2K, Spanish), Colorama (P521, English), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Tecnausa bootleg), Competition Golf Final Round (Japan, old version), Cops (USA), Cowboy Eight Ball 2, Crime Fighters 2 (Japan, 2 Players, ver. P), Cycle Warriors (rev B), Cycle Warriors (rev C), Dongfang Shenlong, Donkey Kong II: Jumpman Returns (hack, V1.1), Donkey Kong II: Jumpman Returns (hack, V1.2), Dragon's Lair 2: Time Warp (Euro v3.12), Exerizer (bootleg), F-1 Dream (bootleg, set 1), F1 Exhaust Note (World), Fast Draw Showdown v1.30, Fun Four (set 1) [TTL], Fun Four (set 2) [TTL], Gemini 2000 (set 1), Gemini 2000 (set 2), Gravitar (version 1), Hacha Mecha Fighter (19th Sep. 1991, protected), Hawkman (set 1), Hawkman (set 2), Jet Fighter (set 1) [TTL], Jet Fighter (set 2) [TTL], Jumping (set 1), Lady Sharpshooter (set 1), Lady Sharpshooter (set 2), Lode Runner III - Majin No Fukkatsu (Japan), Lode Runner IV - Teikoku Karano Dasshutsu (Japan), Mad Dog II: The Lost Gold v1.00, Match Games, Miss Pukman ('Made in Greece' Datamat bootleg), Mr. Black (set 1), Mr. Black (set 2), New Zero Team (V33 SYSTEM TYPE_B hardware), Oba-Oba (set 1), Oba-Oba (set 2), Phoenix (T.P.N. bootleg), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2 - 4), Punch-Out!! (Rev A), Raiden DX (Holland), Raiden II (US, set 1), Raiden II (Hong Kong), Raiden II (Japan), Raiden II (Italy), Raiden II (easy version, Korea?), Raiden II (easy version, Japan?), Raiden II (easy version, US set 2), Raiden II (easy version, US set 1), Raiden II (Holland), Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM), Search Eye (English / Korean), Shadow Dancer (bootleg, set 1), Sky Shark (US, set 1), Space Shuttle (Taito) (set 1), Space Shuttle (Taito) (set 2), Street Fighter (World, pneumatic buttons), Super Bobble Bobble (bootleg, set 1), Super Bobble Bobble (bootleg, set 2), Super Bobble Bobble (bootleg, set 3), Super Punch-Out!! (Rev B), Susume! Mile Smile / Go Go! Mile Smile (newer), Susume! Mile Smile / Go Go! Mile Smile (older), T.T. Block [TTL], The X-Files (Censored, Korea), Thunder Dragon (4th Jun. 1991, protected), Thunder Dragon (8th Jan. 1992, unprotected), Titan (set 1), Titan (set 2), Vendetta (Asia, 2 Players, ver. D), Vendetta (Asia, 2 Players, ver. U), Vendetta (World, 2 Players, ver. W), Vendetta (World, 4 Players, ver. R), Volcano (Sound Only set 1), Volcano (Sound Only set 2), Zarza (set 1), Zarza (set 2), Zero Team (Japan?, earlier?), Zero Team (Japan?, later batteryless), Zero Team (Korea), Zero Team (Taiwan) and Zero Team USA (US) - MAME . render_screen_list::contains - instead of false/true, return number of same indices found in view (emu\render.c) . Make some members protected instead of private to be less fascistic and more consistent with other device_interfaces (emu\digfx.h) . Fixed props for MAME/MESS layout files . Assorted device name description fixes . Increased static handler limit, so that having a larger number of address map bank devices don't hit it (emu\memory.c). Fixed memdump output for nop/unmapped/watchpoint entries (emu\memory.c). . Device options have to be removed *before* the call of set_system_name (which sets the options of the new system), or the system is launched with no media options available! (emu\mame.c) (ID 05639) . Fixed crash in File Manager when selecting "Return to Previous Menu" from the softlist menu . Reducing differences in File Manager options when entering from softlist vs fullpath . Updated most of the remaining static TIMER_CALLBACKs to MEMBERs (audio\jedi.c/h, starwars.c/h, turbo.c/h, includes\midzeus.h, machine\harddriv.c/h, kaneko_calc3.c/h and video\midzeus2.c). . WEB Engine: Updated to latest mongoose. Do web serving in main thread. Added support for LUA server pages. Reduced tagmap lookups. Allow pasting in text. WebUI: Clean up and fixed HTML compliance. . Moved tagged_list:: out of tagged_list to make it catch-able / handle add_exception / updated exception handling UNIDASM to match the main one and return a proper exitcode in case of an error (emu\clifront.c). . Do not start tagmap lookup counting until everything is initialized / tagmap lookups are now properly shown for each execution when running multiple sets from built-in UI instead of only when exiting MAME completely (emu\clifront.c, machine.c and lib\util\tagmap.c/h). . Unregister OSD_OUTPUT_CHANNEL hooks when validity_checker is destroyed - fixes logging of unhandled exceptions in validation (emu\validity.c) . Fixed memory leak when loading CHD from software list (emu\romload.c) . Small optimization to device_scheduler::timer_list_insert () (emu\schedule.c) . Cache a pointer directly to the machine scheduler at startup, to eliminate device().machine().scheduler() chains all over the place. This change has been sitting in my local tree for months, from when I was (mostly unsuccessfully) working on c64 performance. It gives a small speedup to drivers with many tightly-interleaved executing devices (i.e. Commodore drivers) I didn't think it was worth making everyone do a clean build for such tiny gains but I didn't have the heart to chuck it (emu\diexec.c). . Memory system and Namco improvements: Explicit regions in address maps (AM_REGION) are now looked up relative to the device rather than as siblings when in an internal address map (similar to devices and shared pointers) Besides being more orthogonal than before, this allows internal ROMs of MCUs and similar devices to be hooked up in a nicer and more foolproof way. Updated the m37710 and m5074x (m6502 derivative) to take advantage of this. Divided the M37702/M37710 into specific models, with each model having its own internal address map containing the correct amounts of internal RAM and ROM. M37702 MCUs found on various Namco PCBs are now all unique devices and have their respective internal ROMs loaded as device ROMs. Also did some spring (fall) cleaning in addrmap.c/memory.c/dimemory.c. m_devbase (the base device used for tagmap lookup when late-binding handlers and finding memory regions and shares) is now a reference rather than a pointer, since we know what it is when the address_map_entry is constructed and it doesn't change (it depends solely on whether it's an entry in an MCFG-provided address map or an internal one) And for the same reason, there's now only one m_devbase per address_map_entry rather than individual copies for read/write/setoffset/sharedptr. Removed mysterious unused address_map_entry member "m_region_string", along with a silly assert probably left over from when Aaron was replacing AM_BASE with AM_SHARE years ago. Added a comment noting that "make sure all devices exist" in device_memory_interface::interface_validity_check() actually does nothing, like the proverbial goggles. The reason there's just a comment and not a fix is I haven't figured out how to fix it yet (is it possible to extract the original device tag that was given to a proto-delegate? . Only install the default device address map if the owner didn't provide one (emu\addrmap.c) . Added generic cartslot / ROM socket slot device, which offers basic allocation and access handlers, and converted a few drivers to use this instead of code from cartslot.c. The RAM socket part is just a proof of concept,and the natural extension of the line of thought which lead meto this generic socket/cartslot. it might allow to convert current RAM device to be a slot device as well (after some refactorization, of course, since current code lacks many of the necessary features), or be removed soonish, depending on consensus. . Generic cart slot conversions (machine\smpc.c, drivers\jaguar.c, megatech.c, stv.c and includes\stv.h) . Added makefile variable OPENMP to enable usage of OpenMP (includes vconv support of -fopenmp) . Devices with samples shall specify sampleof too (emu\info.c) . Fixed init order on software item load (ui\imgcntrl.c) - SDLMAME . Update manpages . Don't require -str to enable watchdog (sdl\sdlmain.c) . Fall through to the baseline Win32 implementations for file, socket, and pty/named pipe I/O. This fixes laserdisc games and enables socket and named pipe I/O in SDL Windows builds (SDL-based: Most Laserdisc CHD games either do not boot or have other issues (ID 05681) and -watchdog command not operable in SDLMAME (ID 05683)). . Init timebase the first time it's needed on Windows, Mac and OS/2 targets (sdl\sdlos_macosx.c, sdlos_os2.c and sdlos_win32.c) . Removed more dead code from the GL paths (sdl\drawogl.c). More SDL cleanups. . Removed dead code from SDL2 renderer, fix laserdisc crash with SDL2 -video accel rendering. . Let's static link SDL on win32 build. Support for SDL2 builds on win32. . Link properly on OS X for SDL2. More OS X fixes for SDL2. . Use the same screen selection method for SDL2 as Windows . Reenable SDL_ttf for SDL2 builds. SDL2: Not quite yet. . Allow -sound dsound on SDL Windows builds. Fixes to try and make direct_sound work minus WinOSD. More dsound adaptation and attempts. -sound dsound now works with SDL. . Fixed Windows builds with SDL 1.2 (sound\direct_sound.c) . Use Windows OSD's font-selection semantics for SDL Windows builds . Removed cpu mask and thread affinity code from sdl\sdlwork.c as suggested by Couriersud - JSMESS: Work around linking issue with JSMESS (makefile). See https://github.com/kripken/emscripten/issues/2619 for discussion. - MESS . Added shortcut commands for Tape Start and Tape Stop, by default mapped to F2 and Shift+F2, respectively. This is not meant as a replacement for the internal Tape Control menu, but it shall make simpler the usage of game tapes in home computers. Notice that REC/RWD/FWD have still to be pressed from the internal UI and that if you mount multiple cassettes in a driver with multiple tape drives only the first one will be controllable with these shortcuts. The idea is that more complex actions (e.g. save you own BASIC program or copy programs from a tape to another, etc.) should be performed through the internal menu, while people just aiming to play games can use the shortcut. This commit requires probably a clean build (emu\inpttype.h, ioport.h and ui.c). . Fixed attributes changed in 0.154 release for megadriv/neogeo software lists . Atmel 8-bit AVR: Optimized interrupt code in cpu\avr8\avr8.c a bit. Removed static config from avr8. . HD61700 CPU: Converted to use devcb callbacks instead of static config, and removed a few trampolines in (MESS) Casio PB-1000 as a consequence . TMS7000 CPU: Fixed TMS7000 sbb opcode. Fixed TMS70C46 external memory mode. Added TMS70C46 dockbus stub. Added notes. . Sound Blaster 16: Added Soundblaster 16 low level emulation. The diagnose program mostly works but I'm sure there are still many more bugs, it definitely isn't near as usable as the HLE (at least yet). Removed unused m_bps variable. . Cassette: Correction to the MC-1000 cassette input. Fixed bug where systems with multiple cassette drives (e.g. PET) had no Tape Controls when no cassette was loaded in the first drive (ui\tapectrl.c). Converted Atari VCS carts to be slot devices, cleaned up the implementation and removed Supercharger tapes from the main system. The -cass media switch (to load the tape file) will become available only when you mount the Supercharger cart. . Floppy Disk: Allow kc85_[2-5] to boot from floppy again (bus\kc\d004.c, formats\kc85_dsk.c). Fixed usage of uninitialized member in upd765_family_device. Replaced a few more exit() calls with fatalerror() (formats\apridisk.c and d64_dsk.c). Added 8 inch floppy drive support to Gimix 6809 System. Handle half and quarter tracks (formats\flopimg.c and mfi_dsk.c). Added some floptool formats (mess\tools\floptool\main.c). Don't trash a bunch of memory when loading legacy floppies (formats\flopimg.c). Support ProDOS-order Pascal 1.3 images (formats/ap2_dsk.c). Stop trashing DiskCopy 4.2 images that don't have tags (formats\ap_dsk35.c). Don't infloop in set_write_splice when there's no floppy (imagedev\floppy.c) (ID 05672). Fixed leaks (formats\mfi_dsk.c). Changed in find_position to avoid missing edges that are very close to a window end (imagedev\floppy.c). Added support for 81 track images (formats\msx_dsk.c). Fixed crash when loading floppies with no parent software from softlist (only via internal File Manager, though). Removed some debugging output; fixed FM value for Index AM (machine\wd_fdc.c). Hopefully fix reading sectors with DDAM. (machine\wd_fdc.c). Fixed disks not being launched if loaded from softlist through File Manager (Note: Until we support writing changes to diff, it is also safer to treat disks in softlists as read-only (imagedev\floppy.c). Added 5.25" DSDD raw image support and preliminary pseudo-DMA to buffered controller (formats\concept_dsk.c). Added support for DMK floppy images. Added read-only support for CopyQM images. . LMC1992: Fixed Clang build (sound\lmc1992.h) . MSM5832 RTC: Day of week is 0-6, not 1-7. . MOS7360 TED: Save stating some members . NCR539x SCSI: Added asserts for index out-of-bounds access with (MESS) Sun 3x/80. Adjusted an ncr539x_device assert. . Terminal: Save state some members; doesn't fix xor100 save state issue though (machine\terminal.c) . uPD7220: Fixed RDAT command when data to read are larger than the FIFO, this fixes (MESS) Decision Mate V and BIC A5105 text scrolling. Support for mode 0 chars in uPD7220 (text in DMV diag program). Added Bresenham arc and complete char drawing. . Fixed inconsistent -listsoftware output (emu\clifront.c) . Restored the support for loading games from compatible softlists (like gbcolor games in gameboy, and viceversa, msx1 carts in msx2, etc.) by using the syntax: mess system -media list:gamename. You can now for instance use again "mess gbcolor -cart gameboy:sml" to play "Super Mario Land" with the custom palettes of the Game Boy Color (emu\diimage.c). - Compiling . Avoid potential conflict between emu\video\poly.h and osd\windows\winwork.c / osd\sdl\sdlwork.c defines . Added a dummy bus to allow ldplayer to be built on OSX (and possibly on other platforms too) (ldplayer\ldplayer.mak) . Fixed Clang compile (util\coretmpl.h) . Make Clang 3.5 compile out-of-the-box by disabling some warnings for now / added TODO (build\flags_clang.mak) . Fixed most of the -Wunreachable-code-break and -Wunreachable-code-return warnings of Clang 3.5 when compiling MAME . Allow use of external SQLite3 (makefile) . Make it compile on 4.9.x and removed -Wno-strict-overflow for GCC 4.9 (build\flags_gcc.mak) . Removed -Wno-strict-overflow for GCC 4.8 . Discrete Netlist: Unreachable code warning fixes for tools (tools\nltool.c) . Flagged some functions as noreturn (build\makedep.c and makemak.c) . Sync'd CPU list (mame\mame.mak and mess.mak) . Some minor mame.mak cleanup . Removed legacy_cpu_device (emu\devcpu.c/h) . Replaced exit() with fatalerror() in cpu\mcs96\mcs96.c . Some C++11 compilation fixes . Renamed YieldProcessor() to osd_yield_processor() to match SDL more closely . Some refactoring to make SDL and Windows OSD code match / Windows SDL code did not delete the critical section in osd_scalable_lock_free() . Fixed recompute_bcount regression in cpu\mcs96\mcs96.c and h8\h8.c . Added workaround to build with XCode 6.0.1 out-of-the-box (build\flags_clang.mak) . Documented some disabled Clang compiler warnings / re-enabled -Wformat-security for Clang 3.5 (was disabled because of a bug in Clang) and disabled C++11 warnings so it compiles out-of-the-box and added TODO (build\flags_clang.mak). . Avoid Clang warning in cpu\h8\h8_timer16.c . "Properly fixed" Clang -Wconstant-logical-operand warnings and enabled it (build\flags_clang.mak, cpu\h8\h8_timer16.c, video\stvvdp2.c and jagblit.inc) . Removed some old leftovers (includes\exidy440.h, jackal.h, leland.h, m92.h, psikyo.h, rainbow.h, suprridr.h, toaplan1.h, audio\mw8080bw.c, drivers\mw8080bw.c, namcofl.c, includes\mpu4.h, mw8080bw.h, n64.h and namcofl.h). . Changing #includes for headers that are part of toolchain and not part of any source/external library (analog\nld_solver.c, emu\rendfont.c, lib\util\hashing.c, windows\mame.rc and windows\ume.rc). . Misc drivers: Moved functions into driver class and small cleanups . Removed running_machine parameter from various methods were it wasn't needed anymore. Moved some more functions into driver classes. - Debugger . Added window to osd_interface: win_monitor_info to class and win_window_info to class, partial (debugger\debugwin.c). . Less tagmap lookups counted (emu\machine.c and emu\video.c) . Make cheat initialization debugger message more verbose (debug\debugcmd.c) 0.154 - New games: Coco Loco, Fireball, Gallag Video Game / Petalouda, Ken Sei Mogura: Street Fighter II, Neraidoula, Rolling Crush, Royal Card (Italian, Dino 4 hardware, encrypted), Ming Xing 100 (Star 100), Step Champ, 'Super Pacman (v1.2) + Cherry Master (Corsica, v8.31)', 'Tetris + Cherry Master (Corsica, v8.01, set 1)' and Wyvern F-0 - New Working games: Ace Attacker (FD1094 317-0059), Baby Pac-Man, Granny and the Gators. Jolly Card (Austrian, Fun World, bootleg), Juuouki (set 1, Japan, FD1094 317-0065), Leader, Lucky Boom (Hard Times hardware), Spectrum 2000, Super Masters Golf and Royal Card (Italian, Dino 4 hardware, encrypted) - New Non-Working games: Bonus Chance (W-8), Chihiro Firmware Update For Compact Flash Box (Rev A) (GDX-0024A), Crazy Bonus 2000, F-Zero AX (Rev E) (GDT-0004E), Magical Butterfly (version U350C, encrypted), Mario Kart Arcade GP 2 (MK21 Ver.A), Rhythm Tengoku, 'Tetris + Cherry Master (+K, Canada Version, encrypted)' and 'Tetris + Cherry Master (Corsica, v8.01, set 2)' - New non-CPU/TTL games: Bombs Away, Ckidzo, Cobra Gunship, Meadows 4 in 1 and Pong Doubles - New clones: 42, The Berlin Wall (Korea), Black Tiger / Black Dragon (mixed bootleg?), Borench (set 2), Bouncing Balls (Adult), Cash Towers (Ace) (ACESYS1), Center Court (World, 4 Players, prototype, MC-8123B), Come-Cocos (Ms. Pac-Man) ('Made in Greece' bootleg), 'CPS3 Multi-game bootleg for HD6417095 type SH2', 'CPS3 Multi-game bootleg for dead security cart', Crazy Cross (ver EAA), Dragon Bowl (set 2, unencrypted program), Euro League (Italian hack of Temco World Cup '90 - alt version), F-Zero AX (Rev C) (GDT-0004C), Fire Hawk (switchable orientation), Fruit Cocktail 2 (bootleg, 081105, LOTTOGAME (I)), Fruit Cocktail 2 (bootleg, 081105, VIDEO GAME-1 FR02), Galaga '88 (02-03-88), Gang Wars (bootleg), Gang Wars (Japan), Golden Day (JPM) (IMPACT), Gun.Smoke (bootleg), Initial D Arcade Stage (Export) (Rev A) (GDS-0025A), Joust 2 - Survival of the Fittest (revision 1), Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 100, CN), Lunar Lander (screen test), Mario Kart Arcade GP 2 (MK21 Ver.A, alt dump), Maya (set 2), Midnight Run: Road Fighters 2 (AAA, Asia v1.10), Miss Pukman ('Made in Greece' bootleg), Nemo (World 901109), Peek-a-Boo! (North America, ver 1.0), Pleiads (Irecsa), Pleiads (Spanish bootleg), Pollux (Japan, NTC license), Quaak (bootleg of Frogger), Raiden Fighters (Evaluation Software For Show, Germany), SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027), Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G), Sen Jing - Guardian Storm (Japan), Snake Pit (9/14/84), Space Invaders (Electromar, Spanish), Tao Taido (2/3 button version), Tazz-Mania (bootleg on Galaxian hardware with Starfield), Tiger Road (US), Two Crude (US FT version), VS Mahjong Otome Ryouran (set 1) and Zero Time (Datamat) - New PEPlus games: Player's Edge Plus (IP0028) Joker Poker - French, Player's Edge Plus (IP0029) Joker Poker - French, Player's Edge Plus (IP0031) Standard Draw Poker - French, Player's Edge Plus (IP0051) Joker Poker - French, Player's Edge Plus (IP0058) Standard Draw Poker - French, Player's Edge Plus (IP0062) Joker Poker - French, Player's Edge Plus (IP0101) Joker Poker - French, Player's Edge Plus (IP0103) Joker Poker - French, Player's Edge Plus (IP0105) Joker Poker - French, Player's Edge Plus (IP0108) Standard Draw Poker - French, Player's Edge Plus (IP0111) Joker Poker - French, Player's Edge Plus (IP0112) Standard Draw Poker - French, Player's Edge Plus (IP0114) Standard Draw Poker - French, Player's Edge Plus (IP0115) Joker Poker - French, Player's Edge Plus (IP0116) Standard Draw Poker - French, Player's Edge Plus (IP0118) Standard Draw Poker - French, Player's Edge Plus (IP0120) Standard Draw Poker - French, Player's Edge Plus (PP0009) Standard Draw Poker, Player's Edge Plus (PP0043) 10's or Better (International), Player's Edge Plus (PP0046) 10's or Better (set 1), Player's Edge Plus (PP0046) 10's or Better (set 2), Player's Edge Plus (PP0063) 10's or Better, Player's Edge Plus (PP0127) Deuces Joker Wild Poker (International), Player's Edge Plus (PP0171) Joker Poker (International), Player's Edge Plus (PP0190) Deuces Wild Poker (International), Player's Edge Plus (PP0197) Standard Draw Poker (set 2), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (International), Player's Edge Plus (PP0242) Deuces Wild Poker (International English/Spanish), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (International), Player's Edge Plus (PP0288) Standard Draw Poker (Spanish), Player's Edge Plus (PP0431) Deuces Joker Wild Poker (International), Player's Edge Plus (PP0449) Standard Draw Poker (International English/Spanish), Player's Edge Plus (PP0516) Double Bonus Poker (International), Player's Edge Plus (PP0766 A5W-A6F) Standard Draw Poker, Player's Edge Plus (PP0801 A5W-A6F) 10's or Better, Player's Edge Plus (PP0802 A5W-A6F) Standard Draw Poker, Player's Edge Plus (PP0803 A50-A6N) Joker Poker, Player's Edge Plus (PP0803 A5W-A6F) Joker Poker, Player's Edge Plus (PP0804 A5W-A6F) Bonus Poker Deluxe, Player's Edge Plus (PP0806 A5W-A6F) Standard Draw Poker, Player's Edge Plus (PP0816) Treasure Chest Poker, Player's Edge Plus (PP0818 A5W-A6F) Joker Poker (Aces or Better), Player's Edge Plus (PP0819 A5W-A6F) Bonus Poker Deluxe, Player's Edge Plus (PP0825 A59-A7C) White Hot Aces, Player's Edge Plus (X000150P+XP000038) Standard Draw Poker, Player's Edge Plus (X000242P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000516P+XP000038) Double Bonus Poker, Player's Edge Plus (X000550P+XP000055) Joker Poker (Two Pair or Better), Player's Edge Plus (X002029P+XP000019) Deuces Wild Bonus Poker, Player's Edge Plus (X002038P+XP000038) Nevada Bonus Poker, Player's Edge Plus (X002044P+XP000038) Triple Bonus Poker, Player's Edge Plus (X002272P+XP000055) Black Jack Bonus Poker, Player's Edge Plus (X002275P+XP000055) Black Jack Bonus Poker, Player's Edge Plus (X002276P+XP000055) Black Jack Bonus Poker, Player's Edge Plus (X002306P+XP000112) Triple Double Bonus Poker, Player's Edge Plus (X002310P+XP000112) Triple Double Bonus Poker, Player's Edge Plus (X002419P+XP000064) Deuces Wild Bonus Poker - French, Player's Edge Plus (X002421P+XP000064) Deuces Wild Bonus Poker - French, Player's Edge Plus (XM00009P+XMP00002) Multi-Poker, Player's Edge Plus (XM00013P+XMP00025) Multi-Poker, Player's Edge Plus (XMP00013) 5-in-1 Wingboard (CG2346) - Spanish and Player's Edge Plus (XMP00026) 5-in-1 Wingboard (CG2346) - Spanish - New PinMAME games: 24 v1.30, 24 v1.40, 24 v1.44, 24 v1.50, 4x4, Apollo 13 (1.00), Batman - The Dark Knight v1.30, Batman - The Dark Knight v1.50, Batman - The Dark Knight v1.60, Batman - The Dark Knight v2.00, Batman - The Dark Knight v2.10, Batman - The Dark Knight v2.20, Batman - The Dark Knight v2.90, Batman - The Dark Knight v2.94, Baywatch (England), Big Buck Hunter Pro v1.40, Big Buck Hunter Pro v1.50, Big Buck Hunter Pro v1.60, Black Belt (Squawk and Talk), Bone Busters Inc. (French), C.S.I. v1.02, C.S.I. v1.03, C.S.I. v1.04, C.S.I. v2.00, C.S.I. v2.10, C.S.I. v2.30, C.S.I. v2.40, Cactus Canyon (1.0), Cactus Canyon (1.04 Test 0.2), Congo (1.1), Corvette (LA1), Corvette (LX2), F14 Tomcat (P-5), Family Guy v10.0 (English,French), Family Guy v10.0 (English,German), Family Guy v10.0 (English,Italian), Family Guy v10.0 (English,Spanish), Family Guy v11.0 (English,French), Family Guy v11.0 (English,German), Family Guy v11.0 (English,Italian), Family Guy v11.0 (English,Spanish), Family Guy v12.0 (English,French), Family Guy v12.0 (English,German), Family Guy v12.0 (English,Italian), Family Guy v12.0 (English,Spanish), Family Guy v3.0 (English,Italian), Family Guyv4.0 (English), Family Guy v4.0 (English,German), Family Guy v7.0 (English,French), Family Guy v7.0 (English,Spanish), Family Guy v8.0 (English,Spanish), Flash (L-2), Flash Dragon, The Getaway: High Speed II (P-B), Halley Comet (alternate version), Harley Davidson (1.03 UK), HyperBall (L-2), Independence Day (v2.01), Indiana Jones v1.13 (French), Indiana Jones v1.13 (German), Indiana Jones v1.13 (Italian), Indiana Jones v1.13 (Spanish), Indiana Jones v1.13, Indiana Jones v1.14 (French), Indiana Jones v1.14 (German), Indiana Jones v1.14 (Italian), Indiana Jones v1.14 (Spanish), Indiana Jones v1.14, Indiana Jones v1.16 (French), Indiana Jones v1.16 (German), Indiana Jones v1.16 (Italian), Indiana Jones v1.16 (Spanish), Indiana Jones v1.16, Indiana Jones v2.10 (French), Indiana Jones v2.10, Indianapolis 500 (1.0R), Iron Man 2 v1.00, Iron Man 2 v1.10, Iron Man 2 v1.20, Iron Man 2 v1.40, Johnny Mnemonic (0.5R), Joust (L-1), Judge Dredd (L-4), Judge Dredd (L-5), Jungle Lord (L-1), Meg-Aaton (alternate set), Moon Light (Inder), Mystery Castle (alternate set), Nautilus, NBA v5.00, NBA v6.00, NBA v7.00, NBA v8.01, NBA v8.02, No Fear: Dangerous Sports (1.0), Party Animal (German), Pin-Bot (P-4), Pirates of the Caribbean v1.10 (English,French), Pirates of the Caribbean v1.10 (English,Italian), Pirates of the Caribbean v1.10 (German,French), Pirates of the Caribbean v1.11 (English,Spanish), Pirates of the Caribbean v1.13 (English,French), Pirates of the Caribbean v1.13 (English,Italian), Pirates of the Caribbean v1.13 (English,Spanish), Pirates of the Caribbean v1.13 (German,French), Pirates of the Caribbean v1.15 (English,French), Pirates of the Caribbean v1.15 (English,Italian), Pirates of the Caribbean v1.15 (English,Spanish), Pirates of the Caribbean v1.15 (German,French), Pirates of the Caribbean v3.00 (English,French), Pirates of the Caribbean v3.00 (English,Italian), Pirates of the Caribbean v3.00 (English,Spanish), Pirates of the Caribbean v3.00 (German,French), Pirates of the Caribbean v4.00 (English,French), Pirates of the Caribbean v4.00 (English,Italian), Pirates of the Caribbean v4.00 (English,Spanish), Pirates of the Caribbean v4.00 (German,French), Pirates of the Caribbean v6.00 (English,French), Pirates of the Caribbean v6.00 (English,Italian), Pirates of the Caribbean v6.00 (English,Spanish), Pirates of the Caribbean v6.00 (German,French), Playboy (3.02 France), Playboy (3.02 Germany), Playboy (3.02 Italy), Playboy (3.02 Spain), Playboy (3.02), Pool Sharks (LA-5), Popeye Saves The Earth (LA-4), The Raid, Rotation VIII (v. 1.01), Rotation VIII (v. 1.15), Safe Cracker (0.91), Shrek v1.41, Simpsons Kooky Carnival (Redemption) v0.90 New Jersey, Simpsons Kooky Carnival (Redemption) v1.03, Simpsons Kooky Carnival (Redemption) v1.05, The Simpsons Pinball Party (3.00), The Simpsons Pinball Party (3.00 France), The Simpsons Pinball Party (3.00 Italy), The Simpsons Pinball Party (3.00 Spain), Skill Flight (Playmatic), Spider-Man v1.30 (English,French), Spider-Man v1.30 (English,Italian), Spider-Man v1.30 (English,Spanish), Spider-Man v1.30 (German,French), Spider-Man v1.40 (English,French), Spider-Man v1.40 (English,Italian), Spider-Man v1.40 (English,Spanish), Spider-Man v1.40 (German,French), Spider-Man v1.40, Spider-Man v1.42, Spider-Man v1.60 (English,French), Spider-Man v1.60 (English,Italian), Spider-Man v1.60 (English,Spanish), Spider-Man v1.60 (German,French), Spider-Man v1.60, Spider-Man v1.70 (English,French), Spider-Man v1.70 (English,Italian), Spider-Man v1.70 (English,Spanish), Spider-Man v1.70 (German,French), Spider-Man v1.70, Spider-Man v1.90 (English,French), Spider-Man v1.90 (English,Italian), Spider-Man v1.90 (English,Spanish), Spider-Man v1.90 (German,French), Spider-Man v1.90, Spider-Man v1.92 (English,French), Spider-Man v1.92 (English,Italian), Spider-Man v1.92 (English,Spanish), Spider-Man v1.92 (German,French), Spider-Man v1.92, Spider-Man v2.00, Spider-Man v2.10 (English,Italian), Spider-Man v2.10 (English,Spanish), Spider-Man v2.10 (French), Spider-Man v2.10 (German,French), Spider-Man v2.10, Spider-Man v2.20, Spider-Man v2.30, Spider-Man v2.40, Star Fire (alternate set), Star Trek: The Next Generation (LX-3), Star Trek: The Next Generation (P-4), Star Trek: The Next Generation (P-8), Star Wars (1.04), Strange Science (German), Terminator 3: Rise of the Machines (3.01 France), Terminator 3: Rise of the Machines (3.01 Germany), Terminator 3: Rise of the Machines (3.01 Italy), Terminator 3: Rise of the Machines (3.01 Spain), Terminator 3: Rise of the Machines (3.01), Thunderball (P-2), Thunderball (P-3), Wheel of Fortune v1.0, Wheel of Fortune v2.0 (French), Wheel of Fortune v2.0 (German), Wheel of Fortune v2.0 (Italian), Wheel of Fortune v2.0, Wheel of Fortune v3.0 (French), Wheel of Fortune v3.0 (German), Wheel of Fortune v3.0 (Italian), Wheel of Fortune v3.0 (Spanish), Wheel of Fortune v3.0, Wheel of Fortune v4.0 (French), Wheel of Fortune v4.0 (German), Wheel of Fortune v4.0 (Italian), Wheel of Fortune v4.0 (Spanish), Wheel of Fortune v4.0, Wheel of Fortune v5.0 (French), Wheel of Fortune v5.0 (German), Wheel of Fortune v5.0 (Italian), Wheel of Fortune v5.0 (Spanish), Wheel of Fortune v5.0, World Cup Soccer (La-2), World Poker Tour v1.03, World Poker Tour v1.05, World Poker Tour v1.06 (French), World Poker Tour v1.06 (German), World Poker Tour v1.06 (Italian), World Poker Tour v1.06 (Spanish), World Poker Tour v1.06, World Poker Tour v1.08 (French), World Poker Tour v1.08 (German), World Poker Tour v1.08 (Italian), World Poker Tour v1.08 (Spanish), World Poker Tour v1.08, World Poker Tour v1.09 (French)(alt), World Poker Tour v1.09 (French), World Poker Tour v1.09 (German), World Poker Tour v1.09 (Italian), World Poker Tour v1.09 (Spanish), World Poker Tour v1.09, World Poker Tour v1.11 (English,French), World Poker Tour v1.11 (English,Italian), World Poker Tour v1.11 (English,Spanish), World Poker Tour v1.11 (French), World Poker Tour v1.11 (German), World Poker Tour v1.11 (German,French), World Poker Tour v1.11 (Italian), World Poker Tour v1.11 (Spanish), World Poker Tour v1.11, World Poker Tour v1.12 (English,French), World Poker Tour v1.12 (English,Italian), World Poker Tour v1.12 (English,Spanish), World Poker Tour v1.12 (French), World Poker Tour v1.12 (German), World Poker Tour v1.12 (German,French), World Poker Tour v1.12 (Italian), World Poker Tour v1.12 (Spanish), World Poker Tour v1.12, World Poker Tour v14.00 (English,French), World Poker Tour v14.00 (English,Italian), World Poker Tour v14.00 (English,Spanish), World Poker Tour v14.00 (French), World Poker Tour v14.00 (German), World Poker Tour v14.00 (German,French), World Poker Tour v14.00 (Italian), World Poker Tour v14.00 (Spanish), World Poker Tour v14.00 and Zira - New drivers: bfm_sc45_helper.c/h, cocoloco.c, fireball.c, kenseim.c, nl_pong.c, nl_pongd.c, sam.c and wyvernf0.c - New devices: boot_ct2k3sa_cart, boot_ct2k3sp_cart, boot_cthd2003_cart, boot_garoubl_cart, boot_kf10thep_cart, boot_kf2k2mp_cart, boot_kf2k2mp2_cart, boot_kf2k3bl_cart, boot_kf2k3pl_cart, boot_kf2k3upl_cart, boot_kf2k4se_cart, boot_kf2k5uni_cart, boot_kof10th_cart, boot_kof2002b_cart, boot_kof97oro_cart, boot_kog_cart, boot_lans2004_cart, boot_matrimbl_cart, boot_ms5plus_cart, boot_mslug3b6_cart, boot_samsho5b_cart, boot_svcboot_cart, boot_svcplus_cart, boot_svcplusa_cart, boot_svcsplus_cart, cmc_bangbead_cart, cmc_ganryu_cart, cmc_kof2000n_cart, cmc_kof2001_cart, cmc_kof99k_cart, cmc_mslug3h_cart, cmc_nitd_cart, cmc_preisle2_cart, cmc_s1945p_cart, cmc_sengoku3_cart, cmc_zupapa_cart, k2k_k2k_cart, k2k_k2kpls_cart, k2k_matrim_cart, k2k_ss5_cart, k2k_ss5s_cart, neogeo_rom, p2_kof2003_cart, p2_kof2003h_cart, p2_ms4plus_cart, p2_mslug4_cart, p2_mslug5_cart, p2_pnyaa_cart, p2_rotd_cart, p2_svc_cart, scsicd, scsihd, sma_garou_cart, sma_garouh_cart, sma_kof2000_cart, sma_kof99_cart and sma_mslug3_cart - ADSP21xx CPUs . Converted ADSP21xx to DEVCB2 . Updated ADSP-2100 so I can do DCS audio changes - ADSP21062 CPU . Attempt to fix Last Bronx booting, still uses a shitload of unsupported opcodes (cpu\sharc\sharc.c). Simplified Last Bronx fix, however it's confirmed to set dst address to 0, Ville? Added ALU opcode 0x89 (FAVG), Last Bronx shows background scene in attract then asserts. . Initialize DMA6 registers in host booting mode . DMA internal index registers are only 17 bits long - ARM CPU . Added Co-Processor sub-types to ARM CPU, hooking a special case for VL86C020 used by Acorn Archimedes. . Fixed usage of uninitialized member in arm_cpu_device . Converted ARM CPU to use inline configs - ARM7 CPU: Added Thumb version of BLX (arm7\arm7dasm.c and arm7thmb.c). Fixed usage of uninitialized members in arm7_cpu_device. - CDP1802 CPU: Fixed usage of uninitialized member and heap-buffer-overflow in cosmac_device - DSP56156 CPU: Modernized last DIRECT_UPDATE_HANDLER user (cpu\dsp56k\dsp56k.c and memory.h) - FD1089 CPU: Added complete dump of the FD1089B 317-0027 key to SDI - Strategic Defense Initiative. Document the newly redumped FD1089A 317-0027 along with it's unencrypted data range - FD1094 CPU . Reconstructed the SEGA FD1094 key for Ace Attacker (FD1094 317-0059) and clone Juuouki (set 1, Japan, FD1094 317-0065) . Refactored FD1094's decryption code in order to make the function more amenable to inversion. FD1094's documentation updates & cleanups. - H8 CPUs . H8 compounded. Disassembly fix. . Fixed missing debugger hook calls . Implement sync-start (h8\h8_sci.c) . Fix problem in the sleep instruction (h8\h8make.py) - HD6309 CPU . Fixed typo in HD6309_V state_add. This fixes failing save states in all sets using HD6309 CPU (ID 05616). . Added HD6309-specific pre_save() and post_load() - I386 CPU . i386 cpu x87 opcodes FPREM and FPREM1 must clear status bit C2 not C0 . Fixed usage of uninitialized member in i386_device - I80186 CPU . Use static set irq and clean up leftovers (cpu\i86\i186.c and machine\rmnimbus.c) . Fixed timer read. (MESS) RM Nimbus: Fixed and simplify more drawing code (cpu\i86\i186.c and video\rmnimbus.c). . Interrupt level triggering and simplify timers . Fixed usage of uninitialized members in i80186_cpu_device - I80286 CPU: Fixed usage of uninitialized members in i80286_cpu_device - I8039 / MCS-48 CPU: Fixed usage of uninitialized member in mcs48_cpu_device - I8051 / MCS-51 CPU: Fixed usage of uninitialized members in mcs51_cpu_device - I8086 CPU . Added 0x6x instruction shadows, used by (MESS) DEC Rainbow MS-DOS 2.01 (cpu\i86\i86.c) . Four new 8086 opcode aliases: 0xc0 is 0xc2; 0xc1 = 0xc3; 0xc8 = 0xca and 0xc9 = 0xcb as documented at OS 2 Museum. . Added 0x60 opcode shadow, omitted in previous patch. Needed for DOS 2. . Fixed usage of uninitialized members in i8086_common_cpu_device - I8741 CPU: DECLARE_WRITE8_MEMBER( nmi_enable_w ) and not DECLARE_WRITE8_HANDLER (machine\tait8741.h) - i960kb CPU: Save some additional state - KONAMI CPU . Converted to use delegates. DEVCB WRITE8 was in fact enough (thanks AWJ for noticing). . Added missing members to save registration and fixed typo in M6809 device_post_load(), fixing savestate regressions in many drivers that use this CPU family (like failing save states in Haunted Castle) (ID 05616). - M37710 CPU . Support direct read . Make memory helpers inline. Removed more obsolete cruft. - M6502 CPU . Compile-time disable now the slow attotime precalculation/caching at start of each timeslice. This precalculation seems to be part of OG's "CPU core template", as all CPU cores written by him do it. It's used to optimize things like onboard serial ports and high-frequency timers; however, the M6502 and its derivatives have neither onboard serial ports nor high-frequency timers, and the precalculation is simply a boat anchor on drivers with 6502-family CPUs and tight interleaving. . (MESS) Added MCFG_M6502_DISABLE_DIRECT (address decoding is 100% dynamic, no RAM/ROM banks) to all Commodore 8bit drivers - M65CE02 CPU: Fixed some bit instructions in the core - M6805 CPU: Added missing items to save state - M6800 CPU: Fixed usage of uninitialized members in m6800_cpu_device - M6809 CPU: Added missing members to save registration and fixed typo in device_post_load(), fixing savestate regressions in many drivers that use this CPU family (ID 05616). - M68000 CPU . Added some missing save state entries (m68000\m68kcpu.c) . Added one fpu case (m68000\m68kfpu.inc) . Enable rounding mode (m68000\m68kfpu.inc) . Update used and modified bits in the page tables and greatly improved PTEST results on 68040 (m68000\m68000.h, m68kcpu.c and m68kmmu.h) . M68000 callbacks to delegates . Implement TAS callback (currently only used by Megadrive) in a more sensible and versatile way. . Smear byte writes the same as a real 68000. Fixed regression caused by 68k change in aquarium, bonzeadv, cbuster, gstriker.c, magicard.c, mpu4vid.c, niyanpai.c, nmk16.c, rainbow.c, segas16b.c, toaplan2.c (only Ghox), tumbleb.c and machine\kaneko_hit.c (expro02.c, galpanic.c, kaneko16.c and sandscrp.c) . Fixed the debugger so watchpoints continue to work as expected - M68040 CPU . Update used and modified bits in the page tables and greatly improved PTEST results on 68040 (m68000\m68000.h, m68kcpu.c and m68kmmu.h) . d68040_fbcc DASM fixes (fbcc is 68040 and 68881, cpu\m68000\m68kdasm.c) - M68307 CPU . Updated 68307's 68681 to an actual sub-device instead of pairing it in the game driver . Using delegates for 68307 - MB86233 CPU . Added a bunch of unhandled opcodes for TGP, this apparently fixed Virtua Cop 2 geometry. . Used a new opcode, from VF2. . Fixed undocumented TGP opcode, fixes character appearing/logic in Virtua Cop 2. . Fixed Indirect Mode addressing in TGP (cpu\mb86233\mb86233.c), fixes Manx TT crash on gameplay (bikes are invisible tho, Z sort issue?). . Fixed for External->Reg opcode in TGP, VF2 now boots then dies a bunch of seconds later in gameplay/attract. . Updated VF2 opcodes, and fixed Sky Target 3D display. Fixed TGP area access in Sky Target. Some changes to TGP with no noticeable effect. . Added bunch of TGP opcodes used by VF2 - MB86235 CPU: Added TGPx4 CPU core for Model 2C - MC68340 CPU: Should be READ32_MEMBER( m68340_internal_serial_r ), not READ32_HANDLER (machine\68340.h and 68340ser.c) - MC68HC11 CPU: Fixed usage of uninitialized members in mc68hc11_cpu_device - MIPS CPUs . The official MIPS ABI doesn't have $ in front of the software names for the integer registers http://math-atlas.sourceforge.net/devel/assembly/007-2816-005.pdf & the debugger thinks you're entering a hex number when you're trying to use them. I've left the disassembler, but the official ABI doesn't use them in source either (the only supporting evidence I found for them is the Linux ABI). I also removed the space padding which hasn't had the intended effect since the new debugger was introduced. . Modernised MIPS3 cpu core - PowerPC 4xx/6xx CPUs . Moved PowerPC legacy handlers to member of cpu classes . Modernised PowerPC cpu core - RSP CPU: Moved RSP to use DEVCB2 - S2650 CPU: Fixed usage of uninitialized members in s2650_device - SCUDSP CPU: Converted SCUDSP to DEVCB2. Fixed usage of uninitialized members in scudsp_cpu_device. - SH-2 CPU . Modernised SH-2 cpu core . Converted to use delegates, so to finally remove the remaining static variables used by (MESS) machine\mega32x.c. . Fixed (MESS) Sega Saturn (sh2\sh2comn.c) . Fixed usage of uninitialized member in sh2_device . Fixed and enable SH-2 memory system bypass for SH-1 & SH-2 DRC. The speedup is only really gaudy on CPS-3 where the SH-2 is a major percentage of the frame time (800% -> 1250% unthrottled). SKNS games that access spriteram a lot (cyvern) get a decent speedup as well. Saturn/ST-V and Cool Riders are dominated by the rendering in profiles and get around 10% improvement depending on the game. - SH-4 CPU . Moved legacy handlers to member of cpu classes . Modernized cpu core. Inlined some functions. - T11 CPU: Fixed usage of uninitialized members in t11_device - TMP95C063 CPU . Fixed usage of uninitialized members in tlcs900h_device . Added int6 - TMPZ84C011 CPU . Start to make the TMPZ84C011 a proper CPU type, migrate code from niyanpai to the cpu. . csplayh5.c, kenseim.c, nbmj9195 and niyanpai.c now uses the TMPZ84C011 core with callbacks . Moved TMPZ84C011 specifics to its own files, make z80ctc a subdevice rather than adding it separately it in each driver using a TMPZ84C011. . Small cleanup. NOTE: If you want a handler for logging unmapped read/write, put it in the driver machine config, like we do with 8255, for example: MCFG_I8255_OUT_PORTB_CB(LOGGER("PPI8255 - unmapped write port B", 0)). . Got rid of TMPZ84C011_Z80CTC trampolines. Daisy chain config is on TMPZ84C011 external pins. . Made TMPZ84C011 pins external instead of making drivers having to interface with its internal peripherals . Looks like unmapped output bits are 0 - TMS0980 CPU: Fixed usage of uninitialized members in tms1xxx_cpu_device - TMS32010 CPU: Fixed usage of uninitialized members in tms32010_device - TMS34010 CPU . Fixed issue with Battletoads (cpu\tms34010\34010gfx.c), but re-break some gfx in Little Robin/Mega Phoenix in the process. Needs somebody who knows the TMS better. . Use the CONVSP/CONVDP registers to adjust source and destination addresses when window clipping or y-reverse is applied (cpu\tms34010\34010gfx.c) . Mirrored TMS34010 RAM at 0x7fc00000 and 0xffc00000 in machine\inder_vid.c. With the previous TMS34010 change, this fixes the window clipping issues at y=0. . Modernised cpu core - TMS57002 CPU: Inline xm_step_read() and xm_step_write() for free 5\% speedup - TMS9900 CPU . Fixed usage of uninitialized member in tms99xx_device . Removed tms99xx_device spaces in state names, setting register value now possible. . Fixed stack-buffer-overflow in tms9995_device::state_string_export() and tms99xx_device::state_string_export() - TMS9995 CPU: Fixed usage of uninitialized member in tms9995_device - uPD7810 CPU: Reorganize uPD7810, compile source files seperately instead of including them into the main source. - Z80 CPUs . Shortened CALLBACK to CB (cpu\z80\z80.h) . Converted Z80CTC, Z80DART, Z80DMA, Z80PIO and Z80STI to use DEVCB2 . Flagged Z80SIO as deprecated. DEVCB2'd Z80SIO so we can get rid of DEVCB1. Removed old Z80SIO device. . Fixed usage of uninitialized member in z80dart_channel. Quick fix to get (MESS CPC) CP/M to detect the presence of the serial interface. - NEC Vxx CPUs . Fixed usage of uninitialized members in nec_common_device . Added missing items to save state - V25 CPU . Implement programmable clock divider via execute_clocks_to_cycles() instead of set_clock_scale(). Properly restore the clock divider on state load. . Initialized clock divider in constructor, since execute_clocks_to_cycles() gets called before device_start(). . Added missing items to save state - V30MZ CPU: Fixed usage of uninitialized member in v30mz_cpu_device - V810 CPU: Fixed usage of uninitialized member in v810_device - Audio streams: USE 64bit intermediary results in sound_stream::generate_resampled_data (emu\sound.c). This will allow sound drivers (see AY-3-8910) to make use of the full width of stream_sample_t. - AY-3-8910A sound . Cleanup of AY8910 this makes move to DEVCB2 possible, also now have better idea how to solve legacy STREAM_UPDATE. . Converted ay8910_device and extended family to DEVCB2 . Provide chip-specific details (number of outputs, number of usable IO ports) in constructor for each variant . AY8910 uses m_zero_is_off(1) constructor . Document recent measurements done on the AY8910. Updated information about measurements and model derived from those. . AY8910_RESISTOR_OUTPUT now selects resistance calculation by simple saturation mosfet model in ay8910.c. Currently only 1942 and Popeye use this. . USE 64bit intermediary results in sound_stream::generate_resampled_data. This will allow sound drivers to make use of the full width of stream_sample_t (emu\sound.c). . Adjusted maximum value suitable for streaming and removed some dead code (sound\ay8910.c) . Silence compiler warning (sound\ay8910.c) - AY-3-8912A and AY-3-8913A sound . AY8912/AY8913 is AY8910-based, not YM2149-based. . For AY891X emulate vol-0 resistor as infinite - C140 sound: Converted to use inline config - CAGE and Midway DCS audio board: Modernized sound. Fixed DCS. - CEM3394 sound: Updated to use delegates and inline configs - ES5505/6 sound: Converted es550x_device to DEVCB2 - HC-55516 sound: Fixed usage of uninitialized members in hc55516_device - HuC6280 sound: Converted to use inline config - K053260 sound: Converted to use inline config - K054539 sound: Converted to use inline configs and delegates. Fixes inaccurate K054539 audio emulation in Twin Bee Yahhoo! (ID 05354). - MSM5205 sound: Fixed usage of uninitialized members in msm5205_device - Namco sound . Converted Namco sound to use inline config . Fixed names and device_types of Namco WSG devices - Namco 51XX/52XX/54XX sound: Zerofill at init - N2A03 / NES APU sound: Converted to use inline config - POKEY sound: Converted pokey_device to DEVCB2 - RF5C68 sound: Converted to use inline config - Sega PCM sound: Converted to use inline config - Seibu Sound: Converted seibu_adpcm to use inline configs - SNKWave sound: Fixed for SNK buzzing sound on startup. To be verified during the next regression test. - Sound stream . Removed not needed parameter from stream_alloc. It is set to same value in sound.c. . Got rid of legacy STREAM_UPDATE, created stream_update_delegate and now stub is no longer needed, also made easy to have stream with different update call. - SP0256 sound: Fixed usage of uninitialized member in sp0256_device - TMS36XX sound: Converted to use inline configs - TMS5110 sound . Updated TMS5110 to use DEVCB2 . Removed legacy handlers, now that no drivers use them anymore. . Converted tmsprom_device to DEVCB2 - TMS5220 sound: Fixed usage of uninitialized members in tms5220_device - VRender0 sound: Converted to use inline config - X1-010 sound: Converted to use inline config - YM2413 sound: (MESS) Internal YM2413s don't need the unlock sequence (bus\msx_slot\music.c) - YM2612 sound . Sync timer fixes from GenPlus-GX (sound\fm2612.c). This fixes some of the sound effects in MegaDrive are wrong compared to the console/cartridge (ID 05049). Several emulators do it correctly, like Kega and GenPlus-GX. GenPlus-GX source may be useful in this case, since it shares cores with MESS/MAME. This fixes also the broken SFX in Streets of Rage II (Mega Play) (ID 04205) . Sega System C2 didn't entirely like the changes, update sound\fm2612.c code - 6522 VIA: Fixed usage of uninitialized members in via6522_device - 6526 CIA . Added missing virtual keyword to actually call the right TOD clock . Outputs depend on the input state (fixes (MESS) A1000 overlay switch) . Switching to serial output mode with one-shot activated causes a pulse on SP (correct? needed for keyboard handshake) . Serial input is clocked by the CNT input, not the default clock. . Mask offsets to 4 bits . Writing the Timer High register with one-shot activated immediately causes the timer to be latched and the timer started, regardless of timer start value. . Fixed usage of uninitialized members in mos6526_device and legacy_mos6526_device . Fixed macros in machine\mos6526.h. Removed machine\6526cia.c/h. - 6532 RIOT . Fixed usage of uninitialized members in riot6532_device . Updated 6532RIOT to use DEVCB2 . Fixed for 6532RIOT, makes sound back in Gameplan driver. - 6821 PIA: Fixed usage of uninitialized members in pia6821_device - 6840 PTM: Converted ptm6840_device to DEVCB2 - 6850 ACIA: Fixed usage of uninitialized members in acia6850_device - 68681 DUART . Support timer-driven serial channels. Fixes SC4 fruit machine games. . Fixed usage of uninitialized member in mc68681_device and mc68681_channel - 74123 TTL: Converted to DEVCB2 - 74148 and 74153 TTL: Updated to use delegates - 8155 RIOT: Converted to DEVCB2 - 8250 UART: Fixed usage of uninitialized member in ins8250_uart_device. Converted ins8250_device to DEVCB2. - 8251 UART . Fixed usage of uninitialized members in i8251_device . Fixed communication between (MESS) Yamaha FB-01 midi-in and 8251 (added receive_register_reset() to 8251) - 8253 PIT: Fixed usage of uninitialized members in pit8253_device - 8255 PPI: Converted to DEVCB2 - 8257 DMA . Updated i8257 to DEVCB2 . New 8257 based on AM9517a. Removed machine\8257dma.c (replaced it in dkong). . Added i8257 safety. Fixed i8257 off-by-one. . Removed some unused macros. - 8259 PIC: Removed trampolinese. Fixed usage of uninitialized members in pic8259_device. - 8279 KDC . Converted i8279 to DEVCB2 . Converted drivers\maygay1b.c, maygay1bsw.c and maygayv1.c to standard i8279 drivers . Added asserts for known index out-of-bounds accesses in i8279_device - ADC0808: Converted to DEVCB2 and delegates. Removed some unused macros. - ADC1038: Updated to use delegates and inline configs - ADC12138: Updated to use delegates - AM9517A DMA: Converted to DEVCB2 - ATA/ATAPI: Added CS1 active status register to machine\atahle.c - CD ROM: Fixed usage of uninitialized member in cdda_device - Clock: Fixed crash introduced when the 6551 transmitter and receiver is shutdown (machine\clock.c) - DATA EAST Custom . Converted video\deco16ic.c to use DEVCB2 . DECO 52: Converted to use delegates + some cleanups (video\decospr.c). . Added video\deco_zoomspr.c for DECO 186 + 187 custom sprites chips used by Dragon Gun + Locked 'n Loaded. Moved some code around for later. - DS1302 RTC: Fixed usage of uninitialized member in ds1302_device - EEPROM . Fixed communications in machine\at45dbxx.c . Added support for X24C44 EEPROM used by Fireball (machine\eepromser.c) - HD63484 video . Updated HD63484 to use inline configs . Fixed usage of uninitialized member in HD63484 device, this fixes debug assertion in Shanghai driver. . Fixed CP position after PTN command in HD63484 and some cleanups. - I2C bus memory: Fixed usage of uninitialized members in i2cmem_device - I8275 video . Fixed i8275x DMA burst length. It is specified in received characters, not character clocks. . Replaced i8275x with new i8275 implementation. Removed video\i8275x.c. . Added character attributes and special character codes. Cleanup driver. . Codes f0-f3 should be invisible. Fixed rubbish on (MESS) Zorba intro screen. . Fixed usage of uninitialized member in i8275_device . Converted dwarfd to use 8275 device . Swapped buffers before drawing the last row . Added missing save states to i8275, fixes dwarfd save state regression. - ISA . Converted ISA8 and ISA16 devices to DEVCB2 . (MESS) Apollo updates: Fixed ISA bus endianness, it's the same as other 680x0 systems with ISA. Improved logging in several places. "20 years ago" option updated to now-necessary "25 years ago". Fixed ISA high IRQ routing. Fixed 3c505 to have a 16 bit ISA interface. Fixed omti8621 and sc499 to have correct-endian ISA interfaces. - Kaneko Custom: Converted Kaneko Pandora to use inline config - Keyboard . Converted generic_keyboard_device and 8042 Keyboard Controller to DEVCB2 . Emulated ie15 keyboard & use RS232 port . Converted IE15 keyboard device to DEVCB2. Also removed some machine().first_screen() from ie15.c. Converted pc_kbdc_device to DEVCB2. . PULSE_LINE appears not to work through DEVCB2 for machine\8042kbdc.c. Fixed usage of uninitialized members in kbdc8042_device. . Generic keyboard / terminal: Added function keys. Values are 0x81 to 0x8c (F1 to F12). If CTRL pressed, added 0x10. If SHIFT pressed, added 0x20. This gives 48 new keys for special terminal functions, etc. - Konami Custom . Removed KONAMI_ROM_DEINTERLEAVEs; SHUFFLE8 and DEINTERLEAVE_4 are entirely gone now (drivers\gijoe.c, gradius3.c, moo.c, overdriv.c, simpsons.c, surpratk.c, tmnt.c, vendetta.c, xexex.c, xmen.c and konami_helper.c/h). . Removed a couple of KONAMI_ROM_DEINTERLEAVE_2 occurrences (asterix.c and dbz.c) . Removed completely konami_deinterleave_gfx usage, now that it is redundant (drivers\asterix.c, bishi.c, dbz.c, djmain.c, gijoe.c, lethal.c, moo.c, overdriv.c, qdrmfgp.c, rungun.c, simpsons.c, tasman.c, vendetta.c, xexex.c, xmen.c and zr107.c) . K001005: Merged video\gticlub functionality to K001005/1006 devices. Converted K001005 to use the new poly manager. Removed some unused macros. . K001604: Converted to use DEVCB2 . K007342 and K007420: Adjusted rom loading in bladestl.c and rockrage.c so that all drivers using the K007342 and K007420 use compatible gfx layouts. . K033906: Converted to use inline configs . K051316: Converted to use device_gfx_interface, inline configs and delegates. Clean up/simplify inline configs, added tile bank dirty method for Ultraman. . K051960/052109: Removed m_dx and m_dy in K051960 and K052109, already nonfunctional since devicefication. These chips don't have variable offsets like the later Konami customs do (Gradius 3 title screen being offset 2 pixels to the left is a BTANB, see MT04118). . K051960: Converted to use device_gfx_interface, inline configs and delegates. While at it, also removed unnecessary configurations and removed later stage interleaving of the sprite roms (they just needed to be loaded in the correct way). . K052109: Converted to use device_gfx_interface, inline configs and delegates. While at it, also removed unnecessary configurations and removed later stage interleaving of the tile roms (they just needed to be loaded in the correct way). Added missing set_colors(). . K053244/053245: Converted K053244/K053245 to use inline configs, delegates and device_gfx_interface. Removed deinterleave crap from K053245, clean up. Fixed lethalen sprite regression. . K053246/K055673: Updated to use delegates and inline configs. As before, these changes are mostly driver-level, so I hope they do not conflict with anyone else's work. The only relevant change for the device code is the removal of some redundant variables (from the interface) and of alt_k055673_vh_start + k053247_set_sprite_offs, which have been replaced by the proper machine configs. . K053252: Fixed an off-by-one error in K053252, allowing various Konami games to actually match their Guru-measured vsyncs. . K053936: Updated to use inline configs . K054338: Updated to use inline configs. Fixed Xexex (video\k054338.c). Made KonamiGX and related drivers use modern K054338 device. De-acho-ify K054338 driver. . K055555: Stop seeing double (video\k055555.c) . K056230: Converted to use inline configs . K056832: Updated to use delegates and inline configs. These changes are mostly driver-level, so I think they should not conflict with anyone else's work. The only relevant change for the device code is the removal of altK056832_vh_start. no further work on this chip is planned (it requires major rework). - MB89363 I/O: Make MB89363B a trampoline device for 2x i8255 chips (drivers\kenseim.c) - MC6845 CRT . Converted to DEVCB2, delegates and inline configs. . Cleaned up the args of the MC6845 delegates as well (no need to pass back and forth pieces of the driver class, now that delegates belong to it as well). Even if I tested the changes extensively, I might have missed something among the 177 source files using this, so please report any regressions you see. . Don't make visible area larger than screen size with SHOW_BORDER_AREA; it causes vblank duration to be negative, which is all kinds of weird and wrong. - Midway Custom: Modernized Midway ICs - MOS6530 RIOT: Updated MOS6530 to use DEVCB2 - Namco Custom . Removed legacy read/write handlers (drivers\namcoic.c) . Namco C45: Reduced tagmap lookups in video\c45.c. device_gfx_interface and memory system improvements: Added macros to facilitate declaring gfxdecode info arrays as members of a device class. AM_SHAREs in a device's internal address map or its default address map are now tagmapped as children of that device rather than siblings (analogous to how handlers in internal/default address maps are scoped). Converted the Namco C45 to device_gfx_interface. . Namco C117: Completely rewrote the emulation of the CUS117 MMU. The MMU is no longer emulated by modifying address maps at runtime, an operation which has become excessively slow as the core memory system has accumulated features and complexity over the years. Instead, the MMU is now a device which works on similar principles to the address_map_bank_device. The recent multisession regression is fixed, all games in the driver should now run substantially faster, and most importantly the driver code is now much cleaner and easier to understand. - NEC Custom . HuC6260: Fixed usage of uninitialized member in huc6260_device, this fixes all PCE-based sets crashed with -aviwrite or -mngwrite (ID 05515). . HuC6202: Converted to DEVCB2 . HuC6261: Converted to use inline config - Nintendo Custom . Converted NES PPU to use inline config and removed some unused config values (video\ppu2c0x.c) . Converted SNES PPU to be a device (video\snes_ppu.c). Fixed usage of uninitialized members in snes_ppu_device. - NMK Custom: Converted NMK112 to use inline config. Fixed uninitialized members in NMK112 and removed long-unneeded trampoline 8-bit handler. - PC hardware: Converted machine\at_keybc.c to DEVCB2. Simplify IBM AT driver. - ROC10937 video . Chip has now proper device line accessors for the clock (sclk), reset (por) and data (data). All affected drivers have been updated to use these. . Added support for the Samsung 16LF01 series of VFDs (a Rockwell 10937 clone with different segment drive order). Changed all affected systems to use it (drivers\globalfr.c, jpmimpct.c, jpmsys5.c, maygay1b.c and proconn.c). - Signetics 2636 sound/video: Converted to use inline configs - SCSI . Added some missing save state entries (machine\ncr5390.c, nscsi_cd.c and nscsi_hd.c) . SCSI Port using WRITELINE and DEVCB2. The slot number and SCSI ID are separate so you can for example have -harddisk1 as ID 6 and -harddisk 2 as ID 5. The HLE'd CD & HD have configuration switches to set the ID, real emulated hardware will specify the ID using it's own method. . Added SCSI ID configuration to (MESS) sa1403d as it's HLE'd but adds it's own DIP switches . Synchronized the data output lines with the input buffer device (bus\scsi\scsi.c). (MESS) RM Nimbus: Make scsi work. - Sega Custom 315-5124 (megaplay.c, megatech.c and segae.c) . Improved CRAM writes. Fixes wrong colors on Sega logo for (MESS) robocop3 on Game Gear. . Improvement to timing for calculating flags. Fixes random hangs in Game Gear roboterm and flickering in Game Gear evander. . Several timing fixes . Fixed flicker on (MESS) Choplifter title screen by drawing the borders through timers. . Instead trigger NMI at end of the display, do it at end of top border (line 261 after start of active screen area). . Added a delay to NMI, to be later than HINT, as stated by Flubba's VDPTest readme. . Also based on VDPTest readme, change VINT and Sprite Overflow flags to be later than VCount change. . Delay a little the display callback, to fix the title scrolling of Road Rash (SMS game). . Fixed documentation of the scanline sections and change some timings to match. . Calculate initial VCount values, instead use of hardcoded values. - Serial device interface: Fixed usage of uninitialized member in device_serial_interface - Seta Custom . Fixed video\seta001.c save state problem (cchance.c, champbwl.c, seta.c, srmp2.c, taito_x.c and tnzs.c) . Make data members private, distinguish per-driver configuration from runtime state and only state save the latter (video\seta001.c) - SVGA . Set s3 and s3virge power-on strapping bits on reset, and allow them to be written (if unlocked). . Prevent writing past the end of VRAM, should fix XF86_SVGA crashing (cirrus_vga_device mem_r/w) . Added preliminary ATi Graphics Ultra Pro (Mach32) ISA video card . Added Diamond Stealth 3D 2000 Pro card. Added ATI mach64 ISA card. - Taito Custom . Updated PC080SN, PC090OJ, TC0080VCO, TC0100SCN, TC0140SYT, TC0150ROD, TC0180VCU, TC0280GRD and TC0480SCP to use inline configs . Removed TC0140SYT device from bshark, spacegun, puzznic and a few more given that the previous code was setting as master and slave CPUs some non-existing ones. . Minor TC0280GRD cleanup - Tecmo Custom . Added Final Star Force (tecmo16.c) logic to video\tecmo_spr.c . Super Pinball Action now uses render to individual bitmaps then mix, fixes a few priority bugs, but there are a lot of uncertain cases (video\spbactn.c and tecmo_spr.c). . Removed legacy code in tecmo_spr.c . Pushed the bootlegs through a common code path (video\tecmo_spr.c) . Moved some tecmo sprite code around for later refactoring (drivers\tbowl.c, tecmo.c, wc90.c, video\tecmo_spr.c) . wc90 sprites refactor - TMS9902 controller: Converted to DEVCB2 - TMS9927 video: Fixed usage of uninitialized members in tms9927_device. Converted to use inline configs. - TMS9928a video: Converted to DEVCB2 - Toaplan Custom: Converted GP9001 to device_gfx_interface, cleanups. - Touchscreen: Removed non-serial device (machine\microtch.c) - V-System Custom . Added MB60553 tilemap chip used by Grand Striker, Tecmo World Cup '94 and V Goal Soccer for the backgrounds. Use custom ROZ implementation to allow for further tweaking, whatever this does it doesn't appear to be standard (I still haven't figured it out properly after 10 years) so will need it (video\mb60553.c). Shuffle bits of code around for easier experimentation. . Added VS920A tilemap chip - V9938 video: Let's make V9938 a bit safer; fixes black screens in (MESS) hotbit20 and expert20 MSX drivers. - Voodoo GFX . Fixed an edge case where CMDFIFO execution would get stuck if the first word in CMDFIFO buffer is written out of order. . Fixed texture with alpha channel is not drawn properly in gauntdl, gauntdl24, gauntleg and gauntleg12 (ID 03447) . Fixed alpha test to run on the alpha combiner output and not on a_other. Do the test before the color combiner steps to potentially save some effort (video\vooddefs.h). . Voodoo modernization. Fixed Viper driver regression (video\voodoo.c). Converted Voodoo to DEVCB2. Removed unused config struct. Fixed typo in Voodoo (video\vooddefs.h). - VRender0 video: Converted to use inline config - CHDMAN . Bugfixed byte order for GD-ROM audio tracks so FLAC compression is effective (ID 05522). This will change the SHA1s of every GD-ROM CHD in MAME; a patch to reflect that is pending (the old images still work, they just take a little more space than is necessary). "chdman copy" suffices to upgrade; no downloading is necessary. . Fixed uninitialized struct on MSVC (and possibly other) builds . Fixed uninitialized flags (util\cdrom.c) . Double quote filenames with spaces when writing .gdi files . Give audio files .raw extension when writing .gdi files . cdrom_read_subcode() now returns false if the image doesn't contain subcodes . Recreated yet again the CHDs from r30949 (no new sets) which all had different SHA1 hashes due to bugfixes with CHDMAN since 0.153 release. - Discrete Netlist . All analysis is now based on an immutable list of terminals. The dynamic list now is only used in the "hot" core. This is the base for possible further optimizations using multiple lists; e.g. a high-low transition list and a low-high transition list. Simplified netlist code. It now always provides a stable solution instead of rescheduling the solver. - fixed a bug in which the fallback solver was called instead of gauss - seidel. Matrix solvers are now subdevices of the solver devices. Matrix solvers can now be scheduled independently. Renamed RESCHED_LOOPS to GS_LOOPS (Gauss Seidel). Added paragmenter NR_LOOPS (Newton Raphson). Changed gauss seidel solver to be a subclass of direct solver and got rid of ugly fallback solution. As a result, popeye is now 45% faster in comparison to 0.153. Removed dead code in analog\nld_solver.c. Fixed a timing bug in netlist 7474. Pong Doubles now working. Thanks a lot to Adam Bousley for dual licensing DICE netlists. Hooked up player inputs. Minor performance tweaks. Separated game netlists from driver. DICE is making extensive use of macros which may conflict if these are in one source file. Added some rescap.h macros to netlist. Allow connecting a net to itself, fixed typo and be more explicit on error. Added first draft of 74123 to netlist code. Fixed gate timing (devices\nld_signal.h). Added 7408, 7411, 7432 and 7437 to netlist. Changes core_device constructor (netlist\nl_base.c). Fixed assert in netlist (netlist\nl_base.c). Analog output is always immediate. Minor changes to proxy (devices\nld_system.c). Analog input updates now send to queue. Reduces risk of stack overflows. Fixed a bug which caused NAND astable multivibrator to oscillate. 74123 improvements. Preliminary support for LTE dynamic time-stepping based on Local truncation error. This enables the possibility to connect a capacitor between ground and a TTL output and get a e.g. 100 ns delay with a 1nF capacitor. Added an example circuit (cdelay.c). Changed the log device to support nano-second granularity. LTE is not yet enabled due to it's ugly test-state. Introduced netlist_analog_net_t and netlist_logic_net_t to untangle code a bit. Fixed a bug with saving state. In addition, some minor code changes. Make recent additions (timing, local truncation error based timestep) the default. As a consequence, the solver frequency is just an indication, the timestep used can be anything between 2ns and 100 * 1/Frequency depending on the second derivative. A fixed timestep can be forced by setting DYNAMICTS to 0. For an example how this works on delaying signals using capacitors see nl_examples/cdelay.c. Straightened the timing code. With solver parameter DYNAMIC_TS=1 the system now steps each analog subnet individually by using a LTE approach. With DYNAMIC_TS=0 pure fixed timestepping is used. Reworked some code (mostly in nl_base.h) to shift variables into the private space. Netlist codebase now also compiles outside the MAME environment. Replaced tagmap with a very simple class to make it happen. Linear searches, slow, but only used during analysis. Various minor changes and some more logging. Some improvements to analog\nld_solver.c code. Renamed auxiliary types to move them into the "p" namespace (plinearlist_t, pstack_t, ...). Performance related changes. Mostly from analyzing auto-vectorization. Further simplification and clean up around the linear system solvers. Netlist updates and bugfixes: Improved convergence code (max(epsilon) instead of sum(epsilon)). Identified needless updates. Changed NE555 discharge current to a value in the order of the datasheet and improved dynamic time-stepping. Dynamic time-stepping is not used by any current implementation right now since any fast discharge will be resolved to mV levels imposing nano-second timesteps. Great and exact but deadly for performance. Resize should never have been public in netlist\plists.h. Further work on vectorization. Netlist changes: * Reworked the analog storage model to better support the compiler. This will most likely only pay off on larger matrices than currently used. Investment for future platforms with larger vectors. * Added parameter "GS_THRESHOLD" to select the minimum matrix size for Gauss-Seidel solver. * pstate: Pointer will be resolved late, i.e. after all initialization is finished. State is registered during start, but some pointers are only set during post_load in the solver. Document & save work. Pretty convoluted code now. I'd really miss the good old Cray C90. Clean Fortran code, seamless vectorization and parallelization. That's now 20 years ago and I am fighting with cryptic vectorization compiler messages today. Quite a number of changes: * Templates to provide operations for fixed matrix sizes. * Sorting of nets to increase convergence. * Successive over relaxation - for popeye a parameter of 1.05 works best. * The code commented out may provide benefits on different architectures like true vector architectures. Popeye run peaks at 1800% (up 20%) and pong has a slight performance increase as well. Disabled printf logging of stats (nld_solver.c). Removed m_new_Analog. Did some tests using linear prediction. This is not used since the savings are about the same size as the effort. Optimized netlist proxies. Small but measurable performance increase for pongf and Pong Doubles. In addition, moved some code between classes and sorted code in nl_base.c. Removed m_last_analog. Moved solver templates into separate header files. Removed a number of "uninitialized member" warnings by using a template wrapper around those members. More cleanup and some development: Removed dead code from nld_signal.h. Removed m_last_Q and all callers; if a device depends on state let it maintain it. Added development on a generic device based on truthtables. Align naming convention to be the same for nld_signal and nld_truthtable. Added CD4020 device. Device definitions now can specify the logic family (i.e. TTL, CD4000). Fixed timing on 4020. Added more device to netlist: R2R resistor network DAC. Dummy input device. This is used so that devices can exhibit terminals not yet used such as V+ for opamps. Added a very basic macro model for norton opamps (LM3900). Added a current controlled current source (CCCS). . Correct some device shortname/longname conflicts that had surfaced . Experimental fix for building with MSVC 2012 (it might fix ICC too); Either works for MSVC 2012 & MinGW, someone needs to test with ICC (netlist\nl_dice_compat.h). . Pong Doubles now working. Thanks a lot to Adam Bousley for dual licensing DICE netlists. Hooked up player inputs. Minor performance tweaks. Separated game netlists from driver. DICE is making extensive use of macros which may conflict if these are in one source file. Added some rescap.h macros to netlist. . Changed netlist gauss seidel solver to be a subclass of direct solver and got rid of ugly fallback solution. As a result, Popeye is now 45% faster in comparison to 0.153. - 3x3puzzl.c: Added save state support - 4enraya.c: Fixed save state regression - adp.c . Added NVRAM support. Hooked up RTC. Added inputs to fstation. Removed unused code. . Hooked up RAMDAC device . Fixed visible area and number of coin slots in fstation - aleck64.c: Moved RSP to use DEVCB2 - alg.c . Renamed BIOS kick13.rom to 315093-02.u2 . Added very basic POT counter emulation to Amiga, enough for Space Ranger to detect the second button. - aquarium.c and gcpinbal.c: Moved some gcpinbal / aquarium code around for later refactoring - arcadia.c: Renamed BIOS kick12.rom to 315093-01.u2 - armedf.c: Fixed save state regression in driver (kozure and terrafb) - battlnts.c . Simplify rom loading and reduce tagmap lookups . Fixed Rack 'em Up gfx1 rom that was dumped with low and high bytes split - bfcobra.c: Fixed acia6850 bfcobra_state typo - bfm_sc1.c and bfm_sc2.c . BFM BD1 (machine\bfm_bd1.c) and ROC10937 (machine\roc10937.c) now have proper device line accessors for the clock (sclk), reset (por) and data (data). All affected drivers have been updated to use these. . BFM_Sc1 shows the dot matrix display again. - bfm_sc4.c . Support MC68681 timer-driven serial channels. Fixes BFM_Sc4 games failure to pass INITIALIZING in-game (ID 05491). . Updated 68307's 68681 to an actual sub-device instead of pairing it in the game driver. SC4 fruit machines, development / debugging aid. Added sc4dnd layout helper. Coins map to drivers\bfm_sc4h.c (don't do anything in door open mode). - bfm_sc5sw.c: Updated 68307's 68681 to an actual sub-device instead of pairing it in the game driver - blmbycar.c: Modern palette handling - brkthru.c: Fixed save state regression - chihiro.c . i386 cpu x87 opcodes FPREM and FPREM1 must clear status bit C2 not C0 . Added basic management of some Nvidia APU sound registers . Store modelview/projection matrices and translate/scale vectors sent to NV2A . Store vertex program (vertex shader) sent to NV2A 3d accelerator . Added debug command "chihiro grab_texture,,", it saves to the next used texture of type . . Fixed DXT3 and adds DXt5 texture decompression . Added 3D accelerator method 0x1800 for indexed mode vertex sending . Added NV2A vertex program disassembler . Added two new debugger commands, grab_vprog to save the currently uploaded vertex program, and vprogdis [<,type>] to disassemble a vertex program. . Implemented alpha-test, blending, and logical per-fragment operations. Improves many 2D displays in Out Run 2. . Updated set documentation. Added exact release dates, GDX info and descriptions for all known existing games/releases not yet secured or dumped. . Added v5 CHD redump for crtaxihr and vcop3 - coinmvga.c: Hooked up RAMDAC device - cps3.c . Added fastram. Fixed and enable SH-2 memory system bypass for SH-1 & SH-2 DRC. The speedup is only really gaudy on CPS-3 where the SH-2 is a major percentage of the frame time (800% -> 1250% unthrottled). . Give CPS3 sound its own headerfile. Let's not set cps3sound basepointer the reverse way. . Fixed Ken's short grunt voice plays twice in SFIII and SFIII2 (audio\cps3) (ID 05581) - csplayh5.c: Start to make the TMPZ84C011 a proper CPU type. Updated csplayh5 to use the TMPZ84C011 core. These Nichibutsu games all seem to use common sound systems, so we could probably combine the sound system emulation in a single file rather then duplicating it). - cv1k.c Reduced tagmap lookups - cvs.c . Updated driver to use modern speech rom reading . Fixed Hero save state regression (couldn't repro the Dazzler one) - dec0.c . Fixed generic_paletteram regression and clean up MCFGs. Added SCREEN_RAW_PARAMS. Fixes first tilemap on Boulder Dash is offset horizontally by a single pixel, leaving an unwanted line of pixels along the left edge of the screen, and part of the radar (ID 04403). . Fixed 'Allow Continue' dipswitch in baddudes and clones (ID 05609) . Converted slyspy tilemap protection to use bankdev. This fixes low game performance (ID 05627). - deco_mlc.c . Modernised SH-2 cpu core. Better fix for the SH-2 modernization (drivers\deco_mlc.c). . Added fastram to Avengers In Galactic Storm - deco32.c: Moved some code around for later. Added video\deco_zoomspr.c (Sprites used by Dragon Gun + Locked 'n Loaded). Notes on priority. - dkong.c . Replaced machine\8257dma with i8257 . Include missing members in save state - dlair.c . Refactoring driver to use Z80DART is not trivial . Took out preliminary (not-working) dleuro Z80SIO serial hookup. Replaced Z80SIO with Z80DART device, even more preliminary hookup, but we can get rid of the old device now. - dreamwld.c: Fixed VSync - dwarfd.c . Converted dwarfd driver to use 8275 device (ID 05254). dwarfd displays the wrong tiles until the dips are changed. Wasn't able to find a combination that worked consistently for both (ID 04571). . Swapped buffers in 8275 before drawing the last row . Adjusted colors with playing cards as reference. Filled gaps in tiles. Get colors from PROM. . Added color prom to Quarter Horse Classic borrowed from dwarfd and slightly edited - ertictac.c: Fixed shaking screen regression in Poizone/Erotictac - fromanc2.c . Use separate palettes per screen and core palette formats. Removed unneccessary eeprom-out trampolines. . Fixed fromancr EEPROM access. This fixes Service menu settings saving (ID 05487). - funworld.c . Fix for China Town regression . Royal Card (Italian, Dino 4 hardware, encrypted): Fully decrypted rcdino4 and promoted to working state (Game now playable). Separating rcdino4 decryption WIP. Improved decryption, game boots now. Created a dedicated machine driver. Adjusted the tilemap size accordingly. Added the proper color banking. Hooked DIP switches and proper inputs. . Added default NVRAM to clone Jolly Card (Austrian, Fun World, bootleg) (Game now playable) . Inserted some more switches, Saloon now boots and service mode is mostly working. - gaelco2.c: Converted driver to use inline configs - gaiden.c . Unify and refactoring Tecmo16 video code . Cleaned up some code in tecmo_spr as a result, actually has proper colours/priority now. . Start making the Tecmo mixer a reusable device. . Some improvements to clone Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden) - galaga.c: Zerofill Namco 51/52/54XX at init. This fixes Dig Dug, Galaga and Pole Position freezes just before finishing POST (ID 05500). It happens mostly on 32-bit platform binaries. - galspnbl.c: Unify and refactoring video code. Cleaned up some code in tecmo_spr as a result, actually has proper colours/priority now. - ghosteo.c: Converted S3C24xx to DEVCB2. Isolated the callback that resists DEVCB2 conversion. - globalvr.c: The core does not seem to like large amounts of RAM and dies in Global VR driver with "FATALERROR: Duplicate save state registration entry (memory/:maincpu/0/00000000-ffffffff)". Is this a limitation of the save system or a bug? (ID 05492) - goodejan.c: Researched and added missing DIP information/locations as well as some useful notes of observations (ID 05543) - gticlub.c . Hang Pilot have different memory map . Fixed analog input in Operation Thunder Hurricane - gstriker.c . Reorganized some code for Grand Striker driver (no functional change). Use mixer regs. Documentation improvement. . Removed bad dump gfx3 rom from clone V Goal Soccer (set 2) . Fixed M68000 CPU clock speed in Tecmo World Cup '94 - gticlub.c: Merged video\gticlub functionality to K001005/1006 devices - highvdeo.c: Hooked up RAMDAC device - hornet.c: Updated ADC12138 to use delegates and slightly reduced tagmap lookups in driver while at it - iqblock.c: Cleanup driver - iteagle.c: Fixed visible area - itech32.c: Added note about screen configurations - kaneko16.c . Scrambling of sprite offset registers, fixes when finishing a level the timer bonus doesn't show correctly (ID 00493). . Added background scroll register (screen shaking effect), fixed flipping. . Fixed flipped tilemap offset. Removed bw300.u82 gfx1 rom from parent set. - konamigq.c: Added TMS57002 CPU3 - konamigq.c, konamigv.c and twinkle.c: Added 'SCSI ID' configuration - konamigx.c . Fixed reverb sound. Better wet/dry sound levels. Will tune these more later. . Updated ADC083x to use delegates and slightly reduced tagmap lookups in KonamiGX while at it . Made KonamiGX and related drivers use modern K054338 device. Cleanup driver and fixed regression. . Moved hack so things work like before - lindbergh.c: Added Lindbergh BIOS 1 and 2 - lwings.c: Tweak music tempo. This fixes music tempo is fast (ID 05562) and sometimes the sound repeat in every stage start (ID 05585). - m72.c . Changed rom labels where appropriate to match information and added PALs/PROMs to Ninja Spirit and clone . Added Ninja Spirit README to driver - magicard.c: Hooked up RAMDAC device and added vertical display bit. Some fixes for hotslots. Fixed VSync. - mainsnk.c and snk.c: Fixed for SNK buzzing sound on startup (sound\snkwave.c). To be verified during the next regression test. - maygay1bsw.c: Fixed crash after OK in Tick Tock Cash (Empire) (M1A/B) (ID 05496) - maxaflex.c: Removed AM_READWRITE_LEGACY - mazerbla.c: Updated video\mb_vcu.c to use inline configs - midas.c . Fixed uninitialized tile banking, gfxdecode layout (currently unused) and rationalize sprite rom loading. 0x9c000e is a video register, not LED related. Fixed VSync. . Clear unused ROM region in Hammer properly . Fixed some gfx bugs in Live Quiz Show - midzeus.c: Modernized driver and lot moved to _state, also made midzeus2_state separated and legacy_poly should be removed in future. - model2.c . Added vblank bit in Model 2 Old Revision, fixes Virtua Cop booting. . Hooked up lightgun inputs in Virtua Cop . Fixed at least black screen regression in DOA . Documentation notes . Wave Runner reads at TGP ID, hook it up. . Fixed audio regression in Model 2 games . Added texture mirroring for Model 2B . Attempt to fix Last Bronx booting, still uses a shitload of unsupported opcodes (cpu\sharc\sharc.c). . Simplified Last Bronx fix, however it's confirmed to set dst address to 0, Ville? . Added ALU opcode 0x89 (FAVG), Last Bronx shows background scene in attract then asserts. . Added geometry "eye mode", used by Sega Rally on car selection to display them on different boxes. . Added gearbox for Sega Rally . Added a bunch of unhandled opcodes for TGP (cpu\mb86233\mb86233.c), this apparently fixed Virtua Cop 2 geometry. . Fixed Model 2 video refresh rates . State-ized FIFO functions, for more sane debugging of it. . Removed bogus AM_SHARE for paletteram . Virtua Striker doesn't seem to like flipping textures on playfield and players, disable it. . Fixed Virtua Cop 2 inverted texture ROMs . Fixed undocumented TGP opcode, fixes character appearing/logic in Virtua Cop 2. . Hooked up lightgun inputs for Virtua Cop 2 . Improved Sky Target polygon/texture rom loading . Fixed Manx TT rom loading . Fixed Indirect Mode addressing in TGP, fixes Manx TT crash on gameplay (bikes are invisible tho, Z sort issue?). . Added inputs for Manx TT . Fix for External->Reg opcode in TGP, VF2 now boots then dies a bunch of seconds later in gameplay/attract. . Updated VF2 opcodes, and fixed Sky Target 3D display. . Fixed TGP area access in Sky Target. Fixed game hangs (ID 04381) . Added Shift up / down in Manx TT, and hooked inputs in Motor Raid too. . Bunch of TGP opcodes used by VF2 . Added TGPx4 CPU core for Model 2C (bel, hotd, overrev, segawski, skisuprg, stcc, topskatr and waverunr). Added user5 Model2 CPU board roms to Sky Target. Added button 5-6 to indy500, overrev, sgt24h and srallyc. - model3.c . Updated 53c810 SCSI to use delegates, and moved some formerly static stuff into Model 3 classes. . Moved Model 3 code into the driver class - mystwarr.c . Fixed AddressSanitizer: heap-buffer-overflow in Mystic Warriors and Martial Champion (ID 05242). Fixed mask ROM tests, broken since video was devicefied. . Fixed uninitialized variable - namcona1.c . Rewrite tilemap drawing code. This fixes assert after OK (ID 05499). . Use set_palette_offset for tilemaps. Use GFXDECODE_RAM. ROM loading and miscellaneous cleanups. Reduced tagmap lookups using ioport_array. . Fixed regression in clone Cosmo Gang the Puzzle (Japan) - game now boots. - namcos1.c . Changed more static variables to driver class members. Some cleanup,. . Completely rewrote the emulation of the CUS117 MMU. The MMU is no longer emulated by modifying address maps at runtime, an operation which has become excessively slow as the core memory system has accumulated features and complexity over the years. Instead, the MMU is now a device which works on similar principles to the address_map_bank_device. The recent multisession regression is fixed, all games in the driver should now run substantially faster, and most importantly the driver code is now much cleaner and easier to understand. This fixes the performance regression (ID 04097) and switching games from namcos1 driver in MAME internal menu cause program to crash (ID 05537). - namcos12.c . Assume H8/3002 portb high bit is read-only . Fixed black screen after initial screen in Golgo 13 (VBLANK_TIME in video\psx.c) (ID 05501). Note: Namco System 12 is the only place where psx vblank_state is used, we should be safe. Can't get Golgo 13 gun aim working, something wrong with h8_adc? - namcos21.c: Cleanup palette handling - namcos23.c . Assume H8/3002 portb high bit is read-only . Fixed point rom loading in Motocross Go - naomi.c . Documentation update . 5 more BAD_DUMP GD-ROMs redumped from source. All SHA1s updated to latest. 'chdman copy' on existing valid CHDs will update your files to the new SHA1s. . Fixed usage of uninitialized members in powervr2_device . Redumped GD-ROM for ggxxac, kurucham, meltyba, vf4tuneda and vf4tunedd from .gdi source to CHD v5 . Redumped ngdup23c and tetkiwam to current standards . Changed 'Pokasuka Ghost' from a parent set to a clone of Manic Panic Ghosts! - nbmj9195.c: Start to make the TMPZ84C011 a proper CPU type. nbmj9195 now uses the TMPZ84C011 core with callbacks. Replaced Z80 CPU1/2 with TMPZ84C011. - nemesis.c . Use resnet for palette . Changed nemesis resnet configuration to Open Collector. The 7409 is an open collector and gate. . Normalized black/white levels . Use standard palette handler for Salamander and friends - neogeo.c . Created memcard as image device and removed it from machine\generic . Started converting NeoGeo video / sprite system to a device_reset . Created base device and number of derived classes: NEOGEO_SPRITE_REGULAR is an reference implementation, drawing direct from, NEOGEO_SPRITE_OPTIMZIED is a version with predecoded gfx (as we use now) this is the default used by the driver and NEOGEO_SPRITE_MIDAS is a version supporting the changes needed by the MIDAS games (mainly 8bpp instead of 4bpp). . Simplify sprite_on_scanline calculation (video\neogeo_spr.c) . Use real palette_device . NeoGeo (multi)slot work . Converted all protection types to be MAME devices . Created cartridge (slot) device types for each type of cartridge containing the above protection devices . Made the 'neogeo' set emulate a 6-slot MVS system allowing for multiple cartridges to be mounted, for example "mame64 neogeo -cart1 mslug -cart2 mslugx -cart3 mslug3" is the command-line syntax to launch an MVS unit with 3 Metal Slug games installed. This fixes all slots in NEOGEO are set to "cartridge inserted" (ID 02992). . Many of the hacks / bootlegs won't work in multi-slot setups, this is true to hardware. . Some carts (kof95, kof2002 for example) can block recognition of carts in higher slots if the NVRAM isn't already initialized. This appears to be true to original hardware because the kof95h set fixes this issue, powering off/on the system fixes it. . Sound banking isn't 100% correctly handled so the odd game may fail with the slot system (trally) but regular loading still works. . The slot / multislot support makes use of the Software Lists rather than the internal sets, please ensure the correct softlist XML file is present in your hash folder. . Init order for vliner. Clear the extra ram some of the bootlegs have, might actually fixed kof10th this time (neogeo\bootleg_prot.c). Address some ng save state concerns. . Fix for uninit variable in NeoGeo - niyanpai.c: Start to make the TMPZ84C011 a proper CPU type, migrate code from niyanpai to the cpu. Blitter registers in Niyanpai are 8-bit. Replaced Z80 CPU2 with TMPZ84C011. - nss.c, sfcbox.c and snesb.c: Modernised G65C816 cpu core. Fixed SNES regression from modernization (cpu\g65816\g65816.c). Fixed usage of uninitialized member in g65816_device and spc700_device. - nwk-tr.c: Updated ADC12138 to use delegates and slightly reduced tagmap lookups in NWK-TR driver while at it - paradise.c: Fixed save state issue - peplus.c . Updated docs / info. More research and corrections. Added note about the international PP0xxx sets supporting a Tournament Mode. . According to docs prom capx1321.u43 goes with cg2324 gfx roms (pex2031p, pex2035p, pex2036p, pex2303p, pex2306p, pex2307p, pex2310p and pex2314p) . Make layout buttons clickable for the PE Plus sets . Document how the Treasure Chest bonus round works for the PP0816 set (pepp0816), the "Shockwave" mode in the Shockwave Poker sets (pex2250p and pex2251p) and the Sequential ACE$ bonus for the Ace$ Bonus Poker set (pex2172p). . Documented the correct paytable ID & rules for BE0014 Blackjack set plus minor clean ups (pebe0014) . Explain the Lucky Deal bonus feature (pex2031p) . Figured out how to find & read the internal paytables and documented this information within the driver . List the paytable ID for the 2 Keno sets (peke1012 and peke1013) . Explain the incorrect payout table of clone PP0103 (pepp0103) and use correct 32K dump . Correct P47A paytables for pepp0103, pepp0224, pepp0224a, pex0224p and pepp0290 . Added new gfx1 roms to clone pex0055pb and new user1 rom to clone pexmp017b - pinkiri8.c: Fixed regression after AM_SHARE change - playch10.c: Reduced tagmap lookups at runtime - playmark.c . Restored missing text layer in Hot Mind, added Ticket/Token dispensers and replaced the sound PIC with a hand modified version for correct background music playback. Added user1 roms. Fixed rom names and gfx1 rom loading. . Fixed the hand modified PIC16C57 code for Hot Mind and Lucky Boom (Hard Times hardware) so they correctly handle the OKI banking and work on the real hardware (cpu\pic16c5x\pic16c5x.c). . Added PIC16C57 CPU to Hard Times and World Beach Volley . Fixed clone Lucky Boom (Hard Times hardware) (Game now playable). Correct the text layer and inputs, added Ticket/Token dispensers and replaced the sound PIC with a hand modified version for correct sample and music playback. - proconn.c: Use Z80DART in driver instead of deprecated Z80SIO - psikyo4.c . Added fastram . Reworked includes - psikyosh.c: Hook up fastram, (s1945ii 900%->1700%). - qix.c: Fixed save state regression - rastersp.c: Modernized NVRAM - rohga.c: Reduced tagmap lookups (video\rohga.c) - rpunch.c . Improved layer alignments with video reference . Fixed some missing gfx in Super Volleyball by adding ROM_RELOAD, these mirrors are needed for the player hints to display. Fixed rom loading in clone (US). This fixes arrow and confettis missing in svolley, svolleyk and svolleyu (ID 04348) and red arrow indicator doesn't appear in svolleyk (ID 01109) . Added working save states to svolleybl and the rest of rpunch.c game drivers. - segac2.c . Modernize Sega C2 driver a little . Fix for partial updates. Fixed SegaC2 regression. - segas16a.c: Added complete dump of the FD1089B 317-0027 key to SDI - Strategic Defense Initiative - segas16b.c . Reconstructed the SEGA FD1094 key for Ace Attacker (FD1094 317-0059) (Game now playable). Some errors could remain. Found the differences, in some sprite ROMs, with the System16a version to be due to a BAD_DUMP with stuck bits. Both sets use the same sprite ROMs now. Fixed analog inputs. . Reconstructed the SEGA FD1094 key for clone Juuouki (set 1, Japan, FD1094 317-0065) (Game now playable). Note: Some of the RNG-independent bits could be incorrect. - shanghai.c: Fixed usage of uninitialized member in HD63484 device, this fixes debug assertion in Shanghai driver (ID 05506). - sigmab52.c . Improved inputs . Added preliminary sound (M6809 CPU and YM3812 sound) . Fixed DIPLOCATION . Added NVRAM . Various cleanups . Added coin lockout. Added lamps layout. - skylncr.c . Added note to use RAMDAC device . Fixed Leader (Game now playable) . Redumped all the Super Star '97 graphics ROMs as TC531000 mask ROMs. Fixed graphics. - stv.c: Added fastram - superqix.c: Fixed save state regression - suprnova.c: Added fastram. Fixed and enable SH-2 memory system bypass for SH-1 & SH-2 DRC. SKNS games that access spriteram a lot (Cyvern) get a decent speedup. - system16.c . Sync shadow/hilight with non-bootleg code, should fix out-of-range pixels. This fixes clone Dynamite Dux (Datsu bootleg) with corrupt screen in debug build (ID 05503) and AddressSanitizer heap-buffer-overflow (ID 05239). . Load correct roms for clone 'Michael Jackson's Moonwalker (bootleg)' - taito_f3.c: Fixed Grid Seeker missing background graphics on the right side (ID 03599). Fixed visible area. - taito_l.c . Removed Fighting Hawk irq hack in driver, this fixes some sprites stuck over the background (ID 03164) and Champion Wrestler's gameplay was too fast (ID 01546) and music cues do not play (ID 05264). . Make Fighting Hawk run with perfect interleave, seems to fix some issues. - tecmo16.c . Unify and refactoring Tecmo16 video code. Added Final Star Force logic to video\tecmo_spr.c. . Cleaned up some code in tecmo_spr as a result, actually has proper colours/priority now. This fixes broken sprite colors in fstarfrc, ginkun and riot (ID 01630). . Start making the Tecmo mixer a reusable device (video\tecmo_mix.c) . Fixed XTALs in Tecmo16, correct OKI clock. - tetrisp2.c: Fixed save state regression - thunderx.c: Added xtals - tigeroad.c . Merged Pushman with Tiger Road driver. This fixes later levels (using the cheat mode) seem to have some corrupt tilemaps. . Merged tiger road / f1-dream and pushman / bouncing balls drivers - as usual Comad cloned the hardware when they made the games. Moved the protection sims for f1dream / bbballs to machine\tigeroad.c. Also marked f1dream as not working, it's never worked, the protection simulation is incomplete (the bootleg has some original bugs too due to their workarounds, so technically there isn't a perfectly working version of this game supported by MAME). . Correct name for BPROM and document type for the Tiger Road sets - toaplan2.c: Converted GP9001 Video Controller to device_gfx_interface, cleanups. - triforce.c . Updated set documentation. Added exact release dates, GDT info and descriptions for all known existing games/releases not yet secured or dumped. . Added v5 CHD redump for vs2002ex, vs4 and vs4j - tumbleb.c: Reduced tagmap lookups (video\tumbleb.c) - vegas.c . Fixed texture with alpha channel is not drawn properly in gauntdl, gauntdl24, gauntleg and gauntleg12 (ID 03447) . Fixed alpha test to run on the alpha combiner output and not on a_other. Do the test before the color combiner steps to potentially save some effort (video\vooddefs.h). . Replaced ADSP-2181 CPU1 with ADSP-2104 in cartfury - viper.c: Voodo modernization. Fixed driver regression (video\voodoo.c). - vsnes.c: Reduced tagmap lookups at runtime - williams.c . Moved blaster-specific and williams2-specific stuff into subclass . Use bankdevs instead of dynamic address map modification. Reorganize code and driver state class. . Minor whitespace clean-up for alignment . Fixed visible area in colony7, defender, jin, mayday and playball . Added two video board PROMs to Joust 2 and made ROM names more descriptive - zr107.c . Fixed reverb sound. Better wet/dry sound levels. Will tune these more later. . Updated ADC083x to use delegates and slightly reduced tagmap lookups in ZR107 while at it . Merged video / gticlub functionality to K001005/1006 devices - 1942 . AY8910_RESISTOR_OUTPUT now selects resistance calculation by simple saturation MOSFET model in ay8910.c. Currently only 1942 and Popeye use this. . Minimize resampling, optimized netlist parameters in 1942. - 88 Games: Modernized banking. Fixed visible area. - Ace: Readded color overlay after confirmation with cabinet photo - AGEMAME . Fixed maincpu rom address to $8000 in clone m4eaw__bz (ID 05497) . Mapped some missing buttons in sc4dnd, also made test modes more accessible via the service button - the games even list what should be on each of the reel positions in test mode. . Added PAL to v4vgpok . Fixed jpmimpct.c regression . Maygay M1 and MV1 converted to standard i8279 drivers. Hooked up i8279. . Made MPU4Vid chips properly 8-bit where possible, still doesn't fix 6850 issues though, but does fix CHR regression (video\scn2674.c). Populated Cyber Casino with a BwB style characteriser table, fixes regression from r30917. . ROC10937 has now proper device line accessors for the clock (sclk), reset (por) and data (data). All affected drivers have been updated to use these. . Added support for the Samsung 16LF01 series of VFDs (a Rockwell clone with different segment drive order). Changed all affected systems to use it (drivers\globalfr.c, jpmimpct.c, jpmsys5.c, maygay1b.c and proconn.c). - Alcon: Fixed Alcon and Slap Fight save state problem - Amiga . Some more core cleanup (mess\drivers\amiga.c and machine\amigacd.c). Amiga modernization. Fixed usage of uninitialized members in amiga_sound_device. . Big Amiga cleanup and reorganizaton. Lots of work still to do. All basic Amiga models are now supported to varying degrees. Created a GAYLE device, used by the A600 and A1200, and implement the internal IDE controller for both. Implement internal IDE controller for the Amiga 4000. Fixed RTC hookup in Amiga 3000 and 4000. Set RP5C01 RTC to actually return 24 hour mode, which fixes RTC detection for the Amiga. Fixed A3000 RTC tag. Kill the legacy CIA emulation and fix Agnus ID for A2000 and A500. CIA changes: Added missing virtual keyword to actually call the right TOD clock. Outputs depend on the input state (fixes A1000 overlay switch). Switching to serial output mode with one-shot activated causes a pulse on SP (correct? needed for keyboard handshake). Serial input is clocked by the CNT input, not the default clock. Mask offsets to 4 bits. Writing the Timer High register with one-shot activated immediately causes the timer to be latched and the timer started, regardless of timer start value. Support PAL/NTSC switch for machines equipped with an ECS Agnus chip or better. Fixed some Zorro slot bugs. Added the Commodore A2052 Zorro-II card as an example for a basic memory expansion. Added the Buddha IDE controller Zorro-II card (not working yet though). Added support for interlaced modes. Currently, this basically emulates a "flickerfixer" device because the core doesn't have native interlace support yet. Added support for the Commodore A2232 Serial Card. Fixed WD33C93 device tag. Disable screen mode logging. TODO: Only update screen mode if it actually changes. Changed constants to enum to avoid some issues with debug builds (includes\amiga.h). Added the Logica Diagnostic ROM 2.0 to various machines. Fixed A4000 kickstart selection. Added proper RS-232 port emulation. Rendering update, always render the full height to allow mixed mode screens. LACE and LOF bits should now work closer to the real system. Emulate DIWHIGH register for ECS machines, reduce some code duplication. Added very basic POT counter emulation, enough for Space Ranger (Arcadia, V 2.0) to detect the second button. . Added writing to Amiga FDC: Formatting a floppy under A600 gets memory corruption then a guru meditation when reaching the point the system tries to write the directory structure. The fdc itself does not seem to be involved. I'd suspect the blitter, which afaik is used for the mfm expansion of the sector data. . Added version 6.1 bootroms for the A590/A2091 and RAM controller PAL. . Fixed Up Scope jumps into Service Mode at start (ID 05555) . Added 2x MOS8520 CPUs and fixed visible area and VSync in alg.c, arcadia.c, cubo.c, mquake and upscope . Fixed Amiga Paula sound clock speed in cubo.c and Zorton Brothers . Fixed usage of uninitialized members in amiga_sound_device - Archimedes . Added preliminary keyboard hook-up in AAKART device, adding bare-bones keyboard inputs to (MESS) Acorn Archimedes. Fixed DMA scrolling and wrap-around, noticeable on supervisor mode. Looks like that /2 is far better as timer count, according to the RTC count (machine\archimds.c). . Fixed shaking screen regression in Poizone/Erotictac . Added Co-Processor sub-types to ARM CPU, hooking a special case for VL86C020 used by Acorn Archimedes. Added first step in adding floppy hook-up to Acorn Archimedes, removed old device implementation in favor of new device core. Improved FDC hookup, (MESS) Arthur now boots without hacks. Some keyboard additions. According to OG, m_fdc->dden_w was reversed (and indeed multiple DRQs are called now). Attempt to hook up a bunch of floppy related bits to no avail. . Converted AAKART device to DEVCB2 . Silence ~1MB/second printf spam (machine\aakart.c) - Barroom Baseball (prototype): Removed AM_READWRITE_LEGACY - Battle Lane: Fixed save state regression - Battletoads: Fixed issue with game (cpu\tms34010\34010gfx.c) - Blades of Steel . Adjusted rom loading so that drivers using the K007342 and K007420 use compatible gfx layouts. Simplify rom loading and reduce tagmap lookups. . Fixed trackball tags . Updated driver to use ioport_array_finder . Added RC filters to YM2203 SSG channels (based on schematic, identical to Double Dribble) - Chase H.Q.: Added pal16l8b-b52-124.ic180 rom from clone (Japan, upright?) to parent and clones (Japan) and (US) - Cool Pool: Added 2nd button and button labels - Cool Riders: Added fastram - Crude Buster . Use generic palette handling and removed artificial brightness boost . Added PCB locations to the Crude Buster / Two Crude sets. Correct some rom names, reordered the US sets as the recent addition is revision 01. Added more descriptive names in the gamedef to reflect revision 01 sets. . Correct Crude Buster / Two Crude to use actual measured clock speeds. Fixed H6280 and YM2203 clock speeds. - Cyberball . Use separate palette for each screen . Use explicit target() everywhere for style consistency . Fixed compile on old Apple GCC (thanks Micko) (video\cyberbal.c) - Daioh: Verify clocks and fix refresh rate - Fever Soccer: Added memory bypasses (fastram), good for another 600% speed. - Finalizer - Super Transformation . Small cleanup . Put draw_sprites in its own function instead of inside screen_update . Added resnet info to the video driver - Gang Wars: Added gfx2 rom from clone (Japan) to parent set. Added new gfx2 roms to clone (US) (ID 00371). - Golden Poker Series "Joker's Wild" . Hooked up ACRTC. Added inputs. Added NVRAM support. Added preliminary sound. Added lamps layout. . Hooked up RAMDAC device . Added Z80 CPU2 and input. Fixed visible area. - Gradius III . Removed KONAMI_ROM_DEINTERLEAVE and some no longer needed code . Removed m_dx and m_dy in K051960 and K052109, already nonfunctional since devicefication. These chips don't have variable offsets like the later Konami customs do (Gradius 3 title screen being offset 2 pixels to the left is a BTANB, see MT04118). . Added xtal - Hot Chase: Cleanup - Jumping Pop: Fixed save state regression - Kamikaze: Fixed Astro Invader/Kamikaze red screen flashing (ID 05442) - King of Football: Applied Kale's RAMDAC changes to King of Football, too. This fixes the debug build regression found by Tafoid's regression tests. - Konkyuu no Hoshi: Hooked up RAMDAC device to BMC Bowling driver - Lethal Enforcers . Converted to use inline configs, delegates and device_gfx_interface. 6bpp graphics (i.e. lethalen sprites) is currently broken, because it needs further refactoring (currently in progress). . Fixed Lethal Enforcers sprite regression; adjust ROM loading so at least some of the mask ROM tests pass. - Little Robin and Mega Phoenix . Added PIC dump to Mega Phoenix. The dump looks good - full 12-bit data for each word, it should handle the I/O stuff, haven't replaced my simulation code yet yho, not sure how to hook it up properly. . Use the CONVSP/CONVDP registers to adjust source and destination addresses when window clipping or y-reverse is applied (cpu\tms34010\34010gfx.c). . Mirrored TMS34010 RAM at 0x7fc00000 and 0xffc00000 in machine\inder_vid.c. With the previous TMS34010 change, this fixes the window clipping issues at y=0. - Major Poker: Cleanup/modernized driver, reduce tag lookups, fixed flipscreen and generic_paletteram regression. Fixed visible area and VSync. - Mole Attack: Added irq ack. Fixed game becomes unplayable at the beginning of 2nd round (ID 05598). - Motos: Fixed save state problem (m_scroll is used by screen_update_mappy which motos calls, not by screen_update_phozon) - NFL Football: Refactored game to use Z80DART - Night Driver . Fixed tilemap and 'hvc' ram size. This fixes random characters appear in the middle of the screen using -autosave (ID 05602) . 0x80 bytes / 32 cols = 4 rows; also added AM_READNOPs so 6502 dummy reads don't clog the log. - NSM Poker: 8 color palette + 4bpp tilemap is not a good idea, even in a barely-more-than-skeleton driver. This fixes game hangs after OK in debug build (ID 05504) and AddressSanitizer heap-buffer-overflow (ID 05244) - Operation Tiger: Experimenting with TLCS reseting the PPC. Simulated DSP boot. Better TLCS comms and NVRAM. - PinMAME . Added new genpin samples set . byvid.c: babypac and granny are now playable but no sound. Added default keys so that the pinball part can be played. NOTE: You can play the video portion but try not to use the lower escape chutes. If you do, alternate between pressing X and right-shift until you are returned to the maze. . capcom.c: Added missing cpu2 and sound1 roms to Goofy Hoops . gp_1.c: WIP . jp.c: Added missing cpu2 and sound1 roms from Halley Comet (alternate version) to parent set . mrgame.c: Added some devices, video and inputs. Game can be adjusted and coins inserted (see notes in source). Fixed bad sprites and scrolling. Fixed colours. Improved Dakar and Motor Show. . play_3.c: Added cpu2 rom from Meg-Aaton (alternate set) to parent set . play_5.c: Added new cpu2 rom to KZ-26 . s4.c: Enabled chime4 sound . spectra.c: Fixed assert when K pressed . wpc_95.c: Make driver testable. Fixed ROM_RELOAD sizes to match actual rom sizes in certain WPC_95 games. Added ADSP-2105 CPU2, DMA-driven DAC and Speaker sound. Added 512x128 LCD display, Player 1 with 4 coin slots and 'Country' dipswitch. . wpc_s.c, wpc_dcs.c: Complete update, fixed DCS. - Pleiads: Switched prom order in clone Pleiads (Irecsa) to match screenshots - Pong: Don't use "high" in pongf netlist where analog source "V5" is more appropriate - Popeye . Changed netlist gauss seidel solver to be a subclass of direct solver and got rid of ugly fallback solution. As a result, Popeye is now 45% faster in comparison to 0.153. . AY8910_RESISTOR_OUTPUT now selects resistance calculation by simple saturation MOSFET model in ay8910.c. Currently only 1942 and Popeye use this. - Prehistoric Isle in 1930: Mark gfx1 rom bad in clone (Korea) - missing korean text. - Rock'n MegaSession: Use separate palette (and gfxdecode) per screen - Rock'n Rage: Adjusted ROM loading so that drivers using the K007342 and K007420 use compatible gfx layouts. Simplify rom loading and reduce tagmap lookups. - San Francisco Rush: Fixed sound regression - Spectrum 2000: Added missing program roms (Game now playable) - Super Masters Golf: Reconstructed the SEGA FD1094 key for Super Masters Golf (Game now playable). Tossed the previous alternate reads away as confirmed duplicate disks of sgmastj & sgmast (with differences in the highscores' track). - Super Nudger II: Fixed crashed at initialization (ID 05523) - Super Pinball Action . Unify and refactoring video code. Prepared code for better rendering. . Super Pinball Action now uses render to individual bitmaps then mix, fixes a few priority bugs, but there are a lot of uncertain cases. . Make blend code more flexible so we can put in the alt config Super Pinball Action (prototype) uses, cleaned up some code in tecmo_spr as a result, actually has proper colours/priority now, still not sue what the extra cpu on the proto does tho. . Start making the Tecmo mixer a reusable device - Surprise Attack: Converted to bankdev, added xtal and removed KONAMI_ROM_DEINTERLEAVE. - Tail to Nose: Cleanup - Tazz-Mania: Fixed clone (set 2, alt hardware) regression and possibly other games - Tecmo World Cup '90: WC90 sprites refactor (drivers\wc90.c and video\tecmo_spr.c) - Tempest: Converted ioport reads to use required_ioport in Tempest. Instead of running at perfect interleave constantly use boost_interleave when address ae1f is read. Brings Tempest back to 800%. - Ultraman: Cleanup/simplify inline configs and added tile bank dirty method - Vega: Fixed text layer. Added GAME_NOT_WORKING and GAME_IMPERFECT_GRAPHICS flags. - Vs. Janshi Brandnew Stars: Fixed regression - Vulgus: Fixed wrong sprite wraparound. This fixes big enemies disappear on right and partially appear on left side of screen (ID 05589). - Williams Multigame: Moved blaster-specific stuff into subclass - Xexex: Small cleanup to audiocpu banking. Removed KONAMI_ROM_DEINTERLEAVE. - Input port . Adding dummy IPT_UI_* slots as a temporary measure . Added ioport_array_finder (emu\devfind.h) . ioport_array_finder is a new device finder template for finding, unsurprisingly, an array of ioports. It is mainly intended to help handle multiplexed ioports without runtime tagmap lookups in a more elegant way than was previously possible. It is similar in principle to shared_ptr_array_finder; however, rather than passing a single tag that gets automatically decorated with numeric suffixes, you need to pass an array of tags (this is so ioports can continue to have human-meaningful tags rather than the tags being forced by how the hardware multiplexing happens to work). Because C++ doesn't have array literals, and because most driver state class constructors are defined in header files, the semantics are a little different from other device finders (and possibly awkward/suboptimal, this is the best I could think of). You have to declare the array of tags as a static class member and define it somewhere in a source file (defining it near the function that actually reads the multiplexed ports seems like the most logical place to me). Updated bladestl.c to use ioport_array_finder; will wait for Micko to pass judgement on the semantics before updating more drivers. . ioport_array_finder improvement: Allow ioport_array finders to be given a single base tag as an alternative to an array of tags. This alternative syntax is exactly the same as shared_ptr_array. This form makes more sense when the individual "ports" don't really have human-meaningful names (e.g. rows of a keyboard matrix). Note that just as with shared_ptr_array, you need a period between the base tag (as specified in the constructor) and the index. Updated odyssey2.c using this form of ioport_array. . Reduced number of buttons from 30 to 16 (emu\ioport.h). - Dipswitch fixes in bfm_sc4.c, coinmstr.c, dreamwld.c, funworld.c, goldstar.c, goodejan.c, homedata.c, playmark.c, segag80r.c, segajw.c, sigmab52.c, skylncr.c, surpratk.c (ID 05542), system1.c (ID 05548), tatsumi.c, tigeroad.c, tnzs.c and wpc_95.c - Fixed rom names in cbuster.c, chihiro.c, chqflag.c, hotmind, joust2, m72.c and roundup5 - Renamed (3ds) to (threeds), (cd32bios) to (cubo), (cps3boot) to (cps3booto), (cps3boota) to (cps3bootoa), (initdexp) to (initdexpo), (mayaa) to (mayab), (mj2) to (mj2c), (mj3) to (mj3d), (mj3f) to (mj3), (pepp0060) to (pepp0060a), (pepp0060a) to (pepp0060), (pepp0197) to (pepp0197b), (pepp0197a) to (pepp0197), (pepp0203) to (pepp0203b), (pepp0203a) to (pepp0203), (pepp0203b) to (pepp0203a), (pepp0265) to (pepp0265a), (pepp0265a) to (pepp0265), (pepp0417) to (pepp0417a), (pepp0417a) to (pepp0417), (pepp0516) to (pepp0516a), (pepp0516a) to (pepp0516), (raidendxj) to (raidendxk), (ryouran) to (ryourano), (spec2k) to (spec2kh), (spec2kv) to (spec2k), (stillcra) to (scrzy_l1) and (tigeroad) to (tigeroadu) - Description changes of Apollo 13 (5.01), Attack From Mars (1.13, Free play), The Blackjack Club (Global) (EPOCH), Borench (set 1), Bump 'n' Jump (DECO Cassette, Japan), The Colour Of Money New, Crude Buster (Japan FR revision 1), Dragon Bowl (set 1, encrypted program), Fire Hawk (horizontal), Fishing (DECO Cassette, Japan), The Great Escape, The Hulk, Joust 2 - Survival of the Fittest (revision 2), Knights of Valour 2 / Sangoku Senki 2 (ver. 106, 102, 100HK), Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 1), Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 2), Leader (version Z 2E, Greece), The Lord Of The Rings, The Lost World: Jurassic Park, Maya (set 3), Meg-Aaton, Midnight Run: Road Fighters 2 (EAA, Euro v1.11), The Money Returns Club, Player's Edge Plus (PP0197) Standard Draw Poker (set 1), Player's Edge Plus (PP0060) Standard Draw Poker (set 1), Player's Edge Plus (PP0060) Standard Draw Poker (set 2), Player's Edge Plus (PP0197) Standard Draw Poker (set 3), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0417) Deuces Wild Poker (set 1), Player's Edge Plus (PP0417) Deuces Wild Poker (set 2), Player's Edge Plus (PP0516) Double Bonus Poker (set 1), Player's Edge Plus (PP0516) Double Bonus Poker (set 2), Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker (The Fun Ships), Pong (Rev E) [TTL], Pong (Rev E) external [TTL], Raiden DX (Korea), Rotation VIII (v. 1.17), Royal Card (Italian, Dino 4 hardware, encrypted), SDI - Strategic Defense Initiative (Japan, newer, System 16A, FD1089B 317-0027), The Simpsons Pinball Party, The Sky's The Limit, The Sky's The Limit Club, The Sopranos, Spectrum 2000 (horizontal, buggy) (Europe), Super Star 97 / Ming Xing 97 (version V153B), Tao Taido (2 button version), Tao Taido (6 button version), Tiger Road (US, Romstar license), Top Gears (8x), The Trident, Two Crude (US FT revision 1), V Goal Soccer (Europe), V Goal Soccer (US/Japan/Korea), VS Mahjong Otome Ryouran (set 2), Wangan Midnight Maximum Tune 2 (Export) (GDX-0016), Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0015A) and WIN-10-Gain (German) (Nova) (Scorpion 4) - MAME . PALETTE . Added support for RAM-based palettes with indirect lookups (emu\emupal.c). Update various drivers to use it. . Removed unused helpers, leftover from conversion to new palette (emu\driver.h). . Moved m_generic_paletteram_* into drivers/device state objects so they are not global anymore . Fixed generic_paletteram regression in various Atari drivers . Converted groundfx, slapshot.c, superchs, taito_f3.c and undrfire.c to standard MCFG_PALETTE_FORMAT . Removed few not anymore used legacy macros (emu\emupal.h and screen.h) . Small rgb_bilinear_filter() optimization (video\rgbgen.h) . Support palette RAM less than the full width of the data bus it's on, without the need for per-driver trampolines (emu\emupal.c). Started removing said trampolines. This fixes generic_paletteram regressions in simpl156.c and tmnt.c. . Palette cleanup in ddragon3.c . Changed another emupal.c assert to assert_always . Added some more friendly macros to help define custom palette formats (emu\emupal.h) . Convert some drivers to core palette handling (arcadecl.c, badlands.c, klax.c, rampart.c, vegaeo.c, machine\atarigen.c/h) . Fixed generic_paletteram regression in 2mindril, blockhl, btime.c, centiped.c, chqflag, dec0.c, gaelco3d.c, gal3, galpani3, highvdeo.c, igs_m027.c, igs017.c, iqblock.c, itech32.c, mcr.c, mystwarr.c, neoprint.c, playmark.c, scregg.c, simpl156.c, skylncr.c, tatsumi.c, tetrisp2.c, unico.c and williams.c . Document reason for identical code in video\resnet.c line 613 . Emupal/Tilemap refactoring: configure_tilemap_groups is now a tilemap_t method rather than a palette_device method (emu\emupal.c, tilemap.c, drivers\panicr.c, video\1943.c, bankp.c, bosco.c, clshroad.c, equites.c, exedexes.c, galaga.c, gaplus.c, gberet.c, gunsmoke.c, mappy.c, polepos.c, retofinv.c, sprcros2.c, stfight.c, tceptor.c and vulgus.c) . VIDEO RENDERING SYSTEM . Avoid more unnecessary UINT32<->rgb_t conversions (emu\rendersw.inc and video\rgbgen.h) . Added asserts in device_gfx_interface::decode_gfx() to detect stack-buffer-overflows (emu\digfx.c). . device_gfx_interface and memory system improvements . Added macros to facilitate declaring gfxdecode info arrays as members of a device class . AM_SHAREs in a device's internal address map or its default address map are now tagmapped as children of that device rather than siblings (analogous to how handlers in internal/default address maps are scoped) . Converted the Namco C45 to device_gfx_interface . Fixed stack-buffer-overflow in device_gfx_interface::decode_gfx() with extended offsets (emu\digfx.c) . Don't do unneeded processing or allocate unneeded memory for RAW gfx layouts; added -valid check that extxoffs/extyoffs info are present when the layout size demands them (digfx.c and drawgfx.c). . Make it possible to reset the total elements of a gfx_element (emu\drawgfx.c) . Removed redundant checks from update_partial() (emu\screen.c) . Ensure the vblank timer and the partial-update-reset timer always fire in the correct order when vblank starts on scanline 0 (emu\screen.c). . Fixed bloom misalignment with HLSL . Updated video\ramdac.c to use inline configs (emu\digfx.c and drawgfx.c) . Save screen pixelclock (emu\screen.c) . Call reset_partial_updates() at the end of vblank instead of at the end of the visible display . Fixed an issue in screen->configure() to always recalculate the vblank timing on screen changes (emu\screen.c and video.c). . MAME CORE . Small core_strwildcmp() optimization when empty strings are involved (util\corestr.c) . Removed unused legacy_callback_func (emu\driver.c) . Small optimization to device_execute_interface::local_time() . Corealloc adjustments (util\corealloc.c) . Re-enabled default memory initialization in DEBUG builds (should make random crashes less random) . Moved defines from header to source since they are only used locally and not globally . Converted some global_alloc_array() usage to dynamic_buffer/dynamic_array . Disabled allocation logging (util\corealloc.c) . Some changes/corrections to device descriptions . Don't crash on 0-length files (util\corefile.c) . Small core cleanup . Moved eminline and related files into src\osd since it's system related . Moved delegates into src\lib\util to enable usage of delegates in other project parts . Moved mame_printf_* calls into src\osd\osdcore.c and renamed them to osd_printf_* . Removed mcfglgcy.h and NVRAM legacy support in machine and mconfig . Some more core cleanup (emu\driver.h, machine.h and includes\mpu4.h) . Removed patch in emu\devfind.h, this is not needed anymore. . Replaced set_irq_acknowledge_callback with proper MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER/DEVICE . Removed usage of legacy IRQ callback . Changed devcv2 -> devcb in all drivers . MAMEUI . Use the correct call to free memory in windows osd_close . Fixed a memory leak in webengine, after Firewave's suggestion. . For windows auto is now same as d3d, till video part is redone (windows\video.c) . WEB Engine . Updated to latest mongoose code, used new added features (emu\webengine.c and lib\web\mongoose.c) . Updated mongoose and fixed initial websocket connecte to client . MEMORY SYSTEM . Stop the watchpoints from messing with the opcode decryption (emu\memory.c) . Removed some unused AM_*_LEGACY macros (emu\addrmap.h) . Disable logging of unmapped memory accesses when neither -log nor -debug is specified (emu\memory.c) . Removed some not used macros (emu\addrmap.h) . Removed lot of legacy code in memory system and removed corresponding macros (emu\addrmap.c/h, devcb.h, device.h and memory.c/h) . Hooked up fastram to coolridr.c, cps3.c, deco_mlc.c (avengrgs), feversoc.c, mega32x.c (MESS), psikyo4.c, psikyosh.c, saturn.c (MESS), stv.c and suprnova.c . UI/OSD . Fixed some memory leaks in OSD (osd\osdepend.c) . Bump UI gfx viewer column limit up (ui\viewgfx.c) . Fixed brightness sliders in drivers that use black_pen() and/or white_pen() (emu\render.c) (ID 05524) . Merged of new menubar code . Really got tired of looking at the text 'UI Select' and 'UI Cancel' in a blood red dialog, especially given how easy this was to fix (ui\ui.c). . Fixed benign but incorrect usage of instance variable (ui\menubar.c) . Now highlighting menu items ancestral to the selection . First level menus are now considered ancestral for highlighting purposes . Readding support for breaking into the debugger (ui\emenubar.c) . Readding single step capability (ui\ui.c) . ScrLock no longer is a menu key; it will now enable/disable keyboard menu shortcuts. . Removed minimum width/height options, if menus are unusable at that size user should make window bigger. . Fixed unpause (ui\emenubar.c) . In the File Manager, if the path is invalid, show the list of drives instead of an empty menu (ui\filesel.c). . Reverting to classic ui due to lot of issues, as much as I hate reverting some else code. . Removed not used OPTION_MEMCARD_DIRECTORY (emu\emuopts.c) . Made osd_interface base class for OSD and moved initialization for each subsystem in it as virtual calls . Moved MIDI handling in base class . Cleaned running_machine of information of next machine . All is cleaned after exiting of running_machine so debugger window is removed as well till next machine is started . Made osdmini to compile . Use the flag set by the GAME/CONS/COMP/SYST macro to parse additional optional ini files: GAME = GAME_TYPE_ARCADE -> arcade.ini, CONS = GAME_TYPE_CONSOLE -> console.ini, COMP = GAME_TYPE_COMPUTER -> computer.ini and SYST = GAME_TYPE_OTHER -> othersys.ini. I've had a few requests to do this and it seems simple enough to leverage the flags we already have. . Reorganized OSD, handling more sound output systems and debuggers, defaults left same as before. . Created osd_options as base option class for non-system specific options . Fixed error in command line not being visible due to buffering, also cleaned some other (emu\clifront.c). . Placed parsing properly so warnings are displayed, was bug for a longer period (emu\clifront.c). . Slots are now taken in consideration even if defined in ini only (emu\clifront.c and emuopts.c). . Small core_strwildcmp() clarification (emu\clifront.c) . Improved exception reporting in cli_frontend (emu\clifront.c) . Changed remaining references to -nosound to -sound none in code and docs; moved description of -sound option to OSD-specific doc files to be orthogonal to -video. . Fixed selected crosshair graphic does not display properly (ID 05620) . Removed legacy timer device callback (emu\timer.h, drivers\harddriv.c, igs011.c, sliver.c, includes\harddriv.h and machine\harddriv.c) . Removed DECLARE_LEGACY_CPU_DEVICE (emu\devcpu.h) . Make yield() actually yield again, rather than be a synonym for spin() (emu\schedule.c) . rebuild_execute_list() after loading a saved state to ensure the order of execution remains consistent (emu\schedule.c). Fixes 0.153 savestate regressions in various drivers. Minor logging improvements (emu\schedule.c). . Don't state save icount in various cpu cores (cpu\am29000\am29000.c, avr8\avr8.c, cosmac\cosmac.c, dsp56k\dsp56k.c, hd61700\hd61700.c, mc68hc11\mc68hc11.c, superfx\superfx.c, tlcs90\tlcs90.c, tms32010\tms32010.c andtms32025\tms32025.c). . Please don't kill save states (emu\machine.c) . Removed unnecessary assert from emu\schedule.c . Added ATTR_COLD to DECLARE_(foo)_START and DECLARE_DRIVER_INIT (emu\driver.h and gamedrv.h) . Fixed up known same label/different hash instances in source (drivers\8080bw.c, astrof.c, bombjack.c, cps1.c, fcrash.c, funworld.c, galaxia.c, galaxian.c, galpanic.c, goldnpkr.c, goldstar.c, kingdrby.c, magic10.c, namcona1.c, namcos23.c, polepos.c and wpc_95.c). . Fixed loading 0-sized roms or samples causes crash (ID 05521) . Return an error when trying to use a .7z file with zippath - for now . MNG is now written when -mngwrite is used together with -aviwrite . Print a summary at the end of romident, instead of garbage (emu\clifront.c) . AvSetMmThreadCharacteristics and friends, this has been commented out since before 2007 (osd\windows\winmain.c). . Assorted set name corrections (duplicates) and macro changes to match up to actual use. Cleared redundant GAME( entries in galaxian.c and left notes in drivers that will eventually be merged. . Examined/adjusted mame.lst for orphaned sets and invalid entries. Added commented entries in mame.lst to match missing roms as well as already existing macros in drivers and eliminating redundancies. . Batch of passing attotime as const reference instead of copy - where possible (emu\bus\ieee488\c2040fdc.c, imagedev\floppy.c, machine\64h156.c, amigafdc.c, fdc_pll.c, wd_fdc.c, wozfdc.c, cpu\h8\h8_sci.c, cpu\sh4\sh4tmu.c, debug\debugcpu.c, debugger.h, device.c, diexec.c, diserial.c, ioport.c, machine\atahle.c, machine\eeprom.c, machine\hd63450.c, machine\laserdsc.c, machine\ldpr8210.c, machine\ldstub.h, machine\ldv1000.c, machine\ldvp931.c, machine\upd765.c, machine\wd17xx.c, schedule.c, sound\262intf.c, sound\3526intf.c, sound\3812intf.c, sound\8950intf.c, sound\fmopl.h, sound\speaker.c, sound\ymf262.h, timer.c, video.c, video\fixfreq.c, video\voodoo.c, mame\audio\n8080.c, mame\drivers\gottlieb.c, mame\machine\cdislave.c and mame\machine\ticket.c) . Fixed text aliasing in layouts: 30test.lay, dendego.lay, gridiron.lay, imolagp.lay, kenseim.lay and stactics.lay . Fixed uninitialized auto (debug\express.c); should fix instances where a game with cheats active using multiple expressions in one action crashes at start. . Fixed -verbose option (ID 04850) - SDLMAME . Fixed transparency in SDL2.0 code (sdl\draw13.c) . Left a "FIXME", that gamma needs attention in MAME and that GL_FRAMEBUFFER_SRGB is supported by SDL2 (sdl\drawogl.c). . Fixed 0.153 SDL regression where user GLSL shaders didn't work (sdl\drawogl.c) . Fixed SDL shaders for games that output indexed16 (e.g. pacman) (sdl\drawogl.c) . Fixed -prescale 0.153 regression (sdl\drawogl.c) . Always supply screen size uniforms to GLSL shaders, and fix bug with X multihead (sdl\drawogl.c). . Rebuild all GL textures when the core changes resolutions (sdl\drawogl.c and window.h). Silence compiler warning (sdl\drawogl.c). . Properly disable sound on -bench runs . Fixed OS X compile with non-official SDL . Link fix for some Linux-es (lib\lib.mak) - JSMESS: Added shim for Web Audio sound module (modules\sound\js_sound.c) - MESS . Optimized software_list_device::find() a bit - speeds up -validate for MESS . Added width and endianness attributes to data areas in software lists. Update neogeo.xml to take advantage of them. For regular rom loading we try to autodetect the appropriate endianness and width by matching the region tag to a device with a device_memory_interface; this is generally not doable for software lists because the regions are children of some slot device and thus not siblings of the devices in the root driver (i.e. "cartslot1:maincpu" rather than "maincpu") So you have to specify the width and endianness manually for now. . Changed mess.mak to display compilation of ymmu100.ppm nicely. Cleanup of image device interfaces. . Added support for loading a default battery (emu\diimage.c and image.c), instead of a fixed fill value, when no battery is found. This allows for loading factory formatted sram/nvram from softlist. (MESS) Fixed NES Silva Saga, which relies on SRAM not being 0x00 filled from factory, with many thanks to naruko for investigating the problem. . Make hasfile processing work without a running_machine() (emu\hashfile.c). Alignment fixes for XML hashes. . Examined/adjusted mess.lst for orphaned sets and invalid entries. Adjusted spacing to better view commented setnames and added commented entries in mess.lst to match missing roms as well as already existing macros in drivers. . APEXC CPU: Fixed usage of uninitialized members in apexc_cpu_device . CP1610 CPU: Fixed usage of uninitialized members in cp1610_cpu_device . F8 CPU: Fixed usage of uninitialized members in f8_cpu_device . HCD62121 CPU: Fixed usage of uninitialized members in hcd62121_cpu_device . Nintendo Minx CPU: Get rid of pointers to member functions . TX0 CPU: Fixed usage of uninitialized members in tx0_device . SC61860 CPU: Fixed usage of uninitialized members in sc61860_device . Sharp LR35902 CPU: Renamed LR35902_FLAG_x to FLAG_x. Log illegal ops. Removed MCFG_LR35902_RESET_VALUES. Added macro and callback for 16bit inc/dec. . Signetics 8X300: Fixed usage of uninitialized members in n8x300_cpu_device . SuperFX CPU: Fixed usage of uninitialized members in superfx_device . TMS7000 CPU: Rewroted bcd_add/sub according to official doc. Fixed usage of uninitialized members in tms7000_device. Small cleanup. Added more cpu types for TMS7000 family. Rewrote most of tms7000, fixing a few issues and adding preliminary support for TMS70x1/2 family. Fixed irqline problem. Added some notes. Shut up debugger. . TMPZ84C015 CPU: Added preliminary TMPZ84C015 (for Sony PVE-500). Added savestate. Updated bm_012 cartridge to use the tmpz84c015 implementation. . Apple Sound Chip: Fixed 0.153 regression that prevented several Macs from booting. Fixed asc_device::read . UNSP CPU: Fixed usage of uninitialized member in unsp_device . CD Audio: Fixed usage of uninitialized member in lc89510_temp_device (machine\megacdcd.c) . Gravis Ultrasound: Converted GUS to DEVCB2 (isa/gus.c) . MIDI: Converted device to DEVCB2. Allow "default" for -midiin and -midiout (osd\osdcore.c). . OKI6258 sound: Converted to use inline config . Sound Blaster 16: Fixed irqs and 16bit DMA . uPD7725 DSP: Converted NEC DSP to DEVCB2 . 40105 FIFO: Fixed usage of uninitialized member in cmos_40105_device . 6525 TPI: Converted to DEVCB2 . 6551 ACIA: Support 115200 bit/s on Apple III (machine\mos6551.c). Stop the internal timer if DTR is high and there is no character being received as neither the transmit or receive will do anything anyway. The default is for the internal divider to be disabled so if the chip wasn't initialised then the timer would be running at the full rate of the xtal. Fixed uninitialised variable that could prevent transmit irq from being generated after reset. Ignore reads from the debugger. Fixed usage of uninitialized members in mos6551_devicee. . AY-3-1015: Converted to DEVCB2. Blind attempt at fixing AY-3-1015 problems (can't repro). Fixed usage of uninitialized members in ay31015_device. . Bitbanger: Converted Bitbanger device to DEVCB2. Loading CoCo doesn't crash, but someone familiar with the system should test it. . Cassette: Ensure cassette-save timer is synchronised to cpu (MESS: a6809.c, acrnsys1.c, alphatro.c, d6800.c, dolphunk.c, fc100.c, h8.c and mekd2.c). Removed CassetteOptions that is already default. Cassette config moved inline. . Centronics: Small typo fix (bus\centronics\ctronics.c) . Device Network Interface: Converted DP8390D to DEVCB2. Fixed MB8795 packet sizes. . EGA: Updated EGA to use DEVCB2, inline configs and delegates . EEPROM: Use eepromser in (MESS) rmnimbus.c and removed er59256 . F3853: Converted to use delegates . Floppy Disk: Cleanup formats\td0_dsk.c. 1.2MB floppies have 80 tracks (formats\pc_dsk.c). Implemented scan data and read track for upd765. Fail command when drive not ready and check ready before command (verified on real hardware). Stop polling when first byte of command sent (verified). Drop the polling irq when anything is written to the controller in command mode (verified on actual hardware) (machine\upd765.c). Fixed usage of uninitialized members in wd1770_device and c2040_fdc_t. Fixed memory leaks in floppy_image_device. Call the intrq and drq callbacks when drq and/or intrq are cleared during a reset (machine\wd_fdc.c). MSX floppy cleanup (formats\msx_dsk.c). Fixed ipf_dsk.c. Converted wd17xx to DEVCB2 and cleanup. Hold DRQ in status register until scan ID command has been fully read (machine\wd_fdc.c). This fixes Osborne 1/2. Fixed assorted wd17xx related regressions (drivers\fm7.c, osbexec.c and svi318.c). Converted wd17xx to use inline configs. Rainbow specific; The RX50 _disk drive_ was used in different architectures. Floppy format used by Rainbow-100 and -190. Track layout (post-amble, some positions) yet unverified. Currently only raw 400 K disk dumps are supported (*.img). Fixed 2HS image loading (can now boot Illumination LASER from floppy) (formats\dim_dsk.c). Added support for Flex DSK disk images, will now boot Gimix Flex 3.3. Added support for some double-sided disk sizes. 800KB disk images are now readable (formats\flex_dsk.c). Added workaround for Gimix Flex 3.6 expecting tracks 1 and 2 to be MFM. It will now also boot (formats\flex_dsk.c). Correct Gimix FDC clock, Gimix Flex 4.3 is now bootable (formats\flex_dsk.c). VZ300 floppy: Initial modern implementation (bus\vtech\memexp\floppy.c and imagedev\floppy.c). Apple3 now using the cycle-accurate floppy emulation. . i8257/8275: Replaced 8257dma in (MESS) fanucspmg.c. Converted (MESS) Radio-86RK to new 8257 and 8275. (MESS) Unior doesn't quite display properly. . HD63450 DMA: Added drq lines. Mask error irq. Converted HD63450 to use inline configs. . MB89352 SCSI: Converted MB89352 to DEVCB2. Get the correct MB89352 phase. . MC2661 Interface: Fixed usage of uninitialized member in mc2661_device . MC6846 I/O: Fixed usage of uninitialized members in mc6846_device . MC6847 video: Added internal character generator ROM and M5C6847P-1 variant. Added character generator ROM for S68047. Added memory region for MC6847 chargen ROM. Fixed usage of uninitialized member in mc6847_base_device. Avoid MC6847 one-time buffer underflow when (MESS) Goldstar FC-100 is starting up. Converted MC6847 to use DEVCB2, delegates and inline configs. Removing seemingly inert chargen area; even if this is the way to go, this needs to be implemented in a better way. . MC6854 Controller: Converted to DEVCB2 and delegates . MCCS1850 RTC: Fixed MCCS1850 multi-write. Setup the time. . MM58274 RTC: Updated MM58274C to use inline configs. Fixed usage of uninitialized members in mm58274c_device. Removed some unused macros. . MSM58321 RTC: Fixed usage of uninitialized members in msm58321_device . MSM6255 LCD controller: Cleanup . NCR539x SCSI: Converted NCR539x to DEVCB2. Fixed FIFO read/writing to work as expected. . PLA: Precalculate C64 PLA outputs for approximately 5% speedup (machine\pla.c) . Printer: Converted printer device to DEVCB2. Added serial printer, renamed centronics printer to match. Standardised the configuration of rs232 devices. All serial devices are now connected using an rs232 port. Fixed usage of uninitialized member in centronics_printer_device. . RP5C01 RTC: Set RP5C01 RTC to actually return 24 hour mode, which fixes RTC detection for the Amiga. . Serial Mouse: Make msft mouse work again (bus\rs232\ser_mouse.c). Fixed usage of uninitialized member in microsoft_mouse_device. . Terminal: Fixed startup order issue introduced in r28777 (rs232\terminal.h). Converted generic terminal device to DEVCB2 . TMS3556 video: Fixed usage of uninitialized member in TMS3556 device, this fixes (MESS) Exeltel and EXL 100 crashed with -aviwrite or -mngwrite. . WD2010 Disk Controller: Converted to DEVCB2 . WD11C00-17 PC/XT Host Interface: Converted to DEVCB2 . WD7600 chipset: Created WD7600 chipset device. Made into a separate driver class, hooked up WD7600 in (MESS) Amstrad MegaPC. Extended range of some WD7600 registers (based on datasheet). . uPD7002 ADC: Updated to use delegates - Compiling . Added makefile define SSE2 to enable specially optimized code . Synchronized mame.mak and mess.mak . Use -fno-optimize-sibling-calls with SYMBOLS=1 for more complete stack traces with optimizations (makefile, osd\windows\vconv.c). . SQLite3 and LUA . Added SQLite3 for future use, not linked in main binary till proved compiling good on all platforms. . Created machine_manager as singleton class that contains (for now) one running machine . Updated LUA engine to run in machine_manager instead of being initialized per machine . Added "-console" option so emulator can be started with LUA enabled console . Update LUA to version 5.2.3 . Enabled SQLite3 to be compiled and added LUA module for it . Made LUA script execute in main thread, but console running in another. Need to generalize mechanism of communication between threads and do more cleanup. Added a few more commands just for fun (emu_exit and emu_start). . LUA overhaul . Added LuaBridge and exposed few classes as example . Fixed LUA engine initialization . Don't get the nodename when auto-detecting build parameters (makefile). Fixed Makefile misinterprets host name in BIGENDIAN autodetection (ID 05569). . Some parsing friendly spacing corrections (mame.mak). Small fix for makemak (makefile). . Added/updated some vconv TODOs . Removed unused parameters (drivers\coolridr.c, cv1k.c, firebeat.c, goodejan.c, gunpey.c, raiden2.c, sengokmj.c, wyvernf0.c, includes\raiden2.h, tubep.h, video\argus.c, fuukifg2.c, gaelco3d.c, hng64.c, konamigx.c and seta.c) . Added GCC 4.9 handling to build/flags_gcc.mak now it has been released (build\flags_gcc.mak) . Fixed some warnings on older GCCs (e.g. OSX PPC) (cpu\m6809\konami.c and psx\psx.h) . Fixed tiny build . MSVC fix (netlist\nl_dice_compat.h) . Fixed -j compilation with VS2013 . Implemented ATTR_FORCE_INLINE for Visual Studio (osd\osdcomm.h and osd\windows\vconv.c) . Map /O3 to /Ox (osd\windows\vconv.c) . Fixed tools build (tools\tools.mak) on OS/2 . Fixes for PowerPC AltiVec compile (video\rgbvmx.h and util\palette.h) . Fixed compile on old Apple GCC (thanks Micko) (video\cyberbal.c) . Prevent segfault on OSX (emu\clifront.c). Prevent other possible bad things happening (emu\emucore.h). . Allow line continuation in string literals. Don't convert spaces to tabs if they are in a string literal that is split over multiple lines using line continuation (tools\srcclean.c). - Debugger . Fixed internal debugger memory handling (debugger\debugint.c) . Fixed cheatnext command (debug\debugcmd.c) . Small FASTDEBUG optimization (util\corealloc.c) . Enabled rgbsse.h for optimized (GCC only) DEBUG builds (video\rgbutil.c). . Enabled rgbsse.h for Visual Studio 64-bit builds as well and use rgbgen.h for all DEBUG builds since this is the fastest combination (makefile, video\rgbutil.c/h). . Fixed 'source' capability (debugger\debugqt.c) . Added fix for focus seizure (debugger\debugqt.c) 0.153 - New games: Aaargh (Arcadia), Bingo, Cherry Wheel (Version 1.7), China Town (Ver 1B, Dino4 HW), Crystal Colours (CMC hardware), Deathsmiles (2007/10/09 MASTER VER), Deathsmiles MegaBlack Label (2008/10/06 MEGABLACK LABEL VER), DoDonPachi Dai-Fukkatsu Ver 1.5 (2008/06/23 MASTER VER 1.5), Espgaluda II (2005/11/14 MASTER VER), Guns and Roses (C606191SMP, Australia), Ibara (2005/03/22 MASTER VER..), Ibara Kuro Black Label (2006/02/06. MASTER VER.), Joker Poker (Coinmaster, Amusement Only), Luna Park (set 1, dual program), Mega Phoenix, Muchi Muchi Pork! (2007/ 4/17 MASTER VER.), Mushihime-Sama (2004/10/12.MASTER VER.), Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER), Mushihime-Sama Futari Ver 1.5 (2006/12/8.MASTER VER. 1.54.), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER....), Puzzle! Mushihime-Tama (2005/09/09.MASTER VER), Record (Version 1), Super Star '97 (version V153B), The Real Broadway (9131-20-00 R0A), X2222 (final debug?) - New Working games: Carket Ball, Happy 6-in-1, Cherry Bonus III (set 3), Double-Up Poker (Jubilee), Mongolfier New (Italian), Soccer New (Italian), S.V.G. - Spectral vs Generation and Top Blade V - New Non-Working games: Aero Blasters (Tourvision PCE bootleg), American Music Poker (V1.4), Angler King (AG1 Ver. A), Club Kart Prize, Club Kart Prize Ver. B, Club Kart: European Session (2003), Columns (Tourvision PCE bootleg), Cosmoswat, Cuatro en Linea, Deathsmiles II: Makai no Merry Christmas (2009/10/14 MASTER VER 4.00), Dodonpachi Daioujou Tamashii (V201, China), Euro Jolly X9, Final Lap Twin (Tourvision PCE bootleg), Formation Soccer - Human Cup '90 (Tourvision PCE bootleg), Gomola Speed (Tourvision PCE bootleg), Gran Capitan (Version 3), Jackie Chan (Tourvision PCE bootleg), Kart Duel (Japan, KTD1/VER.A), Knights of Valour 3 (V102, China), Magic Bomb (Version 1), Mamoru-kun wa Norowarete Shimatta!, Manic Panic Ghosts!, Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.), MushiKing II - The King Of Beetle II ENG (Ver. 1.001), NetMerc?, PC Genjin 2 - Pithecanthropus Computerurus (Tourvision PCE bootleg), Power Eleven (Tourvision PCE bootleg), Puyo Puyo Fever (prototype ver 0.01), Queen of the Games, Radirgy Noa, Star Horse (big screens), Star Horse (client), Star Horse (server), Star Horse Progress (Rev A), Super Star Soldier (Tourvision PCE bootleg), SWP Hopper Board, Touch De Zunou (Rev A), unknown encrypted Royal Card (Dino4 HW), unknown Sisteme France Poker, Volfied (Tourvision PCE bootleg) and Win Cherry (ver 0.16 - 19990219) - New non-CPU/TTL games: Anti-Aircraft, Attack, Avenger, Baseball (Ramtek), Biplane 4, Clean Sweep, Crash 'n Score, Death Race, Destruction Derby, Fun Four (Set 1), Gunman, Indy 4, Indy 800, Jet Fighter (Set1)/(Set2), Monaco GP (Set 1)/(Set 2), Outlaw, Shark JAWS, Steeplechase, Street Burners, Stunt Cycle, T. T. Block, T.V. 21, T.V. 21 III, T.V. Poker, Take 5, Tank/Tank II, unknown Ramtek Game (Maybe Hockey?), Volly (Ramtek), Wipeout (Ramtek) and Zun Zun Block. - New clones: 18 Wheeler (Upright), 19XX: The War Against Destiny (Japan 960104, yellow case), Air Assault (World), Arch Rivals (rev 2.0 5/03/89, 8-way Joystick bootleg), Astro Combat (unencrypted), Billard List, Block Carnival / Thunder & Lightning 2 (bootleg), Capcom Sports Club (Japan 970722, yellow case), Chase H.Q. (Japan, upright?), Cherry Bonus III (set 4, encrypted bootleg), Club Kart: European Session (2003, not protected), Club Kart: European Session (Rev D), Cookie & Bibi (set 2), Dancing Eyes (US, DC3/VER.C), Deluxe 5 (ver. 0107, 07/01/2000, set 2), Deluxe 5 (ver. 0107, 07/01/2000, set 3), Disco Boy (Promat license?), DoDonPachi Dai-Fukkatsu Ver 1.0 (2008/05/16 MASTER VER), Donkey Kong (hard kit), Fantasia (940429 PCB, set 2), Fantasy Zone (prototype), Fighter's History (Japan ver 41-04, DE-0380-1 PCB), Flak Attack (Japan, PWB 450593 sub-board), Flying Tiger (set 2), Funky Jet (World, rev 1), Galaxia (set 2), Galaxia (set 3), Galaxia (set 4), Galaxian (bootleg, set 3), Galaxian (Irem), Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg), Gals Panic 3 (Hong Kong), Gals Panic II (English, 2 PCB ver.), Gals Panic II (Germany, single PCB), Gold Fruit, Gulf Storm (set 3), Gulf War II (set 2), Gunmen Wars (GM1 Ver. B), Happy 6-in-1 (ver. 102CN), Hunchback (Scramble hardware, bootleg), Ibara Kuro Black Label (2006/02/06 MASTER VER.), Intrepid (Elsys bootleg, set 2), Intrepid (Loris bootleg), Jet Wave (EAB, Euro v1.04), Jockey Club II (older hardware, set 2), Jolly Card (Italian, different colors, set 1), Jolly Card (Italian, different colors, set 2), Kero Kero Keroppi's Let's Play Together (USA, Version 2.0), Lethal Enforcers (ver UAB, 09/01/92 11:12), Luna Park (set 2, dual program), Luna Park (set 3), Magic Worm (bootleg of Centipede, set 2), Mazan: Flash of the Blade (MAZ3 Ver. A), Melty Blood Actress Again (Ver. A), Miss World '96 (Nude) (set 2), Miss World '96 (Nude) (set 3), Mouse Trap (bootleg), Mr. Driller (US, DRI3/VER.A2), Ms. Pac-Man (bootleg on Crush Roller Hardware), Multi 5 / New Multi Game 5 (set 2), Mushihime-Sama (2004/10/12 MASTER VER), Mushihime-Sama (2004/10/12 MASTER VER.), Mushihime-Sama Futari Ver 1.0 (2006/10/23 MASTER VER.), Mushihime-Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54), MushiKing II - The King Of Beetle II ENG (Ver. 2.001), Ninja Assault (NJA1 Ver. A), Ninja Assault (NJA2 Ver. A), Oh! Bakyuuun (Japan, OB1/VER.A), Out Run (Japan, deluxe sitdown, FD1089A 317-0019), Panic Park (PNP1 Ver. B), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER.), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER...), Pink Sweets: Ibara Sorekara (2006/xx/xx MASTER VER.), Pocket Gals V.I.P (set 1), Pocket Gals V.I.P (set 2), Pool 10 (Italian, set 5), Pool 10 (Italian, set 6), Pool 10 (Italian, set 7), Pool 10 (Italian, set 8), Puckman Pockimon (set 3), Puzzle! Mushihime-Tama (2005/09/09 MASTER VER), Racing Beat (Japan), Raiden DX (The Netherlands), Raiden II (set 9, The Netherlands), Rough Ranger (v2.0), Royal (Pool 10 hack), Royal Card (Austrian, set 7, CMC C1030 HW), Royal Card (French), Shanghai (World), Shanghai III (World), Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg), Spectrum 2000 (vertical), Spider-Man: The Videogame (Japan), Street Fighter II': Champion Edition (L735 Test Rom, bootleg), Street Fighter II': Champion Edition (protected bootleg on non-dash board), Street Fighter II': Magic Delta Turbo (bootleg, set 3), Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, older), Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, V3), Street Fighter III: New Generation (Asia 970204), Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1), Super Nove (Playmark), Super Toffy, Tekken 2 Ver.B (Japan, TES1/VER.B), Tekken 2 Ver.B (Japan, TES1/VER.C), Tesorone Dell'Isola (Italy, v2.30), The King of Fighters '95 (NGM-084), alternate board, The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420, alternate board), The Three Stooges In Brides Is Brides (set 2), Title Fight (Japan), Trojan (bootleg), Video Hustler (bootleg, set 2), Videotron Poker (cards selector, set 2), Viper Phase 1 (New Version, Korea), Vs. Tennis (Japan/USA, set 3), Witch (With ranking), World Kicks PCB (WKC1 Ver. A), X2222 (5-level prototype), Yukiwo (World, prototype) and Zero Wing (2P set) - New PEPlus games: Player's Edge Plus (IP0041) Double Deuces Wild Poker - French, Player's Edge Plus (PP0008) Standard Draw Poker, Player's Edge Plus (PP0010) Standard Draw Poker, Player's Edge Plus (PP0014) Standard Draw Poker, Player's Edge Plus (PP0014) Standard Draw Poker (International), Player's Edge Plus (PP0023) 10's or Better, Player's Edge Plus (PP0040) Standard Draw Poker, Player's Edge Plus (PP0041) Standard Draw Poker, Player's Edge Plus (PP0051) Joker Poker, Player's Edge Plus (PP0053) Joker Poker (Aces or Better), Player's Edge Plus (PP0055) Deuces Wild Poker (set 3), Player's Edge Plus (PP0057) Deuces Wild Poker (set 1), Player's Edge Plus (PP0057) Deuces Wild Poker (set 2), Player's Edge Plus (PP0059) Two Pair or Better (set 1), Player's Edge Plus (PP0059) Two Pair or Better (set 2), Player's Edge Plus (PP0060) Standard Draw Poker (set 1), Player's Edge Plus (PP0060) Standard Draw Poker (set 2), Player's Edge Plus (PP0064) Joker Poker, Player's Edge Plus (PP0083) 10's or Better, Player's Edge Plus (PP0116) Standard Draw Poker, Player's Edge Plus (PP0118) Standard Draw Poker, Player's Edge Plus (PP0120) Wild Sevens Poker, Player's Edge Plus (PP0125) Deuces Wild Poker, Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0159) Standard Draw Poker (International), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 3), Player's Edge Plus (PP0219) Standard Draw Poker, Player's Edge Plus (PP0221) Standard Draw Poker (set 2), Player's Edge Plus (PP0249) Deuces Wild Poker, Player's Edge Plus (PP0510) Standard Draw Poker, Player's Edge Plus (PP0514) Double Bonus Poker (set 3), Player's Edge Plus (PP0531) Joker Poker, Player's Edge Plus (PP0713) Bonus Poker Deluxe, Player's Edge Plus (PP0725) Double Bonus Poker (set 2), Player's Edge Plus (PS0296) Haywire Slots, Player's Edge Plus (PS0426) Sizzling Sevens Slots, Player's Edge Plus (X000040P+XP000038) Standard Draw Poker, Player's Edge Plus (X000046P+XP000038) 10's or Better, Player's Edge Plus (X000053P+XP000038) Joker Poker (Aces or Better), Player's Edge Plus (X000224P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000265P+XP000038) 4 of a Kind Bonus Poke, Player's Edge Plus (X000536P+XP000038) Joker Poker, Player's Edge Plus (X000537P+XP000038) Standard Draw Poker, Player's Edge Plus (X000568P+XP000038) Joker Poker, Player's Edge Plus (X000588P+XP000038) Joker Poker, Player's Edge Plus (X002283P+XP000057) Dealt Deuces Wild Bonus Poker, Player's Edge Plus (X002284P+XP000057) Barbaric Decues Wild Bonus Poker, Player's Edge Plus (X002377P+XP000112) Super Double Bonus Poker, Player's Edge Plus (X002440P+XP000053) Deuces Wild Poker, Player's Edge Plus (X002461P+XP000055) Joker Poker (Two Pair or Better), Player's Edge Plus (XM00006P+XMP00006) Multi-Poker, Player's Edge Plus (XM00008P+XMP00006) Multi-Poker and Player's Edge Plus (XMP00030) 5-in-1 Wingboard (CG2426) - Removed games: Shock 'n' Roll (Qps) (MPU4) (set 5) - New drivers: 4enlinea.c, a1supply.c, aleisttl.c, amusco.c, atarittl.c, bailey.c, chicago.c, cswat.c, cv1k.c, electra.c, exidyttl.c, fungames.c, meadwttl.c, megaphx.c, monacogp.c, multfish_boot.c, multfish_ref.c, ramtek.c and taitottl.c - New devices: 4enlinea_cga, cojag_hdd, filetto_cga, hd61830 and tetriskr_cga - New artworks: frogs, gwar, invaders, joust2, kamikaze, kram, sharrier, solarfox, spdodgeb, tron and twotiger - ADSP21062 CPU: Modernized cpu core - ARM7 CPU . Fixed (MESS) Nintendo Game Boy Advance games 'River City Ransom EX' and 'Downtown - Nekketsu Monogatari EX' freezes right after menu (cpu\arm7\arm7.c) (ID 05469) . Removed left-over legacy_cpu_device usage from arm7\arm7core.h - CDP1802 CPU: DEVCB for the state codes. Converted CDP1802 to DEVCB2. - DSP32C CPU: Converted to DEVCB2 - DSP56156 CPU: Moved handlers to members in dsp56k - FD1089 CPU: Updated documentation - H6280 CPU: Moved contents of .inc into .c to removed #define pollution when including h6280.h. Replaced #defines with inline functions. Renamed functions with upper case names to lower case to avoid #define collisions. - H8 CPUs . Rewrite . Sort out UE polarity. Fixed enable handling in timers. Prettify registers/flags in debugger. For tools\unidasm.c we need to find a H8 solution there. Get some speed back in Namco System 23 driver. Fixes invqix at least. Fixed integer constant is too large for 'long' type" error on GCC 4.4.7. . Puzzlet (Japan) boots again. H8 core used to have H8_METRO_TIMER_HACK for it? Make coins/start work again. . Implement the 8-bits timers, Namco System 23 coins work again. . Changed H8 CPU types in itgamble.c, itgambl2.c and bingoman.c - I386 CPU: Modernised cpu core - I8086 CPU . Fixed i86 shifts by very large (> 32) amounts (cpu\i86\i86inline.h). Fixes (MESS) IBM XT detection by the multi unique floppy controllers. . Added guessed behavior + logerror instead of an assert to cpu\i86\i86.c for known index out-of-bounds access . 8086 MOV sreg behavior confirmed on hardware, no longer a guess - I8089 CPU . Fixed small bugs (i8089_channel.c and i8089_ops.c) . Rewrote I8089 disassembler . Fixed channel priorities - I8741 CPU: Converted tait8741 MCU hack to a device, kept it as 4 pack since driver anyway have to use real MCU in future (machine\tait8741.c). - I80186 CPU: Set m_timer[0-2].control = 0 in i186.c, this fixes (MESS) RM Nimbus palette differences between regular and debug builds (ID 05297). - I80286 CPU: Added fault on invalid sreg access for i286. 80186 likely faults, 8086 unknown. - INS 8050 SC/MP CPU: Modernized cpu core - Irem Custom V35 CPUs: Document the Air Assault encrypted sound CPU (NANAO 08J27261A1). IE: Confirms it's the same as Gunforce. - M6502 CPU . Expose SYNC pin through DEVCB2 in M6502 for more flexibility. Not everyone calls the base device_start, but they do call the base init(). Fixed missing semicolon. . Fixed some unofficial opcodes. The 6510 version of lxa may be wrong in the same way (on 6502 it loads A and X with the immediate value, no AND occurs), someone C= savvy please check. - MN10200 CPU . Some MN10200 opcode fixes. Documented flags and fixed flags in add/sub. Add/sub carry was still wrong. . Renamed read/write functions. Readability cleanup in opcode table. Simplify branch code. . Mem16/24bit accesses are word-aligned (not counting opcode args of course). More whitespace readability stuff. Cleanup and improved irqs. . Added missing opcodes and 'illegal opcode' . Improved 8bit timers. Small update while trying to find a suspected opcode bug. . Fixed addc subc zeroflag. Sort source layout. Fixed emulated cpu crash being able to crash MAME with wrt irq recursion. Small disasm fix. . Improved I/O port skeleton stuff, TaitoFX1b (zn.c) sounds ok now. - PDP1 CPU . Modernized PDP1/TX0 cpu cores. Also copied over the support for octal in debugger state from the alto2 branch. . Removed some unused defines (pdp1\pdp1.h and tx0.h) - PowerPC 4xx/6xx CPUs: Using delegates instead of read/write_device_func in PPC core - PSX CPU . Fixed rendering issue in Psyvariar and Ray Crisis attract and removed some casting (video\psx.c) . Fixed m_debug struct is uninitialised in a non-debug build (video\psx.c) . Fixed Clang compile (video\psx.h). #if DEBUG_VIEWER instead of #if defined() (video\psx.c). . Use an interface for passing state to the disassembler instead of copying it into a structure for every line. Fixed lui/ori and lui/addi constant calculation by pretending instructions can be 8 bytes long (cpu\psx\psx.c) - RSP CPU . Silence excessive printf spam in RSP core with -nodrc . Temporarily split all RSP functions into SIMD and scalar versions so that they can more easily be run alongside each other for the purposes of regression testing. Currently SIMD ops introduce some lighting issues, but only when a light and model are axis-aligned, which makes it remarkably difficult to track down based solely on comprehensive logging, so this will eventually allow for running the scalar version of the opcode after the SIMD one in order to deduce exactly which SIMD opcode is divergent. . Compile fix since not all have SSE3 enabled (cpu\rsp\rsp.h) . Added SIMUL_SIMD flag for easy finding of bugs in SIMD opcodes . Fixed SIMD versions of SSV, SLV, SDV, STV, VSUB, VADDC, VSUBC and VGE. . Removed SIMD optimizations from VMACF, VMADL, VMADN, as they were provided by the CEN64 author but do not appear to have the same results as MESS's scalar implementations, and so are not trustworthy. - S2650 CPU . Added write_sense to S2650 CPU and use it for Hunchback (Galaxian hardware) and (MESS) PIPBUG serial port. Replaced calls to set_input_line(1,...) in lazercmd.c and meadows.c. . Replaced FLAG fake IO port with a DEVCB2 callback . Fixed placement of some MCFG_S2650_FLAG_HANDLER entries (drivers\dkong.c and zac_1/2.c) . Fixed recent S2650 regression in Galaxia driver - SE3208 CPU: Modernized cpu core - SH-3/4 CPUs: Fixed descriptions/shortnames to clarify endianness. Always set proper channel in sh4_ddt_dma (cpu\sh4\sh4dmac.c, machine\dc.c and maple-dc.c). - SPC700 CPU: Modernized cpu core - TLCS-90 CPU: Modernized cpu core (dynax.c, nmk16.c and royalmah.c) - TMP68301 CPU: Updated device to use DEVCB2. Added mem_mask. - TMS7000/TMS32010/TMS32025/TMS32051 CPUs: Modernized cpu cores - TMS99xx CPUs: Converted TMS9900, TMS9980A and TMS9995 to DEVCB2 - TMS9995 CPU: Minor debugging stuff and using freq constant (cpu\tms9900\tms9995.c and mess\drivers\ti99_8.c) - TMS34010 CPU . Make the TMS34010 a bit safer when 8-bit writes are used (Mega Phoenix does this). I suspect Skeet Shot will need more improvements along these lines because it's hooked up to an 8-bit CPU? This at least means we don't have to overclock the 68k by a silly amount on Mega Phoenix, and fixes round 4, although it doesn't fix all the graphic corruption, of note round 6. . Fixed a clipping issue with Little Robin and Mega Phoenix (cpu\tms34010\34010gfx.c) - uPD7810 CPU . Modernized cpu core . Added ADC support - V60 CPU: Modernized cpu core - V810 CPU: Modernized cpu core - Z180 CPU: Modernized cpu core - Z80 CPU . Converted Z80 to C++. Fixed Z80 regression and Z80 related regressions (MESS: includes\abc80x.h, aquarius.h, c128.h and pcw16.h). Renamed functions with upper case names to lower case to avoid #define collisions. . Added Z80DART priority and irq vector for 8274 (needed for MESS: Intel iSBC 286) . Sets Z80DART RR1_ALL_SENT on reset, previously it relied on tra_complete() being called after reset. It's no longer called if there has been no data sent. . It makes more sense to mask out the errors that are going to be brought in from the error mask rather than throw all the other bits away. However I haven't seen any documentation for Z80DART that says there is an error FIFO at all. . Fixed Z80DART parity selection. Removed hack from (MESS) Little Big Board (Pulsar) and hooked up Z80DART now that parity works. Call set_data_frame() before stc_rcv_rate() in Z80 DART, as since r26274 there is random behaviour if you don't. Fixed Z80DART array out of bounds access. . Fixed array out of bounds access (machine\z80dma.h). Z80DMA finalized modernizing. - Z8000 CPU: Modernized cpu core - AICA sound . EFREG is mapped every other word, not every word (sound\aica.c). Fixes memory trashing in all NAOMI/DC/AW games. . Rewrite AICA to modern device - AY-3-8910A sound . Fixed noise period on AY8910 (see http://privatfrickler.de/blick-auf-den-chip-soundchip-general-instruments-ay-3-8910/) . Added option AY8910_RESISTOR_OUTPUT to AY8910. This will output internal resistor values instead of computed voltages. To be used with netlist output stages. - Discrete sound: discrete_sound_w and discrete_sound_r not used any more since discrete_device is modern one - DMA-driven DAC sound: Removed legacy code. Initialize DMADAC, fixes regressions. - ES5503 sound: Use DEVCB2 instead of custom callbacks - ICS2115 sound: Now using DEVCB2 instead of custom callback - K005289 sound: Correct comments, name functions after pin names on schematic. - MOS6560 sound: Cleaned up DEVCB2 usage - MPEG sound: Removal of unused code - MSM5205 and MSM5232 sound: Converted device to DEVCB2 - NES APU sound: Assert fix (APU registers; sound\nes_defs.h) - Q-Sound . Cleanup. No practical changes here except that i removed support for LOG_WAVE raw sound filewriting. . Updated soundstream before writing (tsk). Reg 3 is key on. Small fix to sample start and loop. Guru measured qsound music timing (drivers\cps1.c, cps2.c and zn.c). . Added internal /2 divider to DSP16 CPU - QS1000 sound: Converted to DEVCB2 - Samples sound: Fixed listsamples and one other potential problematic place. Added a missing warning to sample loading code. - SCSP sound . Fixed array out of bounds access . Rewrite SCSP to modern device - SN76496 sound . Fixed crash at startup . Converted SN76496 ready to DEVCB2 - SP0250 speech: Using DEVCB2 now - SP0256 sound: Converted SP0256 device to DEVCB2 - SPU sound: Fixed copy and paste errors in sound\spu_tables.c - Sound stream: Flagged STREAM_UPDATE as legacy (emu\sound.h) - TC8830F sound: Preliminary ADM decoding - TMS3615 sound: Deprecated driver - TMS5110 sound: Updated TMS5110 to use newer chirp table, based on decap (sound\tms5110r.inc). Note: The TMS5111NLL was decapped and imaged by digshadow in April, 2013. The LPC table is verified to match the values from Jarek's PROMOUT dump of the TMS5110, and the die even says "TMS5110AJ" on it. It uses the 'newer' 5200-style chirp table. - uPD7759 sound: Use DEVCB2 now - VLM5030 sound: Removed silly config interface - Votrax SC-01 sound: Converted to DEVCB2 - YMF278B sound: Loop overflow happens on the real chip. Small cleanup. - YMZ280B sound: Make special case voice-stop return value clearer - ZOOM ZSG-2 sound . Added Zoom ZSG-2 sound to taitogn.c and zn.c . Modernized ZSG2 device and Taito ZM . Regs 5/7 high bytes are for stereo panning . Divider matches G-Darius OST (Original Soundtrack) . Implemented panning and volume, Taito G-NET sounds pretty good now, still need to find out why Taito FX1b (zn.c) sound sucks compared to it, especially Ray Storm. . Reset soundchip too on controlled reset. Reverse shift (no practical difference). . Added notes - 6522 VIA . Converted VIA6522 to use DEVCB2 . Converted pa* & pb* inputs to WRITE_LINE_MEMBER . Removed read_ca*/read_cb* in Beezer as they just returned what you'd written to the chip already . Removed readpb & readcb2 callbacks from (MESS) Commodore LCD VIA6522 configuration. Changed write_cb2 to work with shift register. . Removed VIA6522 ca2 callback as the value is already pushed in aristmk4.c and beezer.c . Removed ca1/ca2/cb1 callbacks as they were never called anyway . Removed cb2 callback from (MESS) MAC drivers, you now have to push the data. . Fix for potential loss of state change . Removed the simplest 6522 port callbacks in gameplan.c and trvquest.c . Added support for shift out free running at t2 rate, cb1 output now lasts for the specified number of clocks and the signal goes low at the end. . 6522 CA1 is input only, so I have removed the output callback. The (MESS) Lisa via hookup has been changed as it had functions named as CA2/CB2 hooked up to CA1/CB1 and CA1 output no longer exists, it appears to have been wrong since before the code was merged with MAME. Changed CB1 to be active low as CA2 & CB2 already are & it sort of was before, but when the chip is reset then the handlers are called setting the lines to 1. This seems to stop it thinking that you've pressed a key at startup as I believe it got out of sync before because the lines weren't consistent. Merged some duplicate code for handling outputs and removed some obvious comments. . Serial data is shifted in just before cb1 goes high, not just after it goes low. . Allow reading from port A in output mode. Add a separate bit for timer 1 PB7 toggling rather than changing the PB register directly. Don't clear the SR register on reset. Clears pcr & acr at construct time, in case something sets one of the handshaking lines before we've started. Use a separate variable for the latched inputs and the current inputs. Consolidated the input and output code. . Clears port a and port b latches at startup, temporarily reverted CA1 timing change as Beezer is extremely sensitive to CB2 timing, temporarily prevented port a read handlers from affecting reading back of output bits (real hardware can do this but some handlers are returning 0 for bits that they aren't driving low). . Simplified VIA 6522 irq handling - 6526 CIA: MOS6526 DEVCB2 cleanup and WIP. Converted 6526 CIA temporarily to DEVCB2 until MOS6526 works with Amiga. Cleaned up CIA access a bit (machine\amiga.c). - 6551 ACIA . Call set_data_frame() before stc_rcv_rate() in MOS6551, as since r26274 there is random behaviour if you don't. . Support Rockwell 6551s, which show different register contents from MOS/CSG parts on reset. . Rewritten 6551 emulation. Changed clock to be the o2 clock instead of the baud rate xtal, supports external clocking, generates transmit interrupts when idle, added echo mode, dcd/dsr/cts input handling, parity & stop bit checking. Tested and fixed hookup to (MESS) Commodore LCD & Plus 4. - 6821 PIA . Converted PIA6821 to DEVCB2. Fixed swapped cb1 & ca2 read callbacks during conversion (drivers\arachnid.c, s3.c, s4.c, s6.c, s6a.c, s7.c, s8.c and s9.c). . Removed 6821 porta_r/portb_r/ca1_r/ca2_r/cb1_r/cb2_r functions as they only returned what you'd written to the chip, only a couple of those were ever used (by audio/exidy.c). Removed some ca*/cb* read callbacks that just returned what had already been pushed or always returned 0. As there are no longer any cb2 read callbacks that functionality has been removed. . Reduced the number of callers to set_a_input by calling porta_w & made the WRITE8_HANDLER call that as well, instead of the other way round and having to lookup an address space that is never used (audio/exidy.c, spiders.c and drivers\toratora.c). . Removed 6821 from the MCFG PIA macros, not all PIA's are 6821's. Fixed slither/slithera 6821 PIA hookup. - 6850 ACIA . Fixed uninitialised variables, (MESS) Atari ST mouse works again. Hooked ACIA 6850 up to (MESS) Altair 8800bt. . Rewritten 6850 based on datasheet using external CLOCK & removed MIDI clock hacks. (MESS) GUS gf1_device device derives from acia6850_device to gain access to the tx & rx irq state, rather than exposing it with a public method. . Fixed bug in sending that showed up using terminal . Tidied up enum names, fixed frame error detection. - 68681 DUART . Modernized N68681 and killed config struct in favor of DEVCB2. Follow Aaron's official DEVCB2 pattern. . Implement OP3 toggle on timer expire and input delta interrupts (machine\n68681.c). We're going to start phasing out the old pull method of reading the input ports in order to facilitate the input delta handling. . Make loopback operate at the current baud rate instead of instantaneously. Fixes (MESS) 'DECtalk DTC-01' DUART self-test. . Changed parity & stop bits to an enum (you can now pass in 1.5). I've updated the uarts that were testing for 1.5 stop bits to pass that in, but there are probably others & 1.5 stop bits is converted to 2 by diserial. However the 68681 requires stop bits to be specified in clocks, so this will change in the future. Replaced synchronous flag with start bit count, as some uarts can use a start bit in synchronous mode & that whether there is a start bit is all the flag is currently controlling. Updated RS232 terminal to allow startbits, stop bits 1.5 to be specified (although that is currently not supported by diserial) and individual transmit and receive baud rates. Separated RS232 devices. Added hack for required_device not being set until device_start(), it would be nice if they were filled in during config complete (null_modem.h). . Start removing usage of deprecated 68681 INPORT_CALLBACK. (MESS) Cat: Removed hacks required by the old 68681 implementation; keyboard works again. . Fixed a few uninitalized variables, beefed up optional logging. . Return bits 6 and 7 of the input port register correctly . Fixed the DUART ip pins so they don't accidentally clear each other's state on device_write_line; this fixes the Canon Cat printing in MESS. . Only clear input state on start, not reset. Don't trust the start order. - 7474 TTL: Standardised 7474 MCFG and reduced number of run time lookups - 8251 UART . Converted I8251 to DEVCB2 . Expose less of the diserial internals (emu\diserial.h), which has meant adding i8251_device::write_cts . As per the i8251 manual, disabling Tx mid-byte should wait for transmission to finish. . Fixed write_txc and DSR status bit - 8253 PIT: Converted PIT8253 to DEVCB2. Fixed Leland games crashing regression (MCFG_PIT8253). Cleanup. Initialise m_clk0/m_clk1/m_clk2 to zero. - ATA/ATAPI . Added support for 8 bit data transfers using the set features command, instead of using mem_mask as ATA doesn't work that way. . Added a hack to get Taito GNET games working after 'added support for 8 bit data transfers'. More investigation is required to determine whether there is a latch when using 8 bit accesses or whether the limitation of fixed sized transfers is only applicable to the ATA bus and not flash cards that implement the ATA protocol. - Data East Custom: Reverted changes to decbac06 device flipscreen support, now that this can be done properly. Also reverted the video\decmxc06.c changes. This breaks again the flipped sprites in some games, but fixes the actfanct regression (drivers\actfancr.c, dec0.c, dec8.c, madmotor.c, pcktgal.c, stadhero.c and video\decbac06.c/h). - Flash ROM . Fixed FLASH_INTEL_E28F400B block erase . Added basic support for FLASH_AMD_29LV200T - HD61830 video . Converted to DEVCB2. Refactored nbmj8688.c to use HD61830 device. . Reworked HD61830 graphic mode rendering a bit, to handle 16-bits at a time, as per the datasheet. Fixes rendering on (MESS) Husky Hunter 2. . Made character mode also work in 16-bit chunks. Fixes text display on the (MESS) Husky Hunter 2 . Added bitmap bounds checking, fixes nbmj8688 LCD games crash/assert. - HD63484 video . Converted to use a 16-bits address map . Implemented RPR, MOD, SCLR, SCPY, LINE, PLG, PLL, CRCL, ARC, FRCT, PAINT, DOT, PTN and GCPY commands . Added pattern RAM emulation . Added 2 other commands to HD63484 used by Fashion Gambler . Converted HD63484 to use delegates . Added 8-bit mode. Converted sigmab52.c driver to use the new HD63484. - HuC6260 VCE and HuC6270 VDC: Converted device to DEVCB2 - I2C bus memory: Only save m_page for chips that use pages (machine\i2cmem.c) - ISA . ISA bus can now use its own address spaces instead of taking over a CPU's. This is completely untested for 16-bit buses, but it works well for 8-bit (stand by for demo commit). . Cleaned up 16-bit handling now thanks to a test case. (MESS) Preliminary hookup of ISA bus, peripherals and MFP to Indiana University 68030 board. As noted, it puts lots of text in the VGA framebuffer which is never displayed. Something off-spec with how the VGA is being accessed? . Added IDE controller to (MESS) Indiana University 68030, fixed 16-bit ISA I/O (machine\isa.c) . Added support for the Acculogic sIDE-1/16 8-bit ISA card (this card goes into an 8-bit slot, but allows the use of 16 bit AT IDE drives) . Added preliminary support for the Multi Unique type ISA FDC cards . Converted (MESS) Apollo to use real ISA bus. Shuffle ISA and some more PC related devices around. . Finished modernizing ISA - KONAMI Custom . k007342_device callbacks and params modernized as example how to do it . Converted K007232 and K053252 to DEVCB2 . Modernized K053250 coding conventions (dynamic_arrays, device_video_interface to attach screen, etc.) . K007420 callbacks to delegates - MB87078 volume control: Converted to DEVCB2 - MC6845 CRT . Fixed total freeze of MESS when interlace&video mode was selected on super80v. Also added some comments. . Added screen visarea adjustment to MC6845 config interface . Added display enable and horizontal/vertical back porch widths to the update function. Updated some MESS drivers to make use of this. - MC68901 MFP . Uses aer register to select which transition to generate an interrupt on . Added preliminary transmit support and preliminary receiving serial support for MC68901 . Converted (MESS) X68000 keyboard into a separate serial device. This allows the removal of the UART HLE in the driver (which didn't work, it was always two characters behind). diserial cannot sync with the start bit properly when using an external clock, so for now I've added a hack that is only enabled when using the MC68901 (setting the flag ignores the extra spurious bit that was getting shifted in). . Removed MC68901 polling for gpio bits (mess\drivers\atarist.c and x68k.c) . Stores all bits written to gpip register, so that it can update the output when changing the ddr register & renamed variables to tie up more with the description in the data sheet. . Converted MC68901 device to DEVCB2 - MSM6242 RTC: Updated device to use DEVCB2 - Namco Custom: Converted Namco 06xx, 50XX, 51XX, 52XX, 53XX, 54XX and 62XX to modern device and DEVCB2. Converted machine\namcoio.c to DEVCB2. - NVRAM . Modernized NVRAM in 3do.c, friskyt, mjkjidai, tmspoker and nevada . Added default NVRAM to mjkjidai.c - PC hardware . Removed excess serial and parallel ports and set lpt irq to write to the 8259 rather than the cpu (drivers\pc.c). . Further PC separation and cleanup . Make PC Keyboard (machine\pckeybrd.c) into a device - Programmable Logic Device (PLD): Fixes to correct some of the regression test data used by the jedutil test - RTC65271: Converted to DEVCB2 - Seibu COP: Converted machine\seibu_cop.c to DEVCB2 - Seibu CRTC: Updated to use DEVCB2 - Serial device interface . Removed serial_source_device . Expose less of the diserial internals. Don't transmit anything when driven by an external clock and nothing has been queued. Removed diserial connect(). . Added some information getters for future use . Added framing error detection - SMC91C9x Ethernet Controller: Custom callback to DEVCB2 (seattle.c and vegas.c) - Taito Custom: Converted machine\taitoio.c to DEVCB2 - TIA video: Converted device to DEVCB2 - TMS9927 video: Added VSYNC callback - TMS9928 video: Moved palette setting into method to avoid undefined rgb_t instances; included log control flags. - TMS34061 video: Converted to DEVCB2 - uPD1990/4990: Improvements, most notably added serial command input (see neogeo.inc and neoprint.c). - V9938 video: Fixed graphics regression in debug version only of (MESS) Philips NMS-8220 (ID 05437) - VGA . Set pc_vga default DAC mask to 0xff, (MESS) Indiana University 68030 now shows text. . Fixed extraneous logging I'd left on . Fixed incomplete rendering of modes using more than 1MB of VRAM - SVGA . Correct Trio64 video clock setting, based on datasheet. Correct S3 ViRGE dot clock calculation to match the Trio. . Correct svga_s3 ID values, based on S3ID. Added derived s3virgedx device so that the Virge/DX can return the correct ID bytes. Also cleaned up clock calculation a bit. Added configuration registers for Trio/Virge chipsets. Are read-only for now. . Added S3 "colour mode 8" to the Trio, correct divisor for 32bpp modes. - WD33c93 SCSI: Converted to DEVCB2 - X2210 NVRAM: Added support for the 2210 (64x4). MSVC compilation fix. - CHDMAN . Added some chdman tests. Fixed compile. . Fixed UBSAN (Clang test) invalid vptr error with dynamic_array in struct work_item (util\chd.c) . chdtest.py might have reported, that all tests were successful even if one failed / cleanups and log the unsupported mode. . Changed casing of FLAC folders to match official source distribution (flac->FLAC). Pass VERSION define via compiler flags to libflac. Re-enabled checks in libFLAC\memory.c. Removed definition of SIZE_MAX in libflac\include\share\alloc.h. . Fixed reading of bits/sample in parse_wav_sample() on big-endian systems (util\chdcd.c) . Changed HAVE_CONFIG_H checks in libflac to be as intended - will be fixed upstream as well. - Discrete games (http://discrete.mameworld.info/): Added skeleton drivers for discrete games with roms, to ensure the dumps are available when we get there with the emulation. Added some more documentation to the discrete skeletons (a1supply.c, aleisttl.c, atarittl.c, electra.c and ramtek.c). Quick fix for compile (// PARAM(Solver.FREQ, 48000)). - Discrete Netlist . Added missing interfaces to netlist. mame -debug pongf now does not crash any longer and displays some state. Still more work needed. Further improved the netlist state saving. Fixed Clang compile (netlist\nl_base.h, nl_lists.h and pstate.h), hopefully this works on OSX as well. . Removed legacy code in netlist and separated out 74153 and 74107(A). . Alignment of netlist with MAME standards. Inputs to netlist are now registered using by MCFG_* as mame subdevices and exhibit the usual writeXX/readXX methods including a PORT_CHANGED method. This allows direct linking to inputs. . Make some class variables protected. . Split netlist_mame_device_t into a core device and a "cpu" device. . Further untangled nl_base.c/h and mame-specific netlist.c. . Enhanced the netlist parser and cleaned Pong driver. Also added a folder nl_examples which contains standalone netlist examples. The examples have a ".c" suffix. In eclipse, I get automatic syntax parsing and error notifications. The parser treats "#" preprocessor defines/includes just as comments. All of these examples can be run through nltool: ./nltool -f nl_examples/opamp.c -t 1 -l OUT. Runs the opamp example for 1 second of emulation time and logs the terminal named "OUT" to "netlist_log_OUT.log". I'll post a simple script to the list to visualize those logs using gnuplot. . Fixed PNP model and added test netlist (bjt.c). . Pong now has complete emulation of discrete logic for runQ and SRST signals. Rewrote switch2 device to be based on resistances as well. . Fixed 7474 save state. Removed a printf. . Simplified netlist_list_t. . Increased reschedule count to 15 - diodes are dog-slow. . Made reschedule count a solver parameter. . Simplified solver code. Solver time now also resets. . Added missing parameter to analog input device. . Parser now parses NET_MODEL (netlist\nl_parser.c). . Fixed a bug in switching bjt implementation. . Added Ebers-Moll BJT model. Currently only for NPN. . Fixed convergence issue in the solver. . Accuracy for Ebers-Moll must be better than 1e-5 to not generate nano-second spikes. Typical sound applications should be able to run with less since the spikes are not audible. . Added a "-listdevices" option to nltool to list all available devices. Simplified code. . Quite a number of simplifications for netlist. Also tested some parallel processing using OpenMP (disabled). . Removed pointless "...->object()->" usage and fixed some issues in debug build. Fixed building with standard development tools (netlist/nl_config.h) (ID 05420). . Implemented an improved solving scheme into netlist. This improves performance for Pong. Also set Pong frequency to NETLIST_CLOCK. This is necessary to avoid issues with time conversion into attotime and consequently rounding issues in fixfreq. . Implemented near-to-proper reset for all netlist devices. Reset now works for improved matrix solving. . Removed two duplicate devices in netlist. Removed some dead code and ambiguous functions in the netlist code. . An output should have at most one d-to-a proxy connected to it. . Made GND a device of it's own (actually a terminal container). . Introduced the concept of "logic families". Currently, standard devices default to TTL. Going forward, this enables the family type (e.g. LS, S, HCT, ...) to be a device parameter. . Created a MAME sound device for netlist. Fixed an issue causing wild oscillations. Currently, Pong has sample code for using the sound device. Uncomment "TEST_SOUND" in pong.c to hear a constant sound from a 7400 multivibrator. Sound is still WIP, but the proof of concept has been done. . Working Ebers Moll model. That's a significant step ahead. . Simple 2x2|RHS SPICE stamps now supported by two terminal devices. This was implicitly contained in the design, but set_mat now shows how a two-terminal device fits into a SPICE approach. . Introduced direct solvers for net groups with 1 or 2 nets. . Introduced specialized solvers for N=1,2,3,4,5 by using templates. . Nice performance increase for BJTs. . Removed dead code and simplified matrix solvers . Fixed direct solver bug. Using direct solver up to matrices of 4x4 now. for bigger matrices gauss-seidel is used. . Major renaming of netlist device macros, like NETDEV_ALIAS ==> ALIAS, NETDEV_R ==> RES and NETDEV_C ==> CAP. . Added some pin assignment devices (*_dip). DICE connects package pins, not logical entities. . Added DIP package pinouts to 7474 and 9316. . Added new pong.netlist. Changed 'netlist' CPU to 'Netlist cpu device'. . Fixed reported memory leak in debug build (netlist\pstring.c/h). . Minor bugfixes + parser is now based on tokens. Should ease reading other netlist formats significantly. . Removed dead code in nL_parser.c. . Added pin-outs to a number of devices. . Visual Studio 2012 compilation fix (netlist\nl_parser.h) . Fixed minor bugs and removed a hack in 7490 code . Documented two more devices (7448 and 7450), more pin-outs. Correct some pin names so they match datasheets better. . Bugfixes and more pin-outs for netlist devices. Also contains preparation for inclusion of "pong doubles". . Fixed a bug in connecting nets. This bug surfaced during introduction of a "closer to reality" TTL output proxy. . Created a better logic-to-analog proxy approximating output impedance. This revealed some bugs in the code which have been fixed. Basically, borderline schematics like TTL_7404_INVERT(c9f, c9c.Q), TTL_7404_INVERT(c9c, c9f.Q), SWITCH2(coinsw), NET_C(c9c.Q, coinsw.1) and NET_C(c9f.Q, coinsw.2) in which the switch connects TTL-Outputs to ground now work. In this case, the addition of an analog device (switch) cause the netlist code to treat the TTL outputs as "analog" and (re)connect all existing and future connected terminals to the analog output. The downside is a slight performance penalty. This penalty may be mitigated going forward by introducing "proxy-hints" for selected outputs. . Fixed a nasty issue around convergence by defaulting to Gaussian elemination for 5x5 and 6x6 matrices. This prevented Pong from starting. In addition, removed a number of hacks around start-up conditions. All nets are now defaulted to "0" at startup. Much cleaner. . Added a 74LS629 device which yet needs to be enabled. . Implemented a fallback to Gaussian elimination if Gauss-Seidel exceeds a certain number of iterations. . Fixed completely broken parser. . Fixed reset (consistent again). . Added "warning" and "log" to "error". . "-oslog" now displays some information. . Fixed an issue causing prolonged instability in 7400 oscillators. . Added route-inputs to netlist sound device. Currently this is WIP and needs some polishing, however proof-of-concept exists now. . Example usage can be enabled in pong by uncommenting TEST_SOUND . Fixed a scaling bug (video\fixfreq.c) . Some bug fixes for sound device routing. Pong Doubles (yet to be committed) starts up again. . Added a parameter "MULT" for output multiplication to NETDEV_SOUND_OUT . Added a safety check to resistor device to avoid divide by zeros . Only update parameters if they have changed . All MAME <-> Netlist interfacing is now done in the machine device driver. This a) ensures, that the interface logic is in one place and easy to understand b) ensures, that netlists represent the hardware and not what has to be done to hook the hardware up in MAME. The interface part is considered to be relatively stable. . Netlist code maintenance work. Made device startup cleaner. . Netlist maintenance: Made frequency a obligatory parameter for CLOCK, MAINCLOCK and SOLVER. Fixed a bad memory corruption. Added "owner" to save states. This allows to remove objects after they registered state. Fixed VCCS and VCVS. . Commit current state of netlist examples. Later, these are intended as a basis for regression tests. . Netlist maintenance: Netlist construction now is relying on fully qualified names, i.e. the name of a netlist object now starts with the netlist name. This is a first step towards supporting netlist models, i.e. netlists which can be used as a macro model. Very handy for opamps. Changed log file filename format. Support analog net groups of up to 256 nets (i.e. Voltages). . Call netlist().error if more than 64 nets are found (analog\nld_solver.c) . Preparation to cope with multiple netlists from single source . Netlist can now be included as sub-circuits. That's the same approach SPICE uses. The implementation also supports nesting. Opamp emulation now is as easy as. The missing bit now is a central submodel repository. nl_examples/opamp.c is an example of a impedance changer stage followed by a 1:2 amplifier stage. System size (= number of voltage levels to be calculated) is between 20 - 30. Using a simple, yet better opamp model than usually implemented in the old discrete core, I get ./nltool -f nl_examples/opamp.c -t 30 startup time ==> 0.002 runnning. 30.000000 seconds emulation took 0.438599 real time ==> 6839.96%. Which leaves quite some buffer to emulate even complex mixing and filtering stages in real-time. . Abstracted netlist sources. This is a first step to support libraries (e.g. for opamps). . Fixed nltool -listdevices. Minor netlist updates with focus on performance. Also added 16bit int to pstate. Fixed fatalerror if we are trying to connect two railnets (nl_setup.c). Fixed netlist examples. Fixed a netlist crash on Clang due to ATTR_NORETURN. Also fixed some debug statements. . NPN BJT now working. NET_C now accepts more than two terminals. Fixed handling of input/output offsets. Moved device models for diodes and bjts into net_lib.c. . Implemented CD4066 device (Quad Bilateral Switch). Use C99 variadic syntax (..., __VA_ARGS). Renamed a member in nld_4066 as well. Removed hybrid_t usage in netlist. . Made GMIN a solver parameter. All users now use this value. . Nice performance increase by removing logic terminals from net if they are inactive. Introduced a linked-list class to abstract linked-lists. Fixed deactivating devices. You have to enable this because it is not guaranteed to be timing-exact. . Fixed issues introduced lately around DICE compatibility - 4enraya.c . Replaced bad gfx1 rom in 4 En Raya (set 1). Minor cleanups. . Made sound_control_w more logical, unfortunately it didnt fix unkpacg sound. Small update. - atarigx2.c: Added some comments on Atari GX2's protection (Space Lords etc.) - baraduke.c, exprraid.c, namcos1.c, namcos86.c and pacland.c: Added SCREEN_RAW_PARAMS. Fixed visible area and VSync in Express Raider. - bartop52.c and maxaflex.c: Removed some Atari legacy code - calomega.c: Fixed Cal Omega regression. The games using the ACIA suffer of a huuuge slowdown. Probably expected, though. - cave.c . Added minor doc update about Puzzle Uo Poko . Fixed graphic glitch in Air Gallet's attract mode (ID 05467) . Changed manufacturer to 'Gazelle (Banpresto license)' in agallet and sailormn - cavepc.c: Fleshed out this non-working skeleton a bit with some new details, obviously still non-working, we're not emulating a 2.6GHz Althon 64 X2 any time soon. - cclimber.c: Removed DEVCB_HANDLER by making cclimber_audio_device. Not very nice looking, but it's working. Audio boards needs better decoupling. - cdi.c: Fixed all Quizard games do not boot after initial startup screen and input regression (ID 05466) - chihiro.c: Removed some firstcpu in driver - cidelsa.c . Converted CDP1852 and CDP1869 to DEVCB2. DEVCB for the state codes in CDP1802. . Converted CDP1869 to use delegates so whole configuration is in MCFG block . Added write line members for the input lines (cpu\cosmac\cosmac.h) - coinmstr.c: Some improvements to the driver - cps1.c . Added recently dumped PAL for Ganbare! Marine Kun . Willow, Strider and Ghouls'n Ghosts have some changed factory setting defaults as stated from manual. Also noted differences in bonus live coverage where applicable (ID 05470), (ID 05471) and (ID 05472). . Dumped and added MS22B.1A pld to clone Magic Sword: Heroic Fantasy (Japan 900623). - cps1/2.c: Eliminate pointless planar-to-chunky conversion of gfx ROMs, just decode them as-is. Modified video params. - cps1.c: Added DSP pin info from Guru - cps3.c . Documentation and small cleanup . Value frac can possibly go over 16bits . Small improvement to loop offset and final volume - crystal.c . Preliminary patches for Donggul Donggul Haerong. Still doesn't work, but at least boots now. Fixed bad graphics (video\vrender0.c). Not marked as working yet because there are still stability issues, just leave it in attract mode to see crash. . Improved protection patches in 'Office Yeo In Cheon Ha' based on analysis of the PIC dump, but it's still unstable for currently unknown reasons. Note: The PIC uses a software UART bit banged on a single output pin of the main CPU: The data port is bit 0x20000000 on the PIO register, the same register where the EEPROM control lines are. The serial data is transmitted at 8 data bits, even parity, 1 stop bit. It's probably tricky to get it working properly because it doesn't rely on a clock signal, and so, the PIC and main cpu must run in parallel, and the bit lengths must match. The PIC bit delay routine is just a loop. Also it seems that bit 0x40000000 is the PIC reset. . Added PIC protection data to Top Blade V (Game now playable) - cv1k.c . Re-Added driver. Standardized newest additions. Does nothing useful other then minor cleanup. Removed unused idct32 code. . Fixed endian safe array access (video\epic12.c). Added xtal stuff. Changed manufacturer to 'Cave (AMI license)'. - cvs.c: Added xtal stuff - dec0.c: Fixed Birdie Try regression (video\decmxc06.c) - dec8.c: Some cleanups. Fixed sprite offset with karnov_sprites_device (video\deckarn.c) - deco156.c: Removed buttons 4-6 in hvysmsh and wcvol95 - dkong.c: Converted machine\latch8.c (8 bit latch interface) to modern and DEVCB2 - docastle.c . Added video raw params to driver. Also tried to hook up CRTC but got screen offset glitches. This fixes Do! Run Run and clones starts with 5 lives regardless of dip settings. . Don't clutter error.log by default (machine\docastle.c). Note: This ia a hack, it can be accurately emulated once our Z80 core supports WAIT. . Hooked up slave CPU IRQ according to schematics . Added note about CRTC and visible area, removed obsolete comments. Fixed VSync. - ecoinf2.c: Electrocoin Phoenix tech checkpoint, still hasn't got them booting though. - fcrash.c: Copy CPS video params to driver - funworld.c . Added proper program ROM banking and connected to DIP switch #1 . Cleaned-up the machine drivers . Derived clocks via #define . Added technical notes. . Created default NVRAM for Mongolfier New (Italian) and Soccer New (Italian). This allow games to boot and be playable. Flagged game as 'GAME UNEMULATED PROTECTION' due to the lack of MCU emulation. . Override the wrong visible area in Magic Card II and centered the game through a dedicated CRTC config interface. - gaelco3d.c: Updated GAELCO SERIAL device to use DEVCB2 - galaxia.c: Fixed S2650 CPU1 clock speed - galaxian.c: Small cleanup - galivan.c: Added buffered spriteram to fixed sprite lag and unaligned background and sprites (ID 05465). Cleanups. - ghosteo.c: Modernized S3C24xx ARM controller - goldnpkr.c: Inverted and normalize the button-lamps states for all games - goldstar.c . Fixed the colors of clone Cherry Bonus III (set 3), rearranging the split values stored in 4-bit bipolar PROMs and adding the missing one. Promoted to working state. . Fixed both graphics banks decryption/decode in clone Cherry Bonus III (set 4, encrypted bootleg) . Added button-lamps support to all Cherry Bonus III sets. Also created almost realistic control panel internal layout. Added technical notes about Cherry Bonus III memory map. . Added lamps support to Golden Star sets. Also fixed the inputs accordingly. . Super Nove (Playmark): Created proper machine driver and improved the second graphics bank decryption/decode. - gstream.c: Removed gfx offset - harddriv.c: Moved a few more functions in the driver state - hng64.c: Added semi-fix, 1/2 frames in Samurai Showdown 64 games are now visible. - igs_m027.c: Prevent debug assert - igs_m036.c . Added test code (dummy_internal_arm_region) to driver . Hook IGS036 decryption up to driver - jaguar.c: Added a hack for the very slow gameplay and missing video in area51mx, a51mxr3k, maxforce, maxf_102, maxf_ng and vcircle (ID 05256) - kaneko16.c . Some misc Kaneko refactor, preparation for further work . Handle Berlin Wall alt spriteram layout in driver instead of inside sprite chip, added IC locations. - karnov.c: Some cleanups - m92.c: Small note about EEPROM size - micro3d.c . No more old 68681 DUART . Make the TMS34010 a bit safer when 8-bit writes are used - mil4000.c: Added missing note - model3.c . Added iocpu rom to clone Get Bass . Added ffcpu rom to Star Wars Trilogy - ms32.c: Fixed save states (ID 04005) and also in Game Paradise (ID 03976) - namcona1.c . Fixed Namco NA-1 games crashes when hard resetting or switching games (ID 05312) . Got rid of Namco NA-1 legacy NVRAM handler. Added default EEPROM to cgangpzl, exvania, knckheadjp and quiztou. . Relocated sourcecode to more like our usual layout . Moved some functions in the driver state - namconb1.c . Got rid of Namco System NB-1 legacy NVRAM handler. Added default EEPROM to ptblank. . Relocated sourcecode to more like our usual layout - namcos1.c: Converted driver to use delegates instead of _space_func and modernized all remaining functions - namcos12.c . Small driver cleanup . Documentation update . Replaced baddump H8/3002 rom in clone Tekken Tag Tournament (Japan, TEG1/VER.C1) - namcos22.c . Added keycus RNG similar to other Namco and notes . Small workaround for Air Combat 22 garbage sprite . Tweaked video params - namcos23.c . Driver cleanup. Fixed H8 clock. . Removed a bunch of S23 prefixes/suffixes useless since the modification . Renamed P3D to C435. Unify C435 dma and PIO. . Identify the generic set state command. Implemented the interrupt set state subcommand. . Fixed the endianness of the controls port (controls still don't work though). Various whatevers. Finished fixing the ports endianess. Fixed the irq storm that killed Downhill Bikers. . Fixed 3D computations and gunsight in Time Crisis II . Better understanding of the command format, Downhill Bikers and 500 GP now show something (completely wrong). . Enhance matrix-vector mul . H8 rewrite: Got some speed back in Namco System 23 driver. . Some early work towards GMEN SH-2 part of Namco System 23 (cpu\sh2\sh2comn.c) . Implement the H8 8-bits timers, Namco System 23 coins work again. - naomi.c . NAOMI documentation update . Fixed rom mappings of the existing World Kicks sets to what boots in Demul . EFREG is mapped every other word, not every word (sound\aica.c). Fixes memory trashing in all NAOMI/DC/AW games. . M4 cart handling greatly improved (added needed flash commands, fixed encryption on/off logic) . M1/Actel and NAMCO carts IC layouts fixed, ROM test passes now. . NAMCO 2f-2b IC names changed to .2d,2c etc, without fl0-fl4, because its the second IC label on the PCB (like "IC17S ROM1" on Sega carts). . IC labels changed according to cart PCBs. Minor docs update. . Added all known IC locations from sets missing them . Correct some bad Sega chip numbers and IC locations . Use real chip dump for mvsc2 . Fixed ROM loading for Animal Basket. Changed screen orientation to vertical. . Fixed rom_board rom ($0) length in f355twin . Removed rom illvelo.ic11 in Illvelo . Redumped Salary Man Kintarou . Completed redumped of Virtua Tennis 2, ROM test passes now. . Added missing protection keys to clubkrte, dybbnao, gunsur2, inunoos, vstrik3c, vstrik3cb and wldrider. . Redumped GD-ROM from .gdi source to CHD v5 for beachspi, cfield, cvsgd, ggxx, ggxxrl, ggxxsla, gundmgd, gundmxgd, meltybld, quizqgd, sfz3ugd, slashout, spkrbtl, vathlete, vf4c, vf4evoa, vtennisg and wsbbgd. . Documented PIC for ngdup23e - nemesis.c . Hooked up RC filters to AY8910s. Added 4x 'RC Filter' to bubsys, gwarrior, konamigt, nemesis and twinbee. . Fixed KonamiGT layout aspect ratio . Some corrections to address maps and inputs. Fixed bubsys crash. . Removed VLM5030 speech in Nemesis - neogeo.c . Added free version of Universe BIOS v3.1. Make bioslist a bit easier to read. . Fixed savestate loading (ID 05429) . Added Z80 NMI enable/disable. This fixes Neo Diagnostics show Z80 issue (ID 05025) . Specify some 8bit handlers as 8bit in the memmap . Hooked up proper uPD1990/4990 device . Improved accuracy of vblank irq/reload timing from Charles's documentation. vblank irq happened approx 15 pixels too early. . VSync start (auto animation latch) is 16 lines after active display . More accurate watchdog timing . Added simple waitstate on 0x800000-0xbfffff access . Merged neogeo.c/inc . Fixed ADDRESS_MAP mirroring . Fixed Bang Bead recent regression (from_hz takes a "double", can't handle large numbers) . Updated Neo-Geo PCB infos. Added redumped puzzldpr s1 and chip info. Replaced diggerma m1 and s1 with 128k versions (64k m1 and s1 do not exist). Removed bangpedp - A proto with same layout exists, some roms are different, currently undumped. Removed roboarma - This is a hack. Added new clones kof95a (alternate board) and kof98a (alternate board). - neoprint.c: Hooked up proper uPD1990/4990 device. Note the odd 4-year bug is still here. - nss.c, sfcbox.c and snesb.c . Converted legacy handlers to modern (cpu\g65816\g65816.c) . Moved some static variables into state (includes\snes.h and video\snes.c). Removed legacy handler from SNES. - paranoia.c, tourvis.c and uapce.c: Replaced VDC with HuC6260 and HuC6270 device - peplus.c . Removed testing remnants. Minor doc improvements/update. Added payout percentages for the video slots. Added "Slots" to game name in source. . Added new prom to pepp0452 and pepp0508 . Use alt card set for pepp0775 - pgm.c . Simplify tile gfx ROM loading/decoding . Added ARM protection data to Happy 6-in-1 (Game now playable) . Added proper internal rom to 'svg' parent set, it resets on coin now, need to investigate. . Changed ddpdoj, espgal and ket manufacturer to 'Cave (AMI license)' - pgm2.c . Just backing up of some bits to help me test / experiment pending full integration of code from Andreas . Hook IGS036 decryption up to driver - pcxt.c: Filetto and Tetris (bootleg of Mirrorsoft PC-XT Tetris version) are now using ISA bus - plygonet.c: Fixed wrong memmask mask - gei.c . Fixed coin in does not work in the Joker Poker clones (ID 04679) . Fixed manufacturer in Quiz (Revision 2) (ID 05407) - qix.c . Fixed 6821 PIA regressions in Kram (set 1/2), Electric Yo-Yo (set 1/2) and Space Dungeon . Let's not regenerate the entire Qix palette every time we do a partial update. - realbrk.c: Fix for Pachinko Gindama Shoubu/DX black screen - segaorun.c . Added motor and lamp outputs. Fixed input. . Correct types (IE Deluxe or not) in driver and added/updated minor documentation information. - segas32.c . Added Alien3 and Dark Edge PCB READMEs . Fixed OutRunners typo according to BYOAC forums (MA_Steering_Wheel_motor) - seibuspi.c: Made the region descriptions on all the sets more consistent based on the actual region codes in the ROMs - shanghai.c . Verified chip and speed for Shanghai (Japan). Added PCB layout and ROM locations for Shanghai sets. . Changed the clocks for Kyuukyoku no Othello to actual measured clocks as per PCB readme in driver - shangha3.c: Get rid of MASTER_CLOCK define in favor of actual OSC clock so in the machine config you can see what the speed is and how it is determined. - skylncr.c . Removed unused debug handler . Improved inputs from games - slapfght.c . Driver cleanup . Verified that Tiger Heli music speed is correct, and made CPU sync perfect instead of only 10 times per frame (gotta ensure good comms timing with shared ram and MCU). Fixed Tiger Heli default input. . Moved generic functions out of machine to driver, only keep MCU stuff in there. . Renamed/Combined some functions and added irq ack and soundnmi disable . Port 0 d0 is vblank bit (see Tiger Heli game start) and shared ram is 2kb . Added support for savestates - stv.c: Moved machine\smpc.c to state, need to be device-fied in future. - taito_b.c: Cleanup driver - taitojc.c: Tweaked video params - taitogn.c . Added Zoom ZSG-2 sound . Modernized Taito Zoom (audio\taito_zm.c). Fixed wrong region name. . Added NEC uPD78081 MCU dummy MCU . Fixed ZSG2 soundchip clock in Taito G-NET . Workaround for Zoku Otenamihaiken soundcpu NMI loop . Fixed rendering issue in Psyvariar and Ray Crisis attract - tceptor.c: Splitted C45 road chip from namcoic.c - tiamc1.c . Fixed and enabled background scroll . Fixed bad graphics rom in Snezhnaja Koroleva - toaplan1.c . Correct SCREEN_RAW_PARAMS for all games based on CRTC registers . Removed sound reset hack, unify gfx decoding and various cleanups. Fixed gfx1/2 rom loading. . Fixed Rally Bike title screen color - toaplan2.c . Fixed Armed Police Batrider text layer . Added pld to Batsugun - tourvis.c . Added newly dumped U4-43 BIOS . Added some recent Tourvision dumps from clawgrip & TDU . Added some known Tourvision carts to driver README - toypop.c: Fixed sprites offset up with flipscreen is ON in liblrabl and toypop (ID 04988) - triforce.c: Documentation update - tugboat.c . Changed driver_init() to machine_start() . Correct AY chip type and clock, some cleanups. . Fixed Noah's Ark demo mode freezes after the monkey got onto the ship (ID 05430) - wecleman.c: Static to member (includes\wecleman.h and video\wecleman.c) - wiz.c: Driver cleanup round and a couple of fixes (sound problem and gaps in sprites). This fixes the blue dragon in Wiz has missalligned sprites tiles (ID 00810) and the sound is dreadful after a death and stage restart (ID 00809). Also the graphic problem in Stinger cocktail mode, the big satellite sprite has a small line glitch (ID 00811). - yunsung8.c: Correct documentation / chip type - zn.c . Added Zoom ZSG-2 sound. Improved MN1020012A I/O port skeleton stuff, TaitoFX1b sounds ok now. . Modernized Taito Zoom (audio\taito_zm.c). Fixed wrong region name. . Added NEC uPD78081 MCU dummy MCU. Fixed rom offset typo (region zsg2). . coh1000ta board doesn't have a FM1208 EEPROM, coh1000tb does but AM_RANGE(0x1fbe0000, 0x1fbe01ff) is for M66220FP. . Taito FX1b fram is over here, used by G-Darius to save its highscore table. . G-Darius is COH-1002T with 2MB VRAM, the other Taito FX1b games (raystorm and ftimpact) have 1MB VRAM. . Guru measured qsound music timing . Added coh1002ml Z80 linkrom to the memmap. Fixed Z80 CPU2 clock speed in clone Gallop Racer 2 Link HW (Japan). - 1942 . Fixed colortable . Added and enabled netlist output stage to 1942. The quality is better with netlist. Better dynamics, you can hear the rotors now. No performance impact have been observed. - Ace: Get rid of guessed Ace color overlay - AGEMAME . Removed calls to mpu4_state *state = machine.driver_data(); by moving code into mpu4_state. Removed runtime lookup of devices that were already looked up in mpu4_state. . maygayv1.c: Fixed 'Screen Play (Maygay, MV1 Video, ver. 4.0)' unable to start (ID 03438) . aristmk4.c: Removed VIA6522 ca2 & cb2 callback, they didn't do anything. Cleanup driver. Comment changes to better describe 'setup' for some games. . aristmk5.c: Commented printf spam (machine\aakart.c). Attempt to partially rewrite AAKART, and added 4bpp video mode for Acorn Archimedes. It now boots at prompt screen, and actually even boots into splash screen and dies almost soon with an error if you provide a properly initialized NVRAM. Added preliminary cursor drawing, disabled by default (machine\archimds.c). Added interlace support and 2bpp (screen mode 1) (machine\archimds.c). . bfm_sc2.c and bfm_sc4.c: Converted video\bfm_dm01.c to DEVCB2. . bfm_sc4.c: Added assert for sc4milro segmentation fault (machine\68307tmu.c). Fixed assert after OK in many bfm_sc4.c sets (ID 05001). . Made an attempt to fix the banking of MPU4 games, this isn't perfect, but most non banked games will now run. . Converted video\bfm_dm01.c to DEVCB2 . Moved 'MPU4 Unit Test (Program 4)' to the mpu4mod4yam driver, still needs some work on the timing though. Replaced AY-3-8913A sound with YM2413. . Fixed Gamball reel positioning, this will need more work to standardise. . Fixed "comparison always true due to limited data range" (drivers\maygay1b.c; compile error on old Apple GCC) . Added support for horizontal 'belt' reels which may be needed for future AWP titles. To invoke, added an attribute "beltreel" to the reel element in the layout, and set it to 1. (emu\rendlay.c). - American Speedway: Changed amspdwy_port_r to simply AM_ROM - Amiga . cd32.c: Fixed Magic Number and Magic Premium runs too fast (ID 05329). Fixed CD Express list (ID 05406). . Added notes and NO_DUMP placeholder for I/O MCU to Moonquake . Fixed old copy/paste error in machine\amiga.c (drivers\alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) . Added a pair of functions from MESS Amiga to the driver class (includes\amiga.h) - Asterix: Changed game to use XTAL speeds - Attack Force: Added color overlay (ID 05405) - Battle Cross: Joystick should be 8-way - Big 10: Fixed inputs and added technical info - Bosconian: Try to improve sprite-bullet alignment - Bowling Try . Very timid attempts for Bowling Try, used only as a testbed for the newly installed toolchain/SVN tools. . Added H8/3008 CPU - California Speed: Fixed the SSE2 versions of the RGB utility functions (video\rgbsse.h, rgbutil.c and rgbvmx.h), which are currently only used by 64-bit builds. This fixes all screenshots from 64-bit builds have off-by-1 color errors and incorrect alpha (green boxes around trees) in Mt. Shasta stage in California Speed (ID 04157). - Carket Ball: Added new carket_protdata.bin (Game now playable) - Centipede: Correct clones manufacturer (ID 05403) - Cycle Shooting: Added missing DAC to Cycle Shooting / Bronx, fixes missing sounds (ID 03975). - Disco Boy: Verification of 400kHz resonator. Minor doc update. - Discs of Tron: Removed hardcoded DIAL increment/decrement (ID 05414). - Diver Boy: Small documentation update - Double Crown . Added button-lamps support, coin in and coin out counters, MAX693 watchdog reset, minor input fixes and added technical notes. Added support for CANCEL button. . Converted PLD to binary (ID 05065) - Double Dribble: Cleanup driver. Fixed maincpu rom address. - Dragon's Lair: Changed clone Dragon's Lair (European) from beep to speaker driven by Z80CTC and removed some unnecessary accessors. - Dynamite Baseball: Notified that user2 rom is bad - Egg Venture: Verified the correct user1 rom size for clone Egg Venture Deluxe - F-1 Grand Prix: Fixed save state (ID 04102) and user1 rom loading - Galaxy Force 2: Added motorcpu rom - Grand Champion: Use a real palette - Ice Cold Beer: Removed game-no-sound flag - Jockey Club II: Added dumped EEPROM to jclub2 sets, allowing game ID check to pass. - Jubilee Double-Up Poker . Correct the crystal value and derivate clocks via #DEFINE . Improved memory map . Created the accurate graphics banks . Found and mapped the video RAM . Hooked the ATTR RAM . Assigned the correct graphics banks to the proper drawn tiles . Find and mapped an input port. Extra service input found. Changed some input names. . Demuxed the input system . Hooked an cleaned all inputs, except the coin in (missing). . Added a default clean NVRAM. Fixed the NVRAM size. . Video and working RAM are both halves of the same device (TC5517AP-2, tied to a battery). . Hooked CRTC properly . Adjusted the screen size and visible area according to CRTC values . Adjusted the screen pos 8 pixels, to get a bit centered. . Fixed palette to 8 colors . Found and implemented the credits input. The game is now working. Still no sound. . Fixed visarea assert. Changef CRTC clock divider to more realistic value. . Added more findings and technical notes . Added partial lamps support (some are missing), and a workaround for discrete sounds trigger offsets. Also a zillion of technical notes about findings. - King of Football and Konkyuu no Hoshi: Added music and save states. Added YM2413 sound. Fixed M68000 CPU1 clock speed. - KO Punch: Fixed foreground colors and background wrap. Added notes. KO Punch has 4x i8255 PPI chips. - Kram: Fixed clone Kram (encrypted) hangs at startup (ID 05210). Replaced M6809 CPU1/2 with M6809E. Removed GAME_NOT_WORKING flag. Updated driver notes. - Laser Disc: Fixed all Laserdisc games show error in MAME 64-bit when exiting game (cliffhgr, cobram3, cubeqst, firefox, mach3 and usvsthem) (ID 04722) - Lemmings: Fixed sound writes (ID 05490) - Little Robin . Now we can turn on the TMS34010 for Little Robin, still some issues (bands during boss levels for instance) but it's better than it was in other ways (screen clears). . Fill in missing dipswitch settings and added DIP locations . Shared code into devices (machine\inder_vid.c). Untangling sound HW from video timings. - Lucky 74: Fixed colors are different in 32/64bit build (ID 03346) - Magic the Gathering: Armageddon: Use roms from parent with BAD_DUMP for clone 'Magic the Gathering: Armageddon (set 2)' for now - fixes crash and indicates that these roms have to be redumped. - Malzak: Converted SAA5050 to DEVCB2 - MegaDrive/Genesis . Many MegaDrive updates to cart handling. Updated carts to be slot devices. Simplified loading and bankswitch mechanism. Added support for real Sonic & Knuckles lock-on emulation (you can combine it freely with other carts, through the -cart2 slot which gets added automatically). Removed need for "pcb_type" feature from XML softlist, since the new "slot" feature is enough. Moved SVP emulation to src\mess\ in view of conversion to a slot device as well. . Merged md_havoc_state with md_boot_state (drivers\hshavoc.c and includes\megadriv.h). . Driver segas18.c share same palette with machine\megavdp.c, that is fixed now. . Some modernization (drivers\megaplay.c, megatech.c, megadriv.h and segamsys.c) . Improved 315-5124 X-Scroll register timing. . Fixed uninitialized variables (machine\mega32x.c). Moved some more global variables to driver class. Removed a bunch of useless machine parameters and a few tagmap lookups (machine\mega32x.c, megacd.c and megavdp.c). . Removed NVRAM handler from MESS MegaDrive. MESS was not using this since more than one year, and it was causing MT03873. If any bootleg megadrive board needs this, please let me know so that I can re-add it to the correct driver. . Small steps to keep a few 32x operations inside Mega32x. . MegaDrive modernization . Removed some dead code and cleaned up some function names to clarify their usage (drivers\megaplay.c, megatech.c, includes\megadriv.h and machine\segamsys.c). . MEGA VDP cleanup . MegaDrive bootleg modernization (drivers\megadrvb.c and puckpkmn.c) . Timers are member of VDP class (drivers\segac2.c, segas18.c, machine\mega32x.c, megadriv.c and megavdp.c). Avoid dupe timers (drivers\segac2.c and machine\megadriv.c). . First attempt to use modern 315-5124 code for SMS games in MegaTech, exploiting the parent class of the MegaDrive VDP class. Please report regressions, if any. . Brought back the full vertical size of the screen for SMS games, by using custom code to copy from the SMS VDP bitmap (drivers\megatech.c and includes\megadriv.h). I could use some help from people with a better knowledge of the 315-5124, to e.g. understand if the problem is in the raw screen parameters, in the VDP or anywhere else. . Updated MegaPlay and MegaTech to use modern SMS VDP. With this, it was finally possible to remove the other outdated (& non-device) implementation which was lurking inside segamsys.c also, MESS at last compiles without the need of megatech.c. . Reducing input tag lookups (drivers\megadrvb.c and machine\megadriv.c) . Clean-up of the MegaPlay and MegaTech driver classes . Small clean-up of the MegaPlay BIOS banking . Experimental change to the Mega32x pixel mixing to better understand the performance impact of this piece of code. Might be reverted soon. . Stop SMS VDP timers in systems that don't need them (video\315_5124.c, drivers\hshavoc.c, megadrvb.c, puckpkmn.c, segac2.c, segas18.c and includes\megadriv.h). . Changed Sega Genesis VDP to use macros instead of direct usage of callback defines . Another small step towards separation of the 32x from MegaDrive VDP . Replaced direct references to 32x inside the MD VDP with calls to suitable delegates. it's not the perfect solution (the mixing should not happen inside the MD VDP as it does now), but it is a step in the right direction. Minor name cleanups inside the genesis vdp class. . Simplified DMA 'lag' handling, reducing the need of global functions (machine\megavdp.c). No more global variables needed, at last. . Fixed Megatech vertical offset when running standalone SMS games. This temporarily breaks the vertical offset when launching the multislot system with both SMS and MD games mounted. . Converted 315-5124 to DEVCB2 . Moved megadrive add-ons to appropriate place + cleaned up classes and includes. Renamed Genesis VDP to Sega 315-5313 and moved it to emu\video\. - Metamorphic Force: Fixed background and sprite offsets - Momoko 120%: Changed to 4-way Joystick - Monte Carlo: Fixed slowdowns, incorrect gameplay elements (ID 04645) and colors invert when you crash (ID 05401) - Mr. Kicker: The EEPROM rewrite in 0.150 fixed Mr. Kicker. Removed the GAME_NOT_WORKING flag. - Mundial/Mondial (Italian/French): Implemented the program banking properly. Now you can choose the program through a DIP switch. - Number One: Small driver cleanup - Off the Wall: Correct 'Off the Wall (2/3-player upright)' rom names and locations and also added a dump of one of the GAL's (a GAL16V8A-25LP) on the boardset which was the only one without the security fuse blown. - Operation Tiger: Added dummy MN1020012A soundcpu to Taito Power-JC driver so we can see the disasm in MAME debug. - Operation Wolf 3: Fixed hang on exit with -autosave (ID 05245) - Pac-Land: Pac-Land control panels have buttons, not joystick. - Pac-Man - 25th Anniversary Edition: Added basic support for FLASH_AMD_29LV200T. - Penguin Adventure: Cleanup driver and converted to bankdev - Phoenix: Fixed clones Falcon and Fenix video initialisation differs between 32bit and 64bit (ID 03329) - PinMAME . Fix for S11 FATALERROR: devcb2_write: Error performing a late bind of type 13m6809e_device to 12m6809_device (name=m6809_device::firq_line). . Fixed UME build validity error in Zac_2 driver . Initialised DMD RAM, and initialised DMD page select register (drivers\wpc_dot.c and machine\wpc.c) - Poke Champ: Modified clocks based on measurements. Added OSC information for clock speeds. - Popeye . Changed Popeye to use palette computed from schematics. Also implemented interlaced field support. This is actually read by the game. . Popeye now has netlist filtering and amplification for AY-3-8910A (ID 03726). Note: On the original Popeye board, sound channel A from AY-3-8910 is run through a discrete filter, producing a smoothed wave form. This only affects sound channel A. . Driver cleanups - Quick Jack: Added inputs - Road Fighter: Removed VLM5030 speech (ID 02879) - Roc'n Rope: Added 82s153 PALs to clone Ropeman (bootleg of Roc'n Rope) and correct the rom names and locations. - SOS: Get rid of guessed color overlay - Space Harrier: Adjusted analog input to match real hardware values (ID 05468) - Spy Hunter: Added the correct, half-swapped dump of cpu_pg5.11 to Spy Hunter and clone (Playtronic license) - Super-X: Fixed manufacturer - Thunder & Lightning: Added preliminary sound to clone Thunder & Lightning (bootleg with Tetris sound). Unsurprisingly seems to share the same hook-up as wiggie and superbon, the other thunderl hacks in the driver. Marked as IMPERFECT_SOUND cause the music keeps restarting after a few seconds after inserting a coin. Seems fine during gameplay, though. - Time Scanner: Redumped FD1089B used by clone Time Scanner (set 1, System 16A, FD1089B 317-0024) - Truco-Tron . Reversed and documented almost all PCB's ICs . Identified the last unknown IC (U15). Added Technical notes. - Tutankham: Mapped left/right fire as 2nd joystick - Twins: Fixed initial screen color differs between 32bit and 64bit builds (ID 03344) - Vector games . Fixed vector rendering (emu\rendersw.c) . AVGDVG is now device . Derive (fake) refresh rate from CPU IRQ frequency in various Atari vector games to reduce juddering. . Restored correct vector rom for clone Asteroids (bootleg on Lunar Lander hardware). This fixes game is not booting correctly (ID 04174). . Fixed a long standing bug in Tempest by specifying quantum perfect emulation. All save states should be removed since they may contain a corrupted game state. Note: Actually, the routine at AE1C is called after high score entry resp. after the high score screen was displayed. It has something like 'lda 60ca' and 'ldy 60ca' and expects the high nibble of "A" to match the low level of "Y", i.e. that 4 shifts occur. . Fixed Tempest resets at odd times during red levels (ID 05266) . Do reset on different way in drivers\asteroid.c . Redumped clone Space Fortress . Swapped proms in clone Space Ship - Vega: Converted INS8154 RAM I/O device to DEVCB2 - Vs. Janshi Brandnew Stars . Converted to use dual palettes. Note, needed to add PALETTE_FORMAT_XBRG for this game, also READ16_MEMBER(palette_device::read) is necessary here because the ram is installed on every other word AM_DEVREADWRITE16("palette", palette_device, read, write, 0x0000ffff) AM_SHARE("palette") and without the 'read' handler the wrong data gets read back for the RAM checks. . Hooked up sound by borrowing code from Jaleco Mega System 32 and adding the second YMF271. Maybe this bnstars_state should become a derived class of ms32_state, since they seem almost identical except the 2 screens? . Made bnstars_state a derivate class of ms32_state and removed some duplicate code - Wardner: Converted game to bankdev. Only use bankdev for read. - Witch . Added CPU interleave to fixed garbled graphics in witch and pbchmp95 (ID 05276) . Changed both CPU clocks to 3 MHz, both YM2203 clocks to 3 MHz and confirmed the ES8712 clock (coming from pin 14 of M5205) in 8 MHz. All measured and traced from the PCB. Implemented all clocks through #define. . Inverted the 'Unknown Use' dipswitch default since it broke controls. The "UNK" port could actually be the controls for the "matrix" mode. - Xybots: Get rid of hardmapped buttons. This fixes unable to map twist left / twist right controls (ID 05479). - Input port . Adopted 'bool' type (windows/input.c) . No more legacy CUSTOM_INPUT (emu\ioport.h, drivers\popeye.c) - Dipswitch fixes in littlerb, pgm.c, segaorun.c, taitogn.c and witch - Fixed rom names in berlwall, capbowl.c, flytiger, namcos1.c, namcos2.c, naomi.c, offtwall.c, ropeman, segas32.c, shanghai.c, spyhunt, tmnt.c and uopoko - Renamed (19xxjr1) to (19xxjr2), (19xxj) to (19xxjr1), (berabohmo) to (berabohmb), (danceyes) to (danceyesj), (dspirita) to (dspirit2), (dspirito) to (dspirit1), (fghthistja) to (fghthistj), (fghthistj) to (fghthistja), (fghthistua) to (fghthistu), (fghthistu) to (fghthistua), (funkyjet) to (funkyjeta), (getstar) to (grdian), (gtstarb1) to (getstarb1), (gtstarb2) to (getstarb2), (gunwars) to (gunwarsa), (happy6) to (happy6101), (jetwave) to (jetwavej), (keroppi) to (keroppij), (mrdrillr) to (mrdrillrj), (outrundx) to (outrundxa), (outruno) to (outrundx), (pepp0235) to (pepp0265a), (rranger) to (rrangerb), (sfiiin) to (sfiiina), (shangha3) to (shangha3u), (shanghai) to (shanghaij), (splattero) to (splatter2), (stoffy) to (stoffyu), (youkaidk) to (youkaidk2), (youkaidko) to (youkaidk1), (zerowing) to (zerowing1) and (zerowing2) to (zerowingw). - Description changes of 18 Wheeler (Deluxe) (Rev A), 18 Wheeler (Standard), Apocaljpse Now (bootleg of Rescue), Assault (Rev B), Battle Balls (Hong Kong), Battle Balls (Hong Kong, earlier), Beraboh Man (Japan, Rev B), Beraboh Man (Japan, Rev C), Bonne Chance! (Golden Poker prequel HW), Boxy Boy (SB?), Bubble Trouble (Japan, Rev C), Burning Force (Japan, old version), Burning Force (Japan, new version (Rev C)), Butterfly Video Game (version U350C), Club Kart: European Session, Cookie & Bibi (set 1), Deluxe 5 (ver. 0107, 07/01/2000, set 1), Donkey Kong Junior (US set F-2), Double-Up Poker (Jubilee), Dragon Saber (Japan, Rev B), Dragon Spirit (old version (DS1)), Dragon Spirit (DS2), ragon Spirit (new version (DS3)), Fantasia (940429 PCB, set 1), Fighter's History (Japan ver 41-05, DE-0380-2 PCB), Fighter's History (Japan ver 41-07, DE-0395-1 PCB), Final Lap (Japan, Rev B), Final Lap (Japan, Rev C), Flying Tiger (set 1), Four in One Poker, Funky Jet (Japan, rev 2), Galaxia (set 1), Gals Panic II (Germany, 2 PCB ver.), Gals Panic II (Italy, single PCB), Gamball, Gazelle (Banpresto license), Gulf War II (set 1), Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. E), Gunbalina (Japan, GNN1 Ver.A), Intrepid (Elsys bootleg, set 1), Joker Poker (Coinmaster set 1), Kyuukai Douchuuki (Japan, old version), Kyuukai Douchuuki (Japan, new version (Rev B)), Le Mans 24 (Revision B) (ID 05459), Mad Zoo (version U450C), Magic Worm (bootleg of Centipede, set 1), Magix / Rock (no copyright message), Mario Kart Arcade GP (MKA2 Ver.B), Metal Hawk (Japan, Rev F), Metal Hawk (Rev C), Miss World '96 (Nude) (set 1), Mr. Driller 2 (Asia, DR22 Ver.A), Multi 5 / New Multi Game 5 (set 1), Multi 5 / New Multi Game 5 (set 3, earlier), New Fantasia (1994 copyright), New Fantasia (1995 copyright), NFL Classic Football (US, NCF3 Ver.A.), Out Run (deluxe sitdown earlier version), Out Run (deluxe sitdown), Player's Edge Plus (PP0002) Standard Draw Poker (International), Player's Edge Plus (PP0002) Standard Draw Poker, Player's Edge Plus (PP0065) Joker Poker (Aces or Better), Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0221) Standard Draw Poker (set 1), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0429) Joker Poker (Aces or Better), Player's Edge Plus (PP0458) Joker Poker (Aces or Better), Player's Edge Plus (PP0725) Double Bonus Poker (set 1), Player's Edge Plus (PP0775) Royal Deuces Poker??, Point Blank 3 (Asia, GNN2 Ver.A), Pong (Rev E) external, Pong (Rev E), Raiden DX (Hong Kong, set 1), Raiden DX (Hong Kong, set 2), Raiden Fighters (Hong Kong), Raiden Fighters 2 - Operation Hell Dive (Germany), Raiden Fighters 2 - Operation Hell Dive (Hong Kong), Raiden Fighters Jet (Germany), Raiden II (set 2, Hong Kong, Metrotainment), Robot (Zaccaria), Robot (Zaccaria, French speech), Robot (Zaccaria, German speech), Robot (Zaccaria, Italian speech), Rompers (Japan, old version), Rompers (Japan, new version (Rev B)), Rough Ranger (v2.0, bootleg), Shadowland (YD3), Sky Lancer (Bordun, version U450C), Souko Ban Deluxe (Japan, SB1), Splatter House (Japan, SH1), Splatter House (World, old version (SH2)), Splatter House (World, new version (SH3)), Steel Gunner (Rev B), Steel Gunner 2 (Japan, Rev A), Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2), Street Hoop / Street Slam / Dunk Dream (DEM-004)(DEH-004), Super Toffy (Unico license), Suzuka 8 Hours (Japan, Rev B), Suzuka 8 Hours (World, Rev C), Suzuka 8 Hours 2 (Japan, Rev B), Suzuka 8 Hours 2 (World, Rev B), Tazz-Mania (set 2, alt hardware), The Big Apple (2131-13, U5-0), The Three Stooges In Brides Is Brides (set 1), The Who's Tommy Pinball Wizard (3.00, The Netherlands), Time Machine (Zaccaria, French speech), Time Machine (Zaccaria, German speech), Touch de Uno! / Unou Nouryoku Check Machine, unknown 'IGS 6POKER2' game (V312CN), unknown H8 Italian Gambling game, unknown Sidam Poker, unknown SRU Game (JPM?), Video Hustler (bootleg, set 1), Videotron Poker (cards selector, set 1), Vs. Tennis (Japan/USA, set 2), Yokai Douchuuki (Japan, old version (YD1)), Yokai Douchuuki (Japan, new version (YD2, Rev B)) and Zero Wing (2P set, Williams license). - MAME . Massive architectural change: There is no longer a single, global palette. Instead, palettes are now devices, and drivers and devices can have as many independent palettes as needed. This update required extensive changes to many parts of the core, UI, OSD layers, drivers and devices. . Likewise, there is no longer a single, global array of decoded graphics. Decoded graphics are now owned by devices using a new device interface, called, unsurprisingly, device_gfx_interface. A "gfxdecode" device (which does nothing but inherit this interface) provides the old, driver-level decoding functionality for drivers with video emulation not based on devices and for devices that haven't been updated to the new interface (which is currently most of them). Also, graphics layouts can now reference shared RAM regions by tag the same way as ROM regions, eliminating the need to set up RAM-based graphics manually (note that drivers/devices are still responsible for marking gfx elements dirty when the RAM they are decoded from is written to). . Huge effort has been done in order to modernize core and drivers, almost every file has been touched. . GFX device . Moved drawgfx functions to gfx_element . Created gfxdecode_device instead of using machine fixed gfxdecode. Updated all devices and drivers for using it. Note that it is made to work same as before, in some cases it can be more logic to move gfxdevice into subdevice itself then to keep it in main driver. . Fixed crash in drivers with NULL gfxdecode entries . Moved optional_device to specific drivers state classes . Fixed vector rendering (emu\rendersw.c) . Merged memarray improvements from palette branch into trunk (emu\memarray.c). Make memarray word/dword/qword writers take a mem_mask, and update the tilemap device to use them. . Fixed gfxdecode_device crash/regression (bfm_sc1.c, bfm_sc2.c, bmcpokr.c, dfruit.c, koftball.c, lastbank.c, m10.c, namcoic.c, namcos2.c, taito_b.c, tceptor.c) . Moved optional_device m_screen and optional_device m_palette out of driver . Video attributes are now per screen. Removed some unused junk (emu\tilemap.c). . The UI graphics viewer can now display multiple palettes and multiple gfx decoders in games that have them (ui\viewgfx.c) . You now specify a gfxdecode device once when you create a tilemap, rather than each time in the tile info callback. Updated all drivers accordingly. . gfx_elements now have a pointer to a palette_device (which is not actually initialized or used yet), and no longer have an unneeded pointer to the running_machine. Removed some gfx_element getter methods described in comments (by Aaron?) as 'a bit gross', and fixed the tiny handful of drivers that were using them. . Removed some of machine().first_screen() users . gfxdecode devices must now be assigned a palette in MCFG. Added palette devices to several MESS drivers and devices to comply with this requirement. This palette is assigned as a default to the gfx_elements created by the device (but still not used for drawing yet, except in the UI graphics viewer). Tilemaps now have a pointer to a palette device and use that palette for rgb32 drawing, rather than the palette of the screen or bitmap they are drawing to (since rgb32 screens don't have palettes now). When a tilemap is created, it takes its palette from the gfxdecode device it was created with, but you can change a tilemap's palette device with set_palette() at any time (doing this does not mark the tilemap dirty, since all tilemaps use indexed bitmaps internally). . There is also machine().primary_screen that we should replace with m_screen, and most is in devices (drivers\turrett.c and hng64.c). Changed primary_screen -> first_screen(). . Added device_start dependency on gfxdecode to all devices that create tilemaps . Made gfx_element::decode() private; fixed drivers that were calling it directly. . Clean out dead (emu\render.c), broken code accidentally revived by palette rewrite. Allocate brightness/contrast/gamma-adjusted palettes on first use, since we can't allocate them at startup anymore due to init order issues. . Refactor UI graphics viewer to handle 'empty' gfx decoders . gfx_elements now have a xor mask that is applied to each source bit offset when decoding. This can be used to deal with endianness when decoding gfx from RAM or from program ROMs, or to reverse the bit order sense when this is useful (e.g. pgm.c). This is test/checkpoint right now, final goal is to automatically determine the appropriate xor at startup when the gfxdecode info is processed (e.g. based on the width and endianness of the ROM region). . Disabled some Visual Studio analysis warnings / fixed some obvious errors based on analysis output (-video gdi works again) . New device_gfx_interface: Moved graphics decoding to a new device interface class: device_gfx_interface. The gfxdecode device is now a device that simply inherits this interface and does nothing else. Devices that draw tilemaps or sprites using gfx_elements should in time be updated to use this interface rather than connect to a machine-global gfxdecode device. Updated toaplan_scu.c as an example (also fixed off-by-one sprite alignment in twincobr and rallybik while I was at it). gfx_elements are normally created in interface_post_start(), making it possible to dynamically create or modify the graphics decoding info during device_start() if you need to. On the other hand, if you need the gfx_elements during device_start(), you can directly call decode_gfx() to create them early. This interface also provides a standard and init-order-safe way to connect to a palette device (similarly to how device_video_interface helps devices connect to a screen), so it's handy for any device that does palettized drawing even if it doesn't use gfx_elements. Updated k053250.c as an example of this usage. gfxdecode info entries can now reference shared RAM regions by tag as well as ROM regions, automatically handle endianness, and have some other new capabilities. Updated nemesis.c and pgm.c to showcase the new features. Removed validate_display() (it was just a commented out stub already) since its only function, checking that drivers don't have an ind16 screen without a palette, is now done by screen_device::device_validity_check(). Updated obsolete comments about GFXLAYOUT_RAW (cps1.c hasn't used raw gfx for years, and "to save memory" is no longer a good reason to use it). Use owner()->subdevice instead of siblingdevice() like devcb2 does. . Palette . Fixed F4 graphics viewer fails to show tilemaps in games that use a colortable (emu\emupal.c) (ID 05440) . Converted palette_t and palette_client to classes. General palette.c cleanup. . Changed palette_t allocation so that it uses matching new/delete operators. . Switched rgb_t to a class, replacing macros with methods. Mappings are as follows: MAKE_RGB(r,g,b) == rgb_t(r,g,b), MAKE_ARGB(a,r,g,b) == rgb_t(a,r,g,b), RGB_ALPHA(data) == data.a(), RGB_RED(data) == data.r(), RGB_GREEN(data) == data.g(), RGB_BLUE(data) == data.b(), RGB_BLACK == rgb_t::black and RGB_WHITE == rgb_t::white. Implicit conversions to/from UINT32 are built in as well as simple addition, subtraction, and scaling (with clamping). As a result of being a class, some stricter typing was needed in a few places but overall not too much. . Palette is now device (huge update) . Fixed uninitialized variables (emu\emupal.c) . Fixed indirect colors to actually work . psikyo4.c: Seems weird passing a palette to gfx->transpen for indexed modes when the screen has a palette. . Move the palette into the screen (video\psx.c) . Crash fixes for MAME . The multi-screen Taito games now use multiple palettes (ninjaw.c and warriorb.c) . Fixed and cleanup Toaplan palette handling . Fixed split palette RAM (emu\emupal.c) . Support palette RAM formats that are byteswapped relative to CPU endianness . Converted aliens.c, lethal.c, parodius.c and simpsons.c to bankdev . Set missing endianness to match those before change . Allow specifying PALETTE_INDIRECT_ENTRIES to preallocate indirection tables. When this is done, the indirection tables are saved in save states and pre-initialized. At the moment it is not a requirement to do so, but will provide closer to previous behaviors for games that need it. . Fixed ambiguous and confusing use of "entry" in palette device member names related to indirection. Array m_indirect_entry is now m_indirect_pens. Getter indirect_entries() now returns the number of indirect colors, which is more useful than the number of indirect pens (the latter is always either zero or equal to the palette size, depending on whether indirection is being used at all). Fixed debug assert: rgb_t isn't POD according to GCC 4.8, so we can't use resize_and_clear. Use append() instead to dynamically expand m_indirect_colors. This change also ensures that indirect_entries() returns the actual number of indirect colors, not rounded up to the next multiple of 256. Thanks to these changes, the OSD palette viewer now displays the indirect colors correctly once again. Added MCFG_PALETTE_INDIRECT_ENTRIES to all games using indirection in seta.c. This change should fix all color regressions in that driver (emu\emupal.c). . In case there is driver init available, we update palettes after it (emu\emupal.c) . Placed hack in driver_init hacks (emu\driver.c, drivers\calomega.c, dec8.c, dkong.c, goldnpkr.c, kingobox.c, m58.c and trackfld.c) . Fixed decoding for PALETTE_FORMAT_BBGGRRII. This fixes drivers in xxmissio, superqix and nova2001. . Enable saving dynamic_arrays of all fundamental types. Also fixed emupal to save the indirection arrays properly when indirect color count is provided up front. . All MAME and MESS drivers using indirect colors now explicitly declare them in MACHINE_CONFIG. Declaring indirect colors in MCFG is now mandatory. Removed dynamic creation and resizing of indirection tables (emu\emupal.c, drivers\cop01.c, gberet.c, video\taito_b.c and toobin.c). . Moved optional_device m_screen and optional_device m_palette out of driver. . RGBX for PsikyoSH driver. Removed some redundant in-driver palette handlers (dreamwld.c, feversoc.c, missb2.c and ultrsprt.c). Modernize/cleanup some older palette handlers (airbustr.c, astrcorp.c, bnstars.c, cischeat.c, fresh.c, fuukifg3.c, gstream.c, lemmings.c, limenko.c, powerins.c, rabbit.c, srmp5.c, sslam.c, tmmjprd.c, vamphalf.c and vegaeo.c). Virtual void palette_init() doesnt exist anymore (cswat.c). . MCFG_DEVICE_REMOVE("palette") replaced with proper MCFG_PALETTE_MODIFY . Eliminate the need for a dummy 1:1 lookup table when drawing to ind16 bitmaps (emu\drawgfx.c) . The UI graphics viewer can now display multiple palettes and multiple gfx decoders in games that have them (ui\viewgfx.c) . Removed pseudo-palettes from video\generic.c. All drivers that were using them now have an actual palette. . Made palette settings for screen explicit and mandatory for ind16 mode . gfxdecode devices must now be assigned a palette in MCFG. Added palette devices to several MESS drivers and devices to comply with this requirement. This palette is assigned as a default to the gfx_elements created by the device (but still not used for drawing yet, except in the UI graphics viewer). Tilemaps now have a pointer to a palette device and use that palette for rgb32 drawing, rather than the palette of the screen or bitmap they are drawing to (since rgb32 screens don't have palettes now). When a tilemap is created, it takes its palette from the gfxdecode device it was created with, but you can change a tilemap's palette device with set_palette() at any time (doing this does not mark the tilemap dirty, since all tilemaps use indexed bitmaps internally). . Fixed all bitmap.palette() users to use m_palette instead . Removed palette_device parameter from gfx draw methods. All draw methods now use m_palette . User Interface (UI) . ui_menu-handle_events check was the wrong way around, causing another event to be popped after a stop request. . More UI changes (commenting, bool etc) and game selector refactoring (ui\selgame.c). Cleanups of emu\ui.c/h, video.c/h, filemngr.c and tapectrl.c/h. Refactoring and cleanup of tapectrl.c/h and bbcontrl.c/h and created base class. Move C++-ifications. Cleanups of ui\viewgfx.c and some minor refactorings. Cleanups to the file selector menus (ui\filesel.c). Changed to follow MAME OOP conventions; we now have a ui_manager class. Made handlers static methods (ui\ui.c). Const correctness (ui\ui.c). Miscellaneous cleanups (ui\menu.c), also added some accessors. Minor refactorings (ui\ui.c). Fixed MAME debug compile (video\ssv.c; #include "ui.h"). . Added generic barcode reader emulation: The code accepts sequences of digits in UPC-A, EAN-13 and EAN-8 format, stores them in both byte format and in pixel format; it is up to the driver to implement the correct transfer protocol. Added UI menu to enter barcodes via keyboard. It only gets activated if the running machine has a barcode device. The latter change was coordinated with Nathan, so it shall not create problems with his UI reorganization. Added emulation of the barcode reader for (MESS nes_bandai) Datach Joint ROM System unit, making playable most games using it. . Factored out quit/confirmquit logic into ui_manager::request_quit() . Adding minimum width/height options; defaulting to '0' so there is no change in behavior (the menubar branch will have different defaults) (emu\emuopts.c and render.c). . Factored ui_menu_control_device_image into ui\imgcntrl.c . Flipscreen . Stop the flipping insanity. Tilemap flipping is now calculated relative to the center of the visible area rather than to the total screen size, and the generic flip screen functions no longer reconfigure the actual screen. These changes ensure that in most cases flipping should Just Work for drivers that use MCFG_RAW_PARAMs, games that have a programmable CRTC, and games that have raster effects, and should fix many longstanding flip/cocktail-related regressions. Unfortunately, it also means that all the thankless work that Osso and hap have been doing over the last few months fixing flipscreen regressions will have to be reverted now. I've also undoubtedly caused new regressions in drivers that handle flipscreen in unusual ways. But now we can share video device implementations between drivers that have been updated to RAW_PARAMs and drivers that haven't without kludges all over the place. And now I can hook up the programmable CRTC in toaplan1.c without abandoning all hope of flipscreen ever working again in that driver. Added savestate registration for the generic soundlatches, which seemed like a good idea. Any particular reason why these weren't being saved? . Reverted Technos flipscreen adjustments since it's not needed anymore: Fixed down/right offset in ddragon3.c with flipscreen on (ID 04916). Fixed sprites right offset in V'ball (ID 04986), WWF Superstars (ID 04983) (ID 04984) and Xain'd Sleena (ID 04982) with flipscreen on. Fixed offset right graphics in ddragon.c (ID 04914) with flipscreen on. Fixed toaplan2.c sprites and text offset up offscreen while flipscreen is on (ID 04993). . Fixed severe right and up screen offset with overscroll in Hexion with flipscreen on (ID 04934) . Fixed flipscreen after core changes (bagman.c, baraduke.c, bking.c, bublbobl.c, chance32.c, dkong.c, docastle.c, galaga.c, galaxian.c, gottlieb.c, kyugo.c, madalien.c, m10.c, mappy.c, mario.c, namcos1.c, namcos86.c, pacland.c, pacman.c, rallyx.c, taito_b.c, toypop.c, twincobr.c, zaxxon.c and zodiack.c) . Partially fixed flipscreen in Act Fancer driver. Screen flips now and seems to work fine in Act-Fancer, but Trio The Punch background doesn't scroll. . Fixed flipscreen in butasan (ID 04898) . Fixed sprites right offset with flipscreen on in chinagat (ID 04906) . Added a workaround to fixed flipscreen in dec0.c (ID 04797) and dec8.c (ID 04724), until all drivers are updated to use RAW_PARAMS. Screen flips now with background offset in DEC8 as in DEC0, these are caused by the addition of the SCREEN_RAW_PARAMS which hasn't been accounted in the decbac device flip routines. All drivers using this device must be updated to SCREEN_RAW_PARAMS or a workaround must be added in the device emulation. . Fixed Toaplan1 flipscreen. This fixes most/all background and text not visible during flipscreen (ID 04992). . Moved legacy calls that left into one section, and commented not used DEVCB calls since we are moving towards DEVCB2 (emu\devcb.h). No handler usage is possible in DEVCB so removing not used code. . Changed how NULL callbacks are specified on win_draw_callbacks (windows\drawd3d.c, drawdd.c, drawgdi.c and drawnone.c) . Fixed the SSE2 versions of the RGB utility functions (video\rgbsse.h, rgbutil.c and rgbvmx.h), which are currently only used by 64-bit builds. This fixes all screenshots from 64-bit builds have off-by-1 color errors (ID 05404) and incorrect alpha (green boxes around trees) in Mt. Shasta stage in California Speed. NamcoSystem22 doesn't mind if it's done this way (video\rgbgen.h, rgbsse.h, rgbutil.c and rgbvmx.h). . Updated docs\hlsl.txt to mirror fact that some commands are no longer valid . Reverted fix for pixel gaps between multi-screen games in HLSL mode, fixes the regression of missing graphics for vector games using HLSL. . Adding support for variable throttle (emu\video.c) . Introduced a toggle_record_movie() method . Timers now execute at the end of each timeslice instead of at the start, as they did prior to MAME 0.141u2 (emu\schedule.c). This fixes .INP playback fails (Out of Sync) when paused during recording (ID 04308). . Don't change the current bank on reset, because another device might have already changed the bank when it was reset (machine\bankdev.c). . Added ability to add optional or required device/ioport/memory_region/... and similar device finders to any device, and also created ability to set tag inside static configuration of device so you can reference it in driver machine configuration. . Added device_output_interface and macros MCFG_OUTPUT_INDEX/MCFG_OUTPUT_NAME which can be used to specify which output in the layout a device should use (see Sea Battle and the DM9368 7 segment LED). . Let running_machine handle nvram save/load (emu\machine.c and emu\machine\generic.c) . Removed few legacy calls (machine\generic.c/h, audio\dcs.c and video\ygv608.c) . Removed ADDRESS_MAP_MODERN (sound\qs1000.c and taitotz.c) . Reduced tagmap lookups in dai3wksi.c, crshrace.c and namcos23.c . Getting rid of some references to legacy_cpu_device (video\epic12.c, drivers\chihiro.c and cv1k.c) . Fixed display of device tags in internal profiler (emu\diexec.c) . Replaced machine().firstcpu with m_maincpu (cpu\psx\rcnt.c, sound\disc_inp.c, drivers\chihiro.c. limenko.c. m90.c. midqslvr.c. peplus.c., policetr.c, seattle.c, skydiver.c, splus.c, sprint2.c, machine\balsente.c, galaxold.c and video\system1.c) . Replaced some calls to machine().firstcpu->pcbase() with machine().describe_context() (machine\mc6843.c, mc6846.c, mc6854.c and mos6530.c) . Removed some auto_mallocs in favor of dynamic_arrays. Added option to clear dynamic_arrays; on GCC this should assert if not done on POD (which is unsafe to memset). Another round of auto_alloc_array conversions. Some minor enhancements to dynamic_array, including clearing to specific values and expanding and clearing newly allocated values . Moved core template container classes up from emutempl.h to coretmpl.h: * These classes now no longer take a resource_pool; everything is managed globally -- this means that objects added to lists must be allocated with global_alloc. * Added new auto_pointer<> template which wraps a pointer and auto-frees it upon destruction; it also defaults to NULL so it doesn't need to be explicitly initialized. * Moved tagged_list template to tagmap.h. Redo of the low-level memory tracking system: * Moved low-level tracking out of emu\emualloc into lib\util\corealloc so it can be shared among all components and used by core libraries. * Global_alloc and friends no longer use a resource pool to track allocations; turns out this was a wholly redundant system that wasted a lot of memory. * Removed global_resource_pool entirely. * Added global_free_array to delete arrays allocated with global_alloc_array. * Added tracking of object versus array allocation; we will now error if you use global_free on an array, or global_free_array on an object. Added new utility helper const_string_pool which can be used to efficiently accumulate strings that are not intended to be modified. Used by updated makelist and software list code. Updated png2bdc and makelist tools to not leak memory and use more modern techniques (no more MAX_DRIVERS in makelist, for example). Deprecated auto_strdup and removed all uses by way of caller-managed astrings and the software list rewrite. Rewrote software list management: * Removed the notion of a software_list that is separate from a software_list_device; they are one and the same now. * Moved several functions into device_image_interface since they really didn't belong in the core software list class. * Lots of simplification as a result of the above changes. Additional notes: Moved definition of FPTR to osdcomm.h. Some changes happened in the OSD code to fix issues, especially regarding freeing arrays. SDL folks may need to fix up some of these. . Misc cleanups (audio\scramble.c, drivers\adp.c, amspdwy.c, aristmk4.c, atarisy1.c, cdi.c, fcrash.c, gaplus.c, metro.c, model3.c, naomi.c, nbmj8891.c, qix.c, scobra.c, scramble.c, vamphalf.c, includes\amspdwy.h, atarisy1.h, cps1.h, metro.h, scramble.h and machine\cdi070.c/h) . READ/WRITE*_HANDLER to READ/WRITE*_MEMBER where it was wrongly placed . Move destructor definitions out of header files included by emu.h; clean some obsolete junk out of machine.h. . Fixed loading of cached BDF fonts (emu\rendfont.c) . Fixed divide by zero if the clock is changed to 0 at run time (emu\device.c; we already cope with it being 0 at startup) . Added asserts for known index out-of-bounds accesses (drivers\shanghai.c, drivers\maygay1b.c, drivers\wpc_dot.c, machine\68307tmu.c, video\atarimo.c, video\hd61830.c, video\namcona1.c) . Fixed NVRAM save location by setting proper name (emu\diimage.c) . Added support to delegates with up to 8 params (emu\delegate.h) . Enable all cpu cores in MAME (SCORE and 8X300 CPU) . Fixed MAME.lst issues (ID 05427). Lopsided centiped.c, psikyo4.c and seta2.c gamelists. . Fixed -listxml DTD. Removed unselectable slot options (SLOT_INTERFACE_INTERNAL) from the -listxml output. . Adjustment to -listdevices output to allow for more depth and better separation between device name and description in extreme cases (emu\clifront.c) . Fixed better ui\devctrl.h . Some changes/corrections to device descriptions - SDLMAME . Fixed SDL build (sdl\sdl.mak and texsrc.h) and SDL 2.0 build (sdl\blit13.h). Temporarily restore compatibility with Qt versions below 4.7 (sdl\debugqtview.c) . Fixed relative mouse motion. This makes Missile Attack playable again with my Logitech marble trackball (sdl\window.c). . Fix for SDL compile (sdl\drawsdl.c, video.c and window.c) . Fixed bug in default font handling for OSX (sdl\sdlmain.c). Cleaned up some warnings (sdl\sdlmain.c) . Removed obsolete include and correct SDLMAME_ARCH quoting in sdl.mak . Fix for stream_buffer free (sdl\sound.c) . Removed "totalColors" hack, now only RGB32 is sent to the GPU. There's much, much more cleanup to be done now, but this serves as a functional baseline. . Next SDL cleanup, aligned texture conversion with current Windows/D3D code, and fixed overzealous GL texture caching. This fixes brightness/gamma/contrast on RGB32 format games, which has been broken since 2008 and breaks prescale. - MESS . Software list UI cleanups (ui\swlist.c) . Fixed when launching softlist items without the media switch, MESS ignores hashpath option from mess.ini (emu\clifront.c and mame.c) (ID 05443). . Atmel 8-bit AVR . AVR8 improvements: Added ELPM instructions. Added fuse bits macros. Added reset logic to decide initial program counter based on fuse bits configuration. Added initial support for ATMEGA1280 and ATMEGA2560. Use register names in the disassembly of IN and OUT instructions. . AVR8 CPU changes: Timers WIP. Added TIMSK* reads - Refactor timer_tick calls. Removed all redundant register init statements. We simply set all 0x200 registers to zero. Debugging timers. Better syntax for disassembly of RJMP destination address. Use register names in disasm of CBI, SBI, SBIC, SBIS instructions. Use register bit names in disasm of instructions SBI, SBIS, SBIC and CBI. WIP on avr8 EEPROM read/write support. . Turn off spam while running Craft . UNSP CPU: Modernized cpu core . Saturn CPU: Fixed core. This fixes debug shows corrupt graphics in (MESS) HP49G when compared to regular compile (ID 05398). . SSP1601 CPU: Modernized cpu core . SC61860 CPU: Modernized cpu core . Signetics 8X300 CPU: Modernized cpu core . SuperFX CPU: Modernized cpu core . TMS99xx CPUs: Replacing legacy implementations in TMS99xx. Removed legacy code. . MIDI sound: Call set_data_frame() before stc_rcv_rate() in imagedev\midiin.c and midiout.c, as since r26274 there is random behaviour if you don't. Separated MIDI devices. Fixed MIDI output (bus\midi\midi.c). Removed local lists of MIDI devices in (MESS) drivers as they are currently all the same. . Apple Sound Chip: Fixed array out of bounds access . 8259 PIC: Cleaned up Apollo PIC8259 usage . CDP1861/2 video: Cleaned up DEVCB2 . CDP1871 Keyboard Encoder: Converted to DEVCB2 and cleanup . COM8116: Standardised COM8116 DEVCB2 callbacks . CRT9021/9212: Converted devices to DEVCB2 . DL1416: Converted device to DEVCB2 . DS75161A: Converted device to DEVCB2 . HD44352: Converted device to DEVCB2 . HD63450 DMA Controller: Modernized device and converted to DEVCB2. Don't set timer when transfer expects only drqs. . I8212 I/O: Converted to DEVCB2 . I8214 Interrupt Controller: Converted to DEVCB2 . I8275x video: DEVCB2 and driver cleanup. Converted to use delegates. . I8355: Converted to DEVCB2 . I80130: Fixed DEVCB2 macros (machine\i80130.h) . MC2661 Com Interface: Converted to DEVCB2 . MC6843 FDC: Modernized device. Converted to DEVCB2 . MC6847 video: Fixed text display with external rom. Fixes (MESS) spc1000 and phc25. HSync and fsync are part of MC6847 so DEVCB2 conversion was needed there not in gime, this fixes (MESS) coco3 issue. . MC6852 Serial Data Adapter: Converted to DEVCB2 + diserial. Fixed state saving. . MC6846 I/O: Converted to DEVCB2 . MM58167 RTC: Preliminary support for National Semiconductor MM58167 real-time clock/calendar . MM74C922 Key Encoder: Converted to DEVCB2 . MOS6530 RIOT: Modernized device . MOS6581 sound: Cleaned up DEVCB2 usage . MSM5832 RTC: Fixed array out of bounds access . MSM58321 RTC: Converted MSM58321 to DEVCB2, uses level logic rather than edge detection for strobes (as per datasheet), added NVRAM interface as there are some configuration bits to save, added support for 12 and 24 hour. It defaults to 12 hour, but you can configure it in the driver to default to 24H. You can configure what year 0 is in the driver, which is used when setting the date at startup. Added preliminary stop and reset to MSM58321. . NSC810 RIOT: Added basic implementation of the NSC810 RAM-I/O-Timer device, and plugged it into the (MESS) Husky Hunter 2 driver. Fixed I/O port writing, fixing the keyboard on the Hunter 2. . RP5C01/15 RTC: Converted to DEVCB2. Added missing RP5C01 ram read and simplify masks. . RS232: Changed parity & stop bits to an enum (you can now pass in 1.5). I've updated the uarts that were testing for 1.5 stop bits to pass that in, but there are probably others & 1.5 stop bits is converted to 2 by diserial. Replaced synchronous flag with start bit count, as some uarts can use a start bit in synchronous mode & that whether there is a start bit is all the flag is currently controlling. Updated rs232 terminal to allow startbits, stop bits 1.5 to be specified (although that is currently not supported by diserial) and individual transmit and receive baud rates. Hooked up dtr/rts/rxc to serial port & introduced the etc pin to rs232 (pin 24 Transmitter Signal Element Timing/External Transmitter Clock). Added RS232 loopback. . TMS5501 I/O: Rewrote TMS5501 emulation to use DEVCB2 and diserial. Updated (MESS) DAI Personal Computer to use new TMS5501. . TMS9901 Interface: DEVCB2 migration . upd7002 ADC: Modernized device . uPD7220: Fixed PC-9801 Quarth and Xevious video paging. Pitch reversed, Dragon Buster contradicts with it. Converted uPD7220 to DEVCB2 and use delegates. . Z8536 Timer: Converted to DEVCB2 . Cassette: Sanyo PHC-25 can load .phc cassettes images. Added back support for .apt cassettes to APF Imagination Machine. Added support for CAS and CPF cassettes to APF. Added TAP cassette format to Samsung SPC-1000 and Exidy Sorcerer. Added support for TAP and BEE formats to Applied Microbee (used in ubee512 emulator). Added partial support for SVT format to SOL-20 (used in Solace emulator). Fix for tape control and bitbanger control in UI (ui\devctrl.h). . Floppy Disk: Fixed the FM sync detection (machine\wd_fdc.c). Prevent clock bit to be deleted after CRC in FM. Fixed sector extract for FM recording (formats\flopimg.c). Allow to overwrite find_size and customize offset computation (formats\wd177x_dsk.c). Fixed bug when inserting images after starting the floppy motor (imagedev\floppy.c). Added EPSON drives. Added epson smd-165, used in the pf10. Added preliminary support for the 8-N-1 serial encoding scheme used on Compucolor II floppies (formats\flopimg.c). Refactored the Commodore 1541/1551/1571/2031 disk drives to use the modern floppy system. Refactored the Commodore 2040/3040/4040 disk drives to use the modern floppy system. Fixed C2040 READY signal. Floppy subsystem documentation (incomplete; docs/floppy.txt). Formats detected with size only should not have a confidence higher than 50 (formats\ti99_dsk.c). Minor changes to tifdc; added 360K MFM format to ti99_dsk. Added "read_only" feature to the software list to denote write protected images (emu\diimage.c). Bounty Bob Strikes Back! (C64) will not load if disk is not write protected. Fixed software list regression. Added bit cell size detection on save (formats\g64_dsk.c). Added the Motorola MCS3201 (machine\upd765.c). PC: Added support for NASLite 1.72MB disk images. PC: Added support for Microsoft DMF 1.68MB disk images. Fixed write over the index pulse and flux change lookup before it. Fixed memory leak (formats\ccvf_dsk.c). Added trace switch to control log output (imagedev\floppy.c). Moved sbyte_mfm_r out of private area to make it accessible to format implementations (formats\flopimg.c). Fixed gap2 creation during write_sector and added debugging output (machine\wd_fdc.c). TI99 Floppy modernization. Correct Applix 1616 file-ext of disks (formats\applix_dsk.c). Added ATTR_DEPRECATED to machine\wd17xx.h. Legacy wd17xx is now also a modern device. Refactored machine\wd_fdc.c to use DEVCB2 callbacks. Refactored upd765 to use devcb2 callbacks. Converted FM-Towns to use wd_fdc and modern floppy drive implementation. Modernized access for legacy floppy, quite straight forward thing. Fixed initialization of legacy floppy (imagedev\flopdrv.c). . Harddrive: Simplified imagedev\harddriv.c and removed some legacy leftovers . PC hardware: Fixed fatal exception in ec1841 and ec1845 (machine\genpc.c) (ID 05436). PC/XT/AT: Added basic implementation of the Programmers Development System ISA card. The PDS editor software requires the hardware present to start up. Some core work will need to be done to get any communications working. Removed a pit trampoline (machine\isa_ibm_mfc.c). Splitted Tandy 1000 and PCjr from pc.c. . NES: Hacked around the limitations of our PPU code (video\ppu2c0x.c), so to support the different CHR registers. Improved PRG-RAM handling. First attempt to added split screen mode, still broken. The hack only deals with the way MMC-5 monitors PPU activity, not with the actual effect. When i get to the point of completing my not-yet-abandoned PPU rewrite, the new calls in ppu2c0x.h will go away. SNES and NES slot devices moved into bus folder. . Centronics WIP using write lines and DEVCB2. Added an output latch and input buffer device to allow configuration in MCFG. Renamed centronics device "printer" to "image". FM-7 parallel port joystick works again. Added support for using PC LPT control lines as inputs (not tested). c64 geocable now just passes individual lines through, changed the strobe line to what is documented online (not tested). Converted MSX & exidy sorcerer parallel port DAC to use covox device instead of using a configuration switch (not tested). Sorcerer parallel port is more like the commodore user port, so should be converted to it's own slot where one option is a centronics card. Preliminary Centronics hookup to Canon Cat. - JSMESS . Disable startup screens (the method we were previously using to skip them had unwanted side-effects) (emu\ui.c) . Added a notification when the emulation begins (emu\machine.c) . Use emscripten_get_now() instead of gettimeofday() . Rearrange JSMESS code a bit . Allow JSMESS to compile with -Werror - Compiling . Added a "-u" (for unix) flag to srcclean to produce unix-style endings. . Updated srcclean source following smf comments. Added a dry-run option (-d). . Fixed GCC 4.1.2 compiling (drivers\pong.c, machine\netlist.c) . Added support to compile windows builds with GCC 4.8.2 x64 only produce working code (windows\windows.mak). . Fixed compilation with older Clang versions (makefile). Always enable SYMBOLS in case of SANITIZE (makefile). Suppress alignment errors with SANITIZE=undefined for now and disabled more checks with SANITIZE=undefined for now (makefile). Do not optimize SANITIZE builds by default. . Fixed GCC 4.8 compile (emu\memory.c) . Clang 3.4 fixes for MAME, MESS and tools. Printf fixes for MAME and ATTR_PRINTF review for MESS. . Fixed usage of uninitialized member (cpu\tlcs900\tlcs900.c, cpu\tms9900\tms9900.c, tms9995.c, imagedev\cassette.c, machine\decocass_tape.c, msm58321.c, southbridge.c, tms9902.c, sound\k056800.c and ics2115.c) . Moved compiler-specific warning generation to shared files . Added TODOs about potential overflows in core_i64_hex_format() and core_i64_oct_format() (util\corestr.c) . Added an osd_truncate call to truncate files (osd\osdcore.h, sdl\sdlfile.c and osd/windows/winfile.c) . Changed global_free() to global_free_array() (cpu\z8000\z8000tbl.c, sdl\drawsdl.c, sound\discrete.h and sound\spu.c) . Replaced some malloc/free usage with global_alloc_array/global_free_array. Converted some global_alloc_array() usage to dynamic_array/dynamic_buffer. Converted a auto_alloc_array()/auto_free() usage to dynamic_buffer. Converted some malloc()/free() usage to dynamic_array/dynamic_buffer. Some dynamic_buffer/dynamic_array usage cleanups. Just use core_strdup() in osd_get_full_path() in osd\osdmini\minifile.c. . Fixed compiling on unusual OS X configurations (osd\sdl\debugosx.m) . Added compile time check for 64-bit intel compiler to delegate.h (to prevent assert(sizeof(mfp) <= sizeof(m_rawdata)); ) . Some mismatched malloc/free usage with osd_* functions. Do not use osd_malloc/osd_free in non-OSD code. Removed mame_* aliases and just use core_* functions. osd_* -> global_* compilation fixes. . Use ARRAY_LENGTH instead of sizeof . Making code compiles and work on MinGW 32 bit on versions 4.7.x and 4.8.x . For now keep only bus part in separate library to make visual studio builds possible (makefile, emu\emu.mak). Include bus resolve in dynamic build procedure (build\makemak.c). . Reverted Visual Studio 2012 compiling fix (windows\drawd3d.c) to deal with "roundf" for pre-vs2013 compilers - which is no longer needed. Fixed #if checks for Visual Studio in osd/osdcomm.h. . Workaround for internal compiler error when using vs2013 64-bit (sound\c140.c) . Fixed VS2012 linking of makemak.exe and makelist.exe . Handle -msse in osd\windows\vconv.c and added a TODO about a changed behavior in VS2012 . Made MAME and MESS compile under VS2013, 32bit only for now. . Added some library dependencies for Visual Studio (castool\castool.mak, floptool\floptool.mak and tools.mak). Updated windows\vconv.c for no-sign-compare. . A few adjustments for Visual Studio analysis (windows\windows.mak) - Debugger . Fixed a bug preventing memory display of INT8/UINT8 in debugger (debug\dvmemory.c) . #if 0 around some debugging code (lib\util\coretmpl.h) . Changed DEBUG -> MAME_DEBUG (audio\snes_snd.c, machine\archimds.c, machine\fddebug.c and mess\machine\wswan.c) . Added DEBUG-only tagmap lookup counter . Added a few missing \n in logging / cleanups (emu\diimage.c, divideo.c, input.c, ioport.c, render.c, rendlay.c, sdl\netdev_pcap_osx.c and osd\windows\drawd3d.c) 0.152 - New games: Blastaball (Arcadia, V 2.1), Delta Command (Arcadia), Long Beach (Olympia / Seletron 1979), Pharaohs Match (Arcadia), Player's Edge Plus (IP0074) Joker Poker - French, Player's Edge Plus (IP0079) Standard Draw Poker - French, Player's Edge Plus (X000002P+XP000038) Standard Draw Poker, Player's Edge Plus (X000045P+XP000038) 10's or Better, Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000060P+XP000038) Standard Draw Poker, Player's Edge Plus (X000171P+XP000038) Joker Poker, Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000459P+XP000038) Joker Poker, Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots, Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots, Player's Edge Plus (X002043P+XP000038) Triple Bonus Poker, Player's Edge Plus (X002066P+XP000038) Double Double Bonus Poker, Player's Edge Plus (X002121P+XP000038) Standard Draw Poker, Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X002180P+XP000038) Double Bonus Poker, Player's Edge Plus (X002420P+XP000064) Deuces Wild Bonus Poker - French, Player's Edge Plus (XM00007P+XMP00006) Multi-Poker and Power Kick (Japan) - New Working games: The Gladiator, Puzzle Star (Sang Ho Soft), S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB) and Wave Shark - New Non-Working games: beatmania IIDX 5th style (GCA17 JAA), beatmania IIDX Substream (983 JAA), Submarine (Midway), Super Six Plus II English Mark Darts, Tokimeki Memorial Oshiete Your Heart (GQ673 JAA) and Touch de Uno! - New clones: 1942 (prototype), 4 En Raya (set 2), beatmania IIDX (863 JAB), beatmania IIDX 3rd style (GC992 JAC), beatmania IIDX 6th style (GCB4U JAB), Brick Zone (v1.1), Bucky O'Hare (ver EA), Cadash (World, prototype), Chase Bombers (Japan Prototype), Cobra Command (Data East LD, set 2), Commando (US set 2), Dancing Stage - Internet Ranking Ver (GC845 VER. EBA), Donkey Kong Junior (P kit, bootleg), Gallop Racer (English Ver 10.17.K), Invasion - The Abductors (version 3.0), Mambo A Go-Go e-Amusement (GQA40 VER. JRB), Player's Edge Plus (PP0002) Standard Draw Poker (set 1), Player's Edge Plus (PP0002) Standard Draw Poker (set 2), Player's Edge Plus (PP0045) 10's or Better, Player's Edge Plus (PP0046) 10's or Better, Player's Edge Plus (PP0055) Deuces Wild Poker (set 2), Player's Edge Plus (PP0171) Joker Poker, Player's Edge Plus (PP0417) Deuces Wild Poker (set 2), Player's Edge Plus (PP0455) Joker Poker', Player's Edge Plus (PP0458) Joker Poker, Player's Edge Plus (PP0536) Joker Poker, Player's Edge Plus (PP0726) Double Bonus Poker, Player's Edge Plus (X000002P+XP000109) Standard Draw Poker, Player's Edge Plus (X000459P+XP000155) Joker Poker, Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots, Player's Edge Plus (X002121P+XP000037) Standard Draw Poker, Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352), Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2426), Scramble (Recreativos Franco, Spanish bootleg), Spy Hunter (Spain, Recreativos Franco S.A. PCB), Street Fighter III: New Generation (Euro 970204), Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype), Syvalion (World, prototype), The First Funky Fighter (set 2), The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN), Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA), Total Vice (ver AAB), Touchmaster 4000 (v6.01 Minnesota), Touchmaster 4000 (v6.03 New Jersey), Touchmaster 5000 (v7.10 Minnesota), Touchmaster 7000 (v8.00 Minnesota), Touchmaster 7000 (v8.04 Minnesota), Touchmaster 7000 (v8.05 New Jersey), U.N. Defense Force: Earth Joker (Japan, prototype?), Who Dunit (version 9.0) and Wivern Wings and World Kicks (WK3 Ver. A) - Removed games: Player's Edge Plus (XMP00006+XM00001P) Multi-Poker, Player's Edge Plus (XMP00003+XM00002P) Multi-Poker and Player's Edge Plus (XMP00006+XM00003P) Multi-Poker - New drivers: arachnid.c, lbeach.c and mwsub.c - New devices: k573mcr, k573msu and k573npum - 8080/8080A/8085A CPUs: Get rid of family name in description string ('MCS-8x 808x' --> '808x') - I8x9x / MCS-96 CPUs: Misc fixes - M68000 CPU . Enhancements (cpu\m68000\m68k_in.c) . Added ability for externally-thrown bus errors to have proper details (cpu\m68000\m68000.h and m68kcpu.c) - MIPS CPUs: Made dismips build again, need to move functionality to UNIDASM (cpu\psx\dismips.c and dismips.mak) - PENTIUM CPUs . Added TZCNT instruction handling by having it fall back to use BSF, as it would on a CPU that doesn't support TZCNT (cpu\i386\i386ops.h and pentops.c). . Added the ability to read and write to the Pentium and P6 event/performance counter MSRs. Nothing is actually counted, though. . Added reading and writing of the time stamp counter MSR . Fixed P6 CMOVcc instructions, and added CMOV feature flag to Pentium Pro and Pentium II CPUs. . Added MMX feature flag to Pentium MMX (cpu\i386\i386.c and pentops.c) - SPC700 CPU: Fixed SNES: SPC-700 sets B flag when pushing PS register to the stack during execution of the BRK instruction (ID 05371). - SSP1601 and SCU DSP CPUs: Fixed entries - TMP68301 CPU . Fixed long standing regression bug with Real Break flipscreen (machine\tmp68301.c and drivers\realbrk.c) . Death to m68kfmly.c/.h, hooked parallel port to TMP68301 in Niyanpai driver (very preliminary). . Added TMP68301 pdir register - TMS57002 . Moved CA/ID post-increment outside of execution. Fixes case where dual instructions post-increment, also reduces number of generated instructions. . Fixed data ordering of external memory accesses . Don't generate redundant instructions for undefined rounding modes; remap them in decode. . Set XOA to 0 on reset . Use [READ|WRITE]LINE_MEMBER for I/O lines . Added PC0 line . Added registers to debugger state - TMS9900/TMS9980A CPUs: Improved TMS9900/TMS9980A debugging output and cycle fine-tuning - Z80 CPU . Removed logerror("z80daisy_call_ack_device: failed to find an device to ack!"). (MESS) Fixed fast controller Z80 daisy chain, formatting a disk works now except for a not ready status after the last track (bus\abcbus\lux21046.c), ("z80ctc_irq_ack: failed to find an interrupt to ack!") and ("z80ctc_irq_reti: failed to find an interrupt to clear IEO on!") and ("z80dart_irq_ack: failed to find an interrupt to ack!") and ("z80dart_irq_reti: failed to find an interrupt to clear IEO on!"). . Implemented Z80DMA Auto Restart . Replaced read rx callback in Z80DART (and clones) with a write handler, which allows multiple chips to be connected together without using glue methods. . Removed unused rxd callback from Z80STI - Discrete sound: No more dynamic allocations in static constructors in discrete audio - ES5505/6 sound: Modernized device - ES5510 sound: Cleaned up (MESS) driver esqkt.c and use real ES5510 device - Filtered 1-bit DAC: Added a simple DC blocker filter to the speaker toggle device (sound\speaker.c) - K005289 sound . Refactored and removed redundant state variables and unneccessary floating point math . Added savestate support - K054539 sound: Fixed input clock rate and implemented programmable timer based on hardware measurements - K056800 sound . Rewrote driver . Implemented as an 8-bit device . Fixed address mapping . Removed bogus timer interrupt . Fixed interrupt handling - MC6845 CRT: Fixed vertical resolution increase in drivers using the MC6845 device (ID 05296) - N2A03 / NES APU sound . Modernize nes_apu device. Needs merging with N2A03 cpu core. Fixed compiling problems (sound\nes_apu.c and nes_defs.h). . Fixed compile error (GCC 4.6) in nes_defs.h. - Sega Z80 Digital Sound Board: Removed YMZ770_TAG define - SN76477 sound: Modernized the SN76477 sound device (sound\sn76477.c, drivers\8080bw.c, astrof.c, crbaloon.c, dai3wksi.c, laserbat.c, rotaryf.c, route16.c, snk6502.c, spectra.c, toratora.c, audio\mw8080bw.c and n8080.c). - Taito Ensoniq ES5505-based sound: Updated taito_en to use the N68681 device - Yamaha YMZ770 sound . Fixed YMZ770 cur_reg being overwritten. This chip is write-only. . Document global regs . Fixed possible lockup. Added notes. . Stop channel decoder when stopping playback . Finish block before stopping channel playback - YMZ770 / MPEG sound . Return false on bad header . Moved the 0-size test - 6850 ACIA: Replaced read rx/cts/dcd callbacks in ACIA6850 write handlers, which allows multiple chips to be connected together without using glue methods. Changed write_rx to update the correct variable. - 7200 FIFO: Flag pins are inverted (machine\7200fifo.c; seibuspi.c and zn.c) - 8250 UART: Added timer callbacks to terminal and INS8250 - 8251 UART: Replaced read rx/cts/dcd callbacks in I8251 with write handlers, which allows multiple chips to be connected together without using glue methods. - ATAPI . Set the error bit in the IDE status register if the command causes a check condition . Fixed enum, didn't mean to click ok on commit earlier as I was still clean building (machine\atapihle.c). - I2C bus memory: Finished modernising - COPX: Converted mame\machine\seicop.c to a device. Eventually it should be merged with emu\machine\seibu_cop. - Device image interfaces: Added load_software_region() function that loads a software list region into a shared_ptr (emu\diimage.c). Fix for MSVC "warning C4717: 'device_image_interface::fread' : recursive on all control paths, function will cause runtime stack overflow". - DS1204 . Created DS1204 device & switched Megatouch (meritm.c) to use it instead of it's own local version (driver could do with some more tidying up as not all games use a key but currently it is hooked up to all games). Default data comes from a region instead of coded in driver, commands & security match are now compared, data is clocked on the correct edge, key can be written to and is saved to NVRAM. . Improved logging . Hooked up DS1204 to Touchmaster driver, but haven't found what it checks for yet. . Changed PATCH_PROTECTION to 0 in tmaster.c and VERBOSE_LEVEL to 2 in ds1204.c then look for "-> command" in error.log to find the subsequent read from the dq pin for reading the identification and secure memory. For tm4k the first two bytes of the NVRAM need to be 0x00, 0xa0. From scratch you'll need to play a game before it will complain about the protection, but after that it will complain on every boot. It tries five different contents for the compare register at various points during the bootup, this may be for obfuscation as the real chip will return random results if the key is wrong. If the keys are available it might be easier to dump them than figure out exactly what it wants. - Flash ROM: Remodernised x76f041/x76f100 & ZS01 so that logging becomes easy again & uses READ_LINE_MEMBER/WRITE_LINE_MEMBER so the pins can be bound to directly. Hooked up x76f041 to the early beatmania IIDX games. They all pass the security check eventually but it takes a long time as it repeatedly reads the first byte, it's possible that the contents aren't correct as the game says the security is OK even when the data returned is not what it's checking for. - IDE . Added machine().describe_context() to debugging code (machine\ataintf.c) . Tweaks to the idehd timing, which are still based on complete fiction (machine\idehd.c) . Stops atari logo flickering in Area 51 (R3000) . Calculate seek time using tracks rather than sectors, assuming that reading any sector on the current track will already be in the drives cache. Zeros m_cur_lba when the drive is reset for consistency (running kinst in a debug build took 30 seconds to start) (machine\idehd.c). . Fix for divide by zero, if there is no CHD. - Programmable Logic Device (PLD) . Correct the output of the PAL20X4, PAL20X8, PAL20X10 to show the XOR on the relevant sum of products. . When viewing a device the size of the JED file is verified to match the size of the device. . Replaced hard-coded symbol strings with constants. . Started experimental work for supporting RICOH PAL's (currently ifdef'ed out). . Added support for viewing the following devices and the corresponding regression test data: PALCE16V8, PAL10P8, PAL12P6, PAL14P4, PAL16P2, PAL16P8, PAL16RP4, PAL16RP6, PAL16RP8, PAL6L16, PAL8L14, PAL12H10, PAL12L10, PAL14H8, PAL14L8, PAL16H6, PAL16L6, PAL18H4, PAL18L4, PAL20C1 and PAL20L2. - SCSI . Fixed hard disk images with 256-byte sectors (machine\t10sbc.c) . Added nscsi versions of the SCSI callback device and Xebec S1410. . Fixed D9060 format. Reads greater than one sector were broken when using bit banging (machine\scsihle.c). . Added SCSI status code & set it in all command handlers. It is sent over the bus when in status phase. In case of an error further information should be set in m_sense_key/m_sense_asc/m_sense_ascq & m_sense_information so that it can be returned by executing a request sense command (emu\bus\ieee488\d9060hd.c, machine\cdu76s.c, cr589.c, scsihle.c\h, t10mmc.c, t10sbc.c, t10spc.c, t10spc.h and mame\machine\gdrom.c). . Fixed compiling with MSVC and added enums for T10 commands. . Added a work round so that CR589 firmware updating works again, either from the separate CD's or as part of the game install (for example DDR MAX). - Serial device interface . Removed defines, cleanup clocks/timers and added sync support (emu\diserial.c) . Double half diserial cycle freq - Slots . Added a new macro MCFG_DEVICE_CARD_DEFAULT_BIOS, which can be used in the machine config to set the default BIOS for a slot card device. . Slot options can now be configured inline without creating an array. Legacy support for old configuration uses MCFG_FRAGMENT_ADD, which required changing so the current device could be updated by the fragment. . Converted cassette, pccard1 & pccard2 slots to use new MCFG macros (drivers\ksys573.c). . Uses device_mconfig_additions() to added ATA slots, which allows you to just add the device and configure it rather than using the MCFG_ATA_INTERFACE_ADD #define. . MCFG_MODIFY_DEVICE(DEVICE_SELF) is no longer required in machine configs used in a slot option . Removed MCFG_DEVICE_CONFIG_CLEAR as it's legacy but not used anymore . Removed support for static config from slots (emu\dislot.c and mconfig.c) and converted the two devices using it (MESS: at.c + bebox.c) to machine config fragments - TIA video: Added Atari 2600 NTSC palette notes - Timekeeper: Removed unused structure (machine\timekpr.h) - uPD4992 RTC: Added a core for uPD4992 RTC, used by Othello Derby and Power Kick. - V9938 video: Fixed crash in debug builds - Z80 DAISY: Removed logerror("z80daisy_call_ack_device: failed to find an device to ack!"). (MESS) Fixed fast controller Z80 daisy chain, formatting a disk works now except for a not ready status after the last track (bus\abcbus\lux21046.c). - Discrete Netlist . Moved 7402 and 7410 into separate files . Moved 7420 into its own header file, optimzed some memory ops. . Removed hardcoded maximum net size. Separated and documented a couple more devices out of net_lib.c. . Outputs now drive nets and inputs access nets. Moved more stuff to net_terminal. . Added some documentation to nl_base.h. Cleared namespace - all classes now have prefix netlist_. Fixed debug build. . Working voltage divider . Added capacitor. At 50kHz, calculating a resistor net and a cap doesn't hit performance. . Added large signal diode model (things like astable NAND Multivibrator) and fixed a number of bugs. Every object has a name. . Reworked object model a bit. There is a slight performance drop (7%). Memory allocation order seems to be an issue here. . Added pascal like strings (pstring) class. These use only size(void *) in objects. Uses reference counter to share identical string between various pstrings. In addition, fixed some bugs and added auto-sizing to netlist_list_t. There shouldn't be memory holes left now, apart from memory allocated in a static class factory. . Documented 7430 & 7486 . Fixed crash when using analog chips. Did some preparation work to generalize internal links. . Singled out and documented 7404 and 7474 . Introducing type safe parameters . Pretend accuracy by specifying tons of parameters for diode model of which only two are used. Speed comes at a price. Now, even a CVD (Constant voltage drop) diode model with series resistor can benefit from these parameters by using them to estimate a typical operating point and thus dynamic resistance when the model is setup. . Fixed design weakness. Subdevices now register their terminals. Devices can alias those terminals. Now, e.g. a 7400 gate many be grouped into a Quad NAND package. This also enables using internal resistors and capacitors. . Pong: Pure analog video mixing. Only in pongf currently. Once code stabilizes, the netlist parser will be updated as well. Code clean-up. . Implemented a generic NE555 model. Period accuracy for astable operation is within 2% of the TI datasheet for astable operation. Fixed an issue in the object model as well and made the code distinguish between a core terminal and analog terminals. . Logs now write to individual log files. Fixed windows build (netlist\pstring.c)(Windows std dev tools use GCC 4.6.3. This version seems to be to broken to deal with "new" in static initialization. GCC 4.6.4 compiles this on Linux without causing any issues). . Pong: Added new pong.netlist. Replaced first "macro" NE555N device in Pong with NE555 and connected components. Performance drop is within expectations. . Class factory is now initialized dynamically. Fixed a memory leak. . Documented 7493 . Added a simplified BJT Switch Model. This should be sufficient for audio purposes in >> 90% of all cases I have seen so far. The performance of the analog subsystem has quite some room for improvement. . Boils analog subsystem down to (G - D) * V = I with G being the conductance matrix, D a diagonal matrix with total conductance on the diagonal elements, V the net voltage vector and I the current vector. By using solely two terminal devices, we can simplify the whole calculation significantly. A BJT now is a four terminal device with two terminals being connected internally. The system is solved using an iterative approach: G * V - D * V = I, assuming V=Vn=Vo and Vn = D-1 * (I - G * Vo). The above was already used in the code. However, with a pure two terminal device approach going forward we can e.g. further optimize. G typically is a sparse matrix. . First steps at taking advantage of sparse matrix properties. The code now identifies net groups. A net group contains nets which depend on each other. Purely conductive nets can going forward be updated solely if one of the rail nets they are connected to changes. . Changed netlist_matrix_solver to be a class. Rewrote the "switch" BJT implementation. Minor bugfixes. . Added VCCS and VCVS components. Added over-relaxation on demand to the iterative solver. Added a slightly more complex opamp model example to Pong (commented out). . Logs on demand (NL_LOGS=EBUF.OP:4V; mame64 -np 4 pongf) . pongf now runs 4 analog NE555s and video mixing (performance down by 20% abs on my machine - 155% to 135%). Minor bugfixes. Pong still running, pongf still (though analog) still faster. . Fixed linking with visual studio (netlist\nl_base.c) and compiling (netlist\pstring.c). Reinstated functionality in pstring. This should now be compatible with MSVC. . Separated MAME specific code into netlist.h. Diode model now uses a fast exp function which is approx. 3x faster than build-in at the expense of reduced accuracy. We are emulating real device with tolerances, so this is not an issue. . Update the parser code. The "rom" netlist and preprocessor netlist are now aligned again. Got rid of fatalerror in netlist/* code. Implementing applications have to implement fatalerror in a derived class from netlist_base_t now. . Hopefully fixed "red lines". Improved 9316 code. General code maintenance. Started work on netlist audio device support. Improved netlist parser. . Don't process hsyncs while we are vsyncing (video\fixfreq.c). Fixes video jitter/jumps in Pong. . Pong update: Based on feedback from IRC hopefully fixed issues like "jumping". Adjusted VR1 and VR2 to 50%. Disabled all printf output. . Added save-state support to Pong. The state saving is now 80% generic. This still needs some polishing, but works. . Fix for MSVC, I provided the wrong version number to couriers (Visual Studio 2013 is 1800 & I believe that supports log1p but I haven't tested it yet) (netlist\devices\nld_twoterm.h). . Introduced more consistent and general state saving. Useful for regression tests going forward. - 2mindril.c, 40love.c and acefruit.c: Removed anonymous timers - arcadia.c . Added new BIOS sets (TenPlay 3.11 and 4.00) . Cleaned up decrypt and added the PAL dump in a little bit - astrocde.c: Moved gorf and wow sound handlers into the driver state - atarig42.c: Device-ified asic65.c. Changed M6502 CPU3 to CPU2. - atarisy2.c . In sprite_device (emu\sprite.h), when no shared memory region can be found don't save state the m_buffer member; assume the owner will take care of save stating the spriteram itself. This fixes all Atari System 2 sets have assert at initialization in debug build. . Fixed debug assert at initialization in all Atari System 2 sets (ID 05292) - capbowl.c: Implemented the watchdog correctly from a fuzzy auction photo of the schematics. Hooray for eBay/gregf! If anybody has the schematics in PDF form, I'd like a copy please. - cps1.c . Fixed kick inputs (LK MK FK) are not working in clones sf2m3 and sf2m8 (ID 05355) . Redumped CDU_22A.7F in clone Cadillacs and Dinosaurs (USA 930201) to match real PCB, verified on two different sources. . Added S222B.1A PAL to all Final Fight (Japan) clones . Dumped and added cp1b9ka.9k rom to Pang! 3 (Euro 950601) . Dumped and added iob2.11d rom to clones Street Fighter II: The World Warrior (World 910228) and (USA 910228). . Dumped and added s9263b.1a rom to Street Fighter II': Champion Edition (World 920513) and clones. . Dumped and added s9263b.1a rom to Street Fighter II': Hyper Fighting (World 921209) and clones - csplayh5.c: Fixed regression with driver and added notes. Fixed palettesize. - dec0.c: Save priority register (video\dec0.c) - djmain.c and moo.c: Fixed clock speed of K054539 sound - dkong.c: Lop sided gamelist as always - exidy440.c . Replaced prom dump for all games in driver located at 3K. It is unique to all the other proms and different in size. . Added additional rom dump from Who Dunit (version 9.0) boardset which as of yet does not have a known use. - galaxian.c . Updated some commented code for Parallel Turn . Zig Zag can swap ROMs 2 and 3 as a form of copy protection (note from galaxold driver) - galaxold.c . Rack + Roll only has 1 sound chip, not 3. Made a note that it has an AY-3-8910, but it looks like it's unused. . Replaced 3x SN76496 sound with SN76489A in Trivia Challenge - gticlub.c: Implemented sound interrupt timer - harddriv.c . Moved Hard Drivin' handlers in the driver state . Moved common_inits in the driver state . Device-ified asic65.c . Added timekeeper to Hard Drivin' driver, fixes RTC Day and Month error and fails to start (ID 05366). . Saves the Race Drivin' DSK ZRAM - firebeat.c: Redumped CD-ROMs in kbm3rd - ghosteo.c: Added preliminary sound by borrowing code from vegaeo.c. Added ability to enter test mode. - hng64.c . Cleanup HNG64 driver . Added basic 3D FIFO, understanding and hooked up FIFO irq processed to Hyper Neo Geo 64, meaning a far better 3D display in all games. . Added cheap hack for Buriki One coin insertion, game is somehow playable with many gfx bugs. . Added inputs for Roads Edge and Xtreme Rally - hornet.c: Implemented sound interrupt timer - jaguar.c: Tweaks to the idehd timing, which are still based on complete fiction (machine\idehd.c). Stops atari logo flickering in Area 51 (R3000). - konamigq.c . Hooked up K056800 device . Hooked up K054539 timer interrupt . Added TMS57002 DASP - konamigv.c . Slight update, further update expected once the games are running. . Redumped CD-ROM in hyperath, tmoshs and tmoshsp - konamigx.c . Hooked up K056800 device . Hooked up K054539 timer interrupt . Removed sound hacks . All DSP RAM tests now pass, Winning Spike sound now works. . Fixed TMS57002 CPU3 and the 2x K054539 clock speeds . Fixed M68EC020 CPU1 in dragoona. Changed M68EC020 CPU3 to CPU1 and fixed TMS57002 CPU3 and the 2x K054539 clock speeds in rungun2, rushhero, soccerss and vsnetscr. . Fixed ROM check errors in Twin Bee Yahhoo! service mode (ID 03497) . TMS57002 fixes and improvements . Moved CA/ID post-increment outside of execution. Fixes case where dual instructions post-increment, also reduces number of generated instructions. . Fixed data ordering of external memory accesses . Don't generate redundant instructions for undefined rounding modes; remap them in decode. . Set XOA to 0 on reset . Use [READ|WRITE]LINE_MEMBER for I/O lines . Added PC0 line . Added registers to debugger state - konamim2.c: Redumped CD-ROM in btltryst, evilngt and polystar. - konendev.c: Correct CPU type (PPC403) and added some hardware notes. Added YMZ280B (16934400 Hz) and left/right Speakers. Fixed visible area and VSync. - ksys573.c . Created a skeleton for the Konami 573 Multi Session Unit, renamed digital io board source file to match and moved pcb layout from driver. . Added skeleton for Konami 573 memory card reader and network PCB unit devices. . Added the SHA1 for System 573 700B01 now that we have a dump. It currently expects a different response from the H8 at bootup than the other BIOS versions, so the data is stored in a fake rom until it's HLE'd better of we get a dump of the H8 internal rom. . Redumped CD-ROM in bassangl, darkhleg, ddr2mla, ddr2ml, ddr2mc2, ddr3mk, ddr3ma, ddr3mj, ddr3mka, ddr3mp, ddr4mp, ddr4mps, ddr5m, ddrmax, ddrmax2, ddrs2kj, ddrsbm, dmx2majp, drmn7m, ddra, ddrjb, ddrj, gtrfrk7m, pnchmna, powyakex, salarymc, . . Mambo A Go-Go CD redump in raw mode and raw subcode . Changed 'Guitar Freaks 7th Mix' onwards to use a 32MB PCMCIA card . Updated Konami 80's ATAPI DMA kludge so that Guitar Freaks 7th Mix (and alot of others) load again . Marked clones dstagea and ddru CHDs as bad because they need redumping - m72.c: Updated some commented code - mazerbla.c (video\mb_vcu.c) . Extra space for I/O in VCU . Read-back for paletteram . Empty cycle, commented out. Fixed typo and MVSC. - meritm.c . Created DS1204 device & switched megatouch to use it instead of it's own local version (driver could do with some more tidying up as not all games use a key but currently it is hooked up to all games). Default data comes from a region instead of coded in driver, commands & security match are now compared, data is clocked on the correct edge, key can be written to and is saved to NVRAM. . Added ds1204 rom to megat2, megat3, megat4, megat5, megat6, pbss330, pbst30, pitbossm and pitbosssc. - micro3d.c: Replaced read rx callback in MC68901 with a write handler, which allows multiple chips to be connected together without using glue methods. Removed a load of unused code from MC68901, probably left over when it was converted to use diserial. - midvunit.c . Fixed polygon pixel color selection in driver . Fixed wrong colors (ID 05356) and missing selection indicator within service mode (ID 04947) in Off Road Challenge - midyunit.c: Fixed inputs and dipswitches for High Impact Football, Super High Impact and clones which were all imported from TROG and mostly incorrect. - moo.c: Use actual XTALs for clocks - mystwarr.c . Fixed K054539 input clock rate and implemented programmable timer based on hardware measurements . Hooked up K054539 timer interrupt in driver. Fixes music tempo in some games. Fixed clock speed of the 2x K054539 sound. . Fixed attract mode speech in Mystic Warriors (ID 02098) - naomi.c: Sanitize screen format in video\powervr2.c, fixes assert after OK (debug build) (ID 05349). - nemesis.c . Added PORT_TOGGLE, PORT_NAMEs and shifter layout to Konami GT . Refactored and removed redundant K005289 state variables and unneccessary floating point math, added savestate support. . Fixed K005289 sound clock speed in bubsys, gwarrior, konamigt nemesis and twinbee - neogeo.inc . NeoGeo driver cleanup. . Resurrect some old MVS multi-slot code, this is mostly functional but about 2 years old now, and badly needs some modernizations. It's a bit ugly in places because I've had to make sure the legacy methods work too, although in other places simply because it's old code I never quite got around to cleaning up. Basically the inits have been split into ones that need calling once on startup (decryptions etc.) and ones that need calling when a new slot is activated (custom banking / protection handlers): mame64 neogeo -cart1 kof98 -cart2 kof99 -cart3 kof2000 -cart4 kof2001 -cart5 kof2002 -cart6 kof2003 works, assuming you have the RAM. Certain combinations / orders don't work, maybe the real system is like that, maybe there are flaws in the implementation. Once loaded as multi-game the neogeo will run through the attracts of each game in order, if you insert a coin then you can select next / previous game with the '3' and '4' (which are mapped to those buttons on the system) just like real hardware. If you're low on memory try mame64 neogeo -cart1 lbowling -cart2 samsho -cart3 mutnat -cart4 pbobblen -cart5 neomrdo -cart6 turfmast instead. If you want an example of where it fails right now then put -cart1 roboarmy in slot 1 instead, it hangs after cycling through the games (or moving through them with 3) it's possible something isn't reset properly. This might become clearer as I clean things up a bit. I've verified eas and neocdz work as before. - niyanpai.c: Death to m68kfmly.c/.h, hooked parallel port to TMP68301 in Niyanpai driver (very preliminary). - nss.c . Updated BIOS rom locations and marked NSS v3 BIOS as possible hack. . Updated inst rom label for Super Mario World (Nintendo Super System) - peplus.c . Correct a couple of color CAP sizes. Added the CG graphics roms for Ace$ Bonus Poker. . Set rename and misc doc updates . Removed testing artifacts / errors. Minor doc update. . Added input toggle for "Card Cage" (peplus_schip) and other input types (peplus_poker). Needed for some games to initialize. . Fix for debug crash of all PEPlus sets . Added the "The Orleans" custom card graphics . Correct "U" location and added new gfx1 roms and prom to clone Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker (The Orleans). . Merged (XMP00003+XM00003P) and (XMP00024+XM00005P) to clone 'Player's Edge Plus (XM00003P+XMP00024) Multi-Poker' . Fixed prom size in peke1012, peps0014, peps0021, peps0042, peps0308, peps0615 and peps0716. . Added new gfx1 roms to pepp0542, pex2172p and pex2245p. . Added new prom cap2129.u50 to pepp0775, pex2172p and pex2245p. - peplus.c, drw80pkr.c, splus.c and videopkr.c: Changed International Gaming Technology --> International Game Technology - pgm.c . PGM cleanups (drivers\pgm.c, machine\igs025.c, pgmprot_igs025_igs012.c, pgmprot_igs025_igs022.c, pgmprot_igs025_igs028.c and gmprot_igs027a_type3.c) . Various PGM protection cleanups/fixes (orlegend, olds, svgpcb) . Shuffle Happy 6-in-1 gfx data around and added 'Region' configuration . Fixed ARM7 CPU3 clock speed in dmnfrnt, happy6, killbldp, svg, theglad . Document that Ketsui roms exist with different fill in the unused areas. Didn't added it as a new set, at least not for now. . Spectral vs Generation: Added speedups and igs027a rom to clone svgpcb, marked as working. Kludged parent svg set to boot using svgpcb internal rom, don't consider this working due to various issues, but it will help with extracting the real rom later. . Fixed The Gladiator (Game now playable). Verified The Gladiator internal ROM on an Overseas cart. Added partial dump of internal rom from IGS game 'The Gladiator' - it's missing the first 0x188 bytes which are execute-only, unfortunately the code jumps to them in multiple places and it appears to be important so it still doesn't work (machine\pgmprot_igs027a_type3.c). Idle skip for theglad. Still don't understand current behavior tho, code is very similar in places to killbldp. Improved notes in machine\pgmprot_igs027a_type3.c. Changed so that the intro runs, but it can no longer be started, but at least this is a more proper flow. Document another finding in pgmprot_igs027a_type3.c. Set descriptions were swapped around. More sensible stack location to prevent crashes/glitches. It basically works now, so marked it as such, need to test more tho so might end up unmarking it again later. Added 'wave.u29' to thegladpcb set, this is used for the Japanese music and seems exclusive to the PCB version. I guess all PCBs were Japan and all carts were non-Japan. - pinkiri8.c: Note updates. Fixed visible area. - playch10.c: Updated BIOS rom names to match exact chip labels and types - plygonet.c . Fixed K054539 input clock rate and implemented programmable timer based on hardware measurements . Hooked up K054539 timer interrupt in Polygonet driver, removed non-existent second K054539 and fixed EEPROM regression. - qdrmfgp.c . Fixed K054539 input clock rate and implemented programmable timer based on hardware measurements . Hooked up K054539 timer interrupt for QDRMFGP, fixed IRQ acknowledge handling. - realbrk.c: Fixed long standing regression bug with Real Break flipscreen (machine\tmp68301.c) - royalmah.c . Added flip screen support to Royal Mahjong and brothers and fixed various regressions. . Actually Jansou was ROT180 for whatever reason, de-kludged it. . Added dipswitches to Mahjong Derringer - sangho.c . Added preliminary V9958 screen modes 10/11/12, used by Puzzle Star and Sexy Boom. Fixed Puzzle Star (Sang Ho Soft) (Game now playable). (MESS) Hooked up V9958 to MSX2+, used by a bunch of games/apps. Fixed for good YJK color issues and palette length (previous one was actually wrong). . Added secondary slot mechanism . Fixed a complement by two bug in V9958 YJK table, fixes for good colors in Puzzle Star and Sexy Boom. . Kludged Puzzle Star hang at title screen - seibuspi.c: Flag pins are inverted in Seibu SPI driver - seta2.c: Fixed crash in debug build - snk6502.c . Adjusted Nibbler board clock rate to use actual known master clock and a logical divisor. Still needs 100% verification from actual PCB but this fixes an issue with speed of game and sound effects not matching video output (specifically when snake is first drawn in 3 parts - the sound effect now match the drawing). . Fixed M6502 CPU1 clock speed in fantasy, nibbler, pballoon and vanguard - stv.c . Moved protection related functions into the driver class . Moved decathlt protection (?) related functions into the driver class. Needs a fresh make depend (machine\decathlt.c). - tmaster.c: Hooked up DS1204, but haven't found what it checks for yet. Changed PATCH_PROTECTION to 0 in tmaster.c and VERBOSE_LEVEL to 2 in ds1204.c then look for "-> command" in error.log to find the subsequent read from the dq pin for reading the identification and secure memory. For tm4k the first two bytes of the NVRAM need to be 0x00, 0xa0. From scratch you'll need to play a game before it will complain about the protection, but after that it will complain on every boot. It tries five different contents for the compare register at various points during the bootup, this may be for obfuscation as the real chip will return random results if the key is wrong. If the keys are available it might be easier to dump them than figure out exactly what it wants. - tmnt.c . Fixed K054539 input clock rate and implemented programmable timer based on hardware measurements . Hooked up K054539 timer interrupt in MysticWarr driver. Fixes music tempo in some games. . Fixed Cue Brick NVRAM size, added XTALs and various cleanups. - toaplan2.c . Merged othldrby.c with toaplan2.c driver . Converted driver to use SCREEN_RAW_PARAMS. Fixed VSync. . Added a core for uPD4992 RTC, used by Othello Derby and Power Kick. This fixes the Date Set option in the Othello Derby service mode (ID 01053). . Fixed compile, also slightly cleanup/reorganize toaplan2.h. . Fixed OKI6295 clock speed in Othello Derby. Added 'Test Switch' dipswitch. - twin16.c . Cleaned up gfx2 rom loading, this fixes graphics are split/offset in clone Hard Puncher (Japan) (ID 05383). . Fixed audio cpu RAM size . Fixed YM2151 sound clock speed . Fixed M68000 CPU1 and YM2151 clock speeds and VSync in The Final Round . Use the redumped gfx2 roms for all the Vulcan Ventur/Gradius II sets, plus some cleanups. - twinkle.c . Added all the available beatmania IIDX hard drives and Video CD's/DVD's, updated the hard drive labels from pictures online. . Updated Twinkle driver notes. . Added new hard disk to bmiidx, bmiidxa, bmiidx4, bmiidx6, bmiidx6a, bmiidx7 and bmiidx8. . Added/redumped Program-CD in bmiidx, bmiidx4m, bmiidx7 and bmiidxc2. . Added/redumped Video-CD in bmiidx, bmiidx2, bmiidx4m and bmiidxs. . Added DVD to bmiidx6, bmiidx6a, bmiidx7m and bmiidx8. . Added CD-ROM from clone (896 JAA) to 'beatmania IIDX with DDR 2nd Club Version (896 JAB)' and a new CD-ROM to clone (896 JAA) - vamphalf.c: Minor Wivern Wings information update - vegas.c: Moved some functions into driver class - vsnes.c . Updated labels of Vs. Super Mario Bros roms to match physical chips exactly. . Verified second half roms for Vs. BaseBall (US, set BA E-1) and fixed one mislabeled rom - zac2650.c: Swap tinv2650-sia2650 parent-clone relationship - zn.c: Flag pins are inverted - zr107.c . Hooked up K054539 timer interrupt. Fixed sound in all games. Fixed clock speed of the 2x K054539 sound. . Fixed Wave Shark (Game now playable) - 18 Wheeler: Added lamp outputs and lamp info - 1942: Improvements to the 1942 prototype: Marked sound rom as bad (looks like it needs a redump). Hooked up paletteram fixing bg colours etc. (yes, paletteram.. the release version uses proms). Fixed sprites. - AGEMAME: Updated bfm_sc4h.c, includes\bfm_sc45.h, bfm_sc5.c, maygay1b.c and maygayv1.c to use the N68681 device - Bloxeed: Improved dipswitches - Capcom Bowling: Fixed black screen after starting game in clones Capcom Bowling (set 3) and (set 4) (ID 05373) - Change Lanes: Added missing joystick controls (ID 00037) with port-condition - Chase Bombers . Fixed ADC irq generation, fixes (Japan Prototype) and marked it as such. . Sports lots of gfx bugs tho (ROM_LOADing issue(s), alpha / color blending et al.) - Emergency Call Ambulance: Marked BAD_DUMP for roms which did not match label written SUM16 for clone Emergency Call Ambulance (US location test?) - The First Funky Fighter: Redumped bad roms - Five a Side Soccer . Hooked up K054539 timer interrupt . Implemented VRAM double buffering . Improved trackball inputs . Fixed sound - G.I. Joe: Use actual XTALs and added PCB locations - G.I. Joe, Premier Soccer, Xexex and X-Men: Fixed K054539 sound clock speed - G.I. Joe, Lethal Enforcers, Moo Mesa, Mystic Warriors, The Simpsons and Xexex: Added PCB READMEs. Updated Simpsons README. - Gun Champ: Added color overlay - Jongkyo: Added flip screen support - Koi Koi Part 2: Added hand crafted color table - Lethal Enforcers . Fixed K054539 input clock rate and implemented programmable timer based on hardware measurements . Hooked up K054539 timer interrupt. Fixes music tempo. . Added DIP locations for the driver, this fixes Language dipswitch not changing the language in clones lethaleneab and lethaleneae (ID 05384). - Lunar Lander: Comments related to undumped Language ROMs and the effects noted for Lunar Lander: Language ROMS for Lunar Lander are not dumped. Attempting to use alternate languages by changing through DIP menu will result in a game freeze, as the original game would. - Night Raid: Fixed game fails to boot into the game (machine\idehd.c) (ID 05357) - Omega Race . Driver cleanup (tab align stuff) . Added AM_MIRROR(0x800), this fixes corrupted music after completing first several levels (ID 00785). - Parallel Turn: Updated some commented code - PinMAME . Renamed Future World roms according to PinMAME . Updated some changed roms in Midnight Marauders and Spectra IV according to PinMAME . Fixed wrong year in Midnight Marauders . According to PinMAME atari_s1 use same rom as s2 for sound. Added 82s130.bin sound1 rom. - Run and Gun . Hooked up K054539 timer interrupt . Fixes music tempo (ID 03711) . Implemented sound CPU NMI control . Fixed K054539 #2 regression. - Spy Hunter: Fixed clone Spy Hunter (Spain, Recreativos Franco S.A. PCB) sprite layout. It appears this board doesn't output the higher resolution of a production MCR board, there's half the sprite data for the same number of sprites. Improved MCR-3 gfxdecode. It really seems to be non-interlaced, even wants the interrupts gen at 60fps rather than 3. Started adding bits for the sound hardware. It's a 3x ay setup. Note: The PCB does have faint Bally Midway markings under the Spy Hunter logo on the PCB. Palette format is also different. Added placeholder functions for the spyhunter proto. Disable watchdog on spyhuntpr, allows service mode (in spanish) to operate. Updated notes, description to reflect origin and manufacturer of PCB. - Sunset Riders: Fixed Z80 CPU2 clock speed - Super Chase - Criminal Termination: Changed default layout to upright 4:3 - Thunder & Lightning: Fixed debug mode graphic issues in clone Thunder & Lightning (bootleg with Tetris sound) (ID 04424) and removed x1_010 sound, since this bootleg doesn't have it. - War of the Worlds: Added internal color overlay - Xexex: Use actual XTAL in machine_config and use unique names for EEPROM - Dipswitch fixes in aristmk4.c, bloxeed, hng64.c, othldrby, royalmah.c, nss.c and warrior - Fixed rom names in battles, gijoe, gngt, gwara, playch10.c, nss.c, sf, simpsons.c, tmaster.c, victroad, vsnes.c and xexex - Renamed (bmiidx) to (bmiidxa), (bmiidx3) to (bmiidx3a), (bmiidx6) to (bmiidx6a), (dstage) to (dstagea), (glpracr) to (glpracrj), (invasnv4) to (invasnab4), (pexmp002) to (pexm004p), (pexmp003) to (pexm001p), (pexmp004) to (pexm005p), (pexmp006a) to (pexm002p), (pexs0006) to (pex0998s), (sderby2) to (sderbya), (sfiii) to (sfiiiu), (theglada) to (theglad100), (tokimosh) to (tmoshs), (tokimosp) to (tmoshsp) and (whodunit) to (whodunit8) - Description changes of 4 En Raya (set 1), beatmania IIDX 2nd style (GC985 JAA), beatmania IIDX 3rd style (GC992 JAA), beatmania IIDX 4th style (GCA03 JAA), beatmania IIDX 6th style (GCB4U JAA), beatmania IIDX 7th style (GCB44 JAA), beatmania IIDX 8th style (GCC44 JAA), Beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM), Cobra Command (Data East LD, set 1), Commando (US set 1), Donkey Kong Junior (E kit), Driver's Eyes (Japan) (ID 05365), Gallop Racer (Japanese Ver 9.01.12), Player's Edge Plus (PP0055) Deuces Wild Poker (set 1), Player's Edge Plus (PP0417) Deuces Wild Poker (set 1), Player's Edge Plus (X000002P+XP000109) Standard Draw Poker, Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker (The Orleans), Player's Edge Plus (X000998S+XS000006) Triple Triple Diamond Slots, Player's Edge Plus (XM00001P+XMP00003) Multi-Poker, Player's Edge Plus (XM00002P+XMP00006) Multi-Poker, Player's Edge Plus (XM00004P+XMP00002) Multi-Poker, Player's Edge Plus (XM00005P+XMP00004) Multi-Poker, Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2298), Poka Poka Satan (Japan) (ID 05391), S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB), Steal See, Submarine (Sigma), Super Derby (v.07.03) (ID 05375), Super Invader Attack (bootleg of The Invaders), The First Funky Fighter (set 1), The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN), The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB), The Gladiator / Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107), The Killing Blade Plus (China, ver. 300), Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA), Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB), U.N. Defense Force: Earth Joker (Japan), Vs. Gradius (US, set GR E) and Vs. Pinball (US, set PN4 E-1) - MAME . Reduced smearing on HLSL prescale (hlsl\prescale.fx: Mip/Min/MagFilter = LINEAR to NONE) . Fixed D3D multimonitor support (ID 05236) . In sprite_device (emu\sprite.h), when no shared memory region can be found don't save state the m_buffer member; assume the owner will take care of save stating the spriteram itself. This fixes all Atari System 2 sets have assert at initialization in debug build. . Renamed vector to vector_device due to a name conflict with game named vector (video\vector.c) . Batch vectors at the right time in queue (windows\drawd3d.c). This fixes graphics remains imprinted even when exit the game in all vector games (ID 05207) and vector games with color overlay show in B&W on Windows D3D render when HLSL is disabled (ID 05214). . Some legacy macros cleanups (emu\devlegcy.h, drivlgcy.h, video\v9938.c, mame\audio\dkong.c, asteroid.c, bwidow.c, bzone.c, mhavoc.c, omegrace.c, quantum.c, starwars.c, tempest.c and tomcat.c). Misc legacy handlers cleanups (drivers\system1.c, includes\galaxold.h, namcos1.h, machine\galaxold.c, midtunit.c, namcos1.c and tnzs.c). . Added a new macro MCFG_DEVICE_CARD_DEFAULT_BIOS, which can be used in the machine config to set the default BIOS for a slot card device. . We don't need to filter out CTRL+F12 when taking snapshots, it's been like this since r20381 (Add preliminary vector post-processing; MAME 0.148u1) (when the HLSL toggle was put there) but the HLSL toggle has since been moved. Technically we shouldn't need to filter out ALT+F12 either, but it seems to be hardcoded somewhere else in the code to take a 4 segment HLSL snap?. Moved all windows-only input "NOT" rules to osd/windows. Changed windows fullscreen video from alt-f11 to shift-alt-f12. Added windows fullscreen toggle ralt-enter (heh, i didn't know that ((A AND B) OR (A AND C)) rules were possible). . Increased max number of files in tools\romcmp.c and allow compare of any size file (not all roms are power-of-2) . Added FATALERROR: tag to standard emu_fatalerror throws for easier parsing of testing results (emu\machine.c) . Fixed WM_SYSCOMMAND wparam (windows\window.c) - SDLMAME . Fixed non-Qt non-Windows SDL build (sdl\sdl.mak). This fixes error when compiling with NO_USE_QTDEBUG (ID 05364). . Use QPainter::drawStaticText() to render strings with the same attribute (sdl\debugqtview.c) . Fixed JSMESS build on Ubuntu 12.10, thanks to Vito for debugging this. Removed fstat hack no longer needed with current emscripten (sdl\sdlfile.c). . Slightly more inclusive ARM check (sdl\sdl.mak) - MESS . New skeleton drivers Ensoniq ASR-10 and Ensoniq ASR-X . Modernized wave sound device (sound\wave.c) . Added various MC2661 transmission and reception logic to help make (MESS) wicat start sending data to the terminal board. Replaced read rx callback in MC2661 with a write handler, which allows multiple chips to be connected together without using glue methods. . Floppy: ABC 800: Added support for raw 640KB disk images. Added support for raw 1MB 8" disk images. Added support for raw 80KB and 160KB disk images. Fixed formatting on the ABC 830/832/834/838 floppy drives (formats\abc800_dsk.c). wd_fdc: Fixed ready interrupt polarity. Added a soft_reset() function which resets only the FDC and not the floppy image devices, thus preserving the correct ready states. Fixed 80KB floppy cell size. Adam: Added a second floppy drive and verified 160KB floppy image gap sizes. Tiki100: Floppy WIP. COMX35: Updated notes, floppy is actually working now. Fixed CPU clock and floppy interface. wd_fdc: Set CRC error bit if CRC error found during Read Address command. Tiki 100 determines whether the disk is in FM or MFM format by checking this. ISBC: Added isbx-218a floppy controller. upd765: Make soft_reset public so controller resets don't reset the fdds. Fixed sense drive status command, and allow floppy connectors without drives. Start adding to the ITT 3030 skeleton. . PC hardware: Make AT586 FDC word (machine\southbridge.c). Clean up the refresh bit, it's always the same as the 5170 (drivers\at.c, machine\at.c and southbridge.c). Moved pc_keyboard into emu\bus. Removed GAME_NO_SOUND flag from ibmpc.c, these drivers have working PC speaker sound. . Fixed [debug] crash during Playstation Logo (machine\psxcd.c) (ID 05299) . Modernized Z8 cpu core . Added Signetics 8X300 microcontroller core, updated Wicat driver to use it. . Added a skeleton of native iskr103* keyboard. . I8089: Implemented remaining instructions and support execution from "io" space. movbi_mi second parameter is 8 bit signed & MSVC complains that 0xff is truncated unless you explicitly cast it (cpu\i8089\i8089_channel.c). . Replaced read rx callback in IM6402 with a write handler, which allows multiple chips to be connected together without using glue methods. . Removed unused rxd callback from MOS6551 and made DEVCB2 consistent with other implementations . Removed unused rxd callback from MC6852 (which is only a skeleton) . Removed removed unused rxd callback from MC6854 (this also appears to be mostly a skeleton). Removed dependency clutter from econet. . Converted serial & RS232 devices to DEVCB2 (mess\machine\serial.c) - Compiling . "#pragma GCC diagnostic" was actually added in 4.2, fixes Intel OSX builds. . makedepend now ignores "-D" defines as well . Fixed make depend on OS X (build\makedep.c) . Fixed emscripten compile error (emu\ioport.h) . Compatibility fixes for older GCCs (cpu\arm7\arm7drc.c, drivers\cps3.c, cpu\es5510\es5510.c, cpu\i86\i286.c/h, cpu\m6809\m6809.c and machine\t10spc.h). . MAME builds warning-free on PowerPC OS X again (osd\sdl\sdl.mak). . Allow building with ICL on Windows if you have it installed into MSVC: The ICL compiler on Windows installs over MSVC and piggybacks onto the build tools Microsoft provide. To enable compilation use USE_ICL=1 when compiling with MSVC_BUILD=1 (from the ICL enabled command prompt). Gives a more stable build than the MSVC compiler. More informative compile errors when using ICL compared to MSVC compiler. Can still use MSVC debugging tools (better than GCC). Can use additional Intel tools etc. Build is still slower than GCC one. . (MESS) Workaround for older GCCs that bug out on default arguments in template functions. Fixes OS X PowerPC MESS compile (mess\machine\6883sam.c). 0.151 - New games: CPS3 Multi-game bootleg for HD6417095 type SH2 (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure, Red Earth), Dolmen, Player's Edge Plus (PP0055) Deuces Wild Poker, Player's Edge Plus (PP0127) Deuces Joker Wild Poker, Player's Edge Plus (PP0434) Bonus Poker Deluxe, Player's Edge Plus (PP0452) Double Deuces Wild Poker, Player's Edge Plus (PP0508) Loose Deuce Deuces Wild! Poker, Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker, Player's Edge Plus (PP0775) Unknown Draw Poker, Player's Edge Plus (PS0042) Double Diamond Slots, Player's Edge Plus (Set001) Set Chip, Player's Edge Plus (X000055P+XP000019) Deuces Wild Poker, Player's Edge Plus (X000158P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X000188P+XP000038) Standard Draw Poker, Player's Edge Plus (X000190P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000197P+XP000038) Standard Draw Poker, Player's Edge Plus (X000203P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X000225P+XP000079) Dueces Joker Wild Poker, Player's Edge Plus (X000291P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000430P+XP000079) Dueces Joker Wild Poker, Player's Edge Plus (X000434P+XP000038) Bonus Poker Deluxe, Player's Edge Plus (X000447P+XP000038) Standard Draw Poker', Player's Edge Plus (X000449P+XP000038) Standard Draw Poker, Player's Edge Plus (X000451P+XP000038) Bonus Poker Deluxe, Player's Edge Plus (X000452P+XP000038) Double Deuces Wild Poker, Player's Edge Plus (X000454P+XP000038) Bonus Poker Deluxe, Player's Edge Plus (X000458P+XP000038) Joker Poker, Player's Edge Plus (X000508P+XP000038) Loose Deuce Deuces Wild! Poker, Player's Edge Plus (X000514P+XP000038) Double Bonus Poker, Player's Edge Plus (X000515P+XP000038) Double Bonus Poker, Player's Edge Plus (X000581P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X000725P+XP000038) Double Bonus Poker, Player's Edge Plus (X000726P+XP000038) Double Bonus Poker, Player's Edge Plus (X000727P+XP000038) Double Bonus Poker, Player's Edge Plus (X000763P+XP000038) 4 of a Kind Bonus Poker, Player's Edge Plus (X002018P+XP000038) Full House Bonus Poker, Player's Edge Plus (X002026P+XP000019) Deuces Wild Bonus Poker, Player's Edge Plus (X002036P+XP000112) White Hot Aces Poker, Player's Edge Plus (X002040P+XP000038) Nevada Bonus Poker, Player's Edge Plus (X002042P+XP000038) Triple Bonus Poker, Player's Edge Plus (X002045P+XP000038) Triple Bonus Poker, Player's Edge Plus (X002067P+XP000038) Double Double Bonus Poker, Player's Edge Plus (X002068P+XP000038) Double Double Bonus Poker, Player's Edge Plus (X002070P+XP000038) Double Double Bonus Poker, Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker, Player's Edge Plus (X002241P+XP000079) 4 of a Kind Bonus Poker, Player's Edge Plus (X002244P+XP000079) Double Bonus Poker, Player's Edge Plus (X002245P+XP000055) Standard Draw Poker, Player's Edge Plus (X002250P+XP000050) Shockwave Poker, Player's Edge Plus (X002251P+XP000050) Shockwave Poker, Player's Edge Plus (X002302P+XP000038) Bonus Poker Deluxe, Player's Edge Plus (X002303P+XP000112) White Hot Aces Poker, Player's Edge Plus (X002307P+XP000112) Triple Double Bonus Poker, Player's Edge Plus (X002314P+XP000112) Triple Bonus Poker Plus, Player's Edge Plus (X002374P+XP000112) Super Aces Poker (Horseshoe), Player's Edge Plus (XMP00002+XM00004P) Multi-Poker, Player's Edge Plus (XMP00003+XM00001P) Multi-Poker, Player's Edge Plus (XMP00004+XM00005P) Multi-Poker and Player's Edge Plus (XMP00006+XM00001P) Multi-Poker - New Working games: Dragon World 3, The Killing Blade Plus (ver. 300) and Turret Tower - New Non-Working games: Carket Ball, Frantic Fred, Hide & Seek, Player's Edge Plus (PS0047) Wild Cherry Slots and Unknown Sidam Poker - New clones: After Burner II (German), Bomber Man World (Japan), Burger Time (Data East set 3), CPS3 Multi-game bootleg for dead security cart (New Generation, 2nd Impact, 3rd Strike), Dynamite Dux (set 2, Japan, FD1094 317-0094), E-Swat - Cyber Police (set 1, Japan, FD1094 317-0131), Emergency Call Ambulance (US location test?), Erotictac/Tactic (set 2), Fate: Unlimited Codes (FUD1 ver. A), Final Fight (Japan 900613), Fire Shark (earlier), Growl (World, prototype), Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version, Phozon (Sidam), Player's Edge Plus (KE1013) Keno, Player's Edge Plus (PP0103) Deuces Wild Poker, Player's Edge Plus (PP0126) Deuces Wild Poker, Player's Edge Plus (PP0178) 4 of a Kind Bonus Poker (Operator selectable special 4 of a Kind), Player's Edge Plus (PP0188) Standard Draw Poker (set 2), Player's Edge Plus (PP0190) Deuces Wild Poker, Player's Edge Plus (PP0197) Standard Draw Poker (set 1), Player's Edge Plus (PP0197) Standard Draw Poker (set 2), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 1), Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 2), Player's Edge Plus (PP0221) Standard Draw Poker, Player's Edge Plus (PP0224) Deuces Wild Poker (set 1), Player's Edge Plus (PP0224) Deuces Wild Poker (set 2), Player's Edge Plus (PP0230) Standard Draw Poker, Player's Edge Plus (PP0235) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0274) Standard Draw Poker, Player's Edge Plus (PP0290) Deuces Wild Poker, Player's Edge Plus (PP0291) Deuces Wild Poker, Player's Edge Plus (PP0409) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0410) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0417) Deuces Wild Poker, Player's Edge Plus (PP0419) Standard Draw Poker, Player's Edge Plus (PP0420) Standard Draw Poker, Player's Edge Plus (PP0423) Standard Draw Poker, Player's Edge Plus (PP0426) Joker Poker, Player's Edge Plus (PP0428) Joker Poker, Player's Edge Plus (PP0429) Joker Poker, Player's Edge Plus (PP0447) Standard Draw Poker (set 2), Player's Edge Plus (PP0449) Standard Draw Poker, Player's Edge Plus (PP0454) Bonus Poker Deluxe, Player's Edge Plus (PP0488) Standard Draw Poker (Arizona Charlie's), Player's Edge Plus (PP0509) Standard Draw Poker, Player's Edge Plus (PP0514) Double Bonus Poker (set 1), Player's Edge Plus (PP0514) Double Bonus Poker (set 2), Player's Edge Plus (PP0515) Double Bonus Poker (set 1), Player's Edge Plus (PP0515) Double Bonus Poker (set 2), Player's Edge Plus (PP0516) Double Bonus Poker (set 2), Player's Edge Plus (PP0538) Double Bonus Poker, Player's Edge Plus (PP0540) Double Bonus Poker, Player's Edge Plus (PP0568) Joker Poker, Player's Edge Plus (PP0585) Standard Draw Poker, Player's Edge Plus (PP0725) Double Bonus Poker, Player's Edge Plus (PP0728) Double Bonus Poker, Player's Edge Plus (PP0760) Double Down Stud Poker, Player's Edge Plus (PP0763) 4 of a Kind Bonus Poker, Player's Edge Plus (PS0021) Red White & Blue Slots, Player's Edge Plus (PS0092) Wild Cherry Slots, Player's Edge Plus (PS0206) Red White & Blue Slots, Player's Edge Plus (PS0207) Red White & Blue Slots, Player's Edge Plus (PS0298) Double Diamond Slots, Player's Edge Plus (PS0364) Red White & Blue Slots, Player's Edge Plus (PS0581) Red White & Blue Slots, Player's Edge Plus (PS0631) Red White & Blue Slots, Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000028) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000040) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000053) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000055) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000063) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000075) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000079) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000094) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000095) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000098) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000102) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000104) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000112) Deuces Wild Poker, Player's Edge Plus (X000055P+XP000126) Deuces Wild Poker, Player's Edge Plus (X002027P+XP000019) Deuces Wild Bonus Poker, Player's Edge Plus (X002031P+XP000112) Lucky Deal Poker, Player's Edge Plus (X002245P+XP000079) Standard Draw Poker, Player's Edge Plus (XMP00003+XM00002P) Multi-Poker, Player's Edge Plus (XMP00003+XM00003P) Multi-Poker, Player's Edge Plus (XMP00006+XM00003P) Multi-Poker, Safari Rally (World), Space Invaders (SV Version rev 1), Space Invaders (SV Version rev 2), Street Fighter II: The World Warrior (World 910318), Strike Fighter (World), Super Derby (v.10.04) and X-Men Vs. Street Fighter (Asia 961004) - New drivers: hideseek.c - New devices: turrett_hdd and ym2608 - I8x9x / MCS-96 CPUs: Small change to MCS96 generation messages (cpu\cpu.mak) - I80186 CPU . Added internal clock divider. I186 timer is 1/4 internal clock, 1/8 external clock. . Fixed clock speed in ataxx.c, bingo.c, bingor.c, ciclone, gambl186.c, leland.c and subsino2.c - I80286 CPU: Fixed task state segments and trap flag - M6800 CPU: Initialize some more variables on startup - M68000 CPU . Added FSCALE instruction used by e.g. SimCity 2000 (cpu\m68000\m68kfpu.c) . Fixed m68k->remaining_cycles, see http://mikro.naprvyraz.sk/docs/Coding/Atari/Maggie/FPU.TXT and http://www.atari-forum.com/viewtopic.php?f=68&t=1646 for table used. Atari guys seem to have them all timed out. - M68010 CPU: The 68010 does not perform a read before write during a CLR instruction (m68000\m68k_in.c). This fixes wrong colors on title screen and during gameplay in all sets in Hard Drivin' driver. NOTE: "clr insns on 68000 read before writing. This isn't so on the 68010, but we have no TARGET_68010." (http://www.opensource.apple.com/source/gcc/gcc-1765/gcc/config/m68k/m68k.c). "The special thing about a CLR (on the 68000, fixed in the 68010 and onwards I believe) is, that the processor does a source read before doing a destination write." (http://www.zophar.net/fileuploads/2/10544qufns/jag68k.txt). - PowerPC 4xx/6xx CPUs: Fixed and simplify PPC4xx DMA interrupt logic. Fixes goal animations in Five a Side Soccer. - PSXCPU . Stopped div 0x80000000 in PSXCPU, 0xffffffff from causing an overflow exception. All loads cancel an outstanding load to the same register, not just lwl/lwr. . Fix for "Complete a line of animals in Zooo (V2.01J) and the game will reset" by defaulting PSXCPU ram to 0. I don't know whether this is guaranteed or whether it's a game or emulation bug. Also tidied up a few things and added a couple of comments. - S2650 CPU: Fixed problem with uninitialized member in debug builds - SH-2 CPU: Show effective address in disassembly of PC-relative instructions (cpu\sh2\sh2dasm.c) - SPC700 CPU: Fixed disassembly of BRK opcode, memory-to-memory and immediate-to-memory instructions (cpu\spc700\spc700ds.c) - TMS57002 CPU: Implement SFMR instruction. This fixes the popmessage "tms57002: sfmr - Contact Mamedev" appears for a short moment on cold boot in Rushing Heroes. - TMS99xx CPUs: Common parts (tms99com.h) - TMS9900 CPU . New AM_(DEV)SETOFFSET feature for address maps (Specifies a handler for a 'set address' operation. The intended use case for this operation is to emulate a split-phase memory access: The caller (usually a CPU) sets the address bus lines using set_address. Some component may then react, for instance, by asserting a control line like WAIT before delivering the data on the data bus. The data bits are then sampled on the read operation or delivered on the write operation that must be called subsequently. It is not checked whether the address of the set_address operation matches the address of the subsequent read/write operation. The address map translates the address to a bucket and an offset, hence the name of the macro. If no handler is specified for a bucket, a set_address operation hitting that bucket returns silently). Application of the set_address (AM_SETOFFSET) feature to TMS9900 CPU. . TMS9900 CPU now utilizing split addressing (setaddress ... read/write). Fixed debug memory access. Various cleanups. - TMS9980A CPU . CPU now utilized split addressing (setaddress ... read/write). Various cleanups. . Using new TMS9980 implementation in cosmicg, jpmsru.c, jubileep.c, jvh.c, looping.c, supertnk and tmspoker . Added compile switch for legacy / new CPU implementation to jubileep.c - TMS9995 CPU . CPU now utilized split addressing (setaddress ... read/write) . Fixed broken IDLE in TMS9995; various cleanups. Minor TMS9995 changes for better debugging. . Fixed stuck decrementer interrupt. Fixed broken MID interrupt handling. Re-fixed decrementer. Fine-tune TMS9995 cycles. Another fix for the decrementer, slowing it down. . Allow debugger to see the on-chip memory . Fixed a missing address alignment for word operations . Switch firebird, jpmmps.c, jpms80.c, nsmpoker.c, looping.c, pachifev and nsm.c to modern TMS9995 implementation, but keeping the old version a bit longer. - TMS57002 CPU: Implement SFMR instruction - Vxx CPUs: Modernized NEC cpu cores - V25 CPU . Modernized cpu core . Fixed NEC V25/V35 internal clock divider which was missed during modernization . Fixed register view in V25 - V30 CPU: Fixed register view - SCSP sound: Improved DMA and fixed triggering from SH-2 side - YM2608 sound . Removed 8 kilobytes of internal ROM sample data from MAME's YM2608 emulation, it's been there for ~11 years. After getting legal advice over some recent happenings this was highlighted as a clear infringement of Yamaha's copyright within the MAME code, and in need of urgent addressing, distributing any builds / source trees with this present is inadvisable. . Un-marked the 2608 rom as bad, since AFAIK Jarek did test this dump as an external rom and it completely matched the internal rom when played back, digitally compared at the DAC input. Also re-added comments from the original fm.c version. It would be best if we can find a 2608 to decap eventually, though. - IDE . Added m_buffer_size = IDE_DISK_SECTOR_SIZE to machine\ataflash.c. This fixes boot error message in Taito G-NET games spuzbobl, spuzboblj and Usagi. . Changed IDE read sector timing to be the same as read multiple instead of write sector (machine\idehd.c). - SCSI . Use virtual multiple inheritance to share command processing between SCSI & ATAPI instead of having a SCSI subdevice. This allows matsushita_cr589_device & gdrom_device to derive from atapi_cdrom_device. . Moved the adaptec mode sense handling into the ACB4070 device (machine\scsihle.c and mess\machine\acb4070.c) . Moved request sense command into t10spc, supporting the old obsolete format and the new one. . Fixed read TOC to always return the lead out & return the correct results for msf requests. Mounting the same iso in Windows 8 produces a slightly different result, but it's enough to make windows 2000 recovery console and Windows 95a work. . Fixed bugs in new toc reading code, when the request wasn't from the first track (machine\t10mmc.c). . Uses the sff8020 read toc legacy format field if the mmc format field is zero (MSCDEX uses the sff8020 format field instead of the mmc format field). Added support for session format for read toc, we only support 1 session so the data is mostly hard coded. Fixed read sub command when subq bit was not set (machine\t10mmc.c). . Fixed read sub channel bug (fixes Dance Dance Revolution 2nd Mix) (machine\t10mmc.c) . Better DRQ support, fixed arbitration-in-progress bit (machine\ncr5380n.c) . Improved /BSY behavior on arbitration (machine\ncr5380n.c) - ATAPI . Use virtual multiple inheritance to share command processing between SCSI & ATAPI instead of having a SCSI subdevice. This allows matsushita_cr589_device & gdrom_device to derive from atapi_cdrom_device. . Fixed machine\atahle.c. This fixes "disk error" after rom check in bm1stmix and other. . Changed atapicdr packet identify to Virtual CDROM because not all images are compressed & the text no longer starts in the middle of the vendor name (software displaying the vendor name used to display "MAME Com"). Added a cdu76s device so that the inquiry for the generic ATAPI and SCSI CDROM drives can also be set to "Virtual CDROM". However none of the Konami GV games care, so I'm not sure which game required that response & that is the only Konami SCSI CD based system. The response is invalid according to the SCSI spec as the strings should be space filled and not null terminated & there are fields not filled in. So it's currently compiled in but not used. - GDROM . Fixed comment and logerror for command 0x12 (it's normally INQUIRY, not REQUEST SENSE but for GDROM it's used to set data that is returned by command 0x11) (machine\gdrom.c). . Use virtual multiple inheritance to share command processing between SCSI & ATAPI instead of having a SCSI subdevice. This allows matsushita_cr589_device & gdrom_device to derive from atapi_cdrom_device (machine\gdrom.c). - CHDMAN: Added a hack to allow you to limit the number of threads per work queue (all other limits still apply). If you set this to 0 then chdman doesn't hang (osd\windows\winwork.c). - HD63484 video: Removed not needed include - TIA video: Per "Television Interface Adapter [TIA]" tech doc and "Atari VCS POP Field Service Manual" in harmony with original hardware results, updated NTSC palette to better simulate colors on a CRT display. Documented phase shifts 24.7 thru 27.7 degrees in 0.5 increments. Enabled 26.2 degrees as default being a logical choice as the system should be initially calibrated for Hue 1x and 15x (F$) to visual match (~25.7 degrees) displaying 'gold'/'goldenrod' via system's manual pot adjustment, while moderate system runtime automatically creates a higher phase shift. Results collaborate with additional tech docs (I.E. "Stella Programmer's Guide") placing 1x as 'gold', 2x as 'orange' and 15x (F$) as 'light orange' (hue between 1x and 2x). Colors measured from midpoint of brightness scale. - MC146818 RTC . Fixed the modernisation so that local/utc & whether a century is stored in NVRAM can be specified in a sane way. Removed the century updating as this chip doesn't do that, but each driver can specify where the century should be stored. Fixed off by one errors in the date/time updating. Added support for different external clock speeds and dividers, the clock speeds have been set based on guesswork that the code would set the chip to update at 1Hz but this isn't necessarily true. Most flags have been implemented, so that timer updating can be disabled & irq generation should be correct (drivers\aristmk4.c, magtouch.c, rastersp.c and machine\pcshare.c). . Support for different sized MC146818 compatibles (machine\ds128x.c) . Call update_irq() after updating B & C register in device_reset - Discrete Netlist (Pong) . Fixed a bug in netlib's NE555 emulation . Optimized some netlist code by inlining clock device. This improves pongf performance by approx. 10% . Fixed a small but important bug in netlist code. In addition, some more performance improvements. . More netlist cleanups . All netlist device setup now takes place in constructors . Slightly improved performance on netlist components . Fixed to work with MSVC 2012, the second NETLIB_DEVICE parameter is a list of the protected variables and MSVC doesn't like #if within the parameters to a macro. Fixed for empty controlled statement with MSVC 2012. Fixed linking with MSVC 2012. . Moved netdev_mainclock update & update_param from netlist.c to net_lib.c to fix linking error in MSVC and still have it link with MSVC . Added a fixed frequency monitor emulation to src\emu\video. This implementation takes an analog composite signal, extracts hsync, vsync and field information in addition to greyscale video. . Pong now uses the new analog monitor device. Cleanup code. Minor improvements. . Minor code clean-up in netlist devices . Fixed an Netlist issue with 7493 and other minor fixes . Netlist cleanup: Simplified classes and separated logic and analog inputs/outputs. . Moved device setup out of constructor (again). This wasn't a good idea because some more advanced stuff like virtual function address caching doesn't work in constructors. . Some hand-crafted optimizations. GCC seems to like ugly pointer C more than using readable arrays. . Netlist now uses astring instead of char *. Makes memory management a lot easier. Fixed a number of memory leaks as well. Driver reset now works. . Now supports reset (video\fixfreq.c) . Created folder emu\netlist and moved net_lib.* over. Updated makefiles (netlist\netlist.mak). . Split the netlist code up into functional pieces like parser, setup and execution. This looks a lot more structured now and highlighted some issue already. - Programmable Logic Device (PLD): Added the ability to view PALCE16V8 JED files in jedutil along with some regression test data for the PALCE16V8. The PAL dumps for Twin Cobra II in the Taito F3 driver are now labeled as bad dumps because when viewed with jedutil the data is bad. - 1943.c: Improved 1943 protection emulation - aleck64.c (N64 optimizations) . Converted PIF RAM from 8-bit array to 32-bit array . Inlined color and alpha combiner equations . Moved a number of calculations in span rendering to outer loops . Flattened branch structure of texel fetching somewhat . Fixed N64 controls . RSP SIMD changes . Converted high and middle accumulator slices into SIMD vectors . Converted flag registers into SIMD vectors . Fixed unaligned accesses in CFC2 opcode . Added SCALAR_GET_VS1, SCALAR_GET_VS2, and SET_ACCUM_H/M/L to act as a passthrough to either the non-SIMD implementation or individual element insert/extract ops in order to minimize #if USE_SIMD all over the place. . Ported SIMD implementations of VMUDL, VMUDM, VMUDN, VMUDH, VMACF, VMACU, VMADL, VMADM, VMADN, and VMADH from CEN64 with permission. . Resulted in an overall speedup of approximately 50% for RSP-bound scenes on a 2.5GHz i5 . N64 RDP and RSP improvements . Fixed non-SIMD mode (cpu\rsp\rspdrc.c) . Refactored N64 RDP blender to use function arrays in order to flatten inner-loop branch structures for potential performance. . Broke blender steps into individual #defines in order to make the functional differences between RDP modes more apparent. . Fixed an RSP DMA edge case when transfer count is greater than 1 . Refactored the RDP blender implementation to use function pointers rather than deep if/else structures in order to reduce branch prediction penalties in the inner software rasterizer loop. . Reduced the likelihood that bad triangle commands due to an RSP crash will crash MESS. - berzerk.c . Removed legacy macro from driver . Fixed copypaste error in 74181, causing bug(s) in Berzerk driver. . Fixed player and other sprites freeze random during game play (ID 05351) - cps3.c . Added some new (and some previously just not included) CPS3 documentation . Improved CPS3 README with more hardware detail - dbz.c: Fixed "Warning: K053252 read 0e, contact MAMEdev" popmessage (ID 05335) - ddragon3.c: Fixed video frequency regression in Combatribes and Double Dragon 3 (ID 05302) - dkong.c: Changed two devices (n2a03 and latch8) to be optional devices - deco_mlc.c . Added Player 3 and 4 inputs to Hoops '96, Avengers In Galactic Storm, Skull Fang, Stadium Hero '96 and clones (ID 05320) . Fixed assertion failed (vpos >= 0, file src\emu\screen.c, line 711) in debug build of ddream95, hoops95, hoops96, stadhr96 and stadhr96j (ID 05240). . Preliminary YMZ280B master volume control for DECO MLC HW . Fixed Hoops '96 crashes, if you press the F2 key (ID 00423). - djmain.c: Fixed machine\atahle.c. This fixes "disk error" after rom check in bm1stmix and other (ID 05318). - firebeat.c: Use virtual multiple inheritance to share command processing between SCSI & ATAPI instead of having a SCSI subdevice. This allows matsushita_cr589_device & gdrom_device to derive from atapi_cdrom_device. - harddriv.c: Fixed wrong colors on title screen and during gameplay in all sets in Hard Drivin' driver (ID 05303) (ID 05310). The 68010 reportedly doesn't do a dummy read before write during a CLR instruction as the 68000 does. Reverting this change fixes the regression (m68000\m68k_in.c). - holeland.c: Fixed tile-sprite priority in driver (fixed? Needs further testing) (ID 00489) - hornet.c: Added servicecoin 2, this fixes Gradius 4 starting with coin already inserted (ID 05343). - igs017.c: Refactor some IGS protection code for easier sharing between IGS017 and PGM driver - jaguar.c . Fixed detection of busy loops in Jaguar CPU . Made Jag CD to boot somehow. Added a bunch of commands. . Jaguar GPU . Fixed detection of busy loops . Hooked up DSP/GPU interrupt to tom that was missed when modernizing Jaguar core in MAME 0.150. Fixes the Area 51 issue: Very slow gameplay (ID 05256), but 0.149u1 was released before the modernizing and maxf_ng still has the problem mentioned in the bug report. - konamigv.c: Fixed dma_write_data parameter, even though it's not used and the DMA isn't hooked up properly. - ksys573.c . Use virtual multiple inheritance to share command processing between SCSI & ATAPI instead of having a SCSI subdevice. This allows matsushita_cr589_device & gdrom_device to derive from atapi_cdrom_device. This fixes darkhleg, powyakex, konam80s and clones: Games say "Now Loading" and hardware fails (ID 05346). . Uses the sff8020 read toc legacy format field if the mmc format field is zero (MSCDEX uses the sff8020 format field instead of the mmc format field) . Added support for session format for read toc, we only support 1 session so the data is mostly hard coded . Fixed read sub command when subq bit was not set. Fixed read sub channel bug (fixes Dance Dance Revolution 2nd Mix) (machine\t10mmc.c) . Update hack to allow 'Dancing Stage featuring Dreams Come True' to boot . Switched 'Guitar Freaks 2nd Mix' to a 32MB card. It only flashes 16MB to the flash card but it checks and erases 32MB. Consistent code formatting. This fixes the Flash ROM device error (ID 05328). . Added a hack to get Konami 80's loading games again. It misses out triggering DMA for three sectors, the old code didn't care as it didn't check for how much had been requested. Why it does this and what should actually happen is currently unknown. - looping.c: Using new TMS9980/95 implementation - m92.c: Flagged driver as GAME_NO_COCKTAIL for obvious reasons: Screen offsets when entering player 3 and player 4 in Major Title 2 and clones (ID 05322). - mazerbla.c . Mazer Blazer driver definitely needs blitter rewrite . Confirmed that video register [1] controls upper color bank (fixes Mazer Blazer CRT test) . Fixed ROM GFX banking in Great Guns . Fully hooked up VCU . Added maincpu irq notes . Added video banking, fixes Great Guns ranking screen. . Fixed wrap-around and added notes - namcos12.c: Fixed namcos12_rom_read. This fixes Tenkomori Shooting and clone crashes on "collect X medals" minigame (ID 05257). - neogeo.inc . Modernized upd4990a device. Needs to be merged with upd1990a.c. Don't set time to 0 on reset. . Cleaned up large amounts of duplicated code between the MAME and MESS (AES/NeoCD) drivers . Removed MVS-only ROMs and devices (SM1 ROM, SFIX ROM, upd4990a RTC, etc.) from AES/NeoCD . Replaced legacy NVRAM in MVS and NeoCD with NVRAM devices . Correctly hooked up SM1 ROM bankswitching; the BIOS sound test works now . Correct VRAM size . Sorted the Universe BIOS versions and unified them between MAME and MESS . Fixed kf10thep ROM loading and decryption which was a horrible hack (and not endian safe) . Replaced svcplus protection hack ROM patch with a less invasive one, based on FBA . Started marking code and data that should be moved out into devices . Various other code and comment cleanups . Endian fix for softlist ROM loading - nmk16.c: Fixed some tilemap dirty marking when bank changes in NMK16, was causing some issues on later Thunder Dragon 2 bosses. - nss.c: Added a new Nintendo Super System bios, Single Cart version 3. - peplus.c . Minor PEPlus adjustments. More additions and or corrections. More documentation, clean-ups and corrections. Verified BPROM type and size. Additional information / corrections. . Fixed missing paytable data (when paytables are enabled) in pepp0158, pepp0250 and pepp0516 (ID 02876) . Added new gfx1 roms and 256 bytes prom to pepp0043, pepp0158 and pepp0250 . Added 256 bytes prom to pepp0065, pepp0188 and peset038 - pgm.c . Improvements to Dragon World 3 protection simulation, game seems mostly playable now although a DMA mode copying 68k code to RAM is still missing. . Couple of tweaks to the PGM submission (machine\pgmprot_igs025_igs022.c) . Added igs025/igs022 DMA mode 4 for Dragon World 3 . Small fix to unbreak Killing Blade from iq132 . Added new ARM protection rom to The Killing Blade Plus (ver. 300) (Game now playable) - thepit.c . Dumped the color BPROM for Desert Dan and correct colors . Added Funny Mouse info from auction PCB/artwork pics . Fixed 'Bonus Life' dipswitch in Macho Mouse and Funny Mouse - segag80r.c, segag80v.c and zaxxon.c . Modernized Sega Speech and Sega USB devices (audio\segasnd.c) . 005: Modernized the SEGA005 (005 Custom) sound device - stv.c . Minor mods to make (MESS) Saturn test1f diag life easier . Improved SMPC timings (machine\smpc.c, video\stvvdp2.c and includes\stv.h) . ADR and track # fixes (machine\stvcd.c) . Added SCUDSP CPU4 . SCU DSP . Modernized Sega Saturn cpu core. Prevent out of array access (scudspdasm.c). . Added a bare bones SCUDSP core, to be improved . Fixed cpu\scudsp\scudspdasm.c DASM. Hooked SCUDSP to machine struct. . More progresses, (MESS) Magical Hoppers boots. . Fixed SH-2->DSP DMA operation, new core doesn't fart anymore (scudsp.c) . Hacked SCU DSP DMA execution and fixes some other minor things, makes (MESS) Croc to work again. . Fixed ENDI status flag. Removed old SCUDSP, not worth it anyway. - subsino2.c . Fixed exception in clone Magic Train (Clear NVRAM ROM?) shortly after start (ID 05142) . Make X-Plan behave in almost the same odd way as .149. This fixes game hangs up on boot (ID 05326). - taitogn.c . Added m_buffer_size = IDE_DISK_SECTOR_SIZE to machine\ataflash.c. This fixes boot error message in spuzbobl, spuzboblj and usagi (ID 05317). . Fix for "Complete a line of animals in Zooo (V2.01J) and the game will reset (ID 05216)" by defaulting PSXCPU ram to 0. I don't know whether this is guaranteed or whether it's a game or emulation bug. Also tidied up a few things and added a couple of comments. - taitotz.c: Removed variables that aren't needed since 0.149u1 - tasman.c: Moved a pair of Tasman handlers into the driver state - tmnt.c: Confirmed and removed TMNT and TMNT2 BTANTB notes - toaplan2.c: Changed note slightly based on findings - twin16.c, yunsung8.c and yunsun16.c: Deprecated MCFG_SCREEN_VBLANK_TIME() / MCFG_SCREEN_REFRESH_RATE() in favor of MCFG_SCREEN_RAW_PARAMS() function - unico.c . Fixed tile dirty marking in Unico driver. This fixes background layer lacks on Zero Point 2 (ID 05311). . De-duplicate some code . Fixed Zero Point 2 sound routing and 'Lives' dipswitch. - usgames.c: Fixed rom load in clone Games V18.5 - AGEMAME . jpmmps.c: Added some more meter communication to MPS, games should complain about less now . Switch JPM MPS to modern TMS9995 implementation. Added auto wait state config to the JPM MPS driver. . jpms80.c: Switch driver to modern TMS9995 implementation. Added auto wait state config to the driver. . jpmsru.c: Using new TMS9980 implementation . jpmsys5.c: Added some more meter communication to System 5, games should complain about less now. - Bomber Man World: Dipswitches have been correct for the Japanese sets. For some reason the cabinet type is switched around for the Japan region. - Crypt Killer: Fixed RAM/ROM check regression (ID 05340) - Five a Side Soccer: Fixed and simplify PPC4xx DMA interrupt logic. Fixes goal animations in Five a Side Soccer. - Flower: Reverted to 8-way Joystick for now - Hot Fire Birds . Switch Hot Fire Birds to modern TMS9995 implementation, but keeping the old version a bit longer. . New TMS9995 now working, can drop old code in NSM driver - Jangou Lady: Fixed black screen after insert coin (Id 05290) - Kung-Fu Master: Use 8-way joystick - Mad Gear . Fixed Mad Gear and clones background tilemap bitplane order and vertical refresh rate. Changed input from 1 to 3 buttons. . Fixed clone 'Led Storm Rally 2011 (US)' sprite ROM order (though bad sprites remain due to incorrect ROMs) - Mars: Fixed Player 2's fire button doesn't stop firing (ID 05327) - Pac-Land: Added Easter egg notes - PinMAME . jvh.c: Using new TMS9980 implementation . s11c.c: Made System 11C BG music hardware a device, and plugged it into the WPC versions of Dr. Dude (PA-6 WPC) and (PA-7 WPC). . wpc_an.c: Added ROM banking, switches and IRQs. Games now start to boot. Various additions, games now have full sound: Added WPC sound board and hooked up to WPC boards. Added shifter functions to WPC chip (fixes inputs). Added preliminary memory protection. Moved WPC ASIC implementation to a separate device. Fixed U6 checksum error. Fixed invalid sound bank use in WPC Test Fixture: Alphanumeric (1.3). . wpc_flip1.c: Drived from wpc_dot, gets The Addams Family running. Added basic implementation of flipper inputs. This clears the 'flipper EOS stuck closed' errors, and makes video modes somewhat playable. . wpc_flip2.c: Derived from wpc_flip1, and made switch 22 (coin door) a toggle switch. Flipped the bits of the opto switches in Dr. Who, making it behave a bit more correctly. Added basic implementation of flipper inputs. This clears the 'flipper EOS stuck closed' errors, and makes video modes somewhat playable. Flipped the bits of the opto switches in Dr. Who, making it behave a bit more correctly. . wpc_dcs.c: Start to get DCS-based games running in wpc_dcs driver (audio\dcs.c) . wpc_dot.c: Made a start on the DMD. Still needs work. Added a few extra keys so that games can be started. Increased number of main CPU bank entries to account for the two versions of White Water that use 1MB ROMs. - Pleiads: Modernized sound device (audio\pleiads.c) - Point Blank: Documented how the protection works - Power Drive: Minor doc update / rom label correction - Quiz Show: Dumped one of the gfx proms, the other one was wounded in action. - Quiz Theater: Fixed no sound and very slow gameplay (ID 05341) - Rally X: Fixed "INVALID" text in 'Bonus Life' dipswitch (ID 05323) - Rushing Heroes: Implement SFMR instruction in TMS57002 CPU. This fixes the popmessage "tms57002: sfmr - Contact Mamedev" appears for a short moment on cold boot (ID 04484). - The Real Ghostbusters: Replaced DECO 222 CPU2 with M6502 in clones Meikyuu Hunter G (Japan, set 1) and (Japan, set 2), this fixes no sound in demo and in gameplay (ID 05316). - Rise of the Robots: Fixed game crash at boot (ID 05305) - Riot: Fixed broken sprites colors - Sega Mega Drive: Fixed VDP scanline settings in machine\megadriv.c (drivers\hshavoc.c, megadrvb.c, megaplay.c, megatech.c, puckpkmn.c and segac2.c). This fixes assert after OK (debug build) in Sunset Riders (bootleg of Megadrive version) (ID 05293) and Tecmo World Cup shows only a black screen (ID 00520). - Side Pocket: Protection emulation should be crashproof now. This fixes debug assert after OK (ID 05294). - Space Invaders . Changed Space Invaders Stand-up Version (sisv) sets around based on new information/dumps from Andrew Welburn; many comment changes as well. . Removed accidentally included overlay roms from sisv sets. Added more comment information. . Updated comments/rom names for Cosmic Monsters (version II). More updates and corrections. - Turret Tower . Fixed Turret Tower (Game now playable) . Marked the Turret Tower CHD as bad. Note: According to http://personal.inet.fi/cool/lwgt/myoldvdr/V40ProductManual.pdf. The drive should have CYLS:38869, HEADS:16, SECS:63, Total Units:39,179,952. We are missing 13482 sectors and we have to adjust the LBA by 63 sectors for the game to work. . Fixed input and added 'Turret Tower Sound'. Fixed visible area, palettesize and VSync. - Vector games . Fixed black screen with HLSL . Device-ified vector.c - Violent Storm: Fixed "Warning: K053252 read 0e, contact MAMEdev" popmessage (machine\k053252.c) (ID 04731). - Vs. BaseBall: Flipped the 'right' and 'left' half roms to match rom labels from recent rom redump, also fixed labels to exactly match chips. - Wizard Fire: Marked in clone Dark Seal 2 (Japan v2.1) the mas10 sound rom as BAD_DUMP as it is incorrect for this version. Set GAME_IMPERFECT_SOUND flag due to incorrect speech rom. - Wonder Boy: wboy4 documentation updates - X-Men: Fixed missing sprites in clones X-Men (6 Players ver ECB) and (6 Players ver UCB) (ID 05301) - Input port . Hardcoded toggled inputs (eg. simulated hi-lo gearshift-lock in racing games) can now be manually turned off or on by the user (emu\ioport.c). For example, to disable the toggle on the shifter in Outrun, open cfg\outrun.cfg and add toggle="no" to the port tag, like so: . . Split up the construct_core_types() monster (emu\inpttype.h) . IPT_START changed to IPT_START1 or IPT_START2 where multiple start buttons exist (drivers\cham24.c, cobra.c, cps1.c, stv.c and taitotz.c. Except namcos22.c: This system has cabinet networking and no games allow two players with one machine.) - Dipswitch fixes in bbmanw, jpmsys5sw.c, machomou and rallyx - Fixed rom names in cosmicmo, eswatbl, fireshrk, funnymou, mazerbla.c, model3.c, powerdrv, toaplan1.c and vsbball - Renamed (bbmanwj) to (bbmanwja), (fateulc) to (fateulcb), (pexmp006) to (pexmp006a), (pexp0019) to (pex2025p), (pexp0112) to (pex2035p), (safarir) to (safarirj), (sisv) to (sisv3), (sisv2) to (sisv), (sitvo) to (sitv1), (strkfgtr) to (strkfgtrj), (xmvsfar1) to (xmvsfar2) and (xmvsfar2) to (xmvsfar3) - Description changes of After Burner, Bomber Man World (Japan, revised sound hardware), Cosmic Monsters (version II), Dragon World 3 (Japan, ver. 100), Dragon World 3 (ver. 106), Dynamite Dux (set 3, World, FD1094 317-0096), E-Swat - Cyber Police (set 2, Japan, FD1094 317-0128), E-Swat - Cyber Police (set 3, US, FD1094 317-0129), E-Swat - Cyber Police (set 4, World, FD1094 317-0130), Funny Mouse (Japan), Jeon Sin - Guardian Storm (Korea), LeMans 24 (Revision B), Player's Edge Plus (PP0065) Joker Poker, Player's Edge Plus (PP0188) Standard Draw Poker (set 1), Player's Edge Plus (PP0447) Standard Draw Poker (set 1), Player's Edge Plus (PP0516) Double Bonus Poker (set 1), Player's Edge Plus (X002025P+XP000019) Deuces Wild Bonus Poker, Player's Edge Plus (X002035P+XP000112) White Hot Aces Poker, Player's Edge Plus (X002069P+XP000038) Double Double Bonus Poker, Player's Edge Plus (XMP00006+XM00002P) Multi-Poker, Player's Edge Plus (XMP00024+XM00005P) Multi-Poker, Space Invaders (SV Version rev 3), Space Invaders (SV Version rev 4), Space Invaders (TV Version rev 1), Space Invaders (TV Version rev 2) and T.T. Fitter (Japan) - MAME . New MAME license . Added licenseinfo.txt for lookup of the newly added license tags; please add to this file if you multi-license using a license not listed in it. . Bulk convert files that already had standard BSD license in my name to new license tagged form . Based on memory and obvious stuff, attempted to flag driver code with the appropriate license. If there are files in here that need additional attribution or which I'm wrong about, let me know. I deliberately skipped a lot of files I'm 95% sure I rewrote but which had other names in the header, pending further investigation. . Added license tags to a few more files. Also converted many of OG's BSD licenses to tags since when he copied & pasted them he forgot to remove one instance of my name, which I caught while searching. . Turn Windows multithreaded blit off by default: Shows gfx glitches in drivers with indexed palette otherwise (osd\windows\winmain.c). . Allow write-only files to be opened by external programs while MAME still has them open (matches POSIX semantics, useful for log files). This was approved by Aaron (osd\windows\winfile.c). . HLSL . Fixed black screen in Vector games with HLSL (ID 05300) . Fixed HLSL bloom drawing onto the prev frame if artwork backdrop is used (Note: Bug effect was not visible due to MT05332 bug) . New AM_(DEV)SETOFFSET feature for address maps (Specifies a handler for a 'set address' operation. The intended use case for this operation is to emulate a split-phase memory access: The caller (usually a CPU) sets the address bus lines using set_address. Some component may then react, for instance, by asserting a control line like WAIT before delivering the data on the data bus. The data bits are then sampled on the read operation or delivered on the write operation that must be called subsequently. It is not checked whether the address of the set_address operation matches the address of the subsequent read/write operation. The address map translates the address to a bucket and an offset, hence the name of the macro. If no handler is specified for a bucket, a set_address operation hitting that bucket returns silently). Application of the set_address (AM_SETOFFSET) feature to TMS9900 CPU. . Removed DISK_ISOPTIONAL macro in favor of identical ROM_ISOPTIONAL (emu\romload.c) . Invalid BIOS is a fatal error (emu\romload.c) . Added auto wait state config to the looping.c, nsmpoker.c and nsm.c . Added SOUND_START_MEMBER and SOUND_RESET_MEMBER macros (emu\driver.h, emu\drivlgcy.h, mame\audio\cchasm.c, mame\audio\cinemat.c, mame\audio\dkong.c, mame\audio\jedi.c, mame\audio\mario.c, mame\audio\mw8080bw.c, mame\audio\n8080.c, mame\audio\redalert.c, mame\audio\scramble.c, mame\audio\segag80r.c, mame\drivers\cchasm.c, mame\drivers\dkong.c, mame\drivers\equites.c, mame\drivers\jangou.c, mame\drivers\lucky74.c, mame\drivers\mirax.c, mame\drivers\n8080.c, mame\drivers\segag80r.c and mame\includes\lucky74.h). . Removed SOUND_START and SOUND_RESET legacy MACRO (emu\driver.h, audio\cinemat.c, includes\cchasm.h). . Revert attempted fix for color overlays not working on vector games. This fixes a blank screen in certain places in the cubeqst, mach3 and usvsthem video (ID 05324) and tx1/buggyboy/darius/darius2/ninjaw triple screen always gapped only in fullscreen (ID 05321). Also multiple systems: Backdrop displayed in front of screen in multiple drivers (ID 05332) and many systems that use multiple screens: Only one screen shown when using multi-screen games with an overlay effect enabled in Game Properties (ID 05309). . Show detailed NOT FOUND messages for missing CHDs (emu\romload.c) (Id 03450) . Fixed crash in debug builds (lib\util\zippath.c) . Removed DISK_ISOPTIONAL macro in favor of identical ROM_ISOPTIONAL (emu\info.c) . Small fix for -listxml dumps regarding output of DIP switches . Added higher resolution icons for MAME/MESS (Windows). These were made available by JacKc a few months ago. I don't mean to imply that they are 'official', they may be replaced later. . MAME Web . Fixed hardcoded hostname and port in web\index.html . Fixed rendering issues on WebKit-based phones in portrait mode, added pause/unpause toggle (emu\webengine.c, web\commands.html and index.html). . Page not found handling, sends a 404 error (emu\webengine.c). . Added load and save states . Fixed web options reading from ini, improved load/save state UI. More UI improvements. Additional refactoring. . Modernized JS usage, fixed several bugs. JS cleanup and fixed a few minor bugs. . Mongoose headers don't play nice with our redefined free() on persnickety compilers - SDLMAME . Work around incorrect warning generated by Clang (sdl\drawogl.c) . Updated man pages . OS/2 build fixes (lib\web\mongoose.c and sdl\sdl.mak) . Added SDL_FRAMEWORK_PATH option to control where SDL is installed on OS X plus OS X 10.9 support. Removed deprecated GTK+ debugger. . Fixed joystick to work with final SDL 2.0. Disabled TrueType support for SDL2 builds for now. . Fixed SDL1 build (sdl\input.c) . Fixed a logging bug (sdl\sdlmain.c) . Fixed testkeys utility to compile with SDL2.0 (sdl\testkeys.c) . Fixed SDL compile with NOASM=1 (emu\eminline.h) . Still need the stub functions from debugwin.c for the NO_DEBUGGER case (sdl\debugwin.c) . More SDL header fixes for Clang / emscripten (sdl\gl_shader_mgr.c, sdlsync_tc.c and watchdog.c). Simplify SDL file changes. - MACMAME . Better Clang support, necessary for Xcode 5.0 on OS X (sdl\sdl.mak). Fixed Xcode 5.0.1 build (web\json\reader.h). . Xcode 5.0 compile fixes (mess\drivers\tk80bs.c, zexall.c and machine\ti99\genboard.h). Note: Xcode is an integrated development environment (IDE) containing a suite of software development tools developed by Apple for developing software for OS X and iOS. - MESS . I80130 CPU: Added i80130 OSP emulation. Refactored Telenova Compis to use i80130, does not work yet. . M4510 CPU: Fixed m65ce02_device typo in M4510. Added M4510 memory_translate. . HP Saturn CPU: Fixed an uninitialized variable . Make it easier for HD63450 external drq support. ESQ5505 is the only other user of the hd63450, needs to be tested (mess\machine\hd63450.c). . Modernized MC6846 device . Modernized 6525tpi device . Added the DECTalk PC device. Audio quality is currently marginal. Much better now although quieter and some pops and squeaks. . Floppy: Compis FDC WIP. Connected the Compis FDC via the iSBX bus. . MC1502: Cassette output, printer WIP, serial WIP, minor keyboard fix. MC1502 FDC reset fix. . Southbridge . Allows you to change what is in the southbridge IDE slots . Use ds12885 as at586 needs 128 bytes . Fixed southbridge DMA . Fixed at586 fails too boot from Hard Drive/CHD (ID 05353) . Greatly increase refresh line delay. Passes floppy controller test, still crashes. . Added a placeholder for the Intel iSBX bus . Moved abcbus, adamnet, c64 expansion/user ports, cbmiec, comx35, ieee488, iq151, kc, tvc, vip expansion/byte I/O ports, wangpcbus, xebec, z88 expansions and a bunch of other buses under emu\bus, renamed from mess\machine. . Less verbose (printf -> logerror) (video\upd7220.c) . Modernized ER59256 device . Modernized MC6854 device . Removed unnecessary #includes (machine\isa_fdc.c) - JSMESS: Upstream changes needed to compile JSMESS. Note: There are still a few files being worked on, and the build scripts which are currently set up outside of the MAME source hierarchy. Always open to cleaner ways of doing things. Added other JSMESS tweaks. - Compiling . Fixed some Clang warnings (cpu\minx\minxopcf.h, cpu\scudsp\scudsp.h, includes\wpc_pin.h, machine\isa_stereo_fx.c, sdl\drawogl.c and video\fixfreq.c) . Fixed for building with Visual Studio 2012 (lib\web\mongoose.c). Fixes for building with Visual Studio 2013 RTM. . Fixed cross build makefile define to match the other makefiles. . More cross_build stuff: DFJustin: the issue is that if you do not add those targets in, then those targets are not defined when you do a CROSS_BUILD and Make fails because targets depend on them the 'correct' fix would be to have the targets that depend on them depend on the correct location of the tools because I think what was happening is that they depended on the location of the tools assuming that they were built for the target platform. . Emscripten makefile stuff 0.150 - New games: Casanova, Poka Poka Satan and Super Game Mega Type 1 - New Working games: Captain Commando (bootleg), Double Wings, Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons, Midnight Landing, Oriental Legend Special / Xi You Shi E Zhuan Super, Panic Road, Puzzli 2, Tap a Tune and Touchstar Bonanza - New Non-Working games: Usagi Online (v2.04J) - New clones: Bubble Bobble II (Ver 0.0J 1993/12/13, prototype), Chase Bombers (Japan), Cosmic Guerilla (Spanish bootleg), Cotton (set 2, Japan, Rev B, FD1094 317-0179b), Crazy Kong (bootleg on Galaxian hardware, encrypted, set 1), Crazy Kong (bootleg on Galaxian hardware, encrypted, set 3), Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg), DoDonPachi Dai-Ou-Jou (2002.10.07.Black Ver), Dungeons & Dragons: Tower of Doom (Asia 940412), Enforce (Japan, Analog Controls), Excelsior (set 2), Free Kick (bootleg set 3), Gals Panic 3 (Korea), Grand Striker (Japan), Ikari Three (Korea, 8-Way Joystick), Jurassic Park (Japan, Rev A, Conversion), Jurassic Park (Japan, Rev A, Deluxe), Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101), Manx TT Superbike - DX (Revision D), Mechanized Attack (Japan), New Fantasia (set 2), Night Slashers (US Rev 1.2, HuC6280 Sound CPU), Pac-Man - 25th Anniversary Edition (Rev 3.00), Pigskin 621AD (rev 1.1 6/05/90), Pipe Dream (Taiwan), Pole Position (US), Punch-Out!! (Japan), Puzzle Bang Bang (Korea, version 2.9 / 990108), Space Invaders (TV Version, older), Street Fighter EX Plus (Japan 970407), Street Fighter II': Champion Edition (Hung Hsi, bootleg), Street Fighter II: The World Warrior (Japan 910411), Street Fighter II: The World Warrior (Japan 910522), Street Fighter II: The World Warrior (Japan 920312), Tekken Tag Tournament (Japan, TEG1/VER.C1), Trivia Madness - Series B Question set, Turbo Out Run (Japan, Out Run upgrade, FD1094 317-0117) and Violent Storm (ver EAC) - Removed games: Caveman Ninja (alternate) - New devices: cdrom and cr589 - HD6309 CPU: Fixing HD6309 MULD regression introduced in the 6x09 rewrite (ID 05259) - MCS-80 8080 CPU: Modernized cpu core. Changed '8080' to 'MCS-80 8080' and '8080A' to 'MCS-80 8080A'. - I8039 / MCS-48 CPU: Modernized core - I8051 / MCS-51 CPU: Modernized core - MCS-85 8085A CPU . Modernized cpu core. Changed '8085A' to 'MCS-85 8085A'. . Removed unneeded commented members in i8085\i8085.h. Fixed i8085a initialization. Disabled unused private members in i8085\i8085.h. - I8086 CPU . Make modernized core endian-safe again . Fixed i_insb -> write_byte(ea, read_port_byte(m_regs.w[DX])) - I80186 CPU . Moved 80186 peripherals into the cpu (cpu\i86\i186.c). Fixed faulty if-condition. . Finished modernizing the Leland sound and use new 80186 . (MESS) Starts to read floppies in Compis (Telenova 1985; fixed external interrupts in 80186) - I80286 CPU: Modernize core - I386 CPU . Fixed undefined order of evaluation in FETCH* and READ* functions in i386\i386priv.h . Fixed smsw undocumented behavior in cpu\i386\i386op32.c . Set int 0 when aam has a 0 radix . Use correct PL and stack address size in call gates. Fixes WIN95 hardware detection. - i860XR CPU: Modernized core - i960kb CPU: Modernized core - M37710 CPU: Modernized core - M6800 CPU: Modernized cpu core - M6801/6803 CPUs . Support for timer output capture to pin P21 . Support for externally-clocked serial . Added DEVCB2 hook for serial xmit to easily differentiate xmit from other Port 2 updates. Bits are still also sent to Port 2 of course. - M68000/20 CPUs: A regular 68000 processor will generate a read operation when using the clr.b/.w/.l opcodes, this was fixed and changed on the 020. I'm not aware of any software explicitly requiring this right now, but it would be detectable if you have read-triggered hardware and various 68k documents advise caution when using the opcodes and porting code using said opcodes to a 020 based machine for that reason. There was some private discussion with Charles before doing this, apparently it is detectable on the Genesis where a read from the VDP port will increment the internal address counter (cpu\m68000\m68k_in.c). - MB86233 CPU: Modernized core - MB88xx CPU: Modernized core - MC68HC11: Modernized core (drivers\30test.c, hitpoker.c, skeetsht.c and taitojc.c) - MN10200 CPU: Modernized core (audio\taito_zm.c, drivers\taitogn.c and zn.c) - PIC16C62x CPU: Modernized core. This core seems to be completely unused. - PIC16C5x CPUs: Modernized core - PSXCPU . Removed some left-over TIMER_CALLBACK_MEMBER declarations (psx\dma.h and rcnt.h) . Added undocumented opcode that behaves like DPCL (cpu\psx\gte.c and psxdasm.c) - S2650 CPU: Modernized core - T5182 CPU: Converted chip to a device (audio\t5182.c and drivers\darkmist.c, mustache.c and panicr.c) - TMP95C063 CPU . Modernized TLCS-900 core (drivers\taitopjc.c and taitotz.c) . Moved the I/O handling into it's own class & hooked up TO1/TO3 to output on Port A. . A hack is needed because ngpc doesn't set PACR/PAFC, which may be because it's a custom part. . Separated I/O Ports on both CPU's so you can apply the DEVCB2 callbacks individually . Added 8/16 bit data bus configuration to TLCS900H. Default is 16bit, (MESS) NeoGeo pocket is 8 bit. . Changed Taito PJC driver (Operation Tiger) to use TMP95C063 CPU like the taitotz.c games - TMS32082 CPU: Another bunch of TMS32082 stuff. Improved vector op disasm and more disasm fixes. Added more opcodes. Added Parallel Processor + more MP opcodes. Splitted MP and PP disassembler. PP disassembler progress (tms32082\dis_pp.c). More PP disasm fixes (cpu\tms32082\dis_pp.c). MP interrupts and more PP disasm work. More MP opcodes. - TMS34010 CPU: Placed some of screen update functions in TMS34010 cpu core classes as result removed some scrlegcy.h includes - TMS9995L CPU: Fixed TMS9995 divide operations. Force word-aligned workspace pointer and program counter in TMS9995. - ADPCM sound: Modernized mjkjidai_adpcm and renegade_adpcm devices (drivers\mjkjidai.c and renegade.c) - AICA sound . Implemented DMA . Small DEVICE_STOP cleanup . Hooked up AICA-to-SH-4 irqs . Device-ized AICA RTC device, passes RW comp test, doesn't pass clock test. . Fixed AICA DSP - BSMT2000 sound: Modernized periodic interrupt in decobsmt_device - Discrete sound: Small DEVICE_STOP, DEVICE_RESET and DEVICE_START cleanup - ES5506 sound: Small DEVICE_RESET cleanup - ES5510 sound: Improved debug capabilities, better disassembly, bugfixed many opcodes. Most effects programs now produce correct results. Fixed saturating ALU operations, greatly improving the behavior of many programs. - Exidy sound: Modernized device (drivers\berzerk.c, exidy.c and victory.c) - Namco 62xx sound: Modernized the skeleton namco62.c device - OKI6376 sound: Modernized device - S14001A sound: Modernized device (drivers\berzerk.c and wolfpack.c) - SCSP sound: Hooked up DGATE functionality for DMA. Fixed DMA when SH-2 enables it. - Sega/Yamaha 315-5560 sound . Modernized MultiPCM device . Use address space instead of direct memory region. Fixed invalid error message and copy/paste typo. - Seibu sound: Modernized the Seibu ADPCM device and converted the Seibu sound system to be a device. Fixed Clang compiler warnings (audio\seibu.c). - Signetics 2636 sound/video: Modernized device. Merged S2636 video and sound implementations and moved them to machine\. - SP0250 speech: Modernized device - Taito sound . Improved TC0140SYT/PC060HA NMI handling, preventing lost interrupts (audio\taitosnd.c). . Synchronize CPUs when maincpu accesses the chip, this fixes recent Drift Out sound breakage. - Taito Ensoniq ES5505-based sound: Converted taito_en to a device - TMS5110/TMS5220 sound: Small DEVICE_START cleanup - YM2413 sound: everted KSL value order to 0, 1.5, 3.0, 6.0dB/oct after testing with a real YM2413 - 68681 DUART: Flagged device as deprecated - 74148 TTL: Modernized core. This still needs updating to devcb/devcb2 (machine\74148.c; drivers\carpolo.c and vertigo.c). - 74181 TTL: Converted to a device (machine\74181.c; drivers\berzerk.c) - 74153 TTL: Modernized core. This still needs updating to devcb/devcb2 (machine\74153.c; drivers\carpolo.c). - 8255 PPI: Fixed incorrect device name - HD63484 video . Modernized HD63484 (video\hd63484.c; drivers\segajw.c, shanghai.c, sigmab52.c, taito_b.c and wildpkr.c). . Flagged device as deprecated - i8275 video: Flagged device as deprecated - i8275x video: Converted device to devcb2 - MC6847 video: Small PALETTE_INIT cleanup - Atari Custom . Atarigen: Disabled unused private members (machine\atarigen.h). Added eeprompar.*, implementing a simple interface for parallel EEPROMs. Created atari_eeprom_device which wraps a 2804 or 2816 EEPROM with the standard Atari write-locking mechanism. Updated all drivers to use this, and removed all EEPROM stuff from atarigen. Added missing macros (machine\eeprompar.h). Fixed device description conflict. . Atarimo: Convert atarimo to a device. Still a bunch more cleanup/improvements to do; this is pretty much a direct port of the existing functionality, built on top of the sprite_device. Keep MSVC happy when compiling for x64 (video\atarimo.c; warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?). . Atarirle: Moved tilemap_memory into a generic memory_array class, since it is more generally useful than just in tilemaps. Code is now in memarray.*. Converted the Atari RLE motion objects device from a half-assed device into a full-assed device, leveraging the memory_array class. - Data East Custom . DECO 104: Started integrating DECO104 findings from Charles, done a preliminary hookup of Double Wings to it (input ports bit order not yet verified). Nuked old bad simulation code for DW. Started pushing other games through the new 104 code, removed the old simulations. Make Pocket Gal Deluxe use the new DECO104 code, it has a different scramble on the address lines just to make things annoying even if the checks are trivial (drivers\pktgaldx.c and machine\deco104.c). Incorporate extra 104 findings from Charles, will clean up as next step. 104 table reformat and info update. Removed some commented out code from the old, not existing anymore Deco104 simulation (drivers\boogwing.c, dietgo.c, pktgaldx.c and rohga.c). . DECO 146: Fixed DECO 146 compile - Konami Custom . Modernized the unused K001005 device, just because. This implementation should be merged with the non-device one in video\gticlub.c. . Removed some unnecessary devlegcy.h includes (video\k053244_k053245.c) . Avoid usage of uninitialized memory and improved regs initialization (video\k054156_k054157_k056832.c) . Updated some leftovers from the konamiic modernizations that are behing a debug if (drivers\gijoe.c, konamigx.c, moo.c, mystwarr.c, rungun.c and xexex.c) . Fox palette out of bounds access (video\k053246_k053247_k055673.c and k054156_k054157_k056832.c) - Taito Custom: Improved TC0140SYT/PC060HA NMI handling, preventing lost interrupts (audio\taitosnd.c). - ATA . Replaced ISA16_IDE_CD with ATAPI_CDROM, replaced ISA16_IDE & ISA16_IDE_CD in southbridge_device with two BUS_MASTER_IDE_CONTROLLERs. . Refactored to use ATA_INTERFACE (drivers\firebeat.c) . Preliminary ATAPI/Dreamcast DMA. The timing needs to be moved into the devices, so the timing hack can be removed from the driver (machine\atapihle.c and mess\machine\dccons.c). . Preliminary SET FEATURES support. Only set transfer mode is currently supported, but this checks/sets flags in the identify device buffer. The buffer has been moved up into atahle and the idehd has been changed to work with words instead of bytes (emu\machine\atahle.c/h, atapihle.c/h, idehd.c/h, drivers\cobra.c, kinst.c, taitotz.c, viper.c and machine\gdrom.c). - SCSI CR589 . Fixed space in device shortname . Store firmware in NVRAM - EEPROM . Renamed eeprom_device to serial_eeprom_device in anticipation of adding a parallel eeprom device . Splitted eeprom.c into a base class base_eeprom_device and a serial-specific subclass serial_eeprom_device. Moved the latter into its own file eepromser.c and significantly cleaned up/simplified the code. The new code should be functionally the same as the previous code, but expect that to change soon. As a side-effect, the size and bus width of the EEPROM is now specified in the ADD macro rather than in the interface structure. . Rewrite serial EEPROM devices, breaking them out into separate chips of the proper size and protocol. Update all drivers, removing custom implementations, and replacing them with standard ones. Moved core read, write, erase functionality into the EEPROM base class a simulated delays in write/erase cycles. Still some more testing/verification work left to do. . RDY/BUSY on ER5911 is always live regardless of CS state. Fixes G.I. Joe and probably others (machine\eepromser.c). . Make sure shift register is clear at the start of a read to simulate the dummy 0 bit. Fixed polarity of CS/CLK lines in mitchell.c. . Fixed most regressions due to EEPROM changes. Remaining issues are noted at the top of eepromser.c. . Added eeprompar.*, implementing a simple interface for parallel EEPROMs. . Created atari_eeprom_device which wraps a 2804 or 2816 EEPROM with the standard Atari write-locking mechanism. Updated all drivers to use this, and removed all EEPROM stuff from atarigen. . Small DEVICE_STOP cleanup in machine\er59256.c - Flash ROM . Added Macronix 29LV160TMC sub-type to intelfsh.c, used by Sega Dreamcast. . Fixed typo in machine\serflash.c (drivers\nexus3d.c) - GDROM . Added Offset to GD-Rom 0x11 & 0x12 (machine\gdrom.c) . DRQ wasn't setted properly, now there are proper gd-rom command writes . Added SCSI command 0x71, now Sega Dreamcast games boots properly . Some extra SCSI cmds . Refactored Sega Dreamcast to use an ATA interface (machine\gdrom.c/h, mess\drivers\dccons.c) - CHDMAN . Force libflac to never be optimized in a more portable way (lib\lib.mak and libflac\lpc.c) . Removed accidental change in 0.149u1 (INT32 g_finds = 0;) (tools\chdman.c) . Set GD flag for both "bare" and CHD input (lib\util\cdrom.c) - aleck64.c: Fixed typo in video\polynew.h - atarig1.c, atarig42.c, atarigt.c, atarigx2.c . Moved tilemap_memory into a generic memory_array class, since it is more generally useful than just in tilemaps. Code is now in memarray.* . Converted the Atari RLE motion objects device from a half-assed device into a full-assed device, leveraging the memory_array class. . Fixed collateral damage in motion object devicification (atarig42.c) - atarig42.c, offtwall.c, rampart.c, relief.c: Added 2k EEPROM to guardian, offtwall, rampart, relief, roadriot - atarisy2.c, cyberbal.c: Added 512 bytes EEPROM to 720, csprint, cyberbal, paperboy and ssprint - ataxx.c: Changed I80186 CPU3 clock speed to 8MHz. Replaced 'Redline Racer 80186 DAC' sound with DAC. - blmbycar.c: Use OSC & XTAL values in the machine config - cave.c . Cosmetic cleanup, give banks meaningful names and remove some stone age relic code. Cleanup includes\cave.h and video\cave.c. . Use XTAL consts for DonPachi - cd32.c: Modernized AKIKO device - chihiro.c . Added more patches needed until USB is implemented . Added support for more texture formats and drawing primitives to the 3d accelerator - cidelsa.c: Use auto_alloc_array_clear for uninitialized memory - cps1.c . Fixed various graphical issues in clone Captain Commando (bootleg), marked as working. . Fixed flashing of a layer in the ring in clone Saturday Night Slam Masters (bootleg with PIC16c57) and removed a bunch of gfx roms accidently included during initial development. . Added correct MBJ 22B rom to clone Muscle Bomber: The Body Explosion (Japan 930713) - crystal.c: Modernized vr0video device - cupidon.c: Make it a bit more obvious cupidon.c is a video based system, not a screenless fruit machine one. Added 512x256 display with 60Hz and 65536 colors. - ddragon3.c . Reduced some code duplication, preparation for creating a new device. . Fixed gfx1 rom loading and VSync in ctribe, ddragon3 - dec0.c: Added assert to machine\dec0.c to indicate array out-of-bounds access. Fixed hippo assert. - deco32.c . Switched Locked 'n Loaded sample regions around . Added ln-00.j7 prom to Night Slashers - decocass.c . Modernized decocass_tape device . Documentation on the earlier version of the Deco Cassette System - ddragon.c . Cleanup based on Double Dragon schematics . Fixed clone Double Dragon (World set 2) freezes when finishing the game (ID 00416) . Fixed Double Dragon II - The Revenge (World) and clone (US) slows down in the first level, after the helicopter appears and missing graphics when starting 2-Player (ID 02106) (ID 03908). - dkong.c, popper.c and stuntair.c: Small PALETTE_INIT cleanup - exidy.c: Moved Targ/Spectar audio functions into driver state while having no luck in fixing MT05217 (audio\targ.c and includes\exidy.h) - exidy440.c . Multisession bug fix for Exidy 440 audio . Removed some legacy interrupt trampolines (audio\exidy440.c). Disabled unused private members (audio\exidy440.h). - gaelco.c: Fix for crashing in Squash and Thunder Hoop - gaelco3d.c: Modernized Galeco device - galaxia.c: Fixed typo (colors are 3bpp, but how they are generated is a mystery) - galaxian.c, galaxold.c and dambustr.c . Modernized galaxian sound device. Added 'Galaxian Custom' sound to 4in1, azurian, blkhole, catacomb, checkman, dambustr, dingoe, galaxian, gmgalax, kingball, kong, luctoday, mooncrst, moonqsr, orbitron, pisces, redufo, rockclim, skybase, streakng, tdpgal, tenspot, uniwars, vstars and warofbug. . Moved galaxian.inc contents (inputs, romdefs and gamelist) to galaxian.c driver . Added MCFG_MACHINE_RESET_REMOVE to Ozon I - galpani2.c . Added DIP locations to all sets . Added complete Gals Panic 2 (Korea) PCB layout - gammagic.c . Removed local ATAPI code in preparation to use the new code, but the CPU gets lost after executing the first instruction . CPU isn't going to get very far without anything mapped at 0xf0000. It now dies in the Award recovery BIOS, trying to access the FDD. - gticlub.c . Moved some gticlub code into driver and removed legacy calls used . Fixed gticlub ROM region sizes (needs new hash computations, haven't done them yet). Fixed hashes to match truncated files. . Added 256 bytes NVRAM to gticlub, hangplt and slrasslt - harddriv.c: Fixed MCFG_SCREEN_UPDATE_DEVICE - iteagle.c: Added Atmel 90S2313 AVR internal CPU code rom to gtfore02 and gtfore02o. Documentation update. - jaguar.c: Modernized Jaguar cpu core - ksys573.c: Refactored Konami System 573 to use ATA_INTERFACE - laserbat.c and cvs.c: Added 3x Signetics 2636 sound - leland.c . Finished modernizing the Leland sound and use new 80186. This fixes rotor sample cuts out in Viper for 2 seconds during helicopter takeoff at the begining of a level (ID 01146). . Replaced 'Leland DAC' with 2x DAC sound in alleymas, basebal2, cerberus, dangerz, dblplay, mayhem, powrplay, strkzone, upyoural and wseries. . Fixed I80186 CPU3 clock speed and replaced 'Redline Racer 80186 DAC' sound with 3x DAC and Speaker in aafb, offroad, offroadt, pigout, quarterb, redlin2p, teamqb and viper. - macrossp.c: Start looking at the driver line regs - megadriv.c: Moved Sega pico out of megadriv.c and into segapico.c, it really has nothing in common with the MD aside the CPU+VDP and should be properly separated. - megaplay.c and megatech.c . Small VIDEO_START cleanup in machine\segamsys.c . MCFG_*_RESET(0) cleanup in Megatech - micro3d.c: Modernized Mirco3D noise device - mitchell.c: Fixed polarity of EEPROM CS/CLK lines - model1/2.c: Modernized Sega Model 1 sound board; now shared instead of copy/pasted. - model2.c: Fixed Model2 validation error. Get Model2 driver up to most recent compilable edition before Manx TT DX Rev D addition. - moo.c: Fixed uninitialized memory in video\k053251.c. This fixes moo.c out of bounds accesses (AddressSanitizer: heap-use-after-free) (ID 05241) - multigam.c: Fixed scanline interrupt in mmc3 mapper (ID 05232) - namcond1.c: Make YGV608 a device. GCC 4.8.1 compile fix (video\ygv608.c; i<512 -> i<256). Removed legacy includes in Namco ND-1 driver. - namcos12.c: Fixed Super World Stadium '99 freezes in attract mode and ingame (ID 05263) - namcos22.c . Moved static functions/vars to class and converted 3D renderer to polynew . Removed legacy NVRAM handler. Note: Super namcos22 NVRAM files are now proper size instead of interleaved with zeros. Using the new eeprompar device instead. Fixed VS2010 warning. Added 8k NVRAM to alpinerd, alpinesa, alpinr2b, aquajet, cybrcycc and tokyowar. . Fixed dspram error in Cyber Cycles . Revised driver hardware infos - naomi.c . PowerVR2 . Fixed ARGB0888 fb format, fixes licensed by Sega screen. . Correct refresh rate . Fixed blank polarity . Experimental scanline code, to be improved on a later date. . Fixed H-Blank IN regression, made CH2 DMA to fire irq via CPU cycles (machine\saturn.c, dc.c and video\powervr2.c). . Make the hblank-in scanline counter to reset at proper screen height . Improved timing of end-of-render irq . Added Maple HW trigger (includes\dc.h, machine\gdrom.c, maple-dc.c/h and video\powervr2.c) . Added SPG control register, used to change pixel clock dynamically. . Added preliminary YUV converter . De-hacked framebuffer conversion, fixes YUV gfxs in NFL 2k1 and Tetris 4D. . Fixed left-most green line in YUV conversion . Bump accumulation buffer src bitmap, fixes F355 Challenge assert. . Fixed vblank irq trigger when interlace mode is used . Added 888rgb24 conversion types and YUV_TW texture hook-up, used by Soul Calibur (MESS - Dreamcast). . Support for non-textured polygons with packed and floating colors . Preliminary startx/starty support, display is repeated on left-right edges, to be improved. . Fixed fb out-of-bounds writes . Fixed description in machine\naomim4.c . Preliminary GD-ROM data transfer via PIO, makes (MESS) Giga Wing to boot without sound (includes\dccons.h and machine\dccons.c) . Attempt to improved GD-ROM timings . Temp removal of NAOMI idle skips (machine\naomi.c) . Hooked up AICA-to-SH-4 irqs . Device-ized AICA RTC device, passes RW comp test, doesn't pass clock test. . Fixed ARMRST behaviour (machine\dc.c) - neogeo.inc . Endian fix for kof2003 protection (machine\neocrypt.c and neoprot.c) . Fixed NeoGeo memory leak, clean up inputs a bit. Changed 'Test Switch' dipswitch to 'Service Mode'. - ninjaw.c: Modernized ninjaw_subwoofer device - nmk16.c . Fixed sprite priority issues (tested on Thunder Dragon 2 PCB). This fixes wrong graphic layer depth for enemy planes in Mustang and clones (ID 02814), priority glitches in stage 1/3 of Air Attack and graphics priority problem especially in the 3rd stage of Rapid Hero (ID 00780). . Fixed array out-of-bounds access in nmk16_state::tharrier_mcu_r() . Converted NMK004 to a device - peplus.c . Minor corrections and documentation updates including known payout tables for some sets . Added new prom to pexp0019 - pgm.c . PGM IGS027A protection (machine\pgmprot_igs027a_type1.c) . Notes on level data . Format starts to make sense . Manually fix table a bit, improved note. . Attempting to improved the accuracy of the igs027a table by validating the data . Some tables are strange, probably need to test them on hardware. . More level data parsing. Reworking it so we can start to use the parser in the actual protection routine. . The how to play screen now uses the data structure created by our protection handling at least, still most object types unknown, and possibly errors in the xor table. . Return the right amount of data for wider levels . Identified and added some of the special level elements and upper bitmask bits . Tidy up some no longer needed pgm/puzzli2 bits notes . Fixed Clang compiler warnings . Implement some PGM missing ASIC25/ASIC28 registers. This fixes the high score screen for olds & clones. . Mark olds and clones olds100 and olds100a as working, removed a few now unneeded patches, notes and miscellanea. . Added support for a China internal ROM to kov2p and clones kov2p202 and kov2p204 (Games now playable) . Fixed Puzzli 2 and clone Puzzli 2 Super (Games now playable) - polepos.c: Added DIP locations to the Pole Position and Pole Position 2 sets - seattle.c and vegas.c . Modernized SMC91c9x device . Avoid conflict in seattle driver - segae.c: Clean up, added savestate support. - segae.c and megatech.c: Got rid of redundant read in 315-5124. Prevent writing outside the m_selected_sprite array in 315-5124. Small simplification. - segas16b.c . Hooked up gfx writes properly in clone Altered Beast (Datsu bootleg) . Added the Sega ID# information for the Juuouki (set 3, Japan, FD1094 317-0068) set - segas18.c: Removed obsolete legacy code from includes\segas18.h - slotcarn.c: Fixed array out-of-bounds access - snk6502.c: Modernized snk6502 device - snk68.c: Added dipswitch locations to all sets - splash.c: Adjusted MSM5205 clocks to proper values - stfight.c . Added M68705 CPU3 to Empire City and clones . Improved sound comms in Street Fight driver . Notes for Phil and fixed Cross Shooter sound regression, not going to touch it further. . Fixed array out-of-bounds access in machine\stfight.c . Hooked up ADPCM/Coin control MCU. Fixed YM2203 clock speeds (see notes). . Clock cleanup. Changed 68705 to 3MHz. . Fixed graphical sprites and fragments 'lag' in the lower left corner of the Empire City during attract mode and occasionally during game play (ID 04427) - system1.c: Better m_sprite_bitmap than specifying our own size 640x260 (video\system1.c) - taito_b.c . Modernized MB87078 device . Use actual OSC values for Crime City's machine config. Use actual XTAL clocks for machine config for Rastan Saga 2 & clones. . Correct (or set) several clocks in driver based on actual OSCs on real PCBs (hitice, masterw, pbobble, tetrista and silentd) - taitoair.c: Updated CPU clocks and removed non-existent c45-xx.22 ROM from Air Inferno. Added some notes. - taito_f2.c: Use XTAL consts for Cameltry (World, YM2203 + M6295) - taitotz.c: MSVC 2010 variable fix - taito_x.c: Moved the Superman C-Chip implementation in the driver state - terracre.c . Removed silly input port hack from 'Kid no Hore Hore Daisakusen' . Removed nonexistent second YM2203 from clone Terra Cresta (YM2203) - tumbleb.c: Fixed YM2151 and OKI6295 sound clock speeds in chokchok, cookbib, dquizgo, htchctch, wlstar and wondl96 - unico.c: Use actual OCS clocks in the machine config. Fixed OKI6295 clock speeds. - vamphalf.c . Standardize driver speedup code - no functional difference . Combined and correct Puzzle Bang Bang speedups . Added correct gfx1 rom to clone Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128) . Fixed most regressions due to EEPROM changes. Remaining issues are noted at the top of eepromser.c. This fixes Mr. Kicker stops booting/working properly after you get a high score, or if you don't have a default EEPROM with 'valid data (ID 04206). - vicdual.c: Moved some audio handlers in vicdual_state (audio\carnival.c, depthch.c, invinco.c, pulsar.c, vicdual.c, drivers\vicdual.c and includes\vicdual.h) - yunsung8.c: Added PCB layout for Cannon Ball (Vertical). Magix PCB is nearly identical to Cannon Ball PCB except for swapping the Cypress FPGA chip for a QuickLogic chip. - zn.c: atpsx_dma_read: We already know the cpu, no need to look it up. - AGEMAME . Added missing aakart_device in aristmk5_usa machine config. This fixes goldprmd and magicmsk crashed after OK (ID 05089). . Moved some logic around in BFM_Sc1/2 drivers and video\bfm_adr2.c. Made bfm_adr2 a device. . Fixed array out-of-bounds access in bfm_sc2_state::e2ram_init() . Fixed array out-of-bounds access with m4richfm__e . Fixed visible area in m_tppokr . Converted bfm_dm01 to a device. Note that since AFAIK no game using it show something on screen, it's difficult to know if it works correctly (drivers\bfm_sc2.c and bfm_sc4.c). . Minor changes to bfm_sc2 . Added proper return behaviour to the mechanical meter simulator. Added proper meter detection to Maygay M1, attract modes now run for many games. Replaced AY-3-8913A sound with YM2149 (drivers\maygay1bsw.c, maygay1b.c and machine\meters.c). - Amiga: Modernized sound device (audio\amiga.c; drivers\alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) - Attack Ufo: Fixed MOS6560 warning (if (m_tone1samples == 0)). - Bad Lands: Fixed scanline_update. This brings the Badlands bootlegs to the same non working state they were before the regression (ID 05056). - Batman: Added 2k EEPROM - Caveman Ninja: Correct redump of Caveman Ninja (World Rev 1) and added PCB locations to the original Caveman Ninja sets - Cool Riders: Small PALETTE_INIT cleanup. Prevent crash caused by m_screen changes (just renamed "lscreen" to "screen"). - Cube Quest . Modernized CUBEQCPU core . Disabled unused private members (cubeqcpu.h). Fixed compiler warning. Fixed uninitialized member in cquestsnd_cpu_device (fixes potential cubeqst crash). - Double Dealer . Fixed game regression, the 68k change broke it because it does clr.l during the ram test and our protection sim overlaying RAM is read triggered with a counter. . Correct clock speeds to match PCB. Fixed clock divide. . Added DIP locations, correct all dipswitches and sort coinage. - Double Wings . Started integrating DECO104 findings from Charles (Game now playable), done a preliminary hookup of Double Wings to it (input ports bit order not yet verified). . Nuked old bad simulation code for DW. Misc cleanups. Added Guru README / clocks. Fixed Z80 CPU1 and OKI6295 clock speeds and VSync. - Excelsior: Use actual OSC clocks for Excelsior machine config - Express Raider: Cleanups from Express Raider schematics: Correct CPU and YM3526 frequencies (ID 05284). Improved protection simulation. Added interrupt acks. Added service coin input. - Five Clown: Don't use ROM_COPY with overlapping memory in Five Clown. ROM_CONTINUE would probably be more appropriate, but this produces identical results as the old code. - Flower: Joystick is 4-way - Free Kick: Minor doc update about the Sega setting enabling Japanese text on the "continue" screen. Documented some PALs in clone Free Kick (bootleg set 1) that need to be dumped. - G.I. Joe: RDY/BUSY on ER5911 is always live regardless of CS state. Fixes G.I. Joe and probably others (machine\eepromser.c). - Hotdog Storm: Fixed OKI6295 clock speed - Laser Base: Added inputs, flip screen and notes - Midnight Landing . DMA RAM appears to be double buffered, and the 68000s likely 8MHz. Fixes bad 'LANDING'/'COURSE OUT' text (Game now playable). . Added CPU board layout, based on small photo. . Fixed M68000 CPU1/2 and TMS32025 CPU5 clock speeds, VSync, palettesize and region unknown. Added 2nd MSM5205. - Mosaic (F2 System): Use XTAL clocks in the machine config so we can clearly see where the 1.7897725 MHz comes from (drivers\f-32.c). - New Fantasia: Changed 'Fantasy '95' from a parent set to a clone of 'New Fantasia (set 1)' - Off the Wall: Added 2k offtwall-eeprom.bin EEPROM. This fixes service mode lost its color (ID 00784). - Panic Road: Fixed sprite-sprite priorities and collision handling in Panic Road (Japan) and clone (Germany) (Games now playable) - Parodius DA!: Fixed uninitialized memory in video\k053251.c. This fixes AddressSanitizer heap-use-after-free in parodius.c (ID 05246) - PinMAME . Modernized PPS4 cpu core (cpu\pps4\pps4.c; drivers\gts1.c) . Added Type 3B CPU board to machine\decopincpu.c (Data East Pinball CPU boards), fixed silly switch-related bug. . Various de_3.c and de_3b.c cleanups, hooked up CPU board devices. . Added DMD (Deco Type 3) to DE_3B . Correct lower dot intensities (video\decodmd3.c) . Stop DE_3B detest from bombing out with an invalid bank . Correct year in rab_320 - Pocket Gal Deluxe: Make game use the new DECO104 code, it has a different scramble on the address lines just to make things annoying even if the checks are trivial. - Rohga Armor Force: Fixed game freezes at the mission 5 boss (ID 00035) and game continues but no player is present under certain conditions (ID 03480). - Rolling Crash / Moon Base: Improved colors (ID 05281) - Sand Scorpion: Added DIP locations and correct default settings for sets - Side Pocket: Added asserts to driver to indicate array out-of-bounds accesses - Skimaxx: Fixed MCFG_SCREEN_UPDATE_DEVICE - Steel Gunner 2: Fixed missing Player 2 Start (ID 05287) - Tap a Tune: Fixed controls and BSMT2000 interface with the help of schematics from Colorama (Game now playable). Fixed Z80 CPU2 clock speed, visible area and dipswitches. - Tetris . Correct clone Tetris (Japan, Taito B-System, Nastar Conversion Kit) and fill in missing Rastan roms needed for the conversion, correcting missing sound samples (ID 00980). . Added a missing PALs note for both Tetris B-System conversions . Fixed strange intermittent noise in background and music tempo in clone Tetris (Japan, Taito B-System, Nastar Conversion Kit) (ID 00980) . Use MACHINE_CONFIG_DERIVED for the 2 Tetris sets (they are conversion kits) - Top Speed . Fixed engine sounds only play when driving in tunnels or under bridges, and turbo sounds never play (ID 00942). . Various updates: Fixed MSM5205 hookups and implemented engine sound. Added Z80 CTC. Added volume controls. Correct 68000 clocks and VSYNC frequency. Changed interrupt handling to match hardware. Added motor control notes. Fixed sprite list parsing (no more mysterious red dot on the far left). - Touchstar Bonanza: Fixed cirrus_vga_device. Added bonanza_map and bonanza_io_map (Game now playable) - Tower of Druaga: Fixed sprites colors (ID 05268) - Trivia Madness: Added PCB layout. Fixed Z80 CPU1 clock speed. Replaced buttons with gambling control. - Twin Cobra II . Replaced badly dumped sprite rom in Twin Cobra II and clones. Added PALs. There are a couple of other bits to add and improvements to make. . Fixed the stray flashing pixels on the bottom left of the helicopter after starting a game (ID 00032). - Vs. Super Mario Bros.: Give the bootlegs with Z80 their own machine struct etc. not really sure what they want tho, they wait for 2002 to change, but that's a PPU address, forcing it to change makes the games run with broken sprites/flickering. I think they use the Z80 + SN for sound instead of the real NES sound, it's probably an interesting case for somebody who knows the NES a bit better than I do, obviously being cloned hardware a couple of other bits could have changed. - Dipswitch fixes in ddragon.c, dblewing, ddealer, galpani3, mlanding, nemesis.c, opwolf, polepos.c, sandscrp, snk68.c, tapatune and vastar.c - Fixed rom names in cps1.c, cninja.c, dietgo.c, fhawk, mainevt.c, mcr3.c, mcr68.c, mechatt, mvp, namcos12.c, newfant, polepos.c, rampage, snk68.c, taito_f3.c, tetrist and topspeed - Renamed (25pacman) to (25pacmano), (archrivl2) to (archrivla), (cottonj) to (cottonja), (ddpdojblk) to (ddpdojblka), (ddtoda) to (ddtodar1), (jparkj) to (jparkja), (kovshp) to (kovshpa), (manxtt) to (manxttc), (polepos) to (poleposj), (polepos1) to (poleposa1), (poleposa) to (poleposa2), (puzlbang) to (puzlbanga), (sfexpj) to (sfexpj1), (viostorm) to (viostormeb) and (vstars) to (ckongcv) - Description changes of Chase Bombers (World), Crazy Kong (bootleg on Galaxian hardware, encrypted, set 2), Cotton (set 1, Japan, Rev A, FD1094 317-0179a), Cotton (set 3, US, FD1094 317-0180), Cotton (set 4, World, FD1094 317-0181a), DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver), Excelsior (set 1), From TV Animation Slam Dunk - Super Slams, Guwange (Japan, Special Ver. 00/07/07), Jurassic Park (Japan, Deluxe), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX, 200, 100CN), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX, 200, 100CN), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX, 200, 100CN), Kung-Fu Master (US), Kung-Fu Master (World), Locked 'n Loaded (US, Dragon Gun conversion), Mechanized Attack (US, Version 1, Single Player), New Fantasia (set 1), New Fantasia (set 2), The Outfoxies (Japan, OU1), The Outfoxies (World, OU2), Pole Position (Japan), Pole Position II (Japan), Tetris (Japan, Taito B-System, Master of Weapon Conversion Kit), Tap a Tune, Tetris (Japan, Taito B-System, Nastar Conversion Kit), Touchstar Bonanza (Revision 2), Touchstar Bonanza (Revision 3) and Trivia Madness - Series A Question set - MAME . HLSL . Removed hlsl_read and hlsl_write options now that all slider options are plumbed and have values matching the INI settings . Added more surface release calls in order to fix device resetting . Fixed draw order for quads, overlays now appear on top of vectors in non-HLSL mode . Moved aperture.png loading into create_resources/delete_resources so that it is correctly reloaded when HLSL is toggled on and off . Fixed toggling HLSL off then on with ctrl-alt-F5 will drop its use of aperture.png (ID 05162) . Fixed Battle Zone displays black and white if HLSL is not enabled (ID 05214) . Fixed crash when hlsl_read is set to 1 (ID 05218) . Fixed you can't alt-tab and back with HLSL enabled and in 148 you could (ID 05235) . Restructured NTSC encode/decode shaders for better readability . Splitted HLSL pases into separate functions . General code cleanup in HLSL (windows\d3d9intf.c, d3dhlsl.c/h and winmain.c) . Minor shader cleanup and uniform consolidation . Started re-architecting the HLSL system to be data-driven . NOTE: Create new mame.ini with mame -cc. Switch at runtime to HLSL mode with Ctrl+Alt+F5. . Vector games: Fixed graphics remains imprinted even when exit the game (ID 05207) . Created new device_video_interface (emu\divideo.c) . Right now its sole purpose is to house a screen tag and to find the screen at startup, providing an m_screen object that can be used. One nice feature is that if there is only one screen and no screen has been specified, it will auto configure to that screen. This removes the need to explicitly specify a screen in the configuration for a large chunk of drivers (though doing so never hurts). A new macro MCFG_VIDEO_SET_SCREEN is provided, though devices are encouraged to define their own that maps there so it is obvious which device is being targeted. The device_video_interface's validation function will error if an invalid screen is specified or if no screen is provided but there are multiple screens present. . Updated all devices that currently had an m_screen in them to use the device_video_interface instead. This also has the nice benefit of flagging video-related devices for categorization purposes. It also means all these devices inherit the same screen-finding behaviors. For devices that had interfaces that specified a screen tag, those have been removed and all existing structs updated. . Added an optional_device m_screen to the base driver_device. If you name your screen "screen" (as most drivers do), you will have free access to your screen this way. . Future updates include: * Updating all devices referencing machine.primary_screen to use the device_video_interface instead. * Updating all drivers referencing machine.primary_screen to use the m_screen instead. * Removing machine.primary_screen entirely. . Now setting NULL explicitly for the screen tag will prevent the video interface from auto-finding the target screen . Tilemap . Made MCFG_DEVICE_VBLANK_INT_DEVICE param order more logic (emu\diexec.c) . Updated evice_execute_interface::interface_post_reset so screen is searched from same context (emu\diexec.c) . Removed tilelgcy.h since no more users exist . Fixed long-standing architectural wart: The priority bitmap is no longer owned by the tilemap system, and no longer exists globally in the machine. Instead it is allocated per-screen for all systems. This has several side-effects: 1. Previously, the pdrawgfx* functions were already changed to take the priority bitmap as a parameter. Now all other hand-crafted functions that mess with the priority bitmap generally must do so as well, and have been updated. 2. Calls to the tilemap system now need to provide a screen_device. This is not just for the priority_bitmap, but also for screen flipping, which previously always assumed the "primary screen" when doing flipping calculations. 3. All devices that implemented tilemap-like functionality have been updated to follow the same pattern, since they largely tend to call through to the core tilemap system at some point. . Moved tilemap_memory into a generic memory_array class, since it is more generally useful than just in tilemaps. Code is now in memarray.* . Converted the Atari RLE motion objects device from a half-assed device into a full-assed device, leveraging the memory_array class. . Added missing initialization in emu\memarray.c . More PALETTE_INIT modernizations (emu\video\315_5124.c/h, huc6260.c/h, v9938.c/h, drivers\big10.c, cave.c, csplayh5.c, ggconnie.c, kas89.c, kingdrby.c, kurukuru.c, megatech.c, meritm.c, sangho.c, segae.c, sfkick.c, sothello.c, tonton.c, tourtabl.c and video\tia.c/h). Removed unused legacy macro PALETTE_INIT_CALL (drivlgcy.h). . Initial commit of internal web server (web\mongoose.c), mostly to check compiling on various platforms. Added sample index page with menu (web\index.html, favicon.ico, images\logo-mame-small.png). Added json library and working example (web\json\autolink.h, config.h, features.h, forwards.h, json.h, json_batchallocator.h, json_internalarray.inl, json_internalmap.inl, json_tool.h, json_valueiterator.inl, reader.h, value.h and writer.h). Moved webengine into separate file, added callbacks for websockets and made example for triggering ui on driver change, also added json for game driver. Fixed compile with DEBUG=1 and detach do not remove, should fix server crash (emu\webengine.c). Display currently running driver and update on change on server side. Make it work on IE too. jquery mobile looks like better choice (web\js\jquery.js, jquery.mobile.js, css\jquery.mobile.css, images\ajax-loader.gif, icons-18-black.png, icons-18-white.png, icons-36-black.png and icons-36-white.png). Added screenshot option and serving it from webserver. Implemented first commands for web interface (web\commands.html). Fixed possible crash on exit (web\mongoose.c). Preps for slider work. Added sliders to settings page, and show current values (web\driver.html, image.html, info.html, logs.html and options.html). Some 5 min slider work, to make it affect settings. . Multisession bug fix for Exidy 440 audio (MAMEUI32/64) . Added MCFG_{CPU|DEVICE}_VBLANK_INT_REMOVE and MCFG_{CPU|DEVICE}_PERIODIC_INT_REMOVE to properly remove non-legacy VBLANK interrupts - the current code only reset the legacy interrupt which wasn't set anyways (emu\devcpu.h, diexec.c/h, drivers\dacholer.c, segas18.c and system1.c). Removed unused legacy VBLANK interrupt code (emu\devcpu.h, diexec.c/h). . Removed some unused device_irq_acknowledge_callback occurrances (cpu\arm7\arm7.h, arm7core.h, hcd62121\hcd62121.c, tms32031\tms32031.c/h and tms32051.c). . Removed unused periodic interrupt legacy code (emu\devcpu.h and diexec.c/h) . Removed some obsolete legacy stuff and unused member_wrapper_line from emu\driver.h and some unused macros from emu\drivlgcy.h . Removed obsolete define from osd\windows\windows.mak . Removed Visual Studio specific makefile define MAXOPT in favor of adding more generic define LTO (makefile and windows.mak). . Bulk removal of machine().primary_screen references from MAME drivers, in favor of using the common m_screen. This is 98% reliable except for cases where there were multiple screens or where the screens were not named 'screen' like everywhere else. Those cases will need to be revisited but should reveal themselves in the next round of regression tests. Eventual plan is primary_screen will go away. Devices that need to know the screen should have a device_video_interface. Drivers should find the screen device like any other, or use the pre-found m_screen for the common single-screen case. . Some cleanups of remaining machine->primary_screen references in drivers. Mostly minor except for the megadriv stuff, where I made a first pass at removing some of the legacy cruft (drivers\cobra.c, deco_mlc.c, dynax.c, esripsys.c, itech8.c, m10.c, segac2.c, segas18.c, taitotz.c, tickee.c, machine\irobot.c, megadriv.c, megavdp.c/h, emu\video\polynew.h, machine\namcos2.c, segamsys.c, snes.c, video\amiga.c and amigaaga.c). . Removed unused legacy macro SCREEN_UPDATE16_CALL (emu\scrlegcy.h). Removed unused legacy macro VIDEO_RESET (emu\driver.h). Small VIDEO_START and MACHINE_RESET cleanup (several drivers). Some SCREEN_UPDATE_* cleanups (emu\screen.h, drivers\ddenlovr.c, raiden2.c, snowbros.c, video\kan_panb.c/h, namcos21.c, toaplan2.c and vectrex.c). . Simpler implementation of MCFG_DEVICE_{VBLANK|PRIODIC}_INT_REMOVE . Fixed comment in emu\dimemory.c. Removed unused macro AM_DEVREAD8_LEGACY and removed unused AM_DEVWRITE8_LEGACY macro (emu\addrmap.h) . Removed some legacy interrupt trampolines. Removed legacy trampoline generic_pulse_irq_line_and_vector() (machine\generic.c). . Removed DECL_NORETURN in favor of ATTR_NORETURN (emu\emucore.h and osd\osdcomm.h) . Removed some unused legacy functions, flagged a few more things as deprecated and reduced the DEPRECATED noise a bit for now (emu\diexec.h, driver.h and machine\generic.c/h) . Various updates regarding commented out code (AM_DEVWRITE_LEGACY -> AM_DEVWRITE; AM_DEVREADWRITE_LEGACY -> AM_DEVREADWRITE; AM_READ_LEGACY -> AM_READ...), forgotten during past device modernizations. . Flagged devices as deprecated (machine\68681.h, machine\m68kfmly.h, machine\pd4990a.h, video\hd63484.h and video\i8275.h) . Disabled some unused legacy includes (drivers\segajw.c and wildpkr.c) . Fixed potential memory leak in win_open_ptty() (windows\winptty.c) . Commented out stray printf("%d, %d\n", config->width, config->height) (osd\windows\window.c) . Removed unused private member from osd\windows\d3dcomm.h . Improved -listdevices display, sorting by tag and showing device hierarchies (emu\clifront.c) (ID 05002) . XML/Info . Added info on input port and analog port definitions (emu\info.c). This is to provide some definition of the structure of input ports as they are logged in INP files. Would allow external programs to determine how many input ports there are, and under which ports analog ports are located. . ADSP2100 CPU: Fixed duplicate shortnames to allow XML to show device . AY-3-8910A sound: Setname corrections to further expand XML device coverage . Fixed missing devices from XML (excluding legacy cpu) (emu\cpu\m68000\m68000.h, m68kcpu.c, machine\mcf5206e.c, awboard.c, fd1089.c, fd1089.h, fd1094.c, naomibd.c, naomibd.h, naomig1.c, naomig1.h, naomigd.c, naomim1.c, naomim2.c, naomim4.c, naomirom.c and video\sega16sp.c/h) . Added missing short names to legacy devices and added validation that short name is always mandatory . Setname and description changes to DRC devices to indicate such is being used (cpu\mips\mips3drc.c, rsp\rspdrc.c and cpu\sh2\sh2drc.c) (IDT R4650 (big) - > IDT R4650 (big) DRC, R4700 (little) - > R4700 (little) DRC, R5000 (big) - > R5000 (big) DRC, R5000 (little) - > R5000 (little) DRC, RM7000 (little) - > RM7000 (little) DRC, RSP - > RSP DRC, SH-1 - > SH-1 DRC, SH-2 - > SH-2 DRC, VR4300 (big) - > VR4300 (big) DRC and VR4310 (little) - > VR4310 (little) DRC). . Updated zlib to 1.2.8 . Programmable Logic Device (PLD) . Added support to jedutil to view the PAL20X10, PAL20X8 and PAL20X4 . Added some preliminary work on figuring out what the undocumented fuses for the PALCE16V8 are. The data sheet does not document what all of the fuses are. - SDLMAME . Added the watchpoint view to the QT Debugger's "Break|Watchpoints" window (sdl\debugqtbreakpointswindow.c/h and debugqtwindow.c) . Revise the *IX man pages in SDL (sdl\man\mame.6 and mess.6) . Some small tweaks for Rasberry Pi/ARM-based systems out-of-the-box compilation experience (osd\sdl\osinline.h, sdl.mak) - MESS . Modernized F8 cpu core. Disabled unused private members (cpu\f8\f8.h). . Modernized LH5801 cpu core . Modernized Minx cpu core . Ensoniq 16-bit: SQ series are 21-voice, not 32. Fixes tuning vs. h/w. SQ also don't have an FDC (drivers\esq5505.c). Separate Ensoniq "pump" device out from ESQ5505. Sorted out ESQ5505 BIOSes for the SD-1 family: Newly dumped 3.0 for 21-voice, allow selecting 4.02 or 4.10 for 32-voice. . MIDI System Common messages should not override running status, fixes Sierra games crashing with the MT-32 (portmedia\pmmidi.c). Fixed some SysEx issues (portmedia\pmmidi.c). . Preliminary working MIDI out (machine\mpu401.c) . Added support for CD2501ECD variant of TMS52xx, used in the TI 99/8 prototype. Renamed TMC0285 to the more correct CD2501E in the TI 99/4a. . Added dummy uPD7752 device . Mac: Converted ASC to DEVCB2 IRQ output, some minor modernization . Small DEVICE_STOP, DEVICE_RESET and DEVICE_START cleanup in machine\tms9901/2.c . Use natural keyboard for AT clones and 386+ and fix 5160 bios 1 . Updated Apricot PC/Xi to use the new WD2793 controller, no support for apridisk image files yet (drivers\apricot.c). . IDE documentation for PC-9801 . Fixed ATA addressing, reduced rom space to 8k (as that is all the XTIDE v1 supported) and added all the v1 compatible roms (machine\isa_xtide.c). Use 2864 for ROM. This allows XTIDECFG to flash the rom. Tested with 2.0.0 beta 3. You must disable SDP because eeprompar doesn't emulate it & you must load from a file as if you load from eeprom then it only finds zeros (machine\isa_xtide.c). Renamed IDE8 to XTIDE. . Added back the Kaypro DSK format (still doesn't work!). Fixed memory leak (formats\wd177x_dsk.c). Fixed null sector case (formats\td0_dsk.c). Added raw formats for PC-98 and .hdm -> another raw image format, used by add_ssil so far. Don't switch off the motor when the fdc doesn't have a motor control pin (machine\wd_fdc.c). Added a bunch of floppy drives (imagedev\floppy.c). Removed useless unsigned variable checks in formats\ap_dsk35.c. . More 9801ux experiments (drivers\pc9801.c). Preliminary PS/1 support for AT (drivers\at.c) - Probably stalled until the kbc supports mice. Make 9801ux boot. Added read handler for CS4031 sysctrl port. Fixes booting the kernel on the Red Hat 7.2 install CD. Added some comments (includes\genpc.h and machine\isa.h). Documenting 3_5 floppy images. Fixed GRCG usage in PC-9801UX. SASI documentation (drivers\pc9801.c). Emulated the chipsets ability to intercept gate a20, ignore external gate a20 when emulation is enabled and keyboard reset commands (machine\cs4031.c). . Find a compromise between the at486 and 5170. at486 floppies work again and 5170 bios 1 still boots, at586 still fails it's floppy tests (mess\drivers\at.c. includes\at.h and machine\at.c) . Skeleton I8089 device. Go thru initialization. Channel initialization, first opcodes added. Added instruction decode and more opcodes, starts executing task blocks now. Implemented DMA engine, Apricot (MESS) now successfully runs the 8089 self-test. Converted to a proper cpu core, added debugger support and disassembler. Improved I8089 debugger view. Fixed Visual Studio compilation (cpu\i8089\i8089.h and i8089_channel.h). . Fixed colors and video in (MESS) visicom . mpt02: Fixed CDP1864 colors. Fixed CDP1864 background color sequence. . Starts to read floppies in Compis (Telenova 1985; fixed external interrupts in 80186) . C64 Magic Voice WIP with CMOS 40105 . Fixed ready handling, allow ready connected to vcc and Data overrun drops drq (machine\wd_fdc.c) . Modernized pc_lpt device (machine\pc_lpt.c) . Modernized the dl1416 device . Fixed IBM5150 keyboard regression introduced in r24103. On the ibm5150 the PPI PB2 output cannot influence the mainboard keyboard data output (machine\genpc.c). - Compiling . Removed obsolete legacy define from emu\emu.h . Added makefile define FASTDEBUG to disable some debug-specific stuff, that is causing performance hits (for e.g. profiling) (makefile, emu\emucore.h, schedule.c and windows.mak). . No need for scrlegcy.h include in drivers\bsktball.c . Some legacy cleanups of comments (cpu\cubeqcpu\cubeqcpu.h, f8\f8.h, drivers\megaplay.c and video\redclash.c) . Fixed linking of UNIDASM when using MAME target . Made both DRC and Non-DRC compile for MIPS, RSP and SH2 core and added option to enable/disable DRC from command line (-drc -nodrc by default it's on). . Added command line option to force DRC C backend (emu\emuopts.c) . Documented the network compile option (makefile) . Added some useful fatalerrors (cpu\sh4\sh4.c and video\powervr2.c) - Debugger . Added a watchpoint debug view (debug\debugcmd.c, debugcpu.c/h, debugvw.c/h, dvbpoints.c/h and emu.mak) . Added makefile define DEPRECATED to show warnings about deprecated code. Added ATTR_DEPRECATED and flag some stuff in diexec.h as deprecated. . Added support to display dividers in the debugger state view (debug\dvstate.c and distate./h) . Excluded a few codebits with FASTDEBUG=1 (emu\debugger.h and profiler.h) 0.149u1 - New games: Desert Dan, Hidden Catch 2000 (AT89c52 protected) and Pit Boss Superstar III 30 (9233-00-01) - New Working games: Sea Battle, Super Shanghai Dragon's Eye, Wonder Boy III - Monster Lair (set 5, Japan, System 16A, FD1089A 317-0086) and World Class Bowling (v1.3J, Japan) - New Non-Working games: Carnival King (v1.00.11), Chaos Breaker (v2.02J), Chase H.Q. 2 (v2.0.6.JP), Giga Wing Generations (v2.02J), Goketsuji Ichizoku: Matsuri Senzo Kuyou (v200906230), Golden Tee Fore! 2002 (v2.01.04 UMV), Homura (v2.04J), The King of Fighters '98: Ultimate Match (v1.00), Naomi DIMM Firmware Update for CF-BOX (Rev A) (GDS-0042A), Raiden III (v2.01J), Raiden IV (v1.00J), Samurai Spirits Sen (v1.00), Shikigami no Shiro III (v2.06J), Spica Adventure (v2.03J), Stunt Typhoon Plus, Taisen Hot Gimmick Mix Party and Trouble Witches AC (v1.00J) - New clones: Arcadia (NMK), Dragon Gun (Japan), Fighter's History (Japan ver 42-03, DE-0395-1 PCB), Golden Tee 3D Golf (v1.9L), Golden Tee Fore! 2002 (v2.00.00), Guardian Storm (Germany), Jackal (World, Rotary Joystick), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX), Mini Boy 7 (set 3), P-47 - The Freedom Fighter (Japan, Export), Pit Boss Superstar (9221-12-01), Shanghai III (US), Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg), Speed Up (Spanish bootleg of Pole Position), Street Fighter Zero (Asia 950605), Super Poker (v100xD03) / Formosa, Tetris (Japan, Taito H-System), Three Wonders (bootleg), Volfied (US), Volfied (World), Zombie Raid (9/28/95, Japan, prototype PCB) and Zombie Raid (9/28/95, US, prototype PCB) - New drivers: cavepc.c, lindbergh.c and taitotx.c - ALPHA-8201/8301 CPUs: Modernized CPU cores - Am29000 CPU: Modernized cpu core. Moved added initialization to constructor. - ARM CPU . Modernized cpu core . Removed useless branches . Fixed display of flags register - ARM7 CPU . Modernized cpu core . Fixed compile (0xffffffff80000000L -> U64(0xffffffff80000000); cpu\arm7\arm7drc.c) . Do not use space in shortnames (arm7\arm7.c) - Cinematronics CPU: Modernized CCPU cpu core - COP4xx CPUs: Modernized cpu cores (drivers\cidelsa.c, looping.c and thayers.c) - I386 CPU . Show segment register override on string insns (cpu\i386\i386dasm.c) . stos, scas and ins always use es (cpu\i386\i386dasm.c) . Added lots of MMX and SSE opcodes to the i386 processor . Added the fcomip x87 opcode . Preliminary cpu-side smi support . Don't take an smi until current instruction is complete . Fixed validation and listxml infinite loop (CPU_GET_INFO_CALL(pentium2) -> pentium; cpu\i386\i386.c) - I8086 CPU . Don't lose save_xor on reset in i86. i86 fixes to get TX-1 and Buggy Boy working again. . Modernize 8086 - I80186 CPU . Modernize 80186 . "mov cs,ew" is not a valid 80186 instruction - I80286 CPU: Repurpose unneeded static config as a20 line callback in i286 - M6502 CPU: Fixed some M6502 related compiler output (cpu\m6502\m6502make.py) - M6809 CPU: Initially setting S with a 'TFR *,S' evidently should enable NMI - M68000 CPU . Setjmp / longjmp doesn't play nice in 64-bit debug compiles in a modern core, so use C++ exceptions to mimic the behavior. Probably could be improved. . Fixed handling of double fault, not sure if this is proper or some other trap should be generated (cpu\m68000\m68kcpu.c) - MC68HC11 CPU: Some changes to PDP-11 (cpu\mc68hc11\mc68hc11.c and mess\drivers\pdp11.c) - MC68307 CPU: Now that we're modern treat the 68307 like other modern CPUs by using a derived type with the peripherals in emu\machine instead of being glued into the CPU core - MC68340 CPU: Untangle the skeleton 68340, where the code ends up is TBD. The actual core type of the 68340 is CPU32, so it is now derived from that. - PDP1/TX0 CPUs . PDP1: Fixed loading of paper tape, (MESS) Spacewar works again (cpu\pdp1\pdp1.c and mess\drivers\pdp1.c). . TX0: Fixed paper tape reader (cpu\pdp1\tx0.c and mess\drivers\tx0.c). Since this system is very much like the PDP1, it is assumed the same mods are needed. However there is no software available in the required format to test with. - PSX . Don't clear m_berr on every instruction (cpu\psx\psx.c) . Modernised psx palette_init (video\psx.c) - SH-2 CPU: Core timing changes: JMP should be 2 cycles, according to the manual. OR #imm,R0 should be 1 cycle and OR #imm,@(R0,GBR) should be 3 to match the manual and other ops. - TMS0980 CPU: Modernized TMS1xxx cpu cores (TMS0980, 1000, 1070, 1200, 1270, 1100 and 1300) - TMS32082 CPU: Groundworks for TMS320C82 core (Rolling Extreme by Gaelco). Added internal address map and opcodes. - Atari sound . Convert Atari JSA sound boards to their own devices, and replumb them through the Atari games that used them (drivers\atarig1.c, atarig42.c, atarigx2.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, harddriv.c, offtwall.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c). . Move Atari drivers to using ioport callbacks for sound communication stuff. Added HBLANK to standard screen ports. Consolidated duplicate functions. - Discrete sound: Fixed number of active inputs in several discrete macros. Added missing node in DISCRETE_INVERTER_OSC. Some whitespace change. - ES5510 sound . Preliminary hookup ES5510 to ES5505/5506. Samples are passed through unchanged for now (cpu\es5510\es5510.c/h, es5506.c/h, audio\taito_en.c, drivers\itech32.c, macrossp.c and ssv.c). . Dropped ESS5505/6 levels in driver to make up for changes in core which under normal levels caused VERY loud audio and clipping. Note: This is a temporary fix until the core itself can be made to react as it did before the last sound core change. - Exidy 440 sound: Modernized Exidy 440 CVSD audio device (audio\exidy440.c/h; drivers\exidy440.c and vertigo.c) - FM sound generator: Fixed Yamaha OPLx key scale level order (sound\fmopl.c (3526intf.c, 3812intf.c and 8950intf.c), ym2413.c and ymf262.c) - HC-55516 sound: Modernized sound chip (audio\exidy.c, redalert.c, williams.c, drivers\jangou.c, pcxt.c, s11.c, s11a.c, s11b.c, s11c.c, s6.c, s6a.c, s7.c and s9.c) - Irem sound . Modernized the irem_audio device (audio\irem.c; drivers\m52.c, m57.c, m58.c, m62.c and travrusa.c) . Modernized M72 audio device and removed dead code (audio\m72.c; drivers\m72.c, m90.c, shisen.c and vigilant.c) - MSM5232 sound: Modernized device (drivers\40love.c, bigevglf.c, buggychl.c, equites.c, flstory.c, ladyfrog.c, msisaac.c and nycaptor.c) - Namco sound . Modernized Namco sound device (sound\namco.c/h; drivers\20pacgal.c, baraduke.c, galaga.c, gaplus.c, jrpacman.c, mappy.c, namcos1.c, namcos86.c, pacland.c, pacman.c, pengo.c, polepos.c, rallyx.c, skykid.c, tceptor.c and toypop.c) . Changed 'Namco 15XX' sound to 'Namco' in gaplus.c, mappy.c and toypop.c . Changed 'Namco CUS30' sound to 'Namco' in baraduke.c, pacland.c, namcos1.c, namcos86.c, skykid.c and tceptor.c. - K007232 sound . Modernized device . Removed the chip from bishi_state class, since it seems that the driver does not use this device at all (drivers\ajax.c, aliens.c, bottom9.c, chqflag.c, crimfght.c, fastlane.c, flkatck.c, gbusters.c, gradius3.c, hcastle.c, mainevt.c, nemesis.c, spy.c, thunderx.c, tmnt.c, twin16.c and wecleman.c). . Fixed save states in MX5000 and clone (ID 04104) - K056800 sound: Modernized device - QS1000 sound: QS1000 sound core issue now not a mandatory include which allows tiny builds to be built without it - Time Pilot Audio: Modernized audio device (pooyan.c, rallyx.c, rocnrope.c, timeplt.c and tutankhm.c) - TMS5220 sound: Doing the dummy read immediately on reset - Track And Field Audio: Modernized audio device (hyperspt.c, sbasketb.c, trackfld.c and yiear.c) - uPD7759 sound: Modernized device (drivers\88games.c, bfcobra.c, bfm_sc1.c, bfm_sc2.c, bingoc.c, bladestl.c, combatsc.c, homerun.c, jpmimpct.c, jpmsys5.c, mainevt.c, maygayv1.c, micro3d.c, prehisle.c, rpunch.c, segac2.c, segas16b.c, snk68.c, system16.c, tmnt.c and twin16.c) - VLM5030 sound: Modernized speech synthesizer chip - X1-010 sound: Modernized device (drivers\champbwl.c, seta.c and seta2.c) - YMF271 sound . Fixed possible buffer overflow . Some cleanup and optimization. Added logerror info. Removed crash-prone malloc. . Noticed some inconsistencies with variable types (helps with big endian?) . Improved adsr timing a bit, attack rate was too slow. . Moved tables to classroom . Show popmessage in these cases . PCM looping fix . Fixed possible envelope volume clipping . Simplified fm code to understand the "Acc" bit, but didn't get much out of that and scrapped it. On the plus side, the refactor did fix a couple of small bugs with feedback/modulation. - YMF278B sound: Some optimization - YMZ280B sound: Fixed Scorpion 4 sound regression and updated note - YM3526 sound: Added a missing dependency for YM3526 (sound\sound.mak) - Q-Sound: DSP16 improvements: Fixed R=M disassembly. Added flag formatting. Shadow register is hooked up. Opcode & flag fixes. - 68681 DUART: Converted Hard Drivin' driver to use modern N68681 device - 8250 UART: Use clock-div rate setting for more precision (machine\ins8250.c) - 8253 PIT: Fixed null counter reset, fixes (MESS) grub invaders. - Atari Custom . Break out the sound communications part of atarigen into its own device. Update all callers (audio\atarijsa.c, cyberbal.c, drivers\atarig1.c, atarig42.c, atarigx2.c, atarisy1.c, atarisy2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, gauntlet.c, harddriv.c, offtwall.c, relief.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c, xybots.c, machine\atarigen.c/h and video\atarisy1.c). . Convert the Atari VAD chip into a device, half-way. Really needs device-ification of atarimo.c to do it properly, so this will get revisited once that is complete (machine\atarigen.c/h; drivers\batman.c, offtwall.c, relief.c, shuuz.c and thunderj.c). - Data East Custom . Modernization DECO BAC06 device (drivers\actfancr.c, dec0.c, dec8.c, madmotor.c, pcktgal.c, stadhero.c and video\decbac06.c/h). Modernization of the remainder of the deco_bac06 device. . Modernized DECO16 IC device (video\deco16ic.c/h; drivers\backfire.c, boogwing.c, cbuster.c, cninja.c, darkseal.c, dassault.c, dblewing.c, deco156.c, deco32.c, dietgo.c, dreambal.c, funkyjet.c, mirage.c, pktgaldx.c, rohga.c, simpl156.c, sshangha.c, supbtime.c, tumblep.c and vaportra.c). . Temp PORT_VBLANK("screen") fix for simpl156.c so games run - they only check bit 7. . Disabled unused private field (video\deco16ic.c) . Modernization of decocomn device (drivers\boogwing.c, cninja.c, dassault.c, dietgo.c, pktgaldx.c, rohga.c and video\decocomn.c/h) - DECO 104 . Moved Double Wings protection sim to the DECO 104 file (machine\deco104.c) - no functional change. . Start reworking some of the 104 bits to make things easier later down the line. Shuffle Double Wings address bits around too. . Switched the Wizard Fire reads around too so that they are more correct and align with Rohga. Make Caveman Ninja read addresses closer to Rohga / Wizard Fire etc. Bring the Double Wings addresses properly into line too (machine\deco104.c). Let Double Wings share the common protection handlers for ones we already know from other games, might make things worse due to the missing ones thos. Night Slashers and Dream Ball using generic DECO 104 protection. . Refactor DECO104 to pump most games through a standard function. Fixed save states. - DECO 146 . Begin creation of modern DECO 146 device with info from Charles MacDonald (machine\deco146.c/h; drivers\sshangha.c) . Changed a few bits around based on discussion, still not right. Different (better/more correct) interpretation of Charles' data after some discussions. . Reformat DECO 146 in a bit but you can start Super Shanghai Dragon's Eye now at least. Looks like the original might not need / use quite the same video hacks as the bootleg. Improved formatting of table. . Hooked up the new DECO 146 sim side-by-side with the original in Edward Randy, it does seem that chip had the same functionality even if it was marked differently. . Experiment with Mutant Fighter and DECO 146 protection. It's also similar, if not the same. . Funky Jet works with the new code too, note the address bitswap is the *reverse* of the one to get from Fighters History to Nitro Ball format.. I suspect there is a way to get from where we are to both of those too, and that there are in reality 2 different chip types 146 (+ various rebadges of it) and 104. . Moved some functions around for further research and studying . Switch around the address bits on output port handling on the Fighters History / Nitro Ball type. This brings special sound/xor/mask ports to the same as shanghai etc. and also keeps values in the 0-127 range. This is most likely the unscrambled state based on tests. Still need to investigate the read side of it. Should be no functional change. . Re-order Fighters History / Nitroball read in the same way, this makes the read ports consistent with robocop 2 and lemmings... although I can't find a connection with shanghai on the read addresses, seems like an alt mode maybe? . Moved the bit reordering out of 'core' function and into the per-game ones for Nitrobal and Fighters History . Collapse bitswaps (Fighters History out ports now use the same swap as Funky Jet) also reformat before further work . A magic address xor means Nitro Ball can work with DECO 146 code and Fighter's History. Start hooking Fighter's History up to use DECO 146 protection. Removed the 'UNEMULATED PROTECTION' flag from Fighters History, for the first time ever you can actually play it until the end (ID 00420) (previously the last 2 bosses would glitch because the protection results were missing; need to look at the video mixing bug causing bad BG colour in test mode still). Try a different bg pen in fghthist. . Pump Stadium Hero '96 through generic 146 code . Put Captain America, Diet Go Go, Dragon Gun, Lemmings and Robocop 2 through the generic protection implementation . Fixed save states - Flash ROM . ATA flash device derives from IDE HDD device and adds pccard interface, instead of using an IDE controller. . Moved the GNET protection command processing to ataflash.c - KONAMI Custom . Modernized devices in konicdev.c: K007342, K007420, K051316, K051733, K051960, K052109, K05324x, K053251, K053936, K054000, K054338 and K056832. . Fix for Over Drive assert (video\konicdev.c) . Split up in their own files the remaining modernized devices contained in konicdev.c. Disabled unused private field (video\konicdev.c). . Modernize K037122 device (drivers\hornet.c and video\konicdev.c/h) . Modernized K053252 device (drivers\dbz.c, hexion.c, moo.c, mystwarr.c, overdriv.c, qdrmfgp.c, rollerg.c, rungun.c, vendetta.c and xexex.c) . Preparing for some work on Tasman (k054156_k054157_k056832...; drivers\konamigx.c, mystwarr.c, zr107.c, includes\asterix.h, bishi.h, dbz.h, djmain.h, gijoe.h, lethal.h, moo.h, overdriv.h, parodius.h, qdrmfgp.h, rollerg.h, rungun.h, simpsons.h, surpratk.h, tmnt.h, xexex.h, xmen.h, video\konamiic.c and konicdev.c). . Shuffle some things around ready for attempting to kill off non-device code. Better splitting of the 4x device. Removed duplicate code. Move some sprite code around. Make functions more similar for easier comparison / reduction. Duplicate code reduction. Make code more similar, improve some variable names etc. Unify some bits of the gx/non-gx sprite implementations. Further consolidation of codepaths. . Added video\k001006.c/h, k001604.c/h, k007121.c/h, k007342.c/h, k007420.c/h, k037122.c/h, k051316.c/h, k051733.c/h, k051960.c/h, k052109.c/h, k053244_k053245.c/h, k053251.c/h, k053936.c/h, k054000.c/h, k054156_k054157_k056832.c/h, k054338.c/h, konami_helper.c/h and konamiic.txt. Changed video\konicdev.c to k001005.c/h and k05324x.c/h to k053246_k053247_k055673.c/h. Removed video\konamiic.c. . K055555 reworking (Mixer Device / Priority encoder, drivers\bishi.c, djmain.c, konamigx.c and mystwarr.c) . Documented that the Over Drive sprite DMA/irq line is hardly ever set. This actually makes the emulation *worse* for now, but might provide some insight into how it can be fixed. . Modernized the K001604 video device (drivers\cobra.c, gticlub.c, nwk-tr.c and zr107.c) and disabled some unused private members - MC6845 CRT: Added rudimentary support for 'interlace and video' mode - NB1413M3 Custom . Modernized/converted chip to a device (machine\nb1413m3.c; drivers\hyhoo.c, nbmj8688.c, nbmj8891.c, nbmj8900.c, nbmj8991.c, nbmj9195.c, niyanpai.c and pastelg.c). Removed some includes made unnecessary by recent changes. Fixed MACHINE_CONFIG in clone Seiha [BET] (Japan 870723). . Moved NB1413M3 configuration to inline config - Seibu CRTC . Realized that Seibu SPI still uses their CRTC chip, updated Seibu CRTC and notes. . Added some extra Seibu CRTC values . Death to sei_crtc dummy device and state-ized Sengoku Mahjong and Good E Jong video functions . Converted Seibu CRTC to a proper device (video\seibu_crtc.c) . Hooked Seibu CRTC to D-Con and Blood Bros. hardware. Fixed regression with Blood Bros. driver. Note: An extra layer is currently disabled via the layer enable register in Seibu CRTC device (bit 2). Is it even tied to any RAM portion? . Hooked up Seibu CRTC to clone Raiden (set 3) and Raiden 2 driver . Seibu CRTC really loved to PAL-ize those addresses . Some minor changes - Sega 16-bit Custom: Split out the roadgen (drivers\segahang.c/h, segaorun.c/h, segaxbd.c/h, mame.mak, video\segahang.c, segaic16.c/h, segaorun.c and segaxbd.c). - Seta Custom: Modernizing the seta001 device (X1-001A and X1-002A) (drivers\cchance.c, champbwl.c, seta.c, srmp2.c, taito_x.c, tnzs.c and video\seta001.c) - Taito Custom . Modernization of the remainder of taitoic. Split up the video devices contained in taitoic.c (video\pc080sn.c/h, pc090oj.c/h, taito_helper.c/h, tc0080vco.c/h, tc0100scn.c/h, tc0110pcr.c/h, tc0150rod.c/h, tc0180vcu.c/h, tc0280grd.c/h, video\tc0360pri.c and tc0480scp.c/h) . Modernized PC080SN video device (drivers\darius.c, opwolf.c, rainbow.c, rastan.c, topspeed.c and video\taitoic.c/h) . Modernized PC090OJ video device (drivers\asuka.c, opwolf.c, rainbow.c, rastan.c, volfied.c and video\taitoic.c) . Modernized TC0080VCO, TC0100SCN, TC0280GRD, TC0360PRI and TC0430GRW devices. Let's actually initialize things in TC0100SCN to 0. Having uninitialized stuff anywhere is bad. Old 'C' devices would clear everything automatically, new 'C++' ones will not, you must do it manually. This appears to help with the missing layers issue (video\taitoic.c). - TMS34061 video controller: Converted TMS34061 to be a device (video\tms34061.c, drivers\capbowl.c, guab.c, itech8.c and jpmsys5.c) - IDE . If there is no drive selected then there is nothing to read from, although not sure what value this expect to receive (machine\idectrl.c). . Moved the buffer from the IDE controller to the device . Moved more state from idectrl.h. Moved password fields off the IDE controller. . Moved block_count to the device, renamed some IDE commands to make them closer to the spec & also use the block count for triggering the first irq on read/write multiple. . Either I misunderstand the spec or the code but judge dredd doesn't like this change. . Moved a couple more variables. A couple more over the fence. . Fixed crash if no disk. Fishin' Frenzy has no hard drive at all and prefers this value (return 0xff). . Allow more than one IDE controller on the same device . Area 51: Site doesn't like the same value as Fishin' Frenzy, maybe there is a difference between the value you get for no drives at all and no current drive. . Moved the Error register, status, command, status timer and reset timer across. . Splitted hard drive emulation from the IDE controller . Simplified ide_device_interface (machine\idehd.c) . Derive Chihiro's baseboard ide from IDE mass storage device (machine\idehd.c) . Simplified idehd status flags & fixed ct486 booting in MESS . Fixed crash when reading from non-existent hard drive (machine\idehd.h) . Changed "features" to "identify device". Don't set DRDY immediately when executing identify device as a timer is fired that will set it and trigger an interrupt anyway. Diagnostics fail if no identify device response is available. Set correct register contents at reset. Added edge detection to reset. Clear irq as soon as reset is triggered. Don't clear DRDY when resetting. Only call update_irq if something changed. Removed some places that were setting sector count. Added some #defines for masking bit fields (machine\idectrl.c, idehd.c, drivers\chihiro.c, cobra.c, kinst.c, taitotz.c and viper.c). . Fixed head incrementing when using CHS with 16 heads (machine\idehd.c) . Removed read_key() from ide_mass_storage_device as it's only used by ataflash and that was also reading the key in manually (machine\ataflash.c, idehd.c, drivers\chihiro.c). . Added device number in logs, fixed issues with status flags that was causing FreeBSD to fail to boot with two drives (achine\idehd.c). . Added ata_interface_device, ide_controller_device is now only for pc register mapping. Renamed ide_mass_storage_device to ata_mass_storage_device. Changed ide_hdd_device so it only picks up it's image from the harddisk_image_device, which does a lookup to see if there is a region itself (emu\imagedev\harddriv.c, ataflash.h, idectrl.c/h, idehd.c/h, machine.mak, drivers\atlantis.c, calchase.c, chihiro.c, cobra.c, djmain.c, extrema.c, fruitpc.c, funkball.c, gamecstl.c, globalvr.c, iteagle.c, jaguar.c, kinst.c, maygayep.c, mediagx.c, midqslvr.c, midvunit.c, photoply.c, pinball2k.c, pyson.c, qdrmfgp.c, quakeat.c, queen.c, savquest.c, seattle.c, taitogn.c, taitotz.c, twinkle.c, vegas.c, viper.c, voyager.c, vp101.c, zn.c, includes\djmain.h and qdrmfgp.h). . Added VIA VT83C461, which is currently implemented as a 32 bit chip. This allows hooking up to the jaguar driver without any glue, but Primal Rage 2 does as the io bus it's connected to is only 16 bit. . Only build the identify buffer on the first reset, so patches made by the driver aren't lost if the device is reset. . Fixed issues that caused the HD to report that the diagnostics failed (machine\idehd.c and drivers\chihiro.c) . Log unknown writes (machine\idehd.c) . Moved identify buffer manipulation and master/user password setting from ata interface to the ata mass storage device. These should be stored in the CHD (emu\machine\atadev.c/h, ataintf.c/h, idehd.c/h, drivers\cobra.c, djmain.c, kinst.c, taitotz.c and viper.c). . Make sure identify buffer is initialised (machine\idehd.c) . Added IDE_CONTROLLER_32 for systems that have 32 bit prefetch . Don't update irq/dmarq unless they change (machine\ataintf.c) . Uses one timer instead of anonymous timers, so that resetting the device will stop any outstanding work. BSY is always set when waiting for the busy timer to fire. Implemented DASP & PDIAG functionality, device 1 is detected during reset & if device 1 fails diagnostic then device 0 sets bit 7 of it's diagnostic result. Ide cards now default to 1 hard disk, otherwise device 1 without a chd will cause device 0 to report a controller error (AMIBIOS for example doesn't allow booting from device 0 if device 1 fails). Timing of DASP & PDIAG is set very short because of lack of wait states when accessing ATA bus. Improved SRST functionality, which has meant viper needed to be changed to trigger a hard reset instead of a soft reset. Writes to the command register are now ignored with BSY or DRQ is set (packet devices can accept the DEVICE RESET command but they are not supported yet). . Forgot the secret ingredient (machine\idehd.h) - CHDMAN . Removed unused src\lib\libflac\include\flac++. libflac++ was removed a long time ago and never used (lib\libflac\include\flac++\all.h, decoder.h, encoder.h, export.h and metadata.h). . Added in.params support to all tests (chdman\chdtest.py) . chdman -c would only overwrite the amount of compressions defined - part of the default compressions might still have been used. . Added unit tests for the CD-based compressions . Added support for .raw input for createhd (chdman\chdtest.py) . Added unit tests for createhd with .raw input and tests for each HD compression . Some cleanup and added support for createld (chdman\chdtest.py) . Added SHA1 check of output file (chdman\chdtest.py) . Treesize in laserdisc CHD was uninitialized when input video had no audio channels (lib\util\avhuff.c) . Added createld unit test . Fixed chdtest.py check for output folder existence, clear temp folder before running tests, log which test failed, added extraction for createcd tests cases and added remaining extractions. . Fixed yuy16_compress_to_yuy() sometimes writing all green video with YUV2 and UYVY (lib\util\aviio.c) . Adjusted logging a bit (chdman\chdtest.py) . Only try to clear temp folder when it exists (chdman\chdtest.py) . Added copy_hd_1 test case . Small formating change to lib\util\aviio.c . Added workaround to FLAC__lpc_compute_autocorrelation() for 32-bit GCC (aka non-SSE floating point) issues (lib\libflac\libflac\lpc.c) . Fixed deletion of output file in case of an error (tools\chdman.c) . Fixed hang when chd_file_compressor::async_read() failed (e.g. trying to read an .avi with unsupported color depth) and improved error reporting a bit (lib\util\chd.c and tools\chdman.c). . Correct SHA1 mismatch messages in chdtest.py . Disable creation of uncompressed LD CHDs in chdman.c . Disabled optimizations for FLAC__lpc_compute_autocorrelation() for 32-bit GCC builds to prevent different output filesizes with optimized builds (libflac\lpc.c). - MESS . PC driver cleanup: Moved the ct486 driver to its own file (mess\drivers\ct486.c), to avoid all the legacy stuff in at.c. . Use irq delay from pcjr for pcjx . Simplified status idehd flags & fixed ct486 booting in MESS. Fixed ct486 booting with two chd's loaded. . ISA: Added support for the IOCHCK signal to the ISA bus, this is used instead of directly issuing an NMI to the main CPU. Moved ISA device slot definitions to its own file to avoid copy & pasting the same list to different drivers. Fixed regression (machine\isa_cards.c). . Keyboard: Added IBM PC/XT 5150/5160 83-key keyboard emulation. Added skeleton for the IBM PC/AT and 3270PC keyboards. Emulated the IBM 5170 Model F PC/AT 84-key keyboard. Added some natural keys to generic keyboard. IBM5170 keyboard WIP (machine\kb_pcat84.c). Improved IBM5170 keyboard labels. Fixed PC/XT keyboard interface. . Modernized APEXC cpu core . Modernized CP1610 cpu core . Modernized HCD62121 cpu core . Fixed LR35902 CPU. Renamed FLAG_C/H/N/Z to LR35902_FLAG_C/H/N/Z to avoid clash against G65816 flags with same name. . Updated MC146818 RTC for devcb . Fixed obvious typo in SEC (Serial Electronic Counter; machine\sec.c) . Shut up Clang compiler warning about unused private field in upd1990a_device . Added skeleton for IMI 5000H hard disk controller . Floppy: Added Z-RAM floppy (hash\pet_flop.xml). Do the on-reset restore slightly differently (machine\wd_fdc.c). Splitted bml3 into three variants (bml3, bml3a and bml3b) according to floppy disk support. Only bml3a (5.25" disk) is considered working. Fixed uninitialized variable reported by GCC 4.4.7. Differentiate legacy from new hotness (machine\wd17xx.c). Converted mbee to modern fdc, still doesn't work though. Fixed compile (formats\flopimg.h). . Much improved CS4031 emulation, added DMA, interrupt controller, timer, RTC directly to the device as sub devices and added the generic functions needed for AT compatibility. Removed unused private field from src\mess\machine\cs4031.h. Fixed CS4031 16-bit DMA. Set CS4031 DMA controller clocks via chipset configuration. Fixed compile (machine\pcshare.c). . Serial device interface: Added attotime and clock-div forms of set_rateand rename check_for_start to rx_w. attotime from_hz is inverted so multiply (emu\diserial.c). Simplify diserial. . Ensoniq: Document latest panel protocol findings (machine\esqpanel.c and esqvfd.c). Ensoniq 16-bit: Better A/D parameter handling, allow panel device to send new analog data (drivers\esq5505.c and machine\esqpanel.c). . Fixed buffer overflow in mess\machine\intv.c detected by AddressSanitizer (char str[4] -> char str[5]) - 40love.c, bking.c, buggychl.c and msisaac.c: Modernized the buggychl_mcu device - 8080bw.c . Added address map and sound notes to Attack Force . Reverted Galactic fake sound emulation, it was worse than before. Removed Invaders samples. - adp.c, tmaster.c and vlc.c: Converted most remaining users of non-serial microtouch to serial - aleck64.c (RSP SSE optimizations/changes) . Fixed load/store opcodes . Added SSE versions of the following opcodes: VMADH, VADD, VSUB, VADDC, VSUBC, VCH, VCR, VMRG, VAND, VNAND, VOR, VNOR, VXOR and VNXOR. - arkanoid.c: Added Arkanoid hardware documentation - aristmk5.c: Added GAL dumps to BIOS - bishi.c: Removed Konami 007232 chip from bishi_state class, since it seems that the driver does not use this device at all (includes\bishi.h). - bking.c . Fixed collision detection (video\bking.c) (ID 03863). This fixes when you are shooting your ball, often you'll hit bunkers that appear to be plain fairway, trees which are not there and even water hazard areas which do not register as water. This makes gameplay very difficult at times. . No need to savestate temp bitmaps. Small cleanup. - champbwl.c, srmp2.c, taito_x.c and tnzs.c: Correct common typo on Seta PCB numbers - chihiro.c . Derive Chihiro's baseboard IDE from IDE mass storage device (machine\idehd.c) . Removed read_key() from ide_mass_storage_device as it's only used by ataflash and that was also reading the key in manually. . Fixed issues that caused the HD to report that the diagnostics failed. . Added lots of MMX and SSE opcodes to the i386 processor. Added the fcomip x87 opcode. Don't take an smi until current instruction is complete in i386. . Added a "UINT8 *memory(UINT32 &size)" method to the naomi_gdrom_board device that returns the size and a pointer to the decrypted gdrom data (used by chihiro). . Added basic stuff for the NVIDIA audio APU . Added the "chihiro curthread" debugger command, shows information about the current active thread. . Added the "chihiro irq," debugger command, to generate an interrupt with irq number 0-15 by hand. . Added more patches to let the software run even if USB is not implemented . Added the Chihiro Type 1 baseboard/mediaboard features to let the system load the gdrom games . Added incomplete save state support . Added support to the Nvidia 3d accelerator to draw primitives where the vertex data is not stored in a vertex buffer but contained in the command stream. - cinemat.c: Modernized CCPU cpu core - cps1.c . Removed copy-pasted comments in Three Wonders, and added a note. . Fixed striderj and 1941r1 ROMs labels and locations, added documentation and PCB infos to video\cps1.c. Minor cosmetic reorder. . Verified dinoj ROMs labels and locations, added documentation and pcb infos to video\cps1.c. . Added CK22B.1A PAL to chikij. . Added a note to wofr1 and wofa since they could not be original but patched sets coming from desuicided boards. - clshroad.c and wiping.c: Modernized the Wiping sound device - csplayh5.c, realbrk.c and seta2.c: Converted the TMP68301 to a device - cupidon.c: Some notes - deco32.c . Fixed ARM CPU1 clock speed in Tattoo Assassins. This fixes speed during fight is too slow (ID 03179). . Some findings about the DVI playback in Dragon Gun, also stopped the hang when killing the last boss (ID 00419). - deco156.c: Compile fix - galaxian.inc: Changed galdrvr.c driver to galaxian.inc - gamecstl.c, quakeat.c, savquest.c, voyager.c and xtom3d.c: Fixed CPU types - gei.c: Minor GEi driver doc update - harddriv.c: Converted Hard Drivin' driver to use modern N68681 device - hornet.c: Fixed Silent Scope crash (machine\adc1213x.c and drivers\hornet.c) - hyperspt.c and trackfld.c: Modernized the hyprolyb_adpcm device - itech32.c . Documentation update / rom label corrections . Minor doc update about Time Killer sound CPU program . Some minor corrections of dipswitches. Added a note about the Japanese World Class Bowling trackball input is read at an 45 degree offset compared to normal orientation. - jaguar.c . Added VIA VT83C461, which is currently implemented as a 32 bit chip. This allows hooking up to the Jaguar driver without any glue, but Primal Rage 2 does as the I/O bus it's connected to is only 16 bit. . Fishin' Frenzy has no hard drive at all and prefers this value (return 0xff) - legionna.c: Raw guess with Godzilla CRTC values - lethal.c: Removed note about some DIP switches not understood (ID 02451) - lindbergh.c: Added Sega Lindbergh BIOS. Force number to be unsigned so it can compile. Basic I/O hooked. A bunch of notes, can't do much else in current stage. Fixed CPU type. - megadriv.c . Fixed debug crashes / asserts (machine\megavdp.c) . Disabled excessive printf logging with 32x_scd (machine\megacd.c) - meritm.c . Correct dipswitch settings for Pit Boss Superstar III 30 & Pit Boss Supertouch 30 . Added DS1204 NVRAM to clone Pit Boss Superstar (9221-12-01) . Gave each Pit Boss series it's own dipswitches. Filled in what could be determined through game play. Added optional button for some games to Clear High Score or Calibrate Touchscreen. Added documentation about custom (regional) versions of Superstar / Supertouch 30 sets. Changed all Pit Boss series games to use the ZXCVB key layout with N for "play" and M for "raise". . Pit Boss Superstar III 30 is not a touchscreen game, so move it into the meritm_crt250_questions class of games. Rename to pbss330 to avoid naming conflict if/when a "standard" Pit Boss Superstar 30 shows up. . Use poker/gambling macros instead of assigning custom keycode - naomi.c . Explode the POWERVR2 core/ta and DMA registers. Fixed POWERVR2 blc/blic. . Converted Wave DMA to use cycles to attotime (machine\dc.c) . Added SCREEN_RAW_PARAMS for Naomi/DC. Fixed VSync. . Added note about Puyo Puyo Fever - neogeo.inc . Changed neodrvr.c to neogeo.inc driver . Clean up NeoGeo PVC protection (includes\neogeo.h and machine\neoprot.c) . Cleanup machine\neocrypt.c: Simplify kf2k3pcb BIOS decryption and fixed some endian issues. . Removed debug code - nss.c, sfcbox.c and snesb.c: Simplified SNES input handling and made controller ports 16bits wide, since this is the way they are accessed by our code. - pcat_nit.c: Fixed VSync - plygonet.c: Some misc fixes/cleanups (didn't touch DSP or video stuff). Removed button 3-4. Added 2nd coin slot and tilt. - psikyo.c . Added dipswitch locations to all sets in the driver . Filled in some unknown dipswitches from Battle K-Road . Moved Region settings into Game Configuration menu . Added a note about the Free Play mode in the Strikers 1945 sets not working - seibuspi.c . Cleanup work and added savestates. Removed unused functions. . Fixed possible garbage sprite . Update tile DMA safety check. Added notes. Changed 'JP1' dipswitch to configuration. . Improved back layer priority . Fixed DS2404 DEBUG crash . Added screen raw parameters. Fixed VSync. - shangha3.c: Added PCB layout for the Shanghai 3 PCB - slapfght.c, toaplan1.c and twincobr.c: Made some more additions and fixed some errors in Stephh's notes. Removed outdated comments. - speedbal.c: Added some timing info from AUMAP. Fixed VSync. - taitotz.c: Identified more 3D hardware bits - tasman.c: Preparing for some work on Tasman. Minor corrections. - tetrisp2.c: Fixed priority ram memory test (ID 05219) - thepit.c . Changed sprite handling a bit . Pretty sure that Round-Up clone T.T. Fitter isn't a bootleg (Taito Japan was known to name some games with a T.T. prefix) - toaplan1.c . Correct Z80 address map (RAM size is only 2KB) . Replaced Truxton Z80 ROM with correctly sized one . Fixed dipswitches and inputs (after verification of the M68000 and Z80 code) in Hellfire and clones . Replaced clone Hellfire (2P set, older) Z80 ROM with correct one from parent set . Reorganized Outzone sets and improved descriptions. Fixed dipswitches and inputs (after verification of the M68000 and Z80 code) in Outzone and clones. Tagged Out Zone (oldest set) Z80 ROM as BAD_DUMP and the set itself as GAME_IMPERFECT_SOUND after discovering that this clone's M68000 and Z80 ROMs are almost certainly mismatched, causing wrong sound effects. - toaplan2.c . Make Battle Bakraid inputs inherit from very similar Armed Police Batride . Battle Garegga DSW3 really are dipswitches and not "configuration" - twincobr.c . Added more information about TMS32010 MCUs to comments. Added documentation. . Draw once and mix, avoid ugly sprite hack for Wardner. . Removed further traces of Wardner hack, share sprite controller code with Rally Bike. . Added correct PROMs to clone Flyin' Shark (bootleg of Hishou Zame), fixed ROM names, inputs, and improved descriptions of both fshark bootleg sets. - tx1.c . The au_data roms are accessed at 16bits, so load it as such. This fixes graphics totally missed in TX-1 and Buggy Boy, audio start and suddenly stop in SDLMAME (ID 04466). . Modernized TX1 custom sound device (audio\tx1.c) - viper.c . Removed unnecessary code in driver as these are the defaults on reset now . Fixed crash in Silent Scope . Redumped World Combat (ver UAA?) memory card - williams.c: Improved Williams blitter logic and timing to match tests run on real hardware - zn.c . Renamed some #defines to match up closer to the ATA specification (machine\idectrl.c and idehd.c). Added validation to register access, switching Primal Rage 2 away from using the DMA interface in it's DMA handler as the game only executes normal read commands. . Added VIA VT83C461, which is currently implemented as a 32 bit chip. This allows hooking up to the jaguar driver without any glue, but primal rage 2 does as the io bus it's connected to is only 16 bit. - 1942: Fixed possibility to crash MAME if membank was 3 in 1942 and clones - 1943 Kai: Fixed DIP locations - AGEMAME . Fixed rom loading in Thriller (Crystal) (IMPACT) (set 1) . Fixed Scorpion 4 sound regression (sound\ymz280b.c) . Fixed debug crash in m4exotic, m4jflash, m4madmnc, m4mmm, m4przrfm, m4rhfev, m4spinbt, m4xch, m4xs and m4xtrm (ID 04841). Modified banking so it doesn't try to select a bank beyond the end of memory. There are far too many sets to test to look for regressions elsewhere. . Fixed stuck INT line after resetting in TMS9902 (jpmmps.c and jpms80.c) - Area 51: Site 4 and Funky Ball: Fixed Cyrix config register access - Area 51: Site 4, Funky Ball, GameCristal and Quake Arcade Tournament: Tidied up some IDE I/O addresses - Batman Forever: Basic hook-up of ADSP-2181 sound CPU - Beezer: Modernized the Beezer sound device and disabled some unused private members (audio\beezer.c) - Cerberus: Fixed 2-Player gameplay. Player 1's buttons control Player 2's actions; Player 2's buttons do nothing (ID 05228) - Commando: Added PAL16L8 dump to clone Commando (bootleg set 2) - Cross Shooter . Attempt to improved colors in clone Air Raid, without much luck. Hooked up sprite enable in Air Raid. Minor tile mod to Air Raid. . Dumped missing color table PROM (63s281.16a), textlayer colors are now correct. . Merged Cross Shooter (Taito version) with stfight driver. Added ROM bank and a bunch of hacks, brought it back to the initial state. Tried to hook-up the 68705 MCU, without much luck. Fixed Cross Shooter crashes related to the ROM bank. Added sprite template. Actually Cross Shooter Z80s runs at 6 MHz, fixed firing rate bug. - Crush Roller: Added Namco sound to clone (bootleg set 4) - Dream Ball: Added note regarding RS-232C status in ADDRESS_MAP - Golden Tee 3D Golf: Correct cut-n-paste error in rom names of clones (v1.91L), (v1.92L) and (v1.92S). - Hard Times: Fixed level 2-4 boss (ID 05220) - Hidden Catch 2000: Added protection patch and speedup. The sound 'works' using the external program rom from HC2 + rom patch but obviously I can't guarantee it to be correct but the game does seem based on the 'new hidden catch' codebase anyway and the sound programs are minimal code. Marked it as working, but need to look at where the extra OKI sound board maps and hope it isn't driven by the sound MCU. Note, setting registers seems broken in the hyperstone core since modernization. - Master of Weapon: Replaced b72-02.rom with correct dump b72-02.6 in Master of Weapon (World) and clone (US) - Mini Boy 7: Added proms ($0, 100) to clone (set 2) - Mogura Desse: Fixed crash (ID 05226) - Phoenix: Modernized Phoenix custom sound device - PinMAME . Get rid of some tag lookups in de_2. Made CPU board a device, and hooked it up to all drivers in de_2.c. . Hooked up enough stuff so that de_3.c games will boot. Implemented DMD Type 2 device and hooked that up to those games that use it. Commented out unused fields. Updated decodmd2 to use MC6845_UPDATE_ROW, and correct status return. Implemented DECO DMD Type 1 (128x16) display. There are various issues with communication to and from this DMD, so some games have issues, or won't even start properly. Improved communications with Type 1 DMD. Added low intensity dots. Fixed likely buffer overflow. Made machine config for decodmd use inline configuration. . Fixed Cyrix config register access in Pinball 2000 driver . Hooked up DECO Type 2 DMD in Whitestar driver. Fixed compiling. Changed M6809 CPU2 to M6809E (8MHz) CPU4. Changed LCD display to DMD and visible area to 128x32. Added ram option. . Modernized i4004 CPU core in Flicker (prototype) . Moved Back To the Future (2.7) and clones from de_3 to de_2 driver, they will now run. . Moved 'Laser War (8.3)' and clone 'Laser War (9.0 Europe)' to de_2, as CPU Type 1 and Alphanumeric Type 1 are very much similar to Type 2. de_1.c is no longer needed. Added layout for Alphanumeric Type 3 games. Replaced M6800 with M6808 (4MHz) CPU1, M6809E (8MHz), YM2151 (3580000 Hz), MSM5205 (384000 Hz), Sample and 2x Speaker. . Moved The Simpsons (2.7) and clone (2.0) from de_3 to de_2 driver, they will now run. - Queen: Added additions - Raiden . Misc cleanup, no emulation changes. . Added video enable bits and PCB info - Savage Quest . New Savage Quest BIOS dump (v451pg.bin), still marked bad as there are still issues however they may be emulation related. . Redumped Savage Quest Hard Disk . Allow you to skip the CMOS error screen by pressing the S key . Added Voodoo 2 device, but not hooked it up to the memory map as it's too slow for me to work on . Dumped S3 video BIOS in Savage Quest . Updated Savage Quest BIOS with dumps made with a topmax and changed the 1MB bank error to a popmessage (video\pc_vga.c) . Added 2nd IDE channel . Experimenting with Savage Quest. Added keypad control. - Sea Battle . Added most of the graphics hardware and I/O (Game now playable) . It needs ALWAYS_UPDATE and partial updates for collision detection . Fixed error: Comparison of constant 4278190080 with expression of type 'pixel_t' (aka 'unsigned short') is always true. . Improved inputs and dips . Small improvements and cleanup. Removed the remaining "QWE" layer disable. Added new gfx2 rom. . Make the internal artwork nicer, but can't find any good cab pics. . Fixed video Brightness slider doesn't work with get_black_pen. . Added S2636 sound and Speaker. Fixed S2650 CPU1 clock speed and palettesize. Added Stick, with 2x buttons and 2x coin slots for 1 Player. - Space Invaders: Removed rom 11.1s in in clone Space Invaders (Model Racing), is a 74154 on the PCB and not a ROM. - Super Shanghai Dragon's Eye: Added modern DECO 146 device with info from Charles MacDonald (Game now playable). Fliped the original spriterams around. - Tekken 2: Fixed clones not working (CXD8530CQ CPU1 - > CXD8530AQ) (ID 05231) - Thunder Fox: Fixed regression due to conversion mistake - Tic Tac Trivia: Fixed rom loading and labels in Tic Tac Trivia (6221-23, U5-0C Horizontal) and clone (6221-22, U5-0 Vertical) - Wonder Boy III: Merged clones (set 5, System 16A, FD1089A 317-xxxx, bad dump?) and (set 6, System 16A, FD1089A 317-xxxx) to 'Wonder Boy III - Monster Lair (set 5, Japan, System 16A, FD1089A 317-0086)' and added new decrypt key 317-0086 (software derived) which gets it working. - Zero Team: Added notes (game currently crashes due of an unknown check with collision detection) - Input port: Expand read_line to all 0s or all 1s; fixes cases where read_line (specifically vblank) callbacks are mapped to multiple bits (emu\ioport.h). - Dipswitch . Added DIP locations to thedeep, thepit.c, psikyo.c, shanghai.c, stfight.c, suna8.c and volfied.c . Fixed dipswitches in in cps2.c, eolith.c, lethalj.c, meritm.c, thepit.c, plygonet.c, seabattl, seibuspi.c, srumbler.c, st0016.c, suna8.c, thedeep.c, stfight.c, twincobr.c and toaplan1.c - Fixed rom names in cps1.c, itech8.c, itech32.c, jackal, seibuspi.c, suna8.c, tetris, tictac and twincobr - Renamed (fghthista) to (fghthistua), (fsharkbla) to (fnshark), (hellfire1) to (hellfire1a), (hellfire2) to (hellfire2a), (hellfire3) to (hellfire1), (kov2p) to (kov2p204), (kov2p205) to (kov2p), (outzone) to (outzoneh), (outzonec) to (outzone), (outzoneb) to (outzonec), (outzoned) to (outzoneb), (shangha3) to (shangha3j), (rfjetsa) to (rfjets) and (rfjets) to (rfjetsa) - Description changes of Buster Bros. (USA), Centipede / Millipede / Missile Command / Let's Go Bowling (rev 1.62), Fighter's History (World ver 43-07, DE-0380-2 PCB), Fighter's History (US ver 42-03, DE-0380-2 PCB), Fighter's History (US ver 42-05, DE-0395-1 PCB), Fighter's History (Japan ver 42-03, DE-0380-2 PCB), Flyin' Shark (bootleg of Hishou Zame), Flying Shark (bootleg with 8741), Hellfire (1P set), Hellfire (1P set, older), Hellfire (2P set, older), Jackal (World, 8-way Joystick), Raiden (US), Raiden (US, newer?), Raiden (set 3), Raiden (US set 1), Raiden (US set 2), Raiden (set 3), Rallys (bootleg of Spectar, set 1), Rallys (bootleg of Spectar, set 2), Side Trak, T.T. Fitter, Slip Stream (Brazil 950515), Slip Stream (Hispanic 950515), Super Buster Bros. (USA 901001), Tetris (Japan, Taito B-System, YM2203), Tetris (Japan, Taito B-System, YM2610), Tokushu Butai Jackal (Japan, 8-way Joystick), Top Gunner (bootleg, Rotary Joystick), Top Gunner (US, 8-way Joystick), Wonder Boy III - Monster Lair (set 1, Japan, System 16A, FD1094 317-0084), Wonder Boy III - Monster Lair (set 6, World, System 16B, 8751 317-0098) and Zombie Raid (9/28/95, US) - MAME . Tilemap system . Moved remaining legacy macros and typedefs to tilelgcy.h. This revealed a few drivers mixing and matching modern & legcy, which have now been fixed. . Changed get info callback signature to no longer pass the user_data pointer, but instead pass a reference to the tilemap object itself. Updated those few drivers using user_data to pull it out of the tilemap object with the new user_data() getter method. . Changed get info and mapping callbacks to be device_delegates so that they can be described at config time. . Added tilemap_memory object that is used internally for reading/writing to memory that backs a tilemap. This object is used to track a memory pointer that backs tilemap memory, and also is designed to transparently handle all bus width and endianness associated with reading and writing data in a tilemap. . Incorporated two tilemap_memory objects (basemem and extmem) into the tilemap object and added accessors to them, as well as read/write handlers for reading/writing to entries stored in the memory. This means that tilemap get info callbacks can now easily read data out of the tilemap in a generic way. . Rejiggered the initialization sequence for tilemap objects so that the tilemap_manager is not required to be present at instantiation. . Created a new tilemap_device, which can be used to declare a tilemap in the machine config, and which also is a tilemap object itself. The tilemap device will look for shared memory regions called "" and "_ext" and automatically plug them into the tilemap. The device also provides write handlers that can be used to write to the tilemap memory and mark tiles dirty, saving the need for each driver to write their own . Atari drivers: Removed all playfield and alpha memory and tilemap variables, apart from those needed by atarivc-using games (this will become a device in a future update). Updated all Atari 16-bit drivers to use the new tilemap_device instead, which provides all the needed functionality in a more generic way. . Recompute_speed even if we skip frame, makes wav's output same for any frameskip (emu\video.c) . Modernized generic palette initializations. Fixed palette viewer clamp (emu\uigfx.c). . MAME devices . Allow devices with execute interface to have a clock of zero, they are suspended and restarted on clock change. Note that the device still needs to have a clock before MAME actually starts executing timeslices (emu\diexec.c/h). Added comments to diexec.h. . Made makemak add dependencies for needed devices automatically, added partial meta data into device building mak files (build\makemak.c, emu\cpu\cpu.mak, machine\machine.mak and sound\sound.mak). . Added metadata to rest of make files for optional built devices (emu\machine\machine.mak, sound\sound.mak and video\video.mak) . Extended large amount of devices with shortname and source file data, found few that have fixed values and did modern cpu cores as well. . Expand listxml output with all devices having shortname (so all except cpus are in) and references to them. Ignore just samples when displaying sample device itself, since it gets first attached sample in XML. . legacy_cpu--: This is a first pass at converting to a modern device, I'd be surprised if there are no issue but it's already a weeks worth of updating + testing. . Removed unnecessary (and bogus) setting of a variable in screen_device::update_partial (emu\screen.c). Moved some legacy stuff from screen.h to scrlegcy.h. . Resolved devices specified for vblank/periodic interrupts relative to the owner device, not the device itself, to make it consistent with DEVCB2 patterns. This change is mostly hidden since most drivers use MCFG_DEVICE_VBLANK_INT_DRIVER and MCFG_DEVICE_PERIODIC_INT_DRIVER. But for those few cases where a device was explicitly specified, it reduces the awkwardness. We should probably standardize this when using device_delegates for consistency (emu\diexec.c/h, audio\atarijsa.c, midway.c, drivers\atarisy2.c and cyberbal.c). . Fixed driver_device OVERRIDE macros to work with devices, report_bad_device_cast contains the name of the device as well as the ID (emu\driver.h). . Device system: Moved required/optional device finders to a new header emu\devfind.c/h . Fixed memory subunit reconfiguration. To hit this bug you need to have two subsized handlers on the same address with a different starting address. Something like, in a 64-bits address map: AM_RANGE(0x00, 0x1f) AM_READ32(r1_r, 0xffffffff00000000) and AM_RANGE(0x10, 0x1f) AM_READ32(r2_r, 0x00000000ffffffff). Then r2_r (last entry) was called with an incorrect offset. To say that this configuration does not happen often is an understatement. . Need moar tables in emu\memory.c . Added endianness to the memory_share class (emu\memory.c). . Reduced AM_RAM_WRITE_LEGACY users (drivers\segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segaxbd.c, segaybd.c and video\sega16sp.c and segaic16.c) . Removed unused AM_RAM_DEVWRITE_LEGACY and AM_RAM_WRITE_LEGACY macro (emu\addrmap.h) . Improved exception handling in running_machine::run (emu\machine.c) . Moved some legacy macros from driver.h to drivlgcy.h and from tilemap.h to tilelgcy.h. Added some comments to tilemap.h. Moved some legacy stuff from mconfig.h to mcfglgcy.h. . Core validation message were never shown (emu\validity.c) . Removed unused examples from zlib folder . Made includes of C files in drivers section to use .inc instead, and also renamed galdrvr.c into galaxian.inc and neodrvr.c to neogeo.inc since it makes more sense. . Added a text change to the "RETURN" menu line ("Return to Prior Menu" -> "Return to Previous Menu"; emu\uimenu.c) . Added pngcmp to tools - SDLMAME . Finished up QT Debugger breakpoints window. It now shows breakpoints for all CPUs and lets you sort by each field. . Fixed uninitialized variables in sdlvideo_monitor_refresh() with SDL < 1.2.10. Disabled some warnings for GCC 4.8 (sdl\sdl.mak) . Don't hide cursor while in debugger (osd\sdl\debugqt.c) . Temp fix for QT Debugger until handling of main loop is done in different way (sdl\debugqt.c) - Compiling . Removed obsolete "tests" target from makefile . Some MemorySanitizer preparations: Put memory initialization in src\emu\emualloc.c behind NO_MEMORY_INITIALIZATION define. Disable memory initialization when msan is used. Use origin tracking for msan when Clang is used (makefile and emu\emualloc.c). . Added some flags for SANITIZE=memory to makefile . Cleaner way of disabling memory initialization with MemorySanitizer (makefile and emu\emualloc.c) . Enabled U64 and S64 for Visual Studio compilers (osd\osdcomm.h) . Initial support for Fedora 19 / GCC 4.8.1 . srcclean made the gamelist lop sided (drivers\decocass.c). One more fix for inc in srcclean. . The wrath of GCC 4.0.1 rumbles across the plains (drivers\chihiro.c). GCC 4.0.1 doesn't allow -1 for a UINT32 (mess\drivers\casloopy.c). . Removed a couple of unneeded devlegcy.h inclusions (thanks Osso for pointing them out) (machine\adc1038.h and sound\k051649.h). . devlegcy.h usage cleanup . Build dependencies for files in src\emu (makefile, mame\mame.mak, mess\mess.mak and ume\ume.mak) . Make FULLNAME use ?= instead of =, allows users to override the final executable name from the command line (makefile) . Simplified mamemak. Updated makemak to support splitting per libraries (build\makelist.c and makemak.c). . Start work on makemak to produce dependency per driver, added @ sign into lst to declare source file import used by makemak only, added just few testing examples. . Don't just ignore first char, but take full line (build\makelist.c) . Created lib per driver source file, and make linking correct. . Added layout dependancy (build\makemak.c) . Made dependency for new lst files (mame\mame.mak) . Added missing cpu metadata (cpu\cpu.mak) . Put optional cpu, video, sound and machine cores in one library in order to prevent linking issues on small builds. . Made makemak create lst as well, and some fixes for cpu.mak. . makemak WIP (targets\mame.lst, mess.lst and ume.lst) . Fixed array out-of-bounds access in drivers\merit.c, video\ppu2c0x.c, video\seibuspi.c (ejsakura) and video\system1.c. Fixed uninitialized memory in video\cidelsa.c (fixes array out-of-bounds accesses). Added asserts to mame\machine\megavdp.c to indicate array out-of-bounds accesses (machine\megavdp.c). . Fixes for building MAME with Visual Studio 2013 preview (cpu\mc68hc11\mc68hc11.c, rsp\rspdrc.c, tms32031\32031ops.c, emu\debug\debugcmd.c, machine\msm6242.c, pit8253.c, emu\rendfont.c, several formats\*_dsk.c, softfloat\softfloat-macros, drivers\beathead.c, machine\harddriv.c, video\tank8.c, tia.c/h, windows\ledutil.c, windows\winprefix.h and tools\chdman.c). . Output the actual JED test error message (jedutil\jedtest.py). Switch JED files to binary as the checksum includes line endings. . Fixed OS X 10.5 compile (machine\pccard.h and machine\k573cass.h). OS X 10.5 says hi (added ~ide_device_interface() {} in machine\idehd.h). Don't crash if pcap can't find a network interface's name (osd\osdnet.c). . Make the Python scripts line ending agnostic (fixes *IX/OS X build from mamedev.org source zip) (cpu\m6502\m6502make.py, m6809\m6809make.py, mcs96\mcs96make.py and tms57002\tmsmake.py). . Fixed drcbex{64|86}.c compilation . Some emu.h related redundant #include cleanup . Added two more output folders to ignore list (mame\trunk) . Fixed UME validation (Arcadia -> Arcadia (NMK)) 0.149 - New games: Attack Force and Top XXI (Version 1.2) - New Non-Working games: Music Ball, Nudge Double Up (JPM SRU, set 1), Reel Good Time (Rebuild) (Global) (Version 1.0) (EPOCH), Treasure Hunt (Global) (EPOCH) (Version 1.6) and Unknown SRU Game (JPM?) - New clones: 18 Challenge Pro Golf (DECO Cassette, Japan), Aerolitos (Spanish bootleg of Asteroids), Air Inferno (Japan), Ambush, Ave Fenix (Spanish bootleg of Phoenix), Battle Zone (bootleg of Mayday), Borderline (Tranquilizer Gun conversion), Car Action (set 2), Commando (bootleg set 2), Contra (Japan bootleg, set 1), Contra (Japan, set 2), Crazy Climber (Spanish, Operamatic bootleg), Cresta Mundo (Laguna S.A. Spanish Moon Cresta bootleg), Crisis Zone (CSZO3 Ver. B, set 2), Crisis Zone (CSZO4 Ver. A), Galaxian (bootleg, set 2), Guttang Gottong (bootleg on Galaxian type hardware), Impacto (Billport S.A., Spanish bootleg of Scramble), Mission Craft (version 2.7), Mysterious Stones - Dr. Kick in Adventure, Nudge Double Up (JPM SRU, set 2), Pajaro del Espacio (Spanish bootleg of UniWar S), Satan of Saturn (Inder S.A., bootleg), Scramble (Petaco S.A., Spanish bootleg), Scramble (Reben S.A. Spanish bootleg), Sky Soldiers (bootleg), Space Chaser (set 4), Suzuka 8 Hours 2 (Japan), TeddyBoy Blues (Old Ver. bootleg), ThunderJaws (rev 3) and WWF: Wrestlemania (rev 1.1 07/11/95) - New devices: ataflash, k573cassx, k573cassxi, k573cassy, k573cassyi, k573casszi, linearflash16mb, linearflash32mb, linearflash64mb and mpeg573 - Dynamic Re-Compiling: Fixed an assertion in the DRC C back-end (cpu\drcbec.c) - I386 CPU: Fixed I386 DASM improper signed display in some opcode parameters - M6502 CPU: Redo the M6502 prefetch and reset the state on debugger PC change - M6800 CPU: Resolved out_sc2_func for M6808/HD6301/HD63701 variants - PSXCPU: Added a check for a bus error when fetching an instruction, the bus error condition is cleared before the fetch so bus errors in the debugger don't cause an exception to be triggered. Fixed GTE FLAG register calculation on MSVC builds (psx\gte.c). Slightly more defensive ram & rom mapping (cpu\psx\psx.c). Updated comment (psx\dma.c). - uPD7810 CPU: Removed a no longer needed hack - Z80 CPU . Merged uPD7201 in Z80 DART and modernized the interface . (MESS) Refactored drivers to use z80dart.c instead of z80sio.c, the easy part. Refactored dart_channel to be of device_t kin. Refactored z80dart_channel to implement device_serial_interface. Cleanup driver. (MESS) superslv regression: Fixed Z80 DART. . Added RS-232 ports to machine\z80sti.c - DCS sound: Fixed typo in denver_w() (audio\dcs.c) - Filtered 1-bit DAC sound: Modernized speaker device and added save state (sound\speaker.c/h, audio\8080bw.c, drivers\maxaflex.c, pcxt.c, photon.c and photon2.c) - HuC6280 sound: Minor improvements to PCE save state reliability (sound\c6280.c) - K054539 sound: use device_post_load() instead of register_postload() - TMS5220 sound: Minor WIP, commented for now. - YM2610 sound: Fixed anything using YM2610 and allowing save will crash upon reloading a saved state (ID 05204) - YMF271 sound . Sync YMF271 stream before write . Addresses are 23-bit, and added alternate loop bit but can't find any game that uses it. . Get rid of timerA madness (m_timerA Val |= 0x300;) and (if( address < 0x800000) was useless) . Accurate timer/irq emulation. Disregard timer A upper bits after all (aka |= 0x300) . Correct YMF271 external memory handling. protip: Don't exit MAME during flashing the game. - YMF278B sound: Fixed irq regression - YMZ280B sound . Clear variables to avoid random crashing . Fixed YMZ280B irq timer regression . Better safe than sowwy (irq_state_timer) . Added YMZ280b readlatch (dummy read is documented by Yamaha) . Fixed YMZ280B compile error regarding reordering variables . Had to changed 16bit PCM again after removing firebeat hack . Small fix with ext mem write (no game uses it tho) - 6551 ACIA, IM6402 UART, MC2661 and MC68901: Added RS-232 ports - 8237 DMA: Convert its remaining users and kill it - 8250 UART . Added PC16552d to machine\ins8250.c . Set thre only if TX FIFO is cleared and unset received data available if RX FIFO is cleared. - 8251 UART: Improved interface - 8253 PIT: Modernized device (drivers\chihiro.c, laserbas.c, pcxt.c, vertigo.c, includes\vertigo.h, machine\pcshare.c and vertigo.c) - ADC12138: Modernize device (drivers\hornet.c and nwk-tr.c) - AM9517A DMA: Added AM9517A CPU2/3 to a51site4, calchase, funkball, gamecstl, gammagic, magtouch, midqslvr.c, pangofun, pcat_nit.c, pf2012, photoply, pinball2k.c, quake, queen, savquest, su2000, toursol, voyager and xtom3d - AY-3-1015 UART: Modernized device and added save state - HuC6270 video: Minor improvements to PCE save state reliability. Added VRAM saving to this chip. - Kaneko custom . Modernized KANEKO PANDORA device (video\kan_pand.c/h, drivers\airbustr.c, djboy.c, hvyunit.c, sandscrp.c, galpanic.c and snowbros.c) . Added note to Super Kaneko Nova System Sprite chip (video\sknsspr.c) - MB14241 Custom: Modernized device (drivers\8080bw.c, fgoal.c and mw8080bw.c) - MB3773 Power Supply: Finished modernizing - MB89371 UART: Added skeleton device - MM58274C RTC: Modernized device - MSM5205: Modernized device (sound\msm5205.c/h, audio\hyprolyb.c, irem.c, drivers\appoooh.c, ashnojoe.c, asuka.c, battlera.c, cabal.c, chinagat.c, chinsan.c, combatsc.c, cps1.c, crgolf.c, dacholer.c, darius.c, ddragon.c, de_2.c, dec0.c, dec8.c, discoboy.c, docastle.c, drmicro.c, dynax.c, fantland.c, fcrash.c, firetrap.c, fromance.c, gcpinbal.c, gladiatr.c, goal92.c, gsword.c, hnayayoi.c, jangou.c, jantotsu.c, kchamp.c, kungfur.c, kurukuru.c, lucky74.c, lwings.c, mastboy.c, mermaid.c, mitchell.c, mlanding.c, ojankohs.c, opwolf.c, pachifev.c, pcktgal.c, rastan.c, rmhaihai.c, sf.c, sothello.c, spdodgeb.c, splash.c, srmp2.c, suprgolf.c, system16.c, taito_l.c, tbowl.c, tecmo.c, tehkanwc.c, tigeroad.c, toki.c, topspeed.c, tubep.c, wc90b.c, yunsung8.c and machine\stfight.c). - MSM6255 LCD controller: Added device address map - Namco 56XX/58XX/59xx Custom: Modernized Namco I/O devices. In order to avoid as much as possible duplicated code, I've split machine configs for each device pairing (56+56, 56+58, 58+58, etc.) in mappy.c. I've also considered splitting the driver class in multiple subclasses but then I saw no way to avoid the need of other 6 address maps in the driver. - NMK112 Custom: Modernized device (drivers\cave.c, nmk16.c, powerins.c, quizpani.c, toaplan2.c, machine\nmk112.c/h.) - Taito Custom: Modernized Taito I/O devices (machine\taitoio.c/h, drivers\asuka.c, ninjaw.c, othunder.c, slapshot.c, taito_b.c, taito_f2.c, taito_h.c, taito_z.c, taitoair.c, taitojc.c, topspeed.c, warriorb.c and wgp.c). - TMS3556 video: Use memmove() instead of memcpy() in tms3556_device::draw_line() for now since it overlaps for exeltel - TMS9927 video . Modernized device (drivers\statriv2.c and thief.c) . Removed unneeded devlegcy.h include (video\tms9927.h) . Disabled unused private field in video\tms9927.h report by Clang - uPD7227 LCD controller: Added skeleton driver + WIP - Harddisk: Added harddisk device to atlantis.c, calchase.c, chihiro.c, cobra.c, djmain.c, fruitpc.c, funkball.c, gamecstl.c, iteagle.c, jaguar.c, kinst.c, mediagx.c, midqslvr.c, midvunit.c, photoply.c, pinball2k.c, qdrmfgp.c, queen.c, savquest.c, seattle.c, taitogn.c, taitotz.c, twinkle.c, vegas.c, viper.c, voyager.c and zn.c) - IDE . Started to split IDE HD from IDE controller . Merged the MAME and MESS IDE HD device . Moved where cur_drive is updated & changed PCMCIA trampoline definition to 16 bit . Moved handlers into the ide_controller_device . First pass at tidying up IDE interface. It no longer tries to force everything to act as a PC. A copy of the VIA VT83C461 datasheet would be useful to remove some of the hacks added to make the games using it work again. . Removed unnecessary idectrl.h include (machine\midwayic.c) . Created a new device for the bus master IDE controller, but the implementation is still in the IDE controller (machine\idectrl.c/h, drivers\chihiro.c, seattle.c and vegas.c). . Started to separate the bus master DMA from the drive emulation (machine\idectrl.c/h and drivers\zn.c) . Decoupled the IDE bus master emulation from the hard drive emulation . Converted machine\idectrl.c to device_timer() - Microtouch touch screen controller: Converted machine\microtch.c to DEVCB2 (drivers\vlc.c, adp.c, cd32.c, magtouch.c, meritm.c, pcat_nit.c, tmaster.c) - PCMCIA: Split RF5C296 functionality from taitogn.c into their own devices. The pccard slot has had to revert to use memory handlers instead of device maps for the moment. - SCSI . Converted NCR5380N and NCR5390 to DEVCB2 & use MCFG_DEVICE_CLOCK to set SCSI chip clock . Fixed uninitialized variable and added range checking, which prevents visual studio 64 bit debug builds from crashing (machine\am53cf96.c). Apple GCC complained about "warning: comparison is always true due to limited range of data type". Deleting/Update code. . Added support for machine config fragments that are applied when the cart is loaded, converted NCR 53C7xx to DEVCB2 as an example. - Serial device interface: Added methods for clocking the receiver/transmitter outside of the timers (emu\diserial.c) - NVRAM . Added NVRAMs for devices in software item named folder (machine\generic.c). This should help storing per game EEPROMs and other NVRAMs. NVRAM of root device is only stored in main folder in this case, since that is main machine NVRAM if any. . Used parent image names so it will work for cmd parameters, also multiple images are supported (machine\generic.c). - Slots . Moved default card config, device inputs and clock off the slot interface so they can be specified for all cards (emu\dislot.c/h, imagedev\floppy.h, machine\ctronics.h, idectrl.h, nscsi_bus.h, machine\pci.h, emu\mconfig.c, drivers\jaguar.c and rastersp.c). Added support for machine config fragments that are applied when the cart is loaded, converted NCR 53C7xx to DEVCB2 as an example. . Created a PCCARD slot and Linear Flash Card for System 573. Uses bankdev.c for banking the onboard flash chips and the pccard slots. This adds an extra two calls to the memory system & intelfsh.c already called the memory system for accessing the data. . Changed the pccard slot over to use a device map - MESS . PC hardware: Fixed crash (machine\southbridge.c). pcshare: make all the common pc hardware in various pc based drivers inherit from pcat_base_state (drivers\calchase.c, fruitpc.c, funkball.c, gamecstl.c, gammagic.c, magtouch.c, mediagx.c, midqslvr.c, pangofun.c, pcat_dyn.c, pcat_nit.c, photoply.c, pinball2k.c, queen.c, savquest.c, su2000.c, taitowlf.c, voyager.c, xtom3d.c and machine\pcshare.c/h). . VGA/SVGA: Virtual Pool IDs the Tseng via the two special registers (video\pc_vga.c) . Floppy: Ignore unformatted tracks in dsk files (formats\dsk_dsk.c). Added new floppy system support for teledisk (formats\td0_dsk.c). Lots of conflicting info out there, need more samples (8", fm). Be more permissive of disk types. Make sure header magic is same case and include cell calc from OG (imagedev\floppy.h and formats\td0_dsk.c). Clear seek irq before new seek (machine\upd765.c). Set st0_filled only if not accessing data (machine\upd765.c). Fixed incorrect sector size bug preventing standard DSK images from working (formats\dsk_dsk.c). (MESS) bml3.c disk support. . When creating a new file from the File Manager, require the user to enter an extension too. This matches the behavior from command line where launching files of a create-able media (e.g. tapes or memory cards) without extension is always interpreted like launching from softlist, while launching it with an extension actually creates the file if it does not exist yet (emu\uiimage.c). . Converted CDP1864, CDP1861, CDP1862, COM8116 and uPD1990AC to devcb2 - aleck64.c . Added USE_SIMD flag to RSP headers and began converting some opcodes to use SSE* intrinsics. Current plan is to target SSSE3-capable hardware (Core2 and up), with the resulting speedup theorized to be on the order of 5-10x when conversion is complete, though this applies only to situations where the emulation is heavily bottlenecked by the RSP. . Turn off USE_SIMD . Added SIMD code for the rest of the RSP vector load instructions . Removed tmmintrin.h include from cpu/rsp/rspdrc.c . Improved PIF / RDRAM initialization (machine\n64.c) - armedf.c: Fixed tile/sprite regression in screen_update_armedf. This fixes the missing blinking white dot in Crazy Climber 2 on the lower left of the building map (ID 05197). - astrocorp.c: Added undumped game info (Keno 21) - cidelsa.c: Added CDP1869 device address maps - crystal.c: Fixed FlashCmd_r was reading beyond the end of region "user1". This fixes topbladv, officeye and donghaer crashed after OK (ID 04420). - dkong.c: Modernized the TMS6100 and M58819 devices (audio\dkong.c) - firebeat.c . Added YMZ280b readlatch (dummy read is documented by Yamaha) . Had to changed 16bit PCM again after removing firebeat hack . Splitted MIDI keyboard to separate device in Firebeat driver . Small cleanup. Fixed PowerPC 403GCX CPU1 clock speed. - gticlub.c: Modernize ADC1038 device - gticlub.c and zr107.c: Added xtals - harddriv.c: Labeled ADC inputs - konamigq.c, konamigv.c and ksys573.c: Added skeleton MB89371 device - konamigv.c: Tidied up 16 bit flash hookup - konamigx.c, ksys573.c and zr107.c: Removed adc083x_interface - ksys573.c . Started converting I/O to 16 bit in KSys573 . Lookup devices and ioports at start, changed I/O to 8/16 bit, uses memory maps instead of installing at init time, game specific machine config using fragments. . Added DS2401 rom loading to digital I/O board, rather than specifying it in each game. Fixes Mambo A Go-Go booting. . Externalize the digital board . Converted the Konami System 573 Security Cassettes to use slots. The current setting is no longer saved, so the default cassette is "game". Some games have additional I/O connected via the security cassette, which is now hooked up when the cassette is loaded instead of patched directly into the memory map. If the game has a separate "install" cassette then you need to select this and hard reset (shift+F3 or select reset from the slot menu) before it will let you install from the CD. . Allocated short names for all cassette devices/slots . Created a PCCARD slot and Linear Flash Card for System 573. Uses bankdev.c for banking the onboard flash chips and the pccard slots. This adds an extra two calls to the memory system & intelfsh.c already called the memory system for accessing the data. . Changed the pccard slot over to use a device map . Added protection against multiple includes (machine\bankdev.h and linflash.h) . Disabled unused private fields in ksys573 driver reported by Clang. . Changed region digital_id to mpeg573:digital_id and onboard.x to 29f016a.xxx . Added MAS3507D sound to dmx2majp . Fixed GunMania pccard region name . Moved digital-id.bin BIOS rom to mpeg573 device - maygayep.c: Added YMZ280B sound roms to Cash Ahoy and Carry On Screaming - mediagx.c: Fixed IDE_CONTROLLER write bug - meritm.c . Converted MeritM driver to use NS16550 and not PC16552d. . Removed Light gun and button 1 in Dodge City . Removed Light gun in Pit Boss II, Pit Boss Megastar, Pit Boss Superstar and Super Pit Boss - namcos11.c . Changed keycus into a device and moved it into it's own file, only 3 parameters are saved instead of 64k. . Changed I/O to 16 bits & uses memory maps instead of installing at runtime . Simplified digital player 3 inputs that are hooked up to dac inputs . Added DIP location, also removed unused test dip switches. Changed region user2 to bankedroms. Removed dipswitches 'TDIP1' - 'TDIP8'. . Replaced CXD8530AQ CPU1 with CXD8530CQ in clones Tekken 2 (Asia, TES2/VER.A), Tekken 2 Ver.B (Asia, TES2/VER.B) and Tekken 2 Ver.B (US, TES3/VER.B). - namcos12.c: Added DIP location, also removed unused test dip switches. - naomi.c . Pretend-modernize video\powervr2 . Some powervr2 register groups are obviously 32 bits, so make them so. . Better IRQ isolation . Make the DMA cpu-independant in machine\naomig1.c - nexus3d.c: Start refactoring. Added serial Flash device (machine\serflash.c). - nss.c, sfcbox.c and snesb.c . Timers from the base state class should be still considered by the derived class (includes\snes.h) . Modernized the SNES sound device (audio\snes_snd.c/h) - nss.c and playch10.c: Modernized the RP5H01 device - pgm.c . Improved Dragon World II protection routines . Disabled assignment of variable to itself in machine\pgmprot6.c reported by Clang - pluto5.c: Fixed pluto5_mem_r reading. This fixes clone 'Dough & Arrow Club (Qps, set 9)' crashed after OK (ID 04839). Added comment: If reading beyond end of region, log error instead of crashing. - raiden2.c: printf spam slowed MAME down to a halt in Zero Team. Warning: Sort-DMA used with param 2200. - seibuspi.c . Some addressmap cleanup . Hooked up Seibuspi sound FIFOs . Some cleanup (I was hoping for speedups (especially by removing ioport("TAGLOOKUP")->read(); stuff) - but didn't get any). . Some Seibuspi HW notes and cleanups in machine config . Get rid of that drunken soundrom_r function . Couple of useless renames . Fixed Z80 memory handling and misc cleanups . Don't access soundfifo2 on single board PCB . Less hacky implementation of region protection, with some help from Haze. . viprp1 broke at prev commit, it really does suggest that it writes the region code to flash at reset. . protip: don't exit MAME during flashing the game . Removed DS2404 and EEPROM from Seibuspi hardware . Added soundflash1 rom to all games . Fixed YMZ280B sound clock speed in E-Jan Sakurasou . Fixed clock speed of the 2x OKI6295 in clones 'Raiden Fighters 2 - Operation Hell Dive 2000 (China, SYS386I)' and 'Raiden Fighters Jet 2000 (China, SYS386I)' . Changed region user1 to maincpu and user2 to sound01. Changed sound1 rom address from $200000 to $800000. - taitogn.c . Fixed clipping of device address maps if the size of the map caused the end address to wrap . Added a proof of concept implementation of a address map bank device, which allows you to bank memory maps. . Hooked it up to Taito GNET as an example . Finished converting Taito GNET to use address maps instead of installing at run time . Removed redundant comment (fix memory.c bug that ignores the upper limit on the AM_DEVICE) as it has been fixed. . Finished modernizing the MB3773 . Split RF5C296 and ATA flash functionality from Taito G-NET driver into their own devices. The pccard slot has had to revert to use memory handlers instead of device maps for the moment. . Changed region drive_0 to pccard:ataflash:drive_0. Move & 7. I'm pretty sure that line is never called, at least in the old code it could never reach the equivalent line. - toaplan2.c: Finished modernizing GP9001 Video Controller (video\gp9001.c) - warpwarp.c . Modernized the GeeBee (audio/geebee.c) and WarpWarp (audio\warpwarp.c) sound devices . Fix for Bomb Bee and Cutie Q regression from recent modernization - vegas.c: Fixed typo in denver_w() (audio\dcs.c). This fixes Integer Divide By Zero (VS2012 compile) and MAME crashes when you start SF2049 (ID 05013). - zn.c . Changed some I/O to 8/16 bit in ZN . Converted coh1000a, coh1000w, coh1001l, coh1002e, coh1002m, coh1002v and coh3002c to use a memory map . coh100c, coh1002c & coh3002c now use the coh3002c memory map . coh1000ta & coh1000tb use memory maps instead of installing handlers at run time . coh1002v: Other tidying up . Converted more handlers to 8/16 bit . Expand CAPCOM kick harness to 16 bit to stop ZN2 games from thinking that a button is pressed and skipping the copyright screen. . Finished modernizing the MB3773 . Some Z80 clocks were wrong . Added 7200 FIFO chip device (machine\7200fifo.c) . Some cleanup (I was hoping for speedups (especially by removing ioport("TAGLOOKUP")->read(); stuff) - but didn't get any) . Fixed Z80 CPU2 clock speed. Changed region user2 to maskroms/bankedroms/roms and user3 to countryrom . Converted 'Bust a Move 2' to use a memory map . Improved 'Cool Boarders Arcade Jam' sound and changed manufacturer to UEP Systems. This fixes s popup appears (YMZ280B 16-bit PCM contact MAMEDEV), when you fall (e.g. fail to make a somersault for instance) (ID 04711). . Added 68000 & YMZ280B to Heaven's Gate, plus preliminary memory 68k memory map rom. Fixed Heaven's Gate soundlatch. Sound effects are working now, but some samples get cut off. Added YMZ280 sound emulation to Heaven's Gate. Fixed ymz rom loading. . Fixed Logic Pro Adventure freezes after first logo screen (ID 03733) - AGEMAME . Added notes to jpmimpctsw.c, mpu3.c, mpu4.c, mpu4avan.c and mpu4mod2sw.c regarding some duplicated MAINCPU rom usage between some gamblers . Added additional documentation to mpu4.c . Fixed dumb copy pasta (PORT_START("DIL2") --> PORT_MODIFY("DIL2") in mpu4hw.c . Fixed mpu5_mem_r was reading (drivers\mpu5hw.c) in mpu5.c. This fixes many sets crashes after OK (ID 04836). . Added additional documentation to proconn.c - Attack Force: Fixed address map, driver init and ports (Game now playable). The dump turned out to be fine. Note: This is a rare italian game on old b&w hw, see http://www.arcadeitalia.net/viewtopic.php?f=57&t=13803 - Blasteroids: Another case of missed timer inheritance (includes\blstroid.h and video\blstroid.c) - Extra Bases: Added Extra Bases color overlay (same as Space Zap). Note: Cocktail cabinets had a B/W monitor with color overlay (same one as Space Zap!), upright cabinets at factory default had a B/W monitor too, with a baseball stadium background. Added 'Monitor' dipswitch. - Flower: Modernized 'Flower Custom Sound' device - Fruit Land: Removed keypad control - Harem: Changed default 'Lives' to 3 - Kram: Break clone Kram (encrypted) on purpose - marked it NOT_WORKING until encryption is implemented properly in Qix driver (and not in the cpu core itself) (m6809\6809dasm.c, m6809.c/h, m6809.ops, drivers\qix.c and video\qix.c). Update driver note and added informative note from PhilB. - Magical Touch: Fixed DEVICE_LINE_MEMBER bug in Magical Touch pointed out by Tafoid - Mazer Blazer: Added notes about the game PCBs - Midcoin Juke Box 24CD: Added preliminary display and input ports - Music Sort: Fixed Z80 CPU2 and YM3812 sound clock speeds - Oishii Puzzle Ha Irimasenka: Fixed wrong sprite layer offset - Puck Man: Verified clone Pacu-Man (Spanish bootleg of Puck Man) gfx roms - Quake Arcade Tournament: Fixed bug (removed PIC8259) in Quake Arcade Tournament pointed out by Tafoid. - Rapid Hero: Sound improvements. Fixed oki1/2 rom loading (ID 02423). - Sauro: Modernized the SP0256 Narrator Speech Processor sound device - Savage Quest: Added HASP emulator; marked BIOS as bad dump because it's incomplete - Scramble: Fixed nosound in clone Explorer (bootleg of Scramble) (ID 05198) - Speed Ball . Preparation Speed Ball for further work . Just added some code to help analyse this encryption . Notes and re-arrange sprite data upfront for both games . Small cleanup before i have a tackle at those 7seg LEDs. Added 7seg LEDs. I'll clean up the .lay file later but other than that i'm done with the driver for now. Added proper internal artwork. . Fixed Z80 CPU2 and YM3812 sound clock speeds. Changed region gfx3 to sprites. - Stunt Air . Small update. Fixed discarded prom bit in PALETTE_INIT. . Updated dipswitch DSWA/DSWB . 0xf003 reads are discarded immediately . Tweak music timing. Fixed Z80 CPU1/2 clock speeds. Fixed prom loading. - The Tower of Druaga: Fixed palettesize - Twin Cobra II: Mark gfx rom ($0) as BAD_DUMP. There are lots of bad pixels in the sprites coming from this ROM, I've asked somebody with the board to check it - Vector games . Modernized the MathBox device (bzone.c and tempest.c) . Increase vertex buffer size a bit more (Black Widow requested up to over 140,000) (windows\drawd3d.h). This fixes Black Widow crashed after last life (ID 05205) and severe performance drop during GAME OVER screen (ID 03038). . Fixed various vector games crashed/freezed in MAME like Major Havoc or Star Wars (ID 05201) - Input port . Use O1 instead of O0 on the critical function in emu\inpttype.h. Some benchmarking for different compilers and levels (seconds): GCC 4.4.7: O0=ICE O1=38.62 O2=58.13 O3=3721.11, GCC 4.5.4: O0=6.21 O1=25.63 O2=38.24 O3=3085.74, GCC 4.6.4: O0=4.95 O1=15.89 O2=32.94 O3=48.95 and GCC 4.7.3: O0=6.11 O1=22.03 O2=126.41 O3=348.02. Note from O. Galibert: Hans tracked a wrong compile issue in 4.7 to the use of -O0. That table shows that -O1 is acceptable for everybody. Note that it isn't a time critical function, and it doesn't make sense to optimize it much (it's a bunch of calls to another function which itself is optimized and no computations). . Fixed input in 24cdjuke . Flipped Hyper Crash inputs to use WEC Le Mans 24-type, noticed that there are two bugs in it too. - Dipswitch fixes in 24cdjuke, ebases, harem, mpu4.c, namcos11.c, namcos12.c, musicsrt and stuntair - Fixed rom names in ksys573.c, gtmrusa, midwunit.c, namcos2.c, pacuman, thunderj and wwfmania - Renamed (ambush) to (ambushh), (contrajb) to (contrabj1), (crszonea) to (crszonev3b), (crszoneb) to (crszonev3a), (crszonec) to (crszonev2a), (gryzor) to (gryzor1), (gryzora) to (gryzor), (misncrft) to (misncrfta), (motoxgoa) to (motoxgov2a), (motoxgob) to (motoxgov1a), (motoxgoc) to (motoxgov1a2), (rapidrvr2) to (rapidrvrv2c), (thunderj) to (thunderja), (timecrs2b) to (timecrs2v2b) and (timecrs2c) to (timecrs2v4a). - Description changes of Ambush (hack?), Car Action (set 1), Cash Ahoy (Maygay - Eclipse?) (EPOCH) (set 1), Cheng Ba Shi Jie - Chao Shi Kong Guan Jun (Taiwan) (ID 05199), Commando (bootleg set 1), Contra (Japan bootleg, set 2), Contra (Japan, set 1), Crisis Zone (CSZO3 Ver. B, set 1), E-Jan Sakurasou (Japan, SYS386F V1.2), E-Jan Sakurasou (Japan, SYS386F V2.0), Galaxian (bootleg, set 1), Gryzor (set 1), Gryzor (set 2), Legend of Success Joe / Ashita no Joe Densetsu, Raiden Fighters (Asia), Raiden Fighters (Korea), Raiden Fighters (Taiwan, single board), Raiden Fighters 2 - Operation Hell Dive (Asia), Raiden Fighters 2 - Operation Hell Dive (Europe), Raiden Fighters 2 - Operation Hell Dive (Japan set 1), Raiden Fighters 2 - Operation Hell Dive (Japan set 2), Raiden Fighters 2 - Operation Hell Dive (Korea), Raiden Fighters 2 - Operation Hell Dive (Taiwan), Raiden Fighters 2 - Operation Hell Dive (US), Raiden Fighters 2 - Operation Hell Dive (US, single board), Raiden Fighters 2 - Operation Hell Dive 2000 (China, SYS386I), Raiden Fighters Jet (Europe), Raiden Fighters Jet (Korea), Raiden Fighters Jet (US, single board), Raiden Fighters Jet (US, single board, earlier?), Raiden Fighters Jet (US, single board, earlier?), Raiden Fighters Jet 2000 (China, SYS386I), Senkyu (Japan set 1), Senkyu (Japan set 2), Space Chaser (CV version - set 1), Speed Ball - Contest at Neonworld (prototype), ThunderJaws (rev 2), Viper Phase 1 (New Version, Japan), Viper Phase 1 (New Version, Switzerland), Viper Phase 1 (New Version, US set 1), Viper Phase 1 (New Version, US set 2) and Viper Phase 1 (New Version, World). - MAME . HLSL (Switch at runtime with Ctrl+Alt+F5) . Upped vertex buffer size to 64k verts, fixes assert in starwars and alphaone, please include the printed error message in any subsequent encounterings of the assert. . Improved vector rendering (beam width 1.5 suggested) . Ducked raster bloom default to 0.225 to reduce washout. This fixes various vector games crashed/freezed in MAME 0.148u5. . Fixed composite NTSC shaders (hlsl\bloom.fx, yiq_decode.fx, yiq_encode.fx and windows\d3dhlsl.c) . Fixed raster_bloom_scale and vector_bloom_scale (hlsl\downsample.fx) . Increase vertex buffer size a bit more (bwidow requested up to over 140,000) (windows\drawd3d.h). Fixed build (vector_time_period in windows\winmain.h). . Added better .ini defaults for HLSL and hooked up bloom sliders . Cast error in windows\d3dhlsl.c found by MinGW 4.7.4. Updating of DOCS/hlsl.txt for cover new command additions. . Fixed clipping of device address maps if the size of the map caused the end address to wrap. Added a proof of concept implementation of a address map bank device, which allows you to bank memory maps (emu\addrmap.c and emu.mak). Hooked it up to Taito GNET as an example. . Allow AM_NOP in device address maps, there may be others that should be allowed. . Fixed address_space_specific::get_write_ptr() (emu\memory.c) . Added macros for read/write delegates. Cleanup (emu\memory.h) . MAME options . Added a new option -statename which allows to specify the location of state saving, relative to -state_directory (emu\emuopts.c) (whose usage remains unchanged). Syntax is basically the same as snapname, allowing for the / character as path separator, %g as the driver name, and %d_[media] as the image name mounted in the "media" device. . For example, using -statename foo/%g when running "mame wrally" will store save states into the folder sta/foo/wrally/ ; using -statename %g/%d_cart when running "mess nes -cart smb" will store save states into the folder sta/nes/smb/ ; using -statename %g/%d_cdrm when running "mess pce -cart cdsys -cdrm draculax" will store save states into sta/pce/draculax/ Specifying a media switch which is not available (e.g. %d_cdrm in a c64) or a media switch where no image is mounted (e.g. %d_cdrm in pce while playing a hucard game) will revert the option to its default value %g and save states will be stored in sta/*gamename*/ as in previous versions. Needless to say, this option is very useful with home computers and consoles in MESS since it allows to have 36 save slots for each game instead of 36 for the whole system library. Notice that a clean compile is required, due to the addition to the running_machine class. . Adding recently added commands to official documentation. Updated windows related documentation. . Fixed software list CHD verification (emu\audit.c) . Let's increase approx matches for gamenames from 10 to 16 (emu\clifront.c and softlist.c) . Let's skip the extension when choosing the NVRAM folder name based on software (machine\generic.c) . Register the device post load after the devices are started, in case starting the device causes something (like sound_stream) to register it's own post load (emu\machine.c). . Removed more MAME anonymous timers (drivers\midvunit.c, tubep.c, includes\amiga.h, astrocde.h, blstroid.h, bublbobl.h, cchasm.h, dcheese.h, exidy.h, exidy440.h, gameplan.h, hyhoo.h, lethalj.h, m10.h, m92.h, micro3d.h, midtunit.h, midvunit.h, midyunit.h, nbmj8688.h, nbmj8891.h, nbmj8900.h, nbmj9195.h, niyanpai.h, opwolf.h, pastelg.h, segag80r.h, snes.h, stfight.h, tank8.h, triplhnt.h, tubep.h, vectrex.h, volfied.h, machine\amiga.c, bublbobl.c, micro3d.c, opwolf.c, snes.c, stfight.c, vectrex.c, volfied.c, video\astrocde.c, blstroid.c, cchasm.c, dcheese.c, exidy.c, gameplan.c, hyhoo.c, lethalj.c, m92.c, midtunit.c, midvunit.c, midyunit.c, nbmj8688.c, nbmj8891.c, nbmj8900.c, nbmj9195.c, niyanpai.c, pastelg.c, segag80r.c, tank8.c, triplhnt.c, tubep.c and vectrex.c). . Added support to jedutil for decoding 82S153, PLS153 and CK2605 - SDLMAME . QT debugger . Added the Image menu to the QT debugger's main window. This allows the user to mount disk/c images from the UI. . Fixed return value & menu item name in the QT Debugger's Image menu. . Slot names aren't unique . The MAME memory tracking system no longer double-frees closed QT windows. Also fixes the font segfault on exit again (thanks Carl). . WIP for a new breakpoints window (debug\dvbpoints.c/h). Note: You can't click to enable/disable breakpoints yet, and the number of rows doesn't resize yet, but that stuff will come. . Cleaned a bit Carl's solution for optional QT debugger for Windows . Reorder ifdefs (sdl\debugqt.c) . Prevent threading deadlock in WIN32 with QT debugger (sdl\debugqt.c) . Added the breakpoint window to the WIN32 build too . Ubuntu wants to be different (sdl\sdl.mak) . Fix per OG to allow SDLMAME to compile on Windows . Added SDL.txt document for users of SDL builds containing up to date listing of commands as well as updating parts of windows.txt and config.txt to take in account SDL differences. . Merged duplicated define in sdl\sdl.mak . Trying to fix linking on Linux - Compiling . Removed some redundant uses of DEVICE_SELF (cpu\lc8670\lc8670.c, drivers\cobra.c, djmain.c, iteagle.c, jaguar.c, kinst.c, qdrmfgp.c, seattle.c, taitotz.c, twinkle.c and vegas.c) . Removed not needed generic.h include (video\vdc.h) . Changed make file rules to be consistent to one in SDL build (windows\windows.mak) . Removal of not needed includes of devlegcy.h (includes\snes.h, video\kan_pand.h, ppu2c0x.h and machine\docg3.h) . Moved video and machine part of emu in separate mak files and libraries (emu\machine\machine.mak and video\video.mak) . Made video devices build optional and set proper build rules per target . Rolled back set_led_status change and fixed build . Make machine part optionals, update tiny.mak and ldplayer.mak, still need to clear usages in mame.mak and mess.mak. . Clear some more core dependencies (emu\emu.mak, sound\sound.mak and video\video.mak) . Used := in windows.mak for variables set by external programs - Debugger: Inserted checks to prevent debugger access (sound\tms5220.c and video\tms9928a.c) 0.148u5 - New games: Crystals Colours (Ver 1.01), Let's Attack Crazy Cross (GV027 Asia 1.10), Mundial/Mondial (Italian/French), Stunt Air, Time Fighter (Time Pilot conversion on Galaxian hardware) and Videotron Poker (cards selector) - New Working games: Fruit Land and Royale - New Non-Working games: Bonne Chance! (Golden Poker prequel hardware), The Drink, Kono Tako (10021 Ver.A), Midcoin Juke Box 24CD, Sea Battle (set 1) and Unknown H8 Italian Gambling game - New clones: 1991 Spikes (Italian bootleg, set 2), Altered Beast (Datsu bootleg), Ataque Sideral (Spanish bootleg of UniWar S), Atom (bootleg of Bombjack Twin), Bomb Jack (Tecfri, Spain), Crazy Climber (Model Racing bootleg), Crush Roller (bootleg set 3), Dragon's Lair 2: Time Warp (Euro v3.17), Final Fight (bootleg), Galaxian (Recreativos Franco S.A. Spanish bootleg), Gals Panic II (English), Guardian Storm (vertical), Indian Battle (Brazil), Indiana Jones (JPM) (IMPACT, German set 1), Jack Potten's Poker (set 7, Royale GFX), Le Bagnard (Itisa, Spain), The Legend of Silkroad (larger ROMs), Lunar Rescue (Model Racing bootleg, set 2), Magic's 10 (ver. 16.54), Moon Cresta (Electrogame S.A. Spanish bootleg), Moon Cresta (Petaco S.A. Spanish bootleg), MotoTour / Zippy Race (Tecfri license), Ms. Pac-Man ('Made in Greece' bootleg), New Lucky 8 Lines (set 4, W-4), New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%), New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%), The Next Space (set 2), Pacu-Man (Spanish bootleg of Puck Man), Pang (bootleg, set 4), Phoenix (Spanish bootleg), Power Spikes (US), Puck Man (Spanish, 'Made in Greece' bootleg), Raiden Fighters (Single Board), Rally X (Model Racing bootleg), Red Fox War Planes II (China, set 2), Sea Battle (set 2), Shanghai II (Japan, set 2), Traverse USA (bootleg), Vastar (set 4) and Videotron Poker (normal controls) - New drivers: 24cdjuke.c, seabattl.c and stuntair.c - New artworks: cadanglr, cmanhat, daytona, ebases, invaders, jankenmn, omegrace, shdancer, sqbert, srallyc, wmatch, wmg and wrestwar (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here) - CDP1802 CPU: Added the original CDP1801 CPU variant and rewrote the disassembler. Replaced COSMAC CPU with CDP1802 in cidelsa.c and play_1.c, play_2.c, play_3.c and play_5.c - PSXCPU . Don't set E flag if the result rounds up to 2, just limit the result. . PSX BIOS rom memory map is now handled by the CPU core as the size is controlled by an internal register. Simplified Namco System 12 protection hack so that it doesn't involve remapping the bios rom area, which also allows the default value for ram to be removed. . Use device timers instead of TIMER_CALLBACK_MEMBER (cpu\psx\dma.c/h and rcnt.c/h) . Changed I/O to 16 bits and don't install memory handlers at run time (cpu\psx\psx.c) . Removed unused variable (cpu\psx\psx.c) . Don't map more than 4MB of rom as it will overwrite ram. Only causes a problem for mrdrilr2 because the bios is part of a much larger rom, none of the other drivers have a region large enough to cause a problem (cpu\psx\psx.c). . Work around MSVC2008/2010 warning (C4701: potentially uninitialized local variable 'h_over_sz3' used) - AY-3-8910A sound: Modernised device. Simplified ay8910_start_ym now that all sound chips that use it are devices (sound\2203intf.c, 2608intf.c, 2610intf.c, ay8910.c/h). - Q-Sound: Added QSound internal DSP ROM to the device. FILE location update. - Seibu sound: Fixed using wrong macro (YM2151_IRQ_HANDLER <-> YM3812_IRQ_HANDLER; audio\seibu.h) - Speaker sound: Attempt at a better name for what this actually is. Replaced Speaker sound with 'Filtered 1-bit DAC' in desterth, grescue, lrescue, lrescuem, maxaflex.c, mlander, pcxt.c, photon.c, photon2.c, schasercv, spacewr3 and spcewars - SPU sound: Improved save state behavior, but still needs work. - TMS5110 sound: Started to modernise TMS5110 (sound\tms5110.c/h, audio\dkong, scramble.c, drivers\bagman.c, cvs.c, includes\cvs.h, dkong.h) - TMS5220 sound: Modernised device. Replaced TMS5220N with TMS5220 in looping, loopingv, loopingva, polepos2bi, portrait, skybump and tomcat. - Y8950 sound: Modernised device (sound\8950intf.c/h, drivers\cybertnk.c, ginganin.c and snk.c) - YM2203 sound: Modernised device. Clears variables to avoid random crashing. Removed unnecessary #includes. - YM2413 sound: Modernised device - YM2608 sound: Modernized device (sound\2608intf.c/h, drivers\bbusters.c, itech8.c, pipedrm.c, tail2nos.c and wc90.c). Removed fm.h and few changes for consistency (sound\2608intf.c/h). Clears variables to avoid random crashing. Removed unnecessary #includes. - YM2610 sound: Modernised interface. Fixed debug build (sound\2610intf.c/h, drivers\2mindril.c, aerofgt.c, asuka.c, bbusters.c, crshrace.c, f1gp.c, fromanc2.c, gstriker.c, inufuku.c, mcatadv.c, metro.c, neogeo.c, neoprint.c, ninjaw.c, othunder.c, pipedrm.c, psikyo.c, slapshot.c, suprslam.c, taito_b.c, taito_f2.c, taito_h.c, taito_l.c, taito_x.c, taito_z.c, taitoair.c, taotaido.c, warriorb.c, welltris.c, wgp.c and zn.c). Removed unnecessary #includes. - YM2612 sound: Temporarily limit table lookup ranges (sound\fm2612.c). Modernised YM3438 (sound\2612intf.c/h, drivers\segac2.c, segas18.c, segas32.c, seta.c, shangha3.c, includes\megadriv.h and machine\megadriv.c). Removed unnecessary #includes. - YM3438 sound: Modernised device (sound\2612intf.c/h, drivers\model1.c, model2.c, segac2.c, segas18.c, segas32.c, seta.c, shangha3.c and system16.c). - YM3526 sound: Modernised device, which also required adding write lines to the 6502, 6809 and Z80. Standardised on #include format. Removed unnecessary #includes. - YM3812 sound: Modernised device - YMF262 sound: Modernised device (sound\262intf.c/h, audio\t5182.h, drivers\fuukifg3.c, tecmosys.c and machine\isa_sblaster.c) - YMF271 sound: Modernised device (drivers\ms32.c, seibuspi.c and zn.c). Clears variables to avoid random crashing. Fixed memset size. - YMF278B sound: Modernised device (sound\ymf278b.c/h, drivers\fuukifg3.c, lordgun.c, metro.c, psikyo.c, psikyo4.c and psikyosh.c) - YMZ280B sound: Modernised device. Overides device_post_load instead of post_load (sound\ymz280b.c/h, drivers\backfire.c, bfm_sc4h.c, bfm_sc5.c, bfm_swp.c, bishi.c, cave.c, coinmvga.c, deco156.c, deco_mlc.c, firebeat.c, galpani3.c, gunpey.c, jchan.c, maygayep.c, midas.c, realbrk.c, seibuspi.c, sigmab98.c, suprnova.c, tecmosys.c, tetrisp2.c, toaplan2.c and zn.c). Clears variables to avoid random crashing. - 8259 PIC: Continue modernization (machine\pic8259.c/h, drivers\calchase.c, chihiro.c, fruitpc.c, funkball.c, gamecstl.c, gammagic.c, magtouch.c, mediagx.c, midqslvr.c, pcat_nit.c, pcxt.c, photoply.c, pinball2k.c, quakeat.c, queen.c, savquest.c, su2000.c, taitowlf.c, voyager.c, xtom3d.c and machine\pcshare.c). Get rid of anonymous timer (machine\pic8259.c). Switched to devcb2. Added PIC825 state save support. - ADC08x A/D Converter: Modernised ADC083x - DS2401 RTC: Modernised device. Fixed variable and parameter conflict. - EEPROM: Finished modernizing AT28c16 (drivers\namcond1.c, namcos11.c, namcos12.c, taitogn.c, vegaeo.c and zn.c) - I8251 UART: Implemented 16X/64X clock modes - Keyboard: Fixed uninitialized variable in machine\8042kbdc.c - Timekeeper: Finished modernizing timekeeper (machine\timekpr.c/h, drivers\cdi.c, cobra.c, cps1.c, hornet.c, itech32.c, ksys573.c, midzeus.c, multfish.c, nwk-tr.c, slapshot.c, tomcat.c, vegas.c, viper.c, includes\cps1.h and midzeus.h). - uPD4701: Modernised interface - MESS . PC hardware: Slotify PC joystick (drivers\amstr_pc.c, pc.c/h, machine\isa_sblaster.c, isa_ssi2001.c, isa_stereo_fx.c, pc.c and pc_joy.c/h). Fixed MSVC warning (drivers\pc.c and machine\pc_joy.h). Added MS Sidewinder pad (mess\drivers\pc.c, machine\pc_joy.c and pc_joy_sw.c/h). . Generic PC machine: Video is in the devices now (machine\genpc.c). Fixed XT (machine\genpc.c). Fixed PC drivers regression (machine\genpc.c). . VGA/SVGA: Made VGA offset calculation an overridable method, instead of a macro. Fixes display in XF86_S3. Added a little bit to svga_dm, but still needs a lot of work. . Floppy: Fixed V1050 floppy drive type. Added a new format class for asst128 floppies because the 360K SSQD disk format conflicts with the standard 360K DSDD type. The Assistant 128 BIOS translates disk commands so 360K DSDD disks boot fine though. - CHDMAN . Various CD-ROM / CHDMAN improvements . Correct import/export of bin/cue images in which the pregap sectors are present . Normalized TOC handling; the start of a track is always the first pregap sector. . Finally allows reading and CDDA playing pregap sectors. Works even if the pregap sectors are not present in the file. . Note: Existing CHDs should work (or not) as before - previously non-working ones that were broken due to disc geometry should work if regenerated from source. I tested this on several known-touchy cases (including Saturn Black/Matrix Reprint cinemas and PCE-CD Prince of Persia) but there are likely others. Drivers that tried to fake around the previous lack of pregap reading on CDDA may need some adjustment (util\cdrom.c, chdcd.c and tools\chdman.c). . Improved portability for older versions of Xcode (libflac\format.c) . Modernised CDDA & discard buffered samples when starting to play to avoid audio glitches and timing issues (sound\cdda.c/h, emu\machine\matsucd.c, scsicd.c/h, stvcd.c, mame\machine\cd32.c, cdicdic.c, gdrom.c/h and megacdcd.c). - cps1.c, cps2.c and zn.c: Added QSound internal DSP ROM to the device - cps1.c: Fixed 'Difficulty' dipswitch which has in the tab menu values from 1 (easiest) to 8 (hardest) but in the game's menu it's from 0 to 7 (ID 03642). - ddragon.c: Fixed ADPCM samples - dooyong.c . Fixed coin 1/2 input in The Last Day (ID 00012) . Removed 'Service Mode' dipswitch in Super-X (ID 02117) - fromanc2.c: Small driver cleanup - fuukifg2.c: Verified clocks. Increased Z80 clock to 6MHz in gogomile and pbancho. Fixes Go Go! Mile Smile intro music and speech. - goldnpkr.c . Proper inputs for Videotron Poker selector . Figured out the Royale multiplexer system . Removed the unused Royale driver init . Both Royale sets promoted to working . Added technical notes . Removed unused (and commented out) input port definition . Bonne Chance!: Inverted the bipolar PROM data to get the proper palette. Added technical notes. Note: The hardware is a sequel of Magic Fly, prequel of Golden Poker. The color PROM data is inverted through gates, latches or PLDs to get the final palette. . Mundial/Mondial: Implemented the program banking, but set the Italian lang as default till we can get some evidence. Added technical notes. Note: This game has two different programs inside the program ROM in banks of 0x4000 each. The first program is meant for Italian language, while the second one is for French. There is nothing (no writes) that point to a banking. Maybe is driven by PLDs, or just routed to the unused DIP switches of the bank (4 lines of the port are used by discrete sound). Otherwise should be splitted in different games... Need to check the real board behaviour. For now, I implemented the banking and set the first program (Italian) fixed into the driver init till we can get more evidence about. Fixed "defined but not used" compile error. . Fixed Royale (set 1) and (set 2) (Games now playable). Added gambling control with 2x buttons and 3x coin slots. - goldstar.c: More docs - konamigq.c: Changed handlers to 16 bit as that is the size of the external bus and created memory maps instead of installing handlers in init. - megadriv.c: Added save registration of a bunch of scanline-related and input-related variables (machine\megadriv.c and megavdp.c) - midtunit.c: Modernization and some cleanup - namcos10.c . Converted I/O to 16 bit . Redumped user2 rom 0.8e in Chocovader. Replaced other roms as you cannot mix and match roms from different boards. - namcos12.c: Changed I/O to 16 bits and don't install memory handlers at run time - namcos23.c: Document the Keycus - naomi.c and triforce.c: Metadata updates. Fixed error in the metadata patch. - nexus3d.c: Replaced user1 rom with better one in Arcana Heart and Arcana Heart Full - nss.c, sfcbox.c and snesb.c: Minor cleanup machine\snes.c used by NSS and other SNES-based arcade drivers. Added save registration of a bunch of scanline-related variables (video\snes.c). - pgm.c . Implemented the bitswap protection for Killing Blade allowing all regions to work . Implemented additional protection required by Dragon World 3, the game is not any Further along, but it is much cleaner code. . Implemented bitswap protection and several DMA modes for olds. The ram_dump hack is no longer required. The protection simulation is still somewhat incomplete. - pcxt.c . XT has no RTC and switch to new ISA DMAC. Removed 2nd PIC8259 and fixed tags. . Fixed Filetto can't boot (ID 04851). Added AM9517A CPU2. - rallyx.c and travrusa.c: Added and verified DIP locations for all sets - segae.c and megatech.c: Changed hcount calculation to use screen timings and move it to the VDP (video\315_5124.c and mess\drivers\sms.c). Slightly consolidated save/restore in sms/gamegear, still not reliable (video\315_5124.c and machine\sms.c). - seibuspi.c . Minor documentation and comment corrections . Added gfx1/user2 roms from clone Raiden Fighters (Single Board) to clones Raiden Fighters (Asia, Dream Island Co., LTD. license, SPI) and (Asia, Metrotainment Network license, SPI) . Fixed I386 clock speed in clones Raiden Fighters Jet (Single Board, set 1) and (set 2) - sfcbox.c: Minor cleanup machine\snes.c used by NSS and other SNES-based arcade drivers. Added save registration of a bunch of scanline-related variables (video\snes.c). - smsmcorp.c: Changed to driver to avoid potential MAME/MESS linking problems - snookr10.c . Fixed NVRAM size and added default NVRAM to Apple 10, Snooker 10 and clone Ten Balls. . Decrypted tile matrix / video RAM in Crystals Colours. Wrote proper memory map and inputs from the scratch. Bypassed the program data channels protection. Decrypted the colors / color RAM. Added button-lamps support. Created a default NVRAM. Promoted to working state. Added technical and encryption notes. - suna16.c: Correct clock speed in driver comment - taito_l.c: Fixed validate warning by reverted caching of YM2203 device (the same tag is used with different device types) - taitogn.c and twinkle.c: Changed I/O to 8/16 bit. Removed the flash trampolines in taitogn.c and machine\idectrl.c - tx1.c . Fixed "Screen 1" and "Screen 2" freezes in MAME's Video options of Buggy Boy and TX-1 (ID 05194) . Cleanup video code - zodiack.c: Fixed driver regression - AGEMAME . Added some recently rediscovered roms to 'Monte Carlo Or Bust (Bwb) (MPU4 Video)' . bfm_ad5.c, gamtor.c and jpmsys7.c: Fruit machine notes / logging . bfm_sc5sw.c: Collapse some duplicated code. . Coax machine\mcf5206e.c/h into doing a little more. Silence some excessive logging. Slightly more realistic handling. Improved logging details. - Attack Ufo: Fixed missing MOS656X sound (ID 05189) - Bakutotsu Kijuutei: Fixed 'Invincibility (Cheat)' and added 'Level Selection' dipswitch (ID 05120) - Blood Warrior: Fixed inverted 'Demo_Sounds' (ID 05119) - Botanic: Fixed description to 'Botanic (French)'. Note: The game was made by Itisa, there is a Spanish original (not yet dumped). - China Gate: Changed commented out code in China Gate driver (AM_DEVREADWRITE_LEGACY -> AM_DEVREADWRITE) - Cyber Tank: Fixed crash since 0.148u2 - Fruit Land: Added inputs + self-service (Game now playable). Added 2x AM9517A. - Gomoku Narabe Renju: Fixed game crashes after ROM/RAM test (ID 05190) - Hyper Pacman: Replaced the I/O map in clone (bootleg) with an empty one as the default map still refers to a sound chip that has been replaced - Indian Battle: Clone Indian Battle (Brazil) has sound emulation bugs at the moment. Fixed rom names (duplicate name but dif CRC fix). Fixed cocktail controls. Connected sound to be like indianbt. There's no music in this version. - Ironman Ivan Stewart's Super Off-Road Track-Pak: Fixed input in clone (2 Players). Removed 3rd Player and 3rd coin slot. (ID 04196) - Island 2: Added m48t35 rom to clone Island 2 (bootleg, 060529, banking address hack) - The Legend of Silkroad: Replaced bad gfx1 rom and removed init hack. Added rom locations. - Ninja Baseball Bat Man: Replaced bad gfx dumps in clone Ninja Baseball Bat Man II (bootleg) - PinMAME: Added missing SHA1s for Goofy Hoops - Road Runner: Fixed input in Road Runner and clones (ID 03388) - Rumba Lumber: Correct a couple of dipswitch names and change clocks to be XTAL based - Sea Battle: Added gfxdecode - Sky Soldier: Removed old achocode in ROM_START - Skull & Crossbones: Fixed regression - Space Invaders / Qix Silver Anniversary Edition: Added a note about an alt PCB showing a different PCM rom label. Updated information about the "newer" C rev boards and the F34-03 rom data being the same as F34-01 data. - Spooky Night 2nd Edition: Added comment about updated graphics roms. Need to verify against a factory 2nd Edition. - Sport Fishing 2: Redumped CDROMs for (UET 951106 V1.10e) and clone (J 951201 V1.100) - Star Wars and TomCat: Removed garbage in unused bits of 4 bit mathbox proms in Star Wars (rev 1/2) and TomCat (Star Wars hardware, prototype) - World Tennis: Added proper sized maincpu rom from recent dump and updated labels. - Tank 8: Fixed 'Play Time' dipswitch (ID 01797) - Input port . Changed "Gear Shift" to LOW by default for chasehq, contcirc, sci and topspeed . Added generic Gear Shift artwork to sspeedr - Dipswitch fixes in cps1.c, bakutotu, bloodwar, fruitpc, galdrvr.c, goldnpkr.c, pgm.c, rallyx.c, rumba, superx, tank8 and travrusa.c - Fixed rom names in nbbatman2bl, rdftadi, rdftam, silkroad and wtennis - Renamed (j6indyge) to (j6indyge2), (magic10b) to (magic10c), (magic10a) to (magic10b), (pbball96) to (powyak96), (pbballex) to (powyakex) and (spikes91a) to (svolleybl). - Description changes of 1991 Spikes (Italian bootleg, set 1), Botanic (French), Coronation Street Triple (Bingo Version ?1) (PR2?4?) (Mazooma) (Scorpion 4), Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 2), Crush Roller (bootleg set 4), Cycle Warriors (set 1), Cycle Warriors (set 2), Dynamite Dux (Datsu bootleg), Fantastic (Galaga conversion on Galaxian hardware), Fruit Land, Guardian Storm (horizontal, not encrypted), Horizon (Irem), Indiana Jones (JPM) (IMPACT, German set 2), Jikkyou Powerful Pro Yakyuu '96 (GV017 Japan 1.03), Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB), Kong (Donkey Kong conversion on Galaxian hardware), Lunar Rescue (Model Racing bootleg, set 1), New Rally X (bootleg?), Red Fox War Planes II (China, set 1), Shanghai II (Japan, set 1), Taisen Mahjong Final Romance 4 (Japan), Taisen Mahjong Final Romance R (Japan), The Key Of Avalon - The Wizard Master (server) (Rev C) (GDT-0005C), The Key Of Avalon 1.3 - Chaotic Sabbat (client) (Rev C) (GDT-0010C), The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev B) (GDT-0017B), The Next Space (set 1), The Percussor, Thunder Force AC (Japan), Thunder Force AC, Tough Turf (Datsu bootleg), Virtua Striker 3 Ver. 2002 (GDS-0006) and Virtua Striker 4 (Japan) (Rev E) (GDT-0013E) - MAME . Unrolled modulo in {div|divu}_64x32_rem() and {mod|modu}_64x32() since it is apparently faster. This also gets rid of a duplicated div operation in {div|divu}_64x32_rem() / div*_64x32_rem() now call div*_64x32(). . HLSL . Enabled vector bloom and associated .ini controls . Added raster bloom and associated .ini controls, each bloom "level" is the linear weight of successively half-sized render targets. . Removed D3D8 mode . Mass renaming in D3D renderer to use namespaces, initial planning step to HAL-based renderer implementation on Windows (i.e., GL on Windows). . Converted d3d_info, d3d_poly_info, and d3d_texture_info into classes. . Added batching of vectors for possible speed increase . Minor cleanup of shader state setting . Reset D3D device before destroying device. Fixes crash when selecting games from internal menu with HLSL enabled. . Fixed some initialization and cleanup issues with new D3D code. Fixed DFJustin's crash (windows\drawd3d.c). . Eliminate some of MAME's anonymous timers (drivers\artmagic.c, asterix.c, astinvad.c, asuka.c, boxer.c, capbowl.c, cball.c, cidelsa.c, dec8.c, destroyr.c, esh.c, fgoal.c, firetrk.c, flyball.c, fuukifg2.c, fuukifg3.c, galastrm.c, gaplus.c, gcpinbal.c, gottlieb.c, gpworld.c, groundfx.c, gticlub.c, gunbustr.c, kinst.c, m10.c, mappy.c, megatech.c, metro.c, mgolf.c, mjsister.c, mlanding.c, othunder.c, parodius.c, peplus.c, policetr.c, rabbit.c, rollerg.c, simpsons.c, skullxbo.c, slapshot.c, sprint4.c, taito_b.c, taito_f2.c, taito_f3.c, taito_z.c, tehkanwc.c, thayers.c, thunderx.c, tickee.c, tmnt.c, toaplan2.c, topspeed.c, toypop.c, trucocl.c, tugboat.c, ultratnk.c, undrfire.c, vendetta.c, videopin.c, wgp.c, wolfpack.c, zr107.c and includes\megadriv.h). . Autoboot command support added (emu\emuopts.c and machine.c) Added new line support for autoboot command (emu\machine.c). . Save state cleanup, converted state_save_register_global* into save_item/save_pointer. Made save_items to be global in cases where needed (video\bfm_adr2.c). . Allow -romident to properly handle zipfiles inside a directory (emu\clifront.c) . LUA 5.2.2 added to libraries (LUA = Controls execution of the core MAME system), did basic hookup of LUA VM into running machine. Added -script (or -autoboot_script) command to execute LUA script after driver startup. Added emu.keypost function to lua, and made autoboot_command execute that one instead of direct execution, note that you need to add \n for new line at the end now. - Compiling . Added makefile define SANITIZE to specify the sanitizer to use (supported by latest GCC and Clang versions). Added additional library necessary to link with Clang on Linux. Added additional compiler and linker flags necessary for ThreadSanitize. . Delete unneeded file (video\genesis.c) and mame.mak file entry. Further cleaning of an unneeded file and invalid .mak file entries (segasms.c, nes_mmc.c, nes_ines.c nes_pcb.c and nes_unif.c). . Added additional flags for compiling on Linux and OSX, but enabled just posix, so it should cover most of distributions and variations (lib\lib.mak). . Fixed building with MSVC (machine\psxcd.c) . Added support for -mavx and -flto (windows\vconv.c) - Debugger . Added memory tracking to debugger. This includes two new commands: trackmem and pcatmem(p|d|i). . Fixed left-click selection bug in the memory window. . Explanation: Call trackmem to start tracking which PC writes to which address in memory and pcatmem(p|d|i) to query a memory region for which PC wrote to it. Users of the QT debugger can also right click on a memory address in the memory window to make a popup message appear with the results - right-clicking also automatically copies the resultant PC onto the clipboard. . Added statesave (ss) and stateload (sl) commands to the debugger . Added RP command in new debugger (03449) 0.148u4 - New games: Good Luck II - New Working games: Spooky Night 2nd Edition (Version 2.0.4) - New Non-Working games: Fruit, Golden Tee Fore! 2004, Golden Tee Fore! 2005, GTI Poker? (SMS hardware), Pinball 2000: Revenge From Mars (rev. 1), Pinball 2000: Star Wars Episode 1 and Shakatto Tambourine 2K1 SPR (GDS-0013). - New clones: Arkanoid Returns (Ver 2.02O 1997/02/10), Back Street Soccer (KRB-0032A PCB), Ball Boy, D. D. Crew (Japan, 4 Players, FD1094 317-0185), DoDonPachi II - Bee Storm (China, ver. 100), DoDonPachi II - Bee Storm (China, ver. 101), DoDonPachi II - Bee Storm (China, ver. 102), DoDonPachi II - Bee Storm (Hong Kong, ver. 100), DoDonPachi II - Bee Storm (Hong Kong, ver. 101), DoDonPachi II - Bee Storm (Hong Kong, ver. 102), DoDonPachi II - Bee Storm (Korea, ver. 100), DoDonPachi II - Bee Storm (Korea, ver. 101), DoDonPachi II - Bee Storm (Korea, ver. 102), DoDonPachi II - Bee Storm (Taiwan, ver. 100), DoDonPachi II - Bee Storm (Taiwan, ver. 101), DoDonPachi II - Bee Storm (Taiwan, ver. 102), DoDonPachi II - Bee Storm (World, ver. 100), DoDonPachi II - Bee Storm (World, ver. 101), DoDonPachi II - Bee Storm (World, ver. 102), Knuckle Heads (Japan, Prototype?), Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 103, China, Tencent) (unprotected), Pinball 2000: Revenge From Mars (rev. 2), Se Gye Hweng Dan Ultra Champion (Hong Kong), Spooky Night (Version 1.0.1), Super Chase - Criminal Termination (World) and Wing Shooting Championship V1.00. - New drivers: fruitpc.c, gluck2.c, iteagle.c and pinball2k.c - I80286 CPU: Make the i286 registers in the debugger follow the 386 layout. (MESS) Cleanup AT unnecessary rom entries, move the neat 386sx to ct386sx and make it boot. - M6502 CPU: Undocumented M6502 instruction 0x80 is a 2-byte nop, not a 1-byte one (m6502\dm6502.lst, dm6509.lst, dm6510.lst and dn2a03.lst). - PSXCPU . Brought disassembler up to date (psx\psxdasm.c) . Removed some unused #defines & whitespace changes (psx\gte.c) . Improved FLAG calculation in NCDS, CDP, NCDT, NCCS, CC, NCS, NCT & NCCT by checking for overflow after each addition (psx\gte.c) . Fixed MVMVA flag calculation & replicate the bugs when mx is set to 3 or cv is set to 2 (psx\gte.c) . Fixed RTPS flags and calculation . Fixed RTPT flags calculation & added a new divide implementation that uses a much smaller table (psx\gte.c) . Removed comment as the divider is new (psx\gte.h) . Partial support for setting the RAM size, if the size is set larger than the actual memory then RAM is repeated. As a result the RAM is no longer included in the drivers memory map, you have to specify the size in the machine (psx\dma.c/h, psx.c/h, drivers\konamigq.c, konamigv.c, ksys573.c, namcos10.c, namcos11.c, namcos12.c, taitogn.c, twinkle.c, zn.c and psx.c). . Added a temporary way to get to the PSX RAM as a couple of share1 lookups remained. Renamed the gte acc class to int44 to better describe what it is & uses the register names instead of the array index in a couple of places. Make it clearer that you can't write to LZCR (psx\gte.c). . Changed loop detection hack to use address mask to stop it crashing, NFS Vrally 2 doesn't crash straight away but it's graphics are completely corrupt (psx\dma.c). . PSX CPU creates a ram device, this has exposed a problem with not removing the child devices from the hash map when removing replacing devices. At the moment I have changed device.c so that when any device is removed the hash maps are reset. . Changed default value of ram to zero. Some of the system 12 games compared ram that hasn't been written to with the result from what we think is the keycus. . Don't clear busy status until done and skip padding. This fixes the RE3 opening (psx\mdec.c). Be a bit more permissive with allowed transfer types from the CDROM (psx\dma.c). . PSX GPU: Added triangle culling, most noticeably fixes NASCAR Thunder 2004 (video\psx.c). . PSX SPU: Move CDDA interrupt to play_cdda to make sure it happens at least once per sector. (MESS) Vibribbon doesn't crash now starting gameplay but there's no music. It seems to copy the samples to the reverb loop address which doesn't appear to be mixed currently. - S2650 CPU: Fixed a few disassemblies - Samsung S3C24xx (ARM MCU): s2c24xxx cleanup and modernization of devices using it (drivers\ghosteo.c) - Z800x CPUs . Z800x and (MESS) M20 improvements to boot CP/M-8000 . Z800x: Push the correct word on internal traps. Fixed FCW handling in system non-segmented mode. Added missing form of ldb reg, #imm. Show previous PC, NSPSEG, and PSAPSEG in the debugger. Improved flags display in the debugger. Added debugger command z8k_disass_mode to toggle segmented/non-segmented. Default "auto" tracks the current execution state. Don't block nested exceptions if the priority and the FCW allows it. . M20: Initialize memory to 0x00. Some keyboard fixes. - BEEP sound: Made BEEP device initialize in constructor of driver classes (sound\beep.h, drivers\deshoros.c and dlair.c). - Pokey sound: Correct bit for POK_KEY_BREAK which now allows colon/semi-colon [:;] key to work properly (atari_a800_keyboard: machine\atari.c). - Taito sound: Fixed taitosnd interrupts basically not working at all, stupid bug. Get rid of old commented-out verbosity and some other source cleanup. - TMS5100 sound: Correct and verified TMS5100 LPC table against the decap (sound\tms5110r.c) - TMS5110/TMS5200 sound . Verified TMS5200 LPC rom as correct from decap (sound\tms5110r.c) . Correct and verified TMS5100 LPC table against the decap (sound\tms5110r.c) - TMS5220 sound: Updated many TMS5200 comments, changed a variable name, and made some minor fixes to the 'circuit 412' to better reflect the patent. Based on decap analysis, both the TMS5220 and TMS5220C use identical LPC tables; get rid of the unnecessary extra table. - I5000 sound: Sync fix (i5000snd_device::write_reg16) - 8250 UART: Fixed INS8250 msr bits - 6850 ACIA: Improved DCD signal handling - Bitbanger (serial port): Handle Bitbanger create. Use Bitbanger instead of prin on the command line. Give it a brief name. - Cassette: Cleanup imagedev\cassette.h - Floppy: Allow connection of DD drives to ATS (machine\isa_fdc.c). Don't crash when inserting a disk after removing a different size one (formats\upd765_dsk.c). Fixed dsk_format load return true (formats\dsk_dsk.c) - IDE: Added XT IDE interface - Keyboard . 8042kbdc is now device . Removed some duplicated and not used code for PC keyboard and moved stuff needed for xt keyboard on proper place (emu\emu.mak, machine\8042kbdc.c/h, pcshare.c/h, pckeybrd.c, drivers\calchase.c, funkball.c, gamecstl.c, gammagic.c, magtouch.c, mediagx.c, midqslvr.c, pangofun.c, pcat_dyn.c, pcat_nit.c, photoply.c, queen.c, savquest.c, su2000.c, taitowlf.c, voyager.c, xtom3d.c, machine\pcshare.c and mame.mak). - KONAMI K053250: k053250_t to k053250_device (emu\video\k053250.c/h, drivers\mystwarr.c, overdriv.c, xexex.c/h and video\konamigx.c). - SCSI: State cleanup and some modernization (machine\wd33c93.c and drivers\cps3.c) - VGA/SVGA . Setting the Mix to DST actually does draw pixels. Fixes background rendering in XF86_S3 (video\pc_vga.c). Added read/write registers, and implemented read masking in BitBLTs (used by XF86_S3). Made clipping rectangle checks against Destination X/Y when doing BitBLT (s3, mach8: video\pc_vga.c, isa_svga_s3.c, isa_vga_ati.c and s3virge.c). Added MMIO registers for read and write masks (s3: video\pc_vga.c). . Added bits 8 and 9 of VGA Offset register (s3, s3virge: video\pc_vga.c and s3virge.c) - Voodoo GFX: Voodoo is using now device callbacks and some minor cleanups in few drivers (video\voodoo.c/h, vooddefs.h, drivers\funkball.c, gticlub.c, hornet.c, magictg.c, nwk-tr.c, seattle.c, vegas.c and viper.c). - arcadia.c . Added the SEC-SCPA PAL dump used on Leader Board and Magic Johnson's Fast Break . Correct driver inits for Leader Board (Arcadia, set 1, V 2.5) and clone (Arcadia, set 2, V 2.4) - bfm_sc5sw.c: Added YMZ280B sound. Changed audio to mono Speaker. - cischeat.c: Debug compile fix (video\cischeat.c) - cps3.c: State cleanup and some modernization (machine\wd33c93.c and drivers\cps3.c) - deshoros.c: Made BEEP device initialize in constructor of driver classes - ddenlovr.c: Fixed compile error in driver (ddenlovr_state::mjmyster_irq) - dlair.c: Made BEEP device initialize in constructor of driver classes - gammagic.c and vlc.c: Modernized driver - hikaru.c . Added dump of mask ROMs to Brave Fire Fighters . Redumped bad ROMs in Brave Fire Fighters and NASCAR Racing as per the test mode checksum tables - iteagle.c . Added Eagle BIOS (1.02 bootrom, FPGA config ROMs and PALs) . Updated documentation. Minor update to the PCB layout. Correct Xilinx part to 17S50ADC & added EEPROM type and location. This is significant as this is where the game type, PCB serial # and validation is stored. - lazercmd.c . Couple of fixes to inputs, added DIP locations and misc cleanups. Bigfoot Bonkers now supports 1-player game. . Lazer Command overlay is yellow-green, not green-yellow. Couple of fixes to inputs, added DIP locations and misc cleanups. . Couple of fixes to Meadows Lanes inputs, added DIP locations and misc cleanups. - m10.c and model2.c: Fixed DEBUG macro redefinition - megadriv.c: Shot in the dark in the hope to fix Haze's problems - namcos12.c . Changed default value of ram to zero. Some of the Namco System 12 games compared ram that hasn't been written to with the result from what we think is the keycus. . Fixed Golgo 13 and Golgo 13 Kiseki no Dandou crashed after game exit (ID 05121) - naomi.c: GD-ROM redump for confmiss, cvs2gd, dygolf, initdexp, initdv3e, initdv3j, mok, ngdup23a, senkoo, senkosp, shaktamb, sprtjam, ss2005, vf4evo, vstrik3 and vtennis2 - nss.c, playch10.c, sfcbox.c and snesb.c: Went through Nintendo drivers and like for the NES earlier, made using the default keyboard controls attempted to follow left to right button order on actual controller or machine. - segas18.c . Added decryption key to clone D. D. Crew (Japan, 4 Players, FD1094 317-0185) . Replaced 68000 CPU1 with FD1094 in Pontoon - snesb.c . Fixed snesb regression (includes\snes.h and machine\snes.c) . Removed not needed state variables (includes\snes.h) - suna16.c . Added board documentation, added PCB layouts for both styles of Back Street Soccer and Ultra Balloon. . Added DIP locations to Best Of Best, Back Street Soccer and Ultra Balloon. Changed CPU clocks to actual OSC based timing. . Fixed gfx1/2 rom loading in Best Of Best . Fixed Z80 CPU3/4 clock speeds and gfx1 rom loading in Back Street Soccer . Fixed Z80 CPU2 and YM2151 sound clock speeds and gfx1 rom loading in SunA Quiz 6000 Academy. . Fixed Z80 CPU3 clock speed to 5333333 Hz and gfx1 rom loading in Ultra Balloon. - taitojc.c: Moved 'dendego lookup tables' from taitojc.h to taitojc.c - taitogn.c . Night Raid was fixed with smf's PSX improvementsc . Zooo was fixed with smf's PSX improvements in 0.148u3 - vsnes.c: Changed machine\vsnes.c to compile on Visual Studio compile - undrfire.c: Fixed 68EC020 CPU1 clock speed in Chase Bombers and Under Fire - zodiack.c: Fixed Z80 CPU1/2 and AY-3-8910A clock speeds and VSync (ID 02514) - Aero Fighters Special: Fixed texts and logos disappear from the title screen in clone Sonic Wings Limited (Japan) when you insert a credit (ID 00795). - Diet Go Go: Standardize and correct rom labels in Diet Go Go including adding PCB location where known. Added PLDs to the Japan set and correct labels for all sets. Order the rom definitions in logical descending order. Minor white space clean up. - Dorachan: Call pcbase() instead to save a cast (dorachan_protection_r) - Fighting Golf: Detailed differences in Fighting Golf (US) from parent based on observation and "SNK Program Update" notice which was found which includes a DIPSWITCH change - Fruit: Fixed VGA BIOS mirror, RAM amount and HDD writability. This game based on a 486+PC h/w+VGA SoC appears to boot into MS-DOS successfully (based on logging IDE commands) and the game may even be running, but there is no video at all (DOSBox runs it with half the screen missing). If any of the PC experts could take a look it's probably something relatively obvious. It also has a Sound Blaster compatible sound system which isn't currently hooked up. - Ground Effects: Fixed 68EC020 CPU1 clock speed - Hang-On: Renamed the main CPU roms for Hang-on (Ride On). Based on information in the Sega 420-5244 manual. Added "__(needs_verification)" in the rom name to show we are not 100% sure - Midnight Landing . 12MHz TMS DSP? I doubt that this also fixes the arrow indicator 'gfx smear' bug. "sound cpu error" should be gone now, so cleaned up some of the sound code. . ADPCM improvements and some misc changes. Small update on dips. Reimplemented analog controls, but it's still about as bad as it was before. . Fixed TMS32025 CPU5 clock speed. Changed region audiocpu ($14000) to unknown ($0). Removed 8-way Joystick and all buttons. - Power Shovel . Added romdumps from Power Shovel additional I/O PCB. Added io_cpu2 and oki1/2 roms. . The oki sample it's probably not used for rumble/vibration. - Primal Rage 2: PCB readme shows 8MB RAM, make it so. This makes the character select not freeze (the music streaming buffer extends up past the 4MB mark, so this also serves to confirm the extra RAM). - Puck Man: Verified original puckman roms and made that set the parent and split some of the roms - Snow Brothers 3 - Magical Adventure: Changed game from a clone of 'Snow Bros. - Nick & Tom (set 1)' to parent - Spooky Night 2nd Edition: Added gfx1/2, OKI6295 and NVRAM roms (Game now playable) - Street Fighter II': Champion Edition . Fixed crash of sf2m1 in debug build (memory array overrun) . Fixed slight offset of layer2 in sf2m3 and sf2m8 - Super Chase - Criminal Termination: Fixed 68EC020 CPU1 clock speed. Added PLDs to the sets. - Top Speed: Removed old workaround - Turbo Sub: Fixed regression in ESRIP driver caused by cycle-exact 6809 core - Warp Speed: Added year info (1979 is according to date stamps on PCB chips) - Dipswitch fixes in lazercmd.c, suna16.c, mlanding and taitojc.c - Fixed rom names in bomber, dietgo, hangon, knckhead and superchs - Renamed (arkretrn) to (arkretrnj), (ddcrewj) to (ddcrewj2), (ddp2) to (ddp2j), (ddp2100) to (ddp2100j), (ddp2101) to (ddp2101j), (puckman) to (puckmanb), (puckmana) to (puckman), (snowbros3) to (snowbro3) and (superchs) to (superchsu). - Description changes of Back Street Soccer (KRB-0031 PCB), Field Goal (set 1), Field Goal (set 2), Mega Zone (Interlogic), Mogu Chan (bootleg?), Pontoon (FD1094 317-0153), Puck Man (bootleg set 1), Puck Man (Japan set 1), Puck Man (speedup hack), Puck Man (bootleg set 2), Puck Man (Japan set 2), Spooky Night 2nd Edition (Version 2.0.4) and The Percussor (bootleg?) - MAME . Made required/optional device finder part of validation (emu\device.c/h, machine\netlist.h and validity.c) . Keep naming consistent (emu\device.c) . Removal of machine().root_device() where appropriate (audio\circus.c, drivers\asuka.c, chinagat.c, chinsan.c, ddragon.c, docastle.c, gamecstl.c, gcpinbal.c, gladiatr.c, gsword.c, jantotsu.c, lucky74.c, megadrvb.c, megaplay.c, megatech.c, mermaid.c, mlanding.c, namcos2.c, neodrvr.c, neogeo.c, ojankohs.c, opwolf.c, pachifev.c, powerbal.c, rastan.c, savquest.c, segac2.c, spdodgeb.c, taito_l.c, taitotz.c, tbowl.c, tecmo.c, voyager.c, machine\namcos1.c, namcos2.c, video\vectrex.c and ldplayer\ldplayer.c). . Removed implementation of legacy DEVCB_MEMORY_HANDLER and used members instead (emu\devcb.c/h, drivers\dkong.c/h, mario.c/h and nbmj8688.c/h) . Don't use osd_free on pointer allocated with malloc (osd\windows\winptty.c and winsocket.c) . Use GetLastError in windows\winsocket.c . Moved cpu_device * to required_device in existing driver state classes . Added m_maincpu where missing in driver classes that are placed in drivers (m_maincpu(*this, "maincpu") { } + required_device m_maincpu;). . Changed machine().device("maincpu") with m_maincpu in MAME tree part . Changed machine().device("audiocpu") with m_maincpu . Make slot depended checks to be case insensitive like other parts of core (emu\mconfig.c). . Made m_audiocpu, m_subcpu and m_soundcpu optional for those drivers setting value on null, rest will need to be catch with automated tests (includes\aerofgt.h, bishi.h, btime.h, cave.h, champbas.h, cps1.h, cvs.h, dec8.h, dynax.h, f1gp.h, fromanc2.h, gaelco.h, gameplan.h, homedata.h, marineb.h, mexico86.h, moo.h, pgm.h, psikyo.h, system16.h, taito_l.h, taito_z.h, tmnt.h, tnzs.h, tumbleb.h and yunsun16.h). . Changed machine().device("soundcpu") with m_soundcpu. Same for "sub" and "subcpu". . Removed not needed screen device references (drivers\backfire.c, darius.c, fromanc2.c, ninjaw.c, warriorb.c and xmen.c) . SNAPSHOT_LOAD and QUICKLOAD_LOAD made members, still need to cleanup (imagedev\snapquik.h and drivers\jaguar.c/h) . Made required/optional device finder part of validation (emu\device.c/h, machine\netlist.h and validity.c) . Updated -lx to account for on-device samples (required by NES carts using samples due to currently undumpable NEC D7755C/D7756C). - SDLMAME . Fixed SDL symlink handling by internal file manager (sdl\sdldir.c) . QT Debugger . Added trackpc command, allowing for a visual display of where the program counter has visited in the dasm windows. Run "help trackpc" in the debugger to see the options. Out of whatsnew: This isn't enabled by default because of how sloooow it is to disassemble each opcode when you want to compute its crc32. That can be sped up with lookup tables and the like. There's a good chance I should pull the 'clear tracks' argument into its own command, but it functions as-is. This can be added to the windows debugger with a simple change to the osd display code. Convert the std::vector of settings to a simple_list in preparation for saving individual window settings (sdl\debugqt.c and debugqtwindow.h). . Now saves all settings for all open windows - including docks in the main debug window. Also fixes bug where closing the main window with the X in the corner didn't save settings properly. . Don't double-shutdown the font cache on *IX when exiting with the debugger enabled (sdl\debugqt.c, sdlmain.c). . Support for both OS X native and Unix-style multiuser installs (sdl\sdlmain.c). - Compiling . Unified formating of state class constructors, no functional change (: driver_device(mconfig, type, tag) ,) . Some cleanup (drivers\40love.c, airbustr.c, arabian.c, arkanoid.c, ataxx.c, bigevglf.c, bking.c, blktiger.c, bublbobl.c, buggychl.c, byvid.c, cchance.c, champbas.c, champbwl.c, changela.c, cloak.c, cubeqst.c, dec8.c, deniam.c, equites.c, esd16.c, esripsys.c, exprraid.c, exterm.c, fantland.c, finalizr.c, flstory.c, hvyunit.c, jackal.c, kingobox.c, leland.c, lkage.c, lsasquad.c, m72.c, matmania.c, maxaflex.c, mexico86.c, missb2.c, msisaac.c, namcona1.c, namconb1.c, namcos2.c, nycaptor.c, nyny.c, pacland.c, pushman.c, rbmk.c, renegade.c, seicross.c, shougi.c, skykid.c, stv.c, superqix.c, system1.c, tubep.c, tx1.c, xain.c, includes\dec0.h, dynax.h, namcond1.h, namcos1.h, pitnrun.h, qix.h, slapfght.h, taitosj.h, tnzs.h). . Small cleanup (drivers\armedf.c/h, eprom.c/h, thunderj.c/h and video\exterm.c) . Some cleanup (drivers\galaga.c, gaplus.c, junofrst.c, mappy.c, namcos1.c, polepos.c, system1.c, tatsumi.c, xain.c, machine\taitosj.c, vsnes.c, audio\meadows.c and includes\meadows.h) . Cleanup of duplicates (drivers\dorachan.c, jaguar.c/h, toaplan2.c/h and video\jaguar.c) . Cleanup (cpu\pdp1\pdp1.h, drivers\cischeat.c, ecoinf3.c, equites.c, gaelco3d.c, ggconnie.c, maygay1b.c, seattle.c, uapce.c, machine\pcecommn.h, saturn.c and scramble.c). . Discrete lookups removal (atarifb.c, cliffhgr.c, firetrk.c, goldnpkr.c, grchamp.c, hitme.c, madalien.c, mw8080bw.c, norautp.c, skydiver.c, sprint2.c, sprint4.c, starshp1.c, subs.c, tank8.c, triplhnt.c, uapce.c, ultratnk.c, videopin.c and wiz) . dac_device tag lookup cleanup (audio\cchasm.c, harddriv.c, n8080.c, drivers\amaticmg.c, aristmk5.c, calchase.c, champbas.c, cheekyms.c, circusc.c, coolpool.c, cosmic.c, csplayh5.c, cvs.c, equites.c, ertictac.c, esripsys.c, exterm.c, galaxian.c, gei.c, homedata.c, looping.c, m72.c, magicfly.c, mappy.c, meyc8080.c, meyc8088.c, mjsister.c, mogura.c, mpoker.c, murogem.c, nbmj9195.c, niyanpai.c, ppmast93.c, quizshow.c, rltennis.c, sbrkout.c, segas24.c, suna16.c, taitosj.c, tceptor.c, tnzs.c, truco.c, trucocl.c, unkhorse.c, vcombat.c, videopkr.c, zaccaria.c, includes\cchasm.h, harddriv.h and n8080.h). . speaker tag lookup removal (sound\speaker.h, audio\8080bw.c, drivers\maxaflex.c, pcxt.c, photon.c, photon2.c, includes\8080bw.h, machine\ticket.c). . eeprom_device tag lookup cleanup (drivers\20pacgal.c, 39in1.c, 8080bw.c, cave.c, centiped.c, deco_mlc.c, deco32.c, deco32.c, dkong.c, fortecar.c, gaelco3d.c, galastrm.c, galpani2.c, gticlub.c, gunbustr.c, hornet.c, jackpool.c, jaguar.c, jclub2.c, kaneko16.c, konamigv.c, lordgun.c, metro.c, midas.c, mitchell.c, model2.c, model3.c, pirates.c, plygonet.c, pntnpuzl.c, policetr.c, psikyo4.c, psikyosh.c, pzletime.c, r2dx_v33.c, rabbit.c, rbmk.c, segas32.c, seibuspi.c, seta2.c, sigmab98.c, spool99.c, spool99.c, stlforce.c, superchs.c, tecmosys.c, tmmjprd.c, toaplan2.c, undrfire.c, unico.c, vamphalf.c, wheelfir.c, wheelfir.c, xorworld.c, includes\8080bw.h, gaelco2.h, leland.h, sms.h, stv.h, machine\gaelco2.c and leland.c, smpc.c and sms.c). . pcat cleanup + removal of all not used LEGACY calls (in comments) and removal of not used macros (emu\addrmap.h, drivers\alpha68k.c, armedf.c, atarig1.c, bagman.c, bking.c, bwidow.c, calchase.c, cninja.c, cntsteer.c, coolpool.c, deco32.c, fitfight.c, gal3.c, galaxian.c, galaxold.c, gammagic.c, goldstar.c, gottlieb.c, gpworld.c, hng64.c, hvyunit.c, istellar.c, jalmah.c, jclub2.c, laserbas.c, magtouch.c, mirage.c, mlanding.c, mpu4dealem.c, mpu4hw.c, mpu4vid.c, msisaac.c, multfish.c, neoprint.c, nightgal.c, othunder.c, pangofun.c, pcat_dyn.c, pcat_nit.c, playmark.c, pokechmp.c, popobear.c, psikyo.c, quakeat.c, r2dx_v33.c, renegade.c, rungun.c, senjyo.c, skydiver.c, srmp6.c, stactics.c, strnskil.c, stv.c, su2000.c, subs.c, taito_b.c, taito_f2.c, taito_z.c, taitoair.c, tbowl.c, tmmjprd.c, toaplan1.c, umipoker.c, voyager.c anf xain.c). . Samples change to find in constructor (drivers\8080bw.c, aristmk4.c, astinvad.c, astrof.c, circus.c, cosmic.c, gotya.c, m10.c, m63.c, rallyx.c, safarir.c, tmnt.c, includes\mw8080bw.h and machine\mw8080bw.c). . "samples" lookup tag removal (audio\blockade.c, gorf.c, meadows.c, polyplay.c, segag80r.c, segag80v.c, spacefb.c, suna8.c, turbo.c, zaxxon.c, drivers\astrocde.c, dai3wksi.c, equites.c, mcr.c, superqix.c, tankbatt.c, thief.c, tnzs.c, triplhnt.c, includes\galaga.h, machine\gaplus.c, xevious.c, video\starcrus.c). . MSM5205 ADPCM lookup tag removal (drivers\40love.c, appoooh.c, ashnojoe.c, asuka.c, battlera.c, cabal.c, chinagat.c, chinsan.c, combatsc.c, crgolf.c, dacholer.c, darius.c, ddragon.c, dec0.c, dec8.c, discoboy.c, docastle.c, drmicro.c, dynax.c, fantland.c, firetrap.c, flstory.c, fromance.c, gcpinbal.c, gladiatr.c, goal92.c, gsword.c, hnayayoi.c, jangou.c, jantotsu.c, kchamp.c, kungfur.c, kurukuru.c, lucky74.c, maygay1b.c, mastboy.c, mermaid.c, mitchell.c, mlanding.c, msisaac.c, ojankohs.c, opwolf.c, pachifev.c, pcktgal.c, rastan.c, rmhaihai.c, sf.c, sothello.c, spdodgeb.c, splash.c, srmp2.c, suprgolf.c, taito_l.c, tbowl.c, tecmo.c, tehkanwc.c, tigeroad.c, toki.c, topspeed.c, tubep.c, wc90b.c, yunsung8.c and machine\stfight.c). . OKI6295 cleanup (drivers\aerofgt.c, astrocorp.c, bestleag.c, cps1.c, ddragon3.c, deniam.c, diverboy.c, drtomy.c, funybubl.c, fuukifg2.c, galpanic.c, gotcha.c, igs011.c, kaneko16.c, kickgoal.c, legionna.c, lordgun.c, m92.c, metro.c, midyunit.c, moo.c, nmg5.c, oneshot.c, othldrby.c, playmark.c, pzletime.c, rampart.c, seta2.c, shadfrce.c, snowbros.c, speedspn.c, sslam.c, stlforce.c, subsino2.c, tickee.c, tmaster.c, toaplan2.c, tumbleb.c, unico.c, vamphalf.c, wwfwfest.c, includes\tatsumi.h, machine\tatsumi.c). . OKI6295 tag lookup removal (cischeat.c, deco156.c, galpani2.c, highvdeo.c, kaneko16.c, megasys1.c, mwarr.c, nmk16.c, paradise.c, pasha2.c, pktgaldx.c, toaplan2.c and vamphalf.c). . More OKI6295 changes (drivers\30test.c, acommand.c, aquarium.c, arcadecl.c, artmagic.c, cischeat.c, deco32.c, deniam.c, egghunt.c, feversoc.c, igs011.c, igs017.c, limenko.c, pirates.c, playmark.c, powerbal.c, psikyo.c, relief.c, seibuspi.c, shangha3.c, silkroad.c, snowbros.c, spool99.c, sslam.c, taito_f3.c, toaplan2.c, tumbleb.c and machine\atarigen.c/h). . upd7759_device tag lookup removal (drivers\88games.c/h, bfcobra.c, bfm_sc1.c, bfm_sc2.c, bingoc.c, bladestl.c, combatsc.c/h, jpmimpct.c/h, mainevt.c/h, prehisle.c/h, rpunch.c/h, segac2.c, snk68.c/h, tmnt.c/h, twin16.c/h, includes\bladestl.h and megadriv.h). . Various cpu lookup cleanup . Removed usage of 6532RIOT legacy calls (machine\6532riot.c/h, audio\exidy.c, starwars.c, drivers\firefox.c, gameplan.c/h, spectra.c, starwars.c/h, tomcat.c and tourtabl.c). . OS X compile fix (video\dl1416.c) . Fixed compile (imagedev\snapquik.c) . Added rest of deco16ic_device (drivers\cbuster.c/h, dblewing.c, dietgo.c/h, dreambal.c, funkyjet.c/h, pktgaldx.c/h, supbtime.c/h, tumblep.c/h, vaportra.c/h and includes\deco32.h and video\deco32.c). . Konami hell resolve (88games.c, ajax.c, aliens.c, asterix.c, battlnts.c, bishi.c, bladestl.c, blockhl.c, bottom9.c, chqflag.c, cobra.c, combatsc.c, contra.c, crimfght.c, dbz.c, djmain.c, f1gp.c, fastlane.c, flkatck.c, gbusters.c, gijoe.c, gradius3.c, hcastle.c, hornet.c, konamigx.c, labyrunr.c, lethal.c, mainevt.c, moo.c, mystwarr.c, nemesis.c, nwk-tr.c, overdriv.c, parodius.c, qdrmfgp.c, rockrage.c, rollerg.c, rungun.c, spy.c, suprslam.c, surpratk.c, tail2nos.c, tasman.c, thunderx.c, tmnt.c, twin16.c, ultraman.c, ultrsprt.c, vendetta.c, wecleman.c, xexex.c, xmen.c, zr107.c, includes\plygonet.h, simpsons.h, machine\ajax.c, simpsons.c, video\djmain.c, plygonet.c, qdrmfgp.c and wecleman.c). . Enforce naming convention (drivers\djmain.c, hexion.c, konamigq.c, plygonet.c, ultrsprt.c and zr107.c). . Taito devices lookup cleanup (drivers\asuka.c, darius.c, lockon.c, ninjaw.c, opwolf.c, othunder.c, rainbow.c, rastan.c, slapshot.c, taito_b.c, taito_f2.c, taito_h.c, taito_o.c, taito_z.c, taitoair.c, topspeed.c, volfied.c, warriorb.c, wgp.c, xexex.c and video\taitoic.h). . Fixed build (includes\taito_h.h: video\taitoic.h -> machine\taitoio.h). . Fix for GCC prior to 4.3 (machine\netlist.h) . Fixed compile error in windows\winptty.c - Debugger: Added simple_set data structure and hooked it up to the debugger comment system (debug\debugcpu.c/h and dvdisasm.c) 0.148u3 - New games: Bases Loaded (Prototype, PlayChoice-10), Caribbean Gold (3VXEC449, USA) and Sex Appeal (Version 6.02) - New Working games: Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1), Caribbean Gold II (3XF5182H04, USA), Magic Card II (hack, blue TAB board, encrypted), Magic Card II (hack, green TAB or Impera board), Royal Card v2.0 Professional, Street Fighter II': Champion Edition (M1, bootleg), Street Fighter II': Champion Edition (M8, bootleg), The Punisher (bootleg with PIC16c57, set 1), The Punisher (bootleg with PIC16c57, set 2) and The Punisher (bootleg with PIC16c57, set 3) - New Non-Working games: Crackin' DJ Part 2, Fruit Star (encrypted), Mars TV (JPN), Winning Streak (Version 1.1) (Coinworld) and Winsprint (JPM) (V4, 5x20p) (SYSTEM80) - New clones: Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS), 'Cycle Warriors, set 1', Daytona USA (Japan, Turbo hack, set 2), Daytona USA Special Edition (Japan, Revision A), Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA), Galaga 3 (GP3), Games V18.5, Gaplus (GP2), Hang-On (ride-on), Hit The Six (Project) (set 2) (PROCONN), Hit The Six (Project) (set 3) (PROCONN), Karnov (US, rev 6), Magic Johnson's Fast Break (Arcadia, V 2.7), Motocross Go! (MG1 Ver. A, set 1), Motocross Go! (MG1 Ver. A, set 2), Raiden Fighters Jet (Single Board, set 1), Riviera Hi-Score (2131-08, U5-2D), Saturday Night Slam Masters (bootleg with PIC16c57), Side by Side (Ver 2.7 J), The Pit Boss (2214-03, U5-1C), Virus (Dr. Mario prototype, PlayChoice-10) and Winsprint (JPM) (V3, 50p, 5 credits) (SYSTEM80) - M6502 CPU . Seriously untested multi-dispatch-table support for M6502 . The (indirect),y zeropage should wrap. So ff,00 instead of ff,100 (m6502\om6502.lst, om6509.lst, om65c02.lst, om740.lst and on2a03.lst). - I286 CPU: Conforming i286 code segments are always permitted in LSL and LAR (i86\instr286.c) - I386 CPU . Fix up the i386 stack if a page fault occurs in a far call and clear the top of esp when loading a tss stack . Removed unused define and 386 has 16-bits of io space . i386 RPL must be not be greater than DPL in LSL and LAR - I8051 / MCS-51: Make MCS51 callbacks used delegates (cpu\mcs51\mcs51.c/h, sound\qs1000.c/h, drivers\eolith.c, maygayv1.c, includes\eolith.h, micro3d.h and machine\micro3d.c) - i960KB CPU: Added i960 opcode cvtilr needed by Zero Gunner - M3745x CPUs . Save state regs for M3745x . Use the correct C68 (M37450) I/O MCU for Steel Gunner 2 - M5074x CPUs: Added support for Mitsubishi M50740/50741 MCUs - M50747 CPUs . Support for all T=1 instructions . Added COM and the accumulator-only versions of INC and DEC . Save state regs for M740 . Fixed branch target disasm for M740 branch-on-bit instructions . Correct disassembly of bbs/bbc on A register . Correct disassembly for seb x,A/clb x,A . The (indirect),y zeropage should wrap. So ff,00 instead of ff,100 (m6502\om6502.lst, om6509.lst, om65c02.lst, om740.lst and on2a03.lst). - SH-2 CPU: Fixed labelnum usage in SLEEP. Also removed a useless branch equivalent to: if(sleep!=1) { sleep=1; } (cpu\sh2\sh2drc.c). - PSXCPU/GPU . Some changes to the PSX mesh display for debugging (video\psx.c) . Correct PSXCPU lwr mem_mask . Fixed a few comments (cpu\psx\psx.c) . Treat x & y coordinates as 11 bit signed, Ridge Racer Revolution loading game sets unused bits (video\psx.c). . Treat x & y coordinates as 11 bit signed on dots, lines & rectangles. This fixes sprites in Zaynac X Zaynac (fc version) in MESS (video\psx.c). . Tweak to the mesh display . Apply draw offset later to avoid the coordinates wrapping when truncated, which may fix recent polygon issues (video\psx.c). . Band aid fix for Tobal No. 1, some graphics issues remain. . VRAM & mesh viewer switch to 1024x1024. Truncate x & y coordinates in mesh before adding the draw offset (video\psx.c). . Stop mesh being displayed all the time when MAME_DEBUG is set . Reduced time before dma interrupt is fired, as it stops incorrect textures being displayed in a few games and the PSE BIOS v2.2 (cpu\psx\dma.c). . psxgpu_device::update_screen clears the border area . Added a note about how the time hack breaks other things . Fixed GTE A1/A1/A3 flag calculation when the result exceeds the maximum bounds. GPF & DPCT work with all values of sf & lm (cpu\psx\gte.c). . Changed dcpl to dpcl to match official documentation, updated disassembly to match emulation (cpu\psx\gte.c and psxdasm.c). . Update RGB FIFO 4 bytes at a time (psx\gte.c) . Fixed GTE GPL & DCPL opcodes by porting over some changes from an old tree . Simplified MAC handling in GTE and fixed some incorrectly calculated values . Assumed flag register always gets cleared (psx\gte.c) . Added comment to GTE_OP() that it's not used. This and the other two #defines that are marked as not used are probably not used on the real hardware either. - SPU sound . Added CDDA interrupts to sound\spu.c . Don't overrun SPU ram - TMS5100/5200 sound . Added correct TMS5200 chirp rom derived from decap; This is now used for 5200, 5220 and 5220c pending decaps of the latter two. . Removed tms5220r.c which hasn't actually been compiled/used by speech code for around 2 years now, and fixed the makefile. . Extremely minor fix for Speak External based on the 5220c and 5200 decaps, and some small documentation updates. . Document the decapping and verification of chirp tables for the tms5100, tms5200, tms5220, and tms5220c. The LPC tables are not verified yet. - K053260: Modernized device (asterix, overdriv, parodius, rollerg, simpsons, tmnt.c, vendetta.c) - NES PPU: Made PPU use delegates instead of callbacks and PPU NMI also delegate and now inline config. Did latch delegate for PPU. (cham24.c, famibox.c, multigam.c, playch10.c and vsnes.c) - MC6847 video . Turning off logging left on . MC6847 optimizations - V9938 video: V9938 to use DEVCB2 (video\v9938.c/h, drivers\big10.c, csplayh5.c, kas89.c, kurukuru.c, meritm.c, sangho.c, sfkick.c, sothello.c, tonton.c and geneve.c) - uPD7220 Display Controller: Added the internal uPD7220 rom (hand-dumped as little-endian from a die shot) - ISA: Don't set intreason_io in data out phase (machine\isa_ide_cd.c). WARP installer sees the CDROM now. NOTE: Only the OS/2 WARP CD-ROM version works for now as the floppies use the XDF format which apparently use variable sectors per track and so AFAIK won't work for now. - VGA: A text character's attribute bit 3 selects set A, not set B (video\pc_vga.c) - SVGA: Made S3 ID registers read from member variables. Added S3 ViRGE video card. Made a start at fixing up some of the S3 ViRGE VESA video modes. Moved s3virge to separate source file. - Floppy . (MESS) Sharp MZ-3500: Added RAM-based BASIC bankswitch, improved floppy code, added mon_r(). SIS acts (again) weird on this, and no DRQ is fetched afterwards. . Improved IMD disk format identify . Handle upd765 modes a little more, NeXT can boot from floppy again. - CD-ROM . Simplify the (MESS) psxcd CDROM. I haven't found any regressions but I wouldn't be surprised to see some. The only improvements so far is better CD audio and disk change support. . (MESS) Small cleanups (machine\psxcd.c/h) . Added CDDA muting to machine\psxcd.c . Stop PSX crashing when reloading a state when CD access was in progress. Stop PSX CD timers when reset. - aristmk4.c . Cleaned up comments and EPROM part numbers for a handful of games . Caribbean Gold needs some trivial input changes, as currently it has a logic door error on boot, however if you hit the coin input the error goes away and allows you to key in to perform a memory reset and finally coin up. . Caribbean Gold II now has passable graphics, by using two of cgold's graphics ROMs. The game is now playable instead of a garbled mess (there are only a few tiles which differ between both games). . Promoted Fortune Hunter (and clone) to working - these had been working ever since eforest and arcwins were promoted but the flags were never removed. - cps1.c . CPS1 cleanup and notes. Fixed crash in debug build. . Moved clones Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1) and (bootleg with PIC16c57, set 2) from CPS1 to Final Crash driver and removed PIC16C57 CPU2. Fixed user1 rom loading in clone dinopic2. . Moved clones The Punisher (bootleg with PIC16c57, set 1), (bootleg with PIC16c57, set 2) and (bootleg with PIC16c57, set 3) from CPS1 to Final Crash driver and removed PIC16C57 CPU2. Fixed sprites in punipic, punipic2 and punipic3 - Games now playable. . Unscrambled the gfx roms in clone sf2m8. Fixed remaining gfx issues in sf2m3 and sf2m8, marked as WORKING. Moved clone sf2m1 from CPS1 to Final Crash driver. sf2m1 is working apart from some very minor gfx glitches. sf2amf loaded the gfx roms correctly. Fixed regression in sf2mdt. - ddenlovr.c: Moved Hanafuda Hana Tengoku (Japan) from dynax.c to ddenlovr.c driver - dynax.c: Video part cleanup - fantland.c: Small cleanup - funworld.c . Constructed acceptable NVRAMs for clones Magic Card II (hack, green TAB or Impera board) and (hack, blue TAB board, encrypted) which promoted games to working status. . Added default NVRAM to clones Magic Card II (hack, green TAB or Impera board) and (hack, blue TAB board, encrypted), allowing to boot them. Promoted to working state. . Removed the 'hack' in the Magic Card 2 sets description. Almost all the sets on this driver were hacked in different degrees. Not proof that these were released as originals, or just a hack. . Flagged clone Mongolfier New (Italian) as not working . Constructed acceptable NVRAMs for clone Royal Card v2.0 Professional which promoted game to working status. . Added default NVRAM to clone Royal Card v2.0 Professional, allowing to boot them. Promoted to working state. - gaplus.c: Correct some issues between Galaga 3 & Gaplus sets - jaguar.c: Makes more sense that the PIT timers follows the m68k clock, fixes Raiden (MESS) BGM tempo. Reverted PIT1 timer change (Air Cars doesn't like this) (video\jaguar.c). - megadriv.c: Temporarily duplicated some DMA code while working towards a reduction of global variables in Megadrive drivers. Removed another static. Moved Z80 vars to the driver state. Minor cleanup. Another var moved to the state. Another global variable removed + cleanup (machine\megacd.c). Another tiny cleanup. Moved some megadrive global variables to driver class. Removed a bunch of useless machine parameters and a few tagmap lookups. Removed NVRAM handler. MESS was not using this since more than one year, mand it was causing MT03873. If any bootleg megadrive board needs this, please let me know so that I can re-add it to the correct driver. Small steps to keep a few 32x operations inside 32x. - megadrvb.c: Reducing input tag lookups - megaplay.c and megatech.c: Fixed individual games incorrectly writing an NVRAM file (ID 03873) - merit.c: After seeing an eBay auction for a full cab, correct the name for Michigan Superstar Draw Poker in Merit driver - model2.c . Added Sega game and romboard ID# for Dynamite Cop (Export) 2A . Fixed maincpu roms length in clone Daytona USA (Japan, Turbo hack, set 1) . Added i960 opcode cvtilr needed by Zero Gunner - mpu4vid.c: Cleanup driver - multfish.c: Fixed some awkward tabbing etc. - namcos23.c: Update hardware README - naomi.c . Modernized NAOMI driver + DC/NAOMI split and cleanup . Added decryption key to Crackin' DJ Part 2 . Changed marstv-key.bin to match naomicrypt - proconn.c: Added altrevs roms to Seven's Above (Project) (PROCONN) and Sevens & Melons (Project) (PROCONN) - segac2.c . Moved some megadrive global variables in Sega C2 driver to driver class . Some Megadriv/Sega C2 modernization - segae.c and megatech.c: Small improvements to the 315-5124 palettes - segas18.c: Moved some megadrive global variables in Segas18 driver to driver class. Tiny cleanup. - seta2.c: Minor doc update about Reel N' Quake! on slightly redesigned PCB that has standard 8-liner edge connectors. - shangha3.c . Correct clock speed for Shanghai 3 and added misc documentation . Added DIP locations to blocken, heberpop and shangha3. Fixed 68000 CPU1 clock speed and VSync. - ssv.c . Added SCREEN_RAW_PARAMS to SSV hardware. Fixed VSync. . Fixed palette/graphic corruption in Lovely Pop Mahjong JangJang Shimasho 2 (Japan) . Fixed wrong colours in Gourmet Battle Quiz Ryohrioh CooKing (Japan) (ID 05139). Fixed visible area. . Using perfect CPU in Storm Blade with the half assed framework we have is especially bad when the other CPU just does a simple string check then goes into a tight loop. - stv.c . Sketchy CD on/off command, useful to test out CD features in diag menu (machine\smpc.c) . Fixed CD interface mirrors, allows Over load test to work in Diag (machine\stvcd.c) . Fixed a SCU DMA bug (machine\saturn.c) - taitojc.c . Updated Side by Side README . Updated cpu clocks from Guru's measurements . Added ID string from sidebs and some notes (Guru confirmed the ID string is same on other games) . Added video parameters . Show the use of the OSC clock with XTAL_xxx and state the speed of the CPU. No functional change. . Fixed 68040 CPU1, MC68HC11 CPU2, TMS32051 CPU3 clock speeds and VSync. - usgames.c: Added a note about the v18.3 & 18.6 sets known to exist but not dumped - Boogie Wings: Fixed game (broken after some refactoring > 148) - Cool Riders . Minor code tweak . Work around miscompile on newer versions of Clang - PlayStation: There have been a few fixes to the PlayStation GPU emulation recently. This has mainly been for MESS where some console games set bits in the X & Y coordinates that the hardware ignores, but the emulation code wasn't. I remembered a controversy on one of the forums years ago about the Street Fighter EX attract mode. In the console version Ryu jumps up and the moon is in the background, but in MAME/ZiNc/Impact there is no moon. Well from 0.148u3 (or the latest SVN) the moon is now in MAME, so it appears that at least one arcade game was doing the same thing. - Steel Gunner 2: Replaced HD63705 CPU4 with Mitsubishi M37450 in Steel Gunner 2. Added 8-way Joystick and button 3. - Dipswitch fixes in shangha3.c - Fixed rom names in arcadia.c, capbowl, merit.c, segahang.c, shangha3.c, taitojc.c and usgames.c - Renamed (crzmon_5) to (czmon_5), (crzmon_7) to (czmon_7), (crzmon_8) to (czmon_8), (crzmon_9) to (czmon_9), (crzmon_7a) to (czmon_7a), (crzmon_7b) to (czmon_7b), (crzmon_8a) to (czmon_8a), (crzmon_8b) to (czmon_8b), (crzmon_8c) to (czmon_8c), (crzmon_8d) to (czmon_8d), (crzmon_8e) to (czmon_8e), (crzmon_8f) to (czmon_8f), (crzmon_9a) to (czmon_9a), (crzmon_9b) to (czmon_9b), (crzmon_9c) to (czmon_9c), (crzmon13) to (czmon_13), (crzmon_15) to (czmon_15), (crzmon_16) to (czmon_16), (cyclwarr) to (cyclwarra), (galaga3a) to (galaga3c), (galaga3) to (galaga3a), (gaplus) to (galaga3), (gaplusa) to (gaplusd), (gapluso) to (gaplus), (j80wsprt) to (j80wsprt2), (karnov) to (karnova), (rfjets) to (rfjetsa), (sidebs) to (sidebsja), (usg83) to (superten), (usg185) to (usg187c) and (usg252) to (usgames) - Description changes of Arctic Wins (4XF5227H03, USA), Caribbean Gold II (3XF5182H04, USA), 'Cycle Warriors, set 2', Daytona USA (Japan, Turbo hack, set 1), Fortune Hunter (2XF5196I01, USA), Fortune Hunter (2XF5196I02, USA), Golden Poker (8VXEC037, New Zealand), Gone Troppo (1VXEC542, New Zealand), K.G. Bird (4VXFC5341, New Zealand, 10c), K.G. Bird (4VXFC5341, New Zealand, 5c), Karnov (US, rev 5), Magic Card II (blue TAB board, encrypted), Magic Card II (Bulgarian), Magic Card II (green TAB or Impera board), Magic Card II (Nov, Yugoslavian), Pac-Man (Midway, speedup hack), Puck Man (Japan set 1, speedup hack), Raiden Fighters Jet (Single Board, set 2), Side by Side 2 Evoluzione (Ver 2.4 J), Terra Force (Japan bootleg set 2), The Pit Boss (2214-03, U5-0C) and Winsprint (JPM) (V2, 10x10p) (SYSTEM80). - MAME . Fixed performance issues with YIQ enabled and prescale_x/prescale_y changes no longer impacts colors (windows\drawd3d.c) . Modernized drivers aleck64.c, Amiga hardware, ddenlovr.c, dynax.c, ghosteo.c, megadrvb.c, megaplay.c, megatech.c, naomi.c, norautp.c, photon.c (driver, video and small cleanup), powerbal.c and puckpkmn.c . Placed m_source variable in device_t and filled it with provided value (emu\device.c/h) . Minor schedule.c optimization (emu\diexec.c and schedule.c) . Attempt to fix -burnin option (does not produce a burnin image) (ID 05173) . Moved rotr and fbcrazy out of the fruities section (mame\mame.lst) . Added the parent software to the searchpath when verifying software list entries (emu\audit.c) . Print proper message on -listslots in case there are no slot options available, like in some dummy slots (emu\clifront.c) . Added sourcefile name for devices to emu\info.c - SDLMAME . QT Debugger fixes . New memory windows start focused on the active CPU . Opening a utility window, closing it, and stepping no longer re-opens the window. . Fixes bug where commands don't refresh all windows . The memory view chunk size radio now reports proper sizes . Fixed "ignore" command reporting incorrect invalid CPUs . Fixed crazy code responsible for opcodes' crc32s in the comments system . Disabled some GCC-specific hacks in sdl.mak when Clang is being used / also silenced linker for DISTRO=ubuntu-intrepid. - MESS . Fixed name of software_list_device to "Software list" . Added some additional XML validation and fixed the resulting errors (emu\softlist.c) - Compiling . Fixed an out-of-range access spot by GCC-4.9 (audio\beezer.c, audio\exidy.c) . Fixed Clang 3.2 warnings about unused private field warnings (makefile, emu\cpu\dsp56k\opcode.c/h, cpu\psx\sio.h, fileio.c/h, machine\53c7xx.h, machine\at29040a.h, machine\mc68901.h, machine\ncr539x.h, machine\upd7201.h, sound\2151intf.h, sound\cdp1869.h, sound\disc_cls.h, sound\disc_dev.h, sound\disc_flt.h, sound\disc_wav.h, uiimage.h, video\crt9007.h, video\hd61830.h, video\pc_vga.h, video\sed1330.h, mame\audio\gottlieb.c and mame\includes\gottlieb.h). . Synced CPUS and SOUND in mame/mess.mak . Removed devhelpr.h and trampolines in half modern devices (emu\machine\6522via.c, 8237dma.c/h,, 8257dma.c/h, devhelpr.h, f3853.c/h,, ins8154.c/h, k033906.c/h, k056230.c/h, drivers\calchase.c, dkong.c, funkball.c, gamecstl.c, gammagic.c, gticlub.c, mediagx.c, midqslvr.c, pcxt.c, photoply.c, queen.c, savquest.c, taitowlf.c, vega.c, voyager.c, xtom3d.c, zr107.c, machine\konppc.c and pcshare.c). . Expanded device_t constructor with parameters for short name and source file location (cpu\m6502\deco16.c, m3745x.c/h, m4510.c, m5074x.c/h, m6502.c/h, m6504.c, m6509.c, m6510.c/h, m6510t.c, m65c02.c/h, m65ce02.c/h, m65sc02.c, m740.c/h, m7501.c, m8502.c, n2a03.c, r65c02.c/h, cpu\mcs96\i8x9x.c/h, i8xc196.c/h, psx\siodev.c/h, tms32031\tms32031.c/h, devcpu.c/h, device.c/h, driver.c, imagedev\chd_cd.c/h, flopdrv.c/h, floppy.c/h, snapquik.c/h, machine\53c7xx.c, machine\cr589.c, ctronics.c/h, idectrl.c/h, laserdsc.c/h, ldpr8210.c/h, ldstub.h, ldv1000.c, ldvp931.c, n68681.c, nscsi_bus.c/h, nscsi_cd.c/h, nscsi_hd.c/h, scsicb.c, scsicd.c/h, scsidev.c/h, scsihd.c/h, scsihle.c/h, upd765.c/h, sound/bsmt2000.c, sound/dac.c, sound/k054539.c, sound/qs1000.c, sound/segapcm.c, sound/votrax.c, video\h63484.c, video\hd44780.c/h, video\hd61830.c, video\m50458.c, video\mb90082.c, video\msm6255.c/h, video\saa5050.c/h, video\sed1330.c/h, video\upd7220.c, video\v9938.c, mame\audio\gottlieb.c, audio/midway.c, audio/namco52.c/h, audio/namco54.c/h, audio/williams.c, drivers\chihiro.c, machine\dc-ctrl.c, deco222.c, decocpu6.c, decocpu7.c, gdrom.c, k573cass.c, mapledev.c/h, mega32x.c, mie.c, namco06.c/h, namco50.c/h, namco51.c/h, namco53.c/h, namco62.c/h, zndip.c and znsec.c). . Made some of sound devices use device callbacks instead of function callbacks (sound\2608intf.c/h, 2610intf.c/h, 2612intf.c/h, 262intf.c/h, 3812intf.c/h, aica.c/h, es5506.c/h, k007232.c/h, msm5205.c/h, scsp.c/h, ymf271.c/h, ymf278b.c/h, ymz280b.c/h, audio\hyprolyb.c, irem.c, seibu.c, taito_en.c, drivers\2mindril.c, actfancr.c, aerofgt.c, ajax.c, aliens.c, alpha68k.c, amaticmg.c, appoooh.c, ashnojoe.c, asuka.c, asuka.c, backfire.c, battlera.c, bbusters.c, bfm_sc4h.c, bfm_swp.c, bishi.c, bottom9.c, cabal.c, cave.c, chinagat.c, chinsan.c, chqflag.c, coinmvga.c, combatsc.c, coolridr.c, crgolf.c, crimfght.c, crospang.c, crshrace.c, dacholer.c, darius.c, ddragon.c, de_2.c, dec0.c, dec0.c, dec8.c, dec8.c, deco156.c, deniam.c, discoboy.c, docastle.c, drmicro.c, dynax.c, f1gp.c, fantland.c, fastlane.c, fcrash.c, firebeat.c, firetrap.c, flkatck.c, fromanc2.c, fromance.c, fuukifg2.c, fuukifg3.c, fuukifg3.c, galpani3.c, galspnbl.c, gbusters.c, gcpinbal.c, gladiatr.c, goal92.c, gradius3.c, gstriker.c, gsword.c, gunpey.c, hcastle.c, hcastle.c, hnayayoi.c, inufuku.c, itech8.c, jangou.c, jantotsu.c, jchan.c, kchamp.c, kungfur.c, kurukuru.c, lordgun.c, lordgun.c, lucky74.c, lwings.c, macrossp.c, mainevt.c, mastboy.c, maygayep.c, mcatadv.c, mermaid.c, metro.c, metro.c, midas.c, mitchell.c, mlanding.c, model2.c, model3.c, naomi.c, nemesis.c, nemesis.c, neogeo.c, neoprint.c, ninjaw.c, nmg5.c, ojankohs.c, oneshot.c, onetwo.c, opwolf.c, othunder.c, pachifev.c, pcktgal.c, pipedrm.c, prehisle.c, psikyo.c, psikyo.c, psikyo4.c, psikyosh.c, rastan.c, rmhaihai.c, segac2.c, segas32.c, seibuspi.c, seta.c, sf.c, shangha3.c, slapshot.c, snk.c, snk68.c, snowbros.c, sothello.c, spbactn.c, spdodgeb.c, spdodgeb.c, splash.c, spy.c, spy.c, srmp2.c, stadhero.c, stfight.c, stv.c, suna8.c, suprgolf.c, suprnova.c, suprslam.c, system16.c, tail2nos.c, taito_b.c, taito_f2.c, taito_h.c, taito_l.c, taito_l.c, taito_x.c, taito_z.c, taitoair.c, taotaido.c, tbowl.c, tbowl.c, tecmo.c, tecmo.c, tecmosys.c, tehkanwc.c, thunderx.c, tigeroad.c, tmnt.c, toaplan1.c, toaplan2.c, toaplan2.c, toki.c, topspeed.c, tubep.c, twin16.c, twincobr.c, wardner.c, warriorb.c, wc90.c, wc90b.c, welltris.c, wgp.c, yunsun16.c, yunsung8.c, zn.c, includes\stfight.h and machine\stfight.c). . Device callback handler cleanup (drivers\2mindril.c, actfancr.c, aerofgt.c, ajax.c, alg.c, aliens.c, alpha68k.c, angelkds.c, appoooh.c, arcadia.c, argus.c, ashnojoe.c, asuka.c, asuka.c, backfire.c, battlera.c, bbusters.c, bfm_sc4h.c, bfm_swp.c, bishi.c, blktiger.c, bottom9.c, bublbobl.c, capbowl.c, cave.c, cave.c, cd32.c, chanbara.c, chinagat.c, chinsan.c, chqflag.c, compgolf.c, coolridr.c, crgolf.c, crimfght.c, crospang.c, crshrace.c, dacholer.c, darius.c, darius.c, ddenlovr.c, ddragon.c, de_2.c, dec0.c, dec8.c, dec8.c, deco156.c, deniam.c, discoboy.c, docastle.c, dooyong.c, drmicro.c, dynax.c, f1gp.c, fantland.c, fastlane.c, fcrash.c, firebeat.c, firetrap.c, flkatck.c, fromanc2.c, fromance.c, fuukifg2.c, fuukifg3.c, gaiden.c, galspnbl.c, gbusters.c, gcpinbal.c, gladiatr.c, goal92.c, goal92.c, gradius3.c, gstriker.c, gunpey.c, hcastle.c, hnayayoi.c, inufuku.c, itech8.c, jangou.c, jantotsu.c, kchamp.c, kungfur.c, kurukuru.c, lastduel.c, lkage.c, lockon.c, lordgun.c, lsasquad.c, lucky74.c, macrossp.c, mainevt.c, mastboy.c, maygayep.c, mcatadv.c, megasys1.c, mermaid.c, metro.c, metro.c, midas.c, mitchell.c, mlanding.c, model2.c, model3.c, mquake.c, naomi.c, nemesis.c, nemesis.c, neogeo.c, neoprint.c, ninjakd2.c, ninjaw.c, nmg5.c, nmk16.c, ojankohs.c, oneshot.c, onetwo.c, opwolf.c, othunder.c, pachifev.c, pcktgal.c, pipedrm.c, pkscram.c, powerins.c, prehisle.c, psikyo.c, psikyo.c, psikyo4.c, psikyosh.c, psychic5.c, pushman.c, rastan.c, sandscrp.c, segac2.c, segas32.c, seibuspi.c, seta.c, sfkick.c, shangha3.c, shootout.c, slapshot.c, snk.c, snk68.c, snowbros.c, sothello.c, sothello.c, spbactn.c, spdodgeb.c, spdodgeb.c, splash.c, spy.c, spy.c, srmp2.c, sshangha.c, stadhero.c, stfight.c, stv.c, suna8.c, suprgolf.c, suprgolf.c, suprslam.c, system16.c, tail2nos.c, taito_b.c, taito_f2.c, taito_h.c, taito_l.c, taito_l.c, taito_x.c, taito_z.c, taitoair.c, taotaido.c, tbowl.c, tbowl.c, tecmo.c, tecmo.c, tecmosys.c, tehkanwc.c, thedeep.c, thunderx.c, tigeroad.c, tmnt.c, tnzs.c, toaplan1.c, toaplan2.c, toki.c, topspeed.c, tubep.c, twin16.c, twincobr.c, upscope.c, volfied.c, wardner.c, warriorb.c, wc90.c, wc90b.c, wc90b.c, welltris.c, wgp.c, xain.c, yunsun16.c, yunsung8.c, zn.c, includes\bfm_sc45.h, amiga.h, dc.h, dynax.h, machine\amiga.c, saturn.c, stfight.c, williams.c and video\cave.c). . Changed HANDLER -> MEMBER where it was by mistake (drivers\atari_s2.c, machine\amiga.c and machine\atarigen.h). . Fixed visual studio compile (debug\debugcpu.c) 0.148u2 - New games: Dream Ball (Japan V2.4) and Williams Multigame - New Working games: Cool Riders, Popo Bear, Scorpion (set 2), Stadium Hero '96, Street Fighter II': Champion Edition (M3, bootleg), Tecmo World Cup '98, Warriors of Fate ('sgyxz' bootleg) and Zenkoku Seifuku Bishoujo Grand Prix Find Love - New Non-Working games: Crazy Monkey 2 (100310), Hot Slots (6.00) and 'unknown 186 based gambling game (V398)' - New clones: Bomb Kick (set 2), Chinese Hero (older, set 2), Crazy Monkey (100311 World), Crazy Monkey (100311 Entertainment), Crazy Monkey (100312 Russia), Crazy Monkey 2 (100311 Lottery), Crazy Monkey 2 (100315 Entertainment), Demolition Derby, Gnome (100326 World), Gnome (100326 Entertainment), Gnome (100326 Lottery), Gnome (100326 Russia), Head On (bootleg, alt maze), Lucky Haunter (100331 Entertainment), Martial Champion (ver UAE), Megatouch III (9255-20-01 ROA, Standard version), Megatouch III (9255-20-01 ROB, Standard version), Megatouch III (9255-20-01 ROK, Standard version), Pit Boss Megatouch II (9255-10-01 ROG, Standard version), Resident (100311 World), Resident (100311 Entertainment), Resident (100316 Russia), Seibu Cup Soccer :Selection: (bootleg, set 3), Starblade (World), Starfighter (Moon Cresta bootleg), Super Megatouch IV (9255-41-01 ROC, Standard version), Super Megatouch IV (9255-41-01 ROE, Standard version), Super Ranger (older), Three Wonders (World 910513), 'unknown 186 based gambling game (V399)' and WWF WrestleFest (Korea). - New drivers: dreambal.c, gambl186.c and wmg.c - 5A22 CPU . Fixed issue with overwriting internal address map for snes. This should be made device_address_map in future but cpu core needs first to be converted to C++ (cpu\g65816\g65816.c and mess\drivers\snes.c). . Added missing mirror of the 5A22 regs (cpu\g65816\g65816.c) - ARM/7 CPU: Tiny fix for undefined shift behavior (cpu\arm\armdasm.c and cpu\arm7\arm7dasm.c) - COSMAC CPU: R registers are supposed to contain random data on start-up - H6280 CPU: H6280 used CPU_DISASSEMBLE but didn't use CPU_DISASSEMBLE_NAME for calling the function - H8/3xx CPU . H8 PC and CCR are packed into one longword (cpu\h83002\h8_16.c). Fixes coinmvga games. . Fixed H8S regression, cybikoxt (MESS) now works again (cpu\h83002\h8speriph.c) - HD6309 CPU . Fixing 6309 condition code setting errors (hd6309\6309ops.c). . More 6309 bug fixes identified in my rewrite; still not ready to commit my 6x09 rewrite (hd6309\6309ops.c). . Rewrite of 6309 CPU core. Inferred 6309 cycle exact timings . Fixed bug in Konami/6309 16-bit NEG; quarth is now playable again (m6809\base6x09.ops). . Fixed builds on at least OSX. Fixed compile on older OS X tools (m6809\hd6309.h). Made 6309 compatible with UNIDASM. - I386 CPU . Fixed undefined shift behavior (i386\i386op16.c and i386ops.c) . i386 int 6 on invalid LxS insn. Makes NTVDM (NT Virtual DOS Machine) happier (cpu\i386\i386op16.c). . i386 popfd should trap in v86 mode . Make i386 illegal opcodes trap and logerror rather than fatalerror . i386 rep ret (seriously) (i386\i386ops.c) . i386 str and sldt always write 16bits to memory (i386\i386op32.c) . Split 386SX to separate cpu . Fixed debug assert (i386\i386priv.h) - i860XR CPU: Moved CPU_DISASSEMBLE into the i860 disassembler - KONAMI CPU . Rewrite of KONAMI CPU core. Not sure about the KONAMI timings; they are definitly different from the previous core but the previous timings were a guess. . KONAMI CPU fixes; Simpsons gets further now. . Fixed builds on at least OSX. Fixed compile on older OS X tools (m6809\konami.ops) . Made 6309 compatible with UNIDASM . KONAMI CPU EXG bug fix . Fixed bug in KONAMI/6309 16-bit NEG; Quarth is now playable again . KONAMI CPU fix, Parodius works now. . KONAMI CPU fix, doesn't seem to help with anything (m6809\konami.ops) . Looked through M6809 ops and fixed what i noticed (improves Rollergames) (m6809\base6x09.ops and konami.ops) . Changed KONAMI's exchange mask globally to 7 (m6809\konami.c and konami.ops) . Fixed compile problems on some OS X versions (m6809\konami.c/h and konami.ops) . Fixed PC relative addressing on KONAMI cpu; Super Contra and Thunder Cross work now (m6809\konami.ops). - M3745x MCU: Preliminary support for the Mitsubishi M37450 microcontroller - M50747 MCU: M740 updates (m6502\m740.c): Added JMP (zp) instruction. Working interrupts. Moved 6502 family V line to make room for up to 16 IRQs (m6502\m6502.h). - M6805 CPU: M6805 used CPU_DISASSEMBLE but didn't use CPU_DISASSEMBLE_NAME for calling the function - M6809 CPU . Initializing variables to zero (m6809\m6809.c) . Rewrite of 6809 CPU core. 6809 should be cycle exact based on the 6809 datasheet. . Fixed builds on at least OSX. Fixed compile on older OS X tools (m6809\m6809.h). . Fixed bug in 6x09 DAA instruction; Finalizer (and probably other games) now handle score correctly (m6809\m6809inl.h). . Changed CPU_DISASSEMBLE to use cpu_device * instead of legacy_cpu_device *, so that class based cpu devices can also be passed (m6809\m6809.c and 6809dasm.c). . Get rid of the M6809 preprocessor pass, for great justice (cpu\cpu.mak and m6809\m6809make.py). . M6809 reset fix; resetting Track & Field works now. . M6809 CPU EXG/TFR cleanups . M6809 fix; Vectrex works now. . Fixed subtle problem in 6x09 CWAI instruction (m6809\base6x09.ops); rocnrope is now fixed. . Now setting the E condition code when SWI instruction is executed (m6809\base6x09.ops) . Fixing interrupt handling in several drivers (bfcobra.c, bfm_sc1.c, bfm_sc2.c, bfmsys85.c, sigmab52.c, truco.c and wecleman.c) using 6809 that pulsed interrupts in a way that broke with the new 6809 core. . Turning off LOG_INTERRUPTS - NEC Vxx CPU: Reduced some duplication in the NEC disassembler interface - SH-2 CPU . Fixed SH-2 compilation without USE_SH2DRC . Fixed SH-2 DMAC irqs, fixes at least hard-locking on Baroque (cpu\sh2\sh2comn.c and sh2drc.c). . SH-2 watchdog i/f is quite exotic, implement it so it can be debugged properly. . Fixed SLEEP opcode in non-DRC SH-2 . Fixed endianness (sh2\sh2drc.c) - SSEM CPU (MESS): Fixed stack overflow in SSEM disasm_disassemble - TLCS-900/H CPU: Made the drivers a bit more user friendly (cpu\tlcs900\tlcs900.c + mess\drivers\ngp.c) - V30MZ CPU: Reduced some duplication in the NEC V30MZ disassembler interface. - Z80 CPU: (MESS) abc80x: Connected RS-232 ports to Z80 DART/SIO (machine\z80dart.h) - ES5510 sound: Added missing breaks in es5510_device::write_reg() - MIDI: IRQ_CALLBACK_MEMBER cleanup (mess\drivers\esq5505.c). Fixed memory leak in find_default_device() (lib\portmidi\finddefaultlinux.c). - S14001A sound: Added note that the four DAC test pins are really digital out pins - SCSP sound . Changed a log around (sound\scsp.c) . Hooked up internal SCSP DSP registers, Kyuutenkai (MESS) needs them for booting . Added snippet . Added SCSP sound clear . Added SCSP timer A irq for Main CPU, fixes a booting bug in Jikkyou Oshaberi Parodius (game still not working due of timing bugs). - SID sound: Changed sound\sid6581.c/h to sound\mos6581.c/h. Fixed memory leak (sound\mos6581.h). - SP0256 sound: Added a little delay before settling LRQ when resetting the SP0256 device. Fixes (MESS) MT05103 (odyssey2: No speech in Killer Bees). When reading the LRQ signal, force an update of the stream. This fixes support for 'The Voice' in 'Turtles' for the odyssey2. - 6551 ACIA . Added MOS6551 serial callbacks. Fixed typo in machine\mos6551.h. . (MESS) Connected the C64 Turbo232/SwiftLink cartridges' RS-232 port to the 6551 ACIA. - AM9517A DMA: Added state saving - Cassette: Set proper cassette image loading error. Removed unused CASSETTE_ERROR_INVALIDARG (imagedev\cassette.c). - Crystal: Show the reason 16.9344 and 18.432 MHz are popular (drivers\xtal.h) - Flash ROM: Moved SST39VF020/SST39VF400A emulation into intelfsh. Added READ/WRITE_MEMBER to the intelfsh device and removed some trampolines. - Floppy: Re-enabled softlist support in snapshot and quickload. Added assert when setting up index_pulse_cb in upd765_family_device::device_start() to indicate NULL dereference (machine\upd765.c). - HuC6260 video: Fixed palette - IDE . Words 57/58 of IDENTIFY DEVICE are total sectors, not sectors per track (machine\idectrl.c). As commented, this is the case for ATA-1, -2, -3, -4, and -5. The CFFA2 Apple II IDE card firmware relies on this value being as documented in the standards to properly detect the drive size, and none of the usual sensitive Atari/Midway games are broken by the change (This field is unused in ATA-6 and later). . Fixed for ide_controller_device class for most uninitialized variables. - ISA: Commented com3 and com4 in isa_com implementation, usual case is 2 not 4 (machine\isa_com.c). Correctly mapped alternate port (machine\isa_ide.c). This makes a586 boot from primary HDD. Removed some legacy code from machine\isa.c. Added altstatus reset to atapi CD (mess\machine\isa_ide_cd.c). - Konami custom chips: Cleanup (video\konicdev.h) - Network: Removed mcast_chk and check for multicast in recv (emu\dinetwork.c, mess\machine\3c505.c, dp8390.c and mb8795.c). Set non-block mode for winpcap (windows\netdev_pcap.c). - MC6847 video: Changed the amount of scanlines on the 6847 PAL emulation. That said, the 6847 versions for PAL surely are doing more than this... At least laser1 on the MESS side works better. - SCSI: Reimplemented the NCR5380 SCSI controller using nscsi (mess\machine\ncr5380n.c). Added 6-byte WRITE, logging of unknown commands, and some Apple-specific SCSI tweaks (emu\machine\nscsi_hd.c). - SVGA: Just a few minor updates to svga_s3 (video\pc_vga.c) - TMS9901 (Programmable System Interface): Avoid usage of uninitialized memory in tms9901_device::field_interrupts() - 3do.c: Fixed several 3DO occurances of uninitialized memory - aleck64.c: Fixed uninitialized memory in n64_rdp class. This fixes mtetrisc and starsldr crashed after OK (video\n64.h) (ID 04837). - bfcobra.c: Fixed interrupt handling - capbowl.c: Replaced M6809 CPU1/2 with M6809E - cdi.c: Fixed CD-i regression (video\mcd212.c) - chihiro.c . Implentation of NVIDIA register combiners in Chihiro driver . Cleaned up a4r4g4b4 operation (color convert) . Fixed driver and GCC compile. Chihiro Sega documentation cleanups. - coinmvga.c: H8 PC and CCR are packed into one longword (cpu\h83002\h8_16.c). Fixes coinmvga games. - cps1.c . Removed aboardplds, bboardplds and cboardplds roms and added GAME_NOT_WORKING flag to clone Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg). . Fixed missing line (sf2dongb) in cps1_config_table (ID 05159) . Documented several games which have roms that have one a 1-byte difference, now known to be confirmed good and simply an older revision. Thanks goto Bonkey0013, Kold666, Stefan Lindberg and others for the cooperation and board investigations. . Restored back the rom parts removed in previous updates because they needed to be documented and added the missing ones of the recently dumped 3wondersr1. . Added new gfx ($100002) rom to clone Tenchi wo Kurau (Japan) . Street Fighter II' Champion Edition: Fixed clone sf2m3 (boots up now, sound works and some gfx issues) and rom loading in clone sf2m8. - deco_mlc.c . DECO MLC video driver reworking and scanline conversion . Renderer is now fully scanline based, should make implementing the raster effects in a clean way much easier. . Hide some unwanted gfx in Stadium Hero 96. Some improvement. Attempt fixing baseball rules in Stadium Hero 96, needs a lot of testing (Game now playable). . Added notes . Use extra clipping regs, improved doc. . Split up some handlers for unknown reads/writes - fcrash.c . Changed soundcpu -> audiocpu in Final Crash driver . Added sound to clone Knights of the Round (bootleg). Saving wip. Game is almost playable. . Fixed clone Warriors of Fate ('sgyxz' bootleg). Boots up now, sound works and some gfx issues. - galdrvr.c . Removed runtime ioport tagmap lookup when using PORT_CONDITION with PORT_BIT, used by 'Ghostmuncher Galaxian (bootleg)' for example. . Redumped clone Scorpion (set 2) (Game now playable). Added new maincpu rom ($3000) to clone (set 2). Added digitalker rom ($0) from (set 2) to Scorpion (set 1). - jaguar.c: Fixed Rayman (MESS) collision detection. Emulated buggy blitter YADD behavior (fixes Tempest 2000) (video\jagblit.c). More realistic blitter timing (video\jaguar.c). Fixed PIT functionality (fixes Tempest 2000 controls) (video\jaguar.c). Fixed blitter source shade mode (video\jagblit.c). Implemented gouraud shading (video\jagblit.c). Fixed SUBC opcode. Added special case for internal RAM loads and stores. Removed cart protection hack. Fixed ADDC opcode (cpu\jaguar\jaguar.c). Fixed PACK opcode. - jpmimpct.c: Fixed exception after exit in Snake & Ladders (ID 05161) - megadriv.c . Removed pokemon protection patch (MESS), given that the routine is the same as kof99. Fixed FRAM saving in Sonic 3 and fixed access to last byte of SRAM (mess\machine\md_rom.c). . Fixed uninitialized variables in machine\mega32x.c . Finally fixed topshoot and hshavoc in debug builds (machine\megadriv.c) - megasys1.c: Reduced tagmap lookups - megatech.c: Fixed Megatech loading in cartslots (image device does not seem to have access to the memory regions, so we have to pass through root_device). Better fix for Megatech cartslots. - mcr3.c: Replaced M6809 CPU2 with M6809E in maxrpm and sarge - mcr68.c: Replaced M6809 CPU2 with M6809E in archrivl, pigskin, spyhunt2 and trisport - midtunit.c and midyunit.c: Replaced M6809 CPU with M6809E - model2.c: Added Sega game ID# & rom board # to Dead or Alive A-CRX set - moo.c: Fixed video regression with Bucky clones. Added imperfect gfx flag. This fixes missing graphics in clones buckyaab and buckyuab (ID 05165). - multfish.c: Added new sets. Added a TODO note. - namcos10.c: Slight improvement. Now every game should be at the same brokenness level. - namcos2.c . Marked c68 roms as bad dump in driver. Romname corrections (info from guru). . Added dumped C68 program for Steel Gunner 2 . ADSMISS investigation notes . State machine conversion - namcos21.c: State machine conversion - namcos22.c . Workaround for Air Combat 22 sprites . Added video fade note (fading to white does not affect color channels set to 0) . Small fix on sprite enable - naomi.c . Fixed some of the NAOMI regressions (the ones complaining about key pointer) . Added NAOMI cartridge encryption (machine\naomicrypt.c) and enabled USE_NAOMICRYPT by default. Note: The Naomi cartridge per-game keys are totally arbitrary at this point, let's not store them in 4 byte files as if they were dumps (by request / suggestion of Nicola). . Documentation cleanups - neodrvr.c: Fixed MESS AES cart swap sound crash. - nss.c, sfcbox.c and snesb.c . Fixed initialization of necdsp_device when no static_config is provided (cpu\upd7725\upd7725.c) . Let's try to untangle a bit the knots between machine and PPU . Some cleanups . Moved some SNES stuff into the driver class . Further register cleanups . Removed a bunch of now redundant variables . Shuffling some code around. Other two statics gone. . Removed snesbsx driver: It never worked, and satellaview support will be done through slot devices. . Moved SNES add-on chips emulation to MESS . Some SNES modernization and cleanup . Updated the SNES driver to only save the real amount of SRAM present on the cart. This means that old .nv files won't be directly compatible with newer exe, but you shall be able to keep your saves by backing them up and taking the first block of the correct size (e.g. if you take the first 8KB block of your old .nv for Super Metroid it should work fine with the new exe). At the same time, MESS should be now compatible with saves taken in other emulators. . Added a missing open bus case. Experimental merging of SNES memory handlers. Please test your favorite SNES games against previous code (or against latest release) and report regressions. . Split ROM/RAM accesses to cart in SNES slot implementation in order to simplify the code . Greatly simplified mapping and access for cart ROM. Given the massive internal changes, please test once again your favorite SNES games against previous code (or against latest release) and report regressions. . Removed the DSP1B dump from NSS, because planing to update NSS to use slot devices as well and that will cover everything needed by SMK, if we ever find its NSS release and dump it. . Temp fixed regression in SuperFX. The code is not optimal but it's going to be rewritten soon anyway. . Picked up a couple of copy & paste bugs with the pbr register in the SuperFX CPU. . Direct update handler is not being used in snes, therefore removed together with snes_ram variable. - pacman.c: Pacman protection modernization - pgm.c: PGM modernization - pipedrm.c: Pipe Dream driver modernization - psikyosh.c: Fixed corrupt font used for 'insert coin', 'game over' etc in Daraku Tenshi (ID 05122). Guess some refactoring changed the behaviour at some point, I assume this is what it was meant to be doing rather than trying to use a value it was in the middle of setting? - scramble.c: Small cleanup - segae.c and megatech.c: Improved triggering of 315-5124 IRQs - ssfindo.c: Reduced tagmap lookups in driver - ssrj.c: Added driver notes - ssv.c . Reduced tagmap lookups in driver . Fixed visible area in janjans1, janjans2 and koikois2. . Fixed palette/graphic corruption in janjans2 (ID 04744) - stv.c . Actually fixed Sign flag in OR opcode (machine\scudsp.c). Added SCUDSP cpu type, though it currently only has a disassembler. Minor/Cosmetic change (machine\stvcd.c). . Moved some of the saturn code from mame\ into emu\ and made saturn.c & stv.c separately compilable. Still needs work before saturn.c can be moved to mess/. . Experimental fixes for Bug! (video\stvvdp2.c). Logging could be a good idea (added "A-Bus Dummy access ..." logerror). . Fixed for Choice Cuts crashing when skipping FMV. Fixed regression with Burning Rangers (drivers\saturn.c). . Fixed for file system printing (machine\stvcd.c), thanks to Firewave. . Fixed physical CD-ROM reading in CD Block, fixes Black Matrix FMV loading. . Time to fixed Game Basic / World Cup 98 Illegal DMA attempt (drivers\saturn.c). . Fixed super-verbose logging in machine\stvcd.c . Part 1 of drawing window rewrite (video\stvvdp2.c) . Fixed window for sprites . Logging for any unhandled case . Fixed for Odd bit (video\stvvdp2.c) . Attempt to add proper H/V latch settings . Fixed a crash bug with CD block, fixes at very least Yoshimoto Mahjong. . Actually 0x62 doesn't need this (cd_exec_command, machine\stvcd.c) . Improved protection in Steep Slope Sliders (machine\stvprot.c) . Final Fight Revenge ST-V notes (machine\stvprot.c) . Hooked up my theory for some other games, it's mostly right except it needs a decrypter expert (video\stvvdp2.c, machine\stvprot.c). . Avoid logging if word reading from the IOGA . Added a more sane ST-V SMPC Intback command emulation, based off Saturn version. Fixes inputs in 'Zenkoku Seifuku Bishoujo Grand Prix Find Love' (Game now playable). . Virtua Fighter Kids trips this one (stv_vdp2_window_process(x,y)), hook it up (video\stvvdp2.c). . Fixed regression with Shienryu (machine\smpc.c) . Fixed protection check in Tecmo World Cup '98. Tecmo logo & Title Screen still garbled (Game now playable). . Fixed SMPC change clock behaviour, fixes 2 credits at start-up for various ST-V games. Might as well do the same thing for Slave CPU. Notes updating. . Basic hook-up of CD block command 0x64, pending actual transfer code (machine\stvcd.c). . Added hook-up for CD Block command 0x64 (Put Sector Data). . Fixed (MESS) Out Run booting, it triggers the RESET opcode and the only good theory so far is that the SMPC can read the RESET/HALT states on it in some way. . Actually ECPY isn't needed. . Attempt to added Copy Sector Data command, but my logic fails for some reason. . Actually found something that uses this, fixed (Wangan Midnight Dead Heat + Real Arrange, if you are wondering). . Death to window_control with bit pattern and old bitmap code. . Small fix for size allocation . Fixed filter reading on false connector (machine\stvcd.c). . Moved CD command timing around, fixed regression in logicpuz. Also added 11bpp bitmap mode for VDP2, fixed HUD in Tunnel B1. . Misc changes (machine\stvcd.c). Added SCSP sound clear (drivers\saturn.c). . Added preliminary CD Seek mechanism, fixes Zero Divide booting. . Default for ISM, there were some spurious irqs at boot (drivers\saturn.c and includes\stv.h). . Hook-up proper VDP1 fb erase via coordinates, fixes Gokujou Parodius / Sexy Parodius. . Debug code that slipped through (machine\stvcd.c). . Fixing compilation error; cannot subtract from a bool . First batch of real HW tests: added proper vblank firing (video\stvvdp2.c). . Actually fixed track seek, fixes regression with Zero Divide (machine\stvcd.c). . Splitted saturn and stv up a bit more so that stvprot.c is not linked into MESS. . Removed dependency as it no longer uses #include (mame\mame.mak). . Splitted mame\drivers\saturn.c into emu\machine\saturn.c and mess\drivers\saturn.c, so MAME doesn't have to compile and link the unused code. . Fixed VDP1 clear regression, reverted the blckmtxa attempted fix too. . Work-around for VDP1 framebuffer clear, fixes Daisenryaku Strong Style regression (video\stvvdp1.c). . Fixed regression with FAD end in track mode, fixes Death Throttle. . I imagine there is actually a logic flaw in the new code, but for now let's just stop it blowing up (video\stvvdp1.c). . Fixed stvbios loading in cartslots . First pass at improving CD get status command, fixes streamed music in falcom2, Wachenroder, World Cup 98 and probably others. . Improved previous fix, fixes regression with Road Blaster & friends. . Put the decathlete protection (compression) handling in a different file to the others, add some debug (disabled) code to allow loading of memdumps from UME/MESS for the title screen, will hopefully give us a good 1:1 match for some compressed -> plain gfx. This one is going to need a lot of work even once the gfx are done tho, currently looks awful anyway with the bad blending and 9% speed. . Bit of rearranging of the stvprot.c code with a view to easier dumping out encrypted / non-encrypted streams. . Further stvprot.c reworking + logging. . Timid attempt to make Pango Fun to boot and fixed ROM loading . Improved VDP1 timings, fixes several Saturn games such as Fatal Fury 3, Night Striker S and Command & Conquer. . Fixed a minor bug with CD block Put sector, makes Virtual On to enter into gameplay. . Attempt to fix CEF bit reset behaviour, fixes Virtual On 3D gfxs. . Fixed Groove on Fight starts with 2 credits (ID 04501) . Fixed glitches in Princess Clara Daisakusen attract mode and ending (ID 03086) . Fixed part of graphics disappears in Puyo Puyo Sun (ID 02657). Fixed ROM loading. . Fixed game boot in Suiko Enbu (ID 03871) - taitowlf.c: Reduced tagmap lookups - vectrex.c: M6809 fix; Vectrex works now. - yunsun16.c: Minor whitespace clean up / alignment - Backfire: Reduced tagmap lookups - Biomechanical Toy: Mark sample roms in clone Biomechanical Toy (Ver. 1.0.1884) as BAD_DUMP, the game code seems to expect different ones and they weren't dumped. - Block Hole: Fixed bug in Konami/6309 16-bit NEG; clone Quarth is now playable again. - Buck Rogers . Correct ROM labels and locations for Buck Rogers and clones . Additional documentation for Buck Rogers: Planet of Zoom. Noted the encrypted Z80 part number and Sega ID numbers for the CPU and ROM boards. Correct sprite color prom based on photo of PCB. - Cool Riders . Fixed game (Game now playable). Cool Riders is a dual screen game, so give it 2 screens and take a wild guess at the screen select. I prefer to see everything it sends to the blitter. Use the 2nd tilemap for screen 2. Added different fake colours. Additional notes. Play with some of the blitter values a bit. Allow use of a fake ascii rom (hidden behind a define) (by request, so controls etc. can be hooked up). Palettes are written by the blitter as well, at least sometimes. this makes things worse in some cases, but you can see it's needed because the fades between scenes are done with it, I think DMA hookup needs fixing to match it, and possibly a palette select adding. Improved palette stuff + notes. Improved notes on some video stuff. Added some sprite compression notes from Charles & Andrew. Make use of some of the indirection enable bits I've found. Added some thoughts about the indirect LINE tables used by the main road draw blits. Notes on flip flags etc. Document 'blits' where the first sent parameter is '1' not '0' as non-sprites, probably clipping windows. More documentation of where bits are used. I think one of the blit params is a rom offset, so maybe it does decompress at blit time afterall, although for the ASCII parts that param is 0. Comment about likely rom offset bits / log changes. Some debug code, studying the compressed gfx. pattern observations note. Improved debug output to show 8 groups of 20 bits. Improved code to parse compressed data. Note of how the cell data (in compressed roms) references the actual compressed data (in compressed roms). Hey look, sprites. Kill fake ASCII rom, you can read the text now even if it's not perfect. Removed some old code. Expand the gfx data at startup from packed 10bpp words to 16bpp words(10 bits used) for easier / faster use. Kill some old gfxdecodes. Confirmed and implemented flip bits. Rotated object (map screen) and removed old debug code, will rewrite for further tests. Temp zoom code, to be improved / rewritten. Code reorganization. Fixed silly zoom bug with flipped objects. Looking at the road, not quite right. Better road handling, although less playable now because it renders over the bike. Added notes based on some (failed) test. Added some log notes from the clipping window commands used in places. Documented where RGB framebuffer controls appear to be. Experiment with when we do the colour lookup. Improved 256 colour decode part of RLE. Let's not mask out used palette bits. Put the object drawing on another thread, doesn't really help much, might revert later. Just part of a failed zbuffer experiment, will test a few other things later, this was nice in theory but isn't right. DRAW_PIX seems better. Better transparent pen handling. This is where it writes the sprite palette base. Code reorganization. Improved zoom handling. Looking at the clip windows, this is wrong, so disabled. Enable the clipping, improves attract mode, doesn't appear to break anything ingame. Needs to be signed. Improved tyres + brake lights (alt palette during decode - a form palette compression for cycling palettes while only storing partial palettes). Less aggressive application (render_object). Notes on clipping during ending, and a bit of a hack. Added tagmap stuff. Shuffle some clip checks around. Code re-org, I'll document this a bit better later, next I'll look at the blending. Some notes on what is likely the blending control. Slight change to the bg rendering, preparation for blending. Blending prep. Blending does not play nice with our z-buffer, road transitions and shadows on title screen have issues - will need a rethink. Make the flash effects full-screen. Prepare for sorting. Bubble sort instead of zbuffer, fixes most remaining gfx problems so I've removed all flags apart from the imperfect sound. Clean-ups. Better default inputs. . Basic hook-up of sound. More sound, it sends an irq to the master or slave. Check-point and added sound notes. Added inputs. Documented lamps. Comms works, sound still doesn't. Very preliminary sound DMA hooked up. Born to be Wild! Guessed m68k enable/disable. Changed some variables around. Added IRQ 6. Found a way to split irqs. Note update. Added scrolling. Fixed tilemap palette. Added SCSP sound clear. No more migraine inducting flickering. Code snippet for the ITI. Hooked up Backup RAM. And commented out DMAC while at it. Rewritten Tilemap DMA from scratch, and fixed data fetching while at it. Now the game properly clears palette when entering into test mode. Fixed text colors in Cool Riders. Yay, a game that more or less uses PROM mechanism in 1994. Fixed DMA mirror and removed hack. Tilemap rewrite. Added PAL data to the rumble. Make the transfers UINT16, saves some calcs and gives a speed gain. Tilemap rewrite once again, re-instated drawgfx, fixed second screen. Preliminary RGB ctrl. Tilemap vreg notes. Added command 0x30/0x34, used for solid pen fills. Guessed transparency pen select, fixes bike select screen. Applied RGB brightness on bike select, and fixed a silly bug on it. Fixed sound mirror. Fixed RGB for right screen, and attempted to guess a better algo for crashing. Added SH-2 internal SH7032 place-holders. . Added dualscreen (2x 496x384), 2x SCSP sound and left/right Speaker. Added 2x PLayers, paddle, pedal and 4x buttons and 2 coin slots. Removed AM9517A CPU. Added 'Use Threading Code' configuration. - Demolition Derby . Added the "full" version of Demolition Derby that is dipswitch selectable between Upright and Cocktail mode. The other version was a only supported Cocktail mode. . Added proper dipswitch settings for the Cocktail mode only version. Replaced M6809 CPU3 with M6809E. - Finalizer: Fixed bug in 6x09 DAA instruction; Finalizer (and probably other games) now handle score correctly (m6809\m6809inl.h). - Fire Fox: Replaced M6809 CPU1 with M6809E - Funky Ball: Fixed loading for the unused flash ROM - Gunpey . Significant emulation improvements to Gunpey bringing the game to a mostly playable state, albeit without decompression of the compressed graphics (scheme still not understood). . Added irq cause/mask to Gunpey. Start of pulling up notes. Added OKI bank. Try to make a sense over the RAM format. Time to fix the irqs, game seems working but inputs aren't. Added text decoding. Fixed start buttons. Fixed X/Y offsets. Added timer for blitter irq and screen raw parameters. Added height & width. Added palette hook. Added 8bpp. Illogic beats logic 1 to 0, fixed hangs/inputs in service mode. Tied colors to drawing routines, and added transparent pen. Added end mark. Removed hack. Added basic scene hook-up and RGB brightness control, fixes credit display too. Identified RLE activation. Fixed vbl line. . Added GFXDECODE (just because we can). Start hookup of fake rom to Gunpey (not enabled by default). Various bits... F4 VRAM viewer. A mystery starts to unravel. Fixed text. H/W seem swapped. Better video rendering. Added notes. Fixed missing y source bits. Fixed logging typo. Misc improvements. Added missing x source bit. Commenting out some debug code. The first byte of the compressed data is the width of the compressed data stream in the texture page. Debug log was meant to be turned off for submission. Added data note. Make source x/y and dest x/y during the blitter copy more independent so we can treat compressed data as more of a stream. Definitely 9-bit wide LSB first as per OG's suggestion. Misc refactor for future work. Keep some of the more basic looking bitstreams (eg. char 959) aligned, although this is likely wrong. Added a note about the very first transfer, and some possible interesting facts. Reformat note with some additional info. Blending. Just some debug code to blank out data we've read from in a spare copy of the graphic rom region, although it already confirms what I thought, every byte of graphic data is transferred at some point if you test all characters, so no hidden tables lurking there. Rearrange notes a bit. . Removing unnecessary typecast. Fixed visible area and VSync. Added 'Service Mode' dipswitch. - High Seas Havoc: Fixed crash with downcast error (ID 05143) - Head On: Removed nonsense 'Cabinet' configuration in B&W clones Head On (Sidam bootleg, set 1)/(set 2), Super Crash (bootleg of Head On) and Crash (bootleg of Head On) (ID 05145). - Joust 2: Replaced M6809 CPU3 with M6809E - Logic Pro 2: Fixed OKI sound banking and removed IMPERFECT_SOUND flag - Megatouch 5: Verified clone Megatouch 5 (9255-60-01 ROC, Standard version) as a correct dump and removed the BAD_DUMP flag. Checked against 3 other sets and all dumped as the same. The issue with this set is something other then the data dump. - Parodius: Konami CPU fix, Parodius works now. - PinMAME . de_2.c . Adding a bit of meat to the bones. Still need to work on the MSM5205 and some of the LEDs. . Hooked up MSM5205 and fixed sample banking. Sound should now work fully. . Fixed sample ROM loading, got lower LEDs to display (but not perfectly). . Fixed P3/P4 area display for Alpha Type 2 games . Replaced M6800 with M6808 and M6809E. Added YM2151 and MSM5205 sound, Samples and 2x Speakers. Added Player 1 and 3x coin slots. Added 'Language' configuration. . s11.c, s11a.c, s11b.c and s11c.c: Replaced M6809 CPU3 with M6809E . wico.c: Fixed M6809 regression (slow sound) in Af-Tor - Popo Bear . Fixed resolution and sprites are always square . Decoded tiles to a usable form and use drawgfx for the background . Use tilemaps, bit slow because of constant dirty marking in places, but still 400%. . Stop abusing 8-bit region for VRAM . Better layer enables / scrolling . Preliminary rowselect / linescroll for high scores . Sprite<->sprite priority handling (used to keep character line in order) . Changed how we handle transpen . Fixed visible area and maincpu rom loading . Fixed tile flips (game over screen) . Fixed for colours on Game Over screen . Marked game as working, the remaining issues (wrong animation speed / music speed) are cosmetic, it seems to work otherwise. . Fixed driver compile - Psychic Force 2012: Fixed ROM loading. Some minor changes. - Rise of the Robots: Preliminary 53c7xx save state support - Roc'n Rope: Fixed subtle problem in 6x09 CWAI instruction (m6809\base6x09.ops); Roc'n Rope is now fixed. - Special Forces Elite Training: Added version 3.5 boot rom and added no_dump for Special Forces Elite Training PIC18C422 chip - The Simpsons: Rewrite of KONAMI CPU core. Not sure about the Konami timings; they are definitly different from the previous core but the previous timings were a guess. KONAMI CPU fixes; Simpsons gets further now. - Sukeban Jansi Ryuko: Added 317-5021.key from clone to parent set - Track & Field: M6809 reset fix; resetting Track & Field works now. - Turbo Sub: Fixed stack overflow in ESRIP disasm_disassemble. Replaced M6809 CPU1/2/4 with M6809E. - Wave Shark: Fixed ROZ layer (K001604, video\konicdev.c) - WWF Superstars: Re-Added old gfx1 rom to parent WWF Superstars (Europe). Using the Japanese FG0 rom on the World wwfsstar set makes no sense and cause glitches. This fixes Japanese text displayed in euro version (ID 05155). - Dipswitch fixes in coolridr.c, de_2.c, fcrash.c, gunpey, harem, vicdual.c and wwfwfest.c - Fixed rom names in arcadia.c, cps1.c, coolridr, harem, gei.c, mcr3.c, namcos2.c, pacman.c, scorpion and turbo.c - Renamed (ar_ldrb) to (ar_ldrba), (ar_ldrba) to (ar_ldrb), (demoderb) to (demoderbc), (megat2a) to (megat2b), (megat2) to (megat2a), (megat3a) to (megat3b), (mtlchampu) to (mtlchampu1) and (starblad) to (starbladj). - Description changes of Bomb Kick (set 1), Chinese Hero (older, set 1), Cool Riders, Cyber Sled (World), Demolition Derby (cocktail), Demolition Derby (MCR-3 Mono Board Version), Gunpey (Japan), Leader Board (Arcadia, set 1, V 2.5), Leader Board (Arcadia, set 2, V 2.4), Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010), Shakatto Tambourine Cho Powerup Chu 2K1 AUT (GDS-0016), Spot (Arcadia, V 2.0), Stadium Hero '96 (World, EAJ), Stadium Hero '96 (Japan, EAD), Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001) (ID 05133), Super Ranger (older, bootleg), Super Ranger (older, NOVA license), Super Ranger (older, WDK license) and Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000). - MAME . Fixed HLSL sliders and phosphor offset (windows\d3dhlsl.c and hlsl\phosphor.fx) (ID 05144) . Changed CPU_DISASSEMBLE to use cpu_device * instead of legacy_cpu_device *, so that class based cpu devices can also be passed (emu\devcpu.h). . Pass this instead of NULL and options instead of 0 in the class based cpu cores (cpu\adsp2100\adsp2100.c, asap\asap.c, avr8\avr8.c, cosmac\cosmac.c, dsp16\dsp16.c, dsp32\dsp32.c, hd61700\hd61700.c, i8008\i8008.c, lr35902\lr35902.c, m6809\hd6309.c, m6809\konami.c, mips\r3000.c, sm8500\sm8500.c, tms32031\tms32031.c and upd7725\upd7725.c) . Modernize sound device (astrocde.c, beep.c, c140.c, cem3394.c, cps3.c, es8712.c, gridlee.c, k051649.c, okim6258.c, polepos.c, redbaron, rf5c68.c, rf5c400.c, saa1099.c, st0016.c, taitosnd.c, tiamc1.c, TMS36xx, TMS3615 and zsg2.c) . Modernized driver (chinagat.c, gomoku.c, neodrvr.c) . Modernized device (mos6526.c, mos6560.c, mos6581.c and mos7360.c) . Drivers cleanup (drivers\asuka.c, drivers\fastfred.c, drivers\trvquest.c, includes\actfancr.h, includes\asuka.h, includes\copsnrob.h, includes\dec0.h, includes\dec8.h, includes\deco32.h, includes\fastfred.h, includes\galivan.h, includes\gameplan.h, includes\nmk16.h, includes\spbactn.h, machine\bonzeadv.c, video\fastfred.c and video\gameplan.c). . Added another missing 32->64 bits conversion when building the invsubmask (emu\memory.c). Use proper free function for address_space.m_direct (emu\memory.c). . Removed runtime ioport tagmap lookup when using PORT_CONDITION with PORT_BIT, used by gmgalax for example. . Support up to 32 buttons and harmonize Windows and SDL behavior if you exceed the limit (emu\input.c and windows\input.c). . Avoid slots without user configurable options to write their configs at exit (emu\emuopts.c) . Don't save out internally determined settings to .ini files (emu\emuopts.c). Slightly clearer and safer. . Re-evaluate slot options after loading .ini files in emu\emuopts.c . Be a bit more fine-grained in when to mark slot options as internal (emu\dislot.c, emuopts.c and lib\util\options.c). . Clear 7z file cache on exit (emu\clifront.c) . ROMLOAD . Fixed loaded rom percentage going beyond 100% with softlist entries. Previously, loading from softlist was using the bios romsize as totalsize to load, explaining both the erratic percentage values in systems like AES and the totalsize = 0 error in NES and other bios-less systems, which was requiring a special workaround. Handling is still not perfect (e.g I think that first the bios is loaded and counter goes to 100%, then the cart is loaded and the count restarts from 0%, so it would be better to have a separate message for the softlist loading, but I need to study in depth the code before such a change), but it's definitely better than having AES carts loading up to 12575% or NES skipping completely the soft percentage due to totalsize =0. . Reset rom size counter when starting to load software . Attempt to improve loaded rom percentage display. Namely, with this change the emulator displays first a "Loading Game N%" while loading MAME game or MESS system roms, then it switches to "Loading Software %N" while loading from softlist (this also applies to Megatech, ST-V and NeoGeo lists in MAME). I'm not completely happy with passing a "from_list" boolean to modify the behavior, but I have found no better solution. If you find any, please be my guest and replace this solution with yours. . Lists have no BIOS flag, so this check is redundant . Optimized info_xml_creator::output_switches() (improves -listxml speed in DEBUG build by about 40%) and optimized -listxml . We have a policy for naming conflicts. The suspect is, some of these are from dumpers being lazy and incorrectly naming things to fit the existing romdefs mind you, others are bootlegs where there are no real labels (drivers\8080bw.c, bestleag.c, dynduke.c, funworld.c, galdrvr.c, gei.c, headonb.c, legionna.c, mystwarr.c, nbmj9195.c, pacman.c, phoenix.c, segas16b.c, seibuspi.c, sprint2.c, srumbler.c, suna8.c and wecleman.c). . Windows OSD / stdout/stderr output buffering (osd\windows\winmain.c) - SDLMAME . Don't include GTK+/GConf in Qt debugger builds (sdl\sdl.mak). . Make Ethernet pcap work on Mac OS X & disable unnecessary packet filtering. . Do Mac filtering in sdl\netdev_tap.c. Filter packets try 2 (sdl\netdev_tap.c). . Updated the traditional missed file (src\osd\osdnet.c) . Make the Qt debugger the default for *IX and Win32 builds (sdl\sdl.mak) - MESS: Silencing clrmamepro. Fixed repeated descriptions. - Compiling . Added missing virtual to device-level overrides (cpu\psx\psx.h, machine\tms9901.h, machine\tms9902.h, sound\bsmt2000.h, ics2115.h, qs1000.h, sn76496.h, tms5220.h, votrax.h, video\k053250.h, machine\jvs13551.h, k573cass.h, zndip.h and znsec.h). . Modernization of drivers M - Z (drivers / includes / machine / video). Removal of not needed machine().root_device() (MAME drivers A - Z; drivers / machine / video). Some atari modernization (atarigx2.c, atarisy1.c, atarisy2.c, badlands.c, cyberbal.c, galpani2.c, galpanic.c, gauntlet.c, klax.c, skullxbo.c, toobin.c and vindictr.c). . Disabled Clang warning for now (makefile) . Fixed compile (emu\dislot.c) . Fixed uninitialized variable, member or memory in cosmac\cosmac.c, cpu\lr35902\lr35902.c, cpu\mcs96\i8x9x.c, cpu\psx\psx.c, cpu\psx\rcnt.c, cpu\psx\siodev.c, cpu\sm8500\sm8500.c, cpu\tms9900\tms9900.c, cpu\tms9900\tms9995.c, cpu\v30mz\v30mz.c, diserial.c, hd61700\hd61700.c, imagedev\cassette.c, imagedev\floppy.c, machine\6522via.c, machine\6532riot.c, machine\6821pia.c, machine\6840ptm.c, machine\6850acia.c, machine\74145.c, machine\8237dma.c, machine\adc0808.c, machine\am9517a.c, machine\at45dbxx.c, machine\cdp1871.c, machine\i2cmem.c, machine\i8155.c, machine\i8214.c, machine\i8251.c, machine\i8255.c, machine\im6402.c, machine\mc68901.c, machine\mccs1850.c, machine\mm74c922.c, machine\mos6526.c, machine\msm58321.c, machine\n68681.c, machine\nmc9306.c, machine\pc_kbdc.c, machine\psxcd.c, machine\rp5c01.c, machine\tms9902.c, machine\upd1990a.c, machine\upd765.c, machine\v3021.c, machine\wd_fdc.c, machine\z80dma.c, machine\z80sti.c, sound\cdp1869.c, sound\ics2115.c, sound\mos6560.c, sound\mos7360.c, sound\pokey.c, sound\spu.c, sound\spureverb.c, video\cdp1861.c, video\crt9007.c, video\crtc_ega.c, video\ef9340_1.c, video\hd61830.c, video\huc6260.c, video\huc6261.c, video\huc6270.c, video\i8275x.c, video\isa_cga.c, video\mc6845.c, video\n64.h, video\saa5050.c and video\tia.c - Debugger . Fixed crash with -debug when image loading failed (debug\debugcpu.c). Fill allocated memory with 0xDD pattern to make it easier to spot uninitialized memory in a debug build (emu\emualloc.c). . Fixed debug build (drivers\igs017.c, drivers\mediagx.c and video\taito_h.c) . Added a new 'lastinstructioncycles' property to the debugger to measure the amount of CPU cycles taken by the last instruction. This is useful to people who are rewriting CPU cores, specifically with regression testing (debug\debugcpu.c). . Added the ability to tracelog to '{game}' (without the quotes); performing a substitution when the trace is run (debug\debugcmd.c) . All cpu cores with a CPU_DISASSMBLE are supported by UNIDASM. Meant to sort these into cpu name order before last commit, they appear to have mostly been in "find in files" order before with manual changes (tools\unidasm.c). . UNIDASM . Fixed UNIDASM, but this fix is really gross. If we are serious about UNIDASM, somebody should figure out our strategy for ensuring that disassemblers are usable by this tool in a way that won't cause problems for device modernization. . Added TMS9900, TMS9980 & TMS9995 to UNIDASM. Other TMS99xx cpu cores are generated with macros, including the CPU_DISASSEMBLE. . Made 6309 compatible with UNIDASM . TMS57002 works in UNIDASM, disassemble interface can be revisited when all cpu cores have been converted. . Added support for Debugger registerpoints . Added 'exit' as a synonym for 'quit' 0.148u1 - New games: Bonne Chance!, New York Joker and Number One - New Working games: Brixian and WWF Superstars (Japan) - New Non-Working games: Chao Ji Da Heng 2 (V311CN), Fruit Fresh (Italy), Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China), Rugby? (four roses hardware), Super Dou Di Zhu Special (V122CN) and 'Unknown IGS036 CPU game (V312CN)' - New clones: Chao Ji Da Heng 2 (V215CN), Chao Ji Da Heng 2 (V311CNA), Chao Ji Da Heng 2 (V311CNB), Continental Circus (Japan), Demon Front (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX), Fruit Bonus 2010, Jackler (Jungler bootleg), Jolly Card (Italian, encrypted bootleg, set 2), Lucky 74 (bootleg, set 3), Lucky Boom (Hard Times hardware), Print Club 2 '97 Winter Ver (J 971017 V1.100), Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg), Super Pinball Action (prototype), Super Pool 99 (Version 0.26), Super Pool 99 (Version 0.33), T.T. Fitter (bootleg of Round-Up), Tesorone Dell'Isola (Italy, v2.40), Tesorone Dell'Isola (Italy, v2.41), Tumble Pop (Playmark bootleg), Vastar (set 3), Wonder Boy in Monster Land (English bootleg set 3), Wonder Boy in Monster Land (English, Virtual Console), WWF Superstars (bootleg) and X-Men (4 Players ver AEA) - New drivers: fresh.c, igs_m036.c and sanremo.c - ADSP21062 CPU (cpu\sharc\sharcdsm.c) . Added omitted direction flags in instruction using both PM() and DM() . In instruction with 6bit immediate data, this data is signed value. It would be better to show this sign because it is confusing to see for example 0x3F which actually means -1 (32bit immed data are not confusing as that big values are easy to recognize). - ARM7 CPU . ARM7 checkpoint. Added cpu\arm7\arm7drc.c and arm7tdrc.c. . Added fine page table lvl2 lookup, fixes 'Lucky Drink' (Belatra 2004) fatalerror. Added a note to the Belatra driver that these games appear to be on Archimedes-compatible hardware. . Fixed behavior of SMLAxy opcode (cpu\arm7\arm7drc.c). Not sure if this is correct, but it looks a lot more correct than before. I'm not actually sure what we have in MAME or MESS that uses ARMv5 opcodes. . Fixed SMLAL opcode (looks like another dodgy one), SMULW and SMLAW opcodes - I386/486 CPU . Added Translation Lookaside Buffer (TLB) (cpu\i386\i386.c, i386ops.c, i386priv.h and i486ops.c). Improved TLB performance slightly. . Added if(!(cpustate->cr[0] & 0x80000000)) // Some very few old OS's won't work with this (cpu\i386\i386priv.h) - I8039 / MCS-48 CPU: Added a default handler to the disasm switch/case (cpu\mcs48\mcs48dsm.c) - M50747 / M509xx MCUs . Correct disassembly for M740 bit+zp+rel. offset form of BBC/BBS (cpu\m6502\dm740.lst, m6502.c/h, m740.h and om740.lst) . Removed m5074x from emu\cpu\cpu.mak (not ready for this yet) - MC68HC11 CPU: Fixed hang after soft reset - MIPS CPUs and PowerPC . Added direct dynamic entry load to virtual TLB (cpu\vtlb.c) . vtlb_fill doesn't appear to provide an easy way to determine whether a failure is due to a presence or permission error also entries need to be marked dirty or the performance improvement is minimal. - PSXCPU . Uses a DEVCB2 for CPU to CD controller communication, the address decoding is internal to the CPU & the CD controller is on it's own 8 bit bus. . Use DEVCB2 for CPU to CPU hookup as it's on it's own 16 bit bus. . Removed the SPU hookup in TaitoGN at 0x1fa51c00 as it doesn't make sense, will wait for bug reports before investigating further. . Force controller reset with SIO reset (cpu\psx\sio.c). - R3000 CPU . Modernised the R3000 core: The following variants are supported: R3041, R3051, R3052, R3071 and R3081. . Endianness is now specified by MCFG_R3000_ENDIANNESS() (default is big-endian) . Removed configuration struct. Cache sizes and FPU availability are now determined from the CPU type . Added state saving . Added BrCond (conditional branch) input callbacks . Fixed compilation under MSVC2008 (cpu\mips\r3000.c) - R3041 CPU: Changed 'R3000 (big)' and 'R3041 (big)' to 'R3041' - R3051 CPU: Changed 'R3000 (little)' to 'R3051' - SH-2 CPU . Some notes on SH-2 Cache functionality (cpu\sh2\sh2comn.c) . Fixed SH-2 non-DRC compile . Added illegal opcode handling for SH-2 CPU (added illegal opcode exception handling, side effect of some Saturn games on loading like Feda or Falcom Classics Vol. 1 (i.e. Master CPU Incautiously transfers memory from CD to work RAM H, and wipes out Slave CPU program code too while at it)). . Illegal opcode is the start of the undefined address . Fixed cpu\sh2\sh2drc.c - SM8500 CPU: Converted SM8500 to C++. Compile fix for MESS (sm8500.h). - TLCS-900/H . Fake 'done serial sending' IRQ in TLCS-900/H. Fixes SNK Gals' Fighter in the ngp.c driver (MESS). . Fixed BIT operation on bytes for bit numbers > 7. - V30MZ CPU: No need for usign device_irq_acknowledge_callback in modern CPU - V810 CPU: Fixed Virtual Boy (MESS) from crashing (V810 CPU => cpustate->icount-= OpCodeTable[op>>10](cpustate,op)) - Z80 CPU: Added modern register accessors (machine\z80dart.c/h) - CAPCOM-Q1 sound . Additional DSP16 opcodes & disassembly fixes . The PC moves on from potentially all used DSP16 opcodes now. I believe I've roughed in each of the opcodes the QSound program uses (every opcode the dsp16 has except three, apparently). Even without all flags being set and conditions being tested, reasonable memory regions are being accessed. Unfortunately, though, I've found what I believe to be my first bad opcode (at PC=03e6 and will have to do a bit of spelunking to see what I can make of that). . Switch -> if (dsp16\dsp16ops.c) - Digitalker speech: Modernized sound device (Scorpion, Mazer Blazer) - ES5510 sound . Initial implementation of Ensoniq ES5510 DSP. This doesn't actually process samples yet, but it's pretty close to doing so, we just need OG to figure out how that works in the core. . Added proper replace func and made it always use that one. Additional portability fixes . Compile fix. Fixed uninitialized memory in cpu\es5510\es5510.c - Irem GA20 sound: Modernized sound device (m92.c, m107.c) - K005289 sound: Modernized sound device (nemesis.c) - K056800 sound: Fixed sound clocking to match PCB READMEs - RF5C400 sound: Envelope timing based on chip output rate instead of MAME output rate - SCSP sound . Made a more sane Sound->Main IRQ behaviour . Made MSLC register to be write only, fixes (MESS) Deka Yonku ~Tough the Truck~ hang on Human logo. . Added DSP registers read-back, fixes booting in (MESS) Tunnel B1 / Finalist. . Fixed SCIEB not updating irqs, fixes (MESS) Alien Trilogy booting. - SPU sound . (MESS) PlayStation: Play XA audio at the correct speed (sound\spu.c) . Fixed PlayStation sample signedness and stream rate for CDDA (redbook) audio (sound\spu.c and machine\psxcd.c) . Attempt better XA/SFX volume balance (sound\spu.c) - TIA sound: Modernized sound device (sound\tiaintf.c/h, Tournament Table) - Volume and RC filter: Modernize the Volume and RC filter sound devices (emu\sound\flt_rc.c/h, flt_vol.c/h, audio\scramble.c, timeplt.c, drivers\darius.c, ddribble.c, galaxold.c, junofrst.c, lockon.c, megazone.c, ninjaw.c, othunder.c, scramble.c, taito_z.c, tp84.c, warriorb.c, xexex.c, includes\darius.h, lockon.h, ninjaw.h, othunder.h, warriorb.h, xexex.h) - Gravis Ultrasound . Enabled 6850 MIDI interface in Gravis Ultrasound (machine\isa_gus.c) with a hopefully accurate clock, and fixed a silly error with MIDI IRQs, and passes the MIDI transmit IRQ test. It still slows the drivers down a bit, but now only by about 20-25%, might be a bit more manageable now. Also, is there any way to tell if the 6850 triggers an IRQ on recieve or transmit, as the GUS has separate flags for each case. Otherwise, it can't pass the MIDI recieve IRQ test. . Added Gravis Ultrasound MIDI In and Out. Note: MIDI Out seems to work fine with Win 3.1 MIDI Mapper and Media Player. To use with these, open MIDI Mapper, and edit the General MIDI setup, and change each channel from "Ultrasound MIDI Synth" to "Ultrasound MIDI Output Port". MIDI In is untested, and the MIDI Receive IRQ test still fails. . Fixed audio streaming in the Windows GUS drivers, and added a hacky workaround for Win95 setting invalid IRQ settings. - Sound Blaster 16 . MIDI Out support for single-byte, SB UART and MPU-401 UART modes. . Improved MIDI throttling . Working SB-MIDI In (tested w/MIDI Monitor for Windows) . Fully hooked up MPU-401 input and output for SB16 . Added save state registrations to Sound Blaster - MIDI . MIDI core updates: Added MIDI in and out ports as image device types . Added OSD calls to check for and read MIDI input . Added MIDI in image device which reads input and converts it to a serial bitstream (imagedev\midiin.c). Note that the MIDI In device uses the new image device override to prevent the core from attempting to fopen() the "file" name and instead it handles open/close itself in call_load/call_unload. This allows greater flexibilty than the hack used for sockets/ptys/named pipes where the OSD file layer has to know about them. . Added MIDI In capability to all of these drivers (mess\drivers\esq5505.c) . Allow MIDI input port to work without a connected real device. . More fun with older OS X (portmidi\ptmacosx_mach.c) . Fixed compiling on PowerPC OS X (portmidi\osxsupport.m + readbinaryplist.c and osd\sdl\sdl.mak) . First pass on MIDI out support (imagedev\midiout.c/h and machine\midioutport.c/h) . Fixed several MIDI bugs and bumped the input buffer sizes . Handle MIDI Out with running status properly (osd\portmedia\pmmidi.c). . Fixed DEBUG compilation of portmidi\pmwinmm.c . Enable transmission of SysEx messages . Preliminary SysEx reception support - 6850 ACIA: Added accessor function for status - 68681 DUART . Fixed N68681 trashing of the serial parameters when ACR is updated . (MESS) Converted ESQ-1 to use N68681, hooked up MIDI I/O, mapped more front panel buttons. - 8259 PIC: Used modern accessors for I8259 (machine\pic8259.c) - I8251 UART: Disabled logerror spam - K001604 tilemap chip: Found ROZ layer enable. Rewrote the ROZ rendering (video\konicdev.c) (cobra.c, gticlub.c, nwk-tr.c and zr107.c). - MOS6551: DEVCB2 conversions (machine\mos6551.c/h). Refactored all drivers to use the new MOS6551 and removed the old implementation (MESS + drivers\cops.c) - Programmable Logic Device (PLD): Fixed memory leak in jedutil - PSX GPU . Changed the rendering back to quads as less people complained about the old graphical issues compares to the new ones (ID 04487) . Clamp framebuffer reading to frame buffer coordinates. Not sure this is accurate, but it stops it crashing when negative coordinates are used (video\psx.c). - MC6845 CRT . Added a preliminary boolean flag to MC6845 interface structure: "show border area". If true, it will show the whole video area including border + blanking areas. . Bulk replaced const mc6845_interface -> MC6845_INTERFACE (emu\video\pc_cga.c, mame\drivers\4roses.c, 5clown.c, albazg.c, amaticmg.c, aristmk4.c, avt.c, blitz.c, blitz68k.c, buster.c, calomega.c, carrera.c, chance32.c, coinmstr.c, flipjack.c, fortecar.c, funworld.c, goldnpkr.c, hitpoker.c, jokrwild.c, jubilee.c, kingdrby.c, laserbas.c, luckgrln.c, magicfly.c, majorpkr.c, merit.c, miniboy7.c, mpu12wbk.c, mpu4dealem.c, murogem.c, nyny.c, othello.c, peplus.c, progolf.c, r2dtank.c, rgum.c, slotcarn.c, snk6502.c, speedatk.c, spiders.c, ssingles.c, supercrd.c, tapatune.c, tmspoker.c, truco.c, usgames.c, vcombat.c, vlc.c, whitestar.c, mame\video\madalien.c, qix.c and twincobr.c). . (MESS) Enabled SMC-777 to show the border area in MC6845 interface, changed various video related function accordingly. . (MESS) Enabled Sharp X1 (drivers\x1.c) to show border area, fixes Shilver Ghost gameplay and Nobunaga no Yabou error display if a single floppy is in. - TLC34076 palette chip: Fully modernised the TLC34076 device (drivers\artmagic.c, btoads.c, coolpool.c, itech8.c, skeetsht.c, tickee.c, vcombat.c and xtheball.c) - CHDMAN . Added "copy" support to chdtest.py / added some v4 to v5 copy tests. . Fixed undefined behavior in bitstream_out::write() as well - thanks to -fcatch-undefined-behavior and Clang (lib\util\bitstream.h) . Disabled pointless (at least in terms of MAME/MESS) DEBUG message in libflac (src\lib\libflac\libflac\lpc.c) . Fixed bad frames occurring on 2GB RIFF splits (lib\util\aviio.c) - Keyboard: Fixed some control keys in generic keyboard. Fixed multisession crash with any system using generic keyboard (mess\machine\keyboard.c). - Cassette (MESS): Fixed interface for ondra cassette (drivers\ondra.c) - Floppy (MESS) . Refactored the Commodore 1581 floppy disk drive to use the modern floppy system. Supports read-only access to D81 images (formats\d81_dsk.c). . Controller remains busy until the last DRQ has been served, and the sector register can now be written more than once (machine\wd_fdc.c). . Added support for Commodore GCR encoding (formats\d64_dsk.c) . d64/g64 floppy modernization WIP . Fixed write protected signal and added a callback for it (imagedev\floppy.c) . Disk is read-only if no output format (imagedev\floppy.c) . Fixed tiki100 90K floppy format . Header size obvious fix (formats\dsk_dsk.c) . When generating a PC layout, don't write the gap3 after the last sector (lib\formats\flopimg.c) - CD-ROM: Fixed compile on a define switch (machine\psxcd.c). Cache CPU & SPU lookup (machine\psxcd.c). - 3do.c: Machine init/reset re-arrangement - balsente.c: Added missing PALs to Gimme A Break, Mini Golf, Rescue Raider, Stocker and Trivial Pursuit (Baby Boomer Edition) (3/20/85) - belatra.c: Added fine page table lvl2 lookup, fixes 'Lucky Drink' (Belatra 2004) fatalerror. Added a note to the Belatra driver that these games appear to be on Archimedes-compatible hardware. - cdi.c: Modernized CD-i and MCD212 device. - cps1.c . CPS1 modernisation (includes\cps1.h, video\cps1.c, drivers\fcrash.c) . Splitted kabuki (decoding functions) from cps1.h . Replaced NM_23.13B in Nemo (Japan 901120) with proper dump . Confirmed 1 label in clone Street Fighter II: The World Warrior (USA 910228) according to the real board . Fixed 3 labels in clone Street Fighter Alpha 2 (USA 960430) . Moved Knights of the Round (bootleg) to the Final Crash driver - cps2.c . CPS2 modernisation (drivers\cps2.c) . Reordered sfz2alj set - decocass.c: Fixed debug compile (machine\decocass.c) - eolith.c: Gave clone Iron Fortress (Japan) an idle loop speedup, because whoever added it didn't at the time. - gticlub.c . Fixed "sticky" 3D in GTI Club and Operation Thunder Hurricane (video\gticlub.c) . Labeled inputs in GTI Club . Fixed RF5C400 sound clocking to match PCB READMEs - itech8.c: Minor rom name corrections & whitespace clean-up - jaguar.c: By request, favor safety over speed in Jaguar for now (Tempest 2k does bad things) (video\jagblit.c) - lordgun.c . Protection routines for Alien Challenge . Implemented missing functions of Lord of Gun's protection routines - megadriv.c . Disabled excessive logging in machine\megacd.c . Many updates to cart handling (MESS): Updated carts to be slot devices. Simplified loading and bankswitch mechanism. Added support for real Sonic & Knuckles lock-on emulation (you can combine it freely with other carts, through the -cart2 slot which gets added automatically). Removed need for "pcb_type" feature from XML softlist, since the new "slot" feature is enough. Moved SVP emulation to src\mess\ in view of conversion to a slot device as well. . Updated megadriv driver to the latest version . More Megadrive updates: Implemented correct ROM mirroring, based on research by Eke & others. Emulated the protection in Ya Se Chuan Shuo, promoting it to work state. Fixed cart type in Blockbuster World Video Game Championship II (works for the first time in MESS). Fixed cart type in HardBall III, Barver Battle Saga and Chao Ji Da Fu Weng. Added support for unusual SRAM location in HardBall 95. Fixed a few regressions introduced in the previous commit. Fixed wrong driver class being used in 32x and SegaCD. - merit.c: Correct documentation of pins / switches (casino5, meritpoker and pitboss) - model2.c: ID'ed and correct Model 2 rom names. Alignment of text and other minor clean ups. Get rid of rouge ROM_LOAD16_WORD_SWAP for the Z80 DSB program rom. - namcos22.c . Renamed user1 to gamma_proms and user4 to MCU . Added S22 dummy I/O MCU lest it be forgotten. On non Super System 22, the 2nd C74 is responsible for inputs and sends it to the main MCU via serial I/O (UART?). . Cleanup class m_m to m_ and double-line functions, added some comments. . Cleanup ADC reads on Super22. Small driver cleanup and port bits and DIP locations cleanup. . Added M37702 CPU5 to Ace Driver: Racing Evolution, Ace Driver: Victory Lap, Cyber Commando, Rave Racer and Ridge Racer 2. . Added 2nd Player to Ace Driver: Racing Evolution and Ace Driver: Victory Lap . Improved Armadillo Racing control. Replaced Trackball with Stick. Added 8-way Joystick and Player 2 and button 2. . Improved Prop Cycle pedal. Replaced 8-way Joystick with Pedal and removed button. - namcos86.c: Modernized Namco 63701X sound device. Fixed driver regression. - nbmj8991.c: Fixed no sound, lock up in attract mode or gameplay in nbmj8991 driver (galkaika, galkoku, mcontest, tokimbsj, tokyogal and uchuuai) (ID 05137) - neodrvr.c: Modernized some pre/postload calls (drivers\neogeo.c, includes\neogeo.h and video\neogeo.c) - nss.c and snesb.c: Refactored SPC7110 and SDD1 implementations to be more class-friendly and not to use running_machine to access the ROM data. Fixed Visual Studio compiler warning in machine\snessdd1.c. - pinkiri8.c: Fixed array out-of-bound write in pinkiri8_state::ronjan_prot_w. This fixes Ron Jan crashed after OK (ID 04028). - qix.c . Resolved device references at initialisation where possible . Fixed "bad downcast<> or device<>" error in debug build of Slither (ID 05104) - sanremo.c . New preliminary driver for 8bit San Remo Games. Added graphics decode. Proper ROM load. Accurate memory map. Hooked CPU & interrupts. Added CRTC support. Added AY-3-8910 sound and ports support. Added input ports. Added output-lamps port. Added button-lamps layout. NVRAM support. . Fixed 'Number One' gfx to help robbie and hook up intensity. Some cleanups, defined clocks and promoted game to working. - segae.c and megatech.c: (MESS) Running eagles5 on the sms2kr driver. It apparently expects the irq to be cleared when explicitly disabling VINT irqs during VINT (video\315_5124.c) - stv.c/saturn.c . Removed NEW_VIDEO_CODE, it needs a bigger plan (drivers\saturn.c and includes\stv.h and video\stvvdp2.c) . Added force_resynch on master/slave communication buffer, fixes at least (MESS) Ichidant-R booting (drivers\saturn.c and includes\stv.h) . Guessed that if SMPC calls the same state for a CPU reset line it executes less code (machine\smpc.c). Fixes (MESS) Greatest Nine '97. . Inverted fake comms default (drivers\saturn.c) . Attempt #1 to improve PERIodic flag (machine\stvcd.c) . SCU logging fix (drivers\saturn.c) . VDP1 command list 3 is a mirror for distorted sprite, fixes Hardcore 4x4 (video\stvvdp1.c) . Made minit/sinit to force resync instead of boost interleave, fixes (MESS) Densetsu no Ogre Battle booting. . Made SCU DMAs to be relative to master SH-2 cycles and indirect DMA, improves timing in most FMVs (drivers\saturn.c and video\stvvdp2.c). . Support for TH control mode in SMPC (System Manager and Peripheral Control - machine\smpc.c), fixes inputs in (MESS) Heisei Tensai Bakabon Susume! Bakabons. . Fixed old OSX compiler (machine\smpc.c) . Made the comms hack more useful (drivers\saturn.c and includes\stv.h) . Fixed input regression with (MESS) Bug 2 (cpu\scudsp\scudspdasm.c, drivers\saturn.c and video\stvvdp1.c) . Correct VDP2 VRAM mirror, fixes missing gfxs in (MESS) Civilization and Silhouette Mirage. . Added RGB555 drawgfxzoom, fixes gfxs for (MESS) Croc (video\stvvdp2.c) . Moved a variable around in VDP1, fixes gfx updating in (MESS) Slam N Jam 96 and Cross Romance. . Fixed linezoom in VDP2 (video\stvvdp2.c) . Support fade in/out for rgb555 zooming tiles (video\stvvdp2.c) . Part 1/2 of Last Bronx gfx fixing: Fixed shadows in double X condition and that shadow logic looks quite illogic to me (video\stvvdp2.c) . State-ized Sega Saturn VDP1 & 2 . State-ized CD block and finished state-izing VDP1, thanks to OG & Micko. . Fixed 'Virtual Mahjong 2 - My Fair Lady' default input. . Removed pointless VDP1 gfx decoding . Minor speed gain (video\stvvdp1.c, machine\stvcd.c) . First pass in rewriting VDP2 bitmap layers. RGB32 being the first one. . Check-point, (MESS) Burning Rangers now shows half-right FMV (video\stvvdp2.c) . Added 4bpp and 8bpp cases, fixes at least Code R crash after loading (video\stvvdp2.c) . Fixed linescroll for VDP2 bitmap layers . Fixed vertical linescroll mask too . Fixed zooming for (NESS) 3D Baseball the Majors (8bpp bitmaps) . Added zooming for RGB15 (My Fair Lady) . Added INTBACK buffer mechanism, fixes at least Rayman inputs (includes\stv.h and machine\smpc.c) . Reverted a VDP1 wrong fix, causes problems in (MESS) World Series Baseball and Akumajou Dracula X. . Fixed TH Control Method when TR is active, fixes input detection in 3D Lemmings (machine\smpc.c). - subsino.c: Hopper emulation in Super Rider, clone Super Moto and Treasure Bonus (Subsino) and clones. - system1.c: Minor doc update. Added Regulus game ID#. - taito_l.c: Added confirmed PALs from boards matching American Horseshoes (US), Plotting (US), Plotting (Japan) and Puzznic (Japan), fixing labels when needed. - zn.c: Confirmed 1 label in sfexu. Added a note in sfexa set. - Alien Storm: Added correct sound rom (rev b, verified by 2 different dumpers) for clone Alien Storm (Japan, 2 Players, FD1094 317-0146) - Atari: Few minor cleanups (mame\audio\cyberbal.c, drivers\atarig1.c, atarig42.c, atarigt.c, atarisy2., cyberbal.c, includes\atarig1.h, atarig42.h, atarigt.h, atarisy2.h, cyberbal.h, video\atarig1.c, atarig42.c, atarisy2.c and cyberbal.c) - Bonne Chance!: Worked complete inputs from the scratch. Promoted to working. Added some notes. Added proper palette. Now the game seems to get accurate colors. Also added some descriptive notes and instructions for the service mode. - Brixian . Added/cleaned up protection data (verified on board) (Game now playable) . Replaced YM2149 sound with AY-3-8910A. Fixed input. - Cool Riders . DMAC hooked . Fixed I8237 clock, SH-2 CPU1 and AM9517A sound. - Fishin' Frenzy: Fixed regression in Fishin' Frenzy without breaking Area 51 Site 4 (machine\idectrl.c) (ID 04844) - Fruit Fresh: Added driver for Fruit Fresh. Little progress. Hook up the palette. Misc updates. - Go! Go! Connie chan Jaka Jaka Janken: RTC is a MSM6242. Fixed service and test inputs mis-matches. - High Seas Havoc: Merged md_havoc_state with md_boot_state (drivers\hshavoc.c, includes\megadriv.h) - Hook: Fixed no sprites present in clone Peter Pan (bootleg of Hook) (ID 05134) - Imola Grand Prix . Many cleanups to Imola Grand Prix . Added/completed internal .lay. Improved steering wheel. . Fixed Z80 CPU1/2 clock speeds. Relaced Dial with Paddle. - Jack the Giantkiller: Companyname correction -> Hara Industries (Cinematronics license) - Lucky 74 . Added proper inputs for Lucky 74 (bootleg, set 2) to reflect the real payrate table . Saving some code lines through PORT_INCLUDE in clone (bootleg, set 3) - New York Joker: Added inputs/outputs, button-lamps, sound, coin and note counters, default NVRAM and promoted to working. - Ridge Racer V Arcade Battle: Added JVS and Steering I/O board roms. Added a little extra documentation. - Sukeban Jansi Ryuko: Redumped the 317-5021 FD1089B for clone Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021) - Super Pinball Action . Start converting game to tilemaps, it's now clear that the prototype uploads the backgrounds once and uses the scroll regs (not hooked up) whereas the release version just uploads them as it needs them before each level. I wonder if the extra Z80 rom + gfx on the proto are for a 2nd screen, some kind of fake dmd? . Super Pinball Action (prototype) progress. Also not really sure what's mapped to the additional Z80 CPU. - Tecmo: Shuffle some Tecmo sprite code around ready for device conversion / attempting to unify it a bit (video\gaiden.c, galspnbl.c, spbactn.c, tbowl.c and tecmo16.c) - Vega: Added notes to Vega. Hardware seems like an evolution of Olympia's Monza GP. - Virtua Racing: Hooked up lamps - WWF Superstars . Correct program and gfx1 roms in clone (Japan) (Game now playable). . Correct rom loads for genuine WWF Superstars PCBs sets and correct a few rom labels. Added new 128k gfx1 rom. Replaced the 2x 64k OKI roms with 128k and 64k gfx2/3 roms with 256k and 512k. - Tagmap cleanup . 3do.c Reduce tagmap lookups . 4enraya.c: Tagman cleanup. Note: This is a good example of where the tagmaps are significantly slowing things down. Simple driver but because it is using the actual prom to do address decoding, it was incurring a tag lookup on every mem access (2 in the case of ROM) and was running at 200%, when it can actually run at 1200% just by doing the region tag lookup on startup instead. . Amiga (alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) . Thinking about it these must be hashlookups too (Amiga tagmap cleanup), we were converting the param to a char* string and passing it to ioport() . CD32 tagmap cleanups (drivers\cd32.c, includes\amiga.h, cd32.h and machine\amiga.c). Fixed compiler warnings (drivers\cd32.c and machine\amiga.c). . Up Scope tagmap cleanups . aristmk5.c and ertictac.c: Reduce tagmap lookups (includes\archimds.h, machine\archimds.c) . bfm_sc4.c: Cleanup some tagmap use (drivers\bfm_sc4h.c and includes\bfm_sc45.h) . cdi.c: Removed tag lookups . CGA: Reduced ioport tagmap lookups (video\isa_cga.c) . eolith.c: Tagmap cleanup . ghosteo.c: Reduced tag usage. Note: Doesn't really help performance in this even if it was a big hitter, the 200MHz ARM has more to do with it .. also QS1000 still needs hooking up here. . HD61830: Reduce tagmap lookups . LR35902 CPU: Changed configuration and tagmap lookup reduction for Gameboy (drivers\gb.c) (MESS) . MAME: Reduced tagmap lookups in ui_update_and_render() and changed ui_is_menu_active() to bool (emu\ui.c/h) . Missile Command: Tag lookup reduction . mpu4.c: Some tagmap reduction (drivers\mpu4hw.c, mpu4vid.c and includes\mpu4.h) . neodrvr.c: Reduce tagmap lookups . nightgal.c: Reduce tagmap lookups . vectrex.c: Reduce tagmap lookups and some minor cleanups . X the Ball: Reduce tag lookups - Dipswitch fixes in brixian, imolagp and subsino.c - Fixed rom names in contcirc, cps1.c, gticlub.c, taito_l.c, pgm2.c, itech8.c and wwfsstar - Renamed (lucky74a) to (lucky74b), (spool99a) to (spool99b), (wwfsstaru) to (wwfsstarua), (wwfsstara) to (wwfsstaru) and (xmena) to (xmenaa) - Description changes of Fitter (bootleg of Round-Up), Hot Mind (Hard Times hardware), Jolly Card (Italian, encrypted bootleg, set 1), Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version), Mini Golf (11/25/85), Sega Touring Car Championship (Revision B), The Pit (US set 1), The Pit (US set 2), Treasure Bonus (Subsino, v1.6), Treasure Hunt, Tumble Pop (bootleg with PIC) and Tumble Pop (bootleg). - MAME . HLSL . Made HLSL switchable at runtime, Ctrl+Alt+F5 (windows\d3dhlsl.c) . Added preliminary vector post-processing (windows\d3dhlsl.c) . Fixed raster games with HLSL . Silence some debug spam and turn off bloom target allocation on cache targets (windows\d3dhlsl.c and drawd3d.c) . Temp patch to fixed D3D crash at start (windows\d3dhlsl.c) . Removed unused crosscast() function from emucore.h . Modernized reset of pre/postload calls (audio\8080bw.c, drivers\astrocde.c, atetris.c, cave.c, crystal.c, darius.c, djmain.c, dynax.c, fcrash.c, mjsister.c, mw8080bw.c, mystwarr.c, neogeo.c, ninjaw.c, othunder.c, pengadvb.c, psikyo4.c, renegade.c, slapshot.c, taito_f2.c, taito_h.c, taito_x.c, taito_z.c, taitoair.c, topspeed.c, vegas.c, warriorb.c, wgp.c, xexex.c, xmen.c, includes\40love.h, 8080bw.h, astrocde.h, atetris.h, cave.h, chaknpop.h, cps1.h, darius.h, djmain.h, dynax.h, gradius3.h, gridlee.h, hyprduel.h, mw8080bw.h, mystwarr.h, nemesis.h, neogeo.h, ninjaw.h, othunder.h, psikyo4.h, renegade.h, simpsons.h, slapshot.h, tail2nos.h, taito_f2.h, taito_h.h, taito_z.h, taitoair.h, tnzs.h, toaplan1.h, toaplan2.h, topspeed.h, tumbleb.h, twincobr.h, warriorb.h, wgp.h, williams.h, xexex.h, xmen.h, machine\simpsons.c, tnzs.c, toaplan1.c, twincobr.c, williams.c, video\40love.c, cave.c, chaknpop.c, cps1.c, gradius3.c, gridlee.c, hyprduel.c, nemesis.c, neogeo.c, tail2nos.c, taitoic.c, taitoic.h, toaplan1.c, toaplan2.c, tumbleb.c and twincobr.c). . Allow image devices to skip core fopen() of the image's filename and handle themselves in call_load() (emu\diimage.c) . Error out if XML is incomplete instead of crashing (emu\diimage.c) . Use slot interface names for filling current values in slot menu, because using command line options produces garbage at least on OS10.6.8 (emu\uimain.c). . Fixed handling of slot options which have only internal options available (and hence are not configurable by the end-user) (emu\uimain.c) . Fixed DEBUG compilation of lib\zlib\zutil.h. Disabled stupid zlib trace message with DEBUG (lib\lib.mak) . Replaced bogus memcpy in handler_entry_{read|write}. Fixes Visual Studio-only issues/crashes in (MESS) paso1600, multi16, x68030 and t1000* sets (ID 05124) (ID 05110) (ID 05112) . Added missing 32->64 bits conversion when building the invsubmask (emu\memory.c) . Added -lr as an alias for -listroms . Fixed compile error in 'Save Snapshot' input_seq (emu\inpttype.h). Fixed compile (emu\inpttype.h). . Fixing natural keyboard debugger commands (input, dumpkbd) (emu\ioport.c/h and emu\debug\debugcmd.c) . Revert r20364: "Screenless systems (like synths) tend to be latency-sensitive in their outputs. Increase their osd refresh rate to 1kHz" (emu\screen.h). The solution needs to be rethought, this one made (most?)screenless drivers slow down to a crawl. . Added highlighted white monochrome RGB (video\generic.c/h) . Removed not needed function type (emu\devlegcy.h) . DEVCB2 conversions (machine\ds75160a.c/h, mos6529.c/h and mos6551.c/h) . Faster enumeration during -verifyroms (emu\clifront.c) . Don't crash on exit when wpcap.dll is unloaded before pcap_close is called (windows\netdev_pcap.c) - SDLMAME . QT Debugger improvements: Fixed disassembly window not following PC correctly. Switched font to Courier New since it seems more universal. Fixed gaps between rendered text characters. Plumbed mouse handling through the debugger core (clicking selects). Made the Enter key behave like old SDL debugger; silently steps. Save and load window locations. Preliminary work on "run and hide" and "hard reset" (don't crash on one of my copmilers but do on another - more work to do!). Fixed color when cursor is the same as PC in debug view. Closing the main window now shuts down the machine (same as quit). Help now wraps to the log window size. . Fixed srcclean damage in sdl.mak . Updated MAME and MESS manpages and updated manpages to reflect the -lr alias for -listroms (osd\sdl\man\mame.6/mess.6) . Improved some version checks in makefiles and added TODO (osd\sdl\sdl.mak) . Added server socket support instead of just client (sdl\sdlfile.h, sdlsocket.c and windows\winsocket.c) - MESS . Fixed handling of software list entries without any datearea definition. This fixes romident crashing on the CPM set from the c64_cart list. Fixed crash in software_find_romdata(). . Sync the internal software list dtd (emu\clifront.c) . Properly close the old image when swapping CHD-CDs (imagedev\chd_cd.c) - Compiling . srcclean now processes XML & C comments the same, so they can be indented but within the comment itself spaces are used. . Added file name to unterminated string error message to srcclean . Removed in srcclean extraneous line continuation characters followed by a blank line and blank lines that follow an opening brace in c files. . Leave line continuation characters in comments alone in srcclean . Re-added line terminators followed by blank lines in comments (sound\fm.c, fm2612.c and kas89.c) . Fixed some Clang warnings (drivers\mpu4hw.c, machine\vsnes.c and video\carpolo.c) . Disabled some Clang warning for now to improve out-of-the-box experience (src\makefile) . Added some output files in root folder (mame\trunk) to ignore list (*.exe, *.map, *.sym, obj and pdb) . Improved some version checks in makefiles and added TODO (osd\sdl\sdl.mak and osd\windows\windows.mak) . Avoid some lazy tag lookups (drivers / includes / video: backfire.c, backfire.c, boogwing.c, cbuster.c, cninja.c, crospang.c, darkseal.c, dassault.c, dblewing.c, deco156.c, deco32.c, dietgo.c, esd16.c, funkyjet.c, gotcha.c, lemmings.c, mirage.c, nmg5.c, pktgaldx.c, rohga.c, silvmil.c, simpl156.c, sshangha.c, supbtime.c and tumbleb.c). . Move some calls into machine state (drivers\alg.c, amaticmg.c, arcadia.c, astinvad.c, astrocorp.c, atvtrack.c, backfire.c, beaminv.c, berzerk.c, bestleag.c, bfcobra.c, bfm_sc1.c, blackt96.c, bnstars.c and boxer.c). . Made IRQ_CALLBACK as members to work and made usage of delegates, with few updated drivers (emu\diexec.c/h). . IRQ_CALLBACK modernization (drivers / includes / machine / video: aztarac.c, bnstars.c, calchase.c, chihiro.c, crystal.c, dcheese.c, fd1094.c, funkball.c, galaxold.c, galgame.c, gamecstl.c, gammagic.c, jaguar.c, mazerbla.c, mediagx.c, megacd.c, megadriv.c, metro.c, midqslvr.c, mie.c, model1.c, ms32.c, pcxt.c, photon.c, photoply.c, quakeat.c, queen.c, rastersp.c, savquest.c, seibuspi.c, ssv.c, su2000.c, taito_l.c, taitowlf.c, voyager.c and xtom3d.c). . Machine_notify_delegate modernization (drivers / includes / machine / video: cobra.c, galastrm.c, midzeus.c, midzeus2.c, model2.c, model3.c, n64.c, namcos22.c, taitojc.c, taitosj.c, taitotz.c and tecmosys.c) . Modernization/Cleanup of drivers 0 - L (drivers / includes / machine / video) . Started moving DEVICE_IMAGE_ functions into driver_device classes (emu\diimage.h, imagedev\cartslot.c/h, drivers\jaguar.c/h, megadriv.c/h, megatech.c, neogeo.c/h, saturn.c/stv.h, snes.h and vectrex.c/h) . Getting rid of DEVICE_IMAGE_START (emu\diimage.h, imagedev\cartslot.c/h, drivers\jaguar.c/h) . Fixed MSVC compile (lib\formats\g64_dsk.c) . Fixed Visual Studio 2010 compilation by disabling an additional warning . Improved compilation speed for optimized Visual Studio builds (emu\inpttype.h and machine\nes_mmc.c) . Fixed screen_update_gunbustr compile . Delete dependency makefiles on clean - Debugger: Fixed Qt debugger on Mac OS X 0.148 - New games: Armadillo Racing, Grasspin, Manhattan (DECO Cassette) and Rise of the Robots (prototype) - New Working games: Dragon World II, Graplop (no title screen) (DECO Cassette) and Riviera Hi-Score (2131-08, U5-4A) - New Non-Working games: Bowling Try, Football Crazy (Video Quiz), Photo Y2K 2 (Flash 3-in-1) and Sega Bass Fishing Challenge - New clones: Alien Syndrome (set 7, System 16B, MC-8123B 317-00xx), Bump 'n' Jump, Hacher (hack of Win Win Bingo), Imola Grand Prix (set 1), King Derby (bootleg set 2), Monza GP (bootleg), Penfan Girls - Step1. Mild Mind (set 2), Sprint 2 (color kit, Italy), Star Warrior, Street Fighter Zero 2 (Japan 960430), Super Cup Finals (Ver 2.2O 1994/01/13), Super Street Fighter II: The Tournament Battle (Hispanic 931005), Survival Arts (Japan) and Toride II Bok Su Oi Jeon Adauchi Gaiden (Korea) - New drivers: bowltry.c and rastersp.c - New artworks: Starship 1 (Atari 1977) at http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=300892&page=0&view=expanded&sb=5&o=&fpart=1&vc=1 - 8086 CPU . Fixed i86 shift timing . (MESS) pc.c: Fixed MC1502 floppy interface. Work around pcjx bios bug and fix pcjr nmi. Support pcjx floppies. . (MESS) pc_t1t.c: Added support for pcjx text mode and fixed pcjr 4bpp mode. - Atmel 8-bit AVR (MESS): Added CPSE, LD Z+, ST -Z/-Y/-X and ICALL opcodes. Added ATMEGA644 interrupt vectors. Fixed Z flag in CPC, SBC and SBCI opcodes. Fixed V and C flags in SBIW opcode. Fixed pop/push order in CALL, RCALL, RET and RETI opcodes. Fixed Timer 1 CTC mode. - DECO 222 CPU: Make the DECO222 handling in decocass transparent to the driver - H6280 CPU / PC Engine . Modernized core . Uninitialized variable fix (m_icount=0) . Fixed compile error on some compilers. Should hopefully improved PCE, SGX etc. as well. . Fixed H6280 disassembler hookup. Removed H6280 extraneous colons from register names, makes debugger syntax to set them less Pascal-y. . Some information for PoP (cpu\h6280\h6280ops.h) - Hyperstone CPUs: Modernized CPU cores. Korean bootlegs all work now, tested with: mosaicf2, vamphalf, dynabomb, gstream, pasha2, mrdig and boonggab. - I386 CPU: Set some features bits for Pentium 3 CPUs - M50747 / M509xx MCUs: Preliminary support for Mitsubishi M740 (M5074x/M509xx) CPU family - M6502 CPU: Cleanup CPU - M6805 CPU: Modernized core - M6809 CPU: Modernized core. Uninitialized variable fix. - I8x9x / MCS-96 CPUs (MESS): First (incomplete) stab at a MCS-96 core. Fixed divb reg,#nn. Fixed V setting on divb. Added normal and the missing div variants. Fixed for MSVC (cpu\mcs96\i8x9x.c). Preliminary Roland D-110 driver. - SSEM CPU (MESS): Modernized core. Fixed SSEM compile issue. - TMS0980 CPU (MESS): Write to the log whenever an unknown output PLA config is encountered - Z800x CPUs: Fixed some bugs in non-segmented mode (polepos.c) - Gaelco GAE1 and Gaelco CG1V sound: Modernize Gaelco sound devices - HuC6280 sound: Modernized sound device - PortMIDI: Initial commit of PortMIDI. This isn't enabled to compile yet, this is just to make it easier to run the final tests on my Mac and my Windows laptop. Enable compiling PortMidi. Tested on: Linux x64, Mac OS X 10.8 and Windows 8 x64 w/latest toolchain for both OSD=windows and OSD=sdl. MIDI should auto-disable on other OSes (*BSD) but there may be problems. Works fine on Linux when set to use the system's copy of the library as well, which many distros prefer. Fixed compile on OS X 10.6/10.7 (portmidi\readbinaryplist.c). Fixed portmidi Visual Studio warnings. Fixed portmidi library name / removed overwrite of ARCH when compiling libflac. Fixed portmidi compilation on Xcode 3.2.6 for OSX 10.6.8. - Q-Sound . Modernize the QSound device. The one that started it all. It works now. No idea what I was doing wrong before, but I'm not doing it anymore. It appears as though a clean build might be necessary for this one to take. I've tested more CPS2 games than I care to mention, a bunch of zn games, and a cps1 game and they all are happy, so we should be good. Now for the fun stuff... . Added DSP16 registers and implemented the goto opcode. Added DSP16 16-bit immediate load opcode. Fixed reset behavior. Code reorganization. Fixed compile (dsp16_device_start()). . DSP16 simplification and additional work. Fixed U64 compile issues. . Few more DSP16 opcodes & spaces->tabs - Samples sound: Adapted error messages from lib\util\chdcd.c for emu\sound\samples.c - Sega PCM sound: Modernized sound device (segahang.c, segaorun.c, segaxbd.c and segaybd.c) - SNKWave sound: Modernize sound device - Sound Blaster 16 sound . Partially implement sb16 mixer. Fixes Simcity 2000. . Removed unneeded &&1 in machine\isa_sblaster.h - VRender0 sound: Modernize sound device - YMZ770 / MPEG sound: Splitted AMM decoder from YMZ770 and added MPEG layer 1/2 support - 6522 VIA: Used core clock/attotime functions - 68681 DUART . Checkpoint of "n68681" modernized, diserial-ized 68681 device. This covers the modernization aspect; the diserial-ization comes next. Do not convert other drivers to use this yet. . Preliminary working DUART N68681 diserial-based I/O . Fixed compile on MacOSX 10.6.8 (machine\n68681.c) - AM9517A DMA: (MESS) Make Tandy 1000 286s post. Make the Tandy's and other PC compatibles use the AM9517a (mess\drivers\pc.c). They can read floppies and boot now. - HuC6202: Fixed 'typo' (prio_index, not prio_type) - I8275: Modernized i8275 Video Controller - I8275x: Added a new implementation of the Intel 8275 with accurate DMA timing (video\i8275x.c) - MC6845 CRT: Stop spamming the log file - Flash ROM: Added emulation of SST 28SF040 flash - IDE: Fixed phantom slave drive detection problem (machine\idectrl.c) - Serial device interface: Correct uninitialized data bug where the first character transmitted would sometimes fail to synch (emu\diserial.c) - Keyboard: Added support for keyboard enable command and keyboard reset command (machine\8042kbdc.c) - PLD: Added jedtest output folder to ignore list. Added a "tests" target to the makefile (jedtest.py). - SCSI: Fixed uninitialized members in wd33c93.c (MESS: Fixes ip225015 crash) - VGA: Fixed VGA PEL shift register and putted start address update behind a timer (that updates at vblank time). Fixes horizontal scrolling with anything that uses it. - SVGA . A bunch of MMIO hooks for S3 card, used on Win 95 16-bit color mode. . Fixed HW cursor color in RGB16 mode - Voodoo: Added Voodoo3-specific targets for cmdfifo packet type 5 - TMS9928 video: Fixed table mask on TMS91xx. Update note (video\tms9928a.h). - Floppy (MESS) . Removed some unnecessary checks (imgtool\modules\fat.c) . Completed the dsk support (formats\dsk_dsk.c). Correctly reach files inside zips or softlists (imagedev\floppy.c, softlist.c/h, formats\ioprocs.c/h). Avoid avoidable leaks (formats\flopimg.c). . There are 81 track ADF Amiga files out there, actually I think there can be anything from 1 track to 82 tracks, but we'll cross that bridge when we come to it (formats\ami_dsk.c). Added ADKCONR hook-up (machine\amigafdc.c/h), fixes at least sound in Ocean's Beach Volley. Log DSKDAT / DSKDATR (machine\amigafdc.c). . Be verbose about sector IDs when formatting a track (machine\upd765.c). Added FM encoding support to upd765_dsk. . Added FM encoding support to flopimg and wd17xx_dsk (formats\adam_dsk.c, comx35_dsk.c, d81_dsk.c, flopimg.c/h, smx_dsk.c, tiki100_dsk.c, tvc_dsk.c and wd177x_dsk.c/h) . Fixed drivers\bw2.c floppy loading . Fixed floppy for bw12, xerox820 and wangpc - CHDMAN . Removed unused m_props from chd_lzma_decompressor (lib\util\chdcodec.c) . Fixed result of bitstream_in::peek(0) (lib\util\bitstream.h) . chdman test (chdman\chdtest.py) . Correct remaining runProcess() calls . Added "createhd" support to chdtest.py via in.params input file . Added chdman test createhd_1 (in.params and out.chd) . Ignore hidden Unix folders. Fixed subprocess.Popen() parameter (fixes execution on non-Windows platfors) (chdman\chdtest.py). . Fixed uninitialized memory in the last hunk on CHD creation (fixes potentially different filesize with each compiler not defaulting memory to 0x00 including Visual Studio) . Fixed tests target for non-Windows platforms (makefile). - CD-ROM . Introduces concept of logical sector addresses so games see the disc with pregap/postgap sectors actually taking up sector numbers as in reality. Fixes PC-Engine CDs with hardcoded sector numbers. . Cleaned up some chdcd.c error messages (lib\util\chdcd.c) . Read ISO as binary as well (lib\util\chdcd.c) . chdman CD unit test . Added a "tests" target to the makefile (chdtest.py) . First version of chdman unit test. Fixed dependies of tests target. . Recreated all files for the chdman unittest. Added test for TOC input. . Fixed filename set in NRG track parsing. Added NRG test to chdman unit test. . Added chdman test createcd_cue_audio_silence_wav and createcd_cue_audio_silence_wav_20_tracks (in.cue, silence.wav and out.chd) . Fixed reading of NRG images. Bail out on unsupported tracks in NRG images / cleanups (lib\util\chdcd.c). . Skip without reading of Nero CD (lib\util\chdcd.c) . Improved error reporting of parse_wav_sample() and fixed potential resource leaks. Use more proper errorcodes when encountering an error when parsing an input file (lib\util\chdcd.c). . Correct comment and log message in parse_wav_sample() about channels. Correct some format specifiers (lib\util\chdcd.c) . Fixed CD-ROM getting the type of the last track, fixes PCE Bomberman '94 proto (lib\util\cdrom.c). . Added cdda_get_channel_volume() function to CD-DA device. Fixed volume control display in PC Engine CD system. - 3do.c: Fixed Panasonic 3DO logo colors. ABC of 3DO irq routines. Improved irq routine. Added very preliminary timers. NVRAM hook-up. Added Cascade mechanism, expects a DSPP irq now. RAM debug hooks (but save item doesn't yet work). - 8080bw.c . Using one flip screen variable instead of 2. Added some notes to the driver. Small driver update. . Fixed cocktail mode in Galactica and clone Space Missile. Hooked up port 7. Added Invaders samples and 'Cabinet' configuration. . Fixed cocktail mode in Indian Battle . Removed unused extra cocktail switch in Lupin III. Removed 'Cabinet' configuration. . Leaned up cocktail switch in Polaris. Removed 'Cabinet' configuration and 'Number of Controls' dipswitch. . Fixed size of video ram in Shuttle Invader and added extra prom . Fixed incorrect missile sound in Space Chaser (proof obtained from a video) (ID 02662). Added newly-discovered information about Space Chaser to the driver. . Fixed Player2 controls in Steel Worker upright cab . Fixed cocktail mode in Yosaku To Donbei. Added 2nd Player and 'Cabinet' configuration. - actfancr.c, dec0.c, dec8.c, madmotor.c, pcktgal.c and stadhero.c: Save ram properly (video\decbac06.c), added a note about flipscreen behavior as a reminder for reimplementing flips on some of these games later. - blueprnt.c: Small cleanup. Get rid of "from the next row", it also broke cocktail mode. - bublbobl.c: Fixed cocktail mode in Bubble Bobble and Tokio / Scramble Formation (ID 04903) (ID 04904) - cps1.c . Modernize the QSound device. Added DSP16 registers and implemented the goto opcode. Added DSP16 16-bit immediate load opcode. Fixed reset behavior. Code reorganization. . Added C632B.IC1 PAL to Captain Commando (World 911202), confirmed identical to C632.IC1. . Added missing documentation to Ganbare, removed some incorrect notes and added missing B-Board and C-Board PALs. . Reordered Punisher sets, added missing punisherh B-Board code, confirmed D9K2.9K in punisherj. . Added C632B.IC1 PAL to clones Street Fighter II: The World Warrior (World 910228) and (USA 910228), confirmed identical to C632.IC1. . Fixed one label in sf2ui according to the real board - cps2.c . Modernize the QSound device. Added DSP16 registers and implemented the goto opcode. Added DSP16 16-bit immediate load opcode. Fixed reset behavior. Code reorganization: The one that started it all. It works now. No idea what I was doing wrong before, but I'm not doing it anymore. It appears as though a clean build might be necessary for this one to take. I've tested more CPS2 games than I care to mention, a bunch of zn games, and a cps1 game and they all are happy, so we should be good. Now for the fun stuff... . Reordered csclubj set . Documented an alternative SIMM card configuration for clone Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB) - crystal.c: Modernize Vrender0 sound device. Find a better way in the Crystal System driver to get a typed Vrender0 device. - ddenlovr.c, dynax.c and royalmah.c: Fixed MSM6242 RTC regressions regarding interrupt callbacks (ID 05088). Fixed hang on savestate load (machine\msm6242.c). - dec8.c: Make the DECO222 handling transparent to the driver - decocass.c . Refactor the type1 dongle code a bit, to make any future additions easier. Make the DECO222 handling in decocass transparent to the driver. Added proper x-scroll handling for the decocass background, and some notes for further cleanup work regarding the background 'tilemap' - this improves Manhattan and several others. Some working notes, comparisons with reference videos. Note: The Astro Fantasia and Graplop videos we have are for different (undumped) revisions of the game, I suspect there are many and that Data East used this system as a cheap way to prototype games. . Fixed Visual Studio warning about use of potentially uninitialized variable. . Added proper x-scroll handling for the decocass background, and some notes for further cleanup work regarding the background 'tilemap' - this improves Manhattan and several others. . Clone Graplop (no title screen) needs to read something or you can't coin it up. Fixed video (Game now playable). . Super Astro Fighter expects to be able to read back data written to paletteram. This fixes game colors went completely (ID 01218) . Fixed scrolling in Super Astro Fighter (the background is only used for the title screen) (ID 01217) . Fixed playfield suddenly flipped in Fighting Ice Hockey, when you approach to goalkeeper (ID 00422) - dynax.c: Fixed MSM6242 RTC regressions regarding interrupt callbacks - ecoinf1.c: Added a couple of notes - ecoinf3.c . Fixed "comparison is always true due to limited range of data type" warning on OS X . Misc FM bits. Added 7x buttons. Fixed dipswitches. - ecoinfr.c: Added some fruit machine notes. Swizzle 7-seg data so it's readable. Misc FM bits. Converted files to a format we can use (they're also in the wrong place, I'll move them later). - fcrash.c: Fixed clones Street Fighter II': Magic Delta Turbo (bootleg, set 1)/(bootleg, set 2) crashed after OK (ID 05097) - fromanc2.c: Fixed 'Taisen Idol-Mahjong Final Romance 2 (Japan)' and Taisen Mahjong FinalRomance R (Japan) freeze after reload (ID 05084) - funkball.c, midqslvr.c, savquest.c and xtom3d.c: Correct slave_ack configuration member declaration - gaelco2.c: Modernize Gaelco sound devices - galaxold.c: Fixed cocktail mode in Bongo and Ozon I - gottlieb.c: Document Argus' game ID as GV-101, derived from a tag on the wiring harness of one of the prototype machines, which had been converted to a prototype Q-bert later on at Gottlieb. - harddriv.c: Added sound to Hard Drivin's Airborne and Street Drivin' - igs011.c: Emulated the bitswaps protection for lhb2 and vbowl/vbowlj instead of patching rom - kaneko16.c and galpanic.c: Removed calc3_t in machine\kaneko_calc3.c (the compiler didn't crucify me for this?) - karnov.c: Fixed flip screen (ID 04937) - konamigq.c, konamigv.c, ksys573.c, namcos10.c, namcos11.c and namcos12.c, taitogn.c, twinkle.c and zn.c: Removed psx_state, all code shared between MAME and MESS is now in src\emu - lasso.c: Fixed missing sound in Lasso, Chameleon and Wai Wai Jockey Gate-In (ID 05094) - liberate.c: Replaced M6502 CPU2 with DECO 222 - m72.c: Fixed cocktail mode in airduel and imgfight (background pushed 1/2 off right side when flipped) (ID 04940) - merit.c . Further Merit input & dipswitch corrections / improvements and some additional documentation updates. . Cleaned up the Merit word based game sets and correct various program rom labels. Also cleaned up the inputs and gave them a ZXCVB key layout. Reordered the driver a bit to group gambling and word based games. . Correct the inputs and dipswitches for Big Apple Games and gave it a standard draw poker button layout. . Correct the ROM names for Casino Five and game description. Added gambling control and dipswitch 'Maximum Bet'. Removed button 6. . Added gambling control to couple, dtrvwz5, phrcraze, pitboss, tictac, trvwz2, trvwz3h, trvwz4 and trvwzh . Fixed input in Riviera Hi-Score (Game now playable) . Splitted 'Trivia ? Whiz (Horizontal) (question set 1)' into 'Trivia ? Whiz (6221-00)' and clone 'Trivia ? Whiz (6221-00, with Sex trivia)'. Removed clones '(Horizontal) (question set 2)' and '(Vertical) (question set 2)'. - meritm.c . Minor doc update/correction . Correct length for gfx2 in Dodge City clones to fix graphics regression. Doesn't get it to fully work though! - metro.c . Added work RAM mirror (fixes Toride II Adauchi Gaiden intro) . Halved palette size . Correct video chip model and offsets in several games . I4220 supports 16x16 tiles . Changed region gfx3 to gfx2 in blzntrnd and gstrik2 . Fixed OKI6295 clock speed, VSync and palettesize in Varia Metal . Added PCB layout for Korean version of Toride II Adauchi Gaiden - model1.c: De-skeletonized Sega Z80 type Digital Sound Board, hooked up to Star Wars Arcade. - model2.c: Hooked up Z80 digital sound board to Sega Touring Car Championship - model3.c: Hooked up Z80 digital sound board to Scud Race Twin - mw8080bw.c . Using one flip screen variable instead of 2 . Fixed Player 2 controls in clones Darth Vader (bootleg of Space Invaders) and Alien Invasion upright cab . Fixed Player 2 controls and cocktail mode in clone Super Invaders (Zenitone-Microsec) . Turned 2 cabinet switches into 1 in clones Cosmic Monsters / 2, and fixed cocktail mode. . Fixed cocktail mode in clones Space War (Sanritsu) and Space War Part 3 - mystwarr.c: Allow 16-bit games to use the K053936. This fixes gaiapols and mmaulers crashes to prompt after a few seconds (ID 05050). - namcos12.c and namcos23.c: Fixed Epson R4543 RTC wrong day shown (rtc_clock_updated day_of_week is 1-7), and possible array out of bounds access. - namcos23.c . Note on unknown port. Order/layout is less spaghetti now. Don't bother looking at the huge .diff, there are no other changes. . Small update, you can now navigate in 500 GP testmode . Added 2nd Player to crszone, downhill, finfurl2, gunwars, motoxgo, panicprk, raceon and timecrs2 - naomi.c . Updated a few previously unknown NAOMI game numbers . Added new 317-0379-jpn.pic for 'Initial D Arcade Stage Ver. 3 (Japan) (Rev. C) (GDS-0032C)' and clone (GDS-0032B) - neodrvr.c: Added uPD4990A clone to the uPD1990A, renamed uPD4990A -> uPD4990A_OLD for the time being (core used by Neo-Geo / Neo-Print, will be nuked at some point) - pacman.c: Crazy Otto history writeup and documentation - pgm.c . Correct header comment (machine\pgmprot6.c) . Command pair for command_handler_py2k2 is the same as kov (machine\pgmprot1.c) . Added Dragon World II protection patch (Game now playable) . Added Photo Y2K 2 (Flash 3-in-1) decryption - segaorun.c: Shift Out Run/Turbo Out Run sprites by 1 pixel in the x direction, reference point turbo outrun course map, real hardware isn't glitched like MAME was - sidearms.c: Added DIP locations to Dyger, Side Arms, Turtle Ship and Twin Falcons - snk.c: Modernize SNKWave sound device - stv.c: Worked around comparison is always true error (machine\stvcd.c) - taitosj.c: Added partial DIP locations for Elevator Action and Front Line - vicdual.c . Fixed coin timing regression . Fixed coin timing regression in VIC Dual driver. This fixes corrupt input and sound in Depthcharge (ID 05086). - zn.c . Modernize the QSound device. Added DSP16 registers and implemented the goto opcode. Added DSP16 16-bit immediate load opcode. Fixed reset behavior. Code reorganization. . Restored the previously dumped sound ROM in Strider 2 and clones, correct size is really 16Mbit. - 18 Holes Pro Golf: Replaced M6502 CPU1 with DECO 222 in (set 1). Replaced M6502 CPU1/2 with M6502 (500000 Hz) CPU1 and DECO CPU-6 (1.5MHz) CPU2 in clone (set 2). - Alien Syndrome: Decrypt sound rom in clone (set 7, System 16B, MC-8123B 317-00xx) - Amiga (alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) . Added preliminary artwork LEDs for Commodore Amiga (open to suggestions) . Added LOF bit in Amiga emulation, used by Twintris to boot (machine\amiga.c) . Added ADKCONR hook-up (machine\amigafdc.c/h), fixes at least sound in Ocean's Beach Volley . Log DSKDAT / DSKDATR (machine\amigafdc.c) - Bagman: Correct how cocktail mode in game is set. Note: Cocktail mode is set by grounding a pin on the edge connector, not a dipswitch (verified this on a real PCB and the schematics even show this correctly). - Blaze On: Load duplicate gfx1 roms - California Chase: Correct memory map to 64kb blocks and access to PAM register. Removed execution hack. - Crater Raider: Fixed char color offset (ID 05091) - Dambusters: Fixed crash on noise enable (ID 05087) - Dragon's Lair 2: Added some notes - Football Crazy (Video Quiz): Moved roms 95751937.bin/hex from 'Football Crazy (Bellfruit) (Scorpion 4) (set 1)' to build 'Football Crazy (Video Quiz)'. Note: The roms contains PC-like references and 'Rasterspeed' stuff - the only other reference I find to this is on unmamed regarding 'Zool'. - Galaxian: Swapped gfx1 rom load for clone Galaxian (Taito) to produce correct colors so it matches the other sets. - Go! Go! Connie: Converted to use the new PCE video core. Added OKI6295 and RTC. - Imola Grand Prix: Driver rewrite in progress, but going slow. - Kokoroji 2: Added CD-ROM hook-up - Kuru Kuru Pyon Pyon . Added ADPCM sound. Added port 0 placeholder. Added msm5205_playmode_w. Fill in verifications from Charles MacDonald. . Added crazy bankswitch based on findings by Charles MacDonald . Added technical and general notes. Added a brief 'how to play' and bookkeeping instructions. . Hooked the YM2149 output ports and logged the writes for testing purposes. Defined any clock used. Cleaned up a bit the driver. . Fixed the Coin 1 jam, added 'Medal In' input, reworked dipswitches involved, and modified/added some notes about the behavior. . Fixed YM2149 sound, fixed some memory map offsets and added some port mirrors. Added/correct some technical documentation. . Added hopper emulation. The game is now working properly without jams. Also added coin counters, coin lockout and some extra documentation from Charles MacDonald. . Added proper mirrors for V9938 VDP and bankswitch selector ports. - Missile Command . Fixed corrupt graphics (ID 05077) . Moved some functions into the missile_state class - Monza GP . Use bootleg rom 2.13f to fill in for missing rom in parent set. Marked as BAD_DUMP instead of nothing or marking as NO_DUMP. . ROM 9.10j was verified in Monza GP. - Moon Patrol: Fixed cocktail mode (ID 04938) - Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion: Save sprite RAM in savestates (ID 04555) - PinMAME . s11.c . Fixed S11 timer IRQ to main CPU. Correct main CPU type to M6802 (fixes factory setting display on first boot). Correct LED type for ball display (layout\s11.lay). Improved background music board communications, and adjusted clock of the 68B09E. Changed main IRQ timing based on schematics. Removed YM2151 reset from s11 and s11a, as this is not hooked up on background music boards used on these systems. Made background board communications two-way. Made driver class be derived from the s11 driver class, to reduce code duplication. . Fixed audiocpu clock; this fixes the speed of music in High Speed and the pitch of the voices in Black Knight 2000. Some more fixes to the S11 IRQ generation for the main cpu in Williams System 11 pinballs. . Yet another system 11 irq speed fix: Correct the E clock frequency used for the IRQ generation. Hopefully more games will pass their IRQ self-test now. . Added some notes regarding among other things, what keys need to be held down to play with the system 11 games. . s11a.c . Fixed S11a timer IRQ to main CPU. Correct main CPU type to M6802 (fixes factory setting display on first boot). Added 'Language' configuration. Rearranged S11a score layout and added the proper diagnostic LED. Hooked up S11a background music board communication, and implemented music board banking. Correct LED type for ball display (layout\s11a.lay). Actually map the background sound bank register. Improved background music board communications, and adjusted clock of the 68B09E. Changed main IRQ timing based on schematics. Removed YM2151 reset from s11 and s11a, as this is not hooked up on background music boards used on these systems. Made background board communications two-way. Made driver class be derived from the s11 driver class, to reduce code duplication. Improved background music board banking a bit, but still not the CVSD. . Fixed audiocpu clock; this fixes the speed of music in High Speed and the pitch of the voices in Black Knight 2000. Some more fixes to the S11a IRQ generation for the main cpu in Williams System 11 pinballs. . Yet another system 11 irq speed fix: Correct the E clock frequency used for the IRQ generation. Hopefully more games will pass their IRQ self-test now. . s11b.c . Get some games running. Still some issues to iron out, though. Improved background music board communications, and adjusted clock of the 68B09E. Some music can now play in System 11B games. Changed main IRQ timing based on schematics. Made background board communications two-way. Added HC55516 to s11b background music hardware. Made s11b driver class derived from s11 driver class to reduce code duplication. Improved background music board banking a bit, but still not the CVSD. . Fixed audiocpu clock; this fixes the speed of music in High Speed and the pitch of the voices in Black Knight 2000. Some more fixes to the S11b IRQ generation for the main cpu in Williams System 11 pinballs. . Yet another system 11 irq speed fix: Correct the E clock frequency used for the IRQ generation. Hopefully more games will pass their IRQ self-test now. . Added some notes regarding among other things, what keys need to be held down to play with the system 11 games. . Writes to 0x68xx appear to pulse the BG CVSD clock input . s11c.c . Preliminary start to System 11C. Games run, but there are issues with either the DAC and/or HC55516 . Improved background music board banking a bit, gets the DAC working on S11c, but still not the CVSD. . Speech output on s11c games now works . s3.c, s4.c, s6.c, s6a.c, s7.c, s8.c and s9.c: Provided an extra row of inputs . Fixed rom loading for Mousin' Around! . Fixed rom loading for Police Force - Pocket Gal: Replaced M6502 CPU2 with DECO 222 in Pocket Gal (Japan) and clone (bootleg). - Queen?: Splitted BIOS region into 64kb blocks. Implemented missing PAM registers. Removed unused PAM regions. Correct CPU type (Replaced PENTIUM CPU1 with Pentium III). Correct slave_ack configuration member declaration. - Rise of the Robots: Added preliminary emulation of the NCR 53C700 SCSI I/O processor. Hastily move the display list parsing outside of screen_update() or else things will break with frameskipping enabled. - Savage Quest: Splitted BIOS region into 16kb blocks. Implemented missing PAM registers. - Shoot Out: Replaced M6502 CPU1 with DECO 222 - Solomon's Key: Added DIP locations - Super Doubles Tennis: Fixed missing sound (ID 05090) - Super Othello: Verified msm5205_playmode_w. Noticed nonstandard INPUT_PORT indentation. - Super Real Mahjong P6: Modernize the NiLe sound device - The Legend of Silkroad: Added DIP locations. Restored bad_dump flag about questionable gfx1 rom. - Turbo Sub: Modernized Entertainment Sciences Real Time Image Processor (ESRIP) core. Uninitialized variable fix (m_icount=0). - Waku Waku Doubutsu Land TonTon . Added hopper emulation . Fixed the VDP V9938 VRAM . Defined clocks for CPU and YM2149 . Fixed inputs to be consistent with other Success games . Added coin lockout - Win Win Bingo: Added sprites rom mx29f1610mc.u30 from clone (set 2) to parent (set 1) - Xevious: Correct the rom names and locations for clone Xevios. Added the PAL dump for the Xevious bootleg and marked the game as wrong sound because it does not use any of Namco custom MCU's but instead a 4th Z80. - Input port: Fixed joystick constraint computations when multiple sources are possible (emu\ioport.c/h). Fixed crash on exit. - Dipswitch fixes in 8080bw.c, ecoinf3.c, metro.c, merit.c, sidearms.c and survarts - Fixed rom names in merit.c, taito_f3.c and xevios - Renamed (bnj) to (bnjm), (imolagp) to (imolagpo), (scfinals) to (scfinalso) and (sfz2j) to (sfz2jr1) - Description changes of Big Apple Games (2131-13, U5-0), Bump 'n' Jump (Midway), Casino Five (3315-02, U5-0), Cluster Buster (DECO Cassette), Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5), Ganbare! Marine Kun (Japan 2K0411), Graplop (no title screen) (DECO Cassette), Imola Grand Prix (set 2)', Cow Race (King Derby hack), Penfan Girls - Step1. Mild Mind (set 1), Phraze Craze (6221-40, U5-0), Phraze Craze (6221-40, U5-0A), Phraze Craze (6221-40, U5-3 Expanded Questions), Phraze Craze (6221-40, U5-3A Expanded Questions), Phraze Craze (6221-45, U5-2 Vertical), Tic Tac Trivia (6221-22, U5-0 Vertical), Tic Tac Trivia (6221-23, U5-0C Horizontal), Trivia ? Whiz (6221-00, Alt Gen trivia), Trivia ? Whiz (6221-02, Vertical), Trivia ? Whiz (6221-04, Edition 3 Vertical), Trivia ? Whiz (6221-05, Edition 2 Alt Sex trivia), Trivia ? Whiz (6221-05, Edition 2), Trivia ? Whiz (6221-05, Edition 3 Sex trivia III), Trivia ? Whiz (6221-05, Edition 3), Trivia ? Whiz (6221-13, U5-0B Edition 4 Alt Sex trivia) and Trivia ? Whiz (6221-13, U5-0B Edition 4) - MAME . Enabled multi-threading (mame -mt) by default on Windows . Fixed unitialized memory in osd_file (windows\winfile.c) . Move default_texture creation into device_create_resources. Should fix intermittent crashes when alt-tabbing back to a full-screen instance of MAME (windows\drawd3d.c). . Added missing initializations in default rectangle constructor (src\lib\util\bitmap.h) . HLSL . Added bounds-checking on presets to HLSL . Cleaned up HLSL render target management. May provide better behavior in games that use multiple resolutions, e.g. tekken3 and STV. . Fixes HLSL bugs with Rocket Knight Adventures (osd\windows\d3dhlsl.c/h, drawd3d.c/h and winmain.c) . Fixed HLSL crash when using presets . Restored old HLSL prescale behavior, with 0 being auto-detect . Added new PRIMFLAG macros pertaining to vectors, to be used by the OSD (emu\render.c) . Began laying the groundwork for vector post-processing, disabled by default (windows\d3dhlsl.c) . Clamp hlsl_prescale_x/y to a minimum of 1 (windows\d3dhlsl.c). Fixes crashes when using -nomaximize switch. . Free HLSL resources on device reset. Fixes hang when alt-tabbing away from a fullscreen window and back (windows\d3dhlsl.c) . Added missing initialization of memory_share.m_next (emu\memory.h) . Handle binding_type_exception in running_machine::run() - gives proper error with apollo.c before assert (emu\machine.c) . Skip non-configurable slot options in -listxml . Try a slightly better hashing function (lib\util\tagmap.h) . Placed back schedule change but with fixed logic (emu\schedule.c) . Added an assertion to catch a bad scenario in emu\schedule.c . Removed some unused AM_*_LEGACY macros (emu\addrmap.h) . Added '53C7xx SCSI' and 'SCSI HARDDISK' device - SDLMAME . Experimental Qt-based SDL debugger . Qt debugger support cleanup, fixed OS X crash. . Made QT debugger compiles under windows SDL build . Added MESS-related manpages . Autodetect Ubuntu 12.10 and work around faulty default compiler (osd\sdl\sdl.mak) . Fixed SDL "Illegal integer value for numprocessors: "auto"; reverting to auto" . Removed -mwindows I have added recently makes console unusable (osd\sdl\sdl.mak) . Work around Qt differences between Fedora and everyone else. - Compiling . Added CPPCHECK makefile define - it contains the path to the Cppcheck binary . Removed unreachable code detected by Cppcheck (cpu\arm7\arm7.c, cpu\dsp56k\inst.h, tables.c, cpu\hd61700\hd61700.c, cpu\i386\i386.c, i386ops.c, cpu\i86\instr286.c, emu\distate.c, emu\machine\wd_fdc.c, emu\rendlay.c and mame\video\n64.c) and (cpu\mn10200\mn10200.c, drivers\backfire.c, s3.c, s4.c, s6.c, s6a.c and s7.c). . Fixed some Cppcheck warnings about format identifiers and duplicated enum . Bumped Visual Studio warning level to 4 and disabled most of the new warnings (src\osd\windows\vconv.c) . Added translation of -Wno-sign-compare . Fixed for MSVC (cpu\mcs96\i8x9x.c) . Added make define MSVC_ANALYSIS to run Visual Studio code analysis (osd\windows\windows.mak) . MSVC compilation fixes (osd\windows\eivc.h, vconv.c, d3dhlsl.h, drawd3d.h and windows.mak) - Debugger . Qt debugger support cleanup, fixed OS X crash. . Log all unhandled exceptions in running_machine::run() / handle bad_cast exceptions thrown by dynaic_cast - gives proper error in osc1000b and pippin now (emu\emucore.h and machine.c). 0.147u4 - New games: Gachaga Champ (GE877 VER. JAB), Ganbare Marin-kun (Marine 2K0411 JPN), Head On (bootleg on dedicated hardware), Jong Yu Ki (Japan) and Kuru Kuru Pyon Pyon (Japan) - New Non-Working games: Beatmania III Append 7th Mix, Beatmania III The Final, Dragon's Lair 2: Time Warp (US v3.19), Pop'n Music 4, Pop'n Music 6, Pop'n Music 8, Pop'n Music Animelo 2, Raizin Ping Pong, Riviera Hi-Score (2131-08, U5-4A) and Space Ace (DL2 Conversion) (US v1.3) - New clones: Astrians (clone of Swarm), Bomber (bootleg of Scramble), Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2), Donkey King, Dragon's Lair 2: Time Warp (Euro v3.16), Dragon's Lair 2: Time Warp (Euro v3.19), Dragon's Lair 2: Time Warp (Spanish v3.15), Dragon's Lair 2: Time Warp (Spanish v3.19), Dragon's Lair 2: Time Warp (US v2.11), Dragon's Lair 2: Time Warp (US v3.00), Dragon's Lair 2: Time Warp (US v3.12), Dragon's Lair 2: Time Warp (US v3.14), Dragon's Lair 2: Time Warp (US v3.15), Dragon's Lair 2: Time Warp (US v3.18), Final Lap 3 (bootleg), Frogger (Scramble hardware), Ghost Muncher, Gun Champ (newer, Super Shot hardware), Jr. Pac-Man (speedup hack), Mechanized Attack (US, Single Player), Moon Crest (Moon Cresta bootleg), Mystic Marathon (prototype), Phoenix (Irecsa / G.G.I Corp, set 4), Pleiads (bootleg set 2), The Punisher (Hispanic 930422), Riviera Hi-Score (2131-08, U5-4), Rolling Thunder (rev 2), Royal Casino (D-2608208A1-1, Larger Board), Royal Casino (D-2608208A1-1, Smaller Board), Scramble (Stern Electronics set 2), Se Gye Hweng Dan Ultra Champion (Korea), Space Ace (DL2 Conversion) (Euro v1.3), Space Chaser (set 2), Space Chaser (set 3), Space Combat (bootleg of Space Invaders), Star Wars (bootleg of Galaxy Wars, set 2), Street Fighter II': Champion Edition (M8, bootleg), Street Fighter II': Magic Delta Turbo (bootleg, set 2), Sunset Riders (4 Players ver JAC), Super Earth Invasion (set 3), Witch, World Class Bowling (v1.3J, Japan), X-Men: Children of the Atom (Euro 950331) and Zero Point (Japan) - New drivers: bfm_ad5.c, bfm_ad5sw.c, dlair2.c, headonb.c, jpmimpctsw.c, jpmsys5sw.c and kurukuru.c - New artworks: alpine, geebee, gng, invaders, invadpt2, monopoly, spacezap, superpac, videopin and wwfmania.zip (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here) - H8/3xx CPUs . Preliminary H8S/2655 support . Fixed so RTE doesn't allow the PC to go outside the address space . Supported additional forms of BTST and BSET . Removed incorrect halt on BVC/BVS instructions . H8S analog I/O is now routed to the driver like in the original H8s (cpu\h83002\h8.h and h8speriph.c). - M6502 and TMS57002 CPU: Snakes in an emulator (Compile with Python). Fixed python to use env variable as described in root makefile; fixes builds on windows with spaces in the path. - TMS32031 CPU: Added internal boot loader programs to the TMS3203x core and support a switch between microcomputer (bootloader) and microprocessor modes via the TMS3203X_MCBL input. This is required for Rise of the Robots, whose boot code jumps into the middle of the bootloader ROM. Changes tested with primrage, sfrush and speedup. - Z800x CPUs . Fixed some incorrect Z800x opcodes and address register math in segment mode. Olivetti M20 (MESS) now can boot PCOS to the prompt. . Implement Z8001 separate program/data address spaces (cpu\z8000\z8000ops.c) - YMZ280B sound: Improved external memory handling (firebeat still needs that hack tho) - CGA: Added proper char roms for Wyse700. NOTE: They are not properly hooked yet. - CHDMAN . Added ISO support to CHDMAN and as mountable image device (util\chdcd.c). Added ISO to supported CDROM images lists (imagedev\chd_cd.c). Give error in cases when track size is not one of supported (util\chdcd.c). . Added .cdr as a synonym for .iso, as seen on e.g. archive.org . Fixed CDROM extensions in listmedia (imagedev\chd_cd.c) - Floppy (MESS) . c1581.c: Modernized floppy, WIP. . floppy.c: Fixed floppy index pulse generation when motor is always on. Default on Floppy head 0, not 1. Added floppy macros for declaring modern floppy formats. The generic floppy formats (D88/DFI/IMD/IPF/MFI/MFM) are now automatically supported in each driver using the modern floppy code. Added some floppy formats and TWOSID signal. Added some more floppy types (FLOPPY_525_SD_35T and FLOPPY_525_SD). Added 8" DSSD floppy type, WD177x inverted bus, and fixed DSKCHG signal. Fixed bw2 floppy format and FDC clock. Fixed sf7000 floppy. Improved Olivetti M20 keyboard and floppy handling. Added a more descriptive error message when it fails to identify the image format. . imd_dsk: Fixed formats\imd_dsk.c. Accept IMD versions with single-digit minor. Merged the common parts of D88/IMD (PC floppies: formats\d88_dsk.c, flopimg.c/h and imd_dsk.c). . pc98fdi_dsk.c: Added its specific almost raw PC98FDI disk format. . smx_dsk.c: Made Orion use new floppy system. . tiki100_dsk.c: Added tiki100 floppy sector skew and fixed PSG output mode. . tvc_dsk.c: Updated TVC HBF to use new floppy system. . upd765: Moved upd765 and wd1772 to src\emu. Externalized the fdc from upd765. Changes upd765 to busy flag, r/w sector increment and reset int. Revert upd765 sector increment behavior and don't change chs address on error. Removed unused variable in upd765. . wd_fdc: Renamed wd1772 to wd_fdc. Added comments on the wd_fdc family. Changed the wd_fdc feature functions into bools, and use the correct pll for each chip. Describe wd_fd track when formatting. wd_fdc FM support, need to review all timings. Enhance floppy ready support. Interrupt on wd_fdc ready support. Floppy restore/recalibrate is supposed to work like this. Fixed wd_fdc sector sizes and (most) timings. Still need to fix up the timings w.r.t head loading and settling time. Changed wd_fdc fd179x timings to be tighter. When wd_fdc seek is done put head on loaded. On wd_fdc restore even if on same track wait stabilization time. wd_fdc side compare (bit 2) is 0 for disable side compare. This makes Specialist MX (MESS) to boot properly. - I8243 Port Expander: Fixed write handler regression following DEVCB2 conversion (othello.c, segag80r.c and segas16a.c) - I8275: Refactored i8275 to use bitmap_rgb32 - MSM6242 RTC . Cleanups and basic modernizations in preparation for other work . Implemented save states . Changing to be based on dirtc.h . Modernized the RTC code. Timer now only fires when it needs to (i.e. - trigger an interrupt). This should result in performance gains for games/systems using this code. - PLD (Programmable Logic Device): Added the ability to view peel18cv8 jed files to the jedutil - PSXCPU: Preliminary DCPL GTE opcode (cpu\psx\gte.c) - SCSI: Set interface name to SCSI harddisks so they can be mounted as softlist items. Added interface for SCSI cdrom, but named it "cdrom" since medium is always same (machine\nscsi_cd.c, nscsi_hd.c, scsicd.c and scsihd.c). - uPD1990AC: Preliminary support for Test Mode in upd1990a RTC device. Fixed Balance of Power (don't ask why the same exact MS-DOS version behaves differently on this ...). Perhaps PC-9801RS uses upd4990 instead, I don't know. - 8080bw.c . Fixed cocktail mode in a few 8080bw games . Fixed flipscreen in clone Space Ranger (bootleg of Space Invaders). Note that the playfield is intentionally reversed; you are in a boat trying to spear fish below you. . Improved ports a bit in clone Space Combat (bootleg of Space Invaders), added sound and improved timing . Added inputs to clone Space Combat (bootleg of Space Invaders), found and patched bad byte. Suggest redump of first rom. Give game its own machine config. . Fixed cocktail mode in Darth Vader (bootleg of Space Invaders) and Space Combat (bootleg of Space Invaders) . Fixed player inputs in Polaris upright cabinet. Fixed recent crash. . Cleaned up cocktail mode in Space Chaser. Fixed 2nd player in clone Space Chaser (CV version) upright cab. Added notes and DIPs from MisfitMAME and fixed typos. . Give Shuttle Invader its own machine config . Added DIP locations to Space Laser . Fixed player 2 controls for Invader's Revenge upright cab . Fixed Player 2 controls in Vortex . Fixed cocktail mode in Rolling Crash / Moon Base . Fixed cocktail mode in Shuttle Invader and Sky Love - astrocorp.c: Fixed an error in the driver with one of the crystals listed - coinmvga.c: Map ROM mirror at 700000 in driver, might even be right. - cps1.c and fcrash.c . Updated and realigned games table in the CPS1 video driver. Minor fixes. Small cleanup. . Added CCPRG.11D PAL to clones Captain Commando (World 911014) and (Japan 910928) . Fixed clone Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1) . Replaced the old PAL S224B.1A in Final Fight with the one coming from the real dump . Fixed sound in clone 'The King of Dragons (bootleg)'. Added notes and fixed flashing when hit instead of disappearing. . Identified and documented qadj as a genuine Japan Resale Ver. board . Added QAD63B.1A PAL to clone Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921) . Redumped TN2J_09.12A to match real PCB and added missing documentation to 'Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123)'. Added TN2292.1A PAL. . Added some extra dipswitches for sf2amf, added some more (not working) bootlegs and some consistency fixes, many thanks to Jackc for pointing me to all the necessary documentation. . Fixed video and sound in clone Street Fighter II': Magic Delta Turbo (bootleg, set 1). Moved sf2mdt (bootleg, set 1) and sf2mdta (bootleg, set 2) to fcrash.c. Emulated the Z80, YM2151 + 2xMSM5205 sound. Implemented the correct irq line. Hooked up the input and dip switch reads. Hooked up the scroll and layer enable register writes. Allowed use of separate bootleg sprite ram in the driver. . Fixed sf2mdta and inproved sf2mdt: Removed hack for row scroll table address in sf2mdt (bootleg layer render code doesn't use table, and the game isn't writing the address anywhere, hence the presence of the hack). Aligned scroll 2 layer in sf2mdt. Boosted interleave when writing sound command to fix the issue of voice's being dropped. Decoded graphics in sf2mdta correctly. Hooked up sf2mdta reads and writes the same as sf2mdt with different a layer write layout. Hooked up sf2mdta work ram. . Fixed crash at start in clone Knights of the Round (bootleg). - cps2.c: Added digital volume control. I have attached a patch which allows CPS-2 games to use their digital volume (up & down) buttons. The buttons are mapped to the usual MAME volume up & down buttons, and the test screen sound sliders work, as does the expected change in actual sound volume. I have also added support for disabling the volume slider in the test menu, as used by the single board games (eg, mvscjsing). These games didn't have the digital controls (they replaced them with a volume knob), and the test screen shouldn't display the slider (confirmed by Smitdogg). - dlair2.c: Added skeleton driver for Dragon's Lair 2: Time Warp. Added some notes to assist initial development. - ertictac.c: Added Acorn Archimedes KART device. Fixed various bugs with Acorn Archimedes IRQs (machine\archimds.c). Emulated the KART, but RISC OS still hangs due of something. - firebeat.c . Improved external memory handling (firebeat still needs that hack tho) (sound\ymz280b.c) . Dumped missing security dongle for Pop'n Music 5 . Redumped BAD_DUMP discs for Pop n' Music 7 and verified security dongle against new dump . Redumped BAD_DUMP audio disc for ParaParaDancing; audio now syncs with graphics . Dumped missing audio CD for ParaParaParadise . Redumped BAD_DUMP discs for ParaParaParadise v1.1 - galdrvr.c: Clarify some titles - ksys573.c . Changed flash access to use 16 bit handlers . Added PCMCIA flash card layout and renamed dumped roms to match new positions. . Updated PCMCIA card layout and added 'back' (PCMCIA CONNECTOR), based on pictures from Guru. . Added GunMania PCMCIA dump, but it fails the checksum. The rom layout of the rear of the card appears to have been the wrong way round. . Added a note about the different chip type used on Gachaga Champ - megadrvb.c: MegaCD precursor to proper cleanups. Note: Rather ugly for now, the code *should* be collapsible to a single set of functions but we're not there yet, not even close, lots of push and pull of system specific bits needed before everything is in the right place. NeoCD/SegaCD/SCD, code reduction (machine\megacdcd.c). SCD / NCD stuff. Move some system specific stuff out of the CDC. Removed hacks (machine\megacdcd.c). - naomi.c: Dumped 317-0379-JPN PIC for 'Initial D Arcade Stage Ver. 3 (Japan) (Rev. C) (GDS-0032C)' - nbmj8891.c: Fixed crashing regression in most games - neodrvr.c . Correct romname on US BIOS for NeoGeo . More NeoGeo / CD cleanups, improves sound for NCD. Reset the YM2610 when resetting the Z80, seems to avoid some lost sounds in neocdz crsword2 + misc cleanups. Stop "neocdz lresort" and "neocdz kof98" from stomping over their own Z80 data. . Added Universe Bios (Hack, Ver. 3.0). Note: Add -bios 21 on command-line to access it. - polepos.c: Fixed some incorrect Z800x opcodes and address register math in segment mode - segae.c and megatech.c: Fixed 315-5124 copy/paste error that caused FluBBa's "Offscreen Y, col" test to fail for the game gear VDP - segas16a.c: Fixed missing speech in shinobi, aliensyn2 and quartet (ID 05063) - toaplan2.c: Bulk replace of Jumper settings from DIP-switches menu to Game Configuration - AGEMAME . acesp.c: Shuffle some more incorrectly placed sets around . aristmk5.c: Added Acorn Archimedes KART device. Fixed various bugs with Acorn Archimedes IRQs (machine\archimds.c). Emulated the KART, but RISC OS still hangs due of something. ugs with Acorn Archimedes IRQs (machine\archimds.c). Emulated the KART, but RISC OS still hangs due of something. Attempt fixing AAKART in blind faith. . bfcobra.c, mpu4vid.c: Bring 6850ACIA IRQ line into standard usage (ASSERT_LINE = IRQ active) . bfm_sc1/2.c: Fixed some other wrong placed / wrong named bits . bfm_sc1.c: Started giving sc1 the same documentation makeover. Various sc1 note updates. Further sc1 sorting, some sets moved to sc2 and maygay1. . bfm_sc2.c: Helper functions to aid in further cleanup. Make said helper function a bit more helpful. SC2 notes / sorting / moved a set which has the wrong filename. Improved some more set documentation. Move incorrectly placed set from sc2 -> sc1. One of the SC2 Golden Casino sets was actually the Dot Matrix rom for said game, removed the set and hooked it up instead. . bfm_sc4.c: Giving various SC4 games correct reel configs / init functions to allow them to pass the initial startup tests. Shuffle things around a bit, separate out incomplete SC4 sets to bottom of the list (where sound roms are missing / wrong). Moved all Dutch games to their own section (even when the titles are the same the games aren't and they're build on very different codebases). Note that "CLUB JACKPOT JUNCTION" maps a 7th reel somewhere. Various fruit machine re-org for some futher work. . bfm_sc5.c: Various fruit machine re-org for some futher work, including identifying some JPM System 5 sets making use of the older SAA sound hardware revision of the board. . bfmsys85.c: Shuffle things a bit more . ecoinf3.c: FM splitting / note improvements. Be a bit less printf spammy when running these. May as well give it some reels too. Couple more notes in here. Give ec_sphin some lamps. . jpmimpct.c: Bit more sorting / identifying in jpmimpct. Buzzundrum (Ace) runs on the Impact Video board so move it (unsurprisingly we're missing the TMS / GFX roms at the very least). . jpmimpctsw.c: Shuffle some more incorrectly placed sets around. Notes / splitting. Bit more sorting / identifying. . jpmsys5.c: Fixed 6850 irq state . maygay1bsw.c: Some fruit machine re-organization (mainly maygay m1a splitting + misc changes / movements). Note, external submission, cleaned up a bit by me, was sent with the following message. Some further notes by me on the m1ab sound types. Kill a dupe / misplaced set detected by tafoid's more in depth analysis tool. . mpu4.c + mpu4mod4yam.c: Kill more dupes / misplaced sets. Moved misplaced set sc2->mpu4 . mpu4empire.c and mpu4mod2sw.c: Kill incorrect / dupe set. . pluto5.c: Pluto 5 fruit machine set splitting - Amiga (alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) . Added preliminary artwork LEDs for Commodore Amiga (open to suggestions) . Added LOF bit in Amiga emulation, used by Twintris (MESS) to boot. . Fixed cia_1 clocks, makes North & South and Fred happy (MESS). Added a note regarding disk swapping. . Make the number of ES5503 output channels configurable (mquake.c) - Barrier: Fixed manufacturer - Cannonball: Zerofill missing tile rom (right 4 tile pixels are empty now instead of random) - Dodge City: Fixed control and dipswitches in clones - Hayaoshi Taisen Quiz Hyhoo: Fixed NB1413M3 DAC frequency - Lethal Enforcers II: Fixed duplicated input - Mahjong Hana no Momoko gumi: Added 'Font Type' configuration setting - Monster Bash: Fixed buzzing sound during opening and gameplay (ID 05062) - Moon Cresta: Fixed loading of gfx roms in clone 'Super Star Crest' - Orange Club - Maruhi Kagai Jugyou . Fixed graphics in parent and clones . Removed GAME_IMPERFECT_GRAPHICS flag for these . Added special case for clone Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221) and removed unnecessary information in machine\nb1413m3.c. - Photo Play 2000: Added IDE interface - PinMAME: Added Language jumper to System 11 driver (s11.c). Added communication to background music board. Made Ball/Match display a 7-segment LED. - Primal Rage, San Francisco Rush and Speed Up . Added internal boot loader programs to the TMS3203x core and support a switch between microcomputer (bootloader) and microprocessor modes via the TMS3203X_MCBL input. This is required for Rise of the Robots, whose boot code jumps into the middle of the bootloader ROM. Changes tested with primrage, sfrush and speedup. . Fixed rom names and locations in Primal Rage according to PCB marking. Also included details on the 23 GALs which need dumping. - Rampage: Fixed rom names and locations in Rampage according to PCB marking - Rotary Fighter . Added 'invaders' sounds . Fixed screen is not flipped for Player 2 in cocktail mode (ID 00340) - Shadow Dancer: Fixed freeze on stage 2-4. Recent rework of the Sega drivers caused this to be an issue again (ID 03718). - Space Intruder: Fixed cocktail mode screen (ID 02710) - Sunset Riders: Sunset Riders (4 Players ver JAC). Correct rom names for the new Sunset Riders clone set. Reordered the sets by player, region and revision. - Star Fire / 2 . Preliminary support for sound samples (Download here: http://www.progettosnaps.net/samples/starfire.zip or http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=300605&page=&view=&sb=5&o=&fpart=1&vc=1). . Added jumper for disabling NMI in driver, this fixes "Scratchpad Ram test" (ID 03461). . Small cleanup and preparation - Star Force: Made palette_init to be all black, in order to not show MAME's default palette. - Taxi Driver: Added color prom and fixed colors in it. Clean up whitespace and document the color prom type. - Vs. Super Mario Bros.: Fixed manufacturer of clone 'Vs. Skate Kids. (Graphic hack of Super Mario Bros.)' - Witch: Added PCB layout and DIP locations to the Witch sets. Minor doc update. - Dipswitch fixes in 8080bw.c, cps1.c, fcrash.c, orangec, starfire.c and witch.c - Fixed rom names in bloodbro.c, foodf.c, jrpacman, primrage, rampage, witch, xmcota and zeropnt - Renamed (ad5evol) to (ad5eyesg), (bfm_sc5c) to (bfm_sc5swc), (headonb) to (headon1), (j5indy) to (j6indyge), (j6buzz) to (buzzundr), (j6cpalb) to (j6cpalg), (j6gforceb) to (j6gforced), (j6impactb) to (j6impactc), (j6mono60a) to (j6mono60l), (j6monspd) to (monspdr), (j6sl) to (j6slagn), (j6tbirds) to (j6tbirdsf), (j6tbirdsa) to (j6tbirdss), (j6tbirdsb) to (j6tbirds), (j6twstd) to (j6twstdt), (m1glada) to (m1gladz), (m1monod) to (m1monodt), (m1pp) to (m1pinkp), (m1ppd) to (m1ppdt), (m1spid) to (m1spid2), (m1stair) to (ec_stair), (m1tp) to (m1trivia), (qadj) to (qadjr), (rthundero) to (rthunder1), (sc1cexpld) to (sc1clbxpa), (sc1disca) to (b85disc), (sc1potp) to (b85potp), (sc2cb7p) to (b85cb7p), (sc2copsc2) to (sc2copsc1pa), (sc2cpe5p) to (sc2cpe4p), (sc2drwho1) to (sc2drwho7), (sc2drwho10) to (sc2drwho3p), (sc2drwho11) to (sc2drwho2p), (sc2drwho12) to (sc2drwho4), (sc2drwho13) to (sc2drwho5), (sc2drwho14) to (sc2drwho6), (sc2drwho15) to (sc2drwho3), (sc2drwho16) to (sc2drwhodx), (sc2drwho17) to (sc2drwhou), (sc2drwho18) to (sc2drwhomzp), (sc2drwho19) to (sc2drwhomz), (sc2drwho2) to (sc2drwho1p), (sc2drwho20) to (sc2drwhodx1), (sc2drwho3) to (sc2drwhop), (sc2drwho4) to (sc2drwho1), (sc2drwho5) to (sc2drwho2), (sc2drwho6) to (sc2drwho4p), (sc2drwho7) to (sc2drwho7p), (sc2drwho8) to (sc2drwho5p), (sc2drwho9) to (sc2drwho6p), (sc2gldsh) to (sc2gsclb7), (sc2gsclb7p) to (sc2gsclb6p), (sc2luvv5p) to (sc2luvvp), (sc2luvv7p) to (sc2luvv4p), (sc2mam5) to (sc2mam3a), (sc2ptytm1p) to (sc2ptytmp), (sc4coro) to (sc4coroc), (sc4feveri) to (sc4fevdt), (sc4feverj) to (sc4fevdta), (sc4feverl) to (sc4fevdtb), (sc4hellb) to (sc4helld), (sc4hellba) to (sc4helld), (sc4mcas) to (sc4monotc), (sc4mcasa) to (sc4cmon), (sc4mcasb) to (sc4cmona), (sc4mcasc) to (sc4cmonb), (sc4mcasd) to (sc4cmonc), (sc4mcase) to (sc4cmond), (sc4mcasf) to (sc4cmone), (sc4mcasg) to (sc4cmonf), (sc4mcash) to (sc4cmong), (sc4mcasi) to (sc4cmonh), (sc4mcasj) to (sc4cmoni), (sc4mcasl) to (sc4mcas), (sc4wspin) to (sc4winsp0), (sc4wspina) to (sc4wspin), (sf2unkb) to (sf2rk), (witch) to (witchs), (xmcota) to (xmcotar1) and (xmcotad) to (xmcotar1d) - Description changes of Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1), Explorer (bootleg of Scramble), Jr. Pac-Man (11/9/83), Pleiads (bootleg set 1), Pop'n Music 5, Pop'n Music 7, Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921), Rampage (Rev 2, 8/4/86), Rampage (Rev 3, 8/27/86), Rolling Thunder (rev 1), Rolling Thunder (rev 3), Royal Casino (D-2608208A1-2), Scramble (Stern Electronics set 1), Space Chaser (set 1), Star Wars (bootleg of Galaxy Wars, set 1), Strafe Bomb (bootleg of Scramble), Street Fighter II': Champion Edition (Accelerator!, bootleg, set 1), Street Fighter II': Champion Edition (Accelerator!, bootleg, set 2), Street Fighter II': Champion Edition (Rainbow, bootleg, set 1), Street Fighter II': Champion Edition (Rainbow, bootleg, set 2), Street Fighter II': Champion Edition (Rainbow, bootleg, set 3), Street Fighter II': Magic Delta Turbo (bootleg, set 1), Street Fighter II: The World Warrior (RK, bootleg), Street Fighter II: The World Warrior (TAB Austria, bootleg, set 1), Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2) and Witch (Sega License) - MAME . Mark the display for screenless systems as changed whenever an output has changed (emu\video.c) . Added highlighted green monochrome palette (video\generic.c) . Replaced all device_t's with actual device classes in (cidelsa.c, icecold.c, metro.c and pcxt.c). Regression test recommended. . Added some logging (currently turned off) and minor optimizations (emu\schedule.c) - SDLMAME . Revise *IX man pages . Typo fix from QMC2 (src\osd\sdl\output.c) - Compiling . NOTE: We introduce a new toolchain which contains MinGW tools based on GCC 4.6.3 + QT4 + Python Obtain these new packages from the Development Tools page (http://mamedev.org/tools/). Note that in new tools there is Python support and also QT4 libraries. After unpacking start setup-Qt.bat to create needed config file for QT4 and also use setup-Python.bat to setup Python support . Removed unneeded includes (src\emu\machine\6840ptm.c, 6850acia.c, adc0808.c, cdp1852.c, cdp1871.c, com8116.c, ds2404.c, i8212.c, i8214.c, i8243.c, i8255.c, mc6852.c, mc68901.c, mm74c922.c, mos6529.c, msm6242.c/h, nmc9306.c, timekpr.h, upd7201.c, video\315_5124.c, cdp1861.c, cdp1862.c, dm9368.c, hd44102.c, huc6202.h, huc6260.h, huc6261.h, huc6270.h, mc6845.c/h, msm6255.c, tms9928a.c, tms9928a.h and upd3301.c) . Profiler rewrite: Simplified, streamlined and less overhead (src\emu\eigccx86.h, profiler.c/h, ui.c, osd\osdcore.h and osd\windows\eivcx86.h) 0.147u3 - New games: Kkot Bi Nyo Special (Korea) and Planet Probe (prototype?) - New Working games: Harem - New Non-Working games: Fearless Pinocchio (V101US), Mega Lines, Stone Age (Astro, Ver. ENG.03.A) and Super Card (encrypted) - New clones: Bagman (bootleg on Moon Cresta hardware, set 2), Golden Tee Diamond Edition Tournament (v3.05T ELC), Gun Survivor 2 Biohazard Code: Veronica (BHF2 Ver. E), Haunted Castle (version E), Jet Wave (JAB, Japan v1.04), Jolly Card (Spanish, blue TAB board, encrypted), Kkot Bi Nyo (Korea), Magix / Rock (bootleg), Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB), Ninja Assault (NJA4 Ver. A), ParaParaParadise 1st Mix Plus, Pool 10 (Italian, Dino 4 hardware, encrypted), Radirgy (Rev A) (GDL-0032A), Street Fighter II': Champion Edition (Accelerator!, bootleg) (set 2), Street Fighter II': Champion Edition (Alpha Magic-F, bootleg), Street Fighter II: The World Warrior (TAB Austria, bootleg) (set 2), Street Fighter II: The World Warrior (unknown bootleg), Sunset Riders (4 Players ver UAB), Super Ranger (NOVA), Triple Punch (set 2), Ultra Invaders, Western Express (Japan, rev 4), Winding Heat (AAA, Asia v2.11) and World Class Bowling (v1.1) - New drivers: supercrd.c - Atmel 8-bit AVR (MESS) . Added FMUL, FMULS and FMULSU opcodes . Fixed incorrect N flag calculation in ROR opcode . Fixed incorrect bit testing in SBIC/SBIS opcodes . Converted AVR8 CPU to modern CPU device . Renamed I/O map to data map, routed ports through io map. . Implemented ST Z+ and SBIW opcodes - COSMAC CPU: Added missing IRQ acknowledges - DECO CPU16 CPU: Rewrite 6502, cycle-exact and interruptible. IRQ fixes. DECO16 vectors are non-standard. - FD1089 CPU: More OO & consistent - I386 CPU: Added I386 debugger helper for converting virtual to physical addresses - M6502 CPU . Rewrite CPU to modern device, cycle-exact and interruptible (4roses.c, allied.c, alvg.c, bwing.c, calomega.c, cham24.c, cmmb.c, dkong.c, exprraid.c, famibox.c, funworld.c, gts3.c, liberate.c, multigam.c, playch10.c, punchout.c, rgum.c, seta.c, snookr10.c, tceptor.c, thedeep.c and vsnes.c) . IRQ fixes . Fixed the bitwise ops and their disassembly . Added virtual destructors - M6509 CPU: "normal" read/writes happen in the fetch bank. Added virtual destructors. - M6510 and M4510 CPUs: Added virtual destructors - M6800 CPU: Workaround for Coleco Adam (MESS) not booting. The free-running counter values are unacceptable, so let it read from the output compare register instead. To be fixed properly later. - M37702 MCU: Changed M37702 to help Tafoid's source file detection - N2A03 CPU: Put a second irq line logically-ored with the normal one in N2A03. Added virtual destructors. Rewrite M6502 to modern device, cycle-exact and interruptible. This fixes black and white checker pattern ground shakes up and down in Super Mario Bros. 3. (ID 00881) - PSXCPU . Fixed CD & root counter irq's (cpu\psx\irq.c) . Use DEVCB2 for hooking up irq controller to cpu core . Turned ZN security into a device (cpu\psx\sio.h) . Split PSX SIO into two devices . Replaced usage of psx_sio_install_handler & psx_sio_input with devices - SSP1601 CPU: Removed #define for SSP1601 cpu name - TMS0980 CPU: Fixed debugger crashes on TMS1100 CPUs. Some small fixes for the TMS1100 CPUs. - TMS9900/9995L CPUs: Fixed overflow detection in INC and DEC opcodes. - Z8002 CPU: Fixed implementation of trdb, trdrb, trib, trirb, trtdb, trtdrb, trtib and trtirb instructions (cpu\z8000\z8000ops.c) - Audio streams: Added more comment to lessen confusion regarding sound_stream::generate_resampled_data (emu\sound.c) - N2A03 / NES APU sound: Rewrite M6502 to modern device, cycle-exact and interruptible (sound\nes_apu.c) - TMS5110 sound . Fixed the interpolation coefficient shifts for the TMS5xxx chips based on results of simulating the circuit from the patent . Changed 'Chirp table' waveform to match the chip more closely, acoustically. This will require completion of a pending decap to verify as correct, but it certainly sounds better (sound\tms5110r.c). - TMS5220 sound . Got rid of most of the TMS5220 excitation (voicing) hacks. The rest is mostly making the space/tabs for comments more consistent and fixing a couple of spelling errors in the comments. . Minor bugfix regarding the time_to_ready code. - YMZ280B sound . Quick fix for ppp1mp static sound . Get rid of "YMZ280B 16-bit PCM contact MAMEDEV" popmessage - 1413M3 custom chip: Fixed nested NMI behaviour on soft resets in Nichibutsu mahjong drivers (ID 04472) (hyhoo.c, nbmj8688.c, nbmj8891.c, nbmj8991.c and pastelg.c). Little note update. - 8259 PIC . Added modern accessors to PIC8259 . Hooked up IDE irq straight to the PIC8259 in calchase.c, chihiro.c, funkball.c, gamecstl.c, mediagx.c, midqslvr.c, queen.c, taitowlf.c, savquest.c, voyager.c and xtom3d.c - CHDMAN: FLAC encoder did not use FIR Linear prediction - Discrete Netlist: Symbols starting with _ are reserved in many BSD-derived environments (machine\netlist.h) - Floppy (MESS) . Added a generic WD format (lib\formats\wd177x_dsk.c/h). Added IMD support (formats\imd_dsk.c). Added upd765 read fm sector support. Predict the layout size correctly (formats\imd_dsk.c). . Added WD2793 variant and READ/WRITE8_MEMBERs for individual registers. Added modern Bondwell 2 disk formats. Modernized Bondwell 2 floppy handling and cleaned up driver. - PLD (Programmable Logic Device): Converted jedtest script to Python. Fixed regtest, now all is executed fine. - SCSI: Added STOP command to SCSI CD - Sega encryption: Added the Super Locomotive encrypted Z80 part number (machine\segacrpt.c) - PSX GPU: Uses MCFG_SCREEN_UPDATE_DEVICE (video\psx.c) - CGA video: Initial support for Wyse-700 graphics card based on findings of John Elliott (video\isa_cga.c + mess\drivers\at.c). - SVGA video: Added S3 SVGA extra bits for Horizontal/Vertical VGA registers, re-enabled dot clock selection, and fixed it up a bit. 800x600x16bit in X11 is now usable (but still not correct). - V9938 video: Removed the V9938 "ignore-sprite-limit" hack entirely in csplayh5.c, meritm.c, sangho.c and tontonb. - 8080bw.c . Added music to Balloon Bomber . Added music to Lupin III. Added notes for Lupin III from MisfitMAME. . Added Invaders sound and dipswitches to clone Darth Vader (bootleg of Space Invaders) . Added sound to Moon Base in 'Rolling Crash / Moon Base' - astrocorp.c: Added gambling control. Fixed 68000 CPU1 clock speed and visible area. - btime.c . Implemented the DECO CPU-7 and DECO C10707 . Added virtual destructors - cd32.c: Improved inputs in CD32 (by adding a mirror of the first button where the regular Amiga reads it) this allows the majority of the booting CD32 games to actually be started. - dec8.c . Various clean-ups of DEC8 HW . Hooked up SCREEN_RAW_PARAMS to all games in the driver . Added irq ack mechanism to Captain Silver, Last Mission and Shackled (they were commented out before) . Rewritten DECO222 encryption for Psycho-Nics Oscar, The Real Ghostbusters and Super Real Darwin to use the new model (M6502 CPU2 -> DECO 222) . Reapplied DEC8 pixel clock changes. Reapplied IRQ ack'ing. Fixed VSync. - firebeat.c . Some additional ATAPI support . Some minor fixes so Firebeat's RTC65271 check passes (you must delete the "rtc" file from your NVRAM for this to become effective) . Fixed flash readback through the YMZ. All PPP-type games now can be initialized and booted. . Adding info on the gfx h/w so it doesn't get lost . Quick fix for clone 'ParaParaParadise 1st Mix Plus' static YMZ280B sound . Temporary hack to switch display lists correctly for the ParaParaParadise games . Hack display list switching for keyboardmania too - funworld.c . Funworld driver wants bitwise ops. Replaced M65C02 CPU1 with R65C02. . Added proper PLD dumps to Bonus Card and Power Card . Jolly Card Spanish improvements: Decrypted the program rom. Added button-lamps layout. Added a default NVRAM. Promoted to working state. . Improvements to Pool 10 in Dino 4 hardware: Added PCB layout and technical notes. Decrypted the program data & address. Decrypted the graphics ROMs address. Added a default NVRAM. Added button-lamps layout. Promoted to working state. Improved the PCB layout. Added some encryption notes. - galaxold.c . Fixed graphics in clone Port Man (bootleg on Moon Cresta hardware) (ID 03427) . Added notes about the rom mapping in Video Stars, which probably isn't quite right. - hyhoo.c, nbmj8688.c, nbmj8891.c, nbmj8991.c and pastelg.c: Fixed nested NMI behaviour on soft resets in Nichibutsu mahjong drivers (ID 04478) - itech32.c . Major ROM renaming to get away from the DOS 8.3 convention to accurately reflect what's on the labels . Correct cut-n-paste errors - ksys573.c: Replaced usage of psx_sio_install_handler & psx_sio_input with devices - namcos12.c: Fixed black screen in tekken3 and tektagt (ID 05054) - namcos23.c . Bonus optimization. Added textlayer palettebase and bgcolor. . Prevent 500GP locking up - neodrvr.c: Removed some FBAisms and improved code sharing between AES/MVS (the interrupt handling was copy+pasted between the two) - pgm.c . Added IQ_132's recently updated pgmcrypt decryption routine and shuffled around pgm/027 decryption functions to a new file (machine\pgmcrypt.h) . Fixed maincpu rom loading in Puzzle Star - playch10.c: Rewrite M6502 to modern device, cycle-exact and interruptible. This fixes black and white checker pattern ground shakes up and down in Super Mario Bros. 3 (ID 00881). - taitogn.c and zn.c . Turned ZN security into a device (CAT702) . Replaced usage of psx_sio_install_handler & psx_sio_input with devices - Bad Lands: Added two missing undumped GAL's ($600, a00) and updated documentation regarding missing checksums - Bagman: Fixed loading of gfx roms in clone Bagman (bootleg on Moon Cresta hardware), and the bank switching, but some roms are bad. - Express Raider: Correct regions and copyrights in the driver and information in the header about the games - Fast Lane: Verified clocks. Fixed VSync. - Funky Ball: Added GAME_NOT_WORKING and GAME_NO_SOUND flags - Hang Pilot . Redumped clone Hang Pilot (ver UAA) . Luckily motor lock check in Hang Pilot (ver UAA) is at the same address. One of the lock/unlock checks was at another address anyway. - Harem: Decrypted code (Game now playable) - Mega Lines . Added PCB, bipolar PROMs circuitry and DIP switches layouts. . Added some technical notes and cleaned up a bit the code - Miyasu Nonki no Quiz 18-Kin: Sprite hack removed - PinMAME . s11.c: Williams System 11 WIP. Fixed alphanumeric display. Added M6800 (4MHz) CPU1, M6808 (3580000 Hz) CPU2, M6809E (4MHz) CPU3, HC-55516 sound, YM2151 (3580000 Hz) and 2x DAC. Added samples (bumper, chime1, chime2, chime3, coinin, hole and knocker) and Speakers. . s11a.c: Williams System 11a WIP . s3.c: Williams S3 WIP . s4.c: Williams S4 WIP. Replaced M6802 CPU1 with M6800. . s6.c: Williams S6 WIP. Replaced M6802 CPU1 with M6800. . s6a.c: Williams S6a WIP. Improved sound and fixed display in Williams System 6a. Algar (L-1) inputs working. Added HC-55516 sound and Speaker. . s7.c: Williams System 7 WIP. Added M6808 CPU1/2 (4MHz), DAC and HC-55516 sound. Added samples (bumper, chime1, chime2, chime3, coinin, hole and knocker) and Speakers. . s8.c: illiams S8 WIP . s9.c: Williams S9 WIP - Pong: Symbols starting with _ are reserved in many BSD-derived environments (machine\netlist.h) - Race Drivin': Fixed clone Race Drivin' (cockpit, rev 1) crash (ID 05057) - Saint Dragon: Decrypted graphics in clone (set 2) (Game now playable) - Super Locomotive: Made Rev A the parent set. Added DIP locations to the sets. Added minor documentation about basic PCB parts. - Vastar . Added notes to MACHINE_CONFIG_START . Added DIP locations. Fixed AY-3-8910A clock speed and VSync. - Video System (aerofgt.c, f1gp.c, mfromance.c, pipedrm.c, welltris.c) . Continued refactoring some video system sprite rendering, bringing code closer together for the 2nd sprite types. . VideoSystem further reducing / merging of functions. - Witch: Minor Witch updates based on eBay auction picture. Fixed Z80 CPU1/2 clock speeds. - Dipswitch fixes in 8080bw.c, harem and suprloco - Fixed rom names in cps1.c, dsoccr94, hcastle, mbombrd and slammast - Renamed (exprraid) to (exprraidu), (exprraida) to (exprraid), (gtsuprem) to (gtsupreme), (hcastlej) to (akumajou), (hcastleo) to (hcastlek), (hcastljo) to (akumajoun), (suprloco) to (suprlocoo), (suprlocoa) to (suprloco), (vimana1) to (vimanaj) and (wexpressb) to (wexpressb1) - Description changes of Bagman (bootleg on Moon Cresta hardware, set 1), Cannon Ball (Yun Sung, horizontal), Cannon Ball (Yun Sung, vertical), Express Raider (US, rev 5), Express Raider (World, Rev 4), Golden Tee Royal Edition Tournament (v4.02T EDM), Golden Tee Supreme Edition Tournament (v5.10T ELC S), Pinball Champ '95, Street Fighter II': Champion Edition (Accelerator!, bootleg) (set 1), Street Fighter II: The World Warrior (TAB Austria, bootleg) (set 1), Triple Punch (set 1), Ufo Senshi Yohko Chan (bootleg, not encrypted), Wonder Boy in Monster Land (English bootleg set 1), Wonder Boy in Monster Land (English bootleg set 2) and Wonder Boy in Monster Land (Japan bootleg). - MAME . Allow overriding TMSMAKE/M68KMAKE (ifndef...endif) for easier cross-compilation and testing of alternatives (emu\cpu\cpu.mak) . Cleanup tabs in mame.lst . Sorted out some odds in src\mame\mame.mak - Compiling . Fixed tiny compile (src\mame\tiny.mak) (ID 05053) . Normalize some include paths to always include video\ or machine\ as necessary (machine\naomibd.h, naomig1.c, naomigd.h, video\argus.c and psychic5.c) . Fixed weird do-nothing lines that cause Clang warnings (video\konicdev.c). . Fixed GCC 4.7 compile (formats\flopimg.c) - Debugger: Make expression functions work debug\express.c) - MESS . Started wrapping some NeoCD functions in MAME code, now sending valid CD commands and some sets are now booting. Giving it the right amount of RAM. 0.147u2 - New games: 3 On 3 Dunk Madness (US, prototype? 1997/02/04), 3X3 Puzzle (Enterprise), Bonus Card (Austrian) and Double Crown (v1.0.3) - New Working games: Spark Man - New Non-Working games: Bingo Mania (P03-P07-P14), Cops, Each Way Shifter (Barcrest?, set 1, version 16), Fruit Star Bonus (Ver 8.20PIR), Gamatron (Sonic), Lucky Twos?, More Money (VFS) (MPU3), Nemesis, Odin, Power Card (Ver 0263, encrypted), Scoop (Peter Simper, prototype?) (MPU3), Still Crazy, Talk of the Town (MPU3?) and Verne's World - New clones: 19 in 1 MAME bootleg, 3X3 Puzzle (Normal), 4 in 1 MAME bootleg (set 1, ver 3.00), 4 in 1 MAME bootleg (set 2), 48 in 1 MAME bootleg (set 2, ver 3.09, alt flash), 60 in 1 MAME bootleg (ver 3.00), Angler Dangler (DECO Cassette), Bingo Mania (A03), Bonus Card (Austrian, ATG Electronic hack), Double Axle (US), Each Way Nudger (Barcrest?, set 3, version 20?), Each Way Shifter (Barcrest?, set 2, version 8a), Egg Venture (Release 2), Golden Castle (prototype?), Hang Pilot (ver UAA), Invader's Revenge (Game World, single PCB), Invader's Revenge (set 1), Invader's Revenge (set 2), Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 101, CN), Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 102, CN), Megatouch 5 Tournament Edition (9255-70-01 ROC, Standard version), Moon Ranger (bootleg of Moon Patrol), Phoenix (Irecsa / G.G.I Corp, set 3), Puzzli 2 (ver. 100), Rallys (alternate bootleg of Spectar), Rapid River (prototype), Secret Service (2.6 alternate sound), Seibu Cup Soccer (set 3), Star Wars (Sonic, alternate set), The Speed Rumbler (set 3), The King of Fighters '97 Oroshi Plus 2003 (bootleg), Video Pool (Video Hustler bootleg), WEC Le Mans 24 (set 2) and Xain'd Sleena (World) - New drivers: 3x3puzzl.c, bingoman.c, cops.c, dblcrown.c and mpu12wbk.c - New/Updated artworks: bombjack, exerion, hharry, hydrthnd, kingofb, pitfight, pong and streetsm (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here) - 5A22 CPU: Changed space_func to delegate (cpu\g65816\g65816.c) - 8085A CPU . Fixed H flag on DCR and DAD . Fixed 8080 unused flags. 8080/8085 CPU Exerciser results now: 8080: fail: aluop ones, rest is OK and 8085: fail: aluop ones and DAA, rest is OK (cpu\i8085\i8085cpu.h). . Fixed H flag on SUB/SBB/CMP - Atmel 8-bit AVR CPU (MESS) . Added opcodes OR, SBCI, ORI, ST Y+ and ADIW . Fixed functional issues in opcodes COM, NEG and LSR . Added basic Timer 1 support to Craft driver and hooked up the DAC, currently plays only a buzzing noise due to lacking EEPROM support. . Implemented AVR8 MULS, ANDI, STD Z+, LD -Z, LD Y+, LD -Y, LD -X, SWAP, ASR, ROR, and SBIS opcodes. . Moved AVR8 Timer 0-2 into the CPU core itself, 30x driver speedup. . Added LD Rd,Z+q opcode . Correct cycle counts for LD and ST opcodes . Fixed a bug where a 2-cycle or 3-cycle opcode encountered during a time slice were causing all subsequent 1-cycle opcodes to deduct 2 or 3 cycles for the remainder of the time slice instead. . Fixed register indexing for MULSU opcode . Fixed register writeback for LD -Z and LD -Y opcodes - I386 CPU . i386 DASM: Added numerous opcodes for newer CPUs . Added some undocumented-but-supported opcodes from old CPUs . Correct naming of two opcodes . 486+ WP bit support . Allow wp in 32-bit mode and add newline to strings (cpu\i386\i386ops.h) . Don't crash on REP NOP (i386\i386ops.c) - MIPS CPUs: Fixed compile on mips3 C core - T6W28 CPU (MESS): Converted to C++. Implemented disabling the T6W28 output. - Z80 CPU: Fixed cycles on illegal prefixes (cpu\z80\z80.c) - TMS5220 sound: Hooked up clone polepos2bi, portrait anhd tomcat to use the new TMS5220 implementation - YM2151 sound: Rewrote the YM2151 interface to be fully modernized, and removed the ym2151_interface struct in favor of inline configs using the new DEVCB2 mechanism. In many cases, removed no longer needed trampolines, instead taking advantage of direct support for input line writes. - YM2612 sound: Fixed LFO AM waveform - 6526 CIA: Added port A/B read handlers (machine\mos6526.c) - AM9517A DMA: Don't grossly fail on verify: The verification itself is not done, the obvious implementation proving wrong. A test case is the IBM5150 floppy format command, which uses verify when reading just-formatted sectors. - Programmable Logic Device (PLD) . Refactored the code in jedutil to support the viewing of a GAL16V8 device and added a new command line option of "-viewlist" which will print out a list of all the devices that can be viewed in human readable logic equations. . Updated the jedutil regression test to support passing in an additional argument of "debug" to print out a detailed log . Moved the jedutil regression test data into separate directories composed of the device's name to make things more organized . Added experimental support for using Berkeley PLA files as input to jedutil . Fixed potentially uninitialized variable error in MSVC compile (tools\jedutil.c) . Fixed MOS8721 (machine\pla.c). Optimized the PLA implementation and added simple caching with significant performance increase. - IDE: Cleaned up the IDE controller enough to change the irq to a DEVCB2. Changed DEVICE_SELF_OWNER to DEVICE_SELF in IDE config & in MCFG_IDE_CONTROLLER_ADD add the IDE controller after the slots (audio\jaguar, drivers\atlantis.c, calchase.c, chihiro.c, cobra.c, djmain.c, funkball.c, gamecstl.c, jaguar.c, kinst.c, mediagx.c, midqslvr.c, midvunit.c, qdrmfgp.c, queen.c, savquest.c, seattle.c, taitogn.c, taitotz.c, taitowlf.c, twinkle.c, vegas.c, viper.c, voyager.c, xtom3d.c and zn.c). - SCSI . Removed some old commented out code (machine\scsihle.c/h). Default all lines high & improved logging (machine\scsicb.c/h). Added output logging (machine\scsidev.c). Added the device tag when logging that no harddrive is found (machine\scsihd.c). Delays the req signal and disabled logging left on by accident (machine\scsihle.c). . Uses logical levels rather than voltage levels for control signals, you have to write 0 to the data lines when you're not sending data. Added a kludge to stop the ff from the 6522 from preventing the bus from being read, this may or may not be how the hardware really works (machine\scsibus.c, scsicb.c, scsidev.c and scsihle.c). . Switched SCSICB to use DEVCB2 . SCSICD now has a CDDA sub device - ISA: Fixed compile (machine\isa.h). Removed not needed calls from ISA. - Floppy . Random fixes/logging (imagedev\floppy.c). Modernize (upd765_dsk.c/h). Reduce the gap3 size from the standard value when the data otherwise won't fit (d88_dsk.c) . Changed to subdevice for amiga_fdc . Fixed memory leaks in flopimg.c - Harddisk images . Verify softlist items that are not CHDs or roms and display warnings/errors (emu\diimage.c) . Made cdrom_image_device & harddisk_image_device responsible for accessing driver based CHD's - SVGA . Correct S3 SVGA rendering of 15/16/32-bit colour modes. This allows X11 to display correctly in high-colour. It's still not perfect, however, but 640x480x64k works fine. . Commented out dot S3 SVGA clock selection for now, as it caused issues with WIN95. - 7474 TTL: Changed 7474 to use DEVCB2 (drivers\carpolo.c, dambustr.c, galaxold.c, scobra.c and scramble.c) - 20pacgal.c: Modernized some static calls in driver - 8080bw.c . Removed Invader's Revenge color overlay, it doesn't have one. Hook up color prom. Sound is an MC6808P and AY-3-8910. DIPs 5, 6 and 7 are read from IN0 (info from MisfitMAME), also put driver notes in one big comment section instead of /* separate lines */ and got rid of (very incomplete anyway) changelog. Got rid of samples. Added M6808 CPU2 and replaced SN76477 and Samples sound with AY-3-8910A. . Fixed cocktail DIP in Invader's Revenge (The cocktail switching works the same way as for Space Invaders. Flip control is available at bit 5 of port 5) (ID 00007) . Fixed recent regression in clone Lupin III (set 2) . Get rid of PORT_INCLUDE( invrvnge ) in spclaser, schasercv, lupin3 and lupin3a . Realign and cleanups 8080bw gamelist. Some manufacturer were wronly set to Nichibutsu. - aleck64.c: Made RSP core use callbacks (cpu\rsp\rsp.c, rspdrc.c and machine\n64.c) - cd32.c: More Amiga movement - chihiro.c and naomi.c: Information adjustments for Chihiro, NAOMI and mame.lst reflecting latest discoveries. - cinemat.c . Added Barrier color overlay . Added Demon color overlay - cps3.c: Added CD/DA sound - firebeat.c, konamigv.c, ksys573.c and twinkle.c: SCSICD now has a CDDA sub device - funworld.c . Added PCB layouts . Set Big Deal sets and Jolly Card hybrid as clones of Bonus Card . Cleaned up the code . Changed company name 'Funworld' to 'Fun World' . Added technical notes . Default Bonus Card & Big Deal DIP switches positions, that allow boot the system without errors. . Moved jolycdat program to Bonus Card, making it parent. This program is a real original Bonus Card program, and the PCB was populated with common Jolly Card graphics wrongly. The other Bonus Card set was turned as clone, since has a fake copyright string (hack). Added some technical notes. . Magic Card II improvements: Added new Yugoslavian set of Magic Card 2 (Nov/New). Added default NVRAM, needed to boot properly. Rearrange the whole Magic Card 2 sets, and improved descriptions. Added technical notes. - galdrvr.c . Fixed Fantastic sound frequency (2x AY-3-8912A to 3072000 Hz) from PCB recording, same as maincpu freq. . Some manufacturer were wronly set to Nichibutsu - gottlieb.c . Re-added support for optional Q*bert knocker sound sample. Q*bert knocker obviously shouldn't be routed to main mono speaker. . Fixed Q*bert's Qubes coin counter . Gottlieb gamelist was lop sided, had tabs in it. - konamigq.c, konamigv.c, ksys573.c, taitogn.c and twinkle.c: Hooked up PSX IRQ's using DEVCB2 - ksys573.c: Changed 2 disc hack to use 1 drive - kyugo.c: Updated on companynames - mcr3.c . Small inputs update . Replaced buttons with vertical 2-way Joystick in Max RPM . Small update on Sarge DIPs . Added Spy Hunter internal artwork . Fixed inputtag in Turbo Tag (layout\turbotag.lay). Removed button 6. - megatech.c: Fixed Megatech crashed after OK in debug mode (ID 05046) - mw8080bw.c . Small tweaks to clones Cosmic Monsters color overlay . Fixed clone Invasion (Sidam) coinage . Small tweaks to 'Amazing Maze' color overlay . Added Sea Wolf / II internal artwork . Added internal .lay to Space Encounter. Fixed strobe timer. - namcos23.c . Updated Gorgon memmap, text layer offset isn't needed anymore. . Put the MCU in reset state at boot (just like NamcoS22) . Added the cpu devices to state . Improved MIPS3_IRQ1 . Some indentation cleanup, like how it's in (most) other MAME code. . Small update on interrupts . Some notes and reverted recent change to c361_r (was getting slowdowns in ram checks) . Added service button . Final Furlong/Rapid River testmode is now navigatable . Added preliminary analog controls . Added inputs for accessing the developer test menus to Rapid River (prototype) . Improved gun accuracy in Time Crisis / II. Removed old hack in Time Crisis II, doesn't look like it's needed. - nss.c, sfcbox.c and snesb.c . Fixed dezaemon SRAM mappings (machine\snes.c) . Added missing security key for nss_con3, nss_rob3, nss_ssoc and nss_sten - othello.c, segag80r.c and segas16a.c: Updated I8243 to use DEVCB2 and removed trampolines - pgm.c . Fixed level 6 crash in Knights of Valour / Sangoku Senki (kov) (ID 04948) . Added sprcol roms from kov2p to 'Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK)' . Verified that the gfx roms from 'Knights of Valour 2 Plus' are good dumps - snesb.c: Quick hack for Final Fight 2 (SNES bootleg). This fixes the credit and "Lives" dipswitch issues (ID 02132). - suna8.c . Fixed color cycling in Hard Head . Emulated the protection in Spark Man . Support for two sprite chips . Support for two sample ROMs . Per-game tile banking - system1.c . Fixed Shooting Master gun position (ID 05028) . Fixed Z80 cycles on illegal prefixes (custom cycle tables) - taitotz.c: Implemented the 4-byte prefetch queue to TLCS-900/H - zn.c: Removed some legacy code (cpu\psx\psx.c, video\psx.h, includes\psx.h and machine\psx.c). Hooked up PSX IRQ's using DEVCB2. - Ace: Added generic color overlay (assume from flyer). NOTE: Color overlay needs verification from real cabinet (or old photo). - Aero Fighters: Changed region gfx3 to gfx2 ($200000) - AGEMAME . Improvements to Maygay M1 emulation, most games at least show something now . Added another Aristocrat MK6 base system BIOS for New South Wales region . Fix for Each Way Nudger regression (ID 05045) - Atari: Initial round of atarigen cleanup/modernization (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1.c, atarisy2.c, badlands, batman, beathead, blstroid, cyberbal, eprom.c, foodf, gauntlet.c, harddriv.c, klax, offtwall, rampart, relief, shuuz, skullxbo, thunderj, toobin, vindictr and xybots - Ataxx: Fixed manufacturer (ID 05042) - Barricade: Added color overlay (info from external artwork by Mr Do) - Beam Invader: Tweaked Beam Invader overlay - Bingo Mania . Improved the rom load, added year, renamed and fixed PLDs, and added hardware specs / technical notes. Added more descriptive notes. Added another revision, carrying a new game. This board has only one game. The system is a multi game with up to 3 different games, selectable at startup. . Added PCB layouts and descriptions - Blockade: Small tweaks to color overlay - Bubble Bobble: Fixed clone Bobble Bobble (set 2) romload typos - Caveman Ninja: Removed protection hack patches and emulated protection routines - Circus / Acrobat TV: Make Circus overlay colors same saturation as Clowns overlay - Doraemon no Eawase Montage: Added year info (1993?) - Double Crown: Added palce16v8h.u39 PAL. Various work. set_irq_line gives an assert. Hooked up various banks, now we're ready to draw. Added most things. Small fix to the text tilemap. Promoted game to working. Double Crown gfxdecode. - Drag Race: Added color overlay (based on external artwork by Mr Do) - Egg Venture: Added DIP locations to the sets. Added new 512k oki1/2/3 sound roms. - Frogs: Changed settings from DIPSETTING to CONFSETTING ('Game Configuration') - Galactica: Added color overlay to Galactica and clone Space Missile according to brazilian fans of the game (+ photo references) - Go 2000: Assuming that manufacturer "SA" is for "SunA"; hardware is very similar to SunA16, as mentioned in driver notes. - Harem: Notes on Harem. Moved game to Scramble driver. Fixed Z80 CPU2 and the 3x AY-3-8910A clock speeds and palettesize. - Hippodrome: Fixed clone Fighting Fantasy (bootleg with 68705) (Game now playable) - Inferno (Meadows): Added color overlay (based on external artwork by Mr Do) - Mustache Boy . Cleaned up vblank interrupts: Got rid of the nasty long-int hack in favor of the same 'vblank in+vblank out' int scheme the other similar seibu games of this era used (panicr, darkmist). This seems much more likely to be what the actual PCB used, and works just fine. . Removed leftover cruft in mustache.c and h - Omega Fighter: Fixed clone Omega Fighter Special. The game fails to boot or finish post. After showing bad rom errors, the game resets (ID 05036). - Operation Tiger: Implemented the 4-byte prefetch queue to TLCS-900/H - Othello: Updated I8243 to use DEVCB2 and removed trampolines - PinMAME . atari_s2.c: Merged atari_s3.c with atari_s2.c driver. WIP and placeholder (Manuals and PinMAME used as references, couldn't find full schematics). Road Runner, Superman (Pinball) and Hercules dipswitches added; all work except for sound. Hooked up mechanical sounds to Hercules. . jp.c: Added maincpu rom Petaco 2 . s3.c: Typical Williams hardware with Motorola 8-bit CPUs, and lots of PIAs. Sound doesn't work because the diagram doesn't show where the sound data comes from (variable m_sound_data needs to be written to). Contact and Disco Fever marked as WORKING. Added chimes to Hot Tip and Lucky Seven, marked as WORKING. Added outhole sound and diagnostic switch. Moved Phoenix and Pokerino from S4 to S3 driver and marked as WORKING. Fixed outhole bit. Added diagnostic/setup controls and dipswitches. Fixed interrupt rate, Hot Tip and Lucky 7 startup tunes play now. . s8.c: Pennant Fever is now WORKING. Fixed slow response. . s9.c: Added speech to driver. Comet marked as WORKING. . spectra.c: Added 2nd mono Speaker to Spectra IV . vd.c: PinMAME used as reference (unable to find any info at all on the net). Nothing in this driver is confirmed except where noted. . wico.c: Added 2nd mono Speaker to Af-Tor . Converted atari_s1.c, atari_s2.c, flicker.c, g627.c and spectra.c, wico.c and zac_1.c to derived classes. Small cleanup. . Small cleanup to nsm.c, rowamet.c, techno.c, zac_2.c and zac_proto.c driver - Puzzle & Action: Ichidant-R: Emulated protection in clone 'Puzzle & Action: Ichidant-R (Japan) (bootleg)' rather than simply patch it out - Quiz & Variety Sukusuku Inufuku: Fixed visible area - Shadow Dancer: Fixed background corruption during train scene (Level 2-2) (ID 04048) - Side Arms: Fixed crash/regression - Sky Diver: Added generic color overlay (based on external artwork by Mr. Do! & co) - Street Fighter II': Champion Edition: Emulated protection in 'Street Fighter II': Champion Edition (Rainbow set 1, bootleg)' and 'Street Fighter II': Champion Edition (Rainbow set 2, bootleg)' rather than simply patch it out. - SU2000: Port 0x64 opcode 0xd1 should incur no delay when delivering (machine\8042kbdc.c). This allows, for example, SU2000 to start booting to the CMOS setup screen. - Sunset Riders (bootleg of Megadrive version): Simplify decode function - Super Bug: Added color overlay (info from external artwork by Mr Do) - Super Volleyball: Clone 'spikes91a' is clearly a bootleg of super volleyball, not power spikes (I'm not even sure where the spikes91 name comes from on this set, it still has the Super Volleyball title screen). Anyway, moved it to the more appropriate driver and decoded the gfx on it, still needs work due to other changes on the bootleg. - Thunder Dragon: Removed hack patch for clone Thunder Dragon (bootleg) and emulated protection instead - Tournament Table: Fixed some initial settings which caused out of bounds access (video\tia.c) - Ultra Balloon: Emulated protection routines rather than patching them - Video Hustler: Made video hustler bootlegs working - Video Hustler (bootleg) and sound in Fatsy Gambler (Video Hustler bootleg) - Video System . Continued cleanup of Video Systems drivers and associated dependencies (aerofgt.c, f1gp.c, pipedrm.c and welltris.c) . Moving more sprite functions around preparing them for merging (3on3dunk, crshrace, gstriker.c, inufuku.c, pipedrm.c, suprslam, taotaido and twrldc94) . Further unification of the Video System functions . Improved rendering of players in '3 On 3 Dunk Madness' and promoted it to working. Added correct ROM names and trimmed the speech ROM back to 24Mb. . Further improves the sprites in Tecmo World Cup '94 . Fixed sound banking, added scrolling and improved inputs in 3X3 Puzzle . Moving more sprite functions around preparing them for merging in aerofgt.c, crshrace and inufuku . Video System 13/10/12 cleanups and preparation for further function merging (aerofgt.c, f1gp.c and inufuku.c) . Video System 14/10/12 - Moved the per-game tile indirections into game states (aerofgt.c, crshrace.c, f1gp.c, inufuku.c, suprslam.c and taotaido.c) . Inufuku driver: Ran cleanup.cmd to find out why some files were skipped and it pnly found these (vsystem_spr.c/h) - Virtua Racing: Added 16:9 layout and default NVRAM with the monitor to 16:9 - Dipswitch fixes in atari_s1.c, atari_s2.c, brdrline, cupsoc, eggventr, harem, invrvnge and PinMAME - Fixed rom names in asterock, asterockv, eggventr, kchamp.c and sparkman - Renamed (dblaxle) to (dblaxleu), (finlflng) to (finfurl), (invrvnge) to (invrvngeb), (invrvngea) to (invrvngedu), (magicd2b) to (magicrd2c), (magicd2a) to (magicrd2b), (puzzli2) to (puzzli2s) and (xsleena) to (xsleenaj) - Description changes of 48 in 1 MAME bootleg (set 1, ver 3.09), 48 in 1 MAME bootleg (set 3, ver 3.02), Aero Fighters (Taiwan / Japan, set 1), Aero Fighters (Taiwan / Japan, set 2), Aero Fighters (World / USA + Canada / Korea / Hong Kong / Taiwan) (newer hardware), Agress - Missile Daisenryaku (English bootleg), Agress - Missile Daisenryaku (Japan), Aristocrat MK6 Base (15011025, Malaysia), Battletoads, Bubble Bobble (Japan, Ver 0.1), Bobble Bobble (set 1), Bubble Bobble (Japan, Ver 0.0), Bubble Bobble (US, Ver 1.0), Bubble Bobble (US, Ver 5.1), Darth Vader (bootleg of Space Invaders), Destination Earth (bootleg of Lunar Rescue), Double Axle (US, earlier), F-X (bootleg of S.R.D. Mission), Hang Pilot (ver JAB), Invasion (bootleg set 1, normal graphics), Invasion (bootleg set 2, no copyright), Invasion (bootleg set 3, R Z SRL Bologna), Invasion (bootleg set 4, R Z SRL Bologna), Jolly Card (Austrian, Fun World, bootleg), Karate Champ (US VS version, set 1), Karate Champ (US VS version, set 2), Kick Start - Wheelie King, Magic Card II (Bulgarian hack), Magic Card II (hack, green TAB or Impera board), Magic Card II (hack, blue TAB board, encrypted), Ougon no Shiro (Japan), Puck Man (Falcom?), Puck Man (Japan set 1 with speedup hack), Puck Man (Japan set 1), Puck Man (Japan set 2), Puck Man (Japan set 3), Sea Wolf II, Spy Hunter II (rev 2), Solar-Warrior (US), Solar Fight (bootleg of Ozma Wars), Son of Phoenix (bootleg of Repulse), Space Attack (bootleg of Space Invaders), Space Attack II (bootleg of Super Invaders), Space Phantoms (bootleg of Ozma Wars), Spy Hunter II (rev 1), Star Wars (bootleg of Galaxy Wars), Super Invaders (bootleg set 1), Super Invaders (bootleg set 2), Tranquilizer Gun, WEC Le Mans 24 (set 1), Vs. Super Mario Bros. (set ?, harder) and Xain'd Sleena (Japan) - MAME . Added support for DEVCB_UNMAPPED, that will do the logging on read/write of device callback, preventing a need for making dummy log line handlers. . Device callback support for 32bit and 64bit handlers and added missing parts to devcb (emu\devcb.c) . Couple of mame.lst corrections . Created a base class delegate_common_base for all delegate types. Created a binding_type_exception which is thrown when a bind attempt fails due to mismatched types. . Added helper templates to driver_device to wrap legacy device read/write handlers into driver_device member functions. This should help move some things forward until more common code is converted into proper devices. . Introduce new module DEVCB2 which contains modernized versions of devcb. Compared to previous implementation this one is simpler overall, trampolining calls through a single internal set of adapter functions. The new versions are also designed to be specified in the machine_config rather than in structures, so they are no longer simple POD types. Additional new/changed features: * Reads and writes can map to delegates for line or 8/16/32/64-bit. * Reads and writes can map to an I/O port. * Reads can be mapped to a constant value, with or without logging. * Writes can be mapped to a device's input line. * All reads/writes can have a shift, mask, and/or xor applied. * Devices can opt to make the functions safe-if-NULL when resolving. * Only member function types are supported. . A little more unification of delegate types (emu\delegate.c/h). Cleanup/merging of delegate classes. Don't re-register the watchdog VBLANK callback on every single watchdog reset. . Removed redundant linking with dinput8.lib, it's conditionally added a few lines later (windows\windows.mak) . Fixed dynamic recursive device mapping (emu\addrmap.c/h and memory.c/h). Situation: * You have a device (pc-fdc) with a memory map on it. * You map it dynamically into a cpu (maincpu) address space with install_device (isa-fdc does that). * The device pc-fdc has a subdevice (upd765). * The subdevice upd765 has its own memory map. * The pc-fdc memory map includes the upd765 memory map through AM_DEVICE("upd765", ...). Before the fix, the code would search for upd765 as a subdevice of maincpu and not of pc-fdc. . Map from the CPU's owner, not the root device, otherwise siblings of CPUs coming from config fragments aren't happy (emu\memory.c). . We can have a map for 8bits on 8bits (emu\addrmap.c) . Avoid a collision between address_map the type and the method of the device_memory_interface class (emu\addrmap.h) . Tell in which zips a missing rom was searched for (emu\romload.c) . TAB menu: Moved "Analog Controls" to under "Input (this xx)", and renamed "Driver Configuration" to "xx Configuration" (xx is Game in MAME, and System in MESS). . Added verifysoftlist command for verifying software availability for separate software lists (emu\clifront.c) . Added support for folding rects diagonally, allowing you to draw right-angled triangles (use to flip/rotate them). Better use yes/no instead of 1/0. Make a triangle/poly primitive (emu\rendlay.c). . Got rid of generic color overlays, almost all of them were used by only 1 game each (ho20ffff.lh, ho2eff2e.lh, ho4f893d.lh, ho88ffff.lh, hoa0a0ff.lh, hoffe457.lh, voffff20.lh and hoffff20.lh). - Compiling . Modernized some static calls in 1945kiii, 39in1, ace, acefruit.c, aces1.c, acommand, 2mindril and albazc.c . Spaces are converted to tabs at beginning of lines and tabs are converted to spaces everywhere else. Comments in .lst files are cleaned. Extra blank lines are trimmed from ends of source files (tools\srcclean.c). Realigns to the tab size if a space is followed by a tab, this mimics the previous behaviour (tools\srcclean.c). Fixed an incorrect optimisation (tools\srcclean.c). . If the start of a multi-line comment is indented then following comment lines will be indented with tabs up to that point (tools\srcclean.c) . Removed GetCommand() and made command and commandLength protected (machine\cr589.c, scsicd.c, scsihd.c, scsihle.c, scsihle.h, gdrom., acb4070.c, d9060hd.c and s1410.c). . Fixed debug\dvmemory.c 0.147u1 - New games: Claybuster - New Working games: Gun Champ and Star Fighter (v1) - New Non-Working games: Game Magic, Blankity Bank (PCP) (SYSTEM80) and VLC Nevada - New clones: 99 Bottles of Beer, Asterock (Videotron bootleg of Asteroids), Cruis'n Exotica (version 1.3), Dodge City (2131-82, U5-0D), Enforce (World), Jurassic Park (Japan), Pound For Pound (Ace/Bwb) (sp.ACE) (set 8) and Sega Bass Fishing Deluxe (Japan) - New drivers: gammagic.c and vlc.c - M6509 CPU: Fixed EA zero page indirect + Y (post indexed) - M6800 CPU: Removed AS_DATA on all M6800 variants and AS_IO on CPU variants not having IO lines - TMS0980 CPU: device_func to device callback change (tms0980\tms0980.c/h) - Dynamic Re-Compiling: Removed some expressions which are always true (cpu\drcbex64.h and drcbex86.h) - Pokey sound: Moved handling of quad Pokey into game driver (drivers\irobot.c, mhavoc.c and starwars.c) - SID sound (MESS): Fixed crashes (sid6581.c/h) - SN76496 sound: Removed legacy device - Y8950 sound: Fix for Ginga NinkyouDen regression (sound\8950intf.c) - 6526 CIA . Added proper start value (initialize data direction registers) . Implemented a nearly cycle-exact "old" MOS6526 CIA, which passes most of the Lorenz/VICE CIA tests (drivers\alg.c, arcadia.c, cd32.c, mquake.c and upscope.c). - 6532 RIOT . Internal timer is always running . Slightly better reset fix . Fixes several Atari 2600 regressions (MESS) . Made reg_r method debugger friendly . Slightly improved startup values to fix more Atari 2600 regressions - CHDMAN . Fix for "file note writeable" when creating (ID 05008), plus consolidated some duplicate/redundant code (lib\util\chd.c) . Removed some expressions which are always true (util\cdrom.c) - GDROM: Implement GetSectorBytes() - NVRAM: NVRAM_HANDLER removal (drivers\bfm_sc2.c, bfm_sc4h.c, bmcbowl.c, dgpix.c, gal3.c, mitchell.c, includes\bfm_sc45.h and includes\mitchell.h) - PC Keyboard: Removed not used calls (machine\8042kbdc.c) - DS75160: Implemented DS75160A/DS75161A IEEE-488 GPIB Transceivers - SCSI . Moved some more SCSI command handling from scsibus into scsidev . Removed init_scsibus() from scsibus_device as it was only used for passing the sector size, in reality this is an attribute of the hard drive and not the bus. It now asks the device for the size, however this will go away soon. . Created new base class for SCSI devices which scsihle derives from . Talking to scsibus is now done via scsicb . Call base class in device_start() . Moved extra SCSI_PHASE_* into scsihle.h . Changed rmnimbus to use DEVCB & added a callback for ACK . Added atn to scsicb for completeness & renamed reset line to rst . Moved SCSI protocol code from scsibus_device to scsihle_device, leaving scsibus_device to calculate the current bus contents and distribute it to each of the scsidev_device. . Fixed VS2012 warnings in machine\scsicb.c - EGA: Removed not necessary code (video\isa_ega.c) - VGA/SVGA . Fixed 256 colour SVGA modes when used by the gfxultra . Just renaming a few functions in gfxultra (video\pc_vga.c and isa_vga_ati.c) . Made logerror output from 8514/A related functions optional (video\pc_vga.c) . Bit more function renaming and variable shuffling . Moved 8514/A specific functions and variables to the ATI device, as the Mach8 is properly 8514/A compatible, and made the S3 device derived from the ATI device (instead of vice versa). . Moved 8514/A and Mach8 implementations to separate devices . Fixed uninitialised structs causing issues with SVGA and 8514/A devices in debug builds . Used read8_delegate instead of read8_space_func for vga port read (drivers\calchase.c, gamtor.c, magtouch.c, midqslvr.c, pangofun.c, pcat_dyn.c, pcat_nit.c, photoply.c, pntnpuzl.c, queen.c, savquest.c, su2000.c, taitowlf.c, voyager.c and xtom3d.c). . Made Cirrus SVGA card just another VGA implementation, and removed a need for additional parameter (drivers\calchase.c, gammagic.c, gamtor.c, magtouch.c, midqslvr.c, pangofun.c, pcat_dyn.c, pcat_nit.c, photoply.c, pntnpuzl.c, queen.c, savquest.c, su2000.c, taitowlf.c, voyager.c, xtom3d.c and indiana.c). . Removed need for pc_vga_io_init also made accessors for linear access to VGA memory needed for some models . Some cleanup (video\pc_vga.c) . Converted VGA to be multiple devices, this will require some cleanup in future. . Moved structs to classes - SVGA . Added extra extended start address and banking registers to S3 SVGA. Bit more function renaming and variable shuffling. . Moved 8514/A and Mach8 implementations to separate devices . Fixed uninitialised structs causing issues with SVGA and 8514/A devices in debug builds - TMS9928 video . Palette init can't be made inside any other place then main machine config, therefore palette in this case must be set in device_start. RB: Better move this to RGB32 so no need of palette, otherwise will not work with other video devices. . Converted TMS9928/9 to using RGB32 bitmap so chips can coexist with other video screens - Voodoo . Fixed potential out of array access in video\voodoo.c logerror() (MAME crash when try to read the voodoo region) (ID 03464) . Implemented Voodoo 3 overlay scaling - 8080bw.c . Fixed games crashing when loading MAME . Promoted Gun Champ to working. Removed 2nd Player. Replaced 2-way Joystick with Light gun. . Made 555 sound timer a device in Space Chaser - aristmk5.c: Modernized Archimedes - bankp.c: Fixed Z80 CPU1 and SN76489 clock speeds and VSync - bzone.c, cd32.c, circusc.c, mario.c, maygay1b.c, qix.c: Fixed regressions - cischeat.c: Fixed debug compile (video\cischeat.c) - cps1.c: Changed video timings to SCREEN_RAW_PARAMS - cps3.c: Only load the SIMMs on NO-CD sets. Don't use ROMX_LOAD when it's not needed. - decocass.c: Modernized system and cleaned. Fixed debug build. - dkong.c . Fixed incorrect gfx during player death sequence and improved blue background levels and gradient for Radar Scope . Removed device_memory_interface from driver_device, fixes issues with Donkey Kong clones, and various others. . Fixed Donkey Kong 3 crash . Changed space.read_byte -> prog_space->read_byte - firebeat.c: Firebeat cleanup - freekick.c: irq0_line_hold frequency and more driver notes. Fixedd Z80 CPU1 clock speed and VSync. - galaga.c: Fixed Galaga crash by using proper state - there are most likely more of this. - galpanic.c: Fix for -valid (MCFG_TIMER_DRIVER_ADD_SCANLINE) - homerun.c: Considering the sprite hardware is like on NES, IN0 d6 looks like it is sprite-0 collision detection. - homerun.c, meyc8088.c, namcos22.c and pntnpuzl.c: Required/optional_* templates can auto-return a reference as well - igspoker.c: Fixed define usage in driver - jack.c . Fixed Z80 CPU2 clock speed . Fixed Joinem testmode. Added columnscroll. Cleanup. . Fixed visible area and palettesize in joinem and loverboy . Moved Uncle Poo from Poo to Jack driver. Fixed sounds incomplete/slow or misplayed (ID 05017). Cleanup driver. - legionna.c and raiden2.c . Added Seibu COP 0x1c param to 0x0205 command, fixes at least sprite positioning during intros of Raiden 2 and Zero Team (but breaks gameplay in Zero Team, needs investigation) . Made Seibu COP 0x42c2 command more accurate, makes Legionnaire enemies to behave properly and match finally starts in Seibu Cup Soccer. . Fixed rounding error on 0x42c2 . Added command 0x6200 note . Added 0xe38e command, used by Seibu Cup Soccer to follow the ball. . Quick and dirty porting of R2 opcode table into M68k based games . Added reg/off for unknown opcodes . Check-point (seibu_cop_io, seibu_cop_device) . Made default base to be 0x400 . DMA hooked up (machine\seibu_cop.c) . Experimental collision detection . Ported palette brightness effects to Raiden 2 HW, used by Zero Team and X Se Dae. . Ported 0x42c2 to raiden2.c, helps with ship entry, respawn and power-up movements. - mcr68.c: Added DIP locations to all sets in the driver - megadriv.c: Fix for crashes in MESS SEGACD clones. Some Mega CD refactoring. - midtunit.c: Fixed driver crashes - midtunit.c, midwunit.c, midxunit.c: Fixed corrupted graphics, quickly crashes when starting (ID 05007). - midvunit.c: Made timer_device use delegates - midwunit.c: Fixed corrupted graphics, quickly crashes when starting in Midway W-Unit all sets - mw8080bw.c . Fixed games crashing when loading MAME . Added simple color overlay to 280-ZZZAP (bonnet/sky can't be added to MAME internal layout of course) . 280zzzap, boothill, checkmat, desertgu, seawolf, gunfight and tornbase designed and developed by Dave Nutting Associates. . Align driver gamelist. Small update. - namcos12.c and namcos23.c: Made Epson R4543 RTC a proper RTC device, eliminates duplicated code in Namco Systems 12 and 23. - naomi.c: Fixed year in a couple of Atomiswave games, as per title screen. Some DC cleanup. - nemesis.c: Fix for -valid (MCFG_TIMER_DRIVER_ADD_SCANLINE) - ninjakd2.c . Small cleanup. Added support for savestates. . Fixed maincpu rom loading in Omega Fighter . Added workaround for '5268 MOTION ERROR' in Atomic Robo-kid. It looks like it's due to a buggy random number generator, then it possibly happens on the real arcade cabinet too. I doubt it is protection related, but you can never be sure. Fixed maincpu rom loading. - nss.c, sfcbox.c and snesb.c: Fixed SRAM issues (machine\snes.c) - seattle.c: Fixed potential out of array access in video\voodoo.c logerror() - MAME crash when try to read the voodoo region (ID 03464) - segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c and system16.c . Fixed y board sprite colors (the 3ff to 7ff change) . Fixed problem with marking dirty region - segas24.c: Made timer_device use delegates - segas32.c: Added the ROM board Sega ID# to Jurassic Park - segaxbd.c: Fixed problem with marking dirty region (video\sega16sp.c). This fixes sprites glitching or disappearing in most Sega X Board sets (ID 05015). - segaybd.c . Fixed Sega Y-board sprite colors (the 3ff to 7ff change) (gloc, strkfgtr, rchase, pdrift: On some text, HUD, outer view of aircraft) (ID 05022) . Fixed problem with marking dirty region (video\sega16sp.c) - seibuspi.c: Get rid of DS2404 trampoline code - shangha3.c . Added irq ack to Shanghai 3 HW . Cleaned up gfx ROM reading . Added driver notes . Fixed M68K and hooked up SCREEN_RAW_PARAMS for Blocken. Game was definitely running at erratic speeds before. This fixes Blocken demo play screen freezes (ID 00985). - stv.c: Modernized Saturn a bit (drivers\saturn.c and includes\stv.h) - suna8.c . Promoted 'Star Fighter (v1)' to playable state: Address line scrambling of data ROMs. ROM bank latching and mirroring. Sound latch and NMI disable. Patched some further protection. Added graphics banking. . Fixed sound samples width, improves speech in e.g. clone Rough Ranger (v2.0, unprotected, bootleg?) - system1.c: Fixed array out of bounds access in video - taitotz.c: Comment excessive printf spam (over 60MB) in a 3 second run of Type Zero BIOS set. Didn't seem to effect any other set in the driver. - vectrex.c: H file cleanup (TIMER_CALLBACK) - vicdual.c . Fixed Carnival clones (Head On hardware, set 1/2) game speed - compared to normal Carnival sets is too fast (ID 03831) . Fixed Digger gameplay speed, it's running at same speed as its JP sister game Heiankyo Alien. . N-Sub coinage dipswitch settings (ID 04717) . Added dipswitches from manual to 'Invinco / Deep Scan' and 'Invinco / Head On 2' (ID 04718) (ID 04719) . Cleaned up Lives dipswitches . Added some DIP locations and did minor cleanups to input ports . AM_RANGE(0x00, 0x1f) with a global mask of 0xf made no sense . Removed misplaced Irem 'Head On' PCB info, it already is on top of the m10.c driver where it belongs. . Added some comments - viper.c: Fixed EPIC register access. Made timer_device use delegates. Removed devconv.h and memconv.h just moved used inlines for now. - vsnes.c: Added some missed code (vsnes_state, screen_update_vsnes) - AGEMAME . Added missing clone sc2cpe3 which had GAME( macro and ROM_START, but was never added to mame.lst . Removed altrevs rom in m1htclb. Changed region maincpu to altrevs. . bfm_sc1.c, bfm_sc2.c, bfmsys85.c, jpmimpct.c, jpmsys5.c, mpu3.c and proconn.c: Changed FME drivers to use per-driver layouts, rather than awpvid generic ones - should make tiny builds a bit easier, and gives more opportunity to tweak for hardware specific stuff. Fixing the same bfm_sc1.c screen related issues that plagued Scorpion2 after the big splitup. Commented out non-existent screen to fix crash in bfm_sc2.c. . Fixed TMS9980AL/TMS9981L CPU1 clock speed in jpmsru.c - PinMAME . atari_s1.c: More WIP (system works but no sound) . flicker.c: Replaced temporary beeper sound with Samples (bumper, chime1, chime2, chime3, coinin, hole and knocker.wav) in Flicker. Added generic set of Pinball mechanical sounds. Added NVRAM and notes. . g627.c: Added motor simulation, added NVRAM, mechanical sounds and notes in Rotation VIII . nsm.c: 'Hot Fire Birds' WIP. Added 2x AY-3-8912A (1381500 Hz) sound and left/right speakers. . rowamet.c: Fixed irq call to newest code (rowamet_state) in Heavy Metal . sleic.c: Added driver notes . spectra.c: WIP (schematic and PinMAME used as references). Added inputs and mech sounds. Added remaining sounds, game marked as WORKING. . techno.c: Added NVRAM to X Force . wico.c: Af-Tor WIP (Schematic and PinMAME used as references). Fixed display, marked as WORKING. Added SN76494 (156250 Hz) and Samples sound. . zac_1.c: Added generic set of Pinball mechanical sounds (outhole and knocker sounds). Added NVRAM. . zac_2.c: Added NVRAM . zac_proto.c: Added NVRAM - Area 51: Site 4: MediaGX cleanup - Black Touch '96 . Improved the graphic rendering a bit, almost where it should be. . Sound still missing and other possible issues related to PIC that is not hooked up - any help there is appreciated. - Catch (prototype): Fixed crash - Gunpey: Fixed OKI6295 clock speed (ID 03751) - The Hand: ROM 10 has pointers to data in 4xxx-6xxx region, $0000-$3fff is probably for MCU internal rom? - Intersecti: subcpu skeleton and small note update - Lord of Gun: Emulated protection rather than patching it out - Metal Slug X: Better simulation of protection device - PC Engine: Making pcecommn to be a main class for other PCE related drivers (ertictac.c, ggconnie, paranoia, tourvis.c, uapce.c) - Pong: Fixed pong/pongf crash on exit - re-introduces a memory leak for now (machine\netlist.c) (ID 005009) - Space Zap: Added color overlay (The original game likely used a black and white monitor with an overlay) (ID 01064) - Thrill Drive: Fixed reversed steering input - Thunder Cross: Eliminate a GAME macro for Thunder Cross (Japan, newer revision)(thndrxja) not proven to exist. It is supposedly a later revision of the japanese set currently in MAME. No roms were ever sourced for this set, so the GAME macro no longer exists. - Tournament Arkanoid: Game is a special version, a la 'NBA Jam TE', de-cloneize it. - Water Ski: Mark possible bad dump (gfx1 rom a03-08) - Input port: Removed legacy port changed support (emu\ioport.h) - Dipswitch fixes in wico.c, vicdual.c, blackt96, mcr68.c, jack.c, gunchamp, spectra.c, atari_s1.c and jpmsys5.c - Fixed rom names in mainevt and gunchamp - Renamed (3do) to (3dobios), (beastrzb) to (beastrzrb), (cd32) to (cd32bios), (cdimono1) to (cdibios), (crusnexoc) to (crusnexod), (dodgectya) to (dodgectyb), (dodgectyb) to (dodgectyc), (enforce) to (enforcej), (modelr) to (gunchamp), (tharrier) to (tharrieru) and (tharrierj) to (tharrier) - Description changes of 280-ZZZAP, 3DO Bios, Alpha One (Vision Electronics), Asterock (Sidam bootleg of Asteroids), CD-i Bios, CD32 Bios, Dangun Feveron (Japan, Ver. 98/09/17), Dodge City (2131-82, U5-0 GT), Dodge City (2131-82, U5-50), Extra Inning / Ball Park II, Flicker (prototype), Flicker (prototype), Gun Champ, Jurassic Park (World), New Double Bet Mahjong (bootleg of Janputer) (ID 05020), Ninja Baseball Bat Man II (bootleg), Photo Finish (bootleg?), Pinbo (bootleg), Sega Bass Fishing (Japan), Task Force Harrier (Japan), Task Force Harrier, The Adventures of Robby Roto!, Undercover Cops - Alpha Renewal Version and X Se Dae Quiz (Korea) - MAME . Removed some expressions which are always true (emu\sound.c) . In some of the READ/WRITE_DEVICE*_HANDLERS, use space instead of driver to fetch the machine. This helps highlight where the actual driver dependencies are. . Moved device_delegates into their own files. . Employed a non-templatized helper class so that the code can live co-located, rather than invading device.h. . Changed the read/write delegates to derive from device_delegate. . Updated the address map macros to create these properly. . Removed remnants of the old AM_BASE/SIZE macros from the memory system. . Manual cleanup of MAME and MESS includes. INTERRUPT_GEN -> INTERRUPT_GEN_MEMBER. Changed from device->machine() to space.machine() in device handlers in order to make next changes easier. Replaced some *_DEVICE_HANDLER with _MEMBER calls. Removed _new from name of modern device (SEGA VDP PSG_NEW, SN76489_NEW, SN76489A_NEW, SN76496_NEW, U8106_NEW and Y2404_NEW) (sound\sn76496.c, sn76496.h audio\qix.c, drivers\appoooh.c, atetris.c, bankp.c, centiped.c, circusc.c, docastle.c, drmicro.c, exedexes.c, finalizr.c, freekick.c, galaxold.c, gatron.c, gberet.c, goldstar.c, guab.c, homedata.c, hyperspt.c, ikki.c, jailbrek.c, jantotsu.c, jpmmps.c, kncljoe.c, kontest.c, ladybug.c, lasso.c, lucky7.c, markham.c, megaplay.c, megatech.c, mikie.c, mjkjidai.c, mrdo.c, mrjong.c, pachifev.c, pacman.c, pingpong.c, retofinv.c, sbasketb.c, sbugger.c, segac2.c, segae.c, segag80r.c, senjyo.c, sg1000a.c, shaolins.c, spaceg.c, spcforce.c, sprcros2.c, strnskil.c, superdq.c, suprloco.c, system1.c, tp8.c, trackfld.c, wico.c, xyonix.c, yiear.c, zaxxon.c, includes\circusc.h, gberet.h, homedata.h, hyperspt.h, lasso.h, qix.h, sbasketb.h, segag80r.h, spcforce.h, trackfld.h, yiear.h, megadriv.c, megavdp.c and segamsys.c). Fix for describe_context (emu\machine.c). . Typos in internal MAME list (The ProgettoEMMA database has different "correct" info than internal MAME list) (ID 05012) . Added missing DECLARE_'s (cpu\psx\dma.h, irq.h, mdec.h, psx.h, rcnt.h, sio.h, machine\m6m80011ap.h, s3520cf.h, video\m50458.h, mb90082.h, psx.h, audio\midway.h, includes\archimds.h, segaxbd.h and segaybd.h) . Modernized screen update calls. Changed most of screen.machine() to machine(). Clean some newly introduce macros since, calls already have full names (emu\screen.h, drivers\jollyjgr.c, machine\slikshot.c, video\cinemat.c, dynax.c, kaneko16.c, m62.c, playch10.c, seta.c, ssv.c, taitojc.c, tceptor.c, tmnt.c, toaplan2.c, vicdual.c and mz700.c). Some more cleanup (drivers\cps2.c, ddenlovr.c, nbmj8991.c, pipedrm.c, powerbal.c, segas16a.c, segas16b.c, segas18.c and includes\dynax.h). . Memory handler normalization, part 1. READ/WRITE_DEVICE*_HANDLERs are now passed an address_space &, and the 8-bit variants get a mem_mask as well. This means they are now directly compatible with the member function delegates. Added a generic address space to the driver_device that can be used when no specific address space is available. Also added DECLARE_READ/WRITE_DEVICE*_HANDLER macros to declare device callbacks with default mem_mask parameters. . Memory handler normalization, part 2. Change legacy read/write handlers to take an address_space & insteadof an address_space *. Also update pretty much all other functions to take a reference where appropriate. . Memory handler cleanup 3. Add mem_mask parameter to 8-bit handlers to match the others. To ease pain, added DECLARE_READ/WRITE_HANDLER macros that set up a default parameter. Also updated devcb so that the handlers can be called with or without the mem_mask. . Removed all traces of read/write*_device_func from memory.c. All legacy device callbacks are now promoted to delegates and handed off to the modern read/write handler managers. Fixed ibm5150 and surely many other broken systems. . Make device_memory_interface::space() assert against NULL and return a reference, and pushed references throughout all address space usage in the system. Added a has_space() method to check for those rare case when it is ambiguous. Also reinstated the generic space and added fatal error handlers if anyone tries to actually read/write from it. . Fixed DEVCB_MEMORY_HANDLER regression. Removed device_memory_interface from driver_device, fixes issues with dkong clones, and various others. . Introducing TIMER_CALLBACK_MEMBER and modernization part 1/2/3. Made timer_device use delegates (emu\timer.c/h, drivers\midvunit.c, segas24.c, viper.c, machine\balsente.c and megacd.c). Made member calls work (emu\timer.c/h). TIMER_CALLBACK_DEVICE_MEMBER modernization part 1/2. Some manual cleanup (drivers\chinagat.c, cps2.c, ddenlovr.c, eolith.c, eolith16.c, eolithsp.c, galaga.c, mpu4hw.c, saturn.c, vegaeo.c and includes\cps1.h, ddragon.h, dynax.h, eolith.h, eolithsp.h, galaga.h, mpu4.h, stv.h and xevious.c). . Added -verifysoftware command . Fixed lib7z portability problems that resulted in memory trashing in some configurations - Compiling . Fixed compile (DEVCB_DRIVER_MEMBER(scramble_state, scramble_protection_r/w)) in scramble.c . Some h files cleanups (includes\1942.h, 1943.h, arkanoid.h, battlex.h, cabal.h, circus.h, ddragon3.h, equites.h, exedexes.h, exprraid.h, n64.h, namcona1.h, namcos21.h, ninjakd2.h, nova2001.h, pbaction.h, system16.h and tehkanwc.h). . Fixed Clang compile error (emu\device.h) . Fixed resource data of Windows executable. Removed some expressions which are always true/false (drivers\chihiro.c, firebeat.c, gstream.c, megaplay.c, segas16a.c, taitopjc.c, video\artmagic.c, konamigx.c and m90.c). . Stop allocating arrays of UINT8s for the tokens, when we can allocate objects of the real type. . Fixed GCC 4.4 compile . Added resources and icon for UME / added UME support to verinfo and updated the usage string. . Fixed MSVC compilation (mame\audio\micro3d.c, includes\megadriv.h, mame\machine\megavdp.c, osd\windows\d3d8intf.c, d3d9intf.c, d3dhlsl.c, d3dhlsl.h, d3dintf.h and drawd3d.c). . OSX compile fixes 0.147 - New games: Draw Poker (Bally, 03-20), Ganbare Jajamaru Saisho wa Goo / Ganbare Jajamaru Hop Step & Jump and Magicball Fighting - New Working games: Brick Zone, F1 Super Lap, GTI Club, Hang Pilot, Little Robin, Solar Assault and Thrill Drive - New Non-Working games: LD Mahjong #4 Shabon-Dama, Papillon and Sega Clay Challenge - New clones: Dodge City (9131-02), Dodge City (2131-82, set 2), Exciting Soccer (US), F1 Super Lap (World), Fantasia (940307 PCB), Ghosts'n Goblins (prototype), Ms. Pac-Man Heart Burn, Superman (U.S.) and Thunder Zone (World 4 Players) - 5A22 CPU . Rewritten cycle steal code for SNES from scratch and nailed it directly in the G65816 CPU core . Hooked up fastROM setting in the CPU core and FastROM resets at boot . Fixed a major bug with 5A22 timings, that was incorrectly taking extra steals at every read, write and rmw types of opcode. . Moved multiplication and division operation from SNES to 5A22 CPU core file . Small clean-up . Moved MEMSEL as well - 6502 CPU . Fixed peripheral port behavior by introducing pull-up and pull-down masks to the CPU interface . Refactored the indexed read/write to use devcb, and fixed the peripheral port for Plus4 (MESS) - ADSP21062 (SHARC) CPU . Minor optimizations . Changed delayed IOP writes to use timers . Rewrote DMA handling to use timers - Dynamic Re-Compiling: Give C backend x86/x64 shift=0 behavior for consistency (cpu\drcbec.c) - I386 CPU: xlat implementation fix (cpu\i386\i386op16/32.c) - MC68HC11 CPU . Added asl_ext, bclr_dir and bset_dir opcodes to the HC11 core . Fixed RORA/RORB opcodes in HC11 core . Fixed N flag in 16-bit operations in HC11 core - PowerPC 4xx/6xx CPUs . Implemented PPC403 DMA chaining . Fixed 601-type BAT processing (cpu\powerpc\ppccom.c) . 100% pass of integer portion of PPCTorture on all DRC backends (cpu\powerpc\ppcdrc.c) - Samsung S3C24xx (ARM MCU) . Placed s3c24xx video start and screen update into device . Converted remaining legacy_device_base users (machine\s3c24xx.c) - SPC700 CPU . Added sound mute in SPC700 then hooked up for NSS . Improved SPC700 cycle opcode timings - TMS9900 / TMS9995L CPUs: Removed some astring::stringbuffer() usage - fixes potential missing \0 termination - V810 CPU . Fixed a sign bug with CVT.WS opcode . Force srcbit and dstbit to be always under 32 bytes . Fixed SETFi opcode, fixes Vertical Force booting . Some other small clean-ups . Implemented remaining BSU opcodes - Z80 CPU: Get rid of old speedup hack (besides, it made halt timing inaccurate on drivers with custom cycletables) - Discrete Netlist . Updated netlist implementation . Now supports any resolution fitting reasonably into a UINT64 . Execution now uses a list sorted by execution time . Implementation now supports analog and digital inputs / outputs . First step in a move to "terminals" being both input / output . Improved object model . Pong . Rewrote video code, now emulates a monitor by analyzing the analog video signal and identifying vsync and hysnc pulses. . Removed all hacks. Overall performance increase of about 10% over the previous "pongf" implementation. . Pass some parameters in netlist.h by reference for consistency - CAPCOM-Q1 QSound and uPD7725: Fixed some printf format string warnings reported by Cppcheck - ES5503 sound . Preserve phase when oscillators loop . Fixed IRQ timing error introduced when I did the device conversion - ES5506 sound: Fixed inheritance and other issues. Fixed other issues. - Harddisk images . Support for writing to compressed hard drives using diff files (MESS: imagedev\harddriv.c and lib\util\chd.c) . Removed astring::stringbuffer() / use cached value in astring::len() instead of strlen() (lib\util\chd.c) - SN76489 sound: Continuing new device implementation for SN76489 and clones (drivers\goldstar.c, guab.c, jpmmps.c, lasso.c, mrjong.c, qix.c, sbasketb.c, sbugger.c, sg1000a.c and sprcros2.c) - SN76489A sound: Continuing new device implementation for SN76489A and clones (drivers\finalizr.c, gberet.c, homedata.c, shaolins.c, system1.c and yiear.c) - SN76496 sound: Continuing new device implementation for SN76496 and clones (drivers\circusc.c, galaxold.c, hyperspt.c, pacman.c, pingpong.c, retofinv.c, segag80r.c, senjyo.c, spcforce.c, strnskil.c, superdq.c, suprloco.c, trackfld.c, xyonix.c and zaxxon.c). - Sound Blaster 16 (MESS) . Added Sound Blaster 16, and proper 16 bit ISA DMA handling. . Added 2, 3 and 4bit ADPCM support . Improved the isa_blaster ADPCM and simplifies the DSP protection, based on the ATI Stereo FX rom. . Correct the output in ADPCM mode and inhibits irqs after the protection command . Test-sbc.exe works again - ATI Stereo F/X: Added ATI Stereo F/X ISA card support - U8106 sound: Changed 'U8106' to 'U8106_NEW' - uPD7759 sound . Added uninitialized variable . Added asserts to prevent array overflow or nullpointer access . Rommask makes more sense . Update notes . Paletteram is readable . Title correction . Fix for assert - Y2404 sound: Changed 'Y2404' to 'Y2404_NEW' (Pachifever and Time Pilot '84) - 6526 CIA: Improved MOS6526 interface - 8237 DMA / AM9517A DMA: Cleanup the end-of-dma notifications (PC hardware) - HuC6261/HuC6270/HuC6272 video: Added skeleton-ish for the HuC6261. Start displaying some things from HuC6270-b; doesn't look correct yet though. Fixed PAD latch and irq priority. Template for King device (video\huc6272.c). Basic KRAM hook. Added BGx mode selection register (video\huc6272.c). - I2C bus memory: Use device_t.static_set_static_config (machine\i2cmem.c) - IDE . More proper solution for not connected IDE devices . Support IDE command 0x31 (IDE_COMMAND_WRITE_MULTIPLE_NORETRY) - Namco IC: Converted Namco C45 road chip to a device. Updated users. Added support for tilemaps to be passed a gfx pointer instead of a gfxnum (drivers\namcoic.c) - Programmable Logic Device (PLD) . Numerous jedutil tool improvements . Made some modifications to the jedutil tool to allow the viewing of simple combinatorial jeds (adding support for registered and gals in the future) by taking a jed file and printing out human-readable equations. . Changed the command line options of the jedutil tool to know take an initial argument to specify what the tool should do. For example to convert a jed to bin the command is now: jedutil -convert and jedutil -convert . To view a jed file with human-readable equations the command is jedutil -view . . Added a simple regression test for the tool that just verifies that the currently known PALs have the row and column fuse location mapped correctly and at the moment this tool runs under Windows only. Under the directory src\regtests\jedutil there is a Windows Script File with the name jedtest.wsf that if run from the command line with the command "cscript jedtest.wsf" will verify that a dump of the jeds in src\regtests\jedutil\jeds matches the good dumps in src\regtests\jedutil\baseline. Reference jed files created using the tool eqn2jed which is included with Opal Jr and these files are in src\regtests\jedutil\eqns (regtests\jedutil\baseline\pal10h8.txt, pal10l8.txt, pal12h6.txt, pal12l6.txt, pal14h4.txt, pal14l4.txt, pal16h2.txt, pal16l2.txt, pal16l8.txt, pal20l10.txt and pal20l8.txt), (regtests\jedutil\eqns\pal10h8.eqn, pal10l8.eqn, pal12h6.eqn, pal12l6.eqn, pal14h4.eqn, pal14l4.eqn, pal16h2.eqn, pal16l2.eqn, pal16l8.eqn, pal20l10.eqn, pal20l8.eqn and readme.txt) and (regtests\jedutil\jeds\pal10h8.jed, pal10l8.jed, pal12h6.jed, pal12l6.jed, pal14h4.jed, pal14l4.jed, pal16h2.jed, pal16l2.jed, pal16l8.jed, pal20l10.jed, pal20l8.jed and jedtest.wsf). . Generalized the PLS100 into a PLA device of variable amounts of inputs/outputs/terms - SCSI . Glacial SCSI improvements towards NSCSI and beyond, moved the SCSI ID onto the device. . Turned WD33C93 into a device and made CPS3 flash roms optional on CD sets . Use device_t.static_set_static_config (emu\machine\wd33c93.c) . SCSI device tags are relative to the SCSI controller (machine\am53cf96.c and machine\ncr539x.c) . Removed SCSIConfigTable, SCSI devices are now linked using SCSIBUS from MESS. . Made S1410 device act as a SCSIHD with the custom commands, added D9060HD & ACB4070 devices to do the same thing (machine\scsibus.c and scsihd.c) . Split out callbacks from scsibus_device into scscb_device, eventually this will be a SCSI device. SCSIBus_interface is no longer required and has been removed. . Removed test ready command as scsidev already handles it (machine\scsibus.c/h) . Removed am53cf96_get_device and some other unused GetDevice() trampolines. AM53cf96 is now a device. Use device_t.static_set_static_config. - TC0091LVC Custom: TC009xLVC modernized tilemap (Last Bank and Fruit Dream). - TMS9928 video: Relocated scanline timer start at the first active pixel instead of left border, this makes accurate timing interrupt VDP (video\tms9928a.c). - CGA: Use proper macro for devices (video\isa_cga.c) - VGA . Fixed potentially uninitialized variable when building with MSVC. Fixed compiling with MSVC, code was probably wrong (video\pc_vga.c). . Added IBM VGA card . Added preliminary ATi Graphics Ultra support. . Added extended bits for display start and cursor start. . Expanded cursor_start to UINT32 to accomodate (gfxultra). . Fixed video memory paging (video\pc_vga.c). . Fixed for blank screen after starting MS-DOS Editor or QBasic (gfxultra) . Very basic implementation of the linedraw register, enough to pass the BIOS' test (gfxultra). - SVGA . Converted svga_s3 to 16-bit ISA device. The S3 chipsets have 16-bit wide registers, and can only be used on AT systems. . Preliminary work on S3 764 . Added support for S3 SVGA WAIT bit on rectangle drawing, fixed rectangle width and height. . Added bitblt function . Minor fixes relating to S3 SVGA text drawn at negative coordinates . Fixed S3 SVGA rectangle wait drawing to work under DirectX 5 . Implemented S3 SVGA background and foreground mix registers . Fixed text rendering when full acceleration is set in WIN95 . Implemented S3 SVGA pattern fills, fixed some BG/FG mix functions, fixed a bug when drawing wait rectangles in reverse direction. . Added memory-mapped I/O ports, and various other updates. . Made co-ordinates always relative to the start of VRAM. This fixes Virtual Pool using accelerated S3 video drivers. . Added basic support for Bresenham lines . Added S3 SVGA Hardware Graphics Cursor. Works fine under Windows 95, allowing hardware acceleration to be set to full, but doesn't work right under Windows 3.1. . Added vector line drawing and short stroke vectors (svga_s3/gfxultra) - bfm_sc4.c: Fixed assert after OK in debug build (ID 05001) - btime.c: Cleanup driver - cidelsa.c: Death to palettes (palette_set_color_rgb) - cinemat.c: Use SOUND_START/RESET instead of MACHINE_START/RESET# - csplayh5.c: Fixed memleak for driver, please check do not have chd (video\v9938.c) (ID 04634) - cobra.c . Added JVS emulation . Added K001604 for Racing Jam DX . Added latest research . Added bilinear filtering and simple alpha blending . Added DMA sound streaming - cps3.c: Turned WD33C93 into a device and made CPS3 flash roms optional on CD sets - deshoros.c: Update notes - ddenlovr.c . Puzzle Game Rong Rong: Fixed buffer overrun in rongrong . [debug] Crash after exit in mjflove, rongrongg and rongrongj (ID 04323) - expro02.c: Added PCB layouts for the Comad 940429 and 940307 boards used for the two different versions of Fantasia. Minor typo correction. - galaga.c: Fixed Galaga driver regressions ([debug] Crash immedately after OK) (ID 04831) - galaxian.c: Move sx+1 up (sprites_draw), fixes stray sprite line at screen edge. - ghosteo.c: Placed S3C24xx video start and screen update into device - gticlub.c . Promoted gticlub (and clones), slrasslt and hangplt to working state. . Fixed texture coordinate rounding (video\gticlub.c) . Hooked up analog controls in Hang Pilot. Workaround for lock/unlock errors. . Added alpha-blended color gouraud polygon command - holeland.c, model3.c, starcrus.c and tsamurai.c: Fixed for palette issues in driver, have looped trough the SVN log to trace all similar. - homerun.c . Added asserts to prevent array overflow or nullpointer access . Added upd7756_device . Rommask makes more sense . Added resnet.h . Dynamic Shooting doesn't have a samplerom . Added external samples . Added UPD7756 and Samples. Fixed YM2203 clock speed. . Added D7756C placeholder, uPD7759.c doesn't support uPD7756 yet. . Improved gfx bankswitching . Fixed visible area . Fixed water (m_colorram) in Ganbare Jajamaru Saisho wa Goo - itech32.c: Removed not needed includes - jaguar.c . More proper solution for not connected IDE devices . First pass at modernizing the jaguar/cojag driver . Removed all static variable and use of AM_LEGACY_BASE / SIZE . Fixed jaguar problems caused, of all things, but having improperly swapped data in the wave ROM - kaneko16.c, Renju Kizoku: Fixed driver regressions - kangaroo.c: Fixed save state issue - konamigv.c: Removed am53cf96_get_device and some other unused GetDevice() trampolines - konamim2.c: Fixed Konami M2 CD access. Fixed PowerPC 602 CPU1/2 clock speeds. - legionna.c . Understood how the Seibu COP collision detection really works, greatly improving Godzilla, Heated Barrel and SD Gundam RT gameplay . Improved the collision detection (still some rounding errors). 0x588 is just a mirror of 0x580 apparently. . Added Seibu COP protection device (seibu_cop.c) . More notes (machine\seicop.c). Some minor mods. - littlerb.c: Kill user5 in SNES related drivers - looping.c: Updated driver to use the new TMS52xx device implementation - megadriv.c . Started making 32x a device, by creating a device and moving the CPUs there. . Get all the handlers into the device state . Moved a bunch of other stuff into the device state involving 32x. There should be no real functional changes at this point. . Made the genvdp a derived class of the newer SMS VDP because the genesis VDP has an sms compatibility mode where it basically operates as an sms VDP (with a few changes / limitations). . Fixed invalid partial update calls on negative scanlines . Fixed remaining regressions . In preparation for future work (basic device structure). Should have no functional change at this point (machine\megacd.c and machine\megadriv.c) . Added LC89510 CD Controller dummy (skeleton) device file to start moving some CDC stuff into so that it can then be shared with NeoCD - megatech.c . Shared palette fix for certain sms-based games in Mega Tech (machine\segamsys.c) . State members do not override legacy start/resets - merit.c: Minor doc update - meritm.c . Various rom name corrections and additional minor documentation . Added PCB layout and pinout for the Merit CRT-250 PCB - midtunit.c, midwunit.c and midxunit.c: Clean up Midway video decoding, removing need for AM_BASE/_SIZE_LEGACY. Fixed gfx rom loading. - model3.c: Made LSI53c810 optional (includes\model3.h) - namcofl.c: WIP Namco FL cleanup/modernization - namconb1.c: WIP Namco System NB-1 cleanup/modernization - namcos2.c and namcos21.c: Fixed C355 regression - namcos2.c . Some cleanups, removing the need for AM_BASE/_SIZE_LEGACY . Moved some handlers and statics into the state class . WIP cleanup/modernization . Converted Namco C45 road chip to a device. Updated users. . Added support for tilemaps to be passed a gfx pointer instead of a gfxnum - naomi.c: Fixed the key region name so Atomiswave games can decrypt and boot again - naughtyb.c, psychic5.c, vertigo.c and tsamurai.c: Some meaningless AM_RAM_WRITE - nbmj8991.c: Fixed and cleanup for palette - nss.c . Added Nintendo Super System device rom m50458 (baddump) . F-Zero runs without hacks, needs to implement the communication now. . Fixed SNES VRAM size. This fixes unable to see enemies in Robocop 3 (Nintendo Super System) (ID 03398). . Moved snes_oam in the state machine, allows to be showable in the debugger (video\snes.c and includes\snes.h). . Fixed vertical sprite wrap-around in SNES driver . State-ized CG RAM and snes_vram . Rewriting NSS driver in progress, hooked up the security keys . Various hook-ups, presumably dies at the EEPROM/RTC check and throws an error (enables the OSD layer bit) . Written up a bare-bones M50458 OSD video chip device, used by Nintendo Super System HW . Added underline for OSD. Testing vertical scrolling. . Improved vertical scrolling, now it's more or less reasonable. . Made a shadow ROM copy, the charset is now more faithful to the original reference. . Added horizontal/vertical char size, making the NSS logo to look better . Added blinking . Written a preliminary S-3520CF RTC chip device, used by Nintendo Super System. Give the RTC some life. . Hooked up the protection chip, fails for unknown reasons . Removed credit where it doesn't belong to (PROM keys are encrypted, wants money back) . Got the RP5H01 protection to work (still says no slot for whatever reason tho) . Update info and re-instate the URL for noca$h . F-Zero runs without hacks, needs to implement the communication now. . Various hook-ups for reset/halt lines and the like, all games but F-Zero doesn't boot now (drivers\nss.c, machine\snes.c and video\m50458.c) . Invert BIOSes (the default one was for Multi-carts), all games with a vaild security PROM now boots properly. . Some improvements, some base SNES bug(s) prevents this to work like expected . Added horizontal/vertical char size, making the NSS logo to look better. . Added sound mute in SPC700 then hooked up for NSS . Kill user5 in SNES related drivers . Fixed incorrect SPC700 IPL ROM behaviour in SNES driver(s), fixes some (not all) crashes at soft reset. . Fixed NSS reset behaviour, now games shouldn't die anymore when the CPU halts . Improved SPC700 cycle opcode timings . State members do not override legacy start/resets - nwk-tr.c . Promoted Thrill Drive (JAE) and clone (JAB) to working state . Improved LAN controller emulation . Fixed vblank interrupt and tilemap rendering . Correct tilemap position . Fixed LAN controller issues in Thrill Drive . Fixed Thrill Drive clones - pacman.c and scramble.c: Driver gamelist alignment - peplus.c: Added IGT ID-023 Protocol to driver. This additional DBV protocol allows all remaining unsupported sets to accept dollar bills in-game. The protocol is switchable via driver configuration (along with denomination). - playch10.c: Got the RP5H01 protection to work (still says no slot for whatever reason tho) - raiden2.c . Converted driver to use the collision detection routines . Added sort-DMA . Wrap-around fix (draw_sprites) . Made accurate trigonometry maths in Seibu COP (machine\seicop.c) - scregg.c . Cleanup driver . Added irqack, there is no coin counter. - segac2.c and segas18.c: Made the genvdp a derived class of the newer SMS VDP because the genesis VDP has an sms compatibility mode where it basically operates as an sms VDP (with a few changes / limitations) - segae.c: Replaced 'SEGA VDP PSG' sound with 'SEGA VDP PSG_NEW' - segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segaxbd.c, segaybd.c and system16.c . Created new sprite device base class, which manages a bitmap and a sparse bitmap for tracking which areas got updated. This allows sprites to be rendered independently to their own bitmap and then mixed in a final step. . Converted the Sega sprite device over to this new model, and moved the mixing steps out of the sprite implementations and into the driver-specific video updates where it belongs. . Added some further methods and helpers to the bitmap_t and rectangle classes . Created a sega_16bit_common_base class which handles thecommon Sega palette RAM mappings and open bus reads - segaorun.c: Minor doc update for a set of Turbo Outrun - segas16b.c: Fixed black screen in tetrbx, shinfz and isgsm (ID 04994) - segas32.c: Added patches to make F1 Super Lap work. Added "(Japan)" to 'F1 Super Lap' game title as this game is explicitly for the Japan region. - segaxbd.c . Minor doc update for G-Loc, added Sega Game & board ID#s . Fixed some outdated documentation in the driver (ID 04996) . Fixed MAME 0.146u5 sound regression - segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segaxbd.c, segaybd.c and system16.c . Created new sprite device base class, which manages a bitmap and a sparse bitmap for tracking which areas got updated. This allows sprites to be rendered independently to their own bitmap and then mixed in a final step. . Converted the Sega sprite device over to this new model, and moved the mixing steps out of the sprite implementations and into the driver-specific video updates where it belongs. . Added some further methods and helpers to the bitmap_t and rectangle classes . Created a sega_16bit_common_base class which handles thecommon Sega palette RAM mappings and open bus reads - sfcbox.c . First step to Super Famicom Box . Preliminary implementation of the Fujitsu MB90082 OSD chip, used by Super Famicom Box. . Kill user5 in SNES related drivers . Fixed incorrect SPC700 IPL ROM behaviour in SNES driver(s), fixes some (not all) crashes at soft reset . Basic emulation of the Z180 in Super Famicom Box HW . Added Fujitsu MB90082 OSD device rom - snesb.c . Moved snes_oam in the state machine, allows to be showable in the debugger (video\snes.c and includes\snes.h) . Fixed vertical sprite wrap-around in SNES driver. State-ized CG RAM and snes_vram . Fixed SNES VRAM size . Kill user5 in SNES related drivers . Fixed incorrect SPC700 IPL ROM behaviour in SNES driver(s), fixes some (not all) crashes at soft reset - snk68.c: Added asserts to prevent array overflow or nullpointer access. Rommask makes more sense. - splash.c . Changed the Machine Config to use actual OSC values and measured clocks as listed in the driver . Added a note about a Splash! PCB with alternate (higher) OSC clocks . Added a note about The Return of Lady Frog 9 rom and the 1 bit difference between the two sets . Fixed Z80 clock speed in Funny Strip . Fixed YM2203 clock speed in Rebus and The Return of Lady Frog . Fixed YM3812 clock speed and VSync in Splash! - taitogn.c . Fixed unallocated buffer. . Fixed Shanghai Shoryu Sairin and Shanghai Sangokuhai Tougi lockup at boot . Fixed NVRAM written incorrectly (ID 04060) - taito_x.c . Added info about an alternate Superman rom layout using a daughter card and half sized mask roms . Changed Gigandes/(earlier) descriptions as both sets support English / Japanese via dipswitch. But one set has a revised and correct service mode. - twinkle.c: Removed am53cf96_get_device and some other unused GetDevice() trampolines - viper.c: Removed not needed includes - 4 En Raya: One more small formating change - American Poker II: Fixed unable to init machine correctly (ID 04930) - Atari games: Slightly less abusive gfx_element hacking in video\atarimo, fixing memory corruptions. - Attack Ufo . Refactored MOS6560 interface to use devcb . Refactored VIC to a modern device (sound\mos6560.c). Replaced 'MOS 6560 / 6561 VIC' sound with MOS656X. . Refactored to use an RGB32 bitmap . Removed not needed includes - Berlin Wall: Fixed for game crashing or hanging on exit for some systems - Brick Zone . Promoted game to playable state . Fixed gfx ROMs loading . Fixed inputs in joystick version . Alternate data decryption . Fixed alternate opcode decryption ranges . Palette encryption, banking and writes disable. . Work RAM disable . Multiplexing of registers through protection . Added cheat / debugging inputs - Crisis Zone: Fixed crash before OK (debug) in clone Crisis Zone (CSZO3 Ver. A) (ID 04997) - Crush Roller: Cleanup sets descriptions, after feedback from yasu (ID 04976). - Cruis'n Exotica: Added info about Cruis'n Exotica v1.3 and correct information about the U12 & U13 roms. - Cyber Tank: Cleanup driver - Cycle Maabou: Standing cones are reddish-yellow/black instead of red/white - Daioh: Added layer offsets for clone Daioh (set 2) - Dead Connection: Verified dipswitches using Dip Sheet and through playtesting - Denjin Makai: Attempt to fix backplane color - Dodge City: Give Dodge City a more logical keyboard layout to play. Use standard defined "gambler" keys. - Dommy: Fixed incomplete/missing sound effects (ID 04978) - Draw Poker . Improved Draw Poker coin and hopper . Added Draw Poker meters . Added 'Miser On' dipswitch (what is this? - The game locks up if it's enabled) . Added default layout - Dynamic Shoot Kyousou: YM2203 clock speed - Fruit Dream: TC009xLVC modernized tilemap - G-Stream G2020: Fixed sound banking. Compared with a real PCB and everything sounds as it should. - Galactic Storm, Ground Effects, macrossp.c, Super Chase, taito_f3.c, taitojc.c and undrfire.c: Fixed debug assert (src\emu\attotime.h) (ID 04998) - Galaxian 3: WIP Namco Galaxian 3 cleanup/modernization - Glass: An attempt to understand sand document ome of the protection in Glass. We know in World Rally it shares the whole of main RAM with the Dallas, with subtle reads and writes / values being checked... - Grand Cross: Fixed crash before OK in debug build (sound\msm5205.c) (ID 05000) - Janken Man Kattara Ageru: Avoid unnecessary use of PORT_CODE - King & Balloon: Game does not have stars - King Derby and sangho.c: Fixed for palette issues - Konami games: Set K001604 tilemap origin based on cliprect (video\konicdev.c) - Konami PPC games: Fixed data out reads (machine\adc1038.c) - Last Bank: TC009xLVC modernized tilemap - Little Robin: Game is playable to a degree as you can finally see scores, "ROBIN" and more. Fixed vblank line irq triggering. - Magic the Gathering: One small fix helping recognition (char *tag) - Magicball Fighting: Game promoted to working. Added protdata.bin rom. - Major Poker: Small formating change, so I can automate things easier. - Malzak: Rewrote the SAA5050 Teletext character generator. Refactored Malzak driver to use the new implementation. - Michael Jackson's Moonwalker: Fixed problem causing coin lockout for P1 and P2 coin - Mole Attack: Small driver cleanup - Pac-Man - 25th Anniversary Edition: Added PCB layout - Panic Road: Trying to understand BG collision - Pinball . Various preliminary works in allied.c, atari_s1.c, atari_s2.c, atari_s3.c, de_1.c, g627.c, gp_1.c, hankin.c, jeutel.c, jvh.c, ltd.c, mephisto.c, micropin.c, nsm.c, rowamet.c, s3.c, s8.c, wico.c, spectra.c, techno.c and vd.c . Added remaining inputs to Flicker, some notes, sound (of sorts) and marked as working. Added standard buttons. Fixed coins. . Preliminary work on zac_1.c: Added timers, interrupt handler and some inputs. Added preliminary layout. Added display, inputs, notes. ewf and sshtlzac marked as working. X key was being used twice. Remainder of games (9 of them) are now working. Committing current progress. . Added preliminary code and layout to zac_2.c . Preliminary zac_proto.c work begun. Added layout. . Sound works in Heavy Metal (rowamet.c) . WIP (sound works in g627.c, nothing else does). Added inputs and diagnostic keyboard. . Fixed displays, fixed sensors so that the game is now playable. - The Pit Boss . Added dipswitches to the Pit Boss sets with DIP locations . Reordered sets from oldest to newest . Added GAME_NO_COCKTAIL flag as these games support a cocktail mode. . Mapped Player 2 controls for cocktail mode. - Pong . Updated netlist implementation . Now supports any resolution fitting reasonably into a UINT64 . Execution now uses a list sorted by execution time . Implementation now supports analog and digital inputs / outputs . First step in a move to "terminals" being both input / output . Improved object model . Pong: Rewrote video code, now emulates a monitor by analyzing the analog video signal and identifying vsync and hysnc pulses. Removed all hacks. Overall performance increase of about 10% over the previous "pongf" implementation. . Fixed netlist clock speed, visible area and VSync. . Fixed Pong crash in debug build (ID 04999) . Netlist memory leak fix - Run and Gun: Added fix for driver (Tried to convert the device :k055673 of type Konami 055673 to a P14k053247_device, which are incompatible). - Sengoku Mahjong: Fixed an horizontal scrolling bug - Stadium Hero: Updated info. Fixed OKI6295 sound clock speed. Added prom. - Table Tennis Champions: Some notes / observations, changes and a fix to the input ports - Turbo Out Run: Identified clone "FD1094 317-unknown" set as 317-0106 and provided a working decryption key - Thunder Ceptor . Converted Namco C45 road chip to a device . Updated users . Added support for tilemaps to be passed a gfx pointer instead of a gfxnum - Thunder Zone: Verified OKI6295 clocks and pin 7 - Virtua Fighter Kids: Fixed graphic glitches (ID 04021) - Wardner: Small formating change, so I can automate things easier. - Dipswitch fixes in brickzn, deadconx, dynashot, segas32.c, flicker, homerun.c, magicbal, merit.c, peplus.c, zac_2.c and zac_proto.c - Fixed rom names in dynashot, exctsccr, fantasia, homerun.c, merit.c, meritm.c, pss61, stadhero, superman and tfrceac - Renamed (brickzn3) to (brickznv4), (dodge) to (dodgectya), (exctsccrj) to (exctsccrjo), (exctsccrj2) to (exctsccrj), (f1lap) to (f1lapj), (gigandes) to (gigandesa), (gigandesj) to (gigandes), (gradius3) to (gradius3j), (gradius3e) to (gradius3), (nbajamt1) to (nbajamte1), (nbajamt2) to (nbajamte2), (nbajamt3) to (nbajamte3), (nbajamtn) to (nbajamten), (pitboss) to (pitbossb), (pitbossc) to (pitboss), (pitbossb) to (pitbossc), (raidndx) to (raidendx), (raidndxa1) to (raidendxa1), (raidndxa2) to (raidendxa2), (raidndxg) to (raidendxg), (raidndxj) to (raidendxj) and (raidndxu) to (raidendxu). - Description changes of Big Apple Games (2131-13), Brick Zone (v4.0, Spinner), Brick Zone (v5.0, Joystick), Crush Roller (bootleg set 1), Crush Roller (bootleg set 2), Crush Roller (bootleg set 3), Crush Roller (set 1), Crush Roller (set 2), Crush Roller (set 3), Crush Roller (set 4), Dodge City (2131-82, set 1), Dragon Ball Z V.R.V.S. (Japan), Dynamic Shoot Kyousou, Moero!! Pro Yakyuu Homerun Kyousou, Eggs (USA), Exciting Soccer (Japan), Exciting Soccer (Japan, older), Fantasia (940429 PCB), Gigandes, Gigandes (earlier), Godzilla (Japan), Gradius III (Japan, program code S), Gradius III (World, program code R), Guided Missile, JoJo no Kimyou na Bouken (Japan 981202), JoJo no Kimyou na Bouken (Japan 990108), JoJo no Kimyou na Bouken (Japan 990128), JoJo no Kimyou na Bouken: Mirai e no Isan, Ms. Pac-Man (bootleg, encrypted), Korosuke Roller (Japan), Magic Brush (bootleg of Crush Roller), Make Trax (US set 1), Make Trax (US set 2), Paint Roller (bootleg of Crush Roller), The Pit Boss (2214-?), The Pit Boss (2214-02?), The Pit Boss (2214-03), The Pit Boss (2214-04), Pit Boss II (9221-01C), Spark Man (v2.0, set 1), Spark Man (v2.0, set 2), Stakes Winner / Stakes Winner - GI kinzen seiha e no michi, Super Pit Boss (9221-02A), Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikou e no michi, Superman (World), Thunder Zone (World, Rev 1), Tora e no Michi (Japan), Turbo Out Run (cockpit, FD1094 317-0107) and Turbo Out Run (cockpit, FD1094 317-0106). - MAME . Added safe_pc() and safe_pcbase() methods to device_t. Convert all cpu_get_pc() to safe_pc() and cpu_getpreviouspc() to safe_basepc(). Removed the old macros. . Don't use safe_pc[base] when you already have a resolved device_state_interface. Added redundant methods to device_state_interface to generate errors when this is done. . In device_state_interface, rename state() to state_int() and set_state() to set_state_int() for consistency. Update all callers. Also add set_pc() helper and updated all callers to use that instead of set_state_int(STATE_GENPC). . Added device_t::state() method to get the state interface. Added redundant device_state_interface::state() method to catch redundant use of it. . Removed cpu_get_reg() and cpu_set_reg() macros in favor of using the above methods . cothread removed, was not used for a long time and was commented. . Made core able to use BIOS selection per slot device (example: mess kc85_4 -exp d004gide,bios=v31) . Removed astring::stringbuffer() / use cached value in astring::len() instead of strlen() (lib\util\astring.h) . gfx_element is now a class. Accessors are provided for all necessary elements. Updated some of the more, ah, creative uses/abuses of the gfx_elements. . Fixed gfx_element behaviors for dynamically created single-element raw objects used in offbeat drivers like metro.c. . Created new sprite device base class, which manages a bitmap and a sparse bitmap for tracking which areas got updated. This allows sprites to be rendered independently to their own bitmap and then mixed in a final step. Converted the Sega sprite device over to this new model, and moved the mixing steps out of the sprite implementations and into the driver-specific video updates where it belongs. Added some further methods and helpers to the bitmap_t and rectangle classes. Created a sega_16bit_common_base class which handles thecommon Sega palette RAM mappings and open bus reads. . TILE/TILEMAP modernization part 1-3. tilemap_create_device users modernized (src\emu\tilemap.h, video\decbac06.c/h, deco16ic.c/h, gp9001.c/h, kaneko_tmap.c/h, konicdev.c/h, segaic24.c/h and taitoic.c/h). . Added ambiguous execute() and memory() methods to the device_execute/memory_interfaces respectively in order to catch unnecessary usage of the corresponding device_t methods. Removed all existing redundant usage. . Make ui_active a user option . Made cmd line parameter parsing going into unlimited levels (emu\emuopts.c and lib\util\options.c/h) . Closeout on old macros. Retired cputag_set_input_line and cputag_set_input_line_and_vector, replacing them with machine.device("tag")->execute().set_input_line[_and_vector]. . More AM_BASE_LEGACY removal . Clear out remaining global inlines in diexec.h. Get rid of devtag_reset macro. . Wrong file mod (mame\etc\template_device.h) . Massive change: MACHINE_START\RESET, VIDEO_START\RESET and PALETTE_INIT changed to be members of state classes. . Pass 1/2 of modernizing struct definitions. Enum and union normalization. Final round of struct/union/enum normalization. . Updated DOCS config.txt and windows.txt with recent commands that were never added to documentation as well as some clarifications - SDLMAME . Added GCC-4[567]-generic entries to sdl.mak to select GCC with DISTRO= switch . Fixed for an SDL sound bug surrounding use of -speed and pausing frequently causing corrupt sound . Fixed default SDL OSX UI toggle key name . Added Swedish/Finnish SDL keymaps for OSX and Linux . Don't enable XInput by default in SDL - MESS . Patch that enables output of elements stored in software lists through -listsoftware . Removed saa505x.c which was used by bbc.c, and refactored all drivers to use the new implementation. - Compiling . Merge of MESS sources. Unified SVN properties of softlists. Testing the new SVN. Sync software lists from MESS into hash. . Made "make depend" to create files per target, also added "make depend_ume" as new target in case UME is used, since then it becomes complicated. . Added proper name of generated mak (makefile, src\ume\ume.mak) . Removed template usage for legacy devices. Removed not used legacy calls (emu\devlegcy.c/h). . Removed zero sized inline_config (machine\pic8259.c, machine\pit8253.c, machine\s3c24xx.c, video\i8275.c, video\tms9927.c, machine\gaelco3d.c and machine\mathbox.c) . Removed legacy inline_config support and updated devices using it . Removed some AM_LEGACY_BASE stuff (drivers\asteroid.c, bwidow.c, bzone.c, mhavoc.c, omegrace.c, quantum.c, starwars.c, tempest.c and tomcat.c). Conversion of legacy devices into modern WIP. Cleanup and some inheritance fixes. DEVINFO_ * to * CPU_INFO_, and some cleanups. . Made make depend to be defined per target to support special cases. Fixed to make "make depend" work if on empty obj tree. . Replaced standard mappers with an enumeration that maps internally to the original functions. The only change is to all-caps since these are constants, e.g., tilemap_scan_rows -> TILEMAP_SCAN_ROWS. . Fixed some warnings about unreachable statements reported by Cppcheck (emu\cpu\sh4\sh4comn.c, emu\sound\asc.c, mame\audio\dsbz80.c, mame\drivers\bfm_sc4h.c, mame\drivers\model3.c, mame\machine\mathbox.c and mame\video\konicdev.c) . Added missing \n to some fatalerror() calls in many drivers. . Fixed compile (video\taitoic.c) . Values must be normalized (src\emu\clifront.c) . Fixes so MESS on PowerPC OS X builds and works again. MAME is still a lost cause. - Debugger: Removed some astring::stringbuffer() usage - fixes potential missing \0 termination (emu\debug\debugcpu.c) 0.146u5 - New games: Gnome (090406 World), Last Survivor (Japan, FD1094 317-0083), Pairs Redemption (V1.0, 10/25/94) and Space Invaders / Qix Silver Anniversary Edition (Ver. 2.03) - New Working games: Cyber Tank, Cycle Maabou and Sky Destroyer - New Non-Working games: Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev. B) (GDS-0039B) and Naomi DIMM Firmware Updater (Rev E) (GDS-0023E) - New clones: A.B. Cop (Japan, FD1094 317-0169b), Blood Storm (v1.04), Fruit Cocktail (090708 Entertainment), Fruit Cocktail 2 (090528 Lottery), Fruit Cocktail 2 (090813 Entertainment), Garage (090715 Entertainment), Gnome (090402 Russia), Gnome (090708 Lottery), Gnome (bootleg, 090406, banking address hack, payout percentage 70), Gnome (bootleg, 090406, LOTTOGAME (I)), GP Rider (Japan, FD1094 317-0161), GTI Club (ver UAA), Island 2 (090528 Lottery), Island 2 (090724 Entertainment), JuJu Densetsu (Playmark bootleg), JuJu Densetsu (Playmark bootleg), Keks (090604 Lottery), Keks (090727 Entertainment), Lucky Haunter (090712 Entertainment), Megatouch IV (9255-40-01 ROA, Standard version), Nandemo Seal Iinkai (Astro Boy ver.), Ninja Baseball Bat Man II (bootleg/hack), Olympic Soccer '92 (set 2), Panic Road (Germany), Panic Road (Japan), Parodius DA! (Asia), Pirate 2 (090528 Lottery), Pirate 2 (090730 Entertainment), Rock Climber (090716 Entertainment), Samba De Amigo (prototype), Sega Network Taisen Mahjong MJ 3 (Rev F) (GDX-0017F), Sega Rally Championship - DX (Revision A), Sweet Life 2 (090525 Lottery), Sweet Life 2 (090812 Entertainment), Thunder Zone (Japan), Thunder Zone (Rev 1, World) and Trojan (US set 2) - New drivers: invqix.c, mpu4avan.c, mpu4bwb.c, mpu4concept.c, mpu4crystal.c, mpu4dealem.c, mpu4empire.c, mpu4hw.c, mpu4mdm.c, mpu4misc.c, mpu4mod2sw.c, mpu4mod4yam.c, mpu4plasma.c, mpu4sw.c, mpu4union.c and mpu5hw.c - DSP56156 CPU: Removed some unnecessary unsigned >= 0 checks (cpu\dsp56k\dsp56k.c) - FD1089/FD1094 CPUs . Converted FD1089/FD1094 into proper devices, derived from m68000. They now handle their own decryption and memory management, so we can remove all the calls for initialization/reset/etc. The key now lives as a 'key' subdevice under the CPU, and the FD1089/1094 are now specified just like any other CPU. . Created a helper class for managing FD1094 decryption caches. Removed the horrible s16fd and s24fd files. - H8/3xx CPUs . Very preliminary H8S/2294 support . Fixed H8/H8S MULXS.B to select the proper source register. Fixes text in Qix section of invqix. . Correct disassembly of MULXS.B and MULXS.W - I8741 CPU: More protection sim fixes (machine\tait8741.c + drivers\cyclemb.c) - LR35902 CPU: Removed 2 unneeded assignments (cpu\lr35902\lr35902.c) - PowerPC 4xx/6xx CPUs . Added callbacks for buffered external DMAs (ppc.h + ppccom.c/h) . Fixed SRAW behavior with C backend. x86/x64 BEs need work to pass (powerpc\ppcdrc.c). - PowerPC Dynamic Recompiler . Split up dword-aligned 64-bit accesses to 32-bits. Better fix for dword aligned 64-bit accesses . Fixed PowerPC CMP/CMPI instructions; they were behaving as CMPL/CMPLI and generating wrong flags - TMS32031 CPU: Fixed edge cases with overflow/carry flag (cpu\tms32031\32031ops.c) + fixed warnings - V30MZ CPU . Converted to C++ . Fixed disasm_max_opcode_bytes() . Make GCC behave like Clang (cpu\v30mz\v30mz.c) - V810 CPU . Preliminary implementation of the MOVBSU opcode in V810 CPU core . Added ANDNBSU and ORBSU opcodes in V810 CPU core . Various VB specific opcodes - Z80 CPU . De-legacy the Z80PIO device (machine\z80pio.c, machine\z80pio.h, drivers\mcr.c, drivers\meritm.c, drivers\proconn.c, drivers\senjyo.c and drivers\system1.c) . De-legacy the Z80SIO device (drivers\dlair.c, mcr.c, proconn.c and machine\mcr.c). Fixed unused variable (m_status[regnum]). . Removed legacy Z80 CTC interfaces. Removed NOTIMER hack from Z80 CTC interface (Star Force was the only one using it). The first parameter of the interface struct is now gone (machine\ldv1000.c, machine\z80ctc.c, machine\z80ctc.h, audio\cchasm.c, audio\cinemat.c, audio\senjyo.c, drivers\astrocde.c, drivers\cchasm.c, drivers\csplayh5.c, drivers\dlair.c, drivers\jankenmn.c, drivers\mcr.c, drivers\mcr3.c, drivers\nbmj9195.c, drivers\niyanpai.c, drivers\pipeline.c, drivers\proconn.c, drivers\senjyo.c, includes\cchasm.h, includes\senjyo.h, machine\mcr.c). - Dynamic Re-Compiling . Computed flags correctly for ADDC/SUBB (cpu\drcbec.c) . Calculate NZ flags properly for 32x32=32 form of MULS (cpu\drcbec.c) - DAC sound . Converted dac.c to a modern sound device. Update all callers. It is quite clear nobody understands how the dac device works. . unsigned_write8 (formerly dac_data_w) accepts a value from 0..255 and scales it to 0..32768 . signed_write8 (formated dac_signed_data_w) accepts a value from 0..255 and scales it to -32767..32768. So signed/unsigned applies to the output. The input values are always full-range unsigned data. Same goes for 16-bit variants. - SN76489/SN76496 sound . Updated some drivers to use the new SN76496 device implementation. Update: Reverted original SN76496N patch and applied newer patch containing a change to 'SN76496_NEW' to avoid confusion. . Replaced SN76489 sound with SN76489_NEW in appoooh.c, bankp.c, excitbj, exedexes, kncljoe, lucky74, mjkjidai and ladybug.c . Replaced SN76489A sound with SN76489A_NEW in jailbrek, jantotsu, kontest, mikie, mjhokite, pulltabs and docastle.c . Replaced SN76496 sound with SN76496_NEW in bullsdrt, drmicro, ikki, markham, poker41 and freekick.c - YM2203 sound: Changed YM2203 IRQ callback to a DEVCB-style callback - MAS3507D: Fixed some incorrect operators and a duplicated game flag reported by Visual Studio Code Analysis (mas3507d.c) - 8255 PPI: Convert remaining drivers. Kill off old 8255ppi. - 6529: Chip has no clock input (Single Port Interface Adapte) - 6551 ACIA: Disabled debug logging - SCSI: Added NSCSI documentation - HuC6202/HuC6260/HuC6270 video: Re-implementation of the PC-Engine graphics chips as separate devices. They are quite a lot slower than the current implementation for the pce, tg16, and sgx drivers which is why they are not used in those drivers yet. - KANEKO CALC3 . Kaneko Calc 3 is now a device. Comment: note, could still do with andreas seeing if he can find a relationship between the encryption tables we've derived from studying the protection (used to decrypt the various blocks in the protection data rom) and the final block in the protection data rom. . Put Kaneko Calc3 on it's own timer, so the driver doesn't need to keep calling run from the irq function, also cleaned up Gals Panic 3 a bit. - KANEKO GRAP2 . Made Kaneko's GRAP2 (rle blitter + framebuffer) a device . Added save support on a few Kaneko devices (machine\kaneko_hit.c, machine\kaneko_toybox.c, video\kaneko_grap2.c) - KANEKO VU-002/KC-002: Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). - ROC10937 video: Correct an error in the ROC10935/7 lookup table for the '7' character - RP5C15 RTC: Initialize at power-on (makes the x68k boot reliable) - Seta ST-0020: ST0020 (seta blitter + zooming sprites) is now a device - aleck64.c: Fixed misspelled variable (under_t) in video\n64.c - amaticmg.c . Removed legacy 8255 APIs . Added dynamic length to the color PROMs decode routines based on ROM region length. This fixes a horrible hang/crash in DEBUG=1 builds. - atronic.c: Quick and dirty base hook-up. Replaced Z80 CPU with Z180. Added 256x256 screen with 60Hz VSync. Fixed palettesize. - bfm_sc2.c, jpms80.c and mpu4.c: Dupe Nukem - cdi.c: Fixed Quizard games do not boot after initial startup screen (ID 04960) - chihiro.c and naomi.c: First round of GD-ROM redumps - cyclemb.c . Fixed sprite GFX order (Game now playable) . Hooked up inputs . Defaults to disallow game over, fix it. . Fixed a color bug with tilemap - cobra.c (Fighting Bujutsu and Racing Jam DX) . Hooked up DMA callbacks and RF5C400 . Added Timekeeper RTC . Better texture RAM emulation . Documentation updates . Implemented framebuffer reads and writes . Added gfx register masking . Improved polygon parsing . Added latest research . Some small optimizations by using const references (rectangle& visarea) . Fixed some sync issues . Added event delegate to the FIFO class . More FIFO improvements - expro02.c . Started the process of converting some Kaneko games to use devices. Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). . Make EXPRO-02 driver independent from kaneko16_state and use their own instead, it's cleaner to not use it now everything is devices. - galpani2.c . Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). . Pulled Galpani2 away from kaneko16.c - gticlub.c: Some small optimizations by using const references (rectangle& visarea) - hikaru.c: Removed GAME_IS_BIOS_ROOT flag from Brave Fire Fighters (ID 04959) - hng64.c . Hooked up Epson 62423 RTC device . Made 24/12h bit register to be correctly activated in Epson 62423 RTC device . Implemented irq ack/pending mechanism to Hyper Neo Geo 64 - jchan.c . Started the process of converting some Kaneko games to use devices . Make driver independent from kaneko16_state and use their own instead, it's cleaner to not use it now everything is devices. - jpmimpct.c and jpmsys5.c: jpm.a missing dependencies (mame.mak = (VIDEO)/awpvid.o, (MACHINE)/meters.o and (MACHINE)/steppers.o) - kaneko16.c . Started the process of converting some Kaneko games to use devices . Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). . Changed region cpu1 to calc3_rom in brapboys and shogwarr - karnov.c: Fixed uninitialized array in driver - kickgoal.c: General cleanup and improved gfxdecodes - kingpin.c: Hook up I8255 chips, working sound and default NVRAM - Lunar Rescue: Moon Lander (bootleg of Lunar Rescue) color proms verified correct - Nandemo Seal Iinkai: [debug] Assertion (after ok) in Debug build (ID 03696) - maygayep.c . Maygay EPOCH driver clone splits and duplicate fixes . Got to the bottom of maygayep.c, moved some roms to bfmsc1.c, they seem to be for an sc1 game called whats up dr, not the epoch what's up doc. . Started the 2nd pass of maygayep.c, adding a bit of extra info to descriptions based on headers in the rom data where present (seem to be on most 1st party stuff, including a summary of what the revision is meant to fix! . Fixed more wrong rom loads, marked ep_cfallc bad dump due to gibberish code at JSR target 1c966. Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). - megadriv.c . Started some genesis/megadrive device conversions and creations . Update Megadrive cart module for support "Pier Solar" cart (mapper and "ST M95" EEPROM code) - megatech.c: Updated the BIOS to render using the newer SMS vdp device from MESS - midzeus.c: Fix compile error (video\midzeus.c) - model2.c . Verified the rom load order in Motor Raid. Swapped TGP roms. . Fixed the loading of the sound samples in Sega Rally Championship. Documented the missing (undumped) roms for the DX set. . Added Sega rom board ID# for Gunblade NY. Added the Sega security rom board number to the Dead or Alive sets. - model3.c . Added Sega rom board ID# for Virtual On 2: Oratorio Tangram (ver 5.4g) and Scud Race Plus. . Minor doc update, add the Sega rom board ID# to Get Bass. - mpu4.c: Found out the procedure to make some of the ones which fail self tests boot, as a result was able to confirm several other sets as mod2, and moved them to the appropriate place. - mpu5.c: More MPU5 clones created/sorted - nss.c, sfcbox.c and snesb.c: Removed some unnecessary unsigned >= 0 checks (machine\snes.c) - peplus.c . Added dollar bill validator (DBV) to emulate IGT's IDO22 pulse protocol. All non-superboard games now accept bills via IPT_COIN2. . Denomination is determined via dip switch setting. The Set Chip steps are still required to enable the DBV before use. . Moved DBV Bill Choices from Dip Settings to Driver Configuration to avoid confusion with actual PCB settings. . Added missing pulses to IDO22 DBV protocol and included additional documentation on pulse sequences. This also fixed some superboard games that did not take bills. - puckpkmn.c and segac2.c: Code reorganization - proconn.c: PROCONN splits - sangho.c: Fixed palettesize in pzlestar and sexyboom - segac2.c . The 'new' renderer now only outputs a scanline and must be serviced by a partial update, i've turned it on for segac2 for now, with my initial goal being to untangle the segac2 palette handling from the vdp, it's external circuitry, mixing the raw digital output of the vdp rather than after cram data has been applied. . Killed off the ancient vdp implementation so we're all using the current one now, also made c2 manage it's own palette instead of having the vdp do it for it, might need a bit of tweaking but it works. - segahang.c . Converted FD1089/FD1094 into proper devices, derived from m68000. They now handle their own decryption and memory management, so we can remove all the calls for initialization/reset/etc. The key now lives as a 'key' subdevice under the CPU, and the FD1089/1094 are now specified just like any other CPU. . Created a helper class for managing FD1094 decryption caches . Added support for member functions to be called as DRIVER_INIT functions. To do this, #define MODERN_DRIVER_INIT prior to #including "emu.h" and you will be required to specify a class and member function for your driver init. . Untangled the joined segas1x_state and split the states for each system into their own classes. . Cleaned up some implementations. Split segas16.h header into separate headers for each system. Convert multiply, divide, and compare/timer chips into modern devices. Removed legacy 8255 APIs. Move Sega Hang-On to newer I8255. Fully modernized segahang. . Misc cleanups - segaorun.c . Converted FD1089/FD1094 into proper devices, derived from m68000. They now handle their own decryption and memory management, so we can remove all the calls for initialization/reset/etc. The key now lives as a 'key' subdevice under the CPU, and the FD1089/1094 are now specified just like any other CPU. . Created a helper class for managing fd1094 decryption caches. Added support for member functions to be called as DRIVER_INIT functions. To do this, #define MODERN_DRIVER_INIT prior to #including "emu.h" and you will be required to specify a class and member function for your driver init. Converted the memory mapper into a new modern device and updated the Sega Outrun driver to use it. Fixed ROM memory mapping so that the source ROMs can be loaded contiguously, removing a bunch of hacks. Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Split segas16.h header into separate headers for each system. Convert multiply, divide, and compare/timer chips into modern devices. Removed legacy 8255 APIs. . Misc cleanups - segas16a.c . Converted FD1089/FD1094 into proper devices, derived from m68000. They now handle their own decryption and memory management, so we can remove all the calls for initialization/reset/etc. The key now lives as a 'key' subdevice under the CPU, and the FD1089/1094 are now specified just like any other CPU. Created a helper class for managing fd1094 decryption caches. Added support for member functions to be called as DRIVER_INIT functions. To do this, #define MODERN_DRIVER_INIT prior to #including "emu.h" and you will be required to specify a class and member function for your driver init. Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Split segas16.h header into separate headers for each system. Fully modernize Segas16a. Convert multiply, divide, and compare/timer chips into modern devices. Removed legacy 8255 APIs. Move Segas16a driver to newer I8255. . Misc cleanups - segas16b.c . Converted FD1089/FD1094 into proper devices, derived from m68000. They now handle their own decryption and memory management, so we can remove all the calls for initialization/reset/etc. The key now lives as a 'key' subdevice under the CPU, and the FD1089/1094 are now specified just like any other CPU. Created a helper class for managing fd1094 decryption caches. Added support for member functions to be called as DRIVER_INIT functions. To do this, #define MODERN_DRIVER_INIT prior to #including "emu.h" and you will be required to specify a class and member function for your driver init. Converted the memory mapper into a new modern device and updated the Segas16b driver to use it. Fixed ROM memory mapping so that the source ROMs can be loaded contiguously, removing a bunch of hacks. Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Fully modernized the Segas16b driver. Split segas16.h header into separate headers for each system. Fixed bug causing tturfu and wrestwar to hang at startup. Convert multiply, divide, and compare/timer chips into modern devices. . Misc cleanups - segas18.c . Converted the memory mapper into a new modern device and updated the Segas18 driver to use it. Fixed ROM memory mapping so that the source ROMs can be loaded contiguously, removing a bunch of hacks. Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Fully modernized the Segas18 driver. Split segas16.h header into separate headers for each system. Convert multiply, divide, and compare/timer chips into modern devices. - segas24.c: Removed the horrible s16fd and s24fd files. Good riddance. - segaxbd.c: Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Split segas16.h header into separate headers for each system. Convert multiply, divide, and compare/timer chips into modern devices. Fully modernized X-board driver. Misc cleanups. - segaybd.c: Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations. Split segas16.h header into separate headers for each system. Convert multiply, divide, and compare/timer chips into modern devices. Modernized Sega Y-board driver. - senjyo.c: Replaced Samples sound with DAC in baluba, senjyo - seta2.c: Misc doc update: Fill in the year for Reel 'N Quake as 1997 based on eBay auction showing program roms labeled. - ssv.c: ST0020 (seta blitter + zooming sprites) is now a device - system16.c: Untangled the joined segas1x_state and split the states for each system into their own classes. Cleaned up some implementations (includes\system16.h). - taitotz.c: Some small optimizations by using const references (rectangle& visarea) - triforce.c: Make it actually run code. Replaced PowerPC 403GA CPU1 with PowerPC 603. - turbo.c: Removed legacy 8255 APIs - vamphalf.c: Cleaned up a change from earlier - wc90b.c: GFXdecode fix - Laser Disc . Fixed SCREEN_UPDATE_RGB32 and added MCFG_LASERDISC_OVERLAY_CLIP to deco_ld.c . Removed legacy 8255 APIs . Fixed building ldplayer . Added inputs, sound, graphics and fixed colors to Bega's Battle / Road Blaster HW . Added M6502 CPU2 and sound rom to Cobra Command . Various changes to Interstellar . Added graphics and fixed colors in GP World . More love to forgotten LD games (deco_ld.c, dwarfd.c, esh.c, lgp.c, segald.c, superdq.c and timetrv.c) - Black Touch '96: Still not right about, but a bit less glitchy than it was before, with more stuff in the code to help figure it out. - Crowns Golf . Adjusted rom names to better represent actual rom labels improved documentation for other dumped sets. . Added protected PAL dump - Cyber Tank: Sprite disable is simply word 0 bit 3 (Game now playable). Fixed Z80 CPU3 and the 2x Y8950 clock speeds. - Gals Panic 3 . Make driver independent from kaneko16_state and use their own instead, it's cleaner to not use it now everything is devices. . Cleaning up some code - Gyruss: Stop spamming error.log with bogus read - Intersecti: Some minor changes (visible area, dipswitches ...) - Jockey Club II . ST0020 (seta blitter + zooming sprites) is now a device. Allow both jclub2 (st-0032) and jclub2o (st-0020) to show their error messages. . Fixed clone Dark Horse no longer allows for boot up (ID 04961) - Kikiippatsu Mayumi-chan: Hooked up i8255 in Kikiippatsu Mayumi-chan - Last Survivor: Added generic coin counter (generic_iochip0_lamps_w). YM2151 stereo is reversed. - Locked 'n Loaded: Hooked up preliminary sound - Malzak: Fixed SAA 5050 double high character mode, and forced character data to 7-bit. - Mouse Attack: Added DIP locations - Plotting: Fixed crash during init before OK in clone Plotting (World set 2, protected) (ID 04962) - Sand Scorpion: Started the process of converting some Kaneko games to use devices. Kaneko sprites are now a device. This should facilitate cleaning up video related files as well (sprites and tilemaps). - SD Gundam Psycho Salamander no Kyoui: Added test button. Added note about the 3rd unknown dipswitch, plays a jingle at the game intro (why?) (ID 04975) - Sky Destroyer . Added preliminary colour cycling effect (Game now playable) . Fixed remaining input issues . More protection sim fixes (machine\tait8741.c + drivers\cyclemb.c) . State-ized the thing -> READ8_MEMBER( cyclemb_state::skydest_i8741_0_r ) . Fixed a color bug with tilemap . Fixed Z80 CPU1/2 and AY-3-8910A clock speeds - Space Invaders / Qix Silver Anniversary Edition . General EEPROM, FPGA and IRQ hookups. . Added inputs and sound, promoted to working. Qix has some TBD text weirdness. . Some cleanup, mapped all 4 start buttons and cocktail flip works. . A little more cleanup and fixed unnecessary -oslog spew . Very preliminary H8S/2294 support . Fixed H8/H8S MULXS.B to select the proper source register. Fixes text in Qix section. . Correct disassembly of MULXS.B and MULXS.W (H8S/2294) . Quickly hooked up VRAM . Added PCB layout . Whitespace cleanup. Minor doc update. - Star Force: Removed legacy Z80 CTC interfaces. Removed Star Force sound hack in favor of just driving a DAC directly with the CTC output line (MAME can handle sound frequency timers no problem). - Tank Force: Inputs were switched so that Player 2 was no longer assigned to Player 3 and vise versa in clone Tank Force (US, 4 Player). - Thunder Zone . Added PCB locations to all the Thunder Zone / Desert Assault sets . Better documented the PCB stack and changed clocks to be derived by on board OSC - Trojan . Added PCB locations to the Trojan sets . Correct Trojan's MSM5205 clock from 455 kHz (measured on a bootleg) to a verified 384 kHz as measured on an original Capcom Trojan board. - Vega: Updated Vega driver. Still NOT WORKING, but some progress has been made. Fixed driver text (At the top of the driver, it says "Vega by Olypmia"; it should be "Olympia") (ID 04972). - Vulgus: Information confirmated from PCB for clock speed and VSync - Wild Poker: Reads code snippet from MCU port - Xenophobe: Added PLD from Sounds Good board - Input port . Default inc/dec keys for AD Stick Z . Added GAME_IMPERFECT_KEYBOARD flag and changed ui.c to use that instead of displaying message for each driver with keyboard. - Dipswitch fixes in bzone, deco_ld.c, cyclemb.c, intrscti, mouseatk, peplus.c and skydest - Fixed rom names in crgolf, parodius, srallyc and thndzone - Renamed (ec_spbxd) to (ec_spbdx), (ec_unk1) to (ec_spbdx__d), (ec_supbx) to (ec_sbarx), (ep_hmmlt) to (ep_homer), (ep_itj3a) to (ep_itjb3a), (jujub) to (jujuba), (kingpinm) to (maxideal), (m4addrcb) to (m4addrcc), (m4andycpd) to (m4andycpdut), (m4bigchfd) to (m4bigchd), (m4bja) to (m4bjacka), (m4dbldmn) to (m4dbldm), (m4rgsa) to (m4ready), (m4tpcl) to (m4typcl), (m5locka) to (m5lock13), (m5lockcla) to (m5lockcl15), (megat4c) to (megat4d), (parodiusa) to (parodiuse), (sc1cshwzc) to (sc1cshwzb) and (thndzone) to (thndzonea). - Description changes of A.B. Cop (World, FD1094 317-0169b), Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228), Cosmo Police Galivan (12/11/1985), Cosmo Police Galivan (12/16/1985), Cosmo Police Galivan (12/26/1985), Cycle Maabou (Japan), Hot Memory (V1.1, Germany, 11/30/94), Hot Memory (V1.2, Germany, 12/28/94), Kingpin (Pinball), Kingpin, Maxi-Dealer, Mr. HELI no Daibouken, Sega Rally Championship - TWIN (Revision B), Sega Rally Championship - TWIN (Revision C), Trojan (US set 1), Ufo Robo Dangar (12/1/1986), Ufo Robo Dangar (9/26/1986), Ufo Robo Dangar (bootleg) and Vs. Mahjong (Japan) - MAME . Properly detect click on artwork buttons when in fullscreen mode . Added internal mouse cursor visible in menus and when clickable artwork is used (ID 02091) . When menus are active, enable mouse on full screen. . Made UI mouse cursor optional (default is off for now), in games with clickable artwork cursor is visible, application is not taking mouse control anymore. . Since there is no clear way to determine if mouse should be shown or not, I am putting a new flag (GAME_CLICKABLE_ARTWORK) . Make mouse_bitmap[] const in emu\ui.c . Updated GAME, GAMEL and CONS with class name per machine used, for future DRIVER_INIT change. All driver inits are now member of state classes. Added DECLARE_DRIVER_INIT macro to define it H file, and DRIVER_INIT_MEMBER for member declaration in C files Updated all drivers accordingly. . Fixed device mapping on big-endian systems (emu\addrmap.c) . Added support for dynamically mapping devices (emu\addrmap.c and emu\memory.c): Just call install_device on the space with as parameters: Start and end of the mapping zone, device (not pointer to the device), map method and optionally, if the device data width is not the same than the space data width: device data width (for consistency checking) and unit mask. For instance, the static mapping: AM_RANGE(0x02114100, 0x02114107) AM_DEVICE8("fdc", n82077aa_device, amap, 0xffffffff). Can be converted to a dynamic mapping (where fdc is a pointer to the device): machine().device("maincpu")->memory().space(AS_PROGRAM)-> install_device(0x02114100, 0x02114107, *fdc, &n82077aa_device::amap, 8, 0xffffffff). . Make downcast errors more useful (src\emu\emucore.c) . Removed redundant interlocked function wrappers from Windows code . Some memset() underflow fixes (drivers\bfm_sc2.c, malzak.c, megatech.c, nycaptor.c...) . Added mask() function to RAM device (machine\ram.h) . Display correct software load messages depending of supported attribute value (emu\romload.c) . Fixed no to display missing roms in case of not supported software (emu\romload.c) . Made MCFG_QUANTUM_PERFECT_CPU able to work within devices (emu\mconfig.c) . Removed not used type (emu\uimenu.h) . Fixed build error, something about ui_show_mouse is declared void that I couldn't figure out but it's not needed anyway (video\voodoo.c) . Added ___empty after sorting, the count is correct now and the check for no drivers can also work (src\build\makelist.c) . Small optimization to ui_draw_text_full() and ui_draw_text_full() . Audit considers a NO DUMP rom to be shared if it has the same name as a parent/device rom . src\lib\util\astring.c . Avoid excessive usage of strlen() in astring by caching the length . Re-added excessive strlen() usage to astring since it causes mysterious formating issues in debugger for people with non-standard font . Re-applied astring changes after fixing bug in trimspace(), but still using strlen() until all stringbuffer() occurances are gone . Some cleanup (src\mame\mame.lst) + Moved away some casino/misc games that were in the fruity-pin section. . Further major organization, documentation, reordering and making of clones causing numerous (over 6000) new gambling / Fruit machine sets to be created, covering multiple systems. - SDLMAME: Fixed -prescale option for SDL builds - MESS . [C64] Added support for speed zone data in D64 image files. Not used drive-side yet. Fixed logging in D64/G64 floppy format code. . [C64] Added support for per-byte speed zones in G64 images . Added some sanity checks to the softlist handling . Added support for old TAP format to the driver, so that all newly added tapes work (high sample rate tapes are still not supported, though) (lib\formats\x1_tap.c) - Compiling . Removed some unnecessary statements reported by Cppcheck (cpu\i8085\i8085.c, cpu\pdp1\tx0.c, cpu\z180\z180.c, video\hd63484.c, drivers\mpu4hw.c, drivers\mpu4vid.c, drivers\raiden2.c, drivers\taitotz.c and machine\megadriv.c) . Fixed some unread variable warning reported by Cppcheck (cpu\tms32025\32025dsm.c, sound\ymf271.c, audio\turbo.c and video\midzeus.c) . Fixed some unread variable warnings reported by Clang (cpu\arm7\arm7.c, cpu\h83002\h8periph.c, cpu\m6800\m6800.c, sound\es5506.c, video\pc_vga.c, video\resnet.c, video\voodoo.c, formats\z80ne_dsk.c, machine\snes.c and video\stvvdp1.c) . Removed some redundant assignments (debug\dvmemory.c, machine\8237dma.c, machine\amigafdc.c, video\mc6845.c, drivers\halleys.c, drivers\karnov.c, machine\acitya.c and machine\theglobp.c) . Fixed some incorrect operators and a duplicated game flag reported by Visual Studio Code Analysis (progolf.c) . Fixed unreachable code in src\emu\cpu\dsp56k\dsp56mem.c . Fixed unreachable code (and shmem locking) in machine\gaelco3d.c . Removed some not used variables (lib\formats\dsk_dsk.c, machine\stvcd.c) . Changed macros that are MESS related, no need to recompile MAME since they are not used (emu\gamedrv.h) . Fixed GCC 4.6 compile . Significant speedup for "divu_64x32_rem" by using inline assembly for x86_64 as well. GCC will always call into libgcc to catch overflows (emu\eigccx86.h). . Removed not used code (emu\mame.c) . Added missing \n to some fatalerror() calls (src\osd\osdmini\minimain.c, sdl\draw13.c, windows\d3dhlsl.c, windows\window.c, machine\cdi070.c, machine\cdicdic.c, machine\gdrom.c, machine\konppc.c, machine\model1.c, machine\model3.c, machine\namco06.c, machine\naomi.c and machine\nmk004.c) - Debugger . Fixed debugger window to just use fixed-pitch font and removed fallback since CreateFont will still return a font based on other characteristics when the face was not found. . Use MAME_DEBUG to flag it (emu\emucore.c). Report errors by throwing an emu_fatalerror, so that we get the standard useful behaviors (break in debugger, caught during validation, stack crawls, etc). 0.146u4 - New Working games: Fruit Dream, Get Rich and Last Bank - New Non-Working games: Bank Raid (Jpm) (MPS), Copper Run Deluxe (Jpm) (MPS), Lucky Arrows (Jpm) (MPS), Pop Shot (prototype), Royal Ascot (Japan, terminal?), Sky Destroyer (Japan), Solid Gold (Jpm) (MPS), Special Effects V2 (Maygay, MV1 Video), Trick or Treat (Project) (PROCONN) and Trick or Treat (Protocol?) (Project) (PROCONN) - New clones: Action Bank (Barcrest) [ACT] (set 2) (MPU4), Drift Out (Europe), Five Way Shuffle (Set 2) (Jpm) (MPS), Jumping Pop (set 2), Last Fortress - Toride (Erotic, Rev A), Mortal Kombat II (rev L2.0), Ninja Baseball Bat Man (World), Note Exchange (Set 3) (Jpm) (MPS), Nudge Bonanza Deluxe (Set 2) (Jpm) (MPS) and Pipi & Bibis / Whoopee!! (prototype) - New drivers: jpmsru.c - 68000 CPU: Handle higher-value constants in FMOVECR (cpu\m68000\m68kfpu.c) - DSP32C CPU . Set the PCR to 1 on reset . Update the PDF/PIF output pin states only when reading/writing the PDR/PIR registers . Implemented the goto_pde, goto_pdf, goto_pif and goto_pdf instructions - F8 CPU (MESS): Fixed AMD/ASD opcodes. Status flags are set before the decimal correction factor is added, so only the carry flag is significant after a decimal addition opcode. - M6800 CPU: Added HD6303Y subtype to the core. Fixed assertion with new M6800 CPU types. - MC68HC11 CPU . Fixed H/V flags on adc/sbc (cpu\mc68hc11\hc11ops.c) . Wrong cast, reg a/b are 8bit. . Fixed carry flag on NEG and get rid of unneeded casts . Removed unneeded var. Small cleanup. . Fixed BRSET mask . Rekludged Hit Poker (Bulgaria) to make it boot again after this MC68HC11 fixes - PowerPC 4xx/6xx CPUs . Added optional PPC callback for explicit data cache stores . Hooked up data cache store callback to Konami Cobra driver . Exposed segment registers to the debugger (ppc.h + ppccom.c) . Changed cap flags to UINT32 for future additions - PowerPC dynamic recompiler . Split up dword-aligned 64-bit accesses to 32-bits . Better fix for dword aligned 64-bit accesses - TMS32025 CPU . Fixed edge cases with add/sub carry and overflow flag . Fixed NORM opcode . Update alu.d on lalk . Small cleanup and some updates - TMS32031 CPU: Fixed OR_C_ADD(a,b,r) opcode (SUB is left-to-right, ADD is equal both ways) - TMS32051 CPU . Fixed add/sub overflow/carry flags (tms32051/32051ops.c) . Simplify add/sub a bit . OV flag is cleared on (OV-)branch-and-call instructions . On 'C2x-compatible opcodes that set treg(0), treg1/2 are set too if TRM=0. . Some cleanup - TMP95C063 CPU: Added support for TMP95C063 CPU (taitotz.c) - TMS9900 CPUs: Moved TMS9901/2 support chips from mess\machine into emu\machine subtree - V30MZ CPU (MESS): Removed unneeded header file cpu\v30mz\nechost.h. Getting rid of some typedefs and cleaning up a few things (cpu\v30mz\v30mz.c). - C140 sound: Correct interface for winrun, aircomb and aircombj - MSM6585 sound . Added minimal support to Grand Cross. Where does the M6585 in Varia Metal hook up to? . Preserve the documentation differences between MSM6585 & MSM5205 now that support has been added. - AM9517A DMA: Added proper contents - TC0091LVC Custom: Ported TC0091LVC into a proper file. Hooked up TC0091LVC device to Last Bank and Fruit Dream. - CGA video . MESS ec1841: Mirror chargen memory at b800:1000 -- fixes video test 501 on TPS (diagnostics) disk . ec1841 not only mirrors the chargen buffer, but also byte-swaps it. - IDE video: No need to clear status if drive not connected (fixed black screen after EEPROM initialize in Fishin' Frenzy) - ROC10937 video . ROC10937 converted to a modern device: Still needs proper character clock timing for the brightness effects. Displays now have to be added to the CONFIG_START, and take the form 'MCFG_ROC10937_ADD(tag,port,RIGHT_TO_LEFT/LEFT_TO_RIGHT)'. The last option represents the direction for moving from start to end on the display. . Converted all drivers that used the old form (bfmsys85.c, globalfr.c, jpmimpct.c, jpmsys5.c, maygay1b.c, mpu3.c, mpu4.c, mpu4vid.c and proconn.c). . Adding improved serial communications where documentation is known . Converted ROC10937 and bfm_bd1.c output code to use BITSWAP macros - Voodoo Banshee: Cleaned up 2D blitter code - Crystals: Reverted errornous changes in xtal.h - CHDMAN . Fixed memory leak in chd_file_compressor::hashmap . Enable support building the bundled 7z library with a C++ compiler . Marked pnchmna, hypbbc2p, jingystm and jojobar1 CHDs as BAD_DUMP (missing Metadata) (ID 04953) - Support for Discrete Netlist . Implemented a generic implementation to model discrete net lists: Based on timeslot modelling, the implementation models gate delays in logic chips. Design ready to be split into a generic and a MAME implementation part. Design prepared to merge in discrete components from discrete. Supports code based as well as external net list parsing. Ultimately, net lists and discrete emulation should share one code base. The class design was set up to accomplish this. There is no point in having multiple 555, 7474 implementations around. Most of the code will be moved to lib\netlist going forward to allow usage in other projects. . Pong now uses netlist.h. This implementation reproduces all gate timing and 555 related effects as described by Dr. H. Holden in his 2012 publication "ATARI PONG E CIRCUIT ANALYSIS & LAWN TENNIS". There are now two game entries: a) pongf: This illustrates how a workaround has to be used in the absence of gate timing. The game uses a code based netlist. b) pong: This uses gate timing at a resolution of approx. 140 MHz. The netlist itself is read from the rom region. - aces1.c . Added some preliminary flesh to ACE System 1, we can at least see the LED display now. . Split out some Ace System 1 sets, moved the unk_pcp games here (memory maps match) and moved one set out of here because it doesn't belong. . Fixing a couple of duplicate sets found . Documented where some devices sit . Basic device hookups, some sets now play alarm sound - acesp.c . Did a first-pass clone creation/set split for the acesp.c driver. As a result, another 500 or so sets have been added to the gamelist. . Fixing a couple of duplicate sets found . Added a few notes on the memory maps and known devices . Added HD6303Y subtype to 6800 core so that I can correctly define the CPU type in the drivers (it's kinda important because the different types have different internal peripherals, so even if I don't emulate them yet we shouldn't misrepresent it in the drivers). - allied.c: More set splitting - bfm_sc1.c, bfm_sc2.c and bfm_sc4.c . Made BFM_BD1 save states properly this time (machine\bfm_bd1.c) . Converted ROC10937 and bfm_bd1.c output code to use BITSWAP macros . Fixed unwanted popmessage in BD1 games . Separated vfd and DMDs out for better separation for game loading (bfm_sc2.c) . Fixed blanking issues in bfm_bd1.c that caused problems for Scorpion 4 games . More work needs to be done to determine just how the SC4 version differs . Split the BFM_BD1 controller into the original, and dot alpha versions, as their code is not identical. Pointed Scorpion 4 to use this new code. - castle.c: Replaced HD6301 CPUs with HD6303Y - cobra.c . Added optional PPC callback for explicit data cache stores . Hooked up data cache store callback to Konami Cobra driver . Workaround for page translation fault . Use real texel colors . Implemented simple line drawing . Fixed comram access . Fixed hard disk access . Converted the 3D renderer to use polynew.h . Moved FIFOs into a class . Hooked up FIFO interrupts . General cleanup - esd16.c . We can collapse the sprite gfxdecodes into a common 5bpp one rather than 2 different ones by adjusting the rom loading, we can also use the AM_MIRROR macro instead of a manual function to mirror spriteram . As a result of the previous cleanups there were still some redundant structure left around which can be reduced . Fixed OKI6295 sound clock speed - gcpinbal.c: Added comment about the OKI MSM6585 sound chip - harddriv.c . HImplemented diagnostic jumper and DIP switches for all games . Added a workaround to prevent racedrivb1 and racedrivg1 from crashing on boot . Use the common 68681 DUART implementation . Use XTAL values for CPU clocks . harddriv1, racedriv1, racedriv2, racedriv3, racedrivb1, racedrivg1, racedrivc2 and racedrivc1 are promoted to working state . Added Hard Drivin' (cockpit, rev 1) note - jpmmps.c and jpms80.c . General MPS set cleanups - including some set splits . Updated notes . Added skeleton structures for TMS9902 device and placed it in mem map - jpmsru.c: Moved j_ewnud, j_luckac, j_plus2 and j_super2 from jpms80.c to jpmsru.c driver - macs.c: Clean up rom loading and main rom banking - maygayv1.c: Cleaned up blanking problems (temporarily) - megadriv.c: Preliminary LED addition for Mega CD. Fix for Pokemon 2 emulation (MESS - machine\md_cart.c) - metro.c . Correct OKI6295 Pin 7 assignment for the Last Fort & Sky Alert sets as listed in the driver . Verified the Pin 7 assignment where listed in the driver - model2.c: Added the ROM board Sega ID number to Motor Raid - model3.c: Added Sega game ID# for Get Bass - mpu4.c: Added PLCC rom (hauntedhouse.u17) to Haunted House - mpu5.c: Clones splits - namcos21.c . Removed C140_TYPE_SYSTEM21_B banking. Correct sound banking (i.e. the sound ROM size) is determined via a DIP switch. . Added default NVRAM for Air Combat. Correct C140 interface for (US) and (Japan). Removed 2nd Player. - play_1.c: Documenting shared roms - segas18.c: Minor doc update for Laser Ghost (US). Added Sega ID # for game and rom board. Added the A/D input board type as well. - segaxbd.c: Some work on Sega X-Board custom I/O. Cleanup. - sfbonus.c: Minor doc update - st0016.c: Clean up rom loading and main rom banking - taito_l.c . ROM_CONTINUE/ROM_RELOAD cleanup . Fighting Hawk: Fixed a rare sprites bug (sprites stuck over the background) (ID 03164) - taitojc.c . Converted Taito JC 3D renderer to use polynew.h . Removed erroneous note, MC68HC11 MCU rev M0 ROM is external. Small update. . Fixed OKI6295 clock speed in Densha de GO! / 2 . Fixed input in Side by Side / 2 - taitotz.c . Added support for TMP95C063 CPU . Modernized address maps . Improved 2D rendering . Hooked up IO CPU comms (TMP95C063) . Hooked up IDE controller . Basic 3D graphics emulation . Fixed RTC lockup . Enabled background polygon rendering . Changed HDD serial numbers to char arrays. . Added Type-Zero BIOS roms v1.11a to Battle Gear, Battle Gear 2 and Power Shovel . Replaced TLCS-900/H CPU2 with TMP95C063 in Battle Gear, Battle Gear 2, Landing High Japan and Power Shovel. Fixed PowerPC 603e CPU1 clock speed and visible area. . Fixed inputs - tasman.c . Hooked temp drawing functions . Fixed driver compile for official windows toolchain (4.4.7) - tnzs.c . Handle the memory banking manually, avoiding the periodic crippling slowdowns related to mapping. . Cleaned up all the rom loading so that we're not using RAM allocated in the ROM_REGIONs, which may well help with save states too. This fixes significant negative performance spike after TNZS intro sequence (ID 04404). - twincobr.c: Cleanup machine and includes driver - Battle of the Solar System: Swapped sets parent-clone relation (ID 04714) - Combat School . Removed a sound kludge . Added sound ROM bankswitch to clone (bootleg) - Cyber Tank . Fixed gameplay inputs . Fixed silly bug in drawgfx_transpen (even though colors are still quite incorrect) . Cleaned up I/Os . Hooked up tilemaps as tilemaps, with scrolling. . Hooked up palette select on road drawing (road now appears to 'move') . Did some priority related bits, which may or may not be correct. . More work with graphics . Done some more work on the sprites. Hopefully most are positioned a bit better now. Still can't see how they get disabled tho, nor do I understand the rouge lines on top of some of them. It either needs perfect precision or they're some kind of markers like sega used. Lots of bits set in the spriteram we don't use too. . Some updated notes - Dream Fruit . Hooks, and moved scrolling inside buffering . Hooked up TC0091LVC device (Game now playable) . ROM_RELOAD cleanup - Fantastic: Fixed colors with a redumped prom - Fishin' Frenzy: Fixed black screen after EEPROM initialize (ID 04844) - Funny Bubble: ROM_RELOAD work - Galaxian 3: Removed C140_TYPE_SYSTEM21_B banking. Correct sound banking (i.e. the sound ROM size) is determined via a DIP switch. - Galaxy Gunners: Fixed broken 'Lives' dipswitch (ID 04957) - Get Rich: Fully dumped (Game now playable) - Gondomania: Redumped clone Makyosen with correct rom names which are now documented in driver - Heated Barrel: Added priority BPROM and copx-d2 rom, not dumped from this PCB assumed to be the same. - Hit Poker: Added NVRAM stub. Replaced AY-3-8910A sound with YM2149. - Jockey Club II, Super Eagle Shot and Super Real Mahjong P5: Clean up rom loading - Jumping Pop: Moved game from tumbleb.c to esd16.c driver and clean up drivers - Last Bank . Improved driver, added graphics and inputs (Game now playable). . Dumped missing u11 gfx rom in Last Bank . Basic device-ization of the TC0091LVC . Support for cocktail mode . Added sprite buffering . Fixed text tilemap gfx decoding; title screen and a bunch of bugs. . ROM_RELOAD cleanup - Poke Champ . Finally figured out the 8bpp BG tile plane order, a bit odd, guess there are swapped lines. . Hooked up OKI sound banking . Fixed sprite attributes . Simplified CPU banking . Use generic palette functions - Raiden II / DX: ROM_RELOAD work for clone Zero Team 2000 - Royal Ascot: Game boots up now - Sky Destroyer . Bare minimum to get game to boot . Fixed tilemap and sprites drawing . As Phil noted, program rom banking actually contains the missing gfxs. . Basic inputs hooked up . More protection work - Super Monaco GP . Added extra Sega PCM sound . Generalise smgp sets - Vega: Fill in known information - Vigilante: Added PALs (not hooked up yet). The old PAL(4m) has been determined to be bad. - Wardner . By manually handling the memory mapping, performance is greatly improved compared to modern memory system defaults. Modern system is left in code as a #define to use if/when banking performance is improved. This fixes slowdown due to memory mapping changes in MAME 0.139u2 (ID 04485). . Cleanup - Winning Run: Correct C140 interface. Cleanup machinestart. - Input port . PORT_ADJUSTER now accepts PORT_MINMAX as well . Fixed input in dfruit, lastbank, taitotz.c and taitojc.c - Dipswitch . Added DIP locations to cshooter, gcpinbal, gunpey, kamenrid and sfbonus.c . Fixed dipswitches in aces1.c, balonfgt, birdiy, cfishing, dfruit, dharma, galaxygn, harddriv.c, namcos21.c, sfbonus.c and wrecking - Fixed rom names in aristmk6.c, heatbrl, makyosen, lastfort, openice and smgp - Renamed (50lions) to (50lionsa), (50lionsa) to (50lions), (ac1sptb) to (pr_sptb), (botss) to (botss11), (botssa) to (botss), (cristals) to (crystals), (dynduke) to (dyndukea), (m5blind) to (m5bling), (m5clowna) to (m5clown13), (mk2r32) to (mk2r32e), (nbbatman) to (nbbatmanu), (sp_cw) to (sp_crime), (sp_playa) to (sp_playaa), (sp_playab) to (sp_playa), (up_bluec) to (ac1bluec), (up_dbldx) to (ac1dbldx), (up_nudbk) to (ac1nudbk), (up_roll) to (ac1roll), (up_sstrk) to (ac1sstrk) and (up_xpres) to (ac1xpres). - Description changes of 50 Lions (10120511, NSW/ACT), 50 Lions (10156111, Malaysia), Action Bank (Barcrest) [ACT] (set 1) (MPU4), Antony and Cleopatra (10177211, Malaysia), Choy Sun Doa (20131511, Malaysia), Clown In Around (Bwb) (MPU5) (set 3), Crime Watch (Ace) (sp.ACE) (set 1), Crystal Springs (10155811, Malaysia), Cyber Tank (v1.4), Double Or Quits (Bwb) (MPU5) (set 1), Dynamite Duke (Europe set 2), Festival (Spanish) (Ace) (sp.ACE), Five Way Shuffle (Set 1) (Jpm) (MPS), Fruit Dream (Japan), Gol (Spanish) (Ace) (sp.ACE), Golden Streak (Golden Touch) (Ace) (sp.ACE), Indian Dreaming - Maximillion$ (10130711, NSW/ACT), Jumping Pop (set 1), Jurassic Trail (Ace) (sp.ACE), Last Bank (v1.16), Last Fortress - Toride (Erotic, Rev C), Lotto (Spanish) (Ace) (sp.ACE), Nudge Bonanza Deluxe (Set 1) (Jpm) (MPS), Play It Again (Ace) (sp.ACE) (set 1), Simply the Best (Pcp) (PROCONN?), Super Monaco GP (World, FD1094 317-0126), Super Monaco GP (World, Rev B, FD1094 317-0126a), Thai Princess (30127721, Malaysia), Tic Tac Tut (Vivid) (MPU5), Twilight Zone (Ace/Bwb) (sp.ACE), Whales of Cash (20155711, Malaysia), Where's the Gold (20177111, Malaysia), Wild Ways (10130111, Malaysia), Winning Run '91 (Japan) and Xpress (Pcp) (ACESYS1) - MAME . Quick bug-fix, otherwise old style vblank time will never work (mame\etc\template_driver.c) . Updated zlib to 1.2.7. Renamed zconf.in.h to zconf.h.in . Updated expat to 2.1.0 (lib\expat\expat.h) - SDLMAME . Use XInput to allow multiple lightguns on Linux/*BSD targets . Some SDL compile fixes for OS X, Windows and non-Windows (osd\sdl\sdl.mak) - Compiling . Small speedup for _get_profile_ticks (emu\eigccx86.h) . Fixed version check in windows.mak . Allow "windowname" in win_create_window_ex_utf8() to be NULL to match behavior of CreateWindowEx() . Properly call va_end() before throwing exceptions in fatalerror functions (emu\emucore.h) . Removed some unused variable declarations from MACHINE_CONFIG_* macros . Fixed mame-specific unreachable code in bfm_bd1.c, mpu4.c, model1.c, segas16b.c . Fixed soundlatch warning (emu\driver.c) . Fixed bogus if-condition in src\emu\cpu\cop400\cop410ds.c . Removed redundant line in sound/bsmt2000.h . Removed unnecessary strlen() usage . Fixed constant overflow, 64 bit constants require U64() macro (machine\netlist.c) . Fixed OS X Intel compilation (machine\netlist.h) . MSVC doesn't like classy structs, no idea if this breaks anything (machine\netlist.h) . Fixed building with MSVC (drivers\taitotz.c + globalfr.c) . Don't build 64 bit functions in src\lib\zlib\adler32.c when the prototype isn't defined in the .h . Fixed warning with ?-operator and !-operator 0.146u3 - New Non-Working games: The Battle of Yu Yu Hakusho: Shitou! Ankoku Bujutsukai!, Beach Head 2000 Install - 05/27/03, Beach Head 2000 Install - 09/16/01, Beach Head 2002 Install - 05/27/03, Beach Head 2003 Desert War Install - 05/27/03, Bloody Roar 3 (bootleg), Fate: Unlimited Codes (bootleg), Global VR XP OS Install - 09/30/01, Global VR XP OS Update/Install - 06/11/02, Gundam vs. Gundam, Hyper V2 (Global VR) Install - 06/12/02, Hyper V2 (Global VR) Install - 09/30/01, Mario Kart Arcade GP, Multi Game III (S.Ita 3.5), Need For Speed: Underground Install (2 Discs) (v1.1), Super Dragon Ball Z (DB1 Ver. B) and Wangan Midnight (WMN1 Ver. A) - New clones: Cruis'n World (rev L1.9), Cruis'n World (rev L2.5), Daioh (set 1), Deer Hunting USA V1, Dragonball Z (rev B), Fantasy Zone II - The Tears of Opa-Opa (System 16C version, prototype), Fighters' Impact (Ver 2.02A), Free Kick (NS6201-A 1987.9), Landing Gear (Ver 3.0 J), Landing Gear (Ver 3.1 O), Landing Gear (Ver 4.2 J), Multi Game III (S.Ita 3.1), Multi Game III (S.Ita 3.3), Multi Game III (S.Ita 3.4), Pit Boss Megatouch II (9255-10-02 ROG, Minnesota version), Ray Storm (Ver 2.05A), Ray Storm (Ver 2.05O), Scud Race Plus, Skins Game (1.04), Soul Calibur II (SC2? world version), Super Football Champ (Ver 2.4A), Super Megatouch IV (9255-41-02 ROC, Minnesota version), Tank Battalion (bootleg) and Time Crisis 3 (TST2 Ver. A) - New drivers: globalvr.c - I386 CPU: Various changes to the CPU core and Chihiro emulation, allowing it to show a basic logo and text. - PENTIUM CPUs . Added CPU types for Pentium MMX, Pentium Pro, Pentium II, Pentium III and Pentium 4 . Fixed assertion with new PENTIUM device types - PPC4xx CPUs: Supports EIEIO - TMS32051 CPU . Stack emulation is more accurate now . Make it obvious that some of the reset code is a hack cause of missing internal rom . Small optimization on condition checks - TMS99xx CPUs . Introduced symbolic constants for TMS99xx interrupt lines . Added a special RESET line handled by the CPU, not by the emulator core. TMS9928a/V9938: Introduced dedicated RESET line. . Status register parity bit handling was missing in some commands . Fixed TMS9900 register autoincrement for DIV operation - Z80 CPU: Support for Z80DMA search & transfer mode - ES5505/6 sound: Stop spamming error.log - RCA CDP1869: Fixed a hard to reproduce divide by 0 crash - Seibu Sound System: Set other coin bits to unused (audio\seibu.c) - CGA video: Fix for blink by shattered, also applied on other places as well - TMS9928 / V9938 video . Now using own address space for attached video memory, appears in memory selection list in debugger. . Cleaned up V9938 - ADC1213x A/D converters: Added an unhandled case - Flash ROM: Added emulation of AMD 29F010 Flash for mess\drivers\geniusiq.c - Voodoo 2 GFX . Fixed video dimensions register . Fixed the rest of the video timing registers to have one extra bit - chihiro.c . Various changes to i386 CPU core and Chihiro emulation, allowing it to show a basic logo and text. . Correct Chihiro CPU type to Pentium III . Fix compile on GCC 4.6 and above - deshoros.c, flipjack.c and meyc8088.c: Small driver cleanup - gunpey.c: Added AX51101 gfx chip notes - kongambl.c . Hooked up vblank irq . Way more hackering around, allows it to moan about machine ID. - model1.c: Hooked up LEDs - namcops2.c: Replaced spaces with tabs to match code formatting standards - naomi.c: Added EPR-21576C (Japan) and EPR-21577A (USA) BIOS - qix.c: Set screen to CRTC initial parameters (256x256 at ~55hz) - raiden2.c: Noticed that Raiden2 hardware has coin inputs active low instead of default high - segae.c: Get rid of ugly strcmps - taitojc.c . Give Taito JC about 10% optimization on 3D scenes . Hooked up TC0640FIO chip . Cleaned up input ports . Those flickering texture palette glitches (sidebs/sidebs2 especially) is a rounding issue, big improvement now. . Improved controls in Densha de GO!/2. Added simple artwork for Densha de GO! games. Hooked up OKI6295 sound. . Hook up dummy DSP rom (TMS320C51 internal rom) . Added unused PALs to Landing Gear . Added lamps output . jc_control_w is unneeded . Added version number to all sets . Removed obsolete debug stuff . Try to understand vreg 0xfc4 more . Sorted/cleanup source code and updated notes - Agent Super Bond: Make it clearer that Super Bond is a conversion kit. Added color prom from Super Cobra instead of no dump. - Animal Catch: Fixed hang at black screen (ID 04338) - Arbalester: Redumped the sound CPU at the correct size - Capcom Fighting Jam: Added DVD - Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3): Removed duplicate set of roms - DakkoChan House . Replaced newly discovered bad sprite chip . Updated and confirmed all model numbers and labels/locations for the game based on PCB . Added PLD - Dragonball Z/2: Added DIP locations. Region user1 is never used, get rid of it. Removed GAME_NOT_WORKING flag since that the mask ROM check isn't mandatory. Bypass tile/PSAC2/prog ROM test. - Exciting Black Jack: Dumped epoxy block - Gunlock: Fixed barely audible sound (ID 04932) - Harley-Davidson and L.A. Riders: Correct and enable the patches - Hoops '96: Provided a correct rom dump of clone (Europe/Asia 1.7) - Legionnaire: Added COP-D1 rom and document the undumped PROM - Multi Game III (S.Ita 3.5): Added decryption keys - Shackled: Added priority prom - Silent Scope/2 . Hooked up gun controls . IRQ1 seems to be a high speed counter (fixes Silent Scope lag) . Fixed Silent Scope 2 ROM banking (user3) . Added LAN board EEPROM and DS2401 (both not dumped) to Silent Scope 2 - Strider 2: Fixed missing Q-Sound music (ID 04945) - Super Dragon Ball Z: Added dongle and adjusted version to match dongle - Tank Battalion: Removed no dump flag in MAME for PROM that was thought to be missing. The part number as been identified and verified as a socketed 1K RAM. - Touchdown Fever: Verified rom set - Input port . Fixed input in dangcurv, taitojc.c and zeroteam . Flagged bestleag, bestleaw, dsoccr94, firebarr, freeze, fjbuster, galpani3, galpani3j, jchan, jchan2, macrossp, quizmoon, shogwarr, shogwarru and wpksoc as GAME_NO_COCKTAIL due to never having working flip screen - Dipswitch fixes in kongambl.c - Fixed rom names in arbalest, daioh, dakkochn, downtown, exprraid, legionna, naomi, psyforce, shackled, stvbios, taitojc.c and tdfever - Renamed (crusnwld) to (crusnwld24), (daioh) to (daioha), (dbz) to (dbza), (freekickb) to (freekickb1), (megat3cb) to (megat3caa), (megat4sn) to (megat4snj), (scudp) to (scudplus) and (sfchamp24o) to (sfchampo) - Description changes of Agent Super Bond (Super Cobra conversion), Counter Run (NS6201-A 1988.3), Daioh (set 2), DakkoChan House (MC-8123B, 317-5014), Dangerous Curves (Ver 2.2 J), Densha de GO! (Ver 2.2 J), Densha de GO! 2 Kousoku-hen (Ver 2.5 J), Densha de GO! 2 Kousoku-hen 3000-bandai (Ver 2.20 J), Densha de GO! EX (Ver 2.4 J), Dragonball Z (rev A), Free Kick (NS6201-A 1987.10), Landing Gear (Ver 4.2 O), Side by Side (Ver 2.5 J), Side by Side 2 (Ver 2.4 J), Side by Side 2 (Ver 2.6 A), Skins Game (1.06, alt) and TouchDown Fever (US) - MAME: Fixed use of -profile in debug causes massive memory leaks (04094) - SDLMAME: Greatly improved drawing speed of GTK+ debugger windows - MESS . Added support for the SC-3000 Survivors *.bit cassette file format . Added emulation of AMD 29F010 Flash for mess\drivers\geniusiq.c - Compiling: Fix compile on GCC 4.6 and above (drivers\chihiro.c) 0.146u2 - New games: Fantasy Zone II - The Tears of Opa-Opa (System 16C version), Fishing (DECO Cassette), Mahjong Dai Touyouken (Japan), Mahjong Janshin Plus (Japan), Return Of Sel Jan II (Japan, NM557), Space Invaders Multigame (M8.03D) and Super ABC (Pac-Man multigame kit, Sep. 03 1999) - New Working games: Jingle Bell, Linky Pipe, Off Road Challenge and Touryuumon - New Non-Working games: beatmania IIDX 2nd style (GC985 JA), Multipede (Centipede/Millipede multigame kit), Skins Game (1.06), Triple Play (Ver. 1.10) and Wild Poker (ver. D 1.01) - New clones: Arkanoid (bootleg with MCU, set 2), Dynamite League (US), Missile Command Multigame, Skins Game (unknown alt. version), 9x Space Invaders Multigame, Raiden (set 1), Super ABC (Pac-Man multigame kit, Mar. 08 1999), Touchmaster 4000 (v6.02 California), TX-1 (Japan rev. B), U.S. Championship V'ball (bootleg of Japan set), War Gods (HD 10/09/1996 - Dual Resolution), War Gods (HD 08/15/1996) and War of the Bugs or Monsterous Manouvers in a Mushroom Maze (US) - New drivers: atlantis.c and wildpkr.c - I8051 CPU: Update the MCS-51 timers sequentially for each cycle. Fixes sound CPU serial communications in the eolith.c games - TMS32031 CPU . Don't set underflow when doing a floating point subtract that results in 0 . Don't overwrite the exponent during a FIX operation - TMS9900 CPU: Fixed some issues with the LOAD interrupt (NMI) and an uninitialized variable - TMS9980AL/TMS9981L CPU . Added cycle-precise implementation of TMS9980a . Changed TMS9900.c to allow for subclassing TMS9900 and TMS9980a from a common parent - uPD7810 CPU . Fixed setting of flags in the ACI_[VABCDEHL]_xx functions . Fixed handling of Carry flag in the DAA instruction - POKEY sound: Comment out error.log flooder - QS1000 sound: Added preliminary QS1000 sound emulation. TODO: Looping is currently disabled. Figure out unknown sound header parameters. Figure out and implement envelopes and filters. Pitch bending. Dump the internal ROM. - SN76489 sound: Modern class implementation, appended to legacy code - Taito Ensoniq ES5505-based sound: Fixed 68000 CPU2 clock speed in galastrm.c, groundfx.c, gunbustr.c, superchs.c, taito_f3.c, taitojc.c and undrfire.c (audio\taito_en.c) - TMS5220 sound: Class re-implementation, appended to legacy version - PCI: Made PCI legacy and new implementation coexist for now (machine\pci.c; affected drivers\calchase.c, chihiro.c, cobra.c, funkball.c, gamecstl.c, magictg.c, mediagx.c, midqslvr.c, queen.c, savquest.c, taitowlf.c, viper.c, voyager.c and xtom3d.c) - Hard Dish/CD-ROM . Fixed uninitialized CHD variables that were creeping into output . Changed qsort() callback to never return "equal", working around unstable system libc implementations (util/chd.c and cdrom.c). - bfm_sc2.c and bfm_sc4.c: Fixed crash after OK (ID 04923) - bfm_sc4.c: Fix for -validate issues (drivers\bfm_sc4h.c) - cd32.c: Fix so it can find the CD-ROM (ID 04821) - centiped.c: Small cleanup (multiped, millpac) - cmmb.c: Updated notes in the driver - dec0.c: Added basic support for the bootleg sprites used by clones Automat (bootleg of Robocop) and Secret Agent (bootleg) - eolith.c . Added preliminary QS1000 sound emulation . Update the MCS-51 timers sequentially for each cycle. Fixes sound CPU serial communications in the Eolith games. . Boost interleave for sound to correct syncing issues . Fixed Linky Pipe (Game now playable). Game seems to randomly hang based on the lower 2 bits of the "dipswitches" at boot. Is this protection, some kind of left over debug code, or a CPU bug? The game seems fine with those switches left high. . Fixed rom load error in Steal See - freekick.c: Added GAME_NO_COCKTAIL flags to some games which never had it working or had proper support for it - igs011.c: Decrypted clone Mahjong Nenrikishu SP and added patches for protection - jaguar.c: Allow for 2 seconds of emulation to boot up before applying quickload - limenko.c . Hooked up preliminary QS1000 sound to dynabomb, legendoh and sb2003 . Correct the QS1000 OSC from 24kHz to 24MHz in the PCB info . Minor whitespace correction - pacman.c: Cleanup driver - pgm2.c: Added motherboard specs/notes to driver - pinkiri8.c: Made the VDP map actually belong to the VDP, handling the palette manually. This fixes all sets crash after OK (ID 04759). - seta.c: Fill in some missing Seta PCB board numbers. Correct the board numbers as they are silkscreened on the PCB. - taito_h.c: Update machine def with xtal defs & slight rewording in the header - vamphalf.c . Added preliminary QS1000 sound emulation to Mission Craft and Wyvern Wings . Readjusted visible area in the driver based on tests comparing emulation and original PCB observations - Crazy War . Hooked up QS1000 sound . Fix for "Required device 'soundcpu' not found" - Cross Pang: Fix for 'Bonus Power' DIP location - Donkey Kong: No need for custom EEPROM intf in the Donkey Kong II clones - Doraemon no Eawase Montage: Fixed crash - Gals Panic: To my knowledge, flip screen never worked correctly for Gals Panic (US, EXPRO-02 PCB) and clones - KlonDike+: Fix for "Required device 'soundcpu' not found" - Mortal Kombat: Replaced bitrotted rom for clone (Turbo 3.0 08/31/92, hack) which caused hanging during demonstration - Off Road Challenge: Fixed TMS32031 CPU1 (Game now playable) (ID 02355) - Qix: Identified (set 1) as Rev 2 and correct the rom names - Raiden: Redumped rom gets the new Raiden set working. Reordered the set with additional information. - Touryuumon: Added proper mahjong panel inputs. Game is fully working other than the initial boot reset (that needs default NVRAM) - TX-1: Added documentation about the TX-1 (Japan) PCBs - Input port . Doing renumbering for controller port players, to enable dynamic controller boards. . Fixed call device line write handlers (emu\ioport.c). This fixes Zaxxon and Congo INPs do not play back correctly (ID 04892). - Dipswitch . Added DIP locations to buggyboy, crusnusa, crusnwld, offroadc, tx1, umanclub and wargods . Fixed dipswitches in dremshpr, eolith.c, igs009.c, ironfort, midvunit.c, qix, spacefb, sryudens, tx1.c and umanclub - Fixed rom names in blandia, ckongpt2 and jjsquawk - Renamed (dleague) to (dleaguej), (raiden) to (raidenb), (raidenu) to (raidenua), (raidenua) to (raidenu), (tx1) to (tx1jc), (tx1a) to (tx1) and (wargods) to (wargodsb) - Description changes of Arkanoid (bootleg with MCU, set 1), Cannon Ball (Pac-Man Hardware), Caterpillar (bootleg of Centipede), Fantasy Zone II - The Tears of Opa-Opa (MC-8123, 317-0057), Funny Fruit (Ver. 1.13), Grand Prix '98 (V100K), Il Pagliaccio (Italy, Ver. 2.7C), Magic Worm (bootleg of Centipede), Mahjong Nenrikishu SP (Japan, V250J), Millpac (bootleg of Centipede), Name That Tune (set 1), Qix (Rev 2), Raiden (set 2), Raiden (US, set 1), Raiden (set 3, Alternate hardware), Raiden (US, set 2, SEI8904 + SEI9008 PCBs), Strip Teaser (Italy, Ver. 1.22), Super Glob (Pac-Man hardware) (German bootleg), Trivial Pursuit (Genus II Edition), Trivial Pursuit (Spanish), Trivial Pursuit (Think Tank - Genus Edition) (set 1), Trivial Pursuit (Think Tank - Genus Edition) (12/14/84), TX-1 (Japan rev. B), TX-1 (Japan rev. C), TX-1 (World), U.S. Championship V'ball (bootleg of US set) and War Gods (HD 12/11/1995) - MAME: Whitespace mame.lst clean up, misc clean up & minor corrections for various Sega protection notes. - SDLMAME . Support newer Linux distros for using GCC 4.7 . Clean up GCC 4.7 test so it's the same path on all targets - MESS . Various improvements of MC1502 driver (video\pc_cga.c) . Added 16-bit Ensoniq synthesizers and samplers Disk format. Support MFM formats where sector numbering starts at 0. - Compiling . Stop repeated make all runs from toggling between building chdman & MAME due to both being dependent on version.o, which is always recreated when either exe is built (makefile + src\tools\tools.mak). . Swapped order of version.o linking for consistency (makefile) . A few preliminary GCC 4.7.x changes (drivers\cobra.c + video\polynew.h) . Make it compile on windows MinGW 4.7.x 0.146u1 - New games: Flipper Jack, Funcube (v1.5), Konami Test Board (GX800, Japan) and Magical Speed - New Working games: Dragon World 2001, Dragon World Pretty Chance, DS Telejan and Racing Beat - New Non-Working games: Exciting Black Jack, Linky Pipe and Pong - New clones: Battlantis (program code F), Bulls Eye Darts (Galaxian conversion), Crisis Zone (CSZO3 Ver. A), Dynamite Duke (Euro), Express Raider (Italy), Hyper Olympic in Nagano (GX720 JAA), Mr. Driller G ALT (Japan, DRG1 Ver.A), Over Rev (Model 2B, Revision B), Red Baron, Space Ranger (bootleg of Space Invaders), Virtua Striker 2 (Step 1.5, older). - New drivers: flipjack.c, kontest.c and pong.c - New/Updated artworks: apb, breakrev, cdsteljn, circus, coozumou, cosmicg, csdtenis, cshift, cskater, ddpdojb, depthch, kabukikl, kidniki, liberatr, mslug2, nam1975, psychos, ptblank3, sc2drwho, trivia12, triviabb, triviag1, triviag2, triviasp, triviayp, vulcan, wfortune and zektor (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here) - I8008 CPU: Modernized CPU core - TMS9900/9995 CPUs . New TMS9900 and TMS9995 implementation with proper control line handling and wait state generation. Previous implementation has been renamed to *l.{c,h} and drivers point to the old implementation until they are adapted to the new version. . Fixed compile error - Z80 CPU . Fixed t-state table for dd/fd opcodes, the 'illegal' ones were especially wrong, all taking 4 t-states. . Updated z80_set_cycle_tables caller for system1.c - Z800x CPUs . Handle vectored interrupts correctly . More Z8001 improvements - ES5505/6 sound . Actually use the ADC port read callback . Removed es5505_set_channel_volume() hack - POKEY sound . Added device_execute_interface to POKEY and moved interrupt handling into the clock stepping routine. Nice step forward. The code is now a lot easier to understand and interrupts and sound generation are no longer disjunct. . Added cycle exact potentiometer and keyboard support to Pokey device. The keyboard changes may break some MESS drivers. Please have a look at atari.c and bartop52.c for an example how the new implementation works. . Fixed compile error and added preliminary debugger state support. Cool, really cool, and all the devices_interfaces work. . "Analog" Pokey Update: Derived internal resistance calculation from Pokey documentation. This is a 4-bit parallel resistor (High-Z mos "devices") network to ground. The result is a non-linear resistance function. . Added low-pass filter support and opamp/resistor stages to the Pokey driver. This is not as good as complete discrete emulation, but a lot better than the linear approximation we had before. . Changed a couple of drivers to use the new output volume calculation . Added device configuration macros. Made all drivers use them. . Added POKEY filter stages to a couple of more games. Note: Most Atari games have additional filters. At some stage, discrete processing needs to be added. The Quad Pokey needs to become a device to properly and efficiently emulate outputs being tied together. This will trigger some changes to the Pokey device, namely the introduction of a base device. . Removed class members no longer needed from POKEY. . Fixed couriersu's pokepokeyproblem. . Added discrete sound to Black Widow, Gravitar and Space Duel . Minor changes to Centipede low pass filtering . Minor changes to Crystal Castles volume level . Added complete discrete filtering to Quantum . Fixed bad POKEY sound in Red Baron (wrong address_map_entry) (ID 04853) . Added POKEY filter stage to Tunnel Hunt - Taito Ensoniq sound (audio\taito_en.c) (galastrm.c, groundfx.c, gunbustr.c, superchs.c, taito_f3.c, taitojc.c and undrfire.c) . Use the common 68681 DUART implementation . Implemented the MB87078 volume control - Taito sound: Stop flooding error.log with these (audio\taitosnd.c) - YM2413 sound: Impossible compare fix (ID 04893) - SCSI . SCSI devices are now proper MAME devices (cps3.c, firebeat.c, konamigq.c, konamigv.c, ksys573.c, model3.c and twinkle.c) . Fixed SCSI regression in kbm & made 1 & 2 screen machine drivers consistent (firebeat.c) . Fixed SCSI regression that crashed ksys573.c BIOS as there is NO CD . Made NSCSI use fixed slots support in core - AM9517A DMA: Added AM9517A/8237A Multimode DMA Controller emulation. (MESS) WANGPC driver now boots from floppy. Emulated the medium resolution video controller. TIG video controller WIP. [PC1512] Refactored to use the new 8237A. - 8255 PPI: Get rid of write_pc, those checks are not needed - 68681 DUART: Fixed counter/timer implementation - Konami custom ICs: Revert sprite coord kludge (video\konicdev.c) - CGA: MC1502 emulation improvements (MESS: video\pc_cga.c/h, drivers\pc.c) - VGA: Added DAC mask register operation (video\pc_vga.c) - CHDMAN . CHD error handling (lib\util\aviio.c and chdcodec.c) . Fixed CHD decompression and memory leak in libflac/libflac/md5.c (fixes memory issues with chdman) (ID 04864) . Fixed error from manually merging patch (lib\lib7z\CpuArch.c) - 8080bw.c . Added placeholder colormap roms to Space Laser, Moon Lander, Astro Laser and Space War (Leijac Corporation) . Replaced DISCRETE sound with Invaders Samples in Space Laser, Astro Laser and Space War (Leijac Corporation) - bankp.c: Improved clocks - bfm_sc1.c, bfm_sc2.c and bfm_sc4h.c: Enable proper save stating for bfm_bd1 machine which should fixed sc2drwho + clones: Reload of state causes momentary loss of LCD (ID 03990) - bfm_sc4.c, mpu3.c and mpu4.c . Placed some handlers for the DM01 board into bfm_sc4. Once we can confirm more games are on the hardware, this can move into the main driver. . Found more games that use the DMD01, hooked those up, and cleaned up the interface hooks. Cleaned up Scorpion 4 sets. . Improved reel motor and optical alignment for reels as related to the layout interface. Comment: Made a significant change to how stepper motors operate in MAME - it is now possible to align a reel motor properly in the interface (namely by specifying what motor phase is active at 0). As a consequence, reverse spin should only be specified in layouts, and optical alignment should be much better. As a note, Scorpion 4 has had its interface changed to one specifically for its reel type, it may be worth watching for regressions in their behaviour as a result. It looks like that particular reel type can move its opto tab around the circumference of the unit, so different interfaces may be needed. . Added M6809 CPU2 to sc4clbtm, sc4fcc and sc4ticlb. Changed region others to matrix. . Added M6809 CPU2 and matrix rom to sc4crcc. - bzone.c . Documentation update including information about the -01 revision vector gen board and associated proms . Correct and added PCB locations to Red Barron's roms . Added revision to the names of the 2 Battle Zone sets and made the parent the most current set (rev 2) . Added Address Decode PROM to Red Baron. Currently not used in emulation but we archive it anyways. - chihiro.c: Documentation update - dec8.c: Took GAME_NO_COCKTIAL flags off games that recently regressed and were reported as bugs. Since they worked before, it is reasonable to assume they will work again, rendering the flag redundant. - eolith.c . Added DIP locations to all games in the driver . Cleaned up the input port defs. . Added speed-up for Linky Pipe and a note as to where the game seems to hang. Added GAME_NOT_WORKING to Linky Pipe until a fix can be found for the random "hang". - hng64.c: Added some bits to get the V53 (V33 core) running at least some sane sound code for hng64.c. There is no sound yet tho, and the banking mechanism will need hooking up but the initial banks should be correct. - jaguar.c: Cleanup driver and minor doc update - laserbat.c: Some cleanup - lucky74.c . Some minor corrections and more documentation . Added an ASCII PCB layout, more findings and technical notes . Prevent crash, Unable to find input port ':IN0' (requested by I8255 ':ppi8255_0') - megatech.c: Added BIOS Ver 0 Rev B - metro.c . Fixed driver regression. This fixes black screen in 3kokushi, karatour, ladykill and moegonta or offset screens and/or misplaced graphics (ID 04770, ID 04561). . Redo deprecat removal for Metro driver . Updated video\metro.c - mitchell.c: Fixed graphic glitch in Mahjong Gakuen 2 (ID 04873) and Pang (ID 04931) - model2.c . Updated several sets with Sega's game and / or ROM board ID# . Correct the sound CPU & sample roms for the Manx TT set (as verified by manual) and documented the undumped Manx TT Deluxe set - model3.c . Documentation update. Added known Sega ID# for Game, rom board & security board for several games. Noted which Scud Racer sets were Twin or Deluxe and included information about the undumped Australian DX version. . Minor doc update for Daytona 2 Power Edition ID #s - mpu4.c: Fixed driver crash at start - ms32.c: Unknown primask is not worth a fatalerror. This fixes tp2m32: unhandled priority type e0 (ID 04884) - namcos11.c: Updated undumped version table with an additional known version of Kosodate Quiz My Angel 3 - namcos22.c: Added cpu pointers - naomi.c . Fixed ioport references . Experimental, and somewhat gross, fix for the MIE issues (machine\mie.c) . Partial update to issues list to reflect latest MIE code . Documentation update . Make Illvelo boot, probably others too. . Fixed Ikaruga starts with 1 credit and insert coin doesn't work when countdown starts (ID 04512) - nemesis.c: Cleanup driver - neodrvr.c: Cleaned up sharedfeat usage in hash\neogeo.xml - pgm.c: Added protection data to Dragon World 2001 and Dragon World Pretty Chance (Games now playable) - scramble.c: Fixed missing sound in Mariner, Triple Punch and clones (games have only one 8255) (ID 04855) - segas32.c . Documentation update . Updated Sega game ID codes & PCB #'s, for Alien 3: The Gun, F1 Exhaust Note, Outrunners, Rad Mobile and Rad Rally . Documented known Rad Mobile Upright versions listed from manuals currently not dumped . Minor doc update, added more game & romboard ID #s. - seta2.c: Added gambling control to Namco Stars and Funcube 2/3/4/5 - taito_z.c . Removed fake digital steeringwheel from driver . Give Racing Beat its own inputs and video update handler, the game is playable now but with major gfx problems like Double Axle. Updated DIPs and fixed sprite-tile priority. . Improved analog controls for Chase HQ and Continental Circus . Cleanup cpua_ctrl_w . Removed outdated changelog - taitojc.c: Cleanup driver - timeplt.c: Fixed sprite colors in Bikkuri Card and Chance Kun - turbo.c: Optimize driver a bit - vsnes.c: Documentation update. Added set information to game names where possible. Tried to correction region information by copyright. - Area 51: Site 4: Added additional documentation specifying revision and build dates for the sets - Carrier Air Wing: Dumped CA22B.1A PAL and added to clone U.S. Navy (Japan 901012) - Clay Shoot: Updated notes - Dai-Dai-Kakumei . Input work done . Clearing unknown bits and adding confirmed settings - Destiny - The Fortuneteller . Big driver cleanup . Implemented buzzer sound - DS Telejan: Hooked up the missing Mahjong custom input panel (Game now playable) - Flipper Jack . Added start buttons and P1 launch button function . Added banking . Added layer enable . Hooked up cram (PALETTE_INIT) and cleanup . Fixed extra lives dipswitch . Attempt to fix colors . Documented dipswitch settings & pinout as per manual - Gridiron Fight: Iimproved internal layout. This fixes the wrong aspect ratio (ID 04863). - Gyruss: Improved clocks and cleanup driver - Image Fight: Hooked up MCU to clone (Japan) - Konami Test Board . Fixed vertical orientation and IO port 8. Cleanup driver. . Array out of bounds fix from iq132 (PALETTE_INIT) - Magical Speed . Added PCB layout and DIP locations . Fixed coin lockout and tilemap offset - Pong: Re-added Pong (Atari 1972). Work in progress. The games is playable and has sound, however I suspect some minor bugs due to the order of expression evaluation. I commit this mainly for documentation purposes. The modelling of the TTL circuits will change to a device/connection class infrastructure updating inputs immediately if they changed going forward. - Rabbit: Healthbar color looks correct now (ID 04882). Small update. - Robocop: Unmap the devices for clone Automat (bootleg of Robocop) from DEC0 and give it its own state, making it easier to work with. Starting to hook the clone Automat back up. - Super Wing . Fixed sprite flipping . Improved inputs a bit . Updated address map and input ports . Added 4th button - Super Chase . Removed fake digital steering wheel . Added PORT_ADJUSTER for sound volume - Top Speed . Added missing PORT_TOGGLE to gear shift (ID 04871) . Added pinout documentation and DIP locations . Fixed issues with analog controls. Removed the digital steering wheel hack. (ID 00653) . Added second ADPCM chip and started to make sense on how these are hooked up - Tunnel Hunt . Added DIP locations and xtal info to driver (ID 02270) . Updated TODO-list - unkhorse: Added releaseyear (copyright not shown, datecodes on PCB suggests early-1981) - War of the Worlds . Removed duplicate code which necessitated separate samples for clone War of the Worlds (color) . Both display types now only need the one sample set (wotw) - Zero Team USA: Added undumped roms to clone Zero Team 2000 - Regression fixes . Fixed clones Caterpillar and Magic Worm (bootleg) crash before OK (ID 04870) . Fixed Densha de GO! / 2 crash after initial checks (ID 04861) . Fixed Ice Climber booting problem . Fixed Joust 2 crash after OK (ID 04868) . Fixed start buttons don't work in Karate Tournament (ID 04703) . Fixed shared ram in Ninjakun Majou no Bouken . Fixed flipscreen doesn't work correctly in Mouja (ID 02339) . Fixed all NAOMI sets crash after OK (ID 04838) . Fixed shared ram in Raiders5. This fixes game fails RAM test (ID 04866). . Fixed Varia Metal regression . Fixed Williams regression . Kaneko16 regression fix (kaneko16_ay2_YM2149_r) for berlwall, bakubrkr and mgcrystl . Fixed deprecat regression in Nemesis driver (rf2 hang after countdown) (ID 04890) . Fixed Maygay1b regression (region oki->msm6376) . Fixed tag regression in the Midway Y-unit driver. This fixes smashtv, strkforc and trog crashes while a game begins (ID 04862). . Fixed tag regression in the Taito JC driver. This fixes dendego, dendego2 and dendego23k crash after initial checks. . Fixed "sprite_position" tag regression in Turbo driver. This fixes the massiv slowdown since 0.144u7 (ID 04854). . Fixed PC-XT driver regression - Dipswitch fixes in 40love, cosmicmo, gdfs, shootout and tunhunt - Fixed rom names in balonfgt, bzone.c, cbtime, cprogolf, destiny, exprraid.c, yiear, vsnes.c and xsleena - Renamed (bzone) to (bzonea), (bzone2) to (bzone), (crszonea) to (crszonec), (crszone) to (crszonea), (crszoneb) to (crszone), (dbldyn) to (dbldynj), (dbldynf) to (dbldynu), (dynduke) to (dyndukej), (dyndukef) to (dyndukeu), (deshoros) to (destiny), (excitebk) to (excitebka), (excitebkj) to (excitebk), (gprider1) to (gprideru), (harley) to (harleya), (harleyb) to (harley), (iceclimb) to (iceclimba), (iceclimbj) to (iceclimb), (iceclmrj) to (iceclmrd), (imgfighto) to (imgfightj), (machridrj) to (machridra), (smgolf) to (smgolfb), (smgolfb) to (smgolf), (suprmrio) to (suprmrioa), (suprmrioa) to (suprmrio), (vsbballj) to (vsbballjb), (vsbballjb) to (vsbballj), (vssoccer) to (vssoccera), (vssoccerj) to (vssoccer), (vstennis) to (vstennisa), (vstennisj) to (vstennis), (wexpress) to (wexpressb), (wexpressb) to (wexpressb2) and (wexpressb2) to (wexpressb3) - Description changes of Area 51: Site 4 (HD Rev 2.0, September 11, 1998), Area 51: Site 4 (HD Rev 2.01, September 7, 1998), Battlantis (Japan, program code E), Battlantis (program code G), Destiny - The Fortuneteller (USA), Dragon World 2001 (V100?, Japan), Gun Survivor 2 Biohazard Code: Veronica (BHF1), Gyruss, Gyruss (bootleg?), Image Fight (World, revision A), Knock Out!! (bootleg?), Legend of Hero Tonma (Japan, bootleg with i8751), Legend of Hero Tonma (unprotected bootleg), Manx TT Superbike - Twin (Revision C), Mazan: Flash of the Blade (MAZ2 Ver. A), Motor Raid - Twin, Over Rev (Model 2C, Revision A), Rack 'em Up (Japan, program code J), Rack 'em Up (Japan, program code M), Rack 'em Up (program code L), Scud Race Deluxe (Japan), Scud Race Twin (Australia), Scud Race Twin (Export)', Venus (bootleg of Gyruss), Vs. Balloon Fight (set BF4 A-3), Vs. BaseBall (Japan, set BA A-1), Vs. BaseBall (Japan, set BA A-2), Vs. BaseBall (Japan, set BA A-3), Vs. BaseBall (US, set BA E-1), Vs. Duck Hunt (set DH3 E), Vs. Excitebike (set EB4-3 ?), Vs. Excitebike (set EB4-4 A), Vs. Gumshoe (set GM5), Vs. Hogan's Alley (set HA4-1 E-1), Vs. Ice Climber (set IC4-4 ?), Vs. Ice Climber (set IC4-4 B-1), Vs. Ice Climber Dual (set IC4-4 A-1), Vs. Mach Rider (Fighting Course Version, set MR4-1 A), Vs. Pinball (set ?) (Japan, set PN3 B), Vs. Pinball (set ?), Vs. Raid on Bungeling Bay (RD4-2 B), Vs. Soccer (set SC4-2 A), Vs. Soccer (set SC4-3 ?), Vs. Stroke & Match Golf (Ladies Version, set LG4 ?), Vs. Stroke & Match Golf (Ladies Version, set LG4 E), Vs. Stroke & Match Golf (Men Version) (Japan, set GF3 B), Vs. Stroke & Match Golf (Men Version, set GF4-2 ?), Vs. Stroke & Match Golf (Men Version, set GF4-2 F), Vs. Super Mario Bros. (set SM4-4 E), Vs. Tennis (Japan/USA, set ?), Vs. Tennis (Japan/USA, set TE A-3), Western Express (bootleg set 1), Western Express (bootleg set 2), Western Express (bootleg set 3), World Kicks (WK2 Ver. A), Yie Ar Kung-Fu (program code G) and Yie Ar Kung-Fu (program code I) - MAME . If a game has no DIP locations, don't draw an empty box in the dipswitch menu (ID 04591) . Allow image loading outside of layout zip . Conversion of _DEVICE_HANDLER to _MEMBER methods - part 1 and part 2 . Perform validation after reading ini file and check system name, fixes issues with ramsize option. . Added support for fixed slots (used for MAME) and ability to create internal only slot options (for MESS) . Make fix slots not available by command line. Fix for internal ui crash on dips menu (emu\uimain.c) . Expanded slot definition with clock and config so we can better define fixed slot devices where needed . Fixed for slot menus + some cleanup - MESS . Fixed system crash in MESS regarding -ramsize and internal UI, also now in case ram value is not proper it change itself to default value. . WANGPC Keyboard WIP from MESS (cpu\mcs51\mcs51.c, machine\im6402.c). Fixed POST serial and keyboard errors . Added Videoton TVC .cas cassette image support . Fixed 8-bit wav loading (formats/cassimg.c + wavfile.c) . Added 16-bit Ensoniq synthesizers and samplers floppy Disk format . Support MFM floppy formats where sector numbering starts at 0 - SDLMAME . Preliminary Haiku OS support . Fixes for SDL OS/2 compile - Compiling . Removed memconv.h and devconv.h usage and kbdc8042 32bit access functions in machine\8237dma.c, machine\8257dma.c, machine\z80dma.c, calchase.c, funkball.c, gamecstl.c, jaguar.c, mediagx.c, midqslvr.c, pcxt.c, photoply.c, queen.c, savquest.c, seta2.c, taitowlf.c, voyager.c and xtom3d.c . Fixed compile video\atari.c . Fixed building with Visual Studio 11 RC . Fixed PPC OSX compile (machine\68681.c) . Fixed sr(syncrefresh) clashed with emuopts sr(samplerate) (osd\windows\winmain.c and osd\sdl\sdlmain.c) - Debugger: In cases of debug optimized build tools return error on this, code however looks good but still there is special case with warning (emu\device.h) 0.146 - New games: DS Telejan (DECO Cassette, Japan), Handle Champ ad Hyper Bishi Bashi Champ (GQ876 VER. EAA) - New Working games: Bikkuri Card, Chance Kun, Chance Thirty Two and Mahjong Long Hu Zheng Ba 2 (VS221M) - New Non-Working games: Touryuumon (V1.1)? - New clones: Hamburger (DECO Cassette, Japan), Hyper Bishi Bashi Champ (GQ876 VER. AAA), Ms. Pac-Man II (Orca bootleg set 1), Ms. Pac-Man II (Orca bootleg set 2), OutRunners (Japan), Super Poker (Version 10.10), Tecmo Bowl (World, prototype?), Tournament Pro Golf (DECO Cassette, Japan), Trivia (Questions Series 10 Alt Question Rom), Trivia (Questions Series 11 Alt Question Rom), Trivia (Version 1.03a Alt questions 2) and Zero Team 2000 - I286 CPU: Fix for i286 preventing error 104 on IBM5170 - I386 CPU . IRET/Virtual 8086 mode fixes . Another small vm86 fix . Removed unwanted logical AND - PowerPC CPUs . Added PPC405GP to PPC cpu core . Added custom DCR read/write handlers to core . Cleanup powerpc\ppc.c, ppccom.c and ppcdrc.c - Z8001 CPU . Preliminary Z8001 support . Support for disassembly of Z8001 instructions . More Z8001 work, Olivetti L1 M20 (MESS) now passes memory test. . Fixed Z8001 inb/outb @rX form. M20 PPI test now passes . Z8001 has 16-bit wide I/O ports - POKEY sound . Improved sound emulation. This fixes Liberator resets on the planet screen if any wave above 16 (19 or 22) was selected (ID 00501) and imperfect sound play in Missile Command for UFO and bomber attack (ID 04492). . Changed audio emulation to emulate borrow 3 clock delay and proper channel reset . New frequency only becomes effective after the counter hits 0 . Emulation also treats counters as 8 bit counters which are linked now instead of monolytic 16 bit counters . Fixed high pass filters for POKEY . Added POKEYN device based on modern device . Fixed random lfsr generation . Consolidated polynom code . Removed legacy left overs from Pokey code . Added a internal pokey_channel class . Convert all remaining drivers to use the modern Pokey device (astdelux, atarisy1.c, atarisy2.c, atetris, barbball, bwidow.c, bzone.c, ccastles, centiped.c, cloak, cloud9.c, firefox, foodf, gauntlet.c, irobot, liberatr, maxaflex.c, mhavoc, missile, quantum, runaway.c, starwars.c, tempest, tomcat and tunhunt) - TC8830F sound: Preliminary Toshiba TC8830F emulation (see Chance Kun) - TIA sound: Fixed TIA crashes caused by uninitialized variable - I8251 UART: "Reset" bit is only documented to revert to looking for a mode byte, not reset the entire chip. - 8255 PPI . Updating MAME drivers to use modern i8255 implementation instead of the legacy one (aristmk4.c, astinvad.c, cb2001.c, clayshoo, dribling, epos.c, fortecar, freekick.c, galaxian.c, gatron.c, gei.c, goldstar.c, homerun.c, igs009.c, igs017.c, imolagp, iqblock.c, kingdrby, kungfur, lordgun.c, lucky74, merit.c, meritm.c, pcxt.c, pipeline, rgum, scobra.c, scramble.c, segag80r.c, sfkick, skylncr.c, slotcarn.c, sms.c, statriv2.c, subsino.c, system1.c, taxidriv, tcl, tx1.c, vroulet, zaccaria.c and zaxxon.c) . Fixed I8255 port C-lower mask in port A mode 2. Fixed obvious bug with port C-lower output. . Razzmatazz/Ixion doesn't have a 8255 - 68681 DUART . Fix for counter mode making SC4 not assert (machine\68681.c) . Timers start immediately; unlike counters they don't wait for a start command. . Fixed MC68681 generation of spurious interrupts, and provide ASSERT/CLEAR states to the IRQ callback. - Floppy . ap2_dsk (MESS): Preliminary, working RWTS18 decoding support; Decodes disks and shows ascii text; not sure if sectors are in the correct order yet. . Fixed uninitialized variable that causes random assertion failure in snapquik.c . Fixed to read tags from DiskCopy 4.2 files properly (formats/ap_dsk35.c). Lisa requires this. - CHDMAN . Fix for output of TOC and GDI content on extractcd option (ID 04728) . Changed error message to be more descriptive to actual error that occurs when a .dif file version doesn't match the CHD version. Hopefully, this will all but stop the seemingly never ending questions about the error (util/chd.c). - Crystals: Update comment (emu\drivers\xtal.h) - Flash ROM: Intel 28F320J3D flash support - astrocde.c: Get rid of anonymous timer (savestate problem) - bfm_sc2.c . Correct some off by one errors in DM01 dot matrix emulation, while making it a bit more generic. Ultimately, it will plug into Scorpion 2 and 4 hardware. . This is phase 2 of the DMD changes, creating a new '5 dot' element to make it more like the actual DM01 (which uses 5 by 7 blocks, but wires them up row wise to a buffer, giving an unusual '65 dot row') (emu\rendlay.c, layout/awpdmd.lay, bfm_dm01.c). . Finally done the last part of the dotmatrix changes, which is to create a dot by dot display mode. This makes the BFMDM01 emulation far more straightforward, and should mean that anyone wanting a matrix can call some combination of functions and make it work. . Fix for crashing bfm_sc2.c sets - bfm_sc4.c: DUART fix for counter mode making SC4 not assert (machine\68681.c) - cps1.c: Added PCB infos - decocass.c . Changed some dongle names based on photos . Changed some "BIN" to "CAS" added misc comments about info from photos . Promoted DS Telejan to working state . Fixed protection in clone Burger Time, giving it working status. - galspnbl.c: Added missing button along with misc documentation. Fixed 68000 CPU, YM3812 and OKI6295 clock speeds. - ksys573.c: Added alternative BIOS found on Gachagachamp, it appears to just be recompiled. Added the 700B01 BIOS, only the CRC is known. - megadriv.c: Initial work in preparation for some modernization on the whole driver, starting with better splitting of actual drivers (megadriv.c, megacd.c, mega32x.c, megasvp.c and megavdp.c) - megatech.c: Added BIOS Ver 0 - namcops2.c: Documentation addition of a list of known Namco System 246/256 games until something more official is created - neodrvr.c: Misc documentation updates and typo fixes for neogeo.xml as well as updates and a cleanup of Neo-Geo driver - playch10.c: Fixed IRQ regression in some PlayChoice G-Board games by simply importing MMC3 IRQ code from MESS. Implementations will be merged anyway, eventually, just no time now to pursue this more. This fixes graphics are messed up in pc_mman3, pc_ngai2, pc_ngai3, pc_pwbld and pc_radr2 (ID 04738). - scramble.c: Fixed crash in 800fath, mariner, knockout, triplep and sets having a 7474 without the "audiocpu". No idea why it has started to crash only now. - superqix.c . Fixed statusport bitmask in driver. This fixes game resets after starting in sqixb2, perestro and perestrof (ID 01631). . Added NMI ack for Super Qix bootlegs - tecmo.c: Added NMI sound ACK mechanism - vendetta.c: Small cosmetic changes to the driver plus PCB components verified. Fixed KONAMI CPU clock speed and VSync. - Aliens, Crime Fighters: Reverted wrong changes applied in 0.145u8 (slow music fix) - Bikkuri Card: Added inputs and small cleanup (Game now playable) - Butasan - Pig's & Bomber's: Replaced overdumped maincpu rom based on PCB pictures and observation - Chance Kun . Added inputs (Game now playable) . Added Toshiba TC8830F voice/sample player (preliminary) . Small cleanup - Chance Thirty Two . Driver improvements (Game now playable) . Inputs from the scratch . Completely demuxed the output lines . Added lamps support . Added a nice button-lamps layout . Found and added the FEVER! lamp . Fixed the Oki6295 and CRTC 6845 clocks . Correct the refresh rate to 52.786 Hz (similar to Major Poker) . Hooked the vblank input line . Figured out the following DIP switches: Auto Max Bet, Flip Screen, Maximum Bet, Auto Hold, Double-Up Type, Remote Credits, Bet Limit and Coinage Multiplier. - Gunbuster . Fixed coin lockout (ID 04586) and missing sound/music (ID 04588), default EEPROM had volume 0 (added new EEPROM) (ID 04587). . Small cleanups and disabled coin lockout for clone (Japan) - Handle Champ: Stop the elephant stage from crashing, though other graphics issues remain. - Hyper Bishi Bashi Champ . Zerod out the date and time (M48T58 timekeeper rom) . Hooked up Player 3 controls - Mahjong Long Hu Zheng Ba 2: Emulated protection in clone (VS221M), making it playable. - Mars Matrix: Fixed mapping for clone (USA 000412 Phoenix Edition) (bootleg) to allow in-game region switch to work - Ninja Assault: Added I/O board ROM dump - SportTime Table Hockey: Changed (Arcadia, set 2) to clone (ID 04813) - Super Pinball Action . Adjusted clock speeds based on OSCs actually on the PCB . Added missing button and labeled buttons . Added DIP locations and misc documentation - Trick Trap: Fixed music speed (ID 04833) - Trivia (Questions Series 8) . Refactored Trivia rom questions . Added misc documentation . Added DSW locations to several sets - X-Men Vs. Street Fighter: Replaced bad dumps in clone '(USA 961004 Phoenix Edition) (bootleg)' with others which pass in-game rom tests (ID 04824) - Input port . Cleanup and fixed natural keyboard issues in ioport . Fixed uninitialized field in ioport_field.m_chars (fixes stack corruption with three PORT_CHAR definitions) / added some sanity checks for PORT_CHAR adding and lookup. . Port changed regression fix and fix for PORT_CONDITION regression (emu\ioport.c) and cleanup . Set m_cursetting to NULL (emu\ioport.c) since must not be set in case of onoff_alloc, this fixes validation too. - Regression fixes . Port changed regression fix. This fixes coin insert problem in airbustr, brkthru.c, bwings, cchasm and exidy440.c (ID 04803). . Fix for PORT_CONDITION regression. This fixes DIP Default "Coin Mode 1" now triggers freeplay in Blandia and clone (ID 04805). . Fix for PORT_VBLANK multi bit. This fixes copsnrob hang/freeze at boot (ID 04807). Fixed fmaniac3 shows only white screen after title (ID 04823). Fixed black screen/hang in simpl156.c games (ID 04804). . Fixed ioport regression in atarigt.c, atarigx2.c, blitz68k.c, crgolf.c, dkong.c, flyball, itech8.c and mcr.c . Fixed a obvious regression (hang after coining up - why did this even work before??) in exprraid (ID 04808) . Fixed mistakes with MCFG_SOUND_ROUTE in MCFG_SOUND_MODIFY, causing double routing (louder volume + soundchip showing up twice in the sliders menu) (artmagic.c, bagman.c, calomega.c, ddragon3.c, galaxi.c, galaxian.c, re900.c, route16.c, scramble.c, taito_l.c, tnzs.c and wiz.c). . Fixed atarivc_eof tag and shortened playfield_upper(15 chars) tag to playfield_up in batman.c, eprom.c, klax.c, offtwall.c, relief.c, shuuz.c, skullxbo.c and thunderj.c. This fixes missing/corrupted graphics in Batman, Relief Pitcher, Shuuz and ThunderJaws (ID 04817) (ID 04834). . Fix for boot problem on pcxt.c . Fixed ladybug.c and redclash.c hang on boot (ID 04806) (ID 04809) . Fixed black screen in feversoc (ID 04843) . Fixed gorf exit with autosave on (ID 04829) . Fixed broken colors in gsword.c (ID 04835) . Fixed missing sprites in avspirit and monkelf (ID 04789) . Fixed aleck64.c, cdi.c, xmen6p, xmen6pu, xsedae and wardner crash after OK (ID 04810) (ID 04840) (ID 04822) (ID 04776) (ID 04753) . Fixed mkyawdim and mkyawdim2 crash before OK (ID 04773) . Fixed alpha68k.c regression. This fixes starting button for P1 is always on, you cannot use P1 inputs in gangwars, goldmedl, skyadvnt, skysoldr and timesold (ID 04826). - Fixed rom names in bcruzm12, cotton, cps1.c and gei.c - Renamed (gt5) to (gtsers15), (hyperbbc) to (hypbbc2p), (hyperbbck) to (hypbbc2pk), (nzerotea) to (nzeroteam), (samsh5sph) to (samsh5spho), (samsh5spn) to (samsh5sph) and (suprpkr1) to (suprpokra) - Fixed year of production in sc4crgc (ID 04828), sc5crnjw (ID 04815) and sc5dmine (ID 04827) - Description changes of Chance Kun (Japan), Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA), Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA), Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86), Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg), Trivia (Questions Series 15), Trivia (Unsorted question roms) and Trivia (Version 1.03a Alt questions 1) - MAME . MAME windows executable gets it's own icon. Fixed display of icon in windows. . Fix for PORT_VBLANK multi bit (emu\screen.c) . Fix for -video ddraw causing crash on 16bit video output (windows/drawdd.c) (ID 04847) . Fixed ram size validation regression (emu\machine\ram.c) . Added device image type for individual ROM images (as used in some Amstrad CPC applications) . Added screen tags to XML output, so that it is possible to easily identify which screens depend on optional devices (mostly of use in MESS, for its slot options, but eventually handy for PC-based arcades too). - Compiling . Fixed ldplayer compile . Fixed OS X PowerPC compile . Don't optimize TMS57002 on OS X PowerPC builds . GCC 4.6 compile fix (video\bfm_dm01.c) . Fixes for building with Visual Studio 11 beta . objdump doesn't work with VS binaries (MSVC_BUILD in makefile), so do not run it. . Fixed compilation under VS2010 . Fixed some "comparison is always true/false" warnings reported by Clang in timer.c 0.145u8 - New games: Funcube 5 (v1.0) and Jue Zhan Tian Huang - New Working games: Golden Arrow and Super Stars - New Non-Working games: Bikkuri Card (Japan), Chance Thirty Two, Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg), Multi Game III (V.Ger 3.64), Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan) and Super Volley ball (Tourvision PCE bootleg) - New clones: Baby Pac-Man (set 1), Congo Bongo (Rev C, 3 board stack), Erotictac/Tactic (ver 01), Gulf Storm (set 2), Mahjong Yoshimoto Gekijou [BET] (Japan), Moon Cresta (Nichibutsu UK, unencrypted), Red Fox War Planes II (China), Sharpshooter (Rev 1.9), Space Firebird (rev. 02-a), Top Racer (bootleg of Driving Force) and Zoku Mahjong Housoukyoku (Japan) - New drivers: chance32.c - 68000 CPU: Various Clang warning cleanups in m68000/m68kcpu.h - Freescale 68340: Misc CPU related progress - I386 CPU . Fixed for bt? instructions . Big pmode update . Various Clang warning cleanups in i386ops - I5000 sound: Added savestates to Imagetek I5000 sound. okiadpcm.o is also used by i5000. - POKEY sound: Various Clang warning cleanups - TMS5220 sound: Various Clang warning cleanups - 8155 RIOT . I8155 timer regs can be read too (used by meyc8088 diagnostics) . Simplified 8155 read_port + make sure portc is 6 bits wide (meyc8088.c expects d6,7 to be set on read) - 6551 ACIA: m_status_register was not being initialized properly - RTC: Added the clock counter chain and other common functions into device_rtc_interface, removing duplicated code in RTC implementations. Rewrote the Dallas DS1302 to support additional features needed by IDE64 in MESS. - MC6845 CRT: Show errors with logerror instead of popmessage - EEPROM: Various Clang warning cleanups - CD-ROM: Marked all remaining old-style CDs without gap information BAD_DUMP. These will still run (where applicable), but need to be re-ripped for best accuracy and proper audio track timing for some Bemani games (affected drivers are cd32.c, cdi.c, cps3.c, firebeat.c, konamim2.c, ksys573.c, stv.c and twinkle.c). - Floppy: ap2_dsk (MESS): Added some missing defines and comments and a way to select whether to use lenient (if the address mark contents are sane regardless of whether the checksum byte was good or not) or normal (only if checksum was valid) usage of the address marks. Also switched the default output sector order from prodos order to dos3.3 order, which is slightly more useful. Added a define to switch between the three possible sector orderings: prodos, dos3.3, and logical. Fixed a nasty bug in dfi_dsk.c when reading df bytes with 0x80 set throwing the timing way off; this makes most disk images decode a whole heck of a lot better. Fixed a nasty array-out-of-bounds access problem in ap2_dsk.c if an address mark with an insane sector value in it is read. Fixed a logic bug in the dfi header check which surprisingly doesn't come up at all on GCC (compiler bug?) but does happen on Clang. Also disabled some accidentally enabled debug code, and handle the case of no index transitions at all properly. Remove a hunk of dead code. Fixed a silly logic-breaking typo that Clang caught. - CHDMAN . Various libflac and lib7z fixes . Fixed error in decompression for avhuff. Converted cubeqst CHDs now pass verification. - amaticmg.c . Simplified gfx rom loading . Super Stars . Some improvements (Game now playable) . Reworked inputs from the scratch . Added a button-lamps layout and support for outputs: lamps & counters. Added technical notes. . Small mods for am_mg24 and am_mg3, they won't boot tho. . Color bitplane fix for am_mg3 . Added/decrypted Multi Game III (V.Ger 3.64). This one has the CRTC mapped 0e-0f. . Amatic AMA-8000 improvements: Found the hopper motor signal. Mapped the hopper pay pulse to key 'Q'. Now is possible to payout manually, avoiding the hang for hopper empty or timeout. - bloodbro.c . Added minor documentation about accessing the built-in DSW setting page for games in driver . Added minor whitespace clean up for alignment - bfm_swp.c: Replaced 68020 CPU1 with Freescale 68340 - bfmsys85.c, mpu4.c: Stripped out the awp_reel_setup code from all drivers, thanks to the more intelligent reel types, we don't need it any more. - byvid.c: Some driver updates - hikaru.c: Added some new technical findings - meyc8080.c . Coinage switch for Casino Black Jack . "Bit Switch 8" is Service Mode - mpu4vid.c: Updated mpu4.lay and mpu4ext.lay layouts for numerous slots to take advantage of new reel development. - namcos10.c: Changed to mrdriller2's decryption - naomi.c . Added Rev "H" USA Naomi BIOS . Redumped Azumanga Daioh Puzzle Bobble GD-ROM - neodrvr.c: Fixed invalid ISO C syntax in driver noted by Clang - niyanpai.c: Fixed graphics draw speed - puckpkmn.c . Added basic protection simulation for Jue Zhan Tian Huang, allowing for gameplay to the end. . Fixed OKI6295 clock speed in Puckman Pockimon - vectrex.c: Support 64k bankswitched carts and carts with SRAM - williams.c: Fixed video counter reporting (should stay at maximum value until reset) - Aliens: Fixed slow music playing (ID 01232) - Chance Thirty Two: Various hooks and fixed gfx bugs. Implemented new paletteram_xGGGGGRRRRRBBBBB_byte_le_w() function, used by Chance 32. - Circus: Changed clone 'Circus (Sub-Electro bootleg)' to 'Springboard (bootleg of Circus)'. Thanks for GregF for pointing out the numerous sources which list "Springboard" as the game name and an obvious bootleg of circus (http://flyers.arcade-museum.com/?page=flyer&db=videodb&id=2600&image=1) - Congo Bongo . Correct rom labels and U locations for the Congo Bongo sets . Added the 3 board stack version with correct PBROM . Added additional documentation about the 2 board stack and the 3 board stack . Correct / clarified the "hand written" Congo Bongo label statement. As per suggestion, added "Rev C" to game name as there are other versions out there that need dumping. - Crime Fighters: Fixed slow music playing (ID 00413) - The Dealer: Hooked up missing AY8910 sound (ID 04787) - Draw Poker - Joker's Wild: Added coinage switch for clone mdrawpkra. Removed old note about mdrawpkr. - Golden Arrow . Video / timing updates . Improved and added base inputs . Added/hooked color PROM . I8155 timer regs can be read too (used by driver diagnostics) . Simplified 8155 read_port + make sure portc is 6 bits wide (driver expects d6,7 to be set on read) . Added robbiestyle button lamps . Added DAC sound and mono Speaker (Game now playable) - Metal Soldier Isaac II: Removed some obsolete size members from msisaac_state (includes\msisaac.h) - Nichibutsu Mahjong drivers: Clean-ups to sound and fixed volume balance in hyhoo.c, nbmj8900.c, nbmj8688.c, nbmj8891.c, nbmj8991.c, nbmj9195.c and niyanpai.c - Star Force: Updated rom label locations based on PCB pictures provided by bonky0013 - Trivia (Questions Series 8): Sorted out the correct question roms for clones gtsers12, gtsers14 and gt103a1 - unknown BMC poker game: Added some mods - Vampire Hunter 2: Fixed rom loading in clone vhunt2d (ID 04786) - Vampire Savior 2: Added new maincpu roms to clone vsav2d (ID 04788) - Wild Arrow: Added gambling control - Input port (ioport.c C++ conversion) . Mostly internal changes, with no intended differences from previous behavior. For drivers, the main change is that input_port_read() no longer exists. Instead, the port must be fetched from the appropriate device, and then read() is called. For member functions, this is actually simpler/cleaner: value = ioport("tag")->read(). For legacy functions which have a driver_data state, it goes: value = state->ioport("tag")->read(). For other legacy functions, they need to fetch the root device: value = machine.root_device().ioport("tag")->read(). The other big change for drivers is that IPT_VBLANK is gone. Instead, it has been replaced by a device line callback on the screen device. There's a new macro PORT_VBLANK("tag") which automatically points things to the right spot. . Fixed issue where initial values are not set up correctly . Fixed saving changes to inputs, player mappings, and a couple of odd joystick problems. . Fixed some analog control issues due to incorrect assumption that scale factors were INT32's not INT64's. Also explicitly use ioport_value for lookup tables instead of UINT32. . Fixed issue where changes to the default input config did not apply to the game-specific config. - Regression fixes . Fixed some recent vblank port related regressions in backfire.c, cesclass.c, cyberbal.c and subs.c . naomi.c: Fixed some crashes in machine\naomigd.c and naomim1/2/4.c, there are more (ID 04774). . pgm.c: Fixed crash before OK in ddpdoj, ddpdoja, ddpdojb, espgal, ket, keta and ketb (ID 04775) . williams.c: Fixed driver regression . scramble.c: Fixed crash before OK in ad2083, mariner, 800fath, triplep and knockout (ID 04777) . subsino2.c: Fixed crash before OK in bishjan, mtrain and wtrnymph (ID 04778) . Bomb Jack: Fixed missing sprites (ID 04794) . Chance Kun: Fixed regression . Flower: Fixed ADDRESS_MAP regression (black screen) (ID 04769) . Judge Dredd (rev LA1, prototype): Fixed crash before OK (ID 04772) . Lock-On: Fixed missing sprites/HUD regression . Magical Error wo Sagase: Fixed game drop in performance at Warning Screen and onwards (ID 04771) . Mario Bros: Fixed missing title/game graphics (ID 04766) . Ninjakun Majou no Bouken: Fixed missing game graphics and tilemap scroll (ID 04768) . Video Hustler: Fixed crash before OK (ID 04779) . Zero Team: Fixed gameplay crash regression - Dipswitch fixes in amaticmg.c, cave.c, meyc8080.c, meyc8088.c, timeplt.c and toaplan2.c - Fixed rom names in congo, ertictac and starforc - Renamed (am_uslot) to (suprstar), (babypac) to (babypac2), (circusse) to (springbd), (gt103a2) to (gtsers12), (gt103a3) to (gtsers14), (spacefb) to (spacefbe2), (spacefbu) to (spacefb) and (sshooter) to (sshooter17) - Description changes of Baby Pac-Man (set 2), Congo Bongo (Rev C, 2 board stack), Do$h 'n' Pecks (Barcrest) (MPU5) (ID 04784), Golden Arrow (Standard G8-03), Granny and the Gators, Gulf Storm (set 1), Hayaoshi Taisen Quiz Hyhoo (Japan), Hayaoshi Taisen Quiz Hyhoo 2 (Japan), Space Firebird (rev. 03-e set 1), Space Firebird (rev. 03-e set 2), Space Firebird (rev. 04-u), Springboard (bootleg of Circus), Super Stars, Tip Top (3 board stack), Trivia (Questions Series 12), Trivia (Questions Series 14) and Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg) - AGEMAME - bfm_sc1.c . Fixed divide by zero crashes for many sets in the sc1 and sc2 drivers (video\awpvid.c) . Stripped out the awp_reel_setup code from all drivers, thanks to the more intelligent reel types, we don't need it any more. - bfm_sc2.c . Fixed divide by zero crashes for many sets in the sc1 and sc2 drivers (video\awpvid.c) . Updated awpdmd.lay, awpvid14.lay, awpvid16.lay, bfm_sc1.lay, drwho.lay and gamball.lay layouts for numerous slots to take advantage of new reel development. . Stripped out the awp_reel_setup code from all drivers, thanks to the more intelligent reel types, we don't need it any more. - bfm_sc4.c . Started adding support for scrolling reel displays, currently text only, but should be pretty easy to get graphics in there and add different direction scrolling - updating bfm_sc4 code to use these new types. . Stepper display output fix (bfm_sc4.lay and video\awpvid.c) . Added ability to add the graphics in the external drwho art file to the new reel structure . Stripped out the awp_reel_setup code from all drivers, thanks to the more intelligent reel types, we don't need it any more. . Added/filled in about 110 missing Scorpion 4/5 romsets . Added clone Cash Blast (Voodoo Games) (Scorpion 4) (set 2). Changed parent description to 'Cash Blast (Voodoo Games) (Scorpion 4) (set 1)'. . Added clone Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9) and (set 10). . Added clone Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2). Changed description of clone '(DOBO474)' to '(DOBO474, set 1)'. . Added clone Showtime (Bellfruit) (Scorpion 4) (set 7). . Added clones Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13), (set 14), (set 15) and (set 16). . Added clones Crazy Climber (Bellfruit) (Scorpion 4) (set 18), (set 19), (set 20), (set 21) and (set 22). . Added clones Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 2), (set 3), (set 4), (set 5), (set 6), (set 7), (set 8), (set 9), (set 10), (set 11), (set 12), (set 13), (set 14), (set 15), (set 16), (set 17), (set 18) and (set 19). Changed parent description to 'Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 1)'. . Added clones Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 13) and (set 14) and Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 9) and (set 10). . Added clones Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1) and (CLDD215, set 2). . Added clones Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476), (DNHA572, set 1, bad?) and (DNHA572, set 2, bad?). . Added clones Family Guy (Bellfruit) (Scorpion 4) (set 5) and (set 6). . Added clones Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17), (set 18), (set 19) and (set 20). . Added clones Italian Job (Mazooma) (Scorpion 4) (set 13) and (set 14). . Added clones Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23), (set 24), (set 25) and (set 26). . Added clones Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11), (set 12), (set 13) and (set 14). . Added clones Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13), (set 14) and (set 15). . Added clones Popeye (Mazooma) (Scorpion 4) (set 5) and (set 6). . Added clones Pots Of Gold (Bellfruit) (Scorpion 4) (set 9) and (set 10). . Added clones Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5) and (set 6). . Added clones Wild Bunch (Bellfruit) (Scorpion 4) (set 11), (set 12), (set 13) and (set 14). . Added Club Moneybags (Bellfruit) (Scorpion 4) (set 1) (BFM 200?) and clones (set 2), (set 3) and (set 4). . Added Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1) (BFM 200?) and clone (set 2) . Changed 'Easy Streak Casino (Bellfruit) (Scorpion 4) (set 1)' from a clone of Easy Streak (Bellfruit) (Scorpion 4) (set 1) to parent set. . Changed year info to 2002 in sc4jjunc (ID 04783). . Changed year info to 2003 in sc4slc (ID 04782). - bfm_sc5.c . Added missing maincpu ($0) rom to clone Fruit Crazy (Mazooma) (Scorpion 5) (set 2). . Changed parent and clones descriptions to 'Pot Of Gold (QPS) (Scorpion 5)'. . Changed year info to 2005 in sc5potp (ID 04781). - MAME . Started adding support for scrolling reel displays, currently text only, but should be pretty easy to get graphics in there and add different direction scrolling - updating bfm_sc4 code to use these new types. . Fixed vector rendering when using software rasterizer . Use a tagged_list for memory_banks . Fixed Game select UI hangs when using cursor keys (ID 04745) . Made UI for BIOS selection where applicable, and moved info about current system and default bios to device_t class. . Fixed none/default toggle for game-specific configs (emu\uimain.c). . Fixed sound code dependency, this fixes linking of tiny build (sound/sound.mak) (ID 04785) . Separated user gain from input gain . Added more functions to map inputs and devices to outputs in sound streams . Some general cleanups in the sound/streaming code - SDLMAME . Fixed linking for MinGW GCC 4.6.3 and upper using libwinpthread for SDL build on windows (sdl\sdl.mak) . Removed -static for SDL windows build (sdl\sdl.mak) - Compiling . Fixed linking for MinGW GCC 4.6.3 and upper using libwinpthread (windows/windows.mak) . Killed unicows (windows/windows.mak) . Optimized optimization options (makefile) . static is not needed anymore for latest tools (windows/windows.mak) . Fix for older GCCs . Fixed PowerPC OS X compile . Fixes for compiling with MSVC. Fixed "potentially uninitalized local variable" error when building with MSVC. The code does appear to assume that variables on the stack are zero'd. 0.145u7 - New games: Silver Millennium - New Working games: Draw Poker - Joker's Wild (Standard) - New Non-Working games: Golden Arrow, Ninja Assault (NJA3 Ver. A) and Star Trek: Voyager - New clones: Hot Mind (Fit of Fighting hardware), Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN) and Zeke's Peak - New drivers: meyc8088.c, silvmil.c and voyager.c - 68000 CPU . Fixed BFINS, BFEXTU and BFEXTS opcodes to fetch 8-bit quantities as 8 bits (corrects Domain/OS 10.3.5 crash on page boundry) . Added SoftFloat log functions and m68k FLOGNP1, FLOGN, FLOG2 and FLOG10 instructions - 68307 CPU . Improved the serial emulation and added some logging. Removing the hack in bfm_sc4.c. . More work on 68307's - I5000 sound: Preliminary Imagetek I5000 sound emulation. Fixed unending samples. Added 3bit ADPCM. Fixed 3bit ADPCM pitch. Added exponential volume table (sounds much better, music doesn't drown sfx anymore). - OKI6295 sound: Check if voice is playing *before* possibly starting an invalid sample - Seibu sound: Removed old and obsolete hack (audio\seibu.c) - SP0256 sound: Fixed clock speed - 8155 RIOT: Defaulting LOG to off - I8279 . Import updated i8279 device driver to emu\machine (shared) folder . Converted turbo.c to use i8279 device - Flash ROM: Support for ATMEL 29C010 chip - Nintendo 2C0x PPU: Removed some leftovers from the conversion to a modern device (cham24.c, famibox.c, multigam.c, playch10.c and vsnes.c) - uPD1990AC: Only latch CSx bits in uPD1990AC when STB is high. Removed unnecessary extra logging. - Imagetek Custom chips: Fixed Chiplabel from Imagetek 1xxxx -> Imagetek Ixxxx - amaticmg.c: Figured out encryption - astrafr.c: Added some notes, code and alternate revisions to Astra Fruit Machines driver. Replaced 68020 CPU1/2 with 2x Freescale 68340. - cps3.c: Fixed CD Catalog # for jojoba 990927 and properly renamed the CHD. Realigned the games table. - ddenlovr.c: Modernization the driver - ecoinf3.c: Added some 8255s to driver (maybe too many, not sure how many the PCBs have) and identified where it writes the 'VFD' strings. Fixed Z180 CPU1 clock speed. - expro02.c: Small driver cleanup - gumbo.c: Added DIP locations to all sets in the driver - jaguar.c: Fixed driver - jclub2.c: Fixed Dark Horse driver regression (Crash before OK in debug build) (ID 04421) - jpmsys7.c: Assorted improvements and added steppers to various fruit machine drivers with some m68k adjustments. Replaced 68020 CPU1 with MCF5206E. - mcr.c . Broke dependency between MCR68 and MCR by creating sound devices for each of the Midway 8-bit sound boards. This will also aid in eventually hooking them up to pinballs. Enhanced the mixer interface support to allow for more than one output line. To use this you need to use the MCFG_MIXER_ROUTE macro instead of MCFG_SOUND_ROUTE so that the mixer output index can be specified. See midway_ssio_device for an example. The SSIO PROM has been moved to within the Midway SSIO device now. . Added 'Midway SSIO Sound Board' sound to all games . Added 'Midway SSIO Sound Board' and 'Midway Squawk 'n' Talk Sound Board' sound to dotrone and nflfoot . Added 'Midway SSIO Sound Board' and 'Midway Turbo Chip Squeak Sound Board' sound to demoderb - mcr3.c . Added 'Midway Sounds Good Sound Board' sound and left/right Speaker to powerdrv, rampage and stargrds . Added 'Midway SSIO Sound Board' sound to crater . Added 'Midway SSIO Sound Board' and 'Midway Chip Squeak Deluxe Sound Board' sound to spyhunt and turbotag . Added 'Midway Turbo Chip Squeak Sound Board' sound and left/right Speaker to maxrpm and sarge - mcr68.c . Broke dependency between MCR68 and MCR by creating sound devices for each of the Midway 8-bit sound boards. This will also aid in eventually hooking them up to pinballs. Enhanced the mixer interface support to allow for more than one output line. To use this you need to use the MCFG_MIXER_ROUTE macro instead of MCFG_SOUND_ROUTE so that the mixer output index can be specified. See midway_ssio_device for an example. . Fixed video\mcr68.c compile . Added 'Midway Chip Squeak Deluxe Sound Board' sound to zwackery . Added 'Midway Sounds Good Sound Board' sound to blasted and xenophob . Added 'Midway Sounds Good Sound Board' and 'Midway Turbo Chip Squeak Sound Board' sound to spyhunt2 . Added 'Williams CVSD Sound Board' sound to archrivl, pigskin and trisport. - meyc8080.c . Changed wldarrow.c to meyc8080.c driver . Fixed tag crash in Wild Arrow/Meyco8080 driver . Reworked Inputs for all games . Added button-lamps support . Created internal control layout for all games . Added mech counters support . Promoted all games to working state . Renamed the mdrawpkra ROMs based on PCB picture . Added technical and game notes. Renamed BITSWITCH -> BSW, and state/machine wldarrow -> meyc8080. . Fixed and added Gambling control to 'Draw Poker - Joker's Wild (Standard)' and clone (02-11) (Games now playable) - midtunit.c: Use an OKI address map instead of memcpy to handle ADPCM banking for the Williams ADPCM sound board (audio\williams.c). Added 'Williams ADPCM Sound Board' sound to jdreddp, mk, nbajam and nbajamte. - midyunit.c: Added 'Williams ADPCM Sound Board' sound to term2 and totcarn. Added 'Williams CVSD Sound Board' sound to hiimpact, smashtv, strkforc, shimpact, trog. Added 'Williams NARC Sound Board' to narc. - namcos10.c . Apply bitswap/xor to all mem(n) roms except the header . Set correct region size and endian for flash roms - pgm.c . Slightly reworked some previous PGM submissions . Added kovsh_v100_china.asic rom to kovshp and clones - pokechmp.c: Correct dipswitches as per manual and added DIP locations - proconn.c . Added the basic device definitions with some NULL callbacks for now, setting the framework for more progress later. . Assorted improvements and added steppers to various fruit machine drivers with some M68k adjustments. Added AY-3-8910A (1MHz) sound. - psikyo.c: Psikyo and DCS fixes. Fixed Psikyo paletteram. - raiden2.c . Revamped the sprite decryption of raiden2-like Seibu boards. Added support for Zero Team. Code refactored to clarify the algorithm. . Fixed sprite hook-up for clone New Zero Team. - sangho.c: Filled in some dipswitches and added DIP locations - segas32.c: Fixed segas32_common_init. Added Sega game ID# & rom board ID# to Holosseum. - snesb.c . Fixed dipswitches and coin inputs (after verification of the 5A22 code) . Fixed Killer Instinct (SNES bootleg) starts with 4 credits inserted (ID 03715) - tetrisp2.c . Merged stepstag.c with tetrisp2.c driver . Stepping Stage Special . Fixed memory maps, rom loading and added inputs. . Hooked up sprites, hacked in the text layer. . Can be made to boot using the debugger . Added YMZ280B sound. Fixed visible area (3x screens). . Stepping 3 Superior: Added YMZ280B sound. Fixed visible area (3x screens). - turbo.c: Converted driver to use i8279 device - viper.c: Fixed for compile warning - williams.c: Added 'Williams CVSD Sound Board' sound to joust2 - Atari games: Changed manufacturer of Food Fight to 'General Computer Corporation (Atari license)', Ms. Pac-Man to 'Midway / General Computer Corporation', Quantum to 'General Computer Corporation (Atari license)' and Super Missile Attack to 'Atari / General Computer Corporation'. NOTE: GCC sold Crazy Otto to Midway, who then made minor modifications and turned it into Ms. Pac-Man. - Got-cha . Discovered similarities in Got-cha to Data East Bootleg sprites, also happening to be the closest implementation to Silver Millennium in the sources. Refactored each based on this information. . Check if OKI6295 voice is playing *before* possibly starting an invalid sample. This fixes woman's voice get cut off (ID 00485). - Ice Cold Beer . Driver update: This game has mechanical parts so it's not exactly playable, but it is possible try it until the end giving the expected inputs. . Imported the i8279 device from MESS and updated to support sensor mode and mask nibble . Made a simple layout and the defined input ports - Juno First: Small cleanup - Mahjong Hana no Momoko gumi: Fixed font graphics - Penky: Correct 'Difficulty' DSW for Penky and added notes about alternate DSW settings as found in scanned Pins & Dip manual - Rabbit and Tokimeki Mahjong Paradise: Added Imagetek I5000 sound - Sand Scorpion: Small cleanup - Sliver: Filled in / correct all dipswitches and added DIP locations - Silver Millennium . Added known dipswitches & locations . Derived clock speeds from actual OSCs located on the PCB . Updated the TODO list . Added "in line" note about the need to verify the clock speeds . Discovered similarities in Got-cha to Data East Bootleg sprites, also happening to be the closest implementation to Silver Millennium in the sources. Refactored each based on this information. - Tournament Table: Made TIA modern device - Twin Brats: Check if OKI6295 voice is playing *before* possibly starting an invalid sample. This fixes music resets when you are playing (ID 02088). - Input port . Modernization of some CUSTOM_INPUT's Part 1-5 . Converted INPUT_CHANGED to INPUT_CHANGED_MEMBER . Replaced remaining instances of INPUT_CHANGED with INPUT_CHANGED_MEMBER . Modernized ticket dispenser device . Created ioport_manager and moved the port list to it. Removed global port lookups, now all lookups must be done through device_t::ioport(). - Regression fixes . alpha68k.c: Fixed regression . atarigt.c and atarigx2.c: Fixed crash after OK (atarigen_eeprom_reset regression) (ID 04752) . blitz68k.c: Fixed regression . champbwl.c: Fixed regression . galpanic.c: Fixed regression . midzeus.c, seattle.c, vegas.c: Fixed crash before OK (ID 04746) . psikyo.c: Fixed crash after OK (ID 04747) . qdrmfgp.c: Fixed crash after OK (m_nvram regression) (ID 04754) . zaxxon.c: Fixed crash before OK in Ixion and Razzmatazz (ID 04755) . Astropal: Fixed crash . Battle Toads: Fixed crash after OK (m_vram_fg regression) (ID 04750) . Cobra Command: Fixed clone Cobra Command (M.A.C.H. 3 hardware) crashed after OK (ay8913_device regression) (ID 04760) . Dig Dug: Fixed input regression . Galaxian 3: Fixed crash after OK (paletteram32_r/w regression) (ID 04758) . Grand Tour: Fixed crash after OK (paletteram state regression) (ID 04749) . Jockey Club II: Fixed driver regression (ID 04751). Not sure what the EEPROM code was trying to achive, but reading half of it outside of the memory region bounds is clearly not correct. . Little Robin: Fixed crash before OK (AM_DEVREAD/AM_DEVWRITE regression) (ID 04756) . Major Poker: Fixed crash after OK (m_videoram + m_vram_bank regression) (ID 04757) . Ninjakun: Fixed crash after OK (paletteram_w regression) (ID 04748) . Wave Shark: Fixed crash after OK (k054539_config regression) (ID 04761) - Dipswitch fixes in bfm_sc4.c, denseib, ffight2b, gumbo.c, icecold, iron, kinstb, penky, pokechmp, sangho.c, sblast2b, sliver and snesb.c - Fixed rom names in mdrawpkra - Renamed (sc4ggame) to (sc4ggtb), (sc4ggamee) to (sc4ggtba), (sc4ggameh) to (sc4ggame), (sc4ggameo) to (sc4ggtbb), (sc4ggg) to (sc4gggtb), (sc4ggga) to (sc4ggg), (sc4gggj) to (sc4gggtba), (sc4mowowd) to (sc4bwow), (sc4mowowe) to (sc4bwowa), (sc4mowowf) to (sc4mwwtb), (sc4mowowg) to (sc4mwwtba), (sc4mowowh) to (sc4mwwtbb), (sc4mowowi) to (sc4mwwtbc), (sc4mowowj) to (sc4mwwtbd), (sc4pacmnc) to (sc4pacqp), (sc4pacmnd) to (sc4pacqpa), (sc4pacmne) to (sc4pacqpb) and (unkmeyco) to (casbjack) - Description changes of Casino Black Jack (color, Standard 00-05), Heartbreak Hotel (Global) (v1.0) (Stealth), Labyrinth (v8) (Electrocoin), Pennies From Heaven (v1) (Electrocoin), Pyramid (v6) (Electrocoin), Secret Castle (v1) (Electrocoin), Sphinx (v1) (Electrocoin), Street Fighter II, Street Fighter II (rev.1), Street Fighter II (rev.2) (ID 04764) and Wild Arrow (color, Standard V4.8) - AGEMAME - bfm_sc4.c . Reorganized many bfm_sc4 sound roms . Assorted improvements and added steppers to various fruit machine drivers with some m68k adjustments . Improved the serial emulation in 68307 and added some logging, removing the hack in bfm_sc4.c. . Started giving Scorpion games their own reel / key configs, which is needed for most of them to pass their post / not hang on 'reel errors' or infinitely spinning reels. . More work on 68307's and preliminary work on Scorpion 4 lamps + more set resorting. . Added some better command handling to stop SC4 games from overwriting their attract mode messages with garbage. Comment: Unfortunately MAME's artwork system can't cope with the changes in brightness and flashing, so we just ignore them entirely. . Refactored a few things related to reels and use of layouts allowing for more function with less work. Comment: I need to check a few more things, see how bad performance gets if we force some elements to render each update rather than using cached bitmaps, the idea of ending up with up to 200,000 temporary bitmaps for each 16 segment LED with the existing code is quite frankly horrendous, but from what I understand it's entirely possible it could happen . Changed description to 'Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)' and clone to (set 3, Top Box), (set 8, Top Box) and (set 11, Top Box). . Changed description to 'Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)' and clones to (DONL016, set 1), (DONL016, set 2), (DONL017, set 1), (DONL017, set 2), (DONL018, set 1), (DONL018, set 2), (DONL402, set 1), (DONL402, set 2), (DONL406, set 1), (DONL406, set 2), (DONL422, set 1), (DONL422, set 2), (DONL424, set 1), (DONL424, set 2), (DONL428, set 1) and (DONL428, set 2). . Changed description to 'Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)' and clones to (DBTK012, set 2), (DBTK013, set 1), (DBTK013, set 2), (DBTK014, set 1), (DBTK014, set 2), (DBTK422, set 1), (DBTK422, set 2), (DBTK423, set 1), (DBTK423, set 2), (DBTK425, set 1), (DBTK425, set 2), (DBTK426, set 1) and (DBTK426, set 2). . Changed description to 'Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)' and clones to (BOXR571, set 2). . Changed description to 'Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)' and clones to (CRBE471, set 2), (CRBE472, set 1), (CRBE472, set 2), (CRBE473, set 1), (CRBE473, set 2), (CRBE571, set 1), (CRBE571, set 2), (CRBE572, set 1) and (CRBE572, set 2). . Changed description to 'Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)' and clones to (CLDD211, set 2), (CLDD212, set 1) and (CLDD212, set 2). . Changed description to 'Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)' and clones to (DNDL181, set 1), (DNDL181, set 2), (DNDL212, set 1), (DNDL212, set 2), (DNDL313, set 2), (DNDL391, set 1) and (DNDL391, set 2). . Changed description to 'Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)' and clones to (DDNO471, set 2), (DDNO571, set 1), (DDNO571, set 2), (DDNO572, set 1), (DDNO572, set 2), (DDNO573, set 1) and (DDNO573, set 2). . Changed description to 'Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)' and clones to (DNHA471, set 1), (DNHA471, set 2), (DNHA472, set 1), (DNHA472, set 2), (DNHA473, set 2), (DNHA477, set 1), (DNHA477, set 2), (DNHA571, set 1) and (DNHA571, set 2). . Changed description to 'Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)' and clones to (DOBO571, set 2) and (DOBO474). . Changed description to 'Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)' and clones to (LPDN571, set 2), (LPDN572, set 1), (LPDN572, set 2), (LPDN573, set 1) and (LPDN573, set 2). . Changed description to 'Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)' and clones to (REDT471, set 2), (REDT474, set 1), (REDT474, set 2), (REDT572, set 1) and (REDT572, set 2). . Changed description to 'Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)' and clones to (BGDA471, set 2), (BGDA472, set 1), (BGDA472, set 2), (BGDA571, set 1), (BGDA571, set 2), (BIGD471, set 1), (BIGD471, set 2), (BIGD472, set 1), (BIGD472, set 2), (BIGD475, set 1), (BIGD475, set 2), (BIGD571, set 1) and (BIGD571, set 2). . Changed description to 'Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)' and clones to (CRZR471, set 2), (CRZR474), (CRZR475, set 1), (CRZR475, set 2), (CRZR571, set 1) and (CRZR571, set 2). . Changed description to 'Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)' and clones to (DOFN471, set 2), (DOFN473, set 1), (DOFN473, set 2), (DOFN475, set 1), (DOFN475, set 2), (DOFN572, set 1) and (DOFN572, set 2). . Changed description to 'Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)' and clones to (TDFC471, set 2), (TDFC475, set 1), (TDFC475, set 2), (TDFC571, set 1) and (TDFC571, set 2). . Changed description to 'Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)' and clones to (TPBG471, set 2), (TPBG571, set 1), (TPBG572, set 1), (TPGB571, set 2) and (TPGB572, set 2). . Changed description to 'Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)' and clones to (TPRV411, set 2), (TPRV412, set 1), (TPRV412, set 2), (TPRV413, set 1), (TPRV413, set 2), (TPRV414, set 1, bad), (TPRV414, set 2, bad), (TPRV415, set 1), (TPRV415, set 2), (TPRV416, set 1), (TPRV416, set 2), (TPRV41A, set 1) and (TPRV41A, set 2). . Changed description to 'Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)' and clones to (TWOH411, set 2), (TWOH412, set 1), (TWOH412, set 2), (TWOH415, set 1) and (TWOH415, set 2). . Changed description to 'Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)' and clones to (CWOH271, set 2), (CWOH272, set 1) and (CWOH272, set 2). . Changed description to 'Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1' and clone to (THRE571, set 2). . Changed description to 'Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)' and clones to (WIYX412, set 2), (WIYX414, set 1), (WIYX414, set 2), (WIYX415, set 1), (WIYX415, set 2), (WIYX419, set 1) and (WIYX419, set 2). . Changed description to 'Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)' and clones (set 2), (set 3), (set 4), (set 5) and (set 6). . Changed description to 'Gold X Triple Top Box (Mazooma) (Scorpion 4)'. . Changed description to 'Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 1)'. . Changed description to 'Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 1)' and clones (set 6) to '(set 2)' and (set 16) to '(set 3)'. . Changed description to 'Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1, Top Box)'. . Changed parent and clone descriptions to 'Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4)'. Changed clones (set 5), (set 6), (set 7), (set 8), (set 9), (set 10) and (set 11) into other sets. . Changed 'Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 5)' and (set 6) from a clones of sc4mowow to parent 'Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)' and clone (WHEL013, set 2). Renamed (sc4mowowd) to (sc4bwow) and (sc4mowowe) to (sc4bwowa). . Changed 'Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 7)', (set 8), (set 9), (set 10) and (set 11) from a clones of sc4mowow to parent 'Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)' and clones (set 2), (set 3), (set 4) and (set 5). Renamed (sc4mowowf) to (sc4mwwtb), (sc4mowowg) to (sc4mwwtba), (sc4mowowh) to (sc4mwwtbb), (sc4mowowi) to (sc4mwwtbc) and (sc4mowowj) to (sc4mwwtbd). . Changed 'Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 4)' from a clone of sc4pacmn to parent 'Pac Man (PR7072) (QPS) (Scorpion 4) (set 1)'. Changed 'Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 5)' and (set 6) from a clones of sc4pacmn to clones (set 2) and (set 3). . Changed clone Golden Game (Mazooma) (Scorpion 4) (set 9) to parent 'Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)' and clones (set 2) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)', (set 3) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)', (set 4) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)', (set 5) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)', (set 7) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)', (set 8) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)', (set 10) to '(PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)', (set 11) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)', (set 12) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)', (set 13) to '(PR2056, newer?) (Scorpion 4) (set 1)', (set 14) to '(PR2056, newer?) (Scorpion 4) (set 2)', (set 15) to '(PR2056) (Scorpion 4) (set 1)', (set 17) to '(PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)', (set 18) to '(PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)', (set 19) to '(PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)', (set 20) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)', (set 21) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)', (set 22) to '(PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)', (set 23) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)', (set 24) to '(PR2056, newer?) (Scorpion 4) (set 3)', (set 25) to '(PR2056, newer?) (Scorpion 4) (set 4)', (set 26) to '(PR2056, newer?) (Scorpion 4) (set 5)', (set 27) to '(PR2056, newer?) (Scorpion 4) (set 6)', (set 28) to '(PR2056) (Scorpion 4) (set 2)', (set 29) to '(PR2056, newer?) (Scorpion 4) (set 7)', (set 30) to '(PR2056, newer?) (Scorpion 4) (set 8)', (set 31) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)', (set 32) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)', (set 33) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)', (set 34) to '(PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)', (set 35) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)', (set 36) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)', (set 37) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)', (set 38) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)', (set 39) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)', (set 40) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)', (set 41) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)' and (set 42) to '(PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)'. . Changed clone Grand Golden Game (Mazooma) (Scorpion 4) (set 2) to parent 'Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)' and (set 3) to (GGGB, 35GBP, set 2), (set 4) to (GGGB, 35GBP, set 3), (set 5) to (GGGB, 35GBP, set 4), (set 6) to (GGGB, 35GBP, set 5), (set 7) to (GGGB, 35GBP, set 6), (set 8) to (GGGB, 35GBP, set 13), (set 9) to (GGGB, 35GBP, set 1), (set 10) to (GGGB, 35GBP, set 2), (set 11) to (GGGT, set 2), (set 12) to (GGGB, 35GBP, set 7), (set 13) to (GGGB, 35GBP, set 8), (set 14) to (GGGB, 35GBP, set 9), (set 15) to (GGGB, 35GBP, set 10), (set 16) to (GGGB, 35GBP, set 11), (set 17) to (GGGB, 35GBP, set 12), (set 18) to (GGGB, 35GBP, set 3), (set 19) to (GGGB, 35GBP, set 4) and (set 20) to (GGGB, 35GBP, set 5). - bfm_sc5.c . Reorganized many bfm_sc5 sound roms . Merged 'unknown Scorpion '39211337' (Mazooma) (Scorpion 5, Adder 5)' with 'Bullseye Pounds For Points (Mazooma) (Scorpion 5, Adder 5)' - globalfr.c . VFD improvement to allow for better debugging as well as some rom splitting of clones for the driver . Did some stepper motor work to support more types . Splitted 'Carry On Clubbin' (Global) (Stealth)' into 'Carry On Clubbin' (Global) (v3.0) (Stealth)' and clones '(v3.0 Protocol) (Stealth)', '(v2.9) (Stealth)' and '(v2.9 Protocol) (Stealth)'. . Splitted 'Deals On Wheels (Global) (Stealth)' into 'Deals On Wheels (Global) (v1.4) (Stealth)' and clone '(v1.4 Protocol) (Stealth)'. . Splitted 'Deals On Wheels Club (Global) (Stealth)' into 'Deals On Wheels Club (Global) (v1.6) (Stealth)' and clone '(v1.6 Protocol) (Stealth)'. . Splitted 'Heartbreak Hotel Club (Global) (Stealth)' into 'Heartbreak Hotel Club (Global) (v1.9) (Stealth)' and clones '(v1.9 Protocol) (Stealth)' and '(Set 2) (Stealth)'. . Splitted 'Up Yer Riggin Club (Global) (Stealth)' into 'Up Yer Riggin Club (Global) (v2.8) (Stealth)' and clone '(v2.8 Protocol) (Stealth)'. . Splitted 'Wish You Were Here Club (Global) (Stealth)' into 'Wish You Were Here Club (Global) (v2.9) (Stealth)' and clones '(v2.9 Protocol) (Stealth)', '(v2.4 Protocol) (Stealth)' and '(v2.4) (Stealth)'. - MAME . Clang fixes (emu\device.h and video\polynew.h) . Templatized the palette generators and made naming consistent. . Moved video\generic flip screen management into the base driver_device class and updated all callers. . Moved soundlatch helpers into driver.c. Normalized soundlatch helper function names. Created delegates for machine / sound / video_start / reset callbacks and added necessary infrastructure to use them going forward. . Added the ability to specify member function driver callbacks for machine / sound / video_start / reset. Changed liberatr as an example. If a callback is specified, it is called in place of the corresponding virtual method. Not entirely sure I like this, so consider the example open for discussion. . Mode modernization. More driver modernization. . Removed //OBRISI.ME comments . Renamed device_irq_callback to device_irq_acknowledge_callback to make its purpose clearer. Added delegate support for interrupt callbacks, and made driver_device variants of the generic interrupt helper callbacks. Did not convert existing callers yet due to logistical issues. . Non device audio board modernization . AM_BASE + AM_SIZE -> AM_BASE_SIZE for easier future cleanup. AM_BASE and AM_BASE_SIZE to AM_SHARE by request from Aaron. . Removed AM_SIZE entirely. AM_BASE_SIZE still exists, though. . Validity fixes . Fixed bug where required shared pointers were not actually required. Added optional/required_shared_ptr_array classes so that you can populate an array of shared pointers. You provide a base tag name, and each item in the array is populated with tag.n, where n is the array index. Updated a couple of drivers using arrays to either not use arrays (where they weren't really providing any benefit) or to use the new array classes. . Added assertions to catch situations where AM_SHARE is used twice. Fixed existing situations. . Added templates to software renderer . Merged watchdog back into running_machine . Renamed driver overrides to MCFG_MACHINE / SOUND / VIDEO_START_OVERRIDE to explicitly indicate they are overriding the default behavior. Put liberatr back the way it used to be. . Removed color_prom parameter from PALETTE_INIT. Added code where necessary to fetch the color_prom directly. Made PALETTE_INIT into just another basic callback with an overridable palette_init() in the driver_device, and support for arbitrary member functions via MCFG_PALETTE_INIT_OVERRIDE. . Removed AM_BASE in favor of AM_SHARED + required_shared_ptr. This update passes validity checks but will certainly have a number of drivers failing at startup because all pointers are defaulted to required by the automated scripts used. Will fix problems once we get a regression run to find out which drivers need attention. . A few key fixes. Also changed error reporting to list all missing objects prior to fatalerror'ing. . Several more driver regression fixes. Seek & destroy on duplicate AM_SHAREs. More fixes and a GCC warning fix. . Fixed most reported errors and validity check errors. . Clear out remaining AM_BASE_SIZE . Fixed assert on double AM_SHARE . Enhanced the mixer interface support to allow for more than one output line. To use this you need to use the MCFG_MIXER_ROUTE macro instead of MCFG_SOUND_ROUTE so that the mixer output index can be specified. See midway_ssio_device for an example. . Some DIRECT_UPDATE_HANDLER - > DIRECT_UPDATE_MEMBER. Removed the rest DIRECT_UPDATE_HANDLERS from MAME section. . Now that memory_bank is exposed as an object, removed all the global bank manipulation APIs from memory_manager, and instead added a memory_manager::bank("tag") function which will return a pointer to the representative memory_bank. Operations can then be performed as expected directly on the memory_bank. Most code did not need an update yet, as I haven't done the search/replace to move away from global functions (which still exist for now). . Added device_t::subbank("tag") to return a bank that is owned by the given device. Switched YM2151 interfaces over to devcb callbacks. Created proper sound devices for the Williams NARC, CVSD and ADPCM sound boards. Updated midyunit, midtunit, williams(joust2), and mcr68(archrivl/pigskin/trisport) to use the new devices. . Removed global memory banking functions in favor of referencing subbanks of a device and directly acting on them. . Memory banks are now device-relative only. Global lookups are private. Renamed device_t::subbank to device_t::membank and updated a few remaining users of the global lookup. . Changed device->subregion to device->memregion. Moved memory_region management into the memory manager instead of directly in the machine. Hid the global region method; now all regions must be looked up relative to a device. If you're a member function, you can just use memregion("tag") directly. If you're a global function or a device referencing global regions, use machine().root_device().memregion("tag") to look up regions relative to the root. . Fix for 16bit device callback . Cleaned up required_/optional_object templates. Added new ones for memory banks and memory regions. Removed debugging verbose printfs. . Make memory shares follow the same pattern as memory regions and memory banks, accessible only via the device. . Fixed for default attribute in slotoption of XML output . For 16-bit devcb handlers, use separately-named templates devcb_stub16, which in turn required new macros DEVCB_MEMBER16, DEVCB_DRIVER_MEMBER16, and DEVCB_DEVICE_MEMBER16. Sorry about this, but the differences between the function types is apparently not sufficient for proper template differentiation under MSVC. - SDLMAME . Got rid of some code duplication between the _unix and _macosx implementations for sdlptty and sdlmisc . Fixed build on non-OS X targets - MESS . SoftFloat changes for last CL and x07 tape format from MESS . Improved the cassette emulation: Added DDP tape image support (Coleco Adam Digital Data Pack format). Edited cassette.c to allow speed / direction / channel selection. Changed cassimg.c so multichannel tapes work. Added multiread support (behind a define for now pending heuristics) to the dfi import support. Fix some inaccuracies regarding index decode position in dfi files. Modern apple 2 disk decoder for 16-sector disk images implemented using Olivier's new system for floptool. Only supports importing from .dfi 50MHz multi-read x3 images at the moment. Fixed dsk export from floptool so it can work with just one .dfi read instead of needing 3 reads. Tested at 50MHz sampling rate only. - Debugger . Cleaned up required_/optional_object templates. Added new ones for memory banks and memory regions. Removed debugging verbose printfs. . Only print mismatched width warnings for required pointers. Gets rid of spurious messages in tons of drivers. - Compiling: Fix for older GCC 0.145u6 - New games: unknown Japanese horse gambling game - New Working games: unknown Meyco blackjack game (Standard 00-05) - New Non-Working games: Dragon World Pretty Chance (V101, Japan) and Quiz Show - New clones: Fun River (Version 1.3R CGA), Nibbler (Pioneer Balloon conversion) and Rastan (US) - New drivers: bfm_sc4h.c, quizshow.c and unkhorse.c - 68307/68340 CPUs: Added preliminary on-board peripherals - Votrax SC-01 sound: Clock adjustment - YMF271 sound: Fixed core timer allowing for greater accuracy - I8156 RIOT: Added i8156 device definition to machine\i8155.c. Hooked up device to Space Bugger. - CD-ROM . Added code to compute and verify ECC codes for mode 1/2 sectors . Added CD compressor template which separates subcode data from sector data, removes redundant ECC data prior to compression, and uses separate compressors for each part. Defined LZMA and ZLib CD compressors based on this and made them the default for CDs. Sadly couldn't wrap the FLAC compressor here because it would have produced incompatible output with previous versions. - bfm_sc4.c . Added BFM Scorpion 4 Hardware . General update which fleshes out some of the 68307 code (not 100% correct hookups, just improved logging and enough to get us somewhere) . Added various devices to the SC4 emulation, added a default layout showing the VFD, to which most of the earlier games will now write 'Initializing'. Timers and other devices still need to be implemented properly before they actually initialize. . Put the actual SC4 hardware emulation in drivers\bfm_sc4h.c so that it doesn't get lost in the swamp of sets (scrolling through a file is quite hard when it's almost entirely set definitions) . Misc sc4/68307 CPU updates . Preliminary peripheral hookups, allows most sc4 sets to run their sound rom checks. - byvid.c . Hooked up TMS9928 and PIA devices to Baby Pacman video CPU, gives some gfx if you press the service switch. . Fixed visible area, palettesize and VSync - cvs.c: Allow others to access CVS stars hardware - galaxia.c . Hooked up CVS stars circuit . Improved colors . Converted Galaxia driver to use MAME tilemap . Added Astro Wars bullets . Fixed out of bounds array access during Astro Wars boot - gamtor.c: Converted Gaminator driver to use VGA device (doesn't work though due of a weird banking problem). Fixed visible area and VSync. - igs017.c . Redumped sprites rom of Mahjong Long Hu Zheng Ba 2 and decrypted sprites . Decrypted tiles and palette in 'Mahjong Long Hu Zheng Ba 2' and 'Mahjong Shuang Long Qiang Zhu 2'. Added inputs and memory maps in these games, pending protection simulation. - igs_m027.c: Decrypted the rest of the gambling sets. No further advancements in visible emulation to report, though. - ksys573.c: Updating hardware info - model3.c: Added ROM board ID# for Virtua Striker 2 '98 (Step 1.5). Added Sega game ID#, ROM board ID#, MAIN board ID# and Security module ID# for Emergency Call Ambulance. Added Security module ID# for Spikeout F/E. - namcos21.c . Replaced the ac2-edata1-u.3c rom with ac1-edata1-u.3c in Air Combat as it's an interleaved rom with ac1-edata1-l.1c for both sets. Comparing the roms showed the AC2 version had 0xA0 in fields of 0x80 randomly where the AC1 rom had the correct 0x80. . Added Namco game prefix to the Winning Run 91 set . Added minor documentation about the System21B two board stack - naomi.c . Fixed the maple hookup and controllers . Added the missing maple irq (machine\dc.c and machine\maple-dc.c) - neodrvr.c: Documentation update - nmk16.c . Fixed some issues . Cleaned up the video sources a bit . Marked all appropriate games with a GAME_IMPERFECT_GRAPHICS flag (all of the old methods were imperfect toot hey just weren't marked for some reason). - pgm.c . Continued refactoring of the protections, including improved notes. . Moved some code into the states and split states by protection type . Fixed VSync in kovsh, kovshp and photoy2k - raiden2.c: Solved the remaining issues with Raiden Raiden II sprite decryption - seibuspi.c . Fixed YMF271 core timer allowing for greater accuracy . Fixed music in the boss levels of Raiden Fighters and Raiden Fighters 2 play (Mission 1-3, 2-3) slower than the original (ID 02675). - seta2.c: Redumped sound rom in Funcube 2/3/4 (the first half of the rom appears to be a dupe of the second half with 0xffs destructively interleaved) - wldarrow.c . Added service inputs, allowing battery RAM to be initialized in test mode, making the games close to playable. . Inputs WIP - Atari 70's games: Document Kee Games games in the time it was already fully owned by Atari (dragrace.c, firetrk.c, quizshow.c, sprint2.c, tank8.c and ultratnk.c). - Battle Garegga: Fixed video (character layer) offset in clone bgareggabl - China Gate: Added gfx3 roms from the bootleg set for missing background gfx in China Gate and clone Sai Yu Gou Ma Roku - Crazy Kong: found the correct manufacturer (ID 04737). It's Kyoei (see http://www.youtube.com/watch?v=G0Tm7HwNWQQ at 20 min 21s). - Fun River: Added new Fun River set with missing gfx1/2 and oki roms for parent set and clone (Version 1.4R Dual) - Little Robin . Improved colours (gfx are 8bpp, not 4bpp with palette select) . A few adjustments and clean ups to drawing code, and made use of RAMDAC device for the palette. . Improved irqs and hooked up sound index writes . Added preliminary sound. Note: Sound pitch is directly correlated with irqs, scanline timings and pixel clock, so it's surely not 100% correct. Sound sample playbacks looks fine at current time tho. . Some clean-ups . Work around for bug in older GCCs - Mirax . Fixed dipswitches and inputs (after verification of the Z80 code) . Implemented flip screen support . Removed unnecessary notes - Monster Zero: Added preliminary protection emulation. Note: The initial protection routine is on the maincpu at $c591-$c676. It accesses the 8255, expects an irq, and reads $d800 256 times which is xored against data starting at $0100 to confirm a checksum stored in $0011-$0019. Then it reads the (presumably)same block to store it in RAM at $3800-$3fff. 9 blocks in total. It is presumed that this data comes from another ROM, and scrambled/encrypted a bit. The data(code) in the extra RAM is later jumped/called to in many parts of the game. - Mr. Driller 2: Fixed banking, first stab at the encryption. - Nibbler . Added clone Nibbler (Pioneer Balloon conversion). Note: There are way too many references now, proving that the game shouldn't have music. I've split nibbler6 into two, one of them is a pballoon conversion now. I hope this finally solves this thing. . Removed optional music rom sk7_ic51.bin from nibbler, nibbler8, nibbler6 and nibblero. This fixes broken music in wave 2 of nibbler and nibbler8 (ID 03089). - Paranoia: Added 8155 skeleton copypasted from TourVision driver. - Puzz Loop 2: Fixed black screen in clone (Japan 010205) (ID 04743) - Quiz Show: Added sound, color overlay and resized tiles from 8*8 to 8*12+offse. - Rail Chase 2: Added missing I/O controller ROM (Z80 based) - Rastan: Added DIP locations. Cleaned up parent/child order. Correct ROM names and added additional information / notes. - Shackled: Fixed 'Leave Off' dipswitch which causes a black screen (ID 04735) - Super Slam: Fixes to music sequencing and dipswitches - Tylz: Fixed crashed after OK (ID 04734). Re-added Q*bert samples. - 'unknown Japanese horse gambling game': Added sound and fixed input mux - X-Men: Improved volume balance (ID 04741) - Input port: Change DirectInput joystick acquisition method to be non exclusive - Dipswitch fixes in igs017.c, mirax, rastan, shackled and wldarrow.c - Fixed rom names in namcos21.c and sbp - Renamed (garouo) to (garouh), (m5all41l) to (m5all41low), (m5all41v) to (m5all41i), (rastan) to (rastana), (rastan2) to (rastan), (rastanu2) to (rastanub), (rastsaga) to (rastsagaa) and (rastsaga1) to (rastsaga) - Description changes of 1945 Part-2 (Chinese hack of Battle Garegga), Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB), Draw Poker - Joker's Wild (02-11), Draw Poker - Joker's Wild (Standard), Garou - Mark of the Wolves (NGM-2530)(NGH-2530), Garou - Mark of the Wolves (NGM-2530), Gun Dealer (Japan), Mahjong Long Hu Zheng Ba 2 (VS221M), Mahjong Shuang Long Qiang Zhu 2 (VS203J), Mahjong The Lady Hunter (Japan 900509), Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410), Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500), Rastan (US Rev 1), Rastan (US, Earlier code base), Rastan (World Rev 1), Rastan (World), The King of Fighters '99 - Millennium Battle (NGH-2510), The King of Fighters '99 - Millennium Battle (NGM-2510), unknown 'T' (MAB PCB?) (Concept Games Ltd) (?), unknown BMC poker game, unknown Meyco blackjack game (Standard 00-05) and Yumefuda [BET]. - MPU5 set splitting . Set the correct cpu in driver (replaced 68020 CPU1 with Freescale 68340) and split a few alternate revisions into clone sets. . Splitted 'Addams Family (Barcrest) (MPU5)' into 'Addams Family (Barcrest) (MPU5) (v0.5, set 1)' and clones (v0.2, set 1), (v0.2, set 2), (v0.2, set 3), (v0.3, set 1), (v0.3, set 2), (v0.3, set 3), (v0.3, set 4), (v0.3, set 5), (v0.3, set 6), (v0.3, set 7), (v0.3, set 8), (v0.3, set 9), (v0.5, set 2), (v0.5, set 3), (v0.5, set 4), (v0.5, set 5), (v0.5, set 6), (v0.5, set 7) and (v0.5, set 8). . Splitted 'Adders & Ladders (Barcrest) (MPU5, set 1)' into 'Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)' and clones (MPU5, v0.6, set 2), (MPU5, v0.6, set 3), (MPU5, v0.6, set 4), (MPU5, v0.6, set 5), (MPU5, v0.6, set 6), (MPU5, v0.6, set 7), (MPU5, v0.6, set 8), (MPU5, v0.6, set 9), (MPU5, v0.6, set 10) and (MPU5, v?.?). Splitted clone 'Adders & Ladders (Barcrest) (MPU5, set 2)' into clones (MPU5, v0.1, set 1), (MPU5, v0.1, set 2), (MPU5, v0.1, set 3), (MPU5, v0.1, set 4), (MPU5, v0.1, set 5), (MPU5, v0.1, set 6) and (MPU5, v0.1, set 7). Splitted clone 'Adders & Ladders (Barcrest) (MPU5, set 3)' into clones (MPU5, v0.4, set 1) and (MPU5, v0.4, set 2). . Splitted 'All 4 One (Vivid) (MPU5, set 1)' into 'All 4 One (Vivid) (MPU5, set 1)' and clones (MPU5, set 2), (MPU5, set 3), (MPU5, set 4), (MPU5, set 5), (MPU5, set 6), (MPU5, set 7), (MPU5, set 8) and (MPU5, set 9). Splitted clone 'All 4 One (Vivid) (MPU5, set 2)' into clones (MPU5, set 10), (MPU5, set 11), (MPU5, set 12), (MPU5, set 13) and (MPU5, set 14). . Splitted 'Aftershock (Barcrest - Red Gaming) (MPU5)' into 'Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)' and clone (MPU5, v1.3). . Splitted 'Atlantic (Vivid) (MPU5)' into 'Atlantic (Vivid) (MPU5, v1.4)' and clone (MPU5, v1.2). . Splitted 'A Few Dollars More (Empire) (MPU5)' into 'A Few Dollars More (Empire) (MPU5) (v0.2, set 1)' and clones (v0.2, set 2), (v0.3, set 1) and (v0.3, set 2). . Splitted '6 Shooter (Vivid) (MPU5)' into 'Six Shooter (Vivid) (MPU5) (v1.1, set 1)' and clone '(v1.1, set 2)'. Splitted clone 'Six Shooter (Vivid) (MPU5)' into clones (v2.0, set 1), (v2.0, set 2), (v2.0, set 3), (v2.0, set 4), (v2.0, set 5), (v2.0, set 6), (v2.0, set 7), (v2.1, set 1), (v2.1, set 2), (v2.1, set 3), (v2.1, set 4), (v2.1, set 5) and (v2.1, set 6). - MAME . Moved all drivers to using the audio/watchdog helpers defined in the driver_device base class . Added support for multiple comma separated interfaces for device . MAME going modern part 1-8 . Added 4th parameter to all address maps . Added missing state classes . Removed ADDRESS_MAP_MODERN define . No need anymore for _BASE . Some formating cleanup . Removed legacy macros to prevent their usage in future (emu\addrmap.h) . Moved driver list/enumerator to new file drivenum.c/h . Moved game_driver definition and constants to new header gamedrv.h . Extracted driver_device base class from machine.* and into its own file driver . Moved all drivers to using the paletteram helpers defined in the driver_device base class. The palette base is now specified via an AM_SHARE of "paletteram" or "paletteram2". The driver_device base class now finds these pointers and places them in m_generic_paletteram_8/_16/_32 and m_generic_paletteram2_8/_16/_32. . Removed machine.generic.paletteram*, and machine.generic entirely. Removed AM_BASE_GENERIC/AM_SIZE_GENERIC as they don't apply anymore. . Changed required_/optional_shared_ptr to support set_target with base and size for manually configuring a shared pointer, and a new allocate method for dynamically allocating (and registering the memory for save states). A few subsequent cleanups are coming related to this, but wanted to get this in before the next modern push. . Converted memory_private to memory_manager and moved global memory operations into methods on it. Converted the less-popular cases over in drivers that used them, leaving the bank management APIs global for now. . Added logic to ensure that shared pointers are checked to be of the right width. The primary upshot is that if you declare AM_SHARE("paletteram") in an 8-bit memory map, then only m_generic_paletteram_8 will be populated, and m_generic_paletteram_16 will be NULL. But it applies to all required_/optional_shared_ptrs declared, so make sure they are of the right type. . The required_/optional_shared_ptr mechanism should be used to replace AM_BASE_MEMBER and AM_SIZE_MEMBER, which are technically dangerous and illegal in C++ but work today through some trickery. . Fix for feature name XML output in softlist (emu\clifront.c) - SDLMAME: Fixed formatting of chdman man page (sdl\man\chdman.1) - MESS . Display softlist in menu only for devices having interface set. prevent crashing if there is interface defined but no actual softlist hooked. Fix for required softlist item loading. Fixed canceling file in softlist selection. . Fixed merge name for devices in XML output . Added support for loading PMD 85 .ptp cassette images - Compiling . Allow compilation with compatible system-installed versions of libjpeg and libflac . Fixed compile on GCC 4.6 (m68000/68307tmu.c + emu\uimain.c) - Debugger: Fixed debug map command returns unexpected tag (example: mame dariusg -debug then typing "map 600000") (ID 04596) 0.145u5 - New games: Janken Man Kattara Ageru, Kong (Brazil), Lucky Boom, Witch Jack (Export, 6T/12T ver 0.87-89), Witch Strike (Export, 6T/12T ver 1.01A) and Witch Up & Down (Export, 6T/12T ver 1.02) - New Working games: Astro Wars, Demon Front, DoDonPachi II - Bee Storm, Fantastic and Galaxia - New Non-Working games: Haunted House (IGS) - New clones: 1941: Counter Attack (World 900227), 1945 2 - Battle Garegga Chinese hack, 1945 2 - Battle Garegga Chinese hack, 1991 Spikes (Italian bootleg, set 2), Big Striker (bootleg w/Italian teams), Bobble Bobble (set 2), Caveman Ninja (bootleg, alt), Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V107KR, ROM 10/16/03 S106KR) (JAMMA PCB), Dragonninja (bootleg), Dribbling (bootleg, Brazil), Falcons Wild - World Wide Poker (Video Klein, set 2), Fighting Soccer (Joystick hack bootleg, alt), Galaxy Empire (bootleg?), Intrepid (bootleg), Mortal Kombat (Turbo 3.0 08/31/92, hack), Polaris (Brazil), Rastan (World, set 2), S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (JAMMA PCB), Street Fighter EX2 Plus (Hispanic 990611), The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (JAMMA PCB), Wild Witch (Export, 6B/12B ver 1.75A-E English), Wild Witch (Export, 6T/12T ver 1.57-SP), Wild Witch (Export, 6T/12T ver 1.57-TE), Wild Witch (Export, 6T/12T ver 1.62A-F), Wild Witch (Export, 6T/12T ver 1.62A alt), Wild Witch (Export, 6T/12T ver 1.62A), Wild Witch (Export, 6T/12T ver 1.62B alt), Wild Witch (Export, 6T/12T ver 1.62B), Wild Witch (Export, 6T/12T ver 1.65A-N), Wild Witch (Export, 6T/12T ver 1.65A-S alt), Wild Witch (Export, 6T/12T ver 1.65A-S), Wild Witch (Export, 6T/12T ver 1.65A), Wild Witch (Export, 6T/12T ver 1.70A alt), Wild Witch (Export, 6T/12T ver 1.70A beta), Wild Witch (Export, 6T/12T ver 1.70A), Wild Witch (Export, 6T/12T ver 1.74A-SP-BELG), Wild Witch (Export, 6T/12T ver 1.74A), Wild Witch (Export, 6T/12T ver 1.76A), Wild Witch (Export, 6T/12T ver 1.77A), Wild Witch (Export, 6T/12T ver 1.79A), Wild Witch (Export, 6T/12T ver 1.83A), Wild Witch (Export, 6T/12T ver 1.84A), Witch Jack (Export, 6T/12T ver 0.40), Witch Jack (Export, 6T/12T ver 0.40T), Witch Jack (Export, 6T/12T ver 0.62), Witch Jack (Export, 6T/12T ver 0.64), Witch Jack (Export, 6T/12T ver 0.65), Witch Jack (Export, 6T/12T ver 0.70P), Witch Jack (Export, 6T/12T ver 0.70S), Witch Jack (Export, 6T/12T ver 0.87-88), Witch Jack (Export, 6T/12T ver 0.87), Witch Jackpot (Export, 6T/12T ver 0.25), Witch Strike (Export, 6T/12T ver 1.01B), Witch Up & Down (Export, 6T/12T ver 0.99, set 1), Witch Up & Down (Export, 6T/12T ver 0.99, set 2), Witch Up & Down (Export, 6T/12T ver 0.99, set 3), Witch Up & Down (Export, 6T/12T ver 0.99T), Wonder Boy (set 5, bootleg) and Wonder Boy (US bootleg) - New drivers: jankenmn.c - 68000 CPU . Fixed SoftFloat sin/cos/tan to return correct results . Sorted out the m68k bit patterns for PFLUSHA and PFLUSHAN - 68020 CPU: Allow FPU instructions on '020 (it's possible to have an external 68881/68882) and fix missing break; in the FPU. - ARM7 CPU: For v5 and later, Thumb POP can return to ARM mode (cpu/arm7/arm7thmb.c) - PowerPC CPUs . Further DIVW improvements . More flags work . All integer divide instructions now 100% pass PPCTorture . Improved corner case behavior of SLW/SRW - 8250 UART: Fix for ibmpcjr error - 6526 CIA: The PC output will now go low for 1 cycle following a read/write of port B (instead of being toggled immediately) - cave.c: Added note about 'Dodonpachi Arrange' being a hack and not suitable for MAME to prevent it from being "found" in the future as a long lost version. - chihiro.c, naomi.c and triforce.c: Marked all GD-ROMs except Under Defeat as BAD_DUMP. These need to be re-converted to CHD from the .GDI source with current CHDMAN. - cps1.c: Fixed some labels in various sets to match real PCBs, added some documentation notes and confirmed PCB infos. Reordered sf2cejx sets. - galaxia.c . Some work on Galaxia collision detection, seems very similar to CVS . Added Galaxia bg scroll (see level 1 enemy swarm) . Added preliminary Galaxia bullet and notes . Improved Galaxia enemy bullet collision detection . Astro Wars does not have a prom . Promoted Astro Wars and Galaxia to working state . Some driver cleanup - goldnpkr.c . Emulated the Video Klein extended hardware, with Dallas Timekeeper, and the insane 16 graphics banks scheme. . Improved the Wild Witch and Jolli Witch inputs, and switched them to the extended hardware. . Got accurate colors for all the extended sets . Worked inputs and lamps from the scratch . Added technical notes . Found and patched the Witch Strike protection scheme. Proper inputs and lamps support. Promoted both sets to working state. Added technical notes. . Fixed a bug in the Witch Up & Down coinage input . Added a tsunami of Wild Witch clones. Worked each set to temporarily bypass the Dallas Timekeeper RAM protection. Also reworked the parent/clones relationship. . Changed Jolli Witch (Export, 6T/12T ver 1.57D) and Witch Game (Video Klein, set 1) to parent sets - igs_m027.c: Added some decryption to the titles - legionna.c: Resolved and cleaned-up Seibu COP palette brightness table (machine\seicop.c) - mcatadv.c: Fixed random crashes in Magical Cat Adventure and Nostradamus (ID 04303) - model2.c: Updated doc info based on eBay auction for Rail Chase 2's I/O board. Added Sega game ID# to Zero Gunner, Virtual On Cyber Troopers and Dynamite Baseball 97. - model3.c: Minor doc update. Correct game ID# & ROM board numbers (were inverted) for scuda, Spikeout F/E, Virtua FIghter 3, vs298 and lostwsga. - pgm.c . Refactoring and clean-ups of the PGM protection and splitted it across separate files . Improved PGM ARM irq to more likely assert/clear instead of pulse . Added speedups for 'DoDonPachi II - Bee Storm' and 'Demon Front' . Added PGM decryption to Happy 6-in-1 . Redumped gfx rom in Dragon World 2001. Almost certain this is a better dump, by comparing patterns in romdata. . Fixed VSync in kov, kovplus, puzlstar, py2k2 and oldsplus - quasar.c: Give driver separate include - raiden2.c: Partial rewrite of Raiden2's sprite decryption. This is functionally equivalent to the previous code, but it show more clearly the structure of the nonlinear part of the current algorithm, showing the SPI-like sum with conditional carry and a second bunch of "carries" (another SPI-like sum?). This should provide a better base for research that the previous implementation, and it points more clearly to how the real algorithm works. - segas18.c: Added game ID & rom board # for Clutch Hitter - sfcbox.c . Extensive documentation improvements and clarification of the Super Famicom Box hardware . Added krom1.ic1 rom to BIOS and removed atrom-4s-0.rom5 . Added atrom-4s-0.rom5 from BIOS and fixed user3 rom loading in Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box) - tumbleb.c: Fixed layer offset (ID 04712) - 18 Holes Pro Golf: Fixed dipswitches and inputs (after verification of the M6502 code) - Chanbara: Fixed dipswitches and inputs (after verification of the M6809 code) - Fantastic: Fixed missing sprites and bullets - Janken Man Kattara Ageru . Added a complex internal artwork layout and some notes . Shuffled hand LEDs a bit to make it able to show all 3 janken states . Lots of driver improvements, making the game almost playable. . Added remaining lamp outputs . Layout now based on http://homepage2.nifty.com/totochan/yugi-shiba-jkman.jpg instead of this one: http://dgm.hmc6.net/museum/jyankenman_01.jpg . Added cpanel LEDs and marked game as working . Temporary workaround for payout sensor, game shouldn't lock up anymore now. . Remapped inputs to Z-X-C to be more friendly . Routed the payout pulse to mech counters . Added some notes and removed unneeded notes - Olympic Hot Stuff: Small change - Othello Derby: Added Vblank bit and scanline register - S.V.G. - Spectral vs Generation: Added preliminary decryption to clone svgpcb - Side Pocket: Fixed dipswitches and inputs (after verification of the M6809 code) - Space Invaders: Undo encryption in clone Space Invaders Part II (Brazil), reason to believe the scrambling was done post-dump since Haze found out the piranha(pacman hw) romdump on that same Taito do Brasil treasure romdisk to have exactly the same weird encryption on the same offset. - Twinkle: Fixed pellets no longer bounce during gameplay (ID 04733) - Bellfruit Scorpion 2 set splitting . Further separation, sorting, and addition of alternate revisions as clones (over 300) for the bfm_sc2.c driver. . Splitted 'Cash On The Nile Club (Bellfruit) (Scorpion 2/3)' into 'Cash On The Nile Club (Bellfruit) (set 1 UK, 150GBP Jackpot) (Scorpion 2/3)' and clones '(set 2 UK, 150GBP Jackpot) (Scorpion 2/3)', '(set 2 UK, 150GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2 UK, 200GBP Jackpot) (Scorpion 2/3)' and '(set 3 UK, 150GBP Jackpot) (Scorpion 2/3)'. . Splitted 'Cash Vegas (Bellfruit) (Scorpion 2/3)' into 'Cash Vegas (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 2, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 4, UK, 10GBP Jackpot) (Scorpion 2/3)', '(set 4, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)' and '(set 5, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Cashino Club (Bellfruit) (Scorpion 2/3)' into 'Cashino Club (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 2) (Scorpion 2/3)', '(set 1, Protocol) (Scorpion 2/3)' and '(set 2, Protocol) (Scorpion 2/3)'. . Splitted 'Casino Bar 7 (Bellfruit) (Scorpion 2/3)' into 'Casino Bar 7 (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK, All Cash) (Scorpion 2/3)', '(set 3, UK, 10GBP Jackpot) (Scorpion 2/3)' and '(set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Casino Royale (Bellfruit) (Scorpion 2/3)' into 'Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)', '(set 2, UK, 3rd Triennial) (Scorpion 2/3)', '(set 2, UK, 3rd Triennial, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)' and '(set 5, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Cat & Mouse & Bonzo Too (Bellfruit) (Scorpion 2/3)' into 'Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clone '(set 1, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Cat & Mouse (Bellfruit) (Scorpion 2/3)' into 'Cat & Mouse (Bellfruit) (Scorpion 2/3)' and clones '(set 2) (Scorpion 2/3)', '(set 3) (Scorpion 2/3)', '(set 4) (Scorpion 2/3)', '(set 5) (Scorpion 2/3)', '(set 2, Protocol) (Scorpion 2/3)' and '(set 3, Protocol) (Scorpion 2/3)'. . Splitted 'Cat & Mouse (Bellfruit) (Scorpion 2/3)' into 'Cat & Mouse (Mark 2) (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 2) (Scorpion 2/3)', '(set 3) (Scorpion 2/3)', '(set 4) (Scorpion 2/3)', '(set 6) (Scorpion 2/3)', '(set 2, Protocol) (Scorpion 2/3)', '(set 3, Protocol) (Scorpion 2/3)', '(set 4, Protocol) (Scorpion 2/3)' and '(set 5, Protocol) (Scorpion 2/3)'. . Splitted 'Club Grand Casino (Bellfruit) (Scorpion 2/3)' into 'Club Grand Casino (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK, 250GBP Jackpot) (Scorpion 2/3)' and '(set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Club Public Enemy No.1 (UK, Game Card 95-750-846) (Scorpion 2/3)' into 'Club Public Enemy No.1 (UK, Game Card 95-750-846) (Scorpion 2/3)' and clones '(set 2, UK, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 4, UK, Protocol) (Scorpion 2/3)', '(set 5, UK, Protocol) (Scorpion 2/3)', '(set 6, UK) (Scorpion 2/3)' and '(set 7, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Cops 'n' Robbers (Bellfruit) (Scorpion 2/3)' into 'Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(Bellfruit) (set 1, Protocol) (Scorpion 2/3)', '(Bellfruit) (set 2) (Scorpion 2/3)', '(Bellfruit) (set 2, Protocol) (Scorpion 2/3)', '(Bellfruit) (set 3) (Scorpion 2/3)', '(Bellfruit) (set 4) (Scorpion 2/3)', '(Bellfruit) (set 4, Protocol) (Scorpion 2/3)', '(Bellfruit) (set 5) (Scorpion 2/3)', '(Bellfruit) (set 6) (Scorpion 2/3)', 'Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)', 'Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)', 'Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)', 'Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)' and 'Casino Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)'. . Splitted 'Cops 'n' Robbers Club (Bellfruit) (Scorpion 2/3)' into 'Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 10, UK) (Scorpion 2/3)', '(set 10, UK, Protocol) (Scorpion 2/3)', '(set 11, UK) (Scorpion 2/3)', '(set 12, UK) (Scorpion 2/3)', '(set 12, UK, Protocol) (Scorpion 2/3)', '(set 2, UK, 250GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 4, UK, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)', '(set 6, UK) (Scorpion 2/3)', '(set 7, UK) (Scorpion 2/3)', '(set 7, UK, Protocol) (Scorpion 2/3)', '(set 8, UK) (Scorpion 2/3)', '(set 9, UK) (Scorpion 2/3)' and '(set 9, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Cops 'n' Robbers Club Deluxe (Bellfruit) (Scorpion 2/3)' into 'Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 250GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK, 250GBP Jackpot) (Scorpion 2/3)', '(set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 4, UK, 250GBP Jackpot) (Scorpion 2/3)', '(set 4, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 5, UK, 200GBP Jackpot?) (Scorpion 2/3)', '(set 5, UK, 200GBP Jackpot?, Protocol) (Scorpion 2/3)', '(set 6, UK, 200GBP Jackpot) (Scorpion 2/3)', '(set 6, UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)' and '(set 7, UK) (Scorpion 2/3)'. . Splitted 'Del's Millions (Bellfruit) (Scorpion 2/3)' into 'Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)' and clones '('Deluxe', UK) (Scorpion 2/3)', '(set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 10, UK) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)', '(set 5, UK, Protocol) (Scorpion 2/3)', '(set 6, UK) (Scorpion 2/3)', '(set 7, UK) (Scorpion 2/3)', '(set 8, UK) (Scorpion 2/3)' and '(set 9, UK) (Scorpion 2/3)'. . Splitted 'Del's Millions (Bellfruit) (Scorpion 2/3)' into 'Del's Millions (Bellfruit/Mazooma) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)', '(set 2, UK, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)' and '(set 4, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Double Diamond (Bellfruit) (Scorpion 2/3)' into 'Double Diamond (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)' and '(set 2, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Down Town (Bellfruit) (Scorpion 2/3)' into 'Down Town (Bellfruit) (set 1, UK, 15RM motor) (Scorpion 2/3)' and clones '(set 1, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 2, UK, 15RM motor) (Scorpion 2/3)', '(set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 3, UK, 15RM motor) (Scorpion 2/3)', '(set 3, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 4, UK, 15RM motor) (Scorpion 2/3)', '(set 4, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 4, UK, 16RM motor) (Scorpion 2/3)', '(set 4, UK, 16RM motor, Protocol) (Scorpion 2/3)', '(set 5, UK, 15RM motor) (Scorpion 2/3)', '(set 5, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 5, UK, 16RM motor) (Scorpion 2/3)', '(set 5, UK, 16RM motor, Protocol) (Scorpion 2/3)', '(set 6, UK, 15RM motor) (Scorpion 2/3)', '(set 7, UK, 15RM motor) (Scorpion 2/3)', '(set 8, UK, 15RM motor) (Scorpion 2/3)', '(set 9, UK, 16RM motor) (Scorpion 2/3)' and '(set 9, UK, 16RM motor, Protocol) (Scorpion 2/3)'. . Splitted 'Easy Money (Bellfruit) (Scorpion 2/3)' into 'Easy Money (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 1, Protocol) (Scorpion 2/3)', '(set 2) (Scorpion 2/3)', '(set 2, Protocol) (Scorpion 2/3)', '(set 3) (Scorpion 2/3)' and '(set 3, Protocol) (Scorpion 2/3)'. . Splitted 'Eggs On Legs Tour (Bellfruit) (Scorpion 2/3)' into '' and clones '(set 1, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, Arcade, 10GBP Jackpot?) (Scorpion 2/3)', '(set 1, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)' and '(set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Flash Cash (Bellfruit) (Scorpion 2/3)' into 'Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)', '(set 3, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)' and '(set 3, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)'. . Splitted 'Football Club (Bellfruit) (Scorpion 2/3)' into 'Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 100GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)' and '(set 3, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Gold Reserve (Mdm) (Scorpion 2/3)' into 'Gold Reserve (Mdm) (v1.3) (Scorpion 2/3)' and clones '(v1.3 Protocol) (Scorpion 2/3)' and '(set 2) (Scorpion 2/3)'. . Splitted 'Golden Casino Club (Bellfruit) (Scorpion 2/3)' into 'Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 100GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)' and '(set 4, UK) (Scorpion 2/3)'. . Splitted 'Golden Roulette (Bellfruit) (Scorpion 2/3)' into 'Golden Roulette (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clone '(set 2, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Grandslam Club (UK, Game Card 95-750-843) (Scorpion 2/3)' into 'Grandslam Club (UK, set 1, Game Card 95-750-843) (Scorpion 2/3)' and clones '(UK, set 2) (Scorpion 2/3)', '(UK, set 3) (Scorpion 2/3)', '(UK, set 1, Protocol) (Scorpion 2/3)' and '(UK, set 2, Arcade, Protocol) (Scorpion 2/3). . Splitted 'Hey Presto (Bellfruit) (Scorpion 2/3)' into 'Hey Presto (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clone '(set 1, UK, Protocol) (Scorpion 2/3)'. . Splitted 'High Flyer (Mdm) (v4.1) (Scorpion 2/3)' into 'High Flyer (Mdm) (Scorpion 2/3)' and clones '(v?.?) (Scorpion 2/3)', '(v2.1) (Scorpion 2/3)' and '(v3.1) (Scorpion 2/3)'. . Splitted 'How Big's Your Rock? (Global) (Scorpion 2/3)' into 'How Big's Your Rock? (Global) (v1.5) (Scorpion 2/3)' and clones '(v?.? Euro) (Scorpion 2/3)', '(v1.4 Protocol) (Scorpion 2/3)', '(v1.4) (Scorpion 2/3)' and '(v1.5 Protocol) (Scorpion 2/3)'. . Splitted 'Hyperactive (Bellfruit) (Scorpion 2/3)' into 'Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot) (Scorpion 2/3)' and '(set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Instant Jackpot (Bellfruit) (Scorpion 2/3)' into 'Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)', '(set 5, UK, Protocol) (Scorpion 2/3)', '(set 6, UK) (Scorpion 2/3)' and '(set 7, UK) (Scorpion 2/3)'. . Splitted 'It's Your Call (Global) (Scorpion 2/3)' into 'It's Your Call (Global) (v2.7) (Scorpion 2/3)' and clones '(Club?) (Global) (v1.6 Protocol) (Scorpion 2/3)', '(Club?) (Global) (v1.6) (Scorpion 2/3)' and '(Global) (v2.7 Protocol) (Scorpion 2/3)'. . Splitted 'King Cash Club (Bellfruit) (Scorpion 2/3)' into 'King Cash Club (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)' and '(set 2, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Luvvly Jubbly (UK Multisite 10/25p, Game Card 95-750-808) (Scorpion 2/3)' into 'Luvvly Jubbly (UK Multisite 10/25p, Game Card 95-750-808) (Scorpion 2/3)' and clones '(set 2, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK, Multisite) (Scorpion 2/3)', '(set 3, UK, Multisite, Protocol) (Scorpion 2/3)', '(set 4, UK, Arcade) (Scorpion 2/3)', '(set 5, UK, Arcade) (Scorpion 2/3)', '(set 6, UK, Protocol) (Scorpion 2/3)', '(set 7, UK, Protocol) (Scorpion 2/3)' and '(set 8, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Make A Million (Bellfruit) (Scorpion 2/3)' into 'Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 4, UK, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)', '(set 5, UK, Protocol) (Scorpion 2/3)' and '(set 6, UK) (Scorpion 2/3)'. . Splitted 'Make A Million Club (Bellfruit) (Scorpion 2/3)' into 'Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)', '(set 2, UK, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)' and '(set 4, UK) (Scorpion 2/3)'. . Splitted 'Match Of The Day (Bellfruit) (Scorpion 2/3)' into 'Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)', '(set 3, UK, 10GBP Jackpot) (Scorpion 2/3)', '(set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 4, UK, Protocol) (Scorpion 2/3)', '(set 5, UK, Arcade) (Scorpion 2/3)', '(set 5, UK, Arcade, Protocol) (Scorpion 2/3)', '(set 6, UK, Single Site) (Scorpion 2/3)', '(set 6, UK, Single Site, Protocol) (Scorpion 2/3)', '(set 7, UK, 8GBP Jackpot) (Scorpion 2/3)', '(set 7, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 8, UK) (Scorpion 2/3)', '(set 8, UK, Protocol) (Scorpion 2/3)', '(set 9, UK) (Scorpion 2/3)', '(set 9, UK, Protocol) (Scorpion 2/3)', '(set 10, UK, 6GBP Jackpot) (Scorpion 2/3)' and '(set 11, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Olympic Gold (Bellfruit) (Scorpion 2/3)' into 'Olympic Gold (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK, 10GBP Jackpot) (Scorpion 2/3)' and '(set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)'. . Splitted 'Only Fools & Horses (Bellfruit) (Scorpion 2/3)' into 'Only Fools & Horses (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 2) (Scorpion 2/3)', '(set 3) (Scorpion 2/3)', '(set 4) (Scorpion 2/3)' and '(set 5) (Scorpion 2/3)'. . Splitted 'Party Time (Bellfruit) (Scorpion 2/3)' into 'Party Time (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 2) (Scorpion 2/3)' and '(set 2, Protocol) (Scorpion 2/3)'. . Splitted 'Pharaoh's Gold Club (Bellfruit) (Scorpion 2/3)' into 'Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot)(Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol)(Scorpion 2/3)', '(set 2, UK, p65)(Scorpion 2/3)', '(set 2, UK, p65, Protocol)(Scorpion 2/3)', '(set 3, UK)(Scorpion 2/3)' and '(set 3, UK, Protocol)(Scorpion 2/3)'. . Splitted 'Pick Of The Bunch (Global) (Scorpion 2/3)' into 'Pick Of The Bunch (Global) (v2.3) (Scorpion 2/3)' and clones '(Club?) (Global) (v1.9 Protocol) (Scorpion 2/3)', '(Club?) (Global) (v1.9) (Scorpion 2/3)' and '(Global) (v2.3 Protocol) (Scorpion 2/3)'. . Splitted 'Premier Club Manager (Bellfruit) (Scorpion 2/3)' into 'Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)', '(set 2, UK, Protocol) (Scorpion 2/3)' and '(set 3, UK) (Scorpion 2/3)'. . Splitted 'Reel Gems (Bellfruit) (Scorpion 2/3)' into 'Reel Gems (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)' and '(set 2, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Road To Wembley (Bellfruit) (Scorpion 2/3)' into 'Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor) (Scorpion 2/3)' and clones '(set 1, UK, 10GBP Jackpot, 15RM motor, Protocol) (Scorpion 2/3)', '(set 10, UK) (Scorpion 2/3)', '(set 11, UK) (Scorpion 2/3)', '(set 2, UK, 15RM motor) (Scorpion 2/3)', '(set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 5, UK, Protocol) (Scorpion 2/3)', '(set 6, UK, 16RM motor) (Scorpion 2/3)', '(set 6, UK, 16RM motor, Protocol) (Scorpion 2/3)', '(set 7, UK, 16RM motor, Protocol) (Scorpion 2/3)', '(set 8, UK, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)', '(set 8, UK, 8GBP Jackpot, 16RM motor, Protocol) (Scorpion 2/3)' and '(set 9, UK) (Scorpion 2/3)'. . Splitted 'Round The Town (Bellfruit) (Scorpion 2/3)' into 'Round The Town (Bellfruit) (set 1) (Scorpion 2/3)' and clones '(set 1, Protocol) (Scorpion 2/3)', '(set 2) (Scorpion 2/3)', '(set 2, Protocol) (Scorpion 2/3)', '(set 3) (Scorpion 2/3)', '(set 4) (Scorpion 2/3)', '(set 4, Protocol) (Scorpion 2/3)', '(set 5) (Scorpion 2/3)' and '(set 6) (Scorpion 2/3)'. . Splitted 'Showtime Spectacular (Bellfruit) (Scorpion 2/3)' into 'Showtime Spectacular (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)', '(set 2, UK, Protocol) (Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol) (Scorpion 2/3)', '(set 4, UK) (Scorpion 2/3)', '(set 4, UK, Protocol) (Scorpion 2/3)', '(set 5, UK) (Scorpion 2/3)' and '(set 5, UK, Protocol) (Scorpion 2/3)'. . Splitted 'Spotted Dick (Global) (Scorpion 2/3)' into 'Spotted Dick (Global) (v3.1) (Scorpion 2/3)' and clones '(v?.? Euro unencrypted) (Scorpion 2/3)', '(v?.? Euro) (Scorpion 2/3)', '(v1.5 Protocol ) (Scorpion 2/3)', '(v1.5) (Scorpion 2/3)', '(v2.2) (Scorpion 2/3)' and '(v3.1 Protocol) (Scorpion 2/3)'. . Splitted 'Superstar (Bellfruit) (Scorpion 2/3)' into 'Superstar (Bellfruit) (set 1, UK, 3rd Triennial) (Scorpion 2/3)' and clones '(set 1, UK, 3rd Triennial, Protocol) (Scorpion 2/3)', '(set 2, UK, 2nd Triennial) (Scorpion 2/3)', '(set 2, UK, 2nd Triennial, Protocol) (Scorpion 2/3)', '(set 3, UK, 2nd Triennial) (Scorpion 2/3)', '(set 3, UK, 2nd Triennial, Protocol) (Scorpion 2/3)', '(set 4, UK, 2nd Triennial) (Scorpion 2/3)', '(set 4, UK, 2nd Triennial, Protocol) (Scorpion 2/3)' and '(set 5, UK) (Scorpion 2/3)'. . Splitted 'Surprise Surprize (Bellfruit) (Scorpion 2/3)' into 'Surprise Surprize (Bellfruit) (set 1, UK) (Scorpion 2/3)' and clones '(set 1, UK, Protocol)(Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)', '(set 2, UK, Protocol)(Scorpion 2/3)', '(set 3, UK) (Scorpion 2/3)', '(set 3, UK, Protocol)(Scorpion 2/3)' and '(set 4, UK) (Scorpion 2/3)'. . Splitted 'The Big Breakfast (set 1, Protocol) (Scorpion 2/3)', '(set 2 UK, Single Site, Protocol) (Scorpion 2/3)', '(set 4 UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 5 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)' and '(set 6 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)' from parent set. Splitted clone 'The Big Breakfast Casino (Scorpion 2/3)' into 'The Big Breakfast Casino (set 1) (Scorpion 2/3)', '(set 2) (Scorpion 2/3)' and '(set 3) (Scorpion 2/3)'. . Splitted 'The Game Show Club (Bellfruit) (Scorpion 2/3)' into 'The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65)(Scorpion 2/3)' and clones '(set 2, UK, Arcade, 250GBP Jackpot, p65)(Scorpion 2/3)', '(set 3, UK, Arcade)(Scorpion 2/3)', '(set 4, UK, Arcade)(Scorpion 2/3)', '(set 5, UK, Arcade)(Scorpion 2/3)', '(set 6, UK)(Scorpion 2/3)', '(set 7, UK)(Scorpion 2/3)', '(set 1, UK, Arcade, p65, Protocol)(Scorpion 2/3)', '(set 2, UK, Arcade, 250GBP Jackpot, p65, Protocol)(Scorpion 2/3)', '(set 3, UK, Arcade, Protocol)(Scorpion 2/3)', '(set 4, UK, Arcade, Protocol)(Scorpion 2/3)', '(set 5, UK, Arcade, Protocol)(Scorpion 2/3)' and '(set 8, UK, Protocol)(Scorpion 2/3)'. . Splitted 'Top Wack (Bellfruit) (Scorpion 2/3)' into 'Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)' and clone '(set 1, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)'. . Splitted 'Wild West Club (Bellfruit) (Scorpion 2/3)' into 'Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)' and clones '(set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)', '(set 2, UK) (Scorpion 2/3)' and '(set 2, UK, Protocol) (Scorpion 2/3)'. - Dipswitch fixes in chanbara, galaxia.c, progolf, sidepckt and twinkle - Fixed rom names in galaxia.c - Renamed (1941) to (1941r1), (dmnfrnt) to (dmnfrnta), (dmnfrnta) to (dmnfrnt), (falcnwldb) to (falcnwldc), (theglad) to (theglada), (theglada) to (theglad) and (wldwitch) to (wldwitchq). - Description changes of '99: The Last War (set 1), '99: The Last War (set 2), Andromeda (set 1), Andromeda (set 2), Antar (set 1), Antar (set 2), Barcode (Bellfruit) (set 1) (Scorpion 1), Brooklyn (set 1) (Bingo), Brooklyn (set 2) (Bingo), Bushido (set 1), Bushido (set 2), Caveman (Pinball/Video Combo, set 1), Cliff Hanger (set 1), Cliff Hanger (set 2), Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX), Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX), Dirt Devils (set 1) (Revision A), Dirt Devils (set 2) (Revision A), DoDonPachi II - Bee Storm (Japan, ver. 100), DoDonPachi II - Bee Storm (Japan, ver. 101), DoDonPachi II - Bee Storm (Japan, ver. 102), Dr.Who The Timelord (set 1, UK, Single Site, Game Card 95-750-288) (Scorpion 2/3), Dr.Who The Timelord (set 10, UK, Arcade, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 11, UK, Arcade, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 12, UK, no Jackpot spin, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 13, UK) (Scorpion 2/3), Dr.Who The Timelord (set 14, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3), Dr.Who The Timelord (set 15, UK, Arcade) (Scorpion 2/3), Dr.Who The Timelord (set 16, UK, Arcade) (Scorpion 2/3), Dr.Who The Timelord (set 3, UK, Arcade, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 4, UK Single Site, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 5, UK, Arcade) (Scorpion 2/3), Dr.Who The Timelord (set 6, UK) (Scorpion 2/3), Dr.Who The Timelord (set 7, UK, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3), Dr.Who The Timelord (set 9, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3), Exciting Soccer (Japan set 1), Falcons Wild - World Wide Poker (Video Klein, set 1), Fashion Gambler (set 1), Fashion Gambler (set 2), Gold Ball (set 1), Gold Ball (set 2), Gold Medalist (set 1), Gold Medalist (set 2), Golden Gate (set 1) (Bingo), Golden Gate (set 2) (Bingo), Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1), Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2), Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1), Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2), Konami Pyson BIOS, Kung-Fu Taikun (set 1), Kung-Fu Taikun (set 2), Mirax (set 1), Moon Shuttle (Japan set 1), Moon Shuttle (US? set 1), Mortal Kombat (Yawdim bootleg, set 1), Mortal Kombat (Yawdim bootleg, set 2), Motor Show (set 1), Motor Show (set 2), Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1), Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2), Pro Sports - Bowling, Tennis, and Golf (set 1), Pro Sports - Bowling, Tennis, and Golf (set 2), Quasar (set 1), Quasar (set 2), Raiden Fighters 2 (Japan set 1, SPI), Rastan (World, set 1), S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201), Safe Cracker Club (Mdm) (v4.4) (Scorpion 2/3), Star Force (encrypted, set 1), The Big Breakfast (set 2 UK, Single Site) (Scorpion 2/3), The Big Breakfast (set 3 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3), The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3), The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3), The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3), The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN), The Gladiator - Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107), Wheel Of Fortune (set 1), Wheel Of Fortune (set 2) and Wild Witch (Export, 6T/12T ver 1.74A alt). - MAME: Fixed chdman (upgrade to chd v5 changes SHA1) (ID 04699) - SDLMAME: Updated SDL man pages. chdman has formatting glitches but at least matches the binary we ship. - Debugger: Removed the TMS57002 from UNIDASM until modern cores are handled sanely. This fixes UNIDASM does not link in 0.145u4 (ID 04725) 0.145u4 - New games: Skater (DECO Cassette, Japan) and Super Doubles Tennis (DECO Cassette, Japan) - New Working games: Metal Slug 5 (JAMMA PCB) - New Non-Working games: Fantastic, Mazan: Flash of the Blade (MAZ1 Ver. A), Power Shovel ni Norou!! - Power Shovel Simulator, Virtua Cop (Revision A), World Soccer Winning Eleven Arcade Game Style and World Soccer Winning Eleven Arcade Game 2003 - New clones: Arkanoid - Revenge of DOH (Japan bootleg), Battle Gear 2 (v2.01J), Caveman Ninja (alternate), Deer Hunting USA V3, Dynablaster / Bomber Man (bootleg, alt), Final Fight (World, set 2), Forgotten Worlds (USA, B-Board 88618B-2, Rev. C), JoJo's Venture (Asia 990128, NO CD), JoJo's Venture (USA 990128), JoJo no Kimyouna Bouken (Japan 990128), Megatouch IV (9255-40-01 RO, Standard version), Pit Boss Megatouch II (9255-10-06 ROE, California version), Raiden Fighters Jet (Taiwan), Soul Calibur III (SC31002-NA-A), Street Fighter II': Champion Edition (Japan 920803), Street Fighter II: The World Warrior (USA 910522, Rev. G), Super Chase - Criminal Termination (Japan), Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version), Tekken 4 (TEF1 Ver. C) and Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version). - New drivers: pyson.c - 68301/7 CPUs . Added 68301/68307 aliases for better documentation . Replaced 68000 CPU1 with 68301 in all Seta2 games, except Funcube 2/3/4. . Replaced 68000 CPU1 with 68307 in bfm_sc4.c - I386 CPU . Various i386 and x87 fixes . Removed one too many ampersands - LR35902 CPU: Converted CPU core to C++ - M6502 CPU: Fixed OAL illegal instruction to pass Acid5200 test (http://www.virtualdub.org/altirra.html) - PowerPC CPUs . Properly mirror SO bit from XER into CR0 in powerpc/ppcdrc.c . Correct DIVW divide-by-zero crashes, flags and corner-case results. - TMS57002 CPU . Modernize CPU core . Fixed GCC 4.6 compile (cpu/tms57002/tms57kdec.c) . Fixed cpu/tms57002/tms57kdec.c - K054539 sound: Modernized core. Uncross the streams. - YM3526 sound: Refactored YM3526 to use devcb - YMF271 sound: Timer setup fix - Votrax sound . Formalized the Votrax SC-01 device: Implemented the full set of digital logic from the patent, including the timing circuit, transition circuit, glottal generator, and noise source. Some unknowns still exist with regards to clocking, due to contradictory statements in the patent, but as it stands now, all parameters are fetched and processed, phonemes are requested, and in theory all that remains is for someone with analog sound experience to simulate the filters on the output. For now, you just get the raw glottal pulse mixed with the noise signal based on the vocal and fricative amplitudes, which is enough to show progress, but hardly a pleasing result just yet. . A few tweaks, better logging. Added some temporary hacks to the votrax to get the parameters to all change to real values so the analog filters can be tested. Changed USE_FAKE_VOTRAX back to 1. Was accidentally checked in the wrong way in a previous change. . Added analog path to Votrax (Compute Final Capacity + Analog to Digital Filter) . Hooked up Votrax properly to Wizard of Wor. Currently disabled by default, but can be enabled by turning off USE_FAKE_VOTRAX in astrocde.h. . Hooked up Votrax properly to Gorf. Currently disabled by default, but can be enabled by turning off USE_FAKE_VOTRAX in astrocde.h. . Converted Gottlieb r1 and r2 sound boards into full-on devices, using the recently-added mixer interface. All sound outputs are redirected to the new sound device itself, and then the consuming driver can route the new sound device's outputs as appropriate. The Votrax chip has been hooked up properly, with a crude guess at the variable clocking. Current Votrax emulation is turned off, but it can be enabled by changing USE_FAKE_VOTRAX to 0 in gottlieb.h. . Replaced Samples sound with Votrax SC-01 in Tylz (prototype) - 8250 UART: Support for the 16550 fifo. Some more && -> & cases found (machine\ins8250.c). - 8259 PIC: Various fixes - IDE: idectrl change - SCSI . Write and mode sense support in nscsi_hd . Misc fixes . Dir works on CD's now (machine\scsicd.c) - Floppy . Added image softlist interface for new floppies . Partial conversion of legacy floppy to modern device - CHDMAN . Fixed stack overflow in chdman when compiled with Visual Studio by moving objects based on chd_file_compressor to the heap . Cleanup recent changes, fixed a missing case where a compressor was still stack allocated . Correct processing of GDI files, added ability to extractcd to .gdi, verified perfect checksum round-tripping on .GDI files. Fixed big-endian compile. . Rework libflac to play nicer with MAME's build system (based on suggestions by Tsuruchiyo Nitro); should fix compile problems on certain configrations. . Removed libflac++, there's no intention of using the C++ interface, so it's just dead code . Changed CHD region tag to something more appropriate . When copying CHDs, preserve the flag that indicates whether the metadata is included in the SHA1 (ID 04699). When creating LD CHDs, don't use a checksum on the AVLD metadata, like we did before. Fixes recompression of laserdisc CHDs. . Fixed copy/paste error in the chd.h header which caused the flags passed to be ignored when writing metadata - 3do.c . Removed undumped 3do BIOS "gsalive2" for now . Increased rom_region sizes to prevent crash - aleck64.c . Restored previous AI DMA speed for N64, theory was wrong and lag was caused due code cruft in a local file . Fix for aleck64 crash on exit . Fixed swapped romsets between doncdoon and kurufev - cps1.c . Added some notes and done some documentation fixes . Expanded and updated games table in video\cps1.c . Removed the notes about LW-13.10D ROM in forgottnu and RT_23.13B ROM in wonder3, since current dumps are confirmed as good. . Fixed qad labels and confirmed PCB infos - dec8.c . Fixed dipswitches and inputs (after verification of the M6809/HD6309 code) in cobracom, csilver, garyoret, ghostb, meikyuh, gondo, lastmisn, makyosen, oscar, shackled, breywood and srdarwin . Added coinage simulation based on the dipswitches to csilver, lastmisn and srdarwin . Use fake MCU in garyoret based on 'gondo' instead of simulating it - decocass.c: Fixed visible area - ladybug.c: Got rid of bogus inputsin dorodon, ladybug and snapjack, there are no fire buttons at all, just controller and start buttons. - mainevt.c: Fixed sound regression (ID 04720) - megatech.c: Implemented outputs for the time limit alarm sound and screen flash - model2.c: Added Sega rom board ID# for VON (US) - namcos23.c: Enable work queues for a substantial framerate boost in 3D scenes - naomi.c . Correct PIC number information for starseek . Correct SHA1 for Under Defeat CHD - neodrvr.c . Added missing program roms to Metal Slug 5 (JAMMA PCB) (Game now playable) . Added SNK development boards . Updated MVS motherboard list . Updated sengoku2, zupapa, mslug, neodrift, ctomaday, pbobbl2n and jockeygp chip info. . Added correct product ID codes for vliner and jockeygp . Updated hash\neogeo.xml accordingly - pyson.c: Added Konami Psyon BIOS - r2dx_v33.c, raiden2.c: Graphic encryption value adjustment (machine\r2crypt.c) - segas16b.c, segas18.c: Updated info for clones aliensyn3, altbeast5, shdancer1 and shinobi2 including Sega game ID#, PCB # & rom board # - senjyo.c: Fixed colors in Senjyo driver (mostly noticeable with Senjyo background colors) - viper.c . Added main board DS2430 EEPROM to BIOS . Added dongle EEPROM to Code One Dispatch (ver D) . Fixed some IDE parameters to allow HDD games to boot again - Area 51: Site 4: Redumped CHD for clone a51site4a - Chase Bombers, Under Fire: Implement outputs. Lamps, gun recoil and wheel vibration are implemented. - Cosmic Avenger: Fixed Player2 button 2 does not function (ID 04715) - Extra Bases: Fixed trackball (ID 04677) - Megatouch IV: Added DS1204 key to clone megat4c - NFL Classic Football: Added decryption - Operation Wolf: Fixed various remaining regressions with device tag strcmp. This fixes music and sound effects are completely messed up (ID 04721). - PoPo Bear . Various improvements, game is somehow playable with various video and sound glitches . Preliminary gfx hooked up. Fixed gfxs and some other minor improvements. . WIP code for the non tile based sprites . Fixed irq order (title screen spinning logo fix) plus fixed a color bug with GAME OVER letters . Some basic scrolling hooked, doesn't work much well tho. - Space Invaders Part II: ROM pv01 in clone invadpt2br wasn't a bad dump, just partially encrypted. - Varia Metal: Fixed gfx regression (ID 04684) - Bellfruit Scorpion 1 set splitting . First pass of splitting out *all* of Scorpion 1 roms into clones so that proper testing can begin. Identified some duplicates and 'premerged' versions of split ROM files. So while there are more 'games', the number of ROMs has actually decreased. . Splitted 'All In A Days Work (Global)' into 'All In A Days Work (Global) (set 1)' and clone 'All In A Days Work (Global) (set 2)'. . Splitted 'Barcode (Bellfruit) (Scorpion 1)' into 'Barcode (Bellfruit) (Scorpion 1)' and clone 'Barcode (Bellfruit) (set 2) (Scorpion 1)'. . Splitted 'Beat The Clock (Mdm) (Scorpion 2/3)' into 'Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)' and clones '(set 2) (Scorpion 2/3?)' and '(set 3) (Scorpion 2/3?)'. . Splitted 'Cash Attraction (Bellfruit) (Scorpion 1)' into 'Cash Attraction (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)' and '(set 4) (Scorpion 1)'. . Splitted 'Cash Classic (Global)' into 'Cash Classic (Global) (set 1)' and clones '(Global) (set 2)', '(Maygay/Global?) (set 3)' and '(Maygay/Global?) (set 4)'. . Splitted 'Cash Explosion (Bellfruit) (Scorpion 1)' into 'Cash Explosion (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)', '(set 4) (Scorpion 1)' and '(set 5) (Scorpion 1)'. . Splitted 'Cash Wise (Bellfruit) (Scorpion 1)' into 'Cash Wise (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)' and '(set 4) (Scorpion 1). . Splitted 'Chain Reaction (Bellfruit) (Scorpion 1)' into 'Chain Reaction (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)' and '(set 1, Protocol) (Scorpion 1)'. . Splitted 'China Town Club (Bellfruit) (Scorpion 1)' into 'China Town Club (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)', '(set 1, Protocol) (Scorpion 1)', '(set 2, Protocol) (Scorpion 1)' and '(set 3, Protocol) (Scorpion 1). . Splitted 'Club 65 Special (Bellfruit) (Scorpion 1)' into 'Club 65 Special (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)', '(set 4) (Scorpion 1)', '(set 5) (Scorpion 1)', '(set 2, Protocol) (Scorpion 1)', '(set 3, Protocol) (Scorpion 1)' and '(set 5, Protocol) (Scorpion 1)'. . Splitted 'Club Diamond (Crystal) (Scorpion 1)' into 'Club Diamond (Crystal) (set 1) (Scorpion 1)' and clone '(set 1, Protocol) (Scorpion 1)'. . Splitted 'Club Temptation (Bellfruit) (Scorpion 1)' into 'Club Temptation (Bellfruit) (set 1) (Scorpion 1)' and clone '(set 2) (Scorpion 1)'. . Splitted 'Club Wise (Bellfruit) (Scorpion 1)' into 'Club Wise (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)' and '(set 3) (Scorpion 1)'. . Splitted 'Count Cash Club (Bellfruit) (Scorpion 1)' into 'Count Cash Club (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)', '(set 1, Protocol) (Scorpion 1)' and '(set 2, Protocol) (Scorpion 1)'. . Splitted 'Crazy Crocs (Mdm) (Scorpion 2/3)' into 'Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)' and clones '(set 2) (Scorpion 2/3?)', '(set 3) (Scorpion 2/3?)' and '(set 4) (Scorpion 2/3?)'. . Splitted 'Discovey (Bellfruit) [Dutch] (Scorpion 1)' into 'Discovey (Bellfruit) (Dutch) (set 1) (Scorpion 1)' and clone '(set 2) (Scorpion 1)'. . Splitted 'Double Chance (Bellfruit) (Scorpion 1)' into 'Double Chance (Bellfruit) (set 1) (Scorpion 1)' and clone '(set 2) (Scorpion 1)'. . Splitted 'Driving School (Global)' into 'Driving School (Global) (set 1)' and clones '(set 2)', '(set 3)' and '(set 4)'. . Splitted 'Fruit Pursuit (Bellfruit) (Scorpion 1?)' into 'Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?)' and clone '(set 2) (Scorpion 1?)'. . Splitted 'Fun House Club (Bellfruit) (Scorpion 1)' into 'Fun House Club (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)' and '(Bellfruit) (set 1, Protocol) (Scorpion 1)'. . Splitted 'Hi Flyer Club (Crystal) (Scorpion 1)' into 'Hi Flyer Club (Crystal) (set 1) (Scorpion 1)' and clone '(set 1, Protocol) (Scorpion 1)'. . Splitted 'Linx (Bellfruit) (Scorpion 1)' into 'Linx (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)' and '(set 3, Protocol) (Scorpion 1)'. . Splitted 'Lotus SE (Dutch)' into 'Lotus SE (Dutch) (set 1)' and clone 'Lotus SE (Dutch) (set 2)'. . Splitted 'Power Lines (Bellfruit) (Scorpion 1)' into 'Power Lines (Bellfruit) (set 1) (Scorpion 1)' and clone ' (set 2) (Scorpion 1)'. . Splitted 'Smokey Vs The Bandit (Mdm) (Scorpion 2/3' into 'Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)' and clones '(set 2) (Scorpion 2/3?)'. . Splitted 'Spectre (Bellfruit) (Scorpion 1)' into 'Spectre (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)'. . Splitted 'Strike It Rich (Bellfruit) (Scorpion 1)' into 'Strike It Rich (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)' and '(set 4) (Scorpion 1)'. . Splitted 'Tornado (Bellfruit) [Dutch] (Scorpion 1)' into 'Tornado (Bellfruit) (Dutch) (set 1) (Scorpion 1)' and clone '(Dutch) (set 2) (Scorpion 1)'. . Splitted 'Tri Star (Bellfruit) (Scorpion 1)' into 'Tri Star (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 2, Protocol) (Scorpion 1)', '(set 3) (Scorpion 1)' and '(set 3, Protocol) (Scorpion 1)'. . Splitted 'Typhoon Club (Bellfruit) (Scorpion 1)' into 'Typhoon Club (Bellfruit) (set 1) (Scorpion 1)' and clone '(set 1, Protocol) (Scorpion 1)'. . Splitted 'Winning Streak (Bellfruit) (Scorpion 1)' into 'Winning Streak (Bellfruit) (set 1) (Scorpion 1)' and clones '(set 2) (Scorpion 1)', '(set 3) (Scorpion 1)', '(set 4) (Scorpion 1)', '(set 5) (Scorpion 1)', '(set 6) (Scorpion 1)', '(set 7) (Scorpion 1)', '(set 8) (Scorpion 1)', '(set 1, Protocol) (Scorpion 1)', '(set 3, Protocol) (Scorpion 1)', '(set 4, Protocol) (Scorpion 1)', '(set 5, Protocol) (Scorpion 1)', '(set 6, Protocol) (Scorpion 1)' and '(set 7, Protocol) (Scorpion 1)'. - Dipswitch fixes in dec8.c, decocass.c and popobear - Fixed rom names in cps3.c, bloodbro, bucky, darkseal, invds, moomesa, naomi.c and nwk-tr.c - Renamed (buckyaa) to (buckyaab), (buckyua) to (buckyuab), (cgsumo) to (coozumou), (deerhuntc) to (deerhuntd), (jojo) to (jojor1), (jojoa) to (jojor2), (jojoaj) to (jojojr2), (jojoan) to (jojonr2), (jojobaa) to (jojobar1), (jojobaan) to (jojobanr1), (jojobaane) to (jojobaner1), (jojoj) to (jojojr1), (jojon) to (jojonr1), (moomesaa) to (moomesaaab), (moomesau) to (moomesauac), (moomesaua) to (moomesauab), (redeartha) to (redearthr1), (sf2cej) to (sf2cejb), (sfiii3a) to (sfiii3r1), (sfiii3an) to (sfiii3nr1), (sfiii3au) to (sfiii3ur1) and (warzarda) to (warzardr1). - Description changes of Baluba-louk no Densetsu (Japan), Beat The Clock (Mdm) (set 1) (Scorpion 2/3?), Bucky O'Hare (ver AAB), Bucky O'Hare (ver EAB), Bucky O'Hare (ver UAB), Cash Card (Bellfruit) (set 1) (Scorpion 1), Cash Card (Bellfruit) (set 2) (Scorpion 1), Cash Explosion (Bellfruit) (Dutch) (Scorpion 1), Cashino (Bellfruit) (Dutch) (Scorpion 1), Classic (Bellfruit) (Dutch) (Scorpion 1), Club 2001 (Bellfruit) (Dutch) (Scorpion 1), Club Diamond (Crystal) (set 1) (Scorpion 1), Cops 'n' Robbers Deluxe (Bellfruit) (Dutch) (Scorpion 1), Croc And Roll (Mdm) (Scorpion 2/3?), Cyber Troopers Virtual-On (Japan, Revision B), Cyber Troopers Virtual-On (USA, Revision B), Dagobert's Vault (Bellfruit) (Dutch) (Scorpion 1), Dark Seal (Japan revision 4), Disco Fever (L-1), Final Fight (World, set 1), Flash (Bellfruit) (Dutch) (Scorpion 1), Forgotten Worlds (USA, B-Board 88618B-2, Rev. A), Forgotten Worlds (USA, B-Board 88621B-2, Rev. C), Fruit Lines (Bellfruit) (set 1) (Scorpion 1), Fruit Lines (Bellfruit) (set 2) (Scorpion 1), Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?), Grand Prix (Bellfruit) (Dutch) (Scorpion 1), Grand Slam (Bellfruit) (Dutch) (Scorpion 1), Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. A), Hanabi de Doon! - Don-chan Puzzle, Hi Flyer Club (Crystal) (set 1) (Scorpion 1), Impact (Bellfruit) (Dutch) (Scorpion 1), Kings Club (Bellfruit) (Dutch) (Scorpion 1), Magic Circle (Bellfruit) (Dutch) (Scorpion 1), Manhattan (Bellfruit) (Dutch) (Scorpion 1), Mistral (Bellfruit) (Dutch) (Scorpion 1), Olympia (Bellfruit) (Dutch) (Scorpion 1), Oozumou - The Grand Sumo (DECO Cassette, Japan), Oracle (Bellfruit) (Dutch) (Scorpion 1), Quatro (Bellfruit) (Dutch) (Scorpion 1), Rainbow (Bellfruit) (Dutch) (Scorpion 1), Reel Cash (Bellfruit) (Dutch) (Scorpion 1), Reel Cash SE (Bellfruit) (Dutch) (Scorpion 1), Revolution (Bellfruit) (Dutch) (Scorpion 1), Rose 'n' Crown (Bellfruit) (Dutch) (Scorpion 1), Santana (Bellfruit) (Dutch) (Scorpion 1), Satellite (Bellfruit) (Dutch) (Scorpion 1), Shanghai (Bellfruit) (Dutch) (Scorpion 1), Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A), Sonic Championship (USA), Sonic the Fighters (Japan), Sterling (Bellfruit) (Dutch) (Scorpion 1), Street Fighter II: The World Warrior (USA 910522, Rev. I), Strike 4 (Bellfruit) (set 1) (Scorpion 1), Strike 4 (Bellfruit) (set 2) (Scorpion 1), Superstar (Bellfruit) (Dutch) (Scorpion 1), Ventura (Bellfruit) (Dutch) (Scorpion 1), Victory (Bellfruit) (Dutch) (Scorpion 1), Voyager (Bellfruit) (set 1) (Scorpion 1), Voyager (Bellfruit) (set 2) (Scorpion 1), Wild West C.O.W.-Boys of Moo Mesa (bootleg), Wild West C.O.W.-Boys of Moo Mesa (ver AAB), Wild West C.O.W.-Boys of Moo Mesa (ver EAB), Wild West C.O.W.-Boys of Moo Mesa (ver UAB), Wild West C.O.W.-Boys of Moo Mesa (ver UAC), Winfalls (Dutch) (Bellfruit) (Scorpion 1) and World Kicks (WK1 Ver. A). - MAME . Make all items connected to mixer inputs available in the UI, not just items connected to speakers. . Fixed specifying device-based VBLANK callbacks (emu\screen.h) . Create new devices buffered_spriteram_device, which manage buffered spriteram. Removed core support for legacy buffered spriteram, and updated all drivers to use the new devices instead. . Removed required/optional_shared_size helpers. Instead the existing required/optional_shared_ptr helpers now have a bytes() method that can be used to query the size of the shared region. Death to generic spriteram. . Clamp timer->remaining() to 0 if the timer has expired (emu\schedule.c) . Fix for potential driver conflicts with same named machine states between MAME and MESS . Fixed various remaining regressions with device tag strcmp . Added save_item template specialization for dynamic_array . Fixed -lsoft reporting wrong sizes for roms using ROM_CONTINUE (the size is calculated with rom_file_size which already takes into account all ROM_CONTINUE, so no need to output it). . Removed legacy image devices and related code . Added Driver display in both the game select UI as well as the gameinfo screens which should prove helpful . Fixed menu refresh on entering. This fixes GUI last menuitem shows "Return to Game" instead of "Return to Prior Menu" (ID 04592) and (ID 04702). - SDLMAME . Support unofficial (not in the OSD class) num_processors API in SDL used by chdman. Allows chdman to use multiple cores/processors on non-Windows. . abort() is intended in this instance (osd\sdl\dview.c). . Fixed typo in sdl\debugosx.m - Compiling . Support obsolete GCC versions (>= 3) . Fixed several Visual Studio compiler warnings and 64-bit libflac compilation . Fixed display of driver name under MSVC (emu\ui.c). Some minor cleanup in that function. . Fixed GCC 4.4.3 compile (video\bufsprite.h) . Fixed GCC 4.6 compile (cpu/tms57002/tms57kdec.c) . Make ioport compile time less insane 0.145u3 - Fixed listxml and validation - CHDMAN: Properly handle and warn on bin/cue output of images with subcode data 0.145u2 - New games: Casino Poker (Ver PM86LO-35-5, German) - New Non-Working games: 'Mann, oh-Mann', NFL Classic Football (NCF3 Ver.A.) and Pot O' Gold (U.S. Games, v400x?) - New clones: Area 51: Site 4 (September 11, 1998), Mortal Kombat (Yawdim bootleg - Set 2), Puzz Loop 2 (Japan 010226) and Street Fighter II': Champion Edition (Japan 920322) - New drivers: manohman.c and potgoldu.c - 680x0 CPUs . Added API to install a non-debugger instruction hook to m68k. Usage is strongly NOT recommended except for dire cases. . Not checking fc in 680x0 TTx translation? That's a patchin' . Ensure fc/rw and fault address are consistant in 680x0 - I386 CPU . One more to fix cmpsb opcode (dir /s works now) and remove unused variables . Fixed Windows 95 blue screen (MESS) . Prevent page faults when returning to same privilege and unmapped pages are above the stack. Windows 95 boots now (MESS). . LOCK prefix should depend on IOPL on 386. Windows NT beta boots (MESS). . Added 32-bit versions of LMSW, and made LMSW only change the lower 4 bits of CR0. - LR35902 CPU . Started splitting up the instructions into sub-cycles . Refactored a bit and got rid of the union magic - MIPS CPUs: Checksum the delay slot in single-instruction blocks in the MIPS3 and RSP DRCs - PowerPC MPC8240 CPU: Enabled MMU - Samples sound: Fixed 8-bit sample reading was broken. This fixes certain games with the new SAMPLE coding do not load and cause a crash in MAME (ID 04696). Expose a static interface for using the sample loader, for any other sound chips which may need to fetch samples. - 6532 RIOT: Added member read/write handlers - 8250 UART . Rewrite INS8250 to use diserial, updated Microtouch to modern, made it serial device and updated connected drivers (adp.c, cd32.c, magtouch.c, meritm.c, pcat_nit.c and tmaster.c) . Serial rx line high on start and fix for msr register . Proper start state of INS8250 - MC146818 RTC: Set period even if timer is disabled, required for Windows NT (MESS) - Bitbanger (serial port): Added 19200bps (imagedev\bitbngr.c) - Serial device interface (emu\diserial.c): Added optinal rx and tx timers and callbacks - CHDMAN . Removed some calls in image.c, note that add_dynamic_device is still used, it's still handy. Fixed empty CHD creation for HDD's. . Better fix is to just not parse start/end when there's no input file. Added new function dumpmeta to dump out a particular piece of metadata to a file or stdout. . Re-did the non-CD FLAC codec to be "smart" in that it can choose either big-endian or little-endian on the fly and uses the best one. Added FLAC as a default codec for hard disks, which helps a lot for certain disks. . CD Audio: Better management of FLAC block sizes, aiming to keep them around 2k samples. Increased CD sectors per hunk to 8 for better compression. . CD-ROM: Fixed crash when parsing bin/cue (util/chdcd.c). The right fix is to not compare against array index -1. - aleck64.c . Added a trivial Y reject to triangle draw commands in the N64 RDP . Various PIF fixes, gets Command & Conquer (MESS) to boot and games to recognize and save to controller paks. . Force mtc0 opcodes that initiate to-RSP DMAs to end recompile sequences to force a code check. Fixes certain microcodes from executing garbage code after DMA. . Don't flush the RSP DRC cache on DMA. Fixes Mario 64 (MESS) and others. . Miscellaneous machine fixes, gets Conker's Bad Fur Day to boot through its legal screens with interpreter MIPS. . Increase the amount of time consumed by PI DMA, makes certain RSP microcodes that test DMA speed land in the correct window. . Force the main CPU to yield when the RSP reads its atomic semaphore . Force the RSP to yield when PI DMA completes . Flush the RSP DRC cache when touching IMEM with SP DMA . Fixed audio sync issues in Super Mario 64 (MESS) and probably others, and also bring PI DMA speed into the realm of reality. . Changed PI DMA speed from 3 cycles/word to 5.08 cycles, as average PI speed is between 2.53 and 2.55 cycles/byte. - goldnpkr.c . Inputs from the scratch . Switched manufacturer 'Playman' to PM / Beck Elektronik, since it's PM and Beck Elektronik/Computer/etc... . Added technical and game notes - gticlub.c: Rewrote the 3D renderer. Implemented gouraud shading, lighting and fog. TODO: Fog equation and parameters are probably not accurate. Winding Heat (and maybe others) have slight Z-fighting problems. 3D isn't always turned off properly (during title screens for example). Figure out what controls this. Video mixer, layer priority or some 3D register? - konamigv.c: Updated all CDs to v5 SHA1s, marked all old-format dumps BAD_DUMP. - williams.c: Williams blits with bit 2 set take approximately 2x as long because they are bus-shared with RAM. Should impact some timing behaviors such as later levels in Robotron, where approximately 10% of the blits are done with bit 2 set. Further refinements may be necessary but this addresses the most significant issue. - Altered Beast: Added missing FD1094 key to Juuouki (set 5). Now that the FD1094 key has been supplied we see it's actually Altered Beast. - Dragon Gun: Documentation of the video data on Dragon Gun. This just attempts to parse some of the header structures in the DVI data Dragon Gun uses, see http://www.fileformat.info/format/dvi/egff.htm. I don't know if there are any software decoders for this format, I think it was a hardware solution? The Dragon Gun data doesn't seem to have all fields filled in. Hopefully somebody who actually understands video (de)compression can actually flesh this out. - FAX: Added missing proms - Mann, oh-Mann: Fixed address map (SAA1099 write). Preliminary driver. German board game similar to Ludo, derivated from the indian game Parchisi. Coin-op machine for 1-4 players. No screen, just artwork and lamps. - Pac-Man - 25th Anniversary Edition: Fixed unable to continue while playing Galaga (ID 04704) - Maygay M1 A/B set splitting . Splitted 'Coronation Street - Rovers Return (Maygay) (M1A/B)' into 'Coronation Street - Rovers Return (Maygay) (set 1) (M1A/B)' and clones '(set 1) (Alternate) (M1A/B)', '(set 1) (Protocol) (M1A/B)', '(set 2) (Alternate) (M1A/B)', '(set 2) (Hack) (M1A/B)', '(set 2) (M1A/B)', '(set 2) (Protocol) (M1A/B)', '(set 3) (Alternate 1) (M1A/B)', '(set 3) (Alternate 2) (M1A/B)', '(set 3) (M1A/B)', '(set 4) (M1A/B)', '(set 4) (Protocol) (M1A/B)', '(set 5) (M1A/B)', '(set 6) (BW) (M1A/B)', '(set 6) (BW) (Protocol) (M1A/B)', '(set 7) (M1A/B)', '(set 7) (Protocol) (M1A/B)', '(set 8) (M1A/B)', '(set 9) (M1A/B)', '(set 9) (Protocol) (M1A/B)', '(set 10) (M1A/B)', '(set 10) (Protocol) (M1A/B)', '(set 11) (M1A/B)', '(set 12) (M1A/B)' and '(set 12) (Protocol) (M1A/B)'. . Splitted 'Coronation Street Club (Maygay) (M1A/B)' into 'Coronation Street Club (Maygay) v2.1 (M1A/B)' and clones 'v1.1 (M1A/B)', 'v1.1 (Protocol)(M1A/B)' and 'v2.1 (Protocol) (M1A/B). . Splitted 'Coronation Street Showcase (Maygay) (M1A/B)' into 'Coronation Street Showcase (Maygay) v1.1 (M1A/B)' and clone 'v1.1 (Protocol)(M1A/B)'. . Splitted 'Deluxe Monopoly (Maygay) (M1A/B)' into 'Deluxe Monopoly (Maygay) v5.1 (M1A/B)' and clones 'v1.1 (Code M) (M1A/B)', 'v1.1 (Code M, Alternate) (M1A/B)', 'v1.1 (M1A/B)', 'v1.1 (Older) (M1A/B)', 'v1.1 (Protocol) (M1A/B)', 'v1.2 (Alternate) (M1A/B)', 'v1.2 (M1A/B)', 'v1.2 (Newer) (M1A/B)', 'v1.2 (Protocol) (M1A/B)', 'v2.1 (Protocol) (M1A/B)', 'v3.0 (Hack) (M1A/B)', 'v3.1 (Alternate Hack) (M1A/B)', 'v3.1 (BwB set) (M1A/B)', 'v3.1 (Hack) (M1A/B)', 'v3.1 (Protocol) (M1A/B)', 'v5.1 (Older) (M1A/B) (alt?)', 'v5.1 (Older) (M1A/B)', 'v5.1 (Older) (Protocol) (M1A/B)' and 'v5.1 (Protocol) (M1A/B)'. . Splitted 'Diamonds Are Forever Club (Maygay) (M1A/B)' into 'Diamonds Are Forever Club (Maygay) v5.1 (M1A/B)' and clones 'v1.1 (M1A/B)' and 'v5.1 (Protocol) n(M1A/B)'. . Splitted 'Donkey Kong (Maygay) (M1A/B)' into 'Donkey Kong (Maygay) v9.2 (M1A/B)' and clones 'v1.1 (M1A/B) (Protocol?)', 'v1.1 (M1A/B)', 'v2.1 (M1A/B)', 'v2.1 (Older) (M1A/B)', 'v2.1 (Older) (Protocol) (M1A/B)', 'v3.1 (M1A/B)', 'v3.1 (Protocol) (M1A/B)', 'v4.1 (M1A/B)', 'v4.1 (Protocol) (M1A/B)', 'v5.1 (M1A/B)', 'v5.1 (Protocol) (M1A/B)', 'v8.1 (Alternate) (M1A/B)', 'v8.1 (M1A/B)', 'v8.1 (Older) (M1A/B)', 'v8.1 (Older) (Protocol) (M1A/B)', 'v8.1 (Protocol) (M1A/B)', 'v9.1 (Alternate) (M1A/B)', 'v9.1 (M1A/B)', 'v9.1 (Older) (Alternate) (M1A/B)', 'v9.1 (Older) (Hack 1) (M1A/B)', 'v9.1 (Older) (Hack 2) (M1A/B)', 'v9.1 (Older) (M1A/B)', 'v9.1 (Older) (Protocol) (M1A/B)', 'v9.1 (Protocol) (M1A/B)', 'v9.2 (Alternate) (M1A/B)' and 'v9.2 (Protocol) (M1A/B)'. . Splitted 'Living In America (Maygay) (M1A/B)' into 'Living In America (Maygay) (Alternate 1) (M1A/B)' and clones '(Alternate 2)(M1A/B)' and '(Protocol) (M1A/B)'. . Splitted 'Luxor Casino (Gemini) (M1A/B)' into 'Luxor Casino (Gemini) v4.0 (M1A/B)' and clones 'v2.1 (M1A/B)', 'v3.2 (M1A/B)' and 'v3.3 (M1A/B)'. - Input port: Devcb port tags need to be relative, not absolute, like other devcb tags. Fatal error if a custom I/O port handler's device is not found. - Renamed (altbeast5) to (altbeast6), (altbeastj2) to (altbeast5) and (pzloop2j) to (pzloop2jr1) - Description changes of Altered Beast (set 5, FD1094 317-0069), Caesars Palace (Whitbread / Ace) (IMPACT), Caesars Palace (Whitbread / Crystal) (IMPACT, set 1), Caesars Palace (Whitbread / Crystal) (IMPACT, set 2) (ID 04691), Cock A Doodle Dough! (Empire) (MPU5) (ID 04693), Criss Cross Club (Maygay) (Dutch) (M1A/B), Kapang! (Crystal) (IMPACT) (ID 04692) and The Full Monty (Empire) (MPU5) (ID 04694) - MAME . Create a new device_mixer_interface, derived from device_sound_interface, which mixes all its inputs to a single output stream. Redefined the SPEAKER device to use this and remove the duplicate underlying logic. The main purpose of this new interface is to allow device-ification of an entire sound board, which can itself become a mixer of all of its sound components to a single output stream. This stream can then be routed by the device's owner to the appropriate speakers. A real-life example will show up soon. . Added getsoftlist;glist call so list content can be taken by name, to help clrmamepro and others handling software lists, and simplified rest of code. . Removed rom_source abstraction, which was just mapping to devices anyways. Updated everyone involved to just iterate over devices directly. . Report drivers with no roms as best available, but don't display anything for devices with no roms. Don't display slot devices that have no roms either. If no roms are found or are required then display error. . Added helpers for loading file for slot determination. Give more proper name and disabled loading of soflist items in open_image_file call. . Slotoptions now also contain shortnames so it's possible to link slot option and device. . Previous check gave false positives, also slot devices can gave empty rom regions so that have to be marked on output. Reverted some checks back and fixed few more cases. . Removed need for *_dev.lst files. Enforced short names for slot card devices. Updated validation, romverify and listxml output accordingly. . LISTXML . Fix for device_ref tag in listxml . Appended to XML info about devices which can be optionally mounted to slots. . Added a description attribute to slotoption to show which devices can be mounted in each slot. . Added to XML info of cpus/inputs/image/slots which are relative to devices (e.g. CPUs or Dipswitches in the device itself). . Tags of elements directly attached to the root_device do not display anymore the root colon (slot tags were already behaving in this way); elements attached to optional devices use tags starting with colon (to be interpreted as a relative tags which gets appended to the device tag, when such a device is selected in a slot). . Modified when necessary output routines to pass a root_device and a root_tag as parameters, in order to simplify output of relative devices and avoid duplicated code. . Updated DTD according to the new elements and attributes. These changes allow frontends to know in advance how drivers can be configured through the various slot options (by matching option descriptions with device descriptions), without the need to run -lx with the various slot combinations. This is especially of use if a device adds e.g. dipswitches or image devices (like additional floppy drives or additional slot expansions), but also if one wants to know e.g. how many sound channels a soundcard would add to a pc driver, or which kind of screen parameters would be added by a specific choice of video card. . Additional cleanup for device info output made possible by Micko's work + renamed slot "shortname" attribute to "devname" to make clear it is the name of the device to be mounted. Made consistent the loops through subdevices. . Slightly modified verifyroms to handle properly no-roms devices verification (wrong report message was output) (clifront.c) . Be more rigorous about parsing invalid hashes. Report them only through validity checking. If detected normally, do a best-effort attempt so that things like CRC(1) SHA1(1) can be used to force reporting of proper checksums. . Fixed -romident to work with .7z archives. verifyroms looks in parent sets again. The bug caused clone sets to be listed as bad when you didn't have them as it thought every rom was shared with the parent. . Fixed order of timer init and save state . ROM label adjustments to match discussed format . Added 'IDE Hard Disk' and 'IDE Baseboard' device - Compiling: Fixed ld tools compilation (ID 04697 and ID 04698) - Debugger: Fixed debug asserts (emu\info.c + input.h) 0.145u1 - New games: Diet Family, Oozumou - The Grand Sumo (DECO Cassette) and Winning Run - New Working games: Kung-Fu Roushi, Winning Run 91 and Winning Run Suzuka Grand Prix - New Non-Working games: Dynamite Baseball, Initial D Arcade Stage Ver. 3 (Export) (GDS-0033), Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000), Quickshot (Maygay) (PROCONN) and Soul Surfer (Rev A) - New clones: Eyes (bootleg set 1), JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927), JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927, NO CD), JoJo's Bizarre Adventure (Euro 990927, NO CD), Space Invaders Part II (Brazil) and Wyvern Wings (set 2) - New Cheat.dat: http://cheat.retrogames.com/ - 68000 CPU . Fixed register in m68000/m68kcpu.h . Fixed FSGLMUL/FSGLDIV plus some minor MMU improvements - 68040 CPU . MMU improvements . Teach fsave to pee on the correct side of the tree . Added correct idle frames . Show the correct virtual map . Slightly less stubby CINV (68040 logerror) - I386 CPU . Fixes for DOS4GW 1.97 (MESS) . Trap flag support . Small x87 fix (i386/x87ops.c) - Samples sound . Rewrote SAMPLES as a modern device. Updated all callers. FLAC reading is now done using the FLAC wrapper. There is now a samples_iterator class to centralize the logic for handling the sample list walking. . Redid the cheesy half-baked votrax device since it relied on some old samples-based handling. Until we have a real implementation, it would be good to route the various clients through the current one to at least wire it up properly, even if it just plays samples in the end. Will look into that shortly. - CD Audio . Added new CHD codec: CD-FLAC which knows how to shuffle CD data to more optimally use FLAC. Updated flac wrapper to implement a tell callback so FLAC can tell us how much we've decoded. Updated chdman to use CD-FLAC codec in preference over the existing codecs for CDs by default. . Fail initializing the CD-FLAC codec if the hunk size is not CD-compatible . Centralize detection of existing output files. Add detection (require --force) for extracted files as well. Move checks outside of try/catch so that the files are not subsequently deleted. - 8237 DMA: Fixed uninitialized variable - I8251 UART: Added DSR input readback - 8259 PIC: Fixed PIC8259 set_irq_line and pic8259_w, this should fix some pic issues. When using level trigger mode we are taking current lines on EOI. - MC146818 RTC: Removed previous Apollo hack (MESS), fixed 32768 Hz UIP and updated MC146818. - Flash ROM: Support for AMD 29F040 chip - IDE: Now support two slots, currently used devices are made as slot devices. Note that rom regions for disks are now changed in order to support multiple connected drives in cases needed. - SCSI: New modern object-oriented bus-signals-available SCSI implementation - VGA . Fully rewritten VGA gc registers from scratch . Various changes, preliminary implementation of RGB888 (still not working, at all) . Fixed vram size, fixed regression with at486 (MESS) and makes Alien Breed (MESS) vertical scrolling to work properly. . Latched pel shift register in VGA mode for Alien Breed (MESS), H scrolling is still jerky for some reason. . Added crtc protection mechanism . First batch of CRTC clean-up . Changed ET4K file name & ISA name properly . Nuked crtc.data array from standard VGA functions . Preliminary hook-up for proper vblank calculation . Improved ET4000 RGB8 detection . Work on ET4000 16bbp and 24bbp video modes - SVGA . Some SVGA specific fixes. Hooked up dummy functions for S3 SVGA card. First batch of S3 SVGA support. . Added RGB16 for S3 video card, used by Grand Theft Auto (MESS) title screen. . Added basic wrapper for Diamond Multimedia (Cirrus Logic based) ISA SVGA. - Cassette: Fixed error when starting with a blank tape already loaded. Making sure tape stops at end when playing (MESS: Apple1 for example). - Floppy: Added new formats to imagedev/floppy.c + formats/pc_dsk.c - Slots . Fixed slot devices (emu\dislot.c, mconfig.c and validity.c) . Made aliases for image devices without index, make some exotic cases to work better. Moved software checks in front of other checks in clifront in order to make things more consistent with behaving when cmd line parameters are sent, also added emuopts support to add newly created options if some is added with adding software item in slot. . Added possibility to see subslot devices when they are added from softlist, also removed "const" from get_default_card_software, that enable better usage and no need for it to be like that. - aleck64.c . Fixed an issue with text being missing in some Aleck 64 games . Various N64 stability fixes: Modified VI_V_INTR_REG and VI_V_CURRENT_LINE_REG actually be treated as half-lines, not full lines. Fixes Rampage: World Tour video. Modified code to interrupt at the line specified by VI_V_INTR_REG, rather than a fixed 60Hz vblank interrupt. Doubled the number of available span structs on the stack, fixes crashing in Mario Kart 64, Star Fox 64, and probably others. . Partially fixed PIF access, several more games recognize cart SRAM, cart FlashROM, cart EEPROM and controller paks. Among others, Rampage: World Tour (MESS) now properly saves its memory pak data properly. . Reduced memory usage in the N64 driver . Hooked up 64DD RTC and interrupts in the N64 code. Please insert disc. . Added warm reset support to N64 hardware. Get Jet Force Gemini to boot and Ocarina of Time to boot without crashing: Use bitmap.fill instead of a manual fill when blanking to avoid trashing memory. Return DP start/end/current/status/clock registers at correct window for RSP to see. Clear DP clock when requested by writing the right bit in DP_STATUS_REG. Avoid modifying SP DMA length register during DMA, to return correct reads on SP_RD_LEN and SP_WR_LEN. . Fixed N64 RDP to not try to render a triangle with no spans. . Added polynew.h multithreaded-render support to N64 RDP emulation. Speedup ratios of 1.6x to 2.8x observed. Note: For those interested in that sort of thing, I'm achieving thread safety using the slow-but-sure method: Mirror all main-thread-mutable and render-thread-readable data into a per-span structure. If anyone has any suggestions on how better to sync per-scanline state than what I'm currently doing, I'd be all ears. The renderer is now pretty darn fast, but every little bit counts. - cps3.c: Documentation update and white space alignment - megatech.c: Fixed cart region names. This fixes crash after cartridge selected in file manager menu (ID 04668). - model2.c: Deleted comments on some Model 2 games added recently which are actually 2B-based. - n8080.c: Fixed missing sfx in Space Launcher (ID 04666), Helifire and Sheriff - namcos2.c . Writing a C148 IRQ priority register now clears the prior interrupt state. This fixes Dirt Fox freezes immediately after the race start countdown (ID 02580). . Fixed titlescreen in Burning Force (The titlescreen should include a zooming "Burning Force" and some small sprites scrolling by) (ID 03372) - namcos21.c: Writing a C148 IRQ priority register now clears the prior interrupt state. Winning Run 91 and Winning Run Suzuka Grand Prix are playable now. - namcos23.c: Documentation update - nmk16.c: Priority fixes - sms.c: Two completely different definitions of class sms_state being linked in was never going to end well - stv.c . Removed unneeded include and confusing static . Make stv_add_blend return a MAKE_RGB and fix sprite shadow (was shifting alpha bit into rgb, intensifying red was obviously wrong). . Like stv palette, use pal5bit for 5bpp pixels. . Get rid of unneeded true/false vars t_pen and tw . Mask out alpha bits (video\stvvdp2.c). Thid fixed graphic corruption in all ST-V sets (ID 04655). . Fixed cart region names. This fixes crash after cartridge selected in file manager menu (ID 04668). - taitogn.c: Fixed regression. Deleted dynamic_array buffer only if allocated (lib\util\coretmpl.h), this fixes crash. - tsamurai.c . Fixed clocks and audio pitch . Changed Joystick to 8-way in Lady Master of Kung Fu and VS Gong Fight - 30 Test (Remake) . Removed dummy rasterscreen . Redone layout, resembling the cabinet more. . Made artwork clickable and added comments to layout - AGEMAME: Added missing roms to j6popoli, m4sinbd, pr_ftwhl, pr_ttrai and sc2prom - Bounty Hunter, EZ Touch: Updated CHD to version 4 - Buena Suerte: Changed 'Good Luck' to be clone of Buena Suerte due to rom comparisons - Cool Riders: Minor improvements to the text layer. Kept all the functionality from the current code & added a few minor things. You can see the color and placement of the text strings as colored blocks, and if you uncomment lines 471-476, the game's text is printed out to the terminal as ASCII. Given the ability to "read" the test mode, the rest of the inputs and sound can probably be hooked up. Also, the ROMs all seem to pass the check. Still trying to decode the tiles based on the patent. - Diet Family: Added correct speed up - Dynamite Baseball 97: Minor cleanups and fixes. Properly renamed 4 MASK ROMs to match PCB manual. - Killer Instinct / 2: Fixed regression, thing is update of features should be done on different place now. - Kung-Fu Roushi . Added Game Panel layout . Fixed inputs and MSM5205 sound (Game now playable) - Radical Radial: Lowered the 6MHz of the NSC8105 sound CPU down to 3072000 Hz. This fixes broken DAC shot sound (ID 04672). - Springer: Fixed rabbit colors (ID 04673) - Super Bubble Pop: Added missing YM2610 sound roms - Steel Talons . Fixed controls (added 2nd Player) . Removed the MSP speedup hack which was causing the game to reset at certain points (ID 04675). - Wyvern Wings: Added speed ups - Yosaku To Donbei: Fixed player control (ID 04685) - Input port: Made the key/paste buffer auto-expand when it becomes full (emu\ioport.c). This makes it possible to paste larger BASIC programs for instance (MESS). - Layout: Tweaked layout in Avalanche, Circus and Space Invaders II - Dipswitch fixes in 30test and kungfur - Renamed (dynabb) to (dynabb97), (jojoba) to (jojobaa), (jojoban) to (jojobaan), (jojobane) to (jojobaane) and (winrun) to (winrungp) - Description changes of Casino Beaver Las Vegas (Global) (EPOCH, set 1/2) (ID 04690), DECO Cassette games (all), Dynamite Baseball 97 (Revision A), Eyes (bootleg set 2, decrypted), How Big's Your Rock? (Global) (Scorpion 2/3) (ID 04688), Kung-Fu Roushi, Mr. Money (Qps) (ID 04683), Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1-5) (ID 04680), Samurai Nihon-Ichi (set 1/2 + bootleg, harder), The Phoenix Knights (Global) (EPOCH) (ID 04689), Who Wants To Be A Millionhare? (Global) (EPOCH) (ID 04687), Wyvern Wings (set 1) and Yabba-Dabba-Dough (Qps) (ID 04682) - MAME . Major CHD/CHDMAN update . The CHD version number has been increased from 4 to 5. This means any diff CHDs will no longer work. If you absolutely need to keep the data for any existing ones you have, find both the diff CHD and the original CHD for the game in question and upgrade using these commands: rename diff\game.dif diff\game-old.dif and chdman copy -i diff\game-old.dif -ip roms\game.chd -o diff\game.dif -op roms\game.chd -c none . Specifics regarding this change: Defined a new CHD version 5. New features/behaviors of this version: Support for up to 4 codecs; each block can use 1 of the 4. New LZMA codec, which tends to do better than zlib overall. New FLAC codec, primarily used for CDs (but can be applied anywhere). Upgraded AVHuff codec now uses FLAC for encoding audio. New Huffman codec, used to catch more nearly-uncompressable blocks. Compressed CHDs now use a compressed map for significant savings. CHDs now are aware of a "unit" size; each hunk holds 1 or more units (in general units map to sectors for hard disks/CDs). Diff'ing against a parent now diffs at the unit level, greatly improving compression. . Rewrote and modernized chd.c. CHD versions prior to 3 are unsupported, and version 3/4 CHDs are only supported for reading. Creating a new CHD now leaves the file open. Added methods to read and write at the unit and byte level, removing the need to handle this manually. Added metadata access methods that pass astrings and dynamic_buffers to simplify the interfaces. A companion class chd_compressor now implements full multithreaded compression, analyzing and compressing multiple hunks independently in parallel. Split the codec implementations out into a separate file chdcodec.* . . Updated harddisk.c and cdrom.c to rely on the caching/byte-level read/ write capabilities of the chd_file class. cdrom.c (and chdman) now also pad CDs to 4-frame boundaries instead of hunk boundaries, ensuring that the same SHA1 hashes are produced regardless of the hunk size. . Rewrote chdman.exe entirely, switching from positional parameters to proper options. Use "chdman help" to get a list of commands, and "chdman help " to get help for any particular command. Many redundant commands were removed now that additional flexibility is available. Some basic mappings: Old: chdman -createblankhd to New: chdman createhd -o -chs ,, . Old: chdman -createuncomphd ... to New: chdman createhd -i -o -c none ... Old: chdman -verifyfix to New: chdman verify -i -f. Old: chdman -merge to New: chdman copy -i -ip -o . Old: chdman -diff to New: chdman copy -i -o -op . Old: chdman -update to New: chdman copy -i -o . . Added new core file coretmpl.h to hold core template classes. For now just one class, dynamic_array<> is defined, which acts like an array of a given object but which can be appended to and/or resized. Also defines dynamic_buffer as dynamic_array for holding an arbitrary buffer of bytes. Expect to see these used a lot. . Added new core helper hashing.c/h which defines classes for each of the common hashing methods and creator classes to wrap the computation of these hashes. A future work item is to reimplement the core emulator hashing code using these. . Split bit buffer helpers out into C++ classes and into their own public header in bitstream.h . Updated huffman.c/h to C++, and changed the interface to make it more flexible to use in nonstandard ways. Also added huffman compression of the static tree for slightly better compression rates. . Created flac.c/h as simplified C++ wrappers around the FLAC interface. A future work item is to convert the samples sound device to a modern device and leverage this for reading FLAC files. . Renamed avcomp.* to avhuff.*, updated to C++, and added support for FLAC as the audio encoding mechanism. The old huffman audio is still supported for decode only. . Added a variant of core_fload that loads to a dynamic_buffer . Tweaked winwork.c a bit to not limit the maximum number of processors unless the work queue was created with the WORK_QUEUE_FLAG_HIGH_FREQ option. Further adjustments here are likely going to be necessary. . Fixed bug in aviio.c which caused errors when reading some AVI files . Move all-0 detection to the write path. Use hunk_info on the compression path to detect whether the write went through (util/chd.c + tools/ldresample.c). . Fixed blocksize for FLAC encoder . Update CHD error list in chd.c . Remove 100% redundant and silly list of error strings in harddriv.c and chd_cd.c . Allow generic_pulse_irq_line to be longer than 1 cycle. Changed all callers from generic_pulse_irq_line(x, y) to generic_pulse_irq_line(x, y, 1). . Added windows implementation of pseudo TTY access functions over pipes . Added LZMA codec and .7z container support . Fixed -romident to work with .7z archives . Added support for simple text alignment in layout files, defaulting to center eg. align to the left of the textbox like this: . . Removed redundant hashing code, use hashing.h instead. Removed overabstraction in hash.h; it's ok to hard code the two types of hashes we have. Even adding another one would not be very difficult. . Changed sample pack names for alphamc07 -> equites and aristmk4 -> 3bagflvt to match up sample to an actual setname. Started making some individual rom name adjustments, assisting those who decide to use parent-only romset merging, a more likely event now with added .7z solid archiving. . Fixed slots output in listxml - SDLMAME . Added cmdline option shortcuts for waitvsync -> vs and syncrefresh -> sr . Updated SDL os-core to compile against stock SDL-2.0 . The SDL team has moved from 1.3 to 2.0. At the same time, changes were made to allow SDL1.2 and SDL2.0 to coexist. All SDL2.0 include files are now in /usr/include/SDL2. . Added sdlinc.h to avoid having tons of #ifdef... #include in the code. . Scalemode is no longer a per-window setting . Fixed a bug in YUV rendering . Use SDL_GetClipboard (SDL2.0) . Updated README_SDL20.txt. Currently, SDL 2.0 is only supported on *nix. Volunteers welcome. . Added support for (track)balls to osd\sdl: To test it, I used my Logitech Trackball (normally a mouse) and configured it as a joystick. Prerequisites: Locate your Linux input device for the trackball. In my case that's /dev/input/event3 "sudo chmod a+r /dev/input/event3" and "export SDL_JOYSTICK_DEVICE=/dev/input/event3". This forces SDL to recognize the trackball as a input device. -mame64 missile -nomouse -w. Configure the trackball axis. Make sure the mouse pointer is outside the window and window still has keyboard focus - most modern window manager should support this. Quit and restart with -mame64 missile -mouse -now to hide the mouse. Voila. Works. . Fixed testkeys to work with SDL2.0. Keymaps can now contain SDL1.3 and SDL2.0 mappings. Updated km-de.txt as an example. - Compiling . Some cleanup of some observed #include redundancy from source files which use emu.h . Fixed compile on 4.6.2 (util/bitstream.h + chd.c) 0.145 - New games: Boong-Ga Boong-Ga (Spank'em!) - New Working games: Street Games II - New Non-Working games: Bounty Hunter (GCTech Co., LTD), Chess Challenge 2, Dungeon Explorer (Tourvision PCE bootleg), EZ Touch (v116 China), Gone Fishing 2, Print Club Goukakenran (J 991104 V1.000), Print Club Kome Kome Club (J 970203 V1.000), Print Club Olive (J 980717 V1.000) and Unknown BMC Poker Game - New clones: Hyperspace (bootleg of Asteroids), Print Club 2 '98 Autumn Ver (J 980827 V1.000), Print Club 2 '98 Spring Ver (J 971017 V1.100), Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100), Tekken Tag Tournament (Asia, TEG2/VER.C1, set 1), Ultimate Arctic Thunder, Warriors of Fate ('sgyxz' bootleg) and X-Men (4 Players ver ADA) - New drivers: bmcpokr.c, bntyhunt.c and shtzone.c - I386 CPU: Fix for protection mode faults, makes 586 based things to work again. - UNSP CPU: Fixed disassembly of far jump instructions - ES5503 sound: Cleared all ES5503 oscillator params on reset. This fixes Moonquake exception in debug build (ID 04636). Note: I couldn't reproduce the crash reported under any build on any OS, but Valgrind indicated out-of-bounds reads without this change and none with it. - Samples sound . Remove hardcoded ".wav" sample extensions from within drivers . Update samples.c to check for both .flac and .wav extensions when loading a sample . Made sample loading failure a bit more verbose (various zips contained 0 byte samples, I assume to keep clrmame happy or something) . Fixed memory allocation with 8-bit flac samples . WAV is not (yet) deprecated, rm warning that made it sound like it is . Fixed -verifysamples. - Centronics interface: Did centronics implementation in C++. Implemented centronics as slot device and file printer as default output. - CHD: Fixed error where FLAC was encoding 4 times too much data (samples vs. bytes) - MSM6242 RTC: Added work-around for MT04656 bug (Various Sets: "Timer Error" shows before start of game each time, showing odd time during setting). - PLA: Added PLS100 (82S100) PLA emulation which utilizes a binary JED fusemap - SCSP sound: Fixed master detection (coolridr, model2.c, model3.c, stv.c) - Slots: Proper fix for issues with slots, removed old fix too. - VGA . Implemented preliminary support for Trident SVGA cards, fixes graphics in California Chase loading screen. . Added blinking to text modes, fixed a color attribute register bug. . Fixed double scan in text mode . Fixed a bunch of errors as seen in vgatest.exe . Fixed reading in read mode 1, might fix Street Games. . Added ID . Fixed a VGA crash - actfancr.c: Fixed background tilemap size, corrects level boss bg in Act-Fancer. This partially fixed the misplaced/missing graphics (ID 04585). - aleck64.c . Start of mass variable renaming / documentation in the RDP core . RSP Opt: Shunt around the core memory system for RSP instruction / data fetches . DMA Opt: Shunt around the core memory system for SP and PI DMA transfers . RDP Opt: Replace 2D switch statement with function table for texel fetching. Replace 3x array lookup for 16-to-32 pixel expansion with 64K LUT. Remove setters / getters in favor of direct member access. Mario 64 saw a speedup from 34.96% to 51.80% in -str 60 -mt on my 3.2GHz i7 and Tetrisphere from 30.75% to 43.05%; global speedup of 1.4x to 1.5x is expected. . Fixed memory stomp in latest N64 video (video\n64.c and rdpspn16.h) and DK64 crash (video\rdpspn16.c) - btime.c: Fixed cocktail offset in driver. This fixes misplaced graphics for player 2 in cocktail mode in all sets (ID 04648). - crospang.c, esd16.c, nmg5.c, tumbleb.c: Converted driver to use generic DECO sprite implementation. Several features are included to support the various clone / bootleg chips derived from this device, it appears to have been a popular base for Korean developers (much as the Tumble Pop code was). - deco32.c . Slight fix to the way Captain America rasters were handled . Correct loading for Dragon Gun video data, identified as standard DVI data (unsurprising, game has a DVI logo). - dkong.c: Added sprites wraparound (eg. Donkey Kong 3 when clearing stage 1) - firebeat.c, twinkle.c: Converted RTC65271 to a modern devices - maygay1b.c: Removed TAB character in game descriptions (m1coro11n, m1coro11np, m1coro12n, m1coro12np, m1coro21n, m1coro21np, m1coro22n, m1coro31p, m1coro32n, m1coro32np) (ID 04650). - model1.c . Added skeleton device for Z80 version of the MPEG sound board. No playback, just running the Z80 . Fixed ymz770 rom loading in Star Wars Arcade - neodrvr.c: Fixed AES (MESS) regression, region names are with leading ':' - scregg.c: Timing improvements from BurgerTime driver. Fixed VSync and visible area in Dommy - segaorun.c: Minor doc update - stv.c . Fixed master SCSP detection. This fixes all sets in the driver do not start or play correctly (ID 04654). . Fixed regression in stv_vdp2_draw_line and stv video regression. - tourvis.c: Improved inputs - Support for Shooting Zone System BIOS - Laser Disc . First pass of cleaning up LDPLAYER to allow for building . Fixed Cliff Hanger TMS9928a depends on the screen parameters matching output exactly, but for LD games it doesn't since they are externally clocked (ID 04455) (ID 04607). - Atari games: Converted ATARIVGEAROM to a modern devices (asteroid.c, bwidow.c, bzone.c, centiped.c, galaga.c, runaway.c, tempest.c) - Agress: Agress has half the work RAM of Block Out and tests that it mirrors. This fixes the black screen (ID 04628). - Animal Basket: Fixed rom region name in Animal Basket. This fixes crash before OK (ID 04622). - Boogie Wings: Converted game to generic sprite device plus added manual mixing. NOTE: Mix the 2 sprite planes with the already rendered tilemaps. If we implement tilemap blending etc. too we'll probably have to mix those in here as well. This is just a reimplementation of the old priority system used before conversion but to work with the bitmaps. It could probably be simplified / improved greatly, along with the long-standing bugs fixed, with manual mixing you have full control. Apparently priority is based on a PROM, that should be used if possible. - Cabal: Fixed 'Bonus Lives' dipswitch (ID 04647) - California Chase . Hooked up inputs, game is now playable (still needs the user to launch boot.exe first) . Implemented preliminary support for Trident SVGA cards, fixes graphics in game loading screen. . Fix for protection mode faults, makes 586 based things to work again. This fixes assert while doing initial memory test (ID 04661). . Changed game RAM from 32 to 64M . Added sound and idle skip and improved inputs - Double Dragon II: Fixed wrong dipswitch settings (ID 04626) - Oriental Legend Special Plus: Fixed assert in debug build (ID 04632) - Photo Play 2000: Dumped missing HDD - Street Games II: Latest VGA changes made this to fully work apparently - Super Bubble Pop: Added a quick patch - Super Chase: Added proper widescreen layout - Terra Force: Fixed graphics corruption on both sides in debug mode of clones Terra Force (bootleg) and (Japan bootleg with additional Z80) (ID 04635) - Toukidenshou - Angel Eyes: Added note about garbage sprites on PCB in clone (VER. 960427) (ID 02699) - Truco-Tron (Reverse engineering) . Identified and added EF6821P PIA for I/O . Identified and added the CRTC as HD/UM6845 . Identified a Maxim MAX691 and hooked watchdog/reset functions based on the PIA line where is tied . Hooked others minor related things . Identified a Darlington Array ULN2003 . Added correct clocks for main crystal, CPU and CRTC through #define. . Improved inputs/jumpers with PCB traces . Added technical notes - Dipswitch fixes in cabal, calchase, ddragon2, tourvis.c and truco - Fixed rom names in abaseb2, namcos12.c and stv.c - Renamed (tektagtac) to (tektagtac1) - Description changes of Asterock (bootleg of Asteroids), Photo Play 2000 (v2.01) and Tekken Tag Tournament (Asia, TEG2/VER.C1, set 2) - MAME . Fixed tilemap viewer. Tilemaps now use the bitmap's raw palette instead of machine->pens to lookup RGB32 values if the palette is present (it is on all screen bitmaps). Today these are identical, but it's part of a long-term effort to move away from a global palette and allowing each bitmap or screen to have their own if that is preferred. (ID 04644) . Fixed game info screen . Fixed -verifysamples . Removed set_current, in case someone decides to use them again (emu\device.h) . Removed LEGACY_MEMORY_DEVICE and LEGACY_NVRAM_DEVICE support in core, since nothing is using it anymore. . Fixed regression on softload item load using menus. Do the softlist validation only on validate command. . Fixed crash when loading from softlist with -cart/-flop/-cass switch . Workaround for softlist images ending up with the wrong basename. this fixes problems with NVRAM and snap handling in softlist. . Guess at a fix for clickable artwork - Compiling: Fixed GCC 4.6+ compile - Debugger . Show save state items in debugger memory windows (ID 03444) . Fixed device search in the debugger to work like a normal device search 0.144u7 - New games: Steal See (& Get Land) - New Working games: Toy Land Adventure - New Non-Working games: Arcana Heart, Ichi Ban Jyan, Mushiking The King Of Beetle 2K3 2nd, PoPo Bear and Super Bubble Pop - New clones: Battle Arena Toshinden 2 (USA 951124), Carrier Air Wing (bootleg with 2xYM2203), Flying Shark (bootleg, set 2), Fruit Cocktail 2 (080909 World), Fruit Cocktail 2 (081105 World), Fruit Cocktail 2 (081106 Russia), Fruit Cocktail 2 (bootleg, 081105, banking address hack), Fruit Cocktail 2 (bootleg, 081105, banking address hack, no credit limit), Fruit Cocktail 2 (bootleg, 081105, banking address hack, payout percentage 70), Fruit Cocktail 2 (bootleg, 081105, LOTOS FR02), Rapid Fire v1.1 (Build 238) and Virtua NBA (prototype) - New drivers: ichiban.c and popobear.c - New/updated artworks (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here): armora, decocass.c, dowild, gravitar, ikari, mk, mk2, neodrvr.c, orbit, pdrift, starhawk and superman. - I386 CPU . Rewrote i386 x87 emulation . Use SoftFloat arithmetic functions . Implemented tag word updates . Implemented status word/exception flag updates . Implemented stack underflow/overflow behaviour . Use CRT trig functions for sin/cos/tan until to figure out why the SoftFloat functions produce daft values . Various protection mode fixes . Added 32-bit operand size version of SMSW . Major update to segment limit and protection checking . BTR and page fault fixes . Added basic implementation of FIST and FBLD FPU instructions. . Fixed BSR/BSF and CMPS based on test-i386 output . Fixed STR and SLDT instructions . Fixed stack segment limit checking for IRET and RETF instructions . Added segment register checks for LDS/LES/LFS/LGS instructions . Correct exception error codes that returned a segment selector to include the local/global bit . Reworked stack segment limit checks to add basic support for expand-downHEADgit-svnmaster segments, and added limit checks to PUSH and POP. . Made stack limit checks better handle the difference between 16 and 32-bit stacks in IRET and RETF . Stopped IOPL from being changed by IRET when CPL is zero . Fix for JCXZ instruction. Fix for limit wrap and selector 0 in the LDT. . Added more privileged instruction checks, divide by zero traps. Further page fault work. . Windows 3.1 can now run in 386 enhanced mode (MESS) - M4510 CPU: Initialize the input callback too - OKI6295 sound: Don't refresh the stream during post_load, that makes the core die. Don't save-state the "was bank installed" flag and everything Just Works. This fixes use of save states in all sets using OKI6295 eventually crashes MAME upon loading (ID 04268). - 6522 VIA . Improved serial input emulation . Shift in under o2 or t2 control generates clock on cb1 - DECO 52: Converted Boogie Wings, Lemmings, Rohga, Schmeiser Robo, Thunder Zone/Desert Assault and Wizard Fire to use generic DECO sprite implementation. - IDE controller: Fixed regression and clean it a bit - IM6402 UART: Added Intersil IM6402 UART emulation - NES PPU: Converted NES PPU to be a modern device (cham24, famibox, multigam.c, playch10.c and vsnes.c) - NVRAM: Fixed file naming - SETA video: Flush ram with $FF (video\seta001.c) - FLAC . Added FLAC (lossless audio) codec support plus experimental hooks in samples and chdman. . Bumped up CHD-CD hunk size to get better compression ratios on both zlib and flac . Changed the way FLAC compiles so that it works like other external libraries, and also compiles successfully for MSVC builds. . Disable -createcdflac for now. The CHDs produced are not compatible with existing v4 CHD readers, so I don't want these out in the wild. We will need a version bump to add this support properly. I'll tackle this next (after fixing recent regressions). - Floppy . Added floppy type constant (3.5 SDD) . Do specific UI handling . Added DMF support in pc_dsk . Libertarian relicensing (floppy.c needs an ok from micko, did I forget anything?) - CHD: Fixed disk loading so that it handles full region tags (emu\romload.c). Fixes laserdisc and hard disk based games falling over. - PC hardware . Tseng Labs VESA support . Support for CGA emulation for VGA . Fixed VGA and VGA Double Scan / Maximum Scan Lines condition, and removed a bunch of kludges. . First attempt at adding proper VGA refresh rates . Some VGA cleanup and refactoring and exposing read/write handlers of pc_vga . Fixed VGA video . Fixed CGA port find regression . Avoid a freeze when the VGA crtc is not initialized faster than light . Fixed pc_vga start address in text mode . Major overhaul of VGA memory handlers, added monochrome emulation and fixed text banking while at it. . Fixed VGA memory map writes . Fixed VSync in California Chase, midqslvr.c, PhotoPlay, Paint & Puzzle, Queen?, Savage Quest and X Tom 3D - Further Stepper clean-ups (bfm_sc1.c, bfm_sc2.c, bfmsys85.c, jpmimpct.c, jpmsys5.c, maygay1b.c, mpu2.c, mpu3.c, mpu4.c and mpu4vid.c) - aleck64.c: Fixed all sets driver crashed before OK (ID 04612) - cave.c: Fixed segfaults in various places; sprites clipped in middle of screen in multiple sets (ID 04610) - chihiro.c, cps3.c, konamigv.c, ksys573.c, naomi.c, taitogn.c and triforce.c: Correct disk/GDROM prefix to make games boot again - cps1.c: Fixed U.N. Squadron and other games with OOB tiles - cps1.c and toaplan2.c: Fixed strange behavior while single frame stepping (ID 04393) - gottlieb.c . Upgraded driver to render RGB32 to fix laserdisc overlays . Improved out-of-bounds pixel detection helper . Fixed missing and/or corrupted graphics in mach3 and cobram3 (ID 04606) - hng64.c . Move screen update to happen prior to calling the vblank callbacks. This fixes missing 3D graphics in all HNG64 sets (ID 04638). . Fixed crash after OK in debug mode (ID 04422) - konamigx.c . z8 & p8 were not being set in KonamiGX zdrawgfxzoom32GP . Fixed bad assumption by the (pre)GX video mixer - naomi.c: Setting all Atomiswave games back to NOT_WORKING; a regression version would be good to know - pluto5.c: Added technical notes about clocks, EPROM config and addresses/data scrambling for different EPROM types on 16-bit mode. - taito_f3.c: Fixed bad assumption that rowpixels of two separate bitmaps are guaranteed to be the same. This fixes severe graphics corruption in all sets (ID 04605). - Bells & Whistles: Fixed missing graphics (ID 04624) - Charlie Ninja: Fixed little graphic garbage (ID 04508) - Champion Super 3: Fixed exception after OK with debug build (ID 04643) - Chuka Taisen: Fixed garbage sprites on the left side (ID 04637) - Cliffhanger - Edward Randy: Fixed missing clouds gfxs (ID 03761) - Crypt Killer: Fixed SCSI hard disk allocation. This fixes Crypt Killer crashes MAME before it can display the disclaimer (ID 04595). Correct disk prefix to make game boot again. - Funky Ball: Minor input fixes. Fixed MEDIAGX CPU1 clock speed. - Gals Panic S: Fixed (Europe) and clone (Japan) freeze on region information (ID 04611) - Green Beret . Removed unnecessary comments . Emulate soundlatch properly . Improved interrupts and sync interrupts to scanlines anyway (ID 03600) . Fixed Green Beret (bootleg) and added note - Kabuki-Z: Fixed graphic corruption in debug build (ID 04426) - M.A.C.H. 3 and Cobra Command (M.A.C.H. 3 hardware): Fixed missing and/or corrupted graphics (ID 04606) - Pioneer Balloon: Fixed global offset regression (ID 04613) - PoPo Bear . Blitter based update . Tafoid added documentation (pinout/dips/chip ID) based on PCB picture and manual - Rollergames: Fixed graphics corruption on right side (ID 04633) - Sky Raider and Top Gunner: Fixed assert in debug build (ID 04629) (ID 04630) - Sliver . Added libjpeg (JPEG image encoding, decoding and transcoding) . Converted Sliver to decompress pictures on the fly - Strikers 1945: Fixed missing sprites in clone (Hong Kong, bootleg) - Super Hana Paradise: Fixed warning - Time Limit: Mark missing color prom as undumped - Toy Land Adventure: Added missing gfx1 roms (Game now playable) - Turbo Out Run: Verified and correct the Sega Security CPU number (317-xxxx) for one of the two unknown sets - Wheels & Fire: Move screen update to happen prior to calling the vblank callbacks. Solves missing foreground layer in Wheels & Fire and probably a lot more issues (ID 04639). - Splitted 'Code Red Club (Maygay) (M1A/B)' into 'Code Red Club (Maygay) v2.1 (M1A/B)' and clone 'v2.1 (Protocol) (M1A/B)'. Splitted 'Coronation Street (Maygay) (M1A/B)' into 'Coronation Street (Maygay) (M1A/B)' and clones '(Protocol) (M1A/B)', 'v1.0 (Hack 1) (M1A/B)', 'v1.0 (Hack 2) (M1A/B)', 'v1.0 (Hack 3) (M1A/B)', 'v1.1 (Newer) (M1A/B)', 'v1.1 (Newer) (Protocol) (M1A/B)', 'v1.2 (Newer) (M1A/B)', 'v1.2 (Newer) (Protocol) (M1A/B)', 'v1.2 (Newer, G?) (Alternate) (M1A/B)', 'v1.2 (Newer, G?) (M1A/B)', 'v1.2 (Newer, G?) (Protocol) (M1A/B)', 'v2.1 (Multivend) (M1A/B)', 'v2.1 (Multivend) (Protocol)(M1A/B)', 'v2.1 (Newer) (M1A/B)', 'v2.1 (Newer) (Protocol) (M1A/B)', 'v2.2 (Newer) (M1A/B)', 'v3.0 (Hack) (M1A/B)', 'v3.1 (Older) (M1A/B)', 'v3.1 (Older) (Protocol) (M1A/B)', 'v3.2 (Newer) (M1A/B)', 'v3.2 (Newer) (Protocol) (M1A/B)', 'v3.2 (Newer, G?) (Hack) (M1A/B)', 'v3.2 (Newer, G?) (M1A/B)', 'v8.1 (M1A/B)' and 'v8.1 (Protocol) (M1A/B)'. - Dipswitch fixes in ajax.c, baraduke.c, battlnts.c, fastlane.c, funkball, gyruss.c, hexion.c, ironhors.c, junofrst.c, labyrunr.c, megazone.c, mikie.c, nemesis.c, pacland.c, pacman.c, parodius.c, pingpong.c, pooyan.c, rockrage.c, rocnrope.c, scotrsht.c, spy.c, surpratk.c, thunderx.c, timeplt.c, tmnt.c, tp84.c, trackfld.c, tutankhm.c, twin16.c and yiear.c - Fixed rom names in eyeszac and toutrun3 - Renamed (ts2) to (ts2a) - Description changes of Battle Arena Toshinden 2 (USA 951124) Older, Flying Shark (bootleg, set 1), Rack 'em Up! (Pinball) (ID 04615), Radical! (G-1) (ID 04616), Radical! (L-1), Radical! (P-3), Rapid Fire v1.0 (Build 236), Rapid Fire v1.1 (Build 239), The Tower of Druaga and Turbo Out Run (upright, FD1094 317-0107) - MAME . Move devices into a proper hierarchy and handle naming and paths consistently for devices, I/O ports, memory regions, memory banks, and memory shares. NOTE: There are likely regressions lurking here, mostly due to devices not being properly found. I have temporarily added more logging to -verbose to help understand what's going on. Please let me know ASAP if anything that is being actively worked on got broken. As before, the driver device is the root device and all other devices are owned by it. Previously all devices were kept in a single master list, and the hierarchy was purely logical. With this change, each device owns its own list of subdevices, and the hierarchy is explicitly manifest. This means when a device is removed, all of its subdevices are automatically removed as well. A side effect of this is that walking the device list is no longer simple. To address this, a new set of iterator classes is provided, which walks the device tree in a depth first manner. There is a general device_iterator class for walking all devices, plus templates for a device_type_iterator and a device_interface_iterator which are used to build iterators for identifying only devices of a given type or with a given interface. Typedefs for commonly-used cases (e.g., screen_device_iterator, memory_interface_iterator) are provided. Iterators can also provide counts, and can perform indexed lookups. All device name lookups are now done relative to another device. The maching_config and running_machine classes now have a root_device() method to get the root of the hierarchy. The existing machine->device("name") is now equivalent to machine->root_device().subdevice("name"). A proper and normalized device path structure is now supported. Device names that start with a colon are treated as absolute paths from the root device. Device names can also use a caret (^) to refer to the owning device. Querying the device's tag() returns the device's full path from the root. A new method basetag() returns just the final tag. The new pathing system is built on top of the device_t::subtag() method, so anyone using that will automatically support the new pathing rules. Each device has its own internal map to cache successful lookups so that subsequent lookups should be very fast. Updated every place I could find that referenced devices, memory regions, I/O ports, memory banks and memory shares to leverage subtag/subdevice (or siblingtag/siblingdevice which are built on top). Removed the device_list class, as it doesn't apply any more. Moved some of its methods into running_machine instead. Simplified the device callback system since the new pathing can describe all of the special-case devices that were previously handled manually. Changed the core output function callbacks to be delegates. . Wrapped the global_resource_pool into a function in an attempt to ensure it is initialized before anyone that references it. . Rewrote tilemap.c as a C++ class. For now kept the global functions and just inline mapped them to the class. Will do a pass soon to actually update drivers to use the C++ methods directly. Also, the tilemap callbacks are now delegates which should make for cleaner integrating into modern devices and drivers going forward. . Bulk converted most of the tilemap_* calls into method calls. Only thing left is tilemap_create. . Removed support for 4bpp packed graphics. These only manifested for drivers that used GFX_RAW support for 4bpp systems, and yet we had a bunch of extra code to support it. Updated these drivers to do without it and removed all the extra code for supporting it. . Change in minimum -STR before results are shown (emu\video.c) . Move screen update to happen prior to calling the vblank callbacks. Solves missing foreground layer in Wheels & Fire and probably a lot more issues. In fact, most of hap's recent changes to handling things on the falling edge are unnecessary now. . Permit visarea to exceed width/height, and allocate screen bitmaps based on the larger of the two. . Fixed drivers that changed from SCREEN_EOF to SCREEN_VBLANK (ID 04623) . Change device reset so that the resets proceed hierarchically. Added a device_reset_after_children() hook for things that need to wait for the children to finish. Moved calling the driver / machine / sound / video reset callbacks to the after children time, to align more with how it was happening before. . Fixed siblingdevice("") so that it returns the current device and not the owner. siblingdevice now checks for and removes a leading "^" to indicate the owner. This allows "^" to be used to reference the owning device in device callbacks, among other things. . Made codes in the 'input' debugger command case insensitive (ioport.c) . Fixed several rendering issues with artwork, introduced in the recent changes (ID 04604). Also, did a pass through the code to take advantage of new methods available on rectangles. . Fixed disk artwork rendering . tagmap is just a C++ template now. Added iterators to it as well. Updated a few outlying uses. . Completely rewrote the validity checking mechanism. The validity checker is now a proper C++ class, and temporarily takes over the error and warning outputs. All errors and warnings are collected during a session, and then output in a consistent manner, with an explicit driver and source file listed for each one, as well as additional device and/or I/O port contexts where appropriate. Validity checkers should no longer explicitly output this information, just the error, assuming that the context is provided. . Fixed pcap network device search . Rewrote the software_list_device as a modern device, getting rid of the software_list_config abstraction and simplifying things. - SDLMAME: Don't show misleading message for .BDF UI fonts - Compiling . Changes for GCC 4.7 compatibility . Added -Woverloaded-virtual to makefile to catch mismatched overloaded function signatures . Fixed 64-bit GCC compile . Fixed Linux compile (lib\util\tagmap.h) . Fixed 64-bit Intel OS X compile w/latest Xcode (sdl\gl_shader_tool.c) and PPC OS X - Debugger: Don't free device_debug->m_trace from a notifier because the object is already blown by then 0.144u6 - New Non-Working games: Knights of Valour 2 New Legend (V302, China), Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition, Touch de Uno! 2 and Toy Land Adventure - New clones: Eyes (Italy), Gals Panic S - Extra Edition (Europe), Knights of Valour 2 New Legend (V301, China), Knights of Valour: Luan Shi Quan Huang / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN), 3x Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 1 / set 2 / set 3), Oriental Legend 2 (V103, China) and Western Gun Part II - ARM7 CPU . Some ARM7 code reorganization, used a jump table for a small speedup. . Gave ARM mode its own file & cleaned up formatting/indenting - I386 CPU . Made a start at Virtual 8086 Mode. Not fully working yet, though. Fixed an issue where two address or operand size prefixes would cancel each other out. . Fixed high bits in eflags register from being changed by POPF, and VM and IF flags from changing depending on privilege level. . Fixed exception error codes in protected mode . Further work on virtual 8086 mode. EMM386 will now load, but will still die a few seconds later. . Bit more progress towards getting 386 enhanced mode Windows running . Fixed setting of IF flag when interrupts are triggered in virtual 8086 mode . Various fixes to 486 and Pentium eflags from MESS . Beginning to implement page faults (i386/i386.c, i386ops.c and i386priv.h) . Added i386 I/O permissions (i386/i386priv.h) . Reset NT flag on interrupt in V86 mode . Fix for single-precision operations (i386/x87ops.c) - TMS340x0 CPUs: Added independent ind16 and rgb32 callbacks - TI Y2404 sound: Replaced SN76489A sound with Y2404 in Pachifever and Time Pilot '84 (assuming it's identical) - IDE controller: Added support for 2 drives - MC6845 CRT: All video devices are now hard-coded to either ind16 or rgb32 bitmaps. The most notable in the MC6845 which is rgb32, and required changes to a number of consumers. - V9938 video: Reorganized the v9938 device as a modern C++ device. Removed v9938mod.c in favor of template functions directly. - NVRAM: NVRAM custom init delegate are now device_delegates (capbowl.c, itech32.c and merit.c) - aleck64.c . Various N64 changes . Converted AI / VI / MI / RI / SI / PI into a modernized device . PI DMA now takes place after an appropriate delay to simulate transfer time . SP DMA no longer rejects transfers of 0 bytes (should transfer one 8-byte word) - deco32.c: Prevent possibility of out of bounds array access (cpu/h6280/h6280ops.h), this fixes a crash in driver - pgm.c . Optimized video rendering for a speedup in some video heavy cases . Reinstated the old KOV protection simulation given that the ARM still hasn't been dumped . Fixed uninitialized variable that could lead to odd sprites . Added prot rom to Knights of Valour 2 Plus . Fixed rom loading and added Yamaha YMZ770 sound in Oriental Legend 2 - toaplan1.c: Fixed VSync (Guru's measurement) - vamphalf.c . Demoted Mr. Kicker to not working again. There is a serious bug with the NVRAM handling (possibly due to a core bug) which causes the game to break entirely if you get a high score and it rewrites NVRAM. . Added correct speedup to Toy Land Adventure. NOTE: Game is currently missing graphics roms which makes it non-working - zn.c . Redumped and fixed MASK ROMs in Battle Arena Toshinden 2 and clone (Japan 951124) to match real PCB . Minor fixes - Laser Disc . Reorganized the laserdisc base driver and all the laserdisc drivers as modern C++ devices, cleaning the code up considerably. . Merged ldsound device into the laserdsc device since modern devices are flexible enough to handle it. . Fixed missing Laserdisc video from CHD and performance problems in Fire Fox (ID 04306) . Replaced 'Laserdisc Analog' sound with Pioneer LD-V1000, Pioneer PR-7820, Pioneer PR-8210, Phillips 22VP931, Phillips 22VP932, Simutrek Modified PR-8210 and Sony LDP-1450 - PC hardware: Fixed a bug with VGA mask line compare - Beam Invader: Added color overlay - Champion Boxing: Fixed game unable to navigate Test Mode menu (ID 02234) - Fire Shark: Fixed inputs aren't read consistently (ID 04189) - Locked 'n Loaded: Fixed access violation after OK (ID 03568) - Reaktor (Track & Field conversion): Fixed missing sound (any access (not just write) to c000 initiates a soundwrite) (ID 03685) - Red Alert: Changed 'WW III' to a clone of Red Alert - Super Dodge Ball: Added MCU rom that was read out by Dr. Decap over a year ago, not emulated yet. - Taxi Driver: Marked color prom as undumped - Turbo Sub: Keep Clang (AM29116-based Real Time Image Processor) happy while removing any ambiguity - Vimana: Fixed game suffers major slowdowns (ID 04601) - Renamed (beaminva) to (pacominv), (eyeszac) to (eyeszacb), (galpanis) to (galpanisj), (mpr8210) to (simutrek), (saeuro) to (spaceaceeuro), (spaceaa) to (spaceacea) and (spaceaa2) to (spaceacea2) - Description changes of Beam Invader, Eyes (bootleg), Eyes (US set 1), Eyes (US set 2), Operation: Thunder (ID 04597), Pacom Invader, Pennant Fever (L-2), Pennant Fever (P-3) (ID 04600), Pin-Bot... (ID 04602) and The Party Zone... (ID 04599) - MAME . Major bitmap-related changes throughout the system (There are almost certainly some regressions lurking. Let me know if something seems busted) . Bitmaps are now strongly typed based on format. bitmap_t still exists as an abstract base class, but it is almost never used. Instead, format-specific bitmap classes are provided: bitmap_ind8 == 8bpp indexed bitmap_ind16 == 16bpp indexed bitmap_ind32 == 32bpp indexed bitmap_ind64 == 64bpp indexed bitmap_rgb32 == 32bpp and RGB bitmap_argb32 == 32bpp ARGB bitmap_yuy16 == 16bpp YUY. For each format, a generic pix() method is provided which references pixels of the correct type. The old pix8/pix16/pix32/ pix64 methods still exist in the short term, but the only one available is the one that matches the bitmap's pixel size. Note also that the old RGB15 format bitmaps are no longer supported at all. . Converted model1, megadriv, and stv drivers away from the RGB15 format bitmaps . New auto_bitmap__alloc() macros are provided for allocating the appropriate type of bitmap. . Screen update functions now must specify the correct bitmap type as their input parameters. For static update functions the SCREEN_UPDATE macro is now replaced with SCREEN_UPDATE_RGB32 and SCREEN_UPDATE_IND16 macros. All existing drivers have been updated to use the correct macros. . Screen update functions are now required for all screens; there is no longer any default behavior of copying a "default" bitmap to the screen (in fact the default bitmap has been deprecated). Use one of the following to specify your screen_update callback: MCFG_SCREEN_UPDATE_STATIC(name) - static functions, MCFG_SCREEN_UPDATE_DRIVER(class, func) - driver members and MCFG_SCREEN_UPDATE_DEVICE(tag, class, func) - device members. Because the target bitmap format can now be deduced from the screen update function itself, the MCFG_SCREEN_FORMAT macro is no longer necessary, and has been removed. If you specify a screen update callback that takes a bitmap_ind16, then the screen will be configured to use a 16bpp indexed bitmap, and if you specify a callback that takes a bitmap_rgb32, then a 32bpp RGB bitmap will be provided. Extended the bitmap classes to support wrapping a subregion of another bitmap, and cleaner allocation/resetting. The preferred use of bitmaps now is to define them directly in drivers/devices and use allocate() or wrap() to set them up, rather than allocating them via auto_bitmap_*_alloc(). . Several common devices needed overhauls or changes as a result of the above changes . Reorganized the laserdisc base driver and all the laserdisc drivers as modern C++ devices, cleaning the code up considerably. Merged ldsound device into the laserdsc device since modern devices are flexible enough to handle it. . Reorganized the v9938 device as a modern C++ device. Removed v9938mod.c in favor of template functions in v9938.c directly. . Added independent ind16 and rgb32 callbacks for TMS340x0 devices . All video devices are now hard-coded to either ind16 or rgb32 bitmaps. The most notable is the mc6845 which is rgb32, and required changes to a number of consumers. . Added screen_update methods to most video devices so they can be directly called via MCFG_SCREEN_UPDATE_DEVICE instead of creating tons of stub functions. . Added new template device_delegate which wraps a regular delegate and includes a string pointer to a device tag, which can be simply resolved later. Converted the screen_update delegates to be based on this. Changed the mechanism by which screen formats are auto-deduced. Converted SCREEN_EOF to use these delegates as well, so now there is MCFG_SCREEN_EOF_STATIC/ DRIVER/DEVICE just like MCFG_SCREEN_UPDATE. . Death to SCREEN_EOF, which was ambiguously called either at the start or end of VBLANK depending on the video flag VIDEO_UPDATE_AFTER_VBLANK. Replaced with SCREEN_VBLANK callbacks which are called both at the start and end of VBLANK, so you can operate either way, and be explicit about it. Updated all callers. Also updated screen_device to use device timers and some other minor cleanups. . Cleanup of bitmap classes now that formats and bpp are dictated strictly by the type. Also added code to more aggressively align the bitmap base and rowbytes, and create a resize method which attempts to re-use existing memory rather than always reallocating. . Added new method screen_device::register_screen_bitmap which allocates a given bitmap to match the screen size and resizes it as appropriate when the screen size changes. Updated all the obvious spots in the code where this could be leveraged. . Move allocate/resize methods in the bitmap classes down into bitmap_t because they no longer have any dependency on the bitmap format or type. . Ensured that the bitmap's palette remains set across a resize call (it is lost doing an allocate). . Created new testcpu driver that shows how to develop an empty test driver that (ab)uses the core to single step a CPU executing arbitrary instructions and capturing before/after state and tracking memory. Currently this driver is always compiled, but is not referenced in mame.lst. . Fixed softlist entry count tracking issue . Enabling load of multi part softlist items on all available device . Cartslot is now C++ device . Fix for cassette extension extraction - Compiling: Fixed GCC 4.6 and PowerPC OS X compile 0.144u5 - New games: Quizard 1.8, Quizard 2.3 and Quizard 3.4 - New Non-Working games: 7 Smash, Power League IV (Tourvision PCE bootleg), Rastan Saga II (Tourvision PCE bootleg), Thunder Blade (Tourvision PCE bootleg) and USA Pro Basketball (Tourvision PCE bootleg) - New clones: Rival Schools: United By Fate (Euro 971117), Street Fighter III 3rd Strike: Fight for the Future (Euro 990608) and Street Fighter III 3rd Strike: Fight for the Future (Euro 990512) - New drivers: pgm2.c and su2000.c - 680x0 CPUs: Fix case where the MMU trashed memory - ARM7 CPU . Implemented MMU permission faults . Return correct MMU ID Code register values for ARM920T/ARM7500 . Fixed 39in1 booting . Lots of Samsung S3C24xx (ARM MCU) changes for future Happy Fish 302-in-1 and Palm Z22 (MESS) drivers - I386 CPU . Implemented every single documented x87 co-processor opcodes in 386+ CPU cores . Moved stack changes to be after protection checks in RETF and IRET . Made ARPL protected mode only . Added protection checks when MOVing to a segment register - I8039 / MCS-48 CPU: Fixed I8021/I8022 clock divider - M6805 CPU: CLR instruction should not affect the carry flag in 68HC05. Verified with Freescale programmer's manual. - PENTIUM CPU: Implemented generic functions for RDMSR and WRMSR opcodes (i.e. no MSR is actually hooked up so far) - SPC700 CPU: Fix four opcodes which didn't disassemble correctly (nss.c, sfcbox.c and snesb.c) - I8251 UART: Implemented transmit and receive data callbacks - IDE controller: Added delayed interrupts to enable booting on some older BIOSes - SCSI: Get sector size from CHD metadata to support old 256 bytes/sector SCSI drives, and allow hard disk image subdevices. - CHDMAN . Fixed -extractcd of images with postgaps. CHDs do not need reconversion, this was an -extractcd problem only. . Don't be case sensitive on the input type extension. - PC based . California Chase: Worked around 0x3d8 VGA reading, and fixed game in using the right VGA card. Fixed visible area and VSync. . pcxt.c . Ported PC CGA device emulation from MESS to MAME, and updated Filetto and Tetris (bootleg of Mirrorsoft PC-XT Tetris version) to use it accordingly . Added proper background hook-up for Tetris (bootleg of Mirrorsoft PC-XT Tetris version) . Added preliminary superimposing flag for CGA, and implemented for Tetris (bootleg of Mirrorsoft PC-XT Tetris version), now it properly mixes between CGA graphics and external background. . Added 'buzzer' sound to Filetto and Tetris (bootleg of Mirrorsoft PC-XT Tetris version) . Fixed 8088 CPU1 clock speed, visible area, palettesize and VSync. . Magical Touch, Pango Fun (Italy), pcat_dyn.c and pcat_nit.c: Fixed visible area . midqslvr.c: Hooked up basic devices. Added Keyboard control. Fixed visible area and VSync. . Psychic Force 2012: Hooked up a proper VGA card (waiting for further info about the VGA card used). Fixed visible area and added Keyboard control. . Queen?: Hooked up basic devices. Fixed PENTIUM CPU1 clock speed, visible area, palettesize and VSync. Added Keyboard control. . Savage Quest: Hooked up device, dies at floppy error. Added trident_tgui9680_bios.bin Video BIOS rom. Fixed visible area, palettesize and VSync. . X Tom 3D: Hooked up devices, gets to BOOT error if you soft reset once. Added trident_tgui9680_bios.bin Video BIOS rom. Fixed PENTIUM CPU1 clock speed, visible area to 640x480, palettesize and VSync. Added Keyboard control. - Started converting steppers to simulate actual behavior in a more logical way, rather than using hardcoded tables (bfm_sc1.c, bfm_sc2.c, bfmsys85.c, jpmimpct.c, jpmsys5.c, maygay1b.c, mpu2.c, mpu3.c, mpu4.c, mpu4vid.c). - Support for Virtual Reality and Tourvision PCE bootleg BIOS - angelkds.c: Fixed Z80 CPU1 clock speed in Angel Kids and Space Position - cps1.c . Fixed Muscle Bomber Duo and clone Q-Sound ROMs labels and locations, added Q-Sound PALs. . Dumped and added MB63B.1A PAL to Saturday Night Slam Masters and clones. Fixed clone Muscle Bomber: The Body Explosion (Japan 930713) Q-Sound ROMs labels and locations, added Q-Sound PALs. - cps3.c . Reordered all sets per release date . Dumped and added Street Fighter III 3rd Strike Euro BIOS, unlocked 2 new sets. . Minor fixes - namcona1.c . Fixed some games fails to pass selftest or freeze after copyright information (bkrtmaq, quiztou, numanath, swcourt, swcourtj, exvania and exvaniaj) (ID 04582). . Fixed Namco NA-1 maincpu interrupts. This fixes wrong gameplay speed in Numan Athletics (ID 02652). - namconb1.c: Fixed various sets failure to boot past post or disclaimer screen (ID 04584) - pgm.c . Driver cleanups . Added ARM7 CPU3 to 'Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus' . Moved Oriental Legend 2 to new PGM2 driver - segae.c: Updated driver to use the implementation from src\emu\video\315_5124.c and modernized driver. Fixed palettesize and VSync. - wiz.c: Fixed missing sound/music in driver (ID 04594) - 39 in 1 MAME bootleg: Fixed booting - Area 51: Site 4: Fixed Atari logo bad colors at POST - Aquarium: Removed region hack, fixed offtune music and testmode. Fixed Z80 CPU2 clock speed. - B.Rap Boys: Fixed loops on CRC check (ID 04581) - Cobra Command (M.A.C.H. 3 hardware): Fixed LaserDisc game using Mach 3 sound effects instead of Cobra Command ones (ID 04301) - Cool Riders: Fixed assertion with debug build (ID 03577) - Fire Barrel: Fixed music randomly blocks (ID 04590) - Funky Ball: Hooked up devices and flash loading, game currently dies at a Voodoo color DAC register check. Fixed MEDIAGX CPU1 clock speed and visible area. - Monsters World: Fixed access violation before OK (ID 04589) - Paint & Puzzle: Fixed visible area and VSync - PhotoPlay: Fixed visible area and VSync - Pro Mahjong Kiwame S: Added fix for inverted RON / REACH buttons - Puzzli 2 Super: Improved protection simulation. Fixed VSync. - Rainbow Islands: Driver cleanups and rename to avoid MESS conflict - Super Pang: Fixed clone Super Pang (World 900914, bootleg) die too quickly during attract mode (ID 04573) - Two Tigers: Added stereo 8-track tape sample playback (Download at http://www.sendspace.com/file/xy8sic) - Dipswitch fixes in aquarium, supdrapo.c and tetriskr - Fixed rom names in cps1.c - Renamed (rainbow) to (rbisland), (rainbowe) to (rbislande), (rainbowo) to (rbislando), (rvschool) to (rvschoolu), (scitvpce) to (tvsci), (sfiii3) to (sfiii3u) and (sfiii3a) to (sfiii3au) - MAME . Change 'screen' parameter in SCREEN_UPDATE and SCREEN_EOF callbacks to a reference. Remove redundant machine parameter from SCREEN_EOF. Remove old vestiges of driver_device video_eof override since it wasn't being used. Update all multi-screen games to use separate functions for each screen (calling into common code where appropriate). . Bulk converted cliprect * to cliprect & across the system. This makes cliprects mandatory everywhere. In general, cliprects were being correctly passed through the video side of most drivers already, so it is mostly a semantic change. Note that with my previous change, bitmaps have cliprects, so if you just want to clip to the bitmap's boundaries, pass bitmap->cliprect() instead of NULL (which is no longer permitted). . Converted bitmap_t and rectangle into proper classes. Replaced BITMAP_ADDR* macros with bitmap->pix* functions, and moved bitmap_fill() to bitmap->fill() among other similar changes. Bitmap fields now only available via accessors. Replaced sect_rect with &= and union_rect with |= operators for rectangle classes. Some general cleanup as a result of these changes. . Bulk conversion of bitmap_t * to bitmap_t & . With this change the parameters for the global SCREEN_UPDATE callback match the parameters for the driver_device version. Added allocate() and deallocate() methods to bitmap_t to permit cleaner handling of bitmaps in drivers and modern devices. . Removed machine.generic.tmpbitmap, VIDEO_START(generic_bitmapped), and SCREEN_UPDATE(generic_bitmapped). In their place, each screen_device now maintains a default bitmap which is automatically copied to the screen on each update if no SCREEN_UPDATE function is provided and if no driver_device::video_update override is present. This bitmap can be found by querying the screen's new default_bitmap() method. . Removed old C-based interface to astrings. astring exists only as a class now. Updated all stragglers (mostly tools) to use the class form. . Dumbify the menus and add a control layer (uiimage/diimage) - Compiling: OS/2 updates 0.144u4 - New games: Itazura Tenshi - New Working games: Forte Card (Ver 110, Spanish) - New Non-Working games: Special Criminal Investigation (Tourvision PCE bootleg) - New drivers: tourvis.c - SN76477 sound: Improved interface - EEPROM: Changed the 'erase' function to force all data bits of the specified address to 1s (ID 04148) - MSM6242 RTC . Modernized device . Added incrementing time . Added preliminary IRQ generation, updated drivers that uses it accordingly (ddenlovr.c, dynax.c, royalmah.c, seta.c and suprnova.c) . Removed various related kludges - avt.c: Various driver progresses, it now properly shows some gfxs. - cdi.c: Fixed CD-I video code (video\mcd212.c) - dacholer.c . Fixed priority and sprite Y positions in Dacholer and Kick Boy . Fixed Z80 CPU2, the 3x AY-3-8910A sound and MSM5205 sound clock speeds. . Fixed IRQ ack in Itazura Tenshi and merged game with Dacholer driver - dynax.c: Fixed many sets failure to boot/hang at post (ID 04572) - gamtor.c: Converted driver to use the RAMDAC device - namconb1.c: Fixed all sets failure to boot past post (ID 04562) - naomi.c: Preliminary save state support to Naomi / AW / DC driver - neodrvr.c . Marked 'Quiz King of Fighters' MVS AND AES VERSION . Cleaned up all labels (consistent for all protos now) for prototype sets (in 99.9% of the cases the correct labels are not known) to proto_ID-XX.XX . Identified product codes for Blazing Star, Savage Reign and Viewpoint . kotm2p m1/s1 parent/clone fix . Documentation update . Reflected changes in internal db to XML (except /* Plane x */ ) - pgm.c: Fixed access violation after OK in Dragon World 3 and Dragon World 3 EX (ID 04564) - royalmah.c . Fixed many sets failure to boot/hang at post (ID 04572) . Fixed visible area in Janputer '96 and Janputer Special - snowbros.c: Fixed graphic and gameplay slowdown in many sets (ID 04574) - suprnova.c: Properly hooked up MSM6242 device - system1.c: Fixed visible area - zn.c . Confirmed and documented game board # for every set . Properly fixed ROMs labels and locations to match real PCBs . Added a more accurate title description to some games . Added some documentation notes to various sets . Reordered all sets per release date . Minor cleanups and fixes . Marked MASK ROMs in ts2 and ts2j as BAD_DUMP, current dumps don't match real PCBs, added a note. . Replaced HR2-01M.3A in Strider 2 and clones with proper 32MBit dump to match real PCB, 2nd half was cutted out. - California Chase . Various fixes to California Chase, it currently completes the POST and shows Windows 98 logo. . Changes about BIOS memory management so ROM Shadow now works properly. The changes are: Rom Memory Map remmapped to 128K size AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("bios", 0) . Changes in mtxc write handler and bios_ram write handler. Now The internal register access are compatible with chipset VIA (this motherboard has VIA Apollo VXPro chipset. It is not compatible with Intel i430). With this changes now BIOS Shadow ram works fine, BIOS can relocate and decompress the full code necesary to run the Extended Bios, POST and Boot). No more BIOS Checksum error. . Suppressed all video related items wich will be replaced with VGA driver. . Temporarily added a VGA driver that is working based on original IBM VGA BIOS from MESS. This VGA driver doesn't work yet with TRIDENT VGA BIOS as I can see. . Added the flag READONLY to the calchase imagen rom load function, to avoid "DIFF CHD ERROR". . Minor changes and NOPS into address maps for debugging purposes. . Now BIOS is looking for the disk (BIOS Auto detection). It seems all works fine but must be there something wrong in the disk geometry reported by calchase.chd (20,255,63) since BIOS does not accept 255 heads as parameter. Perhaps a bad dump? . Fixed VGA line compare register masking, makes Windows 98 logo to display correctly. . Added fix for 8042kbc.c irq generation, now California Chase correctly accept keyboard inputs. . Added et4000.bin Video BIOS rom and a new hd image. Fixed PENTIUM CPU1 clock speed. - Choplifter: Fixed Choplifter scrolling problems (ID 03457) - Computer Quiz Atama no Taisou: Some progresses, got a garbled title screen and realized that the game is heavily protected. Fixed gfx1 rom loading and maincpu rom address to $2000. - The Deep . Fixed access violation (ID 04563) . Documented MCU ports, doesn't work yet due of a MCS51 core bug. - Flicky: Fixed Z80 PIO issues causing missing music in 128k versions (ID 04536) - Forte Card . Fixed clone Forte Card (Ver 110, Spanish) (Game now playable) . A lot of work on inputs . Added DIP locations . Lamps documentation and support . Added Lamps layout . Fixed and simplified inputs. Now Owner, Rental and Credits are proper toggled service keys. . Improved the button-lamps layout with the half and double addition for betting in the gamble stage. . Reverse engineering and partially documented the serial EEPROM data . Added a clean default NVRAM and serial EEPROM . Added company and year notes . Added technical notes - Gee Bee: Fixed game freeze when starting the game (ID 04576) - Meikyu Jima: Fixed reverse 'Demo Sounds' dipswitch - Michael Jackson's Moonwalker: Fixed graphics corruption after a few seconds of gameplay (ID 04578) - Mirax: Removed PC-based sound hack and GAME_IMPERFECT_SOUND flag - Mr. Do!: Added, and made Mr. Do! use the U8106 soundchip (100% identical to the SN76489 non-a), pending further testing - PhotoPlay: Hooked up VGA device. Fixed visible area and palettesize. - Raiden II: Added a note about pins held high on the sound Z80 - Rock'n Rage: Fixed stereo output is not implemented (ID 04566) - Salamander . Adjusted volume levels in Nemesis driver to mirror observed levels from PCB recordings for Salamander/Lifeforce. This fixes music is too quiet in Salamander and clone Lifeforce (ID 03538). . Fixed reversed stereo (ID 04565) - Super Stingray: Added I8748 (9263750 Hz) CPU3 - Taxi Driver: Added proper ROM labels - Warriors of Fate: Fixed black screen (ID 04570) - Wonder Boy: Fixed 'gameplay smoothness' issue (ID 04558) - Dipswitch fixes in fortecar.c and supdrapo.c - Fixed rom names in taxidriv.c, neodrvr.c and zn.c - Description changes of Choukou Senki Kikaioh (Japan 980914), Forte Card (Ver 103, English), Forte Card (Ver 110, Spanish), Ooh Aah Dracula Club (Barcrest) (MPU5) (ID 04559), Plasma Sword: Nightmare of Bilstein (Asia 980316), Plasma Sword: Nightmare of Bilstein (USA 980316), Rival Schools: United By Fate (Asia 971117), Rival Schools: United By Fate (USA 971117), Shiritsu Justice Gakuen: Legion of Heroes (Japan 971117), Star Gladiator 2: Nightmare of Bilstein (Japan 980316), Star Gladiator Episode I: Final Crusade, Street Fighter EX2 Plus, Street Fighter EX2 and The Bank Roll (Barcrest) (MPU5) (ID 04557). - MAME . Fixed changing INC and DEC inputs, results in .cfg file issue (ID 04556) . Fixed changing INC in UI menu changes DEC instead (ID 04569) . Fixed [UI] Box no longer drawn around physical DIP locations (ID 04575) . Softlist support cleanup and addition of compatibility filtering 0.144u3 - New games: Alien Crush, Keith Courage In Alpha Zones and Pac-Land (United Amusements PC Engine) - New clones: Exzisus (TAD License), Guzzler (Swimmer Conversion) and Warriors of Fate (World 921031) - cesclass.c: Added video, sound and basic I/O to the CES Classic driver, games are currently sort of playable. - cps1.c . Added LWCHR.3A, ST22B.1A, STF29.1A, TK22B.1A, VA24B.1A and YI24B.1A PALs . Fixed ROMs labels and locations in Cadillacs: Kyouryuu Shin Seiki (Japan 930201) and The Punisher (Japan 930422), added Q-Sound PALs. . Fixed sfzch and sfzbch GFX and sound ROMs labels and locations . Fixed wofch (MESS) to use proper EPROM TK2(CH)_07.9A since the previous dump was found to be bad. . Fixed wof, wofa, wofj and wofch (MESS) ROMs labels and locations, added Q-Sound PALs and PCB infos. . Added missing PLD to 1941, sf2 and varth . Moved PLD (ccprg1.11d) from clone Captain Commando (World 911014) to parent (World 911202) . Minor cleanups and fixes - galaga.c: Fixed Dig Dug gameplay acting very odd and sound issues in Galaga (ID 04547) - hng64.c: Fixed VSync - mappy.c: Fixed games do not load correctly using -autosave (ID 04548) - metro.c: Fixed visible area and VSync - namcos22.c: Fixed VSync - segas24.c: Fixed Rough Racer and Super Masters Golf freezes upon attempting to start (ID 04358) - toypop.c: Fixed games freeze with zeroes screen (ID 04549) (ID 04553) - Birdiy: Added color proms - Blandia: Fixed missing rowscroll in Irriana stage (ID 00861) - Blazing Lazers: Added DISCRETE sound - Cool Riders: Fixed 68000 CPU2 clock speed - Goalie Ghost: Fixed Player 1 constantly moves right (ID 04554) - Ikki: Fixed flicker happens newly in the introduction scene between title and demo-play (ID 00287) - Joyful Road . Added ay8910_reset_w() function, used by Joyful Road / Munch Mobile for resetting the AYs on-the-fly. Fixes substained sounds in the aforementioned game. . Fixed IRQ and NMI generation in Joyful Road driver according to schematics - The Masters of Kin: Fixed ADDRESS_MAP (irq_mask_w should be on 0x10B7) (ID 04551) - Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion: Fixed game reset after loading with -autosave enabled (ID 04550) - Paint & Puzzle: Converted driver to use proper VGA core. Fixed visible area. - Play Girls: Fixed wrong colours of Janet (bottom-right girl) (ID 01015) - Sliver: Converted game to RAMDAC device - Super Dodge Ball: Fixed visible area and VSync - Super Street Fighter II Turbo: Fixed flashing garbage during intro (ID 04552) - The Deep: Added I8751 MCU - Dipswitch fixes in cesclass.c, parentj, meijinsn and uapce.c - Fixed rom names in birdiy and cps1.c - Renamed (wof) to (wofr1) - Description changes of Country Club Classic (v1.10 03-apr-1997), Home Run Classic (v1.21 12-feb-1997) and Trap Shoot Classic (v1.0 21-mar-1997) - MAME . Completely removed deprecat.h and partial frame irq hacks from the core. Full list of drivers changed by this can be found at http://mamedev.emulab.it/kale/fast/files/deprecat_removal.zip . Putted an handling error where filenames are too long 0.144u2 - New Working games: BanBam/Pettan Pyuu and 'unknown Pac-Man gambling game' (Pucky) - New clones: Space Gun (US) and Space Gun (Japan) - Removed games: Street Fighter II': Champion Edition (USA 920803) - I386 CPU: Added 3 opcodes (sfence, fstp and fild) - Removed deprecat.h usage from alpha68k.c, astrocorp.c, bartop52.c, beezer.c, cps2.c, maxaflex.c and namcos22.c - alpha68k.c: Added sound NMI mask to Alpha68k II/V HW games - blitz68k.c, chsuper.c, rltennis.c and sfbonus.c: Written a generic RAMDAC device, hooked it up. - cesclass.c: Added OKI6295 (3MHz) sound and fixed visible area - chihiro.c: Added a placeholder for ohci USB controller in Chihiro Plus relative hack to avoid an infinite loop. This allows Chihiro to try to initialize Direct3D and to use the Nvidia 3D accelerator. - cps1.c . Minor cleanups and fixes . Dumped and added CD63B.1A PAL to Cadillacs and Dinosaurs (World 930201) and clone (USA 930201) . Dumped and added Q-Sound PALs to Cadillacs and Dinosaurs (World 930201)/(USA 930201), The Punisher (World 930422)/(USA 930422), Saturday Night Slam Masters (World 930713)/(USA 930713) and Warriors of Fate (USA 921031) . Dumped and added PALs (2 of 3) to Pang! 3 and clones . Fixed pang3 and pang3j to use proper 128KB EPROM PA3_11.11F instead of the one resized used by pang3b . Identified and documented Pang! 3 (bootleg) as a bootleg, added a note. - cps2.c: Fixed graphical glitches in various games test menu (ID 03564). This fixes graphics error on Giga Wing title screen on word "CREDIT XX" (ID 03682). - namcos22.c: Fixed VSync - snk6502.c: Fixed bogus irq mask bit (IRQ mask bit was masking BOTH lines before) - BanBam: Removed GAME_NOT_WORKING - Beezer: Converted gamer to proper vertical screen orientation, being originally a Galaxian conversion kit that's quite obvious as well. Fixed visible area. - Birdiy: Fixed scratchy sound, unlike all other Pac-Man HW games irq mask is at $5001 instead of $5000, so fixing that fixed the sound as well. - California Chase: Fixed visible area and palettesize - Champion Super 3: Converted driver to ADDRESS_MAP_MODERN - F1 Super Lap: Correct rom labels and added PCB locations - Gals Panic 3: Confirmed clocks and xtals from original PCB measurements - Pango Fun: Fixed I486 CPU1 clock speed - Pinbo . Fixed wrong background colour (ID 04546) . Fixed M6502 CPU1 and the 2x AY-3-8910A clock speed - Quiz Do Re Mi Fa Grand Prix: Fixed game cannot start game (ID 04541) - Quiz TV Gassyuukoku Q&Q: Fixed game crashed after map screen (ID 04542) - Syusse Oozumou: Fixed bogus irq mask to sound CPU - Super Speed Race Junior: Converted video to be vertically oriented. Fixed visible area. - unknown Pac-Man gambling game: Fixed inputs (Game now playable) - Yie Ar Kung-Fu . Fixed bogus IRQ/NMI mask bit (IRQ mask bit was masking BOTH lines before) . Added proper sound to clone Yie Ar Kung-Fu (GX361 conversion) - Renamed (pang3n) to (pang3b), (pucky) to (unkpacg) and (sf2ceud) to (sf2ceuc) - Description changes of Pro Soccer (Cassette, Japan), Pang! 3 (bootleg), Street Fighter II': Champion Edition (USA 920803), Super Stingray (Japan), unknown Pac-Man gambling game - MAME . Removed ugly functions interrupt_enable_w() and cpu_interrupt_enable() from the core, and updated all the drivers that used it accordingly. Full list of drivers changed by this can be found at http://mamedev.emulab.it/kale/fast/files/cpu_irq_enable.zip . Fixed MAME crashed on exit on 32-bit Windows XP (-video d3d) (ID 04538) - Compiling: Little modifications to ap2_dsk.c and gaelco3d.c/h to compile with MSVC 0.144u1 - New games: Birdiy, Spiker (5/5/86) and Spiker (6/9/86) - New Working games: Fruit Bonus Deluxe - New Non-Working games: Pucky - New clones: B.Rap Boys Special (US), Battle Balls (Asia, earlier), Crock-Man, Forte Card (Spanish), Gals Panic 3 (Euro), Gun Hard (Japan), J. J. Squawkers (bootleg, Blandia Conversion), Pang! 3 (Euro 950511), Pepper II (version 7), Pro Soccer (Cassette Japan), Street Fighter II': Champion Edition (USA 920803, alt), The Ninja Warriors (US) and World Beach Volley (set 3) - 6532 RIOT: Fixed 0.144 changes causing missing sound in games (ID 04535) - balsente.c . Corrects the rom locations for Trivial Pursuit (Baby Boomer Edition) and Street Football . Added date code to Mini Golf (Set 2), Trivial Pursuit (Baby Boomer Edition), Night Stocker (set 1/2) and Street Football - cps1.c . Added PCB infos to video\cps1.c . Added some documentation notes to various sets . Minor cleanups and fixes . Restored 4 EPROMs properly dumped in Forgotten Worlds (World) and marked LW-13.10D as possible bad dump in clone (USA, B-Board 88621B-2), see the note. . Fixed inverted EPROMs positions in Mega Man: The Power Battle according to a new USA 91635B-2 B-Board . Redumped and fixed clone Street Fighter II': Champion Edition (USA 920803) to match real PCB . Added a note about RT_23.13B ROM in clone Wonder 3 (Japan 910520) . Fixed Three Wonders (USA 910520), Final Fight (USA, set 2), Final Fight (Japan 900112), Street Fighter II: The World Warrior (USA 910306), (USA 910318) and (USA 910411) ROMs labels and positions - cps3.c: Documented all sfiii, sfiii2 and sfiii3 existining revisions - decocass.c: Removed v0a.7e, dsp3.p0b and dsp3.p1b from BIOS set - galaga.c . Fixed game resets at various times in Bosconian (new version) and clone (Midway, new version) (ID 04391) . Fixed sprites disappear off right screen- cocktail mode player 2 in Dig Dug and clones (ID 02887) . Fixed graphic artifact when booting in Galaga and clones (ID 03271) . Fixed screen flipping isn't handled correctly in Bosconian, Galaga, Xevious, Dig Dug and clones (ID 03266) - mappy.c: Fixed cocktail screen offset for 2nd player in all sets (ID 04382) - pcat_nit.c . Fixed rom mapping and added NVRAM to the driver. Some mini-games in streetg(2) are playable now. . Fixed game_prg rom loading in Bonanza, Street Games, Street Games II and clones - pgm.c: Moved V3021 RTC emulation into a proper device, and made it to increment the time. Hooked this up into PGM driver - re900.c: Fixed graphics corrupted/black screen in Buena Suerte '94 and Ruleta RE-900 (ID 04456) - zerozone.c and zodiack.c: Modernized drivers - B.Rap Boys: Mirror gfx1 rom ($400000 to 480000) in B.Rap Boys (World) - Bomb Jack: Cconfirmed and adjusted clock speeds (Z80 CPU2) from PCB - Disco Boy: Hooked up MSM5205 sound - F1 Exhaust Note: Fixed engine noise loops/resets (ID 04531) - Forte Card . Added crystal through #define . Correct clocks for CPU, CRTC and AY8910 . Added new spanish set . Added correct bipolar dump . Correct palette routines, plus video resnet . Watchdog . Added preliminary support for 93SC56 serial EEPROM . Added proper serial EEPROM dump . Added a ton of technical notes . Improved the 93SC56 serial EEPROM interface . Added more findings and technical notes . Fixed colors and visible area . Implemented RTC. Moved V3021 RTC emulation into a proper device, and made it to increment the time. Hooked this up into Forte Card driver. - Fruit Bonus Deluxe: Added missing gfx1/2, oki and fbdeluxe.id roms (Game now playable) - Hot Chase: Made default paletteram to be white on start-up, fixes ugly MAME default palette to be shown at POST. - Fixed rom names in 3wondersu, balsente.c, brapboys, cps1.c, lockload and ninjaw - Renamed (cprosocc) to (cpsoccer) and (galpani3) to (galpani3j) - Description changes of Forte Card (English), Gals Panic 3 (Japan), Mini Golf (10/8/85), Night Stocker (10/6/86), Night Stocker (8/27/86), Pepper II (version 8), Street Football (11/12/86), Trivial Pursuit (Baby Boomer Edition) (3/20/85) and Trivial Pursuit (Genus I) (12/14/84) - MAME . Fixed HLSL memory leak and crash on exit on 32-bit targets . Removed explicit freeing of HLSL shadow_texture, since it is allocated by texture_create() which does its own tracking and freeing. . Modernized address maps for most skeleton drivers - Compiling . Move per emulator constants info into separate class . Changed makefile in order to make sequential compilation of MAME and MESS and their sub targets less resource demanding . Fixed obvious use-after-free error in device_delete() (windows\drawd3d.c) - SDLMAME . pcap network support for OS X and Windows SDL targets . GLSL tweaks to better support the "CRT" shader - MESS: Added support for hard disk softlists 0.144 - New games: Galaxy Game - New Working games: Dirt Dash - New Non-Working games: Arcana Heart Full and Melty Blood Actress Again - New clones: 18 Wheeler (Rev A) (JPN), Alien Front (Rev T), Gunbalina (GNN1 Ver.A), House of the Dead 2 (prototype), King of the Monsters 2 - The Next Thing (prototype) and Zero Team (set 5, Korea, Dream Soft license) - Removed games: Deathsmiles, Espgaluda II, Ibara Kuro Black Label, Ibara, Medal Mahjong Moukari Bancho, Muchi Muchi Pork!, Mushihime-Sama Futari, Mushihime-Sama, Pink Sweets: Ibara Sorekara and Puzzle! Mushihime-Tama - New drivers: galgame.c and nexus3d.c - New artworks (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here): docastle, dyger, jjack, journey, junofrst, kas89, mrdo, mslug2, prehisle, re800v1, re800v3, seawolf, seawolf2, sraider, usvsthem and warpsped. - TMS99xx CPUs: Fixed STCR command - ES5505/6 sound: Added per-channel volume control - 6522 VIA: Implemented CA2 pulse output mode, and output interrupt state only when it changes. - 6532 RIOT: Output interrupt state only when it changes - Floppy . Various improvement to Amiga FDC system . Describe the remaining IPF fields - NCR539x SCSI: Rewrote emulation from scratch - hikaru.c: Added Hikaru 0.84 BIOS (epr-21904.ic94) - jpmimpct.c: Added year info to Red Hot 6 (Jpm) (IMPACT) (ID 04524) - neodrvr.c: Converted MVS driver to use software lists in preparation for multislot support - segas24.c: Implemented FRC hook-up to Sega System 24 HW, fixes missing SFXs to Bonanza Bros. - taito_f3.c . Added per-channel volume control to ES5505/ES5506 sound chip, and hooked it up to the Taito F3 driver. . Added a preliminary ES5510 DSP DRAM input/output latches support in Taito F3 driver, fixes sound in Ring Rage and Riding Fight (ID 00951). - toaplan1.c . Start of input ports cleanup in the Toaplan driver . Removed some unused macros from toaplipt.h . Added some missing inputs . Fixed VSync in Fire Shark - toaplan2.c . Start of input ports cleanup in the Toaplan driver . Removed some unused macros from toaplipt.h . Fixed polarity of DIP locations . Added some missing inputs . Added more DIP locations and missing inputs . Added information about ingame test/debug features to comments . Unified Toaplan2 inputs with the other Toaplan drivers . Added 3rd button to Batsugun - twincobr.c and wardner.c: Added DIP locations and missing inputs - Flicky . Fixed up the dipwitches after a fair amount of playtesting . Added some specific set notes related to oddness/differences observed - Hammerin' Harry: Fixed some background misplacement in clones Hammerin' Harry (US) and Daiku no Gensan (Japan, M82) (ID 00504) - The King of Fighters '98: Fixed gamr on non-Windows builds - Multipede (rev 1.62): Replaced G65C816 CPU1 with M65SC02 - X Multiply: Fixed tilemaps offsets - Dipswitch . Added some common country and language names to the default strings, and removed some unused and/or redundant strings. . Added DIP locations to toaplan2.c, twincobr.c and wardner . Fixed dipswitches in f1dream, flicky, twincobr.c, toaplan1.c and toaplan2.c - Fixed rom names in berzerk - Renamed (alienfnt) to (alienfnta), (ironclad) to (ironclado), (ironclado) to (ironclad), (sc4cfgd) to (sc4cckeyd), (sc4cfge) to (sc4cckeye), (sc4cfgf) to (sc4cckeyf), (sc4cfgg) to (sc4cckeyg), (sc4cfgh) to (sc4cckeyh), (sc4cfgi) to (sc4cckeyi), (sc4cfgj) to (sc4cckeyj), (sc4cfgk) to (sc4cckeyk), (sc5dndtpv) to (sc5dndtpt) and (sc5dndtpw) to (sc5dndtpu). - Description changes of Alien Front (Rev A), Brain Waves (Barcrest) (MPU5) (ID 04522), Cash-Filla (Pcp) (MPS) (ID 04517), Casino 5ive Liner (Jpm) (IMPACT) (ID 04521), Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 5)-(set 12), Choutetsu Brikin'ger - Iron clad (Prototype), Choutetsu Brikin'ger - Iron clad (Prototype, bootleg), Clickity Click (Barcrest) (MPU4) (ID 04523), Dangan Feveron (Japan, Ver. 98/09/17), Holy Smoke! (Impulse) (EPOCH) (ID 04525), Meg Aaton (ID 04515), Mousin' Around! (LA-4)-(LX-1) (ID 04514), Nudge-It (ID 04519), Simpsons - Duff Beer Guide (Maygay) (EPOCH) (ID 04500), Supashifta (Jpm) (MPS) (ID 04520), Super Hi-Lo (Jpm) (SYSTEM5) (ID 04516), The Big Apple (Mdm) (MPU4, set 1)-(MPU4, set 6) (ID 04526), Up Up and Away (Barcrest) (MPU4) (ID 04527), Zero Team (set 2, Japan? (earlier?)), Zero Team (set 3, Japan? (later batteryless)), Zero Team (set 4, Taiwan, Liang Hwa license) and Zero Team USA (set 1, US, Fabtek license) - SDLMAME: Added TAP/TUN networking capability for SDL and shell script for configuration 0.143u9 - New clones: Battle Shark (World) and Battle Shark (Japan, Joystick) - SH-4 CPU: Misc cleanup - Yamaha YMZ770 sound: Fixed Mac compile - chihiro.c, naomi.c and triforce.c: Improved game documentation - Laser Base . Hooked up MC6845 . Hooked up PIT8253 - Input port . Fixed analog controls are broken on keyboard when joystick is enabled (ID 04509) . Fixed all games with paddle inputs: IPT_PADDLE inputs do not center properly when mapped to an analog joystick (ID 04394) . Changed some of the default mappings for analog controls in order to fix various input-fighting bugs (including, but not limited to, MT04394 and MT04509). Reverted the u8 change to analog joystick handling--it only partially solved the problem it was meant to fix, it introduced new issues in return, and generally made the code more complicated for little benefit. - Dipswitch fixes in laserbas, taito_z.c and tnzs.c - Fixed rom names in brapboys - Renamed (bshark) to (bsharku) - Description changes of Deathsmiles (2007/10/09 MASTER VER), Espgaluda (2003/10/15 Master Ver), Espgaluda II (2005/11/14 MASTER VER), Mushihime-Sama Futari Ver 1.5 (2006/12/8.MASTER VER. 1.54.), Mushihime-Sama Futari Ver 1.0 (2006/10/23 MASTER VER.), Mushihime-Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54), Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER), Ibara Kuro Black Label (2006/02/06. MASTER VER.), Ibara Kuro Black Label (2006/02/06 MASTER VER.), Muchi Muchi Pork! (2007/ 4/17 MASTER VER.), Mushihime-Sama (2004/10/12 MASTER VER.), Mushihime-Sama (2004/10/12 MASTER VER), Puzzle! Mushihime-Tama (2005/09/09 MASTER VER), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER....), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER...), Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER.), Virtua Striker 4 Ver.2006 (Japan) (Rev D) (GDT-0020D) - MAME: Fixed listing of switches used by gambling games 0.143u8 - New games: Choutetsu Brikin'ger - Iron clad (Prototype), Kasino '89, Novo Play Multi Card / Club Card, Pink Sweets - Ibara Sorekara (2006/04/06 MASTER VER....), Real Puncher and Waku Waku Doubutsu Land TonTon (Japan) - New Non-Working games: Golden Poker Series "Joker's Wild", Junai 2 - White Love Story (Japan), Namco Stars, Racing Jam DX, Speed Driver and unknown TMS9980 Poker Game - New clones: Alpha Mission II / ASO II - Last Guardian (prototype), Bad Lands (bootleg, alternate), Burning Fight (prototype), Choutetsu Brikin'ger - Iron clad (Prototype, older), Crash (bootleg of Head On), Flyball (rev 2), Gunbuster (US), Gunbuster (World), Guwange (Japan, Special Ver. 00/01/01), Mustafa and 40 Thieves (bootleg), Pink Sweets - Ibara Sorekara (2006/04/06 MASTER VER.), Pink Sweets - Ibara Sorekara (2006/04/06 MASTER VER...), Witch Card (Video Klein CPU box, set 2) and Witch Game (Video Klein, set 2) - New drivers: igspc.c, kas89.c, segajw.c, tmspoker.c and tonton.c - SH-4 CPU: Optimzied core by using a single opcode jump table instead of nested switch statements - VLM5030 sound . Added tables from VLM5030 as verified by decap from ogoun . Adapted VLM5030 to use the TMS5xxx common tables file. Some details have yet to be worked out for certain (how exactly the reflection coefficients beyond k=2 address the k2+ rom) . Adjusted the VLM5030 K3 thru K10 coefficients to be based not on reading the K2 rom but based on the index itself <<6 or 7. This makes the games sound much better and explains the very small ram size used for coefficients other than K1 and K2. This needs further investigation and figuring out of the die schematic to settle completely. - RTC-9701: Wrote a basic core - Voodoo 3 GFX: Preliminary support - Yamaha YMZ770 sound: Preliminary emulation of the sound chip - cavesh3.c . Preliminary emulation of the YMZ770 sound chip . Wrote a basic core for Epson RTC-9701 device chip - chihiro.c: Fixed stop before "Initialization" completion in Crazy Taxi High Roller, Out Run 2 Special Tours, Taisen Mahjong MJ 2 and Taisen Mahjong MJ 3 (ID 04502) - csplayh5.c . Fixed various translitteration errors in game name descriptions . Provided DVD dump for Junai - funworld.c . Documented hopper motor line (temporarily added as an extra lamp) . Better documentation of output ports . Novo Play Multi Card / Club Card: Added proper button-lamps support and layout. Added default NVRAM, necessary to boot. Added PIAs connections layout, added 'Allow Autohold' DIP switch. Added technical notes. - goldnpkr.c . Mapped the Dallas DS1210 for Video Klein sets that have one . Mapped the 2800-2fff range as RAM for the non-Dallas Video Klein sets . Some minor fixes . Fixed colors in clone Witch Card (Video Klein CPU box, set 2) - gottlieb.c . Verified through playtesting, manuals and in-game service modes all DIPs in the driver . Consolidated and added DIP locations based on all available information . Changed Q*bert and Q*bert's Qubes joystick layout to 8-Way to allow for diagonals to be not only be mapped but used if desired - jpmimpct.c: JPM IMPACT changes that make the display at least work now, and some more M1 set splitting. - magicfly.c . Confirmed and fixed CPU clock for magicfly and 7mezzo . Rearranged the graphic ROMs addressing . Splitted both gfx banks . Created and minimized the color palette for both gfx banks . Fixed colors for magicfly and 7mezzo - m92.c: Fixed V35 CPU2 clock speed - maygay1b.c . Fixed hang of application after OK in Cluedo Club (Maygay) (M1A/B) and Prize Cluedo (Maygay) (M1A/B) (ID 04496) . Splitted m1clbfvr, m1cluecb, m1cluedo, m1cluesh and m1cluess. - namcos22.c: Improved flat shading and depth cueing - naomi.c . Fixed various crashes for some NAOMI GD-ROM sets . Fixed access Violation during "Initializing" in Azumanga Daioh Puzzle Bobble, Initial D Arcade Stage Ver. 2 (Japan) (GDS-0026) and Initial D Arcade Stage Ver. 3 (Japan) (Rev. B) (GDS-0032B) (ID 04503) - ninjakd2.c: Fixed/added comments. Fixed 'Credit Service' dipswitch in ninjakd2 (ID 02413). - taitotz.c: Preliminary text layer hookup. Added TLCS-900/H CPU2. Fixed visible area. - toypop.c: Made some video optimizations - triforce.c: Fixed crash/assert before OK in most sets (ID 04441) - viper.c: Implemented timers and I2C interface on MPC8240. Fixed visible area. - Ace Attacker: Added I/O board read routine. Changed game to use analog device. - Air Buster: Fixed jerky background scrolling (ID 04505) - Ali Baba and 40 Thieves: Fixed user1 rom length - Bad Lands: Fixed the bad roms in clone (bootleg) with the alternate set - Juno First: Fixed refresh rate and interrupt firing - Pirate Ship Higemaru: Removed deprecat.h usage - Lethal Enforcers . Removed EEPROM default values . Improved offset screen and gun in clone Lethal Enforcers (ver JAD, 12/04/92 17:16) - Magic the Gathering: Armageddon: Various improvements. Replaced R4600 (big) CPU1 with R5000 (big). Added ADSP-2181 CPU2, 2x DMA-driven DAC sound and left/right Speakers. - Operation Tiger: Preliminary text layer and I/O CPU hookup. Added TLCS-900/H CPU2 and fixed visible area. - S-Plus (SS4240) Coral Reef: Fixed hang during "Initializing.." routine (ID 04497). Replaced I8052 CPU1 with I80C32. Fixed AY-3-8912A clock speed. - Super Real Mahjong P6: Removed deprecat.h usage - Teenage Mutant Ninja Turtles: Fixed visible area (garbage on each side is correct (verified on PCB)) - Input port . Added the possibility to press contradictory direction digital joystick input at the same time (i.e. up-down, left-right) . Added the possibility to set an arbitrary value for coin impulses . Fixed a bug with loop lever routine . Fixed a bug with analog joystick routine . Fixed inputs in glfgreat, majuu, qbert and qbertqub - Dipswitch . Added DIP locations to arknoid2, chukatai, cuebrick, drtoppel, extrmatn, glfgreat, gottlieb.c, gradius2, hpuncher, insectx, kabukiz, kageki, majuu, mia, plumppop, prmrsocr, punkshot, tmnt and trigon . Fixed DIP locations bosco, digdug, dunkshot, galaga, glfgreat, hbarrel, robocop, segas18.c, segas24.c, tnzs and xevious . Added dipswitches to novoplay and sjryuko . Fixed dipswitches in birdtry, bosco, chqflag, cuebrick, darius2, drgninja, ffantasy, ffantasya, glfgreat, gottlieb.c, gradius2, hbarrel, hpuncher, insectx, kabukiz, majuu, mia, midres, ninjakun, pkunwar, plumppop, pooyan, punkshot, rockrage, ryukendn, segac2.c, segae.c, segag80r.c, segag80v.c, segahang.c, segald.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segas24.c, segaxbd.c, segaybd.c, shadoww, timescan, tmnt, trigon and . Added DIPSW notes to ninjaw - Fixed rom names in aquajack - Renamed (cspureh7) to (csplayh7), (flyball) to (flyball1), (fudol) to (fuudol), (gunbustr) to (gunbustrj), (jyunai) to (junai), (m4bddunk) to (m1atunk), (mmmbnk) to (mmmbanc) and (sc2paw) to (m4pulwnc) - Description changes of American Aladdin (Avantime?) (MPU4), American Beauty (Avantime?) (MPU4), Big Ben (Avantime?) (MPU4), BiKiNikko - Okinawa de Ippai Shichaimashita (Japan), Black Magic (Avantime?) (MPU4), Brain Box (Avantime?) (MPU4), Casino Bar X (Concept Games Ltd) (?), Casino Monte Carlo (Avantime?) (MPU4), Casino Multi Bar (Concept Games Ltd) (?), Cosplay Tengoku 7 - Super Kogal Grandprix (Japan), Darius II (triple screen) (Japan), Flutter (Concept Games Ltd) (?), Flyball (rev 1), Fruit & Nudge (Avantime?) (MPU4), Fruit Matrix (Avantime?) (MPU4), Fuudol (Japan), Geo Storm (Japan), Golden 7 (Concept Games Ltd) (?), Gun Force II (US), Jackpot Bars (MAB PCB?) (Concept Games Ltd) (?), Joker 2000 (Avantime?) (Latvia) (MPU4), Junai - Manatsu no First Kiss (Japan), King George (Avantime?) (MPU4), Mahjong Mania - Kairakukan e Youkoso (Japan), Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.) (ID 04507), Medal Mahjong Moukari Bancho, Mega Jackpot (Avantime?) (MPU4), Megabell (Concept Games Ltd) (?), Millennium Bells (Avantime?) (MPU4), Millennium Roulette (Avantime?) (MPU4), Multi Bar (Concept Games Ltd) (?), Nudge-A-Win (Concept Games Ltd) (MPU4), Nudge Xcess (MAB PCB?) (Concept Games Ltd) (?), Pull-A-Win (Concept Games Ltd), Random Runner (Avantime?), Red Hot 7 (MAB PCB?) (Concept Games Ltd) (?), Red Hot Fever (Concept Games Ltd) (MPU4), Robotica / Dream Machine (Avantime?) (MPU4), Spin-A-Win (Concept Games Ltd) (MPU4), Stake X (Concept Games Ltd) (?), Super Bar X (MAB PCB) (Concept Games Ltd) (?), Super Multi Bar (Concept Games Ltd) (?), The Nanpa (Japan), Turbo Reel Gambler (Avantime?) (MPU4), Unknown 'T' (MAB PCB?) (Concept Games Ltd) (?), Witch Card (Video Klein CPU box, set 1) and Witch Game (Video Klein, set 1) 0.143u7 - New games: Uchuu Tokkyuu Medalian - New Working games: FamicomBox, Funcube 3 and PEPSI Man - New Non-Working games: Black Beard (Russia, set 1), Dragon Slayer (Russia, set 1), Hawaii (Russia), Igrosoft Multigame Bootleg (10 Games), Medal Mahjong Moukari Bancho no Kiban (2007/06/05 MASTER VER.), Metal Man, Muchi Muchi Pork (2007/ 4/17 MASTER VER.), Olympian Games (Russia), Pimbal (Pinball 3000) and Ra Sceptor (Russia) - New clones: Aqua Jack (US), Black Beard (Russia, set 2), Black Beard (Russia, set 3), Butasan - Pig's & Bomber's (Japan, English), Cherry Master '97, Cruis'n Exotica (version 1.0), Dragon Slayer (Russia, set 2), Igrosoft Multigame Bootleg (15 Games), Jungle King (alternate sound), Last Bronx (USA, Revision A), Muroge Monaco (set 3), Mushihime Sama Futari Black Label (2007/12/11 BLACK LABEL VER), NBA Jam T.E. Nani Edition (rev 5.2 8/11/95, prototype), Vigilante (US) - Rev. G, Viper Phase 1 (USA, New Version, set 2) and Zero Gunner (Japan, Model 2A) - Removed games: Demon's World / Horror Story (set 5), Options Unlimited (Barcrest) (MPU3, set 1) and Super Monaco GP (set 5, US, Rev B, FD1094 317-0125a) - New drivers: astropc.c, atronic.c, belatra.c, cupidon.c, extrema.c, gamtor.c, konendev.c and wms.c - 68000 CPU . Fix for MINGW compiler optimization for M68000 . Fixed many sets using m68000-family CPU: Access Violation (ID 04471) . Activate m68k trace emulation and fixed it . Avoid a m68000 case when dropping the irq mask just after taking a auto-acked interrupt would cause a spurious irq . Reset the m68000 double-bus/address-error flag where appropriate to avoid halting on consecutive but not linked exceptions - 68040 CPU . Preliminary 68040 MMU implementation . Preliminary support for ColdFire family and MCF5206E. Replaced 68040 CPU1 with MCF5206E in Funcube 2, 3 and 4. - SH-3/4 CPUs: Fixed big-endian mode - Z80 CPU . Exposed the Z80 DART interrupt vector to non-Z80 users . Fixed Z80DART FIFO starting index - AY-3-8914 sound: Fix incorrect masking of register writes on AY-3-8914, fixes wrong envelope amplitude on games which use hardware enveloping on Intellivision (Thunder Castle, etc). - TMS9928 video: Fixed colission detection regression - Flash ROM: Updated intelfsh.c in order to support AMD 29F080 chip - aleck64.c: Improved inputs and added some TLB notes in the driver - bfm_sc4.c, bfm_sc5.c and maygay1b.c: Further major organization, documentation and reordering of numerous (about 2500) gambling / Fruit machine titles covering multiple systems - bfm_sc5.c: Fixed "Error in RomModule definition: 39211495.bin out of memory region space" message (ID 04498) - cavesh3.c: Fixed SH-3 CPU1 clock speed, visible area and input - cd32.c . Fixed all CD32 games fail to boot properly (ID 04495) . Hooked up touch screen to Odeon Twister 2 - m92.c: Fixed sounds freezes or halts after a time in Ninja Baseball Bat Man and Superior Soldiers (ID 04345) - namcos22.c . Fixed or improved polygon fade, high priority polygons, texture c-mode, sprite seaming, textlayer alpha/shadow, DSP external memory addressmask and some other smaller issues. . Fixed or improved sprite x/y flipping, sprite delta x/y, texture c-mode (again) and some z priority issues. . Fixed or improved sprites in Alpine Surfer, Alpine Racer 2 and Cyber Cycles . Fixed incorrect lighting on Stage 2 (specific room) in Time Crisis (ID 04386). Added default NVRAM rom. . Fixed or improved Tokyo Wars sprite garbage . Added 2-way Joystick to Alpine Racer, Alpine Surfer and Alpine Racer 2 - namcos23.c . Fixed C352 sound clock speed . Added gun input to Time Crisis 2 - neodrvr.c . Fixed Neo-Geo game saving . Made some documentation updates in the driver . Added correct P1 and M1 for Neo Mr. Do - seta2.c: Replaced 68040 CPU1 with MCF5206E in Funcube 2, 3 and 4 - umipoker.c . Major rewrite of Umi de Poker and Slot Poker Saiyuki input system . Added missing inputs, fixing structure . Added button- lamps support and layout to saiyukip, coin counters and complete documented outputs to both games. . Reworked the dipswitches structure to match what the test mode shows, with their respective DIP locations. . Complete dipswitches & DIP locations for Umi de Poker and Slot Poker Saiyuki - whitestar.c: Fixed visible area - Bells & Whistles . Fixed screen size and zoom . Fixed graphic glitch on the final boss (ID 00258) - Big 10: Fixed default dipswitches and DIP locations - Butasan . Fixed text ram banking . Fixed missing background tiles and wrong colours (ID 00373) . Fixed the top status area (where the score and time info is) is missing text and has wrong colors (ID 00172) - Cherry Bonus III: Added PCB layout for clone Cherry Master '97 - FamicomBox . Added missing game roms (donkeykong, donkeykongjr, popeye, eigoasobi, mahjong, gomokunarabe and baseball) . Changed input to 2 player, 8-way Joystick and 3 buttons. Fixed dipswitches. . Added N2A03 (1789772 Hz) and DAC sound - Lethal Enforcers . Fixed external rowscroll not hooked up correctly (1st attract level, highscores) (ID 02448) . Fixed some priority issues / sprite placement issues (ID 02450) - Muroge Monaco . Figured out the sound system of Muroge Monaco and clones. It's a Delta-Sigma DAC (1-bit/Bitstream), driven by the bit 3 of the output port 0x7000. . Fixed the graphics decode of clone 'Las Vegas, Nevada' - PEPSI Man: Fixed sometimes a spurious "0408" error pops up at boot/reset - Sport Fishing 2: Added complete dump - Vigilante: Fixed maincpu rom ($0) length to 32kb in clone (World, set 2) - Dipswitches & Input . Added DIP locations to big10 and umipoker.c . Fixed dipswitches in big10, cavesh3.c, famibox, hipai, srmvs and umipoker.c . Fixed inputs in cavesh3.c, doncdoon, famibox, hipai, kurufev, namcos22.c, odeontw2, srmvs, timecrs2, twrshaft and umipoker.c - Fixed rom names in aburner2 and loffire - Renamed (butasan) to (butasanj), (ddp3) to (ddpdoj), (ddp3a) to (ddpdoja), (ddp3b) to (ddpdojb), (ddp3blk) to (ddpdojblk), (m3optunla) to (m3optunl) and (smgpu3) to (smgpu1) - Description changes of Ace Driver: Racing Evolution (Rev. AD2), Ace Driver: Victory Lap (Rev. ADV2), Butasan (Japan, Japanese), Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JBA) (ID 04499), DoDonPachi Dai-Ou-Jou V100 (2002.04.05 Master Ver), DoDonPachi Dai-Ou-Jou V100 (2002.04.05.Master Ver), DoDonPachi Dai-Ou-Jou V101 (2002.04.05.Master Ver), EspGaluda (2003/10/15 Master Ver), GP Rider (World, FD1094 317-0163), GP Rider (US, FD1094 317-0162), Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver), Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver.), Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.), Options Unlimited (Barcrest) (MPU3), Rage of the Dragons (NGM-264?), Super Monaco GP (Japan, Rev A, FD1094 317-0124a), Super Monaco GP (Japan, Rev B, FD1094 317-0124a), Super Monaco GP (US, Rev A, FD1094 317-0125a), Super Monaco GP (US, Rev B, FD1094 317-0125a), Super Monaco GP (US, Rev C, FD1094 317-0125a), Super Monaco GP (World, 'Air Drive Cabinet', FD1094 317-0126), Super Monaco GP (World, Rev A, FD1094 317-0126a), Super Monaco GP (World, Rev B, 'Twin', FD1094 317-0126a), Time Crisis II (TSS2 Ver. B), Time Crisis II (TSS3 Ver. B), Time Crisis II (TSS4 Ver. A), Viper Phase 1 (USA, New Version, set 1), Zero Gunner (Export, Model 2A), Zero Gunner (Export, Model 2B) and Zero Gunner (Japan, Model 2B) - MAME: Fixed all HLSL stability issues except visible crease - Compiling: Fix for systems where getc() is a #define rather than a function 0.143u6 - New games: 30 Test (Remake), Bingo (set 1), Candy Candy, Deluxe 5 (ver. 0107, 07/01/2000), PEPSI Man, Slot Poker Saiyuki (Japan), Super Shot and Umi de Poker / Marine Paradise (Japan). - New Non-Working games: Funcube 3 (v1.1), Mahjong Momotarou (Japan), Nudge Accumulator (Summit Coin), ShootOut (Jpm / Whitbread) (IMPACT) and Ultimate Nudge (Summit Coin) - New clones: Bingo (set 2), Croupier (Playmark Roulette v.20.05), Exvania (World), Ikari Three (Japan, Rotary Joystick), Mushihime Sama Futari Ver 1.5 (2006/12/8.MASTER VER. 1.54.), Raiden II (set 8, US Fabtek, Easy Version), Trivial Pursuit and Video Poker (v1403) - New drivers: 30test.c, bfm_sc45.h, sshot.c, sumt8035.c and umipoker.c - 68000 CPU: Fixed another m68k buffer overflow bug - MC68HC11 CPU . Implemented default INIT register for MC68HC11 CPU core, necessary for Namco's 30 Test HC11 sub-variant to work properly . Implemented preliminary Free Running Counter timer . Implemented save support for MC68HC11 CPU core . Added ROL EXT, ROL INDX, ROL INDY, STS DIR opcodes to the HC11 CPU core - Western Digital floppy disk: Connected WD17xx Side Select Output for variants that support it - de_3.c and de_3b.c: Added M6809 CPU2, TMS32015 and BSMT2000 sound - bfm_sc4.c: Replaced 68020 CPU with 68000 - eolith.c . Added missing cpu2 rom (BAD DUMP) to Hidden Catch 2 . Added missing cpu2 rom (BAD DUMP) to clone Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected) - m72.c: Added I8751 MCU dump for Image Fight and clone X Multiply (Japan, M72) - megasys1.c . Removed deprecat.h usage from driver . Added preliminary MCU handshake simulation sequence for Astyanax, Hachoo!, Jitsuryoku!!, Plus Alpha and Saint Dragon and removed ROM patches (ID 00201) . Fixed attract mode behaviour in Cybattler (ID 00364) . Implemented inputs for Avenging Spirit clones E.D.F. : Earth Defense Force (bootleg) and Monky Elf (Korean bootleg of Avenging Spirit) - model3.c: Added Model3 drive board ROMs for Scud Race, Scud Race Plus, Sega Rally 2 and Daytona USA 2 - mpu4/5.c: Fixed games running cause "validation checks failed" message (ID 04480) - ms32.c: Fixed sound (ID 04488). The actual Mega System 32 PCB mobo only outputs mono sound. There is a connector on the PCB for a second speaker but it is still only in mono (no stereo effects in the music). - namcofl.c, namconb1.c, namcond1.c, namcos12.c, namcos22.c and namcos23.c: Fixed C352 sound clock speed - namcos11.c: Fixed M37702 CPU2 and C352 sound clock speeds - namcos22.c . Cleaned up inputs and added default NVRAM where useful . Fixed Ace Driver crash from buffer overflow (game crash during attract mode and when passing the first checkpoint on the first track and was heading off the track, it crashed) . Fixed Ace Driver: Victory Lap crash from buffer overflow (crash during attract mode) (ID 00136 and 02008) and game cannot insert coins (ID 03541) . Properly emulated step lock motor status for the skiing games (Alpine Racer, Alpine Racer 2 and Alpine Surfer) . Fixed missing background graphics when choosing Hard course in Cyber Cycles (ID 01949) . Fixed Dirt Dash crash due to pointrom size, the game still doesn't work though. . Improved display fader in Rave Racer (sudden in-game darkness) (ID 02543) - naomi.c: Added NAOMI drive board ROM for Ferrari F355 Challenge - neodrvr.c . Finished to document used PCB's for cartridges . Finished removal of .bin extension in favour of chiplabel.socketlabel naming convention - raiden2.c . Update Raiden2 driver with GURU-style README for Raiden 2 PCB itself, based on the Raiden DX Guru-README . More minor notes about different raiden 2 set sound roms and suspected (but as of yet unproven) version order - suprnova.c: Figured out BIOS loading - whitestar.c . Added Whitestar main CPU FIRQ, fixed main/DMD CPU comms and DMD VRAM is now populated. . Correct sample loading for games with 4Mbit ROMs . Correct sample ROM loading for games with 8Mbit sample ROMs . Moved DECO BSMT2000 sound board out to a device shared between Whitestar and Tattoo Assassins - Further major organization, documentation and reordering of numerous (over 1700) gambling / Fruit machine titles covering multiple systems - Dog Patch: Added shot sounds - King Derby: Improved sprites and added preliminary 7-seg artwork - Nibbler . Various clean-ups . Set up Nibbler and clones to allow the Pioneer Balloon sound rom as OPTIONAL as some board configurations has this rom on board. If it is missing from your romset, the game will be allowed to play without the music is desired. . Nibbler and clones have been reordered and renamed based on version information . Added notes to the driver. Note: Version Number => Hold DOWN on controller after crosshatch appears. A number will show up to the right of the primary game creator's initials "JU". The music that has been in MAME for this game since it was first added is not from Nibbler! IC51 is a leftover from the game board to which the conversion kit for Nibbler was applied, a Pioneer Balloon, and is where MAME's original rom dump came from. Both the dedicated cabinet boards and the conversion kit boards for Nibbler never came with nor do the manuals for them list a "iC51" in the parts list breakdown. In fact, sound roms between different games using the snk6502 custom sound can largely be interchanged with another using the same. Currently in MAME, this IC51 from Pioneer Balloon is set as as OPTIONAL rom, allowing you to still play Nibbler (with/without music if you wish) without needing to adjust the source and recompile. - NeopriSP Retro Collection: Replaced M1 audiocpu rom with proper dump - Reel'N Quake!: Added basic PCB layout - Sauro: Update SP0256 core to use correctly ordered resroms. Updated Sauro driver to use correctly ordered sp0256-al2 resroms. - Scion . Fixed cocktail controls for Scion and clone . Took ROM_LOAD_OPTIONAL out of ROM_START that uses the audiocpu rom from scionc for scion. The original Scion audiocpu is not emulated correctly, is a known issue, and was only covered up by the use of this other dump from scionc. - Tattoo Assassins: Moved DECO BSMT2000 sound board out to a device shared between Whitestar driver and Tattoo Assassins. Fixed M6809 CPU2 clock speed to 1789790 Hz and region audiocpu to soundcpu. - Uncle Poo: Fixed crash before OK in debug build (ID 04417) - Input port: Fixed redefine controls in input (ID 04368) - Renamed (exvania) to (exvaniaj), (futari15) to (futari15a), (ikari3) to (ikari3u), (ikari3nr) to (ikari3), (nibbler) to (nibbler6), (nibblera) to (nibbler), (nibblerb) to (nibbler8), (pmroulet) to (croupiera), and (rrf) to (ridgeracf) - Description changes of Croupier (Playmark Roulette v.09.04), Ikari III - The Rescue (US, Rotary Joystick), Ikari III - The Rescue (World, 8-Way Joystick), Metal Slug 4 (NGH-2630), Metal Slug 5 (NGH-2680), Metal Slug 5 (NGM-2680), Mini Vaders, Metal Slug 4 (NGM-2630), Multi Champ (World, ver. 2.5), Nibbler (rev 6), Nibbler (rev 9), Nibbler (rev 8), Nibbler (Olympia - rev 8), Raiden II (set 6, Easy Version), Raiden II (set 7, US Fabtek, Easy Version), Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGH-2400), Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGM-2400), Ridge Racer (Rev. RR2 Ver.B, World, 3-screen?), Ridge Racer 2 (Rev. RRS1 Ver.B, Japan), Ridge Racer 2 (Rev. RRS2, World), Ridge Racer Full Scale (World), Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored), Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored), Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720), Silhouette, SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690), SWAT Police, The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGH-2420), The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420), The King of Fighters 2001 (NGH-2621), The King of Fighters 2001 (NGM-262?), The King of Fighters 2002 (NGM-2650)(NGH-2650), The King of Fighters 2003 (NGH-2710), The King of Fighters 2003 (NGM-2710), The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430)(NGH-2430), Trivial Pursuit (New Edition) (prod. 1D) (Protocol) and Trivial Pursuit (New Edition) (prod. 1D) - MAME: Allow region tags starting with a : to mean "absolute" so devices can access the parent base driver's ROM regions - SDLMAME: Fixed SDLMAME does not build in OpenBSD (ID 04483) 0.143u5 - New Working games: Caveman Ninja (bootleg), Free Kick, Peter Pan (bootleg of Hook), Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters) and Ridge Racer 2 - New Non-Working games: Fighting Bujutsu - New clones: 1943: Midway Kaisen (Japan, Rev B), Cluedo (prod. 2D) (Protocol), Coronation Street Quiz Game (Protocol), G Force (Jpm) (IMPACT) (15GBP Jackpot), Hangman (JPM) (Protocol), Hi Impact (Jpm) (IMPACT) (15GBP Jackpot), The King of Fighters '97 (Korean release), Outlaw (Jpm) (IMPACT, Club?), Outlaw (Jpm) (IMPACT, v3) (Protocol), Rad Rally (Japan), Red Arrow (Whitbread / Jpm) (IMPACT), Scrabble (rev. F) (Protocol), Tempest (rev 1, Revised Hardware) and Trivial Pursuit (prod. 1D) (Protocol) - New drivers: cobra.c, ecoinf1.c, ecoinf2.c, ecoinf3.c, jeutel.c, spectra.c and unkfr.c - Freescale 68340 CPU . Preliminary support for MC68340 (CPU32). Reorganized to facilitate C++ conversion . Use 68340 instruction table for 68340, cpXXX instructions are 020/030 only, add CINV, CPUSH stubs for 040. - M377xx CPUs . Respect the restored mode bits for PUL . Proper cycle counts for PSH/PUL . Fixed flags for multiply/division and divide by 0 interrupt . Pass program bank to debugger hook so breakpoints work outside of bank 0 . Fixed interrupt flags for internal peripherals, correct BBC/BBS when running outside of bank 0 . Several other interrupt timing and priority fixes - C352 sound: Don't try to play zero-length samples - Ensoniq ES5503 sound: Converted to modern device, improved IRQ timing. - chihiro.c . Various changes and improvements to the Chihiro emulation . Modifies the IDE device (idectrl.c) so it supports cases where it is not connected to an hard disk, but to some different hardware. . Added PC devices 8259 PIC, 8253 PIT and IDE controller . Added "chihiro" command with subcommands "jamdis", "dump_string", "dump_process", "dump_list" and "help". . Updates the smbus controller and adds stubs for the pic16lc, cx25871 and EEPROM smbus devices. . Updates the memory map for the newly added devices . Fixed the size of the "others" region . Added hack for the missing dump of the smbus EEPROM - globalfr.c: Filled in a little more of the memory map - naomi.c . Added NAOMI rev "A" Japan BIOS, original Korean BIOS as well as rev "D" Korea . Fixed duplicate file entries in each NAOMI set (ID 04477) . Added new rom key to Animal Basket - neodrv.c . Continued to document used PCB's for cartridges . More removal of .bin extension in favour of chiplabel.socketlabel naming convention . Correct layout of 'Pleasure Goal' according to original cart . Added correct v1 to Pulstar . Added redumped c1/c2 and v1 to clone 'Quiz Daisousa Sen - The Last Count Down (Korean release)' - pluto5.c: Preliminary support for MC68340 (CPU32). Replaced 68020 CPU1 with Freescale 68340. - segas24.c . Fixed graphic artifacts and speed drop during gameplay in Crack Down (ID 03195) . Fixed Gain Ground, only half of the game's frames are rendered . Fixed missing gfx in Quiz Mekurumeku Story (ID 04475) . Fixed Scramble Spirits, only half of the game's frames are rendered (ID 03641) - taitoair.c . Preliminary work at the projection calculation for 3D eye-space points in Air Inferno . Implemented double buffering and improved colors for 3D in Top Landing - whitestar.c . Make modern, add sound system. No work on main CPU part yet . Added some Stern Whitestar older revisions - Caveman Ninja: Fixed layer enable in clone Caveman Ninja (bootleg), giving it working status. - Hook: Hooked up sound, fixed layer offsets in clone Peter Pan (bootleg of Hook) - Mega Man 2: The Power Fighters: Decoded graphics in clone 'Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)' - Mr. Drillerm Tetris the Absolute The Grand Master 2, Tetris The Grand Master: Changed 8-way Joystick to 4-way - Pocket Racer: Fixed Pocket Racer runs too fast (ID 02700). Fixed M37702 CPU2 and C352 sound clock speeds. - Raiden: Fixed some music channels go out of sync after a while in clone Raiden (alternate hardware) (ID 00961) - Raiden II: Added comment about new raiden2 rom combination, added missing PALs as undumped, fixed IC locations on several sets. - Speed Spin: Fixed graphics glitches in Speed Spin on character select screen - Spikeout Final Edition: Redumped user1/3 roms - Tempest: Correct the rom labels, description and documentation for the revised hardware rev 3 of Tempest. Added DIP locations for the Tempest sets. - Terra Force: Verified correct sprite roms for clone Terra Force (Japan) - Splitted (ec_barx) into (ec_barx), (ec_barxo) and (ec_barxmab). Splitted (ec_casbx) into (ec_casbx) and (ec_casbxo). Splitted (ec_supbx) into (ec_supbx) and (ec_supbxmab). Splitted (hb_gldpl) into (hb_gldpl) and (j6gldpl). Splitted (m5tempt) into (m5tempt) and (m5tempt2). - Merged (ec_barxd) with (ec_casbx). Merged (ec_big7), (ec_spbg7) and (ec_supb7) into (ec_big7) and (ec_spbg7mab). Merged (ec_bxd7s) and (ec_magbr) into (ec_bxd7s). Merged (ec_casrb), (ec_suprb) and (ec_supsl) with (ec_redbr). Merged (ec_mag7s), (ec_cool7) and (ec_barx7) into (ec_mag7s). - Added DIP locations to dday and tempest - Fixed rom names in segas32.c, tempest and terraf - Renamed (1943j) to (1943ja), (goldgam2) to (goldgkitb), (m5ddrag) to (m5dragnd), (tempest) to (tempest3) and (tempest3) to (tempest) - Description changes of 1943: The Battle of Midway (US, Rev C), Bar 5 (older PCB) (Electrocoin), Bar X Diamond 7s (2006 COOL7) (Electrocoin) (?), Italian Job (Maygay) (EPOCH, v2.1), Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai (NGM-033)(NGH-033), Golden Palace (Qps / Mazooma), Outlaw (Jpm) (IMPACT, v3), The King of Fighters '96 (NGM-214), The King of Fighters '96 (NGH-214), The King of Fighters '97 (NGM-2320), The King of Fighters '97 (NGH-2320), The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340), The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340), Fright Night (Empire) (MPU4, v4.1X), Fright Night (Empire) (MPU4, v4.1), Fright Night (Empire) (MPU4, v4.1i), Fright Night (Empire) (MPU4, v?.?), Screwin' Around (Global) (MPU4, v0.8), Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219), Phoenix (Irecsa / G.G.I Corp, set 1), Phoenix (Irecsa / G.G.I Corp, set 2), Raiden (alternate hardware), Rescue (bootleg), Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222)(NGH-222) and Sharp Shooter (Voodoo) (Scorpion ?) - MAME . HLSL fixes . Created two flags, -hlsl_ini_write and -hlsl_ini_read. The former enables custom HLSL INI writing explicitly, the other enables loading of the same. . Fixed disappearing aperture effect when using custom INI files . Fixed diagonal seam on some games, for serious real this time . Fixed phosphor simulation, now works as expected . Fixed MAME freezes with a hlsl .ini file (ID 04397) . Only report samples audit result for sets with required samples . Fixed segfault when using -verifysamples (ID 04476) - MESS . Floppy refactor slightly. Name, descrition, etc are now an intrinsic property of converters. . Added brand-new MFI (MESS floppy image) support . Fixed the MFI format thanks to smf's help . Modernize amigafdc, but don't change a thing (yet) . Changed the internal floppy format to use magnetic cells. Temporarily move the full-track pll bit extraction in the Amiga FDC. . Added the easy ST formats (st_dsk) 0.143u4 - New games: Penky - New Working games: Densha de GO!, Densha de GO! 2 Kousoku-hen, Landing Gear and Mahjong Tian Jiang Shen Bing - New Non-Working games: Alien Front, Animal Basket, Push Over (Summit Coin) and S-Plus (SS4240) Coral Reef - New clones: Biomechanical Toy (Ver. 1.0.1884), The End (bootleg?), Missile Combat (Sidam bootleg), Phoenix (Irecsa / G.G.I Corp - set 2), Puzz Loop (Europe, v0.94), Rescue (Videl Games bootleg) and Shocking (Korea) - Removed games: Bee Line (Bellfruit) (Scorpion 1?), Every Second Counts (Bellfruit) (Scorpion 1?), Unknown 'Electrocoin' Fruit Machine 'a3' (Electrocoin) (?), Unknown 'Electrocoin' Fruit Machine 'a4' (Electrocoin) (?) and Unknown 'Electrocoin' Fruit Machine 'flat256' (Electrocoin) (?) - New drivers: bfmsys83.c, bfm_swp.c, globalfr.c, hazelgr.c, jpmsys7.c, maygaysw.c, mmm.c, splus.c and summit.c - Z80 CPU: Added an alternative way of register Z80 DMA read-back that directly change the read mask without passing from the init read sequence command, also moved around DMA counters incrementing. - 68000 CPU: Improved m68k disassembly of CINV and CPUSH - TMS32051 CPU . Fixed TMS32051 debug memory viewer . Work-around for TMS32051 crash on Taito JC system soft reset . Fixed a debugger crash if you try to view data memory in TMS32051 - SH-4 CPU: Added preliminary support for big-endian SH-3/SH-4 CPUs - OKI6376 sound: Fixed independent channel volumes, used by the games from the Road Hog era of MPU4 - SCSP sound: Added MVOL to the SCSP core, used for sound fade in/out effects. - YMZ280B sound: Several minor YMZ280B fixes, including the issue that caused glitched sfx in tecmosys.c - Floppy: Added generic track data descriptors - CHDMAN . Supported full/relative paths when creating CD ROM image . Added support for GDI with files containing space char . Added support for loading other image types to CDROM device, with use of chdman part of code. - Further major organization, documentation and addition of numerous (over 800) gambling / Fruit machine titles covering multiple systems (aces1.c, bfm_sc1.c, bfm_sc2.c, bfm_sc4.c, bfm_swp.c, bfmsys85.c, castle.c, cavesh3.c, coinmstr.c, jpmimpct.c, jpmmps.c, jpmsys5.c, maygay1b.c, maygayep.c, mpu4.c, mpu4vid.c, mpu5.c, pluto5.c, proconn.c and summit.c) . Added/Removed additional roms in beeline, ec_barx, ec_barx7, ec_oxocl, ep_25crt, ep_mario, escounts, inquiztr, j6arcade, j6bigwhl, j6bnkrcl, j6cas5, j6indy, j6kfc, j80fruit, m1apollo, m1bankbs, m1bargn, m1bghou, m1cik, m1cluecb, m1cluedo, m1coro, m1crzco, m1dxmono, m1htclb, m1infern, m1mono, m1nudbnk, m1onbus, m1pp, m1sptlgt, m1suppot, m1tp, m1winenc, m1wotw, m3blkhle, m4actclb, m4addrc, m4cashco, m4crzjwl, m4csoc, m4cstrik, m4sbx, m5addlad, m5all41, m5bigsht, m5bttf, m5bwaves, m5card, m5carwsh, m5cbw, m5centcl, m5grusst, monopldx, monopoly, pr_bulls, pr_crzbr, pr_dblup, pr_hotcs, pr_megmn, quizvadr, sc2catms, sc2dick, sp_gnat, trebltop, v4psi, v4reno, v4tetrs, v4time and v4turnov. - Atari drivers . Fixed 68000 CPU1 clock speed in arcadecl.c, atarig1.c, atarig42.c, atarigx2.c, batman.c, beathead.c (ASAP CPU) and metalmx.c . Fixed VSync in blstroid.c, cyberbal.c and skullxbo.c - mpu4.c: Fixed independent channel volumes in OKIM6376 sound chip, used by the games from the Road Hog era of MPU4. - naomi.c: Split the rom boards into a collection of devices - neodrvr.c . Continued to document used PCB's for cartridges . More removal of .bin extension in favour of chiplabel.socketlabel naming convention . Cleaned up Fatal Fury 2 . Cleaned up Fight Fever. Removed duplicate p2 and marked p1 bad dump. - stv.c . Moved ST-V game-specific overrides from saturn.c/stvinit.c to stv.c, makes games to correctly return stv.c instead of saturn.c if you use -listsource. . Moved change clock inside a timer and worked on NMI generation for SMPC, fixes most instances of 2 credits at start-up for ST-V games. . Rewritten ST-V IOGA system from scratch . Converted VDP2 registers into proper 16-bits parallelism . Added MVOL to the SCSP core, used for sound fade in/out effects. . Fixed mahjong panel input quirks for Virtual Mahjong and Virtual Mahjong 2 - My Fair Lady . Fixed game starts with 2 credits inserted in Shanghai - The Great Wall (ID 04366) . Fixed Soukyugurentai starts with 1 or more credit inserted (ID 02084) - taitoair.c: Moved 3D drawing functions outside of the screen updating function, this should help in preparation of properly fixing the 3D Graphics in it. Fixed palettesize. - taitojc.c . Implemented preliminary object RAM bankswitch, fixes Densha de Go garbage video objects if you coin up during attract mode. . Improved inputs in Densha de Go, promoted game to working state. . Faked the Mascon via an analog port, that fixes a bunch of issues with undefined input state for Densha de Go 1 and 2. . Fixed credit display in Densha de Go . Provided odometer and break table conversion for Densha de Go . Implemented 4bpp mode for object RAM, used by Densha de Go 2 credit display. . Fixed ROM loading in Densya de Go 2 Kousoku-hen, fixes booting in it. . Fixed Densha de Go 2 crash when entering into gameplay, game is now playable. . Fixed analog inputs in Landing Gear . Implemented gouraud shaded triangles, fixes Landing Gear messed up 3D. . Work around for DSP reset line in Dangerous Curves, allows it to reach title screen (no 3D yet due of other problems) . Fixed IRQ6 triggering in ? (it's a signal that's sent from DSP to Main to communicate that job is done) . Preliminary implementation of object RAM screen masking, used to cover left-right sides of the screen. . Added DSP idle skips, mostly noticeable during POST screens. . Fixed TMS32051 debug memory viewer . Work-around for TMS32051 crash on Taito JC system soft reset . Fixed a debugger crash if you try to view data memory in TMS32051 - tecmo.c: Added proper region to Gemini Wing and Silk Worm - tecmosys.c: Several minor YMZ280B fixes, including the issue that caused glitched sfx in Deroon DeroDero and Toukidenshou. Fixed YMF262 and YMZ280B clock speeds. - williams.c . Fixed screen garbage when frameskipping . Fixed blaster background color (eg. screen flashes when hit) . Added second sound board to Blaster and clone . Fixed M6808 CPU2 clock speed - Laser Disc: Fixed VSync in cliffhgr.c, deco_ld.c, dlair.c, esh.c, firefox.c, gottlieb.c, gpworld.c, istellar.c, lgp.c, segald.c, superdq.c and thayers.c - Cool Boarders Arcade Jam: Swapped YMZ280B roms - Doraemon no Eawase Montage: Fixed X1-010 CPU1 clock speed - Fever Soccer: Fixed SH-2 CPU1 clock speed - Magical Zunou Power: Provided some cheesy hacks to allow game to boot - Mahjong Tian Jiang Shen Bing . Added correct 4MB sprite rom . Decrypted sprites and palette . Added inputs and sidestepped protection - Shackled: Fixed garbled sprites (video\deckarn.c) (ID 04453) - Super Othello: Changed Z80 CPU1/2 and YM2203 clock speeds - Input port . During emulation, detect keyboard only when enabled (ioport.c) . Put 'Coinlock disabled' message under debug now (and -verbose) (ID 04461) . Added missing PORT_TOGGLE to chasehq, contcirc, dblaxle, roundup5 and sci (ID 04470) . Fixed input in pbillian - Dipswitch . Added DIP locations to tecmo.c and tbowl.c . Fixed dipswitches in tbowl.c and tjsb - Fixed rom names in blaster, neodrvr.c and silkwormj - Fixed year info in hedpanic, mchampdx and multchmp - Renamed (blaster30) to (blastero), (dendeg) to (dendego), (dendegx) to (dendegox), (dendeg2) to (dendego2), (dendeg2x) to (dendego23k), (fightfev) to (fightfeva), (fightfeva) to (fightfev), (ibarablk) to (ibarablka), (m4twzone) to (sp_tzbwb), (puzzloop) to (puzzloope), (silkworm2) to (silkwormj) and (v4addlad) to (v4addlad20) - Description changes of A Question of Sport (set 1, 39-960-107), A Question of Sport (set 2, 39-960-099), A Question of Sport (set 3, 39-960-089), Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008)(ADH-008), Andro Dunos (NGM-049)(NGH-049), Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056), Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056), Biomechanical Toy (Ver. 1.0.1885), Blaster (conversion kit), Blaster (location test), Caesar's Palace (Whitbread / Crystal) (IMPACT, set 1), Caesar's Palace (Whitbread / Crystal) (IMPACT, set 2), Capcom Vs. SNK Millennium Fight 2000 Pro (GDL-0004), Crime Watch (Ace) (sp.ACE, set 1), Daytona Millennium (Jpm) (IMPACT), Defence Command (Defender bootleg), Defense Command (Defender bootleg), Densha de GO! 2 Kousoku-hen, Densha de GO! 2 Kousoku-hen 3000-bandai, Densha de GO!, Densha de GO! EX, Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai (NGM-047)(NGH-047), Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai (NGM-069)(NGH-069), Fatal Fury Special / Garou Densetsu Special (set 1)(NGM-058)(NGH-058), Fatal Fury Special / Garou Densetsu Special (set 2)(NGM-058)(NGH-058), Gemini Wing (Japan), Ibara Kuro - Black Label (2006/02/06. MASTER VER.), Jokers Millennium (Barcrest) (MPU4), Joust 2 - Survival of the Fittest, Jyanshin Densetsu - Quest of Jongmaster, Mahjong Tian Jiang Shen Bing (V137C), Monopoly (Jpm) (SYSTEM5 VIDEO, set 1), Play It Again (Ace) (sp.ACE, set 1), Power Spikes II (NGM-068), Puzz Loop (Europe, v0.93), Puzzle Bobble / Bust-A-Move (Neo-Geo) (NGM-083), Quiz King of Fighters (SAM-080)(SAH-080), Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095)(NGH-095), Revolution (Castle) (MACH2000 V1rvE), Samurai Shodown / Samurai Spirits (NGH-045), Samurai Shodown / Samurai Spirits (NGM-045), Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (NGM-063)(NGH-063), Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087), Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087), Side by Side (Japan), Side by Side 2 (North/South America), Silk Worm (Japan), Silk Worm (World), Skill Trek (v1.1) (MPU4 Video, set 1), Super Bear X (MPU4?), Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football (NGM-061)(NGH-061), Tecmo Bowl (World), Terminator 2: Judgment Day (L-X), The King of Fighters '94 (NGM-055)(NGH-055), The King of Fighters '95 (NGH-084), The King of Fighters '95 (NGM-084), Top Hunter - Roddy & Cathy (NGH-046), Tornado (set 1, Defender bootleg), Tornado (set 2, Defender bootleg), Toukidenshou - Angel Eyes, Top Hunter - Roddy & Cathy (NGM-046), Twilight Zone (Ace/Bwb?) (sp.ACE), World Heroes (ALH-005), World Heroes (ALM-005), World Heroes 2 (ALM-006)(ALH-006), World Heroes 2 Jet (ADM-007)(ADH-007), Zero (set 1, Defender bootleg) and Zero (set 2, Defender bootleg). - MAME . General portability fixes . Fixed refreshspeed activating when not needed in all games and drivers (ID 04396) - MESS . Fixed handling of compatible systems for MESS (driver.h) . Removed support for PORT_CATEGORY from the core, since PORT_CONDITION is enough to deal with removable controllers in MESS. 0.143u3 - New Working games: Arctic Wins (4XF5227H03, US) and Enchanted Forest (12XF528902, US) - New Non-Working games: 838 gambling games - New clones: Draw Poker III / Dwarfs Den (Card Gfx) - New drivers: aces1.c, acesp.c, astrafr.c, bfm_sc4.c, bfm_sc5.c, bgt.c, ecoinfr.c, mpu2.c, pluto5.c. proconn.c, stellafr.c and unkpcp.c - 68000 CPU . Added FSIN, FCOS and FTAN using SoftFloat extensions . Fixed instruction support table ("fixes" taitojc regression) - 68030 CPU: 68040 FPU opcodes are somewhat available on a 030 when the FPU is added - H8S/2xxx CPUs: Added peripheral and IRQ support for H8S/2xxx CPUs. Rewrote H8S/2xxx timers. - H8/3xx CPUs . Implemented H8 LDM/STM, LDC/STC, double-shift versions of SHLL/SHLR, BIT immediate, ROTR.B and .L, and ROTXR.L. Makes Epoch and Cybiko happy. . Added SLEEP opcode . Fixed bset instruction . Added the rest of the H8S double-shifts, fixed up some bit operations and added 8-bit mulxs/divxs - SH-2 CPU: Fixed SH2 fractional FRC increments - ADSP21062 (SHARC) CPU: Fixed CPU in UNIDASM - YMF262: Re-added YMF262 to the FuukiFG3 driver (Asura Blade and Asura Buster), used in the music for FM channels. - YMF278B sound . Added status register BUSY and LD bits . Accurate timers (same as ymf262.c) . Added envelope attack rate . Added damping and pseudo reverb . Misc fixes/cleanups - MC146818 RTC: Removed hacks - TMS9928 video: Converted TMS9928a to a C++ device - Further major organization, documentation and addition of numerous (over 800) gambling / Fruit machine titles covering multiple systems - aristmk4.c: Various aristmk4 fixes, that gets Arctic Wins (4XF5227H03, US) and Enchanted Forest (12XF528902, US) to be working - aristmk5.c . Various fixes to Aristocrat MK-V HW . Fixed NVRAM & random crashes . Set default mode to game mode . Added watchdog timer . DRAM emulator error fixed . External Video Crystal Error fixed . Fixed 2 kHz timer - fuukifg2.c . Added notes about the difference of dipswitch settings as reported by Service Mode and actual effect for Go Go! Mile Smile . Correct a couple of dipswitches and added DIP locations to Go Go! Mile Smile and Gyakuten!! Puzzle Bancho - fuukifg3.c . Re-added YMF262 to Asura Blade and Asura Buster, used in the music for FM channels. . Correct dipswitches and added DIP locations to Asura Blade and Asura Buster . Fixed sound effects are looping in Asura Buster (ID 02505) - galdrvr.c: Fixed unable to coin in War of the Bugs and Zig Zag (ID 04448) - galpanic.c: Changed 8-way Joystick to 4-way in fantsia2, fantsy95, missw96, newfant, supmodel and wownfant - hikaru.c: Provided memory map documentation for Sega Hikaru HW - kingpin.c: Fixed visible area and VSync in King Pin and King Pin Multi-Game - maygayep.c: Replaced H8/3044 CPU1 with H8/3002 - model2.c: Fixed sound in Sega Model 2a/2b/2c - metro.c . Added additional documentation, added PCB layouts for Mouse Shooter GoGo, Bal Cube, Bang Bang Ball and Daitoride (YMF278B). Correct misc dipswitches and settings. Added DIP locations to Bal Cube, Bang Bang Ball / Battle Bubble, Mouse Shooter GoGo, Blazing Tornado, Grand Striker 2, Daitoride, Dharma Doujou, Gun Master, Karate Tournament, Lady Killer / Moeyo Gonta!!, Last Fortress, Mahjong Doukyuusei, Mouja, Pang Pom's, Poitto!, Puzzli, Sankokushi, Pururun, Sky Alert and Toride II. . Added PCB locations to roms where possible. Correct a few rom lables. Added basic PCB layout for Mouja. Changed clock speeds to values based on actual OSCs on the PCB. . Fixed YM2151 clock speed in daitorid, dokyusei and dokyusp . Fixed YM2413 clock speed in gakusai, gakusai2 and puzzli - mpu4.c: Crystal descramble code for MPU4 - namcos11.c: Fixed VSync - naomi.c: Fixed all NAOMI2 sets in the driver crashed after OK (ID 04439) - peyper.c: Improved and documented dipswitches in odin_dlx, odisea, poleposn, solarwap, sonstwar and wolfman (after verification of the Z80 code and the manuals when they were found) - re900.c: Fixed visible area and VSync in bs94 and re900 - saturn.c . Fixed DMA add values and a MVI condition shift flag bug in SCU DSP core . Fixed SCU DSP PC reads from SH-2 side . Major reorganization and clean-up of SMPC . Fixed sprites aren't drawn correctly in 'Pro Mahjong Kiwame S' (ID 04446) . Fixed incorrect sprite stretching during gameplay in Pebble Beach (ID 04447) - sg1000a.c: Fixed visible area and VSync - taito_b.c: Major input port restructure. Fixed several incorrect dipswitches and coinage settings. Made use of PORT_INCLUDE and PORT_MODIFY for regional sets to add correct regional coinage as needed. Added DIP locations all sets in the driver. - taito_f2.c: Fixed some incorrect dipswitches. Made use of PORT_INCLUDE and PORT_MODIFY for regional sets to add correct regional coinage as needed. Added DIP locations all sets in the driver. - taito_x.c: Standardized dipswitch notation and style through greater use of PORT_INCLUDE and PORT_MODIFY. Added DIP locations to Gigandes, Last Striker / Kyuukyoku no Striker and Balloon Brothers - taitojc.c: Fixed m68k instruction support table ("fixes" taitojc regression) - zn.c: Fixed crash after OK in all sets (ID 04438) - Cyber Tank: Added dipswitches as per "Super" on MW forum & linked Manual - Draw Poker III / Dwarfs Den . Update Dwarf's Den/Electrocoin hardware PCB diagram and notes . Changed description to 'Draw Poker III / Dwarfs Den (Dwarf Gfx)', as that is the set currently in MAME (verified with working machine) . Added dipswitches and locations for Dwarfs Den set from manual . Added new Dwarfs Den romset with only card graphics . Correct some errors on the power port pinout and other port descriptions - Flower . Further improved interrupts and sound driver . Fixed most of the hanging notes by adding channel effects (ID 04443). Fixed Z80 CPU1/2/3 clock speed. - Moonquake: Fixed crash before OK (ID 04440) - Navarone: Fixed cocktail Player 2 shot offset (ID 04444) - Pachifever: Fixed visible area and VSync - Penguin Adventure: Fixed visible area and VSync - Pesadelo: Fixed visible area and VSync - Pole Position II . Fixed high-score music has a hung note throughout (ID 04392) . Fixed clones Pole Position II (Atari) and Pole Position II (bootleg) does not start (ID 03301) - Sasuke vs. Commander: Fixed SNK6502 custom audio pitched too high (ID 04436) - Space Invaders DX: Added new plds - Tengai: Fixed bomb sound effect drags on after activating (ID 04319) - Video Hustler: Fixed 'Lives' dipswitch (ID 04434) - Dipswitch . Added DIP locations to drmicro.c, drtomy.c, f1gp.c, firetrap.c, freekick.c, funkybee.c, funkyjet.c, fuukifg2.c, fuukifg3.c, galpanic.c, galspnbl.c, karnov.c, paradise.c, pbaction.c, pcktgal.c, pktgaldx.c, taito_h.c, taito_l.c and warpwarp.c . Fixed dipswitches in cybertnk.c, drmicro.c, dwarfd.c, f1gp.c, fuukifg2.c, fuukifg3.c, galpanic.c, galspnbl.c, hustler, metro.c, paradise.c, pktgaldx.c, taito_b.c, taito_f2.c, taito_l.c, taito_x.c and tankbatt.c - Fixed rom names in cave.c, metro.c and pipedrm - Renamed (break) to (break86), (daitoa) to (daitorida), (m_bcgslm) to (sc2gslam), (m_bdrw10) to (sc2drwho10), (m_bdrw11) to (sc2drwho11), (m_bdrw12) to (sc2drwho12), (m_bdrw13) to (sc2drwho13), (m_bdrw14) to (sc2drwho14), (m_bdrw15) to (sc2drwho15), (m_bdrw16) to (sc2drwho16), (m_bdrw17) to (sc2drwho17), (m_bdrwh1) to (sc2drwho1), (m_bdrwh2) to (sc2drwho2), (m_bdrwh3) to (sc2drwho3), (m_bdrwh4) to (sc2drwho4), (m_bdrwh5) to (sc2drwho5), (m_bdrwh6) to (sc2drwho6), (m_bdrwh7) to (sc2drwho7), (m_bdrwh8) to (sc2drwho8), (m_bdrwh9) to (sc2drwho9), (m_bdrwho) to (sc2drwho), (m_bfocus) to (sc2focus), (m_brkfs1) to (sc2brkfs1), (m_brkfs2) to (sc2brkfs2), (m_brkfs3) to (sc2brkfs3), (m_brkfs4) to (sc2brkfs4), (m_brkfs5) to (sc2brkfs5), (m_brkfst) to (sc2brkfs), (m_clattr) to (sc1clatt), (m_cpeno1) to (sc2cpe), (m_lotsse) to (sc1lotus), (m_luvjub) to (sc2luvv), (m_roulet) to (sc1roul), (m_sptlgt) to (m1sptlgt), (m_supcrd) to (b85scard), (m4frnk) to (m4frkstna), (rambo3) to (rambo3p), (rambo3a) to (rambo3u), (rambo3ae) to (rambo3) and (v4cmazed) to (v4cmazedat) - Description changes of Break '86 (ID 04442), Club Attraction (UK, Game Card 39-370-196), Club Public Enemy No.1 (UK, Game Card 95-750-846) (Scorpion 2/3), Cyber Casino (Nova) (MPU4 Video), Dr.Who The Timelord (set 1, UK, Game Card 95-750-288) (Scorpion 2/3), Dr.Who The Timelord (set 18, not encrypted) (Scorpion 2/3), Dr.Who The Timelord (set 2, UK, Game Card 95-750-661) (Scorpion 2/3), Dr.Who The Timelord (set 3/4/5/6/7/8/9/10/11/12/13/14/15/16/17) (Scorpion 2/3), Draw Poker III / Dwarfs Den (Dwarf Gfx), Focus (Dutch, Game Card 95-750-347) (Scorpion 2/3), Frank 'n' Stein (Crystal) (MPU4, set 2), Grandslam Club (UK, Game Card 95-750-843) (Scorpion 2/3), Hi Flyer (Crystal) (IMPACT), Luvvly Jubbly (UK Multisite 10/25p, Game Card 95-750-808) (Scorpion 2/3), Miami Dice (Nova) (MPU4 Video), Mississippi Lady (Nova) (MPU4 Video), Piccadilly Nights (Nova) (MPU4 Video), Rambo III (Europe), Rambo III (Europe, Proto?), Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man, set 1), Screen Play (Maygay, MV1 Video, ver. 1.9, set 1), Spotlight (Maygay) (M1A/B), Supercards (Dutch, Game Card 39-340-271?) (System 85), The Big Breakfast (set 1 UK, Game Card 95-750-524) (Scorpion 2/3), The Big Breakfast (set 2/3/4/5/6) (Scorpion 2/3) and Top Poker (Dutch, Game Card 95-750-899) - MAME . Fix for the HLSL scanline jitter effect and HLSL phosphor decay . Added socket support to windows OSD . Various core and tools memory leaks fixes . Removed LOADBYNAME, since it is deprecated by using per device rom load_software_part_region. . Created makedev tool to generate array of devices, and created lst file according to current devices usage. . Option -romident format fix . Fixed memory unmap if mirror/mask was used . Fixed an endianness issue when doing a device mapping on a big endian bus (memory.c) . Fixed initialization order for slot devices . Removing MD5 support in ROMLOAD_* . Updated romload so devices are loaded from separate files . Default layout for 4 screens systems added . Changed listxml command to output device roms too - Compiling . Fixed cothreads to run on PowerPC Mac OS X . OS/2 build fixes . Fixed use of -oslog causes MAME to stop (ID 04437) 0.143u2 - New Working games: GP Rider - New Non-Working games: Quiz Punch, Revolution (Castle, Fruit Machine) and 1623 other gambling games - New clones: Arkanoid (Japan, older), Donkey King Jr. (bootleg of Donkey Kong Jr.), Hanafuda Hana Gokou Bangaihen (Japan), Magic Card Export 94, Mortal Kombat (Nifty Kombo 666, hack), Mortal Kombat (Nifty Kombo, hack), Mushihime Sama (2004/10/12 MASTER VER.), Raiders (Rev.3), Sagaia (dual screen) (World), Sauro (Philko license) and Savanna (Jungler bootleg) - New drivers: castle.c, jpmmps.c, jpms80.c and maygayep.c - 68000 CPU . Set read/write bit properly in special status on MMU bus errors . Added bus error input line, fixed FMOVEM, fixed issues with HMMU. . Generate a per-cpu-type jump table. Correct linef handling makes the Atari ST computer less cranky. - I386 CPU: Implemented FCLEX FPU instruction - PowerPC CPUs: Implemented correct BATs for PPC 601 and memory-forced I/O controller interface accesses - MC6845 CRT: Added the AMS40041 variant (used in the Amstrad PC1512) (MESS) - TMS9928 video: Fixed wrong address write and wrong sprite overflow (ID 02729) - Major organization, documentation and addition of numerous (over 1600) gambling game titles covering the following systems (jpmimpct.c, jpmmps.c, jpms80.c, jpmsys5.c, maygayep.c, maygayv1.c, mpu3.c, mpu4.c, mpu4vid.c and mpu5.c) - aristmk5.c: Fixed all sets crashed after OK in Debug built (ID 04419) - aristmk6.c: Updated documentation about known Aristocrat MK6 game titles - balsente.c . Fixed audio/sound is malfunctioning or completely missing (ID 04428). Fixed M6809 CPU1 clock speed. . Added 2nd Player trackball, button and a 2 player start button to complete Cocktail support in 'Gimme A Break'. Note: When mode is cocktail, normal player 1 controls becomes player 2's (ID 00460) (When cabinet is switched to cocktail mode, player 1 controls do not function.). . Player 1 (Blue) control re-addition in Hat Trick. Left player could not be controlled correctly. . Fixed Rescue Raider control orientation to match that of an actual control panel (steering = left stick, shooting = right stick) . Dropped redundant left/right joystick controls in Stompin' . Default controls changed in Toggle (prototype) to a normal joystick, rather then the left-side of a two-joystick setup - m62.c/phoenix.c: Amplified default contrast, this fixes washed out colors (ID 04242) - model3.c: Working sound communications - mpu4vid.c: Changed mpu4drvr.c to mpu4vid.c driver - neodrvr.c: More work for ROM naming conventions - saturn.c . Various Sega Saturn / ST-V fixes . Added DSP end IRQ event in SCU DSP core . Correct sound in Baku Baku Animal . Correct sound in Funky Head Boxers, also removed instadma hack, used by Funky Head Boxers. . Removed instadma hack used by Pebble Beach Golf . Fixes sound distortion in danchih and danchiq when you insert a credit (ID 04385) - seta.c . Implemented coin mode 1 & 2 for Arbalester, Blandia, Caliber 50, DownTown, Dragon Unit / Castle of Dragon, Meta Fox, Thundercade / Twin Formation and Twin Eagle . Fixed 1st level boss play completely invisible in Cotton Boomerang (ID 04431) - stepstag.c: Made some basic progress - taitoair.c: Give perfect interleave, improves 3D in Top Landing (still not perfect) - Arkanoid: Marked MCU rom as bad dump in Arkanoid (World) and clone (US, older) - The Big Pro Wrestling!/Tag Team Wrestling . Fixed maincpu irqs . Added resnet for color prom . Added coin counters and DIP locations - Chack'n Pop: Added a fully documented PCB layout. Fixed VSync. - Death Smiles: Added new 'game' rom (2007/10/09 MASTER VER) - Destroyer: Fixed irratic timing and crash (ID 04432) - GP Rider: Added missing maincpu roms (epr-13409.ic58 and epr-13408.ic63) to parent set (Game now playable) - Hotdog Storm: Added a PCB layout as well as some addition notes/information - Puzzli 2 Super: Fixed a silly bug protection routines - Space Invaders: Correct clone Cosmic Monsters overlay to match that from a reference video of an actual cabinet - Tetris Plus 2: Removed region gfx3 - Vulgus: Fixed screen rotated 90 degrees from normal (ID 04423) - Dipswitch . Added DIP locations to arbalest, calibr50, chaknpop, gghost, metafox, qzkklgy2, qzkklogy, sokonuke, speedspn, speglsht, sshangha, tagteam.c and twineagl . Fixed dipswitches in neodrvr.c and seta.c - Fixed rom names in 2020bb, 3countb, aof, arkanoid, bstars2, chaknpop, eightman, fatfury1, fbfrenzy, mx5000, quizdai2, roboarmy, sengoku2, socbrawl and stepstag.c - Renamed (adders) to (v4addlad), (arkmcubl) to (arkanoidjb), (bctvidbs) to (v4bios), (blox) to (v4blox), (bloxd) to (v4bloxd), (bwbtetrs) to (v4tetrs), (connect4) to (m4conn4), (crmaze) to (v4cmaze), (crmaze2) to (v4cmaze2), (crmaze2a) to (v4cmaze2a), (crmaze2d) to (v4cmaze2d), (crmaze3) to (v4cmaze3), (crmaze3a) to (v4cmaze3a), (crmaze3d) to (v4cmaze3d), (crmazea) to (v4cmazea), (crmazed) to (v4cmazed), (dealem) to (v4dealem), (eyesdown) to (v4eyedwn), (eyesdownd) to (v4eyedwnd), (ibarabl) to (ibarablk), (m_blsbys) to (m4blsbys), (m_ccelbr) to (m4celclb), (m_frkstn) to (m4frkstn), (m_gmball) to (m4gambal), (m_grtecp) to (m4andyge), (m_honmon) to (m5honmon), (m_hprvpr) to (m3hprvpr), (m_oldtmr) to (m4oldtmr), (m_popeye) to (j5popeye), (m_tbirds) to (j6tbirds), (mating) to (v4mate), (matingd) to (v4mated), (mpu3utst) to (m3tst), (mpu4met0) to (m4clr), (mpu4tst2) to (m4tst2), (mpu4utst) to (m4tst), (mushisam) to (mushisama), (prizeinv) to (v4psi), (quidgrid) to (v4quidgr), (quidgrid2) to (v4quidgr2), (quidgrid2d) to (v4quidgr2d), (quidgridd) to (v4quidgrd), (redhtpkr) to (v4redhtp), (renoreel) to (v4reno), (skiltrek) to (v4skltrk), (strikeit) to (v4strike), (strikeit2) to (v4strike2), (strikeit2d) to (v4strike2d), (strikeitd) to (v4striked), (timemchn) to (v4time), (turnover) to (v4turnov) and (vgpoker) to (v4vgpok) - Description changes of 3 Count Bout / Fire Suplex (NGM-043)(NGH-043), Adders and Ladders (v2.0) (MPU4 Video), Andy's Great Escape (Barcrest) (MPU4), Art of Fighting / Ryuuko no Ken (NGM-044)(NGH-044), Blox (v2.0) (MPU4 Video), Blox (v2.0, Datapak) (MPU4 Video), Blues Boys (Bwb) (MPU4), BwB Tetris v 2.2 (MPU4 Video), Celebration Club (Barcrest) (MPU4), Darius II (dual screen) (Japan, Rev 1), Darius II (dual screen) (Japan, Rev 2), Death Smiles (2007/10/09 MASTER VER), Eight Man (NGM-025)(NGH-025), EspGaluda II (2005/11/14 MASTER VER), Eyes Down (v1.3) (MPU4 Video), Eyes Down (v1.3, Datapak) (MPU4 Video), Football Frenzy (NGM-034)(NGH-034), Gamball (Barcrest) (MPU4), Honey Money (Vivid) (MPU5), Ibara (2005/03/22 MASTER VER..), Ibara Kuro - Black Label (2006/02/06 MASTER VER.), King of the Monsters 2 - The Next Thing (NGM-039)(NGH-039), Monopoly (Jpm) (SYSTEM5 VIDEO), Monopoly Classic (Jpm) (SYSTEM5 VIDEO), Monopoly Deluxe (Jpm) (SYSTEM5 VIDEO), MPU3 Unit Test (Program 5) (Barcrest) (MPU3), Mushihime Sama (2004/10/12 MASTER VER), Mushihime Sama Futari Ver 1.0 (2006/10/23 MASTER VER.), Mushihime Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54), Mushihime Tama (2005/09/09 MASTER VER), Prize Space Invaders (v1.1) (MPU4 Video), Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042)(NGH-042), Red Hot Poker (20p/10GBP Cash, release 3) (MPU4 Video), Reno Reels (20p/10GBP Cash, release A) (MPU4 Video), Screen Play (Maygay, MV1 Video, ver. 1.9), Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man), Screen Play (Maygay, MV1 Video, ver. 4.0), Skill Trek (v1.1) (MPU4 Video), Soccer Brawl (NGH-031), Soccer Brawl (NGM-031), Strike it Lucky (v0.5) (MPU4 Video), Strike it Lucky (v0.5, Datapak) (MPU4 Video), Strike it Lucky (v0.53) (MPU4 Video), Strike it Lucky (v0.53, Datapak) (MPU4 Video), Ten Quid Grid (v1.2) (MPU4 Video), Ten Quid Grid (v1.2, Datapak) (MPU4 Video), Ten Quid Grid (v2.4) (MPU4 Video), Ten Quid Grid (v2.4, Datapak) (MPU4 Video), The Crystal Maze (v0.1, AMLD) (MPU4 Video), The Crystal Maze (v1.3) (MPU4 Video), The Crystal Maze (v1.3, Datapak) (MPU4 Video), The Crystal Maze Team Challenge (v0.9) (MPU4 Video), The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video), The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video), The Mating Game (v0.4) (MPU4 Video), The Mating Game (v0.4, Datapak) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video), Time Machine (v2.0) (MPU4 Video), Turnover (v2.3) (MPU4 Video) and Vegas Poker (prototype, release 2) (MPU4 Video) - MAME . Fixed double-free of D3D->HLSL . Fixes for variable shadowing . AUDIT: If a rom is bad for a clone but is good for the parent then it doesn't count towards the clone being found. optimized also_used_by_parent & uses the length as well as hashes. - Compiling . Re-enabled scheduler cothread execution . Fixed autorelease pool warnings when running multithreaded on Mac OS X 0.143u1 - New games: Fruit Cocktail 2 (080707 Russia) - New Non-Working games: 50 Lions (set 1, 10156111), Akatsuki Blitzkampf Ausf Achse, Antony and Cleopatra (10177211), Asian Dynamite, Choy Sun Doa (20131511), Cristal Springs (10155811), Illvelo (Illmatic Envelope), Indian Dreaming (10130711) (Maximillion$ Jackpot Version), Pokasuka Ghost, Tap-a-Tune, Thai Princess (30127721), Whales Of Cash (20155711), Wheres The Gold (20177111) and Wild Ways (10130111) - New clones: 50 Lions (set 2, 10120511), Fruit Cocktail 2 (bootleg, 080707, banking address hack), Galivan - Cosmo Police (12/26/1985), Missile Command (rev 3), Pit Boss Megatouch II (9255-10-01 ROD, Standard version) and Shooting Love 2007 - New drivers: aristmk6.c and tapatune.c - I386 CPU . Load LDT before segment registers when switching tasks . Set IF after the instruction following STI . Reset IF after MOV SS or POP SS for one instruction . Fixed LSL instruction when modrm < 0xc0 - NEC Vxx CPUs: Implemented halt instruction - SH-4 CPU: Added support for DMA transfers between the processor and external devices - BSMT2000 sound: Fixed missing or corrupt sound in drivers using the BSMT2000 sound (btoads.c, dcheese.c, deco32.c and policetr.c) (ID 04402) - NVRAM: In case of multiple BIOSes, system NVRAM will be saved in form systemname_biosnum.nv in cases when non-default bios is used. For default bios selection all stay the same. - Added support for Aristocrat MK-6 Base games + BIOS - balsente.c . Fixed M6809 CPU1 clock speed . Updated the name of the Bally Sente sound board rom and added the date code . Added date code to Gimme A Break . Updated the undumped PALs in Rescue Raider, marked as non-cartridge and added the date code. . Updated the undumped PAL in Stompin', updated the cartridge type and added the date code. . Added the date code to Trivia Pursuit (Genus I) - chihiro.c and triforce.c . Documentation cleanups/updates . Fixed year info in mj2, ollie, scg06nt and wangmid (ID 04110) - cidelsa.c: Fixed COSMAC CPU debugger PC - mpu4drvr.c . Added reasonably accurate layout code to Crystal Maze games that should finally leave them playable . Improved video timings in The Crystal Maze: Team Challenge games, this fixes most bad palette bugs in it. - naomi.c . Hooked up M4 live decryption . Fixed BIOS order so rev H is default . Fixed rotation settings for Illvelo and Shooting Love 2007 . Fixed a minor BIOS H compatibility issue and added idle skip for BIOS H . Documentation cleanups/updates . Use a device map for maple-dc . Idle skipped NAOMI 2 BIOS . Modified naomibd device so that it allocates the memory for the GDROM data on startup based on a parameter that specifies the size in megabytes. . Fixed hang/black screen attempting to enter service Mode in all NAOMI sets (ID 04248) . Hooked up proper inputs to 18wheelr (peddle and pedal), alpilota (stick, paddle and pedal), confmiss (lightgun), crackndj (stick), crzytaxi (stick and pedal), dybb99 (stick), dybbnao (stick and pedal), jambo (paddle and pedal), lupinsho (lightgun), mok (lightgun), monkeyba (stick), shaktamb (stick), smlg99 (stick and pedal), sstrkfgt (stick, paddle and pedal), wsbbgd (stick and pedal) and zombrvn (stick) . House of the Dead 2: Hooked up idle skip. Implemented lightgun inputs, game is now playable with several gfx issues (due of the different PVR used). Provided EPROM dump for the I/O gunboard on HOTD2 PCB. . Added 0555 KRGB TA to FB conversion (video\dc.c), used by Ring Out 4x4. . Fixed year info in dynabb (04412) - nemesis.c: Added Bubble System BIOS - neodrvr.c . Tagged / Retagged several sets MVS/AES version . Begin to document used PCB's for cartridges . More removal of .bin extension in favour of chiplabel.socketlabel naming convention . More Neo-Geo work for ROM naming conventions and documentation of used PCBs for cartridges . Replaced p1 rom in janshin (old was bad dump) - nss.c, sfcbox.c and snesb.c . Update NEC DSP core to correctly generate the ov1 and s1 alu flags (and hence, SGN register contents) . Further upd7725 fixes, new code might actually work properly now, fixed uninitialized variables. - vigilant.c: Added support for Coin Modes 1 & 2 for the Meikyu Jima/Kickle Cubele and Vigilante - ATV Track: Preliminary work in order to get the second SH-4 into business - Gigas (MC-8123, 317-5002): Fixed problem with keyboard control in clone Oigas (bootleg) (ID 00042) - Judge Dredd: Implemented IDE controller command 0x70 (SEEK) makes Judge Dredd (Rev C Dec. 17 1997) and Judge Dredd (rev LA1, prototype) boot again (ID 04407) - Oriental Legend Special Plus: Improved protection simulation - Quasar: Fixed 3 players start mapped even though it is a 2 player game (ID 00335) - Sport Fishing 2: Fixed crash after OK (ID 04380) - Renegade: Fixed missing ADPCM audio (ID 04387) - Terra Force: Added gfx4 roms from Terra Force (Japan bootleg with additional Z80) to clone Terra Force (Japan), needs PCB verification. - Removed deprecat.h usage in megaplay.c, olibochu.c, panicr.c, paradise.c, psychic5.c, pturn.c, rabbit.c, subs.c, tmmjprd.c, tunhunt.c, vulgus.c, xmen.c and xorworld.c - Dipswitch . Added DIP locations to buccanrs, futspy, kikcubic, vball, vigilant, vulgus, wallc, wwfsstar and xxmissiom . Fixed dipswitches in shangril, suchie3, usagiym, vball, vigilant, vulgus, wallc and xxmissio - Fixed rom names in alpham2, balsente.c, burningf, cyberlip, gpilots, janshin, joyjoy, kof2000, matrim, mslug3, mutnat, nametune, quizdais, rescraid, ridhero, rotd, samsho5, stompin, strhoop and szaxxon - Renamed (galivan2) to (galivan3), (galivan) to (galivan2), (mfish_14) to (goldfish), (missile2) to (missile1), (missile) to (missile2), (vulgus) to (vulgusa) and (vulgus2) to (vulgus) - Description changes of Alpha Mission II / ASO II - Last Guardian (NGM-007)(NGH-007), Burning Fight (NGH-018)(US), Burning Fight (NGM-018)(NGH-018), Cyber-Lip (NGM-010), Dynamic Golf / Virtua Golf (Rev A) (GDS-0009A), Ghost Pilots (NGH-020)(US), Ghost Pilots (NGM-020)(NGH-020), Gimme A Break (7/7/85), Gradius (Japan, ROM version), Jyanshin Densetsu - Quest of Jongmaster (NGM-048), League Bowling (NGM-019)(NGH-019), Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660), Melty Blood Act Cadenza (Rev C) (GDL-0028C), Metal Slug 3 (NGH-2560), Metal Slug 3 (NGM-2560), Missile Command (rev 1), Missile Command (rev 2), Motor Raid (ID 04409), Mutation Nation (NGM-014)(NGH-014), Name That Tune (3/23/86), Nemesis (ROM version), Nemesis (World?, ROM version), Oinori-Daimyoujin Matsuri, Puzzled / Joy Joy Kid (NGM-021)(NGH-021), Quiz Daisousa Sen - The Last Count Down (NGM-023)(NGH-023), Rage of the Dragons (NGM-2640), Rescue Raider (5/11/87) (non-cartridge), Riding Hero (NGM-006)(NGH-006), Samurai Shodown V / Samurai Spirits Zero (NGH-2700), Samurai Shodown V / Samurai Spirits Zero (NGM-2700), Sengoku / Sengoku Denshou (NGH-017)(US), Sengoku / Sengoku Denshou (NGM-017)(NGH-017), Senko No Ronde (Rev A) (GDL-0030A), Stompin' (4/4/86), Street Hoop / Street Slam / Dunk Dream (DEM-004) (DEH-004), Super Missile Attack (for rev 1), The King of Fighters 2000 (NGM-2570) (NGH-2570), Trivial Pursuit (Genus I) (12-14-84), TwinBee (ROM version), Vulgus (set 1) and Vulgus (set 2) - MAME: Allow adding device-sourced memory maps in the main map and added a useful error detection (addrmap.c) - Compiling . Added two new commands to the UNIDASM utility: skip allows to skip the first bytes from the file. count specify that only bytes from the file must be disassembled. . Correct syntax in some inline assembly - MESS: Maskable interrupts that trigger while interrupts are disabled are not latched. Fixed Activision's Dreadnaught Factor (intv driver). 0.143 - New Working games: Warp Speed (prototype) - New Non-Working games: Super Donkey Kong / Super Bomberman 2 (Super Famicom Box), Super Donkey Kong / Super Tetris 2 + Bombliss (Super Famicom Box) and Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box) - New clones: Final Fight (USA, set 2), Leader Board (Arcadia, set 3), Off Road Challenge (v1.50), Street Fighter II: The World Warrior (USA 910306) and Terra Force (Japan) - Z80 CPU: Added BUSRQ and WAIT input lines - SH-4 CPU . Misc cleanups . Added support for VERSION register. NAOMI rev H BIOS now boots games. - C352 sound: Converted Namco C352 to modern C++ device - OKI6376 sound: Fixed state saving for OKIM6376 (hopefully) - EEPROM: Added tag name in EEPROM's verbosity - MC6845 CRT: Added DE, CURSOR, HSYNC and VSYNC line read members - CD-ROM: Converted CDROM mode 1 Form 1 sectors to mode 1 raw if requested (lib\util\cdrom.c) - Floppy drive: Added index and ready line read functions to floppy drive (emu\imagedev\flopdrv.c) - arcadia.c: Added OnePlay v2.20 BIOS - baraduke.c, namcos1.c, namcos86.c and skykid.c: Fixed immediate crash while using -DEBUG (ID 04343) - midvunit.c: Updated Cruis'n USA README to include Off Road Challenge - mpu4.c . Fixed line zero irq condition and provided a sync update for MPU4 HW games . Used a Dolbeck Systems flyer to correct the colours of the Connect 4 built-in layout - mpu4drvr.c: Added a temporary fix for Mating Game which disables the 'Line Zero' interrupt condition - saturn.c . Fixed SH-2 CPU1/2 clock speed, 68000 CPU3 and VSync . Fixed black screen instead of intro in Cotton Boomerang (ID 04384) - sfcbox.c . Slightly improved the preliminary emulation of sfcbox . Fixed a bad ROM dump in pss62 . Removed groms (grom1-1.bin and grom1-3.bin) from BIOS - Laser Disc . Fixed Halts at "Please Standby" in Cliff Hanger and clone (ID 04349) . Fixed crash/assertion after OK in Cube Quest and clone (ID 04342) . Fixed crash after OK in Fire Fox and clone (ID 04340) . Fixed M.A.C.H. 3, Cobra Command (M.A.C.H. 3 hardware) and Us vs. Them stalls on its opening diagnostic screen (ID 04347) . Fixed crash after OK in Sport Fishing 2 and clone (ID 04380) . Fixed crash after OK in all playable sets of deco_ld.c, dlair.c, esh.c, gpworld.c, istellar.c, lgp.c, segald.c and superdq.c (ID 04341) (ID 02369) . Re-added Z80 CPU in astron, begas, cobra, dlair, esh, galaxyr, gpworld, istellar, lgp, rblaster, spaceace and superdq . Re-added I8049 CPU in cliffhgr, cobram3, cubeqst, firefox, goaltogo and mach3 - Special Forces Elite Training: Fixed wrong SHA1 checksum in XML data for CHD (ID 04388) - Warp Speed . Added preliminary circle drawing (Game now playable) . Added analog controls - Dipswitch fixes in warpsped - Fixed rom names in armedf.c, cps1.c, gtg, rimrockn, sfcbox - Description changes of Final Fight (USA, set 1), Terra Force and Terra Force (US) - MAME . Added BYUU's cothread library, along with a wrapper class. Switched to using one cothread for each executable device. This functionality is strictly internal and should result in no changes in scheduling behavior. However, it now becomes possible to exit out of a device's execution in the midst of an instruction by calling machine().scheduler().make_active(). Note that this is somewhat dangerous for cores that have logic at the start of their execute loop to check for interrupts or other conditions, as those checks will be skipped upon resume, so consider this sort of early exiting to be highly experimental for now. Please Note: cothread usage is behind a compile-time define as per now, they will be reenabled in the next dev cycle. . Added device-relative functions for memory banking (emu\dimemory.c) . Added support for multi level slot devices 0.142u6 - New Working games: Mortal Kombat 4 (version 1.0) - New Non-Working games: Donggul Donggul Haerong, Special Forces Elite Training and Warp Speed (prototype) - New clones: Albatross (US Prototype?), Heated Barrel (Electronic Devices license), The Real Ghostbusters (US 2 Players, revision 2), Tekken 3 (Asia, TET2/VER.E1) and Tekken 3 (Japan, TET1/VER.A) - New drivers: warpsped.c - I286 CPU . Fix for Phar Lap and Borland 16-bit DPMI servers . Fixes the DOS/16M DOS extender that comes with Lotus 123r3 . Limit check of SS in push and pop instructions . Fix bunch of fault I286 restarts - I386 CPU . Implemented task gates, call gates, and task state segments (both 286 and 386) . Implemented triple fault CPU resets (used by OS/2) . x87: Basic implementation of FSTENV (used by OS/2) - OKI6376 sound . Added proper channel 2 support, and logging capabilities to OKIM6376 . Correct divider behaviour of OKIM6376 - needs ROM analysis to be complete, but all supported programs only use the default mode. . Fixed NAR timing in OKIM6376 to match datasheet figures . Fixed behaviour for OKIM6376 samples latched while their respective channel is playing (fixes missing audio in New Magic Card 'Skill Game' when won on first loop), and MPU4 sound test. - TMS5220 sound . Force OLDP and OLDE to be updated only on the A subcycle of IP=0 PC=0; this has no effect whatsoever on the output, it is merely to better document how the chip works . Emulate circuit 412 from the patent, which should prevent spurious clicks on interpolation-inhibited frame transitions. This may improve the tie fighter sounds in Star Wars and some clicking in 'Escape from the Planet of the Robot Monsters' and clone. - 8250 UART (magtouch.c, pcat_nit.c, machine\ins8250.c) . Fix enabling better mouse support in PC driver . Refactored interrupt line to use devcb - aristmk4.c . Added button panel artwork and renamed/remapped inputs for all games . Changed prom of 'Caribbean Gold II' to a more compatible version - aristmk5.c . Fixed screen offset . Changed parent/clone relationship for Dolphin Treasure (later version is now parent) . Added a US clear chip to the set chip ROMs . Removed the set chip loading from all games which don't use them . Cleaned up ROM name descriptions to match the aristmk4 format . Added SRAM support for Diamond Touch and Geisha - dec8.c: Correct the rom names for the Real Ghostbusters sets and added PCB locations - fuukifg2.c: Fixed missing graphics layer (gogomile and pbancho) (ID 04377) - highvdeo.c . Changed clock frequencies in High Video games to match what should be the correct OKI chip frequencies - those familiar with the boards may wish to confirm this is correct, as I couldn't find the clock signal for the chip on the PCB scans I've seen. . Added proper channel 2 support, and logging capabilities to OKIM6376. . Correct divider behaviour of OKIM6376 - needs ROM analysis to be complete, but all supported programs only use the default mode. Fixed NAR timing in OKIM6376 to match datasheet figures. Fixed behaviour for OKIM6376 samples latched while their respective channel is playing (fixes missing audio in New Magic Card 'Skill Game' when won on first loop). - jpmimpct.c . Various updates on the AWP drivers . Added configuration keys and fixed input in Thunderbirds - maygay1b.c: Various updates on the AWP drivers - midzeus.c . Added some alternate FIFO commands used by clone Mortal Kombat 4 (version 1.0) (Games now playable) . Hooked up the short-format draw command (used to draw life bars and shadows in Mortal Kombat 4) . Added support for alternate 4/8 bit texture formats (used by Mortal Kombat 4) - mpu4.c . Added MPU4 sampled sound hardware, an MSM6376, PIA and PTM combined to give dynamic pitch shifting for looping ADPCM samples. . Audio interface fix for MPU4 . Lamping fixes for MPU4 small extender . Added support for access of separate LED segments in MPU4. (indexed as 'mpu4ledXXX', where the first display unit takes 0-7, the second 8-15 and so on) . Fixed behaviour for OKIM6376 samples latched while their respective channel is playing and MPU4 sound test. . Fixed OKI6376 clock speed in m_blsbys, m_grtecp and m_oldtmr - mpu4drvr.c . Various changes for letting Mating Game boot and run, but there are still issues with timing. . Fixed OKI6376 clock speed in mating and renoreel - naomi.c . Added NAOMI/JVS coin add/sub commands (sub is used by Crazy Taxi) . Added code to manage NAOMI's M4 decryption - polepos.c: Convert to MCFG_SCREEN_RAW_PARAMS and scanline-based IRQ timing. This fixes bad game sound (ID 04373). - saturn.c . Many Sega ST-V / Saturn HW changes . Some improvements to the compressed texture protection for Decathlete - Kkot No Li: Fixed romanization from Korean - Ojanko Club: Fixed junk appears in tile shadows during gameplay (ID 04375) - Tekken 3: Fixed clones Tekken 3 (US, TET3/VER.A) and (Asia, TET2/VER.A) hangs with blue screen after attraction mode (ID 00765/00712). - Warp Speed . Added preliminary starfield emulation . Fixed vblank interrupt and removed rom patches . Added coin input - Dipswitch fixes in mpu4.c and mpu4drvr.c - Fixed rom names in dec8.c and namcos12.c - Renamed (dolphntr) to (dolphtra), (dolphtra) to (dolphntr), (ghostb) to (ghostb2a), (kkojnoli) to (kkotnoli), (nc96) to (nc96a), (nc96a) to (nc96), (nfb96) to (nfb96a) and (nfb96a) to (nfb96) - Description changes of Adonis (0200751V, NSW/ACT), Diamond Touch (0400433V, Local), Dolphin Treasure (0100424V, NSW/ACT), Dolphin Treasure (0200424V, NSW/ACT), Enchanted Forest (0400122V, Local), Geisha (0101408V, New Zealand), Golden Pyramids (MV4091, USA), Indian Dreaming (0100845V, Local), Kkot No Li (Kill the Bees), Magic Mask (MV4115, Export), Margarita Magic (01J00101, NSW/ACT), Mexico 86 (bootleg of Kick and Run), Mexico 86 (German speech) (ID 04329), Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001), MKV Set/Clear Chips (USA), New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB), New Cherry '96 Special Edition (v3.54, D PCB), New Cherry '96 Special Edition (v3.62, C1 PCB), New Cherry '96 Special Edition (v3.62, C1 PCB), New Cherry '96 Special Edition (v3.62, DK PCB), New Cherry '96 Special Edition (v3.63, C1 PCB), New Fruit Bonus '96 Special Edition (v3.63, C1 PCB), Queen of the Nile (0200439V, NSW/ACT), Reelin-n-Rockin (0100779V, Local), Sweet Hearts II (01J01986, Venezuela), Top Gear (4VXFC969, New Zealand) and White Tiger Classic (0200954V, NSW/ACT). - MAME . HLSL Updates . Reworked default shadow mask settings, eliminating rainbow banding and matching reference shots more closely. . Moved color power to occur after shadow mask, as it is intended to simulate nonlinear phosphor response. . Added a variable-width notch filter to the Y channel in NTSC post-processing, eliminating luma banding on e.g. CoCo 2 and Apple II. . MAME will now save an HLSL INI file on the first run of a game that doesn't already have an INI file . HLSL INI files must have their parameters left in the order in which they are saved out . Fixed a diagonal 'crease' visible on the screen in HLSL mode . Memory . Stop being stupid and call the extremely well written populate_range_mirrored code through map_range when appropriate, which is most of the time. . Fixed some potential memory leaks and NULL pointer deferences as well as removing some redundant checks . Disable the default sequence recognition for now (emu\inptport.c). TODO: Find what the default_seq/ITEM_ID_SEQ_DEFAULT is supposed to do, besides crashing MAME. . Added basic display of slot info in -lx (emu\info.c) . Added a fix for -listclones displaying parents as clones when it uses a BIOS (emu\clifront.c) . Fixed MAME -h points to incorrect usage file (ID 04298) . Added support for starting softlist item directly without marking image device to be mounted on. If soft item is found it will be loaded on first image device that have needed interface defined. . Fixed CHDMAN GCC 4.6 build . SDLsocket Workaround for a problem in the detection of TCP/IP socket address . Fixed typo in lib\util\opresolv.c (ID 04376) - Compiling: Removed duplicated includes from INCPATH - Debugger . Added image devices support to debugger . Added image devices menu to debugger (windows only for now) . Fixed display of physical addresses in the debug memory viewer 0.142u5 - New games: Reality Tennis and Super Ball (Version 1.3) - New Working games: Baryon - Future Assault, Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA, Compact PCB), Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA, Compact PCB) and Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA, Compact PCB). - New Non-Working games: Arctic Thunder, Death Smiles, EspGaluda 2, Ibara Kuro, Ibara Kuro - Black Label, New Hi-Low Poker and Panicuru Panekuru - New clones: Dream Crown (Set 2), Harley-Davidson and L.A. Riders (Revision B), Motocross Go! (MG2 Ver. A), Mushihime Sama Futari Ver 1.0, Nouryoku Koujou Iinkai (prototype) and Pit Boss Superstar (9221-10-00A) - New drivers: rltennis.c - 8086 CPU . Fixed imul instruction . Fixed i86 initial CS on reset - I286 CPU: Enabling 287 emulation by trapping when needed - uPD7801/7810 CPUs: Added SKIT_F0 opcode - NEC Vxx CPUs . Only display "byte/word ptr" in the NEC disassembler when it's actually needed to resolve ambiguity (same as the i386 disassembler) . Fixed POP, POPF, PUSHF and flags for V20 core - OKI6376 sound: Added echo emulation to the sound chip (highvdeo.c, maygay1b.c and mpu4.c) - SN76489 sound . Changed name of SN76489 variant used in Sega Master System and Megadrive/Genesis from SMSIII to the more technically accurate 'SEGA VDP PSG', as the PSG in question was not only used on the mark 3 units (hshavoc.c, megadrvb.c, megaplay.c. megatech.c, puckpkmn.c and segae.c). . Switch SEGA System E to use the SEGAPSG SN764xx variant, as it uses two SEGA 315-5124 VDPs which have the SEGAPSG integrated. Should slightly improve sound. - TMS52xx sound: Minor updates to the TMS52xx comments and the disabled-by-default pulse excitation code to better match how hardware would probably work. - 8259 PIC: Fixed edge triggering and non-specific EOI - PSX hardware (konamigq.c, konamigv.c, ksys573.c, namcos10/11/12.c, taitogn.c, twinkle.c and zn.c) . Converted PlayStation GPU to a device . PlayStation GPU splits 4 point polygons into triangles - IDE controller (machine\idectrl.c) . Clears error status on driver initialization . Implemented verify no retry command - KONAMI K053250: Turn custom chip into a modern device (mystwarr.c, overdriv.c and xexex.c) - MC146818 RTC: Implemented IRQ callbacks - MC6845 CRT . Added HD6345 CRTC-II variant to MC6845 device (namcos12.c) . Fixed hang at black screen w/border in some games using MC6845 (ID 04356) . Fixed MC6845 related crash on Four Roses (encrypted, set 1/2) - aristmk4.c: Fixed emulated time does not match actual in arcwins, eforest, fhunter and fhuntera (ID 04357) - atarig1.c and atarisy1.c: Added PORT_NAME to buttons to better illustrate actual use - ertictac.c: Greatly improved audio in Erotictac/Tactic and Poizone (not perfect) - naomi.c: Documentation update - neodrvr.c: Started to work on Neogeo ROM naming, mostly removal of .bin extension in favour of chiplabel.socketlabel convention. - megatech.c: Added some verified labels - mpu4.c . Added echo emulation to OKIM6376 sound . Fixed OKI6376 clock speed in Andy's Great Escape, Blues Boys (Version 6) and Old Timer - model2.c: Moved SCSP to main irq function into an external write line function - saturn.c . More accurate pixel clocks for Sega Saturn / ST-V . Added accurate hblank durations to Sega Saturn / ST-V HW . Fixed an ST-V window effect bug when it's in double interlace mode, fixes a graphic bug with Virtual Mahjong. . Fixed a rather silly bug with SCU DSP execute flag . Fixed Sega Saturn / ST-V start-up crash that was happening on some ends . Moved SMPC intback command inside a timer, removes a kludge for SMPC mask irq. . Moved SCSP to main irq function into an external write line function, fixes sound regression in Groove on Fight and Karaoke Quiz Intro Don Don!. . Fixed emulation hangs in Funky Head Boxers and Pebble Beach (ID 03205) . Fixed MAME crashes when using "-bios jp" in Radiant Silvergun (ID 04363) . Fixed shanhigw, sss and shienryu after pressing OK (ID 04364) . Fixed Virtual Mahjong crashes after select screen (ID 03872) . Fixed Segmentation Fault in Zen Nippon Pro-Wrestling (ID 03445) . Fixed Super Major League clone Final Arch failing the IC13 test . Fixed multi cart support in Final Arch and Puzzle & Action: Sando-R . Added CD/DA audio and changed VSync to 59.826048 Hz - segae.c . Switch SEGA System E to use the SEGAPSG SN764xx variant, as it uses two SEGA 315-5124 VDPs which have the SEGAPSG integrated. Should slightly improve sound. . Fixed Sega System E to use xtal.h, fixed MC8123 comment, clarified PCB diagram, verified xtal for Z80b. . Fixed Z80 CPU1 clock speed. Replaced SN76496 sound with 'SEGA VDP PSG' (3579545 Hz). - segahang.c: Fixed various widespread issues in all sets (ID 04339) - twincobr.c: Fixed emulated time does not match actual - Baryon - Future Assault: Added extracted protection data (Games now playable) - Four Roses: Fixed MC6845 related crash - Marvel Vs. Capcom: Clash of Super Heroes . Fixed reset at staff roll only (ID 03948) . Added new maincpu rom (mvce.04a). NOTE: The originally dumped ROM4 contains garbage instructions that cause the game to crash during the ending staff roll. The ROM has been repaired so that the code matches the other sets after decryption. - Mega Man 2: The Power Fighters: Dumped gfx/sound roms to clone Giga Man 2 - Over Drive: Fixed gfx4/5 rom loading (K053250) - Sega Touring Car Championship: Added ROM dump (epr-18261.ic9) from motor drive board CPU (code is Z80 compatible) - Super Crowns Golf . Hooked up the 2x PPI8255 . Fixed Z80 CPU1 and MSM5205 sound clock speed - Varia Metal: Fixed crash directly after OK (ID 04305) - Xexex: Fixed crash during Mask Rom Test (ID 04352) - Input port . Fixed Keyboard chars initialization (emu\inptport.c) . Low-level input upgrade: Classes now exist for input_codes, input_items, input_devices, and input_seqs. Also created an input_manager class to hold machine-global state and made it accessible via machine.input(). Expanded the device index range (0-255, up from 0-16), and the OSD can now specify the device index explicitly if they can better keep the indexes from varying run-to-run. . Fixed DIP locations are displayed incorrectly in all sets with PORT_DIPLOCATIONs (ID 04359) . Fixed PORT_CENTERDELTA in input ports overwrites PORT_KEYDELTA settings in Up Scope and other games (ID 04360) . Added confirm_quit option (defaults to off) (emu\emuopts.c). When on, pressing ESC you are prompted with a 'confirm quit' screen rather than directly quit emulation. - Save state . Fixed inverted check on anonymous timers prior to saving state. Also fix bug where we fail to ignore the permanent non-expiring anonymous timer. Added code to log timers, and we now log them at each save attempt as well as at restore time. Should fix most recent save state releated regressions. . Fixed Knights of Valour 2 (kov2) and Martial Masters freezed after load save state twice times (ID 04311) . Fixed save state does not work correctly in Burger Time (ID 04330) and Dig Dug (ID 04331) . Fixed game resets right after loading auto saved state (galaxian, frogger and many others) (ID 04327) . Fixed save states made while raster interrupts are active do not work in many M92 games (ID 04333) . Fixed loading a save state in '1945k III' works only once (ID 04296) - Fixed rom names in bakatono, bjourney, bstars, bstarsh, crsword, gigaman2, maglord, maglordh, mahretsu, minasan, mt_srage, nam1975, superspy, tpgolf and trally - Renamed (gigamn2) to (gigaman2) - Description changes of Bakatonosama Mahjong Manyuuki (MOM-002)(MOH-002), Baseball Stars Professional (NGH-002), Baseball Stars Professional (NGM-002), Blue's Journey / Raguy (ALM-001)(ALH-001), Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS) (Rev A), Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS) (Rev C), Cosmic Smash (JPN, USA, EXP, KOR, AUS), Crossed Swords (ALM-002)(ALH-002), Dream Crown (Set 1), Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA, Compact PCB), Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA), Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA, Compact PCB), Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA), Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA, Compact PCB), Gun Survivor 2 Biohazard Code: Veronica, La Keyboard (GDS-0017), Magician Lord (NGH-005), Magician Lord (NGM-005), Mahjong Kyo Retsuden (NGM-004)(NGH-004), Marvel Vs. Capcom 2 New Age of Heroes (JPN, USA, EUR, ASI, AUS) (Rev A), Minashanno Okageshamadeshu! Daishugorokutaikai (MOM-001)(MOH-001), Mobile Suit Gundam: Federation Vs. Zeon (2001-02-08), Mobile Suit Gundam: Federation Vs. Zeon (GDL-0001), Mobile Suit Gundam: Federation Vs. Zeon DX (GDL-0006), NAM-1975 (NGM-001)(NGH-001), Ninja Combat (NGH-009), Ninja Combat (NGM-009), Pit Boss Superstar (9221-10-00B), Super Major League / World Series Baseball (GDS-0010), The Super Spy (NGM-011)(NGH-011), Thrash Rally (ALM-003)(ALH-003), Top Player's Golf (NGM-003)(NGH-003), Virtua Tennis (USA, EXP, KOR, AUS) / Power Smash (JPN), Virtua Tennis 2 / Power Smash 2 (Rev A) (GDS-0015A), Virtua Tennis / Power Smash (GDS-0011) and Virtua Tennis 2 / Power Smash 2 (JPN) (USA, EXP, KOR, AUS) (Cart, Rev A) - MAME . Internal HLSL cleanup/updates . Removed aux texcoords . Restored software vertex processing due to low-end cards not doing hardware vertex processing . Removed unnecessary tristrip->trilist splitting . Restores D3D functionality on integrated chipsets and marginal cards . Switched to point-sampling through most of the shader chain to avoid non-intentional pixel smearing. . Correct alignment and scaling on the shadow mask and scanlines; dramatically reduces rainbow banding at non-oversampled resolutions. . Added the ability to render screenshots at arbitrary resolutions . Added the ability to record AVI videos (albeit with no audio) at arbitrary resolutions . Added a 43-tap-wide FIR-based NTSC filter with tunable Y, I and Q frequency response. NOTE (R. Belmont): It's intended for MESS, but if we ever want to redump the laserdiscs to be the raw NTSC signal (which would probably result in 200+ GB CHDs) it'll happily decode the image with no CPU time required. . Updated scanlines to have a user-tunable pixel-height ratio in addition to the current screen-height ratio . Fixed a VRAM leak that was causing many dynamic-resolution drivers to run out of memory mid-run . Split HLSL code into a separate file, d3dhlsl.c/h . Split drawd3d.c into a couple of headers . Fixed incorrect screen size when using HLSL (ID 04361) . Notice that for some HLSL effects you need to download and unzip this file (http://mamedev.emulab.it/kale/fast/files/artwork.zip) inside your artwork folder. This file will hopefully be inside the full package when it'll be released. . A thread for HLSL effects can you find here: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=256644&page=0&view=expanded&sb=5&o=&fpart=1&vc=1&new=#Post256644 . Memory . Stored legacy object and handler together in the same structure . Pass the legacy object/handler as a set_delegate parameter . Merged width-conversion functions together from the same source width . Build a structure with all possible delegate sizes . Separate delegates for the main access and the subaccesses . Split the subaccesses delegation information per-slot . Make the memdump file include a description of every subunit . Added utility methods to clean up colliding subunit masks and testing if any are remaining . Combined the map_range and handler_read/write() operations into one . Proxy the handler entry access when adding handlers . Tuck the unitmask into the proxy . Split the map_range function into a fixed entry mapping one and a dynamically allocating entry one . Make the proxy manage a list of handlers instead of a unique one . Added a handler copy function which works on subunits-only handlers . Finally allow different handlers on different subunits of the same address . Implemented depopulate_unused() . Changed the gc into a refcounter, for speed reasons. - Compiling: Fixed a use-after-free bug in build/verinfo.c - MESS: Fixed UNSP CPU core reset 0.142u4 - New games: Doraemon no Eawase Montage (prototype) - New Non-Working games: Baryon - Future Assault, Brixian, Frank 'n' Stein (unencrypted), Orbatak (prototype) and Popeye (20p/8 GBP Token) - New clones: Amidar, Champion Poker (v100) and Gunbarl (Japan, GNB4/VER.A) - Removed games: 3DO (PAL) and Vectrex - New/Updated artworks: atetris, batrider, bbakraid, chboxing, cheekyms, gekiridn, gunforce, hippodrm, lastduel, lastmisn, m_bdrwho and sbomber (http://mrdo.mameworld.info/mame_artwork_ingame.php?s=d#here) - 8086 CPU . Fixed shift instructions, helps detecting proper CPU . Fixed handling of invalid instructions in 0x60-0x6f section . Implemented POP CS and MOV CS,reg instructions that are 8086 specific - I286 CPU . Added LOADALL and triple fault resets . Added support for 16-bit protected mode far calls and segment privilege checks - I386 CPU and NEC Vxx CPUs: Fixed the disassembly of the "mov ax, mem" instructions (opcodes A0-A3) in the i386 and NEC disassemblers (cpu\nec\necdasm.c). The argument (the memory address) was being displayed as a signed number, which doesn't make any sense. - EEPROM: Removed legacy trampolines from eeprom_device, taking advantage of new input port support for delegates. - KONAMI K053252: Implemented an almost complete K053252 device emulation, adds accurate refresh rate timings and irq acks to many mid-90-era Konami games (dbz.c, hexion.c, moo.c, mystwarr.c, overdriv.c, qdrmfgp.c, rollerg.c, rungun.c, vendetta.c and xexex.c) - 8259 PIC: Updated device to be more according to documentation - MC6845 CRT: Converted device to C++ - PSX hardware (konamigq.c, konamigv.c, ksys573.c, namcos10/11/12.c, taitogn.c, twinkle.c and zn.c) . Modernised internal memory map . MDEC is now an internal device of the PlayStation CPU . Root counter & Serial I/O converted to internal CPU devices . Moved PlayStation IRQ code to sub device of the CPU - 3do.c: Changed 3DO (NTSC) to BIOS and removed 3DO (PAL). Added Orbatak (prototype). - bfm_sc1.c, bfm_sc2.c and bfmsys85.c: Managed to get the multiplexer/state machine emulated, amongst some watchdog fixes for BFM games. - galivan.c: Fixed incorrect scrolling (dangar, galivan and clones) (ID 04346) - saturnc . Major clean-up and state machine conversion for the Sega ST-V / Saturn driver . Implemented multi-cart support to ST-V driver . Changed region user1 to game0 . Added stvbios.nv NVRAM to BIOS - Buggy Boy/Speed Buggy: Fixed missing/corrupt graphics (ID 04350) - Champion Poker: Added inputs from the scratch for clone (v100) - Lucky Lady (Wing, encrypted): Added missing bipolar PROM dumps - Major Poker: Fixed visible area - Racin' Force: Fixed input regression, allowing the game to boot again. - Yam! Yam!?: Cleaned-up protection simulation - Input port . Switched input ports to use function-based constructors instead of tokens. Removed the old tokenizing helpers. Added basic classes for ports, fields, settings and DIP locations as a first step. These will be fully cleaned up later. Added machine() method to field to hide all the necessary indirection. Changed custom/changed handlers into generic read/write handlers and added wrappers to convert them to device read/write lines. . Changed input read/write and crosshair callbacks into delegates. Changed signature for callbacks to take an input_field_config reference instead of pointer. . Removed legacy trampolines from eeprom_device, taking advantage of new input port support for delegates. . Gave labels to many inputs in cps1.c, cps3.c, midtunit.c, midwunit.c and midyunit.c . Fixed inputs in jojo, jojoba and superwng - Fixed rom names in ptblank2 and tektagtac - Renamed (amidar) to (amidar1) - Description changes of Hexion (Japan ver JAB) - MAME . Initial frameworking for upcoming artwork updates . Implemented experimental HLSL post-processing support on Direct3D 9 targets . 5-pass post-processing: Upscale, Post-Process, Store Last Frame, Defocus 1 and Defocus 2. . Many tunable effects including: Scanlines, defocus, linear deconvergence, radial deconvergence, pincushion, RGB colorspace convolution, YIQ colorspace convolution, saturation, simulated dot crawl, simulated chroma subsampling, aperture masking, and more. . Requires a GPU that supports Shader Model 3.0 to be enabled and a powerful GPU, the entire pipeline consists of approximately 30 texel fetches and approximately 230 arthimetic ops. . Will supersample the framebuffer up to 9x in both X and Y, but this requires an enormously powerful GPU that has not been invented; users with Radeon 5000-class cards should limit themselves to 3x, Radeon 4000 to 1.5x. . The default configuration will NOT appear to do anything; it requires tuning to the user's liking. . Should nicely fall back in all cases except missing shaders, and it might fall back correctly in that case as well. Report any anomalies. . For obvious reasons, the Direct3D8 renderer cannont support this . HLSL Updates . Split color convolution and deconvergence into separate shaders for potential GPU savings down the line. . Added light and heavy variants of the color convolution shader, the former with YIQ colorspace removed. . Re-worked defocus to occur prior to shadow mask application, as it would be on a real monitor. . Split "pincushion" into "Pincushion" and "Screen Curvature", the former affecting the only the displayed image and the latter only affecting the shadow mask. . Made major fixes to CVBS simulation, significantly increasing color saturation. . Added magnet deconvergence via a shader uniform . Improved phosphorescence . Improved YIQ codec . Added adjustable color carrier in YIQ processing mode . Fixed resolution-change crash and likely D3D performance regression with -nohlsl on low-spec cards. . Created a new OSD function, osd_get_slider_list, which allows OS-specific slider controls. . HLSL Post-Processing Updates . The defocus pass is now switched off when defocus_x and defocus_y are zero, allowing finer-grained performance tuning. . Removed YIQ convolution from the main color-convolution shader and replaced it with a full composite encode/decode pass. This is slower, but looks amazing(ly like a terrible TV) and can be turned off. . More authentic NTSC dot crawl and bandwidth limiting - Compiling . New compile tools for building MAME (http://mamedev.org/tools/). Also move the hlsl & hash directories from the 0142u4_diff.zip into your MAME path. . Flush stderr, so the data is actually written when output is being redirected . Enable Visual Studio basic run-time checks in non-optimized builds . Fixed heap corruption detected by VS2010 RTC in merit.c (bigappg, casino5 and dodge), slither and slithera (video\qix.c) and ssingles.c (ID 04354) . Removed deprecat.h usage in halleys.c, hexion.c, galpanic.c and gradius3.c - Debugger . Fixed a tiny bug with the debugger hex dump command: The printable characters in ASCII range from 32 to 12*6*, not 127. . Fixed memory leaks when running the debug build of MAME without a game to start (ID 04324) 0.142u3 - New games: Super Wing and Vectrex/Spectrum I+ - New Working games: Fruit Bonus 3G and Gamball - New Non-Working games: 3DO, Cospure Tengoku 7, Fudol, Mahjong Mania, Mushihime Sama, Mushihime Sama Futari Ver 1.5, Mushihime Tama, The Nanpa and Quizard Rainbow 4.0 - New clones: 3DO (PAL), Gnome (080303 World), Gnome (bootleg, 080303, banking address hack), Gnome (bootleg, 080303, banking address hack, payout percentage 45), Gnome (bootleg, 080303, banking address hack, payout percentage 60), Gold Fish (020903, prototype), Multi Fish (030522), Roll Fruit (080327), Roll Fruit (080331), Spectrum I+, Sweet Life 2 (080320 World), Sweet Life 2 (bootleg, 080320, banking address hack set 1), Sweet Life 2 (bootleg, 080320, banking address hack set 2), Sweet Life 2 (bootleg, 080320, LOTTOGAME (I)), Sweet Life 2 (bootleg, 080320, VIDEO GAME-1 MD01) and Witch Card (German, WC3050, 27-4-94) - New drivers: 3do.c, cavesh3.c, superwng.c and vectrex.c - 8086/I386 CPUs: Fixed POP SP and POP ESP thanks to bug report for Xenix boot by bs666 - Dynamic Re-Compiling (drcbex64): Fixed op_debug implementation - PSXCPU . Adjusted MDEC timing to avoid lockups. Most FMVs now have fluent video. . Converted PlayStation DMA to an internal device to the CPU core. DMA to external devices can be set in the machine config, the old calls are still there until the rest of the code is converted. . Replaced PSXCPU with CXD8530AQ (namcos11.c) . Replaced PSXCPU with CXD8530BQ (konamigq.c and konamigv.c) . Replaced PSXCPU with CXD8530CQ (ksys573.c, namcos11.c, twinkle.c and zn.c) . Replaced PSXCPU with CXD8661R (taitogn.c and zn.c (ZN2 BIOS)) . Replaced CXD8661R with CXD8606BQ (namcos10.c) - Z80 CPU: Fixed Z80STI interrupts - Seibu sound: Fixed second ADPCM player in games using SEIBU_ADPCM (cabal, deadang and kothello) (audio\seibu.c) - 6840 PTM: Fixed mode check in set_gate() - 8255 PPI: Fixed interrupt enable - Flash ROM (intelfsh.c): Added support for Fujitsu 29DL16X - Floppy drive: Added 3.5" ED floppy drive type - KONAMI K051733 (bladestl.c, chqflag.c, fastlane.c, mainevt.c, labyrunr.c and nbmj8991.c) . Fixed K051733 math chip protection read-back registers 0x07 and 0x0e / 0x0f, finally fixing gameplay issues in Chequered Flag. . Made K051733 RNG to behave like an adder, improves pseudo-random events in Fast Lane. - MC146818 RTC: Fixed uninitialized variable found by Valgrind - MCCS1850: Added MCCS1850 RTC emulation and support for default NVRAM - RP5C01 and RP5C15 RTC: Fixed reset register bit masks - Seta X1-001/002 custom chips: Started unifying sprite implementations (cchance.c, champbwl.c, seta.c, taito_x.c and tnzs.c). Fixes pin setup to the right in Championship Bowling shows graphic errors (ID 02536). - Laser Disc . Removed Z80 audio CPU in astron, begas, cobra, dlair, esh, galaxyr, gpworld, istellar, lgp, rblaster, spaceace and superdq . Removed I8049 CPU in cliffhgr, cobram3, firefox, goaltogo, mach3 and usvsthem . Removed I8748 CPU and I8049 CPU in cubeqst - Removed deprecat.h dependancy and updated irqs accordingly from the following drivers: 8080bw.c, airbustr.c, albazg.c, argus.c, aristmk4.c, armedf.c, atarifb.c, avalnche.c, battlex.c, bigevglf.c, bionicc.c, bishi.c, bladestl.c, blockout.c, blueprnt.c, bmcbowl.c, bogeyman.c, bottom9.c, bsktball.c, bublbobl.c, buggychl.c, bwing.c, changela.c, chqflag.c, circus.c, cischeat.c, cloak.c, commando.c, cosmic.c, cshooter.c, darkmist.c, dbz.c, deadang.c, destroyr.c, discoboy.c, djmain.c, docastle.c, dogfgt.c, dooyong.c, dorachan.c, dragrace.c, enigma2.c, equites.c, esd16.c, espial.c, exedexes.c, exidy.c, expro02.c, fastfred.c, finalizr.c, firetrap.c, flower.c, flstory.c, gberet.c, gng.c, goindol.c, gsword.c, gunsmoke.c, itech32.c, jack.c, kyugo.c, ladyfrog.c, liberatr.c, m72.c, matmania.c, megaplay.c, meijinsn.c, metlclsh.c, mirax.c, mjsister.c, mlanding.c, mouser.c, namcos2.c, namcos21.c, naughtyb.c, nbmj8688.c, nbmj8891.c, nova2001.c, overdriv.c, pacman.c, paradise.c, photon2.c, polepos.c, popper.c, retofinv.c, rollrace.c, route16.c, sbugger.c, segag80r.c, segas18.c, seta.c, shisen.c, slapfght.c, snk6502.c, solomon.c, sonson.c, speedbal.c, srmp2.c, srumbler.c, sstrangr.c, strnskil.c, suna8.c, suprloco.c, tagteam.c, taito_l.c, tomcat.c, tsamurai.c, tunhunt.c, vastar.c, vigilant.c, vulgus.c, wecleman.c, wheelfir.c, wiz.c, xxmissio.c, zn.c and zodiack.c. - amaticmg.c . Fixed palettesize . Fixed gfx1 rom loading in am_uslot - armedf.c: De-stateized the NB1414M4 routines, and converted the correlated Armed F text tilemap to be 8-bits. - cave.c: Fixed corrupt graphics in many games (ID 04326) - cischeat.c . Fixed inputs and removed digital hacks . Added shifter display to the driver . Removed cheesy hack from F-1 Grand Prix Star II irq communications . Fixed 68000 CPU5 clock speed in F-1 Grand Prix Star II and Wild Pilot - expro02.c: Fixed sprite regression - konamigv.c: Konami GV documentation updates - m92.c and m107.c . Hooked up sound CPU interrupts properly, using the V35 builtin interrupt controller, rather than generating the vectors in the driver. . Cleaned up ROM mirroring, using AM_REGION macros in the address maps instead of memcpy()ing all over the place in the DRIVER_INITs. . Converted bankswitching to use configured banks. Only configure the banks and install the bankswitch WRITE_HANDLER in the games that actually use it (i.e. those with a full megabyte of program ROM). This and the previous change make the driver a lot less confusing to look at. . Converted both driver to use a scanline timer device instead of a hand-rolled one . Added save state support to m92.c. Everything necessary was already saved, I just had to add the tag. However, presumably due to the core emu_timer breakage (MT04330 and MT04331) the save states don't actually work at the moment. I've already reported this as MT04333. . Fixed maincpu rom loading in Dream Soccer '94 . Fixed maincpu rom loading in gunforc2, majtitl2 and nbbatman . Added GAME_MECHANICAL tag to World PK Soccer and clone - midtunit.c: Added input button labels - mpu4.c: Started adding support for the Crystal Gaming program card, and the link keys for setting parameters. NOTE: Frank 'n' Stein (unencrypted) (m_frkstn), not hooked up in the driver. - mpu4drvr.c: Fixed 'Integer Divide by Zero' crash in many sets (ID 04320) - naomi.c . Abstract the maple and jvs interfaces into a set of devices . Added Z80 CPU3 and 315-6146.bin rom to hod2bios, naomi, naomi2 and naomigd BIOS . Added JVS command 0x32, fixes Crazy Taxi and Virtua Tennis 2 booting. . Added default EEPROM to bdrdown, cfield, gundmgd, gundmxgd, karous, keyboard, moeru, psyvar2, puyofev, quizqgd, radirgy, senko, sfz3ugd, shikgam2, ss2005, tetkiwam, trgheart, trizeal, undefeat and usagiym . Fixed year info in hotd2 and shootopl . NAOMI / Triforce / Chihiro documentation update - seta.c: Fixed gfx1 rom loading in Visco Roulette - taito_l.c . Converted driver to use AM_SHARE macro . Removed sound hacks in Evil Stone, fixing sound drop if you die at level 1 boss. (ID 00970) . Added Puzznic MCU dump and added a PAL as NO_DUMP. The MCU still needs to be properly hooked up. - wiz.c: Fixed missing sprites (ID 04334) - Captain America and The Avengers: Fixed color glitch on scrolling ocean on Stage 2 (ID 04304) - Combat School: Hooked up proper sound program in Combat School (bootleg) - Dead Angle: Removed deprecat.h dependancy and updated irqs accordingly for Dead Angle. This fixes graphical errors in the 2nd to last level (ID 00092). - Fruit Bonus 3G: Added missing oki/gfx1/2 roms and fb3g103.id rom (region defaults) - Ginga Ninkyouden: Converted game to use proper 6840 PTM device. Fixed M6809 CPU2 clock speed. - Hot Chase: Tentative experiment for gameplay speed. Still not perfect though (especially noticeable with sound). (ID 00825) - Mad Race: Fixed wrong production year (ID 04325) - Mortal Kombat 4: Fixed game hangs in demo mode after about 5 mins/matches (ID 01893) - Mr. Do!: Fixed inaccurate color of "SCENE4" (ID 03103) - Ninja Emaki . Hooked up NB1414M4 to the game, greatly improving gfxs in it. Fixed visible area. . Implemented serial type scrolling for clones Youma Ninpou Chou (Game Electronics bootleg, set 1/2) - Over Drive: Fixed gfx4 rom loading and M6809 CPU3 clock speed - Fixed input in awbios, bigrun, cischeat, demofist, dirtypig, dolphin, f1gpstar, f1gpstr2, fotns, ftspeed, ggisuka, ggx15, kofnw, kofxi, kov7sprt, maxspeed, mslug6, ngbc, rangrmsn, rumblef, rumblef2, salmankt, samsptk, sprtshot, vfurlong, xtrmhnt2 and xtrmhunt - Dipswitch fixes in ginganin.c, naomi.c and seta.c - Renamed (usagui) to (usagiym) - Description changes of Konkyuu no Hoshi, Club Kart: European Session (Rev D), Crazy Taxi High Roller (Rev B) (GDX-0002B), Dream Soccer '94 (World, M107 hardware), Dream Soccer '94 (Japan, M92 hardware), Fun River (Version 1.4R CGA), Fun River (Version 1.4R Dual), Giant Gram: All Japan Pro Wrestling 2 (JPN, USA, EXP, KOR, AUS), Ghost Squad (Rev A) (GDX-0012A), Dead Eye (GV054 UAA01), Marvel vs. Capcom 2 New Age of Heroes (JPN, USA, EUR, ASI, AUS) (Rev A), Ninja Baseball Bat Man (US), Naomi DIMM Firmware Updater (Rev C) (GDS-0023C), Out Run 2 (Rev A) (GDX-0004A), Out Run 2 Special Tours (Rev A) (GDX-0014A), Ring Out 4x4, Visco Roulette, Spawn In the Demon's Hand (JPN, USA, EUR, ASI, AUS) (Rev B), Virtua Cop 3 (Rev A) (GDX-0003A), Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0016A) and Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B) - CHDMAN . Handle track type 6 in .nrg files . Fixed uninitialized variables found by Valgrind (diimage.c) - MAME . Collapsed device_config and device_t into one class. Updated all existing modern devices and the legacy wrappers to work in this environment. This in general greatly simplifies writing a modern device. . Reimplemented devcb using delegates and classes. Unified the logic for identifying targets and simplified the code. . Support for dynamic devices added to the core: Added slot and slot card interfaces (emu\dislot.c/h). Added SLOT_INTERFACE macros in order to simplify device adding. Added new menu option "Slot Devices" and support to change device in runtime. Updated emuopts to support command setting of slot cards. . Updated clifront and added listslots option to display available slots and device options for each one. - Compiling . Moved format handling and all formats to separate library . Compile fix for kFreeBSD . srcclean should remove invalid chars only for source files which are not XML (softlists have UTF-8 characters) 0.142u2 - New games: Around The World (Version 1.4R CGA) - New Working games: Mighty Guy - New Non-Working games: Fruit Bonus 3G (Version 1.0.3), Get Rich (Version 1.0.1) and Spooky Night (2nd edition) (Version 2.0.4) - New clones: Fruit Bonus Deluxe (Version 1.0.9), Libero Grande (Japan, LG1/VER.A), Soul Calibur (US, SOC13/VER.C), Soul Edge (Asia, SO2/VER.A), Saint Dragon (set 2), Tekken (Asia, TE2/VER.C), Tekken 2 Ver.B (US, TES3/VER.D), Tekken 3 (US, TET3/VER.D), Tekken Tag Tournament (Asia, TEG2/VER.C1), Version 4 (Version 4.3R CGA), Version 4 (Version 4.3E CGA), Version 4 (Version 4.3LT CGA), Version 4 (Version 4.3R Dual), Version 4 (Version 4.3E Dual) and Version 4 (Version 4.3LT Dual) - Removed drivers: 86lions.c and bigfghtr.c - RTC: Created device_rtc_interface which can be used to initialize RTC's to a certain date/time at driver startup, useful for regression testing. Implemented the interface in most of the modern RTC devices. Note: This is not yet plumbed down to the command line. - ES5503 sound: Properly mask oscillator enable bits when setting - aristmk4.c . Merged 86lions.c with aristmk4.c driver . Fixed M6809 clock speed in '86 Lions' and added 2nd AY-3-8910A and Samples sound. Fixed tile_gfx loading. - armedf.c . Implemented irq ack mechanism and RAM-based sprite clut to Armed Formation HW games . Implemented RAM-based sprite clut, used for color cycling effects in all games of this HW . Hooked up text protection simulation to Kozure Ookami, allowing it to display scoring during gameplay and copyright screens. . Implemented proper FG scroll latching in Kozure Ookami, fixing an offsetted layer at the gameplay intro screen. . Hooked up 1414M4 chip emulation for Crazy Climber 2 and 'Legion - Spinner-87' . Hooked up NB1414M4 priority bit, fixing video text priority in all the games . Merged bigfghtr.c with armedf.c driver - cop01.c: Implemented irq ack mechanism and fixed CPU clock speeds in Cop 01 and Mighty Guy, this fixes last boss crashes in Mighty Guy (ID 02294). Hand-tuned sound frequencies in Cop 01 based off an audio reference. - cb2001.c: Use generic_pulse_irq_line() to generate interrupts on the V35, instead of the completely silly and deprecat.h thing I was doing before. Made the same fix to Cherry Bonus 2001 while I was at it. - gottlieb.c . Fixed missing speech 'Hello. I'm turned on.' in Q*bert and Q*bert's Qubes (ID 02087) . Fixed several sound samples not working in Reactor (ID 02153) - m90.c . Hooked up sample playback in Bomber Man World and clones . Removed GAME_IMPERFECT_SOUND flag (actually clone Bomber Man World (Japan) had working samples already and never should have been flagged in the first place). . Use generic_pulse_irq_line() to generate interrupts on the V35, instead of the completely silly and deprecat.h thing I was doing before. . Fixed some spelling mistakes in the inputs. . Converted 'Quiz F1 1-2 Finish' to modern bankswitching with configured banks . Made 'Quiz F1 1-2 Finish' and Bomber Lord (bootleg) endian-safe, with assistance from R. Belmont. . Added save state support . Fixed no audio in clone Dynablaster / Bomber Man (bootleg) (ID 04191) . Removed deprecat.h usage in the driver - namcos11.c: Renamed clones based on country code & version - Alien: The Arcade Medal Edition: Added missing Compact Flash dump - Buster: Fixed various things, allowing game to boot into gameplay. Fixed Z80 CPU1 clock speed and year info. - Moon Cresta: Fixed corrupt graphics on 3rd and 4th stages in clones Moon War (Moon Cresta bootleg), Space Dragon (Moon Cresta bootleg, set 2) and Moon Cresta (Galaxian hardware) (ID 02072) - Quiz Sekai wa SHOW by shobai: Added PLD dumps - Terra Force . Hand-fixed bit-rot bit in Terra Force (bootleg), fixing the attract mode crash. . Implemented MCU simulation to clones Terra Force (US set 1) and (US set 2) . Fixed emulation of the extra Z80 in clone Terra Force (Japan bootleg with additional Z80)Terra Force bootleg set (used as a replacement for the protection), promoting it to working. . Redumped clone Terra Force (Japan bootleg with additional Z80) bitrotted rom - Dipswitch fixes in armedf.c and buster - Fixed rom names in qosb - Renamed (atworld) to (atworlde1), (dunkmniaj) to (dunkmniajc), (ehrgeiza) to (ehrgeizaa), (ehrgeizj) to (ehrgeizja), (fbdeluxe) to (fbdeluxeo), (kodure) to (kozure), (ptblank2a) to (ptblank2ua), (soulclbrb) to (soulclbrwb), (soulclbrb2) to (soulclbrub), (soulclbrj) to (soulclbrjc), (souledge1) to (souledgeua), (souledge1j) to (souledgeja), (souledgea) to (souledgeuc), (tekken2) to (tekken2ub), (tekken2a) to (tekken2ab), (tekken2b) to (tekken2aa), (tekken3a) to (tekken3ab), (tekken3b) to (tekken3ua), (tekken3c) to (tekken3aa), (tekkena) to (tekkenac), (tekkenb) to (tekkenab), (tekkenc) to (tekkenjb), (tektagta) to (tektagtub), (tektagtb) to (tektagtjb), (tektagtc) to (tektagtja), (tenkomorj) to (tenkomorja) and (version4) to (version4o) - Description changes of Chouji Meikyuu Legion (Japan bootleg ver 1.05), Dunk Mania (Asia, DM2/VER.C), Dynablaster / Bomber Man (bootleg), Ehrgeiz (Asia, EG2/VER.A), Ehrgeiz (US, EG3/VER.A), Ghoul Panic (Asia, OB2/VER.A), Jokerz! (L-3) (ID 04307), Jokerz! (L-6), Kozure Ookami (Japan) (ID 03552), Legion - Spinner-87 (World ver 2.03), Libero Grande (Asia, LG2/VER.A), Lights...Camera...Action! (rev.2) (ID 04314), Lights...Camera...Action!, Point Blank 2 (US, GNB3/VER.A), Saint Dragon (set 1), Soul Calibur (US, SOC13/VER.B), Soul Calibur (World, SOC14/VER.B), Soul Calibur (World, SOC14/VER.C), Soul Edge (US, SO3/VER.A), Soul Edge Ver. II (US, SO3/VER.C), Soul Edge Ver. II (World, SO4/VER.C), Tekken (Asia, TE2/VER.B), Tekken (World, TE4/VER.C), Tekken 2 (Asia, TES2/VER.A), Tekken 2 Ver.B (Asia, TES2/VER.B), Tekken 2 Ver.B (US, TES3/VER.B), Tekken 3 (Asia, TET2/VER.A), Tekken 3 (Asia, TET2/VER.B), Tekken 3 (US, TET3/VER.A), Tekken Tag Tournament (US, TEG3/VER.B), Tekken Tag Tournament (US, TEG3/VER.C1), Tenkomori Shooting (Asia, TKM2/VER.A1), Terra Force (bootleg), Terra Force (Japan bootleg with additional Z80), Terra Force (US set 1), Terra Force (US set 2) and Version 4 (Version 4.2R CGA) - SDLMAME: Fixed backwards texture rectangle option - Compiling: Fixed build on NetBSD and other systems where toupper() is a macro (lib\util\astring.h). 0.142u1 - New games: Hyper Viper, Major Poker (v2.0), MPU3 Unit Test (Program 5), Water-Nymph (Ver. 1.4) and Witch Royal (Export version 2.1) - New Non-Working games: Alien: The Arcade Medal Edition, Country Club Classic, FamicomBox, Home Run Classic and Trap Shoot Classic - New clones: Racing Jam: Chapter 2 (EAE), Silent Scope (ver xxC, Ver 1.30), Street Fighter III: New Generation (Hispanic 970204) and Thrill Drive (EAA) - New drivers: alien.c, cesclass.c, famibox.c, majorpkr.c and mpu3.c - New artworks: esb, galaxian, hustle, slither, starwars, timeplt, turtles, victory and zektor (http://mrdo.mameworld.info/mame_artwork_ingame.html?s=d#here) - I286 CPU: Fixed protected mode boundary check - SC61860 CPU: Fix for crash and cleanup, replace for internal ram accesses with function calls to help further debug the core in the future. - ES5510 sound: taito_en (Taito ensoniq sound system) has minor changes to eliminate an AM_BASE macro - CAGE/DCS/Williams audio variables are restructured internally to resemble a device, simplifying a future device conversion. Some AM_BASE macros are eliminated as well. - M72 Custom sound: Converted M72 audio to legacy devices. Added 'M72 Custom' sound to m72.c, m90.c, shisen.c and vigilant.c. - TMS5220 sound . Updates to comments and nonstandard feature defines . Partially fixed perfect interpolation hack, disabled by default. . Fixed perfect interpolation hack the rest of the way, now it works as it did before 0.140 or so. . Improved perfect interpolation hack slightly, should be less noisy after inhibit frames. - Sega G-80 sound: Added 'Sega Speech Sound Board' to astrob, spacfury, startrek and zektor. - 8259 PIC: Added support for cascade mode, updated interface in all drivers. - 8257 DMA: Fixed the I/O address in Intel 8257 DMA operations (dkong.c) - 8237 DMA: Added cascade mode support - Atari: Eliminates the extern variables from atarimo video core, in order to remove a significant source of AM_BASE macros (arcadecl.c, atarisy1.c, atarisy2.c, badlands.c, batman.c, blstroid.c, cyberbal.c, eprom.c, gauntlet.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c, xybots.c). - bfm_sc1.c, bfm_sc2.c, bfmsys85.c, jpmimpct.c, maygay1b.c, mpu3.c, mpu4.c: Added reverse-spin support to the stepper motor simulator - cdi.c: Added support for a callback function to test softlist sharedfeat (e.g. 'compatibility') and display a warning message accordingly (cartslot.c/chd_cd.c). Updated CD-I driver as an example. - cps3.c . Added a detailed table of all known releases until now with usefull notes to identify new Cart Regions/CD Revisions . Renamed some CHDs to use the new Catalog # standard . Added Street Fighter III: New Generation Hispanic BIOS rom CD version - dec0.c: Added screen raw parameters and irq ack, fixing hole 1 hang in Birdie Try (ID 01994) and improving fade in/out effects for Boulder Dash. - funworld.c . Reworked the button-lamps layout to get the hold buttons more centered . Complete support for Witch Royal, from Video Klein - midqslvr.c: Added some hardware information - mpu4.c . Documented MOD 4 OKI program card ROM banking . Improved the BwB characteriser emulation - naomi.c: Fixed collision with system macro on NetBSD (naomibd.c) - nss.c, sfcbox.c and snesb.c: Implementation of uPD7725 p0 and p1 output bits as device lines; preliminary implementation of INT input line. - segas24.c . Start untangling the Vogon poetry Atari Ace left is his wake. . Apply the new timing implementation per cgfm's analysis. Gain ground is going to be stuck in free play mode. - spoker.c . Implemented NMI acknowledge mechanism into the Super Poker driver . Decrypted 3 Super 8 program ROM . Heavily improved 3 Super 8 emulation. Changed 3 Super 8 from a parent set to a clone of Super Poker (v116IT). - taito_f3.c . Converted Taito F3 video chip (TC0630FDP) to have a parallelism of 16-bit. Fixes road flicker when you ride over a jump platform in Riding Fight (ID 02129). . Added work-around for crowd gfxs in Taito F3 football games (International Cup '94, Taito Cup Finals, Taito Power Goal and clones), until a better information is found about it (ID 00979). Fixes graphic of the sidewalls/advertisements not displayed in clone Hat Trick Hero '95 (Ver 2.5J 1994/11/03) (ID 02499). - viper.c: Various improvements to the driver - 4 En Raya: Implemented PAL-like prom read-back - BiKiNikko: Dumped the DVD image - Pururun: Fixed audio pitch/speed to match that of a reference video. Fixed YM2151 and OKI6295 clock speed. - Racing Jam: Added timekeeper rom to clone (EAE) - Silent Scope: Added timekeeper rom m48t58y-70pc1 from the clones - Two Minute Drill . Converted game to use Taito F3 video chip, this hugely improves graphics in it . Added irq ack and fixed sound chip type to be YM2610B . Converted Taito F3 video chip (TC0630FDP) to have a parallelism of 16-bit . Fixed gfx1/2 rom loading and palettesize - Converted the following drivers to driver_device: astrocde.c, corona.c, galaxold.c, galdrvr.c, kaneko16.c, namcos21.c, namcos22.c, namcos23.c, quizo.c, psikyosh.c, sigmab98.c, scramble.c and suprnova.c. - Converted exidy440/m72/segasnd audio to legacy devices - Renamed (sscopea) to (sscopeb) and (sscopeb) to (sscopea) - Description changes of Racing Jam (JAC), Racing Jam: Chapter 2 (EAE), Silent Scope (ver xxD, Ver 1.33), Silent Scope (ver xxA, Ver 1.00), Silent Scope (ver xxB, Ver 1.20) and Top Skater (USA, Revision A) - MAME . Replaced mamedriv.c with a new driver list mechanism that is generated by the build tools. The emulator core now expects the presence of a file called src/$(TARGET)/$(SUBTARGET).lst which is just a raw list of driver names, one per line. C and C++ comments are still permitted. This file is parsed by a new build tool makelist which extracts the driver names, sorts them, and generates a file called drivlist.c, which is consumed by the core. . Added new osdcore function osd_malloc_array() which is identical to osd_malloc() but obviously hints that the underlying allocation is for an array. Updated all callers to use the appropriate form. Modified the Windows allocator to only use guard pages for array-style allocations, allowing us to enable them once again in debug builds. . Created new static class driver_list to wrap accesses to the list of available drivers. Improved speed of driver lookups by relying on the presorting done by makelist. . Created helper class driver_enumerator as a helper for iterating through the list of drivers. This class supports basic filtering and iteration, and also serves as a temporary cache of machine_configs. . Created cli_frontend object to wrap all the CLI handling code in clifront.c. Updated/simplified all the code to take advantage of the driver_enumerator. . Created media_auditor object to wrap all the auditing functions in audit.c. Updated all users to the new interface. Note that the new auditing mechanism is slightly out of sync with the romload code in terms of finding ROMs owned by devices, so it may mis-report some issues until the new ROM loading code is in. . Added concept of a per-device searchpath. For most devices, their searchpath is just the short name of the device. For driver_devices, the searchpath is driver[;parent[;bios]]. This searchpath will eventually be used by the rom loader to find ROMs. For now it is used by the media auditor only. . Created info_xml_creator object to wrap all the info generation functions in info.c. Converted the file to C++ and cleaned up the input processing code. . Delegates 2.0 implementation. Resdesigned how delegates work to make them more flexible and simpler to use. Got rid of the proto_delegates altogether in favor of supporting delegates that are bound to NULL objects. Added a front-end template that supports "natural" syntax favored by libraries like boost. Added support for static functions that take reference parameters instead of pointer parameters for the object type. Updated all delegate users in the system to the new syntax. . Changed the DIRECT_UPDATE_HANDLER to take a machine reference like everything else in the system. Updated all users. . Changed the FUNC() macro to automatically put an & in front of the item passed. In general this works transparently, however it does have the nice side-effect of catching situations where a variable is passed instead of a function name. Fixed those cases to push the naming upstream so that the name is now provided properly. Also added a FUNC_NULL macro since FUNC(NULL) no longer works. . Implemented 16-bit device callbacks . Moved software list handling (in the Internal UI) to a separate source, and made the code more similar to the File Manager handling code. . Added support for a callback function to test softlist sharedfeat (e.g. 'compatibility') and display a warning message accordingly (cartslot.c/chd_cd.c). Updated CD-I driver as an example. . Added a switch to choose between shortname order or description order for softlist entries (in the Internal UI), and adapted the char input code to match shortnames or descriptions accordingly (emu\uiswlist.c/h). . Added support for a display info callback function (cassette.c/flopdrv.c) . Added "Mandatory artwork is missing" error (emu\render.c) - SDLMAME: Fixes for non-native SDL builds on OS X - Compiling . Fixed collision with system macro on NetBSD (naomibd.c) . Fixed loading fonts on MacOSX 0.142 - New Non-Working games: 'BiKiNikko - Okinawa de Ippai Shityaimashita (Japan)' and 'Jyunai - Manatsu no First Kiss (Japan) - New clones: Acrobatic Dog-Fight (USA) and Fashion Gambler (Set 2) - 8080bw.c: Fixed assert before OK in many 8080bw sets (ID 04291) - actfancr.c, dec0.c, dec8.c, madmotor.c, pcktgal.c, sshangha.c, stadhero.c and vaportra.c . Started moving common DECO MXC06 sprite controller code to it's own device files, reducing code duplication. . Fixed multiwidth sprites in decmxc06.c, removed code which appeared to serve no purpose other than to break the Birdie Try gfxdecode in machine\dec0.c . Converted DECO BAC06 tilemap to be a device, reducing code duplication. . Implemented karnov style sprites in its own file (video\deckarn.c), shared with karnov.c and dec8.c drivers. . Some work on the 3 games in dec8.c which use the bac06 tilemaps . Converted the following games to use common DECO video files functions: Act-Fancer, Mad Motor, Pocket Gal, Super Shanghai Dragon's Eye, Stadium Hero and Trio The Punch . Converted the following games to use common DECO sprite functions: Act-Fancer, Cobra-Command, Psycho-Nics Oscar, Stadium Hero and Vapor Trail . Fixed OKI6295 clock speed in clone Robocop (World bootleg) - goodejan.c and sengokmj.c: Fixed crashed after OK in Good E Jong, Sengoku Mahjong and Tottemo E Jong (ID 04288) - snowbros.c . Fixed Honey Dolls crashed after OK (ID 04290) . Fixed Twin Adventure crashed after OK (ID 04289) . Fixed missing video in clone The Winter Bobble (bootleg of Snow Bros.) (ID 04287) - Dead Angle: Fixed missing ADPCM sound (ID 04286) - Jr. Pac-Man: Fixed pac-man and the ghosts are not visable (ID 04294) - Mahjong Tenkaigen: Added gfx1 rom ($0) from clone (set 1) (ID 04285) - Super Shanghai Dragon's Eye: Fixing a rowscroll bug in it - Dipswitch . Fixed dipswitch names in aliencha and chokchok . Added DIP Locations in Alien Challenge, Choky! Choky! and Lord of Gun - Fixed rom names in csplayh5 and dogfgt - Description changes of '18 Wheeler Deluxe (Rev A) (JPN)' and Saint Dragon (ID 04295) - MAME . Improved File Manager usage (in the internal UI) (uiimage.c) by catching char inputs and searching for matching names among files and directories. . If we get an error parsing options, see if there was no command and what looks like an invalid system name. In that case, provide suggestions for the system name instead of reporting the options error. . Globally changed all running_machine pointers to running_machine references. Any function/method that takes a running_machine takes it as a required parameter (1 or 2 exceptions). Being consistent here gets rid of a lot of odd &machine or *machine, but it does mean a very large bulk change across the project. . Added device_t::memory() to fetch a reference to the memory interface, or assert if not present. . Split address_space::install_[legacy_]handler into install_[legacy_]read_handler, install_[legacy_]write_handler, and install_[legacy_]readwrite_handler. . Added variants of address_space handler installers which don't take mirror or mask parameters, since this is by far the most common case. . Created new enum type address_spacenum for specifying an address space by index. Update functions and methods that accepted an address space index to take an address_spacenum instead. Note that this means you can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use the enumerated AS_0. . Standardized the project on the shortened constants AS_* over the older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also centralized the location of these definitions to memory.h. . Deprecated API cleanup: cpu_suspend ==> device_suspend, cpu_resume ==> device_resume, cpu_yield ==> device_yield, cpu_spin ==> device_spin, cpu_spinuntil_trigger ==> device_spin_until_trigger, cpu_spinuntil_time ==> device_spin_until_time, cpu_spinuntil_int ==> device_spin_until_interrupt, cpu_eat_cycles ==> device_eat_cycles, cpu_adjust_icount ==> device_adjust_icount, cpu_triggerint ==> device_triggerint, cpu_set_input_line ==> device_set_input_line, cpu_set_input_line_vector ==> device_set_input_line_vector, cpu_set_input_line_and_vector ==> device_set_input_line_and_vector, cpu_set_irq_callback ==> device_set_irq_callback, device_memory(device) ==> device->memory(), device_get_space(device, spacenum) ==> device->memory().space(spacenum), cpu_get_address_space(cpu, spacenum) ==> cpu->memory().space(spacenum), cputag_get_address_space(mach, tag, spacenum) ==> mach->device("tag")->memory().space(spacenum), cputag_get_clock(mach, tag) ==> mach->device("tag")->unscaled_clock() and cputag_set_clock(mach, tag, hz) ==> mach->device("tag")->set_unscaled_clock(hz). . Removed redundant machine items from address_space and device_t. Neither machine nor m_machine are directly accessible anymore. Instead a new getter machine() is available which returns a machine reference: space->machine->xxx ==> space->machine().xxx and device->machine->yyy ==> device->machine().yyy. . Removed redundant item cpu from address_space, in favor of space->device() . Move overridable device->rom_region(), device->machine_config_additions(), and device->input_ports() to protected methods. Added non-virtual wrappers around them. . Added new macro MACHINE_CONFIG_DERIVED_CLASS() which works just like MACHINE_CONFIG_DERIVED() except you can specify an alternate driver_device class. Used this in the 8080bw.c games which require an _8080bw_state, but derive from mw8080bw_root which has the base class mw8080bw_state. . Cleanup of machine.h. Shuffled some fields around, and moved several to private member variables with accessors: machine->m_respool ==> machine->respool(), machine->config ==> machine->config(), machine->gamedrv ==> machine->system(), machine->m_regionlist ==> machine->first_region() and machine->sample_rate ==> machine->sample_rate(). . Deprecate the old memory_install_* macros. Dynamic installation is now handled directly by calling methods on the address_space, which have been expanded with aliases to cover all previous situations. In addition, variants with no mirror or mask value are provided to cover the common cases: memory_install_read*_handler(space, begin, end, mirror, mask, handler) ==> space->install_legacy_read_handler(begin, end [, mirror, mask], FUNC(handler)), memory_install_write*_handler(space, begin, end, mirror, mask, handler) ==> space->install_legacy_write_handler(begin, end [, mirror, mask], FUNC(handler)), memory_install_readwrite*_handler(space, begin, end, mirror, mask, rhandler, whandler) ==> space->install_legacy_readwrite_handler(begin, end [, mirror, mask], FUNC(rhandler), FUNC(whandler)), memory_install_read*_device_handler(space, device, begin, end, mirror, mask, handler) ==> space->install_legacy_read_handler(*device, begin, end [, mirror, mask], FUNC(handler)), memory_install_write*_device_handler(space, device, begin, end, mirror, mask, handler) ==> space->install_legacy_write_handler(*device, begin, end [, mirror, mask], FUNC(handler)), memory_install_readwrite*_device_handler(space, device, begin, end, mirror, mask, rhandler, whandler) ==> space->install_legacy_readwrite_handler(*device, begin, end [, mirror, mask], FUNC(rhandler), FUNC(whandler)), memory_install_read_port(space, begin, end, mirror, mask, port) ==> space->install_read_port(begin, end [, mirror, mask], port), memory_install_read_bank(space, begin, end, mirror, mask, bank) ==> space->install_read_bank(begin, end [, mirror, mask], bank), memory_install_rom(space, begin, end, mirror, mask, ptr) ==> space->install_rom(begin, end [, mirror, mask], ptr), memory_install_ram(space, begin, end, mirror, mask, ptr) ==> space->install_ram(begin, end [, mirror, mask], ptr), memory_unmap_read(space, begin, end, mirror, mask) ==> space->unmap_read(begin, end [, mirror, mask]) and memory_nop_read(space, begin, end, mirror, mask) ==> space->nop_read(begin, end [, mirror, mask]). . Two hash_collections can only match if they have at least one matching hash - SDLMAME . Fixed font loading in SDLMAME. BDF files are just loaded as TTF by TTF_OpenFont. Load is now protected by a magic check. . Fixed a bug in SDL1.3 keyboard mapping . Changed SDL1.3 code to be compatible with recent 1.3 API changes . sdl-config flags are now separated into INCFLAGS and COMFLAGS in sdl.mak. This fixes "make depend". . Fixed MAME/SDL/Linux/PowerPC does not build (ID 04316). - MESS: Split the field (added some time ago to handle compatibility requirements) into and (softlist.c). The former stays tied to the whole software entry, the latter gets inherited by each part. 0.141u4 - New games: Galactica - Batalha Espacial, Golden Poker (8VXEC037, NSW), Gone Troppo (1VXEC542, NSW), Lucky Roulette Plus (6-players, Spanish), Ruleta RCI (6-players, Spanish), Ruleta RE-800 (v1.0), Ruleta RE-800 (v3.0), Super Twenty One, Wild One (4VXEC5357, New Zealand) and Winners Circle (82) - New Non-Working games: Arctic Wins (4XF5227H03, US), Blues Boys (Version 6), Caribbean Gold II (3XF5182H04, US), Clockwise (1VXEC534, New Zealand), Fruit Bonus Deluxe (Version 1.0.7), Fortune Hunter (2XF5196I01, US) and Wangan Midnight Maximum Tune 2 Ver. B (Japan) (GDX-0016A) - New clones: 1941: Counter Attack (USA 900227), ATV Track (set 2), Big Twin (No Girls Conversion), Empire City: 1931 (Italy), Fortune Hunter (2XF5196I02, US), Grand Prix (3.01 France), Grand Prix (3.01 Germany), Grand Prix (3.01 Italy), Grand Prix (3.01 Spain), Grand Prix (3.01), Grand Prix (3.40 France), Grand Prix (3.40 Germany), Grand Prix (3.40 Italy), Grand Prix (3.40 Spain), Grand Prix (4.00 France), Grand Prix (4.00 Germany), Grand Prix (4.00 Italy), Grand Prix (4.00 Spain), Grand Prix (4.00), Grand Prix(3.40), High Roller Casino (2.10), Nascar (3.01 Spain), Nascar (3.01), Nascar (3.40 Spain), Nascar (3.40), Nascar (3.50), Nascar (4.00 Spain), Nascar (4.00), Playboy (2.03 France), Playboy (2.03 Germany), Playboy (2.03 Italy), Playboy (2.03 Spain), Playboy (2.03), Playboy (4.01 France), Playboy (4.01 Germany), Playboy (4.01 Italy), Playboy (4.01 Spain), Playboy (4.01), Roller Coaster Tycoon (6.00 France), Roller Coaster Tycoon (6.00 Italy), Roller Coaster Tycoon (6.00 Spain), Roller Coaster Tycoon (6.00), Ropeman (bootleg of Roc'n Rope) (ID 03811), Ruleta RE-800 (earlier, no attract), Simpsons Pinball Party, The (2.04 France), Simpsons Pinball Party, The (2.04 Italy), Simpsons Pinball Party, The (2.04 Spain), Simpsons Pinball Party, The (2.04), Simpsons Pinball Party, The (4.00 France), Simpsons Pinball Party, The (4.00 Germany), Simpsons Pinball Party, The (4.00 Italy), Simpsons Pinball Party, The (4.00 Spain), Simpsons Pinball Party, The (4.00), Sopranos, The (1.07 France), Sopranos, The (1.07 Germany), Sopranos, The (1.07 Italy), Sopranos, The (1.07 Spain), Sopranos, The (2.04), Sopranos, The (3.00 France), Sopranos, The (3.00 Germany), Sopranos, The (3.00 Italy), Sopranos, The (3.00 Spain), Space Missile - Space Fighting Game, Speak & Rescue (bootleg), Street Fighter Alpha 3 (Hispanic 980904), Super Star Crest, Terra Cresta (YM3526 set 1), The Pit (US, set 2), Thunder & Lightning (bootleg with Tetris sound), Winners Circle (81, 18*22 PCB) and Winners Circle (81, 28*28 PCB). - New drivers: corona.c - 68000 CPU . Exposed supervisor flag for external MMUs to determine the current address space . Exposed the complete function code (instead of just FC2 as previously) - ADSP21xx CPUs: Fixed long-standing bug in ABS flags in ADSP21xx core - PSXCPU: Converted PSXCPU core to C++ - Z80 CPU . Fixed decrementing transfers in Z80 DMA core . Fixed Z80-DART transmit word length - DECO 52 . Put video sprite chip inside its own file (decospr.c) . Allow rendering to a bitmap, with priority data intact, for manual mixing. - Fujitsu CG24143/CG24173: Moved sprite chip emulation inside its own file (sknsspr.c) - MC6845 CRT: Implemented row/column addressing mode - M48T37 Timekeeper . Added M48T37 variant to timekpr.c . Fixed some bugs that caused registers to be initialized to 0xff and caused odd behavior . Updated to modern device timers . Converted vegas.c to use M48T37 instead of its own implementation - NVRAM: Removed some legacy NVRAM_HANDLERs in favor of NVRAM devices - aristmk4/5.c . Various Aristocrat Mk4 / Mk5 fixes. Fixed ARM CPU1 clock speed and visible area. . Documented Aristocrat Mk4 init procedure . Implemented proper vblank read-back on Aristocrat Mk-4 HW - bagman.c . Fixed vertical screen offsets (ID 04269) and screen is shifted 1 pixel left in bagman, sbagman, botanic and pickin (ID 04002) . Fixed glitches missing during scene change in clone Bagman (Stern Electronics, set 1) (ID 02509) - corona.c . New driver for Winners Circle, dual CPU hardware. New support for Ruleta RCI. . A lot of input/output work, accurate periodic interrupt timing for sound CPU, meters, DIP switches, and other minor things. We got Winners Circle 82 playable. . Splitted new machine, memory map, and complete multiplexed inputs/outputs for Lucky Roulette type games. Also added NVRAM and inverted blitter. . Input/output work and new set supported. Redumped the winner82 sound program. . Cleaned up and improved memory maps . Added NVRAM to all winners circle sets . Fixed the AY8910 clock for Winners Circle 82 type to match the other hardware . Fixed a blitter buffer to bitmap problem . Reparented the sets . Added new technical notes . Fixed the visible screen area to improve the Winners Circle aspect . Fixed visible screen area and rotate properly the RE-800 sets . Minor clean-ups . Improved inputs and complete dipswitches in Lucky Roulette Plus - deco32.c . Converted Night Slashers and Tattoo Assassins to use DECO16IC . Fixing some corrupt graphics in Tattoo Assassins (which have been there since it was first added). Fixed ARM CPU1 clock speed. - galdrvr.c . Fixed sprite X offset . Added background color split to clones Anteater (UK) and (German) (ID 03745). Moved both games from Scobra to Galaxian driver, added DISCRETE sound, changed visible area to 224x768 and palettesize to 32 colors. . Fixed animation of hose does not show properly when attempting to pump enemies in Zig Zag (Galaxian hardware, set 1/2) (ID 01665) - ksys573.c . Fixed some wrong machine driver selections . Fixed crash just before NVRAM format in gtrfrk3m, gtfrk3ma, gtrfrk4m and pcnfrk3m (ID 04264) . Added MAS3507D sound to gtrfrk3m and pcnfrk3m - micro3d.c: Fixed I8051 CPU serial RX. TODO: Still needs CLEAR behind a 1 cycle callback. - mpu4drvr.c . Fixed lamp timing in MPU4 and laid groundwork for MPU3 support in the steppers (I've also cleared up the reel code in drivers) . Removed some unneeded timing code . BwB support is here, but preliminary, it's mainly to show people how the CHR chip might work in those games. - naomi.c: Reorganized the driver to put games in order by type and put similar functionality together - rallyx.c: Fixed vertical screen offsets in Commando (Sega), Loco-Motion and clones (ID 04270) - splash.c . Added sound to 'The Return of Lady Frog'. Fixed YM2203 clock speed. . Added sound to Funny Strip, patched few more protection checks and fixed sprite ram access. Added Z80 CPU2, 2x MSM5205 sound and Speaker. . Fixed YM2203 clock speed in Rebus and 'The Return of Lady Frog' - suprnova.c: Moved sprite chip emulation inside its own file (CG24173, CG24143) - toaplan2.c . Put common init code into MACHINE_START, leaving DRIVER_INITs only for games that actually need unique initialization . Dead code cleanup: Removed old hacks and some no-longer-used used member variables from the driver class. . ROM banking cleanup: Added a device address map for the OKI in fixeightbl. Stopped misusing the bank system for memory that isn't actually bankswitched (fixeightbl again). Simplified the Z80 ROM banking (and loading) in the Raizing games. . Address map cleanup: Unified 8-bit shared RAM handling between the Z80-based and the V25-based games. Replaced lots of pointless READ_HANDLERs with AM_RAM_WRITE. Moved fixeight EEPROM handling into the input ports instead of using READ/WRITE_HANDLERs. Incidentally, this makes toaplan2.c the very first MAME driver to use the AM_READWRITE_PORT macro. . Removed IPT_VBLANK input ports (no longer used since the video rewrite) . Removed Truxton II player 2 "button 4" (after confirming that the game never reads it) and changed player 1 "button 4" to an IPT_OTHER not bound to any key by default, since it's clearly some kind of test/debug input not meant to be hooked up in a regular cabinet (for one thing, it works whether you're actually playing or in attract mode). . Added button 3 to clone Batsugun (Special Ver.). It's a full auto fire button like Cave games have. The service mode input test doesn't show it, presumably because Toaplan didn't bother to update the service mode code from the original version of the game. . Fixed region jumpers and dipswitches in many sets, based on analysis of the program code and strings in the ROMs. . Added a #define to optionally make Truxton II stereo (commented out by default). See the comments at the top of the driver and in the MACHINE_CONFIG. . Correct kbash ROM names, thanks to information from Charles MacDonald. Also fixed inconsistent ROM naming between some of the batrider clones. . Loaded bbakraid default EEPROM as a ROM rather than hardcoding the contents into the driver. . Completely removed audio\toaplan2.c, which isn't needed any more now that all the V25s are decrypted and hooked up. . Fixed graphic corruption when using -autosave/save state in many sets (ID 03670) . Added a device address map for the OKI in clone FixEight (Korea, bootleg) and stopped misusing the bank system for memory that isn't actually bankswitched. . Fixed VSync in dogyuun, fixeight, grindstm and truxton2 - vegas.c: Converted Vegas to use M48T37 instead of its own implementation - 1941: Added correct roms for clone '1941: Counter Attack (Japan)' - Ambush: Changed clocks based on confirmed XTAL and Dumper's Notes. Fixed Z80 CPU1 clock speed. Replaced the 2x AY-3-8910A sound with 2x AY-3-8912A. - American Speedway: Fixed audio quality regression (ID 03172) - Battle Bakraid: Loaded Battle Bakraid default EEPROM (eeprom-bbakraid-new.bin) as a ROM rather than hardcoding the contents into the driver - Battle Cross . Made interrupt generation more logical (assert/clear instead of hold) . Removed hacky hardcoded palette for background tiles, let it use palette ram. . Fixed wrong title highlighting (ID 03870) . Fixed Z80 CPU1 clock speed. Swapped user1/2 roms. - Car Jamboree . Use 4 bit clut instead of 3 bit . Calculate palette with RESNET info from Popper (same year, same company, very similar hardware) . Make bgcolor emulation more logical . Small cleanups - Contra . Changed main CPU to HD6309 as seen on Contra PCB, and set interrupt source to K007121. Fixed M6809 CPU2 clock speed. . Fixed game freeze after the 2nd 3d stage's boss, before the level with horizontal scroll. (ID 03821) - Cut The Cheese: Added missing sound1 roms - Dragon Buster: Fixed priority problems (ID 02175) - Galaxy Wars: Dedicated Galaxy Wars cabs are not b/w but have color maps for now, use proms from another game and mark sets as bad dump/wrong colors. Added Invaders samples and proms. - Mission 660: Fixed sound regression - Muroge Monaco: Fixed severe graphic corruption (ID 04029) - NASCAR Racing: Added 16x missing user2 roms (16MB) - The Ocean Hunter: added protection data (still doesn't boot) - Pac & Pal: Fixed monster's eyes are not displayed (ID 02841) - Psychic Force 2012: Fixed crash after OK (ID 04263) - Pleiads: Fixed colours (high/low palette bits exchanged) - Point Blank 3: Added correct bitswap - Razzmatazz: Fixed unable to enter Service Mode (ID 03225) - Renegade: Fixed PCM sound base line gets shifted little by little in clones Nekketsu Kouha Kunio-kun (Japan) and (Japan bootleg) (ID 03764) - Ruleta RE-800: Fixed properly visible screen area and rotate - Space Gambler: Added new maincpu roms - Spiders: Fixed high tone never stop playing (ID 04093) - Super Lucky Roulette: Fixed dipswitches and inputs (after verification of the Z80 code) - Super Shanghai Dragon's Eye: Fixed tile colors are wrong when you select them (ID 03206) - Tetris Fighters: Added inputs (game now boots) - Van-Van Car: Fixed corrupted graphics (ID 01555) - Input port . Added existence and used bits interface for automatic controller adaptation . Removed unnecessary machine parameter from device-specific input_port_read . Mapped KEYCODE_BACKSLASH2 to the OEM_102 key (located between LShift and Z on international keyboard layouts) . Added possibility of altering default input port setting for devices - Dipswitch fixes in barline, funystrp, mpu5.c, pitnrun, rocnrope and toaplan2.c - Fixed rom names in 1941, aristmk4/5.c, battlex, bwidow, cntrygrl, galdrvr.c, segac2.c, terracre.c, toaplan2.c, viostormab, zaviga and zeroteam - Renamed (anteatg) to (anteaterg), (anteatgb) to (anteateruk), (batrid) to (batrider), (batridc) to (batriderc), (batridj) to (batriderj), (batridja) to (batriderja), (batridk) to (batriderk), (batridta) to (batridert), (batridu) to (batrideru), (bkraidj) to (bbakraidja), (bkraidu) to (bbakraid), (bkraiduj) to (bbakraidj), (dogyuunk) to (dogyuuna), (hirol_g3) to (hirol_gr), (hirol_gr) to (hirol_gr_210), (hvyunito) to (hvyunitjo), (sfa3h) to (sfa3hr1), (soprano3) to (sopranos_300), (sstriker) to (sstrikera), (sstrikera) to (sstriker), (terracre) to (terracreo) and (thepitu) to (thepitu1). - Description changes of 18 Wheeler DELUXE (Rev A) (JPN), 3 Bags Full (3VXFC5345, New Zealand), 3 Bags Full (5VXFC790, Victoria), Armed Police Batrider (Japan, B version) (Fri Feb 13 1998), Armed Police Batrider (Japan, older version) (Mon Dec 22 1997), Armed Police Batrider (Taiwan) (Mon Dec 22 1997), Armed Police Batrider (USA) (Fri Feb 13 1998), ATV Track (set 1), Autumn Moon (1VXFC5488, New Zealand), Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999), Black Rhino (3VXFC5344, New Zealand), Conqueror, Coral Riches II (1VXFC5472, New Zealand), Dangerous Dungeons (set 1), Dangerous Dungeons (set 2), Dangerous Dungeons (set 2), Demon's World / Horror Story (set 2), Dogyuun (location test), Dogyuun (older set) (ID 02807), Enchanted Forest (12XF528902, US), Enchanted Forest (3VXFC5343, New Zealand), Enchanted Forest (4VXFC818, NSW), Fantasy Fortune (1VXFC5460, New Zealand), Ghox (joystick), Ghox (spinner), Golden Canaries (1VXFC5462, New Zealand), Grand Prix (4.50 France), Grand Prix (4.50 Germany), Grand Prix (4.50 Italy), Grand Prix (4.50 Spain), Heavy Unit -U.S.A. Version- (US), High Roller Casino (3.00 France), High Roller Casino (3.00 Germany), High Roller Casino (3.00 Italy), Hot Shocker (early revision?), Inferno (Williams), Inu No Osanpo / Dog Walking (Rev A), K.G. Bird (4VXFC5341, New Zealand, 87.98%), K.G. Bird (4VXFC5341, New Zealand, 91.97%), Kingdom Grandprix, Leprechaun (Pacific), Mahou Keibitai Gun Hohki (Japan), Meteor (bootleg of Asteroids), Meteor (Stern), Meteorites (bootleg of Asteroids), Naomi DIMM Firmware Updater ((Rev C) GDS-0023C), Naomi DIMM Firmware Updater (Rev A) (GDS-0023A), Nascar (4.50 Spain), Phantom Pays - 4VXFC5431 (New Zealand), Pipi & Bibis / Whoopee!! (Teki Paki hardware), Pit & Run - F-1 Race (set 1), Pit & Run - F-1 Race (set 2), Power Smash / Virtua Tennis (GDS-0011), Power Smash 2 (JPN) / Virtua Tennis 2 (USA, EXP, KOR, AUS) (Cart, Rev A), Power Smash 2 / Virtua Tennis 2 (Rev A) (GDS-0015A), Raimais (Japan, first revision), Same! Same! Same! (1P set), Same! Same! Same! (2P set), Simpsons Pinball Party, The (5.00 France), Simpsons Pinball Party, The (5.00 Germany), Simpsons Pinball Party, The (5.00 Italy), Simpsons Pinball Party, The (5.00 Spain), Sky Raider (Uniwars bootleg), Solomon no Kagi (Japan), Sopranos, The (5.00 France), Sopranos, The (5.00 Germany), Sopranos, The (5.00 Italy), Sopranos, The (5.00 Spain), Sorcer Striker (set 1), Sorcer Striker (set 2), Street Fight (bootleg?), Sweet Hearts II (1VXFC5461, New Zealand), Tensei Ryuu Saint Dragon, Terra Cresta (YM3526 set 2), Terra Cresta (YM3526 set 3), Thayer's Quest (set 2), The Pit (US, set 1), Thunder Strike (set 1), Thunder Strike (set 2, older), Top Gear (4VXFC969, NSW), Vimana (World, set 1), Vimana (World, set 2), Virtua Striker 2 Ver. 2000 (JPN, USA, EXP, KOR, AUS) (Rev C), Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart, Rev B), White Tiger (3VXFC5342, New Zealand), White Tiger Classic (B - 08/07/99, NSW/ACT), Xevious (Atari), Xevious (Atari, harder), Xevious (Atari, Namco PCB) (ID 03454), Zero Wing (1P set), Zero Wing (2P set) anf Zing Zing Zip (bootleg). - MAME . Fixed enormous memory consumption when iterating through all drivers like -romident does . Move non-buffered spriteram drivers away from using the generic spriteram in favor of using spriteram in their own driver_device classes . Convert a number of drivers to use their own private spriteram instead of the generic one. Only drivers needing buffered spriteram should use the shared generic version for now. . Decreased color saturation and alpha of internal fake shifter layout to make it less distracting . Make shift/alt+right work on channel volume sliders (fractions between 0 and 1 were always rounded down) . Converted core_options to a class. Removed a bunch of marginal functionality in favor of alternate mechanisms. Errors are now reported via an astring rather than via callbacks. Every option must now specify a type (command, integer, float, string, boolean, etc). Command behavior has changed so that only one command is permitted. . Created emu_options class dervied from core_options which wraps core emulator options. Added mechanisms to cleanly change the system name and add/remove system-specific options, versus the old way using callbacks. Also added read accessors for all the options, to ensure consistency in how parameters are handled. Changed most core systems to access emu_options instead of core_options. Also changed machine->options() to return emu_options. . Created cli_options class derived from emu_options which adds the command-line specific options. Updated clifront code to leverage the new class and the new core behaviors. cli_execute() now accepts a cli_options object when called. . Updated both SDL and Windows to have their own options classes, derived from cli_options, which add the OSD-specific options on top of everything else. Added accessors for all the options so that queries are strongly typed and simplified. . Attached emu_options to the machine_config, and the running_machine inherits it now. . Decouple memory_region parameters from the ROMREGION flags . Added DEVICE_SELF_OWNER support for device callbacks . Added driver_device classes for drivers that don't have any variables, for consistency (and future development) . Removed globals from a number of device-like shared systems and made them either statics or actual device variables . Fixed -verifyroms list nonexistent roms as bad (ID 04267) . Changed File-IO system to accept just a raw searchpath instead of an options/option name combination . path_iterator::next() now takes an optional filename to append to the path . Fixed wrong merge data in -listxml output for some sets (ID 04271) . Allow serial receive without ES enabled . Further decoupled some driver files to help driver_device conversions . cchance and champbwl subclass from tnzs . cclimber and galaxian audio code and seibuspi decryption code get their own includes . ettrivia duplicates the palette code from naughtyb . galpani2 video declarations are moved from kaneko16.h to their own file . Simplified Unico driver . Disentangled Gridlee from Balsente driver . mshuttle decryption code is moved into galaxian . seibuspi decryption code get his own includes . tetrisp2_draw_sprites is split into two versions, one for ms32.c, one for tetrisp2.c . vmetal subclasses from metro . YGV608 is made independent of namcond1 . xevious/bosco/digdug subclass from galaga . Breaks some driver entanglements to simplify future driver_device conversion efforts: Several drivers are made into explicit subclasses of other drivers . 8080bw from mw8080bw . Separated arcadecl from rampart by duplicating the bitmap rendering code . cischeat is separated from megasys1 by duplicating some video code . jaleco decryption code is moved to jalcrpt.c . mcr3 is partly separated from mcr . midtunit gfx_rom variables are made distinct from midyunit variables, making midyunit independent of midtunit. . machine\midwunit.c is split into wunit and xunit files with some code duplication . missb2 from bublbobl . Contants in namconb1 are duplicated/renamed in namcofl . namcos2 uses of namcos21 are eliminated by introducing namcos2_kickstart . quasar from cvs . taito_f3 is disentangled from a number of other drivers by using an AM_SHARE tag instead of a common variable . taito_x from seta . toypop is separated from mappy by duplicating some video code - Compiling . Continued eliminating global/static variables by moving them to the driver_device classes. Mostly drivers from misc.a, and some drivers recently which had dependencies removed. . Removed unused static handler entries. Also ensure that subsequent mapping/unmapping of static memory types does not change the memory parameters. This fixes the case where dynamically unmapping memory could lead to incorrectly reported offsets. . Removed some straggling const address_space references, and get rid of explicit const_casts in memory.h. . Updated nmk/olympia/pacific/pce/phoenix/rare/seibu/seta, sigma/stern/subsino/tatsumi/tch/tecfri/technos/tehkan, namco/thepit/toaplan/unico/upl/valadon/veltmjr/venture/vsystem/zaccaria, asteroid/bzone/funworld/itech8/kongambl/legionna/leland/quakeat/quizpun2/segas24/twincobr/warpwarp and cclimber/galpani2/gticlub/namcond1/pacman/seibuspi/tetrisp2/vicdual to driver_devices . Converted namco/thepit/toaplan/unico/upl/valadon/veltmjr/venture/vsystem/zaccaria to driver_device. Also simplified unico and disentangled gridlee from balsente. Atari Ace converted asteroid/bzone/funworld/itech8/kongambl/legionna/leland/quakeat/quizpun2/segas24/twincobr/warpwarp to driver_device. Atari Ace convert cclimber/galpani2/gticlub/namcond1/pacman/seibuspi/tetrisp2/vicdual to driver_device. . SDLMAME: Updated both SDL and Windows to have their own options classes, derived from cli_options, which add the OSD-specific options on top of everything else. Added accessors for all the options so that queries are strongly typed and simplified. . Fixed uimodekey for MESS in SDL MAME . Fixed parsing of uimodekey from .ini on SDL . Fixed OS/2 compile 0.141u3 - New games: Brasil 86, Brasil 87, Brasil 93, Guilty Gear X ver. 1.5 and Reel'N Quake! (Ver. 1.05) - New Working games: Hae Hae Ka Ka Ka, Pye-nage Taikai and Taihou de Doboon - New Non-Working games: Cut The Cheese (Redemption), DrumMania 10th Mix (G*D40 VER. JAA), DrumMania 4th Mix (G*A25 VER. JAA), DrumMania 5th Mix (G*B05 VER. JAA), DrumMania 6th Mix (G*B16 VER. JAA), DrumMania 7th Mix power-up ver. (G*C07 VER. JBA), DrumMania 8th Mix (G*C07 VER. JAA), DrumMania 9th Mix (G*D09 VER. JAA), Guitar Freaks 10th Mix (G*D10 VER. JAB), Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA), Guitar Freaks 9th Mix (G*C39 VER. JAA), GunMania (GL906 VER. JAA), Initial D Arcade Stage Ver. 2 (Export) (GDS-0027), Martial Beat (G*B47 VER. JBA), Point Blank 3 (GNN2 Ver.A), Punch Mania 2: Hokuto No Ken (GQA09 JAA), The Rumble Fish 2 and Tetris Fighters and Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A) - New clones: Austin Powers (2.01), Austin Powers (3.00), Austin Powers (3.01), Brasil 89 (set 2), Bubble Pong Pong, Cut The Cheese Deluxe (Redemption), Cyvern (US), Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB), Destroyer (version O1), DrumMania 7th Mix (G*C07 VER. JAA), Eight Ball Deluxe (rev. 14), Elvis (3.02 France), Elvis (3.02 Germany), Elvis (3.02 Italy), Elvis (3.02 Spain), Elvis (3.02), Elvis (3.03 France), Elvis (3.03 Germany), Elvis (3.03 Italy), Elvis (3.03 Spain), Elvis (3.03), Elvis (4.00 France), Elvis (4.00 Germany), Elvis (4.00 Italy), Elvis (4.00 Spain), Elvis (4.00), Fighting Mania (QG918 VER. AAA), Fighting Mania (QG918 VER. KAA), Fighting Mania (QG918 VER. UAA), Guitar Freaks 10th Mix (G*D10 VER. JAA), Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA), Guitar Freaks 8th Mix (G*C08 VER. JAA), Hot Memory (V1.1, Germany), Initial D Arcade Stage Ver. 2 (Japan) (Rev. B) (GDS-0026B), Initial D Arcade Stage Ver. 3 (Japan) (Rev. C) (GDS-0032C), Knights of Valour 2 / Sangoku Senki 2 (ver. 101, 101, 100HK), Magic Train (Clear NVRAM ROM?), Maverick (Display Rev. 4.00), Monopoly (2.33), Monopoly (2.51), Monopoly (3.01), Night Rider (rev. 21), Pigskin 621AD (rev 2.0 7/06/90), Playboy (3.00 France), Playboy (3.00 Germany), Playboy (3.00 Italy), Playboy (3.00 Spain), Playboy (3.00), Playboy (3.03), Playboy (3.03 France), Playboy (3.03 Germany), Playboy (3.03 Italy), Playboy (3.03 Spain), Punch Mania: Hokuto No Ken (GQ918 VER. JAB ALT CD), Punch Mania: Hokuto No Ken (GQ918 VER. JAB), Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan), Ripley's Believe It or Not! (3.00 France), Ripley's Believe It or Not! (3.00 Germany), Ripley's Believe It or Not! (3.00 Italy), Ripley's Believe It or Not! (3.00 Spain), Ripley's Believe It or Not! (3.00), Ripley's Believe It or Not! (3.02 France), Ripley's Believe It or Not! (3.02 Germany), Ripley's Believe It or Not! (3.02 Italy), Ripley's Believe It or Not! (3.02 Spain), Ripley's Believe It or Not! (3.02), Ripley's Believe It or Not! (3.10 France), Ripley's Believe It or Not! (3.10 Germany), Ripley's Believe It or Not! (3.10 Italy), Ripley's Believe It or Not! (3.10 Spain), Ripley's Believe It or Not! (3.10), Roller Coaster Tycoon (4.00 France), Roller Coaster Tycoon (4.00 Germany), Roller Coaster Tycoon (4.00 Italy), Roller Coaster Tycoon (4.00 Spain), Roller Coaster Tycoon (4.00), Roller Coaster Tycoon (7.01 France), Roller Coaster Tycoon (7.01 Germany), Roller Coaster Tycoon (7.01 Italy), Roller Coaster Tycoon (7.01 Spain), Roller Coaster Tycoon (7.01), Sharkey's Shootout (2.07 France), Sharkey's Shootout (2.07 Germany), Sharkey's Shootout (2.07 Italy), Sharkey's Shootout (2.07), Terminator 3: Rise of the Machines (2.05 France), Terminator 3: Rise of the Machines (2.05 Italy), Terminator 3: Rise of the Machines (2.05 Spain), Terminator 3: Rise of the Machines (2.05), The Lord Of The Rings (4.01 France), The Lord Of The Rings (4.01 Germany), The Lord Of The Rings (4.01 Italy), The Lord Of The Rings (4.01 Spain), The Lord Of The Rings (4.01), The Lord Of The Rings (7.0 France), The Lord Of The Rings (7.0 Germany), The Lord Of The Rings (7.0 Italy), The Lord Of The Rings (7.0 Spain), The Lord Of The Rings (7.00), The Lord Of The Rings (8.0 France), The Lord Of The Rings (8.0 Germany), The Lord Of The Rings (8.0 Italy), The Lord Of The Rings (8.0 Spain), The Lord Of The Rings (8.00), The Lord Of The Rings (9.0 France), The Lord Of The Rings (9.0 Germany), The Lord Of The Rings (9.0 Italy), The Lord Of The Rings (9.0 Spain), The Lord Of The Rings (9.00), Video Hustler (Dynamo Games), Whirlwind (LG-3) and Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 1) - 680x0 CPUs . Instruction cache emulated on '020 and later . Fixed interaction between MMU and bfextu/bfexts/bfins . Added fsgldiv, fsglmul and fscc FPU instructions . Fixed fault address in stack frame . Fixed supervisor violation bit in MMU status register . Added fmovem modes 1 and 3 . Various other MMU fixes - I386 CPU . Fixed LLDT [reg], LTR and LMSW instructions . Added preliminary implementations of VERR, VERW and LAR . Fixed for exceptions that require the return address to point to the instruction at fault. . Changed i386 READ/WRITEPORT macros to inline functions to properly support aligned vs. unaligned writes. Fixes regressions in MESS for all drivers using the PCI bus and possibly others. - LH5801 CPU: Added IO_SPACE and updated all access in ME1 memory for use it. Implemented interrupts. Fixed the flags in the ROL/ROR/SHL/SHR opcodes. Fixed decimal add/sub opcodes. - M6800 CPU: Added HD6301 subtype - TLCS90 CPU and Sega/Yamaha 315-5560 (MultiPCM): Fixed crash: "Called save_item on a non-fundamental type!" in all sets (dynax.c, model1.c, model2.c, nmk16.c, royalmah.c and segas32.c) (ID 04240) - AICA sound: Correct slotmon readback. Streaming sounds now advance in e.g. capsnk - FM sound: Added specific support for the fact that setting frequency to 0 does not behave as if frequency was set to 0x400 on the Sega-manufactured PSG clone chips, whereas it does on the original TI-made ones. Fixes Sega Master System 'Vigilante' music. - MSM9810 sound: Added and hooked up volume table. Added preliminary ADPCM2 support. Added sub-table lookups. Added OPT command. Implemented on-chip interpolation & status read. Implemented PAN command and stereo mixing. - RF5C68 sound: Implemented address readback position registers - TMS5xxx sound: Fixed the interpolation coefficient shifts for the TMS5xxx chips based on results of simulating the circuit from the patent - TMS9928 video: Fixed colors in multicolor mode - blockade.c: Fixed overlay color looks wrong compared to game flyers in Comotion and Hustle (ID 02856) - cd32.c: Refactored the CD32 code base to eliminate duplicate code between MAME and MESS - circus.c . Improved interrupt handling: Circus generates them the same way as Ripcord (based on sprite-bg collision), Robot Bowl doesn't generate interrupts at all. . Fixed invisible walls during the game and demo, lined up with the edges of the platforms where the guy (ID 00391). . Fixed when you first time run a game your jumper float to the upper edge of screen (ID 01122) - dooyong.c: Fixed sound issues in Gulf Storm, The Last Day and Pollux - gaelco3d.c: Fixed assert before OK (Debug) in all sets (ID 04247) - hitme.c . Fixed missing collision sound in Barricade (ID 03617) . Fixed sound tones never stop playing in Hit Me (ID 03486) - jchan.c and kaneko16.c: Removed public nvram_open() and fixed JChan and Kaneko16 driver to stop directly saving NVRAM - kaneko16.c: Removed public nvram_open() and fixed driver to stop directly saving NVRAM - ksys573.c . Device-ify the security flashes and the DALAS ID chip . Added a new dumped CD-ROM to Guitar Freaks (GQ886 VER. EAC) . Salary Man Champ CD redumped . Added MAS3507D sound to ddr4mps, ddr4ms, ddrs2k, ddrsbm, dmx2m, dncfrks, drmn3m and mamboagg. . Fixed crash just before NVRAM format in ddrsbm (ID 04243) . Fixed DS2401 timer intervals . Added missing roms region install_eeprom, region onboard.0 and region onboard.1 to Fighting Mania (QG918 VER. EAA) - megadriv.c . First (small) step towards driver class for megadrive-based drivers . Added alt lba_to_msf conversion needed by SegaCD/MegaCD (cdrom.h) . Rewritten SegaCD/MegaCD emulation - micro3d.c: Used the common MC68901 device - naomi.c . Device-ify the security flashes and the DALAS ID chip . Implemented live NAOMI M2/M3 decryption and decompression & removed trojaned data from more games . DMA on-the-fly decompression + XOR support . Removed naomibd_prot rom in 18wheelr, doa2, ggx, mvsc2, qmegamis, sgtetris and vtenis2c . Added eeprom-naomi-x76f100-default.bin - nss.c, sfcbox.c and snesb.c: Fixed save state error (snes_snd.c) - PSX (konamigv.c, ksys573.c, namcos10.c, namcos11.c, namcos12.c, taitogn.c, twinkle.c and zn.c) . Added DMA mode used for CD transfers on PSX home system, fixed DMA bug that caused home system to freeze. . Fixed DICR handling . Removed non-existent root counter 3 IRQ . Ignore root counter stop when reset is also set . Removed custom root counters in Konami 573 driver . Fixed DICR handling. Removed non-existent root counter 3 IRQ . Ignore root counter stop when reset is also set . Correct SPU IRQ notification in all drivers. Fixes streaming audio in Simpsons Bowling . Replaced PSX SPU with a much more complete implementation . Fixed SPU sound effects are cut abruptly/clipped (ID 03107) . Correct SPU IRQ notification in the drivers - seta2.c . Horizontal clipping of "tilemap" sprites . Shadows emulation . Added OKI9810 (4096000 Hz) sound to funcube2 and funcube4 - scobra.c: Fixed overlay color looks wrong compared to game flyers in Hustle - sigmab98.c . Added preliminary Sigma B-98 sound to the Sammy medal games . Added Sammy Medal Game System Bios (Sammy 2000) and hardware info . Fixed Z80 CPU1 and YMZ280B clock speed in gegege . Fixed Z80 CPU1 clock speed, added OKI9810 sound and 2MB OKI rom to animalc, haekaka, itazuram, pyenaget and tdoboon - snk6502.c: Fixed cocktail screen offset (ID 04224) - srmp2.c . Rrewroted IOX key matrix device implementation, used by 'Super Real Mahjong Part 2/3' . Removed ROM patch in Super Real Mahjong Part 2 . Removed ROM patches and added working player 2 inputs in 'Super Real Mahjong Part 3' - stv.c: Fixed black screen after system checking in several stv.c sets (ID 04249) - superqix.c . Fixed inconsistant audio during demonstration play in Vs. Hot Smash (ID 02997) . Fixed samples played incorrectly in Prebillian (ID 03785) - taito_f2.c: Fixed no sound in gunfront, gunfrontj and driftout (ID 04245) - taitogn.c: Fixed sound effect loops infinitely in Psyvariar -Medium Unit- (V2.04J) and Psyvariar -Revision- (V2.04J) (ID 03279) - vegas.c: Fixed crash before OK in Cart Fury, Road Burners, San Francisco Rush 2049 and clones (ID 03766) - warpwarp.c: Fixed palettesize in Kaitei Takara Sagashi, Navarone and SOS - Ambush: Fixed incorrect colors (ID 03789) - Amiga . Removed additional 2 cycles, in move operation, for non-Agnus registers. . Set to #0 the start cycle in the copper operation (alg.c, arcadia.c, cd32.c, mquake.c and upscope.c) - Atari . Converted atarirle to a device . Moved a driver specific routine to a generic device file (video\atarimo) - Cosmic Alien: Fixed incorrect sprite colors for alien formations (ID 03945) - Destroyer . Proper addressmap masks . Added 30132-01.k4 rom, duplicate of 30132-01.f4 . Added version O1 romset, dumped by Siftware . Fixed VSync - DoDonPachi Dai-Ou-Jou: Added new sprcol, ics and sprmas roms - Egg Hunt: Fixed crash before OK screen (Called save_item on a pointer with no count!) (ID 04241) - New York! New York!: Fixed missing starfield (ID 04260) - Pango Fun and Tournament Solitaire: Updated Pango Fun and Tournament Solitaire to use common PC emulation. - Pengo: Fixed Player 2 cocktail graphics are offset (ID 03660) - Roller Jammer: Fixed various graphic errors (ID 00939) - Rougien: Correct background color - Safari Rally: Fixed suspiciously high CPU speed (ID 02885). Replaced 8085A CPU1 with 8080A - SF-X: Fixed missing sound (ID 03428) - Speed Attack . Cleaned up IOX implementation . Rewritten video routines from scratch, also fixed screen flipping in it (When you activate the flip screen the graphics are moved over to one side) (ID 00313) - Straight Flush: Fixed M6800 CPU1 clock speed - Street Fighter III 2nd Impact: Giant Attack: Fixed typing errors for SFIII2_970204 used instead of the right SFIII2_970930 (ID 04226) - Super Bug: Fixed extended play sound hangs (ID 03686) - Xain'd Sleena: Fixed cocktail (2P) view offset (ID 03907) - Input port . Input ports can now be added to device, names are formed as sub tags from parent device tag. . Make DEVICE_SELF work in ports . Added overloaded input_port_read() for reading device owned input ports - Dipswitch . Fixes in borntofi and crash . Updated dipswitches and DIP locations based on documents posted by Laschek at KLOV . Fixed global flipscreen - Fixed rom names in blkdrgon - Renamed (cd32bios) to (cd32), (cyvern) to (cyvernj), (ddr2ml) to (ddr2mla), (initdv2j) to (initdv2jo), (initdv3j) to (initdv3jb), (monopole) to (monop303), (moo) to (moomesa), (mooaa) to (moomesaa), (moobl) to (moomesabl), (mooua) to (moomesaua), (nightrdr) to (nightr20), (shrky_fr) to (shrkyfr), (shrky_gr) to (shrkygr), (shrky_it) to (shrkyit), (thepit) to (thepitj), (thepitb) to (thepit) and (thepitc) to (thepitu) (ID 04114) - Description changes of Amiga CD32 (PAL), Black Dragon (Japan), Brasil 89 (set 1), Destroyer (version O2), Earth Wind Fire (ID 04257), Eight Ball Deluxe (rev. 15), Fire Truck / Smokey Joe, Gee Bee (Europe), Gee Bee (Japan), Gee Bee (US), Initial D Arcade Stage Ver. 2 (Japan) (GDS-0026), Initial D Arcade Stage Ver. 3 (Japan) (Rev. B) (GDS-0032B), King Tut (NSW, Australia), Money In The Bank (NSW, Australia), Night Rider (rev. 20), Playboy (5.00 France), Playboy (5.00 Germany), Playboy (5.00 Italy), Playboy (5.00 Spain), Ripley's Believe It or Not! (3.20 France), Ripley's Believe It or Not! (3.20 Germany), Ripley's Believe It or Not! (3.20 Italy), Ripley's Believe It or Not! (3.20 Spain), Roller Coaster Tycoon (7.02 France), Roller Coaster Tycoon (7.02 Germany), Roller Coaster Tycoon (7.02 Italy), Roller Coaster Tycoon (7.02 Spain), Samurai Nihon-ichi (bootleg, harder) (ID 03194), Sharkey's Shootout (2.11 France), Sharkey's Shootout (2.11 Germany), Sharkey's Shootout (2.11 Italy), Terminator 3: Rise of the Machines (4.00 France), Terminator 3: Rise of the Machines (4.00 Germany), Terminator 3: Rise of the Machines (4.00 Italy), Terminator 3: Rise of the Machines (4.00 Spain), Terminator 3: Rise of the Machines (ARM7 Sound Board), The Lord Of The Rings (10.00 France), The Lord Of The Rings (10.00 Germany), The Lord Of The Rings (10.00 Italy), The Lord Of The Rings (10.00 Spain), The Pit (Japan), The Pit (US), The Pit, 'unknown pinball game', 'unknown Toptronic pinball game' and Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 2) - CHDMAN: Experimental incomplete .nrg disc image import - MAME . Hash generation and general cleanup. New class hash_collection holds and manages a collection of hashes, and can be built from an internal format string which is stored with each ROM. Also compacted the form of the hash strings used for ROMs, and fixed verification/hashing of non-ZIPped files. . Define new macro ALLOW_SAVE_TYPE which can be used to declare enums as valid save types on a case-by-case basis. Updated the cosmac CPU core to do this for its mode and state enums, which were previously failing. . Added shortname to devices in order to make ROM loading per device possible . mame_file is now emu_file and is a class. It is required to pass a core_options object to the constructor, along with a search path. This required pushing either a running_machine or a core_options through some code that wasn't previously ready to handle it. emu_files can be reused over multiple open/close sessions, and a lot of core code cleaned up nicely as things were converted to them. . Created a file_enumerator class for iterating over files in a searchpath. This replaces the old mame_openpath functions. . Changed machine->options() to return a reference . Removed mame_options() calls; options can only be queried from the running_machine, or by passing them along. . Modified video update system: Screen update function is now per screen device (it was before but was attached to machine driver): MCFG_VIDEO_UPDATE -> MCFG_SCREEN_UPDATE and MCFG_VIDEO_EOF -> MCFG_SCREEN_EOF. EOF is now executed for all screens, so for all existing it is defined just for one screen. This part will be updated in future. . Fixed attotime max() function to not be a copy of min(). Fixes several regressions in the scheduler after the recent attotime object conversion. . Added information screen output for any game known to have bad or missing data in order to better inform the user as to the reason their emulation may not work as expected. . Added core_options to device_validity_check() so they can be used to validate things - SDLMAME: GLSL now works for all pixel formats (SDL); fixed memory leak on textures - LINUX: Fixed multiple typos with receive spelled recieve in Debian GNU/Linux system (ID 04227) - MESS: Softlist WIP code to add more info nodes - Compiling . Moved code to a new file/include to be referenced in multiple drivers (ms32crpt.[ch], opwolf.c, rainbow.c) . Duplicated some code (palette related) between drivers (mainsnk.c, rollrace.c and sslam.c) . Removed unneeded #include lines in asic65.c, gal3.c and galaxold.c . Cleaned up a few include files in cd32.c, cidelsa.c, metalmx.c, thoop2.c and seicross.c . Split part of the driver include into a separate multi-driver include file (audio\exidy.h, audio\exidy440.h, audio\wiping.h, machine\segag80.h) . Fixed compiling on GCC 4.6 prerelease . Deleted symbols file if defined when invoking clean target . Fixed reads for 32-bit handlers on 64-bit CPUs too . Eliminated global/static variables in a number of Konami/Sega drivers by introducing/using driver_device classes . Eliminated global/static variables in a aristocr/atlus/bfm/bmc/capcom/cinemat/dataeast drivers by introducing/using driver_device classes . Eliminated statics/globals in drivers jpm/kaneko/maygay/meadows/merit/metro/midcoin/midw8080/midway/msx/namco . Convert dooyong/edevices/eolith/exidy/gaelco/gottlieb/igs/itech/jaleco drivers to driver_device . Converted nichibut/nintendo/nix drivers to use a driver_device - Debugger: Fixed disassembler override hook 0.141u2 - New games: Animal Catch, Express Card / Top Card, Itazura Monkey, Metal Slug 6, Music Sort and X-Train - New Working games: Magic Train - New Non-Working games: 2x 18 Wheeler, Andy's Great Escape, BwB Tetris v 2.2, California Games (Mega-Tech), Dream Fruit, Drews Revenge (v.2.89, set 2), Funky Ball, Hae Hae Ka Ka Ka, Last Bank, NeopriSP Retro Collection, Oinori-daimyoujin Matsuri, Pye-nage Taikai, Red Hot Poker, Reno Reels, Samurai Spirits Tenkaichi Kenkakuden, Taihou de Doboon and Truck Kyosokyoku (Japan, TKK2/VER.A). - New clones: Black Tiger (older), Double Dribble (prototype?), Evil Night (ver UBA), Hidden Catch 2 (pcb ver 1.00), Prehistoric Isle in 1930 (Korea), Red Earth (Euro 961023), Space Bomber, Tenchi wo Kurau (Japan Resale Ver.), Tetris Plus 2 (Japan, V2.1), Top Skater (Japan), Violent Storm (ver AAB), Warzard (Japan 961023) and Zero Hour (set 2). - Removed games: Red Earth (961121, NO CD) - New drivers: dfruit.c, funkball.c, lastbank.c and mw18w.c - 5A22 CPU: Fixed G65816 operation on PowerPC Linux where char is unsigned - ARM7 CPU . Fix for ARM7 "MOV LR, Rx" (where Rx bit 0 = 1) + "F800" situation. This fixes the lockup in GBA "Golden Sun: The Lost Age". . Improved LDM/STM unaligned word access in THUMB mode . Fixed LDM unaligned read in THUMB mode . Fixed an LDM base register write-back bug - DSP32C CPU: Modernized the core - F8 CPU: Fixed interrupt vector - TMS32031/2 CPUs: Converted TMS3203X to a modern device - TMS57002 CPU: Significantly improved build speed on lower-end h/w - Dynamic Re-Compiling: Fix compile on systems that use the C backend (cpu\drcuml.h) - CAPCOM-Q1 QSound: A new WE DSP16A CPU disassembler - DISCRETE sound: Fixed DISCRETE_WAVLOG & DISCRETE_RCFILTER, fixing dkongjr and likely other sounds. - MAS3507D: Hook up part of the I2C communication with the MAS3507D sound (sound\mas3507d.c, ksys573.c) - MSM5232 sound: Made changes to the PORT_ADJUSTER values for MSM5232 clocks in all games in drivers to best match PCB recordings. - sound.c, streams.c and Speaker: C++-ified the sound and streams interfaces. Combined sound.c and streams.c into one file, and separated the speaker device into its own file. Generalized the concept of dynamically assigned inputs and re-wired the speaker to work this way, so it is now treated just like any other sound device. Added methods to the device_sound_interface for controlling output gain and mapping device inputs/outputs to stream inputs/outputs. Also made the sound_stream_update() method pure virtual, so all modern sound devices must use the new mechanism for stream updates. - 68681 DUART: Patch to fix dectalk's startup test in MESS - Flash ROM: Support Flash ROMs that have a bankswitch command (machine\intelfsh.c) - Palette system: Fixed a bug in palette_normalize_range which caused color distortion. The luminance normalization now converts r,g,b to y,u,v and normalizes y prior to converting back to r,g,b. This affects e.g. Radar Scope, Donkey Kong and Mario Bros. - aristmk4.c: Fixed unable to write save state (ID 04107) - asteroid.c: Fixed broken discrete sound in Asteroids and Lunar Lander (ID 04202) - cave.c . Added savestate support to all games in cave.c. Most of the work was already done by someone else; the blocker was a perpetually-running anonymous timer, which I converted to an allocated timer. . Changed OKI sample banking to use device address maps instead of memcpy() in all cave.c games except the nmk112-based games. If someone wants to try to convert nmk112.c to use device address maps and bank pointers, be my guest--you'll need 8 banks of varying sizes per OKI chip. . Made machine\nmk112.c actually restore its state properly. Also refactored it a little (if you can talk about refactoring a source file that almost fits on one screen). . Removed a useless printf and some obsolete comments, more leftovers from the process of hooking up the V25. - cdi.c . Merged MESS CDi driver file with the MAME CDi driver file (used for Quizard) . The cdimono1 system is now the parent / bios of Quizard, the Quizard games run on a retail CDi unit with Jamma adapter / dongle for protection so this is a logical step. - cps1.c . Added Tenchi wo Kurau (Japan Resale Ver.) . Confirmed B-Board # for clone 'Chiki Chiki Boys (Japan 900619)', added ROMs positions, PALs and some PCB infos to video\cps1.c . Fixed clone 'Street Fighter II: The World Warrior (USA 911101)' labels and added PCB infos . Identified and documented clone Willow (USA Old Ver.) as an early and genuine USA release and added a note. . Verified and fixed XTALs of Japan Resale Versions to work at 12MHz, they all use DASH A-Boards. . Minor cleanups and fixes . Fixed 68000 CPU1 clock speed in Area 88 (Japan Resale Ver.), Daimakaimura (Japan Resale Ver.) and Strider Hiryu (Japan Resale Ver.) - cps3.c: Added SIMM roms to all games - ksys573.c: Hook up part of the I2C communication with the MAS3507D sound. Added MAS3507D sound to ddr3mk. - m90.c . Fixed line scroll . Added opcodes for Quiz F1 (machine\irem_cpu.c). This fixes missing graphics in a startup screen (ID 04215). - mappy.c: Fixed no directional controls available for second player in Grobda, Motos and Phozon (ID 04214). - megatech.c . Added a preliminary Softlist support for Sega Megatech, that allows multi-cart support. syntax is (similar to the MESS one) MAME megatech -cart1 mt_beast -cart2 mt_soni2 ... -cart8 mt_shar2 SMS games have issues when moving between games, so stick to only a single SMS game for now or the Z80 will crash. . Clean up megatech.xml - micro3d.c: Imported the MC68901 device from MESS so it can be shared with the driver - mpu4.c: Fixed OKI6376 sound clock speed in Old Timer - mpu4drvr.c . Revised timing/input system to stop flickering . Tidied up the LED drawing code to remove flicker . Support for all known extenders and reel multiplex boards used in MPU4 H/W . Partial support for OKI sampled sound card, need for some titles . Fixed Old Timer characteriser . Some general tidying up to allow better study of the BwB titles . Reimplemented fruit-machine mechanical meters to use timers. Removed AY-3-8913A sound. - namcos10.c: Added new user2 roms to all games, except Mr. Driller 2 - sigmab98.c: Fixed zooming and added priorities and flipping - ssv.c . Hook up uPD96050 (ST-010) math/protection DSP . Added uPD96050 CPU2 and rom st010.bin to Drift Out '94, Storm Blade and Twin Eagle II - subsino2.c . Changed bishjan.c to subsino2.c driver . Fixed Magic Train (Games now playable) . Implemented reel layer . Fixed rogue tiles in X-Plan . Added hopper emulation in Bishou Jan - toaplan2.c . Made machine\nmk112.c actually restore its state properly. Also refactored it a little (if you can talk about refactoring a source file that almost fits on one screen). . Removed a useless printf and some obsolete comments, more leftovers from the process of hooking up the V25. . Removed excessive CPU interleaving from Batsugun, left over from when I was initially hooking up the V25. . Fixed Battle Garegga's NMK112 interface to work with the refactored machine\nmk112.c. - twincobr.c and wardner.c: Added MCFG_SCREEN_RAW_PARAMS. Fixed VSync. - video\segaic16.c, segaorun.c, segaxbd.c: Replaced anonymous timers used in video\segaic16.c and drivers\segaorun.c with allocated timers, making it possible to add save state support to these drivers. - Beezer . Fixed missing sound channel in Beezer; sound should now be more or less correct, but the noise source still isn't accurate yet. . Improved Beezer volume DAC handling to be accurate to hardware . Beezer now uses correct MM5837 noise source (clock may be a bit off though), and now has MM5837 properly hooked to audio via. May still be some issues with intermittent noise updating which need fixing. . Beezer now uses correct MM5837 noise source (clock may be a bit off though), and now has MM5837 properly hooked to audio via. May still be some issues with intermittent noise updating which need fixing. - Cherry Bonus III: Fixed incorrect rom sizes in clone Cherry Angel (ID 04221) - Daytona USA 2: Fixed banking by adding a second aperture to CROM at 0xc3000000. A couple of CROMs checksum as bad, but most come out good. - Dottori Kun: Rewroted video routines and fixed partial updates - Flying Shark: Fixed VSync - Gang Wars: Fixed samples played incorrectly (ID 04225) - Metal Slug 6: Fixed rom mirror (Game now playable) - Multi Champ Deluxe: Added missing gfx1/2 roms to clone Multi Champ Deluxe (ver. 1114, 14/11/1999) - Music Sort . New inputs from the scratch . Complete dipswitches and DIP locations . Added a new button-lamps layout . Created a default NVRAM that allow Music Sort work properly - Mystic Riders: Added one opcode and fixed music/sound in clone Mystic Riders (bootleg?) - Pollux: Fixed sprite x/y flip and removed old source comments - Ridge Racer V Arcade Battle: Added dumped key - Save state . Moved the state saving system to C++. For now the registration macros are still intact. The new state_manager class has templatized methods for saving the various types, and through template specialization can save more complex system types cleanly (like bitmaps and attotimes). Added NAME() macro which is a generalization of FUNC() and can be used to wrap variables that are registered when directly using the new methods as opposed to the previous macros. . Added new mechanism to detect proper state save types. This is much more strict and there will likely be some games/devices that fatalerror at startup until they are remedied. Spot checking has caught the more common situations. - Input port: Clean up natural keyboard support - Dipswitch fixes in mtrain, musicsrt and xplan - Fixed rom names in cps1.c, konamim2.c, pigskin, sf2uk, tetrisp2 and zerohour - Renamed (cdi) to (cdimono1), (evilngt) to (evilngte), (ptblnk2a) to (ptblank2a), (sbomberb) to (sbomber) and (willowje) to (willowo) - Description changes of 18 Wheeler - American Pro Trucker (JPN), Akuu Gallet (Japan), Arch Rivals (rev 2.0 5/03/89), Arch Rivals (rev 4.0 6/29/89), Bishou Jan (Japan, Ver. 2.03), CD-i (Mono-I) (PAL), Drews Revenge (v.2.89, set 1), Forgotten Worlds (USA, B-Board 88618B-2), Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected), Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected), Magic Train (Ver. 1.31), Max RPM (ver 2), Mega-Tech, Pigskin 621AD (rev 1.1K 8/01/90), Rampage (revision 2), Rampage (ver 3 8-27-86), Ridge Racer V Arcade Battle (RRV3 Ver. A), Ying Hua Lian 2.0 (China, Ver. 1.02), Tapper (Budweiser, set 1), Tapper (Budweiser, set 2), Tetris Plus 2 (Japan, V2.2), Willow (USA Old Ver.), Willow (Japan), X-Plan (Ver. 1.01) and Zero Hour (set 1). - MAME . Added all CPU and sound devices in emu folder to the MAME build . Removed cpuexec_describe_context, cpuexec_boost_interleave, cpuexec_trigger, and cpuexec_triggertime in favor of calls to the scheduler. . Removed redundant m_machine from the state and execute interfaces to fix ambiguity when using m_machine from within a device that inherits from these. . Move generic templates from emucore.h to emutempl.h. Normalize the tagged_list template to wrap a regular standard_list and have similar semantics. Updated a few direct callers to handle the changes. . Added methods in the device_t class that implicitly register state against the current device, making for a cleaner interface. Bulk updated existing devices and drivers with driver_device classes to use these methods. . Fixed memory manager bug when calling 32-bit handlers on a 64-bit address space . Converted attotime to a class, with proper operators. Removed old global functions which are now superceded by the operators and methods on the class. . Convert emu_timers to objects. Moved implementation and management of timers into the scheduler. Retain TIMER devices as a separate wrapper in timer.c/h. Rather than using macros which hide generation of a string-ified name for callback functions, the new methods require passing both a function pointer plus a name string. A new macro FUNC() can be used to output both, and another macro MSTUB() can be used to output a stub-wrapped class member as a callback. . Added a time() method on the machine, so that machine->time() gives the current emulated time. . Added methods to the device_t class that make creating and managing device timers much simpler. Modern devices were updated to use these. . Eliminated global/static variables in a number of Atari drivers by moving them into a driver_device . Eliminated global/static variables in a number of Taito/Irem drivers by introducing/using driver_device classes . Migrated allocated buffers to arrays in the driver_data classes of several drivers - Compiling . Added all CPU and sound devices in emu folder to the MAME build . NetBSD support - Debugger . Added basic LOAD function to the debugger to complement the existing SAVE function. It allows you to load a binary file straight into writeable memory. The format is the same as the SAVE function with the exception that the can be handled differently. . Implemented proper mouse wheel event handling in the Windows debugger . Ensured that the debugger disassembly PC cursor is visible on startup . Made "run to next CPU" more reliable 0.141u1 - New games: Penfan Girls and X-Plan (Alpha 101) - New Working games: HeliFire, Space Launcher, Mr. Kicker and Witch Card - New Non-Working games: ATV Track, Fantasy Zone (Mega-Tech, SMS based), Lucky Lady (Wing, encrypted), NASCAR Racing and Western Venture - New clones: 1943: Battle of Midway (bootleg, hack of Japan set), Bombjack Twin (prototype? with adult pictures), Cherry Angel, Cherry Bonus III (set 3), 13x FixEight, Football Champ (World) (bootleg), Gekirindan (Ver 2.3O 1995/09/21), Gekirindan (Ver 2.3J 1995/09/21), Magical Odds (set 3), Magical Odds (set 5, custom encrypted CPU block), Mahjong Man Guan Da Heng (Taiwan, V125T1), Ring of Destruction: Slammasters II (Asia 940831), Road Riot 4WD (set 1, 13 Nov 1991), Scramble (bootleg?), Sega Touring Car Championship, Sega Touring Car Championship (Unknown Revision), Sexy Parodius (ver AAA), Street Fighter Alpha 2 (USA 960430), Wild Witch (Export, 6T/12T ver 1.74A), Zero Target (World, CW) and Zero Team Suicide Revival Kit. - New drivers: atvtrack.c + 73x PinMAME driver - 80186 CPU: Fixed handling instructions - ARM7 CPU . ARM7 fix for '39 in 1 MAME bootleg' and fix to work with newer ARM7 cores. Removed a duplicate line. . Various ARM7+ cycle timing fixups . Disable 26-bit back compatibility for ARM7 variants other than ARM7500 . Fix carry flag issue on add/subtract in ARM mode . Fixed "MOV x, R15, LSL #y" form as tested by ARMWrestler . Added unimplemented Thumb MOV variant used by GBA Moto GP - H8/3xx CPUs: Fixed H8 unterminated string buffer - HD61700 CPU: Added CPU core used for emulate Casio PB-1000/PB-2000c in MESS - M6801 CPU (Bubble Bobble) . Added operating mode enum . Fixed port writes . Implemented SCI status follower bits . Implemented port 3 strobed mode . Fixed port writes some more - M68040 CPU: Added FSAVE mode 2 support to the FPU - MIPS CPUs . Make MIPS DRC selectable by #ifdef . Fixed BADCOP exception handling in the MIPS III interpreter . Fixed Compare interrupts in the MIPS III interpreter core. Aleck 64 games can now run under the MIPS III interpreter. . Implemented proper TLB handling in the MIPS III interpreter . Fixed MIPS3 DRC case where branch delay slot straddles a page boundary and the page check confirms that the block is paged in. . Include MIPS3 DRC delay slots in checksum calculations . Simplified UML parameters, as follows . Immediates can be passed raw, no IMM() wrapper required (and it's gone now) . Fixed integer registers now use constants I0,I1,I2,etc instead of IREG(0),... . Same for float registers F0,F1,F2,etc instead of FREG(0) . Dynamic integer/float regs use inline functions ireg(),freg() . MEM macro is now a lower-case inline function mem() - PPS4 CPU: Added Rockwell PPS4 CPU core (not finished) (PinMAME games / gts1.c) - SH-4 CPU . Cleanup and better common/interpreter separation . Port preliminary SH3 support from DRC - V25/V35 CPUs . Added a mostly complete NEC V25/V35 CPU core . Fixed V25 false warnings from some GCC versions - Dynamic recompiler . Improved TLB mismatch handling in PPC DRC, so that if we fill from an empty entry, we re-dispatch to previously compiled code instead of always recompiling the target. This greatly reduces the DRC overhead on 603-based games (model3.c, taitopjc.c and taitotz.c). . Redo most of the DRC/backend support as C++. Yes, it is intentional that the x86/x64 backends compile everywhere. Backends are now derived from drcbe_interface and implement several required overrides. x86emit.h now uses namespaces so that the x86/x64 emitters can co-exist. New file uml.h/uml.c actually describes the UML language, separating out several concepts from drcuml.c. - BSMT2000 and OKIM6295 sound . Replaced BSMT2000 HLE emulator with emulation of the original TMS32015 . Added a virtual stream update function to the device sound interface. Added a new stream_create that takes fewer parameters and calls the device's stream update. Removed the stream update stub template. Updated BSMT2000 and OKIM6295 to use the new interface for their streams. - DISCRETE sound . All nodes are now class based . Removed all support for "legacy", i.e. procedural node functions . Nodes are created using a class factory whose instances are set up in discrete blocks. There is no separation of node vs. module any longer. . Custom modules are now just implemented like "normal" nodes . Converted all custom modules . Context variables can now be migrated to be private class members . All list handling now based on dynamic_array_t (discrete.h) . More code rewrite to get rid of fixed allocations . Performance about the same as 0.140 . Start moving the discrete subsystem towards C++. Changed some structs to classes and most of the list processing now uses a linked list template which is type-safe. . Optimized RC_INTEGRATE and TRANSFORM. . Changed all "output[0] = ..." into "set_output(0, ..)" calls. Rewrote modules using "output[0]" as a latch as well. The purpose is to decouple nodes from the discrete infrastructure implementation. . Discrete subsystem now uses the sound_device stream_update function . Carved out a discrete_sound_device from discrete_device. This now has all the stream related code. discrete_device thus now contains all the generic code and may be used going forward to implement not sound related use cases. . Changed the discrete sound system to be class based . Former modules are now classes being derived from discrete_base_node . Moved all context variables to be private class members . For "standard nodes", DISCRETE_CLASS_STEP_RESET provides a simple way to implement a node . All information around a node (additional info struct, constants and input mappings may be defined on a class level centralizing all information. An example is dss_inverter_osc. . Significantly simplified the task handling . Fixed a bug which would not buffer secondary outputs . All lists in sound/disc_* are now based on dynamic_array_t (discrete.h) . Changed all drivers to reflect the changes . Custom modules are now just another node class . No performance hit observed due to these changes - Namco 62xx sound: New Namco 62xx device with internal ROM (I/O and explosion generator). Added MB8843 CPU4 and MCU rom 62xx.bin to Gaplus. - Sega PCM: Fixed loop address, Hang-On engine sounds better now. Also included documentation in source of known register functions. - SP0256 sound: Added SBY line read to the interface - Z80 DAISY: Allow Z80 daisy chain functionality to be used in a situation where there are more interrupt sources besides the daisy chain devices. - aleck64.c . Removed fast IMEM and DMEM handlers from the RSP DRC in favor of the core memory system; fixes RSP DRC on 32-bit targets. . Fixed RSP core VRSQL implementation . Changed DMADAC interleave in the Aleck 64 driver from 2 to 1; fixes monaural and poppy audio. . Fixed Compare interrupts in the MIPS III interpreter core. Aleck 64 games can now run under the MIPS III interpreter. . Implemented proper TLB handling in the MIPS III interpreter . Fixed garbled screen in Star Soldier and Vivid Dolls (ID 03808) - armedf.c: Fixed DAC chip playing Orchestra Hit Sample too low in Armed Formation (ID 02080). Fixed Z80 CPU2 clock speed. - bfm_sc2.c: Removed old-style NVRAM handlers in preparation for mechanical game support - bishjan.c . Implemented dynamic tile sizes . Generalized video routines to support more layers . Moved Magic Train from Subsino to BishouJan driver. Fixed access violation before OK (ID 04079). - cb2001.c . Reworked interrupt . Some Cherry Bonus 2001 gfx improvements - cshooter.c: Implemented Seibu Audio variant with a single YM2151 sound chip, giving working sound to clones Cross Shooter (encrypted) and Air Raid - goldnpkr.c . Lots of changes to get working the Video Klein games . Renamed witchcde to witchjol --> Jolly Witch (Export, 6T/12T ver 1.57D) . New video hardware and machine driver for Video Klein's extended tiles games . Added Dallas DS1210 + battery backed RAM support to the Video Klein CPU boxed games . Improved inputs for Jolli Witch and Wild Witch. Added the game selector switch. . Cleaned up some Witch Card sets . Added technical and game notes - hikaru.c: Added Brave Fire Fighters BIOS - legionna.c . Figured out and made comments of math tables in roms 14/15 of Seibu Cup Soccer bootleg inside machine\seicop.c . Preliminary implementation of the Seibu COP palette brightness mode 4, used by Denjin Makai fade in/out effects . Hooked up preliminary Seibu COP macro command 0x6200, used on SD Gundam Sangokushi Rainbow Tairiku Senki for the Homing weapon . Improved sprite-tile priorities in SD Gundam Sangokushi Rainbow Tairiku Senki . Work around for Seibu COP command 0x8100 / 0x8900, used in all games for direction of objects. Fixes many sync bugs in all legionna.c games. . Implemented proper RNG mechanism in Seibu COP emulation - m107.c: Fixed V35 CPU2 clock speed - m72.c . Added a mostly complete NEC V25/V35 CPU core . Hooked up proper V35-controlled interrupts in Cosmic Cop and clone. Fixed V35 CPU1 clock speed. - m90.c: Modified interrupt and fixed V35 CPU1 clock speed - m92.c: Added sound reset line for Irem M92 HW, and safely removed GAME_IMPEFECT_SOUND flag in Superior Soldiers and clone Perfect Soldiers. Fixed V35 CPU2 clock speed. - megadriv.c . Reorganized Megadrive/SMS sourcefiles for better sharing between MAME/MESS . Placed full Megadrive code in MAME section - mpu4drvr.c . Added fix for lamp 'open circuit' errors which in turn make Connect 4 work better . Fixed layout typo that caused the wrong piece to be displayed in Connect 4 . Documented the DUART and PTM better in MPU4 to allow for sampled sound changes later . Changed 'serial_card_connected_ to link 7a, as it is the jumper on the ROM card that changes the IRQ priority, not the serial interface itself. - model3.c: Redumped Daytona USA 2 (Revision A) CROMs - naomi.c . Support for NAOMI texture stride selection . NAOMI documentation additions - nss.c, sfcbox.c and snesb.c . Added uPD7725 16-bit DSP core and hookups for SNES hardware . NEC DSP updates: Now supports uPD7725 and uPD96050. Hooked up SNES common code to use uPD96050 for ST-010/011. Removed ST-010 HLE simulation. . Removed no longer needed SNES HLE code . Replaced rom dsp1data.bin (2 kb) with dsp1b.bin (10 kb) - raiden2.c . Work around for Seibu COP command 0x8100 / 0x8900, used in all games for direction of objects. Fixes many sync bugs in all raiden2.c games. . Fixed midground banking in Raiden II . Implemented program bank read-back in Raiden II, allowing it to not crash anymore during attract / gameplay. . Fixed sprite flickering and stage 5 crash in Raiden II . Fixed background gfx issues in later levels of Raiden II . Fixed BCD score display bug in Raiden II and Zero Team . Command 0205 changes data at +1c too in Raiden II . Write down the rather weird results of a series of tests in Raiden II . First stab at a cop "disassembler" for Raiden II . Fixed start-up banking in Raiden DX . Fixed Seibu COP command 0x7e05, used by Raiden DX fg video banking. . Implemented DMA slot concept to the Raiden 2 driver, giving correct sprite tables for X Se Dae Quiz and Zero Team. . Implemented Seibu COP macro command 0x904 (variant of 0x905), used on X Se Dae Quiz and Zero Team. - ssv.c . Improvements to the SSV sprite position and flipscreen support . Fixed some input issues in Meosis Magic, Twin Eagle II, Vasara and Vasara 2 - stv.c . Added support for MSB shadows in STV VDP2. This improves Soukyugurentai shadows. . Fixed rendering of not rotated RBG layer in STV VDP2. This fixes garbage on level 4 of Soukyugurentai. . Added support for MSB enabled color calculation for sprites in STV. This improves some sprites in Soukyugurentai. . Added support for MSB shadows in STV VDP2. This improves Soukyugurentai shadows. . Fixed rendering of not rotated RBG layer in STV VDP2. This fixes garbage on level 4 of Soukyugurentai. . Correct bitmap palette number for RBG0 in STV VDP2. This fixes colors in boss gfx in Soukyugurentai level 4 & 5. - toaplan2.c . Figured out which bit controls V25 RESET in each game by comparing the 68000 code . Added a comment about fixeight's I/O map, which we'll have to determine once we start decrypting it. . Put #ifndef USE_ENCRYPTED_V25S around some simulation crap that was hiding in fixeight's DRIVER_INIT. . Fixed regressed flip screen support in Toaplan 2 games . Preliminary implementation of V25/V35 port output . Fixed Cocktail mode (Player 2) has no background images in all sets (ID 01879) . Added a mostly complete NEC V25/V35 CPU core . Added working sound to Batsugun, Dogyuun and V-Five . Decrypted some opcodes in Dogyuun . Added several opcodes to FixEight . Found a few more FixEight opcodes, by matching code in the interrupt routines with Batsugun . Correct FixEight V25 address map (the YM2151 and OKI6295 are at a different location than the other games) . Decrypted all used opcodes and added EEPROMS for all countries; now the sound works . Hooked up EEPROM and cleaned up the inputport for FixEight (no dips) . Found a lot more Knuckle Bash opcodes by matching code with Batsugun. Correct m68k and v25 address maps for Knuckle Bash. . Added working sound to Batsugun and hooked up proper V35-controlled interrupts in Ken-Go . Fixed maincpu rom in Truxton II - 39 in 1 MAME bootleg: ARM7 fix for "39in1" (MAME) and removed a duplicate line. Fix 39in1 to work with newer ARM7 cores. (ID 04164) - 720 Degrees: Added Driver Configuration option to allow the controls to be set to Real 720 Controller Input; fake joystick; or fake spinner. It defaults to fake spinner for mouse/spinner use. - Arabian: Fixed Arabian after several cycles of the attact mode, the game halts (ID 04166) - Batsugun: Fixed missing music and some sound effects (ID 03501) - Battle Lane! Vol. 5: Fixed M6809 CPU1/2 clock speeds - Beezer . Added preliminary working sound. Replaced DAC sound with 'beezer SFX'. . Added missing XYZ latch readback, gets sound closer to working. . Documentation update for facilitating future sound work - Blandia: Fixed Jurane stage, the whole bottom of the screen is filled with solid gray (ID 00865) - Chinese Hero . Fixed a bad sprite on level 7 (ID 01004) . Added sprites wrap around-y to fix gorilla sprites entering from the left - Dangar: Fixed all musics playing is always slow (ID 03253) - Dunk Mania: Fixed blue screen after pressing "OK" in clone Dunk Mania (Japan, DM1/VER.C) (ID 04180) - Gaplus: Added MB8843 (2048000 Hz) CPU4 and MCU rom 62xx.bin - Golden Par Golf: Correct grom01.bin BAD_DUMP - Hang-On: Fixed loop address in SegaPCM sound, Hang-On engine sounds better now (ID 00992). Also included documentation in source of known register functions. - Heavy Unit: Correct coin mode and coinage - Heiankyo Alien: Fixed wrong colors (ID 04190) - HeliFire and Space Launcher: Fixed I8085 inte callback not being called when the IE flag was cleared after the CPU received an interrupt. This fixes interrupts in HeliFire and Space Launcher (Games now playable). - Joker Master: Added missing gfx1/2 and user1 roms - Lethal Thunder: Fixed a trivial boot vector program init bug - Lupin The Third - The Typing: Fixed an ARM7 R15 bit ignoring behaviour while in ARM state, fixes ARM crashing in game when you coin it up. - Mad Alien: Fixed highlighting in tunnel (ID 02111) - Mouser: Improved NMI handling - Mr. Dig: Enabled flipscreen - Mr. Kicker: Fixed problems and play speed (Games now playable) - Multipede: Replaced M65C02 CPU1 with G65C816. Fixed year info (ID 04178). - Mystic Riders: Added an opcode in Mystic Riders decryption table, makes BGMs to work in clone Mystic Riders (bootleg?) - Nichibutsu non-Mahjong games: Cleaned up clocks of mid to late 80s Nichibutsu non-Mahjong games. Though not completely accurate yet, this should improve music speed and DAC audio pitch a bit. - Raiden: Fixed crashes if you use -debug switch (ID 04147) - Rushing Heroes: Redumped PSAC2 and sprite roms - Star Fire / 2: Improved color emulation (ID 03460) and added driver data - Sky Raider: Fixed a bug in makedep which will caused includes on the first line of the file like in skyraid.h to be ignored - Sky Robo: Fixed Z80 CPU2 clock speed - Space Guerrilla . Less garbage trails, though it's not completely good yet. . Fixed jerky x-movement . Fixed crash on loadstate . Marked color proms as undumped - Super Monaco GP: Fixed voice samples incorrectly played (ID 02041) - Virtua Bowling: Fixed crash after OK (ID 04165) and sound is slow and low volume (ID 02495) - Added DIP locations to jchan.c, moo.c, mtrain, mystston, prehisle, pushman.c, mystwarr.c and zodiack - Dipswitch fixes in dangar, hvyunit.c, mystwarr.c, legionna.c, pushman, raiden2.c, ssv.c and toaplan2.c - Renamed (arcadia) to (warcadia), (batsugun) to (batsuguna), (cd32) to (cd32bios), (fixeightb) to (fixeightbl), (gekirido) to (gekiridnj), (magical) to (magodds), (magicala) to (magoddsa), (mgdh) to (mgdha), (mtonic) to (magoddsc), (pipibibi) to (pipibibsbl), (roadriot) to (roadrioto), (saturn) to (saturnzi), (sfa2u) to (sfa2ur1), (stcc) to (stcca), (witchcde) to (witchjol) and (zerotrgt) to (zerotrgta). - Description changes of Barroom Baseball (prototype) (ID 04199), Batsugun (older set), Batsugun, Derby Owners Club 2000 (Rev A), Derby Owners Club II (JPN, USA, EXP, KOR, AUS) (Rev B), Drive Out (bootleg), FixEight (Europe), FixEight (Korea, bootleg), Giant Gram 2 (JPN, USA, EXP, KOR, AUS), Jolli Witch (Export, 6T/12T ver 1.57D), King of Route 66 (Rev A), Magical Odds (set 4, custom encrypted CPU block), Multipede (rev 1.62), Pipi & Bibis / Whoopee!! (bootleg), Power Smash 2 / Virtua Tennis 2 (cartridge) (Rev A), Road Riot 4WD (set 2, 04 Jun 1991), Skill Drop Georgia (Ver. G1.0S), Spawn (JPN, USA, EUR, ASI, AUS) (Rev B), Speed Drop (Ver. 1.06), The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak), Top Secret (Japan, old revision), Wang Pai Dui Jue (China), Witch Card (German, WC3050, set 1 ), Witch Card (German, WC3050, set 2 ), Witch Card (Video Klein CPU box), Zero Target (World, CT) and Zoo (Ver. ZO.02.D) - MAME . Added GAME_MECHANICAL flag to mark games having mechanical interface (such as pinball, redemption, bowling games ...). Imported games from PinMAME as skeletons. . Flagged a number of existing games in MAME with GAME_MECHANICAL to indicate the presence of un-emulatable mechanical parts. . Marking mechanical games as such in XML . Made -bios option case insensitive (romload.c) . Display suggestions in case commands that require game name are called and there were no matching games . Changed the Analog Controls menu to only list controls selected in the Driver Configuration . Added support for cheats with software list shortnames - SDLMAME . OSD/SDL again compiles against latest SDL 1.3 SVN . Implemented "-watchdog" option for SDLMAME . "Copy-and-Paste" the "-bench" option from WIN32 to SDL . Makedep now ignores "-include" which is used by SDLMAME to include sdlprefix.h before all other includes. . Remove "makedep" stuff from sdl.mak now that the core supports it. Also split sdl-config output between INCPATH and CCOMFLAGS for Linux targets. makedepend now works. . SDL OS/2 fixes . Added "-syncrefresh" option to OSD/SDL. This will *limit* the game speed to the video refresh rate and works in -mt mode as well. The option has an effect only if "-waitsync" is specified - MESS . Moved MESS RAM device into emu core. Added COMP and CONS macros in driver.h. . Moved image devices implementation and related UI functions to emu section from MESS . Added support for a new template to -snapname so that it is possible to use the name of images mounted in the devices (for MESS). Namely, it is now possible to use %d_XXXX to prescribe usage of the image mounted in the device XXXX. . Improved the behavior of -listsoftware by updating DTD (clifront.c), by adding output of most missing elements and attributes (softlist description, features & diskdata) and by fixing size and offset formats. . Added remaining loadflags to -listsoftware output (clifront.c) . Added best match suggestions to software lists (softlist.c) . Only output best match if a list is present, limit the scan for best match to the devices with the same interface and fixed a corner case with shortname=listname . Added "-lsoft" option as short version of "-listsoftware" . Prevented -lsoft from output DTD if no list is found . Allow software lists to look for files in the rompath too . Added support for split set to softlist for cass and flop too (devimage.c) . Added support for split set to softlist (for Cart, CD and HD) (romload.c) . Added WARNING if loading a software with supported="partial" or "no" . Implemented handling of parent-clone CHDs in software lists (romload.c) . Added CHD support in softlists - Compiling . Build vconv in all circumstances as part of win32 build. Always use GCC to build vconv. Added missing extern "C" to intrinsic definitions. Change vconv to call link.exe instead of lib.exe for libraries . C++-ified drcfe and the associated frontends. You now create a frontend by deriving from drc_frontend and implementing the describe method. . Converted drccache to C++ . Fixed a bug in makedep which will caused includes on the first line of the file like in skyraid.h to be ignored. - Debugger: Fixed pressing F10 (Step Over) occasionally causes Debug menu to light up (ID 02883) 0.141 - New games: Silver Game - New Working games: Heavy Unit and Poizone - New Non-Working games: Bank Robbery (Ver. 3.32), Deuces Wild 2 - American Heritage (Ver. 2.02F), The Hermit (Ver. 1.14), Mambo A Go-Go (GQA40 VER. JAB), Maxi Double Poker (Ver. 1.10), Mega Double Poker (Ver. 1.63 Espagnol), Mega Double Poker Jackpot (Ver. 1.26), Poker 52 (Ver. 1.2), 'unknown French poker game' and 'unknown encrypted poker game' - New clones: Bank Robbery (Ver. 2.00), G.I. Joe (World, EB8, prototype?), Golden Tee Golf (Trackball, v2.0), Gran Tesoro? / Play 2000 (v4.0) (Italy), 3x Jack Potten's Poker (NGold, set 1/2/3) Jockey Grand Prix (set 2), Multi Champ Deluxe (ver. 1114, 14/11/1999), Raiden (US, set 2), Relief Pitcher (set 2, 26 Apr 1992 / 08 Apr 1992), 2x Space Firebird (Nintendo, set 2/3) and Vs. Stroke & Match Golf (Ladies Version, set E) - New drivers: blitz68k.c - ARM CPU . Fixed LDM opcode register writeback in ARM CPU core . Fixed an ARM CPU core bug with pre-indexed addressing opcodes, that was preventing Poizone to boot. - ARM7 CPU . Enhanced MMU with page fault support . Preliminary 26-bit mode support . Fixed bugs with S-flag operations on R15 . Fixed STRH involving R15 . Support for ARM models 7500 and 920T - MIPS III CPUs: Fixed writes in the interpreter - Z80 DART . The channel B modified interrupt vector can be read immediately after setting it . Reading from a read register other than 0 also masks out the register index - AY-3-8910A sound: Unused bits in registers read back as 0 - aleck64.c . Updated the RSP and RDP implementations to be largely bit-perfect and pixel-accurate . Fixed alpha compare in the N64 RDP implementation - blitz68k.c . Merged dualgame.c and ilpag.c driver to blitz68k.c . Fixed 68000 CPU1 clock speed and added DAC sound to Dual Games (prototype) - ertictac.c . Fixed an ARM CPU core bug with pre-indexed addressing opcodes, that was preventing Poizone to boot (Game now playable). Fixed also LDM opcode register writeback in ARM CPU core. . Greatly improved inputs and dipswitches - ghosteo.c: Some s3c24xx improvements and fixes - goldnpkr.c . Added new sets and some notes about ipc-1 daughterboard encryption . Added more references and reorganized some parent-clone relationship - ksys573.c: Changed region user1 to bios - legionna.c . Added DMA slots to Legionnaire HW, fixes Godzilla regression. . Improved sprite GFX ROM order in Godzilla. . Fixed RAM fill in Seibu DMA COP command 0x116, allowing Godzilla to boot. . Implemented palette DMA brightness algorythm mode 5 in Seibu COP games, used by Seibu Cup Soccer, Godzilla, SD Gundam Rainbow Tairiku Senki and Legionnaire for fading effects. . Implemented a preliminary sort-DMA in Seibu COP routines, fixes sprite-sprite priorities in Seibu Cup Soccer. . Fixed Seibu logo tilemap colors in Seibu Cup Soccer (ID 03340) . Implemented preliminary Seibu COP macro command 0xdde5, used by Seibu Cup Soccer x/y radar positions. . Fixed playfield color issues in Seibu Cup Soccer . Reimplemented scatter-gather Sprite DMA in Seibu COP used by SD Gundam Rainbow Tairiku Senki, also improving the functionality in it. . Implemented pdrawgfx for sprite routines in Legionnaire HW, and added wraparound for horizontal area smaller than 320, fixing left-border sprites in Legionnaire and Heated Barrel. . Implemented Seibu COP macro 0x905, used for ark movements in Legionnaire / Zero Team when a knock down occurs. - mpu4drvr.c: Account for the 45 degree trackball mounting in the driver - neodrvr.c . Renamed rom p1 to hp1 in clone Burning Fight (set 2) . Tagged MVS and AES version for Eight Man . Correct chip labels in clone Metal Slug 5 (AES Cart) . Added correct C8 rom to clone Voltage Fighter - pgm.c: Rewrote ICS2115 sound core using modern device standards, improving audio in Oriental Legend, Killing Blade and other PGM titles in the process. - plygonet.c: Fixed save state & device handler regressions - raiden2.c . Implemented ROM banking support in Raiden 2 HW, improving Raiden II and Zero Team behaviour. . Redumped sprite roms in X Se Dae Quiz - seta.c . Fixed a tilemap colors issue in Blandia (ID 00859/ID 00860) . Fixed incorrect colors in blandia, blandiap, crazyfgt, extdwnhl (ID 00863), gundhara, jjsquawk, jjsquawkb, madshark, sokonuke, usclssic, zingzip and zombraid . Fixed missing a rowscroll in Imageo stage and you don't receive damage from Imageo's magic (ID 03694) (ID 03695). - Arabian . Hooked up MB8841 MCU, this fixes the missing bird at top of the screen (ID 03916). Removed obsolete simulation code. . Assigned MB88xx interrupt sources unique vectors, as expected by the Arabian MCU program. - Bullet: Fixed FD1094 key back to what we dumped from original PCB - Cabal and Task Force Harrier: Fixed memory_set_bank called for unknown bank 'bank1' (ID 04156) - Chouji Meikyuu Legion . Added preliminary simulation of text layer protection . Fixed sfx sound - Cyber Tank: Implemented preliminary road emulation - Dai San Wakusei Meteor: Added preliminary (disabled by default) discrete sound emulation - DonPachi: Added pld - Goindol: Adjusted YM2203 clock speed and added XTAL based on a reference video recording - Heavy Unit . Hooked up KANEKO MERMAID protection MCU (Game now playable). Removed obsolete simulation code . Updated the driver to use a state class - Hydro Thunder: Fixed incorrectly CHD SHA1 (ID 04153) - Maze Invaders: Hooked up cocktail mode and proper controls for both players, adding button labels to describe the action of each. - Nibbler: Fixed Nibbler crashes after pressing OK (64bit) (ID 04161) - Super Chase: Moved Button 6 assignment to a DIP selection which is more appropriate for "Freeze Screen" behavior and added some missing port names. - Wonder League Star and Wonder League '96: Added the recent 87C52 MCU decaps - Dipswitch fixes in blitz68k.c, ertictac.c, hvyunit and mazeinv - Fixed rom names in ddragon.c, jockeygp, riskchal, neodrvr.c and spacefb - Renamed (gtgt) to (gtgt1) and (relief2) to (relief3) - Description changes of Dai San Wakusei Meteor (Japan), G.I. Joe (Japan, JAA), G.I. Joe (US, UAB), G.I. Joe (World, EAB, set 1), Jockey Grand Prix (set 1), Raiden (US, set 1, SEI8904 + SEI9008 PCBs), Relief Pitcher (set 1, 07 Jun 1992 / 28 May 1992), Relief Pitcher (set 3, 10 Apr 1992 / 08 Apr 1992), Space Firebird (Nintendo, set 1), Vs. Duck Hunt (Set E), Vs. The Goonies (Set E) and Vs. Stroke & Match Golf (Ladies Version, set ?) - MAME . Added directxor parameter to direct memory accessors. Update all callers that manually XORed addresses to pass the XOR instead. This improves behavior when direct accessors hit non-RAM regions, or when watchpoints are used, because we now know the original, un-xored address and can fall back to standard read/write handlers properly. Also fixes glitched disassembly when read watchpoints are enabled. . Removed public decodechar function - SDLMAME/LINUX . Fixed *BSD compilation for SDLMAME . SDLMAME now also looks for fonts in "-fontpath". In addition, moved font config stuff into function search_font_config. This is in preparation to add ttf support to Windows SDLMAME build. . Fixed most-likely-to-fail SDL_TTF version check. Added a warning if strikethrough is specified but not supported. . Fixed SDLMAME for Windows does not work unless you use -window (Id 04120) - Compiling . Some bulk naming cleanups across the whole source base: 1. MDRV_* -> MCFG_*, 2. running_device -> device_t, 3. mame_rand() -> machine->rand(), 4. memory_region() -> machine->region()->base(), 5. memory_region_length() -> machine->region()->bytes() and 6. region_info -> memory_region. . General stability issues with 64-bit builds fixed for cybertnk.c . Fixing compiling process (machine\s3c24xx.c) on Linux and MacOSX 0.140u3 - New games: Dai San Wakusei Meteor, Deluxe Trivia ? Whiz (Edition 5), Rumba Lumber and Sweet Life 2 (071217 Russia) - New Working games: BnB Arcade, Denjin Makai, DoDonPachi Dai-Ou-Jou, EspGaluda, Happy Tour and Ketsui: Kizuna Jigoku Tachi - New Non-Working games: Hydro Thunder, Offroad Thunder and Race On! - New clones: Ataxx (Europe), Crisis Zone (CSZO4 Ver. B), Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev D), DoDonPachi Dai-Ou-Jou (V100, first revision), DoDonPachi Dai-Ou-Jou (V100, second revision), Fruit Cocktail (030623 World), Gals Ds - Three Dealers Casino House (bootleg?), Gals Panic II (Italy), Gnome (071115 Russia), Gnome (bootleg, 071115, banking address hack), Gyruss (bootleg), Island (070409 Russia), Lucky Haunter (030804 World), Parodius DA! (World, set 2), Quester Special Edition (Japan), Raiden II (set 7, US Fabtek), Resident (040415 World), Tic Tac Trivia (Vertical) and World Class Bowling (v1.4) - New drivers: dai3wksi.c, midqslvr.c and r2dx_v33.c - 8085A CPU: Fixed loading of reg A from debugger 'do' command - H83002 CPU: Implemented ldc #imm, ccr and rotr.w Rx - V25/V35 CPU: Implemented a preliminary V25/V35 CPU core - Z80 DART . Fixed asynchronous transmit mode . Fixed channel A interrupt vector . Improved logging - FM sound: Removed static variables - 6850 ACIA . Adjusted receive/transmit timer periods when clocks are changed . Added receive byte function for MESS generic terminal emulation - MC6845 CRT: Added Synertek SY6845E subtype - cb2001.c . Fixed 2 decrypted V30 opcodes . Implemented a preliminary V25/V35 CPU core. Replaced V30 CPU with V35. - galpani2.c . Correct clocks documented from original Gals Panic II (Italy) PCB for Gals Panic II . Fixed 68000 CPUs clock speed - ghosteo.c . Fixed BnB Arcade and Happy Tour (Games now playable) . Replaced ARM7 CPU with ARM9 . Added idle skip . Added machine\s3c2400.c/h, s3c2410.c/h, s3c2440.c/h and s3c24xx.c - igs011.c: Fixed the ICS2115 timer - legionna.c . Fixed Denjin Makai (Game now playable) . Fixed an un-inited bankswitch problem in the Seibu audio driver, gives preliminary working sound in Denjin Makai. . Commented out a bogus irq hack in Seibu audio HW, fixes sound for good in Denjin Makai . Removes a cheesy kludge for Denjin Makai and SD Gundam . Added a preliminary DMA to the driver, fixes some color issues in Denjin Makai and Legionnaire (ID 02435). . Added DMA mode 0x0e in machine\seicop.c, used by Seibu Cup Soccer, Godzilla and SD Gundam Sangokushi Rainbow Tairiku Senki . Fixed sound comms in Seibu Cup Soccer . Decoded GFX roms in the Seibu Cup Soccer bootleg sets . Fixed BK3 bitplane order in Legionnaire, fixes the map screen colors in it. - m107.c . Added reset line trigger from main to sound CPU in Irem M107 driver, fixing Fire Barrel sound. . Added a preliminary hook-up for an alternative rowscroll effect in Irem M107 HW, noticeable in Fire Barrel stage 2 and 6 and World PK Soccer goal scrolling. . Added preliminary row select effect in Irem M107, fixes for good the start-up transitioning in Fire Barrel. . Ported row select to every other tilemap in Irem M107 and fixed a bug in it, gives correct stretching gfxs at the end of level 1 and at the start of level 8 in Fire Barrel. . Fixed rowscroll effect in Fire Barrel . Fixed a misplaced sprite bug in Fire Barrel . Fixed sprite-sprite priorities and a sprite sticking bug on game over screen in Fire Barrel . Fixed extensive issues with tilemaps/sprites in Fire Barrel (ID 03467) . Fixed regressed gameplay speed in Dream Soccer '94 . Fixed a title screen color bug in World PK Soccer . Fixed freeze after the "Recycle" screen in World PK Soccer (ID 02942) . Fixed sprite wrap-around y in Irem M107 HW . Implemented a preliminary V25/V35 CPU core. Replaced all V30 CPUs with V35. - m72.c, m90.c, m92.c: Cosmic Cop, Ken-Go: Implemented a preliminary V25/V35 CPU core. Replaced V30 CPU with V35. - multfish.c . Full save-states support . Changed to use timekeeper-device instead of mvram + custom code . Now use timekeeper as Z80 banked RAM (verified with hardware, now full game stats saved on power on/off as on real machine) . Graphics roms naming scheme changed as on Irgrosoft's hash-lists . Roll Fruit's always-locked-coinlock bug fixed . Few old missing roms found and added . All known hashes added (entertainment, lottery, etc) . Misc cleanup - naomi.c . Updates to NAOMI/NAOMI2 M2/M3 decryption . Added NAOMI 2 Export BIOS (epr-23608a.bin) . Added encryption key (machine\naomibd.c) to Virtua Fighter 4 (Cartridge) . Fixed some rom filenames that didn't fit MAME standard - pastelg.c: Hand tuned Z80 clock divider in driver, needed to correct sound sample pitch in Pastel Gal and Three Ds - Three Dealers Casino House. This fixes Pastel Gal screen not cleared (ID 03786). - pgm.c . Fixed end of spritelist marker in PGM . Added correct refresh rate for PGM games (Z80 CPU2 -> 8467200 Hz) . Fixed the ICS2115 timer . Added correct maincpu rom and default NVRAM to DoDonPachi Dai-Ou-Jou (Game now playable) . Added missing tiles/sprite and samples roms to EspGaluda (Game now playable) . Added correct sprite masks rom and default NVRAM to Ketsui: Kizuna Jigoku Tachi (Game now playable) . Fixed VSync in EspGaluda and Ketsui: Kizuna Jigoku Tachi - raiden2.c . Advance the COPX code a little in Raiden II . Added sound comms in Raiden II, giving working sound to it. . Fixed segmentation fault after OK in Raiden DX (Asia set 2) (ID 04074) and New Zero Team (ID 04073) . Made Zero Team and 'X Se Dae' to boot - scobra.c: Fixed missing sound in Rescue and Minefield (ID 04126) - Bullet: Fixed protection by adding a new FD1094 317-0041 key - Chack'n Pop and Tank Busters: Changed clocks to PCB verified levels - Dai San Wakusei Meteor . Correct game clock as verified on PCB . Download samples here http://samples.mameworld.info/wav/dai3wksi.zip - DoDonPachi Dai-Ou-Jou: Fixed VSync and added default NVRAM - Hunchback: Fixed missing sound in clone Hunchback (Scramble hardware) (ID 04051) - Kyros: Changed clocks to match bootleg PCB - Mahjong Hanafuda Cosplay Tengoku 5: Implemented ldc #imm, ccr and rotr.w Rx for H83002 CPU - Maze Invaders . Fixed up inputs, adding notes (ID 04144) . Fixed up DIP locations to match open/closed states shown in service modes for the Centiped driver. - Missile Command: Added proms to clone Super Missile Attack (for set 2) - Moon Shuttle: Added samples rom) from clone Moon Shuttle (US? set 2) to Moon Shuttle (Japan) - Pandora's Palace: Fixed missing audio elements (ID 03791) - Raiden II / DX: Fixed visible area - River Patrol: Fixed sprite colors (ID 04137) - Shrike Avenger: Fixed year info (ID 04150) - Space Chaser: Fixed screen is upsidedown (audio\8080bw.c) (ID 03723) - Smash Court Pro Tournament: Added missing key dumps - Sky Robo: Fixed service mode and removed ROM patches in clone 'Tatakae! Big Fighter' - Cheat engine: Added 'changed by' search - Updated the PALs that need to be dumped for Bloxeed (US, C System) and Puyo Puyo (Japan, Rev A) - Fixed savestates in Penguin Adventure and Pesadelo (ID 04103) - Added DIP locations to losttomb and scobra - Dipswitch fixes in centiped.c, legionna.c, m107.c and raiden2.c - Fixed rom names in ataxxj, missile, naomi.c, pacmania and vsnes.c - Renamed (derbyocw) to (drbyocwc) - Description changes of BnB Arcade, DoDonPachi Dai-Ou-Jou (V101), Dream Soccer '94 (M107 Hardware), EspGaluda (V100, first revision), Gals Panic II (Germany), Gogetsuji Legends (US, Ver. 95/06/20), Gouketsuji Gaiden - Saikyou Densetsu (Japan, Ver. 95/06/20), Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001), Ketsui: Kizuna Jigoku Tachi (V100, third revision), Ketsui: Kizuna Jigoku Tachi (V100, second revision), Ketsui: Kizuna Jigoku Tachi (V100, first revision), Parodius DA! (World, set 1), Street Heat (ID 04145), Tatakae! Big Fighter (Japan) and Tic Tac Trivia (Horizontal) - MAME . Added DEVICE_SELF_OWNER which allows an address map to refer to the owner of its owning device. Useful for CPU address map handlers for CPU's that are part of a device. . Fixed multiple escapes keypresses needed to exit MAME (ID 04142) - SDL: Clear and flip 3 times on resolution changes instead of twice, required by some OpenGL drivers. - Debugger: Fixed debug command symlist (ID 04131), Debugger cannot set 8bit registers with 'do' command (ID 04121) and Debugger print command does not behave as per the help (ID 04130). 0.140u2 - New games: Dirty Pigskin Football and Pac-Slot - New Non-Working games: Barrom Baseball (prototype), Crazy Taxi High Roller (GDX-0002B), Derby Owners Club 2000, DoDonPachi Dai-Ou-Jou, Dream Crown, EspGaluda, Funny Fruit (Version 1.13), Inu no Osanpo, Ketsui, King of Route 66, Neo Print V1 (World), Oriental Legend 2, Out Run 2 Special Tours (GDX-0014A), Ridge Racer V Arcade Battle (RRV1 Ver. A), Ringout 4x4, Samba de Amigo ver. 2000, Shakatto Tambourine Cho Powerup Chu (GDS-0016), Shootout Pool Medal, Smash Court Pro Tournament (SCP1), Virtual On Oratorio Tangram M.S.B.S. ver5.66 2000 Edition, World Kicks and X Tom 3D - New clones: Bee Storm - DoDonPachi II (ver. 101), Buccaneer, Buck Rogers: Planet of Zoom (not encrypted, set 2), DoDonPachi Dai-Ou-Jou (Black Label), Dogyuun (test location version), Dragon World II (ver. 100X, Export), JoJo no Kimyouna Bouken (Japan 981202), JoJo's Venture (USA 990108), Jungle Boy (bootleg), Ketsui (older), Ketsui (first revision), The King of Dragons (World 910805), Mega Man: The Power Battle (CPS1, USA 951006), Megatouch III (9255-20-06 ROD, California version), Megatouch IV (9255-40-01 ROB, Standard version), Moon Shuttle (US? set 2), Mortal Kombat (prototype, rev 4.0 07/14/92), Mortal Kombat II (rev L1.1), Pit Boss Megatouch II (9255-10-01 ROE, Standard version), Street Fighter II: The World Warrior (World 910228), Sunset Riders 2 (bootleg 4 Players ver ADD), Super Double (French), Super Megatouch IV (9255-41-01 ROG, Standard version), Super Space Invaders '91 (World) and Time Killers (v1.21) - New drivers: bartop52.c, neoprint.c and xtom3d.c - 680x0 CPUs: Many M680x0 FPU and PMMU fixes and enhancements - TMS7000 CPU: Correct two opcodes: Typo in inv_b and JPZ was wrong in official TI document. - V810 CPU . Added bare bones irq support . Fixed interrupt handing in core and flag position in PCW - 6840 PTM: Status register update fixes - 68681 DUART: Fixes for loopback mode - 8259 PIC: IRQ semantics fixes - 8237 DMA: Added memory-to-memory transfers - MC146818 RTC: Added UTC mode, various enhancements and fixes - 20pacgal.c: Fixed driver, which does not successfully boot (ID 04027) - cps1.c . Confirmed B-Board # for forgottnua, willowje, cawingu, fixed their labels where wrong and added pcb infos to video\cps1.c . Removed incorrect roms relationship between parent/clones in in ffightj, ffightj1, ffightj2 and cawingj . Minor cleanups and fixes - cps3.c . Added JoJo's Venture USA BIOS rom CD version . Reordered some CPS sets per release date in mamedriv.c . Minor cleanups and fixes - cubocd32.c: Fixed problems with i2cmem. Cubo CD32 games now save and load settings properly. - hyperspt.c, sbasketb.c, trackfld.c and yiear.c: Added 'Track And Field Audio' sound - m52.c, m57.c, m58.c, m62.c and travrusa.c: Added 'Irem Audio' sound - meritm.c: Fixed Pit Boss Supertouch 30 and Pit Boss Megastar, which doesn't boot (ID 03879) - naomi.c: Updated NAOMI/NAOMI2 M2/M3 decryption. On the fly decryption of Virtua Striker 3 is now possible. - pgm.c: Improved Video RAM mirroring - pooyan.c, rallyx.c, rocnrope.c, timeplt.c and tutankhm.c: Added 'Time Pilot Audio' sound - segas32.c: Correct several rom names in the driver. Most notably the correct revision for Spider-man & Golden Axe II US sets. - Demon Front: Added missing user1 rom ($0) to clone (ver. 105) - Mega Man: The Power Battle: Added missing notes about roms sockets - Rougien: Added proper MSM5205 sample playback - Saturday Night Slam Masters: Fixed slammast/slammastu labels and added D-Board PALs and PCB infos - Space Stranger: Updated overlay layout by adding the overlay for the Upright version, which looks different to the Cocktail. Toggle between Upright and Cocktail overlay in the 'Video Options' menu. - Time Soldiers: Fixed coins are not reacting correctly (MCU problem) (ID 04111) - Tobikose! Jumpman: Added missing plds roms - Virtua Striker 2 Ver. 2000: Added new user1 rom - Vs. Stroke & Match Golf: Replaced clone (Men Version, set 2) with correct dump - Yie Ar Kung-Fu: Added Button 3 to the original Yie Ar Kung-Fu boardsets. While not shown in manual, there is function for these buttons and the emulation should account for this possibility. Mapping is off by default. - Input port: Cleaned up many duplicate inputs and fixed others in a number of drivers - Dipswitch fixes in 7toitsu, gstrik2, macs.c, mgakuen, mlanding.c, mp_mazin, mouja, multfish.c, murogmbl, pacman.c and strkforc - Fixed rom names in area51a, cps1.c, redearth, segas32.c, segaybd.c, ssi and willowje - Renamed (ddp2) to (ddp2100), (ddp2a) to (ddp2), (jojo) to (jojoj), (kod) to (kodr1), (megaman) to (megamana), (megat2) to (megat2ca), (mercsu) to (mercsur1) and (mercsua) to (mercsu). - Description changes of Buck Rogers: Planet of Zoom (not encrypted, set 1), JoJo no Kimyouna Bouken (Japan 990108), JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913), JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD), JoJo's Bizarre Adventure (Euro 990913, NO CD), JoJo's Venture (USA 981202), Neo Print - '98 NeoPri Best 44 (Japan), Super Space Invaders '91 (World, Rev 1) and Turbo Force (old revision). - MAME . Split the screen device into a separate module. Converted global video routines into a video_manager. Moved video manager initialization earlier in startup. . Take some driver_device classes that cover multiple drivers and split them so that each driver gets their own driver_device class. In most cases, these drivers got entangled because of audio/mcu code that was shared between multiple drivers. . espial/marineb/zodiak (common code duplicated) . m52/m57/m58/m62/travrusa (common code in audio\irem.c) . junofrst/pooyan/rallyx/rocnrope/timeplt/tutankm (common code in audio\timeplt.c) . hyperspt/sbasketb/trackfld/yiear (common code in audio\trackfld and audio\hyprolyb.c) . 40love/bking/buggychl/msisaac (common code in machine\buggychl.c) - SDL . Support -uifont for using arbitrary TrueType fonts on Linux/BSD builds. This takes full pathname/filename to the font, and the name can have styles appended as in Windows: [b] for bold, [i] for italic, [s] for strikethrough, and [u] for underlined. Fonts are rendered at a size of 120 points and scaled down by the core, which looks superb on high-res displays (Liberation Sans that comes with most recent distros looks really good). Warning: Linux/BSD builds now require SDL_ttf 2.x. On Fedora the required package names are "SDL_ttf" and "SDL_ttf-devel". . -uifont now can also look up system font families like Windows . OS X support for -uifont . Build fixes for Ubuntu, -uifont non-ASCII rendering fix . Mac compile warning fix . Added ptty (*IX/OS X) and sockets (all SDL builds) capability - MESS . Fixed issue with image empty slot . Default for writeconfig is now 0 for MESS since it is not needed anymore . Fixed handling of mounted devices on hard reset . Unified some emuopts code and removed ifdefs . Allowed the use of either decimal or hexadecimal values for size, size and offset in software lists. - Compiling . Fixed array bounds problems found by GCC 4.5.x . Fixed BSD compile - Debugger: Fixed F4 shortcut so it explicitly labels the address as a number by preceding it with "0x". This allows F4 to work properly, for example, on the 68000 stepping to address a6, which also happens to be a register name. 0.140u1 - New games: Bygone, Janputer Special and Pit Boss Megatouch II - New Non-Working games: The King of Fighters XI, Odeon Twister 2 (v202.19), Shooting Star and Zero Gunner 2 - New clones: Mahjong Neruton Haikujiradan (Japan, Rev. A?), Mega Double Poker (conversion kit, set 2) and Royal Card (TAB original) - M6805 CPU: Added extremely preliminary 68HC05EG support - I80186/I80286 CPU . Fixed i80186/i80286 bound instruction restart when prefixed with a segment . Moved call of i80286_urinit to CPU_INIT. Fixed display of PC in the debugger. . Partially implemented i286 protected mode. Fixed verw, verr, lar, lsl and arpl instructions. - Discrete sound . Added DISCRETE_XTIME_xxx logic modules. These allow you to do logic operations on nodes that use x_time anti-alias info. Added the ability to decode x_time to the DISCRETE_BIT_DECODE module. This means you can have an oscillator pass x_time onto a counter, get the counter bits decoded, pass that through the new logic modules and also have them convert the x_time to energy/anti-alaised voltage. Updated Donkey Kong Jr. to use these new modules. . Removed old DISCRETE_74LS624 code and replaced it with new 74LS629 based code. Updated Mario to use new DISCRETE_74LS624 and DISCRETE_XTIME_logic modules. . Optimized speed of DISCRETE_DAC_R1 (abaseb, asteroid, atarifb, bsktball, copsnrob, crbaloon, dominos, firetrk, galaga.c, galaxian.c, goldnpkr.c, grchamp, indianbt, madalien, montecar, polaris, polepos, polepos2, poolshrk, skyraid, spiders, sprint1/2, sprint4, superbug, tank8, triplhnt and vicdual.c) . Fixed operation of DISCRETE_COUNTER_7492 (copsnrob, dominos, firetrk, montecar, sprint1/2, sprint4 and superbug) - cubocd32.c: Fixed crash (machine\cubocd32.c - akiko_frame_proc) - lkage.c . Added Bygone. This is a rare prototype platform game conversion on a Legend Of Kage PCB. TODO: Is it prototype?; MCU (same code as lkage) is not used; No music? . Fixed Z80 CPU2 and M68705 CPU3 clock speeds in The Legend of Kage - naomi.c . Redumped Kick '4' Cash to fix bad dumps . Completed dump of Neo-Geo Battle Coliseum - neodrvr.c . Updated game PCB info . Continued to document mask ROM types . Added correct p1 rom to Battle Flip Shot . Tagged MVS and AES version for King of the Monsters 2 . Fixed/mixed up crc's in Magician Lord and clone . Added correct c3/c4 roms to Money Puzzle Exchanger - system16.c: Fixed and verified with Test Mode the few System 18 bootlegs located in the driver for inputs and dipswitches - Cops'n Robbers . Started Discrete sounds (Motor 2 & 3, Crash sounds implemented) . Added Motor 0 & 1, and Zings sounds. Zings sound not hooked up until address for Fires & Zings is found. . Converted controls to positional type - DJ Boy: Removed deprecat.h usage and irq routines rewrite - Janputer '96: Fixed Z80 CPU1 clock speed - The King of Fighters XI: Redumped mask ROMs due to error in TSOP70 adaptor - Sukeban Jansi Ryuko: Fixed broken inputs (ID 04096) - Cheat engine: C++-ified the cheat engine - Dipswitch fixes in astormbl, astormb2, mwalkbl and shdancbl - Fixed rom names in vstrik3c, tm and tmdo - Renamed (maglord) to (maglordh) and (maglordh) to (maglord) - Description changes of Mega Double Poker (conversion kit, set 1) and Mahjong Neruton Haikujiradan (Japan, Rev. B?) - MAME . Created new class osd_interface to house OSD callbacks. Added new module osdepend.c with default empty implementations. Changed mame_execute() and cli_execute() to accept a reference to an osd_interface which is provided by the caller. . Updated SDL and Windows OSD to create an osd_interface-derived class and moved their OSD callbacks to be members . Added support for OSD-generated fonts. The OSD is queried first to see if it owns a given font (based on the name), and if it does, it is responsible for generating bitmaps on the fly as characters are requested. . Added new option -uifont to specify the UI font. It can be set to a filename, in which case a BDF font will be loaded. It can also be set to a font name (assuming the OSD support is present), in which case the OSD font by that name is used. The default value is 'default' which can be used by the OSD to substitute a default font or by the OSD, which will default to ui.bdf as before. In all cases, it falls back to the built-in font by default if none of the previous options works. NOTE: On Windows, the OSD will default to Tahoma as the font name. Also on Windows, font names can be specified with [b] to indicate bold or [i] to indicate italic. Otherwise, you can download the TTF version, install it directly in windows and then select it from the UI customization menu. . Use "default" font for artwork elements as well. Make UI backgrounds a bit more opaque. Fix crash when passing NULL filename to OSD code. . Converted rendfont to C++ (emu\rendfont.c + render.c) . Added the ability to choose a different name for the UI font (ID 02561). -uifont ; specifies the name of a BDF font file to use for the UI font. If this font cannot be found or cannot be loaded, the system will fall back to its built-in UI font. On some platforms 'fontname' can be a system font name instead of a BDF font file. The default is 'default' (use the OSD-determined default font). . Added UTF-8 constants for cursor key arrows, and accented characters on the Swedish/Finnish keyboard layout. - Compiling: Make osdmini build again - Debugger . Fixed display of PC in the debugger . Converted the expression engine to C++, did the usual cleanup. . Removed an unnecessary assert in SDL Debugger and brought focus back to the main debugger window on startup 0.140 - New Working games: Devil Island - New Non-Working games: Magical Touch - New clones: Devil Island (Version 1.0R CGA) and Streaking (set 2) - New drivers: magtouch.c - Laser Disc: Fixed LDPLAYER fails to link (ID 03930) - MC6845 CRT + emu\video.c . Added new method reset_origin() to screen devices to allow manual synchronization of VBLANK start against an external timing source. . Updated the MC6845 device to call reset_origin() on its screen at the start of each frame if a screen is present. - 1943.c, 40love.c and 4enraya.c: Removed deprecat.h usage from driver - aristmk4.c: Fixed hang immediately after start in debug build (ID 04090) - balsente.c: Fixed missing graphics/black screen corruption (ID 04083) - cdi.c . Considerably improved UART communications in the CD-i 68070 implementation, increasing Quizard stability as a result. . Re-worked Quizard MCU communications handling to be more easily expanded - cidelsa.c . Converted the RCA CDP1802 CPU into a C++ device. Refactored driver to use the new RCA COSMAC CPU. . Refactored the CDP1869 sound chip into a C++ device . Changed name 'CDP1802' to 'COSMAC' - cps3.c: Fixed black screen/hang (ID 04075) - megadriv.c . Fixed use of the sign bits on the SegaCD Roz parameters, improves the SegaCD intro rotations etc. which now appear correct. . Clamp Roz stuff to 24-bit, seems to fix the remaining issues with the Sega logos. - nmk16.c: Reworked irqs by not using cpu_getiloops() function - nss.c: Attempt to provide a correct M50458 char rom - qix.c: Fixed player's character disappears during gameplay in qix, zookeep and clones (ID 04059) - seibuspi.c: Fixed sound issue (ID 04085) - snk.c: Fixed viewing c000-c700 in debugger for "SUB" Z-80 causes memory corruption (ID 03800) - 1942: Reworked interrupts by not using cpu_getiloops() function - 4 En Raya: Did some minor clean-ups. Changed palettesize from 512 to 8 colors. - Alien Command: Rewroted irqs by not using cpu_getiloops() function - Black Tiger: Fixed Test mode displays only a solid black screen (ID 04067) - Donkey Kong Junior: Fixed discrete audio output is lower pitched than normal (ID 03074) - Devil Island: Added missing oki and gfx1/2 roms (Game now playable) - Mouse Trap: Fixed crash/assert after OK (ID 04078) - Polygonet Commanders and Poly-Net Warriors: Fixed custom mapping for DSP56k internal memory - Simpsons Bowling: Fixed incorrectly NVRAM writing (ID 04091) - Input port: Fixed texture leak in crsshair.c - Description changes of Devil Island (Version 1.4R CGA) and Streaking (set 1) - MAME . Correctly free textures when screen size dynamically changes. Fixes texture assert when exiting on a number of games. . Convert rendlay objects into C++, reduce the number of unused textures allocated. . Added new devcb type DEVCB_TYPE_DRIVER, which implies the driver_device. . Added new macros DEVCB_DRIVER_LINE_MEMBER and DEVCB_DRIVER_MEMBER to specify member functions of the driver device in callbacks . Fixed using CTRL-C to end MAME no longer works reliably (ID 03937) . Added explicit control handler for the console. Ctrl+C/Ctrl+Break now explicitly terminate the process forcefully, rather than unwinding through the system in an unexpected state. Other console events (exit, shutdown, logoff) request a graceful exit. . Fixed artwork cropping not working correctly (ID 04076) . Fixed crash when -effect is used (ID 04077) . Moved -effect implementation out of OSD code and into core since the implementations were identical across Windows/SDL and implemented in the core itself . Fixed setting 'snapname %g' does not allow snap to be saved with F12 (ID 03770) . Fixed all sets using -autosave: "auto.sta" can mistakenly be erased (ID 03915) . Fixed games/drivers with no screen: When you exit MAME, you do not get control back (ID 04081) . Added Dummy driver (emu\drivers\emudummy.c) that references CPU devices which are in turn referenced by devices in libemu.a. The reason we need this is due to link ordering issues with GCC if the actual drivers being linked don't reference these CPU devices. Since we link libcpu first, if libemu needs stuff from libcpu that wasn't previously referenced, it will fail the link. - Compiling . Fixed visual Studio compiler warning in src\mame\video\n64.c (ID 03835) . Fixed default 'tiny' does not build (ID 04065) . More Clang fixes (verified OK with GCC) - Debugger: Fixed massive memory leaks + crash upon exit in debug build (ID 04080) 0.139u4 - New games: Falcons Wild - Wild Card 1991 (TVG), Mallet Madness v2.1, Tetris / Bloxeed (Korean System 16 bootleg) (ISG Selection Master Type 2006) and Victor 6 (v2.3N) - New Working games: Piccolo Poker 100, Quizard 1.2, Quizard 1.7 and Quizard 2.2 - New Non-Working games: 5-Aces Poker, Arrow Bingo, Dual Games (prototype), Faster Than Speed, Mahjong Hanafuda Cosplay Tengoku 5 (Japan), Mobile Suit Gundam: Federation vs. Zeon (2001-02-08), NFL (ver 109), NSM Poker (TMS9995), Puyo Puyo Da!, Symbols (ver 1.4) and Wave Runner GP - New clones: Falcons Wild - World Wide Poker (Falcon original), Falcons Wild - World Wide Poker (Video Klein), Final Lap 3 (Japan - Rev C), Gun Fight (set 2), Hit Me (set 1), Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN), Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN), Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN), Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN), Omega Race (set 2), Puckman Pockimon (set 2), Sea Wolf (set 2), Symbols (ver 2.5), Star Raker, Victor 6 (v1.2), Victor 6 (v2.3), Virtua Striker 3 (Cart, rev. B) (USA, EXP, KOR, AUS), Witch Card (Falcon, enhanced sound), Witch Card (German, set 3, alt gfx), Witch Game (Video Klein) and X-Men: Children of the Atom (Asia 950105) - New drivers: avt.c, csplayh5.c, dualgame.c and nsmpoker.c - 68000 CPU: Added more conditionals and FGETEXP instruction - 68030 CPU . MMU now emulates translation cache . Fixed misinterpreted MMU opcodes - 80186 CPU: Added INT1, INT2, INT3, DRQ0, DRQ1, TMRIN0, TMRIN1 input and TMROUT0, TMROUT1 output lines to the interface. - F8 CPU: Fixed interrupt handling - I386 CPU: Fixed unaligned 16 and 32-bit I/O accesses in the core - SH-2 CPU . Implemented support for SH-2 cycle steal mode, used by Fever Soccer . Fixed a SH-2 with TSTM opcode . Fixed BSRF and JSR in SH2DRC so delay slot insns can trash the calculated PR if they want. . Fixed PC relative MOV in delay slot . Further improvements to PC_relative loads in the delay slot - Z80 CPU: Modified Z80-DMA reset command (C3) to not randomly clear registers - 8237 DMA: Initialize the command register to 0 on reset - CD-ROM: Added a per-channel volume setting function to sound/cdda. - NVRAM . Death to more NVRAM_HANDLERS . Converted X2212 to a modern device. Changed X2212 device to return unmapped bits for the upper 4 bits. Added e2prom address space to X2212 so that the latched contents can be viewed. Updated starwars and firefox driver. Hooked up X2212 in Food Fight. . Changed Crystal Castles and Cloud 9 to use the X2212 instead of the hacked-up fake version they had. . Added ER2055 device. Changed Liberator (Atari 1982) over to using it. Other Atari games to follow. - V9938 video: Set default value for status register 4 and 6 (big10.c, csplayh5.c, meritm.c, sangho.c, sfkick.c and sothello.c) - Amiga: Converted Amiga drivers to use driver_devices. Merged common code between legacy Amiga and AGA video systems. (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) - avt.c . Almost accurate memory map . Decoded graphics . Decoded the bipolar PROM . Detected a CRTC (MC6845 type) reversing the code . Guessed the CRTC clock to get proper values . Hooked the AY-3-8910 . Added games notes . Added technical notes - cdi.c . Ported over CD-i cleanup from MESS . Added UART Tx/Rx framework to the CD-i 68070 implementation, necessary for Quizard protection. Changed default CD-i SLAVE video setting to PAL, necessary for Quizard to boot. . Changed visible area and resolution of CD-i based arcade games. . Replaced the excessively large Quizard patch scheme with a much smaller 4-byte patch plus basic protection obfuscation simulation. . Removed RAM protection patches from Quizard games. All games now at least boot with simulated protection, and the ones that were playable before remain playable. . Patched out the majority of the Quizard 1.2 protection check and made the patch more generic. . Got Quizard 1.7 to boot with a targeted hack. Still not playable. Patched out the majority of the Quizard 1.7 protection check and emulated the game's inputs. . Found the appropriate patch values for Quizard 2.2 and promoted it to working. . Added incomplete protection patches to Quizard 3.2 and Quizard Rainbow 4.1; both now run through attract mode and coin up, but crash when going in-game. - goldnpkr.c . Added 3 new Witch Card sets . Added 3 new Falcons Wild sets (from 3 different hardwares) . Hooked the second CPU (still encrypted) to the Falcon hardware . Partially decrypted the second CPU program from Falcon hardware . Figured out the Falcons Wild (Video Klein) memory map and machine . Figured out the multiplexed data/address from Falcon's boards sound . Added full sound support to Falcon hardware . Defeated the evil Video Klein's Witch Card hardware . Reworked inputs for some sets . Added lamps layouts/connections to the new sets . Reorganized and partially cleaned-up the driver . Added more technical notes - megadriv.c . Changed Megadrive way the Z80 window into 68k space works so that it automatically can handle things like the 32x . Fixed 8-bit dram (framebuffer) access for 32x . Put the SH2 DMA on a timer. This is needed because Knuckles Chaotix on the 32X can't be done with 'Instant DMA' due the SH2 DMA is used to read from a FIFO port which is being filled by the 68k during the transfer. - naomi.c: Added Mamonoro cartridge description - neodrvr.c . Call optimize_sprite_data() at VIDEO_RESET (for the convenience of Neo Geo CD) (video\neogeo.c) . Started to document mask ROM types . Added correct M1 ROM to Gururin . Reverted Kizuna Encounter and Savage Reign C1 change from u3 (chip was bad, C1 was correct) . Tagged 'Quiz Meitantei Neo & Geo' as MVS and AES version - niyanpai.c: Removed IRQ hack in Niyanpai HW - PSX: Updated PSX drivers to use a driver_device (konamigq.c, konamigv.c, ksys573.c, namcos10.c, namcos11.c, namcos12.c, taitogn.c, twinkle.c and zn.c) - raiden2.c . Checkpoint current state of driver . Fixed visible area . Fixed mainprg rom loading in X Se Dae Quiz - subsino.c . Created proper inputs for all Victor 6 sets . Fixed/extended Magic Train technical notes . Eliminated the 3 undumped bipolar PROMs from Magic Train since these are in fact Darlington Arrays instead of bipolar PROMs - taitogn.c: Fixed NVRAM writing - games never start (ID 04060) - vpoker.c . Added 5-Aces Poker . Fixed, improved and merged memory map . Fixed maincpu rom loading . Removed the MAME rnd hack from the blitter read handler . Preliminary inputs . Fixed visible area - viper.c . Added 941a01 BIOS . Added the missing NVRAM dump to clone Police 24/7 (ver EAA). - zr107.c: Attempt to untie the shared mapping for all games in the driver (midnrun, windheat and waveshrk). Buttons now have labels and match up to test mode, even if you cannot play the games. - American Poker II: Added a workaround to get clone Piccolo Poker 100 booting. Created inputs from the scratch. Promoted to 'working'. Added technical and game notes. - Bomb Kick: Added new labels to better describe the status required for each DIP, rather than the duplicate label "DON"T CHANGE IT!". - Borderline: ChangeD 'Lives' dipswitch to use only a single DIP instead of being split up between two input ports by using a CUSTOM_INPUT. - Liberator . Added ER2055 device. Changed Liberator over to using it. Other Atari games to follow. . Modernized driver, added save state support. . Moved generalized EAROM handling to atarigen - Mirage Youjuu Mahjongden: Added sprite buffering, confirmed by a real PCB video. - Mobile Suit Gundam: Federation vs. Zeon (2001-02-08): Added protection key, it boots now. - Solomon's Key: Fixed missing characters (player and enemies) (ID 04063) - Sunset Riders: Eliminated non-functioning service mode mapping in clone (bootleg 4 Players ver ADD), which was a duplicate. - Violence Fight: Added missing P2 Button 3 (ID 04068) - Virtua Striker 3: Replaced all 8MB user1 roms with 16MB - Vs. Pinball: Fixed clone (Japan) flipper control and eliminated duplicated inputs - Dipswitch fixes in bombkick, brdrline, piccolop and vpoker.c - Fixed rom names in mtrain, neodrvr.c and rapidfir - Renamed (hitme) to (hitme1) and (xmcotaa) to (xmcotaar1) - Description changes of Gun Fight (set 1), Hit Me (set 2), Omega Race (set 1), Piccolo Poker 100, Puckman Pockimon (set 1), Sea Wolf (set 1) and Virtua Striker 3 (Cart, rev. C) (USA, EXP, KOR, AUS) - MAME . Converted render.c objects into C++ objects. Updated all callers. . Fixed another Clang issue . Changed memory width stubs to fill unpopulated regions with the appropriate portion of the unmap value . Added new (modern) address map macros for referencing member functions in base classes: AM_READ_BASE(_class, _member), AM_WRITE_BASE, AM_READWRITE_BASE, etc. . Updated driver-specific sound devices to use tokens and store their state like other devices. . Enable wavwrite (and aviwrite) sound even if -nosound is specified . Since PNG writing is used for MNG as well, switch back to default compression instead of best compression in order to keep the performance reasonable. . Fixed bug where multiple sampleof attributes could be output, resulting in invalid XML. - Debugger . Enabled vertical scroll bars in debugger comboboxes, and resize them to show the full text. . Window locations in the SDL debugger are now saved and loaded at exit and startup. 0.139u3 - New games: Gnome, Shinobi / FZ-2006 (Korean System 16 bootleg), Poker Master and White Tiger - New Non-Working games: Jubilee Double-Up Poker, Maximum Speed, Movie Card and Swiss Poker - New clones: 10x Crazy Monkey, Crisis Zone (CSZO2 Ver. A), 16x Fruit Cocktail, 7x Garage, 5x Gnome, 2x Island, 6x Island 2, 8x Keks, 7x Lucky Haunter, 1x Multi Fish, Piccolo Poker, 1x Pirate, 5x Pirate 2, 6x Rock Climber, 7x Resident, Sega Rally Championship (Revision B), Soul Calibur II (SC22 Ver. A), 1x Sweet Life, Touchmaster 2000 Plus (v4.63 Standard), Touchmaster 4000 (v6.01 Standard) and Vigilante (World, set 2) - New drivers: goldngam.c and jubilee.c - ADSP21xx CPUs: Converted core to a modern CPU device - ASAP CPU: Converted core from a legacy CPU core to a modern device - HuC6280 CPU / PC Engine . Fixed sprite OV flag behaviour in PC Engine VDC emulation . Fixed missing VRAM > VRAM DMA flag clearance in PC Engine emulation . Fixed a bogus Hu6280 CPU core bug with timer latch division values readings - MSM5205 sound: Added a function to change the frequency dynamically - OKI6295 sound . Bulk converted all okim6295_r/okim6295_w references in the address maps to call to the modern member functions. . Added read_status() and write_command() methods to the okim6295_device for the common case where these are done outside the context of a read or write handler (it was annoying to pass in the fake address space for these cases) . Replaced all remaining calls to okim6295_r/okim6295_w with calls to the new methods, and removed the static functions. - Added Apple Sound Chip (emu\sound\asc.c) - 6522 VIA . Changed to use the new device timer mechanism . Removed all trampolines in favor of modern methods - MC146818 RTC: Made chip a proper device, modernized it, and added an NVRAM interface so that drivers don't have to ask it to be manually saved. - MC6845 CRT: Rewritten driver to allow mid frame changes to the counter registers. This enables drivers to use advanced split screen and scrolling effects using a regular MC6845. - Flash ROM emulation (intelfsh.c) . Converted intelfsh to a device, updated all users. . Added memory interface to the intelfsh device so you can access/view the data in the debugger and via the standard memory interfaces. Removed the old memory() method in favor of new functions read_raw()/write_raw() which do direct reads/writes of the data. - NVRAM . Created a new generic NVRAM device. It can be configured to default to 0-fill, 1-fill, random-fill, or custom fill. In all cases, a same-named memory region overrides the default fill. The address range where the NVRAM can be found is now identified by an AM_SHARE() region of the same tag as the NVRAM device. Drivers can also explicitly configure a separately-allocated NVRAM region via nvram_device::set_base(). . Replaced all instances of MDRV_NVRAM_HANDLER(generic_*) with MDRV_NVRAM_ADD_*("nvram"). Replaced all AM_BASE_GENERIC/AM_SIZE_GENERIC(nvram) with AM_SHARE("nvram"). For all remaining drivers that referenced the generic.nvram directly, changed them to hold a required_shared_ptr to the NVRAM in their driver state, and use that instead. Removed NVRAM and nvram_size from the generic_ptrs. . Replaced largely redundant NVRAM handlers with NVRAM devices for namcos2.c and a bunch of the Nichibutsu mahjong games. - EEPROM: Moved the old hard-coded EEPROM data out into a file in 720, batman, bbusters, csprint, cyberbal, guardian, harddriv, hdrivair, offtwall, paperboy, racedriv, rampart, relief, roadriot, ssprint, steeltal, strtdriv and stunrun - Support for ISG Selection Master Type 2006 BIOS - aristmk4.c . Improved a few memory handlers . Cashcade workaround for Top Gear - aristmk5.c . Added proper handling of the SRAM . Removed usage of I2C - bfm_sc2.c (bfm_dm01 improvements): Replaced the video screen hack used for the dotmatrix display with a more accurate, artwork-based version. The BFM_DM01 clocks data in one byte at a time, and the new dotmatrix render object represents the 8 dots powered by each byte. - chihiro.c: Fixed assert before OK in all sets (ID 04035) - cps3.c . Cleaned up CPS3 No-CD sets to break up the "ROMs" into individual flash pieces which are automatically loaded by the intelfsh device on initialization. . Split the MACHINE_CONFIG to only populate the number of SIMMs actually present for each game, as documented in the top of the file. . Replaced the NVRAM_HANDLER with an NVRAM device - ddenlovr.c . Verified clocks and OKI6295 pin on 'Quiz Channel Question' boardset. . Fixed OKI6295 clock speed in hginga, hgokou, hparadis, mjflove, mjmyornt, mjmyster, mjmyuniv, quizchq, rongrong - dkong.c: Fixed all games doesn't start (debug build) (ID 04032) - firebeat.c: Added paddle input to Keyboardmania, Keyboardmania 2nd Mix and Keyboardmania 3rd Mix - gaiden.c: Fixed screen is shifted 32 pixels down with flip-screen in gaiden, wildfang and raiga (03952) - leland.c: Replaced NVRAM_HANDLER with an NVRAM device - megadrvb.c: Merged ssgbl.c with megadrvb.c and moved bootleg input definitions out of megadriv.c - multfish.c: Updated driver with new information and several new sets as well as several new bootlegs - namcops2.c: Renamed DVDs to match labels - neodrvr.c . Tagged MVS AND AES VERSION and added correct m1 rom in Crossed Swords . Renamed roms in Ghostlop to match proto naming scheme . Added correct c1 rom to Kizuna Encounter . Added correct m1 rom to Legend of Success Joe . Added correct c1 rom to Savage Reign . Renamed 051-v roms in Viewpoint to correct chip label - overdriv.c, kaneko16.c, konamigq.c, taito_f3.c and taito_z.c: Fixed "16-bit EEPROM set with 8-bit data" (ID 04030) - scramble.c . Fixed and verified AY-3-8910 clock speed from real hardware in Triple Punch . Fixed AY-3-8910A clock speed in Mariner - starwars.c: Removed vestigial NVRAM from driver, which is now covered by the x2212 device. - ssv.c . Implemented visible area registers (now the resolution for all the games is the max visible area, the values of the registers after the boot process) . Implemented y tilemap offset register . Implemented x and y visible area register . Disabled tilemap draw when mode=0 . Removed kludge for sprite x offset and implemented 1 bit of 7a-7b register . Implemented y sprite inversion CRT register . Added a kludge for Dyna Gear . Used CRT registers to get the sprite x offset . Removed offset values from the init; the offset now are handled by the CRT registers . Fixed bit #a of 7a-7b CRT register . Fixed background disable condition . Confirmed visible area register with a Twin Eagle II PCB . Fixed missing graphic effect in screen transitions in Twin Eagle II (ID 04050) - viper.c: Fixed assert in debug build (ID 04034) - Area 51: Site 4: Fixed black screen in debug build (ID 04031) - Astro Wars: Fixed severe graphic corruption (ID 04036) - BanBam: Added MCU dump and MB8841 MCU - Batsugun: Fixed incorrect VDP mixing (ID 04044) - Battle Bakraid: Fixed text glitch in the flip screen mode (ID 00945) - Ghox: Fixed gfx glitches on the background in the ending scene (ID 00944) - Grudge Match (prototype): Fixed number of buttons - Gundam Seed: Federation vs. Z.A.F.T.: Added dongle dump - Jubilee Double-Up Poker: Decoded graphics and colors properly. Hooked the correct TMS9980 CPU, added a preliminary memory map and some technical notes. - Storm Blade: Fixed graphical corruption on left side of screen beginining stage 3 (ID 01993) - Converted the following drivers to driver_data: sauro.c, scotrsht.c, segald.c, seicross.c, senjyo.c, shangha3.c, shaolins.c, shisen.c, skyraid.c, solomon.c, spcforce.c, speedatk.c, splash.c, sprcros2.c, ssozumo.c, suna16.c and suna8.c. - Input port: Correct or clarified a number of duplicated inputs for drivers up through A-G - Fixed dipswitches and inputs (after verification of the Z80 or M68000 code) in Pipeline and Quiz Panicuru Fantasy - Dipswitch fixes in bfm_sc2.c, cchasm.c, cubocd32.c, dmndrby.c, funworld.c, galaxold.c, grudge, multfish.c, pipeline and quizpani. - Renamed (aladbl) to (aladmdb), (mk3ghw) to (mk3mdb), (soulcl2a) to (soulcl2b), (ssf2ghw) to (ssf2mdb), (ssgbl) to (srmdb), (tm2ka) to (tm2kb) and (tm2k) to (tm2ka) - Description changes of 'Crazy Monkey (031110 World)', 'Crazy Monkey (bootleg, 031110, backdoor set 1)', 'Crazy Monkey (bootleg, 031110, backdoor set 2)', 'Crazy Monkey (050120 World)', 'Crazy Monkey (bootleg, 050120, backdoor)', 'Fruit Cocktail (040216 World)', 'Fruit Cocktail (bootleg, 040216, banking address hack)', 'Fruit Cocktail (bootleg, 040216, backdoor)', 'Fruit Cocktail (050118 World)', 'Fruit Cocktail (bootleg, 050118, backdoor)', 'Fruit Cocktail (060111 World)', 'Garage (040219 World)', 'Garage (050311 World)', 'Garage (bootleg, 040219, backdoor)', 'Garage (bootleg, 040219, changed version text)', 'Garage (bootleg, 050311, backdoor)', 'Island (050713 World)', 'Island (bootleg, 050713, backdoor)', 'Island 2 (060529 World)', 'Island 2 (bootleg, 060529, banking address hack)', 'Keks (060328 World)', 'Keks (bootleg, 060328, backdoor)', 'Keks (bootleg, 060328, banking address hack)', 'Keks (bootleg, 060328, banking address hack, changed version text)', 'Keks (060403 World)', 'Keks (bootleg, 060403, banking address hack)', 'Keks (bootleg, 060403, banking address hack, changed version text)', 'Lucky Haunter (031111 World)', 'Lucky Haunter (bootleg, 031111, backdoor)', 'Lucky Haunter (040216 World)', 'Lucky Haunter (bootleg, 040216, backdoor)', 'Lucky Haunter (040825 World)', 'Lucky Haunter (bootleg, 040825, backdoor)', 'Multi Fish (bootleg, 021124, banking address hack)', 'Multi Fish (bootleg, 040308, banking address hack)', 'Pirate (060210 World)', 'Pirate (060803 World)', 'Pirate 2 (061005 World)', 'Pirate 2 (bootleg, 061005, banking address hack set 1)', 'Pirate 2 (bootleg, 061005, banking address hack set 2)', 'Pirate 2 (bootleg, 061005, banking address hack, changed version text set 1)', 'Pirate 2 (bootleg, 061005, banking address hack, changed version text set 2)', 'Pirate 2 (bootleg, 061005, banking address hack, changed version text set 3)', 'Rock Climber (040827 World)', 'Rock Climber (bootleg, 040827, backdoor)', 'Rock Climber (bootleg, 040827, new service menu)', 'Resident (040513 World)', 'Resident (bootleg, 040513, backdoor)', 'Sega Rally Championship (Revision C)', 'Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)', 'Sweet Life (041220 World)', 'Sweet Life (bootleg, 041220, backdoor)', 'Sweet Life (bootleg, 041220, banking address hack, changed version text)' and 'Vigilante (World, set 1)' - CHDMAN . Rewroted bin/cue support from specs (more images now work) . Improved -extractcd bin/cue output . Improved error handling . Support for .WAV tracks in bin/cue images . Added a set volume function for CD-DA - MAME . Changed the MACHINE_DRIVER_* macros, as follows: 1. Renamed MACHINE_DRIVER_* to MACHINE_CONFIG_* to match the name of the object it actually describes. The MDRV_* prefix may eventually be bulk updated at some point, but not now. 2. MACHINE_CONFIG_START() now takes a driver_data_t-derived class as a required second parameter. This means that MDRV_DRIVER_DATA() is no longer required, and every "root" machine config *must* specify a driver data class (or driver_data_t itself if the driver has not yet been updated to use driver data). 3. New MACHINE_CONFIG_DERIVED() macro defines a machine_config that is derived from another machine_config. This takes the place of the very typical MACHINE_DRIVER_START()/MDRV_IMPORT_FROM() combination. 4. New MACHINE_CONFIG_FRAGMENT() macro defines a partial machine_config that can only be included in another "root" machine_config. This is also used for machine_configs that are specified as part of a device. 5. Changed MDRV_IMPORT_FROM() to MDRV_FRAGMENT_ADD() to more accurately describe what is happening. 6. Added asserts to the above three macros to ensure they are properly used. Updated all machine drivers to use the new macros. Search & replace lists below cover 99% of the changes, with just a few manual fixups. . Changed driver_data objects to be devices. Replaced the driver_data_t class with a new driver_device class, which is the base class for all driver_data objects now. The new driver devices are added as the first device in the device list, with a tag of "root"; all other devices are now owned by the driver device. . Moved core callbacks (machine_start/_reset, sound_start/_reset, video_start/_reset/_eof/_update, and palette_init) into device configuration parameters on these new devices. The driver_device base class overrides device_start(), ensures all other devices have been started, and then calls, in order, the following overridable methods: 1. DRIVER_INIT function from the game driver. 2. palette_init() - by default calls the MDRV_PALETTE_INIT function. 3. driver_start() - new. 4. machine_start() - by default calls the MDRV_MACHINE_START function. 5. sound_start() - by default calls the MDRV_SOUND_START function. 6. video_start() - by default calls the MDRV_VIDEO_START function. Similarly, the driver_device class overrides device_reset() and then calls these methods in order: driver_reset() - new, machine_reset() - by default calls the MDRV_MACHINE_RESET function, sound_reset() - by default calls the MDRV_SOUND_RESET function and video_reset() - by default calls the MDRV_VIDEO_RESET function. To accommodate these changes, initialization order is slightly altered from before. The tilemap, video, sound, and debug systems are now initialized prior to the devices' start. And the user callbacks for DRIVER_INIT, PALETTE_INIT, MACHINE_START, SOUND_START, and VIDEO_START are all called back-to-back. The net effect should be similar, however. . Changed device_t::subtag to only prepend a prefix if the device is not the 'root' device, in order to keep compatibility with existing tag searching. . Changed device startup to actively reorder devices when they report missing dependencies. This ensures that the reset functions get called in the same order that the start functions did. . Changed driver_device to expose the game_driver's ROMs through the device interface. This means all ROMs are now exposed via devices, and thus the process of enumerating ROMs gets simpler. . Changed all instances of temporarily allocating machine_config objects to just put them on the stack for simplicity, letting the destructor handle the cleanup work automatically. . Changed machine_config constructor to take a game_driver, from which the machine_config constructor is obtained. This also means the resulting machine_config holds a reference to the game_driver. . Changed running_machine constructor to no longer take a game_driver, since the game_driver is now obtainable via the machine_config. . Added two new template classes optional_device<> and required_device<>. Use these to declare the device pointers in the class. The only difference between the two is that required will fatalerror if the device is not found. These new classes are "pass-through" so the underlying pointer can be passed anywhere a regular device pointer would work. . Change shared memory regions to track their size. Added memory_get_shared() functions to retrieve a pointer to a shared region and optionally the size. . Added templates required_shared_ptr<> and optional_shared_ptr<> which work just like required_device<> and optional_device<> for retrieving a pointer by tag from an address space that specifies AM_SHARE("tag"). Also added templates required_shared_size<> and optional_shared_size<> for retrieving the size of the AM_SHARE region. . Added AM_DEVREAD_MODERN/AM_DEVWRITE_MODERN/etc. macros for the non-modern address map case so that updated devices can shed their old-style read/write handlers in favor of member functions. . Added DEVCB_DEVICE_MEMBER() macros which allow you to specify a READ8_MEMBER or WRITE8_MEMBER in a device callback (via dynamically generated trampolines). . Renamed device_execute_interface::m_icount to m_icountptr to avoid commonly-named device values of m_icount. . Added DECLARE/DEFINE_TRIVIAL_DERIVED_DEVICE macros to simplify the definition of devices that are based off of a parent device, but which differ in name and a single parameter. . Added definitions for [DECLARE_]READ_LINE_MEMBER and [DECLARE_]WRITE_LINE_MEMBER so that read/write line callbacks can be defined as member functions. . Added stubs and new macro DEVCB_DEVICE_LINE_MEMBER to allow these to be referenced from device callbacks. . Removed generic.videoram and generic.videoram_size. These generics have no core use, they are simply there for the convenience of drivers. Now that drivers are required to have devices, the data should move there. . Removed artificial SOUND_ prefix from sound device names . Moved sound routing for non-speaker devices over to the sound interface's post-start method. Routing from one sound device to another was broken when sound_init() was moved ahead of device startup. . Timers get rescheduled only if enable state has changed (timer.c) . Added an integral device_timer_id to device timers. This is a cleaner way to differentiate between multiple timers rather than relying on the pointers. These values are also saved with the timers. Updated the few devices using device timers to leverage this. . Added new function device_timer_call_after_resynch() which creates a temporary 0-length timer that calls back through the device's device_timer() method with a given device_timer_id. . Added -bench option to standardize benchmarking - Compiling . Added include files for all remaining drivers with multiple source files. . New build tool makedep.c, derived from src2html.c (really!). Does basic dependency analysis and supports excluding paths. . Makefile now supports a depend target which will run makedep on the src/$(TARGET) tree and create dependencies. It deliberately excludes the root of src\emu as well as the osd directories in order to keep the dependency file down to a reasonable size, so if a core header file changes, you still need to clean and build all. . Fixed compiling on older GCCs (including OS X PowerPC) - Debugger . Integrated comments into debugcpu.c and removed debugcmt.c. Modernized the code and updated so it actually works with the modern debug classes. . On Windows, osd_break_into_debugger() will now dump a stack crawl if there's no debugger attached. This means that asserts should have a full crawl now, for easier debugging. . Have each device create its own device_debug instead of letting the debugger do it. This allows the device to start itself up before the debugger tries to figure out what to do with it. Fixes the problem where register names were not populated into the symbol table correctly after I shuffled the initialization order. . Fixed UNIDASM doesn't link (ID 03884) 0.139u2 - New games: Cal Omega - Game 24.0 (Gaming Draw Poker, hold), Doki Doki Idol Star Seeker (GDL-0005), Genie and Royal Card (Nichibutsu) - New Working games: Cal Omega - Game 8.0 (Arcade Black Jack), Fire Trap (Japan) and Raiden Fighters Jet (Single Board) - New Non-Working games: Cal Omega - Game 51.08 (CEI Video Poker, Jacks or Better), Olympic Hot Stuff (TAS 5 Reel System) and Savage Quest - New clones: 3 Bags Full - 5VXFC790 (Victorian), Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg), Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg), Donkey Kong II - Jumpman Returns (V1.1) (hack), Donkey Kong II - Jumpman Returns (V1.2) (hack), Eco Fighters (World 931203 Phoenix Edition) (bootleg), Giga Wing (USA 990222 Phoenix Edition) (bootleg), The King of Dragons (Japan 910805, B-Board 89625B-1), Knights of the Round (Japan 911127, B-Board 89625B-1), Legion (bootleg of Legend), Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg), Pioneer Balloon (Rock-Ola license), Progear (USA 010117 Phoenix Edition) (bootleg), Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg), Raiden Fighters (Asia, Metrotainment Network license, SPI), Street Fighter II': Champion Edition (World 920513), Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg), Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg), Super Poker (Version 10.15S), Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg), Vampire Hunter 2: Darkstalkers Revenge (Japan 970929 Phoenix Edition) (bootleg), Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg) and Yie Ar Kung-Fu (GX361 conversion) - Removed games: World Heroes 2 Jet (set 1) - New drivers: hotstuff.c and savquest.c - HCD62121 CPU: Support for Hitachi HCD62121 (imported from MESS) - M6800 CPU: Fixed initial state of bit 7 and 6 of flag registers (according to documentation) - Mics CPUs: Updated 68k, V60, i86 and NEC cores to use unaligned read/ write instead of their own stubs for handling misalinged reads. - SH-2 CPU: Added missing save-state registration entries - SM8500 CPU: Various core fixes - Z80 CPU . Set IFF1 and IFF2 to 0 on a reset . Expanded the Z80-DART interface to allow future implementation of Z80-SIO features . Added separate clock inputs for channel B . Added SYNC inputs/outputs for both channels . Added SIO specific constants . Added sync character write registers . Clear Z80 DART interrupts at constructor time - K053260 sound: Added save-state support - MSM5232 sound: Added save-state support - S2636 video / sound . Added sound support (by using VC4000 sound support from MESS) . Hooked up sound to Astro Wars, Dodgem, Galaxia, Malzak and Super Invader Attack/The Invaders - YMF278B sound: Added save-state support - VLM5030 speech: Added IC pinout. Still need translation of the datasheet for VCU, RST (which does more than just reset) and MTE. - 6522 VIA . Updated device to generate interrupt on T2 Pulse counting mode too, according to documentation. . Added support for shift mode 5 (shift out under T2 control). - I2C bus memory: Added clock read-back register - Mics hardware: Updated the 6522 VIA, 6532 RIOT, 6821 PIA, 6840 PTM, 6850 ACIA, 7474, 74123, 8255 PPI, DS1302 RTC, DS2404 RTC, Fairchild F3853 SMI, i8237 DMA, i8243 Port Expander, i8257 DMA, INS 8154 RAM I/O, K033906 PCI Bridge and the K056230 LANC, M48T02, MK48T08, M48T35 and M48T58 to no longer be legacy - PCI bus: Updated device so that PCI buses can be arranged in a tree like in real hardware - machine\segaic16.c: Treat unsupported read and write accesses to defined devices/memory as open-bus reads or unmapped writes instead of falling through to the memory-mapping registers (segahang.c, segaorun.c, segas16a.c, segas16b.c, segas18.c, segaxbd.c, segaybd.c and system16.c). - TLC34076 palette chip: Converted to a device - aristmk4.c: Added 3 Bags Full - 5VXFC790 (Victorian). Set is now parent. Replaced the bad dumped GFX from NZ set with the new ones, since they match 4 of 6 bitplanes. - aristmk5.c . Added MK-V System (Aristocrat 1995) BIOS . Hooked up some quick and dirty video routine . Added Force IRQ/FIRQ hook-up and hooked up an undefined behaviour for a timer check, fixes CPU check during POST. . Implemented I2C accesses to the Acorn Archimedes / Aristocrat MK-5 HW, fixing SRAM check. . Added clock read-back register to the I2C device . Fixed the Sound DMA in Acorn Archimedes / Aristocrat MK-5, adding sound support to the drivers. . Added 2kHz timer to Aristocrat MK-5 HW . Fixed a fatal bug in MEMC handling and removed the mapping kludge for Aristocrat MK-5 . Improved video emulation to the Aristocrat MK-5, added bare-bones VIDC DMA transfer and timings, added 8bpp mode. . Rewritten I/O device r/w accesses in Acorn Archimedes/Aristocrat MK-5 . Fixed timers and irq clears in Acorn Archimedes / Aristocrat MK-5 driver . Added 7x DAC sound and changed visible area to 1280x1024 . Changed 'Dolphin Treasure (B - 06/12/96, NSW/ACT, Rev 3)' to a clone of 'Dolphin Treasure (B - 06/12/96, NSW/ACT, Rev 1.24.4.0)' - calomega.c . Added missing 50/60Hz output frequency selector to systems 903-905. However, I dunno how it looks physically (switch/jumper/bridge?). . Injected missing start and NMI vectors to comg080 (Arcade Black Jack), from an exhaustive program ROM analysis / reverse engineering. The game now starts ok and is triggering proper NMI's. . Added workaround to pass the vector-check protection . Reworked the lamps circuitry by system-basis . Updated games list and technical notes . Accurate memory map, CRTC and PIAs mapped . Preliminary PIAs support (no multiplexion yet) . Added proper machine driver, with correct R65C02 CPU . Documented the hardware specs . Added support for system 906III . Improvements to CEI 906 III system . Correct docs about the 906III memory map . Mapped the AY8912 . Added AY8912 proper interfase. Tied SW2 to AY8912 port. . PIA0, portA is polled constantly. Tied some debug handlers to understand how the input system works. . Added notes about the PIAs R/W . Added Game 51.08 (CEI Video Poker, Jacks or Better), running in CEI 906III hardware. The game is not working. . Injected missing start and NMI vectors to Cal Omega - Game 8.0, from an exhaustive program ROM analysis / reverse engineering. The game now starts ok and is triggering proper NMI's. . Added inputs from the scratch for comg080 and promoted game to working state. - chihiro.c . Fixed the mapping of the BIOS at the top of the cpu addrsss space . Updated the ram size to 128 MB . Added some SMBus handling, to let the bios run . Added placeholders for a few devices on the PCI bus . Added the "jamdis StartAddress,Length" command to the debugger that lets you disassemble the "jam table" instructions used by the bios to do some basic hardware initialization. . Updated the PCI bus device so that PCI buses can be arranged in a tree like in real hardware. - cps1.c: Minor cleanups and fixes - dlair.c: Fixed VSync in clones Dragon's Lair (European)/(Italian) and Space Ace (European) - docastle.c + mrdo.c: Fixed unable to enter Service Mode in all sets (ID 03203) - ertictac.c . Added sound hook-up to the Erotictac HW, sound doesn't yet work due of missing memory management hook-up. . Improved sound in Erotictac / Poizone . Fixed timers and irq clears in the drivers . Converted driver to use shared AA devices . Fixed various issues in the AA emulation, this makes Poizone to theoretically work as current ertictac driver emulation (not yet enabled). - goldnpkr.c . Fixed tilemap issues with games using 60Hz/50Hz modes, selectable through DIP switches. . Added support for 'Genie'. An old magic-lamp themed game from Video Fun Games Ltd. Decoded graphics and colors. Accurate inputs. Discrete sound. Default NVRAM support. Xtal, CPU clock, and some discrete components values need to be checked from PCB. - naomi.c: Added information about the Namco MASK B-F2X cartridge - neodrvr.c . Correct ROM_REGION "maincpu" for Art of Fighting 2 (set 1/2), Fight Fever (set 1/2), Ghostlop, Irritating Maze and Twinkle Star Sprites . Added correct p1 ROM to Irritating Maze. . Added correct m1 rom (512k) to Sengoku 3 - norautp.c: Changed Noraut Joker Poker (Prologic HW) manufacturer to Video Fun Games Ltd. - seibuspi.c . Fixed the "FIX" graphics load. May require specific ENDIAN to work on all platforms. Both new Asian sets now work correctly. . Added default EEPROM to Raiden Fighters Jet (Single Board) so it will boot correctly the first time run. - scobra.c: Fixed Rescue and Minefield hangs at Post (ID 03881) - toaplan1.c . Modified the mix for the tilemaps (like rallybik and demonwld); this fixes Vimana and Out Zone bug (In stage 6 there are two blank box on the background) (ID 00949) . Removed custum video update for Demon's World; now it's the same of Toaplan 1. . Converted driver to use driver_data - toaplan2.c . Attempted to implement dual VDP mixing with the equations provided by Quench, doesn't yet work. . Changed GP9001 (Toaplan VDP device) to use DEVICE_SELF . Removed tile limit hack, not needed now since VDP is mixed properly. . Fixed VDP mixing in Batsugun and Dogyuun. This fixes the tiles/tiles and tiles/sprites priorities problems (ID 03858). . Cleaned up driver and converted it to use driver_data - taito_x.c: Fixed all games crash before OK (ID 03996) - All American Football . Added missing 03-28008.u93 gfx1 rom to (rev E) . Marked rom 24015-02.u59 as BAD_DUMP in clone (rev B) and demoted set to GAME_NOT_WORKING - Combat School: Fixed offset and priorities in (bootleg) set. This fixes the experiences various graphics glitches and crashes on level 3 (ID 01215 and ID 04026). - Donkey Kong: Added Donkey Kong II - Jumpman Returns (V1.1) (hack) and (V1.2) (hack). This is a DKong/Hack combo using a Braze Technologies High Score Save PCB. This PCB will be placed in the CPU socket and the Z80 together with an additional 64K rom, a 74LS245, an EEPROM and a PAL/GAL. It looks like the "encryption" was a conincidence resulting from an easy PCB layout. The PAL is also used to switch A15 on and off. This is done in locations 6800 and E800. - E-Jan Sakurasou: Fixed VSync - Enigma II: Fixed most dipswitches no longer functional (ID 03986) - Fire Trap: Fixed MCU simulation for clone Fire Trap (Japan) (only the initialisation was different) so the game is now playable. - FixEight: Fixed graphic glitches in FixEight (bootleg) (ID 04006) - Flying Tiger: Fixed colors - Gang Wars: Added correct GFX roms for Gang Wars, renamed bootleg set as Euro set (and new parent), made note about bootleg GFX roms. - Golden Axe: The Revenge of Death Adder: Fixed memory management of ga2 decryption - Lethal Enforcers: Hooked up some K053244 register. Fixed missing flip bits used for the tiles (P2 start screen, reload indicator) (ID 02449) - Pioneer Balloon: Fixed screen is shifted left (ID 04004) - Race Drivin': Fixed game resets itself before game start (ID 03961) - Shadow Dancer: Fixed game freeze on stage 2-4 (ID 03718) - Super Champion Baseball: Documented unemulated protection and marked game as GAME_UNEMULATED_PROTECTION - Truxton: Fixed background colour on the title screen (ID 00229) - Willow: Added proper roms to clone (Japan, Japanese) to match real PCB, it was using incorrect roms copied from parent set. - Fixed reload of state causes problems in Ace (ID 03988), Asterix (ID 03989), Bang Bang Ball (ID 03820), Big Event Golf (ID 03991), Battle Toads (ID 03992), dcheese.c (ID 03994), Lethal Crash Race (ID 03993), mappy.c (ID 04001), Pac-Land (ID 04009), Parodius DA! (ID 03730) and Sol Divide (ID 03755) - Dipswitch fixes in bestri, chelnov, crospang, cyclshtg (ID 03978), fastlane, firetrap, heuksun, karnov, mikie, mrflea, nycaptor, pachifev and wndrplnt - Fixed rom names in arabian, aristmk4.c, aristmk5.c, cps1.c, neodrvr.c and seibuspi.c - Renamed (fatfursa) to (fatfurspa), (gangwars) to (gangwarsu), (gangwarsb) to (gangwars), (gwingjd) to (gigawingjd), (kof99) to (kof99h), (kof99a) to (kof99), (progerjd) to (progearjbl), (rdftdi) to (rdftadi), (rfjetus) to (rfjets), (sengokh) to (sengokuh), (sf2ce) to (sf2ceea), (shocktra) to (shocktroa) and (wh2jh) to (wh2j) - Description changes of beatmania IIDX 3rd style (GC992 JA) (ID 03998), Gang Wars, Pac-Man - 25th Anniversary Edition (Rev 2.00), Knights of the Round (Japan 911127, B-Board 91634B-2), Magic Sword: Heroic Fantasy (Japan 900623), Progear no Arashi (Japan 010117) (decrypted bootleg), Raiden Fighters (Asia, Dream Island Co., LTD. license, SPI), Raiden Fighters 2 (Asia, Dream Island Co., LTD. license, SPI), Raiden Fighters 2 (Asia, Metrotainment Network license, SPI), Raiden Fighters Jet (Single Board), Shao-lin's Road (set 1), Shao-lin's Road (set 2), Super Poker (Version 10.19S), The King of Dragons (Japan 910805, B-Board 90629B-3), World Heroes 2 Jet. - MAME . Converted address_space to a class, and moved most members behind accessor methods, apart from space->machine and space->cpu. Removed external references to 8le/8be/16le/16be/32le/32be/64le/64be. All external access is now done via virtual functions read_byte()/read_word()/etc. Moved differentiation between the endianness and the bus width internal to memory.c, and also added a new axis to support small/large address spaces, which allows for faster lookups on spaces smaller than 18 bits . Provided methods for most global memory operations within the new address_space class. Updated callers to use these instead of the old global functions . Created new module delegate.h which implements C++ delegates in a form that works for MAME. Details are in the opening comment. Delegates allow member functions of certain classes to be used as callbacks, which will hopefully be the beginning of the end of fetching the driver_data field in most callbacks. All classes that host delegates must derive from bindable_object. Today, all devices and driver_data do implicitly via their base class. . Added an alternate set of address map macros. Now, if you #define ADDRESS_MAP_MODERN prior to #including "emu.h", you will get the new macros, which have the following properties: ADDRESS_MAP_START takes a 4th parameter, which is the name of the driver_data class the other macros will reference, AM_READ/AM_WRITE/etc. all assume you are providing method names off of the driver_data class you originally specified, AM_READ_LEGACY/AM_WRITE_LEGACY macros are provided for calling global static functions of yore, AM_BASE/AM_SIZE all assume you are providing member names off of the driver_Data class and AM_BASE_LEGACY/AM_SIZE_LEGACY are provided to reference globals if necessary. . Defined delegates for read/write handlers. The new delegates are always passed an address_space reference, along with offset, data, and mask. Delegates can refer to methods either in the driver_data class or in a device class. To specify a delegate in an address map, you must #define ADDRESS_MAP_MODERN before including emu.h, at which point the AM_READ/AM_WRITE macros will require member function pointers into your driver_data class. Delegates that are specified in an address map are proto-delegates which have no object; they are bound to their object when the corresponding address_space is created. . Added machine->m_nonspecific_space which can be passed as the required address_space parameter to the new read/write methods in legacy situations where the space is not provided. Eventually this can go away but we will need it for a while yet. . Added methods to the new address_space class to dynamically install delegates just like you can dynamically install handlers today. Delegates installed this way must be pre-bound to their object. . Moved beathead's read/write handlers into members of beathead_state as an example of using the new delegates. This provides examples of both static (via an address_map) and dynamic (via install_handler calls) mapping using delegates. . Changed the DIRECT_UPDATE_CALLBACKs into delegates as well. Updated all users to the new function format. Added methods on direct_read_data for configuring the parameters in a standard way to make the implementation clearer. Updated all users. . Created a simple_list template container class for managing the common singly-linked lists we use all over in the project. . Replaced "const address_space" with "address_space" throughout the system. The purpose of making it const before was to discourage direct tampering, but private/protected does a better job of that anyhow, and it is annoying now. . Added mask-free versions of read_word/read_dword/read_qword to address_space. Also added unaligned variants that can read unaligned values. Rewrote the core handler as a template that handles all cases, along with a simple unit test to verify that everything is correct. . Declared virtual functions in driver_data_t for: machine_start, machine_reset, sound_start, sound_reset and palette_init, video_start, video_reset, video_update and video_eof. The default implementations of these call through the machine configuration's functions as before. However, if a driver_data_t overrides them, it will be called instead. . Added virtual functions for pre_save() and post_load(), which can be overridden to implement machine driver-specific pre-save/post-load functionality instead of registering with the save state system. Updated beathead to use these new virtual functions instead of specifying callbacks in the MACHINE_DRIVER. . De-converted MACHINE_DRIVER from tokens back to constructor functions, regaining type safety. If legacy devices still use inline data, those types are not checked. However, new devices no longer have access to the generic m_inline_data. Instead their MDRV_* macros should map to calls to static functions in the device config class which downcast a generic device_config to the specific device config, and then set the appropriate values. This is not to be done inline in order to prevent further code bloat in the constructors. See eeprom/7474/i2cmem/okim6295 for examples. . Added a set of macros to minimize the amount of copy/pasting necessary to convert a device to the new style . Cleaned up internal profiler code . Various SNK drivers now use driver_data . Fixing listxml year output (it was skipped if the year contains a '?') - Compiling . Removed several exported non-const global variables from the core . Attempt to fix reported GCC 4.5 problems 0.139u1 - New games: Air Race (prototype), The Last Starfighter (prototype) and Pacman - 25th Anniversary Edition (Rev 2.00) - New Non-Working games: Gundam Seed: Federation vs. Z.A.F.T. (SED1 Ver. A), Magic Train, Mega Double Poker (conversion kit), Quizard 1.2 and Quizard Rainbow 4.2 - New clones: Area 88 (Japan Resale Ver.), Clash-Road (Data East license), Knights of the Round (Japan 911127), Megatouch 5 Turnier Version (9255-70-50 ROD, Bi-Lingual GER/ENG version), Mini Boy 7 (set 1), Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.00), Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.03) and Super Megatouch IV Turnier Version (9255-51-50 ROA, Bi-Lingual GER/ENG version) - Removed games: Raiden II (set 4, Japan) - New drivers: atarisy4.c, blitz.c and genesisb.c - drivers\namcoic.c + includes\namcoic.h: Fixed incorrect road colours in tceptor2, finallap and others (gal3.c, namcofl.c, namconb1.c, namcos2.c and namcos21.c) - Z80 CPU . Fixed Z80 SIO interrupts by clearing them at constructor time so Z80 daisy chain works properly and doesn't stall on a non-existent IEO condition . Fixed Z80 DMA by re-adding a status update call to ENABLE DMA command. Allowed illegal mode 0 DMA operation since trs80m2 in MESS is abusing this. Fixed ready signal handling by adding a check for ready condition on each byte. - OKI6295 sound: Fixed all sets and drivers using OKI6295 audio. Eventual crash using Save States. (ID 03969) - Changed atarigen_state to be a base class from which all the related Atari drivers derive their state from (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1.c, atarisy2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, foodf.c, gauntlet.c, harddriv.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c) - Removed global variables from NAMCO sound core (20pacgal.c, baraduke.c, galaga.c, gaplus.c, jrpacman.c, mappy.c, namcos1.c, namcos86.c, pacland.c, pacman.c, pengo.c, polepos.c, rallyx.c, skykid.c, tceptor.c and toypop.c) - astrocde.c: Limited the number of timers potentially produced by astrocade_trigger_lightpen() (video\astrocde.c) - cps1.c . Expanded and updated games table in video\cps1.c . Confirmed B-Board # for 3wondersu and varth . Fixed labels in ghouls, ghoulsu to match real PCBs . Replaced gfx rom 14.bin in clone Tenchi wo Kurau (Japan), it was a bad dump . Marked nm_23.12b in nemoj BAD_DUMP . Replaced Knights of the Round (Japan 911127) with a new set, the old roms were split & hacked to work on a suicided board. . Added roms relationship between parent/clones where missing . Fixed some incorrect notes added in previous update . Reordered some sets . Minor cleanups . Fixed sf2ceua labels and added PCB infos . Fixed sf2ceub labels and added PCB infos, removed 1 incorrect rom and replaced with proper redump done by Dumping Union. . Fixed punisher and punisheru Q-Sound labels and added D-Board PALs. . Set correct B-Board mapper for "resale" kits. This fixes missing graphics in Area 88 (Japan Resale Ver.). . Documentation update for some CPS1 sets (B-Board chip information) verified via Team Japump PCB photos. - gaelco2.c: Removed global variables from Gaelco sound core - galaga.c: Fixed Bosconian and Xevious from reboots or hangs (ID 03981) - mpu4drvr.c: Fixed mid-screen palette updates - toaplan2.c . Started converting the Toaplan2 VDP into a device . More refactoring to the Toaplan 2 / GP9001 VDP device . Added dual screen output to Batsugun and Dogyuun - seta.c, seta2.c and ssv.c: Converted driver to driver_data - Battle Gear 2: Added HDD image - Heavyweight Champ: Documented the Sega game ID for the game rom board as well as correct the rom names - Magic Train: Added Magic Train, from Subsino. Since it's driven by a HD647180X0CP6 (Subsino - SS9600) plus SS9601 and SS9602 (for video and I/O respectively), it's possible that needs to be moved to a new driver in a near future. Also added technical notes. - Malzak . Updated SAA5050 character generator to form 12x20 chars as noted in documentation . Updated driver to support SAA5050 changes. Fixed visible area. - Mega Double Poker . Initial release . Preliminary memory map . Hooked both PIAs, but need more analysis to confirm the offsets . Accurate graphics and color decode . Added main PCB and daughterboard layouts . Added partial docs and diagrams about the CPU/MCU/ROMs addressing . Added debug and technical notes - Mini Boy 7 . Added a new complete set. Now set as parent. . Correct Xtal frequency . Mapped the PIA MC6821 (not wired since is not totally understood) . Preliminary attempt to decode the color PROM . Mapped the AY-3-8910, but still needs ports and some checks . Added debug and technical notes - Polygonet Commanders and Poly-Net Warriors . The DSP561xx CPU core now generates accurate disassembly for Konami Polygonet hardware (verified against Motorola's reference disassembler) . Hooked up new execution engine in DSP56k . Removed globals from DSP56k CPU core . Updated driver to use driver_data class - Puzzle Star (Sang Ho Soft): Improved memory banking - Raiden II . Added missing "VOICE2" sample rom to Raiden 2 sets where it was missing . Correct rom names for MASK roms soldered to the PCB - Super Hang-On: Fixed year info (ID 03964) and description in clone (ride-on, Japan, FD1094 317-0038) - Super Real Mahjong P6: Removed global variables from Nile ST-0026 sound core - Southern Systems Joker Poker: Added missing CPU IO map to the machine driver. This allow boot the game and enter into the attract mode. - Terminator 2: Fixed (rev. LA4) freeze during the Cyberdyne stage opening cinematic - Thunder Ceptor: Fixed road transparency and incorrect road colours in clone Thunder Ceptor II (ID 03977) - Fixed rom names in cps1.c, cps2.c, segas16b.c and raiden2.c - Renamed (dynwaru) to (dynwara), (forgottnu) to (forgottnua), (forgottnua) to (forgottnu), (miniboy7) to (miniboy7a), (quizrd32) to (quizard), (quizard) to (quizrd17), (raiden2d) to (raiden2c), (raiden2e) to (raiden2d), (raiden2f) to (raiden2e) and (wofhfb) to (wofhfh) - Description changes of Battle Gear 2 (v2.04J), Dynasty Wars (USA, B-Board 89624B-?), Dynasty Wars (USA, B-Board 88622B-3), Forgotten Worlds (USA, B-Board 88618B-?), Forgotten Worlds (USA, B-Board 88621B-2), Mini Boy 7 (set 2), Raiden II (set 4, Italy), Raiden II (set 5, Easy Version), Raiden II (set 6), Strider (USA, B-Board 89624B-2), Strider (USA, B-Board 89624B-3) and Super Hang-On (ride-on, Japan, FD1094 317-0038) - MAME . Return to type safety. Changed address maps back into functions that build up the definition, rather than the whole tokenizing system, which lost type checking. Added a new module addrmap.c which implements the address map classes, and changed the macros to call methods on the address_map and address_map_entry classes which are strongly typed. Fixed a few incorrectly specified memory map entries along the way in galaxold.c, lordgun.c and twincobr.c. . Defined new class driver_data_t, which all driver_data classes must derive from. Updated all class definitions to inherit from the new class, and to call it in the constructor. Also changed the alloc() signature to return a driver_data_t pointer instead of a void *. Renamed and hid machine->driver_data as machine->m_driver_data. Added a new templatized method machine->driver_data which returns a properly downcast'ed version of the driver data. Updated all code which looked like this: mydriver_state *state = (mydriver_state *)machine->driver_data to mydriver_state *state = machine->driver_data(). The new function does a downcast<> which in debug builds dynamically verifies that you're actually casting to the right type. . More API cleanup: Removed cputag_clocks_to_attotime() and cputag_attotime_to_clocks() in favor of just expanding the class. Same for cputag_suspend() and cputag_resume(). . Fixed image device error handling - Debugger: Fixed crash when exiting the debugger if breakpoints are set 0.139 - New games: Speed Drop - New Non-Working games: Southern Systems Joker Poker - New clones: AmeriDarts (set 3), Captain Commando (Japan 910928), Forgotten Worlds (USA, 88621B B-Board), Galaxy Force 2 (Japan, Rev A), Mystic Warriors (ver AAA), Quiz Daisousa Sen - The Last Count Down (Korean release), Quiz King of Fighters (Korean release) and Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release) - ARM CPU . Added big endian mode support to the LDRB and STRB instructions . Fixed word reading from non-aligned address in big endian mode . Added a big endian version of the ARM2/3/6 CPU core and cleaned up the little/big endian handling - HD63701 CPU: Fixed SLP opcode - TMS32010 CPU: Correct cycle timing for conditional branch instructions - cps1.c . Added missing PALs as reference to most of remaining sets . Dumped and added TK24B1.1A to Dynasty Wars . Fixed LW-13.10D rom loading in Forgotten Worlds to match real PCB . Identified, verified and documented a ton of PCBs, adding/fixing missing/wrong infos as ROMs labels and positions, B-Board, C-Board and CPSB IDs and PALs. . Reordered all sets per release date in cps1.c and video\cps1.c . Updated games table in video\cps1.c and added some notes on PALs table . Minor cleanups - astrocorp.c: Fixed sprite coordinates - mpu4drvr.c: Added splitscreen support to SCN2674 for MPU4 Video - naomi.c: Fixed Atomiswave-based games get stuck in boot process (ID 03898) - neodrvr.c . Identified several more sets as MVS / AES Version and tagged them properly . Added Japan J3 BIOS . Updated game PCB info . Documented AES mode and 1-slot (MVS/AES) settings . Documented MVS 4-slot and 6-slot settings . Changed 6-slot setting (old default) to 1-slot . Removed BAD_DUMP from m1 in Bakatonosama Mahjong Manyuuki (is correct) . Added correct s1 to Mahjong Kyo Retsuden . Replaced 16Mbit v1/v2 with 32Mbit v1 in Super Dodge Ball as found on two original cards . Added correct v2 to Street Hoop - Area 51: Site 4 . Converted the Atari MediaGX driver to use driver_data . Fixed game hang after loading via internal UI (multisession) (ID 03777) - AmeriDarts: Correct audio playback rate. This exposed some cycle timing errors in the TMS32010 CPU core which are also fixed. - DJ Boy . Hooked up Beast MCU and removed simulation code . Added DIP locations and correct the vsync as per the README info listed at the top of the driver - Samurai Shodown V Special: Fixed year info (ID 03957) - Sky Fox: Correct clocks and Vsync based on actual OSCs and measurements taken from a real PCB - Southern Systems Joker Poker . Added support for this 1982 game, from Southern Systems & Assembly, Ltd. . Figured out the memory map . Added technical notes about the hardware - Terminator 2: Correct the address for the freezing of the movies for the Terminator 2 LA4 set - Fixed rom names in amerdart, cps1.c and segaybd.c - Renamed (ffightj1) to (ffightj2), (ffightj2) to (ffightj1), (qtono2) to (qtono2j), (sf2tj) to (sf2hfj) and (wofhfh) to (wofhfb) - Description changes of many cps1.c games (little changes), Adventure Quiz Capcom World 2 (Japan 920611), Bakatonosama Mahjong Manyuuki, Cadillacs: Kyouryuu Shin Seiki (Japan 930201), Capcom Vs. SNK Millennium Fight 2000 (000904 JPN, USA, EXP, KOR, AUS) (Rev C), Daimakaimura, Ghost Pilots (set 2), Huo Feng Huang (Chinese bootleg of Sangokushi II), The King of Fighters 2003, The King of Fighters '97 (set 2), Mahjong Kyo Retsuden, Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511), Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08) and Street Fighter II': Magic Delta Turbo (bootleg). - MAME . Added search all parents of a clone for merged ROMs to emu\info.c . Added notification of orientation of all monitors at startup via the output system (windows\winmain.c) . Fixed -burnin option causes crash in vector games (ID 03318) 0.138u4 - New games: Around The World (Version 1.3E CGA) - New Working games: Puzzle Break - New Non-Working games: Gundam Battle Operating Simulator (GDX-0013), Ollie King (GDX-0007), Sega Club Golf 2006 Next Tours (Rev A) (GDX-0018A) and Virtua Striker 4 ver. 2006 (Rev D) (Japan) (GDT-0020D) - New clones: Around The World (Version 1.3R CGA), Captain Commando (World 911202), Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA), Juuouki (set 5, Japan, FD1094 317-0069), Magical Odds (set 2), Mystic Riders (bootleg?), Raiden Fighters Jet - 2000 (China), Space Ship, Street Fighter Zero (Hispanic 950718), Terminator 2 - Judgment Day (rev LA4 08/03/92), Tokio / Scramble Formation (newer), Wild Fang and Wonder Boy III - Monster Lair (set 6, System 16A, FD1089A 317-xxxx). - MB88xx CPU: Fixed some bugs in the core - LR35902 CPU: Added speed register to the register list to allow it to be changed and retrieved again. - PowerPC CPUs: Fixed overlapping data buffers (ID 03536) - SH-2 CPU: Fixed interpreter - TMS32010 CPU . Added TMS32015 and TMS32016 CPU variants to the core . Fixed LST instruction which was sometimes adjusting internal RAM banking incorrectly - TMS52xx sound: Fixed timing of TMS52xx OLDP and OLDE updates to happen on the correct IP/PC cycles, should very slightly improve sound/reduce clicking for TMS5200 and TMS5220 games. - EEPROM: Converted AT28C16 to a C++ device and tidied up comments - I2C bus memory: Turned i2cmem into a C++ device & ditched the unused legacy device - MB3773 Power Supply: Converted from a legacy device to a C++ device - aleck64.c . Fixed RSP sign issue in VCL opcode . Allow the non-DRC RSP core to build again (controlled by a #define like the SH-2 core) - itech32.c, ksys573.c, midzeus.c, slapshot.c and tomcat.c: Fixed assert in debug build (ID 03750) (ID 03845) - naomi.c: Added information on the NAOMI 171-8346C cartridge type - neodrvr.c . Added official SNK Playmore title catalogue . Identified and tagged all MVS sets which were not officially released for the AES system (according to official SNK Playmore title catalogue and Neo-Geo Masterlist). . Several sets have been identified (AES / MVS VERSION) and tagged properly . Documented MULTI PLAY MODE (unemulated); Missing MCU. . Updated game PCB information . NeoGeo driver cleanup . Renamed roms in Jockey Grand Prix according to original cart and added some comments. . Renamed P's in Metal Slug 3 to correct chip label and added SMA comment . Renamed roms in V-Liner (set 1) and clone (set 2) according to original cart and added some comments. - polepos.c . Correct the way the steering wheel is hooked up, fixing the jittery steering in the sets with MCUs. . Added a new layout file for the bootleg sets without MCUs (topracern and polepos2bi) . Converted clock frequencies to crystal values from xtal.c . Added correct ROM names for the Namco-manufactured sets (polepos and polepos2) . Completely removed the unused global variable polepos_gear_bit . Fixed a couple of bootleg ROMs that were very likely bit-rotted - segas16b.c . Removed 2 obsolete "USER2 Work space" in driver and changed remaining USER2 to MCU to maintain consistence throughout the driver. . Fixed graphic corruption on multiple launches in single session (altbeast, aliensyn3) (ID 03606) - sfbonus.c: Added the Amcoe "Classic Edition Compact Format" PCB layout - zaccaria.c: Fixed audiocpu/audio2 rom loading in Jack Rabbit and Money Money - A. D. 2083 . Added 2nd Button (Hyper Jump) to be used after cued via speech to allow jumping to other phases without finishing the current mission. . Volume adjusted to better levels (AY was way too low in comparison to speech) - Alien Challenge: Added missing YMF278B sound rom - AmeriDarts . Added internal DSP dump and TMS32015 CPU support. This fixes the missing sound (ID 02813). . Added savestate support - Arkanoid . Loaded (but don't yet use) the decapped MCU for Arkanoid . Added or correct the PCB location for the genuine Arkanoid rom sets and documented the MCU Taito ID number. - Arm Wrestling: Fixed 'Coinage' dipswitches (ID 00790) - Black Touch '96: Added PIC16C57 MCU audio rom (but don't yet use) - Cherry Bonus 2001 . Added new opcodes . Hooked up reels - Cross Shooter: Added 68705 MCU rom (but don't yet use) - DJ Boy: Added unverified Beast MCU internal ROM image and I80C51 CPU - Empire City: Added 68705 MCU rom (but don't yet use) - Golden Axe: Fixed rom names in clone Golden Axe (set 3, World, FD1094 317-0120) and verified the dump as good - Invasion - The Abductors: Added PIC16C57 MCU rom and PIC16C57 CPU (but don't yet use) - Joshi Volleyball: Added MCU rom (but don't yet use, there are other chips still need decapping) - Kick Start Wheelie King: Replaced the old MCU dump with the decapped version - Kyros: Added 2x MCU roms (68705 MCU and alt, original MCU dump?) (but don't yet use) - Magical Odds: Added proms and fixed gfx1 rom loading - Office Yeo In Cheon Ha: Added PIC16F84a MCU rom (but don't yet use), no CPU core for this yet. - Pasha Pasha 2: Added 89C52 MCU rom (but don't yet use) - Pipeline: Replaced the old 68705 MCU dump with the decapped version - Puzzle Break: Added protdata.bin rom (Game now playable) - Revolution X: Added PIC16C57 MCU rom (but don't yet use) - Top Blade V: Added PIC16C727 MCU rom (but don't yet use), no CPU core for this yet. - Top Shooter: Added 89C51 MCU rom (but don't yet use) - Torus: Fixed game crashing after completing level 1 (ID 03938) - Wheels & Fire . New rendering code . Preliminary zooming (based on lookup table) . Preliminary communication between main and sound CPU . Scanline interrupts and scroll . Added 2x DAC sound. Fixed 68000 CPU clock speed, visible area and palettesize. - Wild Fang / Tecmo Knight: Fixed missing screen shaking effect (ID 03943) - X-Men: Children of the Atom: Fixed clones (Hispanic 950331) and (Hispanic 950105) roms - Cheat engine: Fixed bad loop condition that shows up with -cheat enabled. This fixes the out of memory crash using -cheat in many sets (ID 03928). - Added DIP locations to 4in1boot, cookbib2, cookbib3, hyperpac, moremore and pzlbreak - Dipswitch fixes in armwrest, blackt96.c and snowbros.c - Renamed (captcomm) to (captcommr1), (kof99n) to (kof99k), (sfzh) to (sfzhr1), (socbrawl) to (socbrawlh), (socbrawla) to ( socbrawl), (term2) to (term2la3), (tokio) to (tokioo) and (trogp) to (trogpa4) - Description changes of Altered Beast (set 6, 8751 317-0076), Altered Beast (set 8, 8751 317-0078), Juuouki (set 7, Japan, 8751 317-0077), The King of Fighters '99 - Millennium Battle (Korean release), Magical Odds (set 3, alt hardware), Tokio / Scramble Formation (older), Trog (prototype, rev PA6-PAC 09/09/90), Virtua Golf / Dynamic Golf (Rev A) (GDS-0009A) and Wonder Boy III - Monster Lair (set 5, System 16A, FD1089A 317-xxxx, bad dump?) - MAME . Removed devtag_get_device(); use machine->device() instead . Removed the global clock accessors and cpu_* aliases: cpu_get_clock == device->unscaled_clock, cpu_set_clock == device->set_unscaled_clock, cpu_get_clockscale == device->get_clock_scale and cpu_set_clockscale == device->set_clock_scale. . Added per-device image softlist loading routine . Added ability to support other types of software lists, so floppies, cassettes, cd-roms are now possible to be used. . Fixed image unload and creation (src\emu\diimage.c) . Added *IX man pages for MAME and utils - Compiling . Added some missing makefile dependencies . Clean up some files without a newline at the end for GCC . MAMEdev kant spel (Ubuntu/Canonical cares about this) . Renamed feof to image_feof (in device_image_interface) in order to compile on FreeBSD 0.138u3 - New games: Autumn Moon and Fantasy Fortune - New Working games: Alcon/Slap Fight and all aristmk4.c games - New Non-Working games: Out Run 2, Quizard 1.7, Quizard 2.2, Quizard 3.2, Quizard Rainbow 4.1 and unknown Model Racing gun game - New clones: American Soccer, Boggy '84, Crazy Kong, Defend the Terra Attack on the Red UFO, Exerizer (Japan), Exciting Animal Land Jr. (USA), Fire Trap (Japan), The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board 2), Looping, Marvel Vs. Capcom: Clash of Super Heroes (USA 971222), Raiden DX (UK) and Virtua Striker 2 '99 (Revision B) - New drivers: cdi.c - PowerPC CPUs: Fixed performance regression for PowerPC games. The timing made heavy use of cpu_get_total_cycles() which is now slow. Better to use the legacy_cpu_device directly and call device->total_cycles() which avoids the dynamic_cast to find the execute interface from a generic device. - TMS52xx sound: Device now uses proper IP/PC/Subcycle counting for audio generation - Wave sound: Fixed bad cassette wave sound (sound\wave.c) - COPX: Added COPX romloading for sets that didn't have it, marked as BAD_DUMP until the assumption that they're the same is (un)confirmed. - Konami custom chips (video\konamiic.c): Disabled a fair chunk of dead code - Sega custom chips: Added support for Sega 317-5000 decryption (same as 315-5177). Reorganised decryption code. - Support for Philips CD-i (skeleton driver) - aristmk4.c . Various driver improvements: Fixed VIA for good. 5010 - 501F. Hooked up push button inputs. Hooked up ports for the PML 2852 U3. Implemented coin input. Lamp output and button layout. NVRAM backup. Connected SW7 for BG colour map select. Added LK13. 3MHz or 1.5MHz CPU speed select. Added sound sample (tick.wav) for mechanical meter pulse. Replaced custom RTC code with MC146818. Fixed M6809 CPU1 clock speed. . Changed Autumn Moon romload to proper crc/sha hashes. The submitted romset contained a 32kb (u87.bin) which actually appeared to be an 8k overdumped. - cclimber.c: cclimber/ckong sprite X was off by 1 (video\cclimber.c) - igs011.c . Emulated IGS011 protection . Emulated IGS012 protection . Removed 149 rom patches - namcos22.c: Updated Ace Driver, Rave Racer and Ridge Racer to use keys instead of dipswitches for shifters - neodrvr.c . Tagged Aggressors of Dark Kombat as MVS VERSION . Marked P1 in Battle Flip Shot and V2 in Street Hoop as BAD_DUMP . Tagged League Bowling as AES VERSION . Renamed P1 in Sengoku 3 to correct chip label - pinkiri8.c . Improvements to the video emulation . Simplified VRAM access . Hooked up inputs and Dip-SW for Pinkiri 8 and Ron Jan - tmnt.c: Confirmation (with frequency counter) of proper 68000 clock speeds (16 MHz) for Golfing Greats and Premier Soccer - Alcon/Slap Fight . Hooked up 68705 MCU . Correct rom names for the Slap Fight sets . Added PCB locations to any set where possible, added DIP locations and moved PCB information down to matching rom sets. - Arcade Classics: Fixed playfield is offset to characters (ID 03913) - Batsugun: Improved V25 logging - Bogey Manor: Fixed title screen colors - Bottom of the Ninth: Added missing third button to clone Main Stadium (Japan) (ID 03888) - Cherry Bonus 2001 . Added 2 new V30 opcodes . Improved video emulation. Changed palettesize to 256 colors. - Cloak & Dagger: Fixed music pitch (ID 03899) - Daikaiju no Gyakushu: Hooked up 68705 MCU and removed MCU simulation code - Double Dragon: Decrypted the char roms in clones Double Dragon (bootleg with 3xM6809, set 1/2) - Fire Trap: Added PCB documentation and correct clocks - Gondomania: Hooked up I8751 MCU - Heavy Barrel: Hooked up I8751 MCU - Indoor Soccer: Improved DIP locations and confirmed MSM5205 clock. - Kyros: Fixed a white noise which lasts throughout the game once you throw a punch (ID 03912) - Land Sea Air Squad: Fixed Z80 CPU2 and M68705 CPU3 clock speeds. Changed clone Storming Party to a bootleg without MCU (ID 02462). - Little Robin: Rewroted video emulation to use the device system - Legend of Hero Tonma: Added proper i8751H MCU dump to clone Legend of Hero Tonma (Japan). - Puzzlet: Added MCU internal ROM. Zilog Z8 8-bit family MCU requires a new CPU core to be written. - Real Battle Mahjong King: Decapped 89C51 MCU. Added AT89C4051 MCU and YM2151 sound. - The Real Ghostbusters: Reimplemented Meikyuu Hunter G I8751 MCU according to schematics - Renegade: Hooked up 68705 MCU - Spy Hunter: Fixed static output from right audio channel (ID 03882) - Super Game III . Added handling for two consecutive writes for MMC1 making Snow Bros playable . Fixed Tom & Jerry - Tough Turf: Hooked up MCU for clone (US) - World Rally: Correct DIP location orderto match actual dips as seen by the game / service menu. - Wrestle War: Hooked up MCU and removed MCU simulation - X-Men: Children of the Atom: Correct the release order for the sets - Xain'd Sleena: Hooked up 68705 MCU (ID 02572) and added DIP locations - Dipswitch fixes in aristmk4.c, idsoccer, igs011.c, namcos22.c, pinkiri8.c, slapfght.c, wrally.c and xain.c - Fixed rom names in firetrap.c, renegade.c and slapfght.c - Renamed (animaljr) to (animaljrs), (boggy84) to (boggy84b), (ckong) to (ckongpt2), (ckonga) to (ckongpt2a), (ckongb) to (ckongpt2b), (ckong2j) to (ckongpt2j), (ckongjeu) to (ckongpt2jeu), (exerizrb) to (exerizerb), (kof98n) to (kof98h), (lhba) to (lhbv33c), (looping) to (loopingv), (loopinga) to (loopingva), (raidndx) to (raidndxa1), (raidndxm) to (raidndxa2), (raidndxt) to (raidndxg), (redufo) to (redufob), (slapbtjp) to (slapfighb1), (slapbtuk) to (slapfighb2) and (slapfgtr) to (slapfighb3). - Description changes of Alcon (US), Airline Pilots Deluxe (Rev B), Animalandia Jr. (Spanish), Boggy '84 (bootleg), Capcom Vs. SNK Millennium Fight 2000 (000804 JPN, USA, EXP, KOR, AUS) (Rev A), Defend the Terra Attack on the Red UFO (bootleg), Derby Owners Club (JPN, USA, EXP, KOR, AUS) (Rev B), Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C), Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS) (Rev B), Ghost Pilots (AES cart), Slap Fight (bootleg set 1), Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev A), Jambo! Safari (JPN, USA, EXP, KOR, AUS) (Rev A), The King of Fighters '97 (AES cart), The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (AES cart), The King of Fighters 2003 (AES cart), Looping (Venture Line license, set 1), Looping (Venture Line license, set 2), Marvel vs. Capcom 2 (JPN, USA, EUR, ASI, AUS) (Rev A), Moero Justice Gakuen (JPN) / Project Justice (USA, EXP, KOR, AUS) (Rev A), Raiden II, Raiden II / DX (newer V33 PCB), Raiden DX (Asia set 1), Raiden DX (Asia set 2), Raiden DX (Germany), Samba De Amigo (JPN) (Rev B), Slap Fight (bootleg set 2), Slap Fight (bootleg set 3), Slap Fight (Japan set 1), Slap Fight (Japan set 2), Slip Stream (950515 Brazil), Slip Stream (950515 Hispanic), SNK vs. Capcom - SVC Chaos, SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1), SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2), Soccer Brawl (AES cart), The Typing of the Dead (JPN, USA, EXP, KOR, AUS) (Rev A), unknown ACE fruits game, unknown fighting game 'BB' (prototype), unknown Meyco game and Waiwai Animal Land Jr. (Japan). - MAME . Removed the following functions: cpu_get_total_cycles() == cpudevice->total_cycles(), cpu_clocks_to_attotime() == cpudevice->cycles_to_attotime() and cpu_attotime_to_clocks() == cpudevice->attotime_to_cycles(). . Removed most other instances of cpu_get_total_cycles . Removed cpu_get_sp() . Added cycles_to_attotime() and attotime_to_cycles() which is more often what is requested (clocks are the raw input clock, while cycles are internal clock after dividers/multipliers). . Created CPU-specific device types for all CPUs, using new macros DECLARE_LEGACY_CPU_DEVICE and DEFINE_LEGACY_CPU_DEVICE. Changed CPUs to be their own device types, rather than all of type CPU with a special internal subtype. Note that as part of this process I removed the CPU_ prefix from the ALL-CAPS device name, so CPU_Z80 is just plain old Z80 now. This required changing a couple of names like 8080 to I8080 so that there was an alphabetic first character. . Got rid of cpu_count, cpu_first, cpu_next, etc. as they were badly broken. Also removed cpu_is_executing, cpu_is_suspended, cpu_get_local_time, and cpu_abort_timeslice. . Made the machine_config a proper object. Added detokenize method to this object which can be called multiple times to append new devices after the initial machine configuration is set up. Updated member variables to match new naming convention. . Moved global machine-level operations and accessors into methods on the running_machine class. For the most part, this doesn't affect drivers except for a few occasional bits: mame_get_phase() == machine->phase(), add_reset_callback() == machine->add_notifier(MACHINE_NOTIFY_RESET, ...), add_exit_callback() == machine->add_notifier(MACHINE_NOTIFY_EXIT, ...), mame_get_base_datetime() == machine->base_datetime() and mame_get_current_datetime() == machine->current_datetime(). . Changed the running_machine to take a constructed machine_config object in the constructor, instead of creating one itself, for consistency. Also added machine->total_colors() as a shortcut to machine->config->m_total_colors. . Changed emualloc to free resource pools from earliest to latest so that early objects can safely clean up stuff they allocated. . Changed device name from an overridable function to a parameter passed to the device_config constructor. In situations where the proper name is not known at construction time, a generic name can be specified and then overridden later once the configuration is complete. . Updated expat library match the latest released version (2.0.1) . Cleaned up the region_info class, removing most global region accessors except for memory_region() and memory_region_length(). Again, this doesn't generally affect drivers. . Winmain cleanup: Created dynamic_bind<> template class to handle dynamically binding to optionally-supported functions. Wrapped stack walking code in a class. Wrapped symbol lookup code in a class. Added support for parsing objdump-produced symbol dumps which include non-global functions for much better stack dumps and profiling in GCC builds. . Added overrides to fetch the execute, memory and state interfaces without doing a dynamic_cast<> to speed up common legacy operations. . Natural keyboard status saved in options when changed . Resurrected the old sampling profiler, and improve it to be useful: Always available now, just specify -profile to enable it. Supports stack walking to uniquely identify call chains; the parameter to the -profile option specifies how deep to go. Automatically turns off throttling and multithreading, and sets the number of processors available to 1 (since we only sample the main thread). Output now uses the common symbol lookup, which actually uses the PDB for MSVC builds and sym files for GCC builds. The top 30 unique call chains are output. . Updated cheat loading to support image devices (moved implementation from MESS), use only CRC of first found image. . Software list update: Software list XML files are now read in full such that information for clone and parent sets is available. Added validity check to check for existence of parent sets. . Software list improvements: Support for multiple software list per driver. Added MDRV_SOFTWARE_LIST_COMPATIBLE_ADD for adding compatible software lists (for documentation purposes). listsoftware option now return only original software lists. UI is updated to enable mounting software items per device, it will display only items from list that are for specific device. Separate compatible software lists in UI. . Imported image related utils from MESS into \lib\util . Fixed all sets using stereo sound: Right speaker is louder than left speaker (ID 03910) - MESS . Moved softlist implementation from MESS: Moved image related UI from MESS to emu core. Reimplemented filename related image device calls. . Moved listsofware command line option from MESS, and added softlist in XML output. . Moved ioproc implementation from MESS - Compiling . Modified makefile for win32 targets to automatically run objdump and produce a .sym file if SYMBOLS is enabled. . Added many instances of missing static and const qualifiers to MAME . Split mame.c into mame.c and machine.c, the latter containing the running_machine definition and implementation. - Debugger . Moved debugging structure away from CPUs only and attached to all devices. Debugger now creates one for each device. C++-ified most debugger operations to hang off the debugging class, and updated most callers. . C++-ified the debugger views. split implementation of individual view types out to separate files and updated all callers. . Modified way device_type constants are defined in order to get UNIDASM compile 0.138u2 - NOTE: The way devices are handled internally in MAME has changed significantly. There are likely to be short-term compatibility and performance effects. Please report any errors or *significant* performance decreases (>20%) to MAMETesters.org. Full documentation on the new device handling is in progress at http://mamedev.org/devwiki/index.php/MAME_Device_Basics - New games: The Berenstain Bears in Big Paw's Cave - New Working games: Alien Challenge, Lucky Girl, Night Bunny, Night Gal, Royal Queen and Vortex - New Non-Working games: Battle Gear, Battle Gear 2, Pop n' Music 5, Puzzle Break, Ron Jan (Super) and Unknown Meyco Game - New clones: Alien Challenge (World), 3x Brave Blade, Oedo Fight (Japan Bloodshed Ver.), Phantoms II (Space Invaders hardware), Toki (US, set 2) and Waiwai Animal Land Jr. - OKI6295 sound / EEPROM: Converted the OKI M6295 and EEPROM devices to the new model. These were necessary because they both require multiple interfaces to operate and it didn't make sense to create legacy device templates for these single cases (okim6295 needs the sound interface and the memory interface, while eeprom requires both the NVRAM and memory interfaces). - TMS5110 Sound . Added a new cycle exact VMS interface to TMS5110 emulating M0, M1 and ADD1 to ADD8 lines . Added TMS6100 memory interface device. Moved TMS6100 code into emu\machine\tms6100.c. Added pinouts for TMS6100 and M58819. . Added TMSPROM device emulating Bagman and A. D. 2083 prom controlled speech logic. Switched Bagman, A. D. 2083 (scramble.c) and Radar Scope (TRS01) to use the new interface and devices. Added documentation about TMS5110 prom interface used by Bagman and A. D. 2083. - YM2610 sound: A small update for the YM2610 core, which resets the PCM and Delta-T memory regions when the chip is reset. This is needed for MESS, where being able to change the size and existence of the sample regions on the Neo Geo AES is necessary for the sound to work right, especially for games that don't have a specific Delta-T region. - CD-ROM: CDRWIN .bin/.cue images now supported for both input and output. Pregap and postgap information is now preserved in the format. Output of CDRDAO images is significantly improved. Existing CHD-CDs will continue to work fine and for data-only discs no action needs to be taken. For mixed data/audio discs (e.g. analog 573/Bemani games) they should be re-converted for better preservation. - PC hardware: Moved some common PC code to machine\pcshare.c - 7474 TTL: Convert 7474 handlers to (READ|WRITE)_LINE_DEVICE_HANDLERS. Changed 7474 to only use devcb callbacks and handlers. Updated game drivers. - Flash ROM: 4k sectors should erase in 1/8th the time of 64k. extend core to support GBA chip types. - NVRAM: X2212 now uses device template. Also changed all handlers to use devcb prototypes. Default NVRAM contents should be in region named same like device tag. Hooked up X2212 in the Star Wars driver. (firefox, starwars.c) - Z80 DAISY: Defined a new custom interface for the Z80 daisy chain. This interface behaves like the standard interfaces, and can be added to any device that implements the Z80 daisy chain behavior. Converted all existing Z80 daisy chain devices to new-style devices that inherit this interface. - bagman.c . Added clock information and timing from schematics. Improved interrupt timing and handling to follow schematics. Adjusted default volumes to normalize audio and better present the original output. . Fixed VSync . Fixed AY-3-8910A clock speed in Bagman and Super Bagman - bfm_sc2.c: Fixed sltblgtk resets when coin is inserted and no further input is done (ID 01543) - docastle.c: Fixed Z80 CPU1 clock speed. Changed input to 4-way Joystick in Kick Rider. - galivan.c: Updated driver with DIP locations and verified setting via Service Mode. Added comments about missing text layer in Ninja Emaki and flagged those sets with missing protection emulation. - itech8.c: Fixed assert in debug build of gtg, gtg2, gtg2j and gtg2t (ID 03360) - kongambl.c: Mapped ROMs correctly to processors. Started mapping out Konami customs. EEPROM hooked up. Support unpaged 056832 VRAM access. Added 68EC020 (25MHz) CPU. - lordgun.c . Implemented RAM based priorities . Added multi-sprite and fixed sprite list end . Correct tilemap 2 size (wrong backgrounds in the final stage) . Fixed crosshair position (ID 02712) - lwings.c: Fixed Z80 CPU2 clock speed in Legendary Wings and Section Z - model2.c . Fixed various hangs and NVRAM init. The "SHARC: PM Bus Read 00000000 at 00020004" message in games like rchase2, sfight, von, vonj and vstrikero is fixed (ID 03156) . Changed input to 1 Player + paddle in INDY 500 Twin, Over Rev and Super GT 24h - nightgal.c: Changed Z80 CPU1 and NSC8105 CPU2 clock speeds to 2496000 Hz. Fixed sub rom address to $c000. - neodrvr.c: Fixed viewing Z80 I/O memory causes crash in debug mode (ID 03702) - pcat_nit.c: Added VGA emulation from MESS. Added INS8250 emulation from MESS. Added format decimal support to Microtouch. Added rom banking and inputs to pcat_nit games. streetg(2) now boot properly. Fixed game_prg roms loading, visible area and palettesize. - pinkiri8.c . Dumped internal Z180 ROM for Janshi and Pinkiri 8 . Improvements to the video emulation . Deviceized the VDP used by Pinkiri 8 hardware . Emulated protection check in Ron Jan . Added OKI6295 (1056000 Hz) sound to Pinkiri 8 . Fixed visible area - playch10.c: Removed rp5h01_config. Memory region now has to have same tag as rp5h01 device. Update PlayChoice-10 driver. - stv.c: Splitted the protection handlings by per-game and added proper RTC support - toaplan2.c: Fixed layer-layer priorities in Batsugun and Dogyuun; sprite-sprite priorities are wrong. - vsnes.c . Reworked VROM banking to avoid pointing beyond the last bank . Changed the use of memory_set_bankptr into memory_set_bank - 1 on 1 Government: Fixed default EEPROM - A. D. 2083, Bagman and Radar Scope: Added a new cycle exact VMS interface to TMS5110 emulating M0, M1 and ADD1 to ADD8 lines. Added TMS6100 memory interface device. Also added TMSPROM device emulating Bagman and A. D. 2083 prom controlled speech logic. Switched Bagman, A. D. 2083 (scramble.c) and Radar Scope (TRS01) to use the new interface and devices. Added documentation about TMS5110 prom interface used by Bagman and A. D. 2083. - Battle Cross: Fixed incorrect colors (ID 01839) - Block Block: Fixed erratic ball speed (ID 02362) - Brave Blade: Added default EEPROMs for each region - Buggy Challenge: Improved sky, in-game foreground statusbar and speedometer don't clip it anymore, and it's a gradient of azure->turquoise now instead of azure->black. - Crazy Kong Part II: Fixed missing pixel gap between Kong and level (ID 03747) - Diamond Derby: Fixed NVRAM handling - Frog & Spiders: Fixed priorities - G-Stream G2020: Added default NVRAM - HAL21: Fixed reversed 'Cabinet' dipswitch - Kick Boy: Added and hooked up color PROM. Added color PROM also to Dacholer. Fixed palettesize. - Lucky Girl (newer Z180 based hardware) . Improved the input system, added missing buttons. Figured out the full coinage DIP switches. (Coins A, B, C, Key In). Found and documented the output ports. Added full lamps support. Created a new button-lamps layout. Hooked the coin and key in counters. Added technical notes. Figured out the following DIP switches: Auto Hold (No / Yes), Game Type (Hold Game / Discard Game), Adult Content (No / Yes), Minimal Winning Hand (Jacks or Better / 2 Pairs), Minimum Bet (1 / 5) and Double-Up (Normal / Poker / Bingo / No D-Up). . Added palette DAC handling, reel layers, removed NMI patch and fixed palette / priority handling. - Mighty Monkey: Fixed clone Mighty Monkey (bootleg on Scramble hardware) hangs at Post. It was a memory map issue when merging - a RAM area was labeled incorrectly as ROM (ID 03878). - Miracle Derby: Moved game to the Homedata driver - Moon War (prototype on Frenzy hardware): Added 'Bonus Life' dipswitch - Pang / Super Pang: Fixed crash regression with clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) - Point Blank: Replaced sound rom that was incorrectly dumped. The new dump has been verified on 3 different PCBs. - Prehistoric Isle: Fixed lack of graphics (ID 03866) - Raiden 2: Fixed audio CPU banking (added a missing mirror to banking register) - Rail Chase 2: Hooked up ad sticks and documented drive I/O board commands - Royal Gum: Basic M6502 hook-up. Added AY-3-8910A sound. - Scud Race: Correct sound rom loading for the Scud Race & Scud Race Plus sets - Sega Rally Championship: Hooked up basic drive I/O board CPU - Space Invaders: Massive Space Invaders related comment update, documenting various sets, and the various Taito PCBs used by Space Invaders/Tabletop SI/Tabletop SI Color/Tabletop SI II/etc. Update/Correct Space Invaders Comments, particularly regarding Midway Boards. - Time Soldiers: Fixed input (DIAL was used instead of rotary joystick) - Vortex: Added partial decrypt function for Vortex (0x0000-0x1FFF is decrypted properly, 0x4000-0x5FFF is probably not), still much work to be done especially regarding memory maps (which are affected by the epoxy block address inverts as well) - Vs. Atari R.B.I. Baseball and Vs. Super SkyKid: Fixed severe graphic corruption/access voilation (ID 03579) - Input port: Increased number of coinslots to 12, and tilt inputs to 4, required by in-progress gambling driver. - Dipswitch fixes in drgnwrld, galivan.c, hal21, moonwarp, pinkiri8.c and vortex - Fixed rom names in arabianm, bloodwar, goldnaxe, gunlock, kickboy, liquidk, segas16b.c and twinhawk - Renamed (hfh) to (alienchac) and (sf2t) to (sf2hfu) - Description changes of Alien Challenge (China), Brave Blade (World), Bump 'n' Jump (Cassette), King Derby (Taiwan bootleg), King Tut (NSW), Money In The Bank (NSW) (ID 03707), Royal Night [BET] (Japan 840220 RN 2-00), Royal Queen [BET] (Japan 841010 RQ 0-07) and X Multiply (World, M81) - MAME . Defined two new casting helpers: downcast(value) should be used for safe and efficient downcasting from a base class to a derived class. It wraps static_cast<> by adding an assert that a matching dynamic_cast<> returns the same result in debug builds. crosscast(value) should be used for safe casting from one type to another in multiple inheritance scenarios. It compiles to a dynamic_cast<> plus an assert on the result. Since it does not optimize down to static_cast<>, you should prefer downcast<> over crosscast<> when you can. . Redefined running_device to be a proper C++ class (now called device_t). Same for device_config (still called device_config). All devices and device_configs must now be derived from these base classes. This means each device type now has a pair of its own unique classes that describe the device. Drivers are encouraged to use the specific device types instead of the generic running_device or device_t classes. Drivers that have a state class defined in their header file are encouraged to use initializers off the constructor to locate devices. . Removed the following fields from the device and device configuration classes as they never were necessary or provided any use: device class, device family, source file, version, credits. . Added templatized variant of machine->device() which performs a downcast as part of the device fetch. Thus machine->device("timer") will locate a device named "timer", downcast it to a timer_device, and assert if the downcast fails. . Removed most publically accessible members of running_device/device_t in favor of inline accessor functions. The only remaining public member is machine. Thus all references to device->type are now device->type(), etc. . Created a number of device interface classes which are designed to be mix- ins for the device classes, providing specific extended functionality and information. There are standard interface classes for sound, execution, state, nvram, memory, and disassembly. Devices can opt into 0 or more of these classes. . Created a new header devlegcy.h which wraps the old device interface using some special template classes. To use these with an existing device, simply remove from the device header the DEVICE_GET_INFO() declaration and the #define mapping the ALL_CAPS name to the DEVICE_GET_INFO. In their place #include "devlegcy.h" and use the DECLARE_LEGACY_DEVICE() macro. In addition, there is a DECLARE_LEGACY_SOUND_DEVICE() macro for wrapping existing sound devices into new-style devices, and a DECLARE_LEGACY_NVRAM_DEVICE() for wrapping NVRAM devices. Also moved the token and inline_config members to the legacy device class, as these are not used in modern devices. . Converted the standard base devices (VIDEO_SCREEN, SPEAKER, and TIMER) from legacy devices to the new C++ style. Also renamed VIDEO_SCREEN to simply SCREEN. The various global functions that were previously used to access information or modify the state of these devices are now replaced by methods on the device classes. Updated all drivers that use the above functions to fetch the specific device type (timer_device or screen_device) and call the appropriate method. . Changed machine->primary_screen and the 'screen' parameter to VIDEO_UPDATE to specifically pass in a screen_device object. . Reorganized the token parsing for machine configurations. The core parsing code knows how to create/replace/remove devices, but all device token parsing is now handled in the device_config class, which in turn will make use of any interface classes or device-specific token handling for custom token processing. . Consolidated address space parameters (bus width, endianness, etc.) into a single address_space_config class. Updated all code that queried for address space parameters to use the new mechanism. . Converted the classic CPU device to a standard device that uses the execution, state, memory, and disassembly interfaces. Used this new class (cpu_device) to implement the existing CPU device interface. In the future it will be possible to convert each CPU core to its own device type, but for now they are still all CPU devices with a cpu_type() that specifies exactly which kind of CPU. . Changed the way CPU state tables are built up. Previously, these were data structures defined by a CPU core which described all the registers and how to output them. This functionality is now part of the state interface and is implemented via the device_state_entry class. Updated all CPU cores which were using the old data structure to use the new form. The syntax is currently awkward, but will be cleaner for CPUs that are native new devices. . Removed MDRV_CPU_FLAGS() which was only used for disabling a CPU. Changed it to MDRV_DEVICE_DISABLE() instead. Updated drivers. . Added macros for inline device handler initialization to devcb.h . Moved many validity checks out of validity.c and into the device interface classes. For example, address space validation is now part of the memory interface class. . devlegacy.c, clifront.c, info.c: Created legacy image device. Moved opresolv implementation from MESS. listmedia is option is available in MAME too. listxml output now contains image devices. . Added support for image devices parameters to emuopts . Romident can now identify CHD's - Compiling . Added some missing static qualifiers to MAME . Renamed some generically named exports from segaic16.c . Changed parameters in a few callback functions from pointers to references in situations where they are guaranteed to never be NULL. . Clean up profiling flags in the makefile. Removed GPROF flag, it is now just PROFILE. When enabled, automatically turn on basic symbols. Also added new SYMLEVEL option to control the symbols level (defaults to 2). . Fixed a warning in Visual Studio 2010 that was introduced by a previous commit . Removed problematic SDL live render type toggle and default OS X to OpenGL . SDLMAME now compiles against SDL 1.3 up to HG rev 4464. Everything beyond that revision is completely broken since Sam ripped out multi-keyboard and multi-mice support. Further information in README_SDL13.txt. . Fixes for OS X PowerPC compile 0.138u1 - New games: GeGeGe no Kitarou Youkai Slot, Mouse Attack, Super Game III and Video Carnival 1999 / Super Royal Card - New Non-Working games: Abacus (Ver 1.0), Book Theatre (Ver 1.2), The Crystal Maze (v1.3), Euro Pass (Ver 1.1), Magic Class (Ver 2.2), Magic Number (Italian Gambling Game, Ver 1.5), New Super 3D Golf Simulation - Waialae No Kiseki / Super Mahjong 2 (Super Famicom Box), Win Win Bingo (set 1), X Five Jokers (Version 1.12) and Zoo - New clones: 1943: The Battle of Midway (Euro), The Crystal Maze Team Challenge (v0.9, Datapak), The Crystal Maze Team Challenge (v1.2, AMLD), The Crystal Maze (v1.3, Datapak), Fantasy Zone (317-5000), Golden Tee 2K (v1.00) (alt protection), Heavyweight Champ (Japan, FD1094 317-0046), Indoor Soccer (set 2), Ms. Pac-Man/Galaga - 20 Year Reunion (V1.08), Ms. Pac-Man/Galaga - 20 Year Reunion (V1.02), Ms. Pacman Champion Edition / Zola-Puc Gal, The New Crystal Maze Featuring Ocean Zone (v2.2), The New Crystal Maze Featuring Ocean Zone (v2.2d), Road Riot's Revenge (prototype, Sep 06, 1994), Super Draw Poker (bootleg), Win Win Bingo (set 2), X Multiply (Japan, M81) and X-Men Vs. Street Fighter (Asia 960910) - New drivers: sfcbox.c and sigmab98.c - NEC-V CPU: Removed all references to the nonexistent "premov" instruction from the core (nec\necdasm.c) - Z180 CPU . Improved timer and HALT processing. This fixes severe slowdown after initials are entered in Ms. Pac-Man/Galaga - 20 Year Reunion (ID 03852). . Rewrote cycle accounting to create a basis for more exact internal I/O and timer operations as well as implementing interrupt priorities. . Removed unused BIG_SWITCH code as well . Improved interrupt and timer handling . Added some missing save state entries and fixed HALT - Z80 CPU: Added NSC800 CPU emulation to the Z80 core - TMS5220 sound: Added a readyq callback to the TMS5220 interface. This is needed to solve the missing speech bug in the Zaccaria games. The INTQ and READYQ are connected to PIA 6821 lines CA2 and CB1 which are edge driven. Just reading READYQ would miss to detect a state change if between reads READYQ went 0-1-0. - Konami custom ICs: Fixed sprite Z code rejection regression (konicdev.c) - astrocorp.c: Added PCB layout for Astro M1.1 & M1.2 PCBs - decocass.c: Added new BIOS set and updated rom names/locations/types to be more accurate. Update comments/BIOS names with more info from D. Widel's page. - galaga.c: Moved global and static variables into a machine class. Renamed some variables, e.g. galaga_videoram and bosco_videoram to just videoram. - looping.c: Added a readyq callback to the TMS5220 interface. The INTQ and READYQ are connected to PIA 6821 lines CA2 and CB1 which are edge driven. Just reading READYQ would miss to detect a state change if between reads READYQ went 0-1-0. Updated the Looping driver. - lwings.c: Updated Legendary Wings and Section Z with actual PCB speed readings. Fixed Z80 CPU2 clock speed. - model2.c: Added bare-bones work around for the Network board in Super GT 24h and Over Rev, they now enters into attract mode. - mpu4drvr.c . Added trackball support . Fixed quiz game controls . Restructured AWP games' characteriser handling - namcos2.c: Optimized pixmap rotation, improving performance of Assault and other games that use it. - naomi.c: Modified the clipping a bit to avoid so many black lines at the bottom. Added 'Disable Render Calls' dipswitch. - nss.c: Basic hook-ups of the Nintendo Super System BIOS. Added Z80 menu CPU. - sfcbox.c . Ported Super Famicom Box from MESS to MAME and added New Super 3D Golf Simulation . Added Super Famicom Box BIOS (Nintendo 199?) - stv.c . Added x/y boundary checking to bitmaps . Fixed Test mode doesn't work in Guardian Force (ID 01009) . Removed boot hack in Power Instinct 3 - Groove On Fight (not anymore needed) . Fixed Soukyugurentai crashed after player select (ID 03710) . Fixed black screen in Virtual Mahjong 2 (ID 02642) . Fixed Segmentation Fault in Zen Nippon Pro-Wrestling (ID 03445) - tecmo.c: Included Rygar PCB documentation - toaplan2.c . Reworked rendering to render tilemaps / sprites in a single pass, should be more accurate to hardware. Note, this further breaks the mixing in Batsugun and Dogyuun because the previous hacks can no longer work with the new rendering code. These games have been demoted to NOT_WORKING status until a better solution is found; they never worked properly anyway due to the extent of the video hacks needed to support them. . Fixed sprite-sprite priorities in Batsugun and Dogyuun . Fixed ending and credits text in Batsugun (ID 00948) . Fixed some graphics garbage at level one start and first boss in Batsugun (ID 00946) . Changed palettesize from 2048 to 65536 colors. - zaccaria.c . Improved sprite drawing and added DIP locations . Fixed minor color issues (ID 02567) . Fixed incorrect Money Money sprite priority when the player is pulled underwater (ID 00799) . Reverified TMS5200 clock and measured Vsync clocks from Zaccaria hardware . Added a readyq callback to the TMS5220 interface. This is needed to solve the missing speech bug in the Zaccaria games (ID 03832). The INTQ and READYQ are connected to PIA 6821 lines CA2 and CB1 which are edge driven. Just reading READYQ would miss to detect a state change if between reads READYQ went 0-1-0. . Fixed TMS5200 sound clock speed - Aladdin (bootleg of Japanese Megadrive version): Fixed crashes when you fall into pitfalls (ID 03239) and documented an energy bar debug switch, disabled by default. - Battle of the Solar System: Added PLD dumps to clone (rev. 1.1a 7/23/92) - Body Slam: Fixed clone Dump Matsumoto (Japan, 8751 317-0011a) doesn't start - Danchi de Hanafuda: Removed unneeded title screen hack - Jr. Pac-Man: Added DIP locations - Kicker: Re-added 8k gfx1 roms - Moto Frenzy . More rom name corrections as verified against a Moto Frenzy Mini Deluxe PCB . Added ROM for the "Clarn" game link sub PCB and a new jsa rom to clone (Mini Deluxe) - Ms. Pac-Man/Galaga - 20 Year Reunion . Improved Z180 timer and HALT processing. This fixes severe slowdown after initials are entered . Rewrote rom/ram banking. 20pacgal now supports save state. . Added lfsr-driven starfield (ID 02621). The general principle is understood now but star set selection and the star drawing condition are guesses. - Naughty Boy: Rewritten palette initialization by using the RESNET - Pengo: Added DIP locations - Photo Y2K 2: Added decryption table - Pop Flamer . Documented and worked around a long standing level 3 protection fault (ID 03816) . Fixed color regression (swapped proms) (ID 03817) - Quartet: Fixed Quartet (Rev A, 8751 315-5194) and Quartet (8751 315-5194) doesn't start (ID 03476) - Super Street Fighter II Turbo: Made game a parent set - Sunset Riders: Fixed the old sprites stuck error (ID 03853) - Super Draw Poker: Added missing proms to clone (set 2) - Wily Tower: Fixed very low background music (ID 03474) - Input port: Added debug_global_input_code_pressed_once() function to input.c - Dipswitch fixes in mpu4drvr.c, jrpacman.c, naomi.c and zaccaria.c - Fixed rom names in decocass.c, hwchamp and motofren. - Renamed (1943) to (1943u), (20pacgal) to (20pacgalr4), (20pacgala) to (20pacgalr1), (ambush) to (ambushj), (ambusht) to (ambush), (astrode) to (astrobg), (crmazeb) to (crmaze2a), (crmaze) to (crmaze3), (dsccr94j) to (dsoccr94j), (flowers) to (flowerj), (gyrodine) to (gyrodinet), (gyrodinec) to (gyrodine), (hyprdelj) to (hyprduel2), (jumpshtp) to (jumpshotp), (kaitei) to (kaitein), (kaiteik) to (kaitei), (mschamp) to (mschamps), (rrreveng) to (rrrevengb), (rrrevengp) to (rrrevenga) and (xmultipl) to (xmultiplm72) - Description changes of Ambush, Ambush (Japan), Amidar (bootleg), Ambush (Volt Electronics), The Crystal Maze (v0.1, AMLD), The Crystal Maze Team Challenge (v0.9), Dogyuun (Unite Trading license), Eyes Down (v1.3, Datapak), Fantasy Zone (Rev A, unprotected), Fantasy Zone (unprotected), Flower (US), Flower (Japan), Daiku no Gensan (Japan, M82), Golden Tee Classic (v1.00) (alt protection), IPM Invader, IPM Invader (Incomplete Dump), Kaitei Takara Sagashi, Lady Master of Kung Fu, The Mating Game (v0.4), The Mating Game (v0.4, Datapak), Miss Bubble II, Monsters World (bootleg of Super Pang), Ms. Pacman Champion Edition / Super Zola-Puc Gal, The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD), Phoenix (Taito Japan), Phoenix (Irecsa / G.G.I Corp), Pipi & Bibis / Whoopee!! (Whoopee!! board), 'Pro Sports - Bowling, Tennis, and Golf', Road Riot's Revenge (prototype, Jan 27, 1994, set 1), Road Riot's Revenge (prototype, Jan 27, 1994, set 2), Strike it Lucky (v0.5, Datapak), Strike it Lucky (v0.53, Datapak), Ten Quid Grid (v1.2, Datapak), Ten Quid Grid (v2.4, Datapak), Top Gunner (Exidy), Tournament Pro Golf (Cassette), Tower of Druaga (Sidam), Van-Van Car (Karateco set 1), Van-Van Car (Karateco set 2), Vimana (Nova Apparate GmbH), Winding Heat (JAA, Japan v2.11), X Multiply (Japan, M72) and Zintrick / Oshidashi Zentrix (hack) - MAME: Cleaned up company names - Compiling . Correct stack walk by using UNICODE_POSTFIX . Fixed some incorrect function declarations in winmain.c . Fixed SDL compilation for GTK+ 2.20 and later. Revision 9295 by R. Belmont. - Debugger: Fixed TMS34010 memory window jumps to weird addresses (harddriv.c sets) when trying to view memory (ID 03844) 0.138 - New games: New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus) - New Working games: Frog & Spiders, Penguin Adventure and Space Fortress (Zaccaria) - New Non-Working games: Chance Kun, Dragon World 2001, Dragon World 3 EX, Photo Y2K 2, Royal Queen and Taiko No Tatsujin 10 (T101001-NA-A) - New clones: Armed Formation, Champion Baseball II (Japan), Desert Breaker (Japan, FD1094 317-0194), Dungeons & Dragons: Tower of Doom (Hispanic 940113), Eco Fighters (Hispanic 931203), Giga Wing (Hispanic 990222), International Team Laser (prototype), Pac-Land (Japan older), Photo Y2K (ver. 105), Street Fighter Alpha 3 (Hispanic 980629), Street Fighter EX 2 (HISPANIC 980312), Wing War (Japan), X-Men: Children of the Atom (Hispanic 950105) and Youma Ninpou Chou (Japan, alt) - S2650 CPU: S2650_SENSE_PORT is now active when data written is != 0 and inactive when data == 0. It now acts as a line in a MAME-sense. - TMS5220 sound . Removed unnecessary interpolation code in TMS5220 . Added 'Unrealistically Perfect Interpolation' debug mode . Fixed a potential issue with 16 bit overflow in the lattice filter . Made idle state emulation more accurate to real chip . Clean out variables before VSM speech starts . Mask out low 4 bits of 14 bit lattice result before output . Fixed a mistake in the interpolation logic, it should now properly delay interpolation until the final cycle of each frame when INHIBIT is set. . Added extra check to make unvoiced mode trigger at the correct sample . Made TMS5220 DEBUG_GENERATION more useful and simplified the code in the process . Fixed up TMS52xx clip/wrap function arrangement to be much more sane, and properly handled range extension. - TMS5220C sound . More cleanup of the LPC tables . Replaced TMS5220C pitch table with the TMS5220 one as that one is more likely to be correct. - CD-ROM: Fixed stack corruption in CHD code (lib\util\cdrom.c) - btime.c . Fixed incorrect screen resolution to 240x256 in Burnin' Rubber and Zoar (ID 03273) . Burger Time background vertical offset was off by one pixel, burger parts positions are correct now. This also means Peter Pepper awkwardly walks in the air, which is the way it is on the PCB. - cojag.c: Fixed Jaguar RGB VARMOD mode - goldstar.c (New Lucky 8 Lines hardware): Added lamps support to lucky8, lucky8a, lucky8b, ns8liner, ns8linew and kkojnoli. Created lamps layout for the above sets. New inputs for ns8linew. This set has a second set of inputs, and can be switched between them. No lamps activity or Big/Small buttons are present while this alternative controls are used. Maybe is a leftover. Some DIP switches were figured out. Coinage and limits are still a real mystery since all DIP switches are reflected in the test mode. Remapped inputs to be straightforward with the control panel. Added the type (W-4/F-5) to the sets description. General inputs clean-up. - harddriv.c: Fixed a 'Duplicate save state registration entry (DSP32C/dsp32/0/cpustate->pin)' message (ID 03830) - jack.c: Added DIP Locations for all games - maxaflex.c: Fixed random crashes of all sets (speaker call to the MCU) (ID 03657) - namcops2.c: Added DVD images for kinniku, soulclb2, taiko10, tekken4, taiko9, zgundm and zgundmdx. - pgm.c: General code cleanup - Alpine Ski: Fixed graphics (red point on the title screen) (ID 03628) - Desert Breaker: Fixed coinage - Dragon Punch: Added 'Intermissions' dipswitch to clone Sports Match - Elevator Action: Fixed graphics (some graphics on the escalators shift when you ride on them) (ID 03047) - Frog & Spiders: Added missing projectiles, game is playable now. Changed description to 'Frog & Spiders (bootleg?)'. - Guerrilla War: Fixed visible area to 224x400 - Hunchback . Fixed S2650 CPU clock speed and input in clone Hunchback (Galaxian hardware) . S2650_SENSE_PORT is now active when data written is != 0 and inactive when data == 0. It now acts as a line in a MAME-sense. This fixes the game, which does not boot (ID 03492). - Joinem: Changed copyright from 1986 to 1983 to match displayed year - Killing Blade: Removed ROM Patch and replaced it with correct IGS025 return sequence fo China region (other sequences still unknown) - Monster Bash: Added new user2 rom pr-5021.39 to clone Monster Bash (2 board version) - Mike Tyson's Punch-Out!!: Fixed bad colours. It exposed a bug elsewhere in MAME's implementation. The internal palette RAM in the NES PPU is only 6 bits wide, but MAME was retaining--and using--all 8 bits written and just masking the top 2 out when the palette RAM was read back by the CPU (ID 03823). - Penguin Adventure: Improved inputs, the game can now be coined up. It magically has sound too now. - Quiz Do Re Mi Fa Grand Prix 2: Fixed ASSERT after OK (ID 03765) - Quiz Theater: Fixed missing sound (ID 03834) - The Simpsons: Fixed vertical refresh rate (ID 02878) - Star Castle: Fixed clone Space Fortress (Zaccaria), which does not allow you to turn to the right (ID 00390) - Star Fighter (v1): Updated documentation to include the game number, PCB number and epoxy CPU - Target Hits: Added fix for missing sound - Top Gunner: Fixed game, which crashes MAME after INSERT COIN/GAME START (ID 03683) - Tutankham: Fixed M6809 CPU clock speed. Added Custom Chip 084 notes (Starfield generation) to the driver. - Vendetta: Fixed sprite priority problem in the 3rd stage (ID 03033) and graphical error in the intro scene of the game (ID 03647) - Dipswitch fixes in hunchbkg, jack.c, mcr68.c and sprtmtch - Fixed rom names in monsterb2, pacland.c, scregg, sflush, segas18.c, sindbadm and tp84.c - Renamed (armedf) to (armedff), (pacland2) to (paclandj), (pacland3) to (paclandjo), (photoy2k) to (photoy2k104), (wingwar) to (wingwaru), (wingwara) to (wingwar) and (xmcotah) to (xmcotahr1) - Description changes of Armed Formation (Fillmore license), Alien Storm (World, 2 Players, FD1094 317-0154), Alien Storm (US, 3 Players, FD1094 317-0147), Alien Storm (Japan, 2 Players, FD1094 317-0146), Alien Storm (World, 3 Players, FD1094 317-0148), Clutch Hitter (US, FD1094 317-0176), Clutch Hitter (Japan, FD1094 317-0175), D. D. Crew (World, 3 Player, FD1094 317-0190), D. D. Crew (Japan, 2 Player, FD1094 317-0182), D. D. Crew (US, 4 Player, FD1094 317-0186), D. D. Crew (World, 2 Player, FD1094 317-0184), D. D. Crew (World, 4 Player, FD1094 317-0187), Desert Breaker (World, FD1094 317-0196), Frog & Spiders (bootleg?), Laser Ghost (World, 317-0166), Laser Ghost (US, 317-0165), New Lucky 8 Lines (set 1, W-4), New Lucky 8 Lines (set 2, W-4), New Lucky 8 Lines (set 3, W-4, extended gfx), Michael Jackson's Moonwalker (World, FD1094/8751 317-0159), Michael Jackson's Moonwalker (US, FD1094/8751 317-0158), Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157), New Lucky 8 Lines / New Super 8 Lines (W-4), Pac-Land (Japan new), Pac-Land (Japan old), Penguin Adventure (bootleg of MSX version), Pesadelo (bootleg of Knightmare on MSX), Quiz Do Re Mi Fa Grand Prix 2 - Shin-Kyoku Nyuukadayo (Japan), Shadow Dancer (World), Shadow Dancer (Japan), Shadow Dancer (US) and Wing War (World) 0.137u4 - New games: Klad / Labyrinth (Photon System) - New Working games: The Killing Blade (ver. 104) - New Non-Working games: Fighting Mania (918 xx B02), Frog & Spiders (bootleg) and Time Crisis 3 (TST1) - New clones: Battle of the Solar System (rev. 1.1a 7/23/92), Dragon World 3 (ver. 105), Draw Poker Joker's Wild (02-11), House of the Dead 2 (original), Polaris (Original version), Reel Fun (Version 7.03), Seibu Cup Soccer :Selection: (bootleg, set 2), Street Fighter II - The World Warrior (Thunder Edition) and War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German) - Added save states to the following CPU: APEXC, ASAP, AVR8, CP1610, DSP32 and F8 - AICA sound: Implemented slot monitor. Improved ADPCM looping. General cleanup. - SCSP sound: Improved slot monitor function. Various cleanups. - VRender0 sound: Converted chip to be a device - TMS5200 sound: Replaced TMS5200 table with table extracted using PROMOUT from actual chip. Money Money sounds much better. - TMS5220 sound . Replaced TMS5220 table with table extracted using PROMOUT from actual chip. By 'Replaced', I mean documented, as the actual extracted table exactly matched the table already in MAME. Changed TMS5220C to use the same energy table as 5220 does, since my previous assumption based on the Quadravox tables was probably wrong. Updated the ranout condition code of tms5220.c to be slightly more accurate to the chip, and added TODOs. Re-enabled the timers for deactivating the READY line on /WS or /RS as this is probably slightly more accurate to hardware, but the difference is 2 or 3 clock cycles max. . Made /READY timing accurate to the real chip as best as possible. Note that on the zaccaria games, possibly due to a bug in the CA2 line handler of the PIA which reads the /READY state, speech usually won't work until midway through the first game played, but works fine afterward. Not sure if that's a MAME bug or an original game bug. . Fixed race condition involving TMS52xx status register which broke victory/victorba self test. Updated debug routines a bit and improved the non-NORMALMODE a bit. . Fixed ZPAR (zeroed k parameters 5-10) behavior for unvoiced frames. Updated comments and debug functions. . Cleaned up ranout (FIFO running out mid-frame) to be accurate to hardware. Cleaned up talk status clearing to be more accurate to hardware. Cleaned up parse_frame function significantly. Added some more comments. . Redid parameter interpolation and frame load logic so new frames don't immediately force all the Energy/Pitch/K values to the values of the old frame, but wait until their first interpolation to do so. This fix improves speech quality considerably. - CD-ROM: Correct header length for form 2 raw sectors - aristmk4.c: Hooked up the two AY8910s - bbusters.c: Added new output handling functions and hooked up outputs for Beast Busters and Mechanized Attack - crystal.c: Added driver data class - namcos12.c: Hooked up outputs for all gun games (ptblank2, ghlpanic and tenkomor) - namcos23.c . Added a quick hack to make 500 GP boot . Increased the main ram size so that Crisis Zone goes into POST . Varied stuff, isolate PIO, PCB test works on Time Crisis 2 (TSS4 Ver. A) . Mirror, mirror v2 - naomi.c . Implemented Sort-DMA irq firing . Implemented PVR-DMA HW trigger . ImplementedWave DMA HW trigger and added Wave DMA IRQ firing . Implemented mahjong panel support . Improved the YUV FIFO IRQ firing, now it should be possible to emulate the YUV decoding properly. . Improved Vblank-In irq timings . Implemented RTC start-up values . Work-around for an int32 overflow bug in the renderer, makes 'The House of the Dead 2' and 'The Typing of the Dead' to not crash during attract mode. . Added a delay to the GDROM DMA transfers, allows KOF Neowave to boot. . Added rounding to the GD-ROM DMA transfers, will be need for Virtua Tennis to make it boot. . AICA updates: Implemented slot monitor. Improved ADPCM looping. General cleanup. . Documentation improvements to the Sega NAOMI HW games - pgm.c . Added support for newer BIOS rom (pgm_p02s.u20) . Added a protection RAM dump for Dragon World 3 . Improved encrypted DMA mode 3 and DMA modes 1+2 in Killing Blade, allowing all DMA operations used by the game to work and the RAM dump to be removed. Redumped maincpu rom p0300_v109.u9. - segas32.c: Hooked up all digital outputs for all games (radm, alien3, radr, f1en, arescue, f1lap, jpark, slipstrm, orunners, harddunk, scross and titlef). Emulation needs to progress more on the analog output data before those outputs can be hooked up. - segaybd.c: Hooked up all digital outputs (gloc, glocr360, gforce2, pdrift, rchase and strkfghtr), also hooked up motor/analog outputs for Power Drift and G-Loc/ Strike Fighter. The remaining games with motors could be hooked up as well assuming emulation can progress enough to get past the error messages. - system16.c (SEGA system16 and later): First pass in the conversion of video ICs to be devices. - vsnes.c . Fixed Vs. Mighty Bomb Jack and Vs. Gumsho, which have a grey screen and did not boot (ID 03818) . Removed gfx2 rom bb-2a ($2000) from Vs. BaseBall. This rom dump is suspected either bad or an operator hacked version. The GFX roms for all the other Vs. Baseball sets have mirrored GFX roms. In this case, the bb-8a "gfx2" dump was placed in this slot to allow the Service Mode to green light all the roms. . Fixed many dipswitches - Area 51: Site 4: Added newer BIOS (a51s4_bios_09-15-98.u1) - Amuse: Changed Amuse (Version 30.08 IBA) from a paremt set to a clone of (Version 50.08 IBA) - Desert Gun: Changed output name to something more descriptive (Player1_Gun_Recoil) - Finalizer: Fixed position of the "lives" statusbar (on the PCB it's on the top) (ID 03102) - Gauntlet/II . Fixed swapped stereo in Gauntlet and Gauntlet II. Thor (warrior)'s/red player's coin slot is toward the left, and specific sounds for that player (coin insert gong, death ditty, etc) should come from the left speaker, not the right. Verified with schematics. TODO: Merge Gauntlet audio into atarijsa.c since the Gauntlet audio hardware is clearly the direct ancestor of the Atari JSA-i audio board, and currently is missing most of the chip specific volume controls, etc which are already implemented in atarijsa.c. . Hooked up the YM2151 reset bit to the sound cpu in Gauntlet, and fixed sound reset to properly reset all the sound chips and volume latches. - Golly! Ghost!: Hooked up gun recoils. Also noted that the outputs for the remaining gun games are also in that area. Someone who can find the offsets should be able to hook them up. - Gunbuster: Hooked up all outputs - Heavy Smash: Fixed a palette problem since MAME 0.135u2 (ID 03824) - Kicker: Replaced 8k gfx1 roms with a 16k - Laser Ghost: Hooked up gun recoils - Legendary Wings: Fixed Z80 CPU1 clock speed, this fixes slows down during game (ID 03822) - N-Sub: Fixed color fade effect (ID 03619) - Operation Wolf 3: Added gun outputs (man that game is terrible) - Pachifever . Replaced ic48.50 rom with correct dump . Added correct MSM5205 clock value . Added second SN76489A chip (used for sfx) . Updated HW notes - Race Drivin': Fixed incorrect DSK ROM size, shuffled around some ROM mapping, added new ROMs to clone Race Drivin' Panorama (prototype, rev 2.1) that were incorrectly assumed to be identical to than Race Drivin'. The previously bad ROM checksums are now correct. Now the watchdog resets it instead of getting an address error. - Section Z: Fixed Z80 CPU1 clock speed - Skill Drop Georgia: Added PCB layout and board information - Sky Army: Fixed a screen Offset issue (ID 03684) - Space Gun: Hooked up outputs and made a few prototype functions to help in hooking up the remaining games. Someone familiar with the driver should take a look. Howard Casto hooked up a few, but they don't work like they should according to the comments. - Space Stranger: Added color overlay based on a photo - Super Contra: Fixed main character shadows (ID 03736) - Treasure Bonus: Reworked and cleaned-up the inputs. Most buttons have more than one single function. Added DIP locations. Figured out the following DIP Switches: Complete Coinage (1/2/5/10/20/25/50/100). Remote Credits (1/2/5/10/20/25/50/100). Minimum Bet (1/8/16/32). Max Bet (16/32/64/80). Demo Sounds (Off/On). Game Limit (10000/20000/30000/60000). Double-Up (No/Yes). Win Rate (84/86/88/90/92/94/96%). Double-Up Level (0/1/2/3/4/5/6/7). Double-Up Game (Dancers / Panties Colors / Cards / Seven-Bingo). Fixed inverted functions and buggy inputs. Added lamps support. Created button-lamps layout. Remapped inputs to reflect the controls layout. This way is more user-friendly since controls are straight with button-lamps. Added coin/keyin/keyout/payout counters. Removed the pulse limitation in the BET input. This allow it to work as BET and STOP2 properly. Added technical notes. - Turbo Out Run: Correct dipswitches in the most recently added set, and reorganized the sets so that the parent is the FD1094 317-0118 set, the "newest" set based on both EPROM and security chip part numbers. - Turkey Shoot: Fixed existing outputs (they needed inverted) and hooked up the rest, including the feather blower. - Versus Net Soccer: Added redumped sound rom - Status Fun Casino: Reworked inputs to match the standard. Lowered the 8085A CPU clock to 6220000 Hz to get it working properly. Added technical notes. - Dipswitch fixes in naomi.c, subsino.c, toutrun and vsnes.c - Fixed rom names in hotd2, kicker and skilldrp - Renamed (derbyocb) to (derbyoc), (derbyoc) to (derbyocw), (drgw3) to (drgw3100), (drgw3k) to (drgw3), (polaris) to (polarisa), (polarisa) to (polaris), (reelfun) to (reelfun1), (toutrun2) to (toutrun3), (toutrun1) to (toutrun2), (toutrun) to (toutrun1) and (toutrunu) to (toutrun) - Description changes of Battle of the Solar System (rev. 1.1 3/24/92), Cosmic Smash (JPN, USA, EXP, KOR, AUS) (Rev A), Derby Owners Club (JPN, USA, EXP, KOR, AUS), Derby Owners Club World Edition (Rev C) (JPN, USA, EXP, KOR, AUS), Draw Poker Joker's Wild (Standard), Polaris (First revision), Polaris (Latest version), Sega Strike Fighter (Rev A), The King of Fighters Neowave and Turbo Out Run (deluxe cockpit, FD1094 317-0109) - MAME . Removed some stray invalid code in start_profiler() (winmain.c) - Compiling . Have srcclean add missing newlines to end of .c files . Fixed the memory leaks with the strconv.c function by using osd_malloc() instead. Fixed other memory leaks as well. . Disable many unused variables as identifed by Cppcheck . Fixed compile error when DEBUG_GENERATION is defined . Fixed two VS2008 warnings (namcos23.c and rdpfb.c) . Fixed linking of chdman.exe and romcmp.exe with Visual Studio . Fixed Linux 64-bit compile issues in snes_snd - Debugger: Replaced the DEBUG_FRAME_DUMP define with a new DEBUG_PARSE_FRAME_DUMP which produces binary listings of each frame parsed. 0.137u3 - New games: Hammer and Treasure Bonus (Subsino) - New Non-Working games: Adders and Ladders, 2x Blox, Cleopatra Fortune Plus, 2x Eyes Down, Guilty Gear XX Accent Core, Happy Tour, Kick '4' Cash, Prize Space Invaders, Sega Strike Fighter, Senko No Ronde Special, 4x Strike it Lucky and 4x Ten Quid Grid - New clones: 10-Yard Fight '85 (US, Taito license), Vs 10-Yard Fight (US, Taito license), Carnival (Head On hardware, set 1), Carnival (Head On hardware, set 2), Derby Owners Club (JPN, USA, EXP, KOR, AUS Ver. C), Double Dragon (US Set 3), Iron Fortress (Japan), Megatouch IV Tournament Edition (9255-50-01 ROA, Standard version), Phraze Craze (set 2), Phraze Craze (Expanded Questions, set 2), Royal Card (austrian, set 1), Royal Card (austrian, set 2), Royal Card (austrian, set 4), Royal Card (austrian/polish, set 3), Super Shanghai 2005 (GDL-0031), Teenage Mutant Hero Turtles (UK 4 Players, set 2), Touchmaster 2000 (v4.00 Standard) and Treasure Island (Subsino, set 2) - 5A22 CPU: Fixed RTL opcode in-bank issue - F8 CPU: Disassembler improvements: Fixed branch target PC. Added BP, BC, BZ, BR, BM, BNC, BNZ and BNO mnemonics. Removed extraneous $ from 2 byte hex values. - I386 CPU: Fixed display of debug registers (D0-D7) in disassembly listings - LR35902 CPU: Fixed possible issue when checking for enabled irqs - SM8500 CPU: Fixed disassembly of extended instructions (1A, 1B, 4F) - Atari Audio Board II . Further refining of the Atari JSA speech and audio modifications. Hooked up the reset line for the YM2151. . Partly implemented 'stereo' gating (using YM2151 ctX lines) to POKEY and TMS5220 on Atari JSA-i sound board. Currently it is just 'mono' gating. Added TODOs for complete stereo gating and for the low-pass filter. - RF5C68 sound: Fixed the point at which the sample callbacks are triggered, and what channel is returned. The interrupts are masked or enabled based on what PCM memory bank is used, rather than the physical channel that was used. - TMS5110/TMS5220 sound . Massive merge of TMS5110 and TMS5220 cores, TMS5220 side only so far. Much code by Jarek Burczynski merged. Lattice Filter, Multiplier and clipping redone. TMS5220C multi-rate feature added. Now using the same LPC table file (and format, as created by Couriersud) as the TMS51xx is. Unvoiced-Voiced transitioning adjusted to match patent. Command handling redone to better match patent. Reasonably significant speech quality improvements: Separate tables for TMS5200, TMS5220 and TMS5220C are implemented, though all still need to be verified from hardware. . Tentative fix for TMS5220 VSM support . Fixed 5220C pitch table so unvoiced speech actually works. Oops. Should be a further quality improvement. . Cleaned up interpolation inhibit logic, may sound slightly better now. Minor fix to TMS5220C table so zero-energy frames are correctly detected. . Converted Atari System 1 to use the 'new' TMS5220 interface . Converted Atari System 2 to use the 'new' TMS5220 interface. Switched TMS5220 type to 5220C. . Switched Escape from the Planet of the Robot Monsters to use the new TMS5220 interface. This fixes garbled speech in Canal Mazes, as well as some other garbled speech in game (when saying 'throwing switch' for instance). . Updated Star Wars and The Empire Strikes Back to use proper clocks for the TMS5220 and the Pokey's . Fixed Victory startup self test issue after the TMS5110/TMS5220 core merge. FIFO must NOT be cleared on processing of a STOP frame, only on a new speak external command. Victory is pedantic about this. And in the process also fixed a bug regarding reading /READY state when not in speak external mode (the FIFO being full should NOT force /READY inactive in that case!). This fixes also speech and sound gets garbled when you use the shield (ID 00173). - 6840 PTM . Fixed interrupt flag behaviour and now allow fractional input clocks . Added partial 6840 PTM readback support to Exidy driver - 6850 ACIA: Improved handling of /CTS signal and fixed issue with transmission parity generation - exidy.c: Added partial 6840PTM readback support - funworld.c . Cleaned-up the flags for non working games . Modified the default lamps layout to include the bet lamp . Added 4 new Royal Card sets. Reworked parent/clone relationship (delete the old .cfg and .nv files to have them working properly). Splitted the Royal Card machine driver. This is needed to access different halves of the bipolar PROM. Now principal Royal Card sets have a working bet button. Added default NVRAM to the new sets. . Replaced the Fun World Quiz bad ROMs with good ones. Fixed graphics and colors and cleaned-up inputs. - mpu4drvr.c . Fixed serial comms. As a result, most games actually boot now. . Fixed colours . Fixed SAA1099 sound . Added Characteriser tables for all games (a complete implementation is still needed for most games) . Fixed 68000 device resets . Improved video rendering - naomi.c . Implemented various PVR TA registers hook-ups in the NAOMI driver . Implemented more regs, test mode now properly sets 640x240 resolution. Implemented fb pixel double, NAOMI test mode looks now correct. . Implemented 15/31 kHz selector in the NAOMI driver, makes Strike Fighter and Shootout Pool Prize to be bootable by the common user. . Added a RAM mirror that fixes 'The Typing of the Dead' booting . Supported the 1555 fb format in the NAOMI driver, needed by Cleopatra Fortune Plus. - nemesis.c: Removed palette gamma hack in video\nemesis - nss.c and snesb.c . Fixed a bug with un-inited DMA regs in the SNES driver, fixes at least a long-standing bug with nss_ssoc dimmed team selection screen. . Fixed ext latch behaviour in the SNES driver . Fixed various SNES SRAM issues . Fixed clipmasks in hires modes . Fixed RTL opcode in-bank issue in the G65816 CPU core (5A22 CPU) - playch10.c: Removed the bogus 2C0X PPU "color remap tables" in favor of external palettes containing data reverse-engineered (several years ago) from original hardware. The PlayChoice-10 BIOS now requires one palette (ID 00889). - subsino.c . Added technical notes about the CPU box. Minor clean-ups. Revision 8866 by robertof. . Full schematics made from the real PCB connections. They include Hex D-type flip-flops, Bipolar PROM, 3-STATE Octal D-Type latches and resnet connections. - vsnes.c . Removed the bogus 2C0X PPU "color remap tables" in favor of external palettes containing data reverse-engineered (several years ago) from original hardware. Each vsnes set now requires one of these palettes (ID 00803, ID 00270 and ID 01097). . Moved RC2C05 PPU-based protection into the PPU itself, rather than hacking it in at the driver level. . After exhaustive testing, completely sorted out the "palette" dipswitches (which are actually PPU type selection) on all games that have them. Added notes about these games in the comments. . Removed GAME_IMPERFECT_COLORS and GAME_WRONG_COLORS from all games, as they should all be 100% correct now. . Added a bit more information about the missing sets in the comments. . Fixed coin inputs in Vs. T.K.O. Boxing (ID 02457). Removed IMPERFECT_GRAPHICS flag since there's no legitimate reason I can see for it. Also, fixed manufacturer and description to match the title screen. - Live Quiz Show: Fixed sprites rom loading - Mortal Kombat 3 (bootleg of Megadrive version): Added missing 'Blood' dipswitch (ID 03782) - NAOMI Airline Pilots Deluxe BIOS: Added USA BIOS rom epr-21801.ic27 - The Mating Game: Added OKI6376 sound - Shadow Warriors: Added blending effect (ID 03813) - Shark Party: Improvements to clone (English, Alpha license): Created complete inputs from the scratch. Added coin/keyin/keyout counters. Added main game and double-up rates dipswitches. Added minimum bet dipswitches. Added maximum bet dipswitches. Added complete coinage and remote credits dipswitches. Added jokers and demo sounds dipswitches. Figured out and documented all the game outputs. Created proper button-lamps layout. Now the game is in full-working state. - Sunset Riders (bootleg of Megadrive version): Fixed stack vector so coins are now correctly handled (the game shall be fully playable now) - Touchmaster 2000: Fixed maincpu roms ($0/1) length to 512MB - Treasure Island (Subsino): Hooked up correct proms, correct gfx rom order and added bank select/enabled for the reels - Wai Wai Jockey Gate-In!: Fixed title screen colors - Added driver data class and save states to playmark.c, powerbal.c, pushman.c and pzletime - Fixed dipswitches and inputs (after verification of the Z80 or M68000 code) in mk3ghw, sauro, ssgbl, trckydoc and vmetal - Fixed rom names in area51, naomi.c and vicdual.c - Renamed (derbyoc) to (derbyocb), (mating) to (matingd), (matinga) to (mating), (phrcrazea) to (phrcrazeb), (phrcrazes) to (phrcrazev), (royalcrd) to (royalcrdd), (royalcdb) to (royalcrde), (royalcdc) to (royalcrdf), (royalcdp) to (royalcrdp) and (ss2005) to (ss2005a) - Description changes of 10-Yard Fight (World, set 1), Derby Owners Club (JPN, USA, EXP, KOR, AUS Ver. B), The Mating Game (v0.2), The Mating Game (v0.2d), Phraze Craze (Expanded Questions, set 1), Phraze Craze (Sex Kit, Vertical), Royal Card (austrian, set 5), Royal Card (austrian, set 6), Skill Trek (v1.1), Teenage Mutant Hero Turtles (UK 4 Players, set 1), Treasure Island (Subsino, set 1), Turnover (v2.3), Vegas Poker (prototype, release 2) and Vs. T.K.O. Boxing - Compiling: Added makefile PPC64 autodetection - MESS: Fixed keyboard detection in inptport.c (mainly for MESS) 0.137u2 - New Non-Working games: Print Club Pokemon B and Poker Monarch - New clones: Cherry Bonus III (alt, set 2), High Impact Football (rev LA2 12/26/90), Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 103, CN), Martial Masters (ver. 102, 101, 101CN), Moon Base (set 2), Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board), Rail Chase (World), Ridge Racer (Full Scale, 1993-12-13, World), Shark Party (English, Alpha license), Street Fighter (US, set 2) (protected), Super Draw Poker (set 2), Super Football Champ (Ver 2.4O) and Thrill Drive (JAB) - New drivers: poker72.c - 5A22 CPU . Changed name 'G65C816' to '5A22' . Added boundary checks for MVN and MVP opcodes when in M mode - 680x0 CPUs . BCD packed decimal now supported, including k-factor. . Improved FSAVE/FRESTORE including FPU reset when restoring a NULL frame . FREM instruction supported . Better disassembly of FPU instructions - 8080/8085A CPUs: Fixed debugger register setting (when setting A register in 8080 CPU, it sets F register) (ID 03227) - I386 CPU . Added CR4 register . Added bswap instruction . Added support for 4MB pages - I386/NEC disassembler . Made "MOV AL, offset" etc (opcodes A0-A3) properly indicate a segment override prefix . Correct the disassembly of various NEC-only instructions (mainly V25/V35-only instructions) . Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES on i86 and NEC from 15 to 8 - Polygon rendering: Make the parameter interpolation in poly.c more robust - aleck64.c . Reworked the entire Nintendo 64 renderer to be class-based. More cleanup to follow. . Disabled DRC versions of certain vector load/store operations in the RSP core in order to avoid geometry issues. . Fixed some massive texturing issues in the new Nintendo 64 / RDP renderer . Improved Rectangle drawing in the RDP core - astrocde.c, cidelsa.c: Fixed double-free error in render.c. This fixes the shifted gfx display in all Cidelsa games and some Astrocade games (ID 03768). - chihiro.c: Minor memory map update for running the BIOS - hng64.c . Replaced V30 CPU1 with V33 . Fixed samples rom loading in buriki, fatfurwa and sams64_2 - midtunit.c: Fixed TMS34010 parameter and VSync - namcos23.c . First extremely rough 3D hookup . Added some lighting . Hooked up tilemap scroll, improved raster IRQ. . Added 3D model scaling . C361 fixes and address auto-increment . Fixed the zoom value . First stab at Z-sorting . Push the zclip a little to avoid poly.c issues for now . Found "force poly to front" bit - nss.c and snesb.c . Greatly simplified the SNES tile drawing routines, fixed a couple of small bugs in mosaic support, reworked debug functions to be detected properly in all games. . Improved VRAM accesses (they're invalid during active display) and DMA transfers (not all addresses can be accessed). . Enabled PPU->CPU HDMA transfer and moved hdma variables to snes_state . Updated HDMA to init/update according to Anomie's docs . Enforced abus validity check on dma reads, fixed possible tile and vram out of bounds bugs. . Moved some more variables to driver state, set a few addresses as open bus and slightly changed SuperFX handlers not to access SNES WRAM. . Fixed a bug in SPC7110 handlers (now Tengai Makyou Zero test reaches RTC tests and fails them, instead of getting stuck at MUL/DIV tests). . Implemented very preliminary (and currently broken) SPC7110 RTC emulation . Updated DSP2 handlers to better reflect Overload's docs (problem and fix actually found by BYUU) . Updated add-on chips handlers to reflect BYUU's findings . Fixed reserved memory address read not returning open_bus; fixed a few add-on chip reads not returning open_bus. . Fixed a SRAM size problem and moved PPU registers handling to video\snes.c . Added save states to NES PPU and performed some minor cleanups . Added save states to the SuperFX CPU . Fixed to the DMA issue with S-DD1 games . Clear pending IRQ if the IRQ enable flag is disabled in the SNES driver . Moved the I/O update status inside a timer in the SNES driver . First step in supporting master cycle delays in the SNES driver . Basic implementation of the DMA master cycles steals in the SNES driver . Basic implementation of the memory map master cycle steals in the SNES driver . Fixed Act Raiser hangs up after hitting start (ID 03116) . Fixed David Crane's Amazing Tennis does not progress past initial text screen (ID 03396) . Fixed non-working input in Skins Game (ID 03397) - Championship Bowling: Fixed sample rom loading - Dragon's Lair: Added correct ROMs to clone (Italian) - Escape from the Planet of the Robot Monsters: Replaced TMS5220 sound with TMS5220C - Final Fight 2 (SNES bootleg): Fixed graphics glitch (ID 02134) - The Killing Blade: Changed parent game to the PGM BIOS - Poker Monarch: Heavily improved the game - Rail Chase: Redumped IC26 (ID 03787), added PCB board ID numbers and correct the rom names - Sky Army: Updated memory map to partially handle screen flipping - Stocker: Replaced dump with a good set. This fixes game fails it's ROM test (ID 00383). - Street Fighter: Fixed gfx3 rom loading in clone Street Fighter (prototype) - Super Draw Poker . Reworked inputs to match the standard poker inputs names/layout . Hooked the payout switch . Hooked a watchdog circuitery, that seems intended to reset the game and/or an external device. . Added machine start & reset . All clocks pre defined . Added AY8910 interfase as a preliminary attempt to analyze the unknown port writes when these ports are set as input. . Figured out the following DIP switches: Auto Bet (No, Yes). Allow Raise (No, Yes). Double-Up (No, Yes). Minimal Winner Hand (Jacks or Better, Two Pair). Deal Speed (Slow, Fast). Aces Type (Normal Aces, Number 1). Cards Deck Type (english cards, french cards). Max Bet (5, 10, 15, 20). . Added NVRAM support . Reorganized and cleaned-up the driver - Input port . Made input_device pointers non-volatile. Since we return pointers to them in response to input_device_add(), ensure that the pointers don't change after subsequent adds. . Hooked up Gun outputs (Recoil and LED) for Operation Wolf, Revolution X, Terminator 2 and Zombie Raid . Changed Operation Thunderbolt output names to something more appropriate (they were routed to LEDs) - Hooked up default NVRAM for Bubble Trouble, Championship Bowling (ID 03199), Golly! Ghost! and Super Draw Poker - Fixed dipswitches and inputs (after verification of the Z80 code) in anteater, armorcar, calipso, losttomb, moonwar, scobra, skyarmy, spdcoin, superbon and tazmania - Fixed rom names in 1943, 1943kai, rchase, scobra, stocker and supdrapo - Renamed (rchase) to (rchasej) and (sfus) to (sfu) - Description changes of G.E.A., Moon Base (set 1), Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK), Martial Masters (ver. 104, 102, 102US), Martial Masters (ver. 104, 102, 101CN), Street Fighter (World, Analog buttons), Street Fighter (US, set 1), Street Fighter (Japan) (protected), Stocker (3/19/85), Super Draw Poker (set 1), Thrill Drive (JAE), Touchmaster 8000 (v9.02 Standard) and Vapor Trail - Hyper Offence Formation (World revision 3?) - MAME . Fixed double-free error in render.c. This fixes the shifted gfx display in all Cidelsa games and some Astrocade games (ID 03768). . Removed texture_rectangle_32bit and fill_rectangle_32bit to hopefully generate a bug report which indicates any games using the modes. . Added a check for the OPTION_READCONFIG option before executing the code which would attempt to incorporate configuration file settings into the current configuration, because if OPTION_READCONFIG is set to false, then there is no reason to even try to do this as every single configuration file will be ignored (because config files have been turned off by OPTION_READCONFIG). . Added keyboard and keypad controls to XML output - MESS: Added a new input type IPT_KEYPAD for MESS, to distinguish between fully featured keyboards and keypad controllers. - Compiling . Disabled unused variables and code based on Cppcheck and VS2008 code analysis . Applied some Cppcheck fixes . Added gprof support to the makefile . Fixed small memory leak in mame.c . Made core_strdup use osd_malloc instead of malloc 0.137u1 - New games: Crusher Makochan, Fun World Quiz, Mouse Shooter GoGo, Mr. Dig, Tobikose! Jumpman and Video Quiz - New Working games: Moon War (prototype on Frenzy hardware) - New Non-Working games: Crisis Zone, Downhill Bikers, Multi Win and Spider-Man vs The Kingpin (Mega-Tech) - New clones: 5x Air Gallet, Berzerk (German Speech), Final Lap 3 (World, set 2), Hot Shocker, Jolly Card Professional 2.0 (MZS Tech), 3x Knights of Valour 2 / Sangoku Senki 2, Mazinger Z (Japan), 10x Pretty Soldier Sailor Moon, Raiden DX (US, Fabtek license), Rapid River (RD2 Ver. C), Royal Vegas Joker Card (fast deal, Mile), Star Gladiator (JAPAN 960627) and Virtua Striker 2 '99 (Revision A) - 680x0 CPUs . Rewritten to use SoftFloat instead of unportable native FP math . Support added for Motorola 96-bit extended floats . More addressing modes and conditions supported . Implemented FMOVECR . Added load extended PC relative indexed support . Cleanup some duplicated code - G65C816 CPU: Fixed decimal mode ADC/SBC behavior - I386 CPU . Fixed unaligned memory accesses and opcode fetches when they cross a page boundary. Previously, if pages were not ordered in contiguous RAM, then a cross-boundary read or write would read partially incorrect data or write some of the data in the wrong page. . Gave some fatalerror() calls in the i386 proper messages - MC68HC11 CPU: Implemented SUBD DIR & SUBD EXT opcodes (taitojc.c, hitpoker.c and skeetsht.c) - MN10200 CPU . Better IRQ generation and hookup to MAME IRQ system . Preliminary 8-bit timer hookup including prescalers and IRQs . Fixed issue with debugger not showing registers correctly - SSEM CPU (MESS): Fixed compilation of SSEM core with SSEM_DISASM_ON_UNIMPL (ID 03243) - TLCS-90 CPU: Added save states (dynax.c, nmk16.c and royalmah.c) - Z80 CPU: Fixed Z80-DMA Load and Continue commands - 8259 PIC: Changed default initial state of PIC8259 to STATE_READY - cave.c . Removed fake Region dipswitch that modified the region byte in the EEPROM each reset for Sailor Moon, Air Gallet and Mazinger Z . Split out different regions into clones with different default EEPROMs instead, and ensured all EEPROMs are factory default for that region (this is a cleaner solution and more accurately represents the PCBs). - ddenlovr.c and dynax.c: Replaced memory_set_bankptr with memory_set_bankp - funworld.c . Improvements to Funworld driver: Removed all hacks in the rom load section. Now the involved sets are properly loaded in the same way the hardware does. Replaced hardcoded values on graphics decode routines with proper RGN_FRAC calculations. Fixed graphics bitplanes to involved games. Added more hardware/technical info. Modify the mongolnw machine driver. Now can see it starts. Added Multi Win, from Funworld. The set is encrypted and use a custom CPU. Seems similar hardware than (multi) Joker Card. Added Fun World Quiz. Needs proper banking, and both graphics and bipolar PROM redumps. Reworked button-lamps layouts per game. Cleaned-up the code. Added specific button-lamps layout for bigdeal games. Added specific button-lamps layout for royalcrd & jolycdit, but there is a bug in the d-up select code that lights the wrong lamp. This is a leftover from jollycrd routines. Flagged vegasfte as GAME_NOT_WORKING, since is not receiving any coins or remote credits anymore. Added dual-state palette (addressable through PLDs). This allow to choose which half of the palette will be addressed. Splitted the main machine driver to cover both palette states. Reworked inputs / DIP switches for vegasslw, vagasfst and vegasfte. Created new default NVRAM for Royal Vegas Joker Card sets. These need to be configurated to be valid ones. Now vegasfte can receive remote credits, and all three in the family have valid min-max bet value and payout. Removed the not working flag from vegasfte. Improved colors for Big Deal sets. Correct colors for Royal Vegas Joker Card sets. Added a second set of Jolly Card Professional. Documented the code differences. Added another Royal Vegas Joker Card set, from Mile. These sets aren't intended to work with coins. Only remote credits are allowed. There are external modules that can manage up to 4 machines simultaneously, adding/removing/watching credits. Added default NVRAM to the above sets. Added proper inputs and DIP switches to vegasmil. Replaced the jolyc980 default NVRAM with one totally clean. Temporal and total meters are cleared to zero. . More improvements to Funworld driver: Improved inputs for Fun World Quiz. Proper handlers and banking for Fun World Quiz questions. Partial decryption for royalcdc and multiwin. Complete Fun World Quiz DIP switches with DIP locations. Promoted Fun World Quiz to working state. Added Fun World Quiz bookkeeping instructions notes. . Replaced M65SC02 CPU1 with M65C02 in bigdeal, jokercrd and mongolnw . Fixed rom loading in elephfam, jokercrd, jolyjokr, mongolnw, pool10b, royalcdb and soccernw . Added description and hardware notes for Fun World Quiz - hng64.c: Lighting calculations are now more accurate - metro.c . First step in refactoring the video system, replaced the video code with custom renderer functions. . Added preliminary layer clearance in Puzzlet - namcos23.c . Hook the 3D commands DMA . Roms reorganization . Moved months to mamedriv (housekeeping) . 500gp title screen says 1998, change driver to match and fixed 500 GP name . Fixed rom loading in finfurl2, finlflng, gunwars, motoxgo, panicprk, rapidrvr and timecrs2 - nss.c and snesb.c . Reworked SNES OAM drawing routines. Implemented correct range over and time over flags (sprite limits) and FirstSprite priority. . Moving more variables to driver data class and refactoring/cleaning up some code . Updated SNES sound device to use device handlers, to store its internals in a struct, and to save them. . Added some SNES internal refactoring, some new debug functions, a small mode7 fix. . Updated SNES DSP1, DSP2, DSP3, DSP4, OBC1, SRTC and ST010 addon chips to store their variables in struct and to save them. . Added proper sprite priorities. Added pseudo-hires effect. . Added save states to the SPC700 CPU core - pastelg.c . Implemented irq ack . Fixed for good the trasparency issues . Implemented gfx rom readback and PAL bank in Three Dealers Casino House - toaplan1.c . Fixed flipscreen support for all games. This fixes player 2 screen is not correct in cocktail mode and flip screen on the players screen is not correct (ID 00304). . Added minimal Z180 (3.5MHz) place holder for Fire Shark/SameSame and Vimana . Fixed VSync in Zero Wing - twincobr.c . Added 6845 CRTC interface . Restored correct DSP roms loads and proms for clone Flying Shark (bootleg). Added I8741 CPU4. . Fixed VSync - Assault: Added a kludge to workaround the cpu race condition/communication bug that was causing the Assault Plus mode select screen to be automatically bypassed (ID 00771). - Cyber Commando: Improved default control mapping - Cyber Sled . Limited the range of the analog inputs in Cyber Sled (the game glitches, causing you to move backwards if they hit the minimum / maximum). . Setup default key mapping in Cyber Sled to be similar to other dual joystick 'tank' style games, eg. Assault, rather than the default keyboard mapping where the sticks appear to be swapped. . Reworked the input ports a bit so that they include a common base rather than duplicating common inputs - Final Lap 3: Added new gfx roms - Frenzy: Re-added the color test mode - Landing Gear: Fixed crash, game now enters attract mode. - Lethal Enforcers II . Set display enable to be ON by default. LE2 doesn't turn it on until after the test screens, which would seem to indicate that the register should default to on, otherwise they're always invisible. . Added a kludge to use the right palette for the text layer in LE2, David Haywood haven't checked it, but he wonder if this could also be related to internal defaults for the mixer chip which the game doesn't change. This allows you to see the ram/rom tests anyway, which is better than an invisible startup. - Moonwar . Imported the same implementation of Moon War proto's spinner to Moonwar; works much more smoothly now. . Fixed very minor occasional glitches in moonwar/moonwara spinners caused by IPT_DIAL crossing the 0x00<->0xFF border . Added conditional Hyperflip button to Moonwar, only seems present in upright mode? (in cocktail mode the same input is used by Player 2 for a different button) (ID 03550) - Moon War (prototype on Frenzy hardware) . Dumped the original Moon War . Fixed spinner input . Added notes about spinner board, marked game as working. . Fixed very minor occasional glitches in Moon War spinners caused by IPT_DIAL crossing the 0x00<->0xFF border . Implemented many of the dipswitches for Moon War, cocktail/upright select is still missing, though I managed to trigger cocktail mode a few times by accident. Needs code study to see what it actually depends on. The p2 controls are separate in cocktail mode. - Pass: Enabled saves states (everything was already saved) - Prime Goal EX: Fixed missing buttons (ID 03775) - Super Contra: Verified all the clocks from the PCB as well as the vsync - Tekken: Fixed Kick button (ID 03762) - Uncle Poo: Implemented VRAM color bank select - Wardner . Added 6845 CRTC interface . Fixed Z80 CPU1 and YM3812 clock speeds and VSync - Winning Spike: Implemented Player 2 input buffer protection - Yie Ar Kung-Fu . Correct typo in verified clock rates . Tweaked music tempo slightly to better match reference recordings. This fixes music pitch is lower than PCB (ID 03371). - Added driver data class and save states to ddenlovr.c, dynax.c, metro.c, paradise.c, pasha2, pbaction and vmetal - Added NVRAM file to critcrsh, cybrcomm, cybsled, fhboxers, finalap2, finalap3, finalapr, findlove, fiveside, kiwames, luckywld, magzun, metlhawk, micrombc, myfairld, nclubv3, pclub2, seabass, sgunner, sgunner2, speedrcr (ID 01701), sss, techbowl and vmahjong - Dipswitch fixes in berzerk.c, funworld.c, namcos21.c, toaplan1.c and unclepoo - Changed the following games to a parent set: Air Combat (US), Grand Striker 2 (Europe and Oceania), The Killing Blade (ver. 109, Chinese Board), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX), Knights of Valour Plus / Sangoku Senki Plus (ver. 119) and Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104) - Renamed (aircombu) to (aircomb), (finalapr) to (finalaprj), (finalaprb) to (finalapr), (gstrik2) to (gstrik2j), (gstrik2e) to (gstrik2), (hotshock) to (hotshockb), (killbld) to (killbld104), (killbldt) to (killbld), (kovj) to (kov100), (kov2) to (kov2100) and (raf102j) to (photoy2k102) - Description changes of 500 GP (5GP3 Ver. C), Air Gallet (Europe), Final Lap 3 (World, set 1), Hot Shocker (bootleg), Jolly Card Professional 2.0 (Spale Soft), Mazinger Z (World), Photo Y2K (ver. 102, Japanese Board), Pretty Soldier Sailor Moon (Ver. 95/03/22B, Europe) and Pretty Soldier Sailor Moon (Ver. 95/03/22, Europe) - MAME . Made the identation of the CPU device in -listdevices the same like the others (clifront.c) . When the usage is printed, the name displayed was "png2bdf" instead of "png2bdc"; this changes it by retrieving the name of the executable at runtime, so it will always be correct now. . Updated DIPs based on Stephh's notes and fixed location status. Added GAME_NO_COCKTAIL flag until flip screen is implemented. . Fixed MESS Scroll Lock keyboard toggle locked also various PC-based drivers until you press Scroll Lock to toggle the keyboard (ID 03776) - Compiling . Several cleanups based on Cppcheck and VS2008 code analysis . Made the "split" (split.c) return the actual result instead of just 0 . Fixed broken build for G4 (altivec) (ID 03793) . Fixed a potential memory leak in sdlwindow_video_window_create() . Added support for kFreeBSD (ID 03792) 0.137 - New games: Five Clown - New Working games: Fantastic Journey (ver AAA), Lethal Enforcers II: The Western (ver JAA) and Magical Odds - New Non-Working games: Gunmen Wars and Joker Master - New clones: Biaofeng Zhanjing (Chinese bootleg of The Punisher), Cherry Master I (E-Z Spin bootleg / hack), Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs), Five Clown (english, set 2), Five Clown (spanish hack), Jolly Joker (40bet, croatian hack), Poker Master (set 1), Poker Master (set 2) and Smash T.V. (rev 3.01) - New drivers: 5clown.c - 680x0 CPUs . Show FPU registers in the debugger for 68030+ . Improved disassembly for various FMOVE forms - 68020 CPU: Fixed a 32-bit address displacement's upper 16-bit is desappear in the disassembler (ID 03533) - Atmel 8-bit AVR CPU: Slightly fixed interrupt handling and added SBIC and MUL opcodes - H8/3334 CPU: Added analog input ports - Z80 CPU . Fixed Z80 DMA ready signal handling . Added ARDY/BRDY signal read handlers to Z80 PIO . Added Z80SIO register access functions to prevent trampoline functions (Updated dlair.c and mcr.c) - UNSP CPU: Added FJMP/JMPF opcode to the SunPlus u'nSP core - aleck64.c: Performed an initial code cleanup pass on the N64 rendering code to make use of booleans and inline variable instantiation, and removed a number of unused variables that were exposed as a result of the latter. - funworld.c . Added external default NVRAM support to the following games: bottle10, bottl10b, elephfam, elephfmb, jollycrd, jolyc3x3, jolyccra, jolyccrb, jolycdev, jolycdib, jolycdit, jolyjokr, jolyjokra, jolyjokrb, lluck3x3, lluck4x1, magicrd2, pool10, pool10b, pool10c, pool10d, potgame, royalcrd, royalcdb, sjcd2kx3, tortufam, vegasfst, vegasfte and vegasslw. . Changed default settings for some games, now that NVRAM is loaded externally . Magic Card II (bulgarian): Fixed unable to properly initialize machine - goldstar.c: Implemented NMI enable flag in Lucky 8 Lines and Magical Odds, fixes logic quirks in the latter. - hng64.c: Added support for the 'simple' rowscroll mode used by sams64_2 - namcos23.c . More IRQ tests pass . Gunmen Wars I/O board runs and syncs . SH-2 shared RAM added for Gunmen Wars . C422 pass IRQ test . Preliminary SH-2 hookup for GMEN games. SH-2 boots and copies the loader to private RAM then jumps to it. Transfer protocol for main program not yet understood. . Final Furlong 2 has a GMEN board and camera; update it to use that subdriver. . Hooked up start/coin/buttons for Gorgon . Fixed Panic Park crash . Enabled I/O board for timecrs2c so it can coin up . Cleanups and added dips . Updated Guru Readme . Final Furlong 2: Added H8/3334 CPU3, SH-2 CPU4 and ioboard rom asca-3a.ic14 (256k) . Panic Park: Fixed textile rom address - nss.c and snesb.c . Simplified the drawing routines . Added support for offset-per-tile . Cleaned up the code . Fixed remaining issues in hires modes . Fixed serial joystick reads . Slightly simplified palette handling . Added very preliminary driver_data class for SNES based drivers (it only contains input-related items for the moment, because these are needed to add support for additional controller types in MESS) . Fixed Offset-per-tile graphics . Fixed scrolling problems . Refactored joypad inputs to be consistent with other input devices (used in MESS) . Fixed OAM overflow - stv.c: Written a per-pixel function for the irq system in the driver, disabled by default. - toaplan1.c . Fixed dipswitches and inputs in Vimana (after verification of the M68000 code) . Improved MCU emulation to correctly handle coinage based on dipswitches settings and Territory Jumper. - zr107.c: Fixed shared roms loading in Midnight Run and Winding Heat - Five Clown . New driver for Five Clown, from IGS. This is a dual 6502 system with CRT controller, AY8910 and OKI M6295. Main program, graphics and sound samples are encrypted. . Hooked both 6502 CPU's, M6845 CRT, both PIA's 6821, OKI6295 and AY8910 latches . Decrypted main program and bulk GFX . Decoded GFX and color PROM . Worked inputs from the scratch . Hooked DIP Switches banks 2 & 4 and ports $C400 & $CC00 . Hooked proper interrupts for audio CPU . Found the sound samples decryption algorithm . Added NVRAM support . Added a complete PCB layout, game and technical notes - Joyful Road: Implemented sound NMI enable flag - King Derby (1981): Implemented sound, 'key matrix' inputs and coins in clone King Derby (1986 Taiwan bootleg) and decrypted the color prom. Game can be considered as working right now. - Magical Odds . Confirmed and hooked up I/O ports in Magical Tonic / Odds, doesn't work due of nested NMI . Implemented NMI enable flag, fixes logic quirks in the latter. . Improved graphics - The Ocean Hunter: Redumped CROMs 5-16 as 64Mb - New Cherry Gold '99: Improvements to the unkch1/4 sets - Wave Shark: Fixed the texture ROM loading/order. Textures look better now, and the ROM check passes. - Implemented default EEPROMs for asterix, bubblem, deco_mlc.c, esd16.c, gijoe, gticlub, hangplt, konamigx.c, lethalen, moo.c, mystwarr.c, plygonet, pzletime, rabbit, rungun, simpsons, tmnt.c, vendetta.c, xexex and xmen - Dipswitch fixes in goldstar.c, kingdrby.c, namcos23.c, snesb.c and toaplan1.c - Fixed rom names in froggers2 - Renamed (jetwave) to (waveshrk), (stadhr96) to (stadhr96j) and (stadhr96a) to (stadhr96). - Description changes of Lethal Enforcers II: The Western (ver JAA), Magical Odds (set 1), Magical Odds (set 2, alt hardware), Rabbit (Japan), Stadium Hero 96 (Japan, EAD), Stadium Hero 96 (World, EAJ), Vimana (old set), Wave Shark (UAB, USA v1.04) - MAME . Made device->tag and devconfig->tag into private member variables (m_tag) . Added inline tag() function to return a const char * version. Updated callers to use this instead of directly accessing tag.cstr() which was awkward. - Compiling: Fixed Fortify-reported SDL stack smash - Debugger: Fixed memdump command 0.136u4 - New games: Uncle Poo - New Working games: Bugs Fever - New Non-Working games: Azumanga Daioh Puzzle Bobble, L.A. Machineguns, The Ocean Hunter and Royal Gum (Italy) - New clones: Alien Invasion, Aracnis (bootleg of Scorpion on Moon Cresta hardware), Armed Police Batrider - A Version (Taiwan), Blades of Steel (version L), Bugs Fever (Version 1.6R CGA), Champion Number (V0.74), Cherry Master (Fun USA v2.5 bootleg / hack), Cherry Master (Watermelon bootleg / hack), Jolly Joker (40bet, croatian hack)(not activated), King Derby (1986 Taiwan bootleg), Maya (set 2), Moon Cresta (Nichibutsu UK), Pit Fighter (rev 9), Pushman (Top Tronic license), Safari (set 2, bootleg?), Smash (Crash bootleg), Soul Calibur (SOC14/VER.B), The Pit (bootleg on Moon Quasar hardware), Time Crisis 2 (TSS4 Ver. A), Touchmaster (v2.2-01 Standard), Touchmaster 4000 (v6.03 Standard) and X-Men: Children of the Atom (Japan 950105) - New drivers: poo.c and rgum.c - H8/3xx CPUs . Fixed stack trashing when simultaneous IRQ sources asserted . Added bild and bist opcodes . Fixed unknown H8/3xx opcode (PC=2) 100 (motoxgo, timecrs2b) (ID 03249) - I386 CPU: Correct LLDT instruction. This fixes sets up the LDTR base and limit values correctly, fixing use of the LDT. - Z80 CPU . Complete rewrite of the Z80-PIO implementation. The handshaking signals are now more accurately emulated. . Implemented Z80-DMA interrupts . Fixed Z80CTC read handler - Discrete sound: Fixed a bug in emu\sound\disc_mth.c. This affected Spiders fire sound (ID 03727). - ES5505/6 sound: Added save state - K051649 sound: Fixed bogus for loop in device reset - Namco sound: Fixed save state support in custom NAMCO devices (50XX, 51XX and 53XX) - SN76489 sound . Fixed TI PSG (SN76489 and friends) noise and square-wave period to be maximum length when period register is set to 0 . Fixed white-noise phase/XOR issue: Got rid of noise XOR/XNOR select, as all chips seem to use XOR. . SN76489 wasn't using the correct noise taps (now matches SN94624, still need to test a real chip). Removed a piece of useless code, and fixed a comment. - 8259 PIC: Teplaced pic8259_set_irq_line with pic8259_irX_w write line handlers. Updated device to use devcb calls. - 8253 PIT: Updated device to use devcb calls, cleanups. - DECO16IC: Implemented device version of the deco16ic tilemap chip and renamed decodev->deco16ic. - INS8154: Moved ins8154 emulation from MESS to MAME, needed by future drivers. Updated device to use devcb calls, cleaned up. - deco32.c: Made driver independent of deco16ic.c (it only needed a drawing routine) and removed deco16ic.c now that it is not needed anymore - deniam.c: Implemented proper irq ack - funworld.c . Fixed Jolly Joker graphics and colors . Added a new croatian set of Jolly Joker with maximum bet = 40 . Moved the hardware description and tech notes to the ROM_LOAD section . Added a external default NVRAM for Jolly Card Professional 2.0 . Updated technical notes - galaga.c: Fixed save state support (ID 03268) - hng64.c . Added sub-page texture indexing. Fixes many texture lookups in roadedge and xrally. . More accurately emulated intrinsic camera matrix . And added an initial implementation of hardware lighting - liberate.c: Added save states - macs.c . Implemented proper BIOS/Cart ROM bankswitch in the driver, this improves program logic in Kisekae Mahjong. . Removed the coin latch kludge in the driver . Fixed user2/3 rom loading - megadriv.c: Fixed compile by removing "static" - meritm.c: Added scanline timer-based vblank interrupt to work around the broken V9938 interrupts. Megatouch games are now working again. - micro3d.c: Fixed assert in debug build (ID 03749) - namcops2.c . Added DVD images for netchu02, soulcl2a, tekken4b, tekken51, sukuinuf and soulclb3 . Moved Kinnikuman Muscle Grand Prix and Taiko No Tatsujin 9 to System 256 - namcos23.c . motoxgo and timecrs2 are now able to sync up and communicate with the emulated JVS I/O board . Fixed all games to run VBL toggle . Documented data and point ROM checks for future use . Panic Park uses the motoxgo I/O board, now it syncs too. . Added a whole bunch of ram, chips and data roms mappings . Added Gorgon JVS I/O board and NVRAM for Gorgon. Final Furlong now gets farther. . Improved "Gorgon" h/w support . Get Gorgon games out of service mode, fix finlflng sound ROM loading. . Improved documentation, fixed a few POST fails . Documented clocks and syncs measured by Guru . Added comments about the irq testing code . Comment the probable dips a tad better . Fixed the data rom mappings . timecrs2c reaches the test mode . Fixed Time Crisis 2 coin input . Guru documented gun I/O boards . Added working inputs for TC2 test mode . Fixed unknown H8/3xx opcode (PC=2) 100 (motoxgo, timecrs2b) (ID 03249) - naomi.c . Fixed ROM mirroring in gram2000 and friends . Preliminary hookup of live decryption. Decryption + decompression is not yet supported so some games still load trojaned data instead. . Fixed decrypt method 2 and added many more game keys . Converted GD-ROM games to use real PIC dumps - nss.c and snesb.c . Minor SNES refactorization . Temporarily reverted implementation of mult/div through timers since it breaks some SNES games on the MESS side - Atomic Point and Snapper: Fixed duplicate save state entry (ID 03740) - Attack Ufo . Imported MOS6560 device emulation from MESS for Attack Ufo . Removed the existent custom audio/video emulation. - Backgammon: Fixed access violation after OK (ID 03739) - Big 10: Implemented irq ack - Big Run: Fixed missing gfx and terrible music (ID 03697) - Bugs Fever: Added missing gfx1/2 and oki roms - Cadash: Hooked up bare bones Z180 (4MHz) communication CPU (network) - Cow Race (1986 King Derby hack): Merged driver with King Derby - Formation Z: Implemented irq ack - Hard Head: Fixed Z80 sound clock speed and VSync to match original PCB readings - Hexa: Merged driver with Arkanoid - Ixion: Fixed inputs (ID 03731) - Lucky Girl (newer Z180 based hardware): Made some improvements (gfxs). Fixed visible area. - Master of Weapon: Fixed game freezes (ID 03699) - Mortal Kombat 3 (bootleg of Megadrive version): Mapped player 2 inputs and buttons 4-6 - Mug Smashers: Enabled save states (everything was already saved) - Operation Thunderbolt: Enabled save flag (everything is properly saved, but it seems I forgot about this driver when I device-fied Taito video chips) - Pushman: Added priority prom - Quantum: Reduced flickering (video\avgdvg.c) (ID 03634) - Stadium Cross: Fixed inputs (ID 03034) - Spiders: Fixed a bug in emu\sound\disc_mth.c. This affected Spiders fire sound (ID 03727). - Super Eagle Shot: Fixed broken attract mode (ID 02960) - Tecmo World Cup '90: Fixed Z80 CPU1/2 clock speed and VSync to match original PCB readings - Uncle Poo . Added preliminary DIP coverage (lives/coinage/test mode) and Player 2 control fix . Added fresh driver notes based analysis of the Z80 code - Converted the following drivers to use the device-fied video chips: backfire, boogwing, dietgo, mirage, pktgaldx, simpl156.c, supbtime.c and tumblep - Converted the following drivers to use device versions of the deco16 video chips: cbuster, cninja.c, dassault.c, funkyjet.c, rohga.c and vaportra - Added driver_data struct and save states to the following drivers: attckufo, dietgo, lkage, lockon, lsasquad.c, m79amb, macrossp.c, madmotor, marinedt, markham, matmania.c, mayumi, mazerbla.c, mcatadv.c, megazone, meijinsn, mermaid.c, metlclsh, mexico86.c, mikie, mirage, mjsister, mogura, mole, momoko, mouser, mrflea, mrjong, munchmo.c, mwarr, news, nightgal.c, nycaptor.c, pktgaldx, skyfox, supbtime.c and tumblep - Added driver_data struct to mgolf, minivadr, mosaic.c, mrdo, nitedrvr and nmg5.c - Added driver_data class and save states to the following drivers: backfire, boogwing, cbuster, cninja.c, dassault.c, dblewing, deco156.c, ohmygod.c, ojankohs.c, olibochu, oneshot.c, onetwo, orbit, othello, othldrby, rohga.c, simpl156.c, tumbleb.c and vaportra - Added driver_data class to funkyjet.c, nemesis.c and nyny - Rom names fixes in bladestl.c, namcos23.c, naomi.c and twincobr.c - Fixed dipswitches and inputs (after verification of the Z80 or M68000 code) in exerion, fshark, gulfwar2, rallybik, truxton, twincobr, wardner and zerowing. - Fixed dipswitches in fireshrk and macs.c - Fixed inverted buttons 1 and 2 on f1gp, f1gp2 and sformula. They are Jamma standards boards: Brake button is wired to pin 22 and acceleration button to pin 23 which are respectively button 1 and 2 in a jamma standard pinout. - Renamed (alieninv) to (alieninvp2), (pitfight) to (pitfight7), (soulclbrb) to (soulclbrb2), (tm4k) to (tm4ka), (xmcotaj2) to (xmcotaj3), (xmcotaj1) to (xmcotaj2) and (xmcotaj) to (xmcotaj1) - Description changes of Armed Police Batrider - A Version (Japan) (Mon Dec 22 1997), Bugs Fever (Version 1.7X CGA), Jolly Joker (98bet), King Derby (1981), The Last Blade / Bakumatsu Roman, Moon Cresta (Nichibutsu USA, unencrypted), Namco Classic Collection Vol.1/2 (ID 03748), The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero, Zero Wing (single players) and Zero Wing (dual players) - MAME . Added MAME-ified version of SoftFloat library (lib\softfloat\softfloat.c). NOTE (R. Belmont): There's no portable way to use the host's FPU for high-precision floating point. GCC has extensions which map to Intel's 80-bit extended floats, but support on non-x86/x64 is sketchy and MSVC doesn't support floats > 32 bits at all. I plan to use SoftFloat for the 68030/040 FPU up front, but it will also be useful in the future for emulating the 386/486/Pentium/etc FPUs (Bochs uses it for exactly that purpose). . Removed window config from video_config . Changed MDRV_DRIVER_DATA to reference driver_data::alloc instead of just providing a size. This function is called to allocate the driver data. This allows objects to be embedded in the state data and be properly initialized. . Moved driver data allocation after device list construction so that devices can be found when the driver data is constructed. . Correct default assignment of F10 as the default throttle on/off key for MAME. The #ifdef MESS is needed here due to it's unique old/new UI setup. . Fixed NOWERROR=1 casues -fno-strict-aliasing to be dropped (ID 03698) . Moved print_game_categories into info.c, since it can be used by any driver anyway. . Correct visible area and timer speeds to make the fix up some audio/video problems . Hooked up vblank and just enough controls to pass error screens - Compiling . Moved global new/delete operators into inlines in emualloc.h to avoid link errors with certain architectures. . Some minor cleanup/normalizing of emualloc in general . Changed all driver_data structs into classes with a simple constructor and a static allocation function. . Tidied up includes in a number of files in src\osd\sdl - Debugger . Make mips register names accessible in the debugger expressions . Fixed a bug in debugint.c: Actually make Del and BS delete the last character. . Fixed overloaded C++ operator new/operator delete is too restrictive (ID 03746) - MESS: ui.c, ui.h, windows/input.c: Removed ui_use_new_ui check used by MESS code. Moved ui_mess_handler_ingame call in proper place, so device UI callbacks works again. Removed toggle of menu bar (MESS related). 0.136u3 - New games: Ghost Chaser Densei (SNES bootleg), Skill Drop Georgia and Treasure Island (Subsino) - New Working games: Logic Pro Adventure, Midnight Resistance (bootleg with 68705), Mortal Kombat 3 (bootleg of Megadrive version), Pachifever and Sexy Boom - New Non-Working games: Crackin' DJ, 3x Joker's Wild, Magical Tonic / Magical Odds?, Mr. Kicker and Neptune's Pearls 2 - New clones: Asterix (ver AAD), Bagman (bootleg on Crazy Kong hardware), E.D.F. : Earth Defense Force (bootleg), Fantastic Journey (ver AAA), Ghosts'n Goblins (World? set 3), INDY 500 Twin (Revision A, Newer), Name That Tune (3-23-86), Out Zone (set 5), Pang! 3 (Euro 950601), Raiden (US, SEI8904 + SEI9008 PCBs) and Spiders (set 3) - New drivers: neptunp2.c and sigmab52.c - Am29000 CPU: Fixed PPC GCC compile error - APEXC CPU: Fixed disassembly of APEXC: 1. Added pseudo PC register for the debugger, it will now highlight the next instruction to be executed. 2. Added "normal" addresses to disassembler output, so anyone can see the program flow. - I8021/22 CPUs: Added Intel 8021/8022 CPU types - Panasonic MN10200 CPU: Added preliminary Panasonic MN10200 CPU core - PDP1/TX0 CPU core: Fixed disassembly of PDP1 and TX0. PDP1 display the PC in hex as well as octal. - ZSG-2 sound: Added preliminary Taito ZOOM ZSG-1 sound system: Added and hook up ZOOM ZSG-2 skeleton. Doesn't do much at the moment, but the increase in documentation value is significant (we're documenting the sample compression format, for one thing). - 6522 VIA: Read port A/B only if some pins are inputs - 8255 PPI: Clear output lines to 0 on write to mode register, and float input lines to 1. - Sega 315-5248, 315-5249 and 315-5250 custom ICs: Converted ICs to be devices and updated drivers accordingly - adp.c . Hooked up (with a hack) gfx rom in HD63484 memory map . Hooked up coin input and start input in Skat TV - astrocorp.c . Added frame buffer . Fixed sprite list end, negative coordinates and wrap around . Added battery backed RAM - dooyong.c: Fixed audio regression in Gulf Storm and The Last Day (ID 03706) - gticlub.c, nwk-tr.c and zr107.c: Converted GTI Club driver to use the Konami 001604 device and removed the old code. - hng64.c: Initial implementation of 0x10-sized palette pages for 3D objects. This makes most environment colors correct in Samurai Shodown 64. - hornet.c: Converted hornet.c to use the Konami 037122 device and removed the old code - namcos11.c: Driver now use real C76 BIOS for audio and I/O - naomi.c: Implemented Actel FPGA ID, used by some NAOMI games for accessing a special ROM check mode. - nss.c and snesb.c . Added a couple of registers to snes_ppu struct . Moved color blending (background & subscreen color addition/subtraction) at the end of the drawing process. . Removed some unused (and not working anymore) debug code . Fixed the remaining debug functionalities . Moved colour struct to be another layer (simplifying some code) . Updated hires blending to work with two pixel at time . Fixed clipmasks with hires modes - segas16a.c: Added save states - seibuspi.c: Minor information update for Viper 1 games - system16.c: Added driver data struct to system 16/18 bootlegs, removed most unused code and splitted dependences of system16 games from bootleg ones. - taitogn.c and zn.c: Added preliminary Panasonic MN10200 CPU core and Taito ZOOM ZSG-1 sound system - Big Striker: Fixed video emulation in clone Best League (bootleg of Big Striker, World Cup) - Car Jamboree: Added XTAL, correct second Z80 and the 2x AY-3-8910A speed and added DIP locations - Crazy Kong Part II: Changed Crazy Kong (bootleg on Galaxian hardware) and Crazy Kong (bootleg on Moon Cresta hardware) to clones of Crazy Kong Part II - Dock Man: Changed Port Man (bootleg on Moon Cresta hardware) to a clone of Dock Man - Evil Stone: Fixed missing sound (ID 03704) - Fantastic Journey: Changed Gokujyou Parodius to a clone of Fantastic Journey - Gorf: Fixed the 'Bonus Life' dipswitch. It's state was inverted. - Giant Gram 2000: Dumped IC1 and document FPGA-provided "ic1" data. Test mode returns IC1 as bad dump, it looks like that is data provided by the Actel A54SX32 FPGA present on board and mirrored there. Provided as documentation until we know more about it. - Hanarok: Implemented flip screen - Hotdog Storm: Documentation update, IE: The PCB ID number and tile map chip info - INDY 500 Twin: Added Sega ID# for newly added version of INDY 500 and correct the spelling of attract - I, Robot . Added XTAL values from manual and hooked up to driver for main/sound CPU . Added/verified DIP locations per manual and test mode - Joker's Wild (B52 system, set 1): New driver for Sigma B52 system. ACRTC implementation is a bit hacky due to its preliminary emulation status. - Kuri Kinton: Fixed 'SERVICE SW ERROR' (ID 03692) - Lethal Enforcers: Verified clocks and vsync from orginal PC. Fixed Z80 CPU2 clock speed and VSync. - Mr. Do!: Fixed incorrect XTALs cause for problems with refresh rate and game speed (ID 03724) - Rock Climber: Updated memory map - Run and Gun: Fixed text tilemap lookup for big-endian targets - Space Harrier: Fixed crashes when a specific sample is being played during gameplay in debug mode (ID 00993) - Treasure Island (Subsino) . Added proper inputs. Added coin/keyin/keyout/payout counters. Limited the bet and coin pulses to avoid repeats and coin jams. Added complete coinage and keyin DIP switches. Added main game and double-up rates DIP switches. Added minimum bet DIP switches. Added maximum bet DIP switches. Added main game and double-up limit DIP switches. Added payout mode and auto take DIP switches. Added DIP locations as seen in the settings mode. Added demo sounds DIP switch. Created proper button-lamps layout. Added technical notes. Some clean-ups. . Implemented reels, same as Goldstar driver. . Fixed bonus game gfxs - Trojan: Fixed long-standing (day one?) bug with ADPCM samples - World Rally: Added/verified DIP locations - Added driver data struct to segahang.c, segaorun.c, segas16a.c, segas18.c, segaxbd.c, segaybd.c and system16.c - Fixed dipswitches and inputs (after verification of the Z80 code) for bagmanmc, bongo, dambustr, dkongjrm, porter, espial, espialu, ladybugg, netwars, ozon1, rockclim, scramb2, scramblb, tazzmang and vpool - Dipswitch fixes in aladbl.c, astrocde.c, carjmbre.c, dambustr.c, espial.c, galaxold.c, pachifev.c and namcos11.c - Renamed (countrb2) to (countrunb2), (countrnb) to (countrunb), (ddenlvrj) to (ddenlovj), (ddenlvrk) to (ddenlovrk), (ddenlovb) to (ddenlovrb), (destryea) to (destryera), (firetpbl) to (firetrapbl), (freekcb2) to (freekickb2), (freekckb) to (freekickb), (freezea2) to (freezeat2), (freezea3) to (freezeat3), (freezea4) to (freezeat4), (freezea5) to (freezeat5), (freezea6) to (freezeat6), (freezejp) to (freezeatjp), (indy500) to (indy500to), (jolyjkra) to (jolyjokra), (pang3) to (pang3n), (turbosb6) to (turbosub6) and (turbosb7) to (turbosub7) - Description changes of Bagman (bootleg on Moon Cresta hardware), Best League (bootleg of Big Striker, Italian Serie A), Best League (bootleg of Big Striker, World Cup), Donkey Kong Jr. (bootleg on Moon Cresta hardware), Fantastic Journey (ver EAA), Pachifever, Pang! 3 (Euro 950511, not encrypted), Scramble (bootleg on Galaxian hardware), Tank Battle (prototype rev. 4/21/92), Tazz-Mania (bootleg on Galaxian hardware) and Viper Phase 1 (USA, New Version) - MAME . Simplified/combined MAME and MESS code: Moved compatibility validation into MAME core from MESS. Made GAME_NO_SOUND check done on MESS too. Removed MESS dependent checks. Renamed GAME_COMPUTER_MODIFIED to GAME_UNOFFICIAL to mark unofficial hardware modifications. Removed GAME_COMPUTER it is distinct by IPT_KEYBOARD. Added GAME_NO_SOUND_HW (to mark that there is no sound hardware) and marked drivers in dotrikun.c, minivadr.c and tgtpanic.c as such. Removed GAME_SHARE_ROMS flag and commented old check for duplicate ROM entries. Moved natural keyboard support from MESS to MAME. Moved OSD file functions and clipboard access functions into OSD core. Significantly reduced the number of new OSD functions needed by MESS. . Cleaned up comments refering to old driver names, and updated clone names in drivers from 0-K. - Compiling . Fixed DISTRO=gcc44-generic make shortcut to use GCC-4.4 properly (-V 4.4 does not work for linking) . Workaround for GCC-4.3 reporting a false warning on solaris: disable -Werror for this file only. . Cleaned up SDL OSD functions after merging in code from MESS . Fixed OS2 auto-detect - Debugger . Minor changes for internal render debugger: ui_input_frame_update is now global. Moved element_component from rendlay.c to rendlay.h. Added ability to rendlay.c to define "container" components. These simply provide a render_container. . Added DEBUG_FLAG_OSD_ENABLED to allow coexistence of debuggers going forward. Replaced all occurrences of OPTION_DEBUG in src\osd\* by checking machine->debug_flags. Replaced all occurrences of DEBUG_FLAG_ENABLED in src\osd\* by DEBUG_FLAG_OSD_ENABLED For the time being, DEBUG_FLAG_OSD_ENABLED is default (set in mame.c) . Internal debugger using the MAME rendering infrastructure: Added support for arbitrary number of containers for render_target. Added command-line parameter -debug_internal (-di) to use the internal debugger when in debug mode. Internal debugger supports all views except memory view. Added "Debug" view to layout/vertical.lay to create more place for debug views in vertical games. NOTE: The colors are ugly. Font rendering needs improvement. There are no shortcut keys right now. There is still a lot of room for more improvements. However, it works and does not depend on any ui toolkit. The interface has been designed to support displaying views programmatically e.g. from the ui. Short HowTo: Start MAME with "-debug -di". Console, register and disasm views will be shown. Place them by dragging the view on the title bar. Views can be resized by dragging the bottom-right yellow square. The view having the focus has a green background title bar. Hit "Tab" (IPT_UI_CONFIGURE) to show the menu. Console and disasm views support a very simple facility to support entering commands and addresses. Just start typing. Hit "enter" when finished. . Fixed immediate crash on startup of GTK debugger 0.136u2 - New games: Penguin Adventure (bootleg) - New Working games: Battle of the Solar System, F-15 Strike Eagle, Island 2 (060529, banking address hack), Tank Battle and Versus Net Soccer - New Non-Working games: Gundam Wing: Endless Duel (SNES bootleg), King Tut (Australia), Money Bank (Australia), Mortal Kombat 3 (bootleg of Megadrive version), Pinkiri 8 and Quarter Horse Classic - New clones: Cube Quest (12/30/83), Fortune I (PK485-S) Draw Poker, Insector X (Japan), Poker Ladies (Censored bootleg) and Viper Phase 1 (USA) - New drivers: kongambl.c, pengadvb.c and pinkiri8.c - ARM7 CPU: Added preliminary SA-1110 support (Interrupt Controller) - SN76489A sound . Fixed SN76489a periodic noise once again (and simplified a bit of code), now should be closer to or match real chips as sampled. Added true clock divider emulation, so emulation may be a bit slower. . Changed the following games to use the 76489A variant (verified on PCB): docastle, dorunrun, dowild, gberet, idsoccer, jailbrek, jjack, kicker, kickridr, mrgoemon and yiear - S14001A sound: Updated comments; got rid of the squealing noise (hidden behind a #define now, code is still there) until some other issues can be resolved. - 6526 CIA: Refactored the interface, adding SP/CNT callbacks. Fixed serial transfer. (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) - HD63484 video controller (adp.c and shanghai.c): Converted HD63484 ACRTC to be device - MC6845 CRT: Popmessages can now be used in drivers which have an MC6845 - dec0.c . Added MEC-M1 PCB layout to the driver and updated some clocks and ROM names . Fixed OKI6295 clock speed in baddudes, birdtry and hbarrel . Fixed HuC6280 and OKI6295 clock speeds in hippodrm and robocop . Bad Dudes vs. Dragonninja: Replaced clone Dragonninja set with one dumped from a genuine Data East PCB. Fixed rom names. - deco32.c . Verified all DECO32 clocks and correct HuC6280 clock following old Charles McDonald notes I had about internal divisor. Fixed HuC6280 CPU2 clock speed in captaven. . Added a note on the ARM CPU used by this game: it's a Data East 101 custom. - hng64.c . Implemented HNG64 low-res texture decoding. All red/green polygons should now be textured. . Partially decodes translation-only geometry type 0102. This makes the road appear in the racing games, the edge of the ring in buriki, and a hallway during the buriki attract. . Hacks the camera to work in Samurai Shodown 64 - micro3d.c: Added AM29000 CPU core and 2x Microprose Custom sound - ms32.c . Ensure that RAM and bitmaps are cleared when the Mega System 32 driver is started to avoid 64-bit build crashes . Fixed assertion with Debug Build (ID 03571) - pgm.c: Fixed a typo in PGM driver that was causing a memory test error and correct some comments - psikyosh.c . Added support for per-scanline scroll/zoom and per-column effects. This is adds a significant performance penalty when enabled. Removed warning flag from s1945ii and s1945iii. s1945iii needs confirmation of correctness and x-zoom is a guess. . Virtually completed video rendering. Only flipscreen missing (and conversion to tilemaps one day). Per-line effects now respect per-line alpha, priority and bank. As a result daraku text works without any hacks. . Added various optimisations to get back all games to a playable speed . Fixed missing Sol Divid effect on final boss that was broken due to above Daraku Tenshi hack . Added accurate scaling effects based on measurements from hardware - subsino.c . Improvements to the driver: Lowered Z180 CPU1 clock to 1.5MHz. Reworked former inputs. Added specific game and technical notes. Added lamps support and dipswitches. Cleaned-up a bit the driver. . Poker Carnival: Added change card, keyin, keyout, stats and settings inputs. Added coin/keyin/keyout/payout counters. Limited the bet and coin pulses to avoid repeats and coin jams. Added button-lamps layout. . Shark Party: Added stats and settings inputs. Added coin counters. Added button-lamps layout. . Super Rider/Super Moto: Added stats and settings inputs. . Victor 5: Mapped the M6295 but commented out due to missing sample roms. Added keyin, keyout, payout, stats and settings inputs. Added coin/keyin/keyout counters. Limited the bet and coin pulses to avoid repeats and coin jams. Added button-lamps layout. . Victor 21: Mapped the M6295 but commented out due to missing sample roms. Added bet x10, keyin, keyout, stats and settings inputs. Added coin/keyin/keyout/payout counters. Limited the bet and coin pulses to avoid repeats and coin jams. Added button-lamps layout. - vsnes.c: Replaced VSNES bank installs with RAM installs, since the banks were never changed. - Laser Disc: Fixed build fails with missing OPTION_ROMPATH (ID 03664) - Carrera: Fixed Access Violation before OK (Debug build) (ID 03665) (ID 04418) - Cyber Tank . Redumped sound roms . Fixed sprite height . Implemented flip x and negative y offsets and preliminary zooming - D-Day (Jaleco) . Fixed background and sprites colors . Dumped the 5x proms - Do! Run Ru: Fixed SN76489 music off key (ID 03640) - Island 2: Fixed clone Island 2 (ID 03618) - Jockey Club II: Fixed access violation before OK in clone Dark Horse (Debug mode) (ID 03666) - Final Fight: Fixed bad sound in clone Final Crash (bootleg of Final Fight) (ID 03671) - Multi Champ Deluxe: Fixed crash issues - Super Hang-On: Fixed [debug] access violation in clones shangonrb and shangonro (ID 03581) - Tetris the Absolute The Grand Master 2/Plus: Fixed background color in the warning boot screen (ID 03663) - Versus Net Soccer . Replaced GFX ROMs with correct dumps . Improved sprite/roz alignment - Converted the following drivers to use a driver_data structure: 39in1, bigstrik, mugsmash, pass, safarir, sbowling, sbugger, sderby.c, shadfrce, shootout, shougi, silkroad, skeetsht, skyarmy, sliver, spbactn, spk116it, spool99, srmp5, srmp6, ssingles, sslam, sstrangr, stlforce, sub, supdrapo, superdq, supertnk, suprgolf, taitojc.c, tunhunt, welltris.c, wwfsstar and xyonix - Dipswitch fixes in micro3d.c and subsino.c - Renamed (stankatk) to (tankbatl) and (viprp1o) to (viprp1oj) - Description changes of Capcom Vs. SNK Millenium Fight 2000 Pro (GDL-0004), Capcom Vs. SNK 2 Millionaire Fighting 2001 (Rev A) (GDL-0007A), Cube Quest (01/04/84), Tank Battle (prototype rev. 4/21/92 ) and Viper Phase 1 (Hong Kong) - MAME . Fixed bug introduced with astring changes that caused malformed tokens when writing out cfg files (ID 03667) . Fixed bug where memory regions were not properly enumerated for the debugger memory view. Also, stop creating empty regions for disk regions. . Improved stack walking on crash in Windows. Now using StackWalk64 to do the stack walk, resulting in cleaner logs. Also will try to use system function to look up symbol and source/line information if present. . Created new template class tagged_list which manages a simple list along with a tagmap. Changed memory regions, input ports, and devices to use this class. For devices, converted typenext and classnext fields into methods which dynamically search for the next item. Changed a number of macros to use the features of the class, removing the need for a bunch of helper functions. . Correct a long-standing design flaw: device configuration state is now separate from runtime device state: * There is a new class 'running_device' which represents the state of a live device. A list of these running_devices sits in machine->devicelist and is created when a running_machine is instantiated. * To access the configuration state, use device->baseconfig() which returns a reference to the configuration. * The list of running_devices in machine->devicelist has a 1:1 correspondance with the list of device configurations in machine->config->devicelist, and most navigation options work equally on either (scanning by class, type, etc.). * For the most part, drivers will now deal with running_device objects instead of const device_config objects. In fact, in order to do this patch, I did the following global search & replace: const device_config -> running_device, device->static_config -> device->baseconfig().static_config, device->inline_config -> device->baseconfig().inline_config and then fixed up the compiler errors that fell out. * Removed device_get_info_ functions and replaced them with methods called get_config_. * Added methods for get_runtime_* to access runtime state from the running_device. * DEVICE_GET_INFO callbacks are only passed a device_config. This means they have no access to the token or runtime state at all. For most cases this is fine. * Added new DEVICE_GET_RUNTIME_INFO callback that is passed the running_device for accessing data that is live at runtime. In the future this will go away to make room for a cleaner mechanism. * Cleaned up the handoff of memory regions from the memory subsystem to the devices. . Converted the rest of devintrf to classes and moved management functions into methods of those classes. The most wide-ranging change was converting device_reset() to device->reset(). Apart from that it was mostly internal shuffling in the core. . Made direct accessors for device configuration state. Currently they just call through to the get info function. Removed old macros that wrapped calls. . Removed some aliases between CPUINFO_ and DEVINFO_ to help clarify usage. Also converted a few more places to use the new accessors. . Fixed bug that mistook a non-NULL token to mean that a device was started. Fixes -video ddraw issue. . Exit from the unhandled exception filter cleanly now. Use SetErrorMode() to disable the appearance of dialog boxes when crashes occur. . UI menu interface changes: All ui functions now expect a render_container. Removed all macros referencing render_container_get_ui. ui_menu_alloc now is passed a container to which to render the menu. . Replaced device_find_child_by_tag() -> device->subdevice() . Added Guru(TM)-PCB info to Track & Field driver - Compiling . Added makefile autotest for BIGENDIAN. A bit hacked, though. . Added checkautodetect target to makefile . Added OS/2 autodetect to makefile . Autodetection of PTR64 can be inhibited now by specifying PTR64=0. On mixed 32bit/64bit targets identifying themselves as 64bit this can be used to build a 32bit executable. . Added OpenBSD support in makefile/sdl.mak. Fixed XBSD detection of PTR64 (uses AMD64). . Removed stdlib.h from osdcomm.h: Added #include stdlib.h where now necessary. Fixed Solaris build. Fixed building UNIDASM for OSD=sdl on win32. Tools now include stdlib.h where needed. . Changed core library files to use osd_malloc/osd_free where appropriate . Permitt zlib and expat to be linked dynamically without changing the makefile by specifying "=0": make BUILD_ZLIB=0 BUILD_EXPAT=0. . sdl.mak rewrite: TARGETOS=freebsd may now be given on make invocation. Modular approach, separate sections for opengl, x11, debugger. Most target specific settings parametrized. Added GTL_INSTLL_ROOT to optionally build win32 with the MAME debugger. On targets supporting "-m64" and "-m32" use them. On unix ppc targets, add -Dpowerpc automatically. . Added sdlmisc_.c again. This was necessary since certain tools create stubs for e.g. osd_break_into_debugger. If we do not have this in a separate file, the link stage may break. Applied OS/2 patch. Cleaned up #includes. Removed stdlib.h were possible. More malloc to osd_malloc rename. SDL monitor modes are read now when they are needed. This is now consistent across platforms. - Debugger . Fixed memory allocation issue in debug builds . GTK Debugger work: glade-2 can now be used again to edit the debug.glade file. No more need to edit the files created by glade-2. All "activate" handlers now pass the parent window pointer. malloc ==> osd_malloc to prevent mixed C++/C window allocations. Run to cursor (main view). In place memory editing (memory view). implement key handling (Up, down, ..) like in windows. Tab and ESC not yet handled. Functionality now matches win32 debugger. Further code review/rewrite/simplification. Added more comment headings. Fixed a compile warning for GCC-4.4 (not detected by GCC-4.2). Horizontal divider bar to individually size views. Minimum height aligned to win32 debugger. 0.136u1 - NOTES . A new tool chain for Windows, based off of GCC 4.4.3 prerelease, is now REQUIRED. Go to http://mamedev.org/tools to get the new tools. The updated included with 0.136u1 WILL NOT BUILD with the old tools. The new tool chain has support for building 64-bit MAME builds with GCC, as well as built-in DirectX headers, and C++ support, which was missing from the old tools. . Non-Unicode builds of Windows MAME are no longer supported. The options to turn this off in the makefile have been removed, and future changes are likely to solidify this requirement. If you are still (God forbid) running on Win9x, you will need the unicows.dll library to run MAME. Download unicows from Microsoft. . All code in MAME is now compiled as C++, plus there have been a few small changes that take advantage of the C++ language. For the most part, there is no effect on how drivers are written, except for some nicer accessors to devices and address spaces. Future improvements to take advantage of the C++ syntax will evolve slowly, and will be done internally. We are not interest in outside attempts to do this work for now. . The SDL OSD for MAME is now shipped as part of the main source package. SDL builds for Windows are now regularly built as part of the validation sequence for a new release. Thanks to R. Belmont, Couriersud, and Olivier Galibert for their work on the SDL port over the years. - New games: Multi Game (Tung Sheng Electronics) and Second Chance - New Non-Working games: 2x Bega's Battle, Computer Quiz Atama no Taisou, Fun Station Spielekoffer 9 Spiele, Monza GP, 3x Quarter Horse, Vega and Vortex - New clones: Exciting Soccer (Japan set 2), Mega Blast (US), Super Bar and Track & Field (NZ Bootleg?) - New drivers: monzagp.c and vega.c - I386 CPU . Improved accuracy of the various emulated models, makes CPU detection programs detect the correct CPU (in MESS). . eflags mask added . Initial values for the EAX and EDX registers fixed . cpuid values improved . Feature flags improved . Initial value for the cr0 register improved . Changed 486 to not support the cpuid instruction by default . Take a trap on invalid instructions instead of throwing a fatalerror . Emulated the undefined flag behavior for the DIV/IDIV instructions on Intel CPUs - UNSP CPU: Added a mostly-complete SunPlus u'nSP core based on the one in Segher's "Unununium" - uPD7801 CPU: Fixed incorrect disassembly of some instructions. Updated the handling of interrupts to match the documentation. Implemented uPD7801 timers. Configured port A on the uPD7801 to an output port. - TC0140SYT Custom: Converted taitosnd (aka tc0140syt) to be a device and updated the related drivers to use the new code - RF5C68 sound: Added a PCM sample end/loop callback - SN76489/A sound . Fixed period for both SN76489 and SN76489A periodic noise . Fixed pitch in 'smooth criminal' demo for colecovision . Fixed pitch of music in Do! Run Run (but not the waveform, which will require more work) . More work is required before the code will be bit accurate due to the way the real LFSR and periodic generator work - YM2612 sound: More accurate LFO implementation and channel clipping (megaplay.c, megatech.c) - 6522 VIA: Refactored the interface to use READ/WRITE_LINE - 8253 PIT: Updated counter even if there was no elapsed cycles (this only affects fast drivers like at586 in MESS). This fixes also Area 51: Site 4 regression (black screen instead of intro) (ID 02510) - Konami custom ICs: Moved a few routines (used for sorting graphics layers) to konicdev.c since they are shared by several drivers. Updated some Konami drivers above to separately allocate palette/extra/work RAM instead of appending them to maincpu ROM; also, reduced maincpu rom regions where appropriate. Replaced memory_set_bankptr with memory_set_bank where necessary. - EEPROM . Fixed typo in 8-bit EEPROM case that broke operation in some games (ID 03630) . The starting value for an output port is now the default value, which is based on whether it is active high or low. So the device will be called the first time the line becomes active. Changed the EEPROM device to assume that the reset and clock are cleared until it's told otherwise. - aleck64.c . RSP DRC changes . Fixed misaligned 32-bit accesses . Disabled DRC_SQV implementation as it breaks music in Magical Tetris Challenge . Converted RSP callbacks into device callbacks. Removed a ton of tag-based queries in favor of using the device passed. . Added profiler_mark() calls around rdp_process_list() so that the RDP time is separated from the RSP time. - cb2001.c . Added more decrypted V30 opcodes . Added base tilemap hook-up - cps1.c: Fixed NVRAM for dino, punisher, wof and clones (ID 03637) - crystal.c: Fixed multi-session/static issue in SE3208 CPU core. Fixed with r7990. (ID 03233) - cvs.c: Fixed missing background star field in Raiders and Space Fortress (ID 03626) - halleys.c: Fixed VSync in Ben Bero Beh and Halley's Comet - hng64.c . Beast Busters 2nd Nightmare now has 3D geometry. Found the 'explicit palette' word. Colors are now correct implemented what looks like a 'dynamic palette' bit. . Hacked 3D acknowledge in a slightly different manner. Sams64 games now show 3D. . Fixed improperly loaded ROMs in sams64* games . Fixed colors in sams64 games, but not roadedge or buriki. - laserbat.c: Fixed massive slowdown (ID 03623) - mitchell.c . Changed Z80 clock from 6MHz to 8MHz in Mahjong Gakuen to match the other Mitchell hardware games . Fixed OKI6295 clock speed in marukin, mgakuen2 and pkladies - twinkle.c: Fixed memory leaks (ID 03293) - Crazy Kong (bootleg on Galaxian hardware) . Fixed dipswitches, inputs and wrong coinage settings (ID 02154/02157) . Updated clone Crazy Kong (bootleg on Moon Cresta hardware) memory map - Crazy Rally: Fixed incorrect default high scores (ID 03653) - Cyber Tank . Redumped program and sprite roms . Fixed bitplane order . Decoded sprite gfx format . Hooked up the two bg tilemaps . Wrote bare-bones video emulation for the Cyber Tank sprite chip / blitter . Added video boundary checks for the blitter - Daraku Tenshi: Fixed graphic issues at region warning and during super move (ID 00266) - Dwarfs Den: Fixed a bunch of minor quirks and gfxs - Exciting Soccer / II: Fixed 1st AY-3-8910A clock speed and VSync - Gals Panic 4: Added missing sample rom to clone (Korea) (ID 03510) - Gunbird 2: Fixed game crashes during the 4th level boss fight (North Pole) when using Vampiro (ID 00111) - Gunpey . Implemented basic blitter support . Implemented inputs and sound . Converted game to use RGB pens instead of hardcoded palette table . Added OKI6295 and YMZ280B sound. Fixed visible area and added dipswitches. - Killer Instinct / 2: Fixed x86 DRC backend codegen bug that broke Killer Instinct. Fixed game hangs at black screen with 32-bit build (ID 03632). - Mahjong Games: Added lots of comments relating to 56-pin Mahjong interface and Psikyo SK-G001 interface PCB based on discussion with Alien_Mame and documents from other Mahjong PCBs. - Mahjong G-Taste: Added support for Mahjong panel. Makes this the default input and alters the default eeprom accordingly to match factory default. Note that you need to change both the game and the controller setting from the driver configuration when switching input sources since the two are mutually exclusive. Added new EEPROM eeprom-mjgtaste.bin. - Mahjong Gekisha: Added 'Auto Tsumo after Reach' dipswitch. Fixed MAME crashes, if this dipswitch is enabled (ID 03649). - Mat Mania: Fixed graphical corruption (typo in the video driver) (ID 03651) - Metal Maniax . Fixed frame buffer display . Started to add the other CPUs (ADSP2105, TMS34020, 2x DSP32C and TMS32031) . Added PCB layouts for layers 1 and 2 . Hooked up TMS34020 . Started to implement the ADSP-2105 network CPU and the CAGE audio system (4x DMA-driven DAC) - Mikie: Fixed possible priority issue (ID 03485) - Premier Soccer: Fixed assert - Quasar: Fixed massive slowdown (ID 03620) - Race Drivin': Fixed gfx rom loading in clone Race Drivin' Panorama - Solomon's Key: Fixed graphics bugs (ID 03622) - Strikers 1945 III: Fixed MAME popup a message at the very last boss (ID 00892) - Trivia ? Whiz (Edition 3 - Horizontal): Fixed user1 rom loading in clone Trivia ? Whiz (Edition 3 - Vertical) - Versus Net Soccer . Emulated DMA protection for startup-checks . Fixed Data ROM loading, game now boots and marked sprite and sound roms as BAD_DUMP - Victor 21: Fixed a bogus protection check - Vs. Super Mario Bros.: Fixed game hangs at a black screen (ID 03573) - Zeroize (Cassette): Fixed protection simulation in lieu of proper dongle dump (machine\decocass.c) (ID 00286) - Zoar: Fixed cabinet 'Upright' dipswitch (ID 00660) - Cheat engine: Fixed hitting F6 without -cheat trigger causes crash (ID 03621) - Added driver data struct to ajax, aliens, cave.c, ninjaw.c, opwolf, slapshot.c, taito_b.c, taito_l.c, taitoair.c, warriorb and wgp - Added driver data struct and save states to asterix, asuka.c, bishi, blockhl, bottom9, chqflag, crimfght, darius, dbz, gbusters, gijoe, gradius3, lethalen, mainevt.c, moo.c, othunder, overdriv, parodius, rainbow, rastan, rollerg, rungun, simpsons, spy, suratk, tail2nos, taito_f2.c, taito_h.c, taito_o.c, taito_z.c, thunderx.c, tmnt.c, topspeed, ultraman, vendetta.c, volfied, xexex and xmen - Converted goldstar.c, liberate.c, sidearms.c and sidepckt.c to use driver_data - Replaced AY-3-8910A sound with YM2149 in arkanoid, berlwall, bakubrkr, mgcrystl, tetrsark and wink - Dipswitch fixes in gekisha, gunpey and zoar - Rom names fixes in cybertnk, galaxold.c, knights, merit.c, suprnova.c and wiggie - Renamed (cameltryua) to (cameltryau), (kkgalax) to (ckongmc), (megab) to (megablst) and (megabj) to (megablstj) - Description changes of Crazy Kong (bootleg on Galaxian hardware), Crazy Kong (bootleg on Moon Cresta hardware) and G.I. Joe (World) - MAME . New C++-aware memory manager: This is a simple manager that allows you to add any type of object to a resource pool. Most commonly, allocated objects are added, and so a set of allocation macros is provided to allow you to manage objects in a particular pool: pool_alloc(p, t) = allocate object of type 't' and add to pool 'p'. pool_alloc_clear(p, t) = same as above, but clear the memory first. pool_alloc_array(p, t, c) = allocate an array of 'c' objects of type 't' and add to pool 'p'. pool_alloc_array_clear(p, t, c) = same, but with clearing. pool_free(p, v) = free object 'v' and remove it from the pool. Note that pool_alloc[_clear] is roughly equivalent to "new t" and pool_alloc_array[_clear] is roughly equivalent to "new t[c]". Also note that pool_free works for single objects and arrays. There is a single global_resource_pool defined which should be used for any global allocations. It has equivalent macros to the pool_* macros above that automatically target the global pool. In addition, the memory module defines global new/delete overrides that access file and line number parameters so that allocations can be tracked. Currently this tracking is only done if MAME_DEBUG is enabled. In debug builds, any unfreed memory will be printed at the end of the session. emualloc.h also has #defines to disable malloc/free/realloc/calloc. Since emualloc.h is included by emucore.h, this means pretty much all code within the emulator is forced to use the new allocators. Although straight new/delete do work, their use is discouraged, as any allocations made with them will not be tracked. Changed the familar auto_alloc_* macros to map to the resource pool model described above. The running_machine is now a class and contains a resource pool which is automatically destructed upon deletion. If you are a driver writer, all your allocations should be done with auto_alloc_*. Changed all drivers and files in the core using malloc/realloc or the old alloc_*_or_die macros to use (preferably) the auto_alloc_* macros instead, or the global_alloc_* macros if necessary. Added simple C++ wrappers for astring and bitmap_t, as these need proper constructors/destructors to be used for auto_alloc_astring and auto_alloc_bitmap. Removed references to the winalloc prefix file. Most of its functionality has moved into the core, save for the guard page allocations, which are now implemented in osd_alloc and osd_free. . Replaced all occurrences of cputag_get_cpu with devtag_get_device: the former function was just an alias and now cpus are no different from other devices. Also removed cputag_get_cpu and cputag_reset (another alias, not even used in the source) from cpuexec.h. . Removed the various HAS_xxxx for sound cores. To select sound cores, just choose them in the make system. Further granularity is not necessary. This also means that the samples core is always required. . Fixed UNIDASM fails to link when ldplayer is the specified target (ID 03415) . Removed hacks surrounding unicode handling in main(). They are no longer necessary with the new tools. . Got rid of setjmp/longjmp for error handling in favor of exceptions. Fatalerror now maps to throwing an exception. . Added nicer functions for finding devices, ports and regions in a machine: machine->device("tag") -- return the named device, or NULL, machine->port("tag") -- return the named port, or NULL and machine->region("tag") -- return the named region (Note that machine->region() returns a pointer to a region_info class which describes a region, not a pointer to the region's memory). . Made the device tag an astring. This required touching a lot of code that printed the device to explicitly fetch the C-string from it (thank you GCC for flagging that issue!). . Extended the astring class wrapper into something useful, and useable as a stack object. Also designed the interfaces to allow for chaining operations. And added a casting operator to const char * for seamless use in most functions that take plain old C strings. . Changed all uses of astring to use the object directly on the stack or embedded in objects instead of explicitly allocating and deallocating it. Removed a lot of annoying memory management code as a result. . Added new member function space() to the device_config, along with shorter constants to be used (AS_PROGRAM, AS_DATA, AS_IO). With no parameters, space() returns the first address space, which is commonly the only space present. Updated a few devices that referenced the old space[] array to call the new function instead. . Added casting operators to the region_info class so you can assign a region to a generic type pointer and have it automatically convert. Also added a bytes() method which is safe if the region is NULL (useful for saying machine->region("foo")->bytes() and not crashing if foo doesn't exist). . Changed the region field in the device_config to be a region_info *, and removed the regionbytes field. Updated all users of these fields to use the new casting operators and bytes() methods instead. . Added subdevice and subregion methods to the device_config class, so you can easily query for devices and regions that are device-specific. The device prefix ("devicename:") is automatically prepended. . Changed inline_config to be allocated separately to avoid alignment issues . Changed interfaces that accepted/returned an astring * to use an astring & instead . Removed auto_alloc_astring(machine). Use auto_alloc(machine, astring) instead. . Major header file cleanup: Created new central header "emu.h"; this should be included by pretty much any driver or device as the first include. This file in turn includes pretty much everything a driver or device will need, minus any other devices it references. Note that emu.h should *never* be included by another header file. Updated all files in the core (src\emu) to use emu.h. Removed a ton of redundant and poorly-tracked header includes from within other header files. Temporarily changed driver.h to map to emu.h until we update files outside of the core. . Added class wrapper around tagmap so it can be directly included and accessed within objects that need it. Updated all users to embed tagmap objects and changed them to call through the class. . Added some missing header declarations and static qualifiers. Added validity.h to the core for consistency as well as an explicit foo.h in each foo.c. . Enforce that numbers are all the same exact width when loading fonts . Added the mameconfig version to the -listxml output - Compiling . Makefile changes: Removed CPP_COMPILE flag; all code is now compiled as C++ except for zlib and expat. Mapped INLINE to "static inline" since C++ has real inlining. Added new 'default' make target which just builds the emulator. Use 'make tools' to build the tools, or 'make all' to build the whole thing. 64-bit builds now get a '64' suffix on them. Removed UNICODE flag from Windows; UNICODE is always enabled now. If OSD is not defined, we look for the built-in Windows environment variable 'OS' and if it is set to 'Windows_NT', we assume OSD=windows; otherwise we assume OSD=sdl. If TARGETOS is not defined, we look for the same variable and set TARGETOS=win32 if it is set to 'Windows_NT'. Windows SDL builds have an 'sdl' prefix on the executable so they can live side-by-side. Added cheesy auto-detection of 64-bit Windows builds (based on the PATH including 'mingw64-w64'). . SDLMAME makefile improvements: Fixed TARGETOS detection on OS X. Do not try to check TARGETOS when cross-compiling. For non-windows targets, try to auto-detect PTR64. Testkeys now builds again. For unix targets, added a depend rule to sdl.mak which builds a .depend file. Improved OS X and SDL 1.3 SVN support, try to autodetect SDLMAME targets. Added BGRA support to -video soft. . Fixed a number of compiler bugs found by PowerPC MacOS X . Fixed controller input not functional in 64bit version (ID 03613) . Renamed mamecore.h -> emucore.h 0.136 - New Non-Working games: Cherry Master '92, Cycle Mahbou, 2x Melty Blood Act Cadenza Ver B, Metal Maniax and Noukone Puzzle Takoron - New clones: Block (Game Corporation bootleg, set 3), 4x Cherry Master I (ver.1.01, set 4/5/6/7), Multi Fish (030124), Race Drivin' Panorama (prototype, rev 2.1), Shao-lin's Road (bootleg), Spark Man (v 2.0, set 2) and Street Smart / Final Fight (Japan, hack). - New drivers: cyclemb.c and metalmx.c - Dynamic Recompiling . Fixed x86 HLT instruction handling . Fixed error in codegen for drol/dror opcodes in the x86 back-end - EEPROM . Fixed auto EEPROM region to properly handle 16-bit data . Changed EEPROM device to initialize EEPROM at NVRAM load time rather than init time, giving DEVICE_INIT handlers a chance to muck with the data first. . Removed _NODEFAULT_ forms of EEPROM driver macros. If you need to add default data, follow the MDRV_EEPROM_ADD() with MDRV_EEPROM_DATA(). . Updated remaining drivers to the new EEPROM device code. Many of them now require a default EEPROM to be loaded along with the ROMs, rather than hard-coded data in the driver. . Exposed an address space for EEPROM devices, meaning the memory is now visible in the debugger and can be accessed via expressions. . Updated all systems that muck directly with EEPROM memory to use memory accessors instead on the EEPROM address space. . Removed old EEPROM implementation - Konami custom ICs (video\konicdev.c): Added preliminary device version of Konami video ICs used in PowerPC games (001005, 001006, 001604 and 037122). - Namco IO chips 56xx, 58xx and 59xx: Converted chips to be devices and converted gaplus.c, mappy.c and toypop.c to use the new code - NMK112: Converted chip to be a device and updated drivers using it accordingly (cave.c, nmk16.c, powerins.c, quizpani.c and toaplan2.c). - Taito custom I/O and video ICs (machine\taitoio.c): Converted all Taito custom I/O and video ICs to devices and updated all drivers to use them (asuka.c, ninjaw.c, othunder.c, slapshot.c, taitoair.c, taito_b.c, taito_f2.c, taito_h.c, taito_z.c, topspeed.c, warriorb.c and wgp.c). - adp.c . Fixed some minor quirks . Improved Backgammon memory map . Implemented RAMDAC and fixed palettesize and VSync in 'Funny Land de Luxe' . Changed VSync to 60Hz in Fashion Gambler, Quick Jack, Skat TV - aleck64.c . Converted a number of vector opcodes to the RSP DRC core . Unrolled and optimized a number of vector opcodes in the interpreter RSP core . Fixed a few DRC-ized vector load/store opcodes in the RSP core . Optimized RDP implementation further with more flattened branches . Re-implemented misaligned memory handling in the RSP DRC as before . Explicitly sign-extend 32-bit indexes for load/loads/store on 64-bit machines to prevent overflow issues. Fixes DRC crash in 'Magical Tetris Challenge'. - cb2001.c: Added many new V30 opcodes - cninja.c: Changed driver to use partial updates for raster effects instead of buffering scanline data - deco32.c: Changed driver to use partial updates for raster effects instead of buffering scanline data (but left Dragon Gun using the buffering, because the video rendering code is far too slow with 224 partial updates for now). - gticlub.c: Split ADC1038, Konami 033906 and Konami 056230 emulation from gticlub.c and konppc.c. Also converted them to be devices and updated PPC Konami games to use the new code. - gladiatr.c: Cleaned up a bunch of things in the driver - hng64.c . Roads Edge & Xtreme Rally polygons are now visible . Improved geometry chunk type 0x2e . Fleshed out the 'chunk type bits' a little. This will be verified against type 0x24. . Xtreme Rally and Roads Edge HNG64 screens no longer run at 10fps . Fixed polygon lookup in driving games - konamigv.c and mitchell.c: Fixed driver attempt to register save state entry after state registration is closed (ID 03596) - namcond1.c: Commented out some harmful and suspicious looking interrupt generation in NamcoND1 driver until it's being properly verified; fixes game options menu in NCV2 test mode. - nss.c and snesb.c: Hardware multiplication and division on the SNES takes 8 machine cycles to complete - qdrmfgp.c: Updated driver to use Konami video devices - psikyosh.c: Added GAME_SUPPORTS_SAVE flag, since the conversion to EEPROM devices fixed the remaining issues with save states. - taito_b.c: Converted Fujitsu MB87078 volume controller to be a device and updated driver to use the new code - taito_l.c: Fixed YM2203 clock speed in cachat, cubybop, horshoes, palamed, plgirls, plgirls2, plotting and puzznic (ID 03598) - 1943, 1943j: Fixed 1943 crashed when starting service mode (ID 03611) - Blood Bros . Simplified Blood Bros. gfx decoding . Removed unnecessary DRIVER_INIT . Marked two sprite ROMs as BAD_DUMP in clone West Story - Captain America and The Avengers: Fixed intro text scrolls from wrong direction (ID 03593) - Green Beret: Changed sound chip to SN76489 and indicated that Green Beret (bootleg) has an undumped PAL and PROMs. - Karnov: Fixed incorrect 'Difficulty' dipswitch (ID 03603) - Mr. Goemon: Replaced SN76496 sound with SN76489 - Multipede: Identified and marked 'Service Mode' dipswitch - Outrun and Turbo Out Run: Fixed incorrect vsync speed (ID 03597) - Play Girls: Made LA Girls to a clone of Play Girls. It's clearly a bootleg hardware clone. Title & background change, but the demo play and block arrangement are identical. Added info from the Guru's website about the reported manufacture company and year for LA Girls. Added a note about Tube-it having the copyright and manufacture info removed. - Psycho-Nics Oscar: Fixed incorrect 'Difficulty' dipswitch (ID 03604) - Space Invaders DX: Fixed game reboots itself after title screen in clone (Japan, v2.0) (ID 03493) - Spark Man: Added a bunch of new protection handlers - Submarine: Put in board XTAL to Submarine and came up with some seeming better clock speed approximations until board readings can be done. Fixed Z80 CPU1/2 and th 2x AY-3-8910A clock speeds to 3072000 Hz and the 2x AY-3-8910A. - Subs: Added DIP location - Super Contra: Fixed tile/graphic corruption on multiple launches (ID 03608) - Trivia ? Whiz (Edition 3 - Horizontal): Fixed what might be a copy/paste error in two sets (trvwz3h and clone trvwz3v) where two roms had the same filename in the same romset. - Tron: Clones Tron (6/17) and Tron (6/15) don't appear to have a valid working cocktail mode video or controls (upright player2 works fine). Flagged as GAME_NO_COCKTAIL. - Input port: Added a fix for INP recording ports that have changed notification. Also prevents new inputs from affecting recorded inputs during playback. (ID 03142) - Dipswitch fixes in adp.c, cmmb.c, dec8.c, karnov.c and subs.c - Renamed (offrdtp2) to (offroadt2p) - Description changes of Multi Fish (021124), Multi Fish (021124, banking address hack), Space Invaders DX (US, v2.1), Space Invaders DX (Japan, v2.1), Space Invaders DX (Japan, v2.0), Spark Man (v 2.0, set 1) and West Story (bootleg of Blood Bros.) - MAME . Renamed tilemap -> tilemap_t, as the name 'tilemap' is too commonly used for statics and structure members, and some compilers (esp. C++ compilers) don't allow that. . Changed behavior of -watchdog option to act like a real watchdog. It now specifies the number of seconds after the last video update that will cause auto-termination of MAME. Also modified it to output a message when the watchdog triggers the exit. Updated windows.txt to reflect this option and the debugger_font options which were never previously documented. . Removed sysconfig section from game_driver struct. Made compatible_with attribute available for MAME too (with NULL value set in GAMEL macro). . Allow any device memory (not just CPU's) to be accessed via debug expressions. Removed support in the expression engine for EEPROM-specific accesses. . Cleaned up braces in the code so that they are properly balanced . Extended the devtempl.h file to support device address spaces . Added additional information to the dipswitches and configurations sections in the -listxml output . Updated srcclean to remove "invisible spaces" immediately preceding tabs 0.135u4 - New Working games: Poker Carnival, Shark Party, Victor 5 and Victor 21 - New Non-Working games: Happy 6-in-1 - New clones: Blood Bros. (set 3), Caveman Ninja (bootleg), Hyper Street Fighter 2: The Anniversary Edition (USA 040202), Mortal Kombat 4 (version 1.0) and Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 2) - Dynamic Re-Compiling . Simplified RSP's misaligned memory accesses . Removed now-unnecessary shifts from direct memory accesses in mips3/powerpc drcs . Optimized AND with 0xff/0xffff/0xffffffff cases for x86/x64 . Added rudimentary memory/register tracking in x86 backend to remove redundant loads . Added new profiler bucket for DRC recompilation - I386 CPU . Minimal implementation of the LSL protected mode instruction . Fixed the REP instruction when used with a segment prefix - MIPS CPUs: Enhanced the UML opcodes for LOAD, LOADS and STORE to support arbitrary scaling factors. Previously, specifying a size implied a scaling factor equal to the size (i.e., specifying DWORD meant the index was scaled by 4). This is still the default. However, now you can specify the scale explicitly for other cases. For example, you can specify DWORD_x1 to fetch a DWORD but don't scale the index at all, or BYTE_x8 to fetch a BYTE while scaling the index by 8. Updated all backends to make this work. - PIC16C62x CPUs: Added a new CPU core for the PIC 16c62x series of processors - Discrete sound: Removed old index-based DISCRETE_ADJUSTMENT and then renamed the newer DISCRETE_ADJUSTMENT_TAG to replace it. Updated all callers. - SN76496 sound . Fixed megadrive emulation to use the SMSIII version of the SN76489 sound chip . Replaced SN76496 sound with SMSIII PSG in Aladdin, High Seas Havoc, megaplay.c, megatech.c, Puckman Pockimon, Super Street Fighter II (ssf2ghw), Sunset Riders (bootleg) and Top Shooter - ICS2115 sound (Wavetable syntesizer): Added save states (pgm.c) - S2636 video: Fixed all sets using S2636 video chip (cvs.c, galaxia.c, laserbat.c, Malzak and Quasar) (ID 03574) - 6522 VIA: Added save states. This fixes problems of gameplan.c and trvquest.c games with -autosave. - 6526 CIA: Fixed FLAG handling and slight interface cleanup (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) - 7474, 74148 and 74153 TTL: Converted implementation to devices - EEPROM . Changed EEPROM usage in many drivers to use the new device version . Cleaned up EEPROM device implementation a bit . EEPROM device now looks for a matching memory region to fetch the default values from. Fixed bug in ROM loader that would change the memory region flags to match devices with no address bus. Updated Ground Effects to use the new default loading scheme. - machine\atarigen.c: Added atarigen_init() function which allocates all timers and registers for save states. Updated all drivers to call it. Converted some drivers to use device timers (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1.c, atarisy2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, foodf.c, gauntlet.c, harddriv.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c) - 8080bw.c, mw8080bw.c and Field Goal: Made MB14241 Shifter IC a device and moved its source to emu\machine. Updated drivers accordingly. Converted Field Goal to use this implementation in place of its own version. - aleck64.c (N64-based games) . Preliminary RSP recompiler, with all vector ops stubbed out to C functions for now. Split SATURATE_ACCUM into a signed and unsigned version to reduce stack usage. Correct an issue with the 0h variants of VMRG, VAND, VNAND, VOR, VNOR, VXOR and VNXOR. Slightly optimized unaligned reads and writes. Optimized unaligned dword reads. Correct an issue where badly-written RSP programs could jump to invalid addresses. . Optimized N64 RDP renderer by using function pointers to function variants that eliminate costly branches. - cb2001.c . Added AY-3-8910A (1.5MHz), 8255ppi devices and dipswitches . Added some info about relation between Cherry Master '91 and Cherry Bonus 2001 . Added many custom V30 CPU opcodes - firebeat.c and twinkle.c: Converted RTC65271 to a device - hng64.c . Re-implemented 3D rasterization in the HNG64 driver as a FIFO system . Reworked the HNG64 polygon chunk recovery code to be more crash-proof . Documented what's known about the 3D data much better . Fixed vertex ROM loading for Buriki One and Fatal Fury: Wild Ambition - itech8.c: Fixed all games hardlocks after pressing F3 to reset (ID 03610) - naomi.c: Added BIOS 6 epr-21578h.ic27 (Export) - naomi2.c: Added BIOS 4 epr-23608c.bin (Export) - naomigd.c: Added BIOS 4/5 roms epr-21578h.ic27 and epr-21578g.ic27 (Export) - nss.c and snesb.c: Moved SNES timer allocation to MACHINE_START - plygonet.c: Updated driver to use Konami video devices and input_port_write for eepromdev_read_bit - segaorun.c . Fixed incorrect master clock in Out Run, Super Hang-On and Turbo Out Run (ID 03592) . Added board notes - seibuspi.c: Converted the DS2404 to a device - stvbios: Added BIOS roms stvb111j.ic8 and stvb111t.ic8 - subsino.c . Added preliminary decryption to Poker Carnival, Victor 5 and Victor 21 . Decoded Poker Carnival proms . Improved Super Rider (Italy, v2.0) bitplane order and colors . Added proms 74s287.u35 and 74s287.u36 to Victor 5 - suna8.c . Fixed Brick Zone parent set bitplane graphics . Spark Man: Refactored the protection. Implemented thrash protection that's used after the title screen. Fixed sprite bank bit. . Super Ranger: Changed clone Super Ranger (v2.0) to parent set. Added worked around protection in sranger, srangerw and srangerb. - taito_f3.c: Converted Taito F3 sound to a separate machine driver which is imported into games that use it. - taitojc.c: Changed 68000 CPU2 to CPU4 - Konami devic-fication and improvements . Added device versions of all the Konami custom ICs currently emulated in machine\konamiic.c and video\konamiic.c. Updated 88games.c, asterix.c, battlnts.c, combatsc.c, contra.c, crshrace.c, f1gp.c, fastlane.c, flkatck.c, hcastle.c, labyrunr.c, moo.c, rockrage.c and suprslam.c to use the new devices. . Updated ajax.c, aliens.c, bishi.c, blockhl.c, bottom9.c, chqflag.c, crimfght.c, djmain.c, gbusters.c, gijoe.c, gradius3.c, mainevt.c, overdriv.c, parodius.c, rollerg.c, simpsons.c, spy.c, surpratk.c, thunderx.c, vendetta.c and xexex.c to use new Konami video devices. . Updated dbz.c, lethal.c, metro.c, rungun.c, tail2nos, tmnt.c, ultraman.c, wecleman.c, xmen.c and zr107.c driver to use Konami video devices instead of konamiic.h code. . Updated asterix.c, gaelco3d.c, gijoe.c, hornet.c, konamigx.c, lethal.c, moo.c, mystwarr.c, overdriv.c, rungun.c, tmnt.c, vendetta.c, xexex.c, xmen.c to use EEPROM device. . Moved K056800 sound device to emu\sound and removed the old code. Updated gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c drivers to use this implementation. . Removed auto-init hack from some Konami games. Hold down F2 and reset (via F3) to initialize the EEPROM, like all the other Konami games. - Arkanoid: Fixed memory leak in debug mode in clone Block 2 (S.P.A. CO. bootleg) (ID 03575) - Carrera: Fixed colors - Combat School: Fixed graphic issues on the "players" screen as scrolling problems on 1st stage of Combat School (bootleg) (ID 00400) - Cool Riders: Added redumped gfx5 roms - D-Day: Enabled GAME_SUPPORTS_SAVE flag because some of the core changes have fixed the sound problem at loading - Every Second Counts: Fixed access violation (ID 03569) - Go! Go! Connie chan Jaka Jaka Janken: Added DIP locations to match those showing in service mode. Added game year to source from title screen. - Gomoku Narabe Renju: Added dipswitches and changed clock values to XTAL - Ground Effects: EEPROM device now looks for a matching memory region to fetch the default values from. Fixed bug in ROM loader that would change the memory region flags to match devices with no address bus. Updated Ground Effects to use the new default loading scheme. Added 93c46.164 EEPROM (128 bytes). - Hexa: Added DIP locations as well as assigned XTAL for the clock speeds to Hexa, using those from Arkanoid, since the boards are nearly identical in many aspects. - The King of Fighters 2003 (Japan, JAMMA PCB): Fixed access violation (ID 03570) - Koi Koi Part 2 . Added hardcoded table (disabled by default), concluded that a color prom is currently undumped. . Also documented a bunch of unused ports - Lucky Girl (newer Z180 based hardware): Implemented CRT Controller hook-up - Malzak: Imported SAA5050 emulation from MESS and made it a device. Updated game to use it, removing the almost identical implementation in the driver. - Mobile Suit Gundam EX Revue: Added EEPROM - Mysterious Stones: Fixed music is faster than original PCB and VSYNC does not match original PCB (ID 03588 + 03589) - Night Driver: Changed clock values to XTAL - Pandora's Palace: Fixed music pitch/speed is too high. Changed Z80 CPU3, I8039 CPU4 and AY-3-8910A clock speeds (ID 03572). - Race Drivin': Updated PCB layout README - Sky Army: Cleaned up driver, also removed the GAME_WRONG_COLORS flag since the colors actually seems correct according to the references. - Strike Bowling . Added proper COINAGE selections as well DIP locations to the driver . Added mapping for button 1 which is used to allow change from curve to straight throw . Replaced clock speeds with XTAL values - Super Slams . Fixed sprite-tilemap priorities . Added flickering effect in title screen - Super Speed Race: Added DIPS and changed clock values to XTAL - Tournament Table: Changed clock values to XTAL - Trivia Madness: Improved graphics and colors - Trivia Quest . Added save states to 6522via.c. This fixes problems of Trivia Quest games with -autosave. . Fixed access violation (ID 03567) - Trivia ? Whiz (Edition 2): Added sc-002 prom - Trivia ? Whiz (Edition 3 - Horizontal): Added sc-002 prom and region misc roms dec002.u13 and sex-001_01. - Trivia ? Whiz (Edition 4): Fixed user1 roms rom loading - Trivia ? Whiz (Horizontal): Added user1 roms (spo-001_01a, spo-001_02a and spo-001_03a) - Input port . Removed all uses of input_port_by_index() and removed the function . Changed ticket.c into a device, updated all users - Save state: Got rid of explicit resource tracking for state saving. Now we just use the auto_ allocators, since registration is restricted to initialization. - Added driver data struct to 8080bw.c, 88games.c, airbustr.c, balsente.c, combatsc.c, cvs.c, mw8080bw.c, psikyo4.c, psikyosh.c and rockrage.c. - Added driver data struct and save states to battlnts.c, bladestl.c, cbasebal.c, chinsan.c, contra.c, cps1.c, cps2.c, crshrace.c, djboy.c, f1gp.c, fastlane.c, fcrash.c, flkatck.c, hcastle.c, labyrunr.c, malzak.c, mitchell.c, neodrvr.c, pgm.c, psikyo.c, quasar.c, sf.c, suprslam.c and toratora.c. - Rom names fixes in bigappg, casino5, phrcraze, pitboss, trvwz2, trvwz3h, trvwz4 and trvwzh - Dipswitch fixes in gomoku, cb2001.c, sbowling and subsino.c - Renamed (combasc) to (combatsc), (combasct) to (combatsct), (combascj) to (combatscj), (combascb) to (combatscb) and (hsf2) to (hsf2a). - Description changes of Poker Carnival, Stoneage (bootleg of Caveman Ninja), Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 1), Shark Party (Italy, v1.3) and Rough Ranger (v2.0, unprotected, bootleg?) - MAME . Added new option -numprocessors . Specify the number of processors to use for work queues. Specifying "auto" will use the value reported by the system or environment variable OSDPROCESSORS. To avoid abuse, this value is internally limited to 4 times the number of processors reported by the system. The default is "auto". . Added "new" command -listdevices (or -ld) to list the devices attached to a driver. Example: MAME gundamex -ld. I notice that MESS has a command with the same name; hopefully the behaviors can be combined eventually. . Moved machine->gfx initialization out of the video module and into drawgfx. We now call this before devices are initialized, so that devices can dynamically append to the machine->gfx as needed. . Removed deprecated core function decodegfx() . Fixed tilemaps so they can be initialized at device start time . Fixed crash on exit for systems with no tilemaps . Added TILE_GET_INFO_DEVICE and SET_TILE_INFO_DEVICE macros to tilemap.c . Eliminated the use of generic.colorram and generic.videoram in several drivers . Added warning messages for auto_malloc, timer and save state allocations done after init time. These should be fixed when detected, and will soon be disallowed entirely. Fixed many cases in the code where this was being done. - Compiling . Removed the global "includes" include and instead specify the "includes" path in all #include occurences . Fixed some unbalanced quotes/braces lurking in the source (mostly in disabled code) . Fixed a couple of edge case parsing bugs in srcclean.c - Debugger . Fixed stack crawl is not generated anymore (Windows Debug) (ID 03583) . Fixed registered ram blocks registered with save state cannot be viewed with debugger (ID 03444) 0.135u3 - New games: LA Girl, Noraut Joker Poker (Prologic HW) and 2x Rapid Fire - New Working games: Top Shooter - New Non-Working games: Draw Poker HI-LO (unknown, rev 1), Draw Poker HI-LO (unknown, rev 2), Fast Draw, Geisha, Kimble Double HI-LO (z80 version), Magic Mask, Video Stars and White Tiger - New clones: Arkanoid (bootleg on Block hardware, set 2), Domino Block ver.2, Fatsy Gambler (Video Hustler bootleg), Fighting Fantasy (bootleg with 68705), Fitter (bootleg), Gals Panic (Korea, EXPRO-02 PCB), Head On (Sidam bootleg, set 2), Head On 2 (Sidam bootleg), 4x Invasion (bootleg), Panzer (bootleg of Spectar), Phantom (bootleg of Spectar), Sky Wolf (set 3), Strikers 1945 (Hong Kong, bootleg), Tower of Druaga (Manufactured by Sidam) and 2x Vs. Super Mario Bros. (bootleg) - I386 CPU . Fixed EIP displacement when executing FPU instructions with no 80387 present . Added 32-bit implementations of SLDT and STR - TMS32025 CPU: Mostly resolved mix of intel and motorola notation in TMS32025 disassembler - DMA-driven DAC sound: Fixed wrapping behavior - S2636 video: Converted video chip to be a MAME device and updated drivers using it accordingly (cvs.c, galaxia.c, laserbat.c, malzak.c and quasar.c) - KANEKO PANDORA: Converted Kaneko Pandora sprite chip to be a MAME device and updated drivers accordingly (airbustr.c, djboy.c, galpanic.c, hvyunit.c, sandscrp.c and snowbros.c) - machine\atarigen.c: Converted atari drivers over to using driver_data for the most part. Some shared systems still exist with globals, but this tackles the atarigen module and the variables local to each driver (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1.c, atarisy2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, foodf.c, gauntlet.c, harddriv.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c) - aleck64.c: Implemented player 2 inputs and added worked around hard-locks at start-up - cidelsa.c: Changed CDP1869 PAL/NTSC signal to use devcb - hng64.c: Added preliminary HNG64 additive tilemap blending - namcos12.c: Fixed slow music playing. Fixed H8/3002 CPU2 and C352 sound clock speeds (ID 03557). - norautp.c . Added new technical notes . Added Kimble Z80 hardware support . Added Prologic-Noraut hardware support . Added proper discrete sound support to Kimble games and Prologic-Noraut Joker Poker . Slightly adjusted the visual area to 464x248. This can be wrong and must be rechecked. . Relocated the hardware notes and layouts to ROM_LOAD section, so can be seen/maintained in a cleaner way. . Fixed the default lamps state. - subsino.c + viper.c: Fixed segmentation fault before OK (ID 03559) - Astro Fighter: Added driver configuration to emulate common wire hack which causes black background (ID 03565) - Atomic Robo-kid: Fixed segmentation fault before OK (ID 03561) - Battlantis: Added board xtal's. Fixed Z80 CPU1 clock speed. - China Gate: Fixed a driver data struct issues in clones Sai Yu Gou Ma Roku (Japan bootleg 1/2) (ID 03560) - Congo Bongo: Added information on the PROM from the 2 Board version - Contra: Added board xtal's and indication of an undumped PAL. Fixed YM2151 sound clock speed. - Cool Riders . Fixed regression . Hooked up what it looks like a ROM->to->VRAM transfer . Slightly improved booting . Some hooks to allow FBI logo drawing . Basic DMA hooked up . Fixed program ROM memory map loading as per the service mode item . Allow it to draw RAM-based chars, starts to show correct gfxs . Fixed paletteram and implemented basic inputs . Implemented DMA vram transfers . Added README / PCB layout . Hooked up videoram reading in drawing functions . Some hook-ups for the text blitter . Fixed segmentation fault before OK (ID 03559) . Fixed 68000 CPU2 and SH-1 CPU3 clock speeds and visible area - Cosmic Alien: Fixed cosmica2 romset rom split and names to match romset as described in PCBinfo, which it matches (except for one rom which PCBinfo is probably wrong about). The romset uses a different rom daughterboard to the other cosmica romsets, and different sized roms. - Cruis'n USA: Added PAL dumps - Domino Block: Fixed Z80 CPU1 and AY-3-8910A clock speeds and VSync - Dream World: Identified Semicom's Dream World hardware as a copy of Psikyo's 68020 hardware (it was already known that their older platforms were copied from Snow Bros and Tumble Pop) - Field Combat: Fixed segmentation fault after OK (ID 03562) - K.G Bird: Added new prom - KO Punch: Added driver data struct and save states. Fixed number of buttons. - Kusayakyuu . Fixed color prom hook-up, tilemap color offsets and tilemap flipping . Fixed sound and tweaked the frequencies in the driver - Miss Bubble 2: Fixed a driver data struct issues (ID 03560) - Mortal Kombat 3: Fixed DMADAC wrapping behavior. This fixes sound doesn't resume correctly after an autosave (ID 00749). - Pandora's Palace: Added board xtal's and correct the MCU dump. Fixed Z80 CPU3, I8039 CPU4 and AY-3-8910A clock speeds. - Poker / Black Jack: Added a PCB layout, based on a hi-res pic. Also added undumped devices as NO_DUMP. - Rack 'em Up: Fixed Z80 CPU1 clock speed - Sega Tetris: Added naomibd_prot data - Top Shooter: Added input and fixed missing sprites - Tron: Hooked up cocktail (P2) fire button so that it can be used in-game and in test mode - Wink: Fixed colors - Added driver data struct to aerofgt.c, alpha68k.c, amspdwy.c, galivan.c, gng.c, gunsmoke.c, gyruss.c, hotblock.c, hyprduel.c, ironhors.c, jackal.c, jailbrek.c, lasso.c, pipedrm and sbasketb.c - Added common driver data struct to junofrst.c, pooyan.c, rallyx.c, rocnrope.c timeplt.c and tutankhm.c (these drivers all use audio\timeplt.c). As a side effect, we now have save states in junofrst.c and rallyx.c. - Added shared driver data struct to 40love.c, bking.c, buggychl.c and msisaac.c (they use the same MCU emulation) - Converted cabal.c, mappy.c, toypop.c and zaxxon to use driver_data structure - Added driver data struct and save states to ddrible.c, fromanc2.c, fromance.c, gaelco.c, galspnbl.c, gberet.c, gcpinbal.c, ginganin.c, glass.c, go2000.c, goal92.c, goindol.c, good.c, gotcha.c, gotya.c, gstream.c, gumbo.c, gundealr.c, hanaawas.c, higemaru.c, himesiki.c, hitme.c, hnayayoi.c, holeland.c, homedata.c, homerun.c, hyperspt.c, ikki.c, imolagp.c, inufuku.c, jack.c, jangou.c, jantotsu.c, jollyjgr.c, jongkyo.c, kangaroo.c, karnov.c, kchamp.c, kickgoal.c, kingobox.c, kncljoe.c, koikoi.c, kopunch.c, ksayakyu.c, kyugo.c, ladybug.c, ladyfrog.c, laserbas.c, laserbat.c, lastduel.c, lastfght.c, lazercmd.c, lemmings.c, lwings.c, redclash.c, sonson.c, trackfld.c, yiear.c and yunsung8.c - Fixed access violation caused by driver struct & video / spriteram changes in actfancr.c, ambush.c, brkthru.c and marineb.c (ID 03558) - Rom names fixes in trvwz3h and trvwzh - Dipswitch fixes in coolridr, topshoot and tron - Renamed (rckman2j) to (rockman2j) - Description changes of Arkanoid (bootleg on Block hardware, set 1), The Billiards (Video Hustler bootleg), Cool Riders (US), Cosmic Alien (early version II?), Draw Poker HI-LO (M.Kramer), Draw Poker HI-LO (Alt), Draw Poker HI-LO (Japanese), Invasion (Sidam), Kimble Double HI-LO, HI-LO Double Up Joker Poker, Phantomas (bootleg of Spectar) and Rallys (bootleg of Spectar) - MAME . Added tilemap_create_device() function which lets you create a tilemap from within a device, and be passed that device in your callback. . Memory system changes: Memory banks are now referenced by tag rather than index. Changed all memory_bank_* functions to specify a tag. Bulk-converted existing banks to be tagged "bank##" in order to ensure consistency. However, going forward, the tags don't matter, so please name them something useful. Added AM_BANK_READ/AM_BANK_WRITE macros to let you specify bank tags. Also changed AM_ROMBANK and AM_RAMBANK macros to accept tags as well. Added new functions memory_install_read_bank_handler and memory_install_write_bank_handler to install banks by tag name, similar to input ports. Changed internals of memory system to dynamically allocate all banks. The first time a bank with an unknown tag is installed, a new bank object is created and tracked internally. Removed SMH_* macros entirely. In their place are a series of expanded macros and new memory installation helpers. Some mappings below (not all are new): AM_READ(SMH_RAM)-> AM_READONLY, AM_WRITE(SMH_RAM)-> AM_WRITEONLY, AM_READWRITE(SMH_RAM, SMH_RAM)-> AM_RAM, AM_READ(rhandler) AM_WRITE(SMH_RAM)-> AM_RAM_READ(rhandler), AM_READ(SMH_RAM) AM_WRITE(whandler)-> AM_RAM_WRITE(whandler), AM_DEVREAD(tag, rhandler) AM_WRITE(SMH_RAM)-> AM_RAM_DEVREAD(tag, rhandler), AM_READ(SMH_RAM) AM_DEVWRITE(tag, whandler)-> AM_RAM_DEVWRITE(tag, whandler), AM_READ(SMH_ROM)-> AM_ROM, AM_WRITE(SMH_ROM)-> (was a no-op), AM_READ(SMH_NOP)-> AM_READNOP, AM_WRITE(SMH_NOP)-> AM_WRITENOP and AM_READWRITE(SMH_NOP, SMH_NOP)-> AM_NOP. For dynamic memory handler installation of the various types, use the new functions: memory_unmap_read(), memory_unmap_write(), memory_unmap_readwrite() -- unmaps a section of address space, memory_nop_read(), memory_nop_write() and memory_nop_readwrite() -- nops a section of address space. Cleaned up the internals of the address_map_entry structure, and also normalized the way the address map macros work to remove a lot of redundancy. Renamed functions: memory_install_read/write_port_handler to memory_install_read/write_port. Memory shares are now specified by tag instead of index. The AM_SHARE() macro now takes a tag parameter. All existing shares have been bulk renamed to "share##". However, the name does not matter, so please use descriptive tags going forward. Added tag validation for bank and share tags. Added flag to tagmap_add functions that optionally will replace existing objects if a duplicate is found. Internal code shuffling. Address maps initialized internally now call the same installation handlers that drivers do for dynamic installation. Cleaned up some parameter ordering and error detection. Added new functions: memory_install_ram() to assign a un-named bank to a region and specify a pointer to where the RAM lives. If this is called in the DRIVER_INIT function or MACHINE / SOUND / VIDEO_START functions, then it is permissible to specify NULL, in which case the memory system will allocate memory and register it for save states. memory_install_rom() is like the above except that it only installs a read handler. memory_install_writeonly() is like the above except that it only installs a write handler. Updated several instances in the code that were assigning banks to these sorts of static RAM regions and simplified the code. Apply mirrors and global masks at address map detokenizing time rather than later. . Added validity check that AM_BASE_MEMBER and AM_SIZE_MEMBER items point within the bounds of the driver_data structure. . Cleaned-up several drivers; added missing prototypes and removed dead ones, marked non-exported functions as static and removed cases of #include "deprecat.h" . Fixed srcclean handling of embedded comments within strings - MESS: Fixed CP1610 disassembler 0.135u2 - New games: Credit Poker, Double Joker Poker, Iron (SNES bootleg), Mainline Double Joker Poker, Noraut Deluxe Poker (console), Noraut Joker Poker (original), Noraut Red Hot Joker Poker (alt HW), Royal on Ten and Submarine - New Non-Working games: Capcom Fighting Jam, Dragon Chronicles, DRHL Poker, Final Furlong, The King of Fighters Neowave (Japan), Kimble Double Hi-Lo, Kinnikuman Muscle Grand Prix, Magic Lotto Export, Mobile Suit Z-Gundam: A.E.U.G. vs Titans, Mobile Suit Z-Gundam: A.E.U.G. vs Titans DX, Netchuu Pro Yakyuu 2002, Noraut Joker Poker (V3.011a), Noraut unknown set 1 (console), Noraut unknown set 2 (console), Poker / Black Jack, Quiz and Variety Suku Suku Inufuku 2, 2x Soul Calibur II, Soul Calibur III, Taiko No Tatsujin 9, 3x Tekken 4 and Tekken 5.1 - New clones: Airline Pilots (Rev. A), Cannon Ball (bootleg on Crazy Kong hardware) (set 3, no bonus game), Gorf (program 1, with German Language ROM), Magic Card Jackpot (4.01), Super Puzzle Fighter II Turbo (Hispanic 960531), Wizard of Wor (with German Language ROM) and X-Men (4 Players ver EBA) - New drivers: namcops2.c and sub.c - Support for Namco System 246 and 256 system - I386 CPU: Fixed REP prefix to use segment:SI when address size is 16-bit (ie: when using OUTSB or OUTSW) - I8008 CPU: Added Intel 8008 CPU with CF clear after binary operations - INS 8050/60 SC/MP CPUs: Support for National Semiconductor INS 8050/60 SC/MP CPUs - TMS7000 CPU: Fixed disassembly of PCREL addressing mode - Audio streams: Switched from linear interpolation to antialiased point sampling when upconverting low-frequency sound streams. This should de-muffle low-frequency streams, treating them has having hard edges at sample boundaries. - Speaker sound: Actually use the speaker interface if provided - YM2610 sound: Fixed missing sounds in sets/drivers using the YM2610 (ID 03542) - 8255 PPI: Clear input latch after reading it - ADC08x A/D Converter . ADC08x chips are all hooked up using input/output ports . Renamed adc0831_interface to adc083x_interface . Fixed adc083x gnd input . Removed stray call logerror from adc083x.c . Fixed default adc083x sars value . adc083x reset only affects outputs - SCSI: Added support for command 0x2a (Write w/ 32-bit LBA), upped input buffer size in WD33C93 controller. - cidelsa.c . Converted page RAM functions to use devcb for CDP1869 video . Added pull interface for predisplay - drw80pkr.c . Added Save State support . Added preliminary dipswitch settings . Correct I8039 CPU clock value to 8MHz . Correct sound (now works) . Narrowed down more IO R/W areas - hng64.c . Added preliminary hook-up for multi-byte chain mode for sprites, used by Buriki One and the two Samurai Shodown games. . Fixed back plane color, thus giving characteristic blue background for POST screen . Improved Dual Port emulation, fixing the POST errors about it. . Implemented "simple" scroll register layout and "complex" scroll register layout . Correct sprite end boundary, fixes credit messages in Buriki One . Fixed scrolling text in Buriki One attract mode . Hooked up global bpp switch for sprites, HW doesn't seem capable of doing per-sprite bpp switch, fixes coin credit text in Buriki One. . Implemented V-Blank register, fixes palette uploading in Samurai Shodown 1 & 2 . Fixed sprite wrap-around . Implemented irq 11, used by the racing games for network check, currently crashes due to an invalid parameter inside the 3D packets. . Added 16x16 / 8x8 tilemap mode select, fixes one scene in Extreme Rally and transition layer in Fatal Fury WA (squares on title screen) . Added alt layout for the roz, fixes Roads Edge graphics before the title screen. . Implemented sprite clearance capability, fixes garbage gfxs as seen in Samurai Shodown 64 1 & 2. . Implemented x/y sprite global offsets, used by Samurai Shodown 64 1st ranking screen. . Hooked-up backup ram . Documented some sprite findings . Re-implemented zooming in Fatal Fury WA, and added alternative zooming mode used by the other games, they have some precision bugs though. . Implemented preliminary additive blending . Slight optimization to the tile dirty marking . Better documentation of mosaic and floor modes . Implemented sprite disable bit . Implemented dynamic visible area . Start to document 3D / framebuffer video registers, implemented a quick hook-up that fixes Buriki One 3d model colors minus one case. . Implemented screen disable when the visible area regs are equal to zero and fixed back layer. . Fixed RDP TMEM size, removed separate tlut, fixed tlut uploads. - igs017.c . Added sprites list stop to driver . Implemented missing joystick mode in 'Mahjong Man Guan Da Heng' and 'Mahjong Super Da Man Guan II' (ID 03544) . Fixed inaccurate donden graphics (ID 03547) - magicard.c . Added PCB layouts, hardware description and technical notes to the driver. . Changed the bipolar prom dumps to serial I2C bus EEPROM . Fixed regression in the driver - namcos12.c: Fixed Tekken games do not proceed into attract mode after initial screen (tekken3, tektagt) (ID 03545) - namcos23.c . Correct memory mapping of palette RAM and handling of palette data. Power-On Self Test now shows correct colors. . Changed Panic Park from SS23 to S23 game - norautp.c . A lot of work in memory maps and machine driver stuff . Improved inputs / dipswitches for some games . Added lamps support / layouts to new working games . Added preliminary support to Kimble hardware . Added support to CGI's Credit Poker 30x games . Added new (and fixed old) technical notes . Renamed norautpn descripion to Noraut Deluxe Poker (bootleg) . Added a placeholder for tpoker2's undumped 68705 MCU . Reorganized the driver, plus some clean-ups . Renamed kimblejp to kimbldhl. Changed game description to Kimble Double Hi-Lo . Added specific memory map & machine driver to Kimble Double Hi-Lo . Fixed the Kimble Double Hi-Lo CPU type . Added notes about the code obfuscation and PPI's handling/offsets - taito_f3.c: Fixed visible area in Grid Seeker - zn.c: Fixed missing sound in glpracr3, hvnsgate and raystorm (ID 03540) - Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA): Updated protection to remove display corruption - Extreme Downhill: Fixed game doesm't start (ID 03553) - Galaxian 3 - Theater 6 : Project Dragoon . Fleshed out skeleton driver. Each CPU board passes many self-tests. . Removed 68000 CPU6/7. Fixed 68020 CPU1/2 and 68000 CPU3 clock speeds. Added 2x C140 sound, dual screen (2x 512x512) and dipswitches. Fixed samples rom loading. . Master and slave CPU comms hooked up - Ground Effects: Hooked up eepromdev.c using PORT_READ_LINE_DEVICE/PORT_WRITE_LINE_DEVICE in Ground Effects. Output ports are now affected by IP_ACTIVE_HIGH/IP_ACTIVE_LOW (eepromdev.c has active low cs). The previous value for callbacks in inptport.c is now tracked per field. This saves recalculating it for PORT_CHANGED & conditional fields wouldn't always get updated correctly. Tidied up eepromdev.c interface. - Joker's Wild . Bypassed the rng test . Implemented bare minimum to allow it to go into gameplay . Fixed tilemap graphics - Long Hu Bang II: Fixed clone Mahjong Nenrikishu SP, which has a black screen after the game start (ID 03546). Changed 'Mahjong Nenrikishu SP' to a clone of 'Long Hu Bang II' - (Medal) Yumefuda [BET]: Updated the Alba ZG driver to use hanafuda standard inputs, EEPROM device, and memory_set_bank in place of memory_set_bankptr. - Portraits: Implemented use of per tile colour lookup ROM in Portraits, colour decode is still wrong. - Racin' Force: Reversed steering wheel input and gas pedal, which is enough to get the game to boot. - Winding Heat: Reversed steering wheel input, the USA cabinets are however hooked up the other way. - Input port . Added device support to the input system. Internally this replaces PORT_CUSTOM/PORT_CHANGED, backward compatibility is achieved with an internal dummy device. Added output lines (IPT_OUTPUT), which can be written using new input_port_write* functions or directly from a memory map using AM_WRITE_PORT converted adc083x to use io lines. . Added new module tagmap which is a simple hashed string map. Updated device and input port lists to use the tagmap for tag searches. Also removed the whole "quark" thing from the validity checker in favor of using the tagmaps. . Made DEVCB_INPUT_PORT(tag) work for write callbacks - Converted the following drivers to use EEPROM device: astrocorp.c, deco156.c, eolith.c, eolith16.c, groundfx.c, kaneko16.c, limenko.c, taito_b.c, taito_f3.c, taito_z.c, taitojc.c and toaplan2.c - Added driver data structs to beaminv.c, bwing.c, capbowl.c, cball.c, changela.c, cheekyms.c, circus.c, circusc.c, clayshoo.c, cloud9.c, crgolf.c, dcheese.c, dday.c, ddragon.c, ddragon3.c, decocass.c, destroyr.c, docastle.c, dotrikun.c, embargo.c, fgoal.c, flyball.c and freekick.c - Added driver data and save state support to albazg.c, bigevglf.c, blmbycar.c, blockout.c, bogeyman.c, btime.c, chaknpop.c, chinagat.c, dogfgt.c, dominob.c, esd16.c, f-32.c, fantland.c, fcombat.c, finalizr.c, firetrap.c, fitfight.c, flstory.c, funkybee.c, fuukifg2.c, fuukifg3.c, scregg.c, yunsun16.c and zerozone.c - Added save state support to 2mindril.c, armedf.c, ashnojoe.c, astrocorp.c, bigfghtr.c, bublbobl.c, calorie.c, canyon.c, cchance.c, champbas.c, champbwl.c, chanbara.c, citycon.c, cntsteer.c, commando.c, compgolf.c, cop01.c, copsnrob.c, cosmic.c, crospang.c, cultures.c, dacholer.c, ddayjlc.c, ddealer.c, dec8.c, deniam.c, discoboy.c, diverboy.c, dorachan.c, dragrace.c, dreamwld.c, drgnmst.c, dribling.c, drmicro.c, drtomy.c, drw80pkr.c, dunhuang.c, dwarfd.c, dynadice.c, egghunt.c, enigma2.c, epos.c, equites.c, exedexes.c, exerion.c, exprraid.c, funybubl.c, gaiden.c, galaxi.c, missb2.c and rocnrope.c - Description changes of Cannon Ball (bootleg on Crazy Kong hardware) (set 1, buggy), Cannon Ball (bootleg on Crazy Kong hardware) (set 2, buggy), Noraut Deluxe Poker (bootleg), Noraut Joker Poker (alt), Sand Scorpion (Chinese Title Screen, Revised Hardware) and Puzzle Bang Bang (Korea, version 2.8 / 990106) - Dipswitch fixes in gal3, hng64.c and jokrwild - Renamed romset (norautv3) to (noraut3a) - MAME . Removed limited use of spriteram_3 global . Added memory_install_write_port_handler & memory_install_readwrite_port_handler to be consistent with installing handlers . Added AM_BASE_SIZE_MEMBER() macro for specifying both base and size structure members at once. Updated all cases where this could be used. . Added new module tagmap which is a simple hashed string map. Updated device and input port lists to use the tagmap for tag searches. Also removed the whole "quark" thing from the validity checker in favor of using the tagmaps. . Memory regions now use a tagmap for lookups . Introduced a generic_pointers structure within machine that is designed to hold generic pointers that are commonly used. Moved generic_nvram, videoram, colorram, spriteram* and paletteram* pointers there. Added AM_BASE_GENERIC and AM_SIZE_GENERIC macros for initializing generic pointers in memory maps. Also added AM_BASE_SIZE_GENERIC to set both base and size in one step. . Purged remaining globals from video\generic.c and audio\generic.c . Moved global variables out of machine\generic and into a private data structure hanging off of the running_machine. Added newly-needed machine parameters to coin_counter_w, coin_lockout_w, and coin_lockout_global_w. Also added machine parameter to set_led_state. . Added interface functions to get the number of dispensed tickets and to increment the count, to remove the need for direct access to these global variables. Also added functions to get the current count on a particular coin counter and to determine the lockout state. . Cleaned up many driver data structs: Dropped almost completely the use of generic sizes with struct members. Reduced as much as possible accesses to cputag calls during emulation (they are now mainly concentrated at MACHINE_START & DRIVER_INIT). . Fixed audio output lengths in aviio.c . Added set name to -romident . Removed some rogue occurrences of 'x1snd' resulting from device tag mass-change 0.135u1 - New games: Amuse (Version 30.08 IBA), Dream 9 Final, GEI Multi Game, Mahjong Man Guan Da Heng, Mahjong Nenrikishu SP, Oh! Paipee, Sports Authority, Super Poker, Tougenkyou and Touche Me - New Working games: Run and Gun 2, Rushing Heroes, Mahjong Super Da Man Guan II, Skimaxx and Soccer Superstars - New Non-Working games: Draw 80 Poker, Jingi Storm - The Arcade, Karous, 2x Print Club 2, Super Tarzan and Trigger Heart Exelica - New clones: 5x The Big Breakfast, Cosmic Alien (first version), Dungeons & Dragons: Shadow over Mystara (Hispanic 960223), Gals Panic S - Extra Edition (Korea), Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86), Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86), Last Duel (Japan), Mad Crusher (Japan), Mahjong Ryukobou (Japan, V030J), Light Bringer (Ver 2.20 1994/04/08), Mega Man 2: The Power Fighters (Hispanic 960712), Popeye-Man, R-Type II (Japan, revision C), Steraranger (Moon Cresta bootleg), Super Street Fighter II: The New Challengers (Hispanic 930911), Tarzan (V107), Top Racer (no MB8841 + MB8842), Silent Scope (ver JZD), Tournament Solitaire (V1.06, 08/03/95) and Ultimate Tennis (v 1.4, Japan) - Removed games: Top Racer (set 2) - New drivers: d9final.c and nbmj8900.c - DSP56156 CPU: Added save state support to Polygonet Commanders driver and the DSP56156 CPU core - I386 CPU . Added Nested Task flag, and I/O Privilege flags. They aren't implemented in any way, but can now be set or reset. Can be used to detect a 80386 or later CPU. . Implemented ENTER instruction . Made IRQ vectors treated as 8 bytes when in protected mode, and made the addresses pushed onto the stack 32-bit if the gate descriptor used is a 386 interrupt or trap gate (also when in protected mode, will always be 16-bit if in real mode). - MC680x0 CPUs . Reworked PMMU/core interface so PMMU now sees all cop 0 instructions . Improved disassembly of PMMU instructions . Fixed disassembly for EC/LC variants of '030/'040 . Preliminary 68LC040 support - MIPS3 CPU . Now properly generating TLB fill exceptions under correct circumstances . TLB exceptions no longer trash low 4 bits of Context . Exceptions with the EXL bit set always go to vector 0x180 . Fixed bug in vtlb code that caused us to lose track of previously registered fixed page ranges . Fixed MIPS3 behavior that would not clear out invalid page ranges from the VTLB under certain circumstances . Added support for TLB sizes less than 48 entries . Fixed TLBMOD exceptions so they also properly set BadVAddr - PowerPC 603 CPU: Fixed PowerPC 603 translation so it doesn't get stuck in an infinite loop after the first fixup. - PSX CPU: Removed some magic numbers from machine\psx.c, replaced with #defines. - Z80 CPU . Added a check for NOP in interrupt mode 0. This allows code like ei / halt / di to work correctly. A better solution would be to implement full support for arbitrary opcodes in mode 0. . Refactored Z80 to use devcb - Dynamic Re-Compiling: Fixed broken DRC logging - SN76489 sound . Updated SN76489/A to have correct PRNG waveforms (a 0 bit was missing at the beginning, and beginning of SN76489 waveform was all 1s instead of 0s as measured on hardware) . Trashed the old pre-accurate-clocking STEP based sample averaging scheme from SN76489 and friends, vastly simplifying the code. Made the output bipolar rather than only above the 0 line. . Added missing statement to the get_safe_token function for the new added SN94624 (same as SN76489) - SN76496 sound . Got rid of SN76496's R->OldNoise since it causes problems for gamegear/sms. Changed noise taps accordingly. Redid change to gamegear/sms for XOR vs XNOR, now verified by Justin Kerk. Verified gamegear noise taps thanks to sample provided by Justin Kerk. Add stereo sound support to sn76496.c for gamegear. . Added NCR7496 variant to sn76496.c. Updated comments to show which chips are currently verified. Cleaned up comments. - TMS32010 sound: Changed to consistently use Intel notation for hex values in the disassembler, rather than a mix of Motorola and Intel notation. - YMF271 sound: Updated LFO information in the core - I8257/I8237 DMA: Refactored cores to use devcb - EEPROM . Added PORT_CUSTOM(eepromdev_bit_r) for EEPROM devices . Added a MDRV_EEPROM_NODEFAULT_ADD macro for drivers which do not need default data size / data. - aleck64.c . Added missing BLTZAL opcode to the RSP core . Added normpnt.rom and normslp.rom BIOS files . Many N64 RDP fixes . Fixed the 64-bit crashing issues in N64 - dec0.c: Fixed possible NULL pointer dereference in video\dec0.c - gei.c . Merged findout.c and getrivia.c to gei.c driver . Added dip switches for Super Poker . Improved inputs in Sports Authority . Fixed colors in games - hng64.c . Rewroted the MCU simulations, basically to be more clean than before. . Improved Beast Busters 2nd Nightmare MCU simulation and added inputs, it can now reach gameplay mode too. . Improved I/O simulation communications in Samurai Shodown 64, now inputs works and enters into proper gameplay. . Removed program counter-based routines in Samurai Shodown 64, this fixes the first episode that can now be coined up, however it hangs soon after that. . Added work-around to get to the character screen in Samurai Shodown 64, hangs again after it. - igs011.c . Changed igs_blit.c to igs011.c driver and cleaned up driver . Fixed OKI6295 clock speed and changed region gfx1 to blitter and gfx2 to blitter_hi . Implemented hopper simulation in Long Hu Bang/ II and clones Mahjong Ryukobou (Japan, V030J) and Wan Li Chang Cheng (China, V638C) . Decrypted clone Mahjong Ryukobou (Japan, V030J) . Fixed visible area in Mahjong Long Hu Zheng Ba 2 - igs017.c . Merged igs_m68.c and tarzan.c with igs017.c . Implemented tiles flip x and video disable . Added hopper simulation to Mahjong Man Guan Cai Shen . Decrypted Mahjong Man Guan Da Heng (Taiwan, V123T1) . Almost complete decryption of Super Tarzan and clone Tarzan (V107) . Fixed visible area in Mahjong Super Da Man Guan II and Mahjong Shuang Long Qiang Zhu 2 - konamigx.c . Added many improvements to Konami GX rendering, specifically improving Soccer Superstars and Rushing Hero. . Fixed Konami GX type 4 protection seed $d15, used to protect a sprite bank in Run and Gun 2 / Slam Dunk 2 . Implemented input buffer copy protection in Rushing Heroes, game is now somewhat playable with heavy gfx glitches . Added dual screen output to the Konami GX Type 3/4 games . Fixed sprite ROM loading in clone Slam Dunk 2 . Fixed RGB555 palette RAM format in Soccer Superstars - m63.c: Merged some include files and merged audio\fghtbskt.c - model3.c . Replaced Model 3 fatalerror() calls with development-friendly logerror() calls . Allows 'Daytona USA 2 Power Edition' to boot again - ms32.c . Added correct RAM sizes as per Charles McDonald's notes . Implemented priority in the same manner as tetrisp2 . Added shadows via custom mixing (gametngk and tetrisp / tp2m32 are much improved). This fixes graphic glitches in tetrisp, gametngk, gratia and p47aces (ID 01607) . Added the alt tilemap layout used by F1 Super Battle for the backgrounds . Added F1 Super Battle notes and IRQ generation code from nuapete . Fixed palettesize from 32768 to 65536 colors (ID 01607) . Changed region user1 to gfx5 in F1 Super Battle - peplus.c: Fixed out-of-bounds array accesses - suprnova.c: Improved sprite shrinking, used by Gals Panic S2 and Sengeki Striker. This fixes missing graphic layer in Sengeki Striker stages 3 and 5 (ID 03498) and input test screen shows zoomed in text of galpans2, galpans3 and panicstr (ID 03509) - tmaster.c . Added a MDRV_EEPROM_NODEFAULT_ADD macro which do not need default data size / data . Updated Galaxy Games BIOS to use EEPROM_NODEFAULT - toaplan2.c . Cleaned up V25 support, enabled V25 CPU in Batsugun (16 MHz), Dogyuun (12.5MHz), FixEight (16 MHz), Knuckle Bash (16 MHz), V-Five (10 MHz) and added decryption table info for the other games. . Improved the V25S memory map in Batsugun, now CPUs starts to communicate properly, needs to find & implement the irq that clears the RAM flag and decrypt the relative opcodes in that. . Fixed reversed 'Guest Player/Player Select/Special Course' dipswitch settings in Armed Police Batrider (ID 03494) - vamphalf.c: Restored Final Godori and Wyvern Wings to working - Bionic Commando: Added save states - Boxer (prototype): Merged video emulation into driver - Cosmic Alien: Fixed rom names. Marked colors as wrong, added TODO to the driver for fixing colors. Added new XTAL value and switched driver to use it. - Draw 80 Poker - Minn . Added various graphics improvements and correct colors. Game boots much farther and cleaner. Additional graphics/memory cleanup and preliminary input support. . Renamed drw80pkr to drw80pk2. Appears to be later version and MN jurisdiction specific. . Replaced drw80pkr with an older dump from Team Europe - Exerion: Fixed Z80 CPU1/2 and 2x AY-3-8910A clock speeds and VSync - Forte Card: Fixed gfx decoding and hooked up MC6845 - Jackpot Cards . Patched NVRAM check, makes the game playable but you cannot save settings so it's not yet working. . Removed dual layout, added Map base video register and fixed transparent issues in the driver. - Lady Frog: Fixed visible area and dipswitches - Mahjong Vegas: Improved dipswitches - Mole Attack: Fixed default input mapping as well as comment/information (ID 02155) - Ms. Pac-Man/Galaga - 20 Year Reunion: Updated game to use EEPROM device. Proper save state support still needs some work (to handle the rom banking mechanism). Added a MDRV_EEPROM_NODEFAULT_ADD macro which do not need default data size / data. - Pole Position . Documented presence of Namco customs on the Pole Position bootleg (Top Racer) sets . Removed Namco devices from bootlegs which don't have them - Puyo Puyo: Identify Puyo Puyo (Japan) set as Rev B and correct various rom names - Skimaxx: Added emulation of background graphics (blitter), sound and inputs. Replaced the 2x 68020 with 68EC030. Added 4x OKI6295 (4/2/4/2 MHz). Fixed oki1/2/3/4 rom loading, visible area and VSync. Changed region gfx to blitter. - Strike Gunner S.T.G: Added control fix to allow a 3rd button mapping for each player - thus allowing for the feature of merging ships in 2 player games. - Super Breakout: Fixed parent relationship between (rev 03) and (rev 04) - The Three Stooges In Brides Is Brides: Fixed input. P1-P2-P3 button does not match documentation. (ID 03535) - Time Pilot '84: Updated SN76489/A to have correct PRNG waveforms (a 0 bit was missing at the beginning, and beginning of SN76489 waveform was all 1s instead of 0s as measured on hardware). Trashed the old pre-accurate-clocking STEP based sample averaging scheme from SN76489 and friends, vastly simplifying the code. Made the output bipolar rather than only above the 0 line. This fixes startup tune no longer sounds like in Time Pilot '84 (ID 00941). - Tournament Solitaire: Improvements driver, Added newer version of toursol, set toursol date to 1995 and toursol CPU speed to 40MHz. - Video Poker: Fixed out-of-bounds array accesses. Fixed clones Video Cordoba, Video Dado and Black Jack crashes immediately after OK (ID 02734) - Verified/changed clocks and VSync in Aero Fighters, Exerion, Guzzler, Karate Champ clones, Power Spikes, Swimmer and Turbo Force - Added driver data struct to 1942, 1943.c, 4enraya, Ace, Ambush, angelkds.c, appoooh.c, Arabian, arkanoid.c, astrof.c, Boxer (prototype), espial.c, Formation Z, Hanaroku and zodiack.c - Added driver data struct and save state support to 10-Yard Fight, adp.c, astinvad.c, atarifb.c, Avalanche, bankp.c, Basketball, Battle Cross, Battle Lane! Vol. 5, blockade.c, blueprnt.c, brkthru.c, Car Jamboree, Hexa, m10.c, m52.c, m62.c, m63.c, marineb.c, n8080.c, Pandora's Palace, Popper, PT Reach Mahjong, Space Guerrilla, travrusa.c and Tropical Angel - Rom names fixes in rtype2 and segac2.c - Dipswitch fixes in blockade.c, igs017.c, ladyfrog.c, royalmah.c, skimaxx and toaplan2.c - Renamed romset (chmplst2) to (lhb2), (drw80pkr) to (drw80pk2), (grtwall) to (wlcc), (lightbr) to (lightbrj), (snowboar) to (snowboara), (snowboara) to (snowboar), (sscopea) to (sscopeb), (sscope) to (sscopea), (topracrb) to (topracera) and (toursol) to (toursol1) - Description changes of Cosmic Alien (version II), Dragon Breed (M81 PCB version), Draw 80 Poker - Minn, Huang Fei Hong (Alien Challenge?), Image Fight (Japan, revision A), Long Hu Bang (China, V035C), Long Hu Bang (China, V033C), Long Hu Bang II (Hong Kong, V185H), Mahjong Super Da Man Guan II (China, V754C), Puyo Puyo (Japan, Rev B), Snow Board Championship (Version 2.0), Tarzan (V109C), The Big Breakfast (Set 1 UK, Game Card 95-750-524), Top Racer (with MB8841 + MB8842, set 1), Top Racer (with MB8841 + MB8842, set 2), Tournament Solitaire (V1.04, 06/22/95), Wan Li Chang Cheng (China, V638C) and Xing Yun Man Guan (China, V651C) - MAME . Allowed child CPUs to be used in read8/write8 callbacks . Expanded some sound chip tags to specifically indicate they are sound chips (generally, "ay" becomes "aysnd", "fm" becomes "fmsnd", etc) . Fixed wrong order parameters in memset 0.135 - New games: Mahjong Daimyojin (Japan, T017-PB-00), Mahjong Seiryu Densetsu (Japan, NM502) and Super Breakout (rev 03) - New Non-Working games: Airline Pilots Deluxe and Tournament Solitaire - New clones: Darkstalkers: The Night Warriors (Hispanic 940818), Gran Premio F1 (Italian bootleg of Pole Position II), Hyper Sports (bootleg), New Lucky 8 Lines (set 3, extended gfx), Pinball Action (set 5, encrypted) and Scramble (Karateko, French bootleg) - New drivers: pcat_dyn.c - 680x0 CPU . Support PMOVE modes from PMMU . Allow the FPU to be used for both '030 and '040 . Added byte and word FPU loads/stores . Fixed buggy FPU 64-bit stores in the (An) addressing mode - TMS32010 CPU: Changed unknown opcode to output in $xxx format like all other hex values - Z180 CPU: Fixed access violation in all drivers using this CPU (ID 03487) - SCSIHD: Fixed scsihd don't crash if no media is attached - chihiro.c: Fixed access violation before typing OK (ID 03424) - galaxold.c . Fixed AY-3-8910A clock speed in Bongo and Ozon I . Crystallized some clock speeds in MACHINE_DRIVER_START( harem ), put '//?' near ones that didn't look correct. - galdrvr.c . Fixed unable to use normal coin slots (coin lockout) in clone Kamakazi III (superg hack) (ID 03378) . Changed references to galaxiaj in game names to galaxiana. - goldstar.c . Completed the New Lucky 8 Lines / New Super 8 Lines hardware/PCB layout . Added New Lucky 8 Lines (set 3, extended gfx). This set has the New Lucky 8 Lines / New Super 8 Lines program, so bets are up to 64. Same extended tileset for reels, but lacks of the New Super 8 Lines title tiles. Maybe is a hidden feature, maybe just graphics for another hack. . Added technical notes - itech8.c: Fixed access violation after OK in dynobop, sstrike, slikshot, slikshot17 and slikshot16 (ID 03491) - kaneko16.c: Changed sound banking on B.Rap Boys and Shogun Warriors to use an OKIM6295 address map and banks. Changed region samples to oki1. - legionna.c + raiden2.c: Documentation update for the Seibu COPDX-based games (machine\seicop.c) - model2/3.c: Added missing dependencies in video driver - namcofl.c, namconb1.c: Removed MCU communication hack. This now fixes the music tempo in most games (ptblank, sws95, sws96, sws97, outfxies, machbrkr, speedrcr) (ID 02265). This fixes also the tandom timed crash during gameplay (ID 03502). - naomi.c . Added later version of NAOMI analog I/O board program to 18 Wheeler (epr-22082.ic7 (jvsio - $10000)) . Added 'NAOMI Airline Pilots Deluxe BIOS' - taitogn.c: Fixed access violation before typing OK (ID 03425) - toaplan2.c: Fixed recent sprite breakage in some Toaplan2 video HW-based games (batrid, truxton2, bkraidu, shippumd and clones) (ID 03503) - triforce.c: Fixed access violation before typing OK (ID 03424) - zn.c: Fixed access violation in acpsx, atpsx, atluspsx, cpzn1, cpzn2, psarc95, taitofx1, tps and vspsx (ID 03423) - D-Day: Re-added 2nd button back to clone (Centuri) - Mouja: Fixed sound effects/voice missing (ID 03496) - Polygonet Commanders and Poly-Net Warriors . Changes to the DSP56156 CPU core . Added JF table decode function . Added ABS, IMAC, and TFR2 opcodes . Fixed various flags for TST, INC24, SUB, CMP, and CMPM . Added hack to DO function to accommodate for the CPU core's inaccurate math - Quasar: Fixed segmentation fault after OK (ID 03490) - San Francisco Rush: Added abort button - Turbo Outrun (Mega-Tech): Updated CRC/SHA1. Note: Original dump of epr-14674.ic1 had CRC(c2b9a802) with the byte at offset 3 being F6 instead of Fe, this seems like a bad dump when compared to the Genesis rom which has been verified on multiple carts, chances are the ROM had developed a fault. - Vegas Roulette: Fixedcontrols so that the Red column can be selected - Dipswitch fixes in ddenlovr.c and raiden2.c - Renamed romset (sdgndmrb) to (grainbow), (shogwarr) to (shogwarru) and (shogwarre) to (shogwarr) - Description changes of Super Breakout (rev 04), Super Galaxians (galaxiana hack) and Space Invaders Galactica (galaxiana hack) - MAME . Updated most tools in src\tools to be straight BSD license . Added chdman option to create uncompressed writeable HD images for MESS - Debugger: Added -flipped option to UNIDASM to output with disassembly first and address/data bytes afterwards in comment form. 0.134u4 - New games: Mahjong Gekisha and New Lucky 8 Lines / New Super 8 Lines - New Working games: Hana Jingi - New Non-Working games: 18 Wheeler (JPN), Crazy Taxi (JPN, USA, EXP, KOR, AUS), Criss Cross (Sweden), Draw Poker Hi-Lo (Japanese), Ferrari F355 Challenge (Twin), Ferrari F355 Challenge 2 (Twin), Go! Go! Connie chan Jaka Jaka Janken, Hi-Lo Double Up Joker Poker, Jambo! Safari (JPN, USA, EXP, KOR, AUS), Miracle Derby - Ascot, Power Smash 2 / Virtua Tennis 2 (cartridge), Shootout Pool, Ten Spot and Turbo Outrun (Mega-Tech) - New clones: 1942 (Revision A, bootleg), Alien Syndrome (set 6, Japan, new, System 16B, FD1089A 317-0033), Dungeons & Dragons: Tower of Doom (Hispanic 940412), Sonic Championship, Street Fighter II' - Champion Edition (Double K.O. Turbo II, bootleg), Super Hang-On (Japan, FD1094 317-0038) and Zaxxon (set 3). - New drivers: ggconnie.c and mirderby.c - Hyperstone CPUs: Minor speed improvement to the e132xs core - don't pass opcode parameter when calling instruction handlers. - I386 CPU: Implemented I386 SLDT & STR opcodes - Z80 CPU: Refactored Z80CTC to use devcb - Discrete sound . DSS_INVERTER_OSC optimizations . OSD_PROFILING is now an environment variable. No more recompiling to turn profiling on. . Added two asserts to task processing . Converted final mixing stage to DISCRETE_MIXER. This adds the missing filtering on the Mario Bros walking sounds. . Promoted DISCRETE_RC_CIRCUIT_1 for Sky Raider custom charge to it's own module so it could be used with the same circuit in Battlezone. . Added DISCRETE_COUNTER MIN parameter and optimized speed - SCSIHD update: Fixed parameter interpretation for READ(10) and READ(12). Added WRITE(10). - bingor.c . Added PCB layouts of Bingo Roll / Bell Star (4 sets) . Added Xtal location and values to Bingo Roll / Bell Star hardware/PCB layouts - cidelsa.c: Added helper macro for CDP1869. Added helper macro for CDP1864 screen creation. - goldstar.c . Inputs and DIP switches from the scratch . Added Hopper service button to all New Lucky 8 Lines sets . Added paytable settings DIP switch to all New Lucky 8 Lines sets . Minor clean-ups . Created a new machine driver for Wild Cat 3. Added AY-3-8910A sound to Wild Cat 3. . Mapped the missing d000-efff ROM space range . Added PCB & DIP switches banks layouts for the new game New Lucky 8 Lines / New Super 8 Lines - maxaflex.c: Fixed TRIG3 register handling in GTIA for Atari XL/XE - model3.c: Added two-sided polygon flag and back-face culling to Model 3 video emulation - naomi.c . Hackish support for 8888 tiles (Shootout Pool displays something) . Increased number of JVS analog channels for driving games . Added protection data for 18 Wheeler, Crazy Taxi, Jambo! Safari and Virtua Tennis 2 . Added revision G export BIOS . Added 18 Wheeler JVS I/O and motor controller dumps - norautp.c . Merged the GTI Poker memory map and machine driver with Draw Poker Hi-Lo (M.Kramer) . Created a base machine driver and then derivatives by hardware . Splitted the regular RAM and NVRAM systems . Added 'Hi-Lo Double Up Joker Poker' hardware details and PCB layout . Added 'Hi-Lo Double Up Joker Poker' discrete sound circuitry scheme/documentation - segahang.c, segas16a.c, segas16b.c: Fixed Sega System 16 ROM names according to real machine - Beam Invader: Put back the values for the spinner controls in 'beaminv' to the ones in 0.109u2 when it was submitted. The values for 'beaminva' remain unchanged. Now there still might be something wrong with the visible area as mentioned in the notes. - Battle Zone . Updated game to use new sound module. Adjusted sound levels. Adjusted engine frequency. Remember there is a slider to adjust the frequency. . Set unclipped volume to 50% slider position. This allows you to drive the audio into clipping like a real game. - Bee Storm - DoDonPachi II: Swapped maincpu rom ($100000) from paretn version (ver. 100) with clone (ver. 102) - Blue Shark: Added shark sound - Chihiro BIOS: Added Chihiro BIOS loading. Added 6x BIOS roms. - Cosmic Chasm: Refactored Z80CTC to use devcb. Emulated coin flag flip-flop in Cosmic Chasm. - Crime Fighters: Fixed inputs in (US 4 players) version - Donkey Kong Junior: Set game noise clock to a fixed measured frequency (speed optimization) (audio\dkong.c) - Draw Poker Hi-Lo (M.Kramer) and Draw Poker Hi-Lo (Alt): Added discrete sound - Erotictac/Tactic and Poizone: Sped up driver VIDEO_UPDATE - Express Raider: Fixed freezes after insert coins while playing (ID 03475) - Fire One, Star Fire, Star Fire 2: Added 2x N82S123 proms (DRAM addressing) - Mario Bros.: Converted final mixing stage to DISCRETE_MIXER. This adds the missing filtering on the walking sounds. - Mikie: Verified on PCB all the clocks. Fixed M6809 and Vsync clock. Changed the sound chips to variant SN76489A which are the ones on the PCB. - Multi Game I (V.Ger 2.4): Added Multi Game I PCB layout to the driver - Phoenix: Changed region gfx2 to gfx1 and gfx1 roms addresses in clone 'Phoenix Part 2' - Polygonet Commanders and Poly-Net Warriors: Fixed DSP56156 DO & BSCC opcode bugs - Seta / Visco Roulette?: Added 2x colour proms - Shootout Pool: Added support for hackish 8888 tiles (Shootout Pool displays something) - Shuffleboard: Set proper Foul tone - Sky Raider: Promoted DISCRETE_RC_CIRCUIT_1 for game custom charge to it's own module so it could be used with the same circuit in Battlezone. - Tokio / Scramble Formation: Added PAL dump - U.S. Championship V'ball: Fixed loading (vball) a second time from the MAME game selection screen corrupts the sprite colors (ID 03023) - Dipswitch fixes in gtipoker - Description changes of Alien Syndrome (set 1, Japan, old, System 16A, FD1089A 317-0033), Dump Matsumoto (Japan, 8751 317-0011a), Hana Kochou (Japan, Bet), SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027), Seta / Visco Roulette?, Super Hang-On (bootleg) and Stepping Stage Special. - MAME . Changed device callback system to look up devices owned by the same parent if a child device references another device. . Changed CPU clock display in the UI to display multiplied/divided clocks instead of raw clocks . Relaxed romcmp filename length restriction - Compiling . Fixed a couple of unbalaced profiling calls, and added output to help identify the source of unbalanced calls. . Fixed a couple of source typos . Removed dead function prototypes, most remaining instances of statically initialized variables and improving multisession support. 0.134u3 - New games: Danchi de Quiz Okusan Yontaku Desuyo!, Phoenix Part 2 (bootleg 1981) and 6x Pirate 2 (061005) - New Non-Working games: Bingo Roll / Bell Star V3?, Draw Poker Hi-Lo (M.Kramer), Draw Poker Hi-Lo (alt), PMA Poker and Turbo Poker 2 - New clones: Block 2 (S.P.A. CO. bootleg), Astro Blaster (German), Battle of Atlantis (bootleg), Garage (040219, changed version text), Keks (060328, banking address hack, changed version text). Keks (060403, banking address hack, changed version text), Multi Fish (031124), Pirate (060803), Go For The Gold (Japan) and Sweet Life (041220, banking address hack, changed version text) - Removed drivers: genesis.c - 68000/20/30 CPUs . Throw F-line trap correctly when PMMU instructions are hit on non-equipped CPUs . Added working PMMU address translation (not feature complete, but sufficient to boot several 68030 Macs in MESS) . Fixed up disassembly of some PMMU instructions . Added "68020 with 68851" CPU type - Discrete sound . Fixed some "const" weirdness I introduced . Fixed VREF in CRFILTER_VREF and RCFILTER_VREF. VREF never got used since it was only a static parameter. . Removed enable from CR_FILTER* and RC_FILTER* . Updated drivers accordingly . Added EXPECTED macro to complement the already existing UNEXPECTED macro . Use EXPECTED/UNEXPECTED macros to help the compiler . DISCRETE_CRFILTER, DISCRETE_RCFILTER updates . Revert vref change from rev 6979 . Added capability for all values to be nodes . Better task processing for discrete sounds . Tasks are now processed according to their dependency lists. Tasks can now start early and will only process samples which are already available. This has most impact on drivers which have significant variance in the run-time of individual tasks. . Tasks now process samples in slices, currently max 240 samples / slice. . TASK_GROUP is now obsolete - Will update drivers at a later stage . Step function pointer now back in node, modules may register optimized step functions. . Profiling code now always compiled, introduced static int "profiling = ..." . Some more EXPECTED/UNEXPECTED usage - 8237 DMA: Fixed DMA write mask register (affected drivers are calchase.c, gamecstl.c, mediagx.c, pcat_nit.c, pcxt.c, photoply.c and taitowlf.c) - megadriv.c, megaplay.c and megatech.c . Removed some old and duplicate code for genesis/megadrive from MAME . Moved some megaplay/megatech constant to a struct and refactored some code (work in progress) . Updated bootlegs to use latest genesis code . Fixed 68000, Z80, YM2612, SN76496, sound channels, palettesize and visible area in High Seas Havoc, Puckman Pockimon and Top Shooter - multfish.c . Hooked up RTC (real time clock) . Added documentation about backdoor / bootleg / hacks . Added PCB layout for Igrosoft's Gambling hardware in the driver - multigam.c: Fixed Multi Game 2 / III start but only show a grey screen (ID 03441) - norautp.c . Added Draw Poker Hi-Lo hardware support, based on 8080A CPU. . Mirrored the PPI's offsets to simplify/merge the hardware emulation . Added hardware documentation and PCB layouts from both DPHL sets . Added DPHL discrete sound circuitry scheme/documentation . Added Turbo Poker 2 from Micro Manufacturing and PMA Poker . Documented the Turbo Poker 2 hardware. Added Turbo Poker 2 PCB layout from hi-res picture. . Switched to the new PPI core . Commented out the 3rd PPI device till handshaked strobe lines can be properly emulated. For now, all VRAM access is through direct handlers. This allow to remove the hacks per set needed to boot the games. - toaplan2.c: Fixed resets after rom check in batrid, bgaregga, bkraidu and clones (ID 03465) - Attack Ufo: Fixed dipswitches - Backfire!: Fixed game mode setting error on startup in clone (set 2) (ID 03470) - Blue Shark: Added octopus sound - Dynamite League: Changed region gfx2 to user1 - GTI Poker: Replaced Z80 with 8080 CPU - King & Balloon: Fixed wrong coinage DIP options (ID 03463) - Recordbreaker: Added 8k user1 rom - Shuffleboard: Started discrete sounds - Space Walk: Started Springboard Missile sound - Space Encounter: Fixed enemy shot sound - Spikeout: Added correct 64M Mask CROM dumps - Starship 1: Fixed motor sounds - The End: Added color prom to clone Omega - Rom names fixes in froggers1, froggers2, pacmanbl, pacmanbla and recordbr - Description changes of Bingo Roll / Bell Star?, Crazy Monkey (031110), Crazy Monkey (031110, backdoor set 1), Crazy Monkey (031110, backdoor set 2), Crazy Monkey (050120), Crazy Monkey (050120, backdoor), Fruit Cocktail (040216), Fruit Cocktail (040216, banking address hack), Fruit Cocktail (040216, backdoor), Fruit Cocktail (050118), Fruit Cocktail (050118, backdoor)', Garage (040219), Garage (040219, backdoor), Garage (050311), Garage (050311, backdoor), Island (050713), Island (050713, backdoor), Island 2 (060529), Island 2 (060529, banking address hack), Keks (060328), Keks (060328, banking address hack), Keks (060328, backdoor), Keks (060403), Keks (060403, banking address hack), Lucky Haunter (031111), Lucky Haunter (031111, backdoor), Lucky Haunter (040216), Lucky Haunter (040216, backdoor), Lucky Haunter (040825), Lucky Haunter (040825, backdoor), Multi Fish (040308), Multi Fish (040308, banking address hack), Rock Climber (040827), Rock Climber (040827, backdoor), Rock Climber (040827, new service menu), Resident (040513), Resident (040513, backdoor), Sweet Life (041220) and Sweet Life (041220, backdoor). - MAME . Added EXPECTED macro to complement the already existing UNEXPECTED macro . Asserted copyright ownership of core library and OSD files, and relicensed them under the standard BSD license, with permission of the original authors. The files in question all live under src\lib\util and src\osd. - Debugger: Device memory spaces are now visible in the debugger 0.134u2 - New games: Othello (version 3.0) - New Non-Working games: Seta Roulette? and Virtua Fighter 4 Evolution (Cartridge) - New clones: 48 in 1 MAME bootleg (ver 3.02), 48 in 1 MAME bootleg (ver 3.09), Astro Blaster (German), Cadash (Germany), Gals Panic 4 (Korea), Ironman Ivan Stewart's Super Off-Road Track-Pak (2 Players), Mortal Kombat II (rev L3.1 (European)), New Rally X (Namco 1981), Pac-Man (Galaxian hardware, set 2), Rally X, Space Empire (bootleg), Street Fighter II - The World Warrior (Quicken Pt-I, bootleg), Street Fighter II' - Champion Edition (Accelerator!, bootleg), Target Hits (ver 1.0), Total Vice (ver UAC), Vulcan Venture (Old) and Zaxxon (Japan). - New drivers: othello.c and segamsys.c - 68000 CPU . Added disassemble PMOVE instruction (move to/from PMMU) to m68k . Fleshed out SCC68070 definition in m68k core, for CD-i use in MESS. - 68030 CPU . Added CPU types 68EC030, 68030 and 68EC040 . Start of 030/040 PMMU, including stubbed PMOVE. . Added disassemble PMOVE instruction (move to/from PMMU) to m68k - Discrete sound . Discrete task groups: DISCRETE_TASK_START now requires a parameter TASK_GROUP (>=0, <=9). Tasks are scheduled in the order of their task group. Nodes are automatically buffered between task groups. Discrete core determines nodes which need buffering to minimize overhead (information in DISCRETE_LOG). A discrete block list now must put each stepped node into a task if it uses tasks. Drivers not using tasks will get one task allocated automatically. Updated drivers accordingly. Some more constification. . discrete_sound_r now can inquiry any node: The return type is UINT8, consequently the designer needs to ensure that the node delivers adequately scaled data. Input nodes allow the input data to be scaled. The return value is the node value *after* scaling. . Started making a more accurate simulation of the DISCRETE_566 based on testing of a real IC. This makes the rest of Sky Raider sounds work. . DISCRETE_555_MSTABLE - optimized speed and added new operating modes. . DISCRETE_74LS624 - optimized for some more speed. Removed capacitor aging code and assumed range input is gnd for all 74LS624 (dkong.c and mario.c). . Implemented m:n logic for buffered task nodes in discrete sound: Preparation work so that a task node output buffer may be read by more than one following task. target: implementation of task groups: tasks in a task group run parallel, task groups serial. The current main task may than just be task (in the last task group). . exp is slow, but pow is even slower (sound\disc_dev.c): More LS624 optimization, replace pow(10, x) by pow10(x). Mixer loop optimizations. - megaplay.c, megatech.c and segae.c . Removed old master system code . Updated the drivers to use more recent implementation (from HazeMD) - multfish.c . Added hopper emulation, payout now works. . Roll Fruit: Hooked up inputs and added information on how to initialize the game (ID 03403). . Added missing gfx ($0) rom to clones Multi Fish (040308, set 1) and (040308, set 2) - Astro Blaster: Added Astro Blaster (German) - not in the mame\mamedriv.c (simply added astrode) - Battle Zone: Fixed broken engine sound (ID 03458) - Gun Survivor 2: Added 13x missing user1 roms. Dump now complete. - Mario Bros. . Impromved discrete performance (pow to exp: 5%, parallel tasks: 45% and minor tweaks) . Sped up mario_custom_run() discrete sound - Polygonet Commanders and Poly-Net Warriors . Hacked in the DSP56156's "Long Interrupts". Added SUB opcode. Polygonet Commanders now goes in-game! . Hooked up K053936 ROZ layer to the driver . Hooked up Poly-Net Warriors joystick properly . Fixed visible area and input - New Rally X and Rally X: Added genuine sets of Rally-X and New Rally-X. Fixed rom names. - Sky Raider: Started making a more accurate simulation of the DISCRETE_566 based on testing of a real IC. This makes the rest of Sky Raider sounds work. - Space Walk: Added discrete sound - Sprint 8: Added 4x channel discrete sound - Warp & Warp: Fixed rom names. Removed 4th program rom ($3000) which is not present on real board. - Input port: Fixed crash with Xbox 360 Wireless Controller for Windows resulting in corrupted cfg files (ID 03374) - Cheat engine . Added simple system for auto-detecting cheat-worthy RAM areas . Memory references can now explicitly specify logical or physical access by prepending with an 'l' or 'p'. Logical remains the default. Example: ppb@1000 = physical program space byte at address $1000. ldw@2000 = logical data space word at address $2000. Changed cheat finder to explicitly reference physical memory when writing out new cheats. - Description changes of New Rally X (bootleg?), Pac-Man (Galaxian hardware, set 1), Rally X (32k Ver.?), Target Hits (ver 1.1), Virtua Fighter 4 (Cartridge) and Vulcan Venture (Oldest) - MAME . Centralized color definitions and made some colors more specific . Added NULL check to prevent MAME from crashing if a new input device was connected at runtime. . Expanded PROFILER_USERx to support up to 8 custom profiler areas (emu\profiler.c) . Optimized tab removal in srcclean - Compiling . Added more _NAME macros to be consistent with the standard naming conventions . Added static qualifiers where possible throughout the code - Debugger . Fixed up RAM bank names to prevent crashes with memdump. Extended explicit banks to 96 (emu\memory.c). . Memory references can now explicitly specify logical or physical access by prepending with an 'l' or 'p'. Logical remains the default. Example: ppb@1000 = physical program space byte at address $1000. ldw@2000 = logical data space word at address $2000. Changed cheat finder to explicitly reference physical memory when writing out new cheats. 0.134u1 - New games: Target Panic - New Working games: Guilty Gear Isuka and Soul Edge Ver. II - New Non-Working games: Amatic Unknown Slots Game, Multi Game I (V.Ger 2.4), Multi Game III (V.Ger 3.5), Net Select Keiba Victory Furlong and Salary Man Kintarou - New clones: Baseball Stars Professional (set 1), Battle Garegga (Taiwan / Germany) (Thu Feb 1 1996), Country Girl (Japan set 2), Exzisus (Japan, dedicated), Hellfire (1P Ver., alt), Metal Slug 4 (set 2), Mirax (set 2), Mortal Kombat II (rev L3.0), Top Hunter - Roddy & Cathy (set 2), Undercover Cops (US), Vulcan Venture (Older Ver.) and X-Men (2 Players ver EAA) - New drivers: amaticmg.c and tgtpanic.c - 68000 CPU: Removed save signal contexts on *BSD and Mac OS X (cpu\m68000\m68kcpu.h) - 8085A CPU: RIM instruction now shows the current status of RST5.5 and RST6.5 pins - ARM7 CPU: Fixed disassembly of NEG Rd, Rs instruction in ARM7TDMI Thumb mode. - DSP56156 CPU (Polygonet Commanders, Poly-Net Warriors): Fixed various issues with the disassembler - I386 CPU: Improved handling of override prefixes after a rep instruction - S2650 CPU . Added S2650_FO_PORT fake port for flag output line . Made CHECK_IRQ_LINE an inline . Verified irq handling (with help from Quench) - Sharp LR35902 CPU: Improved handling of the DI+HALT bug. Do not clear the interrupt flag when the cpu is halted and no interrupt is taken. - Z80 CPU / Z80 DMA . Added Initiate read sequence command and hooked up basic status reading . Added continue and reset port A/B timing commands . Added enable/disable irq, force ready and reinitialize status byte commands . Fixed Initiate read command . Implemented reset command . Implemented fixed port transfer behaviour . Added decrement step mode and fixed a conceptual bug with portA writes . Added preliminary search mode support and fixed a bug with WR3 mask byte . Fixed ready flag when the DMA disabled/enabled commands are used - CDP1863/CDP1864 sound: Added CDP1863/CDP1864 sound devices for MESS - Discrete sound . Removed Enable Input from a number of discrete sound modules . Added DISCRETE_LOGIC_SHIFT - generic shift register . Fixed DISCRETE_BIT_DECODE to apply proper voltage instead of clipping to INT - TMS5110 sound . Partially implemented TMS5110_CMD_TEST_TALK. According to the documentation, this needs to be issued to read status on CTL1. CVS driver needs this. . Implement CTL port input/output for status reads . Input/output is switched by clocking pdc after a TALK STATUS command . Update drivers to support new tms5110_ctl_r . Now exhibits Rom Clock signal - TMS5220 sound . Implemented a RS and WS line interface. This emulates the RS/WS and READY handshaking according to the TMS5220 manual. Drivers reading the ready line should most probably use it. Note: For cases where the READY handshake is done by the cpu sufficient cycles have to be burnt to simulate that the cpu waited. This yet has to be implemented. . Changed all TMS5220 lines to (READ|WRITE)_LINE_DEVICE_HANDLER: Added q suffix to denote active low lines. Updated all drivers accordingly. Removed some trampoline functions. . Added TMS5220C variant to tms5220.c: Implemented reset for TMS5220C if /RS and /WS are pulled down together. Inserted LNs email and corrections as comment into source. Created a TODO section. . Updated gauntlet.c and firefox.c to use "new" tms5220 interface - YM2612/3834 sound . Moved LFO vars inside the chip struct . Changed SSG-EG to update before channel calcs - 6532 RIOT . Converted 6532riot to devcb interfaces: Updated all drivers. . Converted drivers to RS/WS tms5220 interface where appropriate . Removed quite some trampoline functions - 68681 DUART: Supported external baud rates - 74LS624 TTL: Optimized DISCRETE_74LS624 making 'Donkey Kong Junior' and 'Mario Bros.' faster - amaticmg.c: New driver for Amatic encryped gambling hardware. This system is based on a custom CPU. Graphics are decoded but only 2 bitplanes hooked. All the needed devices are in the driver, but commented out till can properly decrypt the program ROMs and identify the CPU. About the encryption scheme, see the driver notes about my findings. - cvs.c . Hook up speech CPU . Get rid of "temporary" code which hardwire CTL & PDC writes . Use TMS rom clock as sense input for the S2650. Dark Warrior now speaks again on startup. . Only one latch used for Sound & Speech . Hooked up 393Hz signal to "dac3" (ID 03417) . PCB pictures indicate discrete logic on the sound board. Marked all games as GAME_IMPERFECT_SOUND since we seem to miss some sounds. . 4bit DAC remains mysterious . Partially implemented TMS5110_CMD_TEST_TALK: According to the documentation, this needs to be issued to read status on CTL1. CVS driver needs this. Removed 2nd DAC sound. - dkong.c: Some progress with protection emulation for 'Herbie at the Olympics (DK conversion)' and 'Eight Ball Action (DK conversion)'. - gauntlet.c: Updated driver to use "new" TMS5220 interface. Replaced TMS5220 speech with TMS5220C. - naomi.c . Further simplifications to Atomiswave's keys . Updated Atomiswave hardware documentation . Added new user1 roms to 'Club Kart: European Session' . Fixed user1 rom address in Guilty Gear Isuka . Redumped bad rom in Heavy Metal Geomatrix . Added missing 16x user2 roms to Planet Harriers . Hooked up protection for Power Stone 2 and Toy Fighter . Redumped bad roms in Virtua Fighter 4 (Cart) - neodrvr.c . Minor optimization/cleanup of Neo Geo rendering . Added correct m1 (Z80 audio) and v1 (YM2610) roms to Andro Dunos (MVS version layout) . Tagged Last Blade 2 as newer revision in the driver . Added correct c1 rom (sprites) to Neo-Geo Cup '98 . Added correct s1 rom to clone Top Hunter - Roddy & Cathy (set 2) - norautp.c: Changed C1 discrete sound value (from PPI-1 PC6 line and Darlington array) to match the real value, as seen on the PCB. This should reproduce the 555 output accurately. - nss.c and snesb.c . Fixed SNES CG ram reading address . Fixed an incorrectly SNES setted DMA register read, fixes DMA Memory in the test cartridge. . Fixed a bug in SNES DSP1 emulation. Super Mario Kart can be played again in MESS. . Ported SPC7110 support from BSNES . Fixed S-DD1 support in SNES driver; Street Fighter Alpha 2 is playable, Star Ocean shows decompressed graphics before hanging. . Ported Capcom CX4 implementation over from BSNES (original code by zsKnight, Anomie and Nach). Mega Man X2 and X3 are now playable in MESS, with bugs. . Ported ST010 support from BSNES. Fixed an issue where running ST010 games would hang MESS. - photon2.c: Added dipswitches for the coins, you can now select between 1 and 6 minutes per coin. Added information about the original games that these have been bootlegged from. - zaccaria.c (Jack Rabbit, Money Money) . Removed TMS5220 kludge . Hooked up new RS/WS/READY tms5220 interface . Removed DAC1 as well. Replaced it by attenuation control for AY2 - channel B. This fixes TMS5200 hookup bug, which is currently kludged to work (ID 02565). - Atomic Point: Verified cpu clocks - Bogey Manor: Fixed M6502 CPU1 clock speed - B.Rap Boys: Fixed music samples looping incorrectly / ending too soon (ID 03443). Fixed clock speeds of the 2x OKI6295 and VSync. - Charlie Ninja: Fixed access violation (debug) with "-nosound -video none -debug"(ID 03361) - China Gate: Fixed OKI6295 sound clock (ID 03439) - Dark Warrior: Use TMS rom clock as sense input for the S2650, game now speaks again on startup (ID 01619). - Donkey Kong Junior: Changed game to uses parallel discrete tasks now - Drift Out: Reverted game workaround, see latest comments here for reason: http://www.mametesters.org/view.php?id=3356 - Fire Fox: Updated game to use "new" TMS5220 interface - Hellfire: Correct BRPOM name in Hellfire sets and added documentation of the type of BRPOM used. - Mirax: Fixed Z80 CPU1/2 and the 2x AY-3-8910A clock speeds - Nova 2001: Updated driver to use DIP locations. Clarified and verified switch behavior, comparing to manuals where available. - Shogun Warriors: Fixed clock speed of the 2x OKI6295 sound and VSync - Sky Raider: Added partial Discrete sound - V-Five: Verified clocks for V-five PCB - Cheat engine . Fixed F6 cheat toggle behavior . Added byte swap to the cheat search - Dipswitch fixes in ninjakun and nova2001.c - Description changes of Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard'), Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')', Exzisus (Japan, conversion), Keks (060403, set 2), Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst') and Puzzle Bobble / Bust-A-Move (Neo-Geo) (bootleg). - MAME . Made INI file order explicit via priorities . Added device_find_child_by_tag helper function (emu\devintrf.c) . Now allow for banks to take up half of the available slots. Explicit banks now work up to bank 64 (emu\memory.c). . Correct XTAL value for XTAL_32_768kHz to 32768 Hz (emu\drivers\xtal.h) - Compiling . Removed a number of #ifdef LSB_FIRST in favor of macros that do the equivalent . "=A" inline assembly seems to be only supported on 32bit GCC. Provide a 64bit safe version of _get_profile_ticks. . Added an "optional" flag for rom/disk entries to -listxml output. Removed the obsolete "dispose" flag from the DTD in the -listxml output. . Fixed GCC warning for src\emu\sound\ymf271.c with OPTIMIZE=3 on openSUSE 11.1 x86 (ID 03435) . Added deletion of MSVC specific files to clean task 0.134 - New games: Czernyj Korabl, Brodjaga and Povar / Sobrat' Buran / Agroprom - New drivers: photon2.c - G65C816 CPU: Fixed a G65816 bug with SBC opcode N flag behaviour in Decimal Mode - I386 CPU . Added missing arpl instruction . Fixed BCD carry . Fixed disassembly of group D8 when modrm > 0xc0 . Added fucompp instruction to disassembler - PIC16C5x CPUs: Fixed the T0CKI count input being controlled by the wrong edge sensing. - Z8 CPU (MESS): Fixed Z8 disassembler argument order - 6526 CIA (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) . Fixed 6526 CIA PRA, PRB, DDRA and DDRB ports . Added partial fix to 6526 CIA timer: Avoid timer's desync in read count operation. - 68681 DUART: Fixed 68681/2681 duart, when a channel is in loopback mode, do not actually transmit bytes sent to that duart channel over the TX pin. - funworld.c . Fixed a bug introduced with the massive input change, that didn't allow initialize all sets that need the normal procedure to do it. . Updated technical notes . Fixed all games that need NVRAM initialized aren't working anymore (ID 03433) - naomi.c: Enforced read-only status of PowerVR ID registers in NAOMI/AW - norautp.c: Added discrete sound to the Noraut Poker games - nss.c and snesb.c: Added emulation for the SNES DSP-3 and DSP-4 add-on chips, based on latest ZSNES - segas24.c: Fixed nvram_save writing 0 KB file (Segas24 rom games don't have NVRAM) - Check Man: Removed Discrete sound in clone Check Man - Circus Charlie: Fixed partially missing sounds (ID 03432) - Dingo: Fixed messed up sound (ID 03434) - Jolly Card . Discovered and documented new features in clone Jolly Card (Evona Electronics) . Removed the commented hack for clone Jolly Card Professional 2.0 (jolyc980) init since is not needed anymore. - Cheat engine . Hooked up F6 again as a global cheat enable/disable . Added "increase or equal" and "decrease or equal" options to the new cheat commands - Input port: Fixed drivers having empty INPUT definitions: Access Violation (ID 03430) - MAME . Removed remaining references to machine->cpu[n]. Removed cpu[n] array. Replaced with machine->firstcpu which is a fast access to the head of the list of CPUs. . Minor cleanup of machine\generic.c. Changed watchdog_read handlers to return the address space's unmapped value rather than 0xff. . MAMEUI uses input_seq_from_tokens() outside the context of a running emulation, so this code will crash if machine == NULL and the keycode was not a built in keycode. Changed this so that it will gracefully fail if machine == NULL. - MESS: Fixed access violation in MESS skeleton drivers with empty INPUT_PORT sections. - Compiling: Added missing static and const qualifiers, and fixed up some header files. - Debugger . Added debug_global_input_code_pressed() for use in debugging . Added helper function core_i64_hex_format. Replaced several printf cases in the debugger with this function to avoid runtime differences on older Windows systems. Also fixed up some error logging messages to output the correct number of characters for addresses and data, using the new function. 0.133u5 - New games: Cal Omega - Game 7.4, Dolphin Blue, Kero Kero Keroppi no Issyoni Asobou, Knights of Valour - The Seven Spirits and The Rumble Fish - New Working games: Shogun Warriors - New Non-Working games: Club Kart: European Session, Guilty Gear Isuka, Gun Survivor 2: Bio Hazard Code Veronica, House of the Dead 2, The King of Fighters Neowave, Neo-Geo Battle Coliseum, Super Major League '99 and Virtua Fighter 4 (Cart). - New clones: Karate Champ (US, VS version set 2), Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden), Mortal Kombat (Turbo 3.1 09/09/93, hack), Mr. Driller 2 (Japan, DR22 Ver.A), Narc (rev 2.00), Strong X, Witch Card (german, set 2) and Witch Card (english, witch game, lamps) - Atmel 8-bit AVR CPU: Fixed numerous opcodes in the core - I386 CPU . Fixed carry/borrow flag in ADC/SBB . Fixed LOOP instructions in 16-bit mode - M377xx CPUs: Fixed CLB/SEB when not in bank 0 - MIPS CPUs: Enabled alternate register naming in the core - PIC16C5x CPUs . Indirect addressing was not taking into account special purpose memory mapped locations. . 'iorlw' instruction was saving the result to memory instead of the W register . 'tris' instruction no longer modifies Port-C on PIC models that do not have Port-C implemented. - Z8 CPU: Added preliminary Zilog Z8 CPU core for MESS - Discrete sound . Fixed comments for DISCRETE_TRANSFORM . FatalError if formula is bad . Fixed two bugs in DISCRETE_RCDISC3 . Fixed some ugly bugs around DISCRETE_FILTER_SW: No more iterations. The CD4066 internal resistance largely determines sound amplitude. This may vary significantly depending on VCC and type (74HC, 74HCV, CD4066, ...). The current choice makes scramble sound "about right". . Added some profiling code for discrete tasks . Added DISCRETE_INPUT_BUFFER to use a stream to buffer an input node. For input nodes with a lot of writes this prevents a stream_update on the whole discrete module which is very ineffective. Instead, the data is buffered and the discrete emulation can process a lot of samples in one go later. . Added disc_syc.c as a container for core modules (output, task) . Discrete wav and csv logs now are treated as nodes . Added DISCRETE_START and DISCRETE_STOP functions to be called at device start/stop . As a side effect, profiling measures log overhead as well. . DSO_TASK_END now builds it's own dependence list - now simply DSO_TASK_END() ends a task. . Added node parameter to RC_(DIS)CHARGE_EXP . Added const where appropriate . Removed some dead code - 68681 DUART: Added loopback mode and counter/timer modes 3 and 6, self-tests now pass in dectalk in MESS. - 6526/8520 CIA: Added different TOD implementation - cb2001.c . Added proms to Super Cherry Master . Changed region user1/2 to proms in Cherry Bonus 2001 and Super Cherry Master - chihiro.c: Added various notes + checksums for Chihiro board - cojag.c (Jaguar update) . Added RGB 24-bit pixels (for Iron Soldier) . Added depth 0 and 1 to scaled bitmaps (for Val Disere Skiing) . Preliminary work on PIT support - dkong.c: Removed 2nd Discrete sound in 8ballact, dkong, drakton, radarscp, shootgal, spcfrcii, spclforc and strtheat - kaneko16.c . Simplified Kaneko16 decryption functions by working out what each of the bits does and removing game specific references. Re-based the decryption tables as a result. End result is verified to be the same. . Fixed a small bug with Kaneko16 graphic decoding and removed old comment about bad sound banking. . Temporarily added a hack to the collision function to only use the B.Rap Boys code if the game is B.Rap Boys until we have a single function that works with both. - naomi.c . Emulated Atomiswave coin slots and standard Dreamcast controller. Non-lightgun games without other problems are now playable. . Basically the region array is processed, and the data from the accumulation buffer where we render is now copied into the framebuffer depending on the tiles specified in the tile list. This isn't full 'tile-based rendering' as that would require more work on the preprocessing side, and writing out the data pointers and data in real formats, however it's a step in the right direction. . Currently only 565 formats are supported for both framebuffer write and framebuffer read. The accumulation buffer is alwys 8888, data is converted down to the specified format. The real accumulation buffer is 32x32 and filled per tile, ours is still full screen. . The video update now just displays the framebuffer using the framebuffer read parameters specified (again only 565 is currently supported) This allows the Atomiswave bios screens and the rendered output to co-exist. . Completed partial dump of Derby Owners Club II, Giga Wing 2, Moero Justice Gakuen, Slashout, Virtua Fighter 4 (Cart), Wild Riders and WWF Royal Rumble . Added protection data to Guilty Gear X, Giga Wing 2, Heavy Metal Geomatrix, Moero Justice Gakuen, Toy Fighter, WWF Royal Rumble (all are now playable but still marked GAME_NOT_WORKING due to general NAOMI concerns) . Added missing user1 roms to capsnk and demofist - norautp.c . Correct CPU clock to Xtal/8 . Discovered 3 new I/O lines coming from PPI-2, PC0-PC2. They are mixed with the handshake ones. . Added the READOUT button to noraut12 games . Splitted the main machine driver to cover 2 different Noraut systems . Added partial support for PPI-2, PC0-PC2 output lines on noraut11 games . Figured out other remaining I/O lines . Added new handlers to simulate the handshake lines. Still need real support through PPI-2. . Updated technical notes . Rerouted norautp and norautjp READOUT button to its own place . Routed the whole video RAM access through PPI-2 (bypassed the handshake lines for now) . Merged back the noraut machine drivers after the 3rd PPI connection . Added Low Level Hopper manual input . Added a new machine driver for extended hardware. It has 2 jumpers that cut the a14 and a15 addressing lines. - nss.c and snesb.c . SNES updates: Correct ROM loading behavior for SuperFX games. Added more ROM mirroring needed by certain SuperFX 2 games. Correct the behavior of certain bit-restricted SuperFX registers. Doom, Yoshi's Island, Dirt Trax FX and Voxel Demo show things now. Improved S-DD1 emulation, neither game using S-DD1 boots yet. . SuperFX updates: Inlined a number of functions for possible speed increase. Removed some memory buffering cruft, to be re-added later. Fixed behavior of ASR opcode. With additional MESS-side changes, Stunt Race FX is playable, and Vortex shows much more. Hooked up RAM and ROM buffering. Inlined several more functions. Removed debug spew. Added the ability to define an external IRQ line callback, and hooked it up to the 65C816. Fixed flag calculation for HIB opcode. Hooked SuperFX chip up to the SNES machine driver. Fixed carry handling in ADC, ADCI, SBC and SBCI opcodes. Fixes many SNES SuperFX bugs. Made numerous corrections to SNES S-DD1 chip emulation, SFA2 and Star Ocean still do not boot. Fixed disassembly of LMULT/FMULT ops. Fixed reads using LDW/LDB. Fixed writes using STW/STB. Fixed SBC carry behavior. Fixed GETC ROM access behavior. Some SuperFX games begin to show things in MESS. At least partly fixed PLOT and RPIX behavior. This fixes many gfxs in Star Fox and Vortex, but no polys yet. - twin16.c: Tweaked the shadows to be slightly darker - beatmania Club MIX and Pop'n Music 2: Fixed harddisk image (CHD version is V3) (ID 03391) - B.Rap Boys: Temporarily added a hack to the collision function to only use the B.Rap Boys code if the game is B.Rap Boys until we have a single function that works with both. - Battle Zone: Fixed inaccurate sound effects (ID 03025) - Black Touch '96 . Fixed the plane order in the gfx (sprites) decodes . Improved the sprite emulation (still wrong tho) . Fixed visible area - Bradley Trainer: Fixed invalid DISCRETE_ADJUSTMENT_TAG (ID 03416) - Circus Charlie: Use SOUND_DAC device to "buffer" data and avoid 1 sample updates for discrete part to fixed slowdowns. This is related to "MT03401: circusc and clones: Slowdown in attract mode with DIP SW "Demo Sounds=ON"" though I do not consider it a bug, but a implementation optimization. - Connect 4: Improved the layout - D-Day: Fixed access violation after coin insertion (ID 03418) - Espial and Net Wars: Fixed access violation (ID 03420) - Little Robin: Added verbose debug logging for the 'vdp' writes in preparation for looking at it further - Mr. Driller 2: Added missing user2 roms - Poke Champ: Fixed the plane order in the gfx (sprites) decodes - Poker (Version 50.02 ICB, set 1): Added missing rom (beatthespread_icb) to clone Poker (Version 50.02 ICB, set 2) - Pole Position: Fixed unable to find input port in clone Top Racer (set 2) (ID 03240) - Port Man (bootleg on Moon Cresta hardware): Fixed missing in-game graphics (ID 03422) - Royal Card: Verified color BPROM (correct) in clone Royal Card v2.0 Professional - Samurai Aces: Fixed access violation (ID 03421) - Scorpion: Fixed missing sound (ID 03073) - Scramble: Fixed missing sound in clone Explorer (ID 03075) - Shogun Warriors . Extracted tables required for game to work . Decrypted and verified table data . Fixed sound banking . Marked 2 graphic roms as BAD_DUMP . Added new gfx1 and oki2 roms, fixes Geisya and Sumo - Speed Ball: Battery backed 2KB RAM, fixing the default high-scores - Vandyke: Got clone Vandyke (bootleg with PIC16c57) up and running - Witch Card . Reworked inputs for Witch Card (german, set 1) . Created new inputs for Witch Card (english, witch game, lamps) . Added and connected lamps for both sets . Added minimal bet and 50/60 Hz. switches to both sets . Added DIP switches info for Witch Card (german, set 2) - World Tennis: Fixed missing ball sound (ID 03426) - Cheat engine . Added 'Reload All' option to the cheat menu . Enabled display of cheat comments from within the cheat menu. Press the SPACE key to toggle display. . Added some basic cheat search functionality to the debugger, allowing searches on various memory sizes. . Changed cheat search so that it loads *all* cheat files in all search paths. Note that it is easy to end up with duplicate entries this way. Some currently disabled code is present which filters out duplicates, but the logic for doing this is quite unclear with the presence of text-only cheats, which is why the code is disabled for now. - Input port: Added PORT_CROSSHAIR_MAPPER() allowing you to specify an alternate, non-linear mapping function from the raw crosshair value to its position onscreen. - Dipswitch fixes in bigtwin, goldnpkr.c and norautp.c - Description changes of Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack), Jack Potten's Poker (set 2), Shogun Warriors (US), Shogun Warriors (World) and Witch Card (german, set 1) (ID 03343) - MAME . Added new function mame_fclose_and_open_next() which will close a file and then keep searching the searchpath for the next valid file. Did some internal rearranging in fileio.c to make this work. . Renamed osd_profiling_ticks() to get_profile_ticks(). Moved implemention into inline functions in eminline.h and the ei* functions. . Cleaned up drivers that write files which are not being actively developed. Also, commented our or changed the printf-ing of some messages to LOGERROR. - Compiling . Fixed 64-bit compiler warnigs (ID 03413) . De-globalified sound.c and input.c - Debugger . Added some basic cheat search functionality to the debugger, allowing searches on various memory sizes. . Added 'options' parameter to the CPU_DISASSEMBLE prototype. For now, the debugger always passes 0 for this. UNIDASM has been updated to accept a mode parameter, which is passed for the options. . Fixed stupid UNIDASM bug that double-counted bytes 0.133u4 - New games: Billiard, Galaxy Games StarPak 2 and Noraut Red Hot Joker Poker - New Working games: B.Rap Boys - New Non-Working games: Great Football (Mega-Tech, SMS based), Noraut Joker Poker (V3.010a) and Noraut Poker (NTX10A) - New clones: Kollon (V2.04JC), Mortal Kombat Turbo Ninja (rev 3.1 T-Unit 03/19/93, hack) and Pit Boss Megastar (9244-00-01) - 8080 CPU: Added 8080A variant - 8085A CPU: Refactored callbacks to use devcb - Z80 CPU: Fixed IM2 interrupt cycles in the core - Discrete sound . DISCRETE_RCDISC3: Added diode junction voltage; junction voltage also indicates polarity. . DISCRETE_OPAMP_FILTER: Added type DISC_OP_AMP_FILTER_IS_LOW_PASS_1M; INP2 takes role of v_ref in this type. . DISCRETE_OPAMP: Fixed a bug (possible divide by 0) . DISCRETE_LFSR: Fixed bug preventing output of shift reg to sub node 1 . DISCRETE_OUTPUT now is a stepping node . DISCRETE_STREAM_INPUT now advances input pointer in step. More linked_list usage. . Discrete sound parallel tasks support . Introduced DISCRETE_TASK_START and DISCRETE_TASK_END . DISCRETE_TASK_START: Start a new task. A task is a set of nodes which only depend on input nodes and nodes in the set. . DISCRETE_TASK_END(task_output_node): Marks the end of the task. task_output_node is the node whose output over time should be preserved. This node can be accessed by nodes in the main thread. . Illustrated the concept in the dkong discrete emulation. This also has been enhanced to buffer DAC output. . Discrete tasks now support multiple task output nodes. . Change the way custom modules are handled. Updated drivers mario and dkong accordingly. Minor change to stream input handling. No more linear lists for nodes. All node processing switched to linked lists. Module step and reset now only get a node pointer passed. Added discrete_info * pointer to node. Only nodes with a step routine actually get processed. Fixed discrete logs did not work since some time bug. Preliminary parallel task constants; depending on results these may vanish again. Overall slight performance increase. dkong 940% to 960% and galaxian 740% to 790%. . Continued discrete sound system "list-ification": No more constraints on number of input and output nodes. Input nodes now make use of a context. - MC6845 CRT: Fixed NULL timers crash. This fixes an access violation of some drivers using the MC6845 (ID 03404) - bzone.c . Replaced Battlezone Engine sound with Discrete . Engine frequency (resistor R11) can be changed with slider . Discrete sound may be disabled by setting BZONE_DISCRETE to 0 in bzone.h - dkong.c: Added 2nd Discrete sound to 8ballact, dkong, drakton, radarscp, shootgal, spcfrcii, spclforc and strtheat - leland.c: Fixed speech quality regression in wseries, basebal2, dblplay and strkzone (ID 02191) - norautp.c . Switched to pre-defined Xtal clock. Changed the way how graphics are banked/accessed. Fixed the graphics offset and number of tiles per bank. Added new sets: Noraut Red Hot Joker Poker, Noraut Poker (NTX10A) and Noraut Joker Poker (V3.010a). Fixed the tile size/decode for the first GFX bank. Added proper norautrh inputs, including the readout button. Added partial DIP switches to norautrh. Added an extra DIP switch to Noraut Red Hot Joker Poker. Also added DIP locations to the whole bank. Added a default NVRAM for Noraut Joker Poker. Executed a trojan on 2 noraut systems to confirm the way 16x32 tiles are decoded. Fixed the x-offset for 32x32 tiles lines. Fixed the screen aspect and visible area. Confirmed correct colors. No bipolar PROM involved. Added Noraut Joker Poker hardware and PCB layouts. Documented the discrete audio circuitry. Added a full diagram. Fixed the coin counters. Documented all the output ports. Added a scheme with descriptions for every existent port. Added full lamps support to naroutp, naroutjp, naroutrh and naroutpn. Created lamps layouts for 11 and 12-lamps scheme. Rerouted some inputs to mantain the inputs layout. Renamed some inputs to match the text with the real cab buttons. Removed the imperfect colors flag from the existent sets. Added 2 different control panel layouts to the source. Updated technical notes. . Fixed screen layout different to original (ID 03284) . Fixed visible area. Changed visible area to 448x248 in Noraut Poker and Noraut Joker Poker. Added NVRAM and fixed gfx rom address to $800 in clone Noraut Joker Poker. - nss.c and snesb.c . Argonaut SuperFX core improvements: Hooked up Branch instructions. Fixed numerous SuperFX core bugs. Improved disassembler to more gracefully handle ALT* opcode effects. Correct instruction behaviors: STOP, SUB, SBC, SUBI and CMP. Added LSR and ROL opcodes. Updated instructions to use the safer superfx_gpr_write: LOOP, PLOT, INC and DEC. Added missing register writeback to LMS. Correct carry flag behavior in ROL opcode. Correct BRA target address calculation (maybe still wrong). Correct LOOP target address calculation. Made sure that FROM sets cpustate->sreg_idx. Disabled RAM/ROM clocking, going with instant transfer for now. Understood and re-enabled pipelined instruction architecture, Star Fox runs farther. Fixed a ridiculous typo in ROL instruction. Fixed overflow flag calculation on ADDI / ADCI. Fixed lack of register reset after ADD / ADC / ADDI / ADCI. . Fixed SNES half colour blending behaviour - tmaster.c: Implemented carts banking and multiple EEPROMs. Added "pen replacement" blit mode. Fixed palette size to 4096. This fixes the incorrect background color/palette bug (ID 01754) - B.Rap Boys . Decoded all protection data . Improved protection simulation logic w/regards to writeback addresses, allowing B.Rap Boys to boot . Added hitbox simulation based on suprnova / game requirements . Redumped GFX roms . Cleaned up decryption function for B.Rap Boys external Rom . Improved video emulation . Marked several GFX roms as bad . Converted MCU writes to use write_byte . Added kludge to reset MCU data write address to prevent game from running out of ram and crashing . Added EEPROM support to the B.Rap Boys protection simulation . Changed to priorities to fix some visibility problems . Fixed sound banking and visible area . Added dipswitches - Dirt Dash: Added C352 wave rom redumps - Galaxy Games (BIOS v1.90): Fixed BIOS rom loading - Goindol: Fixed unable to control and corrupted graphics (ID 03412) - M-79 Ambush: Fixed a considerable difficulty bug in aiming the game (ID 01043) - Macho Mouse: Fixed wrong colors (ID 02608) - Mortal Kombat 3: Added correct U2 sound rom to the Mortal Kombat 3 sets (ID 02767) - Pit Boss Megastar: Added documentation about the sets - Pit Boss Supertouch 30: Added program versions to the name, IE: Pit Boss Supertouch 30 (9234-10-01). Added missing rom and verified old bad_dumps. - Shogun Warriors: Fixed visible area - Sigma Poker: Fixed duplicated definition of Hold 2 button and added the missing Hold 3 button. - Tricky Doc: Fixed wrong default hiscore (ID 03405) - Dipswitch fixes in brapboys, pbst30 and pitbossm - Fixed rom names in megat6, pbst30, pitbossm and toypop - Description changes of Pit Boss Supertouch 30 (9234-10-01), Pit Boss Supertouch 30 (9234-00-01) and Pit Boss Megastar (9243-00-01) - MAME . Fixed redundancy in clock speed assignments in some drivers by cleaning all divided by 1 (/1) instances. . Added helper macros to devcb for input lines tied to GND/Vcc (emu\devcb.h). . Removed osd_is_bad_read_ptr function - Debugger . Added infrastructure to compile universal standalone disassembler (src\tools\unidasm.c) . Added UNIDASM to the tools build . Split the disassemblers out of libcpu and into new libdasm . Ensured the disassembly entry points for all disassemblers are in the source file for the disassembler (sometimes new generic versions were created) 0.133u3 - New games: 2x Island 2 (060529), 5x Keks (060328), Pirate (060210), Roll Fruit (040318)l and WOW New Fantasia - New Working games: Marvel vs. Capcom 2 - New Non-Working games: 2x Coinmaster Keno (Y2K, spanish), Coinmaster Roulette V75 (Y2K, spanish), Colorama (english), Dirt Dash (Rev. DT2) and Extreme Hunting 2 - New clones: 4x Crazy Monkey, 5x Fruit Cocktail, 3x Garage, Island (050713, set 2), 3x Lucky Haunter (031111), 2x Multi Fish (021124), Rabbit Poker (Arizona Poker v1.1?), Resident (040513, set 2), 2x Rock Climber (040827), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II) and Sweet Life (041220, set 2) - New drivers: coinmvga.c - 8085A CPU . Fixed cycle deduction on unconditional CALL / RET, it took about half too many cycles. . Added cycle tables and cleaned up source layout. This was done very carefully, it should be errorfree. . Removed HLT cycle eating (earlier, HLT after EI could theoretically fail) . Fixed parity flag on add/sub/cmp. Bug was caused by Z80 overflow detection accidentally left in. . Renamed temp register XX to official name WZ . Renamed flags from Z80 style S Z Y H X V N C to S Z X5 H X3 P V C and fixed X5 / V flags where accidentally broken due to flag names confusion. - TMS 1000 CPU . Added support TMS1000 family models TMS1000/1070/1100/1200/1270/1300 . Added support for configuration of output PLA to the TMS0980/TMS1000 interface - Z80 CPU . Fixed X/Y flags in CCF/SCF/BIT, ZEXALL is happy now (ID 02701) . Simplified DAA, renamed MEMPTR (3.8) to WZ (same temp register as the officially named WZ in the 8080), added TODO. - Discrete sound . Removed global variable discrete_current_context . Discrete_info is now passed instead of device, we may get device by using disc_info->device. . Added DISCRETE_IMPORT(*block): Imports another discrete block. . Added DISCRETE_REMOVE(node1, node2): Removes a range of nodes. . Added DISCRETE_REPLACE: Next node replaces existing node, thus preserving run order. . Added DISCRETE_NOP(node): Does nothing, to be replaced. . Added a prescanning stage to build final block list after execution of the above. . The additions provide an easy way to document subtle difference between boards. Please see audio\galaxian.c for an example. . DSS_COUNTER updates . Clock_node no longer needs to be static for DISC_CLK_IS_FREQ . Rewrote inc/dec logic to avoid loop . Added DISCRETE_BIT(S)_DECODE . Decodes individual bits from input values . Updated drivers which had macro DISCRETE_BITSET (which was a bit misleading). This should be slightly faster than using DISCRETE_TRANSROM. . Discrete sound enhancements . Put some life into RCDISC5 enable mode. This now acts as a switch between R and C. Capacitor voltage will be preserved if disabled. . Made galaxian use the above. Saved 2 nodes and increased accuracy. . Added DISC_LFSR_FLAG_OUTPUT_SR_SN1 flag to shift register noise generator. This will output the value of the shift register to sub-node 1. This is needed for future bzone discrete sound emulation. BTW: RCDISC5 will be used as well. . Left a note on RCDISC3 on what is needed to be implemented for Battle Zone . Optimized the LFSR a bit. LFSRs running at high frequency (> sample_freq) should benefit. - TMS5110 sound: Merged 5110intf into TMS5110 and 5220intf into TMS5220 - YM2612/3834 sound . Split YM2612/3834 to a separate file to avoid disturbing other OPN chips . SSG-EG, envelope, LFO and CSM behavior all improved to better match tested behavior on real YM2612 chips. - Galaxian sound (galdrvr.c, galaxold.c and dambustr.c) . Moon Cresta and Galaxian now have their respective schematics emulated, i.e. Moon Cresta has a slightly different mixing stage. This fixes explosion of own ship sounds wrong (ID 03109). . Cleaned up driver. Added some section titles and comments, removed old code. . Removed emu_timer, this was causing a stream of stream_updates only updating 3 samples. . Replaced with discrete timer module DSS_TIMER now . Use DISCRETE_NOTE for pitch generation; it is more accurate (within the one ms where the pitch changes) and saves a node. . Use DISCRETE_BITS_DECODE and save 2 nodes - SNES video update (nss.c and snesb.c): Fixed direct color gfxs in mode 7. Fixed direct color gfxs in mode 3/4. Fixed a vram out-of-bounds bug. Fixed a blending bug involving main/sub color maths. Fixed interlace mode gfxs when not in gfx modes 5/6. Fixed a GDMA boundary bug. Made the OAM address reset more accurate. Fixed HDMA mid-frame inits. Added clip colors to black window function. Converted color clipping to use struct entries. Made dynamic H resolutions to be called only at vblank start and fixed gfx mode switching 1/5 and 5/1. Made the gfx mode switches more accurate. Correct a bunch of SPC registers behaviour. Improved joypad read/write handling and fixed a serial port quirk. Fixed serial port for player 2 as well. Improved cart mode 20 reserved access behaviour. Added OBJ interlace support. - MC6845 CRT: Implemented transparent mode access for some 6845 model SY6845 - cps1.c: Verified and added correct xtals values for CPS1 boards. Added correct xtal and divisor for OKI6295 taken from Forgotten Worlds schematics. - hornet.c and nwk-tr.c: Fixed RF5C400 sound clock speed in Gradius 4: Fukkatsu, NBA Play By Play, Racing Jam, Silent Scope / 2, Teraburst and Thrill Drive (ID 03275) - naomi.c . Use new dump for ic31/32, ROM board test passes now. . Added protection hookup for Marvel vs. Capcom 2, game is playable w/sound - multfish.c: Cleaned up and added a lot of new clones to the driver - seta.c: Fixed VSync in Caliber 50 and DownTown. Changed games to mono sound, the PCB don't have a stereo connector. - stv.c: Improved ST-V timer 1 irq behaviour. Pebble Beach still have issues with gameplay start though (writes lots of garbage for whatever reason, really worked for random chances before). - taito_z.c: Dipswitch fixes - A. D. 2083, Bagman, Super Bagman: Replaced TMS5100A sound with TMS5110A - American Speedway: Fixed both cars steer with Player 1 controls (ID 03389) - B.Rap Boys: Decrypted several tables from the rom - Bug Fever and Fruit Bonus 2006 Special Edition: Fixed year to 2006 - Dig Dug: Fixed rom names. Renamed (digdugb) to (digdug1) (it's a rev1, not a bootleg) and (digduga1) to (digdugat1). - Erotictac/Tactic: Fixed game freezes (ID 03312), by defaulting the music DIP to "off" until MAME have better Archimedes h/w emulation. - Extreme Hunting 2: Added decryption key - Galmedes: Fixed inverted demo sound dip (ID 03387) - Killer Instinct (SNES Bootleg): Fixed game freezes at start (ID 02959) - Lethal Weapon (Nintendo Super System): Fixed wrong colors during gameplay (ID 03120) - Logic Pro / 2 . Verified and fixed M68K, Z80, YM3812 and OKIM6295 clocks and OKI pin 7 for Logic Pro and Logic Pro 2. . Fixed visible area on Logic Pro and Logic Pro 2 to match real PCBs . Added comment about what YM3812 clone is used . Added NOTE about missing graphical effect in Logic Pro (screen dim on coin insert) and marked as IMPERFECT_GRAPHICS. . Added note about 4 pixels at left edge of screen . Fixed OKI6295 clock speed - Marvel vs. Capcom 2: Added 7x redumped user1 roms - Space Walk: Added extended time setting and DIP locations - Triple Draw Poker: Added missing color prom - X-Men: Verified/Fixed clocks and Vsyncs on X-Men (2-4 players) - Dipswitch fixes in spacwalk and taito_z.c - Fixed rom names in digdug and galaga - Description changes of Crazy Monkey (031110, set 1), Devil Island, Fruit Cocktail (040216, set 1), Garage (040219, set 1), Island (050713, set 1), Lucky Haunter (031111, set 1), Lucky Haunter (040216. set 1), Lucky Haunter (040825, set 1), Resident (040513, set 1), Rock Climber (040827, set 1) and Sweet Life (041220, set 1) - Compiling . Fixed MSVC 64-bit compile errors . Attempt to define an I64FMT string that can be used for printf'ing 64-bit integers. This is defined to be "I64" on MSVC and recent MinGW compilers, and "ll" for all others. Updated all instances of 64-bit prints to use the new macro. - MAME . Added rgb[a]int_sh[l|r] operations to the rgbutils. rgbvmx needs to be updated (nobody is using them yet). . Changed profiler to separate start/stop cases 0.133u2 - New games: Pop'n Music 2 (ver JA-A), Python (Photon System), Sky Love and Triple Draw Poker - New Working games: beatmania Club MIX, 18 Holes Pro Golf and Vs. BaseBall (Japan set 3) - New clones: Dragon World (World, V021O), Gun Bullet (World, GN3 Rev B), Megatouch 5 (9255-60-01 ROI, Standard version), Qix (set 2, smaller roms), Ridge Racer (3 Screen? Rev. RR2, World), Space Fever (Old Ver.), Space Fever High Splitter (alt Sound), Vs. Soccer (Japan) and Winding Heat (JAA, JPN v2.11). - Removed games: Around The World (set 1) and (set 2) - I4004 CPU: Support for Intel 4004 CPU core - 8085A CPU . Removed DAA tables from the 8085 and Z180 implementations in favor of just computing the values . Fixed code in 8085 to prevent accidental multiple reads due to macro overuse - G65816 CPU: Fixed buggy breakpoints in the core - Discrete sound . Added "abs" function to DISCRETE_TRANSFORM . Fixed a bug in DISCRETE_RCDISC5 - Speaker sound: Improved speaker-toggle emulation with alias filter (sound\speaker.c) - Sample sound: Added GAME_IMPERFECT_SOUND flag to all sets that use external samples which were not already flagged for sound. - Galaxian sound (galaxian.c, galaxold.c, galdrvr.c and dambustr.c) . Created discrete sound emulation, fixes warp noise after the first level completely overrides the music . Changed all audio related AM_WRITE to AM_DEV_WRITE . Moved discrete sound related pieces such as initialization into audio\galaxian.h . Split some memory maps into sound related and not sound related parts . Added possibility in discrete.h to select hardware (galaxian/moon cresta) at compile time. This leads to slightly different volume levels. Hit sound (explosion) has been hacked to increase volume. Currently, we can not accurately model the switch/opamp filter circuit. . Rewrote timer code so that the pitch timer is only used when it produces audible results - NES sound (cham24.c, dkong.c, multigam.c, playch10.c, punchout.c and vsnes.c) . Fixed bug in nes_apu that caused errors reading $4015 . Added length counter status bits to $4015 . Fixed 4-screen mirroring (PPU regression) . Fixed Chameleon 24 doesn't start correctly (ID 03175) . Improved Sprite Overflow emulation of NES PPU (this fixes the first of blargg's Sprite Overflow tests) - SNES video and sound updates (nss.c and snesb.c) . Re-enabled video debug functionalities in debug build (to toggle background layers). Added proper priority tables for various bg/obj layers. Largely simplified tile and line drawing routines, and fixed small bits here and there. Further simplification of tile drawing routines. Added palette index to 8bpp tiles (correct color_shift still unsure, though). Reworked video drawing routine to simplify the various graphic mode drawing and to allow proper implementation of priority orders (especially bg3 priority bit and mode 7 priority order). Improved mode 7 extbg (still missing mosaic). Added some more debugging options. Improved Mode 7 math precision (but still some issues remain) and added a few elements to PPU struct. Implemented Mosaic in Mode 7. Merged OAM functions. Added a few elements to PPU struct (this might be handy if we ever come to convert SNES PPU to a device). Fixed Mode 7 shared scrolling/matrix registers. Slightly optimized Mode 7 math (by using Anomie's recursive formula). Moved some more register contents to PPU struct. Added PPU1/PPU2 Open Bus support, STAT77/STAT78 registers should be more accurate (even if still not perfect). Simplified window masking code and moved some more regs to PPU struct. . Fixed Super Kick Boxing booting and sound (audio\snes.c). Preliminary open bus emulation for allowing Shien's Revenge / Shien the Blade Chaser to boot. Fixed mode 5/6 bg drawing cutted in half bug. Fixed (presumably) broken gfxs in nss_sten. More accurate behaviour of the last scroll register. Improved mode 5/6 gfxs when tile size = 16x16. Fixed rowscroll line bugs in many games. Made the unsupported reads on I/O open bus, fixed a layer enable in Super Kick Boxing. Fixed vram size when in hires mode. Hooked up interlace mode. Fixed doubled y-axis sprites when in interlace mode. Improved window effects when in H-512 mode. Removed a kludge with color windows. Fixed buggy layer clearance when in H-512 modes. Fixed the x scrolling wrap around bug when hscroll == 0. Fixed a bug that were causing a row of corrupted tiles during scrolling situations. Fixed irq ack and fixed TIMEUP register open bus behaviour. Even more aggressive open bus fixes. Fixed a partial update bug when the screen is in interlace mode. Fixed 8bpp layer colors. - aristmk4.c . Hooked up MC6845 and implemented flip y . Added new maincpu roms to Golden Canaries - 1VXFC5462 - cojag.c . Added variable pixel width . Fixed display of screens wider than 360 pixels . Enabled use of RGB16 - ddenlovr.c, dynax.c, macs.c, nbmj8891.c, ssv.c and stv.c: Added default input mappings for Hanafuda games. Updated most of the Hanafuda games to use them. Like for Mahjong games, keys A->H are used. "Yes" is mapped to M, "No" is mapped to N. - gng.c: Fixed music slows down while shooting (ID 03370). Fixed Z80 CPU2 clock speed in Ghosts'n Goblins and Diamond Run - galaxian.c: Created discrete sound emulation for galaxian, fixes warp noise in Pisces after the first level completely overrides the music (ID 01594). - goldnpkr.c: Fixed bootleg description inconsistency in driver - gottlieb.c: Fixed access violation of all sets with Rev 1 Sound Board in driver (ID 03376) - naomi.c (Atomiswave updates) . Hooked up flash ROM at 0 . Use proper AW memory map . Emulate AW ROM board (different from NAOMI) . Fixed Atomiswave COIN ERROR. Removed bios.ic23_h-dolphin_blue_settings BIOS rom. - nmk16.c: Driver documentation update / clean up: Moved the PCB layout for S.B.S Gomorrah (Bio-Ship Paladin) down by the game's romdef. Added PCB layout for Spectrum 2000 & correct company name to YONA Tech. Added PCB layout for Red Hawk. Moved decryption routines (if needed) to between the info/PCB layout header and game romdef. - playch10.c: Fixed crashes with access violation a short time after boot in Mario's Open Golf and Metroid (ID 03381) - sfbonus.c and goldstar.c: Added a stop4 input to slot default and remapped slot default keys to better suit Amcoe games. Updated sfbonus.c to use the new gambling inputs. Fixed many years and descriptions. Reworked parent/clone relationships so that parent is the higher revision and/or the Export version. Also, tried to establish common rules in the choice of the romset names. - twin16.c . Improved sprite status register, this fixes the rogue sprites problem in Devil World (ID 02267) . Added fround coin counters . Lowered K007232 volume . Added savestate support . Added shadows . Fixed devilw and gradius2 sprite lag . Added text layer x/y flipping . Reverted gradius2 sprite-background priority hack, this fixes severe priority problems in devilw, but reintroduces bugs on gradius2 level 7 and ending. This fixes some rogue sprites in devilw, darkadv and majuu. - tnzs.c: Fixed VSync in the driver as verified on PCB - 18 Holes Pro Golf . Implemented preliminary bg map banking . Patched progolfa rom like progolf. Removed bad dump flag in progolf, with progolfa you get the same rom error in test mode and progolfa have different encryption. - 39 in 1 MAME bootleg: Added preliminary sound (2x DMA-driven DAC), still buggy. - 9-Ball Shootout: Added redumped user2 roms to clone 9-Ball Shootout Championship - Bingo Roll / Bellstar? (set 1) + (set 3) + (set 4): Fixed boot_prg roms loading - Bingo Roll / Bellstar? (set 2): Redumped program roms - beatmania Club MIX: Added missing harddisk image - Cliff Hanger: Correct resistor values in discrete sound based on actual PCB values - Cobra Command: Fixed missing demo sound in attract mode (ID 03352) and 'Infinite Lives (Cheat)' dipswitch triggers service mode (ID 03354) in clone (M.A.C.H. 3 hardware) - Depthcharge: Added a simple color overlay based on flyers - Looping . Added MCU support. This fixes the large error log of unmapped I/O read/writes and major performance drop (ID 03373) . Modified the COP420 rom region . Fixed MCU rom region in clone set - Megatouch 5: Added new maincpu rom ($300000) to clone Megatouch 5 (9255-60-01 ROC, Standard version) - M.I.A. - Missing in Action: Fixed some text of the boot-up screen is not correctly displayed in clone (Japan) (ID 00191) - Maikobana [BET]: Fixed a mapping error which caused the NVRAM not to save correctly - Multi Game III: Fixed NES bank switching in Multi Game III (broken due to a mistake of mine when including original Rob Bohms' code). The game still refuses to work, unfortunately. - Ninja Spirit: Added I8751 CPU3 and 4k MCU rom to clone Saigo no Nindou (Japan) - Panther: Added correct color prom - Safari Rally: Added missing sound sample - Shogun Warriors: Added redumped gfx1 rom - Shuttle Invader: Fixed visible area - Son Son: Fixed sprite wrapping - Space Invaders: Added new roms to clones Space Invaders (CV Version), (SV Version) and (SV Version 2) - Space Fever (New Ver.): Added new maincpu rom ($1800) - Speed Freak: Flagged as GAME_SUPPORTED_SAVE to match the rest of the driver - Space Walk . Added game time and coinage dipswitches, along with service mode and test. . Added support for the 2nd controller and coin counter . Removed GAME_NOT_WORKING as it is working fine . Added color overlay based on a photo . Removed Samples (miss.wav) and Discrete sound - Super Tennis (Nintendo Super System): Fixed (presumably) broken gfxs - Tetris (Photon System): Replaced DAC sound with Speaker - Tryout: Hand-tuned background music (BGM) tempo thanks to a side-by-side reference - Vs. BaseBall: Added new maincpu rom ($e000) to clone (Japan set 3) - Vulcan Venture: Lowered K007232 volume, this fixes defective sound (ID 02553) - Input port . Added a stop4 input to slot default and remapped slot default keys to better suit Amcoe games. Updated sfbonus.c to use the new gambling inputs. . Added default input mappings for Hanafuda games. Updated most of the Hanafuda games to use them. Like for Mahjong games, keys A->H are used. "Yes" is mapped to M, "No" is mapped to N. . Removed fake P3 Start from Nichibutsu mahjong games and properly called "Credit Clear" that input. Also, added back Bet button in nb1413m3.c fixing Omotesandou. - Dipswitch fixes in cobra, kamakazi3, gberet, mainevt, ninjakd2, prosport and taito_z.c - Fixed rom names in balonfgt, bioship, bosco, dland, drgnwrld, duckhunt, gstream, highsplt, sicv, sisv, sisv2, outfxies, spacefev, xevious and vsnes.c. - Description changes of Dragon World (World, V040O), Dragon World (World, V030O), Fruit Bonus 2005, Fruit Bonus '06 - 10th anniversary, Fruit Bonus 2006 Special Edition, Kamakazi III (superg hack), Nebulas Ray (World, NR2), Nebulas Ray (Japan, NR1), Outfoxies (World, OU2), Outfoxies (Japan, OU1), Jack Potten's Poker (set 2) (Coinmaster hardware), Point Blank (World, GN2 Rev B), Gun Bullet (Japan, GN1), Qix (set 3, earlier), Qix (set 2, larger roms), Robin's Adventure, Robin's Adventure 2, Skill Fruit Bonus (Version 1.9R, set 1), Space Fever (New Ver.) and Space Fever (Older Ver.) - MAME . Converted the tilemap lists to be private information held by the running_machine instead of global variables. Added new APIs to the tilemap code to handle the "ALL_TILEMAPS" cases, and removed the old ALL_TILEMAPS definition. . Updated romload.c and validity.c to not rely on global variables . Updated Sega Hikaru PCB README 0.133u1 - New games: Panther, Tetris (Photon System) and Touchmaster 2000 (v4.02 Standard) - New Working games: 39 in 1 MAME bootleg and 3-D Bowling - New Non-Working games: 3 Bags Full - 3VXFC5345 (New Zealand), 98 NeoPri Best 44 (Neo Print), 4x Bingo Roll / Bellstar?, Black Rhino - 3VXFC5344 (New Zealand), Capcom Vs. SNK Millennium Fight 2000 (000904 JPN, USA, EXP, KOR, AUS), Coral Riches II - 1VXFC5472 (New Zealand), 2x Enchanted Forest, Extreme Hunting, Golden Canaries - 1VXFC5462, 2x K.G Bird, Phantom Pays - 4VXFC5431, PhotoPlay, Space Walk, Sweet Hearts II - 1VXFC5461 (New Zealand) and Top Gear - 4VXFC969 and Videotronics Poker. - New clones: Cruis'n Exotica (version 2.0), Dream Land / Super Dream Land (bootleg of Bubble Bobble), Kamakazi III, Guardian Storm, Out Run (sitdown/upright), Pinball Action (set 4, encrypted), Royal Card v2.0 Professional, Soccer Superstars (ver JAC) and Touchmaster 5000 (v7.01 Standard) - New drivers: bingor.c, photon.c, photoply.c and vpoker.c - 68000 CPU: Fixed a bug related to eating cycles during 68k cpu reset (cpu\m68000\m68kcpu.c). Previously, initial_cycles had a wrong value after reset, and if cycles were < 0, it'd always return 0. This change also happens to fix a scrolling bug in Fantasy Zone, introduced when that cycle eating thing was added. - ARM7 CPU: Preliminary PXA255 support, including Intel-specific CP14. Hooked up TLB. - 6532 RIOT: The 6532 RIOT timer should keep spinning after a timeout (regression introduced in 0.126u2) (see drivers: firefox.c, gameplan.c, gottlieb.c, tomcat.c and tourtabl.c) - argus.c . Fixed service switch and DIP location order in Argus . Fixed Coin1 and Coin2 were swapped in Butasan, and fixed DIP location order. . Fixed note for how to enter test mode in Valtric. Coin1 and Coin2 were swapped, and fixed DIP location order. - cham24.c, dkong.c, multigam.c, playch10.c, punchout.c and vsnes.c . Rewrite of NES PPU . Ported ppu2c0x to use a device memory map . Ported all rendering to access PPU address space through memory map . Updated MAME drivers to install read handlers or memory banks in PPU memory map, as appropriate. . Removed all mirroring and banking code from the ppu, as the backing memory is documented to be external. . Supplied replacement banking alternatives for all MAME drivers (VSNES, PlayChoice-10, Chameleon24 and MultiGame) - funworld.c . Removed generic funworld DRIVER_INIT . Added partial PIAs connection diagram . Updated technical notes - galaga.c . Improved bonus verbiage for the driver. Verbiage more like the actual manual. . Added proper conditional bonus (based on number of starting fighters) to Bosconian and Galaga - galaxian.c, galaxold.c, dambustr.c (audio\galaxian.c): Switched Galaxian LFO sound to use the long-disabled NEW_LFO. It's not entirely fixed, but it's closer. - gberet.c, gbusters.c: Improved bonus verbiage. Verbiage more like the actual manual. - gng.c . Improved bonus verbiage for the driver. Verbiage more like the actual manual. . Fixed Z80 CPU2 clock speed and VSync as verified on PCB - kaneko16.c - Calc3 MCU update . Shuffled a few things around based on new findings . Added an extra decryption table used for the Brap Boys startup code (still doesn't do anything interesting) . Noted that one of the unknown parameters for the MCU Init command is where it reads / writes eeprom data from. . Noted that an additional parameter in the MCU commands may cause further displacement of the writeback address, as BRap Boys seems to rely on this (needs further testing) - added a hack for now so that BRap Boys places the writeback address of the initial table somewhere that causes it to get executed. - m52/57/58/62.c/travrusa.c . Improved Irem sound: Revisited schematics. . Correct a bug, some discrete values and added two RC nodes from schematics. . Better Moon Patrol sound (ID 03349) . Found 10-Yard schematics as well - mcr.c . Updated all of the TRON sets with location of the roms and the board they belong to. . Updated the name of the PROM on the Super Sound I/O board . Added notes about PALs that need to be dumped (The same PAL part numbers are also used on Xenophobe and probably other MCR II & III games.) - meadows.c . Set autocenter value to 0 in Dead Eye . Implemented correct inputs and removed not working flag in 3-D Bowling - namcos2.c . Properly added support for Namco System 2 multiple posirq anyway, this fixes . Fixed 'hiccup' glitches when scrolling left/right in Burning Force . Fixed Dirt Fox game start spotlight effect, game still locks up tho. . Fixed Finest Hour bad sprite colors (ID 01119) . Fixed Four Trax track and mirror (ID 02377 + 02378) . Fixed Lucky & Wild tunnel glitch (still a bit glitchy though) . Fixed Starblade large polygons displayed (ID 03317) . Fixed M6809 CPU3, C140 and YM2151 clock speeds - naomi.c . DMA protection emulation for Quiz Ah Megamisama, fixes in-game graphics. Added trojaned protection data (81452000_dma.bin). . Correct decryption key for Extreme Hunting . Added protection emulation for Cosmic Smash . Added protection emulation for Capcom vs. SNK (cartridge ver) . Simplified Atomiswave's decryption routine & keys - nmk16.c . Merged some of the duplicated code in nmk16.c, and attempting to handle the larger tilemaps used by Thunder Dragon 2, Rapid Hero and Macross 2 in a more correct way. This has fixed some glitches in the intro of Rapid Hero without breaking the ingame graphics. Also fixed this the missing top half titlescreen graphic in Bio-ship Paladin (ID 02717). . Documented what the "language" dipswitch actually does for Rapid Hero - stv.c . Added screen raw parameters hook-up to the driver, fixes some of the current issues. . Hand-tuned ST-V pixel-clock to match measured fps from the PCB . Verified and updated the vertical syncs on the ST-V motherboard . Soukyugurentai: Fixed freezes after the loading and patent screens (ID 02715) . Shienryu: Fixed game allows coins but that's it (ID 02715) - taito_x.c: Sound map cleanup - 18 Holes Pro Golf: Decrypted clone (set 2) - 39 in 1 MAME bootleg . Replaced ARM9 CPU1 with PXA255 . Fleshed out some Intel PXA255 peripherals . Improved PXA255 DMA controller emulation . Fixed FBARx register accesses to wait until the current DMA transfer has completed before triggering another interrupt. . Hooked up 93C66 EEPROM . Fixed LCD DMA behavior . Fixed EEPROM byte order . Video, inputs, and flash data ROM hooked up . Improved PXA255 LCDC, DMA and I2S emulation . Working but not great CPLD protection simulation - 3-D Bowling: Implemented correct inputs and removed not working flag - Avengers: Fixed Z80 CPU1/2/3 and MSM5205 sound clock speeds - Big 10: Fixed Z80 CPU1 and AY-3-8910A clock speeds - Burglar X: Fixed distorted main music (ID 03316) - City Connection: Made irqs more accurate - Cliff Hanger . Fixed DEMO_SOUND dipswitch assignment to work correctly when turned ON (ID 03320) . Made 'Cliff Hanger (Alt)' a clone of 'Cliff Hanger' (ID 03313) - Cobra Command . Hooked up sound ROM . Fixed no demo sound in attract mode and infinite lives dipswitch triggers service mode in clone (M.A.C.H. 3 hardware) (ID 03354) . Added audio cpu rom ($d0009) and speech rom ($e000) to clone M.A.C.H. 3 hardware) (ID 03352) - Fantasy Zone: Fixed scrolling bug (ID 03242) - J. J. Squawkers: Fixed incorrect mapped background graphics in clone (bootleg) (ID 03348) - Legendary Wings: Fixed Z80 CPU1/2 clock speed - Mad Gear: Marked graphics ROMs on Led Storm Rally 2011 (US) as bad, as they cannot possibly be the right ones for this set - Mortal Kombat 4: Fixed the version number of 2 sound roms and made U2 1MB in size which is correct. The actual rom type is a 27C800 and has been verified on 2 seperate PCBs. All the rest of the roms are 27C160 as per the driver. - Multi-Poker: Improved colors - Multi Champ: Added support for coinage mode 1 & 2 - Night Striker: Documented lamps/motor usage - Quake Arcade Tournament: Changed CPU speed to 233MHz, added basic PC IO map, hooked up 8259, correct year to 1998 and added some TODO statements. - Scud Hammer: Changed analog controls from paddle to accelerometer. Previously, if you did nothing, the paddle control caused the hammer to smash automatically. - Section Z: Fixed Z80 CPU1/2 clock speeds - Son Son: Fixed unsupported negative sprite positions (ID 03359) and unimplemented coin counter (ID 03358) - Speed Attack! . Hooked up basic MC6845 crtc, fixing resolution and refresh rate. . Added the watchdog . Correct system clock . Removed a video quirkness (tilemap h/w values were bigger than its VRAM) . Cleaned up some other minor stuff . Fixed AY-3-8910A clock speed and visible area - Stagger I: Added license information to the 2 Red Hawk sets (IE: the US & Italy) - Super Breakout: Fixed paddle not reaching left hand side (ID 02645) - Super Free Kick: Fixed Z80 CPU1/2 clock speeds and YM2203 - Tank Battalion . Cleaned-up the irq / NMI firing and fixed irq acks . Cleaned-up the memory map . Added coin counter, coin lockouts and added a second coin chute. . Documented some unclear I/Os . Flagged the game as GAME_IMPERFECT_SOUND since it uses samples instead of proper discrete sound emulation - Tetris (Photon System): Fixed Player 2 input port and bad CRC/SHA1 - Trio The Punch: Fixed HuC6280 CPU1 clock speed - Trojan: Fixed Z80 CPU1/2/3 and MSM5205 clock speeds as verified on PCB - Yie Ar Kung-Fu: Fixed SN76496 and VLM5030 clock speeds and VSync - Yumefuda [BET] . Hooked up basic mc6845 crtc, fixing resolution and refresh rate. . Hooked up the ppi8255 . Hooked up some previously unemulated system inputs . Added coin counter / coin lockout and added proper flip screen bit . Correct system clock - Input port . Added default input mappings for gambling / poker / slot games. Converted many drivers to use the new mappings. . Changed default key for Mahjong P1 Bet to '3', because '2' was conflicting with P2 Start in 2 players Mahjong games. . Clear screens. When set to "English" you simply see "Stage 'x' Clear" (where 'x' is the current stage you just finished). - Fixed VSync in block, bloodbro, cabal, cworld, demonwld, dokaben, f1dream, gng, hatena, ninjakd2.c, raiden, raiden2, raidndx, rallybik, robokid, pang, qsangoku, qtono1, s1945, segas18.c, shadoww, spang, stratof, stv.c, tengai, tigeroad, toki, trckydoc, truxton, vimana and wildfang - Fixed rom names in fourtrax, gstream, hedpanic, narc, plygonet, smashtv and tron - Dipswitch . Added DIP locations to acrobatm, airattck, aligator, aquarium, bigkarnk, biomtoy, bioship, bjtwin, blkheart, bubl2000, bosco, bwings, decocass.c, devstors, digdug, digdug2, drgnmst, firehawk, foodf, funybubl, galaga, gaplus, gberet, gbusters, gijoe, gladiatr, glass, gng, goindol, gotcha, grchamp, grdnstrm, grobda, gundealr, gunnail, hachamf, hcastle, macross, macross2, mainevt, maniacsq, manybloc, mappy, mcatadv, motos, mrgoemon, multchmp, mustang, mx5000, nost, nouryoku, pacnpal, paddlema, phozon, sabotenb, skysoldr, sonson, spec2k, squash, ssmissin, stagger1, strahl, superpac, tdragon, tdragon2, tharrier, thoop, timesold, todruaga, touchgo, twinactn, vandyke, wrally2, xevious and yamyam . Fixes in bowl3d, cobra, decocass.c, devstors, gberet, gbusters, glass, hachamf, mainevt, mrgoemon, sabotenb, sonson and bowl3d - Description changes of beatmania featuring Dreams Come True (ver JA-A), Capcom Vs. SNK Millennium Fight 2000 (000804 JPN, USA, EXP, KOR, AUS), Pasha Pasha Champ Mini Game Festival (Korea), Golden Tee Classic (v1.00) with Infinite Loop Protection, Gun Dealer, Gun Dealer (Alt Card Set), Gun Dealer (Korea), Kaitei Takara Sagashi (Namco license), Mr. Driller + Mr. Driller 2 (ID 03314), Pinball Action (set 4, encrypted), Quiz F1 1-2 Finish (Japan), Quiz F1 1-2 Finish (Japan) and Time Traveler - MAME . Improved hblank duration behaviour . Moved priority_bitmap from a global into the running_machine struct. Updated all drivers accordingly. . Fixed chdman -update to leave the write protect state alone when updating uncompressed CHDs . Updated many clone names to use more than 8 characters (> 950) . Fixed some inconsistencies with bootleg manufacturer names, eg. using Bootleg (big B), or using the original company if the rom is a bootleg. . Unified sets with unknown manufacturer to use all the same manufacturer . Added basic PCB layout and "U" locations to as many rom names (identify in a hi-res pic of the PCB) . Added/Updated PCB README's in fourtrax and grdnstrm - Compiling: Fixed MAME tiny build no longer compiles (ID 03366) 0.133 - New games: Back Fire (Tecmo, bootleg) - New Working games: Multi-Poker - New clones: Super Free Kick (set 2) - ARM7 CPU . Added ARMv5+ CLZ instruction . Added ARMv5TE instructions: QADD, QDADD, QSUB, QDSUB, SMLAxy, SMLALxy, SMULxy, SMULWy and SMLAWy . Fixed disassembly of CLZ - CDP1802 CPU (cidelsa.c) . Refactored the Q and DMA callbacks to use devcb . Fixed state code output and load mode - cischeat.c . Fixed interrupts in the driver, fixing Arm Champs II (ID 03191) and Scud Hammer . Allowing demo to run triggers Test Mode. - mappy.c: Audited and added GAME_SUPPORTS_SAVE flag to all games in the driver (superpac, pacnpal, grobda, phozon, mappy, todruaga, digdug2, motos and clones of each). - model3.c . Added FP registers to PPC debugger interface . Fixed bugs in the x64 back-end that prevented proper 3D rendering for Model 3 games . Fixed LSI53C810 error in Scud Race and pci_device_get_reg error in Virtual On 2 (ID 02912/02913). - naomi.c . Implemented cartridge protection chip mechanism . Added protection data and real dumped cartridge X76F100 data for Dead or Alive 2 and clone Millennium - nss.c and snesb.c: Several MESS-specific SNES fixes for rendering - taitogn.c . Fixed card reset . Added GAME_IMPERFECT_SOUND flag to all games since we don't emulate the sound CPU . Fixed Taito G-NET games freeze when you exit the test menu (ID 03066) - Bubble Trouble . Fixed gun and crosshair positioning . Changed game from flag GAME_NOT_WORKING to GAME_IMPERFECT_GRAPHICS (missing external artwork) - Cliff Hanger: Added missing Laser Disc image to Cliff Hanger (Alt) - Cobra Command (Data East LD) . Added documentation regarding different Cobra Command versions . Changed Cobra Command (M.A.C.H. 3 hardware) to a clone of Cobra Command (Data East LD) (ID 03310) - Dead or Alive 2: Added protection data and real dumped cartridge X76F100 data - Jockey Club II: Decoded some ram based tiles - Multi-Poker . Added inputs and dipswitches . Simulated spark-watchdog circuitery . Demuxed custom port . NVRAM support . CPU clock derived from #defined crystal . 8000-8007 Output ports . Coin related counters . Sound components and trigger found at 8000-8003, bit2. . Full lamps support . PCBs layouts & technical notes. . The 4 games are fully playable. Sound seems to be discrete, so the circuitery need to be traced. Colors are still wrong. - Police 911: Fixed CHD names (ID 03311) - Super Real Mahjong VS: Fixed [debug] assertion (ID 02916) - Time Crisis: Fixed gun and crosshair positioning - Tokimeki Mahjong Paradise: Fixed [debug] crash after OK (ID 03300) - Toypop: Improved dipswitches - Dipswitch fixes in cliffhgr.c, mpoker.c and toypop.c - Description changes of Multi-Poker 0.132u5 - New games: Otenami Haiken Final - New Working games: Cliff Hanger, Cobra Command (M.A.C.H. 3 hardware), Final Lap 2 and Final Lap 3 - New Non-Working games: Cobra Command (Data East LD), Multipede (V1.00), Road Blaster (Data East LD), Shootout Pool (JPN, USA, KOR, AUS), Super Cherry Master and Time Traveller - New clones: GTI Club 2 (ver EAA), Police 911 (ver KAC), Thrill Drive 2 (ver EAA) and Witch Card (german?) - New drivers: cmmb.c, deco_ld.c and timetrv.c - ARM7 CPU . Prepped to support multiple architecture versions . Added ARM9 CPU type (ARMv5TE) . Added mostly-stubbed system coprocessor/MMU support - 8255 PPI . Added a new implementation of the I8255A device. Rewritten from scratch to properly support handshaking in modes 1 and 2. . Refactored SG-1000a driver to use the new implementation. - cliffhgr.c . Made a couple of minor tweaks to the driver . Fixed interrupt timing (was not taking into account interlacing) to fix up glitches in playback and ensure the disk test passes. . Added SHA1 and marked the game as working - namcos2.c: Fixed black screen/game does not start in rthun2, rthun2j and finehour (ID 02197) - ojankohs.c: Fixed all sets in the driver, when game issues a sound/voice, then games crashes (ID 03309) - sg1000a.c: Added a new implementation of the I8255A device - taitogn.c . Added flashv2.u30 (v2 BIOS) to the driver . Added IDE Lock mechanism to the IDE Driver in MAME, so games on GNET v2 BIOS are working correct now (idectrl.c / idectrl.h) & TaitoGN driver. - viper.c: Redumped Konami Viper CF and NVRAM for all games and updated drivers - Laser Disc . Added mechanism for the laserdisc core to return 0 for the philips codes if video is squelched. Updated the Gottlieb and Cliff Hanger drivers to request it this way, since they decode externally. . Made Pioneer PR-8210 serial processing a little more robust . Added Laser Disc images to Cliff Hanger and Cobra Command (M.A.C.H. 3 hardware). Added Cobra Command (Data East LD) with Disc image. - 39 in 1 MAME bootleg: Replaced ARM7 CPU1 with ARM9 - Aqua Jet: Fixed sample ROM loading offset again - Block Out: Fixed corrupt yellow text on the "blockmaster" screen (ID 03305) - B.Rap Boys: Fixed visible area to 256x240. - Burning Force: Fixed powerup item is always "L" in MAME (ID 00772) - Cherry Bonus 2001: Fixed boot_prg rom address - Cliff Hanger: Added Laser Disc image - Country Girl: Verified PROM in clone Fruits & Bunny - Cobra Command (M.A.C.H. 3 hardware): Added Laser Disc image - Empire City: Fixed credits are registering twice (ID 03250) - Final Lap 2/3: Promoted both games to working since they just require to init their analog controls (same sequence as Final Lap R) - Jockey Club II: Updated notes - J. J. Squawkers: Fixed default setting, marked the game as IMPERFECT_SOUND and added some notes. - Mighty Monkey: Changed year to 1982 based on US Copyright Searches - Quake Arcade Tournament: Added hardware notes to the driver - Over Drive: Fixed resets at "Ram Check" (ID 03308) - Shogun Warriors . Decoded tables for several of the startup commands, made some observations, was unable to properly decode table 0x80, second byte scrambling is .. odd, so just using extract data right now. . Properly mapped inputs in Shogun Warriors . Decodes a block of data used by the Japanese version (fjbuster) for the character select screen. Basically block 0x40 is the same as MCU block/table 0x41, but using different encryption (inline encryption table + additional overlay table instead of each byte being bit shifted). . Fixed visible area - Tehkan World Cup: Fixed double and wrong rom definition in clone (set 3, bootleg) (ID 03299) - Time Crisis: Fixed graphics corruption (ID 03235) - Tokimeki Mahjong Paradise: Fixed screen masking and left screen call drawing - Input port: Fixed the -crsshairpath option to be spelled properly - Dipswitch . Added DIP locations to liblrabl and toypop . Fixes in kaneko16.c, liblrabl, seta.c and tecmo.c - Fixed rom names in fruitbun and tetrisp2 - Description changes of Boxing Mania (ver JAA), B.Rap Boys Special (Japan), Code One Dispatch (ver D), GTI Club 2 (ver JAB), Jurassic Park 3 (ver EBC), Mahjong Fight Club (ver JAD), Mahjong Fight Club (ver JAC), Mocap Golf (ver UAA), Police 911 (ver UAD), Police 911 2 (ver A), Pop'n Music 9 (ver JAB), Thrill Drive 2 (ver AAA), Thrill Drive 2 (ver EBB), World Combat (ver UAA?) and Xtrial Racing (ver JAB) - MAME . Added basic support in bitmap.c for 64-bit indexed bitmaps. As a result, you will need a full recompile with this change, since the bitmap formats enum was altered. . Fixed resource leak in core_fload() . Introduced new feature -burnin, which can be used to generate a PNG that represents the overall brightness seen during the course of running a game. This PNG can be used as a fake "bezel" that overlays the screen via the artwork systems (with a low alpha, say 0.1 or 0.2) to simulate running a game with a monitor that has been burned in from another game. . Added new split tool (tools\split.c) that can be used for splitting giant files with per-file hashes and without corrupting them. - Compiling: Fixed compiling warning at devintrf.c:128 with MSVC (ID 03298) 0.132u4 - New games: SportTime Table Hockey (Arcadia, set 2) - New Working games: Mahjong Ikaga Desu ka (Japan), Mahjong Private and Tokimeki Mahjong Paradise - New Non-Working games: The House of the Dead III [GDX-0001], Johnny Nero Action Hero, Pirati, Poly-Net Warriors (ver JAA), Quake Arcade Tournament (Release Beta 2), Sunset Riders (bootleg of Megadrive version) and Turret Tower - New clones: International Toote II (World?), Jockey Club II (newer hardware), Jockey Club II (older hardware), Knights of the Round (World 911127, bootleg), Millennium Nuovo 4000 (Version 1.6), Ninja Mission (Arcadia, set 2), Peter Pan (bootleg of Hook), Sidewinder (Arcadia, set 2), Tehkan World Cup (set 3, bootleg), Teraburst (1998/07/17 ver UEL), The Next Space (Japan), Trivia (Questions Series 8), Trivia (Questions Series 9), Trivia (Questions Series 10), Trivia (Questions Series 11) and World Darts (Arcadia, set 2) - Removed games: Trivia (Version 1.03), Trivia (Version 1.03a), Trivia (Version 1.03a) (alt 4) and Trivia (Version 1.03a Alt questions 2). - New drivers: quakeat.c, ssgbl.c, tmmjprd.c, turrett.c and vp101.c. - ARM CPU: Changed ARM (26-bit) TST/TEQ opcode to only update flags. This eliminates the need for patches in poizone/ertictac, all Deco32 games still run (including Heavy Smash DECO156), and it better matches the documentation. - HD6309 CPU: Fixed a core bug/typo in the divq_im opcode - SCC68070 CPU: Added very basic SCC68070 implementation, currently is just a basic m68k with 32-bits of address lines. The plan is to add the on-chip peripherals on the magicard.c driver then, when I get some consistency, hardwire it to the cpu core. - Atari Audio Board II: Updated the atarijsa code to use a custom address space for its okim6295 accesses (which are banked on the first half and static on the second half), as an example of configuring a device with a custom address space. For now, attempts to use okim6295_set_bank_base() will still work, though banking for the okim chips should be moved to custom address maps in the drivers eventually. The first time okim6295_set_bank_base() is called, it will install a banked memory handler over the region and use memory_set_bankptr() to change the base on subsequent bank switches. - OKI6295 sound: Converted sound driver to use address maps for access. By default, it defines a ROM address map that overlays its full region. As a result, the validity checks require all okim6295 regions to be at least 256k, unless you provide your own address map. Updated all regions to meet this requirement. Updated the atarijsa code to use a custom address space for its okim6295 accesses (which are banked on the first half and static on the second half), as an example of configuring a device with a custom address space. For now, attempts to use okim6295_set_bank_base() will still work, though banking for the okim chips should be moved to custom address maps in the drivers eventually. The first time okim6295_set_bank_base() is called, it will install a banked memory handler over the region and use memory_set_bankptr() to change the base on subsequent bank switches. - cubocd32.c . Fixed Cubo CD32 framerate to 50Hz . Better fix for Amiga AGA ddf_stop_pixel, to avoid breaking Amiga 1200 startup screen. - deco32.c: Xhanged ARM (26-bit) TST/TEQ opcode to only update flags. This eliminates the need for patches in poizone/ertictac, all Deco32 games still run and it better matches the documentation. - deniam.c: Fixed YM3812 clock speeds to match recording - galaga.c . Fixed debug assert in battles, gallag and gatsbee (src\mame\machine\namco06.c:240) (ID 03292) . Added comment about Galaga driver bootlegs using 06XX emulation - model3.c: Masked CROM bank, fixes missing gfx in several games. - wc90.c: Documented the Pacman on Tecmo World Cup '90 hardware. It was done by Mike C. and isn't ment for inclusion in MAME. Lists the roms plus CRC32 / SHA1 in the comment section to prevent it from turning up as a newly "found" game and to show users MAME is aware of it existence. - zaxxon.c: Documented the SEGA CPU part number for Future Spy and Super Zaxxon - Aqua Jet: Fixed sample rom loading - Armed Police Batrider: Fixed 'Hit Score', 'Sound Effect' and 'Music' dipswitches are inverted vs MAME tab, if you select freeplay (ID 03277) - Batman + Beathead + Guardians Of The Hood + Moto Frenzy + Road Riot 4WD + Space Lords + Steel Talons: Fixed ADPCM roms addresses - Jockey Club II . Added different machine drivers for the different sets . Added an ST0016 to the 'older hardware' machine driver, that's what the 'z80' rom on it is for (see st0016.c) the newer hardware and bootleg don't use it. Still waiting for proper gfx dumps. - Last Duel . Confirmed Last Duel sets and changed to use genuine GFX roms . Added better rom load / decode . Added DIP port locations - Mad Gear . Added DIP port locations . Correct rom labels and added PCB locations . Updated clone 'Led Storm Rally 2011' with new roms as per Guru's info. Marked this game as GAME_IPERFECT_GRAPHICS due to the bad sprite etc. . Added README / PCB layout - Magic Card (set 1->3) . Added very basic SCC68070 implementation, currently is just a basic m68k with 32-bits of address lines. The plan is to add the on-chip peripherals on the Magicard driver then, when I get some consistency, hardwire it to the cpu core. . Hooked up basic SCC68070 registers in the magicard memory map . Replaced 68000 CPU1 with SCC68070 - Mahjong Private: Added new maincpu rom ($10000), the older program rom was a BAD_DUMP (Angelo Salese). - Police 911: Fixed compact flash dump in clone (ver UAC) - Racin' Force: Improved game and cleanup K053936 graphics chip - Road Riot's Revenge: Fixed ADPCM roms addresses and removed double ADPCM roms - Safari Rally . Added 8085A CPU1 and Samples sound . Fixed colors and filenames - Seibu Cup Soccer: Fixed sound in clone ':Selection: (bootleg)' - Sengoku Mahjong [BET]: Removed a kludge from sound communications - Skeet Shot: Allow game to put some gfxs - Super Basketball: Added rom locations and jumper settings - Teraburst . Added gun I/O board and hooked up 68k/PPC communications. Not sure how the guns are read yet but this fixes the CALL ATTENDENT immediate death and the game runs fine now. . Added 68000 CPU5 - Tokimeki Mahjong Paradise . Added inputs and fade in/fade out effects . Splitted tmmjprd / tmpdoki from Rabbit driver as it uses the graphic chip in a very different way, and having them together was making it more difficult to make progress on. . Changed tmmjprd / tmpdoki to use custom rendering code instead of tilemaps, as they can address tile data at a sub-tile level, this fixes the girls in the intro. Added some notes about a hang, and possible reason. . Marked the graphic roms of clone 'Tokimeki Mahjong Paradise - Doki Doki Hen' as BAD as it appears to be using tiles which are not present in the 'Tokimeki Mahjong Paradise - Dear My Love' roms for the title screen. . Added dual screen (2x 320x224, 60 Hz) - Virtua Fighter 3: Redumped CROM0 roms of clone 'Virtua Fighter 3 Team Battle', they must be 4MB and not 2MB. Updated game status notes. - Woodpecker: Redumped clone (set 2) and added missing maincpu rom, game now playable. - Dipswitch fixes in toaplan2.c - Fixed rom names in safarir, sbasketg and tnextspc - Description changes of Dark Horse (bootleg of Jockey Club II), Future Spy (315-5061), Last Duel (US New Ver.), Last Duel (US Old Ver.), Mahjong Private (Japan), Ninja Mission (Arcadia, set 1, V 2.5), Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV), Sidewinder (Arcadia, set 1, V 2.1), Super Zaxxon (315-5013), Teraburst (1998/02/25 ver AAA) and World Darts (Arcadia, set 1, V 2.1) - MAME . Changes to support address maps for arbitrary devices: * Moved address_map array from cpu_config to device_config. Added MDRV macros in the device for specifying address maps. Changed the memory system to fetch the maps from the new location. * Moved the address-space related get_info constants to devintrf (including endianness). Removed space array from the CPU class header. Made the memory system much more device-neutral. Various other cleanups along the way. * Expanded address maps from 3 to 4. Moved ADDRESS_SPACE_PROGRAM/DATA/IO constants to cpuintrf, as those names are really only applicable to CPUs. Added new ADDRESS_MAP_0/1/2/3 constants to identify address maps more generically. * Updated memory system to be more general about address map handling. Added the concept of default address maps (in addition to the already existing internal memory maps). The difference between internal and default memory maps is that internal memory maps always override everything (including user-specified maps), but default memory maps simply provide a default that can be overridden. * Converted the okim6295 sound driver to use address maps for access. By default, it defines a ROM address map that overlays its full region. As a result, the validity checks require all okim6295 regions to be at least 256k, unless you provide your own address map. Updated all regions to meet this requirement. * Updated the atarijsa code to use a custom address space for its okim6295 accesses (which are banked on the first half and static on the second half), as an example of configuring a device with a custom address space. * For now, attempts to use okim6295_set_bank_base() will still work, though banking for the okim chips should be moved to custom address maps in the drivers eventually. The first time okim6295_set_bank_base() is called, it will install a banked memory handler over the region and use memory_set_bankptr() to change the base on subsequent bank switches. * Moved address map validity checks to be run for each device instead of just each CPU. . Removed PREDECODE_GFX compile flag, as the on-the-fly decoding seems to be working reliably. Deprecated the ROMREGION_DISPOSE flag, as 98% of the use of it no longer is applicable with on-the-fly decoding, and the remaining cases are difficult to identify among the others. . Fixed sets with added Shifters (running with the Shifter changes orientation in vertical games) (ID 03019) 0.132u3 - New games: 2x Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. JAA) - New Working games: Laser Quiz Italy, Laser Quiz 2 Italy, Laser Strixx 2, Magic Number and Magic Premium - New Non-Working games: Magical Truck Adventure, Mahjong Shiseikatsu (Japan), Skeet Shot and Sunset Riders (bootleg of Megadrive version) - New clones: Bass Angler 2 (GE865 VER. JAA), 3x Bloody Roar 2, Cactus (bootleg of Saboten Bombers), E-Jan Sakurasou (v1.2), Fruits & Bunny (World?), Lost Worlds (Japan Old Ver.), Mario Bros. (US, Revision F), Pae Wang Jeon Seol / Legend of Warrior (Korean censored Samurai Shodown IV), Super Basketball (version I, encrypted) and Super Locomotive (Rev.A) - New drivers: skeetsht.c - 80188 CPU: Fixed an assert when using the CPU - MC68HC11 CPU . Added STX DIR, STY DIR opcodes . Fixed a bug with TAP opcode . Fixed internal RAM/internal I/O start-up state . Fixed the I/O system by changing the has_io flag with a has_extended_io flag (switch between 0x40 and 0x100 I/O registers) the latter is used by the Taito JC HC11 CPU only at the current time. . Fixed a register r/w to allow Skeet Shooter to put some gfxs - PowerPC dynamic recompiler . Fixed PPCDRC flags on STWCX and FMULS to use the correct registers . Generate some FPSCR flags - TMS0980 CPU: Added CPU core - cubocd32.c . Fixed AGA display window start and stop, fixes startup screen and lsrquiz & lsrquiz2 missing graphics . Fixed VSync in Magic Number - konamigx.c: Added kludges to get 'Konami's Open Golf Championship' and Racin' Force past the initial check screens with the TMS emulation enabled - model3.c . Interrupt controller improved . Fixed chip ID for Magical Truck Adventure and Virtual On 2: Oratorio Tangram (ver 5.4g) . Fixed Magical Truck Adventure to use the alternate EEPROM . Various notes for working out additional issues . Fixed Model 3 Real3D DMA source addressing - twinkle.c: Marked all beatmania IIDX games as not working - naomi.c: Added latest US BIOS - Asteroid: Added a new vector rom (035127-01.np3) to clone (bootleg on Lunar Lander hardware) - Black Heart: Fixed 68000 CPU1 clock speed and VSync - DrumMania 2nd Mix: Added new CDROM images to 'DrumMania 2nd Mix' and clone 'DrumMania 2nd Mix Session Power Up Kit' - Galaga: Fixed input in clone Gatsbee (ID 03287) - Hang Pilot . Fixed game no longer boots since the new PPC DRC went in (ID 02797) . Added redumped 2x 4MB sample roms - Laser Quiz Italy / Laser Quiz 2 Italy: Fixed missing graphic - Minnasanno Okagesamadesu: Redumped M1 (027-m1.bin) rom - Midnight Landing . Fixed foreground framebuffer graphics . Fixed sub CPU reset line, main-to-sound CPUs communications and color banking . Fixed analog inputs and added PORT_TOGGLE . Added DSP and background graphics . Fixed ADPCM rom loading and added TMS32025 CPU5 - New Cherry Gold '99 . Made some improvements to the sets . Fixed visible area, dipswitches, number of buttons and coins - Raiga - Strato Fighter: Fixed messed up sound (ID 03288) - Saboten Bombers: Fixed a graphic bug - Salary Man Champ: Mapped Player 2 Start - Ying Hua Lian 2.0: Fixed an assert when using the 80188 CPU - Input port: Fixed bitmap memory leak in all games using lightguns (ID 03185) - Dipswitch fixes in cubocd32.c and mlanding - Fixed rom names in astdelux, asteroid, llander, mario and suprloco - Description changes of E-Jan Sakurasou (v2.0), Dai Makai-Mura (Japan Resale Ver.), Grand Cherry Master (bootleg of Super Cherry Master), Mario Bros. (US, Revision E), Mario Bros. (US, Unknown Rev), Midnight Landing (Germany), New Cherry Gold '99 (bootleg of Super Cherry Master), New Cherry Gold '99 (bootleg of Super Cherry Master) (set 2), Super Cherry Gold (bootleg of Super Cherry Master), Strider Hiryu (Japan) and Strider Hiryu (Japan Resale Ver.) - MAME: Removed old drawgfx APIs after converting the remaining drivers to the new ones - MESS: Added default monochrome amber and green palettes 0.132u2 - New Working games: Candy Puzzle, Harem Challenge and Pro. Sports - New clones: Asteroids (rev 4), High Impact Football (rev LA1 12/16/90), Hit Poker (Bulgaria) and Lupin III (set 1) - Removed games: Shooting Master (unprotected) - New drivers: hitpoker.c - Atmel 8-bit AVR CPU: Added extremely rudimentary core, missing most opcodes and any attempt at proper cycle counts. - MC68HC11 CPU: Fleshed out the MC68HC11 CPU core, adding support for numerous new opcodes and basic IRQ support. - PowerPC dynamic recompiler: Fixed PPCDRC incorrect instruction checksum order - TMS9900 CPU: Fixed breakpoints in the core - cubocd32.c . Fixed Amiga AGA sprite data fetching and sprite colors . Fixed Cubo CD32 inputs and found why inputs are not read (protection ?), hacked to work now. - gottlieb.c: Added some information to the Gottlieb driver about the board IDs of Q*Bert and M.A.C.H. 3 and the various known Gottlieb assigned game IDs - konamim2.c: Fixed PPCDRC incorrect instruction checksum order. This fixes all sets in Konami M2 driver hangs. (ID 01942) - metro.c: Fixed missing sound in bangball, balcube, batlbubl and daitoa (ID 03276) - model3.c: Fixed PPCDRC incorrect instruction checksum order. This fixes hanging in the Sega Model3 sets with GAME_NOT_WORKING flag: bass, getbass,vs215, srally2, sraly2dx, swtrilgy and swtrilga. (ID 02911) - viper.c: Fixed PPCDRC incorrect instruction checksum order. This fixes all sets in Viper driver hangs. (ID 02908) - naomi.c: Added correct Atomiswave Keys (104 bytes) to Ranger Mission and Sports Shooting USA. - Arabian: Fixed hangs in demo or play (ID 03267) - Bang!: Added PCB layout to the driver - Bay Route: Added Z80 CPU2 and YM2151/MSM5205 sound to clone (Datsu bootleg) - B.Rap Boys . Improved protection simulation . Eliminating the hardcoded table with the initial program snippet in, getting it from the rom instead. . Generally cleaning things up - Diamond Touch: Fixed freeze/hang of process (ID 02974) - Hacha Mecha Fighter: Redumped gfx2 rom ($0) (ID 02418) - Hit Poker . Identified the main CPU . Made some logic fixes and significantly improved the video . Fixed gfx decoding - Klax: Added 5x 136075-100x GALs - Midnight Landing: Improved sound and inputs - Pachi Fever . Identified the main CPU (TMS9900). Replaced Z80 CPU1 with TMS9900 (3MHz). . Fixed breakpoints in the TMS9900 CPU core - Pro Soccer: Fixed DECO CPU16 CPU1 and M6502 CPU2 clock speeds - Pro. Sports: Fixed sprite flipping bits - Sexy Boom: Cleaned up memory map - Shogun Warriors: Improved protection simulation, eliminating the hardcoded table with the initial program snippet in, getting it from the rom instead, and generally cleaning things up. - Shooting Master: Removed clone Shooting Master (unprotected), since the initial dump was bad and turned out to match the EVG revision. - Snow Board Championship: Minor fixed PCB layout in driver - Spiker: Updated game with the cartridge type and added notice that it has an undumped PAL - Steel Worker: Fixed coinage (inserting a coin at certain moments during attract mode results in a broken game) (ID 03278) - Dipswitch fixes in mlanding - Fixed rom names in bang, hachamf, klax and mk4 - Description changes of Laser Quiz Italy, Laser Quiz 2 Italy (v1.0), Laser Strixx 2 and Lupin III (set 2) - MAME . Added casts to ensure proper values are passed to the ctype.h functions . Normalized driver-specific drawing code to use the standard parameter ordering: bitmap, cliprect, gfx, ... Updated most video drivers to use the more modern drawgfx_* variants. Eventually the generic drawgfx will be deprecated, so please use the newer functions. 0.132u1 - New games: Steel Worker - New Working games: New Double Bet Mahjong and Pro Soccer - New Non-Working games: beatmania IIDX (863 JAA), beatmania IIDX 3th style (GC992 JA), Ranger Mission and Sports Shooting USA - New clones: Best League (World), Cruis'n Exotica (version 2.4), Dambusters (US, set 2), Grand Striker (Americas), Grand Striker 2 (Europe and Oceania) and 6x Give us a Break - DECO CPU16 CPU . Fixed a DECO16 CPU core bug that was causing issues with Pro Bowling part of Pro Sports. . Implemented a new DECO CPU-16 opcode, used by Express Raider for V-BLANK bit and a bunch of liberate.c games for TILT bit. Converted Express Raider to use the DECO CPU-16 core instead of the plain M6502. - Minx CPU: Pointer-ified core - SP0256 sound: Added pinout - 8237 DMA: Made the DMA controller emulation more accurate by implementing it as a state machine. Deprecated the dma8237_run_transfer function. - 8255 PPI: Fixed handshaking signals for PPI8255 modes 1/2, and mode 2 input mask. - MC6845 CRT: Refactored MC6845 to use devcb and added cursor callback (for MESS) - TMS9928 video: Fixed drivers using the TMS9928 (type of frameskip causes crash) (ID 03262) - bagman.c: Fixed a duplicate save state registration entry in Bagman, Super Bagman and clones (ID 03237) - dkong.c: Adjusted sound command descriptions for dkong to be closer to the other drivers, and added a missing command description. - exprraid.c: Converted Express Raider to use the DECO CPU-16 core instead of the plain M6502 and implemented a new DECO CPU-16 opcode, used by Express Raider for V-BLANK bit. - kaneko16.c: Improved protection simulation and documentation in Shogun Warriors and B.Rap Boys - liberate.c . Added basic gfx PAL descrambling to the driver, and enabled sound (memory map was disabled but it is actually good?) . Fixed for good the background colors and added gfx rom read-back (helps a lot for the tile-based sprites) . Improved playability by tweaking IRQ generation . Implemented a new DECO CPU-16 opcode, used by Liberation and Boomer Rang'r for TILT bit. Fixed M6502 CPU1 clock speed. - naomi.c: Updated README's for ATOMISWAVE hardware - rohga.c: Added irq hack support in the driver, fixes character selection behaviour in Wizard Fire. - starwars.c: Added DIP locations and made default settings changes to match manuals for Star Wars and The Empire Strikes Back. - system16.c: Improved System 16 bootleg behaviors, especially with regards to sprite rendering. - twinkle.c . SPU board emulation improvements (memory map, IRQ controller, IDE, RF5c400) . Changed 'beatmania IIDX 4th style' to use real dumped security dongle data. . Updated README's for TWINKLE hardware . Replaced 68EC020 CPU2 with 68000 and added RF5C400 (16MHz) sound - 18 Holes Pro Golf . Added framebuffer support . Fixed backgrounds and added inputs. Decoupled from Burger Time. . Fixed M6502 CPU1 clock speed - beatmania IIDX 4th style (GCA03 JA): Added new user2 rom (256 bytes) - Dambusters: Fixed PROM hook-up - Jan Oh: Fixed colors in clone (set 2) - New Double Bet Mahjong: Added missing maincpu - King of Boxer: Fixed no sound output (ID 03251) - Nitro Ball: Fixed 'screen flipped by default/input not allowed' (ID 03245) - PolyPlay: Fixed access violation (ID 03263) - Pro Soccer . Fixed background colors and improved the graphics . Fixed DECO CPU16 CPU1 clock speeds, visible area and rom loading - Pro. Sports . Made many graphics and logic fixes to Pro. Sports. . Fixed a DECO16 CPU core bug that was causing issues with Pro Bowling part of Pro. Sports . Fixed Pro Tennis gameplay and added basic background hook-up. . Decoded BG backgrounds . Implemented a new DECO CPU-16 opcode, used by Pro. Sports for TILT bit. Fixed M6502 CPU1 clock speed. - Space Laser: Added BPROMs for clone Intruder and Samples sound (Invaders) - Total Vice: Game uses now the correct boot ROM (623b01.8q - 2MB, same as Polystars) - Xevious: Fixed unable to locate input port 'IN0' in clone Battles (ID 03247) - Dipswitch fixes in progolf.c, liberate.c, shaolins.c and starwars.c - Fixed rom names in bestleag, dambustr, eprom and gstriker - Description changes of New Double Bet Mahjong (Japan) - Compiling: Fixed several issues compiling with GCC 4.4 (ID 03255) 0.132 - New games: Jockey Club - New Working games: Mirax and Super Crowns Golf - New Non-Working games: Dolphin Treasure (B - 06/12/96, NSW/ACT, Rev 1.24.4.0), Dolphin Treasure (B - 06/12/96, NSW/ACT, Rev 3), Enchanted Forest - 12XF528902 and Janputer (Japan) - New clones: Shadow Force (Japan Version 3) - New drivers: aristmk4.c - SSEM CPU (MESS): Fixed a minor typo in the debugging features - TMS57002 CPU: Fixed "Error: free a non-existent block" (debug) source generation (ID 03013) - Z80 CPU: Fixed minor cycle counting inaccuracy in core - aristmk4.c: Fixed colors in the Aristocrat Mark-IV driver - twinkle.c: Hooked up watchdog in driver so test mode exits - 86 Lions: Fixed for good the colors. Fixed rom loading and palettesize. - Aladdin: Fixed unable to "Press Start" (ID 03241) - Balloon & Balloon: Updated Ghost Eolith driver with information out of Eolith driver about QS1000 and added the sample rom, with a note about it NOT being dumped from this PCB but is a common sample rom used by Eolith. Changed unknown region to sfx and added 512k wavetable rom. - Great 1000 Miles Rally: Fixed access violation (ID 03238) - Mirax . Fixed rom 2 decryption . Improved the video emulation . Fixed address line swapping . Fixed Z80 CPU1/2 clock speeds and visible area - Mahjong Kyou Jidai: Hooked up 2nd player mahjong panel - Samurai Aces: Verified clocks on PCB - Fixed year in arkarea, beaminv, dommy, doncdoon, gal3, hipai, ipminva1, kurufev, futflash, mayjin3, monsterz, orbitron, porter, rchase2, redufo, tetkiwam and tokyocop. The source for these changes come from the book: Arcade TV Game List (Edition: Domestic and Overseas, 1971 - 2005). - Dipswitch fixes in mirax and suprgolf - MAME . Changed several internal interfaces to be more consistent, namely (1) passing device_config as a const always, (2) passing running_machine as a non-const always, (3) eliminating running_machine where possible, (4) passing machine\device first, and (5) preferring (screen, bitmap, cliprect) over (machine, bitmap, cliprect) when all are needed for rendering. . Removed the MDRV__REMOVE macros. A simple DEVICE_REMOVE works now that device types are not needed. . Added the concept of device contracts. A contract is a well-defined set of interfaces supported by a device, and identified by a unique string identifier. A device may support any number of contracts, described in a list via the DEVICE_CONTRACT_LIST* macros. The purpose of contracts is to provide a means for devices to expose a standard set of interfaces to other parts of the system. For example, the PCI device should expose a contract that includes functions for configuration register access, and 32-bit I/O. Then any device with a PCI interface should implement the PCI contract, so that the PCI bus device can route things appropriately. - Compiling: Added missing static and const qualifiers throughout the source. 0.131u4 - New clones: Bucky O'Hare (ver AA), Off Road Challenge (v1.63), Street Fighter II - The World Warrior (World 910214, TAB Austria bootleg), Super Qix (World, Rev 1), Touchmaster 5000 (v7.10 California) and Touchmaster 7000 (v8.1X Evaluation) - Z80 CPU: Added alternate read/write handlers to the Z80 PIO implementation - SSEM CPU (MESS): Added CPU core for the Manchester Small-Scale Experimental Machine from 1948 - Namco sound . Cleaned up Namco 5xxx docs, listing both MB88xx pin IDs and Namco custom IDs where appropriate. . Added clocks to the Namco 06xx in anticipation of improved device interconnection - Digitalker sound: Fixed step mode 2 (see Scorpion game) - Other: Converted ADC083x, ADC1213x, DS1302 RTC, MB3773, RP5H01, uPD4701 and uPD4990A RTC to be a MAME device - galaga.c: Updated driver to use computed video timing (60.606061 Hz) - megadriv.c . Simplified driver input reading . Fixed PAL refresh rate (for MESS) - twinkle.c: Fixed Beatmania IIDX CHDs were added in chdformat < 4 (ID 03217) - 86 Lions: Fixed 6522 VIA address map to 5000 - 0x501f (now generates required FIRQ_LINE timer interrupt, call attendant msg no longer displayed) - Anteater: Fixed clone (UK) sits at POST screen (ID 03218) - The Combatribes: Fixed missing music (ID 03222) - The Deep: Verified clocks and fixed 6502 CPU speed - Demon's World: Fixed fails to start (ID 03221) - Five a Side Soccer: Fixed game doesn't past rom check (ID 02730) - Heavy Unit: Updated dipswitches and added DIP Switch Settings list - Mirax: Decrypted main program roms. Added 2nd Z80 (12MHz) CPU2 and fixed rom loading. - Monster Maulers: Fixed sits at black screen (ID 03226) - Seibu Cup Soccer: Fixed NMI firing in clone Goal! '92 (same sound hook-up as Euro League) - Super Crowns Golf . Significant improvements to the video . Hooked up inputs and dipswitches - Super Qix: Fixed coin issue in clone (World, Rev 1) - Tekken Tag Tournamen: Marked the in-practice undumped roms in the Tekken Tag Tournament Japanese versions as NO_DUMP. The versions used in the source where from the export version and they're incompatible with the Japanese program roms. - Wing Shooting Championship: Added documentation of the new game features of v2.00 - Fixed rom names in bucky, hunchbak, intruder, logger, moonbase, pipedrm and wschamp - Dipswitch . Added DIP locations to pipedrm.c, srumbler.c and wizzquiz . Fixes in hatris, hunchbak, hvyunit, megatech.c, pipedrm, srumbler, suprgolf and wizzquiz - MAME . Replaced almost all remaining cpu[num] occurrences in src\mame\ with tags . Added new file devtempl.h which can be used to generate the DEVICE_GET_INFO function. Updated all the Namco I/O devices to use this, along with the 6821PIA, DS1302 and Voodoo. . Added configuration settings and analog adjusters to XML output (see e.g. mario or crbaloon). Also, added port categories for MESS. 0.131u3 - New games: Aqua Jet and Chaos Heat - New Non-Working games: beatmania IIDX 4th style, beatmania IIDX 6th style (GCB4U JA), beatmania IIDX 7th style (GCB44 JA), beatmania IIDX 8th style (GCC44 JA), beatmania IIDX with DDR 2nd Club Version (896 JAB) + (896 JAA), beatmania IIDX Substream 2 with DDR 2nd Club Version (984 A01 BM), Enchanted Forest, Golden Pyramids (B - 13-05-97, USA), Microman Battle Charge, Queen of the Nile, Technical Bowling, 3x Super Cherry Master / New Cherry Gold '99 (set 1) and Tokyo Wars. - New clones: Alpine Racer 2 (Rev. ARS2 Ver.A), Bloody Roar (JAPAN), Cherry Bonus III (alt), Ehrgeiz (Japan, EG1/VER.A), Forgotten Worlds (World), Fighters' Impact (Ver 2.02J), Golden Axe (encrypted bootleg), High Impact Football (rev LA5 02/15/91), Intruder, Pro. Sports (alternate), Super Qix (World, Rev 2), US AAF Mustang (TAB Austria bootleg) and Wizard Fire (Over Sea v2.1) - Removed games: Forgotten Worlds (World?) - New drivers: twinkle.c - ARM7 CPU: Fixed compilation with ARM7_DEBUG_CORE enabled - H8/3xx CPUs . Implemented 8-bit timers and free-running counter for H8/3334 . Added bld #imm, @Rd instruction . Improvements to interrupts and the serial ports - M6502 CPU: Moved the configuration of M6502-family callbacks to the CPU configuration - MB88xx CPU . Internal timer support now works; prescaler is guessed based on Pole Position sample playback frequency. . External counter support works . A basic mechanism for reading serial input has been added; it is not sufficient for a full implementation, but good enough to sample the SI pin at startup. . Fixed TSTS/TSTV to clear their respective flags . Fixed CI and CYI to compute imm-reg instead of reg-imm . Added masking of the PA register upon RTI/RTS to prevent bogus PC values . Added internal memory maps and internal clock divider to the MB88xx CPUs. Removed now-redundant memory maps from drivers and removed explicitly-specified clock dividers. - Namco sound: Converted the Namco 50xx, 51xx, 52xx, 53xx, 54xx and 06xx into proper devices. - YMF271 sound: Correct the 202 entry in the LFO frequency table (and comments for it) based on a formula by Olivier Galibert - Laser Disc: Tweaked some of the laserdisc interfaces to use ROM_NAME() and MACHINE_DRIVER_NAME() macros. - artmagic.c: Added save state - cps3.c: Fixed access violation (ID 03149) - galaga.c + polepos.c . Changed the Namco 52xx and 53xx devices to run the actual MCU instead of simulating the behavior. Hooked them up properly in bosco, digdug and polepos. . Added MB8843 CPU4 and fixed MB8844 CPU5 clock speed in Galaga . Added 2x MB8843 CPU4/5 in Dig Dug . Replaced audio Namco 52XX with 2x MB8843 CPU6/7 and fixed MB8842 CPU4/5 and MB8844 CPU8 clock speeds in Bosconian . Added mirrors to memory maps and replaced audio Namco 52XX with 3x MB8843 CPU4/5/6 and fixed MB8844 CPU7 clock speed in Pole Position / II - jalmah.c . Fixed 68000 CPU1 clock speeds . Guessed ADPCM PAL shuffling in Idol Janshi Suchie-Pai Special, it sounds better. (ID 02777) - mazerbla.c . Cleaned-up driver . Fixed Z80 CPU2 and the 2x AY-3-8910A clock speeds in Great Guns - megadriv.c: Improved timing of communication between the main and sound CPUs - megasys1.c: Hooked up sprite buffering. This fixes the very bad sprite lag bug. (ID 02329) - megatech.c: Updated driver parts list with info from more carts and fixed some errors in the notes for the rom definitions, and arranged them in correct order. - mexico86.c . Fixed some dipswitches quirks in the driver . Enabled the single board 4 players mode in Kick and Run/Mexico 86 - mpu4drvr.c: Improved lamp output. Redrawing now only occurs on the peaks of the 50Hz AC Power. - namcos2.c: Fixed sound mute for System 2 games (machine\namcos2.c) - namcos22.c . Reimplemented SPOT RAM - Tokyo Wars relied on some details not previously seen . Fixed uninitialized RAM area that caused random sprite colors since 0.120 - namcos23.c: Changes and documentation added on how the I/O board is hooked up. The H8/3334 based TSS-I/O board sometimes handshakes successfully in Time Crisis 2 now but timing-related problems remain. - naomi.c: Splitted NAOMI video ram access into 32-bit / 64-bit areas pending more information on how they actually mirror (it's not a straight mirror) - runaway.c: Added save state - segas16a.c . Added MCU dumps and hooked up MCU in Body Slam and clone Quartet 2 (8751 317-0010) . Hooked up MCU in these games . Marked games using simulated MCU as "unemulated protection" as the MCUs clearly do more than what we are simulating. - segas16a/b.c + segas18.c Added some security custom info to the sega drivers (from http://www.higenekodo.jp/sega_n.htm). - system1.c: Fixed missing sound in many sets (ID 03182) - system16.c: Made a pass at shuffling/improving the system 16 and 18 bootlegs. Some games are probably more broken now, but they are better structured for future improvements. (Merged system18.c with system16.c driver). - tmaster.c: Removed the pulse input on the touchscreen, making centipede returns (tm4k), breakout3k (tm3k), wordsearch (tm8k) and possibly other games playable do to the need for "dragging" the screen. An example of this is the word search game where it is necessary to drag from the start letter to the end to highlight the selection, which is not possible with a pulse input. - twinkle.c: Preliminary work on beatmania IIDX, still lots to do. - thunderx.c: Added DIP locations to Super Contra and Thunder Cross and some DEF_STRs (Difficult, Very Difficult, etc.) and modified drivers using them.# - twinkle.c . Added Twinkle System BIOS . Preliminary work on beatmania iidx, still lots to do. . Added Twinkle hardware README - wc90b.c . Fixed regressed sound in Worldcup '90 / Euro League driver . Fixed nested NMIs, improving MSM sound and converted memory maps to current standards . Correct Euro League clock speeds - 4nin-uchi Mahjong Jantotsu . Fixed ADPCM stop flag and cleaned up some routines in the driver . Added an heuristic table for the MSM samples . Fixed MSM frequency . Fixed ADPCM roms addresses and MSM5205 clock speed . Fixed game gives incorrect calls (ID 03101) - 86 Lions: Fixed 'wrong' colours seem fixed when you swap R/B values (ID 03190) - Aliens: Fixed P2 inputs - Beauty Block: Fixed gfx1 rom loading - Cheeky Mouse: Fixed graphic regression (ID 03176) - Cycle Shooting: Fixed regression in clone Bronx - Daisyarin: Fixed resets itself after full strip of girl (ID 03196) - Dog Fight: Added PCB rom locations to Dog Fight (Thunderbolt) romdef as well as the BPROM type. - Dragon Gun: Fixed unable to move crosshair (ID 03178) - Ganbare Chinsan Ooshoubu: Hooked up MSM5205 sound - Gladiator: Fixed coinage - Grand Cross: Fixed Oki banking and added basic ADPCM support - IQ Pipe: Fixed gfx1 rom loading - Joshi Volleyball: Fixed title screen display - Kangaroo: Fixed MB8841 CPU3 clock speed - Lotto Fun: Added missing coin lockout (ID 02707) - Mirage Youjuu Mahjongden: Fixed sound banking and priorities and hand-tuned OKI sound frequency (OKI6295 => 2MHz) - Mirax: Decoded color proms and fixed bitplanes - P's Attack: Redumped card and added ID metadata to create a CHD - Pirate Ship Higemaru: Fixed Z80 CPU1 clock speed - Pro Baseball Skill Tryout . Fixed background colors and cleaned-up the NMI firings on coin insertion . Fixed foreground color offsets, game colors should now be 100% accurate . Fixed flip X on the sprites, fixed scrolling issues and added screen disable flag - Robocop: Added newly-dumped proms - Special Criminal Investigation: Fixed game title is different as shown in picture in clone (Negro Torino hack) (ID 03187) - Super Crowns Golf . Added basic MSM5205 support and fixed NMI generation . Found & hooked up the flip screen bit, and cleaned up the memory maps. - Super Qix . Added I8751 ROM to clone (US) . Fixed sqix/sqixa bootleg MCU bad dump by comparison with the original - Super Shanghai Dragon's Eye . Hooked up sound . Fixed flickering on girl presentation screens . Split memory maps for the different versions - Tetris (D.R. Korea): Fixed coin lockout and removed the GAME_WRONG_COLORS flag since the colors are correct (ID 03140) - Time Crisis: Fixed sprite roms addresses - Xevious . Added MB8843 CPU4 . Fixed MB8842 CPU4 and MB8844 CPU6 clock speeds - Cheat engine: Added LSHIFT and RSHIFT as alises to << and >> for cheat files - Input port: Added some DEF_STRs (Difficult, Very Difficult, etc.) and modified drivers using them. - Dipswitch fixes in segas16a.c and suprgolf.c - Rom names fixes in bzone and dogfight - Description changes of Bay Route (encrypted, protected bootleg), Bay Route (Datsu bootleg), Super Special Criminal Investigation (Negro Torino hack), Super Qix (World, Rev 1), Super Qix (bootleg set 1), Super Qix (bootleg set 2) and Euro League (Italian hack of Tecmo World Cup '90) - MAME . CPUs actually take some time to reset. Changed the 68000/68010 to eat an appropriate number of cycles after a reset. . Added DERIVED_CLOCK() macro which can be used by sub-devices to derive their clock from the parent device . Continued changing CPU references from numbers to tags in drivers . Fixed a few potential memory leaks detected by Cppcheck and also added an errormessage to verinfo. . Eliminated SMH_* usage in all memory maps in drivers beginning with A and B . Added support for parsing horizont.ini or vertical.ini based on the game's orientation . Fixed the logic for detecting merged roms, they did not check all the rom sources in the parent, leading to cases where roms from devices aren't detected as merged (e.g. ldv1000 in superdqs). . Added/Updated PCB README's in jailbrek.c, namcos22.c, ninjaw.c, model3.c, opwolf.c, rainbow.c, triforce.c and twinkle.c . Relaxed 8 letter setname for bayrouteb1, bayrouteb2, boomranga, liberateb, yellowcbj, yellowcbb - Compiling . Added static qualifiers to recently-added code . Disabled unused variables in the project that were only assigned to but never used 0.131u2 - New games: Otenami Haiken (V2.04J) and Shanghai Sangokuhai Tougi - New Working games: Choplifter, Noboranka, PT Reach Mahjong, Shooting Master (EVG, 8751 315-5159a) and Street Fighter Zero 3 Upper - New Non-Working games: IQ Pipe - New clones: Hatris (US) and Samurai Nihon-ichi (set 3, harder) - I8051 / MCS-51 CPU: jb int0, loops are now broken out of if int0 comes and is taken. Externally-clocked counters only count when enabled. Internal RAM no longer wraps when accessed out of bounds. - SH-4 CPU: Added a work-around for the UART FIFO read only status register on the SH-4 to make Tetris Kiwamemichi happy to boot. It crashes shortly after that like La Keyboard though (jumps to an unmapped address). - Atari Audio Board II: Fixed incorrectly pitched audio samples in games using audio\atarijsa.c (ID 03173) - AICA sound: Commented out the ACIA irq, was causing missing bgms in Street Fighter Zero 3 Upper. - adp.c: Lowered the AY-8910 volumes in the driver - cave.c and seta2.c: Fixed a couple of bugs in in the driver introduced with the memory map merges. - dec0.c: Fixed missing sound in baddudes, hbarrel, birdtry, robocop, hippodrm and ffantasa. (ID 03162) - fromanc2.c: Fixed P2 palette write handlers in Taisen Mahjong FinalRomance 4 and Taisen Mahjong FinalRomance R (ID 03167) - gstriker.c: Added MCU no dumps for the driver - halleys.c: Fixed AY8910 sound write handlers work on two bytes (ID 03168) - homedata.c: Fixed regression on driver - konamigx.c: Fixed access violation in the driver (ID 03148) - konamim2.c . Added missing YMZ280B rom to Evil Night/Hell Night . Marked Total Vice, Hell Night and Tobe! Polystars CHDs as bad. Will be replaced soon. - naomi.c . Added bilinear filtering to video emulation. Textures are still a bit crawly since we're always using the lowest MIP level. . Added all 64 blending modes, and made it anal-retentive where it comes to position precision. . Improved the debugging on the Wave DMA handler . Added profile markers to NAOMI, to see what % of CPU time things are using . Fixed a NAOMI bug in computedilated, was causing bad portraits in Shikigami No Shiro II . Short-circuit the NAOMI rendering in non-textured cases, prevents a lot of bad graphics . Applied some of the NAOMI exclusive texture mode rules . Hacked the NAOMI YUV interrupt to fire when the base register is written (currently looking at implementing properly, but this prevents Kurukuru Chameleon and Super Shanghai 2005 from hanging) . Added a work-around for the UART FIFO read only status register on the SH-4 to make Tetris Kiwamemichi happy to boot. It crashes shortly after that like La Keyboard though (jumps to an unmapped address). . Did some maple fixes, now Street Fighter Zero 3 Upper should be fully playable. Commented out the ACIA irq, was causing missing bgms in Street Fighter Zero 3 Upper. - megatech.c: Added cart info documentation update for the two resent Mega-Tech cart dumps: Shadow Dancer & Streets of Rage. - mexico86.c . Improved the single board 4p mode in Kick and Run / Mexico 86. It basically works but 2p mode is broken so I still keep it as disabled by default. . Fixed KiKi KaiKai exception - mitchell.c: Fixed regression for games and ram error during the boot checking of the games in pang, spang, pompingw and pkladies (ID 03171). - nss.c: Fixed access violation (ID 03152) - policetr.c: Fixed access violation (ID 03157) - system1.c: Hooked up 8751 properly. Removed old 8751 hacks. Shuffled Shooting Master sets. - vsnes.c: Fixed access violation in jajamaru, mightybj, topgun and vsgshoe (ID 03151) - system16.c: Changed region user1 to pals in Beauty Block - Alien Command: Fixed background colors - DJ Boy: Converted memory maps to current standards - Dynamic Golf: Dumped IO board rom - Gigas: Added MC-8123 key (317-5002). Of course the game still doesn't work because the program ROM is missing. - Heavy Unit: Fixed access violation (ID 03169) - King Derby: Fixed sprites wrap-around and flip x positioning - Lady Master of Kungfu: Nunchackun is now a clone of Lady Master of Kungfu - Legend of Makai: Fixed regression - Metamoqester: Fixed access violation (ID 03150) - Mouse Trap: Fixed sound effects cycle (ID 03170) - Ninja-Kid II: Fixed dipswitches and notes - Penguin Brothers: Fixed access violation (ID 03153) - Pipe Dream: Fixed tag problem - Pooyan: Fixed access violation (ID 03154) - PT Reach Mahjong: Converted Irem M14 HW to tilemaps and cleaned-up the driver. Fixed 8085A CPU1 clock speed and added paddle control. - Red Baron: Removed "BAD_DUMP" from the AVG bprom, it has been verified correct (contents and label) by the Dumping Union. - Pretty Soldier Sailor Moon: Fixed playfield graphics regression (ID 03163) - Shikigami No Shiro II: Fixed NAOMI bug in computedilated, was causing bad portraits. - Shooting Master . Moved the new decapped MCU rom (315-5159a.ic74) from 'Shooting Master (unprotected)' to clone Shooting Master (EVG, 8751 315-5159a) and added I8751 (8MHz) CPU3. This fixes protection problems still exist after the first level (ID 01049). . Fixed the wrong 315-5159a.ic74 MCU SHA1 checksum (ID 03147) - Super Chase: Fixed access violation (ID 03159) - Tattoo Assassins: Fixed regression from map merging (ID 03166) - Tube Panic: Fixed clone (bootleg) regression (ID 03160) - Merged memory maps in the following remaining drivers and cleaned up some comments: homedata.c, intrscti.c, inufuku.c, irobot.c, jack.c, kaneko16.c, naughtyb.c, scobra.c, scramble.c and slapfght.c - Input port: Converted drivers namcos2.c, nbmj9195.c and niyanpai.c to use AM_IMPORT_FROM instead of macros - Dipswitch fixes in m14.c, naomi.c, ninjakd2.c and pipedrm.c - Description changes of Gigas (MC-8123, 317-5002), Shooting Master (unprotected), Wonder Boy (prototype?) - MAME . Removed second parameter from MDRV_CPU_PROGRAM_MAP, MDRV_CPU_DATA_MAP and MDRV_CPU_IO_MAP. For the remaining drivers that used multiple address maps, converted them to use AM_IMPORT_FROM to import the base map. . Added notes to several drivers indicating specifically that an MCU is needed for decapping. . Relaxed 8 letter setname for shtngmstu - Compiling: Fixed cpu\vtlb.c 64 bit warning: 64bit vs compile warnings (ID 03146) 0.131u1 - New games: Pit Boss Supertouch 30 and Pit Boss Supertouch 30 (set 2) - New Non-Working games: Beast Busters 2nd Nightmare, Dancing Stage Featuring Disney's Rave (GCA37JAA), Ferrari F355 Challenge, New Fruit Machine (Ming-Yang Electronic), Panic Park (PNP2 Ver. A), PT Reach Mahjong (Japan), Samurai Shodown 64 / Samurai Spirits 64, Shadow Dancer (Mega-Tech), Skimaxx, Streets of Rage (Mega-Tech), Super Star, Triple Star 2000 and Xtreme Rally / Off Beat Racer! - New clones: Aliens (Asia), Cabal (bootleg of Joystick version, set 2), The Combatribes (Japan), Crazy Kong Part II (Japan), Cruis'n World (rev L1.7), Final Star Force (Japan), Gigas, The Legend of Kage (oldest), Noraut Joker Poker, Pit Fighter (rev 5), Special Criminal Investigation (Negro Torino hack), Super Xevious (Japan), Yellow Cab (Japan) and Zero Team (set 4) - Removed games: Jingi Storm - The Arcade (GDL-0037), 2x Melty Blood Act Cadenza Ver B, Noukone Puzzle Takoron (GDL-0042), Trigger Heart Exelica (Rev A) (GDL-0036A) and Virtua Striker 4 ver. 2006 (Rev D) (Japan) (GDT-0020D) - New drivers: m14.c and skimaxx.c - 8085A CPU: Fixed display of the i8085's SP register when in the debugger - H8/3xx CPUs: Improved interrupt handling for the 8/16 bit H8s - I8051 / MCS-51 CPU: Fixed MCS51 disassembler to work properly when there are two memory arguments (the second would overwrite the first) - Z80 CPU: Fixed bug when setting breakpoints on Z80 CPUs at addresses A-F - SN76496 sound . Added READY line readback to the SN76496 core, cleaned up the structs a bit, cleaned up comments, added more TODOs and fixed some unsaved savestate related stuff. . Added SN76496 ready line hook-up for spcforce.c, doesn't make a difference since it's not actually used. - cntsteer.c + ssozumo.c: Modified my coin_insertion() function to use ASSERT & CLEAR instead of PULSE_LINE - dotrikun.c, espial.c and zodiack.c: Audited code and added savestate support - galpani2.c . Improved protection emulation in driver . Modified somewhat the protection handling, geeting rid of the need to call galpani2_mcu_run from VIDEO_UPDATE, as that function is performed by CPU2's INT7 and it now works. Added support for command 2, making gp2se go into demo mode and allowing to go ingame, nice skulls! Unfortunately, this set is still not playable because of missing gals in the background and sometimes there's an ADDRESS ERROR, causing a reset. Included in these changes, I added support for MCU triggering by CPU2. . Changed some 8 bit writes disguised as 16 bit to AM_WRITE8 and AM_DEVWRITE8 and some AM_WRITE(SMH_NOP)s to AM_WRITENOP. . "crystallized" the clocks of the M68000s and OKIs, deriving the latter from the former. . Fixed a Copy&Paste mistake I made in the previous submission, in the sound rom mappings for galpani2/2t/2g. . Reduced the input port definition duplication by using PORT_INCLUDE where applicable instead of defining everything again. . Reduced the CPU#2 Code region size to the effectively used size, and expanded the CPU#2 backgrounds data region size to the maximum usable size, making it the same for all sets. . Added 2x OKI6295 sound to Gals Panic II /- Quiz Version/- Special Edition - goldstar.c . Added scroll registers for the girl when enabled in attract mode . Documented how you can swap the blue/green bonus colours (but left the code disabled, I think versions with it swapped probably just have different proms). . Added gfxdecode for clone Cherry Master I (ver.1.01, set 3) - hng64.c . Stripped out some old HNG64 code / some improvements . Disabled the floor stuff in Fatal Fury Wild Ambition (looking for a cleaner implementation) . Disabled zooming code for the same reasons (it was causing many issues) . Understood and implemented the 'auto-animate' registers for the tilemaps (animated waterfalls etc. in Fatal Fury Wild Ambition) . Reorganized graphic decoding . Documented + hooked up 4bpp/8bpp select on layers . Fixed tile flipping . Fixed a bug in the HNG64 DMA . Added a large gfx decode using macros to allow the textures on HNG64 to be viewed, handy for verifying the dumps. . Added RTC emulation for and cleaned-up HNG64 system ports - kopunch.c + usgames.c: Removed deprecat.h dependancy - madmotor.c + mayumi.c and ojankohs.c: Cleaned-up some video variables - maxaflex.c: Factored out some more MESS specific code for Atari 8bit - megadriv.c . Changed the z80_bank_addr into a simple 9 bit shift register. This fixes sometimes samples are not played at all (ID 02817). . Made sure that both the RESET and BUSREQ lines are honored by the Megadrive sound CPU - mexico86.c: Added a basic hook-up for the 4p communication CPU, disabled by default. - namcos2.c + namcos21.c: First layer of memory map merging for Namco System 2, needs a second hand in order to remove all the SMH references (they both are macroized to hell). - namcos23.c: Hooked up System 23 serial communications between subcpu and I/O board - naomi.c . Hacked up 3D renderer. Still quite preliminary but allows most games to show graphics. . Splitted NAOMI / Atomiswave memory maps, improved sorting of the driver . Modified Mahjong games in NAOMI to be loaded with a specific configuration, will add the proper JVS hook-up later. - ninjakd2.c: Fixed sprite trail Atomic Robo-kid and Mutant Night - nmk16.c: Cleaned-up some unneeded video code - redclash.c: Cleaned-up the irq/nmi generation on coin insertion - sauro.c . Fixed main CPU and YM3812 as verified on the PCB in Sauro and Tricky Doc . Cleaned-up video function - senjyo.c: Moved paletteram_IIBBGGRR_w() from driver to emu\video\generic.c - slapfght.c: Cleaned-up the ram sharing - snowbros.c: Added irq hacks to the driver - splash.c: Fixed visible area - stv.c: Moved stv_vdp2_dynamic_res_change() function outside of VIDEO_UPDATE - system1.c . Added and began hooking up the 8751's for the System 1 games. Still some work to do. . Added I8751 CPU3 and 4k MCU to Choplifter, Noboranka and Shooting Master - Black Tiger: Added I875 CPU and proper MCU dump - Bubble Trouble: Added missing gfx1 rom - Captain America: Fixed no enemies appear in the second phase (ID 03104) - Chequered Flag . Added engine noise hook-up . Fixed nested NMIs on sound CPU, this fixes the sound loops and the music tempo. - Dance Dance Revolution 2nd Mix: Added missing cpu2 rom to clone 'Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)' - Fatal Fury: Wild Ambition . Disabled the floor stuff (looking for a cleaner implementation) . Understood and implemented the 'auto-animate' registers for the tilemaps (animated waterfalls etc.) - Ground Effects: Fixed wrong default NVRAM settings, especially about the lap number (1) and the coin/credit settings (1/2). (ID 00487) - Hyper Pacman: Made game run with protection code from decapped MCU rather than simulation. Added I8052 CPU3 and AT89C52 MCU rom. - Idol Janshi Suchie-Pai 3: Added proper JVS I/O board init string to allow it to boot - Kamikaze Cabbie: Fixed clone Yellow Cab (Japan) booting, promoted to working status. - Karate Champ: Lowered DAC volume from 0.50 to 0.15, it was having sound clipping problems since day one. - Koi Koi Part 2: Attempted to fix colors - Lord of Gun: Fixed P1 Button2 is really P2 Button1 - Lunar Lander: Changed thrust control from a paddle to a pedal. This more accurately emulates the control. Note: The current code uses IPT_PADDLE. This causes the game to start with the thrust at 50%. This is not correct. The control is really a hand operated pedal. - Magical Cat Adventure: Reduced a 1.0 clipping out volume setting - Mr. Jong: Cleaned-up the spriteram routines - Over Drive: Demoted game to the GNW flag - Parent Jack . Various improvements . Fixed 68000 CPU1 and YM2203 clock speeds and visible area. Added missing dipswitches. - Pass: Worked out some sound related stuff - The Real Ghostbusters: Added proper MCU dump + I8751 CPU3 for clone Meikyuu Hunter G - Pirate Pete: Fixed button 2 skips level (ID 03144) - Pit Fighter: Added new 512k gfx3 roms to clone (rev 6) - Pocket Gal Deluxe: Added OKI6295 sound to clone (Euro v3.00, bootleg) - Screw Loose: Fixed screwy graphics area on one screen (ID 03143) - Shoot Out + Sky Fox: Cleaned-up the NMIs on coin insertions - Side Pocket: Moved the protection simulation hook-up to be called on DRIVER_INIT - Super Bishi Bashi Championship: Fixed when Player 2 plays alone, strange things happen. (ID 03126) - Super Shanghai Dragon's Eye: Hooked up standard paletteram16_xbgr() function instead of a custom one. - Tank Force: Fixed player controls in clone (US, 4 Player) (ID 03127) - X-Men: Fixed directional controls re-arranged (ID 03129) - Wakakusamonogatari Mahjong Yonshimai: Properly hooked-up player 2 Mahjong panel - Merged memory maps in 238 drivers (!): battlex.c, buggychl.c, bwing.c, carjmbre.c, cave.c, cbuster.c, chaknpop.c, changela.c, chqflag.c, circus.c, circusc.c, cischeat.c, citycon.c, cninja.c, combatsc.c, compgolf.c, contra.c, cop01.c, cosmic.c, cps2.c, crimfght.c, crospang.c, crshrace.c, cshooter.c, dambustr.c, darius.c, darkhors.c, darkseal.c, dassault.c, dbz.c, dcon.c, dday.c, ddenlovr.c, ddragon3.c, ddrible.c, dec0.c, dec8.c, deco_mlc.c, deco32.c, deniam.c, dietgo.c, diverboy.c, dogfgt.c, dooyong.c, dotrikun.c, dragrace.c, dribling.c, drmicro.c, egghunt.c, epos.c, esd16.c, espial.c, exedexes.c, exzisus.c, f1gp.c, fastlane.c, firetrap.c, flkatck.c, flstory.c, freekick.c, fromanc2.c, fromance.c, funkybee.c, funkyjet.c, funybubl.c, fuukifg2.c, fuukifg3.c, gaelco.c, gaelco2.c, gaiden.c, galaga.c, galastrm.c, galaxold.c, galivan.c, gaplus.c, gbusters.c, gcpinbal.c, genesis.c, gijoe.c, ginganin.c, glass.c, gng.c, goal92.c, goindol.c, gomoku.c, gotcha.c, gotya.c, gridlee.c, groundfx.c, gstriker.c, gumbo.c, gunbustr.c, halleys.c, hanaawas.c, hanaroku.c, hcastle.c, hexa.c, hexion.c, higemaru.c, hnayayoi.c, holeland.c, homedata.c, hshavoc.c, hyhoo.c, hyperspt.c, karnov.c, kchamp.c, kingobox.c, klax.c, koikoi.c, konamigq.c, ladyfrog.c, lastduel.c, lemmings.c, liberate.c, lkage.c, lsasquad.c, ltcasino.c, lwings.c, m62.c, m90.c, macrossp.c, madmotor.c, magmax.c, mainevt.c, marinedt.c, markham.c, mastboy.c, matmania.c, mayumi.c, mazerbla.c, mcatadv.c, megadriv.c, megasys1.c, megazone.c, metlclsh.c, metro.c, mexico86.c, mirage.c, mitchell.c, mjkjidai.c, mjsister.c, mogura.c, momoko.c, moo.c, mosaic.c, mouser.c, mrflea.c, mrjong.c, ms32.c, msisaac.c, mugsmash.c, mystwarr.c, namcos2.c, namcos21.c, naomi.c, nbmj8688.c, nbmj8891.c, nbmj8991.c, nbmj9195.c, news.c, ninjaw.c, niyanpai.c, nmk16.c, nycaptor.c, ohmygod.c, ojankohs.c, olibochu.c, oneshot.c, opwolf.c, othldrby.c, overdriv.c, pandoras.c, parodius.c, pass.c, pbaction.c, pcktgal.c, pingpong.c, pirates.c, pitnrun.c, pktgaldx.c, pokechmp.c, popeye.c, popper.c, powerins.c, psikyo.c, psikyo4.c, psikyosh.c, puckpkmn.c, punchout.c, pushman.c, qdrmfgp.c, quizdna.c, quizpani.c, rabbit.c, rainbow.c, rcorsair.c, redclash.c, renegade.c, rmhaihai.c, rockrage.c, rocnrope.c, rohga.c, rollerg.c, rollrace.c, runaway.c, rungun.c, sangho.c, sauro.c, sbasketb.c, sbugger.c, scregg.c, segae.c, senjyo.c, seta.c, seta2.c, sf.c, sfkick.c, shangha3.c, shaolins.c, shisen.c, shootout.c, sidearms.c, sidepckt.c, skyarmy.c, skyfox.c, skyraid.c, slapfght.c, slapshot.c, snowbros.c, spbactn.c, spcforce.c, spdodgeb.c, speedspn.c, spy.c, srmp2.c, sshangha.c and ssv.c. - Input port: Moved Taito 'skip to next level' buttons from BUTTON_2 to Q/W keys - Dipswitch fixes in goldstar.c, naomi.c and taito_o.c - Description changes of Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players), Cabal (bootleg of Joystick version, set 1, alternate sound hardware), Glass (Ver 1.0, Break Edition), Karous (GDL-0040), Mahjong Channel Zoom In (Japan), Mahjong Daireikai (Japan), Mahjong Kakumei (Japan), Mahjong Kakumei 2 - Princess League (Japan), Mogura Desse (Japan), Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden, Super Bishi Bashi Championship, Sengoku 3 / Sengoku Densho 2001, Idol Janshi Suchie-Pai Special (Japan), Puzzle Bobble (Italian Gambling Game), Otogizoushi Urashima Mahjong (Japan), Sengoku 3 / Sengoku Densho 2001, Super Bishi Bashi Championship (ver JAA, 2 Players) and Super Bishi Bashi Championship (ver KAA, 3 Players) - MAME . Changed UI to ignore selection from lightguns when off screen. This stops selection of Gun X Gun Y if you move the gun out of range. . Made a similar change to the auto_* allocation macros like the new 0131u1 memory allocation handling. In addition, added 'machine' as a required parameter to the auto-allocation macros, as the resource pools will eventually be owned by the machine object. The new macros are: auto_alloc(m,t) - allocate memory for an object of type 't', auto_alloc_array(m,t,c) - allocate memory for an array of 'c' objects of type 't', auto_alloc_clear(m,t) - allocate and clear and auto_alloc_array_clear(m,t,c) - allocate and clear. All original calls or auto_malloc have been updated to use the new macros. In addition, auto_realloc(), auto_strdup(), auto_astring_alloc(), and auto_bitmap_alloc() have been updated to take a machine parameter. . Changed the way memory allocation is handled. Rather than allocating in terms of bytes, allocations are now done in terms of objects. This is done via new set of macros that replace the malloc_or_die() macro: alloc_or_die(t) - allocate memory for an object of type 't', alloc_array_or_die(t,c) - allocate memory for an array of 'c' objects of type 't', alloc_clear_or_die(t) - same as alloc_or_die but clears the memory and alloc_array_clear_or_die(t,c) - alloc_array_or_die with clearing. All original callers of malloc_or_die have been updated to call these new macros. If you just need an array of bytes, you can use alloc_array_or_die(UINT8, numbytes). . Removed of SMH_BANKn macros. Just use SMH_BANK(n) instead, which is what the previous macros mapped to anyhow. . Replaced the use of CPU numbers with tags where possible across most drivers . Deprecated device_set_info. Almost all devices had a NULL or empty function here. Remaining devices have been converted to have device-specific functions to do the same thing with proper type checking. CPUs still have a set_info function but it is CPU-specific now and no longer piggybacks on the general device function. . Changed validity check allocations to not rely on auto_alloc* anymore because they are not done in the context of a machine. . Relaxed 8 letter setname limitation for blktigerb1, blktigerb2 and blkdrgonb - MESS . Converted the WAVE sound device to stereo (for MESS) . Reimplemented HDMA and fixed bugs in the EX (mem), R instructions for TLCS-900/H CPU. - Compiling: Added missing casts and made other tweaks to appease some more strict settings on the compiler. 0.131 - New games: Multi Game 2 and Status Fun Casino - New Working games: Fantastic Journey (Gokujyou Parodius clone), Super Lucky Roulette and Status Black Jack - New Non-Working games: Casino Strip XI, Death Crimson OX, Dengen Tenshi Taisen Janshi Shangri-la, Derby Owners Club II, Guilty Gear X (JPN), Giant Gram 2000, The Key Of Avalon - The Wizard Master - Server (GDT-0005C) (V4.001), Marvel vs. Capcom 2, Quiz Ah Megamisama, Tripple Draw, Virtua Striker 2002 (GDT-0001), Virtua Striker 4 ver. 2006 (Rev D) (Japan) (GDT-0020D), Virtua Striker 4 (Japan) (GDT-0013E), Wild Riders and WWF Royal Rumble - New clones: Ashura Blaster (World), Asterix (ver JAD) and Virtua NBA (JPN, USA, EXP, KOR, AUS) (original) - New drivers: chihiro.c - 8085A CPU: Fixed XF flag - harddriv.c: Fixed MAME map some P1 inputs to P2 controls in harddriv, racedriv, steeltal and clones (ID 03070) - naomi.c . Miscellaneous NAOMI work and improvements . Some refactoring done, new games hooked up . Moved NAOMI DRIVER_INITs to specific machine\naomi.c & includes\naomi.h files, in preparation to add per-game JVS settings. . Added NAOMI Ferrari F355 Challenge BIOS . Removed Ferrari F355 (Export) and Ferrari F355 (USA) BIOSes . Added missing user1 roms to Derby Owners Club, Dynamite Baseball '99, Dynamite Baseball NAOMI, Giant Gram and Zombie Revenge - nbmj8991.c: Fixed Z80 CPU2 clock speed - statriv2.c . Reduced multiple drivers down to a primary one with minor tweaks . Hooked up basic implementation of the TMS9927 video controller . Fixed statriv2v character generator to be more accurate . Fixed incorrect colors. Correct video timing. . Fixed 8085A CPU1 and AY-3-8910A clock speeds, visible area and VSync. Added NVRAM rom hangman.nv. (Hangman, Quadro Quiz II, Sex Triv, Status Black Jack, Super Triv II, Super Triv III, Triv Quiz, Triv Two and Triv Four) - thief.c: Added basic implementation of the TMS9927 video controller - Asura Blade: Fixed missing sound (ID 02948) - Battle Shark: Fixed analog stick input is broken since 0.112u4 (ID Derrick Renaud) - Carrera: Attempted to add proper colors - GI Joe: Removed YM2151 which is not present on real PCB - Lethal Enforcers II: Fixed P2 gun reload - Multi Game III: Fixed gfx1 rom address and year - Quadro Quiz II: Fixed 8085A CPU1 clock speed to 12440000 Hz, AY-3-8910A to 1555000 Hz and visible area to 320x240 and VSync to 59.992284 Hz. Added NVRAM rom quaquiz2.nv (256 bytes). - Quiz-Mahjong Hayaku Yatteyo!: Fixed sound CPU in Quiz-Mahjong Hayaku Yatteyo! (runs at 4MHz in real machine) (ID Luigi30) - Super Lucky Roulette: Numerous improvements to the driver - Super Mario World: Fixed tilemap issue when displaying game map (ID 03115) - Xenophobe: Documented PALs from board - Crystallized 1945k III, n8080.c, pacman.c, Panic Road, rallyx.c, maygay1b.c and maygayv1.c - Merged memory maps in carrera, findout.c, Mighty Warriors, strnskil.c, stfight.c, stepstag.c, subs, suna16.c, suna8.c, supbtime.c, superchs, suprnova.c and suprslam. - Input port . Removed the last use of PORT_PLAYER(2) for P1 inputs . Fixed mouse/lightgun buttons to individually select when using -mouse/-multimouse and -lightgun. Meaning you will not receive Mouse Button 0 Gun Button 0 when selecting in the UI. - Dipswitch fixes in roul and statriv2.c - Rom names fixes in asterix and naomi.c - Year fixes in quizmeku (ID 03105) - Description changes of Muroge Monaco (bootleg?), Virtua Striker 4 (Export) (GDT-0015) and Wangan Midnight Maximum Tune 2 (Export) (GDX-0015) - MAME . The CHD format has undergone a change with this release. The main reason for this change is to include some of the key metadata into the hashes for the CHDs. This ensures that the metadata is valid and prevents abuse. The first impact you will find is that all of your CHD differencing files are invalid. Just delete your "diff" directory contents entirely. The second impact is that all your existing CHDs will warn you that they have incorrect hashes. This is expected. Your old CHDs should still work fine, so if you can live with the "bad ROM" warnings, you don't really need to do anything. However, if this bugs you or you want to be "clean", you can update your CHDs, using this command line: chdman -update for each one of your CHDs. This will take a while, but will produce CHDs that match the new checksums posted in the drivers. . Changed generic NVRAM behavior so that all the variants look for a memory region named "nvram". If it is found and is of the same length as the generic_nvram_size, data is copied from there instead of filling the RAM with the fallback pattern. . Fixed bug where repeating axis values were being selected for button input in UI. . Fixed UI selection of Gun axis when using RawInput, so Gun 1 is not always selected with the desired gun. . Fixed verbose output of RAW device names for XP . Fixed frontend messages to leave enough space for clone longer names - MESS: Added support for Toshiba TLCS-900/H CPU and T6W28 sound core. 0.130u4 - New Working games: Tekken Tag Tournament - New Non-Working games: Super Lucky Roulette?, The Typing of the Dead and Wild Cat 3 - New clones: Mighty! Pang (Euro 000925), Mystic Warriors (ver JAA), Night Warriors: Darkstalkers' Revenge (Asia 950302), Trivia Master (set 4) and Wolf Fang -Kuhga 2001- (Japan). - New drivers: roul.c - Nintendo 2C0x PPU: Changed the PPU2C0x implementation to be a device (cham24.c, dkong.c, multigam.c, playch10.c, punchout.c and vsnes.c) - harddriv.c: Partial fixed Hard Drivin' and Race Drivin' do not show anymore P2 inputs for analog controls. Still thinking about Steel Talons. (ID 03070) - jalmah.c . Improved test mode behaviour in the driver . Added DIP locations - jangou.c + nightgal.c: Converted drivers to use resistors with the color proms - maxaflex.c: Factored out MESS-specific code from machine\atari.c (cart init, loading & unloading) - midzeus.c + namcos12.c: Fixed MAME asserts during load time in all games (ID 03065/03069) - naomi.c . Added H-Blank IN interrupt hook-up . Generate a few more interrupts (ISP end of render, VIDEO end of render) . Some minor improvements to the irq system . Added a bunch of Maple-DMA fixes, now Moeru Casinyo boots too. . Added missing user1 roms to Gun Spike, Heavy Metal Geomatrix, OutTrigger, Power Stone/2, Samba De Amigo (JPN) and Spawn. - naughtyb.c + ssrj.c: Nerged memory maps - system1.c . Correct Z80 clocking: Each opcode fetch is 2 cycles with /M1 low, so each byte of opcode fetching causes slightly longer delays than the previous tables. . Implemented approximate wait state timing for videoram access; further accuracy will rely on getting a dump of the PAL16R4 that controls the horizontal video timing. . Correct video timing . Removed "small" video drivers for games that properly mask the scrolling areas . Fixed visible area in Noboranka, Regulus, Shooting Master, Ufo Senshi Yohko Chan . Fixed VSync - system16/18.c, surpratk.c, taito_b.c, taito_f2/3.c, taito_l.c and taito_x.c . Merged memory maps in System 16/18 driver . Removed some word handlers in favor of using READ8/WRITE8 directly in address maps . Removed some additional unnecessary handlers in favor of using AM_READ_PORT - taito_f2.c: Changed region user1 to extra in Quiz Crayon Shinchan, Crayon Shinchan Orato Asobo and Yuuyu no Quiz de GO!GO! - tmaster.c: Changed Galaxy Games BIOS service switch to be a toggle - Field Combat: Added new gfx1 rom - Joyful Road . Implemented priorities . Removed unnecessary tile index check - Mouja: Fixed missing sound effects/voice (ID 03106) - Night Gal Summer: Replaced YM2203 sound with AY-3-8910A - Ninja-Kid II . Correctly implemented 'trail' function . Documented the www.segaresurrection.com decrypted Ninja-Kid II sound rom so it doesn't show up as newly "found" bootleg version. - Tekken Tag Tournament: Fixed user2 roms addresses - T-MEK: Added missing sound ROM for clone (v4.4) - Input port . Reverted to older behavior for how modified input port fields are handled. The originally intended behavior is that a new field that intersected a previous field would completely wipe out the original field. Recently a change was made that changed the behavior to only remove a portion of the bits from the original field. This is actually problematic behavior, so the original behavior was restored. . Fixed auto-center bug on analog joysticks . Simplified the gun port handling in the Sammy Outdoor Shooting games (Deer Hunting, Trophy Hunting, Turkey Hunting and Wing Shooting Championship) . Converted DownTown, Gondomania, Heavy Barrel, Midnight Resistance, Time Soldiers and Top Gunner (bootleg) to use IPT_POSITIONAL - Dipswitch fixes in jalmah.c - Rom names fixes in cspike, hmgeo, otrigger, pstone2, samba, slasho, spawn, vs2_2k and vtennis - Description changes of Melty Blood Act Cadenza Ver A (Rev C) (GDL-0028C), NAOMI DIMM Firmware Updater (GDS-0023A) and NAOMI DIMM Firmware Updater (GDS-0023C) - MAME . Fixed UI when modifying the inc/dec/analog fields of an analog control in sequence . Fixed analog settings to return to default when IPT_UI_SELECT (enter) pressed . Fixed misplaced brackets, allowing upper/lower case extensions for crosshair graphics and ldplayer chd files. . Factored out MESS-specific code from machine\atari.c (cart init, loading & unloading) . Fixed CPU_GET_INFO issues spotted by -validate in MESS debug build . Relaxed 8 letter setname limitation for cameltryj, cameltryua, cameltrya, deadconxj, dondokodj, dondokodu, gigandesj, gunfrontj, kurikinta, kurikintj, kurikintu, mjnquestb, plottinga, plottingb, plottingu, pulirulaj, raimaisjo, supermanj, thundfoxj, thundfoxu, twinhawku, viofightj and viofightu. - Debugger: Added display of frame number to the beamx/y info in the register view 0.130u3 - New Non-Working games: 2x The Key Of Avalon 1.3/2.0, Initial D : Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B), Sega Network Taisen Mahjong MJ 2 (Rev C) [GDX-0006C], Sega Network Taisen Mahjong MJ 3 (Rev D) [GDX-0017D], Triforce DIMM Updater (GDT-0011) and Wangan Midnight Maximum Tune 2 (Japan?) (GDX-0015) - New clones: Chase H.Q. (US), Crush Roller (bootleg?), Exciting Soccer (Japan), Murogem Monaco (bootleg)?, Pit Fighter (rev 7), Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version), The Gladiator (ver. 100), Virtua Fighter 4 Evolution (Rev A) (GDS-0024A), Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A) and Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D) - New drivers: murogmbl.c - Z80 CPU: Changed Z80 cycle table definitions to be per-device. Removed old set_info constants for the tables; they are now set up via the z80_set_cycle_tables function. - TMS32025 CPU: Reverted recent timing change which busted Cool Pool sound - SPU sound: Simulate 'keyoff' in the SPU. The envelopes aren't actually emulated, but the sound is silenced after a key-off (by placing the sound in a 'release' state). This prevents audiable sound from looping forever. - Taito sound: Removed msb/lsb handlers from audio\taitosnd.c. Updated all drivers to call the 8-bit versions directly from the address maps. - I2C Memory: Added device-based implementations of the EEPROM and I2C Bus devices - IDE controller: Build the IDE features table only when there is a CHD available - hyprduel.c: Fixed driver - jalmah.c . Fixed square gaps during gameplay in the games (ID 02557) . Fixed priority system (ID 02558) . Fixed graphic artifacts on attract mode in Mahjong Daireikai (ID 03087) . Redumped gx3 rom of Mahjong Kakumei 2 . Replaced user1 BPROM ($200) with a new dump in Idol Janshi Suchie-Pai Special - m90.c . Reduced volume for all games . Removed wrong graphics flag . Added GAME_NO_COCKTAIL for Risky Challenge - maxaflex.c: Removed old hardcoded keyboard handling for Atari 8bit systems and used more reasonable key matrix scan. No regressions expected in MAME (tested Max-a-Flex games). - mcatadv.c: Fixed palette regression in the driver (ID 03098) - moo.c + mystwarr.c: Cleaned up input handlers - naomi.c . Improved the Wave-DMA behaviour in NAOMI and added PVR-DMA support . Added direct mode JVS command, used by the I/O for the later NAOMI games. . Many NAOMI tweaks and improvements, plus a number of new sets added but with no credit specified. - neogeo.c . Removed use of sprintf . Added a note about service menu browsing when mahjong panel is ON . Added paddle support (ID 01163) and fixed controls bug in Pop 'n Bounce (ID 00598) - pgm.c . Added video ram mirroring, this fixes a glitch in Knights of Valour Super Heroes (ver. 104) . Correct some set names . Force cpu resyncs main<->protection on PGM - system1.c (Sega System 1/2 rewrite) . Accurate collision detection in all games . Correct full memory maps . Hooked up 8255 and Z80 PIO correctly . Unified many hacked variants into common hardware models . Proper mixing using the mixing PROM . Converted to tilemaps . Correct Z80 timing . Proper sound interrupt signaling and feedback . Full description of video hardware . Cleaned up rendering code . Fixed cocktail mode in pretty much all games . Fixed stuck sprites in some games . Proper global muting (attract sound off works in older games). Yes, the Pitfall 2 title is missing; more work to be done. . Added partial 8751 simulation for Choplifter . Fixed game resolution changes in 4-D Warriors cocktail mode for 2nd Players (ID 00984) . Hooked up proper input in DakkoChan House . Fixed once you lose your last life in Pitfall II, any object not in the background shows up on the high score and continue screens (ID 00983). . Fixed sprites leaving on the left side on the screen aren't clipped properly in Sega Ninja (ID 00256) . Fixed Shooting Master sprites. Fixed visible area to 240x208. . Fixed Regulus in cocktail mode when it is player 2's turn graphics from the top of the screen flash at the bottom of the screen (ID 00303). . Fixed Star Jacker (side-by-side test) (ID 01030) . Fixed some garbage gfx appear on the left side, when the player sprite reaches the right side of the playfield in wbmlb and wbmljb (ID 00257). - taito_l.c . Input updates . Added cheat dipswitch to Play Girls and coin mode B to Play Girls 2 - trackfld.c . Derived clocks where possible (M6809 CPU1 and VLM5030) . Complete memory maps from the schematics . Hooked up proper sound command latching . Reimplemented 6802-based ADPCM samples for the bootlegs . Merged memory maps . Extended NVRAM to the full RAM range (according to schematics) . Created common include file and modified drivers to use it instead of explicit externs - Asterix: Removed COIN3 (neither used by the game nor present in service mode) - Batsugun: Fixed a sprite problem at the level 4 boss (ID 00947) - Cool Pool: Reverted recent TMS32025 timing change which busted game sound - Dynablaster: Reduced volume for clone Bomber Man (Japan) - Exciting Soccer / II: Verified clock frequency (including 4kHz NMI). Position 6A is not populated in version (Japan). Sound tempo is wrong in all sets (with or without this change). Clock for AY-3-8910 is 14.31818M/8 except for main melody. - Finalizer: Added service coin to clone (bootleg) - Green Beret: Fixed coin inputs in clone (bootleg) - they were switched - Hyper Crash: Added port_condition so that brake appears only when present in the chosen cabinet - The Killing Blade Plus: Added missing proto rom (IGS027A) and new a gfx1 ($400000), gfx4 ($800000) and audio ICS2115 rom. - Lethal Crash Race + Mechanized Attack (US): Fixed coinage dips - Mazinger Z: Fixed boss of 4th level is black (ID 03093) - Quiz F-1: Added wrong graphics flag - Road Fighter: Removed COIN4 (neither used by the game nor present in service mode) - Super Puzzle Bobble: Fixed some sound samples are being played indefinitely in clone (V2.04J) (ID 03092) - TH Strikes Back: Added small workaround to get past the "bad coprocessor" screen, but the game still has issues. - Input port . Added Crosshair Options menu: Ability to individually enable/disable crosshairs, ability for them to automatically disappear after a set amount of time (this is now the default), ability to select crosshair graphic and all settings are saved in the cfg file. Removed F1 toggle for crosshairs. Added new command option -crsshairpath: Store all selectable graphics here and see config.txt for further info. (ID 02562) . Added source file konamipt.h to unify Konami inputs where possible (e.g. most 80s-90s games were using basically the same coinage settings and joystick inputs). . Verified 0x00 coinage settings in remaining Konami drivers (and two Banpresto ones using same coinage settings, fixing a few mistakes: hexion, mikie, crimfgtj...) - Dipswitch . Added DIP locations to djmain.c, finalizr, fitfight.c, gaiden.c, gradius3, hornet.c, namcos1.c, namcos86.c, nwk-tr.c, pandoras, rollerg, skykid.c, ultraman and zr107.c based on Guru's notes . Fixed incorrect DIP location for dealer . Fixes in bbusters.c, crshrace, epos.c, finalizr, fitfight.c, gaiden.c, hornet.c, namcos1.c and taito_l.c - Merged memory maps in taito_z.c, tecmo.c, tecmo16.c, tecmosys.c, terracre.c, thoop2, thunderx.c, tiamc1.c, timelimt.c, tnzs.c, topshoot, topspeed, toypop.c, triplhnt, tsamurai.c, vball and vendetta.c - Description changes of Champion Italian PK (bootleg, blue board), Bee Storm - DoDonPachi II (ver. 102), Dragon World 3 (ver. 100), Dragon World 3 (ver. 106, Korean Board), The Gladiator (ver. 101), The Killing Blade (ver. 104), The Killing Blade (ver. 109, Chinese Board), The Killing Blade Plus (ver. 300), Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100), Knights of Valour 2 / Sangoku Senki 2 (ver. 100), Knights of Valour 2 / Sangoku Senki 2 (ver. 106), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX), Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX), Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board), Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100), Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100), Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus, Oriental Legend / Xi You Shi E Zhuan (ver. 126), Photo Y2K (ver. 104), Pit Fighter (rev 6), Puzzle Star (ver. 100MG), Puzzli 2 Super (ver. 200) and Idol Janshi Suchie-Pai Special, S.V.G. - Spectral vs Generation (ver. 200). - MAME . Replaced a bulk of AM_READ/WRITE(SMH_NOP) -> AM_READ/WRITENOP . Put tables used for RGB utilities in a single object file rather than compiling them as statics in every object that uses them. . Relaxed 8 letter setname limitation for blockgalb, choplift, chopliftu, chopliftbl, flickys1, flickys2, theglada, mrvikingj, nprincesb, nprinceso, nprincesu, oldsplus, pitfall2a, pitfall2u, seganinju, shtngmst1, shtngmsta, starjacks, tsamurai2, ufosensib, vendetta2pd, vendetta2p, vendettar, vendetta2pu and vendettaj. 0.130u2 - New games: Iron Fortress, Kollon, Otenki Kororin and Shikigami no Shiro - New Working games: E-Jan Sakurasou, Hidden Catch 3 and Magical Error wo Sagase - New Non-Working games: Chaos Field, Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu, The Killing Blade Ex / Plus, Karous (GDL-0040), Kurukuru Chameleon, La Keyboardxyu (GDS-0017), 2x Melty Blood Act Cadenza Ver B (GDL-0039), Moeru Casinyo, 2x NAOMI DIMM Firmware Updater, Oriental Legend Super Super, Radirgy, S.V.G. - Spectral vs Generation, Noukone Puzzle Takoron, Tetris Kiwamemichi, Usagui - Yamashiro Mahjong Hen, Wangan Midnight Maximum Tune and Zooo. - New clones: Bee Storm - DoDonPachi II (set 1), Knights of Valour Hero (ver. 101), Mahjong Vegas (Japan, unprotected), Operation Wolf (Japan), Puzz Loop (Asia), Super Puzzle Bobble (V2.04J) and 2x Virtua Fighter 4. - TMS32025 CPU . Accept IRQs on IDLE . Actually count irq processing and instruction fetching cycles. . Added support for external serial frame sync with internal triggering (aka TXM=1 and FSM=1) - TLCS-90 CPU: Fixed pending IRQs handling in the core - cubocd32.c: AGA palette. AGA bitplane data fetching. Support for up to 8 standard bitplanes. HAM8 mode. - galpani2.c: Improved OKI6295 sound banking - gameplan.c . Verified/simplified the dipswitches and adding DIP locations for Challenger, Kaos, Killer Comet, Megattack and Pot Of Gold (Leprechaun) . Adjusted clocks in Leprechaun based on info from the manual and fixed incorrect 'Lives' dipswitch (ID 03068) - hyprduel.c: Merged memory maps and cleaned up driver - itech32.c: Added a PCB layout for the large single plane PCB that Incredible Technologies used for the Golden Tee 3D series (3D through Classic), Shuffleshot, World Class Bowling and World Class Bowling Deluxe. - megasys1.c: Fixed inverted 'Demo Sounds' dipswitch in jitsupro, kazan, p47, rodland, stdragon and clones (ID 03029). - mexico86.c: Fixed the sprite collision code of the MCU simulation in 'machine\mexico86.c' - model2.c: Implemented inputs through direct AM_READ_PORT access rather than using read handlers. The patch also fixes Daytona USA brakes (which were previously labeled with the wrong tag). - naomi.c . Some various NAOMI improvements and SH4 hacks to get more NAOMI games booting farther . Fixed raster orientation in Psyvariar 2, Quiz Keitai Q mode, Shikigami No Shiro II, Trigger Heart Exelica, Trizeal and Under Defeat - nemesis.c . Added flip screen & cocktail support . Fixed screen priority problems in Kitten Kaboodle - pcat_nit.c: Added new Video BIOS, Game PRG and Disk BIOS roms to Bonanza, Street Games (Revision 3) - pgm.c . Various fixes and improvements . Added emulation of the earlier type of ARM (ASIC27A, 5585E type). Used this for protection emulation on Photo Y2k, Knights of Valour Superheroes instead of old simulation code. . Disabled protection simulation for several sets. This demotes Knights of Valour / Knights of Valour Plus to NOT working as there is no dump of the internal rom. . Photo Y2k still works because it's using the emulation added above, but you can no longer change region as this is supplied by the ASIC27A device which is now emulated. This is correct. . Added several new sets, several of which are re-releases of the games using the ASIC 27A instead of the previous protection devices (oldss and killbldp) . Removed per-game speedup hacks, as they're no longer needed for the ARM based games to boot correctly. . Added ARM7 CPU3 to Bee Storm - DoDonPachi II, Demon Front, Knights of Valour, Photo Y2k, Puzzle Star and Puzzli 2 Super - taito_f3.c: Simplified input handling in games - taitogn.c . Fixed G-NET on big-endian hosts . Updated G-NET CHDs (reset to factory default settings and clear high-score table) . Added description of G-NET card/PCB . Fixed some G-Net cards were dumped without restoring them to defaults first (psyvaria, psyvarrv, usagi, nightrai and xiistag) (ID 03063) - Bad Lands: Added PCB layout & hardwared documentation - Best Of Best: Fixed VSync - Bubble Bobble: Added emulated CPU1 (slave) <-> AUDIOCPU communications and AUDIOCPU reset at startup (previously this was disabled) - E-Jan Sakurasou . Added ymz280b_r to memory map to prevent musics to stop while playing . Fixed gfx3 rom loading . Replaced YMF271 sound with YMZ280B . Fixed raster orientation and visible area - Equites: Fixed ingame strange noise (ID 03048) - Frogger: Fixed autosave does not work correctly in clones Frog (Galaxian hardware) and Frogger (Moon Cresta hardware) (ID 03035) - Gals Panic II: Improved sound banking - Joyful Road: Fixed AY-8910 clock speeds to match recordings - Jr. Pac-Man: Fixed inputs perform wrong in-game function in clone Jr. Pac-Man (Pengo hardware) (ID 03024) - Pirate Treasure: Adjusted clocks based on info from the manual - Player's Edge Plus (KE1012) Keno: Fixed bad gfx1 rom dump causes graphics glitches (ID 02382) - Raiden Fighters 2: Fixed access violation in clone Raiden Fighters 2 (Japan set 2, SPI), it was using rdft roms instead of the rdft2 ones (ID 02977). - Road Fighter: Adjusted defaults to match the manual - Rough Ranger: Added samples emulation, write ports A & B of YM2203 are used - SD Gundam Psycho Salamander: Added game-specific kludge to get music - Sega Ninja: Fixed P1 button 3 not present (ID 03031) - Tao Taido: Fixed buttons in clone (set 2) (ID 02999) - Thundercade: Fixed music problems (ID 03071) - Virtua Striker 3 (Cart): Added missing user1 roms - Zodiack: Added board description - Input port: Fixed MAME allocates Player 2 - 4 inputs for deficient Player 1 inputs in some driving games (ID 02172). - Dipswitch fixes in galpani2.c, gameplan.c, megasys1.c, munchmo.c, mjclub (ID 03042) and roadf - Cheat engine: Fixed crash due to recent changes - Year fixes in Parrot Poker III (ID 02968/02969), Skill Fruit Bonus (ID 02970), Shuttle Invader (ID 02972) and Super Crowns Golf (ID 02978) - Description changes Border Down (Rev A) (GDL-0023A), Guilty Gear XX #Reload (Rev A) (GDL-0019A), Guilty Gear XX Slash (Rev A) (GDL-0033A), Initial D Arcade Stage (Rev B) (Japan) (GDS-0020B), Lupin The Third - The Typing (Rev A) (GDS-0021A), Melty Blood Act Cadenza (Rev C) (GDL-0028C), Musapey's Choco Marker (Rev A) (GDL-0014A), Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 101, Korean Board)', Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 100), Oriental Legend Special / Xi You Ji Shi E Zhuan Super (alt ver. 100), Oriental Legend / Xi You Ji Shi E Zhuan (ver. 126), Senko No Ronde NEW ver. (Rev A) (GDL-0030A), Super Shanghai 2005 (Rev A) (GDL-0031A), The Gladiator (ver. 101), Trigger Heart Exelica (Rev A) (GDL-0036A), Virtua Fighter 4 Evolution (Rev B) (GDS-0024B), Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F) and Virtua Tennis 2 (Rev A) (GDS-0015A) - MAME . Updated video timing in bestbest to match PCB . CPU cores are now enabled on a per CPU core family basis instead of per CPU core variant. As a result CPUDEFS is no longer needed in the makefile. . Fixed core_strwildcmp by increasing the limit from 8 to 16 characters . Demoted games to have the GAME_NOT_WORKING flag: Alligator Hunt, Glass, Great Guns, Name Club Ver.3, Snow Board Championship, Tetris (D.R. Korea), Thunder Hoop 2, Touryuu Densetsu Elan-Doree, World Grand Prix and World Rally 2. - Compiling: Annotated the game lists is mamedriv.c 0.130u1 - New games: Champion Poker PK (bootleg, blue board), 2x Champion Super 2/3, Chaos Heat (V2.08J), Crazy Monkey, Flip Maze, Fruit Cocktail, Garage, Island, Jumping Break, 3x Lucky Haunter, Mahjong Oh, Psyvariar -Medium Unit-, Psyvariar -Revision-, Resident, Ray Crisis, Rock Climber, Shanghai Shoryu Sairin, Soutenryu, Super Puzzle Bobble, Sweet Life, Usagi, XII Stag and Zoku Otenamihaiken - New Working games: Buggy Boy/Speed Buggy (cockpit) and Galaxia (semi-playable) - New Non-Working games: Beach Spikers, 2x Bonanza (Revision 2/3), Border Down, California Chase, Confidential Mission, Ghost Squad, 2x Go By RC, Guilty Gear XX Slash, Initial D Arcade Stage (Export), Initial D : Arcade Stage Ver. 2, Jingi Storm - The Arcade, Lupin The Third - The Shooting, Thunderbirds, Magic Number, The Maze of the Kings, Monkey Ball, Night Raid, Psyvariar 2 - The Will To Fabricate, Puyo Puyo Fever, Space Invaders Anniversary, 2x Street Games, 2x Street Games II, Tokyo Cop, Trigger Heart Exelica, Trizeal, Under Defeat, Virtua Cop 3, Virtua Fighter 4 Evolution, Virtua Fighter 4 Final Tuned, Virtua Striker 2002, Virtua Striker 4 (GDT-0015), Virtua Tennis and Virtua Tennis 2 - New clones: American Poker II (bootleg, set 4), Champion Poker PK (bootleg, blue board), Knights of Valour 2 Plus - Nine Dragons (ver. M205XX), Martial Masters (ver. 101, Chinese Board), Millennium Nuovo 4000 (Version 1.5), Senko No Ronde (GDL-0030) and Yellow Cab (Japan). - New drivers: calchase.c, chsuper.c, pcat_nit.c, taitogn.c and tokyocop.c - MIPS III CPUs . Updated RA before executing the delay slot . Added specific support for NEC VR4300/4310 CPUs - Z80 CPU (machine\z80pio.c): When outputting from a port to the hardware in PIO mode 3, only those bits defined by the mask should be output. MAME currently outputs everything. - AY-3-8910 sound . Fixed Gyruss audio regression . Measured RU and RD on AY-3-8910 . Modelled ZX Spectrum audio circuit in SwitcherCAD and derived resistor values for AY-3-8910 . Fixed envelope causes notes tones to be played back incorrectly (ID 02875) - PSX GPU: Minor video\psx.c changes that were needed for Ray Crisis - Laser Disc: Fixed build of ldplayer on OS X. Since the CUSTOM sound module no longer exists, changed it to WAVE, as ar gets upset if it has no input files. Also removed the -all_load flag for ldplayer from the main makefile as it upsets the linker on OS X. - aleck64.c + hng64.c: Replaced R4600 (big) CPU1 with VR4300 (big) - caswin.c: Merged rcasino.c with caswin.c driver - deco_mlc.c: Fixed regressed sound - galaxia.c: Added inputs for Astro Wars and Galaxia. Galaxia is semi-playable. NOTE: After inserting a coin, it can take a few seconds to respond. Added dipswitches 'Freeze', 'Coinage' and 'Lives'. - galaxian.c: Adjusted volume - namcos21.c: Fixed C140 ROM loading in Driver's Eyes, Winning Run Suzuka Grand Prix and Winning Run 91 - neodrvr.c . Added MV1C BIOS, redump/reverification required. Updated documentation (see neogeo.c). . Added an older Japanese NEOGEO BIOS. The 'japan-hotel' BIOS is a dump of an MVS which could be found in some japanese hotels. It is a custom MVS mobo which uses MVS carts but it hasn't jamma connector and it's similar to a console with a coin mechanism, so it's a sort of little coin op console installed in hotels. . Added correct 128k M1 audio rom to Cyber-Lip . Removed BAD_DUMP flag from M1 audio rom in Eight Man, is correct. . Correct chip label of the maincpu roms to 262-p1/2-08-e0.bin in KOF2001; added note (MichaelNet). . Correct chip label of maincpu rom to 005-pg1.bin (MichaelNet) in Magician Lord (set 1) . Renamed several roms to correct chip label (MichaelNet) in World Heroes Perfect - naomi.c . Added idle skipping and a number of new sets . Added Triforce BIOS (Sega 200?) - pgm.c . Fixed some descriptions . Experimental video change with a view to fix priorities on Knights of Valour 2 - segas16a/b.c: Enabled some buttons previously marked as 'unused'. Manuals say 'No Connection', but programs read them and do something. i.e. button2 in Tetris: can rotate the piece. - sfbonus.c: Added default NVRAMs using rom_load_optional. This should save some time renaming and reparenting these in the future. - taitogn.c: Replaced files flash.u27 and flash.u30 with a new flash.u30 BIOS file - toaplan2.c: Implemented a multi-sprite bit - vamphalf.c . Added Jumping Break with PCB layout and additional information . Correct the sound clocks on PCBs that only have a 28MHz OSC (only Super Lup Lup Puzzle has the 14.318180MHz OSC) . Rearranged the rom def section to group the F-E1-16-0xx PCB based games in order . Fixed YM2151 and OKI6295 clock speeds in coolmini, dquizgo2, finalgdr and jmpbreak - beatmania THE FINAL: Fixed crash after cutting edge logo (ID 03017) - Buggy Boy . Fixed Buggy Boy/Speed Buggy (cockpit) (Game now playable) . Added new char/objects tiles roms and proms . Fixed VSync . Added minor hack to fixed start countdown sound bug in the Buggy Boys - Burger Time: Added resistor values measured on real PCB - Counter Steer: More progress and improvements. Added DAC sound. - Champion Poker PK . Added PAL decryption, making all games playable . Updated input ports . Fixed gfx layout to use 6 bitplanes like all others . Changed video udpate to not use transparency - Driver's Eyes: Fixed C140 ROM loading - F-1 Grand Prix Star II: Fixed sound regression (ID 03018) - Gyruss . Adjusted volume and removed DC component from sound . Fixed Gyruss audio regression - Heavy Unit: Fixed Heavy Unit main CPU bankswitch. This fixes the enemy appearing in attract mode. - Knights of Valour 2: Added experimental video change with a view to fix priorities - Midnight Landing: Fixed gfx bitplanes - Multi Fish: Changed mapping of start key to standard key (1) like other gambling games, added extra set. - Number Dieci (Poker): Changed video udpate to not use transparency - Oriental Legend Super / Special: Added preliminary protection simulation in clone (100 alt) - Puzzle Time: Added text tilemap flickering. It allows to see the selected options. - Queen: Fixed PENTIUM CPU1 clock speed - Ray Crisis: Minor changed video\psx.c that were needed - Return of the Invaders: Fixed the remaining lives are not shown (ID 03026) - Royal Casino . Fixed colors . Added flip screen support . Fixed AY-3-8910A clock speed and cleaned-up driver - Skull Fang: Added default EEPROM, so that it appears less broken by default (doesn't boot without one) - Stress Busters: Silenced out heavy accesses to Sound RAM expansion area - Super Crowns Golf . Fixed paletteram . Hooked up text background - Tecmo World Cup '90: Fixed fg and bg vertical scroll in clones Euro League and Worldcup '90. This fixes the credit display screen (the PCB shows the upper part of the stadium). (ID 00827) - Tropical Angel: Added better support of line scroll with wrap. The scroll offsets are split in LOW byte and HIGH byte. (ID 00230) - Cheat engine . Changed the One-Shot list or selectable value cheats to display "Set" instead of "Off" . Stopped the cheat options being activated in order when you are going through the possibilities in this case. These cheats are now activated by pressing ENTER after you have chosen an option. This fixes MAX_ARGUMENTS doesn't seem to work. (ID 02981) - Dipswitch fixes in caswin.c, cntsteer.c, galaxia.c, igspoker.c and suprgolf.c - Description changes of Air Combat 22 (Rev. ACS1 Ver.B, Japan), Aqua Rush (Japan, AQ1/VER.A1), Bubble Trouble (Japan), Champion Poker PK (bootleg, green board), Champion Italian Cup (bootleg V220IT), Dancing Eyes (Japan, DC1/VER.A), Demon Front (ver. 102), Demon Front (ver. 105), Driver's Eyes (US), Dunk Mania (Japan, DM1/VER.C), Fighting Layer (Japan, FTL1/VER.A), Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A), Golgo 13 (Japan, GLG1/VER.A), J-League Soccer V-Shoot (Japan), Kaiun Quiz (Japan, KW1/VER.A), Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A), Knights of Valour Superheroes / Sangoku Senki Superheroes (ver. 104), Knights of Valour 2 (ver. 100), Knights of Valour 2 (ver. 106), Knights of Valour 2 Plus - Nine Dragons (ver. M204XX), Martial Masters (ver. 102), Derby Quiz My Dream Horse (Japan, MDH1/VER.A2), Mr Driller (Japan, DRI1/VER.A2), Mr Driller 2 (Japan, DR21 Ver.A), Mr. Driller G (Japan, DRG1 Ver.A), Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A), Oriental Legend Super / Special (ver. 101, Korean Board), Oriental Legend Super / Special (ver. 100), Oriental Legend Super / Special (alt ver. 100), Paca Paca Passion (Japan, PPP1/VER.A2), Paca Paca Passion 2 (Japan, PKS1/VER.A), Paca Paca Passion Special (Japan, PSP1/VER.A), Pocket Racer (Japan, PKR1/VER.B), Prime Goal EX (Japan, PG1/VER.A), Soul Calibur (Japan, SOC11/VER.C), Soul Calibur (Japan, SOC11/VER.B), Soul Calibur (Japan, SOC11/VER.A2), Soul Edge (Japan, SO1/VER.A), Starblade (Japan), Star Sweep (Japan, STP1/VER.A), Star Trigon (Japan, STT1 Ver.A), Super Crowns Golf (Japan), Super World Stadium 2000, Super World Stadium 2001 (Japan, SS11/VER.A), Super World Stadium '98 (Japan, SS81/VER.A), Super World Stadium '99 (Japan, SS91/VER.A3), Tekken (Japan, TE1/VER.B), Tekken 3 (Japan, TET1/VER.E1), Tekken Tag Tournament (Japan, TEG1/VER.B), Tekken Tag Tournament (Japan, TEG1/VER.A3), Tenkomori Shooting (Japan, TKM1/VER.A1), Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A), Winning Run Suzuka Grand Prix (Japan), Winning Run 91 (Japan) and Xevious 3D/G (Japan, XV31/VER.A) - MAME . Changed the CPU cores to use the get_safe_token() pattern like other devices . Added new function core_fload() to load a file into an allocated buffer. Updated src2html, regrep and chdman tools to use this function where appropriate. . Updated CHD format to version 4. Checksums are now computed and stored separately for raw data and metadata, and metadata is now checksummed by default. . Updated chdman to support a generic metadata addition system: chdman -addmetatext [] and chdman -addmetabin [] . Changed the CHD verify interfaces to pass back a structure containing all the necessary data for verification and fixing . Modified cdrom.c to expose metadata read/write functions, and changed chdman to use them. Also changed chdman to parse old-style metadata and convert it to new-style metadata. . Added new function core_fload() to load a file into an allocated buffer. Updated src2html, regrep and chdman tools to use this function where appropriate. . Updated CHD hashes . Fixed bug where chdman -extract would not truncate to the logical size. NOTE: The CHD format has undergone a change with this release. The main reason for this change is to include some of the key metadata into the hashes for the CHDs. This ensures that the metadata is valid and prevents abuse. The first impact you will find is that all of your CHD differencing files are invalid. Just delete your "diff" directory contents entirely. The second impact is that all your existing CHDs will warn you that they have incorrect hashes. This is expected. Your old CHDs should still work fine, so if you can live with the "bad ROM" warnings, you don't really need to do anything. However, if this bugs you or you want to be "clean", you can update your CHDs, using this command line: chdman -update for each one of your CHDs. This will take a while, but will produce CHDs that match the new checksums posted in the drivers. - Compiling . Added better descriptions and dates to a number of drivers in the mamedriv.c file . Paramaterise the arguments to check for NULL in the ATTR_NONNULL macro rather than just checking the first argument. This requires compiler support for C99 variadic macros (MSVC2005 and GCC4 have this AFAIK). . Fixed build for PPC64 Linux. This slightly messes up static branch prediction hints on OS X and AIX, but OS X for PPC64 is dead, and no-one builds MAME for AIX, and it will still build, anyway. . Fixed cross-compile SDLMAME for PPC on Intel Mac (zlib is building as i686) (ID 03020) 0.130 - New games: 4x Fruit Bonus 5 (Version), 8x Fruit Bonus 6 (Version), 6x Fruit Bonus 6 Special Edition (Version) and Puzzle Time (Prototype) - New Non-Working games: Amcoe Link Control Box, 4x Bug Fever, 2x Champion Italian Cup (bootleg), Devil's Island, 2x Fun River and Version 4 (Version 4.2R) - New clones: Gals Panic S2 (Asia) and Jansou (set 2) - New drivers: pzletime.c - MIPS3 and PowerPC DRCs: Added function calls to replace the MIPS3 and PowerPC DRC's various CPU_SET_INFO bits. - PowerPC 603e/R CPUs: Fixed bug that caused 64-bit PowerPC systems to fetch opcodes in the wrong order. - PSX CPU: Fixed disassembly of -$8000, it was showing up as -$0. - TMS57002 CPU: Added two missing instructions and hack up the coef update. The real way coefficient updates are handled is a little too complex for now, but the hack throttles the update speed to the real rate given the way konami uses it (once per sync). It's near impossible to use it in a different way anyway. - Midway DCS II Audio sound: Fixed DCS2 speedup handler so it doesn't get lost during a memory remap. This should give a slight speed bump to the Seattle/Vegas games and to War Gods. - Sound / NVRAM: Added muting just before saving the NVRAM, and de-mute just after loading the NVRAM. Should cure the stuck sound issue for games with large NVRAM. - gticlub.c, hornet.c: Fixed GTI Club hardware background layer lost (black sky) - limenko.c . Fixed little sprites priority problems in the driver . Added SERVICE1 button to Super Bubble 2003 and Dynamite Bomber (checked in Dynamite Bomber I/O test, but doesn't work in game) - royalmah.c . Fixed visible area and Z80 CPU1 clock speed in a couple of games . Added Z80 CPU2 and DAC sound to Jansou . Added some notes - rpunch.c: Merged memory maps - seattle.c, vegas.c and War Gods: Fixed DCS2 speedup handler so it doesn't get lost during a memory remap. This should give a slight speed bump to the Seattle/Vegas games and to War Gods. - sfbonus.c: Refactored sfbonus and improved the inputs - turbo.c: Fixed graphics corruption on in Buck Rogers and Subroc-3D title screen / ingame (using -AFS) (ID 02057) - Blocken: Fixed color / missing gfx (ID 03006) - Captain America: Fixed attract mode, the small pictures of the heroes appear before they should. (ID 00268) - Driver's Eyes: Hooked up 2D layer - Jibun wo Migaku Culture School Mahjong Hen: Fixed colors - Fighter's History: Fixed some priority problems in Ryoko's stage. Namely, the old man, the cat and the kid. (ID 00421) - GP World: Fixed a paletteram entry bug - Head Panic: Added new graphic roms to clone (ver. 0615, 15/06/1999). Also added sprite flicker flag, based on Tumble Pop etc. - Mahjong Hyper Reaction: Fixed buggy text in scoring screen (ID 02854) - Midnight Landing: Hooked up paletteram - Pole Position / II: Added placeholders for the two PAL's on Atari's versions - Pro Baseball Skill Tryout: Fixed sound regression and removed deprecat.h dependancy. Fixed visible area. - Quartet: Added board numbers to SEGA's Quartet 2 documentation - Tecmo World Cup '90: Euro League and Worldcup '90 improvements: Sprite priorities, sprite x position, fixed y sprite wrapping, fixed bg and fg scroll and fixed bg and fg offsets. This fixes some players are cut at left and bottom of the screen (ID 00826). - Zero Target . Hooked up preliminary proper ROZ effects . Fixed sprite positioning bug, fixed a sprite bug when flip y flag is used and cleaned-up the whole routine. - Input port: Fixed analog settings so digital and autocenter speeds are applied properly in real time. Fixed digital speed = 0 so it increments in single steps per button press. - Dipswitch fixes in cntsteer, royalmah.c and sfbonus.c - Rom names fixes in Mazer Blazer, royalmah.c and Tutankham - MAME . Allow CHDs to be directly in the rom directory without a subdirectory . Fixed "Working clones" display problem (ID 03001) 0.129u6 - New games: Daisyarin [BET] (Japan) and Mahjong Club [BET] - New Working games: Great Sluggers '94 - New Non-Working games: E-Jan Sakurasou - New clones: Joker Poker (Version 16.03BI), Scud Race (Japan), Splatter House (World new version), Violence Fight (Japan), T-MEK (v4.4), (v4.5) and (v5.1, prototype) and Tokimeki Mahjong Paradise - Doki Doki Hen - Removed games: Removed Multi Fish (040316) and clones (021120), (021121), (021124), (021219), (021227), (030124), (030511), (030522), (031026), (031117) and (031124). - TMS57002 CPU: Don't abort on unimplemented instructions - SH-2 CPU: Moved SH2 set info functions to direct calls - Custom ADPCM: Scaled up ADPCM levels in line with recent clock_adpcm() change in Renegade and Mahjong Kyou Jidai - OKI6295 sound: Fixed noticeable static (ID 00015) - Taito 8741: Added port names to the taito8741 device pending its proper devicification (gladiatr.c and gsword.c) - 6821 PIA: Converted all drivers to the new device-based PIA - CHD: Added flags to the CHD metadata entries, encoded in the top bit. Right now it is a no-op, but eventually will be used to indicate which bits of metadata are included in the overall checksum. - EEPROM: Changed erase command to write 0xff values - aristmk5.c: Added region info to all games (ID 02963) - btime.c: Finally low pass filtering on channel 2A in driver: Changed resistor to bill of material value. Adjusted volume level and added more documentation. - jangou.c: Input ports clean-up - goldstar.c: Hooked up layer enables in driver, fixes 'girl' in Cherry Master. - labyrunr.c: Merged memory maps in driver. This fixes fixed booting is never completed (ID 02994). - m10.c: Fixed dialog box (ID 02979) - namcofl.c: Hooked up correct C75 MCU, based on RB's NamcoB1 implementation. This fixes some graphics are not displayed in Final Lap R and Speed Racer (ID 02478). Fixed M37702 CPU2 and C352 audio clock speeds. - naomi.c: Fixed descriptions of games running on NAOMI series hardware and NAOMI game list - nemesis.c: Fixed bootup process and missing sound in gradius, gwarrior, rf2 and twinbee (ID 02965). Merged memory maps in driver. - nova2001.c: Fixed rom checks in Penguin-Kun Wars, Ninjakun Majou no Bouken and Raiders5 (ID 02998) - royalmah.c: Fixed BET button (ID 02698) - segas24.c: Added support for System 24 tilemap linescroll modes - sfbonus.c: Version cleanups part 1 - Bells & Whistles: Fixed ROM Check fails at startup (ID 02988) - Boot Hill: Fixed specification of discrete filters for shot and hit sounds doesn't agree with schematic (ID 02909). - Dead Angle: Fixed music drowns out sound effects (ID 02877) - Demolition Derby: Fixed duplicated input definitions for P1 and P2 buttons (ID 02694) - Dingo: Fixed no audio (ID 02964) - Final Lap 3: Fixed pedals - Four Trax: Fixed controls are glitched (ID 02368) - Hot Chase: Fixed access violation (debug) (ID 02996) - Heavy Unit: Various improvements: Added a very preliminary simulation of the protection, just enough to get the game to boot, not make it playable. Correct CPU communication, IRQ/NMI generation etc. Fixed some video emulation issues (added tilemap scroll etc.). Correct GFX rom loading (at least for the graphics used in attract mode). - I P M Invader: Fixed regression (missing graphics) - J. J. Squawkers: Added correct gfx roms to clone J. J. Squawkers (bootleg) - King Derby: Fixed sprite colors (added color prom) - Liberation: Fixed black screen shows after disclaimer (ID 02995) - Long Hu Bang II: Fixed access violation (ID 02973) - Poly-Play: Fixed broken graphics when playing (ID 02991) - Pro Soccer (Cassette): Fixed ingame graphics corruption (ID 02894) - Race Drivin': Fixed loop after "downloading DSP" screen (ID 02983) - Renegade: Scaled up ADPCM levels in line with recent clock_adpcm() change - Scramble: Game now is a lot closer to reports and recordings (background sound, sound of bullets) - Space Gun: Fixed EE-ROM error after gun calibration (ID 02711) - Spy Hunter 2: Changed 68000 CPU3 to CPU2 - Tetris Plus 2: Merged memory maps - Tokoro San no MahMahjan 2: Fixed missing 'special' linescroll mode (ID 02526) - Tutankham: Added GAME_IMPERFECT_GRAPHICS - Long Hu Bang II: Fixed access violation - Zero Target / Counter Steer: Various improvements to the hardware and cleaned-up the driver. Fixed foreground & background colors and hand-tuned sound in Zero Target based on a side-by-side test. Fixed sprite colors. Fixed visible area. Added M6502 CPU1 and 2x AY-3-8910A to Counter Steer. Changed region cpu2 to audiocpu in Counter Steer. - Year/manufacturer fixes in Guilty Gear XX (ID 02986), Guilty Gear XX #Reload (ID 02985) and World Series Baseball (ID 02980) - Layout: Added built-in layouts for Buggy Boy/Speed Buggy (Cockpit), Buggy Challenge, Change Lanes, Chase Bombers, Chase H.Q., Chequered Flag, Continental Circus, Datsun 280 Zzzap, Double Axle, Final Lap, Grand Champion, Hot Chase, Laguna Racer, Out Run, Over Drive, Pole Position, Power Drift, Rad Rally, Round Up 5, Slipstream, Special Criminal Investigation, Stocker, Super Chase, Top Speed, Turbo Out Run, Turbo Tag, TX-1 and WEC Le Mans 24 - Input port . Removed input_port_read_handler8/16/32/64 functions, since they were really only used for getting a memory handler for a port by tag, and this is no longer necessary. . Moved input port handlers to internal code in the memory system . Removed all remaining uses of input_port_n_r() functions, and purged them from src\emu\machine\generic. - Dipswitch fixes in cntsteer.c, coinmstr.c, jangou.c, macha, namcofl.c, namcos1.c, pokeroul and supnudg2 - Description changes of Heavy Unit, Initial D Arcade Stage, Pro. Sports, Splatter House (World old version), Stocker, Super Chase and T-MEK - MAME . Removed device types from device queries that use tags, under the assumption that all device tags are unique. Specifically, the following no longer need to provide a device type: AM_DEVREAD/WRITE, DEVCB_DEVICE_HANDLER, devtag_get_device, devtag_reset and device_list_find_by_tag. As well as several device interfaces that referenced other devices. . Added new function memory_install_read_port_handler() to more easily allow you to install read handlers for ports based on tag. . Fixed handling of corrupt archives: Corrupt files in archives now generate an error (ID 02180). Archive files ending in "/" will not be tested for crc - skip path entries. Added new flag FILE_OPEN_NO_PRELOAD to skip decompressing on open. This is used in audit.c, which only tests whether files exist. Added error checking to all calls to load_file_zipped. . Relaxed 8 letter setname limitation for primrage and tetrisp2 clones - MESS: Fixed auditing of ROM-less systems - Compiling . Another round of static/const qualifier additions, plus a rename of has_addon_chip to snes_has_addon_chip. Notably a number of z80ctc_interface are now const (devicification must have removed the cases where it was dynamically modified). . Fixed GCC 4.4 compilation error . maketms: Free strings on exit 0.129u5 - New games: Gals Panic S3, Makaijan [BET], Monoshiri Quiz Osyaberi Macha, 14x Multi Fish, Player's Edge Plus (PP0043) and 3x Screen Play - New Working games: King Derby - New Non-Working games: Adonis, Club Celebration, Club attraction, Diamond Touch, Gamball, Gran Tesoro?, Heavy Unit, Kung Fu Roushi, Lotus SE, Old Timer, Roulette (Dutch, Game Card 39-360-129?), Spotlight, Super Jolly, Supercards and Toppoker - New clones: Apache 3 (Kana Corporation license), Automat (bootleg of Robocop), Dangerous Dungeons (Game Room 1992), Great Sluggers '94 (Japan), King Derby, The NewZealand Story (World, old version), Pipe Dream, The Pit Boss (Set 2), 4x Robin Adventure 2, Super Heli (Super Cobra bootleg) and U.S. Championship V'ball (US) - New drivers: bfm_sc1.c, bfmsys85.c, hvyunit.c, kingdrby.c, kungfur.c, maygay1b.c, maygayv1.c and multfish.c - DAC sound: Added ATTR_NOTNULL to sound calls - YM2151 sound: Fixed distorted sound (ID 02931) - K007232 sound: Fixed garbled music (ID 02929) - SPU sound: Quick hack to delay installing the SPU DMA handler until the first write to the SPU as driver init is now called after the devices are created. - SID sound (MESS): Device-ized the code - 6526 CIA: Added support for the /PC output pin to the CIA emulation - 53C810 PCI to SCSI I/O Processor: Added register SXFER (0x05) to the 53c810 - nothing more. This reg determines SCSI transfer speeds. scud / scuda now fatalerror with writes to reg # 0x70. - Atari mathbox / Vector: Device-ified the mathbox. Device-ified the Atari vector generators. - segaic16.c (all Sega 16-bit hardware): Fixed crash/freeze while starting games (ID 02927) - HD63484 video controller (adp.c and shanghai.c): Impemented CRCL command (used in Skat TV test mode) - btime.c: Added discrete filtering and driver fixing - cave.c: Fixed games freezes during demontration/intro (ID 02922) - dynax.c: Fixed unable to locate input port 'DSW2' in majxtal7, mjelct3, mjelct3a, mjelctrb, mjelctrn and neruton (ID 02943). - fuukifg3.c: Partially fixed sound regression in Asura Blade and Asura Buster - goldstar.c: Hooked up the reel background colour writes to Cherry Master and New Fruit Bonus '96 games etc. Improved note about Cherry Master girl display. - itgambl2/3.c: Added a debug viewer for the blitter-based gfxs - mpu4drvr.c: Added BellFruit Scorpion 1, Bellfruit System 85, Maygay M1B and Maygay M2 systems from AGEMAME. MPU4 Mechanical improvements have been made, making mpu4.c the mechanical driver, and mpu4drvr the non-mechanical one. This only leaves JPM impact (mechanical skeleton), Maygay M2 and MPU3 (mechanical skeleton) to be ported from the AGEMAME codebase. There's also been a cleanup sweep on Scorpion2, we were declaring too many versions of the same function, and the reel drawing code had stopped working. Both of these are now fixed. - nmk16.c: Fixed access Violation in clones US AAF Mustang (bootleg) and Thunder Dragon (Bootleg) (ID 02944) - taito_l.c: Fixed game Hangs upon startup in American Horseshoes and Plotting (ID 02940) - thepit.c: Fixed missing audio (ID 02962) - zn.c: Fixed various game freezes/resets (ID 02935) - Apache 3: Experimental road layer emulation (currently disabled). Fixed text layer alignment. Correct CPU clock frequencies. Fixed YM-2151 volume. Added road stripe PROM. - Astro Wars: Fixed gfx bitplane - Battle Bakraid: Fixed debug assertion (ID 02921) - Battle Zone: Removed EAROM, this fixes vector drawing corruption when using a save state (ID 02212) - Burnin' Rubber: Fixed low pass filtering on engine and explosion sounds (ID 01059) - Cherry Master, (ver.4) and I (ver.1.01): Hooked up the reel background colour writes - Crossbow: Fixed crash on "Crossing Bridge" stage (ID 02825) - Fire Barrel: Decrypted new opcodes. Fixed regressed rowscroll effect. - Frogs: Fixed debug assertion (ID 02924) - Gals Hustler: Fixed OKI frequency - King Derby: Provided color prom for clone Cow Race - M-79 Ambush: Added Discrete sounds, fixed DIPs and added Self Test Lamp Output. Fixed 8080 CPU1 clock speed. - Magical Cat Adventure: Optimized the rendering loop - Mahjong Electron Base: Fixed DSW read handler to agree with new tags - Magical Tonic: Added decryption - Pachi Fever: Fixed ADPCM test regression and debug assertion (ID 02946) - Prehistoric Isle: Fixed missing FX sound (ID 02928) - Roc'n Rope: Added XTAL and divisors verified in schematics. Fixed M6809 CPU1 clock speed. - Round Up 5: Fixed V30 CPU1 and 68000 CPU2 clock speeds - SFIII: Fixed crashes when it hits the Capcom logo on load (ID 02954) - Silkroad: Fixed sound not playing (ID 02937) - Skat TV: Impemented CRCL command in HD63484 used in test mode - Sly Spy: Fixed rom loading in clone Secret Agent (bootleg) - Sonic Boom: Fixed extensively writes to the debug console (ID 02923) - Super Triv III: Added correct gfx rom and verified dm74s288.u17 prom - Tetris (D.R. Korea): Fixed 'devcb_resolve_read8 error' (ID 02920) - Turbo Sub: Fixed debug assertion in clones (prototype rev. TSC6) and (prototype rev. TSC7) (ID 02947) - Save state: Added save state support to asteroid, bwidow, mhavoc, omegrace, quantum, tempest and tomcat. - Fixed rom names in tnzs - Dipswitch fixes in m79amb and dynax.c - Year/manufacturer fixes in chocomk (ID 02949), bestri (ID 02950), bigkong (ID 02956), gp98 (ID 02939), nss_sten (ID 02952), magictg (ID 02958), mblkjack (ID 02938), parentj (ID 02955), vgoalsoc (ID 02951) - Description changes of 21 (Mirco) (ID 02938), Cow Race (hack of King Derby) and The Pit Boss - MAME . Renamed a number of commonly-used but confusing device tags. The plan is to move away from generic names like "main" to names that capture the device type as well. This will allow searches for devices to be based on tags alone. Added validity checks to prevent the continuance of this pattern (which I started :), and to ensure that all devices have unique tags, regardless of type. Changes: CPU/"main" -> "maincpu", CPU/"audio" -> "audiocpu", CPU/"sound" -> "soundcpu", SCREEN/main -> "screen" (since it's the only one), SPEAKER/"left" -> "lspeaker", SPEAKER/"right" -> "rspeaker", SCREEN/"left" -> "lscreen", SCREEN/"right" -> "rscreen", SCREEN/"middle" -> "mscreen" and SCREEN/"center" -> "cscreen". . Relaxed 8 letter setname limitation for puzzloop clones - Compiling . Fixed cpu.mak typo (ID 02930) . Added missing static qualifiers to the code 0.129u4 - NOTE: This build has a major change in it (sound chips are now devices) that may lead to some unexpected errors or sound problems. Please report any issues you find over at http://mametesters.org/ - New games: Age Of Heroes, 2x Champion League (Poker), Ciclone, 18x Dr.Who The Timelord, Fever Soccer, Match '98, Monopoly Deluxe, 2x Monopoly/Classic, 2x Number Dieci (Poker), Player's Edge Plus (XMP00024), PK Tetris, Poker Only '97, 3x Royal Poker '96 and TomCat (prototype). - New Working games: DakkoChan House, Gardia (317-0007?, bootleg), Go 2000, Happy Jackie, Skill '98, Squash (Itisa) and Super Draw Poker. - New Non-Working games: 10x Action 2000, 13x Animal Bonus, 4x Animal Bonus Nudge, 5x Animal Treasure Hunt, 2x Around The World, Club Grandslam, Club Public Enemy No.1, 5x Double Challenge, Focus, 12x Fruit Bonus 2000 / New Cherry 2000, 8x Classic Edition, 7x Fruit Bonus 2nd Edition, 9x Fruit Bonus 2nd Generation, 11x Fruit Bonus 4, 4x Fruit Carnival Nudge, 4x Hold & Spin I, 4x Hold & Spin II, Honey Money, Luvvly Jubbly, Magic Card (set 3), Margarita Magic, 5x Money Machine, Pachi Fever, 5x Parrot Poker III, 9x Pick & Win, 10x Pirate 2001, 10x Pirate 2002, 5x Pirate Poker II, 5x Robin Adventure, 8x Robin Adventure 2, 2x Sea World, 14x Super Fruit Bonus, Sweet Hearts II, 9x Tiger Hook, and Virtua Striker 3 (Cart). - New clones: American Poker II (iamp2 v28), Armored Warriors (Euro 941011 Phoenix Edition) (bootleg), Dimahoo (USA 000121 Phoenix Edition) (bootleg), Extermination (World), 4x Fruit Bonus '96 Special Edition, GTI Club (ver EAA), Head Panic (ver. 0615, 15/06/1999), Heavy Smash (Europe version -2), Image Fight (revision A, Japan), Master of Weapon (Japan), Mahjong Shinkirou Deja Vu 2 (Japan), 2x Mahjong If...? [BET], Mars Matrix: Hyper Solid Shooting (Japan 000412 Phoenix Edition) (bootleg), 5x New Cherry '96 Special Edition, Phoenix (Taito Japan Ver.), Pit Boss (Set 3), Psychic 5 (set 2), Raiden Fighters 2 (Japan set 2, SPI), Skill Cherry '97, 4x Skill Fruit Bonus, Skull Fang (World), Super Poker (v115IT), Operation Thunder Hurricane (ver EAA), Volfied (Japan) and Tecmo World Cup '90 (Euro set 2). - Removed games: Unknown Fruits Game - New drivers: feversoc.c, jpmsys5.c, mpu5.c, pachifev.c and tomcat.c - R3000 CPUs: Improved disassembly of code that uses the TLB or FPU - Custom sound: Removed the custom sound device. The additional work to just make custom sound cases into full devices is minimal, so Aaron just converted them all over to be actual devices (see 005, aafb, alg.c, arcadia.c, asylum, ataxx, attckufo, berzerk.c, bombbee, bradley, brutforc, buggybjr, bzone, cabal, clshroad, cps3.c, cutieq, deadang, exidy.c, exidy440.c, firebatl, flower, geebee, gomoku, gridlee, indyheat, ixion, kaitei, kothello, Laser games, mjkjidai, leland.c, moonwarp, naughtyb, navarone, nss.c, offroad, offroadt, phoenix, pignewt, pigout, pleiads, polepos, polepos2, popflame, quarterb, razmataz, redbaron, redlin2p, renegade, rockola.c, snesb.c, sos, startrek, tacscan, teamqb, tiamc1.c, topgunnr, trvgns, trvmstr, tx1, victory, viper, warpwarp, wiping and wsf). - 6522 VIA: Made the implementation use devcb - 6526 CIA: Changed implementation to use devcb - 6850 ACIA . Refactored the implementation to use devcb . Adjust the rx/tx bit timers on a control write if the divide ratios have changed - MSM6242 RTC: Fixed AM/PM bit (ID 02896) - HD63484 video controller (adp.c and shanghai.c): Added Read Parameter Register support. Moved logging behind a define. - cidelsa.c: Combined CDP1869 video and sound parts to one device. Refactored CDP1852 to use devcb. - cps1.c: Fixed a contact MAMEDEV message - ddenlovr.c: Fixed AM/PM is ignored when the clock time is retrieved from RTC (ID 01785) - deco_mlc.c: Removed some unused code - feversoc.c + seibuspi.c: Revisited Seibu decryption - fuukifg3.c: Removed YMF262 sound in Asura Blade and Asura Buster - galdrvr.c: Fixed driver, which crashes with devcb dialog (ID 02893) - goldstar.c . Decrypted a large number of games in the driver . Made a bunch of improvements to the driver now that the sets are decrypted . Full inputs & dipswitches from the scratch for schery97, schery97a and skill98 . Changed the sets description to match the program version . Cleaned-up the game driver zone for better organization purposes . Added GAME_NO_SOUND flag to schery97, schery97a and skill98 . Added some program version notes . Added 3 new machine drivers for the different Amcoe games hardware . Added OKI M6295 support for speech/sounds to schery97, schery97a, skill98, pokonl97 and match98. . Fixed sound support to nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003. . Full inputs & DIP switches from the scratch for pokonl97, match98, nfb96, nfb96a, nfb96b, nfb96c, nfb96txt, roypok96, roypok96a, roypok96b, nc96, nc96a, nc96b, nc96c, nc96txt, nfb96se, nfb96sea, nfb96seb, carb2002 and carb2003. All these were promoted to working state. . Fixed size and position of tilemaps visible area to match98. More driver cleanups. - gottlieb.c: Fixed an error at the start in M.A.C.H. 3 and Us vs. Them (ID 02860) - highvdeo.c: Merged Bra$il with HighVideo driver - igspoker.c: Reworked expansion rom memory map handler in Champion League (Poker). Changed region gfx3 to main ($18000). - ilpag.c . Merged Strip Teaser with Il Pagliaccio driver . Fixed the layer clearance . Added a preliminary MCU simulation for the former . Fixed various driver issues . Further blitter fixes . Fixed Transparency pens . Fixed color pens for the charset . Fixed rom source reading for the blitter . Properly use height/width params for the blitter . Hooked up the backup ram . Added basic inputs . Removed deprecat.h dependancy . Fixed 68000 CPU1 clock speed and visible area in Il Pagliaccio. Added DAC sound to Strip Teaser and Il Pagliaccio. - konamigx.c . Added preliminary TMS57002 CPU . Fixed Tokimeki Memorial fails ROM test at 9F/M (ID 02743) - ksys573.c: Added digital I/O board layout & initial information on the memory card board - segaxbd.c: Added extensive README doc - sfbonus.c . Changed driver to use tilemaps. Added sound, some scrolling registers and flipx and basic inputs. . Decrypted a large number of games - Bermuda Triangle and World Wars: Fixed visible area - Casino Five: Fixed game hang on the Horse Racing game - Casino Winner: Added missing color proms - Flying Shark: Fixed and added missing proms - Funcube2/4: Fixed compile quirk. Added PCB layout and fixed rom names based on a hi-res photo of the PCB. - Go 2000: Added Z80 CPU2 and DAC sound - Guerrilla War: Fixed visible area in clone (Version 1) - Hana Awase: Fixed input. Note: For the 2nd Player used mahjong input like A,B,C... - Hanaroku: Fixed yes/no button - Happy Jackie: Added complete 'reel' tilemap emulation. Fixed Z80 CPU1 clock speed. - Himeshikibu: Fixed array index out of bound (ID 02917) - Iron Horse: Various improvements to clone Far West - Joust 2: Added 2nd DAC sound - The Legend of Silkroad: Added effect sound banking, coin counters and sprites/sprites priority. - Mahjong Cafe Time: Fixed clock shows AM instead of PM (ID 02801) - Macross Plus: Fixed wrong colors in "area clear" screen ()D 02895) - Mario Bros . Created custom module for run sounds. Running the discrete sound system at 480kHz was not really optimal. . Reviewed parts list, schematics and PCB pictures. . Brought mario run sound in line with recordings from Smitdogg . VCO voltage needs to be 0V for this to happen. Verification outstanding. . Capacitors needed some ageing applied as well. To be removed once the VCO issue is clarified. - Mikie: Fixed background music problem in the locker room level (ID 00754). Replaced 2x SN76496 sound with 2x SN76489. - New Magic Card: Fixed V30 CPU1 clock speed and added 'Reset NVRAM' dipswitch - Pit Boss . Properly added the PPI8255 devices and reorganized the inputs . Fixed game, which crashes with devcb dialog (ID 02890) - Psychic 5: Added proms ($0, 200) - Psycho Soldier: Fixed title screen graphic glitch (ID 02918). Fixed visible area. - Revolution X: Added 2x plds - Rock'n Rage: Added new gfx1 roms - Safari Rally: Changed CPU to 8085A, the disassembly has 8085A-specific code that an 8080 can't execute. - Sauro: Added the ability to invoke CPU input lines with devcb callbacks. Changed SP0256 to use devcb callbacks. Updated Sauro driver to use this new feature. - Sega Water Ski: Added new sound CPU rom - Skill '98: Added OKI6295 sound and dipswitches. - Skill Cherry '97: Added OKI6295 sound. Removed main rom ($10000) and fixed dipswitches. - Sol Divide: Fixed audio regression (ID 02897) - Space Invaders DX: Added pld - Super Punch-Out!!: Added basic support of RP5C01 to remove (most) protection kludges. This fixes time count on insert coin screen runs out very quickly and play buttons not working (ID 02907). - Stelle e Cubi: Added OKI6295 sound. Changed region gfx2 to gfx1 (4000). Fixed dipswitches. - Super Draw Poker: Added "global column coloring" (colors are now 100% accurate) - Volfied: Added minor additional information and OSC info to the driver. Also added two BPROMs not included before. - Wheels & Fire: Updated driver with some additional information - Xain'd Sleena: Fixed a small line of graphics missing on a couple of characters (ID 00808) - Zoar: Added PCB layout, correct AY-3-8910 clocks and added missing PROM. - Fixed rom names in devstors, midnrun, prehisle, twincobr.c and zoar - Dipswitch fixes in goldstar.c, highvdeo.c, igspoker.c, progress and zoar - Description changes of Rock'n Rage and Skill '98 - MAME . Moved over some of the AGEMAME drivers . Converted all sound chips into proper devices. Merged the sound chip interface into the device interface, removing any differences (such as the whole ALIASing concept). . Modified every sound chip in the following ways: Updated to match the device interface. Reduced read/write handlers down to the minimal number. Added the use of get_safe_token() for ensuring correctness. Other minor cleanup. . Vastly simplified the sound interfaces, removing the ghastly sndti_* business and moving everyone over to using tags for sound identity. sndintrf, like cpuintrf, is now just a header file with no implementation. . Modified each and every driver that references a sound chip: All memory maps explicitly reference the targeted device via AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE. 16-bit and 32-bit accesses to 8-bit chips no longer use trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE macros. All references to sound chips are now done via tags. Note that these changes are brute force, not optimal; in many cases drivers should grab pointers to devices in MACHINE_START and stash them away. . Added the ability for devices to have their own custom inline config management. This was primarily added to allow for sound routes to be supported in a way that is compatible with the current driver structure. A device can now define a DEVICE_CUSTOM_CONFIG callback which is called whenever one of the MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_* tokens is encountered. A special token MCONFIG_TOKEN_DEVICE_CONFIG_CUSTOM_FREE is defined to clean up memory allocated and/or reset the custom configuration, and is called when the device is torn down to allow for memory cleanup. . Fixed disassembler for CPUs with address bus shifts . Added the ability to invoke CPU input lines with devcb callbacks . Changed memory_set_direct_region to pass the address returned from the DIRECT_UPDATE_HANDLER back to the memory read function . Fixed logic for deriving direct ranges so that it uses the non-watchpoint-infected tables for its lookups. . Relaxed 8 letter setname limitation for clone sets. This is designed to make it easier to add simple suffixes to clone names without truncating the original set name, it isn't designed to be abused and used as an alternate description. . See burningfh, fightfeva, lastbladh, pbobblena, samsh5sph, samsh5spn, socbrawla and tophuntra - Debugger: Opcode accesses are now marked debugger_access. This is important with the recent changes to automatically call the read handler if the opcode base cannot be found. Changed logging for non-RAM opcode bases so that it does not output in the case of debugger_access being set. 0.129u3 - New games: Big 10, 2x Bottle 10, Funcube 2, Funcube 4, 2x Noraut Poker and Super Poker - New Working games: Big Apple Games and Casino Five - New Non-Working games: Indian Dreaming, Jansou, 4x New Fruit Bonus '96 and Reelin-n-Rockin - New clones: Armed Police Batrider (Europe) / (U.S.A.) / (China), Battle Bakraid - Unlimited Version (U.S.A.), 2x Carriage Bonus 2003, Mortal Kombat (prototype, rev 8.0 07/21/92), Noboranka (Japan) and Turbo Sub (prototype rev. TSC7) - New drivers: aristmk5.c, big10.c, cabaret.c, norautp.c and spoker.c - H8/3xx CPUs . Implemented a few more H8/3xx instructions . Added NO_DUMP for the H8/330 MCU for Hot Slot, Magic Colors, Magic's 10 2 and Super Pool. - Archimedes custom chips: Imported code from MESS (driver: aristmk5.c - Indian Dreaming and Reelin-n-Rockin) - 6821 PIA: Converted device to use the module DEVCB. Updated Williams driver to remove trampoline functions. - 8255 PPI: Converted the device to use the structure of new module DEVCB, and updated all users to use the DEVCB macros, removing some unnecessary trampoline functions along the way. - 8080bw.c: Fixed color RAM length in lupin3, polaris, schaser, schasrcv and sflush (ID 02843) - cps3.c: Fixed the remaining CPS3 sets that were left broken from the previous half-done set renames. Also reworked the code a bit to make it harder for somebody to break it in future (removed the config table & moved keys to driver inits, define region sizes, allocate memory in init for CD based games.) Should be no functional changes, although it might be a fraction of a % faster due to there being less region lookups. - megaplay.c: Fixed a large black box obscuring in all games (ID 02888) - neodrvr.c: Added missing HARDDIP settings in 'STANDARD_DIPS' for DIP's 4,5 and 6 ("COMM Setting") (ID 02792) - nightgal.c . Preliminary protection hook-up for Sexy Gal/Sweet Gal . Replaced AY-3-8910A sound with YM2203 in Night Gal Summer and Sexy Gal/Sweet Gal - system1.c: Fixed missing text layer (ID 02873) - taitosj.c: Fixed video hardware (ID 02862) - Aero Fighters: Added preliminary sound for clones (bootleg set 1) and (bootleg set 2) - Arkanoid: Fixed paddle input for clones arkbloc2, arkgcbl and paddle2 (ID 02719) - Big 10: Cleaned up and remapped inputs. Updated game notes and added other minor changes. - Bubble Bobble and Tokio / Scramble Formation: Fixed VSync (ID 02866) - Buck Rogers: Added calculation for capacitors >= 100pf to the LS626 frequency calculation. Formula was derived from figure 6 of LS624/628/629 & 625/626/627 datasheet. The "BUCK ROGERS" title screen is now centered and the big ship appears centered over Buck Rogers ship. (ID 02269) - Cabaret: Fixed encryption and added sound emulation. Moved to a separate driver. Not fully playable, press reset to exit from pitfalls. Fixed inputs, gfx rom loading and visible area. - Diamond Derby: Fixed foreground tilemap colors - Double Wings: Improved sound by appling the same handling of Night Slashers (they are actually similar if not same memory map). - Donkey Kong: Added 'Free_Play' dipswitch to clone Donkey Kong Foundry (hack) (ID 02803) and changed year to 2004 (ID 02804). - GTI Poker: Merged game driver with Noraut Poker driver. Added new memory map and machine driver for GTI Poker. Hooked 2x PPI 8255 and the video RAM access ports. Fixed Z80 CPU1 clock speed and visible area. Added DAC sound and dipswitches. - Hana Kagerou: Fixed incorrectly mapped input (ID 02697) - Jolly Card: Added a default backup ram for clone Jolly Card Professional 2.0, to get it boot to the end-user. - KO Punch: Replaced 8080 CPU with 8085A (ID 02884) - Magic's 10: Fixed scrolling layer - Magic Card (set 1)/(set 2): Fixed palettesize, visible area and soft resets. Added YM2413 (2.5MHz) sound. Started to convert the Magic Card 68k version driver with proper infos & added some basic video registers. It actually runs on more or less modified Philips CD-i architecture. - Mario Bros.: Several discrete sound refinements, mainly targeted at Mario Bros: Use formula derived from figures 2 and 3 in LS624 datasheet. Coefficients were calculated using least square approximation. This approach gives a bit better audible results compared to the prior approach. Fixed energy calculation for LS624. Use energy values as input for XOR. This seems to better reflect the superimposition of the two signals. On the long term, both LS629 and the XOR need to be converted into a custom module to properly model mixing if the two frequencies are close to each other. Adjusted C41 to 60% for skid sound. - (Medal) Yumefuda [BET]: Fully implemented the game controls (ID 02574) - Noboranka: Fixed Z80 CPU1 clock speed - Night Slashers: Fixed music stops at some points in the game when fighting bosses and some points in level 2 (ID 01017) - Space Tactics: Fixed scratchpad RAM length to 256 bytes (ID 02880) - Rom names fixes in puzloopu and segawski - Dipswitch fixes in bigappg, cabaret, casino5, dkongf, dodge, gtipoker, neodrvr.c and norautp.c - Description changes of Big Apple Games, Casino Five, Noboranka (Japan, bootleg), Sexy Gal (Japan 850501 SXG 1-00) and Sweet Gal (Japan 850510 SWG 1-02) - MAME . Added new module DEVCB, which can generically handle conversions between device read/write functions and various other types of functions. Introduced new structures and macros to make this possible: To take advantage of this, a device must change its interface to replace any read/write callbacks with the new devcb_read/write structures. During device start time, the device then uses this new devcb module to resolve the information in the devcb_read/write structures into a more efficient form. When the device needs to call one of the callbacks, it uses the inline devcb_call_read/write functions. Once a device has defined its callbacks as devcb_read/write structures, users of the device must use the DEVCB_* macros to specify the type and information about the handler to use: DEVCB_NULL = no handler, DEVCB_HANDLER = a standard device read/write handler, DEVCB_MEMORY_HANDLER = a memory address space read/write handler, DEVCB_DEVICE_HANDLER = a device read/write handler for a different device and DEVCB_INPUT_PORT = an input port. . Fixed 64-bit build fails (ID 02827) 0.129u2 - New games: Himeshikibu, New Champion Skill (v100n) and Super Othello - New Working games: Give us a Break, New Champion Skill (v100n 2000) and Ten Up - New Non-Working games: Sega Water Ski - New clones: Cannon Ball (Yun Sung) (vertical), Raiden Fighters 2 (USA, SPI) and Stepping 3 Superior - New drivers: himesiki.c, jackie.c and sothello.c - Dynamic Re-Compiling: DRC frontends must now do their own opcode fetching unfortunately. Updated all DRC cores to do this. - N2A03 CPU: Improved implementations for undocumented instructions 63, 67, 6f, 73, 77, 7b, 7f, 9c, 9e, ab, e3, e7, ef, f3, f7, fb and ff. - SH-2 CPU: Tweaked a few oddities in the SH2 DRC - uPD7806 CPU: Fixed cpu reset - MC6845 CRT: Force recalculation of screen parameters when only the MC6845 input clock changes - adp.c: Implemented P1 inputs in Fashion Gambler and Skat TV (Service Mode is working) - brasil.c and highvdeo.c: Fixed clamping to 12 bit range to OKI6376 and adjusted volume attenuation accordingly - igspoker.c . Converted drivers to tilemap system and unified video section . Unified memory maps and checked all input ports . Removed obsolete palette handlers and made use of generic handlers . Added layout for lamps handling . Added hopper simulation - micro3d.c: Tidied up the driver and fixed sound. Fixed 68000 CPU1 and I8051 CPU3 clock speeds. Removed 2x DAC sound. Fixed palettesize and rom loading. - midzeus.c: Fixed access violation (debug) (ID 02847) - vcombat.c . Fixed framebuffer handling and screen parameters . Added DAC sound . Correct RAM sizes to match what is present on the PCBs . Hooked up NVRAM . Fixed visible area and VSync. Added dual screen to Virtual Combat. - yunsung8.c: Changed Yunsung8 MSM5205 xtal to 400 kHz, verified on PCB. Unfortunately I couldn't verify the main xtal which was missing on my PCB. - 18 Holes Pro Golf: Fixed gfx regression and added proper memory map for the second CPU. Added 2nd M6502 CPU and changed region cpu1 to audio. - Cannon Ball (Yun Sung): Fixed MSM5205 clock speed - Cherry Bonus 2001: Mapped two more DYNA CPU91A opcodes - Cloak & Dagger: Increased interleave quantum to eliminate 'SLAVE COM BAD' startup message (ID 02852). Fixed access violation (debug) (ID 02847). - Draw 80 Poker . Added bankswitching to program memory . Partial graphics support . Partial sound support - G-Stream: Restored previous cycle eating behavior (ID 02800) - Good E Jong and Sengoku Mahjong: Merged both video HWs. Removed deprecat dependancy from Good E Jong, one irq wasn't needed at all (points to a reti). Added correct scrolling functions for Sengoku Mahjong. Fixed Sengoku Mahjong hopper error after first winning match. Removed some positioning kludges in both drivers. - Hana Awase and Hanaroku: Fixed input keys are inconsistent with other hanafuda games (ID 02810) - Happy Jackie (v110U): Moved Jackie to a separate driver (it's a slot machine game). Made some progress on Jackie which now boots (toggle mode to play, but work still needs to be done). Fixed Z80 CPU1 clock speed. - Jantotsu: Hooked up MSM5205 ADPCM sound, it plays something but it's not yet right. Changed region gfx1 to adpcm. - Logger: Fixed a gfx issue (ID 02842) - New Champion Skill (v100n 2000): Replaced Z180 CPU1 with Z80 (3579545 Hz). Changed region data to gfx3 and added dipswitches. - Soul Calibur: Fixed Soul Calibur (vs. Inferno) - Stepping Stage: Added custom 3-screen layout - Street Fighter III: Added missing key for clone (Japan, 970204) - Street Fighter III 2nd Impact: Added missing key for clone (Japan, 970930) - Super Real Mahjong P5: Sound pitch is low with current st0016 driver. Fixed palettesize. - Superior Soldiers: Fixed input in clone Perfect Soldiers (added missing button3) - Turbo Sub: Fixed TMS5220 speech - Dipswitch fixes in adp.c, igspoker.c, jackie.c, micro3d.c, sengokmj.c and srmp5.c - Description changes of 18 Holes Pro Golf, Happy Jackie (v110U), New Champion Skill (v100n 2000) - MAME . Changed device start routines to no longer return a status. Instead, if a device needs to delay its initialization pending the startup of another device, it must call the new function device_delay_init(). . Added new #define ENDIANNESS_NATIVE, which maps to either ENDIANNESS_LITTLE or ENDIANNESS_BIG based on the LSB_FIRST definition. Unlink LSB_FIRST, ENDIANNESS_NATIVE always exists and can be used in expressions without invoking the preprocessor. . Added macro ENDIAN_VALUE_LE_BE() which selects one of two values based on the endianness passed in. Also added NATIVE_ENDIAN_VALUE_LE_BE() which calls ENDIAN_VALUE_LE_BE with ENDIANNESS_NATIVE. . Updated a number of drivers and call sites to use these macros in favor of #ifdef LSB_FIRST. . Removed some stray ADDR2BYTE/BYTE2ADDR macros that have been replaced by inline functions. . Sound cores no longer allocate their own tokens. Instead they return a new integer value indicating the size of token they want, and the core allocates it for them. This mirrors the standard device behavior. . Removed redundant config parameter from SND_START . Defined ROM_LOAD64_WORD/ROM_LOAD64_WORD_SWAP in emu\romload.h - Compiling: Fixed compilation errors if HAS_SAMPLES is 0 - Debugger: Stop crash/assert when trying to decrease the debugger memory window bytes per line to 0 0.129u1 - New games: Casino Fever 1k, Casino Fever 4.0, Casino Fever 5.0, Casino Fever 5.1, Casino Fever 6.1, GiroTutto, Kkoj Noli (Kill the Bees), Lady Liner, Player's Edge Plus (XMP00017) 5-in-1 Wingboard, Sure Shot, Tour 4000 and Tour 4010 - New Working games: Cherry 10, Cherry Master '91, Cherry Master I (ver.1.01, set 2/3), Mahjong Tenkaigen, Tetris (bootleg of Mirrorsoft PC-XT Tetris version) and Trivia Hangup - New Non-Working games: 3 Super 8 (Italy), 86 Lions, Buster, Lucky Girl? (Wing), Magical Tonic?, New Champion Skill, Poker Roulette, Skill Cherry '97, Skill Cherry '98, Skill Fruit Bonus, Spiel Bude, Trivia Hangup (Question Set 2) and Unknown ACE Fruits Game - New clones: Cherry Master (ver.4, set 2), Hit the Ice (Japan) and Salamander 2 (ver AAB) - New drivers: 3super8.c, 86lions.c, buster.c, highvdeo.c, igs_ncs.c and sfbonus.c - Generic graphic cleanup, global removal and feature enhancements (emu\drawgfx.c) . Added built-in dirty tile tracking to the gfx_element. This removes the need for all drivers that had dynamically populated graphics to do their own dirty tracking. Tiles are marked dirty via the new function gfx_element_mark_dirty(). Any driver that needs access to the decoded data must call gfx_element_get_data() in order to ensure that the referenced tile is clean before proceeding. . In order to support dirty tracking, the gfx_element was enhanced to keep track of the original source pointer, so that it can go back and regenerate tiles on demand. For systems that set NULL for the region in the gfxdecode, they must use gfx_element_set_source() to specify a pointer to the raw data before drawing anything. . Changed allocgfx() to gfx_element_alloc(), and added parameters to specify the source data pointer, base color index, and total colors. Many drivers had to whack these values in after the fact, so this allowed for some minor additional cleanup. . Added a dirtyseq member to the gfx_element struct. This is incremented on each tile dirty, and can be used to sniff if something has changed. . Added logic in the tilemap engine to track which gfx_elements are used for a given tilemap, and automatically detect changes to the tiles so that drivers no longer have to explicitly invalidate the tilemap when tiles change. In the future, this may grow smarter to only invalidate the affected tiles, but for now it invalidates the entire tilemap. . Updated a number of drivers to remove their own dirty handling and leverage the new internal dirty marking. . Because the source data must always be present, updated the atarigen zwackery and mystwarr graphics handing code to support this. . Thanks to the dirty tracking, this actually allows all gfx decoding to happen on the fly instead of all at once up front. Since there was some concern that this would cause undesirable behavior due to decoding lots of tiles on the fly, it is controlled with a compile-time constant in mame.h (PREDECODE_GFX). Set this to 1 to get the old behavior back. . Moved decodechar() and decodegfx() to deprecat.h. All drivers in MAME have been updated to simply mark tiles dirty and let the rendering system decode them as needed, so these functions may go away in the future. . Rewrote entirely the rendering code in drawgfx. This code previously used extensive recursive #includes and tricks to build, and was very difficult to understand. The new code is based off of a set of macros defined in drawgfxm.h. These new macros separate the core rendering logic from the per-pixel operation, allowing the operation to be easily "plugged" into any of the renderers. These macros are also available to any driver that wants custom rendering behavior that is similar to existing core behavior, without needing to populate the core with esoteric one-off rendering behaviors. . Added a set of new functions for [p]drawgfx[zoom], one for each transparency type. The old [p]drawgfx[zoom] functions are still present, but now switch off the transparency type and call through to one of these new transparency-specific functions. The old functions are also now reduced to only supporting TRANSPARENCY_NONE, TRANSPARENCY_PEN, and TRANSPARENCY_PENS. All other rendering types must use the new functions. . All new rendering functions have extensive asserts to catch improper clipping rectangles and other common errors. . All new rendering functions automatically downgrade to optimized versions where appropriate. For example, calling drawgfx_transpen with an out-of-range pen automatically falls back to drawgfx_opaque. And drawgfxzoom_* with xscale=yscale=1.0 automatically falls back to drawgfx_*. And many other examples. In general, this relieves drivers from needing to make these sorts of decisions. . All new rendering functions have a consistent parameter order that is a bit different from the existing functions. The cliprect parameter is now specified immediately after the destination bitmap, to match the convention used throughout the rest of the system. The core parameters are followed by the scale parameters (for the zoom functions), and then followed by the priority parameters (for the pdrawgfx* functions), finally followed by any PIXEL_OP*-specific parameters (such as transparent pen, alpha, drawing tables, etc.). . Removed drawgfx_alpha_cache, alpha_set_level(), and the inline functions alpha_blend16() and alpha_blend32(). To render graphics with alpha, use the new [p]drawgfx[zoom]_alpha functions, which take an explicit alpha value. To render tilemaps with alpha, the TILEMAP_DRAW_ALPHA option now takes an explicit alpha parameter. And to do you own alpha blending, use the alpha_blend_r16() and alpha_blend_r32() functions, which take an explicit alpha. . Updated a number of drivers as a result of removing the implicit alpha in the drawgfx_alpha_cache. . Removed drawgfx_pen_table and TRANSPARENCY_PEN_TABLE. To achieve the same effect, build your own table and pass it to [p]drawgfx[zoom]_transtable, along with a pointer to the machine->shadow_table to use for shadows. Eventually machine->shadow_table is likely to go away, and drivers will need to fetch the shadow table from the palette directly. . Updated a number of drivers to remove use of drawgfx_pen_table. . Removed TRANSPARENCY_ALPHARANGE; it was only used by the psikyosh driver, so it is now moved locally into that driver and built using the macros in drawgfxm.h. . Removed TRANSPARENCY_PEN_RAW; to achieve the same effect, call the new [p]drawgfx[zoom]_transpen_raw() functions. Updated drivers to make this change. . Removed the unused mdrawgfx* functions entirely. . Added new function gfx_element_set_source_clip() to specify a source clipping rectangle for any element. This replaces the nasty hacks that were being used in bnstars, ms32, namcos86, and namcos1 to achieve similar behaviors. . Added new function gfx_element_build_temporary() to safely build a temporary gfx_element. Updated the drivers that did this to use the new function. . Simplified the copyrozbitmap() functions to match the copybitmap() functions in having separate opaque and transparent versions. Also removed the 'priority' parameter which was only used by one driver, and moved that logic into a custom renderer built using macros in drawgfxm.h. Updated copyrozbitmap* to use the destbitmap, cliprect parameter ordering convention as well. . Simplified the draw_scanline*() functions to always render opaque. Only one driver was doing otherwise, and it now does its work internally (draw_scanline is dead-simple ever since we moved rotation to the OSD code; I almost just removed it entirely). . Added a cliprect to the bitmap_t type, which describes the full bitmap. . Removed tilemap_set_pen_data_offset; unfortunately, this adds a random tile offset behind the scenes and goes against the dirty tile detection and invalidation. Updated the mainsnk, snk and snk68 drivers to use old fashioned tile banking. . Added function video_assert_out_of_range_pixels() to help find the source of invalid pixels (generally out-of-range palette entries due to invalid data or sloppy calculations). Place this after each step in your rendering in a debug build to discover which code is generating improper pixels. - ARM7 CPU: Rewrote some abuses of the HANDLER macros to use _func types instead - COP4xx CPUs: COP400 CPU core refactoring: Added state table for the debugger. Grouped all cpu types under a single makefile entry. Removed duplicate code. - i860XR CPU: Added Intel i860 CPU core - M37710 CPU: Removed some long dead state save functions in the core - SPC700 CPU: Removed the interface declarations and functions. Most of it is handled by CPU_GET_INFO, some of it was no longer implemented, and since pointerization it wasn't possible to call it externally anyhow. - Digitalker sound: Added support for Digitalker speech emulation - K053260 sound: Fixed 64-bit issue in emulation - OKI6295 sound: Updated volume table to reflect actual chip behaviour. Removed "contact MAMEDEV" message. (ID 02731) - OKI6376 sound: Added support for OKI6376 ADPCM speech synthesizer for the High Video games: Bra$il, Casino Fever, GiroTutto, New Magic Card, Tour 4000 and Tour 4010. Sound frequency may be incorrect. - 6821 PIA: Introduced a parallel 6821 PIA implementation, as a MAME device (6821new.c). Ported the williams.c drivers over to use this new PIA implementation. - 6526 CIA: Added a validity check to the emulation - cidelsa.c . CDP1802 CPU: Improved register layout. Randomized register contents on initialization. Converted core to use a state table. . CDP1869 sound: Fixed sloppy rendering that caused occasional crashes - coinmstr.c . Added maximum intensity to the color decode . Switched Poker Roulette to use global memory map and eliminated the redundant one . Eliminated the GAME_WRONG_COLORS flag to all games . Fixed most graphic banking bugs and colors . Fixed gfx1 rom loading in Super Nudger II . Some clean-ups - cojag.c: Fixed multisession bug in the Jaguar implementation - deco32.c: Femoved extraneous bitmap clear - dynax.c: Fixed visible area in Mahjong Raijinhai DX and Mahjong Reach - goldstar.c: Added proper memory map, machine driver, PPI interfaces and inputs. Added full inputs / DIP switches to the Cherry Master II sets. Started a tedious clean-up to all driver inputs. Added notes about the Tetris/Cmaster game. fixed some default DIP switches. Splitted the cmaster gfxdecode to cover different sets. Created a new machine driver for sets without the extra bitmap. Reparented some sets. Switched to use pre-defined clocks (CPU, PSG, AY and OKI) for all machine drivers. Changed all Z80's CPU frequency to 3 MHz (Xtal/4). - jangou.c: Fixed palettesize - megasys1.c: Reorganized and simplified the inputs - pcxt.c . Merged Filetto and Tetris driver . Fixed inputs & gameplay quirks in tetriskr, so it's now playable. . Added preliminary external graphics emulation hook-up for the backgrounds in tetriskr. . Rearranged & cleaned up the palette initialization, now 0x000-0x1ff offsets are for the char modes and 0x200-0x2ff are for the bitmap modes. . Fixed color attributes bits . Cleaned up and fixed colors in CGA bitmap mode for Filetto - namcos12/23.c: Fixed Real Time Clock (ID 02371) - nss.c and snesb.c: Made all SNES obc1_, DSP1_ and DSP2_ exports static - peplus.c: Added wingboard (5-n-1 daughterboard) support. Added E16/E17 jumper support. Sound clock changed to global. Removed graphics layout and replaced with generic gfx_8x8x4_planar. Increased palette lengths. Adjusted incorrect ROM_REGION sizes. Correct color prom length definitions. - segac2.c: Removed in the palette variables aliasing the megadrive ones and just used the megadrive ones directly. - segas18.c: Fixed Error Messages in astorm, shdancer and clones (ID 02823) - segas24.c: Rewrote some abuses of the HANDLER macros to use _func types instead. - skylncr.c: Hooked all the PPI 8255 devices. Reworked the inputs based on them. Fixed the reels visible area. Reorganized and cleaned-up the driver (only remains to split in driver + video). - stv.c: Added ROM_DEFAULT_BIOS to Critter Crusher, Die Hard Arcade and Super Major League - vcombat.c: Graphics decoded, video improved and inputs mapped. Added 68000 CPU3. - zac2650.c: Changed gfxdecode to use scale factors - Cherry 10: Decrypted the program ROM. Bypassed the PIC protection. Hooked proper inputs & DIP switches. Promoted to working state. - Cherry Bonus 2001: Decoded "gfx" rom region - Cherry Master: Decoded the extra bitmap for V4. Still need to figure out how is called. - Cherry Master '91: Fixed memory map. Added proper PPI 8255 devices. Worked inputs / DIP switches from the scratch. Fixed reels tilemaps visible area. Fixed reels colors. Removed all the flags and promoted to working status. Fixed the 3rd graphics bank decode. - Cherry Master I: Changed game to a parent set. Decoded the extra bitmap. Still need to figure out how is called. - Good E Jong and Tottemo E Jong: Fixed gfx banking. Made some clean-ups. - Hit the Ice: Added plds and fixed rom names - Jackpot Cards / Jackpot Pool: Added a second screen for some extra gfxs that are displayed on it. Fixed colors. Preliminary implementation of the transparency pens for the graphics, might not be correct. Added inputs. Cleaned-up the driver. - Mahjong Tenkaigen: Improved rom loading and fixed visible area - New Lucky 8 Lines: Removed the imperfect colors flag from the sets (colors look a bit dark, but seems properly decoded). - New Magic Card: Added missing samples rom - Parodius DA!: Fixed RAM/ROM check fails (ID 02802) - Relief Pitcher: Fixed rom loading - Scorpion: Added Digitalker speech emulation - Sengoku Mahjong: Fixed vertical scrolling (check title screen). Made some clean-ups. - Street Fighter II: Fixed scrambled graphics in clone (US 910228) (ID 02820) - Tarzan: Hooked up the preliminary decryption code, but it is not complete. - Trivia Hangup: Fixed 8088 CPU1 and AY-3-8910A clock speeds and visible area. Added 2nd Z80 and 20x plds. - Turbo Sub: Fixed dropped lines in video output rendering (ID 02805) - Vapor TRX: Fixed game crashes during the results section immediately after the race (ID 00976) - Zarya Vostoka: Fixed booting (ID 02815) - Save state . Added save state support to 8080bw.c, ace, actfancr, aerofgt.c, airbustr, ajax, alpha68k.c, ambush, ampoker2, amspdwy, angelkds, appoooh, aquarium, arabian, arcadecl, robowres, sigma2k, sigmapkr, sparkz, spcpostn, triothep and turbosub. . Fixed a deadlock when using -state with -mngwrite/-aviwrite (ID 02824) - Dipswitch fixes in astyanax, goldstar.c, megasys1.c, nratechu (ID 02787) and st0016.c - Description changes of Cherry Master I (ver.1.01, set 2/3), Jackpot Cards / Jackpot Pool (Italy) and Trivia Hangup - MAME . Removed several useless occurrences of "#define INLINE" in CPU and sound cores . Removed the sndindex parameter from SND_START, in favor of using the device pointer or tag as appropriate . Made the treatment of SOUND_xxx the same as that of CPU_xxx. That is, they are function pointers to the SND_GET_INFO routine for the sound. . Made direct (opcode) access more robust. Direct access now crawls the memory table to find its ranges, and caches them for fast access in the future. It invalidates intersecting regions when new ones are installed, and now properly handles mirrored ranges. . Added static/const where appropriate, updated out-of-sync header files and fixed some minor source confusion/abuse. . Cleaned up a bunch of unreachable bits of code - Debugger . Added function video_assert_out_of_range_pixels() to help find the source of invalid pixels (generally out-of-range palette entries due to invalid data or sloppy calculations). Place this after each step in your rendering in a debug build to discover which code is generating improper pixels. . Changed the disassembly view to call the decrypted read routines for each opcode byte/word instead of fetching from a pointer, which prevented opcodes that crossed range boundaries from working correctly, even though they would execute correctly. . Added check to debug_cpu_set_dasm_override(), because callers do not know if we are in debug mode or not. 0.129 - New games: Barline, Mahjong Jong-Tei, Mahjong Gaiden [BET], Ying Hua Lian 2.0 and 2x Tetris the Absolute The Grand Master 2 - New Working games: Cherry Master (Corsica, ver.8.01), Cherry Master I (ver.1.01), Cherry Bonus III (ver.1.40, encrypted), M.A.C.H. 3, Soul Calibur, Turbo Sub and Us vs. Them - New Non-Working games: Bingo Circus, Mahjong Cafe Break, Cherry Chance, Cross Bingo, Dancing Stage Euro Mix, Unknown Fruits Game, AV Hanafuda Hana no Ageman, AV Hanafuda Hana no Christmas Eve, Landing High Japan, Lucky Girl, 2x Magic Card, Mahjong Senka, Mahjong Yarou [BET], Merit Poker, Night Gal Summer, Night Bunny, Night Gal, Operation Tiger, Sexy Gal, Slot Carnival, Status Black Jack and X Se Dae Quiz - New clones: 9-Ball Shootout Championship, Centipede Dux (hack), Cherry Bonus III (ver.1.40, set 2), Cherry Master (ver.4), Dogyuun (Licensed to Unite Trading For Korea), Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea), Donkey Kong Foundry (hack), DownTown / Mokugeki (Joystick Hack), Jan Oh (set 2), Millipede Dux (hack), New Lucky 8 Lines (set 2), Phraze Craze (set 2), Pit Boss (Set 2), R-Type (World bootleg), Royal Night, Space Echo (set 2), Thunder Cross II (World), Trivia ? Whiz (Edition 2) (question set 2), Trivia ? Whiz (Edition 3 - Horizontal) (set 2), Trivia ? Whiz (Edition 4) (question set 2), Trivia ? Whiz (Horizontal) (question set 3), Turbo Sub (prototype rev. TSC6), Vamf x1/2 (Europe) and Wang Pai Dui Jue - New drivers: bingoc.c, cchance.c, fruit.c, luckgrln.c, magicard.c, mpoker.c, nightgal.c, slotcarn.c, taitopjc.c and taitotz.c - 68000 CPU . Converted 68000 core to use state tables . Cleaned up cycle handling in the 68k core - 8086 CPU: Fixed i86 core so that REP instructions with high interleave actually make forward progress. - I8039 / MCS-48 CPU . Merged i8x41 (UPI-41) core into MCS-48 core: All code now lives in mcs48.c. Rewrote disassembler as unified MCS-48/UPI-41 disassembler. Changed UPI-41 interfaces to match MCS-48. Added new master read/write interfaces for external access. Unified interface to 8243 expander chip. Converted tnzs and decocass to the new interfaces. . Some minor MCS-48 cleanup. Added 8040/8050 variants. . Removed bogus port 4-7 definitions from MCS-48. Added i8243 implementation. Connected 8243 properly to monsterb and system 16a sound. Changed draw80pkr to connect the PROG line like videopkr. . Cleaned up MCS48 to be dependent on a single makefile define, rather than separate defines for each CPU which didn't really buy us anything in terms of code size or performance. - I80286 CPU: Fixed cpu.mak dependencies - i860 CPU: Added extremely preliminary i860 disassembler and hooked it up to the vcombat driver - M6502 CPU: Added kludge to core such that CLI followed by RTI does not allow any interrupts through. In the future, the 6502 interrupt handling needs further revisiting. - PowerPC CPUs: Removed HAS_PPC* in favor of a single HAS_POWERPC, and a single definition in cpu.mak for all PowerPC variants. - PowerPC 602: Hooked up DSA/ESA instructions for PowerPC 602 (as no-ops for now). Also hooked up PPC602 IBR. 'Tobe! Polystars' gets a little farther but crashes due to a TLB issue. - PSX CPU: Implemented GTE divider using reciprocal table derived by pSXAuthor, this should allow the results to be calculated as inaccurately as the real hardware. - SP0250 speech: Added polling hooks for SP0250 DRQ line. The callback is now optional. If not provided, then the kick timer is not used. Converted Gottlieb speech driver to use polling for SP0250 DRQ line. - 8243 Port Expander: Added i8243 implementation. Connected 8243 properly to Monster Bash and System 16A sound. Unified interface to 8243 expander chip. Converted tnzs and decocass to the new interfaces. - MC6845 CRT: Correctly setup the MC6845 device in the calomega, carrera, coinmstr, funworld, goldnpkr, rockola and usgames drivers. This fixes games crashed with an error on startup before OK (ID 02760). - EEPROM: Fixed AT28C16 so that a write isn't allowed to start if there is one in progress and a write isn't started if the data is already correct. This allows 'Derby Quiz My Dream Horse' to boot again. Further investigation is needed. - Laser Disc . Added Laser Discs to M.A.C.H. 3 and Us vs. Them . Laserdisc player works again. Added MDRV_LASERDISC_GET_DISC callback hook which allows for dynamically finding the CHD, rather than relying on the DRIVER_INIT hackery that was there before. . Cleaned up some memory and file handles in the error cases of ldverify. Fixed linking ldplayer (ID 02758). Fixed wrong colors using Direct3D on ATI cards (ID 02676). - atarisy1.c: Support for new Atari System 1 TTL Motherboard dump (previously MAME would crash when using it and now it just seems to hang). PROMs dumped from Atari System 1 TTL Motherboard (one PLA needs dumping though). Added notes on the Atari System 1 Motherboard and some of its supported games. - btime.c: Correct sound IRQ rate and handling. Removed Lock'n'Chase audio reset hack. Full audio memory maps based on schematics. Correct video timing. Fixed audio rom address, visible area and VSync. - chinagat.c, ddragon.c, gstream.c, vball.c and xain.c: Converted driver to use scanline interrupts, partial updates and raw video parameters. - decocass.c: Converted tape handling to a device. Changed tape handling to use a timer callback. Updated to work with new UPI-41 core. Correct clock speeds for all chips (esp. the 8041). Fixed very wrong CRC implementation (how did it ever work?). Correct sound IRQ rate. Correct video timing. Fixed I8041 clock speed and VSync. - ddenlovr.c: Fixed OKI6295 clock speed in akamaru, ddenlvrj, nettoqc, quiz365 - ddragon3.c: Fixed debug assertion (ID 02771) - docastle.c: Maps all Docastle games third CPU rom to 0x0000 so that MAME doesn't log unmapped reads constantly. This fixes immense emulation speed drop bug (ID 02788). - galaxold.c, scobra.c and scramble.c: Removed dangling old obsolete code from driver - goldnpkr.c: Added common device interface, merged witchcrd and sloco93 machine drivers, and added/correct the 50/60 Hz. DIP switches to all games. The 50Hz mode needs to be correct. Some games as most bsuerte sets have the 50/60 Hz. DIP switch connection patched. - goldstar.c: Reworked and cleaned ncb3, cb3a, lucky8 and lucky8a inputs. Added the 2nd set of controls to the above games. Removed the OKI references from machine driver and rom load for the above games. Promoted ncb3 and cb3a to working status. Reparented sets. - goodejan.c: Fixed layer enable, flip x and x/y position - leland.c: Fixed access violation (ID 02763) - megatech.c: Fixed access violation with -debug in the SMS-Based Megatech sets (ID 02783) - namcos12.c: Fixed for odd word DMA transfers in the driver - namcos21.c: Put some ENABLE_LOGGING behind a (disabled) compile-time define - naomi.c: Fixed assertion in all sets (ID 02765) - nbmj8991.c: Added NO_DUMPS for the VHS to av2mj1bb and av2mj2rg. Fixed access violation in the driver (ID 02762). - nmk16.c: Fixed Coin counter doesn't decrease in tdragon, tdragon1 and hachamf (ID 02644) - qix.c and tnzs.c: Turned on perfect interleave - realbrk.c: Fixed YM2413 clock speed in dai2kaku, pkgnsh, pkgnshdx, realbrk - rockola.c: Changed VSync to 60Hz - segas18.c: Fixed System 18 rendering so that System 16 sprites don't attempt to shadow VDP pixels (causes crash downstream in debug builds) - shadfrce.c: Fixed debug assertion in driver (ID 02771) - statriv2.c: Changed Status Trivia 2 (and related games) 8085A CPU clock to 13.684MHz to fix game speed. Still wrong, but better than before. - vcombat.c: Added extremely preliminary i860 disassembler and hooked it up to the driver. Replaced 68000 CPU2 with 2x i860. Improved memory map. Fixed the palette. - wwfsstar.c: Fixed debug assertion (ID 02771) - zn.c: Marked Taito GNET as BIOS (-listxml) (ID 02575) - Ace Attacker: Fixed interger overflow (ID 02770) - Area 51: Site 4: Fixed interger overflow with -debug (ID 02785) - Arkanoid - Revenge of DOH: Significantly optimized the inner execution loop, the game is now ~2.5x faster with maximum interleave. - Bishou Jan: Converted the tilemaps chip to an 8-bit bus width, and added 16-bit handlers using the macros in memconv.h. Improved bishjan memory map. Implemented line scroll emulation. - Bloody Roar 2: Added new user2 rom - Buggy Boy Junior/Speed Buggy: Fixed I/O, engine sound and tilemap scrolling - Cherry 10 (bootleg of Golden Star): Changed game to a parent set - Cherry Bonus III: Changed game to a parent set. Worked the remaining inputs. Mapped and documented all 5 DIP switches banks. Worked out the conditional DIPs. Added PORT_DIPLOCATION to all switches. Fixed Cherry Bonus III and Cherry Bonus III (Version 1.40) colors. The game is working, but need a workaround for the status connection. Each time the player press 'Take' to get the credits, a "call attendant" msg appear and credits must be taken pressing 'Key Out'. - Cherry Bonus 2001: Discovered numerous new encrypted opcodes - Cherry Gold I: Changed game to a parent set. Completed the missing inputs. Mapped 4 of the 5 DIP switches banks. (can't find the 5th). Worked out the conditional DIPs. Documented all DIP switches bank. Added PORT_DIPLOCATION to all switches. - Cherry Master (Corsica, ver.8.01), Cherry Master '91 and Cherry Master (ver.4): Lots of improvements to the different Cherry Master hardware: Added new sets, created new machine drivers, fixed colors, added PPI devices, created new 8255 and AY8910 interfaces, worked out inputs and DIP switches from the scratch, fixed memory maps, merged the driver with Goldstar and much more. - Country Girl: Fixed access violation (debug) (ID 02761) - Diamond Derby: Fixed more stuff, game is playable but not yet working (due of a subtle bug, see source) - Double Dragon 3: Fixed gfx rom loading in clone The Rosetta Stone (prototype) - Draw 80 Poker: Changed game to connect the PROG line like Video Poker - Funky Jet: Fixed unable to locate input port 'P1' (ID 02793) - GameCristal: Fixed debug assertion (ID 02773) - Grand Prix '98: Improved graphics and sound - Gridlee: Removed anonymous timers - Gururin: Replaced the bad (likely hacked) dump with a fresh one - Hana wo Yaraneba!: Fixed access violation (debug) (ID 02772) - Hard Head: Fixed YM3812 clock speed (ID 01437) - Janshi: Fixed Z80 CPU1 clock speed - Jongkyo: Added proper inputs - Judge Dredd (rev LA1, prototype): Fixed access violation when loading savestate with -autosave and -debug (ID 01961) - Liberation: Fixed access violation (debug) (ID 02764) - Mace: Added Button4 to Player 2 (ID 02799) - Magic Card II: Fixed visible area - Mahjong Cafe Time: Fixed Access Violation with -debug (ID 02791) - Mahjong Man Guan Cai Shen: Improved game, it now runs through attract mode. It still locks up as soon as one coins up though, due to the unemulated IGS029 protection. Added new 4MB sprites rom. Fixed visible area to 512x240. - Mahjong Shiyou: Added preliminary sound and colors to the Mahjong Shiyou driver, game now throws a sound error. Merged Mahjong Shiyou to the Royal Mahjong driver, graphics are improved because of that. Fixed rom loading. Replaced 2x Z80, AY-3-8910A and MSM5205 with Z80 and AY-3-8910A. - Metal Hawk: Fixed game crashed while decoding with '-debug' trigger (ID 02104) - Michael Jackson's Moonwalker: Fixed crashed when starting game (ID 02776) - Mr. Do!: Fixed clocks, video parameters and merged memory maps - New Lucky 8 Lines . Proper 3x PPI 8255 connections. Created a new AY8910 interface due to different ports addressing. Hooked all the input banks (8). Improved DIP switches with main game and D-UP rates, keyin values, D-UP game type (reels/cards) and other options to both sets. Added PORT_DIPLOCATION to all DSW banks. Promoted both sets to working state. The game has 2 sets of controls. Once coined, both players can switch control through their own 'BIG' key. If the game boots with 'Coin Jam' error, press RESET to normalize. Please delete your old .nv and .cfg files before run this update. . Fixed memory map. Fixed NVRAM (please delete the old .nv). Added sound through SN76496. Added 3x PPI 8255. Created basic inputs from the scratch to match the PPI connections. Defined the output port. Improved colors. Change manufacturer to Wing Co.Ltd. Added an alternate set. - Pole Position / II: Added simple built-in layout for showing the position of the shifter. Removed debug build hack to popmessage the shifter state. - Popeye: Added the DIP location to the encrypted Popeye and fixed the coin settings according to the manual (unencrypted Popeye not changed) - Show Hand: Fixed 68000 and OKI6295 clock speeds and VSync - Slot Carnival: Added gfxdecode and palette length to the machine driver, so tiles can be viewed through F4 in case of someone wants to help. Defined SND_CLOCK for the AY8910. - Star Wars Arcade: Fixed access violation with -debug (ID 02782) - Street Fighter III 2nd Impact: Fixed access violation with -debug in clone (Japan, 970930) (ID 02779) - Super Mario World (Nintendo Super System): Fixed integer Overflow with -debug (ID 02780) - Super Triv: Fixed colors - SunA Quiz: Fixed crashed at the title screen (ID 02141) - Tecmo World Cup '90: Updated clone Worldcup '90 to use newly-dumped roms - Three Stooges: Fixed speech (ID 02714) - Tobe! Polystars: Hooked up DSA/ESA instructions for PowerPC 602 (as no-ops for now). Also hooked up PPC602 IBR. 'Tobe! Polystars' gets a little farther but crashes due to a TLB issue. - ThunderJaws: Perfect synchronization, which has always been iffy. Removed synchronization hacks. - Top Gunner: Fixed game hangs (ID 02766) - Top Landing: Fixed ADPCM rom loading - Turbo Sub: Added 'Real Time Image Processor', TMS5220 and DAC sound. Fixed M6809E clock speeds, visible area and VSync. Added video_cpu roms and proms. Fixed sound_cpu rom ($e000). - Tutankham: Added the DIP locations - Two Minute Drill: Added a work-around to get it booting again - Vamf x1/2: Fixed speed-up - Video Poker: Changed game MCS-48 P4 control register to the PROG line, which is more likely. The way to toggle the PROG line is to read/write/and/or to ports 4-7. Since the board doesn't list an 8243 port expander, it is likely the "writes" to port 4 are really just a mechanism to get the PROG line to toggle to clear the interrupt. - Xain'd Sleena: Fixed game freezes (ID 02742). Made game run at perfect interleave and simplified the shared RAM. Also moved to modern banking and cleaned up memory maps a bit. Fixed visible area and VSync. - Zoar: Removed BAD_DUMD flag from rom zoar15 (ID 02738) - Input port: Fixed crash when mouse-clicking without a valid mouse_target set (typically after startup when no mouse movement events have occurred). - Dipswitch fixes in chry10, goodejan.c, mgcs and royalmah.c - Save state: Added save state support to TTL74148, TTL74153, 1943, 1943kai, 40love, 4enraya, 88games, carpolo, circus, crash, docastle, dorunrun, dowild, fax, fieldday, gridlee, hangman, hardhat, idsoccer, jjack, kickridr, mrdo, mtrap, pepper2, popeye, quaquiz2, ripcord, robotbwl, sextriv, sidetrac, spectar, statriv2, supertr2, supertr3, targ, teetert, trivquiz and venture - Rom names fixes in aliens, dblaxle, mk3 (ID 02768) and popeye - Description changes of Michael Jackson's Moonwalker (Mega-Tech) (ID 02781) - MAME . Changed all CPU and sound cores to use memory_find_address_space() instead of cpu_get_address_space(). The former is reliable even during early initialization when the CPU cores generally need it. . Updated all the sound core header files to declare their SND_GET_INFO functions, which will be needed once the sound cores become proper devices. It also makes a handful of other header declaration fixes in emu\sound, and makes one SND_RESET routine static. Note: votrax.h is a new include file altogether. . CPU interface organization shuffle. The file cpuintrf.h now merely describes the interface, but does not contain any implementation. All remaining bits of implementation have been migrated either to cpuexec.c or to debugcpu.c. Specifically, cpu_dasm() is now debug_cpu_disassemble(), and cpu_set_dasm_override() is now debug_cpu_set_dasm_override(). Also moved memory_address_physical() to debug_cpu_translate(), since it was only ever used for debugging. . Changed the core execution loop to directly call the execute function instead of using the inline helper (which has been removed) . Normalized the CPU cores to always do while (icount > 0), in order to remove the kludge in cpuexec.c that caused us to overeat by 1 cycle to accommodate those cores that there looping while (icount >= 0). . Significantly optimized the inner execution loop. Arkanoid 2 is ~2.5x faster with maximum interleave now. . Cleaned up the profiler. Reduced its runtime overhead significantly by inlining the check to see if it is running. Removed obsolete entries and updated the text to more accurately describe each one. Added CPU tags to the CPU names. Switched to using an astring for building the final string. Unfortunately, still a bit too much overhead to leave it on in all builds. . Added the ability for a ROMset to specify a default BIOS. Use ROM_DEFAULT_BIOS("biosname") in the ROM definition. This can be used to ensure a correct default BIOS for ROM versions that care. . ROMload cleanups: Added running_machine to internal structure, removed as explicit parameter. Added new function rom_file_size() to compute the size of a ROM. Removed rom_first_chunk() and rom_next_chunk() which are no longer needed (all users can use rom_file_size() now). Changed progress display to be based on size of ROMs loaded. Changed temporary load buffer to be dynamically allocated. Fixed reload logic to handle skipped BIOSes. . Correct cpu_attotime_to_clocks() calculation . Fixed rendering of slider controls so it doesn't overlap when menus get large . Removed the dummy CPU core and cpuintrf.c . Removed a couple of unnecessary typedefs from mamecore.h. Updated romload to use an astring for accumulating errors (I always feared busting that buffer with some huge romlist). . Fixed MAME crashed on single monitor system if set to numscreens 2 in the *.ini (ID 02790) . Fixed a few out-of-bounds errors revealed by randomly initializing auto_malloc() memory. These would manifest themselves as difficult-to-reproduce crashes on some systems. Affects laserbat, progolf, seta2 and cubeqst drivers. . Added new frontend option -listbrothers. This will list all "brothers" of a given driver, meaning those drivers that come from the same source file, along with their parent names if they are clones. If a wildcard name is specified for the driver, then the first driver in a given source file will trigger a list of his brothers, and any other drivers in the same source file which match the wildcard will be flagged. . Added placeholders for various PALs on the following systems: balsente, galaga, ms32, namcofl, rocnrope and tx1. - MESS . Cleaned up the SID interface . Changed F3853 implementation into a device - Compiling: Fixed compile error on openSUSE 11.1 / GCC 4.3.2 with OPTIMIZE=3 (ID 02747) - Debugger . Added two new Windows OSD options: -debugger_font and -debugger_font_size, which control the font and size used in the debugger text Windows. These default to "Lucida Console" and 9pt, which is the same face as previously hard-coded but 1pt larger. Personally, I prefer "Consolas" 9pt, which is one of the new "C" fonts included with Windows Vista and later (also available for free download on older systems). Note that only fixed-width fonts really work here, for obvious reasons. . Disassembled PCs are now forcibly aligned to the minimum opcode size and explicitly masked. . Fixed auto_malloc() to randomize its memory when allocated in the debug build. This used to be the standard, but it seems to have been removed when the pool allocation was moved into the library. Also changed rand_memory() to use a fixed seed for consistent behavior. . Fixed fatalerror with "symlist" while running game (ID 02012) . Fixed debugger crashes when exiting during "run to cursor" (ID 01092) 0.128u7 - NOTE: As of this release, we have two more major changes. These should be the last "huge" changes of this dev cycle. The most major change is the final retirement of the global Machine pointer, which has been part of MAME for many years. Frankly, I never thought we'd hit this point so quickly, so my hats off to Atari Ace who helped push through the final round of changes needed to make this happen finally. As a result of this change, it should be possible in the coming year to finally write a driver that runs two full machines simultaneously. The second big change is that the CPUs are now full-fledged devices, and participate like all other devices in the system configuration. This is mainly an internal structural change, but in the end removes some redundant code and behavior. In a future dev cycle, a similar thing will happen with the sound cores. Starting now, the focus for MAME will be to iron out remaining issues and release a 0.129 sometime around the 1st of the year. Please keep reporting bugs to MAMETesters as you find things. - New games: 4nin-uchi Mahjong Jantotsu, Butterfly Video Game, Casino Winner, Country Girl and Three Ds - Three Dealers Casino House - New Working games: Mad Zoo and Sky Lancer (Bordun, ver.U450C) - New Non-Working games: Grand Prix '98, Janshi, Leader and Parent Jack - New clones: Cherry Master I (v1.01), Double Dragon 3 - The Rosetta Stone (prototype) and Jolly Card (italian, encrypted bootleg) - New drivers: caswin.c, janshi.c, jantotsu.c and parentj.c - 8080/8085 CPUs: Rewrote interrupt handling so that it makes sense. Changed callbacks to be specified in a config structure. Converted core to cpu_state_table. Changed to a single HAS_808X define for both cores. Fixed several drivers that used 8080/8085 interrupts in odd ways. - ADSP21xx CPUs . Changed cores to accept a configuration struct instead of using set_info to specify serial port callbacks . Simplified the ADSP21xx get/set info significantly . Removed support for only including certain variants of the chips; they are now either all supported or all unsupported - F3853 CPU: Added running_machine parameters to the f3853 callbacks - 8259 PIC . Fixed operation of edge-triggered interrupts . INT output line is now cleared when an IRQ is acknowledged . Implemented basic OCW3 features - NVRAM: Changed various NVRAM devices to fetch their default memory region from the device->region rather than specifying it in the configuration. - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c): Added running_machine callbacks for the Amiga code - Laser Disc: Modified laserdisc players to walk back to their global device state via the owner, rather than brute-force searching for the first instance and hoping that is the right one. - ddragon3.c, shadfrce.c, wwfsstar.c and wwfwfest.c . Converted driver to be fully scanlines based using timers . Updated driver to new video screen raw parameters . Hooked up interrupts (ddragon3, wwfwfest) - equites.c: Fixed missing background music (ID 02750) - funworld.c . Improvements to the driver . Updated technical notes - goldstar.c . Improvements to the driver . Merged lucky8.c with goldstar.c driver . Fixed some color issues in the driver . Hooked the 3x PPI 8255 devices to clones Cherry I Gold (bootleg of Golden Star) and '(New?) Cherry Bonus III' . Reworked the inputs of these clones based on PPI 8255 connections and added the unmapped PSG sound. Some works on their machine driver. . Some cleanups - metro.c: Fixed crashed with access violation (ID 02755) - skylncr.c . Complete reel support from the scratch . Full inputs, outputs & DIP switches from the scratch . Added new games 'Butterfly Video Game' and 'Leader' . Updated technical and game notes - vcombat.c: Decoded some graphics and setup some RAM in the driver - warpwarp.c: Converted driver to raw video parameters. Fixed VSync. - Agress: Fixed title screen - Arkanoid: Added PAL to clone Arkanoid (bootleg on Block hardware) - Arkanoid - Revenge of DOH: Turned the new MDRV_QUANTUM_PERFECT_CPU(x) function on for arknoid2 for now as a test (the interleave on that driver was already very close to perfect anyway). - Cherry Master (Corsica, v8.01): Fixed gfx2 rom loading - Diamond Derby . Improvements to the driver . Fixed rom loading . Added 2nd Z80 CPU and AY-3-8910A sound - Finalizer . Converted to tilemap . Added flipscreen . Replaced SN76496 sound with SN76489A - Hyper Duel: Fixed crash and wrong title screen colors (ID 02756) - Jangou: Fixed transparency pens in the driver (so removed the GAME_IMPERFECT_GRAPHICS flag) - Jangou Lady: Added a kludge for RNG, will be worked on in the future. - Kid no Hore Hore Daisakusen: Fixed proms in clone Booby Kids - Liberation: Removed DECO CPU16 CPU in clone Liberation (bootleg) - New Lucky 8 Lines: Changed manufacturer to 'Wing Co.Ltd'. Fixed gfx2/proms loading. Fixed Z80 CPU1 and AY-3-8910A clock speeds. - Polygonet Commanders . Continued rewrite of the Motorola DSP56k CPU core . Fixed flag calculation and sign extension for numerous ops . Added rnd, mpysuuu and dmac ops . Fixed do loop behavior to skip empty loops . Added stack underflow exception handling . Fixed update_handler for the DSP56k and Polygonet - Pro Soccer: Fixed DECO CPU16 CPU1 clock speed - Sengoku 3: Changed manufacturer to "Noise Factory / SNK" (ID 02757) - Silent Scope 2: Updated game to use newly-dumped roms - Street Fighter Zero 2 Alpha: Changed 'Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)' to a clone of Street Fighter Zero 2 Alpha. - Dipswitch fixes in dmndrby, goldstar.c, lucky8 and skylncr.c - Description changes of Diamond Derby (Newer), Diamond Derby (Original), Jangou [BET] (Japan), Jangou Lady (Japan) and Mad Zoo (ver.U450C) - MAME . Made CPUs into proper devices. CPUs are now added in the machine configuration just as any other device, and the standard CPU configuration is performed via the inline configuration macros. . Changed cpu_type from an enumeration into a pointer to the CPU's get_info function, very similar to device behavior. Updated all drivers to #include the necessary header files for the CPU's they reference. . Added function cpu_get_type() to return the CPU type . Changed several cpu_* functions over to the device_* equivalents, specifically for get/set info and for reset. . The device system now maintains a parallel list of devices based on type and class, for faster iteration through all devices of a given type or class. . Cleaned up code that looped over CPUs via the machine->cpu array to now loop using the type-based device list. . Removed start/stop/reset/nvram functions from the device_config in favor of grabbing them as needed. . Cleaned up the generic interrupt_enable code to work with CPU devices instead of numbers . Mapped the devtag_* functions to device_* functions via macros instead of parallel implementations . Removed cpuintrf_init() which is no longer necessary . Changed a number of APIs in the system to accept running_machine, address_space, or device_config types, in order to remove the use of the global Machine variable. Removed the global Machine variable now that it is no longer directly references. . Added the concept of device "owner", for devices owned by other devices . Made the concept of a "clock" native to devices. The clock is now specified when the device is added, and the clock is available in the device_config directly via device->clock. Updated all devices that have a clock to specify it when adding the device, rather than as part of their configuration. As part of this work, also created device-specific _ADD and _REMOVE macros to simplify configuration. . Defined a generic device execute function callback, though it is not used yet. The long term plan is that any device with an execute callback will be scheduled along with the CPUs. Now that CPUs are devices, their scheduling will be moved over to this logic eventually. . Moved device startup to *before* the DRIVER_INIT is called. This is to allow the DRIVER_INIT to configure devices that have been properly allocated. So far I don't see any negative effects, but be on the lookout if something weird shows up. . Rewrote the device iteration logic to make use of the typenext field and the newly-introduced classnext field for iterating more efficiently through devices of a given type or class. . Modified the parameters of the stream_update_func callback. As part of this work, macro-ized all the callbacks to STREAM_UPDATE, and added the sound device as a parameter. . Cleaned up many other CPU headers to move memory read/write macros out of them, since they are inappropriate and should be prive to the CPU core. . Removed index and clock parameters from CPU_INIT function . Cleaned up device and sound interfaces to match the CPU interfaces when handling strings. Namely, the generic get_info functions allocate a temporary string and the device in question copies its string to the target, instead of assigning a const char *. Updated all device and sound cores to operate this way. . Added the concept of a cpu_state_table, which is supplied by the CPU cores and which describes all the register state accessible to the debugger and other subsystems. The format of the table is such that most data can be simply fetched from memory without the further involvement of the CPU core, including the display of common formats. Extensibility points are available for custom display and for importing/exporting the data to intermediate variables for more complicated scenarios. Updated the ADSP21xx, TMS340x0, i86, Z80, Z180 and 8085 cores to use this. . More cleanup: Added address-space-specific constants for the various bus width and shift CPU interface constants. Changed all the cores to use them. . Removed MDRV_INTERLEAVE(x), which specified the minimum scheduling quantum in terms of "frames" (a dubious concept now with multiple screens and changing refresh rates). Replaced it with a new MDRV_QUANTUM_TIME(x) which specifies the minimum scheduling quantum as a time value. Time can be specified as HZ(x), NSEC(x), USEC(x) etc. Updated all drivers to use this, assuming 60 was the frame rate (this is not perfect but should work for almost all cases). . Changed MDRV_WATCHDOG_INIT_TIME(x) to automatically prepend UINT64_ATTOTIME_IN_ to the parameter, ensuring there is no improper use of this macro and bringing it in line with the MDRV_QUANTUM_TIME() macro. Updated all callers. . Added new MDRV_QUANTUM_PERFECT_CPU(x) to specify that the minimum quantum should be enough to ensure that the specified CPU tag only ever executes a single instruction at a time. This can be used to explicitly require "perfect" synchronization for drivers that have multiple CPUs with shared memory. Turned this on for the arknoid2 driver for now as a test (the interleave on that driver was already very close to perfect anyway). . Renamed REG_PC -> REG_GENPC, REG_SP -> REG_GENSP and REG_PREVIOUSPC -> REG_GENPCBASE. Updated a few spots that were using these directly. Moved these definitions into the end of the register area rather than leaving them outside which put them in a weird range. . Added running_machine parameter to the callback in the SID interface . Fixed autosave. Games using autosave segfault on startup (ID 02745) - Debugger . Removed the old debugger register list, which was never used. Replaced it with using ordering from the cpu_state_table. . Memory view fixes: Fixed bug that computed the wrong total size if the address space was a full 32 bits. Improved display to show unmapped memory with *s. Disabled enumeration of disk and 0-length regions. . Fixed 'run to cursor' and 'toggle breakpoint' operations in the debugger when dealing with CPUs that have shifted address spaces. 0.128u6 - New games: Jangou, Jangou Lady, Pesadelo and 2x Super Pool 99 - New Working games: Bra$il and Super Free Kick - New Non-Working games: 2x Four Roses, Cherry Bonus 2001, Cherry Master 91?, Jackie (v110U) and Queen? - New clones: CarnEvil (v1.0.3), Europa 2002 Space, Cherry Bonus III, (New?) Cherry Bonus III, Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters), Super High Impact (prototype, rev 6.0 09/23/91) and Triv Two (Vertical) - New drivers: 4roses.c, cb2001.c, forte2.c, jangou.c, queen.c and spool99.c - Pointer-ified ALPHA-8201, APEXC, ARM, CP1610, Cube Quest CPUs, DSP32C, DSP56156, F8, HuC6280, i8085, i86, i286, i386, KONAMI, LH5801, LR35902, M6805, MB86233, MC68HC11, MIPS 3, PIC16C5x, PowerPC, RSP, Saturn, SC61860, SH-2, SH-4, SHARC, TLCS-90, TMS32010, TMS32025, TMS32051, TMS7000, TMS99xx, uPD7810, V30MZ, V60, V810, Z180 and Z8000 - 8080/85: Fixed EI handling to have a shadow like the Z80 - 8085A: Added INTE and state word callbacks - ADSP21xx CPUs: Added wrappers for callbacks. Added device parameters to them. Updated IRQ setters to use generic_pulse_irq_line(). - F3853 CPU: Re-synced core with MESS - I8051 / MCS-51 CPU: Removed hack for setting MCS51 serial callbacks. Updated micro3d to use new functions. - I960 CPU: Fixed nor opcode and added notor opcode - KONAMI CPU: Changed Konami setlines callback to pass a device. Updated all drivers accordingly. - TMS34010 CPU: Modified the tms34010.h interface to eliminate some more global Machine variables. More deprecat.h includes eliminated. - Z8002 CPU: Updated Z8000 tables to reflect recent findings - CDP1869 sound: The device now also require a CPU to be defined in the configuration, in order to know which CPU's registers to fetch. Updated all cdp1869 users to specify one. - OKI6295 sound: Relaxed the command validity check - SCSP sound: Re-ordered init to fix crash - 6522 VIA: Changed implementation to be a device - 8237 DMA: Added MDRV_DMA8237_ADD macros - 8253 PIT: Added MDRV_PIT8253_ADD macro. Also, writes to a pit8253 timer control word always restart the timer. - 8254 PIT: Added MDRV_PIT8254_ADD macro - 8259 PIC: Added MDRV_PIC8259_ADD macro - PC16552D DUART: Modified the pc16552.h interface to eliminate some more global Machine variables. More deprecat.h includes eliminated. - PCI: Made the PCI bus a device. The bus is declared in the machine config, and the devices attached to it are enumerated there. Eventually, the PCI config read/write functions should be moved to well-known functions within the device, but for now they are kept separate. - deco16ic, konamiic, segaic16, taitoic: Fixed the widely used video cores to no longer reference the global Machine. - TMS34061 video controller: Modified the tms34061.h interface to eliminate some more global Machine variables. More deprecat.h includes eliminated. - Voodoo GFX: Voodoo devices now require a CPU to be defined in the configuration in order to know whom to steal cycles from or stall when FIFOs get full. Updated all voodoo users to specify one. - adp.c: Updated driver and now 'Fashion Gambler' show something - alpha68k.c: Reduced YM2413 clock speed from 8MHz to 3.579545 MHz in gangwars, goldmedl, sbasebal, skyadvnt, skysoldr and timesold - arcadia.c: Fixed driver, all games didn't booting, they just keep resetting to a white screen. (ID 02721) - calomega.c: Removed the ACIA6850 device from machine driver. It fixes the wrong lack of SW2. (ID 02724) - goldstar.c: Merged cherrym.c with goldstar.c driver. Converted the Reels video to tilemaps. - megadriv.c: Changed Megatech driver to pass running_machine to I/O callbacks plus other MESS support - micro3d.c: Removed hack for setting MCS51 serial callbacks. Updated Micro3D to use new functions. - n8080.c . Rewrote interrupt handling according to schematics . Added interrupt acknowledge - neodrvr.c: Added Universe BIOS (Hack, Ver. 1.2, older) - Arkanoid: Added correct proms to clone Arkanoid (bootleg on Block hardware) - Cherry Master (Corsica, v8.01): Fixed Z80 CPU1 and AY-3-8910A clock speeds. Added OKI6295 sound. Fixed proms loading. - Escape from the Planet of the Robot Monsters: Added missing graphical brightness effect (ID 02677) - F-1 Grand Prix Star II: Fixed game freezes upon reaching track (ID 02661). Fixed 68000 CPU5 clock speed. - Five a Side Soccer: Fixed game locks up at rom check (ID 02730) - Gals Panic 3: Fixed game displays 'Illegal Instruction' after ROM Check (ID 02728) - Gridiron Fight: Added proper artwork for the LEDs - J. J. Squawkers: Added best-known CRC to clone J. J. Squawkers (bootleg) "bad dump" roms (ID 02723) - Millennium Nuovo 4000 . Completed normal Inputs/Outputs . Added button-lamps calculation . Created button-lamps layout . Documented the PCB RAM . Fixed NVRAM size based on PCB picture (2x CY62256L-70PC near the battery) . Added notes about the method to make appear the real poker cards . Fixed the OKI 6295 frequency (1000 kHz resonator near). Now the game has more decent sounds. . Correct CPU clock to 12MHz (main Xtal) - Ninja Baseball Batman: Fixed raster effects by altering the V33 prefetch timing, just a guess as no documentation has been found. - Psychic Force 2012: Fixed 'Fatal Error' after OK. - Sky Soldiers: Fixed in-game music, which plays one octave higher. (ID 02739) - Super Free Kick: Added 2nd Z80 CPU and YM2203 sound. Fixed Z80 CPU1 clock speed and visible area (Game now playable). - Tecmo World Cup '90: Added best-known CRC in clone Worldcup '90 "bad dump" roms (ID 02722) - Vulcan Venture: Updated clone Gradius II - GOFER no Yabou (Japan New Ver.) to use proper gfx2 roms (same values of vulcan but byteswapped) - Wardner: Added save states support - Wild Pilot: Fixed gameplay freezes at start (ID 02708). Fixed 68000 CPU5 clock speed. - Zig Zag: Fixed game don't boot correctly. The screen just flashes over and over (ID 02718). - Save State: Removed the concept of state saving tags, which was a hack to get save states to work with multiple CPU cores. Simplified the state saving system as a result, performing the operation in a single pass and without allocating a full blob of memory. Also enabled minimal compression. - Dipswitch fixes in brasil.c, mil4000 and sfkick - Description changes of Buena Suerte (spanish, set 19) (ID 02725), Cherry Master (Corsica, v8.01) and T.T Mahjong - MAME . Added new function cpuexec_describe_context(machine) which can be used in logerror() and other printf-style functions to return a description of the current CPU/PC given only the machine. Changed several dozen sites to use this instead of directly interrogating the activecpu. . Removed all other uses of activecpu throughout the system. Removed activecpu from the machine structure to prevent future abuse. . Removed cpu_push_context() and cpu_pop_context(), and all call sites. . Removed get context/set context calls from the CPU interface entirely . Removed safe_cpu_get_pc() which doesn't really make sense anymore . Moved cpu_execute() to be an inline function . Removed remaining deprecat.h references from the CPU and sound cores . Expanded cpuexec cycles <-> attotime functions to handle UINT64s . Changed attotime_to_ticks/ticks_to_attotime to use UINTs and the eminline functions where possible . Changed many, many global Machine references to use machine, device->machine, etc. instead. . Disabled the use of PULSE_LINE for any input lines except NMI and RESET. Added a helper function generic_pulse_irq_line() for doing a single-cycle assert/deassert for those few drivers remaining that were trying to use PULSE_LINE directly. . Widened some machine init interfaces to pass the machine parameter, allowing more Machine global references to be eliminated. Eventually most of these need to be converted to devices, but this change reduces the deprecation surface in the meantime. . Squashed another deprecated use of Machine from the MAME core by plumbing machine_config into rendlay.c . Changed commonly-used verboselog to require a machine parameter . Added the sound device to the parameters passed to stream_create so that the global Machine can be removed from streams.c. . Introduced function macros for SAMPLES_START, CUSTOM_{START,STOP,RESET} and ANTIC_RENDERER. Pushed the running_machine * passing through these functions. In other locations added "running_machine *machine = Machine" to the top of functions to isolate the dependencies. . Fixed Altivec RGB primitives on newer GCCs . Eliminated the #include "deprecat.h" from tilemap.c. The main change is to require callers of tilemap_create to provide a machine pointer. This pointer is then attached to the tilemap and used when needed inside tilemap.c. . Eliminated the #include "deprecat.h" from drawgfx.h. It does so in a fashion similar to my recent tilemap patch, adding the machine pointer to gfx_element, changing allocgfx to take a machine, and then adjusting the internals to use the machine field as needed. . Updated the fcompress APIs to allow for specifying a compression level . Modified regrep to display the source file - Compiling: Enabled all CPU cores/variants. Fixed compile issue revealed as a result. - Debugger . Added logic to track OSD debugger updates separately from internal view updates. In order to get the OSD to update, a new function debug_view_flush_updates() must be called. Currently this is automatically called before osd_wait_for_debugger(), and during the periodic updates while executing. The OSD code may occasionally need to call it under other circumstances (for example, the Windows code calls it explicitly while tracking scrollbar thumbs to get live scrolling). . Removed unnecessary address masking in disassembly view. Changed console subview computations to leave the registers portion fixed. . Fixed resizing the debug window, the text was only in the old area. (ID 02740) 0.128u5 - New games: Brasil 89, Maverik, 2x Millennium Nuovo 4000, New Magic Card, Poker 91, Tennis (bootleg of Pro Tennis) and Treasure Island - New Non-Working games: Bra$il (Version 3), Destiny Horoscope, Galaxian 3 and Il Pagliaccio - New clones: Black Tiger (bootleg set 2), 21x Buena Suerte (spanish), Cherry 10 (bootleg of Golden Star), Cherry I Gold (bootleg of Golden Star), Fashion (Version 2.14), J. J. Squawkers (bootleg), Loco-Motion (bootleg), Royale (set 2), Surf Planet (Version 4.0), Worldcup '90 and Witch Card (Video Klein) - Removed games: Jolly Card (austrian, encrypted) (it's not coming from a real board) - New drivers: brasil.c, deshoros.c, gal3.c, ilpag.c and mil4000.c - 8080 CPU: Fixed interrupt handling: 1. Previous implementation cleared interrupt enable bit on interrupt trigger which is wrong since interrupts should stay enabled. 2. Service interrupt number was not cleared after interrupt is executed, so if same one is triggered it will not be catched. - ARM7 CPU: Pointer-ified core. Added disassembler and execution support for ARMv5 LDRD/STRD instructions. 39in1 now makes it until it needs the MMU. - CCPU CPU: Pointer-ified the core - CDP1802 CPU: Normalized CDP1802 state variables to 'cpustate' - G65C816 CPU: Pointer-ified the core - Hyperstone CPUs: Pointer-ified the core and removed all activecpu refs - I8039 / MCS-48 CPU: Fixed most sets using MCS48/51.C: Fatal Error when using -cheat trigger (ID 02672) - SH-2 CPU: Fixed subtle timing calculation problems that affected SH-2 timers (ID 02670) - SPC700 CPU: Pointer-ified the core - T11 CPU: Pointer-ified the core - T5182 CPU: Updated memory mapping a bit to properly handle mirrored areas. Added comments about how shared ram works. - Z80 CPU: Added placeholders for interrupt callback and Z80 daisy chain functions in Z80DMA - OKI6295 sound: Changed core to use a reasonable volume table derived from the manual. Added popmessages to notify of invalid commands so we can investigate them if some game uses them. It should also be noted that many games using this chip are clipping at the moment. This is something that might date back to when sound mixing was upgraded to 32-bit. It is sensible for the 6295 emulator to output at this level because it ensures that bits of precision are not lost, so the mixing levels in the drivers should be adjusted to avoid clipping. - HuC6280 sound: Fixed all sets with HuC6280 as Audio Device (PCE-Based titles): Fatal Error after OK (ID 02673) - 6526/8520 CIA: Made the implementations be devices: Added differentiation between the r1 and r2 versions of the 6526; not acting on it yet. - 6850 ACIA: Made the ACIA a device - artmagic.c: Fixed OKI clipping in all games (ID 02653) - astrocde.c: Fixed black screen in Demons & Dragons and Professor Pac-Man doesn't accept coins (ID 02713) - dacholer.c: Fixed Dacholer and Kick Boy freezes on the title or credit (ID 02693) - funworld.c . Decrypted Saloon's program, graphics and color PROM. Created a new memory map and machine driver. Replaced M65SC02 CPU1 with M65C02. . Renamed the Magic Card II sets . Updated technical notes - goldnpkr.c (Major driver rewrite) . Changed the driver name from pmpoker.c to goldnpkr.c (Golden Poker is the most representative hardware). . Splitted the PIA interfases to cover witchcrd/pottenpkr connections . Fixed the witchcrd/pottnpkr/sloco93 double up mode . Replaced the pottenpkr layout with goldnpkr one in all Jack Potten's Poker sets . Updated game notes for Witch Card and Super Loco 93 sets . Fixed al inputs & lamps to allow double up mode to the above games . Reworked the sets parent-clone relationship (still in progress) . Fixed visible area - neodrvr.c: Added the Universe BIOSes (The Universe BIOS roms are supported because they're now used on enough PCBs to be considered 'in active arcade use' rather than just homebrew hacks. Some may be missing, there have been multiple CRCs reported for the same revision in some cases) - stv.c . Fixed reversed VBLANK-IN/OUT events in ST-V, this fixes hanagumi/groovef 2 credits at start-up . Fixed a bug with irq timings . Added ODD bit emulation . Fixed vblank period timings . Optimized a bit the whole interrupt routines, getting a 4x speed gain. . Fixed an irq mask handling bug. This fixes at least Astra SuperStars and Pebble Beach booting, but the latter still fails the timer 1 irq routines. . Fixed sokyugrt and shienryu freezes after the loading and patent screens. shienryu allows coins but that's it. (ID 02715) - Balloon & Balloon: Fixed RGB565 bugs in Ghost Eolith driver - Carnevil: Fixed rom loading if -verifyrom fails to consider if a CHD is a BAD_DUMP (ID 02680) - Connect 4: Fixed game crashes if NVRAM file is present (ID 02705) - Cool Riders . Added hack for the SH-2 CPU . Fixed some irqs and some memory maps/ram sharing. Got to the point that area 0x03e00000 on the SH-2 loads some DMA-style tables. Fixed palettesize. - The Couples . Merged driver with Merit, fixing most of the graphics/color bugs in it. . Fixed Z80 CPU1 and AY-3-8910A clock speeds and VSync - The Electric Yo-Yo: Fixed game sometimes leads back to the test menu, after inserted coins and pressing start (ID 00894). - Jong Tou Ki: Fixed garbled upper screen (ID 02690) - Jackie Chan in Fists of Fire: Changed game from a clone of 'Jackie Chan - The Kung-Fu Master' to parent. - Jump Bug: Fixed game won't start second time around (ID 02689) - Night Stocker: Changed (set 2) from a parent set to a clone of (set 1) (ID 02709) - Pandora's Palace: Fixed music tempo (ID 02669) - Sengoku Mahjong . Cleaned up gfx decode and driver . Added layer enable register, coin counter, coin lockout and NVRAM emulation - Tough Turf: Added GAME_NO_SOUND flag due to missing ROM only (ID 02702) - Violent Storm: Fixed copy/paste error on rom names (ID 02674) - WWF Superstars: Fixed OKI6295 playback frequency is too high (ID 01442) - Zoar: Fixed gfx3/bg_map rom loading - Input port: Fixed dipswitch settings are not being stored in INP files (ID 02688). Old INP files had to be broken. Since they were already broken, the corefile module was enhanced to support streaming compression, and the new INP files are output and processed compressed. - Dipswitch fixes in funworld.c, goldnpkr.c, merit.c and sengokmj - Save State: Changed save state system to accept machine parameters where appropriate, and to keep all global variables hanging off the machine structure. Once again, this means all state registration call sites have been touched: state_save_register_global* now takes a machine parameter, state_save_register_item* now takes a machine parameter and added new state_save_register_device_item* which now uses the device name and tag to generate the base name. - MAME . Removed globals from cpuexec. Also removed ATTOTIME_TO_CYCLES() and ATTOTIME_IN_CYCLES(). Replaced them with functions in cpuexec: cpu_clocks_to_attotime() and cpu_attotime_to_clocks(), both of which take CPU devices instead of indexes. Updated all callers, many of which were using the functions dubiously. . Removed cpunum_get_active() calls and activecpu references from all of the CPU cores. . Normalized several local CPU state variables to the generic 'cpustate' instead of names_with_underscores. . Removed all references to cpunum_get_active() and removed the function entirely. . Added a number of new cputag_* macros to cpuexec.h . Renumbered CPU and sound get/set info constants to align with the device constants, and shared values where they were perfectly aligned. . Set the type field in the fake device_configs for CPU and sound chips to a get_info stub which calls through to the CPU and sound specific get_info functions. This means the device_get_info() functions work for CPU and sound cores, even in their fake state. . Changed device information getters from device_info() to device_get_info() to match the CPU and sound macros. . Removed cpunum_get_active(). Main important change is that IDE controllers with bus mastering (DMA) need to specify the target address space in the IDE device configuration. . Removed mame_find_cpu_index(). Use cputag_get_cpu() instead. Updated all drivers calling this to the newer function, and generally simplified their code as a result. . Furthered the process of aligning the sound cores with the recent cpu core changes. Added a fake device implementation similar to the one the cpu cores are using. Made some interface adjustments aligned to 128u4 (i.e. adding snd_class_header, adding get_ to various getter functions). The primary benefit of this change is the removal of "deprecat.h" from 23 sound cores. Also adjusted ui.c to stop calling sndnum_clock and access the clock data similarly to how it does the cpu clock data. Note from Aaron: Further changes to the sound interfaces will be kept to a minimum until the CPUs are sorted out. . Extended the fake sound devices to have more populated fields. Modified sound cores to use tags from the devices and simplified the start function. . Added macros to access ROM and MACHINE_DRIVER by name . Removed fillbitmap() macro in favor of direct calls to bitmap_fill(). Note that the parameters to the latter are in a different order (bitmap, clip, color). . Changed timer_alloc, timer_set, timer_pulse, timer_call_after_resynch and timer_get_time to pass the machine parameter. Moved timer globals to hang off of the running_machine. . Made non-critical UI warnings yellow instead so that they stand out (ID 02658) . Re-enabled the OSD key for master volume control. All other sliders are still only accessible via the menus. . Pool items are now tracked globally, and freed in reverse order of allocation. This enables proper nesting. . Fixed wrong audio tempo in some drivers with Z80/AY8910 (ID 02691) . Fixed emuopts.c: CORE INPUT AUTOMATIC ENABLE OPTIONS (ID 02687) - Compiling . Fixed various CPU cores don't compile (ID 02638) . Added ATTR_NONNULL to various declarations . Renamed constants CPU_IS_LE -> ENDIANNESS_LITTLE and CPU_IS_BE -> ENDIANNESS_BIG. - Debugger . Fixed stepping . Big debugger cleanup: Important note for OSD ports: The get/set property functions have been retired for debug_views. Instead, there are specific functions to perform each get/set operation. In addition, the format of the update callback has changed to pass the osd private data in, and the update callback/osd private data must be passed in at view allocation time. And osd_wait_for_debugger() now gets a CPU object instead of the machine. Removed extra debugger tracking for address spaces and added some of the useful data to the address_space structure. Updated all debugger commands and views to use CPU and address space objects where appropriate. Added new memory functions for converting between bytes and addresses, and for performing translations for a given address space. Removed debugger macros that did similar things in favor of calling these functions. Rewrote most of the memory view handling. Disasm and register views still need some additional tweaking. Added the concept of 'subviews' to the debugger views. The core now creates a list of possible subviews, and the OSD can select between them. This removes code from the OSD that was previously required to find all possible memory and disassembly views. Added machine parameters to debugger console output functions. Moved globals to hang off of the machine structure. Fixed bug where the visiblecpu was not updated immediately upon a break. . Fixed debugger causes access violation while running and pressing F5 (ID 02683) 0.128u4 - NOTE: This update represents the first part of a monumental internal change within MAME in the way CPU cores are managed and how memory is addressed. There are two ways you can help get these changes sorted out. 1. Test the games you are familiar with, and some you are not. Report bugs at http://mametesters.org/ for anything out of the ordinary. 2. If you are up to coding, help us by submitting patches that remove the use of [Mm]achine->activecpu and/or cpunum_get_active(). You should be able to derive which CPU you are referencing through other means. To avoid duplication of effort, either send these quickly in small bunches, or better yet, send a message to the submission address announcing your intention to work on a certain class of drivers. - New Working games: Filetto, Fire Fox, Gals Panic 3, Jackie Chan and Touryuu Densetsu Elan-Doree - New Non-Working games: Motocross Go! - New clones: Beast Busters (US, Version 2), 27 x CPS2 Phoenix sets (1944d, 19xxd, avspd, batcird, ddsomud, ddtodd, dstlku1d, gwingjd, hsf2d, megamn2d, mshud, mvscud, nwarrud, progerjd, ringdstd, sfa3ud, sfad, sfz2aad, sfz2ad, sgemfd, spf2xjd, ssf2tbd, ssf2ud, ssf2xjd, vsavd, xmcotad and xmvsfu1d), Daitoride (YMF278B version), Puzzle Bobble 2 (Ver 2.3O 1995/07/31), Soldam (World?), Street Fighter II' - Champion Edition (Rainbow set 3, bootleg), Vs. Skate Kids. (Graphic hack of Super Mario Bros.) and Violent Storm (ver UAC) - 68000 CPU . Significantly pared down the core: Merged outer MAME shell into the core proper and removed unused macros. Changed all external interfaces to pass the CPU device. Enabled 64-bit operations by default. Re-derived the interface functions to cascade and share code more aggressively. These changes also seem to have cured the taito_f3 issues as far as I can tell (at least pbobble3 seems right now). . Disentangled core: Converting it to be much simpler and less overly abstracted. Hard-coded it for the options that are relevant and never going to change. Removed old unused CPS2 encryption junk. Changed encryption interfaces to pass the CPU core object. . Switched M68000 to new memory functions - 68EC020 CPU: Fixed core, which has graphics regression / game resets in most sets using the 68EC020 CPU (ID 02639) - ADSP21xx CPUs: Switched cores to new memory functions - ASAP CPU: Pointer-ified core - CDP1802 CPU: Pointerized and refactored core to use the new memory functions - COP400 CPU: Pointerized and refactored cores to use the new memory functions - H8/3002, H8/3007, H8/3044, H8/3334 and H8/3344 . Converted H8 CPUs to the new memory functions and un-deprecat'ed the H8. . Added support for 8-bit H8 family MCUs, starting with the H8/3344. . Pointer-ified all H8 cores. Some cleanup and renames toward additional future work. . Added extremely preliminary support for I/O boards to the Namco System 23 with the H8/3344. . Added H8/3334 CPU3 and MCU code (256k) to Time Crisis 2 . Added Motocross Go! with H8/3334 CPU3 - HD6309 CPU_ Pointer-ified core - I8039 / MCS-48 CPU: Switched MCS48 to new memory functions - I8041 CPU . Changed name from 'I8X41' to 'I8041' . UPI-41/42 (I8x41) changes: CPU/i8x41 should be renamed to UPI-4x, since UPI-41/42 was an intel chip family postponed for now until core moved to pointers. Removed I8041 definition from mcs48. Removed I8x41 cpu definition and config struct. Added I8041, I8741, I8042, I8242 and I8742 cpus to i8x41.c. Added internal memory maps. Internal ram now uses DATA memory space. Updated drivers. Increased interleave to 70 in decocass. This fixes decocass hanging in countdown around 13. No idea when this bug was introduced. Converted i8x41 to use pointers for state access. Separated opcodes into i8x41ops.c - I8051 / MCS-51 CPU: Switched MCS51 to new memory functions - I960 CPU: Switched core to pointer state access - Jaguar GPU/DSP: Pointer-ified core - M377xx CPUs: Pointer-ified cores - M6800 CPU: Pointer-ified core: Temporarily named the state var m68_state in the 68xx cores. Reorganized some code for simpler comparison of 68xx cores. - M6809 CPU . Pointer-ified core: Temporarily named the state var m68_state in the 68xx cores. Reorganized some code for simpler comparison of 68xx cores. . Added config option to control where opcodes 10 and 11 fetch the second byte and changed disassembler to work with Kram (encrypted). . Switched core to new memory functions: Cleaned up some macros. Aligned code a bit more. Interrupts now checked in cpu_execute instead of set_context. - PSX CPU: Pointerified the core and switched it to the new memory functions. Changed some MIPS_* to PSXCPU_*. - S2650 CPU: Pointer-"ified" core - SE3208 CPU: Pointer work on core - SH-2 CPU: Removed cpu_num info in favor of just keeping the device object - SSP1601 CPU: Converted core to pointers (still works, tested Virtua Racing Genesis) - TMS32031 CPU: Pointer-ified core - TMS340x0 CPU: Converted cores to be pointer-based - TMS9900 CPU: Fixed missing *_get_info functions in the core (ID 02020) - V30 CPU: Pointer-ified core - Z80 CPU: Cleaned up macro mess in the Z80 core. Switched to using generic memory calls instead of program_* and io_*. - Discrete sound . abc_step and abc_reset now declared as DISCRETE_STEP( abc ) and DISCRETE_RESET( abc ) . Fixed state save in discrete sound: sndindex now considered as well in state save. Expose discrete_sound_n_r(void *chip, ...) to enable accessing multiple discrete sound cores. - OKI6258 sound: Added Oki MSM6258 sound core - S14001A sound: Added chip pinout and operation notes - MC6845 CRT: Hsync needs to toggle on every scanline. This fixes games using the MC6845 displaying the message"Mode Control 88 is not supported!!!" (ID 02655). - Laser Disc: Added disc to Fire Fox - Derived clocks from crystals in Ace, asteroid.c, Avalanche, blockade.c, Boxer, bzone.c, cosmic.c, firetrk.c, galaga.c, lazercmd.c, meadows.c, Missile Command, Orbi, Sky Diver, sprint2.c, warpwarp.c and williams.c - Removed ROM banking kludges from Bubble Bobble, Land Sea Air Squad, Miss Bubble 2, Ninja-Kid II, NewZealand Story and other drivers - galaga.c: Unified CPU4 memory maps - cps1.c: Updated documentation - cps2.c: Documented the CPS2 Phoenix sets, and what happens to a dead CPS2 board. The Phoenix sets were created by Razoola as a method of allowing the games to run on CPS2 boards where the battery had died. When this happens the boards run non-encrypted code, but the memory mapping is changed. As the original games have encrypted code mixed with decrypted data the program roms must be carefully modified in order to correctly contain only decrypted code and data, as well as modification to compensate for the memory map changes that occur on the dead boards. Due nature of this process there were sometimes errors introduced into the 'Phoenix' sets. Unfortunately the 'Phoenix' sets also ended up forming the basis of a mass cps2 bootlegging operation whereby cheap CPS2 B boards were purchased, the encryption keys killed, and the boards converted to more desirable games. These started off as single game bootlegs of in-demand titles, but soon started also forming the basis of xx-in-1 bootlegs running on heavily customized B-boards. These are not legitimate Capcom products despite appearing to be so. These bootlegs are often sold as 'Phoenix Edition' after Razoola's name, 'xx-in-1', or simply 'Suicide-Free' to further artificially inflate the price. Buyer Beware! All sets are marked as bootleg because they're unauthorized modifications of the original Capcom rom data, and were used for bootleg conversions. This may not be a complete list of sets, it was taken from MamePlus. Other sets, and further customized bootlegs boards are known to exist. There is a bootleg of Megaman 2 called 'Gigaman 2' which has SMT roms, and replaces the Qsound hardware with an OKI6295 / AD-65 chip. No known complete dump exists. - decocass.c: Fixed driver, which freezes when the counter reach 15, 14 or 13 (ID 02660) - kaneko16.c: Added Simulation of Toybox external data rom decryption. Converted Blood Warrior, Bonk's Adventure, Great 1000 Miles Rally 1+2 to use the new code. - namcos23.c: Added extremely preliminary support for the System 23 I/O boards with the H8/3344. - naomi.c: Implemented a "plug-in board" device for the NAOMI. It represents the rom boards for the various games and the DIMM Board for the gdrom. Now the DIMM Board part contains only a routine to load the "rom file" from the gdrom chd, but in the future it will be fully implemented with its own sh4 processor, security chip and so on. Extracted .rom files are no longer needed, rom file is extracted in code from the CHD. - peplus.c: Changed the 6845 type to R6545_1 (Rockwell as mentioned in the driver). Use transparent addressing. Lightpen code now generates a "lightpen_assert" at the right screen position. Completely hooked up 6545 without wrappers. - sprint2.c: Unified memory map - stv.c . Better management of hblank/vblank bits. Makes dynamic resolutions to be called with a timer instead of run-time. Makes dynamic resolutions to not be changed at every frame but only when there's an actual change. Removed all the read/write handler speed-up hacks, they aren't needed anymore and they were doing more damage than being useful. This fixes 'Golden Axe - The Duel' gameplay speed at the cost of breaking up 'Power Instinct 3 - Groove On Fight' coin counter at start-up. . Removed several global hacks/game specific hacks (SMPC irq bit/introdon irq register hack/pblbeach framebuffer hack plus some more). Note: Some games have issues with it, but they'll be hopefully fixed on the next couple of updates. - Ajax: Documented alt Ajax rom board (has only 64k gfx1/2 roms) - Balloon & Balloon: Fixed Ghost Eolith HW video emulation (not yet working) - Beast Busters: Tweaked gun handling a bit, by halving the precision of the guns to 7-bit they can be calibrated more easily, maybe the originals were like this. Added also a default EEPROM with them calibrated in a 'reasonable' way for MAME. Sound is pretty awful on this, maybe the sound ROMs should be checked? Adjusted volume balance slightly. - Bomber Man World: Fixed sound in clone (Japan), no sound since 0.123u2 (ID 02667) - Chuka Taisen: Replaced I8X41 CPU3 with I8742 - Crack Down: Replaced Floppy image with one containing valid settings data (prevents game booting with 0 seconds and invalid highscore data which it can't restore correctly) (ID 01998) - Crazy War: Fixed broken EEPROM - Double Axle: Added correct YM2610 sample rom (c78-12.33 - 1MB) - Double Wings: Fixed several protection issues, improved video and sound. - Draco: Replaced COP420 CPU2 with COP402 - Elevator Action: Fixed game freezes after coin insert with "8" (ID 02656) - Filetto: Added HC-55516 sound, 2x PIC8259 interrupt and a 8237 DMA controller (Game now playable) - Flyball: Changed CPU clock to a #defined crystal and added DIP locations - Gals Panic 3 + Jackie Chan: Added Simulation of Toybox external data rom decryption. Updated suprnova rendering to allow 2 sprite chips - Games now playable. - Hoops '96: Fixed game crashes when you press the test key (F2) (ID 00578) - Jibun wo Migaku Culture School Mahjong Hen: Converted driver to have separated color tables for each plane. - Kram: Changed clone (encrypted) to use a partially understood decryption algorithm, removed external tables and changed 6809 disassembler to work with Kram (encrypted). - Legend of Kage: Fixed visible area in bootlegs to match original sets - Mechanized Attack: Added 2nd zoom table rom - Ms. Pac-Man: More accurately describes the aux board behavior. There is a thorough description of how the board works. mspacman is a more faithful emulation. In particular you can now enter service mode (F2) at anytime during game play. - Polygonet Commanders: Added the latest "what we know" to the driver - Spinal Breakers: Fixed priority issues (ID 02092) - Stadium Cross: Fixed P2 buttons are mapped twice (ID 02196) - Strider: Fixed problem with graphics layer (ID 02641) - Super Major League: Marked Super Major League and clone Final Arch as GAME_NOT_WORKING, they hangs randomly due of SH-2 master/slave communication RAM issues. Fixed also broken Test Mode in clone Final Arch. - Super Bug: Fixed M6800 CPU1 clock speed - The NewZealand Story: Replaced I8X41 CPU3 with I8742 in clones (Japan, old version) (older PCB) and (World, prototype?) (older PCB) - Time Crisis: Fixed game, which unable to start due to improper initialization (ID 02654) - Time Crisis 2: Added H8/3334 CPU3 and MCU code (256k) - Touryuu Densetsu Elan-Doree: Correct protection number seeds. Removed GAME_NOT_WORKING flag, because protection affects only in-game graphics and not gameplay. - Tron: Added dates to the revisions. Swapped tron/tron2 now that we know tron2 is the later version. - Two Minute Drill: Fixed basic controls and added preliminary shutter/defender sensors. Still need proper ball hit/run sensors to get this working however. - Vendetta: Added better EEPROM fix (ID 02668) - Save State: Added "tag" parameter to state_save_register_item_* calls. Removed state_save_combine_module_and_tag() function in favor of passing the tag when registering. Revisited all save state item registrations and changed them to use the tag where appropriate. - Dipswitches . Added DIP locations to flyball, meadows.c, mugsmash and orbit . Fixes in 2mindril, dblewing, filetto, jchan, joyfulr, lkage, magmax, mermaid.c, momoko and scotrsht - Description changes of Beast Busters (World), Tron (8/9), Tron (6/25), Tron (6/17), Tron (6/15) - MAME . Major cpuintrf changes: Added a set of cpu_* calls which accept a CPU device object; these are now the preferred means of manipulating a CPU. Removed the cpunum_* calls; added an array of cpu[] to the running_machine object; converted all existing cpunum_* calls to cpu_* calls, pulling the CPU device object from the new array in the running_machine. Removed the activecpu_* calls; added an activecpu member to the running_machine object; converted all existing activecpu_* calls to cpu_* calls, pulling the active CPU device object from the running_machine. Changed cpuintrf_push_context() to cpu_push_context(), taking a CPU object pointer; changed cpuintrf_pop_context() to cpu_pop_context(); eventually these will go away. Many other similar changes moving toward a model where all CPU references are done by the CPU object and not by index. Added CPU device parameters to all CPU callbacks except for the context ones (which are going away), and the validity check. . Populated tag and static_config parts of fake CPU device. Removed 'config' parameter from CPU_INIT. Modified CPU cores to pull config from the device static_config. . Massive API cleanup/change: The primary goal is that all CPU-related APIs now take a device pointer instead of an index. All functions that take a CPU device are prefixed with cpu_*. All functions that are globally related to cpu execution are prefixed with cpuexec_*. Below is a list of some of the mappings: cpu_boost_interleave -> cpuexec_boost_interleave, cpunum_suspend -> cpu_suspend, cpunum_resume -> cpu_resume, cpunum_is_suspended -> cpu_is_suspended, cpunum_get_clock -> cpu_get_clock, cpunum_set_clock -> cpu_set_clock, cpunum_get_clockscale -> cpu_get_clockscale, cpunum_set_clockscale -> cpu_set_clockscale, cpunum_get_localtime -> cpu_get_local_time, cpunum_gettotalcycles -> cpu_get_total_cycles, activecpu_eat_cycles -> cpu_eat_cycles, activecpu_adjust_icount -> cpu_adjust_icount, cpu_trigger -> cpuexec_trigger, cpu_triggertime -> cpuexec_triggertime, cpunum_set_input_line -> cpu_set_input_line and cpunum_set_irq_callback -> cpu_set_irq_callback. In addition, a number of functions retain the same name but now require a specific CPU parameter to be passed in: cpu_yield, cpu_spin, cpu_spinuntil_time, cpu_spinuntil_int, cpu_spinuntil_trigger and cpu_triggerint. Merged cpuint.c into cpuexec.c. One side-effect of this change is that driver reset callbacks are called AFTER the CPUs and devices are reset. This means that if you make changes to the CPU state and expect the reset vectors to recognize the changes in your reset routine, you will need to manually reset the CPU after making the change (since it has already been reset). Added a number of inline helper functions to cpuintrf.h for managing addresses. Removed cpu_gettotalcpu(). This information is rarely needed outside of the core and can be obtained by looking at the machine->cpu[] array. Changed CPU interrupt acknowledge callbacks to pass a CPU device instead of machine\cpunum pair. Changed VBLANK and periodic timer callbacks to pass a CPU device instead of machine\cpunum pair. Renamed all information getters from cpu_* to cpu_get_* and from cputype_* to cputype_get_*. . Major memory system change: Changed READ/WRITE handlers to accept an address_space * instead of a machine *. The address_space object was enhanced to contain a machine and a pointer to the relevant CPU object. Added new function cpu_get_address_space() to fetch the address space for calling in manually to these functions. In some instances, code which should eventually be converted to a device is hard-coding fetching the program space of CPU #0 in order to have something valid to pass. . Another significant memory system change: Moved memory global state into a struct hanging off of the machine. Updated almost all memory APIs to take an address_space * where appropriate, and updated all callers. Changed memory internals to use address spaces where appropriate. Changed accessors to point to the memory_* functions instead of the address space-specific functions. Improved internal handling of watchpoints. Added cputag_* functions: cputag_reset(), cputag_get_index(), cputag_get_address_space(). These just expand via macros to an initial fetch of the CPU via cputag_get_cpu() followed by the standard CPU call. Added debugger_interrupt_hook() and debugger_exception_hook() calls which intelligently look at the debugger flags before calling. Memory banking now requires a machine object. This makes the memory system fully global-free. . Removed memory context switch. All memory accesses now specify an address space explicitly. There is no longer any concept of a "current" memory context. . Removed all direct memory accesses via program_read/write_* from game drivers. All drivers now use the memory_read/write_* and pass in an address space. . Removed cpu_read_byte/cpu_write_byte. These are replaced with memory_read_byte/memory_write_byte. . Fixed address space mapping handlers to invalidate direct access regions if a change is made to the mapping. This is needed to prevent the Sega dynamic memory mapping chips from falling over. . Generalized the concept of opbase access into "direct" access. Removed opbase globals to the address_space structure. Cleaned up names of pointers (decrypted and raw versus rom and ram). Added inline functions to read/write data via any address space. Added macros for existing functions to point them to the new functions. Other related cleanups. . Converted remaining CPU cores over to new memory functions . Replaced the machine parameter where an running_machine * is available and removes the deprecat.h where unnecessary. . Defined macros for standard sound core functions and updated all sound cores to use them. . Removed the change_pc() macro. Changed memory_set_direct_region() to return a boolean indicating whether the given address was successfully located in a bank. Change raw/decrypted access to look at this result, and if the given address is not in a bank, calls through to the standard read handlers. This should prevent most crashes when accessing opcodes. . Added template support to regrep. Changed output to not color the entire background of each cell. Switched to astrings and core_files internally. . Removed all vestiges of the old change_pc macro, which is no longer needed with the banking improvements. . Enhanced the runtest.cmd to use all available processors - Debugger . Cleaned up use of running_machine in the Windows debugger code . Debugger interfaces cleanups: Added callback parameters to the expression engine. Improved CPU parsing so you can use a CPU tag or index in most commands that take one. Switched to passing CPU and address space objects around where appropriate. Symbol tables now have a global ref as well as a per-symbol ref. Debugcpu is now clear of active CPU references and global Machine references. Lots of other minor tweaks. 0.128u3 - New games: Snezhnaja Koroleva - 68000 CPU . Began the process of pruning options from the 68000 core, hard-coding it for MAME's needs. We've hacked on it sufficiently that it is no longer generic, so this is a good opportunity to simplify the code so that it can actually be followed (still in progress). . Converted the M680x0 cores to reference their data via pointers instead of global structs, in anticipation of future changes. - 68020 CPU . Updated cpuexec to compute the "perfect" interleave value taking into account the minimum number of cycles per instruction specified by the CPU core. . Fixed incorrect minimum cpi in the 68020+ cores. - ADSP2100 CPU: Converted core to reference their data via pointers instead of global structs, in anticipation of future changes. - I8039 / MCS-48 CPU: Converted the MCS-48 core to reference data via pointers - I8051 / MCS-51 CPU . Converted the MCS-51 core to reference data via pointers. . Merged DS5002FP into MCS-51. Disassembler now uses type specific memory names. Merged DS5002FP disasm. Added 83C751 memory names to disassembler. Delete DS5002FP specific files. Removed unnecessary cpu callback in World Rally. DATA_MAP ==> IO_MAP in World Rally. - M6502 CPU: Converted core to reference data via pointers - R3000 CPUs: Converted the R3000 core to reference their data via pointers instead of global structs, in anticipation of future changes. - Z80 CPU . Added support for recently-discovered internal Z80 register to the Z80 core. Improves accuracy of undefined flags. . Converted the Z80 core to reference their data via pointers instead of global structs, in anticipation of future changes. . Updated cpuexec to compute the "perfect" interleave value taking into account the minimum number of cycles per instruction specified by the CPU core. Updated Z80 core to indicate that the minimum cpi is 2. - AICA sound: Fixed missing instruments in DTPK driver games - 74123 TTL: Changed 74123 into a device. Clarified behavior from datasheet. Added logic to avoid recursive calls. - MC6845 CRT: Reverted changes as they broke a number of things. This fixes crash/hanging in many games using the MC6845 (ID 02633). - cps2.c: ROM updates to match PCB labels - expro02.c: Fixed missing inputs in Gals Panic and Fantasia - halleys.c: Fixed dipswitches for Ben Bero Beh - m10.c (First results from schematics) . Updated video timing and cpu/pixel clocks . Rewrote irq for M10/M11 to use two 74LS123 . Fixed M6502 clock speed and VSync in andromed, ipminva1, ipminvad and skychut - megadriv.c: More improvements to the 32x code - naomi.c: Unmapped words in the AICA address range must read as zero - peplus.c . Hooked up MC6845 CRT in a daisy chain way into existing "6845 emulation". Clocks from schematics. Video size issues - 6845 code related, discussion started on list. . Replaced I8052 CPU with I80C32 and fixed VSync - stv.c . Fixed bitmap zooming in Virtual Mahjong 2 . Worked around a major graphic bug in ElanDoree . Added some missing alpha blending effects, Pro Mahjong Kiwame S title screen needs it but it doesn't work yet due to other problems (still investigating). . Fixed a crash bug with Astra Super Stars when the debugger is active - Crime Fighters: Fixed clones crimfgt2 and crimfgtj, which cannot start (ID 02626) - Forte Card . Some improvements to the driver (not yet working) . Fixed Z80 CPU1 clock speed and visible area . Added AY-3-8910A sound - Frogs: Fixed game, which exit with an error after taking a screenshot (ID 02607) - Ghouls'n Ghosts: Fixed clone (US), which doesn't remove the original port when replacing it with a conditional port (ID 02542) - Polygonet Commanders . Continued rewrite of the Motorola DSP56k CPU core . Added proper clock speed to plygonet.c and internal divider to dsp56k.c . Fixed up disassembler add/sub, 05xx, and bsr ops . Handle mysterious uuuuF instruction found in plygonet add op . Partially implemented add, sub, mac, mpy, inc, cmpm, macr, asr16, jscc, lea and movec ops . Added dual X memory read and data move with short displacement parallel moves - Power Instinct: Correct YM2203 balance - Psycho-Nics Oscar: Changed (Japan revision 0) to (World revision 0) since there is no japan disclaimer. - Samurai Aces: Fixed missing SFX sound (ID 02618) - Speed Attack!: Fixed coinage and cleaned-up the driver to current standards - Star Castle: Improved drone sound (ID 02081) - Super Real Mahjong Part 1/2: Fixed background color - Toobin' . Converted game to RGB32 to allow for mid-screen palette updates . Added correct video timing and full memory map and connected watchdog - Dipswitches . Fixed Dip Condition / Port Include limitation (ID 02544) . Added DIP locations to Express Raider, Gyruss and Halley's Comet . Fixes in halleys.c, exprraid, fortecar - Description changes of Speed Attack! (Japan) - MAME . Defined macros for all core CPU functions, along with macros for the name and for calling, in the spirit of the devintrf.h macros. . Changed the CPU IRQ callbacks to a proper type, and added a device parameter to them. . Added machine parameter to cpu_boost_interleave . Updated cpuexec to compute the "perfect" interleave value taking into account the minimum number of cycles per instruction specified by the CPU core. Updated Z80 core to indicate that the minimum cpi is 2. Fixed incorrect minimum cpi in the 68020+ cores. . Added ADDRESS_MAP_NAME macro, updated CPU cores to use it to reference internal address maps. . Changed core cycle computations to use div_64x32 instead of full 64-bit divides. This involves tossing a few bits of resolution at divide time, but should make no real difference in practice. . Changed init, reset, exit and execute interfaces to be passed a const device_config * object. This is a fake object for the moment, but encapsulates the machine pointer and token. Eventually this will be a real device. . Added concept of scheduling quanta to the timer system. Also added means of setting the minimum useful scheduling quantum and clamping all quanta to that value. . Changed interleave/boost handling to use scheduling quanta instead of timers. . Re-inlined core attotime functions. This makes a significant difference when running with high interleaves. . Changed core cycle computations to use div_64x32 instead of full 64-bit divides. This involves tossing a few bits of resolution at divide time, but should make no real difference in practice. - Compiling: Added include files for many drivers that never bothered before 0.128u2 - New games: Buena Suerte '94 and Ruleta RE-900 - New Working games: Virtual Mahjong 2 - My Fair Lady - New Non-Working games: Joker's Wild (encrypted) - New clones: Power Instinct (USA) - New drivers: jokrwild.c and re900.c - I8051/MCS-51 CPU . Fixed split timer mode . No interrupts for timer 0 modes 0,1,2 while timer 1 in mode 3. . MCS51 core now supports 4 interrupt levels depending on CPU type . According to Philips, 80C31 is a 80C52 family member with 128K internal ram and no rom . Implemented CMOS features: Powerdown & idle . Added comments about special function registers on Philips 80C52 . Cleaned up reset routines . Fixed INT0 & INT1 interrupt line handling . Finally move cpu/i8051 to cpu/mcs51, rename files and some constants . Quotes from the documentation added to the source as well . Started DS5002FP integration - M6502 CPU: Synchronized 6502 disassembly with CPU core - NEC CPU core improvements . Removed another speed hack in the NEC core . Renamed "FETCH" to "FETCH()" (macros used as functions should look like functions) . Preparation for opcode prefetch timing . Improved prefetch timing calculation . Prefetch timing now also used by V20 and V33 . Moved some static variables into cpu context . nec_reset now explicitly clears context variables . All cpus now share nec_execute - Discrete sound . More Discrete module optimizations . Added optimized custom mixer to Donkey Kong . Fixed GCC 4.3 "array bounds exceeded" error in disc_flt.c - NES sound (cham24.c, dkong.c, multigam.c, playch10.c, punchout.c and vsnes.c) . Updated NES PCM DMA to read data through the CPU address map . Fixed NES APU to work with high sample rates (don't know the bug #) . Fixed missing sound channels in playch10.c, punchout.c and vsnes.c (ID 00893) - YM2608/2612 sound: Applied latest fixes/discoveries - MC6845 CRT: Fixed skewing and display area - expro02.c: Fixed dipswitches and added DIP locations in all Gals Panic sets and Fantasia. A little driver clean up. - jalmah.c . Fixed tilemaps paging/tilemap positioning . Fixed a protection issue in Mahjong Daireikai, not giving correct colors for the girls in-game and a rom-loading issue. . Fixed 'ZA' sound banking behaviour, this fixes at least the sound in Mahjong Kakumei 2 . Removed VIDEO_EOF and added a TIMER_DEVICE_CALLBACK function for MCU simulations . Added WIP code for the priority system . Added a NO_DUMP for the MCU for all the sets - m72.c: Fixed tilemap group 2 priorities - magicfly.c . Added DAC sound support to magicfly and 7mezzo . Hooked coin counters to magicfly and 7mezzo . Inverted the graphics banks to be straight with the hardware accesses . Updated the memory map description and technical notes . Added game notes and documented the test/settings/bookkeeping modes - naomi.c . Implemented the NAOMI RTC and there are a few verbose messages about transfers not implemented yet. . cvs2gd stops looping forever. However with no 3D emulation nothing is shown on the screen. - neodrvr.c . Updated NeoGeo game PCB infos . Renamed p's in kof2000n to correct chip label . Renamed v's in mahretsu to correct chip label, readded 128k m1 from MAME 0.34b6 / s1 from older dump . breakrev: Renamed c's to correct chip label, added correct c5/c6 . Marked mslug3h MVS AND AES VERSION . Marked mslug4 2nd revision, added mslug4 1st revision missing set comment . Marked trally MVS AND AES VERSION . Marked ncombath MVS AND AES VERSION . Marked sengoku MVS VERSION . Marked superspy MVS AND AES VERSION . Marked mutnat MVS AND AES VERSION - peplus.c: Changed VBLANK to irq0_line_assert and added a CLEAR_LINE in the driver. This greatly increases speed on all video slots. - re900.c . Reworked inputs to allow 6 players through a selector . Hooked all lamps (even the ball simulator array) . Added a internal layout and support for external artwork . Extended the hardware to support Buena Suerte '94 . Cleaned up the driver - toaplan2.c: Added save state support to all games - twin16.c: Fixed wrong sprite-background priority (video\twin16.c) (ID 02268) - Alien Command: Fixed sound, hooked-up generic inputs and added some notes (game not yet working) - BanBam: Re-added 'Freeze' dipswitch (ID 02199) - Beast Buster: Fixed service mode issues (the game freezed at a black screen after you calibrated the guns and wanted to exit) - Chelnov: Changed the coinage settings and swapped coin A mech with coin B to match the behaviour of Chelnov (world) PCB - Funny Mouse: Fixed wrong colors (ID 02605) - Jan Jan Paradise 2: Fixed wrong background color (ID 02042) - Joker's Wild (encrypted): Fixed graphics to 2 bits per pixel - Legend of Hero Tonma: Improved MCU emulation in clone lohtb2 (ID 02587). The whole startup cycle now works. No more timeouts and erratic behavior. lohtb2 will however not display the "Warning" screen due to a priority issue. With color/attribute of 0x80 in videoram at 0xd0000 and 0xd8000, videoram at 0xd80000 will be displayed. Some tilemap guru has to look into this. - Macross Plus: Added palette fading effect on Macross Plus Banpresto logo screen (and black on some screen transitions). Quiz Sailor Moon doesn't use that register. - Magic the Gathering: Changed game to use (hopefully correct) roms - Mirage Youjuu Mahjongden . Added sound banking to the driver . Cleaned up the oki1/2 sample rom loading - Miss Bubble 2: Removed parent clone relationship between missb2 and bublbobl. We don't usually make the 'korean hacks' as clones as they have very little to do with the original releases except for the stolen cpu code. GFX/Sound/Gameplay are completely redesigned. - Polygonet Commanders . Turned off network IRQ. Game now boots without "network error". . Hooked up palette RAM . Improved text layer emulation (flip bits still missing) . Fixed visible area. FBI logo and color test now display properly . Rewrite of the Motorola DSP56k CPU core . Partially implemented inc24, asl4, bcc, brkcc and doForever ops . Added code for parallel address register update . Partially implemented tfr op . Polygonet now allows test mode to be run for a few seconds. Most IO is now known, though coin2 is still a mystery. . Partially implemented move, asr4 and mpy ops - Renegade: Fixed game freezes after title screen (ID 01679) - Street Fighter Zero 2 Alpha: Removed parent clone relationship from "Street Fighter Zero/Alpha 2" and "Street Fighter Zero 2 Alpha" - Success Joe: Fixed MSM5205 ADPCM and sound communications - Super Chase: Changed ES5505 clock rate (ID 02011) - Super Spacefortress Macross II: Fixed sound after stage 1 (ID 00224) - Virtual Mahjong 2 - My Fair Lady: Removed the GAME_NOT_WORKING flag. Apparently the game gives a black screen (either test mode and in-game mode),but let it wait for about 10 seconds and the game will load everything.This is because of a hellishly slow m68k sub-routine located at 54c2. Likely to not be a bug but an in-game design issue. Micronet programmers had the "great" idea to *not* use the ST-V input standards, infact. - Dipswitch fixes in acommand, ambush, arabian, astrof.c, banbam, bionicc, chelnov, cop01.c, dreamwld, exprraid, expro02.c, gyruss and spaceint - Description changes of Ghox (Spinner with Up/Down Axis) and Ghox (8-Way Joystick) - MAME: Fixed wrong sector size at CD_TRACK_MODE2 conversion routine (ID 02456) - Compiling . Added missing const/statics, added/removed entries in header files, and fixed a few potential multisession issues by explicitly adding initializers. asic65.c has significant changes to accomodate using a struct instead of 16 variables, otherwise the changes are modest and obvious. . Modified src2html to use a template source file instead of hard-coding to the MAME site. Changed from explicit styles to classes. . Fixed GCC 4.3 "array bounds exceeded" error in disc_flt.c 0.128u1 - New games: Grudge Match (Yankee Game Technology) - New Working games: Double Dealer, Mirage Youjuu Mahjongden, Super Megatouch IV (9255-41-07 ROG, New Jersey version) and Yumefuda - New Non-Working games: 2x 'Magic the Gathering: Armageddon' and P's Attack - New clones: Egg Venture (Release 8), 2x Fire Shark (Korea), Kick for the Goal, The King of Fighters 2002 (bootleg), Police Trainer (Rev 1.3B Newer) and Seibu Cup Soccer (set 2) - New drivers: megadriv.c and psattack.c - I8051 CPU (MCS51/I8051 improvements) . Improved serial port timing . Better infrastructure for adding more variants like DS5002 . Fixed port reading . Rewrote Macros for better readibility . Fixed and rewrote Interrupt handling . Now returns INTERNAL_DIVIDER and adjusted cycle counts . Remove unnecessary and duplicated code . Remove unnecessary functions . Rewrite to have sfr-registers stored in int_ram . Debugger may now watch sfr-registers as well . Implemented interrupt callbacks (HOLD_LINE now supported) . Runtime switch for processor type - remove ifdefs . Internal memory maps for internal rom versions (internal ram now displayed in debugger) . More timer cleanups from manual . Fixed timer 2 interrupts . Implement serial mode 2/3 rx and tx clock handling . Remaining games checked and adapted to changes in cpu core . Added more variants 803X, 80CXX and AT89C4051 - M65C02 CPU: Fixed a subtle bug in the emulation where the result of the BIT instruction differs on the 65c02 (from the 6502), when executed in immediate mode. - AICA sound: Fixed sample addressing for the full 8 MB - MC6845 CRT . Added cursor and display enable skewing (affected drivers: calomega.c, carrera.c, coinmstr.c, couple.c, funworld.c, madalien.c, magicfly.c, miniboy7.c, mpu4drvr.c, murogem.c, nyny.c, pmpoker.c, r2dtank.c, rockola.c, spiders.c, ssingles.c, usgames.c and merit.c) . Added preliminary support for SY6545-1's transparent addressing mode . Hsync should be pulsed even when vsync is active - cps3.c: Removed per-game hacks from CPS3 (moved to DMA callback in SH2 core). Removed Speedups from CPS3 / PsikyoSH, while they do still give a decent speed boost they're not really needed with the DRC and just clutter the code. - fuukifg2/3.c: Fixed recently regressed raster interrupt issues in the drivers - limenko.c . Fixed issue with core allocation of ram (duplicate savestate) in the driver . Replaced I8051 CPU with AT89C4051 in Spotty - megadriv.c . Porting over some code to attempt to get it working again, bit by bit. . Fixed 68000, Z80, YM2612 and SN76496 clock speeds in megaplay.c, megatech.c, Aladdin (bootleg of Japanese Megadrive version) and Super Street Fighter II - The New Challengers (Arcade bootleg of Japanese MegaDrive version) - micro3d.c: Serial port communication between Main CPU and Sound board works. Sound board now works. - namconb1.c: Fixed C75 BIOS loading for big-endian targets - neodrvr.c: Minor NeoGeo cleanups - segas18.c: Fixed MCU maps - sslam.c . Many fixes to the driver . Replaced I8051 CPU with I80C51 in Power Balls (Super Slam conversion) - stv.c . Cleaned up STV rom loading a bit . Make some work for 'Magical Zunou Power', still not working - tnzs.c: Renamed sets. Fixed dipswitches for all games (2 remaining unknown Dips in 'plumppop' and 'jpopnics' though). Added many notes. - videopkr.c . Fixed issue with core allocation of ram (duplicate savestate) in the driver . Replaced I8051 CPU2 with I8031 in clones Baby Poker and Baby Dado - Avenging Spirit: Added 82s147 PROM to clone Monky Elf (Korean bootleg of Avenging Spirit). - B.Rap Boys: Fredumped OKI6295 sample roms - Blocken: Fixed wrong enemy voices (ID 00359) - Breakers Revenge: Changed game to a parent set - Card Line: Replaced I8051 CPU with I80C32 (game still broken, we need the exact and complete CPU name) - Cloak & Dagger . Fixed items can't pick up (ID 01702) . Added 82S129 prom (vertical timing) - Cosmic Alien: Added samples support and DAC sound - Crush Roller: Fixed broken dipswitches (ID 02577) - Cube Quest . Increased interleave factor to eliminate LDP timeout countdown flicker . Fixed game crashes MAME when saving state (ID 02140) - DakkoChan House: Improved gfx (the priority are ok but there are various offset) - Double Dealer (Game now playable) . Added YM2203 sound . Correct wrong DIP-SW . Completed protection vectors . Fixed video emulation . Added coin setting simulation - Go Go! Mile Smile: Fixed inserting coins or pressing start has no effect at the continue screen (ID 00468) - Kyuukai Douchuuki: Fixed wrong music and sound effects (ID 00436) - Legend of Hero Tonma: Added full emulation of protection device to clone (bootleg, set 2). Samples are now piped through the MCU. - Megatouch IV: Fixed clone Super Megatouch IV (9255-41-07 ROG, New Jersey version) (Game now playable). Added 32k NVRAM file (megat4sn.nv). - Mirage Youjuu Mahjongden (Game now playable): Fixed OKI6295 clock speed - Polygonet Commanders (game now passes its memory test and uploads a new program) . Rewrite of the Motorola DSP56k CPU core . Complete rewrite focusing on legibility and extensibility . 27/121 opcodes (mostly) implemented . Bugfix for reset status of interrupt priority bits . Bugfix for disassembly of register-to-register parallel data move . Added additional branch, move and bitfield ops . Implemented tst, or, jsr, rti, tst2, and 2 new movec ops . Added opbase handler to Plygonet driver - Sokonuke: Fixed game hangs after you choose stage (ID 01722) - Ultimate Mortal Kombat 3: Changed game to a parent set - Vs. Janshi Brandnew Stars: Fixed screens - Yumefuda (Game now playable) . Added flip screen/cocktail support . Completed dipswitches (manual-wise) and made better comments - Dipswitch fixes in crush, ddealer, tnzs.c and yumefuda - Description changes of DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000), Magical Zunou Power (J 961031 V1.000), Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K), Same! Same! Same!, Same! Same! Same! (2 player alternating ver.), Stress Busters (J 981020 V1.000) and Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006) 0.128 - New Working games: Good (Korea) - New clones: Giga Wing (Brazil 990222) - Laser Disc . Fire Fox: Connected audio enables and improved volume balance so you can hear the speech chip. Fixed TMS5220 speech chip frequency. . Added new tool ldresample to assist in resynchronizing audio tracks in a CHD with frames. Currently still WIP but useful if you know what you're doing. - 6821 PIA: Added function to get the status of CA2 - Hacha Mecha Fighter: Marked background rom as a bad dump (the first half of the rom is missing, the game uses 2 banks, most of the graphics needed aren't present). - Moon Shuttle: Fixed wrong speech in clones (Japan) and (Japan set 2) (ID 02531) - Phraze Craze / (Sex Kit): Fixed access violation (ID 02539) - Poker 4-1/Pull Tabs: Improved button-lamps layouts to look more realistic - Yumefuda: Fixed colors and added two new palette functions in generic.c: paletteram_xRRRRRGGGGGBBBBB_split1_w() and paletteram_xRRRRRGGGGGBBBBB_split2_w() (used by Yumefuda) (ID 02573). - Dipswitch fixes in 'good' 0.127u8 - New games: 2x Buena Suerte, Good Luck, 2x Super Loco 93 and 3x Witch Card - New Working games: Mahjong Daireikai and Otogizoushi Urashima Mahjong - New Non-Working games: Royale (ver.X) - New clones: 2x Jack Potten's Poker and Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) - SH-2 CPU . Fixed SH2 DRC's handling of internally generated IRQs . Fixed compiling in interpreter mode - expro02.c . Simplified EXPRO-02 decryption . Moved Fantasia to the Expro02 driver, however, the extra layer is misplaced on it. Scroll regs probably differ from the original. Changed 68000 CPU1 clock speed and input to 2 buttons 4-way joystick. - jalmah.c . Mahjong Daireikai and Otogizoushi Urashima Mahjong - Games now playable . Fixed a start-up crashing bug in Mahjong Channel Zoom In, Mahjong Daireikai and Otogizoushi Urashima Mahjong . Fixed Mahjong Daireikai pseudo-random number generator . Changed region gfx4 to gfx2/3 in Otogizoushi Urashima Mahjong - neodrvr.c . Sorted OEM / bootleg sets . Renamed roms on non OEM / bootleg sets to ONE naming sheme . Renamed functions . Cleaned up bootleg sets . Added some comments . Renamed sma in garou/garouo, added comment. - pmpoker.c (1st part of the driver rewrote) . Added discrete sound support to Golden Poker hardware games based on schematics . Added discrete sound support to Potten's Poker hardware games based on PCB analysis . Added discrete circuitry diagrams for both hardware types . Adjusted the CPU adressing to 15 bits for pmpoker/goldenpkr hardware . Adjusted the CPU adressing to 14 bits for pottnpkr hardware . Rewrote all the ROM loads based on these changes . Defined MASTER Xtal & CPU clock . Fixed the visible area based on M6845 registers . Improved the lamps layouts to be more realistic . Renamed/cleaned all sets based on code/hardware analysis . Added intensity bit to the color system . Implemented the blue killer bit for Witch Card hardware . Implemented the extended graphics addressing bit for Witch Card hardware . Added proper visible area to sloco93 . Rewrote the graphics & color decode system based on schematics. No more patched codes. . Changed the char gfx bank structure and rom load according to the new routines . Adjusted the amount of color codes and PROM region size accordingly . Updated all notes - psikyosh.c: Hook up VBL IRQ hack - segac2.c . Updated driver to use updated megadriv code . Fixed missing colors and other graphics errors in Ichidant-R and Tant-R (ID 02521) . Fixed visible area - Backfire!: Fixed Coin 1+2, Service1 and Service Mode mapped twice (ID 01716) - Carrier Air Wing: Added B-Board PAL dumps - Columns II: Fixed graphic garbage (ID 00978) - Combat: Fixed credits do not register in clone Catch-22 (ID 02529) - Cube Quest . Changed laserdisc override logic. It's still a little hacky but this works better than the previous attempt. . Removed custom sound in favor of individual DACs (16x) . Simplified palette management logic . Hooked up the "disc on" signal . Fixed Cube Quest showing its laserdisc footage under black regular graphics in demo (ID 02522) - Double Dealer . Added most of the protection work. It appears to use a funky video register setting involving locations $8c1e0-8c1ef range for cards movements so it isn't playable yet. . Added input and missing 512k gfx2 rom . Fixed visible area and dipswitches - Decathlete: Added correct user1 rom to set (JUET 960709 V1.001) - Donkey Kong . Fixed game crashes after quiting (ID 02511) . Artwork and gameplay area are getting squished/distorted (ID 02512) - Fire Fox . Cleaned up video implementation . Proper sprite/tile priorities . Adjusted X offset to match screenshots . Converted to tilemaps . Fixed rom loading (sprites) - Gravitar: Fixed unable to locate input port 'DSW2' in clone Lunar Battle (prototype, earlier) (ID 02532) - Pirate Ship Higemaru: Fixed rom names - Legend of Hero Tonma: Fixed clone (bootleg, set 2) stops at PCB test (ID 01821) - Lethal Enforcers II: Fixed gun reload (ID 00106) - NBA Play By Play: Fixed 'CPU audio: PULSE_LINE used with level-detected IRQ 1' (ID 02533) - Polygonet Commanders: Fixed duplicated inputs (ID 01867) - Prop Cycle: Fixed analog input roll over problem (ID 01447) - Sol Divide: Fixed missing music (ID 02211) - Soukyugurentai: Removed speedups, they break the game (make it too slow) the SH2 DRC is sufficient. - Star Guards: Fixed duplicated inputs (ID 01708) - Trivia (sms): Large update to comments in driver for SMS Manufacturing boards: Documented how the input/output ports are hooked up, and what the PALS do, still need to document the video output port and add the smssshot roms, and actually hook stuff up (like the Z80) based on the comments. - Xexex: Fixed game checks halt with "VERSION ERROR" (ID 02528) - Yes/No Sinri Tokimeki Chart: Updated dipswitches and inputs - Input/DIP port: Added DIP locations to items in the driver and cleaned up some of the comments mentioning duplicate dips configurations. Not fully understanding how the FREE PLAY was implemented, I left that not to show a location. - Dipswitch fixes in ddealer, fantasia, plygonet, stargrds and yesnoj - Description changes of Jack Potten's Poker (set 1) + (set 2) + (set 3) + (set 4) and Otogizoushi Urashima Mahjong - MAME: Fixed assertion in cpuint.c (ID 02530) 0.127u7 - New Working games: Astropal and 'Sonic Blast Man 2 Special Turbo' - New clones: Armored Warriors (USA 940920), Baby Dado, Baby Poker, Decathlete (JUET 960709 V1.001), Megatouch III (9255-20-07 ROG, New Jersey version), Megatouch 5 (9255-60-07 RON, New Jersey version), Mortal Kombat 3 (rev 1 chip label p4.0) and Super Megatouch IV (9255-41-07 ROG, New Jersey version). - Laser Disc . Cleaned up and normalized the three existing laserdisc emulations. Removed obsolete code from the laserdisc core. . Added new functions for building device-relative tags. Changed machine configuration builder to use these functions. Also changed the laserdisc player devices to use them. Updated Z80 CTC/SIO code to assume that the CPU provided for the clock is relative to the device that the CTC/SIO belong to. Updated memory code to assume that regions and devices referenced by the memory map are relative to the device the associated CPU belongs to. . Added 2nd Z80 (2.5MHz) to astron, dlair, esh, galaxyr, gpworld, istellar, lgp, spaceace and superdq . Added correct overlay positioning, font and behavior to PR-8210 emulation . Added preliminary LD-V1000 emulation. Not fully working yet, but mostly there. - 68000 CPU: Fixed a number of regressions due to recent 68000 IRQ changes - I8051 CPU: Fixed timers and the AJMP opcode to take 2 bytes instead of 3 - ST-0016 (macs.c, speglsht.c, srmp5.c and st0016.c): Optimized ST-0016 RAM tile behavior to lazy decode the graphics, giving a big speed boost to some of the mahjong games (video\st0016.c). - Z80 DAISY . Made the Z80 daisy chain aware of referencing device-specific devices . Updated Z80 CTC/SIO code to assume that the CPU provided for the clock is relative to the device that the CTC/SIO belong to. - ampoker2.c: Improved button-lamps layout to all games in the driver. Now buttons are more realistic. - exidy.c: Fixed accessing a certain portion of memory in the debugger causes crash (fax, hardhat, mtrap, pepper2, teetert, venture and clones) (ID 02502) - merit.c: Fixed unable to locate input port 'IN3' in most Merit sets (ID 02477) - metro.c: Fixed games doesn't start in dokyusei, dokyusp, gakusai and gakusai2 (ID 02324) - model1.c: Fixed VSync - mpu4drvr.c: Fixed display core functions in mpu4utst, mpu4tst2 and mpu4met0 (ID 02321) - namcos22.c: Fixed garbled colours and graphics in all sets (ID 02489) - neodrvr.c (cleanup) . Sorted OEM / Bootleg sets . Renamed roms on non OEM / Bootleg sets to ONE naming sheme . Renamed functions . Added some comments . Minor optimized the Neo-Geo sprite clearing code . Fixed a memory leak in some Neo-Geo games (ID 02476) - nss.c and snesb.c (machine\snes.c) . Fixed problem with OAM address reset at start of vblank . Added emulation for SNES special chips DSP-2 & OBC-1: Added sources snesdsp2.c & snesobc1.c. Removed special chips detection from MAME. Modified memory handlers to account for the new chips. - segas24.c . Driver cleanup (fixed games freezes (ID 02292)) . Correct memory map for both CPUs . Reduced RAM size to 256k . Correct video timings . Renamed regions . Proper interrupt handling . Fixed magic latch in Dynamic Country Club, this fixes game freezes (ID 02292 and 00081) or hangs during playing with an access violation error (ID 00998). - snookr10.c . Reworked the button-lamps matrix system . Documented both output ports . Connected coin in, key in and payout counters . Improved the lamps layout to be more realistic . Updated technical notes - videopkr.c . Added sound support to Baby Poker game . Reworked the color routines . Added new color routines for Baby games . Redumped main, tiles and prom roms in Video Cordoba (InterFlip 1987) . Added color switch (it changes background color in some games) . Added "hopper full" switch support (for diverter function) . Added diverter function decoder . Added full functional mechanical counters decoding . Added 7 Segment decoder and 7 Digit Counter functions . Added button-lamps layout & mechanical counters simulation on layout . Mechanical counters to layout: Coin-In, Coin-Out and Coin to Drop . Added NVRAM support to mechanical counters . Mapped "Hand Pay" button for Baby Games . Added decoder to Jackpot mechanical counter . Added tower lamps to Baby games layouts . Reworked layouts for Baby games - Blazing Tornado: Fixed broken sound (ID 02221) - Bubble Memories: The Story Of Bubble Bobble III: Fixed a demonstration screen trouble in clone (Ver 2.4O 1996/02/15) (ID 02482) - Dungeon Magic: Fixed a title screen trouble in clone Light Bringer (ID 02498) - Egg Hunt: Fixed palettesize - Enforce: Fixed wrong road layer colors (ID 02458) - Gee Bee: Fixed missing middle swinging gate (ID 02469) - Guerrilla War: Added missing support of normal joystick for player 2 in clone (Joystick hack bootleg) - Gunlock: Fixed a title screen trouble in Gunlock and clone Ray Force (Ver 2.3J 1994/01/20) (ID 02483) - The King of Fighters 2002: Fixed access violation in clone kf10thep (ID 02475) - Legend of Hero Tonma: MCU protection now working for clone (bootleg, set 2): Hooked up I8751 MCU (16MHz). Synchronized protection RAM writes with timer callbacks. Removed speed hack from NEC CPU emulation, which breaks the protection code. - Lucky 74: Improved the Lucky 74 button-lamps layout to be more realistic. - Megatouch 5: Added correct 1MB cpu rom ($0) - Quiz Ghost Hunter: Fixed game screen turns black without displaying words/pictures after you do a metamorphose (ID 00989) - Quiz Rouka Ni Tattenasai: Fixed not working coin 1+2 (ID 02460) - Quiz Syukudai wo Wasuremashita: Fixed crash (ID 02467) - Sengoku Mahjong: Fixed old regression bug that made the controls not work when the V30 CPU core was converted to 16-bit. Specifically, the game accesses the multiplexer with a word write instead of a byte write. - Sonic Blast Man 2 Special Turbo (SNES bootleg) (Game now playable) . Added rom decryption . Patched protection checks . Mapped extra inputs - Space Duel: Added the P10/11 dipswitch (only 4 switches instead of the standard 8) - Thunder Ceptor: Fixed game crashes out when run as the second game (Multisession bug) (ID 02266) - TX-1: Fixed quits out on second launch (ID 02439) - Input port: Checked inputs and dipswitches via Z80 code analysis for bermudat, bermudaj, chopper, choppera, chopperb, legofair, fsoccer, fsoccerj, fsoccerb, gwar, gwarj, gwara, gwarb, ikari, ikaria, ikarinc, ikarijp, ikarijpb, psychos, psychosj, tdfever, tdfeverj, tdfever2, victroad, dogosoke, dogosokb, worldwar and bermudaa. - Dipswitch fixes in astropal, sblast2b, spacduel, snk.c and videopkr.c - Description changes of Ikari (Japan No Continues) - MAME . Removed unneeded UI keys by removing the constants. Readded UI_ON_SCREEN_DISPLAY to be changed again in the "Inputs" menu. . Fixed all sets with using 2+ monitors: Crash to desktop on second play (ID 02488) . Fixed various games with: CPU x: PULSE_LINE used with level-detected IRQ y (ID 02480) . Fixed 64 bit build fails (ID 02468) . Fixed a memory leak in various games (ID 02479) . Fixed access violation in various games (ID 02470) 0.127u6 - New Working games: Gals Panic (US, EXPRO-02 PCB) and Pit Boss - New clones: Capcom Sports Club (Euro 971017), The King of Fighters 2003 (set 2) and Ms. Pac-Man/Galaga - 20 Year Reunion (V1.04) - Laser Disc . Removed render_container_set_palette_alpha() hack. Now the alpha value can be set directly in the palette entry and will be respected for laserdisc overlays. . ldverify improvements: Uses back-end decoding for CHDs directly to bitmaps. Changed min/max detection to only check 0/255. Fixed off-by-one bug in min/max computation. Separated white code detection from frame number detection. Track cadence with frame numbers as well as white codes. Use vbiparse.h constants where appropriate. . Simplified core deinterlacing logic based on availability of pre-decoded VBI data. Added plumbing for allowing for overall brightness/contrast/gamma corrections on laserdisc video. Fixed bug when combining brightness values in the palette logic. . LD-V1000: Added some (compile-time removed) information about the ROM and memory map. - 68000 CPU: Changed 68000 interrupts to only trigger during execution. This means that multiple changes without any execution will be seen as atomic. It also means that PULSE_LINE no longer works for signalling IRQs. - Z80 CPU . Converted the Z80 PIO implementation into a device . Changed Z80 PIO interrupt callback to pass a device instead of the machine. All device callbacks should provide the device. . Converted Z80 CTC to a proper device. Updated all drivers. Added new item to the interface which is the tag of a CPU to take the base clock from. . Converted Z80 SIO to device. Updated drivers accordingly. . Changed Z80 daisy chain interface to simply be a list of devices in the chain. Interrupt callback functions are now fetched via the standard device interface and referenced by the daisy chain code. - 8255 PPI (cleanup) . Added MDRV_PPI8255_ADD, MDRV_PPI8255_RECONFIG and MDRV_PPI8255_REMOVE macros; updated all drivers to use them. . Changed callbacks to device read/write handlers intead of machine read/write handlers; updated all drivers accordingly. . Normalized function and variable names to be lower_under . Removed a number of redundant interfaces from the galaxian/scramble line of games - 8080bw.c: Fixed watchdog behaviour in the 8080bw driver verified from schematics (60 Hz signal clocks two LS161. Ripple carry will reset circuit, if LS161 not cleared before). This fixes watchdog reset in invadpt2 and sicv (ID 01090). - merit.c . Implemented palette & colour decoding from crt 200 schematics (ID 02330) . Hooked up 6845 . Hooked up lscnblk line . Clocks from schematics (Fixed AY-3-8910A clock speed, visible area and VSync) . RAM palette moved to static var. This should not be in RAM. . Added save state support . Fixed Pit Boss (game now playable) . Fixed gfx rom loading in Phraze Craze - neodrvr.c . Updated Neo-Geo game PCB infos . Updated system set to what is found on NEO-MVH MV1FS . Added notes . 2020bba: Marked game as MVS version, it is also a AES version . kof95/kof95a: Renamed p1 to correct chip label and added note. . kof97: Marked game as MVS version . kof98/kof98n: Renamed m1 in kof98 to correct chip label. Renamed m1 in kof98n to correct chip label (kof98n should be latest revision, cart had very high SN 1xx.xxx). . ms5pcb: Hooked up BIOS dip. Renamed BIOS to correct chip label. Renamed p1 / p2 to correct chip label, marked NO_DUMP. Added note. . samsho3/samsho3a: Renamed p1 to correct chip label. Marked samsho3h as AES version. . samsho5: Correct text layer size. Marked samsho5h as AES version. . sonicwi2: Added correct sized rom 075-v2.bin - nss.c: Changed the NSS/SNES loading code to support more cart/memory layouts and generally be more in line with the MESS way of handling SNES cartridges. Also some minor NSS/SNES cleanups. - othunder.c: Fixed irqs in the Othunder driver, all sets shows a black screen (ID 02194) - segaxbd.c: Fixed main irqs, this fixes 'A.B. Cop' just shows a black flickering screen and 'Racing Hero' gives an error and crashes on exit (ID 02440) - system1.c . Added DIP location in all games . Moved in generic Cabinet DIP for eliminate the redundancy . Better implementation of generic input - taito_f3.c: Added pen_mask tile attribute to the tilemap system. Implemented dynamic tile & sprite bit depth in the Taito F3 driver. This fixes the color regression in pbobble3, pbobble4, ringrage and clones (ID 02024). - warpwarp.c . Reworked Gee Bee, Navarone and Warp Warp INPUT_PORTS definitions by using conditional dipswitches. . Added INPUT_PORTS definition for clone Gee Bee (F.lli Bertolino license), this game has specific "Replay" settings (this fixes unable to coin - always coin lockout (ID 02323)). - video\kaneko16.c: Added new tilemap scroll position function (is it different for expro02.c and better to fix current one?) (video\kaneko16.c) (drivers: expro02.c, galpani2.c, galpanic.c, kaneko16.c and sandscrp.c) - Cube Quest: Fixed edge case bug in the 'Line CPU' (CPU3) involving adding with carry - Fire Fox: Changed to RGB32 to allow for mid-screen palette changes. Because of the above change, the hacky alpha manipulation that was previously required is no longer necessary; the alpha is set directly in the palette entry. - Gals Panic (US, EXPRO-02 PCB): Game now playable. Fixed dipswitches and added graphics decode routine (probably it can be simpler). Fixed gfx3 rom loading. - Paradise 2 Deluxe: Added correct gfx3 rom - Polygonet Commanders: Added additional Motorola DSP56k reset behavior - Raiden Fighters 2: Fixed clone Raiden Fighters 2 - 2000 (China), which just shows a black screen and fails to boot (ID 02441). - Super Basketball: Fixed dipswitch reading (ADDRESS_MAP) - Input port: Added mechanism to generically specify input port tags in place of machine\device handlers. Unfortunately, the implementation relies on sentinel values to distinguish a port tag versus a pointer to function code. However, since this is a very common situation, it will hopefully be worth the slight grossness. New macros are defined in inptport.h: DEVICE8_PORT(name) - use this to specify the name of a port to read wherever a read8_device_func would normally be used. MACHINE8_PORT(name) - same as DEVICE8_PORT except it can be used wherever a read8_machine_func would normally be used. IS_HANDLER_PORT(ptr) - accepts a read8_device_func or read8_machine_func and determines if it is an actual function or a reference to a port; intended for use by devices that accept DEVICE8_PORT-style functions. CALL_DEVICE8_READ(ptr,device,offset) - either calls through the given read8_device_func, or calls input_port_read with the appropriate tag, depending on the result of IS_HANDLER_PORT; intended for use by devices that accept DEVICE8_PORT-style functions. CALL_MACHINE8_READ(ptr,machine,offset) - same as CALL_DEVICE8_READ except for read8_machine_func. Note that in order for these to be useful, the consumer of the function pointer must be enhanced to use the CALL_* macros above instead of directly calling through the function. So far, only the 8255 PPI is set up to do this, as part of the cleanup below. Also note that the sentinel value is currently 4 consecutive 0 bytes; this may need to change in the future, in either length or value, so it is important to stick to the macros above. - Dipswitch fixes in expro02.c, galsnew, neodrvr.c, system1.c and warpwarp.c - MAME . Added pen_mask tile attribute to the tilemap system. Implemented dynamic tile & sprite bit depth in the Taito F3 driver. . Changed palette objects to support global brightness/contrast/gamma in addition to per-group and per-entry controls. . Renamed palette_set_brightness() to palette_set_pen_contrast() for clarity. . Changed MAKE_RGB macro to set the alpha to 255 instead of 0. Updated palette.c to preserve the alpha when transforming palette values. These changes should be transparent to almost all drivers and rendering (ha-ha), but there may be an occasional instance where a driver relied on the alpha being 0 in the system palette. This also means that the palette_set_color() function preserves any alpha value that is set. . Removed render_container_set_palette_alpha() hack. Now the alpha value can be set directly in the palette entry and will be respected for laserdisc overlays. . Changed render_texture_set_bitmap() to accept a palette object instead of a palette index. The renderer remains optimized for the system palette but will work if objects have their own palette as well. . Changed renderer to permit palettes for RGB and YUY textures. If specified, these palettes specify a 32-entry (RGB15) or 256-entry (others) lookup for applying additional brightness/contrast/gamma on a per-texture basis. . Plumbed machine parameters through the renderer. Removed need for deprecat.h. . Removed rescale notification. It never really worked that well and violated proper layering. . Fixed -aviwrite which produces faulty files (ID 02442) and files over 2 gigs sometimes get cut off (ID 02410) . Removed unneeded UI keys: UI_ON_SCREEN_DISPLAY (there is now a "Slider Controls" menu), UI_ADD_CHEAT, UI_DELETE_CHEAT, UI_SAVE_CHEAT, UI_WATCH_VALUE, UI_EDIT_CHEAT, UI_RELOAD_CHEAT (these keys belonged to the old cheat engine). - Debugger: Added checks in the debug build to catch people who try to use PULSE_LINE for non-NMI and non-RESET input lines on CPUs that no longer support direct interrupt generation. Over time expect this list to increase. 0.127u5 - New games: Chanbara and Paradise 2 Deluxe - New Working games: TX-1 (Atari/Namco/Taito license) (parent set has bad roms) - New Non-Working games: Rapid River (RD3 Ver. C) - New clones: GameCristal (version 2.613) and Time Crisis 2 (TSS2 Ver. B) - New drivers: chanbara.c - I8039/MCS-48 CPU: Fixed AF calculation - 8080 CPU: Fixed score/credit counts problem and other variables in games with a 8080 CPU (cpu\i8085\i8085.c) (ID 02322) - G65C816/M37710 CPUs (namcos22.c, nss.c and snesb.c): Fixed disassembly of BRL - Laser Disc: Added Philips 22VP931 laserdisc emulation (Fire Fox), which is mostly working. Communication works fine and basic searching/playback/skipping is functional. Still a bit glitchy. - Timer system (emu\timer.c): Added generic timer devices, which simply allocate a timer but don't prime it. This is the preferred method for allocating timers and may eventually be the only mechanism for doing so in the future. - dkong.c: Moved dkong memory_region calls (video\dkong.c) into initialization routines - leland.c: Fixed AY8910/12 output combining. This fixes speech quality regression in wseries, basebal2, dblplay and strkzone (ID 02191). - namconb1.c (NB1/NB2 update): Fixed default dips, added DIP locations and used latest idioms. IMPORTANT: You must delete all cfg and nv files for these games! - namcond1.c: Fixed unable to coin/start games (ID 02254) - namcos23.c . Fixed text layer to show (palette is not right now) . Added Rapid River with very preliminary hardware support (GORGON). Added Rapid River PCB info. . Adjusted GORGON hardware MIPS clock to 133 MHz based on PCB info . Fixed sound CPU shared RAM. Communication not yet correct. - naomi.c . System show now the contents of the framebuffer if the 3D accelerator is not used so that now the atomiswave logo and messages are shown (if you wait enough). . Removed a maple bug, no more strange messages in 'Capcom vs SNK 2 Millionaire Fighting 2001'. . Improveed documentation of the communication registers with the DIMM Board . If DEBUG_VERTICES is defined as 1 the vertices sent to the tile accelerator are collected and then drawn connected by a segment to give a wireframe-like view of the scene. . Added newest NAOMI 2 BIOS (epr-23605c.bin) - neodrvr.c . Correct NeoGeo M1 decryption for all CMC50 sets (jockeygp, kf2k3pcb, kof2000, kof2001, kof2002, kof2003, matrim, ms5pcb, mslug4, mslug5, pnyaa, rotd, samsh5sp, samsho5, svc and svcpcb) . Moved memory_region() call (which is slow) out of core sprite loop in the NeoGeo renderer, giving a dramatic speed boost. - system1.c: More input cleanups - Buggy Boy Junior/Speed Buggy . Fixed palettesize . Buggy Boy/Speed Buggy (Cockpit): Fixed gfx rom loading and removed flags dispose. Added missing gfx6 rom bb6.224. - Fire Fox . Memory map is complete from schematics . Gutted laserdisc hacks in favor of actual laserdisc implementation . Fixed all CPU and sound clocks. Replaced M6809 CPU1 with M6809E. Added I8049 MCU rom. . Removed need for deprecat.h . Added Philips 22VP931 laserdisc emulation, which is mostly working. Communication works fine and basic searching/playback/skipping is functional. Still a bit glitchy. . Removed sprite to tile priority, it doesn't exist - GameCristal: Added new user1 rom (bios.bin - 256k) - Gee Bee: Fixed 0.126u3 copy/paste error in clone Gee Bee (Gremlin) - Grid Seeker: Fixed a priority error attract mode, where a stealth bomber is coming out of a hanger (ID 01187). - Naughty Boy: Added 7407 Hex open collector buffer to fixed RESNET palette calculation. The palette PROMs are connected to a 7407, which in turn is connected to the RGB output (ID 02156). - Player's Edge Plus (KE1012) Keno: Fixed lightpen not mapped in option (ID 02381) - Polygonet Commanders . Rewrite of the Motorola DSP56k disassembler . Removed arbitrary opcode groupings in favor of flat decode model . Fixed a number of small issues with unknown opcodes . Added the final ALU parallel move ops . Fixed branch relative offset decoding - Super Real Mahjong P6: Fixed game displays black screen, plays two NiLe samples every three seconds over and over again (ID 02258). - SWAT: Changed input to 8-way joystick - Tinkle Pit: Fixed displayed a debug messages on exit (ID 02259) - TX-1: Fixed gfx rom loading, removed flags dispose and fixed palettesize. - Dipswitch fixes in namconb1.c and system1.c - Description changes of 500GP and Time Crisis 2 (TSS3 Ver. B) - MAME . Changed rescale_notifier() to always allow rescaling for screenless drivers . Minor optimization to fillbitmap when non-zero fills are done . Fixed -listroms to know about device-specific ROMs - Compiling: Another pass to make static functions static, almost entirely affecting code added in the last few months to MAME. The fixes are the usual lot, changing enum definitions so they aren't declared, decorating dead code/declarations with #if...#endif, and of course, adding static where appropriate. In addition, fixed a bunch of UNUSED_FUNCTON symbols to be spelled correctly, which was didn't introduce. - Debugger: Fixed any set with multiple CPUs: Disassembler freezes when doing a Run on any CPU other than CPU 0 (ID 02280). 0.127u4 - New games: 2x Fire Fox - New Working games: Bombs Away (enemy planes still don't fire bullets properly) and X-Day 2 - New Non-Working games: Funny Land de Luxe - New clones: Hot Mind (adjustable prize), Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123), Pool 10 (italian, set 4), Tengai (World) and Three Wonders (hack?) - New drivers: firefox.c - Laser Disc . Support for Fire Fox. Still needs proper laserdisc support. Added Xicor X2212 NVRAM (machine\x2212.c) . Changed requirements for laserdisc CHDs to require a new chunk of metadata with pre-decoded frame information. Modified chdman to automatically produce this for CHDs that are of the appropriate parameters. To fix up existing CHDs, use chdman -fixavdata on the CHD. . Modified the laserdisc core to leverage the pre-decoded frame metadata, which is now required. This improves seek times when searching and allows the player-specific emulation access to the VBI data as soon as it would really be available. Changed update callback timing to fire just before the first line of VBI data would be read; at that point, the frame selection is assumed to be committed. . Changed laserdisc video parameters to position the screen area at the bottom rather than the top, since this corresponds more closely to standard line numbering. . Extended the vbiparse code to support pack/unpack, and to more fully document all the meanings of the VBI codes. . Updated ldplayer to support slow/fast forward movement, frame/chapter display and separate controls for scanning/stepping. . Cube Quest . Fixed overlay scaling to cover the whole screen . Converted Simutrek-hacked laserdisc emulation to using the actual MCU from the game, which in turn hands off commands to the PR-8210 MCU. This is still not 100% but is pretty close at this point and achieves the correct behaviors in most cases. . Added I8748 CPU5 and I8049 CPU6 with MCU rom (pr-8210_mcu_ud6005a.bin) . Converted PR-8210 emulation over to using the actual MCU from the laserdisc player. This MCU controls low-level functions such as slider position and laser on/off, and receives decoded vertical blanking data in order to make decisions. Removed old HLE behavior. Note that the overlay text is displayed via the UI; this is temporary and will be fixed shortly. . Added I8049 CPU with MCU rom (pr-8210_mcu_ud6005a.bin) to Cliff Hanger and clone (Alt), Cobra Command, Goal To Go, M.A.C.H. 3 and Us vs. Them. - dec0.c: Added DIP locations - epos.c: Improved dipswitch handling and added DIP locations - funworld.c . Driver improvements . Improved lamps layout for all games . Added Pool 10 pinout and DIP switches info . Updated technical notes - galaxi.c: Added lamps support + layout to Galaxi and Magic Joker (game has a good lamps sequence in the attract) - namcona1.c . Replaced M37710 CPU2 with M37702 in bkrtmaq, cgangpzl, emeraldj, emerldja, exvania, fghtatck, swcourt and tinklpit . Replaced 'Namco NA' sound with M37702 CPU2 and C140 sound and added real C70 BIOS (M37702 MCU rom, 16k) to Emeraldia, Knuckle Heads, Numan Athletics, Nettou! Gekitou! Quiztou!! and X-Day 2. - namconb1.c: Changed Namco NB-x to use real C75 BIOS, read controls the real hardware way. - namcos12.c: Fixed all games freezes (ID 02240) - sg1000a.c . Fixed refresh rate and interrupts (ID 02233) . Added 8255PPI and coin counter - zn.c: Fixed all games hang (ID 02249) - 10-Yard Fight: Fixed missing sound (ID 02248) - Argus: Added 2nd YM2203 sound - Arkanoid: Added correct colour proms to clone Tournament Arkanoid (US) and fixed rom names - Birdie Try: Added dipswitch settings from manual (ID 01897) - Bombs Away . Many improvements . Added game to the Psychic 5 driver . Changed region user1 to proms and fixed palettesize - Field Day: Fixed a source typo in the 40love driver of MAME 0.126u2 (Field Day and clone Undoukai doesn't start) (ID 02210). - Ikari Warriors: Fixed clones (Japan) and (Joystick hack bootleg), test screen now required to be cycled to enter game (ID 02242). - Indiana Jones and the Temple of Doom: Added redump of clone (Cocktail). There's sprite/playfield flipping issues, hence GAME_IMPERFECT_GRAPHICS. - Knuckle Joe: Fixed missing AY-3-8910A sound effects (ID 02241) - Main Event (1984): Fixed inputs based on the info in http://otoya.sheep-cloud.net/dipsw/ma-mo/mainevent.html. The game uses 2 joysticks (with button on top) and 2 buttons per player. Left stick: UP = left straight punch to enemy's face and LEFT = swey to left. Right stick: UP = right straight punch to enemy's face and RIGHT = swey to right. Left + Right stick combinations: L DOWN + R UP: right straight punch to enemy's body. L UP + R DOWN: left straight punch to enemy's body. L RIGHT + R Left: guard player's body. To move the boxer, use joystick while pressing the button on top of the stick. Left button: left uppercut and Right button: right uppercut. To recover from down, press these buttons rapidly. - Mario Bros.: CPU-internal regions now have priority again. Fixed game by installing a handler in the SOUND_START function (audio\mario.c). - NBA Jam TE: Separate NBA Jam TE from NBA Jam as they are not technically clones of each other - Shadow Force: Verified CPU clocks and fixed OKI6295 frequencies and pin - S.T.U.N. Runner: Fixed missing OKI6295 sound (ID 02239) - Virtua Fighter 4: Added correct PIC rom (317-0314-com.data) - Input port: Continued I/O map merging in a number of drivers - Dipswitch fixes in dec0.c, epos.c, mainsnk, namconb1.c and psychic5 - Fixed rom names in arkatour and megat5 - Description changes of Strikers 1945 (World) and Strikers 1945 (Japan / World) - MAME . CPU-internal regions now have priority again . Fixed device-based ROM loading to support loading ROMs from the game's ZIP as well. - Debugger . Added new built-in variable "frame" . Fixed crash when hitting watchpoints on static handlers 0.127u3 - New games: Super Gran Safari (ver 3.11) and Scacco Matto / Space Win - New Non-Working games: Capcom vs SNK Millenium Fight 2000 Pro (GDL-0004), Guilty Gear XX (GDL-0011), Guilty Gear XX #Reload (GDL-0019A), Ikaruga (GDL-0010), Initial D (GDS-0020b), Melty Blood Act Cadenza (GDL-0028C), Mobile Suit Gundam: Federation VS Zeon (GDL-0001), Mobile Suit Gundam: Federation VS Zeon DX (GDL-0006), Musapey's Choco Marker (GDL-0014A), Quiz Keitai Q mode (GDL-0017), Senko No Ronde (GDL-0030A), Shikigami No Shiro II / The Castle of Shikigami II (GDL-0021), Slashout (GDS-0004), Spikers Battle (GDS-0005), Sports Jam (GDS-0003), Super Shanghai 2005 (GDL-0031A), Virtua Athletics / Virtua Athlete (GDS-0019), Virtua Fighter 4 (GDS-0012), Virtua Golf / Dynamic Golf (GDS-0009), Virtua Striker 3 (GDS-0006) and World Series Baseball (GDS-0010) - New clones: The Great Ragtime Show, Imago (cocktail set), Marble Madness (set 5 - LSI Cartridge) and The NewZealand Story (Japan) (newer PCB) - I8039/MCS-48 CPU: Fixed memory handling of internal banks. They should be LOWER priority than the driver's memory maps. Reverted recent changes to MCS-48 core that were very hacky and which crashed many games. You can now properly override the internal memory map and do your own banking. - 8080/8085 CPUs . ANA/ANI instruction, HF flag was not set right because error in calculation of it (missing brackets) . 8080 have NF flag always set (it is not used flag but bit is always set) . Added support for status output lines - C352 sound: Removed an unused volume table dating from before the volume was (correctly) implemented as linear. - Laser Disc . Extended the LD core interface structure to allow each player type to provide its own ROM region and partial machine driver . Changed laserdisc interface to explicitly specify the screen and sound devices it should route to. Drivers no longer have to manually call laserdisc_vsync(). Instead, the laserdisc code connects up to the routed screen device and works based on that screen's VBLANK timing. Removed all existing calls to laserdisc_vsync(). . Changed laserdisc behavior so that it completes the previous video read and initiates the next read at the end of VBLANK instead of the beginning. This gives player logic time during VBLANK to alter the slider position prior to fetching the next frame. . Added new laserdisc callback for vsync begin and changed the update callback to be called at the end of VBLANK. Also added functions to set the slider speed, advance the slider, and directly control the video / audio squelch. In addition, there is a new status function to get the slider position in general terms. . Moved preliminary PR-8210 emulation code from ldplayer.c to ldpr8210.c. It is currently disabled behind the EMULATE_PR8210_ROM compile time flag. . Further updates to the PR-8210 ROM simulation. Still not quite there but the system is much better understood now. Added layout to the PR-8210 which displays the state of the front-panel LEDs. - atarisy1.c: Added LSI BIOS to the driver. Made the System 1 BIOS a proper BIOS. Removed restriction that BIOS-related ROMs must immediately follow the BIOS definition. - cave.c . Changed the hardcoded MHz values to XTAL equivalents . Updated driver for the game Guwange with PLDs that need to be dumped - lethalj.c: Additional documentation for Egg Venture & Lethal Justice: Added JAMMA pinout, Gun Connector pinout and Sound & Amp information. - limenko.c: Added sprites buffering to the driver and removed imperfect video flag from Spotty - m90.c . Implemented playfield 1 and playfield 2 y-offset table. This fixes at least the water effect in Risky Challenge and the text fading effect in the Match It II demo. . Fixed missing raster effect in Risky Challenge and clone Gussun Oyoyo (Japan) (ID 01689) - magic10.c . Better structure and organization . Added Super Gran Safari . Added improved lamps layout to Magic's 10 and Super Gran Safari - mainsnk.c . Fixed BG tile banking in Canvas Croquis . Removed 'SNK Wave' sound in Canvas Croquis and Main Event, since it doesn't seem to be used and might not be present on the PCB at all. . General driver cleanup, bringing it in line with snk.c but not merging it since somthing doesn't quite fit. . Fixed gfx1 rom loading, visible area and VSync. - naomi.c . Started adding NAOMI2 sets (21x) . Started changing NAOMI GDROM sets to load the CHDs. Moved all NAOMI-GD keys to external. . Added PIC and GD rom to 'Capcom vs SNK 2 Millionaire Fighting 2001' - sderby.c . Fixed the phisical RAM size to all games. Cleaned up the driver. . Croupier . Simulated the MCU communication/protection. The game seems to work properly, but is hard to win. . Added full sound support . Added lamps support + layout . Added proper NVRAM and missing 3rd input (needed for 3-button mode) . Scacco Matto / Space Win . Some corrections to the memory map . Added proper working RAM . Added Dallas DS1220Y NVRAM . Added output port and lamps layout . Added complete inputs . Changed description to "Scacco Matto / Space Win" since the default game is Scacco Matto . Fixed memory maps . Fixed the wrong NVRAM size to 2Kb instead of 16Kb . Super Derby . Added lamps support & layout and proper NVRAM . Documented outputs - segas16a.c: Fixed Access Violation in many sets (ID 02202) - snk.c: Coin inputs seem to be active high (except for Jumping Cross) - system1.c: Updated driver with more Choplifter bootleg board information and updated the placeholders for the PALs that need to be dumped. - Cube Quest: Fixed missing narrator and music during attract mode (ID 02206) - Imago: Fixed sprites (we understood what was missing to properly emulate sprites in Imago. What the game does is to copy, with an interrupt driven DMA, sprites data to an external videoram that will be accessed when sprites are drawn instead of using the data directly from sprites roms. We still need to check sprites colors with the game PCB and there still are 2 unknown writes executed by game). - Jackal: Fixed wrong enemy tank colors (ID 02205) - Jail Break . Replaced SN76496 sound with SN76489 . Added DIP locations . Redumped VLM5030 speech rom . Fixed rom names - Joyful Road/Munch Mobile: Merged memory maps - Mario Bros.: Fixed memory bank error in clone Masao (ID 02204) and access violation in clones (US, set 2) and (Japan) (ID 02207). - Monster Bash: Fixed game crashes on launch (ID 02222) - Shadow Force: Cleaned up input port mapping - Stocker: Fixed incorrect coinage dipswitch configuration (ID 02198) - Super Basketball . Correct the Super Basketball Revision H rom dump . Added DIP locations . Correct the Super Basketball VLM XTAL . Correct the parent/child relationships by making the Revision H the parent . Turned on save state support - Super Speed Race: Fixed pedal controls, which doesn't work (ID 00614) - Thayer's Quest: Added Custom sound - Welltris: Redumped program roms - WWF WrestleFest: Fixed rom names and added save state support - Input port . Layouts can now have items which when clicked will alter the state of an input port. This is done via the new attributes 'inputtag' and 'inputmask', which specify an input port tag and mask. When the given element is clicked, the state of the element changes to 1 and the given bits in the input port are set the same as if you had pressed the equivalent switch. . Added memory checking and error logic to ledutil.c . Merged I/O maps in a number of drivers - Dipswitch fixes in mainsnk.c - Cheat engine . Added built-in "Off" states to the cheats with parameters. This is also the default state, obviating the need for a default value. Removed the "default" attribute as a result. Switching from "Off" to another state first executes the "on" script followed by the "change" script. Switching to "Off" from another state executes the "off" script. While not off, the "run" script is executed each frame. . Moved reset to default behavior in the cheat menu to IPT_UI_CLEAR . Fixed locks up in Galaga (ID 02200) . Fixed Work RAM Error in Garou and clones (ID 02166) . Fixed can't pass Setup in Gradius 4 (ID 02189) . Fixed 'T 4 EEPROM error(BAD)' in Lethal Enforcers (ID 02177) . Fixed 'Work RAM Error' on start in many NeoGeo sets (ID 02188) . Fixed player's lorry in Rail Chase, which doesn't move (ID 02214) - Description changes of Capcom vs SNK 2 Millionaire Fighting 2001 (GDL-0007A), Imago (no cocktail set), The NewZealand Story (Japan) (older PCB), The NewZealand Story (World, older) (older PCB), Street Fighter Zero 3 Upper (GDL-0002), Super Basketball (version E, encrypted), Super Basketball (version G, encrypted) and Super Basketball (version H, unprotected) - MAME . Added parameter to the VBLANK callbacks supported in emu\video.c. Updated all callers to provide a callback value. . CPUs, sound chips, devices and ROM-regions which are specified by devices now have their tags auto-prefixed with the device's tag. This allows for multiple instances to be present. For example, the PR-8210 laserdisc player has a CPU with a tag of "pr8210". When it is included as a device by a driver, the driver may tag the device "laserdisc". The resulting final CPU tag name will be "laserdisc:pr8210". Also updated the debugger expression engine to support names with embedded colons. . Added checks to ensure that tags used for CPUs, sound chips, regions and devices follow some basic rules: They should be less than 15 characters long, be all lower-case, and only contain letters, numbers, underscores, or dots (no spaces). This is to ensure that they can be used properly in debugger expressions and don't get too long or unwieldy to type (even 15 chars is rather long). Fixed up all tags in the system that failed these checks. . Changed DEVICE_START functions to return an error code. Currently this is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY. The latter should be returned by a device if there is another device it depends on which hasn't been started yet. Added new flag in the device interface to indicate whether a device has been started. . Added new device interface selector: DEVINFO_PTR_ROM_REGION. This allows a device to provide a set of ROM regions to be loaded along with the game ROMs. It is expected that most regions defined for devices will use the ROMREGION_LOADBYNAME flag to enable the ROMs to live in a central location. . Added new device interface selector: DEVINFO_PTR_MACHINE_CONFIG. This allows a device to specify a partial machine driver which is appended to the end of the machine driver for any game using that device. The intention for this is to allow devices which have their own BIOS logic to specify CPUs and other characteristics common to all systems using the device. . Added new ROMREGION flag: ROMREGION_LOADBYNAME, which means that if the ROMs in that region are not found in the usual driver files, then the name of the region will be used as a driver filename for loading. . Added concept of rom sources to the rom loader. Updated auditing, CLI utilities, validity checks and ROM loading to use these new functions so that device-specific ROMs are handled properly. . Added a core_fopen_ram_copy() call, similar to core_fopen_ram() except that it copies the memory. . Fixed memory handling of internal banks. They should be LOWER priority than the driver's memory maps. Reverted recent changes to MCS-48 core that were very hacky and which crashed many games. You can now properly override the internal memory map and do your own banking. - Compiling . Moved more static data into const and added some more explicit initialization . Added running_machine * to some more locations in the system. Updated drivers accordingly. . Fixed 64 bit compiling error (ID 02201). - Debugger: Fixed bug that would cause watchpoints to trigger if you had a memory window open to the watchpoint address. 0.127u2 - New games: Magic Joker and Video Poker - New Non-Working games: Demolish Fist, Fist Of The North Star and Mad Zoo - New clones: Black Jack, Double Dragon (bootleg), Egg Venture (A.L. Release), Ikari Warriors (US), Video Cordoba and Video Dado - New drivers: videopkr.c - ARM7 CPU: Removed unnecessary hooks so MRC and MCR disassemble properly - COP410 CPU: Enabled internal program map - I8039/MCS-48 CPU . Changed MCS-48 core to write p1 and p2 on reset . Use banking to handle EA line . Changed MCS-48 EA line handling to use an explicit bank for now . Added MCS48_INTERNAL_ROMBANK define to header . Drivers which need to control the EA line have to initialize banking for internal/external rom. This is not yet optimal but works as expected with existing drivers and modified Mario driver. . Changed all MCS-48 chips to have a 12-bit address space, regardless of internal ROM size. - M37702/M37710 CPUs: 8-bit I/O port reads no longer cause bogus reads of neighboring ports - Discrete sound . Optimized DISCRETE_RCDISC_MODULATED. Added X_TALs to circus. Optimized DISCRETE_RCINTEGRATE and DISCRETE_555_ASTABLE. Optimized DISCRETE_555_ASTABLE_CV and DISCRETE_MIXER. Optimized DISCRETE_555_CC. The 555 and mixer changes also speed up just about every current discrete game. . Started removing extraneous enable lines from the discrete modules. Most modules are always enabled anyways. - TMS5100 sound: Updated LPC tables based on mathematical analysis of 1st and 2nd derivatives of the values and comparison to the best quality patent image, which nearly always showed which values were in error. Some off-by-one issues may remain, but it is now nearly perfect. Further perfection will require PROMOUT dumping, which is planned. - SNK Wave sound . Fixed emulation of the "SNK Wave" custom sound and made it into a proper sound core . Replaced Namco sound with SNK Wave in Canvas Croquis, Mad Crasher, Main Event (1984), Marvin's Maze and Vanguard II - Laser Disc . Split core laserdisc functionality into separate file ldcore.c. Each player now gets its own source file, along with new hooks which enable more precise control over the behavior. Updated the PR-8210 and LD-V1000 implementations to the new spec. Other players will come online shortly. . Changed laserdisc scan behavior so that it requires a constant stream of signals to continue scanning. Updated ldplayer accordingly. - MC146818 RTC: Added basic implementation of the "update ended" interrupt flag - M48T58 RTC/NVRAM . Converted timekeeper to a device, all default contents are loaded from disk . Added timekeeper rom to gradius4, nbapbp, racingj, racingj2, sscope, sscope2, terabrst and thrilld. - dkong.c . Consolidated memory maps for S2650 based games (8ballact, 8ballat2, herbiedk, herodk, herodku, hunchbkd, sbdk, shootgal, spcfrcii and spclforc). Renamed handlers to s2650_*. Joined protection handlers. . Replaced I8035 CPU2 with MB8884 (verified on schematics) in 8ballact, dkong, dkong3b, dkongjr, drakton, herbiedk, herodk, herodku, hunchbkd, pestplce, radarscp, sbdk, shootgal and strtheat. . Fixed Radar Scope hang or reset before game start (ID 02173) . Fixed music speed regression in Donkey Kong Jr. (ID 02174) - galaxi.c . Fixed the 3rd background offset to Galaxi . Remapped inputs to match the standard poker games - raiden2.c: Cleaned up some documentation - segas24.c . Updated documentation and disk/ROM names in driver based on new information . Removed "game_no_sound" from the 2 Hotrod games as all 3 seem to have the same sound capabilities - slapshot.c: Merged Slap Shot and Operation Wolf 3 read/write memory map - snk.c (update) . Adjusted some input bits in several games . Removed hacks and kludges . Fixed colors (though some sprites do look weird) . Fixed emulation of the "SNK Wave" custom sound and made it into a proper sound core. . Fixed palette decoding of early SNK games (ASO, Athena, Fighting Golf, Gladiator 1984, HAL21, Jumping Cross, Mad Crasher, Marvin's Maze, T.N.K III and Vanguard II). The least significan bits were assigned incorrectly. . Fixed dipswitches and inputs in ASO, Athena, Country Club, Fighting Golf, HAL21, T.N.K III . ASO: Replaced roms (which were possibly from a bootleg) with split ones that are definitely from an original. Renamed roms across sets accordingly. . Gladiator 1984: Fixed Z80 CPU1/2 clock speeds . HAL21: Merged hal21.c with SNK driver. Fixed Z80 CPU1/2 and the 2x AY-3-8912A clock speeds. Fixed sp16_tiles rom loading. . Ikari Warriors: Ikari Warriors (US JAMMA) is the JAMMA board, with conitnues. Ikari Warriors (US) is the non-JAMMA board, with continues. Ikari Warriors (US) is the non-JAMMA board, without continues. . Jumping Cross: Fixed sound (Z80 CPU1/2 clock speeds and removed Namco sound) and cabinet dipswitch. . Mad Crasher: Merged driver with SNK, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc). Replaced Namco sound with SNK Wave. Fixed sp16_tiles rom loading, visible area and VSync. . Marvin's Maze: Merged marvins.c with SNK driver, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc). Fixed emulation of the "SNK Wave" custom sound used by Marvin's Maze and made it into a proper sound core. Replaced Namco sound with SNK Wave. Fixed sp16_tiles rom loading, visible area and VSync. . Vanguard II: Merged driver with SNK, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc). Fixed emulation of the "SNK Wave" custom sound used by Vanguard II and made it into a proper sound core. Replaced Namco sound with SNK Wave. Fixed sp16_tiles rom loading, visible area and VSync. - toaplan2.c . Removed duplicate info and changed most speeds to "xtal_xxMHz" define in the driver . Battle Bakraid: Correct Z80 clock based on PCB info . Sorcer Striker: Added updated information . V-Five: Fixed VSync - Atomiswave: Added decryption for 'Fist Of The North Star' and (partial) for 'Demolish Fist' - 39 in 1 MAME bootleg: Added decryption. Doesn't get far due to very odd RAM check routine. - Air Trix: Added missing user2 roms (128M TSOP48 MASKROMs) - Astro Wars: Added the missing SHA1 checksums - Bubble Bobble II: Added redumped roms for the clone (bootleg with OKI6295) - China Gate: Changed sound CPU type in clone Sai Yu Gou Ma Roku (Japan bootleg 1) to I8748. - Driver's Edge: Removed unused protection bit - FixEight: Moved bootleg PCB layout down by the roms like the other layouts in the driver - Guerrilla War: Changed the default bootleg PCB to be joystick only, and removed code duplication (ID 02035) - Lethal Enforcers: Fixed backward crosshair in clone (ver JAD, 12/04/92 17:16) (ID 02179) - Mario Bros. . Modified driver to use the new MCS-48 core changes . Fixed music speed regression in Mario and clones (ID 02174). Fixed audio rom address. - Moon Cresta: Fixed duplicated Cabinet dipsetting in clone (Galaxian hardware) (ID 02075) - Pocket Race: The car turns only to the right and there is no way to calibrate controls (ID 00596) - Primal Rage: Changed start buttons into input buttons - Raiden DX: Renamed ROMs to match the actual PCB - Rock Duck: Fixed incorrect 'Lives' dipsetting (ID 02137) - Shadow Force: Added irqs ack. Implemented raster irq. Fixed coin2 and service input not working during the game. Added watchdog. Fixed visible area. Added video enable and irqs enable flags. - Input port: Concluded input port cleanups for drivers W->Z. Introduced a new PORT_CUSTOM which returns a tagged input that can be used to route bits from one port into another. - Dipswitch fixes in jcross, rockduck, snk.c and wardner - Fixed rom names in aso, hardyard, mahoudai, pairs, segas24.c and sstriker - Description changes of Guerrilla War (Joystick hack bootleg), Ikari Warriors (US No Continues), Raiden DX (Tuning license) - MAME . Changed refreshspeed target to 0.25Hz below rate provided, in order to guarantee that inexact timings do not lead to sound stuttering. . Began the "big IO_MAP merge of 2008". A number of drivers have had their I/O space address maps merged. . Added PCB info to Cruis'n USA, Egg Venture, Hard Yardage, Raiden DX/2 (new ones) and World Class Bowling - Debugger: Updated debugger to pass running_machine around where appropriate. Added running_machine to several devices which really should eventually be converted into proper devices. 0.127u1 - New Working games: Fighters' Impact, Judge Dredd, Magical Date / Magical Date, Street Fighter II' - Champion Edition (M2, bootleg) and Super Football Champ - New clones: Aero Fighters Special (TAIWAN), Ikari Warriors (US), Magic's 10 (ver. 16.15) and Top Skater (USA) - 68000 CPU . Changed IRQ support so that the IRQ lines explicitly simulate a standard demux chip connected to the IRQ lines. This means that the sequence: cpunum_set_input_line(5, ASSERT_LINE); cpunum_set_input_line(3, ASSERT_LINE); and cpunum_set_input_line(3, CLEAR_LINE) now works as expected. This required fixes to several Atari and other drivers. . Small optimization to memory handling - ALPHA-8301 MCU . Added 8303 ROM to bullfgtr, bullfgts, equites, equitess, exctscc2 and splndrbt . Updated MCU simulation to match the new findings - I8039 CPU . Renamed from i8039 to mcs48 . Significant cleanup/rewrite of the MCS-48 CPU core . Changed to use data address space for internal RAM . Added internal memory maps for variants with internal RAM/ROM . Added a number of variants from documentation . Removed redundant and unused definitions from header file . Renamed constants and functions to be MCS48* prefixed . Re-verified all opcode behaviors and timing . Changed illegal opcodes to count 1 cycle to avoid infinite loops . Changed EA behavior so that it is a push from the driver instead of a pull on each opcode fetch (this may change further in the future) . Reimplemented IRQ generation and timer behavior according to documentation . Updated all drivers accordingly (chinagat.c, drw80pkr.c, finalizr.c, gyruss.c, junofrst.c, m63.c, megazone.c, pandoras.c, portrait.c, quasar.c, sbowling.c, segas16a.c, spacefb.c, spcforce.c and system16.c) . Fixed several uses of PULSE_LINE, which no longer works. - FD1089 CPU: Added external decryption keys to afighter, alexkidd, aliensy1, aliensy2, aliensy3, aliensy5, aurail1, aurailj, dunkshot, enduror, sdi, shangon1, shangon2, shangon3, sjryuko, timesca1 and wb35 - M4510 CPU (MESS): Banking in read and write operations. jsr and jsrx instruction. Fixed TSY instruction. - SH-4 CPU, naomi.c and hikaru.c update . Fixed SH-4 core to support multiple SH-4s. Fixed LDCSR instruction. Fixed SH-4 I/O ports. Skeleton Hikaru driver with memory maps and both SH-4s. Fixed JVS/Maple translation so NAOMI 2 BIOS runs. . Added 2nd SH-4 CPU to hikaru.c - Discrete sound: Cleaned up the code and fixed discrete logging - 74LS174/175/259 TTL: Added a new generic latch device. Generic emulation of 74LS174/175, 74LS259 and other latches. Apart from providing synched latch operation, these latches can be configured to read their input bitwise from other devices as well and individual bits can be connected to discrete nodes. Please see audio\dkong.c for examples. - HD63484 video controller (adp.c and shanghai.c): Fixed cpx and cpy when a ptn or a agcpy command is executed. Fixed for PTN command: copy direction and dot color. First implementation of PAINT command (for now only 4bpp and 8bpp supported and the pattern is not supported). - Laser Disc . Added PR-8210 support to the ldplayer. Fixed step forward command on the PR-8210. . Added some initial logic to boot and run the PR-8210 ROM (i8049) in ldplayer.c. Currently this is disabled behind a compile-time switch. Once this is working, the plan is to incorporate this into the existing PR-8210 emulation, but we're not there yet. - 8080bw.c: Fixed input port confusion in the 8080bw driver. Connected AVGDVG status bits via PORT_CUSTOM. - adp.c: Updated memory map and fixed palettesize - bfm_sc2.c + mpu4drvr.c: Updated stepper motor code to use a MAME-style config interface, rather than a load of setting functions (machine\steppers.c). Changed optic functions to use clearly defined start and end points. Added standard layout for Starpoint units used in many machines. Updated all affected drivers. - cps2/3.c: Derived video timings based on measurements. These are educated guesses. The logic behind the derivations is shown in the source (ID 02110). This fixed also the disappearing volume bar in the test menu for msh, mshvsf, xmvsf, xmcota and nwarr for sound and voice (ID 01488). - dkong.c . 74LS174/175/259 TTL: Added a new generic latch device for drivers\dkong.c, audio\dkong.c and video\dkong.c. Generic emulation of 74LS174/175, 74LS259 and other latches. Apart from providing synched latch operation, these latches can be configured to read their input bitwise from other devices as well and individual bits can be connected to discrete nodes. Please see audio\dkong.c for examples. . Added the new latch device where appropriate (Donkey Kong & friends). Increased accuracy since now all main/sound cpu communications are properly latched. Removed quite some code as a consequence. Minor cosmetic edits. - gatron.c: Added SN76496 sound support to Poker 4-1 and Pull Tabs. Figured out the output ports. Documented each bit accessed. Added button lamps support. Created layouts for both games. Switched the 8255 port C to be used as output port. Adjusted the coin pulse timing. Updated technical notes. Splitted the driver to driver + video. Final clean-up. - igs_blit.c: Changed some decryptions to use program roms loaded byteswapped - igs_m68.c: Decrypted Mahjong Man Guan Cai Shen, Mahjong Long Hu Zheng Ba 2, Mahjong Shuang Long Qiang Zhu 2 and Mahjong Super Da Man Guan 2. - magic10.c: Remapped all inputs to match other poker games. Added a missing input to Magic's 10 games. - mcr.c: Changed Domino Man and Journey to 4-way joysticks - namconb1.c (NB 1/2 system): Shares the memory with the C75 (audio\namcoc7x.c). Renames the C75 region to C7x from user4. Implements the C75 reset/halt control. Implements the irqs more correctly. - snk.c (rewrite) . Fixed sprite-sprite priorities . Added new function tilemap_set_pen_data_offset(). While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers. Updated the SNK video driver to take advantage of the new function. . ASO: Moved game from HAL21 to SNK driver. Removed hacks and fixed bg color. Fixed Z80 CPU1/2 clock speeds and gfx rom loading. . Athena: Converted to tilemaps. Removed hacks. Proper memory maps. Screen flip / cocktail mode support. Added DIP locations. Better implementation of sound CPU communication. Hooked sound CPU interrupts to YM chips. . Bermuda Triangle: Changed description of 'Bermuda Triangle (Japan)' to 'Bermuda Triangle (World?)' and 'Bermuda Triangle (Japan old version)' to 'Bermuda Triangle (Japan)'. Removed ROM patches in Bermuda Triangle. Simulated "turbo front" check. Clarified the relationship between the four sets. Tilemaps, proper memory maps and inputs etc. Fixed Z80 CPU2 clock speed and visible area. . Chopper I: Converted to tilemaps, proper memory map and fixed input and DIP locations etc. Fixed visible area. . Country Club: Changed game from a clone of Fighting Golf to a parent set . Fighting Golf: Converted to tilemaps. Removed hacks. Proper memory maps. Screen flip / cocktail mode support. Added DIP locations. Better implementation of sound CPU communication. Hooked sound CPU interrupts to YM chips. Replaced 2x YM3526 sound with YM3812. . Fighting Soccer: Converted to tilemaps, proper memory map and fixed input and DIP locations etc. Fixed visible area. . Gladiator 1984: Merged sgladiat.c with SNK driver. Fixed shadows, visible area, tilemaps and inputs etc. This fixes some missing enemy sprites that are present on the PCB (ID 00228). Fixed dipswitches and inputs in Gladiator. Fixed Z80 CPU1/2 clock speeds, visible area and VSync. . Guerrilla War: Converted to tilemaps, proper memory map and fixed input and DIP locations etc. Fixed Guerrilla War (bootleg) doesn't need a rotary joy (ID 02035). . Ikari Warriors: Removed ROM patches. Simulated "hard flags" behaviour. Proper memory maps. Fixed Ikari (Japan) color test. Fixed inputs and DIP locations etc. Removed NO_COCKTAIL flag since these games don't have a flip screen dip switch. This fixes the title and high score screen do not have a black background, as MAME displays (ID 00869). . Jumping Cross: Merged jcross.c with SNK driver. Fixed fg layer and visible area. Fixed dipswitches and inputs in Jumping Cross. The game seems to be ok now? Is there still something wrong? Fixed Z80 CPU1/2 clock speeds, visible area, VSync and gfx rom loading. . Psycho Soldier: Converted to tilemaps, proper memory map and fixed input and DIP locations etc. Fixed visible area. . TouchDown Fever: Converted to tilemaps, proper memory map and fixed input and DIP locations etc. Fixed visible area. . T.N.K III: Converted to tilemaps. Removed hacks. Proper memory maps. Screen flip / cocktail mode support. Added DIP locations. Better implementation of sound CPU communication. Hooked sound CPU interrupts to YM chips. . Victory Road: Removed ROM patches. Simulated "hard flags" behaviour. Proper memory maps. Loaded the correct palette PROMs in clone Dogou Souken (Joystick hack bootleg). Fixed inputs and DIP locations etc. Removed NO_COCKTAIL flag since these games don't have a flip screen dip switch. . World Wars: Removed ROM patches in World Wars. Simulated "turbo front" check. Clarified the relationship between the four sets. Made World Wars a main set instead of a clone of Bermuda Triangle. Tilemaps, proper memory maps and inputs etc. - snk68.c: Added new function tilemap_set_pen_data_offset(). While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers. Updated the SNK video driver to take advantage of the new function. - stv.c: Fixed P1 and P2 Button 4 are duplicated (ID 00650) - system16.c: Removed audio\system16.c, there was a reference to REGION_SOUND1 (ID 02139). - zn.c . Improved dip switch emulation, ram hacks to get games booting are no longer required. . Converted AT28C16 to a device. Added preliminary support for devices to load/save NVRAM. . 1 on 1 Government: Mapped player 3 & 4 inputs for '1 on 1 Government', these are now the default with the 6 button inputs only mapped for games that need them. . Judge Dredd: Added lightgun emulation and fixed IDE emulation when building with visual studio. . Added Video System PSX BIOS (1996) . Fixed debugger/cheat system upper case CPU tag of MAIN doesn't work for Flame Gunner (ID 02138) . Mapped Primal Rage 2 inputs . Fixed Super Football Champ (Game now playable) - Centipede: Fixed missing sound in clones Centipede (bootleg), Magic Worm (bootleg) and Millpac (ID 02142). - Crazy Kong (bootleg on Galaxian hardware): Fixed wrong coinage dipsettings (ID 02154) - Cube Quest: Fixed game requires the optional CHD in the minimal UI (ID 02136) and crashes on ATI hardware w/ prescale > 1 (ID 02159). - Fast Lane: Fixed random function of Fast Lane (K051733 in video\konamiic.c), which doesn't work well and always gives a "no bonus" (ID 00429) - Major Havoc: Changed 8-way Joystick to Dial - Ozma Wars: Fixed streaks and dashes appear on screen after playing awhile (ID 02143) and incorrect dipsettings for coinage (ID 02144) - Power Instinct 2: Hooked up sound CPU communications. This enables synchronized dancing for the background characters. - R-Type: Fixed 'Demo Sounds' dipswitch in clone (Japan) (ID 02135) - The Simpsons: Added PCB info - Space Gun: Fixed missing crosshairs (ID 02150) - Starship 1: Added discrete sound (audio\starshp1.c). Still need to properly emulate the MC3340. - Street Fighter II' - Champion Edition: Fixed clone (M2, bootleg) (Game now playable). Removed duplicate buttons in INPUT_PORT (sf2hack). - Trivia Quest: Changed game clocks based on some really old information - Wave Runner: Removed ADSP21062 CPU3 - WW III: Added missing SHA1 values - Input port . Added save state for discrete node->output to ensure that input nodes save states . Input port cleanup pass over drivers from N-V, leveraging AM_READ_PORT, converting to full 32-bit inputs where suitable, using CUSTOM_PORTs for EEPROM bits, etc. . Additional input port cleanups in cps1.c, dec0.c, nbmj8688/8891/8991, pgm.c, psikyo.c and jaleco drivers - Dipswitch fixes in ckongg, ghoulsu, qadj, raiden, sf2m2 and snk.c - Description changes of Bermuda Triangle (World Wars) (US), Dong Fang Zhi Zhu (Hong Kong, V011H) (ID 02133), World Wars (World?) and Xing Yun Man Guan (V651C) (ID 02127) - MAME . Added new function tilemap_set_pen_data_offset(). While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers. Updated snk.c and snk68.c to take advantage of the new function. . Fixed problem that would cause the "Return To Prior Menu" menu item to not stick if one is calling ui_menu_reset() with UI_MENU_RESET_REMEMBER_POSITION, and that menu item is selected. . Changed slider controls into a menu. For now, removed the old direct access mechanism; instead, you must access the sliders via the main menu. While in the menu, you can use the ~ key to turn off the menu display and leave only the bar display, in order to see more of the screen. . Fixed annoying behaviour of highlighted entries in minimal UI (ID 02147) . Added save state for discrete node->output to ensure that input nodes save states . Changed DIRECTINPUT & DIRECT3D handling, so they can be overridden by environment variables. . Optimized ycc_to_rgb conversion code (emu\rendersw.c) . Fixed bug when writing AVI files with more than one RIFF chunk. Added missing chdman error messages when extracting to an AVI file. . Fixed handling of a number of static variables to avoid multisession issues . Added helper function devtag_get_device(machine, type, tag) to retrieve the device_config for (type, tag) . Fixed corrupt CHDs are reported as missing (ID 02126) . Removed useless backslashes lurking throughout the code . Re-added generic calls to install memory handlers that were in long before 0.126u5 - these are useful on the MESS side for things like the PC driver. 0.127 - New games: Cube Quest and WW III - New Non-Working games: Astro Wars, Hot Slot (ver 05.01), I P M Invader (Incomplete Dump) and Magic Colors (ver 1.7a) - New clones: Red Hawk (Italy), Shogun Warriors (Euro) and Snow Bros. - Nick & Tom (Dooyong license) - New drivers: cubeqst.c - G65C816 CPU: Added save states (nss.c and snesb.c) - SH-1 CPU: Added SH-1 CPU support (Cool Riders), including lower precision on MAC.W and locking out SH-2 only instructions. - SH-2 CPU / DRC (Dynamic Re-Compiling) . Moved IRQ handling front-end into recompiled code . Added TSTM/ANDM/XORM instructions . Removed more unprintable characters in SH-2 disassembler - SH-4 CPU: Split out SH-4 non-interpreter-specific stuff to sh4comn.c - T5182 CPU: Updated documentation/pinout - TMS5110 sound: Removed duplicated TMS5110 entry in sound.mak - YM2612/FM sound: Reduced YM2612 DAC level relative to FM. This better matches real hardware. - HD63484 video controller (adp.c and shanghai.c): Improved core to support some initial graphics - EEPROM: Changed AT28C16 memory handlers to 8 bits and perform the conversion in the memory mapping - Laser Disc . Added driver for Cube Quest (Simutrek 1983), include 3x bit-sliced CPUs for Rotate, Line and Sound (AM2901-based), as well as laserdisc support (12 GB) for the hacked laserdisc that was used to drive the games. . Added DISK_IMAGE_READONLY_OPTIONAL to support games where the disk is non-essential to the game's operation (like Cube Quest) . Added DISK_REGIONS and fixed visible area and VSync in all laserdisc drivers (astron, cliffhga, cliffhgr, cobram3, cubeqst, dlair, esh, galaxyr, goaltogo, gpworld, istellar, lgp, mach3, maddog, spaceace, superdq, thayers and usvsthem) . Added new generic laserdisc VIDEO_UPDATE handler to the laserdisc code. This handler works for both disc-only games and those with overlays. For disc-only games, the base macro is sufficient. For games with overlays, an additional set of configuration macros are provided: MDRV_LASERDISC_OVERLAY - specifies update function, width, height and bitmap format of the overlay, MDRV_LASERDISC_OVERLAY_CLIP - specifies the visible area of the overlay bitmap, MDRV_LASERDISC_OVERLAY_POSITION - specifies default x,y position and MDRV_LASERDISC_OVERLAY_SCALE - specifies default x,y scale factors. The update function provided to MDRV_LASERDISC_OVERLAY is identical to a normal VIDEO_UPDATE callback, so a standard one can be used. All existing laserdisc drivers have been updated to support this new rendering mechanism, removing much duplicated code. . Added new macros MDRV_LASERDISC_SCREEN_ADD_NTSC and _PAL, which defines a standard screen with the correct video timing characteristics and update function for laserdiscs. Updated all drivers to use these macros instead of defining their own screens. . Fixed bug in identifying the custom sound driver for the laserdisc . Updated ldverify to identify blank regions of the disc for post-processing . Fixed rendering 16bpp with alpha using bilinear filters (fixes screenshots of laserdisc games with overlays) . Added the ability to configure the overlay position and scale parameters at runtime. Added OSD menus to control them. Added logic to save/restore the data in the game's configuration file. - adp.c . Converted driver to 4bpp rendering . Fixed visible area and VSync in Fashion Gambler and Quick Jack - alg.c: Fixed VSync in all games (except Zorton Brothers = 50 Hz) - cischeat.c: Fixed missing sound in Big Run and Cisco Heat (ID 02119) - cps1.c . Updated driver to use proper gfx ROMs + PALs for Varth (Japan 920714), and to load correct A-Board PALs for QSound games. . Added new A-board PLDs to Cadillacs and Dinosaurs, Muscle Bomber Duo, The Punisher and Saturday Night Slam Masters . Added new A-board PLD and B- and C-boards PLDs in Warriors of Fate - cps2.c: Fixed graphics (ID 02116) - dooyong.c: Added DIP locations - eolith.c: Fixed colors shifted to blue (ID 02114) - magic10.c . Simulated the Co-processor to pass the initial test . All Inputs worked from the scratch . Fixed position of tilemap layers . Added scroll register preliminary support . Fixed Super Pool graphics - midzeus.c: Identified compatible timekeeper used by Midway Zeus II. Removed all the timekeeper memory handlers, except for 8 bit & changed the drivers to use the conversion built into the memory system. - namcos22.c: Added new hardware info to the driver - paradise.c . Added PCB layout for Torus & Mad Ball . Correct rom names and/or added U locations - Berlin Wall: Fixed P1 inputs not working (ID 02115) - Cool Riders: Replaced SH-2 CPU1 with SH-1 - Donkey Kong 3: Added address decode prom - Dead or Alive 2: Added correct CRCs/SHA1 - Q*bert: Fixed misplaced graphics (02105) - Reactor: Fixed input controls and startup tone (ID 02121) - Skat TV . Began implementing 68681 DUART device . Improved HD63484 core to support some initial graphics . Fixed visible area and VSync - Time Crisis: Fixed SubCPU start wait fails test (ID 01992) - Fixed rom names in doa2, madballn, tgtball, torus and varthj - Dipswitch fixes in megaplay.c, mp_col3, dooyong.c and sharkpy - Cheat engine: Added cheat functions frombcd() and tobcd() to convert numbers to/from BCD format. Changed "Activate" to "Set" in the menus. - MAME . Added the ability to configure the overlay position and scale parameters at runtime. Added OSD menus to control them. Added logic to save/restore the data in the game's configuration file. . Fixed rendering 16bpp with alpha using bilinear filters (fixes screenshots of laserdisc games with overlays) . Added validity check to ensure that AM_READ_PORT() macros reference valid ports. Fixed several cases where the check failed. . Added validity check to ensure that ports referenced by a condition actually exist. Fixed a case where this was violated. . Use machine in uigfx.c where it's already available . Cleanup of memset() usage . Included support for parsing .gdi files in CHDMAN . Removed included "profiler.h" from files that do not use profiling functions - Debugger: Removed obsolete ENABLE_DEBUGGER occurance 0.126u5 - New games: Final Fight 2 (SNES bootleg) - New Working games: Da Ban Cheng (V027H), Killer Instinct (SNES bootleg), 'PinYin: Xing Yun Man Guan' and Zhong Guo Long (China, V010C) - New Non-Working games: Sonic Blast Man TURBO 2 (SNES bootleg) - New clones: Dai Makai-Mura (Japan hack?), Defender (White label), Free Kick (bootleg set 2), Zhong Guo Long? (Hong Kong, V011H) - FD1089 CPU: Updated decryption algorythm to use the real keys generated by the LCG. The algorithm is more complex than it should be, but I haven't been able to simplify it more. The keys are still embedded in the source. It would now be reasonable to move them to external files; however, for several games we only have partial keys so the files would need to be BAD_DUMP. (see machine\fd1089.c) - I386 CPU: Fixed core's BSR implementation for the case where the high bit is set - FM sound . Pass chip type around and restore Jarek's original behavior for YM2203/YM2610 . Always recalculate attack rate in set_ar_ksr, fixes Megadrive/Genesis "Batman & Robin" - Laser Disc . Added new target ldplayer, which is based on MAME but serves as a standalone laserdisc player for CHDs. Right now only the Pioneer LD-V1000 is connected, and limited commands are available. Each player type is a driver, so you specify the player type on the command-line. The driver then opens the first CHD it finds in your ROM path and uses that as the laserdisc. The intention is that you specify the -rompath each time on the command-line, so a typical approach might be: ldplayer ldv1000 -rompath j:\mach3, where it will pick up the mach3.chd lurking in your j:\mach3 folder. Several basic commands are supported: Space = play/pause, Alt = toggle frame display, Left = scan forward (when playing) or step forward (when paused), Right = scan backward (when playing) or step backward (when paused), 0-9 = enter numbers for search and Enter = execute search to frame. . Rejiggered huffman.c to support multiple interleaving streams and a delta-RLE pre-encoding. Added optimized case for the Y/Cb/Y/Cr video encoding case. Cleaned up the code. . Updated avcomp.c to use the new huffman.c functions. Reworked configuration options to allow for both input and output of naturally aligned data streams. Updated chdman and laserdsc to use the new interfaces. New compression gives an additional 3-7% over previous attempt and compresses the dummy CHDs down significantly. . Added video level detection and reporting to ldverify . Forced a sound synchronization on each vsync in the laserdisc playback. This prevents overwriting the tail end of the buffer which was fouling up the MACH 3 audio decoding. . Fixed visible area and VSync in Dragon's Lair and Space Ace - adp.c: Added the new Shanghai HD63484 video controller to the ADP driver (see video\hd63484.c) - artmagic.c: Fixed protection (it used a wrong tag, which was probably added somewhere in 0.125uX) - cps1.c: Added reverse engineered PLD images (A-board to all and B-board and C-board to many) - cps3.c: Fixed refresh rate for all games (video from a DV cam proves the refresh rate of CPS3 in MAME is wrong) (ID 02110) - crystal.c: Collapsed timer callbacks in some cases to avoid duplicating code. In the case of crystal.c, also refactored two DMA handlers and shuffleed the init/reset code around a bit. - jcross.c, sgladiat.c, hal21.c, marvins.c and snk.c: Implemented proper shadow handling in the SNK video driver. This fixes the shadow in Ikari Warriors and Victory Road (ID 00233). - m10.c, m52.c, m62.c, m63.c, m72.c, m90.c, m92.c, m107.c: Changed a lot of input related things in IREM M10->M107 boards. First of all, moved input definitions from drivers\m92.h to include/iremipt.h and removed completely drivers\m92.h (which only contained those definitions). Added more common inputs to iremipt.h and started to use that file in m62->m107 instead of local #defines. Finally, added DIP locations to all the games in m62->m107 which were missing and it implemented coinage mode 2 through dipconditions in the drivers which didn't support it. - m63.c: Added sprite wrapping to the driver (Fighting Basketball and Wily Tower) - namcos22.c: Fixed no sound in games after reloading via the MAME UI (cybrcomm, raveracw, raveracj, raveraja, ridgerac, ridgerab, ridgeraj, acedrvrw and victlapw) (ID 01802) - shanghai.c . Convert framebuffer's ram from 8 bit to 16 bit. Convert dma command from 8 bit to 16 bit. Convert gfx command from 8 bit to 16 bit. Implemented all gfx mode: 1,2,4,8,16 bpp. (see video\hd63484.c) . Implemented MWR (memory width register) in Shanghai to avoid hardcoded 384 value for screen width . Fixed visible area in Kyuukyoku no Othello - snesb.c: Changed kinstb.c to snesb.c driver - snk.c: Fixed gfx3 rom addresses - A. D. 2083: Changed game to load TMS5110 PROM data instead of using hardcoded values - Champion Base Ball Part-2: Updated Alpha 8302 MCU simulation to match newly dumped internal ROM - Chequered Flag: Fixed memory leak warning (ID 02095) - Cool Riders: Fixed crash with DRC (ID 02071), now hangs waiting for impossible conditions again. - Cotton Boomerang: Fixed sprite layer offset toward upper-left (ID 02021) and Fatal Error crash (ID 02022) - Dragon World (World, V0400): Fixed crash, when continue inserting credits and play in clone (World, V0300) (ID 00491) - Galaxia: Fixed ROM mapping and added preliminary video emulation (working attract mode) - Go 2000: Added dipswitches and locations to Go 2000 (even if they were partially documented in the source). Added dipswitches 'Coin / Credits', 'Minimum Coin', 'Service Mode', 'Difficult-1', 'M1 valu' and 'Difficult-2'. - KO Punch: Fixed boxer graphics (had to be doubled) (video\kopunch.c) - Long Hu Bang (V035C): Fixed clone (V033C) which does not work (ID 02027) - Lucky 74 . Reverse engineering of custom IC's 06B49P, 06B53P and 09R81P . Added missing 3x SN76489 and MSM5205 . Measured and traced all clocks on the board . Measured and fixed the interrupt system . Implemented timings/clocks from custom 06B49P . Added sound support. All regular game sounds/musics are working. . Implemented the ADPCM samples system through 09R81P and M5205 emulation . Added pinouts and technical notes about custom IC's 06B49P, 06B53P and 09R81P . Added flip screen mode . Inverted the order of double-up difficult DIP switches . Changed 'Key In' to be active LOW instead of HIGH . Complete memory map and ports scheme . Created handlers for USART port and co-processor communication . Renamed the sets accordingly . Updated all notes . Cleaned-up the driver - Mad Alien . Added discrete sound (amplification and motor sound - audio\madalien.c) . Fixed NMI on sound CPU. This fixes shot sound and various other sound glitches. . Marked Mad Alien and clone as 'Imperfect Graphics'. They are missing an effect. When you shoot an enemy in the dark, the whole screen lights up. Basically the headlights fill the whole screen. - Panic Street: Fixed hangs after choosing stage (ID 02059) - Plotting: Added the Plotting PAL to clone Flipull (Japan). Also correct the PAL ROM name. - Space Chaser: Hooked up discrete filtering to SN76477 - Street Fighter III 3rd Strike: Fixed title animation and the linear zoom effect - Virtua Bowling: Fixed resets after the 3rd launched ball (ID 00492) - Wonder Boy: Fixed Access Violation (ID 02101) - Input port . Improved input ports for drivers starting with F->M. In particular: Added AM_READ_PORT whenever suitable, make inputs fully 32bit where needed, removed indexed input read handlers from INITs, replaced many read handlers with appropriate CUSTOM_INPUTs. . Converted most of the games checking avgdvg_done() in inputs to use a CUSTOM_INPUT (defined in video\avgdvg.c) - Dipswitches . Added DIP locations to Clash-Road, Fire Battle and Go 2000 . Fixes in clshroad, dbc, drgnwrld, f1gp2, go2000, gravitar, lhb, loverboy and xymg - Merged memory maps in The Deep, timelimt.c, Tecmo Bowl, thief.c, tigeroad.c, Toobin' and tumbleb.c - Fixed rom names in Cosmic Avenger, Fighting Soccer, Lady Bug, Road Riot 4WD and Snap Jack - Description changes of Long Hu Bang (V035C) + (V033C), Lucky 74 (bootleg, set 1)+ (bootleg, set 2), 'PinYin: Xing Yun Man Guan' (ID 02113) and Zhong Guo Long (China, V010C) - Cheat engine . Fixed bug that prevented the cheat engine from working when the debugger was disabled . Updated cheat parser to preserve the format of attribute values used for cheat parameters and items. . Added support for information-only cheat items, which will be displayed in the menu but which are not selectable and have no action associated with them. Empty information-only items are automatically converted to menu separators. - MAME . Updated structure and naming conventions of sound and CPU cores to match core conventions . Cleaned up and grouped the sound chip entries based on sound.mak . Collapsed timer callbacks in some cases to avoid duplicating code. In the case of crystal.c, also refactored two DMA handlers and shuffleed the init/reset code around a bit. . Added new flag to menu items: MENU_FLAG_DISABLE, which means the item will be visible but not selectable. . Fixed incorrect test in winwork that led to spinning instead of using the nicely allocated events we had on hand. . Modified xmlfile.c to accept integer values in decimal or hex. The default is decimal. Numbers may be prefixed by '#' for decimal values, or by '$' or '0x' to indicate hexadecimal values. Also added function xml_get_attribute_int_format() to return the format of the attribute, so that it can be later replicated. . Added PCB infos for Cosmo, Don Den Lover, Beatmania (CHD dumping), Dragon Master, Gals Panic, Fantasia II, Grand Tour, New Dyna Blaster Global Quest, Daytona "To The MAXX" upgrade, Namco System FL, Great Sluggers, Gun Nail, Gun & Frontier, Elevator Action Returns, Battle Bakraid, Koro Koro Quest, Gigas (bootleg), Race Drivin', Hexa, IQ Block, Open Golf Championship, Macross Plus, Malzak, Puzzle Club, NAOMI, Puzzle Star, Puckman Pockimon, Raiden 2, Raiden Fighters 2 (single board), Light Bringer, Landmaker, Knuckle Bash 2, Mahjong Fight Club, Vivid Dolls, Tower and Shaft, Star Soldier Vanishing Earth, Stone Ball, Sky Lancer, Squash, Winning Spike, Versus Net Soccer, Undercover Cops, War Gods, Space Fever, Strikers 1945, Rohga, Super Eagle Shot, Treasure Hunt (stv), Tickee Tickats, Great 1000 Miles Rally 2 and Super Monaco GP. - Compiling . Moved several include files from mame\ to emu\, as they were included by generic components in emu\ and thus should have no dependencies on the MAME code. . Changed gfx memory region tags in obvious cases 0.126u4 - New games: S.O.S. - New Working games: Champion Poker (v200G) and Kyuukyoku no Othello - New Non-Working games: Jingle Bell (Italy, V133I) and Quiz Punch 2 - New clones: Crystal Castles (joystick version), INDY 500 Deluxe and Megatouch III (9255-20-01 RON) - New drivers: igs009.c and quizpun2.c - Z80 CPU: Z80DMA device now require device callback handlers instead of machine handlers. Updated affected drivers accordingly. - Discrete sound . Added discrete sound to Fantasy, Nibbler and Pioneer Balloon . Minor optimization to the DISCRETE_INPUT modules. The node output is now calculated when a discrete_sound_w() is called instead of each step in the simulation. Also removed the Enable line from the DISCRETE_ADJUSTMENT modules. They should never be disabled. . Discrete sound core optimizations: Moved a couple of exp(x) from _step into _reset where appropriate. Use tabulated function values for the transfer function in DSS_INVERTER_OSC. . Added module profiling to discrete sound core: Added DISCRETE_PROFILING macro to discrete.h. Upon discrete_stop, the worst performing modules will be listed. - FM sound: Backported a bunch of FM OPN (YM2608/2612) fixes from Genesis Plus GX. All of this was verified on real hardware: Implemented PG overflow, aka "detune bug". Fixed SSG-EG support. Modified EG rates and frequency. Fixed EG attenuation level on KEY ON (Ecco 2 splash sound). Fixed LFO phase update for CH3 special mode. - YM2151 sound: Forced synchronization (stream_update()) before the YM2151 status is actually read - 8253 PIT: Set the initial 8253 timer output to 2 to indicate that it is undetermined - Laser Disc . Added proper laserdisc support for MACH 3, Us vs. Them and Cobra Command (MACH 3 hardware). Old laserdisc hacks are now removed. The code now talks to the standard Pioneer PR-8210 interface. Also removed hacky "target list" from the MACH 3 ROMs; this information is now decoded on the fly from the right channel laserdisc audio. . Changed laserdisc support to parse white flags and other data from the VBI data directly, rather than relying on the textual metadata. Expanded video frame cache to 3. Changed the way frames are assembled to decrease the likelihood of getting an interlaced weave. Fixed sound creation so that it is done at reset time instead of device start, when the sound devices aren't yet live. . Changed the laserdisc interface to no longer require a disk number or a custom sound device. Both are now assumed to be tagged the same as the laserdisc device. Updated all drivers accordingly. . Other laserdisc changes: Changed PR-8210 interface to work consistently for both Gottlieb and Stern games. Added audio callback mechanism to allow drivers to peek at the raw audio streams. . Removed obsolete makemeta tool. Replaced it with new ldverify tool which walks through either an AVI or CHD capture from a laserdisc and ensures that there are no anomalies lurking in the VBI data. . Added new option to chdman, where if you use -createav with a special filename (either 2:2 or 3:2) it will create a fake laserdisc files with the equivalent cadence. This can be used for testing until full captures are available. Most games used 2:2 apart from Dragon's Lair and Space Ace, which were 3:2. Note that even though these files are essentially blank, they are Huffman-compressed, meaning that the maximum compression ratio you will get is 8:1, so they still end up ~5GB. . Updated vbiparse to improve Manchester code decoding. It now assigns a confidence level per bit based on how solid the data is. Also added a new function vbi_parse_all which parses the white flag and all three lines of metadata from a laserdisc frame. It then compares line 17 and 18 against each other and selects the most likely candidate based on per-bit confidence and other factors. . Added frame number display to laserdsc.c. It is off by default, though most players can be configured to turn it on (not sure if any actually do). It can be manually toggled via the backslash key during playback. - 1943.c: Added information to the video driver about priorities encoded in PROM - adp.c: Some initial work on the driver - cps1.c: Verified and fixed VSync to 59.610000 Hz - gottlieb.c . Added proper laserdisc support for MACH 3, Us vs. Them and Cobra Command (MACH 3 hardware). Old laserdisc hacks are now removed. The code now talks to the standard Pioneer PR-8210 interface. Also removed hacky "target list" from the MACH 3 ROMs; this information is now decoded on the fly from the right channel laserdisc audio. Added Custom sound. Fixed visible area and VSync. . Fixed revision 2 sound board again . Fleshed out memory maps and behaviors according to the schematics . Hooked up coin counters . Moved sound inputs to audio\gottlieb and included them in all relevant drivers . Ordered input ports and ROM definitions consistently . Fixed audio rom address in 'The Three Stooges', Screw Loose, 'Video Vince and the Game Factory' and Wiz Warz - mpu4drvr.c: Correct AY8910 output weightings - nmk16.c: Fixed access violation in US AAF Mustang (bootleg) and Thunder Dragon (Bootleg) (ID 02067) - psikyo4.c: Fixed region jumper - snk.c: Fixed clock speed of the 2x Z80 in Fighting Golf - suprnova.c: Fixed segfaults on load (01958) - taito_b.c: Fixed unable to enter coins in pbobble, qzshowby, spacedx and spacedxj (ID 02056) - A. D. 2083: Removed the bad dumps flags - Athena: Verified CPU clocks (fixed clock speed of the 2x Z80) - Champion Poker: Moved Poker? (IGS) from IQ Block to Champion Poker driver and changed description to 'Champion Poker (v200G)'. Changed description of 'Champion Poker' to 'Champion Poker (v220I)'. - Da Ban Cheng: Decrypted main cpu rom - The Deep: Fixed game didn't start (changed region cpu2 to cpu3) (ID 02090) - Donkey Kong . Added scanline exact rendering . Sprite limit of 16 sprites per scanline implemented from schematics . Proper wrap around from bottom to top . Added some notes about sprite limits and hardware . 8257 DMA: Device now require device callback handlers instead of machine handlers. Updated affected driver accordingly. - Flower: Added edge connector pinout info for the 2x 8-Way joysticks with 3x fire buttons (Laser, Missle and Cutter) - Grand Prix Star and F-1 Grand Prix Star II: Removed the current hacky handling of Grand Prix Star coinage dips to use conditional ports instead. In order to do this, the possible conditions were extended to support less than/greater than comparisons. - Intrepid: Fixed clone (set 2) stops at PCB test (ID 01817) - Major Havoc: Fixed access violation and all graphics are missing (ID 02066, 02068) - Operation Wolf: Fixed 68000 CPU1 clock speed - Polygonet Commanders: Improved DSP56k CPU interrupt handling, the game now advances past its first DSP handshake. - Rim Rockin' Basketball: Replaced M6809 CPU1 with HD6309 - Shanghai / II: Fixed window - Soccer Superstars: Fixed the romtest report two bad roms (ID 02033) - Space Invaders: Fixed built in red color overlay goes too low and shows on top line of invaders heads in Vista only (ID 02049) - Spinal Breakers . Fixed Z80 CPU2 clock speed as verified on the PCB . Fixed wrong priorities in second level (ID 02060) - Track & Field: Fixed access violation in clone Atlant Olimpic (ID 02070) - Transformer: Fixed access violation in clone Astro Flash (Japan) (ID 02069) - Input port . Removed PORT_START macro. Renamed old PORT_START_TAG to PORT_START. All input ports must have tags. . Fixed bug that would break conditions on ports using the PORT_DIPUNKNOWN_DIPLOC macro . Continued the cleanup of inputs in drivers starting with C (the remaining ones), D and E . Added tags to EVERY input port in drivers starting with F->Z - Dipswitches . Added DIP locations to Big Run, China Gate, Chequered Flag, Circus, Cisco Heat, City Connection, Cloak & Dagger, Combat School, Contra, Cops'n Robbers, cosmic.c, crospang.c, Crowns Golf/Hawaii, Crime Fighters, Dambusters, Dark Seal, Dead Angle, Do! Run Run, Double Dragon, Double Dragon II, Double Dribble, Double Wings, Dynamite Duke, Grand Prix Star, Lethal Crash Race, Mr. Do's Castle, Mr. Do's Wild Ride, Scud Hammer and Thunder Zone . Added conditional dips to Dynamite Duke . Fixes in 3stooges, bestri, bigrun, cischeat, citycon, cobram3, crimfght, ddribble, dynduke, f1gpstar, heuksun, kokoroj2, kothello, mach3, radr, screwloo, usvsthem, vidvince and wizwarz - Memory maps merged in blockout.c, blmbycar.c, blockade.c, blockhl, bombjack, boogwing and bottom9 - Fixed rom names in New Rally X and Rally X - Description changes of Champion Poker (v200G), Champion Poker (v220I), Defender (Blue label), INDY 500 Twin - Cheat engine . Changes to the cheat.xml format: New tag (within ) is read and preserved when saved. Removed variable attribute from ; it is now assumed to be 'param'. Added default attribute for . . Added new variable 'frame' accessible from cheat scripts. This can be used in the conditional to prevent execution on every frame, or for other effects (like displaying temporary messages). . Added new variable 'argindex' which is the index when processing an with a count attribute greater than 1. . Reinstated the cheat menu. It now displays all loaded cheats and allows for them to be activated. All known cheat behaviors should be working now. Cheats are toggled on/off with the left/right arrow keys. Oneshot cheats are activated by hitting enter. Pressing enter on other cheats resets them to their default values. . Changed cheat escaping to automatically escape && & < and <= to and band lt and le. - MAME . Added new functions cputag_set_input_line() to assert input lines via CPU tag instead of index . Changed the IDE interfaces to default to choosing the region with the same tag as the device for its master disk (assuming no slave). Added support for specifying explicit master/slave disk regions as part of the configuration, though slave disks are still not supported yet. . Disks opened by the romload module are no longer identified by index. Instead, they are identified by the region they were loaded in. This generally means one disk per region. get_disk_handle() now takes a region name in place of an index. Updated all callers to do this. The SCSI modules in particular posed a challenge to make this work, so watch out for potential bugs there. . Removed per-frame metadata support from chdman. Creating an A/V now simply requires an AVI file input. . Fixed bug in winwork that caused the creation of single work items to return NULL, and thus lead to massive memory leaks when using A/V CHDs. . Disks opened by the romload module are no longer identified by index. Instead, they are identified by the region they were loaded in. This generally means one disk per region. get_disk_handle() now takes a region name in place of an index. Updated all callers to do this. The SCSI modules in particular posed a challenge to make this work, so watch out for potential bugs there. . Added new option to chdman, where if you use -createav with a special filename (either 2:2 or 3:2) it will create a fake laserdisc files with the equivalent cadence. This can be used for testing until full captures are available. Most games used 2:2 apart from Dragon's Lair and Space Ace, which were 3:2. Note that even though these files are essentially blank, they are Huffman-compressed, meaning that the maximum compression ratio you will get is 8:1, so they still end up ~5GB. . Moved error strings from chdman.c to chd.c, where they can be fetched from any caller via the new chd_error_string() function. . Added support for DEL as well as BS for backspacing in the game select menu. Also limited input to ASCII characters. . Restored previous behavior that allowed popmessage() messages to overlay menus and other UI . Fixed bug in aviio.c which could cause an infinite loop if attempting to read sound beyond the end of the file. . Added PCB infos for Galaga, The Outfoxies, Splatter House, Top Racer, Kyros No Yakata, Bombs Away, Meikyuu Hunter G, Crazy Kong, Moero Pro Yakyuu Homerun Kyousou, Lucky & Wild, Match It, Country Club, Enforce, Elevator Action, Chuka Taisen, The New Zealand Story, Buck Rogers Zoom 909, Head On, Victorious Nine, Youma Ninpou Chou, Pairs, Woodpecker, Slap Fight, Alcon, Tiger Heli, Superman, WWF Superstars, Area 51, Animalandia Jr, Avengers In Galactic Storm, Alien 3: The Gun, Aquajack and Missile Command. - Compiling: Fixed I/O watchpoints - Debugger . Added word alternates for operators in expressions: + plus, - minus, * times or mul, / div, % mod, ! not, ~ bnot,&& and, & band, || or, | bor, ^ bxor, lt <, le <=, gt >, ge >=, eq == and ne != . Added expression validation callback to verify names for CPUs and memory regions. Extended error codes to report incorrect memory spaces, memory names or memory sizes. Added verification callback to the debugger to validate CPU and memory region names, as well as verifying that a requested address space exists for a given CPU. 0.126u3 - NOTE: Due to a change internally with the way memory regions are handled, a large percentage of all files in the project needed to be updated. There's been a regression test against the change already, so we should be beyond crashing problems. But it is possible that some games may be missing sound due to mismatched sound regions. If you hear anything funky, please report it to MAMETesters so that we can get the problems ironed out in time for u4. - New games: Galaxi (v2.0) - New Non-Working games: Bust a Move 2 (JAPANESE ROM ver. 1999/07/17 10:00:00), Donchan no Hanabi de Doon, Hi Pai Paradise, Kurukuru Fever and Mayjinsen 3 - New clones: Killer Instinct 2 (v1.3k, upgrade kit) and Pool 10 (italian, set 3) - New drivers: galaxi.c - I8051 CPU . Added support for timer mode 0 (13 bit timer) . Cleaned up timer code a bit, fixing some off-by-one errors when timers overflow. - SH-2 CPU . Removed of unprintable chars (newlines) in SH-2 disassembler . SH2DRC . Add PC-relative load optimization and ability to disable if necessary . Add SUBV, replace ADDV with C version as a precaution (this fixes most of Bug #2026, except the part which is a separate bug). . Added new implementation which uses flags directly, keeping the C versions in reserve in case they are needed. . Simplified shift/rotate instruction implementations - cps2.c: Fixed 'Abort' in all CPS2 parent sets (ID 02043) - freekick.c . Verified Free Kick PROMs and improved documentation . Fixed proms names in countrun and freekick - gottlieb.c . A bit more cleanup in the driver, still incomplete . Replaced the 2x AY-3-8910A sound with AY-3-8913A in the 3stooges, cobram3, mach3, screwloo, usvsthem, vidvince and wizwarz - m63.c: Adjusted AY frequencies to proper 1.5MHz - naomi.c . Refactors many global and static variables in video\dc.c into a structure to hold the tile accelerator state . Textures should be better decoded with more pixel formats . Adds placeholders for some register probably used by the DIMM Board . Corrects a little error in a rom board register (very important, now at least the gdrom games try to start) . Added 317-5078 PIC data (80 bytes) in Capcom Vs. SNK 2 and Street Fighter Zero 3 Upper . AICA updates . Fixed ADPCM decoder to remove bad optimization and match YMZ280B. DC offset is fixed and output quality is higher. . Improved handling of slot monitor and timers B and C . Simplified interpolation code - stv.c: Enable strict PC relative loads for ST-V games; at least Cotton Boomerang needs them. - taito_l.c: Fixed upsidedown screen in Cachat and Tube-It (ID 02046) - warpwarp.c: Changed region cpu1 ($3000, 3400, 4800) to gfx1 - Combat School: Fixed missing graphics in clone Combat School (bootleg) (ID 00456) - Gee Bee: Changed region cpu1 ($3000) to gfx1 ($0). Replaced rom geebeeg.3a in clone Gee Bee (Gremlin) with geebeeg.3 from Gee Bee (Namco). - I, Robot: Fixed hang (ID 02023) - Kiki KaiKai: Added more documentation on the MCU - Lucky 74 . Pre-defined CPU and SND clocks . Switched the color system to RESNET calculations . Completed the remaining DIP switches . Added lamps support. Created a layout to show them. . Changes on the interrupt system (need to be verified on the PCB) . Renamed the graphics regions to more descriptive names . Correct the manufacturer's name . Splitted the driver to driver + video . Updated technical notes - Ms. Pac-Man: Changed unmapped read to see if it changes tunnel behavior - Polygonet Commanders . All communication hacks have been removed . Memory maps have been temporarily reverted while new DSP56k cpu core catches up . DSP56156 CPU core updates . Rewrote core logic, communications and interfaces . Added three parallel memory moves to the disassembler . Initial interrupt logic in place - San Francisco Rush 2049: Fixed memory leaks when loading a save state (ID 01999) - Sky Fox: Fixed issue with credits input (ID 02050) - Warriors of Fate: Fixed P3 inputs aren't working in clone (Chinese bootleg) (ID 02045) - Wily Tower: Fixed AY-3-8910A clock speeds - Memory maps merged in Beezer, bishi.c and Blades of Steel - Dipswitch fixes in btime, disco, lnc, lucky74s, mmonkey and zoar - Cheat engine . Added new option 'cheatpath' to specify one or more paths for cheat files. Removed old option 'cheat_file' . Removed old cheat.c/h and replaced them with code that will read and write the new XML-based cheat format using the new cheatpath option (cheats still need to be enabled in order to load at all). Note that the cheats are not implemented yet, but they are fully parsed. To test saving, whenever a cheat file is successfully loaded, it is immediately written back out as 'output.xml' to the cheat directory for validation. - MAME . Cleaned up ROM definition flags and removed some ugly hacks that had existed previously. Expanded to support up to 256 BIOSes. Updated ROM_COPY to support specifying a tag for the source region. Also updated the address map AM_REGION macro to support specifying a tag for the region. . Added region and regionbytes fields to the deviceconfig, which are auto-filled by the device manager before starting the device. This simplifies the auto-binding process for devices. Added new selector for device-specific ROM regions. Not yet wired up in the ROM loader. . Updated to build with the latest DirectX SDK, which doesn't support Direct 3D 8 & Direct Input 7. By default, the makefile is set up to compile the old way, but you can set DIRECT3D=9 and DIRECTINPUT=8 in windows.mak or on the command-line to build with a more modern SDK. . Changed the auto-binding behavior of CPU regions. Previously, the first CPU would auto-bind to REGION_CPU1 (that is, any ROM references would automatically assume that they lived in the corresponding region). Now, each CPU automatically binds to the region with the same tag as the CPU itself. This behavior required ensuring that all previous REGION_CPU* regions were changed to regions with the same tag as the CPU. . Introduced a new auto-binding mechanism for sound cores. This works similarly to the CPU binding. Each sound core that requires a memory region now auto-binds to the region with the same tag as the sound core. In almost all cases, this allowed for the removal of the explicit region item in the sound configuration, which in turn allowed for many sound configurations to removed altogether. . Changed symbol table reference parameters to void * from UINT32 . Updated the core memory_region_* functions to accept a tag instead of an integer. Added new memory_region_next() function to allow for iteration over all memory regions . Changed the way memory regions are referenced. Instead of a single integer value, regions are now referred to by a region tag. The region tag must be unique among all regions defined for a given game. This change required updating all the ROM region definitions in the project to specify the tag instead of region number. . Added the ability to pass an optional destructor to ui_menu_alloc_state() . Fixed menu handling so it doesn't swallow the tab key . Added more validation to the address map detokenization, in order to catch cases where multiple read/write handlers are assigned to a range. Fixed cases in the code that failed these checks. . Updated -listxml to output region class and tag for each ROM entry. . Updated xmlfile.c to specify the line number for each node, for more accurate error reporting. . Renamed video_exit() to winvideo_exit() for consistency in function names - Compiling . Cleaned up the mame.mak by adding all missing defines and grouping them based on cpu.mak . Added "deprecat.h" in a few src\mame\drivers files . Removed a few unnecessary checks after malloc_ort_die() calls . Changed two romload.c warnings to use GAMENOUN instead . Changed commented-out functions to #ifdefs. - Debugger . Updated debugger windows to display the CPU and region tags where appropriate. . Updated the expression engine's memory reference behavior. A recent update expanded the scope of memory references to allow for referencing data in non-active CPU spaces, in memory regions, and in EEPROMs. However, this previous update required an index, which is no longer appropriate for regions and will become increasingly less appropriate for CPUs over time. Instead, a new syntax is supported, of the form: "[tag.][space]size@addr", where 'tag' is an optional tag for the CPU or memory region you wish to access, followed by a period as a separator; 'space' is the memory address space or memory class you wish to access (p/d/i for program/data/I/O spaces; o for opcode space; r for direct RAM; m for memory regions; e for EEPROMs); and 'size' is the usual b/w/d/q for byte/word/dword/qword. 0.126u2 - New games: Shinobi III (Mega Play) and Player's Edge Plus (X002069P) Double Double Bonus Poker - New Non-Working games: Rail Chase 2 (Revision A) - New clones: Demon's World / Horror Story (set 5), Major Title (World) and Winding Heat (EAA, Euro v2.11) - DSP56156 CPU (Polygonet Commanders) . Disassembler rewrite . Rearranged decoding behavior . Updated code style to MAME standards . Tested each single-word opcode with custom ROMs - I960 CPU: Fixed incorrect behavior when generating interrupts - 8257 DMA (dkong.c): Fixed 8257 DMA terminal count stop for autoload mode and added callback function existence check. - 6532 RIOT (exidy.c, gameplan.c, starwars.c, tourtabl.c): Changed the 6532 RIOT device into a proper device. Rewrote the logic to be simpler and leverage the new attotime functions. Changed the I/O port setters to specify a mask, and changed the I/O port callbacks to pass in the previous value. Converted audio\exidy.c, audio\gottlieb.c and audio\starwars.c to use the new RIOT implementation instead of rolling their own. Updated gameplan and tourtabl driver to use the new device interface. - Laser Disc . Laserdiscs are now devices. Updated all drivers accordingly. . Added 2 channel Custom sound to esh.c, gpworld.c, istellar.c, lgp.c and segald.c - gottlieb.c . Began cleanup . Converted palette calculations to resistor weights . Correct video timing . Reduced the number of separate machine drivers . Fixed incorrect spriteram sizes . Populated full memory maps for the main CPU and the rev 1 sound board . Fixed gfx1 rom address in Video Vince and the Game Factory . More to come - gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c: Made the initialization of various Konami PPC drivers consistent from run to run, hopefully fixing most multisession issues. Also moved some allocations from static to dynamic storage. - model1/2.c . TGP now correctly uses table roms (model1/2 updated accordingly) . Fixed some loading instructions in the TGP, that fixes Sega Rally Championship automatic transmission bug. . Removed FIFO hack on Sega Rally Championship (game now runs) . Added analog ports reading for model2 2A/B/C . Fixed user5 rom address in model2 games - namconb1.c: Removed unnecessary ROM shuffling code in Namco System NB-2 - playch10.c: Fixed Button 1/2 mapping (ID 00595) - stv.c: Changed short names for STV BIOS back to single words - Aurail: Fixed coinage dipswitch (ID 02029) - Avengers In Galactic Storm: Fixed crash (SH2 recompiler bug) (ID 02007) - Bishi Bashi Championship Mini Game Senshuken: Fixed Coin 1 and Service 1 mapped twice (ID 01718) - Battle K-Road: Fixed game speed (ID 01113) - California Speed: Fixed refreshspeed causes horrible screetching (01892) - Flower: Merged CPU0 and 1 memory maps, improved interrupt generation. This fixes starting a game doesn't always register (ID 01472) - Gals Panic 3: Fixed crash at start (ID 01902) - Grand Striker 2: Fixed service mode is mapped twice (ID 01568) - Liberation: Replaced M6502 CPU1 with DECO CPU16 in clone Liberation (bootleg) - Live Gal: Fixed 'P1 Start' start a P2 game (and some inputs are misread in Test Mode) (ID 00479) - Mahjong Hyper Reaction: Fixed Kan, Pon, Chi, Reach and Ron are mapped twice (ID 01572) - Ms. Pac-Man: Added information on how to toggle the built-in speedup - Ms. Pac-Man/Galaga - 20 Year Reunion: Added information on how to toggle the fast shot in Galaga - Plotting: Added pld (gal16v8-b6-04.bin) - Pro Soccer: Fixedd DECO CPU16 CPU1 clock speed - Sega Rally Championship: Removed FIFO hack (game now runs) and fixed some loading instructions in the TGP, that fixes the automatic transmission bug. - Tinkle Pit: Converted KEYCUS implementation from a table to a LFSR - Two Tigers: Fixed controller calibration (ID 01448) - Virtua Cop 2: Added new user2 rom - Virtua Fighter Kids: Fixed logging for the SH-2 has been left on (ID 02019) - Virtua Racing: Added all missing user5 roms ($0, 2, 40000, 60000, 80000, a0000 and c0000). - Memory maps merged in battlnts.c, bbusters.c, Big Event Golf, Big Striker (bootleg) and Bionic Commando - Input port . Completed removal of all explicit calls to input_port_read_indexed() . Converted a number of drivers from A-C to using tagged input ports and AM_PORT_READ in the address maps . Made input_port_read_indexed() private to machine\generic.c. Eventually it will probably disappear altogether. Fixed the two remaining instances. - Dipswitches . Made dipswitch renderings consistent regardless of UI aspect . Added DIP locations in Best League, Black Touch '96, Bogey Manor, Bomb Jack, Boogie Wings, Bottom of the Ninth, Break Thru, Buggy Challenge, Bump 'n' Jump, btime.c, bwidow.c, bzone.c, Cabal, Canyon Bomber, cclimber.c, Crude Buster, Darwin 4078, Disco No.1, Guzzler, Lock'n'Chase, Squash (Itisa), Swimmer and Zoar . Fixes in bottom9, canyon, darwin, gottlieb.c, gstrik2 and squaitsa - Description changes of Demon's World and clones, Jet Wave (UAB, USA v1.04), Midnight Run (Euro v1.11) and Winding Heat (UBC, USA v2.22) - MAME . Changed MDRV_CPU_ADD to require a tag. Removed MDRV_CPU_ADD_TAG. Tagged all CPUs. . Removed MDRV_SOUND_ADD. Renamed MDRV_SOUND_ADD_TAG to MDRV_SOUND_ADD. All sound chips must now include a tag. Changed all existing drivers to define a unique tag for each sound chip. . Added validity checks to ensure no duplicate sound or CPU tags. Fixed several duplicates. . Added new functions attotime_to_ticks() and ticks_to_attotime() to convert between attotimes and a clock tick at an integral frequency. . Changed -listxml to now output the tag names for CPUs and sound chips - Compiling . Removed conditional logging code in favor of allowing the compiler to optimize it out. This prevents bitrot of #ifdef'ed code. . Moved more items out of .data by either applying const, removing the non-zero initializer (if its overwritten by init/reset) or by adding appropriate initialization code. - Debugger . Robustified key behavior when the debugger is visible. Should now properly ignore the "break into debugger" keypress and not allow related characters to filter through. Removed some hacks related to making that work in the past. . Changed osd_wait_for_debugger() to take a machine parameter and a "firsttime" parameter, which is set to 1 the first time the function is called after a break. The Windows debugger uses this to ensure that the debugger has focus when you break into it. 0.126u1 - NOTE: The cheat engine is disabled as of this version. It is currently undergoing a desperately-needed complete redesign and rewrite from scratch. By the time 0.127 is ready, we should have support for the vast majority of existing cheats working once again. - New Non-Working games: Capcom Vs. SNK 2 - New clones: Daytona USA Deluxe '93, Virtua Fighter 2 (Revision A) and World Class Bowling (v1.6) - I960 CPU: Respect the rounding mode for CVTRI - KONAMI CPU: Added save state suport - SH-2 CPU: UDRC-based SH-2 dynamic recompiler: All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble. All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost. Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC. - SH-4 CPU . Fixed TRAPA and some versions of FMOV . Improved disassembly for MOV.W, MOVA, MOV.L, FIPR and FSCA - Dynamic Re-Compiling: Fixed edge case in the DRC front-end that would incorrectly tag the end of a sequence as "return to start" even if the last instruction did not abet the starting instruction. - 8253 PIT . Changed the implementation to use timers internally . Removed the frequency change callbacks - EEPROM: Changed direct access EEPROM interface to return the "bus width" of the EEPROM data, and the size is in terms of units, not bytes. Updated all drivers accordingly. - Laser Disc (makemeta changes) . Split out Manchester code parsing into a separate utility module . Rewrote Manchester code parsing to be clock based . Updated tools\makemeta.c to call the new functions . Changed makemeta to parse a different format for metadata . Fixed Huffyuv decompression in aviio . Added more robust logic to parse out the white flag - champbas.c: Merged exctsccr.c into champbas.c - galaxold.c/galdrvr.c . Fixed cocktail sprite position in video\galaxian.c . Fixes that the frog disappears for player 2 if moved backwards - naomi.c . Added newest Japanese NAOMI BIOS (epr-21576h (Japan)) . Added machine\gdcrypt.c (DES decryption, used by GD-ROM based titles) - snk68.c . Changed partial refresh policy in snk68.c and updated comments . Fixed gfx2 rom loading . Fixed 68000 clock speed and VSync . Fixed large pillar in P.O.W., which pops up too late at 3/4 of the 1st level (ID 00871) - stv.c . Added ST-V BIOS info based on text at 0x800 (byte swapped) . Reorganized the BIOS list & description . Added the USA BIOS to Super Major League and it's a USA only cart - NAOMI House of the Dead 2 BIOS: Changed/added the HOTD2-specific BIOSes from NAOMI BIOS to 'NAOMI House of the Dead 2 BIOS' - Aliens . Added save state suport . Fixed a few graphics glitches (ID 00368) and player sprites in two player mode (ID 00244) . Fixed KONAMI CPU clock speed - Arabian Magic: Fixed rain effect water color in level 6 (ID 00895) - Cabal . Merged memory maps . Fixed wrong soundfx in clone Cabal (bootleg of Joystick version) (ID 01547) - Champion Base Ball: Fixed Game resets itself in the middle of test process in clone (Japan set 1) (ID 01973) - Change Lanes . Dipswitch fixes . Added DIP locations . Set Gear Shift defaults to Reverse (ID 01910) - Exciting Soccer / II . Merged Exciting Soccer with Champion Base Ball (ID 01058) . Fixed ALPHA-8301 clock speed and proms rom loading - Face Off: Fixed screen is upside down, when you go for a penalty shot (ID 00079) - Frogger: Fixed background doesn't rotate in cocktail mode (ID 02009) - Golgo 13 Kiseki no Dandou: Fixed sound1 rom address from $90000 to $0 - Guardian . Added MCU simulation for 'getstar' and 'getstarj' heavily based on 'gtstarb1' bootleg . Cleaned/fixed dipswitches and added port locations . Added notes with the differences between the different sets (and especially detailed the numerous ingame bugs in 'gtstarb2') - Gunlock: Fixed color of battleships in 1st stage (ID 01917) and explosive color of the demo (ID 01925) - Kaiser Knuckle . Fixed P1/2 button 4 mapped twice (ID 01574) . Fixed character gets all messed up when thrown by Azteca's medium punch throw the palette of the thrown (ID 00900) - The King of Dragons: Moved clone The King of Dragons (bootleg) to Final Crash driver (which will probably end up being the home of the CPS1 bootlegs). - Match It: Fixed flipscreen dipswitch (ID 01891) - Performan: Cleaned/fixed dipswitches and added port locations - Pushman: Fixed 'Flip Screen' dipswitch (ID 01887) - Romar Triv: Fixed wrong mapped buttons for Player1 (ID 02006) - San Francisco Rush 2049: Added new user1 rom to clone 'San Francisco Rush 2049: Special Edition' - Street Fighter Zero 3 Upper . Marked 'Street Fighter Zero 3 Upper' as a GAME and not BIOS as before . Added user1 rom ($0), once the GDROM DISC is emulated this won't be loaded - Super Real Mahjong P5 . Removed hack in drive machine R3000 . Adjusted R3000 frequency to 25 MHz according to speglsht (the hardware is the same) . Adjusted visible area (not sure it's correct) . Fixed cpu1 rom address - Tiger Heli . Added MCU simulation for (bootleg set 1) . Cleaned/fixed dipswitches and added port locations . Added notes with the differences between the different sets - Virtua Fighter 2: Added sound1 rom ($400000) from clone (Revision A) to Virtua Fighter 2, (ver 2.1) and (Revision B) - World Class Bowling: Added sound1 rom ($200000) from clone (v1.6) to (v1.61) - World Rally: Added game support to tiny.mak/.c - Input port: Converted to use tagged inputs and handlers all drivers starting with S & T. Simplified input reads in system24 (removing a redundant handler). Cleaned up a bit inputs in system 16 & 18 bootlegs (among the other things, now coinage and P2 inputs in fpointbl & fpointbj work again). Removed a lot of redundant #define from taito drivers, replacing them with PORT_INCLUDEs and definitions from taitoipt.h. - Dipswitch fixes in changela, getstar, hypreact (ID 01959), perfrman, pushman, tigerh and victroad (ID 01986) - Description changes of Final Crash (bootleg of Final Fight) and Guardian (US) - MAME . Changed the ROM loading code to actually alter the region flags based on the CPU endianness and bus width when creating the region, rather than fixing them up on the fly. This means that callers to memory_region_flags() will get the correct results. . Replaced the crazy number of get/set functions for render containers with a single get/set of a user settings struct. . Added new module uiinput.c which manages input for the user interface. The OSD is responsible for pushing mouse events and character events to this interface in order to support mouse movement and text-based input (currently only used for the select game menu). Added support for navigating through the menus using the mouse. . Redesigned the UI menus so that they can maintain a richer state. Now the menus can be generated once and reused, rather than requiring them to be regenerated on each frame. All menus also share a comment eventing system and navigation through them is managed centrally. Rewrote all the menus to use the new system, apart from the cheat menus, which are now disabled. Reorganized the video menu to make it easier to understand. . Converted UI startup screens to use astrings . Fixed memory leak in romcmp - Debugger . Changed the expression engine to use two callbacks for read/write rather than relying on externally defined functions . Expanded memory access support in the expression engine. Memory accesses can now be specified as [space][num]@
. 'space' can be one of the following: p = program address space of CPU #num (default), d = data address space of CPU #num, i = I/O address space of CPU #num, o = opcode address space of CPU #num (R/W access to decrypted opcodes), r = direct RAM space of CPU #num (always allows writes, even for ROM), e = EEPROM index #num, c = direct REGION_CPU#num access, u = direct REGION_USER#num access, g = direct REGION_GFX#num access and s = direct REGION_SOUND#num access. The 'num' field is optional for p/d/i/o/r, where is defaults to the current CPU, and for e, where it defaults to EEPROM #0. 'num' is required for all region-related prefixes. Some examples: w@curpc = word at 'curpc' in the active CPU's program address space, dd@0 = dword at 0x0 in the active CPU's data address space, r2b@100 = byte at 0x100 from a RAM region in CPU #2's program space, ew@7f = word from EEPROM address 0x7f and u2q@40 = qword from REGION_USER2, offset 0x40. The 'size' field is always required, and can be b/w/d/q for byte, word, dword, and qword accesses. 0.126 - New games: Lucky 74 (small) - New Non-Working games: Air Trix, Planet Harriers, Star Wars Pod Racer, Street Fighter Zero 3 Upper and Wave Runner (Revision A) - New clones: Bubble Symphony (bootleg with OKI6295), Emergency Call Ambulance (Export), Lucky 74 (big), Sangokushi II: Huo Fenghuang (Chinese bootleg), Street Fighter II' - Champion Edition (Magic Delta Turbo, bootleg), Virtua Fighter 3 (Revision A) and Zhong Guo Long (China, V0303) - New drivers: hikaru.c and lucky74.c - hikaru.c . Added Hikaru BIOS (Sega 2000) . Added Sega games: Air Trix, Planet Harriers and Star Wars Pod Racer - model2.c: Added Revision numbers to Daytona USA, Dead or Alive, Manx TT Superbike, Over Rev, Pilot Kids, Sega Touring Car Championship, Top Skater and Virtua Fighter 2. - model3.c: Added Revision numbers to Daytona USA 2, Dirt Devils, Fighting Vipers 2, Harley-Davidson, Scud Race Plus, Spikeout, Star Wars Trilogy, Virtua Fighter 3, Virtua Striker 2 '99.1 and Virtual On 2. - naomi.c . Added Ferrari F355 USA BIOS to NAOMI . Added support for NAOMI GD-ROM BIOS (Sega 2001) and Street Fighter Zero 3 Upper - tatsumi.c: Fixed access violation crash in Big Fight and Cycle Warriors (ID 01896) - thepit.c: Fixed reversed screen in cocktail mode in all games (ID 01854) - Cyber Cycle: Fixed crash during intro (ID 01951) - Driver's Eyes . The communication work between CPU and 3D DSP should be limited to the master M68000, if the address mapping is done in the shared memory, master CPU would be disturbed by the slave one. . DIP Switches: DIP3 ON for Screen on the left and DIP4 ON for Screen on the right should not toggle on both. . The left, center and right screens have separate programs and boards, each would work independantly. About projection angles of left and right screen, the angle is correct on 'DRIVER'S EYES' title screen, however in the tracks of demo mode it doesn't seem correct. . The game also features a pretty nice 2D sprite layer, which still doesn't show up yet. It is known that the CPU does constantly feed the 2D video memory some meaningful and logical data. . Fixed access violation (ID 01965) - Gaia Crusaders . Improved sprite rendering on Gaia Crusaders (animate at 60fps now, not 30) . Fixed missing shadows beneath enemies or the sprites of the old man that talks to you (ID 00388). - Golden Tee Golf II: Fixed access violation in clone (Joystick, V1.0) (ID 01964) - The King of Dragons: Replaced The King of Dragons (bootleg) (kodb) set with complete dump from known bootleg board (different gfx rom layout) - The Lost World: Removed region sound1 ($200000, 600000) - Lucky 74: Set the proper screen size. Decoded graphics. Decoded the dual-state color circuitry. Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly. Emulated 2x PPI 8255 devices. Mapped the 4x DIP switches banks. Added PORT_DIPLOCATION to all DIP switches. Added dipswitches 'Bet Max', 'Limit', 'Jackpot' and 'Pay Table'. Added the Memory Reset Switch. Added the 2nd video & color RAM. Added a 2nd tilemap for background graphics. Simplified the graphics banks. Fixed colors for foreground graphics. Fixed visible area to show the top of background graphics. Finally fixed colors for background graphics. Added all coinage DIP switches. Mapped all remaining inputs (service and player buttons). Added pulse time limitation to coins A, B & C. Switched to use 4x 8255 in replace of 2x 82c255 for I/O. Created a handler to feed the Z80 port0 requests. Promoted lucky74s to 'working' state. Added an alternate set, but the program ROM looks like incomplete, protected or just a bad dump. Parent/clone relationship. Added technical notes. Hooked interrupts. Hooked the AY8910 and therefore the NMI trigger. Changed the input "Key In" to active high. - Street Fighter EX 2 Plus: Fixed cheat crash (ID 01952) - Survival: Fixed possible 64-bit crash/hang (video\phoenix.c) - Cheat engine . Fixed scrolling speed in case a cheat dat has invalid (i.e. 0) settings . Fixed Force Range cheats not working (ID 01983) . Fixed incorrectly populating empty spacer comment cheats (ID 01984) . Fixed Enable Cheats menu only showing the first 24 cheats for ANY game (ID 01980) . Fixed Cheat menu flickers (ID 01971) . Fixed -CHEAT trigger causes MAME crash when starting or exiting with some sets (ID 01968) . Fixed some problem with cheat system (ID 01969) - MAME . Added per-device and per-CPU validity checks . MAME output routines: Fixed osd\windows\output.c unregister_client crash (ID 01967) . Fixed memory leak in screenless systems with -mngwrite (ID 01963) 0.125u9 - New games: Galactic Storm (Japan) and Touchmaster 8000 (v9.04 Standard) - New Non-Working games: King of Football - New clones: Captain Commando (bootleg), 2x Cadillacs and Dinosaurs (bootleg with PIC16c57), Hell Night (ver EAA), Moon Lander (bootleg of Lunar Rescue), Night Striker (World), Night Striker (Japan), 2x The Punisher (bootleg with PIC16c57), Spy Hunter (Playtronic license), Star Force (encrypted, set 2) and Wiz (Taito, set 2) - New drivers: galastrm.c and koftball.c - ADSP2100 CPU: Split execution loop between debug/non-debug - I80286 CPU: Fixed POP ES in protected mode - SH-2 CPU . Refactored to separate out things that aren't part of the interpreter . Converted context struct to go through a pointer - TMS32031 CPU: Fixed core so that it doesn't call the debugger if not enabled - MIPS3 recompiler: Don't generate compare interrupts unless the compare register was written to; fixes hangs in blitz, calspeed and others. Stash jump target address before executing delay slot; also, don't update link register until delay slot has finished executing; fixes hang in gauntleg. Marked IDT instructions for R4650 only. Accounted for time taken in throwaway likely branch slots. Fixed jalr to respect the correct link register. Fixed c.eq, c.lt, c.le to fail if unordered. Fixed swxc1, sdxc1 to use the correct source register (fixes many Gauntlet problems). Fixed CCR31 display in debugger. Fixed LWXC1/LDXC1; corrects gauntleg camera. - NiLe sound (ST-0026): Fixed pitch calculation (see Super Real Mahjong P6) - Midway DCS Audio sound: Fixed some save state problems in audio\dcs.c. Still comes out garbled on a load, however. Extended memory.c to support up to 4096 banks. - S14001A sound . Improved filtering to be more accurate to the chip . Changed internal audio renderer to produce 4 bit sound as the real chip does . Moved filter outside of the main rendering loop into the glue code . Note: With this update, you may hear a whining noise that was not previously present. This is accurate to the chip! The real chip would almost always have an analog filter placed on its output to suppress this whine. - alg.c: Fixed access violation when taking a snapshot - asteroid.c: Fixed assertions in all sets - calomega.c . Unified MACHINE_RESET for systems 903/904/905 . Created a new handler to manage the first 4 bits of system 905's PIA1 portB as input mux selector (905 is still not working) . Updated technical notes - cps3.c: Fixed access violation - namcos21.c: Fixed unable to locate input port 'AN7' - pgm.c: Improved behavior of PGM on big-endian. The ARM7 boots properly now but can't sync with the 68k for some reason. - segag80v.c: Fixed assertions - seta.c: Cleaned up input handling - wilytowr.c: Changed driver wilytowr.c to m63.c. Added Irem M63 PCB layout (based on Atomic Boy) - taito_z.c: Added DIP locations to all games - tumbleb.c: Added port tags and updated memory definitions and read handlers - Big Event Golf: Cleaned up input handling - Cliff Hanger: Fixed access violation when taking a snapshot - Cadillacs and Dinosaurs: Added rom loading for the Cadillacs and Dinosaurs sets with PICs. No good dumps of the PICs exist, and this is mainly for reference so that we don't forget the graphic rom loading on them. They don't work. They're basically the same set from different PCBs, so one will probably be removed eventually. - Flower: Added state saving - Gauntlet Legends: Fixed unable to locate input port 'IN1', game cannot start. - Hacha Mecha Fighter: Fixed unable to locate input port 'DSW' - Night Striker: Removed unnecessary analog input remapping. Added analog stick adjusting port. - Omega Race: Fixed assertions - Pleiads: Fixed Fatal error: activecpu_get_info_int() called with no active cpu! - Punisher: Added rom loading for the Punisher sets with PICs. No good dumps of the PICs exist, and this is mainly for reference so that we don't forget the graphic rom loading on them. They don't work. They're basically the same set from different PCBs, so one will probably be removed eventually. - Strip Teaser: Preliminary emulation of video hardware (simple blitter). Fixed visible area. - Tailgunner: Fixed Fatal error: Input ports cannot be read at init time!" with -debug - U.S. Classic: Fixed start 2P game. Seems like 2P Start key has no effect. - Vapor TRX: Fixed freeze - World Rally 2: Added pot wheel support - Input port: Fixed Various games with Fatal error: Input ports cannot be read at init time. - Dipswitch fixes in bigevglf, bshark, contcirc, dblaxle, enforce, nightstr, racingb, riskchal, wlstar and wondl96 - MAME . Fixed Fatal Exception on In-Game Menu . Removed calls to memory_set_context() in favor of cpuintrf_push_context() . Fixed memory leak in ledutil.c . Fixed 64-bit writes in UML C back-end . Fixed incorrect assumption in the x86/x64 implementation of HASHJMP that the base table for a mode will always be allocated when a fixed mode is first used. . Cheat engine: Roll back older periodic function. Now standard/old format work in this function. Otherwords, several operations which doesn't exist in older function and added recently are now disabled. Separated load_cheat_code() to 3 indipendent functions and added new cheat options, "Load New/Standard/Old Format Code" (Default : load all format codes). NOTE: Delete all cheat options in the database before start or reload default options (Shift + Reload key) in cheat general menu. Added format strings structure to accept huge size strings in loading a database to prevent from breaking other strings. Changed Link in new format. Label code is now "Link-Label" and sub-label is "Label-Sub-Link", "Standard-Link" is no longer label. Added choose_label_index() to manage label selection. Fixed build_label_index_table() to prevent from crashing and disabled to build label index table in case of standard/old format. Fixed memory free problem in case of standard/old code. Fixed several reported/found bugs. - Compiling: Fixed assertion in astring.c when compiled against MSVC and the string is UTF-8 - Debugger . Changed how watchpoints work so that supporting them adds 0 overhead unless some are actually live. . Fixed access violation on hardreset with -debug . Fixed TMS32031 so that it doesn't call the debugger if not enabled 0.125u8 - New Clones: Mahjong Electron Base (parts 2 & 4, Japan, BOOTLEG) - namcos22.c: Fixed input port read during init on most (Super) System 22 games - Flower: Changed Flower (bootleg) to the parent set Flower (Sega/Alpha) (Sega game number 834-5998). The game has also all proms. - Description changes of Flower (Komax) and Flower (Sega/Alpha) - Debugger: Updated config.txt to describe debugger. Turned off debugger flag by default. - MAMETesters Bugs: Fixed 01935: [Core] All output commands (-listxml, -cc, -listfull, ETC) crash with error 0.125u7 - New Non-Working games: Cal Omega - Game 8.0 (Arcade Black Jack), Cal Omega - Game 12.3 (Ticket Poker) and Cal Omega - Game 23.0 (FC Bingo (4-card)) - New Working games: Survival and Wonder League '96 (Korea) - I8x41 CPU: (see chukatai, decocass.c, tnzsj) . Removed i8x41.ram hack from the I8x41 CPU core . Added configurable I8x41/I8x42 subtype support . Fixed carry flag handling in ADDC A,#N and RLC A instruction . Fixed cycle count for DJNZ instruction . Fixed disassembly for opcode 0x67 . Updated the ram sizes (8041 uses 128 bytes, 8042 uses 256 bytes) . Added support for re-enabling interrupts inside an interrupt handler - ADSP21062 (SHARC) CPU: Added save state support - Z80 CPU . Removed compatibility to old Z80DMA driver . Now uses std. callbacks (READ8_HANDLER, WRITE8_HANDLER) . Updated Mario Bros. and Donkey Kong 3 accordingly - Dynamic Recompiling . Fixed DRC WRITEM opcode on 64-bit to call through memory instead of directly. Solves assertions with GCC 4.3 and 64-bit Linux. Fixed DCMP opcode on the 32-bit back-end. Fixed LZCNT opcode in x86 and x64 back-ends. Added support for flags in LZCNT and BSWAP opcodes on x86 and x64 back-ends. . Changed DRC frontend to pass a pointer to the previous instruction when describing. Updated PowerPC frontend to approximately take into account branch and CR logic folding in timing computations. . Added save state support to the MIPS3 recompiler and virtual TLB system . Correct the dependencies for the MIPS core . Changed DRC frontend to pass a pointer to the previous instruction when describing. Updated PowerPC frontend to approximately take into account branch and CR logic folding in timing computations. . Added save state support to the PowerPC recompiler - NiLe sound: Added ST-0026 NiLe (sound) emulation to Super Real Mahjong P6 - RF5C400 sound: Added save state support - Sega/Yamaha 315-5560: MultiPCM/315-5560 rewrite. All features are now supported including PLFO and ALFO. - CAGE audio system: Added save state support (atarigt.c, kinst.c, midvunit.c, midzeus.c, seattle.c, vegas.c) - K056800 (MIRAC): Added save state support (gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c, zr107.c) - ALPHA8201 CPU, M65CE02 CPU, TMC0285 sound, TMS5200 sound: Fixed a few build problems - 8257 DMA (dkong.c) . Implemented 8257 DMA controller as proper device . Rewrote 8257dma.[ch]. Updated dkong.c accordingly. - SMC91C9x Ethernet & Modem Controller . Converted to proper device . Updated seattle.c and vegas.c drivers to allocate devices . Added separate 91C96 device for eventual 'San Francisco Rush 2049' use . Cleaned up code . Added save state support - Voodoo GFX . Converted Voodoo into a proper device. Updated drivers accordingly. . Added save state support . Fixed poor default CLUT handling in the driver - ampoker2.c, atarigx2.c, cabal.c and ksys573.c: Fixed missing SHA1 values - atarig1.c: Fixed 'Fatal Exception' crash - calomega.c . Lots of improvements on the input system . Adjusted the CPU adressing to 14 bits for systems 903/904 and to 15 bits for system 905. Rewrote all the ROM loads based on these changes. . Defined CPU, UART and sound clocks . Splitted the PIAs and sound interface to cover different systems . Added sound to system 905 games . Added MACHINE_START and MACHINE_RESET to initialize the devices properly . Documented the systems 903/904 UART connections . Traced and added PIAs connection diagrams for systems 903/904/905 . Hooked the missing dipswitches bank to the AY8912 for system 903 . Added preliminary serial/UART support to systems 903/904 . Hooked the missing dipswitches bank to the ACIA 6850 for systems 903/904. It allow to choose the proper transfer rate for UART. . Fixed graphics ROM loads for different Hotline versions . Renamed all roms of each set according to the systems schematics and official list . Cleaned-up sets and driver . Updated technical notes. - dkong.c . Merged driver init code for drakton and strtheat and made decryption more compact . Moved decryption and driver init code into dkong.c . Implemented 8257 DMA controller as proper device. Rewrote 8257dma.[ch]. Updated dkong.c accordingly. - gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c . Added save state support to konppc module . Cleaned up system register access in Konami PowerPC games . Connected EEPROM in Hornet driver (doesn't seem to affect much) . Altered network IRQ timing to fix several problems . Most games are back to their previous "working" states . Added more complete PCB infos - hornet.c: Added save state support - kinst.c . Added save state support . Fixed mass coin input disables dipswitch access, and thus further coin input during a fight in all sets . Fixed attract mode graphics regression in clones Killer Instinct (v1.3), (v1.4) and (proto v4.7) - konamigx.c: Update video parameters to use actual values written to the CCU. Fixed VSync. - megadriv.c: Removed indexed reads - midtunit.c, midvunit.c, midwunit.c, midxunit.c, midyunit.c, midzeus.c and seattle.c: Updated drivers which shared some input code - mystwarr.c: Fixed VSync - namcofl.c: Fixed read from input port during VIDEO_START - namcos1.c, namcos2.c, namcos10.c, namcos11.c, namcos12.c, namcos21.c and namcos23.c: Updated most Namco systems + a couple of old drivers sharing the input handling - naomi.c: Added 4x Japan BIOSes to NAOMI and 1x Japan BIOS to NAOMI 2 - nbmj9195.c...: Unified Nichibutsu Mahjong input ports (using common ports in nbmj9195.c as well as in the other drivers), removed indexed read and exploited tags to reduce complexity in a couple of handlers. - royalmah.c: Simplify input - segag80v.c: Fixed duplicate P1 + P2 Starts mapped in Star Trek, Tac/Scan and Zektor. - superqix.c: Fixed game resets after starting in Super Qix (bootleg), Perestroika Girls and Perestroika Girls (Fuuki license) - Balloon Bomber: Fixed Player1 Left+Right and Button 1 mapped twice - Choplifter: Fixed Player2 video is upside down - Combatribes . Finish work on ddragon3 driver . Mapped the correct dip "SW1-8", before it was incorrect: Added "FBI Logo" dipswitch and fixed the dips condition's implementation to avoid the MAME crash. - Fairyland Story: Verified clocks and adjusted sound volumes. Fixed M68705 CPU3 clock speed. - Got-cha Mini Game Festival: Set OKI6295 pin 7 to high - Gradius 4: Fixed 3D gfx problem - Grand Champion: Fixed input port read at init time - 1000 Miglia/Mille Miglia 2: Great 1000 Miles Rally: Added 360degree wheel (dial) input to GTMR, which is available when the Controller dip is set to 'Wheel', and Controls dip is set to '1P Side'. Note when Controls dip is set to 'Both Sides', 270degree wheel (paddle) input is used. - Joust: Fixed Player1 and Player2 Start buttons are mapped twice - Moon Cresta: Fixed corrupted enemies in 3rd + 4th Wave - No Man's Land: Fixed unable to locate input port 'DSW' - Sky Fox: Fixed Coin 1 mapped twice - Super Qix: Fixed sprites slowdown - Super Real Mahjong P6: Added ST-0026 NiLe (sound) emulation - Super Real Mahjong VS: Fixed assertion - See See Find Out: Fixed Player 2 Start mapped twice - Survival: Added DL57S22/AY-3-8910A input protection (Game now playable). - Teeter Torture: Fixed player movement has slowed - Winding Heat: Fixed game freeze - Wonder League '96: Added protdata.bin (shared ram data) and fixed dipswitches (Game now playable). - Xexex: Fixed VSync - Input port . Fixed input port read validation. The previous check was way too aggressive, and prevented CUSTOM_INPUT handlers from reading other ports. This one sets an "all clear" flag as soon as the configuration data is loaded. . More conversion to input_port_read: Updated the whole mid*unit family of drivers + seattle & zeus which shared some input code. Updated most namco systems + a couple of old drivers sharing the input handling, minus namcos22. Updated most of the M->Q drivers + finally removed indexed reads from megadriv.c (without breaking ssf2ghw). Removed indexed read from drivers starting with r (and slightly simplify inputs in royalmah.c). Unified nichibustu mahjong input ports (using common ports in nbmj9195.c as well as in the other drivers), removed indexed read and exploited tags to reduce complexity in a couple of handlers. . Fixed duplicated inputs in G-Stream G2020 and williams.c - Dipswitch fixes dquizgo, rastan, realbrk, wlstar, wondl96 - Description changes of Action Fighter (FD1089A 317-0018), The Combatribes (bootleg Set 2) - MAME . Fixed core video handling of save states with dynamic screen resolutions . Added machine parameter to memory_region() and memory_region_length() functions. Cleaned up usage of these throughout the code to cache pointers rather than calling these functions repeatedly during loops. . Cleaned up most of the machine stuff in src\emu\machine. There is a bit left to clean up, but it's mostly stuck at some interfaces now. . Cheat engine: Updated cheat system: Merged 3 different search menu functions to search_main_menu(). Added new cheat options, "Vertical/Horizontal Key Repeat Speed". NOTE: Delete all cheat options in the database before start or reload default options (Shift + Reload key) in cheat general menu. Changed assignment of Entry for Activation Key and Pre-enable command code. Now there are check the tag in comment field instead of index number. But it's only for new format command and old is as before. Added tag output in save_activation_key() and save_pre_enable(). Cleaned up save_cheat_options() to output description. Changed memory read function in watchpoints. No longer "Debugger" watchpoint mis-hit "Cheat" watchpoint. Fixed several reported/found bugs. Renamed funcitons/enum based on coding guidlines. All functions are completed in this update. . Explicitly disabled overlays for non-native snapshots (native snapshots already had them disabled). . Fixed input port read validation. The previous check was way too aggressive, and prevented CUSTOM_INPUT handlers from reading other ports. This one sets an "all clear" flag as soon as the configuration data is loaded. - Compiling: Fixed make MSVC_BUILD=1 -j2 and correct an oversight in the cross-build support - Debugger . Changed debugger so it does not stop while we are waiting for a pending event to occur. This eliminates some confusion during reset and state loading. . Removed DEBUGGER flag from makefile and ENABLE_DEBUGGER macro from the source code. All MAME builds now include the debugger, and it is enabled/disabled exclusively by the runtime command-line/ini settings. This is a minor speed hit for now, but will be further optimized going forward. . Changed the 'd' suffix in the makefile to apply to DEBUG builds (versus DEBUGGER builds as it did before) . Changed machine->debug_mode to machine->debug_flags. These flags now indicate several things, such as whether debugging is enabled, whether CPU cores should call the debugger on each instruction, and whether there are live watchpoints on each address space. Redesigned a significant portion of debugcpu.c around the concept of maintaining these flags globally and a similar, more complete set of flags internally for each CPU. All previous functionality should work as designed but should be more robust and faster to work with. . Added new debugger hooks for starting/stopping CPU execution. This allows the debugger to decide whether or not a given CPU needs to call the debugger on each instruction during the coming timeslice. Also added new debugger hook for reporting exceptions. Proper exception breakpoints are not yet implemented. 0.125u6 - New Working games: Alien Storm (set 4, World, 2 Players, FD1094 317-0154) - New clones: The Combatribes (Italian bootleg), Terra Force (bootleg with additional Z80), Turbo Out Run (cockpit, FD1094 317-0109) and Wonder Boy III - Monster Lair (set 5, System 16A, FD1089A 317-xxxx) - MIPS3 recompiler . Added UML comments for common state variables . Removed some unused fields . Implemented LL/LLD/SC/SCD (only works single-processor for now) . UML: Reactivated back-end validation mechanism. Added back-end validation for ADD/SUB/MUL/DIV/CMP forms. Fixed several errors in dealing with more obscure flag combinations. - MIPS and PowerPC CPUs: Created common virtual TLB managment module. Updated MIPS and PowerPC code to make use of it. - Sharp LR35902 CPU: Renamed "Nintendo Z80GB" GameBoy CPU core to "Sharp LR35902". - bagman.c: Added 2nd AY-3-8910A sound to Botanic, Pickin' and Squash (Itisa) - cps1.c . Changed all games after Street Fighter 2 CE to have a 12MHz clock. Verified on Mega Man and Quiz & Dragons (original kits with plastic case) . Changed 68000 CPU1 clock speed to 12MHz in Capcom World 2, Mega Man - The Power Battle and clone Rockman - The Power Battle (CPS1 Japan 950922), Pnickies, Quiz & Dragons (Japan 940921) and Quiz Tonosama no Yabou 2 Zenkoku-ban - crystal.c . Progress on protection simulation for 2 Crystal System titles. Still not working. . Fixed manufacturer in Office Yeo In Cheon Ha . Fixed visible area, year and manufacturer in Top Blade V - ddragon3.c . The Combatribes: Fixed the mess dips location. Added the missing dips (now are 8x2). Fixed the "Stage Clear Energy" dips. Adjusted the frame rate from 60Hz to around 57Hz as reported on mametester ID 00417. Adjusted OKI frequency to 1MHz (according to recording on mametester ID 00181). Adjusted the volume (according to recording on mametester ID 00181 and 01441). . Double Dragon 3: Added dips location in all sets. Added the missing dips (now are 8x2) on clone 'Double Dragon 3 - The Rosetta Stone (bootleg)'. Adjusted the frame rate from 60 to around 57Hz as reported on mametester ID 00417. Adjusted OKI frequency to 1MHz (according to recording on mametester ID 00181). Adjusted the volume (according to recording on mametester ID 00181 and 01441). - gstriker.c . Some protection improvements for Tecmo World Cup '94 and V Goal Soccer . Fixed 68000 CPU1 clock speed in V Goal Soccer - konamigx.c . Set screen refresh rate to 58Hz (parameters from developer manual are not 100% correct) . Removed sound CPU clock hack. Fixed 68000 CPU2 clock speed. - tecmosys.c: Set Tecmo System screen refresh rate to measured 57.4458Hz in Deroon DeroDero and Touki Denshou -Angel Eyes- - wilytowr.c . Added sound emulation to Wily Tower, clone Atomic Boy and Fighting Basketball. . Changed region cpu2 to user1 in Fighting Basketball. . NOTE: Atomic Boy and Fighting Basketball req different interrupt (T1) timing than wilytowr, otherwise music/fx tempo is too fast. Maybe both tmings are wrong - must be verified on real PCB. Extra space in atomboy 2764 eproms is filled with garbage Z80 code (taken from one of code roms, but from different offset). Fghtbskt has one AY, but every frame writes 0 to 2nd AY regs - probably leftover from Wily Tower sound driver/code. I'm not sure about sound_status write - maybe it's something else or different data (p1?) is used as status. - Alien Stormed missing FD1094 317-0154 key to clone Alien Storm (set 4, World, 2 Players, FD1094 317-0154) (Game now playable). - Raiden: Fixed Flip_Screen dipswitch in clones raidena, raidenk and raident. - Squash (Itisa) . Improvements to the driver . Added 2nd AY-3-8910A (1.5MHz) sound and dipswitches 'Protection?' and 4x 'Unknown'. - Tank Force: Some progress on clone Tank Force (US, 4 Player) inputs - Tetris: Added new cpu1 roms to clone Tetris (set 2, Japan, System 16B, FD1094 317-0092) - Dipswitch fixes in bagman.c, battlcry, ddragon3.c, gstriker.c and squaitsa - Description changes of Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021), Alien Storm (set 4, World, 2 Players, FD1094 317-0154) and Office Yeo In Cheon Ha (version 1.2) - MAME . Cleaned up software bilinear filtering code. Added bounds checking. Enabled by default for snapshots and movie rendering. . Added a validity check against reading input ports at init time. . Added missing machine parameters and removed deprecat.h usage in a number of drivers\ and machine\ files. . Converted many drivers in the d-j alphabetical range to use input_port_read() instead of input_port_read_indexed(). . Improved AVI and MNG recording to properly duplicate/skip frames as appropriate to keep the correct framerate. . Added new function video_get_view_for_target() which selects a view based on a command-line parameter and the configuration. Changed Windows OSD code to use this instead of its own logic. Changed -snapview to share the logic as well, enabling 'auto' as a -snapview option. . Added new option: -snapsize, which lets you specify the target resolution for snapshots and movies. The existing behavior is still the default: create snapshots and movies at native pixel resolutions. . Added new option: -snapview, which lets you specify a particular view to use for rendering snapshots and movies. The existing behavior is still the default: use a special internal view and render each screen to its own snapshot in its own file. When using this option to specify a view other than 'internal', only a single snapshot file will be produced regardless of how many screens the game has. 0.125u5 - New games: 5x Player's Edge Plus (PS0014, PS0022, PS0043, PS0045 and PS0308), 2x Super Moto (Italy) and SWAT Police - New Non-Working games: Cal Omega - Game 18.7 (Amusement Poker), Euro Jolly X5, Grand Prix, Mystery Number, 2x Shark Party, Squash (Itisa), Victor 21 and Victor 5 - New clones: Head Panic (ver. 0117, 17/01/2000), Tank Force (US, 4 Player) and Videomat (polish bootleg) - New drivers: itgambl3.c and subsino.c - 8085A CPU: Improved 8085 timing and fixed flag calculations based on differences between it and the 8080. - COP420 CPU . Fixed LEI instruction (cpu\cop400\410ops.c) . Added COP421 variant for Thayer's Quest (cpu\cop400\cop420.c) - I8051 CPU: Fixed the timer 0's second split counter in the core, that was incorrectly checking the Timer 1 Run Control Bit. - Minx CPU (Nintendo handheld console): Fixed handling of the U register in the RET instructions and when taking an interrupt in the Nintendo Minx CPU core. - MIPS CPUs: MIPS recompiler update: Updated to no longer explicitly specify flags. Tweaked register tracking to match new DRC frontend system. Updated UML logging to output new frontend statistics. Fixed left/right accesses to work with recent memory handler changes. - PPC403 CPU: Fixed compilation error when neither HAS_PPC403GA nor HAS_PPC403GCX are defined. - PowerPC recompiler: Fixed bug where a branch and link to the link register would overwrite the link register before fetching the target address. Updated to no longer explicitly specify flags. Added symbols for most common variables. Fixed bug in handling XER carry flag for subo forms. Simplified flag insertion logic for opcodeo forms. Rewrote lswi/stswi as subroutines. Made accesses to tempdata explicitly dword or qword. Fixed SRR0 when generating a syscall. Removed no longer necessary TESTs on extsb/w, rlwinm, rlwnm, rlwimi and cntlzw. Fixed bug where the SO flag was not being computed for compares. Fixed flag computations for mulhw/mulhwu/mullw. Fixed subtlety of shifts between 32 and 63 in srw/sraw. Fixed mffs/mtfsf to use FP registers. Fixed mtfsfi to use the immediate value properly. Now marking terminal count bit in DMA status register. Added support for 4xx protection registers via the MMU. Added TLBH, TLBU, and DEC to the list of registers in the debugger. Turned off "end of transfer" DMA signals in favor of "transfer count 0" signals; fixes memory-to-memory DMA in fiveside. Minor flags optimizations: * Broke CR into several individual bits of state and * Extracted the SO bit from XER into its own state. Cleaned up register tracking implementation. Fixed numerous errors and shortcomings in the tracking. Added support for removing unnecessary XER CA and CR0 computations. Updated UML logging to output new frontend statistics. Added basic cycle counts for longer instructions. Added penalty for polling timebase and decrementer registers. Fixed dependencies in cpu.mak. Reduced address bus width of 4xx series to 31 bits per the documentation. Fixed bug that would jump to incorrect PC after filling the TLB during a mismatch event. Added explicit address truncation to 31 bits for 4xx series. Added new PPCDRC_ACCURATE_SINGLES option, which removes the excessive (and very likely unecessary) extra rounding when performing the "fast" single-precision floating point ops. Fixed TLB filling for 4XX protection ranges. Fixed parameter ordering for masked reads/writes. Added detection of MMU enablement in 403GCX case. Fixed bug in protection bounds violation detection for 4XX. Changed SPU receive model to a push model; updated drivers accordingly. Added macros for setting the SPU transmit handler and sending bytes. Cleaned up ppc.h. Fixed lmw/stmw if rA is one of the loaded/stored registers. Removed unnecessary variables & structure members. Optimized for the XER and CR0 case where XER doesn't need an overflow calculation. - Dynamic Recompiling . DRC UML changes: Separated conditions and flags into two separate fields. Added more extensive per-opcode information. Made validation more thorough using the extended information. Disabled back-end validation for now until it can be revisited using the new tables. Changed GETFLGS encoding so that the mask is in parameter 2 instead of the flags field. Wrote new disassembler based on enhanced opcode info structure. Moved disassembler into drcuml.c and removed old code. Extended disassembler buffer sizes to at least 256 bytes. Removed explicit flag requests from the shorthand opcodes. Added optimization function to drcuml which is called at block end. Added logic to compute the necessary flags based on upcoming opcodes and only select those flags which are required. Added NOP opcode. Added logic to simplify opcodes as much as possible at the UML layer. Removed similar logic in the x86 and x64 back-ends. Added stricter parameter validation for registers and mapvars. Improved disassembly output. Added simple symbol table to the UML for improved disassembly. Changed optional disassembler cache parameter to a drcuml object. Fixed STORE opcode description to allow immediate source operands. . DRC frontend changes: Changed from tracking "live" registers to tracking "necessary" registers. Genericized register tracking to be more flexible. Added previous instruction pointer to opcode descriptions. . x86/x64 back-ends: Added flag support to SEXT, ROLAND, ROLINS, LZCNT opcodes. Fixed bug where sometimes the flags would be corrupted; in particular, we always clobbered the flags for the subfze instruction, which broke the nbapbp camera and some other things. Fixed DIVS/DIVU opcode so they properly compute SZ flags when requested; fixes camera wackiness in nbapbp. Added a "hop" around the prolog of the HANDLE opcode to allow fall-through. Redesigned x86 stack management to keep the stack at the same 16-byte alignment. Fixed adc/sbb so that they don't optimize out ever. Fixed detection of special and/or/xor cases. Fixed GETFLGS opcode so that it doesn't return anything other than requested flags. Changed LZCNT/BSWAP to be more flexible in register selection. - SN76496 and TMS5220 sound: Additional documentation in the core - 68681 DUART: Converted to device interface and 8 bit device. Added input and output port. Added X1/16 timer (machine\68681.c, micro3d.c and tmaster.c). - calomega.c . Cleaned up the driver following the MAME Coding Conventions . Improved the input system for some games . Fixed some wrong color codes . Updated technical notes - dacholer.c: Added sound emulation (3x AY-3-8910A and MSM5205) to Dacholer and Kick Boy - firebeat.c . Added VBLANK IRQ clear . Added ATAPI IRQ clear . Tried to add UART IRQ clear but it doesn't yet work . Most of the games start to show something again with these changes. . Added fast RAM region - funkybee.c: Fixed visible area in Funky Bee and Sky Lancer - galdrvr.c: Moved Calipso, Moonwar, Speed Coin and Super Bond to the Galaxian driver. Added Discrete sound. Fixed visible area and palettesize. - gticlub.c . Converted GTI Club driver sysreg_r/w to 8-bit handlers . Added hack to make network IRQs work; brings some games back to life - gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c: Designated the Konami PowerPC fast RAM accesses for work RAM. Removed unnecessary mirroring. - neodrvr.c . Updated Neo-Geo game PCB infos . Added some comments about 'M1' and 'S1' roms . Different changes to 2020bb, aof3, burningf, joyjoy, kof2001, kof99, kotm, lastblad, lbowling, marukodq, mslug3, mutnat, pbobblen, rbff2, samsh5sp, samsho3, socbrawl and wh1. - m90.c . Simplified video update routine (video\m90.c) . Improvements to Bomber Lord (bootleg): Partially fixed the background, fixed the sprites, implemented video register for selecting different resolutions; this fixes graphic in the game screen, fixed scroll video register, cleaned up offset and priorities, implemented linescroll and promoted to working. . Improvements to Dynablaster (bootleg): Partially fixed the background, fixed the sprites, fixed mark for last sprite, fixed player #1 and player #2 controls, fixed graphics layer and offset, fixed layer select, implementated the scroll video register, cleaned up offset and priorities and promoted to working. - model3.c . Identified and fixed VBLANK bit in Real3D status which was causing the system to hang at startup. Designated fast RAM accesses for work RAM. . Changed the 53C810 SCSI controller read/write handles to proper READ8/WRITE8_HANDLER callbacks so they can eventually be used directly. - peplus.c: All video slot titles now accept coins and play normally - punchout.c . Simplified palette handling in driver . Fixed big sprite palette in top monitor . Fixed proms loading and palettesize - snookr10.c: Fixed the tilemap size. Fixed the screen size. Updated technical notes. - suprnova.c . Driver uses now its own draw ROZ function, which supports linescroll or columnscroll, and will give us the ability to 'render' priority data (with roz applied) from the flagsmap to a temp bitmap to work with. . Priorities should be correct from start to end in Cyvern now (still not perfect) . Added a note about what needs fixing for the sengekis sprite zoom (shrink flag we're not handling) . Allow wraparound to be turned off (sarukani..) - Armored Car: Removed Armored Car remains (INPUT_PORT, ROM_START etc.) from Super Cobra driver. - Black Touch '96: Numerous improvements to the driver. Added PIC16C57 (8MHz) CPU2. Changed visible area to 256x224. Fixed gfx1/2/3 rom loading. Added missing dipswitches. - Draco: Fixed AY-3-8910 output mode - Jackal . Fixed palette animation (very subtle!) . Verified on the schematics and on the PCB that the high score table text cannot change color. . Removed the IMPERFECT_GRAPHICS flag. Fixed music with a kludge in machine\jackal.c (overclock sound CPU) . Added DIP locations and sorted input ports - Mr. Do!: Fixed colortable creation in video\mrdo.c. Fixed diode voltage drop value which caused apples to be orange instead of red-orange. The title screen now perfectly matches http://www.flickr.com/photos/arecee/2384126902/sizes/l/ including the logo outline. - NBA Play By Play: DRC x86/x64: Fixed bug where sometimes the flags would be corrupted; in particular, we always clobbered the flags for the subfze instruction, which broke the NBA Play By Play camera and some other things. Fixed DIVS/DIVU opcode so they properly compute SZ flags when requested; fixes camera wackiness in NBA Play By Play. - Player's Edge Plus (PS0615) Chaos Slots: Added new CAP (cap0960.u50) with closer colors (still wrong) - Player's Edge Plus (PS0716) River Gambler Slots: Added new CAP (cap2266.u50) - Thayer's Quest: Cleaned up driver. Added LED layout from Dragon's Lair. Mapped keyboard and dips correctly. Added laser disc drive selection. Fixed Z80-COP communications. Figured out ports from disassembly. Added cart presence detection logic. Fixed SSI-263 timings, service mode works now. Changed to use COP421 (2MHz). - Wizard: Fixed year and manufacturer - Input port . Converted a number of drivers over to using input_port_read() from input_port_read_indexed(). . Added option -[no]coin_lockout (-[no]coinlock) to control coin lockout behavior. - Dipswitch fixes in blackt96, jackal, m90.c, funkybee.c and thayers - Description changes of Agent Super Bond, Lady Bug (bootleg on Galaxian hardware), 'Office Yeo In Cheon Ha' and Player's Edge Plus (PS0716) River Gambler Slots - MAME . Added bilinear filter option to software rendering. Not hooked up to anything yet. . Cleaned up the usage of Machine in many of the src\video files. . Cheat engine: Changed the function of default memory read in case of the search to prevent from crashing if a game uses cpu_spinutil(). Now basically used do_memory_read() instead of do_cpu_read() (Try to search in actfancr between this and previous version). NOTE : It's not fundamental solution but no longer crash. Cleaned up read_data() and write_data(). Cleaned up save/load routine and added open_cheat_database(). Added new menu "Cheat Commands" into the cheat main menu the following commands are supported in this menu: * Reload cheat code (the same as Reload Database key), * Cheats ON/OFF (the same as Toggle Cheat key), * Watchpoints ON/OFF (the same as Shift + Toggle Cheat key), * Save description (save the title of the game) and * Save raw code (save raw cheat code with new format). Fixed several bugs which has found in testing. Renamed functions based on coding guidlines. . Correctness pass over the source tree: Added static qualifiers where appropriate. Added missing #include statements, source comments and header declarations. Removed dead declarations. Added ~30 header files for a number of drivers. Consolidated various cchip declarations. - Debugger: Changed map command in the debugger to now perform separate read/write/fetch lookups. 0.125u4 - New games: Black Touch (Korea) - New Working games: The Dealer, Deroon DeroDero, Sigma Poker 2000, Touki Denshou -Angel Eyes- and World PK Soccer V2 (almost playable) - New Non-Working games: Black Touch '96, Capitan Uncino, Capitani Coraggiosi, Carta Magica, Elvis?, 2x Europa 2002, La Perla Ner, La Perla Nera Gold, Laser 2001, Magic Drink, Millennium Sun, NtCash, Office Yeo ln Cheon Ha, Super Space 2001, Top Blade V, 'Unknown italian gambling game' and Wizard - New clones: Double Dragon (bootleg with 3xM6809, set 2), Monky Elf (Korean bootleg of Avenging Spirit), Quiz Olympic (set 2), Raiden Fighters 2 (Taiwan, SPI) and Touki Denshou -Angel Eyes- (VER. 960427) - New drivers: blackt96.c, itgambl2.c and itgamble.c - COP410/20 CPUs . Added HALT opcode and halt mode to the COP410 . Added Microbus support, clock divisor selection and CKO mode selection to the COP420. Changed Thayer's Quest keyboard interface to at least slightly resemble the schematics. - I386 CPU: Added fisttp opcode to i386 disassembler - Minx CPU (Nintendo handheld console): Styling changes. Added instruction cycle counts. Added interrupt support. Added HALT support. Fixed INT instruction. Added incomplete support for DIV and MUL instructions. Fixed MOV [#nnnn],BA and MOV [#nnnn],HL instructions. Fixed interrupt handling. Fixed opcodes 45, 4D, 55, 5D, B5, B6, B7, FC, FD and CF 70-7F. Fixed flag results for INC, DEC, AND, OR and XOR instructions. - Universal recompiler: * Fixed frontend to handle opcode widths different from bus width. * Added several new opcodes: (D)GETFLGS - copies the UML flags to a destination operand and FDRNDS - rounds a double precision value to single precision. * Renamed several opcodes: (SETC -> CARRY), (XTRACT -> ROLAND) and (INSERT -> ROLINS). * Consolidated the following opcodes: (LOAD?U -> LOAD), (LOAD?S -> LOADS), (STORE? -> STORE), (READ?U -> READ), (READ?M -> READM), (WRITE? -> WRITE), (WRITM? -> WRITEM), (SEXT? -> SEXT), (FTOI?? -> FTOINT), (FFRI? -> FFRINT) and (FFRF? -> FFRFLT). * Removed some opcodes: FLAGS (can be done with GETFLGS/LOAD4/ROLINS), ZEXT (can be achieved with AND) and READ?S (can be achieved with READ/SEXT). * Updated C, x86, and x64 back-ends to support these opcode changes. * Updated disassembler to support these opcode changes. - PowerPC CPUs (dynamic recompiler): Rewrote PowerPC implementation as a dynamic recompiler on top of the universal recompiler engine. * Wrote a front-end to analyze PowerPC code paths and register usage. * Wrote a common shared module with C implementations of tricky CPU behaviors. * Added separate CPU types for the variants supported, instead of relying on a hidden model enum. * Rewrote the serial port emulation for the 4xx series to be more accurate and not rely on separate DMA handlers. * Rewrote the MMU handling to implement a software TLB that faults in pages and handles changed bits appropriately. * Implemented emulation of the PowerPC 603's software TLB, which allows the model 3 games to run without a hack to disable the MMU. Updated the PowerPC disassembler to share constants with the rest of the core, and to more aggressively use simplified mnemonics, especially for branches. - MIPS3 dynamic recompiler . Fixed Cause register for bad COP instructions . Updated to use new/changed opcode forms . Changed context switch so that it only swaps a single pointer - Discrete sound: Added NODE_RELATIVE(NODE, offset) macro to discrete.h. Fixed asteroid.c, canyon.c, skydiver.c and tank8.c to use this macro instead of adding directly to the node. - Konami 056832 GFX: Fixed crasher due to some Konami games using 8 layers in the K056832 implementation, even though it was only written for 4 (asterix.c, bishi.c, dbz.c, djmain.c, gijoe.c, konamigx.c, lethalen.c, moo.c, mystwarr.c, qdrmfgp.c, xexex.c and zr107.c) - calomega.c: Updated Cal Omega driver with correct dumps - gatron.c . Changed description of Card Games? and Slots Game? to Poker 4-1 and Pull Tabs . Renamed the ROMs in each set according to their own stickers . Moved the driver into gametron.a group . Added the missing input port C to 8255 PPI I/O chip. Poker 4-1 and Pull Tabs don't make use of it, but is present in the Test/Setting Mode. . Updated technical notes - gticlub.c/hornet.c/model3.c/viper.c/zr107.c . Updated to new PowerPC configurations . Updated some memory handlers to be native 8-bit handlers - hornet.c . Cleaned up JVS implementation to work with new serial code . Added fast RAM for the work RAM to give a small speed boost - looping.c: Fixed a 'Fatal error' crash in the driver (ID 01859) - model3.c . Reimplemented/centralized interrupt handling. These games are broken for the moment . Updated the 53c810 SCSI adapter to pass IRQ state with the IRQ callback - namcona1.c . Adjusted NamcoNA output rate to match pitch with F/A and Cosmo Gang the Puzzle soundtrack CDs . Fixed C140 clock speed in bkrtmaq, cgangpzl, emeraldj, emerldja, exvania, fghtatck, swcourt and tinklpit - snookr10.c (Sandii' games) . Switched the color system to RESNET calculations . Hooked the infamous bit7 of Input Port 0x3004 in parallel to DIP switch 1 . This allow to use the PAYOUT button to trigger the Super Game instead of STOP 5 . Demultiplexed lamps matrix . Added lamps support, but is still imperfect . Updated technical notes - stv.c: Upped max directory size for ST-V/Saturn driver (machine\stvcd.c) - suprnova.c: Changed blending implementation a bit (still not right) - tecmosys.c . Added simulaton of tecmosys protection - Deroon DeroDero and Touki Denshou are now playable . Added many improvements to the tecmosys video and sound emulation . Added new gfx1 rom and fixed rom loading to Deroon DeroDero . Fixed 68000 CPU1 and OKI6295 clock speeds and visible area in Deroon DeroDero and Touki Denshou - Cross Shooter: Verified/Fixed clock frequencies on Air Raid/Cross Shooter - The Dealer: Added proper bankswitching to the dealer driver, validating a ROM previously thought to be bad (Game now playable). - El Grande: Added new gfx2 rom (some bad bits) and prom - GunNail: Optimised tilemap_draw rowscroll case to avoid overhead when used with clip rects smaller than the tilemap. This reduces by an order of magnitude the time taken to render the background in Gunnail stage 5. Fixed 68000 clock speed. - Inca: Changed game to a parent set - Space Harrier: Fixed rom names - Sigma Poker 2000: Reworked the input system (Game now playable). Updated technical notes. - Thayer's Quest: Changed keyboard interface to at least slightly resemble the schematics - World PK Soccer V2: Fixed some dips and added correct inputs, despite still missing the correct input for begin the left right movement the game is almost playable. - Input port . Removed port_input_read_indexed in favor of the use of proper tags in a number of drivers . Fixed duplicate input port bits. Made duplicate input port bits an error now that all the warnings are fixed - Dipswitch fixes in aquarium, ddungeon, equites.c, glfgreat, mdrawpkr, pclubys, sigma2k, tattack, trojan, wilytowr, wndrplnt and wpksocv2 - Description changes of Poker 4-1 and Pull Tabs - MAME . Optimised tilemap_draw rowscroll case to avoid overhead when used with clip rects smaller than the tilemap. This reduces by an order of magnitude the time taken to render the background in Gunnail stage 5. . Cheat engine: * Locked search region when malloc fails to allocate gigantic memory instead of fatal error. Also locked zero malloc error in case of search speed = all memory in 32-bit CPU. And added search region range checker to lock a search region with a big risk. * Fixed a bug that old code is always converted to specified separator in enable/disable menu. * Refined new cheat format. - Rewritten cheat format again. Newest format is ":gamename::type::address::data::extend_data: (description:comment)". Expanded type field now requires 10 bytes (not 8 bytes) and it divides internal cpu (2 bytes) and type (8 bytes) parameters. - Removed VWrite, VRWrite. The flag of Value Selection is merged into expanded type field now. - Added CBit (Condition Bit). This checks bit in read data then set or clear bit in case of true. - Rearranged cheat code viwer based on newest cheat format. * Fixed unworking Load Old Format option. If you want to load old or older format code, set it (default is OFF). * Renamed functions/structures based on coding guidlines. All structures and included parameters are completed. * Merged resize_*_no_dispose() into resize_*(). * Removed the hack of search region for SH-2 CPU because required region is now set as expected without this hack. . Introduced/updated some include files for files that export functions whose apis will need to be changed to handle machine parameters (cps1.h, decocrpt.h, ms32.h, pgm.h, fd1089.h, konami1.h). In the case of konami.c, renamed the file konami1.c and changed the api and callers to only require one function export. Pulled memory_region*() calls out of for loops and folded the occasional duplicated call. The compiler can't likely infer that the results are constant, so this should be a minor performance win as well. . Made it possible to pass a NULL errorbug to input_port_config_alloc(), this fixes -listxml crashes - Compiling: Added compile-time error if PTR64 is incorrectly set 0.125u3 - New games: ChuckECheese's Match Game, Coronation Street Quiz Game and 'Player's Edge Plus (XP000112) White Hot Aces Poker' - New Working games: beatmania THE FINAL (ver JA-A) - New clones: Atomic Boy (revision B), Dynamite Cop (USA, Model 2C), 5x Fred Flintstones' Memory Match and Mighty! Pang (Euro 001010) - 80286 CPU: Fixed memory access in the core which made i286.h obsolete. Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES to prevent crashes during disassembly. - MIPS CPUs . Renamed struct mips3_config -> mips3_config . Updated all drivers to the new names . Removed MIPS3DRC_STRICT_COP0 flag, which is no longer used. . A few minor cleanups . Moved implementation-specific state into a pointer hanging off of the core MIPS3 state . Removed large context in favor of a pointer to the large context to help improve context switch times - COP420 CPU . Fixed COP420 instructions JSRP, LBI, LQID, SKT, XAS and INIL (Draco now has sound) . Fixed cycle count for extended opcodes . Added CKO general purpose input - 8257 DMA (dkong.c) . Added support for autoload mode . Fixed bug in calculating count - EEPROM: Renamed EEPROM_* to eeprom_*. Updated all drivers accordingly. Typedef'ed a real eeprom_interface structure. - ampoker2.c . Reworked the color routines switching to resnet system . Added a resistor network diagram . Switch to pre-defined crystal value . Changed the WATCHDOG_TIME_INIT to be based on miliseconds instead of hertz . Other minor cleanup/fixes . Updated technical notes - dcheese.c: Added a PORT_CUSTOM for the ticket dispenser callback. Updated the dcheese driver to use it. Many more drivers can be updated to use these new PORT_CUSTOMs in the future, eliminating hacky input port read handlers. - peplus.c . Updated coin-in timing . Extended memory address range of DUART . Fixed overlapping input port bits - zaxxon.c: Removed meaningless service_coin_lockout_w function. Updated the Zaxxon driver to correctly handle the coin enable lines. There is no external coin lockout circuitry in Zaxxon; instead, the PCB simply latches the coin input, which then needs to be explicitly cleared by the game. - beatmania THE FINAL (ver JA-A): Added missing harddisk (Game now playable) - Clash-Road: Fixed game slowness and garbled cycler graphics (ID 01153) - Draco: Game has now sound (COP420 fixes) - GI Joe: Made game not crash, but still don't understand what the original code was trying to do. - Hyper Duel: Fixed rom names - Jack Rabbit/Money Money: Replaced TMS5220 sound with TMS5200 - Magical Error wo Sagase: Fixed gfx1 rom loading - One + Two: Changed default dipswitches in driver. Common coinslot mode seems broken, or our code is wrong (ID 01816). - Portraits: Replaced TMS5220 sound with TMS5200 - Power Spikes: Fixed visible area in clone '1991 Spikes (Italian bootleg)' - Rainbow Islands: Fixed clocks in clone Jumping - Super Pool (9743 Rev.01) . Moved game to a better match hardware (magic10 driver) . Fixed the ROM load and added a list of PCB components . Fixed description, 68000 CPU1 clock speed, visible area and palettesize - WWF WrestleFest: Fixed cpu_getiloops() which was not returning the correct value. This fixes flickering in-game graphics (ID 01481). - Wily Tower: Fixed Z80 CPU1 and I8039 CPU2 clock speeds - Input port . Fixed PORT_IMPULSE handling. The old code would force inputs to be asserted for at least the number of frames indicated, but keeping the button pressed would keep the input asserted. Now the input is asserted far exactly the number of frames indicated. . Added a PORT_CUSTOM for the eeprom bit reading. Updated several drivers to use that by specifying it in their input ports instead of having a custom read handler that inserted the bit forcefully. Also added a PORT_CUSTOM for the ticket dispenser callback as well. Updated the dcheese driver to use it. Many more drivers can be updated to use these new PORT_CUSTOMs in the future, eliminating hacky input port read handlers. . Changed error reporting during input port detokenization to fill a buffer rather than fatalerror-ing immediately. Should now properly skip over any invalid tokens. Enhanced error detection during input port detokenization to catch duplicate bits. There are a lot of these! Updated initialization code to print errors and fatal only if the input ports were unable to be constructed at all. . Added internal default tags for input ports when saving/loading . Removed meaningless service_coin_lockout_w function . Added support for a NULL set of input ports, used by the empty driver. . Fixed duplicate input port bits in cps1.c, dkong.c, gottlieb.c, megadriv.c, pacman.c and segae.c - Dipswitch . Fixed bug that caused dipswitches to be improperly read from game cfg file in certain circumstances . Fixes in dkong3, ghouls, knights, onetwoe, qbert, sqbert, tetrisse and tomahawk - Description changes of Dynamite Cop (Export, Model 2A), Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95), Magical Error wo Sagase, Super Pool (9743 Rev.01) - MAME . Fixed cpu_getiloops() which was not returning the correct value . Changed the behavior of the translate callback in the CPU interface: Added new 'intention' parameter to the translate callback to indicate read/write/fetch access, user/supervisor mode, and a flag for debugging. Updated all call sites to pass an appropriate value. Updated all CPU cores to the new prototype. . Added new astring functions astring_del, astring_replace and astring_replacec . Cheat engine: * Supported (preliminary) new cheat format: Added new operations: PDWWrite, RWrite, VRWrite, CWrite, Move, Branch, Loop and Popup. Added new options: ValueSelectNegative, Return, AddressReadFrom and DataReadFrom. Added cheat variables. You can store data with Write or Move operations and read as an address or data from each fields. Added condition check for CWrite, Branch and Popup operations. Added new custom codes: Separator and Layer. Supported Shared Code [MESS ONLY]. Different machine shares common code for a game. * Allowed mixed label-select or user-select with standard code. * Added label selector menu for label-selection code. * Added extend comment displayer for multi-line comments. * Added command menu for cheat list and watchpoint. Easy selectable cheat commands in this menu. * Added debug view menu [DEBUG BUILD ONLY]. It displays internal info to debug cheat system. * Supported unique separator by ui_draw_menu() in several menus. * Added user defined search region. You can set free memory range from cheat database. * Enhanced error check for cheat code to prevent from unexpected working. Error code is locked. If you select this code, the analyser works instead of the code activater. * Enhanced value input with keyboard-less. Cheat edit key gives new input system in several menus Left/right keys moves the edit cursor and up/down keys changes a value. * Added cheat command save, reload and reset in option menu. * Supported address shift in searching. Now searchable default region in TMS340*0 cpu games (Trog, Smash T.V. etc). * Refined cheat menu handling with function pointer called cheat_menu_handler. * Added format strings table to manage in an integrated fashion. * Deleted unused hacks of default search region for Neo Geo and TMS34010. * Refined code based on MAME coding guidelines: Renamed many functions/structures/constants. But not complete due to too many items. Converted small but often used functions to INLINE. Fixed a comparison in case of 0 or NULL. Added missing function prototype for several functions. . Added new option -snapname which lets you provide a template for how snapshot names are generated. See config.txt for details. . Updated documentation in several drivers based on old readmes and other data that might get lost . UI menu . Fixed behavior of toggle switches so that they don't lose their value when the UI is up. They also can now be used for multibit DIP switch settings in which case they toggle through all the options. Added new functions input_field_select_next_setting() and input_field_select_previous_setting() which can be used to iterate properly through DIP switches. Fixed the behavior for cases where conditional ports are in play (you could get stuck). Changed uimenu.c to call these instead of implementing its own. . Changed uimenu.c so that hitting ENTER on a DIP switch resets it to its default value. This is analagous to how the OSD sliders behave. . Changed text used to specify a menu separator in uimenu.c, and added a #define for the new string. - Compiling . DRC frontend changes: Fixed bug in handling edge case with the PC near the 0 or ~0. Added new flag to tag privileged instructions. . UML updates: Added new opcode SETC to set the carry flag from a source bit. Added new opcode BSWAP to swap bytes within a value. Updated C, x86, x64 back-ends to support the new opcodes. Updated disassembler to support the new opcodes. . Added TOKEN_SKIP_* macros to tokenize.h 0.125u2 - New Working games: 1991 Spikes (Italian bootleg) - New Non-Working games: Beauty Block - New clones: Gals Panic SU (Korea), Last Fortress - Toride (Korea) and Miss Puzzle (Clone of Gumbo) - 80286 CPU: Fixed databus widths - TMS5110/TMS5220 sound: Added proper interpolation sub-cycles ('PC' cycles and A/B subcycles of each) and updated comments. - aleck64.c: Fixed N64 rendering on big-endian targets - cidelsa.c: Fixed CDP1869 character memory access and Cidelsa sprite flashing - lwings.c . Input clean up . Added DIP locations . Merged machine drivers . Fixed Legendary Wings (bootleg) life DIP switches - namcona1.c . Adjusted alternate palette handling weights to more accurately match real hardware - text anti-aliasing is much more noticable. . Adjustment to ROZ layer priority - prevents roz layer from incorrectly being displayed over backgrounds in some games (i.e. Numan Athletics (Japan)) . Added a mask when processing the ROZ tilemap to avoid defects in Emeraldia (Japan Version B) . Emeralda: Fixed long-standing bug with text colors. A sprite attribute exists which signals an alternate interpretation of palette ram. . Numan Athletics: Fixed priority for the bitmap layer used . Changed palettesize to 8192 colors - Apple 10/Snooker 10 . Some improvements to Sandii' games . Confirmed the CPU clock after some PCB measurements . Changed the SND clock to 1MHz to match the PCB measurement . Correct the internal OKI6295 frequency turning the pin 7 state to HIGH . Inputs: Eliminated all pulse limitations. Affected buttons have a rattled sound in the real thing too. . Updated technical notes . Changed OKI6295 clock speed to 1MHz - Gorf: Added new samples and updated the sample volume. Download samples at http://www.mameworld.info/samples/wav/gorf.zip - Ground Effects/Under Fire: Fixed black pixel patches present in the TC0100SCN fg layer - Hyper Sports/Track & Field: Restructured input port internals and cleaned up inptport. Removed gross hacks in Hyper Sports and Track & Field NVRAM. These may be broken as a result. - Power Spikes: Fixed clone '1991 Spikes (Italian bootleg)' sprite colours without resorting to hacks (Game now playable). - Q*bert: Added new cpu2 roms to clone Mello Yello Q*bert - Q*bert's Qubes: Added new cpu2 roms - Shuttle Invader: Added built-in overlay (8080bw.c) - World Rally . Fixed MCU comms on big-endian . Added wheel support. When optical wheel is selected (via dipswitch), then gear shift (low/high) is enabled. - MAME . Eliminated a large number of global Machine references. Added machine parameters to IRQ callbacks throughout the system to help remove more. Reduced the number of files needing deprecat.h by ~200. . Changed defaults so that joysticks are enabled standard . Restructured input port internals and cleaned up inptport.c: * Input ports are now maintained hierarchically. At the top level are input ports, which contain a list of fields. Each field represents one or more bits of the port. Certain fields such as DIP switches and configuration switches contain a list of settings, which can be selected. DIP switch fields can also contain a list of DIP switch locations. * Normalized behavior of port overrides (via PORT_INCLUDE or by defining multiple overlapping bits). All fields within a port are kept in strict increasing bit order, so altered DIP switches are now kept in the appropriate order. This addresses MAMETesters bug 01671. * Live port state is now fully separate from configured state. This is manifested in a similar way to devices, where a const list of ports can be managed either offline or live. Each port has a pointer to an opaque set of live state which is NULL when offline or valid when live. Each port also has a running_machine * which is also NULL when offline. * Because of this new arrangement, the conversion from tokens to a list of ports now requires reasonably complex memory allocation, so these port lists must be explicitly allocated and freed (they are not mantained by automatic resource allocation). * Custom and changed callbacks now take a pointer to a field config instead of a running machine. This provides more information about what field triggered the change notification. The machine can be found by referenced field->port->machine. * The inptport.c module has been cleaned up and many ambiguities resolved. Most of this is internal, though it did result in osd_customize_inputport_list() being changed to osd_customize_input_type_list(). The parameter to this function is now a linked list instead of an array, and the structures referenced have been reorganized somewhat. * Updated config.c to pass machine parameters to its callbacks. * Updated validity checks, XML output, and UI system to handle the new structures. * Moved large table of default input settings to a separate include file inpttype.h. * Removed gross hacks in trackfld and hyperspt NVRAM. These may be broken as a result. . Fixed PORT_ADJUSTER default value indicator in the UI is not set to the correct place after loading config (ID 01548) - MESS: Correct several bugs in the emulation of the Saturn CPU. These corrections are needed to make new HP48 drivers (to be submitted to MESS imminently) work. - Compiling: Universal DRC system updates and improvements: UML: * Added back-end validation mechanism, and a handful of tests as examples. This will be expanded in the future. * Added several new opcodes: SAVE dumps the entire virtual machine state to a struct, RESTORE applies the data in a struct to the live state, LZCNT counts leading zeros in an operand, XTRACT extracts a bitfield to another register (rlwinm) and INSERT inserts a bitfield into a register (rlwimi). * Added new back-end function get_info() which returns information from the back-end about how many actual registers will be mapped. x86 back-end: * Implemented all new opcodes. * Implemented get_info() function. * Fixed several bugs relating to shifts/rotates and optimizing out cases incorrectly. x64 back-end: * Implemented all new opcodes. * Implemented get_info() function. * Added defines for new Penryn opcodes to x86emit.h. * Added support for ROUNDSS and ROUNDSD on Penryn architectures. This hasn't been tested. If you have a Penryn-based system, give it a try. * Fixed several bugs relating to shifts/rotates and optimizing out cases incorrectly. C back-end: * Implemented all new opcodes. * Implemented get_info() function. * Cleaned up operand sizing. * Fixed several errors that made it not work on bigendian systems. MIPS DRC: * Added some instrumentation for the MMU. To enable it, turn on PRINTF_MMU at the top of the file. * Fixed front-end so that virtual no-op instructions are still targeted as branch targets. * Fixed front-end to mark the beginning of each sequence as needing TLB validation, since any sequence can be jumped to from anywhere. * Redid the MIPS3 TLB implementation. Fixed the exception vector and type handling. Changed the bitfields to directly map from the MIPS TLB format. Added distinction between TLB fill and TLB valid/modified exceptions. * Added separate modes for user, supervisor, and kernel modes. Each mode does proper verification of addresses now and generates address errors for invalid accesses. * Fixed several bugs in the TLB implementation; not everything works yet but it's a lot closer. * Made COP0 access checking mandatory in non-kernel modes. * Fixed several crashes when recompiling virtual no-ops. * Fixed TLB bug where entries for virtual address 0 were present by default. * Fixed bug in the map variable implementation that would sometimes result in incorrectly recovered values.* Implemented IDT instructions. All invalid instruction asserts are now runtime-only. * Added support to map a few common registers to machine registers if the machine supports it. Currently only x64 on Windows has enough free registers to do so, though PowerPC will almost certainly be able to take advantage of this. Gives a minor speedup. * Updated to use INSERT and XTRACT where appropriate. * Cleaned up register usage to free up one machine register for x64 on Linux. - MAMETesters Bugs Fixed . All Sets: Saved machine states do not properly adjust to changes in -samplerate [Save/Restore ID 01815] . Every set with PORT_MODIFY used for DIPs (e.g. arknoidj): The modified dipswitches are always listed at the bottom of the list [Interface ID 01671] . YM2608 games (tail2nos, sformula, wc90, mechatt): Only basic music, no more samples [Sound ID 01814] . numanath, numanatj: Graphics corruption on title screen [Graphics ID 01497] . carnevil, sfrush: Seattle games crash on startup [Core ID 01804] 0.125u1 - New games: Card Games?, Pit Boss Superstar and Slots Game? - New Working games: beatmania 7th MIX (ver JA-B), Chase Bombers and World Rally - New Non-Working games: beatmania THE FINAL (ver JA-A) - New clones: Demon's World / Horror Story (early edition), Ghox (set 2), The Legend of Kage, Legendary Wings (bootleg) and Megatouch III (9255-20-06 RON) - New drivers: gatron.c - Support for DS5002FP CPU (World Rally) - TMS51xx/52xx sound . Updated TMS5200/5220 documentation and comments . Fixed the chirp table implementation in both the 51xx and 52xx chips - 6526 CIA: Added feature in READ operation the value can be forced by a external circuit; this feature is necessary for MESS. MAME - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) - cidelsa.c . Added memory address parameter to CDP1802 DMA callbacks and a macro for the CPU interface . Added CDP1852 I/O buffer chip, and used it in Altair/Draco - dynax.c: Fixed crash in games due to missing MSM6242 device - funworld.c: Found the proper algorithm to decrypt the blue TAB PCB in the driver. Replaced the old decryption tables with the proper decryption scheme. Updated technical notes - gaelco.c: Rewroted the Gaelco video ram encryption, which finally makes sense. The key observation was that when decrypting the second word, both encrypted and decrypted bits of the first word are used. Many thanks to Javier Valero for the detailed information that made this possible. - gatron.c: New driver for old Game-A-Tron gambling games hardware: Properly decoded graphics. Proper memory map. Added NVRAM support. Proper Inputs through 8255 PPI I/O chip. Both games are working. Added technical & game notes. - namcona1.c . Fixed the ROZ effect in the driver . ROZ tilemap is actually an additional tilemap . Fixes a bug where a "roz enable" test was causing a normal layer to be rendered with ROZ effects in-game. There is no roz enable register - it's always available for mixing with other tilemaps and sprites. This also adds a missing NAMCO logo zoom/spin effect in Emeralda's attract mode. . Support for scanline effect (fixes invisible dolphin in Emeralda attract mode) . ROZ implementation no longer breaks Numan Athletics pixmap layer . Blitter fixes; xday graphics are now correct . Identified extra communications RAM used by xday (probably to control printer) - tmaster.c . Fixed coin inputs . Added validator input and notes on inputs to the driver - undrfire.c . Changed ES5505 clock rate to 15238050 Hz (30476100/2) . Chase Bombers (Game now playable) . Improved sprites . Hooked up steering wheel input . Unified memory maps and tidied up some code . Under Fire: Removed the undrfire speedup hack - Arcade Classics: Renamed ports and used AM_READ_PORT macros - Black Tiger: Fixed main Z80 clock and sound Z80 clock as verified on PCB - beatmania 7th MIX (ver JA-B): Added missing harddisk image (Game now playable) - Columns: Added 'Background Music' dipswitch to clone Columns (US, cocktail) - Emeraldia: Fixed the ROZ effect in Namco NA1 driver. This adds a missing NAMCO logo zoom/spin effect in attract mode. Also added support for scanline effect (this fixes invisible dolphin in attract mode). - Numan Athletics: Fixed the NamcoNA ROZ implementation, this no longer breaks Numan Athletics pixmap layer. - Quiz & Dragons: Fixed rom names - Q*bert's Qubes: Marked the sound roms on Q*Bert's Qubes as bad and changed the flag to imperfect sound. The current sound cpu roms are the same as on a normal Q*Bert board, which is incorrect. At least three sound effects are present in the real qq-snd roms but not the Q*Bert qb-snd ones. - Space Guerrilla: Fixed input and dipswitches - Thunder Hoop: Fixed default dipswitches to give more than 1 life - Varth: Fixed rom names - World Rally: Added DS5002FP CPU2 and rom. Fixed visible area (Game now playable) - X-Day 2 . Fixed the NamcoNA blitter, this fixes X-Day 2 graphics . Identified extra communications RAM used by X-Day 2 (probably to control printer) - Zero Wing: Added 'Region' dipswitch to clone (2 player) - Merged memory maps in Big Pro Wrestling, Tail to Nose, Tank Battalion, Tank Busters, Tao Taido, Target Hits and Taxi Driver - Description changes of Janpai Puzzle Choukou, Megatouch 5 (9255-60-01 ROC) and Mahjong Neruton Haikujiradan - MAME . Added uncompressed AVI recording: Extended aviio to be able to write RGB bitmaps. Unfortunately, the only option is fully uncompressed, which means the resulting AVIs are *HUGE* and may not play correctly in realtime due to high data rate. The intention is that these uncompressed AVIs are post-processed by other utilities to compress the video and produce a realtime playable result. Added new command-line option -aviwrite which works just like -mngwrite, except it produces AVIs and streams sound to them. Updated documentation accordingly. Shift+F12 still produces MNGs for now, though this might change in the future. Modified fileio.c to retain the full pathname to the file so that it can be queried while the file is open. . New universal dynamic recompiler system: The central module is drcuml.c, which defines a universal machine language syntax that can be generated by a frontend recompiler and then retargeted via a generic backend interface to any of a number of different architectures. A disassembler for the UML is also included to allow examination of the generated UML code. Currently supported backend architectures include 32-bit x86, 64-bit x86, and a platform-neutral interpreted C backend that can be used as a fallback for platforms without native support. The C backend also performs additional validation to ensure assumptions are met. Along with the new architecture is a new MIPS III/IV recompiler frontend. This frontend has been rewritten from the old x64-specific recompiler to generate UML opcodes instead. This means that the single recompiler can be used to target multiple backend architectures and should in theory produce identical results across all of them. The old 32-bit and 64-bit MIPS recompilers are now officially retired. The new system provides similar performance (within 5% generally) to the old system and has similar compatibility. The only currently known issues are some problems with the two Gauntlet 3D games. . Consolidated opbase variables into a structure and rescoped them so they are hidden for general access. 0.125 - New Working games: Megatouch III (9255-20-01 ROF) - New clones: Megatouch III Tournament Edition (9255-30-01 ROE) and Touchmaster 7000 (v8.04 Standard) - SCSP and AICA sound: Fixed an envelope corner case - m90.c: Added video enable/disable feature - Denjin Makai: Added extra tile banking and layer enable - Dynablaster: Verified clocks on clone Bomber Man PCB which runs on M90 hardware - Megatouch III: Added new 1MB cpu1 rom (Game now playable) - P.O.W.: Fixed rom names - namcona1.c: Fixed ROZ centering - MAME . x86/x64 Dynamic recompiler: Added xchg and a few other missing opcodes to x86emit.h . Removed bogus assertion in device code (emu\devintrf.c, DEVICE_TYPE_WILDCARD is NULL) . Added -watchdog to runtest.cmd 0.124u5 - New games: Paparazzi - New Working games: Apple 10, PinBot (PlayChoice-10), Quiz F-1 and Snooker 10 - New clones: Dynasty Wars (US set 2), Final Fight (Japan 900112), Forgotten Worlds (World?), Heated Barrel (World version 3), Megatouch IV (9255-40-01 ROE), Raimais (Japan / First Revision), Raiden 2 (set 7), Street Fighter Alpha 2 (Euro 960229) and Touchmaster 3000 (v5.02 Standard) - AY-3-8910/YM2149 sound: Fixed AY-3-8910/YM2149 and derivatives envelope handling - 8259 PIC: Added support for 8080/85 mode interrupts to the 8259 PIC (Programmable Interrupt Controller) - Discrete sound: Added DISCRETE_KEY_SALLEN_FILTER to discrete sound system (headon, m52.c) - MSM6242 RTC: Converted the RTC into a proper device (ddenlovr.c, dynax.c, royalmah.c and seta.c) - cps1.c . Massive update to ROM naming in the CPS1 driver, also loading smaller EPROMs for Japanese sets instead of the larger mask ROMs where possible. . Added information about B-Board revisions where possible. There is still work to do on this regard but this is a first step in untangling the mess. . Verified more CPS1 gfx ROM mappings against PALs - funworld.c . Fixed AY8910 volume to all games to avoid clips . Merge bigdeal and funworld machine drivers thanks to the AY8910 rewrite . Removed old unaccurate commentary about magiccrd tiles . All CMC italian games: Added TICKET and HOPPER buttons to allow payout through the SUPER GAME. Documented the featured SUPER GAME with complete instructions. Improved DIP switches to properly set the payout system. - m52.c: Added discrete mixing and filtering to IREM games using M52-sound-c boards. Added DISCRETE_KEY_SALLEN_FILTER to discrete sound system. - m90.c: Proper implementation of the tile/sprite priorities. This fixes priorities in Quiz F-1 (Game now playable), Risky Challenge and maybe more M90 games - marvins.c: Changed the implementation of the cocktail mode - meritm.c . Consolidated, correct and updated info . Verified Megatouch IV program rom . Correct many rom names . Added game revision to game name (IE: 9255-40-01 ROE) . Added PALs from Megatouch 6 to other sets as they all run on the same PCB . Added the sound clock update from Tafoid . Fixed AY-3-8910A clock speed - metro.c: De-hacked Metro tilemaps - playch10.c: Added support for mapping ROM and RAM in PPU video memory space - snookr10.c . Decrypted the Apple 10 tile matrix . Partially decrypted the Apple 10 color codes . Created a new machine driver for Apple 10 due to encryption. . Created a new machine driver for Ten Balls due to different memory map . Worked all the input ports from the scratch . Fixed the sound ROM_REGION . Added the OKI6295 emulation to all games . Hooked output ports . Documented and calculated all bits related to lamps . Adjusted palette lenght to 256 colors . Reverse engineering the code to complete the DIP switches . Added DIP locations to DIP switches . Promoted Apple 10, Snooker 10 and Ten Balls to 'WORKING' state . Added game instructions & notes. Updated encryption & technical notes. - 1942: Fixed rom names - Alpha One (Vision Electronics / Kyle Hodgetts): Replaced 2nd MSM5205 sound with Discrete - Dynablaster: Verified a "not sure" opcode in clone Bomber Man - Match It II: Fixed another opcode - Megatouch III/IV/5/6: Added missing user2 roms and fixed rom names - Moon Patrol: Added discrete mixing and filtering to IREM games using M52-sound-c boards (Moon Patrol and Traverse USA). Replaced 2nd MSM5205 sound with Discrete. - PinBot (PlayChoice-10): Added PinBot mapper (H board) (Game now playable) - Shot Rider: Replaced 2nd MSM5205 sound with Discrete - Raiden 2/Raiden DX/Zero Team: Fixed visible area - Traverse USA: Added discrete mixing and filtering to IREM games using M52-sound-c boards (Moon Patrol and Traverse USA). Replaced 2nd MSM5205 sound with Discrete. - Tropical Angel: Replaced 2nd MSM5205 sound with Discrete - Truco-Tro, Truco Clemente, Tugboat, Tumble Pop and Tunnel Hunt: Merged memory maps - Dipswitch fixes in funworld.c, legionna.c and snookr10.c - Description changes of Megatouch III (9255-20-01 ROF), Megatouch IV (9255-40-01 ROD), Megatouch IV Tournament Edition (9255-50-01 ROD) and Megatouch 6 (9255-80-01 ROA) - MAME: Changed BIOS errors so that specifying an invalid BIOS is a warning, not a fatal error. Also re-allowed "default" as a BIOS setting with special meaning. - Debugger: Removed deprecat.h from debugger.h to prevent hiding modules that really needed to include deprecat.h. 0.124u4 - New games: Jumping Pop (Nics, Korean bootleg of Plump Pop) - New Working games: Side by Side and Touchmaster/3000/4000/5000/7000 - New Non-Working games: Apple 10 and Ten Balls (Ver 1.05) - New clones: 1942 (Williams Electronics license), Ghosts'n Goblins (Italian bootleg, harder) and Rygar (US set 2) - New drivers: snookr10.c - M6502/M65C02/M65CE02 CPU: Fixed the 6502 family of disassemblers to show the correct bit to operate for BBR, BBS, RMB and SMB instructions (65C02/65CE02 CPUs and variants). - MIPS CPUs: Inverted the sense of the memory mask that is passed to read/write handlers. Previously, the mask indicated which bits were NOT requested to be read/written. Now, the mask indicates which bits ARE to be read/written, which is more logical. Updated a number of drivers and the MIPS CPU cores to comply. - T11 CPU . The HALT instruction now calls interrupt vector . The ILLEGAL instruction had PC=0 at the end which makes code not run fine . The MARK instruction is now implemented - AY-3-8910A sound . Added a model to calculate mixing of channels with different resistance loads . Based on above, each channel may be assigned a different load in individual case, i.e. channels not tied together. . Rewrote ay8910.c to make emulation simpler . Changed the config structure to include a flag field and output resistor loads . Updated all drivers affected . Added some "Todos" related stuff - Discrete sound . Fixed a bug in disc_flt.c (konami filters) . Fixed discrete sound and konami filter addressing in galaxian driver - 68681 DUART: Added preliminary 68681 DUART (machine\68681.c, micro3d.c and tmaster.c) - 8255 PPI: Converted the PPI8255 implementation to a device (emu\machine\8255ppi.c) - cidelsa.c: Added a macro for the CDP1869 interface and made write handlers optional - cps1.c . Verified more gfx rom mappings against PAL dumps (thanks to Corrado) . Verified memory maps using A-board PAL dumps (thanks to Charles) . Separated the address ranges for CPS-A and CPS-B customs. This finally clarifies why some registers are fixed and some change with every game. . Identified three new unknown registers in the CPS-B-21 custom. Their purpose is unknown. All unhandled accesses to CPS-A/CPS-B registers will now be reported. There shouldn't be any left. Look out for "contact MAMEDEV" popups. . Cleaned memory maps . Moved extra input handlers to video\cps1.c since the extra connectors are on the C-board - funworld.c . Minor clean-up . Updated technical notes - galdrvr.c . Fixed discrete sound and konami filter addressing in driver . Changed addressing of AY-3-8910 to be in line with schematics - kyugo.c . Fixed offset sprite/background in driver . Changed and verified CPU frequencies. Fixed Z80 CPU1/2 clock speed and the 2x AY-3-8910A. Gyrodine, ' '99: The Last War ' and clones run on the same board. - meritm.c and tmaster.c Moved Microtouch touch screen controller emulation to separate module (machine\microtch.c) - twin16.c: Merged memory maps - Aero Fighters: Improvements to Aero Fighters (bootleg set 2): Fixed BG1 and BG2 offset. Fixed sprites. Promoted to "working" (NO SOUND). - Final Fight: Added sound to clone Final Crash - Forgotten Worlds: Moved Forgotten Worlds special input memory handlers to DRIVER_INIT - Gyruss: Added discrete sound for filtering ("konami"-style) and mixing. Replaced DAC/6x RC Filter sound with Discrete. - IQ-Block: Bypassed the protection in clone Shu Zi Le Yuan (V127M), emulated the video hardware and inputs & sound. Fixed Z180 CPU1 clock speed and visible area. Added missing dipswitches. - Jolly Card: Removed the temporary hack to clone Jolly Card Professional 2.0 - Muscle Bomber Duo: 'Muscle Bomber Duo - Ultimate Team Battle (World 931206)' is now parent set with clone 'Muscle Bomber Duo - Heat Up Warriors (Japan 931206)' - Popper: Improved colors using resistor values from schematics - Prehistoric Isle in 1930: Removed silly idle skip code in driver - Quiz F-1: Fixed 2 opcodes (machine\irem_cpu.c), now the little machines move correctly. - Street Fighter II: Lowered 68000 CPU1 clock speed to 10MHz. This is on the assumption that, since the 12MHz A-Board is called "89626A-4 DASH", it should have started to be used with SF2 DASH--that is, sf2ce. - Side by Side: Added new gfx1/2 roms (Game now playable) - Snooker 10: Moved Snooker 10 to its own driver - Mahjong Tian Jiang Shen Bing: Improved game, it boots now and has partially decrypted graphics. Fixed Z180 CPU1 clock speed and visible area. Added missing dipswitches. - Varth: Fixed layer enable at the end of stage 4. Increased Varth CPU clock to 12MHz to reduce slowdowns (the game was released after 'Street Fighter II' - Champion Edition (World 920313)' so the faster A-board was available). - Description changes of Shu Zi Le Yuan (V127M)/(V113FR) - MAME . Changed code which used assignment in conditionals to break out the assignment . Converted a large number of Machine -> machine and removed #include "deprecat.h" where possible . Inverted the sense of the memory mask that is passed to read/write handlers. Previously, the mask indicated which bits were NOT requested to be read/written. Now, the mask indicates which bits ARE to be read/written, which is more logical. Updated a number of drivers and the MIPS CPU cores to comply. . Expanded the set of memory accessor functions. In addition to direct byte, word, dword and qword accessors for all bus sizes, there are now masked word, dword and qword accessors for all bus sizes. . Changed UI to allow volumes higher than 2.0. . Changed the inline validity checks to work around GCC bug #35885 . Added new Windows option -watchdog, which creates a watchdog thread that forcibly kills the application after a certain number of seconds. Primarily intended to be used in regression test runs to handle the occasional hung game. . Specifying an invalid BIOS is now a fatalerror. Also, "default" is no longer a special BIOS type; if you want the default BIOS, leave the BIOS option blank. 0.124u3 - New Working games: Show Hand - New Non-Working games: Nandemo Seal Iinkai - New clones: Aero Fighters (bootleg set 2), Led Storm Rally 2011 (US) and Shinobi (set 5, System 16B, unprotected) - I8039 CPU: Fixed DAA instruction when A is > 0xF9 - PSX CPU (konamigq.c, konamigv.c, ksys573.c, namcos10/11/12.c and zn.c) . Removed casts and removed unnecessary decoding from NCLIP . Added signed values to PAIR & PAIR64 . Renamed PAIR64.lw to PAIR64.q . Tidied up DPCS, improved flag calculation and added support for lm/sf fields . Added sf/lm support to INTPL, improved flag calculation & calculates correct RGB . Fixed calculation of bit 31 of GTE FLAG register, when writing to it directly. . Added lm mode to OP and SQR and fixed the calculation - T11 CPU . Removed ancient 720 kludge . Added support for an external vector via irq_callback in the core. Apparently the hardware actually did support this and it is necessary for emulating the BK 0010/11 computer in MESS. - 6821 PIA: Removed word-sized handlers from 6821pia.c. Updated drivers that needed them to use these new interfaces instead. - 8259 PIC: Changed the PIC8259 implementation into a device - IDE: Converted the IDE controller to a device. Updated all drivers accordingly. - cps1/2.c . Fixed CPS1 palette control register to match tests on Magic Sword PCB . Verified several CPS1 graphics ROM mappings against PAL dumps . Merged CPS1, CPS2 memory maps and some tweaks from schematics, though to get perfect memory maps dumps of the A-board PALs would be needed. - gaelco3d.c, itech8.c: Updated drivers to remove the need for memconv.h by using this new feature - Seibu implementation cleanups (legionna.c/raiden2.c) . Added cop/heatbrl ram clear stuff . Tried to make COP a bit more generic, breaks a few things for now, but better than duplicated code all over the place. . Added the sound CPU to Raiden 2, although it doesn't make any sounds. Added Z80 CPU2 and YM2151, YM2151 and 2x OKI6295 sound - toaplan2.c: Made some changes to the 'V25' code in. Batsugun does upload what looks to be the entire program, unencrypted. If enabled it runs to the point of waiting for interrupts, however, for those it looks like it needs a real V25 core with register banks etc. - Altair/Destroyer/Draco: Added machine parameter and macros for the CDP1802 callback functions. This seems to have fixed the player sprite flashing in Destroyer/Altair/Draco. - Aquarium, Argus, Armed Formation, Bagman, Battle Rangers: Merged memory maps for Aquarium drivers. - Bionic Commando: Modified game to compute the palette based on the schematics - Denjin Makai: Added good gfx2 rom - Mr. Do's Castle: Adjusted refresh rate to match PCB measurement - Forgotten Worlds: Fixed gfx1 rom loading - Heated Barrel: Added COP/Heated Barrel ram clear stuff - Mutant Night: Fixed sprite overdraw mode to match movie - Power Spikes: Fixed lookup table for sprites in clone '1991 Spikes (Italian bootleg)' - Puzznic: Properly marked clone Puzznic (Italy) as a bootleg and disabled the MCU simulation on it, it has it's own internally. Note: This set is a bootleg, it uses a converted board without the MCU and has a hacked copyright message. The tilemap data for one of the girls appears to be corrupt, however this is correct, the bootleggers overwrote part of the data with the expected response sequence from the MCU in order to simulate it. - Quiz F-1 . Fixed an opcode (machine\irem_cpu.c) . Fixed encrypted disassembly for bp+ix+offset8 and bp+it+offset8 - Shinobi: Added correct rom dump for clone 'Shinobi (set 4, System 16B, MC-8123B 317-0054)' - Input port: Fixed crosshair update when the game is not polling the coordinates - Description changes of Dynasty Wars (US), Puzznic (Italian bootleg) and Shinobi (set 6, System 16A, unprotected) - MAME . Changed device read/write functions to take a const device_config *. Reverted recent hacks to get around this and removed unnecessary casts. . Added support for using smaller-sized memory handlers directly inmemory maps. To do so, you need to use the new AM_READn/AM_WRITEn macros and specify a mask for which bits are connected. . Added new functions for dynamically installing device memory read/write handlers . Updated install_memory_XXX_handler() functions to take a machine parameter. Updated all drivers accordingly. . Merged installation of read and write handlers where appropriate . Created new macro: AM_RAM_WRITE(handler) which specifies a memory range to be RAM-like for reads but calls the given handler for writes. . Replaced AM_READWRITE(SMH_RAM, handler) with AM_RAM_WRITE(handler). Also replaced AM_RAM AM_WRITE(handler) with AM_RAM_WRITE(handler). . Simplified memory.c code for dynamic installation so that a single function handles all the work; a NULL read or write handler indicates not to install anything for reads or writes. . Finished memory map merge for W drivers (warpwarp.c, warriorb.c, ... wwfwfest.c) - MAMETesters Bugs fixed 00206, 01691, 01694, 01695 and 01697 0.124u2 - New Working games: 1 on 1 Government - New Non-Working games: Touchmaster 5000 (v7.10) and Touchmaster 7000 (v8.00) - New clones: Seibu Cup Soccer :Selection: (set 1), Side By Side 2 (Japan) and Super Monaco GP (set 1, Japan, Rev A, FD1094 317-0124a) - FD1094 CPU: Added save state support - V30 CPU . Fixed DASM when a "real-time encrypted CPU" is used . Fixed execution clocks for add, addc, and, or, xor, cmp, sub and subc instructions. - 8237 DMA: Changed the 8237DMA implementation into a device - SCSI CD: Reverted previous change which broke some games - Seibu COP cleanup (legionna.c/raiden2.c): Primarily sorting the code and identifying similarities in different implementations. - PC/AT Keyboard: Removed the hardcoded dependency on a 8254 device from the 8042kbdc code. Changed the drivers using the 8042kdbc to define their own 8042kdbc - 8254 dependency. - PSX CPU (konamigq.c, konamigv.c, ksys573.c, namcos10/11/12.c and zn.c) . Fixed the SR masks for MTC0 . Added ability to test the instruction/data cache ram. The scratchpad and BIU register are now handled internally to the CPU. . All writes are performed with masks. SWL/SWR used to be implemented with two writes ( one byte and one word ) when writing three bytes, now it only ever performs one. Byte and Word writes use masks as they leave the rest of the register on the bus, which can be picked up by larger registers. . The read/write functions to use are cached when the SR bits are updated, as are the bad address masks. . Added coprocessor 1 & 3 support, though they don't do anything useful. . All loads now go through the delay pipeline, a lwl/lwr will grab the value out of the pipeline if it's updating the same register. . Added undocumented behaviour of BLEZ/BGTZ. The comparison for zero can be changed by specifying an alternate register in the RT field ( the documentation says you should always use register 0 ). . Restricted to 16 COP0 registers & generate an exception if any of the 5 for the MMU are used. . Added BCF/BCT instructions, although I have found no conditions that affect them yet. . Generates an exception if any MMU instructions are executed . Sets the CE instruction for all exceptions, not just those involving a coprocessor. The bits of the opcode that specify the coprocessor are grabbed no matter what the instruction. . Added TAR register and BT bit in SR. When an exception occurs during a branch, BT determines whether it was taken or not. The TAR register gets set to the destination of the branch. . Fixed the BD bit when you are in a branch delay slot and you didn't take the branch, this shows up in the pipeline as !pc. . Fixed branches within a branch delay slot . Multiply & divide instructions can be aborted if you write to HI/LO before reading the result. Added data breakpoints, you don't appear to be able to set breakpoints on any of the addresses internal to the CPU. . Multiply/divide/GTE instructions can execute when an exception is taken, although the EPC indicates that it hasn't. The BIOS avoids rerunning GTE instructions as they are destructive, so you have to make sure they run. . Added bus error handling, PSXCPU is limited to 8MB of ram & any access outside this range will trigger an exception. I believe this is to be an internal limit. . Added CXD8661R as a specific CPU type, System 12 appears to allow more than 8MB of ram & it's possible that this is different. . Mapped out all instructions to either generate an exception or ignore bits . Updated the disassembler to match the decoding . Fixed disassembling of branch instructions in a branch delay slot . Lui checks for a ori/addiu following and will show you the result . Added step over/out support . Fixed standalone disassembler . Fixed SZ0 truncation . Fixed IRGB truncation and conversion to IR1/IR2/IR3 . Added IR1/IR2/IR3 saturation when calculating ORGB . Fixed OTZ sign extension . Fixed reading from SXYP . Fixed reading from IRGB . Fixed writing to LZCR . Fixed sign extension of GTE control registers . Fixed writing to FLAG . Fixed flag calculation in F macro and fixed avsz3 & avsz4 flag & otz calculation. - aleck64.c (N64-based games) . Mostly fixed sound . Correct DMA functionality - cps1.c . Verified some GFX rom mapping tables against PAL dumps . Improved understanding and emulation of palette related registers . Removed CPS1 tile kludges and replaced with per-game ROM mapping tables. Ideally, the ROM mapping should be derived from mapping of the PALs found on the B board. Note that this is a significant change and some new bugs might be caused by it. Unlike previous bugs, where extra garbage tiles would appear in the games, the new bugs would be tiles or sprites MISSING--so they will be harder to notice. This would happen because in some cases the 16x16 regions of the gfx ROMs can be used by both scroll2 and sprites, while in other cases they must be separated. . Fixed 68000 CPU1 clock speed in Pang! 3 and Quiz & Dragons - docastle.c: Fixed Z80 CPU1 clock speed - legionna.c . Improved graphic decoding, the BK3 tiles are now correctly extracted from the TXT region, map screen has correct tiles now. Changed region gfx1/3 to user1/2. . Fixed gfx1/2 rom loading in Denjin Makai . Fixed gfx1 rom address to $1 in Godzilla, Heated Barrel and SD Gundam Sangokushi Rainbow Tairiku Senki - m62.c: Fixed wrong tile-sprite priority - marvins.c, matmania.c: Added tags and locations to dips - namcona1.c: Fixed an erroneous debug change which leaked into the last version of the Namco NA-1 update - namcos12.c: Replaced 'PSX CPU' with CXD8661R in all games - taito_z.c . Added missing TC0060DCA sound mixer . Added 4x Volume Filters in Aqua Jack, Battle Shark, Double Axle, Enforce, Racing Beat, Special Criminal Investigation and Space Gun . Added 3rd sound channel and 4x Volume Filters in Chase H.Q., Continental Circus and Night Striker - tmnt.c: Improved sound balance - toaplan1.c: Derived refresh rate - twin16.c: Derived clocks and refresh rate. Fixed clock speed of the 2x 68000 in Devil World and Vulcan Venture - Aero Fighters: Improvements to the (bootleg): Sprite offset are now correct. Split spriteram in two parts. Identified last sprite for the two parts and promoted to "working" (no sound). - Armed Formation: Improved sound balance - Athena: Improved graphics - Double Axle: Marked one rom as BAD_DUMP - Emeraldia: Enabled ROZ tilemap, but it's not centered in the right position when it's not in its original dimension. - Hopper Robo: Swapped gfx1 roms - Marine Boy: Fixed colors - Mighty! Pang: Fixed gfx1 roms addresses - Power Spikes: Added a fixed for sprite's y-coordinate to clone 1991 Spikes (Italian bootleg). Implemented lookup table for convert sprite code in the real code. Fixed scroll and offset. - Risky Challenge: More opcodes fixed in Gussun Oyoyo and Risky Challeng - Son Son: Merged memory maps - Super Rider: Derived clocks. Fixed Z80 CPU1 and the 2x AY-3-8910A clock speeds. - Tecmo World Cup '90: : Removed 2nd YM2203 sound in Euro League, it isn't present on the bootleg boards. Changed the clocks according to the oscilators found on the board. - X-Men: Tweaked visible area - Input port . Renamed input port functions: readinputport -> input_port_read_indexed, readinputportbytag -> input_port_read and readinputportbytag_safe -> input_port_read_safe. Added machine parameter to input port functions. Updated many drivers to accomplish this. . Bulk converted drivers explicitly calling input_port_n_r() with a bogus offset to calling input_port_read_indexed() instead. . Rewroted INP recording from scratch, since all old INPs are broken anyways. Header now includes timestamp, which overrides the default time base for MAME's system time. Each frame recorded now gets a timestamp. Analog ports are recorded once per frame and interpolated. Analog port calculations are all done in fixed point for consistent results. A bunch of other minor tweaks in the input port code. NOTE: There may still be a few changes to the final INP format. . Fixed unicode crashing bug with input names - Dipswitch fixes in denjinmk, madcrash, lghost and stadhero - Description changes of 1991 Spikes (Italian bootleg), Falcon (bootleg of Phoenix) (8085A CPU), Falcon (bootleg of Phoenix) (Z80 CPU), Vautour (bootleg of Phoenix) (8085A CPU), Vautour (bootleg of Phoenix) (Z80 CPU) - MAME . Added the running_machine* parameter to the function passed into cpunum_set_irq_callback() and adds the IRQ_CALLBACK macro for the callback function. . Rewroted core memory handlers as inline functions. These should be easier to trace through in a debug build, yet should operate the same as before. . Created a complete set of functions for all databus sizes (8, 16, 32 and 64) and all endiannesses. A few functions are redundant, but it is now very clear which functions to use in which scenarios. It is also now possible to rely on being able to access values of 8, 16, 32 or 64 bits via the built-in accessors without fear of crashing. . Updated all cores using 8-bit handlers to explicitly call the 8-bit handlers with the appropriate endianness . Added the running_machine* parameter to the function passed into cpunum_set_irq_callback() and adds the IRQ_CALLBACK macro for the callback function. . Cleaned up the machine usage in the OSD/Windows files and added the running_machine parameter where possible. . Removed unnecessary postload callbacks which only marked all tiles dirty, since this is done automatically by the tilemap engine. . Changed the system to show a message if coin-lockout is active and a coin key is pressed . Cleaned up the machine usage in the OSD/Windows files and added the running_machine parameter where possible. . Reduced the number of save state callback types from 3 to 1. The only remaining form is the one that takes a pointer parameter. Added macros for STATE_PRESAVE and STATE_POSTLOAD to define common functions. Added machine parameter to these functions. Updated all drivers and CPU/sound cores to use the new macros and consolidate on the single function type. As a result pushed the machine parameter through a few initialization stacks. . Fixed a few games which were calling n-bit handlers directly to use the generic forms. In the future, this is all the access drivers will have. . Memory map merges for drivers starting with U, V, W and Z . Actually fixed -refreshspeed 0.124u1 - New games: Multi Game III, Show Hand and Super Bishi Bashi Championship - New Non-Working games: Beeline (39-360-075), Chase Bombers, 2x 'Give us a Break' and 2x Ten Up - New clones: Bad Lands (bootleg), Bombjack Twin (set 2), Deer Hunting USA V2, Double Dragon (bootleg with 3xM6809), DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB), Ghost Pilots (set 2), Junior King (bootleg of Donkey Kong Jr.), 2x Off Road Challenge, Samurai Shodown / Samurai Spirits (set 2) and Super Bishi Bashi Championship (ver KAA) - Removed games: Robo Army (set 2) - New drivers: astrocorp.c, galaxold.c, galdrvr.c and guab.c - COP4xx CPUs: Implemented interrupt. Implemented serial input/output. Fixed XAD/LDD, XIS1, RMB3 opcodes. Fixed clock divider. Fixed internal memory map size. Added some cpu variants. Fixed serial timer. Fixed clocks. Fixed COP410 RMB3, XAD instructions. General cleanup. - Discrete sound: Added DISCRETE_RCFILTER_SW to discrete sound. This implements multiple RC networks with CD4066 switches to connect/disconnect capacitor. Implemented discrete mixing in circusc using DISCRETE_RCFILTER_SW and sound routing to route 76416 output to discrete logic. Added discrete filtering and mixing to galaxian.c games using konami_sound. Fixed timing of stream_update in discrete_sound_w. All sound cores update before processing changed data. Added stream_update to discrete_sound_r. Now supports multiple output nodes per module. In this case, NODE_XXX is the default output. Alternative outputs may be accessed by using NODE_XXX_YY where 00 Certain special modules (WAVELOG) may no longer be used as input nodes. Removed explicit (NODE_XX + expr) from a couple of drivers. - SCSP and AICA sound: Fixed encoding/decoding of negative denormal floats in the AICA/SCSP DSP. Shouldn't actually affect any games. - Seibu Sound System (audio\seibu.c): Changed Seibu sound CPU to use AM_READ_PORT("COIN") (seibu_sound_map) instead of input_port_0_r. - 6840 PTM: Fixed interrupt handling and 16-bit memory accessors in 6840ptm.c. Also cleaned up code for the sake of readability. - 8253 PIT: Converted the pit8253 implementation into a device. To make it easier to use I've also created a src\emu\devconv.h in the same style as src\emu\memconv.h. - SCSI: Various SCSI devices register state items by their disk ID, which are not unique across device types. Introduced a device-type offset for CD-ROMs so their registrations don't clash with harddisks. - PC hardware: Did some major cleanup and gutting of pcshare.c - astrocde.c . Update src\mame\includes\astrocde.h to use an XTAL value . Clear interrupts if they are no longer valid . Added the knob inputs - bishi.c: Fixed 68000 CPU1 clock speed and rom names - bfcobra.c . Added plane priority to blitter, fixing Treble Top signature writing . Video output now supports all modes (lores, hires, mixedres and 8/7/4/3 bits/pixel), fixing Every Second Counts colour problems. . Added line draw, fixing missing stuff from Question Of Sport. . Change blitter loop type control - there are 4 types of loop . Fixed Z80 clock speed, visible area and VSync . Accounted for Z80 cycles stolen during a blit operation. Improves gfx/sound sync and seems to fix the final round lockup in Every Second Counts. - bloodbro.c: Improvements to DIP locations and coin modes. Added notes for clone Blood Bros. (set 2). - blueprnt.c: Added DIP locations to blueprnt.c - cidelsa.c . De-deprecated the timer callbacks . Moved PCB RAM to the heap and fixed index overflow . Converted CDP1869 to the new device system . Refactored to represent how the hardware actually works . Added PMA latching on OUT5 . Separated Cidelsa video to its own file - cps1/2.c . Fixed background color. This fixes Three Wonders (game start) and Mega Twins (explosion during attract). It seems to break Varth, however, and has dubious effects on the boot sscreens of avsp, sfa3 and possibly other CPS2 games. . Changed palettesize to 3072 colors - konamim2.c, model3.c: Changed palettesize to 32768 colors. - ksys573.c: Fixed DS2401 state loading now that the digital I/O board's serial number has been changed to a const by not saving it. As the serial number cannot be changed at run time it was rather pointless. - galdrvr.c . Splitted driver into galdrvr.c, galaxold.c and galaxian.c. Merged amidar.c and frogger.c with galdrvr.c driver. Added the Scramble driver games scramble, scrambls, explorer, strfbomb, atlantis, atlants2, theend, theends, froggers, frogf, amidars, sfx, skelagon, monsterz, scorpion, scrpiona and scrpionb to the galdrvr.c driver. Added the Super Cobra (scobra.c) games scobra, scobras, scobrase, scobrab, armorcar, armorca2, tazmania, anteater, losttomb and losttmbh to the galdrvr.c driver. Moved the Galaxian games scramblb, scramb2, 4in1, bagmanmc, dkongjrm, rockclim, ozon1, ladybugg, vpool, drivfrcg, drivfrcb, bongo, hunchbkg, harem, tazzmang, racknrol, hexpool, hexpoola, trvchlng, ckongg, kkgalax and porter to the galaxold.c driver. . Galaxian rewrite: Ultimately will combine the existing drivers for galaxian, scramble, frogger, scobra, amidar and dambustr. For the moment, only a subset of games are implemented in the new system; the remainder are running on the old code. Main features are accurate video timing, correct stars implementation, better organization, simplified input ports and many other smaller fixes. . Added discrete filtering and mixing to galaxian.c games using konami_sound . Fixed visible area and palettesize . Added Discrete sound in amidar, anteater, armorcar, atlantis, frogger, losttomb, monsterz, scramble, scobra, scorpion, sfx, tazmania, theend and turtles. . Removed RC Filter in kingball and scramble . Fixed gxf rom loading - mermaid.c . Added proper implentation of hardware collision in driver. This fixes Mermaid (when the player is in the water with the sharks) and Rougien. . Fixed priorities in Mermaid and Rougien and a sprite wrapping bug - mpu4drvr.c, bfcobra.c + seta.c: Added dynamic control of RX and TX pins to 6850 ACIA emulation - this is needed for correct operation of the MPU4 Video communications system, and may be handy for some MESS systems. To use, set the rx and tx clocks to 0 in the acia interface, then use acia_tx_clock_in() and acia_rx_clock_in() respectively. - namcona1.c . Fixed sprites shadow in driver . Added tilemaps and sprites 4bpp mode . Added preliminary ROZ implementation (disabled until the enable / disable register is found) . Removed Emeraldia hack and changed background pen to fix Emeraldia demo - naomi.c: Added a little magic to make the Atomiswave BIOS try to be more verbose, but our video emulation isn't good enough to cooperate. - neodrvr.c: Fixed romsets in 3countb, aof, bstars, bstars2, fatfury1, fightfev, maglord, nam1975, quizkof, rbff2, ridhero, roboarmy, samsho, spinmast, superspy and tpgolf. - scramble.c: Moved games scramble, scrambls, explorer, strfbomb, atlantis, atlants2, theend, theends, froggers, frogf, amidars, sfx, skelagon, monsterz, scorpion, scrpiona and scrpionb to the galdrvr.c driver. - tecmo.c . Fixed MSM5205 clock speeds in Gemini Wing and Silk Worm. Fixed Z80 CPU1 and MSM5205 clock speeds in Rygar. . Fixed broken colors on sprites in Final Star Force. This fixes blending effect isn't quite working correctly (ID 00196). - tx1.c: Replaced anonymous timer in TX1 driver with an allocated one to make state saving closer to reality. - Aero Fighters: Fixed clone Aero Fighters (bootleg): Fixed spriteram3 (previous value was too high and in the "city" level some build disappear. Sprite gfx bank (previously some sprite appear right and some sprite was wrong). Fixed perfectly the sprite zoom. Removed multisprite support; in the bootleg aren't present. - Armor Attack: Created a built-in overlay using just rectangles - Circus Charlie: Replaced DAC/3x RC Filter with Discrete - Dingo: Changed Dingo (encrypted) (dingoe) to a clone of Dingo. Added Samples sound. - Esh's Aurunmilla: Changed Esh's Aurunmilla (Set 2) and (Set 3) (esha, eshb) to clones of (set 1). - Galaxian: Changed Moon Alien Part 2 (moonal2), clone (older version) (moonal2b) and Super GX (supergx) to clones of Galaxian. - Iron Horse: Added discrete filtering and mixing. One driver less using FILTER_RC. Replaced 3x RC Filter with Discrete. - Lucky Today: Changed Chewing Gum (chewing) to a clone of Lucky Today. - MX5000: Added multiplier to Flak Attack. This is a protection, which is an external multiplyer connected to the sound CPU (same as in wecleman). - Dipswitch fixes in bloodbro, blueprnt, catacomb, galdrvr.c, levers, redufo and skysmash. - MAME . Added fatal error if AM_READ_PORT() references a non-existent port . Changed "Machine" to "machine" in a number of places when the running machine parameter is already available. In some cases this also allowed for the removal of deprecat.h. . Fixed tilemap viewer to draw the whole tilemap when categories are used. Added new option TILEMAP_DRAW_ALL_CATEGORIES to do this efficiently. Updated several drivers to use this instead of rendering each category independently where appropriate. . Minor cleanup and simplification in the video and palette code. Removed palette_config(). . Memory system changes: Now passing mem_mask to the read and write debug hooks. This allows the address & size of the memory access to be correctly calculated when using a memory call that takes a mem_mask. New macros added for checking mem_mask: ACCESSING_BITS_m_n. These check for any access within the bounds between bit 'm' and bit 'n' (counting bit 0 as the least significant bit). Currently the pattern for checking whether both bytes of a word is written is to make two byte checks. All occurrences of ACCESSING_LSB, ACCESSING_MSB, ACCESSING_LSB16, ACCESSING_MSB16, ACCESSING_LSB32, ACCESSING_MSB32, ACCESSING_LSW32, ACCESSING_MSW32 & simple mem_mask checks have been replaced with the new macros. . Converted special-case DIP switches (service, unknown and unused) into their own token type rather than expanding into other tokens. The reduces the number of redundant strings and data. . Added input ITEM_IDs for additional axes and switches. Also added ITEM_IDs for up to 4 hats/POVs. . Merged memory maps for half of the W drivers. Also made a couple of random touchups for X, Y and Z drivers. . Fixed cfg file corruption if joystick is not connected; itemclass now part of token if item is not found. Settings for joysticks which use a custom item id will still be lost. A fallback has to be provided here since those will use a token generated from the input item name. . Changed winwork.c from using hand-built scalable locks to using standard Windows CriticalSections for now, to hopefully address. - Compiling . Added new makefile flag VERBOSE which enables GCC's verbose output during compile . Fixed ledutil.c so it compiles cleanly under MSVC 0.124a - New clones: Ghosts'n Goblins (bootleg with Cross) - MAME: Fixed major regression in 0.124 which caused many sound routes to be applied incorrectly (emu\mconfig.c). 0.124 - New Working games: Gekisou and Mermaid - New clones: Ridge Racer (Rev. RR3, World) - MSM5232 sound: Added Noise output to the emulation - MC6845 CRT: Added option to programatically set the clock pin. This is needed by at least one MESS driver. Added mc6845_set_hpixels_per_column() for the Hercules gfx adapter. - SCSI: Fixed SCSI case when no device exists (e.g. running the sys573 BIOS directly) - kviper BIOS: Fixed crash - astrof.c: Updated driver to use the timer device - cidelsa.c: Cleaned driver up to the latest spec - crospang.c: Fixed driver regression. Not sure why this needed to be RGB15, works fine with INDEXED16. - crystal.c: Changed driver from RGB15 to RGB32. RGB15 is not enough bits to hold the 5-6-5 colorspace. - dgpix.c, eolith.c: Converted the driver to INDEXED16. Removed temp bitmaps. Changed ugly recursive video RAM code. - equites.c: Added placeholder effects for cymbal and hihat. These will need further work to properly emulate the discrete circuitry. - gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c: Got most of the Konami PPC games running again. - f-32.c, gamecstl.c, kinst.c, lethalj.c, taitowlf.c and ultrsprt.c: Converted driver to use INDEXED16 - mpu4drvr.c: Removed improper use of PERIODIC_INT in MPU4, to use new timer devices. Also correct 50Hz timer in MPU4 Video games. - tx1.c: Fixed bug in audio\tx1.c spotted by new compiler warnings in GCC 4.3.0 - Beach Festival World Championship 1997: Fixed regression - Beast Busters: Fixed sprite wrapping, this is used on the gun calibration screen, at least. The game still hangs on a black screen after service mode is turned off. Even exiting MAME and restarting doesn't fix it, so it's probably a EEPROM issue. - Cabal: Correct clocks on Cabal and clones - Commando (Sega): Fixed music stops when you kill a soldier. This happend only at the first time. (ID 00438) - Dou Di Zhu: Removed RGB15, it's a "skeleton" driver, so why have it? - Exerion and Skull & Crossbones: Fixed assertions - Five a Side Soccer: Converted Ultra Sports driver to use INDEXED16 - Gekisou: Added NVRAM and fixed inputs (Game now playable) - Ghosts'n Goblins: Fixed graphics ROMs in clone (World? set 2) - GTI Club: Fixed crash - Malzak: Fixed clone Malzak II from crashing - Mermaid: Fixed collision detection (Game now playable) - Orbit: Redid video timing with raw parameters. Added full memory map and a few other cleanups. This fixes 'Game doesn't start' since 0.123u4. Fixed VSync. - X The Ball: Fixed video timing. Still don't know why it changed recently, but the new parameters reproduce the old values. Fixed VSync. - Zombie Raid: Changed gun input ports to work with the calibrated settings - Dipswitch fixes in blockhl, blockout and gekisou - MAME . Removed unnecessary assert in video.c that broke screenless games . Added PALETTE_INIT functions for common 16-bit RGB patterns in video\generic.c . Added validity check to ensure input port tags don't have duplicates. Fixed several drivers where there were duplicates. . Changed xmlfile.c to pass in memory handlers to expat so that our memory overrides are properly managed. . Explicitly fixed unmapped handler masks so that we don't report all unmapped addresses as 0. . Centralized definitions of _WIN32_WINNT. Removed malloc/calloc/realloc/free link-time overrides; we now rely exclusively on compile-time overrides. Made a few tweaks toward getting MinGW-w64 working, but there are still linker issues. . De-deprecat-ed ui.c . Another batch of pedantic static/const/include fixes 0.123u6 - New games: Pot Game (italian) - New Working games: Gekisou - New clones: Pitfall II (315-5093, Flicky Conversion) and Thunder Dragon (9th Jan. 1992) - SH-4 CPU: Fixed "garbage" (newlines) in the debugger window when debugging the SH-4 CPU - Exidy 440 sound: Changed exidy440_sound_command back to "UINT8." Since it's used by both 8-bit and 16-bit systems, the automatic allocation is not worth it if you need an ugly UINT16 ** cast. Removed deprecat.h from some of the exidy files. - MSM5232 sound: Fixed MSM5232 noise LFSR formula (done by Jarek Burczynski; thanks to Corrado Tomaselli for samples). Changed MSM5232 emulator to output channels separately. Added output of SOLO channels to MSM5232 emulator. - ALPHA-8201/8301 CPUs: Alpha Denshi major update: Fixed Alpha 8201/830x MCU simulation. Added dump of Alpha 8201 MCU to games that use it (the ROM isn't used yet, HMCS44 CPU core needs to be written first). - CHDMAN: Fixed CHDMAN -extract to a physical drive on Windows - champbas.c . Merged talbot.c with champbas.c driver and made some driver cleanup . Fixed Champion Base Ball input . Fixed Alpha 8201/830x MCU simulation . Added ALPHA-8201 MCU rom to Champion Base Ball (Japan set 1), Champion Base Ball Part-2 and Talbot. - exctsccr.c . Switched Exciting Soccer (bootleg) to use the correct gfx ROMs (matches screenshot found in 01058 exctsccb: Exciting soccer bootleg should be placed in champbas.c.). . Fixed sprite bpp in Exciting Soccer, removed the horrible hacks that were used to fix colors and transparency. . Fixed sound clipping in Exciting Soccer . Removed hacks from Exciting Soccer II . Fixed gfx1/2/3 rom loading - equites.c . Fixed Alpha 8201/830x MCU simulation . All hacks from the equites driver removed . Fixed equites restart position after going underground . Fixed hvolume and Splendor Blast 2 players . Added dump of Alpha 8201 MCU to games that use it (the ROM isn't used yet, HMCS44 CPU core needs to be written first). . Major driver cleanup . Implemented BG perspective scrolling using PROMs . Fixed sprite flip & disable . Fixed background color and converted background to tilemaps . Fixed foreground banking and screen flip . Removed meaningless banking of player inputs . Added UI adjuster for MSM5232 frequency . MSM5232 volume control . Fixed MSM5232 noise LFSR formula (done by Jarek Burczynski; thanks to Corrado Tomaselli for samples). . Changed MSM5232 emulator to output channels separately . Added output of SOLO channels to MSM5232 emulator . Added percussions to the equites.c games using samples; sound board emulation is still not complete. Cymbal hit and hi-hat are missing; bassline is incorrect and DAC output should be filtered. - exidy440.c: Changed exidy440_sound_command back to "UINT8." Since it's used by both 8-bit and 16-bit systems, the automatic allocation is not worth it if you need an ugly UINT16 ** cast. Removed deprecat.h from some of the exidy files. - magicfly.c . Completed the component list & PCB layout . Added technical references to register $63 (magicfly) . Switched crystal to new predefined format - megatech.c: Fixed the top screen in the megatech games - mpu4drvr.c: Converted the MPU4 driver to use an HD6845, as the Hitachi part was on the PCB, while also using it to generate the VBLANK, rather than hardcoding a value. Added the pulldown resistor to the network, and added all the conditional inputs. Please note that on the later Cabinet Types (Ready Steady Go-1 onwards), the 10p slot is locked out (location of the true register for this is unknown), but the input setting is correct - you have to use Coin 2 or higher to get money in. - ninjakd2.c: Fixed PCM sample rate to match PCB measurement - Air Buster: Fixed bootleg from reseting because of the watchdog - Beast Busters: Added note regarding correct gun calibration - Gorf: Added internal artwork - Jolly Card: Funworld updates: Added proper inputs to clone Jolly Card Professional 2.0. Added temporary patch to allow bypass the "code" screen in jolyc980. Updated technical notes. - Pit & Run: Fixed typo in frequency. Fixed Z80 CPU1 and M68705 CPU3 clock speeds. - Shougi: Fixed inputs, CPU gameplay and Alpha 8201/830x MCU simulation. Added ALPHA-8201 MCU rom. - Super Pinball Action: Fixed crash - Thunder Dragon: Fixed 68000 CPU1 clock speed - wilytowr: Fixed coin modes - Input port . Added a crosshair_set_screen() to allow drivers to control which screen(s) on which crosshairs are displayed . Added use of PORT_DIPUNKNOWN_DIPLOC in 1945kiii, 40love.c and 88games . Made use of PORT_INCLUDE in 40love.c, 8080bw.c, bfm_sc2.c, bladestl, battlnts.c, blockade.c and rackemup - Dipswitch . Added DIP locations to 8080bw.c, battlane.c, battlera.c, battlnts.c, bbusters.c, beezer, bionicc, bladestl, rackemup and wilytowr . Fixes in 8080bw.c, astropal, ballbomb, battlnts, bladestl, bfm_sc2.c, champbas.c, cosmo, lupin3, qntoond, rackemup, shougi and wilytowr - Save state: Made it a fatalerror to register save state callbacks at the wrong time if the current driver claims to support save states. - Description changes of Chouji Meikyuu Legion, Demons & Dragons, Professor Pac-Man and Seawolf II - MAME . Fixed render_target_get_minimum_size() to return nominal values if no screens are found . Added return value to video_screen_update_partial() indicating whether or not the VIDEO_UPDATE was called as a result . Removed unneeded pen lookups in drawgfx. Did some code formatting clean-up. . Fixed memory leak in clifront.c . Moved per-screen initialization into DEVICE_START and per-screen cleanup into DEVICE_STOP in the core video implementation. . The on-screen "Reset by watchdog" message only appears in debug builds now . Moved per-screen initialization into DEVICE_START and per-screen cleanup into DEVICE_STOP in the core video implementation. . Added a new device type for timers. Where applicable, added a parallel set of timer functions that take a device_config instead of an emu_timer. Added MDRV_TIMER_* macros to define the timers in the machine driver. Implemented both periodic and scanline-based timer variants. Modified Space Encounters and Centipede to make use of this feature. Going forward, this is the preferred way of creating periodic timers. . Fixed chicken and egg problem with device_start callbacks: Added DEVINFO_INT_TOKEN_BYTES, which is queried before device startup. It should return the size of the structure that will be hung off of device->token. It must not return 0. Changed the core device interface to allocate and zero a block of memory the size of DEVINFO_INT_TOKEN_BYTES before calling device_start. The pointer to this memory is already attached to device->token at the time device_start is called. The primary motivation for this is to allow the device_start function to make internal calls and pass the device_config* around as if the object were fully constructed. Since the token is used to indicate whether or not a device is live, this makes the device "live" at the time device_start is called rather than after it completes. . Renamed *_vbl_cb to *_vblank_callback 0.123u5 - New games: Megatouch IV, Megatouch IV Tournament Edition and 8x Trivia (Questions Series xxx) - New Working games: Amuse, Joker Poker, Megatouch 6, Pit Boss II, Pit Boss Megastar, Super Pit Boss and Super Bowl - New clones: Raiden Fighters (Austria) - Removed games: Trivia (Version 1.02C) (gt102c), Trivia (Version 1.01C) (gt101c), Trivia (Version 1.01C, Alt questions 1) (gt101c1), Trivia (Version 1.02B) (gt102b), Trivia (Version 1.02C, Alt questions 1) (gt102c1), Trivia (Version 1.02C, Alt questions 2) (gt102c2) and Trivia (Version 1.02C, Alt questions 3) (gt102c3). - 68000 CPU . Fixed prefetching operation. Previous behavior was incorrect. . Fixed build logic to only include it if enabled - TMS34010 CPU: Changed CPU to take a screen tag instead of screen number - PowerPC core (PPC403/60x): Changed how the PowerPC MMU is enabled at compile time, to cut down on the amount of unused functions in MAME. - SSP1601 CPU: Added support for Sega Virtua Processor, to run Genesis/MegaDrive version of Virtua Racing, intended to be used by MESS. It consists of a CPU core SSP1601, and updates in megadriv.c. SSP1601 replaces SSP1610, as it has been confirmed that SVP actually contains SSP1601. The current SSP1610 is only a placeholder (nearly completely unimplemented) anyway. Changed megadriv.c add a new driver for Genesis/MegaDrive+SVP combination, also add SVP memory controller logic and memory map. - MultiPCM sound: Saturate MultiPCM on clip and fix envelope discontinuity. - (machine\slapstic.c): Changed slapstic management to always install an opbase handler to more aggressively catch code executing in the slapstic region. Updated all drivers to separate the slapstic region of ROM into a different ROM section from the fixed ROM. - Voodoo GFX: Voodoo now takes a device_config for the screen - MC6845 CRT . Changed the MC6845 to take and pass device_config's only. The following shook out from this that are applicable to other devices as well: Running_machine is no longer taken, passed or stored MC6845_t is now private. Since passing device_config's is not device type safe, I added a get_safe_token() to mc6845.c to check the device passed in for the valid type. . Changed MC6845 to take a screen tag instead of a screen number. . Added some new 6845 varieties: MC6845-1, H46505, HD6845 and SY6545-1 - TMS34061 video controller: Converted atarigen and TMS34061 to be handle based - asuka.c: Created MACHINE_START( asuka ) in asuka.c to configure cpu2 banks with memory_configure_bank(). All drivers support now save states, with the exception of cadash and clones, the background does not load properly. - bankp.c, baraduke.c and punchout.c: Simplified inputs, improved dipswitches and added DIP locations. - meritm.c: Fixed Z80 CPU1 clock speed and added AY-3-8910A. Fixed rom loading, visible area and palettesize. - qix.c: Changed driver to use the MC6845's VSYNC notification for interrupts - superqix.c . Changed vblank interrupts to 3 to fix screen drawing issues . Used memory_configure_bank() to configure memory . Added save states - Action Hollywood: Fixed PIC16C57 CPU2 clock speed - Ben Bero Beh: Fixed M6809 CPU1 clock speed - Deal 'Em . Changed input (these work well with the default cabinet type) . Conversion to the resnet code. Unfortunately, this still doesn't fix the apparently needed transparency. - Electric Yo-Yo . Fixed flickering . Added layout to crop corners - F-1 Dream: Fixed 68000 CPU1 and Z80 CPU2 clock speeds - Galaga: Fixed the crash caused by the slightly altered video timing - Knuckle Joe: Fixed Z80 CPU1 clock speed. Replaced AY-3-8910A and 2x MSM5205 with 2x SN76489. - Pit & Run: Fixed Z80 CPU1 and M68705 CPU3 clock speeds - Prehistoric Isle in 1930: Fixed 68000 CPU1 clock speed - Qix: Changed driver to use the MC6845's VSYNC notification for interrupts - Tiger Road: Fixed 68000 CPU1 and Z80 CPU2 clock speeds - Input port: Moved crosshair code from video.c into its own module. Simplified crosshair logic and made it screen device based. - Dipswitch fixes in aliensec, armwrest, bullet, metrocrs, patimono and punchout - Description changes of Amuse (Version 50.08 IBA), Joker Poker, Megatouch III, Pit Boss II, Pit Boss Megastar and Super Pit Boss - MAME . Removed machine from the parameters of some of the device_get_info and device_set_info calls because that information is stored with the device now. . Changed device interfaces to pass the device_config * rather than tokens and individual bits to the device callbacks. Updated all existing devices accordingly. . Removed video_data from running_machine. Private state screen information now hangs off the public one, instead of the other way around. Combined video_global and video_private into a single structure. . Converted address maps to tokens. Changed the address_map structure to house global map-wide information and hung a list of entries off of it corresponding to each address range. Introduced new functions address_map_alloc() and address_map_free() to build/destroy these structures. Updated all code as necessary. . Fixed several instances of porttagtohandler*() in the address maps. Drivers should use AM_READ_PORT() macros instead. ADDRESS_MAP_EXTERN() now is required to specify the number of databits, just like ADDRESS_MAP_START. . Removed ADDRESS_MAP_FLAGS() grossness. There are now three new macros which replace its former usage. ADDRESS_MAP_GLOBAL_MASK(mask) specifies a global address-space-wide mask on all addresses. Useful for cases where one or more address lines simply are not used at all. And ADDRESS_MAP_UNMAP_LOW/HIGH specifies the behavior of unmapped reads (do they come back as 0 or ~0). . Changed internal memory mapping behavior to keep only a single address map and store the byte-adjusted values next in the address map entries rather than maintaining two separate maps. Many other small internal changes/cleanups. . Replaced the following macros (SMH == static memory handler): MRA*_BANK*/MRA*_BANK* -> SMH_BANK*, MRA*_RAM/MRA*_ROM -> SMH_RAM, MRA*_ROM/MWA*_ROM -> SMH_ROM, MRA*_NOP/MWA*_NOP -> SMH_NOP and MRA*_UNMAP/MWA*_UNMAP -> SMH_UNMAP. This removes the silly need for a bunch of redundant constants with faux type definitions that didn't buy anything. . Moved some memory system constants into memory.c . Some additional memory system cleanups: Made address versus byte offsets explicit throughout. Removed some unused parameters. Consolidated initialization process. Removed maximum memory block count. Centralized bank management. Added masked handlers and change_pc to the accessors. Added memory_get_accessors() to return a pointer to the accessors for a given address space/databus width/endian configuration. . A number of changes to remove references to screens by index and make the video system based strictly upon the screen devices: Changed vblank_state_changed_func to now have a device_config argument. Removed runnning_machine as the first parameter of a VBLANK callback. Removed video_data from running_machine. Private state screen information now hangs off the public one, instead of the other way around. Combined video_global and video_private into a single structure. Moved populating screen_state from mame.c to video.c. Removed defstate; the default screen parameters live in screen_config directly. Moved 'refresh' from public to internal video state and renamed it to 'frame_period'. Changed all drivers that previously accessed 'refresh' to use video_screen_get_frame_period(). Changed VIDEO_UPDATE signature to pass the screen device. Added const device_config *primary_screen to running_machine. Changed first argument of video_screen_* functions to take a device_config; all callers that used 0 for the screen number now use machine->primary_screen. Changed game info screen and overlay UI to display the screen tag instead of screen number. Added video_screen_get_visible_area(). Changed render.c to use screen devices. Removed direct driver access to machine->screen[] array. Added video_screen_auto_bitmap_alloc(screen). The Dynax/Don Den Lover games now do their updating in VIDEO_UPDATE instead of VIDEO_EOF. Seems to have fixed the palette problems. Hooked up swapped videoram in Karnov properly -- same idea as Burger Time. Removed the public screen_state object -- all access is via functions. Removed screen[] object from running_machine. Removed MAX_SCREENS constant -- there is no longer a hardcoded upper bound. . Fixed VBLANK end time computation and video_screen_get_vblank(), they weren't taking into account games that use MDRV_SCREEN_VBLANK_TIME. . Removed cpu_scalebyfcount(). Changed input ports to register a frame callback, which is called immediately after throttling and updating. This is the proper "sync point" between emulated time and real time. Moved all analog and digital port processing into a central place here. Added tracking of time since the previous frame update and use that as an estimate for the time of the current frame. This is used to scale analog ports without the use of cpu_scalebyfcount(). This is not perfect in the case where frame rates are dynamic (vector games), but works well for other cases. . Fixed loading mixer settings when the driver default value is calculated . Added some clock frequency changes which were documented in u4 but which did not apply due to operator error. 0.123u4 - 8085A CPU: Fixed 8085 RST75 not working with PULSE_LINE. According to datasheet, RST7.5 is latched on rising edge, while the other maskable interrupts are sampled. - CCPU CPU: Fixed CCPU and QB3 to no longer rely on cpu_scalebyfcount(). Fixed busted timing in the CCPU core. Changed watchdog to count internally rather than using external watchdog support. Altered CCPU to accept interrupt signals from the driver. Updated clocks in the cinemat driver to be derived from the clock crystal. - SH-4 CPU: Fixed refresh ticks value of 0, makes awbios not blow up the timer system. - Z80 CPU: Changed Z80DMA to new device interface, updated mario.c and dkong.c to use new interface. Illustrates how to keep existing memory read/write handlers. This is slower than caching the device interface, but does not have an impact on devices accessed at a low frequency like in this case. - Taito Custom ICs (video\taitoic.c): Fixed regression that caused crashes in several games - Motorola 6845 CRT (video\mc6845.c): Now signalling both 0->1 and 1->0 transitions of syncing pins. Added mc6845_assert_light_pen_input; uses a timer for latching the light pen address. Added reset device function. Implemented VSYNC height computation difference between the Motorola and the Rockwell devices. Since the Commodore 40xx computers program an HSYNC width that extends past the end of the scanline, I am clamping it in lack of anything better to do. Added support for the Commodore 6545-1 device type. Added support for the status register. Better variable names. More asserts. Converted MC6845 read/write handlers to READ/WRITE8_DEVICE_HANDLERs. Updated all MC6845-using drivers to use the new macros and call the updated functions. Removed the many little helper functions that used to do this work. - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c): Converted Amiga based games to partial updating and proper scanline based timers. - astinvad.c: Added PORT_CHANGED macro which calls a callback if the given port changes. Usage is very similar to PORT_CUSTOM. See the Astro Invader driver for an example. - cinemat.c: Fixed CCPU and QB3 to no longer rely on cpu_scalebyfcount(). Fixed busted timing in the CCPU core. Changed watchdog to count internally rather than using external watchdog support. Altered CCPU to accept interrupt signals from the driver. Updated clocks in the driver to be derived from the clock crystal. Fixed CCPU CPU1 clock speed. - cvs.c: Removed use of cpu_scalebyfcount() from the driver - dkong.c: Updated dkong driver to use two discrete structs which were previously not being used: dkong walk using a jump struct. radarscp using a dkong 555 struct. Changed Z80DMA to new device interface, updated dkong.c to use new interface. Illustrates how to keep existing memory read/write handlers. This is slower than caching the device interface, but does not have an impact on devices accessed at a low frequency like in this case. - exidy440.c: Exidy440 update: Modernized input port handling with CUSTOM_INPUT and INPUT_CHANGED. Cleaned-up special case handling. Created better separation between driver and video code. - firetrk.c: Untangled the driver. Many uses of PORT_CUSTOM and PORT_CHANGED, including another good use case for the gear shift logic. - kaneko16.c: Fixed the 2x OKI6295 clock speeds - meadows.c: Merged memory maps. Uses PORT_CHANGED for coins. - naomi.c: Use defines instead of magic numbers for IRQ sources and added VBL-out - Cheeky Mouse: Converted driver to use tilemaps - Deal 'Em: Correct some glitches and fixed bank reading - Donkey Kong: Updated driver to use two discrete structs which were previously not being used: Donkey Kong walk using a jump struct. - Exerion: Fixed sprite colors - Gypsy Juggler: Added NO_DUMP entries for ball graphics and added GAME_IMPERFECT_GRAPHICS flag - Gyruss: Tilemap conversion, sprite multiplexing done properly and driver clean-up - Mario Bros.: Changed Z80DMA to new device interface, updated mario.c and dkong.c to use new interface. Illustrates how to keep existing memory read/write handlers. This is slower than caching the device interface, but does not have an impact on devices accessed at a low frequency like in this case. - Mysterious Stones: Game gets the "full treatment". Fixed VSync and palettesize. - One + Two: Added DIPs and locations - Peek-a-Boo!: Verified clocks and OKI6295 pin7. Fixed OKI6295 clock speed. - QB-3: Fixed CCPU and QB-3 to no longer rely on cpu_scalebyfcount(). Fixed busted timing in the CCPU core. Changed watchdog to count internally rather than using external watchdog support. Altered CCPU to accept interrupt signals from the driver. Updated clocks in the cinemat driver to be derived from the clock crystal. - Radar Scope: Updated dkong driver to use two discrete structs which were previously not being used: Radar Scope using a dkong 555 struct. - Space Guerrilla: Beginning of the driver clean-up: Fixed rotation and some other stuff. Fixed visible area. - SSI Poker (v2.4): Changed parent/clone relationship (ssipkr24/jjpoker) to separate SSI Poker sets from Jackpot Joker Poker. - Time Pilot '84: Replaced sprite multiplexing hack with video_screen_update_now() on sprite RAM write. General driver clean-up. - World Rally: Changed/verified OKI6295 pin 7. Fixed OKI6295 clock speed to 1MHz. - Input port . Updated the "Input (This Game)" menu to support conditional inputs . Added PORT_CHANGED macro which calls a callback if the given port changes. Usage is very similar to PORT_CUSTOM. See the Astro Invader driver for an example. . Removed input_port_set_changed_callback and converted all users to PORT_CHANGED. The only difference between the old callback and the ones supplied by PORT_CHANGED is that values passed by PORT_CHANGED are normalized to start at bit 0, just like PORT_CUSTOM. . Added running_machine* to the CUSTOM_INPUT callback - updated drivers to use it. . Updated ladybug.c, lasso.c, m10.c, madalien.c, maxaflex.c to use PORT_CHANGED for coinage. . Improved DIP switch definitions, added DIP locations, and simplified input ports in atarisy2.c, atetris.c, avalnche.c, bagman.c, balsente.c, lasso.c and seta.c. . Updated astrof.c, brkthru.c, btime.c, cheekyms.c, cinemat, cexerion.c and fcombat.c to use PORT_CHANGED. Combined memory maps where applicable. - Dipswitches . Changed/verified clocks on the following PCBs: 1943, Arkanoid, Action Holliwood, GalsPanic, Ben Bero Beh, 1000 Miglia, Pit and Run, Prehistoric Isle, Rastan, Hotmind, Hardtimes, Stagger1 and Tiger Road. . Fixes in avalnche, bagman.c, balsente.c, One + Two and Tetris - Validity check . Added some validation of the interrupt setup to validate.c . Added validity check that screenless drivers cannot have a VBLANK interrupt . Added validity checks to ensure that the devices referenced actually exist - Description changes of 3-D Bowling, Donkey Kong Junior (Easy), DownTown / Mokugeki, Inferno (Meadows), M-79 Ambush, One + Two - MAME . Defined new set of memory handler functions which are similar but which pass a const device_config * in place of the running_machine *. These are called read8_device_func, etc. Added macros READ8_DEVICE_HANDLER() for specifying functions of this type. . Removed AM_SPACE and matchmask support. Updated relevant drivers to use AM_MIRROR() and AM_MASK() to achieve the same thing. . Added new macros AM_DEVREAD, AM_DEVWRITE, and AM_DEVREADWRITE, which specify device read/write handlers in address maps, along with the type/tag of the device they reference. . Fixed display of screen information so that it shows live information, not just the original configurations. . Removed use of tmpbitmap from some drivers. Replaced mame_bitmap with direct use of bitmap_t. Removed mame_bitmap typedef. . Added video_screen_get_time_until_vblank_end() and video_screen_get_time_until_update() . Changed the way VBLANK_INTs are handled: Defined a new MDRV_CPU_VBLANK_INT_HACK() (in deprecat.h) which is a copy of the current MDRV_CPU_VBLANK_INT(). Found all the places where VBLANK_INT is used with something other than 1 interrupt per frame and changed it to the new macro. Removed the "# per frame" parameter from MDRV_SCREEN_VBLANK_INT() and added a screen tag in its place; updated all callers appropriately. . Moved all video timing logic from cpuexec.c to video.c. Added a video_screen_register_vbl_cb() function for registering VBLANK callbanks. Changed inptport.c and debugcpu.c to make use the VBLANK callbacks. Added video_screen_get_time_until_vblank_start(). He did some fairly extensive testing, but this is a very signficant internal change, so some things may have broke. . Added macros to define device functions. Updated existing devices to use the macros. . Added the concept of device classes. Devices specify their class in their get_info function. Classes can be used to walk through devices at a more general level than their type. Functions have been added to iterate through devices by class just as you can by type. . Normalized function pointer typedefs: They are now all suffixed with _func. Did this throughout the core and drivers I was familiar with. . Added running_machine * parameter to the front of all read/write handlers. Updated all call-through handlers appropriately. Renamed read8_handler to read8_machine_func, replicating this pattern throughout. . Added running_machine * to the device_config, live while the device is live, and NULL otherwise, just like the token. . Internal address map constructor changes: Pass running_machine parameter to construct_map_##_name. Change "Machine->" to "machine->" in AM_BASE_MEMBER, AM_SIZE_MEMBER. Pass Machine in construct_address_map. . Removed cpu_getcurrentframe() and replaced it with video_screen_get_frame_number(int scrnum). Updated all callers. . Moved watchdog processing logic into its own module . Removed some unused fields from device_config . MACHINE_DRIVER_EXTERN now requires a semicolon. Removed a number of extra semicolons. . Added the new display types to the listxml DTD. . Improved (not perfect) ACIA slot monitoring. - Compiling . Changed a number of global functions to being static . Identified code not used and marked with "#ifdef UNUSED_FUNCTION" . Removed a couple of unused items from the cpuexec_data structure . Removed some code never to be executed In memory.c: Removed "return 0" from READ* macros since it is unreachable. Removed comparisons of type FPTR < 0 and FPTR >= 0. . Rewrote some potentially compiler specific code: Added ATTR_FORCE_INLINE to osdcomm.h. Added ATTR_NONNULL. Moved U64 S64 fram mamecore.h to osdcomm.h. Define SETJMP_GNUC_PROTECT() in osdcomm.h for use in ppc602 and ppc603. 0.123u3 - New games: 29x Cal Omega - Games, 2x Jackpot Joker Poker and 2x Jolly Joker - New Working games: El Grande - New clones: Cosmic Smash (JPN, USA, EXP, KOR, AUS) (original), Dungeons & Dragons: Tower of Doom (Japan 940412), Jolly Card (Evona Electronic), Jolly Card (croatian, set 1), Metal Slug 5 (AES Cart), Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision), Royal Vegas Joker Card (fast deal, english gfx), 3x SSI Poker and Super Joly 2000 - 3x - Removed games: Virtua Striker 2 Ver. 2000 (JPN, USA, EXP, KOR, AUS) (set 2) - uPD7810 CPU: Added basic support for the NEC uPD7801, uPD78C05 and uPD78C06 CPUs to the uPD7810 CPU core. - V30 CPU (machine\irem_cpu.c): Another Risky Challenge opcode to fix a sprite bug and a general clean up of the remarks in the driver. - Z80 CPU: One-line fix for the Z80PIO. At the moment when the interrupt control word is sent (with interrupts enabled), an interrupt occurs. In reality, interrupts are disabled until the interrupt mask byte is sent. - Speaker sound: Converted speakers into devices. Machine->config no longer houses an array of speakers; instead they are iterated through using the new macros (defined in sound.h) speaker_output_first() and speaker_output_next(). Updated all relevant code to do this. - Motorola 6845 CRT (video\mc6845.c) . Added support for cursors in the MC6845 emulation. All 4 blinking modes are supported. . Added a stub implementation of the Rockwell 6545 - calomega.c: Changed gdrawpkr.c to calomega.c driver. Big changes to Cal Omega driver: Extended the driver to support all the other Cal Omega systems. Switched to XTAL def. Fixed CPU & sound clocks based on official diagrams. Replaced the AY-8910 with AY-8912 to match the real hardware. Unified some memory maps. Splitted machine in sys903 and sys905. Fixed memory map offsets for sys905. Added a list of official/unofficial games, and their states. Fixed a bug introduced when extended the color PROM region to eliminate colortable length. Updated technical notes. - cclimber.c: Merged Yamato driver with Crazy Climber. Cleaned up the video driver, mainly via tilemap conversion. This fixes the ape sprite positioning in Crazy Kong - no more gap between feet and platform. Swapped gfx1 roms ($1000, 2000) in some games. Fixed gfx1/2/3 rom and proms loading in Top Roller. Fixed gfx1 rom address in Yamato. - funworld.c: Switched the color decoding routines to use resnet code - megasys1.c: Correct clock speeds for the boards. Yes, the games actually ran _THAT_ slow!. Fixed 68000 CPU1 clock speed to 6MHz in all games, except Avenging Spirit, E.D.F. : Earth Defense Force and Peek-a-Boo!. This fixes the wooden barrels randomly flicker on/off during the attract mode in Takeda Shingen (ID 00022) - mpu4drvr.c, bfcobra.c + seta.c: Some improvements to the 6850 ACIA CTS pin checking logic and the MPU4 ACIA clock logic. - namcos2.c and namcos21.c: Fixed crashes due to NVRAM allocation in MACHINE_RESET. Created MACHINE_START and move allocation there. - namcos21.c: Fixed crashes due to NVRAM allocation in MACHINE_RESET. Created MACHINE_START and move allocation there. - nss.c: Removed bogus DIPs (Enforce 32 sprites/line) from the driver - pgm.c: Added EEPROM/hiscore saving to the driver - taito_z.c: Fixed sound comes only out of the left speaker in aquajack, aquajackj, contcirc, nightstr and sci (ID 00138) - American Horseshoes: Fixed rom names and gfx1 rom loading - Bionic Commando: Added CPU clocks from schematics to the driver. Comment about Z80 NMI generation. Fixed 68000 CPU1 and Z80 CPU2 clock speeds. - Cal Omega - Game 23.9 (Gaming Draw Poker): Changed description of 'Gaming Draw Poker' to 'Cal Omega - Game 23.9 (Gaming Draw Poker)'. Renamed (gdrawpkr) to (comg239). Fixed M6502 CPU1 and AY-3-8912A clock speeds. - Cloak & Dagger: ResNet conversion - Colors are now signficantly less saturated because of the 1K pull-ups. This is noticable in the agent's coat and the sky color, for example. Added bitmap palette selection based on the 128H line. Not sure where this is actually used in the game. - Deal 'Em (MPU4 Conversion Kit, v7.0): Fixed VSync - Dungeons & Dragons: Tower of Doom: Changed description of clone '(Japan 940113)' (ddtodjr1) to '(Japan 940125)'. Renamed (ddtodj) to (ddtodjr2). - El Grande: Fixed M6502 CPU1 and AY-3-8912A clock speeds - Omega Race: Added support for original state PROM (user1) - Raiga - Strato Fighter: Fixed crash - Risky Challenge: Another opcode to fix a sprite bug and a general clean up of the remarks in the driver. - Space Tactics: Added built-in layout. Cleaned up and reorganized the driver. - Virtua Striker 2 Ver. 2000: removed the confirmed bad dump of Virtua Striker 2 Ver. 2000 (set 2). Replaced user1 ($0) rom in (set1) with the one of the removed (set 2). - X The Ball: Fixed DAC sound - XX Mission: Converted game to tilemaps - Palettesize fixes in Guzzler and Swimmer - Input port: Added new module tokenize.h. This centralizes the behavior of tokenizing data structures, as currently used by the input port system. Redid the input port tokenization to be more compact and make use of the new macros. - Dipswitches . Added DIP locations to abaseb, astinvad, asuka, atarifb, atarifb4, bonzeadv, cadash, galmedes, mofflott and soccer. . Added DIP locations and improved dipswitches in gorf, profpac, robby, seawolf2 and wow. - Description changes of The Crystal Maze Team Challenge (SWP) and The New Crystal Maze Featuring Ocean Zone (AMLD Version) - MAME . drawgfx.c improvments: Added some asserts to drawgfx and drawgfxzoom. Moved some variable declarations so that they are only visible where they are actually used. Removed 8bpp bitmap support from drawgfx. . Improved the global "flip_screen" macros and variables: Fixed issues related to flip_screen being a define. Added "int flip_screen_get(void)". Clean up drivers with collisions. Removed flip_screen macro. flip_screen_x and flip_screen_y made static. Added flip_screen_x_get() and flip_screen_y_get(). Changed writes to flip_screen_x to flip_screen_set_no_update(). Added save state calls for flip_screen_x and flip_screen_y. . Removed VIDEO_START(generic) - no longer used . Converted MACHINE_DRIVER definitions from function constructors to tokenized lists. For the most part this is a non-invasive change, except for those drivers using MDRV_WATCHDOG_TIME_INIT. In order to allow for tokenization of attotimes, a set of new macros is provided called UINT64_ATTOTIME_IN_x() which follows the same pattern as ATTOTIME_IN_x() but packs the attotime down into a single 64-bit value for easier tokenization. Fixed several errors in the machine drivers which were caught by the additional checks now done in the machine config detokenization code. Added typedefs for all the machine config callback functions at the top of driver.h. . Separated MDRV_DEVICE_CONFIG_DATA into 32-bit and 64-bit versions. Added floating-point versions with configurable resolutions. . Removed MDRV_PALETTE_LENGTH from vector games, which would trigger an assert in emupal.c (debug build) . Removed some deprecat.h includes from osd layer: Add machine as parameter to osd_update and osd_update_audio_stream. Change Machine to machine and remove include deprecat.h. . Merged memory maps for a number of drivers beginning with a digit or the letter 'a'. Merged memory maps for drivers X->Z. . Removed unnecessary machine->pens[] lookups in a large number of drivers . Updated info.c to output raw video parameters (pixclock, htotal, hbend, hbstart, vtotal, vbend and vbstart) via -listxml if they have been given. - Compiling . Makefile & build system update: verinfo: New syntax. verinfo now uses the following syntax: verinfo.exe -b windows|winui|mess. Does not depend on compile time defines any longer. makefile will include src\osd\$(CROSS_BUILD_OSD)\build.mak if it exists. This was necessary to enable cross builds for winui. . Added a rule in vconv.c to make VS2008 compile seamlessly . Added support for designated initializers in C99 and GCC builds to enforce type safety 0.123u2 - New games: Champion Poker - New Working games: Alpha One (Vision Electronics / Kyle Hodgetts) and Risky Challenge - New Non-Working games: Toy Fighter - New clones: Fighting Soccer (Japan) and Red Hawk (Excellent Co., Ltd) - ARM7 CPU: Fixed unaligned 32-bit reads in the core - SH-4 CPU: Added missing SH4 instructions and bugfixed the FPU. Improved NAOMI I/O board emulation and added working controls. - V30 CPU (machine\irem_cpu.c): Changed IREM CPU decryption to be 'real-time' (it's a feature of the CPU). Moved decryption table setup to 'config' struct for the CPU. Added latest tables from Robiza, making Risky Challenge playable, promoted it to working. Told CPU core to not decrypt code after brkn instruction, enabling it again on iret, allowing me to remove several 'don't decrypt range' hacks in the code. Updated all drivers accordingly. Currently the disassembly is a bit weird now, this will need looking at. - AICA sound: Added and hooked up AICA (NAOMI sound chip). NAOMI boot sounds now play. Since it's an SCSPx2 with ADPCM instead of FM it's already feature-complete except filter envelopes. A bug in the ARM7 core causes incorrect pan/level values to be computed in e.g. the NAOMI SOUND TEST menu. This is not a defect in the AICA. - TMS5220 sound: Added some missing #if's to 5220intf.c - 6840 PTM: Fixed a few corner cases in the 6840 emulation based on running the MPU4 test ROMs, and added the ability to dynamically alter the external clock frequencies in game. - Motorola 6845 CRT (video\mc6845.c): Changed all drivers using the MC6845 chip to use the new device interface. Removed mc6845_config. - armedf.c: Added DIP locations to Crazy Climber 2, Legionnaire and Terra Force - csk.c: Added DIPLOCATION macros to all dipswitches. All DSW are verified through test mode. Fixed custom_io_r which is used for protection but also for keyboard input. - gameplan.c: Reorganized driver. Changed Trivia Quest use the Gameplan video code. Added crystal for Gameplan pixel clock. Fixed M6502 CPU1/2 and AY-3-8910A clock speeds. - m10.c: Adjusted/optimized the m10.c gfx_layout - m52.c: Tried to "unify" the drivers M52 and M57. Added also iremipt.h source file (same purpose as taitoipt.h). - m57.c: Tried to "unify" the drivers M52 and M57 (i still think that some things can be merged). Added also iremipt.h source file (same purpose as taitoipt.h). - m58.c: Added iremipt.h source file (same purpose as taitoipt.h) - mpu4drvr.c, bfcobra.c + seta.c: Changed the 6850 core to allow dynamic RX and TX clock alteration, to at least try to remove a few of the MPU4 timing problems. - mpu4drvr.c: Fixed a few corner cases in the 6840 emulation based on running the MPU4 test ROMs, and added the ability to dynamically alter the external clock frequencies in game. Changed the 6850 core to allow dynamic RX and TX clock alteration, to at least try to remove a few of the MPU4 timing problems. Updated documentation of the MPU4 Video board. - namcos2.c: Fixed multi-session crash - naomi.c: Added and hooked up AICA (NAOMI sound chip). NAOMI boot sounds now play. Since it's an SCSPx2 with ADPCM instead of FM it's already feature-complete except filter envelopes. A bug in the ARM7 core causes incorrect pan/level values to be computed in e.g. the NAOMI SOUND TEST menu. This is not a defect in the AICA. Added missing SH4 instructions and bugfixed the FPU. Improved NAOMI I/O board emulation and added working controls. - nss.c/kinstb.c: Converted SNES (except debug code) to RGB32 as it was a serious abuser of the palette system. - qix.c: Reorganized driver (driver state, decoupled audio section, etc.) - taitosj.c: Simplified collision detection - terracre.c: Changed region user1 to user2 and proms to user1. Fixed palettesize. - 10-Yard Fight: Fixed dipswitches (especially coinage) and inputs. Tried to "unify" the driver with M52 and M57 drivers (I still think that some things can be merged). - Alpha One (Vision Electronics / Kyle Hodgetts): Fixed dipswitches and inputs. The game is now more playable to me but I left the GAME_NOT_WORKING flag as I think there are still some things to look at. - Battle Toads: Added DIP locations to Battle Toads. Fixed rom names and added plds (GAL20V8A-15LP - U10, U11, U57, U58, U90 and U144). - Beathead: Changed driver to use partial updates instead of caching scanline level information - Cosmic Chasm: Added documentation of the crystals and merged the memory maps. - Double Dragon 3: Fixed some incorrect rom dumps for Double Dragon 3 (some of the dumps were based of the bootleg and not the original) and updated the name and location to actually match that of a real board. - Dynamic Ski: Swapped proms ($40, 140) and fixed palettesize - Mad Alien: Reorganized/minor clean-ups to the driver. Changed region user1 to user2, gfx2 to user1, gfx3 to gfx2. Fixed palettesize to 48 colors. - Mirage Youjuu Mahjongden: Fixed one or two dips in the driver and found the "service" switch and likely start of inputs. Added new sound1 rom. - Moon Patrol: Fixed misaligned backgrounds caused by recent changes. Fixed dipswitches (especially coinage) and inputs. - Print Club: Improved Print Club - Progear: Fixed button 3. The button acts like a rapid fire (keep button pressed). It has to be enabled in the game settings as it is OFF by default. - Raiden 2: Verified clocks - Rainbow Islands: Verified clocks - Rambo III: Verified clocks - Return of the Jedi: Complete memory map. Crystals. Driver state structure. Text layer is rendered at the same time as the background. Fixed proms ($0, 800) length. The schematics show the smoothing PROMs as being twice as large, but the current sizes are confirmed via a PCB. The PROMs are 82S137 devices. - Risky Challenge: Changed IREM CPU decryption to be 'real-time' (it's a feature of the CPU). Moved decryption table setup to 'config' struct for the CPU. Added latest tables from Robiza, making Risky Challenge playable, promoted it to working. Told CPU core to not decrypt code after brkn instruction, enabling it again on iret, allowing me to remove several 'don't decrypt range' hacks in the code. Updated all drivers accordingly. Currently the disassembly is a bit weird now, this will need looking at. Fixed visible area. - Shadow Warriors: Connected buttons like they are wired on the original PCB (which is JAMMA) - Space Raider: Changed region user1 ($0) to gfx3 ($0) and fixed palettesize - Tank 8: Simplified collision detection. Fixed palettesize. - Traverse USA: Fixed proms loading - Trivia Quest: Changed game use the Gameplan video code and fixed VSync - Tropical Angel: Fixed dipswitches (especially coinage) and inputs - Truxton II: Reverted sound OSC of Truxton II to 27MHz/8 since the original OST runs at this speed. The PCB I measured the previous clock was 28MHz/8 and it's a different PCB version from the common one. Since MAME doesn't support multiple OSC I prefer to use the 27MHz one. Changed YM2151 CPU1 clock speed to 3375000 Hz and VSync to 59Hz. - Xenophobe: Fixed sprite aligment - Palettesize fixes in Blandia, cave.c, Crazy Fight, Dominos, Extreme Downhill, Gundhara, J. J. Squawkers, King of Boxer, Knuckle Joe, Koro Koro Quest, ladybug.c, Mad Shark, magicfly.c, mermaid.c, Mikie, Mr. Do!, Mr. Jong, PlayMan Poker, popeye.c, redclash.c, Rock 'n Rage, Safari Rally, Shot Rider, Sky Diver, Sokonuke Taisen Game, Space Force, Space Raider, Speed Attack!, Sprint 1/4/8, Son Son, Starship 1, statriv2.c, Super Basketball, Talbot, Tank Battalion, Traverse USA, Tunnel Hunt, tx1.c, U.S. Classic, Ultra Tank, usgames.c, warpwarp.c, Wai Wai Jockey Gate-In, Wolf Pack, Zing Zing Zip, zodiack.c, Zombie Raid - Input port . Added DIP locations to astdelux, asteroid, btoads, cclimbr2, ctribe, cheesech, legion, llander + llander1, scessjoe + ashnojoe, stonebal + stoneba2, terraf and ultennis . Simplified some control definitions in the following drivers: alpha68k.c, actfancr.c, aeroboto.c, aerofgt.c, aliens.c, ambush.c, amidar.c, amspdwy.c, angelkds.c, appoooh.c, arabian.c, argus.c and arkanoid.c. . Changed the input port tokens to use a union instead of casting everything to FPTR. In the future, C99-enabled compilers will be able to achieve type safety with designated initializers. - Dipswitch fixes in bombsa, butasan and llander - Description changes of 'The Crystal Maze - Now Featuring Ocean Zone (AMLD Version SWP)', 'The New Crystal Maze - Now Featuring Ocean Zone! (AMLD Version)' - MAME . Minor code cleanups. Added static/const where appropriate, plus some include fixes. . Renamed machine->drv to machine->config to reduce overloading of the term "driver". . Moved all machine_config and MDRV_* macros here, out of driver.c/h to the new module mconfig.c/h. Added MDRV macros for adding/removing/ configuring devices. . Removed expand_machine_driver(). Replaced with machine_config_alloc() and machine_config_free(). Updated all call sites. . Implements a new generic device interface (devintrf.c/h) similar to the sound and CPU interfaces. . Deprecated the following constants because global constants that pretend to document things but which are only guesses are dumb: DEFAULT_60HZ_VBLANK_DURATION, DEFAULT_30HZ_VBLANK_DURATION, DEFAULT_REAL_60HZ_VBLANK_DURATION, DEFAULT_REAL_30HZ_VBLANK_DURATION, DEFAULT_60HZ_3S_VBLANK_WATCHDOG and DEFAULT_30HZ_3S_VBLANK_WATCHDOG. Updated all drivers to explicitly specify the equivalent bogus times. Added comments for the "REAL" VBLANK durations to indicate that they are not accurate. . Added video_screen_update_now(int scrnum) to force a screen update up to the current beam position. Defined a new device type VIDEO_SCREEN. Currently this has no live functionality, but merely serves as a placeholder/identifier for video screens. Eventually some of the screen management code may move into the start/stop/reset functions. Changed MDRV_SCREEN_ADD to specify a screen type (RASTER, VECTOR, LCD for the moment). Removed the older VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR; this information is now determined by walking the screen list. Changed MDRV_SCREEN_* macros to build up VIDEO_SCREEN devices rather than storing values in the screen[] array. Removed the screen[] array from machine_config. Modified all code referencing Machine->config->screen[] and changed it to iterate over the devices using the new video_screen_first() and video_screen_next() functions. Removed implicit screen #0. This means that ALL DRIVERS MUSTEXPLICITLY DECLARE THEIR SCREENS. Updated all drivers to do so. While there, grouped all MDRV_SCREEN_* parameters together. Also removed unnecessary VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR. Also removed VBLANK and bitmap format information from vector games. This was painful and very tedious. . Completed old-style colortable removal. Removed MDRV_COLORTABLE_LENGTH macro. Updated uigfx to display new-style color tables if present. Added colortable_palette_get_size() to emupal. Added some more asserts to catch errors. Pulled remaining vestiges of old-style colortables: PALETTE_INIT no longer has a colortable parameter. Removed game_colortable and remapped_colortable from machine_config. Updated a few stragglers that still referenced these fields. Removed tile_draw_colortable from tilemap.c. . Removed the per-screen palette_base. This was an idea that never really worked out, nor have we really needed it. . Improved some dipswitches, added some DIP locations and replaced IPT_COINx with IPT_SERVICE1 where appropiate. . Changed game information to display info about all screens. . Added state_save_combine_module_and_tag(). Its purpose is to create a unique name for state saving purposes in modules that are tag based (no index). . Normalized info.c style and simplified some of the code . Removed the unnecessary pen array lookup from some INDEXED16 drivers . Fixed build with external zlib . Added some missing cores to cpuintrf.c and sndintrf.c . Added i8749 CPU variant for MESS. - Compiling . Reverted some of the changes to build.mak from u1 which made some MSVC builds fail. . Fixed validation fail of '_mul_32x32_hi()' and '_mulu_32x32_hi()' inline function when compiled GCC v3.3.5 with I686 optimization. 0.123u1 - New games: 2x Royal Vegas Joker Card - New Working games: Galaxy Games (BIOS v1.90) - New Non-Working games: Shadow Fighters, Virtual Combat and World PK Soccer V2 - New clones: Contra (US, Set 1), Galaxian (Taito), Jolly Card (3x3 deal), Jolly Card Professional 2.0, Lucky Lady (3x3 deal), Lucky Lady (4x1 aces), Magic Card II (blue TAB board, encrypted), Magic Card II (green TAB or Impera board), Sand Scorpion (Earlier) and Zero Wing (2 player simultaneous ver.) - New drivers: vcombat.c - ARM7 CPU: Correct mode at reset (it's always 0b1....). HandlePSRTransfer: remove wrong code, correct detection of privileged mode. Correct carry output for ROR. Thumb ASR Rd,Rs: correct carry computation. Thumb ldmia/stmia: correct value for writeback when the writeback reg is in the list. ARM ldm/stm ignore lower bits of the address. Most of the exceptions force the I bit. Ignore some flag bits in the CPSR. - M65CE02 CPU: Rescued the M65CE02 core from bitrot hell - V30 CPU (machine\irem_cpu.c): Several more Risky Challenge opcodes. You can now see "gameplay". - Motorola 6845 CRT (video\mc6845.c): Changed the 6845 to be handle based -- adjusted all drivers. Renamed crtc6845 to mc6845. Allow reading registers 12 and 13. Reading write-only registers return 0. Updated comments in header. - Color tables: Removed color tables and added resnet.c color computations where appropriate in driver fastfred.c, funworld.c, galivan.c, gdrawpkr.c, konamigx.c, pingpong.c, punchout.c, rallyx.c and trackfld.c. And in the games Dragon Buster, Field Combat, Finalizer, Golden Star, Flower, Great Swordsman, Hana Awase, Hyper Sport, Ikki, Iron Horse, Jackal, Jail Break, Karate Champ, Mag Max, Markham, Mega Zone, Pandora's Palace, Pirate Ship Higemaru, Roc'n Rope, Scooter Shooter, Sky Kid, Strength & Skill and Wiping. - aleck64.c: Added some variable initialization to machine\n64.c to fix running starsldr multi-session. - bloodbro.c: Changed OKI6295 pin 7 to "high" in the driver. Fixed OKI6295 clock speed. - cave.c/nmk16.c/powerins.c/quizpani.c/toaplan2.c: Added initialization to machine\nmk112.c. - cps2.c: Changed the GAME definitions in the driver to reflect how many players and how many buttons there are for each game. Rewrote the INPUT_PORTS definitions to use PORT_INCLUDE, PORT_MODIFY and PORT_CUSTOM macros. Added a few notes about the inputs when I thought they were needed to avoid wrong bug reports. Started to clean the driver. - csk.c: Added sound support (YM2413) in Champion Skill and Stelle e Cubi (Italy). Removed GAME_NO_SOUND flags. Increased interrupts per frame, music was too slow. Minor comments adjustment. - cvs.c: Fixed dipswitches and inputs - dkong.c: Fixed audio over-modulation issue with DAC sound. Surround the fix with a DK_REVIEW define for later review. - exidy440.c: Further altered the Exidy 440 code in preparation for moving to proper sound chip emulation - Finalizer: Swapped proms ($40, 140) and fixed palettesize. - funworld.c: Some improvements to the driver: Switched to XTAL def. Fixed Magic Card II graphics issues. Fixed Magic Card II inputs. Fixed screen and visible area to snooker10. Renamed set monglfir to mongolnw. Renamed sets description based on languages instead of countries. Fixed some years and manufacturers. Updated technical notes. Cleaned up the driver. - fuukifg3.c: Fixed YMF262 CPU1 clock speed - galivan.c: Fixed palettesize and region proms ($400) to user1 ($0) - gberet.c: Swapped proms ($20, 120) and fixed palettesize. - m10.c: Changed skychut.c to m10.c driver. Fixed palettesize. - maxaflex.c: Fixed fatal error in Astro Chase, Boulder Dash and the driver - naomi.c: Added SH4 I/O ports. Connected the 93C46 of the NAOMI and the x76f100 of the rom board and filled them with dummy data to satisfy the BIOS. Implemented some of the JVS transfers that will be needed to use the controls. Implemented ROM board DMA. Set proper NAOMI ram sizes (32 MB main, 8 MB for AICA). Improved PVR-TA graphics emulation. Set proper ARM7 clock for NAOMI. Added HOTD2-specific BIOSes (US + Export). Fixed ARM7 CPU2 clock speed to 2822400 Hz. - nova2001.c: Merged ninjakun.c, pkunwar.c and raiders5.c with nova2001.c. Fixed gfx1 rom loading in Penguin-Kun Wars, Raiders5 and Nova 2001. Fixed visible area and palettesize in Nova 2001. - policetr.c: Added DIP locations and marked some as unused based on manual and schematics. - pingpong.c: Swapped proms ($20, 120) and fixed palettesize - qix.c: Changed qix.c to RGB32 mode and made its videoram_w do the partial updating instead of a per scanline timer. - rallyx.c: Did some cleanup of the 'special case' mess that the driver has become. - segas16b.c: Fixed YM2413 clock speed in Atomic Point and Snapper - slapfght.c: Fixed Z80 CPU2 and M68705 clock speeds - tmaster.c: Merged galgames.c (Galaxy Games) with tmaster.c driver - trackfld.c: Fixed gfx1/2 rom loading and palettesize - zn.c: Fixed PSX CPU clock speed - Arkanoid: Fixed some clones INPUT_PORTS definitions that were curiously using PORT_START_TAG("DSW") instead of PORT_MODIFY("DSW") - Blaze On: Added PCB and/or chip docs updates - DonPachi: Added initialization to machine\nmk112.c. This resolves a multi-session audio problem reported for DonPachi. - Flash Point: Added PCB and/or chip docs updates - Formation Z: Fixed M6809 CPU2 and the AY-3-8910's clock speed - Hyper Sport: Fixed gfx1/2 rom loading. - Kangaroo: Fixed Kangaroo colors by assuming an inversion not present in the schematics - Mag Max: Simplified background drawing code. Fixed clocks and palettesize. - Mario Bros.: Fixed 'mario' and 'masao' memory maps to match the dipswitches port name - Mega Zone: Fixed gfx1/2 rom loading and palettesize - Pandora's Palace: Fixed gfx1/2 rom loading and palettesize - Pooyan: Fixed transparency. Updated to use resnet code. Swapped proms ($20, 120). - Quasar: Fixed palettesize - Return of the Invaders: Fixed gfx2/3 rom loading - Road Fighter: Fixed gfx1/2 rom loading and palettesize - Roc'n Rope: Fixed gfx1/2 rom loading and palettesize - Sand Scorpion: Added PCB and/or chip docs updates. Fixed rom names. - Scooter Shooter, Shao-Lin's Road and Time Pilot '84: Unified transparency handling between the games and fixed palettesize. - Snooker 10: Fixed visible area - Space Invaders: Added DIP locations for clones Space Invaders (TV Version), Space Invaders (CV Version) and Invasion. Also fixed coin2 for clones Super Invaders and Invasion. - Space Tactics: Fixed visible area and palettesize - Thunder Ceptor: Fixed proms loading and palettesize - Toki: Changed OKI6295 pin 7 to "high" - Input port: Used PORT_SERVICE and PORT_SERVICE_NO_TOGGLE macros when it was possible. Correct the initial detection of extended INP files. - Dipswitch fixes in tx1.c, fireshrk, invadpt2, jantouki, lrescue, marinedt, mcnpshnt, midtunit.c, midyunit.c, mjdialq2, namcofl.c, namcona1.c, namcond1.c, namcos11.c and royalmah.c - Palettesize fixes in BanBam, Darkmist, Dodgem, Dr. Micro, Dragon Buster, Empire City, Exciting Soccer/II, Exed Exes, Exerion, Field Combat, Finalizer, gdrawpkr.c, Great Swordsman, Gun.Smoke, Hana Awase, Ikki, Iron Horse, Jackal, Jail Break, Joshi Volleyball, Markham, Panic Road, Pirate Ship Higemaru, punchout.c, Sky Kid, Strength & Skill, Super Cross II, Super Invader Attack and Wiping - Description changes of Konami's Ping-Pong, Sand Scorpion (Revised Hardware), Sky Kid (new version), Sky Kid (old version), Sky Kid (CUS60 version), Sky Kid (Sipem), Super Cross II - MAME . Improved build independence for CPU/sound cores . Added the ability to pass absolute paths to mame_schedule_save() and mame_schedule_load() . Fixed some MESS cores that were broken by the deprecat.h changes . Removed 'type' parameter from tilemap_create . Changed the use of machine->remapped_colortable to machine->pens where the drivers weren't using color tables. Removed no longer used TRANSPARENCY_COLOR. . Split timer_adjust() into timer_adjust_oneshot() and timer_adjust_periodic(). Updated all call sites. - Compiling: Moved verinfo.c to src\build. Moved rules for verinfo to src\build\build.mak. Removed osdcore.h from file2str.c, verinfo.c and png2bdc.c. 0.123 - New clones: Vs. Janshi Brandnew Stars (MegaSystem32 Version) - ARM7 CPU: Fixed PSR transfers in the core - China Gate: Fixed sprite placement again in the driver - Progressive Music Trivia: Fixed palette gradient. Swapped palette proms. - Super Trivia Master: Swapped palette proms - m62.c: Fixed ADPCM in M62 games. Did some additional cleanup. - midyunit.c: Fixed incorrect default screen size and VSync - MAME . Fixed regression in cpu_spinuntil* calls that broke a number of games . Fixed watchdog behavior when not explicitly specified . Fixed crash in debugcmt with starting with no game on the command-line - MAMETesters Bugs fixed: taito_f3.c0122u8red, dubugchunklength0122u7gre, m62.c0122u7yel, qix.c0122u8red and yard.c0122u7yel 0.122u8 - New games: Wheels Runner - New Working games: Lock-On - New Non-Working games: Puzzlet - New clones: Lock-On (rev. C) and Progressive Music Trivia (Question set 4) - New drivers: galgames.c - Support for Galaxy Games BIOS (Creative Electonics 1998) - Video colortable: Removed colortables from a number of drivers, as part of a larger move to phase out old-style colortables: 1943, ace, alpha68k, ampoker, appoooh, arabian, bfm_sc2, bking, bladestl, blueprnt, carjmbre, carpolo, cclimber, centiped, cham24, champbas, cherrym2, circusc, clshroad, combatsc, contra, cop01, cosmic, ddrible, fastlane, gotya, gyruss, hcastle, irobot, labyrunr, lucky8, multigam, olibochu and yamato - H8/30xx CPU: Added some instructions to the core: or.l ERs, ERd; rotl/shal.l ERd; not.l/neg.l ERd; exts.w Rd; sub/or/xor.l #Imm:32, ERd; bset/bnot/bclr.b Rn, @ERd; bst/bist.b #Imm:3, @ERd and bnot.b #Imm:3, @ERd. - I8051 CPU: Correct previous i8051 timer fix to use more accurate IE SFRs. - V20/30 CPU: Added POLL input handling to the NEC core - V30 CPU (machine\irem_cpu.c): More opcode improvements to Risky Challenge - Z180 CPU . Fixed reset crashes in all Z180 games . Removed the various busy loop and non-exact optimzations from the core - HC-55516 sound: Reorganized exidy440 audio code to make it easier to eventually use the MC3417/18 emulation directly. Added MC3418 variant support to the HC55516 audio code. - Samples sound: Added stream_get_sample_rate(), stream_get_time(), and stream_get_sample_period(). These functions are not really tested yet -- make sure they give reasonable results when first used! Updated streams.h header to latest core style. - SCSP sound: Further improvements to SCSP FM - 6840 PTM: Changed 6840 interrupt handling to work like the recent 6821 changes. Updated MPU4 driver accordingly. Updated Scorpion 2 driver to match MPU4 coding style. - ataxx.c: Removed flags dispose from region gfx1 - bfm_sc2.c: Updated driver to match MPU4 coding style - bking.c: Changed bking2.c to bking.c driver. Added DIP locations. - cps1.c: Fixed the CPS driver to at least display the correct clock in the driver info, by degrading the clock through alternate means. - cps2.c: Fixed 68000 CPU1 clock speed - equites.c: Some minor cleanup to the driver, including memory map merging. - galpani2.c: Resolved all unknown dips in the galpani2 driver according to kaneko's docs, unified memory maps of both CPUs and repositioned a pair of graphic ROMS. - leland.c: Simplified video code and adjusted some set names in the driver. Removed flags dispose from region gfx1. - m52.c: Changed mpatrol.c to m52.c driver. Fixed cpu2 rom and palettesize in alpha1v and mpatrol - m57.c: Changed troangel.c to m57.c driver. Fixed cpu2/gfx1 rom loading and palettesize in troangel - m58.c: Changed yard.c to m58.c driver. Fixed Z80 CPU1 clock speed, visible area and VSync and improved dipswitches according to manuals in 10-Yard Fight. - m62.c . Fixed wrong resistor value (22K to 2.2K) - verified on Spelunker and Kid Niki hires PCB pictures. . Changed resistor network calculation based on assumption that cs line is active either on tiles or sprites color prom. - mpu4drvr.c: Changed 6840 interrupt handling to work like the recent 6821 changes. Updated MPU4 driver accordingly. - naomi.c: Added BIOS roms epr-21577d.bin and dcnaodev.bios (NAOMI Dev BIOS) - rockola.c . Cleaned up driver . Fixed dipswitches for all games . Added notes about the games - segac2.c: Replaced tables with equations in the driver - seta2.c . Added PCB layouts for Penguin Bros & Puzzle De Bowling based on Hi-res pics . Correct the seta2.c 68301 base clock as 50MHz / 3 (16.66666MHz) as all the Seta2 hardware has a 50MHz OSC . Secondary OSC are for other chips (28MHz and or 32.53047MHz) . Changed 68000 CPU1 clock speed to 16666666 Hz. - starfire.c: Simplified driver - timeplt.c/tutankhm.c . Cleaned up drivers . Correct clocks where possible . Merged memory maps . Fully decoded memory maps . Replaced hacky sprite rendering in Time Pilot with partial updates . Save state support . Removed Power Surge kludge, replaced with unmapped handler control . Tutankham runs now at 60fps, with IRQs every other frame . Proper IRQ ack in Tutankham . Proper NMI generation in Time Pilot . Cleaned up Time Pilot sound board implementation . Full memory maps . Partial machine driver removes need for replicating filtering logic . Updated all relevant drivers - travrusa.c: Fixed cpu2 rom address in Shot Rider and Traverse USA - williams.c . Updated williams driver to use VIDEO_UPDATE_SCANLINE (most bitmap-based drivers should) . Converted to 32bpp to catch mid-screen palette tweaks . Removed some unnecessary read/write handlers - Birdie King 3: Fixed color prom -- just needed a new dump. Fixed incorrect ROM names. Switched color decoding to use the resnet code. - Bishou Jan: Replaced H8/3002 CPU1 with H8/3044 - Circus Charlie . Improved colors in with the resnet code . Fixed palettesize and proms loading - Crazy Balloon: Fixed palettesize - Crowns Golf: Simplified the video code - Funky Fish: Fixed Z80 CPU2 clock speed, visible area and VSync - Gals Panic II: Fixed user1 rom loading - Gyruss . Improved colors with the resnet code . Fixed gfx1/2 rom loading and palettesize - The Hand: Improved colors in with the resnet code. Fixed palettesize. - Hit the Ice . Removed non-existent 2nd OKI6295 . Fixes missing sounds (e.g. team select screen) . Hit the Ice/Violence Fight now share the same sound CPU memory maps. - Kangaroo . Cleaned up driver . Documented MB8841 (needs to be decapped to get code) . Proper video timing . Full memory maps . Simplified and more accurate video logic . Changed region cpu3 to user1. Added MB8841 (208333 Hz) CPU3. Fixed Z80 CPU2 clock speed, visible area and VSync. - Knuckle Joe: Fixed cpu2 rom address - Last Fighting: Replaced H8/3002 CPU1 with H8/3044 - Lock-On . Significant improvements . Added POLL input handling to the NEC V20/V30 core - Mario Bros.: Fixed crash in clone Masao. - Ms. Pac-Man/Galaga . Cleaned up driver (including driver state) . Tried improving on the ROM mirroring, without any success. . Fixed Z180 CPU1 clock speed - Pooyan . Cleaned up driver. Save states, full memory maps, proper NMI generation, etc. . Flipped video to align better with Time Pilot . Fixed palettesize - Return of the Jedi: Changed video code to directly manipulate the game bitmap. Background smoothing now happens at the same time as the background is drawn. - Rock'n 3: Verified sound roms and added proper names. Added PCB layout for sound rom board only. - Top Gunner: Fixed M6809 CPU1 and Custom audio clock speeds - Vs. Janshi Brandnew Stars: Added new gfx2/3 and sound1/2 roms - Description changes of Baseball: The Season II, Champion Base Ball, Champion Base Ball Part-2: Pair Play, Crazy Kong Part II, Ironman Ivan Stewart's Super Off-Road, Ironman Ivan Stewart's Super Off-Road Track-Pak, Pig Out: Dine Like a Swine! - Dipswitch fixes in 1942, 1943, 1943kai, aceattac, chplft, cmv801, extdwnhl, fantasy, gtmr2, galpani2, gp2quiz, gp2se, kaneko16.c, kiwame, nibbler, pballoon, sasuke, satansat, segag80r.c, segas16a/b.c, seta.c, system16.c, vanguard, wboy, zaxxon.c and zerohour - Fixed rom names in Rock'n Tread +2/3/4 - MAME . drawgfx changes: Removed copybitmap_remap and copyscrollbitmap_remap, neither which was used by anybody. Removed some obsolete commented out code. Fixed up some comments. Removed TRANSPARENCY_NONE case from copybitmap_core, which can never happen. Removed TRANSPARENCY_BLEND completely and TRANSPARENCY_BLEND_RAW as an option to copybitmap. Source tree needs to be recompiled as the transparancy mode enum has changed. Removed TRANSPARENCY_NONE_RAW, TRANSPARENCY_PENS_RAW and TRANSPARENCY_PEN_TABLE_RAW as they were no longer used. Changed copybitmap and copyscrollbitmap. There are now 2 versions of each, one without and with transparency. . Added new option VIDEO_UPDATE_SCANLINE, which cases VIDEO_UPDATE to be called for every visible scanline. Removed manual implementation of this in timeplt, in favor of using the new flag. There are probably many more drivers that can leverage this. . Cleaned up implementation of extended INP header in inptport.c . Added deprecat.h that contains some deprecated/discouraged contructs. The idea is to create extra work if a driver wants to use these and hopefully gives an incentive to look for an alternate solution. Added #include of deprecat.h that rely on these contructs. Removed a bunch of unneccassary #include's from these files. . Removed distinction between *_gettotalcycles() and *_gettotalcycles64(). All functions now return 64-bit results. Updated all call sites appropriately. . Added AM_WRITEONLY as a shortcut for AM_WRITE(MWAx_RAM) . Moved cpu_getiloops() and cpu_scalebyfcount() to deprecat.h. Added #include "deprecat.h" where necessary to make this happen. Cleaned up cpuexec.c/h to latest core style. . Removed external access to cycles_currently_ran(). Replaced use of cycles_currently_ran() in v9938 code with mame_rand(), since that is effectively the same thing. - Compiling: Added checks for CROSS_BUILD=1 to omit building m68kmake.exe, verinfo.exe, png2bdc.exe and file2str. Enables building MAME using MinGW on Linux. - Debugger: Changed debugger-related code to be based off a new makefile define (DEBUGGER) which sets a new compile-time define (ENABLE_DEBUGGER). This means that MAME_DEBUG no longer means "enable debugger", it simply enables debugging features such as assertions and debug code in drivers. Also removed the various levels of opbase protection in memory.h and always just turned on full bounds checking. 0.122u7 - New games: Player's Edge Plus (PP0065) Jokers Wild Poker, Player's Edge Plus (PP0250) Double Down Stud Poker, Player's Edge Plus (PP0447) Standard Draw Poker, Trivial Pursuit (Genus I) (set 2) and Night Stocker (set 2) - 8085A CPU . 8085 has an internal clock divider by 2 . Changed i8085.c to reflect this for I8085. I8080 still at 1. . Changed driver clocks to reflect internal clock divider . Added some FIXME: Comments where clocks for I8085 are outside specs . Fixed saving I8085 callbacks across a reset . Added 'pull' callback for the SID pin. This is needed by the Red Alert voice board. - ARM7 CPU: Added support for the BLX opcode in ARM7 THUMB mode - HD6309 CPU: Marked core as divide-by-4 internally. Updated drivers accordingly. - I8051 CPU: Fixed I8051 timers from firing when not enabled. Checking TCON alone is not enough to invoke timers. Added IE SFR flags in conditional. - M6802/5/8/9 CPU . Added internal divider on m680* series CPUs (except the original m6800) . Updated clocks on all games using them to remove the explicit divider - Sharp SM8500 CPU: Added a missing case statement, noticed while reviewing dead code warnings. - V30 CPU (machine\irem_cpu.c): Added further unencrypted opcodes to Risky Challenge. The game now boots with the intro animation. - Discrete sound: Added MDRV_SOUND_ROUTE_EX to specify target input channel. Added input id to route struct. Fixed DISCRETE_INPUT_STREAM and added input channel # to DISCRETE_INPUT_STREAM. - HC-55516 sound . Added the ability to the HC55516 emulator to take an external osciallator . Updated Mouse Trap to use the new interface . Added MC3417 and MC3418 variants to the HC55516 sound emulation. Changed Mouse Trap to use MC3417. - S14001A sound: Changed S14001A emulator to allow setting the clock frequency instead of the clock multiplier. This is how the real chip works. Changed the Berzerk driver to set the S14001A clock as per the schematics. - SCSP sound . Preserve fractional part of sample offset when looping in SCSP . Fixes remaining pitch stability problems . Fixed minor issue with timers B&C expiring - TMS5110 sound: Added all known variants of the TMS5110 as proper chips. Updated dkong, cvs and scramble to use new chips. - N64 RSP fixes (aleck64.c): Initialize RSP registers to 0 in lieu of mame_rand. Re-fix RSP single-stepping mode when set by another CPU. Reading the RSP PC returns only the least significant 12 bits. Fixed flag behavior when read out via CFC2. Fixed RSP VRCP instruction to match the real hardware results. Correct VRCP element lookup. Correct unaligned DMA behavior. - atarifb.c: Converted driver to tilemaps. - bagman: Replaced TMS5110 sound with TMS5100A in Bagman and Super Bagman. - baraduke.c: Fixed HD63701 CPU2 clock speed - battlnts.c: Fixed HD6309 CPU1 clock speeds - berzerk.c Changed S14001A emulator to allow setting the clock frequency instead of the clock multiplier. This is how the real chip works. Changed the Berzerk driver to set the S14001A clock as per the schematics. - cps3.c: Improved linear zoom effect resolution to address gaps in CPS3 rendering - cvs.c . Added all known variants of the TMS5110 as proper chips. Updated driver to use the new chips. . Replaced TMS5110 sound with TMS5100 - ddragon.c . Improved video and interrupt timing . Consolidated common memory maps and input ports . Added save state support . Correct clocks . Double Dragon, Dangerous Dungeons, Dark Tower and Thunder Strike: Replaced HD6309 CPU3 with M6809. Fixed HD6309 CPU2, HD63701 CPU3 and 2x MSM5205 clock speeds and visible area . Double Dragon II: Fixed HD6309 CPU2 clock speed and visible area . Super Toffy and Toffy: Replaced M6809 CPU1 with HD6309. Fixed M6809 CPU2 clock speed and visible area. - dec8.c . Fixed HD6309 CPU1 clock speed in Garyo Retsuden, Gondomania and The Real Ghostbusters . Psycho-Nics Oscar: Fixed HD6309 CPU1/2 clock speeds - dkong.c . Fixed dkong sound following Clock Divider update . Updated to use XTAL_* . Revert a change after sound regression in dkong . Couriersud added all known variants of the TMS5110 as proper chips. Updated driver to use the new chips. . Fixed I8035 CPU2 clock speed in Donkey Kong, Radar Scope and clones . Fixed I8035 CPU2 clock speed to 6MHz in in Radar Scope and clone . Replaced TMS5110 sound with M58817 in clone Radar Scope (TRS01) - equites.c: Fixed 8085A CPU2 clock speed - jpmimpct.c: Removed VIDEO_START_CALL(generic_bitmapped) - m62.c: Fixed M6803 CPU2 clock speed - mainevt.c: Fixed HD6309 CPU1 clock speed - mario.c: Removed all traces to video\generic.h. Fix flipscreen issue with autosave. On a hires PCB picture, verified resistor and capacitor values. - mcr.c: Fixed M6802 CPU3 clock speed in clone Discs of Tron (Environmental) and NFL Football - mpatrol.c: Merged memory maps. Complete memory map. Correct video timing. Correct CPU clocks. Replaced protection hack with actual implementation. Cleaned up inputs. Fixed also graphics (score area) are shifted to 1-pixel right (ID 00706). Fixed M6803 CPU2 clock speed, visible area and VSync. - namcos1.c: Fixed HD63701 CPU4 clock speed - namcos11/12.c: Switched namcos11/namcos12 over to memory_configure_bank / memory_set_bank - namcos86.c: Fixed HD63701 CPU3 clock speed - naomi.c: Added all the known NAOMI BIOS dumps along with descriptions and information about region bytes & version numbers. - ninjakd2.c . Merged mnight.c and omegaf.c with ninjakd2.c driver . Added flip screen support to all games . Fixed sprite overdraw mode . Ninja-Kid II: Congratulations screen (e.g. stage 3) shows japanese characters which were previously missing and at the beginning of a level items are visible during the initial fade in. Lowered PCM playback rate to 13020 (from 16000). . In Mutant Night attract mode, when the big ship is firing the other sprites no longer leave trails. And at the end of a level the screen is slowly filled with balls and then slowly cleared to begin the following level. Same effect in the death sequence during attract mode. Added proper computation of sprites to be drawn taking into account double size sprites. This fixes sticking shots without need for a hack. . Fixed gfx1/2/3/4/5 rom loading in Ark Area, Mutant Night, Ninja-Kid II, Omega Fighter and Atomic Robo-kid. - nova2001.c: Changed ninjakid.c to ninjakun.c driver - paradise.c: Verified frequencies and OKI6295 pin 7 - peplus.c: Removed all peplus memory hacks and game specific DRIVER_INIT. There are now just two DRIVER_INIT, one for normal boards and one for superboards. Temporarily disabled AutoHold Cheat but documented addresses for future update. Also fixed I8051 timers from firing when not enabled. Checking TCON alone is not enough to invoke timers. Added IE SFR flags in conditional. - phoenix.c . Modified I8085 clock . Added DIP locations . Consolidated inputs . Tagged inputs . Combined memory maps . Fixed sound issue related to (auto) save states - phoenix.c . Video timing from schematics . Palette from schematics (resnet.h). No more colortable. . Fixed 8085A CPU1 clock speed in Phoenix, Pleiads and Survival . Fixed VSync in Survival - qix.c: Fixed M6802 CPU3 clock speed - redalert.c . Rewrote and modernized the driver . Correct colors, in places different from the manual's description, but matches the flyer perfectly. . Added speech . Fixed AY-8910 sounds . Odds and ends . Red Alert: Fixed saving I8085 callbacks across a reset. Added 'pull' callback for the SID pin. This is needed by the Red Alert voice board. Fixed cpu2 rom address and added HC-55516 sound. Fixed M6502 CPU1/2, 8085A CPU3 and AY-3-8910Aclock speeds. . Demoneye-X: Correct colors in Demoneye-X. Added some sound to Demoneye-X. Marked Demoneye-X it NOT_WORKING, due to the (still) missing 3rd gfx layer that makes it impossible to pass the 2nd level. Fixed cpu2 rom address and changed user1 rom to proms. Fixed M6502 CPU1, M6802 CPU2 and 2x AY-3-8910A clock speeds. - scramble.c . Added all known variants of the TMS5110 as proper chips . Updated driver to use the new chips . Verified DIP locations from manuals in Scramble and Mariner clone 800 Fathoms - segae.c: Fixed issues flagged by MSVC warning C4305 (type truncation). Almost all of these are harmless double->float narrowing in initializers, but one warning spotlighted a bug in segasyse.c, where code to use a higher sprite number had no effect due to the insufficient range of UINT8. - seicross.c: Fixed NSC8105 CPU2 clock speed in Frisky Tom, Radical Radial, Seicross and Tube Panic - skykid.c: Fixed HD63701 CPU2 clock speeds in Dragon Buster and Sky Kid - statriv2.c: Fixed 8085A CPU1 clock speeds - tnzs.c: Fixed Z80 CPU3 clock speed in Kabuki-Z and 'The NewZealand Story (World, newer)'. - travrusa.c: Fixed M6803 CPU2 clock speed in Shot Rider and Traverse USA - williams.c . Fixed invalid memory_install_*_handler calls in drivers\williams.c . Emulated external OR circuit for all drivers using the PIA chip. This used to be internal to the PIA emulation, but, in fact, this is external logic. The PIA has two seperate INTA and INTB out lines. This fixes at least PlayBall. . Fixed M6808 CPU2 clock speed in all games, except in Mystic Marathon, Turkey Shoot, Inferno and Joust 2 - 4MHz. - zaccaria.c: Fixed M6802 CPU2/3 clock speeds - zn.c: Switched driver to use MDRV_IMPORT_FROM - 10-Yard Fight (World): Fixed M6803 CPU2 clock speed - A. D. 2083: Replaced TMS5110 sound with TMS5100A. - Blades of Steel: Fixed HD6309 CPU1 clock speed - Black Tiger: blktiger.c updates: Combines memory maps. Input ports were tagged. All reads use input port tags. Added dip switch locations from Romstar manual. - Bubble Bobble: Fixed M6801 CPU4 clock speed - Cat and Mouse: Fixed M6802 CPU2 clock speed - China Gate: Changed HD6309 CPU1/2 clock speeds to 6MHz - Combat School: Fixed HD6309 CPU1 clock speed - Diet Go Go: Fixed HuC6280 CPU2 clock speed - DownTown: Verified frequencies - Dwarfs Den: Fixed 8085A CPU1 clock speed - Empire City: Fixed the 2x YM2203 clock speeds - Fast Lane: Fixed HD6309 CPU1 clock speed - Golgo 13: Simplified gun reading - Heated Barrel: Removed bogus bad (US set 2) dump - Jail Break: Updated clocks and video timing based on measurements. Fixed M6809 CPU1, SN76496 and VLM5030 clock speed and Vsync. - Kicker: Fixed M6809 CPU1 clock speed - Knuckle Joe: Fixed M6803 CPU2 clock speed - Lethal Enforcers: Fixed HD6309 CPU1 clock speed - Mouse Trap . Added the ability to the HC55516 emulator to take an external osciallator . Updated Mouse Trap to use the new interface . Replaced HC55516 sound with MC3417 - Muroge Monaco: Fixed M6802 CPU1 clock speed - MX5000: Fixed HD6309 CPU1 clock speed - New York! New York!: Fixed M6802 CPU2/3 and the 3x AY-3-8910A clock speeds - Pac-Land: Fixed HD63701 CPU2 clock speed - Paranoia: Fixed 8085A CPU2 clock speed - R2D Tank: Fixed M6802 CPU2 clock speed - Risky Challenge: Added further unencrypted opcodes. The game now boots with the intro animation. - Roller Jammer: Fixed NSC8105 CPU4 clock speed - Rock 'n Rage: Fixed HD6309 CPU1 clock speed - Rotary Fighter: Fixed 8085A CPU1 clock speed - Sauro: Couriersud renamed sauro.c sp0256 internal rom to "sp0256-al2.bin". Removed BAD_DUMP flag from it as well. - Space Bugger: Fixed 8085A CPU1 clock speed - Space Force: Fixed 8085A CPU1 clock speed - Space Fighter Mark II: Changed year to 1979 as per Guru's contact. Renamed set 2 ROMs to allow merging. Removed experimental code left in there. - Thunder Ceptor: Fixed HD63701 CPU5 clock speed - Trick Trap: Fixed HD6309 CPU1 clock speed - Trio The Punch: Fixed OKI6295 clock speed - Tropical Angel: Fixed M6803 CPU2 clock speed - Tylz: Added Q*bert Samples sound - Dipswitch fixes in ddragon.c, ninjakd2.c, realbrk.c and Schmeiser Robo - MAME . Removed no longer applicable assert from VIDEO_START(generic). Removed VIDEO_START(generic) from drivers that didn't need it. Removed MDRV_VIDEO_START(generic_bitmapped) from drivers that don't need it. Added a _CALL variant to all prototype macros. The use of these should make it easier to change the signiture of these functions in the future. Replaced existing calls with macro where appropriate. Removed VIDEO_START_CALL(generic) from all drivers not needing it, which were all of them. Removed VIDEO_START_CALL(generic_bitmapped) from jpmimpct. Removed the use of the global Machine from a number of places in the code. . Made detection of dynamic attempts to install ROM/RAM handlers more aggressive. Previous checks would not catch modifications in DRIVER_INIT or MACHINE_START calls. Fixed a number of cases of incorrect usage throughout the drivers. auto_malloc() once again actually fails when out of memory. . Reverted experimental D3D fix, since it breaks switchres. . Fixed issues flagged by MSVC warning C4305 (type truncation). Almost all of these are harmless double->float narrowing in initializers, but one warning spotlighted a bug in segasyse.c, where code to use a higher sprite number had no effect due to the insufficient range of UINT8. . Removed /wd4550 for VS7/VS71 compilers (expression evaluates to a function which is missing an argument list). Fixed some VS7-specific issues (OPTIMIZE=0 at least compiles now). . Fixed default debugger memory view width for CPUs with >byte-sized minimum. Made menu updating dynamic at click time, fixing issues with incorrect checkmarks. . Added tilemap_get_scrollx / tilemap_get_scrolly . Removed all palette_X_r functions in favor of direct RAM reads . Made the text displayed by the various UI sliders more intelligent. Basically, it will only print an index for an item if there are multiple of a given type. . Changed one of the cheat calls back to using more generic switch detection so they can be triggered via joysticks. 0.122u6 - New games: 2x Space Fighter Mark II and Player's Edge Plus (XMP00006) Multi-Poker - New Working games: Crazzy Clownz, Chicken Farm and Ripper Ribbit - New Non-Working games: Dodge City and International Toote - New clones: Heated Barrel (US set 2) - I8039 CPU . Fixed regression on i8039 T1 counter mode . Fixed movd instructions . Added MB8884 and M58715 CPU types . Hooked up EA line for M58715 . Moved timer hack to M58715 . Added ram_mask for internal ram access . Added R.A11 as 'M' to DASM flags - I80186 CPU: Made the I186 divide-by-2 clock internal - I960 CPU: Fixed RET instruction on the core - HuC6280 CPU: Fixed HuC6280 low-speed mode so it uses 4 cycles instead of 3 - PSX CPU (konamigq.c, ksys573.c, namcos10/11/12.c and zn.c) . First pass at fixing the CPU clock speeds on the playstation based hardware. The internal divide in the CPU core has been set to 4 as we have no wait states, incorrect dma timing, no gpu timing, no dma bus stealing and no gte timing. . Fixed PSX CPU clock speed - TMS5220 sound: Disabled code in the TMS5220 that set the Buffer Empty flag after a stop frame. This fixes Victory. This might be the incorrect fix but the old code wasn't working either. - Seibu Sound System (audio\seibu.c): Cleaned up memory maps in the Seibu sound interfaces. Changed to use shared sound configs instead of statically copying them in each driver. - Squawk & Talk / Super Sound I/O . Added clocks to the MCR sound boards and some of the MCR games . Added TMS5220 variants TMS5200 and TMC0285 as proper chips . Changed MCR squawk & talk to use the TMS5200 as documented - SCSP: Removed unnecessary check that could cause SCSP hangs in Guardian Force - 6821 PIA . Added orthogonal accessors . Removed hacky update_shared_irq_handler(), now the same IRQ callback maybe called multiple times, but this shouldn't be a problem. . IRQ lines are cleared on a reset - N64 RSP fixes (aleck64.c) . Fixed accumulator state on powerup by testing against real hardware . Fixed single-step behavior by testing against real hardware - TLC34076 palette chip: Changed TLC34076 and games using it to RGB32. Removed global Machine variable where possible. - artmagic.c: Fixed TMS34010 CPU2 clock speed - astinvad.c . Cleaned up driver . Proper video timing . Hooked up 8255 PPIs . Correct interrupt timing . Consolidated code into single file - atarig42: Fixed TMS32010 CPU2 clock speed in Guardians of the 'Hood and Road Riot 4WD - ataxx.c: Fixed 80186 CPU3 clock speed - capbowl.c: Fixed M6809E CPU1/2 clock speeds in Capcom Bowling and Bowl-O-Rama - cojag.c . Proper video timing, configured by the chipset, 32-bit rendering, removing 16bpp hacks, support for borders, proper object processor timing, including multiple passes per line and added R3041 as a clone of the R3000. . Fixed XTALs based on documentation . Replaced R3000 (big) with R3041 (big) (40MHz) . Fixed visible area and VSync - coolpool.c: Fixed TMS34010 CPU1 clock speeds in 9-Ball Shootout, AmeriDarts and Cool Pool - cvs.c: Added VIDEO_ALWAYS_UPDATED for reliable collision detection in the driver - deco156.c . Tweaked clock speed to be 28 to prevent the games from running in slow motion . Fixed ARM CPU1 clock speed in World Cup Volley '95 - decocass.c: Fixed I8X41 CPU3 clock speed to 7.5MHz. - ddragon.c: Fixed M68705 CPU4 clock speeds Dangerous Dungeons, Dark Tower and Thunder Strike - dkong.c: Added equivalence circuit for Sanyo EZV audio amplifier. Set DK_C159 = 0 to avoid over-aggressive high-pass filter. Solely based on observations. Added comment on above to source. Added define DK_NO_FILTERS to turn of DAC filters and post-mixer filters for debugging. - equites.c: Verified and changed CPU frequencies in Equites h/w games and sound board - exidy.c/victory.c . Some more modernization/clean-up to the exidy.c driver . Removed complicated dirty tracking from victory.c . Consolidated exidy and victory drivers . Reorganized the exidy audio hardware code . Disabled code in the Victory TMS5220 that set the Buffer Empty flag after a stop frame. This fixes Victory. This might be the incorrect fix but the old code wasn't working either. - f1gp.c: Fixed Z80 CPU3 clock speed in F-1 Grand Prix and F-1 Grand Prix Part II - harddriv.c . Fixed TMS34010 CPU1, TMS34010 CPU2 and TMS32010 CPU5 clock speeds . Fixed TMS34010 CPU2 and TMS32010 CPU5 clock speeds in Hard Drivin's Airborne and Street Drivin' - gladiatr.c: Fixed MSM5205 clock speeds in Gladiator and Ping-Pong King - jpmimpct.c: Fixed TMS34010 CPU2 clock speed - kickgoal.c: Fixed PIC16C57 CPU2 clock speed in Action Hollywood and Kick Goal - lasso.c: Lowerd FPS (57Hz) to avoid corrupting Chameleon's high score table - leland.c . Cleaned up board clocks a little. Fixed 80186 CPU3 clock speeds in some games. . Made the I186 divide-by-2 clock internal - lethalj.c: Fixed TMS34010 CPU1 clock speed and VSync in Chicken Farm, Crazzy Clownz, Egg Ventur, Lethal Justice and Ripper Ribbit - limenko.c: Removed speedups in the driver which were breaking the games - looping.c: Fixed COP420 CPU2 clock speeds in Looping and Sky Bumper - maxaflex.c: Fixed M68705 CPU2 clock speed - mcr.c . Added clocks to the MCR sound boards and some of the MCR games . Added TMS5200 and TMC0285 variants as proper chips to the TMS5220 core . Changed Squawk & Talk sound board to use the TMS5200 as documented . Fixed M6802 CPU3 clock speed and replaced TMS5220 with TMS5200 in NFL Football and Discs of Tron (Environmental) . Replaced M6809 CPU3 with M6809E in Demolition Derby - mcr3.c . Replaced M6809 CPU3 with M6809E in Max RPM and Sarge . Fixed 68000 CPU3 clock speeds in Spy Hunter and Turbo Tag - mcr68.c . Fixed M6809E CPU2 clock speeds in Arch Rivals, Pigskin 621AD and Tri-Sports . Replaced M6809 CPU2 with M6809E in Spy Hunter 2 . Fixed 68000 CPU3 clock speed in Zwackery - micro3d.c: Fixed TMS34010 CPU2 clock speed - midyunit.c: Fixed TMS34010 CPU1 and M6809E CPU2 clock speed in High Impact Football, Mortal Kombat, Narc, Trog, Smash T.V., Strike Force, Super High Impact, Terminator 2 and Total Carnage. - midtunit.c: Fixed TMS34010 CPU1 and M6809E CPU2 clock speeds in Judge Dredd, Mortal Kombat II and NBA Jam - midxunit.c: Hooked up Revolution X DCS reset line. Signaled IRQ on correct CPU when DCS sends data back. Fixed TMS34020 CPU1 clock speed. - midwunit.c: Fixed TMS34010 CPU1 clock speed in 2 On 2 Open Ice Challenge, Mortal Kombat 3, NBA Hangtime, Rampage: World Tour and WWF: Wrestlemania - n8080.c: Fixed I8035 CPU2 clock speed - phoenix.c . Fixed video timing from schematics in Phoenix and clones, palette from schematics (resnet.h), no more colortable and added save state. . Fixed visible area and VSync in Phoenix and Pleiads. - playmark.c: Fixed PIC16C57 CPU2 clock speeds in Big Twin, Excelsior and Hot Mind - qix.c: Fixed M68705 CPU4 clock speeds in Electric Yo-Yo, Kram, Space Dungeon and Zoo Keeper. - segag80r.c . Fixed I8035 CPU2 clock speeds in Astro Blaster and Pig Newton . Fixed N7751 CPU2 clock speed in Monster Bash - segag80v.c: Fixed I8035 CPU2 clock speeds in Space Fury, Star Trek, Tac/Scan and Zektor - segas16a.c: Fixed N7751 CPU3 clock speeds in some games - taitosj.c: Fixed M68705 CPU3 clock speeds in Elevator Action, Front Line, Kick Start Wheelie King, Tin Starand Sea Fighter Poseidon - tickee.c Fixed TMS34010 CPU1 clock speed and replaced the 2x AY-3-8910A sound with 2x YM2149 in Ghost Hunter, Tickee Tickats and Tut's Tomb - tnzs.c: Fixed I8X41 CPU3 clock speeds in Chuka Taisen and The NewZealand Story (Japan)/(World, older) - twincobr.c: Fixed TMS32010 CPU3 clock speed - wilytowr.c: Fixed I8039 CPU2 clock speeds in Fighting Basketball and Wily Tower - zaxxon.c . Added XTAL clocks to the driver . Fixed I8035 CPU2 clock speeds in Ixion and Razzmatazz - Forty-Love: Changed M68705 CPU3 clock speed to 3072000 Hz. - Arkanoid: Fixed M68705 CPU2 clock speed - Astro Fighter: Fixed visible area and VSync - Big Event Golf: Fixed M68705 CPU4 clock speed - Birdie King 3: Fixed M68705 CPU3 clock speed - Battle Toads: Fixed TMS34020 CPU1 clock speed - Buggy Challenge: Fixed M68705 CPU3 clock speed - Cadash: Fixed 68000 CPU1 clock speed - Carnival: Fixed I8039 CPU2 clock speed - Change Lanes: Fixed M68705 CPU2 clock speed - Chinese Hero: Fixed Z80 CPU1/2/3 and AY-3-8910A clock speeds - Crazy Balloon . Cleaned up driver. Proper memory maps, crystals etc. . Implemented the missing features of the collision detector custom IC . Fixed Z80 CPU1 clock speed and removed flags dispose from region gfx2 - Dragon Breed: Fixed crash in clone Dragon Breed (M72 PCB version) introduced in 0.122u5 - Demon's World: Fixed TMS32010 CPU3 clock speed - Desert Gun: Hand-fixed clone Road Runner's corrupted cpu1 rom - Dragon Master: Fixed PIC16C55 CPU2 clock speed - Exterminator: Fixed TMS34010 CPU1/2 clock speeds - Fighting Roller: Fixed Z80 CPU1/3 clock speed - Finalizer: Fixed I8039 CPU2 clock speed - FairyLand Story: Fixed M68705 CPU3 clock speed - Flying Shark: Fixed TMS32010 CPU3 clock speed - Poker (Version 50.02 ICB): Added missing rom 'horserace_icb_1-1-87' to clone (Version 50.02 ICB set 3) - Guardian Force: Removed unnecessary check that could cause SCSP hangs - G-Stream: Removed speedups in the driver which were breaking the game - Great Swordsman: Fixed MSM5205 clock speed - Gyruss: Fixed I8039 CPU4 clock speed - Vs. Hot Smash: Fixed M68705 CPU2 clock speed - Heavy Smash: Fixed ARM CPU1 clock speed - Joust 2: Fixed M6809E CPU2 clock speed to 8MHz. - Juno First: Fixed I8039 CPU3 clock speed - Kick and Run: Fixed M68705 CPU3 clock speed - Legend of Kage: Fixed M68705 CPU1 clock speed - Land Sea Air Squad: Fixed M68705 CPU2 clock speed - Mad Gear: Fixed OKI6295 clock speed - Mania Challenge: Fixed M68705 CPU3 clock speed - Mario . Added EA "IO" port . Replaced I8039 sound CPU with M58715 . Fixed portA startup value and documented hardware changes to use a I8039 on a mario board - Mega Zone: Fixed I8039 CPU3 clock speed - Magical Crystals: Fixed OKI6295 CPU4 clock speed - Super Mario World: Fixed user3 rom length - N.Y. Captor: Fixed M68705 CPU4 clock speed - Pandora's Palace: Fixed I8039 CPU4 clock speed - Pipeline: Fixed M68705 CPU3 clock speed - Pit & Run: Fixed M68705 CPU1 clock speed - Pushman: Fixed M68705 CPU3 clock speed - quasar: Fixed I8035 CPU2 clock speed - Return of the Invaders: Fixed M68705 CPU4 clock speed - Shanghai Kid: Fixed Z80 CPU1/2/3 clock speed to 3072000 Hz and AY-3-8910A to 1536000 Hz. - The Simpsons: Verified CPU frequencies. Fixes game slows down and background doesn't move in sync with the rest of the game (ID 01168). - Space Firebird: Fixed I8035 CPU2 clock speed - Space Force: Fixed I8035 CPU2 clock speed - Swinging Singles: Hooked up crt6845, converted to tilemaps, simplified protection(?) emulation, removed tilemap, a bit more low level video hw emulation and fake colors. - Tail to Nose: Fixed Z80 CPU2 clock speed - Targ: Changed game to use a loaded PROM instead of a hard-coded one (user1) - Tetris (Atari): Added save state support and fixed memory maps and clocks according to schematics - Tiger Heli: Fixed M68705 CPU3 clock speed - Time Pilot '84: Fixed M6809 CPU1/2 clock speed - Tropical Angel: Fixed Z80 CPU1 clock speed - Vandyke: Fixed PIC16C57 CPU2 clock speed in clone (bootleg with PIC16c57) - Wardner: Fixed TMS32010 CPU3 clock speed - X the Ball: Fixed TMS34010 CPU1 clock speed - Dipswitch fixes in cclownz, cfarm, mhhonban, stadhero and watrball - Description changes of Little Casino (newer), Little Casino (older), Side Tra and Pang Pom's - MAME . Added CPUINFO_INT_CLOCK_MULTIPLIER to support CPU clock multipliers. Updated all CPU cores to return a CPUINFO_INT_CLOCK_MULTIPLIER of 1. Changed the core to actually respect both CPUINFO_INT_CLOCK_MULTIPLIER and CPUINFO_INT_CLOCK_DIVIDER. Updated a number of drivers to use cpunum_get_clock() instead of Machine->drv->cpu[x].clock. Raw input clock speeds should now be specified for all CPUs in the MACHINE_DRIVER. . Removed dirtybuffer from video\generic.c and all drivers still using it. Removed videoram_w, colorram_w and spriteram_w and changed all drivers using it to access RAM directly. Removed videoram_r, colorram_r, spriteram_r, spriteram16_r and spriteram16_w from video\generic.c and changed all games to use (possibly shared) RAM. . Added CUSTOM_INPUT macro for defining input port callbacks. Pushed its usage throughout the code. . Removed obsolete uitext.c and all references to it - Compiling . Added some more static qualifiers on recent new/changed code. . Added Targ and Spectar to TinyMAME 0.122u5 - New games: Blazing Lazers and Name Club Ver.3 - New Non-Working games: Paranoia and Sega Marine Fishing - New clones: A Question of Sport (39-960-107), Gee Bee (F.lli Bertolino license), Lead Angle (Japan), Road Runner (Midway) and The Grid (version 1.2) - New drivers: paranoia.c and uapce.c - Support for MESS PC-Engine emulatation system (machine\pcecommn.c) - I386 CPU: Added support for outputting 64-bit target addresses in the i386dasm - MIPS CPUs: Fixed bug where the 64-bit DRC was not saving rbp - S2650 CPU . Fixed disassembly of the sense and flag bits . Fixed incorrect argument order in OUT instruction . Correct spacing - atarisy2.c . Proper video timing . Full memory maps . Save state support - 720 Degrees: Removed sound CPU hack in favor of prepopulated EEPROM like the other games. Fixed M6502 CPU1 clock speed and VSync. - brkthru.c . Cleaned up memory maps . Changed both games (Break Thru/Darwin 4078) to use identical video timing parameters based on measurements of darwin. Guessed based on available information at the master clock and derived all game clocks from it. . Fixed M6809 CPU1/2 clock speeds and VSync in Break Thru - cvs.c . Reogranized and started to clean up the driver . Added emulation of the speech S2650 CPU (S2650) . Removed unnecessary patching . Fixed 2650 disassembly of the sense and flag bits . Fixed incorrect argument order in OUT instruction . Correct spacing and fixed dipswitches . Removed CVS BIOS (cvs.zip) - dkong.c: Fixed LS123 constant to match TI datasheet diode circuit constant - exidy.c: Changed driver to draws the background directly from memory avoiding having to decode the gfx repeadately. - gottlieb.c . Fixed missing sound "Hello, I'm turned on" in Q*bert (qbert37b14gre1) . argusg, curvebal, insector, kngtmare, krull, mplanets, qbert, qbertqub, reactor, sqbert and tylz: Fixed cpu2 roms addresses - kinst.c . Fixed missing sound at bootup in kinst (kinstc081u7gre) . Fixed volume adjustment saving in kinst2 (kinst2083gre) - lasso.c . Cleaned up driver . Chameleon, Pinbo and Wai Wai Jockey Gate-In!: Fixed M6502 CPU1 clock speed . Lasso: Fixed game timer speed (lasso056gre_2) and victory music, when you beat a level (lasso056gre_1). Fixed M6502 CPU1/3 clock speeds and cpu1/3 rom addresses. - m72.c: Implemented proper video timing and scanline interrupts in the driver. This fixes also the missing score and other status infos (m72_0115u3yel). - mario.c . Discrete sound . Hooked up Z80DMA . Combined memory maps . Statics in mario_state struct . Fixed save state issues . Combine sh_* writes into one routine . Replaced Samples/DAC sound with Discrete - midyunit.c: Simplified Y-unit DMA rendering, fixing bugs and removing the macro voodoo. - namcond1.c: Fixed a memory leak in video\ygv608.c (memleak0122u2ora) - raiden2.c . Reorganized the Raiden 2 driver . A bit of extra documentation of the 'V33' based set, which has been renamed. Nothing new working. - snk.c: Fixed Z80 CPU1/2 clock speeds in Ikari Warriors, T.N.K. III and Victory Road - taitosj.c: Complete Taito SJ memory map. General code clean-up. - tatsumi.c: Fixed dipswitch settings in Big Fight and Cycle Warriors - tmnt.c . Cleaned up driver and unified memory maps . Fixed "Fire!" voice plaing (tmnt095gre) - twin16.c: Unified memory maps - Black Tiger: Fixed tile priority table (blktiger060gre) - Boulder Dash: Fixed 68000 CPU1, HuC6280 CPU2 and OKI6295 clock speeds - Captain Silver: Fixed M6809 CPU1/2 clock speeds - Chequered Flag: Fixed YM2151 clock speed - Cue Brick: Reversed ROM set names of Cue Brick (World version D) and (Japan) - Dead Angle: Fixed game freezes after complete level 1 (deadang0119u2red) - Diet Go Go: Fixed HuC6280 CPU2 clock speed - Dogyuun: Fixed 68000 CPU1 and OKI6295 clock speeds and VSync - Double Dribble: Fixed YM2203 and VLM5030 clock speeds - FixEight: Fixed VSync - Hyper Sports: Fixed M6809 CPU1 and VLM5030 clock speeds - Idol Janshi Suchie-Pai 3: Added missing user1 roms - Jack Rabbit: Fixed M6802 CPU3/4 and 2x AY-3-8910A clock speeds - Jackal: Fixed M6809 CPU1/2 and YM2151 clock speeds - Jungle King: Fixed 2 player mode (junglek055gre) - Kick Goal: Fixed scan functions for background, which were swapped. - Magical Cat Adventure: Fixed Z80 CPU2 clock speed - Money Money: Fixed M6802 CPU3/4 and 2x AY-3-8910A clock speeds - Mortal Kombat 3: Fixed character selection screen in clone Ultimate (umk3059gre, umk3137b5gre) - Nostradamus: Fixed Z80 CPU2 clock speed - Psycho-Nics Oscar: Fixed HD6309 CPU1/2 clock speeds - Operation Thunderbolt: Removed a bunch of dead code from the driver - Raiden: Fixed OKI6295 clock speed - Raiden 2 / DX . Changed game from a clone of Raiden DX (set 1) to parent . Added OKI6295 sound and replaced V30 CPU with V33. Changed region user1 to cpu1. - Road Fighter: Fixed M6809 CPU1 and VLM5030 clock speeds - Sauro . Hooked up SP0256 speech . Analyzed and commented some ports . Added palette_bank support without real success - Scorpion: Fixed Cocktail dipswitch settings (scorpion0111u5gra) - Scramble: Fixed flipped tilemap offset (playable cocktail mode) - SAR - Search And Rescue: Fixed 68000 clock speed - San Francisco Rush 2049: Fixed ADSP2181 clock speed - Sly Spy: Fixed 68000, HuC6280 CPU1 and OKI6295 clock speeds - Street Smart: Fixed 68000 clock speeds in all clones - Terminator 2: Fixed broken test mode (term20104u2gre, term20103u4gre) - Thunder Ceptor: Cleaned up memory maps - Truxton II: Fixed YM2151 and OKI629 clock speeds and VSync - TX-1 . Fixed remaining arithmetic unit issues . Added correct object colour pixel LUT PROM to tx1a . Fixed x-flipping . Added engine sounds - Fixed rom names in Desert Gun - Description changes of Giant Gram and Pipi & Bibis - MAME . Added machine and cpunum parameters to INTERRUPT_GEN callbacks. Fixed several places that were not using INTERRUPT_GEN or OPBASE_HANDLER macros. . Fixed hang/crash on empty config file . Added a "Fix" for full screen switch, which makes no sense, but is included based on empirical evidence that is somehow works. . Fixed winwork to use proper tchar functions for getenv . Made INPs compatible between 64-bit MAME and 32-bit MAME . Minor bugfixes to the gfxlayout cleanups included in u4 . Changed some function names to reflect parent set . Changed Konami drivers to allocate and decode graphics using the same layouts. Removed the layout parameter from the decodechar() calls. . Added machine and cpunum parameters to INTERRUPT_GEN callbacks. Fixed several places that were not using INTERRUPT_GEN or OPBASE_HANDLER macros. . Added code to debug 64-bit builds to allocate all address space below 4GB to help find 64-bit errors. Added environment variable OSDDEBUGMALLOC which, if set, explicitly overrides the debug malloc debug settings. Added environment variable OSDDEBUG4GB which, if set, explicitly overrides the new 64-bit address space allocations (sadly this is necessary due to some D3D drivers being 64-bit unclean....). - Compiling . Added some more static qualifiers on recent new/changed code. . src2html improvments: Added line numbers. Added link to the raw file if the src and dst dirs are the same. . Fixed C++ compilation errors . Fixed MAME debug build under VC2003 0.122u4 - New games: 'Big Fight - Big Trouble In The Atlantic Ocean' - New Non-Working games: Dangerous Curves - New clones: Dragon Spirit (Atari license) and Invasion - The Abductors (version 5.0) - S2650 CPU: Fixed register window display in Debugger - TMS34010/20 CPUs . Allowed 32-bit pixel sizes . Fixed RPIX instruction (stonebal0117u2gre) - Z80 CPU . Added Z80 DMA chip (machine\z80dma.c) . Only implements intelligence to emulate Donkey Kong 3 . Fixed a misleading comment in 8257dma.h - SCSP (YMF292-F) sound: Implemented decent-sounding FM - YM2413 sound: Added save state support - machine\mc8123: Simplified MC8123 decryption (it's still more complicated) - machine\slapstic.c . Added save state support to slapstic . Modified slapstic code to support address range mirrors - machine\6522via.c: Changed emulation such that when writing to the ACR register with the timer 1 in continuous counting mode, the timer 1 value should not be reloaded but keep on counting. - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c): Updated driver to use formal XTALs - aleck64.c/N64 . Move texture masking to occur after coordinate adjustment . Fix 32-bit texturing in load_tile (Mario Kart 64 title screen) . Add zero-alpha early-out (trees/stars in Mario 64 and Mario Kart 64) . Fixed bug aleck64_0120red and mtetrisc0115u1red - atarifb.c: Fixed memory maps and video update (abaseb0122u3red) - bfm_sc2.c: Added XTAL defines to the driver - bking2.c . Fixed Z80 CPU1 and the 2x AY-3-8910A clock speeds in Birdie King, Birdie King 2 and Birdie King 3 . Birdie King 3: Added M68705 MCU and rom, this fixes game resets on some cup-ins (bking3076u2red) - cvs.c: Rewroted CVS system video code, this fixes gfx in Space Fortress (spacefrt096u1gre Thenasty + spacefrt0122u3gre MASH) and Wall Street (wallst071gre). - dkong.c . Hooked up Z80 DMA . Removed 2nd player inputs from sdbk input_ports . Fixed some dump "copy/paste" bugs in DIP locations - exidy.c (video\exidy.c) . Fixed incorrect fading twister in Hard Hat . Fixed missing arrow in Venture on the zoomed out map . Fixed hawk displaying (mtrap37b14gre) - itech32.c . Cleaned up clocks in driver . Fixed visible area and VSync . Driver's Edge: Fixed 'shaking' car driving during the demo (drivedge0121u4gre) - jpmimpct.c: Removed GAME_IMPERFECT_GRAPHICS from all games except Cluedo. Note: During the attract mode of Cluedo, just after the camera flash, the camera colours go screwy and proceeding text is printed behind the camera. Is it a TMS34010 emulation flaw or original game code bug? - lvcards.c: Cleaned up dirver - mcr68.c: Replaced M6809 CPU1 with M6809E and fixed YM2151 clock speed in Arch Rivals, Pigskin 621AD and Tri-Sports - matmania.c: Fixed garbage graphics in Mania Challenge and Mat Mania (maniach37b11gre + matmaniac37b14gre) - midvunit.c . Added save state support . Fixed crash when saving state of older DCS-based games - naomi.c . Updated driver, now boots and shows some test menus (press F2 to get into test, use 9 to navigate) . Hooked up ROM board PIO and skeleton for DMA . Fixed region user1 and visible area - neodrvr.c: Added default layout to the games allowing for either cropping or stretching to the alternate 304x224 layout. Removed default cropping in the driver. - peplus.c . Updated memory configuration for Superboard game versions . Fixes CMOS DATA errors on reload - segas24.c: Fixed games crashing in debug build (system24_0120u3red) - skychut.c . Major driver rewrite. There are still some glitches and it is not perfect. . Added samples to IPM Invader (just rename your old invaders samples to ipminvad to test) . Sound ports identified . Demo sound and cabinet type driver configuration. . Fixed M6502 CPU1 clock speed and VSync in andromed, ipminvad, skychut and spacbeam . Fixed VSync in greenber and headoni . Sky Chuter: Fixed gamplay (skychut37b1yel) and broken level 2 (skychut37b6gre) . Andromeda: If you want to see the gameplay, then added a 1k rom named 'am8' filled with $60 to the romset. - tatsumi.c . Fixed OKI629 clock speed in apache3, cyclwarr and roundup5 . Added sound to Cycle Warriors and Big Fight - A. D. 2083 . Completed TMS5110A code. Working speech synthesis. . Documented analysis done on PCB pictures and findings. As a consequence, marked all sound roms as BAD DUMP. . Created ad2083 sound driver in audio\scramble.c . Added 'Cabinet' dipswitch (ad2083_0111u5gra) - Alien Syndrome: Added partial FD1089 key for clone (set 5) (machine\fd1089.c) - Arkanoid: Fixed MCU emulation (arkanoid061gre) - Battle Toads: Fixed TMS34020 and Z80 clock speeds according XTALs on the PCB . Fixed color of text writing at the end of the game (btoads0103u1gre) . Fixed wavey effect (btoads0102u5gre) - Beastorizer (USA Bootleg): Added GAME_NOT_WORKING flag (beastrzb097u2red) - Black Tiger: Fixed sprite priority issues (dragon in intro should appear behind mountains/statue) (ID 00554) - Cycle Warriors . Major improvements to the video code (still not perfect, but road layer works now) . Added sound to Cycle Warriors . Fixed rom loading (cpu1/2 + gfx5) . Fixed 68000 CPU1/2 and OKI6295 clock speeds . Fixed visible area and added 'Test' dipswitch - Darius II: Fixed enemy missiles gfx (darius2_0114gre) - Gridiron Fight: Fixed graphic/sprites anomolies (gridiron079gre) - Invinco / Head On 2: Re-added Samples sound for Invinco. Fixed game crashed after INSERT COIN (invho2_0122u3red). - Joust 2: Replaced M6809 CPU3 with M6809E and fixed YM2151 clock speed - King of Boxer: Fixed weird sprite priority problems (kingofb37b6gre) - Lady Bug: Fixed two player game mode (ladybug080u1gre) - Mahou Daisakusen: Fixed service mode (mahoudai0106u7yel) - Mario Bros. . Hooked up flipscreen . Changed monitor orientation to ROT0 - MX5000: Fixed cocktail mode in clone Flak Attack (flkatck058gre) - Narc: Fixed sound board synthesizer test in testmode (narc37b16yel) - Pit Fighter: Fixed INSERT COIN (pitfight0109u2gre) - Quiz Kokology 2: Fixed "DAT ROM error" display on startup (qzkklgy2_0106u6red) - Rampart . Cleaned up driver . Simplified rendering code . Full memory map . Added save state support - Super Rider: Fixed inputs for cocktail mode (suprridr0122u2gra) - Surprise Attack: Fixed dipswitch name (suratk0122u3gra) and rom check (suratk0122u3ora) - Turkey Hunting USA: Redumped gfx roms - War of the Worlds: Fixed initial entry screen is clipped on right side (wotw36b1gre) - Input port: Added new function input_poll_keyboard_switches to poll for only key events. Expanded the size of the maximum simultaneously pressed switches. - MAME . Cleaned up graphics layouts in preparation for new format. Added new GFXLAYOUT_RAW() macro to normalize definition. Added new validation code. Made all remaining instances of gfx_layouts const. . Fixed bad ram pages errors in stactics service mode . Other MAMETesters bugs that has been fixed: altf4_0111u4gre, cheat0118red, d3dwindow0117u3red, editableui0120u4red, gui0121u1gre, memleak0119u3ora, memory_leak0111u6ora and memoryleak0118u1ora. 0.122u3 - New clones: Mutant Fighter (World ver EM-3) and The Simpsons (2 Players Asia) - Hyperstone CPUs: Fixed typo for IO1 irq callback in core - I8051 CPU: Fixed save states in cpu core - TMS5110 sound: Fixed ROM tables for calculating interpolation coefficients (sound\tms5110r.c) - cninja.c . Cleaned up inputs/dipswitches in driver . Added 3rd dipswitches bank to Robocop 2 (robocop2_0106u3gra) . Added 'Two coins to start?' dipswitch to Edward Randy (edrandy0113gra) - flstory.c . Fixed all memory maps . Fixed MCU simulation properly in Onna Sansirou . Added gfxctrl READ_HANDLER to Victorious Nine . Fixed game resets in Victorious Nine after selecting your team (victnine0116u2red) - funkyjet.c . Added save state support . Fixed game freezes after killing the final boss in Funky Jet (funkyjet055yel) - midzeus.c . Better documented various bit latches . Hooked up lamp board (layout) and fixed controller buttons in Cruis'n Exotica . Fixed year in MK4 startup test . Fixed VSync in all games - namcos1.c: Fixed problems after selecting games in the UI (namcos1_0118u2yel) - naomi.c: Implemented a few SysCtrl, Maple and PVR/HOLLY bits for NAOMI. The BIOS gets slightly further but is nowhere near starting up. - nss.c + kinstb.c: Improves accuracy and documentation of NSS/SNES DSP-1 (machine\snes.c) - Battle Toads: Added save state support and fixed gfx priority (btoads0103gre) - Hot Shots Tennis: Fixed the mislabelled button name for "P1 Soft" (hstennis0103u2gra) - Liberation: Fixed messed up graphics, when you destroy a blue enemy plane (liberate074u1gre) - Mario Bros. . Rewrote driver - separate MACHINE_DRIVER(mario_audio) . Palette from schematics . Video timing from schematics . Driver configuration switch Nintendo/Std Monitor . Got rid of COLORTABLE . Fixed mario0110u1gre (no extra space between the platform and objects) . Fixed clone Pest Place which crashes in debug build (pestplce0122red) . Fixed I8039 clock speed, palettesize and VSync - Orbs: Fixed 68000 CPU1 and X1-010 clock speeds - Power Balls: Fixed clone Power Balls (Super Slam conversion) crashed, when running a debug build in gdb with -autosave (powerbls0112u4red) - Super Breakout . Rewrote driver based on schematics . XTAL-based timing . Correct video timing . Full memory map . Correct memory usage ("zero page" RAM is shared with videoram) . Removed all input hacks . Fixed interrupt generation . Connected coin counters . Added save state support . Fixed missing sound (sbrkout0118yel) - Super Locomotive . Fixed IC.34 memory test . Fixed 2nd player cocktail mode . Changed coin3 to service1 - Toki: Fixed hiscore display in clone Toki (US) (tokiu056gre) - Wild Western: Fixed save state (wwestern0115u1yel) - MAME . Added memory_get_bank() function. Fixed logging in memory.c to use %p for pointer values. . Removed ui_popup(). Drivers should always be using popmessage() instead (has been this way for a while). Augmented popmessage() so that you can pass NULL to immediately dismiss any messages. . Added new file xtal.h, documenting all known arcade PCB clock cystals. Drivers should be updated to use these as a basis for their clocks, and the list should be augmented as additional crystals are found. - Compiling: Fixed various 64-bit GCC warnings - Debugger . Fixed several UNICODE=1 issues in the debugger. Changed the Windows build process to always enable UNICODE=1 for 64-bit builds. . Added ATTR_PRINTF to a number of functions that have printf semantics 0.122u2 - New clones: Guitar Freaks 3rd Mix (GE949 VER. JAB) - M65C02 CPU: Fixed optimization - SH-4 CPU: Added initial FPU support to the core - TMS32031/2 CPUs . Fixed interrupt handling . Added support for edge-triggered interrupts on '32 . Expanded interrupt support for the '32 . Updated drivers using TMS3203x core to deassert interrupts . Added externally accessible functions for converting '3x floating point format . Updated gaelco3d driver to use new functions - Z80 CPU: Removed the increasing of the R register from each IX/IY related (FD xx or DD xx) instruction on the Z80. According to documentation and the behavior of the Amstrad CPC driver, this is incorrect. - TMS5100/5110 sound . Removed sound/m58817.* . Added support for multiple coefficients maps to tms5110.* . Added coefficient maps for TMS5100 and M58817 from documented sources to tms5110r.c. . Fixed interpolation factors (see tms5110r.c for reason) . Made lattice calculation precision 9bit . Added support for READBIT and LOADADDRESS commands to tms5110.c . More changes in line with various patents . Documented TRS-02 and TKG-02/03 "voice" interface - CD-ROM: Fixed several memory leaks related to SCSI CD emulation - cvs.c: Changed driver to use TMS5100 speech (according to PCBInfos) by using TMS5110_IS_5100. "Game System Operational" sounds now more natural (check Space Fortress). - dkong.c . Changed discrete sound output factors . Cosmetic changes . Replaced DAC/Samples sound with Discrete in clones Drakton (DKJr conversion) and Pest Place . Fixed Hunchback (DK conversion), which resets if you lose a life after super bonus (the 5 bells) (hunchbkd0122red) . Fixed clone Pest Place which crashes in a debug build (pestplce0122red) - midzeus.c (Zeus 2 hardware) . Fixed save states for DCS games . Cleaned up Zeus2 waveram handling . Added Zeus2 save state support . Added preliminary model and quad rendering support for Zeus2 . Added support to timekpr for the ZPRAM used on Zeus2 . Hooked up ZPRAM in Zeus2 games . Hooked up controls in Zeus2 games . Updated poly.c to ensure it is idle before saving state . Added artifical Z offset of -2 to make the full screen show in Cruis'n Exotica - rohga.c: Fixed HuC6280 CPU2 clock speed in nitrobal, rohga, schmeisr and wizdfire - seta.c . Changed clocks to OSC by divider IE: 16000000/2 /* 8MHz */ . Fixed M65C02 CPU2 clock speed in arbalest, metafox, twineagl and usclssic . downtown: Fixed M65C02 CPU2 and X1-010 clock speeds . orbs: Fixed 68000 clock speed . tndrcade: Fixed YM2203 clock speed . utoukond: Fixed YM3438 clock speed as there is no mention of 6MHz OSC on PCB - taito_l.c . Fixed Z80 CPU1 and Z80 CPU2 clock speeds in evilston and kurikint . Fixed Z80 CPU1 and Z80 CPU3 clock speeds in champwr, fhawk and raimais . Fixed Z80 CPU1 and YM2203 clock speeds in cachat, cubybop, horshoes, palamed, plgirls, plgirls2, plotting and puzznic - tnzs.c . Fixed Z80 CPU1 clock speed in arknoid2 and extrmatn . Fixed Z80 CPU2 clock speed in kabukiz, kageki and tnzs - Buggy Boy Junior: Reversed buggyboy/buggybjr 'Game Time' settings - Cruis'n Exotica: Added artifical Z offset of -2 to make the full screen show - Cabal: Fixed 68000 CPU1 and Z80 CPU2 clock speeds - Cameltry: Fixed Z80 CPU1 and OKI6295 clock speeds in clones Cameltry (World, YM2203 + M6295) and (US, YM2203 + M6295) - Donkey Kong 3 . Replaced DAC/Samples sound with Discrete in clone (bootleg on Donkey Kong Jr. hardware) . Added DIP locations to clone (bootleg on Donkey Kong Jr. hardware) - Donkey Kong Junior . Added discrete sound and removed samples support . Added DISCRETE_74LS624 VCO (supports Logic, Energy and Count outputs) (sound\discrete.c) . Added proper Z80/I8035 interface - Guitar Freaks 3rd Mix: Added missing 2nd CD-ROM - Mario Bros: Fixed Z80 CPU1 clock speed - Michael Jackson's Moonwalker: Fixed game, which didn't starts (mwalk0122red) - Midnight Resistance: Fixed HuC6280 CPU2 clock speed - Quiz Theater: Removed GAME_IMPERFECT_SOUND flag (qtheater0122u1ora) - Radar Scope . Fixed regression in sound . Radar Scope (TRS01) uses now TMS5110 speech synth . Fixed Radar Scope game start (radarscp0122yel) - Tekken 2: Replaced tekken2/tekken2a/tekken2b 'tes1wave.8k' ROM with the correct, non-byte-swapped dump. - Thundercade . Fixed rom names . Added Guru's PCB info for Thundercade - Toki: Fixed Z80 CPU1 and OKI6295 clock speeds - TX-1: Correct tx1 and tx1a coinage DSW assignments - Input port: Named the input_seq_type enumeration and used it explicitly in several places - MAME . Adjusted most conditional logging in MAME to use the idiom "do { if (VERBOSE) logerror x; } while (0)". This has the benefit that the compiler checks the syntax of the logging even in the case it will be eliminated, and in fact a number of cases here needed adjustments to compile because of this. . Verified a number of clock frequencies from real PCBs - Compiling: Completed the addition of static qualifiers to all MAME symbols that aren't explicitly exported 0.122u1 - New Working games: Black Heart, Buggy Boy Junior, Fire Hawk, Invasion (Midway), Sen Jin - Guardian Storm, Spectrum 2000, Stagger I/Red Hawk, Task Force Harrier and US AAF Mustang - New clones: World Class Bowling (v1.3) - Removed drivers: afega.c - YM2610 sound: Changed 'void refresh_fc_eg_chan(FM_CH *CH )' from INLINE to static to work around GCC 4.2.1 codegen bug (sound\fm.c) (ym2610_0119u2gre) - aerofgt.c: Fixed Z80 clock speed in Aero Fighters and Turbo Force - midzeus.c . Figured out data format of 2 matrix form . Extracted data for lights . Added backface culling which mostly works but fails sometimes, so it is disabled . Started on some initial lighting calculations . Cleaned up zeus wave RAM accessors . Changed rendering code to allow for greater parallelism on multicore systems . Removed some vestigial zeus 2 hacks . Reduced visible area to remove artifacts . Made right/bottom vertices inclusive to fix some gapping issues . Fixed Invasion lightgun offset and VSync . Fixed ROM-based DCS2 system to ignore HLE transfers (fixes broken sound in invasn) . Properly reduced internal memory on the ADSP-2104 variants . Cruis'n Exotica: Fixed input, user1/2 rom loading, visible area and VSync. Added 'ROM Configuration' dipswitch. . The Grid: Fixed user1/2 rom loading, visible area and VSync . Zeus 2 hardware . Fixed ROM loading, added banking support . Separated Zeus 2 video implementation from zeus implementation . Implemented direct pixel accesses; enough to get startup screens to show . Hooked up ZPRAM . Fixed digital inputs for crusnexo . Fixed default screen parameters to match the games - mitchell.c: Fixed OKI6295 clock speed in block, cworld, dokaben, hatena, pang, qsangoku, qtono1 and spang - namcona1.c . Fixed C219 sample read order and implemented sign+magnitude format (sound\c140.c) . Removed GAME_IMPERFECT_SOUND flag from all games - nmk16.c . Afega/NMK16 cleanups . Merged afega.c and nmk16.c drivers . Removed many hacks from both . Fixed a number of games . Changed VSync to 56Hz in all games - Buggy Boy Junior . Fixed input and rom loading . Fixed visible area and VSync . Replaced the 2x AY-3-8910A sound with 2x YM2149 and Custom . Changed description from 'Buggy Boy (Single Monitor)' to 'Buggy Boy Junior/Speed Buggy (Upright)' - Halley's Comet: Verified some CPU clocks of original boards using a frequency counter, changed Halley Comet main CPU clock to 1.664MHz (it's not a mistake, the clock is very low) - Midnight Resistance: Modified 68k CPU to 10MHz (20MHz crystal) and M6295 clock to 1MHz. Also confirmed pin 7 is high. Midnight resistance has a lot of slow downs on the PCB too. - Mortal Kombat 4: Fixed VSync - Success Joe: Fixed YM2203 clock - Twin Action: Fixed gfx rom loading and palettesize - TX-1 . TX-1 (Atari/Namco/Taito License) (tx1a) is now clone of TX-1 . Fixed input and rom loading . Added Custom sound . Fixed Z80 and AY-3-8910A clock speed . Fixed visible area and VSync - Compiling . Fixed some remaining static/const qualifier missed cases . Fixed some missing #include "foo.h" . A few global names were modified to make them less generic/more consistent (voodoo.c, vrender0.c, lethal.c, rungun.c and zac2650.c) . Some dead/useless code was removed (i8051.c, model1.c and romcmp.c) - Debugger: Fixed bug that would cause events to leak through to the game when the debugger was up 0.122 - New games: Orbs (10/7/94 prototype?) - New clones: Drakton (DKJr conversion), Raiden 2 (set 5) and Soccer Brawl (set 2) - M58817 sound: Added support for M58817 speech sound - SCSP (YMF292-F) sound . Rewrote much of the interpolation code . Improved key-rate scaling calculation . Fixed playback of non-looping samples with a zero loop-end address . Fixed backwards looping mode so that it initially reads forward until encountering the loop-start address . Preliminary but reasonable-sounding FM support . Fixed overflow in frequency calculation . Improved FM, but it's disabled for now because it doesn't sound right yet. . Improved DSP wet/dry mix (should be correct now) . Fixed a minor LPSLNK problem - cave.c . Cleaned up input ports . Fixed many game descriptions . dfeveron is now clone of feversos - dkong.c . Wrote M58817 sound driver and hooked it up to Radar Scope (TRS01) . Changed dkong/radarscp based games to use hardware-conformant I8035 memory maps . Added drakton clone drktnjr on dkongjr hardware . Moved address remapping proms to REGION_USER1 in 8ballact, 8ballat2, herbiedk, herodk, herodku, hunchbkd, sbdk, spcfrcii and spclforc . Service now adds credit . Hooked up coin_counters . Tagged all inputs, all reads use tag names . Moved more static vars into dkong_state . Donkey Kong: Fixed cpu2 rom address . Donkey Kong Junior (US): Mapped more interface lines between sound and cpu boards . Drakton: Changed description to 'Drakton (DK conversion)'. Removed cpu2 rom 2716.3h1, only used in the DKJr conversion. . Hunchback (DK conversion): Removed the GAME_NOT_WORKING + GAME_WRONG_COLORS flags . Shooting Gallery: Fixed game from crashing (shootgal0121u4red). Changed region user1 to user2 and added address mapping rom. - neodrvr.c . Added explicit clears on Neo Geo initialization . Added Neo-Geo game PCB info . Added correct cpu2, sound1 and sound2 roms to 'The Super Spy' . Added correct cpu2 rom to Soccer Brawl (set 1) . Added correct gfx1 rom to Fight Fever (set 1/2) (fightfev37b2gre) and Syougi No Tatsujin . Added correct user3 rom to Metal Slug 5 . Added correct sound1 rom to Aero Fighters 3 . Added MVS VERSION tag to Fight Fever (set 2) and renamed 'P'-rom . Added MVS AND AES VERSION tag to 'Puzzled / Joy Joy Kid' and 'The King of Fighters '99' - peplus.c: Fixed Hopper Empty and Coin-Out Timeout issues in the driver - rpunch.c: Cleaned up input ports - Mortal Kombat 4: Removed the writing of a 44MB log file (mk4_0121u4ora) - Namco Classics Collection Vol.1/2: Removed the GAME_SUPPORTS_SAVE STATE flag - Quiz Theater: Added correct sound CPU rom - Radar Scope: Hooked up M58817 speech sound to clone Radar Scope (TRS01). The M58817 chip uses TMS5110 speech synthesis. LPC format is identical, however coefficients seem to be different. Until coefficients are known, samples are used. - Teenage Mutant Ninja Turtles - Turtles in Time: Removed the GAME_UNEMULATED_PROTECTION flag from all sets (tmnt2_0121u4ora) - Dipswitch fixes in cave.c, dkong.c and rpunch.c - Input port: Removed obsolete crosshair code - MAME . Fixed several minor memory leaks . Fixed rawinput lightgun update in windows\input.c (lcdlightgun0121u3gra) - Compiling: Continued to add const qualifiers on remaining items in the project 0.121u4 - New games: Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (TR1/VER.A) and Super World Stadium '98 (SS81/VER.A) - New Working games: Mortal Kombat 4 - New Non-Working games: Kaiun Quiz (KW1/VER.A) and Super World Stadium 2000 (SS01/VER.A) - New clones: Super World Stadium 2001 (SS11/VER.A) and Trivia Master (set 3) - M37710 CPU: Changed core to use the CPU clock for its internal timer rather than a hard-coded value. This fixes tempo in Namco NA-1 games. - machine\starwars.c: Implemented status flag in Star Wars matrix processor, which affects gameplay speed in Star Wars, The Empire Strikes Back and TomCat. - SCSP (YMF292-F) sound . Added effect-in mixer . Added DSP floating-point support . Added bounds check to the DECAY1 EG output . Fixed the saw PLFO waveform . Fixed loop points so loops no longer go out of tune/include garbage samples - namcona1.c: Fixed tempo in Namco NA-1 games (M37710 CPU changes) - namcos22.c: Fixed games crashes in specific builds (namcos22.c_0121u1red) - midzeus.c . Cleaned up video code and removed unnecessary math . Added bilinear filtering . Removed perspective correction . Added proper video timing configuration . Added lightgun support to Invasion . Increased resolution on fixed point math to prevent overflows . Fixed texture addresses to only count even rows . Added missing U/V scale factors . Added solid polygon rendering support . Fixed screen clear trigger . Implemented fade out effect . Added Z offsets . Added support for splitting model commands . Hooked up FIFO empty IRQ to make invasn work nicely . Correct PIC values for invasn . Implemented per-quad texture offsets . Hooked up writes to registers during model data processing - Invasion (Midway): Added lightgun support - Match It (drivers\shisen.c) . Added dips location . Added dips condition . Removed fake dips coinage . Fix tow dips in Match It - Quiz Rouka Ni Tattenasai: Updated inputs to support the 3rd and 4th stick - Sly Spy: Fixed rom names in clone Secret Agent (World) - Twin Eagle II: Fixed rom names - MAME . Added new option -update_in_pause which enables updating the screen bitmap while the game is paused. This is useful for debuggin in some scenarios (and gets in the way in others). . Added new VIDEO_TYPE_NONE to indicate that there is no screen, and fixed internal UI displays to ignore resolution parameters if it is specified. . Fixed accidentally included change that allowed MAME to run in windowed mode if switchres was off . Fixed missing profiler call in MAME video routines (emu\video.c) . Fixed crash in mngwrite if the game does not have a palette - Compiling . Added missing consts to the files in the emu, lib and osd directories . Updated drivers to use const structs and arrays where possible - Debugger: Added new option -update_in_pause which enables updating the screen bitmap while the game is paused. This is useful for debuggin in some scenarios (and gets in the way in others). 0.121u3 - New games: The Block Kuzushi (JAPAN) - New Non-Working games: 1 on 1 Government (JAPAN), Draw 80 Poker, Magical Zunou Power, Stress Busters and Wrestle War (Mega-Tech) - New clones: DaeJeon! SanJeon SuJeon (Korea), Puzzle & Action: BoMulEul Chajara (Korea) and Success Joe (World) - New drivers: drw80pkr.c - H6280 CPU: Fixed uninitialized variable in core - I8035/I8039 CPU . Correct a potential issue if more than one 8039/8035 is used by a driver . Should fix a potential inconsistency between saving and loading a state - PPC604 CPU . Added support for the PowerPC 604 . Moved PowerPC opcode tables to the CPU context to allow multiple simultaneous processors with different opcode tables - Sound system: Added an assert to ensure that the sound clear latch value is only set at init time, since its value is not saved. - K054539 sound: Fixed buffer overflow - SCSP (YMF292-F) sound . Added logarithmic envelope table . Set envelope level to start at 0x17f in the ATTACK state (0x3ff-0x280) as per Neill's notes . Changed EG_SHIFT from 8 to 16 - more precision is needed to differentiate the longer decay envelope times . In the DECAY1-->DECAY2 transition, changed the "<=" to "<" . Decreased the output of the effect out mixer a bit . Fixed unaligned 16-bit samples . Prevented keyoffs from killing slots when already in the release state . Envelope steps in the attack state are apparently exponential. To account for this, the envelope output was changed to linear for attacks. . Change the release rate calculation to use the decay table instead of the attack one - 8257 DMA . Added support for the 8257 DMA controller (machine\8257dma.c) . Hooked up the controller to all dkong, dkongjr based, Epos and 2650 based games - bfcobra.c . Added meter support to the Cobra games . Cleaned up some of the steppers code - dkong.c . Added configuration switch to change palette between TKG02 (radarscp conversion) and TKG04 (dkong 2board) . Added speech support (samples) to clone Radar Scope (TRS01) . Fixed sound for Drakton and Street Heat (replaced DAC sound with Discrete) . Written and hooked up the 8257 DMA controller to all dkong, dkongjr based, Epos and 2650 based games . Fixed S2650 CPU games (8ballact, shootgal, spclforc and spcfrcii) to use dkong audio as well - only cpu replaced by addon board. . Updated game flags and added missing rom entries . Straightened memory maps . Fixed bug in dkong3b memory map . Externalized sound drivers to MACHINE_START in audio\dkong.c . DAC Filter now uses lowpass sallen key filter . Reorganized INPUT_PORTS . Added DIP locations to 8ballact . Fixed 8ballact according to conversion manual . Reorganized code . Added Donkey Kong Junior samples to clone Pest Place . Changed palettesize to 521 colors - midzeus.c . More Zeus improvements (video\midzeus.c) . Converted over to 64-bit data . Simplified the logic to work more like the hardware - Lover Boy: Fixed colors with proms from the board (the proms before are from Joinem) - Shooting Master: Renamed (shtngmst) to (shtngms1) and (shtngmsb) to (shtngmst) - MAME . Fixed memory system regression caused by recent optimization . Fixed another bug uncovered as a result in the decrypted opcode management . Const-ified a number of data structures in the MAME system . Modified src2html to sort by filename rather than assuming that the osd file finding routines would do so 0.121u2 - New games: Guts n' Glory (prototype) and Maze Invaders (prototype) - New Working games: Super Masters Golf clones - New clones: Hang-On, Next Fase (bootleg of Phoenix), Shooting Master (set 2, 8751 315-5159a), Sky Kid (Manufactured by Sipem) and Super Burger Time (World, set 2) - I8051 CPU: Fixed BCD math error in core - M6800 CPU: Fixed the CPU core so that the CPU variants can be compiled independently once again - M68008 CPU: Fixed the data bus to properly use 8-bit accesses - RSP CPU: More formally separated the core from the N64 driver (aleck64.c) - Konami custom chips (video\konamiic.c): Added save state support to a number of Konami custom chips - Inline functions cleanup . Add attributes to functions in eigccppc.h and eigccx86.h to cause GCC to always inline them, and to treat them as arithmetic operators when appropriate (so GCC can identify loop invariants or common subexpressions involving these functions). . Mark locals in functions in eigccppc.h and eigccx86.h as register, so GCC won't always allocate stack space even at O0 optimisation level. . Add dummy +m operands to atomic access functions in eigccppc.h so that GCC will not cache values across calls even if values are not volatile - this will cause GCC to allocate an additional register at O0 optimisation, but not if optimisation is on. . Don't include in rgbvmx.h if __APPLE_ALTIVEC__ is defined, as this will cause a compiler warning. - midtunit.c: Removed useless pen_array in the driver, saving some memory and getting a small speed boost. - midwunit.c: Moved redundant check for bank switching out of inline code, which nets a small speedup in the driver. - midzeus.c: Some more internal improvements to the driver - peplus.c . Cleaned up driver . Added MACHINE_RESET to fix autohold option . Added layouts for several types of games (4 of a Kind Bonus Poker, Blackjack, Chaos Slots, Deuces Wild Poker, Double Bonus Poker, Keno, Quarter Mania Slots, Set Chip, Standard Draw Poker and Triple Triple Diamond Slots) . Renamed (peplus) to (pepp0516) - segas24.c . Cleaned up inputs in the driver . Fixed dips in Quiz Rouka Ni Tattenasai, Super Masters Golf (clones), Rough Racer and Quiz Syukudai wo Wasuremashita . Fixed input in Dynamic Country Club, Super Masters Golf (clones) and Quiz Rouka Ni Tattenasai (the last is still missing input for the 3rd & 4th player) . Added more description for each game: region, system (rom or floppy based) and version . Renamed (system24.c) to (segas24.c) - Choplifter: Fixed rom names - Great Golf: Added now correct user1 rom - Mosaic (F2 System): Added speedup hack - Panic Road: Fixed invalid dipswitches and added DIP locations - Shooting Master: Added 2x plds - Thunder Ceptor: Added 3D glasses support to the driver - Dipswitches: Fixed array overrun in get_num_dips - MAME . Switched some #defines in the core over to enums. Also adjusted the GAME macro so that it results in const data, and that it is defined in terms of the more generic GAMEL macro. . Converted some more unnecessary globals into statics . Unified timer callbacks. All timer callbacks are now passed both a pointer and a parameter. The pointer can only be set at timer allocation time; the parameter can be changed whenever the timer is adjusted. Removed most explicit uses of timer_*_ptr functions in favor of the more generic routines. . Deprecated cpu_yield* functions except for cpu_yield() itself, which yields for the current timeslice only. Drivers that relied on the other yielding functions should be updated to use cpu_boost_interleave() instead, as it does not have the same negative side effects on time management. . Changed video_frame_update() internally to accept a debug parameter which forces updates and does not meddle with synchronization/time accountiing - Compiling . Removed the burgeoning list of architecture optimization options. Instead, if you want to make a build optimized for a specific architecture, you explicitly specify the options in a new ARCHOPTS variable. You can control the name of the final executable via the existing PREFIX and SUFFIX variables, which are now documented. . Added -pipe flag for GCC in makefile (GCC will pipe between cpp, cc and as rather than using temporary files, which speeds up compiling) . MSVC-based builds now automatically get a 'v' prefix unless otherwise specified 0.121u1 - New clones: Fighting Soccer (version 4) and Stadium Cross (US) - Hyperstone CPUs . Optimized the Hyperstone core => gaining ~50% speed improvement in most games . Implemented clock prescaling . Correct interrupt priority handling . Fixed clock speeds on the most of the games (Fishing Maniac 3, G-Stream G2020, King of Dynast Gear, Spotty and X-Files) . Killed most of the speed gains in quite a number of them (Aaron: Sorry!) . Replaced E1-16T CPU1 with E1-16XT in Pasha Pasha 2 . Replaced E1-32XT CPU1 with E1-32XN in Dynamite Bomber, Mosaic (F2 System), Legend of Heroes and Super Bubble 2003 . Replaced E1-32XT CPU1 with E1-32T in Final Godori and Wyvern Wings - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c): Added an API to access the current amiga_machine_interface - Palette system . Renamed colortable to colortable_t. Added a Machine->colortable entry to hold the global colortable for games that use it. Updated several more drivers to just use palettes directly rather than hacking colortables. . Changed palettesize in abaseb, atarifb, boxer, bsktball, decocass.c, dlair, exidy.c, fgoal, lazercmd.c, malzak, montecar, namcos86.c, sidewndr, soccer, starspnr and superbug - mexico86.c . Fixed reversed clock speeds in Kick and Run / Mexico 86 . Fixed Z80 CPU2 clock speed in KiKi KaiKai - namcos22.c: Changed alignment of rgbint values in the Namco System 22 driver to work around 32-bit GCC's lack of proper alignment handling - Great Golf: Added correct user1 rom (?) - MAME: Fixed attotime routines to use unsigned math for multiply/divide, solving problems with some games which errantly passed in -1 for the factor. The new behavior matches the original behavior. - Compiling . Added more static qualifiers to core files . Changed malloc tracking to be decided at runtime in a function use_malloc_tracking(). This makes it easy to turn it on or off by recompiling only a single file. . Added explicit Core2 architecuture support to the makefile (CORE2=1). Note that GCC 4.2.0 doesn't understand core 2, so this is equivalent to compiling with pentium-m architecture and -sse3. Also note that compiling native on a Core2 is not what you want because native will think you are on a Prescott, which is P4-era hardware. . Split up MSVC inline assembler functions into MSVC specific headers, and removed the assumption that Window's osinline.h would only be used by MSVC. 0.121 - New games: Best Of Best - New clones: Cluedo (prod. 2) - Voodoo GFX: Fixed bug in Voodoo statistics accumulation (emu\video\voodoo.c) - tmaster.c . Improvements to the driver (still labelled not working) . You can actually play Touchmaster and Touchmaster 3000, but sometimes you have to reset because they stop registering the touchscreen input. . Touchmaster 4000 is protected and hence totally unplayable - Mahjong Dunhuang: Fixed dipswitches (dunhuang0120u3gra) - Input port: Made it a non-fatal error if we are unable to change a joystick to absolute mode in the Windows input code. Some drivers apparently freak out about this. - Dipswitches . Added DIP locations to Astro Blaster (version 1) and (version 2), Bubble Bobble, cps1.c, Mahjong Dunhuang, Mario Bros (marked all as active high confirmed from manuals), Pig Newton, segag80v.c (fixed switch ordering), Space Odyssey and Tokio . Dipswitch fixes in cps1.c, Mahjong Dunhuang and segag80v.c - MAME . Cleaned up timer interfaces. Created new module attotime which manages a new structure type attotime, equivalent to the old mame_time. All time math functions are now implemented in attotime and have been removed from timer.h. The following search/replace over the code has been made: mame_time -> attotime; subseconds_t -> attoseconds_t; time_zero -> attotime_zero; time_never -> attotime_never; ; make_mame_make -> attotime_make; mame_time_to_subseconds-> attotime_to_attoseconds; mame_time_to_double -> attotime_to_double; double_to_mame_time -> double_to_attotime; add_mame_times -> attotime_add; add_subseconds_to_mame_time -> attotime_add_subseconds; sub_mame_times -> attotime_sub; sub_subseconds_from_mame_time -> attotime_sub_subseconds; scale_up_mame_time -> attotime_mul; scale_down_mame_time -> attotime_div; compare_mame_times -> attotime_compare; SUBSECONDS_TO_DOUBLE -> ATTOSECONDS_TO_DOUBLE; DOUBLE_TO_SUBSECONDS -> DOUBLE_TO_ATTOSECONDS; USEC_TO_SUBSECONDS -> ATTOSECONDS_IN_USEC; SUBSECONDS_TO_HZ -> ATTOSECONDS_TO_HZ; HZ_TO_SUBSECONDS -> HZ_TO_ATTOSECONDS; MAME_TIME_IN_HZ -> ATTOTIME_IN_HZ; MAME_TIME_IN_SEC -> ATTOTIME_IN_SEC; MAME_TIME_IN_MSEC -> ATTOTIME_IN_MSEC; MAME_TIME_IN_USEC -> ATTOTIME_IN_USEC; MAME_TIME_IN_NSEC -> ATTOTIME_IN_NSEC; MAME_TIME_TO_CYCLES -> ATTOTIME_TO_CYCLES; MAME_TIME_IN_CYCLES -> ATTOTIME_IN_CYCLES. In addition, all the mame_timer_* functions have been renamed back to their original names timer_*, so it is timer_set() instead of mame_timer_set() once again. The mame_timer object itself has been renamed to emu_timer. . Reverted to old behavior where even with -switchres disabled, MAME will use exclusive mode when rendering with Direct3D. This means some of the switching to/from fullscreen mode problems will come back, but should prevent confusion over poor performance by default. . Fixed compilation problems with altivec accelerators (emu\video\rgbvmx.h + rgbutil.h). Affected drivers are gaelco3d.c, model3.c, namcos22.c and video\voodoo.c. . Defined a couple more inline functions: div_64x32_rem and the unsigned equivalent divu_64x32_rem - Compiling . Made more functions static to reduce namespace pollution . Added inline implementations for GCC x86 and MSVC 0.120u4 - New games: MPU4 Meter Clear ROM, MPU4 Unit Test (Program 2), MPU4 Unit Test (Program 4), Player's Edge Plus (BE0014) Blackjack, Player's Edge Plus (KE1012) Keno, Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker, Player's Edge Plus (PS0615) Chaos Slots, Player's Edge Plus (PS0716) Quarter Mania Slots, Player's Edge Plus (XP000019) Deuces Wild Poker, Player's Edge Plus (XS000006) Triple Triple Diamond Slots and Sigma Poker - New Non-Working games: Sigma Poker 2000 and Vegas Poker (Prototype) - New clones: American Poker II (bootleg, set 1), American Poker 95, Kick and Run (US) and Slipstream (950515 HISPANIC) - I8051 CPU: Fixed a bug in the core that improperly fired the Timer2 interrupt when it wasn't enabled - TMS32031 CPU . Fixed ABSF opcode to work as documented and not produce a proper negative . Fixed display of TMS32031 floating point registers in the debugger - SCSP (YMF292-F) sound . Fixed DECAY1 envelope state to not exit immediately . Improved support for LPSLNK and SBCTL . Fixed panning calculation bug . Fixed case where key-rate scaling is off - 3D GFX . Unified poly.c callbacks so that tri and quad callbacks work the same way . Updated the GTI Club, Model 2 and Taito JC drivers to use the new polygon routines . Deprecated the old poly.c and renamed polynew.* to poly.* - Resistor network interface for computing palettes: Altered TTL low high levels in res_net.c. This will broaden the color range a bit. Since the results are normalized, there is only a limited effect visible. - mpu4drvr.c . Split up the MPU4 driver into a core (mpu4drvr.c) and driver (mpu4.c) set up a la NeoGeo . Made some timer fixes . Added some new ROMs - ms32.c: Cleaned up inputs - peplus.c . Added lightpen support . Added PE+ Superboard support . Added ABC coin optics support . Added full I2C eeprom support . Added NVRAM support . Correct door closure issues . Removed most memory hacks . Consolidated machines and inputs . New layout for pepp0158 - ssv.c . Did a major clean-up of the input ports in ssv.c . Brought out the common joystick, mahjong and quiz input setups, and then used PORT_INCLUDE to pull them in when needed. . Also brought out the common coinage settings, to avoid needless repetition. - tubep.c . Fixing the background scroll-in (it's smooth again now). The problem was caused by wrong synchronization between main and slave CPUs. . Modified the video driver to be scanline accurate . Implemented more accurate interrupt handling - vegas.c: Fixed garbage graphics in gauntdl, nbashowt and tenthdeg, artistically only in 32-bit build (vegas.c0120u3yel) - American Poker II (Major rewrite) . Properly dervied clocks from crystals . Reworked TILE_GET_INFO to handle the proper tiles/color codes . Fixed interrupts (NMI) . Correct AY8910 frequency to 1.5MHz to match the real thing . Arranged the AY8910 volume in all games avoiding clips . Correct the screen visible area . Added NVRAM support . Reworked the memory map, mapping all the hardware I/O ports . Reworked the Inputs for all sets . Added implementation of Operator and Supervisor Keys . Fixed some timing troubles . Added partial DIP switch support with DIP locations to all sets . Removed the hack in DRIVER_INIT . Hooked write handlers for output ports . Added watchdog routines . Dumped, hooked, wired and decoded the color PROM in all sets . Modified the refresh rate according to hardware measurements . Wired the lamps for all sets. Created their respective layouts. . Splitted the driver to driver/video . Other minor fixes - Gradius 4: Fixed garbage graphics (gradius4_0120u3yel) - Juno First: Fixed problems introduced when the blitter code (video\tutankhm.c) was simplified - Kick and Run + KiKi KaiKai: Fixed Z80 CPU2 clock speed and rom names - Input port: Fixed bug that caused incorrect input to be read if multiple inputs were mapped to the same mouse input under Windows - Dipswitches . Added support for indicating that DIP switches are reversed in the DIP locations view . Added DIP locations to dkong.c, ms32.c and Tron . Dipswitch fixes in dkong.c - Description changes of Poker De Win - MAME . Made some minor changes in the inline code. The result of atomic_add32 isn't used a lot of the time, so the final addition was brought out to allow it to be optimized away. Removed the unnecessary delta argument from atomic_increment32 and atomic_decrement32 in eminline.h, and added implementations. Changed the condition for using rgbsse.h to include 32-bit platforms with SSE enabled. . Added an Altivec/VMX implementation (video\rgbvmx.h) of the RGB utilities for our friends with G4, G5 and POWER5 CPUs (rgbvmx.h) and added rgbint_bilinear_filter and rgbaint_bilinear_filter to rgbsse.h (based on rgb_bilinear_filter/rgba_bilinear_filter) for completeness, as these functions exist in rgbgen.h. - Compiling: Analyzed all driver interfaces (DRIVER_INIT, READ8_HANDLER, etc.) to determine which ones should be made static and properly tagged them all to reduce global namespace pollution. Some cases turned out to be dead code, which was also properly tagged. 0.120u3 - New games: Every Second Counts, Quizvaders and Treble Top - New Non-Working games: Inquizitor - New clones: Extermination (Japan), Gang Busters (set 2) and Trog (rev LA5 03/29/91) - M6800 CPU: Fixed the core, which break many 6800-based games in 0.120u2 (6800basedgames0120u2red) - SH-4 CPU . Correct some errors in the core . Implemented store queues and the basics of DMA . Added a call to simulate DMA transfers with external devices - SCSP (YMF292-F) sound: The SCSP dependency on mame\drivers\stv.c was removed allowing it to built independent of the driver - Votrax SC-01 sound: VOTRAX can now be built independentally of SAMPLES - WAVE sound: The WAVE dependency on MESS code was made explicit, so it can be built independentally of MESS. - YM2612 sound: The core now can be built without including the YM3438 core - YM3812 sound: BUILD_ instead of HAS_ macros are used in 3812intf.c for consistency with the other fm cores - Other sound cores: Unnecessary uses of BUILD_ and HAS_ macros have been removed - 3D GFX . Expanded polynew.c to support quad rendering. Converted midvunit.c over to using the new quad rendering, which fixes a number of rendering issues that have plagued the driver since the start. . Added Z-clipping logic to polynew.c. Converted namcos22 over to using that code. Simplified namcos22 significantly, working in quads throughout the lower-level pipeline and then handing the results off to polynew.c. - model3.c: Updated driver to use the new poly code and changed much of the low-level implementation to make things easier - neodrvr.c: Fixed the JAMMA PCB games (ms5pcb, svcpcb,svcpcba, kf2k3pcb), which crashed on startup (neodriv0117u3red) - ssv.c: Added DIP locations to several SSV games - The King of Fighters 2002: Fixed the missing the text layer for insert coin, energy bars, credits, etc in clone kof10th (kof10th0120u2yel) - Moon Patrol: Fixed missing sound, this was caused by the last 6800 rewrite (mpatrol0120u2yel) (ID 00707) - A Question of Sport: Added 8-way Joystick and fixeed AY-3-8910A clock speed - Input port: Made almost all input port definitions static - Dipswitch fixes in ssv.c - Fixed rom names in Extermination, Gang Busters - MAME . Added static qualifiers and renamed symbols in MAME in an effort to further tidy up the global namespace. Generally generic names were targeted and some symbols that were both static and extern. Some specifics: * K053247_ram was made static throughout and the existing K053247_export_config was used to obtain the value in xmen.c. * The enums DS1991_STATE and DSP_TYPE were unused and were therefore removed. * Dead code in cps3.c and thayers.c was discovered and commented out. . Obsoleted the GAMEB macro, which is no longer necessary . Fixed casting issues in new inline validity checks . Defined a couple of new functions in eminline.h: atomic_increment32 and atomic_decrement32 - Compiling . Cleaned up the inline assembly for both x86 and PPC, enabled the mul32 family assembly stuff on 32-bit x86, and fixed some compiler warnings on 64-bit GCC. In addition: * Provided single-precision reciprocal approximation code for PowerPC and x86 with SSE2. * Filled in all other TBD functions in eigccx86.h for completeness. * Conditionalised some code in eigccppc.h so that it isn't used when the compiler has 64-bit instructions available. 0.120u2 - New games: CD-ROM Drive Updater (700A04) and CD-ROM Drive Updater 2.0 (700B04) - New Working games: Vs. Janshi Brandnew Stars - New Non-Working games: Guitar Freaks 7th Mix (G*B17 VER. JAA), Jet Wave and Time Machine v2.0 - New clones: Eco Fighters (USA 940215) - M6803/HD63701 CPUs: Added SCI support - TMS32031 CPU: Added NORM implementation to the core - cubocd32.c: Added generic I2C bus memory support and hooked up it to the driver - gaelco3d.c + namcos22.c: Created new RGButil module which consists of inline functions for common RGB manipulation. This module can be accelerated with SSE2 or other SIMD operations. By default, only 64-bit Intel builds make use of SSE, since it can be assumed on those platforms. Reimplemented the namcos22 rasterizer in terms of these inline functions. Also updated the gaelco3d rasterizer to use this module for faster bilinear filtering. - hornet.c: Fixed crash in all games (hornet0120u1red) - ksys573.c . Added support for CR-589 firmware to the System 573 driver . Made substantial changes to the SCSI support, making it require fewer hacks, and allowing one device to be derived from another. . Added save state support - midzeus.c . Made some progress on the Midway Zeus-based system . The 3D command stream is now parsed and the format is partially understood, enough to display some polygons but with incorrect textures in Mortal Kombat 4. . Fixed visible area - model1.c: Switched driver lookup functions to be index based rather than requiring a linear scan - mpu4.c + bfcobra.c: Rewrote ACIA6850 implementation - skykid.c: Added save state support to Dragon Buster and Sky Kid - Deal 'Em . Repaired the IC24 timer behaviour to fix some of Deal 'Em's bugs . Added inputs . Fixed dipswitches - Mad Alien . Did a complete overhaul of the driver . Merged memory maps and added mirror addresses . Doubled sound chip frequency . Implemented IRQ acknowledge for the sound CPU . Added stub functions for missing discrete sounds . Re-implemented tilemaps (now the tunnel walls scroll into view) . Hooked up 6845 CRT controller . Made several fixes related to color handling . Cleaned up inputs and added dip switch locations . Raised main CPU speed (guesswork) . Added save state support . Fixed M6502 CPU1 and AY-3-8910A clock speeds . Fixed palettesize and VSync . Fixed rom names and dipswitches. - Super Real Mahjong P6: Removed GAME_NOT_WORKING flag (srmp6_0120u1ora) - Dipswitch fixes in Deal 'Em, Mad Alien and Vs. Janshi Brandnew Stars - MAME . Created new RGButil module which consists of inline functions for common RGB manipulation. This module can be accelerated with SSE2 or other SIMD operations. By default, only 64-bit Intel builds make use of SSE, since it can be assumed on those platforms. Reimplemented the namcos22 rasterizer in terms of these inline functions. Also updated the gaelco3d rasterizer to use this module for faster bilinear filtering. . Fixed several misnamed sound samples interfaces - Compiling . Fixed tiny.mak based on new source reorg . Cleaned up inline assembly support: Moved all inlinable functions into new module eminline.h. Defined a number of new inline functions, including: 32x32 -> 64 bit multiply and fast approximate floating point reciprocal. Removed old inline definitions from osinline.h, osd_cpu.h, etc. eminline.h contains C implementations of everything. New module eigccx86.h contains GCC-compatible x86/64 versions. New module eigccppc.h contains GCC-compatible PowerPC versions. eminline.h automatically detects GCC environments and includes appropriate file. osinline.h now only used in non-GCC environments. Updated osd\windows\osinline.h to contain MSVC-compatible versions. 0.120u1 - New games: 2x Good E Jong -Kachinuki Mahjong Syoukin Oh!!-, Player's Edge Plus (PP0188) Standard Draw Poker, Player's Edge Plus (Set038) Set Chip, Teraburst and Tottemo E Jong - New Working games: Mahjong Hot Gimmick Integral - New Non-Working games: GameCristal - New clones: Meteor, Mortal Kombat 4 (? rev) and Tube Panic (bootleg) - New drivers: gamecstl.c and goodejan.c - ADSP2100 CPU: Fixed some incorrect code in the external flag handling - I8051 CPU . Fixed a bug with some opcodes having the wrong cycle counts . Fixed a bug where determining the proper timer mode . Fixed a bug where determining the proper serial transmit mode . Added support for split timer mode. - M4510 CPU: Fixed core from not updating the instruction cycle counter - M6509 CPU: Fixed memory access for OP(91) and OP(b1) instructions - SCSP (YMF292-F) sound: Fixed a corner case in the involving timers which are polled with their IRQ enable shut off - Voodoo GFX . Improved multiprocessor Voodoo performance by reducing contention during rendering . Extended the system to allow for more overlap between rendering and emulation . Created new module polynew.c which combines triangle setup, rasterization and Voodoo-like multiprocessor support. Coverted Gaelco3D, Midway V-Unit, Namco System 22 and Voodoo drivers over to the new system. - hornet.c: Fixed user1 rom address - midyunit.c: Properly identified bill inputs - model2.c: Changed rendering to use pre-clipped Z values for sorting - namcos21.c . Namconb1 sprites no longer broken . Fixed missing 3d gfx in Cyber Sled . Gradient colors in Starblade . More accurate depth cueing . Fixed crash in 2nd stage of Starblade . Fixed lockups in Air Combat and Solvalou . Fixes to sprite priority (see Solvalou mountain range) . Hooked up translucency (palette shift) effect - peplus.c . Updated driver and related components . Added internal layouts for the games . Fixed several i8051 issues . Added new sets: Player's Edge Plus (PP0188) and Player's Edge Plus (Set038) . Added new prom and 'Line Frequency' dipswitch to 'Player's Edge Plus (PP0516) Double Bonus Poker' - Buck Rogers: Fixed broken starfield (buckrog0118u2yel) - Cannon Ball . Documented information about the various Cannonball sets . Cannon Ball (Pacman Hardware) is now the parent set - Domino Block . Fixed dipswitches and inputs . Added a couple of notes - F-1 Grand Prix: Hooked up the roz layer, fg layer and sprites to clone F-1 Grand Prix (Playmark bootleg). Still missing some video offsets, oki banking and sprites priority. - The Grid: Added correct user1 roms - Hayaoshi Quiz Ouza Ketteisen: Added missing priority prom - Ikki: Added MDRV_INTERLEAVE to fixed the objects flicker (ikki0120yel) - Mahjong Hot Gimmick Integral: Added missing gfx1 and sound2 roms - Input port: Fixed a crash in the input system when you configure joypads and then unplug them and press Esc on the system info screen - Dipswitch fixes in Cannon Ball, Domino Block, Player's Edge Plus (PP0516), Roller Jammer and Tube Panic - Description changes of Cannon Ball (bootleg on Crazy Climber hardware, set 1), Cannon Ball (bootleg on Crazy Climber hardware, set 2), F-1 Grand Prix (Playmark bootleg), Mahjong Hot Gimmick Integral (Japan), Puzzle & Action: Sando-R (J 951114 V1.000), Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E) and Toride II (Japan) - MAME . Changed osdcore.h to include osinline.h and allow for external inline definitions of synchronization primitives . Added a new work queue hint WORK_QUEUE_FLAG_HIGH_FREQ which indicates that we should spin aggressively waiting for new items . Defined strict types for CPU and sound chips. Removed unnecessary cpu_ prefix from several structure members. . Added more instrumentation and added some extra paranoia to the winwork code - Compiling: Enabled common linker warnings in the makefile - Debugger: Added threadid parameter to work item callbacks. This allows for keeping per-thread information by the callbacks. 0.120 - New Working games: Hayaoshi Quiz Ouza Ketteisen - New clones: Nightmare in the Dark (bootleg), World Heroes (set 1) and World Heroes 2 Jet (set 1) - Removed drivers: hayaosi1.c - 6821 PIA: Changed logging so that it only logs core messages once - Voodoo GFX: Made several more traditional optimizations to the emulations, gaining a few percent improvement. - hng64.c: Hooked up the KL5C80 communications CPU to the HNG64 BIOS and emulated some of its features - model2.c: Simplified some of the rendering code - neodrvr.c . Updates to various NeoGeo ROMsets. Some ROM names updated to match verified names from chip labels. A lot of "older" sets have been redumped to investigate the "64k m1/s1 issue" (also the m1 "overdumps"). Result was, ALL m1 ARE at least 128kx8; ALL s1 ARE 128kx8. The old m1 "overdumps" were incomplete dumps. In addition, it has been discovered that all "p-roms" do have a minimum size of 4Mbit. A number of sets have been restored to their "original" state, and a number of others have been marked as bad dumps where appropriate. Specific changes include. . bjourney: readded 128k m1 from MAME v0.34b5 . bstars: fully redumped, added correct m1 . bstars2: fully redumped, added correct m1 . goalx3: readded 128k m1 from MAME v0.34b5 . janshin: readded 128k m1 from MAME v0.34b5 . joyjoy: added correct m1 . legendos: readded 128k m1 from MAME v0.34b5 . maglord: fully redumped, added correct m1 . mutnat: partially redumped, added correct m1 . nam1975: fully redumped, added correct m1/s1 . ncombata: fully redumped, renamed set to ncombath . neomrdo: readded 128k s1 from MAME v0.34b5 . pbobblen: readded 128k m1 from MAME v0.34b5 . puzzledp: readded 128k s1 from MAME v0.34b5 . ridhero: fully redumped, added correct s1 . socbrawl: readded 128k s1 from MAME v0.34b5 . ssideki2: fully redumped . strhoop: readded 128k m1 from MAME v0.34b5 . svc: removed MVS tag, only one version exists (AES/MVS/PCB) . svcboot: removed MVS tag . tws96: readded 128k m1 from MAME v0.34b5 . viewpoin: readded 128k m1/s1 from MAME v0.34b5 . wh2j: partially redumped, renamed to wh2jh, is verified AES version . wh2j: fully redumped, is verified MVS version . wh1h: fully redumped, is verified AES version . wh1ha: renamed from wh1h to wh1ha - Hayaoshi Quiz Ouza Ketteisen . Fixed 68000 CPU2 and OKI6295's clock speeds . Added YM2151 sound . Fixed visible area and cpu1/2 rom loading . Added dipswitches . Moved game to megasys1.c driver - Description changes of Hayaoshi Quiz Ouza Ketteisen, SNK vs. CAPCOM SVC CHAOS and SNK vs. CAPCOM SVC CHAOS (bootleg) - MAME . Further tweaked the work code to appropriately check for work items versus checking for the number of outstanding items . Moved a number of files from mame\machine and mame\video to emu\machine and emu\video. In general, files that emulate a common industry standard chip (as opposed to custom, manufacturer-specific chips) were moved. Further moves may happen in the future to isolate common system-level components (such as amiga, snes, etc.). - Compiling . Added "native" architecture option to the makefile. Use this to have GCC automatically pick the most appropriate architecture based on the system that it is compiling on. . Fixed a few pointer truncation bugs in the Windows 64-bit code. Enabled warnings for 64-bit pointer truncations. Merged the x86 and x64 manifests. 0.119u4 - NOTE TO OSD PORTERS: The work interfaces have changed again. The updated interfaces remove functionality, so in the end it should be simpler to port. - New games: Hana wo Yaraneba!, Hayaoshi Quiz Nettou Namahousou, Hanafuda Hana Tengoku and 'Player's Edge Plus (PP0516) Double Bonus Poker' - New Working games: Jongkyo and Super Real Mahjong Part 1 - New Non-Working games: GP World, GTI Poker, Hayaoshi Quiz Ouza Ketteisen and Hanajingi, Poker? (IGS) - New clones: Airwolf (US), Alien Syndrome (set 5, System 16A, FD1089B 317-0037), Golden Tee '97 Tournament (v2.43), Pang (bootleg, set 3), Super Bobble Bobble (set 1) and Toride II Adauchi Gaiden - New drivers: gpworld.c, gtipoker.c, hayaosi1.c and peplus.c - I386 CPU . The INTR-line for i386 is a "level" line; changed interrupt handling to trigger on asserted line. . In 32bit mode, determine trap/interrupt from gate-header . Interrupt line is read during two bus cycles. Adjust CYCLES accordingly. - MB86233 CPU: Added the repeat count register (reg 0x34) access and immediate value load to the core (needed by Pilot Kids) - Z80GB CPU (GameBoy): Fixed cycle count for taking an interrupt. Fixed cycle count for BIT X,(HL) instructions. Fixed flags in RRCA instruction. Fixed DAA instruction. Fixed flags in ADD SP,n8 instruction. Fixed flags in LD HL,SP+n8 instruction. - SCSP (YMF292-F) sound . Fixed endianness issue on 8-bit samples and added interpolation . Disabled modulation attempt (should fix the crash problems) . Tweeked pitch calculation - Voodoo GFX: Updated Voodoo code to use the new work functions. It now queues small scanline chunks as independent items rather than using shared items. Updated code to also copy some parameters to allow for greater overlapping of emulation and rendering. - dynax.c . Cleaned up inputs . Fixed flipscreen . Fixed visible area, number of players and dipswitches - playch10.c: Fixed P1 Buttons mapping (playch10_0109gre) - seattle.c/vegas.c . Added code to detect potential hotspots in the 64-bit DRC . Added hotspots to all the seattle.c games and several of the vegas.c games . Updated Voodoo code to use the new work functions. It now queues small scanline chunks as independent items rather than using shared items. Updated code to also copy some parameters to allow for greater overlapping of emulation and rendering. - seibuspi.c . Added coin-handling to single board games (seibuspisingle099u9yel) . Fix interrupt handling - Cabal: Hooked up the 2 MSM5205 sample player CPUs and added coin counters to Cabal (bootleg of Joystick version). It seems there still are some problems, because the coin up music is played during the game. - Cannon Ball: Added color proms to clone (Pacman Hardware). These give some ugly colours, but should be correct. - Finalizer: Fixed dipswitches (finalizr0102u5gra) - Future Spy: Fixed reversed up/down control (futspy0114gra) - GI Joe: Fixed 'Players' dipswitch (gijoe0114gra) - Real Ghostbusters: Fixed number of players (ghostb0105u4gra) - Hana Oriduru: Added new gfx1 rom from Hanajingi. Fixed visible area and added dipswitches. - Head On: Added two more filters to the Head On crash sound (audio\vicdual.c). Now, only the envelopes for the crash sound filters are missing. - Killer Instinct: Fixed 64-bit DRC bug that broke Killer Instinct in the previous release - Lover Boy . Input fixes . Added and verified all dipswitches . Added and verified Button1 for both players - Parodius DA!: Fixed SERVICE1 mapping (parodius0111u3gra) - Pilot Kids: Added the repeat count register (reg 0x34) access and immediate value load to the MB86233 core (needed by Pilot Kids). - Premier Soccer: Fixed mask rom tes - Raiden Fighters 2: Added sound to clone Raiden Fighters 2.1 (US, Single Board) - Raiden Fighters Jet: Added to clone Raiden Fighters Jet (US, Single Board) a hack to enable Test-Switch to enter testmode if no NVRAM exists - Real Ghostbusters: Fixed number of players - Super Real Mahjong Part 1: Added new cpu1/sound1 roms and fixed gfx1 rom loading - Vs. Janshi Brandnew Stars: More improvements. Removed Z80 and added dipswitches. - Description changes of Hayaoshi Quiz Grand Champion Taikai and Lover Boy - Dipswitch fixes in Crush Roller (Sidam bootleg), dynax.c, Finalizer, GI Joe, Jongkyo, Lover Boy, Meikyuu Hunter G and Vs. Janshi Brandnew Star - MAME . Added new scalable lock implementation for Windows work functions that hopefully has better performance characteristics when scaling above 2 CPUs . Added statistics gathering code for Windows work functions. This is on by default for the moment to help point to problems that might be encountered with this version. . Simplified the osd_work implementation. Removed the concept of shared work items. Added new function osd_work_item_queue_multiple() which allows efficient queueing of large numbers of work items. Changed previous osd_work_item_queue() function into an inline that calls the new function. - Compiling . Fixed several out-of-bounds array accesses in the code . Fixed a compile error on architectures where "char" is unsigned (notably some PowerPC configurations) . Fixed the linking issues when specifying MSVC_BUILD=1 and DEBUG=1 0.119u3 - IMPORTANT NOTE FOR OSD PORTERS: This build requires a pair of new primitives in the OSD synchronization module, as well as some extended functionality in the work item management. - New games: Hanafuda Hana Gokou (Japan) and Super Hana Paradise (Japan) - New Working games: IQ-Block (V127M), IQ-Block (V113FR) and Mahjong Tian Jiang Shen Bing (???) - New Non-Working games: 'Vs. Janshi Brandnew Stars' and Jongkyo - New clones: Cabal (Alpha Trading), Cabal (US set 1, Trackball version), Cannon Ball (Pacman Hardware), Crack Down (World, FD1094 317-0058-04c), Double Dragon (bootleg with M6803), DJ Boy (set 2), Hunchback (set 2), Legend of Hero Tonma (Japan), Legend of Hero Tonma (bootleg), Legend of Hero Tonma (bootleg, set 2), Nekketsu Koukou Dodgeball Bu (Japan), Pang (bootleg, set 2), Puzzle & Action: Tant-R (Japan), Puzzle Game Rong Rong (Japan), Shinobi (Beta bootleg), Shinobi (Datsu bootleg), Shinobi (Star bootleg, System 16A), Super Pang (World 900914, bootleg), Super Qix (US) and Tehkan World Cup (set 2, bootleg?) - Removed games: Shinobi (bootleg) - New drivers: bnstars.c and jongkyo.c - 8086 CPU . Changed the following x86 instructions to read/write an entire word rather than two separate bytes: mov_axdisp, mov_dispax, stosw (8086 only) and rep stosw (8086 only) . Tweaked handling of x86 WAIT instruction - V30 CPU (machine\irem_cpu.c): Several more Irem D80000 opcode fixes for Gussun Oyoyo (Risky Challenge clone). Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - MIPS CPUs: Fixed several more bugs in the 64-bit MIPS recompiler. It is now capable of running the Seattle games and the 3D Gauntlets. - SCSP (YMF292-F) sound: Fixed broken from last update - Namco Custom chips 51XX (I/O), 52XX (Sample player) and 53xx (I/O): Added the rom loading for the various 5*XX roms to Bosconian, Dig Dug, Galaga, Pole Position, Pole Position II and Xevious, which are decapped/dumped but not yet hooked up. - Voodoo GFX: Changed the 3dfx Voodoo emulation code to take advantage of the new threading mechanisms. It now creates a work queue with the WORK_QUEUE_FLAG_MULTI flag set, and uses shared work items to spread rasterization work across multiple processors. Note that this support should be considered experimental; under some circumstances it is known to deadlock. If you encounter problems, set OSDPROCESSORS to 1 to effectively produce the previous behavior. - model2.c . Decoupled the geometry engine code from the hardware rasterizer. At this point, we could add emulation of the geometry DSPs for the 2B and 2C models, and hook them directly to the rasterizer. For the original and 2A models, an HLE geometry engine is provided (currently in use for all models). . Full Geometry Engine simulation, including support for specular, multiple centers and dual polygon RAM. . Support for all textured/transparent/checkered rendering modes . Improved texel/luma modulation . Improved viewport clipping . Improved z clipping . Extensive notes and documentation . Greatly improved near Z-Clipping, still not perfect though . Improved perspective-correct texturing for large textures . Improved Z-Sorting - seattle.c and vegas.c . Added "top 20" dedicated rasterizers for all the Seattle games and Gauntlet Legends/Dark Legacy. These improve rasterization performance by another 10-20%. . Fixed several more bugs in the 64-bit MIPS recompiler. It is now capable of running the Seattle games and the 3D Gauntlets. - Cabal: Fixed (joystick) submission from previous release (cabal0119u2ora) - Deal 'Em: Made a few improvements, well you can see the game now. - Dynamite Duke: Fixed colors - G-Stream G2020 . Changed to use a default NVRAM handler . Checked the inputs . Aligned the sprites . Added some comments about OKI banking . Fixed sound1 rom loading and removed 'Unknown' dipswitches - Snow Bros: Added new cpu1 roms to clone Winter Bobble - Description changes of Jibun wo Migaku Culture School Mahjong Hen, Mahjong Fantasic Love and Puzzle Game Rong Rong - Dipswitch fixes in G-Stream G2020 and Puzzle Game Rong Rong - MAME . The OSD layer is now required to supply to additional synchronization primitives: osd_compare_exchange32() and osd_compare_exchange64(). These primitives should implement an atomic compare and exchange of 32-bit and 64-bit values, respectively. Added implementations of these functions to the Windows OSD layer. . Defined two new inline functions that are built on the new OSD primitives: osd_compare_exchange_ptr(), which performs an atomic compare/exchange on a pointer of the appropriate size, and osd_sync_add() which atomically adds a value to a location in memory. . Added new work item flag WORK_ITEM_FLAG_SHARED. When specified on a work item that is queued to a work queue created with the WORK_QUEUE_FLAG_MULTI hint, it means that all threads will be dispatched to process the one work item, instead of the first thread removing it. These "shared" work items are only considered complete when all processing threads have returned. . Changed implementation of OSD work queues that are created with the WORK_QUEUE_FLAG_MULTI hint. Such queues now create n-1 threads, where n is the number of logical processors in the system. This allows the main thread to continue accomplishing things while other threads process the work. If the main thread subsequently calls osd_work_queue_wait(), it will then dynamically "jump in" and help the other threads complete all the work items. . Added support for controlling multithreading behavior through an environment variable OSDPROCESSORS. To override the default behavior, set OSDPROCESSORS equal to the number of logical processors you wish the OSD layer to pretend you have. . Fixed error messages output from option.c . Changed parameters to read/write handlers from "address" to an unmodified "original_address" parameter (having the passed parameter being unmodified makes it easier to determine the original value while debugging). . Cleaned up the include file usage in the code: Removed dead prototypes. Added missing self-#includes. Added missing source comments in mame\includes. Migrated the few #include "driver.h" lines from driver header files to source files (which is the common idiom). Eliminated #include "mame.h", "osdcore.h" et cetera from driver files where #include "driver.h" would suffice. Removed unused srmp6.h and 9900stat.h. . Changed Machine to machine in several places where feasible 0.119u2 - New games: Domino Block, Jibun wo Migaku cultures School Mahjon Hen, Loverboy, Mahjong Fantastic Love and Mahjong Shinkirou Deja Vu - New Working games: Final Godori - New Non-Working games: 3x Esh's Aurunmilla, Jan Oh, Mahjong Vegas and Mirage Youjuu Mahjongden - New clones: Fighter's History (Japan ver 42-03), Gals Panic (Japan, EXPRO-02 PCB), Janyou Part II and Super Formula II (bootleg of F-1 Grand Prix) - New drivers: cultures.c, dominob.c, esh.c and mirage.c - H6280 CPU: Fixed NMI handling - MIPS CPUs . Fixed MIPS3 disassembly of j/jal instructions . Switched MIPS3 64-bit DRC over to new system that is more aggressive about register allocation and mapping. Sadly, there is little to no obvious performance benefit, but the resulting code is better organized. . Created new generic x86/x64 logging system x86log, and updated both MIPS3 DRC cores to use it. . Created new generic DRC frontend management. Future work involves retooling the MIPS3 frontend around this new architecture. . Fixed nasty x86emit bug involving 16-bit opcodes on 64-bit systems . Created new generic x86/x64 logging system x86log, and updated both MIPS3 DRC cores to use it. - Discrete sound: Added macros to clean up definitions of the discrete sound interfaces. At the same time, made them all const. - SCSP (YMF292-F) sound . Fixed issue with changing the pitch of an active voice set to backwards or bidirectional loop. . Removed fake reverb . Fixed internal DSP to operate properly . Rewrote timers and interrupt handling . Fixed operation when 2 SCSPs are present - ksys573.c: Fixed rom loading - macrossp.c: Cleaned up input port, added DIP locations and fixed dipswitches - megatech.c: Some miscellaneous changes to the driver - model2.c . Fixed triangle parser; all objects should be structurally correct now . Fixed normal transform to not use the translation vectors . Fixed sound in almost all SCSP-equipped Model 2 games . Fixed all 2C-CRX games with crash with an NULL pointer access (model2c_crx0119u1red) - model3.c . Added sound hardware (68000 and 2x SCSP) . Fixed sound ROM loading in Model 3 games - sg1000a.c: Cleaned up input ports and fixed dipswitches - Cabal: Added new cpu1/gfx1 roms and removed proms - Crowns Golf: Fixed cpu2 rom length - Disco Boy: Hooked up YM3812 sound - Mahjong Cafe Doll: Added missing proms - Ms. Pac-Man/Galaga: Fixed Z180 CPU1 clock speed - Super Real Mahjong P6: More improvements. Removed sound1 and user3 roms. - Vapor Trail: Fixed game to use an ASSERT/CLEAR mechanism instead of PULSE_LINE for interrupt signally - Input port: Added DIP locations and changes the Japanese inputs into PORT_INCLUDE and PORT_MODIFY - Dipswitch fixes in macrossp.c, megatech.c, Psychic 5 and sg1000a.c - Description changes of Final Godori, Narazumono Sentoubutai Bloody Wolf - Fixed rom names in Fighter's History and Special Criminal Investigation - MAME . Changed gfx_decode structures so that they are defined abstractly by macros rather than directly specifying the structures. Added new macros GFXDECODE_START/GFXDECODE_ENTRY/GFXDECODE_END to describe the gfx_decode information. Converted all drivers over to using the new macros. . Renamed old gfx_decode structure to gfx_decode_entry in order to catch remaining/new drivers that aren't using the new macros. . Created an options_output_diff_ini_file() API, which is similar to options_output_ini_file(), but only outputs the options which are different than a base core_options. Changed INI outputting (and hence the -cc option) to omit headers that do not contain any options. . Cleaned up code to make code and data static where possible and remove some dead code . Changed profiler so that it is independently selected versus the debug build. Built with MAME_PROFILER=1 to enable the profiler on a non-debug build. 0.119u1 - New games: 3x Deer Hunting USA, Ippatsu Gyakuten [BET] (Japan), Panel & Variety Akamaru Q Jousyou Dont-R, Trophy Hunting - Bear & Moose V1.0, Turkey Hunting USA V1.0 and 2x Wing Shooting Championship V2.0 - New Working games: Cyber Sled, Grand Slam (Mega Play), Joryuu Syougi Kyoushitsu, Mazin Wars / Mazin Saga (Mega Play), Solvalou and Super Real Mahjong P6 - New Non-Working games: Laser Grand Prix, Mahjong Cafe Doll (Japan) and Saloon (France, encrypted) - New clones: Alien Storm (bootleg, set 2), Big Event Golf (Japan), Boomer Rang'r / Genesis (set 2), Crowns Golf (834-5419-04), Cyber Sled (US), Don Den Lover Vol. 1 - Shiro Kuro Tsukeyo! (Japan), Golden Axe (bootleg), Mario Bros. (US, set 1), Narazumono Sentai Bloody Wolf (Japan), Passing Shot (Japan, 4 Players, System 16A, FD1094 317-0071), Pound for Pound (Japan), Puzznic (Italy), Royal Mahjong (Japan, v1.13), Scramble (bootleg), Special Criminal Investigation (Japan) and Zero Team Selection - New drivers: lgp.c and srmp5.c - ARM7 CPU . Fixed unaligned reads/writes (again) . Fixed minimum instruction bytes to account for Thumb mode . Fixed missing dependency in ARM7 build rule . Fixed Thumb mode ASR instruction - H6280 CPU . Taking of interrupts is delayed to respect a pending instruction already in the instruction pipeline . Added 1 cycle for decimal mode ADC and SBC instructions . Changed cycle counts for CSH and CSL instructions to 3 . Added T flag support to the SBC instruction . Fixed ADC T flag to set the Z flag based on the value read . Added 3 cycle penalty to ADC, AND, EOR, ORA, and SBC instructions when the T flag is set . Fixed cycle count and support for 65536 byte blocks for the TAI, TDD, TIA, TII and TIN instructions . Fixed RDWORD macro in the disassembler . Fixed setting of N and V flags in the TST instructions . Removed unneeded debug_mmr code . Fixed TSB and TRB instructions . Added 1 delay when accessing the VDC or VCE areas . Implemented low and high speed cpu modes - I386 CPU: Fixed a few more 64-bit disassembler problems in i386dasm.c - I960 CPU: Fixed SCALER, SCALERL and ATANRL opcodes - MB86233 CPU (Model 1/2) . Synchronized the core with ElSemi's . Fixing a few bugs along the way - V30 CPU: Identified a number of additional new IREM D80000 opcodes for Gussun Oyoyo (Risky Challenge clone). Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - Z180 CPU . Added the 2 programmable reload timers . Fixed the Internal I/O Registers remapping . Added logical -> physical memory translation . Disabled loops hack . Removed "extra icount" . Changed interrupts handling. Now they're checked as in Z80 core. . Simplified RETN and EI opcodes. Fixed PRT interrupts . Cleared both interrupts flip flops when taking any irq . Added _IFF2 = _IFF1; just before _IFF1 = 0; when taking an NMI - x64 dynamic recompiler: Added preliminary attempt at a new x64 dynamic recompiler for the MIPS 3/4 CPUs. The current version works enough to run a few basic games (kinst, carnevil), but many others fail. Furthermore, this version is already being supplanted by a more advanced version that does register allocation and constant folding. For now it is disabled by default. - x86 dynamic recompiler: Fixed several 64-bit errors in the code generators in x86emit.h - SCSP (YMF292-F) sound . Fix writes to the hole in the SCSP address space (0x430 to 0x5ff) to not trash global registers . Fixed SCSP DMA to not read random memory for its' registers - Voodoo GFX . Fixed Voodoo video timing according to the manual, including blanking periods and vsync interrupts. This makes Carnevil and some other games run once again at their proper speed. . Updated Voodoo drawing code to track changes to the front buffer and allow skipping unrendered frames for more even framerates - gdrawpkr.c . Added sound support to 'El Grande - 5 Card Draw' . All CPU and sound clocks derived from #defined crystal values . Some minor input cleanups . Replaced AY-3-8910A sound with AY-3-8912A in Gaming Draw Poker and El Grande - firebeat.c . Added newly-dumped BIOS roms to ParaParaDancing, ParaParaParadise, ParaParaParadise v1.1 and Pop n' Music 7 . Added preliminary emulation of the SPU board in Pop n' Music 7 . Added 68000 CPU and program rom to Pop n' Music 7 - jrpacman.c: Fixed clipped sprites (jrpacman0119gre) - megaplay.c . Began moving the driver over to the new Genesis core code . Fixed visible area and replaced YM3438 sound with YM2612 - megatech.c . Began moving the driver over to the new Genesis core code . Replaced YM3438 sound with YM2612 and added 'Region' dipswitch - model2.c . Fixed synchronization code in the driver . There's still a glitch on the triangle parser somewhere. Noticeable on the Sega logo in motoraid, the selection arrow in dynamcop's player select screen and many other games. It might be the culprit of the road in daytona looking wacky. There's a problem with the z clipping. Some tri's close to the camera are clipped before they should. Some others should be clipped but are not, and are blocking the viewport for a frame or two. Sub-windows are not implemented yet. Visible on dynacop's mission select, Sega Rally car select, and others. Most decal textures flicker on and off between frames. Maybe a z coordinate float resolution issue after projection? Textures wrap by default. They should only wrap when the appropriate flag is set only. Not sure what to do when we're not wrapping. . Fixed user2/3 rom loading in Daytona USA, Desert Tank, Sega Rally Championship and Virtua Cop - namcos21.c . Corrections to EPROM handling (affects Namco System2 as well) . Scroll fix for sprite emulation in namcoic.c . Working Starblade, Cybersled and Solvalou with full 3D . Graphics should be 100% except for the depth cueing tables, which are internal and need to be reconstructed. . Air Combat is improved, but is locking up in 118s because of incomplete watchdog emulation. . Winning Run hardware is not yet working in this update . Fixed TMS32025 CPU5 clock speed and added 2x c67.rom's (Master/Slave DSP) for TMS32025 CPU5/6 in Air Combat, Cyber Sled, Driver's Eyes, Solvalou and Starblade . Driver's Eyes: Removed 2nd TMS32025 CPU, fixed TMS32025 CPU5 clock speed and gfx1 rom loading . Winning Run / Winning Run 91: Changed description of 'Winning Run' to 'Winning Run Suzuka Grand Prix'. Added TMS32025 CPU5. Fixed visible area to 496x480 and rom loading. - segac2.c/system18.c: Fixed crash/display corruption in the games - taito_z.c: Cleaned up input ports - Field Day: Fixed regression in clone 'The Undoukai' caused by the REGION_CPU1 decoupling from RAM - Joryuu Syougi Kyoushitsu: Added new cpu2/user1/gfx1 roms and fixed dipswitches - Ms. Pac-Man/Galaga . Removed kludge which is no longer necessary with proper Z180 emulation . Sound now works as well - Operation Wolf: Added some notes to the driver - Super Real Mahjong P5 . Moved game to separate driver (from st0016.c) . Preliminary video hardware emulation (not playable and no sound) . Fixed R3000 (little) clock speed, visible area and rom loading - Super Real Mahjong P6 . Added missing user3/sound1 roms . Fixed visible area - Video Pinball: Added minimal built-in layout for showing the lamps - Zero Team: Added user2 rom (COPDX) and missing gfx2/3 roms (background and sprite) - Rom names fixes in namcos21.c, Pound for Pound and Special Criminal Investigation - Dipswitch fixes in Don Den Lover, Joryuu Syougi Kyoushitsu, mario.c, megatech.c, namcos21.c, Operation Thunderbolt and Super Real Mahjong P5 - MAME . Removed limitation that tilemap tile widths must be dividable by 2, except in the 4bpp case, where an assert now catches this case. . Experimentally changed full screen behavior when using Direct3D so that if -switchres is NOT enabled, then we don't create a fullscreen Direct3D device. This minimizes large graphics card transitions (in particular it does not disable glass in Vista) when you go full screen. If you want the old behavior, run with -switchres and specify a -resolution parameter equal to your desktop screen size. . Fixed MAMETesters bug createconfig+debug0119yel - Compiling: Updated the sources to support removing -wno-unused-function. Dead code has been identified with #ifdef UNUSED_FUNCTION to allow for further analysis and potential future removal. - Debugger . Added support in the debugger memory view for 8-byte chunk sizes. Fixed long-standing bug that failed to show unmapped logical addresses as asterisks. Also added new menu items to the Windows debugger to support viewing logical or physical memory. . Fixed hang when attempting to move Windows with the debugger active and multithreading enabled 0.119 - New clones: Crazy Kong (bootleg on Galaxian hardware, set 2), Galaxian (bootleg), Operation Wolf (World, set 2), Quintoon (UK, Game Card 95-751-206, Datapak), Star Force (encrypted, bootleg), Turpin (bootleg on Scramble hardware) and Vandyke (bootleg with PIC16c57) - MB86233 CPU: Fixed recent changes that broke Virtua Racing (vr0118u6yel) - model2.c: Fixed bug in polygon clipping - Shadow Force: Fixed input port so that Shadow Force (Japan Version 2) doesn't skip straight to the end sequence - Super Real Mahjong P6 . Improved graphics and cleaned up driver . Removed gfx1 and sound1 roms . Fixed visible area - MAME: Added intelligence around the UPDATE_HAS_NOT_CHANGED flag, which is returned from VIDEO_UPDATE. If all screens in the game return UPDATE_HAS_NOT_CHANGED, then that frame is effectively skipped (up to 3 frames in a row) in terms of throttling. This allows games that render every other frame to not throttle during their "off frames". Updated the midvunit driver to return UPDATE_HAS_NOT_CHANGED. You should see an improvement in framerate with throttling enabled for these games. Note that this only kicks in if frameskip is set to 0. 0.118u6 - New games: Port Man (bootleg on Moon Cresta hardware) and 2x Yukon - New Working games: Mega Man - The Power Battle (CPS2, USA 951006, SAMPLE Version)' and 'Rockman: The Power Battle (CPS2, Japan 950922)' - New Non-Working games: Astropal and Come On Baby - New clones: Crush Roller (bootleg), Crush Roller (Sidam bootleg), Dimahoo (Euro 000121), Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02), Hard Times (set 2), Moon War (Moon Cresta bootleg), Satan of Saturn (set 2), Scorpion (set 3) and Street Fighter Alpha 3 (Euro 980904) - Removed games: Super Eagle Shot (set 2) - New drivers: comebaby.c - HD6309 CPU . The SEXW instruction not longer clears the overflow flag . Now generating an illegal instruction trap if invalid registers specified for TFM - MB86233 CPU . Fixed a double move opcode . Added a previously unknown double move opcode - x86 Dynamic recompiler . Made a cleanup pass through the new x86emit.h code emitters, changing the way memory is referenced and replacing macros with inline functions. . Updated MIPS and PowerPC drc cores to use the new emitters . Removed the old macro-based ones in x86drc.h - TMS5220 sound . Updated core to use shifts instead of divides for the parameter interpolation . Added support for internal clamping to 8-bit output when using the internal DAC - CHD . Fixed regression that caused CHD games to crash if the CHD was not present . Fixed change that required write access to CHDs . Fixed CHD search paths again so that they look in parent subdirectories . Added SCSIOP_GET_INQUIRY_BUFFER to scsicd & scsihd - cave.c: Fixed DonPachi and Guwange crashing immediately after starting (cave0118u5red) - Hard Times: Fixed gfx1/2 roms addresses - Hot Mind: Fixed gfx1/2 roms addresses - Guitar Freaks 3rd Mix: Fixed security cassette contents to get Guitar Freaks 3rd Mix (GE949 VER. JAB) in game. - Manx TT Superbike . Added new user1/2/3, cpu2 and sound1 roms . Fixed rom names - Motoraid: Fixed rom names - Pac-Land . Fixed wrong gfx display (pacland0118u5yel) . Added save state support . Changed palettesize to 3072 colors - Radikal Bikers: Fixed crash (radikalb0118u5red) - Space Attack: Fixed a fatal error (sspaceat0118u1red) - Wheels & Fire: Some improvements to driver. Still not right. Fixed 68000 CPU1 clock speed. - Yamato: Fixed crash after exiting the game (yamato0118u5red) - MAME . Made -autoframeskip aware of the -speed setting . Exposed core_vfprintf(), and implemented mame_vfprintf() in terms of that call . Changed the way MAME handles options internally. Changed mame_options_init() to return a core_options object, which is now passed into mame_execute(). Moved mame_options() to mame.c, which is now only valid while the emulation is running. Audit functions now take a core_options parameter. . Changed Windows message filtering to only apply to MAME game Windows . Fixed bugs: chdrewrite0118u5red, ym2203_0118u1yel and profiler0116u2yel - Compiling: Fixed stack buffer overrun in install_mem_handler() that broke the Hyperstone-based games under GCC 4.2.1. 0.118u5 - New games: Bishou Jan, Date Quiz Go Go Episode 2, Mahjong Cafe Time and Mahjong Comic Gekijou Vol.1 - New Working games: Almond Pinky, Last Fighting and Super Eagle Shot - New Non-Working games: Dance Dance Revolution Extreme, Dancing Stage featuring Dreams Come True and Super Real Mahjong Part 1 - New clones: Dance Dance Revolution (GC845 VER. JAB), Quintoon (UK, Game Card 95-750-206) and X-Men: Children of the Atom (Japan 941222) - New drivers: bishjan.c and speglsht.c - PPC601 CPU: Added support for the PowerPC 601 - x86 Dynamic recompiler: Added more opcode emitters to x86emit.h - Palette system . Added new core library utility module palette.c for managing palettes. Renamed emulator-specific palette code to emupal.c and restructured to live on top of the core library code. . Added support for attaching palettes to bitmaps in the core. Removed support for the 16-pixel bitmap "safety" zone by default, since most drivers do not need it. . Added new function bitmap_alloc_slop() which supports creating bitmaps with caller-specified slop values . Removed the gfx_element.colortable element and replaced it with a new element color_base which specifies the global color offset. This breaks an awkward dependency between the palette and graphics code, and removes a lot of odd pointer arithmetic in the system. . Tagged Machine->pens, Machine->colortable, and Machine->remapped_colortable as const to prevent their abuse. Fixed several abusing drivers, and tagged the remainder for future cleanup. . Added new colortable management functions in emupal.c. These functions can be used to manage a colortable on top of the core palette in cases where TRANSPARENCY_COLOR is currently used (essentially mapping to a pen mask for TRANSPARENCY_PENS). Updated pacman, mappy, toypop and several other drivers to use the new functions. . Changed palettesize in bankp.c, Bosconian, Dig Dug, docastle.c, equites.c, Galaga, Gaplus, Pac-Land, Pole Position/2, royalmah.c, Vulgus and Xevious - CuboCD32/Amiga updates . Finished implementing the CDROM controller, so now the games boot. . Moved the entire Akiko code to machine\cubocd32.c to make things a little more easier to work with . Added CDDA audio support to the CDROM controller and driver . Systems with the AGA chipset no longer connect bit 0 of the CIA that was previously connected to the Overlay pin not connected . Made BLTDDAT return it's value. This is a readable register which we were not handling. . Initialized the SERDATR register upon reset to reflect that the transfer buffer/shift reg is empty . Fixed 68EC020 clock speed and visible area - docastle.c: Vastly simplified the rendering code - thepit.c: Changed VSync to 60.606061 Hz - 9-Ball Shootout: Fixed NVRAM loading (9ballsh3097red) - Alien Sector . Added new gfx2 roms . Changed description from 'Baraduke' to 'Alien Sector' . Fixed rom names - Cosmo Gang the Puzzle: Fixed hangs on the RAM/ROM test (namcona1c057red) - Final Godori: Changed region sound1 to user2 - Last Fighting: Fixed visible area and driver - Macho Mouse: Added missing color proms from the epoxy module - Mahjong Tenkaigen: Changed region gfx3 to gfx2 - Mappy: Fixed all sets in the driver with 0.118u1 build do not start properly and characters on the garrent are not displayed (mappy0116u2gre and mappyc0118u1red). - Super Eagle Shot: Added new user2 rom. Fixed visible area, rom loading and dipswitches. - Super Real Mahjong P5: Replaced R3000 (big) CPU1 with R3000 (little) - Description changes of Alien Sector, Almond Pinky - Dipswitch fixes in Almond Pinky, cubocd32.c and Super Eagle Shot - MAME . Added new function render_target_set_max_update_rate() which allows the OSD layer to inform MAME of the target's refresh rate (or 0 if there is no maximum). This is used to allow for the dynamic speed adjustment parameter below. . Added new parameter -refreshspeed (-rs for short) which dynamically adjusts the -speed parameter to keep the effective refresh rate below that of the lowest screen refresh rate. . Removed CHD interface structure. CHDs now rely on the corefile routines to perform file I/O. Updated the rest of the system to handle this reality. A side-effect is that "split" CHDs, which never got much play, have now been deprecated. . Updated memconv.h to convert from basically any to any widths (8/16/32/64), on both little and big endian. Also added macros to create the stubs for the most commonly used mappings, both in the 1:1 fashion, or the LSB/MSB/LSW/MSW style. . Changed all comparison for CPU and sound chip types to compare against CPU_DUMMY or Sound_DUMMY instead of 0. Also updated usages of sndti_to_sndnum() so that they use sndti_exists() where appropriate. . Added missing PLD region in -listxml - Compiling . Fixed remaining errors and warnings when building under GCC 4.2.1 . New development tools, based on GCC 4.2.1 at: http://mamedev.org/tools 0.118u4 - New Non-Working games: Interstellar Laser Fantasy - New clones: Final Fight (US) and Undercover Cops (Alpha Renewal Version) - New drivers: istellar.c - I386 CPU . Significantly improved the i386 disassembler. Changed it so that it no longer outputs 'byte ptr' except for ambiguous cases. . Updated for full 64-bit disassembly support . Added support for the full IA32 opcode matrix as specified by recent Intel manuals, including all SSE opcodes and variants. - MIPS CPUs . Added new functions to the memory system to support CPU cores explicitly specifying the access mask on 32-bit and 64-bit data bus systems. This enables the MIPS core to handle SWL/SWR and SDL/SDR without a read/modify/write cycle. Updated the C and DRC MIPS cores to use this new mechanism. . Fixed recently introduced bug in the mips3 core that caused the C core to launch off into nowhere after the first instruction - x86 Dynamic recompiler . Updated the x86 drc helper code to support externally-allocated cache . Added support for allocating data structures out of the cache . Modified initialization so that it does not immediately generate code but rather waits for a reset to do that . Fixed code generation bug when generating [reg*scale] modrm forms . Added new module x86emit.h which supports dynamic code generation for both x86 and x64 systems. This new system is a far more complete solution, though not all opcodes are defined yet. The interface for this is also cleaner than the previous one defined in x86drc.h. Existing DRC cores are still using the old interface, but the new one is preferred for new development. - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) . Implemented ECS-Only BLTCON0L register . Modified the amiga_interface structure to add a NMI callback and a flags variable . Added AGA chipmem mask definition . Added 32 bit data bus support to chipram. It's automatically used if the chipset is AGA . Added clock chip constants in machine\amiga.h for 68k PAL and NTSC, and 68EC00 NTSC. Updates drivers to use those constants. . Added convenience macros to determine wether we're running with an ECS chipset, AGA chipset, or 'ECS or AGA chipset' . Changed autoconfig reads to return 0x0000 instead of 0xffff . Fixed MSB value timer reads on the 8520 cia. We were previously only updating the count for the timer when the LSB value was read . cubocd32.c . Added basic Akiko emulation to the driver. Both the Chunky to Planar converter, and the I2C NVRAM should be fully implemented, however, the CDROM functionality is not complete. It's only enough to make the kickstart pass the Akiko checks. . Fixed 68EC020 clock speed and added Custom sound - galaga.c: Converted the inputs in the driver to tags, using INCLUDE/MODIFY for clones - Dig Dug . Fixed the conditional extra lives dipswitch (Bonus_Life) . Added much more information on the Dig Dug sets - Polygonet Commanders: Fixed rom names - Super Don Quix-ote: Fixed SN76496 clock speed - Superman: Slightly changed the C-Chip emulation (machine\cchip.c) for 'Superman' to behave in a similar way as other Taito games - Xevious: Fixed the conditional extra lives dipswitch (Bonus_Life) - CHDMAN improvements . Fixed toc parsing to allow spaces and quotes in file names . Supports "offset start length" track syntax that cdrdao creates if you don't read subcode . Tracks are always padded with zeros & not whatever data happens to follow . Moved cdrom_track_input_info out of src\lib\util\cdrom.h and into src\tools\chdcd.h . Added audio byte swapping support - Input port: Updated includes\taitoipt.h with macros for games with only 1 button. Converted the following drivers and added more documentation, fixing incorrect inputs and DIP switches along the way: taitoair.c, taito_h.c and taito_x.c - Dipswitches . Added DIP locations to aerofgt.c . Fixed the conditional extra lives dips in Dig Dug. Also added much more information on the digdug sets, thanks to some excellent work by stephh. . Dipswitch fixes in Psycho-Nics Oscar, taito_h.c and taito_x.c - Description changes of Space Guerrilla - MAME . Added new functions to the memory system to support CPU cores explicitly specifying the access mask on 32-bit and 64-bit data bus systems. This enables the MIPS core to handle SWL/SWR and SDL/SDR without a read/modify/write cycle. Updated the C and DRC MIPS cores to use this new mechanism. . Changed verinfo code to parse the version.c file instead of relying on linking against version.o. This appears to fix the link ordering problem and also prevents it from being constantly regenerated on each build. 0.118u3 - New Working games: Aladdin - New clones: IQ-Block (set 3, French?), Raiden Fighters (Italy) and Thayer's Quest (Alternate Set) - 8086 CPU: Changed core to use a 16-bit data bus. Updated affected drivers: gottlieb, leland, tx1, fantland and tetriunk. Cleaned up naming of CPUs (i86 -> i8086, etc.). - COP420 CPU: Added counter emulation. Hooked it up to Thayer's Quest - MIPS CPUs: Consolidated common code between drc and non-drc MIPS cores - V30 CPU: Changed NEC V30 CPU core to use a 16-bit data bus. Updated affected drivers: raiden, raiden2, m72, m90, m92, m107, segas32, hng64, deadang, dynduke, sengokmj, shanghai, lockon, tatsumi, fantland, twins, gunpey and ttchamp. Separated V-series disassembler from the i386 disassembler and updated it to use proper register and opcode terminology. - cps3.c: Added a fairly complete WD33C93 SCSI controller emulation - gottlieb.c: Replaced I8086 CPU with 8088 in all games - ninjaw.c: Fixed a couple of things which were wrong in the driver - statriv2.c: Added missing PROMs to all games - Amiga system (alg.c, arcadia.c, cubocd32.c, mquake.c and upscope.c) . Implemented the ECS-only BLTSIZV and BLTSIZH custom registers, and modified BLTSIZE and the blitter to use them . Properly implemented the bit in VPOSR that indicates if we're running on a PAL or NTSC Amiga . Fixed the PAL clock on the Pictomatic driver in alg.c - Aladdin: Improved the MCU simulation so now the game handles coins correctly. Fixed the inputs to match an arcade cabinet and added dipswitches according to the game M68000 code. - Chase H.Q.: Hooked up lamps - Dead Angle: Replaced V20 CPU with V30 - Fantasy Land: Replaced 2nd I8086 CPU with 8088 - Galaxy Gunners: Replaced I8086 CPUs with 8088 - Golden Axe 2: Replaced V20 CPU with V25 - Midnight Resistance: Added missing cpu1 rom to clone (bootleg with 68705) - Money Money: Fixed subtle regression from 0.36b10 - Operation Wolf: Improved the C-Chip emulation and its clones so it can now handle multiple coinage settings - Q*bert: Fixed input mapping - Super Free Kick: Removed 2nd Z80 CPU - Tetris (Unknown Manufacturer): Replaced I8086 CPU with 8088 - Zorton Brothers: Fixed 68000 clock speed - Input port . Added new AM_READ_PORT() macro which lets you define an input port read callback based on a port tag. This is now preferred over the previous technique of calling port_tag_to_handler() within an AM_READ() macro. Updated Astro Fighter, exidy.c, Grand Champion, Lock-On, MCR-3, Moonquake, namcos1.c, neodrvr.c, segag80r.c, segag80v.c, segald.c, Super Slam, Super Don Quix-ote, toaplan2.c, Tomahawk 777 and zaxxon.c that were using the latter pattern to the new system. . Cleaned up several Taito drivers (opwolf.c, othunder.c, topspeed.c, warriorb.c, wgp.c, rastan.c, rainbow.c and volfied.c) to use common input port macros. Fixed the Dip Switches for all games (a few still remain unknown though) and added many notes. - Dipswitch fixes in Aladdin, dacholer.c, m107.c, m90, m92.c, ninjaw.c, Rastan, Operation Thunderbolt, Operation Wolf, Rainbow Island, Top Speed, Volfied, warriorb.c and World Grand Prix - MAME . Changed MDRV_VBLANK_DURATION macro to accept subseconds directly instead of converting from double. Added new macro USEC_TO_SUBSECONDS to assist in this. Converted all drivers over to using it. . Improved/fixed validation of memory maps to match current logic in memory.c. Fixed a few problems that were identified this way. Also removed construct_map_0 and isolated map construction to a single function. . Added 16-bit handlers to a number of the shared PC components . Added build tool (windows\verinfo.c) to extract version information and add it to the Windows version resource . Fixed F8 CPU core to not clobbert the irq_callback on a reset 0.118u2 - NOTE: If you are experiencing sound stuttering due to not being able to run your display at >60Hz, please give the -speed option a try. You should be able to run MAME at a small emulation speed decrease in order to get the game under your monitor's refresh rate. - New games: El Grande and Trivia ? Whiz (Edition 3 - Vertical) - New Non-Working games: Big Apple Games and Thayer's Quest - New clones: Kickman (upright) - New drivers: thayers.c - TMS5220 sound: Further improvements to the emulation and more unification with the TMS5110 core - bfm_sc2.c: Changed default layouts in BFM games to hide VFD by default since it is not visible - asuka.c, exzisus.c and ninjaw.c: Cleaned up Taito drivers to use common defines for common input ports across drivers - naughtyb.c: Fixed Z80 clock speed in Naughty Boy, Pop Flamer, Trivia Genius and Trivia Master - nemesis.c: Fixed recently introduced regression in the video driver - Boogie Wings: Fixed DECO16 tilemap drawing, this fixes the broken Data East logo on the attract mode and the background in the Transporter stage (boogwing0118yel) - El Grande: Constructed a new memory map for this game. Reworked a whole set of inputs for this game. Patched some bad bits in GFX rom d1.u68 till a good dump appear. Updated technical notes. - Mahjong Gakuen: Fixed green screen on startup and MAME gets frozen (mgakuen0106u1red) - Pole Position/2: Removed redundant hard-coded definitions for pedals - Raiden: Merged memory maps - Raiden 2: Cleaned up the COP emulation code - Starblade: Fixed MACHINE_RESET in the Namco System 21 driver, this fixes MAME crashes when you reset (starblad0113u3red) - Trivia Genius . Fixed clock speed and colors . Added missing gfx2 rom and palette proms - Dipswitch fixes in American Speedway, asuka.c, Bomb Jack, Exzisus and ninjaw.c - MESS: Fixed HP Saturn CPU core disassembler - MAME . Added new experimental control for overall emulation speed. This lets you specify how fast/slow the gameplay should happen relative to the original. -speed 1.0 means run at normal speed. -speed 2.0 means run at 2x speed. -speed 0.5 means run at half speed. Note that the sound pitch is shifted as a result. If you are running early Namco games that normally run at 60.60Hz, you can run them at -speed 0.99 and it should run at under 60Hz, which should prevent sound stuttering if your monitor is not capable of greater than 60Hz refresh rates. If this turns out to be useful, future versions may support a -speed refresh parameter that automatically tweaks the speed to keep you under your monitor's refresh rate. . Changed INI parsing to look for source file INIs in /source first. This is to disambiguate INIs where the game name matches the source filename. If the INI file is not found in /source, then it is looked for in the as before. . Improved fixes to the chdman CD creating code - Debugger: Fixed disassembly of V30 bit instructions 0.118u1 - New Non-Working games: Mahjong Almond Pinky [BET] (Japan) - New clones: Jack Potten's Poker (bootleg2) - Tilemap . Significantly revamped the tilemap rendering code . There are now only two tilemap types, based on whether or not you want transparency based on pen or color. All existing tilemap effects are built on top of these two modes. . The internal tilemap handling code has been reorganized and simplified in a number of cases. For most games, this change is transparent, apart from the change in tilemap type values. . Several concepts within the tilemap system now have different terminology for clarity and to remove some ambiguous naming ('priority', for example, was overloaded). . A small tutorial and better documentation is now present at the top of tilemap.h and provides more details of the changes. . A set of regression tests have already been done - ARM7 CPU . Fixed behavior when R15 is the source of a MOV . Fixed flags calc for ADC/SBC . Fixed flags calc for NEG . Fixed flags calc for CMP . Fixed time running backwards on Thumb instructions . Fixed some ARM instructions doing indiscriminate change_pc()s - COP4xx CPU . Fixed two minor bugs in the COP410/420 CPU disassembler . Hooked up the internal 64 bytes of DATA RAM to the core - M6803 CPU: Added missing port 3/4 to the core - MSM6242 RTC . Added support for 12/24 hour mode . Added support for the HOLD bit - galaxian.c . 100% verified dipswitches for all sets . Added long notes for all sets - mpu4.c + bfcobra.c: Changed 6850ACIA to use MSB/LSB read handlers - Boogie Wings: Fixed DECO16 tilemap drawing, this fixes the broken Data East logo on the attract mode and the background in the Transporter stage (boogwing0118yel) - D. D. Crew: Fixed rom names - The Karate Tournament: Fixed some little green (bad) square tiles can be seen when the background tilemap scrolls in the first level (ID 00528). - Moon Cresta . Fixed GFX ROMS loading in clone Space Dragon (Moon Cresta bootleg, set 2) . Fixed dipswitches in clone Moon Cresta (bootleg set 3), Super Moon Cresta and Space Dragon - MAME: Fixed divide-by-zero when running with -video none in some cases - HD/CD images . Fixed chdman_open() "w" to always create/truncate the file, leaving "r+" to try opening first and then truncating. This matches behavior in the core. . Fixed converting CD's containing audio that were ripped by cdrdao, which was broken recently. The code is cleaner and more maintainable now. - Debugger . Added support for reading/writing memory without translation . Fixed behavior of auto_realloc() so that it always reallocs from its original pool 0.118 - New Non-Working games: Dancing Stage Euro Mix 2 (G*C23 VER. EAA) - New clones: Maximum Force (No Gore version) - HD6309 CPU: Fixed a number of issues in the core - TMS5220 sound: Modularized the code - bfm_sc2.c + mpu4.c . Sync with AGEMAME . Removed the 'lamps.c' module from the source tree . Cleaned up names in the BFM BD1 driver . Moved VFD drawing functions out of the video update . Overhauled the sound system in the MPU4 driver - nemesis.c: Simplified the Nemesis video driver code - tecmo16.c . Added DIP locations to the driver . Fixed 'Difficulty' dipswitch in Final Star Force - stv.c: Fixed macros in stvcd.c to work with C89 compilers - Blade Master: Fixed rom names - Final Godori: Added missing gfx1 roms - Fire Barrel: Fixed rom names - R-Type: Fixed issues with recent R-Type ROMset (Fixed gfx1 roms length and prom loading in clone (US)) - Dipswitch fixes in mpu4.c and tecmo16.c - MAME . Changed INI parsing so that mame.ini is parsed twice, picking up changes to the inipath . Fixed bug in options handling introduced with recent changes . Changed Windows builds so that all tools use the utf8_main entry point consistently - Compiling . Fixed macros in stvcd.c to work with C89 compilers . Fixed some more 64-bit warnings and unused functions 0.117u3 - New Working games: Connect 4 - New Non-Working games: 3x Astron Belt/Cobra Command and 3x Galaxy Ranger/Star Blazer - New clones: Cross Blades! (Japan), Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA), Dig Dug (Sidam bootleg) and Shadow Force (Japan Version 2) - Removed games: Gouketsuji Ichizoku (Japan, bootleg) - New drivers: segald.c - Support for preliminary Sega laserdisc game driver. TODO: Get LDV1000 games past the strange, pseudo-attract mode! Implement ldv1000's unknown/undocumented command 0xf2. Confirm DIPs do what's expected. Also, is Joystick_down really Joystick_up? Correct IC names/positions for the ROMs - Astron Belt schematics have conflicting data. Add SEGA/Hitachi VIP9500SG laserdisc player to MAME core & fix all non ldv1000 games to use it. Write Sprite drawing code. Hook up character map color PROM. Confirm palette code (inferred from Daphne source) once its actually used. Hook up OUT writes. Add samples. Confirm banking works. Character decoding may combine the lower 0x0800 with the upper 0x0800. - bfm_sc2.c + mpu4.c . Added built-in support for 14-segment and 16-segment LEDs with comma/period additions . Split vacfdisp into component specific drivers . The system now supports the Rockwell 10937 (aka MSC1937) and 10957, as well as the BD1 . All relevant drivers have been updated with the new code, and new layouts have been prepared. . Added RC Filter sound to the mpu4.c games - konamigx.c: Fixed BIOS running on its own do what it should: Display a scrolling marquee telling the operator to attach a ROM board. - ksys573.c . Added some basic CDROM switching to the system 573 driver . Hooked it up for 'Dance Dance Revolution Best of Cool Dancers' to work and the Club versions . Added DIP locations. Moved fake switches to the configuration menu. - naomi.c . Added some more setup code for the driver (machine\dc.c, video\dc.c and includes\dc.h) . Fixes ARM7 clock speed - Frenzy: Added correct address decoder/rom select prom - Head On: Removed discrete0_0.csv file, which was created when playing (headon0117u2ora) - Mouse Trap: Fixed samples playing speed (mtrap0117u2ora) - R-Type: Added new gfx1 roms and proms to clone (US) - Tournament Table: Added an optional vsync callback to the TIA emulation to allow a driver to dynamically change the screen configuration - Two Minute Drill: Added preliminary video hardware emulation and YM2610 sound support - UI/OSD (game selection): Fixed parent/clones list (NewUI0117u2ora) - Input port . Removed underscores from some keycode token names. Thus, KEYCODE_0_PAD now becomes KEYCODE_0PAD. This is to prevent confusion when parsing multiple keyboard items. Due to this change, also removed imperfect backward compatibility with older configs; some mappings will still work, but some won't. Note that this change will also break some existing ctrlr files. You will need updated ctrlr files if you currently rely on the ctrlr support. They will be included with the next binary release, but until then, you can grab them here (http://mamedev.org/newctrlr.zip). . Fixed remapping inputs with num pad keys are not correctly loaded from the cfg file (numpadremap0117u2gra) - Dipswitch fixes in ksys573.c and powerins.c - MAME . Added new tool src2html which is used to convert the MAME source tree to HTML format with linked include files and color coded keywords and comments . Did some cleanup of the tilemap interfaces. Changed tilemap type constants to be an enum prefixed by TILEMAP_TYPE_* instead of simply TILEMAP_*. Removed unused members from the tile_info structure. . Converted the memory pool code to a more generic resource pool. Changed internal MAME tracking of timers and save state registrations over to using the new system. . Fixed -rompath for -verifyroms (verifyroms0117u2ora) . Fixed input when moving from MAME to another window (joystick0117u2gra) - Compiling . Separated build tools from general tools. Build tools are now located in the build/ subdirectory. . Cleaned up redundant function names . Fixed a few more 64-bit build errors - Debugger . Added new debugger commands for hardreset and softreset . Added new general library module astring.c, which supports allocated strings of arbitrary length and a number of basic functions on them. . Replaced assemble_x_strings() functions with the astring equivalents. Updated code in several places to use astrings where appropriate. . Changed CreateWindowEx() call to be win_create_window_ex_utf8(), removing the need for a string conversion. 0.117u2 - New games: King Pin and King Pin Multi-Game - New drivers: kingpin.c - HD6309 CPU: Fixed dissaembly of the post-byte for W++ and --W - 6532 RIOT: Updated the 6532 riot interface to be more like the 6522via and 6821pia interfaces - SH-4 CPU (Sega NAOMI) . Fixes some problems in the disassembly and instruction execution from the previous patch . Adds interrupt management . Implements register bank switching . Adds RTC timer counters . Adds memory refresh timer . Adds three timers of the TMU . Adds a configuration structure that specifies the processor mode pin settings . Internal processor clock frequencies calculated from mode pins and cpu clock . Systems using the sh4 processor secify its configuration structure - mcr.c . Fixed incorrect implementation of SSIO volume controls in the MCR driver (mcr0103u3yel). This makes the engine sound in Spy Hunter audible again, fixed missing sounds in the bonus round of Tapper (tapper0102gre2), fixed sound after you complete a stage in Timber (timber0100u3gre) and other things. . Fixed sprite drawing in Tapper (tapper0102gre1) and Timber (timber099gre) - Blood Warrior: Fixed button 4 of player 2 inputs - Discs of Tron: Fixed input in clone (Environmental) (dotrone0101u5yel) - Gaming Draw Poker . Cleaned up the inputs . Changed the hold buttons to "discard" since they are in fact discard buttons . Updated technical notes - Imola Grand Prix . Changed description from 'Monza GP' (monzagp) to 'Imola Grand Prix' (imolagp) . The LEDs are fully mapped . Fixes for blitter modes, that affect the "tunnel" area . Dipswitch/port fixes. Game now starts in attract mode, rather than immediately starting. . Placeholder (handpicked) colors . Fixed Z80 CPU1/2 clock speeds - Jackie Chan: Fixed YMZ280B clock speed - Rampart: Added gal16v8-136082 plds and fixed rom names - Tournament Table / TIA video . Fixed some minor missile graphics positioning issues . Moved some initialization code from tia_init to tia_reset - Wolf Pack: Connected S14001A speech to the driver - UI/OSD (game selection) . Changed menu rendering a bit: Added a background hilight to more strongly emphasize the current item. Added rendered arrows to indicate more items on the top/bottom and to indicate selection options in the DIP switch menus. Changed hilighting to be a bit less garish. Fixed repeat rates on keys to no longer be tied to the framerate. . Disabled the tab key . Added hook for general input configuration from the menu . Split set names from friendly names into left/right columns . Added a background to the descriptive names of clones . If you start with the game selection menu, hitting Esc to exit a game brings you back to the menu rather than quitting immediately. . Fixed missing num pad input (newinterface0117u1gra) . Fixed logic so that INI files are reloaded for each game . Added support for page up/page down generically in menus. Also made pause toggle work while menus are visible. - Input port . Fixed mouse cursor is visible in fullscreen mode (mouse0117u1gra) . Fixed raw input-based lightgun buttons . Fixed axes remapping problem (joystickremap0117u1gra) . Fixed crtlr file loading (mallocerror0117u1gra) - Dipswitch fixes in Air Inferno, Imola Grand Prix, Little Robin and Top Landing - Timing system (emu\timer.c): Fixed F8 and SC61860 CPU core and pckeybrd.c (PC-style keyboard emulation) to work with new timing code - Artwork . Added support for 14- and 16-segment LED displays to the MAME artwork system . Changed render_textures to allocate in a pool model, to avoid high memory overhead when allocating large numbers of textures (for example in the 14- and 16-segment LED displays) - MAME . Moved INI file handling fully into the core. As a side-effect of this change, .ini is no longer parsed. Changed -createconfig to always output mame.ini instead of .ini as a result. . Cleaned up options.c code. Added priority levels to options as they are set. New options are only accepted if they have greater or equal priority to a previous change. Added new function options_revert() to revert options below a given priority to their defaults. Changed options_get_string() so that it always returns a valid string (never NULL). Invalid strings are returned as empty strings. . Added support back for the "none" option for the various *_device options . Improved -listxml output to reflect new BIOS flag. New attribute isbios="yes" indicates that a given game is a BIOS. - Compiling . Fixed a few errors related to headers in the source code. Added missing self-includes, removed dead prototypes, and added location comments in headers in mame\includes. In a few cases the audit showed items that didn't need to be exported so they were made static. . Made some minor code quality changes across the code: Avoided exporting a few global variables. Fixed variable names that conflicted with typedef names. Removed some shadow variables that were bugs or unnecessary. Removed extraneous #defines. . Added new functions core_filename_extract_base() and core_filename_ends_with() to corefile.h . Renamed run_game() to mame_execute(). The game driver is no longer specified as a parameter; rather, this information is extracted from the options via OPTION_GAMENAME. . Fixed a number of 64-bit compiler warnings 0.117u1 - NOTE: The first major change in this release is the input system. The way that the OS-specific layer communicates with the core about input devices has changed substantially, allowing a lot of the tricky functionality to be handled automatically by the core code. For the Windows build specifically, this marks a shift in behavior: on Windows XP and later, both keyboard and mouse now use the raw input APIs, which allow support for multiple keyboards and mice. A second big change is an experimental one. A new built-in user interface is provided for selecting a game. This interface is intended to be minimal and will not serve to replace a true frontend. However, it does provide a better first experience for those unfamiliar with MAME and is useful for launching a game when you can't remember the exact driver name. Make sure you test things out and report any strangeness over at MAME Testers. - New Working games: Monza GP and Sliver - New Non-Working games: Balloon & Balloon and 2x Gals Panic (EXPRO-02 PCB) - New clones: Battle Garegga - Type 2 (Europe / USA / Japan / Asia) (Sat Mar 2 1996) and 2x Space Dragon (Moon Cresta bootleg) - New drivers: expro02.c, ghosteo.c and sandscrp.c - New BIOS files: Added Multi Amenity Cassette System 2 BIOS (I'Max 1995) - V30 CPU: Added more opcode decryption to Gussun Oyoyo (Risky Challenge clone) - Discrete sound: Added two inverter oscillators supporting enable and mixing in signals to discrete.h / disc_wav.c - KANEKO PANDORA . Fixed some problems in the Pandora emulation which improves the sprites in Djboy . Moved Sand Scorpion and Gals Panic over to use the Pandora emulation - CD-ROM/Hard Disk: Fixed crash in CHD code if reading beyond the end of the file - Timer system . Added new function timer_call_after_resynch(), which effectively sets a zero-duration timer for resynchronization. Replaced instances of zero-duration timers in the code with this more descriptive call. . Defined new macro TIMER_CALLBACK, which should be used to wrap timer callbacks. Added a running_machine * parameter to timer callbacks. Updated all existing timer callbacks to use the new macro. - neodrvr.c . BIOS only driver 'neogeo' no longer crashes . Cleaned up memory banking code to use memory_set_bank() instead of memory_set_bank_ptr() . Fixed LEDs - toaplan2.c . Fixed sound CPU communications in the Raizing games. This is educated guesswork, but it's more complete and probably more correct than what was there before, and doesn't rely on excessive use of cpu_yield(). . Added more information about the Raizing sets to the comments in the driver, and correct some errors. . Fixed battleg0113u4red and battleg0116u1ora - vicdual.c: Added discrete sound to Head On and clones Space Attack / Head On, Head On 2 and Invinco / Head On 2 - Batrider: Fixed crash (batrider0114red) (ID 00914) - Battle Garegga: Reorganized the Battle Garegga sets in a more sensible fashion - Break Thru: Fixed Upright/Cocktail mode (brkthru091u1gra) - Burger Time (Cassette): Fixed input port typo (cbtime0117red) - Change Lanes: Fixed a few bugs in the video emulation - DJ Boy: Improved sprites emulation - Kamikaze: Astro Invader is now a clone of Kamikaze (Leijac Corporation 1979) - Monza GP . Updated the driver into a somewhat playable state . There are still some graphics problems . LEDs still need to be hooked up for score/time-remaining display . Fixed Z80 CPU1/2 clock speeds, raster orientation, palettesize and visible area. Fixed cpu2 rom loading. - Sliver: Added fake rom with decompressed images. Changed region gfx1/2 to user1/2 and visible area. - Truxton 2: Replaced byteswapped M68K program ROM with correct one - Dipswitch fixes in Monza GP and Sliver - Description changes of "Circus / Acrobat TV", "Cluster Buster / Graplop", "Missile X / Guided Missile", "Rootin' Tootin' / La-Pa-Pa (Cassette)", "Space Invaders / Space Invaders M" and "Tornado Baseball / Ball Park" - MAME . Added experimental new minimal game selection user interface. This interface can be accessed if MAME is started with no parameters, or via the main menu by choosing "Select a New Game". This interface allows you to select a game driver by typing in the name of the game. As you type, MAME's fuzzy name matching code will list the top 15 selections that match. The interface will only display games that it finds in your rompath. . Added "empty" driver which is used to host the game selection screen when no valid game is selected . Changed behavior in the Windows build so that double-clicking on MAME brings up the new game selection interface . Added new routines mame_openpath(), mame_readpath(), and mame_closepath() for iterating over all files in a path specification, including support for multiple paths. . Changed driver_get_approx_matches() and driver_get_count() APIs to work on arbitrary driver lists rather than being hard-coded to the static driver list. Renamed the functions from driver_get_* to driver_list_get_*. . Added support for frame update callbacks, similar to pause and exit callbacks but called at the same time as osd_update(). . Changed osd_init() to no longer return a value. OSD initialization should now rely on fatalerror() to report fatal initialization problems. . Added new function mame_schedule_new_driver() which allows for a new driver to be queued after a hard reset . Removed the NOT_A_DRIVER flag which was overloaded to mean two different things. There are now two new flags: GAME_IS_BIOS_ROOT indicates that a particular driver represents a BIOS rather than a full game. And GAME_NO_STANDALONE indicates that the given driver should not be listed or permitted to execute on its own. For MAME, most BIOSes are executable on their own, so they have the GAME_IS_BIOS_ROOT flag set but not the GAME_NO_STANDALONE flag. . Fixed bug in screenless systems . Changed audit interfaces to take a game_driver * instead of a game index . Other MAMETesters Bugs fixed: debbuger+psx_0117ora, hotpinbl0117gra - Input port: Reworked input system to push more features into the core. Cleaned up architecture to properly separate dependencies. Please note that this change only addresses the lower layer of input handling. The upper layer (i.e., input port handling at the driver layer) remains the same. * Removed the concept of os_code from the system. Now all codes are defined via a set of macros in input.h. Each code is a 32-bit value that encodes a device class, device index, item class, item modifier, and item ID. * Removed OSD functions osd_get_code_list() and osd_get_code_value(). Instead, the OSD layer during osd_init() must register one or more devices and the input items attached to each device via two new functions input_device_add() and input_device_item_add(). * Separated input sequence code into new module inputseq.c * Moved support for the following options into the core: -mouse, -joystick, -lightgun, -steadykey, -offscreen_reload, -joy_deadzone, -joy_saturation, -paddle_device, -adstick_device, -pedal_device, -dial_device, -trackball_device, -lightgun_device, -positional_device, -mouse_device. The OSD layer should simply register all devices at osd_init() time and allow the core to enable/disable them according to the options. * Added two new options: -multikeyboard and -multimouse. By default, both options are OFF. When OFF, the core will combine all keyboard or mouse input into a single keyboard or mouse device. When ON, these options instruct the core to keep inputs for each keyboard and/or mouse independent. * Added new option: -joystick_map. This option allows for a 9x9 grid to be specified which controls analog-to-digital mapping of joystick inputs. * Changed the Windows implementation of input handling to fully support the raw input interfaces for keyboard and mouse. DirectInput is still used for all joystick inputs, as well as for keyboard and mouse inputs on pre-Windows XP systems. This allows for multiple keyboards and mice to be supported. Also changed keyboard and mouse behavior to use non-exclusive mode in DirectInput, and to keep the devices alive during pause for more consistent input handling. * Broke windows.txt into config.txt, which contains all common core-supported options and commmands, and windows.txt, which now only lists Windows-specific additions. 0.117 - NOTE: This release marks the first time we have preliminary (read: not working yet) support for a bootleg arcade multigame system - based on an earlier hacked up version of MAME. In our attempts to document arcade history it seems we have inadvertently become a part of arcade history. - New Working games: Taisen Hot Gimmick 4 Ever - New Non-Working games: 39 in 1 MAME bootleg, Guitar Freaks 6th Mix (G*B06 VER. JAA), Guitar Freaks 11th Mix (G*D39 VER. JAA) and Super Pool (Italy) - New clones: Golden Poker (no double up) and Photo Finish - New drivers: 39in1.c - 68000 CPU: Fixed ROL opcode - V30 CPU: Reduced a few more IREM D80000 opcodes for Gussun Oyoyo (Risky Challenge clone). The game now boots and you can coin up. Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - CAGE sound: Fixed CAGE sound (primrage0116u3yel). This fixes incorrect sound in Primal Rage, specifically the music and voices. - 6526 CIA: Reverted patch to the 6526CIA as it was causing issues with Amiga/Arcadia emulation - 6532 RIOT: Changed the 6532riot code to split r6532_init into r6532_init and r6532_reset - KANEKO PANDORA: Moved "Pandora" sprite chip implementation to its own file (video\kan_pand.c + kan_panb.c). Updated Snow Bros, Air Buster, DJ Boy and Heavy Unit to use ths new generic implementation. - TMS9928 video: Simplified code. Affected drivers are cliffhgr.c and sg1000a.c - bzone.c: Added save state support to Battle Zone, Bradley Trainer and Red Baron - cps3.c . Added alpha blending effects to the driver and improved sprite positioning . Fixed CPS3 code to be big-endian friendly - vegas.c: Fixed a crash in Gauntlet Legends and Gauntlet Dark Legacy (gauntleg0116u4red) - Chinese Hero: Fixed clone (Taito) - DJ Boy: Fixed gfx1/2 rom loading - Leprechaun: Fixed missing sound - Super Eagle Shot: Fixed potential crash - Taisen Hot Gimmick 4 Ever: Added the missing cpu1/gfx1/sound2 roms - Terminator 2: Fixed bonus points added (or subtracted) for each category at the ending of each level (term2_0116u1yel) - Tetris Plus 2 (World?): Fixed mame_rand() problem (black screen - tetrisp2_0116u4red) - Dipswitch fixes in psikyo4.c - Regression fixes in audio\exidy.c, psikyo4.c, segae.c, tatsumi.c and Varia Metal - MAME . Improved accuracy of mame_timer_scale_up . Fixed some bugs involving empty or null ROM regions . Rotated the mame_rand() results by 16 bits to reduce periodicity of the resuls . Fixed winalloc.c to be thread-safe . Other MAMETesters Bugs fixed: debuggerandmt_0116u2red, memleak0116u4ora and vlm5030_0116u4gre - Compiling: Cleaned up tiny MAME target 0.116u4 - New Working games: Change Lanes and DJ Boy - New Non-Working games: Final Godori - New clones: B.Rap Boys (World), JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan, 2x JoJo's Venture / JoJo no Kimyouna Bouken, 2x Red Earth, 2x Street Fighter III: New Generation, 2x Street Fighter III 2nd Impact: Giant Attack and 2x Street Fighter III 3rd Strike: Fight for the Future - Removed games: Gals Panic (set 3) - Minx CPU (Nintendo): Fixed TEST (94,95,96, and 97) instructions. Fixed 2 MOV instructions (BE and BF). Fixed one AND instruction (DC). - V30 CPU: Found a number of additional encrypted opcodes for Gussun Oyoyo (Risky Challenge clone) - Z80GB CPU (GameBoy): Simplified interrupt handling in the core - 6532 RIOT . Improved timer implementation . Implemented irq callback support - RC filter: Fixed behavior of the RC filter in Double Dribble and Iron Horse - 8080bw.c . Hooked up P1 joystick inputs for P2 in Upright mode in a number of black & white 8080 games . Removed cocktail settings for games where it is not appropriate - cps3.c . Correct clock speed, used idle skipping instead of reducing the clock speed . Optimized some GFX functions. It now only decodes RAM based tiles when it needs to draw them, not every single time the data changes. . Added support for CD flashing . Added support for alternate BIOS sets . Changed code to use a custom render function - gaelco3d.c: Improved frameskip behavior in the driver - kinst.c: Fixed timer_set in the MIPS core and driver (kinst0116u3gra) - lethalj.c: Fixed crash in Crazzy Clownz and Chicken Farm due to out-of-bounds parameter - m62.c: Improved color decoding in the driver - m92.c: Added wrap around x for sprites in the driver - mpu4.c . Synchronized MAME and AGEMAME versions of the MPU4 code . Simplified much of the code . Improved Connect4 layout - pgm.c: Fixed missing sound in the games - system1.c: Changed driver to use the SN76489A variant - After Burner II: Hooked up lamps - Change Lanes . Fixed the road graphics . Fixed the rest of the missing gfx . Added collision detection . Fixed colors . Added save states - DJ Boy . Support for DJ Boy (Japan); same MCU, but ROM banking bits need to be XOR'd . Fixed state handling for game over/win transitions . Fixes for dipswitches . Added coinage support - Evil Night: Fixed crash due to missing CD image - Gals Panic: Changed description of clone 'Gals Panic (set 2)' to 'Gals Panic (MCU Protected)' - Liberator: Fixed clock speed of the 2x POKEY sound - Millipede . Fixed 2nd player inputs . Fixed sprites in cocktail mode - Shogun Warriors: Removed gfx2 roms ($200000, 300000) - Space Laser: Enabled dual player game - Tournament Table . Some more TIA graphics and sound improvements . INPT4 and INPT5 are now read when needed instead of by a timed function. This removes the need for the tia_init_pal function. . Improved handling of the HMOVE functionality . Added code to reduce the flickering caused by some Atari 2600 games . Improved the sound poly generation . Improved the handling of POLY5_DIV3 sound mode . Fixed palettesize - Dipswitch fixes in DJ Boy and Space Laser - Regression fixes in Donkey Kong Junior, Gee Bee, gticlub.c, maxaflex.c, megadriv.c, Monza GP, Pest Place (Mario Bros. clone), Space Raider, Tetris (Unknown Manufacturer) and Warp Warp - CD-ROM/Hard Disk . Added stricter checking in cdrom.c to prevent crashes in games when no CD-ROM is present . Added support to CHDMAN to cope with toc files created with cue2toc - MAME . Fixed a few places where driver code was not properly hooked up. Most cases were benign, but in a couple of instances, save state support was disconnected, and in one case it fixes a potential crash. . Changed all drivers to use the mame_timer_* calls. Deprecated the old double-based timer calls. . Changes the last few instances of rand() to mame_rand() and added a #define to prevent it from being used again. . Made many of the static info_list*() functions in clifront.c public . Simplified the internal handling of BIOS sets. Instead of there being an extra structure, the BIOS information is now embedded in the ROM definition for each BIOS. - Compiling . x64 compilation fixes: Some VS2005 x64 warning fixes. Enables the x64 porting warnings in VS2005. Adds win_create_window_ex_utf8() to get rid of some tstring_from_utf8() usage. Removed win_extract_icon_utf8(). . Fixed SUBTARGET=tiny builds 0.116u3 - New games: DaiDaiKakumei (Japan) and Radar Scope (TRS01) - New Working games: All CPS3 games (JoJo's Venture, JoJo's Bizarre Adventure, Street Fighter III, Street Fighter III 2nd Impact, Street Fighter III 3rd Strike and Warzard) - New Non-Working games: Aladdin (bootleg of Japanese Megadrive version) - New clones: Car 2 (bootleg of Head On 2), Crouching Tiger Hidden Dragon 2003 Super Plus alternate, 2x Missile Combat (Videotron bootleg), Pop Flamer (bootleg on Naughty Boy PCB) and The Tin Star (set 2) - New drivers: aladbl.c - V30 CPU: Populated several more Irem CPU opcodes for Gussun Oyoyo (Risky Challenge clone) - FM sound: Updated FM emulator to use mame_time instead of double - RC Filter . Extended the flt_rc filter to support highpass filtering. Fixed the lowpass filter to actually do a lowpass filter. Hooked up the filter to King & Balloon and updated several other drivers to the new interface. Affected drivers are circusc.c, ddrible.c, galaxian.c, ironhors.c, junofrst.c, megazone.c and tp84.c - aleck64.c/N64: Fixed type in BLENDER2_32 function in the video code - cps3.c . Various CPS3 updates . Simplified CPS3 decryption function . Fixed CPS3 code to work on big-endian systems . Fixed SH-2 CPU1 clock speed - dkong.c . Better colors in Donkey Kong (new resistor network interface for computing palettes) . Added sprite ram bank switching from schematics . Combined memory maps . First attempts on decoding m58815 . radarsc1 driver for radarscope trs01 hardware . All drivers use VIDEO_RAW now . Fixed cocktail issues (dkongcocktail0116u1yel) . Combined IO and sound memory maps . Implemented background handling (disable prom /CS line) in all dkong drivers . Fixed proms loading in Donkey Kong 3 . Changed VSync to 60.606061 Hz in all games - neodrvr.c: Removed old NeoGeo hack from FM code as it appears to no longer be necessary. - Aladdin: It probably works, start is shift (start on Megadrive pad), but the credit system isn't emulated properly yet, it's probably what the MCU on the board is for. - DJ Boy . Updated driver to almost fully playable state . You must manually reset (F3) after booting up to proceed. There's likely an unemulated hardware watchdog. . Fixed OKI6295 clock speeds and dipswitches - Dynablaster: Fixed crashes in clone Dynablaster (bootleg) - Driver's Eyes: Fixed crashes - King & Balloon: Hooked up the new RC filter to King & Balloon - Risky Challenge: Populated several more Irem CPU opcodes for clone Gussun Oyoyo - Input port . Temporarily reverted input code back to 0.116 baseline pending deeper analysis and upcoming core changes to simplify the OSD layer for input management. . Fixed code_to_token() to prevent potential buffer overflows - Screenshot: Fixed potential double free in PNG code - MAME . Changed all CPU cores' internal timers to the mame_timer* functions as well as the remaining couple of core files that still used timer_alloc(). After this, none of the emu\* files have any old style timing code left. . Updated all sound cores to use mame_time instead of double . General driver cleanups: Changed some more global 'Machine' to local 'machine'. Standardized on the function name 'draw_sprites'. Removed some antiquated boilerplate comments. . Changed a number of stderr fprintf's in the Windows OSD code to mame_printf_error and mame_printf_warning calls, as appropriate. . Created a new resistor network interface for computing palettes from color PROMs and component values on the PCB. Fixed several issues with the previous implementation. Affected drivers are astrocde.c, bagman.c, ccastles.c, cloud9.c, dkong.c, foodf.c, grchamp.c, mappy.c, naughtyb.c, neogeo.c, pacman.c, segag80r.c, segahang.c, segaorun.c, segas16b.c, segas18.c, segaxbd.c, segaybd.c, spacefb.c, zaxxon.c, system16.c, tubep.c, turbo.c and williams.c. - Compiling . Added support in the main makefile for profiling. Set PROFILE=1 to turn this on. . Fixed warnings generated by newer GCC compilers 0.116u2 - NOTE: Those of you who regularly build their own MAME binaries on Windows will want to head over to the Development Tools page (http://mamedev.org/tools) and follow the directions there to grab the latest set of tools. This set of tools contains the latest officially released MinGW (http://www.mingw.org/) toolset, along with a set of patched files that fixes the problems they have been having under Vista. This means that you can now build MAME on a Vista machine just like on any other machine - no more hacks required (in fact, if you have the existing workarounds enabled, you need to remove them; in particular the GCC_EXEC_PREFIX environment variable should be eliminated). A side effect of this upgrade is that the official base compiler for the Windows builds is now GCC 3.4.5 instead of 3.4.2. This isn't a big change, but it is worth noting. Hopefully the MinGW folks will eventually get around to releasing a 4.x build of GCC sometime in the not-too-distant future, but I'm not holding my breath. A toolchain that supports 64-bit compilation under Windows would also be nice, but let's not get carried away here. Finally, the pre-packaged toolset now contains the SDL (http://www.libsdl.org/) headers and libraries, so you can build SDLMAME (http://rbelmont.mameworld.info/?page_id=163) for Windows out of the box. - New Non-Working games: Mini Boy 7 - New clones: JoJo's Venture / JoJo no Kimyouna Bouken (Japan, 990108) and Punch-Out!! (Italian bootleg) - New drivers: miniboy7.c - M6809 CPU: Fixed minor cycle timing issue - V30 CPU: Fixed a couple more IREM D80000 opcodes to improve Match It 2. Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - SN76489 sound: Updated the following games to correctly use the SN76489 instead of the SN76496, which was a later design: appoooh, bankp, chameleo, chboxing, chwrestl, combh, dokidoki, homedata.c, lasso, mjkjidai, robowres, sbugger, sprcros2, sraider, tp84 and wwjgtin. - cps3.c . Decryption and booting of Capcom's CPS-III games . Initial cut at working CPS3 driver. Basically works but has a lot more work to be done to finish it up. . Fixed SH-2 CPU1 clock speed and added Custom sound . Fixed visible area and added 'Unknown' dipswitches - dooyong.c . Cleaned up driver . Consolidated and streamlined tilemap callbacks . Took better advantage of MAME's tilemap caching by building larger tilemaps so they don't need to be invalidated as often. . Interpreted sprite Y position as signed 9-bit value in rshark/superx (fixes some glitches) . Added more explanatory comments to help others reading the code . Fixed imperfect graphics in Blue Hawk, Gulf Storm, The Last Day, R-Shark and Super-X (NTC) . Added save state support - neodrvr.c . Fixed several regressions from previous update . Added LED outputs . Improved smaller visible area configuration . Fixed some incorrect information in the Neo Geo ROMsets . Fixed missing sounds and music in all ADK / Alpha Denshi games (adk0116yel) . Fixed crashes in svcpcb, ms5pcb and kf2k3pcb (neodrvr0116u1red) - segaorun.c, segas16b.c and segaxbd.c: Fixed visible area - Gomoku: Fixed regressions - Gridlee: Fixed regressions - Match It 2: More IREM CPU improvements - Metal Slug 4: Added new cpu2 and user3 roms - Rage of the Dragons: Added new cpu2 and user3 roms - Street Hoop: Fixed reset problem (strhoop0116u1red) - Thunder Cross: Fixed collision detection bug - Wonder Boy III: Fixed foreground/background gfx (wb3_0116u1gre). Same problems for Golden Axe, Aurail and probably more games. - Description changes of Cannon Ball (Yun Sung), SNK vs. CAPCOM SVC CHAOS and SNK vs. CAPCOM SVC CHAOS - MAME . Integrated platform-specific changes into the core makefile, mostly taken from the SDLMAME makefile. Changed the MAMEOS configuration variable to OSD, indicating which OSD layer is being compiled. Added a new configuration variable TARGETOS which specifies the target OS platform. . Cleaned up the exports from a number of drivers, adding static qualifiers to functions and variables t hat don't need to be exported and have generic sounding names. . Changed a number of MAME timer objects from void * to mame_timer * . Updated numerous drivers to remove the use of global Machine wherever possible. Also reviewed the clipping regions and made changes to ensure the passed-in cliprect was honored. . Fixed some unicode build issues in the Windows code 0.116u1 - New Working games: Match It II - HD6309 CPU: Fixed N flag setting in DIV overflow - SH-4 CPU (Sega NAOMI) . Correct opcode decoding and decodes all opcodes of SH-4 . Correct disassembly and added support for all instruction of SH-4 not in SH-2 . Now disassembles all FPU instructions . Changed CPU to little-endian (SH-4 can be either big or little) . Correct which data is read and written from memory . Added registers fpul and dbr . Added (Non-FPU) instructions of SH-4 non present in SH-2 . Added four FPU instructions . Modified memory-mapped internal register management so that all internal registers can be actually used . Added file sh4regs.h with defines for all SH7750 internal registers . Implemented internal registers for memory refresh . Removed some internal registers of SH-2 not present in SH-4 . Added preliminary support for internal cache used as ram. - V30 CPU: Fixed another IREM D80000 Custom V30 CPU opcode. Match It II is now fully playable. Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - 6840 PTM: Fixed a number of errors and simplified the code significantly (cchasm.c and mpu4.c) - cidelsa.c: Fixed the reset mode in the CDP1802 CPU - cps2.c: Updated CPS2 decryption bit order to match what is likely the original order (machine\cps2crpt.c) - dooyong.c: Fixed sprite drawing in video\dooyong.c (superx0116gre) - neodrvr.c . Splitted driver into neodrvr.c (game specific) and neogeo.c (main) . Rewrote Neo-Geo driver again based on information from Charles MacDonald . This update fixes a number of issues with the previous attempt - qix.c . Improved MCU timing and communication in the driver (qix0116yel). Still a few issues remain. . Fixed scanline address reporting - toaplan2.c: Fixed driver so that OKI6295 sample ROM bankswitching via one of the spare data lines on the coin mechanism port is only hooked up in the one game that's actually wired this way (shippumd). - Attack Ufo: Fixed palette lenght - Battle Rangers: Fixed sprite drawing in video\battlera.c (bldwolf061gre) - Final Fight: Fixed offset for sprite and layers in clone Final Crash (World, bootleg) (fcrash.c driver) - Match It II: Fixed another IREM CPU opcode (matchit2_0116ora) - Scramble: Updated the protection implementation in Scramble (Stern) to use equations based on the implementation from fpgaarcade.com - Shanghai: Fixed HD63484 video controller call (shanghai0116red) - Shippu Mahou Daisakusen: Fixed OKI6295 rom banking - Space Encounters: Fixed stobe light again (drivers\mw8080bw.c) - Input port: Added support for multiple keyboards: Added multikeyboard input support through RAWINPUT mechanism (up to 8 simultaneous keyboard inputs). Fixed RAWINPUT device registry enumeration bugs. - MAME . Switched driver code to exclusively using mame_rand() instead of rand(), to improve consistency of results. Affected games are ace, airbustr, alibaba, ashnojoe, atarigx2.c, backfire, bigfghtr.c, blmbycar, chasehq, cojag.c, ddribble, deco_mlc.c, discoboy, dwarfd, ertictac.c, fitfight.c, fortecar, gladiatr.c, gunpey, hotblock, hshavoc, indianbt, itech32.c, itech8.c, karatour, kopunch, legionna, lockload, nwk-tr.c, nycaptor.c, othldrby, pettanp, pbillian, punkshot, pzlbowl, quiz365, shanghai, scudhamm, smstrv, spacewar, spcforce, suprgolf, taitojc.c, tetrisp2, topshoot, topspeed and ttchamp. . Fixed a few warnings that show up with -Wextra . Fixed numerous regressions in the 0.116 release . Improved GCD computations (Greatest Common Divisor) in the rendlay.c code (emu\rendlay.c) 0.116 - New Working games: Mahjong G-Taste - New clones: Buzzard - Discrete sound . Added a "inverter oscillator" component. This can also be used as a raw sine generator - needed by radarscp. . Added a "integration circuit" based on transistor and RC . Added a "modulated RC discharge" component - dkong.c . Major driver update . Implemented discrete sound in Donkey Kong and Radar Scope from schematics . Implemented discrete background in Radar Scope from schematics . Added various effects to Radar Scope (blue to black to blue background, exact priorities and Grid will flip open and close, vertical flipping on hit). . Color generation from schematics (resistor mixer) for Radar Scope, Donkey Kong, Donkey Kong Junior and Donkey Kong 3 . Fixed Radar Scope inputs - toypop.c: Fixed crash in Libble Rabble and Toypop (toypop0115u4red) - 1942: Flattened colormap and palette - 9-Ball Shootout: Fixed graphics (vertical lines everywhere - 9ballsht0115u3gre) - Attack Ufo: Fixed palettesize - Change Lanes . Fixed broken graphics . Hooked up steering wheel controls . Made some changes to the sprite and text layers based on schematics . Changed M68705 CPU2 clock speed to 625000 Hz and visible area to 256x224 . Fixed dipswitches and names - Exerion: Fixed 'game ends regardless after the bonus stage, when you die' (exerion0112u4yel) - Konek-Gorbunok: Fixed colors (konek0115u4yel) - Mahjong G-Taste: Added missing gfx1/sound1 roms - Pit & Run: Fixed M68705 CPU3 clock speed - Professor PacMan: Fixed screen top/left cut off (video\astrocde.c) (profpac0115u4gre) - Psycho-Nics Oscar: Fixed 'Freeze Mode' dipswitch (oscar0111u3yel). According to Arcade TIPS & Tricks, the freeze mode works if DIP 1-5 (marked as "Don't Touch") is ON. In this mode: P1 Start Button -> Freeze the game, P2 Start Button -> Unlock freeze and P2 Arrow Keys -> Slow-motion play in holding the key. - Seawolf II: Fixed crosshairs (seawolf2_0115u2gra) - Super Astro Fighter: Fixed missing colors (csuperas0104u7gre) - Tournament Table . More TIA updates from MESS (video\tia.c) . Rewrote drawing of playing graphics . Improved handling of player graphics reset signals . Improved handling of HMOVE signals - Dipswitch fixes in Change Lanes, Psycho-Nics Oscar and Radar Scope - MAME . Improved independence of CPU and sound core variants in order to make them more properly separated by the existing compile-time flags . Fixed up a number of places where malloc results weren't being checked correctly . Removed usage of unsigned char/short/int from the drivers code in favor of UINT8/UINT16/UINT32 . Removed unused return value from VIDEO_START callbacks . Renamed palette_set_color() to palette_set_color_rgb(). palette_set_color() now matches palette_get_color() and deals in rgb_t data only. . Changed palette_set_colors() to deal with rgb_t data instead of R,G,B triples 0.115u4 - NOTE: There is a small chance of a regression or two as a result, so if something looks odd, please make sure you report it to MAME Testers, as always. - New clones: Asuka & Asuka (Japan) - SN76489 sound . Fixed a number of games to explicitly use the SN76489 now that it behaves differently from the SN76496 . Affected games are docastle.c: docastle, dorunrun, dowild, idsoccer, jjack and kickridr ladybug.c : cavenger, dorodon, ladybug and snapjack system1.c : 4dwarrio, blockgal, brain, bullfgt, chplft, dakkochn, flicky, gardia, hvymetal, imsorry, mrviking, myhero, noboranb, pitfall2, raflesia, regulus, seganinj, shtngmst, spatter, starjack, swat, teddybb, tokisens, ufosensi, upndown, wbml, wboy and wmatch Other : jrpacman, mrjong, pengo and exedexes - Cubo CD32 system: Added new BIOS rom - astrof.c . Added memory map/interrupt/video timings from schematics . Hooked up SN76477 to Tomahawk 777 . Switched the two Tomahawk 777 sets. The newer version is now the main set and the older has been renamed to tomahaw1 . General driver clean-up - dooyong.c . Refactored the video hardware to take advantage of tilemaps . Included priority fixes - Ace Attacker: Connected inputs in clone (Japan) - Pengo: Fixed Z80 CPU1 clock speed - Safari Rally: Improved colors - Space Encounters: Fixed stobe light - Save state: Changed save state code to not save any palette information if no palette is used - Dipswitch fixes in Safari Rally, Ace Attacker and astrof.c - MAME . Removed colortables from a number of drivers that didn't need them. Converted pacman and mappy drivers to collapse the colortable and palette. . Added support for scaling graphics layouts automatically. The X and Y scale factors are specified in the gfx_decodeinfo structures. Updated the MCR drivers (mcr.c/mcr3.c/mcr68.c) to use this feature. . Simplified a number of videoram write handlers by removing extraneous dirty checking . Removed a number of common but useless and/or frequently incorrect comment patterns throughout the code . Removed unused return value from MACHINE_START and SOUND_START . Fixed ledutil.c to work for USB keyboards again 0.115u3 - New games: G-Stream G2020 - New Working games: Wild Arrow - New clones: 19XX: The War Against Destiny (Brazil 951218), Flicky (64k Version, System 1, 315-5051, set 2), Flicky (128k Version, System 2, not encrypted), Multi Game (set 2) and Thunder Dragon 2 (9th Nov. 1993) - New drivers: gstream.c - 8085A CPU: Fixed INR/DCR opcodes bug - ARM CPU: Fixed INSN opcode in ALU handling - ARM7 CPU . More ARM7 fixes (including several that were backported to the original ARM core) . Fixed error in carry propagation on ALU opcodes of the form ALU r1, r2, r3 SHIFTEROP #imm . Fixed Thumb ADD instructions where the PC is involved . Fixed LDMIA to mask off bits 0 and 1 of the destination address . MSR instruction now properly respects processor mode and field code flags - M6809 CPU . Fixed bug that failed to initialize all IRQ states in the 6809 core on a reset . Fixed cycle timing and removed obsolete code from the core - MC68HC11 CPU: Fixed disassembly of brset and brclr opcodes (mc68hc11\hc11dasm.c) - V30 CPU: Fixed several more opcodes in the encrypted IREM D80000 Custom V30 CPU. Other affected games are Dream Soccer '94, In The Hunt, Match It II, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - 6526 CIA: Fixed bit calculation which broke joysticks in the MESS C64 driver (see driver alg.c, arcadia.c, mquake.c and upscope.c) - 6821 PIA . Updated PIA interfaces to support masks for port A/B inputs. This allows proper behavior of unconnected pins, according to the specs. Updated a number of games to use the new interfaces (see mcr.c). . Fixed subtle behavior in handling of PIA port A. This allows for the removal of hacks in the Qix driver and the Williams driver. . Fixed PIA numbers in revamped Spiders driver . Affected drivers are carpolo.c, coinmstr.c, exidy.c, funworld.c, gdrawpkr.c, itech8.c, laserbat.c, maxaflex.c, mpu4.c, nyny.c, pmpoker.c, qix.c, r2dtank.c, redalert.c, spiders.c, toratora.c, tugboat.c, victory.c, williams.c and zaccaria.c. - TIA sound/video: Updated graphics code (code comes from the MESS repository). Updated Tournament Table to accommodate the changes. - berzerk.c . Significant changes to the driver . Fixed video timings, memory map and interrupt system implemented from schematics . Hooked up colors according to the schematics as well. The colors changed significantly. For example the yellow robots are now more like a mustard color. - hornet.c/nwk-tr.c: Cleaned up the tilemap get_info callbacks. Changed the Konami driver to manipulate the tile_info global only within the tile_get_info callbacks. - zr107.c: Fixed tilemap colors in the driver (see Midnight Run or Winding Heat) - Beam Invader: Modernized driver. Changed raster orientation to vertical and visible area. - Clay Shoot: Modernized driver. Changed visible area and added save state support. - Connect 4: Fixed AY8910_read_port - Embargo: Modernized driver. Added save state support. - Draw Poker Joker's Wild: Added DAC sound and dipswitches (still doesn't work) - Inferno + Kram + Zoo Keeper: Fixed subtle behavior in handling of 6821 PIA port A. This allows for the removal of a PIA hack. - R2D Tank . Fixed colors, based on the Red Tank flyer. . Added AY8910's, sounds fine, but how exactly they are hooked up to the PIA is not fully understood. . Hooked up CRTC properly . Fixed visible area and VSync . Added save state support - Space Firebird: Fixed sprites so that they are opaque with respect to each other and bullets, but transparent with respect to the star field. - Spiders: Fixed PIA numbers - Thunder Dragon 2: Changed the sound balance to match the original PCB and verified the 68000 clock - Tora Tora . Added SN76477 from the schematics, but it sounds terrible; no doubt the schematics are incorrect in many places. . Updated to the recent PIA changes - Tournament Table . Updated TIA graphics code (code comes from the MESS repository). Updated driver to accommodate the changes. . Fixed TIA clock speed and VSync - Wild Arrow: Added DAC sound and dipswitches - Input port: Fixed input.c to use osd_ticks() instead of clock() - Dipswitch fixes in Draw Poker Joker's Wild and Wild Arrow - MAME . Cleaned up the tilemap get_info callbacks: Regularized and clean up the existing callbacks. Changed some callbacks to use int tile_index as the parameter so that all callbacks use consistent naming. Folded some direct uses of tile_info.flags into calls to SET_TILE_INFO(). Changed the Konami drivers to manipulate the tile_info global only within the tile_get_info callbacks. Replaced all the callback declarations with TILE_GET_INFO() wrappers. Changed the interface to pass tile_info as a parameter and made tile_info a static variable only accessible inside tilemap.c. . Cleaned up vec_mult implementation (windows\osinline.h) 0.115u2 - New games: Multi Game - New Non-Working games: Chameleon 24 - HD6309 CPU: Fixed some page 1 opencode lengths in the 6309 dissasembler - V30 CPU: Added a new opcode for Match It II to the IREM D80000 V30 CPU (machine\irem_cpu.c). There still are 4 unknown opcodes and the "no tiles" bug before it will be promoted to working status. - 6821 PIA: Removed the addressing order parameter from pia_config() and replaced it with dedicated write and read handlers (machine\6821pia.c). Affected drivers are carpolo.c, coinmstr.c, exidy.c, funworld.c, gdrawpkr.c, itech8.c, laserbat.c, maxaflex.c, mpu4.c, nyny.c, pmpoker.c, qix.c, r2dtank.c, redalert.c, spiders.c, toratora.c, tugboat.c, victory.c, williams.c and zaccaria.c. - Motorola 6845 CRT (video\crtc6845.c): Changed the CRTC6845 emulator to optionally control the screen configuration and video rendering. Added notifications for when the display enable pin changes in order to drive blanking signals. Affected drivers are carrera.c, coinmstr.c, couple.c, funworld.c, gdrawpkr.c, magicfly.c, mpu4.c, murogem.c, nyny.c, pmpoker.c, qix.c, r2dtank.c, rockola.c, spiders.c, tugboat.c, usgames.c and wardner.c. - TTL 74LS123: New 74123 timer emulator. It supports different ways a 74123 can be hooked up that affect the timing period. The old implementation was incorrect in lots of respects (machine\74123.c). Affected drivers are nyny.c and spiders.c. - astrocde.c . Added border support to the driver . Extended the starfield generation out into it . Extended the blanking region out farther to match information from the flyers and set the default scale/offset of the games to crop appropriately . Correct speaker locations and placement for Gorf and Wizard of Wor . Added missing mux to Gorf's audio, which controls speech versus sound effects during the game . Fixed recently introduced bug in driver relating to collision detection (gorf0115u1ora) . Fixed visible area - cidelsa.c . Fixed the CDP1869 Video Interface to fill the border area with the background color (video\cdp1869.c) . Added cropping to the Cidelsa games . Fixed colours in the Cidelsa driver, this time for real (cidelsa0114u4gre) - namcofl.c: Fixed graphics Final Lap R and Speed Racer - nyny.c . Rewrote driver . Game speed should now be correct. It was way too slow before. . Added star field. The game can stop and reverse the direction of the star field by changing a delay counter. . Fixed voices. Removed 2nd DAC sound . General driver clean-up: Fixed cpu2 roms addresses, visible area and VSync. . Fixed dipswitches . Changed description to 'New York! New York!' . New 74123 timer emulator - qix.c/spiders.c . Changed the CRTC6845 emulator to optionally control the screen configuration and video rendering. . Updated the Qix and Spiders driver to use the new functionality . Added notifications for when the display enable pin changes in order to drive blanking signals . Fixed VSync . New 74123 timer emulator for Spiders - Area 51: Site 4: Fixed input and coins - Armed Formation: Fixed DAC volume - China Gate: Fixed high scores - FixEight: Fixed number of coins - Night Striker: Correct speaker locations and placement, fixes effects/music plays only on one side (music left, sfx right) (ID 01174). - Match It II: Impoved graphics - Pig Newton: Fixed input in clone (version A) (pignewta0115u1gra) - Poizone: Added dipswitch information - Salamander: Fixed rom names - Dipswitch fixes in Bakutotsu Kijuutei, Master Boy, nyny.c and Poizone - MAME . Fixed bug in win_get_window_text_utf8() for when a window's text is an empty string . Added support for controlling the default scale/offset for screens at the driver level. This allows us to properly describe the screen width/height and blanking in the driver independent of specifying a good default size to crop the image to. . Merged in a couple of minor tweaks from MAME Plus! . Changed png2bdc to support multiple input PNGs (tools\png2bdc.c) 0.115u1 - New games: 2x Cluedo (prod. 2C/2D), Hangman (JPM), Scrabble (rev. F) and Trivial Pursuit (prod. 1D) - New Working games: 7 e Mezzo and Magic Fly - New Non-Working games: Ten Pin Deluxe - New clones: Captain Silver (World) - New drivers: jpmimpct.c - ARM CPU: Fixed carry flag calculation for SUB/SBC/CMP family instructions in the core - ARM7 CPU . Fixed 32-bit unaligned reads to "scramble" properly . Fixed carry flag calc for SUB/SBC/CMP family instructions . Fixed multiply-and-accumulate instructions . Added more instructions to the disassembler . Fixed logical and arithmetic shifts . Added more Thumb instructions . Fixed relative loads and stores . Fixed LSL/LSR with zero shift values . Fixed the disassembly of CMN . Verified behavior when ADD destination is the PC on real h/w - PowerPC core (PPC403/60x): Added lswx and stswx opcodes to the PowerPC core - TMS34010 CPU . Added support for misaligned PIXBLT operations in the core. The code still needs cleanup but improves the new JPM driver. . Fixed state saving (midyunit0115red) - V30 CPU: Identified a couple of new opcodes in the IREM D80000 V30 CPU (machine\irem_cpu.c) which improves Match It II. Other affected games are Dream Soccer '94, In The Hunt, Perfect Soldiers, R-Type Leo, Risky Challenge and World PK Soccer. - aleck64.c (N64) . Some RSP opcodes bugfixed plus should work on big-endian targets . Real PIF ROM dump now used and required . Various other fixes - astrocde.c . Fully implemented all function generator modes . Implemented pattern board according to schematics, including timing . Fixed interrupt handling . Added crosshairs to Sea Wolf II . Added stereo sound and panning to Sea Wolf II samples . Rewrote Astrocade sound emulation according to patent . Sound generation now uses proper LFSR for noise effects . Added partial support for Ten Pin Deluxe, including sound board emulation and internal layout. - btime.c: Cleaned up the driver - gameplan.c . Merged Leprechaun driver into the GamePlan driver . Added correct video timings . Fixed cpu2 rom address and VSync - m92.c: Improved sprite drawing (m92c053gre2) - magicfly.c . Figured out how the protection works . Removed the hacks/patchs that formerly allow boot the games . Figured out how the buffered inputs works . Demuxed all inputs for both games . Unified the memory maps from both games . Added NVRAM support to both games . Mapped dipswitches . Managed the planes to get the 3bpp GFX colors accurate . Renamed the ROMs acording to PCB pictures and ROM contents . Cleaned up and optimized the driver - mpu4.c . Correct the pulse shape of the timer output in the MPU4 driver . Correctly identified the AY sound chip as an AY8913. Changed AY-3-8910A to AY-3-8913A sound. - scregg.c: Fixed game crashing in driver (scregg0115red) - williams.c: Added correct video timings for the games - Vector games: Moved Atari vector PROMs (AVG, DVG and Mathbox) into separate regions (see astdelux, asteroid, bradley, bwidow, bzone, esb, gravitar, llander, mhavoc, omegrace, quantum, redbaron, spacduel, starwars, tempest and tomcatsw) - 7 e Mezzo: Fixed M6502 CPU clock speed - Dorachan . Cleaned up the driver . Replaced fake color map with actual color PROM decoding - Dragon Gun: Fixed carry flag calculation for SUB/SBC/CMP family instructions in the ARM core. This fixes energy of last guy in Dragon Gun (dragngun067yel) [please verify]. - Exerion: Fixed game ends regardless after the bonus stage, when you die (exerion0112u4yel) - Galaxy Force 2: Fixed throttle range - Hard Drivin's Airborne: Added TMS32010 (5MHz) CPU5 (asserts0115ora) - Inferno: Fixed sound in Inferno (Williams) after all these years. Sadly, it required a hack. - Magic Fly: Fixed M6502 CPU clock speed and added 'Maximum Bet' dipswitch. - Missile Command: Fixed corrupt graphics (missile0115yel) - Mystic Riders: Fixed sprite priority problems (mysticri36rc2gre) - Rettou Juudan Nekkyoku Janshi: Fixed crash on startup (nekkyoku0115re) - Power Spikes II: Fixed rom name (aerofgt.c0115ora) - Professor PacMan: Added 10x plds - Sea Wolf II: Added crosshairs, stereo sound and panning to SeaWolf II samples. Fixed Z80 CPU clock speed and VSync. - Space Firebird . Added star field (matches with the screen shot perfectly) . Video timings/memory map/interrupts from schematics . Added support for the color fade effect - Spiders: Significantly cleaned up the driver - Super Tank: Cleaned up the driver. Fixed cpu1 rom loading. - Surf Planet: Fixed EEPROM handling - Input playback/record: Added support for playback of "extended" INP files that are commonly found on compete sites - Description changes of Side Trak - Dipswitch fixes in astrocde.c, Excite League, gameplan.c, magicfly.c, Spiders and Super League - MAME . Changed memory system behavior so that masks can be specified independently of mirrors. By default if the mask is 0 and a mirror is present, the mask is implicitly ~mirror, just as before. But if a mask is specified, it is not limited to the non-mirrored bits. This allows you to independently control the mapping versus what is returned to the read/write handler. . Changed DRIVER_INIT macro to prepend driver_init_* instead of simply init_* to be consistent with the other initialization functions. . Moved Win32 UTF-8 wrappers into a new module (winutf8.c) an added some new wrappers that were created for MAME32. 0.115 - New clones: Viper Phase 1 (Hong Kong, Metrotainment license) - New drivers: sstrangr.c - ARM7 CPU . Fixed SWI instruction in Thumb mode . Rewrote SWP instruction to work properly . Added some missing change_pc()s - M68705 CPU . Updated 68705 clocks to take into account the internal divide by 4 . Added constant so that it is clear why this is being done . Fixed M68705 clock speeds in 40love, arkanoid, bigevglf, buggychl, changela, darktowr, ddungeon, flstory, hotsmash, kicknrun, lkage, lsasquad, maniach, maxaflex.c, nycaptor, pipeline, pitnrun, pushman, retofinv, tigerh and tstrike. - Motorola 6845 CRT (video\crtc6845.c): Fixed Controller interface. Affected drivers are carrera.c, coinmstr.c, couple.c, funworld.c, gdrawpkr.c, magicfly.c, mpu4.c, murogem.c, nyny.c, pmpoker.c, qix.c, r2dtank.c, rockola.c, spiders.c, tugboat.c, usgames.c and wardner.c. - namcos2.c: Fixed misaligned graphic layer in some of the Namco System 2 games (bubbletr, gollygho, luckywld, sgunner, sgunner2, suzuk8h2, suzuka8h and ordyne) (namcos2_0114yel). - qix.c . Hooked up 6845 CRTC to the qix-based games. All games now generate display resolutions and frame rates on the fly. . Cleaned up memory maps and a few other bits along the way . Added save state support . Fixed visible area and VSync - Enigma II . Updated video and interrupt systems from the schematics . Changed the color gun layout to match the flyers as much as possible . Fixed proms loading, visible area and VSync - Mustache Boy: Fixed interrupt behavior and visible area - PlayMan Poker . Major rewrite of pmpoker driver . Removed all inputs hacks . Connected both PIAs properly . Demuxed all inputs for each game . Documented all outputs . Added lamps support . Created different layout files to cover each game . Add NVRAM support to all games . Correct the color PROM status for each set . Figured out most of the DIP switches . Added DIP locations to Golden Poker Double Up (Mini Boy) - Raiders5: Converted driver to tilemaps - Raiden Fighters Jet: Fixed debug build crashes in clone (US, Single Board) (rfjetus0114u2red) - Slither: Replaced SN76496 with SN76489 sound - Space Stranger . Moved Space Stranger/Space Stranger 2 into its own driver . Fixed cocktail mode . Removed SN76477 and Samples . Fixed visible areaand VSync - Terminator 2: Fixed gun shots and grenades, which goes through the enemies (term2_0114u4yel) - Dipswitch fixes in pmpoker.c and Space Stranger - Description changes of Enigma II and Joker-Poker - MAME . Updated Windows exit code to ensure cursor is shown again . MAMETesters Bugs fixed: ym2203slowdown0114u2gre, powerins0104yel and k007232_0114u1gre 0.114u4 - New Working games: Excite League, Gaming Draw Poker, Road Riot 4WD and Super League - New clones: 6x Freeze (Atari) (prototypes) and Racin' Force (ver EAC) - Removed games: Freeze (Atari) (prototype, set 2) - M6502 CPU variants . Improved accuracy of 6502 CPU cores (DECO CPU16, M4510, M6502, M6509, M6510, M6510T, M65C02, M65SC02 and N2A03) to implement the read/write that happens on every cycle. . Moved the "undocumented" instructions from the M6510 cores into the main M6502 core, since there were several other versions of the M6502 cores which have the same undocumented instructions. . Removed some of the #define override magic that was going on to make the code easier to read and understand. . Updated the M6510 core port_read and port_write functions to include the ddr register in the parameters. - ARM7 CPU . Significant ARM7 update . Cleaned up disassembly . Added support for many more Thumb instructions . Removed unnecessary logging . Unaligned reads/writes are supported - I386 CPU . Improved access to system registers in the core . Added explicit caching of segment data and flags . Fixed several minor issues - MIPS CPUs: Updated the MIPS3 DRC to align the stack to sixteen-byte boundaries at the point of calls, as required by Mac OS X calling conventions. It doesn't break compatibility with Windows or Linux calling conventions. This fixes crashes in MIPS3 games when running on OS X for Intel. - TMS34010 CPU . Simplified register and flags management in the core . Reviewed all flag handling and fixed a couple of minor discrepancies - AY8910 sound: Added several AY8910 variants (AY8912, AY8913, AY8930, YM2149, YM3439, YMZ284 and YMZ294) so we can better specify the use of compatible but slightly different chips (sound\ay8910.c). - model1.c: Fixed layer drawing and polygon sorting order in Model 1 games. Improves Wing War significantly. - stv.c: Fixed crash due to lack of CD in the Success ST-V games (successstv0114u2red) - Arkanoid: Updated clocks based on measurements from a real PCB. Measured Clocks: Z80 = 5997077Hz (6MHz), M68705 - 2998533Hz (3MHz) and YM2149 = 2998531Hz (3MHz) - Asteroids: Fixed controls to be buttons not joysticks - Balloon Bomber: Dump missing rom mb7052.2c (cloud graphics) - Crazy Kong (galaxian): Fixed P2 control type (ckongg0114u2gra) - Excite League: Added fully dumped FD1094 317-0079 key and changed input to 10x button trackball - Freeze (Atari): Fixed user1 roms length and rom names - Gauntlet: Fixed 'game starts with 1 credit added for all players' (gauntlet0114u2gre) - Gaming Draw Poker . Rewrote the vp906iii driver . Decoded GFX properly . Rewrote the memory map based on program ROMs analysis . Hooked two SY6520/6280 (M6821) PIAs for I/O . Hooked the SY6545 (6845) CRT controller . Fixed size for screen total and visible area based on SY6545 CRTC registers . Added partial inputs through PIAs . Added proper sound through AY8910 (mapped at $0840-$0841) . Proper colors through color PROM decode . Added some game-protection workaround . Added NVRAM support . Changed description from '906III Video Poker' to 'Gaming Draw Poker' and driver vp906iii.c to gdrawpkr.c - Guardians of the 'Hood: Fixed TMS32010 clock speed - Hanafuda Hana Ginga: Fixed MAHJONG_BET button (hginga0114u2gra) - Liberator: Clean up the video system - Lunar Lander: Fixed controls to be buttons not joysticks - Mahjong (ttmahjng): Moved game to the Route16 driver - Omega Race: Fixed and documented clocks: Replaced AY8910 with AY-3-8912A sound. - Race Drivin': Added 2nd TMS32010 CPU5. Fixed rom loading. - Rampage: Fixed P3 control type (rampage0114u2gra) - Road Riot 4WD: Hooked up actual TMS32010 (5MHz) CPU2 - Rotary Fighter: Removed SN76477 and Discrete sound. Fixed visible area and gfx1 rom loading. - Route 16: Clean up the video system - Space Stranger: Space Stranger 2 is now clone of Space Stranger - Steel Talons: Hooked up actual TMS32010 (5MHz) CPU6 - Street Drivin': Added TMS32010 CPU6 - Super League: Added fully dumped FD1094 317-0045 key. Fixed gfx2 rom loading and input to 10x button trackball. - Taisen Quiz HYHOO: Clean up the video system - Tutankham: Clean up the video system - Fixed rom names in Dr. Toppel's Adventure, Freeze (Atari), Insector X, Road Riot 4WD, Shuuz and Terra Force - MAME . Changed cpu_boost_interleave(), cpu_spinuntil_time(), and cpu_yielduntil_time() to take mame_time parameters instead of doubles. . Changed MDRV_CPU_PERIODIC_INT() to take a frequency parameter instead of a time. This is converted internally to a subseconds value. . Removed set_vh_global_attribute() and get_vh_global_attribute_changed() from the dozen or so drivers that used it. In the process, made an effort to clean up the video system for these games. The biggest improvements are Route 16, Taisen Quiz HYHOO, Tutankham and Liberator. . Removed some unnecessary NULL checks and fixed some incorrect usage of auto_malloc . Moved the -verbose option into the core. Added new function mame_printf_verbose() which is governed by this option. Changed all existing verbose output to use the new functions. . Added calls to support enumerating through options . MAMETesters bugs fixed: psxbasedgames0114u3red, asserts0113ora and sample0114u3 . Added a Nintendo CPU core for a cpu nicknamed Minx. This cpu core is used to emulate the cpu in the nintendo pokemon mini handheld console. 0.114u3 - New Working games: Midnight Run and Winding Heat - New Non-Working games: Kokoroji 2 - New clones: Night Warriors: Darkstalkers' Revenge (Euro 950316) and Terra Force (set 2) - PowerPC core (PPC403/60x): Made the Dynamic Recompiler options runtime configurable - SN76489/SN76496 sound . Improved noise emulation in the emulator . Added several variants (SN76489, SN76489A, SN76494, Game Gear PSG and SMSIIIPSG) which differ based on the noise generator and other parameters - Konami K001604 (gticlub.c and nwk-tr.c): Further improved the ROZ layer emulation - cidelsa.c: Additional CDP1802 updates, taken from MESS - galaxian.c: Fixed explosion sound cut off (galaxianc058gre, audio\galaxian.c) - simpl156.c . Separated the DECO and Mitchell games in the driver . Added more extensive documentation - zr107.c . Fixed sound hardware check in Winding Heat . Changed to use the correct tilemap chip type . Hooked up analog controls . Fixed texture rom loading and texture decoding . Improved the 2D tilemaps - Cannon Ball (Crazy Climber hardware): Fixed 'Cabinet' dipswitch (cannonb078u6yel) - Guardians of the 'Hood: Added TMS32010 CPU2 and rom (ASIC65 TMS32015 code) - Hatris: Fixed flip screen (hatris0111u4gre) - Mr. Do!: Replaced SN76496 sound with SN76489 - Mustache Boy . Fixed main CPU interrupt rate . Fixed main CPU clock freq . Fixed screen refresh rate according to measurements on a real PCB - One + Two: Fixed colors and OKI6295 clock speed - Pipe Dream: Fixed flip screen (pipedrm0111u4gre) - Road Riot 4WD: Added TMS32010 CPU2 and rom (ASIC65 TMS32015 code) - Silent Scope: Added 2x new PCM sample roms (4MB) - Solar Assault: Fixed analog controls - Super Street Fighter II (ssf2ghw): Fixed video_screen_configure in VIDEO_EOF (ssf2ghw0114u1yel) - Save state . Added save state support to Hatris and Pipe Dream . Changed location of save state files. Now they are placed in the / directory. Auto-generated save state files have the name "auto.sta". All other save state files are named .sta. - Dipswitch fixes in Cannon Ball and zr107.c - MAME . Added support for aliasing sound types. This allows minor variants in sound cores to share the same fundamental "type" so that the same sndti_* functions can be used regardless of the subtype. . Changed the options code so that ranges are specified on the option_entry structure, and enforced when option values are changed. . Introduced a mame_options_exit() call to complement mame_options_init() . Added a mame_fopen_options() call, similar to mame_fopen() but with the ability to specify a core_options object to use . Changed all plot_pixel and read_pixel calls to BITMAP_ADDRXX macros. Removed the now-obsolete functions. 0.114u2 - New games: Quiz Olympic - New Working games: GTI Club (Reset and hold down F2 it sets the EEPROM data) - New Non-Working games: Filetto (v1.05 901009) - New clones: Cameltry (World, YM2203 + M6295), Lightning Fighters (Asia), Street Fighter EX (EURO 961219), Soul Calibur (SOC13/VER.B) and Tekken 3 (TET3/VER.A) - New drivers: quizo.c and filetto.c - I386 CPU: Added preliminary 64-bit disassembly support to i386dasm.c - TMS34010 CPU: Cleaned up internal interrupt handling in the core - Konami PowerPC based 3D games (gticlub.c, hornet.c, nwk-tr.c and zr107.c) . Removed all the timing kludges from machine\konppc.c. GTI Club is kind of playable now. You can finish a lap or two, but eventually it will hang on network error. . Fixed many of the remaining polygon glitches in GTI Club, Solar Assault and Operation Thunder Hurricane. . Hooked up vblank interrupt to Voodoo in all Voodoo-based games . Fixed a rom loading issue in Silent Scope . Added ADC1213x A/D converter emulation (machine\adc1213x) . Hooked up analog controls in NWK-TR games - Space Invaders sound board . Added full discrete emulation of Space Invaders. Derrick think that people are going to be too used to the current samples and their relative levels. The new relative levels are determined by the mixing resistors. There are all different versions of the sound board, that all have slightly different sounds/components. This should be the proper Midway sounds. . Added Discrete sound to Galaxy Wars, Ozma Wars, Rotary Fighter, Space Invaders + clones, Space Invaders II and Space Laser - Video timing: Added more accurate video timing to most of the Atari 68000-era games (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1.c, atetris, badlands, batman, blstroid, cyberbal, eprom, gauntlet.c, klax, offtwall, rampart, relief, shuuz, skullxbo, thunderh, thunderj, vindictr and xybots) - cidelsa.c: Fixed CDP1802 DMA emulation - cps1/2.c: Fixed crash if you attempt to view graphics page 4 (cpsgfxpage4_0111red) - mpu4.c . Decommissioned machine\mpu4.c, as the 6850acia code from Phil does the same job, making one less thing to maintain. . Added NMI pulsing so Deal 'Em at least starts to boot - stv.c . Updated machine\stvcd.c to be working enough that most Saturn games at least die for some other reason, and a few actually do useful things. . Included a small update to the core cdrom code so you can fetch a sector without knowing in advance what format it is. - 2 On 2 Open Ice Challenge: Fixed screen graphics (openice093u2gre) - Cameltry: Added missing gfx3 rom to version (US) and (Japan) - Deal 'Em: Added NMI pulsing so the game at least starts to boot - Fighting Roller: Converted Roller Aces to stereo sound like the real hardware. Fixed the clocks (2x Z80 + 3x AY8910) and NMI rates to match the PCB. - GTI Club: Removed all the timing kludges from machine\konppc.c. GTI Club is kind of playable now. You can finish a lap or two, but eventually it will hang on network error. Also fixed many of the remaining polygon glitches in GTI Club. - Looping: Fixed shifted P2 graphics in cocktail mode (looping0111u3yel) - Mortal Kombat: Fixed graphics in demo mode (mk095gre) - PK Scramble: Added save state support and fixed MAME freezes (pkscram0111u4red) - Police Trainer: Fixed 'Calibrate Guns' in the 'Settings' menu (policetr059yel) - Psychic Force: Fixed MAME freezes after you select a character to play (psyforce0105u5red) - Raiden Fighters 2: Added missing user2 sound rom and fixed rom names - Raiden Fighters Jet: Fixed NVRAM in clone (US, Single Board) (rfjetus0101u5red) - Ray Storm: Fixed MAME freezes during the demo (raystorm0111u1red) - Rampage: World Tour: Fixed hangs (rmpgwt060gre) - Revolution X: Fixed gameplay/finish a level (revx060gre) - Silent Scope: Fixed a rom loading issue - Street Fighter EX 2: Fixed MAME freezes if you choose Dhalsim after the vs screen (sfex20103red) - Terminator 2: Fixed test mode (term20103u4gre + term20104u2gre) - Total Carnage: Fixed broken graphics after reset (totcarn063gre1) - Save state: Added save state support to PK Scramble, midtunit.c, midwunit.c, midxunit.c and midyunit.c - Input port: Added a concept of a "crosshair screen mask" internal to video.c and created a static call to retrieve the mask - MAME: Moved frontend commands and command-line handling into a central, core-managed location clifront.c. This eliminates the need for windows\fronthlp.c and windows\config.c and should make creating command-line based ports much easier in the future. - Compiling: Fixed the SUBTARGET=tiny build and removed some duplicate entries in mame.mak 0.114u1 - New games: Combat Hawk, Hanafuda Hana Ginga, Koi Koi Shimasho, Mahjong The Mysterious Orient and Mahjong The Mysterious Universe - New Working games: Hang Pilot, Mahjong Dunhuang and Thrill Drive - New Non-Working games . Konami Viper System: Boxing Mania, 2x Code One Dispatch, GTI Club 2, Jurassic Park 3, 2x Mahjong Fight Club, 2x Mocap Boxing, Mocap Golf, ParaParaParadise 2nd Mix, 4x Police 911, Police 911 2, Pop'n Music 9, 2x Silent Scope EX, 2x Thrill Drive 2, 2x Tsurugi, 3x World Combat and Xtrial Racing . Sega NAOMI System: Capcom Vs. SNK Millennium Fight 2000, Cosmic Smash, Giga Wing 2, Gun Spike, 2x Dead or Alive 2, Derby Owners Club, Dynamite Baseball '99, Dynamite Baseball NAOMI, Giant Gram, Giant Gram 2000, Heavy Metal Geomatrix, Idol Janshi Suchie-Pai 3, Moero Justice Gakuen, OutTrigger, Power Smash, Power Stone, Power Stone 2, Samba De Amigo, Slashout, Spawn, Virtua NBA, 2x Virtua Striker 2 Ver. 2000 and Zombie Revenge - New clones: Dynamite Deka 2 and Mahjong The Mysterious World - New drivers: naomi.c and viper.c - New BIOS files: Atomiswave BIOS (awbios), Konami Viper BIOS (kviper), NAOMI BIOS and NAOMI 2 BIOS - MB8842 CPU: Support for MB8842/Namco 50xx MCU (machine\namco50.c) as found in Bosconian and Xevious. It is used for Player score control (only used as protection check). - TMS32025 CPU: Fixed internal timer counting. This makes the music in Cool Pool and 9-Ball Shootout bearable. - TMS34010/20 CPUs: Substantially changed the TMS340x0 interfaces to allow the CPU emulator to directly manage the video screen. Glitches in several games are now fixed as a result (for example the flashing screens in NBA Jam are now gone at last). - SH-4 CPU: Support for SH-4 CPU (cpu\sh4\sh4.c) - very preliminary - naomi.c games - machine\atarigen.c: Fixed video timing. This fixes bugs apb0114gre and arcadecl0114red. Other affected drivers are arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1/2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, foodf.c, gauntlet.c, harddriv.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c - Video timing: Updated video timing in the segahang.c, segaorun.c, segas16b.c and segaxbd.c games according to measurements from the boards - artmagic.c: Fixed VSync - cidelsa.c . Fixed XABR opcode in the COP420 core . Added LBI skip for extended opcodes . Fixed the CPU name in save states . Added GAME_SUPPORTS_SAVE flag to the Cidelsa games . Draco still has no sound though - coolpool.c . Making music bearable in Cool Pool and 9-Ball Shootout by fixing the TMS32025 internal timer counting. Fixed VSync. . Fixed visible area, VSync and palettesize in AmeriDarts - ddenlovr.c: Fixed Z80 CPU2, AY8910 and OKI6295 clock speeds - harddriv.c: Fixed visible area and VSync - lethalj.c: Fixed VSync - micro3d.c: Fixed VSync - midyunit.c: Fixed TMS34010 and OKI6295 clock speeds, visible area and VSync - midwunit.c: Fixed visible area and VSync - midxunit.c: Fixed visible area and VSync - model3.c: Replaced MPC8240 CPU with PPC603 - nwk-tr.c: Improved driver to get Thrill Drive mostly working - playch10.c: Fixed crash in driver when run standalone - segas32.c: Fixed analog pedal input in the drive games (f1en, orunners, radr, slipstrm and radm - segas32pedal0114gra). - segaybd.c: Fixed Z80 CPU4, YM2151 and Sega PCM clock speeds - tickee.c: Fixed AY8910's clock speed and VSync in Ghost Hunter, Tickee Tickats and Tut's Tomb - Bank Panic: Fixed Z80 CPU and 3x SN76496 clock speeds and added user1 rom - Battle Toads: Fixed VSync - Bosconian: Added 2x MB8842 CPUs and 2x 50xx.bin roms (Namco 50xx internal ROM - 2k). Replaced MB88xx CPU with MB8844. - Crazy War and Spotty: Replaced E1-32XT CPU with GMS30C2232 - Exerion: Fixed video update (video\exerion.c - exerion0114yel) - Exterminator: Fixed VSync and palettesize - Hang-On: Fixed clock speed of the 2x 68000 CPUs and VSync - Hang Pilot: Got the driver working. The analog controls are still missing, however, so it's still marked as non-working. - Klax: Fixed save state in clones Klax (prototype set 1/2) (klaxp1_0114red) - Kung-Fu Master: Fixed rom names and added 17x proms to clone Kung-Fu Master (bootleg set 1) - Mahjong Dunhuang: Fixed gfx1/2 rom loading, visible area and dipswitches. Added YM2413 and AY8910 sound. - Mania Challenge: Added the missing plds ($200, 400 - pal16r4a.117, pal16r4a.118) - NBA Jam: Fixed flashing screens, by changing the TMS340x0 interfaces to allow the CPU emulator to directly manage the video screen - Power Spikes: Added pld (peel18cv8.bin) - Thrill Drive: Improved the NWK-TR driver to get the game mostly working. Added 'Disable Machine Init' dipswitch. - Thunder Fox: Added 6x plds (pal16l8b's and pal16v8b) - Xevious: Added MB8842 CPU and 50xx.bin rom (Namco 50xx internal ROM - 2k). Replaced MB88xx CPU with MB8844. - Dipswitches . Added DIP locations to Mario Bros, Mr. Do, Sheriff and Space Firebird . Dipswitch fixes in Hang Pilot, Mahjong Dunhuang, Racing Jam and Thrill Drive - MAME . Fixed bug that caused video glitches when frameskipping due to using out of sync textures . Fixed crash with multithreaded rendering and the graphics viewer . Added debug attribute to the XML output . Fixed save states (savestate0114gre) 0.114 - New Working games: Virtua Racing - New Non-Working games: Wonder League '96 (Korea) - New clones: Air Attack (set 2) - Removed games: beatmania 3rd MIX (ver JA-B), beatmania THE FINAL (ver JA-A), Pop'n Music 1-3 and Pop'n Stage EX - ES5503 sound: Made behavior of the IRQ status register more accurate - cidelsa.c . Added save state support . Fixed reset behavior - cps1/2.c: Fixed a MAME crash if you do a hardware reset - nwk-tr.c (Racing Jam and Thrill Drive) . Improved the LANC board emulation . Improved the graphics board emulation so that it passes all the self-tests - Air Attack: Fixed 68000/OKI6295 clock speeds, rom names and added proms - Bowling Alley: Emulated foul sound - Bullet: Added a better decryption key - Commando: Added DIP locations - Double Play and Extra Inning: Managed to get full discrete sound emulation working - Fighter's History: Fixed crash - Hidden Catch: Avoided a memset in the hyperstone core to give ~4% speedup - S.S. Mission: Fixed 68000/OKI6295 clock speeds - Space Encounters: Emulated all sounds except the screech and wind sounds - Virtua Racing: Updated game to use the TGP core, based on guessing from the Daytona TGP code with some modifications needed for Virtua Racing, the real TGP program is an internal ROM and still needs dumping. - Save state . Added save state support to Batman, cidelsa.c, eprom/2, Klax (prototype set 1/2) and Konami GV (Nagano Winter Olympics '98 and Simpsons Bowling). . Added general save state support to the atarijsa and atarigen modules (arcadecl, atarigx2.c, atarisy1/2.c, badlands, batman, beathead, blstroid, cyberbal, foodf, gauntlet.c, guardian, harddriv.c, hydra, offtwall, pitfight, primrage, rampart, relief, roadriot, shuuz, simpbowl, skullxbo, sparkz, thunderj, tmek, toobin, vindictr and xybots) - Description changes of Wonder League Star - Sok-Magicball Fighting - MAME . Fixed autoframeskip so it doesn't immediately spike on startup or after a pause . Fixed bug introduced in the memory pool code when hashing was added . Added small optimization to rand_memory() . Added validity checks to ensure that LSB_FIRST and PTR64 are set correctly for the current platform . Fixed UI keys/message after hard reset . Fixed a DirectSound error if the soundcard is disabled or not installed . Removed harddisk images from beatmania Club MIX (ver JA-A) and beatmania 7th MIX (ver JA-B) - Compiling: Removed obsolete assembly code and compiler definitions 0.113u4 - New games: Crazy Kong (galaxian) and Spotty (Ver. 2.0.2) - New Working games: Astra SuperStars, Bullet, Super High Impact and Wonder League Star - New clones: Super High Impact (prototype, rev 4.0 09/10/91) - G65816 CPU . Fixed a race condition in the WAI instruction where the CPU could get stuck . Fixed block transfer instructions when the accumulator is in short mode, this fixes some SNES games not booting, notably Final Fantasy Mystic Quest). - M37710 CPU: Fixed a race condition in the WAI instruction where the CPU could get stuck (MESS bug #661, may have caused intermittent issues with Namco games in MAME too) - MB86233 CPU: Added more recently discovered opcodes to the TGP core and disassembler - V60 CPU: Added v60_stall mechanism to allow for synchronization between the V60 core and an external CPU - ES5503 sound . Major fixes to IRQ semantics and end-of-sample handling . Sample memory now configurable . Added state save support . Calculates output rate properly based on the input clock . Hooked up properly to Moonquake - SCSP (YMF292-F) sound: Fixed crashes in some games using the SCSP like Die Hard Arcade (diehard0113u3red) - Konami K001604: Improved ROZ layer emulation (see gticlub.c and nwk-tr.c) - machine\segaic16.c: Fixed crash in System 16 games (segahang.c, segaorun.c, segas16b/18.c, segax/ybd.c) - cidelsa.c: Changed CDP1869 Video Interface to use proper write handlers for MESS (video\cdp1869.c) - exidy.c . Added timing parameters from schematics . Updated a number of other drivers to use the newer timing routines . Fixed visible area and VSync - exidy440.c . Added video timing from schematics . Added the 9 timing PROMs to the ROMsets. All the games appear to use the same timing PROMs with the exception of Top Secret, which sets the VBLANK 4 pixels earlier. This fixes the game graphics, but cuts of the very bottom row of the year display on the title screen. It's most likely a real issue in the game, as tweaking the behavior adds garbage pixels to all the other games. . Fixed visible area in Top Secret - itech32.c . Updated the driver to configure video timing dynamically according to how the chip is programmed . Fixed visible area - leland.c: Updated driver to the new video timing routines, as well as the remaining drivers. - limenko.c: Fixed E1-32XT CPU clock speed - model2.c . Hooked up the new TGP core (16MHz Fujitsu MB86233 CPU) to the driver (Virtua Cop will show a few all-black polygons in attract mode) . Mapped the TGP data ROMs properly . Updated the TGP core to the latest information . Added more recently discovered opcodes to the MB86233 TGP core and disassembler - model3.c: Replaced PPC603 CPU with MPC8240 - segas16b.c, segas18.c and segaxbd.c: Fixed crash in System 16 games (machine\segaic16.c) (dunkshot, aliensyn, sdi, sjryuko and timescan) (abcop, gprider1, smgp, loffire and rachero) (cltchitrj, ddcrew, desertbr). - toaplan1.c: Fixed VSync in Demon's World / Horror Story, Fire Shark, Out Zone and Truxton / Tatsujin - tumbleb.c: Cleaned up and more heavily documented the driver - Astra SuperStars: Added protection data (text layer tiles) extracted from the Saturn version - Bullet: Added partial FD1094 317-0041 key. The game is now partially playable, but it seems to blow up at the first boss, but you can at least start to see the game in action. - Crystal Castles: Fixed visible area - GTI Club: Added analog controls - I, Robot: Fixed crash introduced in last timing update - Starship 1: Fixed M6502 CPU clock speed and VSync - Super High Impact: Game freaks never out during play again - Tecmo World Cup '90: Updated the dipswitches correct from manual and added DIP locations - Victory: Fixed VSync - Wonder League Star: Added I87C52 MCU protection data, extracted from the shared ram - Description changes of FAX, Heuk Sun Baek Sa, SD Fighters - Dipswitch fixes in Banbam, Bullet, Calorie Kun vs Moguranian, Markham, SD Fighters and Tecmo World Cup '90 - MAME . Now enabling all CPUs by default, which helps ensure that even unused CPUs get updated with core changes, etc. . Removed now-obsolete old timing routines from emu\cpuexec.c (Core multi-CPU execution engine) . Optimized the options code and memory pool code to use hashes for faster searching (lib\util\options.c + lib\util\pool.c) . Changed behavior of extra one-pixel border on Direct3D textures so that the edge pixel is smeared into the border rather than leaving the border black. This should eliminate a few oddities at the edges of texture rendering. . Updated video code to double buffer texture objects to reduce contention of render primitive lists . Changed rendering code to explicitly alternate between primitive lists to prevent throwing away old lists prematurely . Created WINOPTIONS_* constants for Windows OSD options 0.113u3 - New games: 7 Ordi, Bestri, Guitar Freaks 2nd Mix, Heuk Sua Baek Sa and SD Fighter (Korea) - New Working games: Block Gal, Ganbare Chinsan Ooshoubu, Fantasy Zone 2, Koi Koi Part 2, Master Boy, Opa Opa and Perfect Billiard (MC-8123). - New Non-Working games: Big D2, Da Ban Cheng, Dou Di Zhu, Mahjong Dunhuang, Good (Korea), Guitar Freaks 3rd Mix, Kuai Le Xi You Ji, 2x Mahjong Long Hu Zheng Ba 2, Long Hu Zheng Ba 3 + 4, Mahjong Man Guan Cai Shen, Man Guan Fu Xing, Super Dou Di Zhu, SD Fighter (Korea), Sheng Dan Wu Xian, Mahjong Shuang Long Qiang Zhu 2, Mahjong Tian Jiang Shen Bing and WonderLeague Star - New clones: Dance Maniax (G*874 VER. JAA), Funny Bubble (In Chang 1999), IQ-Block (set 2), Long Hu Bang (set 2), One + Two (earlier), Pallavolo and Twin Adventure (Korea) - New drivers: ddz.c, dunhuang.c, good.c, igs_180.c, igs_m027.c and igs_m68.c - ADSP21062 (SHARC) CPU: Fixed several opcodes where data transfer was done regardless of the condition. This fixes many things, probably all the remaining clipping issues and the upside-down geometry in Model 2B games. Fixed an interrupt delay slot problem in the SHARC core. - FD1094 CPU: Added extensive debugging tools for help in brute force searching for keys (still WIP) (machine\fddebug.c) - MC8123 CPU . Added proper MC8123 decryption code (machine\mc8123.c) . Added MC-8123B keys to Altered Beast (set 2, 3 & 4), Block Gal, Ganbare Chinsan Ooshoubu, DakkoChan House, Ninja-Kid II, Perfect Billiard (MC-8123), Shinobi (set 3), Ufo Senshi Yohko Chan and Wonder Boy in Monster Land - TMS32031 CPU: Added save state support - TMS34010/20 CPUs . Changed the core to clear the HSTCTLH NMI bit on an acknowledge . Fixed display of immediate word and long operands in the disassembler - DMA-driven DAC sound: Added save state support - ES5503 sound: Fixed extraneous click at end of samples. Improved timing behavior. Fixes music tempo in many Apple IIgs apps and games in MESS. - SCSP (YMF292-F) sound: Fixed crashing bugs in emulation - Konami K001005 3D chip: Improved polygon rendering (gticlub.c + zr107.c) - cidelsa.c: Externalized CDP1869 color bit handling to a callback function for MESS - gaelco3d.c: Added save state support - model2.c . Added Z-clipping to the driver . Fixed several SHARC opcodes where data transfer was done regardless of the condition. This fixes many things, like the upside-down geometry in Model 2B games. Fixed an interrupt delay slot problem in the SHARC core . Added a preliminary MB86233 CPU core. Still needs to be hooked up to the Sega Model 2 driver. TODO: Properly emulate the TGP Tables from the ROM (See GETEXTERNAL). Many unknown opcodes and addressing modes and interrupts? - neogeo.c . Some minor NeoGeo set updates . Fixed glitches in the driver introduced in last update - nmg5.c: Fixed YM3812 clock speed in all games - segae.c . Replaced old Sega System E driver with new one based on HazeMD. Changed segasyse.c to driver segae.c . Fixed a large pile of dipswitches in the Sega System E games . Fixed SN76496 clock speeds and in Fantasy Zone 2 and Opa Opa - vicdual.c . Ground-up rewrite of the driver . Alpha Fighter / Head On: Removed Invinco Samples sound . Borderline: Removed Carnival Samples sound . Depthcharge: Removed sonarena.wav sample . Fixed rom names in Frogs and Head On . Added timing proms to Carnival, Frogs, Head On, Invinco / Head On 2, N-Sub and Space Attack . Replaced timing proms with only one in Head On 2 and Space Attack / Head On - Vector games: Fixed analog controls by adding back a faux VBLANK timing in Battle Zone, The Empire Strikes Back, Omega Race, Star Wars, Tempest, TomCat and Top Gunner. - Cross Pang: Fixed gfx1/2 rom loading - Cyber Tank . Inter CPU communications . Inputs (almost complete) . Sound . Program ROMs marked as bad dumps . Unmapped reads - Escape from the Planet of the Robot Monsters: Bumped interleave, this fixes TMS5220 speech output - Gradius 4: Fixed several SHARC opcodes where data transfer was done regardless of the condition. This fixes many things, probably all the remaining clipping issues in Gradius 4. At least the planet zooming out in the intro works now. - Koi Koi Part 2: Added AY8910 sound and plds, and fixed visible area - Master Boy: Added internal HD647180 MCU data and fixed Z180 CPU clock speed and VSync. Added SAA1099 (6MHz) and MSM5205 (384000 Hz) sound. - Percussion Freaks 3rd Mix: Added new user2/8 roms (install security cart eeprom + game security cart eeprom). - Pochi and Nyaa: Added new dumped gfx3 roms - Poker (Version 50.02 ICB): Added missing roms (blackjack and instantbingo) to clone (Version 50.02 ICB set 2) - Samurai Shodown V: Added new user4 rom - Sprint 4: Added proper Discrete sound - Ultra Tank: Updated game to component value code instead of a generic emulation - Description changes of Koi Koi Part 2 and Mach Breakers - Numan Athletics 2 - Dipswitch fixes in Cyber Tank, DakkoChan House, Fantasy Zone 2, Koi Koi Part 2, Master Boy, Opa Opa, segae.c and Tetris (Japan, System E) - MAME . Refactored the options code into a new generic utility module options.c. Moved the MAME core options into a new module emuopts.c. . Updated some more drivers updated to the new video timing - Debugger: Introduced a video_screen_exists() call, to determine whether a given screen exists. Updated the debugger to use this so as not to crash if no screens are present. 0.113u2 - NOTES . Note to OSD porters: Several OSD-related changes are in this build. Many options in the system are now defined by the core and looked up using the options_* functions. This should allow a bunch of code to be removed from most OSD ports. In addition the mame_file_error type has been renamed to file_error, so a little search & replace action is necessary. . Please note that there is an updated uismall.png file included with the diff which includes a number of improvements to the built-in font, including an expanded set of characters and some improvements to the existing design. - New games: beatmania 7th MIX, beatmania Club MIX, beatmania THE FINAL, 3x Pop'n Music and Pop'n Stage EX - New Non-Working games: Motoraid and ParaParaParadise v1.1 (TODO: Incorrect BIOS) - New clones: Captain America and The Avengers (US Rev 1.4), Daytona USA (With Saturn Adverts), Hex Pool (Senko 1985) and Sky Robo - SSP1610 CPU: Very preliminary support for SSP1610 CPU (cpu\ssp1610\ssp1610.c) - MB14241 IC: Created a new file for MB14241 (machine\mb14241.c), which is the shifter IC used by Invaders hardware games. Also used by Forty-Love, Field Day, Field Goal and Jolly Jogger. - Video rendering system . Added new driver flag VIDEO_SELF_RENDER which indicates that the driver will talk to the renderer on its own in its VIDEO_UPDATE callback. Added the flag to all the laserdisc game drivers. Changed the logic in the core video to only empty screen containers when doing the final render, rather than emptying them at the start of each frame. . Changed throttling behavior to only throttle on non-skipped frames. This should give a little better performance on games where frameskipping is necessary. - Video timing . Updated the Voodoo-based games (gticlub.c, hornet.c, nwk-tr.c, seattle.c and vegas.c) to use the new video timing code and newer MAME timers . Updated Gridlee and balsente.c driver to use new video timing code and raw screen parameters . Updated video timing in the midvunit.c driver . Updated NeoGeo driver to the new video timing code and raw screen parameters, this fixes also the messed up graphics (neogeo0113u1red). . Updated a number of Sega games (segac2.c, segahang.c, segaorun.c, segas16a/b/18.c, segax/ybd.c) to use the new video timing code . Updated starfire.c driver to use video timing from schematics . Changed refresh and VBLANK timing parameters throughout the system to be specified in subseconds_t instead of as floating point frequencies . Fixed VSync in alg.c, amidar, arcadia.c, balsente.c, cave.c, cps2.c, cubocd32.c, dambustr, darwin, ddragon.c, dlair, exerion, fcombat, fireshrk, frogger, gaelco2.c, galaxian.c, grchamp, gridlee, looping, maxaflex.c, midtunit.c, midvunit.c, midwunit.c, midxunit.c, midyunit.c, mquake, mystston, namconb1.c, namcos2.c, nemesis.c, neogeo.c, pacman.c, psikyo.c, psychic5, rockola.c, scobra.c, scramble.c, segag80r.c, skybump, spaceace, sspeedr, taito_f3.c, truxton, toaplan2.c, turbo.c, twincobr.c, upscope, wwfsstar and zaxxon.c. . Fixed 8080 clock speed, visible area and VSync in ballbomb, cosmo, indianbt, invadpt2, invders clones (sicv, sisv, sisv2, spacewr3, spcewars and darthvdr), invrvnge, lrescue, lupin3, polaris, rollingc, schaser, sflush, sstrangr, sstrngr2 and yosakdon. - 8080bw.c: Added video timing from the Midway 8080-based b/w driver. This caused the visible areas of most games to change, so they will fail regression. - cidelsa.c: Fixed CDP1869 double width mode (video\cdp1869.c) - gaelco3d.c: Changed driver to use osd_work_items for rendering, allowing multi-CPU systems to shift most of the rendering burden to a second CPU (see Speed Up, Radikal Bikers or Surf Planet) - mw8080bw.c . Implemented the interrupt generation more to how the real hardware works (equivalent result as before) . Added detailed description of the video timing and the interrupt generation systems - Beam Invader: Added save state support - Daytona USA: Fixed cpu3 and user2 roms and rom loading - Food Fight . Cleaned up the driver . Complete memory maps . Finished implementing sprite/playfield priorities . Fixed timing . Fixed 68000 CPU and the 3x POKEY clock speeds, fixed VSync and added prom - Keyboardmania: Built the iButton data (security dongle) - Keyboardmania 2nd mix: Fixed the hardware error - Lupin III: Fixed crash due to invalid sample - Pop n' Music 7: Hooked up inputs - Riddle of Pythagoras: Removed stupid sprite hack - Shuttle Invader: Display is shifted off screen now, but the PCB notes confirm that it's a different hardware, so it will need its own driver anyhow. - Sprint 4 . Fixed gear shift levers which were broken with a recent previous change . Improved a few other bits (fixed VSync) - Ultra Tank . Major cleanup/rewrite of the driver . Fixed M6502 CPU clock speed and VSync . Added user1 rom ($0 - sync) and prom ($0) - Input port: Added back joystick deadzone handling behind a compile-time define as a pattern for other OSD ports - MAME/MAME32 . Created a utility call win_is_gui_application() to determine if the current process is a console or a non-console application. Added a call to direct error output to message boxes if MAME is running as a Windows application (such as MAME32). This will allow MAME32 failures to be reported to the user rather than silently fail. . Created a UTF-8 wrapper for the Win32 API GetModuleFileName() - MAME . Changed the Windows OSD work code to only allocate events for items when necessary, in order to conserve system resources. . Added a 'flags' parameter to osd_work_item_queue() and defined one new flag: WORK_ITEM_FLAG_AUTO_RELEASE, which means that the work item should be automatically released when completed. . Moved support for the following options into the core: -state , autosave, playback , record , mngwrite , wavwrite , rotate, ror, rol, autoror, autorol, flipx, flipy, artwork_crop, use_backdrops, use_overlays, use_bezels, brightness , contrast , gamma , pause_brightness , antialias, beam , flicker , sound, samples, volume , ctrlr, log, debug, debugscript , bios , cheat and -skip_gameinfo. . Added stronger priority boosting when sleeping on Windows in the hopes of getting more consistent frame rates . Added remaining Unicode characters up to 0100h in the built-in font . Cleaned up initialization paths in mame.c. Tried to organize things a bit more logically. Removed a number of return codes in favor of more descriptive fatalerror messages. . Renamed mame_file_error to file_error, since it is used throughout the code including the utilities. . Added srcclean tool to the tools directory. This is the tool that is run over the source before each release to do some minor code tidying. - Debugger: Changed pause behavior so that on non-debug builds, we simply keep the most recent list of primitives and re-render that. Debug builds keep the current default behavior which is to run the VIDEO_UPDATE code each frame even while paused in order to help identify issues in the emulation. 0.113u1 - New Non-Working games: Megatouch 6 - New clones: A Question of Sport (39-960-089) - Video timing . Began converting drivers over to the new more accurate video timing functions (video_screen_* functions instead of cpu_*). This first batch includes all the games using the TMS34010 chip and the Atari games that use atarigen.c (arcadecl.c, atarig1.c, atarig42.c, atarigt.c, atarigx2.c, atarisy1/2.c, badlands.c, batman.c, beathead.c, blstroid.c, cyberbal.c, eprom.c, foodf.c, gauntlet.c, harddriv.c, klax.c, offtwall.c, rampart.c, relief.c, shuuz.c, skullxbo.c, thunderj.c, toobin.c, vindictr.c and xybots.c). . Fixed the rest of the Atari games and the Cinematronics CCPU games to use the newer video timing system. Speed Freak should run nice and smooth now, with no flickering. . Updates drivers from C-E to use the newer video timing system . Report bugs to MAMETesters (http://mametesters.org/) - kaneko16.c: Improvements to the driver. All the protection data should be correct now (see Blood Warrior). - Destroyer: Fixed reset problem - Exerion: Fixed VSync - Keyboardmania 2nd Mix, Pop n' Music 7 and ParaParaDancing: Built the iButton data (security dongle) - Mustache Boy: Properly fixed tile flipping - X the Ball: Fixed visible area - Dipswitches . Added DIP locations to Bagman, Bank Panic, Karnov, Mag Max, Omega Race and Spiders . Dipswitch fixes in 005, Alien Syndrome (set 1), Doki Doki Penguin Land, Fast Lane and Janputer '96 - Rom names fixes in Circus and Pengo (set 2 not encrypted) - MAME . Moved throttling, frameskipping, fast forwarding and timing into the core. Removed the equivalent code from the Windows OSD layer. This now relies on options being set for controlling these features by the OSD layer via options.c. Deprecated the old osd_get_fps_text() function. Changed osd_update() to take a parameter indicating whether or not the frame was skipped. Added new function osd_sleep() to the OSD core timing library. As of this version of MAME, all that logic has moved into the core video system, which means that there is less work for the OS-specific port maintainers to do. This is the first of a series of changes in this direction, which will mean that ports like SDLMAME and MAME OS X have less code to maintain. . The 'frames_to_run' command line parameter has changed to 'seconds_to_run', which is the same concept but uses the more neutral concept of time rather than frames. This is in preparation for a future time when games like the vector games will use asynchronous frame updating instead of using the frame rate hack MAME currently use. . Added a call winwindow_ui_exec_on_main_thread() to allow code on the window thread to cause a function to be executed on the main thread . Added a new mechanism for building in fonts. A new tool, png2bdc (PNG to BDC font converter (tools\png2bdc.c) - BDC is the binary cached version of BDF files that MAME can read) can convert a specially formatted PNG file into a binary cached MAME font. This cached font can be embedded into MAME. A new default small UI font is now included, and built via this process to replace the old hard-coded one. The new font is proportional, so there is better use of limited screen real estate in small video modes. Some balancing/ tweaking of the actual font still needs to be done, and some basic functionality still needs to be added to png2bdc. Consider this a work-in-progress. . Fixed sample audit to report all missing samples . Fixed a crash when verifying samples when a sample has a NULL name . Fixed Windows-isms in regrep.c 0.113 - NOTE: This release contains a number of updates to both the input and sound code. The sound code in particular bears mentioning because its new behavior has tripped up a few people. Sound output is now exclusively controlled by the emulation, not by the OS layer. This means that it is very important to have accurate timing and throttling. Because of this, the throttling code has been rewritten to be more forgiving of 'hiccups' and other anomalies. One non-obvious side effect is that if you are running your games with -triplebuffer or -waitvsync on a system with a 60Hz video mode (like most LCDs have), and you are running a game with a framerate greater than 60fps (any of the common older Namco titles will do fine), then you will experience sound hiccups unless you enable a little bit of frameskipping, either automatic or a frameskip of 1. This is because you are hard-limiting the game to run at 60Hz due to your monitor's refresh, but it needs to produce more than 60 frames per second, so you are always running behind the emulation. You can see an example of the progress between 0.112 and 0.112u4 by looking here http://mamedev.org/regressions/0112u4 - New games: 'A Question of Sport' - New Non-Working games: 2x beatmania 3rd MIX, DrumMania, 2x Guitar Freaks xth Mix, Keyboardmania 2nd Mix, Percussion Freaks 3rd Mix, Pop n' Music 7, ParaParaDancing and Snooker 10 - New clones: The Combatribes (US set 1?), ddr2mc, ddr2mc2, ddr4mj, ddr4msj, Flipull, Jail Break (Bootleg) and Plotting - New drivers: bfcobra.c and ultratnk.c - TMS34010 CPU: Removed cpu_gethorzbeampos() and replaced it with calls to video_screen_get_hpos(). Also changed TMS34010 configuration to take a screen number, and changed atarigen_get_hblank() to take a screen number as well. - BSMT2000 sound: Rewroted the BSMT2000 to be more accurate. Various modes are now software selected at startup based on the register value at reset time. Changed all existing drivers so they properly hooked up the reset line on the chip in order to make this control work. Also added correct BSMT2000 ADPCM output (see Police Trainer). - Discrete sound: Fixed regressions in 3 of the discrete games from 0.112u4. - RF5C400 sound: Actually included the changes mentioned for 0.112u4 - N2A03 sound: Fixed regression in Nintendo games that did not specify a clock for the NES APU. Affected drivers are playch10.c, punchout.c and vsnes.c. - Laser Disc: Fixed Z80 CPU clock speed in Super Don Quix-ote - berzerk.c: Minor cleanup. Added address decoder prom to Moon War (prototype) and Frenzy (copy of Moon War). - cidelsa.c . Added preliminary sound to Altair and Destroyer . White noise is missing and Draco is still silent - deco32.c + m92.c: Removed unnecessary idle skipping code from the driver. This allows removal of a couple of now-unused functions from cpuexec. - eolith.c/eolith16.c: Fixed incorrect Eolith speedup patch from 0.112u3 - legionna.c: Fixed OKI6295 sound clock speed in Heated Barrel,US AAF Mustang (bootleg) and Seibu Cup Soccer - model2.c: Fixed the model2.c rom definitions for some games that weren't even loading and made the infamous unknown z-sort mode not a fatal error. - Bowling 3D: Added Samples sound + samples - Sprint 4: Update driver. Removed Discrete sound and fixed VSync. - Steel Talons: Added pld (GAL20V8A at location 6NP) - Super Street Fighter II: Changed the 'Tournament' Street Fighter games (ssf2tb, ssf2tbr1 and ssf2tbj) to not have a network adapter present by default - Total Vice: Added CD-ROM image - Ultra Tank: Fixed M6502 CPU clock speed and added 'Spare' dipswitch - Save state: Added save state support to The Combatribes, Double Dragon 3 and Jail Break - Input port . Removed obsolete joystick calibration junk from the osdepend layer. If anyone needs this functionality, I will look into providing a way for the OSD code to add menus in the UI. . Input/Control fixes in Demons and Dragons, Hyper Crash, Konami GT, midvunit.c, namcos2.c, Over Drive, Simpsons Bowling, Super Speed Race, Super Speed Race Junior - Dipswitches . Added DIP locations to News, Ninja-Kid II, megaplay.c, nemesis.c and segas16a/b/18.c . Dipswitch fixes in Calorie Kun, Diamond Run, Fast Lane, Mazin Wars, Quiz Crayon Shinchan, Crayon Shinchan Orato Asobo, SDI (System 16B) and Ultra Tank - Description changes of Laser Strixx - MAME . Added tools to generate regression tests and mamedev.org-compatible reports. The report generator is cross-platform, but the test running code is Windows-only at the moment. . Defined several new exit codes for "unknown game" and "invalid config" and changed the Windows OSD layer to output them . Fixed bug where the window thread would stop processing events when MAME was paused . Removed cpu_gethorzbeampos() and replaced it with calls to video_screen_get_hpos(). Also changed TMS34010 configuration to take a screen number, and changed atarigen_get_hblank() to take a screen number as well. . Fixed a number of BIOS-only drivers to not crash when run . Fixed bugs asserts0112u4ora, leftover0112u4ora and nes0112u4red - Compiling: Changed file2str to be built into the obj directory 0.112u4 - New Non-Working games: 'Tokimeki Memorial Oshiete Your Heart' and 'Tokimeki Memorial Oshiete Your Heart Seal version PLUS' - T5182 CPU . Added support for T5182 custom CPU, which gives sound to Darkmist, Mustache Boy and Panic Road. . Added Z80, YM2151 sound and completely reconstructed internal T5182 rom to the games - Audio streams . Changed most sound cores to generate audio at their internal clock rates (or some multiple/divisor of them) rather than at the user specified output rate. This completes the second step of decoupling audio emulation from the user's sample rate choice. . Fixed a number of issues related to the new streaming engine and sound code . Fixed crash when restoring from a save state . Fixed crash when running with -nosound . Fixed loud looping when halted in the debugger . Fixed crash when changing sample rates (YM2203 mainly) . Fixed crash in K054539 sound core . Fixed rdtsc0101u5yel (sound stutter if rdtsc is enabled) - Discrete sound . New DISCRETE_ADJUSTMENT_TAG module that uses tags instead of port numbers. Updated all games to use it, because it is now the preferred method. . Added DISC_555_TRIGGER_DISCHARGES_CAP - DMA-driven DAC sound: Removed a big pile of goofiness from the driver now that it is no longer necessary - RF5C400 sound . Implemented volume envelopes . Correct the channel volume calculation . Documented registers for reverb, chorus, and per-channel digital filter (actual effects are not implemented yet) - SN76477: Added noise RNG (random number generator) polynomial - YM2151 sound: Changed YM2151 to prevent timer problems - balsente.c: Fixed input in Mini Golf and Shrike Avenger, so that digital controls works - galspnbl.c: Fixed most dipswitches and inputs in the driver (see Gals Pinball and Hot Pinball) - ksys573.c . Marked 'Dancing Stage featuring TRUE KiSS DESTiNATiON' and Salary Man Champ as working which were incorrectly tagged . Added the correct hashes for 845jab02 and NO_DUMP's for all the flash roms to clone Dance Dance Revolution (GC845 VER. JAB) - mw8080bw.c: Fixed bug where games would freeze after state load - Attack Ufo: Cleaned/Speedup up driver, making it perform like a 1MHz 6502 game once again - Checkmate: Added Discrete sound. Still need to breadboard to get noise/filter frequencies. - Cosmic Chasm: Removed custom sound code and replaced it with a simple DAC implementation - Dancing Stage: Added user3 roms (nodump) and a new CD-ROM image to clone (GC845 VER. JAB) - Dog Patch: Converted game to use PORT_POSITIONAL - Empire City: Removed MDRV_CPU_PERIODIC_INT in the Street Fight machine driver - no more slowdowns - Mustache Boy: Added missing flip X (video\mustache.c) - Shinobi: Added encrypted cpu2 rom to clone Shinobi (set 3) - Speak & Rescue and clones: Fixed SN76477 sound - Triple Hunt: Added PORT_CROSSHAIRs - Input port . Fixed some obscure masking, shifting, overflow and signed problems in the input system. Most noticeably this fixes tis he analog controls in Street Football and stops the pedal in Redline Racer from rotating through gas/no gas as the pedal is pressed. . Analog ports no longer save and load their default value from the config file. It should only ever use the value specified in the driver, and storing it can cause problems the more the game is restarted and the value starts to change. . Added a bunch of validity tests to the analog ports. Some are commented out until the problems they uncovered are fixed. . Analog ports now defalt to a PORT_MINMAX of (0,mask). This means you no longer have to specify PORT_MINMAX if you are not using any limits. Removed a bunch of no longer needed PORT_MINMAX entries. - Dipswitches . Updated a number of drivers to use the new PORT_DIPUNUSED macros . Dipswitch fixes in Beam Invader, galspnbl.c and M-4 - MAME . Modified the raster position calculations to round to the nearest pixel which produces more consistent results (lib\util\bitmap.c) . Bitmaps are now cleared to 0 by default. This fixes a number of random crashes in games . Improvements to the memory pool routines: Added a pool_clear() call, to clear out a memory pool without freeing the pool itself. Added support for pool_realloc() with a size of zero, which effectively frees a pointer within a pool. Added testing code to validate pool behavior. . Added support for more flexible word wrapping with CJK characters. Also added wrapping on hyphens. 0.112u3 - NOTE: The biggest change in this release is a significant change to the way sound is generated. The previous implementation allowed the OS-specific code to control the sound, which ended up having subtle impacts on the consistency of the emulation. For example, a user running with one sample rate might get different results from a user running at a different sample rate. As of this release, the OS-specific code is no longer in control of sound generation at all. Instead, the core emulator decides how much sound to generate and hands it over 50 times/second to the OS layer. As a result, this change impacts not only the internals of the sound system, but also requires us to change the way we stream sound in the Windows-specific code (and the SDL code will need to be updated as well). A side-effect of this change is that it is now very important for the frame rate to be as accurate as possible. This means that the behavior of the code which throttles MAME down to the proper frame rate is very important. Thus, several changes to the way MAME throttles its speed have been implemented. Hopefully this will produce more regular frame rates and fewer sound glitches. As usual, report any problems to MAME Testers. - New games: Crazy War and Sidewinder - New Non-Working games: DrumMania 2nd Mix, Salary Man Champ and several versions of Dance Dance Revolution, Dance Maniax and Dance Freaks (these games need a MP3 decoder) - New clones: Chinese Heroe (Taito), Meikyuu Hunter G (Japan, set 2) and Spellbound - New drivers: eolithsp.c (speedup handling driver) and vegaeo.c - Laser Disc: Added new tool makemeta.exe, which can generate properly formatted metadata for laserdisc CHDs using either a specially captured AVI as input (preferred) or a hand-crafted set of encoded Philips codes. - K054539 sound: Changed emulation to run at native sample rate (sound\k054539.c) - Audio streams . Changed sound streaming engine to be emulated time based instead of sample based. This means that emulation behavior is independent of the user-specified sample rate (except that some sound cores still use this value; to fixed in a future update). . Separated sound generation from video frame rate. Sound is now pushed to the OSD layer at a fixed rate of 50 updates per emulated second. This entailed a change in the way sound is handed to the OSD layer. Instead of the OSD layer requesting arbitrary numbers of samples each frame, the core now pushes the appropriate number of samples based on the emulated time. . Simplified the OSD interface for sound. Removed osd_start_audio_stream and osd_stop_audio_stream; OSD initialization code is now responsible for initialization. Removed osd_get_mastervolume and osd_sound_enable, keeping management of the main volume in emu\sound.c. - Discrete sound . Updated the DISCRETE_OP_AMP_OSCILLATOR circuit to get it ready for a future driver. It allows the DISC_OP_AMP_OSCILLATOR_1 | DISC_OP_AMP_IS_NORTON oscillator to use nodes to adjust the resistance values instead of only being static values. . Added discrete sound for Amazing Maze . Added new Discrete modules: DISCRETE_LOOKUP_TABLE & DISCRETE_LOGIC_JKFLIPFLOP - acefruit.c . Added 'sidewndr' and 'spellbnd' (was 'sidewnda') which were missing in previous releases . Reorganised the layout to have all lamps and solenoids at the top (where there's nothing) . Renamed some lamps and solenoids . Added 'starspnr'. Unfortunately, the game is not working due to a bad dump (H11). - cidelsa.c: Fixed the small graphic issues in the driver. Draco still has imperfect colors. - cps1.c: Connected brightness support on the CPS1 board (not just CPS2) after verifying that the real board does support it. - eolith.c/eolith16.c: Added speedups to many of the Eolith games - gticlub.c/nwk-tr.c: Improved the K001604 tilemap chip emulation - ksys573.c . Added state saving to emu\sound\cdda.c & mame\drivers\ksys573.c . Added DS2401 emulation . Added X76F100 emulation . Added ZS01 emulation (HLE of System 573 PIC) . Added write support to X76F041 emulation . Many new games partially supported - neogeo.c: Fixed naming and identification of several NeoGeo roms - realbrk.c: Added sprite rotation to the realbrk driver. This fixes the jigging reels in the pachinko games and the cue position and orientation in the pool games. - Amazing Maze: Added discrete sound - Deal 'Em: Added pld (260 bytes) - Excite League: Fixed cpu1 rom loading - Gee Bee: Fixed regression (irq0_line_hold -> irq0_line_pulse) - Ghouls'n Ghosts: Fixed background and texts priorities - Lunar Lander: Fixed thrust control - Ski Champ: Added controls - Starspinner: Fixed Z80 CPU clock speed, visible area and VSync. Fixed gfx1 rom loading and added dipswitches. - Super League: Fixed cpu1 rom loading - Super Lup Lup Puzzle: Added missing gfx1 roms to clone Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108) - Super Puzzle Fighter II Turbo: Added CPS2 key to clone (Asia 960529) - Input port . Added the -vol shortcut to -volume to match the docs . Added new joystick options -joy_deadzone & -joy_saturation. Removed -a2d_deadzone. These now apply to the analog and digital-from-analog data. See windows.txt for more info. . Analog joystick data is divided into chunks for IPT_POSITIONAL controls. e.g., for a 7 position emulated control, a joystick axis will move 3 positions each way from center + center = 7 positions. One good use for this is 49way sticks. The driver input code just needs to be set to IPT_POSITIONAL PORT_POSITIONS(7) and use a PORT_REMAP_TABLE. . IPT_PEDAL controls are now nothing special in the core. They can use any control like a paddle does. At the OS input level, the code has been changed to supply full joystick axis and the +/- axis. This means any half axis or full axis can be used for any emulated control. e.g., a pedal that only outputs Y- data can be used for the full range of the gun in boothill. Or a full axis slider on a joystick can be used in its full range as an emulated pedal. INC now increases the pedal value, not DEC. . When setting up the player controls in the menu, the first time an analog joystick axis is selected it will use the full range. If you immediately select the same joystick axis it will toggle to the half +/- axis. . Analog joysticks can now simulate relative devices such as a trackball. The further you move the joystick, the faster the trackball spins. Use the sensitivity setting to adjust. . Added support for mouse +/- axis to be used as button input . Modified IPT_PADDLE and IPT_AD_STICK so they do not behave as pedals using half the joystick range if their default value is equal to one of the PORT_MINMAX values. Now you can select it as the full or +/- part axis. - Dipswitch fixes in Big Twin, Hot Chase, ksys573.c, Rock 'n Rage and Starspinner - MAME . Created new utility module pool.c for managing memory pools. Rebuilt auto_malloc on top of this concept. . Modified ledutil to save the LED state when returning from pause . Rewroted throttling code to be more forgiving of OSD-level glitches and uneven frame rates . Changed font scaling again. Fonts 24 pixels tall and above are scaled the old way. Fonts smaller than that are scaled via integral scale factors and adjusted the new way. . Fixed garbage in fonts on some systems - Compiling: Updated makefile to remove the map file when making clean - Debugger: Fixed the crashing in debug builds 0.112u2 - New games: Asura Buster, Dynamite Bomber and Search Eye Plus V2.0 - New Working games: Altair, Blood Warrior, Choko, Draco, Jyangokushi and Wyvern Wings - New Non-Working games: Candy Puzzle, Deal 'Em (MPU4 Conversion Kit), Harem Challenge, Koi Koi, Laser Stixx, Laser Quiz, Laser Quiz '2' Italy, Magic Premium and Ski Champ - New clones: Space Battle Ship Gomorrah, Garou - Mark of the Wolves (bootleg) and X-Men (4 Players ver JBA) - New drivers: cubocd32.c and koikoi.c - 680x0 CPUs: Fixed behavior of MOVEC instruction on later 680x0 chips and in the disassembler - FD1094 CPU . Fixed bad bits in a couple of FD1094 keys (goldnaxu, gprider and mwalku) . Added a small optimization to the FD1094 decoding step - Namco 52xx sound: Implemented filters for the 52xx sound effects in preparation for future changes - Namco 54xx sound: Added discrete filters to the new Namco 54xx sound effects (mame\audio\namco54.c) - Laser games . Finished hooking up laserdisc support to the new audio/video compression. Note that we still do not have canonical CHDs of laserdisc data at the moment, but all the support is now present for when they start to appear. . Added Amiga CD32 BIOS and driver Cubo CD32 - arcadia.c: Fixed regression in Xenon (Arcadia, V 2.3) sprites - cidelsa.c . Rewroted the CDP1802 CPU emulation as a state machine . Altair: Fixed CDP1869 CPU clock speed and visible area . Destroyer: Added NVRAM. Fixed CDP1869 CPU clock speed, visible area and VSync. . Draco: Fixed dips, inputs and added NVRAM. Fixed CDP1802 CPU1 and CDP1869 CPU3 clock speeds and visible area. - cps2.c . Added keys to 1944j, armwara, batcira, choko, ddsomb, ddtoda, gwinga, hsf2j, jyangoku, megamn2a, mshvsfa, mshvsfa1, progeara, sfza, sfzh, sfzb, sfzbr1, sfz2b, sfz2br1, sfz2h, sfz2n, sfz2ah, sfz2ab, sgemfh, xmcotah, xmvsfj, xmvsfjr1, xmvsfjr2, xmvsfa, xmvsfar1, xmvsfh, xmvsfb . Removed all XORs and support for them from MAME . Removed XOR in clone Super Puzzle Fighter II Turbo (Asia 960529) and mark the game as non-working until a key is found - fuukifg3.c: Fixed a couple of bugs in the driver - galaga.c: Replaced 3x DAC with Discrete sound (audio\galaga.c) in Bosconian, Galaga, Pole Position, Pole Position II and Xevious - limenko.c: Fixed E1-32XT CPU clock speed and added missing sound2 rom in Legend of Heroes and Super Bubble 2003 - Altered Beast: Properly idenitified cpu2 sound ROMs for clone (set 2, MC-8123B 317-0066) - B.C. Kid / Bonk's Adventure . Protection data fully verified, this corrects tilemap colors in levels 2 and 3 . Fixed implementation of MCU command 43 - Bio-ship Paladin: Fixed gfx, sound and rom names and added missing proms (V-sync hw, H-sync hw and ?) - Blood Warrior . Protection data extracted, still needs to be verified . Collision detection simulation thanks to tests on real board - Choko: Added missing gfx1/sound1 roms and CPS2 key - Jyangokushi: Added missing gfx1/sound1 roms and CPS2 key - Mega Man: Mega Man - The Power Battle (CPS2) is now clone of Mega Man (CPS1) - Millipede: Added cocktail mode and DIP locations - Porky: Added SN76496 sound and changed user1 rom to cpu1. - Real Bout Fatal Fury 2: Added new sound1 rom - Space Encounters: Fixed mapping of spaceship controls - Super Lup Lup Puzzle: Added missing gfx1 roms to clone Puzzle Bang Bang (version 2.8 / 990106) - Wyvern Wings: Added I8052 (6MHz) CPU and missing gfx1/sound1 roms. Fixed visible area. - Dipswitch fixes in cidelsa.c, Millipede and mpu4.c - MAME . Added several new modules to the utility library libutil. First is a generic huffman encoding module. Second is a module that allows you to read/write AVI files in a platform-independent way. And third is a lossless A/V compression module. These three pieces together, plus some changes in the CHD code, allow for the creation of CHDs with compressed audio and video. . Added two new commands to chdman: -createav converts an AVI file in uncompressed YUY format or HuffYUV-compressed YUY format with "left" prediction into a CHD. And -extractav converts a CHD containing compressed audio & video into an uncompressed YUY format AVI file. . Changed font scaling again. Fonts 24 pixels tall and above are scaled the old way. Fonts smaller than that are scaled via integral scale factors and adjusted the new way. . Added pause support to the output system: Added "pause" message through the Output system to let clients know when MAME is paused. The state of an item is now sent when the item is first created. Updated ledutil to use the pause state. . Removed the inclusion of unnecessary header files across the project . Moved some additional pieces of core functionality in the core utility library . Fixed bugs analog0112u1gra, UItext0112u1yel, layout0112u1gre and pinbo0112u1gre - Debugger . Fixed bug in debugger that caused incorrect end offsets to be computed on CPUs with an address shift 0.112u1 - NOTE: This release brings with it a major source code reorganization. Along with these changes come a number of makefile alterations to better distribute the build knowledge within each major subdirectory. There may be some build issues or other interesting side effects to this change. Report them on MAMETesters and future updates will include fixes. - New games: Sidewinder (Ace Video Fuit Machine - not activated) - New Working games: Cash Quiz - New clones: Power Spikes (China) and Rastan Saga (Japan Rev 1) - New drivers: acefruit.c (not activated) - CDP1802 CPU: Fixed the disassembly of CDP1802 opcode LSKP. Changed the CDP1802 opcode OUT to increment R(X) after calling the write handler. - M6809 + HD6309 CPU: Changed cores to call the MAME debugger when CWAI/SYNC is used - PPC403/60x CPUs: Added support for the Motorola MPC8240 to the core - MB88xx CPU/Namco 54XX sound (cpu\mb88xx\mb88xx.c) . Replaced implementation of Namco 54xx sound chip with new MB8844 CPU core running the original embedded ROM code in Bosconian, Galaga, Pole Position, Pole Position II and Xevious . Moved old sound core (sound\namco54.c) to (mame\audio\namco54.c) . Pole Position and Bosconian no longer require samples as a result - C352 sound . Rewroted loop and flag handling . Added support for global key-on register . Fixed state saving - RF5C400 sound: Rewroted much of the sound emulator to support looping, stereo panning and 8-bit sample support - Exidy sound: Fixed the exidy/stern-sb1000 6840-based sound hardware to use what is believed (based on the schematic) to be the proper LFSR/PRNG waveform for its secondary clock source (drivers: berzerk.c, exidy.c and victory.c - audio\exidy.c) - Sound . Added new function sound_find_sndnum_by_tag() to look up a sound index by its tag . Updated afega.c, Dragon Bowl, ettrivia.c, Funny Bubble, jack.c, Mouser, Mustache Boy, seta.c, Trivia Madness and Wink to use HOLD_LINE for sound IRQs - bfm_sc2.c + mpu4.c: Verified and improved stepper behavior based on comparison with a real machine (machine\steppers.c) - btime.c: Fixed visible area in all games. Aaccording to an Bump 'n' Jump arcade picture. - cidelsa.c . Fixed the disassembly of CDP1802 opcode LSKP . Changed the cdp1802 opcode OUT to increment R(X) after calling the write handler . Set CDP1869 display size and visible area according to data sheet (video\cdp1869.c) . Added CDP1869 CFC emulation (probably never used by anything but just for completeness' sake) (video\cdp1869.c) . Cleaned up driver . Fixed visible area - cps2.c: Added CPS2 keys to Eco Fighters (USA 931203), Eco Fighters(Asia 931203), Ultimate Ecology (Japan 931203), Night Warriors: Darkstalkers' Revenge (Hispanic 950403) and Night Warriors: Darkstalkers' Revenge (Brazil 950403) - konamim2.c . Improvements to the driver . Added preliminary CD controller emulation . Hooked up some more multi-processor functionality and interrupts - namcos2.c: Added back the crosshairs. Turns out they are needed for calibration. - snk.c . Added new IPT_POSITIONAL control type. This is for Ikari type rotary controlsf. This makes rotary controls easy to enter without custom handlers. . Removed the gwar control hack from the Ikari games that did not need it - Bubble Trouble: Fixed crosshairs - Cash Quiz: Fixed rom loading - Guerrilla War: Removed the gwar control hack from the Ikari games that did not need it. Modified the Guerrilla War control hack so it is only used for 1 frame, making it unnoticeable. - Heated Barrel: Added a bunch of new protection routines - Major League: Removed patch that it is not needed - Mighty! Pang: Added correct gfx1/sound1 roms - Raiden Fighters Jet: Fixed uninitialized use of video_dma_address to address (crashed in 64-bit builds) - SD Gundam Sangokushi Rainbow Tairiku Senki: Added a bunch of new protection routines - Seawolf . Added new IPT_POSITIONAL control type. This is for gray-code devices like Seawolf. This makes gray-code controls easy to enter without custom handlers. . Modified crosshair code to be based on real scaling, see Seawolf for an example. It can now also have multiple crosshairs on one input port if needed. . Updated Seawolf to use the new PORT_REMAP_TABLE - Tekken 3: The infamous C352 sound static are gone now - Input port . Added new IPT_POSITIONAL control type. This is for Ikari type rotary controls and gray-code devices like Seawolf. This makes rotary and gray-code controls easy to enter without custom handlers. . Fixed some rounding and min/max errors in the core input code . Modified crosshair code to be based on real scaling, see Seawolf for an example. It can now also have multiple crosshairs on one input port if needed. . Updated Boot Hill, Gun Fight, Seawolf and Space Encounters to use the new PORT_REMAP_TABLE - Dipswitch fixes in M-4 - Save state: Added save state support to Diamond Run, Ghosts'n Goblins, Gun.Smoke, lasso.c, Solomon's Key and terracre.c - MAME . Created new generic bitmap management code with fewer dependencies on the rest of MAME so that it can be used by utility code. Changed bitmap_alloc to always take a format parameter. Deprecated bitmap_alloc_format. Updated all drivers to pass an explicit format when allocating a bitmap. Changed auto_bitmap_alloc in the same fashion. . Turned ENABLE_BORDER_PIX back on, since so many people seem to be having trouble without it. . Made UI font size computations more flexible. This ensures that fonts are scaled vertically by an integral factor and should produce nice proportions for most fonts now. . Made osd_uchar_from_osdchar a member of the osdcore file library . Improved ZIP file searching to look first for name + CRC match, second for CRC-only match and lastly for name-only match . Split some functionality from fileio.c into new module corefile.c, which can be used by utilities to get unicode support and fopen-style file I/O built on top of the OSD routines. Rebuilt fileio.c on top of the core file code. Added mame_core_file() to get the underlying core_file object from a mame_file so it can be used with png and xmlfile code. . Changed file2str to work for any binary file and output the data as an array of bytes rather than a string . Added new function driver_get_count() to return the number of drivers . Cleaned up information in mamedriv.c - Compiling . Changed the way the tiny build works. There is now the concept of a SUBTARGET. By default SUBTARGET is set equal to TARGET (which is mame) and everything builds as normal. The makefile that is included is now src/$(TARGET)/$(SUBTARGET).mak. Thus, to do a tiny build, you now have to specify "make SUBTARGET=tiny". This will produce an output executable with a name $(TARGET)$(SUBTARGET) (mametiny in this case). . Worked around compilation error on MSVC that caused "Calendar error" in the Neo Geo games 0.112 - NOTE: Believe it or not, today (February 5th, 2007) marks the official 10th anniversary of the first release of MAME! One of the newly supported games in 0.112 deserves special mention. Teeter Torture is a prototype game from Exidy that is very rare. With permission of the current rights holder for the game, I'm happy to announce that we have been able to dump the ROMs and make them publically available for non-commercial use. I encourage you to try the game out - it really is unique and happens to be one of the better prototype games that never officially made it to the arcade. - New games: 2x Hyper Street Fighter 2, Lady Master of Kungfu and Teeter Torture - New Working games: Destroyer (Cidelsa) and Witch - New Non-Working games: Alpha One, Cash Quiz and Wyvern Wings - New clones: Double Dragon (US Set 2), Destroyer (Cidelsa, set 2), Golden Poker Double Up (Mini Boy), Mighty! Pang (USA) and Pool 10 (Italia, set 2) - New drivers: (stvinit.c) - I8039 CPU: Minor cleanup to the disassembler - MC8123 CPU: Improved decryption of MC8123-0054 (Shinobi sound CPU) based on a new dump (machine\mc8123.c) - BSMT2000 sound: Removed linear interpolation by default since the original chip did not do interpolation - Exidy sound: Proper implementation of the noise generator (drivers: berzerk.c, exidy.c and victory.c - sndhrdw\exidy.c) - Irem GA20 sound: Rewroted faux x86 assembly in the sound core (sound\iremga20.c) - SCSP (YMF292-F) sound: Fixed DSP RAM initialization - Konami System GX: Cleaned up some poorly written code in konamiic.c; there is still much work to be done here, but it fixes the GX sprites (machine\konamigx.c). - cidelsa.c: Improvements to the driver - dooyong.c . Updated the driver to use the new-style banking system . Added some preliminary save state support - funworld.c . All crystals documented via #defines . All CPU and sound clocks derived from #defined crystal values . Added DIP locations to all games . Added proper tsc87c52 MCU dumps to monglfir and soccernew . Modified the refresh rate to 60 fps - pmpoker.c . Crystal documented via #define . CPU clock derived from #defined crystal value . Replaced simulated colors with proper color prom decode . Cleaned up the driver a bit . Updated color PROMs - sslam.c . Correct the music sequencing simulation of the sound controller in SSLAM based on poking a real board Guru kindly provided. Added I8051 (12MHz) CPU2. . Added save state support . Added DIP locations - Berzerk/Frenzy: Fixed popping in speech - Columns '97: Fixed random dots in graphics - Cyber Commando: Fixed crash by adding the missing M37702 rom - FixEight: Fixed toaplan2.c driver to add controls for player 3 - Four Trax: Added new user3 rom - Mongolfier New: Added cpu2 rom - Moon Patrol: Fixed scrolling so that it matches the schematics - PlayMan Poker: Added color prom ($0) - Renegade: Fixed MDRV_SCREEN_VBLANK_TIME (renegade0111u4red) - Soccer New: Added cpu2 rom ($0) and replaced M65SC02 CPU1 with M65C02 - Subs: Fixed Player 2 sonar (subs0111u6yel, vidhrdw\subs.c) - Teeter Torture: The original rom images for the game have been made available for free. Download at http://mamedev.org/roms/teetert - Tempest: Added second player controls support - Witch: Fixed cpu1 rom loading and visible area - Other bug fixes: debug_assertions0111u6ora, z80update0111u6red, memory_leak0111u6ora (partial), crosshair0111u5gra and ddraweffect0111yel - Dipswitch fixes in cidelsa.c, ninjaw, sslam and witch - Input port: Added PORT_DIPLOCATION to arabian, funworld.c, itech32.c, sslam.c, toaplan2.c and wwfwfest - MAME . Changed alpha blending code to use multiplies instead of table lookups to simplify it . Added osd_rmfile to the osdcore, replacing calls to remove() . Fixed memory leak with -wavwrite switch . Cleaned up a number of drivers that were using malloc from within DRIVER_INIT to use malloc_or_die instead 0.111u6 - New games: 'Star Soldier: Vanishing Earth' and Vivid Dolls - New Working games: Connect 4, Knights of Valour 2, Magical Tetris Challenge and Martial Masters - New Non-Working games: Super Real Mahjong VS and Tower & Shaft - 8085 CPU: Removed archaic i8080_EXACT flag from the core - ARM7 CPU: Fixed the disassembly, operation and cycle timing of many Thumb instructions in the core - Z80 CPU: Fixed new NMI handling, changed in 0.111u5 - OKI6295 sound: Fixed a couple of errors introduced in the pin shuffling - S14001A sound: Fixed the issue with random words being spoken instead of the proper ones. Word is now latched at the proper time. Changed S14001A clock speed to 5MHz. - SCSP (YMF292-F) sound: Added preliminary support for the built-in effects DSP, which lots of games use for reverb, QSound and other effects - SN76477 sound: Rewroted the emulator from scratch. The main difference between the old one and the new one is that it is based on measurements from a real chip. Also the emulator is fully analog, meaning that timings/frequencies, etc. are based on voltage levels. This gives a much more true-to-life emulation where the weird behavior of the real chip comes emulated for free. The code itself is also a lot simpler and more understandable. - Amiga system: Fixed the data fetch and scrolling calculation for almost all video modes in the video driver (alg.c, arcadia.c, mquake.c and upscope.c) - 8080bw.c: Fixed visible area and VSync - mw8080bw.c . Implemented video circuits in the driver based on schematics. Note that this affected the visible area, so overlays will need to be adjusted. . Standardized the visible area across all games . Updated driver to use properly computed video timings and scanline interrupts . Fixed visible area and VSync - mpu4.c: Fixed assertion in driver. Fixed the mechanical meter operation, enabling coin entry in Connect 4 - nemesis.c: Correctly connected sound IRQ in GX400/Nemesis driver - nmg5.c: Fixed YM3812 sound clock speed in the river - segaorun.c: Cleaned up dipswitches and added documentation to the driver - segas16a/b and segas18.c: Updated drivers to be mono and swapped button 1/2 to match instruction card - Berzerk and Frenzy: Added the missing volume and frequency controls to the driver and s14001a core. Fixed the issue with random words being spoken instead of the proper ones. Word is now latched at the proper time. - B-Wings: B-Wings (Japan new Ver.) is now original - Connect 4: Fixed the mechanical meter operation, enabling coin entry - Dream World: Fixed clocks and other details based on new measurements. Fixed VSync. - Gorf: Changed game to use HOLD_LINE instead of PULSE_LINE for scanline interrupts. The timing is still off, but the game runs now. - Major League: Added new dumped 68000 cpu1 rom - Night Slashers: Fixed YM2151 sound clock speed - Phantom II: Implemented cloud generator - Raiden: Fixed OKI6295 sound clock speed - Space Encounters: Emulated the trench circuit and implemented flickering of the strobe light, to be eventually connected with artwork. - Xevious: Changed game to use irq0_assert_line instead of irq0_pulse_line to prevent it from dropping interrupts - Input port . Added mappings for break and pause keys . Cleaned up stray variables from the crosshair drawing removal. Also removed some orphaned function declarations. . Changed automatic crosshairs so they are not quite so automatic. They now need to be explicitly specified by the driver in the input ports. . Changed the PORT_CROSSHAIR macro to take a shorter form of the axis name. Updated all lightgun drivers to have this macro in its default state. - Dipswitch fixes in outrun and shangon - MAME . Changed the contract of the tilemap_create() call so that it is guaranteed to succeed or die trying. Cleaned up code paths that checked the result of this operation to be simpler as a result. . Fixed time H/V position reporting during the first frame of execution using the new video routines . Removed line array from mame_bitmap. Converted dozens of drivers over to using BITMAP_ADDR macros instead. . Defined new osd core function osd_is_absolute_path(). Changed behavior of core fileio so that absolute paths are identified and search paths ignored in that case. . Changed driver_add/find/remove functions (driver.c) to fatalerror if they cannot find their targets . Improved validity check for coinage order so that it prints out the correct order if an error is detected . Added support for screenless drivers . Incorporated changes to MESS CPU cores to fix asserts and improve Z80GB emulation - Compiling . Tweaked the main makefile to better support parallel builds . Moved some of the tool sources to a new subdirectory tools - Debugger . Added win_output_debug_string_utf8(); a UTF-8 wrapper for OutputDebugString(). Changed code to use it. . Added sliders for debugging crosshair positioning (debug build only) 0.111u5 - New Working games: Dream World - New Non-Working games: Two Minute Drill and 3x Super Don Quix-ote - New clones: Bubble Bobble (bootleg with 68705), Multi 5 / New Multi Game 5 (earlier) and Vs. Super Mario Bros. (alt) - New drivers: 2mindril.c and superdq.c - M6509 CPU: Fixed a register naming bug (cpu\m6502\m6509.c) - Z80 CPU . Rewroted Z80 interrupt handling to avoid a bad bug in the post-EI interrupt signalling . Changed NMI handling. NMIs are now latched in set_irq_state but are not taken there. Instead they are taken at the start of the execute loop. . Changed IRQ handling. IRQ state is set in set_irq_state but not taken except during the inner execute loop. . Removed x86 assembly hacks and obsolete timing loop catchers - S14001A sound: Fixed a minor problem with sound clipping - TMS5110/5220 sound: Fixed PRNG noise in the code and added signal wrapping to match the patent - TMS9928 video: Removed gross TMS9928a configuration in place of more standard techniques. Updates the Cliffhanger and sg1000a drivers accordingly. - 6821 PIA: Added an assertion to prevent usage of pia_set_input_[a|b]() when input reading callbacks are specified - CD-ROM/Hard Disk: Changed behavior in chdman so that a 0 sector size means the default - Laser games: Added support for the custom Badlands commands to the LD-V1000 emulation (machine\laserdsc.c) - afega.c, cave.c, esd16.c, unico.c, vamphalf.c, yunsun16.c: Added documentation to the drivers - bfm_sc2.c: Cleaned up memory maps in the driver - contra.c: Fixed flip screen switch and changed COIN3 to SERVICE1 in the driver - cps2.c: Removed XORs from almost all games in place of proper emulation of the encryption - cliffhgr.c: Fixed visible area and VSync - mpu4.c: Cleaned up memory maps in the driver. Redesigned the MPU4 code so that the DRIVER_INIT only needs to take an address in the ROM for the lookup table for CHR generation to be done. Changed AY8910 clock speeds to 1720000 Hz. - mw8080bw.c . Added PORT_CONDITION where needed . Added PORT_CONFNAME entries to the 3 baseball games and Space Invaders . Save state support for all games . Fixed typo and a bug with the Sea Wolf lamps - BanBam: Fixed rom names - Berzerk and Frenzy: Added sound effects emulation to the driver (sndhrdw\exidy.c). Fixed a minor problem with sound clipping in the S14001A. - Cobra-Command: Fixed YM2203 volume - Crash: Added built-in overlay layout - Dragon Gun: Fixed input port - Dream World: Added 2x OKI6295 stereo sound and Philips 8752 MCU protection data rom - Gyruss: Added save state support - Indian Battle: Fixed sound samples - The King of Fighters 2003: Fixed bootleg code to work on big-endian systems (machine\neoboot.c) - Locked 'n Loaded: Fixed input port - Major Havoc: Added state saving and fixed sparkling vectors so slowdowns and vector list overflows can be expected. It looks much nicer, though. - Pyramid: Fixed layout (layout\pyramid.lay) - Input port: Cleaned up a few drivers to use input_port_dword_*_r - Dipswitch fixes in 8080bw.c, banbam, bfm_sc2.c, contra, dragngun, dreamwld, lockload, mw8080bw.c, nmg5.c and mitchell.c - MAME . Updated several video drivers (amiga, n64, ppu2c0x, psx, stvvdp2, tia and v9938) to use the new BITMAP_ADDR* macros instead of using the line[] array. . Fixed several duplicated global variable names, removed unreferenced items from header files and added header files for several drivers. . Cleaned up usage of auto_bitmap_alloc() now that it is guaranteed not to fail . Fixed font aspect ratio on non-1:1 resolutions . Added mechanism to cache a binary format of BDF fonts for improved loading speed. Also added a bit of progress when loading huge BDF fonts so that you know what's happening. . Updated built-in expat code to version 2.0 . Centralized some common Windows utility routines in new module winutil.c . Fixed missing sound interfaces from the MESS sound core merge - Debugger . Fixed a size bug in the SC61860 disassembler . Changed debug console code to use auto_malloc and to detect attempts at registering callbacks after initialization time. 0.111u4 - New games: Disco Boy - New Working games: Date Quiz Go Go - New Non-Working games: Ganbare Chinsan Ooshoubu, Pango Fun, Quick Jack, Strip Teaser and Stelle e Cubi - New Non-Working Laser games: Cliff Hanger (Alt), Cliff Hanger, Goal To Go and 4x Space Ace - New clones: Dynamic Country Club, 2x Dragon's Lair and Gain Ground (Japan) - New drivers: chinsan.c, cliffhgr.c, discoboy.c, mw8080bw.c, pangofun.c and steaser.c - Laser games . Added support for the Pioneer PR-8210 laserdisc player (machine\laserdsc.c - Cliff Hanger) . Improved behavior of the laserdisc code when seeking so it doesn't get "stuck" . Added preliminary support for Philips 22VP932 laserdisc player (Space Ace (European), Dragon's Lair (European)) - Hard Disk . Simplified the hard disk interfaces a bit . Added support in chd.c for lossy compressors, computing CRCs and other hashes based on the decompressed output in those cases. . Added support for asynchronous reads/writes using the new osd work item interfaces - Z80 CPU: Fixed several bugs and improved emulation of the Z80 SIO chip (machine\z80sio.c) - S14001A sound: Added preliminary emulation of the TSI S14001A speech synthesizer as found in Berzerk/Frenzy and Moonwar (prototype) (and also Stern pinballs) - TMS9928 video: Fixed TMS9928 so it recalculates the pattern mask when its dependancies change so we don't end up in weird half-modes (vidhrdw\tms9928a.c and sg1000a.c and cliffhgr.c games) - Amiga system . Fixed system time counters in the Amiga code . Fixed VSync in alg.c . Fixed gfx messed up in arcadia.c (arcadiac0111u3yel) - bfm_sc2.c . Added support for lamp matrix to the video callback in the Scorpion 2 driver . Updated lamps and inputs to better fit the new UI . VFD support has been moved to a configuration switch, as the output is actually always occurring - the switch mimics the effect of plugging in or removing the VFD from the control point. - cave.c: Updated dipswitches in the driver and added locations - cidelsa.c: Added CDP1869 video emulation to the driver. The games still don't work due to timing and interrupt issues. Fixed orientation and VSync. - konamigx.c: Minor cleanup of mind-bending codec in the driver - mediagx.c: Improved sound output in the MediaGX driver. Changed DAC sound to DMA-driven DAC. (Area 51: Site 4) - mw8080bw.c . Major rewrite of the Midway 8080 black & white driver and separating it from the huge 8080bw driver . True-to-hardware emulation of the shifting circuits . Identified and stubbed sound triggers . Fixed dipswitches, where necessary (most games) and added DIP location to all switches . Added watchdog and proper watchdog times to all the games . Added coin counter . Breadboarded the noise clocks and ensured their frequencies were correct . Blue Shark: Added partial sound emulation and non-memory mapped coin counters . Boot Hill: Added partial sound emulation and properly emulated shifter circuit . Bowling Alley: Added lamp outputs . Clowns: Added second set of analog controls . Desert Gun: Added partial sound emulation and properly added gun recoil output . Dog Patch: Added partial sound emulation and fixed analog controls . Double Play: Added partial sound emulation . Guided Missile: Added stereo sound and lamp outputs . Gun Fight: Added stereo sound . Space Invaders II: Added non-memory mapped coin counters . Space Invaders: Added non-memory mapped coin counters . M-4: Added stereo sound . Phantom II: Added lamp outputs . Sea Wolf: Added lamp output . Space Encounters: Added SN76477 sound effect and lamp outputs . Tornado Baseball: Added partial sound emulation - tumbleb.c: Changed Z80 CPU2 clock speed and improved dipswitches (bcstry, chokchok, cookbib, htchctch, metlsavr, semibase) - legionna.c: Added a large update to the driver with much more documentation on the protection and other updates (denjinmk and sdgndmrb) - system24.c: Fixed sprite draw crash (vidhrdw\segaic24.c) - Berzerk/Frenzy: Added S14001A speech (TODO: Miising DAC sound) - Dragon's Lair: Fixed VSync - Date Quiz Go Go: Fixed Z80 CPU2 clock speed and added protdata.bin rom and fixed dipswitches - Forgotten Worlds: Unified Forgotten Worlds MACHINE_DRIVER_START with cps1 and connected the OKI6295 pin control properly - Magical Cat Adventure + Nostradamus: Added missing linescroll effect. It can be seen in action on the first levels of both games. - Midnight Landing: Many improvements to the driver, including partial sound, partial video emulation and controls. Still not working. Added 2x Z80 CPUs and YM2151 and MSM5205 sound. Fixedd visible area and rom loading. - Photo Y2K: Fixed spritenum conversion 3/4 in ASIC28 (photoy2k0111u3yel) - Super Breakout: Improved dipswitches and converted "fake" dipswitches into configuration switches - Simpsons Bowling: Fixed Fujitsu 29F016 flash rom write error - Tao Taido: Fixed draw sprites/tile crash (vidhrdw\taotaido.c) - Zero Hour: Improved dipswitches - Input port . Added a new mechanism for rendering the crosshairs on lightgun games. Crosshairs are automatically rendered if lightgun controllers are specified; the game no longer has to render them. Any other analog axis can be configued to use crosshairs via the new PORT_CROSSHAIR macro. . Crosshairs are now rendered in different colors for different players, and done as an overlay using the new rendering system instead of drawing into the game bitmap, which means they no longer show up on screenshots. If you don't like the built-in crosshairs, you can make your own. Just call them cross0.png (player 1), cross1.png (player 2), etc. and place them in the root of your artwork directory. . Changed F1 crosshair toggle. By default crosshairs are on for all configured players. Toggling once will turn them all off. Each sucessive toggle will enable one player at a time until all players are again visible. - Dipswitches . Added two new convenience macros for input ports: PORT_DIPUNUSED and PORT_DIPUNUSED_DIPLOC . Fixes in cave.c, dquizgo, gaia, jumppop, m90, mlanding, pokio, sbrkout, tumbleb.c, theroes and zerohour - UI/OSD . Added support in the user interface to render all text assuming it is UTF-8 encoded. This means that UTF-8 encoded Unicode names can be used in in-game descriptions, etc. But first you will need a unicode capable BDF font. . Fixed several bugs in the Windows implementation of the OSD work item interfaces - MAME . Made suprnova RLE rendering safe from out-of-bounds accesses . Removed hacky use of the 'depth' field of mame_bitmaps. Bitmaps are now allocated with an enumerated 'format' instead. This is internally translated into bits-per-pixel in a normalized way. . Removed Machine->color_depth, which was often misused. . Added new macro BITMAP_ADDR that can be used for addressing into bitmaps. Removed the use of bitmap->line[] in the core code. The line[] array will eventually be obsoleted, so stop using it. . Changed operation of plot_pixel, read_pixel and plot_box. The first two are now inline functions and the latter just maps to fillbitmap via another inline function. . Added new required machine driver entry MDRV_SCREEN_FORMAT() which specifies the bitmap format for the screen. Removed the VIDEO_RGB_DIRECT and VIDEO_NEEDS_6BITS_PER_GUN flags that used to determine the bitmap format implicity. . Deprecated the following obsolete machine driver entries: MDRV_FRAMES_PER_SECOND -> MDRV_SCREEN_REFRESH_RATE, MDRV_VBLANK_DURATION -> MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(x)) and MDRV_VISIBLE_AREA -> MDRV_SCREEN_VISIBLE_AREA. . Added a validity check that input port names are valid UTF-8 strings . Removed Vista build hacks from windows.mak as they are no longer necessary - Compiling: Modified the makefile to make it possible to independently specify symbols generation and optimization levels 0.111u3 - NOTE: OSD porters take note of the changes to the OSD core routines - New games: Thunder Heroes - New Non-Working games: Cobra Command, Gals Panic II - Quiz Version (Japan), Gals Panic II' - Special Edition (Japan), Monster Zero and Unknown SemiCom Quiz - New clones: Dharma Doujou (Korea) and Midnight Resistance (bootleg with 68705) - UI/OSD . Changed uimenu.c to allow displaying DP switch banks which have gaps (unused switches) in them. These switches are now grayed out. . Separated "core" OSD function definitions to osdcore.h. Added more extensive documentation. . Created a new library called osdcore, which is now built and linked to each executable. Moved all definitions of expected components of osdcore into new header file osdcore.h, and added consistent documentation for them all. Removed osd_tool.c, and moved the necessary parts of its functionality into osdcore. . Defined a new set of interfaces for osdcore which creates an abstract interface for queueing work items to be potentially executed on a secondary thread. Implemented the Windows versions of these routines, but have not done any testing yet. . Separated Windows OSD core routines into individual files, as folows: windir.c - directory-related core OSD functions, winfile.c - file-related core OSD functions, winmisc.c - miscellaneous core OSD functions, winsync.c - synchronization-related core OSD functions, wintime.c - timing-related core OSD functions and winwork.c - threading-related core OSD functions. . Created new osdmini directory with minimal implementations of all the OSD core routines. These can be used to stub in functionality or as a starting point for new ports. - OKIM6295 sound . Moved OKIM6295 pin 7 state (internal divider) to internal structure . Updated all drivers to specify pin state when setting the interface . Added comments for all cases where the original frequency wasn't / 132 or /165 as the real pin state is unknown - SN76477 sound . Added the remaining input pins to the SN76477 Interface. If these pins are constant, they can now be defined in the structure as opposed to having to call functions in an init routine. . Modified all the drivers that use a 76477 - CHDMAN: Cleaned up chdman, normalizing its behavior and improving error reporting (src\chdman.c) - Amiga system updates (alg.c, arcadia.c, mquake.c and upscope.c) . Fixed blitter in line mode . Modified Copper to run on odd memory bus cycles . Fixed screen delay offset when display data fetch is not word aligned - Laser Disc + Dragon's Lair More: More updates to the laserdisc emulation, based on more complete understanding of how the discs are encoded and how they will eventually be stored. - bfm_sc2.c + mpu4.c: Added save state support to the steppermotor emulation module (machine\steppers.c). - cps2.c: Replaced CPS2 CHD with preliminary decryption function in choko, csclub, jyangoku, pzloop2, pzloop2j, sfzj, sfzjr1, sfzjr2 and xmcota. - pacman.c: Added support in MAME for "configuration" switches which are separate from DIP switches. These can be used to configure aspects of the game that don't correspond to DIP switches. Modified pacman.c to use configurations to control the speedup options (see puckman, mspacman... + Menu/Driver Configuration) - taito_l.c: Fixed invalid array access in the driver - tubep.c: Added save state support to Tube Panic and Roller Jammer - Dragon's Lair: Added 2 channel Custom sound and fixed VSync - Wheels & Fire: Added sprite X flip and removed unneeded hack in the driver. Fixed visible area. - Input port: Fixed several glitches and crashes related to the input port and unicode changes from 0.111u2 - Dipswitches . Updated Toki driver to display new (0.111u2) visible representation of physical dipswitches (see dipswitch menu) . Updated input port tokenization for MESS. Added support in MAME for "configuration" switches which are separate from DIP switches. These can be used to configure aspects of the game that don't correspond to DIP switches. Modified pacman.c to use configurations to control the speedup options. . Fixes in Dragon's Lair and pacman.c - Cheat system: Fixed searching - MAME . Added code to validate that banks are only set to point to memory that has been allocated via auto_malloc(). Currently disabled pending further review (src\memory.c) . Fixed several issues with the new Unicode support (src\unicode.c + windows\strconv.c ...) . Removed file I/O functions from osd_tool.h in favor of the ones in osdepend.h. Updated tools accordingly. Added new flag OSD_FLAG_CREATE_PATHS to the open command. - Compiling: Made a fix minor compiler compatibility tweaks to the source 0.111u2 - New Working games: Dwarfs Den - New Non-Working games: Backgammon, Fashion Gambler, Megatouch 3, Megatouch 5, Mahjong Shiyou, Pitboss II, Pitboss Megastar, 2x Skat TV, Super Pitboss, Touchmaster, Touchmaster 3000 and Touchmaster 4000 - New clones: Circus (Sub-Electro bootleg), JuJu Densetsu (Japan, bootleg) and New Tropical Angel - New drivers: adp.c, meritm.c, mjsiyoub.c and tmaster.c - 8085A CPU: Fixed SIM opcode in the emulator (Dwarfs Den etc.) - ARM CPU: Improved cycle timings in the core (cpu\arm\arm.c) - MC68HC11 CPU: Implemented MC68HC11 communications and added analog controls via MC68HC11 (cpu\mc68hc11\mc68hc11.c + hc11ops.c). - TMS32051 CPU: Various bug fixes and some new opcodes to the TMS320C51 core - 6532 RIOT: Changed code to only allow initialization at init time (machine\6532riot.c) - Samples sound: Added support for multiple instances of the samples sound system (sound\samples.c) - TMS5220 sound: Added missing initialization to the TMS5220 RNG - TIA sound/video: Changed code to only allow initialization at init time (vidhrdw\tia.c) - Amiga core system updates (alg.c, arcadia.c, mquake.c and upscope.c) . Updated 6526/8520 CIA to be able to set the value of the SP pin. This is needed to emulate the Amiga keyboard. . Updated the custom chips emulation to delay for about 24 cycles the issuing of interrupts after a write to INTENA or INTREQ. . Fixed a bug where if INTREQ got cleared programatically, it would 'forget' about pending CIA interrupts, causing the CIA to stop sending further interrupts. . Fixed the interrupt delay logic. Now it properly delays firing the irqs, not the masking/disabling. . Fixed return value for unused/invalid custom registers reads . Added Denise ID custom register to properly identify OCS, ECS and AGA . Added reset to custom, autoconfig and cia when a RESET opcode is found . Resetting the custom chips will now clear INTENA, preventing further interrupts . Fixed a bug in the RBF interrupt request code check . Fixed a bug on the 6526/8520 CIA that prevented chained counters from working . Added support for the 'blitter-nasty' bit on the blitter. Fixes many games that displayed wrong graphics. - 8080bw.c . Cleaned up the 8080bw sound changes included with 0.111u1 . Gun Fight: Hooked up coin counter and connected sounds properly per schematics . Space Invaders: Added proper watchdog . Space Invaders II: Added proper watchdog - deco32.c . Improved cycle timings in the ARM CPU core . Altered the DECO32 CPU clocks to be more realistic . Fixed ARM clock speed in Captain America, Dragon Gun, Fighter's History, Locked 'n Loaded, Night Slashers and Tattoo Assassins. - system16/18.c: Fixed several bugs in the old System 16 bootleg code - taitojc.c . Implemented MC68HC11 communications . Added analog controls via MC68HC11 . Various bug fixes and some new opcodes to the TMS320C51 core . Moved video hardware emulation to vidhrdw/taitojc.c . Implemented 3D hardware emulation - Dwarfs Den: Fixed 8085A clock speed and visible area, added AY8910 sound and memory map prom and changed region gfx2/3/4 to gfx1. - Night Slashers: Properly implemented sound interrupts - Tournament Table: Fixed crash and changed 6532riot and TIA code to only allow initialization at init time. - Input port: Converted input port definitions from code-based constructors to data-driven tokenized values. This reduces the overall MAME code size by a significant amount. Note that the tokenization is a bit different for 32-bit versus 64-bit builds, so hopefully somebody with a 64-bit system can verify that it works (mame -listxml should produce identical results to the 32-bit version). - Dipswitches . Added new visible representation of physical dipswitches for drivers that have them defined. To see this, just pull up the dipswitch menu on drivers that have been documented. . Fixes in 1942, segag80r.c and toaplan2.c - MAME . Initial support for Unicode in the core and Windows OSD. Text file reading/writing now automatically handle UTF-8 conversion. A number of Windows functions internally manage TCHARs. New Windows compile-time option UNICODE can be used to build MAME as a Unicode application (see windows.mak). . Added remaining MESS CPU cores to MAME (CP1610, Fairchild 3850/3853, LH5801, PDP1, TX-0, Saturn, SC61860, SM8500, TMS7000, NEC V30MZ, Z80GameBoy). They are disabled in the build, but will be maintained along with the MAME CPU cores as future changes are made. . Updated copyright dates in MAME source header files and docs 0.111u1 - New games: Ms. Pac-Man/Galaga - 20 Year Reunion, Live Quiz Show, Mahjong Raijinhai DX, Mahjong Reach (bootleg), Pool 10 and Tortuga Family - New Working games: Mahjong If - New Non-Working games: Cow Race, Double Dealer, Mahjong Tensinhai, Mongolfier New, Moonwar (prototype), Sky Lancer, Soccer New and 6x Mahjong Tenkaigen - New clones: Air Buster, BanBam, Booby Kids, Darth Vader, Mega Man - The Power Battle, R-Type, Puzz Loop 2 and 2x Youma Ninpou Chou - New drivers: 20pacgal.c, cowrace.c, ddealer.c, midas.c and skylncr.c - 68000 CPU . Fixed a miscompilation issue with GCC4 that was first noticed in Altered Beast but also affected Moonwalker, Galaxy Force 2, and probably many other games. . Fixed the core's compile-time self-configuration so that it uses the same code paths on LP64 platforms (64-bit Linux, etc.) as on LLP64 (64-bit Windows) and 32-bit platforms. . Removed m68000\cpudefs.h. This was used by the old assembly m68000 core. Removed from m68kmame.c and m68kmame.h as well many references to the old core (e.g A68K0, A68K2, etc.). - HD6309 CPU: Extensively rewroted the disassembler and fixed minor bugs in the interface - I8051 CPU . Fixed implementation of da_a instruction in the core . Converted 8051dasm.c to use cpuintrf_temp_str() instead of local string pools - M65CE02 CPU: Converted m65ce02.c to use cpuintrf_temp_str() instead of local string pools - M6809 CPU: Extensively rewroted the disassembler - T11 CPU: Converted t11dasm.c to use cpuintrf_temp_str() instead of local string pools - TLCS-90 CPUs . Added new Toshiba TMP90840/TMP91640 CPU core . Added TMP90841 CPU to Mahjong If, Mahjong Tensinhai and Rapid Hero - V810 CPU: Fixed minor bugs in the interface - SP0256 sound: Added SP0256 speech processor from remaining MESS sound cores (sound\sp0256.c). Sauro (Tecfri 1987) use a SP0256 speech chip. - TIA sound/video: Fixed reset problem in the emulation for Tournament Table (vidhrdw\tia.c) - TMS5110/TMS5220 sound: Fixed a problem with the chirp tables of both the tms5220 and the tms5110. Also backported Jarek's PRNG implementation from tms5110.c to tms5220.c so it no longer relies on rand(). - Irem sound hardware: Fixed copy/paste bug dealing with MSM5205 chips (sndhrdw\irem.c). Games: 10-Yard Fight, Knuckle Joe, m62.c, Moon Patrol, Shot Rider, Traverse USA and Tropical Angel - 6526 CIA: Reimplemented one-shot timer modes (Amiga hardware) - MSM6242 RTC: Moved real time clock to its own file (machine\msm6242.c) (drivers = ddenlovr.c, dynax.c, realbrk.c, royalmah.c and suprnova.c) - 8080bw.c . Added more documentation for the 8080bw driver. It describes the ports and bits for those games with no sound. In most cases, sample sounds have been attached, in order to assist with further development. The games modified are: invrvnge/invrvnga, rollingc, spcenctr, gunfight, m4, gmissile, schasrcv, 280zzzap, lagunar, lupin3, phantom2, blueshrk, desertgu, ballbomb, yosakdon/yosakdoa, and shuttlei. Two games were marked NO_SOUND although they actually do have sound: these are cosmo and dogpatch. . Added new samples (11-18.wav) to the Invaders set. . Added Samples (Invaders) sound to 280zzzap, ballbomb, blueshrk, desertgu, invrvnge, lagunar, phantom2 and spcenctr . Added Samples (Invaders) and SN76477 sound to einnings, gmissile, lupin3, m4, rollingc, schasrcv, shuttlei and yosakdon . Added Samples (Boot Hill) sound to gunfight . Removed SN76477 and Speaker sound in indianbt . Fixed SN76477 sound in invad2ct (invad2ct0110u4gre) . Added the game toggle switch to jspecter (move right for game B; otherwise it's game A) (jspecter074gra) - dynax.c . Implemented blitter rom banking . Fixed rom loading in 7jigen, hanamai, jantouki, mcnpshnt, mjangels, majxtal7, mjelctrn, mjifb, neruton, quiztvqq and yarunara . Fixed visible area in hanamai . Mahjong If: Replaced Z80 with TMP90841, fixed cpu1 rom loading, dipswitches and visible area. - nemesis.c: Fixed VLM5030 speech in Galactic Warriors (gwarrior0108u1yel) and TwinBee (twinbee0105yel) - segas32.c: Fixed EEPROM saving in OutRunners (same problem for all multi32 games) (orunners0105u4gre) - splash.c: Patched some protection checks in Funny Strip and Rebus. Neither game works yet. - Air Buster: Removed rom patches in the driver and hooked up watchdog instead - Galaxian Test ROM: Fixed testrom by adding extra ram (0xfffc, 0xffff) (tst_galx0101u3) - Mag Max: Added save state support to the driver - Mission 660: Fixed missing music (m660_0108yel) - Ninja Warriors: Fixed sprite drawing (ninjaw0104u2gre) - Performan: Fixed music speed (VBLANK/interrupt) (ID 00203) - Rapid Hero: Added TMP90841 CPU + YM2203/OKI6295 sound and missing sound roms (samples banking is incorrect) - Shoot Out: Fixed CPU1 memory banking in clone (Japan) (shootouj0102red) - Space Encounters: Fixed gfx glitches and visible area (spcenctr36b16gre). Added Samples (Invaders) sound. - Space Wars: Fixed gfx and random resets (spcewars0108u3red) - Tetris (Unknown Manufacturer): Improved graphics emulation in the driver - Toki: Fixed visible area - Tropical Angel: Fixed incorrectly drawn graphics - Cheat engine . Operation: Added preliminary direct Program Space accessor. You can hack custom handling ROM code (eg encrypted segas16b.c games). But it has several problems. And added watchpoint display for Program Space. Added new operation, "Write if Match". The cheat engine writes value only when read value matched reserved value which is stored in extend data field. . Search menu: Added 3rd search mode, "Minimum Search Mode". It's more simple than Classic Mode. Also added search memory initialize with ui_clear key and extended value edit with arrow key in this mode. Added "View Last Results", "Restore Result", "Region Selection" items to the advanced search menu. . Result viewer: Don't open this menu to avoid MAME crash in case of no search region like sms.c in HazeMD. Added quick page switch by left/right arrow key. Also changed functions for several keys in this menu. Improved no result page skip. But incomplete because doesn't skip first or last page even if no result. . Code loading: Ignored to load old format code by default. If you need to load, choose "Load Old Format" item in Options menu. . Input: Fixed activation key save on Enable/Disable menu. Fixed key handling for watch code addition from watch list menu to cheat list. Now it works with ctrl + save cheat key on the watch list menu. Enabled ui_clear key in editing a value (clear data) and on watch list menu (reset all watchpoints). . Option: Added preliminary Debug option to check internal data. Added command code save. You can save command code with save cheat key in Options menu. . Others: Added quick menu switch. It is assigned to ui_zoom in/out keys. This function works in Enable/Disable, Add/Edit, Search and Watchpoint menus. Rearranged several items on the menus. . NOTE: Delete old command code and save it newly in Options menu. - Fixed rom names in abcop, dyger, rachero, radm and thndrbld - Description changes of Mahjong If - Dipswitch fixes in Jatre Specter and Quartet - MAME . Converted some isolated parts of the Win32 OSD code to use 'TCHAR' strings rather than simple 'char' strings. . Changed -createconfig to output the INI file using mame_file rather than FILE . Added validity check for zero refresh rates . Moved a chunk of platform specific code out of chdcd.c and romcmp.c into the osd_tool code (windows\osd_tool.c). . Adding remaining MESS sound cores (sound\beep.c, sid.c, sid6581.c, sidenvel.c, sp0256.c, wave.c) to the core MAME sources - Compiling . Fixed a miscompilation issue with GCC4 that was first noticed in Altered Beast but also affected Moonwalker, Galaxy Force 2 and probably many other games. . Fixed the core's compile-time self-configuration (m68000 core) so that it uses the same code paths on LP64 platforms (64-bit Linux, etc.) as on LLP64 (64-bit Windows) and 32-bit platforms. - Debugger . Widespread cleanup of disassemblers and CPU interfaces across the project: Removed from many disassemblers the dependency on eainfo.h. The output produced by those disassemblers has been checked to be the same as before. Extensively rewrote the 6309dasm.c and 6809dasm.c disassemblers. Fixed minor bugs in the v810 and hd6309 interfaces. Removed m68000\cpudefs.h. This was used by the old assembly m68000 core. Removed from m68kmame.c and m68kmame.h as well many references to the old core (e.g A68K0, A68K2, etc.). Properly typedeffed the cpuinfo union, this affects cpuintrf.h and many, many, other files. Converted 8051dasm.c, m65ce02.c and t11dasm.c to use cpuintrf_temp_str() instead of local string pools. Moved the info.s = cpuintrf_temp_str() initialization to: activecpu_get_info_string(), cpunum_get_info_string() and cputype_get_info_string(). This allows us to remove tons of info->s = cpuintrf_temp_str() statements from the xxx_get_info() accessors of every CPU core, making them more readable. . Fixed a few more assertions lurking with the new stricter disassembler checks. 0.111 - neogeo.c: Fixed decryption of some NeoGeo bootleg sets (specifically, kf2k2mp and kf2k3upl) on platforms/compilers that don't implement memcpy as memmove (machine\neoboot.c). - MAME: Properly removes the "Autocenter Speed" from the UI when not used. 0.110u5 - New games: Twin Adventure - New Working games: Royal Card - New Non-Working games: Keyboardmania 3rd Mix, ParaParaParadise and Joker Card - New Non-Working Laser Disc games: Crime Patrol, 2x Crime Patrol 2: Drug Wars, Fast Draw Showdown, Gallagher's Gallery, The Last Bounty Hunter, 3x Mad Dog McCree, 2x Mad Dog II: The Lost Gold, Platoon, Space Pirates, 2x Who Shot Johnny Rock?, Zorton Brothers - New clones: Elephant Family (Italia, old), Jolly Card (Austria, encrypted), Royal Card (Slovakia, encrypted), Phoenix (Centuri) Set 1 and Twins (set 2) - New drivers: alg.c and firebeat.c - Video rendering system . Added new render texture format TEXFORMAT_YUY16, which is used to hold 4:2:2 Y/Cb/Cr format pixels. Updated the Windows Direct3D code and the software renderers to use this format directly. . Added new render texture fromat TEXFORMAT_PALETTEA16, which is the same as TEXFORMAT_PALETTE16 but respects the alpha component of the palette entry. Updated the Windows Direct3D code and the software renderers to use this format. . Changed the render system to respect blendmodes for screen elements rather than hard-coding them. This allows individual VIDEO_UPDATE routines to do their own compositing. . Removed the illusion from the rendering system that you could pass in arbitrary palettes. The system palette is all that is supported. - Amiga hardware (alg.c, arcadia.c, mquake.c and upscope.c) . Reorganized the laserdisc support a bit to accommodate new players. Added Sony LDP-1450 support. . Added serial in/out support to the Amiga hardware . Added hooks for output pins and light pen positioning . Fixed the horrible static at startup in the debug build . Added American Laser Games BIOS to alg.c (Amiga 500 + SONY LDP1450 laserdisc player) - cclimber.c: Cleaned up the driver - funworld.c . Major funworld driver rewrite . Merged/splitted some machine drivers, memory maps and inputs . Unified get_bg_tile_info for all games . Mapped the input buttons in a better format (all games) - Keys: 156-QW-ZXCVBNM . Added proper color PROM decode routines . Rewrote the technical notes . Splitted the driver to driver/vidhrdw . Correct the screen size and visible area to Magic Card II based on mc6845 registers. . Fixed CPU clock to 2MHz in all remaining games . Fixed AY8910 volume in all games to avoid clipping. A big Thanks to MAME Italian Forum guys for all their efforts. . Big Deal: Hooked, wired and decoded the color prom in bigdeal sets based on Jolly Card (Austria, Fun World) and Jolly Card (Austria) palette. Colors seems to be correct, but need to check against the real thing. Flagged as IMPERFECT_COLORS till a color PROM dump appear. . Cuore 1: Added color PROM, but still no routed. Also added PLDs (protected, bad dumps). Wired and decoded the color prom. Now colors are perfect. . Elephant Family: Added color PROM, but still no routed. Also added PLDs (protected, bad dumps). Fixed AY8910 frequency to 2MHz based on elephfam audio. Wired and decoded the color prom. Now colors are perfect. . Jolly Card: Fixed Jolly Card (Croatia) gfx to 4bpp and other fixes to get Jolly Card (Croatia) running. Managed Jolly Card (Italia) to work, but with imperfect graphics due to gfx encryption. Reworked Jolly Card (Croatia) inputs: The game was designed to work only with remote credits. After NVRAM init, set the payout dip to "manual". Reworked Jolly Card (Italia) inputs: After NVRAM init, set the payout dip to "manual" to allow work the remote mode. Added the bipolar PROM and GAL to Jolly Card (Italia). Confirmed the GFX ROMs as good dumps. Correct Jolly Card (Austria) screen size and visible area based on mc6845 registers. Hooked, wired and decoded the color prom in Jolly Card sets sets based on Jolly Card (Italia) redump. Now colors are perfect. Decrypted Jolly Card (Italia) gfx roms. Decrypted Jolly Card (Austria, encrypted) and managed the planes to show correct colors. The set is working properly. . Magic Card II: Correct the screen size and visible area based on mc6845 registers. Added the remaining 2 GFX planes to magiccrd, but GFX are imperfect (bad decode or bad dump?). Color PROM need to be dumped. . Royal Card: Added all inputs and dipswitches. Fixed memory map and gfx decode. Correct screen size and visible area based on mc6845 registers. Wired and decoded the color prom in Royal Card. Now colors are perfect. Managed Royal Card (Austria, set 2) to work, using the 2nd half of program ROM (seems to be mapped that way). - stv.c: Moved the ST-V protection related code into stvprot.c and added some notes about the decathlete protection and renamed stvhacks to stvinit, because it contains most of the inits as well as the speedhacks. - 64th. Street: Fixed priorities (vidhrdw\megasys1.c) (64street057gre) - Cannon Ball (Crazy Climber hardware): Cleaned up the Crazy Climber driver, replacing hacks for Cannon Ball with a separate video update callback. This fixes the missing sprites (cannonb0104u8Yel). - Circus Charlie . Added the final filtering stages to the sound (3x RC Filter), proper watchdog and memory mirroring to the driver. . Added PORT_DIPLOCATION info and save state support. . Fixed game speed and music tempo (circusc37b16ora + circusc0110u2gre) - Gratia: Fixed YMF271 sound (sound\ymf271.c) (gratia099u4red) - Honey Dolls: Fixed colors - Performan: Fixed background color (vidhrdw\slapfght.c) - Phoenix: Fixed rom names - Polygonet Commanders: Implemented various dsp56k opcodes. Polygonet Commanders now gets past the memory tests. - Valtric: Added mosaic effect (vidhrdw\argus.c). Yes, it looks as bad on real hardware as in MAME. - Input port . Removed the "Autocenter Speed" menu entry for Analog Controls that do not use it . Added a "Digital Speed" of 0 in the "Analog Controls" menu. This will cause the control to only inc/decrement once per button press no matter how long the button is pressed. Remember this is still scaled by the "Sensitivity" setting. . Scaled Windows mouse Z axis by 30 to make it usable. Most mice inc/decrement by 120 for each wheel click. Some rare ones are 30. So this means for most mice, using a Sensitivity setting of 25%, you will get 1 inc/decrement for each wheel click. - Dipswitch fixes in funworld.c, Honey Dolls and Twin Adventure - Description changes of 'Puzzle King (includes bootleg of Snow Bros.) - MAME . Minor Unicode changes for the Windows code . Merged in some MESS-specific PC support code - Compiling: Updated vconv.c for Visual C++ to support preprocessor and assembly file output in MSVC builds 0.110u4 - New clones: 7x Dragon's Lair - CD-ROM . SCSI CD emulation improvements for konamigv.c and ksys573.c games . Added Play Audio (12) command . Fixed track number . Added MSF support to Read Sub-Channel command - Laser Disc + Dragon's Lair . Rewroted the Dragon's Lair driver from the schematics. . Added new module machine\laserdsc.c which has laserdisc emulation for the PR-7280 and LD-V1000 laserdisc players. . Full emulation of the laserdisc is pending support for CHD audio/video and high quality rips, but you can operate the game and see the frame numbers that would be displayed. . Added built-in layout to display the scores, lives and credit information. . Added Dragon's Lair (US Rev. F2) and clones (US Rev. A, Pioneer PR-7820), (US Rev. B, Pioneer PR-7820), (US Rev. C, Pioneer PR-7820), (US Rev. D, Pioneer LD-V1000), (US Rev. E) and (US Rev. F). Removed the old Dragon's Lair version. . Fixed Z80 clock speed and VSync and added AY8910 sound in Dragon's Lair. - cps2.c . Removed old 'handcrafted' XORs for games which we have CHDs for and replaced them with XORs generated from MAME using the CHD. This means anyone with the CHD can easily generate the XORs (using the code I've left in there) if they need to be able to run the games with a shorter startup time. . Disabled the loading of the XORs by default for all sets with a CHD. Now only the CHD is loaded, unless the #define is changed at the top in which case only the XORs generated from the CHD are loaded. . Added XOR table for Jyangokushi (from Guru). Note that GFX/Sound roms aren't dumped on this one. . Removed user1 rom in choko, csclubj, pzloop2j, sfzj, sfzjr1, sfzjr2 and xmcota - mediagx.c: Added workaround for broken MediaGX driver (Area 51: Site 4) - kinstb.c + nss.c: Reworked the SNES raster timing to use MDRV_SCREEN_RAW_PARAMS() and friends. All but one of the "electronics tests" in the SNES diagnostics cart now pass with flying colors (machine\snes.c). - playch10.c: Fixed the crosshairs in the PlayChoice-10 gun games that got buggered in the conversion to multi-monitor support. - Raiga - Strato Fighter: Fixed sound/sound addressmaps (raiga0104u4yel) - Super Breakout: Fixed layout (layout\sbrkout.lay) - Input port: Added support for more than 4 mouse buttons on versions of Windows that support it. Win98/Me with DX7+ or XP. It defaults to regular 4 buttons if not supported. - Dipswitch fixes in Dragon's Lair - Compiling: Added some hacks to windows.mak to allow limping compilation under Windows Vista. To make these work set an environment variable called VISTA_MINGW_ROOT equal to the base of your MinGW directory, and add %VISTA_MINGW_ROOT%\libexec\gcc\mingw32\3.4.2 to your PATH environment. There are still a few issues, but this will let you build with MSVC, and will compile most of the code with GCC (minus a couple of Windows OSD files). Hopefully the MinGW folks will resolve these issues. 0.110u3 - New clones: Bionic Commando (Euro), Major Title 2 (Japan) and World Rally (set 3 - 930217) - TMS32010 CPU: Fixed bug in overflow handling and SUBC emulation (see Demon's World, Twin Cobra etc.) - Audio streams: Removed obsolete timing parameter from stream_update() - CHD . Enhanced chd.c to support hunk sizes up to 16MB, versus the previous 64k limit . Added hooks to chd.c to specify codec-specific configuration info . Added support for split CHD files. CHD files can be transparently split into multiple pieces and left that way during read access. Modifications to split files are always written to the last file. A new command chdman -split is now available to split an existing CHD file. . Added raw decryption table to Choko. Enabled the use of the large CHD-based tables by default. . Added harddisk to choko, csclubj, pzloop2j, sfzj, sfzjr1, sfzjr2 and xmcota - CD-ROM . Cleaned up cdrom.c . Removed audio implementation and relocated code into sound/cdda.c . Changed metadata format to be textual instead of binary (old metadata format is still supported) . Removed external access to CHD positions; all accesses are now done at the physical LBA level and converted internally - Konami driver updates * gticlub.c . Moved video hardware to vidhrdw/gticlub.c . Hooked up RF5C400 sound emulation . Added dualscreen support (2x 512x384) for Hang Pilot . Added texture-mapping and z-buffer to K001005 emulation (vidhrdw/gticlub.c) * hornet.c . Added support for multiple K037122 chips . Added dualscreen support (2x 512x384) for Silent Scope & Silent Scope 2 * nwk-tr.c . Added support for multiple K001604 chips . Hooked up RF5C400 sound emulation * General . Consolidated K056800 (MIRAC) sound system interface emulation (machine\konamiic.c) . Improved Hang Pilot/NWK-TR gfx board emulation - stv.c - VDP2: Fixed vertical scrolling for RGB bitmaps, this fixes corrupted gfx in Batman Forever. - VDP2: Fixed vertical line scrolling for zoomed layers, this fixes corrupted backgrounds in Astra SuperStars. - STV: Added speedup for master SH-2 in Batman Forever. - Kram: Changed clone kram3 decryption to use external tables instead of hard- coded ones in the source. - Mario Bros.: Reverted 0.110u2 graphics offset since it caused issues elsewhere - Sand Scorpion: Fixed watchdog reset (sandscrp0110u1yel) - Description changes of 'Solar Assault' and 'Operation Thunder Hurricane' - Dipswitch fixes in GTI Club, Hang Pilot and Operation Thunder Hurricane - MAME . Added ability for options_add_entries() to override defaults specified in the core. To do this, simply include an option in the list with the same name as the core option and provide a new default. This default will override the one specified in the core. . Added new option -fontpath to control where the font files are loaded from. 0.110u2 - New games: 'Dance Dance Revolution 2nd Mix', 'Dance Dance Revolution 2nd Mix Link', 4x Dancing Stage, 2x 'Fisherman's Bait - A Bass Challenge', Fisherman's Bait 2 - A Bass Challenge', 4x 'Fisherman's Bait - Marlin Challenge' and 4x Guitar Freaks - New Non-Working games: 'Jyangokushi: Haoh no Saihai' - New clones: Fenix, Hellfire (2P Ver., first edition), 3x Konami 80's AC Special and Stratovox (bootleg) - 80286 CPU: Fixed flags access in the core - CHD . Significant cleanup of chd.c . Got rid of the horrible last_error concept; now all routines return an error directly . Fixed several issues in managing metadata . Changed compression and verification routines to be client-driven rather than monolithic . Changed internal codec usage to be more flexible . Altered chdman and MAME to use the new interfaces . Added new -createraw command for creating raw data CHDs - MC146818 RTC: Updated the real time clock module to use new core date/time routines (drivers\mediagx.c + taitowlf.c) - amidar.c, cclimber.c, frogger.c, galaxian.c, scobra.c and scramble.c . Galaxian/Scramble driver reorganization . machine\scramble.c is broken up into two files: machine\galaxian.c and machine\scramble.c . drivers\amidar.c, drivers\frogger.c, drivers\scobra.c get copies of some of the data structures they shared from other drivers . galaxian_base is made static and uses outside of the main driver were rewritten . cclimber_decode code from drivers\cclimber.c was separated into its own machine\cclimber.c file to allow mshuttle to share it without taking on other dependencies. - cps2.c: Added support for using CHDs to decrypt CPS2 games. This code is disabled for the moment, but will be enabled in the future. Only a handful of games have complete tables so far. These tables are huge (~4GB) and uncompressable until the encryption algorithm is understood. - ksys573.c . Major System 573 update . Fixed PSX SIO control register behavior . Implemented several SCSI CD commands: START/STOP UNIT, PAUSE/RESUME, READ SUB-CHANNEL and READ TOC . Added uPD4701 emulation (machine\upd4701.c) . Fixed ATAPI reset, PIO and command IDENTIFY PACKET DEVICE . Hooked up controls for Fisherman's Bait, Dance Dance Revolution and Guitar Freaks games . Hooked up CDDA audio . Dark Horse Legend + Powerful Pro Baseball EX: Added CD/DA sound, fixed number of buttons and rom names. . Konami 80's AC Special: Added CD/DA sound, removed some unused bytes from the security chips (user2 rom) and fixed rom names. - stv.c . More updates to the ST-V driver . VDP1: Added shading for sprites (used by znpwfv, cotton2, others), fixed sprite clipping (fixes incorrect sprites in znpwfv) and fixed transparency on colour lookup table sprites (fixes bad sprites in znpwfv). . VDP2: Fixed caching of RGB layer (fixes bad backgrounds on bosses in rsgun), added additive blending for tilemaps and sprites (rsgun) and added vertical line scroll and linezoom (fixes diehard logo). . STV: Improved speedups for diehard, fixed speedups for znpwfv and added preliminary save state support. - Commando: Fixed upside down service mode - Cotton 2: Added VDP1 shading for sprites - Die Hard Arcade: Added VDP1 vertical line scroll and linezoom (fixes diehard logo) and improved speedups. - Major Havoc: Added missing x-flipping support - Mario Bros.: Fixed tilemap y-scrolly - Radiant Silvergun: Fixed VDP2 caching of RGB layer (fixes bad backgrounds on bosses) and added VDP2 additive blending for tilemaps and sprites. - Triple Hunt: Added support for the 8-track audio + samples (bear_rac and witch.wav) - Trivia Madness: Made some improvements to the game. There still is something wrong in the question roms banking. Changed visible area and palettesize. - Vulcan Venture: Fixed video hardware (draw_sprites, tilemap_draw etc. - vidhrdw\twin16.c) - Zen Nippon Pro-Wrestling: Added VDP1 shading for sprites, fixed VDP1 sprite clipping (fixes incorrect sprites), fixed VDP1 transparency on colour lookup table sprites (fixes bad sprites) and speedups. - Input port: Cleaned up the input definitions for n-way joysticks so they are more explicit. Added concept of a "16-way" joystick, which is a joystick that doesn't prevent simultaneous opposing directions from bring reported. - ROMCMP: Fixed crash bug when comparing ZIP files - Debugger . Cleaned up disassemblers to remove stubs and ensure the disassemblers are not referenced except in debug builds. . Fixed bug in the debugger that caused watchpoints to not be active until the next context switch. 0.110u1 - New games: Fishin' Frenzy (prototype) and 2x Freeze (Atari) (prototype) - pacman.c: Added flip screen offsets needed with new video parameters - PPC403 CPU: Added support for 'Fixed Interval Timer' - Cheat engine . Numerous improvements to the cheat engine . Operation: Mounted copy prevous value. Defined link extension bit in type field. Improved one shot operation when restore previous value is available. . Menu: Major update for classic search menu. Arranged the cheat general menu a bit. Improved item display for selection type code on the code edit screen. Added entry index parameter to EditCheatMenu(). . Watchpoint: Added watchpoint for ROM region. Improved adding watch from cheat list. . Activation key: Added save activation key. Added 2nd activation key. Added show activation key message option. . Others: Refined command code format - Balloon Brothers: Fixed flipscreen (ballbros0109u5gre) - Polygonet Commanders . Added more accurate host interface to dsp56k core . Removed a bunch of hacks in plygonet.c - Warrior Blade: Fixed visible area (warriorb0109u2gre) - Artwork: Changed artwork layout loading to load either gamename/gamename.lay or gamename/default.lay. The latter is preferred and allows for easier reuse of layouts between games. - Screenshot saving: Changed naming of screenshots. They are now created in separate folders per game, with numeric names 0000.png, 0001.png, etc. - MAME: Added new field Machine->basename which is used to describe the path used for various file accesses. This is a helper for MESS, and should not have any user-visible changes. The file accesses affected are: configuration (cfg) files, snapshots, debugger comments, NVRAM and memory cards. - Debugger: Fixed max instruction bytes for 68020+ CPUs to avoid assertion in new disassembler 0.110 - New Non-Working games: M075 Poker (Version 16.03B), Super Bowl (Version 16.03B) and Trivia (sms) - New clones: Trivia (Version 1.01C Alt questions 1) - New drivers: smstrv.c - M6502 + M6809 CPU: Fixed assertions in diassembler caused by stricter checking introduced in 0.109u5 - Alien Syndrome (Mega-Tech): Added missing cpu1 rom - APB - All Points Bulletin: Added new cpu2 roms (M6502 sound code) to clone (German) - Carnival: Reduced AY8910 and Samples master volume - I, Robot: Fixed joystick X/Y range (see JOYSTICK TEST 1 in Service Mode) - PSX games: Fixed crash when resetting PSX games - ROM Audit: Fixes auditting sets where all the roms in the clone are also in the parent 0.109u5 - New Non-Working games: Forgotten Worlds (Mega-Tech), Out Run (Mega-Tech), Super Real Basketball (Mega-Tech) and Tetris (Unknown Manufacturer) - New clones: Space Battle (bootleg set 1) and Trivia (Version 1.01C) - New drivers: tetriunk.c - COP4xx CPU: Added save state support - CHD: Updated CHD locating behavior to accept CHDs referenced by the parent of a clone if the hash matches, even if it has a different name. - CDROM: Improved behavior of SCSI CD implementation for audio playback and TOC reading commands. - Fujitsu Flash 29F016: Improved flash emulation and added support for Fujitsu flash chips. Switches Konami games over to new flash chips (drivers\ksys573.c). - eolith.c: Fixed subtle bug in subtable allocation in the memory system that caused the Eolith games to assert with the debugger. - Dark Horse Legend: Fixed rom names - Excite League: Added year info (1989) - Final Fight: Fixed priorities and the offset of layer 3 in clone Final Crash (World, bootleg) - Konami 80s AC Special: Changed description and added CD-ROM image from (US ver UAA) also to clone (Japan ver JAA) - Trivia (Version 1.02C) . Added clone Trivia (Version 1.01C) . Trivia (Version 1.02B) is now clone of Trivia (Version 1.02C) . Added 'facts_of_life' question rom and removed 'sports_2_#2' rom in clone Trivia (Version 1.02C Alt questions 1) . Added 'beatlemania_#1' question rom to clone Trivia (Version 1.02C Alt questions 2) . Added 'sports_2_#2' question rom and removed 'facts_of_life' rom in clone Trivia (Version 1.02C Alt questions 3) - MAME: Fixed UI crash (uicrash0108u5red) - Compiling: Fixed subtle bug in the UI menu handler that only manifested on MinGW-based compiles (src\uimenu.c) - Debugger . Converted the following disassemblers to the new format, and added step in/out support where it was obvious: adsp21xx, alph8201, arm, arm7, asap, ccpu, cdp1802, cop4x0, dsp32c, e132xs, g65816, h6280, h83002, i8x41, i960, i8051, i8085, jaguar, m680x, m6805, m37710, mc68hc11, pic16c5x, rsp, s2650, se3208, sh2, sharc, t11, tms32010, tms32025, tms32031, tms34010, upd7810, V60, V810, Z180 and Z8000. . Changed the new disassembler and override callback prototypes to take const parameters and to remove the generally unused 'bytes' parameter. The disassemblers can now assume that the buffers contain enough bytes to hold the maximum instruction length as returned by the CPU core get_info callback. . Deprecated the old disassembler interfaces in favor of the new ones. . Fixed subtle bug in subtable allocation in the memory system that caused the Eolith games to assert with the debugger (src\memory.c). . Tweaked the disassembly view to detect if the disassembly for the current instruction has changed, and if so, recompute the entire view. This provides more dynamic updating when system states change under certain CPUs. . Added new symbol 'curpc' for all CPUs which represents the value of the current instruction pointer, to avoid naming conflicts with the 'pc' register in other contexts. Changed this to be the default value for the disassembly window in the Windows version of the debugger (OSD ports will need to do likewise). 0.109u4 - New games: Dark Horse Legend, 2x Konami 80s Gallery and Powerful Pro Baseball EX - New Non-Working games: Bowling 3D - New clones: Arian Mission and Trivia (Version 5.06) - New drivers: ksys573.c - Support for Konami System 573 games (PSX-based hardware, CD-ROM required) - COP4xx CPU (Microcontroller): Added COP410 core (Looping, Sky Bumper, Draco and some Laser games uses the COP420) - TMS99xx CPU . Cleaned up core debugging . Converted to new disassembler syntax . Aadding step over/out support - alpha68k.c: Improved video banking (vidhrdw\alpha68k.c) - deco156.c: Fixed VIDEO_UPDATE in Heavy Smash and World Cup Volley '95 - funworld.c: Fixed lamps - looping.c . Improvements to the driver . Fixed clock speeds . Proper video timing . Fixed protection (game would reset; should never have been marked 'working' in the first place!) . Various other driver cleanups . Cleaned up TMS9995 core . Fixed TMS9995 CPU1 clock speed and VSync, added COP420 CPU3 and sawpped gfx1 roms in Looping and Sky Bumper - pacman.c . Updated documentation in pacman driver to reflect actual sync chain . Fixed sound frequencies for 2650 conversions (Removed 2nd SN76496 sound and fixed SN76496 clock speed in 8bpm, drivfrcp and porky) - Aqua Jack: Added unused proms ($0, $100 - road A/B internal priority and road/sprite priority and palette select). - ASO - Armored Scrum Object: Fixed rom names - Card Line: Fixed lamps - Trivia (Version 1.03a): Added prog1_versiona rom from clone 'Trivia (Version 1.03a) (alt 1)' and new 'science' question rom to clone 'Trivia (Version 1.03a) (alt 4)'. - MNG (Movie recording): Fixed memory leak when writing MNG files (src\png.c) - MAME . Fixed several audit bugs introduced with the 0.109u1 rewrite . Removed obsolete CPUINFO_PTR_REGISTER_LAYOUT and CPUINFO_PTR_WINDOW_LAYOUT data items. . Normalized realtime clock accesses across drivers (machine\ds1302.c, intelfsh.c, midwayic.c, model3.c, neogeo.c, psx.c, timekpr.c...). Now ensure that realtime clocks are reset when recording/saving INP files (machine\timekpr.c). - Debugger . Added new debugger command 'history' which dumps the most recent instructions executed . Fixed bug in displaying disassembly of CPUs whose minimum instruction size was larger than their data bus size. . Cleaned up tms99xx core debugging and converted to new disassembler syntax, adding step over/out support. 0.109u3 - New Working games: Cuore 1 and Elephant Family - ADSP21062 CPU (SHARC) . Major rewrite of the SHARC core. This update will fix most (but not all) of the clipping problems in Gradius 4 and NBA Play by Play. . Bit-accurate reciprocals . More accurate pipeline emulation . Fixed the problems with operation latencies . Regression tested a few floating-point operations for bit-accurate results . Improved DMA emulation - cidelsa.c . Added COP420 core to Draco . Fixed VSync in Altair, Destroyer (Cidelsa) and Draco - funworld.c . Updated lamps and layout . Added external credit in counter (mapped as coin 1 counter) . Added external credit out counter (mapped as coin 8 counter) . Added button lamps hold1-5, cancel and start . Added simple button lamps artwork "funworld.lay" - Beam Invader: Fixed dipswitches and added second player controls - Card Line . Updated lamps and layout . Converted hardcoded fake lamps to new artwork system . Added button lamps card1-5, collect, bet and start . Added simple button lamps artwork "cardline.lay" . Re-ordered buttons and added "collect" button . Changed visible area - Cuore 1 and Elephant Family . Both sets are completely playable now . Correct the screen size and visible area based on MC6845 registers . All inputs were hooked and managed to pass the initial check . The "Payout" button isn't working due to hopper and ticket stats are always 0 (empty) . Changed the cuoreuno full name to "Cuore 1" (as shown in the attract). . Added 'Test Mode' dipswitch . Colors are still wrong due to lack of color PROMs . If you can contribute providing some pictures of these games running, please contact Roberto Fresca (http://www.mameworld.info/robbie/home.htm) or through the mameworld.info forums. - Grand Champion: Some additional cleanups (collision, CPU 0/1 outputs...) - Xevious: Increased the interleave to 1000 to fix synchronization issues - Dipswitch fixes in Beam Invader, Cuore 1 and Elephant Family - MAME . Added new output control system. This system is designed to support multiple output streams, and should replace all instances of printf in the code. You can now call one of these functions: mame_printf_error, mame_printf_warning, mame_printf_info and mame_printf_debug to output data. By default, these go to the console, but they can be overridden by the OSD layer to route wherever is appropriate. . Fixed -frames_to_run / -ftr (benchmarking and automated testing) option - Debugger . Added missing InitCommonControls(), which caused the debugger UI to fail with recent updates. 0.109u2 - NOTE: IMPORTANT NOTE TO OSD DEVELOPERS: As of this release, you are now required to make use of options.c to set core options. At a minimum, this requires calling options_init(NULL) before calling run_game(). - New games: Rock Duck (prototype?) - New Non-Working games: Altair, Destroyer (Cidelsa) and Draco - New clones: DonPachi (Hong Kong) and Las Vegas - Nevada - New drivers: cidelsa.c - M4510 CPU: Added checking for register symbol names to ensure they aren't numeric (which prevents their identification by the expression parser). Changed the M4510 CPU symbols to avoid tripping this check. - Suppoert for CDP1802 CPU, CDP1869 sound (white noise generator) and CDP1869/70/76 Video Interface System (VIS) - 6526 CIA: Improved timer accuracy and added save state support - maxaflex.c: Added supervisor DAC support to the Max-a-Flex driver. Changed DAC sound to Speaker. - pmpoker.c . Some pmpoker driver improvements . Added service/settings mode to PlayMan Poker . Added PORT_IMPULSE to manage correct timings for most inputs in all games . Added year info to all games - yunsun16.c: Improved dipswitches in the yunsun16 driver and added more documentation. - Buck Rogers: Fixed Z80 CPU1/2 clock speeds and VSync - Capcom Bowling: Fixed colors/palette update (vidhrdw\capbowl.c) - Discs of Tron: Added lamp sequencer prom to clone (Environmental) - Major Havoc: Connected TMS5220 speech support to clone (Return to Vax) - Photo Y2K: Added ARM protection ASIC internal rom (not hooked up yet, simulation code used instead for now) - Turbo: Fixed Z80 CPU clock speed and VSync - Fixed rom names in Enduro Racer (YM2203, FD1089B 317-0013A), Hang-On and Space Harrier - Dipswitch fixes in Bomb Kick, Magic Bubble, Shocking and yunsun16.c - MAME . Fixed bug in the bilinear software scaler that would read out of bounds on a bitmap . Fixed bug in memory map dumping code that caused wrong addresses to be dumped . Fixed assertion when auditing systems with no samples or ROMs . Fixed bug that caused false positive ZIP filename matches . Fixed -romident with ZIP files . Improved documentation in osdepend.h to better describe some of the functions and provide a general overview of how things work. Removed unused osd_readkey_unicode function. . Added PATH_SEPARATOR define so that platforms with non forward-slash path separators can get preassembled paths in their native format . Some enhancements to the options manager . Added a simpler options_init for startup . Added support for internal options . Added support for multiple unadorned options . Moved core options definitions into the core options.c (note that the default INI path no longer includes $HOME/.mame since that is not cross-platform; *nix platforms will need to explicitly override that default in their OSD code) . Added accessor to set the default value of a given option . Changed error reporting so that errors are tracked internally and reported only once - Debugger . Fixed crash in the Win32 debugger code with small window sizes . Changed comment shortcut in disassembly Windows to avoid clash with Ctrl+C for "Copy" . Fixed "run to cursor" functionality for CPUs that had an address bus shift 0.109u1 - NOTE: IMPORTANT NOTE TO OSD DEVELOPERS: The file I/O interface has changed significantly. It is now much simpler. Please read osdepend.h for full details on how the new OSD-defined functions work. In addition, you must now use the options.c to specify your search paths. If you are parsing standard command line options and INI files, this work is relatively straightforward. Otherwise, you can manually call options_set_string() for each of the search paths to configure them from whatever options store you are using. - New games: Doki Doki Penguin Land, Dynamic Shooting, Five a Side Soccer, Super Street Fighter II - The New Challengers (Arcade bootleg of Japanese MegaDrive version) - New Working games: Shooting Gallery - New clones: The Cliffhanger - Edward Randy (World), Double Dragon 3 - The Rosetta Stone (Japan) and Twin Brats - New drivers: megadriv.c, ssf2md.c and ultrsprt.c - 68000 CPU: Simplified the core generation logic to just produce one file. Hopefully this will cure some of the build issues with the core. - Q-Sound: Added bounds checking to the driver (sound\qsound.c) - 8080bw.c . Some fixes for the 8080bw driver . The correct samples are being used for lrescue, lrescuem, grescue and desterth . Dipswitch corrections for superinv, invadrmr, sinvemag, spceking and spacewr3 . Removed extraneous beeping noise from Indian Battle - findout.c + getrivia.c . More improvements . Added missing "Payout" button; payout hardware unknown . Added missing "Play / Raise" button and its lamp 9 . Re-added PORT_IMPULSE(2) to Poker games buttons because they do not like it if two or more buttons are held; trivia games still respond better without this. - lazercmd.c: Fixed rom loading (HIGH/LOW_NIBBLED) in Bigfoot Bonkers, Lazer Command and Meadows Lanes - mpu4.c: Fixed crash in the driver - toaplan2.c: Converted all the games to mono since the PCBs are JAMMA without external stereo connectors - Caveman Ninja: Fixed rom names - The Combatribes: Changed visible area - Double Dragon 3: Changed visible area - Gradius III: Fixed sprite layer (vidhrdw\gradius3.c) - Indian Battle: Removed extraneous beeping noise from Indian Battle. Added Speaker sound (extra audio channel). - Space Invaders: Added Speaker sound to clone Space War Part 3 - Knights of Valour: Hooked up ARM protection ASIC internal rom for clone 'Knights of Valour Superheroes'. Added ARM7 CPU3. - Lunar Rescue: Correct samples being used in Lunar Rescue and clones. Changed SN76477 to Speaker sound and added samples (alienexplosion, rescueshipexplosion, beamgun, thrust, bonus2, bonus3.wav, shootingstar, stepl and steph.wav). Download samples at http://www.mameworld.info/samples/wav/lrescue.zip - Selection: Added missing lamps 11 (coin slot 2), 12 and 13 (unknown) to Selection. Changed coin_lockout_global to coin_lockout_w(0) and coin_lockout_w(1) for 2 coin slots in Selection. Added "Button 12 ?" to Selection (function unknown). And found last unknown dipswitch. Added 'Maximum Bet' dipswitch. - Shooting Gallery: Added new redumped cpu1 roms and changed REGION cpu4 to sound1 - Silent Dragon: Fixed interrupt (in all scenes with linescrolling, the characters move in slow motion). - Spelunker II: Fixed background/foreground tilemap scrolling position (vidhrdw\m62.c) - Twin Action: Fixed tilemap dimension (vidhrdw\afega.c) - Dipswitch fixes in 8080bw.c, findout.c, getrivia.c and Shooting Gallery - MAME . Rewrote unzip.c to return richer errors and generally behave better . Rewrote audit.c to simplify the code and not rely on extraneous functions that were in the old file I/O system . Redesigned the OSD file I/O interfaces to be simpler and more straightforward. Also simplified the core's file I/O routines and included some functionality that was previously left to the OSD layer. . Fixed DirectDraw + Color Overlay in Gypsy Juggler, Gee Bee and Dead Eye . MAME now support roms with a filename of over 20 chars (src\audit.h) . Fixed CHD bad dump flag in CarnEvil and 'Mace: The Dark Age' (src\romload.c) . Fixed "mame -listroms" crash . Removed def NEW_DEBUGGER from the makefile 0.109 - New clones: Astro Combat (older, PZ) and Funky Bee (bootleg, harder) - ES5503 sound: Fixed ES5503 behavior for voice volumes > 127 (cures missing sounds/music notes in several Apple IIgs demos and games). Moonquake (Sente 1987) is the only MAME game which use ES5503 sound. - bfm_sc2.c + mpu4.c: Made MSC1937 operation more accurately match datasheet and wiring diagram. Added indexed getters to the output system to match the newly introduced setters. - cps1.c: Input port cleanup and additional comments in the driver - findout.c, getrivia.c and merit.c . More improvements . Added external coin counters and coin lockouts . Fixed lamps in upright and cocktail modes . Located ticket out bit in trivia games and commented it in findout.c and getrivia.c . Fixed merge collision from 0.108u5 - m62.c: Fixed priorities in the M62 driver, mainly affecting Lode Runner II/III - playch10.c: Changed palettesize from 320 to 768 colors (256+8*4*16) - vsnes.c: Changed palettesize from 64 to 512 colors (2*8*4*16) - Dark Planet: Changed palettesize to 98 colors (32 for characters, 64 (buffer) for stars and 2 for bullets) - GP Rider: Fixed rom names and documentation - Hydra and Pit Fighter: Removed coin slot 3 - Lode Runner III: Changed visible area - Moonwar: Changed palettesize to 99 colors (32 for characters, 64 for stars, 2 for bullets and 1 for bg) - Shrike Avenger: Changed palettesize - Selection: Fixed sound - Turbo Force: Fixed some sprite priorities problems (the problem is related with the final enemy in stage 3, which is moving along the level under the floor). - Input port: Changed input port calculations to go in two passes, to catch out-of-order conditionals properly. - Dipswitch fixes in cps1.c, Funky Bee and Sky Lancer - Artwork: Changed artwork loading to be on-demand rather than all up-front. Also added a message during artwork resizing/loading so it's more clear what is going on. - Description changes of Reel Fun - MAME . Normalized exit codes from mame.exe. The core-specific ones are defined in mame.h. The Windows build will also return code 100 on an unhandled exception now. . Fixed PNG code so that it doesn't NULL terminate tEXt chunks - Debugger . Changed disassembler override callbacks to match new disassembler syntax . Added new osd function osd_break_into_debugger() which can be hooked to cause a break into the OSD's debugger when an assertion or fatal error occurs. Hooked it up on Windows to do just that. 0.108u5 - New games: Killer Instinct (SNES bootleg), Pocket Racer (PKR1/VER.B) and Real Fun (Version 7.01) - New clones: 10-Yard Fight (World), Final Lap R (Japan Rev. C), Gryzor (Set 2), Jack Potten's Poker, Joker Poker, Power Drift (World), Strikers 1945 (Korea) and World Class Bowling (v1.5) - New drivers: kinstb.c - N2A03 CPU: Updated the TN2A03 CPU to match the proper cycle timings and unsupported opcodes revealed by Blargg's NES chip test (cpu\m6502\tn2a03.c) - N64/aleck64.c: Major updates to the Nintendo 64 based driver. Fixed visible area in Eleven Beat and Magical Tetris Challenge - findout.c, getrivia.c and merit.c . Some more cleanups to the drivers . Correct order of buttons and lamps in the games . Removed impulse(2) from buttons -> buttons respond much better now . Used PORT_INCLUDE() and PORT_MODIFY() where possible . Connected outputs for use with artwork . Added coin 2 to Selection and Trivia . Poker and Sexual Trivia have no coin 2 -> unique inputs defined - galivan.c: Fixed priority in Galivan and Dangar (and clones). Added save state support to all games in the driver. Fixed portability issue in DAC audio save states. - maxaflex.c . Added new output utilities: output_set_led_value(), output_set_digit_value() and output_set_lamp_value(), which are used to set a generic indexed data type. . Changed the Max-A-Flex driver to use output_set_digit_value() for their digits. This fixes the digits in Boulder Dash (Max-A-Flex). - pmpoker.c . More improvements to the driver . Confirmed the GFX banks (a complete dump appeared!) . Improved technical notes and added a PCB layout based on PCB pics . Found and fixed the 3rd bitplane of BigBoy gfx . Added 'Joker Poker' (Golden Poker version without 'double-up') . Added 'Jack Potten's Poker' (same as Joker Poker, but with 'Aces or better' instead of jacks) . Simulated colors for all sets till color PROMs appear . Completed inputs in all sets (except DIP switches) - turbo.c . Fixed bug that caused sprites to be exceedingly large . Added new output utilities: output_set_led_value(), output_set_digit_value() and output_set_lamp_value(), which are used to set a generic indexed data type. . Changed the Turbo driver to use output_set_digit_value() for their digits - stv.c . scsp: Improved interrupt reset (diehard, dnmtdeka and vfkids) . vdp1: added mesh effect for the sprites and polylines . vdp2: optimized rbg rendering . Added sound to Columns '97 . Added speedups to Die Hard Arcade and clone Dynamite Deka - Atari vector games . Rewrote the Atari vector generators, using the schematics and actual state machine PROMs. The state machine is now emulated so timing should be much more realistic. . Clipping hardware in bzone and others is emulated instead of hardcoded . Improved accuracy of clocks and various other bits of cleanup (astdelux, asteroid, bradley, bwidow, bzone, esb, gravitar, llander, mhavoc, omegrace, quantum, redbaron, spacduel, starwars, tempest and tomcatsw) - Ghostmuncher Galaxian: Implemented some port conditions, so you only see the relevant DIP switches for the active game. - Grand Champion: Began driver rewrite. Still work to do on collision detection, radar and some glitches. Fixed Z80 CPU1/2 clock speeds, VSync and gfx rom loading. - PlayMan Poker: Added missing gfx2 roms. - Shanghai III: Undid previous (incorrect) 'fix' of sound clock - Shooting Master: Fixed plds rom loading in clone (EVG) - Cheat engine: Numerous fixes to the cheat engine - Dipswitch fixes in Grand Champion - Description changes of Danchi de Hanafuda, Golden Poker Double Up (Big Boy before), Suikoenbu / Outlaws of the Lost Dynasty - MAME . Fixed crash in Windows code if we are unable to create sound buffers (windows\sound.c) . Fixed bug in software renderer that prevented lower-resolution targets from being properly supported . Rewrote the PNG reading/saving code, improving error reporting and simplifying the code significantly 0.108u4 - New Working games: Quizmaster (German) and Shooting Master - New clones: Arkanoid (bootleg with MCU, harder), Arkanoid (Game Corporation bootleg, set 2), Arkanoid (Tayto bootleg), Gals Panic II (German), Locked 'n Loaded (World), Mad Ball V2.0 (hack? With Nudity), Pocket Gal 2 (Japanese) and Shooting Master (EVG) - uPD7759, YM3526, YM3812 and Y8950: Added save state support - TC0100SCN (vidhrdw\taitoic.c): Fixed flipscreen mode (see cadash, chasehq, contcirc, darius, darius2, eto, groundfx, liquidk, ninjaw, othunder, sci, solfigtr, undrfire, warriorb...) - bfm_sc2.c: Added support for reverse-order entry in the BFM code - coinmstr.c and merit.c: Cleaned up dipswitches and documentation - mpu4.c: Updated the layout and added more documentation - neogeo.c: Fixed neocrypt.c to work on big-endian machines - shangha3.c: Fixed 68000 clock speed in Blocken, Hebereke no Popoon and Shanghai III and AY8910 clock speed in Shanghai III. - turbo.c . More Turbo work . Cleaned up the sound code . Added support for proper speaker placement in all games . A few other minor fixes . Sprite scaling is still not 100%, but I need some real hardware to verify. Apart from that, no further work is planned. . Changed sound channels in Subroc-3D and Turbo - Arkanoid: Added many more notes/info to the driver - Grand Champion: Did some cleanup and de-Achoization of the palette code. Removed some features used only by Grand Champion, which only complicated things for all the other drivers. Marked Grand Champion as imperfect graphics until it gets rewritten. - Shooting Master: Fixed gfx2 rom loading, visible area and dipswitches - Space Invaders: Fixed sound and improved dipswitches in clone Space War (Sanritsu). Added Speaker sound (sound\speaker.c). - Liquid Kids: Fixed flipscreen mode for Liquid Kids and other games using the same Taito graphics chips - Prehistoric Isle in 1930: Fixed gfx priority and added save state support - The Hand: Fixed video / screen update - Cheat engine: Fixed UI for cheat system watchpoints, making them usable again. - Dipswitch fixes in coinmstr.c, merit.c, Shooting Master, Space Invaders Part II, Space War (Sanritsu) and Tetris (D.R. Korea) - Fixed rom names in Pocket Gal and Twin Falcons - MAME . Did a bit of object-orienting the core. All core init functions now take a running_machine parameter. All exit, reset, and pause callbacks now require a running_machine parameter to register, and pass in the running_machine when called. . Added a running_machine parameter to the following driver callbacks: DRIVER_INIT, MACHINE_START/MACHINE_RESET, SOUND_START/SOUND_RESET, VIDEO_START/VIDEO_RESET/VIDEO_EOF/VIDEO_UPDATE and NVRAM_HANDLER/MEMCARD_HANDLER. For the most part, this didn't affect the code thanks to the macros, apart from cases where direct calls were made. . Altered most of the mame.c and palette.c interfaces to take a running_machine parameter. Hung private data for these modules off of the running_machine structure instead of using global variables. . Did some cleanup and de-Achoization of the palette code. Removed some features used only by Grand Champion, which only complicated things for all the other drivers. Marked Grand Champion as imperfect graphics until it gets rewritten. . Since I had to visit all call sites of palette_set_color to add the running_machine parameter, I also updated quite a lot of them to use the nice palnbit() inlines in palette.h, which cleaned up the code in many cases. Since this was a manual process, I probably messed up one or two cases, so if you notice odd colors, please report them to the http://mametesters.org site. 0.108u3 - New Non-Working games: Big Boy, Connect 4 and PlayMan Poker (Germany) - New clones: Beam Invader (set 2), Commando (bootleg) and Solomon's Key (US) - New drivers: pmpoker.c - 6840 PTM: Fixed counter behavior in continuous mode - Samples sound: Added some minimal validation on the sample rate configuration parameters (windows\config.c) - Audio streams: Added workaround for crash in the sound code under some edge cases (src\streams.c) - arkanoid.c . Big update to the driver which improves emulation of some bootlegs . Interverted 'arkblock' and 'arkbloc2' sets for better comparaison . Renamed sets . Changed some games descriptions . Removed flags from the following sets: arkbloc2, arkgcbl and paddle2 - findout.c: Overhauled and correct dipswitches in Quiz (Revision 2), Quiz (Revision 2.1), Trivia (Version 1.03a), Trivia (Version 5) and Trivia (UK Version 5.07) - mpu4.c . Big update to the driver . Added support for reverse clocking in the VFD code . Changed the 6840 to not run the counter clock if no frequency is specified . Reworked the MPU4 drastically to be more in sync with AGEMAME . MPU4 video should now be working a little better . Deprecated machine\6850acia.c, replacing it with a specialized driver (machine\mpu4.c) - segas16a.c: Fixed sound1 rom loading in clones Ace Attacker (Japan, System 16A, FD1094 317-0060) and Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021) - solomon.c . Added new ROM loading option ROM_IGNORE() for the rom 8.3jk. This is a 32k rom and only 4k are needed. . Updated the memory maps - ssv.c: Improved offsets of the "normal spites" in the games Twin Eagle II, Ultra X Weapons and Dyna Gear - turbo.c . More driver cleanup . Doubled the horizontal resolution to better draw analog sprites . Updated the driver to use the new features MDRV_DRIVER_DATA and AM_BASE_MEMBER as an experiment . Improved Buck Rogers and Subroc video . Changed visible area and palettesize in Buck Rogers, Subroc 3D and Turbo . Added video timing prom to Turbo - Konek-Gorbunok . TIA-MC1 driver improvements . Fixed documentation . Hooked game counter and coin lockout . Added save state support - Lethal Enforcers: Added missing video change (vidhrdw\lethal.c) - Street Fighter III 3rd Strike: Added new user1 rom (this one is from a usa version) - Wonder Boy in Monster Land: Fixed gfx1 rom loading in clone (Galaxy Electronics English bootleg). - Input port: Added PORT_DIPLOCATION to Air Buster and Wonder Stick - Dipswitch fixes in Air Buster, Professor PacMan, Quiz (Revision 2), Quiz (Revision 2.1), Robby Roto, Trivia (Version 1.03a), Trivia (Version 5), Trivia (UK Version 5.07) and Wonder Stick - MAME . Added driver_data member to the Machine structure, where drivers can hang data instead of using global variables. Added MDRV_DRIVER_DATA macro so the core can allocate this structure at startup. Added AM_BASE_MEMBER and AM_SIZE_MEMBER which are similar to AM_BASE and AM_SIZE but let you specify a member of a struct hanging off of driver_data. Updated the Turbo driver to use these new features as an experiment. . Added new ROM loading option, ROM_IGNORE() which works just like ROM_CONTINUE() except that you don't need to load the data anywhere. It can be used when larger ROMs are present and only a portion of the data is used. See solomon.c for an example. . Fixed a multithreading race condition at startup - Compiling: Updated core.mak to ensure the make clean will remove file2str.exe - Debugger . Removed support for the old debugger . Added ability to tab between views in the disassembly Windows. Added a 'cursor' to the DASM view and hooked up navigation keys. Added F4 'run to here' key when the disasm view has focus. Added F9 'toggle breakpoint' key when the disasm view has focus. Enhanced memory view keyboard navigation. 0.108u2 - New games: Carrera (Version 6.7) - New Working games: Swinging Singles - New clones: 4x Lethal Enforcers and Muroge Monaco - New drivers: carrera.c - 6840 PTM: Tidied up the emulator a bit (machine\6840ptm.c) - bfm_sc2.c . Cleaned up the vacfdisp module to display 14 and 16 segment displays (machine\vacfdisp.c) . Added a separate character set for the OKI MSC1937 . Changes Scorpion 2 to the new system . Tidied up the 6840 emulator a bit - dooyong.c: Removed the VIDEO_BUFFERS_SPRITERAM flag from the Dooyong driver, which crashed some games. - turbo.c . Further turbo driver cleanup. Still in WIP. . Derived sprite scaling from PROMs and R/C values (still not 100%) . Rewrote most of the video / sprite handling . Identified all PROMs and used them where appropriate . Added a more complete 8279 implementation . Changed the behavior of the led7seg primitive. It now no longer takes a state value but accepts states from 0-255, allowing independent control over all 7 segments and the decimal. Ordered the segments according to standard order. . Updated the Turbo driver to do its own BCD decoding via an LS48 decoder to control the segments directly. . Converted 7-segment LEDs to the new behavior described above. - New video rendering system . Added new option -multithreading (-mt) which enables the previous multithreaded rendering code. This code has had problems on some systems, especially pre-XP systems, so consider it experimental. If you want to help debug issues, enable LOG_THREADS in windows\window.c and post them to MAMETesters.org with a description of your problem and your system. If you don't have hyperthreading, dual core, or a multi-CPU system, don't bother turning this flag on. . Fixed several issues with pausing and the multithreading code - Botanic: Fixed INPUT_PORT - Buck Rogers: Added proms and changed palettesize - Dead Angle: Removed VIDEO_BUFFERS_SPRITERAM flag from Dead Angle - Muroge Monaco: Changed visible area and added 74s288 prom - Pang! 3: Fixed marker for the last sprite to draw, this fixes the ending story text (vidhrdw\cps1.c). - Space Odyssey: Attempted to fix the bad Space Odyssey ROM by using data from the previous dump. It is still marked BAD_DUMP (we would like to get an actual dump), but the new Space Odyssey is now playable. - Swinging Singles: Changed visible area and added 2x AY8910 sound - Subroc-3D: Fixed Z80 clock speed and VSync - Turbo: Fixed rom loading and rom names - Wonder Boy in Monster Land: Swapped gfx1 roms in clone (Galaxy Electronics English bootleg) - Input port: Added PORT_DIPLOCATION to 1943, 1945kiii, 4 En Raya, '88 Games, Act-Fancer, Formation Z, Forty-Love and Trio The Punch - Dipswitch fixes in '88 Games, Act-Fancer, Botanic, Formation Z, Poker (Version 50.xx), Selection, Swinging Singles, Trio The Punch and Trivia (Version 1.03) - MAME . Fixed options_output_ini_file() and options_output_ini_mame_file() to properly handle string options containing spaces (src\options.c) . Removed recently-introduced case dependency in the ROM naming 0.108u1 - New games: Reaktor (Track & Field Conversion) - New Working games: Space Bugger - New clones: Ninja Ryukenden (Japan, set 2), Silent Dragon (US) and Space Bugger (set 2) - 68000 CPU: Added a callback to the 68000 emulator for the TAS instruction, which allows different implementations based on external hardware. - Nintendo 2C0X PPU: Major cleanup/rewrite of the NES PPU rendering code (vidhrdw\ppu2c0x.c). This should improve the accuracy of the NES-based games (playch10.c and vsnes.c). Report anything odd or broken at MAMETesters. - asteroid.c, champbwl.c and tempest.c: Improved documentation - asuka.c: Removed the VIDEO_BUFFERS_SPRITERAM flag from the Asuka driver, which crashed all games. - namcos22.c: Fixed ROM loading problems reported by Guru. Added M37702 sound MCU rom to Ridge Racer 2 and removed it in Cyber Commando. - segag80v.c: Fixed inputs which were broken in 0.108 - turbo.c . Began cleanup/rewrite of the driver (some things are still broken, this is a WIP) . Proper video timings . Full memory map . Cleanup/simplification of the video code with better documentation . Added flags dispose to REGION_GFX2 (foreground data) . Changed visible area and VSync - New video rendering system . Added new flag: VIDEO_ALWAYS_UPDATE, which causes the VIDEO_UPDATE callback to be called even on skipped frames. This should be used for games where the process of rendering has side effects such as collision detection that need to always be present. . Fixed the new scanline timing functions to compute things correctly and without using unnecessary timers (see Missile Command, Crystal Castles or Cloud 9) - Crush Roller: Fixed gameplay in clone Magic Brush. The game use now the DRIVER_INIT( maketrax ). - Halley's Comet: Fixed collision detection in clone Halley's Comet '87 - Konek-Gorbunok . TIA-MC1 improvements (drivers\tiamc1.c) . More documentation . Fixed inputs . Fixed video framerate and VSYNC delay . Adjusted CPU freq according to documentation . Removed hack with off-board video RAM . Implemented Custom sound (sndhrdw\tiamc1.c) . Added NO_DUMP PROMs - Millipede: Added prom (??? - not used) - Prop Cycle: Hooked up fan and lamp to the new output system - Space Bugger: Added 2-way Joystick (vertical) input and 2x SN76496 sound - Space Invaders DX: Added new cpu1 rom - Tank Battalion: Added new color prom - Virtua Bowling: Fixed protection in the World version. This version reboots at the end of the game. Is this a bad dump?? Don't think it's a protection check. - Dipswitch fixes in Big Run, Championship Bowling, F-1 Grand Prix Star II, Grand Prix Star, Hangman, Space Bugger, Virtua Bowling and Wild Pilot - Fixed rom names in Bells & Whistles, Centipede, Millipede, Shadow Warriors, Silent Dragon, Tank Battalion and Tempest - Description changes of 'Tranquillizer Gun' 0.108 - New games: Konek-Gorbunok - New clones: Halley's Comet '87, Teenage Mutant Hero Turtles, Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA) and Wonder Boy (set 4) - New drivers: tiamc1.c - Samples sound: Added sample_get_base_freq() to allow for querying to the base frequency of samples (sound\samples.c) - nss.c: Fixed VBLANK timing - segag80r.c: Finished video and sound cleanup - segaorun.c and segaybd.c: Added more extensive documentation to the Sega 16-bit drivers - 005: Hooked up 005 melody generator, but missing sound PROM. Added CUSTOM sound and samples (lexplode, sexplode, dropbomb, shoot, missile, heilcopt and whistle.wav). - Astro Blaster: Added crude support for attack rate - Cheeky Mouse: Fixed color decoding and rom loading (sndhrdw\segag80r.c) - Darius II: Bumped interleave, which fixed graphics that don't disappear correctly - Space Odyssey: Fixed controls - MNG: Fixed bug that prevented in-game MNG recording from working - Dipswitch fixes in Green Beret, Head On (Irem, M-15 Hardware) and Space Beam - Fixed rom names in Bells & Whistles, Sunset Riders and Teenage Mutant Hero Turtles 2 - Debugger . Adding a comment no longer redefines the disasm range . Comments properly save and load special characters (&,", etc) . Changed debugger to default to 'on' in debug builds 0.107u4 - New games: SunA Quiz 6000 Academy - New Working games: Trivia Quest - New clones: Asteroids Deluxe (rev 1) and F-15 Strike Eagle and Zero (set 2) - S2650 CPU: Fixed overflow calculation - New video rendering system . Added built-in layouts for Turbo, Subroc 3D, Buck Rogers, Atari Football, Atari Baseball and Super Speed Racer using the new primitives. . Changed render_target_alloc() to take a bitmask of flags. In addition to loading a single file, targets can also be marked "hidden" and only non-artwork views can be made visible. . Added new render target layer config flag to disable screen overlays . Added new functions that do accurate per-screen timing based on video parameters: video_screen_get_hpos, video_screen_get_vpos, video_screen_get_hblank, video_screen_get_vblank and video_screen_get_time_until_pos . Split render.c into rendutil.c, rendlay.c and render.c to keep the code more organized . Normalized the naming of several functions in video.c, most importantly: force_partial_update -> video_screen_update_partial, configure_screen -> video_screen_configure and set_visible_area -> video_screen_set_visarea - UI/OSD . Abstracted the notion of outputs. A new module, output.c, now controls all outputs. Each output is tagged with a name; some standardization eventually needs to happen on these names, but at the moment it's fully open. The OSD layer can register with output.c to be notified when outputs change. From there, it is free to do what it wants. LEDs have now been converted to outputs with the name "led0", "led1", etc. . Added support for notifying external clients of changes in output states in the Windows OSD system. See windows/output.h for a list of messages that external clients can register to receive. . Removed the built-in hacky LED support in the Windows OSD layer . Created a sample application ledutil.exe which subscribes to the external events and routes the "led0", "led1" and "led2" outputs to the keyboard LEDs just like before. If you want to continue to have LED support, simply copy ledutil.exe into your startup folder and let it run in the background. . Added new layout element component type "text", which lets you draw text in the built-in MAME font onto an element in a layout. This can be used for basic lamps and built-in layouts. See maxaflex.c for an example. - bfm_sc2.c: Converted the VFD display in the BFM games to use a second screen rather than hacking onto the main screen - gottlieb.c: Modified the Q*Bert driver to signal a "knocker0" output when the knocker is triggered - maxaflex.c and sspeedr.c: Added new layout element component type "led7seg", which constructs a 7-segment LED in an element in a layout. This is commonly used for external score and timer displays. See maxaflex.c for an example. - segag80r.c . More Sega G-80 raster cleanup . Consolidated the video hardware implementations . Fixed cocktail mode video and controls in all games - Amazing Maze: Added built-in overlays - Atari Baseball and Atari Football: Fixed visible area - Catacomb: Fixed rom loading and added Moon Cresta color prom (the game is unplayable with a Galaxian PROM) - Clowns: Added built-in overlays - Galaga: Added new cpu2 rom to clone Galaga (Midway set 1 with fast shoot hack) - Monster Bash: Fixed video in clone Monster Bash (2 board version) - Pig Newton: Added the gfx1 roms from Pig Newton (version C) to clone (version A) - Power Drift: Added new sound1 rom - Quiz Mekurumeku Story: Added '4 Players' mode - Sindbad Mystery . Revived game . Fixed sound chip frequencies . Fixed Z80 CPU1 clock speed . Fixed VSync and ROMREGION's . Added second player - Taisen Idol-Mahjong Final Romance 2: Added dualscreen support - TouchDown Fever: Fixed number of players and game mode - Trivia Quest: Fixed input - Wonder Boy in Monster Land: Swapped gfx1 roms in clone 'Wonder Boy in Monster Land (Galaxy Electronics English bootleg)' - Input port: Fixed detection of left/right modifier keys when paused. Also added support for recently added keys so they are detected by MAME when paused. - Dipswitch fixes in Apache 3, The Lost Castle In Darkmist and Trivia Quest - Screenshot saving: Changed snapshot taking code to render the particular screen to a temporary render target. This allows vector games to have snapshots again. - MNG: Fixed recording, which doen't work since 0.107u1 - Description changes of Ace Attacker - Fixed rom names in Enduro Racer and Hang-On - Debugger: Fixed bug that caused the VIDEO_EOF to be called repeatedly while in the debugger 0.107u3 - New games: Catacomb and Trivia ? Whiz - New Working games: Dambusters, Legend of Heroes and Super Bubble 2003 - New Non-Working games: Ace Attacker and Casino 5 - New clones: Arm Champs II, Galaga, Space Odyssey and 3x Versus Net Soccer - G65C816 CPU: Made block transfer instructions interruptable (previously a single opcode could eat >400,000 cycles with obvious consequences for interrupt timing) - M37702/M37710 CPUs . Made block transfer instructions interruptable (previously a single opcode could eat >400,000 cycles with obvious consequences for interrupt timing) . Fixed block transfers (move one less byte than the G65C816) - NAMCO CUS60/CUS63/CUS64 MCU: Properly documented and connected the MCU code in Baraduke, Dragon Buster, Metro-Cross, namcos1.c, namcos86.c, Pacland, skykid.c and Thunder Ceptor - TMS32051 CPU: Added some more opcodes to the core - Samples sound: Fixed bug that caused the sound sampling code to not track changes in the refresh rate (windows\sound.c) - YM2612 sound: Adjusted the DAC sound level to something more reasonable (sound\fm.c) - 6840 PTM . More improvements to the 6840 timer module . Updated the MPU4 driver to the most recent implementation . Convert Cosmic Chasm over to using the new system - New video rendering system . Added several common generic graphics layouts to vidhrdw/generic.c, for use by multiple drivers . Fixed remaining crashes in GDI/ddraw mode when drawing vector games . Renamed "Native" views to "Pixel Aspect" views to avoid the confusion that they are anything but artificial aspect ratios . Added new option -video none which can be used for CPU benchmarking without the overhead of the video system . Added options -screen, -aspect, -resolution and -view which apply to all Windows. These values can be individually overridden for each specific window by using the existing -screen, -aspect, -resolution and -view options. - Artwork: Removed the -artwork option to avoid confusion. If you want to run without any artwork, use -view standard instead. - Vector games . Added beam width control to the UI sliders . Fixed remaining crashes in GDI/DDraw mode when drawing vector games - blueprnt.c: Fixed GFX layout/decode in Blue Print and Saturn. This fixes GFX show (F4) in debug builds and MAME32. - konamigx.c: Minor cleanup and speed hack removal in the driver - konamim2.c: Improved the driver so that the M2 kernel starts to boot, but it hangs quite soon due to some multiprocessor issues. Added second PPC602 CPU to all games. - magicfly.c: Improved driver - all graphics are properly decoded/banked now - mpu4.c . Updated the MPU4 driver to the most recent 6840 PTM implementation . Fixed M6809 clock speed - segag80r.c (This is still very much a WIP, so don't report any bugs) . Changed driver segar.c to segag80r.c . Began cleanup/rewrite of the Sega G-80 raster games . Cleaned up input port handling similar to the G-80 vectors . Proper clock and video speeds . Reimplemented Space Odyssey background including collision detect . Fully implemented Pig Newton background . Connected 2-board Monster Bash more correctly - segag80v.c . Changed driver sega.c to segag80v.c . Complete memory maps derived from schematics - taitojc.c: Some general improvements to the driver and added some more opcodes to the TMS320C51 core. - zaxxon.c . More driver cleanups/fixes . Fixed sound problems in Razmataz . Correct background and sprite positioning . Fixed bugs introduced in sample handling . Bootlegs and alternate versions work again . Added state saving support to the Sega universal sound board - Ace Attacker: Added FD1094 317-0060 CPU from a System 16B PCB (?!) to the clone (attract mode worked, inputs not mapped yet) - PLD support: Added PLDs to clone Flash Point (Japan, bootleg) - 005: Fixed Z80 clock speed, VSync and palettesize - Astro Blaster: Fixed Z80 clock speed, VSync, palettesize and rom loading - Bubble Bobble: Added support for real Bubble Bobble MCU. Added M6801 (1MHz) CPU4 and TAITO JPH1011P MCU rom (a78-01.17). - Cosmic Chasm: Converted game to use the 6840 programmable timer module - Dambusters: Use reverse engineering techniques to make game playable. Fixed Z80 clock speed, VSync and changed AY8910 to Samples sound. - Funny Strip: Added new Z80 cpu2 rom to clone Puck People (previous dump was all 0xff) - Legend of Heroes: Fixed rom loading and visible area - Monster Bash: Connected 2-board version more correctly. Correct Z80 clock speed, VSync, palettesize and rom loading. - Pig Newton: Fully implemented background (this fixes background drawing in cocktail mode). Correct Z80 clock speed, VSync, palettesize and rom loading. - Razzmatazz: Fixed sound problems - Sindbad Mystery: Fixed number of players - Space Odyssey: Reimplemented background including collision detect. Fixed Z80 clock speed, VSync, palettesize and rom loading. - Super Bubble 2003: Fixed visible area and swapped romset (sb2003) with (sb2003a) - Virtua Racing: Fixed track lookup implementation, bringing the game much closer to playable (coprocessor TGP - machine\model1.c). - Input port . Updated Chewing Gum, Killer Instinct/2, Lucky Today, Revolution X, midzeus.c and Tank 8 input ports to use IPT_BILL1 for bill acceptors . Added new macro PORT_SERVICE_DIPLOC for specifying a PORT_SERVICE and a DIPLOCATION - Dipswitch fixes in Aqua Jack, Ben Bero Beh, Congo Bongo, Dambusters, Legend of Heroes, mpu4.c, Ozon I, Rock Climber and Super Bubble 2003 - Fixed rom loading in Astro Blaster, Legend of Heroes, Pig Newton, Space Fury, Space Odyssey, Star Trek and Zektor - Fixed rom names in 005, Astro Blaster, Congo Bongo, Eliminator, Monster Bash, Pig Newton, Sky Kid, Space Fury, Space Odyssey, Star Trek, Super Zaxxon, Tac/Scan, Zaxxon and Zektor 0.107u2 - New clones: Gals Panic II (Asia), Wonder Boy in Monster Land (Galaxy Electronics English bootleg) and Viper Phase 1 (World, New Version) - I8039 CPU: Fixed handling of A11 latch - M6809 CPU: Connected undocumented opcode $01 - CIA 6526 (Amiga hardware): Implemented CNT pin and some serial features of the 6526 CIA chip (machine\6526cia.c) - New video rendering system . Added MDRV_SCREEN_RAW_PARAMS() which lets you specify a pixel clock, horizontal, and vertical video timing values in place of the usual screen size, visible area, refresh rate, and VBLANK timing values. . Changed mode selection logic so that refresh is weighted more strongly when picking a mode. This allows you to specify -resolution 0x0@60 to force MAME to pick a 60Hz screen refresh while allowing it to choose the best resolution. - UI/OSD . Some cleanups in the new UI/video code to make MESS happy . Fixed bug that prevented save/restore from working in the UI - Massive cleanup/fixing of 16-bit Sega drivers (segahang.c, segaorun.c, segas16a/b.c and segaxbd/ybd.c) . Many corrections to descriptive set names, adding revision letters, cabinet types, etc. . Fixed many DIP switches and added PORT_DIPLOCATION support . Adjusted min/max values for analog controls to improve response . Cleaned up a number of ROM names and fixed some incorrect guesses . Actually disabling 8751 in games that have a fake replacement . Hooked up 8255 PPI correctly now that it has mode 2 support . Fixed behavior of NMI line in later sega sound boards . Fixed addressing in the SegaPCM sound system . Some hardware/documentation cleanup . segahang.c: Fixed visible area in Hang-On hardware . segas16a/b.c: Fixed button ordering between System 16A/B - turbo.c: Some cleanup in the driver - zaxxon.c . Rewrote Zaxxon driver from the schematics. This is still a WIP (not finished yet) . Correct clock speeds and video timing . Complete memory maps . Simplified video code and merged common cases together . Palette derived from resistor weights . Background positioning still a little off - Congo Bongo: Changed Z80 CPU2 clock speed to 4MHz, palettesize to 512 colors, VSync to 59.999409 and input to 8-way Joystick. Removed ROMREGION_DISPOSE from gfx4 and changed gfx4 rom address to $2000. - Cue Brick: Fixed coin input in clone (World version D) - Future Spy: Removed ROMREGION_DISPOSE from gfx4 and fixed and VSync - Ixion: Connected universal sound board to Ixion. Added I8035 CPU2 and Custom sound, removed ROMREGION_DISPOSE from gfx4 and fixed VSync - Joust: Fixed P1/2 START input again - Laser Battle: Fixed S2650 and TMS3615 clock speeds and VSync - Razzmatazz: Connected universal sound board to Razzmatazz. Added I8035 CPU2 and Custom soundremoved ROMREGION_DISPOSE from gfx4 and fixed VSync - Rip Off: Fixed background sample playing (sndhrdw\cinemat.c) - Slam Masters: Mapped service button - Super Zaxxon: Removed ROMREGION_DISPOSE from gfx4 and fixed and VSync - Zaxxon: Removed ROMREGION_DISPOSE from gfx4 and fixed VSync - Input port: Added service_coin_lockout_w() to lockout service coins - Dipswitch fixes in Buck Rogers, Colony 7, Congo Bongo, Pig Newton, Subroc-3D and Turbo - Compiling: Added macros to prevent use of strcasecmp and strncasecmp for better cross-platform compatibility 0.107u1 - New games: Poke Champ and TomCat - New clones: 4x Crystal Castles and 'Dungeons & Dragons: Shadow over Mystara' - New drivers: pokechmp.c - 68000 CPU: Fixed memory write ordering bug in the core - PPC602 CPU: Added some specific opcodes and registers - S2650 CPU: Fixed a register overflow bug (originally reported to the MESS Team) - Samples sound: Removed hard core dependency on samples (now you can make a tiny build without enabling the sample support) - New video rendering system . Removed NEW_RENDER definition and all support for the old rendering system from the core . Cleaned up a bunch of useless and deprecated code as a result . Added new function configure_screen() which can control the width, height, visible area and refresh rate of each screen. This function allows for widths and heights larger than what were specified in the game driver, so you no longer have to specify the maximum width and height in the driver, but can instead specify a typical width and height. This function supercedes the old set_visible_area() and set_refresh_rate() functions. The former has been rewritten to call configure_screen(), while the latter has been removed entirely. . Changed the behavior for supporting overscan and other effects. The width and height of a screen control the overall bitmap size. The visible area of a screen specify its non-blanked boundaries (and default visible area, as before). . Moved line-to-quad conversion routine into the core render.c as another utility function . Consolidated live screen parameters into a screen_state structure. Machine->visible_area[num] is now Machine->screen[num].visarea. Machine->refresh_rate[num] is now Machine->screen[num].refresh. - UI/OSD . Massively rewrote the user interface to rely on the new rendering systems. Broke the UI into multiple pieces (ui.c, uimenu.c, uigfx.c). The code is now verging on readable. . Added a red background to serious warning messages in the vain hope that people might take better notice. . Renamed ui_popup to popmessage across the code, and implemented popmessage in mame.c. This breaks the dependency between the core driver code and the user interface in almost all cases. - Vector games: Fixed vector game crashes with DirectDraw rendering - magicfly.c . Figured out the MC6845 (mapped at $0800-$0801) . Fixed the screen size based on MC6845 registers . Fixed the visible area based on MC6845 registers . Correct the gfx rom region . Solved the NMI/vblank issue. Now attract works. . Changed CPU clock to 625 kHz . Added new findings to the technical notes . Marked magicfly PAL as NO_DUMP (read protected) - omegaf.c: Fixed slowdowns in the video hardware driver (used some older functions) - tsamurai.c: Fixed 'Service Mode' access - zaxxon.c: Fixed crashed in the video driver (see Congo Bongo) - Battle Zone: Fixed number of buttons - Championship Bowling: Added what seems to be a proper fix for the background transparency flag that was needed by the game to show the green background. - Crystal Castles: Swapped gfx1 roms and fixed rom names - Joust: Fixed input (P1/2 START were mapped twice) - Judge Dredd (rev LA1, prototype): Removed P4 START (not unsed) - Laser Ghost: Added player 2 port (map was unknown) - Last Duel: Fixed P1/P2 coin input - New York New York: Fixed input (COIN1 and SERVICE1 were mapped twice) - Parallel Turn: Fixed 'Lives' dipswitch - Taisen Quiz HYHOO: Fixed input (P3 START was mapped twice) - Time Crisis: Added 'Service Mode' dipswitch - Hiscore system: Removed Hiscore support from the core (games with NVRAM will still save as they always have) - MAME . Fixed single-frame-step (SHIFT+P) . Fixed mame.ini (Now you can put a #Comment on the same line again) 0.107 - NOTE: This is the first full release of MAME with the new rendering system. Before freaking out that things don't work the way you expected, please read the docs/newvideo.txt file that gives some suggestions for how to set up your base configuration. If you still encounter issues, then run your system with the -v option and post about your problem at http://mametesters.org - New Non-Working games: Chicken Farm, Crazzy Clownz, Hidden Catch 3, Legend of Heroes, Midnight Landing, Pro Golf, Ripper Ribbit and Super Bubble 2003 - New clones: 4x Agent X, Borderline (Sidam bootleg), Head On (Sidam bootleg), Lunar Rescue (Model Racing bootleg) and Super Crash (bootleg of Head On) - New drivers: limenko.c, mlanding.c and progolf.c - New video rendering system . Fixed assertion when the MAME window was minimized . Fixed bug that prevented resizing of secondary Windows . Fixed vector rendering default flicker value to 0 (windows\config.c) . Fixed gamma and brightness ranges in the UI to match the limits from the command line . Fixed scrolling in the palette view - eolith.c: Correct E1-32N CPU1 clock speed in Fortress 2 Blue Arcade and Hidden Catch 2 - magicfly.c . Additional updates to the magicfly driver . Improved documentation and input port mapping . Fixed M6502 CPU1 clock speed in 7 e Mezzo and Magic Fly - pgm.c: Fixed drawsprites crash (vidhrdw\pgm.c) - taitowlf.c: Fixed keyboard inputs - yunsun16.c: Added tile flipx to tilemaps (Bomb Kick needs it) and changed the DIP switches used for protection to real DIP switches. - Bomb Kick: Added tile flipx to tilemaps in yunsun16.c (Bomb Kick needs it) and changed the dipswitches used for protection to real DIP switches. - Hidden Catch 3: Missing touch screen / pen inputs - The King of Fighters 2002: Fixed kof10th description - Missile Command . Rewrote driver from schematics . CPU speed now correct (slows down for lower 32 scanlines) . Proper frame rate and IRQ signal timing . Service mode works on some sets, fails on others due to 6502 bug . Accurate bitmap mapping and cycle counts for 3-bit accesses . Using bitmap access PROM for bit mode writes . Changed M6502 CPU1 clock speed and VSync . Added 'Service Mode' dipswitch - Ninja-Kid II . Properly emulated the sprite overdraw effect . Now you can see the "opening" effect and the previously 2 bugged levels are fixed . Converted the driver to use tilemaps as well - Space Laser: Changed description of Laser to Astro Laser (Leisure Time Electronics Inc. 1980) - XX Mission: Fixed graphics - Artwork: High Quality Artworks for MAME 0.107 at http://aarongiles.com/mameart - Cheat engine: Fixed watchpoints (src\usrintrf.c) - Dipswitch fixes in Bomb Kick, Missile Command and Pig Newton (version A) - Fixed rom names in Egg Venture and Lethal Justice 0.106u13 - New games: Digger Man and Firebeast - New video rendering system . Improved multisession support with the new renderer . Fixed bug that caused -prescale in Direct3D mode to fail in the last release . Fixed 1400x1050 video resolution (resolutionrating0106u12yel) - Vector games: Removed the background brightness in vector games by default. If you want to see the overlays faintly on vector games, increase the brightness a bit. - Cloud 9 . Rewrote driver to mimic the Crystal Castles driver since it is obviously an early version of the same hardware. . Implemented video RAM banking correctly based on tracing out a Firebeast PCB, which appears to be identical. . Traced out color mapping and implemented correctly . Reduced EAROM down to 4 bits . Fixed DIP switch definitions . Fixed M6502 and POKEY clock speeds, visible area and VSync - Crystal Castles . More tweaks . Connected EAROM correctly (passes POST now) . Added a guess for what the "POTATO" chip does. If you're a Crystal Castles fan report to MAMETesters how MAME looks compared to the arcade when the screen scrolls up inbetween level 4 and 5. - Space Chaser: Hooked up color PROM and fixed dipswitches. Changed visible area in clone Space Chaser (CV version). - Tempest: Reimplemented the sparkle circuit to bring back stars (vidhrdw\avgdvg.c) - XX Mission: Some minor modernization to the driver - PLD support . Added PLDs to Ah Eikou no Koshien, Golden Tee Golf II (Trackball/Joystick), High Impact Football, Hot Shots Tennis, Land Sea Air Squad, Midnight Resistance, P.O.W., Puzzle Bobble 2X, Quartet, Quiz Chikyu Bouei Gun, Radical Radial, Sly Spy, Solitary Fighter, Tokio, Tri-Sports, Vapor Trail, Vigilante and Zero Target - Input port: Fixed bug that led to black crosshairs in lightgun games. - LISTXML: Some more fixes for the DTD in the -listxml output - Debugger: Fixed uninitialized variable in the debugger commenting code. Cleaned up allocations. 0.106u12 - 6840 PTM: Fixed interrupt clearing function - magicfly.c: Some graphics improvements to the driver (see 7 e Mezzo and Magic Fly) - New video rendering system . Removed 1 pixel border now that the Direct3D code is properly setting texture clamping. This should get rid of the gaps in the Darius layout, which were caused by bilinear filtering the last pixel on the screen with the black pixel border. . Removed the VIDEO_PIXEL_ASPECT_RATIO_* flags for drivers. These flags were used inconsistently, and can be effectively computed if necessary from the screen width/height and orientation. - Vector games: Fixed bug that prevented the contrast from pushing vector games to their maximum brightness. - Layouts . Added gapless variants to the dual and triple screen layouts . Fixed -effect none to longer produce an error message - UI/OSD . Fixed bug that caused the UI to be impacted by command-line brightness, contrast and gamma controls. . Changed the on screen display so that pressing ENTER resets a value to its default. - PLD support (Programmable Logic Devices) . Fixed bug in JED parsing code (jedutil) that would checksum fuses beyond the number explicitly specified. Some programs write extra fuse data beyond the end and this should not be part of the checksum. Also made the checksum parsing more flexible to handle JED files with extra 0 digits in the file checksum. . Added PLDs to Air Combat, Air Inferno, Airwolf, Arabian Magic, Arch Rivals, Arkanoid Returns, ASO, Bad Lands, Birdie King 2, Bobble Bobble, Bubble Symphony, Cachat, Cadash, Chase H.Q., Choplifter, Chopper I, Combat School, Cosmic Chasm, Crazy Rally, Cyberball, Dragon Saber, Elevator Action Returns, Escape from the Planet of Robot Monsters, Express Raider, Fighting Golf, Final Blow, Gaplus, Ghosts'n Goblins, Heavyweight Champ, Herbie at the Olympics, Ikari, King of Boxer, Legend, The Legend of Kage, Mania Challenge, Mega Blast, Metal Hawk, Nastar, Operation Thunderbolt, Pipe Dream, Pop'n Pop, Power Spikes, Puchi Carat, Puzzle Bobble 4, Redline Racer, Seicross, Space Gun, Space Invaders '95, Space Invaders DX, Thunder Zone, Top Landing, Twin Qix and Youjyuden. - Crystal Castles . Rewrote driver from the schematics . Correct clock speeds and frame rates . Reimplemented video system to use mixer PROM . Now using sync PROM to generate interrupts at correct times . sync PROM is also used to determine proper visible area and VBLANK timings . Implemented the VRAM write protection by using the WP PROM . Hooked up second player trackball properly . Fixed coin counters . Now computing palette based on resistor weights . Watchdog is now set for 8 VBLANKs to match the schematics . Added save state support . Mapped complete memory space according to schematics . Fixed prom names, changed VSync to 61.035156 Hz and added 2x 'Unknown' dipswitches. - Lethal Enforcers: Fixed the fire button INPUT_PORT of player2 - Traverse USA: Fixed rom names - Input port: Changed the coordinates where for offscreen lightgun reloading, moving it from the upper-left to the upper-right for better compatibility. - LISTXML/INFO . Removed xml2info utility. The -listinfo format was retired over 2 years ago. It is time to move on. . Added multiple input controls in -listxml output for games with more than one type . Added pedal control type. . Added more info on analog controls as defined in the driver: minimum, maximum, sensitivity, keydelta, and reverse. This required the 'control' attribute in the XML to be moved into an element. There can now be more than one 'control' element in the input secction. . Improved the description of screens in -listxml. Multiple screens are now listed, each with their own attributes. Rotation is now fully specified (rather than just vertical/horizontal). The width and height now describe the raw game screen before any rotation. - MAME . Changed the core makefile to put back specific rules for building EXEs to promote more commonality with platforms that don't put an extension on executable files. . Moved all options to a single central location in windows\config.c. Cleaned up and reordered the options more logically. . Rewrote windows.txt to reflect all of the new options and to update the behavior of existing options to match the current implementation. 0.106u11 - New Non-Working games: 7 e Mezzo and Magic Fly - New clones: Emeraldia and Indiana Jones and the Temple of Doom - New drivers: magicfly.c - New video rendering system . Changed DirectDraw behavior so that it will render to an offscreen system memory buffer if any blending is required, thus providing access to all the effects with a bit of slowdown in those cases. . Changed logic so that no rendering apart from the UI happens before MAME is in a running state. Until that time, a single pixel border will be displayed around the edges of each screen. . Changed behavior of secondary windows so that they are not created as children of the primary window. Please re-verify that multiple screens still work with this change on your setup. . Moved texture clipping into the core, rather than relying on the OSD layer to do the work (src\render.c) . Removed the RENDER_PRIMITIVE_CLIP_PUSH and RENDER_PRIMITIVE_CLIP_POP primitives (src\render.c) as they are no longer necessary. Added U/V texture coordinates to the primitives. - UI/OSD . Added X and Y offset/scale controls for each screen. This allows you to control the actual position of the screen within its container. In order to see beyond the game-configured visible area, the game must have set up the screen size to be larger than the core visible area. The Williams drivers have been updated as an example. Eugene Jarvis mentioned that if you adjust your monitor, you can see the stack in Robotron off to the right, and now you can in MAME as well. The values configured in the OSD are saved in the config file for each game. . Added brightness, contrast and gamma controls per-screen in the on-screen display section of the UI. This requires a change to the OSD rendering code to use lookup tables when copying RGB data to textures. Default values can be specified via the -brightness, -contrast, and -gamma command line/configuration options. Note that these options only affect screen areas of the final output and have no effect on artwork or the UI. The values configured in the OSD are saved in the config file for each game. . Added full screen equivalents of the brightness, contrast and gamma controls. Unlike the screens-specific options, these only work in full screen mode using DirectX, and apply globally, affecting artwork and user interface as well. They are controlled via the -full_screen_brightness, -full_screen_contrast and -full_screen_gamma options. . Added new video option to move the user interface to secondary screens. The selected screen is saved in the video configuration. - magicfly.c: TODO: Map inputs & DIP switches, correct the GFX banks, hook properly the MC6845 and cleanup the driver. - model2.c: Fixed rom names - mpu4.c: Improved memory map and 6840 PTM clock speeds - Double Dribble: Added PLD ($0 - pal10l8-007553.bin) - Kick Start Wheelie King: Fixed input - Violence Fight: Added PLDs ($0, 200 - pal16l8b-c16-08.ic34 and pal16l8b-c16-09.ic35) - Vector games: Removed vector intensity controls as they are redundant with the new contrast controls - Screenshot saving: Fixed a couple of bugs in the new screenshot taking code - Artwork . Fixed the rendering order so that overlays mixed with backdrops work as expected. Note that over-rendering backdrop pieces (like gollygho does) may not be supported in the future. . Added a new command line option: -effect , which specifies a PNG file that is loaded and used as an RGB multiply overlay. This allows for scanline and RGB aperture mask effects. These overlays rotate with the game screens and only affect the game screens, not any of the other artwork. They also only run at the raw resolution of the render_target. This means in Direct3D or GDI modes, they map 1:1 to the pixels on your screen. In DirectDraw mode, they map 1:1 to the source pixels of the image (for DirectDraw, you can use -prescale n if you want an n:1 mapping; for example, you would probably want -prescale 2 if using a 2-pixel-tall scanlines overlay). . Download new overlays at http://aarongiles.com/overlays.zip and place them unzipped in the artwork directory. . Use -effect aperture4x6 if you run at really high resolutions (2000x1500). Recommend is -effect aperture2x4rb if you run at medium resolutions (1280x1024 or so). The other PNG files can be selected by just specifying their name after the -effect parameter. If anyone manages to create nice masks, feel free to post links to them at http://aarongiles.com/?p=175#comments - LISTXML/INFO: Changed XML output so that BIOS sets, ROM sets and disks are output in the defined order. - MAME . Added options_get_int_range() and options_get_float_range() functions (src\options.c) which do added range checking on parameters, rather than requiring the callers to do the work. Also changed the behavior on options parsing failure to set to the default value rather than defaulting to 0. . Added generic pen changing notification callbacks to the palette system (src\palette.c) 0.106u10 - New clones: Cruis'n World and Dungeons & Dragons: Shadow over Mystara - Motorola 6840 PTM: Some more 6840 module improvements (machine\6840ptm.c) - New video rendering system . Added support for +/- keys in the palette view . Made the UI keys for navigating the graphics/palette viewer configurable . Added "tick marks" when a large number of palette or gfx entires are displayed to indicate which row/column the header refers to. . The renderer no longer displays non-UI elements prior to initialization - Layouts . Converted all the internal layouts into .lay files and updated all remaining drivers to use the new layouts . Made all solid single-color overlays standard pieces that can be easily reused . Fixed inheriting of artwork files from parent . Updated Atari Football, Discs of Tron, Golly! Ghost!, Gorf, Sky Diver, Space Wars, Spy Hunter and Super Speed Race to support the new artwork system . Download new layouts at http://aarongiles.com/layouts.zip . Use now "mame -window -numscreens 2" to render individual screens in a window (see subs, jantouki and bijokkog) - UI/OSD . Added support for remembering the selected view, rotation and artwork enabled states in the game's cfg file. . Added rudimentary progress displays during ROM loading and graphics decoding so you have something to look at instead of a black screen (see Space Bomber). - centiped.c: Added save state support in Bulls Eye Darts, Centipede, Millipede and Warlords - maxaflex.c: Fixed 6821 PIA addressing regression in the Atari machine driver (machine\atari.c) - nbmj8688.c: Added dual screen support for the Mahjong games bijokkog, bijokkoy, housemn2, housemnq and livegal. - taitojc.c: Some misc bugfixes - tx1.c: Added dual screen support for TX-1, TX-1 (Atari) and clone Buggy Boy - zaxxon.c: Enabled save states in Congo Bongo, Future Spy, Ixion, Razzmatazz, Super Zaxxon and Zaxxon - Championship Bowling: Changed background color to green to match real PCB - Jong Tou Ki: Added dual screen support - Minivader: Enabled save states - Pairs Love: Completed dipswitches - Rock'n MegaSession: Added dual screen support - Subs: Added dual screen support - Screenshot saving: Cleaned up screenshot taking code - LISTXML/INFO: Updated -listxml output to display information for multiple screens - Added multiscreen support to bijokkog, bijokkoy, buggyboy, housemn2, housemnq, jantouki, livegal, rocknms, subs, tx1 and tx1a - MAME . Fixed keyboard LEDs so they work again (windows\input.c) . Added back support for full screen brightness correction (src\video.c) . Fixed coin inputs in test mode of games - Debugger: Re-connected the debugger 'Saved snapshot' command 0.106u9 - New video rendering system . Fixed bug when clipping quads in Direct3D mode . Fixed edge case where the extra pixel on non-wrapping textures would sometimes lead to exceeding the maximum texture size. . Added concept of maximum texture size to the core renderer to prevent giant textures from being requested if the OSD layer can't handle them. - Layouts . Multiple screens support in Tecmo Bowl, gaelco2.c, megatech.c and X-Men clones (6 Players ver ECB / UCB) . Added "left half" and "right half" to the Darius / II layout so you can stretch three screens over two, though you need to explicitly set them either in the UI or using the -view0 and -view1 parameters on the command line. . Cleaned up handling of layout dependencies in the makefile - ADSP21062 CPU: Improvements and bugfixes - I960 CPU: Some bugfixes - MSM5205 sound: Changed the MSM5205 ADPCM decoder to no longer perform bounds checking to prevent the signal from overflowing. The MSM5205 data sheet clearly states that this isn't the case, and there is no overflow protection in the chip. Also, the chip's internal DA converter is just 10-bit, even if the processed signal is 12-bit. - punchout.c and PlayChoice-10: Flipped drivers so that screen 0 is the "main" screen. - model2.c . i960 bugfixes . SHARC improvements and bugfixes . Added HLE of the geometry DSP for now . Moved video hardware emulation to vidhrdw/model2.c . Added preliminary 3D graphics emulation . Removed 2nd ADSP21062 CPU and changed cpu3 to user5 roms in some games - taitojc.c . Improved M68040 FPU emulation . Improved the TMS320C51 core . Added 2D graphics emulation . Added inputs to all games . Properly hooked up sounds in all games . Fixed visible area and palettesize - Grand Cross: Fixed address error by disabling the IRQ (it's caused by the sound IRQ..but the music player was ripped out by Aaron ages ago, related?). - Pairs Love: Fixed address error (simulated 'buffered ram' protection?) - Side By Side: Fixed cpu2 and gfx1 rom loading - Side By Side 2: Fixed cpu2 rom loading - Artwork . Added get/set calls to control layers on a per-target basis. This allows for dynamic control of visibility of artwork layers and the option to crop to the screen. Added menu items to control these options. . Removed options.use_artwork from the global options. This is now directly configured by the OSD layer. - MAME . Added "fast forward" function (defaults to the INSERT key). While holding this key down, the frameskip is temporarily maxed out and throttling is turned off. This is useful for skipping over parts of the emulation. . Added support for pausing/unpausing while showing graphics and tilemaps . Fixed some glitchiness in font displaying where they would switch in and out of scaled modes due to rounding errors. . Changed the initial UI screens to only compute their text a single time. This reduces the CPU usage greatly when displaying some of the "game doesn't work" warnings. . Changed VIDEO_UPDATE to return a set of flags. Only one flag is currently defined, indicating that video has not changed at all since the previous update. Most drivers should just return 0. - Debugger: Fixed crash in debug builds running the Deco MLC games 0.106u8 - New video rendering system . Added 16-bit color support for the DirectDraw renderer (only used if switchres is off or in a window). . Fixed 16-bit line rendering in the software rasterizer . Fixed ddraw bug where switching views sometimes didn't clear out the edges of the screen . Improved scaling calculations when running with -video ddraw and no hardware stretch to better approximate the real aspect ratio. . Added more internal texture reference tracking to ensure that stale data is not being referenced if the OSD layer holds onto a render list. . Removed screen aspect ratio specification from the machine driver. This information is now provided by the render/view system. Games with odd aspect ratios should include a game-specific layout to position the screens. . Changed logic so that trying to run more screens than you physically have in full screen mode will just display as many as will fit rather than fighting to put multiple full screen displays on a single monitor. . Added optimizations to figure out the minimal set of screen areas to clear, even with complicated views and multiple screens. . Fixed palette for games which were using palette_set_brightness - Layouts . Changed the way built-in layouts are handled. There is now a new layout directory in the source which contains actual .lay files. These are converted at compile time into .lh files which are #included by various drivers and then referenced. The built-in set of horizontal, vertical, and dual screen layouts are also handled this way now instead of being dynamically generated. In order to support things like "native" aspect ratios, a limited form of variable substitution is now done on most of the XML attributes when they are read. . Improved default layout selection. For multiscreen games on a single monitor, the default layout will show all screens at the same time. For multiscreen games on multiple monitors, the default layouts will select one screen per game. . Multiple screens support in Backfire!, Darius, Darius II, Ninja Warriors, PlayChoice-10, psikyo4.c, Punch-Out!!, Super Punch-Out!!, vsnes.c and Warrior Blade . Added MDRV_DEFAULT_LAYOUT to specify a default layout at the machine driver level . The UI is now limited to a single screen - ES5505 sound . Moved some common code into sndhrdw\taito_en.c (taito ensoniq sound system) . Fixed ES5505 clock speed in Ground Effects and Under Fire - Motorola 6840 PTM: More generic 6840 module improvements (machine\6840ptm.c) - Gunbuster: Fixed sound1 rom address - Screenshot saving: Screenshots are now properly rotated again. MAME now saves one screenshot per visible screen for multi-screen games (i.e., cyberbal will write two PNGs per snapshot taken if both screens are visible). - Tilemap viewer . Reimplemented the palette/graphics/tilemap viewer. It is still connected to F4, but works differently. . Both graphics and tilemap modes only display data at an integral scale factor so you are limited based on the resolution of your render target. . For -video ddraw, you can get more pixels by using -prescale to scale the screen . For -video d3d, the render target is at your screen's native resolution already . To switch between modes, press the ENTER key. Here are the new keys in each mode * Palette/colortable mode: [ ] - Switch between palette and colortable modes up/down - Scroll up/down one line at a time pgup/pgdn - Scroll up/down one page at a time home/end - Move to top/bottom of list enter - Switch to graphics viewer * Graphics mode: [ ] - Switch between different graphics sets up/down - Scroll up/down one line at a time pgup/pgdn - Scroll up/down one page at a time home/end - Move to top/bottom of list left/right - Change color displayed r - Rotate tiles 90 degrees clockwise - + - Increase/decrease the number of tiles displayed per row enter - Switch to tilemap viewer * Tilemap mode: [ ] - Switch between different tilemaps up/down/left/right - Scroll 8 pixels at a time shift+up/down/left/right - Scroll 1 pixel at a time control+up/down/left/right - Scroll 64 pixels at a time r - Rotate tilemap view 90 degrees clockwise - + - Increase/decrease the zoom factor enter - Switch to palette/colortable mode - LISTXML/INFO: Changed -listxml to accept a wildcard gamename like most other frontend options to limit which games are output. - Compiling: Moved cygwin-specific compiler options to windows.mak - MESS: Moved MESS-specific Atari FDC code into a MESS specific file, in addition to fixing bugs. 0.106u7 - New video rendering system: Added a compile-time option to rendersw.c to prevent reads from the destination. This removes the ability to do a number of blends and effects, but allows you to point the software renderer at a video memory target and not kill performance. It also improves performance of software rendering in general by avoiding expensive alpha blending operations. - HD6309 CPU: Fixed some instruction forms in the 6309 diassembler to consume the correct number of bytes. - namcond1.c: Fixed a heavily flicker in ncv1 and ncv2 (vidhrdw\ygv608.c) - sangho.c: Improvements to the driver, making them somewhat playable. - Pasha Pasha 2: Fixed off-by-one drawing error in the driver - Puzzle Star (Sang Ho Soft): Added YM2413 sound, changed visible area and palettesize. - Sexy Boom: Added YM2413 sound, changed visible area and palettesize. - Description changes of Puzzle Star (Sang Ho Soft) - Dipswitch fixes in Puzzle Star (Sang Ho Soft) and Sexy Boom - MAME . Added back support for DirectDraw (windows\drawdd.c). Unlike the old support, this requires DirectX 7 or later. There is now a new option to control what video system is being used for rendering. Use -video d3d to use Direct3D. Use -video ddraw to use DirectDraw. And use -video gdi to force the use of GDI for rendering. Some interesting things to try out: * If you have multiple monitors, run with -numscreens 2 on the command line to get multiple screens. This should work with all video modes. * Try toggling between full screen and window mode while running (Alt+Enter) * Try out DirectDraw both with and without -hwstretch enabled * Play with the new options in the Video Options menu within MAME * Run cyberbal or the Sega multi-32 games (orunners, harddunk, scross, titlef) to test out multi-screen support (also try -numscreens 2 with these games if you have multiple monitors) * Run starcas, bzone, astdelux to test out vector games with overlays * Run invaders or turbo with the new .lay files (http://aarongiles.com/?p=165) * Try out the -prescale option in both Direct3D and DirectDraw modes and make sure it has the intended effect * Try out various .BDF fonts to see which ones work well (make sure you use low-res ones for DirectDraw without any -prescale) . Added back the -hwstretch option to control whether or not DirectDraw does stretching. . Added support for the -prescale option when using DirectDraw as well. It should also work ok with multiple screens. . Improved font logic so that small fonts are scaled more appropriately at low resolutions. It's not perfect, but works well for most games when running with the new DirectDraw option, which always renders games at minimum resolution. . Fixed bug that messed up partial updating. Hopefully it all should be back to normal again. 0.106u6 - New games: Janputer '96, Mahjong X-Tal 7 and Rock Tris - New Working games: Pasha Pasha 2 and Watashiha Suzumechan - New Non-Working games: Bombs Away, High Seas Havoc, Red Corsair, Puzzle Star?, Sexy Boom, Super Free Kick + clone Spinkick - New clones: Double Point (Min Corp. 1995) and Space Fury (revision B) - New drivers: hshavoc.c, rcorsair.c, sangho.c and sfkick.c - V60 CPU: Added workaround to make the core work properly on GCC 4.x (tested on 4.1.1) - dynax.c: Fixed AY8910 and YM2413 clock speed in 7jigen, hnoridur, mcnpshnt, mjangels, mjelctrn, neruton, quiztvqq and yarunara - maxaflex.c: Cleanups to the Atari/Max-A-Flex driver and attempting to modernize it - mcr68.c: Fixed inputs in the driver - segas32.c: Updated Sega multi-32 driver to support multiple screens - New video rendering system . Fixed the drc blitters better (windows\blit.c) . Backed off of the multithreading for the moment in order to focus on getting the rest of the kinks out of the new renderer. All the infrastructure is still in place and can be re-enabled by flipping the ENABLE_THREADS flag in window.c. . Added support for "stretch to fit" when configuring a render target . Added back the "-keepaspect" option as a result . Added clamping to the prescale effect so that it doesn't try to create excessively large textures. Explicitly reset render states so that the prescale step is not filtered. . Fixed StretchRect usage so that it doesn't filter on some video cards . Fixed behavior of pixel aspect ratio when configuring render targets (was correcting in the wrong direction). . Moved thread priority logic out of ticker.c and into winmain.c where it really belongs. . Updated Asteroids Deluxe and Omega Race built-in overlays for the new render system - Pasha Pasha 2: Changed visible area to 384x240 - Polygonet Commanders . Fixed Z80 IRQ/NMIs to go to the right CPU again . Modernized memory map . Added network status bit, so the initial test passes well enough to make the DSP56k crash on unimplemented opcodes. - Progressive Music Trivia: Fixed rom names and added PLDs ($0, 200 - pal16l8a-ep-0.u10, pal16l8a-ep-0.u9) to clone (Question set 3). - Quiz (Revision 2.1): Added pld (pal10l8cn.bin) - Rong Rong: Added pld (gal16v8b.1e) - Royal Card: Added pld ($400 - 2-peel18cv8.bin) - Survival Arts: Added pld (gal16v8b.u5) - Wonder Boy: Fixed input and dipswitches in clone Wonder Boy (system 2) - Dipswitch fixes in Best Bout Boxing, Pasha Pasha 2, Watashiha Suzumechan and Wonder Boy - Compiling: Added workaround to make the V60 core work properly on GCC 4.x (tested on 4.1.1) - Debugger: Fixed new debugger support for custom register lists - MSVC compiler/MAME 64-bit: Minor fix for x64 compilation support with MSVC 0.106u5 - WARNING: Starting with this version, the MAME windows run on a separate thread. There may be issues relating to this, especially when running unthrottled. If you see any crashes or odd behavior under normal operation, be sure to report it to http://mametesters.org - New games: Hard Times - New video rendering system . Added new render_view_item_get_state() function to return the state of a given item. . Changed render_target_get_primitives to return a new structure render_primitive_list, which contains the list of primitives along with an osd_lock which must be held while the list is being traversed. . Added "Rotate View" option to the video menu for dynamic in-game rotation. . Moved window creation and management to a separate thread; this means all software rendering and all Direct3D calls are done on a separate thread from the main game, and will take advantage of multiple CPUs/dual cores. . Changed throttling behavior to skip rendering if we are already pending; this makes for a better "fast forward" effect. . Added -prescale option to pre-scale the game bitmaps before rendering to the screen; this helps get rid of the "fuzzy" look when running with -filter enabled, at the expense of some speed. Note that only integral values are currently supported (no "auto"). - bfm_sc2.c + mpu4.c: More generic 6840 improvements (machine\6840ptm.c) - decocass.c: All hardcoded tables are gone now - Explorer (Cassette): Added new dongle data to Explorer (Cassette). The dongle data is reverse engineered by table analysis. Game doesn't work, because the roms from the overlay PCB are missing. - Grand Striker: Added plds (pal16l8.s201a.u52, pal16l8.s202a.u74, pal16l8.s203a.u75, pal16l8.s204a.u89 and pal16l8.s205a.u109) - Hard Times: With Hard Times every known Playmark game are now emulated. Game is missing sound, because the PIC16C57 isn't dumped. - Hot Mind: Fixed gfx1 roms loading - Pasha Pasha 2: Some improvements to the driver. Added new user2 roms and fixed palettesize. - Cheat engine: Fixed cheat system display and 'cheat_file' option problems - MAME . Fixed ESC key not cancelling out of initial UI screens . Fixed bug where the gamename was reallocated out from under us by the new config system . Added experimental OSD locks (If the OSD layer is not using multiple threads, these can just be stubbed out (return TRUE for osd_lock_acquire and fake the rest). . osd_lock_alloc() allocates a lock . osd_lock_acquire() acquires a lock, blocking until success . osd_lock_try() tries to acquire a lock and returns whether or not it succeeded . osd_lock_release() releases a lock . osd_lock_free() frees memory used by a lock - MAME 64-bit: Fixed windows.mak to support 64-bit builds - MESS: Added the ability to specify a callback when a given option is parsed. This is used on the MESS side to add system-specific command line options. 0.106u4 - New Working games: Card Line - New video rendering system . Fixed feature detection bug that led to false-positive warnings when starting up . Removed extra vertex padding since some graphics cards could not cope with it . Added shims to support both Direct3D 9 and Direct3D 8; D3D9 is the default, with an automatic fallback to d3d8 if not available . New option -d3dversion can be used to specify preferred version for testing . Added 1 pixel black border around all textures to ensure filtering on some cards doesn't result in garbage at the edge of the screen . Enabled "do not wait" feature when unthrottled and using D3D9; this greatly speeds up unthrottled games, but seems to only work in full screen mode . Switched from triangle fans to triangle strips . Ensured that render states are only being set minimally . Added code to reset the device if lost, allowing application switching out of full screen mode and fixing multi-monitor mode with resolution switching - atarigt.c: Fixed games from hanging - midyunit.c: Fixed games from hanging - Card Line: Added OKI6295 (8000 Hz) stereo sound and changed visible area to 512x280. - MAME . Fixed crash when passing an invalid driver name on the command line. Centralized the approximate matching logic into driver.c so other ports can use it as well. . Now properly extracting path from driver name and adding it to the rompath so that drag & drop of ZIP files works once again. . Added new function verbose_printf() which is used instead of checking the verbose global to print information to the screen. Changed all locations that were checking the global to use this new function. - Debugger: Added new function mame_debug_is_active() which can be used by core code to identify when we are paused in the debugger. 0.106u3 - WARNING: As of this build, the new rendering system is enabled by default. The primary focus at this point is compatibility, not performance. Compared to the old -ddraw system, it will appear slower when fully unthrottled because there is not a good mechanism to skip the render if the graphics hardware is still busy like we used to do. If you have any trouble getting a correct display or if you get warning messages printed out when starting MAME, please post about them on http://mametesters.org - SECONDARY WARNING: The command line and INI parsing code was rewritten. If you notice any problems with handling of parameters in either case, please report the bugs on http://mametesters.org - New games: Daikaiju no Gyakushu - New Working games: Critter Crusher and Highway Chase (Cassette) - New Non-Working games: Mario Lemieux Hockey (Mega-Tech) - New clones: Turtle Ship (North America) - New video rendering system . Enabled new renderer by default . Rewrote the options parsing code to be more flexible and generic. A new core source file options.c provides the ability to add and maintain a database of key/value pairs, which can be queried at runtime. Reconnected all existing frontend options through this code. Bounds checking on options for the old renderer is pretty loose, and several more complicated options have been disconnected as a result. If you are still running with the old renderer, be careful. . New options to control multiple screens in the new renderer: -numscreens (specifies how many windows to create), -screen0/screen1/... (specifies the name of the screen for each window), -resolution0/resolution1/... (specifies resolution for each window), -aspect0/aspect1/... (specifies aspect ratio for each screen), -view0/view1/... (specifies starting view for each screen). . Deprecated osd_skip_this_frame() with the new renderer. osd_update() now returns TRUE if it wants to skip the following frame. . At higher resolutions, the standard MAME font is kind of fuzzy and chunky. You can use pretty much any .BDF font for the main font now, renaming it to ui.bdf and placing it in the same directory as the MAME executable. MAME will scale it to whatever resolution you're running at. Use this BDF font (http://aarongiles.com/ui.zip) for testing, which is a 40pt rendering of one of the sans-serif Free UCS Outline Fonts (http://www.nongnu.org/freefont/). . Fixed crash at startup due to uninitialized memory . Fixed crash at shutdown due to incorrect shutdown order . Fixed rendering of 15-bit direct RGB games . Fixed weird frameskipping issues . Fixed off-by-one error on visible area . Added proper clipping of quad primitives . Optimized the clearing step to avoid redundant drawing . Brought software-only case up to support all major blending types . Added support for -filter option . Reconnected snapshots, though they are unrotated and screen 0 only . Fixed several UI problems with new video options menu . More strongly defined the blending modes to produce correct effects . Added a flag to indicate textures that are of screen bitmaps . Download updated layout files for Space Invaders (http://aarongiles.com/invaders.zip) and Turbo (http://aarongiles.com/turbo.zip) - dgpix.c: Fixed flash rom writes in the 'dgPIX' games - jalmah.c . Added 'Flip Screen' dipswitch to Mahjong Kakumei. . Added 'Flip Screen' dipswitch, fixed test/service dipswitch and complete coinage to Mahjong Daireikai, Urashima Mahjong and Mahjong Channel Zoom In. - 1942: Added save state support - 1945kiii: Added save state support - Arkanoid: Fixed rom names in clone (Tayto bootleg, Japanese) - Burnin' Rubber: Added PLDS to clone Car Action - Columns '97: Fixed controls, which was broken since 0.105 - Highway Chase (Cassette): Added dongle data (TYPE1 DONGLE (DE-0061) with alternate PROM). The dongle data is reverse engineered from manual decryption. - Mad Planets: Fixed rom names - Star Castle: Fixed rom names in clone Space Fortress (Zaccaria) - Dipswitch fixes in actfancr, aliens, angelkds, argus, asuka, bwing, compgolf, cop01, dblewing, dec8, dogfgt, dooyong, fuukifg2, homedata, jcross, kaneko16, m92, mainevt, megasys1, metro, ms32, nmk16, paradise, seta, seta2, shisen, snk, ssv, system1, taito_b, taito_f2, taito_l, tecmo, thedeep, thepit and ultraman. - MAME . Refactored resource tracking code, auto_malloc(), auto_strdup() etc into a separate module restrack.c. . Moved large stack buffers into heap buffers to work better on systems with small stacks . Fixed blitters to work with 15-bit direct RGB modes. . Fixed a subtle auditing issue when both parents and clones had NO_DUMP ROMs in their manifests. . Reorganized fronthlp.c to be one step closer to universal. One more layer of abstraction and hopefully it will be able to move up into the core. - Compiling . Added a size parameter to osd_free_executable() . Removed remaining chunks of x86 assembly code, as well as references to NASM in the makefiles. - MSVC compiler . Removed _MSC_VER specific #pragmas in nec.c . Removed _MSC_VER specific #include in winprefix.h . Changed makefile to bootstrap vconv.exe with CL instead of GCC . Changed calls to lib to use link /lib instead . Updated vconv to only use /arch:SSE2 for VC71 and later . Cleaned up the profiler code in winmain.c . Removed the direct dependency of MAME on shell32 has been . Tweaked a couple of preprocessor definitions so we compile as far back as MSVC 5.0 - Debugger: Added code in the debug build to put random data in allocated memory. 0.106u2 - NOTE: The video system in this version has been completely upended and redesigned. The old video system is still the default; however, some features may be broken. These are not bug-worthy reports, as the old system will soon be deprecated. The new system can be compiled by setting the NEW_RENDER flag on in the makefile. THE NEW SYSTEM IS STILL WORK-IN-PROGRESS! Apart from video card- related issues (like it doesn't work on particular hardware or has an incorrect display), bugs are not being tracked at this time. There is already a laundry list of things that are broken at the top of render.c, and there are many other things that still need to be looked at. In order to run the new video system with hardware acceleration, your machine will require DirectX 8 or later. - New Non-Working games: Pasha Pasha 2 and Trivia Madness - New clones: Heavy Smash, Mad Alien and 'WWF: Wrestlemania' - New drivers: pasha2.c and trvmadns.c - ADSP21062 CPU: Added support for circular buffering in the SHARC core and fixed several minor bugs. - Discrete sound . Typedef'ed external discrete sound structures to follow current structure use. Statically defined their use in most drivers to stop name pollution. . Created new DISCRETE_555_VCO1 module. This is the 555&Op-amp oscillator circuit used by Borderline. - Borderline: Added 555&Op-amp oscillator circuit (sndhrdw\vicdual.c) - Cyberball: Added dual screen support - Gaplus: Fixed rom names in clone Gaplus (alternate hardware) - Sheriff: Added color prom 82s137.3l to Sheriff and Bandido - Trivia Madness (not working): Fix question banks (sometimes the game hangs), palette, tilemap colors, remove hack for irq0 firing and add nvram. - Dipswitch fixes in Idol Janshi Su-Chi-Pie Special and Mahjong Kakumei 2 - New video rendering system . To enable it, you need to enable the NEW_RENDER makefile flag and recompile the entire project. . If you previously configured MAME to use DirectDraw (which was the previous default), then you will get software-only rendering by default. You need to explicitly enable Direct3D rendering (-d3d) in order to get hardware acceleration. Software rendering is not very fast, especially at high resolutions. . A new file render.c contains the bulk of the logic . The OSD layer is now responsible for allocating one or more render_targets at osd_init time. The old osd_create_display and osd_close_display calls are not used with the new system, so initialization must take place at osd_init time. . The old osd_update_video_and_audio call has now been replaced with a simple osd_update call. This update call passes a mame_time to the OSD layer, which is the current emulated time. Throttling and speed calculations should use this time instead of the framerate. . osd_update is responsible for calling the render system to request a list of primitives to be drawn on each render_target for the current frame. The primitives are simple and include clipping rectangles, lines, and rectilinear quads only. . If it wishes, the OSD layer can call back to a software rasterizer in MAME. The rasterizer code is provided as an include module so it can be tuned and optimized for platform-specific video modes. See windows\rendsoft.c for a usage example. . There is a new layout file format .lay, which is XML-based and which replaces the old .art files. The .lay files describe how to render to a render_target. Each layout file can contain multiple "views", which describe one of many ways the various elements can be drawn. These views can be selected at runtime via the new "Video Options" menu. . The built-in UI font can be overridden with any .BDF font. Simply name the .BDF file "ui.bdf" and place it in the MAME directory. If you run at decent resolutions, you should choose a large point size for this font so that the scaled results look nice. . The Windows implementation uses Direct3D 8 as the preferred mechanism for rendering. By default, it will render at the current resolution, rather than switching resolutions as before. This can be changed by adding -switchres to the command line. . There are still a number of imperfect/incomplete features with the new renderer, which is why it is not on by default. An incomplete list is given in render.c. . Read 'Layouts and Rendering' for more informations at http://aarongiles.com/?p=161#more-161 0.106u1 - NOTE: Major video-related changes are beginning in the system. Attempts will be made to keep the existing video code working to a large degree, but some features may be broken or working improperly until the video changes are complete. Most notably, in this release, RGB effects are broken for non-Direct3D blitting. For the moment, do not report anomalies or problems in the video system. If you like a nice, stable MAME, please stick with the 0.106 release. You have been warned. - bfm_sc2.c + mpu4.c: Fixed MSB accesses and latch reading in the 6840 emulator (machine\6840ptm.c) - CD-ROM emulation . Additional RAW CD sector conversion support, so a game can request e.g. 2048-byte data sectors from a RAW CHD-CD and still get the right data. . Reversed CHDMAN error message - now non-RAW CHD-CDs are deprecated. - aleck64.c . Improved N64 audio output . Rewrote Audio Interface as a stereo DMADAC (which it actually is), greatly simplifying the code along the way. . Fixed AI interrupt semantics . Replaced Custom sound with 2x DMA-driven DAC in Eleven Beat and Magical Tetris Challenge - decocass.c: Fixed background color in the games (see Pro Soccer, Treasure Island and Ice Cream Factory) - micro3d.c: Fixed potential crash in the driver - taito_x.c . Fixed sound problems in Twin Hawk . Fixed a couple of dipswitch mistakes introduced recently . Added PORT_DIPLOCATIONs to Superman and Twin Hawk - Gladiator (US): Fixed input (P1 and P2 Start are mapped twice) - Polygonet Commanders . Adds change_PC() calls to the dsp56k core . Removed hacky dsp56k initialization, enabling and disabling . Added preliminary implementation of banking hardware tied to the dsp56k - Susume! Taisen Puzzle-Dama: Game uses now a RAW CHD-CD read directly from an original pressed Konami disc. - Input port . Correct the ordering of the DIP_PORTLOCATION() macros to be consistent. Multi-bit DIP switches should be specified in LSB-first order. Added a comment to this effect in inptport.h. . Changed a number of games that were incorrectly using IPT_LIGHTGUN to use IPT_AD_STICK instead (Great Guns, Jurassic Park, Mazer Blazer, Revolution X, Triple Hunt and Turkey Shoot). - Dipswitch fixes in taito_x.c (ballbros, gigandes, kyustrkr, superman and twinhawk) - MAME . Some preparations for proper multiple screen support. The visible_area and refresh_rate values in the Machine structure are now defined as arrays (1 per screen). The machine_config structure has been altered as well, removing the following fields: frames_per_second, aspect_x, aspect_y, screen_width, screen_height, default_visible_area and vblank_duration. These are all stored per-screen in a new screen_config structure. . Reorganized the user interface code to better support the new render system . Converted the Windows blitters to use the DRC engine for generation. RGB effects are officially broken with this change. - Compiling: Modified vconv for Visual C++ to support multiple versions of MSVC based on version info, added support for more parameter translations and makefile now displays compiling and linking messages when building vconv. - Debugger: Fixed a bug that caused a crash when the -debugscript command line option was used with an invalid filename. 0.106 - model3.c: Fixed crash in the model3 games introduced by cleaning up empty ROM regions. - Compiling: Fixed vconv.exe for Visual C++ so it doesn't use options that have been deprecated in MSVC 2005. 0.105u5 - New games: Fishing Maniac 3, Hidden Catch 2 and 2x Poker (Version 50.02 ICB) - New Working games: Marine Date, Yu-Jan and Yu-Ka - New Non-Working games: Intersecti, 2x Master Boy and Poker (Version 50.08 IAM) - New clones: Selection (Version 40.02TMB) set 2 - Removed games: DoDonpachi Dai-Ou-Jou - Amiga emulation (arcadia/mquake/upscope.c): Added some Amiga enhancements needed for MESS Amiga and CDTV drivers - bfm_sc2.c + mpu4.c: More improvements to the BFM driver and the 6840 timer emulation - freekick.c . Cleaned up driver . Added 2nd button in Gigas and clone Oigas, Gigas Mark II and Free Kick . Fixed Z80 clock speed in Counter Run, Free Kick and Perfect Billiard - macs.c . Improved the MACS driver . Fixed a couple of gfx bugs in st0016 video emulation . Added hacks to allow MACS games to boot . Changed user2/3 roms to user3/2 in Cult Name - Dead Connection: Removed non-existent 3rd & 4th player controls - Demons and Dragons, hornet.c, segaorun.c, segas16b.c, segas18.c and system24.c: Fixed a memory_set_bankptr called NULL base - Joshi Volleyball: Fixed input and numbers of players - Marine Date: Applied fixes which were mentioned in 0.105u3. Changed visible area. - Maya: Changed user1 roms to gfx1 - Monsters World: Changed user1 rom to cpu1 - Selection: Fixed rom names - Super Eagle Shot: Removed flags dispose from rom region user1 in clone (set 2) (no more crashes) - Super Real Mahjong P5: Removed flags dispose from rom region user1 (no more crashes) - Taiwan Chess Legend: Changed user1 rom to cpu1 - Dipswitch fixes in Dragoon Might (ver JAA), Joshi Volleyball and Power Balls - MAME . Extended the gfxlayout structure to support "extended" arrays of x and y offsets. These are used for layouts that are larger than 32x32. This enables the standard structure to be smaller for the vast majority of games that don't require huge graphics decodes. The end result is that the MAME .exe is ~3MB smaller. . Improvements to the x86 drc engine and the Windows blitters: Blitter CPUID features now accessed by drc_x86_get_features() call. Added win_blit_init(), to initialize the blitter. Changes to DRC to support usage for things other than CPU cores. Fixed drc_dasm() so it works once again. Added macros for a number of MMX/SSE instructions. Added a number of MMX/SSE instructions to the i386 disassembler. - Compiling . Added preliminary support for 64-bit targets. A new makefile define PTR64 should be set if you are compiling for a 64-bit target. This propogates a PTR64 define into the C files as well. Made the makefile smart enough to auto-disable the drc cores for 64-bit, and removed most of the roadblocks to a 64-bit build, apart from the assembly blitters, which are currently undergoing a rewrite. . Added experimental support for building using Visual C++ 2003/2005. To do this, you still need the MinGW environment (ironically) because we rely on the MinGW make system to call out to the MSVC compilers. Set the variable MSVC_BUILD=1 on the command line or by modifying windows.mak, and it will build using the Microsoft compilers. This works through the use of a stub program vconv.exe which translates GCC options into MSVC options. As a bootstrapping measure, vconv.exe is compiled at the start of a clean build by MinGW. Most of the standard build options just work (SYMBOLS, MAP, DEBUG, etc). If you have a beefy computer, you can also set MAXOPT=1 and use link-time code generation for maximum optimization effect. 0.105u4 - New games: Knuckle Bash 2, Metal Slug 5 (JAMMA PCB) and Tetris (D.R. Korea) - New Non-Working games: DoDonpachi Dai-Ou-Jou - New clones: Double Dragon, Metal Slug 6, Night Slashers and SVC Chaos - SNK vs CAPCOM (JAMMA PCB) - PLD support (Programmable Logic Devices) . Added a new tool jedutil, which will convert .JED files to binary form and back again . Added new ROM region REGION_PLDS, which is designed to hold binary dumps of PLD fusemaps (produced from .JED files by jedutil) . Added logic to -romident to automatically parse .JED files to identify them against these binary dumps . Added PLD dumps to the Batman, Relief Pitcher, Pit Fighter, ThunderJaws and Vindicators (more to come shortly) . Converted PLDs for Cat and Mouse and Lazarian (Laser Battle clone) to the new binary format - ARM7 CPU: Big pile of updates/improvements to the core thumb mode and disassembler thumb mode - RSP CPU: Fixed a major bug in the core (aleck64.c) - aleck64.c + vidhrdw\n64.c . Nintendo 64 system improvements . Rewrote the PIF handling . Slightly improved triangle rendering - bfm_sc2.c + mpu4.c . Cleaned up 6840 implementation (machine\6840ptm.c) . Revised the driver's handling of unmapped regions . Updated the MPU4 memory map - liberate.c: Cleaned up driver - pgm.c: Big pile of updates/improvements to the driver - taitosj.c: Fixed another graphics corruption bug - toaplan2.c . Consolidated the read/write memory maps . Fixed coin counters on a few games . Raised the volumes on a few games . Adding input inheritance and DIPSW locations . Added conditional dependance to DIPSWs where required . Fixing a few incorrect inputs here and there - Arkanoid: Fixed rom names - Batman: Added PLD dumps and updated address map (verified from schematics and GALs) - Blasteroids: Updated address map (verified from schematics) - Cross Shooter: Improved Cross Shooter/Air Raid, but not playable due to missing gfx roms. Fixed rom loading. - Crowns Golf: Fixed rom names in clone (bootleg Set 1). - Double Dragon: Fixed rom names in all sets - Espial: Changed Espial (Europe) to parent set - FixEight: Fixed input - Gauntlet/Gauntlet II: Added proms (timing, flip control and position/size) and full address map verified from schematics - Knights of Valour 2: Fixed sound1 rom address an added missing ARM7 CPU to the clones - Martial Masters: Added ARM7 CPU - Michael Jackson's Moonwalker: Fixed MCU rom length - Net Wars: Fixed prom names - Oriental Legend Super / Special: Started simulation protection - Perfect Billiard: Fixed colors, music tempo and gfx2 roms loading - Power Balls: Fixed OKI frequency in clone (Super Slam conversion) - Rack 'em Up: Changed game to parent set - Super Slam: Fixed OKI frequency - Vindicators Part II: Added proms (timing, flip control and position/size) - Wardner: Fixed ram/rom bankswitching - Xybots: Updated the address map (verified from schematics) - Artwork: Fixed UI positioning when artwork is enabled. This fixes Space Invaders OK screen & FPS counter, which doesn't fit on the screen. - Description changes of aof3k, olds, olds100, olds100a and rbff2k - Dipswitch fixes in afega.c, bfm_sc2.c, Boomer Rang'r, Bullfight, Choky! Choky!, ddragon.c, FixEight (bootleg), Horizon, m72.c, Magic Bubble, Mystic Riders, Ninja Baseball Batman, Thunder Strike, toaplan2.c and Twin Action - MAME: Added a NULL check on memory_set_bankptr(), memory_configure_bank() and memory_configure_bank_decrypted() - Debugger . Added function to change the number of bytes displayed per row in the debugger memory window . Fixed bug in the debugger that would prevent you from typing a command line longer than what was visible 0.105u3 - New games: Poker (Version 50.02) and Up Scope - New Working games: Puzzle Star and Speed Up - New Non-Working games: The Gladiator - New clones: Amidar, Eco Fighters, Moon Cresta, The Pit and Xexex - New drivers: upscope.c - ES5503: Support for ES5503 sound (Moonquake) - Amiga emulation (arcadia/mquake/upscope.c) . Fixed dual playfield mode . Rewrote blitter code (fixes glitches in ar_bowl and others) . Changed Arcadia boot loading to use ROMtags instead of autoconfig . Swapped Kickstart 1.2 in for Arcadia BIOS . Refactored the 8530 CIA code from the Amiga into a separate module and made it support both the 6526 and 8530 variants - cps2.c: Uncommented/added missing undumped ROMs/XORs - decocass/taitosj/vicdual.c: Fixed graphics corruption - model3.c: Changed user3/4 roms to 'flags dispose' - namcona1.c: Uncommented/added missing undumped ROMs to the driver. Added M37702 BIOS (labeled as Namco custom C70) fake rom to Knuckle Heads, Numan Athletics, Nettou! Gekitou! Quiztou!! and X-Day 2. - pgm.c . More improvements to the PGM video code . Added hooks for halting the sound CPU which allows ddp2 to boot . Fixed sound1 rom loading - Bonze Adventure: Fixed levels 2 and 9 - Burnin' Rubber: Added missing proms to clone Car Action - Chequered Flag: Fixed bank switching - Exed Exes: Removed second AY8910 sound - Lost Castle In Darkmist: Added controls for 2nd player in cocktail mode - Moonquake: Added ES5503 sound and fixed input - Mysterious Stones: Fixed bad tiles (vidhrdw\mystston.c) - Puzzle Star: Simulated protection - Radikal Bikers and Surf Planet: Changed user4/5 roms to gfx1/2. - Sidewinder (Arcadia): Fixed game by swapping the Kickstart 1.2 in for Arcadia BIOS - Speed Up: Added new user1/2 and gfx1 roms, fixed gfx2 rom loading and input. - World Darts (Arcadia): Added new user3 rom dart_1l.bin - Terminator 2: Changed control from lightgun to stick - Xexex: Fixed rom names in version (ver EAA) and (ver JAA) - Input port: Fixed incorrect lightgun names - Dipswitch fixes in The Astyanax, Avenging Spirit, Bad Dudes, Birdie Try, Boulder Dash, Cybattler, dec0.c, Diet Go Go, Hippodrome, Heavy Barrel, Lost Castle In Darkmist, megasys1.c, Midnight Resistance, Moonquake, Mysterious Stones, Peek-a-Boo!, Robocop and yunsun16.c - MAME . Fixed some remaining errors and inconsistencies in the content and usage of MAME header files by comparing declarations against actual definitions. Removed many orphaned/duplicate declarations. Added #includes where appropriate, and moved a few declarations to another file when they were in the wrong location. . Removed a number of unused ROM regions. Most (but not all) of the empty ROM region warnings are now taken care of. - Windows rendering code . Fixed blit_vectors so it used the dirty pixel array in D3D mode . Fixed blit_vectors rotation issue for dirty pixels as well . Changed -full_screen_brightness to -full_screen_gamma (which is a more correct description) . Changed -d3dfilter to be a boolean, since the other filtering modes are either obsolete or not applicable to MAME . Removed limitations on windowing position so you no longer need to be aligned on an 8-pixel boundary . Cleaned up a number of unused global variables . Improved multi-monitor support to work in GDI mode as well as in non-full-screen modes . Added missing documentation for the -screen parameter 0.105u2 - New games: Mang-Chi and New Hidden Catch - New Non-Working games: Over Rev, Sega Ski Super G, Sliver and Total Vice - New clones: Abscam, Billiard Academy Real Break, Carrier Air Wing, DJ Boy, Ms. Pac-Man, Plasma Sword and Puck People - New drivers: sliver.c - PowerPC CPUs: Fixed floating point rounding error in the PowerPC FPU - MC6821 PIA . Some function cleanups . Converting to new MAME struct conventions . Enforcing that configuration/initialization happens only at init time - arcadia / mquake.c . Rewrote autoconfig system to be more generically useful . Cleaned up/rewrote the CIA emulation to be more complete . Added dual playfield and sprite priority support . Added collision detection support . Tweaked COPPER timing . Shuffled the BIOSes so that the newer version is the defaul - dgpix.c: Fixed E1-32XT CPU1 clock speed in King of Dynast Gear and X-Files - eolith.c: Added missing AdMOS wavetable rom and fixed E1-32N CPU clock speed in all games - model3.c: Swapped sound1 roms in Emergency Call Ambulance, Fighting Vipers 2 and Spikeout +/ Final Edition - pgm.c . Reorganized and cleaned up the sprite drawing code . Added zooming support . More work on the protection in Killing Blade - PS-based games (konamigq.c, konamigv.c, namcos10.c, namcos11.c, namcos12.c and zn.c): Fixed the 'Fatal error: Invalid data type' crash - toaplan2.c: Fixed crashes in Armed Police Batrider and Battle Bakraid /- Unlimited version - yunsun16.c: Fixed OKI6295 clock speed in Bomb Kick and Shocking - Magic Johnson's Fast Break: Tweaked Amiga COPPER timing to fix scores - Evil Night: Added timekeeper EEPROM - Croupier (Playmark Roulette) . Some improvements (still doesn't quite work properly) . Added new cpu1 roms and fixed input - Flying Shark: Changed all user1 roms to cpu3 and fixed rom loading - Heat of Eleven '98: Added timekeeper EEPROM - Mahjong Electron Base: Added missing gfx blitter data rom - Moonquake: Fixed number of players + buttons, input and VSync - Showdown: Fixed start button ('Action') - Tobe! Polystars: Added serial EEPROM - Top Roller . Fixed colors and gfx bugs (there's still minor problem with fg text layer colors) . Added better audio with samples rom . Added proms (big sprites, sprites+fg, sprites, 2x bg and unknown) . Fixed visible area and palettesize - Wardner: Changed all user1 roms to cpu3 and fixed rom loading - Save State: Added PAIR and PAIR64 as valid save state types - Dipswitch fixes in Dangar - Ufo Robo, Galivan - Cosmo Police and Monsters World - Description changes of Croupier (Playmark Roulette) - MAME . Made "This game doesn't work" text more explicit - ui_text.c (UI_brokengame) = "THIS " CAPGAMENOUN " DOESN'T WORK. You won't be able to make it work correctly. Don't bother." 0.105u1 - New games: Pang Pang, Puzzle King (Dance & Puzzle) and Sex Triv - New Working games: Crazy Fight and Fighter's History - New clones: Battle Bubble, Bonze Adventure, Fantasia II and The Killing Blade - 68040 CPU: Added many FPU opcodes to the core - H8/3002 CPU: Added several missing H8 opcodes to the core - TMS320C51: Support for TMS320C51 cpu - Z80 CPU: Fixed Z80 PIO code to prevent an interrupt to occur between the PIO_OP_MODE byte and mask which follows. According to the datasheet, this is not permitted in hardware. - 6821 PIA: Added accessors for the CA2, CB2 and IRQ signals - aleck64.c: Split out some of the Nintendo 64 core pieces into MESS-shareable modules - arcadia.c . Rewroted a large chunk of the Amiga emulation to support Custom stereo sound . Added additional video modes/effects including extra half-bright mode . Added manual sprites and mid-scanline changes . Modified driver which uses empty RAM regions for RAM or had extraneous memory regions . Changed visible area and VSync . This is still work-in-progress - cave.c: Fixed watchdog/reset in Metamoqester and Mazinger Z (games doesn't start) - cps1/2.c: Updated drivers to more accurately draw tilemaps, based on evidence from a board with mixed ROMs. - namcos22.c: Added BIOS MCU rom c74.bin (cpu4 - nodump) - nss.c . Modified driver which uses empty RAM regions for RAM or had extraneous memory regions . Changed user3 to user3 flags dispose roms - pgm.c: Correct mask on sprite width parameter in sprite list - stv.c: Modified driver which uses empty RAM regions for RAM or had extraneous memory regions - taito_f3.c: Added version numbers to the games descriptions - taitojc.c . Affected games are Densya De Go / 2, Landing Gear and Side By Side / 2 . Added TMS32051 CPU4 . Fixed gfx/user3 rom loading, year and palettesize - All American Football: Added new cpu1 rom to clone (rev B) - Bonze Adventure: Accurated C-Chip emulation to fix protection problems (no more missing or made up data, all data extracted from working PCB) - Crazy Fight: Added YM3812 sound, fixed gfx rom loading and changed visible area - Enduro Racer: Added new cpu2 roms to parent version (YM2151, FD1089B 317-0013A) - The Killing Blade: Correct decryption function, fixed gfx rom loading and added some WIP protection simulation for clone (Taiwan?), game boots but at least one stage is broken. - Last Fighting: Added color DAC to the driver - Pang Pang: Added simulated PIC16C57/OKI6295 sound - Sea Hunter Penguin: Added proms (prom 1.17g is from Dragon Punch) - Tumble Pop: Added simulated PIC16C57/OKI6295 sound for clone (bootleg set 2) and fixed OKI6295 clock speed in clones (bootleg set 1/2) - Save State . Changed memory save state registration so it doesn't register for saving memory areas that overlap memory regions. This means that drivers which rely on extra memory regions for RAM will need to fix that before supporting save . Added stricter type checking for save state registrations (only works in GCC) - Dipswitch fixes in Bang Bang Ball, Crazy Fight, Gun Master and Pig Newton - Description changes of Sea Hunter Penguin - MAME . Changed automatic ROM assignment logic in the memory system so that it doesn't auto-assign out-of-bounds ROM regions . Cleaned up the usage of includes\*.h files across the project, by ensuring that: 1. All includes\foo.h files are annotated with comments describing the source of the declarations. 2. Each source file so annotated also explicitly does an #include "includes\foo.h" to ensure consistent definitions. Along the way a number of inconsistent, irrelevant and incomplete declarations were removed/cleaned up. . Moved region and address space names out of the Windows-specific code and into more common locations . Modified a number of drivers that were using empty RAM regions for RAM or which had extraneous memory regions. Most significant changes were to the arcadia, nss, and stv drivers. . Added a warning during validity checks to point out empty memory regions. These should either be eliminated or marked with an explicit fill value (ROMREGION_ERASE00 or ROMREGION_ERASEFF) to clear the warnings. . Changed -romident option so that it returns errorlevels based on how many ROMs were identified (0=all files identified, 1=all files except some non-ROM files identified, 2=some files identified, 3=no files identified) - Compiling . Removed hard linkage of game driver clones. This reduces hard inter-driver dependencies and allows for easier usage of tiny.mak. . Moved calls to ui_set_visible_area() into set_visible_area() to work around timing problems when they are called at separate times during a single frame . Added $(OBJ)/%.s target to the makefile for easy disassembly analysis of generated code (you can also use the $(OBJ)/%.pp to examine preprocessor output) - Debugger . Fixed crash bug in old debugger introduced in the last release . Fixed a bug with code comments that led to incorrect display for long comments 0.105 - NOTE: IMPORTANT CHANGES FOR OSD DEVELOPERS: There have been several changes this cycle that impact you. Please scan this file in detail for the details. - stv.c: Added the Dev 1.061 and early Japan bioses for ST-V: 'stv1061.bin' = ST-V Dev BIOS (1.061) - Sega 1994, Noted "ST-V Ver 1.061 94/11/25" on EPROM sticker, coming from a S-TV SG5001A dev board and 'epr-17740.bin' = ST-V BIOS (Japan early) - Sega 1995, found on a early board dated 02/1995. - system24.c: Fixed the save state support (when you attempt to save state, the game crashes) - vidhrdw\segaic16.c: Fixed crash in System 16 games introduced by last update (segahang.c, segaorun.c, segas16b.c, segas18.c, segaxbd.c and segaybd.c) - Jump Kids: Added sound and fixed OKI6295 frequency - Little Robin: Some more progress and fixed visible area - Paradise Deluxe: Added new gfx3 and sound2 roms - Power Drift: Fixed cpu1 rom names in all sets - Dipswitch fixes in Cookie & Bibi 3 and Honey Dolls 0.104u9 - New Working games: Joshi Volleyball and Toppy & Rappy - New Non-Working games: Battle Tryst, Evil Night, Heat of Eleven '98, Sega Rally 2 DX, Stepping Stage and Tobe! Polystars - New clones: Eyes, Final Fight, Get Star, Ninja Kazan, Power Drift, Puzzle Uo Poko, River Patrol, Slap Fight and Toride II Adauchi Gaiden - New drivers: konamim2.c and stepstag.c - CarnEvil: Fixed option screen (F2), which was is screwup (vidhrdw\voodoo.c) - Cerberus: Fixed CPU2 bankswitching, which shows several problems that make it unplayable - F1 Exhaust Note: Fixed engine noise looping (sound\rf5c68.c) - Great Swordsman: Fixed game, which was broken in an earlier update - Joshi Volleyball: Fixed rom loading and removed MSM5205 sound - The King of Fighters 2003: Added decryption of 271-p3_decrypted.bin ROM in version (World / US, MVS) and (Japan, JAMMA PCB) - Power Drift: Fixed rom names in all sets - Rave Racer: Fixed game, which crashes after the EEPROM INITIALIZE screen - Toppy & Rappy: Added protdata.bin, this contains the code for 2 of the IRQ functions, but the game only uses one of them, the other is executed from ROM. The version in ROM is slightly patched version so maybe there is an earlier revision which uses the code provided by the MCU instead. - Save State: Undo the use of timers to trigger save/restore of states. This leads to one less timer in the system, and hence will break the save states from previous versions. The current save state system is extremely sensitive to such changes, unfortunately. This will be addressed in a future version. - Dipswitch fixes in Joshi Volleyball and Toppy & Rappy - Description changes of Toppy & Rappy - MAME: Cleaned up error logging so that it is callback driven, allowing more than one potential output source. Fixed the -oslog option in the Windows build. - Compiling: Fixed makefile to allow command-line override of MAMEOS and TARGET variables - Debugger - Changed comment prefix in debugger command scripts from '#' to '//' - Fixed "do" command in the debugger 0.104u8 - NOTE: IMPORTANT CHANGE FOR OSD DEVELOPERS: osd_logerror is no longer used. Rather, for error logging you provide a handle to a mame_file in the options.logfile field. If you leave this set to NULL, no logging will be done. - New games: Paradise Deluxe and Sea Hunter Pengiun - New Working games: Champion Baseball (Japan set 1/2), Champion Baseball II, Exciting Soccer II, Shougi / 2, Talbot and Wink - New Non-Working games: Tappy & Rappy - New clones: Do! Run Run, Fighters' Impact, Final Lap R, News, Rave Racer, Silent Scope, Slap Fight, Star Fighter, Wild West C.O.W., OutRunners and Wink - Alpha 8201/8301 MCU: Added emulation of the Alpha 8201/8301 MCU and connected it to Champion Baseball (Japan set 1/2), Champion Baseball II, Exciting Soccer / II, Shougi/2 and Talbot. Fixed AY8910 clock speed. - cclimber.c: Fixed driver (rpatrolb, silvland, cannonb and cannonb2: The emulation starts for each but the game immediately shows a static screen) - galaga.c: Added save state support - m92.c: Fixed rom names in Gunforce, Gunforce 2, Hook, In The Hunt, Major Title 2, Perfect Soldiers and R-Type Leo - maxaflex.c: Fixed driver (crashed if you use a audio sample rate of 22050 Hz) - segar.c: Fixed Z80 CPU1 clock speed in 005, Astro Blaster, Monster Bash and Space Odyssey - segaybd.c: Added save state support - zodiack.c: Fixed driver sound interrupt ('The Bounty' stops at boot and the other games have missing AY8910 sound) - Block Block: Fixed level 6 and clone (World) - Congo Bongo: Fixed second SN76496 frequency - Don Den Lover Vol. 1: Fixed colors - Dragon Breed: Fixed rom names in verion (M72 PCB version) - Heaven's Gate: Fixed cpu2 rom loading - Jump Kids: Fixed 68000 CPU1 clock speed, OKI6295 sound and rom names. Added Z80 CPU2 and new cpu2 and gfx2 rom. - Kung-Fu Master: Added new cpu2 and gfx2 roms to version (Data East) and fixed rom names - Pig Newton: Hooked up Sega Universal Sound board. Fixed Z80 CPU1 clock speed and added I8035 and Custom sound. - Taisen Quiz HYHOO: Fixed game which was broken in the last round of changes - Teenage Mutant Ninja Turtles: Fixed the bottom cloud in the opening sequence - Turbo Out Run: Fixed reset bug - Wink: Fixed most of the remaining issues in Wink, though there is still some unemulated protection. Fixed Z80 CPU1 clock speed and AY8910 sound. Added Z80 (1.5MHz) CPU2 and dipswitches. - Save State: Improved the "out of context" error message to indicate the source of the problem - MAME . Added cpunum_set_clock_period(), a variation of cpunum_set_clock() that takes subseconds_t, providing better granularity. . Moved logerror handling into the core. OSD ports should set options.logfile to a mame_file handle for the output file. . Added -validate / -valid command to perform system-wide validation and exit with a proper errorcode. Performs internal validation on every driver in the system. Run this before submitting changes to ensure that you haven't violated any of the core system "rules". 0.104u7 - NOTE: All newly-introduced bugs due to the core changes have been fixed. If you find anything else that is broken, please let MAMETesters know right away. - New games: TX-1 - New Working games: Crystal Gal and Crystal Gal 2 - New clones: Mahjong Hana no Momoko gumi (Japan 881125) and Circus Charlie (Selectable level set 2) - balsente.c: Fixed save state support in the driver - I8039 CPU: Updated the disassembler to the new interface - dbz.c . Updated games to use the K056832 chip emulation, fixing color offsets and priorities . Changed driver dbz2.c to dbz.c - harddriv.c: Fixed number of players in all games - nbmj8688.c, nbmj8891.c, nbmj8991.c and nbmj9195.c . Fixed key input problems in many of the Nichibutsu mahjong drivers . Fixed bugs upsidedown0103yel, mgion0104u6yel and hyouban095u2red - model1.c: Deleted #include in vidhrdw\model1.c (games in this driver, VF for example have gone from 60fps to 6fps in a non-debug non-optimized build. No error log being generated) - PSX emulation . konamigq.c, konamigv.c, namcos10.c, namcos11.c, namcos12.c and zn.c - especially Tekken Tag Tournament and Judge Dredd . Switched MDEC decoding input from CbCrY to CrCbY, and switched MDEC 15bit output from rgb to bgr - sega.c (Sega vector games) . More improvements to the Sega Universal Sound board . Star Trek is almost identical to the samples . Tac/Scan is not that far off, surprisingly - segas32.c: Fixed indirect palettes in driver - stv.c: Fixed games which always resets at the begining - vegas.c: Fixed Gauntlet Dark Legacy and Gauntlet Legends game craches - A. D. 2083: Fixed game (stops at boot. It has happened from 0.104u3) - Buggy Boy: Added road video timing prom to version (Single Monitor) - Circus Charlie: Fixed rom names in all sets - Oh My God!: Fixed game broken in 0.104u6 - Parallel Turn: Added simulation of protection - SegaSonic The Hedgehog: Fixed game graphics finally - Trivial Pursuit (Spanish Edition): Added save state support - TX-1: Added proms from a new dump (two of the EPROMs were damaged, please contact Guru if you have a TX-1 PCB with ROM labels like 'TX1 19B' or 'TX1 5A') - TX-1 (Atari/Namco/Taito License): Changed visible area - Zwackery: Fixed game (if you try play this game it will show you: TIMER ERROR. This thing dosen't happened in 0.104u2) - Dipswitches . Added new PORT_DIPLOCATION() macro which allows you to specify the physical PCB location of a DIP switch and the switches that correspond to the bits in the DIPSETTING (see sega.c for an example) . Added missing 'Demo Sounds' dipswitch to Spelunker II - Input port . Added new function input_port_set_changed_callback() which lets you receive a change notification when certain bits in an input port have changed (see sega.c for an example) . Added new PORT_CUSTOM() macro which allows you to specify a callback to return the value of bits in an input port. This saves you from needing to intercept the port read and modify the bits there (see sega.c for an example) . Moved read/write handlers for input ports, watchdog and interrupt enable out of the core and into machine\generic.c - MAME . Fixed window resizing bug when running in a window . Fixed crash when calling fatalerror before the system was ready for it . Moved read/write handlers for input ports, watchdog and interrupt enable out of the core and into machine\generic.c . Moved generic palette hanlders out of the core and into vidhrdw/generic.c . Clarified the names of many of the palette handlers and simplified the code . Added code to the UI to sort the per-game inputs in a standard order - Compiling: Removed unnecessary #includes from a number of files. Added #includes to files that were defining items that were declared in the header. Better documented where items are defined in the header files from the includes directory. - Debugger: Fixed some crashes in the debugger if you tried to set breakpoints while the game was running and there was no active CPU - Windows XP . Updated raw mouse support . Reversed the RAWMOUSE device list. RAWMOUSE reports the last installed mouse as the first device. I now place new mice at the end . Added clipping to RAWMOUSE support so the cursor does not leave the game area in Windowed mode. Also fixed the non-RAWMOUSE Windowed mode clipping I broke by my last changes . You can now see the names of the mice attached by using -verbose . Changed Lightgun functionality if using XP. You no longer need to use -lightgun or -dual_lightgun. Use -mouse and multiple (2+) "HID-compliant mouse" lightguns will be detected. Lightgun support in Win98/Me remains unchanged. -offscreen_reload can still be used on Win98/Me/XP (see windows.txt for further info) 0.104u6 - New games: Trivial Pursuit (Spanish Edition) - New Working games: Canvas Croquis and Parallel Turn - New Non-Working games: Solar Assault DR2 - New clones: Multi Champ (World) and SDI (FD1089A 317-0028) - DAC + DMA-driven_DAC sound: Added 4x oversampling support to the DAC sound systems - Exidy custom sound: Added oversampling support (exidy.c and victory.c) - 6821 PIA: Added accessors to return output values - Flash ROM emulation (intelfsh.c): Added the missing commands and proper maker/device IDS to the flash memory handlers for Fujitsu MBM29F016A, used by Konami Firebeat hardware (not yet emulated). - aleck64.c: Major update to the Aleck64 driver. Still not fully working yet. Fixed R4600 clock speed. Added RSP CPU2 and Custom sound. Fixed visible area and added dipswitches. - baraduke.c: Fixed freezes at boot in Baraduke and Metro-Cross (baraduke.c_0104u5red) - m62.c: Fixed missing sound (m62.c_0104u5yel) - model1.c: Fixed vidhrdw driver (model1.c_0104u5yel) - neogeo.c: Added save state support to PD4990a device - sega.c (Sega vector games) . Rewrote vector generator from schematics. Yes, it is supposed to be that jumpy on zooms! . Correct CPU speeds and cleaned up memory maps . Connected AY-8912 to Zektor for missing sound effects . Added emulation of the Universal Sound Board - not yet perfected, but gets rid of the need for samples in Star Trek and Tac/Scan. Tac/Scan sounds pretty wretched now, but Star Trek is close . Fixed CPU clock speed on the speech board, but it appears to be a bit too slow now . This is still work-in-progress. Don't report bugs yet - Argus: Added preliminary support for the Jaleco color blending hardware - Astro Blaster: Fixed I8035 clock speed - Canvas Croquis: Fixed gfx1 rom loading and visible area - Congo Bongo: Added new samples - Eliminator: Fixed Z80 clock speed to 4MHz and added proms - Gorf: Removed Custom sound - Nitro Ball: Fixed crash in stage 4 (right route) - Polygonet Commanders: Got game back to the POST screen - Psychic 5: Added preliminary support for the Jaleco color blending hardware - Rolling Thunder: Fixed game broken in 0.104u5 (rthunder0104u5red) - Search for the Magical Error: Some improvements. Title and attract works. No sound. Hangs in game. Problems with shared mem and main-sub cpu communciation. - Space Fury: Fixed Z80 and I8035 clock speeds and added proms - Star Trek: Fixed Z80 and I8035's clock speeds. Replaced samples with Custom sound and added proms - Tac/Scan: Fixed Z80 and I8035 clock speeds. Removed all samples and added proms - Thunder Cross: Fixed rom test (thunderx0104u1yel) - Valtric: Added preliminary support for the Jaleco color blending hardware - Wizard of Wor: Removed Custom sound - Zektor: Fixed Z80 and I8035 clock speeds and added AY8910 sound and proms - Dipswitch fixes in Action Fighter, Agress, aleck64.c, Canvas Croquis and Parallel Turn - MAME . Fixed various problems introduced in the last set of changes . Reduced global namespace pollution by marking many global functions explicitly static, especially in the CPU cores . Added validity checks to ensure CPU core completeness . Reduced global namespace pollution by marking many global functions explicitly static, especially in the CPU cores . Added validity checks to ensure CPU core completeness . Added movie recording time to the internal profiler - Debugger: Fixed comment display for processors which use an ADDRBUS_SHIFT 0.104u5 - NOTE: IMPORTANT CHANGES FOR OSD DEVELOPERS: A new function osd_create_directory is now required in order to create memcard subdirectories. This function was previously defined only for the MESS core, so if there is a MESS port already available, you can just import that function. - New games: Golgo 13 Kiseki no Dandou - New Non-Working games: Gamshara, Mahjong G-Taste, Taisen Hot Gimmick 4 Ever and Taisen Hot Gimmick Integral - New clones: Alien Arena, Art of Fighting 3, Fighters Swords, Out Zone, Point Blank 2, Pollux, The Last Solider, Real Bout Fatal Fury 2, Soul Calibur, Tekken 3 and 2x Tekken Tag Tournament - 8080 CPU: Fixed incorrect flags emulation in the CMA instruction - ARM7 CPU: Preliminary thumb implementation. Many opcodes present, but there are definite sign problems. - Nintendo 2C03B PPU: Changed the NES PPU interfaces to follow new struct conventions - astrocde.c: Added save state support - bfm_sc2.c: Cleaned up video system - gaelco.c: Reduced encryption in Gaelco games down to equations. These still need to be optimized, but the giant encryption tables are no longer needed. - itech8.c: Fixed bug itech8c0104u4red (black screen) - namcos1.c: Fixed games crashing (namcos10104u4red) - namcos12.c: Added board notes - psikyo4.c: Hooked up missing language jumper - Asterix: Converted game to use K056832 emulation (fixed bugs asterix053gre, asterix_2055gre and asterix_3055gre) - Express Raider: Fixed game protection (exprraid0103u1red) - Ghoul Panic: Hooked up light gun - Knights of Valour 2: Hooked up ARM7 protection CPU (boots but does not run or play due to the Thumb sign problems) - Polygonet Commanders: Improved driver and added DSP56156 CPU and K054539 sound - Point Blank 2: Hooked up light gun - Rolling Thunder: Fixed bug rthunder0104u3ora - Scorpion: Fixed bug scorpion0104u4red (doesn't pass the ram/rom initializing) - Tekken Tag Tournament: Emulated DMA protection (still not playable) - Tumble Pop: Changed visible area - Under Fire: Fixed reset bug - Wally wo Sagase!: Fixed reset bug wwallyj0104u4red - Input port . Windows input code now using RAWMOUSE mode if available. This means you can now use multiple mice in Windows XP. Lightgun support has not been changed yet . Added back DX7 support for the Windows input system to support multiple mice. It was set to DX5 in 104u2 . Removed the system mouse from the list of available mice on non-XP systems. This allows you to now properly select the individual mouse . Modified the Analog Axes selection of the player controls to be more responsive - Dipswitch fixes in Lode Runner - The Dig Fight and psikyo4.c - MAME . INIT/Reset/Pause routines: Added mame_get_phase to determine which program phase (init/reset/running/exit) the system is in. This is intended primarily for assertions to enforce rules about when certain actions can be taken. . Added several validity checks related to display variables . Fixed bug that caused a full set of validity checks even on release builds . Rewrote winalloc to be more dynamic and to ignore memory leaks in the runtime . Fixed memcards properly. They are no longer hardcoded for the NeoGeo. The implementation has moved to generic/machine.c, and a callback handler very similar to NVRAM is now supported in the machine driver definition. Cards are created per-game, so the memcard directory now has a subfolder per game with each game's cards stored underneath . Added support for zero-length palettes (requires RGB direct mode) - Compiling . Cleaned up #include files in CPU/sound cores. CPU cores should generally only need to include cpuintrf.h. Sound cores should generally only need to include sndintrf.h . Made it a fatal error to request operations on invalid sound/CPU indexes. These have been logged to the error.log in the past, but really need to be cleaned up . Added a new function safe_activecpu_get_pc() that can be used when logging PCs to smartly detect whether or not it is safe to call activecpu_get_pc() . Changed CPU init/reset callbacks. The init callback now accepts a number of parameters, including the CPU index, the clock, a generic configuration parameter, and a pointer to the IRQ callback. The reset callback no longer takes any parameters (the configuration parameter has been moved to the init callback). And the IRQ_CALLBACK getter/setter has been removed since this is now set up once at initialization time. . Fixed old debugger compilation on non-Windows platforms . Added mame_strnicmp along the way . Fixed compile errors under GCC 4.1 - Debugger . Added new debugger properties: logunmap, logunmapd, logunmapi which enable/disable logging of unmapped memory accesses . Fixed a 0-length comment bug (no more "// 0, " allowed) . Added comment output to the new debugger's DASM command . Changed the comment save path from \mame\comment to \mame\comments . New command "print" is a simple way to display the result of one or more expressions . New command "symlist" displays all the symbols registered . All save state registered scalar globals are now available as symbols (prefixed by a '.') . All save state registered global arrays are now available for viewing/editing in the memory window . All registered memory regions are also available for viewing/editing in the memory window 0.104u4 - NOTE: IMPORTANT CHANGES FOR OSD DEVELOPERS: 1. osd_pause is no longer called directly. Rather, your osd_init function should register the osd_pause callback (if necessary) using add_pause_callback. 2. osd_die is now handled by the core; you should remove this function from the OSD layer. 3. logerror is front-ended in the core; it calls to a new OSD function osd_logerror which handles the OS-specific file and/or debugger logging. - New Working games: Fred Flintstones' Memory Match - New Non-Working games: Crazy Fight, 2x Final Furlong 2, Gekitoride-Jong Space, Kotoba no Puzzle Mojipittan, Mr. Driller G, Search for the Magical Error and Star Trigon - New clones: Dragon Breed - 68000 CPU: Moved 68000-specific build rules to cpu.mak and updated the 68000 disassembler to use the new interfaces - I8751 CPU: Fixed the 8751 MCU (8751MCUgames0104u3: segas16a/b, segas18 games using a 8751 are not working) - I960 CPU: Fixed bug i9600104u2ora (The debugger errors out when you try to run a game using the i960 cpu core. It displays the following error "disasm_generate_bytes: unknown size = 32". i9600104u2ora Malice) - MIPS CPUs: Hooked up the IDT R4650 (little)/(big) properly in the MIPS recompiler - BSMT2000 sound: Added save state support - SN76477 sound: Added save state support - SN76496 sound: Added save state support for Sega System 1 games - bfm_sc2.c: Changed the ROM banking of the Bellfruit 'Adder' card to the new standard, as well as tidying up the MPU4 emulation with some new information. - dcheese.c: Added save states to the driver - dkong.c: Fixed missing save state data in the driver - namcos10.c: Added decryption of the BIOS for the Namco System 10 games using MEMN ROM boards - namcos23.c . More Namco System 23 progress . Further hardware work . Hooked up H8/3002 MCU . Added sound system . Added many notes - st0016.c: Fixed bug in ST-0016 driver (driver is broken whenever it attempts to play a sound. st0016_0104u3red) - system1.c: Added save states to the driver - taito_b.c: Added save states to the driver - taitosj.c: Added save states to the driver - tetrisp2.c: Added save state support to the driver - Arkanoid: Added save states to the driver - Choko: Exchanged choko-opcodes.bin user1 rom with new XOR tkojx.bin rom - Cloak & Dagger: Added save state support - Crazy Balloon: Added save state support - Double Cheese: Fixed sound1 rom loading - Diet Go Go: Fixed game (it refuses to run in u2. dietgo0104u2red) - Fred Flintstones' Memory Match: Fixed sound1/gfx1 rom loading - GP500: Added IDT R4650 CPU, H8/3002 and C352 stereo sound - Lotto Fun 2: Fixed sound1 rom loading - Mario Bros.: Added save state support - Namco Classics Collection Vol.1/2: Added save states support - Operation Wolf: Fixed save states - Phraze Craze: Added new user1 rom - Raiden 2: Made more progress on sprite decryption - Thunder Cross: Added cpu2 rom to clone (Set 3) - Time Crisis 2: Added IDT R4650 CPU, H8/3002 and C352 stereo sound - Warrior Blade: Fixed sprite garbage (warriorb0104u2gre) - Cheat engine: Fixed cheat timer to fire at the correct rate (cheat0104u3ora). Also fixed initialization order to work around dependency on the video / UI system. - INIT/Reset/Pause routines . New function add_pause_callback can be called by other modules to register a callback for whenever MAME is paused/resumed . Converted all existing pause hooks to use the new system . New function add_reset_callback can be called by other modules to register a callback for whenever MAME is reset . Converted all existing reset hooks to use the new system . Removed machine_reset; replaced with mame_schedule_soft_reset . New function mame_schedule_exit to force an exit cleanly from external events . Removed all the "trying_to_quit" crap from the Windows code . Moved save/restore system out of cpuexec.c into mame.c . Moved core game loop out of cpuexec.c into mame.c . Added hard reset support (complete tear down and re-init) - MAME . Added "wb+" disposition to osd_tool_fopen . Fixed a couple of small memory leaks and a crash bug found by Valgrind . Added sanity checking to the set_visible_area() call to ensure it is not set larger than the screen bitmap . Split sndintrf.c into sound.c, sndintrf.c, and sndhrdw/generic.c . Added #include vidhrdw/generic.h to mamecore.h, and removed all explicit includes elsewhere . Fixed memwindow0104u3red (All functions on New Memory Window -> Options (x byte chunks & Reverse View) causes the MAME crash with "Attempt to get invalid property 0 on debug view type 4". memwindow0104u3red) - Compiling . Remapped osd_die to fatalerror, which cleans up behind itself and returns to the osd code by returning from run_game . Removed a number of unnecessary includes from driver.h . Moved logerror into the core . Moved 68000-specific build rules to cpu.mak . New function skip_this_frame, should be called by drivers instead of osd_skip_this_frame . Removed includes of osdepend.h and osd_cpu.h from drivers; only the core should include these - Debugger . Added comments support to the debugger. You can now dynamically add comments that are visible next to the disassembly view. Comments are saved to an XML-based .cmt file in a 'comments' directory by default upon exiting . Added new streaming text buffer system . Rewrote the console window to use the streaming text buffer . Added new log window (Ctrl+L) which displays live error.log output . Added disassembly view menu to control comments versus raw or encrypted opcodes . Added disassembly menu to the main console window as well . Now detect expressions with assignment or ++/-- operators as commands, do you can just say "pc=0" to modify registers instead of needing to type "do pc=0" . Fixed bug that would sometimes lock the disassembly view to the top line 0.104u3 - NOTE: IMPORTANT CHANGE FOR OSD DEVELOPERS: osd_exit is no longer called directly. Rather, your osd_init function should register the osd_exit callback (if necessary) using add_exit_callback. Also, several global variables have been moved into the Machine structure: mame_debug -> Machine->debug_mode, playback -> Machine->playback_file and record -> Machine->record_file. - New games: Bomb Kick - New Working games: Choko - New clones: Agress and Tokio / Scramble Formation - Hyperstone CPUs: Fixed typo in Hyperstone core that led to false positive warning popups - MIPS CPUs: Added support for IDT-specific MIPS MUL instruction in the MIPS3 core, recompiler and disassembler - CEM3394 sound: Added oversampling and save state support - N2A03 sound (NES APU): Added save state support - balsente.c: Added save state support - dkong.c: Added save state support - taito_x.c . Cleanups to the driver . Converted input ports to an INCLUDE/MODIFY tree . Removed MDRV_MACHINE_INIT(cchip1) from games that don't have a C-Chip (all of them except Superman) - Arm Champs II: Fixed 'MOTOR TEST' (move mouse or joystick to start game) - Black Tiger: Added save states - Bomb Jack: Added save states - Boot Hill: Fixed 'Time' dipsettings - Dragon World: Removed gfx1 rom and fixed rom names - Fred Flintstones: Improved graphics rom loading - Great 1000 Miles Rally: Fixed OKI6295's volumes - Missile Command: Fixed save state support - Raiden 2: Some documentation and input port updates (still not playable) - Return of the Jedi: Added save state - Superman: Changed 'Unknown' to 'Unused' dipswitches and fixed coinage in clone (Japan) - Twin Hawk: Fixed 'Lives' dipswitch in Twin Hawk and clone (US) and removed 'Cabinet' dipswitch (the dipswitch does nothing) - Yie Ar Kung-Fu: Removed P1/2 Button 3 based on the operators manual - Save State . Added #include "state.h" to driver.h. This means most driver files no longer need to explicitly include it. Went through and removed it from most drivers . Audited the use of save state registrations throughout the code, switching most cases over to using the state_save_register_global or state_save_register_item macros to simplify the code . Deprecated the save_state_register_ calls since nearly all cases can be automatically handled by the macros. For odd cases, there is now a save_state_register_memory call which is generic . Simplified the save state logic, allowing for unlimited instances and reducing the complexity of the code. This breaks existing save states - MNG recording (video.c): New option -mngwrite, which records an MNG movie of the game from the get-go and allows you to specify a target filename - LISTXML/INFO: Added an optional xml_parse_options parameter to xml_file_read() and xml_string_read(), to provide options for preserving whitespace, error reporting and parser setup - Dipswitch fixes in Boot Hill, Superman, taito_x.c and Twin Hawk - CHDMAN: Fixed CHDMAN to write the correct number of logical bytes when extracting something that is not an even number of hunks large - MAME . Reorganized the core initialization/exit sequencing to be "flatter" and more straightforward to understand. System cleanup is now no longer explicitly called by the code in mame.c. Rather, each init function is free to register an exit handler, which will be called in reverse order of registration upon a system exit. . Removed default registrations from config_init() into the init functions of the associated modules. Now each system that has config data can register its own callbacks to process it . Refactored/renamed/removed/added several core files: Renamed driver.c to mamedriv.c, created a new driver.c containing functions defined in driver.h, split common.c into video.c and machine\generic.c, moved a number of mame.c functions to video.c . Renamed MACHINE_INIT to MACHINE_RESET to normalize the naming of the callbacks defined in the MACHINE_DRIVER structure. Added several new callbacks. The complete list is now: DRIVER_INIT -- per-game init called once at startup, MACHINE_START/SOUND_START/VIDEO_START -- called once at startup and MACHINE_RESET/SOUND_RESET/VIDEO_RESET -- called each reset . Replaced -high_priority with -priority, you can now specify from -15 to 1. The default is -15 as this makes Dell laptop keyboards work. It still won't raise the priority if running with the debugger, but it will lower it. Fixed a subtle bug at the same time as -high_priority was only working when you used rdtsc. . Removed VIDEO_DUAL_MONITOR flag - Compiling . Created new osd_tool file which is used by utility tools to do file access in an OS independent manner - Debugger . Added a new file debugger.h contains abstracted debugging interfaces for both debuggers . Added a new call mame_debug_break() and a new macro DEBUGGER_BREAK to make it easier to hard-code breakpoints into code . Removed all old code that directly whacked debug_key_pressed or called debug_halt_on_next_instruction and replaced them with calls to DEBUGGER_BREAK . Added a number of new properties to the debug views to allow for more flexibility in the way the views are displayed . Added an option to the disassembly window to display encrypted opcode data on the right 0.104u2 - New Working games: Lost Castle In Darkmist - New clones: Burning Force, Double Dynamites, Space Harrier and Super Glob - Removed games: The Double Dynamites (Japan) - M37710 CPU . Fixed LDM behavior when executing outside of bank 0 . Fixed various global bugs when executing outside of bank 0 . Fixed so top 8 bits of X & Y are preserved when in 8-bit index mode . Fixed some disassembly errors . Added save state support . Added M37702 alias for documentation purposes - POKEY sound: Added save state support - YMF271 sound: Added state save support - Samples sound: Removed a ton of hacks that were checking for Machine->sample_rate==0, which is now guaranteed to never be true. - 8255 PPI . Miscellaneous cleanups to the code . Changed some 'int' types to 'offs_t' and 'UINT8' . Added ppi8255_get_portA/B/C() functions . Fixed some formatting problems - ms32.c: Added state save support to the driver - namcofl.c: Changed to M37702 CPU - namconb1.c: Changed to M37702 CPU - namcos11.c: Changed to M37702 CPU - namcos22.c . Necessary changes to System 22 games to use the real C74 BIOS for music/sound . Added system controller register to boot the C74 . Speedup cheat for the CPU board C74 . Promoted Ace Driver from NO_SOUND to IMPERFECT_SOUND - namcos23.c . Hooked up MCU ROM properly in the System 23 games . Hooked up preliminary support for the text layer and palette in the driver - nemesis.c: Removed artificial gamma correction in driver - neogeo.c: Fixed typo bug - Ace Driver / Victory Lap: Added M37702, C352 stereo sound and C74 M37702 sound MCU rom - Burning Force: Fixed rom names - Cyber Commando: Changed to M37702 CPU and added C74 MCU rom - Flashgal: Fixed rom names - Fortress 2 Blue Arcade: Added missing user1 roms - GP500: Changed visible area - Lost Castle In Darkmist: Added color lookup tables proms - Night Driver: Added save state support (still needs save state support in the discrete core to be 100%) - Nitro Ball: Fixed tilemap sizes - Panic Road: Fixed color proms and proms loading - Rave Racer: Changed to M37702 CPU and added C74 MCU rom - Ridge Racer: Changed to M37702 CPU and added C74 MCU rom - Ridge Racer 2: Changed to M37702 CPU - Space Harrier: Added new cpu1 roms to (Rev A, 8751 315-5163A) - Super Eagle Shot: Fixed number of players and input - Time Crisis 2: Changed visible area - Zwackery: Fixed colors bug - Save State: Added new function state_save_register_bitmap to simplify bitmap saving - Dipswitch fixes in Mayjinsen and Renju Kizoku - LISTXML/INFO: Added new function xml_read_string, which allows for parsing of internal strings into XML trees - MAME . Removed scrbitmap and memory_region from the global Machine structure. There is no need for non-core systems to access these directly. . Deprecated the use of multimon.h in the Windows build, which is only necessary for producing Windows 95 and NT 4.0 compatible binaries. Windows 98 is now the minimum version of Windows supported for MAME . Made a few minor tweaks to the Windows sources to support the latest build tools (see http://mamedev.org/tools if your tools are out of date) . Split out ROM management from common.c and moved to a new file romload.c . Cleaned up structs/unions in the debugger and Windows code to match the new core conventions . Made declarations and variables in a number of drivers static and const to reduce global namespace pollution . Fixed a number of multiply-defined global variables . Fixed Windows rendering code bug where -waitvsync had no effect when using -nohws -nod3d -notb - Compiling . Added assert_always macro which asserts even in a release build, and requires a friendly message . Fixed bug x86compile0104u1ora (problems with latest x86 changes) - Debugger: Cleaned up structs/unions in the debugger and Windows code to match the new core conventions 0.104u1 - New Non-Working games: Hang Pilot - New clones: Fortress 2 Blue Arcade, Ikari III, Space Harrier and Thunder Cross - ADSP21xx CPUs: Added save state support to the core - ADSP21062 CPU: Added some more SHARC opcodes - HuC6280 CPU: Added save state support to the core - T11 CPU: Added save state support to the core - Z80 CPU: Separated various Z80 peripherals (CTC, PIO and SIO) into separate modules - bfm_sc2.c: Hooked up 16-segment writes to the driver - darkmist.c: More improvements to the driver - gticlub.c . Improved K001604 tilemap emulation . Very preliminary K001005 & K001006 3D graphics emulation . Added some more SHARC opcodes - Empire Strikes Back: Fixed sound bug - GTI Club: Fixed rom loading - Ikari III: Fixed rom names - Lost Castle In Darkmist: Fixed rom loading - NFL Football: Added Z80 SIO module and hooked it up (still no visible progress) - Silent Scope / 2: Changed visible area - Space Harrier: Fixed rom names - Star Wars: Improved sound synchronization and fixed a sound bug - Thunder Hurricane: Fixed rom loading - Input port: Fixed default gun location for a number of lightgun games - Dipswitch fixes in Lost Castle In Darkmist - Compiling: Fixed new makefiles to be more friendly to non-x86 builds - Debugger: Updated the old debugger recognize ~ prepended registers - MESS: Altered the way MESS interacts with the core config system 0.104 - New games: Phraze Craze and 3x 'Trivia ? Whiz' - New Working games: Lord of Gun - New Non-Working games: Huang Fei Hong and Poizone - New clones: The Pit and Police Trainer - bfm_sc2.c: Added 16-segment drawing code to the machine\vacfdisp module (Vacuum Fluorescence Display) - coinmstr.c: Decrypted the question ROMs in the games - neogeo.c: More cleanups - Centipede: Fixed time delay to register coins - DJ Boy: Updated driver with more protection information - King of Fighters 2003 (JAMMA): Fixed gfx3 rom loading - King of Fighters 2003 (MVS): Fixed cpu1 rom loading in clone (bootleg) - Little Robin: Changed visible area - Lord of Gun: Added Z80, YM3812 and OKI6295 sound. Fixed rom loading and visible area. - Miss World '96 Nude: Added correct cpu1 rom to clone Miss Mister World '96 Nude - NFL Football: Added Z80 CPU4 and cpu3/4 roms - Phoenix . Changed resistor R22 of the discrete sounds (real board). This should fix the remaining complaints with the discrete sound. . The shot & explosion noise sounds still need discrete emulation. - Police Trainer: Added correct user1 rom to clone (Rev 1.1) - Samurai Shodown V: Swapped cpu1 roms in clone (bootleg) - Star Wars/Empire Strikes Back: Fixed NVRAM handling (only affects test mode) - Dipswitch fixes in Lord of Gun and Phraze Craze - Description changes of clone King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg) - MAME: Ensured that all core and Windows files have some indication of copyright on them - Compiling . Fixed tiny.mak for the changes from 0.103u5 . Shuffled a few more files around in mame.mak; rebuild clean once again to ensure correctness - Debugger . Made 8-bit A,B,C,D,E,H and L registers available in the Z80 debugger . Removed all but the default debugger font from the source distribution . Fixed miscomputed registers view size in debugger 0.103u5 - New Working games: Fortress 2 Blue Arcade and Hidden Catch - New clones: Jumbo Ozaki Super Masters Golf, 4x The King of Fighters 2003, Metal Slug 5 Plus, Miss Puzzle, Samurai Shodown V and 4x SvC Chaos - Removed games: Joust (Solid Green label) - Hyperstone CPUs . Removed nested delays . Added better delay branch support . Fixed PC seen by a delay instruction, because a delay instruction should use the delayed PC (thus allowing the execution of software opcodes too). - I386 CPU . Added support for the various x86 8-bit and 16-bit derived registers, as hidden registers in the i386 core . Changed several byte operands in the i386 disassembler to be diassembled as unsigned rather than signed - Discrete sound . Added new DISCRETE_CSVLOG module that lets you log discrete nodes as CSV (comma separated values) data . Modified discrete core to use the clock specified in the MDRV_SOUND_ADD line. If the clock is specified as 0, then the discrete emulation will default to the audio sample rate clock . Tweaked Phoenix Effect 2 sound to be more accurate matching oscilliscope data. Changed the Phoenix discrete clock rate to a fixed rate of 120000 allowing the simulation to be more accurate with less alaising noise at the cost of speed . Fixed the bug in the DISCRETE_NOTE module that produced notes 1 count off. - neogeo.c: Hooked up watchdog for NeoGeo games and removed a number of hacks - Cookie & Bibi: Fixed minor color issue (needs a VBLANK_DURATION above ~2400 or the Joystick on the How to Play screen has wrong colours) - Empire Strikes Back: Fixed background music. Updated IRQ frequency and divider to match the schematics. - Fortress 2 Blue Arcade, Land Breaker, Raccoon World: Fixed E1-32N clock speed: Correct E1-32N clock speed - Joust: Fixed rom names - King of Fighters 2003 (Japan): Removed 271-bios_decrypted.bin rom - KlonDike+: Fixed hanging at the end of level 3 - Mayjinsen/Mayjinsen 2: Fixed number of buttons - Miss Puzzle: Added new gfx2 - Neratte Chu: Fixed inputs - Phoenix . Tweaked Phoenix effect #2 sound to be more accurate matching oscilliscope data . Changed the Phoenix discrete clock rate to a fixed rate of 120000 allowing the simulation to be more accurate with less alaising noise at the cost of speed. - Renju Kizoku: Fixed input - SvC Chaos (JAMMA): Added new BIOS rom - Turbo Force: Undid the turbofrc37b1gre bug fix, since it broke more things that it fixed - Artwork: Rewroted artwork scaling function to compute accurate sum over all contributing pixels. This produces better results when scaling high resolution artwork down to lower resolutions. Kept existing bilinear filter for scaling low resolution art to higher resolutions. - Dipswitch fixes in Fortress 2 Blue Arcade, Hidden Catch, Land Breaker, Mayjinsen, Mayjinsen 2, MTV Rock-N-Roll Trivia, Neratte Chu, Raccoon World and Renju Kizoku - Description changes of Rock'n Tread, Rock'n Tread 2, Rock'n 3, Rock'n 4 and Rock'n MegaSession - MAME . Separated the allocation of graphics data from the decoding. This fixes the crashes that were introduced in u4, and will allow for decoding progress to be reported eventually . Made a clean-up pass over all the makefiles. rules.mak is gone now, replaced by cpu.mak and sound.mak. mame.mak has been reorganized. All the makefiles are now commented and should be easier to follow. . Improved auto_malloc so it uses less memory and doesn't have a hard-coded limit on the maximum number of allocations. Also audited the use of auto_malloc in the code and removed unnecessary checks for NULL (since auto_malloc doesn't return if it fails). . Fixed osd_fopen error reporting to return the correct value if you hit MAX_OPEN_FILES - Debugger: Added support for registers that are not to be displayed in the register list. This is useful for registers like AX on i386, so that AX can be used in expressions but not represented on the register list. Simply precede the register name with '~' to prevent display. 0.103u4 - New games: Alien Arena, Crowns Golf in Hawaii and KlonDike+ - New Working games: 'Cat and Mouse' and Laser Battle/Lazarian - New clones: Cat and Mouse, Galaxia and Space Intruder - New drivers: eolith16.c and galaxia.c - I386/I486/Pentium CPU . Fixed A20 mask implementation . Added A20 mask to debugger translate callback . Implemented Pentium opcode CMPXCHG8B . Fixed XADD opcode . Added support for the 8 and 16 bit variants - Hyperstone CPUs: Removed nested delays. Don't allow software opcodes to be executed in a delay slot. - Discrete sound . Added DISCRETE_WAVELOG - Easy way to log discrete nodes as a .wav file to compare against scope waveforms . Changed DISCRETE_OUTPUT - Added a final gain parameter to get it to 16 bit wav level (the old VOL setting was disabled after the last sound re-write) - Audio streams . Added stream_set_sample_rate() call . Converted the TMS5110, TMS5220, ES5505/6, BSMT2000, AY8910, POKEY, TIA, Sega PCM/Multi-PCM, SN76496, OKIM6295 and YMZ280B sound cores to output at their native sample rates . Allowing the core sound system to perform over/re-sampling to the output rate - segas16b.c: Fixed inputs to match the JAMMA button ordering - Altered Beast: Fixed graphics banking in 8751-based sets - Cat and Mouse: Fixed visible area - The Couples: Fixed rom names - King of Dynast Gear: Fixed some bad gfx when levels start - Lost Castle In Darkmist: Decrypted graphics - Ninja Spirit: Fixed inputs to match the JAMMA button ordering - Panic Road: Decrypted graphics - Top Shooter: Fixed sprites - Xevious, Bosconian, Galaga, Dig Dug, Pole Position and Pacland: Fixed number of credits - Dipswitch fixes in 'Cat and Mouse' and Lazarian - Description changes of Cat and Mouse - CHD (Compressed Hunks of Data): Moved CHD file access routines to fileio.c - MAME . Removed a number of unnecessary video_stop and machine_stop routines . Fixed resource allocation issue with bitmaps in the Windows code and MESS . Added assert macro to mamecore.h - Compiling: Converted a few more exit() calls to osd_die() - Debugger: Changed debug view property code to pass property values as unions rather than void pointers, in order to appease compilers that whine about strict aliasing. 0.103u3 - New games: Dragon World, King of Dynast Gear and Poizone (not enabled) - New Working games: Backfire!, Meijinsen, Skull Fang, Thunder Hoop and X-Files - New clones: The Couples, Demon's World, 2x Samurai Shodown V Special and SvC Chaos - ADSP21xx CPUs: Added timer support to the cores and hooked it up for the DCS games - ARM CPU: Added BCD multiply and fixed interrupt bug - I386 CPU: Added SegBase() and SegLimit() functions to the debugger - H8/3002 CPU: Limited vector reads to 24 bits and added SHLL.W, EXTU.L, SUBS.L #2, and SUBS.L #4 opcodes - Voodoo GFX: Many Voodoo updates to add Voodoo Banshee and Voodoo 3 support - vidhrdw\deco16ic.c . Converted Super Burger Time, China Town, Vapor Trail and Crude Buster to use the DECO tilemap functions . Converted World Cup Volley '95 and Heavy Smash to use the 16-bit DECO tilemap functions - bfm_sc2.c: Cleaned up inputs - deco_mlc.c . Added sprite buffering . Fixed tile banking . Fixed clear colour . Added sprite clipping (used to good effect for pseudo viewport effects in Skull Fang) . Added preliminary raster support . The only thing left for this driver is really raster support for the pitch in Stadium Hero 96 - namcos22.c . Hooked up the real master DSP BIOS (Many games are now working or displaying graphics that were having problems before) . Hooked up the runtime-configurable interrupt handlers . Removed many game-specific hacks . Some improvements and additional documentation of video hardware - neogeo.c . Rewrote video system . Removing distinction between raster and non-raster games . Cleaning up the code significantly . Cleaned the NeoGeo mess from 0.103u2 - Alpine Surfer: Emulated protection and fixed bogus loading of Point ROMs (still has problems) - BackFire!: Changed input from joystick to paddle - Crazy Balloon: Converted game to use the discrete system sound - Hang-On: Fixed stereo sound routine - Last Fighting: Mapped RAM for the stack. All ROMs now loaded. Fixed visible area. - Meijinsen: Fixed 68000 clock speed, visible area and added Z80 and AY8910 sound - NBA Showtime: Fixed ADSP2104 clock speed - Night Slashers: Improved sound balance - Ping Pong Masters '93: Added YM2413 and DAC sound - San Francisco Rush 2049 . Added different harddisks and user1 roms to the clones . Fixed ADSP2181 clock speed . Changed input from joy8way to paddle - Skull Fang: Added sprite clipping (Press F3 after CREDIT 00) - Wild Western: Fixed bonus screen, where the horse would not scroll into view - World Cup Volley '95: Added BCD multiply to ARM coprocessor to fix game - X-Files: Fixed rom loading - Fixed rom names in Air Combat, Ataxx, Cyber Sled, The Simpsons, Suzuka 8 Hours 2, Teenage Mutant Ninja Turtles and X-Men - Dipswitch fixes in 4 Player Bowling Alley, Cart Fury, Clowns, Meijinsen, NBA Showtime, San Francisco Rush 2049, Squash, Thunder Hoop and X-Files - Input port: Cleaned up PC keyboard code - MAME . Added memory_install_* calls that are not specific to specific bus widths . Fixed Leap Year calculates - Debugger . Added CPUINFO_PTR_DEBUG_SETUP_COMMANDS: a callback that is invoked to tell CPU cores to set up commands specific to a CPU core . Separated debugger break key from OSD display (they can now be programmed differently) . Fixed the handling of address masking and display within the debugger . Fixed order of operations in the expression engine (src\debug\express.c) if functions were used . Fixed behavior in the new debugger when using the break so that text doesn't get entered onto the command line . Fixed in the old debugger the display of opcodes for word-addressed CPUs - CHDMAN: Added support for >4GB CHD files for non-Windows systems 0.103u2 - New games: Air Attack, Arm Champs II, Golden Crown, 2x King of Fighters 2003, Mahjong The Mysterious World, Metal Slug 5, Paradice, Pochi and Nyaa, Pokio, Pyramid, 3x Quintoon, 5x Rock'n Tread, 3x Samurai Shodown V, 4x Slots, 2x SNK vs Capcom and Twin Action - New Working games: Hoops '96 and World Cup Volley '95 - New Non-Working games: 3x The Crystal Maze, Last Fighting, 2x The Mating Game, Skill Trek and Turnover - New clones: Alien3, Demon Front, Kof2002 and Magical Crystals - New drivers: backfire.c, bfm_sc2.c, lastfght.c and mpu4.c - MAME . Improved Sync Refresh, Waitvsync and Triplebuffer . Fixed fileio.c buffer overrun . Fixed some Leap Year calculates - ARM CPU . Cleanup core . Modified core to allow World Cup Volley '95 to start . Added BCD opcodes to 156 / ARM co-processor - HuC6280 CPU and sound CPU: Added T-flag emulation and fixed read calls - I486 CPU: Implemented XADD, INVLPG and CMPXCHG instructions and made the opcode table const correct - M37710 CPU: Added another addressing mode for SBCB opcade and fixed MPY to clear the carry flag - ddenlovr.c: Documentation cleanup - deco_mlc.c: Fixed sprite flipping and sound - dec0.c: Added new tilemap draw function and simultaneous row & column scroll - namcona1.c: Games now use the real M37702 BIOS and M37710 CPU and C140 sound - namconb1.c, namcos11.c and namcos22.c: Fixed Endian issues - neogeo.c: Added code to support remaining NeoGeo sets - Air Buster: Various improvements to the driver. This fixes a sprite display bug - Avengers in Galactic Storm: Fixed graphics and sound1 roms order - BackFire! . Split game into a separate driver . Improved graphics . Added dual screen support . Added sound and correct sound decoding . Fixed ARM clock speed, visible area and video aspect ratio - Double Dragon: Patched an invalid jump. This fixes a crash which sometimes occurs at the very end of the game - Fatal Fury 2: Added emulated protection - Hoops '96: Fixed game and YMZ280B clock speed - King of Fighters 2001: Fixed gfx/colours in clone Crouching Tiger Hidden Dragon 2003 - King of Fighters 2002: Added code to update SRAM tiles on the fly to clone King Of Fighters 10th Anniversary - Lovely Cards: Lovely Poker is now a clone of Lovely Cards (merged drivers) - Midnight Resistance: Fixed the waterfalls - Monza GP: Fixed typo in driver - Night Slashers: Added sound and fixed Z80 clock speed - Phoenix: Fixed discrete sound effect #2 - Rage of the Dragons: Fixed visible area - Real Battle Mahjong King: Fixed number of joystick buttons - Rock'n Tread: Added missing sound1 roms - Skull Fang and Stadium Hero 96: Fixed YMZ280B clock speed - Spectrum 2000: Added OKI sample banking - Turbo Force: Added a custom sprites drawing function needed to fix sprites priority issues - Virtua Bowling: Added correct cpu1 rom - World Cup Volley '95: Modified ARM CPU core to allow game to start and added sound - WWF Superstars: Fixed 68000 clock speed, visible area and VSync - Dipswitch fixes in Air Attack, Mania Challenge, Mat Mania, namcona1.c, S.S. Mission and Thunder Dragon - Debugger: Added a 'gtime' command (like the "go" command) 0.103u1 - New games: Mahjong The Dai Chuuka Ken, 2x Power Instinct Legends and Quiz - New Working games: Avengers In Galactic Storm, Heavy Smash, Night Slashers, Shuttle Invader and Thunder Strike - New Non-Working games: Mirax - New clones: Thunder Strike, Hoops, Pasha Pasha Champ Mini Game Festival and Super Star Battle - New drivers: mirax.c - ARM CPU: Fixed software interrupts and several mode change bugs. Added preliminary coprocessor support. - HuC6280 CPU / PC Engine . Fixed cases where sprites could render outside of the buffer . Added VRAM to VRAM DMA . Multiple h6280 fixes . Provided functions to correctly handle VRAM accesses for the entire 128K range . Added some of the I/O buffer bits from the hardware page . Fixed h6280 IRQ ranges to support proper mirroring . Hooked up h6280 IRQs to the PC Engine . Correct sprite-to-sprite rendering priorities . Partially enforce 16 sprite limit - PowerPC CPUs: Added PowerPC MMU code, but enabled only for MESS due to breakage of the Model 3 games - V810 CPU: Fixed out-of-bounds array writes in the core - berzerk.c . Major cleanup/rewrite driver . Merged memory and IO read/write maps . Video ram & magic ram share the same memory . Emulates magic ram shifter/flopper with 9 74LS153's as per the schematics . Emulates magic ram alu with 2 74LS181's hardwired to logic mode as per the schematics . 74LS181 emulation based on the logic diagram from the datasheet, supporting logic mode & arithmetic mode - deco_mlc.c . Cleanup/update driver . Video hardware near perfect for the most part . However no game works properly because of an unemulated math coprocessor - nbmj9195.c: Fixed a weird serious bug, where all dipswitches (included flip screen) are always set to "on" - Avengers In Galactic Storm: Correct gfx roms order and addresses - Backfire!: Fixed ARM clock speed and visible area. Added YMZ280B sound. - Frenzy: Hooked up NVRAM in memory map - Got-cha Mini Game Festival: Changed 68000 and OKI6295 clock speeds and VSync - Grand Tour: Fixed graphics layer priority - Heavy Smash: Fixed ARM clock speed and visible area. Added 2x OKI6295 sound. - Hoops '96: Changed YMZ280B clock speed, visible area and gfx rom loading - Dark Tower, Dangerous Dungeons: Changed visible area - Night Slashers: Added Z80, YM2151 and 2x OKI6295 sound. Fixed gfx rom loading. - Power Instinct 2: Fixed clock speeds of the 2x OKI6295 - Shuttle Invader: Added new rom dumps and changed visible area - Skull Fang: Fixed YMZ280B clock speed, visible area and rom loading - Stadium Hero 96: Fixed YMZ280B clock speed, visible area and rom loading - Star Wars and The Empire Strikes Back: Rewrote the mathbox multiplier from the schematics - Super Model: Fixed OKI frequency - Tattoo Assassins: Some graphics fixes - Thunder Strike: Fixed interrupts, raster updates and visible area - Triple Hunt: Hooked up sound effects - World Cup Volley '95: Fixed ARM clock speed and visible area. Added YMZ280B sound. - Dipswitch fixes in Shuttle Invader and Thunder Strike - Description changes of Got-cha Mini Game Festival - Compiling . Tagged a number of constant arrays in the source as static . Moved several BCD and date-related functions into mamecore.h - Debugger: Added new command traceflush 0.103 - New games: Games V18.2, Garogun Seroyang, Mad Ball, MuHanSeungBu and Super Model - New Working games: Little Casino and Radiant Silvergun - New Non-Working games: Canvas Croquis, Card Line, Critter Crusher, Demon Front, Gekisou, Go 2000, Martial Masters and Shuttle Invader - New clones: Crazy Rally, Crouching Tiger Hidden Dragon 2003 Super Plus, 2x Dynamite Duke, Gouketsuji Ichizoku, 5x King of Fighters 2002, Mini Vegas 4in1, Out Zone, Passing Shot, Puzzle Bang Bang and Super World Court - New drivers: cardline.c, go2000.c and shuttlei.c - ADSP-21xx CPUs: Cleanup the core to support program memory more correctly and support execution from multiple banks - I286 CPU: Changed core to use the same INPUT_LINE_A20 as the I386 - SE3208 CPU: Fixed several endian issues with the core and the Crystal System driver - Midway DCS Audio sound: DCS-3 sound system works now - RF5C400 sound: Many improvements - CD-ROM emulation: Added cdrom_get_track_length() - ddragon.c: Added partial updates and boosted the interleave in the driver - neogeo.c: Cleaned up/reorganized some of the messy NeoGeo code. Separated out bootleg-specific hacks into additional files. - nmg5.c: Added save state support to all games - stv.c . Added idle loop skipping . Added RBG caching . Added RBG "two screens" mode . Fixed several bugs introduced recently with all the other changes . Completely rewrote machine\stvcd.c and .h (now more understandable and works much better) - vegas.c: Fixed ADSP2181 clock speed and number of paddle buttons - Astro Blaster: Fixed missing SP0250 speech - Blandia: Fixed layer 1 colors - Crazy Rally: Fixed Z80 and AY8910 clock speeds and VSync - Gals Hustler: Fixed OKI6295 clock speed - Gauntlet Legends: Fixed number of joystick buttons - Grand Champion: Fixed bug in fog effect - Little Casino and Little Casino 2: Changed visible area - Radiant Silvergun: Added idle loop skipping - Road Burners: DCS-3 sound system works now - Sprint 4: Added sound support (inherited from Ultra Tank) and watchdog - Tenth Degree: Fixed number of players - Sky Raider, Starship 1, Triple Hunt and Wolf Pack: Fixed games to use RAM mirroring for zero page memory - Ultra Tank . Added hardware collision detection (computer is now able to manoeuvre around barriers) . Sprite fixes (invisble tank option works, tank explosion sequence) . Playfield fixes (text colors are different) . Added watchdog and coin lockout . Added sync and color proms . Fixed motor sound (previously this was hooked up to the wrong address) . Misc internal fixes like cpu speed, RAM size etc - WWF Superstars: Fixed interrupt timing and VSync - Dipswitch fixes in Gauntlet Legends, Little Casino, Out Zone, Tenth Degree, Ultra Tank and vegas.c - CHDMAN: Support for 64-bit file sizes on some *nix platforms - Compiling: Replaced a few stray exit() calls with osd_die() - Debugger: Added an atexit handler to ensure trace files are closed in the event of an early exit 0.102u5 - New games: Mosaic, Noah's Ark, Quiz and Top Roller - New Working games: Vs. Hot Smash, Radiant Silvergun, Spectrum 2000 and Squash - New Non-Working games: Ghoul Panic, 3x Knights of Valour 2, Little Robin, Real Battle Mahjong King - New clones: California Speed, Crouching Tiger Hidden Dragon 2003, Gauntlet Dark Legacy, King Of Fighters 10th Anniversary, The King of Fighters Special Edition 2004, King of Gladiator, Lansquenet 2004, 2x San Francisco Rush 2049, Soul Calibur, Tekken Tag Tournament and Tenkomori Shooting - New drivers: f-32.c, littlerb.c and rbmk.c - ADSP2181 CPU: Implemented some more functionality - MIPS3 recompiler: Fixed subtle bug - SPC700 CPU: Fixed SUBW H flag - Discrete sound: Fixed bug in filtering code - SP0250 speech . Streamlined the emulation to avoid timing issues which were preventing Three Stooges from working . Fixed glitches in the speech that were caused by not resetting the filter stages when a speech frame is loaded . Made the SP0250 support the external clock rate . Changed the playback rate to match the real board by making the clock divider a reasonable number - Voodoo GFX: Fixed overflow in 1/W calculation that messed up some textures and added missing color combine mode - aleck64.c: Added simulated version of the N64 PIF boot rom, so the cartridges now boot properly - nbmj8991.c: Fixed display rotation in all games - playch10.c: Hooked up the same NES APU implementation in both MAME and MESS - psikyo.c: Fixed soundlatch and coin port - psikyo4.c: Hooked up PCM banking - suprnova.c: Fixed crashing - taito_f3.c: Fixed sound roms loading (fixes several MAMETesters bugs) - vsnes.c and playch10.c: Fixed memory maps and NESPSGs read/writes - Alpine Racer: Added correct cpu1 rom to clone (Rev. AR2 Ver.C) - Chack'n Pop: Fixed timing between CPU and MCU. This fixes problems in stages with water and coffee break. - Cuore Uno and Elephant Family: Replaced M65SC02 CPU with M65C02 and fixed videoram, colorram and CPU clock speed - Dogyuun: Added correct cpu1 rom - Dragon Spirit: Fixed resets when getting the "S" item - Eleven Beat and Magical Tetris Challenge: Fixed rom loading - Gauntlet Dark Legacy: Added missing Voodoo color combine mode - Grand Champion . Fixed tunnel headlights . Correct rain effect and colors . Added speech . Improved collision detection (removed false collision when lightning) . Improved fog effect . Added skeleton code for motor noise . Fixed graphic glitch in bottom row . Correct CPU speed for CPU board / Game board - Ground Effects: Fixed acceleration port - Guerrilla War: Added decoder and encoder proms - Honey Dolls: Added YM3812 sound - Vs. Hot Smash: Fixed MCU emulation and dipswitches - Mahjong Kyou Jidai: Added ADPCM custom sound, this fixes the missing sound - Mike Tyson's Punch-Out!!: Fixed background gfx - Radiant Silvergun: Added missing functionality to the ST-V driver needed to get the game working - Road Burners: Implemented some more functionality of the ADSP-2181 needed for game - Spectrum 2000: Added correct gfx roms - Squash: Decrypted game - Tenth Degree: Fixed subtle bug in the MIPS3 recompiler that prevented game from working - The Three Stooges: Added SP0250 speech (also to M.A.C.H. 3, Screw Loose, Us vs. Them, Video Vince and Wiz Warz) - Vapor Trail: Added prom - Vulcan Venture: Fixed sprite drawing - Yamato: Fixed rom loading and palettesize - Zen Nippon Pro: Fixed speedup - Dipswitch fixes in The Combatribes, Vs. Hot Smash, War: The Final Assault and X Multiply - Debugger . Changed activecpu_dasm() and activecpu_dasm_new() so that they "function" even if the getinfo handler does not specify CPUINFO_PTR_DISASSEMBLE nor CPUINFO_PTR_DISASSEMBLE_NEW. . Added new debugger command 'map', which tells logical -> physical mappings as well as what read/write handlers are connected to an address . Added 'mapd' and 'mapi' for performing the same operation on data and I/O space as 'map' . Fixed instruction alignment in the old debugger and added support for 64-bit qword display . Moved M6809, HD6309 and Z80 disassemblers to the new interface and did some cleanups 0.102u4 - New games: 2x Flame Gunner, Paca Paca Passion 2 and Paca Paca Passion Special - New Non-Working games: Emergency Call Ambulance - New clones: Arabian Fight, Columns, Mace: The Dark Age, Multi Champ Deluxe, Time Pilot '84 and WWF Superstars - Support for Voodoo 2 GFX: Gauntlet Legends works again - Voodoo GFX . Fixed bug that trashed fbzMode when the fogMode was changed . Changed float-to-int conversion to be done manually - N2A03 CPU: Fixed one invalid opcode - PSX CPU: Fixed branch target address disassembly in the disassembler - SH-2 CPU: Introduced cpu_readop16() for opcode fetching - YMZ280B sound: Added external ram read and write handlers and data read port - playch10.c and vsnes.c: Fixed some logical errors in sprite handling and palette reads and DMA timing in the NES drivers - stv.c . Speedup most of the 2D games . STV: Added idle skip to various games . STV: Ooptimized master/slave sh2 syncing . VDP1: Fixed sprite transparency for RGB sprites . VDP2: Added linescroll . VDP2: Added 16x16 15bit tiles (fixes missing gfx in znpwfv) . VDP2: Optimized tilemap scrolling, bitmaps and framebuffer drawing . VDP2: Fixed page and map calculation . DSP: Fixed some bugs making vfremix run up to the end of second match - taitosj.c: Fixed sprite-tilemap collision detection when the screen is flipped - Arabian Fight: Fixed coin input - Chack'n Pop: Fixed bug that was introduced in the recent memory system changes - Jolly Card: Fixed romset names - Mace: The Dark Age: The new version has a good dumped harddisk - Pop Bingo, R-Shark and Super-X: Fixed YM2151 frequency - Tang Tang: Fixed sprite priorities and added correct gfx2 roms - Virtua Fighter Remix: Fixed some bugs making game run up to the end of second match - Zen Nippon Pro-Wrestling: Fixed missing gfx - MAME: Cleaned up and standardized usage of M_PI constants (3.1415) in the code 0.102u3 - New games: Magic Sticks - New Working games: Super Puzzle Fighter II Turbo (Asia) - New Non-Working games: Fortress 2 Blue Arcade - New clones: Dirt Devils, Funky Jet, Kid Niki - Radical Ninja, Marvel Vs. Capcom: Clash of Super Heroes, Progressive Music Trivia, Power Balls, Star Wars Trilogy, Super Street Fighter II: The Tournament Battle and X-Men Vs. Street Fighter - H8/3002 CPU: Added bXXX.b #imm, (@)Rn and subtract with carry instructions - G65C816 CPU: Fixed the ADC and SBC opcodes (for BCD math) - N2A03 CPU: Implemented some undocumented opcodes - SPC700 CPU . Fixed carry usage in ADC/SBC . Fixed overflow flag in ADDW/SUBW . BRK now modifies the status register properly . Fixed DAA/DAS edge case - Nintendo 2C03B PPU: Fixed $4014 sprite DMA - Voodoo GFX . Added support for CLUT/gamma ramps; enables fade in/out effects . Changed stall callback to notify both start and end of stalling . Decreased bilinear resolution to 4 bits for Voodoo 1 . Fixed statistics and added some new ones . Now properly masking off unsupported bits for earlier chipsets . Fixed NOP command so it doesn't always reset statistics . Fixed bug that caused the refresh rate to never be updated . Fixed 16-bit writes to the frame buffer . Fixed crashing bug after resetting the chip . Added support for Voodoo 2's new fog, colorpath, and chromaRange modes . Added correct wrapping for ARGB, W and Z values . Fixed bug where depth was written to the Z buffer without bias . Now aggregates shorter commands to reduce the number of context switches - namcos22.c . Depth cueing support (fog) - some open issues remain . Depth bias improvements . Z-buffer has been replaced with back-to-front rendering . Sprite and text translucency . Direct access to rendering device (used by video tests) . Preliminary support for spotlight feature . Support for sprite bottom-alignment . Support for sprite/polygon priority over text . Fixed rom loading . Fixed input in Air Combat 22 - nss.c . Improved memory mapping . Improved raster timing . Added HIRQ support and better VIRQ support . Improved joypad support . DSP-1 support (including all subtypes) . Added DSP add-on chip rom to the BIOS set . Counter latching support . Fixed OAM read/write . Fixed stereo sound . Fixed G65C816 clock speed . Added missing user3 rom (1MB) to F-Zero, Super Mario World and Super Tennis - seattle.c: Changed visible area and fixed dipswitches - Aquarium: Fixed tilemaps/sprites priority, added sprites wrap around y and tiles flipx and flipy - BC Story: Fixed YM2151 volume - Billiard Academy Real Break: Added correct sound1 rom - Final Tetris: Fixed OKIM6295 volume - Funky Jet and Sotsugyo Shousho: Fixed clock speeds and VSync - Metal Saver: Fixed YM2151 volume - Star Wars Trilogy: Added missing cpu3 and sound2 roms - Tao Taido: Fixed inputs - Tempest: Fixed cocktail mode and input - Description changes of Koi Koi Shimasho 2 - Super Real Hanafuda and Lovely Pop Mahjong JangJang Shimasho / 2 - MAME: Updated driver.c with more consistent and updated info - MESS . Added a MESS specific ROM entry type and changed ROM entry processing code to ignore any unrecognized ROM entry types . Merged in recent changes to the PC share code from MESS - Compiling: Fixed a couple of minor compatibility exposed by VC2005 and removed several obsolete files 0.102u2 - New games: Lovely Pop Mahjong Jan Jan Shimasyo 2 - New Non-Working games: Fighting Vipers 2, Spectrum 2000, Spikeout, Spikeout Final Edition and Tang Tang - New clones: Kageki, Trivia Master, Splatter House, Strider 2, Tech Romancer, Touch & Go and Wonder Boy - 68000 CPU . Tweaked the disassembler to display F-line traps in a more obvious fashion . Changed to decorate jump targets for relative branches - I386 CPU: Fixed 16-bit disassembly so it stays within the current segment - Voodoo GFX . Rewrote the emulation code to be more accurate to the original. Voodoo 2 emulation is completely broken . Support for multiple simultaneous boards (Silent Scope) . Pixel-pipelined framebuffer accesses now work . Alpha buffer operations now supported . Triple buffering now supported . Proper memory allocation and handling based on configuration . Proper FIFO handling, including low/high water marks and stalling . Approximate timing calculations based on quoted fill rate specs . Detail textures implemented . All math is done in fixed point . Proper edges calculated for polygons (stars appear in Gradius 4 now) . Much easier to add specific rasterizers now - model3.c: Fixed rom names - segas32.c: Cleanup driver. Air Rescue and F1 Exhaust Note now share common multi-PCB faking logic. - Billiard Academy Real Break: Added new gfx and sound roms - Dragon Gun: Fixed rom names - F1 Exhaust Note: Fixed missing music in the attract mode - Gradius 4: Stars appears in the game now (see Voodoo emulation rewrote) - NATO Defense, Shark Attack and Thief: Properly hooked up tape samples and sample pausing is available - Ozma Wars: Fixed 2 Player game in clone Space Phantoms - Trivia Master: Fixed colors and questions roms loading - Turbo Sub: Correct some hardware functions in accordance with the schematics and added some more notes - MAME: Fixed several uninitialized variables, incorrect string compares and inconsistent variable declarations found by the VC compiler 0.102u1 - New games: Dark Horse and Honey Dolls - New Working games: Virtua Bowling (Japan) - New Non-Working games: Fred Flintstones' Memory Match - New clones: Billiard Academy Real Break, Dragon World, Knight Boy, Puzzle & Action: Ichidant-R, Red Clash, Stack Columns and Virtua Bowling (World) - Support for RF5C400 sound in Gradius 4, NBA Play By Play, Silent Scope and Silent Scope 2 - I386 CPU: Changed some i386 disassembly parameters to be unsigned - TMS32031 CPU: Added new inline math functions to MAME core and update the TMS32031 core to make use of it - Voodoo GFX: Fixed some minor problems with the LOD calculations - kaneko16.c . Fixed tilemap priorities . Fixed some sprites priorities . Added some missing coin counters . Added right palette filling for games using sprite type 1 . Swapped berlwall and berlwalt sets as per SebV notes in the source code - Cruis'n World: Redumped bad rom in clone (rev L1.3) - Explosive Breaker: Fixed video emulation - KiKi KaiKai: Replaced the 68705 MCU from the bootleg Knight Boy with simulation - Puzzle & Action: Tant-R: Fixed rom names in clone (Korea) - Wheels & Fire: Improved game, partial understanding of the blitter - Dipswitch fixes in Dragon World, KiKi KaiKai, Virtua Bowling and Wheels & Fire - Description changes of Long Hu Bang II and Puzzle & Action: Tant-R - MAME . Added new inline math functions to mamecore.h, along with mechanisms for the OSD layer to override them with platform-specific variants . Changed the Windows blitters to use an array allocated by osd_alloc_executable() to prevent potential access violations on systems with no-execute support . Fixed compilation issue for MSVC when using the winalloc code . Fixed output of mame.ini options that have spaces in them 0.102 - New games: D-Day (Jaleco - set 2) - New Working games: D-Day (Jaleco), Gradius 4, Jockey Grand Prix (NeoGeo), NBA Play By Play, Pang Pang Car and See See Find Out - New Non-Working games: Time Attacker - New clones: Avengers In Galactic Storm, DownTown, Metamorphic Force, Martial Champion, NFL Blitz, 2x Rohga Armor Force, Super Monaco GP, Table Tennis Champions, Touch & Go, Tricky Doc, Vandyke and Varth - New memory system: Fixed a few more remaining issues from the 0.101u1 update - ADSP21062 CPU (SHARC): Many fixes to the core and Konami PPC drivers - M6502 CPU: Fixed initialization so that all internal states are reset properly - MIPS3 CPUs . Fixed handling of the FR bit in the Status register on MIPS3, this fixes CarnEvil and probably a few other games . Fixed bug where TLB exceptions were not filling in the Context and EntryHi registers correctly - PSX CPU: Fixed bug in PSX GTE flag settings - 53C810 PCI to SCSI I/O Processor: Added support for SCRIPTS programs - 8253 PIT: Fixed save/restore, removed shift register, added 8254 PIT from PC emulation and added state saving - Voodoo GFX: Implemented pixel-accurate dithering - esd16.c: Added tilemap0 color banking to the video driver - hornet.c: Added second ADSP21062 CPU to Silent Scope and Silent Scope 2 - nmg5.c: Added some missing sounds to Search Eye and Wonder Stick - taitosj.c: Fixed status flag from MCU - Asteroids: Updated the discrete thump sound to use component values instead of derived equations - Bomber Man World: Fixed game freezes - Dirt Fox: Fixed steering - Front Line: Fixes last digit of the score - Macross Plus: Added correct cpu1 rom - Mouja: Fixed player and opponents voices and rom loading - Naname de Magic!: Fixed some bad tiles - Passing Shot: Fixed inputs in clone (Japan) - The Return of Lady Frog: Fixed rom loading - Starblade: Fixed missing 3D graphics - T.N.K. III: Fixed music tempo - Top Gunner: Added 8254 PIT emulation with state saving and updated the vector hardware - Dipswitch fixes in Gradius 4, NBA Play By Play, Silent Scope, Silent Scope 2 - Description changes of Pang Pang Car and Table Tennis Champions - MAME . Removed ROMREGION_SOUNDONLY (since -nosound no longer disables sound CPUs or sound cores). . Marked most gfx_layout and gfx_decode structures in the code as const - Compiling . Changed makefile so that debug objects are not compiled on non-debug builds . Renamed my_stricmp to mame_stricmp, converted all uses of stricmp in the code to call mame_stricmp 0.101u5 - New games: Wonder Stick - New Working games: SegaSonic The Hedgehog - New Non-Working games: Daytona USA 2 Power Edition and Ping Pong Car - New clones: Atomic Robo-kid and Raimais - New memory system: Fixed more games broken by the u1 changes - M6805 CPU: Fixed core so that CLRA does not modify the carry flag - C352 sound: Several fixes and improvements - Namco NA sound: Implemented several missing features - Voodoo GFX . Added very experimental rasterizer generator (enable them in the makefile) . Made some of the hack optimizations runtime enableable in the emulator . Added a frameskipper (use Ctrl+1-6 and Ctrl+F/H/Q to run at full/half/quarter resolution) - model1.c . Added a FIFO for the sound commands so they no longer get lost at startup . Fixed 68000 clock speed verified on real hardware - model3.c . Update the video hardware . Added transparency support (polygons and textures) . Nearly perfect rendering order (something we never got right in Supermodel) . Added parallel lighting . Added texture coordinate mirroring - st0016.c: Fixed sprites wrap around in the video driver (needed in Neratte Chu) - Daytona USA: Fixed messed up sound - Super Visual Football: Fixed clone 'The J.League 1994' protection workarounds so they work for 2 player games as well - The Return of Lady Frog: Fixed rom loading - Virtua Fighter: Fixed missing sound - Dipswitch fixes in Big Twin, Excelsior, Hot Mind and World Beach Volley - MAME . Rewrote most of the validity checks so the full set now completes in well under 1 second. . Added region size checking versus memory maps to the validity checks . Moved all validity checks to a new file validity.c . Changed the AM_REGION() macro to store region/offset information to simplify some of the region valdation code . Marked several large arrays properly as const (see machine\fd1089.c) 0.101u4 - New Non-Working games: Dwarfs Den, Trivia Quest and Wheels & Fire - New Working games: The J.League 1994 (Super Visual Football clone) - New clones: Glass, Kosmo Killer, Match It II and Splash! - New memory system . Fixed more games broken by the u1 changes . MAMETesters bugs fixed: drgnmst067gre1 flstory0101u3red gottlieb0101u2yel lelandsound0101u3yel memoryupdate0101u1red missile0101u3red kamikcab101u2yel segac0101u3red spiders0101u3yel - HuC6280 CPU: Updated core to use the new address translation system - KONAMI CPU: Updated the disassembler to new format - MIPS3 CPUs . Added missing SC/LL opcodes to the MIPS3 interpreter . Updated MIPS disassembler to handle the new format - PSX CPU: Updated core to new save state and disassembler interfaces - R3000 CPU: Updated the disassembler to new format and interface - MK48T08 (timekeeper chip): Removed code that reset the timer when reading/writing - tickee.c: Removed user1 dispose flags - Dragon Master: Added coin counter/lockout and rowscroll banking to the driver - Fairyland Story: Improved video rendering and fixed graphics corruption on the final level - Polygonet Commanders: Fixed sound program loading - Psycho-Nics Oscar: Added priority prom (not used) - Save State: Added new macro state_save_register_item_pointer() for dynamically allocated arrays - LISTXML/INFO: Added MAME build information to the output and updated xml2info to handle the save state tag 0.101u3 - New clones: Batsugun, Glass, Golden Tee Royal Edition Tournament and Street Fighter EX 2 - New memory system . Removed "RAMROM" support from the memory subsystem altogether . Updated all drivers to simply limit their decryption to areas that the CPU decrypted . Fixed a number of games that were broken with the u1 update - Encrypted CPUs . Changed the way encrypted CPU memory is allocated and managed . The memory system now tracks decrypted opcodes per bank - i86 and i286 cores: Hook into the new i386 disassembler - I386 CPU: Fixed FPU decoding and a few other minor issues in the disassembler - M6502 CPU: Updated 6502 disassemblers family to the new disassembler style - M4510 CPU: Added internal memory maps and updated core to use address translation hooks - M6510 CPU: Added internal memory maps - MIPS3 CPUs . Added MMU support to the MIPS3 dynamic recompiler . Re-enabled it by default . Added direct fast RAM access to the dynamic recompiler, as well as optional hotspot optimizations . Most games should show a net speedup over the pre-MMU compiler - PowerPC CPUs: Updated core to use new disassembler style - gaelco.c, gaelco2.c and splash.c: Fixed sprite and tilemap drawing (vidhrdw\gaelco.c) - hng64.c: Correct R4600 (big) CPU1 clock speeds and added Z80 CPU3. Fixed rom loading and removed user2 dispose flags. - Battle Zone: Added preliminary save state support - Big Karnak: Fixed the priority problems - Bubble Bobble: Fixed cpu1 rom length - Captain Silver: Fixed rom names - Egg Hunt: Added sprites, tile and sound banking. Fixed gfx rom loading. - Lucky & Wild: Added road colors prom - Missile Command: Added preliminary save state support - Monsters World: Added dispose flag to the user1 rom - Scud Race: Added sound1 rom to clone Scud Race Plus - Touch & Go: Added correct gfx1 rom - Woodpecker: Added player 1/2 Button1 - Dipswitch fixes in Egg Hunt, Pop's Pop's and Woodpecker - Fixed rom loading in Calorie Kun vs Moguranian (bootleg), Cook Race, Hard Head (bootleg), Pang (bootleg), Shinobi (set 4, System 16B, unprotected) and World Tennis - LISTXML/INFO: Fixed DTD in the -listxml output - Debugger . Reduced how often the debugger display is refreshed if stepping and steps_until_stop is a high number . Added rudimentary hotspot detection to the debugger. Type "help hotspot" for details on how it works. . Cleaned up the way the debugger hooks into the memory subsystem . Fixed activecpu_dasm() and cpunum_dasm() to detect the presence of an updated disassembler and wraps the calls. - MESS . Merged in recent updates from MESS PC emulation code . Fixed MESS UI code that prevented P and Esc from being intercepted properly - MAME: Added check and failure for 0-sized mallocs. 0.101u2 - New Non-Working games: Alpine Surfer, Area 51: Site 4 and Psychic Force 2012 - New clones: Gouketsuji Ichizoku (Power Instinct clone) - New drivers: mediagx.c (Atari MediaGX) and taitowlf.c (Taito Wolf System) - New memory system . Fixed a number of games that were broken due to the recent memory system changes. There are still more problems to fix; continue reporting them. - I386 CPU: Cleaned up disassembler to produce Intel-standard output - I386 (Pentium): Fixed time stamp counter in the Pentium core - MIPS3 CPUs . Added MMU support to the non-drc MIPS3 emulator . Converted hng64.c, kinst.c, seattle.c and vegas.c drivers to a proper physical memory layout . Disabled the drc MIPS3 core until MMU support is added there as well - S2650 CPU: Added save state support - T11 CPU: Got rid of gross banking hack in the T11 core and updated the atarisy2.c driver - Z80 CPU: Fixed behavior on cold versus warm reset (registers) - cojag.c: Removed user1 dispose flags in all games - hng64.c: Removed gfx3 dispose flags in all games - Captain Silver: Fixed i8751 coin control - KiKi KaiKai: Removed 3rd Z80 sub CPU - Last Mission: Fixed i8751 coin control - Lucky Today: Added color prom and 'Bill 1 (10 credits)' input - Magical Crystals: Fixed sprites effect - Opa Opa: Changed user1 to cpu1 roms - MAME . Imported a number of memory handler conversion helpers from MESS, placed them in memconv.h . Added support for logical mapping to the CPU interfaces and debugger. CPUs that have an MMU now need to support several new interface bits, including a logical address mask and page size for each address space, as well as a new translate function. - Debugger: There is also a new disassembler interface that should be used going forward, which will make it much simpler to keep the disassemblers standalone and not dependent on MAME functions for opcode accesses. Converted the i386 core to use the new interfaces. 0.101u1 - New Working games: Chewing Gum - New clones: Get Bass, Puzz Loop and Scud Race Plus - M6809 CPU: Fixed missing save state registrations - M37710 CPU: Some improvements (TYB opcode) - C352 sound: Many improvements - HC55516 sound: Added save state support - Namco NA sound: Many improvements - Audio streams: Added save state information so that dynamic volume changes get properly restored - 53C810 PCI to SCSI I/O Processor: Integrated into the SCSI framework - cps1.c: Correct frequencies based on measurements from a real PCB - mcr3.c: Added save state support - mcr68.c: Added save state support. Removed 2nd sound channel in several games - midtunit.c and midyunit.c: Removed 2nd sound channel in several games - model3.c: Improved MPC105/6 and 53C810 interface - suprnova.c: Added Korea BIOS rom - williams.c: Added save state support - MAME . Significant change to the memory system. RAM areas are now no longer allocated out of the memory_region for a given CPU. This means that drivers which assume that RAM is located at some offset to the base of the memory region will be broken. . It is likely that a number of games are broken. Please report these games to http://www.mametesters.org - Save State . Deferred state loading until all anonymous timers have cleared . Changed timer_alloc_ptr-style timers. This makes these timers more easily supported in save states. - B.C. Story: Balanced the sound - Berzerk and Frenzy: Added missing voice roms - Boogie Wings: Balanced the sound - Chewing Gum: Added correct cpu1 rom - Final Tetris: Balanced the sound - Gals Panic: Fixed gfx effect on the title screen - Iga Ninjyutsuden: Added priority prom - Joust 2: Improved sound rom loading and fixed numbers of sound channels - Metal Saver: Balanced the sound - Mortal Kombat: Fixed sound rom loading - Narc: Fixed cpu2/3 rom loading - Q*bert: Fixed knocker sample connection - Terminator 2: Fixed sound rom loading - Total Carnage: Fixed sound rom loading - Description changes of Zip & Zap 0.101 - TMS5110 sound: Added save state support - 8255 PPI: Added save state support - 7474 TTL: Added save state support - pacman.c, jrpacman.c and pengo.c . Wired up save state support for all the games in the drivers . Marked all games as GAME_SUPPORTS_SAVE - galaxian.c driver and all the associated drivers . Added save state support . Marked all games in galaxian.c, scramble.c, scobra.c, frogger.c and amidar.c as GAME_SUPPORTS_SAVE - system24.c: Fixed rom names - Bonanza Bros: Added new disk to clone (Japan) - Crack Down: Added new to clone (Japan) - Rough Racer: Added new disk image - Scramble Spirits: Added new disk image to clone (Japan, Floppy) - Save State . Changed the timing of save state bank registration so that dynamically installed banks will work properly . Added new generic macros to state.h to make it simpler to do save states . Use state_save_register_global(var) to register a driver-related global variable . Use state_save_register_item(module, instance, var) to register other variables with specific module and instance names. Converted the MCR and Cinematronics vector saves over to this. . Result: save states for games will be incompatible with prior versions of MAME. - MAME: Added validity check to ensure driver names are 8 characters or less 0.100u4 - New games: Alpine Racer 2 and 2x Magic's 10 - New Working games: Dark Edge and Metal Saver - New Non-Working games: Magic's 10 2 - New clones: Bonanza Bros, The Ninja Kids and Scramble Spirits - G65C816 CPU . Fixed CPU to set the data bank register to the destination on an MVN/MVP . Some minor tweeks so the debugger works properly when the 65816 is executing out of a read handler - I386 CPU . Added i486, Pentium and Cyrix MediaGX CPUs . Replaced the opcode tables with a dynamically built one . Rewrote the cycle counting to support different CPUs . Added page translation . Tons of bugfixes . Updated the SPI driver to work with these changes - M37710 CPU: Fixed CPU to set the data bank register to the destination on an MVN/MVP - M6800 CPU: Added missing registers to save state support - SPC700 CPU: Fixed operand order for SBC to memory - Z80 CTC: Added save state support - TMS5220 sound: Added save state support - 6821 PIA: Cleaned up PIA initialization and save state registration - TC0100SCN: Fixed flipscreen - cinemat.c: Added save state support to the sound hardware (sndhrdw\cinemat.c) - gstriker.c: Added some basic zooming support to the driver - nss.c . SNESHW: Implemented unknown DMA & HDMA modes . SNESHW: Fixed SRAM sizing (used as protection in some games) . SNESHW: Boosted interleave . Fixed scroll registers to work like real hardware . Fixed timing of OAM address reset and range/time over reset to better match real hardware . Fixed missing "break" for HDMA mode 5 . Fixed behavior of OLDJOYx registers when auto-read is enabled . Changes improves NCAA Basketball . Changed BIOS SPC700 cpu2 rom to user5 . Changed visible area in all games - taito_f2.c . Cleaned up driver . Converted to port_include and port_modify . Fixed a few rom names and standardized names . Changed the sound CPU to 240000/6 and the YM2610 to 240000/3 - Ace Attacker: Added correct cpu1 rom - Acrobat Mission: Added Button 3 used for secret code input - The Combatribes: Merged MACHINE_DRIVER (ctribe) with (ddragon3) - Fantasy Zone 2: Fixed rom names - Grand Striker and V Goal Soccer: Changed visible area - Jolly Card: Cleaned up merging of rom sets - Liquid Kids: Fixed flipscreen in TC0100, which improves the game - QB-3: Fixed ram banking when used with save states - Scramble: Added RC Filter to Scramble and Scramble (Stern) - V-Liner: Fixed inputs - Dipswitch fixes in Asteroids, Egg Hunt, Metal Saver and Zip & Zip - LISTXML/INFO: Improved accuracy of joystick types reported - MAME . Converted a few more drivers over to using the new memory_configure_bank calls . Removed the GAMEX and GAMEBX macros. The flags parameter has been moved into the GAME and GAMEB macros . Added new option -autosave which automatically loads a game at startup and saves it at exit time for any game which is explicitly marked with GAME_SUPPORTS_SAVE. For other games, this option has no effect. . Added "Uptime" to the bookkeeping info displayed in the UI . Changed ui_popup to display longer by default for longer messages . Added new driver flag: GAME_SUPPORTS_SAVE, to indicate drivers which have save state support - Debugger: Changed break/watchpoints in the new debugger to display in hex - MESS: Updated usrintrf.c to work better with MESS 0.100u3 - New games: Egg Hunt, Laser Battle, Pop's Pop's, Power Balls, Water Balls and Zip & Zip - New Non-Working games: Cat'N Mouse, Metal Saver and NFL Football - New clones: Cat'N Mouse, Escape Kids, Gigandes and Lazarian - Removed games: Eagle Shot Golf (alt) - SPC700 CPU: Fixed ADC, SBC, ADDW, SUBW, MUL, DIV and CLRV opcodes - megaplay.c, megatech.c, puckpkmn.c and segac2.c . More Genesis-based games cleanup . Fixed crashes introduced in last version . Centralized interrupt generation for all Genesis-based games . Implemented protection correctly for Puyo Puyo 2 . Fixed Sega System C/C2 cpu and sound clock speeds . Correct palettesizes - nss.c . Fixed several APU hardware/timer issues . Added accurate sound DSP emulation from the latest OpenSPC . Fixed some timing issues that prevented ActRaiser from syncing up . Added new SPC700 cpu2 BIOS rom . Correct SPC700 clock speed - Blomby Car: Fixed tilemap x/y scroll - Discs of Tron: Removed cpu3 roms. Only clone Discs of Tron (Environmental) used them - Galaga: Added missing vertical movement to clone Gatsbee - Gigandes: Fixed rom names - Puckman Pockimon: Correct palettesize - Top Gunner . Improved speed by pre-decoding the vector processor microcode . Added a shift register to produce the LCD-like look of the score and other numbers - Top Shooter: Removed second SN76496 and correct palettesize - MAME: Speedup validity checks and removed -skip_validitychecks option 0.100u2 - New games: Columns III (Mega Play) - New Working games: Cool Minigame Collection, Golden Axe - The Duel, Lup Lup Puzzle (clone) and Twin Squash - New Non-Working games: NBA Play By Play and Top Shooter - New clones: Final Crash, Golden Tee Supreme Edition Tournament, Jolly Card, Moon Light and Royal Card - ADSP21062 CPU: Fixed sharc_debug_readop - SPC700 CPU . Fixed disassembly of 2 instructions . Fixed behavior of the APU port clear flag to not clobber the output ports Nintendo Super System games can now boot and run without the "APU skipper" . Fixed SPC700 CMP instruction flags - exidy440.c: Fixed "Out of Timers" crash in the games when paused - funworld.c: Cleaned up driver flags and parent/child relationships - m72.c: Changed video updating to use partial updates - namcofl.c: Implemented raster split interrupt - segac2.c . Separated the driver into genesis.c, megaplay.c, megatech.c, puckpkmn.c and segac2.c . Fixed column scroll with a line scroll of 8 . Cleaned up input ports . Filled out memory map according to cgfm's documentation - stv.c . Fixed VDP1 framebuffer and scaled sprite drawing . Fixed VDP2 vram - Cool Minigame Collection: Added missing flash gfx roms - The Electric Yo-Yo: Bumped interleave to avoid attract mode hang - Final Lap R: Implemented raster split interrupt, making Final Lap R work fully - Golden Tee 3D Golf: Added correct gfx1 roms to clone (v2.11) - Lode Runner: Fixed background graphics (big door after winning in level 3). - Lode Runner 2/3: Changed visible area - Oriental Legend: Removed 'Region' dipswitch in clone (ver. 105, Korean Board) - Pepper II: Fixed "Out of Timers" crash when paused - Print Club: Fixed protection and hooked up protection for clones v.2, 4 and 5 - Prop Cycle: Replaced old input hacks with proper analog control - Ribbit!: Cleaned up protection implementation - Solar Quest: Fixed flipped overlay - Stagger I: Improved dipswitches in clone Red Hawk (bootleg) - Super Lup Lup Puzzle: Added missing gfx1 roms to clone (version 2.9 / 990108) - Taisen Mahjong FinalRomance 4: Fixed sound gain - Twin Squash: Added EPM5032 protection - World Class Bowling: Replaced cpu2 and sound1/2 roms with the ones from World Class Bowling Deluxe - MAME . Fixed bug that caused VIDEO_EOF routines to be called while paused. This led to weird graphics and out of timers messages in some games. . Fixed error message when auditing optional files - Debugger: Added an OSD-private void * to debug_views and made view sizing more dynamic 0.100u1 - New Working games: Cookie & Bibi 3, Dragon Ball Z V.R.V.S., Final Lap R, Quiz Syukudai wo Wasuremashita, Rough Racer and Speed Racer - New Non-Working games: Quizmaster, Super Nudger II, Thunder Hurricane and Trail Blazer - New clones: Crack Down - namcos22.c . Fixed reversed stereo channels for Super System 22 . Added coinage for all (non-Super) System 22 games . Fixed analog controls for Cyber Cycles and Ace Driver . MCU now reads the controls for Air Combat 22 . Added real MCU-managed controls and coinage for Time Crisis . Fixed RAM test failure in Ridge Racer 2, but it still won't start up - namconb1.c: Fixed incorrect voices in the games - namcofl.c . Complete MCU simulation including controls and coinage . Hooked up sprite banking . Added sound/music . Fixed palette bank selection . Fixed road in both games (Final Lap R and Speed Racer) . Fixes rotation sign - G-LOC Air Battle: Fixed rom names - Truco Clemente: Fixed colors and visible area - Description changes of Cookie & Bibi 3 0.100 - New Non-Working games: Rebus - New clones: G-LOC R360 - Audio streams: Fixed crash in some games when using a low sample rate or -nosound - cntsteer.c: Improved gfx layouts - namcos11.c . Fully shared the sound part of the MCU RAM for System 11. This allows games to read back the song names and fixes the sound test menu in Tekken and Tekken 2. - namcos22.c - Fixed the analog controls for Ridge Racer and Rave Racer - Enabled full sound and music in all games - tumblep.c . Splitted driver into tumblep.c and tumbleb.c . tumblep.c runs the original Tumble Pop sets and use now using deco16ic.c for the gfx . tumbleb.c runs the bootlegs and games which use hardware which works in a similar way to tumble pop (semicom titles etc.) - BeatHead: Fixed video hardware crashes - Cross Pang . Using now the sprite draw copied from tumbleb.c . The 'Alpha Blend' bit has been removed and replaced with a flicker sprite bit . Changed some default settings - Hit Me: Fixed graphics decode - Imago: Fixed palette setup crash - The Legend of Kage: Fixed crashes in the bootlegs (accessing invalid CPU) - Monsters World: Kludged around glitches (doesn't glitch with the clock speed set to 4x normal) - Rock Climber: Improved palettesize - Speed Attack!: Fixed palette out of range - Dipswitch fixes in Indian Battle, Cross Pang and D-Day - Description changes of clone Gouketsuji Ichizoku 2 0.99u10 - New Working games: Monsters World - New clones: Chuugokuryuu II, Power Instinct 2 and Surprise Attack - M37710 CPU: Fixed interrupt problem in the core that caused problems with the 0.99u9 Namco update - namcos11/12.c: Fixed incorrect voices and swapped stereo - namcos22.c: Added some small optimizations to 3D renderer - 10-Yard Fight: Added conditional DIP switches - Namco Classics Collection Vol.1/2: Fixed missing sound - Truco Clemente: Added and wired up color PROM, but still missing a transform - Input playback/record: Fixed bug in INP recording that crashed MAME - Dipswitch fixes in 10-Yard Fight and Monsters World 0.99u9 - NOTE: There is a bug in the new Namco sound where it will hang after a few minutes of gameplay. This will be fixed in the next version. - New clones: Dynamite Dux and Magic Bubble (Adult version) - Sound Interface: Fixed bug that caused the sound cores to keep running while paused - C352 sound: Set the output pitch now correctly by input clock - megasys1.c and namcond1.c: Removed tilemap_dispose call, this fixes improper save state registrations - namconb1.c, namcos11.c, namcos22.c . Added emulated sound and music to all games, using Prop Cycle's MCU BIOS (pr1data.8k) as a substitute. This is compatible enough to play the sound and music, but not enough to read the inputs or handle coinage. . Hooked it up for plain System 22 games as well, but they're not interested in passing down proper commands for some reason . Speed-cheated all instances of the M37710/C352 sound system so CPU requirements don't go up much - Great 1000 Miles Rally: Removed gfx3 region and sound2 rom (not present on this board) - Great 1000 Miles Rally 2: Removed gfx3 region (twice) - Indian Battle: Added discrete emulation of the background music - Magic Bubble: Fixed tilemap priorities - Xing Yen Man Guan: Added correct gfx1 rom to clone grtwall - MESS: Cleaned up MESS hooks into the input port system 0.99u8 - New games: Cuore Uno, Elephant Family, Royal Card and World Trophy Soccer - New Working games: Air Rescue, Funky Head Boxers and Pebble Beach - New Non-Working games: Cookie and Bibi 3 - New clones: Frogger (Falcon bootleg), Great 1000 Miles Rally and Soccer Superstars - FM sound: Fixed pointer of FM channels and FM basic status - m62.c: Added new functions memory_configure_bank() and memory_set_bank() - stv.c . Added another checking for DMA parameters . Changed STV V-blank timing . Implemented two VDP1 framebuffers and flipping . Added manual changing and erasing of VDP1 framebuffers . Added manual trigger for VDP1 drawing . Mapped VDP1 framebuffer into memory (for 16bpp only) . Added shadow and half luminance for VDP1 RGB sprites . Fixed VDP2 bitmaps scrolling (fixes bad gfx in batmanfr and bakubaku intro) . Added preliminary VDP2 window effect for tilemaps and sprite layer (for batmanfr) . Added VDP2 scaling for 8bpp and 15bpp bitmaps (fixes vmahjong and myfairld backgrounds) - toaplan1.c: Fixed sprite-sprite priorities - Demon's World: Fixed the Toapan sprite drawing, this fixes the first boss when it's dying. - Frogger: Added Frogger color prom to clones Frog and Frog (Galaxian hardware) - Great 1000 Miles Rally: Added missing cpu2 and gfx1 roms - Jolly Jogger: Fixed background color - Lazer Command and Meadows Lanes: Fixed overlay displaying - Time Crisis: Fixed sound rom loading - Top Gunner: Fixed spurious vectors - Vector games: Set the Maximum number of points in a vector list to 10000 - Dipswitch fixes in Armed Police Batrider and Battle Bakraid - Input port: Made input port conditionals work more generically (Please verify that controls work as before!) - MAME . Added save/restore of tilemap parameters . Added new functions memory_configure_bank() and memory_set_bank() which abstract bankswitching better. This allows current memory banking states to automatically be saved for drivers that use this feature. m62.c games have been updated to use this new feature as an example. 0.99u7 - New games: Indian Battle and Jolly Jogger - New Working games: Champion List II, Chuugokuryuu, Long Hu Bang, Maru-Chan de Goo!, Sando-R, Soukyugurentai, Suikoenbu, Super Major League, Xing Yen Man Guan (V638C)? and Zen Nippon Pro-Wrestling - New clones: 2x Eliminator, Dungeons & Dragons: Shadow over Mystara, Marvel Super Heroes Vs. Street Fighter and World Beach Volley - M37710 CPU: Fixed interrupt update (namcos22.c) - FM sound: Removed gross cur_chip hack from the OPN emulator (sound\fm.c) - m92.c: Fixed tilemap-tilemap drawing order and state saving - midvunit.c: Fixed crashing of the games - stv.c . Improved emulation of the IC13 rom loading Find Love, Decathlete, Soukyugurentai / Terra Diver can boot without hacks or debug tricks . Improved Suikoenbu gameplay - namcos22.c . Fixed several bugs in the sound system . Fixed sound rom loading in Air Combat 22, Cyber Cycles, Prop Cycle and Time Crisis clone - taito_f3.c: Fixed interrupt timing - Dynamite Duke: Fixed background layer color in the first levels - Eight Ball Action: Fixed colors in clone Eight Ball Action (Pac-Man conversion) - Fighting Golf: Fixed X-axis in clone Country Club - Ninja Baseball Batman: Added missing opcode 0 in leagueman_decryption_table (machine\irem_cpu.c) - Undercover Cops: Fixed bars in the ending sequence - Scooter Shooter: Fixed colors - Space Cruiser: Fixed Space Cruiser from resetting on the asteroids level when you die - Dipswitch fixes in clone Eliminator (4 Players), Dynamite Duke, igs_blit.c and Space Position - Description changes of Chuugokuryuu (Japan, V021J) and Xing Yen Man Guan (V638C)? - Save State: Fixed crash when running games whose CPU core did not support save states - MAME: Fixed MNG recording size 0.99u6 - New clones: Sharpshooter (Rev 1.1) and Shuffleshot (v1.40) - Discrete sound . Added DST_RCDISC5 (Diode in series with R/C) . Added DST_ASWITCH (analog switch) . Added LFSR functions DISC_LFSR_XOR_INV_IN0 and DISC_LFSR_XOR_INV_IN1 . Fixed DSD_555_ASTBL__R2 - Hammerin' Harry: Fixed background position - Spelunker: Fixed some bad colors in background and gfx3 rom loading - Spiders: Added discrete sound effects from schematics - Witch: Changed visible area - Description changes of Witch - Save State: Fixed crash that was introduced with the state saving updates in 0.99u5 - MAME: Finished renaming (struct mame_bitmap -> mame_bitmap...) 0.99u5 - New games: The First Funky Fighter and Muroge Monaco - New clones: American Poker II and SAR - Search And Rescue - Removed games: Tetris the Absolute The Grand Master 2 - cinemat.c: Added save state support - funworld.c . Added correct dipswitches to all games (Jolly Card, Jolly Poker, Magic Card II...) . Hopper and Points/pulse not tested due to preliminary driver state The rest are working properly (Remember to delete the NVRAM and reinitialize to see some changes) . Added extra hardware info (pinouts and dips) - psikyosh.c: Added blending to the alt tilemap code, fixing the final boss in Sol Divide - segar.c: Fixed character refresh (see Sindbad Mystery) - Pinball Champ '95: Improved driver (the games now show some graphics and play some music and sounds) - Dipswitch fixes in Mahjong Gakuen, TouchDown Fever (Japan) - Save States . Added alternate save state pre-/post-load function types that take integer or pointer parameters . Made state handler registrations track like other scoped resources (timers, memory) . Added logic to detect registrations after MACHINE_INIT time and prevent saves in that case . Added logic to detect when CPUs or sound chips haven't registered anything to save/load . Allocated timers are now automatically saved and restored as part of the save state . The global time is now restored as well as a bunch of CPU execution state . Added logic to defer saves until all anonymous timers have cleared . Re-enabled save state support for YM2151 . Added save state support to the classic Namco sound system . Added save state support to the samples sound system . Removed anonymous timer usage in machine\scramble.c - MAME: Completed renaming of core structures 0.99u4 - New games: 'Tetris the Absolute The Grand Master 2' + Plus - New clones: Plotting (US) - HD6309 CPU: Fixed the PULUW instruction in the disassembler - NMK112 . Created new NMK112 ROM banking module . Connected it up to a number of drivers that made use of it. Affected games are cave.c, nmk16.c, powerins.c, quizpani.c and toaplan2.c - Vector games: Fixed crash when running (vidhrdw\vector.c) - psikyosh.c: Removed gfx1 dispose flags in all games - Block Hole: Fixed K051960 sprite drawing and priority - Devil World: Fixed sprites drawing - US AAF Mustang: Removed 2nd YM2203 sound chip. - Rapid Hero: Correct sound1 roms addresses - Showdown: Added missing buttons - Vulcan Venture: Fixed background/sprites priority in the stage 7 - Save State: Fixed the state save facility play better on multisession ports if initialization fails - MAME . Fixed MNG recording problem . Added memory card and cheat menus back into the system . Cleaned up/normalized the naming of several core structures . Removed -skip_disclaimer option - Dipswitch fixes in Showdown 0.99u3 - New games: Tetris (System E) - New Working games: V-Liner and Taisen Tanto-R Sashissu!! - New Non-Working games: Forte Card and Jackpot Pool - New clones: GTI Club, Master of Weapon and Sunset Riders - DSP56156 CPU: Added CPU core and hooked it up to Polygonet Commanders - PowerPC recompiler: Fixed drc_ops.c so that Scud Race works again - SH-2 CPU . Fixed 64 bit / 32 bit division in division unit . Added callback called when cpu reads FTCSR register (intended for idle loop skipping for slave SH-2 CPU in ST-V) - YMF271 sound: Fixed all the volume table calculations - 53C810 (PCI to SCSI I/O): Fixed recent update which caused the Model 3 games to crash - SCSI hard disk . Added FORMAT UNIT, READ (6 byte), WRITE (6 byte), READ (12 byte), MODE SENSE and READ CAPACITY commands . Changed INQUIRY to ID as a real Seagate model . Some MESS-specific tweeks to initialization - m92.c: Removed a kludge in the M92 video driver. This fixes R-Type Leo video. - seibuspi.c: Added real coin inputs and hooked up eeprom in rdft2us, rfjetus and rdft22kc - stv.c - Fixed VDP1 polygon drawing - Added VDP1 line drawing - Added VDP2 rotation in RBG0 layer (improves diehard, vfkids, vfremix, thunt and sassisu backgrounds) - Added VDP2 15bit RGB tilemaps (used by thunt) - Added VDP2 opaque alpha blended bitmaps (fixes missing gfx in shienryu intro) - Added VDP2 enable bit for RGB sprites (fixes some bad sprites in vfremix) - Added VDP2 alpha blending for RGB sprites - Fixed DMA in machine\scudsp.c (fixes some bad gfx in thunt) - Added idle loop skipping for several ST-V games - Battle Lane: Fixed rom loading and memory may - Diamond Run: Correct gfx3 rom address - Ghosts'n Goblins: Increased REGION_GFX3 to avoid game from drawing a bad sprite - Trick Trap: Fixed memory map and video hardware - V-Liner: Fixed input - Dipswitch fixes in 1941 - Description changes of Dyna Gear - MAME . Removed some obsolete and/or redundant command line options from the Windows build . Removed the "Press any key" prompts when displaying ROM warnings. . Significant overhaul of the user interface infrastructure - MAME source: Removed extra characters from the source code 0.99u2 - New games: Attack Ufo, Jin and many gambling games - New Working games: Treasure Island and Zeroize - New Non-Working games: Bubble Trouble - New clones: 2x WWF Superstars - ADSP21062 CPU . Reworked the SHARC internal ram implementation so that multiple instances of the core work . Added data address space . Updated Konami zr107, gticlub, nwk-tr and hornet to work with the SHARC changes - HD6309 CPU: Fixed 6309 division instructions overflow behavior on the HD6309 - Discrete sound: Fixed 555 timer modules when using actual DC mode - Namco CUS30 sound: Adjusted noise frequency - YMF271 sound . Added low-frequency oscillator (LFO) . The mix buffer pointer was not being reset between two 2-operator FM sounds, causing missing sounds . Fixed some bugs in the phase modulation of FM sounds - YMZ280B sound: Added support for "external memory address" registers, which can be used to read the contents of attached ROM or RAM. - bishi.c . Hooked up the mask ROM tests in the service menu . Added secondary control register . Hooked up IRQ control . Renamed ROMs for both games to include PCB location information - dcon.c . Fixed sprites . Fixed sprites and tilemaps priorities . Added wrap around and flipy in sprites - dooyong.c: Added some disable registers for tilemaps/sprites - djmain.c: Fixed input ports - mcr3.c: Fixed input - model2.c: Added coprocessor input and output FIFO's - namcos1.c: Fixed booting - seibuspi.c . Fixed sprite priority issues . Added support for pen-based alpha to sprites and tilemaps - Gunforce 2: Fixed sprite drawing - The Last Day: Fixed the bug in The Last Day demo - Party Time: Fixed some video bugs - Pop Bingo: Added flipscreen - Sprint 1/2: Fixed motor sounds - Treasure Island: Graphics roms mapped according to findings by debugging the game code - Zaxxon: Fixed sample playing - Zeroize: Found correct bitswap and a hack to get it running w/o the dongle ROM by debugging the game code - Dipswitch fixes in djmain.c and GTI Club - Input . Fixed input port handlers that used the port_tag_to_handler calls . Simplified the reading/writing of input ports so they work more reliably . Only write changed settings to the .cfg files . Fixed saving of analog port configurations - MAME: Added MNG recording support (shift+F12) and updated to the latest zlib 0.99u1 - New games: Lotto Fun 2 and Top Gunner - New Working games: Graplop (Cassette, set 2), Monster Bash (2 board version), Phraze Craze, Tic Tac Trivia, Trivia ? Whiz (Question set 1) and Trivia ? Whiz (Edition 2) - New clones: Omni, Trivia ? Whiz (Question set 2) and Vautour (set 2) - H8/3002 CPU: Fixed several problems in the core, this improves sound in Namco System 12 and ND-1 - YMF271 sound . Fixed timer A and note pitch calculation . Added envelope generator . Added stereo panning and fixed other volume calculations . Added FM sound generation - mcr.c: Undid a hack that was accidentally left in the MCR games in the last release - mystwarr.c: Fixed all games so they pass their service mode mask ROM tests and no more crashes - namcos22.c . Hooked up MCU/CPU communications properly (the MCU now reads the controls in Prop Cycle, Alpine Racer and Cyber Cycles) . Sound effects and music are now present in all Super System 22 games - simpl156.c: Modified video code to use the functions in deco16ic.c - Double Cheese: Fixed cpu clock speeds - Flying Tiger: Fixed tilemap priorities and sprites - Go Go! Mile Smile: Fixed OKI6295 sound banking - Graplop: Figured out encryption key for clone (Cassette, set 2) - Meadows Lanes: Fixed palette and added the green overlay (doesn't work in 0.99u1 ???) - Monster Bash: Fixed rom loading and background in the (2 board version) - Osman: Changed default EEPROM configuration to use 3 buttons - Phraze Craze and Tic Tac Trivia: Changed visible area and palettesize - Pit Boss: Changed visible area and palettesize - almost playable now! - Spiders: Fixed bug that caused bad video in cocktail mode. Correct cpu clock speed. - Super Triv: Correct gfx1 roms order - Trivia ? Whiz (Question set 1): Correct user1 roms order/addresses, visible area and palettesize. - Trivia ? Whiz (Edition 2): Changed visible area and palettesize - MAME: Rewrote the configuration reader/writer code to be more generic and easier for other subsystems to plug into (delete all game cfg files) - Compiling: Turned off -fomit-frame-pointer in optimized builds (crashes on Windows builds) 0.99 - ARM CPU: Backed out some of the core changes which broke several games - FD1094 CPU: Fixed 1-bit errors in decryption keys for Crack Down and D. D. Crew - mcr.c: Changed visible area and VSync in all games - taito_z.c . Fixed road/sprite priority . Added PROMs and other minor changes . Removed bogus ROM in Continental Circus - Continental Circus: Fixed road/sprite priority (cars no longer disappear when they go over a hill) - F1 Super Battle: Fixed sound rom loading in ms32.c so that it doesn't crash. - Osman: Fixed a graphics glitch - World Class Bowling Deluxe: Hooked up NVRAM for clone Tournament (v1.40) - MAME: Note that the next version of MAME will be 0.100 0.98u4 - New games: Super Triv and Romar Triv - New Working games: Chain Reaction, Charlie Ninja, Double Cheese and Osman - New clones: Cannon Dancer and Cannonball - ARM CPU: Fixed unaligned 32-bit reads and several other bugs (breaks some games) - Samples sound: Added pause/resume support for sample playback - deco_mlc.c and simpl156.c . Hooked up EEPROM correctly . Fixed sound ROM decoding and banking . Fixed tile banking . Fixed video priorities and visible area - mcr.c and mcr3.c: Documented all hardware - Charlie Ninja: Redumped the missing sprite rom - Discs of Tron: Removed M6802 CPU3 and TMS5220 speech in version (Upright) and (Upright alternate) - Double Wings: Fixed sprite rendering - Earth Defense Force: Added correct cpu1 rom to clone (North America) - Joe & Mac Returns: Changed (set 2) to parent (World, Version 1.1) - Journey: Hooked up cassette sample and fixed sprite colors - The Next Space: Fixed missing sound effects - Osman: Fixed colours and OKI6295 clock speed - Party Time: Fixed OKI6295 clock speed - Phraze Craze: Fixed the question roms reading and some loading - Puckman Pockimon: Changed visible area - Stadium Hero 96: Added missing gfx roms and changed visible area - Tic Tac Trivia, Trivia Whiz and Trivia Whiz II: Correct user1 roms addresses - Description changes of Party Time, Rohga Armor Force and Shadowland - Input: Fixed seq_analog_value() - the value 0 was ignored 0.98u3 - New Working games: Joe & Mac Returns and Party Time: Gonta the Diver II - New clones: Backfire!, E.D.F. : Earth Defense Force and Enduro Racer - DECO 156 CPU: Fully emulated decryption - S2650 CPU: Fixed LPSU opcode and changed cycle counts - Z80 CPU: Added step in/out support to the Z80 disassembler. - ES5505/6 sound: Fixed subtle bug in ES5505/6 interpolation code. - Samples sound: Fixed crash if 0-length data block was found in a WAV file - aerofgt.c: Fixed wrap around issue with sprites - mcr1/2/3/68.c: Cleand up driver and video hardware - playch10.c: Fixed pc_bstar, pc_moglf and pc_mtoid by added extra ram - policetr.c: Cleaned up driver - segas32.c: Some more minor fixes to the sprites - seibuspi.c: Fixed the single board games rdft2us and rfjetus from crashing - suprnova.c: Fixed all input ports - Alien Storm: Fixed input port - Battle of Atlantis: Removed bad dump in clone (set 2) - Crater Raider, Spy Hunter and Turbo Tag: Correct gfx2 roms order - Depthcharge: Changed CPU from Z80 to 8080 - Double Cheese: Some more progress (game now starts) - Ehrgeiz: Fixed game from crashing - Escape Kids: Changed visible area - Espial: Fixed wrong mapped input - Line of Fire: Added correct cpu1 roms to clone (US, FD1094 317-0135) - Power Spikes: Fixed some problems in the bootleg version - Raiden Fighters 2: Fixed sound banking in clone Raiden Fighters 2 - 2000 - Seibu Cup Soccer: Fixed 4th player inputs and added 1 frame delay for sprites in clone Goal! '92 - Spider-Man: Fixed input port - Tecmo Bowl: Adding MSM5205 sound and coin counter - Dipswitch fixes in Merlins Money Maze, Power Spikes, SAR - Search And Rescue and Beach Festival World Championship 1997 - MAME: Map file only loaded now unless the profiler is enabled. This stops you running out of memory when the memory tracking is enabled. - Debugger . Changed memory display in the debugger so that it doesn't lock to where the cursor is . Fixed it so that it can align against odd addresses - MAME32: Added ability to type shortnames in the Ctrl-F text filter, i.e. 'ddsom'. UI dialogues realignment 0.98u2 - New games: PK Scramble and Mahjong Chuukanejyo - New clones: AmeriDarts, Flash Point, Line of Fire and Street Fighter Zero - DECO 156 CPU: Some progress on encryption (see machine\deco156.c) - PPC4xx/6xx CPU . Moved update_counters() to be executed after the DRC epilogue code is appended . Fixed some bugs in DRC exeception handling . Refactored DRC core to call MMU hooks . ISI exceptions will now be thrown if the MMU hooks report an unexecutable address in the DRC core . Fixed a rounding error in the decrementer . Added support for decrementer exceptions when the DEC register is written to in both cores . Added support for ISI/DSI exceptions with setjmp()/longjmp() in the non-DRC core - Z80/Z180 CPU . Rewrote the Z80/Z180 daisy chaining logic to work a little closer to the hardware . Updated the Z80 CTC and PIO modules to support the new model . Changed the CTC module to not generate interrupts if there is an outstanding request on the same timer is currently in service (This allows Journey to (finally) run with the correct CPU speed) - astrocde.c, battlera.c, m92.c, m107.c and snes.c: Replaced direct access to Machine->scrbitmap with force_partial_update() - mcr1/2/3/68.c: Partial rewrote the MCR video system - nemesis.c: Fixed sound clipping in Galactic Warriors, Gradius, Nemesis and TwinBee - seibuspi.c . Fixed the i386->z80 communication in the driver (This fixes the flash rom update and should also fix any remaining hangs/pauses) . The flash rom update should take around 5 minutes now . All games should have now proper sample data - Idol Janshi Su-Chi-Pie 2, Mahjong Angel Kiss and Ryuusei Janshi Kirara Star: Fixed wrong mapped input - Journey: Correct Z80 CPU1 clock speed - The Legend of Kage . Converted driver to use pdrawgfx (affects stage 4) . A priority effect on the title screen has been mapped (this gives the foreground layer priority over all sprites) . The "virtual palette" hack has been removed . Correct and added dipswitches - Pleiads: Fixed palette banking - Sengoku Mahjong: Cleaned up driver, fixed colors, improved sound and fixed the hang before the match started - X-Men Vs. Street Fighter: Added XOR files to clone (US 961023) - Dipswitch fixes in ddenlovr.c, The Legend of Kage and Sengoku Mahjong - MAME: Added new 'screen' parameter to the VIDEO_UPDATE callbacks 0.98u1 - New games: Koro Koro Quest - New Working games: Born To Fight and Lethal Enforcers - New Non-Working games: Wink - New clones: Crush Roller, Night Slashers and Sand Scorpion - 68000 CPU . Turned on address error checking in the core and fixed several error checking issues (This slows things down a bit but is more accurate and allows correct behavior of a couple of badly-programmed games) . Fixed a 68000 bug that treated 8-bit branches with $FF offsets as illegal - PPC4xx/6xx CPU . Added infrastructure to generate DSI and ISI exceptions . Made the lbz/lbzu/lbzux/lbzx instructions properly clear out the high 24 bits in the results . Added SRR0 and SRR1 to the debug view - TC0360PRI: Fixed one of the sprite blending modes (Pulirula and Liquid Kids) - afega.c: Fixed visible area in Stagger I / Red Hawk and Sen Jin - mcr1/2/3/68.c . Major cleanup the drivers . Implemented Super Sound I/O interrupts properly . Filled out all memory maps according to schematics . Fixed sound sync with various sound boards . Re-verified all connections from wiring diagrams . Documented various lamp and driver boards from the games . Demolition Derby: Added AY8910 sound and fixed sound channels . Discs of Tron: Fixed rom loading and sound channels . Domino Man, Kozmik Kroozr, Satan's Hollow, Tron, Two Tigers and Wacko: Correct Z80 CPU1 clock speed and coins input . Max RPM and Spy Hunter 2: Correct M6809 CPU2 clock speed . Power Drive and Star Guards: Removed kludges . Sarge: Fixed M6809 CPU2 clock speed and input . Spy Hunter: Fixed music and sound channels . Turbo Tag: Fixed steering and added AY8910 sound - mystwarr.c: Fixed inverted stereo channels - vamphalf.c: Cleaned up driver - Born To Fight: Added V20 CPU and MSM5205 sound and fixed rom loading - Dragon Bowl: Hooked up sound - Escape Kids: Fixed memory maps and video hardware - Galaxy Gunners: Fixed rom loading - Karate Blazers: Fixed background priorities (see final 5th level) - Legend of Kage: Fixed sprite/tilemap placement and visible area - Lethal Enforcers: Fixed K053245 sprites draw - Nemesis: Fixed K005289 sound and AY8910 volumes - Nitro Ball: Changed gsme to use the new deco16_tilemap_34_combine_draw function - Operation Wolf and Volfied: Fixed crash due to improper timer usage - Riot: Added a sprite wrap around needed in level 2 - Slither: Fixed PIA 2 memory read/write - Speed Ball: Fixed game again, after breaking it in the last update - Dipswitch fixes in Born To Fight, Dragon Bowl and MCR drivers - MAME . Changed how perodic timers are defined (new macros TIME_IN_HZ and TIME_IN_NS) . Fully deprecated the use of cpu_setbank(), which was long ago replaced with memory_set_bankptr() . Created a new header file mamecore.h . Added endian swapping macros from MESS . Removed usage of dirent.h APIs on Windows builds - Compiling . Some makefile tweaks to hopefully catch variable declaration problems that kept creeping into builds . Switched GCC compiler standard to GNU89. 0.98 - Nothing significant to report - Pinball Champ '95: Fixed sound1 rom loading 0.97u5 - New games: Gun Master - New Working games: Eagle Shot Golf, Mobil Suit Gundam Final Shooting and Super Real Mahjong P7 - New clones: Pinball Champ '95 and X-Men - Support for 68040 CPU - PPC4xx/6xx CPU: Added hooks to support a future MMU - ES5506 sound: Fixed voice banking (Super Real Mahjong P7) - MultiPCM sound: Cleaned up bank handling - sndhrdw\mcr.c: Updated memory maps for the MCR Chip Squeak Deluxe and Sounds Good boards - TC0100SCN: Fixed row and column scroll (Thunder Fox, Warrior Blade) - model3.c: Improved 53C810 SCSI emulation and abstracted memory interfaces - segas32.c . Merged Multi 32 games with Sega System 32 . Multi32 games: Replaced V60 CPU with V70, fixed cpu2 rom address and visible area - taitojc.c: Added 68040 and MC68HC11 MCU and changed visible area (Landing Gear etc.) - Centipede: Fixed sprites rotating in cocktail mode - Golden Axe: Hooked up missing P2 inputs in the I8751 versions - Hachoo!: Fixed sound (removed sound hack) - Mario Bros.: Fixed scrolling (POW button hitting) - Mug Smashers: Fixed tilemap scroll and visible area - Out Zone: Changed set2 to set1 (newer revision) - Phoenix: Added coin 2 and fixed dipswitches in the clones - Sky Bumper and Looping: Fixed memory map - Speed Ball . Converted game to tilemap system . Added coin counters and cocktail mode . Fixed priorities . Cleaned up the driver - X-Men: Added dual screen to the 6-player versions - Dipswitch fixes in Boogie Wings - MAME: Fixed multi-monitor compilation problem and zlib buffer overrun bug 0.97u4 - New games: Tenkomori Shooting - New Working games: Slipstream - New Non-Working games: Meyco game - New clones: Gaiapolis, Mechanized Attack and Raiden DX - PPC4xx/6xx CPU . Fixed AMD-specific problem and exception handling . Implemented recompile_fcmpo() . Fixed certain rules in rules.mak . Commented the MSR_* values . Moved BAT registers into their own structure . Added DSI and ISI exceptions (non-DRC core only for now) . Moved READ*/WRITE* functions into ppc_mem.c . Changed memory handling so that reading and writing are done through function pointers that can be changed at runtime . Fixed PowerPC counters again, reimplementing them from scratch - V60 CPU: Fixed SBR handling to ignore the low 12 bits (Mahjong Angel Kiss, Tetris Plus 2 (MegaSystem 32 Version)) - kaneko16.c: Fixed OKI6295 sound banking (Great 1000 Miles Rally, B.C. Kid...) - model2.c: Added second ADSP21062 CPU and fixed all the problems caused by the previous update - namcos12.c . Added support for dma'ing incomplete blocks from MDEC . Added sprites x & y flipping . Caches the decoded tpage fields . mask setting & dma setup updates status fields correctly . Reverse flag only has an effect on original GPU's . Updated board notes from Guru . Removed rom patches from the driver . Renamed sound program roms - segas32.c . Rewrote the System 32 mixer layer to support accurate implementation of the alpha blending modes . Sprite shadows and several other effects are still not yet implemented - Bells & Whistles: Fixed inverted stereo channels - Big Run: Fixed OKI6295 sound output - The Combatribes: Adjusted volume balance - Double Dragon 3: Adjusted volume balance - Guardian: Fixed input in clone Get Star (bootleg) - Hatch Catch: Fixed background layer position - Lethal Enforcers: Improved sprites and allowing 2 sprite chips to be created - Mug Smashers: Adjusted volume balance - Off the Wall (Atari): Fixed Atari Audio Board II (sndhrdw\atarijsa.c) for games without OKI6295 sound - Outrun: Replaced roms in Out Run (bootleg) with a new dump that passes the ROM test - Puzznic: Changed (Japan set 2) to Puzznic (World) - Rad Mobile: Fixed rom loading - Rad Rally: Added rom epr14237.22 (cpu2 - $400000) - Sauro: Fixed incorrect test in vidhrdw\sauro.c - Snow Bros.: Increased 68000 clock speed in clone Winter Bobble (otherwise the gfx and scroll break up) - Top Speed: Changed MSM5205 intern clock speed to MSM5205_S48_4B (=8kHz) to fixed sound pitch - World Class Bowling Deluxe: Added correct sound program and sound roms - Dipswitch fixes in Yamato - MAME: Fixed tilemap viewing (usrintrf.c) and OK screen crash (cpuintrf.c) 0.97u3 - New games: Animalandia Jr. and Puzznic - New playable games: LeMans 24, Sega Rally 2, Star Wars Trilogy and Yu-Jan - New clones: Tant-R and 2x Raiden Fighters - PowerPC CPUs . Made the DRC PowerPC core compilable when HAS_PPC403 is 0 . Rewrote the interrupt handling in the interpreter core so it matches the DRC core . Fixed MCRXR instruction . Fixed PPC603 counters problems - PSX CPU . Correct behaviour for a branch in a delay slot . Added BIOS and syscall logging of all known functions and their parameters . Fixed disassembly of gte instructions . Fixed dismips.mak - V60 CPU: Fixed exception handling and task switching in the V60 core - TIA emulation: Fixed read handler in vidhrdw\tia.c (see Tournament Table) - Flash ROM emulation (intelfsh.c): Added sanity checking and changed a printf() to logerror (see konamigv.c + seibuspi.c) - macs.c . Added some inputs to the MACS driver so that Yu-Jan works. Fixed the visible area in it. . Added a quick kludge for get Yu-Ka to work (disabled by default) - model3.c: Fixed a bug in the MPC106 PCI Controller emulation. - segas32.c: Fixed rom loading in all games - ssv.c: Removed several hacks - taito_f3.c . Properly implemented Zoom & Column scroll according to how the hardware does it . Removed various hacks . Implemented Sprite & Tilemap clipping - Action Hollywood: Added preliminary PIC16C57/OKI6295 sound support and fixed visible area - Driver's Eyes: Added correct roms - Eagle Shot Golf: Fixed a number of problems and correct visible area - Final Lap/2/3: Added road clut prom - Final Tetris: Added manufacturer and year info - Four Trax: Added Final Lap's road clut prom (marked as bad_dump) - I, Robot: Fixed bitmap displaying - Kick Goal: Added PIC16C57 CPU2 and OKI6295 sound (disable since the internal rom is dumped) - Mad Gear: Added priority prom (not used) - Snow Bros.: Fixed Oki frequency in clone Snow Brothers 3 - Super World Stadium: Changed sound rom to match the other sets (sws92 & sws93) - The Lost Castle In Darkmist: Decrypted tilemaps and fixed rom loading - Vanguard: Added missing sound1 roms to clone Vanguard (Centuri) - Winning Run: Added correct roms - Dipswitch fixes in Eagle Shot Golf, macs.c and Monkey Mole Panic - Description changes of Action Hollywood - Debugger: Fixed crash in the debugger when decoding instructions that were too long 0.97u2 - New games: Final Tetris - New Working games: Mahjong Hyper Reaction, Wizz Quiz and World Class Bowling Tournament (clone) - New Non-Working games: LeMans 24 - New clones: Lady Bug, Mr. Kougar and Turtle Ship - ADSP21062 CPU: Correct IRQ handling and added many more opcodes, including floating-point - PowerPC CPU core: Implemented the MCRXR instruction and fixed usage of change_pc() - Konami PowerPC based 3D games . Fixed Gradius 4 data ROM mapping . Fixed PPC/SHARC communications . Fixed NVRAM protection on some games . Stubbed out LAN interface - V60 CPU: Added step in/out support to the disassembler - Nintendo 2C03B PPU: Fixed video timing (playch10.c, vsnes.c) - VIA 6522: Fixed the way the shift register was implemented to get rid of the previous hacks (see atarisy1.c, beezer.c, bmcbowl.c, gameplan.c, itech8/32.c and leprechn.c) - cave.c: Correct sound balancing in DonPachi, Mazinger Z, Metamoqester and Power Instinct 2 - multi32.c/segas32.c: Games are seriously under construction now (Do not report any bugs against them!) - Atomic Robo-kid: Fixed sprite overdraw problem - Azurian Attack: Fixed bullets draw - Championship Bowling: Fixed remaining gfx problems and visible area - The Combatribes: Added priorities and fixing 3rd level - Dyna Gears: Fixed bad shadows - Gradius III, Nemesis and Parodius DA!: Fixed wrong mapped buttons - Intrepid: Fixed items in the secret rooms of the clone (set 2) - Midnight Resistance: Changed OKI6295 volume - The Ninja Warriors and Warrior Blade: Fixed video problems (TC0100SCN column scroll) - Pac & Pal: Added new sound1 prom and fixed colors in clone 'Pac-Man & Chomp Chomp' - Racing Jam, Silent Scope and Thrill Drive: Correct rom loading - Space Raider: Fixed graphics 100%, hooked up starfield generator, added 5th SN76496 sound, fixed palettesize and dips - Red Clash: Hooked up starfield generator and fixed palettesize - Wizz Quiz: Added new cpu1 and sound1 rom - World Class Bowling Deluxe: Fixed protection in clone World Class Bowling Tournament - Zero Hour: Hooked up starfield generator and fixed palettesize - Fixed buttons and coins in Arabian Fight, Air Rescue, Dark Edge, F1 Exhaust Note, F1 Super Lap, Rad Mobile, Rad Rally, Slipstream and Spider-Man - Description changes of Ganryu, Matrimelee and Tecmo World Cup Millennium - Debugger . Added code to flush error.log every time the debugger is entered . Added support for character constants in the expression engine - MAME: Fixed Windows build so it works again on Windows 95 0.97u1 - New games: Hana Kagerou and Mahjong Reach Ippatsu - New Working games: Hana Kanzashi and N-Sub - New Non-Working games: Driver's Eyes and Winning Run - New clones: Battle Field (bootleg), Falcon (bootleg set 2), The Great Ragtime Show and Malzak II - Support for ADSP21062 CPU . Source: sharc\sharc.c . Partially hooked up in model2.c and Konami PowerPC based 3D games - PowerPC core: Added debugger support for the decrementer register - V60/70 CPU: Changed to clock multiple cycles per instruction (model1.c, ms32.c, multi32.c, segas32.c and ssv.c) - Konami PowerPC based 3D games . Source: machine\konppc.c + drivers\gticlub.c, hornet.c, nwk-tr.c and zr107.c . Cleaned up and consolidated common hardware . Hooked up ADSP-21062 and 3D chips . Initial reverse-engineering work on the K001005 custom 3D chipset in GTI Club . Initial NVRAM values plugged in for many games. (They're used as a crude protection, similar to the EEPROM on GV System). . Added missing 68000 CPU2, dipswitches and fixed rom loading . Added 68000 CPU2 in GTI Club . No games are playable or even show much yet, but nearly all of them do pass POST now. - Taito TC0100SCN custom GFX (vidhrdw\taitoic.c) . Implemented column scroll in asuka.c, groundfx.c, ninjaw.c, othunder.c, taito_f2.c, taito_z.c, undrfire.c, warriorb.c and wgp.c - ddenlovr.c: Big driver update - Namco System 21 update . Starblade is working with emulated master/slave DSPs (graphic updates are a bit choppy) . The 'direct drawing' feature is used in Starblade during the high score presentation . Solvalou works, but 3d graphics stop updating (press key A to unblock the pipeline and resume drawing) - segas32.c: Cleanup driver, correct V60, Z80 and YM3438 clock speeds, changed visible and rom loading (Things may not work as well as before!) - SCSP sound: Fixed a minor bug in the timer handling - Burger Time: Fixed input in clone Cook Race - Demon's World: Fixed VSync - Donkey Kong 3: Fixed Donkey Kong 3 (bootleg) colors - Double Dragon II: Fixed misplaced graphics - Double Dragon 3: Fixed tilemaps and sprites - Dream World: Improved protecton and changed visible area - Dyna Gears: Added workaround for bad shadow sprites - Hyper Crash: Fixed missing VLM5030 - Malzak: Improved SAA 5050 emulation, fixed S2636 port and rom loading - Mario Bros.: Added redumped roms to clone Pest Place and fixed spritelayout - N-Sub: Hooked up inputs - Operation Wolf: Added proper C-Chip emulation and 2nd sound channel - Pole Position/II: Removed LO/HI gearshift display (only enabled in a debug build) - Star Force: Fixed Samples sound (sndhrdw\senjyo.c) - Street Heat: Added support for control type dipswitch - Suzuka 8 Hours\2: Fixed road colors - Toki: Fixed Z80 frequency in Toki (bootleg) - War of the Worlds: Fixed 'Lives' dipswitch - WWF Superstars: Fixed vblank handling and some bad sprites - Fixed rom names in Asuka & Asuka, nemesis.c, segahang.c, segas16a/16b/18/32.c, segaorun.c and segaxbd.c - Description changes of Hana Kanzashi and Juuouki (Altered Beast clones) - History/Mameinfo display: Added HOME/END key support - MAME: Fixed memory leak (mame.c - The CPU system must be reset before memory goes away) - Debugger: Made the expression engine a little more generic to support its use in other tools (debug\express.c) 0.97 - PPC603 CPU: Fixed SMI input line and SPR603E_TBL_R/SPR603E_TBU_W switches - Pocket Gal Deluxe: Fixed OKIM6295 banking - HiScore System: Fixed memory leak - Crosshairs: Fixed palette_get_color bug 0.96u4 - New games: Super Bishi Bashi Championship - PowerPC core . Implemented the SMI input line . Added a placeholder for the TLBISYNC input line . Implemented the TBU special variable on the 603 - RF5C68 sound: Rewrote the sound emulator. Improving sound in the System 18/32 games - coolpool.c: Added thrash protection emulation to the NVRAM - exidy.c: Fixed palette and colortable bug - galaxian.c: Fixed game reset - segas18/32.c: Fixed RF5C68 clock speed - wecleman.c: Rewrote vidhrdw/wecleman.c to make the code more readable - Peggle: Added missing coin 2 and coin 4 input - Renegade: Replaced MSM5205 sound with Custom - Spiders: Fixed PS1 (Crosshatch) dipswitch - MAME input: Added 4 different crosshair styles to differentiate different players' crosshairs - Cleaned up several video drivers that were using non-auto memory allocation functions for bitmaps and memory (vidhrdw\dogfgt.c, hng64.c, lemmings.c, mjsister.c, tatsumi.c and ygv608.c (namcond1.c)) - Debugger . Improved Windows-specific memory debugging to track file/line numbers for allocations . Added logerror and memdump commands . Fixed remaining memory leaks in the new debugger code - Compiling: Replaced some logerror()/exit(), printf()/exit() and fprintf()/exit() combinations against an osd_die() call 0.96u3 - New games: A. D. 2083 and Cyber Tank - New Working games: AmeriDarts, The Couples, Golgo 13 and Varia Metal - New Non-Working games: The Lost Castle In Darkmist - New clones: Alien vs. Predator, Borderline, Dungeons & Dragons: Tower of Doom, Express Raider, Giga Wing, Hot Memory, Moon Shuttle, Street Fighter Zero 3, The Couples, Welltris and X-Men Vs. Street Fighter - TMS34010 CPU: Fixed reverse blitters so they didn't perform extraneous source memory fetches - MIPS and PPC cores: Added better debugging support - atarisy1.c: Fixed gfx2 roms addresses - ssv.c: Added shadow effects to the driver and correct palettesize - machine\slapstic.c: Simplified additive path in slapstic code (see atarisy1+2.c, atetris.c, harddriv.c and starwars.c games) - 1945k III: Changed to mono sound - 9-Ball Shootout: Fixed number of buttons - Angel Kids: Fixed YM2203's volumes - Choko: Added all missing gfx1 and sound1 roms - Crude Buster: Correct HuC6280 CPU2 and OKI6295 clock speed - Cool Pool: Fixed number of buttons - The Couples . Improved video hardware . Added a preliminary PPI8255 and inputs interface . Added AY8910 sound . Added a better workaround of the $b011 jump . Correct Z80 clock speed and added AY8910 sound - Dark Seal: Correct OKI6295 clock speed - Hot Shocker and Explorer: Improved sound - Golgo 13: Hooked up light gun properly - Panic Road: Fixed sprites, controls, colors, visible area, sound, dipswitches and many graphics problems - Peno Cup: Added preliminary video emulation and fixed input - Varia Metal: Added new dumped cpu1 rom - Vapor Trail: Fixed dropped sound commands and correct HuC6280 clock speed - Wizz Quiz: Changed M6803 CPU to M6800 - Debugger . Added 'find' command to the new debugger for performing memory searches . Changed trace and traceover commands so they can append to existing files by placing '>>' before the filename . Old debugger no longer forces the memory display to 16-bit words regardless of the size specified with the M command - Dipswitch fixes in Caveman Ninja, The Couples, Kamikaze Cabbie, Dream Soccer '94, Major Title 2, Peno Cup, Play Girls 2, Rohga Armour Force, Seibu Cup Soccer, Shoot Out and Spinal Breakers 0.96u2 - New games: Hot Mind and Multi Champ Deluxe - New Working games: 9-Ball Shootout, Cool Pool and Hyper Crash - New Non-Working games: Mobile Suit Gundam Final Shooting and Revenger - New clones: Cosmic Monsters 2, Gaiapolis, Hyper Crash, Rock 'n Rage, Varia Metal and Yellow Cab - PowerPC CPUs . Implemented fcmpo instruction . Patched the non-DRC PPC core to compile properly when not all PPC cores are enabled - TMS32025 CPU . Fixed bug in MAC instructions . Fixed cycle counting problems that led to inaccurate internal timers . Hooked up the ability to specify internal read/write handlers (new debugger) - TMS34010 CPU . Fixed window mode 1 in the core . Fixed bugs that prevented misaligned stack accesses from working . Fixed a bug that didn't force the PC to be 16-bit aligned - cps3.c: Fixed descriptions - epos.c: Cleaned up the decryption in the Epos games - playch10.c: Added support for Single monitor Playchoice 10 BIOS (use MAME -resolution 320x240 -bios 1) - playmark.c: Correct PIC16C57 clock speed and VSync in Big Twin, Excelsior and World Beach Volley - qix.c: Added cocktail flip support to the driver - suna8.c: Simplified the decryption code in the driver - Taito SJ video hardware . Fixed sprite priorites (Elevator Action, High Way Race and Tin Star) . Added sprite clipping at the sides of the screen (Elevator Action) . Fixed sprite hardware collision detection (Alpine Ski, Pirate Pete and Water Ski) - 8255 PPI: Rewrote mode 2 support - SCSI: Fixed a number of bugs and added support for more SCSI commands and modes - Sound system update . Fixed sound output Garyo Retsuden . Swapped left/right sound channels in Namco Classics Collection Vol.1/2 . Fixed YM2151, Pokey's and TMS5220 volumes in APB and Paperboy . Fixed Samples volume in Star Force - AmeriDarts: Added TMS32010 (1875000 Hz) CPU2 and removed all user1 roms flags dispose - Atomic Punk: Swapped CPU1 roms, so game is now playable - Buck Rogers: Hooked new 8255 PPI to game properly - Fighting Basketball: Fixed I8039 sound write - Goal! '92 and Euro League: Hooked up MSM5205 sound - Hollywood Action: Fixed end-of-sprite list and flip screen - Hyper Crash: Fixed graphics and 68000 clock speed - New Sinbad 7: Fixed character and sprite colors - Rock 'n Rage: Correct M6809 sound CPU clock speed - Volfied: Improved C-Chip simulation to accurate timing and correct colour data for all levels. Fixed visible area and rom names. - Wakakusamonogatari Mahjong Yonshimai: Fixed missing L button - X-Day 2: Changed game to use default Namco NA-1 joystick inputs, so you can play it - User interface . Swapped On Screen Display and Config Menu items so that accidental key configuration changes don't kill your ability to get to the menu by default . Added the ability to clear an input configure via the delete key - Debugger . Added the ability to specify internal read/write handlers for CPUs so that the new debugger can view internal RAM . Added a -debugscript command line parameter that invokes a debugger script on startup . Modified the MIPS DRC core to disable optimizations when mame_debug is on. This makes it easier to run comparative traces when running both with and without MIPS DRC enabled - Dipswitch fixes in Hyper Crash, Nitro Ball and Rohga Armour Force 0.96u1 - New Working games: Gardia, Mahjong Block Jongbou and Space Position - New clones: Burning Rival, Kickle Cubele, Martial Champion and Raiden Fighters 2 - Support for PowerPC 4xx/6xx Dynamic Recompiler - TMS99xx CPU: Fixed PPC assembly code - OKI6295 sound . Added ADPCM utilities to OKIM6295.c . Replaced MSM5205 sound with 2x Custom in Cabal, Dead Angle and Kyuukyoku no Othello - machine\adc083x.c: Fixed ADC overflow condition in ADC083x code - machine\segacrpt.c: Added Sega 317-0005 and 317-0006 decryption (Gardia and Space Position) - Sound system update . Fixed Astrocade sound and Samples volume in Gorf . Fixed AY8910 sound volume in Pinbo - Big endian issues fixes . PowerPC CPUs . arcadia.c . model3.c . namcofl.c . namcos22.c . seibuspi.c (flash code) . snowbros.c . tumblep.c - dooyong.c: Cleaned up driver - Angel Kids: Changed gfx3 roms to gfx4 - Gulf Storm: Fixed input - Gun Dealer '94 and Sadari: Fixed input and YM2151 clock - Diet Go Go: Fixed graphic banking - Demons and Dragons: Fixed wrong mapped input (P1 uses P2 fire buttons) - Pop Bingo, R-Shark and Super-X: Fixed YM2151 clock - Raiden DX: Added new dumped gfx3 roms - Return of Lady Frog: Fixed Z80 clock and big endian issues - Vs. Star Luster: Fixed input to call Starnoid - Dipswitch fixes in Blue Hawk, Dragon Buster, Flying Tiger, Gulf Storm, Gun Dealer '94, The Last Day, Pollux, Pop Bingo, R-Shark, Sadari, Schmeiser Robo, Sky Kid and Super-X - Debugger: Fixed big endian issues in the old debugger 0.96 - New games: Pachinko Sexy Reaction 2, Torus and X the Ball - New Working games: Boogie Wings, Calorie Kun, Pocket Gal Deluxe, Pro Mahjong Kiwame S, Rohga Armour Force, Schmeiser Robo and Treasure Hunt - New Non-Working games: Double Wings, Lock-On and N-Sub - New clones: Atomic Punk, Boogie Wings, Golden Tee 3D Golf Tournament, Lup Lup Puzzle, Progressive Music Trivia, Rave Racer, Ridge Racer, 2x Ridge Racer 2, Rong Rong, Slick Shot and Survival Arts - MAME: New BSD source code license (see docs\license.txt and http://mamedev.com) - TMS34010 CPU: Added disassembler step in/out support - V60 CPU: Removed abort() calls - Sega ST-V . Fixed a DSP bug . Added the possibility on the VDP1 to double the horizontal resolution under some circumstances. This affects Astra SuperStars, Virtual Mahjong & Virtual Mahjong 2 . Fixed a bug in the A-Bus protection handling for games which have rom data mapped here . Made some small fixes to the SCU . Added a quick hack to avoid the sound reading "hang" (disabled by default) . There's also some WIP code for the protection in Astra SuperStars and Final Fight Revenge - eolith.c: Fixed endianness problems in the games and changed user1/2 roms to cpu1/user1 roms - segas32.c: Fixed rom loading endianness problems - taitosj.c: Added missing RAM to the memory map - machine\segacrpt.c: Cleaned up sega Z80 encryption code - memory.c: Fixed implementation of memory_get_op_ptr() - 'beatmania' games: Fixed problem with the djmain.c games on the Mac (vidhrdw\konamiic.c) - Baku Baku Animal: Removed hack since it's not needed anymore - Bio Attack: Fixed collision detection - Calorie Kun: Decrypt game and correct cpu1 roms addresses - Diet Go Go: Correct OKI6295 clock speed and changed sound channels back to one - Dream World: Improved driver, changed visible area and swapped gfx3 roms - Dynablaster: Fixed rom names - Escape Kids: Fixed CPU1/2 and sound frequencies - Joinem: Fixed coin inputs and dips - Joyful Road: Fixed graphics ? - Nitro Ball, Rohga Armour Force and Wizard Fire: Fixed HuC6280 CPU2 clock speed - Pocket Gal Deluxe: Added 2x OKI6295 stereo sound. Hooked up graphics ROMs in bootleg version. - Progressive Music Trivia and Super Trivia Master: Correct user1 roms order - Sando-R: Fixed a DSP bug which was causing Treasure Hunt to hang. - Turbo Sub: Improved driver and correct roms addresses - Vendetta: Fixed chip frequencies to match real PCB - Input port: Fixed -dual_lightguns option - Dipswitch fixes in Joinem - Description changes of Alien3 and manufacturer DECO to Data East Corporation - MAME UI: Added explanation that left/right joystick wiggle works on "OK" screens - MAME source: Removed all tab characters from the source code 0.95u6 - New Working games: Choky! Choky!, Diet Go Go and Hollywood Action - New Non-Working games: Hoops '96 and Rough Racer - New clones: Ambush, Diet Go Go, Dunk Dream '95 and Space Fortress - Removed deco102.c driver (Boogie Wings and Double Wings) - H8/3002 CPU: Fixed h8_group7 opcode and disassembler - Support for ES8712 sound (Varia Metal) - system24/segas18.c: Fixed inputs in several games and added some new standard strings - Choky! Choky!: Added protdata.bin rom and fixed input/dipswitches - Diet Go Go: New driver, added sound, fixed visible area and dips - DJ Boy: Fixed OKI frequency - Exterminator . Updated driver . Implementing full memory map . Removing speed hacks . Fixing sound issues (swapped cpu3/4 roms, removed 2nd DAC sound and changed to one sound channel) - Hollywood Action: Fixed video hardware and visible area - Mr. Do's Wild Ride and Kick Rider: Added missing cpu3 rom - Pocket Gal Deluxe: Added new driver, fixed visible area and dips - Shocking: Fixed background after 3rd stage - Varia Metal: Hooked up new ES8712 sound and fixed dips - Dipswitch fixes in Alien Storm, Choky! Choky!, Crack Down, Desert Breaker, Diet Go Go, Flying Tiger, Hacha Mecha Fighter, Laser Ghost, Pocket Gal Deluxe, Quiz Mekurumeku Story and Thunder Dragon - Description changes of Choky! Choky! and Crack Down - MAME Audit: Improved auditing error reporting internally - Debugger: Fixed debugger to close all trace files when quitting 0.95u4-5 - NOTE: 0.94u5 was a Quick fix - New Non-Working games: Choky Choky and Dream World - New clones: Space Invaders (Model Racing), Pocket Gal Deluxe and Tecmo World Cup '94 - MAME . Fixed Windows-specific input bug introduced in 0.95u4 . Removed CPU_16BIT_PORT hack; this means that all Z80 drivers must explicitly clamp their I/O space address space to 8-bits via ADDRESS_MAP_FLAGS(AMEF_ABITS(8)) . Removed CPU_AUDIO_CPU; it was no longer having any effect, and it was a poor substitution for documentation since it wasn't used consistently across all games . Added 'emulator' target to the makefile to make it easier to build just mame.exe . Removed obsolete targets from the main makefile . Added Pentium-M optimization target to the makefile - DECO 102 CPU: Added preliminary DECO 102 decryption (Boogie Wings, Diet Go Go, Double Wings and Pocket Gal Deluxe) - TMS9900 CPU: Added several enhancements and variants from MESS - C140 sound: Fixed routing in the Namco games (namcos2/21.c) - Boogie Wings, Double Wings and Diet Go Go: Swapped cpu1 roms - G-LOC Air Battle: Added sprite roms - Gals Hustler: Fixed OKI frequency - Great Swordsman: Added 8741s fake roms - Nitro Ball: Fixed backgrounds - Monster Slider: Fixed game logic bug - Super Real Mahjong P7: Added hack to V60 for the game - Rom names fixes in Boulder Dash and Hopping Mappy - Dipswitch fixes in Captain America and The Avengers, Dyna Gears, Pocket Gal Deluxe, Survival Arts - Description changes of Great Swordsman and Tecmo World Cup '94 - Debugger: Added better protection against crashing 0.95u3 - New games: Flying Tiger and Beach Festival World Championship 1997 - New Working games: Hacha Mecha Fighter and Thunder Dragon - New Non-Working games: Hollywood Action - New clones: Aero Fighters, Cascade, Catt, Great Swordsman, Operation Wolf, Power Spikes and Sharpshooter - 68000 CPU: Fixed cycle counts for several instructions - HD6309 CPU: Fixed index addressing mode disassembly - M6502 CPU: Updated some M6502 variants (DECO CPU16, M65C02, N2A03) and fixed crashes in NES games with new 6502 code - 8255 PPI: Added mode 2 functionality - Input port: Speed up reading with a lookup list - K052109 GFX: Added dx/dy settings - Flash ROM emulation . Increased FLASH_CHIPS_MAX in src\machine\intelfsh.h . Merged 8 & 16 bit Intel Flash NVRAM handler . Passes the chip number as a parameter - Williams driver rewrite . Rederived all addressing from schematics . Cleaned up banking mechanisms . Fixed sound CPU clock in later games . Simplified blitter code significantly . Added timing to the blitter (just a guess right now) . Implemented clipping circuits correctly . Simplified palette handling significantly . Rewrote video system to use tilemaps for later games. . Fixed cpu1 roms addresses in Blaster, Bubbles, Joust, Lotto Fun, PlayBall!, Robotron, Sinistar, Speed Ball, Splat! and Stargate . Correct graphics resolution in Colony 7, Defender and Mayday . Fixed M6808 clock speed, graphics resolution, palettesize and gfx1 roms addresses in Inferno, Joust 2, Mystic Marathon and Turkey Shoot - atarijsa.c: Cleaned up error.log messages by correcting sound chip info - konamigx.c: Hooked up driver to use machine\adc083x.c - marineb.c: Cleaned up error.log messages by correcting sound chip info - Battle Cruiser M-12: Added missing second AY8910 sound. - Battle Zone: Removed fake hack ports - Crime Fighters: Fixed clock speeds and refresh rate - Gradius III: Made visible area region symmetrical and fixed K052109 layer 2's X offset - Great Swordsman: Fixed sprite palettes - Kabuki-Z: Added samples (new redumped cpu3 rom) and fixed the garbage colors at startup - Monster World: Changed the sound1 rom to user1 - Off the Wall: Removed OKI6295 sound - Panic Road: Added graphics decryption - Phoenix: Updated tone sounds to use discrete system - Pleiads: Removed Phoenix sound - Rastan: Fixed rom names - Risky Challenge: Fixed input - Speed Spin: Added OKI banking - Thunder Dragon: Added YM2203 sound and swapped sound1/2 roms - Vindicators Part II: Removed fake hack ports - Dipswitch fixes in Bomber Man World, Dynablaster, Ghost Hunter, Pocket Gal Deluxe, Risky Challenge, Tut's Tomb and Vs. Super SkyKid - Artwork: Support for resizing after a visible area change - ST Timekeeper RAM: Commented out logerror's in timekpr.c - Save States increased MAX_INSTANCES - Description changes of Bomber Man World, Dynablaster and Line of Fire 0.95u2 - New games: Dr. Tomy and Up Your Alley - New Working games: Batman Forever, Dyno Bop, Snapper and Super Strike Bowling - New Non-Working games: Comad World Beach Ball Championship 1997, Monster World, Panic Road and Peno Cup? - New clones: D. D. Crew, Pocket Gal Deluxe (bootleg), The Simpsons, Trio The Punch (World), Wally wo Sagase! and Zero Team - FD1094 CPU: New dumped CPU for D. D. Crew (set 4, World, 3 Player) - M6502 CPU: Added a hook that allows drivers to override the indexed addressing mode - SN76496 sound: Updated the Write functions (according to the document) - MC6821 PIA: Fixed emulation - Incredible Tech. 8-bit update . Added extensive documentation on all the various PCB layouts . Reorganized drivers to match PCB information . Rewrote blitter implementation to be much simpler (no more macros) . Measured and implemented accurate blitter timing (fixes some speed problems) . TMS34061 video controller: Remove dirty pixel tracking and fixed scanline calculations . Updated Capcom Bowling driver as well to handle TMS34061 changes . Fixed graphics resolution in Hot Shots Tennis, Neck-n-Neck and Peggle - Sega ST-V . Fixed some interrupt issues because the old implementation was giving several hangs on Batman Forever . To be more specific added the sprite draw end irq to the INTERRUPT_GEN structure . Fixed a bug which prevented the vblank bit to not be cleared if the irq mask has the VBLANK-IN disactivated . Fixed the NMI_disable/enable cmds on the SMPC device . Fixed a bug in the bitmap type 4 in VDP2 handling - armedf.c: Changed way in which MCU kludge/hack works - Arlington Horse Racing: Correct OKI6295 clock speed and graphics resolution - Aurail: Added missing cpu1 roms to clone (set 1, Japan) - Batman Forever: Fixed rom loading - Crackdown: Fixed crash - Dyno Bop: Fixed paging/flicker problems, palettesize and hooked up inputs - Ghox: Removed hack from controls so it acts like the real PCB - Mayjinsen 2: Fixed input - Poker Dice: Fixed paging/flicker problems - Rim Rockin' Basketball: Fixed lack of announcer voices and P3/P4 controls - Shanghai - The Great Wall: Fixed Sunsoft logo and the "2 credits bug at start-up" - Splash!: Fixed error - Slick Shot: Redid input to use a crosshair for starting point and trackball movement for velocity - Super Slam: Improved audio MCU simulation - Super Strike Bowling: Hooked up inputs and added 'behind the beam update' - Terra Force: Fixed video in the (US) version - Trio The Punch: Fixed filenames - Trivia Whiz: Added missing questions roms - Dipswitch fixes in Snapper and Sonic The Hedgehog 2 (Mega Play) - MAME: Improved gamelist.txt generation code 0.95u1 - New games: Sonic The Hedgehog 2 (Mega Play) - New Working games: Crackdown, Idol Janshi Su-Chi-Pie Special, Mahjong Channel Zoom In, Mahjong Kakumei, Mahjong Kakumei 2, Photo Y2k and Pinball Action (set 3) - New clones: Ehrgeiz, Lup Lup Puzzle, Red Hawk, Soul Edge Ver. II and Tekken 3 - FD1094 CPU: New dumped CPU for Crackdown (317-0058-04d) - HD6309 CPU: Fixed SEXW instruction and Cycle Counts Page - V60 CPU: Fixed DIVFS opcode - Flash ROM emulation . Implemented state saving for Flash chips . Fixed block erase on 16bit Flash chips . Increased maximum number of Flash chips - Best League: Fixed tilemaps, sprites offsets, visible area and dip-switches and added OKI banking, sprites wraparound and sprites color masking - Excelsior: Fixed sprites priorities and added bitmap size switch (100% or 50%) - Super Lup Lup Puzzle: Fixed rom names - Dipswitch fixes in Best League, Bio-hazard Battle, Cookie & Bibi, Cookie and Bibi 2, Fancy World, Grand Slam, Hook, In the Hunt, Major Title 2, Mazin Wars, More More, More More Plus, Puzzle King, Streets of Rage II, Twinkle, Undercover Cops and XESS - MESS: Added a specific option to FILETYPE_SCREENSHOT - Compiling: Link Warning fixes and patches to fix compile errors with VC 0.95 - New games: Bio-hazard Battle (Mega Play), Demons and Dragons, Nagano Winter Olympics '98 and Streets of Rage II (Mega Play) - New Working games: Best League, Ghost Hunter and Tut's Tomb - New Non-Working games: Alien Syndrome (Mega-Tech) and Super Hang-On (Mega-Tech) - New clones: Aurail, Big Kong, Hex Pool, Hook, Pinball Action, Puzzle Club and Sunset Riders - CDROM emulation . Moved actual CD-ROM and harddisk device emulation out of am53cf96.c to new scsicd.c and scsihd.c files . am53cf96.c is now fully configurable: you can have any combination of up to 7 CD-ROMs and/or harddisks attached to the emulated SCSI bus and specify what each one's SCSI ID is. . Changed konamigv and konamigq drivers to support the new AM53cf96 configuration system . CD-ROM emulation expanded to support more SCSI commands and bugfix some existing ones . Added -extractcd to convert CHD-CDs back into CDRDAO .bin/.toc images - Sound system update . CPUs tagged as audio CPUs are no longer disabled when sound is turned off . Fixed crash in Double Dribble, Garyo Retsuden, Iron Horse, Konami GT, Scion and system18.c bootlegs - Sega System update . Decrypted and added Aurail (FD1089A 317-0167) . Correct gfx roms loading in the Altered Beast sets . bayrout1 is the us version not world . wally1 is revision B . Added a few keys with NO_DUMP . More fixes to descriptions and ROM names - Buccaneers: Fixed sound frequency and sprite bug - Bull Fighter: Fixed crash - Calorie Kun: Fixed cocktail mode - Excelsior: Added sound - King of Boxer: Added proper PROM decoding for Ring King (Woodplace license) - The Simpsons: Correct K053260 clock speed (Verified against real board) - Super Slam: Fixed middle tilemap removing wraparound in the title screen - Ufo Senshi Yohko Chan: Fixed bugs ufosensi093u3gra and ufosensi093gre - Cheat engine: Added 24-bit cheat finding support - Dipswitch fixes in Best League, Excelsior, Ufo Senshi Yohko Chan and XX Mission - MESS: Specific sndintrf update 0.94u5 - New games: Cookie & Bibi and Search Eye - New Working games: Line of Fire, GP Rider, Shrike Avenger and Pachinko Gindama Shoubu sets (Normal and DX) - New Non-Working games: Grand Slam (Mega Play) and Mazin Wars (Mega Play) - New clones: Best League and Bull Fighter (Sega) - FD1094 CPU: Decryption update (machine\fd1094.c) - M6502 CPU: Removed RUNTIME_LOADER and implemented disassembler flags - YM2413 sound: Added two new functions used by Pachinko Gindama Shoubu - midvunit.c: Turned off debugging code in the hotspots, giving a huge speed improvement - model3.c: Added perspective correction and implemented proper 3D clipping - realbrk.c: Reorganized a bit the memory map - segac2.c: The Game instruction rom will now copied to 0x300000 - 0x310000 - srmp6.c: Update the memory map and added dips - A.B. Cop: Fixed missing sound - Clowns: Added discrete emulation for music, balloon popping and springboard hit. Added also coin counter and proper watchdog and fixed dipswitches. - Blood Warrior: Loaded correct gfx1 roms - Bosconian and Galaga: Fixed starfields - Buccaneers: Fixed transparency issue - Dog Patch: Added Discrete sound - Dominos: Updated discrete sound to use the new component value code - Fire Truck, Monte Carlo and Super Bug: Updated sound to use the new TTL7492 counter and changed the menu adjusters so frequency goes higher when adjusted to the right. - Funny Strip: Fixed sprite graphics - Gain Ground: Added Player 3 controls and fixed dips - Mahjong Daireikai: Improved the MCU protection code and fixed various rom loading issues. Now more graphics are correctly displayed. - Nemesis: Correct K005289 clock speed - Pachinko Gindama Shoubu sets (Normal and DX): Fixed games and added specific controls - Racing Hero: Fixed missing sound - Shadow Dancer: Fixed rom names - Shrike Avenger: Fixed graphics - Shisensho II: Fixed visible area and dips - Sprint 1/2: Updated discrete sound to use the new component value code - Dipswitch fixes in Buccaneers, Clowns, Funny Strip, Gain Ground, Oli-Boo-Chu, Pushman, Risky Challenge, Super Real Mahjong P6 and Shisensho II - Compiling: Reorganized makefile slightly and fixed seibuspi.c link warning 0.94u4 - New games: Libero Grande - New Working games: Buccaneers, Calorie Kun vs Moguranian (bootleg), Gain Ground and Pipeline - New Non-Working games: Snapper - New clones: Buccaneers, Crazy Rally, Passing Shot, Tekken and Wonder Boy III - FD1094 CPU: Changed FD1094 state change behavior slightly to keep Gain Ground happy - FM sound chips YM2151, YM2203, YM2608, YM2610 and YM2612: Fixed crash when you load state - NMK004 sound: Improved NMK004 simulation and prevented hang in Black Heart - PSX GPU: Fixed bugs in PSX texture window. This fixes pitch in Libero Grande and playfield in Aqua Rush. - playmark.c: Fixed some sprite colours - system24.c: Changed VSync to 58Hz in all games. - Dead Eye (GV054 UA01): Hooked up guns for when it works - Pengo: Fixed rom loading in pengo3u, pengo4 and penta - Dipswitch fixes in Buccaneers, Calorie Kun vs Moguranian and Pipeline - Debugger: Fixed memory dumping problem at very high addresses 0.94u3 - NOTE: 0.94u2 was an internal release - New Working games: GP Rider (set 1) and Shrike Avenger - New Non-Working games: Buggy Boy and TX-1 - New clones: 2x Bubble Bobble, Pinbo, Pit & Run, Poker Ladies, Puyo Puyo, Sky Lancer and Star Trek - Removed games: Speed Buggy - CPU core: Cleanup cpuintrf.c - NMK004 sound simulation (see nmk16.c games) - G65C816 CPU: Fixed CPU switch mode for functions - Sound core: Removed some unwanted clamping code - Sound system update . Fixed QSound routing in cps1/2.c . Fixed sample playback glitch . Fixed some speaker settings (Slither etc.) . Changed wavwrite type from 'void *' type to an opaque pointer 'wav_file *' - SN76477 sound: Fixed SN76477 emulation bug where gain was 3x more then it should be, causing effects to clip for 2/3rds of the time and fixes the attack time for one-shot envelope mode. - GFX: Fixed bad GfxLayout in battlera.c, dcon.c, decocass.c, funkybee.c, jedi.c, merit.c, ojankohs.c, omegaf.c and srumbler.c - playmark.c: Added rowscroll support, changed bitmap to be drawn after the fg_tilemap and found bitmap enable bit - segaorun.c . Connected some outputs via 8255 PPI . Fixed IRQ handling to match schematics . Hooked up watchdog and global mute . Fixed IRQ2 timing . Many tweaks based on schematics - segaxbd.c . Fixed IRQ handling to match schematics . Hooked up watchdog, sound reset and global mute . Reduced interleave on all games except Line of Fire - segaybd.c . Fixed CPU speeds according to schematics . Hooked up global mute . Reduced interleave on all games - segaic16.c (all Sega 16-bit hardware) . Changed divide-by-zero case to return a value . Implemented Y-board sprite priorities (not fully understood, but seems to work) . Found missing 8th bit in Outrun/X-board sprite pitch . Implemented Outrun/X-board road priorities according to logic dump from Leopardcats . Hooked up road RAM double buffering that was missing for Outrun/X-board . Disabled direct scanline mode for Outrun road, which doesn't support it - Batrider: Fixed OKI6295 sound - Big Twin: Fixes girl pictures sticking - Circus: Changed DAC to Discrete sound - Crash: Added discrete simulation for beeper, samples (not currently recorded) and fixed crash - Dream Shopper: Fixed crash (commented out two AM_WRITE's) - Driver's Edge: Fixed red/blue colors - Excelsior: Tweaked bitmap scroll, fixed priorities and garbage graphics. Added 'fake' pic16c57 sound rom - F1 Exhaust Note: Allowed game to show full attract mode - Frogger: Adjusted volume - GP Rider: Added hack to make GP Rider boot; input bug prevents full playability - Gyruss: Rebalanced volume - NewZealand Story: Documented debug mode and hidden level select - Operation Thunderbolt: Fixed sound clipping - Rip Cord: Added samples (not currently recorded) and fixed crash - Robot Bowl: Added discrete simulation for footsteps, samples (not currently recorded) and fixed crash - Sky Lancer: Fixed some bad gfx - Shrike Avenger: Updated driver, documented the motor behavior and correct gfx roms order - Space Chaser: Updated sounds to include missle effect and fix dot sounds per schematics - Super Monaco GP: Hooked up dummy CPU for running SMGP communications - Super Slam: Fixed sprites, text tilemap colors, text tilemap scrolls and VSync - Tornado Baseball: Added correct cpu1 rom - Wiggie Waggie: Fixed crash (the X1_010 sound is not used) - World Beach Volley: Fixed sprite/tile priorities and added rowscroll support - WATCHDOG_VBLANK_INIT: Added proper watchdogs to Bosconian, Galaga, Pole Position and Xevious - CPU clock fixes in Galaxy Force 2, G-LOC, Out Run, Power Drift, Rail Chase, Super Hang-On and Strike Fighter - Input port: Added scroll mouse support and allow for more than 40 entries in the analog menu - Dipswitch fixes in Big Twin, Dunk Shot, Excelsior, GunNail, NewZealand Story, nmk16.c, Sky Lancer and World Beach Volley - MAME: Updated documentation - MESS: Added entries for two MESS specific sound cores (C64/128) in sndintrf.c - Debugger: Added sound balancing assistance display to debug builds - Compiling: Misc fixes 0.94u1 - New games: Excelsior, Star Fire 2 and Tecmo World Cup Millenium - New Non-Working games: Calorie Kun vs Moguranian and Pipeline - Sound system update . Fixed initialization order problem in Niyanpai and 'Run and Gun' . Removed unused filters in Operation Thunderbolt . Prevented setting negative timers to fix Stack Columns crash . Fixed Triple Fun by making sure the X1-010 chip is present before trying to reset it (vidhrdw\seta.c) . Fixed Sound in Out Run . Removed 3rd sound channel in dino, punisher, slammast and wof - Konami GX: Driver cleanup and Intel Flash improvements - itech32.c: Fixed driver, the previous 64-bit fix caused graphical problems - Seibu SPI: Intel Flash improvements - Discrete sound update . Added DSS_INPUT_STREAM (Connects external streams to the discrete system) . Added magnitude conversions macro (includes\rc.h) . Updated mixer in Atari Baseball, Atari Football, Basketball, Fire Truck, Frogs, Monte Carlo, Polaris, Pool Shark, Super Bug and Triple Hunt - Q-Sound: Fixed 3 speaker problem - TMS5110 sound: Fixed games using the 5110 which refused to start (Bagman, cvs.c etc.) - Armed Police Batrider: Fixed crash - Dead Angle: Fixed crashing. Added missing second YM2203 - Kyuukyoku no Othello: Added second YM220 - Space Chaser: Added watchdog and fixed input port - Laser Ghost: Fixed title screen - Cheat engine: Fixed typo (TMS34020) + other - MAME: XML/LISTINFO output update - Compiling: Fixed auto_malloc compiler warning with DOS tools 0.94 - New Working games: G-LOC Air Battle, Galaxy Force 2, Power Drift, Rail Chase and Strike Fighter - New clones: Mortal Kombat (Yawdim bootleg) - Seibu SPI . Preliminary sprite Alpha (no tilemap alpha) . Added sprite / tilemap DMA . Proper RTC emulation - Sega System24: Fixed crash due to sound update - Sega Y-board . Updated driver . Added YM2151 and Sega_PCM stereo sound . Running Power Drift and Galaxy Force II at full speed (PC=2.5GHz) . Changed driver yboard.c to segaybd.c . Dipswitch fixes - ADSP2100 CPU: Fixed big endian - SegaPCM sound: Does stream_update on reads/writes for slightly better accuracy now - Sound stream: Removed extraneous clipping when passing streams from one output to the next input - Star Force: Fixed crash - MAME: Removed SAMPLES support from sndhrdw/galaxian.c - Compiling: Added macros for ROM_REGION64_LE and ROM_REGION64_BE 0.93u3 - New games: More More - New Working games: Twinkle and XESS - The New Revolution - taito_l.c: Changed interrupt handling - Champion Wrestler: Fixed MSM5205 playback, including volume - Plotting: Fixes test mode by changing the interrupt handling - Twinkle: Changed the description and added protdata.bin rom - XESS - The New Revolution: Improved protection, added protdata.bin rom and changed the description 0.93u2 - New Working games: Puzz Loop 2 - New Non-Working games: Choko - New clones: Pit Fighter, Puzz Loop 2, Raiden Fighters, 2x Raiden Fighters 2, Raiden Fighters Jet, Ring King, Street Fighter Zero, Street Fighter Zero 2 and 2x Viper Phase 1. - Great Swordsman: Fixed description and palettesize - Operation Wolf: Fixed sound - Return of the Invaders: Fixed 'Life' display - Super Qix: Fixed bitmaps display for 2 player game - Dipswitch fixes in Exzisus, Great Swordsman, Return of the Invaders - ST Timekeeper RAM emulation (M48T02, MK48T08 and M48T58) for hornet.c, itech32.c and slapshot.c - MAME: Fixed -wavwrite and a MESS specific usrintrf patch - Compiling: 0.93 link warning fixes 0.93u1 - New Non-Working games: Time Crisis 2 - Sound system update . Fixed running with -nosound . AY8910 no longer attempts to free memory allocated with auto_malloc . Fixed several issues with banking and playback in the OKI6295 . Fixed signed/unsigned error in TMS5110 core . Adding missing memset when initializing the TMS5110 and TMS5220 structures (should prevent crashes) . Streams engine oversamples by averaging now and removed some obsolete code . namco.c: Removed oversampling (the sound core will do this now) . cps1.c: Replaced YM2151 sound with Q-Sound (dino, punisher, slammast and wof) . Nemesis no longer references non-existent K005289 . TNZS has missing 2203 interface reinstated . Fixed Darius, nbmj9195 and konamigx crash - Discrete sound update . Various tweaks to the discrete modules and updated all drivers to use new code . DISCRETE_COUNTER/_LFSR_NOISE/_NOTE: Added different clocking types to be more flexable . Removed DISCRETE_COUNTER_FIX and merged with DISCRETE_COUNTER . New discrete modules DISCRETE_DIODE_MIXERx, DISCRETE_MULTIPLEXx and ISCRETE_RCDISC4 - 10-Yard Fight: Converted to use tilemaps, cleaned up driver, fixed rom names slightly and changed names to match title screen and flyer. - Bubble Bobble: Correct input and dips - Cyberball: Fixed swapped left/right samples - Gyruss: Rebalanced sound - Steel Force: Fixed visible area - Tank 8: Added explosion gain control - Twin Brats: Fixed visible area - Dipswitch fixes in 10-Yard Fight, Bubble Bobble and Tokio - MAME UI: Grouped identical CPUs and sound chips in the game information screen (see Gyruss) - DIPswitch-Menu: Bumped the MAX dip switches that can be handled by the dip switch menu to 256 - Flash ROM support update (Konami GV and Seibu SPI) . Added support for arbitrary manufacturer and chip IDs instead of hardcoding . Added support for the extended chip ID protocol favored by AMD and Fujitsu . Bumped limit up to 8 chips - Compiling: Fixed Itech32 64-bit crash and misc fixes 0.93 - New Working games: E-Jan High School, Hyper Duel, Raiden Fighters, Raiden Fighters2, Raiden Fighters Jet, Senkyu, Ufo Senshi Yohko Chan and Viper Phase 1 - New clones: 2x Aliens, Alpha Mission, Defense, G-Darius, High Impact Football, Super Cross 2, Surprise Attack and Ufo Senshi Yohko Chan (bootleg) - New Non-Working games: Ghost Hunter, Moonquake and Tuts Tomb - FD1089 CPU: New dumped CPUs for Defense (317-0028) - G65C816 CPU: Ddisassembler changes - Sound System update (see whatsnew.txt for details) . Added RC_Filter to Double Dribble, Gyruss, Iron Horse, Juno First, Mega Zone, Pooyan, Power Surge, rallyx.c, Roc'n Rop, Time Pilot, Time Pilot '84, Tutankham and Xexex . Added Volume_Filter to Darius, Ninja Warriors and Operation Thunderbolt . Added second SN76496 to Driving Force, Kicker and Porky . Replaced ADPCM sound with MSM5205 in Cabal, Grand Cross, Mahjong Kyou Jidai, Mouja, Operation Wolf, Renegade, taito_l.c and Varia Metal . Replaced YM2203/ADPCM sound with MSM5205 in Dead Angle, Kyuukyoku no Othello and Mahjong Kyou Jidai . Correct OKI6295 clock speed in deco32.c, Nitro Ball, Mad Motor, Rohga, Schmeiser Robo, Thunder Zone, Vapor Trail and Wizard Fire . Correct SN76496 clock speed in Mikie, Sindbad Mystery, suprloco.c and system1.c - macs.c: Driver update - micro3d.c: Correct UPD7759 clock speed - seibuspi.c . Decrypted gfx in E-Jan High School, Raiden Fighters/2/Jet, Senkyu and Viper Phase 1 . SPI Big Endian fix . Sound emulation on the SPI games is still incomplete . Various alpha blending effects missing - '88 Games: Added second UPD7759 sound - Alien Syndrome: Fixed rom names - Big Striker: Changed game to use the priority prom - D. D. Crew: Fixed sound loading - Hyper Crash: Fixed controls. Still needs freeplay to start. - Hyper Duel: Use gfx roms from clone (Japan set 2) now - Nemesis: Changed K005289 sound to K007232 - Off the Wall: Added OKI6295 sound - Racing Hero: Removed ingame debug button which was causing you to be locked to the middle lane - Shisensho II: Added many opcodes to the decryption table. Game is almost working correctly, still some errors. - Yu-Jan: Now boots but isn't playable - Warrior Blade: Changed YM2610B sound to YM2610 and added audio Volume_Filter - World Class Bowling: Fixed crash in version 1.2 - Xevious: Swapped Namco 54xx filters on Port A & C. This fixes the game sound. - MAME: Changed way .map file is generated. - Debugger: Changed an instance of memory_get_read_ptr() to memory_get_op_ptr() - Compiling: C89 fix 0.92u1 - New Working games: Championship Bowling and 'Raiden Fighters 2 - 2000' - New Non-Working games: Turbo Sub (basic driver) - New clones: Astro Combat, Little Hero and Super Missile Attack - FD1089 CPU: New dumped CPUs for Alien Syndrome (317-0033) and Super Hang-On (317-0034) - Mahjong drivers: Added new default controls - seibuspi.c: Tile graphics are decrypted for all games - Championship Bowling: Added trackballs - Gladiator . Verified with schematics . Converted to tilemaps, fixed scrolling . Simplified tile decoding . Flip screen support . Fixed spriteram size (this fixes gladiatr36rc2gre bug) . Support for sprite dual buffer (this fixes sprite trails) . Adjusted YM2203 mixing levels so bass notes can still be heard NOTE: The audio mixing stage has some program controlled filters though which aren't supported . Proper blending of the fg layer (it's a palette effect not alpha blending) - Laser Base: Added missing SHA1 values - Ping-Pong King: Added to gladiatr.c driver. Correct palettesize and gfx2/3 roms addresses - Raiden Fighters 2: Added gfx2/3 roms (not dumped), using the rf2_2k ones (which are likely the same) - Raiden Fighters 2 - 2000: Sprites are decrypted - Super Trio: Fixed MSM6295 sound frequency - Tank 8: Added discrete sound - X-Files: Added double buffering, this improved the video emulation - Dipswitch fixes in Championship Bowling, Gladiator and Tank 8 - Compiling: More fixes 0.92 - New games: Golden Tee '97/'98'/'99/ 2K/ 3D Golf /Classic + 23x Clones, The King of Fighters 2002 (NeoGeo), Matrimelee (NeoGeo), Minesweeper, Point Blank 2, Rack + Roll, Rage of the Dragons (NeoGeo), Space Guerilla and 2x World Class Bowling Deluxe - New Working games: Joinem, Land Breaker, Raccoon World and Super Trio - New Non-Working games: Championship Bowling, 2x Dambusters, Gunpey, Jockey Grand Prix, Kyuukyoku no Othello, 3x Laser Base, Ping Pong King, Trivia Challenge, 2x V-Liner (NeoGeo) and Wild Arrow - New clones: Bronx, Champion Baseball II, Colt, Egg Venture, Hyper Pacman, Lightning Fighters, The King of Fighters '97 Plus (NeoGeo), Land Breaker, Metal Slug 4 Plus (NeoGeo), Puckman, Pushman, Rezon and Wall Crash - G65C816 CPU: Added a hook that allows a driver to install a custom read handler for reading interrupt vectors - Hyperstone CPUs: Correct Iram mirroring - M37710 CPU: Fixed bug - TMS5110 sound: Added real noise generator - blockade.c: Added discrete sound Blasto, Blockade, Comotion, Hustle, Minesweeper and Minesweeper (4-Player) - dgpix.c and eolith.c (Hyperstone): Many improvements in Hidden Catch, Land Breaker, Raccoon World and X-Files - docastle.c: Correct Z80 CPU1 clock speed in all games - fitfight.c: Hooked up uPD7810 and MSM6295 sound - Mahjong drivers: Added new default controls to some drivers - micro3d.c: Big improvement over the skeleton driver (but games not playable yet) - Multi Amenity Cassette System (macs.c): All games uses now ST0016 video - PSX CPU based drivers . Improved root counter emulation . Improved dma acknowledge emulation . Changes visible area immediately instead of during video update . New board notes from Guru . Removed 8.3 restrictions on namco system 11 rom names - Sega System 16: More improvements, including lots of set renaming and cleaning up of drivers by removing unused code - Taito F3: Fixed most of the remaining issues with the sound - Taito SJ . Added sound CPU -> main CPU communication (fixes Tin Star hangs and makes tunes between levels correctly play until the end) . Added memory map derived from schematics . Added DAC volume control . Coin lockout (important otherwise games could accept more than 9 coins) - Asteroids Deluxe: Added state-prom - Big Striker: Added priority prom - Blaster, Bubbles, Colony 7, Defender, Joust, Robotron, Splat and Stargate: Added video inversion proms for cocktail table - Centipede + Missile Command: Added sync prom - Kick and Run + Kiki KaiKa: Added Z80 CPU4 - Lethal Enforcers . Guns hooked up and aligned properly . Tilemap and sprite layers aligned with the guns . Tilemap colors . Various other cleanups . Added a missing sprite rom - Super Trio: Removed YM2151 sound and correct sound1 roms address - Dipswitch fixes in Action Fighter, Cycle Shooting, Kick and Run, Mr. Do's Castle, Shuffleshot, Sinistar, Super Trio and Vs. The Goonies - MAME: Added memory_get_op_ptr() call and modified debugger to use it - Compiling: Misc fixes. Fixes also for VC. 0.91u2 - New games: The Couples, Join 'Em and Super Trio - New Working games: Astra SuperStars and Kabuki-Z - New clones: Karate Blazers - uPD7759 sound: Completly rewrote driver (Fixed sound in System 16 games) - jalmah.c: Fixed crash - neogeo.c: Correct NeoGeo mirroring + additional information on coin counters - System 16: Correct cpu2 roms addresses in some games - stv.c . Added some new vdp2 registers . Re-added the layer disable/enable code . Started to add default EEproms for the various games . Added the dynamic clocks - tnzs.c . Fixed crash due to code execution across bank cboundary (tnzs36b16yel) . Added sprite banking (same as seta.c). Insecotr X and other were obvoisly running at 30fps before . Added sprite buffering (not quite the same as seta.c) - Arkanoid - Revenge of DOH: Removed kludges which were required to run Arkanoid 2 - Astra SuperStars: Added a kludge to run the game - Gun.Smoke: Fixed transparency - Insector X: Fixed MAMEtesters bugs - Kabuki-Z: Fixed sprites, backgrounds and sound - Lethal Enforcers: Updated driver. Correct graphics resolution and palettesize - Terminator 2: Correct graphics resolution - Compiling: Warning Cleanups 0.91u1 - New games: Cart Fury, Gauntlet Dark Legacy, 2x Gauntlet Legends, Monza GP, NBA Showtime, NFL Blitz 2000, Road Burners, San Francisco Rush 2049, Tenth Degree and War: The Final Assault - Support for Atari/Midway Vegas hardware games - NEC V-serie: Support for encrypted opcodes in i386 disassembler (for Irem games) - qix.c: Added external volume control and stereo support. Replaced DAC sound with Discrete_Components. - Electric Yo-Yo: Fixed hang in attract - Kram: Decrypted clone kram3, which is now working - Lethal Enforcers . Implemented 48xx bankswitch region, which can toggle between custom chip registers and RAM (evil!). . Removed hack to pass POST since we now do it the right way . Correct K056832 RAM interface . Added preliminary support for external linescroll RAM on the K056832 - Rabio Lepus: Fixed garbage around life-bars - Solomon's Key: Fixed? blanking out of levels at certain scores - Space Dungeon: Added external volume control and stereo/effect support - Street Fighter - The Movie: Fixed game on 64-bit builds/systems (vidhrdw\itech32.c) - Super Volleyball: Fixed missing net - Zero Zone: Fixed tilemap banking (background) - MAME: Fixed bug in memory system introduced in 0.91 (breaking Kinst, seattle.c and Where's Wally) - Compiling: C99 and other fixes 0.91 - New games: Dacholer, Kick Boy, Eleven Beat, Magical Tetris Challenge, See See Find Out and Tarzan - New Working games: Pushman - New clones: Clash-Road, Golden Axe: The Revenge of Death Adder and Thunder Cross - Support for MC68HC11 CPU core (Landing Gear, Side By Side and Side By Side 2) - Support for N64 based hardware games (Eleven Beat and Magical Tetris Challenge) - PPC CPUs: Some improvements - Crystal System: Kludged reset in driver so it no longer crashes MAME - Kaneko 16: Fixed driver which was broken in u4 - Lethal Enforcers: Both versions now boot and run. Fixes tilemaps and sprites display. Sound now works. Unified memory maps and added all digital inputs and DIPs. - Mega System 1: Increased interleave in driver, fixing speed in Avenging Spirit. - Model 3: Some step 2.0 games now show something - NeoGeo: Fixed some GFX bugs and correct video frequency - Sega 16-bit hardware . Added proper mirroring for the memory map (segas16a) . Added support for 3 multiply chips and 3 divide chips . Fixed timer/compare chip implementation to match real PCB . Added tilemap flipping support . Added sprite flipping support for 16A and 16B sprites - Harley-Davidson: Correct user1 roms addresses. - Out Run: Added better GFX2 roms - Pengo: Fixed game (was broken in u4) - Popeye: Fixed crash and water colour - Pushman: Added missing cpu1 rom and MCU rom - The NewZealand Story: Improved workaround for shared RAM / MCU hang bug - Time Scanner: Fixed sense of cocktail DIP - Vasara 2: Fixed some dipswitch text - Vs. Wrecking Crew: RFixed the colours in Vs. Wrecking Crew based on screenshots - Palette handling: Fixed a problem in palette_get_color() causing an incorrect value to be returned in some specific cases. - MAME: Updated memory system with improved mirroring support and removed obsolete orientation code from tilemap code and drivers - Debugger: Added the UNIX 'source' command and debug_trace_printf() call 0.90u4 - New games: 2x The King of Fighters 2001 and Metal Slug 4 - New Working games: Sukeban Jansi Ryuko - New clones: Caterpillar Pacman Hack, Jump Shot Engineering Sample, Operation Thunderbolt, Shot Rider, Snow Brothers 3, Super Glob and Van-Van Car - FD1089 CPU: Improved decryption logic - FD1094 CPU: New dumped CPU for D.D.Crew (317-0184) - G65C816 CPU: Fixed disassembler error - Tilemap: Added a user_data field for tilemaps - Arcadia System . Changed driver to use multi BIOS setup . Added support for TenPlay BIOS (from 10 games board) . Added proper Kickstart 1.3 image (256k instead of 512k) . Made blitter to discard writes above chip ram - kaneko16.c: Updated driver in preparation for data from Blood Warrior - pacman, pengo and jrpacman.c . Drivers uses the same tile/sprite decode, palette decode & sprite rendering . Renamed pengo sound & video hardware to pacman as it was used their first . Converted to use tilemaps . Merged memory maps . Added rom mirroring to pacman & moved any game that needs another rom into another map . Tidied up the mirroring in the S2650 games . Grouped the GAME() lines by hardware and then year . Added full memory map . Correct gfx1 addresses and palettesize - Sega ST-V . Started to work out the A-Bus protection (data transfer with the cartridge area) . Added a preliminary timer 1 irq handling (doesn't work yet because of incomplete VDP-1 emulation) . Reversed VDP-1 long word access read by SH-2 CPU from ignoring . Correct SH-2 and 68000 clock speeds - segahang.c: Connected rowscroll/colscroll controls, updated YM2151 mixing volume and made all the 6844 dumps verified - segaorun.c: Updated YM2151 mixing volume. Note: Break LED no longer functions - segas16a.c . Improved the way custom I/O controls work internally . Rewrote the N7751 path so that it is properly triggered and better described . Connected up the watchdog (some games use it, some don't) . Removed unused controls from all games' input lists . Updated YM2151 mixing volume - sega16b.c: Improved the way custom I/O controls work internally and updated YM2151 mixing volume - segas18.c: Fixed memory leak (vidhrdw/segas18.c) - segaxbd.c: Updated YM2151 mixing volume - segaic16.c . Cleaned up tilemap handling using the new user_data feature . And added pixel-accurate scaling to System 16B sprites . Tweaked 16A sprite systems . Fixed documentation on Hang On/Space Harrier road chip - Desert Breaker: Added P3 start button - Enduro Racer: Added complete FD1089 table - Erotictac/Tactic: Changed video hardware and interrupts, added timer and correct ARM clock speed - Funky Head Boxers: Fixed wrong graphics - Golden Axe 2: Emulated GA2 protection board with V20 CPU - Hang-On: Tweaked sprite systems. Added 6844 zoom-table dump. - Jr. Pac-Man: Moved clone (Pengo hardware) back into pengo.c - Mahjong games: Added standard Mahjong inputs to the input port - Major League: Added support for controls - Ms. Pac-Man: Added full memory map, this should fixed the ending - Operation Thunderbolt: Emulated external volume and panning control (from schematics). Fixed garbage graphics on startup with a kludge and fixed wrong plane graphics at the end of the game. - Pebble Beach: Added a preliminary timer 1 irq handling, this fixes booting - Shisensho II: Preliminary decryption. Still being worked on. - Sidewinder: Use 0.5MB chip ram now - Space Harrier: Tweaked sprite systems. Added sic123.bin prom (zoom-table) - Space War (Leijac): Added missing Player 2 controls (missing dips) - Sukeban Jansi Ryuko: Added support for controls - Super Hang-On: Added more data to the FD1089 table and 6844 zoom-table dump to clone shangupb - Time Scanner: Hooked up DIP switches for clone (System 16A) - Dipswitch fixes in Jump Shot, Operation Thunderbolt, Space War (Leijac) and Time Scanner (System 16A) - CPU memory access: Increased the amount of adjustable memory banks from 24 to 32 - Debugger: Removed the VK_HOME and VK_END cases for the WM_KEYDOWN event 0.90u3 - NOTE: Please added the zoom-table rom epr6844.bin from Enduro Racer also to Hang-On and Space Harrier - New games: Erotictac/Tactic and Puzzle King (re-added) - New Working games: Sidewinder, Space Ranger and SportTime Table Hockey - New Non-Working games: Bomber Lord, Pontoon and Puzzli 2 Super - New clones: The Anteater, Great 1000 Miles Rally 2, Kabuki-Z, 2x Super Hang-On and Top Racer - Namco 52XX: Added proper filters to Namco52 sample player. Adjusted relative effect volumes per schematics - VRender Zero sound: Fixed sound broken in u2 - Arcadia System . Changed video update to be scanline based . Improved sprites rendering, fixed sprite clipping . Added hold-and-modify display mode - NeoGeo: Added Japan MVS (Ver. 1) BIOS rom - Asteroids: Fixed gain etc. broken in 0.90 - Atari Baseball: Correct crowd filter component values - Basketball: Converted to component value code - Battle Garegga: Added PORT_DIPCONDITION's - Bosconian: Added Namco 52XX filter values - Cadash: Removed ADPCM sound - Cool Riders: Added 68000 and correct palettesize and all roms addresses (not working yet) - Earth Joker: Removed ADPCM sound - Enduro Racer: Accurated road and sprite scaling - Galaga: Added Namco 52XX filter values - Galmedes: Removed ADPCM sound - Hang-On: Accurated road and sprite scaling - Kick and Run: Added cpu4 rom (unused) - Kokontouzai Eto Monogatari: Removed ADPCM sound - Line of Fire: Added repaired cpu1 roms to clone (Japan, FD1094 317-0134) - Monte Carlo: Added proper filter to crash sound - Pole Position: Added proper filters to engine sound and Namco 52XX filter values. Added new proms and user1 rom to Top Racer. - Rastan: Cleanup driver. Replaced ADPCM sound with MSM5205 - Sidewinder (Arcadia): Changed gsme to use 1MB chip ram, this needs more investigation - Sukeban Jansi Ryuko: Fixed graphics, but no controls yet - Space Harrier: Accurated road and sprite scaling - Super Hang-On: Renamed shangonb to shangupb to indicate it is an upgrade bootleg. Added new sets. - Tazz-Mania: Removed starfield from clone (Galaxian Hardware) - Xevious: Added Namco 52XX filter values - MAME: New command line parameter -screen (specifies which screen to draw on) - SHA1: Added some missing SHA1s - Compiling: Fixed some PPC core warnings 0.90u2 - New Working games: Steep Slope Sliders and Virtual Mahjong 2 - New Non-Working games: 'Bee Storm - DoDonPachi II' and Puzz Loop 2 - New clones: Winning Spike - Support for ARM7 CPU core: Backfire!, Charlie Ninja, Night Slashers, Osman, Skull Fang and Stadium Hero 96 - G65C816 CPU: Cleaned up the code, make some functions static and added step over/out support to the disassembler - M6809 CPU: Fixed 6809dasm.c compile warning - PowerPC core . Added some unimplemented opcodes . Better interrupt handling. Nested interrupts work properly. . Support for PPC602 . Major bugfixes - Namco 54xx sound: Added op-amp bandpass filtering circuit to sound\namco54.c and updated noise sound - Arcadia System: Move refactors code specific out of src\machine\amiga.c into callbacks - Sega Model 3 . Preliminary polygon emulation . Fixed 53c810 SCSI single-stepping mode DMA and added memory moves and DMA callback . Added Epson RTC-72421 emulation . Preliminary sound emulation (not working yet) . Most Step 1.x games show something now, up to and including full 3D - Sega ST-V . Fixed a bug with the VDP-1 ram reading . Reversed back to the old VDP-1 PTM's "draw by request" implementation causing sprite flickering . Finished the game header update . Fixed a ST-V visible area incorrectness which was causing Virtual Mahjong 2 to crash after the sound ram check . Fixed a window effect bug in Double-density interlace mode . Guessed a bitmap positioning issue in double-density interlace mode - Bosconian: Added Namco 54xx sound R/C values - Crystal Castles: Added synchronous, bus, write and color proms (unused) - Galaga: Added Namco 54xx sound R/C values - Kid Niki: Fixed priority bug and crash on last level - Lot Lot: Fixed priority - Pole Position: Added Namco 54xx sound R/C values - Steep Slope Sliders: Fixed a bug with the VDP-1 ram reading, this fixes booting so the game now works. - Sukeban Jansi Ryuko: Correct cpu1 roms addresses - Virtual Mahjong: Fixed a window effect bug in Double-density interlace mode, this fixes some graphics - Virtual Mahjong 2: Game works now, but only with sound disabled - Vs. Battle City: Fixed colours - Xevious: Added Namco 54xx sound R/C values - MAME Playback/Record: Fixed multiple port recording (src\inptport.c) - MAME: Fixed several compile warnings 0.90u1 - New games: Merlins Money Maze - New Working games: Action Fighter, Dunk Shot, Magic Johnson's Fast Break, Spot, Sea Bass Fishing, World Darts and Xenon - New working clones: Alex Kidd (set 1), SDI (317-0027), Super Hang-On (alt), Super Hang-On Limited Edition, Time Scanner (317-0024) - New clones: Tazz-Mania (Galaxian Hardware) - FD1089 CPU . 100% accurate emulation of FD1089A . FD1089B should be considered 99% (need to be verified with more CPUs) . Complete tables provided for Action Fighter (317-0018), Dunk Shot (317-0022) and Aurail (317-0168) . Partial tables for Enduro Racer, Alex Kidd, Time Scanner (317-0024), Alien Syndrome (317-0033, 3 versions) and SDI (317-0027) Actual working CPUs are needed to obtain full tables - Arcadia System . Fixed DMACON register writing and CIA registers reading . Added horizontal scrolling for playfield . Improved vblank/video update timing and coin handling . Fixed area filling mode in blitter and attached sprites rendering . Kludged World Darts to work (adding sound emulation shoud make kludge obsolete) - Sega System 16, 18, Out Run, X-Board . Unified all memory mapping code and moved into machine\segaic16.c . Unified all tilemap, sprite and road code and moved into vidhrdw/segaic16.c . Improved documentation on the various register layouts on the video side - stv.c: More fixes (see Sea Bass Fishing) - Dunk Shot: Correct graphics and hooked up controls - Enigma 2: Fixed colours - Ghouls'n Ghosts (Mega-Tech): Changed rom loading - Out Run: Correct clock speeds and palettesize - Polaris: Improved sound (real board differs from Schematics) and fixed cloud scroll direction - Super Hang-On: Correct palettesize - SDI: Hooked up in version (317-0027) - Time Scanner: Fixed sprites in version (317-0024) - Turbo Out Run: Fixed road, correct clock speeds and palettesize - Dipswitch fixes in Dunk Shot and Super Hang-On - MAME32: Taken out the resource file from the Windows objs when UI=1 - Compiling: Fixed the M6509 core to appease the new compiler 0.90 - New games: The Crystal of Kings, Evolution Soccer, Kabuki-Z, Progear and Riot - New Working games: Hot Smash, Karaoke Quiz Intro Don Don, Prebillian, Super Qix and Virtual Mahjong - New Non-Working games: Arrow Flash and Buccaneers - New clones: Astro Fire, Great Gurianos, Rad Mobile and Ultimate Mortal Kombat 3 - Support for SE3208 CPU and VRender Zero sound (Crystal of Kings and Evolution Soccer) - HD6309 CPU: Fixed undocumented bit test opcodes - Hyperstone CPU: Fixed delay branching and timer - I386 CPU . Fixed algorithm for identifying 32-bit segments . Near branches now won't force a segment reload . Implemented RET imm16 under 16-bit mode . Fixed SBB instruction . Fixed LDS, LSS, LES, LFS, LGS under 32-bit mod . Partially implemented LLDT, LTR, CLTS, WAIT and MOV dr instructions - I8x41 CPU: Fixed crash in core reading uninitialized internal RAM - NEC V20/V30/V33 CPU: Fixed a disassembler bug - Discrete sound: Added DISC_OP_AMP_FILTER_IS_BAND_PASS_1M filter - stv.c: Fixed various DMA bugs and clock speeds. Improved the SCU emulation - taito_f3.c: Fixed sound banking - Astro Fighter: Fixed the Astro Battle clones - Atari Baseball & Football: Re-wrote snd driver to use component value only code and new BAND_PASS_1M filter - Bay Route: Added the missing rom to the (Japan, FD1094 317-0115) version - Bubble Bobble: Simulated the 68701 MCU (removed 68705 CPU), emulated protection device, fixed clock item behaviour, enemy movement should now be correct and supported coin lockout - Cotton: Added the missing rom to the (US, FD1094 317-0180) version - Desert Breaker: Fixed sound with new roms - Enigma 2: Fixed colors and cocktail support - Final Star Force and Ganbare Ginkun: Correct palettesize - Gaplus: Fixed game to use its own samples - Hot Smash: Fixed sample playback and improved MCU simulation (still incomplete) - Karaoke Quiz Intro Don Don: Improved the irq engine - Oishii Puzzle: Fixed inputs - Prebillian: Fixed MCU simulation,inputs and sample playback - Rainbow Islands: Correct visible area - Super Qix: Added support for the I8751 MCU and repaired ROM code - The New Zealand Story: Correct Z80 CPU3 clock speed - Tokio: Adjusted PSG volume (YM2203) and fixed rom filenames - Treasure Island: Added roms from the overlay PCB (not used yet) - Virtual Mahjong: Fixed some SCU DMA bugs - Xenophobe: Fixed Player 2 and 3 inputs - Dipswitch fixes in Black Heart, Macross II, Rapid Hero, Task Force Harrier and Thunder Dragon 2 - MAME: Fixed memory leaking and added a check in debug builds - Compiling: C89, OpenVMS, VisualC++ and AMD64 CPUs compilers fixes 0.89u6 - NOTE: 0.89u5 was an internal release - New games: 12x Arcadia Systems games (Amiga) - New Working games: A.B. Cop, Flying Ball (Cassette), Racing Hero, Super Monaco GP, Thunder Blade, Wonder Boy in Monster Land and Wrestle War (Japan) - New Non-Working games: Alien Storm (Mega-Tech) and Super Real Mahjong P6 - New clones: 2x Astro Battle and Shinobi - FD1094 CPU: New dumped CPUs for Wrestle War (Japan) - I8086/I80286 CPU: Fixed disassembler calls, so that instructions are not falsely disassembled as 32-bit - I386 CPU: Added SMSW opcode, fixed LMSW opcode and disassembler marked retf instruction as DASMFLAG_STEP_OUT and list segment prefixes when appropriate - MC8123 CPU: Expanded the decryption tables - S2650 CPU: Updated core to count more accurate clock cycle counts. Clock speed fixes in many games. - x86 Dynamic recompiler: Added macros for pushfd() and popfd() - Atari Audio Board II: Fixed memcpy in sndhrdw\atarijsa.c - Irem GA20 sound: Fixed 64-bit crash - Namco 54xx sound: Improved Noise Generator. Removed samples in Bosconian, Galaga, Pole Position/II and Xevious - cvs.c: Fixed the clock speed of the 2x S2650 CPUs - decocass.c: Added a NOP dongle (returning the data read from cassette as is) to machine\decocass.c - making Flying Ball playable - namcos2.c: Adjusted C140 and YM2151 sound balance - nmk16.c: Added sprites priorities (still few problems with priority = 0) - segas16b and segaxbd.c: Cleaned up the math chip emulation (machine\segaic16.c), should be much closer now - segas18.c: Fixed shadows so they don't affect any VDP-drawn pixels - segas32.c: Minor cleanup and V60 and Z80 clock speed fixes - segaxbd.c: Better tilemap support (from segas16b). Correct clock speeds and palettesize - A.B. Cop: Improved road layer - B.C. Kid: Correct priorities and improved sound and interrupts scheduling - Acrobat Mission: Added background banking - Exzisus: Removed a rom patch - Gals Panic 3: Hooked up YMZ280B sound. Improved palette, inputs and backgounds 'decoded' - Ghouls'n Ghosts (Mega-Tech): Added new cpu1 rom - Jackie Chan: Hooked up YMZ280B sound. Fixed tile area identified (jchan2 now passes initial checks) - Line of Fire: Added guns (but it hangs at the end of the level) - Macross II: Fixed background - Mahjong Hyper Reaction 2: Fixed sound - Many Block: Added scrolls and fixed background gfx - The NewZealand Story: Re-arranged TNZS sets based on new information - Ninja-Kid II: Added decrypted MC8123 sound - Racing Hero: Improved background and road layer - Rapid Hero: Fixed background - Return of the Invaders: Cleaned up driver. Fixed M68705 clock speed - Super Monaco GP: Added better tilemap support. Fixed clock speeds and palettesize - Thunder Blade: Improved sprites and road layer - Toki: Fixed Z80 clock speed - Wrestle War (Japan): Fixed off-by-1 column scroll - Xain'd Sleena: Fixed NMI & FIRQ handling and clock speeds. Implemented GFX priority register/priority PROM. - Dipswitch fixes in B.C. Kid, Desert Breaker and Gals Panic 3 - Debugger: Added 'TRACEOVER' support and the new commands: - snap [], - gi[int] and - gv[blank] - SH2: Fixed bounds overflow 0.89u4 - New games: Desert Breaker - New clones: Alien Storm, Cotton, Jackie Chan in Fists of Fire, Jump Coaster, Shinobi, Tetris, Trivia and Wrestle War - FD1094 CPU: New dumped CPUs for Alien Storm (317-0147), Cotton (317-0180), Desert Breaker (317-0196), Tetris (317-0093a) and Wrestle War (317-0102). - I386 CPU: Added support for DASMFLAG_STEP_OVER and DASMFLAG_STEP_OUT flags - PPC603 CPU: Additional 64-bit integer related cleanups (Model 3) - Z80 CPU: Cleaned up core, removing the optional inexact emulation mode and the leading underscores from macro names to comply with C99 naming conventions - DECO Cassette System: Fixed Reset crash, added support for alt BIOS set and changed games to use generic unknown dips - jackal.c: Cleaned up driver - mikie.c: Fixed rom filenames and SN76496 clock speed. Cleaned up driver - Scorpion: Swapped sound1 roms - Steel Gunner: Fixed missing sprites - Dipswitch fixes in MVP and Scorpion - Fixed memory.c MAX BANKS problem - Artwork: Fixed bug with some games get turned red when using artwork - LISTXML/INFO: Fixed bug with Games that start with parentheses in their description show up twice (mmcamera) - Debugger: Fixed a history list overrun when the down arrow key is pressed when the history list is empty 0.89u3 - New games: A.B. Cop, Progressive Music Trivia, Racing Hero and Trivia Master - New Working games: Jr. Pac-Man (bootleg?) and Super Monaco GP - New Non-Working games: Daytona USA 2, Dirt Devils and Sega Bass Fishing - New clones: Blood Bros, E-Swat, Line of Fire, Scud Race, Virtua Striker 2 '99 and Virtual On 2 - FD1094 CPU: New dumped CPUs for A.B. Cop, E-Swat (Japan), Line of Fire (Japan) and Racing Hero - MC8123 CPU: Decryption of MC-8123B 317-0066 encrypted Z80 (altbeas2) - PPC603 CPU: Fixed FPU and some compiler related issues with >32-bit integers (Model 3) - Pokey sound: Make random number generator work better with recordings - Sega Model 3 . Preliminary 53c810 SCSI emulation . Added init and improved MPC105 PCI Bridge/Memory Controller emulation . Synchronized 'Virtua Striker 2' CROMs . Fixed missing roms in Sega Rally 2, Virtua Striker 2 '99.1 and Virtual On 2 . Driver and video cleanup - Sega System 16, 18 and Y Board . Created new machine\segaic16.c to hold non-video common hardware . Changed segaic_init_palette to take a number of palette entries . Preliminary multiply/compare implementation . Fixed reset bug when running 16B/18 games - Altered Beast: Added Z80 encrypted sound CPU to (Version 2) - Atomic Point: Hooked up YM2413 sound - Atomic Robo-kid: Fixed overdraw - Flower: Fixed remaining GFX issues - The Lost World: Added preliminary 53c810 SCSI emulation (download everything necessary to the Real3D stuff now) - Naughty Boy: Cocktail support - Pop Flamer: Cocktail support - Prehistoric Isle in 1930: Added coin counters - Superman: Fixed sprite map drawing (see vidhrdw\seta.c) - Super Monaco GP: Hooked up controls - Super Trivia Master: Fixed sound and palettesize - Clock speed fixes in Ark Area, Atomic Robo-Kid, Mutant Night, Ninja-Kid II, Omega Fighter and Super Trivia Master - Debugger: Trace in debugger now defaults to current active CPU if non specified 0.89u2 - New games: Poker Dice - New clones: Arabian Fight (Japan), Hunchback Olympic, Lucky & Wild, Metal Hawk, Ordyne (Japan), Scoprion, Steel Gunner and Super Monaco GP - FD1094 CPU: New dumped CPUs for Super Monaco GP (set 7) - Sega System 16A and 18 . Fixed many priority bugs . Fixed s16a end-of-spritelist marker . 8751 simulation improved . Backup ram hooked up . Dipswitch fixes and cleanups etc. . Added I8751 MCU to Altered Beast, Body Slam, Golden Axe, Quartet, Tough Turf, Wonder Boy III and Wrestle War . Added uPD7759 sound to Dynamite Dux, Flash Point, SDI and Tetris - aburner.c: Correct gfx2 roms order and addresses in all games - playch10.c: Fixed the filenames of the BIOS proms - renegade.c: Improved driver based on data from real MCU - yboard.c: Swapped gfx1 roms with gfx2 and correct palettesize - Commando: Fixed rom filenames of all versions - Frogs: Allowed game to use discrete sound to be used for tongue with samples for non-simulated sounds - Dipswitch fixes in Clutch Hitter and Ryukyu - Debugger: Fixed sound issue - Fixed VISUAL C compiling - MESS: Removed some obsolete code 0.89u1 - New Working games: Bloxeed, Flower, Laser Ghost, Moonwalker, Passing Shot, RyuKyu and Where's Wally? - New Non-Working games: Dead Eye, Harley-Davidson, The Lost World, Scud Race, Sega Rally 2, Star Wars Trilogy, Virtua Fighter 3, Virtua Striker 2 '98, Virtua Striker 2 '99, Virtua Striker 2 and Virtual On 2 - New clones: Bay Route, Scramble Spirits and Super Monaco GP - PowerPC 603 core support (Sega Model 3) - FD1094 CPU: New dumped CPUs for Alien Storm (World), Bay Route (set 2+3), Bloxeed, D.D. Crew (World, 4 Player), Line of Fire, Passing Shot, RyuKyu, Shinobi (set 2), Super Monaco GP (set 3) and Where's Wally? - Hyperstone CPU: Workaround for excessive RAM - I8051 CPU: Correct read/write memory and support for external IRQs (Moonwalker) - RF5C68 sound: Fixed a memory access bug (speech in D.D. Crew) - YM2151 sound: Disabled save states until the reason for the debug/symbol/map builds crashing is found - Sega System 16A . Hooked up column/row scroll . Reintroduced tilemap/text priorities . Correct audio Z80 clock speed . Updated DIPs and minor cleanups - Sega System 16B . Fixed column scroll . Fixed ROM bank mapping . Updated DIPs and minor cleanups - Sega System 18 . Fixed column scroll . Expanded memory mapping code . Fixed VDP priorities . Fixed ROM bank mapping . Removed coin lockouts . Updated DIPs and minor cleanups - megasys1.c: Fixed MSM6295 stereo sound - taito_f2: Added the TC0360PRI blending modes to the games with rotation layers. One of the blending modes is new and must be verified against a working board. - Alien Storm: Fixed Player 3 controls - D. D. Crew: Fixed column scroll and sound - Flower: Fixed colors - Frogs: Correct sample playing + new samples - Hyper Crash: Game now mostly works apart from controls - Laser Ghost: Hooked up controls and added crosshair drawing - Line of Fire: Correct roms addresses (does not work yet) - Liquid Kids: Added TC0360PRI blending modes (fish going in water in attract mode) - Michael Jackson's Moonwalker: Hooked up 8751 MCU in mwalk, mwalka and mwalkb - PuLiRuLa: Added TC0360PRI blending modes (crystals on level 2) - Quartet: Added column/row scroll (see title screen) - Shadow Dancer: Fixed ROM bank mapping crash - Where's Wally?: Hooked up controls - Dipswitch fixes in Atomic Point, Aurail, Bay Route, Bloxeed, D.D. Crew, Flash Point, Hyper Crash, Laser Ghost, Moonwalker, Passing Shot, Time Scanner, Where's Wally? and Wonder Boy III - CHDCD: Fixed small problem - Various cleanups and misc Compiler patches 0.89 - New Working games: Turbo Out Run (set 2 and 3) - New Non-Working games: Hyper Crash - New clones: Super Monaco GP - Namco CUS30 sound: Cleaned up the wavedata/sound command/RAM interface, put it all in a single function - Namco System 1 and System 86 update . Added a new function tilemap_draw_primask(). This allows a more intuitive handling of pdrawgfx(), and more layers to be used (up to 31, instead of just 5 - Namco S1 needed 8) . Fixed sprite handling and removed all the nonsense hacks from the video update . Made sprite/tilemap priorities orthogonal . Added support for visibility window, this fixes countless issues with partial video updates . All Namco System1 games use now Namco CUS30 sound, 8192 colors, a video frequency of 60.606060 Hz and all three M6809 CPUs use now the same clock speed . Better rom loading, closer to the hardware (though it uses more memory) . Improved the key custom emulation, shrinking it down to three basic types . Cleaned up input ports, using PORT_INCLUDE . Added more debug dip switches . Toggling the test mode dip switch is enough to enter test mode - no need to reset . Fixed bugs dspirit061gre, namcos1c070u5gre, namcosx36rc2gre, pistoldm061yel, splatter061gre and splatter061gre2 - Discrete sound update . Modified discrete core node inputs to use pointers to the data, instead of moving the data into the inputs at each step. This speeds up discrete emulation. Modified all current modules and drivers to use new code. . New discrete modules DISCRETE_555_ASTABL and DISCRETE_555_ASTABL_CV - Beraboh Man: Fixed inputs and DAC sounds - D. D. Crew: Improved inputs, all 4 players can now be used, although only the service coin works - Dangerous Seed: Fixed Namco logo - Face Off: Fixed DAC sounds - Frogs: Added sample support and removed the discrete tongue sound - Galaga '88: Added new user1 rom. Removed Galaga '88 (set 2), it was a hacked version - GP Rider: Improved sound - Jumbo Ozaki Super Masters Golf: Added floppy disk image - Pistol Daimyo: Fixed issues with bomb explosions and other random events - Rompers: Fixed intro - Thunder Ceptor: Change Namco sound to Namco_CUS30 - Turbo Out Run: Hooked up Nitro button - Wonder Momo: The Namcos System86 update introduces sprite/sprite priority issues - Fixed rom filenames in Cotton, Thunder Blade and Turbo Out Run 0.88u7 - New games: Dynamic Country Club (Floppy Disk) - New Working games: Alien Storm, Clutch Hitter, Cotton, D. D. Crew and Laser Ghost - New Non-Working games: Sukeban Jansi Ryuko - New clones: Altered Beast, beatmania complete MIX 2, Jyuohki, Scramble Spirits and Street Fighter Zero 3 Super Masters Golf, Time Scanner, Vanguard, Wizz Quiz and Wrestle War - Report bugs at Mametesters.org for any games running on the drivers segas16a.c, segas16b.c and segas18.c - FD1094 CPU: New dumped CPUs for Dynamic Country Club, Jyuohki, MVP, Scramble Spirits and Super Masters Golf - M6803 CPU: Modified core to use an internal memory map - bublbobl.c: Cleanup memory maps, input port etc. - rockola.c: Fixed input, clock and video frequency - system16.c: Splitted driver into segas16a.c and system16.c - system18.c: Splitted driver into segas18.c and system18.c - Alien Syndrome: Added N7751 CPU and DAC sound to the clones - Fantasy: Added sample support - Sasuke vs. Commander: Added Custom, 3x SN76477 and samples - Super Stingray: Fixed colours with new proms - Vanguard: Added sample support 0.88u6 - NOTE: 0.88u5 was an internal release. - New Working games: MVP - New Non-Working games: Bullet, GP Rider and Super Monaco GP - New clones: Flower, Golden Axe, Jyuohki, Plotting, Tiger Road, Turbo Out Run and WWF WrestleFest - Support for I8051/8052/8751/8752 CPU (Mission Craft) - FD1094 CPU: Further decryption improvements. New dumped CPUs for Altered Beast, Golden Axe, Laser Ghost, MVP, Moonwalker and Turbo Out Run - Hyperstone CPU: Fixed compile errors - SCU DSP: Finished flags in ALU opcodes and SR opcode: MSB does not change - New Windows debugger: Improved the drawing code on the Windows side so that the background color changes align properly (mostly noticeable when using the cursor in the memory view). - jalmah.c: More fixes - system16.c: Splitted driver into segas16b.c and system16.c - tait_f2.c: Support for extra effects and full 5 tilemap layer priority - Cotton: Video improvements, title screen looks better but game currently suffers from other issues - Crayon Shinchan Orato Asobo: Fixed highlight effect in game map - D-Day (Jaleco): Correct sprite decoding, DMA, sound, interrupts and controls - Flower: Added proms (not used yet) - Gun & Frontier: Shows all known effects (see the attract mode) - Metal Black: Transparent sun in 1st level and fixed boss who slides in under the bottom tilemap in 5th level. - Ninja Kids: Fixed priority problems - Ping Pong Masters '93: Cleaned driver - Ring Rage: Improved sound - Space Odyssey: Fixed input and dipswitches - Tinkle Pit: Fixed input - Title Fight: Added correct cpu1 roms to the (US) version - MESS: Added minor specific patch 0.88u4 - New games: Astro Chase, Boulder Dash, Bristles and Flip & Flop - New Working games: Cotton, Shinobi (set 3) and Woodpecker - New Non-Working games: Twin Squash - New clones: Alien Storm, Hot Rod, Jr. Pac-Man, 2x Raiden Fighters Jet and Wonder Boy III - Support for Max-A-Flex games - New Windows debugger: Misc updates - FD1094 CPU: Fixed a decryption bug (allow Cotton to be decrypted) - Hyperstone CPU: Added other CPU models (E1-16T, GMS30C2116, E1-32N, E1-32XT...) - PSX CPU: Updated core to show more registers - Discrete Sound System . Removed the memory mapping system from the discrete inputs . Added new easier to use input modules . Moved discrete sound code from drivers to sndhrdw . New discrete modules DISCRETE_INPUT_DATA, INPUT_LOGIC, INPUT_NOT, INPUTX_DATA, INPUTX_LOGIC and INPUTX_NOT - jalmah.c: Fixed protection, color and tile transfer emulation, preliminary sound in daireika, mjzoomin and urashima - nmg5.c: Fixed crash - sprint2.c: Fixed watchdog issues - system16/18.c: Various updates. FD1094 keys for Cotton, Moonwalker and Shinobi - vamphalf.c: Converted driver to use a 16-bit CPU version (E1-16T or GMS30C2116) - Nitro Ball: Fixed inputs - Sky Diver: Added proper watchdog, merged memory map, added mirroring and fixed coin input bug - Dipswitch fixes in Cotton, Nitro Ball and Moonwalker - Compiling: Fixed some errors 0.88u3 - New Working games: Liberator (set 2), Mission Craft, Super Lup Lup Puzzle and Tetris (317-0093) - New Non-Working games: G-LOC Air Battle, Galaxy Force 2, Power Drift, Rail Chase, Strike Fighter and Woodpecker - New clones: Gun Ball, Hot Rod, Meteorites, Raiden Fighters Jet, Street Fighter EX Plus and Yachtsman - New Windows debugger - Support for Sega Y-Board games: Only the driver file, no video has been ported yet so nothing works - E132XS CPU: Fixed addc, subc, mulu, muls and software opcodes. Added nested delays. - FD1094 CPU: More improvements. Key table format has changed. - jrpacman.c: Cleanup driver. Removed speed hack. - mermaid.c: Converted driver to use tilemaps, merged memory map and removed fake input port - seibuspi.c: Improveme SPI decryption - Hot Rod: Added new user2 rom - Liberator: Added correct 'latitude scaler' roms and proms - Mission Craft: Fixed bullets - Super Lup Lup Puzzle: Fixed title screen objects - Clock speed fixes in Cool Mini, Super Lup Lup Puzzle and Vamp 1/2 - Compiling: Various fixes to prevent crashes in X86-64 compiles - MESS: Added MESS specific CPU core (TX0_64KW / TX0_8KW) and fixed input types 0.88u2 - New Working games: Bonk's Adventure, Dynamite Dux, E-Swat and Professor PacMan - New Non-Working games: Born To Fight, Raiden Fighters Jet and Super Lup Lup Puzzle - New clones: Force Break, Hot Bubble, Raiden Fighters (Australia) and Superman - E132XS CPU: Some hyperstone debugger cleanups - FD1094 CPU: Improve decryption. Keys are now stored in the romsets - NEC V20/V30/V33 CPU: Fixed NMI handling - Discrete Sound System . Added discrete "tongue" sound effect to Frogs . Added to DISCRETE_555_ASTABLE an option to use quick charge diode (needed by Frogs) . Added to DISCRETE_555_ASTABLE an option to disable oscillation if R1 is out of circuit (needed by Invaders) . Modified DISCRETE_555_CC to discharge cap due to natural losses if there is no charging current (needed by Frogs) . Modified all current drivers to use new code (Atari Football, Canyon Bomber, Hit Me and Sky Diver) . Added new discrete module DISCRETE_555_MSTABLE (555 Monostable simulation) . Fixed bug in discrete code - astrocde.c . Professor Pacman works but fails 2 self-tests yet . Support stereo in Wizard of Wor, Robby Roto, Gorf and Professor PacMan . Fixed bugs in the Astrocade sound code . Switched astrocade sound to stream system . Added LEDs and coin counters . Fixed collision detection in all games . Added NVRAM handling to Robby Roto and Professor PacMan . All activecpu_get_reg() calls have been replaced with proper 16-bit Z80 port support through memory system - DECO Cassette, Mega Play, Mega-Tech, Nintendo Super System and PlayChoice-10: Moved gamename prefixes to end - namcos2.c: Fixed a few things - Crowns Golf: Correct rom names in all versions - Mighty Warriors: Added sprites buffer and palette brightness and fixed text tilemap scrollx offset - Steel Force: Fixed M6295 sound banking - Twin Brats: Fixed sound banking, changed visible area and service switch button and merged memory map - Twins: Changed I8088 to V30 and cleaned up driver - input.c: Fixed Joystick Axis problem - Clock speed fixes Bubble 2000, Cool Mini, Mission Craft, Sen Jin - Guardian Storm, Stagger I, Twin Brats and Vamp 1/2 - Dipswitch fixes in Bonks Adventure and Professor PacMan 0.88u1 - New Working games: B.C. Story, Clutch Hitter (US, 317-176), D.D. Crew, Flash Point (Japan, Original), Ping Pong Masters '93 and Twin Brats - New clones: Clutch Hitter (Japan, 317-0175), Laser Ghost (317-0165, bad dump?), Laser Ghost (317-0166), Michael Jackson's Moonwalker (Set 3, 317-0157) and Senkyu (Japan, set 2) - FD1094 CPU: Improve emulation. More sets run now. - i960 CPU: Fixed errors in atanr and logepr opcode - 1942.c: Merged memory maps and fixed inputs/dips per manual - 1943.c: Converted 1943 to use tilemaps, merged memory maps, fixed inputs/dips based on manuals. - blueprnt.c: Tilemap conversion, merged memory maps, fixed inputs/dips based on manuals, fixed clocks per schematic (sound pitch now higher), correct 2H/4H clocks and fixed rom names per schematic. - gunsmoke.c: Converted Gunsmoke to use tilemaps, merged memory maps, fixed inputs/dips based on manuals and removed GUNSMOKE_HACK and fake dips - namconb1.c: Fixes priority in the games - namcos2.c . Screen blanking (window) support . POSIRQ support . Sprite-tilemap orthogonality rendering . No longer requires game-specific hacks . Hack for Metal Hawk tile size is no longer needed - nitedrvr.c: Removed gear/track display hack, merged memory map, fixed clock and rom names per schematic - jalmah.c: Improve protection. Now you can boot in Urashima Mahjong, Mahjong Channel Zoom In and Mahjong Daireikai - Mighty Warriors: Fixed scroll offset and rain priority - Steel Force: Added EEPROM support - Wonder Boy III: Fixed missing sound - Clock speed fixes in Blue Print, Saturn and Twin Brats - Dipswitch fixes in B.C. Story, Blue Print, Gun.Smoke and Night Driver - MAME32: Added 'Skip validity checks' to the Interface Options 0.88 - New games: Gallop Racer 3, Selection, Sonic Boom and Tank 8 - New Working games: BMC Bowling, F-1 Grand Prix Star II, Field Combat, Mighty Warriors and Twins - New clones: Astro Blaster, BC Story, 3x D.D. Crew, Dynamite Dux, E-Swat, Skelagon, Super GX, Tetris, Trivia, Virtua Formula and Wonder Boy III - FD1094 CPU: Emulation of Sega FD1094 encrypted 68k CPUs - several encrypted games boot now - i960 CPU: Fixed bug in movl opcode - AY-3-8910 sound: Added save state support - Q-Sound: Added save state support - YMF292-F SCSP sound: Fixed undersized array causing stack trashing - Discrete Sound System . Cleanup code to make it more readable . Added new Discrete modules (DISCRETE_NOTE, DISCRETE_INTEGRATE and DISCRETE_OP_AMP_TRIG_VCA) . Polaris: Complete sound rewrite to use new component value code. Hooked up watchdog timer . Added macro to calculates the pulse time of a 74LS123 or LS123 - Watchdog . Changed watchdog to allow it to start at machine run start . New functions to enable/disable and initialize the watchdog in game . Added watchdog and new WATCHDOG_VBLANK_INIT in Dominos, Sprint1/2, Drag Race, Canyon Bomber and Night Driver . Changed watchdog to use new WATCHDOG_VBLANK_INIT in Fire Truck, Monte Carlo, Super Bug, Pac-Man and Polaris . Changed to new WATCHDOG_VBLANK_INIT in Gals Panic (set 2) an (set 3) - CPU clock speed . Added a new function to change CPU clock speed in game . Added proper CPU clock frequency change when going in/out of service mode in Fire Truck and Monte Carlo - Memory system . Added explicit casting to the memory handler width when computing the shifted data/mask values for read/write handler . Added memory_install_read/write8/16/32/64_matchmask_handler functions to allow dynamic installation of match/mask (AM_SPACE-style) memory ranges . Changed masking behavior for match/mask pairs so that an AM_SPACE with an AM_MASK does not expand the explicitly-specified mask value . Changed dynamic bank assignment to always assign a bank if you have explicitly specified a mask value via AM_MASK - Input Port System . PORT_INCLUDE() works the same as before . PORT_MODIFY("tag") allows you to modify any given input port by specifying its tag . Any PORT_BIT() entries that you put after a PORT_MODIFY will nuke any matching entries in the previous definition, allowing you to overwrite them with new stuff . Added readinputportbytag_safe() and port_tag_to_handler8(), 16() and 32() . Modified exidy.c to use the new features as a testbed - model2.c: Added working timer support (including timer IRQs) and port 0 switching (player 2 start works in several games now). - system16.c: Adjusted FM/ADPCM balance - Batsugun and Knuckle Bash: Added MSM6295 sound via command tables - BC Story: Added 32k protdata rom - Crazy Balloon: Added music - Darius: Adjusted FM/ADPCM balance - Hard Drivin': Fixed undersized array causing memory trashing - House of the Dead: Removed hacks - Mahjong Hyper Reaction 2: Fixed sound loading - Land Maker: Fixed sound loading - Last Bronx: Removed hacks - Mario Bros.: Added save state support - Mayday: Fixed inputs - Ping Pong Masters '93: Updated driver, game still not playable - Quiz Do Re Mi Fa Grand Prix2: Fixed broken code - Renegade: Added missing 'break;' to MCU simulation - Steel Force: Added rows scroll, fixed attract mode scroll and sprite glitches - Clock speed fixes in Batsugun, Brick Zone, FixEight, Hard Head 2, Knuckle Bash, Rough Ranger, Spark Man, Star Fighter and taito_f3.c - Dipswitch fixes in Puzzle Club (Yun Sung) - Voodoo GFX: Fixed broken code - Compiler: Fixed some C99 related issues - CHDMAN: Fixed cut and paste error - Added runtime option to disable validity checks 0.87u4 - New games: Puzzle Club and Pop Bingo - New Non-Working games: Funny Strip, Mighty Warriors, Ping Pong Masters '93, Twin Brats and Twins - New clones: Explosive Breaker, Street Fighter EX 2 and Top Racer - FD1094 CPU: Added code to decrypt FD1094 CPU 317-0092 in states 0x00-0xff - I8086 CPU: Correct CMPSW instruction - Atari / Midway drivers: Fixed u3 crashing (Atari CoJag, Aztarac, BeatHead, Food Fight, Midway V/Zeus-Unit and Seattle) - Hyper Neogeo 64: Improve rendering, 3d graphics can now be seen although emulation is still incomplete - Multi 5/Puzzle Club: Correct cpu and sound clock speeds - Changes the static function implementations in memory.h to inline 0.87u3 - New games: QB-3 (prototype) and Space Raider - New Non-Working games: Beat the Champ and Oriental Legend Super - New clones: '99: The Last War, Atlant Olimpic, Ginga NinkyouDen, 3x Killer Instinct, Operation Thunderbolt, Space Invaders Part Four, 2x Tron and War of the Worlds (color) - 68000 CPU: Added some hooks to C 68k core in preparation for Sega decryption updates - CCPU CPU: Completely rewrote core and disassembler to be much simpler - cinemat.c . Added star twinkle effects (not really visible without Aaron's future update to vector.c) . Rewrote sound routines for all the games based on schematics and Zonn's documentation . Cleaned up and fixed input ports for all the games . Now require the CCPU PROMs for all the games . Added newly dug-up prototype game QB-3 . Barrier: Added samples sound . Boxing Bugs: Added color support and samples sound . Demon: Fixed sound that was seriously wrong . Solar Quest: Added square wave music and 64-level support . Star Hawk: Added samples sound . War of the Worlds: Added color hardware version and samples sound - dgpix.c: Improvement to (se)xfiles driver, now shows some startup screens - exidy.c: Merged memory maps, removed RAM that wasn't actually present on the real boards and fixed inputs - jalmah.c: Fixed driver (clock speed etc.) - International Cup '94: Improve sound - Namco System FL, NB2 and Sytem 2: Fixed advanced ROZ chip, added tilemap abstraction and merged memory maps - Dragon Blade: Fixed ROZ system (no more glitches) - Mach Breakers: Improved driver and removed game specific ROZ hacks - Recalhorn: Improved sound - Sport Fishing 2: Added harddisk file - GNET: Hooked up GNET BIOS roms so boot screen shows - Compiler: Massive compiler warnings cleanup for GCC 3.4.2 0.87u2 - New games: Raiders - New Working games: FixEight (bootleg), Rougien and Title Fight - New clones: Crazy Climber 2, Dark Edge, Dynamite Deka 2, Eagle, Farmers Rebellion, FixEight, Mazer Blazer, Nibbler, Pengo, Space Attack, Title Fight, Virtua Fighter 2 and Zero Team - i960 CPU . Added spanbit . Fixed error noted in spanbit and scanbit . Added non-queued interrupts to support games with the interrupt table in ROM . Added the ability for read/write handlers to declare themselves "noburst" . General cleanup of the interrupt handling to remove duplicated code - model2.c . Added calls to i960 noburst support for the timer and interrupt control registers . Fixed non-32 bit writes to the interrupt registers . Fixed serial hardware mapping . Fixed interrupt register handling . Fixed issue on big-endian machines . Added framework so the DSP program uploads are now handled correctly . Updated game status with latest knowledge - C352 sound: Adjust sample rate - cvs.c: Correct screen size - vamphalf.c: Added EEPROM and flipscreen to all games - Atari Soccer: Added sync prom - Behind Enemy Lines: Added EPL Productions co-credit - Desert Tank: Added Martin Marietta co-credit - DownTown: Fixed analog port - Exterminator: Fixed analog port - Gladiator: Added proms - Hard Head: Added AY-3-8910 and Custom sound - House Of The Dead: Added temporary hack to keep game from freezing - Last Bronx: Boots now - Mazer Blazer: Added sound proms - Raiden Fighters 2 - 2000: Improve the SPI sprite decryption - Rougien: Fixed gfx banking - Sky Target: Fixes the colors and hanging - Zero Gunner: Patch for non crashing - Compiler: Fixed some warnings - Added MAME_VALIDITYCHECKS macro - Win32: Changed the stat() call to use Win32 equivalents 0.87u1 - New games: Apache 3, Cycle Warriors and Round Up 5 - New Non-Working games: 26 Sega Model 2 games + 10 clones - New clones: Painted Lady (Splash) - Support for Sega Model 2 games (Daytona USA, Manx TT, Virtua Cop...) . Added 32-bit access methods for char and tile RAM (SegaIC24) - Support for Tatsumi games (Apache 3, Cycle Warriors and Round Up 5) - i960 CPU . Fixed some errors in interrupt handling . Solves corrupt graphics in fvipers and crashes in fvipers, schamp and dynamcop . Added nor, addc, subc, atanr, sinr, cosr, tanr, atanrl, logrl, sinrl, cosrl, tanrl, logepr, cvtri, scanbit, NAND, EDIV, SCALER, SCALERL, ROUNDR, ROUNDRL, EXPRL, MOVRE, CPYSRE and REMR. . Added hack to divo so divide by zero doesn't crash MAME (some games read back 0 from the not-yet-existing DSP and do this). . Fixed cmpr and cmprl - they were comparing garbage instead of the correct registers . Fixed stt to only store 3 words instead of 4 . Rewrote flushreg, it was *totally* wrong before and HOTD now runs, among others . Added the new opcodes to the disassembler . Improve the disassembler . Added disassembly for movrl . Added parens for the compiler warning - Hyperstone CPU: Fixed I/O addresses - ZN1/ZN2: Fixed big endian - tilemap.c: ROZ and RGB_DIRECT can be used together now - Grand Champion: Small sound fix - Recalhorn: Added default EEPROM to prevent crash. - Raiden Fighters 2 - 2000: SPI decryption improvements - Sotsugyo Shousho: Fixed result screen, zeroes don't appear at all. - Tokimeki Mahjong: Fixed some gfx - Vamp 1/2: Removed I/O hack - Yumefuda: EEPROM emulation etc. - Dipswitch fixes in Dyna Gears and Yumefuda - INP: Analogue ports are only read/written now if the port is actually analogue - Compiler: Fixes for VISUAL C and C99 0.87 - New games: Miss Bingo and Truco Clemente - New Working games: Command War, Paint & Puzzle, Recalhorn, Super Pang (Japan), Wizz Quiz and Vamp 1/2 - New Non-Working games: Alien Command and Schmeiser Robo - Hyperstone CPU . Added "undefined" C flag to shift left, interrupts-block for delay, LDW.S and STW.S instructions . Fixed get_emu_code_addr . Fixed floating point opcodes - Support for 16 joystick buttons - mappy.c: 8-way input fix for some games - seibuspi.c: Background decryption improvements - taito_f3.c: Fixed sprite renderer with Recalhorn game - Cops'n Robbers: Implements the LED - Mr.TNT: Fixed colours (verified to use pacman proms) - Paint & Puzzle: Improvements - game is almost playable - Rohga: Improvements - graphics emulation is complete but problems with the priority register - Strike Bowling: Fixed res_net.h related crash - Super Pang (Japan): Set was decrypted - game now working - Vamp 1/2: Many improvements - first working hyperstone based game - Yumefuda: Patched eeprom check, fixed graphics bankswitching and added sound - Wizz Quiz: M6803 cpu, correct rom addresses and added missing proms - World Cup '94: Preliminary MCU emulation - hangs in various places - Video size fixes in Command War, Cool Mini, Mission Craft and Vamp 1/2 - Video frequency fixes in Nitro Ball, Rohga and Wizard Fire - Dipswitch fixes in Bonk's Adventure, Wizz Quiz and Yumefuda 0.86u5 - New games: Exciting Soccer II and Multi 5 / New Multi Game 5 - New Non-Working games: Command War (prototype) and Recalhorn (prototype) - mame.c: Activated the validity check (slowdown the game start). To changed this, checkout the Mameinfo-Source! - MESS: Cleaned up some related code - Exciting Soccer II: Improve protection handling - Chelnov: Fixed inputs - Cross Pang: Correct MSM6295 clock speed - Drakton: Fixed dipswitches - Hanakanzashi: Fixed dipswitches - Rabbit: Improved inputs - Rong Rong: Fixed dipswitches - Subs: Fixed 'Language' dipswitch - Tokimeki Mahjong Paradise: Improved inputs 0.86u4 - New games: Fighting Basketball and Hot Blocks - Tetrix II - New Non-Working games: Paint & Puzzle - New clones: Street Fighter II' - Hyper Fighting (World 921209) and Tetris (Japan, B-System, YM2203) - I8088 CPU: Hot Blocks - Tetrix II - M37710 CPU: Added support for externally-pulsed timers (Prop Cycle uses this to read the pedals) - hng.c: Added preliminary background zoom - kaneko16.c: Reorganised and cleaned up driver and splitting protection related code into a separate file. - seibuspi.c: Improvements to SPI decryption - Dynasty Wars: Added new roms (ID 01269) - Hydra: Fixed broken controls - Lovely Cards: Converted to use tilemaps and fixed tile rendering, the tile ROM is not a bad dump, the gfx routine was bad! - NCV2: Added tile flipping - Rabbit: Hooked up EEPROM - Star Wars Arcade: Added full sound - Tokimeki Mahjong Paradise: Some improvements - Misc name changes (MegaPlay to Mega Play...) - Dipswitch fixes in Beast Busters and Gal's Panic 3 0.86u3 - New clones: Zero (bootleg of Defender) and Marvel Vs. Capcom: Clash of Super Heroes - New input system: Fixed for the random key mappings bug and port scale - H8/3002 CPU: Fixed btst #imm, @Rn instruction - it was giving reversed results, which crashed ncv2's MCU program - C352 sound: Many fixes to wave start/end/bank handling and added chain mode support - Hyper NeoGeo64: More improvements. A hack can be downloaded extra - CPS3: Converted some CD images to CHD - Donkey Kong: Added new samples set - Donkey Kong Jr: Additional samples - Hard Drivin': Brake pedals now work correctly - Namco Classics Collection Vol.1/2: Added H8/3002 MCU and C352 sound. Games are now fully playable with full sound and music. - Ozon I: Fixed black squares - Starblade: Restored polygon drawing - The Simpsons: Correct Z80 and YM2151 clocks - Thunder Dragon: Ported RAINE hack to MAME (download extra) - Video Vince: Added 'Tilt' - CHDMAN update (download extra) 0.86u2 - New games: 18x new Mahjong games - New Non-Working games: Fatal Fury: Wild Ambition, Roads Edge and Samurai Shodown - New clones: Street Fighter EX 2 Plus, Dungeons & Dragons: Tower of Doom and 14x Mahjong clones - New input system: Turned off auto-center in some games - M37710 CPU: Added analog and digital I/O port support and LDB absolute and DIV direct opcodes. Rewrote the RLA instruction. Pretty much everything was wrong with it including the result, flags, and cycle count. Fixed disassembly for RLA. - Added word-wide flash ROM support found on Konami "Beat the Champ" PCB - 1413M3 custom chip (Mahjong games): Added some process and definitions. Adjusted the interrupt of drivers using the 1413M3. So, some titles are broken. - HyperNeogeo64 emulation improvements (need more MMU emulation) - Double Point: Added missing button - Dragon Bowl: Fixed Dragon Bowl sprite colours with new set - Field Goal: Improved colours with correct resistor values - Gomoku: Fixed sound - Mahjong Focus: Fixed crashes because of nested NMIs (ID 02394) - Mahjong Hana no Momoko gumi: Added font process routine - Musoubana: Added highcolor process routine - Otachidai no Okite: Fixed screen misalign in attract mode - Pastel Gal: Rewrote driver and drawing routine - Pairs (Nichibutsu): Fixed inputs - Taisen Quiz HYHOO /2: Changed key mapping and fixed title screen of hyhoo2 - nbmj8891.c, nbmj9195.c and niyanpai.c: Changed drawing routine - Dipswitch fixes in Boomer Rang'r, Field Goal and Touchdown Fever 0.86u1 - New Working games: Drakton and various Namco System 22 games - New Non-Working games: Diamond Derby (2 sets), Super Crown Golf - New clones: Ray Storm, Rival Schools, Wing War - New input system: Some input fixes - H8/3002 CPU: Fixed endianness problem - M37710 CPU: Added ROR B, LDB direct indexed, MPY stack relative and DIV direct opcode - TMS32025 CPU: Fixed DSP math bugs - gaelco3d.c: Added sound - namcos21.c: Added 2x TMS32025 CPUs - namcos22.c . Input ports mapped for most games . TMS32025 DSP communications RAM latch mode hooked up; fixes graphics for many titles . Texture banking for old hardware hooked up . Preliminary dynamic lighting for system22 - Imago: Hooked up starfield and background tilemap and fixed colours - Fixed some bugs in Tube Panic, Namco S12, Zero Point etc. - Compiling: Substituted isnan() for inunordered(), which is only available in C99. Fixed a few C89 warnings about an extra comma at the end of enums. Updated the expat code to 1.95.8 - Dipswitch fixes in Drakton, Killer Instinct 1/2, namcos21/22.c and Street Heat 0.86 - New Non-Working games: Cool Mini, Cool Riders, Gradius 4, GTI Club, Midnight Run, Pit Boss, Racing Jam, Silent Scope, Silent Scope 2, Tatakae! Big Fighter, Thrill Drive and Winding Heat - New clones: Field Goal (different) and Racing Jam: Chapter 2 - Support for PowerPC 403 CPU (Gradius 4, GTI Club, Silent Scope...) - Hyperstone CPU . Interrupts after call and before frame are prohibited now . Emulation of FCR register and floating point opcodes (preliminary) . Added generic registers decode function, interrupts and writeback to ROL . Added C/N flags calculation in add/adc/addi/adds/addsi and some shift opcodes . Fixed e132xs_xm, MOV, RET, RET/FRAME, return (S flag), ROL/SAR/SARD/SHR/SHRD/SHL/SHLD, ST and XX/XM opcodes . Fixed execute_trap(), fetch, SET_RS macro and I/O addressing . Some debbugger and other fixes - M37710 CPU: Data bus is actually 16 bit, not 8. Added XAB, PLB, and ROLB opcodes. Fixed saving of status register on interrupts, errors in PHB, PHT, PLT and ANDB opcodes, IRQ dispatch errors and various get_info. - C352 sound: Remove debug printf that accidentally snuck in - Drakton: Added missing roms - Top Speed: Adjusted volume balance - Virtua Racing: Many improvements - jalmah.c: Driver update. Some games are *almost* playable. - namcos22.c: All CPU clocks changed to measured-by-Guru values, Handle the changed M37710 bus width and temporarily disconnect shared RAM. - seibuspi.c: Improved (but not yet correct) tilemap decryption and added preliminary sprite priority support - vamphalf.c: Correct clock speeds and added dipswitches - Fixed some Multisession win32 bugs 0.85u3 - New games: Field Goal and Robo Wres 2001 - New Working games: Jumping Pop and U.S. Classic - New clones: Robo Wres 2001 (bootleg) - New input system: Many input port cleanup's - Athena: Fixed music tempo - City Bomber: Improved sound balance - Hana Awase: Fixed visible area and controls - Jumping Pop: Added missing gfx rom and sound - Nyan Nyan Panic: Improved sound balance - Return of Lady Frog: Added preliminary sound and fixed numerous problems - Tapper: Fixed sound board error - Top Speed: Improved sound balance - U.S. Classic: Fixed colors - suprnova.c: Improved video performance - Bugfix to the zlib code - Dipswitch fixes in Jumping Pop, Tapper and st0016.c 0.85u2 - New games: Twin Cobra 2 (World) - New Non-Working games: Virtua Fighter and The Return of Lady Frog - New clones: Counter Run (bootleg set 1) and Twin Cobra 2 (US) - Support for M37710 CPU: Namco System22 games - New input system . Renamed PORT_CENTER to PORT_RESET to more accurates describe what it does . Added PORT_CENTERDELTA(x) to control the autocentering behavior . Turned off autocentering by default in Destroyer, Super Breakout and Warlords. There are probably others that should have this as well. Please post on www.mametesters.org if you have suggestions. . Fixed a number of recent errors introduced into the input port definitions of several drivers . Added conditional coinage to Snow Bros . Fixed backwards controls in Crazy Kong - Sound mixer: Fixed bug that prevented the mixer from loading data unless all channels had been modified - jalmah.c: Fixed various stuff, including suchipi booting, improved the video emulation a bit & attempted to add controls - namcos22.c: Updated driver to use preliminary M37710 core, but it doesn't do anything useful yet - The Return of Lady Frog: Added 32k protdata rom - Virtua Racing: Added missig roms (road emulation) - Removed the static MAX_DATAFILE_ENTRIES define, by retrieving the game count at runtime - Dipswitch fixes in Beast Busters, Counter Run and Snow Bros. 0.85u1 - New Non-Working games: Phraze Craze, Tic Tac Trivia, Trivia Whiz and Trivia Whiz II - New clones: Gold Medalist (alt), Party Time: Gonta the Diver II and Versus Net Soccer (ver JAB) - New input system . Fixed input port definition errors in bwidow, galaxian, megasys1, taitosj and tnzs . Conditional DIP switches in rallyx, mcatadv and galpanic . Changed all the analog mapping defaults back to 'keyboard' as the default values were confusing people. . Fixed loading of ctrlr files so that they actually take effect now . Fixed bug preventing saving of lightgun control changes . Added the ability for analog axes to return "invalid" as a value from the OSD layer, allowing them to dynamically disable themselves. Using this feature, the Windows version now autodetects analog versus digital axes and dynamically disables the analog values if it thinks you are using a digital axis. Note that this even works if you have a "switchable" gamepad. - 720': Changed controls to use an analog joystick instead of a dial so that the original controller motion can be replicated. - Status trivia games: Fixed colors in Hangman, Quadro Quiz II, Super Triv II, Super Triv III, Triv Quiz, Triv Two and Triv Four - Debugger: Fixed crash when using F10 with the i960 core - MESS: Cleaned up some #ifdef MESS and united the two definitions of my_stricmp - Dipswitch fixes in Caveman Ninja, Edward Randy and Galaxian 0.85 - Re-added games: Columns II: The Voyage Through Time (Japan) - New input system . Added feature to the general input settings so that if you hit Esc to cancel setting a new input sequence, it toggles between "None" (old behavior) and the default. . Renamed the paddle/adstick/pedal/dial/trackball/lightgun default device selection options to prevent naming conflicts . Fixed bug with new command line options when using -createconfig . Fixed bug that prevented default controls that were set to "None" from saving/restoring properly . Changed the way the remapping works in the ctrlr .cfg files so that it works more like the way the old system did . Fixed load order for ctrlr files so that they don't stick in the default.cfg if you switch between ctrlrs - Asterock: Added conditional dipswitch support for the special Coin Mode - Capcom Bowling: Change to M6809E CPU and fixed YM2203 sound balance - Final Lap R and Speed Racer: Correct gfx3 roms order - Rampart: Hooked up player 3 trackball - Mappy: Fixed crashes in the new dipswitches - Mahjong games: Added new port type IPT_OTHER to use for controls that don't map in a standard way. - Superman: Fixed frame rate to match real PCB - listxml: Added sourcefile attribute to the output - MESS: Added some MESS-specific additions to the new input configuration code - Debugger: Fixed memory access for 64-bit CPUs - Dipswitch fixes in Cabal and Double Point. Added conditional coinage to a number of games. 0.84u6 - New games: Columns II: The Voyage Through Time - New clones: Capcom Bowling (set 4), Fax (alt. questions), Le Bagnard (set 2), Ms. Pac-Man (with speedup hack), PuckMan (Japan set 1 with speedup hack) and Pac-Man (Midway, with speedup hack) - Removed games: Columns II: The Voyage Through Time (Japan) - New input system . Disabled input to the game while the user interface is in active use (prevents keypresses from affecting the underlying game). . Joysticks now no longer show up unless you specify -joystick. And lightguns should work properly as absolute devices. . Added a command line parameter to control which joystick axes are considered digital. . Improved handling of interpolation for analog ports so that they don't wrap around and cause artifacts. . Made it possible to assign game-specific inputs to "None", effectively disabling them. . Added support for conditional dipswitch settings. This allows for multiple equivalent entries but with different text depending on the state of another dipswitch. . Added groupings to the master controls list so that the list size is not so unwieldy. . Added core-level support for the previously only Windows-supported controller files. . Added several new command line options to assist in the automatic enabling of analog controls. - namcofl.c: Fixed sprite vs. tilemap priority and sprite vs. tilemap positioning for the FL games. - Fixed Williams coin inputs. - Arch Rivals and Pigskin 621AD: Hooked up 49-way joysticks (see scheme in drivers\mcr68.c) - Colony 7: Fixed dipswitches - Defender/Stargate: Removed hacky cheat controls - Pacman/Ms Pac Man . Removed existing speedup cheat hack from Pacman/Ms Pac Man as the way it was implemented in MAME is NOT how it was implemented in the arcades. . The new hacked versions do not let you control the speed of the game with a button; the game is always fast, and Pac Man is faster than the ghosts. . Added a fake DIP switch to control the equivalent of the hardware version of the speedup hack. - Removed PORT_CHEAT from a number of drivers and documented the cheats in the port names. - Added several more default strings and some MESS-specific fixes. - Compiling: Fixed several makefile errors - Dipswitch fixes in Avalance, Colony 7, Fairyland Story, Levers, Las Vegas Girl, Shackled and Zero Zone 0.84u5 - NOTE: 0.84u4 was an internal release - New games: beatmania 6th MIX - New Non-Working games: Champion List II, Harem, Long Hu Bang, Puzzle Star, Virtual Bowling and Xing Yen Man Guan - New clones: Altered Beast, Bloxeed, Chuugokuryuu, Dunk Mania, Flashgal, Gals Panic, Mille Miglia 2: Great 1000 Miles Rally, High Impact Football, Jyuohki, Last Fortress and Rad Rally - Re-added games: Sengoku 3 and Zupapa! - New input system . Revamped most of the input and input port system. All input APIs are now unified . Added new set of simpler APIs . The ports configuration has changed . Allowing to add any OSD-specific UI input ports . Added 32-bit port read handlers and extended input port internals to 32 bits . Added a user-configurable autocentering property - Changed the format of .cfg files to use XML. Delete all old .cfg files! - Preliminary NEC V810 core (Mayjinsen, Mayjinsen 2 and Joryuu Syougi Kyoushitsu) - H8/3002 CPU: Fixed the timer start register. This improves the music tempo for Namco System 12 games. - I386 CPU: Improved i386 disassembly format - M6502 CPU: Fixed disassembly in mirrored regions - TMS34010 CPU: Fixed memory crash - Pokey sound: Fixed behavior in the ALLPOT handlers for the POKEY when held in reset - Save State: Added generic support for save states on games using the generic bitmap video hardware. - dkong.c: Fixed incorrect graphics decode - megasys1.c: Fixed input ports - namcos12.c: Hooked up NVRAM correctly - zn.c: Improved QSound in ZN games by fixing rom loading - st0016.c: Added 4bpp/8bpp tilemaps - Rabbit: Significant improvements - Strike Bowling: Improved colors - Clock speed and sound volume changes in Air Buster, Crime Fighters, Dark Seal, Escape Kids, Shadow Force, The Simpsons, Toki, Vapor Trail, Vendetta, X-Men, ddragon.c, mitchell.c, namcos1.c, namcos2.c, nemesis.c and rohga.c - Fixed the mixer code so it doesn't crash if the OSD layer returns an error. - Added function to calculate outputs of color circuits where the hardware consists of open collector PROMs - Fixed several compilation issues for LinuxPPC and other ports. - Dipswitch fixes in Cruisin' Exotica, Mayjinsen, Mayjinsen 2 and Super Eagle Shot 0.84u3 - New games: Digger, Gunbarich, Monster Jump Farm, Trivia Genius and Vasara 2 - New Non-Working games: Cruisin' Exotica, Invasion, Mortal Kombat 4 and The Grid - New clones: Cyberbots, Portraits and Twin Falcons - I386 CPU: Added some missing opcodes - MIPS CPUs: Fixed crash introduced with the u2 changes - PSX SIO: Fixed timer so that it only fires when there is data to send & processes one bit per tick - YMF271 sound: Added support for external read/write handlers to the YMF271 (required for SPI flash ROM updating mode) - DCS audio: Cleaned up and reorganized the DCS sound module (midtunit.c, midvunit.c, midwunit.c, midxunit.c & midzeus.c) - seibuspi.c: Removed all remaining sound hacks, hooked up flash ROMs via the new YMF271 support and fixed various crash bugs in rf2_us, rf2_2k and rf2_eur. - Derby Quiz: Added a DMA kludge to get Derby Quiz My Dream Horse to boot - Final Lap R: Fixed graphics crashing, palette, sprites and some networking registers - Portraits: Fixed scrolling, screen resolution and service switches and coins. Added NVRAM, missing roms and fake photo (when you get the best score) - Speed Racer: Correct graphics resolution - Fixed the generic_fopen() function to ensure that a rom CRC is present before using it. - Fixed save states in the M62 and mnight drivers - listxml: Changed the "driver.status" entry to summarize all the status entries allowing frontends to completely ignore all the other flags. - On Screen Display ('Tilde' key): Added the ability to tweak the refresh rate if -cheat is enabled. Use SHIFT to modify by 0.1fps, CONTROL to modify by 0.01fps and ALT to modify by 0.001fps. 0.84u2 - New Non-Working games: Hyperdrive, Paca Paca Passion and Super World Stadium '99 - New clones: Popper (Hard Head bootleg) - Support for Hitachi H8/3002 MCU and Namco C352 sound (Namco System 12 games) - I960 CPU: Fixed a brown-paper-bag bug where the PC and AC registers were getting swapped on return from interrupts and aligned reads and writes now use the full-size paths through the core instead of always breaking everything down into bytes. - 3dfx Voodoo: Refactored the Voodoo code, fixing several errors in the LOD calculations and the Voodoo 2 command FIFO. - namcos12.c: Preliminary sound and music are now present. MCU is now emulated rather than HLE'd and MCU peripherals mostly figured out and hooked up. Inputs and coinage are now handled by the MCU, so all bugs related to them are hopefully fixed. - Final Lap R: Rewrote the frame cache mechanism using a simple FIFO concept and the game now runs further - Golgo 13: Added support for alternate ROM banking protection used by golgo13, so it runs now. - Mustang: Fixed background scrolling - Thunder Blade: Added 'Service Mode' dipswitch. - Added support for non-integral clock multipliers in the MIPS3 core (R4600/R5000). - Added save state support to the Namco System 1 driver (Galaga '88, Pac-Mania, Tank Force...) - Cleaned up PORT_CHEAT and tagged ports for a number of drivers - Fixed bug that prevented changes to the default controls from sticking. 0.84u1 - New Non-Working games: Conquer, Mahjong Block Jongbou - New clones: Crazy Kong (Alternative levels), Fantasy Land (set 2), Nibbler (set 3) and Super Qix (set 2) - I960 CPU: Fixed bugs in the concmpo, concmpi, and modi instructions, added "text" and hex displays of the AC register for debugging and added TESTx opcodes to the disassembler - Borderline: Added missing sound - Fully obsoleted the old input ports, modifying all drivers to use the new forms - Added a number of new PORT_* macros to handle all the previously-defined flags - Fixed several issues with the new input port system - Removed support for older format CFG files and for "cheat" ports and "reset CPU 0" ports - Changed listxml to output all game flags 0.84 - New games: Double Point, Dragon Bowl, 2x Trivia, Hangman, Knightmare, Sexual Trivia and Street Drivin' - New Working games: Simpsons Bowling - New clones: Dragon World II, Empire City: 1931, Final Blow, 3x Mega Zone, Moto Frenzy, Marvel Vs. Capcom, Puchi Carat, Saboten Bombers, Street Fighter Alpha 3, Street Fighter Alpha: Warriors' Dreams, Street Fighter Zero 2, Space Lords, Street Fight, Tornado and Vapor TRX - New Non-Working games: Backfire!, BMC Bowling, Boogie Wings, Chain Reaction, Charlie Ninja, Double Wings, Diet Go Go, Gals Panic 3, Ganbare! Gonta!! 2, Heavy Smash, Joe & Mac Returns, The Killing Blade, Meijinsen, Osman, Pocket Gal Deluxe, Squash, Idol Janshi Su-Chi-Pi Special, Thunder Hoop and World Cup Volley '95 - New -wavwrite option to save sound output to a WAV file - ADSP2181 CPU: Added ADSP2181 variant to the ADSP21xx CPU cores - YM2610: Fixed save/restore crash - YMF271: Improved sound quality - ZN driver . Added a kludge to start Sonic Wings Limited in attract mode . Added horizontal start/send register emulation . Fixed some issues with vertical display start/end registers . Emulates Taito-FX1 watchdog properly . Fixed System 11 NVRAM hookup . Fixed sound in QSound games . Added Japanese translations of Magical Date title . Fixed sfchamp/sfchampj parent/clone relationship - PSX games: Fixed several endian issues and improved PSX root counters - PSX SPU: Added PIO SPU ram writes, fixed status register read/write, internal mixer clamps output to 16 bits to fix distortion, state saves all registers, removed the need for casts by making the decoded sample buffer signed and DMA read/writes are limited to the SPU ram. - itech8.c: Cleaned up the itech8 driver, now using new memory maps and standard VIA support - konamigv.c: Fixed the SPU/CDDA volume balance - metro.c: Improved sound, correct Mouja sound and added missing YM2413 sound in Dharma - seattle.c: Added some newly discovered PIC IDs - segac2.c: Fixed improper use of memcpy - Jackie Chan: Added many improvements, but still not playable - Gaiapolis: Fixed intro - Red Robin: Fixed DRIVER_INIT - Turbo: New factored machine and sound. - Rendering speedups in NeoGeo and Super Kaneko Nova games - Clock speed changes in Burglar X, Head On (Irem), Mouja and Zero Point (ID 00937) - Dipswitch fixes in Chase HQ, LSA Squad, Rim Rockin' Basketball, SCI, Super Stingray, Kyros, The Next Space and Whizz - Added missing SHA1 checksums - SOURCE . Added new memory map definitions . Removed a number of macros . New input port definitions (see pacman.c for the new format) - Removed -listinfo option. Use now 'mame -listxml|xml2info >mame.lst'. 0.83 - New games: Cannonball (prototype), 5x Trivia games (Greyhound), Miss Puzzle and Beatmania 5th MIX - New Working games: Heavens Gate, VS. Gumshoe and Tetris The Grand Master - New Non-Working games: Super Football Champ and GP500 - TMS34010 CPU: Fixed state saving - ST-V VDP-1 and VDP-2 update . Added VDP1 half transparency (improves sprites alpha blending in shanhigw in-game) . Added VDP1 gouraud shading for normal sprites only (adds highlighting for selected tiles in shanhigw) . Added VDP2 layer disabling based on VRAM cycle pattern registers (fixes gfx in shanhigw title screen) - PSX update . Fixed Heavens Gate graphics issues and correct rom loading/banking . Correct rom loading for Super Football Champ (now it's stuck in test mode) . Added later world version Super Football Champ (Ver 2.5O) . Added Taito FX-1 watchdog (address is unconfirmed, but hopefully soon) . Added PAL support for MESS . Added horizontal start/end - Tecmo System: Added preliminary gfx decode, EEPROM r/w, txt layer, hacks to see more gfx, palette and watchdog (?) simulation. The games still don't work due to protection. - Beatmania DJ Main Board: Added turntable, correct harddisk images and update the driver - Sega System 16/18 update: Added MSM5205 sample playback to tturfbl and shdancbl - Bonks Adventure added EEPROM and dipswitches - Cool Boarders Arcade Jam: Correct audio clock - Spiders: Added NVRAM - Fixed cheat engine bug preventing assignment of controller buttons as activation keys - inptport.c: Switched input_port_allocate() to use auto_malloc() - windows\fronthlp.c: Added an optional definition for the S_ISDIR macro for when it is not present - Change Playchoice10, Mega-Tech and MegaPlay names and years 0.82u3 - New games: Prototypes - Argus, 'Video Vince and the Game Factory' and Wiz Warz - New Working games: Street Fighter EX 2 Plus - New clones: 'Q*bert Board Input Test Rom' - New Non-Working games: Heavens Gate, Jumping Pop and Pinball Champ '95 - I386 CPU: Revamped interrupt handling (i386ops.c); a bonafide line is now implemented and also implemented IRQ callback. Fixed CALL absolute instruction under 16 bit mode (i386op16.c). - uPD7810 CPU: Fixed gta, gti, dgt and working reg opcodes and SIO input - metro.c: Support for uPD7810, MSM6295 and YM2413/YM2151 stero sound - seibuspi.c: Fixed i386 interrupt call to use PULSE_LINE instead of always ASSERT_LINE - Darius Gaiden: Fixed broken game (68008 changes) - Magical Date: Fixed rendering issue - Psychic Force: Correct user2 roms addresses - Sonic Wings Limited: Fixed lockup - Super Football Champ: Correct user2 roms addresses - Street Fighter EX 2 Plus: Added correct user3 rom - MESS: Added more MESS specific stuff within #ifdef and a minor fix from the MESS side in vidhrdw/tia.c - memory.c: Added memory_install_*_handler_mirror() - Win32: Changed use_mouse to win_use_mouse and made it non-static 0.82u2 - New games: Golden Par Golf, Quiz Do Grand Prix, Quiz Do Grand Prix2 and Victorious Nine - New Working games: Ameisenbaer, San Francisco Rush, Vapor TRX and ZN1/2 games: Battle Arena Toshinden 2, Dead Or Alive ++, G-Darius, Magical Date, Plasma Sword, Psychic Force, Rival Schools, Sonic Wings Limited, Strider 2, Tech Romancer and Tondemo Crisis - New Non-Working games: Dingo (encrypted), Gals Panic II (Quiz Version) and Heaven's Gate (not activated) - New clones: JoJo's Bizarre Adventure and Monster Maulers - Removed games: Tetris The Grand Master - I383 CPU: Fixed CALL16, INTO, REP, REPNE and RETF opcodes - 6532 RIOT fixes - MIPS CPUs: Support for R4700, QED5271 and RM7000 CPU variants (check Wayne Gretzky's Hockey). Added Config register and fixed bug in LWXC1/LDXC1/SWXC1/SDXC1 instructions x86 dynamic recompiler: Fleshed out SSE support - 3dfx Voodoo: Fixed missing truncation on vertex coordinates, rid of ugly red/blue swap hack, cleaned up logging and added support for alternate LFB write modes. All statistics now accessible via the backslash key. - seattle.c . Added SMC91C94 ethernet controller (only loopback) . Made the IDE controller visible on the PCI bus . Added constants for the GT64010 and all interrupts (PCI bridge) . formalized support for the "widget" board used in vaportrx and calspeed . Hooked up CMOS protection bit . Correct sfrushrk audio CRCs and hooked up hard disk . Added support for sfrushrk PIC and timeout on PIC reads to speed up sfrushrk . Added more extensive documentation on the various boardsets - ST-V: Fixed bad RGB sprites colors, incorrect sprite clipping, horizontal scrolling for bitmaps and added color offset for RGB sprites - arkanoid.c: Merged memory maps and moved paddle2 trickery to machine\.c - n8080.c: Split driver into three parts: drivers\, sndhrdw\ and vidhrdw\n8080.c - CarnEvil: Correct video frequency - Goal '92: Fixed clock speed and visible area - Helifire: Correct starfield scroll speed and some missing features are back again. - Mausuke: Correct ingame background - One+Two: Fixed title screen glitch - Space Launcher: Added color prom - Change to EEPROM_interface 93C46 (please check games using this!) - Debugger: Added traces output to the console (TRACE CONSOLE) and API to allow injecting text into the trace files. - Konami PreGX cleanups - Dipswitch fixes in Ameisenbaer and American Horseshoes 0.82u1 - New games: Bloody Roar 2, Head On, Pachinko Gindama Shoubu and Pachinko Gindama Shoubu DX - New Working games: Fire Hawk and Shanghai-The Great Wall - New clones: Konami's Open Golf Championship, Lethal Enforcers II and Target Ball - Z80 CPU: Fixed RETN / RETI cycle counts - PSX CPU: Fixed another SIO bug - ST-V VDP-1 and VDP-2 update . Converted VDP-1 drawing (sprites) to use framebuffer . Added framebuffer interlace (fixes elandore character selection screen) . Added sprite priorities (corrects shanhigw ingame and colmns97 title screen) . Improved sprites alpha blending (improves ejihon and shienryu intro) . Added color offset for sprites and bitmaps . Added vertical scrolling for bitmaps (corrects shanhigw ingame) . Fixed a window mode bug in VDP-2 - 1945k III: Fixed sound and dips - Hyper Duel: Fixed sprite priority - Paradise: Correct audio clock speeds and video frequency - memory.c: New memory_install_[read|write][8|16|32|64]_handler_mirror() calls, which install memory handlers that can mirror similar to the AM_MIRROR macro. - Flipscreen support in the Tecmo16 driver - Clock speed changes in Beastorizer, Beastorizer (bootleg), Brave Blade, Green Beret, Space Beam and Target Ball - Resolution changes in Fire Hawk, Green Beret and Space Beam - Year correction in MegaTech: Columns and Area 51 (R3000) - Dipswitch fixes in 1945k III, Fire Hawk and Tylz (prototype) 0.82 - New games: Tylz (prototype), Dyna Gears, Agress, Super World Stadium, 1945k III, MegaTech: Columns, Crackdown, Sports Talk Football and Sonic 2 - New Working games: Fly-Boy, One + Two, Star Gladiator, Street Fighter EX, Street Fighter EX 2 and Time Crisis (Version A) - New clones: Anteater (German), Continental Circus (US set 2) and MegaTech: Sonic the Hedgehog (set 2) - New Non-Working games: Firehawk, Mission Craft and Racing Beat - I386 CPU: Implemented zeroing out A20 lines, XLAT opcode, state save support and DAA fixes. And the Unknown instructions now disassemble as '???'. - I960 CPU: Stylistic fixes and added fp opcodes - M6502 CPU: Fixed STX (abs) cycle count - PSX CPU: SIO improvements - Support for M68008 CPU - Namco System22 video hardware fixes - Konami GX improvements - Simulated protection in Fly-Boy - CPS-3 fixes - Fixed MEM_DUMP debug code - VC compile fixes - 4 En Raya: Fixed colours/gfx layout - Block Out: Correct CPU clock speed and video frequency - Flower: Cleanup driver - MegaTech: Still marked as NON-WORKING due to BIOS issues - Dipswitch fixes in Meta Fox 0.81u9 - NOTE: 0.81u8 was an internal release - New games: Atari Mini Golf and Area 51 - New Working games: Strider 2 - New clones: MonsterBash and Inca - New Non-Working games: One + Two, Namco System FL - Final Lap R and Speed Racer, Multi Amenity Cassette System - Kisekae Hanafuda, Kisekae Mahjong, Seimei-Kantei-Meimei-Ki Cult Name, Yu-Ka and Yu-Jan - Support for I960 CPU: Namco System FL games - I386 CPU . Implemented 16-bit interrupts, segment limits and CALL, JMP, LOCK and RETF and PUSH rm8 instruction . Fixed i386_interrupt() and i386_set_irq_line() . Added a distinction between maskable and non maskable interrupts and between invalid and unimplemented instructions . Various string intructions now use SI/DI instead of ESI/EDI when in 16-bit mode . Initial values of IDTR are now properly specified . Actual cycle count is now returned . Fixed disassembler and a bug in LMSW - TMS32025 CPU: Fixed lst and lst1 opcodes and set_irq_line(). Added better "ignore ARP" hack and serial I/O support - PSX CPU: Improved PSX SIO - YMF292-F SCSP sound: Fixed envelope rates and added key rate scaling and ringbuffer support - YMF271 sound: Fixed pitch, this improves music in Brave Blade - Namco System 22 update . Display list processing is now done by the master DSP . The slave DSP's in-game graphics processing and "custom render devices" are currently simulated, which works only for Prop Cycle . Support for PDP block-based memory transfers, DSP data/code uploads from main CPU and "Point RAM" and "Point ROM" access . Most self tests are working in Prop Cycle and Ridge Racer (Japan) . Prelim hand-crafted "internal ROMs" for master and slave DSP and various notes regarding DSP ports/addressing - Seibu SPI improvements - Moon Base: New roms and colour proms - File I/O problems and file handling behavior fixed - VSNES rom filenames corrections - Dipswitch fixes in American Horseshoes, Break Thru, Gold Medalist, Plotting and The Hand 0.81u7 - New Working games: Sonic The Hedgehog, Golden Axe 2, Tecmo World Cup (MegaPlay), Beatorizer (bootleg) and Twin Eagle II - New clones: Area 51 (R3000), Battle Balls Ninja and Super Pang - Big MegaPlay/Genesis update: Various additions and improvements - all games are playable now - Support for ST-0016 stereo sound (Neratte Chu, Renju Kizoku) - I386 CPU: Added INTO, AAA, AAD and AAM opcodes, CMC, DS and SS segment prefixes and SETALC opcode which is undocumented. Removed a non-existing PUSH8 opcode from groupFE_8. Fixed SHLD and SHRD opcodes, AAS opcode, AF flag calculation and AF flag in SUB and DEC opcodes. Implemented ES, BOUND, DAA, DAS, AAS, INSB, INSW, OUTSB, OUTSW, LES, LDS, HLT, LSS, LFS, LGS and IMUL with a 32 bit adjustment. Fixed a bug in i386_set_info() when changing the EIP register some compilation errors under non-GCC compilers. Added new i386 disassembler. - Seibu SPI system: Added missing keys to E-Jan High School, 93C46 EEPROM to RF2 single and RF2 2K, layer enable register and preliminary Dallas DS2404 (RTC/CMOS) emulation. Improved i386/z80 interleaving. - MAME Debug: Adds a check enabled when MAME_DEBUG is defined that raises an error if the CPU core executed a negative cycle count - Fixed issues with hard disks without checksums - Dipswitch fixes in Gal's Panic driver, Karate Blazers, Raiden 2, Raiden DX, Turbo Force and Zero Team. 0.81u6 - New games: ST-0016 games - Neratte Chu and Renju Kizoku - New Working games: Viper Phase 1 - New Non-Working games: Mayjinsen, Mayjinsen 2, Super Eagle Shot and Super Real Mahjong P5 - I386 CPU: Implement INT, INT3, ES segment override, an IMUL variant, LMSW and coprocessor escape instructions. Fixed a minor 16 bit bug and several shift/rotate instructions. This corrects the bosses in Raiden Fighters. Completely rewrote REP/REPNE prefix handling. Battle Balls attract mode runs correctly now. E-Jan now coins up and Viper Phase 1 is now playable (with encrypted gfx). - PSX CPU: Fixed the GPL12 opcode. This fixes the 'Cool Boarders Arcade Jam' graphics. - MIPS III/IV: Software interrupt fix - Hyperstone CPU: Added h flag handling in the DASM and fixed wrong interpretation of some opcode bits in the DASM. Fixed frame instruction when d-code was 0 and always set the new entry table. - YMZ280B sound: Added Shiriru's YMZ280B sound fix - Seibu SPI: Added sprite flipping and other improved sprite processing and crrected palette banking on tilemaps - Seattle games: Fixed incorrect sound pitch in Blitz 99/2k - Sega Model 1: Added full stereo sound (YM3438 and Sega_315-5560 MultiPCM) - Fixed some ST-V sprite bugs - ST-V: Fixed some ST-V sprite bugs in hanagumi intro, othellos title, cottonbm intro, diehard intro and sleague. - Noboranka: Fixed missing enemies - Kaitei Daisensou (In The Hunt clone): Fixed speedup - Leprechaun: Fixed service switch - Lord of Gun: Minor improvements (still doesn't work) - SF Rush - The Rock: Fixed incorrect checksums - MESS: Added TMS7000 CPU 0.81u5 - New games: Pirate Treasure - New Working games: Brave Blade and Ray Storm - New clones: Leprechaun and NBA Maximum Hangtime - New Non-Working games: Hyperdrive, MegaPlay: Tecmo World Cup, San Francisco Rush: The Rock and Vapor TRX - I386 CPU: Implemented in/out instructions - MIPS CPU: Added MIPS3DRC_FLUSH_PC option and fixed interrupt and big endian mode - TMS32025 CPU: Fixed ldpk opcode and internal RAM - Seibu SPI System: Improved tilemap and sprite drawing, added mahjong keyboard controller and sound starting to work in Raiden Fighters 2 (US, Single Board) - Sega Model 1: Lighting fixes - Seattle games: Voodoo emulation, driver and midwayic.c update - Konami GX cleanups - MegaPlay passes more checks now - Vanguard: Added SN76477 SHOTB sound effect - Improved Raiden 2 sprite drawing - Correct cpu clock speed in Pioneer Balloon, Vanguard, Wayne Gretzky - Correct graphics resolution in S.P.Y. - Dipswitch fixes in Biofreaks and Leprechaun 0.81u4 - New games: Super Rider - New Working games: ST-V games: Danchi de Hanafuoda, Othello Shiyouyo and Power Instinct 3 - New clones: 2x Densya De Go, Driving Force, Killer Instinct an Snow Bros. - New Non-Working games: Densya De Go, Densya De Go 2, NeoGeo Ghostlop (prototype), Landing Gear, Lord of Gun, Side By Side and Side By Side 2 - rockola.c: Fantasy, Nibbler and Pioneer Balloon have now SN76477 sound. Correct CPU frequency from schematics, merged memory maps, cleaned up driver a bit, fixed dips and enabled debug inputs. - Hyperstone CPU core fixes - MIPS 3/4 x86 dynamic recompiler: Fixed load instruction and stack - Killer Instinct: Fixed a bunch of video problems, sound reset and initialization - SPI / 386 updates: raidnfgt now runs normally, viperp1 starts to boot now and hooked up the Z80 bankswitching, so sound started playing in some games. - ZN improvements and 24-bit rendering support for Judge Dredd - ST-V update: Fixed sprites in Power Instinct 3 (now playable), add some RBG0 scrolling which improves background graphics in cotton2, cottonbm, grdforce and othellos. Fixes to Brave Blade. - Mahjong Kakumei and Kakumei 2 boot now but neither are playable due to protection. Fixes to Daireikai. - Lethal Justice and Egg Venture: Merged memory maps, fixed video size in Egg Venture to correct flicker, switched to VIDEO_RGB_DIRECT and removed unnecessary ROM regions - Debugger is now more useable with the new memory system - OSD 'NO EXECUTE' support for AMD 64-bit - Some MESS specific changes 0.81u3 - NOTE: u1, u2 and u3 are just dev-sync updates - New Working games: Cool Boarders Arcade Jam, Rival Schools, Shanghai Matekibuyuu and Street Fighter Ex 2 - New clones: 4x Raiden 2, 3x Raiden DX, New Zero Team - New Non-Working games: Raiden DX, Zero Team, CPS3 - JoJo's Venture, JoJo's Bizarre Adventure, 3x Street Fighter III and Warzard Sega Model 1 - Star Wars Arcade, Virtua Fighter 1, Virtua Racing and Wing War - i386 CPU: Fixes - Hyperstone CPU: Bug fixes - Support for Sega Model 1 games (unplayable and missing sound) - Preliminary PGM sound emulation (ICS2115 = ICS WaveFront-2115 Wavetable MIDI syntesizer) - Seibu SPI system: Improvements. Senkyu and E-Jan High School now do something. - ZN driver . Playable with sound - cbaj, glpracr, rvschool, shngmtkb and sfex2 . Brave Blade - Improvements, still need work . Gallop Racer 2 - Works up to the title screen . Judge Dredd - Improvements, still need work . Beastorizer - Fixed a bug in the hi-score portraits . Beastorizer (bootleg) - Added sound + other BIOS . Dead Or Alive - Roms address corrections . Tondemo Crisis - Roms address corrections - Made Raiden DX display something (but not much) - Cleanup Centipedes video hardware - Fixed the hard lockups that occurred in games that use scanline-based timers 0.81 - New Working games: Beastorizer and Gallop Racer - New clones: Battle Balls, 2x Raiden Fighters 2, Street Fighter EX and Viper Phase 1 (New Version) - New Non-Working games: D-Day (Jaleco), E-Jan High School, Raiden Fighters, Raiden Fighters 2, Senkyu and Viper Phase 1 - Support for i386 CPU core: Seibu SPI System games - 68000 CPU: Improved timing of several 68k instructions - Hyperstone CPU: Fixed several small bugs - V60 CPU: Fixed a slight bug - Various ZN related updates: Brave Blade, Cool Boarder Arcade Jam, NBA Jam Extreme, Primal Rage 2 and Ray Storm - Fixed a bug in the PSX graphics rendering (Hyper Athlete) - ST-V update: Adding support for the end code feature in VDP1 which improved sprites in Columns '97, Ejihon Tantei Jimusyo, Shienryu and fixing some bugs in the SCU DSP emulation - Fixed a few compiling and link warnings 0.80u3 - New Non-Working games: Hyper Athlete, Powerful Baseball '96, Simpsons Bowling and Susume! Taisen Puzzle-Dama, Wedding Rhapsody - Konami GV system support . The System is identical to a home Playstation/PS1 console. . Preliminary CD-ROM support . Intel Flash ROM emulation support . CD-ROM emulation primitives, including Red Book audio playback . CD-ROM support for the AM53cf96 SCSI controller - ST-V fixes - Save States update: State save checking for fontends. 0.80u2 - New games: Dynamic Dice, Space Fever High Splitter, Lovely Cards, MTV Rock-N-Roll Trivia (Part 2) and Scooter Shooter - New Working games: ST-V games Guardian Force and Shanghai-The Great Wall - New clones: Neo-Geo 2020 Super Baseball, Blaster (early 30 wave version), Capcom Bowling, Griffon, Gyrodine, Marvel Super Heroes, Shadow Dancer, Super Puzzle Fighter 2 Turbo, Spinner and Vampire Hunter - New Non-Working games: Change Lanes, Counter Steer, Dragon World 3, Parallel Turn, Swinging Singles, Taiwan Chess Legend, Where's Wally? and Zero Target (World) - Big Sega System16 update . Hang-On : Road layer works again, I/O hardware ROM test works and fixed sprite, tile and shared RAM size . Shadow Dancer : Added I/O chip, partial VDP emulation, Datsu bootleg sound and fixed speed-ups and sprite loading . Altered Beast : Cleaned up driver (no junk in error logs) . Shinobi : Fixed sprite zooming in sys16_sprite_shinobi . Heavyweight Champ : Corrects sprite placement and fixes output test progression . Alien Storm : Added I/O chip and partial VDP emulation . Moonwalker : Added I/O chip and partial VDP emulation . Riot City : Used now sys16_sprite_shinobi. Cleaned up driver (no junk in error logs) . Aurail : Used now sys16_sprite_shinobi. Cleaned up driver (no junk in error logs) . Bay Route : Used now sys16_sprite_shinobi. Cleaned up driver (no junk in error logs) . Flash Point : Added sound support . Tough Turf : Added sound support . Time Scanner : Cleaned up driver . Toryumon : Fixed RAM test and cleaned up driver . E-Swat : Added correctly dumped romset . Ace Attacker : Some fixes . Where's Wally? : Added Where's Wally? (encrypted and unplayable) - Nintendo 8080 based games update . Space Fever : Hooked up SN76477 . Space Fever High Splitter : Hooked up SN76477, fixed rom loading, added bonus life DIPs . Space Launcher : Hooked up SN76477, color support, added bonus life DIPs . Sheriff : Added colours, hooked up I8035 sound and fixed SN76477 sound . Helifire : Fixed starfield pattern and priority. Missing audio effect will be re-added. - TMS32010 CPU: Cycle counts for invalid opcodes 7F1E and 7F1F are now 0 - GA20 sound: added channel status readback (R-Type Leo) - Discrete Sound System update: major internal cleanup, adjuster values can be now saved (Canyon Bomber, Drag Race, Fire Truck, Sky Diver, Sprint 1/2, Triple Hunt and Ultra Tank) - Various Timer fixes (Sly Spy) - ST-V update: Fixes bitmap transparencies, added the RBG0 layer and reliminary window effect - Some Task Force Harrier improvements - Cleaned up Capcom Bowling driver and fixed crash on reset - Fixes bad trench vectors in Star Wars - Correct graphics resolution in Big Bucks and Heli Fire - Correct CPU clock speed in Ace Attacker, Alien Storm, Bloxeed, Heli Fire, Moonwalker, Shadow Dancer, Sheriff, Space Fever and Space Launcher - Fixed rom loading in Gomoku Narabe Renju - Misc bug fixes (HuC6280 problems) 0.80u1 - New clones: Invasion, Neo-Geo Ninja Combat and Super Earth Invasion - New Non-Working games: Air Rescue and Buriki One (Hyper NeoGeo 64) - Hyper NeoGeo 64 games: Preliminary Hyper NeoGeo 64 system, it could be quite a long time before it works correctly, it currently does nothing significant apart from let you view the gfx in the tileviewer so don't bug us about it. - ST-V fixes: Improved scaling tilemap backgrounds. Vfkids, colmns97 and vfremix backgrounds are better now. Fixed a problem where entering and existing service mode. - Hyperstone E1-32XS CPU cleanups - Discrete sound update: New LOGIC_DFLIPFLOP, support for up to 16 channels of sound and changed the way multichannel output is done (Canyon Bomber, Drag Race, Orbit, sprint2.c and Subs) Discrete sound support for Barricade and Hit Me - Hit Me: Fixed incorrect video, added controls and cleaned up memory maps. - Varia Metal: MSM6295 + ADPCM sound and dipswitches fixed - Improve fitfight.c driver - C89 compiler fixes 0.80 - New games: Wiggie Waggie and NeoGeo Zintrick - New Working games: Radikal Bikers, Surf Planet and a Sky Kid clone - New clones: Psychic Force EX - New Non-Working games: Cool Boarder Arcade Jam, Lethal Enforcers and Shanghai Matekibuyuu - Discrete sound update: New discrete modules, discrete sound fixes/changes and Game Driver updates in atarifb, canyon, firetrk, montecar, poolshrk, skydiver, superbug and triplhnt - Large Namco update: Added Namco 63701X (silence compression & volume control) and Namco CUS30 sound (baraduke, drgnbstr, namcos86.c, metrocross, pacland, rthunder and skykid) - Various Gaelco3D improvements - Various ST-V improvements: brightness controls - HD6309 CPU: Fixed the ABCD opcode - Hyperstone E1-32XS CPU: Various core improvements - TMS32010 CPU: Added internal Data memory map and fixed Overflow on the ADDH instruction (HardDrivin, toaplan1.c, Twin Cobra and Wardner) - 053260 sound: Fixed Packed PCM decoding (games sound much better now, like Sunset Riders) - TMS5220 sound: Added a security margin or speech synthesis (MESS side bug fix) - Improved NES APU sound (MESS) - Armor Attack: Added missing chopper.wav sample - ZN1/ZN2 driver cleanup - Fixed vector clipping bug in Major Havoc - Fixed some GCC compiler warnings - Dipswitch fixes in Green Beret, Metro-Cross and Mr. Goemon 0.79u2 + u3 + u4 - NOTE: 0.79u2 and u3 are internal releases and not for the public - New games: Bongo, Botanic, Kusayakyuu, Mad Alien and Quasar - New Working games: Pro Baseball Skill Tryout - New clones: Area 51, F-X, Hunchback, Neo-Geo Samurai Shodown III, Soul Calibur, Strikers 1945, Teenage Mutant Ninja Turtles, Violence Fight and Zoom 909 - New Non-Working games: Quadro Quiz II Gaelco 3D: Radikal Bikers, Speed Up and Surf Planet Microprose 3D: Battle of the Solar System, F-15 Strike Eagle and Super Tank Attack - New core integer-based Timer System - TMS32031 CPU: Fixed bugs and added IACK and IDLE commands - PIC16C5x CPU: Support internal memory maps - PSX CPU: Misc cleanups - Z80 CPU core: Set Z80 cycle tables to default on startup - Misc Changes in CPU m4510, m6509 and Jaguar GPU - DMA-driven_DAC sound for CAGE, Seattle and Midway DCS games - Fixed Irem GA-20 pitch (reverse-engineered with samples) - Sample support in Tailgunner - Added PSX_SPU sound to all ZN1/ZN2 games - Enigma 2: Added AY-3-8910 sound, background starfield, cocktail mode, fixed bugs and colors - Psikyo.c video fixes: Gunbird attract mode, sprite-tilemap priorities and level 7 in Strikers 1945 - Asterix: Fixed sound pitch and balance - Add information of the encrypted Z80 CPU in Robo-Wrestle2001 (Sega 1986) - Update NeoGeo sets to use correct roms - Fixed m68kdasm bug - Dipswitch fixes in Blood Brothers, Express Raider, Fire Battle, Mole Attack, Quasar, Sky Smasher and US Games 0.79u1 - New games: Bulls Eye Darts, Great Sluggers, 3x Mahjong Electron Base, Mahjong Neruton, Space Launcher - New Working games: Driver's Edge, Fever SOS (Dangun Feveron clone) and Liberation (bootleg) - New clones: Atari Tetris, Battle Garegga, 2x Galaga, Kung-Fu Taikun, Martial Champion, Quiz 365, 2x Space Feve, Super Slam, Sorcer Striker and Time Pilot (Atari) - New Non-Working games: Double Cheese and Talbot - Namco 80's games Update: Bosconian, Dig Dug, Galaga, Pole Position I+II and Xevious * GFX emulation more accurate according to schematics * Support for start lamps, coin counters and coin lockout * Correct Z80 clock speeds * Replace Namco sound with Namco_15xx in Dig Dug II, Gaplus, Grobda, Libble Rabble, Mappy, Motos, Pac & Pal, Phozon, Super Pac-Man, Tower of Druaga and Toy Pop * Replace Custom sound with Namco_52XX and Namco_54XX in Bosconian, Galaga, Pole Position I+II and Xevious * Correct tile/sprite priority handling in Bosconian * Better emulation of the 50XX custom chip - Namco NB1 games Update: Great Sluggers, Mach Breakers, Outfoxies and Point Blank * Correct 68EC020 clock speed and video frequency * Hardware shadows in Great Sluggers and others * Dedicated random number generator chip * Various specific hacks (3D Floor) and tilemap tile banking in Mach Breakers * Fix sprite stretch glitch and water effect in Outfoxies and support for screen blanking (hides garbage) - Adding the starfield to Tactician - Fixed missing speech and sprite zooming in the Pole Position - Fixed the Pole Position II title screen and wrong engine sound - MSM6295 sound in Super Slam - Added missing MSM5205 sound to Indoor Soccer - Reverted the RF5c68 sound emulation to an earlier version to fix some tuning problems - Fixed Out Run (Deluxe?) sound - Bosconian now uses a different sound PROM and Galaga better dumps of the PROMs - Emulated the protection in Segasonic (Japan rev. C) - still crashes - Dipswitch and input fixes in Fire Battle, Guardians of the Hood, Heated Barrel, Pit Fighter, Scramble Spirits and Shot Rider - Updated docastle.c memory maps - EAROM support to Dig Dug - Atari version of Time Pilot - Update the Varia Metal driver - Cleaned up the Hard Drivin' driver - Fixed more memory rewrite bugs: Escape Kids, Hydra, Mortal Kombat, Pit Fighter, Super Slam... - Merge drivers locomotn.c with rallyx.c and digdug.c, bosco.c and xevious.c with galaga.c - Remove Galaga clones: nebulbee, galagab2, galaga84, galagads and various bad dumps from polepos2b and poleps2c - Moved 'Return of Lady Frog' to the Splash driver 0.79 - New games: Triv Four, Super Triv III and Pairs Love - New Working games: Scramble Spirits, More More Plus, Whizz and Winning Spike - New clones: Changes, DownTown (prototype), Dragoon Might, Dual Assault, Fantasy, Fever SOS, Perestroika Girls, Pushman, Plasma Sword, Soccer Superstars, Super Hang-On (alt) & Limited Edition, Street Fighter EX 2 Plus, Vs. Tennis, Neo-Geo Robo Army and Neo-Geo Top Hunter - New Non-Working games: Denjin Makai, Rockman: The Power Battle and Varia Metal - Fixed most of the bugs (memory rewrite) - Updated and clean many Atari / Midway drivers to use new style memory maps - Fixed the SH2 speedup - Unaligned SCU direct mode DMA fix (Virtua Fighter Remix) - Fixed ASM 68k core to compile again - Various compiler specific fixes - YMF278b update (Asura Blade) - Updated ST-V driver to use new memory system - 4-in-1 bootleg with correct gfx1 rom - Fixed a problem with Star Wars - Enigma 2 with correct cpu2 rom - Fixed colors in Fantazia (clone of Moon Cresta) - Correct palettesize in the senjyo driver - Added harddisk file to Primal Rage 2 - Fixed crash when taking screenshots of rotated vector games - Fixed Black Dragon and Money Money filenames - Multiple Session fixes (for Mame32 etc.) - Warning screens are now skipped if running with -ftr for less than 5 minutes 0.78u6 - Only another big memory rewrite (!) - Report any new bugs 0.78u5 - New Working games: Hard Head 2 - New clones: Dogou Souken (Victory Road), Out Run (Japan Prototype?), Strafe Bomb (Scramble), Xevious - Memory rewrite (4): Report any new bugs - Namcos System21: Added near-plane clipping, update C355 sprite rendering and sprite-tilemap orthogonality, improved polygon colors and input in CyberSled, title screen and ingame graphics now appear, hooked up the view transform in Starblade and some rudimentary work for 'Winning Run 91' - Rewrote 6522via.c and 6532riot.c - Updates to the Gameplan driver: Fixed gfx and bad sound - STV: Fixed some bad colours in Shienryu - Correct colors with new proms in Ali Baba - Fix Space Thunderbird graphics - More Discrete sound modules: high pass R/C filter, up/down counter and selectable trigger - Added Discrete sound emulation to Poolshark - Update bounce sound in Atari Basketball - Fixed Discrete sound system crash with -nosound - Support for USB keyboard LEDs - Fixed memory rewrite bugs in cvs.c, decocass.c, Great Swordsman, Green Beret, MX5000, Raiga, tnzs.c and vsnes.c - Dipswitch fixes in Indoor Soccer, Radical Radial, Seicross - Correct CPU speeds in Hard Head2 and Brick Zone - Save state loading from command line - Removed in all harddisk games the ending .CHD from filename handling 0.78u4 - New Neo-Geo clones: Art of Fighting 2 and The King of Fighters '98 - Memory rewrite (3): Report any new bugs - Memory rewrite updates to the CPU cores: ADSP210x, CCPU, PIC16C5x, TMS3201x, TMS3202x, TMS32031 and TMS340x0 - Eliminated all last 8-bit-specific hacks in the memory system of a driver - New dynamic memory allocation scheme - Fully integrated save/restore memory blocks. Remove old memory map walking routines - Address spaces are now determined dynamically - I8039 CPU: Fixed incorrect address bus widths - Added TMS32026 CPU (Cool Pool needs it) - Some slight SH-2 speedups - Implements the 56XX and 58XX NAMCO I/O custom chips (scrollable grid in Mappy's test mode) - Added discrete sound in Sky Diver - Added samples in Seawolf II - Fixed a missing sound effect in Phozon + cocktail mode - Improved sound in in Miss Bubble 2 and Power Instinct clone - Some more fixes in Competition Golf - ST-V: Added some alpha blending (see bakubaku playfield, mausuke playfield, shienryu clouds etc.) - gottlieb.c: Fixed the memory handlers to use address space masking - Fixed priorities in superpac (overlapped ghosts) - Improve Birdie Try sprite - Revised warpwarp.c driver - Added Round advance dipswitch in Gaplus and more dipswitches to Cross Pang 0.78u3 - New games: Jong Tou Ki - New Working games: Competition Golf - New clones: Competition Golf Final Round, Golden Tee Golf, Miss Mister World '96 Nude, Space Thunderbird and Yosaku To Donbei - New Non-Working games: Armored Warriors - Memory rewrite (2): Report any new bugs - Fixed 0.78u2 craches * Fixed Namco System 1 main bankswitching routine * Fixed the hd63705_get_info in the M6809 core (Namco System 2 games) * Fixed the PROGRAM_WRITE16_MAP (Namco System 21) * Fixed clone boblbobl from crashing * Fixed Moon Patrol crash * Fixed 'Ram Bad' error in Circus Charlie. - Fixed the sound handler in Cross Pang - Correct dipswitches in BC Story, Borderline and Hatch Catch - Update the 8080bw.c driver 0.78u2 - Memory system rewrite - Some cpu1 rom address correction 0.78u1 - New games: Stadium Hero 96 and Wild Pilot - New Working games: Avengers in Galactic Storm, Princess Clara Daisakusen and Target Ball - New clones: Hat Trick Hero '94, 2x Knights of Valour / Sangoku Senki, Q*bert, Time Crisis, 2x Oriental Legend / Xi Yo Gi Shi Re Zuang, Real and Fake / Photo Y2K and 2x Run and Gun - New Non-Working games: Skull Fang - Improve the ST-V emulation - Decoded the background graphics in Competition Golf - Complete new background drawing in Moon Patrol - Added correct graphic object roms to Final Lap 2 - Added samples in Space Firebird - Added DAC sound in TrucoTron - Discrete sound in Video Pinball - Correct graphic, dipswitches and added sound in Cross Pang - Full sound and music in Asura Blade - Fixed sound and DIP switches in Cross Pang and Funny Bubble - Fixed sound in Bakuretsu Breaker and Aquarium - Fixed graphic, sprites and sound in Diver Boy - Fixed graphic, dipswitch and added EEPROM in Mobile Suit Gundam EX Revue - Correct palettesize in Cross Pang, Moon Patrol and Space Firebird - Merged geebee.c and warpwarp.c (same hardware design) - Added the ability for drivers to change the refresh rate during emulation - Fixed Black Dragon (bootleg) ROMs - Correct dipswitches in Kaitei Takara Sagashi, Navarone, SOS and Toaplan1/2 - New proms to Ace Driver, Millpac, Moon Patrol, New Rally-X, Rally-X, Special Criminal Investigation 0.78 - New games: Borderline, Cross Pang, Crypt Killer, Dynamic Country Club, Funny Bubble, Super Tank and several new Dynax games. - New Working games: Aqua Rush, Ashita no Joe, Biofreaks, Bonanza Bros, California Speed, Ehrgeiz, Fighting Layer, Quiz Rouka Ni Tattenasai and Tekken 3 - New clones: Champion Baseball, Chinese Hero, Delta Race, Fighting Hawk, Lode Runner III, Pairs, Premier Soccer and Vs. R.B.I. Baseball - New Non-Working games: Several Namcos22, System24, ZN games + Mr Driller 2 and Target Ball - PSX CPU games (Namcos11/12, ZN): Preliminary SPU emulation, improved SIO emulation, opcodes etc. - Initial Voodoo 2 support - SCSI controller emulation - System 24: Various improvements, fixing priorities and clipping issues etc. - Seattle games update - Improved Lightgun code - Full sound in Ashita no Joe - Fixed music and MSM6295 sound in Pass - Sound effects in SD Gundam Psycho Salamander (no music yet) - Better Jaleco MegaSystem 32 sound - Fixed the music from cutting off in Quiz Panicuru Fantasy - Fixed colors in Hana Oriduru - Improve colours in Speed Attack - Correct input in Dark Edge, F1 Super Lap, Namcos12 games, Relief Pitcher and WEC Le Mans 24 - Correct roms addresses in Aqua Rush, Beastorizer, Brave Blade, Ehrgeiz and Quiz Rouka Ni Tattenasai - Added missing HD image to Biofreaks - Added another Judge Dredd version with HD image - Set unknown dipswitches to 'Off' in Psychic 5 - Removed the 8.3 rom filename limitation - Misc fixes and tilemap conversions 0.77u3 - New games: Gals Hustler - New Working games: Hot Rod and Monkey Mole Panic - New clones: Kingdom Grand Prix, Power Instinct, Roller Aces and Street Fighter: The Movie, Sorcer Striker - New Non-Working games: Ashita no Joe, BioFreaks (prototype) and Malzak - YMF271 stereo sound support: Jaleco MegaSystem 32 - Desert War - CPU: Z80 with new osd_die() function and TMS9900 inline asm update - Namco sound core and YMF292-F SCSP updates - Fixed rom loading code in the ADSP2100 core and added ADSP2104 CPU variant - Some STV and SNES improvements - Seattle games: Correct graphics resolution, Voodoo, IDE controller and several DIP switch fixes - Added speedups to Blitz and Blitz 2000 - Change Violence Fight to use only one OKI M6295 chip - CPU clock fixes: Desert War, Monkey Mole Panic, Power Instinct, Violence Fight and Seattle games - Sound fixes: Monkey Mole Panic, Quiz Panicuru Fantasy, Unico games and Zero Point 2 - GFX resolution fixes: Roller Aces, Seattle games - Vball (Japan) use now graphics extracted from the origianl PCB (dip rom) - Dipswitches: Hot Rod, Gals Hustler, Macross, Quiz Channel Question, Quiz Mekurumeku Story, Seattle games - Added reconstructed proms to Liberator - Backgrounds in Miss Bubble 2 - Add all missing SHA1 checksums 0.77u1 + u2 - NOTE: 0.77u1 was not a public release - New games: 2x beatmania games, Grand Striker 2, Last Striker, Mahjong Angel Kiss, MegaTech: Tournament Golf, Mobile Suit Gundam EX Revue, NFL Blitz, NFL Blitz2000, Nettoh Quiz Champion, Rock'n Tread, Runaway and Thunder Ceptor - New Working games: Cookie and Bibi 2, Hatch Catch, Quiz Panicuru Fantasy, Thunder Ceptor and Video Pinball - New clones: Capitol (Pleiads clone) and beatmania 2nd MIX - New Non-Working games: BC Story, BioFreaks, Jackie Chan, Rabbit and Tokimeki Mahjong Paradise - New CHD format and management tools (chdman). Old CHD files must be updated. Make also sure you do a clean build of MAME - Z80: Found the way the OTIR/INIR instructions affect the PF flag - V60: Fixed a few floating point opcodes - 6522VIA and TMS9928a updates from MESS - YMF292-F SCSP fixes (improves music in some games a little) - Fixed YM2610 save states - Fixed sound in Top Player's Golf - Improve Raiden drum volume balance - California Speed: Added cpu2 sound rom (32k) - Added missing gfx3 rom to Bonks Adventure - Correct CPU clock speeds in Asura Blade and Seattle games - Correct video frequency in Blazing Tornado - Improve Mysterious Stone driver based on schematics - New background gfxdecode in Miss Bubble 2 (Bubble Bobble clone) - Dipswitch fixes: Cloak & Dagger, D-Day, Dangerous Dungeons, Grand Striker 2, Mysterious Stones, Smash TV, Suzuka 8 Hours1+2, Total Carnage, Games V18.7 / V25.4 / V3.2 / V8.3 and all M72 games - Merged taito_x.c and seta.c video hardware - Various other DIP fixes and tilemap conversions etc. 0.77 - New games: CarnEvil, Mace: The Dark Age, NFL Blitz '99 and Wayne Gretzky's 3D Hockey - New Working games: Dangerous Dungeons, Dark Tower, Guardians of the Hood, Offroad Challenge, Road Riot 4WD and T-Mek. Also Die Hard Arcade and Winter Heat (STV) - New clones: Alpine Racer, Double Dragon, Road Riot's Revenge, 4x Seibu Cup Soccer and The Simpsons - New Non-Working games: 11x Namco System 12, 5x Legionnaire driver games, Bonk's Adventure, California Speed, San Francisco Rush and Sports Fishing 2 - 3dfx Voodoo Graphics based hardware games (Seattle and Flagstaff > 20-30% with 3GHz machine) - Namco System 12 (PSX hardware) - Support for CAGE sound system emulation (Primal Rage) - Full sound in Grand Cross Pinball - ddragon.c: Fixed video & interrupt timing, interrupt handling, palettesize, MCU and sound - Allow a driver to have MSM6295s and plain ADPCM voices coexist - Various Atari improvements to drivers atarig1, atarig42, atarigt and atarigx2.c - M.I.A.: Fixed inputs/dips and visible area - Hatch Catch: Fixed CPU and sound clock speed, palettesize and dipswitches - Fixed Cue Brick NVRAM handler and added watchdog reset - Moto Frenzy: Added microcode proms and fix numbers of players and buttons - Preliminary CD driver for the STV game Sports Fishing 2 - Fixed Bishi Bashi Champ colors - Toffy and Super Toffy: Correct monitor/video frequency - Some input port defitinions fixes - Change gfx2 rom addresses in Legion - TMS32031 CPU core with a lot of fixes - Remove look-up table in Z80 DAA emulation - Improved some MESS-specific functionality in the UI 0.76u2 - New games: Space Attack / Head On, Quiz Panicuru Fantasy - New Working games: Several ST-V games - Hyperstone CPU improvements and fixes (X-Files, Racoon World...) - MIPS3 (R4000/R5000): Fix timer handling - R3000: Fix instruction timings for MULT/DIV - ADSP2100 CPU: Fix loading of 0 counters - MIPS3DRC: Fix FP rounding - Added better support for tweaking the X86DRC FP rounding modes - Sega RF5C68 sound rewrote (Shadow Dancer, Spiderman, Holoseum...) - Fixed YMF292-F SCSP crash with -nosound (STV games: Shienryu...) - More flags works now correctly in the Delta-T ADPCM module of the Y8950 sound - More sound effects in Cabal and Dead Angle (added 2x ADPCM sound chips) - Sample support in Armor Attack and Sundance - MSM6295 stereo sound in Grand Cross Pinball - Emulated some op. amps and RC filter circuits for the MagMax sound - Midway V-Unit update: Speedup handlers for all games, stereo output, correct ADSP2105 CPU clock speed implemented a few missing features in the Midway I/O ASIC, 100% sound in War Gods + NVRAM - Correct graphics resolution in Cue Brick - Decode background graphics in Thunder Ceptor II (not hooked up yet) - CPU and sound fixes in clone wc90b - Fix Xain'd Sleena attract mode hang - MESS specific file-IO functionality - Fix some hangs in the Soul Edge clones - New function: activecpu_eat_cycles(cycles) - Correct dipswitches in Dragon Unit, Asterock and Cue Brick - More input fixes - Better aspect ratio calculation on some rotated games 0.76u1 - New games: Cosmo, Super Speed Race, Thunder Ceptor II and beatmania (ver JA-B) - New Working games: Soul Edge, Tekken, Tekken 2, Xevious 3D/G, Prime Goal EX and Baku Baku Animal - New clones: Asterock, Sky Raiders, Superior Soldiers, Treasure Hunt, Paperboy, 720 Degrees, Championship Sprint, Super Sprint,APB, Blasteroids, Road Blasters, Xybots, Cyberball, Toobin, Vindicators, S.T.U.N. Runner, Skull & Crossbones, Hard Drivin', Race Drivin' and Steel Talons - Preliminary YMF292-F stereo sound in the ST-V games (Shienryu is mostly correct) - V60 improvements - Sega PCM: Fix pitch and out-of-range sample playing - Fixing various ST-V graphical issues and more games are 'watchable' now - Heli Fire with DAC sound and emulated background/foreground graphics - Improving MDEC decoding and more in the Namco System 11 games - Some Atari System 1 & 2 improvements with the new sets - Update zaxxon driver (merged with congo.c and correct Z80 CPU1 clock speed) - More MESS-specific functionality - Reversed harddisk.c back to 0.73 status 0.76 - New game: Bishi Bashi Championship Mini Game Senshuken - New Working games: VS. Freedom Force, VS. Super Xevious, 6x Street Fighter II CE bootlegs - New clones: Mad Planets, Q*Bert and a couple of Gauntlet, Gauntlet 2 and Vindicators Part II - Added missing sound in Insector (prototype) - Activate background collision in Jumping Cross - Blasto: Readded code to the blockade driver - Fixed invalid dipswitch in Big Event Golf - Various ST-V and SH-2 improvements - Update stv and vsnes drivers 0.75u1 - New game: Pro Yakyuu Nyuudan Test Tryout - Fix remaining timer system related bugs - Fixed default.cfg saving - Fixed Speedup for R3000 version of Area 51 / Max. Force Duo - Mogura Desse with DAC sound - Gorkans (Mr. TNT clone) with correct gfx roms and color prom - Service Mode and dipswitches for dbz and dbz2 - Cleaned up SH-2 core a bit 0.75 - New games: Dodgem, Lady Frog, Marine Date and Whizz - New playable games: Sundance (controls now emulated), Main Event (add missing sound etc.) - New clones: Sub Hunter, Tempest, Route X, Dig Dug, Lunar Battle, Cloak & Dagger, Gorkans, Street Fighter II, Marvel Super Heroes and Task Force Harrier - Dodgem and Super Invader Attack with 768x720 video / graphics resolution - Canyon Bomber: Add hiscore reset button and language ROM, fix CPU clock speed, sprite positions, memory and VBLANK duration - Snow Bros.: Merge all gfx1 roms, fix sound and video frequency - Improved Super Chase sample loading - Set Dorachan orientation from horizontal to vertical - Correct audio Z80 CPU2 clock speeds: aburner.c, outrun.c and all system16.c games - V60, i86 and TMS34010 CPU fixes - Update timer system - Fix screenshot saving (artwork) - More necessary interleaving in the harddriv.c games - namcos22 improvements (Prop Cycle) - Replace main Z80 with a 8080 in KO Punch and in Cabaret the Z80 with a Z180 - Change video frequency in 3in1semi, 4in1boot, cookbib2, htchctch, hyperpac and moremorp - Fix gfx roms addresses or dipswitches: ridger2j, ridgeraj, airco22b and victlapw - Clock speed changes in bmcorerm, bmcompmx, bm4thmix and hmcompm2 - Added missing toms to: timecrsa and tharrier - Correct driver status of the Non-Working games 0.74u2 - New games: Dorachan, Demoneye-X, Jumping Cross, Bakuretsu Breaker and The Dealer - New clones: Black Jack, Champion Golf, Depthcharge, Driving Force, Dynablaster, Food Fight, Mighty Monkey, Phantomas, TouchDown Fever2 - Removed TESTDRIVER system. All drivers are now enabled - V60 CPU: added NEGF opcode, fix interrupt stack and floating point operations - SegaPCM: Fixed looping samples and another sampleplay bug - MCU emulation in Tiger Heli - Fix Act Fancer continue screen graphics - Space Invaders and Galaxian test roms support - Remove pedal hacks in Bradley Trainer, Cruis'n USA/World, Hang-On and Off Road Challenge and replaced them with the new z axis. - Correct roms in Suzuka 8 Hours - Fix Time Pilot '84 graphics bug - Correct cpu1 roms order in Food Fight - YM2151 or YM2203 clock speed changes in all Sega System16 games - Change graphics resolution in Egg Venture - Fixes to Red Alert and Demoneye-X - Better default key and mixer settings save - Improve hard drive image compress by reducing dupe blocks 0.74u1 - New games: Big Bucks, Driving Force, Embargo, Porky - New clones: 8 Ball Action (Pacman Kit), PuzzLoop (USA) - Add wrappers for handling MAME configuration files (config.c) - Further ST-V improvements and made various SH2 fixes - I8085 fixes from MESS - Changed Frogs to use a 3 way joystick - Added Paddle support to Pop 'n Bounce - Fixed some problems with defaults in inptport.c - Fixed crash in Nostradamus and original Mustang set - Remapped some of the midtunit/midwunit/midyunit.c buttons to match the real board inputs - Fixed SegaPCM sound - Improvements to the KonamiGX type1 games. - MAME now recognises off-screen shots with the Act-Labs gun - Remove light gun inputs from the non-gun PlayChoice-10 games - New TESTDRIVER: Competition Golf Final Round, (Medal) Yumefuda 0.74 - New games: Super-X, 3 new MegaTech sets, Dancing Eyes, Quiz & Variety Sukusuku Inufuku, Kosodate Quiz My Angel 3, Ojanko Club, Miyasu Nonki no Quiz 18-Kin - New clones: Apocaljpse Now, Bang!, Explorer, Hangly-Man, Natsuiro Mahjong - Interrupt changes in playch10 and vsnes games - Add support for 8 controllers and better controls settings in User-Interface - Improved loading of .72 cfg files - Fix uPD7759 sound (sample end, silence) - SegaPCM sound cleanups and fixes - Update V60 crash (Ultra X Weapons) - Improvements to Chequered Flag protection and sound - Changed Afterburner inputs to use z-axis for throttle - Correct graphics in Pit & Run - More ST-V improvements - Correct MSM6295 clock speed in Blue Hawk, Gun Dealer '94 and Sadari - Correct M68000 and MSM6295 clock speed in R-Shark - Correct ADSP2105 clock speed in several: kinst.c, Midway T-, V-, Wolf- and X-Unit - Misc source changes to improve compatibility with MESS - Games removed: Gunbarich, Snow Brothers 3, Vasara 2, Neo-Geo Zupapa!, The King of Fighters 2001 and Sengoku 3 0.73 - New games: Hanagumi Taisen Columns, Sprint 8, Super Trivia Master, Twin Eagle II, Ultra X Weapons - New clones: Pengo, Ladybug, Video Pool - Support for STV games (Hanagumi Taisen Columns) - Change Input ports handling up to 8 players - MegaPlay BIOS menu tests pass now - MAME code inline with MESS - Fix Z80 and YM2203 clock frequency in Combat School - Change input from dial to joy8way in Block Block - Correct input and dipswitches in Atari Soccer, macrossp.c and cps1.c - Improve Super Dodge Ball HD63701 MCU simulation - Konami GX improvements - New TESTDRIVER: Konami GX games - Golfing Greats 2, Rushing Heroes, Slam Dunk 2 0.72u2 - New games: Speed Attack, Mogura Desse and 13 new MegaTech sets - New clones: Super Bike, Hard Dunk and CPS2 clones - Support for Hyperstone E1-32XS CPU core: X-Files (dgPix 1999), Racoon World (Eolith) - Update the 8085 CPU core (MESS additions) - C 68000 core bug fix (Violence Fight) - Add patch to guard against OP_ROM/OP_RAM overflows - Removed DCS audio speed-ups in the games: kinst.c, Midway T-, V-, Wolf- and X-Unit - Correct sound in Dragon Blaze (new sound rom) - Fix remaining problems in Knuckle Joe - Fixed Players don't jitter as much walking on slanted surfaces in ssriders (needs testing). - Fix sprites in rockrage, bladestl and battlnts - Correct palettesize in Asura Blade, Go! Go! Mile Smile, Gyakuten!! Puzzle Bancho - Correct graphics resolution in TMNT2, qgakumon - Fixed sprites in Rock 'n Rage, bladestl and battlnts may also need this. - Improve speed and fix continue screen in Mustache Boy - Fix resetting and screen darkening in Quiz Gakumon no Susume - Improvements to the Megaplay, Fuuki and ST-V games - Dipswitch fixes: 1941, Turbo Force, Tetris Plus 2 (MS32 version) and others - Listinfo changes: I8080, 8085A CPU names to 8080 and 8085A - New TESTDRIVER: Hyperstone based games: Vamp 1/2, Hidden Catch, Land Breaker, Racoon World and X-Files 0.72u1 - New games: Asura Blade, Gaia Crusaders and Street Heat - New clones: Eight Ball Action (DKJr conversion), Tecmo World Cup '90 (trackball) - Fixed remaining protection problems in TMNT2 and Sunset Riders - Sunset Riders: Clear the garbage sprite that sticking on screen and Billy no longer goes berserk at stage 4's boss. - Preliminary star field simulation in the Aeroboto / Formation Z - Eight Ball Action with color proms - System 16 driver fixes (aliensyn, dduxbl, hwchamp, wb3 and wrestwar) - Fixed sound in Super Doubles Tennis, Gladiator 1984 and equites.c - Fixed sticky sprites in Detana! Twinbee. - Correct graphics resolution in formatz, qgakumon, scion and tmnt2 - Correct palettesize in halleys and benberob - Added Discrete_Components sound to scion and stinger - Improve and cleanup the bwing, wecleman and sidearms driver - Changed Fuuki 16-bit driver to use partial updates for raster effects. 0.72 - Support for GI SP0250 speech (Astro Blaster, Space Fury, Star Trek and Zektor) Speech samples can be removed from the sets - Fixed Mad Crasher bad background, sound effects and foreground priority - Cleanups and improvements to vector games (quantum, tempest, starwars, aztarac, cchasm, cinemat.c, sega.c) - Fix Combat School music tempo - Improve Star Sweep graphics - Fixed music tempo, shadows and reduced sprite lag in Gladiator 1984 - Capcom Sports Club and Dungeons & Dragons are now playable (new user1 roms) - Improve Genix protection and tilemap scroll - Pirates now playable - Fix music trashing in ASO and HAL21 - Improve scrolling and color in ASO - Correct graphics resolution and CPU clock speed in Dominos and Sprint1/2 - Added Clipping to the Sega vector games - Improve the Tiger Heli MCU simulation - Fixed tile flip in mermaid.c - Various dipswitch fixes (Zero Hour, Power Instinct) - Some Nintendo Super System and Megatech improvements and fixes - CPU and Sound: Fixed i803x jumps, fixed BCD conversion in G65816, 6821 PIA fixes and added state save support for i86 and i286.c - MAME32: Expanded the reach of the ctrl-f text filter - New TESTDRIVER: Shooting Gallery (1984), Street Heat (1984), Drakton (198?), Gaia Crusaders (1999), Tech Romancer (1998), Crounching Tiger (NeoGeo 2003) - Favorites: Sprint 4, Pit & Run and Special Forces 0.71u2 - Support for Nintendo Super System games (Act Raiser) - 9x new MegaTech games - New games: Big Event Golf, Great Guns, Taisen Hot Gimmick, Strike Bowling, Super Speed Race Junior, Xor World - Some more MegaTech emulation progress - Houge improvements in Prop Cycle - Fixed sound in LSA Squad - CPU interrupt improvements fixing the Exidy 440 games, Ultimate Tennnis and the Seibu Sound System - Fixed CPS2 raster effect - Fix sprites being hidden by track in Four Trax - Changes to the snapshot code - Stopp Nova2001 from resetting when a coin is inserted - Fixed reset in robokid - Converted more drivers to the tilemap - New TESTDRIVER: 11x Nintendo Super System Games Mazer Blazer, Little Casino, Super Draw Poker 0.71u1 - Support for Sega MegaTech and MegaPlay games (Sonic The Hedgehog) - New clones: Land Maker (World Prototype) - GI Joe with many improvements - Run and Gun is now playable - Added missing rowselect effect to toaplan2 driver (bbakraid, batrider) - Correct graphics resolution in Nova 2001 - Cocktail in Mode to Mole Attack - Converted more drivers to use tilemaps - Fixed filenames in Namco System 11 driver - Some compiler fixes - New TESTDRIVER Sega MegaTech: mt_beast, mt_astro, mt_gaxe, mt_gng, mt_smgp and mt_wcsoc Sega MegaPlay: mp_gaxe2 0.71 - New games: Boxer, Magical Spot and Star Sweep - New clones: Sengekis Striker, Maximum Force, Space Invasion, 2x Underfire, Puzzle Bobble and The King of Fighters '99 - Everything from 0.70 u1 - u5 - Support for PSX arcade hardware games (Star Sweep) - Page UP/DOWN keys for reading the datafiles - Improved graphics in Strato Fighter and Super Pinball Action - Correct CPU1/CPU2 rom loading and graphics resolution in Battle Lane - Fixed colors in Sauro - Improved AY-8910 noise generator - Fixed MultiPCM banking for Stadium Cross - Converted a bunch of drivers to tilemaps, fixed dipswitches etc. - Correct aspect ratio in Road Fighter - Fixed MSM6295 clock speed and palettesize in driver gaiden.c - New TESTDRIVER: 4in1boot, rougien, Capcom ZN1: glpracr Capcom ZN2: sg2j Tecmo ZN1: glprac2l, tondemo and brvblade Taito FX1a: psyforce, sfchamp, mgcldate, mgcldtea Taito FX1b: raystorm, ftimpcta, gdarius, gdarius2, beastrzb Namco System 11: tekken, tekkena, tekkenb, tekken2, tekken2a, tekken2b, xevi3dg, souledge, souledga, dunkmnia, danceyes, primglex, starswep and myangel3 0.70u5 - New games: R2D Tank and Stadium Cross - New clones: 2x Final Lap 3, sfz2ab, ssf2tu, vhunt2 and xmvsfb - Improvements and fixes to Strato Fighter / Raiga - Fixed misplaced sprites in Tricky Doc - Fixed sprites in Simpsons - Steel Gunner with correct gfx1 rom - Suzuka 8 Hours 2 with correct sound1 rom - Dipswitch fixes in drivers: gameplan.c, cps1.c, ms32.c, freekick.c, wwfwfest.c, exidy.c, suprnova.c, seta.c and system16.c - MAME uses now 'mame_timer *' instead of 'void *'. - Fixes a bug in visible area changing in windowed, non-stretch mode. - Drivers artmagic.c, centiped.c, namcona1.c, namconb1.c and namcos1.c use now mame_rand for random numbers. - namcos2.c fixes for things broken in u4 - New TESTDRIVER: Counter Run (bootleg) 0.70u4 - New games: Final Lap, Final Lap 2, Final Lap 3, Four Trax, Suzuka 8 Hours and Suzuka 8 Hours 2 - Tilemap viewer now displays a more logical ordering - Broadened support for palette_offset - Speedup when ROZ layer rapidly switches palettes (Metal Hawk 2nd stage) - Fix "Tank" stage in Point Blank - Improved Namco road emulation (namcos2.c, namconb1.c, namcos21.c) - Fix palettesize and lots of consolidation/cleanups in namcos2.c - Fixed dipswitches in Silent Dragon - Rom additions: Prop Cycle - New TESTDRIVER: R2D Tank, Cyber Commando, Air Combat 22, Cyber Cycles and Time Crisis - Favorites: Final Lap, Four Trax and Suzuka 8 Hours 0.70u3 - Added Dock Man (1982 Taito) and Battle Cry (1991 Home Data) - Banpresto games (cave.c) with region select via dipswitch - Correct colors in Mustache Boy and Tricky Doc - Colour map in Enigma 2 - Clock speed fixes in Enigma 2 and Mustache Boy 0.70u2 - Added Enigma 2 (1981/84 Zilec Electronics) - Various sound improvements to YM2610, YM2608 and Y8950 - Many dipswitch and input fixes - Fixed Audit function with optional roms - Paddle 2 (Arkanoid clone) with preliminary MCU simulation - Fixed I86 DAA opcodes 0.70u1 - Added Grand Tour (1993 IGS) - Wolf Pack with correct graphics (driver rewrote) - Update dbz, moo and simpsons - More D3D Code fixes - Fixed BIOS selection - Better and easy compiling under VC6/7 & older non-c99 compilers 0.70 - Added clone (Korosuke Roller and KOF98) and a testdriver for 'DJ Boy' - General Konami GX and sound improvements - Documentation updates (windows.txt) - Improved BIOS selection - Update MCU data and handling in Chack'n Pop. - Bugfixes in Xexex - Battle Lane, Shoot Out and armedf.c: Added cocktail support to all games. - D3D updates / fixes 0.69u3 - 10 new clones - Direct 3D update (cleanstretch) - Correct colors in Ozon I - Tugboat now full playable - YMF278B: Stablise the tuning on looped samples (noticable in parts of s1945 at least) - Update asm 68k core (matches now the C core) 0.69b - Second source diff update - 4 new games (Evil Stone, Glass, Mustache Boy, Space Cruiser and Tri-Pool) and a Final Fight clone - Various fixes to the PIC16C5x core and PIC HEX dumps for Dragon Master and Big Twin. - Sound in Big Twin - Fixed vocals in Kyukyoku Sentai Dadandarn - Added 'JOYSTICK_RIGHT' to the Input of Moon Shuttle - Fixed dipswitches and inputs in Broadwalk Casino. - Added Calender to the PGM games - Fixes some of the problems with the new timer code - Favorites: Evil Stone, Tri-Pool and Space Cruiser 0.69a - First source diff update - 3 new games (Dragonball Z, Guts'n and Ozon I) and 4 clones (Ambush, Frisky Tom, Kyros No Yakata and King of Fighters '95) - Optional XML output - A number of changes to the Timer System - Tuned engine sound frequency in Drag Race - Changed Joystick input control in Metal Soldier Isaac II - Fixed EEProm in Head Panic - NeoGeo: Fixes and Save-State support - PC-IDE controller update and DMA bus mastering support (future) - New TESTDRIVER: Stadium Cross (multi32.c) and Photo Y2K (pgm.c) - Favorites: Ozon I 0.69 - 4 new games (Broadwalk Casino, Naughty Mouse, Paradise and Wolf Pack) and over 20 new clones - Support for original Atari Tunnel Hunt - Improvements and bug fixes to the Direct 3D Blitting - Fixes to the PIC CPU core - Various MCU fixes in Birdie King 3, Chack'n Pop and Tiger Heli - Correct Dragon Master dipswitches and frequencies - Added colours in Clash Road and Progress (with 3rd button for aiming) - Correct sprite priority in brkthru and darwin - Fixed scrolling in One Shot One Kill - Fixed Yamato graphics - Discrete Sound update to Atari Baseball, Atari Basketball, Avalanche, Dominos, Drag Race, Night Driver, Orbit, Sprint 2, Subs - Fixed FM sounds in maglord - Added new accurate samples to Circus - Fixed the sound loading in some Taito F3 games - Listinfo: Change to "flags nodump" and "flags baddump" - Favorites: Wolf Pack 0.68 - Sega System24 games (Quiz Ghost Hunter, Quiz Mekurumeku Story and 2x Mahjong) - Support for games based on Sega's SG-1000 console: Champion Boxing, Champion Pro Wrestling - Basic Direct3D blitting support - Source/listinfo: Support for SHA1 hash checksum - Discrete sound update to Asteroid, Atari Baseball, Atari Basketball, Atari Football, Atari Soccer, Canyon Bomber, Dominos, Lunar Lander, Sprint 1 and Super Bug. - Support for Fire Battle with a patch, Salamander 2 (KonamiGX) and Vasara (SSV) - Sound emulation to Macross Plus and Quiz Sailor Moon - TIA sound support in Tournament Table. - Correct graphics resolution: Atari Baseball, Atari Soccer, Bermuda Triangle, Gaiapolis, Hard Dunk, konamigx.c, Outrunners, Regulus, Water Match - MCU/MCU simulation: Birdie King 3, Chack'n Pop, Chuka Taisen, Kick Start Wheelie King, Metal Soldier Isaac II, The Legend of Kage, The New Zealand Story and Tiger Heli - Correct graphics: Clash-Road, Cosmic Alien, Devil Zone, Gaiapolis, Guerrilla War, Hyper Duel, Kyukyoku Sentai Dadandarn, Magical Spot II, Martial Champion, Mystic Warriors, No Man's Land, PlayChoice-10: Mike Tyson's Punchout - Correct CPU clock speed: Cosmic Alien, Devil Zone, I'm Sorry, Magical Spot II, No Man's Land, Regulus, Space Panic, ssv.c, system1.c, SWAT, Water Match - Correct monitor/video frequency: nemesis.c, Thunder Dragon 2, Under Fire - Correct sound: Guardians, TouchDown Fever, Under Fire - BIOS file changes: neogeo.c, stv.c and suprnova.c - System32 and Konami GX update - Dual screen support: Sega System Multi 32 - Various new clones - New TESTDRIVER: China Dragon, F1 Grand Prix Star 2, Grand Tour, Great Wall, Hot Smash, Joryuu Syougi Kyoushitsu, Konami's Open Golf Championship, Main Event, Raiden 2, Shougi/2, Space Bugger, System 24 (Bonanza Bros, Hot Rod and others), Thunder Strike and Ultra Weapon X - Favorites: The Deep, Horizon, Chack'n Pop, Galaxy Gunners and Kick Start Wheelie King 0.67 - Sega Multi System 32 games: Outrunners and Hard Dunk - Konami System GX games: Twin Bee Yahhoo!, Sexy Parodius, Lethal Enforcers... - Konami pre-GX games: Mystic Warriors, Violent Storm, Gaiapolis... - More Data East 32 games: Tattoo Assassins, Dragon Gun, Locked 'n Loaded - 32-bit shadow and highlight support (Konami GX) - Better collision detection in Halley's Comet - Dynamic recompiling for Killer Instinct - MIPS 4 (R5000) CPU core - PIC16C5x CPU core: Dragon Master - Sega 315-5560 "MultiPCM" sound chip emulation - HuC6280 sound emulation: Music in Battle Rangers - Fixed sample playback in the M72 games - Several improvements to Championship VBall - Fix CPU cycle count and timer functions - uPD7759 sound fixes: Puyo Puyo 2 - Fix RF5C68 sound (System 16) - Dozens of corrections to game description/flags - New options -autoror/-autorol - Remove Rafflesia (not encrypted) - New TESTDRIVER: Sega Multi System 32: Title Fight Data East 32: Night Slashers KonamiGX: Racin' Force, Dragoon Might, Soccer Superstars, Tokimeki Memorial, Salamander 2, Versus Net Soccer and Run and Gun 2 - Favorites: Dead Angle, Tecmo Bowl, Complex X and Boggy '84 0.66 - Halley's Comet and Ben Bero Beh - Discrete sound in Canyon Bomber, Polaris, Sprint1/2 and Ultra Tank. - Improvement to Asteroids explosion sounds. - Samples for Circus, Clowns, Dog Patch and Seawolf - Sound in IQ Block - Stereo sound in the Namco NA games: Exvania, F/A, Knuckle Heads, Emeraldia, Tinkle Pit - Correct gameplay and video emulation in the PlayChoice-10 games: Gauntlet, Rad Racer II, Track & Field - CPU clock speed changes: Cosmic Cop, Dream Soccer '94, Dynamite Duke, Fire Barrel, Raiden, Shadow Warriors, Raiga - Strato Fighter, Wild Fang, Namco NA and Irem M72 and M92 games. - Sound clock changes: One Shot One Kill - Fix graphics in Gratia - Complete the DIP switches in many VSNES games - Fix uPD7759 sound: System16, Sega C2 and Twin16 games - Correct raster effects in the second Robocop 2 road level. - Fixes to Super Real Darwin, Lethal Thunder, Pachinko Sexy Reaction and Royal Mahjong games - Fixed V20/30/33 core bug (timer) (ID 01056) - Inp record / playback fixes - Many game names, manufacturer and years fixes - Favorites: Halley's Comet, Dorodon, Mad Shark and Mighty Bomb Jack 0.65 - Starfield emulation in Sidearms - Discrete sound in Fire Truck, Super Bug, Monte Carlo. - Fixed uPD7759 speech processing (TMNT, 88 Games, P.O.W.) - Seta Stereo Custom Sound Chip X1-010 (Twin Eagle, Caliber 50, Meta Fox, Blandia) - Optimized V60/V70 memory access - Sega System C/C2 game 'Ribbit!' - Fixed sound effects in Avengers - CPS-2 raster effects fixes - Improvements to Jaleco Mega System 32 and more games (hayaosi1, kirarast) - Cleanup the Nichibutsu Mahjong drivers, add more games and LCD support in bijokkog, bijokkoy, housemnq, housemn2 - Graphics resolution fixes: arbalest, gundhara, metafox, zombraid - CPU clock speed fixes: avengers, lwings, sectionz, trojan - Improved the decryption in the Crazy Climber bootlegs - Remove the ST-V games Die Hard Arcade and clone Dynamite Deka - Favorites: Mouser, Perestroika Girls and Ribbit! 0.64 - Art & Magic games (Ultimate Tennis, Cheese Chase, Stone Ball) - First Sega ST-V game (Die Hard Arcade) - only use the test menus! - uPD7807 support in the Home Data games (Reikai Doushi/Chinese Exorcist and Mahjong games) - Sound in Reikai Doushi - I8751 protection simulation in Fire Trap - Fixed priorities and shadows in Skull & Crossbones - Fix video emulation in Robocop 2 - Correct monitor frequency and palettesize in Traverse USA - Better palette chip emulation in Battletoads, Art & Magic and itech8 games - Sega System 32: Correct graphics resolution in Rad Rally and Sonic - Mameinfo- and History.dat: Faster data file handling - Favorites: Enforce, Shot Rider, Ultimate Tennis and Crowns Golf 0.63 - Sega System32 games (Sonic, Spiderman, Rad Mobile, Holosseum, Burning Rivals...) - More Harddisk games: Killer Instinct 1, 2 and War Gods - DECO_CPU16 support: Kamikaze Cabbie, Boomer Rang'r, Liberation - Status Trivia game driver - Gaelco CG-1V/GAE1 games with GAELCO_GAE1 sound (Alligator Hunt, World Rally 2, Bang!, Maniac Square, Snow Board Championship) - Colors fixed in Dynamic Ski, Formation Z and Legend - Subroc-3D, Turbo and Buck Rogers with artwork and LED counters - Graphics zooming to the Flower and fxies to No Man's Land - Namco_NA sound in the Namco NA-1/2 games (Exvania, F/A, Knuckle Heads...) - ADSP2115 sound in War Gods (Midway 1996) - Better YM2413 sound emulation and fixes to YMF278B. - Drum sound in YM2608 (check Tail 2 Nose) - Fix MSM6295 sound (Steel Force, Got-cha) - Fix sound frequencies in Penguin-Kun Wars - Fix YMF278B sound frequency (Space Bomber, Strikers 1945...) - Subroc-3D with samples and Galaga with new 'init.wav' - I8751 protection in Birdie Try - Many game description changes - Listinfo changes: OKI6295 to MSM6295 - MAME source complied with MinGW 2.0/GCC 3.2 now - New MAME options: rdtsc, pause_bightness, oslog, skip_disclaimer, skip_gameinfo - Favorites: Moon Shuttle, Dr. Micro, Kamikaze Cabbie, P-47 Aces and Sharpshooter 0.62 - Atari harddisk games (Area 51, Maximum Force and Vicious Circle) - Cruis'n USA and Cruis'n World (P4/AthlonXP - 4 GHz recommended) - 3D polygon games: Solvalou and Starblade (Namco System 21) Prop Cycle (Namco System 22) - Namco System 2 update: Metal Hawk, Steel Gunner 2 - New CPU cores: TMS32031 and Jaguar GPU & DSP - V70 CPU support in the Jaleco Mega System 32 - Super Kaneko Nova System: Cyvern, Puzz Loop, Panic Street - Sprite alpha blending in the Taito F3 games (Darius Gaiden, Arabian Magic, Bubble Bobble 2, Elevator Action Returns) - Better CPS-2 raster effects emulation - Improved road generator and NB1-style sprites (Lucky & Wild) - Birdie King/2 and Mega Man 2 now playable - Added YMF278B sound (preliminary - missing FM support) to Bal Cube and Bang Bang Ball - Sound emulation to Many Block, Thunder Dragon (bootleg) and Task Force Harrier. - M6809/YM2151 sound in Toffy and Super Toffy - Sound in US AAF Mustang (bootleg), Blazing Tornado and Hard Drivin' - Battle Bakraid with fixed music and sound effects - Mr. Kougar with correct sound (TTL7474 clock) - Improved discrete sound in Asteroids - Fixed NBA Jam sound by removing the speedup hacks - Fixed sprite zoom in Aero Fighters and several fixes in Gunbird - Sky Chuter, Space Beam with orientation & resolution fixes - Correct sprite/background priorities: ThunderJaws, E.P.Robot Monsters, Relief Pitcher and Shuuz - V60 CPU core fixes - NeoGeo: Fixed cracking and missing sounds effects - Listinfo changes: 8080, 8085A, I86 and I186 CPU names to I8080, I8085A, I8086 and I80186 320C10 to TMS32010 AY-8910 sound chip name to AY-3-8910 - TESTDRIVER's are now part of the database used by -romident and -isknown - Favorites: Sky Raider, Starship 1, Bradley Trainer, Magical Cat Adv. and Solvalou 0.61 - New artwork functions (flexible and easier to use) External .art files!! - Ripcord, S.P.Y. and Inferno are now playable - 4 Player Bowling with 'off screen bonus display' - Support for colors in Sheriff - Artwork in Sky Diver - Support for the lamps in Gorf - Added raster effects in Hyper Duel and the CPS-2 games - Alpha blending and brightness control in the Psikyo SH-2 games - Better alpha blending, zooming and graphics priority in Taito F3 games - Correct colors in Dynamic Ski and better color decoding in Saturn - Fixed graphics in Fast Lane, Labyrinth Runner, Combat School, Pinbo, Outfoxies and Great 100 Miles Rally 2 - Fixed car sprite stuttering in Wec Le Mans 24 - Better raster effects in the NeoGeo games - Add sound and improve colors in HAL21 - Fixed a few sound bugs in Hot Chase and Spinal Breakers - Fixed sound in Rampart, Elevator Action Returns and the SNK games (chopper, tdfever, ftsoccer...) - System16: Outrun and Space Harrier with shadows and other bug fixes - Improvements to Fire Truck and Super Bug - Better protection emulation in Funky Jet - More drivers with light gun support - Configurable vector intensity - Konami 053936 emulation for 3D graphics in Golfing Greats - VIA 6522 chip emulation in Leprechaun - Fixed the AY8910 emulator which caused missing sounds in some IREM M-62 games (kungfum, battroad, ldrun, spelunkr...) - Fixed missing / incorrect music in some NeoGeo games - Discrete sound in Super Bug - Fix the V60 core (Super Real Mahjong Part 4 and 7 now playable) - Fix a timing bug in the M6809 CPU core - Sound core fixes to YM2413, YM2151, Irem GA-20 and K007232 - Fixes to the 8080bw and z80bw drivers - Improve the random number simulation (Splatterhouse, NeoGeo) - Favorites: Splendor Blast, High Voltage, Dog-Fight, Lethal Crash Race, Roller Jammer, Tube Panic, Red Robin 0.60 - Full colors in Wec Le Mans - Support for PGM System and Atari GX2 games - Fixed Super Puzzle Fighter 2 Turbo - Color overlay in Bandido (Sheriff clone) - Crush Roller with correct colors. - Fixes to Batsugun and Kiki KaiKai - Formation Z and Block Gal playable - Fixes to SH-2 CPU - Soundchip improvements to GA20, YM3812/YM3526 and Y8950 - World version for several games - Many fixes of reported bugs - Support for external controller config-files - Favorites: Great 1000 Miles Rally 2, Tank Busters, US AAF Mustang and Hyper Duel 0.59 - New Hitachi SH-2 CPU core (Psikyo - Strikers 1945 II, Space Bomber...) - New R3000 CPU core (Police Trainer). - Knuckle Joe, Gold Medalist and Tee'd Off are working now. - Buck Rogers samples are working. - Blades of Steel and Super Stingray with full sound. - New rewritten UPD7759 emulator (used by TMNT etc). - Correct sound in Sports Match. - Fixed the DAC sound in Finalizer. - Fixed voice playback in Pistol Daimyo no Bouken. - Fixed stereo sound in the Taito dual/triple screen games (Darius 2...) - Correct ES5505 clock speed in all Taito F3 games. - Correct colors in Hexion and Kyros. - Fixed C-Chip emulation in Rainbow Islands. - Fixed color in the 2nd last graphics bank of Gang Wars. - Fixed waves in the Destroyer with other improvements. - Support for the World version of Dynasty Wars and Magical Crystals. - MMX implementation of the tilemap drawing code (5-10% speed increase) - Favorites: Police Trainer, Wild West C.O.W.boys, Pass and Super Pinball Action 0.58 - Captain America (ARM CPU) and Lemmings (Lets Go...). - Partial screen updating in classic Williams, Williams Y-Unit, Exidy 440, Hard Drivin', BattleToads, Gridlee, Qix-hardware, and Leland games. - Better vector sparkle effect emulation in the vector games (Major Havoc, Tempest...). - Cloud background scrolling in Phantom II. - Artwork in Boot Hill. - Overlay in Phantom II and Gunfight. Also faster artwork functions. - Full VLM5030 sound emulation (Punch-Out, Arm Wrestling, Track & Field, Super Basketball, Yie Ar Kung-Fu, Jail Break, Double Dribble, Rock 'n Rage...). - Sample support for Buck Rogers and Gridlee (partial + Custom). - Sound in Welltris. - Support for high colour pictures in Robocop 2. - Fixed the bad sprites in Gunnail. - MAMEW with new blitting effect "-effect sharp". - Support for the CPS2 game 'Marvel Vs. Capcom: Clash of Super Heroes'. - Source: Change the way machine drivers are set up (macros). New macros to enforce naming conventions. - Favorites: Lemmings, Angel Kids, Captain America and Steel Force 0.57 - Buck Rogers and Subroc-3D (SEGA 1982) and Destroyer (Atari 1977). - Support for MSM5232 sound in Fairy Land Story and Buggy Challenge. - Correct colors in Exerion, Quantum, Battle City and Vs. Tetris. - Fixed background color in Van-Van Car + correct graphics resolution. - Big changes to the Cave driver (fixed missing sprites in Mazinger Z). - Turbo with 60Hz and correct region gfx2/3 roms order. - Fixed sound problems in Twin Qix and Kirameki. - Better YM2203 sound emulation (Heavy Barrel, Dark Seal). - Fixed a few TMS34010 CPU bugs (Exterminator with all sprites) - Support for SSV games (Drift Out '94, Monster Slider and Survival Arts). - BSMT2000 sound emulator in Battletoads. - Correct graphics resolution in Continental Circus and Bonze Adventure. - New rom dumps for aafb, ddtod, tetrisp2, xmcota, xmvsf and av2mj1bb. - Support for Z180 CPU (Mosaic). - Two new RAINE games (Acrobat Mission, Air Gallet). - Fixed background graphics in Alley Master and Power Play. - All American Football wih full graphics. - Protection emulation in Pop Flamer. - Some progress in the Asteroid sound emulation. - Fix to the 68020 CPU core which fixes a crash in Under Fire. - Gameplan games (Kaos, MegaTack, Killer Comet) are working again. - Support for the NeoGeo game 'The King of Fighters 2000'. - Region gfx changes in the NeoGeo driver. - Favorites: Buck Rogers, Super Cross 2, Sky Base, Forty-Love, PlayBall, Popper, Subroc3D, Destroyer 0.56 - Moved bitmap allocation to the core code as opposed to being in the OS-dependant code (osd_bitmap -> mame_bitmap). - Color Overlay in Demon. - Decrypt Spatter (Sega System 1) - Accurate sound in the Exidy games (Venture) - Correct YM2610 sound (Chase H.Q) - Vampire Savior (vsav) works now correct (+ vm3ux.03d/04d region user1) - Megazone with correct gfx2 rom (sprites). - Spyhunt with correct cpu1 region $a000 rom. - Pipe Dream with palettesize 2048. - Lasso with new resolution 223x256. - Do! Run Run and Mr. Do's Castle with a third Z80 CPU (function not clear) - Big Karnak with correct background (tilemap) - 'The Hand' samples are now thehand.zip (gotya.zip before) - NeoGeo: New games and many changes (ng-lo.rom (region gfx3) to neogeo.zip) - Cheat engine: Support for NVRAM (EEPROM buffer) modification - Many cocktail mode fixes and DIP switch settings in Irem M107 and M92 drivers. - Favorites: Spatter, Water Match, Wai Wai Jockey, Rafflesia and Chameleon 0.55 - Road graphics in Top Speed - Hole Land with correct grafik resolution (512x488 - from Crazy Rally) - Sound in Money Money and Jack Rabbit - Correct IREM M92 sound channels and palette (Gunforce, Uccops) - Taito-Z games: ChaseHQ/2, Night Striker, Battle Shark, Aqua Jack (World) and Continental Circus with status good - CPS-2 games (e.g. Darkstalkers) with status good - Aztarac with 32768 palettesize - US version of Space Invaders DX - Correct 'Land See Air Squad' region proms - All vector games uses now the direct RGB modes (see tempest) - Removed Kick Start Wheelie King, Block Gal and Aeroboto (formatz clone) - Favorites: Crazy Rally, New York New York and Sky Smasher 0.54 - Fixed road in Top Speed - New adjusted 'Discs of Tron' Artwork - GA20+Y2151 sound in Dream Soccer '94 - Fixes to YM2610 and YM2151 emulation - Sound in Clash Road - Removed Formation Z, Shooting Master, Gardia, DakkoChan Jansoh and Ufo Senshi Yohko Chan - they are now TESTDRIVERS (). - Many fixed MAME Testers bugs - Favorites: Time Limit and Youjyuden 0.53 - Full sound in R-Type Leo, In The Hunt, Mystic Riders, Hook, Blade Master, Lethal Thunder. - ES5505 sounds better now - Real shadows in some SNK & Konami games: 88 Games, Chequered Flag, X-Men, Asterix, Surprise Attack, Sunset Riders, Ikari Warriors, Victory Road... - Correct tempo and colors in Cop01 - Fixed background colors in Berlin Wall. - Bomberman and Bomber Man World with now 8MHz V30 clock - Blaze On and 'atetris' with new CPU and Sound clock frequenz - Strength&Skill, Pettan Pyuu and Ikki with now 2MHz SN76496 clock - Target data graphics in Mach 3 - 8-bit modes are no longer supported - Many fixed bugs - Favorites: Ultra Tank, Mazinger Z, Aqua Jack, Big Run and Magical Crystals 0.37b16 - Avengers fully works now and has correct colors - Original Midway Ms.Pac-Man - Dynamite Duke fully playible and with Z80 sound cpu - Cabal and Toki are working (original) - ninjakun with correct CPU clock and colordeep 16 - Xevious with new sampleset - Armored Warriors with correct user1 region roms - 19xx with colordeep 16 - New encryption version of Wonder Boy - Arabian with correct colors and other things - Dommy and World Tennis with correct colors - Strategy X with region user prom - Many new dipswitches in all games - Mameinfo- and History.dat readable again - Favorites: Gridlee, Slither, Hang-On Jr., Exzisus, Volfied, Strength & Skill, Extreme Downhill 0.37b15 - Polaris with cloud graphics emulation - Avalance with colors overlay - Dark Planet and Slik Shot are working now - Sound in Ninja Clowns (new sound1 rom) - New roms for Waterski (GFX), Slik Shot (CPU1+3) - Phoenix and Pleiads use now the main CPU 8085A - More games with the monitor frequency (60.606060). - Rough Ranger, Hard Head with sound good - Basketball (Atari 1979) with correct DAC sound - World Grand Prix with color good - Games in namcos1.c and neogeo.c uses now colordeep 16 - Favorites: Tunnel Hunt, Ixion, Power Play, Dommy, J.J.Squawkers, Shuffleshot (needs fast PC) 0.37b14 - On Screen Display with Vector flicker - Fire Truck with Discrete sound - Full sound in Looping and Sky Bumper (AY-8910, TMS5220 and DAC) - Full sound in Yie Ar Kung-Fu. - Ordyne works now correct - Added custom sound to Darius II - Darius has now user1 roms (+a96-24.163/164/165) - Rodland with other gfx3 rom (rl_19.bin) - Tumble Pop with rom reorganization - Favorites: Bigfoot Bonkers, Thunder Dragon 2, Shanghai Kid and Super Glob 0.37b13 - ASM 68k core worked now with Namco System 2 and Taito F3 sound - Save states support: * Press F7 to save state with the Key 0-9,a-z, escape cancels. And F6 and 0-9,a-z to load state! * Test Bomb Jack - Keyboardbuffering, allowing more than two keypresses at the same time. - Speech in Champion Wrestler. - NEC UPD7810 CPU emulation (sound) - Fix the second road in Outrun. - Favorites: Deco games, Asterix, Super Chase and GI Joe 0.37b12 - New YM2413 sound emulator - New ReSample function. For Pong use resamplefilter = no in mame.cfg. - Better discrete sound system emulation (Asteroid,-Deluxe, Lunar Lander) - Konami 054539 sound emulation in X-Men and Xexex. - Sprite multiplexing emulation to Time Pilot and Gyruss. Gyruss with M6809 cpu. - New monitor frequency (60.606060) to all Namco games (Pac-Man...) and others. - Battle Lane graphics and colors are fixed - Fixed colors in Funny Mouse/Super Mouse. - Fixed colors and sound in Wiz. - New Rally X with new gfx2 prom (+ im5623.8m) - Fast Lane with new region prom (+ 752e03.6h) - Magix with new grafics rom (+ magix.04) - After a fix the ASM cores 68000 and 68020 are working! - Favorites: Looping, Chinese Hero, Battle Cruiser M12 and Robocop 2 0.37b11 - ES5505/6 emulation for Taito F3 games - Jump Shot works now - Enduro Racer is working again - Thunder Cross with fixed collision detection - CPU/Audio Clockfreq changes: Argus, Valtric, Performam, Shanghai, Donpatchi, Wheel of Fortune, Strata games - Wiz with new colors - Space Fever with better music - Rastan, Rainbow Island with more colors (8192) - Discrete sound system emulation (Asteroid,-Deluxe, Lunar ander) - The ASM core is not enabled MAME, only C-core - Favorites: Butasan, Operation Thunderbolt, Operation Wolf, Pang Poms, Mach Rider, Arlington Horse Racing, Ninja Kid 0.37b10 Xexex now with good color. Favorites: Darius II, Radar Zone, Superbike, Wall Street, Hot Shots, Hole Land, Peggle, Ninja Clowns 0.37b9: Batsugun with correct CPU1 prom (Tp030_01.bin) Bomberman with more sound (+Bbm-v0.bin) Diamond Run with correct color proms (Prom1, Prom2) Mortal Kombat II (+Mk242g12.bin, Mk242j12.bin) V-Five (+Tp027_01.bin) Changed Toaplan games clock frequency of OKI6295 to 20000: Batsugun, Dogyuum, Knuckle Bash and Snowbros. II Stereo in the Seta games: Thundeercade, Twineagle, Meta Fox... Favorites: Saboten Bombers, Daisenpu, Cavelon, Krazy Bowl, Rezon, Gigandes 0.37b8: Huge batch of Mahjong drivers S.T.U.N. Runner (needs a Power-PC) Thunder Cross II works now (Redump of rom 073-b04.2d) Cisco Heat with stereo sound support. X-Men and Xexex (Not working) with sound. Blade Master, Gunforce, UUCops and Lethal Thunder with Irem GA20 sound emulation. F1 Grand Prix Star with many rom additions. War of Aero - Project MEIOU (Redump of rom U68.bin) (Not working - Memory handler problem) Return of Invaders with now a 68705 emulation (+ 68705p3.bin) Avengers with Graphics- and Colorproms (not working yet) Original Sky Adventure (Japan) Major Title (Japan) with good Status. Favorites: Beezer, Bomber Man, Macross II, Blaze On, Macross (no sound), Strahl (no sound) and Libble Rabble 0.37b7: Over 30 PlayChoice-10 games added Preliminary starfield emulation in Forgotten World and Strider Wizard of Wor with Sample-Set (-verifysamples wow). New MSM5205 Sound in Avengers, Trojan Fixes to the Pokey Sound (Tempest) Lotto Fun is back (MAME is always been a lot 'o fun...Hi) 0.37b6: Speech in Bagman and Super Bagman with new TMS5110 emulator. Exed Exes with correct tile/sprite priority Hippodrome: New roms + fixed crash Sound/Music/Gameplay in in Raimais and Champion Wrestler 0.37b5: Double Dragon - ddragon - Added (+21j-1-5, 21j-k-0, 21j-l-0 and 63701.bin) Double Dragon II - ddragon2 - Added color prom (+prom.16) The Legend of Kage - lkage - Added prom (+a54-10.2) Renegade - renegade - Added MCU prom for cpu3 0.37b4: Bubble Bobble - bublbobl - Added color prom (+ a71-25.41) Pang! 3 (Euro) - pang3 - Added roms (+ pa3w-16.10l,pa3w-17.11l) for cpu1 region 0-100000 Tokio - tokio - Added color prom (+ a71-25.bin) 0.37b3: Jr. Pac-Man - jrpacman - Added a new set of color proms Jungler - jungler - Added other gfx2 rom (+ 82s129.10g) Phantom II - phantom2 - Added 2k p2clouds prom Return of the Jedi - jedi - Added 136030.117/.118 roms Screw Loose - screwloo - Added cpu2+3 roms (+ drom1,yrom1) 0.37b2: Astro Blaster - astrob - Added Astro Blaster (version 3) Demon - demon - Zsolt Vasvari added Demon sound-rom (+ demon.snd) Mariner - mariner - Added user1+2 roms (+ t5.7p, t6.6p) Sheriff - sheriff - Added Sheriff. Bandido is now the clone. Space Chaser - schaser - Added prm rom (+ schaser.prm) Spinal Breakers - spinlbrk - Added gfx3+4 roms (+ ic18, ic14) Super Burger Time - supbtime - Added Super Burger Time (World) Vapor Trail - vaportra - Added Vapor Trail (World) Wonder Momo - wndrmomo - Added gfx1 rom (+ wm1-6.7r) 0.37b1: Dyger - dyger - Added Dyger (set 2) Grobda - grobda - Grobda (set 3) is now Grobda (New version). NBA Jam TE - nbajamte - A clone of NBA Jam become a correct Te-uj17.bin-dump Rtype - rtype - Nicola added a correct R-Type romset. Spy Hunter 2 - spyhunt2 - Added Spy Hunter 2 (revision 2). Turbo Force - turbofrc - Nicola fixed front layer in Turbo Force. R-Type (bootleg) - rtypeb - This game was removed from MAME. ---------------------------------------------------------------------------------------------- (c) 2000-2024 M.A.S.H