0.1
	- initial release

0.2
	- make interval configurable (second commandline parameter - optional / 0 = disabled [default = 100])
	- make ftr configurable (third commandline parameter - optional / only values >= allowed [default = 2])
	- make gamelist file (-list output) configurable (fourth commandline parameter - optional)

0.21
	- the ftr commandline parameter was ignored

0.22
	- use -listfull instead of -list (easier to parse and -list is obsolete)

0.23
	- disable "11beat", because it causes the system to hang
	- added file for stdout logging

0.24
	- check returncode of MAME and write all games with != 0 into crash.txt

0.25
	- always flush the crash.txt
	- do not write games with returncode 1 (roms missing) to crash.txt
	- do not stop, when "11beat" is reached

0.30
	- added parsing of -listxml format (requires way more memory)
	- disabled "tank8a" and "tank8b", because they cause the system to hang
	- log all untested game (MAME returncode 1 / missing roms) to untested.txt
	- only print information about custom game and stdout file, when the supplied parameters aren't empty

0.31
	- fixed problem with MESS when using -listxml output

0.32
	- forgot to skip "orbit" as well, because it also casues a hang
	- changed messages for games, that are skipped

0.35
	- fixed some potential unbounded string operations (and I just read a book about secure coding - geez!)
	- added comparison of -ftr auto snapshots (by file size and by existence so far)
	- renamed all output files - they now all have the prefix "mrt_"

0.40
	- changed snapshot comparison from simple filesize fix to IDAT size and CRC check
	- UNIX compilation fixes (thx .stl)
	- accidentally did snapshot comparison on every returncode, should only be done when game returned 0 (OK - snapshot should be there)

0.45
	- now also uses "autosave" for games, that support it (enabled by default / only works with -listxml output)
	- removed "tank8a", "tank8b" and "orbit" from the ignored games list, because they don't cause a freeze in 0.101u5 anymore
	- added a simple HTML report, that is written to "mrt_report.html" and will only have the different snapshots included	(report only works in IE so far)

