Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Graphene

Pages: [1] 2 3 ... 5
Reverse Engineering / sceTriggerUtil - library header + how to use
« on: July 06, 2020, 08:26:01 PM »
sceTriggerUtil is library used to schedule one time or daily application events.

Prerequisites to use sceTriggerUtil:

1. SCE_SYSMODULE_TRIGGER_UTIL sysmodule must be loaded
2. "Settings->System->Auto-Start Settings" for application must be enabled (enabled by default). This will only appear in setting after at least one event has been registered by the application.
3. "app/*titleid*/sce_sys/incoming_dialog.xml" must be present. Examples of this file can be found in Radiko and Wake-Up Club applications. Multilanguage is supported (ex. incoming_dialog_JP.xml)

Information about events:

1. Max 8 events per one application can be registered.
2. Events will be triggered even when system is in sleep mode.

Library header can be found here:

ElevenMPV-A v3.70 Update Full Changelog:


Thanks @realusagichan for testing and helping with debug.


1. Various performance improvements.

New (and returning) features:

1.   Added back cover picture support with few improvements:
    - External cover pictures can now be displayed. Picture must be placed in the same folder as music files. Note that cover pictures embedded in metadata are prioritiezed over external cover pictures.
    - For external cover picture, following names are supported:
    - Due to memory constraints, not all cover pictures can be loaded. If your cover picture is not loading, try to reduce its resolution.

2.   Added automatic volume limitation mode option for EQ.
    - The purpose of this mode is to limit mixing volume for ElevenMPV-A with EQ modes applied to prevent digital overload on loud tracks.
    - Only software decoded formats support this mode.
    - This mode can be enabled in Settings->Audio->Limit Volume Whith EQ.
3.   Added full support for CJK characters (chinese, korean, japanese languages).
UI and controls:

1.   Added fast automatic scrolling to file browser. Hold D-pad up or down buttons to perform this operation.
2.   Long text in file browser will now be scrolled.


1. Fixed an issue where certain directory or file names would result in a file browser crash.
2. Fixed an issue where notification settings were not displayed on PS TV.
3. Fixed an issue where track count would not be displayed or calculated incorrectly.
4. Fixed an issue that caused module data corruption in xmp library.

Reverse Engineering / Re: All bootparams and their values
« on: July 03, 2020, 12:40:06 AM »
Updated with info related to file descriptor, dir level and mount points bootparams.

Due to the popular demand, here is the good example of TO profile for Killzone Mercenary made by zanderman2009.
Download link in the video description:

With Thread Optimizer:

Same level without Thread Optimizer:

libvita2d_sys has been updated!

JPEG decoder:

Added ability to use ARM to decode JPEG (sceJpegArm sysmodule is used). Decoding is performed a little bit slower, but has much smaller memory footprint:



Added vita2d_free_additional_GXT(), wich provides a faster way to free additional GXT textures.

Small correction: Sharpscale is only required for 1280x720 and 1920x1080 or for normal Vita.
1280x725 and 1920x1088 can be used without Sharpscale on PS TV only.

libvita2d_sys has been updated!

Added support for custom display resolutions. That includes 1280x720 and 1920x1080 with Sharpscale (,112.0.html)

To set custom resolution, call vita2d_display_set_resolution() before initializing the library:

void vita2d_display_set_resolution(int hRes, int vRes); //Set display resolution.

suprx module version of the library is now available here:

Thread Optimizer has been updated yet again:

- Fixed thread detection (previuosly entry function address was used, now CRC16 is used)

Thread Optimizer has been updated:

- Adds support for threads created by PTHREAD_PRX module (unity games).
- Adds support for threads created by SceLibc module (??? games).

Only plugin was updated, no need to reinstall .vpk if you already have it installed.

Fixed an issue that caused some games not registering an input.

Thread optimizer is plugin + config application set that allows you to adjust thread priority and CPU affinity mask of any threads created by game to achieve maximum performance.


This plugin is intended for users who at the very least understand the concept of threading.
If you have no idea what you are doing, you have the option to wait until someone else shares their preset for the game you want.

I am not responsible for any lost game progress or corrupted savedata caused by improper thread adjustments.

Please read all instructions carefully before installing!

1. Required plugins:

Thread Optimizer requires following plugins to be installed on your system:
- CoreUnlocker80000H (,203.0.html).
- ioPlus (,205.0.html).

Make sure you have both of them installed before continuing.

2. What is snapshot?

