View Full Version : PgcEdit Jump2PGC but NOT from the beginning [Firstclip>skip preview/warnings>menu]
CakeOrDeath
16th February 2009, 22:44
First off, hi all, long time lurker (many years) first time poster. I’ve learned a lot over the years on how to edit & backup my DVDs but I’ve wanted to do something for awhile now and can’t seem to figure out how to accomplish my goal… so here I am!
Not quite sure how to word this but I’ll give it a shot.
My question is this.
Most DVDs go: Insert: Studio logo intro (short clip of the studio)> previews > main menu (or sometimes straight to the movie)
When using PgcEdit to edit (not sure if Jump2PGC will work in this case)
Is there a way to edit the flow of the DVD to do the fallowing: Insert DVD > play Studio logo (DreamWorks, Paramount etc) > SKIP the previews, warnings etc and go directly to the menu? (I’ve blanked them out in the past but when playing back in a stand alone it still takes awhile and you can hear the DVD laser shifting from preview to preview (blanked).
I can’t really use Jump2PGC because then it’d skip the Studio logo clip (sure I could skip this and just go to the menu but sometimes I like to keep it if I’m not compressing to fit onto a DVD5).
In short: Blanking the previews works but is ‘too slow’ on playback so I’d like to Insert>Studio clip>jump to main menu (select audio/subs as per the usual way of using Jump2PGC to main menu).
So it’s almost like using the normal Jump2PGC (main menu) but playing the initial studio logo clip before making the jump).
I have an example (BEE MOVIE) if needed. DreamWorks logo clip > 3 or so previews > main menu.
I can’t really have the post command of the logo point to the main menu because somewhere in the fallowing previews it selects language and other commands as we all know DVDs like to do.
Thanks for your help =)
blutach
17th February 2009, 00:40
There are cases where you'd like to keep the previews and shorts but not have them play at the start. Most times, J2PGC is your answer. But in this case, you want to play something first and then skip over some stuff without deleting it.
What you need to use are the Clipboard functions in trace. r0lZ actually suggested that we write a guide on this.
Essentially the work flow is:
1. Put a pre/post breakpoint on the last thing played before the skip.
2. After the intro has played (at the start of its post commands) at the breakpoint in the trace, issue a State --> Clear Register Changed flags.
3. Now, continue normally playing the DVD until just after the last preview has played (or till you get to the precommands of the menu).
4. Issue a Clipboard --> Copy changed registers as commands. This will copy only the changed registers from when you cleared the flags in point 2.
5. At the appropriate point (post commands of the last title or the pre commmands of the menu, as you selected), paste the changed commands in. You may need to make it conditional, so that when you play that title normally, the new code is not executed. For example:
1 if ( gprm(x) != unique number) then { Goto line 10 } ; set gprm(x) to a unique number beforehand and reset it in commands 2-9.
2-9 Results of paste plus changing of gprm used for condition
10 Existing commands
Test before saving! (Useful to do an incremental backup first).
It's a lot easier to actually do than to set out in a guide or post. :)
More info here - http://forum.doom9.org/showthread.php?t=132625
Regards
r0lZ
17th February 2009, 00:56
This thread (http://forum.doom9.org/showthread.php?p=682859#post682859) is exactly about the same subject.
blutach
17th February 2009, 01:05
I had actually thought of a different way to do this, without using the clipboard functions. Maybe more efficient. Just musing here ....
1. Clone the titles concerned, giving them new title numbers. This adds no space of course, just some entries in the title play map table.
2. Kill playback of the cloned titles only.
3. Add references in VMG to the cloned titles (conditional, if necessary).
4. Trace through carefully and in the startup phase only, changing the conditions that call the original titles to those that call the cloned ones (e.g. change the gprm values that call the original titles to those that call the cloned ones, or change links to PGCs that call the original titles to PGCs that call the clones).
5. Test.
What do you think?
Regards
CakeOrDeath
17th February 2009, 01:11
Awesome, let me look over this info and see if it fully answers my question. Re: blu your first post I do actually want to fully remove the previews & warnings and will delete them but I want to skip them still so the stand-alone laser doesn't have to focus on the blanked out cells.
It looks like you have both come though once again though! I need to go over the info and 'digest' it (I'm still learning so it takes me a little bit to 'get' it all and for it to make sense). Thanks so very much you 2, I have a great deal of respect for both of you and not only the amount of knowledge you have but your willingness to continue to share it with every one. <3
I'll post back here once I figure this out with either a "thumbs up" or more questions if any should arise.
Keep up the good work!
r0lZ
17th February 2009, 01:59
What do you think?Maybe I've missed something, but I don't see your point.
If you clone the titles and then change the calls to them, the new titles will be called instead of the old ones. So what? They are still called, and therefore the laser has still to jump to them.
[EDIT] I think I understand what you want to do. With your method, you can safely kill playback of the new titles, and still keep the original titles intact, so that, if they are played from another point in the DVD (for example from a Previews menu), they are still available. Right?
That should work, of course, but I'm not sure it's easier than the "clipboard" method, and anyway, that doesn't solve CakeOrDeath's problem: he wants to skip completely the titles, so that the VTS containing them are not unnecessarily visited.
r0lZ
17th February 2009, 02:11
There might be another interesting method to do easily what CakeOrDeath wants. However, it will works only if the studio logo he wants to keep is alone in its one titleset.
Use Jump To PGC Upon DVD Insert normally, to skip everything (including the logo.) Then, Use Title -> Import First-Play (startup) Clip to import the studio logo. It will be copied to a new VTS, and therefore will consume some disc space, but you can now blank completely the titleset containing the original logo.
The result will be the playback of the logo, followed by the menu, with no unnecessary visits to other titlesets.
blutach
17th February 2009, 03:23
[EDIT] I think I understand what you want to do. With your method, you can safely kill playback of the new titles, and still keep the original titles intact, so that, if they are played from another point in the DVD (for example from a Previews menu), they are still available. Right?
Right!
And I like the idea of the import first play clip, too! Even if it's not the only title in the VTS, he could use VobBlanker to blank it, leaving the rest of the VTS alone.
Regards
CakeOrDeath
17th February 2009, 04:21
However, it will works only if the studio logo he wants to keep is alone in its one titleset.
This might work (in most cases I've seen thus far the studio logo is alone.
The only question is, before it gets to the logo in the past few trail DVDs I'm messing with to try and get a hang of this, trace goes though quite a fewVMGM LU (dummy)s and an 'AudioM' (pops up a short blank clip that's either 0:01 or 0:00 in length) I'm not sure if it's safe to skip, but if I understand what you're saying it wouldn't really be skipping these, they'd still be in the final Jump2PGC (menu) trace. Interesting idea.
After reading these few ideas given by you 2 as well as reading over the other threads (thanks for the links both of you) I'm realizing just how little I know; and how much more there is to learn! heh
A good deal of this is gone over my head but I'm looking up what I don't understand so it's slowly coming together. This might take me a few days to 'grasp' and implement.
Thanks for your help and patients blutach & r0lZ =)
P.S. Would it at all be helpful to post a trace log from start to menu with the 'to-be' cut area marked? I think I recall reading it's a no-no to post that info but I couldn't confirm. Never hurts to ask though.
blutach
17th February 2009, 10:05
Those 1 or 2 seconds of blank screen can always be cut out. I'm a bit hesitant to permit posting a full trace log - see mpucoder's post in the stickies for why.
Give the ideas a go - you can't break anything! :)
http://www.digital-digest.com/~blutach/gl2.gif
Regards
CakeOrDeath
17th February 2009, 11:22
I had read that but wasn't sure if a trace was the same as posting the actual file. Makes sense though and better to be safe. =)
I have quite a bit of investigative work still in order to fully understand the advice given so as I said it might take me a little while but I'll be sure to post back here when done; or if I run into any issues.
@r0lZ Any idea if it's possible to at some point improve on the Jump2PGC feature to have the option to also set a 'start' point (only while in trace to prevent issues) as well as the current 'end' point? Just thinking of ways to automate this process that I'm trying to figure out at hand.
Cheers =) I'll be working on this for a bit, be back later. ;)
r0lZ
17th February 2009, 15:23
I've already thought at adding a function to skip everything between two points, but it's not as easy as it sounds. The main problem is that PgcEdit cannot know if point A is called from various places in the DVD, and therefore cannot adapt easily the procedure to the various situations. There are also several other technical difficulties. (The current Jump2PGC was really difficult to write, even if that case is much more simple.) IMO, the best way is still to try to understand how the navigation works, and modify it manually. That requires some knowledges, I agree!
Note also that the clipboard and "Clear Register Changed flags" functions have been added in the trace mode with that in mind. With these tools and some experience, you will understand that it's not so difficult.
CakeOrDeath
21st February 2009, 03:17
A little update (sorry I couldn't post earlier, I had a long week and I'll admit... I had a difficult time with this task, a great deal of these replies were over my head so it took me awhile to find a solution that I think works quite well. Let me elaborate. =)
There might be another interesting method to do easily what CakeOrDeath wants. However, it will works only if the studio logo he wants to keep is alone in its one titleset.
Use Jump To PGC Upon DVD Insert normally, to skip everything (including the logo.) Then, Use Title -> Import First-Play (startup) Clip to import the studio logo. It will be copied to a new VTS, and therefore will consume some disc space, but you can now blank completely the titleset containing the original logo.
The result will be the playback of the logo, followed by the menu, with no unnecessary visits to other titlesets.
I had an idea sort of similar to this awhile ago but didn't know it could be done in PgcEdit. I had seen "insert first play" but wasn't exactly sure how it worked and later forgot about it until you reminded me (THANKS).
So, here's what I did. If the intro wasn't in it's own titleset I either used DVDFab or DVDShrink to select ONLY the intro (had to use DVDShrink on one test because the intro was hidden from the options on Fab) and 'export [create a dvd]' that clip with no compression in this case.
I then used PgcEdit to finish cleaning up the DVD and set the jump2pgc to jump the main menu, blanked out the old intro along with the skipped content.
And lastly I used the import first play clip... it works like a charm.
I've already thought at adding a function to skip everything between two points, but it's not as easy as it sounds. The main problem is that PgcEdit cannot know if point A is called from various places in the DVD, and therefore cannot adapt easily the procedure to the various situations. There are also several other technical difficulties. (The current Jump2PGC was really difficult to write, even if that case is much more simple.) IMO, the best way is still to try to understand how the navigation works, and modify it manually. That requires some knowledges, I agree!
Makes total sense
Note also that the clipboard and "Clear Register Changed flags" functions have been added in the trace mode with that in mind. With these tools and some experience, you will understand that it's not so difficult.
I tried to wrap my mind around this feature but I couldn't quite figure it out (so I went with the method posted above). BUT I would love to learn more how this works, do you by chance have a link to a guide or post with it explained in more detail?
It would be a good thing to know to work for those times when my way of doing it wouldn't work (things needing to be skipped after play is selected but before the movie starts etc.).
Again thanks so very much Blu and r0lZ <3 to both of you. :D
I'm still working to understand some of the replies in this thread and when I understand it a bit better I'll likely reply again with further questions. I'm a bit pressed for time at the moment though so I'll leave it at this for now. =)
r0lZ
21st February 2009, 04:21
You might be interested in Jeanl's guide here (http://jean.laroche.free.fr/Jumping0.4.3.1/index.html). It explains how to jump to any PGC at startup. It is obsolete now, as the Jump2PGC function does it automatically for you, but I haven't removed the guide as it explains how to do it manually with many details, and it is therefore very instructive. Just remember that in this case the starting PGC is the First-Play PGC. What you want to do is a little bit more complicated, but the method is similar.
The basic principle is this.
If you jump directly from point A to point B, all commands executed between the two points are skipped. Since some commands may set up some registers that will be used after point B, or change some SPRM values (such as the default audio and subpic streams to play), the playback will probably not be correct. Therefore, it is necessary to duplicate the commands that would normally be executed between points A and B just before or after the jump. Of course, duplicating all commands is useless, and even impossible in some cases. So, PgcEdit provides a way to automatically record the necessary commands to duplicate the changes made between A and B.
Concrete example: Go to trace mode, and be sure to open the Watch Registers window (Trace menu -> Watch -> Registers). Trace up to point A. As you can see in the watch window, the GPRMs that have been changed so far are displayed in black, and the unchhanged registers are greyed out. Since that part of the navigation will still be executed, you don't need to record those changes. Therefore, you can force PgcEdit to forget them: select State -> Clear 'Register Changed' Flags. All registers are greyed out again (but their values do not change.) Now, continue to trace to point B. Again, the registers that are modified are displayed in black. When you have reached point B, PgcEdit know what registers have been modified between points A and B. Select Clipboard -> Copy Changed Registers as Commands. PgcEdit copies the commands necessary to initialize the registers that have changed between points A and B to their current values.
Now, you can add a jump in PGC A to jump to PGC B, and paste the commands before the jump. When the DVD will be played and the nav will reach point A, it will clone the state of the changed registers to what it was when you have reached point B, and execute the jump.
Theoretically, it's sufficient to do what you want. However, there are some difficulties. If the PGC A is called from several points in the DVD, it might be called again during the playback of the DVD. Of course, in this case you don't want to jump again to point B. You have therefore to use an unused GPRM to check if it's the first time that point A is reached, and if it's not the case, skip the commands you have added, to continue the navigation normally. Use Info -> GPRMs to find a free GPRM. (I assume GPRM 15 is free in this mini-guide.) Now modify the PGC A commands to something like this:1 if ( gprm(15) != 0 ) then { Goto line 5 }
2 Set gprm(15) =(mov) 1
3 The commands generated by PgcEdit to clone the registers state are here
4 The jump to your target PGC B is here
5 NOP
6 The original commands of PGC A are here
Since GPRM 15 is not used before the nav reaches this PGC, its value is 0. Line 1 checks that, and if the GPRM value is 0, the nav continues to the next line. Line 2 sets the control register to 1, so that the next time the PGC will be called, the commands will be skipped. The next lines initialize the registers to the right values, and execute the jump.
When the nav will go back to this PGC, GPRM 15 will not be 0 any more, and the GOTO in line 1 will be executed. The navigation will therefore continue normally.
There are other potential problems, such as:
- You cannot jump directly to your target PGC if point A and B are in different VTS. You have to create a VMGM dummy to jump to that dummy and bounce to your target PGC.
- You cannot jump to your target menu PGC because it is not an entry PGC (Root, Subpic, Audio, Angle or Chapter Menu PGC.) You have to jump to an entry PGC and bounce to the real target from that PGC, or assign, for example, the Angle Menu to your target PGC.
- If PGC A is in the VMGM and the audio, subpic or angle streams have been modified between points A and B, you cannot paste the SetSTN command as it is illegal in the VMG. Usually, you can safely delete it, but in some cases, you will have to add that command elsewhere.
- Etc...
I can't explain everything. Try the method, and if you have some trouble, I'll try to explain how you can solve the problem.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.