MASH's MAMEINFO
Mameinfo.dat v0.155
Updated - 7th November 2014

Homepage - mameworld.info/mameinfo
E-Mail - mameinfo@ewetel.net

  Visit ARCADE AT THE MOVIES

    





What's New

*NEW* Mameinfo + MAME32-inifiles-0155 (r33117) (2.83 MB)

*NEW* MAME32 0.155 Category-, Version and Alltime inifiles (532kb)

*NEW* MAME NEWS from 0.37b1 - 0.155 (3.04 MB)

PCB-infos 0.153 (2.11 MB)

*NEW* MAME listinfos from 0.25 to 0.155 (92MB)



New in MAME:    
0.155 (r33265) - New games: Hammer Away (Japan, prototype), New UFO Catcher (standard), Pop'n Music 1 (ver AA-A), Solar War, UFO Catcher 800, UFO Catcher 21, 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: Western Dream - New PEPlus games: Player's Choice (MG0252) Multi-Game, Player's Edge Plus (KE0017) Keno, Player's Edge Plus (IVC006) Clear EEPROM Chip, Player's Edge Plus (SET004) Set Chip and Player's Edge Plus (X002173P+XP000038) Ace$ Bonus Poker - New clones: Arkanoid Returns (Ver 2.02A 1997/02/10), Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999), Botanic (English / Spanish), 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]), 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), S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100), Secret Agent (Japan revision 2), Teenage Mutant Hero Turtles (UK 4 Players, set 3), Tron (Germany) and Vigilante (World, Rev E) - New drivers: gts3a.c, segacoin.c and segaufo.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 (cpu\mips\mips3drc.c) - 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. - 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) - 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). - Atari Slapstic: Get rid of some global stuff by making SLAPSTIC a device - 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 - 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. - CHDMAN: Fixed "make tools" with VS14 CTP4 - aleck64.c . N64: Abort MIPS timeslice when unhalting RSP (machine\n64.c). Fixes many RSP tests. . 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) . 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. - bartop52.c and maxaflex.c: Fixed usage of uninitialized members in gtia_device - 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 - calomega.c: Fill in some unknown dipswitches - 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. - cps1.c: Handcrafted CPS-1 PALs for area88r and striderjr - cv1k.c: Minor info update - fcrash.c: Fixed some incorrect info about the SF2 bootlegs and got them running better - 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. - 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 - 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 . Docs updates. Cartridge docs updates and additions. . Redumped Ferrari F355 Challenge . King of Route 66 (Rev A) use real MaskROM cart layout and labels instead of flashcart . Corrected 'Ring Out 4x4' and 'Samba de Amigo ver. 2000' maskrom size and labels . Corrected vonot maskrom label - neogeo_noslot.c: Make clone kog dipswitch part of the protection device / cartridge. This fixed "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 - psychic5.c . Corrected audio CPU clock for Psychic 5 as measured on PCB . A little more work - segas18.c: Missed a line in sega_315_5195_mapper_device - taitogn.c and zn.c: Changed machine\znsec.c/h to machine\cat702.c/h. Removed unused variable (machine\zndip.h). - 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 . According to schematics the twin16 video is priority related, not a flip bit. This fixed sprite-background priority is wrong (ID 02523). . Rewrited 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 - AGEMAME . Altered FIRQ and NMI handling to improve Maygay M1 operation (drivers\maygay1bsw.c) (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 (drivers\maygay1bsw.c). - 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 - 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 - Centipede: Added missing 2P start button to clone Centipede (revision 3) (ID 05741). Removed 2nd Player in parent Centipede (revision 4). - Cool Riders: Added a note about "Aqua Stage" also running on Sega H1 hardware - 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 - 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. - Magic Bubble: Fixed Z80 CPU2 and OKI6295 clock speeds - 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 - 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). - 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: Corrected audio CPU clock as measured on PCB - 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 - Time Fighter (Time Pilot conversion on Galaxian hardware): No need for a double GAME_SUPPORTS_SAVE flag - Tough Turf . Corrected 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 darius.c, naomi.c, yunsun16.c - Renamed (botanic) to (botanicf), (clubk2kf) to (clubk2kp), (futaribl) to (futariblj), (sf2mdtc) to (sf2b), (solarwar) to (solrwarr) and (vigilant) to (vigilantb). - Description changes of Club Kart: European Session (2003, prototype), Darius (Japan), Darius (Japan, rev 1), Darius Extra Version (Japan), Darius (World, rev 2), Jumping Pop (Nics, Korean hack of Plump Pop), Magic Bubble (Adult version, YS-1302 PCB), Player's Edge Plus (SET001) Set Chip, Player's Edge Plus (SET038) Set Chip, Secret Agent (World revision 3), 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 . 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). . 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). Miscellaneous cleanups/modernizations. 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) . Update windows\winos.c and MSVC2010 compilation fix. Merge pull request #1 from plgDavid/patch-1. . 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. . Do not set define HAS_OPENMP when makefile define OPENMP is set - fixes warning about macro redefinition. . Fixed signed integer overflow in address_table::subtable_open() (emu\memory.c) and address_map::uplift_submaps() (emu\addrmap.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. . 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). - 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) - 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). . TMS0980 CPU: Get rid of old printfs. 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) . 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. . 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) . Increased maximum allowed stack size of Visual Studio Code Analysis (windows\windows.mak) . Allow compilation on cygwin based terminals on Windows (like cmder) . Added WinPCap headers to the project. Include WinPCap headers during Windows build; suppress MSVC debug build warning (osd\windows\windows.mak). . 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) . OS/2 build fixes (lib\sqlite3\sqlite3.c and web\mongoose.c) - Debugger . The Qt debugger now behaves more like the Windows one, with horizontal scrollbars where the core views expect them. This fixed 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). 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 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 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 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 I8051/MCS-51 modernization regression (MAME 0.150) with timer 2 interrupts for some cpu cores. This fixed 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 sound (audio\taito_en.c): Small cleanup - 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: Corrected 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 fixed 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 . Corrected clock speeds for the Susume! Mile Smile / Go Go! Mile Smile and Gyakuten!! Puzzle Bancho sets . Some Fuuki refactoring. This fixed 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 fixed 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 fixed 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 fixed 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 fixed 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 fixed 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: Corrected 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. Corrected 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. - 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) [David Haywood]. - 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 fixed 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 fixed 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. Corrected color prom resistors. - Soldier Girl Amazon: Fixed lag/desync between sprites and background (ID 05700) - 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 (nw) 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) [Oliver Stöneberg]. . 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 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 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 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 fixed 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 - 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. This fixed 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. . 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 PIC8259 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 fixed 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 MT #4118). . 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 MIOT: 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 fixed 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). - S2636 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 . Cleanup MCFGs . Fixed 'Allow Continue' dipswitch in baddudes and clones (ID 05609) . Converted slyspy tilemap protection to use bankdev. This fixed 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 fixed 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 fixed 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? - 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 fixed 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. - 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 fixed 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 fixed 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. . 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 . Corrected 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). Corrected 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 fixed 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 . Sync timer fixes from GenPlus-GX. This fixed some of the sound effects in MegaDrive are wrong compared to the console/cartridge. 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. . Sega System C2 didn't entirely like the changes, update sound\fm2612.c code . 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 fixed 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 fixed 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 fixed 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 fixed 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, corrected OKI clock. - tetrisp2.c: Fixed save state regression - thunderx.c: Added xtals - tigeroad.c . Merged Pushman with Tiger Road driver. This fixed 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). . Corrected 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 . 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. Corrected 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 MT #4118). . 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 fixed 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 fixed 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 fixed 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. - 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). Corrected 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 fixed (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, mess\machine\super80.c) . 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)


