Version 0.70.2b

 Note: I finally figured out exactly why 0.66b went bad.
       Everything before and after 0.66b didn't actually
       unload any of the driver sections. When 0.66b unloaded
       the sections, release mode was compiled w/ String Pooling
       enabled. I believe that this allowed code in a given 
       section to become dependent on the string data in another 
       section, creating new silent XBE dependencies that could
       not be resolved. I've disabled String Pooling, and 
       everything seems OK now. Make certain that it is never
       enabled again.
 Note2: It's not just String Pooling, also global optimizations...

   -------------------------------------------------------------
  - \MAME\src:
    - cpuexec.c
      - Realized that unloading a section releases all malloc'd
        memory back to the heap. Fixed by first loading the CPU
        to be used, then unloading all CPU sections. This way
        the CPU's that we're using have a refcount of 2, so
        they stay resident.

    - usrintrf.c
      - Simplified section load/unload (merged sections don't
        require separate data/code loads

   -------------------------------------------------------------
  - \MAMEoX\Includes: 
    - MAMEoX.h
      - Upped version number


   -------------------------------------------------------------
  - \MAMEoX\Sources: 
    - xbox_JoystickMouse.c
      - Put initialization code in a section that is unloaded
        as soon as it's completed (for a gain of 50k or so)

    - xbox_Main.cpp:
      - Reordered LoadDriverSectionByName to be before the 
        UnloadDriverSections, just in case something was malloc'd
        by the section (and for consistency w/ cpuexec.c).
      - Put initialization code in a section that is unloaded
        as soon as it's completed (for a gain of 50k or so)
      - Signed driver.list file to prevent corruption
       - Put in code to reboot and dump log when missing fonts

   -------------------------------------------------------------
  - \MAMEoXLauncher\Sources:

    - main.cpp
       - Signed driver.list file to prevent corruption
       - Put in code to reboot and dump log when missing fonts
       - Put in credits and switched over to new splash screen 
         (thanks goes to r4dius again for the graphics)

    - ROMList.cpp
       - Signed rom.list file to prevent corruption
       - Put in a progress bar for the second half of ROM list
         generation
       - Changed ROM checking code to use std::find instead of
         simple linear search. Should be much faster now (though
         it's supposed to be a rare op, so hopefully nobody will 
         be in a situation to notice :))

  -------------------------------------------------------------
  - \Desectionize.pl
  - \Sectionize.pl
    - Updated to merge data + code sections
    

