AceKard All-In-One (AK-AIO) v1.3
----------------------------------

Credits
-------
AKAIO:
By Normmatt (http://normmatt.com), normmatt234 \AT/ gmail \DOT/ com
By Smiths of Emuholic (http://www.emuholic.com), smiths \AT/ emuholic \DOT/ com
By gelu (http://code.google.com/p/acekard-3in1/)

Based off of AKBBS' source contributions from the above and following authors:
Moogle
bliss (http://bliss.hanirc.org/blog)
kzat3 (http://kzat3.cocolog-nifty.com/blog/)

Special Thanks:
bd2rae (http://bbs.yyjoy.com/thread-45884-1-1.html)

What is This?
--------------
AKBBS has been usurped thanks to amazing efforts of Normmatt in merging firmwares!
AK-AIO is custom system software for *BOTH* the AceKard RPG and AK2 (and preliminary AK+ support), using all the features from the latest release of AKBBS(1.99) as a base. One file, two cards... with hopefully a third fully supported soon enough.

Base features
-------------
For those unfamiliar with all the additions the AKBBS (now AIO) software has in comparison to the stock firmware, here's a sampling of the bigger changes:

* Cheat Improvements - R4/XML Cheat File processing, online updating
* Plug-ins for TXT/MP3/etc.
* "Future Adaptable" Multi-loader support (AK2)
* Multiple Save Slots per title - with copying between slots
* Slot-2 Integration - EZ3in1 (w/GBA Patching) and older FlashAdvance Pro carts
* Shortcut tweaks
* Multi-page Start Menu
* Filetype-based external icon support
* Per-Rom settings for soft-reset/download play/cheats
* Copying/Cutting/Deleting SAV files along with NDS files
* Several improvements to 2byte language support
* SAV backup/restore from within GUI (.SAV<->.BAK)

Version History
---------------
AK-AIO 1.3
+ AK2i support (options that could potentially harm AK2i are disabled)
+ Added Some of Gelu's patches:
  - Faster Directory Listing.
  - New List mode - Internal nds names.
  - Lots of Soft Reset Fixes for the AKRPG.
  - new DMA mode and BBDX save fix for the AKRPG.
  - font system (fully supports unicode now :D).
  - New FIFO IPC System (Behind the scenes stuff).
  - Massive amount of soft reset fixes mainly for the AKRPG.
  - Game fixes (Brain Age 2 (K), Chrono Trigger (U/J),...).
  NOTE: because of new font system, language files now need to be utf8. Some have been converted such as English and Japanese but others will need to be saved as utf8 to work properly.
+ Added a few game related fixes (Yoshi's Island, Think Kids).
+ Japanese games now show Japanese characters in rom info window when language isnt set to Japanese
+ Files are now sorted alphabetically (Forced at the moment, sorry).
+ Loaders are now external and can be updated separately to the GUI.
+ Pokemon Diamond/Pearl/Platinum can now read saves for R/S/E/FR/LG from ewin and 3in1 (AK2 Only for now).
+ Cheat engine fixes, namely backlight codes now fully work (AK2 and AKRPG only for now).
+ Optimizations all round (Shouldn't have any lag in GUI anymore, also shouldn't experience any lag while saving).
+ Italian language added.
+ New 3in1 options window.
+ Show GBA internal name in Internal view mode.
+ 3in1 internal GBA rom header stuff and work on Save/Load prompts in 3in1 options window.
  - Enable/Disable saving 3in1 SRAM on startup (Enabled by default)
  - Enable/Disable prompting before saving/loading SAV<->SRAM (recommended!)
  - Enable/Disable the Universal Sleep Hack for GBA games
  - Blank NOR button added for quick erase
  - Dump SRAM button will manually dump the SRAM to a timestamped .sav file in the root
  - 3in1+ support (untested, but routines and discovery are in)
  - Thanks to all donators!
+ Fixed some issues with the cheat window.
  - Folders that only allow one cheat selected now function properly
  - Separate icon for skinners for single-select folders (see included skins)
+ Animal Crossing cheats on AK2. (64 one line codes limit for now).
+ Official ARDS Custom ASM Hack is properly hacked to work with the AKAIO Cheat engine.
+ Unicode font loads on a per-ROM basis
  - Default font is "kochi-mincho-subst.pcf" in /__aio/fonts directory, old unicode font removed (was 2x the size)
  - Skinners may add their own custom font to their ui's directory
  - New line in uisettings.ini "customUnicodeFont = xxxxxx.pcf" will load that font instead of default
+ Ability to hide extensions by manually adding "hideExtension = 1" to globalsettings.ini
+ DMA mode on AK2 (Hold A while loading a game to use non-DMA mode).
+ Misc bug fixes (Too many to list).

AK-AIO 1.2
+ New AKRPG/AK2 Detection Routine which has proven to be much better
+ Cheat Update functions run from plugin, giving full memory access to it and allowing updates without full AKAIO updates
  - Can choose to download USRCHEAT.DAT or CHEATS.XML and whether or not to display "Whats New" before launching
  - Should be much more stable, perhaps a teeny bit faster
  - Third option in "which cheat file to download" box displays the setting window at plugin launch, can be used for future expansion
+ Uses gelu's latest fixes for BBDX on the RPG (only works from MicroSD) - excellent work, gelu!
  - Also has some other fixes gelu's put in for 3in1 NOR erasing, etc.
  - gelu = the AKRPG master.
+ Preliminary AK+ Support. Very preliminary. As in, no help offered but know it's still being worked on (See: AK+ SUPPORT)
+ New Experimental Cheat engine for AK2 and AKRPG, please report any bugs
+ EZIV compatiblity fixed without need for special line in globalsettings.ini
+ Scrolling Non-unicode Cheats/Notes, toggle in Advanced Options (default: on)
  - Can also call cheat window in ROM Properties with SELECT (if button is visible)
+ Simple Internal Text Reader
  - System Settings -> TXT Viewer
  - Parses text, add bookmarks with X, scroll between bookmarks with L/R Buttons
  - Not as fast as native TXT plugin due to pre-processing of text files, perhaps if we had the TXT Plugin source things could be done, but that would make sense.
+ Per ROM rumble settings, ROM Options window
+ Listview mode remembered
+ 3in1 Support should be fixed, with thanks to cory1492 for testing
+ GBA Frame issue with Slot-2 booting from main list fixed
+ Asian languages should be better supported, since we're compiling the menu with DevKitARM 21
+ Variable Height Scrollbars and clickable arrows in cheat window/internal TXT viewer. 3 new BMPs for skinning: scrollbar_t.bmp/scrollbar_m.bmp/scrollbar_b.bmp
+ Super awesome hidden poweroff button in help window, add your own "poweroff.bmp" to "__aio" for fun


AK-AIO 1.1
+ USRCHEAT.DAT wifi updating support from within shell
  - Connects to Narin's GBATemp site, displays WhatsNew.txt, downloads, unzips, replaces in one step
  - UpdateDB option in Start Menu -> More -> UpdateDB
  - zlib thanks to GPF (http://gpf.dcemu.co.uk/)
  - Download speed limited by DS routine IPStack
+ (AK2) Alternate loader support, place loader(s) in "__aio/ak2loader/"
  - ROM options window, select the AK2 loader to use to launch ROM
  - Compatible with AceKard official loaders
+ (RPG) uses gelu's latest 4.09e13 softreset routines
  - Updated 3in1 routines to all of gelu's latest
+ Fixed Dragon Quest 5 (AK2/AKRPG)
  - Can now get off the ship and save file wont be rolled back
+ Can change save file extension (.nds.sav or .sav)
  - Extension conversion: .SAV file Info Window, press "Save Ext." button
  - Will convert all Save Slot SAV files as well
+ Scans for cheats on ROM Info Window (.DAT only), if exist "Cheat" button displays
+ Per file icon support (32x32x15bpp)
  - place BMP with same name in same dir as file (eg: nesDS.bmp for nesDS.nds)
+ (Source) Variable spinbox width/General cheatlist cleanups/Scrolling Messageboxes
+ (Source) Minor changes to the cheat window
+ Fixed save size problems
  - Shouldn't have any more problems with save sizes
+ Misc Skinning fixes
  - Fixed problem with Adv.Evo skin
  - Form titles moved up 1 pixel
+ SAV<->BAK routines now use native AK functions

AK-AIO 1.0
+ Runs on both AK2 and AKRPG
+ Uses gelu's latest AKRPG rom loader
+ Uses latest AK2 4.07a16 rom loader
+ Contains everything from AKBBS1.99
+ Future support for larger than 4mbit save types (only supports 64mbit at the moment)
+ Applied Bliss' AR Engine fixes to the AKRPG
+ Hopefully fixed most of the soft reset issues with the AKRPG

Special Notes
-------------
Seeing as this release has experimental support for saves ranging all then way up to 128mbit, please err on the side of caution and backup your saves before using this firmware.
The "__RPG" and "__AK2" directory is now simply called "__AIO"
Existing users should make sure to rename their system directory, and update globalsettings.ini to reflect the new hidden directory.

AK+ SUPPORT
---------
AK+ support is very experimental. It has been reported you need to download the software from the following URL:
http://www.acekard.com/download/ak+/akmenu_4.07_for_akplus.zip
and extract the "akmenu2_fat.nds" to the root of your SD card to even attempt to get things to load.
AK+ support is constantly being worked on, but know it's not really "supported" yet.

Known Bugs
----------
Plugins have not been fully tested on both cards. Potentially could be broken.
Detection routine sometimes has problems with some SDHC cards (Detects AK2 as RPG). With no SDHC cards to test, we're working blind on fixing this
Sometimes, some games on an RPG (Mario Kart, Final Fantasy) have errors in detection in the latest USRCheat.DAT files.  This should be fixed since we're compiling with an older DevkitARM, but just in case, you can change what the downloader downloads (usrcheat.dat/cheats.xml) before running the plugin.

ToDo
----
* Keep working on Acekard+ support
* Fix any bugs that crop up
* Wait on a new DevKitArm that fixes the Unicode text display problem & cheat parsing looping so we don't need two versions of devKitARM to make this

Also
----
Cheats included are from Rayder's awesome compilation at GBATemp, now maintained by Narin, and are current as of the date of this release.
For the most up-to-date files, check GBATemp's release site (http://cheats.gbatemp.net/), either via PC or by using the "UpdateDB" option in the start menu.