- New games: Jump Kun (prototype), Sel-Jan [BET], Victory (Comsoft) and Waku Waku Ultraman Racing
- New Working games: Treasure Island (DECO Cassette) (Region D)
- New Non-Working games: Bel Slots Export (5.01), Big Deal Belgien (5.04), Ez2dancer 2nd Move, Jack Potten's Poker (set 10, ICP-1 PCB), Percussion Freaks 5th Mix (G*B05 VER. KAA), Pingu's Ice Block, Quingo Export (5.00) and Ron II Mah-Jongg
- New clones: Animal Basket (19 Jan 2005), The Bounty (set 2), Burnin' Rubber (DECO Cassette) (Japan), Danger Track (Rally X bootleg), E-Swat - Cyber Police (bootleg, set 2), Forty-Love (Japan), Gingateikoku No Gyakushu (bootleg set 3), Graplop (DECO Cassette) (Japan), Guerrilla War (Version 1, set 2), Lock'n'Chase (DECO Cassette) (Japan), Mach-9 (bootleg of Vulgus), Macross II (Korea), Marchen Maze (Japan, hack?), Money Money (set 2), Motor Raid - Twin/DX, New Century (Spanish bootleg of Scramble), Offensive (Spanish bootleg of Scramble), Operation Thunderbolt (Japan, SC), OutRun 2 Special Tours (Japan) (GDX-0011), Palamedes (US), Pengo (set 5), Power Instinct (USA, prototype), Pro Tennis (DECO Cassette) (Japan), Spectar (revision 2, bootleg), Tehkan World Cup (set 4, earlier?), Time Killers (v1.32I) and Victory (Comsoft) (bootleg)
- New TourVision games (Softwarelist: hash\pce_tourvision.xml): Ankoku Densetsu, Batman, Burning Angels, Cadash, Gradius, Toilet Kids and World Jockey
- New PinMAME games: Black Knight 2000 (PF-1) and Spirit of 76
- New PEPlus games: Player's Edge (PK1002-PC082) Jake's Jacks Bonus Poker
- New drivers: ez2d.cpp, ron.cpp and spirit76.cpp
- New devices: 74hc157, taitosjsecmcu, tc0040ioc, tc8521 and te7750
- ADSP2100 CPU: Make HALT_LINE halt the cpu and added function for get base address of circular buffer
- M68705 CPU
. Use actual M68705 dump in Field Day/Undoukai, Onna Sanshirou and Rumba Lumber, replaces inaccurate simulation.
. Replaced MCU simulation with new M68705 dump in Chack'n Pop, Get Star (Japan), Guardian (US), Nekketsu Kouha Kunio-kun (Japan) and Prebillian
. Replaced hand crafted MCUs with dumped 68705 dumps for clones Arkanoid (US, newer), Arkanoid (Japan, newer) and Tournament Arkanoid (US)
. Added an unused (not programmed) 68705P5 MCU dump to Tetris (D.R. Korea)
. Use new 68705 image that includes the bootstrap code in The FairyLand Story
. Replaced MC68705P3 CPU3 with MC68705P5 in Taito SJ
- S2650 CPU
. I/O modernization. Replaced fake S2650_SENSE_PORT address with line read callback (set_input_line should also work). There are still some doubts regarding whether VBLANK should be inverted in various drivers.
. Replaced fake S2650_CTRL_PORT and S2650_DATA_PORT addresses with... well, these aren't dedicated parallel ports, so they actually haven't gone away. They have, however, been moved to a new 1-bit address space, since the ports share the main data bus and are distinguished from each other by an address line.
. Allow program counter to be properly tracked by debugger. A few small status register-related refinements.
- TLCS-90 CPU
. Replaced fake TLCS-90 I/O space with callbacks (cpu\tlcs90\tlcs90.cpp, drivers\dynax.cpp, royalmah.cpp and machine\nmk004.cpp)
. Forwarding and some other stuff (cpu\tlcs90\tlcs90.h)
- AY-3-8910 sound
. Added pinout and removed outdated comments from .h
. Updated/fixed documentation and comments and added additional pinouts and links to decaps and documentation. Document device names.
. Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid.
. Replaced AY-3-8910A sound with YM2149 in arkanoid.cpp, bigevglf.cpp, calorie.cpp, cchance.cpp, flstory.cpp, fromance.cpp, ginganin.cpp, goldstar.cpp, hotblock.cpp, lsasquad.cpp, ojankohs.cpp, shangha3.cpp and tehkanwc.cppt
. Replaced AY-3-8910A sound with AY-3-8912A in funkybee.cpp, spartanxtec.cpp and spyhuntertec.cpp
- AY-3-8913 sound: Added diagram
- CD Audio: Improved CD audio play track/index command handling (machine\mb89352.cpp and t10mmc.cpp). kokoroj2 needs mods in the MB89352 core that won't break (MESS) Sharp X68000 as well. kokoroj2 requires the printer interface, a command to stop current track is sent with CD & printer disabled in dipswitches.
- DMA-driven DAC sound: Check if list item exists before calling member function (sound\dmadac.cpp)
- MSM5205 sound: New callback implements accurate VCK timing. The old "VCLK" method with no duty cycle is now deprecated.
- OKI6295 sound: Simplify logerror messages
- SAA1099 sound: Created standard write handler; substitute for bogus YM2413 in Magic Card. Zero writes are not errors (logerror()).
- Sound Interface:
. Allow device to be configured for acknowledgement to occur separately from data reads (machine\gen_latch.cpp); use this for Armed Police Batrider.
. Use MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) and for all aerofgt.cpp games except bootlegs which need more research.
. Use callback for soundlatch interrupt in actfancr.cpp
. Soundlatch modernization in aerofgt.cpp, blockout.cpp, crshrace.cpp, f1gp.cpp, gstriker.cpp, inufuku.cpp, pipedrm.cpp, psikyo.cpp, renegade.cpp, spdodgeb.cpp, suprslam.cpp, tail2nos.cpp, taotaido.cpp, wc90.cpp and welltris.cpp
- Taito Ensoniq ES5505-based sound: Use MB8421 for communication RAM (audio\taito_en.cpp; drivers\galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp, taito_f3.cpp, taitojc.cpp and undrfire.cpp)
- Williams sound: Handler cleanup (audio\williams.cpp) in mcr68.cpp, midtunit.cpp, midvunit.cpp and williams.cpp
- 8255 PPI
. Added tristate outputs
. Use 8255 PPI devices (most of which are only used for input) and use the new 8255 tristate callbacks to removed some workarounds in subsino.cpp.
. Use 8255 PPI devices for I/O in mjkjidai.cpp and piggypas.cpp
. Replaced soundlatch with 8255 PPI device that runs in mode 2 in suprloco.cpp
- Discrete Netlist: Added Zaccaria driver to mamenl build (sound\dmadac.cpp)
- Kaneko Custom: Eliminate driver_data dependency (video\kan_pand.cpp, drivers\airbustr.cpp and snowbros.cpp)
- MB3773 Power Supply: Added MB3773 device to aerofgt.cpp, gstriker.cpp and taotaido.cpp
- PCI-IDE controller: Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold.
- RP5C01 RTC: Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to yesnoj (though the game remains stuck in the 20th century).
- Taito Custom
. Replaced TC0220IOC with TC0510NIO (newer I/O version) in Space Gun
. Added port 3 write callback for TC0220IOC and TC0510NIO in othunder.cpp and taito_z.cpp
. Use callbacks to set coin counters and coin lockouts from Taito I/O devices. This is a largish and not particularly elegant change, but those outputs aren't exactly internal.
. Made TC0040IOC its own device type and separated its functionality from TC0220IOC (ninjaw.cpp, taito_b.cpp, taito_h.cpp, taito_l.cpp, taito_z.cpp and topspeed.cpp)
. Use TC0510NIO device for inputs in 2mindril.cpp, galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp and undrfire.cpp
. Added MACHINE_NODEVICE_LAN flag to Chase Bombers, Ground Effects and Gunbuster
- Timekeeper: Added watchdog function to M48T37. M48T08 doesn't have watchdog.
- TTL: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs.
- uPD4701 counter: Use uPD4701 device for analog input in arknoid2, fiveside, jpopnics and plumppop.
- Voodoo GFX
. Calculate dither pointer when needed for fogging. Fixes graphics crash in San Francisco Rush 2049.
. Separate vblank (external) and PCI interrupt (internal) callbacks
. Extended PCI interrupt support to Voodoo 2 and above
. Write register data to intrCtrl
- Z80 SCC
. Added support for resetting RX interrupts/status by reading Rx FIFO through RR3
. Moved rearming of tx interrupt from tx buffer write to transmit complete when using WR0_RESET_TX_INT
- aerofgt.cpp: Video and sound refinements: Fixed sound loss in Spinal Breakers and clones caused by misconfigured ROM bank. Work towards flip screen support for most games; clone Aero Fighters (Taiwan / Japan, set 1) is nearly correct now.
- balsente.cpp: Minor doc update
- cps1.cpp: Interrupt acknowledge routine based on schematics
- csplayh5.cpp: Clean-ups and notes updates and added system inputs
- cubo.cpp: Demoted Laser Quiz Italy and Laser Quiz 2 Italy, they never really worked.
- exidy440.cpp: Partial revert of timer_set removal. This needs to be studied better.
- f1gp.cpp: Preliminary RS232 device hookups for multiboard communications
- gaelco3d.cpp: Load correct roms for Football Power
- gstriker.cpp: Undumped MCUs can be difficult to cooperate with
- ice_tbd.cpp, mmm.cpp and mpu2.cpp: Rattled a few old bones
- jack.cpp: IRQ acking done right
- konamigx.cpp: Get rid of old popmessage. Stop logging spam.
- m72.cpp: Put IRQ hacks out of their misery. Fixed V35-based games (Cosmic Cop, Ken-Go and Lightning Swords). Restore text layer (if scanline == 256; Dragon Breed).
- m90.cpp: Use 4-way joysticks (as service manuals suggest) in Dynablaster, Bomber Man World and clones
- m92.cpp: Put IRQ hacks out of their misery. Cleanup and kludge removal.
. Created standard write handler for SAA1099 sound; substitute for bogus YM2413 in Magic Card.
. Fixed address map in Hot Slots. Replaced SAA1099 sound with YMZ284.
- mitchell.cpp: Sound improvements in clones Pang (bootleg, set 3 and set 5) and Super Pang (World 900914, bootleg). Reduced ADPCM rate to make music speed sound more like the original. Use callback for audio IRQ.
- model1.cpp: Readded TGP roms 315-5571.bin, 315-5572.bin and 315-5573.bin to netmerc, swa, vf, vformula, vr and wingwar
- mtouchxl.cpp: Initial support for SiS85c496/497 PCI chipset and first pass shadow RAM and SM RAM support
. Added real dump of SPI EEPROM used in M1/171-7978B-type cartridge to gram2000, kick4csh, mtkob2, shootpl and tduno2. Updated docs.
. Converted existing M1-type cart SN# EEPROM data to be like real dump in clubkprz, clubkpzb, hopper, kick4csh and mvsc2.
. Identified "Airline Pilots" sets as domestic Japan and World versions, according to information from Sega.
. Removed "empty ROMs" in 'The Typing of the Dead (Rev A)' and clone, actually not populated on real ROM boards.
- neodriv.hxx: Updated video\neogeo_spr.cpp. Corrected Neo Geo sprite tile code mask to 20 bits (was previously 19 bits), stop masking MSB.
. Make 8255 PPI handshaking work in Noraut Poker. Restored some 8255 inputs in Noraut Poker that were disconnected since MAME 0.134u3 due to failed attempts to simulate a 8255 PPI configured in an unusual mode. The readout switch (Key 9) is now working again (ID 03585).
. Don't hardcode "Readout" inputs in driver
- psikyo.cpp: Some basic driver cleanup
. Added preliminary sound to clone Alien Storm (bootleg, set 2) and corrected clocks
. Added preliminary sound to clone Michael Jackson's Moonwalker (bootleg) instead of cheating by loading the sound ROMs of the original. There's probably something wrong with rom loading / OKI banking, since I don't believe the correct BGMs are always playing. Left as MACHINE_IMPERFECT_SOUND because of this.
- taito_b.cpp: Removed "bypass" that was made superfluous many years ago
. General documentation update. Added TE7750 Super I/O Expander device.
. Added Player 3 and 4 inputs to Dead Connection shown in test mode (and otherwise unused)
. Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to Yes/No Sinri Tokimeki Chart (though the game remains stuck in the 20th century) and test switch is 'NO TOGGLE'; note lack of printer emulation.
- taito_l.cpp: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs.
- taitosj.cpp: Made security MCU hookup a device
. Actual hookup for protection data and fixed potential buffer overflow
. Fixed clone Booby Kids regression and clean-ups
. Discard protection reading for clone Kid no Hore Hore Daisakusen (bootleg), memory map cleanups.
- toaplan2.cpp: Generate (and acknowledge) video interrupts within VDP (video\gp9001.cpp)
. Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold.
. Calculate dither pointer when needed for fogging (video\voodoo.cpp and vooddefs.h). Fixes graphics crash in San Francisco Rush 2049.
. Added watchdog function to M48T37 timekeeper
- zaccaria.cpp: Clear up some stuff with board photo (audio\nl_zac1b11142.cpp)
. Make "Universal Sound Board with ROM" work again (see Ixion and Razzmatazz) (ID 06599)
. Use WRITE_LINE instead of INTERRUPT_GEN
- Ace Attacker: First stab at I/O board
- Air Combat 22: Changed auto-centring throttle from Pedal to AD_STICK_Z
- Arkanoid: Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid (ID 06614).
- Bubble Bobble II: Added address map for clone Bubble Symphony (bootleg with OKI6295)
- Dragon Treasure: Bruteforced main unit DES key
- Hyper Crash: Fixed missing VLM5030 speech since 0.176. Also increased VLM volume.
- Imekura Mahjong: Fixed graphic corruption (ID 06617)
- Karate Blazers: Fixed sound regression in clone Karate Blazers (bootleg with Street Smart sound hardware)
- Karate Champ: Fixed distorted ADPCM sound in clones kchampvs, kchampvs2 and karatevs (ID 06479)
- Kusayakyuu: Acknowledge main interrupt
- Little Robin: Use more likely clocks for Little Robin based on PCB XTALS (main CPU is more likely 8MHz than 12Mhz). Also use a hack to overclock the TMS to 120% so that the map screen renders properly, points at possible timing errors in the core? Note: Various scenes flicker to the point of graphics being invisible (eg. the map screen at the very start of a game). Unless you overclock the TMS34010 to 120%, possible timing bug in the core? this is a hack.
- Mahjong Kyou Jidai: Identified the memory reset input.
- Mighty Guy: Added notes about sound "protection". Improved sound.
. Added new sound_m3.bin rom to Metal Man
. Modernized MSM5205 callback in inder.cpp and spinb.cpp
- Prebillian: Fixed vblank input so game doesn't hang with new real MCU dump, fixed player 2 spinner input and added ball launch button.
- Quiz Show
. Changed fake tape input back to old pseudo-random values that program handles better for some reason
. Driver cleanup. Removed unnecessary prefix from function names. Removed unused I/O space. Added dummy callback for flag output (which is used).
- Red Corsair: Fixed gfxdecode and use more likely CPU types
- Royal Mahjong: Added MC6845 CRT controller to clone Janyou Part II (ver 7.03, July 1 1983)
- Royal Poker V 1.85: Push emulation a little further along
- Side by Side: Fixed POST failure in debug build
- Space Gun: Replaced TC0220IOC with TC0510NIO (newer I/O version)
- Spectar: Added PROMs taken from clone (revision 2, bootleg) to Spectar
- Star Audition: Flag game with no printer/camera
- Starship 1: Fast/Slow control from toggled to momentary, as in real game. Updated clocks per latest information. Added note about Throttle Level behaviour. Changed format of comments (ID 03041).
- Steel Talons: Fixed regression
- Tail to Nose
. Added flip screen support and document non-effect of "Country" switch
. Preliminary RS232 device hookups for multiboard communications.
- Taisen Mahjong Final Romance 4: Preliminary step towards 4-player link support. Some serial INS8250 interrupts for future use.
- Treasure Island (DECO Cassette): Handcraft a BIOS rom for clone ctisland3 (the only difference between the A/B bios roms is the single byte it checks in the header anyway). Compared to the other ctisland sets it uses a different encryption and has a region code of 'D' in the header. Changed description of clone (unk) to 'Treasure Island (DECO Cassette) (Region D)'.
- Video Poker: First attempt at proper configuration the clone Video Poker (v1403)
- Dipswitch fixes in 2mindril.cpp, csplayh5.cpp, pacman.cpp and taito_f2.cpp
- Fixed rom names in arkanoid.cpp, gottlieb.cpp, minivadr.cpp, s11b.cpp and taito_l.cpp
- Description changes of Airline Pilots (Japan, Rev A), Airline Pilots (World, Rev B), Alien Crush (United Amusements PC Engine), Animal Basket (24 Jan 2005), Blazing Lazers (United Amusements PC Engine), The Bounty (set 1), E-Swat - Cyber Police (bootleg, set 1), Flash Boy (vertical) (DECO Cassette MD) (No.12/Ver.0/Set.1,Japan), Forty-Love (World), Gradius IV: Fukkatsu (ver JAC), Guerrilla War (Version 1, set 1), Gun Dealer (Yam! Yam!? hardware), Keith Courage In Alpha Zones (United Amusements PC Engine), Money Money (set 1), Onna Sanshirou - Typhoon Gal, Onna Sanshirou - Typhoon Gal (bootleg), Pac-Land (United Amusements PC Engine), Sega Rally Championship - Twin/DX (Revision B), Sega Rally Championship - Twin/DX (Revision C), Silent Scope 2 : Dark Silhouette (ver UAD), Spelunker II - 23 no Kagi (Japan), T.T Block [TTL], T.T Defender, T.T Fitter (Japan), Treasure Island (DECO Cassette) (Region D) and unknown Labeled 'WU- MARY-1A' Music by: SunKiss Chen
- Renamed (alpilota) to (alpilotj), (alpiltdx) to (alpilot), (gteikob2) to (gteikokub2), (gteikokb) to (gteikokub) and (palamed) to (palamedj)
. VIDEO RENDERING SYSTEM
. Make the palette optional (emu\drawgfx.cpp). device_gfx_interface does two things: Go from a possibly weird rom layout to a one-byte-per-pixel tiled layout and draw the tiles so created. The second part requires a palette, but the first doesn't. And low-level emulations of individual graphic chips (konami tilemap or sprite generators for instance) are not supposed to care about the palette. They just output bits which are partly indexes into palettes, and partly not, and in any case become pen ids only much further in the rendering chain. But they need access to the decoding step, because one-byte-per-pixel is real nice. So now such a device, which inherits from device_gfx_interface, can call set_palette_disable(true) and no palette tag will be required. Calling the draw functions will segfault though. As a side effect, the gfx_element constructor now takes a palette pointer instead of a reference, since it's now optional.
. Fixed the case when a gfx element has no palette (ui\viewgfx.cpp)
. BGFX: Fixed xBR-lv2-multipass, xBR-lv2-fast, xBR-lv2-noblend, xBR-lv2, xBR-lv3-noblend and xBR-lv3 shaders
. Changed the profiler to use std::ostringstream as the text sink (instead of std::string) (emu\profiler.cpp)
. Added validation check for contradictory flags, fix things it caught.
. Attempt basic validation of slot cards. Note that this currently segfaults on anything ISA and probably other stuff. For example, any of the following will crash: mame -valid c386sx16, mame -valid 386i and mame -valid b128. Pushing before dinner so others can take a look. Fixed vas' problem, region_length() is expected to return 0 if the region doesn't exist, not crash.
. Improved code for instantiating slot devices for validation. Fixed region validation for slot devices. Fixed the missing default subslot devices on slot card validation
. Further improvements to slot option validation: All slot options are now validated whether or not they are user-selectable. This has already exposed a bug in one MSX-Audio device. Slots within slots, however, get added for validation only if they are declared fixed. Various Commodore floppy drives have been affected by this, since it doesn't look as if the current FDC emulation allows for detachability.
. Improved validation checking for address ranges (emu\addrmap.cpp)
. Multi-Language: Attribution correction for Hungarian language translation
. Updated devices\cpu, devices\machine and devices\bus\* devices to use device_add_mconfig insted of device_mconfig_additions. Got rid of machine_mconfig_additions in devices\bus\*.
. Better detection of bad -ramsize strings, move some private code to anonymous namespace. There was a longstanding bug where '-ramsize 16kfoo' would be treated as '-ramsize 16k'. Changed parse_string() to explicitly look for the suffixes "[k|m][|b|ib]" (machine\ram.cpp).
. Device name changes: AY-3-8910A to AY-3-8910A PSG, AY-3-8912A to AY-3-8912A PSG, AY-3-8913A to AY-3-8913 PSG, AY-3-8930A to AY8930 EPSG, YM2149 to YM2149 SSG and YMZ284 to YMZ284 SSGL
. Added hotkey support to cheat plugin. Be more careful with unpack (plugins\cheatfind\init.lua).
. Added NES, SNES, Genesis and Game Genie support to cheat plugin. More Game Genie and NES Action Replay cheat format decoder.
. Fixed erroneous space padding before linefeed on -listclones and -listbrothers output (mame\clifront.cpp)
. Added line hold capability. Note: Whoever feels like saying that "HOLD does not exist in hardware", I invite to admire the beautiful TTL circuit to the left of the 68000s in the Over Drive schematics (emu\devcb.cpp).
. UI: Fixes a crash when returning to the front end when a system was launched from favorites. This bug could be reproduced with the following steps: 1. Put 'nes' in 'Favorites'. 2. Launch 'nes'. 3. Choose something from the software menu and run the emulation. 4. Escape back... CRASH.
. Sort slot options by name in -listslots. Device names can be obtained without instantiation now (mame\clifront.cpp)
. Fixed address_map configure (emu\addrmap.cpp)
. Disable side effects in some read handlers (machine\msm6253.cpp and upd4701.cpp)
. Coverity (software)
. Fixed errors about unintended truncation (machine\cs4031.cpp and genpc.cpp)
. Cleanup and constructor delegation (video\poly.h, includes\orbit., includes\pass.h, machine\bfm_bd1.cpp, bfm_bda.cpp and taitoio.cpp)
. Compile fix for machine\ldvp931.h and pdc.h
. Fixed etc\template_driver.cpp compile
. Verify some same label different hash (sldh) rom parts and commented following established procedures
. Windows debugger: Added ability to load software-list items. Mount File/Create default to swpath instead of randomness (win\consolewininfo.cpp).
. Changed 'enum read_or_write' to be 'enum class' (debug\debugcmd.cpp, emu\emumem.cpp and machine\fddebug.cpp)
. Don't try to read past the end of a memory space in debug view (debug\dvmemory.cpp)
. Removed "Mount Item" for now due to bugs, also removed internal media slots from images menu (win\consolewininfo.cpp).
. Changed a few 'const char *' ==> 'const std::string &' in the MAME debugger
. Fixed an issue that could cause the debugger 'source' command to falsely display I/O error