2.71 Special Edition (SE) Custom Firmware Revision B
----------------------------------------------------


This is a custom firmware that lets to have in a single flash the advantages of firmware 1.50 and
2.71 at the same time.

Homebrew can be run on both kernels, the 1.50 one and the 2.71 one, letting almost all current homebrew
to work on the 1.50 kernel, and 2.71 homebrew compatible with HEN C in the 2.71 kernel.

Note: the installer writes to FLASH0. I'm not responsable of any damage of what happens,
since this software is provided free and without warranty.
TA-082 users cannot use this because a 1.50 bootstrap is needed to boot  the system patched.

At the moment, there is only installer for 1.50, although it could be easily ported to whatever
firmware with kernel access such as 2.60 and 2.71, but at the moment i prefer not to doing it to avoid 
TA-082 using it and bricking their psp's.

Note that this package DOES NOT contain any illegal material. The user has to provide the 1.50 and
2.71 updaters pbp's to legally generate the DXAR file used for the flashing.

Updating from SE-A to SE-B
--------------------------

- Copy the directories seb_update from SEB_UPDATE/PSP/GAME150 to /PSP/GAME150/.

- Run it. After you press X, the update will be done in a little moment. You are now in SE-B.


The following two sections are for a installation from zero:


Creating the DXAR file
----------------------

- Inside NEWINSTALL/PSP/GAME you will see 4 folders. Copy seupdmaker and seupdmaker% to /PSP/GAME/
  
- Get the 1.50 and 2.71 sony updaters in the seupdmaker folder with the names "150.PBP" and "271.PBP".

- Run the program. This program won't write to the flash, it will just create a file called DATA.DXAR in the
same directory (seupdmaker).

- The program will verify that the SHA-1 of the generated file is correct.

- Once that you have done this, you can save the DATA.DXAR file to skip this step in the future.

Flashing 2.71 SE
----------------

- Copy the files NEWINSTALL/PSP/GAME/271seflasher and 271seflasher% to /PSP/GAME.
  
- Copy the generated DATA.DXAR file at 271seflasher directory.
This file, at release SE-B, should have ALWAYS the MD5 96B4E3ED430A591B077624FC326622AC 
and SHA-1 9956936EADF91D578D4087499B7211B9429E99F7.
Anyways, this time, the dxar creator will have told you if the file was indeed correct.

- Run the flasher. If your battery is less than 75%, the program will show the error saying that
and will return to the XMB.

At petition of someone with battery problems, now this check can be by passed at your own risk;
 Execute the program with triangle and L pressed.

- The program will continue showing an agreement. Press X to accept 
  it and flash the custom firm, or R to cancel and exit to the XMB.

- If you accept, the program will flash the custom firmware. DONT shutdown the psp and DON'T 
  quit the memory stick. 

- After finished, you psp will be rebooted to XMB... of 2.71

Using SE
--------

- SE runs all homebrew from the /PSP/GAM271 folder using the 2.71 kernel. The compatibility of 
applications using the 2.71 kernel is the same as HEN-C since they both use the same core.
Homebrew here have to be NOT kxploited.

- To run applications with the 1.50 kernel, and have about 99% compatibility with current homebrew,
  put those applications in the /PSP/GAME150 folder.
Homebrew here can be either kxploited or not.

Now the standard folder, /PSP/GAME can be configured in the recovery menu to either execute 1.50
homebrew or 2.71 one. (by default is set at 2.71 for compatibility with previous version)

- Native UMD emulation is now in the custom firmware. ISOS are shown under memory stick games.
Currently ISO and CSO are implemented, for technical reasons DAX is not implemented yet, but may
be done in the future. At the moment they require an umd to be inserted in order to be played, although
they show in the xmb without an umd.
Note that whenever you do an update to the ISO folder (add, delete, change files, first SE-B execution), 
a little delay will ocurr when entering in memory stick games. While the ISO folder is not changed, this won't
happen.


Using recovery menu
-------------------

- To enter in recovery menu, press R when power on the psp.
The recovery mode lets to set options, and it lets to recover potential bricks, as soon as
the 1.50 bootstrap is intact.

- Toggle USB: It will enable/diable USB mass storage.

- Configuration. All setings are set to disabled by default.

* Skip SCE logo. If you enable this, you won't see that beautiful, (but sometimes annoying)
  Sony Computer Entertainment logo when power on the psp (and in this way you also disable the autorun of
  UMD).

* Hide corrupt icons. It will hide corrupt icons. Note that currently not all corrupt icons
  are hidden but most of them. This setting can SLOW down the access to game menu if you have too many items.
  This will be improved in the future, however the best way to hide corrupt icons is always to convert your kxploited
  applications to a standard single PBP.

* Game folder homebrew. It will let you choose with which kernel, 1.50 or 2.71, 
  programs at /PSP/GAME will be executed.

