Removing Region and RCE Protection


The are 2 kinds of Region protection on a DVD:
1 - Region Protection
2 - RCE Protection

Both can be removed with IfoEdit by a simple click to the button .

 

1- Region Protection

This is the common protection that can be found on every DVD, which is located in 'VIDEO_TS.IFO' only.
It's a simple bit-masked byte value that permits or prohibits the Regions from 1 to 6 (8).

To remove region protection simply press the button: 
This will change the value 'Regional Code  Mask' in table 'VMGM_MAT', to permit every region in VIDEO_TS.IFO.


2 - RCE Protection

This protection method is found on a few DVD titles, and until now only on Region 1 DVDs.
This one might be found in all IFO files, not just only in VIDEO_TS.IFO like the regular Region protection.
If so, it is located in one or more PGC's as a PRE-comand, and can be removed by IfoEdit also by pressing the same button
.

IfoEdit then checks every Title- and Menu-PGC in current loaded IFO file to find the command: 'Set GPreg<n> mov <Player Region Code>'.
If this command will be found, then IfoEdit will change it to 'Set GPreg<n> mov <1>' (for region 1). Before IfoEdit set's a fix value for the region code, it will ask you, which Region-Code should be used. For a region code 1 checking, you should only select Region 1!

Again: Do only select one of above Regions, NOT ALL!


Question:

Have ripped a Region code enhanced disc and set non region disc. Under the Ifoedit method  i put it back together but it comes up with the RCE title first and wont allow play despite being all region enabled is there a place in the ifo i need to edit? 


Answer:

There are 2 things you need to do to make a region-free DVD. First is to clear the "prohibited regions" mask in video_ts.ifo, this can be done with IFOEdit. The second is to hunt down any RCE code as outlined below. RCE is simply using the interactive instruction set of DVD players to either show you the movie, or show you a nasty message. Once reprogrammed, the disk shows the movie regardless of region code.

These are tricky, and if you really want to make the disk region free, you'll need to study the virtual machine code. What is happening is in some PGC, probably the First_Play (FP_PGC) a check is made on the player's region code by reading SPRM 20, and a branch is made accordingly.
IFOEdit can help, but you'll need to make the changes by hand, in HexEdit.

Example:
---- Part of VIDEO_TS.IFO - first play PGC: ---------
1.Pre Command: JumpSS VMGM pgcn 1
-------------------------------------------------------

---- Part of VIDEO_TS.IFO - VMGM_PGCI_UT - LU_1: ----
1.Pre Command: Set GPreg<9> mov SPreg<player region code>
2.Pre Command: Set GPreg<9> and sval#<15>
3.Pre Command: If GPreg<9> != #cval<1> then Goto line# 7
...
-------------------------------------------------------

If you take a look to the commands of the first play PGC, then you will see a Jump-command to the Menu-PGC 1 in VIDEO_TS.IFO.
Now expand in the tree-view the table: 'VMGM_PGCI_UT'.
Go into the PGC-Menu-1 and scroll down to the commands.

The first command reads the player-region code, and in the 3td line, it's compared with something (MpuCoder assumed it is compare with value 1, so it's a Region 1 Disc), and if it does not match, then it jump's to line (command) 7.

So this third line is the key! Now just put a 'NOP' in there, and your region-problem is gone!
To put a nop in there, simple double click the line, and in the Hex-Edit View put a zero over every value.

Enjoy your new Region-Free Disc. :-)

Here's some basic rules for modifying commands:
1) don't move anything, there may be jumps in other parts of the disk to the part you're modifying.
2) don't change the loading of registers, other parts may depend on the values
3) Once you find a jump based on the region code either NOP it if jumps because the region is wrong, or remove the condition if it jumps for a correct region