Change log
----------

0.3.7 build 58
--------------
|-Fixed: Sort by region column caused the app to hang when the language wasn't English.
|-Fixed: WBFS Disc Info Size wasn't calculated correctly since around build 56 or 57.
|-Fixed: Texture blending mode for covers.  They were blending onto black, instead of the background.
|-Added: IOS version shown on all the lists.
|-Fixed: IOS version wasn't correct for all games. I was also reading the IOS for all partitions instead of just the data partition.

0.3.7 build 57 (debug)
----------------------
|-Added: Untranslated strings are now at the end of the lang file.  After translating some of them, run "Update language strings" again to reorganise everything.
|-Added: 2 version values in lang files. "Strings version" = contains all the strings for this version of WBM. "Translation version" = strings are translated up to this version. Translators should manually change this value to reflect the version they translated for. ie. After you translate the strings, "Translation version" should equal "Strings version".
|-Added: Wrote a file download class using WinInet.  It's much more stable than anything else I tried. Now downloads can be paused, resumed and stopped on demand.  The app can be safetly closed at any time too, without error.  Use internet options in control panel to set a Proxy and delete the cache etc.
|-Changed: Stopped using the SVN version of fastmm, it causes errors in Delphi XE. Now using the Built in Delphi version.
|-Added: Jobs page to view and work with the job queue.
|-Changed: Rewrote the job queue system so it's threaded. (Rewrote it 4 times actually :p)
|-Fixed: Temp files weren't deleted when adding archives to the files page. The problem must've existed since changing to using the 7Zip DLL.
|-Fixed: Invalid date format when removing backup logs, causing the app to crash on start up.

0.3.7 build 56 (debug)
----------------------
|-Fixed: Scene freeze when changing the cover display types with the OpenGL renderer.
|-Added: Version checks etc. for the renderers because sometimes they can initialise OK, but if the available API is too old then it can cause the app to hang.
|-Fixed: OpenGL renderer code. It should init OK now.

0.3.7 build 55 (debug)
----------------------
|-Fixed: Fixed startup errors when no compatible 3D API was available (OpenGL/D3D)
|-Added: Application icon by NahuelDS. Thanks.

0.3.7 build 54 (debug)
----------------------
|-Added: Invalid cover images are automatically deleted and re-downloaded when necessary.
|-Added: Column to show IOS version on the files page. I'll add it to others soon.
|-Added: %APP% tag that can be used in the temp and cover paths to make them relative to the app folder. 
|-Added: Cover support.  Download and display on the fly or use the menu to download missing covers. Plenty of options to customise how you want use it.
|-Fixed: When "Use mounted volumes only" is clicked in settings, any edited display names are saved before rebuilding the drive list.
|-Changed: Volumes and partitions use the display format "Drive (1:1)", where the numbers represent the disk/partition number.
|-Added: Support for disk partitions not recognised by Windows. See the entry below for an example of how this can happen.. 
|-Added: When formatting to WBFS, the partition type is updated in the MBR as 0x07 (PARTITION_IFS).  If formatting from ext3 for example, the drive is much harder to detect in Windows.  Changing to IFS even allows a drive letter to be assigned.
|-Added: GPT disk support in various functions, like the FAT32 format.
|-Fixed: Column data in the settings file caused an AV on startup. Something wasn't saving correctly since the move to Unicode.  I worked round it by saving/loading a compressed version of the data.
|-Fixed: More translation stuff.  Square brackets were getting removed and Radio buttons weren't translated.
|-Fixed: I totally rewrote the "Remove" menu functions.  It was reported that there was an AV after removing discs from a WBFS drive, so the new code handles things differently.
|-Fixed: I was removing colons ":" from the langstrings.txt and language files when automatically updating the language strings.

