
       *********************************** X-Flash V16g - Art 2006 **********************************
       *********** For Sony Playstation Portable with Firmware Version 1.50 or 2.71 SE **************

Hi Guys,

X-Flash is a firmware modification program written primarily for my own use. I wanted a way to quickly
apply newly discovered firmware hacks, and to automate the process of customising any new PSP units that
I might purchase in the future. Not all of the firmware modifications performed by this program are my own,
but I do use all of these modifications permanently on my own PSP units. The X-Flash program has followed a
logical progression, and now features some firmware tools that I did not consider when I started the program.

       ********************************* Grant Of Software License **********************************

The X-Flash Program is free to use, but I retain ownership of my software, and grant of license to use
it is under identical terms of GPS Trackmaker license agreement (reproduced in part with permission),
that pertain to preservation of protected ecosystems. View the entire agreement for GPS Trackmaker:
http://www.gpstm.com/downloadscontract.php

"LICENSE GRANT

The author grants a non-exclusive license to use the program, free of charge, if the user:
Does not use the program for illegal purposes;
does not practice activities that destroy or degrades the environment;
does not practice polluting activities;
does not throw trash on the ground or through the car’s windows;
when going to the beach and creeks takes his trash back until finding a trash collector;
does not practice any activities that hurts animals, like hunting, out-of-season fishing, pigeon shooting,
dog fight, etc.;
does not buy wild animals that, by law, may not be created out of their natural environment;
has ecological conscience and protects nature.
People that for any reason do not fit the conditions above, are expressly forbidden to use the program."

In addition to the above agreement, grant of Lisence to use X-Flash Version 9h or above, also requires
adhesion to the following terms:

When the user visits a Beach or other body of water, National Park or other protected environment,
he or she leaves no damage to live vegetation, leaves no unnatural polluting material, or litter,
and removes non-combustible material from fireplaces, or litter that may have been left by other people
if it is reasonable to do so.


       ***********************************************************************************************

NOTE ON DUAL FIRMWARE SUPPORT:
X-Flash has always checked for PSP firmware version 1.50 at startup, and terminated if any other
firmware version was detected. As of Version 16, X-Flash auto detects PSP firmware version at startup,
and allows execution with 2.71 SE firmware PSP units.

The same X-Flash Version can be run on both supported firmware versions, and acts accordingly.
There are no seperate download packages for different PSP firmwares.
There is a note later in this document that outlines functionality in both firmware versions.

       ***********************************************************************************************

To Install the X-Flash program, copy the program folders to the usual PSP/GAME folder of your 1.50 or
the PSP/GAME150 folder for 2.71 SE-B firmware PSP. You will not be able to use the program with any
unsupported firmware versions on your PSP. Now you should be able to launch the program from the Game menu.
Users of 2.71 SE can conver the KXploited package to a single 1.0 compatible executeable if they wish to
remove the corrupt icon.

There is a parental control implementation in X-Flash that will prevent the program from starting
if the PSP parental control is set to anything other than off or 1. X-Flash is allowed to start with the
strongest parental control setting (1), because people used to use it to prevent UMDs from starting while
powering on the PSP unit. This feature, although still implemented, has become redundant since the
introduction of custom firmware with configurations that allow the PSP to coldboot straight to the XMB menu.

After program launch, the user must agree to a disclaimer screen prior to entering the menu.
You are only required to agree to this disclaimer screen once, and it will not be displayed again.

The absence of the power adapter (mains cable) will also trigger a prompt to plug it in before continuing
if the battery is not present, or battery condition is very low.

The program maintains real time checking for the power cable and battery condition at all times.
X-Flash will shut itself down when the PSP system is in low battery condition. This is when the battery is
very low, and the green LED starts flashing. The user of this program does not need to concern him/herself
with the condition of the battery while using the X-Flash program.

Once in the menu, any option can be selected by moving up and down or sideways with the joypad, or the
analogue joystick. The screen footer always offers a brief description of the currently selected option.

As a general rule the user presses 'X' to commit the selected modification to firmware, or presses 'O' to
reverse the selected modification. If you are running X-Flash with 2.71 SE firmware, selecting any disabled
features will trigger a message that informs the user that the feature is unsupported for that firmware.

       ***********************************************************************************************

