HBL Alternate menus

Lots of people contact me and other HBL devs to get improvements in the HBL menu. I do take them into account, even if I haven’t released any new release of wMenu in a while, but did you know that you can actually choose your HBL menu among a series of existing ones? Or that you could actually create your own?

A while ago (when wMenu was introduced), I moved the menu away from the core of HBL, making it a homebrew. The initial goal was to get compatiblity with n00bz’ eMenu–, but I ended up creating wMenu instead. Since the menu in HBL is a homebrew, anybody can create one as long as they respect a few rules.

If you’re interested in creating your menu for HBL, it is quite easy. Your menu has to follow a few rules to communicate with HBL. A good example on how that works is the “default” menu for HBL, which source code is here:

http://code.google.com/p/valentine-hbl/source/browse/trunk/eLoader/menu/main.c

The code of this basic menu is open source, but as I stated a while ago on advancedpsp.tk, the necessary API to communicate with HBL is an exception. Basically, you should feel free to use the following code in your own menu, even if you decide to go close source:

?

typedef struct
{
	unsigned long        APIVersion;
	char       Credits[32];
	char       VersionName[32];
	char       *BackgroundFilename;
        char        * filename;   // The menu will write the selected filename there
}	tMenuApi;

and the part that reads  the contents of this structure in main.c. The value stored in settings->filename in HBL is the initial path that was chosen by the user for their homebrews (this is a configuration value in HBL’s config). Feel free to use it or ignore it, as you want.

    if (argc > 1) {
        char * hex = argv[1];
        *(hex + 8 ) = 0; //bug in HBL ?
        fprintf(stderr, "Location: 0x %s\n", hex);
        settingsAddr = xstrtoi(hex, 8);
    }
    fprintf(stderr, " settingsAddr : %d\n", settingsAddr);
    if (settingsAddr) {
        tMenuApi * settings = (tMenuApi *) settingsAddr;
        ebootPath = (void *) settings->filename;
    } else {
        ebootPath = dummy_filename;
    }

From then, the ONLY thing you need to do, is write the full path of the eboot you want to run into settings->filename, then exit your homebrew with a normal call to sceKernelExitGame. HBL will handle the rest.

There’s only one special rule, if instead of a full path to the homebrew, you write “quit” inside of settings->filename (then quit the menu with sceKernelExitGame), this will ask HBL to quit back to the XMB.

I said that alternate menus exist for HBL. The SVN source of HBL comes with a basic menu, and my own releases ship with wMenu, that you probably already know:

But there are other menus coded by other devs, which have different options, and that might fit your needs better.

SimpleMenu by Nymphaea is a nice text-mode menu with scrolling and some additional features

Download source

xenu by Mr.X can browse folders, and offers some neat configuration settings, and overall a nice clean interface.

Download source

Those are only examples, as long as you follow the basic API, anybody can create a Menu for HBL, and, really, the only limit to what the menu can do is your imagination. If you want your menu to play mp3 in the background, go for it! A menu for HBL is probably an easy and useful way to start coding homebrews, even if you just began coding on the PSP.