0.3.6 build 48
--------------
|-Added: Select the archive types you want enabled in the settings dialog.
|-Fixed: When mounting a custom folder, if there was an invalid disc, the thread terminated early so all the discs wouldn't be listed. 
|-Fixed: Random (Y),(Z) etc. are trimmed from Chinese strings. I still can't remove them from the menus for some reason.  I'm not sure if this even happens when using a Chinese version of Windows.
|-Fixed: Some integer overflow errors. Forced 64 bit math in a few other places too, as a precaution.
|-Fixed: I forgot to inject debug info into the exe, so the stack traces in the were useless. Now they'll show me the exact line number in my source where the error happened.
|-Fixed: DiscIndexFromID function didn't work with the file naming conventions, so duplicates were allowed to be transferred to drives. ie. "Some selected items already exist on Drive.." message was never shown.
|-Added: Links to the Wiki and GBAtemp forum in the help menu.
|-Changed: Feedback form.  Now it creates a new email with your default client, using MAPI.  You can still attach the log and language file.
|-Fixed: I got the Chinese languages mixed up, traditional and Simplified.
|-Fixed: Transfers from Drive->DVD weren't using thread safe progress updates.

0.3.6 build 43
--------------
|-Fixed: Directly after editing a title, the text color showed it as a WiiTDB or Custom title, even if it matched the original title.
|-Changed: "Allow changes to WBFS disc header" is disabled by default to stop accidental file changes. So only on-the-fly titles are used, changes are saved to custom-titles.txt.
|-Fixed: When custom-titles.txt was disabled, a message was still shown on single click instead of double click. 
|-Fixed: titles.txt language wasn't saved correctly.
|-Fixed: The wrong titles.txt languages were downloaded in the settings dialog.

0.3.6 build 42
--------------
|-Added: You can add gamecube ISOs on the files page, but transfers are broken so they're not usable yet.
|-Fixed: Loads of little things.
|-Disabled: All database stuff for now.  If you want a little preview run WBM with a "testdb" parameter. Stick the WiiTDB.xml in the app folder to use it.
|-Added: Some new language files and export template for HTML.
|-Added: You can quickly send the current language file via the feedback form. Send me new/updated translations. The original author has priority when it comes to updating.
|-Added: "Update language strings" in the language menu.  Automatically generate language strings and update existing files in the language folder.  It adds/removes strings so that the files are ready to translate for the current version of WBM.
|-Added: Version info in the about dialog is automatically updated and now includes a build number.
|-Changed: Debug level now only applies to what you want to see in the log.  The log file will always contain "Full debug" information.
|-Changed: Email address in about dialog to WiiBackupManager@gmail.com, which is also used for the feedback form.
|-Added:  Feedback form to report bugs etc. in Help->Feedback menu.  You can also attach the current log.
|-Changed: Totally rewrote the logging system.  Logs are saved to file in real time, in case of a crash the log will still be available.
|-Added: Ability to use Wii discs that have invalid entries in the partition tables.  Only a bad game partition is considered to be a fatal error now.
|-Fixed: UTF-8 loading/saving wasn't working since changing the app to unicode.  It should work better than ever now, with all characters displayed correctly.
|-Changed: GameID_Title.txt file is created when using only the game ID as the naming style. Any other setting doesn't need it.
|-Added: Naming conventions for files, just the same as folders.  So you can store all the files in one folder and rename to "Title [GameID].wbfs" etc.
|-Added: Database viewer page.  Browse all know games in the WiiTDB database.
|-Added: WiiTDB.xml support.  When updated, the xml is converted to a faster database structure. WiiTDB.db and WiiTDB.idx files are created.