Version 0.70.1b

  - General:
    - Added new fonts (Arial, Arial Narrow and Courier New)
    - Reformatted screens to work w/ new fonts
    - Remove dependencies bug

   -------------------------------------------------------------
  - \MAMEoX\Includes: 

    - MAMEoX.h
      - Upped version number
      - Modified version number to be MAME license compliant
      - Added code to easily set render target to a texture

    - Gamepad.h
      - New function: GetButtonState which returns all GP_ flags of 
        the pressed buttons, DPAD, etc.
      - New funct IsOnlyButtonPressed returns TRUE if only the 
        button specified in the params are pressed
      - New function: GetButtonState which returns all GP_ flags of the 
        pressed buttons, DPAD, etc.
      - Made a bunch of functions properly const

    - xbox_Direct3DRenderer.h
      - Joined all D3D renderer opts into a struct

    - InputManager.h
      - Added IsGamepadConnected() function

   -------------------------------------------------------------
  - \MAMEoX\Sources:

    - Gamepad.cpp
      - New function: GetButtonState which returns all GP_ flags of 
        the pressed buttons, DPAD, etc.
      - New funct IsOnlyButtonPressed returns TRUE if only the 
        button specified in the params are pressed
      - New function: GetButtonState which returns all GP_ flags of the 
        pressed buttons, DPAD, etc.
      - Made a bunch of functions properly const

    - xbox_JoystickMouse.c
      - Remapped paddles, dials, and trackball to left analog stick
      - Fixed: Pressing right on LA now properly produces 128 for
        analog position

    - xbox_Direct3DRenderer.cpp
      - Added option for screen rotation
      - Added option to select texture filters

    - MAMEoXUtil.cpp
      - Added code to easily set render target to a texture

   -------------------------------------------------------------
  - \MAMEoXLauncher\Includes:

    - OptionsPage.h
      - Added option for screen rotation
      - Added option to select texture filters
      - Fixed problem where not all options in Directories were
        selectable
      - Fixed problem where the cursor in Network Settings could
        scroll past the end of the list

    - VirtualKeyboard.h
      - Added basic virtual keyboard class

   -------------------------------------------------------------
  - \MAMEoXLauncher\Sources:

    - ROMList.cpp
      - Bugfix: Additional info shows the files correct now
      - Additional info shows year and clonefilename now
      - Use new font and added manufacturer in the game list
      - Additional info is default now
      - More lines (30 instead of 18) in the game list
      - Made ROMList, OptionsPage, and Help render to a resizeable,
        rotateable texture

    - OptionsPage.cpp
      - Added option for screen rotation
      - Added option to select texture filters
      - Made ROMList, OptionsPage, and Help render to a resizeable,
        rotateable texture
      - Made use of the new VirtualKeyboard class
      - Added option to disable sound processing
      - Enabled option to change sound samplerate

    - Help.cpp
      - Made ROMList, OptionsPage, and Help render to a resizeable,
        rotateable texture

    - main.cpp
      - Joined all D3D renderer opts into a struct
      - Added a RequireController call to splashscreen
      - Added more calls to RequireController
      - Made ROMList, OptionsPage, and Help render to a resizeable,
        rotateable texture
      - Implemented rotation on the ROM list
      - Changed font for Help page

    - VirtualKeyboard.cpp
      - Added basic virtual keyboard class

   -------------------------------------------------------------
  - \MAMEoX\src:
    - inptport.c
      - Changed analog input code to use a joystick as a mouse,
        rather than attempting to use the broken trackball
	code. (Fixes trackball and steering wheel games)

  - \MAME\src\vidhrdw
    - vball.c
      - Increased the size of array "scrollx" to 32 elements to
        keep the vball_interrupt function from writing past the
	end of the array.

   -------------------------------------------------------------
  - Media
    - help.txt
      - Integrated patch from John Wu (thanks!)


 --- Integrated MAME version 0.70, changes follow -------------------

 Changes in the \MAME\src directory

 Removals:

 Additions:
   \
     memdbg.c
     memdbg.h

   drivers\
     djboy.c
     glass.c

   includes\

   machine\
     pgmprot.c

   vidhrdw\
     djboy.c
     glass.c

   xml2info\
     <directory added>
     

 --- Specific Game fixes --------------------------------------------
  U.S. Championship V'ball
  Cruis'n USA - Runs out of memory, now prints that and properly reboots
  Cruis'n World - Runs out of memory, now prints that and properly reboots

*********************************************************************

Version 0.67b

  - \MAMEoX\Includes: 

    - MAMEoX.h
      - Upped version number to 0.67b
      - Added symlink support (code based on submission from Redline)
  
    - xbox_FileIO.h
      - Added symlink support (code based on submission from Redline)

    - xbox_Direct3DRenderer.h
      - Added Aspect Ratio Correction toggle option

    - DebugLogger.h
      - Added support for dumping debug data to a file in Release mode

   -------------------------------------------------------------
  - \MAMEoX\Sources:

    - xbox_FileIO.cpp
      - Added symlink support (code based on submission from Redline)

    - xbox_Main.cpp
      - Put back the call to LoadDriverDataSections that caused
        0.66b to fail when running in Release mode. Put in a note
	to remind me not to take it out again :)

    - MAMEoXUtil.cpp
      - Added symlink support (code based on submission from Redline)

    - xbox_Direct3DRenderer.cpp
      - Added Aspect Ratio Correction toggle option

    - DebugLogger.cpp
      - Added support for dumping debug data to a file in Release mode

   -------------------------------------------------------------
  - \MAMEoXLauncher\Sources:

    - OptionsPage.cpp
      - Added read-only listing of symlinks to options
      - Added Aspect Ratio Correction toggle option

    - main.cpp
      - Added Aspect Ratio Correction toggle option

   -------------------------------------------------------------
  - libsmb++\src:

    - SessionPacket.cpp
      - Added #undef errno to fix compiler issues

    - NetBIOSPacket.h
      - Added #undef errno to fix compiler issues


