Homebrew Enabler para 2.71 revision B
-------------------------------------

Este programa habilita la ejecucion de homebrews desde el xmb de 2.71. Hace un parche que
permanece residente en el sistema hasta el hardware reset. El modo sleep no lo borra.

Nota: este programa escribe unos archivos pequeos en la flash, SOLO la primera vez que es
ejecutado.
NO sobreescribe ningun archivo existente en el sistema, sino que crea unos nuevos, por los que 
las posibilidades de "brick" son paracticamente nulas.

Instrucciones de actualizacion para la gente con la revisin A instalada
------------------------------------------------------------------------
Para actualizar desde HEN (Homebrew Enabler) revision A a B, haz un hard reset de la psp (para estar seguros de
que hen no esta siendo ejecutado).
Despues copias los nuevos archivos a la memory stick y ejecuta el tif. Los nuevos archivos sern
automaticamente actualizados.


Los que no tengais ninguna version de HEN instalada, seguid las instrucciones de abajo.

Instrucciones
------------

- Copia todo el contenido dentro de MS_ROOT a la raiz de la memory stick.
- Ve al visor de fotos del XMB  y entra en la carpeta "HEN".
- Si la psp se congela, reinicia la psp e intentalo de nuevo.Actualmente el tiff es muy inestable
y solo es ejecutado a veces. Intentare soulcionar eso en el futuro.

- La primera vez que ejecutas el programa veras rapidamente una pantalla azul, y poco despues
  la pantalla se volvera de dos colores:

  * Rojo: los archivos no pudieron ser escritos a la  flash (pasa pocas veces). Simplemente, sigue
    intentandolo.
  * Verde: Los archivos fueron escritos con exito. Despues de eso, el xmb ser reiniciada.
    Ahora puedes ejecutar homebrew en formato preparado para 2.71.
    
- Como se ha mencionado antes, el parche queda residente en memoria, e incluso el modo sleep
  no lo borrar. Solo un hardware reset lo eliminar de la ram.
- Cuando hags un hard reset, tendras que ejecutar el tiff otra vez.
  Esta vez no habra pantalla roja o verde, solo una pantalla azul y el reinicio del xmb, ya que 
  esta vez no es necesario escribir los archivos en la flash.

Nota: los archivos pspbtknf.txt, pspbtknf_game.txt, pspbtknf_updater, y systemctrl.prx
en la raiz de la mem stick solo se necesitan la primera vez que el programa es ejecutado
Despues de eso, puedes borrarlos. Sin embargo, no borres patch.bin, h.bin y la carpeta con el tiff,
ya que la necesitaras la proxima vez que hagas un hard reset y quieras ejecutar el programa de nuevo.

Nota 2: Una vez que el programa es cargado, es independiente del contenido de la memory stick. 
Asi que puedes cambiar de memory stick libremente.


Notas sobre el homebrew
-----------------------------

- Los homebrew actuales no estan soportados. Dado a que los homebrew actuales estan en formato elf, 
  no podran ser ejecutados, al ser rechazados por el kernel de 2.71.
  El homebrew para 2.71 tiene que estar en formato prx.
  Programadores, leed los comentarios sobre la programacion.
  En el futuro puede que consiga parchear el kernel para que acepte homebrews en formato
  elf.

- Hay algunos ejemplos en el directorio "game", todos ellos portados de ejemplos del pspsdk,
  excepto el nanddumper programado por mi. 

 * polyphonic, pspsdk sample (user mode). 
 * cube, pspsdk sample (user mode). Muestra un cubo rotandose.
 * kdumper, pspsdk sample (kernel mode). Dumpea la ram de kernel a la memory stick.
 * ipldumper, pspsdk sample (kernel mode). Dumpea el ipl a la memory stick.
 * systemparam, pspsdk sample  (user mode). Muestra informacion sobre el sistema.
 * nanddumper, por mi. (kernel mode). Dumpea todo el contenido de la nand al archivo
   "nandimage.flash"  en lamemory stick. El formato del dump es compatible con el chip u.p..
   (requiere 33 MB de espacio libre en la memory stick).


Comentarios sobre la programacion
--------------------------------

- Como se ha mencionado antes, el homebrew tiene que estar en formato prx, al menos de momento. 
  Ademas, el prx principal (el que esta dentro del pbp) tiene que estar en modo usuario. Sin embargo,
  este puede cargar prx's no firmados desde la memory stick, permitiendo el modo kernel.

- No hay necesidad del noplainmodulechecpatch o el nodevicecheckpatch, ya que esos estan hechos
  por el homebrew enabler.

- Intenta usar USE_KERNEL_LIBS = 1 en tus prx's de kernel. En 2.XX, la separacion entre el modo
  usuario y el modo kernel es mas notable.

   Algunas funciones en "*ForUser" ahora estan totalmente separadas (diferente direccion) de sus 
  "*ForKernel" equivalentes. Un buen ejemplo es ModuleMgr. Si estas en un kernel prx y llamas
  a la funcion sceKernelLoadModule de ModuleMgrForUser, recibirs un error "ILLEGA_PERMANENT_CALL".

- Currently devhook emulated 2.71 is not supported. I'll try to add support to devhook, so 
  programs for 2.71 can be developed in a 1.50 

- Lee el codigo fuente de los ejemplos.

Creditos y agradecimientos
-------------------

- Programadoby Dark_AleX

Gracias a:

- Booster por crear devhook. El metodo de reinicio de hen esta basado en devhook.

- Nopx86, psp250, fanjita y el resto de gente implicada en el tiff exploit.

- hitchhikr por el kernel exploit de 2.50-2.71.

- Mathieulh por la ayuda prestada estos dos meses que estuve sin psp.

Anti-creditos: ps2nfo por suplantar mi identidad en sus foros.