0.3.6 beta 1
------------
|-Fixed: CD-R info incorrect. Probably the same for CD-RW etc. 
|-Fixed: A simple threading issue caused the app to crash when selecting a DVD drive.
|-Added: Loads of little error checks and interface improvements.
|-Fixed: Drive space was incorrect for unmounted FAT32/NTFS drives. Microsoft docs say a trailing backslash in the drive path is only needed with GetDiskFreeSpace() in Win95/98 = wrong.
|-Added: Options to set the locations of titles.txt and custom-titles.txt.
|-Added: Option "Target DVD write speed".  When burning DVD, the closest supported speed will be used. 
|-Added: Erase DVD function in the tools menu for erasable discs.
|-Added: Transfer to DVD functions using IMAPI2.  Files are converted to ISO/Trimmed ISO on the fly while burning. Only single layer supported for now. IMAPI2 installation will be required on XP.
|-Fixed:  Game IDs loaded from selection files are trimmed of any extra whitespace.
|-Changed: "Drive" menus are now combo boxes.  This is part of the fix below.
|-Fixed:  When a drive is inserted and the a drive menu is dropped down, there was a "component name already exists" exception.
|-Added: Drive format dialog will offer to dismount the selected drive if it's already in use. Unless a transfer is in progress etc.
|-Added: Clicking on an entry automatically scrolls the selected column into view.
|-Changed: Double click to edit entries (instead of single click)
|-Changed: Default split size is now 4GB.
|-Changed: "Extract rar before..." option changed to "Archive Extraction" to select the sample size to extract when adding to the file list, or full extraction.
|-Added: Support for 7-Zip's split files (*.7z.001, *.zip.001 etc.)
|-Added: More archive support using 7-zip dll. (7Zip, Zip, multi-volume Rar, Bzip2)
|-Added: View menu to show/hide stuff.
|-Fixed: Incremental search now scrolls the selection into view.
|-Added: Startup options.  Select a list of Folders to load on files page and Drives/Folders to mount on the drives pages.
|-Changed: Language file "settings dialog width" defaults to 400 and made the settings dialog a bit larger. lang files changed to version 36. See "US English.lang".
|-Added: Language file display name option in lang files.  See "US English.lang".
|-Fixed: When hiding drives, the drives were also hidden in the settings dialog meaning that they could never be unhidden.
|-Fixed: Divide by zero error with transfers that take less than 1 second
|-Fixed: Drive formatting routines should be working as expected now.
|-Added: The app is now fully unicode enabled.

0.3.5 (unreleased)
------------
|-Fixed: Custom titles weren't encoded to UTF-8
|-Fixed: App couldn't be terminated when there was an error writing the settings.
|-Added: Mount mode for WBFS drives. Normal (Self explanatory), Force (Use this if the partition size was changed) and Recovery (Use this if accidentally re-formatted to WBFS or the header is damaged etc.)

0.3.5 beta 1
------------
|-Fixed: Read-only file handling. If write access fails, then files are opened as read-only (when it's valid to do so).
|-Added: Multi language support. UK English by default.  I did a US English translation but the only difference is the word "Colour" :)
|-Added: French translation by redia
|-Added: German translation by Kaligula
|-Added: Brazilian Portuguese translation by leo_bsb
|-Added: Dutch transation by spidy1000
|-Added: Inline editing for titles/ID/Region.  Only the title is editable with read-only files, which will be added to the custom titles file.
|-Added: New list column. "File access", which shows if a list entry is considered to be read-only.
|-Added: Option to "Allow permanent changes to Wii discs". Write title/ID to the Wii disc header in ISO/CISO/WBFS. 
|-Added: Option to "Allow changes to WBFS discs". Write title/ID to WBFS disc header. This must be enabled for the above option to work with WBFS too.
|-Added: New column, "Original title".  This shows the title stored in the file.
|-Changed: Display order for titles.  In order of priority...  Custom, WiiTDB, original.
|-Changed: Rename functions use the new display order.  So what you see in the list is what's written to the files and also used for the file/folder names. 
|-changed: CustomTitles.txt is now custom-titles.txt for CFG 52b2+ compatibility.
|-Changed: Settings dialog layout so it's easily adjusted to fit the text width of different languages.
|-Added: Spanish translation by 6izmo.
|-Added: Traditional Chinese translation by TeenTin.
|-Added: Simplified Chinese translation by sniperz
|-Added: Drive/DVD insert and removal detection.
|-Added: Cached drive lists for the menus, format dialog and settings dialog.
|-Added: Game list export with templates.
|-Added: More comprehensive game region list.


