View Full Version : PGC Edit Guides - What happened to Jeani?
DVD Maniac
25th April 2005, 19:26
What's happened to the Jeani guides for PGC edit? The link is not responding! I found hi guide very useful and the suggested hex codes were invaluable for cutting and pasting. Now they have gone I'm stuck!
Any chance of findoing out whats happened or reactivating them?
CoNS
25th April 2005, 20:31
It's "jeanl", not "jeani" (Jean LaRoche) :)
and they're right here: http://jean.laroche.free.fr/
jeanl
25th April 2005, 20:54
Originally posted by DVD Maniac
What's happened to the Jeani guides for PGC edit? The link is not responding! I found hi guide very useful and the suggested hex codes were invaluable for cutting and pasting. Now they have gone I'm stuck!
Any chance of findoing out whats happened or reactivating them?
DVD Maniac! THanks for the feedback! The guides should still be there. If you have problems accessing them, I'll mirror them at videohelp.
You should really consider using 2COOL's excellent tool jump2pgc
http://forum.doom9.org/showthread.php?s=&threadid=89209&highlight=jump2pgc
it makes is much much easier: no need to change the values of the gprm in the examples etc. Essentially, it provides you with the right commands on the clipboard, so you can paste them in the right spot. With this, no need for the guide anymore!!!
Give it a shot!
Jeanl
Surf
25th April 2005, 21:13
Jeani went hibernating back in the lamp for another thousand years.:D
Again I beg to differ. Just by reading through your guide Jean, one gets a better grasp of the dvd structure and PgcEdit usage! I learned a lot through this guide, directly or otherwise! A slight polish to keep it upto date's more than adequate.
jeanl
25th April 2005, 21:17
Originally posted by Surf
Jeani went hibernating back in the lamp for another thousand years.:D
Again I beg to differ. Just by reading through your guide Jean, one gets a better grasp of the dvd structure and PgcEdit usage! I learned a lot through this guide, directly or otherwise! A slight polish to keep it upto date's more than adequate.
Thanks Surf! Blutach's been on my tail to update the guide for cases where the DVD already starts with the movie, in which case the current guide might yield unplayable DVDs... I'll get to that in the near (?) future! ;)
jeanl
P.S. I'll take jeani over jane any time! :D
blutach
26th April 2005, 02:41
It's only been 2 months since I highlighted the problem!! :D :D
Didn't want to start a thread about it. But for those interested, if the trace of the DVD is such that the movie starts first setting a resume flag in the process, but you want to start with the main menu, you need to unset it in the menu PGCs commands.
Regards
jeanl
26th April 2005, 03:02
There you see! No need for a guide update! :D
jeanl
blutach
26th April 2005, 03:21
OK - here it is in all the detail that I have proposed to jeanl the genie:
In situations where your DVD normally starts with the main movie but you want it to start with the menu and have followed this guide (see section XXX) and find the Play Movie button doesn't function as it should:
This is probably caused by the resume flag being set - remember that in order to start at the menu; we jumped out of a "playing" title back to the menu. This playing title may have had a register set that functions as a flag to resume playback at exactly the point where it was interrupted by a menu jump.
Look for a GPRM that is cleared (set to 0) almost directly after the movie title has played (i.e. in the title's Post Commands) and before any jumps out of the title are made (as a cross check, it will probably have been set almost just before the movie title begins, usually (but not always) to 1 - in the movie title's Pre Commands or the VMGM PGC that jumped to the title).
Assuming that this is the case, then IF THIS GPRM IS SET TO THE SAME VALUE IN THE COMMANDS YOU HAVE ADDED TO THE MAIN MENU'S PGC, then delete the line that you have inserted that sets it. (Save the IFOs to a safe place first using PgcEdit's File--> Save IFOs as or File--> Incremental Backup)
As a double check, before deleting any commands, click on the VMG, First Play PGC, then type RSM in the box down the bottom right of the PgcEdit main screen and click on >> PgcEdit will check the commands in the DVD looking for the RSM command. If it finds one, you will be able to see easily if the RSM is associated with that GPRM. IF IT DOESN'T FIND ONE, THIS IS NOT THE CAUSE AND YOU SHOULD NOT DELETE ANYTHING.
You may need to click >> again to find the ACTUAL command associated with this particular RSM command (which is usually in the Post Commands of the main menu's PGC or another PGC in the VTSM of the main menu - typically, a PGC directly or indirectly referred to by the command associated with the Play Movie button - you can see this by clicking Ctrl-M on the Main menu's PGC to see the menu buttons and their commands and use the Jump to Target to see just what the Play Movie button does).
Play in any software player to test.Regards
r0lZ
26th April 2005, 15:09
Interesting problem, blu.
I am currently implementing jeanl/2COOL's method as a PgcEdit's macro. The macro will do everything for you, except the trace, that you will still need to control yourself.
But I see that, in some cases, the method will not work properly. It's more difficult than I thought! :(
Is it possible to find a way to automatically avoid this problem? I can't find one. Any idea?
jeanl
26th April 2005, 17:55
r0lZ,
Another problem with my guide to go straight to the menu. I'm assuming you enter the menu via the first cell of the PGC, which is why I put a "break" command. But in some (rare) cases that's not true and you enter the menu via a link command to a specific cell. In such cases, the break needs to be replaced by the appropriate "link" command...
That's another thing I didn't add to my guide :( mainly because I thought it would complicate things unnecessarily. But a macro should probably handle that...
I don't have a solution for blu's resume problem.
jeanl
r0lZ
26th April 2005, 20:03
Originally posted by jeanl
r0lZ,
Another problem with my guide to go straight to the menu. I'm assuming you enter the menu via the first cell of the PGC, which is why I put a "break" command. But in some (rare) cases that's not true and you enter the menu via a link command to a specific cell. In such cases, the break needs to be replaced by the appropriate "link" command... It should be possible to avoid this problem if we snapshot the trace state before executing the first pre-command of the target PGC. This way, the state will be restored in the PGC, and the original pre-commands executed normally.
I know that if there is an original pre-commands that jumps outside this PGC, that method may not work, but it should be possible to continue the trace when the macro has finished his work, to check if it works.
I wonder what method is easier to implement...
jeanl
26th April 2005, 20:13
Originally posted by r0lZ
It should be possible to avoid this problem if we snapshot the trace state before executing the first pre-command of the target PGC. This way, the state will be restored in the PGC, and the original pre-commands executed normally.
Yes, that's the way to go, but as you said ...
I know that if there is an original pre-commands that jumps outside this PGC, that method may not work, but it should be possible to continue the trace when the macro has finished his work, to check if it works.
I wonder what method is easier to implement...
So it appears to me that you want to snapshot right before the first pre-command, and simply dump that snapshot if navigation leaves the PGC for some reason. Then snapshot again the next time it returns, and so on until we finally end up in at the menu.
In my guide, that was not a viable solution, too complicated to explain. But I think in your case, it's an OK solution.
So the best solution in my view is: put a breakpoint in the menu playback (i.e. when playback of the menu starts, not when we enter the PGC), but always take a snapshot when you enter the menu PGC before the first command. When you finally hit the playback breakpoint (possibly after several trips to the menu PGC), you use the last snapshot as your added precommands.
This is probably also true for jumping straight to the movie, right? Same problem, possibly same solution?
Are you also going to take care of cases where you can't jump from first-play to the actual menu (and you have to piggy-back through another entry PGC)?
jeanl
r0lZ
26th April 2005, 20:28
Originally posted by jeanl
This is probably also true for jumping straight to the movie, right? Same problem, possibly same solution?Maybe. I'll start to code it, and release a beta as soon as possible, so we will be able to test it in several situations.
Are you also going to take care of cases where you can't jump from first-play to the actual menu (and you have to piggy-back through another entry PGC)?Yes. That's not the most difficult to do. Anyway, the commands to generate in the target PGC are the same. I need only to search for the Root (or Title) menu entry, and add a couple commands here, and modify the jump in the FP-PGC. Right?
Another problem, not covered in your guide, is the case of multiple LUs in the target domain. Obviously, if the player's config is modified, the method will not work anymore. I have to paste the new commands in every LUs. But if there are authoring differences in the LUs, it may not work.
Also, it may be strange to use, say, the english LU, but with a SetSTN that setup french as the default audio!
jeanl
26th April 2005, 20:36
Originally posted by r0lZ
Yes. That's not the most difficult to do. Anyway, the commands to generate in the target PGC are the same. I need only to search for the Root (or Title) menu entry, and add a couple commands here, and modify the jump in the FP-PGC. Right?
Yep.
Another problem, not covered in your guide, is the case of multiple LUs in the target domain. Obviously, if the player's config is modified, the method will not work anymore. I have to paste the new commands in every LUs. But if there are authoring differences in the LUs, it may not work.
Also, it may be strange to use, say, the english LU, but with a SetSTN that setup french as the default audio!
Yes, I really didn't look into that! And you're right. If the commands are not the same in all the LUs (and that does happen) things might not work! If the LUS have different commands (which I think you check when you open the DVD) perhaps you should ask the user for which LU they want to do the jump for... This way they might be able to do it for all the LUs in the DVD if they really want to. If they're all the same, then that's easy, you replicate the code in all the LUs.
Man, that's going to be a heck of a macro. Do you know if there are any (commercial) programs out there that do that?
jeanl
r0lZ
26th April 2005, 21:02
Originally posted by jeanl
Man, that's going to be a heck of a macro. Do you know if there are any (commercial) programs out there that do that? I don't thing so, because you need some kind of trace function to implement it! :)
Maybe TFDVDEdit?
r0lZ
30th April 2005, 07:51
Originally posted by blutach
In situations where your DVD normally starts with the main movie but you want it to start with the menu and have followed this guide (see section XXX) and find the Play Movie button doesn't function as it should:
This is probably caused by the resume flag being set - remember that in order to start at the menu; we jumped out of a "playing" title back to the menu. This playing title may have had a register set that functions as a flag to resume playback at exactly the point where it was interrupted by a menu jump.
Look for a GPRM that is cleared (set to 0) almost directly after the movie title has played (i.e. in the title's Post Commands) and before any jumps out of the title are made (as a cross check, it will probably have been set almost just before the movie title begins, usually (but not always) to 1 - in the movie title's Pre Commands or the VMGM PGC that jumped to the title).
Assuming that this is the case, then IF THIS GPRM IS SET TO THE SAME VALUE IN THE COMMANDS YOU HAVE ADDED TO THE MAIN MENU'S PGC, then delete the line that you have inserted that sets it. (Save the IFOs to a safe place first using PgcEdit's File--> Save IFOs as or File--> Incremental Backup)
As a double check, before deleting any commands, click on the VMG, First Play PGC, then type RSM in the box down the bottom right of the PgcEdit main screen and click on >> PgcEdit will check the commands in the DVD looking for the RSM command. If it finds one, you will be able to see easily if the RSM is associated with that GPRM. IF IT DOESN'T FIND ONE, THIS IS NOT THE CAUSE AND YOU SHOULD NOT DELETE ANYTHING.
You may need to click >> again to find the ACTUAL command associated with this particular RSM command (which is usually in the Post Commands of the main menu's PGC or another PGC in the VTSM of the main menu - typically, a PGC directly or indirectly referred to by the command associated with the Play Movie button - you can see this by clicking Ctrl-M on the Main menu's PGC to see the menu buttons and their commands and use the Jump to Target to see just what the Play Movie button does).
Play in any software player to test.This problem is verry ennoying.
To help understand what happens, here is a simple example, generated with the Jump2Pgc macro I am currently implementing in PgcEdit.
Original DVD:VMG (VIDEO_TS.IFO)
------------------
VMG , First-Play PGC
********** pre commands:
1 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
********** post commands:
1 if ( gprm(0) == 1 ) then { RSM }
2 (JumpVTS_TT) Jump to TTN 1 in this VTS
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 Set gprm(0) =(mov) 1
********** post commands:
1 Set gprm(0) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:As you can see, GPRM 0 holds the resume flag.
After the macro has been applied to jump straight to the root menu:VMG (VIDEO_TS.IFO)
------------------
VMG , First-Play PGC
********** pre commands:
1 if ( gprm(15) != 0 ) then { Goto line 3 }
2 (JumpSS) Jump to VTSM 1, Root menu (TTN 1)
3 NOP
4 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(15) != 0 ) then { Goto line 4 }
2 Set gprm(0) =(mov) 1
3 Set gprm(15) =(mov) 65278
4 NOP
********** post commands:
1 if ( gprm(0) == 1 ) then { RSM }
2 (JumpVTS_TT) Jump to TTN 1 in this VTS
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 Set gprm(0) =(mov) 1
********** post commands:
1 Set gprm(0) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:Obviously, there is a problem with pre-command 2 of the root menu.
GPRM 0 is set to 1, which cause the post command 1 to be executed anyway. Since no title has been played at this point, the RSM command fail.
Of course, if, before applying the macro, the user wait until the title 1 has finished playing, the playback return automatically to the menu, and the value of GPRM 0 is now 0. In this case, the pre command 2 will be Set gprm(0) =(mov) 1. The RSM command will not be executed, and everything seems to work. But the RSM will never
be executed anymore, and this is not what we want.
The solution explained by blutach (delete line 2) is verry difficult to implement in a macro, because I have no way to know that line 2 may cause a navigation error.
But loot at this.
Possible solution: (modified commands in green)VMG (VIDEO_TS.IFO)
------------------
VMG , First-Play PGC
********** pre commands:
1 if ( gprm(15) != 0 ) then { Goto line 3 }
2 (JumpTT) Jump to Title 1
3 NOP
4 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(15) != 0 ) then { Goto line 4 }
2 Set gprm(0) =(mov) 1
3 Set gprm(15) =(mov) 65278
4 NOP
********** post commands:
1 if ( gprm(0) == 1 ) then { RSM }
2 (JumpVTS_TT) Jump to TTN 1 in this VTS
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(15) != 0 ) then { Goto line 3 }
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
3 NOP
4 Set gprm(0) =(mov) 1
********** post commands:
1 Set gprm(0) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:If we jump to a title (preferably the main title) in the same titleset than the target PGC, and we jump immediately from the pre-commands of this title to the target PGC, the resume point will be initialized. So, the RSM will not fail anymore.
Of course, in this case, the last command, after the RSM, will never be executed, but, at least in this case, it doesn't matter, because title 1 has not been really played. The resume point is therefore at the verry beginning of the title, and the title will be played normally, even when called with a RSM.
But I wonder if it will work in any cases. The RSM jumps directly to the title, bypassing the pre-commands. So, the original pre-commands will probably never be executed anymore, and that may lead to important problems, such as audio/subpic not being properly set!
Does someone think at a better solution?
jeanl
30th April 2005, 08:03
Originally posted by r0lZ
If we jump to a title (preferably the main title) in the same titleset than the target PGC, and we jump immediately from the pre-commands of this title to the target PGC, the resume point will be initialized. So, the RSM will not fail anymore.
Of course, in this case, the last command, after the RSM, will never be executed, but, at least in this case, it doesn't matter, because title 1 has not been really played. The resume point is therefore at the verry beginning of the title, and the title will be played normally, even when called with a RSM.
But I wonder if it will work in any cases. The RSM jumps directly to the title, bypassing the pre-commands. So, the original pre-commands will probably never be executed anymore, and that may lead to important problems, such as audio/subpic not being properly set!
Does someone think at a better solution?
That last solution is the one I prefer. How about letting all the precommand execute then put the code to jump to the main menu? In other words, moving your code in title 1 at the end of the precommands, instead of the beginning. This way, when you resume, the same things happens as in the original. That would fix it.
However, remember that in the most general case (not with the resume problem), jumping straight from the menu is not the same thing as jumping to the movie, executing the pre-commands, then to the menu. That's because many menus behave differently when accessed the first time, than when accessed from the movie (usually, the menu intro is skipped in that case), and that might undesirable...
jeanl
r0lZ
30th April 2005, 08:23
Originally posted by jeanl
That last solution is the one I prefer. How about letting all the precommand execute then put the code to jump to the main menu? In other words, moving your code in title 1 at the end of the precommands, instead of the beginning. This way, when you resume, the same things happens as in the original. That would fix it. Not a bad idea, but it will not wotk if there are jumps outside the PGC, or Break, LinkCN, LinkPTT... commands in the pre-commands of the Title.
Also, as you explained, a pre command may initialize a GPRM to skip the menu intro.
IMHO, it is better to avoid executing any original command before the jump to the real target PGC has been carried out.
r0lZ
30th April 2005, 08:54
I have to add that the problem with the resume point not being defined is also dangerous if the menu has the GoUpPGC link set to 255 (resume). If the user press the Return button on the remote when the resume point is not yet defined, the player crash!
But pressing the Menu or Title button when in a menu (which is another way to resume) seems to be harmless. Strange!
blutach
30th April 2005, 09:22
I really think we are faced with manual deletion of the line. It is simplest, in a way (and people playing around with this stuff should know a bit about what they are doing anyway).
Regards
blutach
30th April 2005, 09:30
What you might do in the macro is simply place a warning.
1. Have the macro search the DVD commands for RSM. If none is found then there is nothing to worry about - no warning issued.
2. However, (i) if a RSM is found anywhere on the DVD AND (ii) the trace has showed a prior call to the movie title (which is easy enough to determine by its length - I know episodic DVDs will be harder), AND which (iii) the user has modified to start at the menu instead of the title, then simply issue a warning for the user to look for the resume flag and perhaps give some tips on how to find it. Maybe even, PgcEdit could suggest the correct GPRM being modified before the title has commenced and after it has ended (as this will be associated with the RSM commands). Or is this too hard?
Regards
2COOL
30th April 2005, 09:33
Temporarily taking off my Harry Potter invisibility cloak ...
I think this should logically work, though I haven't tested it. I just took Title 1's post commands and put in after new pre command 2.
The commands in RED are new inserted commands.
VMG , First-Play PGC
********** pre commands:
1 Set gprm(14) =(mov) 12345
2 (JumpTT) Jump to Title 1
3 NOP
4 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
********** post commands:
1 if ( gprm(0) == 1 ) then { RSM }
2 (JumpVTS_TT) Jump to TTN 1 in this VTS
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 5 }
2 Set gprm(14) =(mov) 0
3 Set gprm(0) =(mov) 0 //copy of post commands
4 (JumpSS) Jump to VTSM 1, Root menu (TTN 1) //copy of post commands
5 NOP
6 Set gprm(0) =(mov) 1
********** post commands:
1 Set gprm(0) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:
blutach
30th April 2005, 09:34
Hi there very COOL person!!! WB.
Regards
blutach
30th April 2005, 09:39
What about RSMs that are executed in this way, where it is obvious to a human what GPRM to by-pass but perhaps not a machine?
[00 A1 00 02 00 00 00 03] 1 if ( gprm(2) == 0 ) then { Goto line 3 }
[20 01 00 00 00 00 00 10] 2 RSM
[30 05 00 01 00 01 00 00] 3 (JumpVTS_PTT) Jump to TTN 1, Chapter 1 Regards
2COOL
30th April 2005, 09:54
Originally posted by blutach
What about RSMs that are executed in this way, where it is obvious to a human what GPRM to by-pass but perhaps not a machine?
[00 A1 00 02 00 00 00 03] 1 if ( gprm(2) == 0 ) then { Goto line 3 }
[20 01 00 00 00 00 00 10] 2 RSM
[30 05 00 01 00 01 00 00] 3 (JumpVTS_PTT) Jump to TTN 1, Chapter 1 Regards
I still think my theory would work. Your commands are in BLUE. New inserted commands in RED.
VMG , First-Play PGC
********** pre commands:
1 Set gprm(14) =(mov) 12345
4 (JumpTT) Jump to Title 1
3 NOP
4 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 5 }
2 Set gprm(14) =(mov) 0
3 Set gprm(2) =(mov) 0
4 Break
5 NOP
********** post commands:
1 if ( gprm(2) == 0 ) then { Goto line 3 }
2 RSM
3 (JumpVTS_PTT) Jump to TTN 1, Chapter 1
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 3 }
2 (JumpSS) Jump to VTSM 1, Root menu (TTN 1)
3 NOP
4 Set gprm(2) =(mov) 1
********** post commands:
1 Set gprm(2) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:
blutach
30th April 2005, 10:14
Agreed, but just to add to the confusion, however, I have seen resume flags set in VMGM and not the title (though this is rare)!
Regards
r0lZ
30th April 2005, 13:34
Hi, 2COOL. Welcome back to the Real World! ;)
Your idea is interesting, but it assumes that the original post-commands of the title are jumping back straight to the menu the user wants to go to. It's not always the case (for example, with episodic DVDs or when the main title is followed by an outtro, logo or credits title.)
And the user may want to go to, say, the subpic menu, instead of the root menu.
Also, perhaps in the post-commands of the title, a GPRM is initialized so that the intro of the menu will be skipped. We don't want that. Some other important initialization may occur, too.
Anyway, I think it's dangerous to execute original commands before the target menu has been reached. We never know what may happens.
Furthermore, I need to figure out what title must be called in the same titleset than the target menu. It's relatively easy if the main title is in the same titleset, and is longer than the others. But again, what title must be called in an episodic DVD? And it's even more difficult to choose a title if the target menu is in the VMGM.
Err: In your example, the JumpSS pre-command 4 should be a CallSS.
r0lZ
30th April 2005, 14:27
Originally posted by blutach
What you might do in the macro is simply place a warning.
1. Have the macro search the DVD commands for RSM. If none is found then there is nothing to worry about - no warning issued.
2. However, (i) if a RSM is found anywhere on the DVD AND (ii) the trace has showed a prior call to the movie title (which is easy enough to determine by its length - I know episodic DVDs will be harder), AND which (iii) the user has modified to start at the menu instead of the title, then simply issue a warning for the user to look for the resume flag and perhaps give some tips on how to find it. Maybe even, PgcEdit could suggest the correct GPRM being modified before the title has commenced and after it has ended (as this will be associated with the RSM commands). Or is this too hard? I prefer a fully automatized solution, but I agree that your solution may work.
In setp 1, we need to be sure that there is no GoUpPGC link set to 255 (resume) somewhere in the menus, too. Of course, it is possible to disable them, but I don't like that.
In step 2, I cannot check easily if the main title has been called. But the internal variable used to store the resume point will be initialized if any title has been called during the trace. As it will hold the last title called before the target menu was entered, I may prehaps assume that it is suitable for the resume.
Just wondering if it will work if the playback of that title has been killed. If I use that title to do the fake jump before going to the target menu, and the RSM is executed, the flow will go to the killed title, and will probably return to another point in the DVD. And if it returns to the right menu, the resume flag GPRM may still hold his original value, and the RSM will be executed again and again, in an infinite loop.
The third check in step 2 is less easy. It's almost impossible to know if the original commands were calling the main title first, as it is extremely rare that the first jump command jumps directly to the main title. Most of the time, a dummy is called, or a FBI warning or logo. Furthermore, I have seen many DVDs with a RSM somewhere in the main menu, even if the main title was not called. If that RSM is executed, it will crash anyway. Therefore, I think that this check is useless.
Finally, finding the GPRM used as the resume flag is not really easy, excepted if the IF condition is in the same line than the RSM, like in my example. But I may also search before the RSM command for an IF associated with a GOTO that jumps after the RSM command. However, things are more complicated if there are several RSMs in the DVD.
For now, I think it's the best solution. But maybe we have to brainstorm some more...
[EDIT: typo]
blutach
30th April 2005, 15:03
You could almost skip (ii), and just run with finding the GPRM that's associated with the RSM flag and give the warning for the user to check if it is set near the start of the title's playback and, perhaps also checking for clearing it after the title is played. Really, the PGC with the RSM command needs to be put in from of the user's eyes to give him the idea of what he's looking for.
Note another wrinkle is that I have seen resume flags set at 0 and cleared with non-zero values!
Regards
2COOL
30th April 2005, 15:33
@r0lz
Originally posted by r0lZ
Err: In your example, the JumpSS pre-command 4 should be a CallSS. You are correct. I'm a little rusty from my intermission but will continue this thread when my mind is a lot more clearer. Here's the corrected version
VMG , First-Play PGC
********** pre commands:
1 Set gprm(14) =(mov) 12345
2 (JumpTT) Jump to Title 1
3 NOP
4 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTSM 1 , LU 1 (en):
VTSM 1 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
********** post commands:
1 if ( gprm(0) == 1 ) then { RSM }
2 (JumpVTS_TT) Jump to TTN 1 in this VTS
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 5 }
2 Set gprm(14) =(mov) 0
3 Set gprm(0) =(mov) 0 //copy of post commands
4 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1 //copy of post commands
5 NOP
6 Set gprm(0) =(mov) 1
********** post commands:
1 Set gprm(0) =(mov) 0
2 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:
sweetness
30th April 2005, 16:09
look how's back,
back again,
tell your friends.
:cool:
blutach
30th April 2005, 16:21
@r0lZ
Forgetting the RSM flag for just a second, how does PgcEdit handle the situation where the DVD by-passes the menu to play the movie directly, but the user wants the DVD to start at the main menu?
Jeanl's method is to replace the Break (which PgcEdit doesn't create), with a Jump to the Root Menu of the current VTS, but this doesn't seem to be incorporated in your macro yet.
Or am I missing something?
Regards
r0lZ
30th April 2005, 17:27
Currently, the macro jumps directly to the target PGC, in whatever domain it belongs to (VMGM, VTSM or Title domain).
Of course, if the target is in a VTSM domain and is not an entry PGC, as it is impossible to jump directly to it from the FP-PGC, I have to redirect the jump to the root menu (or another entry menu), and from that menu, jump to the target menu.
This way, I can reach almost any PGC.
The macro doesn't allow to jump to a dummy menu (although it is technically possible, I think it's not useful).
In the title domain, only the Title's entry PGC is reachable, via a JumpTT. You cannot jump directly to chapter 2, for example.
Seems everything works well, except in the RSM case.
r0lZ
30th April 2005, 17:32
Originally posted by blutach
how does PgcEdit handle the situation where the DVD by-passes the menu to play the movie directly, but the user wants the DVD to start at the main menu? That's exactly the case of my example above. Without the RSM, it works well.
2COOL
30th April 2005, 23:12
Originally posted by r0lZ
It's not always the case (for example, with episodic DVDs or when the main title is followed by an outtro, logo or credits title.)
And the user may want to go to, say, the subpic menu, instead of the root menu. Funny how when one wakes up and the first thoughts of the day is thinking about DVD commands. :p Anyways, in a situation of a flow like these ...
First Play PGC > Title 1 > VTSM 1 Root Menu
or
First Play PGC > Title 1 > VTSM 1 Root Menu > VTSM 6
... I was thinking of something like this. Food for thoughts?
VMG , First-Play PGC
********** pre commands:
1 if ( gprm(14) == 12345 ) then { Goto line 4 }
2 Set gprm(14) =(mov) 12345
3 (JumpTT) Jump to Title 1
4 (JumpSS) Jump to VTSM 2, Root menu (TTN 1)
5 NOP
6 (JumpTT) Jump to Title 1
********** post commands:
********** cell commands:
VTS 1 (VTS_01_0.IFO)
--------------------
VTST 1:
VTST 1 , 1 TTN 1 (0:06) Title 1 - Chapters: 1, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 3 }
2 (CallSS) Call the First Play PGC, resume cell 1
3 NOP
4 Misc. Command
********** post commands:
1 Misc. Command
2 Misc. Command
********** cell commands:
VTS 2 (VTS_02_0.IFO)
--------------------
VTSM 2 , LU 1 (en):
VTSM 2 , LU 1 (en) , 1 (0:00) 1b. RootM - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 if ( gprm(14) != 12345 ) then { Goto line 5 }
2 Set gprm(14) =(mov) 0
3 Misc Set commands //Copied Changed Registers
4 Break
5 NOP
6 Misc. Commands
7 Misc. Commands
********** post commands:
1 Misc. Commands
2 Misc. Commands
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
1 Group Select button=1, Action button=1
1: LinkTailPGC
blutach
1st May 2005, 01:48
Originally posted by r0lZ
That's exactly the case of my example above. Without the RSM, it works well. Maybe you misunderstood me (or, more likely, I am misunderstanding you).
The flow is, (as per 2COOL) FP - Somewhere Somewhere else - etc (but not the menu) - Title (which plays).
In jeanl's guide you can go FP - Title (which plays) and change it to go to the menu by changing the "Break" to a Call the Root Menu of the Current VTS.
However, I can't see how PgcEdit's macro implements this (because there is no break). Maybe, in this case only, it needs to ask the user if he wants to go to the menu instead of directly playing the title (or beter still, set a global option of title/menu). If he selects "menu", the macro mimics jeanl's guide and inserts a Call to the Root Menu and if he selects "title", then the normal macro continues.
What do you think?
Regards
Jeanl's method explain how to go to a title. An addition allow to jump to the root/title/subpic/... menu instead.
In PgcEdit's macro, I have implemented 3 different methods, to jump to a title, a VTSM PGC, or a VMGM PGC. With these methods, it is possible to jump to any PGC in the menu domains.
Therefore, if you want to go to the root menu, just select the root menu and call the macro.
If you want to go to a title, select the title. In this case, it is not possible to bounce to a menu, unless you edit the new commands manually.
For now, when jumping to a menu PGC, there is no jump to the main title before the jump to the target menu. I agree that this could cause some problems with the RSM commands, or GoUp remote button. Maybe I have to change that.
I may add an automatic jump to the last played title, so that the resume point will be defined exactly like in the original DVD. This doesn't solve the problem of the resume flag with the Set GPRM command, though.
blutach
1st May 2005, 07:29
So, if I read you correctly (and forgetting about the RSM flag issue for the time being), if the DVD goes to the title and plays it, by-passing the menu, a user would need to use jeanl's method/JMP2PGC to start at the menu?
Regards
No. The original flow of the DVD doesn't matter. All you will need to do is to trace to the menu, then select the macro. That's all.
blutach
1st May 2005, 09:02
Aaah! penny beginning to drop:
So, in this case, I just let the title finish playing and return to the menu, yes?
Regards
blutach
1st May 2005, 11:51
@r0lZ
This is also the answer to the resume flag issue!
If the DVD normally starts with the title, by-passing the main menu but the user wants to start at the main menu, he simply runs the title through in trace. At its end, it clears the resume flag - whatever it might be set to (I saw one today set to 1 and cleared by setting it to 3, the test was whetehr it was = 1). In any event, once the movie has run through, the resume flag is OFF!
This is what you supposed yesterday.
Of course, if, before applying the macro, the user wait until the title 1 has finished playing, the playback return automatically to the menu, and the value of GPRM 0 is now 0. In this case, the pre command 2 will be Set gprm(0) =(mov) 1. The RSM command will not be executed, and everything seems to work.You thought that the RSM woud never be executed but that is not true on the couple of tests I did, because the flag was never set in the menu (and therefore not skipped over like in your example).
So, I think there is no problem any more.
Regards
Originally posted by blutach
If the DVD normally starts with the title, by-passing the main menu but the user wants to start at the main menu, he simply runs the title through in trace. At its end, it clears the resume flag - whatever it might be set to (I saw one today set to 1 and cleared by setting it to 3, the test was whetehr it was = 1). In any event, once the movie has run through, the resume flag is OFF!
If that was the case, Jump2PGC would've worked. You mentioned that it didn't.
blutach
1st May 2005, 23:25
@2COOL - I must admit to never trying to trace the title it all the way through! I had been using a mixture of JMP2PGC and jeanl's guide where I allowed the title to start playing and clicked root menu in the trace window, tracing back to the menu after the resume flag was set thereby setting the resume flag in the main menu's precommands.
Regards
This is a way to do it. Or you may close the preview (with Close and Break Trace) and click the Root Menu button.
blutach
2nd May 2005, 13:45
@r0lZ
This is what I was essentially doing and was having the problem with the RSM flag.
Of you trace the title through to the main menu, I guess, the only issue you'd have is not starting on ther button you might want to (e.g title returns to "special features" button instead of "play movie") and I guess a click can assist in this regard (unless there is a force select button).
Regards
Originally posted by blutach
@r0lZ
This is what I was essentially doing and was having the problem with the RSM flag.I know that! I am currently working on a way to avoid the problem, based on your suggestion above.
Of you trace the title through to the main menu, I guess, the only issue you'd have is not starting on ther button you might want to (e.g title returns to "special features" button instead of "play movie") and I guess a click can assist in this regard (unless there is a force select button). The selected button problem is verry difficult to avoid. Rememebr: the method will clone the current state of the GPRMs and of some SPRMs, including the highlighted button.
In some cases, it will be sufficient to remove the new SetHL_BTN line, but if the button is changed in the original pre-commands of the target PGC, that will not work.
IMHO, entering the target menu with a wrong default button is not a big problem. It is also possible to force the required button with the menu editor.
Hi r0lZ, your macro does not require any input like the Jump2pgc? That would be some macro...
@2COOL: how about then, a version to input the number of the gprm used in controlling the rsm function?
Originally posted by Surf
Hi r0lZ, your macro does not require any input like the Jump2pgc? That would be some macro...No, my macro requires only to trace to the target point. After that, almost everything will be done automatically. Almost, because the RSM problem discussed in this thread is verry difficult to avoid automatically.
@2COOL: how about then, a version to input the number of the gprm used in controlling the rsm function? The problem is that it requires that the user understand what's happening with the RSM, and which GPRM is used to control it. It is exactly that which is difficult to automate.
blutach
3rd May 2005, 12:38
@r0lZ
I agree, the selected highlight button problem is much less of an issue than the RSM flag and therefore, if you trace through the title to the end and back to the main menu, then I think button highlight would be the only side effect (which is very easy to correct!)
I'd keep it this way, rather than trying for a variation to jeanl's guide (Call the root menu instead of Break).
I will keep testing.
Regards
Well, the last beta jumps to the last visited title before going to the target menu. However, there are 2 situations where it's not done:
1. If the resume point is still not initialised by the trace, there are no 'last visited title'. I assume that there are no RSM commands in this case.
2. If the target PGC is in a VTSM domain, and if the last visited title is in another titleset, it's impossible to jump to the menu directly from the last visited title. I may add a VMGM pgc to bounce from the title to the target menu, but I wonder if it is useful. IMHO, if the last visited title is not in the same titleset, it's probably because the title is a logo or intro. In this case, there should be no RSM.
If the last visited title is defined and is in the same titleset (or the target menu is in the VMGM), I still have to add the search for RSM commands, and a warning if at least one is found. Trying to guess which GPRM holds the resume flag is not easy...
blutach
3rd May 2005, 15:04
Agreed and I also see no need to add PGCs just to make this macro work.
Regards
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.