Snapshot is the file that holds information about all threads that game has created. Once snapshot has been made, it is also used as preset to store user-edited thread parameters.
Snapshot contains following information for each of the threads:
- CRC16 (checksum used to identify thread)
- Thread entry function address (used only to calculate CRC16)
- Thread name
- Thread priority <- can be edited in config app
- Thread CPU affinity mask <- can be edited in config app

3. Thread parameters that you can change:

- CPU afiinity mask
Determines wich CPU cores will be allowed to run the thread.

- Priority
Determines thread priority. Lower the number, higher the priority. It is not recommended to adjust it unless you know what you are doing.

4. Usage procedure:

- Install plugin and application.
Plugin can be installed under *ALL or under games you want to use it with.

- Launch the game you want to create preset for.

- Take a snapshot of game threads by holding LTRIGGER + RTRIGGER + SQUARE until you see notification.
Since snapshot accumulates all thread data since the game start, it is recommended that you at least get into the actual gameplay before taking a snapshot.
You can delete snapshot you just created by holding LTRIGGER + RTRIGGER + TRIANGLE. However, snapshots that has been taken in different game session can only be deleted from config app.

- Exit the game, open config app and adjust thread parameters of the snapshot and save it.

- Open the game again. New thread parameters will be applied automatically.

- You can delete snapshot from config application if you are not happy with your adjustments and start from scratch.

- Snapshots are stored in ux0:data/ThreadOptimizer/*titleid*/
Snapshots do not contain any personal data and can be shared with other users.

5. Current limitations:

- Parameters of the main thread cannot be adjusted.
- Threads that have same name, entry function address, priority and CPU affinity mask are considered to be the same.

TO usage guide:,210.msg627.html#msg627

Download here:

Example of good snapshot profile (download link in the video description):

With Thread Optimizer:

Same level without Thread Optimizer:

libvita2d_sys has been updated!


- Added vita2d_init_with_msaa_and_memsize(), wich allows initialization with set sizes for GXM buffers.
- For game mode, CDRAM is used for textures by default.
- Added simple widgets. For now only buttons are available:


JPEG decoder:

- Reduced memory footprint of JPEG decoder (amount of required memory is calculated for each picture individually).
- Added ability to enable/disable downscale mode and set downscale margins.


- Fixed a bug that caused issues with multithreaded drawing

Plugin for PS Vita that allows game mode applications to use system-reserved CPU core (CPU3).

This is part 1 of the plugin and app set that will allow to fine tune threading in games.

Install under *KERNEL.


1. But Vita has 4-core CPU. Why do we need that plugin?
- Games are allowed to use only 3 CPU cores out of 4 (CPU0, CPU1 and CPU2). CPU3 core is reserved for system processes, such as loading modules, and usually stays at around 10-15% during the game.

2. Will it improve performance in games?
- No, this plugin will not improve performance in games by itself. It only removes check that prevents games from using system-reserved core CPU affinity mask. Improving performance will be the task of the second plugin and config app that will be released soon.

3. I am hombrew developer. How can I use system-reserved core in my game?
- When creating new thread, specify 0x80000 for CPU affinity mask. You can also use that value with sceKernelChangeThreadCpuAffinityMask() to change affinity mask of already existing thread.


Vita's native AAC hardware decoder is used, so everything that is supported by official Music app.

Here is Codec Engine specs from official source:

Supported channels : 1 channel, 2 channels
Supported sampling frequencies : 12000/ 24000/ 48000 Hz
Supported bit rates : 48/ 60/ 70/ 84/ 96/ 120/ 144/ 168/ 192 kbps
Supported codecs : MPEG1/ 2/ 2.5 Layer3
Supported channels : 1 channel, 2 channels
Supported sampling
: 8000/ 11025/ 12000/ 16000/ 22050/ 24000/ 32000/ 44100/ 48000 Hz
Supported bit rates : 8/ 16/ 24/ 32/ 40/ 48/ 56/ 64/ 80/ 96/ 112/ 128/ 144/ 160/ 192/ 224/ 256/ 320
Supported codecs : AAC-LC, HE-AAC v1/v2
Supported channels : 1 channel, 2 channels
Supported sampling frequencies : 8000/ 11025/ 12000/ 16000/ 22050/ 24000/ 32000/ 44100/ 48000 Hz
Supported bit rates : 16 - 576 kbps
Supported channels : 1 channel
Supported sampling frequencies : 8000 Hz
Supported bit rates : 3850/ 4650/ 5700/ 6600/ 7300/ 8700/ 9900/ 10700/ 11800/ 12200 bps

Yeah, re-encoding one lossy format to another is obviously not a good idea. Maybe I will add it. For now, I want to focus on getting cover picture support back since I was able to reduce libvita2d_sys RAM usage.

Pages: [1] 2 3 ... 5