MESS Source Changes (this file is Work In Progress)
===================================================
Edited by AntoPISA
Info from Official MESS whatsnew.txt

Right from 0.100 to 0.149

Latest editing: June 12, 2013


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.037b2:
========

- 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:
========

- 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/2013  AntoPISA