MAME Activity Logs

From 1997–2007 I kept fairly detailed logs of all the contributions I made to the MAME project. They are reproduced here, separated into yearly chunks.

Each chunk is listed in reverse chronological order, with the most recent contributions at the top. The original idea was to make it easy to see the most recent progress, though obviously now that they are all well in the past, it is all historical in nature.

Someday if I’m bored, I may go back and fill in the remaining years (don’t hold your breath though!)

2007

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

2006

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

2005

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 mamedev.org

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

2004

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

2003

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

2002

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

2001

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

2000

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/>i>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

1999

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

1998

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

1997

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 • added ROM_LOAD_EVEN and ROM_LOAD_ODD

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