MESS Source Changes
===================
Edited by AntoPISA
Info from Official MESS whatsnew.txt

Right from 0.001 to 0.163

Latest editing: June 25, 2015


0.163:
======
- (mips3): Make fast RAM handling faster by caching certain values.
- Allow compiling with shared libraries Put SHLIB=1 in the main makefile, or on the command line [O. Galibert].
- Fix Game Blaster emulation, now working [balrog].
- Fix game Blaster compatibility in sb1.0 [balrog].
- cheat: Improved cheat support for games in softlist. XML cheats for home systems should now be stored in a subfolder (or a compressed archive), named after the software list, inside the cheatpath. This allows for loading cheats for consoles / home computers without interfering with arcade cheats when games have identical shortnames. For instance, loading Galaga in NES allows now to use its specific cheats even if a galaga.xml is available in the arcade cheat.7z (previously you'd get an error due to the arcade cheat referring to a cpu not present in the NES) [Pugsy, Fabio Priuli].
- Solved the great Sherwood Forest mystery. DOS 3.3 inserts a short (3-4 cycles, roughly equivalent to one bit) delay between writing the header and the data bytes in the sector data block [Peter Ferrie, Olivier Galibert, Richter Belmont].
- Fixed superbug explosion overlay [SoltanGris42, Couriersud].
- Changed the way NETLIST_START(NAME) is located and called. This is done now solely by using a netlist_sources_t class. Netlist users just register sources like memregions, hardcoded strings, compiled netlists. Going forward this enables to eventually put macro model librariers into roms. The improvement comes with a price. Compiled netlists to be included must now be registered using LOCAL_SOURCE [Couriersud].
- Fixed .lst files whitespace problem [LnmVolbo].
- (mos6526): Fixed port A/B read [geecab].
- Gameshark is a clone of Action Replay [Andrea Petrucci].
- Fixed a number of bugs: * Proxy savestates * Solver savestates * 7490 both counts firing at the same time bug fix. and changed timed list to be resizable [Couriersud].
- floppy: Ensure that get_next_transition always provide the next transition [O. Galibert].
- Added OPT_FLAGS back [Belegdol].
- Added the ability to use system flac, jpeg, lua, sqlite3, portmidi and zlib based on wallyweek's work This brings the system lib capabilities back to where they were prior to build system rewrite [Julian Sikorski].
- Added new SDL_INI_PATH flag [Cesare Falco].
-From 45% to 60% to 99%. That's the improvement achieved for a 89x89 audio matrix mostly solved by elimination. Cleaned up some code as well [Couriersud].
- Added a GMRES solver to netlist. The generalized minimal residual method ist certainly more modern than Gaussian elimination and Gauss-Seidel. However, more the current maximum matrix (KidNiki, 89x89) a combination of Gauss-Seidel to solve for maximum one step to catch quasi-stable conditions and fall-back to optimized Gaussian elimination (for sparse matrix) outperforms GMRES by up to 100% [Couriersud].
- Netlist code now uses "namespace netlist". At the same time, moved all devices int netlist::devices namespace [Couriersud].
- GLSL: Unlimit shader file size [R. Belmont].
- (tms5110.c) and (tms5220.c): Fix missing cast for chirp/excitation values, fix a potential off-by-one for tms5110.c as well [Lord Nightmare].
- (info.c): Worked around missing sub-devices in -lx output [Fabio Priuli].
- Missing GameCube edition roms added [Andrea Petrucci].
- Completely integrated the GMRES solver into netlist solver templatesand recoded it from scratch. GMRES now runs at 122% (kidniki), that's a real proement from 60% before. AT the same time, the code should be easier to read and closer to the GMRES algorithm. Ultimately, kidniki will not use this solver but instead use some frontiers to keep it playable. But going forward, for larger matrices this solver is an opton [Couriersud].
- Properly emulate the double PCB stack system32 games with shared RAM bridge board (Air Rescue and F1 Exhaust Note). Previously these relied on a hack to make the code believe the 2nd stack was present but this caused issues, now they're correctly emulated as dual screen games without any hack [David Haywood].
- Support -uimodekey switch on Windows [Vas Crabb].
- Update all drivers to use the new wd floppy controller implementation and remove the legacy one [Dirk Best].
- (i8089): Add wait for DRQ support [Dirk Best].
- (wd_fdc): Fixes for ZX-Spectrum and clones Beta128 disk interface [MetalliC].
- (xt_hdc): Improved PIO use [Barry Rodewald].

0.162:
======
- Optimized some netlist devices [Couriersud].
- Update 315_5124.c palette in TMS99x8 modes [nitrofurano].
- Drop NO_SDL_GLEXT define on OSX [mbcoguno].
- Added a lot of findings and docs to the WMS driver. These are video slots identified as WMS 360 / 550. Also added the proper crystals, correct CPU, frequency, preliminary memory map, 2 new sets, and technical info [Roberto Fresca].
- Added Seiko Epson E0C6200 cpu emulation [hap].
- Started on Mitsubishi MELPS 4 cpu emulation [hap].
- WMS driver... Hooked the Analog Devices ADSP-2105 CPU (still need proper memory maps). Added technical notes [Roberto Fresca].
- Netlist: * Improved 9312 device ==> 20% speed increase * Remove netlist_state_t ==> no added value * Removed dead code in solver * Various minor modifications* Performance monitoring now also displays stats for subdevices * Fixed save-state issues * Fixed save state in 9312 * Added EXTCLOCK which can generate arbitrary timing patterns * Use two EXTCLOCKs to replace timing circuit (9316) in breakout. This gives a speed increase from 60% to 75% [Couriersud].
- MAME now represents full build, for building MESS drivers only use make SUBTARGET=mess, for building only Arcades drivers only use: make SUBTARGET=arcade [Miodrag Milanovic].
- Downsizing ... Removed netlist_ttl_input_t and netlist_ttl_output_t. The logic family is governed by the chip and defaults to TTL. However
 individual devices may change the logic family of their inputs and outputs as well. Implementing special output/input characteristics of  "S", "LS", "HC", ... you name it, devices is now pretty easy. Theoretically e.g. a "LS_HighPrecision" proxy could be used to model the output down to the transistor level [Couriersud].
- HLSL shader improvements: * Changed shadow mask implementation, shadow count XY now represent the number of pixel the shadow UV sized tiles will take on the screen * Implemented rotation of the shadow mask texture depending on the default landscape or portrait view of the screen * Removed prescale and pixel border of the shadow mask texture * Added option to change the shadow UV offset, to reduce the color bleeding of the shadow mask * Adjusted presets to work with the changed mask implementation.
  * Reduced defocus offset * Improved downsampling for better blurring * Improved alignment of bloom layers (raster and vector).
  * Applied bloom effect to the render output of screenshot and AVI recording * Changed curvature effect to fit screen size * Changed scanlines to be not rendered into bloom layers * Changed shadow mask to be not rendered into bloom layers * Changed color floor to not light the bloom layers * Changed shadow mask to not dark the color floor * Added image vignetting simulation and option * Added round screen corner simulation and option * Added screen light reflection simulation and option * Made usage of unused brightness offset (additive) * Removed unused pincushion option * Removed duplicate shadow count Y options * Removed artwork/adapture.png * Added artwork/adapture-grill.png * Added artwork/shadow-mask.png * Added artwork/slot-mask.png * Added hlsl/simple.fx * Removed unused shaders::blit() function * Added shaders::screen_pass() function, which handles the (raster-)rendering on screen, into screenshot and AVI recording * Added effect: set_bool() function * Fixed usage of OrientationSwapXY shader parameter  * Added RotationSwapXY shader parameters to consider the user defined screen rotation * Added missing RotationSwapXY shader paramter * Fixed curvature zoom to fit the screen size in any aspect ratio * Fixed black border on the right and bottom side of the screen, caused by the previously added rounded corners [Jezze].
- Update palette in 315_5124.c [nitrofurano].
- Netlist: * Fixed soft reset due to wild BJT_SW oscillations * Downsized nld_signal.h to one template * Some minor changes improving performance by some notches * Always compile nl_asserts to avoid bit rot * Adjusted monitor gain for breakout [Couriersud].
- Added netlist-level parameter NETLIST.USE_DEACTIVATE. Device deactivation optimisations can now be enabled within the netlist provided the circuit can deal with them [Couriersud].
- Some netlist bugfixes: * Savestate works * Truthtable device deactivation fixed * Truthtable ignore mask is now determined by a better approach identifying more ignore possibilities [Couriersud].
- savquest: WIP * Hooked up Voodoo 2 device * Switched to DS12885 device for proper CMOS size * Moved Voodoo register base to proper place * Implemented Voodoo-specific PCI registers to pass Glide validation * Increased frame-buffer size to enable 640x480 resolution * Hooked up ISA bus and SoundBlaster 16 device * Extended HASP emulation to return product information* Documented HASP behaviour [Peter Ferrie].
- TLCS-90 CPU: Fixed TRUN bit masking (timers start/stop) [Rainer Keuchel].
- More progress on SPICE to netlist conversion. nltool can now convert simple SPICE netlists e.g. from LTSpice to netlist format [Couriersud].
- Rewrote the MOS6532 RIOT [Curt Coder].
- AVR8 CPU: Fix I/O register mapping and improve logging [Felipe Sanches].
- Bump version on *nix man pages [Cesare Falco].

0.161:
======
- Completely hooked up 6845 in cardline driver. Documented asic addresses [Couriersud].
- Implemented writing to Commodore d64/d67/d71/d80/d82 sector images [Curt Coder].
- Added sector image format for the Commodore 8280 8" floppy drive [Curt Coder].
- (MT05721): Apply Enik Land's refresh rate workaround so that we pass FluBBa's SMS VDP tests [Justin Kerk].
- (atlantis): Added PCI9050 device skeleton [R. Belmont].
- (upd1771): Replace waveforms with waveforms extracted from upd1771c-017 internal rom [Lord Nightmare, plgdavid].
- (c4040): Added own sector dump disk format since it's different from what the 1541 uses [Curt Coder].
- (c8050): Added 901884-01 ROM [Martin Hoffmann-Vetter].
- (fsd2): Added REX-DOS [Julian Perry].

0.160:
======
- (upd1771.c) Notes update, indicate what pins are inputs, outputs, or both; document the d/a power pin. document the mode pin functions and the test mode [kevtris].

0.159:
======
- Fixed missing file details [Oliver Stöneberg].
- (wozfdc) Reduce the flux inversion pulse duration to the minimum [Peter Ferrie, O. Galibert].

0.158:
======
- Added VTech Genius Junior Movie softlist [TeamEurope].
- Improve mouse tracking for pre-ADB Macs [Rob Braun].
- Fix dropped keystrokes on pre-ADB Macs [Rob Braun].
- ap2_dsk: Don't allocate 2Mb of *stack*, malloc() instead [Peter Ferrie].
- ui: When ESCing while creating a new floppy image, fall back to the correct menu [Fabio Priuli].
- floppy.c: Initialise error code instead of crashing when menu loads bad image [Peter Ferrie].
- Significant comment updates for the IAI Swyft based on board tracing [Lord Nightmare, Sandy Bumgarner].

0.157:
======
- Rewrote TMS1xxx MCU core and added support for a couple of classic Texas Instruments handheld calculators [hap, Sean Riddle].
- maria.c: Implemented "colorburst kill" bit of the MARIA CTRL register [Mike Saarna, Robert Tuccitto].
- Fixed writing to disk with the Commodore 2040/3040/4040 and 1541/1551/1570/1571 drives [Curt Coder].
- (fdc_pll): Added write_next_bit_prev_cell() that writes a bit at the position the previous bit was read from. This is needed for FDC's that read and write on the same clock cycle, e.g. the Commodore 8050 and Victor 9000 [Curt Coder].
- Update Victor 9000 keyboard diagram [Lord Nightmare].
- Fix VSM rom read through the tms51xx, and add tms6100 hookup to tispeak.c, fixing speech in speak and spell and speak and math. The drivers are usable but no display yet. Fixed speak and spell clock speed (it is 1/2 the clock input of the tms51xx chip) [Lord Nightmare].
- Add a TEA1002 color encoder device and use it for the Aquarius. It might make sense to make this a direct descendent of the palette_device instead. Color information based on TEA1002 datasheet [Dirk Best, nitrofurano, Bruce Abbott].

0.156:
======
- Included modern .dsk format among default supported formats [Riley110].
- Added info in many Eastern Europe computer softlists [Riley110].
- PC, AT: Hook up missing softlists to various drivers [Justin Kerk].
- i6300esb: Document more registers [O. Galibert].
- Improve Epson LX-810L and ActionPrinter 2000 up to a point where they actually work. Devices boot and enter main input loop, but input is not yet implemented. It is possible to run the printers' self test [Ramiro Polla].
- Made pla_device more generic.
- (pc9801_kbd): Fix locks, add missing keys [Octocontrabass].
- Added tms0970 device [hap].
- Backport MBC1COL detection from GoodGBx [Cowering].
- (num9rev): Add number 9 revolution 512x32 [Carl].
- (abc99): Identified unknown ROMs [robcfg].
- Add zero() to (s)vga_device: zeroes all private variables but vtbls. The vga.memory is resized to 0.
(d88_dsk): Support some incorrect images [O. Galibert].
- Use the same list of centronics devices everywhere (except the Amstrad CPC), the list has been renamed as they aren't all printers [smf].
- Correctly model the behavior of a real Coco for the Cassette input in regards to audio (buzzing sound) coming from the port [Richard Goedeken].
- (ap2_dsk): Edd support. Fix broken detection of dsk [O. Galibert].
- Assorted improvments to Russian-based computers: * besta: Fix doubling chars * ec1840: new BIOS ROM * ec1840: add older revision of BIOS * ec1841: change keyboard xtal freq, add speech synthesis swre * ec1841: new softlist item * ec184x: MDA clone * ec184x, iskr103x: use custom set of ISA cards * kb_ec1841: use correct clock frequency * isa_hdc: ec1841 compatibility * isa_hdc: implement WRITESBUFF command * isa_hdc: add ioport for DIPs, make ROM optional (makes this device work with ec1841) * isa_hdc: add DIPs, make ROM optional * ie15: use utf-8 in keyboard layout description * ie15: init palette, minor cleanup * iskr103x: CGA clone * poisk1: add newer revision of HDC BIOS [Shattered].

0.155:
======
- Improve Laser 128 series support; 128EX/2 now boots DOS 3.3 and ProDOS [Peter Ferrie, R. Belmont].
- Support ProDOS-order Pascal 1.3 images [R. Belmont].
- Support PET user port "CB2 Sound" device [R. Belmont].
- tapectrl.c: Fixed bug where systems with multiple cassette drives (e.g. PET) had no Tape Controls when no cassette was loaded in the first drive [Fabio Priuli].
- ui.c: added shortcut commands for Tape Start and Tape Stop, by default mapped to F2 and Shift+F2, respectively. This is not meant as a replacement for the internal Tape Control menu, but it shall make simpler the usage of game tapes in home computers. Notice that REC/RWD/FWD have still to be pressed from the internal UI and that if you mount multiple cassettes in a driver with multiple tape drives only the first one will be controllable with these shortcuts [Fabio Priuli].
- pc_vga: Correct access to attribute register when PAS bit is set, allows XFree86 to detect ISA VGA [Peter Ferrie].
- maria.c: Timeout rendering added [Mike Saarna]. Reorganized DMA penalties to support new rendering code [Mike Saarna, Robert Tuccitto].
- thomson: Improve accuracy of the colors [Antoine Mine].
- Added the following video card BIOSes: [rfka01, Barry Rodewald] s3_764: S3 9503-62 (not working) Elsa Winner 1000/T2D s3virge:  S3 ViRGE BIOS v1.00-10 mach64: ATi mach64V1 113-34404-104.
- Stop trashing DiskCopy 4.2 images that don't have tags [R. Belmont].
- sb16: Add Soundblaster 16 low level emulation [Carl, Malice, O. Galibert].
- Fixed issue with messtiny build (additional bioses are no longer separate sets) [m4st4].
- Added PC-9821AP2/U8W BIOS [caius].
- floppy.c: Fixed disks not being launched if loaded from softlist through File Manager [Fabio Priuli].
- 315_5124.c: Refactored sprite handling, fixes status bar on Tarzan for gaemgear. Removed m_collission_buffer member variable. Tweaked game
 gear timing to fix glitches in status bar of Chicago Syndicate for gamegear [Enik Land].
- maria.c: Verious update: Improved DMA accuracy * Last Line DMA value corrected to 6. GCC and Atari docs both show a difference between Other Line and Last Line as +6 at the lowest part of the range * Blank scanlines are drawn when DMA is off, like real hardware * If MARIA hits the DMA limit, the CPU doesn't run until the next scanline [Mike Saarna, Robert Tuccitto].

0.154:
======
- Added preliminary keyboard hook-up in AAKART device, adding bare-bones keyboard inputs to Acorn Archimedes [Angelo Salese].
- dec_lk201.c : KEYCODE_2 corrected. RIGHT CONTROL now triggers DO [Bavarese].
- Emulate ie15 keyboard & use RS232 port [shattered].
- (kb3600) More sensible multi-key handling, now actually behaves like H/W [R. Belmont].
- (amigafdc) Add writing [O. Galibert]
-  Core changes: * Save screen pixelclock * Call reset_partial_updates() in finish_screen_updates() instead of creating an extra timer for it. This prevents calling reset_partial_updates() after finishing the screen, causes issues when screens change their size to a size lower than the current screen * Optimization: Support calling vblank_begin() directly at the start of a frame instead of using a timer.
- (c8050) Added ROM signatures for 901483-04 [Paul Rickards, Mike Naberezny].
- osdcore: Allow "default" for -midiin and -midiout [R. Belmont].
- (vtvideo.c) Finally fix smooth scrolling (ED084 =1). See DIAG DISK -> VIDEO TEST -> screen 3 (Rainbow driver - SKIP 0) [Bavarese].
- (corvushd) Fixed prep mode verify drive command. The verify drive command (0x07) is used by the "format check" options of both the Corvus diagnostics program and the SSE HardBox configure program. Previously, format check would halt with an error because we did not return a valid response for the verify drive command. Format check now completes successfully and reports no bad sectors. Fixed get drive parameters command. The "read controller code version" option in the Corvus diagnostics program now shows the correct version and drive capacity. Prep mode now supports multiple drives. This allows the Corvus diagnostics program to format any drive. Previously, the drive id sent in the command to enter prep mode was ignored and drive 1 would always be formatted instead [Mike Naberezny].
- (vtvideo): Added new interlaced mode. Also handle cases where undocumented delays/skip lines are poked (SQUINT; VIDEO.PAS) [Bavarese].

0.153:
======
- Converted x68000 keyboard into a separate serial device. This allows the removal of the uart hle in the driver (which didn't work, it was always two characters behind). diserial cannot sync with the start bit properly when using an external clock, so for now I've added a hack that is only enabled when using the MC68901 (setting the flag ignores the extra spurious bit that was getting shifted in) [smf].
- Replicator 1 driver: * Status: no sound / not working * General skeleton * Basic memory mapping * Shift-register interfacing from PORTC writes to the LCD device * avr8 fuses configuration [Felipe Sanches].
- ISA bus can now use its own address spaces instead of taking over a CPU's [R. Belmont].
- pc_vga: default DAC mask to 0xff, indiana now shows text [Carl].
- i8530h31 now *almost* boots or at least make some beeps, instead of halting because of unmapped I/O accesses, or halting because of a bad checksum because the ROM was loaded improperly [alegend45].
- Floppy subsystem documentation checkpoint. Incomplete, but there's too many people looking at it not to push it [O. Galibert].
- pc/xt/at: Added basic implementation of the Programmers Development System ISA card. The PDS editor software requires the hardware present to start up.  Some core work will need to be done to get any communications working, however [Barry Rodewald].
-Apple drivers cleanup: * apple3_state is no longer an unnecessary subclass of apple2_state * ay3600 keyboard decoder is now independent from apple2_state * Cleaned up some includes [R. Belmont].
- Refactored the Commodore 1541/1551/1571/2031 disk drives to use the modern floppy system [Curt Coder].
- Refactored the Commodore 2040/3040/4040 disk drives to use the modern floppy system [Curt Coder].
- Removed PET CB1 read handler, it is pushing vsync to it already [smf].
- Added BIOS from Midnight Blue PlayStation <10 million model> SCPH-7000W [smf, Myria].
- Added SUBCPU address space dump from US PlayStation [smf, psxdev.ru].
- machine\megadriv.c - Fixes segfault when trying to load the homebrew megadrive tutorial file 'firststeps' [Felipe Sanches].
- Start removing usage of deprecated 68681 INPORT_CALLBACK [R. Belmont].
- Floppy: Fix write over the index pulse and flux change lookup before it [O. Galibert].
- vtvideo.c: First steps to mimic soft scrolling. Should be synchronized with beam or DMA in the future [Bavarese].
- snapquik.c: Stop unloading snapshot/quickload images after start. This makes these image devices consistent with other image devices and it allows snapname and savename options to work as users expect with these formats too [Fabio Priuli].
- Preliminary driver support for the HP 49 G [Antoine Mine]
- pce_cd: Fixed MSM volume [Osso].
- Attempt to partially rewrite AAKART, and added 4bpp video mode for Acorn Archimedes. It now boots at prompt screen, and actually even boots into splash screen and dies almost soon with an error if you provide a properly initialized NVRAM [Angelo Salese].

0.152:
======
- southbridge: Make at586 fdc work [Carl]
- Fix D9060 format. Reads greater than one sector were broken when using bit banging [smf].
- Added nscsi versions of the SCSI callback device and Xebec S1410 [Curt Coder].
- s1410: Return drive not ready error when trying to recalibrate the unsupported drive 1. This fixes the phantom partitions in ABC 850/852 [Curt Coder].
- hardbox: Fixed RAM size [Martin Hoffmann-Vetter, Mike Naberezny].
- mega Soviet clone patch: * Moves ec184*, iskr103* and mc1502 out of pc.c * Moves CGA font upload support to a subclass * Adds new drivers: poisk1, ec1847, pk88 * Adds a skeleton of native iskr103* keyboard [shattered].
- isbc-215g: Add intel isbc-215g hdd controller, read only for now [Carl].

0.151:
======
- Misc. a2bus updates: * CFFA2: patch settings EEPROM to allow up to 13 partitions on both IDE connectors * SCSI: Much improved documentation [R. Belmont].
- dim_dsk: Add modern support [Carl].
- Allows you to change what is in the southbridge ide slots [smf].
- isa_dectalk: Add the dectalk pc device [Carl, Lord Nightmare].
- Replaced hack code for saving nc200 ram with legacy nvram saving, you can now shut down the emulation and start it up without losing everything. However you must press the on button before exiting (default END key) [smf].
- mc1502: Cassette output, printer WIP, serial WIP, minor keyboard fix [shattered].
- RSP SIMD changes: * Converted high and middle accumulator slices into SIMD vectors * Converted flag registers into SIMD vectors * Fixed unaligned accesses in CFC2 opcode * Added SCALAR_GET_VS1, SCALAR_GET_VS2, and SET_ACCUM_H/M/L to act as a passthrough to either the non-SIMD implementation or individual element insert/extract ops in order to minimize #if USE_SIMD all over the place * Ported SIMD implementations of VMUDL, VMUDM, VMUDN, VMUDH, VMACF, VMACU, VMADL, VMADM, VMADN, and VMADH from CEN64 with permission * Resulted in an overall speedup of proximately 50% for RSP-bound scenes on a 2.5GHz i5 [MooglyGuy, Marathon Man].
- Broke blender steps into individual #defines in order to make the functional differences between RDP modes more apparent [MooglyGuy].
- ec1841 updates: * Emulated the original keyboard * DIP switches added * Improved memory mapping [shattered].
- ti99, geneve: Using the new SETOFFSET address map feature (split access) [Michael Zapf].
- ti99: Added guards to prevent access to special devices in new memory access emulation [Michael Zapf].
- BBC Micro updates/fixes: * Implemented ram device, all models have default ramsize, model A is 16K/32K switchable * Added additional bios options for OS0.1, OS1.0 in models A/B * added clones bbcb_de, bbcb_us for BBC B German and US export models * added clones bbcmaiv, bbcmet, bbcmt, bbcm512, bbcmarm for other BBC Master models * Added clones bbcmc, bbcmc_ar for BBC Master Compact and Arabic models * Implemented BREAK key * Fixed 8271 disk loading of ssd,dsd images * Device mc146818 now accepts default CMOS RAM * Added default CMOS RAM settings for all Master models [Nigel Barnes].
- PT68K: Connected to a terminal, system works with bios 0 [Robbbert].

0.150:
======
- Emulated the SSE HardBox, a Corvus interface for PET [Mike Naberezny].
- amigaxxx_flop: Added two recently released files and corrected wrongly placed sets [Kaylee].
- mpt02: Fixed CDP1864 colors [Curt Coder, Guru].
- Added skeleton for the C64/128 version of the Star NL-10 printer interface cartridge [Curt Coder].
- Ensoniq 16-bit: SQ series are 21-voice, not 32. Fixes tuning vs. H/W [R. Belmont].
- wd_fdc: Don't switch off the motor when the fdc doesn't have a motor control pin [O. Galibert, Duke]. Data overrun drops DRQ. Fix ready handling, allow ready connected to vcc [O. Galibert].
- ES5510: Fixed saturating ALU operations, greatly improving the behavior of many programs [Christian Brunschen].
- Added skeleton 'Yamaha Mixt Book Player Copera' to the Sega Pico driver, it appears to be similar to the Pico but with extra sound
 hardware (a complete Sound Blaster clone) on the MB. Added a preliminary Softlist. Added board layouts for both [Team Europe].
- MPU-401: preliminary checkpoint [R. Belmont, kevtris]. MPU-401: Preliminary working MIDI out [R. Belmont].
- MIDI: System Common messages should not override running status, fixes Sierra games crashing with the MT-32 [R. Belmont].
- Separate Ensoniq "pump" device out from esq5505.c [R. Belmont].
- Rainbow updates: * Add beeper, NVRAM. LED output for keyboard, Z80 and 8088 * Correct NVRAM mirroring [R. Belmont]. * DC012 48 line mode. 3 new character attributes (reverse, blink, underline) [Bavarese].
- Fix GD-Rom booting in DC US and PAL [PsyMan].
- Fixed crashes from reading the reset port on some drivers [Wilbert Pol].
- vtvideo.c : Separate device_reset(). New variable m_height_MAX for those parts of the code shared with VT-100. 132 column mode uses compressed characters with 1 filler pixel instead of 2. Bold implemented: 3 color palette and separate device_reset() on Rainbow. Double width line attribute fix [Bavarese].
- Added preliminary S+core CPU emulation [Sandro Ronco].
- Renamed IDE8 to XTIDE [smf].
- Software list update. New softlist: snes_vkun.xml (Voice-Kun audio compact discs) first Voice-Kun public dump from King Mike added. New prototype public dump from SNES Central in snes.xml [ReadOnly].

0.149u1:
========
- Added software list for BASIC programs saved to tape [Anna Wu, UglyJoe, Fabio Priuli].
- corvushd: Fixed log message. Fixed physical sector calculation [Mike Naberezny]. Supported 4 hard disks and usage from within a device [Curt Coder].
- Added skeleton for IMI 5000H hard disk controller [Curt Coder, Al Kossow].
- Added skeleton device for Mator SHARK (22 MB Winchester hard disk for the Commodore PET) [Curt Coder, Mike Naberezny].
- imgtool: Add bml3 driver, supporting both single-density (MP-1805 controller) and double-density (MP-1802 controller) disks in D88 format [jedwidz].
- Fixes for building MESS with Visual Studio 2013 preview [smf].
- Ensoniq 16-bit: better A/D parameter handling, allow panel device to send new analog data [Christian Brunschen].

0.149:
======
- Added RS-232 ports to several drivers [Curt Coder].
- Ignore unformatted tracks in dsk files [smf].
- td0_dsk: Add new floppy system support for teledisk [Carl].
- sp0256: Modernized the SP0256 Narrator Speech Processor sound device [Fabio Priuli].
- Fixed IEEE-488 bus reset on Commodore drives [Curt Coder].
- Fix for Apollo PIC8259 breakage [Hans Ostermeyer].
- Corrected pitch and readback behavior for the ALF Apple Music II and noted it's the same as the ALF AM1 [R. Belmont].
- Modernized uPD1771c sound device. Modernized the Mac Sound device. Modernized MEA 8000 sound device. Modernized MC68328 (DragonBall) device. Modernized AY-3-1015 device. Modernized Samsung S3C44B0 device. Modernized VT100/Rainbow video device. Modernized VIC3 video device. Modernized uPD71071 DMA device. Modernized DS1315 clock device [Fabio Priuli].
- dsk_dsk: Fixed incorrect sector size bug preventing standard DSK images from working [Barry Rodewald].
- Marked Game Boy, Game Boy Color, Game Boy Advance, Game Gear, Intellivision, Lynx, Master System, MegaDrive / Genesis, NES / Famicom, Neo Geo Pocket, Neo Geo Pocket Color, PV-1000, Super Cassette Vision, Super NES / Super Famicom, Wonderswan and Wonderswan Color as supporting save states. PC-Engine supports save states too, but only for HuCard games and not for CDs. Please report issues with save and restore in these systems, if any, to MameTesters [Fabio Priuli].
- terminal: Fixed natural keyboard [Mike Naberezny].

0.148u5:
========
- Added year and publisher info to most games in Amiga OCS, ECS, AGA and Atari ST softlist, fixed shortnames and descriptions where needed, improved parent/clone relationships, made better use of part_id features in multidisk sets. Also, re-ordered sets in ZX softlist [Anonymous, Fabio Priuli]. Added software lists for NorthStar Horizon/Advantage floppies [Dave Dunfield].
- psxmultitap: Add multitap support [Carl].
- Slotify pc joystick [Carl].
- Apollo updates: * Added 4 and 8 plane color graphics board support * Renamed dn3x00 to dn3x00_19i and dn3x00_15i to dn3x00 * Reworked video/apollo.c into class apollo_graphics * Fixed recent regression where the arrow keys moved the mouse pointer [Hans Ostermeyer].
- pc_joy_sw: add MS Sidewinder pad [Carl].
- com8116: Fixed frequency divisors [Curt Coder].
- i8251: Implemented parity and 16X/64X clock modes [Curt Coder].

0.148u4:
========
- XT IDE interface [Phill Harvey-Smith].
- Fix for ROM paging on both the Dragon 64 and Dragon Alpha, which restores the Dragon Alpha to working condition [Phill Harvey-Smith].
- Z800x and M20 improvements to boot CP/M-8000. Z800x: Push the correct word on internal traps. Z800x: Fix FCW handling in system non-segmented mode. Z800x: Add missing form of ldb reg, #imm. Z800x: Show previous PC, NSPSEG, and PSAPSEG in the debugger. Z800x: Improved flags display in the debugger. Z800x: Add debugger command z8k_disass_mode to toggle segmented/non-segmented. Default "auto" tracks the current execution state. Z800x: Don't block nested exceptions if the priority and the FCW allows it [Christian Groessler].
- s3, mach8: Added read/write registers, and implemented read masking in BitBLTs (used by XF86_S3). Made clipping rectangle checks against Destination X/Y when doing BitBLT [Barry Rodewald].
- csw_cas.c: Fixed CSW header detection regression [Wilbert Pol].

0.148u3:
========
- psxcd: Simplify the cdrom [Carl].
- imd: Stop being so anal-retentive, it's counterproductive [O. Galibert].
- Stop PSX crashing when reloading a state when cd access was in progress [smf].
- Makes sure the first instruction of cpe/psx/psf files will be executed [smf].
- upd765: Handle modes a little more, NeXT can boot from floppy again [O. Galibert].
- upd7220: Add the internal rom [rfka01, balrog].
- Added skeleton S3 ViRGE video card [Barry Rodewald].
- Band aid fix for Tobal No. 1, some graphics issues remain [smf].

0.148u2:
========
- Added hook-up for CD Block command 0x64 (Put Sector Data) [Angelo Salese].
- ColecoVision: controller has a * key, not a . key [Nick3092].
- PlayStation: Fix CD-ROM regression [R. Belmont].
- isa_ide: Correctly mapped alternate port [Miodrag Milanovic].
- Reimplemented the NCR5380 SCSI controller using nscsi [R. Belmont].
- Modernized vc4000 device [Andrew Gardner].
- Modernized wswan, special, and svision devices [Andrew Gardner].
- 3c505: Fix typo that broke TCP [Hans Ostermeyer].

0.148u1:
========
- Added Cardco CSD-1 floppy drive (C1541 clone) [Cowering].
- g7400: Changed driver to use the i8244/i8245 device implementation [Wilbert Pol].
- minichief: Added WD1002A-WX1 ROM dump [rfka01].
- odyssey2, videopac: Updated drivers to use the i8244/i8245 device implementation [Wilbert Pol].
- Refactored the Commodore 1581 floppy disk drive to use the modern floppy system. Supports read-only access to D81 images [Curt Coder].
- wd_fdc: Controller remains busy until the last DRQ has been served and the sector register can now be written more than once [Curt Coder].
- esq5505: add MIDI In capability to all of these drivers [R. Belmont].
- sms.c: Improved memory initialization on Japanese and Korean consoles. This fixes softwre list entries alibaba and blockhol [Enik Land].
- Fix non-functionality of all Apple floppy drives [R. Belmont].
- flopimg: Added support for Commodore GCR encoding [Curt Coder].
- SMC-777: enabled to show the border area in MC6845 interface, changed various video related function accordingly [Angelo Salese].
- Enabled to show border area in Sharp X1, fixes Shilver Ghost gameplay and Nobunaga no Yabou error display if a single floppy is in [Angelo Salese].
- Made major clean-ups to NEC PC-8801, Sharp MZ-2500, Sharp X1 and Sony SMC-777 drivers. This gives a nice speed boost to them [Angelo Salese].
- BINBUG : Added full implementation of DG640 video card. Improved cassette [Robbbert].
- ESQ-1: Converted to n68681, hooked up MIDI I/O, mapped more front panel buttons [R. Belmont].
- Slotify playstation controller ports [Carl].
- Fix memory card and standard controller with v3 pad lib psx software [Carl].
- Add Dualshock emulation [Carl].
- Make playstation memory cards load and save to a file [Carl].
- floppy: Fixed write protected signal and added a callback for it [Curt Coder].
- PlayStation: Mirror main RAM, fixes Woody Woodpecker Racing. Fix sample signedness and stream rate for CDDA (redbook) audio. Play XA audio at the correct speed [R. Belmont].
- alphasma: added keyboard input and LCD emulation [Sandro Ronco].
- dsk_dsk: Header size obvious fix [O. Galibert].
- cat.c (Canon Cat): Reverse engineered 99% of memory map including mirrors based on extensive hardware testing; located Printer, Modem and Floppy drive registers (not yet hooked up); added v1.74 firmware and SpellCheck ROMs. Added a lot of debugging information [Lord Nightmare, Balrog]. Got rid of a lot of hashtag lookups; fixed the video enable bit location. Cleaned up comments a bit. More debugging stuff added. Added the 6ms timer and its counter. Implemented video invert bit, added notes about what some of the registers are called in the original source code [Lord Nightmare].
- c64: Implemented parallel joystick pot X/Y read. Cleaned up input handling. Controllers are now connected using the slot interface, and by default a joystick in port 2 is present [Curt Coder].
- c128: Implemented parallel joystick pot X/Y read. Cleaned up input handling. Controllers are now connected using the slot interface, and by default a joystick in port 2 is present [Curt Coder].
- esq5505: Use esqpanel base class for massive cleanup [R. Belmont].
- kt76: Convert to modern 68681 and add MIDI I/O [R. Belmont].
- cdi: Modernized CD-i and removed tag lookups. Modernize MCD212 device [MooglyGuy].
- gba: Cleaned up tag usage outside of the startup path [MooglyGuy].
- vic10: Cleaned up input handling. Controllers are now connected using the slot interface, and by default a joystick in port 2 is present [Curt Coder].
- vic20: Cleaned up input handling. Controllers are now connected using the slot interface, and by default a joystick is present [Curt Coder].
- De-tagged the Apple II series drivers [R. Belmont].
- pet: Added datassette slot interface [Curt Coder].
- plus4: Cleaned up input handling. Controllers are now connected using the slot interface, and by default a joystick is present [Curt Coder].
- apple2gs: Enable 6850 MIDI card. Tested in MasterTracks Pro and synthLAB [R. Belmont].
- gb.c: Fixed support for Wisdom Tree games [Fabio Priuli].
- isa_gus: Enabled 6850 MIDI interface with a hopefully accurate clock,
 and fixed a silly error with MIDI IRQs, and passes the MIDI transmit
 IRQ test. [Barry Rodewald]
- psxanalog: Add analog joystick [Carl].
- SoundBlaster: MIDI Out support for single-byte, SB UART and MPU-401 UART modes [R. Belmont].
- pet2001: Rewrote the PET 2001 series [Curt Coder].
- pet: Moved the remaining PETs to the new driver [Curt Coder].
- isa_sblaster: Fully hooked up MPU-401 input and output for SB16. Working SB-MIDI In (tested w/MIDI Monitor for Windows) [R. Belmont].
- megadriv.c: Many updates to cart handling: * Updated carts to be slot devices * Simplified loading and bankswitch mechanism * Added support for real Sonic & Knuckles lock-on emulation (you can combine it freely with other carts, through the -cart2 slot which gets added automatically) * Remove need for "pcb_type" feature from xml softlist, since the new 'slot' feature is enough * Moved SVP emulation to src/mess/ in view of conversion to a slot device as well [Fabio Priuli].
- Properly close the old image when swapping CHD-CDs [Steve Leung].
- Added minimal cassette software lists for the Commodore computers [Curt Coder].
- cat.c(Canon Cat): added another v2.40 romset dumped from two original developer's machines and made it the parent set. Lots and lots of documentation updates [Lord Nightmare, Dwight Elvey, Sandy Bumgarner].
- pet: Added user and memory expansion ports [Curt Coder].
- cbm2: Added user port [Curt Coder].
- c64: Added CMD SwiftLink cartridge emulation. Added CMD Turbo232 cartridge emulation. Added support for the VizaStar cartridge [Curt Coder].
- megadriv.c: More updates: * Implemented correct ROM mirroring, based on research by Eke & others * Emulated the protection in Ya Se Chuan Shuo, promoting it to work state * Fixed cart type in Blockbuster World Video Game Championship II (works for the first time in MESS) * Fixed cart type in HardBall III, Barver Battle Saga and Chao Ji Da Fu Weng * Added support for unusual SRAM location in HardBall 95 * Fixed a few regressions introduced in the previous commit * Fixed wrong driver class being used in 32x and SegaCD [Fabio Priuli].
- gb.c: Many updates to cart handling: * Updated carts to be slot devices * Simplified loading and bankswitch mechanism * Fixed MMM01 emulation * Removed need for "mapper" feature from xml softlist, since the new 'slot' feature is enough [Fabio Priuli].
- apple2: Support generic 6850 MIDI card (Yamaha, Passport, etc). General modernization, some tagmap cleanup, and prep work to emulate IIe aux slot cards. Support 8 meg AE RamWorks III card for IIe. Another pass on tagmaps, plus preliminary emulation of the standard and extended 80-column cards for the IIe [R. Belmont].
- flopimg: When generating a pc layout, don't write the gap3 after the last sector [O. Galibert].

0.148:
======
- c1551: Fixed floppy loading [Curt Coder].
- c1571: Fixed fast serial mode on C128 [Curt Coder].
- ed1200 family of LCD controllers [O. Galibert].
- dsk: (minimally) Complete the dsk support [O. Galibert].
- floppy: Correctly reach files inside zips or softlists [O. Galibert].
- flopimg: Avoid avoidable leaks [O. Galibert].
- upd765: Be verbose about sector IDs when formatting a track [O. Galibert].
- Added FM encoding support to flopimg and wd17xx_dsk [Curt Coder].
- Added FM encoding support to upd765_dsk [Curt Coder].
- Added cdda_get_channel_volume() function to CD-DA device. Fixed volume control display in PC Engine CD system [Angelo Salese].

0.147u4:
========
- Added proper char roms for Wyse700 [John Elliott].
- upd765: Reset MA when sector is found on write data too. Don't choke on DDAMs. Handle the rate correctly in FM. Get ready from the correct place in sense interrupt status. Better integration and support of FM. Move to emu. Externalize the fdc. Try another hypothesis [O. Galibert]. Changes to busy flag, r/w sector increment and reset int [Carl].
- imd: Accept versions with single-digit minor [O. Galibert].
- pc floppies: Merge the common parts of d88/imd [O. Galibert].
- floppy: Fix index pulse generation when motor is always on. Default on head 0, not 1. Enhance ready support. Restore/recalibrate is supposed to work like this [O. Galibert]. Added macros for declaring modern floppy formats. The generic floppy formats (D88/DFI/IMD/IPF/MFI/MFM) are now automatically supported in each driver using the modern floppy code [Curt Coder].
- wd1772: Improved interrupts, added ready handling and FD1793 variant. Added FD1771 and FD1797 variants [Curt Coder]. Move to emu. Rename to wd_fdc [O. Galibert].
- upd1771.c - Additional comment updates, including some upd1771 patents and internal workings information [Lord Nightmare].
-wd_fdc: Add comments on the family. Change the feature functions into bools, and use the correct pll for each chip. Describe track when formatting. FM support, need to review all timings. Interrupt on ready support. Fix sector sizes and (most) timings. Change the fd179x timings to be tighter [O. Galibert].

0.147u3:
========
- Added EPSON SIO port emulation as used by the HX-20, PX-8 and PX-4. Updated PF-10 and TF-20 floppy devices to a new style device and use the SIO implementation. Updated PX-4 driver to use the new emulation [Dirk Best].
- upd765: Try yet another hypothesis on the IRQ behaviour [O. Galibert].
- Add a generic wd format [O. Galibert].
- isa_ide_cd: initialize ide registers [Carl].
- floppy: Add IMD support [O. Galibert].
- upd765: Add read fm sector support [O. Galibert].
- wd1772: Added WD2797 variant, side select output, and immediate interrupt command (0xd8) [Curt Coder].

0.147u2:
========
- Floppy: Random fixes/logging [O. Galibert].
- upd765: Modernize [O. Galibert]. Remaining TODO list:
 * Take WP into account
 * Test the amstrad, implement its observational format (edsk) using pasti as a start. Or find the legendary amstrad IPFs. Or both.
 * Correct read track, the implementation is completely wrong. See previous for testing, it's only used in protections the check the inter-sector gaps.
 * Shake and bake on the amstrad, protections are the best to find bugs in a fdc.
 * Add the scan id commands, but nothing seems to use them.
 * Debug the 2.88M formatting which is unreliable. Fix its IDAM/DAM gap size on formatting too (but that's not what's making it unreliable).
 * Test all the systems that were hit, and fix what needs to be fixed. Beware that multiple problems may happen:
 - upd765 may be wrong
 - The driver may not be working
 - The hookup may be wrong/incomplete (bitrate selection and floppy rpm in particular)
 - The driver may be too limited for the new implementation (the x68k dma device does not handle non-instant dma yet for instance)
 * Report invalid command when appropriate depending on the actual chip emulated
 * Add the russian clones with their real names.
- d88: Reduce the gap3 size from the standard value when the data otherwise won't fit [O. Galibert].
- upd765: Implement LOCK. Fix busy status when seeking. Fix MSR DIO in EXEC phase. Fix the dump regs command, don't exit on unknown commands and add dsr reset [O. Galibert].
- Add innovation ssi-2001 sid-on-isa device [Carl].
- Added basic support for the loop flags in tzx [David Haywood].

0.147u1:
========
- Fixed resource data of Windows executable [Oliver Stöneberg].

0.147:
======
- Fixed vertical sprite wrap-around in SNES driver [Angelo Salese].
- Rewritten cycle steal code from scratch and nailed it directly in the G65816 CPU core [Angelo Salese, byuu].
- Added PET cassette port slot interface to vic20, c64, and plus4. Implemented 1530/1531 datassette as slot devices. Converted MOS6581 interface to devcb [Curt Coder].
- vic20: Added floating bus read support to VIC and cartridge interface [Curt Coder].
- vic10: Added floating bus read support to VIC-II and cartridge interface [Curt Coder].
- Fixed incorrect SPC700 IPL ROM behaviour in SNES driver(s), fixes some (not all) crashes at soft reset [Angelo Salese].
- Added Sound Blaster 16, and proper 16 bit ISA DMA handling [Carl].
- Added IBM VGA card [Carl].
- m6502: Fixed CPU peripheral port behavior by introducing pull-up and pull-down masks to the CPU interface [Curt Coder] .
- isa_blaster: Adds 2,3 and 4bit ADPCM support [Carl].
- Preliminary support for cassette images in MZ-2000 [Angelo Salese].
- Added keyboard inputs for Pasopia and Pasopia 7, z80pio irq still doesn't work [Angelo Salese].
- Added paddles and light pen VCS control devices [Curt Coder].
- Support for writing to compressed hard drives using diff files [smf].
- PC hardware: cleanup the end-of-dma notifications [O. Galibert].
- isa_blaster: improves the adpcm and simplifies the dsp protection, based on the ATI Stereo FX rom [Carl].
- pc_joy: Made pc joystick a device for the many isa audio adapters with joy ports to share [Carl].
- cbmb: Added PLA dumps [Edward Shockley].
- ATI Stereo F/X ISA card support [Carl].

0.146u5:
========
- New device k7659 keyboard; modified LLC2 to work with it [Robbbert].
- k7659kb - Added more keys, added port_char, added return value when no key pressed [Robbbert].
- terminal: Replaced internal keyboard with the Ascii keyboard, since they were identical [Robbbert].
- nscsi: Documentation [O. Galibert].
- rp5c15: Initialize at power-on (makes the x68k boot reliable) [O. Galibert].
- roc10935/7: Correct an error in the lookup table for the '7' character [Lord Nightmare].

0.146u4:
========
- m68k: Handle higher-value constants in FMOVECR [R. Belmont].
- Moved TMS9901/9902 from mess/machine to emu/machine [Michael Zapf].
- AM9517 DMA controller enhancements, adapted PC drivers to use it [Carl].
- pccga: ec1841 not only mirrors the chargen buffer, but also byte-swaps it [shattered].

0.146u3:
========
- Refactored the Commodore disk drives to use BIOS definitions [Curt Coder].
- tms9928/v9938: Using an own address space for the attached video memory [Michael Zapf].
- tms99xx: Introduced symbolic constants for interrupt lines. Added a special RESET line which is handled by the CPU, not by the emulator core. tms9928a/v9938: Introduced dedicated RESET line [Michael Zapf].

0.146u2:
========
- Reimplementation of TMS9980A for cycle-precise processing; changed tms9900.c to allow subclassing TMS9900 and TMS9980A from a common parent [Michael Zapf].

0.146u1:
========
-upd765.c: Trigger RDY active during reset interrupt for each drive independently so that 4 consecutive Sense Interrupt commands will return the correct status [Curt Coder].
-SoundBlaster: First-pass somewhat naive working version. Autoinit DMA does not work; use sblaster1_0, not 1_5! [R. Belmont].
-New TMS9900 and TMS9995 implementation with proper control line handling and wait state generation. Previous implementation has been renamed and drivers point to the old implementation until they are adapted to the new one [Michael Zapf].

0.146:
======
- Initial work in preparation for some modernization on the whole megadriv.c file, starting with better splitting of actual drivers (megadriv.c, megacd.c, mega32x.c, megasvp.c and megavdp.c) [David Haywood].
- 8530SCC: Read back tx/rx status bits correctly [R. Belmont].
- Made Z8001 I/O 16 bits wide, proper 8259 PIC hookup on M20 (no EC tests fail now) [R. Belmont, Christian Grssler].
- Fix *BSD compile [ElBarto].
- Added Microsoft Natural Keybaord emulation [Wilbert Pol, kevtris].
- ISA_EGA: Fixed several text mode issues identified by running AT diagnostics [Wilbert Pol].
- Fix apple2c0 and friends that assume IWM rather than Woz state machine [R. Belmont].
- Fixed to read tags from DiskCopy 4.2 files properly. Lisa requires this [R. Belmont].

0.145u8:
========
- ap2_dsk: added some missing defines and comments and a way to select whether to use lenient (if the address mark contents are sane regardless of whether the checksum byte was good or not) or normal (only if checksum was valid) usage of the address marks. Also switched the default output sector order from prodos order to dos3.3 order, which is slightly more useful. Added a define to switch between the three possible sector orderings: prodos, dos3.3, and logical [Lord Nightmare].
- dfi_dsk.c: fixed a nasty bug when reading df bytes with 0x80 set throwing the timing way off; this makes most disk images decode a whole heck of a lot better. ap2_dsk.c: fixed a nasty array-out-of-bounds access problem if an address mark with an insane sector value in it is read [Lord Nightmare, Phil Pemberton].
- Fixed a logic bug in the dfi header check which surprisingly doesn't come up at all on GCC (compiler bug?) but does happen on clang. Also disabled some accidentally enabled debug code, and handle the case of no index transitions at all properly [Lord Nightmare, Balrog].
- Fix bug found by Clang (behavior *appears* correct but can't verify) [Balrog, R. Belmont].
- 3c505 improvements. Netbooting a MESS Apollo instance off a second MESS Apollo instance is now possible, and Domain/OS 10.4 works [Hans Ostermeyer].
- Various Clang warning cleanups (and a few actual bugfixes) [Balrog].
- i386: Big pmode update. OS/2 2.1 more or less runs now [Carl].
- ap2_dsk.c: Preliminary, working RWTS18 decoding support; Decodes disks and shows ascii text; not sure if sectors are in the correct order yet [Lord Nightmare, Balrog, Roland Gustafsson].

0.145u7:
========
- 3c505: Switched to using core device_network_interface [Hans Ostermeyer].
- Add multiread support (behind a define for now pending heuristics) to the dfi import support. Fix some inaccuracies regarding index decode position in dfi files [Lord Nightmare].
- Modern apple 2 disk decoder for 16-sector disk images implemented using Olivier's new system for floptool. Only supports importing from .dfi 50mhz multi-read x3 images at the moment. [Lord Nightmare, Balrog, Jason Scott, Karsten Scheibler]
- Fix dsk export from floptool so it can work with just one .dfi read instead of needing 3 reads. Tested at 50mhz sampling rate only [Lord Nightmare].
- More work on dfi and apple2 modern disk stuff; most of the auto speed recognition stuff is in the dfi handler now but the actual data scaling to match the internal mfi 200mhz sample rate stream is not done yet. There are also some likely issues with beginnings and ends of index pulses. Brickwall windowing has been implemented for dfi for regeneration of missed transitions from marginal reads as well as discarding of noise. A histogram has been added (disabled by default) for dfi format as well [Lord Nightmare, Phil Pemberton, Balrog].
- Some additional tweaks to ap2 and dfi stuff; disabled the horribly broken load() code in ap2_dsk [Lord Nightmare, Balrog].
- ap2_dsk.c: beginnings of 13-sector format support. gives a warning if you try to read one so far.
- dfi_dsk.c: fix a bug involving offsets read from source file per track which caused an occasional 0xFF byte to end up in the stream (reading off end of file buffer) [Lord Nightmare].
- ap2_dsk now produces valid, runnable ProDOS-order .po disk images [Lord Nightmare, adtpro].

0.145u6:
========
- Fix for feature name xml output in softlist [bobz].
- m68k improvements [Hans Ostermeyer]:
* Fixed BFINS, BFEXTU, and BFEXTS to fetch 8-bit quantities as 8 bits (corrects Domain/OS 10.3.5 crash on page boundry).
* Added SoftFloat log functions and m68k FLOGNP1, FLOGN, FLOG2, and FLOG10 instructions.
- uPD765: Fix Apollo floppy read/write problems [Hans Ostermeyer].

0.145u5:
========
(none)

0.145u4:
========
- Support for the 16550 fifo and hook up for the avigo to  the serial port (to test the 16550) [Carl].
- nextkbd: Fix key up/down [O. Galibert].
- nscsi_hd: Write and mode sense support [O. Galibert].
- ncr5390: Fix dma/fifo interaction [O. Galibert].
- nscsi_hd: Misc fixes [O. Galibert].
- Preliminary ide cd support, based on work of R.Belmont and Grull Osgo, still need some work [Miodrag Milanovic].
- i82371sb implementation and fixes for i82439tx [Grull Osgo].
- i386,x87: Multiple fixes [Carl].
- pic8259,fmtowns: PIC/timers fix [Carl].
- m68k: allow FPU instructions on '020 (it's possible to have an external 68881/882) and fix missing break; in the FPU [Hans Ostermeyer].

0.145u3:
========
- 680x0: Ensure fc/rw and fault address are consistant [O. Galibert].
- i386: Prevent page faults when returning to same privilege and unmapped pages are above the stack. Windows 95 boots now [Carl].
- Modernized terminal device and added possibility to change comm parameters [Carl].
- i386: LOCK prefix should depend on IOPL on 386. Windows NT beta boots [Carl].
- info.c: Several fixes and additions to listxml output [Fabio Priuli].
- Appended to xml info about devices which can be optionally mounted to slots.
- Added a description attribute to slotoption to show which devices can be mounted in each slot.
- Added to xml info of cpus/inputs/image/slots which are relative to devices (e.g. CPUs or Dipswitches in the device itself).
- Tags of elements directly attached to the root_device do not display anymore the root colon (slot tags were already behaving in this way); elements attached to optional devices use tags starting with colon (to be interpreted as a relative tags which gets appended to the device tag, when such a device is selected in a slot).
- Modified when necessary output routines to pass a root_device and a root_tag as parameters, in order to simplify output of relative devices and avoid duplicated code.
- Updated DTD according to the new elements and attributes. These changes allow frontends to know in advance how drivers can be configured through the various slot options (by matching option descriptions with device descriptions), without the need to run -lx with the various slot combinations. This is especially of use if a device adds e.g. dipswitches or image devices (like additional floppy drives or additional slot expansions), but also if one wants to know e.g. how many sound channels a soundcard would add to a pc driver, or which kind of screen parameters would be added by a specific choice of video card.

0.145u1:
========
- ISA Gravis Ultrasound device [Barry Rodewald].
- Work on et4000 16bbp and 24bbp video modes [Carl].
- Made generic serial port and RS232 port as slot devices, implemented pc mouse as example device [Carl].
- 68040 CPU: FSAVE fix, Add correct idle frames, Show the correct virtual map [O. Galibert].
- Added basic wrapper for Diamond Multimedia (Cirrus Logic based) ISA SVGA [Kaylee].
- Added null_modem and serial_terminal as slot devices [Carl].
- i386: Fix cmpsb (dir /s and edit works now) [Carl].

0.145:
======
- Added Covox DAC and Covox Stereo-On-1 [Miodrag Milanovic].
- Added emulation of HD64610 RTC and hooked up to pda600 driver [Sandro Ronco].
- ISA card AHA1542 skeleton added [Darkstar].
- Added noise support to UPD1771 [plgDavid].
- Added ISA IBM PC Music Feature Card [Phil Bennett].
- ioport.c: Made the key/paste buffer auto-expand when it becomes full. This makes it possible to paste larger BASIC programs for instance [Wilbert Pol].

0.144u7:
========
- i386: Various improvements of cpu core, mostly protected mode related [Carl,Barry Rodewald].
- SoundBlaster: Added DMA timer for more realistic IRQ acks, added 0xD0 stop DMA command, cleaned up DRQ semantics [R. Belmont].
- floppy: Do specific UI handling [O. Galibert].
- ppu2c0x: Converted NES PPU to be a modern device. [Fabio Priuli].
- m68fpu: Accept some more variants of fsave/frestore [O. Galibert].
- flopimg.h: Docbookified documentation [balrog].
- floppy: Libertarian relicensing [O. Galibert].
- m4510: Initialize the input callback too [O. Galibert].

0.144u6:
========
- Enabling load of multi part softlist items on all available device [Fabio Priuli].
- floppy: DiskCopy 4.2 support [O. Galibert].
- i8279 improvements. Hooked up to sdk85, sdk86, selz80 [Robbbert].
- i386: Bit more progress towards getting 386 enhanced mode Windows running [Carl].
- upd765: Added INT/DMA read handlers [Curt Coder].
- Added support for 2 drives on IDE controller [Miodrag Milanovic].
- Connected ISA slot devices for 32bit PC machines [Miodrag Milanovic].
- i386: Beginning to implement page faults [Carl].
- ipf: Fix a stupid memory leak, thanks Firewave [O. Galibert].
- i386: Added I/O permissions. Windows 3.0 can now start up in 386 enhanced mode [Carl].
- SoundBlaster: E2 protection check fixed. test-sbc.exe now passes initial tests [R. Belmont].
- SoundBlaster: Recognize command 0x10 for Inertia Player [R. Belmont].

0.144u5:
========
- pc_cga.c: Fixed selection of mc6845 input clock [Wilbert Pol].
- floppy: Add media type and write splice information to the internal representation, and start handling HD [O. Galibert].
- 8530scc: Modernize. Hopefully nothing broke [O. Galibert].
- floppy: Add an "unknown" form factor and use it to fix floptool [O. Galibert].
- mcs48: Fixed I8021/I8022 clock divider [Curt Coder].
- i386: Patch for i386 helps booting Phoenix bios [Carl].
- scsibus: Increment command index on acknowledge instead of data read, since Visual 1050 BIOS skips the message byte read and just acks it [Curt Coder].
- Fix four spc700 opcodes which didn't disassemble correctly [kevtris].
- scsibus: Added group 6 (vendor specific) command length [Curt Coder].
- scsibus: Implemented SASI group 6 command 00 (C0, Physical Device ID) [Curt Coder].
- scsibus: Sector size is now configurable in init_scsibus [Curt Coder].
- scsihd: Get sector size from CHD metadata to support old 256 bytes/sector SASI drives, and allow hard disk image subdevices [Curt Coder].
- uiimage/diimage: Dumbify the menus and add a control layer [O. Galibert].
- floppy: Add diskferret format support, and a minimal pc support [O. Galibert].
- First draft of i8279 device. Hooked up to mmd2, which now nearly works [Robbbert].
- softlist: Fix entry count tracking issue [O. Galibert].

0.144u4:
========
- ipf: Cope with a probable image error (Chase H.Q. ST in particular) [O. Galibert].

0.144u3:
========
- Handling error where filenames are too long [Chad].
- Added MC68008 PLCC variant [Curt Coder].
- uimenu: C++-ification [O. Galibert].

0.144u2:
========
- mc68901: Correct the spurious irq information a little [ijor].
- wd1772: Whether a drive is connected or not has no impact on the seek track==requested track test [O. Galibert].
- wd1772: Funnily enough, it's write track that writes, not read track [O. Galibert].
- floppy: Fix allocation issues on write [O. Galibert].
- wd1772: Simpily and make it more correct at the same time [O. Galibert, ijor].
- ui_menu: First part of the C++-ification [O. Galibert].

0.144u1:
========
- coco: New CoCo driver: [Nathan Woods]:
 * Modernized codebase (fully C++/device based)
 * Better MC6847/MC6883 emulation, particularly with respect to the interactions
   between those two chips.
 * Better separation between CoCo 1/2, CoCo 3, Dragon and Dragon Alpha emulations
 * Updated all drivers to use new MC6847 emulation (VTech, MC10 etc)
 * Converted RAM and Bitbanger devices to C++
- ipf: avoid writing out-of-bounds [O. Galibert].
- amigafdc: Fixes, fixes [O. Galibert].
- hd66421: Converted to be a C++ device [Fabio Priuli].
- Fixed HLSL memory leak and 32-bit HLSL crash-on-exit [Ryan Holtz, Bat Country Entertainment].
- amigafdc: Make the dsksync/DMA interaction more correct... probably [O. Galibert].
- wd1772: Generalize to all wd177x [O. Galibert].
- upd765: Fixed sector increment during read/write [Curt Coder].
- Fixed image loading for apple2 in cases with tolerated extra bytes [Chad].

0.144:
======
- Fixed up the flicky and clones (system1.c) Dip Switches after a fair amount of playtesting.  Also, added some specific set notes related to
oddness/differences observed [Tafoid].
- Start of input ports cleanup in the Toaplan drivers [Alex Jackson, kanikani]:
 * Removed some unused macros from toaplipt.h
 * Fixed polarity of DIPLOCATIONs in toaplan2.c
 * Added some missing inputs
- Fixed tms99xx STCR command [Michael Zapf].
- xmultipl: fixed tilemaps offsets [Roberto Zandona'].
- SDL: Add TAP/TUN networking capability and shell script for configuration [Carl].
- Added some common country and language names to the default strings, and removed some unused and/or redundant strings [Alex Jackson]
- Various improvement to Amiga FDC system [O. Galibert].
- ipf: Describe the remaining fields [O. Galibert, SPS].
- Rewrote NCR539x SCSI emulation from scratch [R. Belmont].
- More Toaplan input fixes [Alex Jackson, kanikani]:
 * Added DIPLOCATIONs and missing inputs to twincobr.c, wardner.c, toaplan2.c
 * Added information about ingame test/debug features to comments in toaplan2.c
 * Unified toaplan2.c inputs with the other Toaplan drivers
- Converted neogeo MVS driver to use software lists in preparation for multislot support [David Haywood].
- neogeo.c: fixed kof98 on non-Windows builds [Alex Jackson].
- Added per-channel volume control to ES5505/ES5506 sound chip, and hooked it up to the Taito F3 driver [Angelo Salese].
- Added a preliminary ES5510 DSP DRAM input/output latches support in Taito F3 driver, fixes sound in Ring Rage and Riding Fight [Angelo Salese].
- Implemented FRC hook-up to Sega System 24 HW, fixes missing SFXs to Bonanza Bros. [Angelo Salese, Phil Bennett, Charles MacDonald].
- 6522VIA: Implemented CA2 pulse output mode, and output interrupt state only when it changes [Curt Coder].
- 6532RIOT: Output interrupt state only when it changes [Curt Coder].
- hikaru: added 0.84 BIOS [Arzeno Fabrice].

0.143u9:
========
- Made smartmed device capable of handling softlist items [Miodrag Milanovic].
- Added 3com Etherlink II 3c503 card emulation [Carl].
- Unified paste facility for trainer computers [Robbbert].

0.143u8:
========
(none)

0.143u7:
========
- wd1772: Add read track support and some misc fixes [O. Galibert].
- Fix for cursor handling in dl1416 [Lord Nightmare].
- wd1772: Add read ids support [O. Galibert].
- Store the character codes and cursor states in ram and use the lookup rom to decode on display (as the real chip does according to the datasheet) rather than storing the segment contents in ram. This makes the DL1416 device act more like the real chip, where on power-up you see random but recognizable characters, rather than random gibberish. Note there's a lot of code duplication to check cursor state and invalid/blank crap which can probably either go
  behind a define or be its own function, or into the display wrapper function itself [Lord Nightmare].
- To see mouse pointer in games with clickable artwork use -nohc option from command line (windows only) [Robbbert,hap].
- ipf_dsk: Reverse engineering, it's what we do [O. Galibert].

0.143u6:
========
- mac: add NuBus Radius Two-Page Display (1152x880 monochrome) card [R. Belmont].
- Start to duct-tape some organs to the Tandberg skeleton driver and fix some memory maps (fdccpu in particular). It still doesn't do very much now but does more than it did before [Lord Nightmare].
- Some updated tandberg notes, nothing truly earth-shattering [Lord Nightmare].
- x68k: added basic expansion slot, and support for the Neptune-X NIC as a slot device [Barry Rodewald].
- atarist: Until the video emulation is *much* better, reset the shifter every frame [O. Galibert].
- nakajies.c: Implemented banking [Wilbert Pol].
- Add keyboard 8035 rom from tandberg as NO_DUMP for now [JonteP, Lord Nightmare].
- pc1640: Fixed ROM labels [John Elliot].
- abc1600: Fixed floppy, system now tries to boot from the mount disk [Curt Coder].
- kc: Implemented high resolution mode, fixes intro in SOKOBAN4 [Sandro Ronco].
- d6809 - modernised, connected to terminal, added notes [Robbbert].

0.143u5:
========
- floppy: Refactor slightly.  Name, descrition, etc are now an intrinsic property of converters [O. Galibert].
- floppy: Add brand-new MFI (MESS floppy image) support [O. Galibert].
- floppy: Change the internal format to use magnetic cells. Temporarily move the full-track pll bit extraction in the amiga fdc [O. Galibert].
- st_dsk: Add the easy ST formats [O. Galibert].

0.143u4:
========
- pet: Added support for D80/D82 disk images with error information [Curt Coder].
- NES: Attached emulated keyboards (Famicom and Subor) directly to famicom driver now that keyboard emulation does not affect the emulation if only gamepad are attached to the system. Removed accordingly the fami_key driver, which became redundant [Fabio Priuli].
- pc1640: Added another BIOS version [philippe].
- next: Add the keyboard [O. Galibert].
- st: Make it better [O. Galibert].

0.143u3:
========
- Fix for the hlsl scanline jitter effect [nimitz].
- Fix hlsl phosphor decay [nimitz].
- H8: many more "S" opcodes, Lost in Labyrinth now runs [R. Belmont].
- Add preliminary hookup of 10937 VFD controller chip, which very badly needs to be rewritten as a proper device. Add notes about i/o map [Lord Nightmare].
- h8: rewrote H8S/2xxx 8-bit and 16-bit timers [Tim Schuerewegen].
- hashfile.h: fixed parent .hsi files not being used by clones [Fabio Priuli].

0.143u2:
========
- Fixed for rom auditing in core and winui [smf, Robbbert].

0.143u1:
========
- asc: minor cleanup; use device timer instead of stand-alone [R. Belmont].
- ti99: Replaced TRUE/FALSE for line states with ASSERT/CLEAR (which helped to find an inconsistency in the implementation) [Michael Zapf].

0.143:
======
- Added device types for all known WD17XX variants, and enforced inverted DAL lines with e.g. FD1771/FD1791. Used correct variants in drivers, except TRS-80 [Curt Coder].

0.142u6:
========
-upd765: Fix issue accessing floppies when initially drive is empty [Carl].
-pc_mouse: Fixed mouse issues, making it work in OS/2 [Carl].
-upd765: Fixed cylinder number increment on EOT, helps minix2 to boot [Carl].

0.142u5:
========
- MESSUI - finished adding HLSL sliders per game. The settings will be saved if your system is set up correctly. Note the page will be greyed out if D3D version 9 is not selected. Another note: The Defaults and Reset buttons don't do anything yet [Robbbert].
- MESSUI - fixed the 5 sliders on the Display sheet. [Robbbert].
- MESSUI - advanced sheet - fixed frameskip [Robbbert].
- MESSUI - Sound property sheet - fixed Audio Latency slider [Robbbert].
- MESSUI - Screen property sheet - fixed Number of Screens slider [Robbbert].
- MESSUI - Advanced property sheet - fixed 3 full-screen sliders. Fixed typo in FULLLSCREENCONTRAST. Fixed my mistake with Gamma and Contrast controls on Display property sheet [Robbbert].
- MESSUI - Debug property sheet - used a better icon [Robbbert].
- MESSUI - Removed option to load a cheat file [Robbbert].
- pc_fdc - Data rate detection added [Carl].
- at - Implemented RTC IRQ callback for AT machines making OS/2 to boot [Carl].
- pc_fdc - Fix booting from double density media with at bios set 0 [Carl].

0.142u4:
========
- pc_fdc - added disk change signal [Carl].
- note that with new tools there are no unicode issue with tools (wimgtool).

0.142u3:
========
- sonydriv: fix crashes when accessing drive after a software-initiated disk eject (e.g. zzcopy on apple2gs) [R. Belmont].

0.142u2:
========
- Added skeleton for Interpod IEC to IEEE-488 converter device [Curt Coder].
- Created device_rtc_interface which can be used to initialize RTC's to a certain date/time at driver startup, useful for regression testing. 
	Implemented the interface in most of the modern RTC devices. Note: this is not yet plumbed down to the command line [Curt Coder].
- es5503: Properly mask oscillator enable bits. Fixes crashes in e.g. ACS Demo Disk 2 [R.Belmont].

0.142u1:
========
- The core is based on MAME 0.142u1. This incorporates all features of the update to this core [MAME team].
- Update compiling.htm and howto.htm to latest wiki versions [Justin Kerk].
- Fix wimgtool compile with OSD=winui [Justin Kerk].
- uiimage.c: added reset of the char input buffer when selecting an entry in the file manager [Fabio Priuli].
- softlist.c: rewritten part of the Internal UI handling for softlists to match the code used by the file selector (this will allow more improvements soon) [Fabio Priuli].
- softlist.c: softlists entries are now ordered by shortname in the File Manager, so that it's easier to find the set you want to load (first of the promised improvements ;) ) [Fabio Priuli].
- softlist.c: simplified softlist navigation (from the internal UI) by catching char inputs and searching for matching names among list shortnames, like in the file selector [Fabio Priuli].
- softlist: moved software list handling (in the Internal UI) to a separate source [Fabio Priuli].
- uiswlist.c: properly made non-clickable the "[compatible lists]" separator entry between main lists and compatible ones [Fabio Priuli].
- uiswlist.c: added a switch to choose between shortname order or description order for softlist entries (in the Internal UI), and adapted the char input code to match shortnames or descriptions accordingly [Fabio Priuli].
- cartslot.c/chd_cd.c: added support for a callback function to test softlist sharedfeat (e.g. 'compatibility') and display a warning message accordingly. updated cdi.c as an example [Fabio Priuli].
- clifront.c: fixed -listmedia output (extensions were messed up) [Fabio Priuli].
- uiimage.c: File Manager now displays the brief name of the image device to make easier to decide where to mount images (see e.g. smssdisp or atom) [Fabio Priuli].

0.142:
======
- The core is based on MAME 0.142. This incorporates all features of the update to this core [MAME team].
- Added support for a new template to -snapname to use software names for snapshots. It is now possible to use %d_XXXX to name snaps after the name of the file mounted in the device XXXX, being XXXX the brief name of any device. E.g. you can use "-snapname %d_cart" to use the name of the game mounted in the cartslot, or "-snapname %d_flop2" to use the name of the game mounted in the second floppy drive, etc. If you are loading software through software lists, its shortname will be used; if you are using the fullpath of the software, its filename is used. Any combination of the new template with the old "/", "%g" and "%i" templates is supported as well. Notice that if you specify an invalid device, or if you have no software mounted in the chosen device, MESS will revert to the default template "%g/%i" [Fabio Priuli].
- softlists: Added new lists, new dumps and info [anondumper, Barry Rodewald, Curt Coder, MESSfan, Fabio Priuli].
- Cleanups; static qualifiers, added driver_states, consistent get_safe_token usage, reduced calls to ram_get_ptr() and region(...)->base() [Atari Ace].
- [WD17XX] Added device types WD1795, WD1797, WD2795, and fixed  wd17xx_has_side_select() [Curt Coder].
- [WD17XX] Set complete command delay to 16/32 usec based on DDEN [Curt Coder].

0.141:
======
- The core is based on MAME 0.141. This incorporates all features of the update to this core [MAME team].
- Added UTF-8 constants for Swedish/Finnish keyboard accented characters, and cursor key arrows. Refactored drivers to use these constants [Curt Coder].
- Rewrite of the system architecture of all systems of the TI-99 family (TI-99/4(A)/8, SGCPU, Geneve), now more closely representing the real hardware. Using device structures for all hardware parts now. Redundant code removed [Michael Zapf].
- Refactored the UPD765 DRQ line to use devcb. The read_write parameter is not present on the real chip, and no driver was using it [Curt Coder].
- Static/const changes, and added driver_device state to many drivers [Atari Ace].
- Refactored the following drivers to define ADDRESS_MAP_MODERN: abc80, advision, amu880, bw12, bw14, bw2, kc85, trsm100, tandy102, tandy200, pc8201a, mm1m6, sg1000, sc3000, sf7000, tandy2k, v1050, victor9k, vidbrain, ql, xerox820, xerox820ii, xor100 [Curt Coder].
- Allowed the use of either decimal or hexadecimal values for <dataarea> size, <rom> size, and <rom> offset in software lists [Curt Coder].
- Enabled loading ROMs from software lists to ROM_CART_LOAD entries [Curt Coder].
- Preliminary work done on these systems. Results vary from little difference to almost fully working: beehive, c10, cd2650, ccs2422, czk80, d6800, dim68k,
  dolphin, et3400, h8, h19, k8915, mccpm, mekd2, mes, okean240, pipbug, qtsbc, sapizcps3, selz80, sol20, uts20, vta2000, zsbc3 [Robbbert].
- Added configurable cursor to the generic terminal device [Robbbert].
- Added rudimentary 8N1 serial I/O to the generic terminal device [Curt Coder].
- Refactored the MSM8251 device to use devcb [Curt Coder].

0.140:
======
- The core is based on MAME 0.140. This incorporates all features of the update to this core [MAME team].
- Fixed Z80-SIO and DMA to allow trs80m2 to boot CP/M and TRSDOS [Curt Coder].
- Fixed sector counting in TeleDisk images [Curt Coder].
- Added automatic sector translation to the basicdsk format when the INTERLEAVE parameter is specified in a FLOPPY_OPTION block [Curt Coder].
- Fixed writing with the WD17xx. When writing, a timed data request will only set the DRQ. All of the other functionality (for reading) will be omitted [Tim Lindner].
- Added support for external character generator ROM to HD61830 LCDC [Curt Coder].
- Introduced more accurate MC6847 palette [Ensjo].
- Refactored the HD61830 LCD to a C++ device [Curt Coder].
- Added call to fetch metadata (in cartslot.c) so correct PCB can be loaded [Tim Lindner].
- Refactored the RCA CDP1802 CPU to a C++ device (COSMAC) [Curt Coder].

0.139:
======
- The core is based on MAME 0.139. This incorporates all features of the update to this core [MAME team].
- Fixed setting of tape flags when reaching end of tape. This prevented the user from using any other tape beyond the first mounted tape image on certain systems [Wilbert Pol].
- Added software lists in xml format for more systems [incog, k1w1, Kaylee, Micko, Fabio Priuli, Barry Rodewald].

0.138:
======
- The core is based on MAME 0.138. This incorporates all features of the update to this core [MAME team].
- Added core support for loading images with shortnames which are recognized by .xml software lists (stored in the hash/ directory). This is currently 
  supported only from command line (eventually, newui and MESSUI support will be added).  For more info and instructions, please check the User Manual at MESS Wiki ( http://mess.redump.net/mess:howto ) [Wilbert Pol].
- Added software lists in .xml format for several systems [incog nito,  Justin Kerk, Wilbert Pol, Fabio Priuli].
- Added preliminary emulation of the MC6852 SSDA [Curt Coder].
- Added preliminary emulation of the 64H156 gate array device (used in C1541 et al) [Curt Coder].
- Added disk change handlers to the Commodore 1541 and 2040 family disk drives. "Edge of Disgrace" demo now loads on C64 [Curt Coder].
- Added JiffyDOS BIOSes to CBM 1541, 1541-II, SX1541, 1571, 1571CR, 1581 and Oceanic OC-118 disk drives [Curt Coder].
- Added 1541 FLASH! BIOS to SX1541 [Guru, Curt Coder].
- Changes to the wd17xx implementation: * Added support for immediate/index pulse interrupts [Curt Coder] * Suppressed extra interrupt after FORCE INTERRUPT ($D0) command [Barry Nelson].
- Implemented Commodore DOS errors 21, 22, and 23 in D64 images. "Microsoft Multiplan" now loads on C64. (bug #1932) [Curt Coder].
- Refactored the MOS6530 device to use devcb [Curt Coder].
- Refactored the Luxor ABC bus into a device [Curt Coder].
- Added preliminary support for disk images in FDI format [Curt Coder].
- Added preliminary RS-232 interface device [Curt Coder].
- Inserts a check whether the get_track_size function is defined in the disk format before calling it. (bug #1934) [Michael Zapf].
- Implemented get_track_size function for D64 and G64 formats [Curt Coder].
- Fixed display of hash (hsi) details in MESSUI software picker (bug #1841) [Robbbert].
- Fixed 8080/8085 debugger when changing A and F registers [Robbbert].
- Fixed cassette crash if the premounted image was moved [Robbbert].
- Fixed cassette crash if the image being recorded was unmounted [Robbbert].
- Several compilation and linking fixes for Visual Studio (bug #1852) [Oliver Stoeneberg].
- Fixed several memory leaks [Oliver Stoeneberg].
- Only schedule a hard reset when the image could be loaded [Oliver Stoeneberg].
- Fixed hang when accessing unaccessible drive in File Manager (e.g. CD-ROM drive with no disc inserted) [Oliver Stoeneberg].
- Fixed assert on shutdown after an image load error [Oliver Stoeneberg].
- Show message about success/failure when loading/creating image during run-time (or print to console when specified on command-line / bug #1031) [Oliver 
  Stoeneberg].
- Check image loading result in device post-init - will now bail out on any image loading error and not just missing/inaccessible files (bug #1955) [Oliver Stoeneberg].
- Fixed Visual Studio specific linker errors with tiny build [Oliver Stoeneberg].
- [C2040] Added DOS 1 FDC ROM (parsed from disassembly) [Curt Coder].
- [MESSUI] Removed "File->Create Image...". It never worked and offered invalid image types. Use Device View to create images (not working either at the moment) [Oliver Stoeneberg].
- [MESSUI] Configuration of screens is working again [Oliver Stoeneberg].
- [MESSUI] Fixed the problem of the paths in driver .ini files being reset to default, or deleted [Robbbert].
- [NEWUI] Removed non-working input configuration artwork support [Oliver Stoeneberg].
- [NEWUI] Avoid duplicated extension when using "Save State As..." and don't carry the default savestate name in-between drivers when using the built-in 
  menu [Oliver Stoeneberg].
- [SYSINFO] Updated sysinfo.dat to latest MESS Wiki contents [Dirk Best, Fabio Priuli, Robbbert, Shideravan].

0.137:
======
- The core is based on MAME 0.137. This incorporates all features of the update to this core [MAME team].
- Refactored MOS6526 CIA interface, added SP/CNT callbacks, and fixed serial port transfer [Curt Coder].
- Cleanups for driver_data and Standard C library usage [Atari Ace].
- Fixed some 'uninitialized variable' errors [Scott Michel].
- Placed floppy drive head initially on track 0 to fix alignment issues with Commodore drives, where physical track 1 is a half track [Curt Coder].
- Implemented 'disk changed' (DSKCHG) floppy drive signal [Curt Coder].
- Implemented floppy drive write protect signal toggling on floppy disk insert/eject [Curt Coder].
- Implemented 'disk double sided' (TWOSID) floppy drive signal [Curt Coder].
- Emulated the following Commodore floppy disk drives at hardware level: 1551, 1571, 1581, 2040, 3040, 4040, 8050, 8250, SFD-1001 [Curt Coder].
- Added read-only support for the following disk image formats: D64, D71, D81, D80, D82 [Curt Coder].

0.136:
======
- The core is based on MAME 0.136. This incorporates all features of the update to this core [MAME team].
- Cleanups (static qualifiers, headers, renames, reduced global symbols, dead code cleanups, brace cleanups, and more multisession friendly init code) [Atari Ace].
- WD17xx write track supported in proper way instead of using more sector writes [Michael Zapf].
- Added F4 character-set viewer to many computers [Robbbert].
- The -listdevices option has been temporarily renamed to -listmedia, until it is merged with MAME's -listdevices command [Robbbert].
- Fixed bug 1770. Listmedia will indicate if a driver has no devices, or if the driver doesn't exist [Robbbert].

0.135:
======
- The core is based on MAME 0.135. This incorporates all features of the update to this core [MAME team].
- Moved floppy implementation to device [Miodrag Milanovic].
- Floppy support for TD0, IMD and CQM [Miodrag Milanovic].
- Cleanups to use more *_NAME and *_CALL macros, headers and const correctness [Atari Ace].
- Cleanups to add static/const qualifiers, and to remove dead prototypes and code [Atari Ace].
- Converted all drivers to use messram device [Miodrag Milanovic].
- Removed XMODEM implementation from serial, was not used, and it should be implemented inside machine software not a MESS code [Miodrag Milanovic].

0.134:
======
- The core is based on MAME 0.134. This incorporates all features of the update to this core [MAME team].
- Floppy cleanup [Miodrag Milanovic].

0.133:
======
- The core is based on MAME 0.133. This incorporates all features of the update to this core [MAME team].
- Added support for passing around 'deleted address mark' information to the floppy system [Roberto Lavarone].
- Changes to the wd17xx implementation: - Added support for head loaded feedback from floppy drive. - Busy flag was cleared too early. - Added support for the WD1771 [Roberto Lavarone].
- Changes to the NEC765 implementation: - Fixed interrupt timing in FM/MFM modes. - NO DATA error flag is no longer set during EOT condition [Curt Coder].
- Added natural keyboard support to KR2376 [Roberto Lavarone].
- Static/const/include improvements [Atari Ace].
- Cleaned up the makefile: grouped drivers by manufacturer, sorted manufacturers in alphabetical order, and moved general use ICs to shared group [Curt Coder].

0.132:
======
- The core is based on MAME 0.132. This incorporates all features of the update to this core [MAME team].
- Converted the WAVE sound device to stereo [Curt Coder].
- Implemented following devices: PIO8155, RP5C01A, HD44102, HD61830 [Curt Coder].
- Changed the Commodore Serial Bus and IEEE Bus implementations to be devices. More work is needed to make the code flexible enough to support all the possible devices which could have been connected to the real thing [Fabio Priuli].

0.131:
======
- The core is based on MAME 0.131. This incorporates all features of the update to this core [MAME team].
- New tool added (castool) for cassette to wav conversion [Miodrag Milanovic].

0.130:
======
- The core is based on MAME 0.130. This incorporates all features of the update to this core [MAME team].
- Made major changes to allow Cartridge slots to encapsulate hardware as devices. Updated the CoCo driver to use this standard system [Nathan Woods].
- Changed the DS1315 implementation to be a device [Nathan Woods].
- Changed the AT45DBxx and SST39VFxx to be a device [Miodrag Milanovic].
- Fixed a bug that overwrote specific error messages with a generic error message when mounting an image [Wilbert Pol].
- Fixed a bug that caused the day of the week to not be properly returned by the DS1315 (bug #1755) [Nathan Woods].
- Global symbol, const/static cleanups [Atari Ace].
- Fixed image loading related memory leaks [Curt Coder].
- Refactored the following devices to use devcb callbacks: ABC77, CDP1861, CDP1864, CDP1871, MC68901, Z80DART, ZX8301, ZX8302 [Curt Coder].
- New centronics printer interface [Dirk Best].
- New PC-LPT device [Dirk Best].
- Replaced all generic tags [Curt Coder].
- Added /PC pin output support to the CIA emulation [Dirk Best].

0.129:
======
- The core is based on MAME 0.129. This incorporates all features of the update to this core [MAME team].
- Changed the 8251 UART implementation to be a device [Nathan Woods].
- Changed the 6551 ACIA implementation to be a device [Nathan Woods].
- Changed the 8521 RTC implementation to be a device [Nathan Woods].
- Changed the 8593 RTC implementation to be a device [Nathan Woods].
- Changed the TMS5501 implementation to be a device [Nathan Woods].
- Changed the MM58274C implementation to be a device [Miodrag Milanovic].
- Changed the TTL74145 implementation to be a device [Miodrag Milanovic].
- Changed the UPD7002 implementation to be a device [Miodrag Milanovic].
- Changed the TMS9901 implementation to be a device [Miodrag Milanovic].
- Changed the TMS9902 implementation to be a device [Miodrag Milanovic].
- Changed the I8271 implementation to be a device [Miodrag Milanovic].
- Changed the WD17XX implementation to be a device [Miodrag Milanovic].
- Changed the NEC765 implementation to be a device [Miodrag Milanovic].
- Changed the SAM6883 implementation to be a device [Miodrag Milanovic].
- Changed the RP5C15 RTC implementation to be a device [Barry Rodewald].
- Changed the 6525 TPI implementation to be a device and added save state support [Dirk Best].
- Various code cleanups [Atari Ace].
- Fixed regression that could cause hanging when creating an image from the command line or the MESSUI (bug #1744) [Nathan Woods].
- Changed cartridges to be MAME devices [Miodrag Milanovic, Nathan Woods].

0.128:
======
- The core is based on MAME 0.128. This incorporates all features of the update to this core [MAME team].
- Refactored ZIP path code out of src/mess/image.c, made more testable [Nate Woods].
- Removed MESS_DEBUG and the TESTDRIVER define and enabled a lot of non-working drivers [Oliver Stöneberg].
- Changed the cassette implementation into a regular mame device [Wilbert Pol].

0.127:
======
- The core is based on MAME 0.127. This incorporates all features of the update to this core [MAME team].
- Natural keyboard support is now implemented completely in the MESS core [Nate Woods].
- Moved image creation format code to be based on the new device model [Nate Woods].
- Changed the cdrom and harddisk implementation into a mame device [Wilbert Pol].

0.126:
======
- The core is based on MAME 0.126. This incorporates all features of the update to this core [MAME team].
- Fixed performance problems with -triplebuffer (bug #1539) [Justin Kerk].
- Code cleanups [Atari Ace].
- Cut down on the amount of time memory_region() is invoked in a loop [Atari Ace].
- Changed the 8530 SCC chip implementation to use MAME's device system [Nate Woods].

0.125:
======
- The core is based on MAME 0.125. This incorporates all features of the update to this core [MAME team].
- Major changes to transition MESS's device system onto MAME's device system [Nate Woods].
- Converted printers, snapshots and quickloads to the new device system [Nate Woods].
- Fixed memory bug in the hash file parsing code that could cause problems in debug builds [Nate Woods].
- Converted CDP1861 and CDP1864 display controllers to devices [Curt Coder].
- Updated WD17xx floppy implementation; busy signal is now set correctly [Miodrag Milanovic].
- Clarified error message when MESS fails to load because of a device that is expected to be present (bug #1493)  [Nate Woods].
- Created a 'dumpkbd' debugger command to dump all natural keyboard info [Nate Woods].
- Fixed a regression in natural keyboard support that could cause certain keys to not be recognized (bug #1564) [Nate Woods].
- Converted HD63450 DMA controller to the new device system [Barry Rodewald].
- New MESS specific OSD call:  osd_get_clipboard_text() [Nate Woods].
- Changed Apple FDC/IWM implementation to be a MAME device. This affects the Apple II, Apple III, Apple IIgs, Lisa and Mac drivers [Nate Woods].

0.124:
======
- The core is based on MAME 0.124a. This incorporates all features of the update to this core [MAME team].
- Updated the Motorola MC68901 Multi Function Peripheral to use the new device system [Curt Coder].

0.123:
======
- The core is based on MAME 0.123. This incorporates all features of the update to this core [MAME team].
- Miscellaneous cleanups (staticization, constification, conditional logging, core callbacks) [Atari Ace].
- Greater use of ATTR_PRINTF [Oliver Stoeneberg].
- Changed use of AY-3-8910A sound chip to AY-3-8912A or AY-3-8913A where appropriate across all drivers [Justin Kerk].

0.122:
======
- The core is based on MAME 0.122. This incorporates all features of the update to this core [MAME team].
- Changed spacing between natural keyboard key names [Nate Woods].
- Added a general 74145 BCD-to-decimal decoder emulation, currently used by the SYM-1 driver [Dirk Best].
- Fixed M65C02 optimization [Peter Trauner].
- Miscellaneous cleanups (staticization, constification, header file, deprecated use of the "Machine" variable, gfxdecode naming, Machine driver, memory management and removed some legacy code [Atari Ace].

0.121:
======
- The core is based on MAME 0.121. This incorporates all features of the update to this core [MAME team].

0.120:
======
- The core is based on MAME 0.120. This incorporates all features of the update to this core [MAME team].
- Fixed multisession crash with the new menu selector (bug #1328) [Nate Woods].
- Changed the reset done when a cartridge is changed from a soft reset to a hard reset [Nate Woods].
- [Messtest] Added selectable bios support (bug #1392) [Nate Woods].

0.119:
======
- The core is based on MAME 0.119. This incorporates all features of the update to this core [MAME team].

0.118:
======
- The core is based on MAME 0.118. This incorporates all features of the update to this core [MAME team].
- Removed use of helper macros to declare input ports [Nate Woods].
- Generic emulation of the DL1416 "4-Digit 16-Segment Alphanumeric Intelligent Display" device has been added. Currently supported is the DL1416T and partially the DL1416B. This kind of display is used by the Rockwell AIM 65 [Dirk Best].

0.117:
======
- The core is based on MAME 0.117. This incorporates all features of the update to this core [MAME team].
- Changed BBC, Coleco, MTX, Sord, and Tutor drivers to use the SN76489 or SN76489A sound chips as appropriate instead of the SN76496 [Justin Kerk].
- Various 64-bit fixes [Oliver Stoeneberg].
- Converted some timer_*() calls to mame_timer_*() [Oliver Stoeneberg].
- Changed devices_allocate() to not use auto_malloc(); a consequence is that a devices_free() call is now necessary (bug #1293) [Nate Woods].
- Removed MESS implementation of the 6532 RIOT because we are now using the implementation by MAME [Dirk Best].

0.116:
======
- The core is based on MAME 0.116. This incorporates all features of the update to this core [MAME team].
- WD17xx cleanups [Nate Woods].
- Fixed a memory leak (bug #1019) [Oliver Stoeneberg].
- Massive update to entire sysinfo.dat file [Fabio Priuli].
- Added many SHA1 hashes [Fabio Priuli].
- Added some missing TESTDRIVERs to messdriv.c that were only specified in the driver source files [Oliver Stoeneberg].
- [Windows] UNICODE=1 fixes [Oliver Stoeneberg].

0.115:
======
- The core is based on MAME 0.115. This incorporates all features of the update to this core [MAME team].
- Added support for noting default RAM options in -listxml (bug #1147) [Nate Woods].
- [Windows] Factored out handling of standard file dialogs, to centralize handling of UTF-8 conversions and compatibility with old versions of
  Windows [Nate Woods].
- Fixed border colors for systems that use the MC6847 video chip and a custom palette [Dirk Best].

0.114:
======
- The core is based on MAME 0.114. This incorporates all features of the update to this core [MAME team].
- Moved per-image working directory handling into the MESS core [Nate Woods].
- Fixed NVRAM folder creation for battery backup (bug #1120) [Nate Woods].
- Fixed a bug that could cause multiple file extensions to be dropped for devices on certain drivers in both MESS and Imgtool (bug #1095) [Nate Woods].
- [Windows] Fixed deadlock (bug #1140) [Oliver Stoeneberg].

0.113:
======
- The core is based on MAME 0.113. This incorporates all features of the update to this core [MAME team].
- [Windows] Fixed a crash that can happen when doing a hard reset when devices are mounted (bugs #1036, #1084) [Nate Woods].
- [Messtest] Added the ability to script hard resets [Nate Woods].

0.112:
======
- The core is based on MAME 0.112. This incorporates all features of the update to this core [MAME team].
- Fixed certain crashes that occured on hard reset (bug #988) [Nate Woods].
- Fixed bug that caused a crash when a device was passed an empty string at the command line (bug #991) [Nate Woods].
- Fixed error reporting when startup images are not properly loaded up (bug #928, #990, #992) [Nate Woods].
- Fixed crash when unmounting images in the old UI file manager (bug #998) [Nate Woods].
- Fixed various memory leaks in debug builds when the debugger is not enabled (bug #1018) [Nate Woods].
- Fixed hash file processing [MJSTY].
- Fixed problem creating printer output (bug #1039) [Nate Woods].
- Removed redundant checks for tilemap allocation failute [Dirk Best].
- [Messtest] Now displays emulation error output [Nate Woods].
- [Windows] Fixed several memory leaks in the Windows code [Nate woods].
- [Windows] COnsolidated some MESS specific OSD code into the MAME OSD core code and removed redundant directory functions [Nate Woods].

0.111:
======
- The core is based on MAME 0.111. This incorporates all features of the update to this core [MAME team].
- Fixed opening up specific images within zip files that contain multiple images (bug #973) [Nate Woods].
- Removed a stub disassembler from the v30mz core, as per MAME conventions [Nate Woods].
- Renamed the "hash_directory" option to "hashpath" [Aaron Giles].
- Fixed regression introduced in 0.110 that caused battery backed NVRAM files to not be written unless the file already existed (bug #974) [Nate Woods].
- Added an SP0256 sound core [tim lindner].

0.110:
======
- The core is based on MAME 0.110. This incorporates all features of the update to this core [MAME team].
- All image file accessing is now done through image.h, rather than using mame_file objects [Nate Woods].
- Introduced an image_ptr() call, which returns a pointer to all image data valid for the lifetime of the image [Nate Woods].
- Added a specialized exit code for MESS-related initialization (bug #931) [Nate Woods].
- Added the ability to disable tests in Messtest [Nate Woods].
- Real time clocks now retrieve default times from the core [Nate Woods].
- I286 fixes [Barry Rodewald].
- Changed image_battery_load() and image_battery_save() to not return error codes; clients of these functions should not act differently if these files can't be loaded or saved [Nate Woods].

0.109:
======
- The core is based on MAME 0.109. This incorporates all features of the update to this core [MAME team].
- Fixed improper use of options.sample_rate in drivers to use Machine->sample_rate (bug #939) [Oliver Stoeneberg].
- Build system cleanups (bug #929) [Nate Woods].
- [Windows] Fixed incorrect "Illegal integer value for threads" error (bug #920) [Nate Woods].

0.108:
======
- The core is based on MAME 0.108. This incorporates all features of the update to this core [MAME team].
- Made cassette .wav file loading slightly more tolerant [Nate Woods].

0.107:
======
- The core is based on MAME 0.107. This incorporates all features of the  update to this core [MAME team].
- Fixed natural keyboard support for certain keys (bug #885) [Nate Woods].

0.106:
======
- The core is based on MAME 0.106. This incorporates all features of the update to this core [MAME team].


0.105:
======
- The core is based on MAME 0.105. This incorporates all features of the update to this core [MAME team].
- Changed how devices work.  Device command line options are now on a per device basis, and now identify the index within a device. Therefore, you now might invoke MESS like this: mess mysystem -flop1 foo.dsk -flop2 bar.dsk. Also, drivers now have the ability to specify the string to be used for the command line option. This allows multiple devices of the same type to be viable (bugs #711, #839) [Nate Woods].
- Fixed WD17XX side select option; this prevented some copy protection schemes from being properly emulated (bug #863) [Nate Woods].
- Fixed a bug that caused image creation to crash in certain situations (bug #858) [Nate Woods].
- Eliminated the unknown and unused -listtext and -createdir command line options [Nate Woods].
- Cleaned up auto_malloc() calls [Oliver Stoeneberg].

0.104:
======
- The core is based on MAME 0.104. This incorporates all features of the update to this core [MAME team].
- Changed how devices are specified. The new system resembles how MAME CPU and sound cores are specified [Nate Woods].
- Added a "input" command to the debugger [Nate Woods].
- Cleaned up natural keyboard code. No longer have QUEUE_CHARS/ACCEPT_CHARS and CHARQUEUE_EMPTY; callbacks are now installed at runtime [Nate Woods].
- Fixed a file manager memory allocation bug [Brian Sturk].
- Moved MESS validity code into a separate file [Nate Woods].
- Enhanced error reporting when loading images (bug #827)  [Nate Woods].

0.103:
======
- The core is based on MAME 0.103. This incorporates all features of the update to this core [MAME team].
- Changed generic cartridge loading so that a ROM_LOAD_CART declaration can be placed in a ROM_REGION. This change makes cartridge loading be specified
  similar to BIOS loading, and makes things cleaner and more declarative [Nate Woods].
- Makefile tweaks (bug #819) [Oliver Stoeneberg].
- Added mandatory attribute to the device tags on the -listxml data [Nate Woods].
- Pruned out some redundant PORT_NAME declarations [Justin Kerk].
- [Messtest] Added a trace command, to emit debug traces [Nate Woods].

0.102:
======
- The core is based on MAME 0.102. This incorporates all features of the update to this core [MAME team].
- Merged COMPX/CONSX into COMP/CONS as per the new convention in MAME [Nate Woods].
- Fixed crash when launching console games without required cartridges (bug #746) [Nate Woods].
- Added RAM configuration info to -listxml [Nate Woods].
- [Messtest] Now fully errors out when a blank screenshot is generated [Nate Woods].

0.101:
======
- The core is based on MAME 0.101. This incorporates all features of the update to this core [MAME team].
- Fixed crashes when running deviceless systems [Nate Woods].

0.100:
======
- The core is based on MAME 0.100. This incorporates all features of the update to this core [MAME Team].
- Removed fringe statetext feature used by a handful of the CBM drivers [Nate Woods].
- Fixed cassette audio sound regression introduced in MESS 0.93 [Nate Woods].
- Fixed and cleaned up mouse code (bug #747) [Nathan Lineback and Nate Woods].
- [Windows] Added a -skip_warnings option [Nate Woods].
- [Windows GUI] Fixed copyright year (bug #740) [Nate Woods].
- Fixed PULUW mnemonic in the 6309 disassembler [Tim Lindner].
- [Messtest] Refactored to use src/xmlfile.c code [Nate Woods].

0.099:
======
- [Windows GUI] Refactored INI parsing out of the main option code. This should make it easier to swap out a different configuration file system. Fixed minor cosmetic bug in the Interface Options dialog (bug #732). Added a feature whereby the GUI will watch the BIOS directories and automatically reaudit files that are added, removed or modified in those directories. Changing BIOS or Samples directories will now only reaudit systems for which they are relevant [Nate Woods].
- [CONCEPT] Fixed a variety of crashes [Raphael Nabet].
- The core is based on MAME 0.99.  This incorporates all features of the update to this core [MAME Team].
- [Messtest] Now raises an error when a blank screenshot is emitted, as that is almost always a sign of an error [Nate Woods].

0.098:
======
- The core is based on MAME 0.98.  This incorporates all features of the update to this core [MAME Team].
- [Messtest] Now will catch osd_die() messages [Nate Woods].
- Removed the 83 track limit on floppy disk images (bug #721) [Tim Lindner].

0.097:
======
- The core is based on MAME 0.97.  This incorporates all features of the update to this core [MAME Team].
- Rewrote Mode 2 support for the 8255 PPI chip. Removed trailing spaces from all input port name declarations [Nate Woods].
- Added CD-ROM device type [R. Belmont].

0.096:
======
- [Windows GUI] Improved error reporting if the emulation fails at runtime. Stopgap measure to fix image loading on the Apple IIgs; this will not work if the Apple IIgs 5.25" disk is ever enabled; in the long run the INI and CFG system must be merged for a real fix (bug #686) [Nate Woods].
- The core is based on MAME 0.96. This incorporates all features of the update to this core [MAME Team].
- Fixed SEXW in hd6309 core. It really is a signed extension of W into Q. Also, it is 4 cycles long. Thanks to David Keil and Sockmaster for pointing this out [Tim Lindner].
- Fixed ESC key under natural keyboard emulation [Nate Woods].
- [Windows] Fixed arrow keys under natural keyboard emulation [Nate Woods].
- Fixed index addressing mode disassembly for the hd6309 [Tim Lindner].
- Merged Apple 2 floppy disk controller and IWM code. The apple2c0 and apple2c3 drivers now work [Nate Woods].

0.095:
======
- Fixed a bug that caused the image info screen to not work properly with multiple images of the same device type (bug #677) [Nate Woods].
- [Windows GUI] Fixed a bug that could caused file filters to contain garbled text (bug #680) [Nick Westgate, Nate Woods].
- [Windows GUI] Fixed a bug that could cause trailing '|' characters in the device view. Fixed a bug that could cause the GUI to internally lose track of which images are selected (bug #675) [Nate Woods].
- The core is based on MAME 0.95.  This incorporates all features of the update to this core [MAME Team].
- Fixed tinymess build [Nate Woods].

0.094:
======
- Classic MESS UI now performs hard resets instead of soft resets [Christopher Stone].
- [Windows GUI] If MESS crashes at runtime, an error message will now be displayed. Previously, the emulation would end and the user would be sent back into the GUI without explanation [Nate Woods].
- The core is based on MAME 0.94. This incorporates all features of the update to this core [MAME Team].
- Devices can now be marked as 'not working' [Nate Woods].

0.093:
======
- The tape control in the classic UI is now only available on systems with a cassette device [Dave Humphreys].
- [Windows] Fixed a bug in the new UI that could cause crashes when customizing analog inputs [Nate Woods].
- [OS9] Fixed a bug that could cause erroneous disk full errors when shrinking a file [Nate Woods].
- The core is based on MAME 0.93. This incorporates all features of the update to this core [MAME Team].

0.092:
======
- [WINDOWS] Toggling the menu bar will no longer change the window size [Nate Woods].
- Created a new Apple ProDOS Imgtool driver (only reading supported for now) [Nate Woods].
- The core is based on MAME 0.92.  This incorporates all features of the update to this core [MAME Team].
- Changed core to support multiple devices of the same IO_* enum value. Note that when this is the case, indexing devices with calls that assume a one to one mapping like image_from_devtype_and_index() are no longer legal [Nate Woods].
- [Windows GUI] Fixed a regression that could cause INI files to be erroneously written to the main directory.

0.091:
======
- [OS9] Fixed a bug that caused problems when dealing with double sided disk images (bug #633) [Nate Woods].
- The core is based on MAME 0.91. This incorporates all features of the update to this core [MAME Team].

0.090:
======
- Creation and last modified dates are now supported by the core [Nate Woods].
- Added readsector and writesector commands to the Imgtool command line app [Nate Woods].
- [FAT] CHD files are now supported. "Tildized" short file names are not generated when file names are short enough. Fixed a bugs that could cause file truncations or deletions to leak clusters [Nate Woods].
- [RSDOS] Bytes #16-31 of a directory entry will now be cleared upon creation [Nate Woods].
- [Windows Imgtool] Fixed a bug that prevented read only files from opening (bug #624). Now handles multiple selections better, as well as cosmetic changes and fixups. Fixed problems with error reporting with CHD hard drive files under certain conditions, and disabled certain functionity when read only files are open [Nate Woods]. Added a new sector viewer feature [Nate Woods].
- The core is based on MAME 0.90.  This incorporates all features of the update to this core [MAME Team].

0.089:
======
- Fixed a bug that prevented keyboard inputs from being customizable in the classic UI [Nate Woods].
- [Windows GUI] Fixed a bug that caused problems when trying to mount three or more images of the same type (bug #622) [Nate Woods].
- [FAT] Rewrote the FAT driver  [Nate Woods].
- [OS9] The Imgtool OS-9 driver now supports writing files [Nate Woods].
- The core is based on MAME 0.89. This incorporates all features of the update to this core [MAME Team].

0.088:
======
- [Windows] Created a new Windows GUI for Imgtool [Nate Woods].
- Added an 'identify' command that can be used to attempt to identify the type of any given image [Nate Woods].
- Preliminary CoCo OS-9 disk image module [Nate Woods].
- The core is based on MAME 0.88. This incorporates all features of the update to this core [MAME Team].
- Fixed a latent problem where part of the natural language system still thought that we use 16-bit ports [Tim Lindner].
- Fixed a bug in core floppy handling that prevented writes to CoCo DMK images from working (bug #607) [Tim Lindner].
- Removed mess/snprintf.c and mess/snprintf.h [Nate Woods].

0.087:
======
- [Windows] Fixed a regression that prevented all customize input, analog controls and configuration dialogs from working on Win95/Win98/WinME [Nate Woods].
- [Windows GUI] ZIP paths prefixed with ./ will now have the ./ ignored. Fixed a problem in hash calculation in which UnmapViewOfFile() was not properly being called (bug #584) [Nate Woods].
- The core is based on MAME 0.87.  This incorporates all features of the update to this core [MAME Team].
- Major changes to the IODevice structure; made major changes to how they are initialized and iterated. The new technique should be much more maintainable in the long run [Nate Woods].
- Hash tags in hash file now can specify a 'type' attribute that indicates what device type to which any given entry pertains [Nate Woods].

0.086:
======
- [Windows] Added an "Analog Controls" dialog to the new UI. The MAME arrow key chars now show up in the new UI remap dialogs [Nate Woods] 
- [Windows GUI] Revamped the software picker; file iteration is now asynchronous and multiple files within ZIPs are now supported. Added a tab view that provides an alternate way to load and unload software images [Nate Woods].
- The core is based on MAME 0.86.  This incorporates all features of the update to this core [MAME Team].
- Fixed default names for input ports that use PORT_CHAR [Nate Woods].
- CDP1802 cycle count fixes [Curt Coder].
- Fixed a regression in which Start and Select buttons were not properly specified. This could result in crashes when customizing the inputs of certain drivers in the new Win32 UI [Nate Woods].

0.085:
======
- [Windows] Modified the new UI input dialogs so that they behave like the MAME UI input dialogs, allowing for multiple input sequences. Fixed a bug when creating disk images in which default extensions were not spcified (bug #576) [Nate Woods].
- [Windows GUI] Fixed some miscellaneous bugs having to do with the software picker settings (bug #568, bug #571) [Nate Woods].
- [Windows GUI] Fixed a bug that could cause the MESS GUI to use 100% of CPU time when idling [Andrew Jenner].
- The core is based on MAME 0.85.  This incorporates all features of the update to this core [MAME Team].

0.084:
======
- Fixed the input device categorization feature so that it was accesible from the classic UI (bug #556) [Nate Woods].
- [Windows GUI] Tree view off by default [Nate Woods].
- [Windows GUI] Refactored picker code to be more modular and used better in both MESS and MAME32. Also fixed a sorting bug (bug #543) [Nate Woods].
- The core is based on MAME 0.84.  This incorporates all features of the update to this core [MAME Team].
- [Windows] Specified the image base for messlib.dll, so MESS should startup slightly faster [Nate Woods].

0.083:
======
- [Windows] Added a "Miscellaneous Inputs" menu item to the Options menu, allowing the user to configure miscellaneous inputs [Nate Woods].
- [Windows] Fixed tab order on custom input dialogs [Nate Woods].
- [Windows GUI] Fixed a small bug on the "Interface Options" dialog (bug #551) [Nate Woods].
- The core is based on MAME 0.83.  This incorporates all features of the update to this core [MAME Team].
- Added a "variable peripherals" feature that allows drivers to identify which inputs pertain to a given peripheral, like a gamepad or a lightgun. Changed A2600 and NES drivers to use this feature (bug #550 was a related issue) [Nate Woods].
- It is now possible to specify IP_NAME_DEFAULT in PORT_KEY declarations; the name of the key will be derived by the unicode values [Nate Woods].

0.082:
======
- [Windows] Fixed a bug in which if the "About MESS" menu item was selected, the help file would come up but be set to an invalid page (bug #537) [Nate Woods].
- [Windows] Fixed a bug in the new UI input dialogs that could cause the scrolling to malfunction if the mouse wheel was used (bug #539) [Nate Woods].
- [Windows] Fixed a bug that caused input items with ampersands in them to have the ampersands dropped (bug #541) [Nate Woods].
- The core is based on MAME 0.82.  This incorporates all features of the update to this core [MAME Team].
- [Windows] Fixed a very subtle bug in Win32 file handling that caused a very serious disk corruption bug in the CoCo driver (bug #500) [Nate Woods and Tim Lindner].
- CDP1802 CPU improvements: * Fixed "Subtract with Borrow" opcode * Fixed reset * Fixed mnemonic IMP -> INP * Added registers N and I * Cleaned up 1802tbl.c with macros * Clock divider -> 8 * Added interrupt handling [Curt Coder].

0.081:
======
- [Windows GUI] Fixed save state loading from the GUI (bug #524) [Nate Woods].
- [Windows GUI] Fixed a stupid error in which one of the help menu items failed (bug #529) [Nate Woods].
- Created a Cybiko image driver [Tim Schuerwegen].
- The core is based on MAME 0.81. This incorporates all features of the update to this core [MAME Team].
- Changed around how CRC files work; changed the format to XML and they are no longer specific to CRC32; SHA-1 and MD5 are now supported. The files are now called 'Hash' files are are in the hash directory [Nate Woods].
- The artwork will now try to load artwork files with the goodname of the image in addition to the other filenames [Nate Woods].

0.080:
======
- [Windows GUI] Fixed a bug by which BIOSless systems would not be filtered as available (bug #516) [Nate Woods].
- [Windows GUI] Fixed a stupid layout bug the Miscellaneous properties tab (bug #518) [Nate Woods].
- The core is based on MAME 0.80.  This incorporates all features of the update to this core [MAME Team].
- Minor tools reorg; tool build rules now moved into the main makefile and the tools directory is no longer used [Nate Woods].
- CHD will now be the standard harddrive format for MESS.  As such, enhancements have been made to MESS's CHD support. Also, the PC driver has been converted over to use the new format and the old raw HD format is no longer supported. Additionally, the MAME hard disk manager (CHDMAN) is now distributed with MESS [Nate Woods].
- Fixed a bug in which low resolution systems (specifically the Channel F and Gameboy) would not properly save screenshots (bug #521) [Nate Woods].
- WAV file code can now handle files where the format header is longer than 16 bytes [Nate Woods].
- Identified a few rounding errors that caused some WAV files to not load in certain drivers [Nate Woods].
- Added a floppy_identify() function to the floppy format code [Nate Woods].

0.079:
======
- [Windows GUI] Minor bug fixes regarding software listing and CRC calculations with respect to clone and compatible drivers [Nate Woods].
- The core is based on MAME 0.79. This incorporates all features of the update to this core [MAME Team].
- As a consequence of the MAME 0.79 core, which has massive changes to the memory system, there is a greater likelyhood of regressions in this MESS release (as with MAME).
- Internal error reporting enhancements for image loading; still some work to do. Introduced automated messtest testing facility, in order to prevent regressions in the future [Nate Woods].

0.078:
======
- [Windows] Fixed the -writeconfig option; was accidently dropped (bug #492) [Nate Woods].
- The core is based on MAME 0.78. This incorporates all features of the update to this core [MAME Team].
- Fixed a cassette crash that affected the TI-99 among other drivers [Nate Woods].
- Changes to device handling in order to support richer image creation [Nate Woods].

0.077:
======
- Major source code reorg and cleanup; uses new generic floppy and parameter system. When a cassette motor is active, another icon will be displayed indicating whether play or record is set. HOME and DEL now have default natural keyboard bindings, to ASCII values 12 and 8 respectively. For systems that use a key with those values, like the CoCo, this change now enables those keys to be used from the natural keyboard [Nate Woods].
- The core is based on MAME 0.77. This incorporates all features of the update to this core [MAME Team].
- Overhaul on generic floppy and cassette image systems; added new generic parameter layer. Read/write cassette images are now supported. Also moved CoCo, Apple II and PC drivers onto the new floppy system. Note that there is potential for breakage here, but in the long run both of these overhauls will be worth it [Nate Woods].
- Fixed cheat engine [Nate Woods].
- The documentation was gutted and integrated with Paul Vince's easyEmu guide. All of the documentation is now under docs/ in the source tree. Platform specific help now goes in subdirectories like docs/windows and so on [Nate Woods, Paul Vince].
- Added some consistency code to sanity check drivers' extension lists (bug #470) [Nate Woods].
- Drivers now have the ability to add custom disassembler procs, to customize the way the cores disassemble code [Nate Woods].
- CRC files will now be read for driver parents (bug #460) [Nate Woods].

0.076:
======
This release was skipped.

0.075:
======
This release was skipped.

0.074:
======
- [Windows] It is now possible to make customized keyboard dialogs for different drivers, in the same way that it is possible to make per-driver customized joystick dialogs [Nate Woods].
- The core is based on MAME 0.74. This incorporates all features of the update to this core [MAME Team].

0.073:
======
- The core is based on MAME 0.73. This incorporates all features of the update to this core [MAME Team].
- Added some bounds checking to opcode fetches (bug #352) [Nate Woods].
- Made some debugger fixes when dealing with 8 or 16 bit numbers [Nate Woods].
- Fixed a bug in the handline of low resolution systems; the UI would not be properly rendered [Nate Woods].
- Adds info regarding device extensions to -listinfo and -listxml output [Andrea Mazzoleni].
- Renamed config.? to crcfile.? [Nate Woods].
- [Windows] When the new UI is active and MESS is paused, MESS now should not waste any excess CPU time [Nate Woods].

0.072:
======
- Added separate configuration menu, to be used for configuration items that were formerly represented with DIP switches [Nate Woods].
- [Windows] Revamped options menu, and added a keyboard customization menu. Also added the ability to create artwork for controller configuration screens (used NES as a testbed) [Nate Woods].
- [MAC] Added preliminary support for MFS images [Raphael Nabet].
- [TI99] Added support for HD images [Raphael Nabet].
- The core is based on MAME 0.72. This incorporates all features of the update to this core [MAME Team].
- Fixed a bug that would cause a hang when parsing certain invalid filenames (for example, D:\FOO\D:\FOO\BAR.ZIP) [Nate Woods].
- Revamped some inputs, added IPT_MOUSE, IPT_START, and IPT_SELECT. The latter two can be used with IPF_PLAYER masks. Also removed legacy IPT_SELECT1-4, and IPT_START1-4 should no longer be used by MESS [Nate Woods].
- Tripled the delay in which wd179x errors are reported. This manifested itself in the CoCo driver by an emulated crash on some versions of NitrOS-9 when run on a write protected image [Nate Woods].

0.071:
======
- [WIN32] Fixed some resizing problems in windowed mode when the system resized the screen (bug #100) [Nate Woods].
- [WIN32 FE] Fixed a bug whereby refreshing would reset the current system to the last saved one (bug #384) [Nate Woods].
- [WIN32 FE] Missing optional BIOSes no longer trigger audit errors (bug #424) [Nate Woods].
- [TI99] Added support for HFDC subdirectories [Raphael Nabet].
- The core is based on MAME 0.71. This incorporates all features of the update to this core [MAME Team].
- Fixed a bug in the code that chooses artwork files for software images (bug #112) [Nate Woods].

0.070:
======
- [WIN32 FE] The emulation will not be started up if any required devices are not specified with an image, like cartridges on a console system (bug #415) [Nate Woods].
- Renamed the ti99 module to ti99_old, since the format it handles has been obsoleted by changes in the ti99 driver [Raphael Nabet].
- Added support for Corvus Concept disk images [Raphael Nabet].
- The core is based on MAME 0.70.  This incorporates all features of the update to this core [MAME Team].
- Modified flopdrv.c to reset pDrive->id_index to zero when head is moved from track to track [Tim Lindner].
- CRC calculation of read/write images has been disabled (bug #416) [Raphael Nabet, Nate Woods].

0.069:
======
This release was skipped.

0.068:
======
- The core is based on MAME 0.68. This incorporates all features of the update to this core [MAME Team].
- Drivers now have a 'compatible_with' field, that specify drivers that have compatible software but are not mere clones [Nate Woods].
- Devices are now referenced by a mess_image pointer, rather than a type/id pair [Nate Woods].
- Enhanced MESS's natural keyboard facility, so that drivers can specify handlers to bypass keypress simulation [Nate Woods].
- Changed device load and unload so that all devices are loaded before machine init, but not necessarily driver init, in response to a bug (bug #366) [Nate Woods].
- [Windows] Default directories for the file dialogs can now be specified on a device type basis at the command line (e.g. -floppydisk_dir). This option will get written out when launched from the GUI, so that per system directories can be recorded (bug #345) [Nate Woods].
- [Windows GUI] Fixed a bug whereby extra software paths with spaces in them would not be properly persisted (bug #369) [Nate Woods].
- [Imgtool] Enabled support for ti99 disk formats with more than 1600 sectors. Added support for v9t9 and pc99 disk image formats (note that these image formats are supported by imgtool, but not by the ti99 driver) [Raphael Nabet].

0.067:
======
- The core is based on MAME 0.67. This incorporates all features of the update to this core [MAME Team].
- VIDEO_UPDATE() now has a do_skip parameter, which enables drivers to inform the core that no significant drawing has occured, and it is safe to skip blitting the current frame [Nate Woods].
- [Windows] New -writeconfig option, that causes the current settings to be written back to an INI on exiting the emulation [Nate Woods].
- [Windows] SSE optimizations to the blitter [Nate Woods].
- [Windows] Fixed bug #344 [Nate Woods].
- [Windows UI] Fixed bug #348 [Nate Woods].
- [Windows UI] Changes made to mounted devices at runtime will now be persist between emulation sessions (bug #228) [Nate Woods].

0.066:
======
- The core is based on MAME 0.66.  This incorporates all features of the update to this core [MAME Team].
- Major change to device handling; all devices now have separate init/exit and load/unload handlers. The former are called on startup/shutdown and the latter are called when images are loaded and unloaded [Nate Woods].
- Moved CRC handling to use the core fileio functions [Nate Woods].
- Added a osd_image_load_status_changed() call, so that front ends can get notified when the load status of an image changes [Nate Woods].
- Introduced a cartslot_load_generic() call, to make simple cartridge image loading a bit simpler [Nate Woods].
- [Win32 GUI] Fixed a bug where screenshots with periods in them would not be loaded properly [Nate Woods].
- [Win32 GUI] Now uses INI files rather than the registry to store settings [MAME32 Team].

0.065:
======
- The core is based on MAME 0.65. This incorporates all features of the update to this core [MAME Team].
- Fixed a fatal bug that could cause crashes when unmounting disk images for certain systems at runtime [Nate Woods].
- [Win32] Fixed a bug that caused us to be looking for the MAME names of sysinfo.dat and messinfo.dat (history.dat and mameinfo.dat) [Nate Woods].
- [Win32 GUI] Fixed a bug that caused software specific screenshots to not show up if clicking between tabs [Nate Woods].

0.064:
======
LICENSE CHANGE WARNING: We are considering changing distribution license, switching to GPL for the whole project and LGPL for some CPU and sound cores. If you contributed code to MESS and are against this change, now is the right time to let us know.
- The core is based on MAME 0.64. This incorporates all features of the update to this core [MAME Team].

0.063:
======
This release was skipped.

0.062.1:
========
- New generic code for emulating terminals, now in use by the Apple I and Kaypro drivers [Nate Woods].
- Added the ability to specify a minimum resolution to display a system, in order to better support low resolution drivers [Nate Woods].

0.062:
======
- The core is based on MAME 0.62.  This incorporates all features of the update to this core [MAME Team].
- Added new snapshot/quickload code, to hide the details about loading snapshots and quickloads from the drivers [Nate Woods].
- Added the ability for systems to override the friendly names of devices [Nate Woods].
- [WIN32] Added the ability to toggle the frames per second view, differentiate between soft and hard resets in certain systems, and to save screenshots in the new UI [Nate Woods].

0.061.2:
========
- Updated all drivers device declarations to new system and removed old dev array [Nate Woods].
- New options.disable_normal_ui and osd_trying_to_quit() functions created, to support the new Win32 UI [Nate Woods].
- Added the ability for drivers to support drawing to the UI in a standard way; which helped fix a problem where the tape graphic was lost in MESS 0.61 (bug #270) [Nate Woods].
- [Win32] New user interface replaces old UI; this is on by default but can be disabled with the -nonewui command switch. This new UI uses Windows native menus and should be much easier to use [Nate Woods].
- [Win32] Help file entries for each system now list the directory name expected by MESS [Nate Woods].
- [Win32 GUI] Fixed an incredibly MORONIC bug where RAM preferences were stored as booleans (!?!) rather than integers (bug #260) [Nate Woods].
- [Win32 GUI] Fixed a bug where certain elements in the treeview lost their first character (bug #262) [Nate Woods].

0.061.1:
========
- The MESS core will not automatically open software images in a clone system drivers directory anymore, under the belief that this functionality belongs in the OSD code [Nate Woods].
- All MESS drivers need a SYSTEM_CONFIG (formerly COMPUTER_CONFIG) parameter specified. Also changed the implementation of the SYSTEM_CONFIG_* macros to provide a more flexible system for representing the data. Added the ability for devices to be declared within the SYSTEM_CONFIG block. Consider the older way of declaring devices  deprecated. Added new functions for iterating through devices, in order to better abstract the internal representation of devices:
	device_first()
	device_next()
	device_find()
Also renamed GameDriver dev field to dev_ in order to break any source dependencies on the dev field [Nate Woods].
- Added new memory pool code that implements memory pools that can be freed in one step [Nate Woods].
- Overhaul of code that maintained the list of loaded images; moved to mess/image.[c|h], and changed the prefix of them from device_ to image_ (as opposed to the  device_* calls that are used to access the IODevice structure). Also, implemented these new calls for drivers to use:
	image_malloc()    (similar to auto_malloc(), but for the lifetime of devices)
	image_strdup()    (uses image_malloc() to allocate strings)
	image_exists()    (tests for the existance of a loaded image)
	image_filetype()  (accessor for file extension)
For the most part, there is no longer any reason for MESS drivers to use malloc() and free(), so calls to these should be eliminated over time [Nate Woods].
- Removed IO_RESET_ALL, as it was broken and an ugly hack to begin with (bug #239) [Nate Woods].
- In the opening display software info box, if the filename and the goodname (as determined by CRC) match up, the goodname will not be displayed in order to reduce screen clutter [Nate Woods].
- Removed all calls to device_close(IO_CASSETTE) in system drivers, instead provided a cassette_exit() function that drivers can specify, removing this responsibility from system drivers [Nate Woods].
- Implemented preliminary paste functionality; it attempts to decode the driver's input tables and attempts to create a mapping between ASCII and input signals. This process is far from perfect at this time. In the future, it will be possible for drivers to customize the way that paste works for a more perfect translation [Nate Woods].
- Added new PORT_KEYx macros that should be used in place of PORT_BITX when mapping keyboards. These macros also specify unicode values for the input codes for natural keyboard support [Nate Woods].
- Added a new osd_keyboard_disabled() call.  If this returns non-zero, then the core will supress input of type IPT_KEYBOARD. This is useful if a front end wants to implement a natural keyboard [Nate Woods].
- Added a new osd_parallelize() call, for basic SMP acceleration [Nate Woods].
- Renamed osd_dir.h to osd_mess.h, to further reflect that it is more than just directory calls [Nate Woods].
- [Win32] New -threads parameter, to specify the maximum amount of threads used for osd_parallelize(); defaults to the number of processors in the system [Nate Woods].
- [Win32 GUI] Printers are now treated separately from the other devices; you do not specify printer ouput like you do disk images. Printer output now gets specified in the configuration tab of the system properties. The added benefit is that the same output file can be used repeatedly [Nate Woods].
- [Imgtool] Imgtool floppy drivers can now be "templated"; a driver for a particular file system format can point at a structure that lists allowable disk image  formats. This allows for the addition of new disk image format drivers without touching the imgtool drivers [Nate Woods].
- [Imgtool] Fixed a bug in the FormatDriver handling that caused some file puts to not be properly written [Nate Woods].
- [Imgtool] Added Color Computer DMK disk image support [Tim Lindner].

0.061:
======
- The core is based on MAME 0.61. This incorporates all features of the update to this core [MAME Team].
- Converted numerous drivers to use the auto_malloc() and auto_bitmap_alloc() calls, and also to use generic_bitmapped video calls [Nate Woods].
- Added new videomap code that makes it easy to support arbitrary video modes in a fast, efficient manner. This takes the place of the old rasterbits/rastertrack code; converted m6847, CoCo 3, and Mac video hardware to use videomap [Nate Woods].
- Added a new disk format handling system that allows disk formats to be generically specified in such a way usable by both MESS itself, and imgtool [Nate Woods].
- Fixed a bug in the wave code that could cause a crash if a cassette image is unloaded. Added a [none] entry in the File Manager, that allows the user to unload an image. The file manager will now default to the directory that a preexisting image resides in. Fixed some bugs that caused the battery backups in the NES and GB systems to be placed in odd directories. Added palette_set_colors() function to make it easy to initialize a palette with a predefined list of colors. Readded record/playback support. Added artwork_use_device_art() to the MAME core to support Vectrex style artwork [Nate Woods].
- Fixed bugs #192 and #200 - remember that:
  1) In File Manager you can press SHIFT+ENTER to manually edit a filename
     and CTRL-Y to delete the field.
  2) In the file selector you can edit the file specification and you can use
     SHIFT+UP/DOWN as PgUp/PgDown and
     CTRL+UP/DOWN as Home/End. [Stefano Priore]
- With help from SockMaster, fixed some very subtle timer bugs in the m6809 and hd6309 CPU cores [Nate Woods, tim lindner, John Kowalski].
- New OSD function:

		void osd_device_eject(int type, int id);

  It sets a device image to NULL, as would a device_filename_change(type, id, NULL), but enables osd code to update its osd structures. The mac and lisa drivers will use this function instead of device_filename_change to eject floppy disks. This function is needed because the mac osd code keeps track of each selected file, and the data went out of sync when device_filename_change was called [Raphael Nabet].
- [GUI] Fixed a very minor bug that caused the software list view background to not be updated at the same time as the system list if the snap directory was changed [Nate Woods].

0.060:
======
This release was skipped.

0.059:
======
This release was skipped.

0.058:
======
This release was skipped.

0.057:
======
This release was skipped.

0.056.1:
========
- The core is based on MAME 0.56. This incorporates all features of the update to this core [MAME Team].
- The core now supports configurable RAM sizes; drivers can expose RAM configurations (e.g. 4k, 16k, 32k etc) and on Windows, this setting is exposed through a command line switch -ramsize [Nate Woods].
- Fixed a bug that prevented introducing completely new software images when there was already one of that particular image type already loaded [Nate Woods].
- Added some infrastructure for automated tests [Nate Woods].
- Fixed a bug in tape handling that would cause rewind and fast forward to not work if the system was stopping the tape (bug #168) [Nate Woods].
- Added battery_save() and battery_load() functions to abstract handling of battery-backed NVRAM on cartridges [Nate Woods].
- Modified osd_fopen() with OSD_FILETYPE_NVRAM so that the filename parameter can specify subdirectories (for use by battery_save() and battery_load() [Anthony Kruize, Nate Woods].
- [Windows] Fixed a bug in the core that caused the MESS process to not die if the close box was pressed, and the UI was disabled (bug #170) [Nate Woods].
- [Windows] Fixed a bug in the GUI that caused heap corruptions [Nate Woods].
- [Windows] Fixed a bug in the GUI that caused auditing to report BIOS-less console systems as missing BIOSes [Nate Woods].
- [IMGTOOL/Windows] Added wildcard support in the put command, since the Windows shell doesn't do this by default [Nate Woods].
- [IMGTOOL/FAT driver] Fixed bug where files would get stored into a FAT image without forcing the filename to upper case [Nate Woods].
- [MacMESS] Added configurable RAM sizes and dipswitch controls to the MESS tab [Tim Lindner].

0.056:
======
- The core is based on MAME 0.56. This incorporates all features of the update to this core [MAME Team].
- [Windows] The CONSOLE and GUI (the former MESS32) versions of MESS have been combined into one distribution [Ben Bruscella, Nate Woods, with a Huge thanks to MAME32 team, especially: Michael Soderstrom, Mike Haaland, and Chris Kirmse].
- [Windows GUI] CRC directory now configurable from MESS GUI [Nate Woods].
- MESSRoms now recognizes more ROMs [Krzysztof Strzecha].
- Switch -a for MESSRoms, which allow to scan files of all sizes [Krzysztof Strzecha].
- Removed extension renaming code [Nate Woods].
- Combined OSD_FILETYPE_IMAGE_R and OSD_FILETYPE_IMAGE_RW image load types into OSD_FILETYPE_IMAGE [Nate Woods].
- Converted a few drivers (namely Amstrad, Atom, Exidy, Galaksija, Microbee, Microtan, Sord, Spectrum, TI99) to use the new cassette loading APIs [Nate Woods].
- Added new core file (led.c) for display of leds and segmented displays. Also converted Chess Champion drivers to use these calls [Nate Woods].
- On the images screen before emulation starts, only the base name of an image will be displayed (bug 34) [Nate Woods].
- [Windows] Added support for transparent zip paths (e.g. C:\imgs\mule.zip\mule.atr) [Nate Woods].
- Added a call to flopdrv.c to allow the driver to manualy set the number of tracks and sides [Tim Lindner].

0.055:
======
This release was skipped.

0.054:
======
This release was skipped.

0.053:
======
This release was skipped.

0.037b16 (0.52):
================
This release was skipped.

0.037b15 (0.51):
=================
- For Lee Ward (lee@the-mothershp.fsnet.co.uk) *If you know Lee, please contact us...
- The main binary distribution of MESS is now a completely new win32 console port. Some of the benefits are: support for full screen hardware stretching (if you have a decent video card), and a much better command line / options file parsing (ported from xmame). To create the mess.ini configuration file on startup, use the -createconfig option. -showusage lists all available options [Aaron Giles, Bernd Wiebelt, Lee Ward, Ben Bruscella].
- The core is based on MAME 0.37b15. This incorporates all features of the update to this core [MAME Team].
- Added support for the SUPPORT_ODD_WORD_SIZES macro, needed by ApexC and PDP 1 [Nate Woods].
- CoCo cartridge code has been moved to its own file [Nate Woods].
- The switches "-cylinder", "-punchcard", "-punchtape" and "-parallel" are now recognized. At the moment "-parallel" is not used by any driver, but has been reserved for future expansions [JoJo].
- Huge rewriting/rationalization of the device handling/image loading code [Ben].
- Logging routines have been fixed [Ben].
- Added Jurgen's tool to create generic CP/M disk images to the tools/ directory [JoJo].
- Imgtool's dir command now displays CRC32s [PeT].
- MESS now supports the new TINY_COMPILE model [Ben].
- MESSRoms now recognizes more ROMs [PeT].
- An init function has been added to the M65CE02 CPU emulation [PeT].
- M, D and V registers support in the state saving engine and MD register's behaviour fixed in the HD6309 code [Tim Lindner].
- Z80 CPU now behaves correctly after an IRQ: this fixed a bug in PC8801 emulation [Sean Young].
- Added save sate support to TMS34010 CPU [Nate Woods].
- Many fixes to the SC61860 CPU. H is treated now as an internal register [PeT].
- Added a static memory interface, interrupt functionality and runtime loader support to the F8 CPU core [PeT].
- Fixed the DIV1 instruction Q bit generation for the SH2 CPU [James Forshaw].
- Alias handling removed and wont be back [Ben].

0.037b14 (0.50):
================
This release was skipped.

0.037b13 (0.49):
================
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b13. This incorporates all features of the update to this core [MAME Team].
- [IMGTOOL] Added special support in imgtool to separate floppy image formats from the file system. Also added a test command that only gets built in debug builds that runs a set of test cases on an imgtool driver [Nate Woods].

0.037b12 (0.48):
================
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b12. This incorporates all features of the update to this core [MAME Team].
- [IMGTOOL] Added support for NC100/NC200 PCMCIA Ram Card images. Card can be formatted and files can be transfered to and from card filesystem [Kev Thacker].
- [machine/z80fmly] The Zero count/Timeout output pulse was very short. Now the pulse is active for longer. Required for KC85/4 colour flash to work! [Kev Thacker].

0.037b11 (0.47):
================
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b11. This incorporates all features of the update to this core [MAME Team].
- [Intel 8271 Floppy disc controller] Writing should work now [Kev Thacker].
- [src/machine/z80fmly] Added support for BSTB and ASTB inputs for Z80 PIO. These are required by KC85/4 and KC85/3 systems. Added code to execute callback for
  BRDY and ARDY outputs [Kev Thacker].
- [IMGTOOL] Fixed a bug that caused crashes when parameters to create were not properly specified [Nate Woods].

0.037b10 (0.46):
================
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b10. This incorporates all features of the update to this core [MAME Team].
- [IMGTOOL] Added filter support, and filters that translate endoflines, as well as the startings of BASIC tokenization. Also updated the docs [Nate Woods].

0.037b9 (0.45):
===============
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b9. This incorporates all features of the update to this core [MAME Team].
- The M6847 interfaces were given a facelift, and now more correctly mimic the signals on the chip [Nate Woods].

0.037b8 (0.44):
===============
- Several drivers may be broken due to the MAME memory handling changes. And as a result, the Amiga has been temporarily removed.
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b8. This incorporates all features of the update to this core [MAME Team].
- Pure DOS mode crash fixed [Ben Bruscella].
- SID6581 Approximation: Interface changed, partitioned, unused parts removed, cleaned up support for multiple chips finished [PeT].
- Imgtool now supports Virtual MSX Tape Archives (converts them to .cas files) and imgtool can convert .cas to .wav files [Sean Young].

0.037b7 (0.43):
===============
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b7. This incorporates all features of the update to this core [MAME Team].
- Fixed write protect reporting in WD179x [Kev Thacker].
- Added "Disk Control" menu to the user interface. With this you can enable/disable a drive (e.g. this is comparable to connecting a disconnecting a drive to the real machine), set write enable/write protect of the disc, and selecting between disc image and real drive access. Real drive access is currently limited to the drivers which use the WD179x, NEC765 and Intel 8271 floppy disc controllers [Kev Thacker].
- Removed hard-coded disk image format in the WD179x code. This floppy disc controller emulation uses the same disk image access as the NEC765 and Intel 8271. It can now support different disk image formats, and as before real discs in a real drive [Kev Thacker].
- NEC765 and Intel 8271 can now use real disc access in DOS version of MESS. Run under pure DOS, or in a Windows 95 DOS box mode for this to work correct [Kev Thacker].
- Imgtool now supports CoCo cassette files (both .CAS and .WAV). This is done through a framework that makes it easy to implement cassette images in general. Also, the CoCo RSDOS disk handling is now a bit more tolerant [Nate Woods].
- Updated Intel 8271 floppy disc controller emulation [Kev Thacker].
- CRC and sysinfo updates will now be appearing at the official MESS homepage: http://mess.emuverse.com.
- Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com).
- M6510 cpu core added first write cycle for NMOS memory modifying instructions [Peter Trauner].
- CDP1802 cpu core [Peter Trauner].

0.037b6 (0.42):
===============
- Note: DELETE mess.cfg!
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b6. This incorporates all features of the update to this core [MAME Team].
- [DOS] File handling has CHANGED!  heres a brief description: MESS supports a softwarepath= global setting (in the [directories] section of mess.cfg) and this is overrideable per driver (in the [driver] sections) Default for softwarepath= is .;SOFTWARE OSD_FILETYPE_ROM uses the biospath= setting from now on (MAME rompath=) Default for biospath= is .;BIOS. OSD_FILETYPE_IMAGE_R and _RW use the softwarepath= settings from now on, so BIOS ROMs can be kept separate from carts, floppy, harddisk etc. images. The search paths/files are for a hypothetic system driver 'sys':

  extensions of carts for sys = .rom, .bin
  softwarepath = .;x:/software

  mess sys -cart cart

  ./cart
  ./sys/cart
  ./cart.zip containing cart
  ./sys/cart.zip containing cart
  x:/software/cart
  x:/software/sys/cart
  x:/software/cart.zip containing cart
  x:/software/sys/cart.zip containing cart
  ---> assume it failed, because the real extension is .bin
  ./cart.rom
  ./sys/cart.rom
  ./cart.zip containing cart.rom
  ./sys/cart.zip containing cart.rom
  x:/software/cart.rom
  x:/software/sys/cart.rom
  x:/software/cart.zip containing cart.rom
  x:/software/sys/cart.zip containing cart.rom
  ---> still not found, so image_fopen() tries .bin now
  ./cart.bin
  ./sys/cart.bin
  ./cart.zip containing cart.bin
  ./sys/cart.zip containing cart.bin
  x:/software/cart.bin
  x:/software/sys/cart.bin
  x:/software/cart.zip containing cart.bin
  x:/software/sys/cart.zip containing cart.bin

  As you can see it might take quite some time until an image is found, with two directories on the path already, that's why the main softwarepath= setting should be
  short. If you have many, different drives/paths where you store software, you better use the system specific overrides like this:

  [sys]
  biospath=x:/sys
  softwarepath=x:/sys

  [sys2]
  biospath=roms
  sofwarepath=z:/somewhere/sys2

  However, if you have a 'complete set' you would be done (mostly) if you only change the [directories] setting for biospath= and softwarepath= to the drive/path where your mirrored files are. One extension to the searches that might make sense would be to also look into a path/ext/cart.ext directory, that means you could have  subdirectories for eg. dsk, cas, vz, bin or whatever the extensions of the system are [Juergen Buchmueller, Ben Bruscella].
- Many fixes to cheat engine [Cowering].
- MESS CRC files now use 'Good' database CRCs where applicable [Cowering].
- NES now gets correct mapper info from nes.crc (if present) [Cowering].
- Genesis/Megadrive now gets correct CRC info for .smd and .md files [Cowering].
- New function osd_select_file() added [Brad Oliver].
- IMGTOOL: Fixed a bug that caused saving a file into an image to error if that file was in a different directory. Also fixed a bug that would cause crashes when reporting certain types of errors [Nate Woods].
- CRC and sysinfo updates will now be appearing at the official MESS homepage: http://mess.emuverse.com.
- Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com).

0.037b5 (0.41):
===============
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b5. This incorporates all features of the update to this core [MAME Team].
- NEC765: improved and more commands added, supports DMA access. Can handle images with copyprotection. A lot more software should now run on the systems that use it (PCW,Spectrum, Amstrad,PC and PCW16) [Kev Thacker].
- 6522via Bug fix [Gordon Jefferyes].
- Optional ROM support. It can be used in MESS for BIOS ROMs for peripherals for which you'd like to provide a valid crc32 without requiring the ROM [Brad Oliver].
- Imgtool: Added a CRC command to imgtool so output image information in .crc format basename()'s the command name when printing error info, Fixed a typo in the usage examples, added a very rough imgtool.txt to document imgtool [Nate Woods].
- Added new endian macros [Nate Woods].
- DeviceIO bug fixed for most drivers [Juergen Buchmueller].
- CRC and sysinfo updates will now be appearing at the official MESS homepage: http://mess.emuverse.com. Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com).

0.037b4 (0.40):
===============
- Note: .inp record/playback does still not work currently.
- The core is based on MAME 0.37b4. This incorporates all features of the update to this core [MAME Team].
- TOOLS: Created an "osdtools.h" file that implements cross platform defininitions for the tools (dat2html, imgtool, etc); added a info function (info is showed before the file listing in the dir command), added extract command to allow conversion between file formats with create and extract functions, added stream_clear to clear files (fopen(...,"w+")), added some parameters to the create and put commands, c64crt c64 cartridge file support, more for professional use (c64 cartridge dumper) and t64 c64 tape format support [Peter Trauner].
- Implemented a new palette in tms9928a, computed from TI datasheet [Raphael Nabet].
- Cassette/wave code: Adds the ability to mute the cassette audio output. This is done by setting bit 1 of the device status [Nate Woods].
- SC61860 CPU core [Peter Trauner].
- Fixed CLR bug in m6809 core [Nate Woods].
- Using the C 68k core. Macplus now works.
- Extensive CRC updates [Chris Henry, Stefano Priore, Cowering].
- SysInfo.dat documentation update [Chris Henry].
- Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com).

0.037b3 (0.39):
===============
- The core is based on MAME 0.37b3. This incorporates all features of the update to this core [MAME Team].
- Bug fix in wd179x controller [Nate Woods].
- Bug fix in the wave handler (when image is closed, osd_fclose() is now called on the file descriptor [Nate Woods].
- Bug fix in the tape control that cause the control to give percentage erros when using *.cas files [Nate Woods].
- ImgTool: Preliminary PC Hard drive driver, better error reporting, a new command ('good') that functions as a rom sorter (a la GoodNes). CRC information is retrieved
from the standard MESS CRC files, the 'crc' command is replaced with 'info'. This new command will return data regarding the image if MESS's CRC files are aware of the
  image. dir and del now can take multiple arguments [Nate Woods].
- Extensive CRC updates [Kurunir, Chris Henry].
- SysInfo.dat documentation update Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com) [Chris Henry].

0.037b2 (0.38):
===============
- The core is based on MAME 0.37b2. This incorporates all features of the update to this core [MAME team].
- TOOLS: Disk Utility added (mkhdimg.exe) which will create variable sized HD images for use in MESS.  Can create images from 9,216 bytes to 142,606,848 bytes without problems. The Western Digital 1004A that is emulated in MESS is limited to 1024 Cylinders and 16 heads. The sector size is limited to 512
  bytes as well as the sectors per track being limited to 17, this is also due to the WD1004A's limitations [Randy Rains].
- TOOLS: Generic image tool added (imgtool.exe) with the following features: *MAME/MESS style driver architecture; where the image formats are contained in drivers. Currently, the only driver is for CoCo .DSK disk images, but there could be more. Runs on the command line. Commands for listing image  contents, retrieving and storing files. Supports images in .ZIP files. "Engine" is separate from the "shell"; which gives the potential for front ends for
 those who don't like command lines [Nate Woods].
- Disk write support for AMSTRAD CPC [Oscar Martín González].
- Wave timer fix [Oscar Martín González].
- m6510t/m7501/m8502 CPU cores added [Peter Trauner].
- Extensive CRC updates [Kurunir, Chris Henry].
- SysInfo.dat documentation update Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com) [Chris Henry].

0.037b1 (0.37):
===============
- The core is based on MAME 0.37b1. This incorporates all features of the update to this core [MAME team].
- Alias bug fix [Norberto Alfredo Bensa].
- Systems with no ROMS but a ROM_REGION defined (eg Genesis, NES) are now correctly identified. Clones with no differing roms from the main set are correctly identified (eg. the Laser 210 clones etc.) [David Robertson].
- Extensive CRC updates: SysInfo.dat documentation update [Sean Young, Chris Henry, Gerardo Jorrin, Peter Trauner, Cowering].
- Please send all CRC/sysinfo file contributions to Chris Henry [Thierry Schimbi, Chris Henry, Kev Thacker, Raphael Nabet].

0.036:
======
- MESS is now developed and distributed as a MAME source override, hence the MESS version number leap ;-). .inp record/playback does still not work currently.
- [DOS] Images specified at the command line must now be accompanied by the device they are to be attached to, and will not be loaded unless the device is specified *and* supported by that system.  Eg, to attach a cartridge for the NES, you must specify: MESS nes -cart galaga.nes. This may affect the usage of frontends, however it brings the MESS command line into sync with the well accepted MAME convention for command line usage.
- Added support to automagically append or replace extensions for files opened with image_fopen(), which means, if opening a given filename fails (also from the optional clone_of parent driver), the code replaces or appends the next available extension and tries again. Therefore, there is no need to  actually supply the file extension to the command line [Juergen Buchmueller].
- The core is based on MAME 0.36 final. This incorporates all features of the update to this core [MAME team].
- New option -listdevices. Use this to obtain valid device names for use at the command line to attach images to the system.
- Extensive CRC updates [Sean Young, Chris Henry, Gerardo Jorrin, Peter Trauner, Cowering]: SysInfo.dat documentation update [Thierry Schimbi, Chris Henry, Kev Thacker, Raphael Nabet]. Please send all CRC/sysinfo file contributions to Chris Henry (battlepriest@hotmail.com).
- Small bug in the 6522 emulator fixed [Gordon Jefferyes].
- Important inclusions for this release: *wave sound interface and IODevice handler *speaker sound driver (replaces the buzzer code) *preliminary file manager *mess_printf() which checks for gui_host. Check the UI (TAB) for handling options for most of the above.
- Generic M6847 code  [Nate Woods].
- Wd179x disk access update.  The correct sector size is now calculated for the nec765 real FDD access.  Now it is calculated from sector size. Loading from real disc works on Enterprise emulator [Kev Thacker].
- void via_set_clock(int which,int clock); added to 6522via.c. This can be called after via_config() to change the clock, otherwise the clock speed of CPU1 is used [Mathis Rosenhauer].
- mess/msdos.c & mess/msdos.h created for MESS DOS specific functions. Note: Each port is now responsible for handling these functions.
- GAME_ALIAS flag added. Use this when specifying a clone system which requires the same romset as another [Juergen Buchmueller].
- System documentation is now contained in sysinfo.dat and sysinfo.htm. Use dat2html to generate sysinfo.htm from sysinfo.dat [Chris Henry, Juergen Buchmueller, Ben Bruscella].
- You can now specify switches on the commandline in which case every image name following them goes to that respective slot, regardless of it's extension.  See mess.txt for some examples [Peter Trauner, Juergen Buchmueller].
- [DOS] New options for IMAGES to be opened, namely OSD_FOPEN_READ, OSD_FOPEN_WRITE, OSD_FOPEN_RW, and OSD_FOPEN_RW_CREATE. Check mess.h for a description of what they are used for. Be sure to use these semantics when handling read/write files [Juergen Buchmueller].
- Slight changes to the PDP1 driver.
- [DOS] TI99 keyboard fix! [Raphael Nabet].
- System ROM (Image) name matched from CRC database file on startup (file stored in CRC directory).
- You can now specify in MESS.CFG the *exact* directory a rom is which you want to run.  no longer necessray to have a directory with the same name as the system [Juergen Buchmueller].
- Zipped cart and image support added. To use, make sure that the zip has the same name as the file in the zip. (eg) for a coleco CART called  "venture.rom", zip to "venture.zip".  When running MESS, type "mess coleco venture.rom". MESS will then load "venture.rom" from "venture.zip". Any system roms can also be zipped and placed anywhere in you ROMPATH coleco.rom in coleco.zip [Ben Bruscella].
- GAME_COMPUTER flag added. Use this to specify that the system requires full keyboard emulation. Emulated Computer systems now use the scroll_lock key to toggle the keyboard emulation. When on, MAME keys (such as "P" for pause) are disabled, until toggled with the scroll_lock [Juergen Buchmueller].
- [DOS] MAKEFILE/compilation changes. To compile MESS, simply make sure you can compile MAME. Then, apply the MESS source over-ride and:
   1. Rename MAKEFILE to MAKEFILE.mm
   2. Rename MAKEFILE.MES MAKEFILE
   3. Type MAKE
- There have been major changes to the Driver structures and loading procedure.
- Here is an overview: Every game driver's struct GameDriver (src/mess/systems/*.c) is now defined using one of four macros COMP/COMPX or CONS/CONSX.
COMP is for computers and CONS is for consoles. The X versions allow specifying additional flags (GAME_NOT_WORKING ect.) Every game driver specifies it's peripherals in an array of "struct IODevice" elements. rom_load and rom_id fields were moved into that list, together with the number of devices and the known file extensions for images of that type. MAME's src/driver.h now only contains one pointer to this list of devices, all of MESS' extra fields are gone.
Old:
#ifdef MESS
    int (*rom_load)(void);
    int (*rom_id)(const char *name, const char *gamename);
    const char **file_extension;
    int num_of_rom_slots;
    int num_of_floppy_drives;
    int num_of_hard_drives;
    int num_of_cassette_drives;
#endif
New:
#ifdef MESS
    const struct IODevice *dev;
#endif
- The global rom_name[], floppy_name[], hard_name[] and cassette_name[] arrays are gone! Instead each machine driver (src/mess/systems/*.c) should specify an init function for every device it supports. This init function is called during the startup with an id (0 to max instances of the device - 1) and a filename. rom_load is called very early when a driver is started. It is the 'init' function for the device type IO_CARTSLOT, so the previous statement applies here too. The rom_id function pointer moved into the struct IODevice too. Every device can have a id function, so if it is possible to identify
eg. a floppy disk, harddisk, cassette ect., you should provide the identifying functions and put them in this field in your systems/driver code. The id function return value is sort of TRUE/FALSE, ie. non zero means image is ok for this device, zero is not recognized. The IODevice contains an "void (*exit)(int id);" entry, so each driver could (and probably should) handle shutting down the various dvice instances. The exit entries are called from src/mess/mess.c exit_devices(), which is called from src/mame.c shutdown_machine(). Startup handling moved from src/mame.c to src/mess/mess.c In the first stage load_image() is called. The images specified on the command line are parsed in mess.c now, and a list of "struct ImageFile" entries in the  GameOptions is set. This struct contains a "char *name" and an "int type", where type should be set to one of the IO_CARTSLOT, IO_FLOPPY ect. values.
GUI ports could use this to store some file selection lists together with the type of files selected. The DOS port stores image names from the command line (*argv) in this array, and the type of image is determined this way: 1st: user specified a type using a switch before a (list of) name(s). For DOS this looks like "mess system -flop test -cart rom1 -cart rom2" 2nd: the extension of the filename matches one of the MessDevice entries of the driver which is started. So if a driver defines "cas" for it's IO_CASSETTE device and "dsk" for it's IO_FLOPPY device, the command line "mess driver a.dsk b.cas" will be sufficient. In the second stage during startup, the get_files() function is called and images are sorted into some (static) arrays of names in mess.c. This is to allow easier/faster access to them and maybe useful for swapping the names and calling init_<device> again. The third stage now walks through the list of devices of the driver which is to be started and calls it's init functions with the the names from the arrays. If the driver returns non zero, the startup process is terminated here.

0.002b4:
========
- The DOS version is now compiled with GCC 2.8.1 and using Allegro 3.0 + WIP (30th May).
- [DOS] To improve portability, the makefile is more conservative, using the -pedantic and -Wshadow switches. Note that to compile with these switches, several changes had to be made to allegro.h, which is included.

0.001:
======
- First version, based upon MAME 0.31 source


© 2011/2015  AntoPISA