Dark_Alex's firmware mod is included in X-Flash with his permission. I would personally like to thank
him both for producing the mod, sharing it with everybody, and allowing me to include it in X-Flash.

The original vshmain.prx is read from the PSP firmware at run time, so there's still no Sony executeable
code in X-Flash. Catch up on PSP updates forum for more info on Dark_AleX's mod.

Other than the ps2dev.org libraries, the Mikmod sound library and ps2dev.org example code, Dark_AleX's
firmware mod is the only executeable code in X-Flash that is not written by myself. This mod is so good,
I just had to include it. This custom firmware modification only pertains to firmware version 1.50 PSPs.

       ***********************************************************************************************

The basic X-Flash support documentation is being maintained in the program's built in document reader.
This is auto opened the first time X-Flash is started, and available from the program's menu after that.

       ***********************************************************************************************

FURTHER DETAIL ON FIRMWARE VERSION 2.71 SE SUPPORT:

Features currently disabled for firmware version 2.71 SE:
- XMB Menu Label editor, and custom label options.
- Firmware Version Spoofers.
- Plain Black PSP About Screens.
- Some Easter Eggs won't work because they rely on version spoofs, detailed name plate picture, etc.

       *********************************** X-Flash Support Forum *************************************

An official download page and support forum has been opened just for X-Flash!
Thanks to Hellcat for setup and maintenance of the forum and download area.

Please visit for program news & updates, and help from other users:

http://xflash.pspstuff.de/forum/

       ***********************************************************************************************

*Donations*
License to use this program will remain free, but I am accepting donations toward new hardware and development.
You can encourage future program and/or hardware development by sending a donation. Contact me at the email
address shown on the X-Flash credits screen, or pm me on psp updates forums.
Any donations of the stock 32Mb Memory Sticks would also be appreciated to aid in program development.

Cheers, Art.
http://www.freewebs.com/defxev/
(www.austech.info)


       ***********************************************************************************************

NOTE:
I test all new X-Flash features on one of my own PSP units, so that my own hardware is put at risk prior
to anyone else's. I do not use beta testers.

WARNING:
This program (through software or hardware malfunction), has the potential to render subject PSP units
permanently inoperative. Use this software, and/or modification to PSP firmware files at your own risk.

X-Flash may not be able to reverse firmware modifications performed by any other program,
since other programs might use different method to achieve some of the same, or similar results.
X-Flash is intended only for use on PSP units that have original firmware 1.50 files, or original
Dark_AleX 2.71 SE files as installed by his releases (2.71 SE-B, 2.71 SE-C).

The X-Flash program title has no association with the Microsoft X-Box, any X-Box software, or Sony-X-Team.
X-Flash is not endorsed by Sony, it is written in C using free tools provided by ps2dev.org,
and the free PSP version of Mikmod Sound Library is used for sound and music in X-Flash.

The Free Space game has no association with any other computer game. It is named after the "Free Space"
string that is unlocked in the XMB label editor (1.50 only) as a prize for finding, and winning the game.

ASCII art stored within, and displayed by this program, and any future versions is copyright,
and may not be reproduced outside of duplicate X-Flash program distribution packages.


       ***********************************************************************************************

VERSION HISTORY:


V16g (28/11/06):
Added support for Dark_AleX's unofficial hybrid firmware version 2.71 SE-C.
Fixed parental control feature for as the parental control level was previously ignored by X-Flash when
running under 2.71 SE. Startup checking is significantly faster with all supported firmware versions.

V16f (13/11/06):
Bug fix to biult in Plain Black wallpapers (firmware version 2.71 SE).

V16e (13/11/06):
Fixed 2.71 SE file inflation bug. Several rco files, once modified, were being written back appended
with zeros to match the larger size of their 1.50 firmware counterpart. This causes more consumption of
memory on flash0, and possible verify failures if there is no remaining space. This bug has been present
since X-Flash V16.
Set PSP nickname to "raw" to find an option to perform a complete 32Mb binary flash dump.
The raw dump routine is an sdk sample (firmware versions 1.50 or 2.71 SE).
Biult in Plain Black Wallpapers are 1x1 resolution to collectively save approx 70 Kb of space over the
stock XMB backgrounds (firmware version 2.71 SE).

