One of the most widely used menus for eCFW on the PS Vita is about to receive a full update, lots of new features, improved code, optimizations, and much more will come with pyMenu 0.4 and you’re about to see what it can offer, but first we’ll do a walkthrough of all the version pyMenu has had and how it has evolved from being a very simplistic menu, to a full fledged XMB replacement.
pyMenu 0.1: The beginning
pyMenu was created in June 2012 as an entry to the VHBL Menu Contest and competed against yMenu (which was also created for that contest). Most of the work in pyMenu had gone to installing the pspsdk and modifying the python interpreter to be able to load homebrews in VHBL. The little time I had and the time the SDK + interpreter consumed left me with very little time for the actual menu. pyMenu was a pioneer in being written in a language other than c/c++, python to be precise and many thought it was not doable, and even told me to give up. Anyway, the first pyMenu release, having little time as I said, ended up being a mod of psptools, a homebrew I had previously created. This particular version of pyMenu greatly lacked in features, having only two options in the main menu: Game and Savedata.
pyMenu 0.1 only had two features: Game and Savedata. The first one to boot homebrews, the second one to install them.
pyMenu 0.1 help menu, looks old and noobish
pyMenu 0.2: improving what was already done
For pyMenu 0.2 not much was added, it followed the same simple design that pyMenu had inherited from psptools. The mayor feature brought by this version was the ability to extract and view eboots icon0 using regex, which was not the best way to go as it failed with some eboots and was generally slower than most methods out there.
pyMenu 0.2 also included a lite version of psptools that allowed you to fix missing files/directories, fix stuck pixels and test out the psp buttons. Another feature this version of pyMenu got was an early version of the file browser, but this was never publicly released.
pyMenu 0.2 biggest feature was extracting and displaying icon0.png, the icons were shown in the upper left corner as back then I didn’t know how to move images around until I came across some psp2d samples. The code that extracted the icons used regex, which means there was always a possibility of failing, in pyMenu 0.3 new code was made by qwikrazor which is faster and more precise and also allows extracting pic1 (we are yet to implement pic1 though)
The help menu looks nicer in pyMenu 0.2
alas, a very early version of the file browser, note: this version of pyMenu (dubbed 0.2.3) was never publicly released, only one copy existed and that was in my vita’s memory stick, had that stick been formatted, we would have never seen this version.
pyMenu 0.3: reviving a dead menu and turning it into a mayor homebrew
Not only pyMenu lost the menu contest, but it also earned very few popularity, most people didn’t like the simplistic nature of the menu, the style of only showing one item at a time was confusing to most people and the lack of features doomed the menu.
Soon people forgot that this menu existed, and that made me abandon the project.
Then some day I found a user mode exploit and was able to run pyMenu with VHBL and released some photos, then people started noticing the menu and I decided to finish the file browser, but instead of releasing pyMenu 0.2.3 I decided to port the browser’s menu style into the rest of pyMenu, and so development of pyMenu 0.3 began.
As the project advanced, new features were added, but I also had a lot headaches in getting some of them to work: the music player was constantly crashing, I couldn’t get isos and csos to boot, and the biggest of them all: extracting icon0 from iso/cso seemed like a really hard task, until another developer, qwikrazo87, decided to learn python and helped out with the icon0 code. To know how pyMenu 0.3 was going I made thread with some preview images, where I also asked for beta-testers, the overall feedback from users was very positive, everyone wanted to test the menu and everyone seemed to like how it was going. A few weeks after that, pyMenu 0.3 was finished.
pyMenu 0.3 was a huge update, bringing new features never done by other menus before such as Music, Picture Viewer, Plugins Manager and a File Browser with full copy, cut, paste, delete support.
in 0.3 my overall knowledge of psp2d allowed me to do more advanced stuff that I couldn’t do with 0.1 and 0.2, this led to the creation of a new menu style dubbed complete menu.
the file browser was finished and improved to provide a full-fledge browsing experience, it can also load known files (txt, mp3, png, jpg, pbp, iso, cso, etc)
pyMenu 0.3 was rich with features, including a plugins manager for ARK and CEF, ability to load isos/csos and view their icons, playing mp3 files, etc
pyMenu 0.3 featured it’s own Blue Screen of Death, many users found it funny to see the BSoD on their Vitas.
pyMenu 0.4: the future of the project
While I thought pyMenu 0.3 was going to be the last version, some users started showing critical bugs, and others started asking if some features could be added. Other devs also showed interest in the project and wanted to contribute to it. That’s when development of pyMenu 0.4 began. The project has been in development for quite some time, and has been kept a secret by people involved in it, be it developers or testers, the existence of pyMenu 0.4 never came out of its private forum.
pyMenu 0.4 is yet another huge leap in the project, it involves reviewing, rewriting and improving code, as well as adding features such as the theme system and submenu system. The ram usage has also been improved greatly, as well as the overall speed, some critical bugs have been fixed and already existing features have been improved to provide a better user experience and make pyMenu a complete replacement for the XMB.
The overall generic menu has been improved graphically.
The system options allows you to do system-related tasks such as configuration, changing themes, changing the menu’s language, etc
An On-Screen Keyboard has been coded for pyMenu and will be implemented for various uses.
The file browser is the first one to incorporate the OSK and the Options Menu
The new submenu system allows the user to change the Game menu independently of the system menu, so in a sense, pyMenu 0.4 is a collection of menus that you can change dynamically
One of the best menus in the submenu system is PC Menu, which uses a PC-like arrow to move around and select the games
There is no release date and frankly I don’t know if it’ll be released soon or not, there’s still lots of bugs to fix and lots of features to correctly implement.
As always we are open to users feedback, is it going in the right direction? is there a feature you’d like to see? is there something we should change? Let me hear your thoughts.
pyMenu 0.3 can be downloaded here