Hold+ is a companion to the PSP's music player. It adds useful features and gives you twice the battery life.

It does the following when the Hold switch is enabled:
* Switches off the LCD screen and backlight
* Underclocks the CPU to 60MHz
* Fixes a malfunctioning Hold switch - The original screen brightness and clock speed are restored only when the button is fully pushed to the Power Off position.
* Prevents the PSP from going into suspend mode if you accidently push the button too far when turning off Hold mode
* Turns off LEDs in Hold mode
* Allows the use of Left, Right, LTrigger, RTrigger, Volume, and Start buttons even in Hold mode - You can skip tracks, seek, pause playback, adjust the volume volume, and more, without leaving Hold mode

Additional Features:
* Enables the 5th brightness level on the PSP Slim
* Increases the vertical scrolling speed of the music player by 50% - You can scroll 300 songs in 10 seconds.

Turn on Hold mode to automatically switch off the display and underclock the CPU. Push the button fully to the Power Off position to switch on the display and return the CPU to normal speed.

If you hold Analog Up while turning on Hold mode, it will only lock the keypad as usual. The CPU speed will not be changed, so you can watch videos with the keypad locked. Push the button fully to the Power Off position to unlock the keypad.

While the PSP is in Hold mode, if you press and hold the Select button, you can use the Left, Right, LTrigger, RTrigger, Vol+, Vol-, and Start buttons.

Copy hold.prx to the ms0:/seplugins folder and make an entry in VSH.txt to activate Hold+ in the XMB. It's also possible to use Hold+ in games by making an entry in GAME.txt, but some games may crash if the CPU is underclocked.

It's also possible to install Hold+ to flash0: so that it works without a Memory Stick. To do this, use FreePlay's "NewBTCFNedit" and enable hold.prx for VSH mode in the all the PSPBT?NF.bin files. Make the entry before vshmain.prx.

To customize the clock speed, use a hex editor to change the values. The offsets in the file for v4.0 are
0x1154 - CPU
0x1158 - Bus (Should be half the CPU speed or less)

The values should be entered in hexadecimal. The default value for CPU is 3C (60 MHz in decimal) and the default value for Bus is 1E (30 MHz in decimal). Note that arbitrary values will not work - You must use a valid combination of CPU and Bus speed.

Thanks to adrahil for helping with preventing suspend mode.
Thanks to Booster for the SysCon Hook sample.

Download: Hold+ v4.0
Tested on 5.50GEN-B
Subpages (1): Change Log