Changing Region on HAN/HEN via xRegistry.sys

The dex sysconf_plugin.sprx would be useless to you unless you wrote custom code to use it because this sprx is not the only file you need to display the Debug menu on XMB.

If your console cannot run a CFW & your current firmware version is > 4.84, I don't think you can change the PS3 region, at least not with available tools.
To use the DEX files you need to be on 4.84 max because vsh.self is included in the revoke list so afaik DEX vsh 4.84 cannot be loaded by the 4.86 kernel & if your console is not CFW compatible, you cannot downgrade back to 4.84.

Like I said earlier, in theory, it should be possible to change the PS3 region without the DEX files swap but someone needs to reverse engineer that process so that we can make identical changes ourselves.
I never investigated that feature so I cannot tell you what those changes are.

If ps3 region changing is a permanent setting, those changes must be applied in regions that don't get overwritten by a firmware installation or system restore, which narrows the possibilities a little. I assume that the changes must be done in one or two of the following storage regions:
1. xregistry (/dev_flash2)
2. flash memory outside of ros regions
3. syscon

Those storage regions are the most likely candidates. We know that the TargetID is most likely changed (that is stored in Flash memory) & we also have know that the Xregistry contains certain region related settings but all this requires further investigations & testing.

I understand.
Yes, region setting is a permanent setting. I upgraded the firmware since I use the Ps3 for online playing (also Netflix, YT, Prime). I thought I could be able to revert region back to PAL when needed since HFW 4.86 was already out and I didn't know that it precluded some functions...

Anyway, installing HEN, I have access to some application equivalent to HAN Toolbox right?? So I can copy/extract files.
As I was saying I'll extract the xRegistry and change the region or video output to PAL. This should be enough for making Ps1-Pal-PSN games to work.
 
I understand.
Yes, region setting is a permanent setting. I upgraded the firmware since I use the Ps3 for online playing (also Netflix, YT, Prime). I thought I could be able to revert region back to PAL when needed since HFW 4.86 was already out and I didn't know that it precluded some functions...

Anyway, installing HEN, I have access to some application equivalent to HAN Toolbox right?? So I can copy/extract files.
As I was saying I'll extract the xRegistry and change the region or video output to PAL. This should be enough for making Ps1-Pal-PSN games to work.
If you have HEN running you don't need to use the HAN Toolbox, just install any backup manager Managunz, Irisman, multiman or even webMAN-MOD. All of them have a solid file manager tool, some even have an editor.

As to a new region change implementation in homebrew, I checked the sdk.
I saw nothing related to region change only the sprx call to get the license area (region) data but nothing to change it except the the description of the Fake other region DEX feature.
As you are ultimately looking to change your video output settings there is a sysconf utility that deals with video output. You can use such calls from userland to change video output settings at runtime such as resolution etc.. but I think (it needs confirmed) the available options are restricted for current frequency.
And I also think the frequency (50Hz/60Hz) is something set on boot & that cannot be changed via API calls but I could be wrong, I am not sure.
Using this API, it's possible to get the current frequency value in a cellVideoOutState structure but even if you test this call to find out where the value is extracted from, it won't tell you where the system actually holds the original data it used to set the frequency & changing that value at runtime is extremely unlikely to have any effect apart from possible software crashes..

To get it done (if nobody looked into it yet), someone needs to disassemble the code in IDA/Ghidra & possibly use ProDG/IDA Deci3 debugger to attempt to find the code lines executed when changing a region then follow that code using the debugger and/or IDA, see what files get modified or what flash memory write calls are made etc.. I am sure the changes are minimal, a byte here & a byte there most likely.
 
Last edited:
I almost forgot..
There is a setmonitor.self in the sdk to change the monitor type. I dunno how this might be used outside the scope of the Target Manager in DEX mode. Never tried it that way. I don't think it would be easily doable though because it interacts with TM console BUT it might be easier to reverse than the sprx stuff. It may even call a system sprx to do the job, if so reversing would tell us the function called & its arguments for each of 15 options.
a94d9677bb9bccd1b303cd77cb216a3f.jpg
 
Last edited:
If you have HEN running you don't need to use the HAN Toolbox, just install any backup manager Managunz, Irisman, multiman or even webMAN-MOD. All of them have a solid file manager tool, some even have an editor.

