AniFarsh
11th April 2004, 15:52
After searching the forum for hours and finding solutions that didn't really get me there, I was able using several guides for different software/problems (see list of contributors) and after a lot of trial and error to patch a solution that worked for me.
The problem is that old problem of menu looping. We want to have a cool intro to the DVD that will lead without delay to the main menu (and loop from there), or even better we want the menu to be built up by animation (and then loop) this would be really cool.
One problem though how to have this animation run only once, when the CD is loaded?
I use DVD Maestro which is one of the best software for DVD creation, and pretty easy to use.
Using Maestro you can very easily set your animation to be a menu, you can set a loop point, which also functions as the buttons starting-point (before that point you don't see buttons which is great for our purpose) see a great guide at
However, there's a problem - if you link back to that menu (a "Main Menu" button) or if you press the menu button you get the whole animation again!
The following solution is a combination of the methods suggested in Ian Shepherd's guide and "Lord of the Discs" IfoEdit guide (see links below).
The problem with Shepherd's guide is that it deals with software DVD Studio Pro and TFDVDEdit, which have features that don't exist in Maestro (like adding pre-scripts) and the TFDVDEdit is a nice assembler translator, which makes life a bit easier. But I took the idea of using GPRM registers to control the behaviour of the DVD (this can be used for many other tricks).
"Lord of the Discs" guide is very good for basic understanding of IFOEdit and how to add DVD commands. The only problem is that the list of commands lacks a bit (had to work my mind a bit, and I still don't figure completely the different Hex codes).
Anyway what we do is setting a flag that means "Do not play Intro" and checking for this flag every time the menu is called.
Step 1: Author the DVD in DVD Mestro, create the menus, and don't forget to set the looping point, compile it.
Step 2: Open Vts_01_0.ifo (this is usually where the menus are kept) in IfoEdit. The lower window lists all the PGCs, and you can see each PGC by double-clicking (if you dont understand this part go to Lord of the Discs page, it has pictures ). Anyway, locate the menu that you need to take care of, so scroll down, they appear after the movie. Take a note of the menu number. You will probably notice that menus that have a looping point gets divided into two cells and two programs this is the key to the success of this method.
Step 3: In the upper window you need to select now "VTSM_PGCI_UT" and expand the + on the left. Now select the menu from step 2.
Step 4: Scroll down the lower window until you find an entry about the "command table", usually with menus, there will be some. Right click and choose "Add PreCommand". IfoEdit will create a new entry at the end stating "NOP" (no operation). Now, since the interface of IfoEdit is a bit limited we cannot edit the command and write what we want. We will have to enter the assembler command in HEX code.
Step 5: Double-click the new command and the Hex editor opens up. You need to type in the following sequence
20 A6 00 0F 00 01 00 02
Which roughly means: "If GPreg<15> == 1 then Link Program 2, button 0", which means in English that if the value of GPRM15 is 1 it will skip to the second program in the menu, which includes only the loop. The default value is 0 (all user-GPRM are 0 by default), so we need to set it to 1 somewhere. There's no better place then here, after the check is done (remember we wanted it to run just once).
Step 6: Add another pre-command, below this one to set the value of GPRM15 to 1 (right click, Add PreCommand and double click it). Enter the code:
71 00 00 0F 00 01 00 00
which means: "move GPreg<15>, 1"
that's it basically, save and replace the ifo and bup.
You can use the last command to set the Intro ON and OFF along the DVD as you please by setting it to 0 (71 00 00 0F 00 00 00 00) and 1 (71 00 00 0F 00 01 00 00).
I would like to express my gratitude again to Ian Shepherd and "Lord of the Discs" for their great guides:
Ian Shepherd's guide http://www.tfdvdedit.com/public/79.cfm
Lord of Discs - http://home.arcor.de/josef.braunstein/
Maestro Guide - http://www.doom9.org/index.html?/mpg/maestro.htm
Any comments would be appreciated.
The problem is that old problem of menu looping. We want to have a cool intro to the DVD that will lead without delay to the main menu (and loop from there), or even better we want the menu to be built up by animation (and then loop) this would be really cool.
One problem though how to have this animation run only once, when the CD is loaded?
I use DVD Maestro which is one of the best software for DVD creation, and pretty easy to use.
Using Maestro you can very easily set your animation to be a menu, you can set a loop point, which also functions as the buttons starting-point (before that point you don't see buttons which is great for our purpose) see a great guide at
However, there's a problem - if you link back to that menu (a "Main Menu" button) or if you press the menu button you get the whole animation again!
The following solution is a combination of the methods suggested in Ian Shepherd's guide and "Lord of the Discs" IfoEdit guide (see links below).
The problem with Shepherd's guide is that it deals with software DVD Studio Pro and TFDVDEdit, which have features that don't exist in Maestro (like adding pre-scripts) and the TFDVDEdit is a nice assembler translator, which makes life a bit easier. But I took the idea of using GPRM registers to control the behaviour of the DVD (this can be used for many other tricks).
"Lord of the Discs" guide is very good for basic understanding of IFOEdit and how to add DVD commands. The only problem is that the list of commands lacks a bit (had to work my mind a bit, and I still don't figure completely the different Hex codes).
Anyway what we do is setting a flag that means "Do not play Intro" and checking for this flag every time the menu is called.
Step 1: Author the DVD in DVD Mestro, create the menus, and don't forget to set the looping point, compile it.
Step 2: Open Vts_01_0.ifo (this is usually where the menus are kept) in IfoEdit. The lower window lists all the PGCs, and you can see each PGC by double-clicking (if you dont understand this part go to Lord of the Discs page, it has pictures ). Anyway, locate the menu that you need to take care of, so scroll down, they appear after the movie. Take a note of the menu number. You will probably notice that menus that have a looping point gets divided into two cells and two programs this is the key to the success of this method.
Step 3: In the upper window you need to select now "VTSM_PGCI_UT" and expand the + on the left. Now select the menu from step 2.
Step 4: Scroll down the lower window until you find an entry about the "command table", usually with menus, there will be some. Right click and choose "Add PreCommand". IfoEdit will create a new entry at the end stating "NOP" (no operation). Now, since the interface of IfoEdit is a bit limited we cannot edit the command and write what we want. We will have to enter the assembler command in HEX code.
Step 5: Double-click the new command and the Hex editor opens up. You need to type in the following sequence
20 A6 00 0F 00 01 00 02
Which roughly means: "If GPreg<15> == 1 then Link Program 2, button 0", which means in English that if the value of GPRM15 is 1 it will skip to the second program in the menu, which includes only the loop. The default value is 0 (all user-GPRM are 0 by default), so we need to set it to 1 somewhere. There's no better place then here, after the check is done (remember we wanted it to run just once).
Step 6: Add another pre-command, below this one to set the value of GPRM15 to 1 (right click, Add PreCommand and double click it). Enter the code:
71 00 00 0F 00 01 00 00
which means: "move GPreg<15>, 1"
that's it basically, save and replace the ifo and bup.
You can use the last command to set the Intro ON and OFF along the DVD as you please by setting it to 0 (71 00 00 0F 00 00 00 00) and 1 (71 00 00 0F 00 01 00 00).
I would like to express my gratitude again to Ian Shepherd and "Lord of the Discs" for their great guides:
Ian Shepherd's guide http://www.tfdvdedit.com/public/79.cfm
Lord of Discs - http://home.arcor.de/josef.braunstein/
Maestro Guide - http://www.doom9.org/index.html?/mpg/maestro.htm
Any comments would be appreciated.