iR Shell 5.0 Released, Ushers In Advanced Multi-Tasking Capabilities

by Mike Bendel March 25, 2009 @ 11:30 pm

Prolific homebrew developer AhMan today released a major update to XMB replacement iR Shell, bringing it up to version 5.0. Built for PSP Slim units only, this build marks a significant milestone in homebrew development, introducing an advanced multi-tasking feature. This essentially allows users to run up to two applications simultaneously and jump between them simply by pressing a hot key of their choosing. The possibilities are endless!

The extensive changelog can be found after the break. Be sure to give it a thorough read for usage instructions and equally important compatibility information.


Usage Notes:
1) Before you can use the Advanced Multi-tasking, you’ll need to enable the option “Slim Advanced Multi-tasking” under iR Configurator.
2) You can load 2 Applications to the 2 memory slots in the Slim. Slot 1 is the usual memory area for loading applications (the lower 32MB RAM); while slot 2 is the new memory area (the upper 32MB RAM only available on Slim).
3) By default, the 1st app will be loaded in slot 1, and the 2nd app will load in slot 2 automatically. To force the 1st app to load in slot 2, hold Left-Trigger while lauching an application under the confirmation popup window.
4) The typical app switch toggle “L-Trigger + Select” or the alternate key “Vol Up + Select” will allow you to toggle between the 2 apps and iR Shell. New key combos “L-Trigger + Note” or “Vol Up + Note” will allow you to switch between the 2 apps without going back to iR Shell screen. Pls note pressing the Note button alone (without L-Trigger) will act as the screen capture button. The alternate Vol Up combo keys perform exactly the same as L-Trigger key and is provided as an alternative.
5) Normally, when you exit 1 of the 2 apps, it will cause the PSP to reboot, meaning you’ll also lose the other running app. This can be resolved by adding unloading support into the application itself. However, this will require modification of the app to perform resource cleanup and self-unloading upon exit. All iR Shell bundled plugins have been enhanced to support unloading, such that they can be terminated without affecting the other running app. To exit these plugins gracefully, use the exit function build into the app itself. For example, to exit bookr, press START and choose Exit menu item. iR Shell disables the standard Home exit menu while 2 apps are running. To exit both apps together, use “Home + Square” instead.

Compatibility Notes:
– Not all apps can be loaded to Slot 2. There’re two types of program binary format for PSP, static ELF and relocatable PRX. Static ELF uses fix memory address and can’t be relocated. Hence, they will only work when loading in slot 1. If you try to load a static ELF in slot 2, you’ll get an error code “0x800200D9”. PRX can be loaded in either slot 1 or 2. To convert a homebrew from ELF to PRX, you’ll need to re-compile it with BUILD_PRX=1 and set the heap size with PSP_HEAP_SIZE_KB(-800) in the source file. Most static ELF homebrews can be converted to relocatable PRX simply by recompilation.
– There is a limitation on the PSP AVC hardware decoder which is for video playback. It cannot be accessed by more than 1 application; which means you can’t have 2 applcations running together if both of them access the AVC hardware decoder.
– The bundled plugins should be able to coexist with most other apps; with the exception of the PPA plugin which can only coexist with another app which doesn’t use the AVC hardware decoder.
– You can’t have both slots loading UMD/ISOs, due to there is only 1 physical UMD drive and ISOs are simply emulating the UMD.
– PS1 games take exclusive use on the audio hardware. As a result, it will be incompatible with other apps that use audio.
– The launch XMB function may not be stable for most commercial games due to resource conflicts. However, it should be pretty compatible with most homebrews. On the other hand, the Sony Web Browser should work with most commercial games & homebrews. To browse Internet while running another app, you can use the iR Shell bundled htmlviewer which is the Sony Web browser.
– If an app is built with PSP_LARGE_MEMORY flag and you’re trying to load it in slot 1 (first app), it will use all Slim memory and you won’t be able to load a 2nd app. To allow it to co-exist with other apps, you’ll need to load it in slot 2.
– This will probably be incompatible with DA’s LEDA if you’re trying to run 2 apps requring 2 different kernels.
– This Advanced Multi-tasking feature is incompatible with Interlaced TV Out for slim due to insufficient memory. Progressive TV Out should work fine.
– If you get an error “0x800200D9” while loading an app to slot 2, it’s a static ELF and you’ll need to load it in slot 1. That is, reverse the order of the 2 applications you’re loading.

Additional Note
– The bundled bookr plugin is based on the original v0.71. If you want to use the recent v0.81 mod by Nguyen Chi Tam, you can download it from forum.
– You can find most of the plugin source code in plugin forum. If you want to add unloading support to a homebrew, you can refer to these samples.

Special thanks to:
– Dark_AleX for the M33 custom firmwares and his assistance during iR Shell development.
– Tyranid and other developers in for creating the pspsdk.
– F34R, Osgeld, StoneCut and other moderators who keep running and providing technical support to the community.
– All iR Shell beta testers, donators, skins & plugin contributors.

– M33 Custom firmware & popsloader are developed by Dark_AleX/M33.
– remotejoy & usbhostfs are developed by Tyranid.
– iR Shell bundled skins & plugins are developed by their corresponding authors.
– iR Shell Manual & FAQs are written by StoneCut.

Download iR Shell 5.0

iR Shell 5.0 released [AhMan]

Follow this author on .