Then I think I'm done.

...Maybe you're referring to something else about the refresh rate that I don't know, but usually it's a normal thing for the Ps3 to set/change it togheter with the resolution. When connected with HDMI (to the lcd i.e.) I'm at 1080p 60HZ and as soon as i start a Ps1-PAL game it change to 1080p 50HZ (or 576i 50HZ if I have the Ps1 resolution upscaling disabled).

However I'm now remembering that I used a express program for editing the xregistry.sys parameters. I think the file mager tools from those programs you linked are not able to correctly edit it, right??

If they can it'd be easier, I'll just edit the xRegistry and reboot the console (rebuild the database if needed).

If not it'd be easy enough anyway. I'll copy the xregistry on pc, edit and copy it back.

I'll report the result, but it should work for Ps1 games and I think apps too (like netflix).
 
Last edited:
I just remembered that a couple of years ago, I had used Kakaroto's PS3Xport to inject the xRegistry.sys file from my CFW PS3 into my OFW PS3's backup data. When I restored the backup, the region setting I had changed on the donor console remained intact on the recipient console.

This confirms that the console's region setting is stored in the xRegistry file (and you don't need to change anything else), now all that's needed is to find the variable it's stored in.
 
The most obvious xregistry entry related to region changing would be:
/setting/system/region

As to entries to set the video mode, there are quite a few:
/setting/display/tvSystem
/setting/display/0/initial
/setting/display/0/resolution
/setting/display/0/type
/setting/display/0/modeid
/setting/display/0/initialModeid
...

Then there are all the settings related to dvd/bd regioning etc..

The easiest way to know for sure which of these settings you would need to change, would be to compare 2 xregistry.sys files, one before changing region.

Edit:
I just checked Xregistry after changing region:
/setting/system/region was changed.
The value is the same as a Product Code ie TargetID value.
84 -> US
85 -> UK
87 -> EU
...

No /setting/display entries were changed.
And the IDPS TargetID was not changed.

So it needs confirmed of course, but if this one entry in Xregistry is the only thing required to change the PS3 region, any homebrew can easily implement it using the appropriate vsh export then reboot.
 
Last edited:
Then I think I'm done.

...Maybe you're referring to something else about the refresh rate that i don't know, but usually it's a normal thing for the Ps3 to set/change it togheter with the resolution. When connected with HDMI (to the lcd i.e.) I'm at 1080p 60HZ and as soon as i start a Ps1-PAL game it change to 1080p 50HZ (or 576i 50HZ if i have the Ps1 resolution upscaling disabled).

However I'm now remembering that i used a express program for editing the xregistry.sys parameters. I think the file mager tools from those programs you linked are not able to correctly edit it, right??

If they can it'd be easier, I'll just edit the xRegistry and reboot the console (rebuild the database if needed).

If not it'd be easy enough anyway. I'll copy the xregistry on pc, edit and copy it back.

I'll report the result, but it should work for Ps1 games and I think apps too (like netflix).
You will need to edit xregistry.sys on PC using stoker25's editor, I don't think using the Irisman hex editor will do for this because of xregistry.sys specific format, you would not know where to make the changes.
 
Then I think I'm done.

...Maybe you're referring to something else about the refresh rate that i don't know, but usually it's a normal thing for the Ps3 to set/change it togheter with the resolution. When connected with HDMI (to the lcd i.e.) I'm at 1080p 60HZ and as soon as i start a Ps1-PAL game it change to 1080p 50HZ (or 576i 50HZ if i have the Ps1 resolution upscaling disabled).
I was referring to the documentation, this is what I meant.


fe27b37e8971fedfe99259d33a33394c.jpg
 
The easiest way to know for sure which of these settings you would need to change, would be to compare 2 xregistry.sys files, one before changing region.

I think i still have a backup of my original one.

Edit:
I just checked Xregistry after changing region:
/setting/system/region was changed.
The value is the same as a Product Code ie TargetID value.
84 -> US
85 -> UK
87 -> EU
...

No /setting/display entries were changed.
And the IDPS TargetID was not changed.