Mameinfo.dat

0.155: Updated to MAME 0.155 (git.redump.net\mame). Added Source/Listinfo changes. Newest Bugs (15th Oct). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos. Added Dual- and Triple screen games to Screen.ini. Added 'Gambling - AGEMAME' and 'Pinball - PinMAME' to Category.ini.
0.154: Updated to MAME 0.154 (git.redump.net\mame). Added Source/Listinfo changes. Newest Bugs (22nd Jul). Added missing CHD infos (thanks to Marco Tucceri). Added RAINE 0.63.9 and Demul v0.5.8.2 Emulator infos. Splitted lines with more than 4096 characters. Added/Fixed 'Recommended Games'. Fixed/Added all missing Romset (kb/files/zip) infos. Fixed Mameinfo.dat infos.
0.153: Updated to MAME 0.153 (git.redump.net\mame). Added Source/Listinfo changes. Newest Bugs (7th Apr). Added Unit3D Pinball Emulator infos. Added missing CHD infos (thanks to Marco Tucceri). Added/Fixed 'Recommended Games'. Added all missing Romset (kb/files/zip) infos. Fixed Mameinfo.dat infos. Added CPU-, Sound, Device, Control, Screen, Vsync and Artwork-ini files to MAME32-inifiles.zip.




Download

*NEW* MAMEINFO.DAT 0.155  (2.29 MB)

MAMEINFO.DAT 0.154  (2.26 MB)

MAMEINFO.DAT 0.153  (2.20 MB)





   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME/MESS GIT
   MAME Download
   MAME Frequently Asked Questions