2COOL
11th September 2003, 09:15
Using Title Menu Button to Skip Titles in Re-authored DVD Shrink Movies
Courtesy of 2C:cool::cool:L
Tool I used: IFOedit 0.95
DVDShrink used before this guide was v3.0 Beta 5
So you re-authored your DVD in DVD Shrink. You didn’t really care for the menu but you do want to have the option of skipping from Title to Title. In this guide, we’ll do just that.
I have re-authored a sample DVD with three Titles Figure 1) which DVD Shrink has put them in separate TitleSets. Below, is a visual layout of my files. Notice that I don’t have any 0.VOBs. These are our menu VOBs and since our re-authored DVD Shrink didn’t let us have them, then we don’t have any present.
Figure 1.
VIDEO_TS.BUP
VIDEO_TS.IFO ___________
VTS_01_0.BUP
VTS_01_0.IFO Title 1
VTS_01_1.VOB
VTS_01_2.VOB ___________
VTS_02_0.BUP
VTS_02_0.IFO Title 2
VTS_02_1.VOB
VTS_02_2.VOB ___________
VTS_03_0.BUP
VTS_03_0.IFO Title 3
VTS_03_1.VOB
VTS_03_2.VOB
To repeat myself, re-authoring in DVD Shrink does not produce any menus so it is obvious that our IFOs do not have menu tables in them. Menu Tables are used to hold information of what’s in a menu, importantly the navigational commands. Let’s start our first step.
____________________________________________________
1. First, we need a menu table. If you look in your VIDEO_TS.IFO / VMGM_PGCI_UT, you’ll have this message. “There is no VMGM_PGCI_UT table”. We need one badly so find any DVD with menus and it doesn’t matter if it’s the DVD in your DVD drive or it’s already ripped onto your harddrive.
____________________________________________________
2. Merging Menu Tables
Open up your reauthored movie’s VIDEO_TS.IFO in IFOedit. Go up to your Title bar and select Tools / Merge Menu Tables. Browse to your DVD with menus and open that VIDEO_TS.IFO. You will see your IFOedit window blink. You now have a menu table.
So check it out. Go to your VIDEO_TS.IFO / VMGM_PGCI_UT. The menu you now have is the same as the DVD’s VIDEO_TS.IFO you just used. Merging menu tables in IFOedit also means “importing” menu tables. Nothing was changed in the IFO except our b]VIDEO_TS.IFO / VMGM_PGCI_UT[/b].
At this point, it’d be important to save your DVD Shrink movie now so do that.
____________________________________________________
3. Now that we have a menu table to work on, I like to show you first what DVD Shrink had in your VIDEO_TS.IFO / VMGM_MAT / First Play PGC / PGC Command Table. (Figure 2)
Figure 2.
First Play PGC
PGC Command Table:
1.Pre Command If GPreg<0> == (cmp-val)<1><' then Goto line# 4 [00 a1 00 00 00 01 00 04]
2.Pre Command If GPreg<0> == (cmp-val)<2><' then Goto line# 5 [00 a1 00 00 00 02 00 05]
3.Pre Command (JumpTT) Jump to Title: 1 [30 02 00 00 00 01 00 00]
4.Pre Command (JumpTT) Jump to Title: 2 [30 02 00 00 00 02 00 00]
5.Pre Command (JumpTT) Jump to Title: 3 [30 02 00 00 00 03 00 00]
As you can see, the value in GPreg<0> or General Parameter Register 0, plays a big part on deciding which Title to play next.
Another thing I want to you to see is your PGC Command Table for your 3 Titles.
Figure 3.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 2
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 3
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Exit [31 01 00 00 00 00 00 00]
The commands in these titles are similar in a way except for the Post Command in Title 3. Also we see GPreg<0> is being set too.
____________________________________________________
4. Hexediting
Let’s work on our menu table in our VIDEO_TS.IFO. Go to VIDEO_TS.IFO / VMGM_PGCI_UT / PGC-Menu_1 / PGC Command Table. PGC-Menu_1 is your Title-menu, as shown in your VIDEO_TS.IFO / VMG Overview / Menu Language Unit section. (Figure 3)
Figure 4.
Language Menu Unit 1: [English]
Menu 1: [Title-Menu] (entry PGC) (Programs: 0) (Cells: 0)
When you press your Title button on your remote, your DVD will immediately jump to this Title Menu Hence the name, “Title Menu” button.
Now before, we go any further, this is a good time to backup your IFO and BUPs to another folder. If you mess up in your hexedits, you can always copy your original IFO and BUP over to replace your badly edited one. With that said and done, read on.
Basically, in this step, we want our PGC Command Table here to be exactly like our First Play PGC’s PGC Command Table (Figure 2). I wish we can import that PGC Command table but unfortunately, we have to do it manually by hexediting. It’s not that difficult. But first, we need to edit the following to reflect our Figure 2.
We have 5 Pre Commands so double left click on line. Change the values as below.
PGC Command Table:
Number of Pre Commands 5
Number of Post Commands 0
Number of Cell Commands 0
You should now have 5 miscellaneous Pre Commands present. Here’s is where we start our first hexediting. Double left click on Pre Command #1 and you will have your HexEdit Module window. In the window, you will see something like this.
00000000 ## ## ## ## ## ## ## ## ......
The ##s represent the hex value that you will edit as below, taken from Figure 2.
1.Pre Command If GPreg<0> == (cmp-val)<1><' then Goto line# 4 [00 a1 00 00 00 01 00 04]
Using your mouse, click in the ## ## ## ## ## ## ## ## and enter exactly as your Pre Command #1 in your First Play PGC. Remember to have your CAPs lock off or else you can’t enter any letters.;) Press OK when done.
Refreshing Screen Tip
To refresh your screen, here’s a personal trick I do. At bottom left of IFOedit, check and uncheck your “Show Reserved Values” checkbox and your screen will refresh. A single check will do too. Anyway, scroll down to your PGC Command Table and confirm your hexedit. Repeat if wrong.
When your done, you should have the same PGC Command Table as Figure 2. Save your IFO and BUP, if you don’t want to go through that long hexediting again.;)
____________________________________________________
5. Now we will work on our Titles’ PGC Command Tables. Let’s start on Title 1 first so go to VTS_01_0.IFO / VTS_PGCITI / VTS_PGC_1 / PGC Command Table. You should see the same as Figure 3.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
We’re not going to touch our Post Commands in our Titles except our last Title, which in our case is Title 3. This will be explain at a later step. If you decide to press your Title Menu button to skip to the next Title, your Post Commands will not be executed. You can say they were bypassed. All we’re going to do is just edit our first Pre Command. We want GPreg<0> to hold the same value that’s also programmed in our Post Command.
Here’s the flow of navigations if you don’t press your Title Menu button during Title 1’s play. GPreg<0> is set to 0 prior to video clip of Title 1 and holds that value till video play ends. When video has ended, GPreg<0> is then set to the value of 1 and while holding that value, it makes a jump to your First Play PGC. In your First Play PGC (see Figure 2), Pre Command #1 is executed and checked for trueness and since GPreg<0> IS 1, it makes a jump to Pre Command #4 to begin our next video clip, Title 2. Makes sense? I hope so.
Anyways, let’s edit Title 1’s Pre Command #1. Like in Step 4, hexedit Pre Command #1 to our new value as follows.
OLD > 1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
NEW > 1.Pre Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
When done, save your IFO and BUP and test out your new edit by pressing your DVD Play button in IFOedit. If you press your “Title Menu” button in IFOedit, you should skip to Title 2 as it shows in your Status Window of your DVD Play Panel. It works? Great!:D
____________________________________________________
6. Press your “Get VTS sectors” button
____________________________________________________
7. Repeat Steps 5 & 6 with the rest of the other Titles EXCEPT the last one. This will be explained in the next step.
____________________________________________________
8. Optional: Endless Loop in Play
We don’t need to do any changes in our Pre Commands for our last Title or last Titleset because it’s working the way it suppose to. The way the Post Commands in your last Title works is that if you didn’t press your Title Menu button and let the video play to the end, your DVD will stop playing. Notice the “Exit” in your last Post Command? An “Exit” basically means to stop executing commands and cease play. So as an optional step, if you want your DVD to loop back and play from the start again at Title 1, here’s what we’ll do. Hexedit our last Post Command #2 as follows.
OLD > 1.Post Command Exit [31 01 00 00 00 00 00 00]
NEW > 2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
____________________________________________________
9. Save your IFO and BUP.
____________________________________________________
10. Get VTS Sectors
____________________________________________________
That’s all to it! Enjoy!:D
To summarize what my edited Titles look like, here there are. I decided to do Step 8 and have my whole DVD in an endless loop.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 2
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 3
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Courtesy of 2C:cool::cool:L
Tool I used: IFOedit 0.95
DVDShrink used before this guide was v3.0 Beta 5
So you re-authored your DVD in DVD Shrink. You didn’t really care for the menu but you do want to have the option of skipping from Title to Title. In this guide, we’ll do just that.
I have re-authored a sample DVD with three Titles Figure 1) which DVD Shrink has put them in separate TitleSets. Below, is a visual layout of my files. Notice that I don’t have any 0.VOBs. These are our menu VOBs and since our re-authored DVD Shrink didn’t let us have them, then we don’t have any present.
Figure 1.
VIDEO_TS.BUP
VIDEO_TS.IFO ___________
VTS_01_0.BUP
VTS_01_0.IFO Title 1
VTS_01_1.VOB
VTS_01_2.VOB ___________
VTS_02_0.BUP
VTS_02_0.IFO Title 2
VTS_02_1.VOB
VTS_02_2.VOB ___________
VTS_03_0.BUP
VTS_03_0.IFO Title 3
VTS_03_1.VOB
VTS_03_2.VOB
To repeat myself, re-authoring in DVD Shrink does not produce any menus so it is obvious that our IFOs do not have menu tables in them. Menu Tables are used to hold information of what’s in a menu, importantly the navigational commands. Let’s start our first step.
____________________________________________________
1. First, we need a menu table. If you look in your VIDEO_TS.IFO / VMGM_PGCI_UT, you’ll have this message. “There is no VMGM_PGCI_UT table”. We need one badly so find any DVD with menus and it doesn’t matter if it’s the DVD in your DVD drive or it’s already ripped onto your harddrive.
____________________________________________________
2. Merging Menu Tables
Open up your reauthored movie’s VIDEO_TS.IFO in IFOedit. Go up to your Title bar and select Tools / Merge Menu Tables. Browse to your DVD with menus and open that VIDEO_TS.IFO. You will see your IFOedit window blink. You now have a menu table.
So check it out. Go to your VIDEO_TS.IFO / VMGM_PGCI_UT. The menu you now have is the same as the DVD’s VIDEO_TS.IFO you just used. Merging menu tables in IFOedit also means “importing” menu tables. Nothing was changed in the IFO except our b]VIDEO_TS.IFO / VMGM_PGCI_UT[/b].
At this point, it’d be important to save your DVD Shrink movie now so do that.
____________________________________________________
3. Now that we have a menu table to work on, I like to show you first what DVD Shrink had in your VIDEO_TS.IFO / VMGM_MAT / First Play PGC / PGC Command Table. (Figure 2)
Figure 2.
First Play PGC
PGC Command Table:
1.Pre Command If GPreg<0> == (cmp-val)<1><' then Goto line# 4 [00 a1 00 00 00 01 00 04]
2.Pre Command If GPreg<0> == (cmp-val)<2><' then Goto line# 5 [00 a1 00 00 00 02 00 05]
3.Pre Command (JumpTT) Jump to Title: 1 [30 02 00 00 00 01 00 00]
4.Pre Command (JumpTT) Jump to Title: 2 [30 02 00 00 00 02 00 00]
5.Pre Command (JumpTT) Jump to Title: 3 [30 02 00 00 00 03 00 00]
As you can see, the value in GPreg<0> or General Parameter Register 0, plays a big part on deciding which Title to play next.
Another thing I want to you to see is your PGC Command Table for your 3 Titles.
Figure 3.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 2
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 3
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Exit [31 01 00 00 00 00 00 00]
The commands in these titles are similar in a way except for the Post Command in Title 3. Also we see GPreg<0> is being set too.
____________________________________________________
4. Hexediting
Let’s work on our menu table in our VIDEO_TS.IFO. Go to VIDEO_TS.IFO / VMGM_PGCI_UT / PGC-Menu_1 / PGC Command Table. PGC-Menu_1 is your Title-menu, as shown in your VIDEO_TS.IFO / VMG Overview / Menu Language Unit section. (Figure 3)
Figure 4.
Language Menu Unit 1: [English]
Menu 1: [Title-Menu] (entry PGC) (Programs: 0) (Cells: 0)
When you press your Title button on your remote, your DVD will immediately jump to this Title Menu Hence the name, “Title Menu” button.
Now before, we go any further, this is a good time to backup your IFO and BUPs to another folder. If you mess up in your hexedits, you can always copy your original IFO and BUP over to replace your badly edited one. With that said and done, read on.
Basically, in this step, we want our PGC Command Table here to be exactly like our First Play PGC’s PGC Command Table (Figure 2). I wish we can import that PGC Command table but unfortunately, we have to do it manually by hexediting. It’s not that difficult. But first, we need to edit the following to reflect our Figure 2.
We have 5 Pre Commands so double left click on line. Change the values as below.
PGC Command Table:
Number of Pre Commands 5
Number of Post Commands 0
Number of Cell Commands 0
You should now have 5 miscellaneous Pre Commands present. Here’s is where we start our first hexediting. Double left click on Pre Command #1 and you will have your HexEdit Module window. In the window, you will see something like this.
00000000 ## ## ## ## ## ## ## ## ......
The ##s represent the hex value that you will edit as below, taken from Figure 2.
1.Pre Command If GPreg<0> == (cmp-val)<1><' then Goto line# 4 [00 a1 00 00 00 01 00 04]
Using your mouse, click in the ## ## ## ## ## ## ## ## and enter exactly as your Pre Command #1 in your First Play PGC. Remember to have your CAPs lock off or else you can’t enter any letters.;) Press OK when done.
Refreshing Screen Tip
To refresh your screen, here’s a personal trick I do. At bottom left of IFOedit, check and uncheck your “Show Reserved Values” checkbox and your screen will refresh. A single check will do too. Anyway, scroll down to your PGC Command Table and confirm your hexedit. Repeat if wrong.
When your done, you should have the same PGC Command Table as Figure 2. Save your IFO and BUP, if you don’t want to go through that long hexediting again.;)
____________________________________________________
5. Now we will work on our Titles’ PGC Command Tables. Let’s start on Title 1 first so go to VTS_01_0.IFO / VTS_PGCITI / VTS_PGC_1 / PGC Command Table. You should see the same as Figure 3.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
We’re not going to touch our Post Commands in our Titles except our last Title, which in our case is Title 3. This will be explain at a later step. If you decide to press your Title Menu button to skip to the next Title, your Post Commands will not be executed. You can say they were bypassed. All we’re going to do is just edit our first Pre Command. We want GPreg<0> to hold the same value that’s also programmed in our Post Command.
Here’s the flow of navigations if you don’t press your Title Menu button during Title 1’s play. GPreg<0> is set to 0 prior to video clip of Title 1 and holds that value till video play ends. When video has ended, GPreg<0> is then set to the value of 1 and while holding that value, it makes a jump to your First Play PGC. In your First Play PGC (see Figure 2), Pre Command #1 is executed and checked for trueness and since GPreg<0> IS 1, it makes a jump to Pre Command #4 to begin our next video clip, Title 2. Makes sense? I hope so.
Anyways, let’s edit Title 1’s Pre Command #1. Like in Step 4, hexedit Pre Command #1 to our new value as follows.
OLD > 1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
NEW > 1.Pre Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
When done, save your IFO and BUP and test out your new edit by pressing your DVD Play button in IFOedit. If you press your “Title Menu” button in IFOedit, you should skip to Title 2 as it shows in your Status Window of your DVD Play Panel. It works? Great!:D
____________________________________________________
6. Press your “Get VTS sectors” button
____________________________________________________
7. Repeat Steps 5 & 6 with the rest of the other Titles EXCEPT the last one. This will be explained in the next step.
____________________________________________________
8. Optional: Endless Loop in Play
We don’t need to do any changes in our Pre Commands for our last Title or last Titleset because it’s working the way it suppose to. The way the Post Commands in your last Title works is that if you didn’t press your Title Menu button and let the video play to the end, your DVD will stop playing. Notice the “Exit” in your last Post Command? An “Exit” basically means to stop executing commands and cease play. So as an optional step, if you want your DVD to loop back and play from the start again at Title 1, here’s what we’ll do. Hexedit our last Post Command #2 as follows.
OLD > 1.Post Command Exit [31 01 00 00 00 00 00 00]
NEW > 2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
____________________________________________________
9. Save your IFO and BUP.
____________________________________________________
10. Get VTS Sectors
____________________________________________________
That’s all to it! Enjoy!:D
To summarize what my edited Titles look like, here there are. I decided to do Step 8 and have my whole DVD in an endless loop.
Title 1
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<1> [71 00 00 00 00 01 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 2
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command Set GPreg<0> mov (set-val)<2> [71 00 00 00 00 02 00 00]
2.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]
Title 3
PGC Command Table:
1.Pre Command Set GPreg<0> mov (set-val)<0> [71 00 00 00 00 00 00 00]
2.Pre Command Break [00 02 00 00 00 00 00 00]
1.Post Command (CallSS FP) Call First-Play domain PGC [Resume Cell: 1] [30 08 00 00 01 00 00 00]