How to Play All in DVDA 1.0

ScottW wrote on 3/17/2004, 6:14 PM
Warning - the following requires the use of IfoEdit - if you aren't comfortable with the idea of low level authoring, just ignore this post!!

Create your DVDA project; keep track of the order that you add your movie clips; the first clip will be #1, second clip added #2, etc. As a final step, create a sub menu off of the main menu (you can delete all the content on the sub menu if you want) - go back to your the menu that has the sub menu link and change the name of the link to the menu to "Play All" (or whatever). You can do this with a submenu but some of the commands need to be changed since DVDA sets up things so that clips return to the main menu.

Build your project.

Using IfoEdit, open video_ts.ifo, expand VMG_PGCI_UT and select the last menu (this is the Play All menu that you added as the last step in the project). Scroll down in the "address/description" window and you should find a line saying "There is no PGC Command Table" Right click on this line and select "Add Pre-Command" - this will cause a command table to be generated and you'll see a "1.Pre Command NOP" line. Double click on this, position the cursor on the first set of hex digits - the format shows 8 zeros and then 8 pairs of zeros - it's the first pair of zeros that you want. type in

71 00 00 0a 00 01 00 00

click ok.
Right click on command 1 and "Add Pre Command", double click on the new command and type:

71 00 00 01 00 01 00 00

Do the same sequence again for:

71 00 00 02 00 01 00 00

And one more command for (these command MUST be done in order):

30 06 00 01 XX 87 00 00 - where XX specifies the clip number; 01 will take you to the first movie clip; this is the first clip that was added to your project. if you don't want to go to the first movie just specify the clip you want to go to.

At this point you'll have a sequence that looks something like:

1.Pre Command Set GPreg<10> mov (set-val)<1>
2.Pre Command Set GPreg<1> mov (set-val)<1>
3.Pre Command Set GPreg<2> mov (set-val)<1>
4.Pre Command (JumpSS VTSM) Jump to TitleSet(vts): 1, Title(ttn): 1, chapter-menu

You can save the IFO file at this point and use a software player to verify that when you click Play All you go to the first clip and then return to the main menu.

Now select PCG-Menu_1, scroll down to where it says "There is no PCG Command Table," right click and select "Add PreCommand"

Do the same sequence as before typing in:
71 00 00 0b 00 XX 00 00 - where XX reflects the number of the next clip, for example: 02.

Then Add another command:
30 26 00 01 XX 87 0A 0B - where XX again is the clip number.

Repeat the last 2 steps for each clip, changing the clip number as appropriate. For a 3 clip setup you'll have something like:

1.Pre Command Set GPreg<11> mov (set-val)<2>
2. If GPreg<10> == GPreg<11> then (JumpSS VTSM) Jump to TitleSet(vts): 2, Title(ttn): 1, chapter-menu
1.Pre Command Set GPreg<11> mov (set-val)<3>
2. If GPreg<10> == GPreg<11> then (JumpSS VTSM) Jump to TitleSet(vts): 3, Title(ttn): 1, chapter-menu

Ok, we're almost there..... Save the IFO file.

Now, for each of the movie clips you have, you'll have an IFO file. So open the IFO for the first clip: VTS_01_0.IFO
Expand the VTS_PGCITI entry and select VTS_PGC_1

Scroll down until you find the PGC command table. There will be a command that looks like:
1.Post Command (CallSS VMGM) Call VMG PGC: 1 [Resume Cell:1]
right click on this and select "Insert Command"
Then double-click on the command and type:
00 A1 00 0A 00 00 00 03

Click OK and then right click on the command "CallSS VMGM" and select "Insert Command"
Double click on the new command and type in:
71 00 00 0a 00 XX 00 00 - where XX is the clip number of the next clip you want to play, for example 02 - you should have something like:

1.Post Command If GPreg<10> == (cmp-val)<0><' then goto line# 3
2.Post Command Set GPreg<10> mov (set-val)<2>)
3.Post Command (CallSS VMGM) Call VMG PGC: 1 [Resume Cell: 1]

Save the IFO file, and repeat this procedure for each additional IFO file, so VTS_02_0.IFO would get
71 00 00 0c 00 03 00 00
added to it, etc.

The last IFO file gets the following inserted before the "CallSS VMGM" command:
71 00 00 0a 00 00 00 00 - so it will look like:

1.Post Command Set GPreg<10> mov (set-val)<0>)
2.Post Command (CallSS VMGM) Call VMG PGC: 1 [Resume Cell: 1]

Just a note - IfoEdit doesn't always format the command for display after you enter the hex values; so the last command you enter won't show up in text;
to correct this, simply right click the command line, select "Edit Command" and then cancel out of the edit dialog.

Hope this helps folks. I sure had fun learning how to do it!!
--Scott