*********************************************************************
Version 0.66b

  - \MAME\src\usrintrf.c
    - Added a call to LoadDriverDataSections()
      in the block of code where the drivers[] array
      is parsed to find a working clone of a ROM that
      is tagged as invalid. This fixes crashes for
      these games (such as Alexx Kid set 1)

  - \MAMEoX\Includes\Gamepad.h
  - \MAMEoX\Sources\Gamepad.cpp
    - Added CGamepad class w/ helper functions for
      button state checking

  - \MAMEoX\Includes\StdString.h:
    - Defined SS_NO_IMPLICIT_CAST to force us to
      use c_str(). Apparently the CStdString class
      cannot be passed as an elipsis argument, which
      is why it sometimes crashes in PRINTMSG macros.
      (See the notes for SS_SAFE_FORMAT in this file)

  - \MAMEoX\Includes\MAMEoX.h
    - Updated version number
    - Save superscroll index when launching the utility XBE
    - Renamed WaitForNoKey and WaitForKey to WaitForNoButton and
      WaitForAnyButton resp.
    - Added LAUNCH_RUN_AS_IF_REBOOTED command to properly handle
      case where MAMEoX.xbe is started instead of default.xbe
    - clonename, manufacturer, year added into MAMEDriverData_t 

  - \MAMEoX\Sources\xbox_Main.cpp
    - Removed unloading of game sections after a game
      was run, this speeds up the return to the game selection
      by quite a bit. (opcode)
    - Hopefully disabled memory card initialization, as it
      causes crashes
    - Changed build process to use custom imagebld.switch
      files, setting the driver sections to \NOPRELOAD as
      originally intended. This allows us to remove the Unload
      and Load general section calls and just load the individual
      sections that we need, speeding up load times.
    - Adaptations for CGamepad addition
    - Added LAUNCH_RUN_AS_IF_REBOOTED command to properly handle
      case where MAMEoX.xbe is started instead of default.xbe
    - clonename, manufacturer, year added into DriverList (Save)

  - \MAMEoX\Sources\MAMEoXUtil.cpp
    - Added network and directory ini entries to SaveOptions
    - Added "DisableNetworking" option to ensure that networking
      is not started at all if not wanted. For some reason my
      current network setup takes about 40 seconds to boot in debug
      mode, this is a hack until I figure out why.
    - Renamed WaitForNoKey and WaitForKey to WaitForNoButton and
      WaitForAnyButton resp.
    - Adaptations for CGamepad addition

  - \MAMEoX\Sources\xbox_FileIO.cpp:
    - Fixed a problem where the file was new'd but not memset to
      0, causing the fileposition and other members to be undefined.

  - \MAME\src\vidhrdw\namcos1.c
    - Reverted back to MAME 0.60 version of this file
      some update after 0.60 made it crash the xbox, but
      works fine on the pc version of MAME. This makes
      namco system 1 games work now, whereas before they
      would load the roms then crash when video was 
      started. (opcode)

  - \Sectionize.pl
    - Updated to dump two imagebld.switch files, one for
      debug, one for release. Hopefully this can be used
      to eliminate the need to unload a ton of sections
      before executing each ROM
    - Updated to also sectionize CPU files
    - Fixed a stupid mistake that may have caused some
      driver files not to be loaded when they should've
      been.

  - \imageblddbg.switch
  - \imagebld.switch
  - \DBGMAMEoX_XBE.bat
  - \MAMEoX_XBE.bat
    - Added files necessary to generate MAMEoX.xbe without
      preloaded XBE sections.
    - These files were immediately removed, as I didn't like
      the way it ended up working, did some profiling, and
      realized that it wasn't making a noticeable difference
      (even in debug mode)

  - \MAMEoXLauncher\Sources\main.cpp
    - Hopefully disabled memory card initialization, as it
      causes crashes
    - Improved error messages for missing files
    - Adaptations for CGamepad addition
    - Added LAUNCH_RUN_AS_IF_REBOOTED command to properly handle
      case where MAMEoX.xbe is started instead of default.xbe
    - clonename, manufacturer, year added into DriverList Load)

  - \MAMEoXLauncher\Includes\ROMList.h
  - \MAMEoXLauncher\Sources\ROMList.cpp
    - Save superscroll index when launching the utility XBE
    - Adaptations for CGamepad addition

  - \MAMEoXLauncher\Sources\Help.cpp
    - Adaptations for CGamepad addition
    - Turned off cursor highlighting
    - Changed text color to blue from green

  - \MAMEoXLauncher\Sources\OptionsPage.cpp
      - Adaptations for CGamepad addition
      - Added read-only pages for network and directory options

  - \ZLIB\ZLIB.vcproj
  - \MAMEoXLauncher\MAMEoXLauncher.vcproj
  - \MAMEoX\MAMEoX.vcproj
  - \MAME\MAME.vcproj
  - \libsmb++\libsmb.vcproj
    - Changed all debug versions to use single-threaded debug
      lib to stay inline w/ release mode
    - Fixed problem where MAMEoX project attempted to use the
      release mode libsmb in debug mode, making it impossible
      to automatically build from clean in debug mode (unless
      it was done following a release build)
    - Changed MAMEoX XBE to use runtime checking on uninitialized
      vars and stack validity in debug mode, led to discovery of
      an apparent stack overflow and slight increase of stack size

 --- Specific Game fixes --------------------------------------------
  Ataxx
  Asylum
  Alex Kidd (Set 1) - The ROM is tagged as non-working, but no longer crashes
  U.S. Classic
  Hyper Sports
  Hyper Olympics '84

