Interacting with XMB

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
Bicubic
Posts: 6
Joined: Wed Jun 11, 2008 5:30 am

Interacting with XMB

Post by Bicubic »

Hi all, I'm interested in extending the XMB and have a few questions relating to it. I'm very new to psp development, so please excuse any obvious things.

I would like to perform some automated tasks while the XMB is running, add menu items to it, and possibly change the visuals. How hard are these to achieve? I was thinking about hooking the flip call to draw my own icons, but I'd also need to have the XMB shift its current icons so it comes back to modifying its memory?
How about changing the wave/whatever background in the XMB? Is there any way to hook the drawing of the background, do my own drawing, and then let the XMB go on to draw the foreground?
angelo
Posts: 168
Joined: Wed Aug 29, 2007 9:34 pm

CXMB

Post by angelo »

To do visule effects isn't really C/C++ related.

It's more to do with HEX and image editing with the files that make up the theme in flash 0.

This really isn't the forums for help. There are forums out there that specialise in *ONLY* customizing PSP themes,

If you want to start customizing the PSP's looks, I suggest you google CXMB. It stands for Custom Xross Media Bar.

It's very easy to add custom themes to your PSP (there are thousands out there!) and make your own.

If you want to make your own, I suggest you have a good image editor that has the ability to convert image files. Infraview is a good freeware version.

I hope that solves your question!
Bicubic
Posts: 6
Joined: Wed Jun 11, 2008 5:30 am

Post by Bicubic »

I am aware that you can change themes of on the psp, mine's as customised as they come.
However what I'm asking is not to fiddle with the wave texture or mesh, but to replace the wave alltogether with my own code. And more importantly, make it possible to run my own code by selecting new or modified old icons in the XMB.
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

C/C++ is a programming language, so a problem can be solved by coding a math function into sourcecode being a class or what the hell you like; saying such a problem is not C++ related is like saying that a book isn't language related. The thing Bicubic asks is indeed PSP related so it deserves an answer. Unfortunately the pointed out effect is very difficult to achieve: it's not as easy as wait a vsync and add your graph just before the next. I have one or two ideas but i wouldn't know where to start. The only thing i can do for you is defend your question as reasonable. In the meanwhile you could quick-search on google for a plugin written by dark-alex to programmatically change XMB's waves speed and appearance: it would be a nice "XMB programming primer". I don't remember the name of this app but it was released after the discover of an easter-egg that makes M33 CF's XMB go wild on April's 3rd (that means March 33...M33). If you can take a glance into sourcecode, you could start from it, _i guess_.
Pirata Nervo
Posts: 409
Joined: Tue Oct 09, 2007 4:22 am

Post by Pirata Nervo »

the plugin was written by Red_Squirel
Image
Upgrade your PSP
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

red squirrel wrote something that at each reboot sets the date to april 3rd (that's useless for what we want). Then he implemented some code by dark alex that does it without tricks. (at least that's what i read)
a_noob
Posts: 97
Joined: Sun Sep 17, 2006 8:33 am
Location: _start: jr 0xDEADBEEF

Post by a_noob »

Dont listen to the bullshit in this thread, it is completely 100% possible. You just need to hook some of the GU functions. Take a look at my 3D VSHPong and VSHTime.

Code: Select all

.øOº'ºOø.
'ºOo.oOº'
Bicubic
Posts: 6
Joined: Wed Jun 11, 2008 5:30 am

Post by Bicubic »

Thanks for the heads up a_noob, exactly what I had in mind.
Have you released the source for them, or do you mind explaining what you're hooking?

Its pretty dissapointing that I got absolutely no help here from all these posters before. If you have nothing to contribute, don't contribute.
angelo
Posts: 168
Joined: Wed Aug 29, 2007 9:34 pm

Sorry...

Post by angelo »

I just answered as well as I could to the first post... O_o

Sorry I tried to help!
pspZorba
Posts: 156
Joined: Sat Sep 22, 2007 11:45 am
Location: NY

Post by pspZorba »

Its pretty dissapointing that I got absolutely no help here from all these posters before. If you have nothing to contribute, don't contribute.
You shouldn't write things like that, people tried to help you as much as they can in giving some starting points to your search.
Otherwise your next posts won't have many anwsers.
--pspZorba--
NO to K1.5 !
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

Bicubic wrote:Thanks for the heads up a_noob, exactly what I had in mind.
Have you released the source for them, or do you mind explaining what you're hooking?

Its pretty dissapointing that I got absolutely no help here from all these posters before. If you have nothing to contribute, don't contribute.
Patching into a system routine to overlay a bad pong game or stamp the time over top the XMB is NOT the same thing as what you described as wanting to do in your post. He's just what his user name says - a *&%%$%^ noob. What you described in your post as what you want to do would take a major rewrite of some of the most basic XMB modules. It cannot be done by patching a couple GU functions. You'll have to give up most of the functionality you wanted if you do so, but it IS considerably easier to patch into the GU functions.
Bicubic
Posts: 6
Joined: Wed Jun 11, 2008 5:30 am