So it needs confirmed of course, but if this one entry in Xregistry is the only thing required to change the PS3 region, any homebrew can easily implement it using the appropriate vsh export then reboot.

Changing it it's been the second thing i tried (after the video output). It gived to me a very different result than changing region from debug settings.

I had to change the value from something like 0000002 to 0000001 with stoker25's editor if I correctly remember.
 
I think i still have a backup of my original one.



Changing it it's been the second thing i tried (after the video output). It gived to me a very different result than changing region from debug settings.

I had to change the value from something like 0000002 to 0000001 with stoker25's editor if I correctly remember.
Without reversing or stepping through the code, we cannot tell the extent of the changes.
But if @lmn7 could swap region settings simply by swapping the xregistry.sys file then we can assume that the changes are all contained in that file.
We know for sure that /setting/system/region gets changed, maybe there is another setting that gets changed too, I didn't review them all.
 
Last edited:
I think i still have a backup of my original one.



Changing it it's been the second thing i tried (after the video output). It gived to me a very different result than changing region from debug settings.

I had to change the value from something like 0000002 to 0000001 with stoker25's editor if I correctly remember.
Hmm...
I don't have it in front of me right now but iirc in my xregistry.sys, /setting/system/region doesn't use 1, 2, 3 values.
It uses 0 as default (multi region support) but when you set the console to another region with the Debug menu, the value it sets for that setting entry is the product code of the chosen region ie 0x84 for US, 0x85 for UK etc..

The /setting/bddvd/ entries related to regioning use 0,1, 2,3 etc..

The /setting/bddvd/dvdTvSystem as well
0 = NTSC
2 = PAL

The /setting/display/0/type entry too
4 = HDMI and Component
5 = RGB (SCART and VGA)
6 = YPbPr (SCART connector)

The /setting/display/0/modeid is thought to be able to force a resolution.
257 = 1080p
2525 = 720p
F0F = 576p
505 = 576i
Same values for /setting/display/0/initialModeid

If I were you I would take my xregistry.sys, make a backup then use xregistry.sys editor to change ONLY the /setting/system/region from 0 (or whatever product code it might be set to) to the product code of the region you wish to use. Swap the file in /dev_flash2 & reboot, if it works I think you should get the hdmi setup screen before you get the XMB. This is what happens when you use the Debug menu but I dunno if it happens automatically after changing the region setting entry or if it happens because the sysconf utility sets it up by changing other values or whatever...
 
Last edited:
But if @lmn7 could swap region settings simply by swapping the xregistry.sys file then we can assume that the changes are all contained in that file.

He could as i could. But it's a different thing than changing region from debug menu. @Imn7 have done the exact thing as he suggested me to do, that's to change region from debug menu for have most games to change output (he done the same thing).

Changing the region from that string in xRegistry works for some games (about half of games in my case) but others keep outputting in PAL mode (even editing the PARAM.SFO).

Changing region from debug menu instead, automatically made almost all games to output in NTSC. The few that didn't also, correctly output in NTSC after editing the PARAM.SFO.
Only First of the north star Ken's rage BD version (error message) and One Piece pirate Warriors (kicks me back to the XMB after boot) couldn't work, no problem with the other 52 games.

I'll link you some passages from the Topic to give you an idea of what I done (please, also read one or two posts after for a better understanding):

1. https://www.psx-place.com/threads/xregistry-editing.23466/#post-170477

2. https://www.psx-place.com/threads/xregistry-editing.23466/page-2#post-170736

3. https://www.psx-place.com/threads/xregistry-editing.23466/page-3#post-170777

4. https://www.psx-place.com/threads/xregistry-editing.23466/page-3#post-171025

5. https://www.psx-place.com/threads/xregistry-editing.23466/page-4#post-171712

6. https://www.psx-place.com/threads/xregistry-editing.23466/page-6#post-172272

7. https://www.psx-place.com/threads/xregistry-editing.23466/page-6#post-172339

8. https://www.psx-place.com/threads/xregistry-editing.23466/page-6#post-172355 (here he said what he did)

9. https://www.psx-place.com/threads/xregistry-editing.23466/page-7#post-172454

10. https://www.psx-place.com/threads/xregistry-editing.23466/page-10#post-175877