0.3.4r5
-------
|-Changed: Reverted WBFS AddDisc() routine to the way it was previous to 0.3.4
|-Changed: ISO, CISO and WBFS files are opened as read only.
|-Fixed: Bug in the fix partition function that didn't quite work when remapping all the partitions in SSBB.  That game showed an fst error when not using "Game only".

0.3.4r4
-------
|-Fixed: AV after transferring DVD->ISO.
|-Fixed: DVD read errors weren't logged correctly.
|-Added: New option to "Use buffered transfers".  It could be handy to disable this when transferring over a network etc. but it's slower for normal use.
|-Added: Average transfer speed shown in the log, once finished.
|-Fixed: Some results weren't added to progress logs and some were added twice.
|-Fixed: Progress events for mounting a drive weren't all assigned correctly.

0.3.4r3
-------
|-Fixed: All header popup menus now show/hide columns correctly
|-Fixed: WBFS split style wasn't applied with transfers to WBFS file, so it was always set to Auto.
|-Fixed: Duplicates checking with transfers from the files page didn't work and would get caught in an infinite loop, causing the app to freeze when de-selecting the items.
|-Fixed: "Update storage convention" functions didn't handle .wbf* files.

0.3.4r2
-------
|-Fixed: I left in a line of code that made invalid ISOs terminate the "add files" thread..

0.3.4
-----
|-Added: New folder name layouts compatible with CFG 51b+
|-Added: WBFS split style.  Auto, Unlimited, 1GB, 2GB, 4GB.
|-Added: New items on the files page "Select" menu. Save/load from file.  A list of selected IDs are save to file so these entries can be quickly selected by loading the .sel file.
|-Added: Safely remove corrupt WBFS discs.  For now, only WBFS discs with a bad header are considered to be corrupt.
|-Added: "Tools->WBFS->Fix free blocks".  This will compare the allocated blocks on a WBFS drive with blocks actually used by the discs stored on it.  If there's any blocks found to be allocated, but unused, they're marked as free.  This is used to free blocks after removing corrupt discs, since the header can't be trusted.  It should be handy to recover some space after failed transfers with apps that don't handle it correctly.
|-Added: New option "Ignore storage/naming convention for transfers to WBFS file".  When enabled "Transfer->WBFS file.." will use the title as the filename, with no sub folder or text file.
|-Added: Batch DVD mode. When enabled, the progress panel stays open waiting on the next DVD.  Once inserted, all game partitions are selected and the transfer begins automatically.
|-Added: Drag and drop the list columns to rearrange them.
|-Added: Select which columns are visible via right click menu. I can add some useless info columns now. :)
|-Added: Incremental search on lists. eg. Quickly type "mar" to go to the next entry that contains that text.  There's a 1 second timeout, so if you type again too quickly, then you might be trying to search for something like "marmar".  If you here a beep or it acts strangely, wait 1 second for the search text to get cleared before trying again.
|-Added: Mini log on progress panels.  This shows only success/failure/warning for transfers etc. The panel stays open when an error occurred.  See the main log for details on errors.
|-Changed: Progress panels show in a scroll box on the right side of the window.  Using the scrollbox reduces the amount of space needed for multiple progress panels.
|-Fixed: WBFS drives now show up using detection via drive letters.  I introduced a feature that only showed drives if it had a disk inserted, now it only checks if the drive exists.
|-Added: Automatically request admin privileges, which are needed to work with WBFS drives.
|-Added: WinAPI functions used to format NTFS/FAT32, with native Delphi FAT32 format code now used as fallback.
|-Added: Option to select whether MD5 hashes are automatically calculated during transfers.
|-Added: Mount custom folders on the drive pages via a "Custom folder" item in the drive menus.
|-Changed: WBFS AddDisc() routine uses too much CPU time copying 1 Wii sector at a time.  I changed it to copy whole WBFS sectors at a time where the whole sector is actually used. If parts of the WBFS sectors are unused, then they're copied 1 Wii sector at a time, like before.  This almost halves the CPU usage on my system.
|-Added: New list columns; Game region, file type, Wii disc partitions. Partitions types are U=Update, G=Game, C=Channel, O=Other
|-Added: Format dialog doesn't display system or network drives.
|-Added: With incremental search, uppercase does a full title search, lowercase searches using the start of the titles.
|-Fixed: Dual layer ISO size was wrong.
|-Added: Options to auto rename from titles.txt on transfer to drives and WBFS files. 
|-Added: Option to use on-the-fly titles for storage conventions, ie. file and folder names, without renaming the internal titles. Transfers to ISO/CISO always use it.
|-Added: ISOs are now also renamed from titles.txt. The internal title isn't changed, only the file/folder names.
|-Added: Menu item  on drive tools menu, NTFS/FAT32->Update storage convention.  To manually update it, rather than using "Update when drive is mounted" in the settings.
|-Changed: Keep all Wii disc partitions by default.


