+-----------+
| CHANGELOG |
+-----------+

[ d2x v10-b52-Stealth-RC24 ]

- Same as v10 beta52 except added RiiConnect24 RSA Key and updated FAT module to add Emunand support for drives hidden by UStealth, source and more info here:
https://gbatemp.net/threads/ciosx-rev21d2x-yet-another-hot-fix.277659/page-163#post-5092147

[ d2x v10 ]

- Added support for Virtual Wii bases 56/57/58.
- Reverted to r43, i.e. last v8 revision. Also ported some useful fixes and
  features from r49, i.e. last v9 revision, especially:    
  * Fixed an EHCI issue in ReadCapacity that prevented certain usb devices from
    working (tnx to digicroxx).
  * Fixed an EHCI issue in GetDescriptors that prevented certain usb devices
    from working (tnx to digicroxx). 
  * Removed from ciosmaps.xml the patch to skip the process id check inside
    os_software_IRQ(4).
  * Fixed content id for bases 60/70/80 in ciosmaps.xml (tnx to dragbe).
  * Added maked2x.sh to build the cios on Linux (tnx to r-win).
  * Added stripios source to svn.
  * Removed the easter egg introduced by Waninkoko in cios rev20.
  * Minor changes and code clean up.

[ d2x v9 ]
- Switched to d2x-alt branch.

[ d2x v8 ]

- Enhanced stealth mode to prevent cios detection.
- Added ioctl command to enable/disable stealth mode when a game is not
  running. Stealth mode is enabled by default.
- IOS reload block is now enabled by default.
- Fixed IOS reload block failure when the original IOS required by the game
  is not installed. It works for real and emu nand.
- Fixed return to channel failure when the system menu is not installed on
  emu nand.
- Fixed missing cache flush when removing error 002 after IOS reload block.
  Now syscall kernel_set_version is used instead.
- Added direct access to syscalls. This allows you to invoke a syscall from
  inside another syscall.
- Added support for paths starting with '#' which are used to open files on
  real nand even if nand emu is on. Also, access to these paths is protected
  by stealth mode.
- FAT files are now opened through relative path to fix issue 16. Now Disney 
  Universe and all the games using long paths work properly in nand emulation.
- Disabled file sharing control in FAT module to overcome a stupid issue made
  by developers in The Beatles Rock Band. See issue 11.
- Fixed black screen in partial emulation when starting a game never launched
  before on real nand. See issue 14.
- Added support for virtual sector size on WBFS drives to bypass the 500 game
  limit (thanks fig2k4). The optimal sector size is 4KB, that allows up to 4084
  games. Note that this feature is useful only for the loaders that don't use
  the fraglist for WBFS partitions, for example NeoGamma, WiiFlow and CFG.
- AHBPROT is now really enabled.
- USB Gecko functions completely rewritten. Now it's really plug&play and the
  cios works even when debug mode is enabled and USB Gecko is connected only to
  the Wii (tnx to mini source).
- Removed the unused method 1 for IOS reload block.
- Minor changes and code clean up.


[ d2x v7 ]

- Refactored all modules and plugins in order to achieve code reuse through
  a new common library.
- Updated ciosmaps.xml to include the IRQ4 patch required by the new
  experimental EHCI module (not released yet).  
- Used a more proper offset to detect DL games like Sakura Wars.
- Disabled nand emulation before returning to system menu or channel.
- Improved error 002 fix after ios reload block. Now Wii Fit Plus channel
  installation works properly.
- Fixed missing identification and patch for base IOS60-v6174 in ES plugin.
- Added auto detection of the first FAT partition on the device when nand
  emulation is activated without specifying any partition.
- FAT Module moved a bit forward in memory in order to create the space
  required by the new experimental EHCI module (not released yet).
- Fixed a bug when closing FAT module.
- Fixed an alignment issue on file renaming in FFS plugin.
- Removed support for base IOSs with old version like IOS38 v3610.
- Added ios reload block capability for nand emulation.
- Removed FAT ISO loading support from DIP plugin (never used by any loader
  and completely useless now thanks to fraglist capability added in v6).
