Desc:
Pergame is a small module that loads other modules as if they were in /seplugins/game.txt
The difference here is that pergame.prx loads on a per-eboot basis. Thus one doesn't need
to toggle a specific module on or off if they only need it to make one game run in m33, and cheat programs that break some homebrew can be told only to load for isos/umds.
Games that require m33_620.prx/etc run successfully when using this loader instead of
/seplugins/game.txt.
Homepage:
http://code.google.com/p/pergame/
Changelog:
0.3.2: Putting autosort=1 in pergame.txt will cause launched homebrews/iso to move to the top of the xmb menu.
0.3.1: * Fixed issue with config parser croaking with too many #comments.
0.3: * now loads GAME.iso.plugins, GAME.plugins, EBOOT.pbp.plugins, EBOOT.plugins and launches module
entries within.
* pergame.txt now handles umdID's with dashes, and paths that start with '/'.
* 'umd' now matches physical UMDs only, 'iso' now matches iso/cso only.
* logging function is less crappy
* spammy verbose logging with logging=2
0.2: * UMDID detection now works via direct memory read.
* relevant modules from 5.03 prometheus, altered to load entirely from MS, are now included.
default settings in pergame.txt will now cause prometheus to load for any iso beginning with
'prm' in the following folders: /iso, /iso/cat_game, /iso/cat_mini.
Current compatibility (tested) list:
game - module - note
any - freecheat
any - cwcheat
any - psplink - only when loaded from pergame
NOT eboot demo - prometheus
NOT eboot demo - m33_620
KHBBS - khbbs translation modules
Current incompatibility list:
game - module - loaded from - result
iso/umd - macrofire - pergame.txt - game start fails with 0x80020321 (no such device)
homebrew - macrofire - pergame.txt - macrofire menu opens in a loop
any - psplink - game.txt, before pergame - psp crashes, or 0x8002013c (library not found), loads in pergame however
any - psplink - game.txt, after pergame - pergame fails to load some modules (freecheat)
eboot DEMO god eater jp - prometheus/m33_620 - pergame.txt - loads module but fails to work
eboot DEMO phantasy star 2 jp - prometheus/m33_620 - pergame.txt - loads module but fails to work
Installation/usage:
snag:
http://code.google.com/p/pergame/downloads/list
latest svn (bin+src):
http://pergame.googlecode.com/svn/trunk/pergame-svn.zip
Throw the prx anywhere and add to ms0:/seplugins/game.txt. put pergame.txt In the same folder
and edit. Syntax is (per line):
module identifier
where 'module' = 'ms0:/path/to/a/plugin.prx'. No spaces. Case insensitive. If path stats with '/', assumes
ms0:/PATH
and 'identifier' = ms0:/path/, /path/, gameid (ie jpjp65535), or 'umd'. Spaces allowed. Case insensitive.
GameID can contain a dash, or not.
Examples:
/seplugins/cwcheat/cwcheat.prx ms0:/iso/cat_game/name_of_game.cso
ms0:/freecheat/fc_3xx.prx usls-99999
/seplugins/m33_620.prx /iso/cat_newgames/
/seplugins/lolmodule.prx /psp/game/cat_testing/lolhomebrew/eboot.pbp
/seplugins/lolmodule.prx /psp/game/cat_testing/lolhomebrew/eboo
See pergame.txt for more examples.
Also, the module will attempt to load the following files, which can contain one module name per line:
/iso/name_of_game.iso.plugins, /iso/name_of_game.plugins, /psp/game/name_of_homebrew/eboot.pbp.plugins,
/psp/game/name_of_homebrew/eboot.plugins
Examples:
/iso/flow.cso.plugins or /iso/flow.plugins
/psp/game/filer/eboot.plugins or /psp/game/filer/eboot.pbp.plugins
Tested with:
CFW 5.00m33, m33_620.prx, stargate.prx, freecheat.
License:
GPL. Feel free to distribute, alter, or mutiliate - but you must distribute the source code
of any derivative works.
Caveats:
This is written for CFW 5.00m33 (primarily for selective use of m33_620). Determining
which iso is being launched is done by reading SystemController's memory. The ISOOFFSET
(0x0000B108) defined at the top of main.c is where one can adjust this. If you can
provide an offset for a particular firmware I'll include it in a future version -
which will have version detection.
This uses a StartModuleHandler, and I have yet to determine how to turn it off.
Todo:
DONE: Fix UMD-IDs and real UMDs.
Maybe? Automatic on-the-fly prometheus patching via temporary SceIO hooks.