============================================================
postLoader2 b33 (updated 19 September 2011)
============================================================

What postLoader is:
----------------------------------------

postLoader is intended to be an extension to priiloader autoboot feature. It aims to replace Forwarders, HB Channel and the Wii System Channel with emulated NAND support.


Features:
----------------------------------------
* If started from priiloader it gains AHPBROT and spawn full hardware rights to homebrew applications
* Autoboot your default application/channel: If you don't press (A) in time to enter in interactive mode, postLoader will launch the predefined app (if enabled)
* Wii System Channel replacemente: Can browse and run Channels, WiiWare and VC.
* HB Channel replacement: It can be used to browse homebrew application, with it own interface. 
* Can run Titles from real and emulated NAND on SD or USB (folder support in future)
* Titles can be voted and/or hiddened
* Homebrews can be hidden
* Sort titles by vote/name
* Titles filters (System channels/wiiware/neogeo/c64... etc)
* Fast titles search
* Download title icons from wiitdb
* Support interactive application sorting
* Full support for meta.xml arguments and all other tags.
* It support subfolders for homebrew (see notes)
* Can browse SD and USB device (FAT32 on first/active partition)
* Support costom splash screen (only from SD device)
* Direct access to BOOTMII
* Full support for UNEEK environment. May work under SNEEK
* Support for Wiimote and GC controllers
* Alternat nand folder support (other that classic root)
* Intergrated UNEEK nand switcher

Installation:
----------------------------------------

(A) Real Wii: priiloader extension (ios 249 required)

PRO: Do not require an SD always inserted
CON: Upgrades are less easy. Auto update function can't work (when will be available)

1) Copy to your SD root postLoader.dol. 
2) Enter in priiloader pressing "reset" when you turn on your wii.
3) Select "Load/Install file" from priiloader menu'
4) Select postLoader.dol
5) Go back to main menu'
6) Select settings -> Autoboot: Installed File
7) Select settings -> Return to: Autoboot
8) If you wish, you can remove postLoader.dol from the SD


(B) Real Wii: priiloader extension via priibooter (ios 249 required)

PRO: Easy to upgrade. Just replace postLoader.dol on the root of your SD with newer one. When autoupadte will be available, it will works
CON: SD is always needed in the Wii

1) Copy to your SD root postLoader.dol. 
2) Copy to your SD root priibooter.dol. 
3) Enter in priiloader pressing "reset" when you turn on your wii.
4) Select "Load/Install file" from priiloader menu'
5) Select priibooter.dol
6) Go back to main menu'
7) Select settings -> Autoboot: Installed File
8) Select settings -> Return to: Autoboot
9) If you wish, you can remove priibooter.dol from the SD
10) postLoader MUST exist on the root of SD, and SD must be inside the Wii


(C) UNEEK: priiloader extension via priibooter (ios 249 NOT required)

1) Copy to your SD root postLoader.dol. 
2) Copy to your SD root neekbooter.dol. 
3) Run your NEEK environment pressing "reset" to enter in neek priiloader.
4) Select "Load/Install file" from priiloader menu'
5) Select neekbooter.dol
6) Go back to main menu'
7) Select settings -> Autoboot: Installed File
8) Select settings -> Return to: Autoboot
9) If you wish, you can remove neekbooter.dol from the SD
10) postLoader MUST exist on the root of SD, and SD must be inside the Wii
11) The first time you enter in postLoader, press (H) to enter in the menu -> Options -> select "Disable boot time USB initialization"

(D) SNEEK: Actually not supperted nor tested. You can try solution (A) also for this. (ios 249 required on neek)


Usage:
----------------------------------------

Keys (during initialization - time depends on the speed of usb init + 2 sec)

(A) Enter in interactive mode (show user interface)
(B) Skip USB initialization

Keys (interactive mode)

(A) Start selected homebrew
(B) Show selected application menu, also act as cancel on popup menu
(-)(+) Change page
(Home) Show postLoader options menu
(1)(GCX) Switch from homebrew to channels..
(2)(GCY) (only in channel mode) Show Filter menu


CUSTOM SPLASH SCREEN
----------------------------------------
Copy your png named "ploader.png" on the root of SD card. 640x480 is suggested.
Using a custom splash screen will slow a bit postLoader startup.


SUBFOLDER:
----------------------------------------
Since version 1.0b2, subfolders are supported. About any depth can be used, but keep in mind that actually postLoader support filenames long up to 255 chars.
To enable subfolder, only meta.xml MUST be present on parent folder. In meta.xml you can (should) edit <name></name> tag to give a description to that folder. An icon.png can be present, otherwise a standard folder icon is shown.

example:

APPS
  |
  |-- HB1 (folder)
  |   |-- boot.dol
  |   |-- meta.xml
  |   |-- icon.xml
  |
  |---- HB2 (folder)
  |   |-- boot.dol
  |   |-- meta.xml
  |   |-- icon.xml
  |
  |---- FOLDER	
        |
        |-- meta.xml (MUST EXIST)
        |-- icon.png (optional)
        |
        |-- HB3
        |   |-- boot.dol
        |   |-- meta.xml
        |   |-- icon.xml
        |
        |-- HB4
            |-- boot.dol
            |-- meta.xml
            |-- icon.xml
		