* Autorun program at /PSP/GAME/BOOT/EBOOT.PBP. When enabled, it will run that program at startup.
  Notice, that that program runs always in 1.50 kernel.

- Advanced. This setting shouldn't be touched by most users, since they are mainly for debugging purposes.
  It lets to flash some NOT critical files to the flash from the directory ms0:/reflash.

- Advanced configuration (inside Advaned).

* Plain modules in UMD/ISO. By default it is disabled, because it was found that the patch to run
  plain modules gave compatibility problems with some umd games. (error 0x8002012D).
  You can always enable it if interested in running unsigned code in an iso.

* Execute boot.bin in UMD/ISO. If enabled, it will run BOOT.BIN instead of EBOOT.BIN. This option
  has no sense if the plain modules one is not enabled.

- Run program at /PSP/GAME/RECOVERY/EBOOT.PBP. This is what currently enables to recover a
  semi-bricked psp (e.g. the vsh doesn't show, but you can reach the recovery mode).
  Despite being in the game folder, that program will be executed in 1.50 kernel, so if even 2.71
  kernel is destroyed, that program can be run.

  Because official SCE updaters don't work in that 1.50 kernel environment (because they need some vsh files
  not available), i've included with this package a flasher that lets to flash any official update from
  1.50-2.71 to your psp. 
  To use it, copy the files inside inside "flasher for recovery/RECOVERY" in /PSP/GAME/RECOVERY/
  and the official SCE updater renamed as UPDATE.PBP in the same directory, and run the program
  through the recovery option.

  Another alternative for recovery is to reflash the own 2.71 SE-B.
  To do this, copy the EBOOT.PBP of 271seflasher to /PSP/GAME/RECOVERY/EBOOT.PBP along with the
  DATA.DXAR file, and run it through recovery.


DEVHOOK
-------

- Devhook for 1.50 can be run on GAME150 and devhook for 2.71 can be run on GAME folder.

- In devhook for 1.50 you cannot use the option of 1.50 flash if you are gonna reboot to XMB.

- When using devhook 0.46, DO NOT use the options for flashing things.

- In devhook for 2.71, the 2.71 flash mode didn't work because a special patch to the flash driver
  is needed. I worked to fix this and the fix for it can be found in the "devhook271 flash fix" folder.
  UPDATE: now the fix is updated, and it has the problem of the error 0x8002012D fixed. 
  More details there.

1.50 Compatibility
------------------

- Most of 1.50 homebrew work. There maybe some exceptions of few programs that interfere with 
  the reboot system of SE. These programs can be umdemulatorand daxziso, although i have not 
  tested them. They may not work at all or work in certain modes (direct load methods probably). 
  Programs that hacks the flash like xflash, pspset, sxt version changer, etc are not 
  recommended to be used here.
  
- Irshell shows as corrupted... this is an issue in 2.XX vsh's. They don't like irshell sfo :)
  The solution to make it show (and work) is to apply the solution given by frmariam originally
  for epsilon bios: http://forums.maxconsole.net/showthread.php?t=29639

- It seems that original umdemulator also shows as corrupted. 
  Try changing the sfo and maybe also the icon to fix that.

- Since 1.50 kernel gets patched, it can support things that a normal 1.50 cannot do, such as loadexecuting
  prx's, loading modules, signed or not, from ms and flash in user mode without previous patches, 
  loading real pbp's, etc

 - Note with wifi: 1.50 kernel doesn't understand WPA. So if you have a connection with WPA, you cannot
   magically use it in a 1.50 application. Use WEP or not protection, or wait to wifi applications to
   be ported to 2.71 kernel.


Known problems, remarks, etc
----------------------------

- "I tried, for some reason, to run a sce updater and it gives me a weird "DADADADA" error.
  Running a sce updater can be dangerous, and because of that is disabled, and it will give you that
  custom error code of mine.

- "I receive a weird error "98765432" when setting the language to Korean, Chinese traditional or
  Chinese simplified". This is done on purpose, setting the language to those 3, which don't exist in 1.50,
  can be dangerous for the 1.50 bootstrap, and therefore, they are disabled.

- Using the restore default parameters is not recommended. It won't brick your psp since it can
  be recovered with recovery mode, but still, not recommended

- The game menu says that "There is no games". Probably you renamed your game folder to game150, but you didn't 
  create a new game folder. Even if you don't plan to use 2.71 homebrew, the folder GAME must exist, even if
  if it is empty.

TODO
----

- Improve the homebrew loader of 2.71. Whenever HEN for 2.71 has an update, SE will have the same
  update to his internal HEN core.

- Add more configuration options.

- Let decrypted prx's in the bootstrap load after "init.prx".

- NO-UMD

Credits
-------
- Core and flasher coding: Dark_AleX
- Recovery menu coding: harleyg
- Beta testing: Mathieulh