I know that other menus for HBL are floating on the internet (some of them were unfortunately lost when advancedpsp.tk closed, but remember that we now have a new forum for HBL related discussions!), if you created a menu for HBL, don’t hesitate to showcase it :)

  1. antcapp’s avatar

    finally! I am very happy.
    thanks wololo

    Reply

  2. 0M9H4X’s avatar

    the download link for “xenu by Mr.X” is broken.

    Reply

  3. sandesh’s avatar

    damn my noobness!!!

    Reply

  4. wololo’s avatar

    @0M9H4X : thanks, fixed!

    Reply

  5. Metroid_III’s avatar

    TY wololo, this is very useful. One question: how do we read the hb_folder value from our menu to start in the folder specified?

    Reply

  6. wololo’s avatar

    @Metroid_III: it is stored in settings->filename initially :) (see the code sample in the article, it retrieves it initially)

    Reply

  7. 0M9H4X’s avatar

    @wololo: thanks, downloaded!

    Reply

  8. cscash241’s avatar

    if only wmenu was open source

    Reply

  9. Nymphaea’s avatar

    My simpleMenu is open source, if you need ideas. I also have the basics commands from the menu in a pair of files named “hblmenu.c” and “hblmenu.h”, they are available on my blog. Menu’s made with them can’t see multiple directories, I mostly made them to help learn how to make a menu for HBL.

    Also, please, people who have the ability to make menu’s, please try. It’s nice to see options.

    Reply

  10. Metroid_III’s avatar

    @ wololo Thanks :)

    Reply

  11. wololo’s avatar

    @cscash241 : wMenu is closed source for reasons that I discussed many times. Mostly I was fed up with some people taking the sources of HBL, improving the existing menu with 10 lines of code, and getting all the praises for HBL. If wMenu were open source, these people would have done this again.

    Now these guys have to actually code an entire homebrew, which is not difficult as I explain in this article (wMenu is less than 500 lines of code by the way, most of the work is done by JGE). Well guess what, the stealers stopped bothering, which proves my point.

    99% of my work for the PSP community is open source, so accept the idea that 1% of it is not.

    Also, as Nymphaea said, alternate versions are open source, so it’s not like you’re out of examples to start coding yours :)

    Reply

  12. Norml’s avatar

    The background goes nicely and the menu works also, it has a hint of darkness! I’d say it’s pretty much perfect, wouldn’t change it and always have to delete the other backgrounds now.

    Reply

  13. PSPatapon’s avatar

    Hey Wololo!
    I got some problems with the JGE++. Cause i want to write my menu in it.
    I downloaded JGE++ but i got only some examples. Could you help how i must use it? Thx!

    Reply

  14. w7y7a7t7t’s avatar

    alright heres my problem, i’m using SimpleMenu by Nymphaea because i’ve used it several times without one crash, but with Wmenu i get crashes 1/3 times. so my question is with wmenu it just showed homebrews, but the simpleMenu its also showing a bunch of odd files like ._doom not i thought theses were hidden files but when i look into games on folder on my psp with showing hidden files enabled i see nothing?

    Reply

  15. Neil’s avatar

    Thanks Wololo for that awesome feature! I am just curious, I am kinda a noob at this stuff so can anyone help me in putting mp3s in the HBL menu as wololo suggested? Because I have no idea what to do and I don’t wanna mess it up.

    Reply

  16. w7y7a7t7t’s avatar

    alright fixed my issue, for some reason i could only see the hidden files on windows and not os x for some reason. anyway i thought i should let you know that link for simplemenu is the older version, version 2 is out.

    Reply

  17. cscash241’s avatar

    @Nymphaea you forgot the makefile in the sampel menu on ur blog

    Reply

  18. Nymphaea’s avatar

    @cscash241, if you are talking about the “hblmenu.c/hblmenu.h” files, it isn’t a complete menu. just the functions needed to make one. You can look at simpleMenu v1 for an example of it’s usage(version 2 doesn’t used these files though)

    @w7y7a7t7t, that sounds like system files, they could be new since you changed to simpleMenu, they probably would have shown up on wMenu too.

    Also, yes, version 2 of simpleMenu has been out for a while, you can get that at my blog too, if the one here is in fact version 1. I’m working on version 3 right now, less to worry about now that h4ck is back :P

    Reply

  19. sandesh’s avatar

    ok, i m sooo confused. can anybody gimme a hint of what i have to do/learn to create my own homebrew??? pls gimme a webpage atleast! thanks!

    Reply

  20. w7y7a7t7t’s avatar

    @Nymphaea do you know when version 3 will be and, also will you be able to use a .jpg or or other file type as a background like in wmenu?

    Reply

  21. Nymphaea’s avatar

    @sandesh, Try psp-programming.com :)

    @w7y7a7t7t, I’m trying to make it ASAP, just fixed my computer today so I’ll be back at it. I may allow using of backgrounds with it, we’ll see :P

    Reply

  22. cscash241’s avatar

    i would start here http://www.psp-hacks.com/forums/f141/how-to-create-games-and-apps-on-your-t153653/ but use psp sdk on windows instead of setting up code blocks whatever

    Reply

  23. cameraguy256 aka.terminator157’s avatar

    I used eboot and mr x’s menu and it didnt let me quit gpsp kai 3.4 but wmenu did, WMENU 0.3 IS MORE STABLE!

    Reply

  24. w7y7a7t7t’s avatar

    @cameraguy256 aka.terminator157 just because a homebrew can’t exit back to the menu doesn’t mean it is more or less stable, and why would you need to quit gpsp kai? you can’t load anymore homebrews once you get to wmenu anyway.

    Reply

  25. patapon user’s avatar

    just wanted to know if u guys are done providing support to patapon users and if homer rin will ever work in the future revisions. homer rin is better because of cheat support. hehehe :)

    Reply

  26. Black Star’s avatar

    wMenu is still the best :P

    Reply

Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>