===========================================================================================
|
|   UNOFFICIAL SNES POWERPAK FIRMWARE V2.02 (CODENAME: "SIMBA")
|   (c) 2012/2013 by ManuLöwe (http://www.manuloewe.de/)
|
|	*** USAGE & INSTALLATION ***
|
===========================================================================================



   A WORD OF WARNING !!!
______________________________________________________________________

Despite thorough testing, this software is NOT guaranteed to be bug-free. There are likely even critical issues in this software which might at worst corrupt data on your CF card and/or render your SNES PowerPak useless and/or damage your SNES control deck, as well as any accessory connected to it (like joypads, your TV set, etc.).

The developer, ManuLöwe, will NOT be held responsible for any harm directly or indirectly caused by this software and/or the documents accompanying it, which you agree upon by downloading, installing and using this software. For more information, please read the disclaimer further below.

Most importantly, this being unofficial software, you will definitely void the five-year replacement warranty granted by the manufacturer of your SNES PowerPak!



   OVERVIEW
______________________________________________________________________

Thank you so much for downloading and installing my unofficial firmware v2.02 (codenamed "SIMBA") for the SNES PowerPak!

As a huge fan of this awesome flashcart myself ever since it was released in late 2009, I decided to give it a much-needed menu redesign earlier this year. Starting off as a simple font hack, this project quickly evolved into a full-blown, time-consuming GUI overhaul as I discovered how much more was possible, and necessary, in the process. Eventually, after obtaining The Sourcecode(tm) from the original developer, I was able to progress ever faster and smoother, the result of which is finally here for all SNES PowerPak users to enjoy. :-)

Major new features include an overall more flexible user interface with more intuitive joypad button mapping (see the section after next for details). An in-operation customization area lets you switch DMA on/off, choose between three logo/cursor sprite sets, and select one of six HDMA background color gradient designs to adapt the PowerPak GUI to your individual liking. This, as well as the completely rewritten music player (now based on blargg's fantastic SPC uploading routines), aims to push the SNES PowerPak to a point where it shows its full potential, or at least something close to it.

The core change since v1.0X, however, is using the Super Nintendo's pseudo horizontal high resolution (BG mode 5), which now allows the filebrowser to display well over 50 characters per entry. Although this slows down file browsing to a certain extent due to the higher amount of LFN data being loaded, it helps to distinguish between ROM and save files with especially long yet similar names. For example, suppose you have these two ROM/savefile pairs on your CF card:

Final Fantasy IV (English) - Cosmetic Changes.sfc
Final Fantasy IV (English) - Cosmetic Changes.srm
Final Fantasy IV (English) - Cosmetic Changes 2.sfc
Final Fantasy IV (English) - Cosmetic Changes 2.srm

The two games will not only be visibly different now, but also auto-load their respective savegame files without mistake!

Despite all these additions, speed has even improved since v1.0X thanks to a completely rewritten CF software interface, performing 16 bit math wherever possible. Additionally, I spent time fixing countless bugs and many a quirk, and added some unobtrusive yet nice-to-notice graphical enhancements here and there.



   INSTALLATION
______________________________________________________________________

To install this unofficial SNES PowerPak firmware v2.02, you have two alternatives. Choose one, depending on your PowerPak's hardware revision and/or your technical knowledge and equipment. The first option is recommended because it is basically fail-safe -- but it only works with earlier carts. The second is fast, convenient, and should work with any cart revision -- but it involves a higher risk as well.

1) The Safe Way
------------------

Prerequisites:
   - A SNES PowerPak with a socketed flash boot ROM chip, e.g. PCB revD or revE. The hardware revision can be determined without opening up the cartridge by looking at the printing on the PCB in the CF card slot.
   - An external PLCC32 programmer, e.g. a parallel Willem device.

Steps necessary:
   - Reprogram your PowerPak's boot ROM chip with <this release's archive root>/src/out/loader.bin
   - Replace all (!) files in the "POWERPAK" directory on your CF card (yes, including the TXT files) with the contents of <this release's archive root>/POWERPAK (whilst keeping the contents of your "SAVES" directory, if applicable)

The first step is likely the more difficult one. First of all, you have to open up your SNES PowerPak and remove the sticker (if there is one) from the boot ROM chip. My own cart is a revD with an ATMEL AT29C010A type of chip. If you have a revE, you'll likely find an SST39SF010A chip in there. Next, remove the chip. Be very careful! It's likely not glued in, but I still had an incredibly hard time getting it out of the socket. This should be done with extreme care in order to avoid damage to you, the PowerPak, and/or any equipment you might be using. PLCC32 tweezers are recommended, though even these might cause damage to the socket if you aren't especially careful.

Programming the chip is a matter of its own and won't be covered here. Just note that an AT29C010A type of chip can be simply "overwritten" whereas the SST39SF010A needs to be erased by software first (use the appropriate function of your programmer's software).

After reprogramming the chip, put it back into place - again, with care, despite the fact that some gentle force might be required to avoid connection problems. Finally, insert the PowerPak WITHOUT A CF CARD (!) into your SNES and fire it up. If it shows the logo and gives you a "CF card not found" error, then good, please proceed. :-) If not, you've probably made a mistake at some point and have to start over.

Next is preparing the CF card. I recommend starting from scratch, i.e. with formatting the card using FAT32 (!). Then copy over the "POWERPAK" directory from this release, and you're basically done. You might want to add savegames to the /SAVES folder, or to any other directory on the card, as well as your ROMs, of course.

If you don't want to reformat your CF card first, that's fine, but then please don't complain should problems arise. :p Anyway, load the card up on your computer, browse to the "POWERPAK" folder and copy all (!) the files from this release's subfolder of the same name into it, overwriting all (!) existing files in the process. Note that several new files will be put on your card. Also, CONFIG.TXT and LOG.TXT will be bigger in size than before, which is crucial for everything to work. Oh, and don't worry about an empty CONFIG.TXT - the PowerPak will start up with standard settings and save your custom choices whenever you leave the all-new customization feature. :-)

Okay, now re-load your ROMs (and savegames, possibly) onto the CF card. Although it's technically possible to completely "fill" a directory (i.e., have a directory contain 65,536 FAT32 entries), I recommend putting fewer files in more subdirectories to avoid problems and loading delays.

Lastly, install the CF card into your PowerPak ... and play! :D

2) The Easy Way
------------------

Prerequisites:
   - A SNES PowerPak of any hardware revision, as long as its flash boot ROM chip is either an AT29C010A or an SST39SF010A. I've got reports of successful upgrade procedures even on brand-new revH carts! :-)
   - A previous boot ROM version of v2.00 or v2.01. If you have RetroUSB's v1.0X (the stock firmware) or any beta version of my "SIMBA" firmware installed, please upgrade to v2.00 first. You'll get a black screen if you try to update to v2.02 directly from any of these older versions. Sorry for the inconvenience!
   - Nerves of steel. If anything goes wrong during the upgrade process and your chip isn't socketed, you end up not with an updated PowerPak, but with a rather expensive paperweight! Please keep in mind that just so much as a power failure is enough to permanently ruin your cart (unless your ROM chip is socketed, of course).

Steps necessary:
   - Just replace all (!) files in the "POWERPAK" directory on your CF card (yes, including the TXT files) with the contents of <this release's archive root>/POWERPAK (whilst keeping the contents of your "SAVES" directory, if applicable)

That's it! Ignore all the other files from this release; the "POWERPAK" folder already contains everything that's needed. On powering up your SNES PowerPak, you'll be prompted to update by the intelligent in-system flasher. It will detect the installed chip type and previous boot ROM version, and spit out an error message in case the technical requirements aren't fulfilled. Otherwise, simply press A, and wait. If all goes well, the PowerPak will restart within a few seconds, presenting you with this release's new features and version number.

Good luck ... and have fun! :-)



   BUTTON MAPPING
______________________________________________________________________

I'll limit this to anything that was changed since v1.0X (or undocumented therein) or isn't listed in the "online" help.

Titlescreen:
- B, Y, and the directional pad are ignored.

Filebrowser:
- Up/down moves the cursor "digitally" from entry to entry. Hold for fast and convenient short-distance navigation
- Left/right (directional pad) scrolls the cursor twice as fast as the L/R shoulder buttons used to in v1.0X (left = up, right = down)
- L/R (shoulder buttons) skip entire "pages" (L = previous page, R = next page). To avoid confusion, there is a built-in "stop" both at the beginning and end of a directory
- A selects a file or directory
- B allows you to go up one directory at any time. If you are in the root directory, B will take you back to the previous screen instead
- X, Y are ignored
- Start (in the ROM browser) takes you to the options screen with the game pre-selected that was played last
- Start (in the GameGenie code TXT browser) takes you back to the options screen (just like B in this case)
- Start (in the SRAM browser) is ignored

Options screen (this is where you add SRAM and/or GameGenie codes):
- Press Start to launch the game (even when the cursor isn't pointing to "Play this game")
- Make a main selection (like starting the game or clearing out GameGenie codes) with A, other buttons are ignored
- Hold Select to decode GameGenie codes
- Hold left/right on the directional pad for fast horizontal GG code digit navigation
- Hold A/X (increase value) or B/Y (decrease value) when editing GG codes for fast cycling through available characters (0-F)

Game loading:
- Hold Select while a ROM is being loaded to have its mapping logged to LOG.TXT, and pause on the mapping screen. Press Start to actually launch the game (otherwise, only failed ROM loading attempts will be logged)



   COMPILING THE SOURCE
______________________________________________________________________

The sourcecode is best viewed with Notepad++ and a tabulator size of 8 (comments generally start on column 49). If you want to recompile the source using the included make script, you must obtain these tools called in the process:

- WLA DX v9.5a Windows binaries
- gfx2snes.exe and smconv.exe from Alekmaul's DevkitSnes v1.0.0 release
- head.exe from the GNU utilities' Win32 port
- zerofill.exe from Neill Corlett's command line pack v1.03

All the graphics should be converted with gfx2snes (for the correct parameters, see my included conversion script). The background gradient PNGs (bg0...bg6) are for use with Ersanio's HDMA Gradient Ripper v1.2.2, output tables are for register $2121/$2122 with a palette color destination of $00.

Oh, and have a look at the compiler switches in global_variables.asm to customize your binaries if you want. :-)



   CREDITS & THANKS
______________________________________________________________________

Thanks go out to the following people (in no particular order):

- mi213, Marvin, effowe, snstay, Pasky for testing, helpful information, and much appreciated positive feedback in general :-)
- thefox for a clever bitwise operation code snippet :3
- ikari_01 (the Great) for tips and hints on HDMA and pseudo hi-res mode
- blargg for his amazing SPC uploading routines
- Alekmaul for PVSnesLib/DevkitSnes
- bunnyboy for creating the SNES PowerPak, and for silently releasing the loader sourcecode upon my persistent request! :D



   DISCLAIMER
______________________________________________________________________

All trademarks mentioned in this readme file are the property of their respective owners.

This software is freeware. It is provided "as is" and without express or implied warranty of any kind. ManuLöwe will not be held liable or responsible for any losses, damages, injuries, and/or legal consequences due to the misuse and/or illegal use of any of the files contained within this archive. 

The archive may be redistributed freely under the circumstance that no file(s) is/are added, changed, and/or removed.

ManuLöwe is not affiliated in any way with The Retrozone / RetroUSB or Nintendo.