Post by Bicubic »

Otherwise your next posts won't have many anwsers.
I don't want many answers. I want helpful answers. If you have nothing to offer, offer nothing. There are off-topic boards for useless chitchat.
Patching into a system routine to overlay a bad pong game or stamp the time over top the XMB is NOT the same thing as what you described as wanting to do in your post. He's just what his user name says - a *&%%$%^ noob. What you described in your post as what you want to do would take a major rewrite of some of the most basic XMB modules. It cannot be done by patching a couple GU functions. You'll have to give up most of the functionality you wanted if you do so, but it IS considerably easier to patch into the GU functions.
After examining his plugin more closely I realized that it actually draws over the entire XMB frame instead of at the correct moment - between the wave and the foreground. So I guess no it doesn't do what I want, but its something.
I also noticed that for things like audio streaming, content on the memory stick determines icons in the XNB in that context. This is promising as it may mean there is some functionality exposed to alter icons - the inserted UMD can also add new content like updates, although this may be limited to updates only. Was this looked into by anyone?

I guess if nothing else, I'd have to resort to decompiling and modifying the modules responsible for rendering the wave to invoke a prx compiled from c++? I've worked with MIPS before, but never on the scale of altering existing complex code.
Pirata Nervo
Posts: 409
Joined: Tue Oct 09, 2007 4:22 am

Post by Pirata Nervo »

What has the umd icons to do with what you want ?
They only show if there is a umd inserted and that check is made by the system.
instead of blitting the xmb without the umd update and umd icons, the xmb is blitted with the umd update/umd icons if the check returns true.

And not by patches.

This is what I think the system does. I can be wrong of course.
I may be misunderstanding you
Image
Upgrade your PSP
Bicubic
Posts: 6
Joined: Wed Jun 11, 2008 5:30 am

Post by Bicubic »

Well its not quite that simple. If my UMD can offer an icon to update to firmware 2.00, perhaps its also capable of offering an icon to 'dance', or whatever the code asks for. Of course this may be limited, such as only the game title and update, the code for both could be fixed to doing two preset actions so they'd be useless.
I guess I should clarify what I want. An example might be a decent RSS reader. I would like to 1: have a background thread that connects to the 1st wifi network and downloads all my feeds at 5am each day, and 2: add an icon to my XMB menu somewhere (not in the depths of game>memory stick) called 'rss reader' which launches my reader eboot.

The other part is pretty clear: I don't like the wave, I'd like to do my own drawing on top of it. Better yet, I'd like to replace it with my own drawing so its not wasting cpu cycles.

PS: 'blit' is the action of shifting image data from system memory to the screen. In the context of gu, it has no place. The joys of hardware 3d acceleration!
Pirata Nervo
Posts: 409
Joined: Tue Oct 09, 2007 4:22 am

Post by Pirata Nervo »

you didn't understand me but ok lol. (in the blitting part) I am not english so some times I don't know the exact words to to use.

As far As I know all umd's offer the update thing.
At least all my umd's do.
Image
Upgrade your PSP
jas0nuk
Posts: 137
Joined: Thu Apr 27, 2006 8:00 am

Post by jas0nuk »

The VSH checks for the presence of an UPDATE folder in the SYSDIR directory of the disc; if it is there and the update files are present, an update icon is displayed. There is no other check of that kind.

If you want to literally add icons to the XMB/VSH you'll need to look into the RCO format and how vshmain.prx processes it to determine which icons to add. Doing it by hooking a vshmain.prx function might work, though none of their names are known.

And replacing the wave is possible*, but probably not with an image. There is a wallpaper function built into the firmware which does that, and disables the waves while it is enabled.

* http://forums.qj.net/f-psp-development- ... 97755.html
Last edited by jas0nuk on Mon Jun 16, 2008 5:08 am, edited 1 time in total.
jas0nuk
Posts: 137
Joined: Thu Apr 27, 2006 8:00 am

Post by jas0nuk »

AHH damn, delete this please. >_>
Pirata Nervo
Posts: 409
Joined: Tue Oct 09, 2007 4:22 am

Post by Pirata Nervo »

then it's what I thought.
The firmware checks for the update and displays it and does not add an icon to the vsh, the only thing is it is not being displayed. (I think)

delete what?
the thread ??
Image
Upgrade your PSP
jas0nuk
Posts: 137
Joined: Thu Apr 27, 2006 8:00 am

Post by jas0nuk »

I double posted by quoting myself when I actually meant to click the edit button.
Pirata Nervo
Posts: 409
Joined: Tue Oct 09, 2007 4:22 am

Post by Pirata Nervo »

oh lol xD
that happens to me on other forums when I am used to different forum systems
Image
Upgrade your PSP
Post Reply