OpenITG, alpha 8 (August 29th, 2008)
------------------------------------
-Lots of code cleanup
-New LightsDriver:
    PacDrive ("pacdrive") - run lights using an Ultimarc PacDrive
-Misc. changes:
    Allow multiple lights drivers (use at your own risk)
    Disqualification for music rate under 1.0x
-ITGIO changes:
    Softcoded ITGIO input and added default mappings
    Added mappings for all cabinet lighting
    Fixed "no output on ITGIO" issue (read: full I/O support)
-PIUIO changes:
    Support for r16 kernel hack handling
    Lots of misc. structural changes
-New modifier:
    HoldsToRolls, a reversed NoRolls (make Bend Your Mind a living hell!)
-Fixed mistakes:
    SCREENMAN doesn't zero update after custom song loading
-Fixed bugs:
    OptionsList crashes on load, underline doesn't render, etc. etc.
    Attract volume immediately resets after round
    Attract volume isn't properly reset when entering operator menu
    Crash on non-song wheel items after highlighted custom songs
-Removals:
    ThreadedLights and associated code (too many bugs)

OpenITG, alpha 7 (July 11th, 2008)
----------------------------------
-Preliminary, hacky lights-cabinet support in theme SM files
-Barebones work on tournament mode (it's still a while away)
-Input changes:
    Newer, more ITG-like input debouncing (half-working...)
    "Select" or "MenuLeft+MenuRight" cancels custom song loading
    Linux joystick driver is now threaded (and supports DebugUSBInput)
    X11 input code backported from 4.0
-New LUA functions:
    IsUsingMemoryCard(PlayerNumber) - self-explanatory
    Debug() - output debugging lines regardless of log settings
-New LUA globals:
    "OPENITG" (boolean) - can be used for compatibility with ITG2 AC scripts
-New (major) code functions:
    StepsUtil::RemoveStepsOutsideMeterRange()
    StepsUtil::RemoveStepsOutsideDifficultyRange()
    Song::HasStepsWithinMeterRange()
-New messages:
    "CardReadyP1", "CardReadyP2" - played when a card is verified ready
-New preferences:
    "SoundVolumeAttract" - volume during attract sequences
    "ThreadedLights" - run the lights outside the regular game loop, more accurate
    "UseUnstablePIUIODriver" - set true to use the experimental I/O driver
-New config options:
    "SoundVolumeAttract" - see above
-New metrics:
    "CompareScores" (ScreenGameplay) - manually set whether to compare or not
    "OptionsList" (ScreenSelectMusic) - add a side panel to change options
	instead of the old options menu
-New Screens:
    "ScreenExitCommand" - Functions as ScreenExit, but with the ability to launch
       	an executable file before exiting.  Must have 'ExecPath' and 'ExecParams' in the
        metrics entry
    "ScreenTextEntryArcade" - a more arcade-friendly text entry screen (WIP)
-Fixed bugs:
    BGCHANGES2 charts don't play properly
    Timer is stuck at 0 if timer runs out on "Chance"
    "nomines" and "nostretch" transforms have no effect in the editor menu
    (OpenGL) Arrow shader fails on full-screen, causing scrolling brackets
    Actor sounds ignore attract sound settings
    After switching themes, OpenITG crashes on the songwheel
    Theme switching sometimes causes failed asserts
    Phantom input when canceling custom song loads
    ScreenArcadeStart loops endlessly until manual exit
    Without song previews, custom song lights don't properly load
-Fixed mistakes:
    Removed some personalized testing code
    Removed some annoying opendir() error messages
-Code structure changes:
    "MiscITG" moved to "DiagnosticsUtil"

OpenITG, alpha 6 (May 30th, 2008)
---------------------------------
-Code structure changes:
    Reverted InputFilter - too little gain for too many problems
-New metrics in ScreenGameplay:
    (Note: must be in Event Mode, Versus, and playing the same chart)
    "ScorePxAheadCommand" - played when player's score is higher
    "ScorePxBehindCommand" - played when player's score is lower
-New preferences:
    "InputDebounceTime" - self-explanatory
-New game commands:
    "clearcredits" - clears credits on the machine (useful for testing)
    "theme" - sets the theme, by name, when used (useful for theme switchers)
-Linux changes:
    Tentative fix for memory card port/bus detection on usb_storage
-Win32 changes:
    Added code to reboot on crashes for arcade builds (#define ITG_ARCADE)
-Misc. changes:
    Enabled pad lighting on ScreenDemonstration
    Coins added by GameCommands are not counted toward bookkeeping totals
    Round text on ScreenSelectMusic updates for long/marathon songs
    Moved OpenITG-specific profile options to Extra.ini (caused ITG2 crashes)
    Disabled autogeneration of new Public/Private RSA keys on load failure
-Fixed bugs:
    Some custom songs end immediately after start
    Repeating menu input error on ScreenSelectMusic
    Editor doesn't draw properly, causes failed asserts
    Song wheel doesn't "budge" when attempting to move after Chance
    "Revert from Disk" in editor causes duplicate charts, crashes
    Crash on bookkeeping when switching to an undefined screen
    In AutoplayCPU, rolls cause early judgments of arrows and mines

OpenITG, alpha 5 (April 30th, 2008)
-----------------------------------
-New screens:
    ScreenArcadeStart - implemented, functional, does stuff
-Code structure changes:
    Reboot-on-crash is disabled in non-arcade builds
    Gameplay lights now autogen from dance-single only
    InputHandler_Linux_Iow changed to InputHandler_Iow
    InputHandler_Linux_PIUIO changed to InputHandler_PIUIO
    InputFilter backported from 4.0, modified a bit
-PIUIO changes:
    Added timer for testing input speed
    Partially added coin counter code (not functional yet)
    Changed input from 64-bit datatype to 32-bit datatype
-Fixed input bugs:
    Input always auto-remaps on startup
    Input sometimes locks up after song loading fails
    Player 2 I/O board input is mapped to Player 1's side
    PIUIO only reports arrow presses from right sensor
-Fixed general bugs:
    Edits for Single show on all difficulties
    Some modifiers don't animate in the editor
    Song wheel can be moved on Chance
    Voltage doesn't calculate correctly (lol, DDR)
-Fixed mistakes:
    "ITGIO" and "PIUIO" were reversed in RageInputDevice
-Mapping changes:
    Added working Iow input mappings (output is still borked)
    Added working service/test and coin mappings for PIUIO
-New code functions:
    LOG->Debug() - always displays to stdout, without logging
    GetIP() - currently Linux-only, returns IP and subnet
-New preferences:
    "CustomSongPreviews" - play audio previews of custom songs
    "InputDebounceTime" - self-explanatory; smooth out bouncing input
-New USB profile features:
    "AdditionalSpeedMods" - add specified speed modifiers

OpenITG, alpha 4 (March 21st, 2008)
-----------------------------------
-Fixed Win32 bugs:
    OpenITG hangs/crashes/<bad stuff> when custom songs sample plays
    Backgrounds are centered on the top left during gameplay
    (Maybe?) Color1 as boolean LUA parsing error
-Fixed cross-platform bugs:
    Editor's stepchart doesn't scroll properly
-Fixed package mistakes:
    data.zip causes "Assertion 'm_LockCnt == 0' failed" error

OpenITG, alpha 3 (March 17th, 2008)
-----------------------------------
-Mapping changes:
    Added PIUIO/IOW default mappings
    Added default keyboard maps for Select (P1 = right Shift, P2 = numpad 0)
-PrefsManager changes:
    Removed "BrokenBGs" - binary plays BG scripts from all songs now
    Added "DebugUSBInput" - output raw and formatted USB data to console
    Backported "VisualDelaySeconds" on request
-Fixed bugs:
    Start sound doesn't play when course is selected
    Potential memory leak (minor) on SongManager array
-New Screens:
    ScreenArcadeStart (unfinished/not implemented in the Makefiles)
    ScreenArcadeDiagnostics - installation and diagnostic information
    ScreenArcadePatch - update the game through USB patches
-New data types:
    USBDevice - a basic structure for reading USB hardware data
    USBDriver - an abstracted USB I/O driver based off of libusb
    ITGIO - a USBDriver specialised for ITG-IO JAMMA kits
    PIUIO - a USBDriver specialised for ITG2 dedicated cabinet I/O boards
-New LightsDriver:
    External ("ext") - makes light data globally available for other drivers
-New InputHandlers:
    Linux_PIUIO ("piuio") - partially functional, not very usable
    Linux_Iow ("iow") - untested, should be fully functional
-New RageFileDrivers:
    RFDCrypt - handles AES-encrypted .zip files
    RFDPatch - handles AES-encrypted patches
-New USB profile features:
    Choose to save Catalog files ("UseCatalogXML") - default off
-New licensed code:
    -AES encryption/decryption schemes, by Brian Gladman
    -Public domain iButton SDK from Maxim IC
-New project files:
    Patch-OpenITG.rsa - a new Patch verification sig for future OpenITG .bxr patches

OpenITG, alpha 2 (January 27th, 2008)
---------------------------------------------
-New preference:
    BrokenBGs	- Emulate R21-style background handling
-Some code cleanup
-Fixed bugs:
    Windows: all of the weird bugs
    Wheel changes songs even when Select is held down
    Group banners do not load properly
-Unfixed bugs:
    Cancelling song selection through USB removal causes mount errors


OpenITG, alpha 1.1 (December 5th, 2007)
---------------------------------------------
-Windows build, many thanks to Sniper257
-Fixed bugs:
    Forced random on customs does not select song
    Bizarre behavior when Tab is held during forced random
    MAJOR: Gameplay input locks up on some errors
    MAJOR: Custom song loading crashes on Windows
-Unfixed bugs:
    Group banners do not load
    Cancelling song selection through USB removal causes mount errors


OpenITG, alpha 1 (December 2nd, 2007)
---------------------------------------------
-Revision 21-style song loading support, starting at PlayersFinalized().

-Settable preferences (defaults in parentheses):
    CustomMaxSeconds	- Maximum allowed song length (120 seconds)
    CustomMaxSizeMB	- Maximum allowed song size (5 MB)
    CustomMaxStepSizeKB	- Maximum allowed SM file size (100 KB)
    CustomsLoadMax	- Limit amount of songs loaded (50 songs)
    CustomsLoadTimeout	- Custom song loading timeout (5.00 seconds)
    SongEdits		- Enable/disable custom songs. (0 [false])

-Significant new code functions:
    SCREENMAN->OverlayMessage()	  - message overlay on top of screen
    SCREENMAN->HideOverlayMessage - remove message from screen
    SONGMAN->LoadPlayerSongs()    - loads songs from a player's profile
    (RageUtil) CopyWithProgress() - copy a file while sending progress
				    (fPercent) to a function pointer
