One of the things my wife always tells me is that I'm too modest, so here's my attempt to show off. I've contributed a lot of time to MAME over the past 10+ years! Fortunately, I feel it has been time well-spent.

Summary (so far)

  • Drivers Submitted: 356!
  • CPU Cores: 10
    • Analog Devices ADSP-2100
    • AT&T/Lucent DSP32C
    • Atari ASAP
    • Atari Jaguar GPU/DSP
    • Cinematronics CCPU
    • DEC T-11
    • Motorola 68(7)05
    • MIPS R3000
    • MIPS III/IV (R4000/R5000)
    • TI TMS32031
  • Sound Cores: 8
    • BSMT2000
    • CEM3394
    • DMA-driven DAC
    • Ensoniq ES5505/5506 (OTTO)
    • HC55516 CVSD
    • OKI6925 ADPCM
    • RF5C68
    • Yamaha YMZ280B


December 2007:
  • Made some initial progress on the Zeus 2 games
  • Got the first generation Midway Zeus games up and running
November 2007:
  • Optimized the Hyperstone CPU core
  • More Midway Zeus work
  • Cleaned up the timer interfaces and normalized on attotime
October 2007:
  • Began digging into the Midway Zeus system
  • Converted other 3D systems to use new rasterization helpers
September 2007:
  • Optimized the 3dfx emulation to take advantage of multiple cores
  • Introduced mechanism for offloading 3D rasterization onto secondary threads
  • Added x64 DRC for the MIPS III/IV
  • Added smarter frameskipping for cases where games don't update every frame
August 2007:
  • Added generic palette management in the core library
  • Added alternate colortable management system
  • Updated i386 disassembler for 64-bit support
  • Added new code emitters for unified x86/x64 DRC code generation
  • Changed V30 and i86 to use a 16-bit data bus and updated all affected drivers
  • Added control for overall emulation speed
  • Reworked the tilemap code to be both simpler and more flexible
July 2007:
  • Added astring to the core library for managing strings
  • Wrote source code to HTML conversion program
  • Moved INI file handling into the core
  • Reworked input system to push most of the hard work into the core
  • Added minimal built-in game selection user interface
June 2007:
  • Began looking into input system simplification
  • Various internal changes/cleanups
May 2007:
  • Fixed Inferno sound at long last
  • Rewrote the Bally Astrocade driver from patent information and fixed Gorf
  • Added more accurate video timings to several drivers
April 2007:
  • Moved command-line frontend utilities into the core system
  • Significantly simplified the TMS34010 and made it generate video timing
  • Updated a number of drivers with proper video timing
  • Added better video timing primitives to the core
March 2007:
  • Moved support for a number of options into the core system
  • Added first multicore rendering support to the Gaelco 3D driver
  • Added accurate video timing and full memory maps to the Food Fight driver
  • Moved throttling, frameskipping, and timing code into the core system
  • Introduced the new proportional built-in font
February 2007:
  • Created tools and scripts for regression testing
  • Fixed BSMT2000 emulation to support the mysterious ADPCM format
  • Changed sound engine to be OSD independent and many sound cores to generate at native rates
  • Identified algorithm used to generate FD1094 keys
  • Added laserdisc support to the CHD code
  • Released the 10th anniversary build!
January 2007:
  • Cleaned up and abstracted the core bitmap objects
  • Added support for automatic crosshair rendering
  • Added emulated sound generation to the Berzerk driver
  • Added UTF-8 support to the internal rendering system
  • Added laserdisc support to the rendering system
  • Created osdcore library


December 2006:
  • Improved Amiga hardware emulation to support American Laser Games
  • Added support for the Sony LDP-1450 laserdisc player
  • Added enhanced texture modes to support eventual laserdisc video
November 2006:
  • Changed naming convention for screenshots
  • Added Fishing Frenzy and Freeze to the Atari cojag driver
  • Cleaned up the CHD code and added some extra flexibility
  • Reorganized cdrom code to move audio code into the sound module
  • Rewrote the Dragon's Lair driver from the schematics
  • Added laserdisc module which contains code to simulate laserdisc players
