- New games: Master Boy (1987, Z80 hardware) and New Cross Pang
- New Working games: F-1 Dream, Quiz Channel Question, Rail Chase 2 and Ufo Robo Dangar (9/26/1986, Japan)
- New Non-Working games: Genius 6 (V110F), T.T. Speed Race CL [TTL] and unknown Elsy poker
- New clones: Amazonia King Plus (V204BR), Crazy Bonus 2002 (Ver. 1, set 2), Enduro Racer (YM2151) (mask ROM sprites, FD1089B 317-0013A), Explosive Breaker (Korea), Garou - Mark of the Wolves (NGH-2530), Gokidetor (set 2), Joker Master (V512), Jolly Card (Italian, bootleg, set 3), Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 1.05 / 981214), Paperboy (prototype), Pochi and Nyaa (Ver 2.02), Popeye (Braze High Score Kit P1.00D), Renegade (US bootleg), Silk Worm (bootleg), Street Fighter II': Champion Edition (Playmark bootleg), Time Killers (v1.21, alternate ROM board), World Rally 2: Twin Racing (mask ROM version) and WWF: Wrestlemania (proto 2.01 06/07/95)
- New drivers: mastboyo.cpp
- New devices: 315_5338a, adc0808, adc0809, generic_fifo_u32_device, m58990, mb86234, model1io, nb1412m2, sad8852 and z80ctc_channel
- ARM (little) CPU
. Eliminated spurious LSL #32 shifts from disassembly. Calculated R15-relative offsets in disassembly (cpu\arm\armdasm.cpp).
. Fixed erroneous identification of S field in data processing opcodes. Calculated result of ADD/SUB Rn, R15, #imm (cpu\arm\armdasm.cpp).
- Hitachi SH-4 CPU: UML implementations of FADD, FDIV, FMAC, FMUL, FSUB, LDCSPC, LDCSSR, LDSFPUL, MOVCAL, STCDBR, STCSGR, STCSPC, STCSSR, STSFPSCR and STSFPUL. Fixed possible error in previous FPU conversion.
- Intel I386 CPU: Fixed stack size in call and sp masking
- Intel I80186 CPU: Handle program space mapping for I/O block same as I/O space
- Intel i960KB CPU: Don't lose register values on read stalls
- MCS-51 MCU: Safer way to propagate INT0 and INT1 inputs, which also need to be active low.
- Motorola M6801 CPU
. Added configurable logging
. Separated SCI Tx/Rx tick and event logging, fixed some missing save state and make order match delaration.
- uPD7725 CPU: Fixed disassembly (upd7725\dasm7725.cpp)
. Improved performance of DSP16 interpreter a little by generating six variants of execution loop
. Bypass DSP16 memory system for work RAM access when debugger is disabled - gives small performance gain.
- 3dfx Voodoo Graphics: Fixed vsync timing and removed anonymous timer
- ADC0808 A/D Converter
. Rewrote ADC0808 device so it actually works. Allow polling of EOC line. Allow side effect disabling for reads.
. Added ADC0808 to backfire, othunder, topgunnr and wheelfir.
. Added ADC0809 to atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, cbombers, eprom.cpp, firefox, foodf, galastrm, gdfs, groundfx, harddriv.cpp, hydra, irobot, jedi, opwolf3, roadriot, superchs, starwars.cpp, taito_z.cpp, tceptor, tmek and tomcat.
. Added M58990 to apache3 and lockon
- Atari Custom
. Removed sound interrupt status from machine\atarigen.cpp base class
. Separated a few Atari drivers from atarigen_state
. Separated 'Atari VAD video controller' source files from atarigen
. Decoupled ThunderJaws from atarigen_state
. Minimal improvements on the disk handling. Keeping the 35 tracks drive as an option. Reducing the crashes a bit more. This helps matching the form_factor and the parameters found in the TeleDisk images, thus exiting before a serious crash. It is NOT enough to improve the 8" disk image handling, nor it solves all the stability problems, but it is a tiny step forwards (formats\td0_dsk.cpp).
. Added FM resyncs in READ_TRACK and changed threshold (machine\wd_fdc.cpp)
- TI TLC34076 video: Converted m_pens and m_local_paletteram into std::unique_ptr. Minor cleanup.
- Z80 CTC: Make channels into subdevices
- 4roses.cpp: Decrypted Four Roses and Rugby program roms. Moved Rugby video RAM to where it fits better.
. Cleanup duplicates. Fixed object finder names related sprite lookup tables. Minor gfxdecode cleanup.
. Splitted Spinal Breakers ROM lookup function
- aleck64.cpp: Improved Magical Tetris Challenge tetrominoes display (ghost pieces and colors)
- arcadecl.cpp: Minor cleanups. Removed unnecessary bitmap. Cleanup of duplicates.
- asuka.cpp: Cleanups. Reduced duplicates/runtime tag lookup.
- atarigt.cpp: Eliminated sound_int_gen (machine\atarigen.cpp)
- atarisy2.cpp: Minor cleanups for bankswitching. Added address_map_bank_device for VRAM bankswitch handlers.
- atlantis.cpp and iteagle.cpp: Use device_post_load instead of callbacks (machine\vrc4373.cpp)
- coolpool.cpp: Added generic_latch_16_device for CPU-DSP communications. Splitted coolpool and 9ballsht DSP I/O map. Fixed rom tags.
. Separated blitter IRQ handlers; fixed interrupts in mjmyster and related sets.
. Changed main CPU type to TMPZ84C015 for most Z80-based games
. Promoted Quiz Channel Question and clone (Ver 1.23) to working
. Replaced MCU simulation with 8751 code dumped from Breywood and hacked for Shackled
. Use input merger for coin IRQs in Psycho-Nics Oscar and Shackled
. Split up 6809 IRQ assertion/acknowledgment handler
. Acknowledge FIRQ from 8751 instead of using HOLD_LINE for Captain Silver, Last Mission and Shackled. Note: Psycho-Nics Oscar doesn't use a 8751.
- docastle.cpp: Replaced MCFG_CPU_VBLANK_INT with CRTC callbacks
- dreamwld.cpp: Cleanups. Added tilemap size register. Fixed crash in VRAM write handler and tilemap rowscroll and transparency handling.
- dynduke.cpp: Dumped proms
- expro02.cpp and galpanic.cpp: Added missing 2nd button to includes\galpnipt.h (ID 06937). Note: Turn on 'Service Mode' dipswitch, reset and press P1 START. Pressing the second button is not reflected on screen (appears as "Shot 2"). The main game doesn't use it, but it's needed for the "Animation Test" that can also be turned on in the dipswitches.
- gaelco2.cpp: Added pinout information for World Rally 2 and REF.950906 PCB layout for Touch & Go
- galivan.cpp and terracre.cpp
. Rewrote NB1412M2 protection into a device
. Fixed protection in clone Ufo Robo Dangar (9/26/1986, Japan) (Game now playable). Note: Game has unemulated protection at I/Os 0x80-1 for missing sprites. This is a Nichibutsu 1412M2, which is the same chip used in TerraCresta and Cop01 driver. The protection here is used for a code snippet at 0xf9c0, that of course is the sprite handling. The code snippet is sum8 with 0x27 at 0x9d74 so no, the later Dangar US version snippet doesn't work.
- guab.cpp: Added RS-232 port and updated notes
- gundealr.cpp: Cleanups
- irobot.cpp and starwars.cpp: Reduced tag lookups
- mainevt.cpp: Derived clocks from XTAL values. Replaced HD6309 CPU1 with HD6309E.
. Rewrote MB86233/4 CPU cores. Added missing lab and notd mode to MB86233.
. Use the real 315-5573 Virtua Racing coprocessor program
. Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller.
. Map outputs and coin counter for netmerc, swa, vf, vr, wingwar and wingwar360. Added second coin slot for wingwar360 and removed view buttons. Map netmerc analog controller unit.
. MB86233/4 CPU rewrite. Added missing lab and notd mode to MB86233 used by Virtua Fighter 2 in-game and collision.
. Revamped the coprocessors communications
. Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller.
. Map outputs and coin counters for daytona, desert and vcop. Cleanup inputs. Map debug switch for vcop to not show enemies.
. Proper default values for lightgun games. This avoids the need to calibrate the lightguns in the service mode. Also clean up lightgun interface. Five percent of the full range is now declared off-screen and will act as a reload area.
. Promoted Rail Chase 2 to working
- mpu4vid.cpp: In row table mode double size in cached in screen start 1 (video\scn2674.cpp). This fixed graphic corruption in all sets (ID 06928).
- namcos11.cpp: Cleanup bankswitch handler. Reduced runtime tag lookups.
- namcos12.cpp: Cleanups. Reduced runtime tag lookups. Splitted machine config for COH716 CPU Board case and motherboard/cpuboard configurations. Fixed GPU for COH716 board.
- naomi.cpp: Centralized DRC settings (machine\dc.cpp)
. Converted NeoGeo EL panel outputs to lamps - it uses six outputs from a 1-of-8 decoder to enable EL panels to illiminate the selected game logo.
. Start splitting up the state classes for the different variants properly
. Split into real models: Moved common stuff (mostly video) into a base memory map. Split common edge connector inputs into JAMMA and MVS. Added clones with different numbers of game slots, edge connector, controller ports, memory card and speakers. Based fixed-software drivers on MV-1 JAMMA board configuration. Removed memory card and controller ports from single-PCB games and converted to mono output. Coin lockouts/counters still not connected, and LED/EL output isn't suppressed for variants that lack it. Suppress leading space in RAM option names.
. Further improvements: Removed LEDs/lamps from configurations that lack them. Hooked up coin counters and lockouts. Improved I/O register mapping. Added controller detection connections for AES. Hooked up SPI-like outputs on SIT board used by irrmaze.
. The Irritating Maze: Hooked up SPI-like outputs on SIT board. Added layout showing strobes and most lamps. Game still missing card dispenser, air compressor and colour lamps.
. Re-added boost interleave on audio command write - fixes glitches in Strikers 1945 Plus.
- pgm.cpp: Fixed object finder. Removed unused things.
. Implemented NMI acknowledge and TPP2 watchdog
. Swapped clones Popeye (bootleg set 1) and Popeye (bootleg set 2) and repaired some of the proms as they appear to be bad dumps.
- psikyo.cpp: Cleanups. Fixed background pen. Documented PIC. Fixed crash due to incorrect shift calculation and the bootleg hardware.
- seattle.cpp and vegas.cpp
. Added separate transmit FIFO to SMC91C9x Ethernet Controller and fixed irq handling. Use device_pre_save and device_post_load instead of pre/post callbacks.
. Use device_post_load instead of callbacks (machine\gt64xxx.cpp and machine\vrc5074.cpp)
. Fixed volume button mapping for San Francisco Rush
. Removed set_lamp_value from Vegas driver and added driver init for NBA Showtime Gold
- segaufo.cpp: Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller which is hooked up to the Sega UFO driver now.
- ssv.cpp: Simplify ST010 ROM loading
. Fixed regression with Cotton 2 backgrounds in stage 2 onward (video\stvvdp2.cpp; enables ROZ mode 3 without neither rotation parameter windows nor actual rotation parameters). This fixed also the corrupt background in Virtua Fighter Kids (ID 06886).
. Preliminary implementation of PMOD 7 (gouraud + half transparent) (video\stvvdp1.cpp), fixes (MESS) Sega Saturn 'Lupin the 3rd Pyramid no Kenja' enemy shadows.
. ROZ windows applies per screen output not per bitmap (video\stvvdp2.cpp), fixes at least Batman Forever character select & the Riddler final stage graphics.
. Fixed RBG0 cache map range (video\stvvdp2.cpp), fixes (MESS) Head On graphics update in Sega Memorial Collection 1.
. Fixed t1_mode_w in address map of achine\sega_scu.cpp
- suprnova.cpp: Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). This fixed no audio is present (ID 06929)
- tourvis.cpp: Added Tourvision BIOS v1.1
. Changed YM3812 clock and use it to drive sound CPU interrupt. Use known XTAL for clocks.
. Added output finder for Slot Poker Saiyuki lamps and clean up driver a little
- viper.cpp: Corrected Voodoo vsync timing and removed anonymous timer. Changed Konami Viper so that driver boots again.
- zn.cpp: Simplified Z80 bank switching for FX-1A games (mgcldtex, psyforce and sfchamp)
- AGEMAME: General cleanup of video\bfm_adr2.cpp (drivers\bfm_sc1/2.cpp)
- Air Buster: Reduced code duplication and runtime tagmap lookups. Removed unnecessary bitmap.
- Airwolf, Flashgal and '99: The Last War. Added PROMs and PLDs
- Amidar: Fixed 'Lives' dipswitch for clone Amidar (Scramble hardware) (ID 06926)
. Added ADC0809 A/D Converter for Backfire potentiometer controls (currently only working in test mode)
. Cleanup inputs and acknowledge IRQ
- BeatHead: Replaced NVRAM with parallel EEPROM
- Bingo Circus and Western Dream: Added I/O controller
- Bionic Commando: Start hooking up MCU (similar to F1 Dream) however it still relies on some hacks to work at the moment.
- Blades of Steel: Soundlatch modernization
- Contra: Acknowledge sound IRQ
- DJ Boy: Added generic_latch_8_device for comms. Added stereo sound output, because PCB has stereo sound output connector and OKI is connected per each output. Cleanup OKI ROM loading and gfxdecode. Fixed sound output level. Fixed tags. Fixed MCU acknowledge writes.
- Dora-chan: Better protection and cleanup
- F-1 Dream: Decapped and dumped F-1 Dream I8751 MCU (Game now playable)
- Fever Soccer: Eliminated set_lamp_value and MCFG_CPU_VBLANK_INT
- Fire Fox: Cleanups. Added output finder/object finder. Reduced runtime tag lookups.
- Godzilla: Fixed regression in background tilemap colors (uses DMA mode 4 like Denjin Makai). Fixed OKI sound bankswitch.
- Heavy Unit: Minor cleanup
- Hit Poker: IRQ modernization
- Jungler: Apply mooncrst decoding to clone Jungler (Subelectro, bootleg on Scramble hardware), game boots. Verified inputs. Added preliminary sound and dipswitches.
- Kaitei Takara Sagashi: Added optional color setting. Make color config as default. Note: Some PCB videos/images shows a b&w arrangement, others a full colorized one. This is due of the monitor type used, cfr. http://news.livedoor.com/article/detail/5604337/.
- Lemmings: Cleanups
- Mega Blast: Use real C-Chip rom. Hook it up, for some definition of hook up, since it basically does nothing at all the game cares about.
- Operation Thunderbolt: Changed game to mono speaker, as shown on schematics and verified on real board.
- Pasha Pasha 2: Cleanup duplicates. Cleanup bitmap write handlers. Added object finder instead runtime tag lookups. Fixed tags. Hook up AT89C52. Added output finders. Converted m_bitmap* into std::unique_ptr.
- Pinball Action: Use CTC to provide interrupts for sound CPU
- Repulse: More accurate ROM labels for clone '99: The Last War (Kyugo). Fixed gfx1 ROM size.
- Sexy Gal: Added sample player
- Sindbad Mystery: Adjusted sound clocks to match PCB footage. Acknowledge sound interrupt the 8255 Mode 2 way.
- Space Chaser: Added some sound to clone Crash Road (bootleg of Space Chaser)
- Starblade: Allow full range of crosshair movement
- Super Stars: Demoted game to not working - errors out when inserting coins.
- Tech Romancer: Fixed fatal error regression (ID 06936)
- TomCat: Fixed XTAL value
- unknown Japanese horse gambling game: Lowered frequency of 8155 timer driving speaker
- VLC Nevada: Fixed memory mapping and IRQs for DUARTs and RTC
- Wink: Added addressable latch and acknowledge NMI
- Xyonix: Acknowledge main interrupt
. Standardised on IPT_CUSTOM for hooking up custom code in PORT_BIT, leaving IPT_SPECIAL for the UI.
. Use output finder for 24cdjuke, 30test, allied.cpp, amaticmg.cpp, atari_s1.cpp, atari_s2.cpp, barata.cpp, by6803.cpp, chexx.cpp, crusnexo, ecoinfr.cpp, fireball.cpp, firefox, gotcha.cpp, gp_1.cpp, gp_2.cpp, grchamp, gts3.cpp, gts3a.cpp, gts80.cpp, gts80a.cpp, gts80b.cpp, icecold.cpp, inder.cpp, jeutel.cpp, jp.cpp, jpmimpct.cpp, kungfur.cpp, ltd.cpp, marywu.cpp, micropin, model1.cpp, nsm.cpp, play_1.cpp, play_2.cpp, play_3.cpp, rotation, rowamet.cpp, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp, saiyukip, spectra.cpp, speedbal.cpp, splus.cpp, sspeedr.cpp, st_mp100.cpp, st_mp200.cpp, taito.cpp, techno.cpp, turbo.cpp, vd.cpp, videopkr, wico.cpp, wpc_an.cpp, zac_1.cpp, zac_2.cpp and zac_proto.cpp.
. Use two-dimensional output finder for imolagp and monzagp
. Removed legacy outputs from acommand.cpp, allied.cpp, ampoker2.cpp, amusco.cpp, aristmk4.cpp, aristmk5.cpp, buggychl.cpp, bzone.cpp, cinemat.cpp, copsnrob.cpp, m79amb.cpp, skydiver.cpp, skyraid.cpp, stactics.cpp, starcrus.cpp, tceptor.cpp, taitojc.cpp, tehkanwc.cpp and wecleman.cpp
. Removed set_digit_value and deprecate set_lamp_value and set_led_value (emu\output.h)
- Dipswitch fixes in galaxian.cpp, hitpoker.cpp, jp.cpp, konblands.cpp, model2.cpp and viper.cpp
- Fixed rom names in gaelco2.cpp, kyugo.cpp and model1.cpp
- Description changes of Bakuretsu Breaker (Japan), Blades of Steel (version T, Joystick), Blades of Steel (version L, Trackball), Blades of Steel (version E, Trackball), Crazy Bonus 2002 (Ver. 1, set 1), Explosive Breaker (World), Gokidetor (set 1), Hotdog Storm (Korea), Joker Master (V515), Pochi and Nyaa (Ver 2.00), Popeye (bootleg set 1), Popeye (bootleg set 2), Silk Worm (prototype), Ufo Robo Dangar (9/26/1986, bootleg set 1), Ufo Robo Dangar (9/26/1986, bootleg set 2) and World Rally 2: Twin Racing (EPROM version)
- Renamed (pnyaa) to (pnyaaa), (popeyeb2) to (popeyebl), (popeyebl) to (popeyeb2) and (wrally2) to (wrally2a)
. VIDEO RENDERING SYSTEM
. Cleaner handling of layout parsing errors (emu\rendlay.cpp and layout\noscreens.lay)
. Bulk conversion
. Converted MCFG_DEVICE_VBLANK_INT to MCFG_SCREEN_VBLANK_CALLBACK
. Use MCFG_SCREEN_VBLANK_CALLBACK instead of MCFG_CPU_VBLANK_INT
. Replaced MCFG_CPU_VBLANK_INT with line callbacks
. Use MC6845 sync callback instead of MCFG_CPU_VBLANK_INT in funworld.cpp, goldnpkr.cpp and madalien.cpp
. Use MC6845 for vertical interrupt generation in gluck2.cpp, mpu12wbk.cpp and ssingles.cpp
. Added some plausible raw params and eliminated MCFG_CPU_VBLANK_INT in twins.cpp
. Removed underscores from template parameter names (emu\emupal.h)
. Allow machine configuration to specify BIOS easily, move default BIOS selection into device configuration complete.
. Removed unnecessary device_t::memory() (drivers\bublbobl.cpp, missb2.cpp and superqix.cpp)
. Removed safe_pc() and safe_pcbase() (emu\distate.h)
. Show RAM options in XML output that can actually be controlled from the command line - the others are practically useless (machine\ram.cpp and mame\info.cpp). Expose RAM size in "minimaws".
. Get rid of more uses of inefficient output methods (drivers\de_2.cpp, de_3.cpp, flicker.cpp, jankenmn.cpp and machine\decopincpu.h)
. Removed emucore from external tools (scripts\src\tools.lua)
. Save a ref to waiting co-routine to prevent it from being gc'd (mame\luaengine.cpp)
. PLUGINS: Require returns true if package returns nil (plugins\data\database.lua)
. Moved some not-directly-emulation-related helpers to lib\util\coretmpl.h and disasmintf.h, further extricate emu.h from tools.
. MEMORY SYSTEM
. Allow for an address shift (machine\bankdev.cpp)
. Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). Fixed fencepost in memory_manager::region_containing, which caused regions to be registered for state saving (emu\emumem.cpp).
. Relaxed constraints on address mirroring/global mask combinations. Mirror bits are now allowed to fall outside the driver-specified global mask, though memory map validation requires that they cover the entire masked-out portions of the address space if any do. This change is intended to expedite debugging of software written for the TMPZ84C015 or similar Z80-based controllers which use 8-bit I/O addressing for the on-chip peripherals but may use either 8-bit or 16-bit addressing externally (emu\addrmap.cpp).
. Completely eliminated address map macros
. Work around small issue in conversion (plugins\cheat\cheat_xml.lua)
. Changed indentation in save file by request and sort the output file (plugins\portname\init.lua)
. Fixed cpu tags and print detailed errors (hiscore\hiscore.dat and init.lua)
- SDLMAME: Set SO_REUSEADDR in posixsocket. Without it you have to wait until the socket is moved out of the TIME_WAIT state, which can take quite a while. This is pretty anoying when using mame with serial ports forwarded via TCP (modules\file\posixsocket.cpp).
. Added possibility of building using system pugixml
. Fixed issues with CHD loading under Emscripten (scripts\src\main.lua)
. Documented debugger expression number syntax (debugger\expressions.rst)
. Moved around the debugger hooks to get a small but measurable performance increase
. Fixed scheduling session events from debugger (debug\debugcpu.cpp)
. Added suspend and resume debugger commands for suspending and resuming scheduled devices (debug\debugcmd.cpp)
. Documented dumpo command (debug\debughlp.cpp)