NOTES:
----------------------------------------

* Screenshots are from dolphin... 
* b after the version is the build number :P

priibooter.dol:

With the package is included priibooter.dol. This is a minimal forwarder to be installed in priiloader. Then it will search on the sd for "\boot.dol", "\boot.elf", "\postloader.dol". This is usefull to keep postloader updated without needing to modify priiloader settings (or your preferred dol). But obviously it require an sd in the wii. It is very fast.

neekbooter.dol:

Same as priibooter.dol, but to be used in neek. It run

NAND Folders:

Alternate nand folders are supported only on SD and USB on first partition (active)


Files you will find after running postLoader:
----------------------------------------

SD://ploader.png: custom splashcreen (added by you)
SD://ploader.sd: if it is present, usb will not be used
SD://nand.dat: cache file of nand image on sd
USB://nand.dat: cache file of nand image on usb device
dev://ploader/channels.png/: icon of installed channels (dev is the one selected the first time)
dev://ploader/channels.cfg/: configuration data for channels/titles
dev://ploader/channels.txt: dump of the last nand scan

dev://ploader/channels.txt: dump of the last nand scan
dev://ploader/ploader.cfg: postloader configuration file
SD://ploader/pldneek.cfg: neek - postloader configuration file
SD://ploader/sdonly.nek: neek - if it is present, usb will not be used


THEMES:
----------------------------------------

Since build b16, postLoader support themes. Actually only one theme at time can be used. 

Themes must be copied to dev://ploader/theme and are composed of the following files

* window.png: window elements. On load, it will be tiled 3x3 to draw corners, top, bottom, left rigth, and center of the window (if windowbk it is not present)
* windowbk.png: (optional) this is the window background. It is actually used for menues. Dimensions should be multiple of 8.
* button.png: 3x3 tile for drawing button (suggested size 24x24 px)
* button_sel.png: 3x3 tile for drawing selected button (suggested size 24x24 px)
* bkg.png: is the 640x480 background png
* frame_back.png: is the background of empty icon. This can be transparent or partially transparent
* frame_mask.png: an icon is drawn on top of this. This shouldn't be transparent
* frame.png: is the standard frame for icons
* frame_sel.png: when an icon is selected, this frame will be drawn

* theme.cfg: it is an ascii configuration containing some customizabile values:
  > grlibSettings.theme.windowMagX: how a window (for example menu) is enlarged in X axes
  > grlibSettings.theme.windowMagY: Y axes
  > grlibSettings.theme.buttonMagX: how a button is enlarged when mouseover... X
  > grlibSettings.theme.buttonMagY: Y
  > grlibSettings.theme.buttonsTextOffsetY: vertical text offset for buttons
  > grlibSettings.fontBMF_reverse = 1: font color is reversed (if 1 text is black)
  > theme.hb_line1Y: hb name
  > theme.hb_line3Y: hb path and args info. If 0 it isn' displayed (like wii theme)
  > theme.hb_line2Y: hb short description 
  > theme.ch_line1Y: title name
  > theme.ch_line2Y: title info
NOTE: actually cfg file do not accept comments (like # or ; as first character of a line)


UNEEK Nand switcher notes:
----------------------------------------
Requirements:
* Newest priibooter.dol (dist. from b31 or above) installed in priiloader
* an sd inside the wii with uneek configured
* plneek.dol on the root of sd
* the folder usb://nands containing up to 16 uneek nand subfolders

How it works:
When wii boot, plneek is executed by priibooter. It create a list of available nands. Look at message that show the boot mode and press a key on wiimote o gc controller accordly.
If you are in "UNEEK mode" and a nand image is on the root of usb, uneek is started.
The nand can be switched both in real and emulated mode. In postLoader just select [home]->Options->Change UNEEK nand and choose your nand. The wii will reboot and nand changed

NAND tracking:
If you have a uneek nand on the root of usb, you should have also an empty folder under usb://nands. plneek will search an empty folder to store back current nand before copying new one. This is done automatically, but the first time you will try plneek maybe you forget it. So current nand will be backed up in "usb://nands/backup<random number>" folder

CREDITS:
----------------------------------------

* GRRLIB (I've removed ttf support to have much smaller application)
* USB Loader GX, I've used it's app_booter.dol... it seems to give the best compatibility
* Priiloader
* CFG Usb loader (for let me understand how priiload magic words should be used)
* TriiForce: It was integrated in postLoader. I've tried to minimize the impact, so I can update postLoader as triiforce is updated.
* oggzee for helping me to solve homebrew boot problems (wiimc & cfg72)
* Dolphin: great help in testing
* GBATemp community
* davebaol for d2x and path code for ahbprot
* FIX94 video init code


SOURCEs:
----------------------------------------

Last pubblic sources can be downloaded from 

http://alturl.com/ux9vg

Please do not create a postLoader MOD. If you have ideas, if you want add code, please contribute to it.