NOTE : THIS PROGRAM ALLOWS YOU TO RUN HOMEBREW EBOOTs ON YOUR v2.0 PSP.
IT CANNOT LOAD EBOOT.PBPs THAT CONTAIN FIRMWARE UPDATES.
This program builds on the work done by Saotome to load homebrew EBOOT.PBPs
into PSPs with v2.0 firmware, using the TIFF exploit. It will not work
on any other firmware version - including v2.01.
It currently cannot run all known homebrew, but it uses a number of tricks
to get substantially further than ever before. Known limitations are:
- Can't run kernel-mode applications.
- Some minor system calls are still unsupported.
It's also still very much in development, so the user interface isn't
very nice to look at, and a lot of the output is cryptic.
To use:
-------
- Extract all the files into the root folder (e.g. "F:\") of your memory
stick. You need these files to be in the right place:
\PSP\PHOTO\EBOOT Loader\RUN_L.TIF
\PSP\PHOTO\EBOOT Loader\AAA.PNG
\PSP\PHOTO\EBOOT Loader 03\RUN_LALT.TIF
\PSP\PHOTO\EBOOT Loader 03\AAA.PNG
\L.BIN
\L_ALT.BIN
and if you want LUA support:
\PSP\GAME\USER_LUA\EBOOT.PBP
\PSP\GAME\USER_LUA\Applications\Lowser\test.lua
\PSP\GAME\USER_LUA\Applications\Lowser\index.lua
\PSP\GAME\USER_LUA\Applications\Lowser\icon.png
\PSP\GAME\USER_LUA\Applications\Lowser\experimental.lua
\PSP\GAME\USER_LUA\Applications\Lowser\img\app.png
\PSP\GAME\USER_LUA\Applications\Lowser\img\plain.png
\PSP\GAME\USER_LUA\Applications\Lowser\img\bg.png
\PSP\GAME\USER_LUA\Applications\Lowser\img\arrow.png
\PSP\GAME\USER_LUA\Applications\Lowser\img\folder.png
\PSP\GAME\USER_LUA\System\system.lua
- Copy the homebrew you want to run to your memory stick. Usually, this
means unzipping a directory that contains an EBOOT.PBP file to somewhere
under \PSP\GAME\. The exact location and folder name usually doesn't matter,
but for best compatibility you should try to use the same names as
originally shown in the homebrew ZIP file.
If the instructions with the homebrew contain separate steps for v1.0 and
v1.5 firmwares, then usually you'll get best results by following the
v1.0 instructions.
NOTE: If the homebrew is written in LUA, you need to copy it to a subdirectory
under the \PSP\GAME\USER_LUA\APPLICATIONS folder.
- Make sure you have a custom wallpaper set. Any image will do.
- Use the PSP's built-in photo viewer to open the "EBOOT loader" folder,
this will cause the loader to start. If your PSP hangs at this point,
then try the following:
- check your firmware version. This loader is for v2.0 ONLY.
- check that you have the loader files in the correct place (see above)
- turn your PSP completely off, then back on again. The loader works
best on a freshly-rebooted PSP.
- try setting a custom background - some people have reported that it
works better if you use a custom wallpaper (any image).
- try 'touching' the TIF image file : see 'fixing up the file times'
below.
- The loader displays a list of files in \PSP\GAME. Use the up and down
buttons to change the current selection (highlighted in red), and X to
open an EBOOT.PBP file or browse into a folder.
NOTE: To load LUA applications, you need to run the EBOOT.PBP that is in
the \PSP\GAME\USER_LUA folder, which will launch Lowser and let you
browse to open the application.
- Once you select an EBOOT.PBP to load, after a few moments, the loader
will either display an error message, or give you the option to run
the application.
- To exit the application, you need to reboot your PSP. You can do this
by removing the battery, or holding the power switch for at least 10
seconds.
Using multiple versions of EBOOT loader
---------------------------------------
In the past, some EBOOTs have worked better with v0.3 of the loader.
This seems to be fixed now, but for the time being I'll continue to
bundle v0.3 with the current version.
This zip includes v0.3 in the folder "EBOOT loader 03" - just open this
folder instead of the main "EBOOT loader" folder, to run this specially-
modified version, that is designed to work alongside v0.7.
Troubleshooting
---------------
If you have problems with an individual EBOOT getting to the "Press X to
launch the program" screen, but crashing immediately after, here are a
few things to try:
- Check whether it is already on the list of non-working EBOOTs below.
- Make sure you are trying to run it as the first thing you do after a
clean reboot of your PSP
- Use v1.0 EBOOTs in preference to v1.5.
- Make sure that you read any README supplied with the homebrew, and followed
the installation instructions (for v1.0, preferably) carefully.
- Make sure that any support files (e.g. WAV files, graphics files)
contained in the ZIP file are copied into the same place on the memory stick,
relative to the EBOOT file.
- Experiment with the launcher options on the final confirmation screen:
try starting with the square button, or with the left trigger button if
the option is offered.
- Check the forums at pspupdates.com - someone might already have found a
way to make this EBOOT work.
- When starting the EBOOT loader, try pressing the "down" button very quickly
immediately after pressing "X" to open the 'EBOOT loader' photo folder.
This can help the stability of some apps.
- If you see a message during the loading process, saying
"Found suspicious hard path", then this means the loader detected that
the application depends upon being in a specific location on the
memory stick. Usually the path will mention a specific file - try moving the
application folder so that the file is in the place shown.
If you find that one of these steps helps, then please send me details
on what you did to make the EBOOT work - I can build the workarounds
automatically into the next version of the loader.
NOTE: If the EBOOT loader aborted the process before reaching the "press X"
screen, then don't bother trying these steps - there's no way that EBOOT
will currently work, but please remember to send the details of the error
message to me, so that I can attempt to change the code to make it work.
Fixing up the file times:
-------------------------
If you have problems with the PSP freezing as soon as you open the PHOTO
folder, or even if it just starts the EBOOT loader as soon as you open the
PHOTO folder, and you want to be able to view photos normally, then you can
use the enclosed TOUCH.EXE file to help out:
- Copy touch.exe to the \psp\photo\ folder on your memory stick.
- Open a windows command prompt (click "Start", "Run...", and enter "cmd"
in the box that comes up).
- In the command prompt, enter these commands:
> F: (replace 'F' with the drive letter of your memory stick)
> cd "\psp\photo\eboot loader"
> ..\touch run_l.tif
> cd "\psp\photo\eboot loader 03"
> ..\touch run_lalt.tif
Future plans:
-------------
- Improve compatibility
- Tidy up the UI and make it more exciting to look at
- Reduce the number of components (TIF, PNG, L.BIN), but this structure is
easiest to work with at the moment.
- Improve off-switch handling (maybe even allow clean exit from applications
using Abu's 'Hello World 2.0' ideas)
- Allow loading of EBOOTs via wi-fi
Compatibility Status:
---------------------
Working EBOOTs: % of tested
Working LUA scripts: % of tested
This is the list of known incompatible EBOOTs:
- Basilisk II : kernel-mode
- Blinky's 'Clocks' : kernel-mode
- Bochs emulator : kernel-mode
- DJSP : kernel-mode
- DosBox : kernel-mode
- Dr. Mario : kernel-mode
- File Assistant 0.02 : kernel-mode
- Flower demo by Moppi : kernel-mode
- Hackah Tetris : kernel-mode
- Heretic : kernel-mode
- ISO loaders : kernel-mode
- Nethack : kernel-mode
- PSPDA/Notepad : kernel-mode
- PSPRadio 0.34 : kernel-mode
- PSPWeather : kernel-mode
- Reminiscence : kernel mode
- SNES9xTYL 0.2 : kernel-mode
- Scrabble assistant : kernel-mode
- ScummVM emulator : kernel-mode
- TEDZero Copier : kernel-mode
- Tail Tale : kernel-mode
- UMD emulators : kernel-mode
- LUA Player standard build : kernel-mode (but there is a user-mode
version bundled with this loader).
- C64 emulator : kernel-mode, but the author is developing a
user-mode version for the next release.
- Puzzle Sudoku v0.03 : Crashes loading into memory
- Solitaire : Crashes loading into memory
- Arkanoid : Crashes loading into memory
- MAME : Starts, but fails when loading ROMs
- PSPKick 2.0 : Displays splash screen, then hangs
- Xynth : Starts, but crashes after a few seconds
- Beats of Rage : Crashes at launch
- SmashGPSP : Crashes at launch
- Ceres : Crashes at launch
- PSP Calculator v0.2 : crashes at launch
- UMD RUU : Crashes at launch
- Hexen 1.0 : Starts but crashes after 1 min.
- DGen emulator : Starts but crashes loading ROMs
- MikMod player : Starts, doesn't seem to play anything
- PSPGBA 1.0 : starts, but nothing happens when trying to load ROMs
- PSPChess : Missing NID 93440B11 : unknown wifi call
- VBAPSP v004 : Missing NID 4CC63FDC : unknown Ge call.
- PMP 0.5
- Fast loader 0.70
- DevHook 0.22
(With the cooperation of the authors, it's possible that many of the
kernel-mode apps can be converted to user-mode).
This is the list of known compatible EBOOTs:
- 3D dot ball by Aerol33t
- AVI Play 2
- Aozora text reader
- Attack of the Mutants 0.2
- Attack of the Mutants 0.3
- BMP loader 0.2
- Bookr 0.6
- CaSTaway/PSP 0.05 ST emulator
- Casino Addict
- Doom PSP 0.0.1
- File Assistant 0.01
- Freecell
- Generator 0.22 Megadrive/Genesis emulator
- Ghost In The Matrix v0.2
- Nem's Hello World
- NeoCDPSP 0.1
- NesterJ NES emulator
- Noiz2SA 0.5
- Original Tetris JP
- Polygon
- PSP Blackjack
- PSP Calc 0.1
- PSP Mandel Explorer 1.0
- PSP Pacman - must be placed in \psp\game\pacman10
- PSP Quake - must be placed in \psp\game\quake-psp
- PSP Rhythm Composer - must be placed in \psp\game\PSPRHYTHMabcdefghijklmnopqrstuvwxyzabcde
- PSP Schedule 0.25
- PSP SimpleTurn
- PSP Sokoban 0.9
- PSPReader 1.1.2
- PSPad 1.0 text editor
- PSPaint
- PSPdePon
- PSPectrum 0.1 - must be placed in \psp\game\pspectrum
- PSPong
- PSPuzzle v0.7
- Puyo Puyo
- RIN v1.32 GBA emulator
- Robotorn3D
- Scorch 1.4a
- Sega Master System / Game Gear emulator - must be placed in \psp\game\sms
- Simon v0.7
- Snakman
- SNES9xTYL 0.1
- Squarez 0.8
- Terra Incognita - must be placed in \psp\game\terrapsp
- Tetris Portable 0.3
- TextViewer 0.3
- Tsukihi Minti
- VMU emulator
- Various sample applications from PSPSDK
- uo_NesterJ 2b
- uo_Snes9x 0.02y32
New Working EBOOTs in this release:
- Attack of the Mutants 0.3
- Bookr 0.6 (PDF support works fine now)
- Casino Addict (was broken in 0.6)
- Freecell
- NeoCDPSP 0.1
- Noiz2SA 0.5
- Polygon
- PSP Pacman
- PSP Rhythm Composer
- PSPRemote - hopefully. Let me know if you are able to test it.
- PSPdePon
- Puyo Puyo
- Robotorn 3D
- Snakman
- Sega Master System / Game Gear emulator (was broken in 0.4-0.6)
- SNES9x TYL 0.1
- Terra Incognita
- Tsukihi Minti
EBOOTs known to have gone from working to broken with this release:
EBOOTs with partial progress made in this release:
- MikMod player : Starts, doesn't seem to play anything
- Xynth : Starts, but crashes after a few seconds
- DGen emulator : Starts but crashes loading ROMs
- JPEG Viewer 0.53 : Starts but fails when loading images
Known working LUA scripts:
- Air Hockey
- Alien Duck Hunt
- Bomberman
- Button Mashing Revolution
- Ceelo
- Chicken Legs
- Hiragana Quiz
- Jezzball
- Lowser
- Memory Game
- Minesweeper
- PSP Millionaire
- PSPXMB
- Shivers
- Snake
- Tsukihi Minti Demo 1.1
- Wall Breaker 0.03
Not working LUA scripts:
- Peanut Butter Jelly Wars : starts but crashes at the start of the game
- PSPQuarium: looks like a bug in the script.
New working LUA scripts in this release:
- Air Hockey
- Alien Duck Hunt
- Bomberman
- Button Mashing Revolution
- Ceelo
- Chicken Legs
- Hiragana Quiz
- Jezzball
- Memory Game
- PSPXMB
- PSP Millionaire
- Shivers
- Tsukihi Minti Demo 1.1
- Wall Breaker 0.03
As you can see, I haven't tested a huge number yet, so please let me know
if you test and can confirm compatibility of other EBOOTs.
If you find an EBOOT that doesn't work, then please email me at
fanjita@fanjita.org
with details of:
- the name of the EBOOT that failed, and where to get it from
- the last message that was displayed on the PSP screen
- your firmware version, and PSP region (US, EU, JP).
NOTE: Kernel-mode support is currently not possible on v2.0 firmware, until
someone finds a way to access the kernel memory space.
Acknowledgements:
-----------------
This app wouldn't have been possible without the toc2rta TIFF exploit code,
or Saotome's hard work on the first beta EBOOT loader, or the support of
the fantastic folks at the ps2dev.org forums (especially Groepaz's list
of NID -> syscall mappings).
Thanks also to metallic88 and miemt11 for their hard work beta testing, as
well as many other individual email contributions with information on which
EBOOTs are working.
If you have found this program useful and want to encourage further
development, please consider donating a small amount via paypal to
fanjita@fanjita.org. To be able to work effectively on it, I need to
buy a second PSP (to understand the v1.5 environment more fully) and more
memory stick storage for testing. As little as a $1 donation would be
enormously helpful. Thanks.
Change history:
---------------
v0.7 : Compatibility, usability
- Implement simple internal memory manager, hooked onto firmware memory
management, to boost memory pool available to applications.
- Hook thread allocation and exit, to allow for clean return to the
loader from applications that support an Exit option.
- Improve code signature algorithm to distinguish between similar EBOOTs
(fixes mis-identification of Casino Addict as SMS emulator).
- Added overclocking option : use left and right trigger buttons when
choosing file to change CPU speed.
- Add NID resolution for Sircs function : enables PSP IR Remote function.
- Add USB stubs to user-mode LUA, and better debug info in case of script
errors.
- Added left and right DPAD support in file-chooser, to go to the start
and end of the list
- Now supports more than 20 files in a directory
- Found pathname hack to run PSP Rhythm Composer.
- Improved cache flushing, should improve reliability
- Added safeguard to prevent PSPSet from being run and bricking 2.0.
v0.6 : Compatibility and stability
- bundle user-mode LUA player.
- only process stringtable section header and .reginfo, all others are unused.
- setup $gp register from .reginfo
- change folder thumbnail to smaller image, improves launch stability.
- added scan for EBOOTs with hard-coded paths.
- clear display RAM before starting some EBOOTs, to clear up some
graphical anomalies.
- added direct seek to ELF header - much much faster file loading.
v0.5 : More compatibility enhancements, bug fixes
- Better argc/argv handling, prevents a common cause of startup
crashes (e.g. PSP Schedule).
- Made the 'return to chooser' function more stable. It now shouldn't
affect how well the next EBOOT loads.
- Improved file scanning speed - large EBOOTs should load much faster.
- Added 'alternate startup parameters', use this to run Sega Master System
emulator which was broken in v0.4.
- Introduced 'EBOOT signatures' : known workarounds for specific
EBOOTs should now be turned on automatically, and install
location can be automatically checked if a specific path is
required.
- Added support for .init sections, should help avoid a few more
startup crashes.
- Added option to return to EBOOT chooser on final confirmation menu.
- Version number shown on screen fixed.
- Lots more info in readme file.
- Various minor bugfixes.
v0.4 : Usability & reliability enhancements
- Return to menu if possible after failed load. NOTE : this is
a bit flaky, and mainly designed for quick checks for kernel-mode
apps, etc. If something crashes after you ran through a few EBOOTs
that wouldn't load, it's worth retrying it immediately after a
reboot.
- Experimented with exception handlers for extra diagnostics, but this
is not possible in user-mode (and anyway the appropriate syscall code is
unknown for v2.0).
- Fixed overflow with more than 19 directory entries - now apps that
failed just after EBOOT selection will get further.
- Added set up of argv, argc to supply path arguments - helps for
Ghost In The Matrix, possibly others.
- Changed load address to 0x0860000, to allow more headroom for increased
loader complexity. Also begun integrating Abu's loader code with the
TIF file.
v0.3 : Compatibility enhancements
- Allow browsing of multiple EBOOTs
- Change directory to selected EBOOT location
(adds sounds to Attack of the Mutants)
- Restore screen mode before running EBOOT
(improves reliability)
- Allow multiple text segments in ELF
v0.2 : Original version, ported to C from original v0.1 EBOOT loader by
Saotome. |