Interacting with XMB
Interacting with XMB
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?
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?
CXMB
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!
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!
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.
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.
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_.
-
- Posts: 409
- Joined: Tue Oct 09, 2007 4:22 am
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º'
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.Its pretty dissapointing that I got absolutely no help here from all these posters before. If you have nothing to contribute, don't contribute.
Otherwise your next posts won't have many anwsers.
--pspZorba--
NO to K1.5 !
NO to K1.5 !
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 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.
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.Otherwise your next posts won't have many anwsers.
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.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.
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.
-
- Posts: 409
- Joined: Tue Oct 09, 2007 4:22 am
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
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
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!
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!
-
- Posts: 409
- Joined: Tue Oct 09, 2007 4:22 am
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
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.
-
- Posts: 409
- Joined: Tue Oct 09, 2007 4:22 am
-
- Posts: 409
- Joined: Tue Oct 09, 2007 4:22 am