V16d (11/11/06):
Bug fix to V16c. Firmware detection routine was blocking firmware version SE-B3, and possibly any SE
version later than the original SE-B. This version will block any firmware other than 1.50. 2.71 SE-B,
or 2.71 SE-B3.

V16c (10/11/06):
Provided additional support for firmware 2.71 SE.
All Coldboot Intro Sound options now work with firmware 2.71 SE.
Biult in XMB Custom Error, and Click Sounds now work with 2.71 SE.
Improved Biult In Plain Black Gameboot movie (by DarkStone).
Allowed larger custom Gameboot Movie (619Kb Max) to support the Prince Of Persia (Blood & Claw) Gameboot Movie.
(firmware version 2.71 SE).
Improved startup check for 2.71 SE firmware version to block TA-082 PSP units from starting the program.
Fix to "ascii" nickname Easter Egg. Menu editor can now be started with Select button or from the menu to use
the "ascii" Easter Egg (firmware version 1.50).
Hidden Easter Egg (screen message that may never be found).
Implemented Real Time checking for low RAM condition caused by Mikmod loading the music module too many times
in one session. This would probably never be an issue, since you would have to play the ASCII credits demo or
Free Space very many times to consume all available RAM.
Fixed "Hello Nickname" welcome screen for 2.71 SE. Various other minor fixes/enhancements.

V16b (06/11/06):
Provided additional support for firmware 2.71 SE.
Wave effect is now removed from the Coldboot intro screen as well as the XMB menu when the option to
remove the wave effect is applied, as it does with 1.50 firmware (version 2.71 SE).
Added support for Debranded Coldboot intro screen, and Debranded Gameboot movie (version 2.71 SE).
Fixed the Plain Black Gameboot movie to work with 2.71 SE, and it is now biult into the program.

V16 (04/11/06):
Implemented dual PSP firmware version support in a single program version.
Original support for 1.50 firmware with all of the previous functionality available,
plus limited support for Dark_AleX 2.71 SE-B (unofficial hybrid firmware version).
Increased the speed of program startup checking sequence, and other small fixes.

V15g (17/09/06):
Removed functionality to save labels file from label editor in order to patch a problem.
The label editor can still load from a file created with Hellcat's menu editor, and save to flash,

V15f (15/09/06):
Added a prompt to auto install Dark_AleX custom firmware files if there is no custom firmware
installed on the subject PSP unit for the first use of X-Flash.

V15e (13/09/06):
Added option to mask PSP about (encryption information) screens with plain black pictures,
and restore them to original.

V15d (12/09/06):
Fixed Free Space multiple hits for one shot bug where sometimes, one shot would count as two.
Various other minor fixes to Free Space game.
Added menu option to play Free Space that appears after the game has been won for the first time
from the credits demo, so the menu option appears at the same time "Free Space" is unlocked in the
XMB menu editor.
Removed "Free " Easter egg, since the option to play has been added to the menu.
Significant programming optimisations.

V15c (11/09/06):
Fixed Free Space powerup so it isn't shown while the game is hidden.
Programming optimisations.

V15b (08/09/06):
Fixed the program exit/standby buttons as they were intended to work, and in addition to that, improved them.
Fixed a problem with the responsiveness of two button pushes that have never been very responsive.
These are, the Circle button when it is used to exit the ASCII credits demo, and the Triangle button
when it is used to trigger the 13.37 Easter egg.
The Amiga super weapon is a collectable powerup that will aid to unlock "Free Space" when it is
too late to achieve the high score in the Free Space game.
The Amiga nickname Easter egg is removed because the powerup is now part of the normal game.

V15 (04/09/06):
Win Free Space and a prize is unlocked permanently for the current X-Flash installation.
Save custom XMB label set as a file for later use or sharing, and read from the file back
into the XMB label editor.
The HOME and START buttons will now exit program from within the custom firmware configurator
and label editor.
Added startup checking of Theme.XF file, and Labels.XF file.
Added a new screen to the ASCII graphics demo.
Added feature to exit program and put PSP in standby.
Removed slow motion mode from ASCII credits demo.
Removed fast foward Easter egg from ASCII credits demo.
Bugfix to ASCII credits demo where line and circle drawing
routines excluded drawing on the bottom line of the screen.
Fix to Memory Stick free space check before firmware dump
to support over 2Gb for the new 4Gb Memory Sticks.
Programming optimisation.
Added another two Easter Eggs?