- Fixed a memory alignment issue that could break ios reload block.
- Added bidirectional escape for invalid FAT characters in nand emulation.
- Now FAT_GetUsage returns fake values for WiiWare/VirtualConsole and real 
  values taken from FAT for disc-based Wii games. This workaround has proven 
  to improve nand emulation compatibility. 
- Added a thread to make the drive led blink when writing to FAT.
- Added nand emulation mode rev17-like (experimental).
- Fixed COD MW3 online update on full nand emulation. More generally this fix
  should improve compatibility with DLC installation on emulated nand also for
  games like COD Black Ops, Rock Band 3 and Guitar Hero 5.
- Now the tree /import is emulated in partial mode too. This way COD MW3 online
  update and DLC installation work properly in partial emulation.
- Added a hack that allows No More Heroes 2 to create the save file in nand
  emulation mode (tnx to Sneek source).
- Minor changes and code clean up.


[ d2x v6 ]

- Added fraglist to support potentially any file system (tnx oggzee).
- Added support in fraglist for sector size up to 4K (typically required
  for hard drives greater than 2TB).
- Fixed a compatibility issue with libfat/libntfs in EHCI module.


[ d2x v5 ]

- Added USB/SD support for games affected by ios reload. Currently only WBFS
  partitions are supported (tnx WiiPower for your help).
- Fixed dual layer detection for games like Sakura Wars.
- Fixed GameCube audio streaming command for retail discs (tnx WiiPower).
- Added missing patches for base ios 53 and 55 in ES module. 
- Minor changes and code clean up.


[ d2x v4 ]

- Fixed error 002 in method 2 for blocking ios reload.
- Repeated ios reload are now supported by method 2.
- Added support to reload any ios, not only 249.
- Added "return to channel" feature compatible with all games out there.
- Fixed a bug in nand emulation to properly support HDD greater than 1TB.
- Added support for sector size up to 4KB (typically required for hard drives
  greater than 2TB).
- Removed file logging introduced in v3 since has proved harmful to games like
  LostWinds and LostWinds Winter of the Melodies.
- Updated FatFs to 0.8b. This allowed us to remove the workaround on file 
  renaming introduced in d2x v3.
- Fixed a potential buffer overflow while reading a directory.
- Fixed the error code returned by FAT_Readdir when the requested folder is
  an existing file (now all Strong Bad episodes are working properly).
- Fixed a bug in FAT_GetStats (now games like Max & the Magic Marker,
  FFCC My Life as a King and FFCC My Life as a Darklord are working properly).
- Fixed a bug in FAT_Seek to prevent from increasing the file size when seeking
  out of the file.
- Fixed the length of the output buffer in FAT_ReadDir.
- Changed timing logic in FAT module.
- Minor changes and code clean up.

  NOTE:
  Currently ios reload block improvements are only relevant to disc loading!!!
  Blocking ios reload for usb loaders will be investigated in future releases.


[ d2x v3 ]

- Fixed a bug in nand usage causing save creation failure in WiiWare games
  like Tetris Party, FFCC My Life as a King and Brain Challenge.
- Fixed the deletion of folder /tmp on nand emulation start up.
- Added a workaround to fix a bug on file renaming causing the failure on 
  the 2nd save in games like The Will of Dr.Frankenstein.
- Added multiple partition support for nand emulation (default partition is 0
  for backward compatibility).
- Implemented logging system to make debugging easier.
- Fixed a bug causing the message "corrupted data" in The Tower of Druaga.
- Fixed a bug causing stall in LIT.
- Other minor changes and code clean up.


[ d2x v2 ]

- Fixed secondary USB port lag.


[ d2x v1 ]

- Fixed wiimote lag issue by restoring timing logic from cIOSX rev19.
- Fixed wiimote synch delay on WiiFlow start up by changing initial period 
  in timer creation.
- Fixed os_restart_timer with the correct number of arguments.