mame_regtest
	Features:
		- logging of wavfiles to find sound regressions (empty files in case of no GAME_NO_SOUND flag)
		- per-cart configuration
		- check every game with created files (re-run after clean run)
		- review commandline output
		- add silent mode?
		- add sanity checks for maximum bios, ramsize and device count
		- add option for testing of .inp file writing/reading (-record/-playback)
		- add "start_at" for devices
		- use transparent crosshair?
		- avoid duplicated slashes
		- make pointers const (or const * const)
		- add verbose mode (logging command-line string etc.)
		- add "hang"/deadlock detection (-watchdog)
		- mark the different autosave calls (load / save)
		- multipass XPath (e.g. first select m6502 cpus and then all with autosave from those nodes)
		- add MAME version to hack_mngwrite description (change seems to be in 0.108u5)
		- properly handle invalid XPath expressions (check for DRIVER_ROOT / react on libxml2 errors)
		- add more input paths to configuration (like artwork and samples)
		- call parse_directory() in execute_mame() / call clear_directory() in execute_mame2()
		- change parse_mng to parse single frames
		- multithreading mode
		- change strcpy() to strncpy()
		- change strcat() to strncat()
		- configuration rewrite
			- empty options will not properly overwrite/reset existing options to default values
			- print config values in read function (or put in array and print function for array)
			- cleanup post-loading code of configuration (checks, output etc.)
			- proper handling of default values in config (add additional entry in struct)
			- move variables into the structure (only one dynamic string type)
			- read all options as const to avoid modifications outside the config
			- report unknown options
		- store both output file states in case of autosave
		- add macro to output files/folders for version/revsion etc.
		- how to test system configurations
		- how to test dipswitches
		- attribute to disable an image entry in the XML
		- add base folder for images in XML (could also be used for parsing a folder?)
			- read carts from a directory?
			- add parse flag?
			- only use on relative path entries (x:\, /, \\, etc.)
			- use folder node in-between to be able to switch folders
		- test absolute paths in INI (debugfile / rompath)
		- add printf-format support to append_string()
		- switch to binaries/includes from http://www.zlatkovic.com/pub/libxml/
		- run test_createconfig in dummy_root to avoid usage of existing mame.ini
		- calls within gdb? (can gdb be scripted?)
		- use the following debugger commands
			- gtime <milliseconds in hex>
			- hardreset (causes endless restarts of MAME)
			- snap
		- add option to use a specific debugscript?
		- add hack for PinMAME 
			- -listxml (strip duplicated "sampleof" attribute / has stray & in rom name)
			- no "sourcefile" attribute
			- OK screens (-skip_disclaimer / -skip_gameinfo)
		- write comparison tool
			- parse dir A and check dir B for missing file
			- parse dir B and check dir A for new files
			- show the following
				- files differ (PNG/MNG frame diffs)
				- exitcode differs
				- files missing
				- new files
				- stdout/stderr differs
		- better way to align the dummy_root INI lines
		- read images from folder with same name as device (look for XML first / specify folder in XML?)
		- do not run drivers with mandatory devices without an image, if a device list exists
		- use functions for lists
			- list_create()
			- list_next_entry()
			- list_insert() - sorted
			- list_append() - unsorted
			- list_free()
		- update building instructions in Wiki
		- use more command-line options
			- verify*
			- list*
			- test frontend functions (-listfull etc.)
			- call -validate?
			- call "-listdevices" for MESS?
		- use -aviwrite
		- add soft/hardreset tests after each call like "autosave" test?
			- how will it work with -autosave?
		- use grep to diff each file
			- regex for auto.sta "^[+-].*auto.sta"
		- add clean/merged configuration to output data
		- check for "cheat expression" errors in stderr
		- fix display of autosave drivers in reports
		- polystar shows just a "<" as result
		- fix compilation on systems, that already have a htonl() function
		- change LITTLE_ENDIAN/BIG_ENDIAN defines - they are both defined on some systems (maybe BYTE_ORDER?)
		- move the results and pages on the wiki
		- add option with folder for device XMLs?
		- valgrind variables mix libc and libxml2 allocations
		- config_gamelist_xml_file mixes libc and libxml2 allocations
		- make it possible to use multiple configurations
			- config_object {
				void* xml;
				void* root;
				config_entries[]
			}

	Obsolete/External:
		- HTML report
			- create HTML report (different variants)
				Unexpected Returnvalues (sourcefile - driver - returncode - details [flags, stdout])
				Untested Games (sourcefile - driver)
				Image Comparison results (sourcefile - driver / with images links - before and after)
				All Result Images
			- add paging to HTML report (by letters / x entries per page)
			- add all messages to HTML report
			- add all options to HTML report
			- put HTML report into a folder and copy pictures in a <html_report_name>_new/<html_report_name>_ref folder
			- add option for main HTML report folder
			- make HTML report work in Mozilla ( use /ref and /new links)
		- regression detection (compare different versions and tell between which it did change)
		- extract differing frames (also for HTML report)
		- show PNG differences (use Aaron's code)

	Linux:
		- add a signal handler for linux?

	Known Issues:
		- not everything is properly encoded by xmlEncodeEntitiesReentrant()
		- using autosave will overwrite the initial valgrind log-file for the driver (well..not really, it adds the pid - still you want to differ them easily)

	Test TODOs:
		- test release and debug builds of MAME and MESS
		- test 32-bit compile on 64-bit OS (windows and linux)
		- test 64-bit compile
		- test with SDLMAME/SDLMESS
		- test on PPC
		- create testset with images for each device in each driver

	Misc:
		- create patch to write show_ui() in a file
		- MAME patches
			- add "exit"/"run-and-hide" command to debugger