*********************************************************************
Version 0.65b
  - Fixed a slight glitch in rendering where a grey/white
    bar would show on the left and right of the rendered
    frame. (opcode)

  - Fixed Sound, I think sound is nearly if not 100%
    correct, it sounds exactly like my win32 port
    of MAME as far as I can tell anyway.  Also, sound
    will output to all available speakers, sounds better
    if you have a 5.1 system IMHO. (opcode)

  - Fixed the XDK file debacle, now any files
    that the project references from the xdk will
    now work on any xdk as long as the xdk defined
    the environment variable XDK to point to the
    base dir of the xdk (I think all current xdks
    do this). (opcode)

  - Removed all _RPTx macro calls as they apparently don't
    properly send to xboxwatson.

    Opcode (5/25/03):
  ------------------
    - Added Network settings to INI file
    - Added File Path settings to the INI file
    - Moved INI file to always be in U:\4d414d45\INI\MAMEoX.ini
    - Added SMB support for loading files (ROMS!!) from smb shares
      format of smb share is exactly like xbox media player,
      i.e. smb://user:password@computer/sharedirectory
      as of this release files can only be READ from shares, not Written
    - Changed file handling to not cache files into memory but
      rather load them like the mame core does (not sure if this saves
      memory or not, can't hurt though.)
  ------------------

  - \MAMEoX\Includes\DebugLogger.h
  - \MAMEoX\Sources\DebugLogger.cpp
    - Switched PRINTMSG to use OutputDebugString if _DEBUG is defined
    - Added implicit \n to PRINTMSG

  - \media\help.txt:
    - Help file

  - \MAMEoX\Sources\xbox_Main.cpp:
    - Removed unused gamepad references
    - Added progress bar for driver dumping sequence
    - Added MAME core version to driver file sig.
    - Fixed some XBE dependencies

  - \MAMEoX\Sources\xbox_Miscelaneous.c:
    - Added Debug/Release mode notification to version string

  - \MAMEoX\Sources\xbox_JoystickMouse.c:
    - Improved analog controls
    - Added buttons as analogs
    - Added partial lightgun support

  - \MAMEoX\Sources\MAMEoXUtilcpp:
    - Added gamepad capabilities checking for Lightgun support
    - Added function to wait until a given gamepad is inserted

  - \MAMEoX\Sources\xbox_Sound.c:
    - Cosmetic changes to make debuggig easier

  - \MAMEoX\Sources\xbox_FileIO.c:
    - Made the ROM backup path writeRequired

  - \MAMEoX\Includes\MAMEoX.h:
    - Updated version number
    - Added gamepad capabilities checking for Lightgun support
    - Added function to wait until a given gamepad is inserted
    - Added Debug/Release mode notification to version string

  - \MAMEoX\Includes\InputManager.h:
    - Added gamepad capabilities checking for Lightgun support
    - Changed gamepad and capabilities over to pointers from
       const references
    - Added function to wait until a given gamepad is inserted

  - \MAMEoX\Includes\xbox_FileIO.h:
    - Made the ROM backup path writeRequired
      
  - \MAMEoXLauncher\sources\main.cpp:
    - Help loading
    - Option mode on button B+Y now
    - Added function to wait until a given gamepad is inserted
    - Added MAME core version to driver file sig.
    - Bugfix for the backup (X+B) feature
    - Added Debug/Release mode notification to version string

  - \MAMEoXLauncher\sources\Help.cpp:

  - \MAMEoXLauncher\includes\Help.h:
    - Help functionality (Button X)

  - \MAMEoXLauncher\includes\ROMList.h:
  - \MAMEoXLauncher\sources\ROMList.cpp:
    - Made the ROM backup path writeRequired
    - Black button to toggle clones on/off
    - White button for advanced game list (not yet)
    - Show With / without Clones in the header
    - ROM list is regenerated via B+A now
    - Switching between show/hide clones no longer
      requires a list regeneration

 --- Specific Game fixes --------------------------------------------
  Bomber Man World (XBE dependency)

 --- Integrated MAME version 0.69, changes follow -------------------

 Changes in the \MAME\src directory

 Removals:

 Additions:
   \

   drivers\
     jalmah.c
     mustache.c
     paradise.c
     plygonet.c
     portrait.c
     wolfpack.c

    includes\
      paradise.h

    machine\
      acitya.c

    vidhrdw\
      mustache.c
      paradise.c
      plygonet.c
      portrait.c
      wolfpack.c


*********************************************************************
Version 0.64b

  - \Docs\readme.txt:
    - Noted new directory for CHD files

  - \MAME\cheat.c:
    - Disabled watch prints by default

  - \MAMEoX\Includes\MAMEoX.h:
    - Moved MAME core version string to header file
    - Added build string to report what version of VC++ was used
      to compile the image.

  - \MAMEoX\Includes\InputManager.h:
    - Renamed WaitForNoKeys to WaitForNoKey

  - \MAMEoX\Includes\xbox_FileIO.h:
    - Moved romlist and driverlist directory to default to the d:
      as there's no real reason to force it to Z.
    - Added path for CHD files (Harddrive images)
    - Changed Z: for writable data to T:

  - \MAMEoX\Sources\xbox_FileIO.cpp:
    - Added path for CHD files
    - Changed ROMLISTPATH so that it can be properly remapped to
      the T:
    - Changed Z: for writable data to T:

  - \MAMEoX\Sources\MAMEoXUtil.cpp:
    - Fixed a couple more INI bugs (improperly mapped options)
    - Renamed WaitForNoKeys to WaitForNoKey

  - \MAMEoX\Sources\xbox_main.cpp:
    - Fixed a non-termination bug w/ the Die function.
    - Renamed WaitForNoKeys to WaitForNoKey
    - Changed ROMLISTPATH so that it can be properly remapped to
      the T:

  - \MAMEoXLauncher\MediaFiles:
    - Added directory w/ Media files

  - \MAMEoXLauncher\Sources\main.cpp
    - Fixed a non-termination bug w/ the Die function.
    - Moved all ROMList user input to the ROMList file.
    - Updated splashscreen w/ graphical logo (thanks to r4dius)
    - Added backdrop to ROM List screen (thanks to r4dius)
    - Changed ROMLISTPATH so that it can be properly remapped to
      the T:

  - \MAMEoXLauncher\Sources\ROMList.cpp:
    - Moved all ROMList user input to the ROMList file
    - Changed ROMLISTPATH so that it can be properly remapped to
      the T:

  - \MAMEoXLauncher\Includes\OptionsPage.h:
    - Added INI options editing class

  - \MAMEoXLauncher\Sources\OptionsPage.cpp:
    - Added INI options editing class

 --- Integrated MAME version 0.68, changes follow -------------------

 Changes in the \MAME\src directory

 Removals:
   cpu\m68000\asmintf.c.cra
   drivers\unico16.c
   vidhrdw\unico16.c

 Additions:
   \
	blitgen.c  - Don't add to project
	hash.c
	hash.h
	mameblit.c - Don't add to project
	sha1.c
	sha1.h

   drivers\
	bwing.c
	chaknpop.c
	chindrag.c
	fantland.c
	groundfx.c
	grtwall.c
	lethalj.c
	mainsnk.c
	metlclsh.c
	pbillian.c
	raiden2.c
	realbrk.c
	rotaryf.c
	sbugger.c
	sg1000a.c
	shougi.c
	skyarmy.c
	system24.c
	thedeep.c
	tourtabl.c
	truco.c
	unico.c
	wallc.c

    includes\
	lethalj.h
	realbrk.h
	system24.h
	thedeep.h
	unico.h

    machine\
	6532riot.c
	6532riot.h
	chaknpop.c
	system24.c
	tmp68301.c
	tmp68301.h

    sndhrdw\
	pbillian.c

    sound\
	tiaintf.c
	tiaintf.h
	tiasound.c
	tiasound.h

    vidhrdw\
	bwing.c
	chaknpop.c
	fantland.c
	groundfx.c
	lethalj.c
	metlclsh.c
	pbillian.c
	realbrk.c
	sbugger.c
	segaic24.c
	segaic24.h
	system24.c
	thedeep.c
	tia.c
	tms9928a.c
	tms9928a.h
	truco.c
	unico.c

*********************************************************************
Version 0.63b
  
  - \MAMEoX\MAMEoX_VC6.dsp
    - Updated to support v0.63b changes
    
  - \MAMEoXLauncher\MAMEoXLauncher_VC6.dsp
    - VC6 Project file MAMEoXLauncher required by main MAMEoX_VC.dsw
      workspace file
      
  - \MAMEoX_VC6.dsw:
    - Updated to add MAMEoXLauncher compile

  - \MAMEoX\Sources\xbox_FileIO.c:
    - Changed Helper_CreateOrOpenSystemPath() to allow the caller
      to require that the directories checked be writeable (so that
      nvram directories on a CD/DVD are not considered valid)

  - \MAMEoXLauncher:
    - Added directory with separate ROM list XBE

  - \MAMEoX\Includes\ROMList.h:
    - Moved to MAMEoXLauncher directory

  - \MAMEoX\Includes\xbox_FileIO.h:
    - Added DriverList define

  - \MAMEoX\Includes\MAMEoX.h:
    - Added various helper prototypes
    - Added version string #define

  - \MAMEoX\Sources\ROMList.cpp:
    - Made left analog stick act like the DPAD
      (usability testing)
    - Moved to MAMEoXLauncher directory

  - \MAMEoX\Sources\xbox_Main.cpp:
    - Increased button sensitivity
    - Switched Left Analog screen resize control to right analog 
      (usability testing)
    
  - \MAMEoX\Sources\xbox_Sound.cpp:
    - Reduced sound crackles

  - \MAMEoX\Sources\MAMEoXUtil.cpp
    - Added file
    - Enabled cheats (untested)

  - \MAMEoX\Docs\Readme.txt:
    - Changed control notes to reflect new controls
    - Changed installation notes to mention new dual XBEs



*********************************************************************
Version 0.62b
  
  - \MAME\MAME_VC6.dsp
    - MAME project file for VC6 users
    - File Added
  
  - \MAMEoX\MAMEoX_VC6.dsp
    - MAMEoX project file for VC6 users
    - File Added
  
  - \MAMEoX_VC6.dsw
    - Main project workspace file for VC6 users
    - file added

  - \MAMEoX\Sources\xbox_Main.cpp:
    - Added conditional compile code to make project VC6 friendly
    - Modified functions main and Helper_RunRom
    - Fixed: VectorWidth and VectorHeight ini option incorrectly use 
             ColorDepth for values
  
  - \MAMEoX\Sources\xbox_Sound.c:
    - Sound is now copied directly to the DSound write cursor, rather than
      the MAMEoX one. This seems to resolve sound latency issues.

  - \MAMEoX\Sources\xbox_Direct3DRenderer.cpp:
    - Fixed: SWAPXY option improperly implemented for vector rendering
  
  - \MAMEoX\Sources\xbox_FileIO.h:
    - Added AUDIOPATH for audio samples
  
  - \MAMEoX\Sources\xbox_FileIO.c:
    - Fixed: Audio samples were redirected to the "ART" dir
  
  - \MAMEoX\Sources\xbox_JoystickMouse.c:
    - Fixed a bug causing gamepad 3 buttons to be mapped
      as gamepad 4 and vice versa.
  
  - \Docs\changelog.txt
    - Added changelog


*********************************************************************
Version 0.61b
	- No changelog