0.3.3
-----
|-Added: Full scrubbing (clean) mode.  Full scrubbing will use only ~used~ Wii disc sectors, the rest will be filled with zeros.  Without full scrubbing, some junk data will remain.
|-Changed: RAR extracts 20MB of data to get disc info, instead of the previous 4MB.
|-Added: "Game titles->Rename ??" functions use custom titles as well as WiiTDB.  Custom titles have priority over WiiTDB just like on the fly renaming.  So the titles displayed are the titles that are used when renaming.  This was added in previous versions, but I forgot about it.
|-Added: Automatic WBFS file split size.  Unlimited on NTFS, 4GB on FAT32.
|-Changed: Totally rewritten ISO/CISO writing routines to use the Wii disc exactly like the WBFS partition AddDisc().
|-Added: Various functions in the drive tools menu for calculating/verifying MD5 hashes. Verification results are shown on in the log for now.
|-Fixed: With Add->Folder function, pause and cancel buttons didn't work when the files were being added.
|-Fixed: Multiboot disc transfers didn't work correctly when the disc contained anything other than game partitions.
|-Fixed: Some multiboot disc titles had a couple of binary ones after the real title, which caused an error -32 when loading the wbfs partition in CFG.  I fixed this before the first release of the multiboot handling code, but uncommented the line that caused it for some reason.  I've removed this line of code completely now.

0.3.2
-----
|-Fixed: .wbf to WBFS. This was a flaw that also existed in libWBFS due to different block sizes on larger drives.
|-Added: Hash calculation from used Wii disc sectors only, for WBFS and .wbfs. This will allow reproducible hashes from any source as long as the partition usage is the same.  There's no hash check function yet.

0.3.1
-----
|-Changed: Compiler version back to Delphi 7, which seems to fix all the silly AVs.
|-Fixed: CISO. Now uses the same block size as WBFS files. So all CISOs saved from WBM should be identical regardless of the source WBFS block size.
|-Added: Select "Items not in file list" for drive pages.
|-Added: Reduced sparse file fragmentation by allocating the file size before setting sparse mode.  Thanks to oggzee.
|-Added: Drive detection via assigned drive letters.  This allows the use of mapped network drives as well as adding support for Wine and fixing other drive detection issues. There's an option to use unmounted volumes in the settings dialog.
|-Fixed: Transfers to NTFS ISO couldn't be cancelled.
|-Fixed: If the temp folder name in the settings file was blank when opening the app, all of the tabs were missing. 
|-Fixed: All ~known integer overflow errors.
|-Fixed: Sparse ISO size on drive.  Any holes that should be sparse are now correctly written. Thanks to oggzee again.
|-Fixed: Drive sizes in the format dialog.
|-Fixed: Multi-volume RARs now show the correct ISO size.
|-Fixed: Renaming of folders where the old and new names are identical except from the case. eg. Renaming from "POP!" to "Pop!" wouldn't change the folder name.
|-Fixed: Bug introduced when changing the titles colours. I originally had 5 colours, but changed it to 3.  The settings dialog was still using 5 internally which would cause some memory to get accidentally overwritten, causing an AV when closing the settings dialog.