October 2006:
  • Improved functionality of the options manager
  • Abstracted printf interfaces so they can be re-routed by the OSD layer
  • Fixed the Looping driver protection issues and speed
  • Converted all disassemblers to the new callback format and added step in/out support
September 2006:
  • Removed support for the old debugger
  • Moved a few interfaces in the core to be more object oriented
  • Cleaned up and reorganized the palette code
  • Rewrote Grand Champion driver from the schematics
  • Rewrote the PNG, ZIP, and auditing code to be much more straightforward
  • Redesigned the file I/O interfaces to be simpler
August 2006:
  • Connected Sega Universal Sound Board to Razmataz and Ixion
  • Rewrote the Sega G-80 raster game driver from the schematics
  • Added accurate scanline timing routines that work with multiple screens
  • Introduced new output system, and added Windows OSD code to expose output changes to external clients
  • Rewrote the Turbo driver from the schematics
  • Added native 7-segment LED and text support to the layouts
July 2006:
  • Added generic raster effects support
  • Added per-game-screen brightness/contrast/gamma/position/stretch support
  • Rewrote the Crystal Castles driver from the schematics
  • Rewrote the Cloud 9 driver based on analyzing a Firebeast prototype PCB
  • Rewrote the Missile Command driver from the schematics
  • Removed old renderer and artwork system
  • Rewrote the user interface to rely on the new renderer
  • Rewrote the Zaxxon driver from the schematics
June 2006:
  • Fixed many bugs introduced by the new rendering system
  • Added preliminary multi-threading support for the renderer
  • Updated a number of drivers to take advantage of multi-screen support
  • Rewrote the palette/graphics/tilemap viewer to use the new renderer
  • Added support for "compiling" built-in layouts
  • Added fast-forward function
  • Added progress displays during initialization
  • Converted a number of drivers from the old artwork system to use new layouts
May 2006:
  • Added support for building with Microsoft tools under Windows
  • Officially added support for 64-bit targets
  • Introduced the new rendering system
  • Added true support for multiple monitors in drivers as well as in the Windows OSD code
  • Rewrote the options parsing system
April 2006:
  • Stopped using UPX to compress official binaries
  • Removed empty regions from most drivers
  • Rewrote much of the Amiga driver to support sound and additional video modes
  • Finally managed to get a good dump of Speed Up, and added it to the Gaelco 3D driver
  • Wrote jedutil tool, and added PLDs to a number of games as required files
March 2006:
  • Made save state registrations visible in the debugger
  • Rewrote memory card support to be more generic
  • Rewrote Sega G-80 vector game driver from the schematics
  • Emulated the Sega Universal Sound board
  • Added custom input callbacks and DIP switch location information to input ports
February 2006:
  • Cleaned up Z80 CTC/SIO/PIO peripherals code
  • Reorganized several pieces of the core into more logical divisions
  • Reorganized the initialization and exit sequences
  • Added pause/reset/exit callbacks, and normalized driver callbacks
  • Added live error logging view to the debugger
  • Normalized save state code and added save state support to a number of modules
  • Added Fred Flintstone's Memory Match to the Double Cheese driver
January 2006:
  • Fixed a number of issues in the new debugger
  • Added preliminary Voodoo 3 and Voodoo Banshee support to the 3dfx emulator
  • Added support for dynamic output frequencies to the sound streaming engine
  • Added Crowns Golf in Hawaii to the crgolf driver
  • Cleaned up and reorganized all the makefiles


December 2005:
  • implemented support for ADSP-2181 and hooked up sound in Road Burners
  • fixed many problems caused by the Voodoo rewrite
November 2005:
  • rewrote the Voodoo emulation to be more accurate and flexible
  • rewrote validity checks to complete much faster
October 2005:
  • cleaned up the way encryption is handled; removed RAMROM hack from memory system
  • added MMU support to the MIPS3 cores
  • added logical memory mapping support to the debugger
  • changed memory system to no longer use regions for RAM
  • added flag for games that suppot saves, and added -autosave option
  • added save state support to several drivers
September 2005:
  • added Twin Squash to the Sega System C driver
  • fixed a number of problems due to save state changes
  • continued to add save state support to core systems
