Skip to content

wad11656/SetRegion-GUI

Repository files navigation

SetRegion GUI

Download is on the Releases Page.

About

This is a GUI version of the original SetRegion.

What does it do?

Converts the region sectors of PS1 .bin disc images into JAP, PAL, or USA without modifying the game's display resolution.

Why?

Primarily used today to fix/increase certain PS1 games' compatibility on the PSP & Vita-Adrenaline PS1 emulators. To be used before creating an EBOOT with pop-fe (preferred)/PSX2PSP/Popstation.

NOTE: pop-fe has essentially made this app/repository obsolete: Developers have identified many of the compatibility flags in Sony's PS1 emulator, and have learned how to apply them directly to PS1 EBOOTs, and are surgically applying these compatibility patches to each PS1 game that needs them, eliminating the need to apply compatibility-fixing GameID's to EBOOTs (and elimintating the need to Region-change a game to apply Japanese GameID's). Then they are adding these patches to pop-fe so that the patches get automatically applied to EBOOTs generated with pop-fe.

How does changing the region sectors help?

In the mid-2000s, the PSP homebrew scene discovered that assigning custom Game IDs to PS1 discs when creating an EBOOT (as opposed to using their native IDs) can increase compatibility on the PSP PS1 emulator. (This behavior carried over to the Vita too.)

However, starting with PSP firmware 5.00, if you assigned a JAP Game ID to a USA or PAL game, the resulting EBOOT would become unbootable. Injecting JAP region sectors into the disc image(s) with SetRegion fixes this issue, allowing custom JAP Game IDs to be used on USA/PAL games on PSP FW 5.00 and above. It was also discovered that this region-injection additionally triggers the injected region's BIOS to boot in the emulator, contributing to more compatibility fixes. Since Vita-Adrenaline emulates a form of PSP firmware 6.61, this discovery allows JAP Game IDs to be used on USA/PAL games (and thus new game fixes to be found) on both PSP FW 5.00+ and Vita.

Which games benefit from changing the region sectors?

Most of the games that benefit are already published for download on ROM distribution sites in EBOOT format (thanks to The_Ho). Otherwise, my most up-to-date PSP PS1 Compatibility List is here and The_Ho's thread where new game fixes are discussed is here. (I am planning on making a website compiling all Vita/PSP compatibility fixes from myself and The_Ho.)

Finding a game fix yourself

There's 5 methods that you can mix & match with each other to find a fix for a PS1 game on PSP/Vita:

  1. POPSLoader (PSP Only) - Allows you to boot your game through older builds of the PSP PS1 emulator (called "POPS"), potentially fixing your game. Try your game in all the builds listed in POPSLoader before trying custom GameIDs or region injection.
  2. LibCrypt Patch (PAL only) - Use PPF-O-Matic to apply your game's PPF patch to patch out any game-breaking protection mechanisms.
    • Unlike modern PS1 emulators, the PSP/Vita does not automatically patch out LibCrypt protection.
  3. Custom Game ID - Changing this field in PSX2PSP or pop-fe to a Game ID of a different game can unlock special emulator settings tied to that Game ID, potentially fixing your game.
  4. Region Injection - Only necessary if assigning a JAP GameID to a USA/PAL disc in PSX2PSP or pop-fe.
    • USA/PAL EBOOTs with JAP Game IDs that are booted via POPSLoader v4.01 or below do not need region injection, but if you're actively hunting for a game fix, you should always just region-inject your game anyway so you can test JAP Game IDs on POPSLoader firmwares above 4.01 too.
  5. Disc Image Hacking - When custom Game IDs and Region Injection fails, hacking the disc image may be the only possible fix.
    • For example, The_Ho created a new fix for Jackie Chan Stuntmaster by editing out the FVMs on the disc with a hex editor, and I found one for Worms by overwriting the hex values of all the FMVs with 0s. (FMV playback seems to be a relatively common pitfall for the emulator.)

Game IDs proven to be helpful:

IDs where JAP region injection is required for USA/PAL games:

  • SLPS-01222 & SLPS-01223 [Biohazard 2]: Most fixes were found using these IDs. Can also increase framerate.
  • SLPS-02190 & SLPS-02191 [Dragon Valor]
  • SLPM-86500 & SLPM-86501 [Dragon Quest VII]
  • SLPS-01724 [Mobile Suit Gundam - Char's Counterattack]
  • SLPS-01490 & SLPS-01491 [Brave Fencer Musashiden]
  • SLPS-01156 [Momotarou Dentetsu 7]
  • SLPS-02180 [Dino Crisis]
  • The Game ID of the JAP variant of the game

IDs where no region injection is required:

  • SLES-00972 & SLES-00973 [Resident Evil 2 (PAL)]
  • SCUS-94640 [Syphon Filter 3]
  • The Game ID of the PAL/USA variant of the game

*This list is incomplete. You can also try the 6.61 POPS Compatibility flags & POPS Binaries Game IDs.

Game ID Tips:

  • Try Game IDs on different POPSLoader versions, too.
  • If none of these Game IDs help, try Game IDs not listed here.

EBOOT Tips:

  • Check online for an EBOOT download of your game first. The working EBOOT (with region sectors injected and/or modified Game ID, if necessary,) is probably already there.
  • Make sure to combine multi-track/multi-.bin PS1 images into a single .bin with a tool like CDMage Beta first, before using this tool (or PSX2PSP...I think pop-fe handles multi-.bin discs fine).
  • When using PSX2PSP, always use a Compression setting above 0 (I prefer 9) when creating an EBOOT.
    • Compression 0 only occasionally works on low PSP firmwares. It's probably best to just avoid it.
  • When using PSX2PSP, turn off Theme Mode.
  • Your PSP firmware version makes a difference in compatibility. All my PSP testing was done on custom firmware 6.61 PRO-C2. If you find discrepancies on your hardware vs. what I say here or on my Compatibility List, make sure to test your game(s) on 6.61 PRO-C2 first.
  • The name of an EBOOT folder must be less than 32 characters long.
  • (Multi-track/.bin games only) On firmwares 5.00 and above on PSP, one must use the CDDA Enabler plugin to enable CDDA audio. This plugin is not perfect and sometimes causes games to crash when playing certain audio tracks. However, since the Vita's PS1 emulator uses a different method of enabling CDDA audio, the same audio tracks that make the PSP crash often do not make Vita-Adrenaline crash. (Viva la Vita)
    • Try PSP firmwares 4.01 and below via POPSLoader to bypass crashes caused by the CDDA Enabler plugin.

Game ID Tips:

This is where a PS1 game's Game ID & Main Game ID come from.

EBOOT "Game ID"

  • Affects game compatibility.
  • The ID used as the name for the save folder where your single-disc EBOOT save files/Virtual Memory Cards are stored (i.e., /PSP/SAVEDATA/<GAME_ID>/).

EBOOT "Main Game ID"

  • Doesn't affect game compatibility.
  • The ID used as the name for the save folder where your multi-disc EBOOT save files/Virtual Memory Cards are stored (i.e., /PSP/SAVEDATA/<MAIN_GAME_ID>/).
  • The ID recognized by plugins (e.g., POPSLoader & TempAR).

Duplicate "Game ID" Save Conflicts

  • As indicated above, each (Main) Game ID gets its own save folder. Each save folder stores 2 Virtual Memory Cards, stored at /PSP/SAVEDATA/<(MAIN)_GAME_ID>/SCEVMC0.VMP (Slot 1) and /PSP/SAVEDATA/<(MAIN)_GAME_ID>/SCEVMC1.VMP (Slot 2).
  • If you create multiple EBOOTs that share the same save folder (e.g., 2 single-disc EBOOTs with Game ID SLPS-01222), DO NOT WORRY—The save files from both games will NOT overwrite each other, but will simply both save to the same Virtual Memory Card(s) in the same save folder (e.g., /PSP/SAVEDATA/SLPS-01222/).
  • EBOOTs that share the same save folder/Virtual Memory Cards will appear as a single entry in the XMB Save Data Utility, so you can't separately manage the saves for the individual games from there.
  • On PSP, you can open Memory Card Utility from within the emulator to manage the saves for the individual games.
  • Memory Card Utility doesn't work (for me) on Vita-Adrenaline, so you can't manage the saves for the individual games from there. As a workaround, you can force the Vita to create separate Save Data Utility entries for each game (while still both using the same Game ID).
    • To do this, add a dummy/placeholder PS1 disc in the Disc 2 slot in PSX2PSP while making each EBOOT. (It can just be a blank text file named 0.bin/0.img/0.iso that you assign any Game ID, like SLUS-00000.) Since the EBOOT is now multi-disc, the Vita will use the Main Game ID instead of the Game ID when creating the save folder/Virtual Memory Cards/Save Data Utility entries.
      • Obviously, make the Main Game ID of each of the EBOOTs different from each other for this hack to work.
      • Also, never accidentally switch to a blank dummy disc in the emulator or it will make your EBOOT unbootable.

History

The download page on ConsoleCopyWorld dates SetRegion back to June 27, 2001. According to its brief description on that site, its original usage was to change the region sectors of foreign PS1 games to match the region of your own PS1 console so that you could burn and play out-of-region games.

The original discovery of injecting region sectors to increase PS1 compatibility on PSP/Vita might be credited to the Brazilians: I only was inspired to find a tool like SetRegion in the first place because I noticed that a Portuguese fan-translation EBOOT of Valkyrie Profile (PS1)—which was translated from the USA version of the game—was booting on my PSP using the Japanese BIOS, with the Japanese Game ID SLPS-01222. As a result, the game avoided a crash that usually plagues the USA version of the game on PSP/Vita. I tried recreating their fix simply by building a USA Valkyrie Profile EBOOT with the Game ID SLPS-01222, but the resulting EBOOT didn't boot. I therefore presumed the missing ingredient was the Japanese BIOS. So, I went hunting for a tool that could change the reigion of PS1 games so that I could hopefully replicate the activation of the Japanese BIOS as done by the Portuguese Valkyrie Profile EBOOT, and then if that worked, ideally use the same tactic to fix other USA games as well.

As a result, SetRegion came back into the homebrew scene in 2021 when I discovered that it indeed could be used to inject JAP, PAL, or USA region sectors into any PS1 game, allowing me to—in conjuction with using game-fixing JAP Game IDs that the homebrew scene had found before me (and ones I found myself)—discover fixes for several PS1 games that had never worked on PSP or Vita before, which I quietly published in my Compatibility List.

Interestingly, The_Ho also made the same discovery of region injection several months later, and found game fixes by manually migrating region sector hex values between disc images. He later found my Compatibility List and then used the original SetRegion to streamline his process in finding many more breakthrough PS1 fixes for PSP and Vita.

About

Convert the region sectors of PS1 .bin disc images (without modifying the game's display resolution).

Resources

Stars

Watchers

Forks

Packages

No packages published