11. https://www.psx-place.com/threads/xregistry-editing.23466/page-11#post-176581
 
Last edited:
@lmn7 , you're right qa settings are in the xregistry (pretty sure anyway). I once read that even install packages can be created in the system's column using the xregistry, but I was never able to verify that with @sandungas . it's just one of the many things I've read without much documentation.

will changing the xregistry region also allow psx and ps2 games to be played that are from a different region? if so, that seems to easy a way to make it happen.
 
To ease the research in this subject, I added the following web commands to webMAN MOD:
/browser.ps3$xregistry(<id>) show value by id from xregistry.sys
/browser.ps3$xregistry(<id>)=<value> update value by id in xregistry.sys

*id and value can be decimal or hexadecimal (use 0x as prefix)

Example:
http://127.0.0.1/browser.ps3$xregistry(0x1D) -> shows the region id from xregistry.sys

http://127.0.0.1/browser.ps3$xregistry(29)=0x84 -> set region id to US/CA in xregistry.sys

Notice that 0x1D = 29. The first command reads the xregistry, the 2nd writes to the xregistry (use with caution)

For a list of the supported IDs using _xsetting_D0261D72, follow this link:
https://www.psdevwiki.com/ps3/Talk:VSH#4.46.2B
 
I'd suggest backing up xregistry with rebug toolbox or something. it's in dev_flash2, so dev_blind (dev_flash1) won't find it. you need other means to get it.
 
To ease the research in this subject, I added the following web commands to webMAN MOD:
/browser.ps3$xregistry(<id>) show value by id from xregistry.sys
/browser.ps3$xregistry(<id>)=<value> update value by id in xregistry.sys

*id and value can be decimal or hexadecimal (use 0x as prefix)

Example:
http://127.0.0.1/browser.ps3$xregistry(0x1D) -> shows the region id from xregistry.sys

http://127.0.0.1/browser.ps3$xregistry(29)=0x84 -> set region id to US/CA in xregistry.sys

Notice that 0x1D = 29. The first command reads the xregistry, the 2nd writes to the xregistry (use with caution)

For a list of the supported IDs using _xsetting_D0261D72, follow this link:
https://www.psdevwiki.com/ps3/Talk:VSH#4.46.2B
Interesting feature, im imagining another one that could be handy
/browser.ps3$xregistry(dump) extract all xregistry.sys settings in a plain readable xregistry.txt format

This would allow @Peppe90 to do an easy comparison of all the differences in the .txt files before and after the region change (with notepad++ or something like that)
 
I think xregistry editor can convert the file to plain text, but that would useful without needing that app.
 
Interesting feature, im imagining another one that could be handy
/browser.ps3$xregistry(dump) extract all xregistry.sys settings in a plain readable xregistry.txt format

This would allow @Peppe90 to do an easy comparison of all the differences in the .txt files before and after the region change (with notepad++ or something like that)

That would require a lot of extra code that would increase the plugin size too much.

The "PS3 Registry Editor.exe" in my PS3 Tools Collection allows to export the values to CSV.
Then just need to compare the text files.
 
Well, all I can tell you at this stage is that changing the region on a console using the Debug menu modified the following in my registry:

/setting/system/region entry changes to the product code of the chosen region
/setting/game/emuUpConvert changed from 0 to 1
/setting/system/discBootFirst changed from 1 to 0
/setting/system/autoPowerOff changed from 4 to 0
/setting/system/autoPowerOffEx changed from 1 to 5
/setting/dateTime/timeZone changed from 32 to 2C

And some browser related entries were changed too, mostly a reset of homepage, exit confirmation etc...

All /setting/display & /setting/video entries were all left untouched but maybe they would change IF I had chosen another region, when I tested the region change, I didn't choose a region that would involve changes like PAL to NTSC or vice versa.

Finding other changes (or lack thereof) that are not in xregistry.sys would require reversing or using the debugger to step through the region change code execution, I don't see any alternatives.

However I don't think I can help you with that part, I am busy working on other PS3 related matters & I already have my plate full with reverse engineering as it is, I only meant to provide the basic info I could..

I would assume that some devs will already have worked out the ins & outs of region changing & video outputs though, maybe someone will chime in.
 
Last edited:
Back
Top