August 2005:
  • added save state support for timers and several sound systems
  • made the save state system easier to write for
  • cleaned up and normalized struct naming in the core files
  • changed the way UI text is rendered in anticipation of future rendering changes
  • added Lotto Fun 2 to the Double Cheese driver
  • redesigned the way configuration data is handled to be more flexible
  • reverse engineered the blitter in Double Cheese
July 2005:
  • rewrote Z80 daisy chaining code
  • changed a number of Irem games over to using force_partial_update
  • rewrote/reorganized the MCR system code to be more accurate
  • updated memory maps for the MCR sound boards
  • continued rewriting the System 32 driver
June 2005:
  • fixed several major problems in the V60 core
  • wrote an NEC V60 assembler to assist in System 32 testing
  • started cleaning up the Sega System 32 driver
  • rolled out the new license and
May 2005:
  • rewrote the RF5C68 sound emulator from the specs
  • faked the coprocessor to get AmeriDarts playable
  • fixed the TMS34010 enough to get Cool Pool and 9 Ball Shootout working
April 2005:
  • added X the Ball
  • significantly cleaned up the Exterminator driver
  • finally removed CPU_16BIT_PORT and CPU_AUDIO_CPU flags
  • took over for Haze doing official updates and builds
  • improved blitter timing in the Williams games
  • added accurate blitter timing to the 8-bit Incredible Technologies games
  • added Up Your Alley to the Cinematronics driver
March 2005:
  • fixed a number of problems introduced by the sound rewrite
  • fixed bugs in the Sega X-board driver
  • added a Sega Y-boad driver
February 2005:
  • added the 32-bit Golden Tee Golf games to the Incredible Tech driver
  • rewrote the sound system to be more flexible and higher quality
  • modified all drivers to add speaker definitions
January 2005:
  • rewrote the Sega Hang On driver
  • rewrote the Sega Out Run driver
  • added generic Mahjong inputs
  • improved memory system mirroring
  • submitted the Atari/Midway Vegas driver
  • rewrote the uPD7759 sound chip emulator


December 2004:
  • sent in some more debugger improvements
  • continued work on Sega System 16/18 drivers
  • rewrote the Sega X board driver
November 2004:
  • spent a lot of time tweaking the new debugger
  • rewrote the Sega System 16 driver
  • rewrote the Sega System 18 driver
  • added Poker Dice to the Incredible Technologies 8-bit driver
October 2004:
  • submitted the updated CCPU core and Cinematronics vector driver
  • fixed Exidy audio memory maps
  • added input port modification support
  • added support for a new debugger
September 2004:
  • began rewriting the Cinematronics CCPU core and the Cinematronics vector driver
August 2004:
  • continued fixing bugs in the new input system
  • reinvented the ctrlr files as cfg files
  • added sound to the Gaelco 3D games
July 2004:
  • rewrote the input port system from scratch and fixed bugs
  • changed the cfg files to an XML format
June 2004:
  • added support for new ADSP2181 opcodes to the ADSP21xx core
May 2004:
  • worked on a failed attempt to get the MIPS recompiler going faster
  • added emulation of the SMC91C94 ethernet controller
April 2004:
  • continued fixing timer problems
  • fixed a number of problems in the Killer Instinct driver
  • added a driver for Super Rider
  • fixed some problems with the debugger and the new memory system
  • fixed a number of bugs in the MIPS dynamic recompiler
  • fixed a number of problems in the Seattle driver and added Vapor TRX support
March 2004:
  • finished up the Gaelco 3D games driver
  • added multichannel support for the discrete sound system
  • added discrete sounds to Hit Me
  • fixed some more timer problems
February 2004:
  • rewrote the internals of the timer system to use integers instead of floating point values
  • added the DMA-driven DAC sound device, and modified the DCS and CAGE sound cores to use it
  • added a preliminary driver for the Gaelco 3D games
  • fixed the TMS32031 core to support a few unimplemented opcodes
  • added support for built-in memory maps provided by CPU cores
  • finally submitted a driver for Driver's Edge
January 2004:
  • tweaked the -ftr option to allow for automating some MAME testing
  • fixed and cleaned up several dozen drivers to take advantage of the new memory system
  • rewrote the internals of the memory system to support multiple address spaces and many new features
  • changed the way CPUs are referenced, greatly cleaning up access to the CPU cores


