PS3 In-Game Menu

Game Menu Features:
– In game music player (music from hdd only)
– In game screenshots (saved to /dev_hdd0/tmp/ folder)
– In game recording (saved to /dev_hdd0/tmp/ folder)

VSH Menu Features:
– Auto detect and attach game menu plugin (may be disabled/enabled)
– XMB screenshots

2 requirements needed for loading and displaying the game menu.:

1. 16MB free memory (if your game uses most of the 256MB of memory, the plugin will not work or will not display the menu until 16MB is free)

2. Game needs to run gcm (most games do)
You can tell if a game uses gcm by looking at the modules loaded during gameplay.
This can be done by using webMAN-mod and selecting your game proc from PS3MAPI interface. It will have libgcm listed as one of the modules loaded.

PS3 ingame menu


1. Copy the plugins folder to /dev_hdd0/. You should have the directory /dev_hdd0/plugins/ps3_menu/ with ps3_vsh_menu.sprx and ps3_game_menu.sprx in it.

2. Add this line to plugins.txt if you’re using PRX Loader or to boot_plugins.txt if you’re using Cobra:

3. Boot up a game and the game menu should automatically be loaded once it starts.
(Alternatively you may load ps3_game_plugin.sprx directly to the game using webMAN-mod PS3MAPI interface)


– Unlike VSH where RSX buffer pointers are at the same address, these buffers are dynamic in games.
Fortunatley libgcm allows us to obtain them in game and giving us the ability to do blitting.

– Blitting in game follows the same procedure as VSH where we pause RSX and disable pad data for VSH to process.
The only difference is I’m using a hook instead of getting pad object from memory due to it being dynamic when switching from game to game.

– Be careful when programming game plugins. Unlike VSH where the same modules are loaded for every system, not all games will load the same modules and you will have to load them manually.

– Remember to change font and background constants in blitting.h if you want them custom and also enable their compiler flags.

– Make sure to pass the -B flag when compiling both vsh and game menu plugins concurrently. Shared objects need to be recompiled for each individually.
(make -B all)

3141card for the VSH menu framework
littlebalup and Orion for providing their source code of their VSH menu plugins
Masterzorag for keeping an up to date template provided in github
therifboy for his explanation on hooking methods
Mysis for his POC plugin

Program: PS3 In-game Menu
Release Date: 10/01/2015
Developer & Source: ’OsirisX’ on  psx-place
Quote by ‘OsirisX’ via release thread: