• PS3HEN is now supporting 4.93 Firmware

    View Official Release Post for additional information HERE

[UNOFFICIAL] PS3HEN Alternate Builds

@esc0rtd3w @aldostools

I'm was using many remaps to load custom sprxs directly on HEN (set in the source code), about 10.

they worked but eventually the xmb crashes ( in different places, due the fact of the sprx is not beeing read anymore)

,so after a long time investigating the issue, i found that only 5 remaps works without issues, i made some work-arounds and got everthing i need in that 5 slots, but now i'm needing more.

How can i do it?
 
@esc0rtd3w @aldostools

I'm was using many remaps to load custom sprxs directly on HEN (set in the source code), about 10.

they worked but eventually the xmb crashes ( in different places, due the fact of the sprx is not beeing read anymore)

,so after a long time investigating the issue, i found that only 5 remaps works without issues, i made some work-arounds and got everthing i need in that 5 slots, but now i'm needing more.

How can i do it?
You need to increase the number of entries
https://github.com/PS3Xploit/PS3HEN/blob/master/payload/mappath.c#L15

Don't increase it too much or the payload will break. You may need to reduce MAXPATH too
 
vsh.self can not be remapped to other versions without patching it AFAIK, It needs to match the version of other files like index.dat.

I'll try thanks,

other question, how do i change the HEN version number?

i'll use the hen auto update to automatically update my mod, but i didn't find where the version string is located
You can edit the version with a HEX editor in the bin iirc, no need to recompile from source
 
Last edited:
@esc0rtd3w @aldostools

There is any crucial differences between the .bins for different versions?

i checked some offsets they seem to be the same, what issues would occour with using the same .bin for different fw versions?

in my mod i have multiple activator one for each version with it's own .bin, i'm planning in make a universal one
 
@esc0rtd3w @aldostools

I see some changes in the 4.87 build

I used to add remaps like this

Code:
map_path_slot("/dev_flash/vsh/module/game_ext_plugin.sprx","/dev_flash/vsh/resource/AAA/game_ext_plugin.sprx",1);
map_path_slot("/dev_flash/vsh/module/explore_plugin.sprx","/dev_flash/vsh/resource/AAA/explore_plugin.sprx",2);
map_path_slot("/dev_flash/vsh/module/xmb_plugin.sprx","/dev_flash/vsh/resource/AAA/xmb_plugin.sprx",3)
map_path_slot("/dev_hdd0/hen/pro_features.xml","/dev_flash/hen/xml/pro_features.xml",4);
map_path_slot("/dev_hdd0/hen/webman_features.xml","/dev_flash/vsh/resource/explore/xmb/category_webman_features.xml",5);

and in the new build the remap are like this:

map_first_slot("/dev_hdd0/hen/hfw_settings.xml","/dev_flash/hen/xml/hfw_settings.xml");//2.3.3+

how i call other slots?
 
@esc0rtd3w @aldostools

I see some changes in the 4.87 build

I used to add remaps like this

Code:
map_path_slot("/dev_flash/vsh/module/game_ext_plugin.sprx","/dev_flash/vsh/resource/AAA/game_ext_plugin.sprx",1);
map_path_slot("/dev_flash/vsh/module/explore_plugin.sprx","/dev_flash/vsh/resource/AAA/explore_plugin.sprx",2);
map_path_slot("/dev_flash/vsh/module/xmb_plugin.sprx","/dev_flash/vsh/resource/AAA/xmb_plugin.sprx",3)
map_path_slot("/dev_hdd0/hen/pro_features.xml","/dev_flash/hen/xml/pro_features.xml",4);
map_path_slot("/dev_hdd0/hen/webman_features.xml","/dev_flash/vsh/resource/explore/xmb/category_webman_features.xml",5);

and in the new build the remap are like this:

map_first_slot("/dev_hdd0/hen/hfw_settings.xml","/dev_flash/hen/xml/hfw_settings.xml");//2.3.3+

how i call other slots?

i originally just modified the function for map_first_slot in /payload/mappath.c and mappath.h last time

There may be unwanted side effects

Original:

mappath.h
Code:
void    map_first_slot(char *old, char *newp);

mappath.c
Code:
void map_first_slot(char *old, char *newp)
{
    map_table[0].oldpath=old;
    map_table[0].newpath = alloc(MAX_PATH, 0x27);
    strncpy(map_table[0].newpath, newp, MAX_PATH-1);
    map_table[0].newpath_len=strlen(newp);
    map_table[0].oldpath_len = strlen(old);
    map_table[0].flags = 0;
    return;
}

Modified:

mappath.h
Code:
void     map_path_slot(char *old, char *newp, int slot);

mappath.c
Code:
void map_path_slot(char *old, char *newp, int slot)
{
    if(slot<=MAX_TABLE_ENTRIES)
    {
        map_table[slot].oldpath=old;
        map_table[slot].newpath = alloc(MAX_PATH, 0x27);
        strncpy(map_table[slot].newpath, newp, MAX_PATH-1);
        map_table[slot].newpath_len=strlen(newp);
        map_table[slot].oldpath_len = strlen(old);
        map_table[slot].flags = 0;
        return;
    }
}

upload_2020-12-12_17-12-9.png


upload_2020-12-12_17-12-30.png
 
@esc0rtd3w @aldostools

I see some changes in the 4.87 build

I used to add remaps like this

Code:
map_path_slot("/dev_flash/vsh/module/game_ext_plugin.sprx","/dev_flash/vsh/resource/AAA/game_ext_plugin.sprx",1);
map_path_slot("/dev_flash/vsh/module/explore_plugin.sprx","/dev_flash/vsh/resource/AAA/explore_plugin.sprx",2);
map_path_slot("/dev_flash/vsh/module/xmb_plugin.sprx","/dev_flash/vsh/resource/AAA/xmb_plugin.sprx",3)
map_path_slot("/dev_hdd0/hen/pro_features.xml","/dev_flash/hen/xml/pro_features.xml",4);
map_path_slot("/dev_hdd0/hen/webman_features.xml","/dev_flash/vsh/resource/explore/xmb/category_webman_features.xml",5);

and in the new build the remap are like this:

map_first_slot("/dev_hdd0/hen/hfw_settings.xml","/dev_flash/hen/xml/hfw_settings.xml");//2.3.3+

how i call other slots?
@LuanTeles, did you succeed map_path game_ext_plugin.sprx (in dev_flash)? I tried map_path game_ext_plugin.sprx (gameboot patched) but it didn't work, any hints?

Btw if map_path on dev_hdd0 always works.
 
i originally just modified the function for map_first_slot in /payload/mappath.c and mappath.h last time

There may be unwanted side effects

Original:

mappath.h
Code:
void    map_first_slot(char *old, char *newp);

mappath.c
Code:
void map_first_slot(char *old, char *newp)
{
    map_table[0].oldpath=old;
    map_table[0].newpath = alloc(MAX_PATH, 0x27);
    strncpy(map_table[0].newpath, newp, MAX_PATH-1);
    map_table[0].newpath_len=strlen(newp);
    map_table[0].oldpath_len = strlen(old);
    map_table[0].flags = 0;
    return;
}

Modified:

mappath.h
Code:
void     map_path_slot(char *old, char *newp, int slot);

mappath.c
Code:
void map_path_slot(char *old, char *newp, int slot)
{
    if(slot<=MAX_TABLE_ENTRIES)
    {
        map_table[slot].oldpath=old;
        map_table[slot].newpath = alloc(MAX_PATH, 0x27);
        strncpy(map_table[slot].newpath, newp, MAX_PATH-1);
        map_table[slot].newpath_len=strlen(newp);
        map_table[slot].oldpath_len = strlen(old);
        map_table[slot].flags = 0;
        return;
    }
}

View attachment 29161

View attachment 29162

Thanks it worked,

But i'm having the same problem as the old version, when exiting a game or the remote play, the XMB is not beeing loaded (most of the time), it only shows the particles or the wave and the system hangs after a while. I fixed this issue removing some remaps, only setting 5 of them, this solved the issue in the last version.

Now on the new hen, i add the same 5 remaps that i used to fix the last version, but now i'm having the issues again and i can't use any less than this 5 ones
 
Last edited:
@LuanTeles, did you succeed map_path game_ext_plugin.sprx (in dev_flash)? I tried map_path game_ext_plugin.sprx (gameboot patched) but it didn't work, any hints?

Btw if map_path on dev_hdd0 always works.

Yeap, it just works
Just use the way i do

I only have problems remapping xmls, i can't remap a flash xml to another location of the flash, only on hdd it will work, the same happens when remapping with webman.

1nUMmZC.png
 
Last edited:
Back
Top