December 2003:
  • added support for dynamically modifying the refresh rate
  • added Voodoo 2 support to the Voodoo code
  • fixed two very difficult to find bugs in the MIPS III recompiler
  • added California Speed and Biofreaks to the Seattle driver
  • fixed several bugs in the Voodoo emulation
November 2003:
  • redesigned the CHD format to be less hard-drive centric, and to compress data more effectively
  • fixed T-Mek video, and got the prototype version up & running
  • added CAGE audio support for T-Mek, Primal Rage, and San Francisco Rush
  • improved ASIC65 protection in Road Riot 4WD
  • implemented the SLOOP/ASIC65 protection in Guardians of the Hood
  • fixed motion object handling in the Atari growth object games
  • fixed some major bugs in the TMS32031 core, almost fixing Offroad Challenge
  • added support for the Seattle games, including a mostly complete 3dfx Voodoo emulator
October 2003:
  • fixed several bugs in the ADSP-2100 and MIPS3 CPU cores
  • fixed DCS2 sound in War Gods
  • fixed several more bugs related to the timer change back in May
  • added over 100 alternate Atari game variants
August-September 2003:
  • busy with work (Microsoft Virtual PC 2004)
July 2003:
  • added Japanese version of Pit Fighter to the Atari G1 driver
  • added information on a couple of long lost slapstic variants
  • fixed a few more issues with the new timing system
June 2003:
  • fixed a number of games that broke under the new timing system
May 2003:
  • change the way the timer system works to improve accuracy
  • fixed audio pitch in Hard Drivin' and Race Drivin'
  • added more support to the IDE controller to handle commands needed by the Seattle games
  • added a second prototype to the Hydra driver
April 2003:
  • added new command line parameters to control sound latency and logfile size
March 2003:
  • added MIPS IV dynamic recompiler
  • fixed a few bugs in the timer code dealing with how suspended CPUs get cycles counted
February 2003:
  • added missing microcode ROMs to the Atari G1/G42 drivers
  • sped up the V60 code by using direct opcode fetches
  • fixed long standing sprite glitch in Road Blasters
  • added Ribbit! to the Sega System C driver
January 2003:
  • changed all the TMS34010 to behave consistently
  • submitted Art & Magic driver and worked with Nicola to resolve encryption issues
  • submitted a driver for Tickee Tickats
  • implemented a generic TLC34076 palette handler
  • fixed sprite/background priorities in Skull & Crossbones
  • submitted a driver for Lethal Justice and Egg Venture
  • submitted a driver for Crowns Golf
  • added the Area 51/Maximum Force Duo to the Cojag driver


December 2002:
  • added extraction and merging capabilities to hdcomp
  • submitted new MIPS III/IV (R4000/R5000) core
  • fixed bugs in the ADSP-2100 and TMS32031 cores
  • reorganized the Midway games
  • added preliminary War Gods and Off Road Challenge drivers
  • submitted a driver for Killer Instinct 1 & 2
  • fixed hiscore screen in Total Carnage
  • added Grudge Match to the Bally/Sente driver
  • submitted preliminary AmeriDarts driver
November 2002:
  • fixed sprite/background priorities in ThunderJaws, Relief Pitcher, Shuuz, and Escape from the Planet of the Robot Monsters
  • did some more cleanup/restructuring of the machine driver internals
  • moved ZIP file handling into the core MAME code
  • helped get the Windows code moved over to mingw 2.0 (gcc 3.2)
  • added verification, info, and some other features to hdcomp
  • added Sharpshooter to the Police Trainer driver
  • changed the Windows code to automatically create non-existant directories
October 2002:
  • worked on reverse engineering the ASIC65 math chip
  • added Hard Drivin's Airborne to the Atari polygon driver
  • got Race Drivin' and Steel Talons up and running finally
  • added Asylum to the Leland driver
  • wrote a CPU core for the TMS32031
  • wrote a driver for the Williams V-unit games Cruis'n USA and Cruis'n World
  • finally fixed the CoJag driver enough to submit the hard disk-based games
  • added an XML option to the -listinfo output
September 2002:
  • added Speed Ball to the Williams driver
  • started work on a DSP32C emulator for Race Drivin'