V14 (14/08/06):
Detection of iR Shell. No possibility of launching X-Flash from within iR Shell.
This is required because the user could previously launch X-Flash within iR Shell while playing mp3s
which access the memory stick constantly.
Signature check on data section of the X-Flash program file to prevent replacing/tampering of the
program's built in files.
Slightly relaxed free RAM rule implemented in the last version. (detect free RAM function by MPH).
Added centered "Hello Nickname" welcome screen for every user.
Added "Memory Stick" string to the XMB menu editor, so now it can be edited like other menu labels.
Added five new X-Flash menu colour themes, a few more ASCII GUI effects and fixes.
Implemented detection of stuck down HOME, SELECT, and START buttons at startup.
For people who have broken front buttons on their PSP those buttons will be disabled independently,
for everyone else, their operation is much faster than the previous X-Flash version.
Fixed message "Apply Custom XMB Labels" when using Auto Restore. it now says "Restore Default Labels".

Kerrang Build 5 (05/08/06):
Additional 'old school' screens added to the credits demo including equalizer style music visualization,
media player style music visualization, fireworks effect and vector objects... all done in ASCII!
Home and Start buttons can be used for program controlled exit.
Select button is a shortcut to the XMB Menu Label Editor.
Real time checking for activated USB mode. Program will not run if it is launched or resumed from a shell
with USB mode activated.
Startup checking of available RAM. Program will not start if over 2Kb of RAM is tied up by another application.
Programming optimization.

Kerrang Build 4 (29/07/06):
Fixed in program sound effects to come out of both speakers instead of just the left speaker.
Program also displays Mikmod Sound Library version on startup.
Added support for analogue joystick in XMB Menu Editor, Document Reader, and Custom Firmware Configurator.
Improved XMB Label Editor with faster cursor movement, and changed text is hilighted.

Kerrang Build 3 (28/07/06):
Full XMB menu editor allows the user to change most XMB text labels to anything desired.
Input is through video game hi score style text entry method. It also has Read, Reset, and Save features.
Various minor enhancements.

Kerrang Build 2 (23/07/06):
New Easter Egg is a hidden hand gesture.
The Easter egg is not unlocked by performing flash write operations.
Implemented ASCII graphic sliding delay bar for Auto Restore, and
Program Exit functions. This is to prevent accidental use of those two functions.
The file PSP/SYSTEM/config.txt file can be deleted from the configurator screen by
pressing the square button.
Various fixes to ASCII graphic animations.

Kerrang (22/07/06):
New Hand Gesture aSCII animations used for indication.
Test for new interface style.

V12 (21/07/06):
Added further support for Dark_AleX's custom firmware mod and reversal of it.
Implemented Custom Firmware Configurator screen with ASCII graphic interface.
Implemented Freeplay & Fluff's Name Plate picture mod in the PSP's about screen.
name_plate.png is checked for size and resolution.
Program checks existence of Xflash/Dump, and Xflash/Registry folders when required,
and creates them if they do not exist.
Program checks for firmware dump before simulation mode starts.
Program checks for at least 16Mb free space on memory stick  before firmware dump
if the Xflash/Dump folder doesn't already exist.

V11c (16/07/06):
Implemented Dark_Alex's Proof Of Concept Custom Firmware Modification on the day it was released.
Like every other flash0 operation in X-Flash, file writing is verified.
This modification cannot be undone by X-Flash yet, but a future version will support this.
Have not yet updated credits, and document reader screens for Dark_AleX mod.

V11b (15/07/06):
Fixed saving X-Flash colour theme.

V11 (14/07/06):
Real time battery/mains checking so you never have to think about the battery condition.
Agree to disclaimer screen once, and never see it again for that installation.
Global test mode implemented to perform modifications on memory stick flash dump.
Increased allowable size of gameboot.pmf movie file that can be copied to flash0.
Checking resolution of Background wallpaper at startup, rather than file size.
Background.bmp resolution is also reported on the screen at startup.
Added support for alternate XMB menu icon labels for Video icon, and Photo icon.
Added feature to remove or restore all trademark symbols from the XMB menu, such as
UMD(tm), Memory Stick(tm), and PSP(tm).
Plain Black gameboot movie is hard coded into X-Flash, and writing it to flash0 is verified.
User supplied Gameboot Movie files, Font files, and backgrounds are now all checked for size,
and writing any of them are verified flash write operations.
Every flash write operation performed by X-Flash is now verified.
Fixed slow motion mode in Credits Demo screen. Other small fixes.

V10 (05/07/06):
Added option to change and restore XMB select sounds (sound effect 5) in the XMB menu.
Implemented auto restore option that removes all modifications performed by the program,
and leaves the PSP in it's original state with a single button press.
New implementation of mp3 feature added as normal option with option to delete the song from flash.
Parental control implementation using standard PSP parental control system.
Battery level checking at startup to allow convenient and safer mobile use without mains adaptor.
Added some custom labels for the XMB Music icon.
Increased overall speed of operation, and added menu dither enhancement.

V9i (29/06/06):
False verify warning bug found not to be fixed in previous release.
found the real problem and fixed it. This is a bug fix update only.

V9h (25/06/06):
Change to 'Disable Network Update Icon', and 'Disable XMB Menu Wave' routines to correct false verify
warnings after continued use.
Small programming optimisations to conserve RAM.

V9g (24/06/06):
Added new "Debranded Gameboot Intro Screen" feature that removes PSP logo from game boot screen.
Sample "Digital" font included with recent X-Flash versions is replaced with the sample font
that came with early X-Flash versions (I guess must have decided I liked it better).
Removed the Built in "Holy Shit" opening sound, "Toilet Flush" and "Doh" Error Sounds to conserve RAM, 
Programming optimisation to conserve RAM, and allow for possible program expansion.

V9f (Package B) (06/06/06):
Added Black gameboot.pmf file as default in XFLASH/Xflash/Modified folder.
Press Triangle to apply the black gameboot movie.

V9f (21/05/06):
Optimisations to save RAM for program stability, and aid of adding features that may be discovered later.
Removed loced feature that saved and retrieved a song to flash memory.
Removed WLAN Libraries from code. Program no longer checks Nicknames, or MAC addresses.

V9e (07/05/06):
Checking of gameboot.pmf file size. Program won't start if gameboot.pmf is larger than 1191936 bytes
unless gameboot.pmf is a zero byte file as it is in the X-Flash distribution package.
Checking of background.bmp file size. Warning is given if background.bmp is larger than 6176 bytes (60x34).
Program does not start if background.bmp is larger than 391734 bytes (480x272).
External files gameboot.pmf and background.bmp headers are checked to verify correct file type.
All version spoofer version 6.66 is unlocked. The program no longer checks the PSP's MAC address.
(I think this remained exclisive to Kos for long enough).
Removed visualisation of verify for all version spoofer.
Included a new example background.bmp file. It is a low resolution abstract by me :)
Code optimization, some of which is invisible to the user.
Added novelty support of headphone remote control unit.
Press play to quickly bypass the "INSERT POWER CABLE" screen.
Press forward and reverse in the menu to select an option.

V9d (02/05/06):
Fixed false (Verify Error) message (hopefully).
Verify works properly for deleted Gameboot Movie (zero byte gameboot.pmf existance is verify pass).
Re-tested all functions for this release.
Included secret function unlock procedure in this document.

V9c (01/05/06):
Removed Music checksum which was to be later used for checksumming firmware.

V9b (01/05/06):
Increased dead zone for analogue joystick to prevent false triggering on some PSP units.

V9 (01/05/06):
Added sideways menu selection of individual monthly wallpaper pictures to replace with Wallpaper.bmp
Flash write verification for all operations except when writing external files from the Xflash/Modified folder.
Implemented real time ASCII graphics screen that allows animation.
User Visualisation of startup file checking (most of which was present in prior versions invisible to the user).

V8c (26/04/06):
Added sound support for X-Flash application using Mikmod Sound library,
and produced custom sound samples for the menu, and button confirmation, etc.
Fixed theme selection to work sideways.
Added support for analogue joystick.
Cosmetic interface improvements.

V8b (23/04/06):
Exception handling in the event of verify fail after flash write operation.
X-Flash V8b will try to write the file three times and then exit the program if there is still a verify error.
Option to write Coldboot.vag (user supplied vag file) to flash to use as opening sound.
Selectable four colour menu theme (can be saved).

