PDA

View Full Version : CXMB-override: mix-n-match theme bits



wraggster
June 20th, 2010, 23:12
News/release from AtomicDryad (http://forums.qj.net/psp-development-forum/168444-release-cxmb-override-mix-n-match-theme-bits.html)


ACHTUNG! WARNING! DISCLAIMER! Before you use this, be sure to know how to use RECOVERY MODE to disable the plugin, if you put in a bad replacement.

This is cxmb with matchung's changes for 5.50gen functionality, plus the ability to load individual theme related files from the memory stick (rco/bmp/pmf/prx/etc). Thus, one can use different components of different themes without having to unpack and repack .ctf files, or write anything to flash0.

Detailed desc:
If any file exists on the memory stick in the /cxmb/override/vsh/module, /cxmb/override/vsh/resource, or /cxmb/override/font folders, it will load the file -instead- of whatever is (or isn't) in a .ctf.

Yes, this includes .prx files, (except for paf.prx, common_gui.prx, and vshmain.prx which will be added later). This means you can hex edit htmlviewer_plugin.prx and change the 'online instruction manuals' link to whatever, without unpacking and repacking your .ctf. This also opens the possibility for homebrew to edit this sort of thing onboard - for now, pspconsole's hex editor works great for onboard tweaking.

This is intended for theme developers, power users, and anyone who wishes to use their own gameboot, 01-12.bmp, sounds, or whatever, instead of what may be in the loaded theme.

As CXMB is licensed under the GPL, the full source code is provided in the source directory.

Caveats:
* For now, one must have a .ctf theme loaded for /cxmb/override/ to work.
* As in the original cxmb, lflash_drv->funcs->IoWrite is -not- hooked.
* Semi-bricking possible if one puts in a bad .prx or .rco - this can be fixed by disabling cxmb-override.prx in recovery mode.
* Adding certain stuff like 01-12.bmp will require a reboot. Others like gameboot.pmf do not require it. When in doubt, reboot.
* Simply tossing in a gameboot.pmf will not change the playing time. Find or edit the appropriate vsh/resource/opening_plugin.rco. MyGameboot.prx is a better plugin if you simply want this functionality.
* Likewise, 01-12.bmp with multiple images will not work if the chunksize for individual images is different in vshmain.prx(?). Find a theme that you like and rip/edit the 01-12.bmp from that.
* The included binary outputs debugging messages, which are normally invisible but may have a performance impact.

Tested so far:
* Firmware: 5.50gen d3final, (5.00m33 should work)
* .ctf Themes: P3T (endlessparadigm.com/forum/showthread.php?tid=21518) , V1 (endlessparadigm.com/forum/showthread.php?tid=18662) , stock 5.50gen files.

Tested replacements - (much more is possible):
01-12.bmp (wallpaper)
gameboot.pmf (pre-game video)
htmlviewer_plugin.* (web browser)
opening_plugin.rco (bootup intro, gameboot delay)
topmenu_plugin.rco (menu strings)
osk_plugin_500.* (keyboard)
rss_browser.* (rss reader)
system_plugin.* (sounds)
impose_plugin.rco (volume adjustment bar)

Links (censored because I might be a no good dirty spammer)
Project page: code.google.com/p/cxmb-override/
Download: cxmb-override.googlecode.com/files/cxmb-override-0.1.7z
Mirror: fnord.to/psp/cxmb-override-0.1.7z

Installation:
* copy cxmb/cxmb-override.prx to the cxmb folder on your memstick.
* (optional) copy the cxmb/override folder to cxmb/override on your memstick. This contains a gameboot and 01-12.bmp that have been tested to work (yes, the wallpaper is moronic :P).
** in /seplugins/vsh.txt, disable ms0:/cxmb/cxmb.prx
** in /seplugins/vsh.txt, add ms0:/cxmb/cxmb-override.prx 1
*** You can simply replace cxmb.prx too.

Usage:
* To replace a gameboot.pmf or 01-12.bmp, toss it into /cxmb/override/vsh/resource/ You may need to put an opening_plugin.rco with the right delay as well.
* The above likely applies to waves and whatever was included in TheCraziness1's 'XMB RCO Patcher'

Debuggery:
The logfile debugging function in the original cxmb croaked with high volume logging. The included binary prints to stderr instead, which means psplink and pspsh.exe are needed to see informative messages. If you want to help debug issues, a .zip of a working psplink and utilities can be provided.

I would appreciate testing and source review, as I am not -that- familiar with C or PSP programming.

Todo:
* TESTING (mostly done I believe).
* Reading from /cxmb/override without a loaded ctf.
* Retry-on-error for read/seek/open/etc as in .ctf files
* Find a better way to check for a file's existence than just attempting to open. This applies to .ctf too.
* vshmain.prx and others.
* conf.txt options for debugging/enabling/etc.
* optional 01-12.bmp chunksize and gameboot.pmf delay handling.
* options for per-module override exceptions (such as not allowing the browser to use a custom font, etc).
* overriding more than just 3 flash0 dirs without croaking (flash0:/kd/* in game mode?)

Why:
rco_patcher.prx provides functionality for replacing .rcos only, and doesn't work with cxmb. I am too lazy to constantly unpack and repack CTF themes while testing stuff.

Thanks:
* Dark_alex for cfw and especially a recovery menu with usb mode :P
* The original author of CXMB for creating it and placing it under GPL, who's name I am ignorant of because I are teh noob.
* Poisonhzkj and Matchung for coding and updating cxmb.

mike_jmg
June 21st, 2010, 04:51
This is great, too bad I've already overwritten the files on my flash0

I'll keep this great plugin in mind for the future, Thanks

ricosuavez
June 22nd, 2010, 02:30
if i enable the plugin i cant go in setting my psp freezes

pspfat 5.00m33-6...i can change the icons but i cant go into setting ...even if i dont change anything i still cannot go into settings