August 2002:
  • started working on the Atari polygon games again
July 2002:
  • removed rotation support from the core drawgfx functions
  • fixed edge cases in memory system
June 2002:
  • debugged the new artwork handling
  • wrote a driver for the obscure Italian game Dribbling
May 2002:
  • rewrote artwork handling from scratch
  • changed the OS-dependent display interfaces to accommodate new artwork support
  • added blit-level rotation to the Windows blitters
  • dumped and added a new Gravitar prototype
April 2002:
  • fixed a bunch of memory access bugs found by guard pages
  • converted all the Atari 68000 drivers to use tilemaps
  • fixed missing graphics effects in ThunderJaws
  • added first-level protection workarounds for Primal Rage and Road Riot's Revenge
  • added Dyno Bop and World Class Bowling to the Incredible Tech drivers
  • dumped and added a prototype version of Street Fighter
  • merged the Centipede, Millipede, Warlords, and Qwak drivers
March 2002:
  • added Judge Dredd to the Midway T-unit driver
  • fixed missing shadows in Mortal Kombat II/III
  • converted old Atari drivers to use tilemaps
  • continued polishing the Cojag driver
  • made MAME more friendly by giving unneeded time back to the system
  • fixed and improved some things in the tilemap system
  • added support for hard disks
February 2002:
  • fixed several bugs I introduced in my MAME core reworking
  • added a driver for Police Trainer
  • added a driver for Rapid Fire
  • worked on the Cojag driver, finally got the games running
  • rewrote Windows file access routines to simplify the code
January 2002:
  • spent two weeks straight gutting the whole MAME source tree
  • converted all drivers to use new machine driver system
  • added clipping to update routines (in anticipation of partial updating)
  • added auto resource tracking for memory, bitmaps, and timers
  • added preliminary driver for the Bradley Trainer
  • added driver for the Alpha One, a prototype Majoc Havoc
  • added support for an alternate Blaster romset
  • added partial updating support to the core
  • converted a bunch of games over to using partial updating instead of hacks


December 2001:
  • added PlayBall! to the Williams driver
  • fixed annoying crackling noise in YMZ280B sound emulator
  • started reworking the way machine drivers are defined in the code
November 2001:
  • fixed up and submitted Subroc 3D and Buck Rogers Planet of Zoom drivers
  • fixed Quantum colors
  • fixed protection in WWF Mania
  • added Revolution X driver
  • added BattleToads driver
  • added BSMT2000 sound chip emulation
  • submitted preliminary Shrike Avenger driver
October 2001:
  • added Star Guards to the MCR driver; fixed general timing and interrupt issues in the MCR games
  • added better out-of-bounds checking on the Windows verson, and fixed a few games that had problems
  • added Catch 22 to the Exidy 440 driver
September 2001:
  • greatly improved the accuracy of the older Exidy sounds (thanks to Tom McClintock for recording Venture samples for me!)
  • fixed some more interrupt issues caused by my rewrite
  • fixed some (not all) of the issues with the Ensoniq sound driver
August 2001:
  • added two early Klax prototypes, which ran on Escape from the Planet of the Robot Monsters hardware
  • added proper timings, reset, and interrupt handling to the DEC T-11 core
  • fixed terrible scratchy noise in the ES550x emulator
  • restructured the core CPU interface, removing a lot of old junk and simplifying the code
July 2001:
  • cleaned up Tetris and Star Wars drivers
  • removed slapstic kludges for the various Gauntlets and Xybots
  • fixed slapstic issues in Pit Fighter and Rampart
  • went on vacation!
June 2001:
  • added Slither and cleaned up the Qix driver
  • cleaned up the Arabian driver and fixed the colors
  • added new blitter and scanline/RGB effects to MAMEW
  • optimized the 68k assembly core a little; fixed bugs in a couple of 68020 instructions
  • added new All American Football (4 player) set to the Leland driver
May 2001:
  • continued fixes for MAMEW
  • added aspect ratio specification to the core
  • added overlay to Avalanche
  • marked a number of drivers with NEEDS_6BITS_PER_GUN flag
  • added Neck & Neck to the IT/Strata 8-bit driver
  • added Shuffleshot to the IT/Strata 32-bit driver
  • cleaned up the Return of the Jedi driver
  • added Gridlee driver