0.3.1 beta 3
------------
|-Changed: Disabled overflow check, since it's stupid having the app crash for non-critical errors. It might even help track down where the overflow is, otherwise it'll just disappear, never to be seen again.  Time will tell..
|-Changed: System error messages now show the error code as well as the description
|-Changed: Disabled MD5 hashing for now.
|-Changed: Full debug by default (change it in "Debug level" menu on the log page)
|-Changed: Application exceptions should be logged, instead of showing the message dialog
|-Fixed: DVD->WBFS file should work.

0.3.1 beta 2
------------
|-fixed: Integer overflow during transfers
|-fixed: WBFS partition closed after transfer, which caused errors when batch transferring.
|-Changed: CISO writing method to create smallest CISO possible, regardless of the source. (Experimental)
|-Added: New NTFS partition support.  Choose whether to save ISO or WBFS files on NTFS.

0.3.1 beta
----------
|-Changed: Drive->drive and files->.wbfs now use the standard routines converted from libWBFS.
|-Changed: Disabled Data integrity/hash checking for this version.
|-Fixed: Drive usage bar colours applied when settings are read from the ini.

0.3.0
-----
|-Added: WiiTDB titles support (titles.txt).
|-Added: Download titles.txt from the settings dialog.
|-Added: Custom Titles support (CustomTitles.txt).
|-Added: Double click drive entries to edit manually. Changes are saved to CustomTitles.txt if enabled.
|-Added: MD5 Hash functions for .wbfs/WBFS.  Hashes are calculated when adding a disc to the drive and can be used to verify the data is still intact at a later date. You can also calculate missing hashes for existing entries.
|-Added: Custom colors for Drive usage bars, Progressbars, titles and log.
|-Changed: Reverted to using the unRAR DLL.  Embedding it in the exe was causing problems.
|-Added: Support for the new WBFS file storage convention.  You can now store the files in sub-folders or in a single WBFS folder. With an option to automatically convert to the chosen convention when a drive is mounted.
|-Fixed: Range check error caused by the remaining time falling below zero.
|-Added: Duplicate files in the file list now handled correctly, so it isn't possible to transfer duplicates to a drive or convert to other formats.  Allowing this would just be a waste of the user's time because the first files would be overwritten by the duplicates.
|-Added: Manual/Custom titles can be edited on the files and DVD pages, without actually changing anything in files.
|-Added: WBFS Read retry. On read error, check for valid handle and recover if possible. 

0.3.0 beta 4
------------
|-Fixed: Problem with sorted columns with items over 4 GIG, introduced in beta 3
|-Fixed: "Not enough space" with some operations. They were referencing total size instead of selected size.

0.3.0 beta 3
------------
|-Changed: Progress panels/bars hopefully for the better
|-Changed: Drive usage status/progress bars
|-Fixed: Multiboot disc to ISO/CISo didn't use the partition ID/title
|-Fixed: DVD to large WBFS drive didn't work. The buffer was too small, so now it's dynamically allocated.
|-Fixed: Various operations didn't use thread safe debug events.
|-Added: Stupid not having it before. Read/write errors now show the windows GetLastError() message in the log.
|-Fixed: Error when transferring multiple discs from WBFS to WBFS File. Caused by the workaround for writing WBFS files to same folder as the source, for resplitting.
|-Fixed: Drive to ISO/CISO didn't use temp files.
|-Added: Option to hide drives. This replaces "Show USB only"
|-Added: Option to change drive display names.
|-Added: If there's a bad Wii disc partition table entry, it's recognised instead of the many problems it could cause.  eg. locking up the app, using tonnes of memory etc.
|-Added: RAR password dialog.

0.3.0 beta 2
------------
|-Fixed: Duplicate drives in the drive menus and format dialog in some situations.
|-Fixed: Changes to "Show USB drives only" are reflected in the format dialog.
|-Fixed: .wbfs->.wbfs using the same folder as source and destination (for resplit etc.)
|-Added: Check if the destination file is going to be exactly the same as the source. eg. .wbfs->.wbfs with the same split size is pointless. The transfer list is also sorted by size to rule out smaller files as soon as possible because they don't need re-split.

0.3.0 beta 1
------------
|-Total rewrite.