V8(20/04/06):
Flash write verification for most features.
Wave effect for cold boot opening is removed when the XMB wave effect is removed,
and restored when the XMB wave effect is restored.
Debranding intro screen is carried out seperately and independently of intro sound or wave effect.
Flash write verification for debranded intro option, and restore branded intro.
Change opening sound options with echo effect locked to one sound at the moment.
Selectable menu colour (can be saved).

V7e (16/04/06):
Fixed startup file checking.
Added sideways scrolling to select one of three alternate error sounds.
There are "expansion slots" for new sounds that will write the original sound.
Flash writes for menu option 2 are verified.
Added colour selector (colour preference isn't saved yet).

V7d (16/04/06):
Fixed version 13.37 spoofer to work with three languages (English, French, and German).
Menu option for "Disable Wave Effect" is now called "Toggle Wave Effect".
Menu option for "Disable Network Update" is now "Toggle Network Update Capability".
For the two options above, X_Flash detects your PSP's current setting,
and performs the opposite action each time the option is applied.
Flash writes for these features are now verified.
The "Custom XMB Menu Label" feature now only changes the label of the 'Game' folder,
although the routine can be expanded to change other labels.
The option to disable network update automaticaly labels the icon "Disabled".
Flash writes for the "Custom XMB Menu Label" feature are now verified.
There are nine selections for replacement Game icon labels (scroll sideways).
New basic checking for invalid background file types, invalid font file types,
and other error conditions at startup.
Last minute menu fix.
(debugging information for secret function was being printed outside the debug screen area).

V7c:
Added verify function to Version 13.37 Firmware Spoofer.

V7b:
Added screen flashing effect whenever flash is written.
Added verify function to All Version Firmware Spoofer.
Unlocked Version 13.37 Firmware Version Spoofer.
Proper internal debug screen implemented.
All version spoofer checks if 13.37 spoofer is applied, and prompts for removal.
Changed artwork for icon & picture. Added to Credits.
Fixed right side of ASCII fanfold paper graphic.

V7:
Added "All Version Changer" feature. User selects their own legal firmware version.
Added basic check for 1.50 firmware at startup that is not fooled by X-Flash version spoof.
This is to prevent the program being used with incorrect firmware versions.
Changed access to credits screen to Square button.
Removed recognition of Kos's PSP unit, 6.66 firmware version tricker is still disabled.
Support for 13.37 version tricker is implemented, but locked for this release.
Program has begun to modify and replace firmware originaly obtained from subject PSP unit.

V6 (01/04/06):
Added override code to bypass "PLEASE INSERT POWER CABLE TO CONTINUE" screen,
(battery level is not checked).
Added footer notes to describe every function performed by the program in menu.
Added firmware dump feature.
Added Secret Locked Feature. (The mp3 feature that was later added as a normal option)

V5:
Locked Feature opened only by running on Kos's PSP exclusively (as promised).
When the feature is unlocked, Option 11 is changed from "Program Exit"
to "Special Feature Unlocked" The program must be exited with the Home
button when the special feature is unlocked.
The second last line of the Credits screen will provide confirmation that the
program is running on Kos's PSP unit. Let me know if there is any trouble with this.
The special feature should be applied before any other options as your PSP may not
be recognised by this program after certain other options have been applied.
A future version may provide another way to unlock this feature ;)

V4:
Optimisation of menu and program code, most not visible to the end user,
This will provide for easier transition to an XMB style of menu for future version :)
Re-added Program Exit option from internal menu.
Added Registry Backup and Restore Tool.
Added checking for power adapter at startup.
Added Credits screen.
Renamed folders to remove corrupt icon.

V3 (27/03/06):
Added 2.00 Version Spoof (Version trick).
Program must now be exit with Home button.
Minor fixes to menu code, and to reduce overall size of .zip package
Added end user disclaimer screen.
Fixed restored coldboot intro to include original sound.
Tested to Perform all menu functions without bricking 1.50 PSP.

V2a:
Re-released with fix to KXploit folder

V2:
Able to reverse the firmware Modifications

V1 (23/03/06):
One dimension of XMB style menu system working
Tested to Perform all functions without bricking 1.50 PSP


       **********************************************************************************************