April 2001:
  • continued work on MAMEW, including first official submission
  • added Power Play to the Leland driver
  • submitted the partially complete Atari G42/GX2/GT drivers
  • added crude input support for Slick Shot
  • fixed Cyberball palette
  • cleaned up Food Fight driver
  • fixed Atari JSA sound frequencies
March 2001:
  • started work on MAMEW
  • fixed a number of compilation/crashing bugs in the existing MAME code
Feburary 2001:
  • fixed analog port scaling again
January 2001:
  • added ES5506/5505 emulation
  • added Incredible Tech/Strata 32-bit blitter driver
  • added Hard Drivin' Compact to the Atari polygon driver
  • helped get sound going in Taito F3 games


December 2000:
  • added Incredible Tech/Strata 8-bit blitter driver
  • fixed problem with scaling input ports
November 2000:
  • added Mortal Kombat II hacks to the T-unit driver
  • fixed bugs in the asm 68k core that affected the C2 games
  • added sampleratedetect and vectorres command-line options
  • fixed Atari System I games and added Indiana Jones (German)
  • added BeatHead and ASAP CPU emulation
  • combined the Libble Rabble and Toy Pop video systems
  • fixed priorities in Pac 'n Pal
  • added draw_scanline functions and converted about a dozen drivers to use it
  • added Stompin' to the Bally/Sente driver
October 2000:
  • converted the 68020 to use a 32-bit memory interface
  • cleaned up the Sega C2 driver and figured out the protection on all games
  • rewrote memory system
  • rewrote ROM-loading system
September 2000:
  • added Atari polygon driver
  • optimized Atari polygon driver
  • added automatic bank assignment for sparse memory spaces
  • fixed several drivers to work with the new 16-bit memory handlers
  • added mdrawgfx for masked drawing
August 2000:
  • fixed nasty bug in the ADSP core that was breaking the Atari polygon games
  • added preliminary TMS34020 support to the 34010 core
July 2000:
  • rearchitected the Williams 34010 driver
  • added Brute Force to the Leland driver
  • added Williams Wolf unit driver
  • rewrote Williams Y-unit protection to simulate the chip
