Release Date

MAME 0.153 was released on 7 April 2014.


Contributors

The known contributors for this version are, in alphabetical order:



Specific Contributions

The known contributions for this version are, in the order specified in the whatsnew:


  • Aaron Giles, Miodrag Milanovic and Alex Jackson completed a massive architectural change: There is no longer a single, global palette. Instead, palettes are now devices, and drivers and devices can have as many independent palettes as needed. This update required extensive changes to many parts of the core, UI, OSD layers, drivers and devices.
  • Miodrag Milanovic and Alex Jackson updated the core so there is no longer a single, global array of decoded graphics. Decoded graphics are now owned by devices using a new device interface, called, unsurprisingly, device_gfx_interface. A "gfxdecode" device (which does nothing but inherit this interface) provides the old, driver-level decoding functionality for drivers with video emulation not based on devices and for devices that haven't been updated to the new interface (which is currently most of them). Also, graphics layouts can now reference shared RAM regions by tag the same way as ROM regions, eliminating the need to set up RAM-based graphics manually (note that drivers/devices are still responsible for marking gfx elements dirty when the RAM they are decoded from is written to).
  • Couriersud fixed a bug preventing memory display of INT8/UINT8 in debugger.
  • Couriersud added missing interfaces to netlist. mame -debug pongf now does not crash any longer and displays some state. Still more work needed. Further improved the netlist state saving.
  • Couriersud removed legacy code in netlist and separated out 74153 and 74107(A).
  • Roberto Fresca updated the Truco-Tron driver: Reversed and documented almost all PCB's ICs
  • Couriersud added a "-u" (for unix) flag to srcclean to produce unix-style endings.
  • Couriersud added a dry-run option (-d) to srcclean. Know what you are doing.
  • smf updated mc68901.c: use aer register to select which transition to generate an interrupt on and added preliminary transmit and receive support.
  • Couriersud provided an alignment of netlist with MAME standards. Inputs to netlist are now registered using by MCFG_* as mame subdevices and exhibit the usual writeXX/readXX methods including a PORT_CHANGED method. This allows direct linking to inputs.
  • smf updated diserial.c: don't transmit anything when driven by an external clock and nothing has been queued. call set_data_frame() before calling set_rcv_rate() as otherwise it acccesses m_synchronous before it is set leading to random behaviour. Changed parity & stop bits to an enum (you can now pass in 1.5). Updated the uarts that were testing for 1.5 stop bits to pass that in, but there are probably others & 1.5 stop bits is converted to 2 by diserial. The 68681 requires stop bits to be specified in clocks, so this will change in the future. Replaced synchronous flag with start bit count, as some uarts can use a start bit in synchronous mode & that whether there is a start bit is all the flag is currently controlling. Updated rs232 terminal to allow startbits, stop bits 1.5 to be specified (although that is currently not supported by diserial) and individual transmit and receive baud rates.
  • smf updated atarist.c: push all gpio values to allow interrupts to work.
  • Felipe Sanches provided AVR8 improvements:
    • Added ELPM instructions.
    • Added fuse bits macros.
    • Added reset logic to decide initial program counter based on fuse bits configuration.
    • Added initial support for ATMEGA1280 and ATMEGA2560.
    • Use register names in the disassembly of IN and OUT instructions.
  • smf updated via6522.c: Converted to use devcb2. Removed alot of read handlers where the values could more easily (and often were being) pushed. CA1 is input only, so he has removed the output callback. The lisa via hookup has been changed as it had functions named as CA2/CB2 hooked up to CA1/CB1 and CA1 output no longer exists, it appears to have been wrong since before the code was merged with MAME. Added support for shift out free running at t2 rate, cb1 output now lasts for the specified number of clocks and the signal goes low at the end.
  • couriersud enhanced the netlist parser and cleaned pong.c. Also added a folder nl_examples which contains standalone netlist examples.
  • Phil Bennett updated mquake.c: Added notes and NO_DUMP placeholder for I/O MCU.
  • Couriersud updated the SDL2.0 port: Fix relative mouse motion. This makes Missile Attack playable again with the Logitech marble trackball.
  • Couriersud fixed PNP model and added test netlist (bjt.c).
  • Couriersud made Pong have complete emulation of discrete logic for runQ and SRST signals. Rewrote switch2 device to be based on resistances as well.
  • Felipe Sanches provided AVR8 cpu changes.
    • Timers wip.
    • Add TIMSK* reads - Refactor timer_tick calls.
    • Remove all redundant register init statements. We simply set all 0x200 registers to zero.
    • Debugging timers.
    • Better syntax for disassembly of RJMP destination address.
    • Use register names in disasm of CBI, SBI, SBIC, SBIS instructions.
    • Use register bit names in disasm of instructions SBI, SBIS, SBIC, CBI.
    • WIP on avr8 EEPROM read/write support.
  • Couriersud updated the Netlist code:
    • fixed 7474 save state.
    • remove a printf.
    • simplified netlist_list_t.
    • increased reschedule count to 15 - diodes are dog-slow.
    • made reschedule count a solver parameter.
    • simplified solver code.
    • solver time now also resets.
  • Michael Zapf updated the fd_fdc device: Fix the FM sync detection.
  • R. Belmont updated the n68681 device: modernized and killed config struct in favor of devcb2.
  • MooglyGuy provided a fix for pixel gaps between multi-screen games in HLSL mode.
  • smf merged pet/vic20/c64/plus4/c128 user ports, the pinout is slightly different on each one but there are cards that are compatible with each of the different machines. Removed c64 version of vic1011 and moved protovision 4 player adapter from bus/c64 to bus/vic20. Tested with http://code.google.com/p/commodore-multi-player/.
  • smf hooked up the 6551 to the plus 4 user port.
  • smf added user port pinout from CBMII manual.
  • smf fixed commodore quick load by passing in the address space instead of using machine().firstcpu.
  • smf added PET user port joystick adapter.
  • Guru updated segas32.c: Added alien3 and darkedge readmes.
  • Couriersud updated the Netlist code:
    • added missing parameter to analog input device.
    • parser now parses NET_MODEL.
    • fixed a bug in switching bjt implementation.
  • Michael Zapf prevented clock bit to be deleted after CRC in FM.
  • Dr. Venom and Couriersud used proper AY8910 mixing model for MSX. Volumes set to match MSX hardware.
  • Nigel Barnes provided BBC Micro keyboard updates/fixes:
    • added numeric keypad on Master series.
    • fixed CAPS LOCK and SHIFT LOCK.
    • removed dipswitches from Master series.
    • improved dipswitch descriptions.
  • f205v provided a Naomi/Triforce documentation update.
  • smf converted PIA6821 to DEVCB2, removed porta_r/portb_r/ca1_r/ca2_r/cb1_r/cb2_r functions as they only returned what you'd written to the chip, only a couple of those were ever used (by audio/exidy.c). Removed some ca*/cb* read callbacks that just returned what had already been pushed or always returned 0. As there are no longer any cb2 read callbacks that functionality has been removed. reduced the number of callers to set_a_input by calling porta_w & made the WRITE8_HANDLER call that as well, instead of the other way round and having to lookup an address space that is never used.
  • Couriersud updated the Netlist code:
    • Added Ebers-Moll BJT model. Currently only for NPN.
    • Fixed convergence issue in the solver.
    • Accuracy for Ebers-Moll must be better than 1e-5 to not generate nano-second spikes. Typical sound applications should be able to run with less since the spikes are not audible.
  • smf removed calls to mpu4_state *state = machine.driver_data<mpu4_state>(); by moving code into mpu4_state. Removed runtime lookup of devices that were already looked up in mpu4_state.
  • Alex Jackson updated docastle.c: hook up slave CPU IRQ according to schematics.
  • Couriersud added a "-listdevices" option to nltool to list all available devices. Simplified code.
  • smf fixed Z80DART parity selection.
  • smf updated pulsar.c: hooked up Z80DART correctly.
  • ElSemi provided preliminary patches for Donggul Donggul Haerong (still doesn't work, but at least boots now).
  • ElSemi corrected his previous patch for Donggul Donggul Haerong, game still doesn't work.
  • R. Belmont updated the i8251 core: as per the manual, disabling Tx mid-byte should wait for transmission to finish.
  • smf updated s2650.c: Replaced FLAG fake IO port with a DEVCB2 callback. Added write_sense method and use it for pipbug serial port, Hunchback (Galaxian Hardware) and replace calls to set_input_line(1 in lazercmd.c & meadows.c.
  • smf updated exp85.c: Added an RS232 port instead of hard coding the serial terminal.
  • Osso added preliminary sound to thunderlbl. Unsurprisingly seems to share the same hook-up as wiggie and superbon, the other thunderl hacks in the driver. Marked as IMPERFECT_SOUND cause the music keeps restarting after a few seconds after inserting a coin. Seems fine during gameplay, though.
  • smf fixed compiling with Visual Studio 2012.
  • Porchy added the correct, half-swapped dump of cpu_pg5.11 to spyhunt/spyhuntp.
  • couriersud implemented near-to-proper reset for all netlist devices. Reset now works for improved matrix solving.
  • Kevin Eshbach added 82s153's from Ropeman (Roc 'n Rope bootleg) and also corrected the rom names and locations. In addition, corrected some of the names of the one United States Donkey Kong Jr. set.
  • smf updated isbc.c: converted to use RS232 port instead of hard coded to using serial terminal.
  • Couriersud removed some dead code and ambiguous functions in the netlist code.
  • Couriersud introduced the concept of "logic families". Currently, standard devices default to TTL. Going forward, this enables the family type (e.g. LS, S, HCT, ...) to be a device parameter. Currently, no changes are introduced. This is architecture work.
  • Couriersud created a mame sound device for netlist. Fixed an issue causing wild oscillations. Currently, pong has sample code for using the sound device. Uncomment "TEST_SOUND" in pong.c to hear a constant sound from a 7400 multivibrator. Sound is still WIP, but the proof of concept has been done.
  • Osso added music and save states to bmcbowl.
  • Osso added music and save states to koftball.
  • Curt Coder updated the tms9927 core: Added VSYNC callback.
  • R. Belmont updated the SDL port: Temporarily restore compatibility with Qt versions below 4.7.
  • rtw, iq_132 and David Haywood added proper internal rom to 'svg' parent set, it resets on coin now, need to investigate.
  • Curt Coder updated the tms5501 core: Rewrote the emulation to use devcb2 and diserial.
  • Curt Coder updated flopimg: Added preliminary support for the 8-N-1 serial encoding scheme used on Compucolor II floppies.
  • Curt Coder updated diserial: Added framing error detection.
  • Couriersud updated the Netlist code:
    • Working Ebers Moll model. That's a significant step ahead.
    • Simple 2x2|RHS SPICE stamps now supported by two terminal devices. This was implicitly contained in the design, but set_mat now shows how a two-terminal device fits into a SPICE approach.
    • Introduced direct solvers for net groups with 1 or 2 nets.
    • Introduced specialized solvers for N=1,2,3,4,5 by using templates.
    • Nice performance increase for BJTs
  • ElSemi fixed bad graphics in donghaer.
  • R. Belmont updated the n68681 core: Implement OP3 toggle on timer expire and input delta interrupts.
  • smf updated h2680.c: moved contents of .inc into .c to removed #define pollution when including h6280.h.
  • smf updated z80.c: converted c++.
  • smf updated ata/ide: Added support for 8 bit data transfers using the set features command, instead of using mem_mask as ATA doesn't work that way.
  • smf replaced some calls to machine().firstcpu with m_maincpu.
  • smf replaced some calls to machine().firstcpu->pcbase() with machine().describe_context().
  • smf updated bankdev.c: don't change the current bank on reset, because another device might have already changed the bank when it was reset.
  • Roberto Fresca and ANY added unknown encrypted Royal Card. This game is running on Dino 4 encrypted hardware, with a CPU+PLCC daughterboard. Decrypted program address + data, but code still jumps into $48xx range where there's no valid code. Decoded and partially decrypted the graphics set.
  • R. Belmont updated the-n68681 device: make loopback operate at the current baud rate instead of instantaneously. Fixes dectalk DUART self-test.
  • The Dumping Union updated tourvis.c: Correct 1 cart name and add newly dumped U4-43 BIOS.
  • [[smf] converted MSM58321 to DEVCB2, uses level logic rather than edge detection for strobes (as per datasheet), added nvram interface as there are some configuration bits to save, added support for 12 and 24 hour. It defaults to 12 hour, but you can configure it in the driver to default to 24H. You can configure what year 0 is in the driver, which is used when setting the date at startup.
  • Angelo Salese added SCREEN_RAW_PARAMS to Express Raider, fixed screen size to 256x240.
  • R. Belmont updated the m6502 core: expose SYNC pin through devcb2 for more flexibility.
  • Alex Jackson updated tugboat.c: correct AY chip type and clock, some cleanups.
  • O. Galibert and R. Belmont updated AICA: EFREG is mapped every other word, not every word. Fixes memory trashing in all Naomi/DC/AW games.
  • smf changed name from “VIC20 user port” to "PET user port" as that is where it originated and reformatted the source file.
  • Alex Jackson updated qix.c: Let's not regenerate the entire palette every time we do a partial update.
  • R. Belmont updated the mos6551 device: support Rockwell 6551s, which show different register contents from MOS/CSG parts on reset.
  • Alex Jackson: updated nemesis.c:
    • Hooked up RC filters to AY8910s.
    • Fixed konamigt layout aspect ratio.
    • Some corrections to address maps and inputs.
  • Alex Jackson updated popeye.c: added RC filter (MT 3726), cleanups.
  • Alex Jackson updated the flipscreen routines: tilemap flipping is now calculated relative to the center of the visible area rather than to the total screen size, and the generic flip screen functions no longer modify the visible area. These changes ensure that in most cases flipping should Just Work for drivers that use MCFG_RAW_PARAMs, games that have a programmable CRTC, and games that have raster effects, and should fix many longstanding flip/cocktail-related regressions.
  • Alex Jackson added Bingo (1983). PCB seems bootleg, but the game looks legit. Worked from the scratch a whole set of inputs and button-lamps support for this game. Changed the poker41 description to Four in One Poker (as seen in the official brochure). Added game and technical notes.
  • Roberto Fresca provided improvements to Unknown Royal Card on Dino4 hardware:
    • Fully decrypted the graphics set.
    • Added technical notes.
  • Alex Jackson updated toaplan1.c: remove sound reset hack, unify gfx decoding, various cleanups.
  • Alex Jackson updated twincobr.c: fix flipscreen after core changes, cleanups.
  • Fabio Priuli, Tafoid and gregf added skeleton drivers for some discrete games using ROMs, and added some documentation.
  • smf provided centronics WIP using write lines and DEVCB2. Added an output latch and input buffer device to allow configuration in MCFG. Renamed centronics device "printer" to "image". FM-7 parallel port joystick works again. Added support for using PC LPT control lines as inputs (not tested). c64 geocable now just passes individual lines through, changed the strobe line to what is documented online (not tested). Converted MSX & exidy sorcerer parallel port DAC to use covox device instead of using a configuration switch (not tested). Sorcerer parallel port is more like the commodore user port, so should be converted to it's own slot where one option is a centronics card.
  • Roberto Fresca updated Magic Card II: Override the wrong visible area and centered the game through a dedicated CRTC config interface.
  • smf converted SN76496 ready to DEVCB2.
  • Alex Jackson updated dkong.c, docastle.c, galaxian.c, mario.c, zaxxon.c: fix flipscreen after core changes.
  • Alex Jackson updated bagman.c, bublbobl.c, chance32.c, galaga.c, mappy.c, pacman.c: fix flipscreen after core changes. Also, try (again) to improve sprite-bullet alignment in bosco.
  • Fabio Priuli added generic barcode reader emulation: the code accepts sequences of digits in UPC-A, EAN-13 and EAN-8 format, stores them in both byte format and in pixel format; it is up to the driver to implement the correct transfer protocol..
  • Fabio Priuli added UI menu to enter barcodes via keyboard. It only gets activated if the running machine has a barcode device.
  • Curt Coder updated diimage: Added "read_only" feature to the software list to denote write protected images.
  • smf created src\emu\bus\rs232 & src\emu\bus\midi directories and separated rs232 and midi devices, changed h89 to use an rs232 port to communicate with the serial terminal to instead of connecting it directly.
  • Miodrag Milanovic added ability to add optional or required device/ioport/memory_region/... and similar device finders to any device, and also created ability to set tag inside static configuration of device so you can reference it in driver machine configuration
  • smf converted i8251 to DEVCB2.
  • Roberto Fresca provided Funworld driver updates:
    • Added Luna Park (set 1, dual program). Running in modified CMC hardware, with video RAM 4000-4FFF mirrored in 6000-6FFF and color RAM 5000-5FFF mirrored in 7000-7FFF. This game has the highest address line of the program tied to DIP switch #1, so you can select between 2 different programs. Both programs write to videoram either to each video RAM ranges.
    • Added proper program ROM banking and connected to DIP switch #1.
    • Added Luna Park (set 2). This one writes to normal CMC video RAM.
    • Cleaned-up the machine drivers.
    • Derived clocks via #define.
    • Added technical notes.
  • Roberto Fresca added default NVRAM to Crystal Colours (CMC hardware), allowing to boot with clean meters/settings.
  • R. Belmont added preliminary support for National Semiconductor MM58167 real-time clock/calendar.
  • Roberto Fresca provided Jubilee Double-Up Poker (TMS9980) updates:
    • Corrected the crystal value and derivate clocks via #DEFINE.
    • Improved memory map.
    • Hooked the CRT controller, but the init sequence seems incomplete.
    • Created the accurate graphics banks.
    • Found and mapped the video RAM.
    • Hooked the ATTR RAM.
    • Assigned the correct graphics banks to the proper drawn tiles.
    • Find and mapped an input port.
    • Started a preliminary workaround to demux the input port.
    • Added technical notes.
  • MetalliC and Guru provided Naomi updates:
    • MetalliC added all known IC locations from sets missing them.
    • MetalliC corrected some bad Sega chip numbers and IC locations.
    • Guru used real chip dump for mvsc2.
    • MetalliC fixed ROM loading for Animal Basket.
  • Alex Jackson updated gottlieb.c, kyugo.c, madalien.c, rallyx.c, taito_b.c, zodiack.c: fix flipscreen after core changes.
  • Roberto Fresca provided Jubilee Double-Up Poker (TMS9980) updates:
    • Demuxed the input system.
    • Hooked an cleaned all inputs, except the coin in (missing).
    • Added NVRAM support.
    • Added technical notes.
  • Roberto Fresca updated Jubilee Double-Up Poker: Fixed the NVRAM size. Video and working RAM are both halves of the same device (TC5517AP-2, tied to a battery). Also added technical notes.
  • Aaron Giles converted palette_t and palette_client to classes. General palette.c cleanup.
  • Roberto Fresca provided more Jubilee Poker updates.
    • Hooked CRTC properly.
    • Adjusted the screen size and visible area according to CRTC values.
    • Adjusted the screen pos 8 pixels, to get a bit centered.
    • Added technical notes.
  • Alex Jackson updated galivan.c: add buffered spriteram to fix MT 05465; cleanups.
  • Roberto Fresca provided Jubilee Double-Up Poker updates.
    • Added a default clean NVRAM.
    • Found and implemented the credits input. The game is now working!. Still no sound.
  • Alex Jackson fixed display of device tags in internal profiler.
  • Couriersud abstracted netlist sources. This is a first step to support libraries (e.g. for opamps).
  • smf rewrote 6850 based on datasheet using external CLOCK & removed MIDI clock hacks. Standardised COM8116 DEVCB2 callbacks. GUS gf1_device device derives from acia6850_device to gain access to the tx & rx irq state, rather than exposing it with a public method.
  • Alex Jackson made timers once again execute at the end of each timeslice instead of at the start, as they did prior to 0.141u2. Fixes MT 4308.
  • smf fixed rendering issue in psyaria and raycris attract.
  • Roberto Fresca provided Gold Fruit improvements: Created a dedicated machine driver and decode properly the first graphics bank, since graphics are encoded/packed in a different way. This game has the main rate fixed to 40%, and coins A+B fixed with 100 credits by pulse (maybe used as remote credits inputs).
  • Alex Jackson updated bking.c, toypop.c: fix flipscreen after core changes.
  • R. Belmont updated the-cat driver: Removed hacks required by the old 68681 implementation; keyboard works again.
  • Roberto Fresca updated Mundial/Mondial (Italian/French): Implemented the program banking properly. Now you can choose the program through a DIP switch.
  • smf removed local lists of midi devices as they are currently all the same.
  • smf converted PIT8253 to DEVCB2.
  • R. Belmont updated the-n68681 device: fix a few uninitalized variables, beefed up optional logging.
  • smf removed diserial connect(). Converted thomson, mc1502 & wangpc to use DEVCB2 instead.
  • smf updated coco.c: uses rs232 port instead of bitbanger.
  • Couriersud fixed a netlist crash on clang due to ATTR_NORETURN. Also fixed some debug statements.
  • Alex Jackson updated baraduke.c, pacland.c: fix flipscreen after core changes, add SCREEN_RAW_PARAMs.
  • Alex Jackson updated namcos1.c, namcos86.c: fix flipscreen after core changes, add SCREEN_RAW_PARAMs.
  • Roberto Fresca and ANY updated the Witch driver: Changed both CPU clocks to 3 MHz, Both YM2203 clocks to 3 MHz, and confirmed the ES8712 clock (coming from pin 14 of M5205) in 8 MHz. All measured and traced from the PCB. Implemented all clocks through #define.
  • pza added free version of uni bios v3.1.
  • Alex Jackson and hap converted several drivers that have multiple different video chips bankswitched into the same address space, or have RAM bankswitched with ROM, to use the address map bank device (aka bankdev).
  • Couriersud changed popeye to use palette computed from schematics. Also implemented interlaced field support. This is actually read by the game.
  • Couriersud made Popeye have netlist filtering and amplification.
  • Couriersud implemented CD4066 device - Quad Bilateral Switch.
  • Robert Walsh fixed compiling on unusual OS X configurations.
  • Roberto Fresca provided Cherry Wheel improvements:
    • Created new memory map due to hardware differences.
    • Added default NVRAM.
    • Partial MCU simulation. Without it, only cherries appear and the player always wins.
    • Added proper button-lamps support.
    • Added technical notes.
  • Roberto Fresca updated Super Nove (Playmark): Created proper machine driver and improve the second graphics bank decryption/decode.
  • Roberto Fresca added inputs from the scratch for Super Star '97. Also improved inputs from other games of the driver. Added technical notes.
  • Guru redumped Salary Man Kintaro.
  • MetalliC reatly improved M4 cart handling (added needed flash commands, fixed encryption on/off logic).
  • MetalliC fixed f355 EPR was overdumped (mirrored 2 times).
  • MetalliC completed dump of vtenis2c, ROM test passes now.
  • MetalliC fixed M1/Actel and Namco carts IC layouts, ROM test passes now.
  • MetalliC changed Namco 2f-2b IC names to <cartlabel>.2d,2c etc, without fl0-fl4, because its the second IC label on the PCB (like "IC17S ROM1" on Sega carts).
  • MetalliC changed IC labels according to cart PCBs.
  • Roberto Fresca updated Super Star '97: Added more translations and technical info. Created a new graphics bank with different palette for the only girl graphics.
  • Couriersud fixed pong (rom based). Minor changes no netlist code.
  • Roberto Fresca fixed the colors of cb3d rearranging the split values stored in 4-bit bipolar PROMs and adding the missing one. Promoted to working state.
  • Curt Coder added device_output_interface and macros MCFG_OUTPUT_INDEX/MCFG_OUTPUT_NAME which can be used to specify which output in the layout a device should use.
  • Tafoid updated CPS1.c: Willow, Strider and Ghouls and Ghosts have some changed factory setting defaults as stated from manual. Also noted differences in bonus live coverage where applicable.
  • R. Belmont updated the omti8621 device: Converted to proper ISA card.
  • Curt Coder updated nbmj8688.c: Refactored to use HD61830 device.
  • Osso hooked up sound in bnstars.c by borrowing code from ms32.c and adding the second YMF271.
  • Roberto Fresca and ANY updated Cherry Bonus III (set 4, encrypted bootleg). Fixed both graphics banks decryption/decode.
  • Jon Banks changed Battle Cross joystick type to be 8-way.
  • Porchy corrected spyhunt labels / positions.
  • Alex Jackson updated drawgfx.c: Eliminate the need for a dummy 1:1 lookup table when drawing to ind16 bitmaps.
  • Roberto Fresca provided Win Cherry improvements:
    • Decrypted/decoded all graphics banks.
    • Preliminary memory map.
  • Alex Jackson updated the UI graphics viewer so that it can now display multiple palettes and multiple gfx decoders in games that have .
  • Roberto Fresca added Royal Card (French). This set is original, but running in a bootleg board. Added a default NVRAM to get the game working. Also added technical notes.
  • Lord Nightmare fixed the duart ip pins so they don't accidentally clear each other's state on device_write_line; this fixes the Canon Cat printing in MESS.
  • Barry Rodewald added basic implementation of the NSC810 RAM-I/O-Timer device, and plugged it into the Husky Hunter 2 driver.
  • Curt Coder removed unselectable slot options (SLOT_INTERFACE_INTERNAL) from the listxml output.
  • O. Galibert added an osd_truncate call to truncate files.
  • Aaron Giles moved core template container classes up from emutempl.h to coretmpl.h:
    • these classes now no longer take a resource_pool; everything is managed globally -- this means that objects added to lists must be allocated with global_alloc.
    • added new auto_pointer<> template which wraps a pointer and auto-frees it upon destruction; it also defaults to NULL so it doesn't need to be explicitly initialized.
    • moved tagged_list template to tagmap.h.
  • Aaron Giles redid the low-level memory tracking system:
    • moved low-level tracking out of emu\emualloc into lib\util\corealloc so it can be shared among all components and used by core libraries.
    • global_alloc and friends no longer use a resource pool to track allocations; turns out this was a wholly redundant system that wasted a lot of memory.
    • removed global_resource_pool entirely.
    • added global_free_array to delete arrays allocated with global_alloc_array.
    • added tracking of object versus array allocation; we will now error if you use global_free on an array, or global_free_array on an object.
  • Aaron Giles added new utility helper const_string_pool which can be used to efficiently accumulate strings that are not intended to be modified. Used by updated makelist and software list code.
  • Aaron Giles updated png2bdc and makelist tools to not leak memory and use more modern techniques (no more MAX_DRIVERS in makelist, for example).
  • Aaron Giles deprecated auto_strdup and removed all uses by way of caller-managed astrings and the software list rewrite.
  • Aaron Giles rewrote software list management:
    • removed the notion of a software_list that is separate from a software_list_device; they are one and the same now.
    • moved several functions into device_image_interface since they really didn't belong in the core software list class.
    • lots of simplification as a result of the above changes.
  • Roberto Fresca added button-lamps support to all Cherry Bonus III sets. Also created almost realistic control panel internal layout. Added technical notes about Cherry Bonus III memory map.
  • Roberto Fresca provided Double-Up Poker (Jubilee) improvements: Added partial lamps support (some are missing), and a workaround for discrete sounds trigger offsets. Also a zillion of technical notes about findings.
  • Alex Jackson updated pgm.c: simplify tile gfx ROM loading/decoding.
  • Carl updated the i8089 device: added channel priorities.
  • R. Belmont update the m6502 core: fixed some unofficial opcodes.
  • Roberto Fresca fixed MT05065. Double Crown PLDs converted to binary.
  • Roberto Fresca added lamps support to Golden Star (IGS) sets. Also fixed the inputs accordingly.
  • Alex Jackson removed pseudo-palettes from video/generic.c. All drivers that were using them now have an actual palette.
  • Brian Troha updated shanghai.c: Add PCB layout and ROM locations for Shanghai sets.
  • Roberto Fresca provided a new driver for American Music Poker (Amusco) based on a 8086 CPU + CRTC 6845 + PSG SN76489.
  • Alex Jackson added palette to k053250 device, fixing xexex crash. Also modernized its coding conventions (dynamic_arrays, device_video_interface to attach screen, etc.).
  • Sandro Ronco provided HD63484 updates:
    • converted to use a 16-bits address map.
    • implemented RPR, MOD, SCLR, SCPY, LINE, PLG, PLL, CRCL, ARC, FRCT, PAINT, DOT, PTN, GCPY commands.
    • added pattern RAM emulation.
  • Curt Coder updated wd_fdc: Refactored to use devcb2 callbacks.
  • smf rewrote 6551 emulation. Changed clock to be the o2 clock instead of the baud rate xtal, supports external clocking, generates transmit interrupts when idle, added echo mode, dcd/dsr/cts input handling, parity & stop bit checking. Tested and fixed hookup to commodore lcd & plus 4.
  • Kevin Eshbach updated offtwall.c: Corrected the rom names and locations of the upright version of Atari's Off the Wall and also added a dump of one of the GAL's (a GAL16V8A-25LP) on the boardset which was the only one without the security fuse blown.
  • Curt Coder updated the-upd765 device: Refactored to use devcb2 callbacks.
  • Alex Jackson made gfx_element::decode() private; fixed drivers that were calling it directly.
  • Ben76 added proper IC locations to tmnt2 sets.
  • Brian Troha added Korean? tile rom to newly dumped Shanghai3 set (was present on the board, but unused in our sets? probably for use with undumped Korean program roms and leftover from conversion).
  • external provided a h63484.c compile fix.
  • external added compile time check for 64-bit intel compiler to delegate.h (to prevent assert(sizeof(mfp) <= sizeof(m_rawdata)); ).
  • J. Wallace made an attempt to fix the banking of MPU4 games, this isn't perfect, but most non banked games will now run.
  • R. Belmont updated the SDL port: Removed "totalColors" hack, now only RGB32 is sent to the GPU.
  • Brian Troha updated littlerb.c: Fill in missing dipswitch settings and add dipswitch locations to Little Robin.
  • R. Belmont updated the SDL port: Next stage cleanup, aligned texture conversion with current Windows/D3D code, and fixed overzealous GL texture caching.
  • Enik Land updated 315_5124.c: improved X-Scroll register timing.
  • Couriersud updated the netlist code: Nice performance increase by removing logic terminals from net if they are inactive. Introduced a linked-list class to abstract linked-lists. Fixed deactivating devices. You have to enable this because it is not guaranteed to be timing-exact.
  • MooglyGuy provided N64 RSP changes:
    • Added SIMUL_SIMD flag for easy finding of bugs in SIMD opcodes.
    • Fixed SIMD versions of SSV, SLV, SDV, STV, VSUB, VADDC, VSUBC, and VGE.
    • Removed SIMD optimizations from VMACF, VMADL, VMADN, as they were provided by the CEN64 author but do not appear to have the same results as MESS's scalar implementations, and so are not trustworthy.
  • Fabio Priuli updated MegaPlay and MegaTech to use modern SMS VDP.
  • Kevin Eshbach provided fixes to correct some of the regression test data used by the jedutil test.
  • O. Galibert updated the h8 core: Sort out UE polarity.
  • O. Galibert updated the h8 core: Fix enable handling in timers.
  • O. Galibert updated the h8 core: Prettify registers/flags in debugger.
  • O. Galibert updated the floppy device: splice-related fixes.
  • Roberto Fresca provided improvements to 4enlinea driver. Hooked preliminary HCGA controller in CGA mode (we need proper UM487F device emulation). Added documentation and findings after some analysis.
  • Alex Jackson made the gfx_elements have a xor mask that is applied to each source bit offset when decoding. This can be used to deal with endianness when decoding gfx from RAM or from program ROMs, or to reverse the bit order sense when this is useful (e.g. pgm.c).
  • Curt Coder updated the mc6845 device: Added display enable and horizontal/vertical back porch widths to the update function. Updated some MESS drivers to make use of this.
  • Roberto Fresca updated the 4enlinea driver: Adjusted the initial screen parameters according to the HCGA controller programmed registers and improved the way the graphics are drawn. Now the text is readable.
  • Roberto Fresca updated the 4enlinea driver: Hooked a status handler for the HCGA controller. (for now, simulating the state). Improved the memory map fixing the RAM amount and offset, and added the correct offset for the HCGA status. Also hooked 2 debug handlers on ports e000-e001 that spit some random graphics after 30 seconds of the game execution (clue to figure out).
  • MetalliC provided Naomi updates:
    • Redumped 17 GD-ROMs from .gdi source to CHD v5.
    • Added several missing protection keys.
    • Added clone "18 Wheeler (Upright)".
    • Added set "Club Kart: European Session (2003)" and unprotected clone.
    • Added clone "Club Kart: European Session [Rev. D]".
  • J.Wallace moved MPU4 Test Program 4 to the MOD4 driver, still needs some work on the timing though. Fixed Gamball reel positioning, this will need more work to standardise.
  • O. Galibert updated the namco23 driver: Spring cleaning, including:
    • remove a bunch of s23 prefixes/suffixes useless since the OOification.
    • rename p3d to c435.
    • unify c435 dma and pio.
    • identify the generic set state command.
    • implement the interrupt set state subcommand.
    • fix the endianness of the controls port (controls still don't work though).
    • various whatevers.
  • MetalliC and Titus updated the tiamc1 driver:
  • * MetalliC corrected and enabled background scroll.
  • Titus fixed bad graphics rom in "Snezhnaja Koroleva".
  • Curt Coder updated the cosmic core: Added write line members for the input lines.
  • O. Galibert updated namcos23: Fix the irq storm that killed Downhill Bikers.
  • Angelo Salese untangled Little Robin sound HW from video timings.
  • Couriersud fixed a long standing bug in tempest by specifying quantum perfect emulation. All save states should be removed since they may contain a corrupted game state.
  • O. Galibert updated namcos23: Fix 3D computations in timecrs2.
  • O. Galibert updated namcos23: Better understanding of the command format, downhill and 500gp now show something (completely wrong).
  • O. Galibert updated namcos23: Enhance matrix-vector mul.
  • J. Wallace added support for horizontal 'belt' reels which may be needed for future AWP titles. To invoke, add an attribute "beltreel" to the reel element in the layout, and set it to 1.
  • Roberto Fresca updated Double Crown: Added button-lamps support, coin in and coin out counters, MAX693 watchdog reset, minor input fixes, and added technical notes.
  • Roberto Fresca updated Double Crown: Redesigned the button-lamps layout and added support for CANCEL button.
  • David Haywood added brightness control to berlwall RGB backgrounds.
  • David Haywood converted Little Robin to use TMS34010 instead of custom blitter code and share some parts of the implementation with Mega Phoenix.
  • David Haywood provided TMS34010 core improvements:
    • improved 8-bit write handling needed by Mega Phoenix and Little Robin to display all their graphics
    • fixed top of screen clipping issue that was causing visible glitches with objects dropping in from the top in the same games.
  • David Haywood updated a number of drivers to use multiple palettes.
  • ANY added deluxe cabinet motor roms to various Sega sets.
  • ANY added dumped EEPROMs to Jockey Club II sets and attempted to hook up the device allowing initial ID check to pass.
  • Roberto Fresca updated Super Star '97: Marked all graphics ROMs as bad dump. (they are mask ROMs and were dumped as 27512, missing half of the graphics).
  • hap added Zoom ZSG2 sound, used in taitogn and fx1b. DSP isn't hooked up yet, so it will sound a bit tinny.
  • Roberto Fresca updated goldnpkr.c driver: Inverted and normalize the button-lamps states for all games.
  • Alex Jackson updated various Atari vector drivers: derive (fake) refresh rate from CPU IRQ frequency to reduce judder.
  • Alex Jackson updated toaplan1.c: correct SCREEN_RAW_PARAMS for all games based on CRTC registers.
  • MetalliC updated naomi.c: redumped cfield CHD from GDI source, documented PIC used by ngdup23e set.


Game Support

New games added or promoted from NOT_WORKING status


New clones added


New games marked as GAME_NOT_WORKING