0.46
	- do not call unrunnable games (e.g. bioses in MAME) when -listxml is used
	- check with all available ramsizes in MESS when -listxml is used (not working properly with snapshots yet)
	- the HTML report now passed the W3C Markup Validation Service (http://validator.w3.org/)

0.47
	- made calls with ramsize optional
	- clear all driver-specific files between calls when running driver multiple times (e.g. ramsize checks)
	- rename snapshots for ramsize checks (postfix _ram<count>)
	- avoid some additional ramsize checks - only games with more then one ramsize are now checked, but the one is assumed to be the default one

0.48
	- numbering will now be incremental - no more big jumps for big changes
	- clear all the driver-specific files before each "normal" call
	- added basic cart support for MESS - put a file named "mrt_cart_<drivername>.txt" where mame_regtest is run form (no snapshot comparison or clone support yet / only works with -listxml output)

0.49
	- fixed stupid bug with unrunnable games in -listxml output causing mame_regtest to hang
	- disable autosave by default as it's not properly handled yet

0.50
	- added commandline option to only check games in a specific sourcefile
	- dropped -listfull format (commandline parameter still exists, but is ignored)w hich allowed a source cleanup
	- check driver_info before processing it

0.51
	- added support for floppies (same as -cart support, but file is mrt_flop_<drivername>.txt)
	- split up IDAT reading code to prepare MNG comparison support
	- added check if given executable exists - you have to specify the name with extension now
	- properly formatted the whole source
	- added writing of MNG files / files are written in the folder 'mng'
	- added comparison of MNG files (no HTML report entries yet)
	- added valgrind support / writes logfiles "valgrind_<game>.<pid>" (unix-only)
	- renamed sourcefile from "main.c" to "mame_regtest.c"
	- fixed warning about already defined LITTLE_ENDIAN/BIG_ENDIAN on linux
	- disabled "-window" under linux
	- fixed pause interval under linux (was never working)
	- fixed win32-only code to work under linux (always way for keypress at abort)
	- '11beat' is no longer skipped, as it doesn't cause the hang anymore - no more ignored games now
	- added rompath to parameters
	- changed copyright
	- removed writing "mrt_untested.txt" as "1" is not a reliable returncode for missing roms and linux returncodes differ
	- remove created -listxml output file after parsing it
	- CRC mismatches weren't put in the HTML report
	- use proper libxml2 include path

0.52
	- fix stupid bug on linux introduced in last second change
	- added parameter to set the driver to start with (note: drivers are ordered as in the -listmxl output)
	- print sourcefile as well when processing a driver (commandline and stdout file)
	- added second call when using autosave to find problem with savestates
	- added autosave mode to only call drivers, that support savestates (mode 2)
	- got the devices working again as before (will change in the future)

0.53
	- remove the "please press any key to continue" when mame_regtest exists
	- added samplerate as commandline option (11025, 22050, 44100, 48000 - default: 44100)

0.54
	- removed default samplerate
	- using new proper default settings to make it possible to run mame_regtest in background (no video and no sound)
	- the device type and file weren't reported in "mrt_crash.txt"
	- removed extra whitespace between game name and additional information

0.55-pre1
	- introduced XML-based config file / all commandline options have been dropped
	- renamed temporary -listxml output file to "listxml.xml"
	- added new option "log_devices" to enable logging of devices only
	- added new option "use_bios" to test all bioses of a driver
	- read build information from -listxml output
	- write application build and mame_regtest version in HTML report
	- renamed default result file from "mrt_crash.txt" to "mrt_result.txt"
	- added options "result_file", "html_file", "snap_diff_file" and "mng_diff_file" to specficy the output files
	- added option "use_sound" to enable sound output
	- print message, if 'ftr' value is too small (must be at least 2)
	- removed option "samplerate"
	- flush after each HTML report write
	- introduced internal structure "driver_entry" to have less function parameters
	- introduced internal function print_driver_info() to get rid of redundant code

0.55-pre2

0.55-pre3
	- fixed formating of HTML report header
	- added postfix to driver_entry structure for snapshot renaming
	- fixed snapshot comparison with bioses, ramsizes, devices etc.
	- change HTML report to have the snapshots side by side
	- updated returncode list

0.55-pre4
	- added content-type to HTML report (is now valid XHTML1 Strict)
	- properly encode the device file name in the HTML report
	- increased internal buffer for "executable" option
	- added autosave to "driver_entry" to bring execute_mame() down to one parameter
	- added execute_mame2() to handle autosave properly and make it working with ramsize, bios and devices
	- added generic device support (NOTE: file for device-list input changed to mrt_<drivername>_<device-briefname>.txt)
	- added an underscore between device and image number for the screenshots, because device name can also contain digits

0.55-pre5
	- also using "postfix" for valgrind logfile to support devices, bios and ramsizes
	- also using "-window" in UNIX, as SDLMAME/SDLMESS use it and xmame is now defunc
	- added check on configuration reading if reference paths exist
	- adding mrt_snap_diff.txt entry if reference snapshot is missing
	- added message if a device file was found
	- added commandline parameter to specify the configuration
	- restrcutured parsing code to prepare XPath support
	- removed obsolete "list-type" output
	- added option "xpath_expr" to specify an XPath expression to select drivers to test
	- removed option "sourcefile" in favor of "xpath_expr"
	- removed option "start_at" in favor of "xpath_expr"
	- added option "use_throttle" to control throttling

0.55-pre6:
	- fixed a memory leak, a crash and an error in the output of "use_throttle"
	- added get_option_int() to get rid of redundant code
	- added get_option_str() to get rid of redundant code and properly terminate all strings
	- fixed an improperly bracket piece of code in MNG configuration reading
	- added option "use_debug" to control debug window (uses -debugscript to start emulation in debugger)
	- added option "hack_debug" to tell mame_regtest, if the executable is a debug build
	- changed option "ftr" to "str" to reflect latest MAME changes
	- added option "hack_ftr" to use "-ftr" instead of "-str"

0.61:
	- passing "driver_entry" as pointer into functions
	- added option "use_devices" to control usage of device files
	- added APP_* defines to specify type of -listxml (MAME and MESS so far)
	- disabled parts of parsing code, that not apply to the APPL_* listxml output
	- MESS now uses "-rp" to specify the rompath
	- added option "hack_biospath" to use "-bp" instead of "-rp"
	- added cleanup_and_exit() to cleanup in one place
	- deleting the mrt_debugscript file at exit
	- added xmlDocPtr to get_option_* functions in preparation of multiple configuratioon support
	- moved hack_* options at end of output
	- added support for multiple configurations in one XML (add as new element and specify name as command-line parameter)
	- changed command-line parameter from XML filename to configuration name (configuration is now hard-coded mame_regtest.xml)
	- added more command-line logging

0.62
	- removed obsolete variable "str"
	- added FILESLASH define and used it in hard-coded paths (should now properly work on unix)
	- fixed MNG writing for newer writing into the "snap" folder
	- added ramsize, bios and device support for MNG
	- added option "hack_mngwrite" for older versions, that took a path instead of a filename
	- improved MNG comparison
		- report error, if a file is missing
		- do not check for frame CRC after size check already failed
		- removed debugging code
		- added to HTML report
		- changed HTML report code to add links to the MNGs as they can't be shown inline
		- fixed a wrong check in compare_mng()
	- changed clear_driver_files() to take the "driver_entry" and clear the .mng
	- small formating changes on HTML report source
	- renamed difference logging functions
	- moved redundant difference logging code and html_report_* functions in add_diff_entry_* functions
	- added missing image and MNG messages to HTML report
	- increased the buffers in the compare_* functions
	- finally support new snapshot naming
	- properly cleanup snapshots when "postfix" is used
	- changed count for devices, ramszies, bioses to be 5-digits for proper file sorting
	- added option "hack_numbering" to use old counts without prepending 0s
	- added option "use_nonrunnable" to also test drivers with "runnable='no'" attribute
	- added handling of old snapshot names as part of "hack_ftr"

0.63
	- updated libxml2 to 2.6.27 as 2.6.22 was crashing when validating the -listxml output
	- added option "validate_listxml" to enable validation of -listxml output (will output on command-line)
	- added detection of debug build by -listxml attribute
	- moved some code from execute_mame() into execute_mame2()
	- removed the logging of the number of games checked (was wrong anyways)
	- changed counter for "pause_at" to be incremented on each application call and not per driver (so will now properly pause withing bios/ramsize/device loops)
	- removed "use_autosave" mode 2 in favor of XPath expression (see sample XML)
	- added logging of recently added options
	- disabled clearing of snapshots before the executable is run, because it would remove the default file when bios/ramsize/devices are used
	- moved some device logging code out of normal execution
	- added "device_mandatory" to driver_info for further usage
	- added savestates lacking the ".sta" extension to clearing of driver files
	- added placeholder "DRIVER_ROOT" for option "xpath_expr", so you can combine different expressions
	- the PNG comparison wasn't updated to the new snapshot paths
	- deleting autosave savestates from new path
	- fixed some typos in comments
	- added URLs to official mame_regtest pages

0.64
	- do not proceed, if no nodes have been found by a XPath expression
	- fixed some signedness warnings
	- postfix in driver_entry was referencing invalid memory
	- added option "use_dummy_root" to enable a seperate folder for files created by MAME and write an output XML
	- added option "use_output_dir" to enable a seperate folder for files created by mame_regtest
	- added option "output_folder" to specify the folder the output files are written to
	- changed C++ style comments to C style comment
	- fixed creation of folders, that already exist
	- added option "device_file" to set a specific device file
	- added option "stderr_file" to log stderr output into a file
	- added mrt_mkdir() wrapper to keep code clean
	- proper stdout on unix when "stdout_file" isn't set

0.65
	- added proper EOL in stdout and stderr files
	- moved TODOs from mame_regtest.c to TODOS
	- moved history from mame_regtest.c to CHANGELOG
	- removed comparison code
		- removed option "ref_snap_folder"
		- removed option "snap_diff_file"
		- removed option "mng_ref_folder"
		- removed option "mng_diff_file"
	- removed HTML reporting code
		- removed option "html_report"
		- removed option "html_file"
	- renamed crash_fd to result_fd
	- made read-only xmlNodePtrs const
	- changed the device file format to XML
		- allows usage of multiple devices
		- example:
			<images>
				<image cart="superchargercart.rom" cassette="superchargergame.cas"/>
				<image cart="superchargercart1.rom" cassette="superchargergame1.cas"/>
				<image cart="cart2.rom"/>
			</images>
	- changed the device file name to "mrt_<driver>.xml"
	- added result nodes to XML output containing the exitcode of MAME and stderr and stdout (suppresses the stdout and stderr files)
	- added option "use_isbios" to enable/disable testing of MAME bios sets (disabled by default)
	- removed references to xmame/xmess
	- added the output files for the first autosave run to the XML
	- changed some variables from static buffers to dynamic ones to remove length limitations
	- changed sprintf() to snprintf()
	- added option "store_output "to enable/disable storing of output files (disabled by default / directory names match XML names)
	- removed option "use_output_dir" - files will always be written to the output folder
	- added option "clear_output_folder" to clear the output folder on start-up (disabled by default)
	- not adding file CRC and size for PNG and MNG files to the output XML anymore - it will differ although the files are identical
	- added option "use_mt" to enable/disable multithreading
	- added "name" and "sourcefile" attribute to XML output
	- fixed MNG frame count - was incremented on each block read and not on actual frames
	- changes some const char* to const char* const
	- changed postfix in driver_entry to an array
	- removed static postfix buffers
	- changed device postfix from dev_XXXXX to devXXXXX
	- added backup_default_snap() to avoid abuse of rename_snap()
	- added execute_mame3() to wrap simple and device execuation
	- made ramsizes and bioses work with devices
	- added option "test_createconfig" to test the writing of the default config (enabled by default)
	- added get_executable() to get rid of redundant code
	- listxml output is now written to output folder and not being deleted anymore
	- added get_inifile() for application inifile name
	- changed APP_* defines to enum
	- properly increment device count for postfix (was always incremented by 2)

	NOTE: for now you can compare the XMLs with a simple "diff -uN" call
	
0.66
	- changed more arrays to dynamically allocated buffers
	- added option "additional_options" to specify more options for the command-line
	- removed "use_mt" in favour of "additional_options"
	- added option "skip_mandatory" to skip driver calls without devices, if they are mandatory
	- made bioses work with ramsizes
	- removed "hack_numbering" - it was the only hack for an old mame_regtest version
	- only run with the default options when no additional bioses or ramsizes are available to avoid duplicate runs
	- added option "osdprocessors" to set the OSDPROCESSOR environment variable
	- "stdout_file" and "stderr_file" are now written to the "output_folder"
	- added mrt_remove() to remove files from output folder
	- parse device data from listxml even if "use_device" is disabled
	- do not allow a "str" value lower than 2 when "hack_ftr" is being used
	- renamed my_getch() to mrt_getch()
	- added a makefile (please modify the *_INC and LIBS as you need them)
	- finally removed the useless mame_regtest.dev file
	
0.67
	- fixed compilation error on non-win32 systems (Thanks Peter Trauner)
	- added option "print_xpath_results" to print the results of the XPath expression(s) to "xpath_results.xml"
	- enabled "use_dummy_root" by default
	- added option "use_log" to also write the -log output
	- moved some common functions into common.c/.h
	- create the "mrt_debugscript" with file functions instead of a command-line call
	- added option "test_softreset" to perform a softreset (only works with "use_debug")
	- added attribute "autosave" to root node in output XML for driver, that support autosave
	- added attribute "mandatory" to root node in output XML for driver, that have mandatory devices it
	- added attribute "ramsize" to root node in output XML for driver, that are called with a ramsize
	- added attribute "bios" to root node in output XML for driver, that are called with a bios
	- added "devices" node in output XML for driver, which are called with devices
	- properly set the OSDPROCESSORS environment variable
	- renamed parse_directory() to build_output_xml()
	- implemented new callback-based parse_directory() function and moved to common.c
	- added a recursive parameter to parse_directory()
	- converted build_output_xml() and clear_directory() to the new callback-based parse_directory()
	- the output files are now within the "result" node in the output XML
	- added a small application called "create_image_xml" to create imagelist XMLs from a folder
	- changed the valgrind log format from "valgrind_<driver>[_<postfix>]" to "<driver>[_<postfix>]_valgrind_%p.log" (%p should work around the overwriting issue for now)