June 2000:
  • fixed graphics in Star Fire/Fire One driver
  • fixed noise in Exidy sound driver
  • added Rescue Raider (standalone) to the Bally/Sente driver
  • merged several tiny machine/*.c files into their driver/*.c files
  • added YMZ280B sound engine
  • fixed protection in Mortal Kombat 2 and NBA Jam
May 2000:
  • added instruction timings to the i86 core
  • added 80186 support to the i86 core
  • fixed Leland driver
  • added raw drawing modes to the drawgfx call
  • improved sound in the older Exidy games
  • fixed several bugs in the YM2608 sound engine
  • added Hatris to the Pipe Dream driver
  • added Victory driver
April 2000:
  • added Super Volleyball to the Rabbit Punch driver
  • fixed sprite drawing on older MCR games
  • added Pipe Dream driver
  • added multiple read access to the generic EEPROM implementation
March 2000:
  • fixed colors in Vindicators/Vindicators II
  • improved sound in MCR games
  • fixed noise in the new mixer code
  • fixed sound in Spy Hunter 2 and backgrounds in older MCR games
  • added background graphics in Exerion
  • added Rabbit Punch/Rabio Lepus driver
February 2000:
  • added the core sound mixer module
  • demonstrated non-working drivers for Atari G42, GX2, and GT boards
  • fixed several 68020 bugs in the WIP C core
  • updated the TMS5220 and ADPCM cores to do linear interpolation
  • fixed shadows in Gauntlet and graphics in Vindicators Part II
  • added emulation of the protection in Pole Position II
January 2000:
  • added vertical dials and wheels as core analog input types
  • added multiplexed sprite support to the Exidy 440 driver, fixing Chiller
  • did a major cleanup of the core memory system
  • added READ_HANDLER and WRITE_HANDLER macros


December 1999:
  • added 16-bit support to the Williams drivers
  • disabled the fast stack optimization in the TMS34010 core
  • added CPU suspension reasons to the timer system
  • added the ADSP-2100 CPU core
  • optimized the mathbox in the newly-working I, Robot driver
November 1999:
  • attempted to optimize the M72 driver
  • optimized sound in Williams TMS34010 games and later MCR games
  • fixed (with Ernesto and Juergen) the Pole Position/Pole Position II driver
  • fixed (with Ernesto) the Turbo driver
  • added 16-bit support to the Bally/Sente and Exidy 440 drivers
October 1999:
  • added 16-bit DAC support
  • added Spiker to the Bally/Sente driver
  • fixed sound synchornization in the Exidy 440 driver
  • added Mayday to the Williams driver
  • combined the Mystic Marathon-era Williams driver with the older driver
  • fixed Turkey Shoot and added sound to Joust 2
  • added rotation support for the Bally/Sente and Exidy 440 drivers
  • rewrote HC55516 CVSD sound system
  • added sound to Blasted and Max RPM
  • added Arcade Classics and Sparkz prototypes
  • added proper timing to the TMS34010 core and cleaned up the interfaces
  • added divide-by-8 to the clock on all the TMS34010 games
  • fixed Smash TV video glitches
September 1999:
  • added Bally/Sente driver (Hat Trick, Chicken Shift, etc.)
  • improved Exidy 440 sound
  • added analog pedal as a core input type
  • major MCR driver overhaul; added Power Drive, Turbo Tag
  • added MCR/68k driver (Arch Rivals, Spy Hunter 2, Zwackery, etc.)
  • reworked the interface to the 6821 PIA
  • another month, another Atari driver overhaul
August 1999:
  • added Thunderjaws driver
  • added Batman driver
  • added Relief Pitcher driver
  • fixed Xybots sprites
  • fixed long-standing T-11 bug that was preventing APB from working
  • added Off the Wall driver
July 1999:
  • another month, another major Atari driver overhaul
  • added Pit Fighter/Hydra driver
  • added Cyberball 2072/Tournament Cyberball 2072 driver
  • fixed long-standing VBLANK timing bug
June 1999:
  • worked on slapstic issues
May 1999:
  • another month, another major Atari driver overhaul
  • added Cyberball 2072 (2 players) driver
  • added Shuuz driver
  • added Rampart driver
  • fixed priorities in Escape from the Planet of the Robot Monsters
  • added Skull & Crossbones driver
  • fixed priorities in Xybots
  • added BadLands driver
  • added bank switching support to the OKI6295
April 1999:
  • continued fixing CPU core bugs, and updating the PowerPC assembly cores
  • added .WAV file sample support
  • did a major cleanup of the Atari drivers
  • added fast interrupt support to the 68000 and T-11 cores
  • added Vindicators Part II to the Gauntlet driver
  • rewrote Gauntlet video to use tilemaps
  • abstracted Atari sound system into a separate file
March 1999:
  • added rotation support to a number of drivers
  • added Crackshot to the Exidy 440 driver
  • fixed a number of bugs in the 6800, 6809 and Z80 cores
  • added proper distinction between 6800, 6803, and 63701 timings
February 1999:
  • added Exidy 440 driver (Crossbow, Cheyenne, Chiller, etc.)
  • fixed several subtle bugs in the timer system
  • combined the Namco and Rolling Thunder-specific sound generators


September 1998-January 1999:
  • busy with work (Connectix Virtual Game Station)
August 1998:
  • improved palette handling in the Psychic 5 driver
  • added Max RPM to the MCR driver
  • converted Retrocade's CCPU core to MAME
  • added Cinematronics vector game driver
July 1998:
  • updated palette handling and added rotation to the Sega System 8 driver
  • optimized the watchdog timer handling
  • abstracted user interface key handling
June 1998:
  • updated all Atari drivers to use the new built-in palette compression
  • changed a number of drivers to use palette compression
  • added proper cycle timing to the 68000
  • added software timers on top of the OPL-based YM3812 emulation
  • fixed nasty reset bug in the MCR games
  • added Vindicators driver
May 1998:
  • added 8-bit palette compression to Gauntlet
  • added Klax driver
  • added T-11 CPU core
  • added Atari System II driver
  • added Blasteroids driver
  • added Xybots driver
  • added Escape From The Planet of the Robot Monsters driver
April 1998:
  • added slapstic-protected versions of Gauntlet
  • added Toobin' driver
  • added Atari System I driver
  • added 2-player Gauntlet to the Gauntlet driver
  • began working on a Blasteroids driver
March 1998:
  • began work on slapstic decoding
  • optimized the timer system
  • improved ADPCM sample support
  • added Crater Raider to the MCR driver
  • added OKI6295 ADPCM support, using Block Out as a test case
  • rewrote Williams blitters, fixing Sinistar
  • fixed colors in Motos
  • implemented YM2151 timers using the new timer system
February 1998:
  • abstracted the vector code to allow for platform-specific optimizations
  • reworked the memory system and the 68000 core to support 16-bit accesses
  • added 16-bit color support to the core
  • updated a number of drivers to use 16-bit color
  • fixed 68000 interrupt priorities
  • cleaned up the Williams driver some more
  • fixed ADPCM sound in Lode Runner and Traverse USA
January 1998:
  • fixed 6809 core to support sync instructions that Zookeeper was using
  • optimized Zookeeper video
  • added sound to Colony 7
  • wrote the core timer system and rearchitected CPU execution around it
  • rewrite the Z80 CTC code using timers
  • added automatic memory allocation for 24-bit (and larger) address spaces
  • added 68705 CPU core, and emulated the MCU in Arkanoid
  • began writing the Atari System I driver


December 1997:
  • improved Quantum driver into a playable state
  • optimized Rastan driver
  • added full 6821 PIA emulation
  • majorly rewrote the TMS-5220 speech driver
  • added speech to Discs of Tron
  • added Sarge to the MCR driver
  • modified all CPU cores to use the same interface
  • reworked cpuintrf.c to be table-driven
November 1997:
  • added Gauntlet & Gauntlet II
  • lots of cleanup work on the 68000 C core
  • added new 68000 disassembler
  • added cpu_reset()
  • added Food Fight
  • optimized Namco sound generation
  • improved POKEY sound generation
  • added sound to Spy Hunter and Rampage
  • added lamp display to Spy Hunter
  • added sound to Qix
  • added bankswitching support to the 6502 core
October 1997:
  • fixed some Star Wars mathbox bugs
  • separated cpu_readmem/cpu_writemem into specific versions for 16,20,24 bit address spaces
  • fixed a bug in the 6808 core
  • added music/ADPCM support to Moon Patrol, 10 Yard Fight, and Kung-fu Master
  • added 2-byte and 4-byte memory handlers for the 68000
  • added support for dirty marking
  • modified a number of drivers to support dirty marking
  • optimized the Mappy driver
  • optimized 1943 and Gunsmoke video
  • added Motos and Tower of Druaga to the Mappy driver
September 1997:
  • fixed Kozmik Krooz'r
  • proposed the timer system
  • changed a number of drivers over to using osd_modify_pen
  • added Spy Hunter
  • generated (by hand!) the first mamelist.txt
  • fixed Rastan palette issues
  • began writing assembly-based Z80 core for the PowerPC
  • optimized the 6809 C core
  • fixed music in Kick
  • fixed Z80 C core instruction timings
  • added rotation to Williams driver, almost fixed Sinistar and Bubbles
August 1997:
  • general Namco cleanups
  • rewrote Atari vector generator to be more accurate
  • added palette handling to the Tapper driver
  • improved speed of the Tapper driver
  • added video_attribute field to the driver structure
  • added osd_modify_pen() to the core
  • modified Williams, Tapper and Tutankham drivers to use dynamic palettes
  • added sound to the Tapper driver
  • rewrote the Z80 CTC emulation for the MCR games
  • added Discs of Tron to the Tapper driver
  • helped add the remaining MCR games to the Tapper driver
July 1997:
  • started working on Bosconian
  • started working on Spy Hunter
  • got Millipede working
  • added Pac & Pal to the Super Pac-Man driver
  • fixed colors & sounds in Mappy, Dig Dug, Super Pac-Man
  • improved Mac video to support vector games, fixed bugs in the initial vector code
  • added Dig Dug 2 to the Mappy driver
pre-July 1997:
  • added Mappy driver
  • added sound to Super Pacman
  • added Dig Dug driver