Log in

View Full Version : Jeanl's guide, "Jumping straight to the main menu or the movie with PgcEdit"


Pages : [1] 2

lamster
15th November 2004, 03:58
What if I don't have a free GPRM?

I can't think of a solution that's easy to describe in a guide at this point.
The way I would do it is look at the target PGC (i.e., the VTST PGC if you're going straight to the movie, or the VTSM PGC if you're going straight to a menu), and see if there's a register that gets set before it's used. If so, then I'd use that register, set it to an unlikely value in the first play PGC, and check for that value in the target PGC.

E.g., the Title 1 in Shrek starts out:
********** pre commands:
[00 A1 00 03 00 0A 00 06] 1 if ( gprm(3) == 10 ) then { Goto line 6 }
[79 00 00 01 00 03 00 00] 2 Set gprm(1) &=(and) 3
[41 00 00 81 00 00 00 00] 3 (SetSTN) Set Audio stream = gprm(1)
[79 00 00 02 00 43 00 00] 4 Set gprm(2) &=(and) 67
[41 00 00 00 82 00 00 00] 5 (SetSTN) Set Sub-picture stream = gprm(2)
[71 00 00 07 00 00 00 00] 6 Set gprm(7) =(mov) 0
[71 00 00 03 00 0A 00 00] 7 Set gprm(3) =(mov) 10
[51 00 00 00 00 81 00 00] 8 (SetSTN) Set Angle = 1
[71 00 00 00 00 02 00 00] 9 Set gprm(0) =(mov) 2
[...]
Note that in line 6, register 7 gets set; that it is not referenced by this PGC before this point; and that there is nothing like a goto or break that would prevent line 6 from being reached. So I'd initialize gprm 7 to, say, hex DEED in the first play PGC:
[71 00 00 07 DE ED 00 00] 7 Set gprm(7) =(mov) 57069

Then, for your step four, use this register and "magic value" as the test.
[00 B1 00 07 DE ED 00 04] 1 if ( gprm(7) != 57069 ) then { Goto line 4 }

2COOL
15th November 2004, 05:00
@jeanl

Just because you have all GPRMs used doesn't mean they ALL have been set when you get to the main menu. If you look at a GPRM and it's still greyed out, then it hasn't been set. With that said, I'll used GPRM 6 as an example. PgcEdit says it's used but not when you normally go to the main menu.

Note: I haven't tested this yet but it looks logical.

In First Play, I would set gprm(6) to 12345. I just used a random number.

[71 00 00 06 30 39 00 00] 2 Set gprm(6) =(mov) 12345

In your Pre commands for your movie Title, I would use this

[00 B1 00 06 30 39 00 03] 1 if ( gprm(6) != 12345 ) then { Goto line 3 }
[00 02 00 00 00 00 00 00] 2 Break
[71 00 00 0E 00 01 00 00] 3 Set gprm(6) =(mov) 0
[00 00 00 00 00 00 00 00] 4 NOP

[EDIT]Pre Command 3 is there to make sure that gprm(6) is back to the value it was.

My way is different from what lamster mentions.
Originally posted by lamster
see if there's a register that gets set before it's used. I'm looking for a register that hasn't been set.

jeanl
15th November 2004, 06:08
I agree with both of you! Those are two good solutions (in fact I suspect they're identical, but lamster's is more generic because it's OK if his register has been used before, as long as it's not used in this PGC before it's set), normally they shouldn't mess things up, provided that the value you set in the first play is really "random", i.e. unlikely to be used again.

But here's the catch (pointed out by r0lZ a while back) when I suggested that to him:
What if navigation goes back to First-Play PGC?! Then the register gets set again, and we'll go straight to the movie again even though that may not be what we should be doing at this point. r0lZ once told me that he had seen DVDs which did that (I haven't!), but then that's easy to check with the nifty cross-call info in PgcEdit.

So, you're right, we could do that if we can make sure that we never go back to first-play again.

Yet another solution is to use one of the registers that has been set when you get to the top of the precommands. Only if this register is 0 do you execute the register settings commands, and you don't set it in the first-play.
In my view, this is slightly better because if you ever go back to the first-play (and if that register hasn't been reset to 0) you won't go to the movie again. But then, there's no guarantee that it won't have been reset to 0 somehow by the time you go back to first-play.
Definitely not easy to explain all this to newbies, but good thinking you guys! ;)
Jeanl

2COOL
15th November 2004, 06:13
Well, in that case, then I would use this in First Play PGC

[71 B0 06 06 00 00 00 00] if ( gprm(6) != 0 ) then { Set gprm(6) =(mov) 0 }

jeanl
15th November 2004, 08:39
Originally posted by 2COOL
Well, in that case, then I would use this in First Play PGC

[71 B0 06 06 00 00 00 00] if ( gprm(6) != 0 ) then { Set gprm(6) =(mov) 0 }
but wait, what if setting the register to 0 screwed up something? (I agree it's unlikely, but still) what if gprm(6) was non zero on purpose the second time you go to first-play. You reset it to zero, you don't execute the direct jump, but things will not be exactly the way they would be in the original DVD right?

I know we're splitting hair here. First of all, I haven't seen a DVD that goes back to first-play, but I trust that there are some out there (hey, we've all seen the way they master! it can be pretty incredible). Second, it's unlikely that you'd mess things up, but it's not guaranteed that you wouldn't, so that's why I didn't like to put that in the guide. However, I could add your suggestions, mentioning that it's very very likely to work, but may not in some weird scenarios (which we can test, because if we never go back to first-play, we're scott-free!).

Jeanl

2COOL
15th November 2004, 09:17
Just do a PgcEdit search for "First" for First Play PGC jumping and if you find any, just say "this edit/guide is not for you". ;)

lamster
15th November 2004, 17:00
Originally posted by 2COOL
In First Play, I would set gprm(6) to 12345. I just used a random number.

[71 00 00 06 30 39 00 00] 2 Set gprm(6) =(mov) 12345

Note that your "random number" spells '09' in ASCII. I'd pick something above 32767; you're less likely to conflict with something present on the DVD.
My way is different from what lamster mentions.
I'm looking for a register that hasn't been set.
You're looking for a register that hasn't been set via the navigation you used. I'm looking for one where we definitely don't care what value it has coming in, because the PGC modifies it without examining the current value. I think my way is better if such a register exists (which of course might not be the case).

Another approach would be to analyze the register usage, and see what register's are only used in other areas of the DVD. But this probably goes beyond the scope of an introductory guide.

lamster
15th November 2004, 17:03
Originally posted by 2COOL
Well, in that case, then I would use this in First Play PGC

[71 B0 06 06 00 00 00 00] if ( gprm(6) != 0 ) then { Set gprm(6) =(mov) 0 }
You probably meant ... then { Set gprm(6) =(mov) 12345 }, right? That sets the register to the "magic value" if and only if it hasn't already been set to something else. A nice addition.

(BTW - I have run into one DVD where it jumped to the First Play PGC; I hadn't even known you could do that previously.)

jeanl
15th November 2004, 20:26
@2COOL and lamster

I will add your suggestions to the guide tonight, mentioning the caveat that you must check you don't go to first-play PGC later on. This is better than leaving the user to ponder what to do next if he/she can't find a free gprm...
Jeanl

Chetwood
4th December 2004, 10:47
Jeanl, I've been trying to follow your guide on Jumping straight to the main menu or the movie with (http://jean.laroche.free.fr/Jumping0.4.3.1/) and I've immediately run into problems so I'm asking in this thread as you suggested.

I'm ripping the first season of 'Six Fet Under' which has four complete menu sets in english, german, spanish, italian. I want to skip the HBO intro and jump straight to the german menu cause this is the only one I'm going to keep. So I set a playback breakpoint at this menu which is designated as RootM in 'VTSM 2, Lu2 (de)'. However, when I use the trace method, PgcEdit displays the english menu without offering me any chance to intervene. If I playback this DVD in my standalone it plays the german menu, I guess this is because my standalone's language settings are all set to german. How can I inform PgcEdit's trace mode that it is running on a German system? I assume I would have to set the SPRMs somehow?

I'd like to use your method B, 2) on this DVD so if you can spend any time helping me out it'd be great. I've mailed you an URL where you can download the zipped ifos, in case you want me to paste some stuff here so everyone else can learn from your assistance please let me know. Thanks.

jeanl
4th December 2004, 17:58
Hi Chetwood!
Glad to read you on this forum, I checked out multishrink a while back, and I was duly impressed! OK. You can set your "player" preferences in PgcEdit, in the trace window in the "setup" menu, "setup/virtual player setp". In particular, you can select your preferred audio and menu languages, and you'd set that to "de" (if you forget the codes for specific languages, they're in PgcEdit's Help menu - r0lZ has thought of everything).
Setup your player and give it a try... It should work then. If it doesn't then maybe that's a question for brother r0lZ!
Post back if you enconter other problems...
;)
Jeanl

jeanl
4th December 2004, 18:08
Hi Chetwood!
I downloaded your IFOs, set PgcEdit to "de" and ran the trace, and that landed me in the middle of the german menus. So everything should be fine for you.
I will make a note in the guide about that. I hadn't thought of it!

As for jumping straight to the menu using the technique B2, it's not as straightforward if your menu isn't one that you can jump straight to (i.e. it's not a root, subtitle etc). In your case, I can see in your IFOs that you could jump to VTSM2 LU2, 1. Hopefully that's what you have in mind... Post back if you can't get it to work (or if you can!!!)

Jeanl

Chetwood
4th December 2004, 21:02
Originally posted by jeanl
I checked out multishrink a while back, and I was duly impressed!
OK. You can set your "player" preferences in PgcEdit, in the trace window in the "setup" menu, "setup/virtual player setp".

Well, it's not that I know anything about DVD commands like you guys do but thanks anyway. And AARGH! because of your tip, my question was a RTFM! Still, after I set everything to german I still have to problems which you might be able to follow since you downloaded my ifos:

1) I do not have a free GPRM so I deleted the only one that occured only once which was GPRM 6 and I'm not sure if this deletion caused any trouble later

2) as said before I wanna use your B 2) method, which means that I have to paste


[00 B1 00 0E 00 00 00 03] 1 if ( gprm(14) != 0 ) then { Goto line 3 }
[30 06 00 01 04 83 00 00] 2 (JumpSS) Jump to VTSM 4, Root menu (TTN 1)


into the First-play PGC. But where exactly? After these two lines that already were in the First-play PGC?


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[30 02 00 00 00 07 00 00] 2 (JumpTT) Jump to Title 7


Cause then I wouldn't get to jump to line 3 as line 2 already jumps to Title 7. I've tried to paste it as line 2 and 3 and changed the values to represent my use of GPRM 6 which looked like this:


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[00 B1 00 06 00 00 00 04] 2 if ( gprm(6) != 0 ) then { Goto line 4 }
[30 06 00 01 02 83 00 00] 3 (JumpSS) Jump to VTSM 2, Root menu (TTN 1)


but line 2 is colored in red when I click on it. Any ideas what's wrong? Thanks again.

BTW, this link from your guide isn't working:

http://jean.laroche.free.fr/Jumping0.4.3.1/Jumping.html#GPRM

However, I got the GPRM info from this link

http://jean.laroche.free.fr/Jumping/Jumping.html#GPRM

jeanl
4th December 2004, 21:33
Originally posted by Chetwood
Well, it's not that I know anything about DVD commands like you guys do but thanks anyway. And AARGH! because of your tip, my question was a RTFM! Still, after I set everything to german I still have to problems which you might be able to follow since you downloaded my ifos:

1) I do not have a free GPRM so I deleted the only one that occured only once which was GPRM 6 and I'm not sure if this deletion caused any trouble later

well if it's only set and never read, you're good to go. If it's set and read somewhere then you might have problems.

2) as said before I wanna use your B 2) method, which means that I have to paste


[00 B1 00 0E 00 00 00 03] 1 if ( gprm(14) != 0 ) then { Goto line 3 }
[30 06 00 01 04 83 00 00] 2 (JumpSS) Jump to VTSM 4, Root menu (TTN 1)


into the First-play PGC. But where exactly? After these two lines that already were in the First-play PGC?


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[30 02 00 00 00 07 00 00] 2 (JumpTT) Jump to Title 7



Paste them at the very top, so they're the first two lines.



Cause then I wouldn't get to jump to line 3 as line 2 already jumps to Title 7. I've tried to paste it as line 2 and 3 and changed the values to represent my use of GPRM 6 which looked like this:


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[00 B1 00 06 00 00 00 04] 2 if ( gprm(6) != 0 ) then { Goto line 4 }
[30 06 00 01 02 83 00 00] 3 (JumpSS) Jump to VTSM 2, Root menu (TTN 1)


but line 2 is colored in red when I click on it. Any ideas what's wrong? Thanks again.

A line that's colored in red indicates a command that's problematic. In your case, you have a "goto line 4" but you don't have a line 4! So PgcEdit is smart enough to let you know. If you paste at the very top, the goto line 3 will point to the original first line and everything will be OK.


BTW, this link from your guide isn't working:

http://jean.laroche.free.fr/Jumping0.4.3.1/Jumping.html#GPRM

However, I got the GPRM info from this link

http://jean.laroche.free.fr/Jumping/Jumping.html#GPRM
Thanks, I'll look into it!

Jeanl

Chetwood
5th December 2004, 10:24
Originally posted by jeanl
well if it's only set and never read, you're good to go. If it's set and read somewhere then you might have problems.


Let me rephrase that: is there a way to determine whether it is read somewhere with PgcEdit? I mean, I didn't even know where to look for the GPRM 6 (the one GPRM that was set only once) but I accidentally stumbled over it in the first Title menu.

Paste them at the very top, so they're the first two lines.


Great, this worked, but even using method 2 the root menu's intro got skipped. I rechecked it and I realized (*slowly* getting a hang of what I am supposed to be doing) that the intro to the root menu was a titleset which usually can't be jumped to from First-Play PGC so I changed it to an Angle menu cause there's none of this type on the DVD. But what if ppl would accidentally hit the angle menu key on their remote? Would they jump straight to this menu abd how could I stop them from doing so when their standalone ignores UPOs?

While doing so I got a message from PgcEdit:


There are several LUs in this VTSM.

Do you want to modify the PGC type in each LU? (recommended)



which I answered with YES and which seemed to work fine upon playback in PowerDVD. However, when I opened this manipulated DVD again to get rid of those FBI warnings that were displayed AFTER playback of the last episode just before jumping back to the root menu I got another warning message:



There are different commands in the various PGCs of the menu LUs of the VTST 2 domain.

This is somewhat unusual, and may cause problems with the 'Set Menu Type' and 'Copy LU Commands' utilities.



which seems logical since I have this root menu in 4 different languages and only changed the german one. However, I'm not sure which is the best way to go here:


simply blank out those menus with still images in DVD Shrink? what would happen if the DVD would be played back in a standalone set to english?
completely erase those menus in PgcEdit telling the standalone to use the german menu no matter what language it's set to. How?


I've checked the post commands of the last episode, which looks a bit odd to me being the newbie that I am:


[30 08 00 08 08 C0 00 00] 7 (CallSS) Call the VMGM PGC 8, resume cell 8


which is this


[30 02 00 00 00 0A 00 00] 1 (JumpTT) Jump to Title 10


which jumps to


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[71 00 00 00 00 50 00 00] 2 Set gprm(0) =(mov) 80
********** post commands:
[71 00 00 00 00 28 00 00] 1 Set gprm(0) =(mov) 40
[71 00 00 01 04 00 00 00] 2 Set gprm(1) =(mov) 1024
[30 08 00 07 0C C0 00 00] 3 (CallSS) Call the VMGM PGC 7, resume cell 12


So why not jump straight to title 10?

Since I don't know what these gprm commands in title 10 do, could I just add a new line 3 in the pre-commands that jumps to the first line of the post commands thereby setting registers that I might need but effectively skipping the FBI warning playback?

Thanks again.

r0lZ
5th December 2004, 18:26
Originally posted by 2COOL
Just do a PgcEdit search for "First" for First Play PGC jumping and if you find any, just say "this edit/guide is not for you". ;) You may also use the Info -> Calls Cross References menu. You will see if the FP-PGC is called, and by which PGC and command.

jeanl
5th December 2004, 18:30
Originally posted by Chetwood
Let me rephrase that: is there a way to determine whether it is read somewhere with PgcEdit? I mean, I didn't even know where to look for the GPRM 6 (the one GPRM that was set only once) but I accidentally stumbled over it in the first Title menu.

You can search for a gprm in the complete DVD using the search field at the bottom of the main window. Type in gprm(6) and hit the >> button to go to the next place where it appears.

Great, this worked, but even using method 2 the root menu's intro got skipped. I rechecked it and I realized (*slowly* getting a hang of what I am supposed to be doing) that the intro to the root menu was a titleset which usually can't be jumped to from First-Play PGC so I changed it to an Angle menu cause there's none of this type on the DVD. But what if ppl would accidentally hit the angle menu key on their remote? Would they jump straight to this menu abd how could I stop them from doing so when their standalone ignores UPOs?

Yes, but standalone DVDs don't tend to ignore PUOs, so it shouldn't be a problem in practice.

However, I'm not sure which is the best way to go here:

simply blank out those menus with still images in DVD Shrink? what would happen if the DVD would be played back in a standalone set to english?
completely erase those menus in PgcEdit telling the standalone to use the german menu no matter what language it's set to. How?



mmm that's a question for you to answer. If I were you, I would try to only modify the "german" version of the DVD, so it would play as the original when put in an english player. But that might be a bit of extra work, because you'd have to check the sprm() that holds the default language. Otherwise, you could repeat your modifications in all the language units, and the DVD would play exactly the same way no matter the language settings... As to how to use the german menu no matter what, I'm not entirely sure you can actually tell the player to do that, I wonder if that behavior isn't "automatic" in the player. (in other words, if you have a command to jump to the root menu, I think the player automatically selects the appropriate LU given your defaults, but I'm not 100% sure about that, you might want to ask in a new topic in the forum.

So why not jump straight to title 10?

Since I don't know what these gprm commands in title 10 do, could I just add a new line 3 in the pre-commands that jumps to the first line of the post commands thereby setting registers that I might need but effectively skipping the FBI warning playback?

Thanks again.
That's a good idea although you can't do it exactly that way: There are no commands in the DVD specs to jump from pre-commands to postcommands (too bad!). So what you can do instead (which is what PgcEdit does for your when you ask "kill playback" ) is copy the precommands at the end of the postcommands so they're executed before video playback. IT gets a bit more complicated when you have gotos in the precommand area but PgcEdit takes care of that for you.
So in short, easiest way is to hit the "kill PGC playback" icon in the toolbar (the crossed-out movie strip) on the PGC of title 10. (you can also do that with a right-click on the pgc).

Jeanl

r0lZ
5th December 2004, 18:31
Originally posted by jeanl
But here's the catch (pointed out by r0lZ a while back) when I suggested that to him:
What if navigation goes back to First-Play PGC?! Then the register gets set again, and we'll go straight to the movie again even though that may not be what we should be doing at this point. r0lZ once told me that he had seen DVDs which did that (I haven't!), but then that's easy to check with the nifty cross-call info in PgcEdit. I have the Calls Crossrefs for Snow White on screen, and I see that FP-PGC is called... by 14 different commands!

Also, a DVDShrink reauthored DVD will jump back to FP-PGC after each title. (But you have many unused GPRMs availables in that case.)

r0lZ
5th December 2004, 18:37
Originally posted by Chetwood
Let me rephrase that: is there a way to determine whether it is read somewhere with PgcEdit? I mean, I didn't even know where to look for the GPRM 6 (the one GPRM that was set only once) but I accidentally stumbled over it in the first Title menu. Find Unused GPRMs will report the number of times each GPRM is used in the DVD. If you find a GPRM which is used only once, you can delete the reference to that GPRM, and use it safely. It will probably not be read anywhere in the DVD (although it may be used in BOV buttons, still not implemented in PgcEdit).

(For old PgcEdit users: Find Unused GPRMs searches now also in the menubuttons commands.)

jeanl
5th December 2004, 18:40
r0lZ,
what of the question about "always using the german menus"? I seem to remember that you can't change that behavior, that it's hard-coded in the player that the appropriate LU will be used automatically based on the preferrece menu langage setup.
Is that right?
Jeanl

r0lZ
5th December 2004, 18:51
Originally posted by jeanl
Otherwise, you could repeat your modifications in all the language units, and the DVD would play exactly the same way no matter the language settings... You can use the Copy LU cmds to other LUs to automatize this procedure. When the german menu works well, use the function to copy the commands from the german menu to the other ones. Just a couple of clicks! :)

As to how to use the german menu no matter what, I'm not entirely sure you can actually tell the player to do that, I wonder if that behavior isn't "automatic" in the player. (in other words, if you have a command to jump to the root menu, I think the player automatically selects the appropriate LU given your defaults, but I'm not 100% sure about that, you might want to ask in a new topic in the forum.That's right. There is no way to force the player to use another LU by VM Commands. The only way to change the default LU is to change the player's language preferences.
But, on some players without a language preference menu, the first LU is always played. To be sure to use the german menu in that case, then you must be sure that the german menu is the first one. You may use the Swap Menu LUs for this purpose.

If you don't want to keep the other menu languages, then you should Strip the unwanted LUs with IfoEdit (Menu Extras button, with the Strip Language Unit's (LUs) option checked).

Chetwood
6th December 2004, 19:18
Originally posted by jeanl
Yes, but standalone DVDs don't tend to ignore PUOs, so it shouldn't be a problem in practice.



Actually, 3 of my friends do have players that completely ignore UPOs by default, that's why I brought it up. However, I haven't made up my mind yet considering what I'm about to do with the other LUs.

I'm also a bit confused by the GPRM-stuff. How do I know which GPRM serves which purpose and what kind of values it can be assigned? Would I have to read and understand the complete dvd-replica.com? E.g., I killed the FBI warning PGC played back after the last episode, which commands look like this


[71 00 00 01 04 00 00 00] 1 Set gprm(1) =(mov) 1024
[71 00 00 00 00 50 00 00] 2 Set gprm(0) =(mov) 80
[00 00 00 00 00 00 00 00] 3 NOP
[71 00 00 00 00 28 00 00] 4 Set gprm(0) =(mov) 40
[71 00 00 01 04 00 00 00] 5 Set gprm(1) =(mov) 1024
[30 08 00 07 0C C0 00 00] 6 (CallSS) Call the VMGM PGC 7, resume cell 12
********** post commands:
[71 00 00 00 00 28 00 00] 1 Set gprm(0) =(mov) 40
[71 00 00 01 04 00 00 00] 2 Set gprm(1) =(mov) 1024
[30 08 00 07 0C C0 00 00] 3 (CallSS) Call the VMGM PGC 7, resume cell 12



Killing the PGC copied post-commands 1-3 to pre-commands 4-6 effectively skipping playback (and removing content as well?). The PGC7 then jumps back to the Root menu of VTSM2 which has a lot of conditions:


[00 A1 00 07 00 00 00 07] 1 if ( gprm(7) == 0 ) then { Goto line 7 }
[00 A1 00 07 00 03 00 07] 2 if ( gprm(7) == 3 ) then { Goto line 7 }
[61 00 00 0E 00 81 00 00] 3 Set gprm(14) =(mov) sprm(1:Audio stream number)
[00 A1 00 0E 00 04 00 07] 4 if ( gprm(14) == 4 ) then { Goto line 7 }
[61 00 00 0A 00 0E 00 00] 5 Set gprm(10) =(mov) gprm(14)
[00 A1 00 00 03 E8 00 19] 6 if ( gprm(0) == 1000 ) then { Goto line 25 }
[00 A1 00 00 00 3C 00 1C] 7 if ( gprm(0) == 60 ) then { Goto line 28 }
[00 A1 00 00 00 C8 00 1F] 8 if ( gprm(0) == 200 ) then { Goto line 31 }
[00 B1 00 00 00 64 00 0D] 9 if ( gprm(0) != 100 ) then { Goto line 13 }
[71 00 00 00 00 00 00 00] 10 Set gprm(0) =(mov) 0
[20 06 00 00 00 00 00 01] 11 LinkPGN Program 1
[20 A4 00 08 00 01 00 0D] 12 if ( gprm(8) == 1 ) then { LinkPGCN PGC 13 }
[20 A4 00 08 00 02 00 09] 13 if ( gprm(8) == 2 ) then { LinkPGCN PGC 9 }
[00 A1 00 00 00 32 00 15] 14 if ( gprm(0) == 50 ) then { Goto line 21 }
[20 A4 00 00 00 28 00 02] 15 if ( gprm(0) == 40 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0A 00 09] 16 if ( gprm(0) == 10 ) then { LinkPGCN PGC 9 }
[20 A4 00 00 00 14 00 0A] 17 if ( gprm(0) == 20 ) then { LinkPGCN PGC 10 }
[20 A4 00 0F 00 01 00 0D] 18 if ( gprm(15) == 1 ) then { LinkPGCN PGC 13 }
[20 A4 00 0F 00 02 00 0E] 19 if ( gprm(15) == 2 ) then { LinkPGCN PGC 14 }
[71 00 00 00 00 00 00 00] 20 Set gprm(0) =(mov) 0
[46 00 00 00 00 01 00 00] 21 (SetHL_BTN) Set Highlighted Button =(mov) gprm(1)
[71 00 00 01 04 00 00 00] 22 Set gprm(1) =(mov) 1024
[00 02 00 00 00 00 00 00] 23 Break
[71 00 00 00 00 00 00 00] 24 Set gprm(0) =(mov) 0
[20 04 00 00 00 00 00 05] 25 LinkPGCN PGC 5
[00 02 00 00 00 00 00 00] 26 Break
[71 00 00 00 00 00 00 00] 27 Set gprm(0) =(mov) 0
[20 06 00 00 00 00 00 01] 28 LinkPGN Program 1
[00 02 00 00 00 00 00 00] 29 Break
[30 03 00 00 00 05 00 00] 30 (JumpVTS_TT) Jump to TTN 5 in this VTS
[00 02 00 00 00 00 00 00] 31 Break
********** post commands:
********** cell commands:
[20 06 00 00 00 00 00 01] 1 LinkPGN Program 1


As gprm(0) equals 40 it jumps to the episode selection menu but I want to stay in this RootMenu cause it offers episode/language/specials selection. To achieve this behaviour I deleted

[71 00 00 00 00 28 00 00] 4 Set gprm(0) =(mov) 40


so gprm(0) stays at 80 (whatever this means), the if-condition isn't met and I stay in the RootMenu. Fine, but the highlighted button now is episode selection, the same one that was highlighted upon entering this menu for the first time. But now I'm arriving there after having watched all episodes so it would make more sense to have the specials button highlited instead. Now how would I do that? Adding a new line that says:

if gprm(0) == 80 stay in RootMenu and highlight button 2

IOW, how do I know if I can safely use this gprm? DVD-Replica extensively again?

Originally posted by r0lZ
But, on some players without a language preference menu, the first LU is always played. To be sure to use the german menu in that case, then you must be sure that the german menu is the first one. You may use the Swap Menu LUs for this purpose.

If you don't want to keep the other menu languages, then you should Strip the unwanted LUs with IfoEdit (Menu Extras button, with the Strip Language Unit's (LUs) option checked).

Swapping works fine, however I ran into problems with Ifoedit: I didn't expect to have to open each titleset's ifo instead of only the video_ts to strip the unwanted LUs. And when I do so on those 3 other LUs, do I get rid of the content as well so that I don't have to blank them out with PgcEdit or DVD Shrink (still image)?

jeanl
6th December 2004, 19:30
IOW, how do I know if I can safely use this gprm? DVD-Replica extensively again?

No, DVD-replica won't tell you!!! You have to understand that gprm (unlike sprms) can be used for anything. They're just memories that the DVD player makes available for the DVD to use at will. Some DVD authoring tools use few of them, some use them all, but they all use them in their own (sometimes strange) manner. That means that it's usually difficult to understand how each gprm is used in a particular DVD, and if you do understand, it will be used very differently in the next DVD! (unless it was created with the same tool, you sometimes see such "trends").
What you're trying to do will be difficult and error-prone. Changing arbitrary commands in the pre-command/post-command area is tricky because you don't know exactly how the gprm you modify is used in the rest of the DVD, so there's a chance that things will be messed up. If you spend enough time on it, you might be able to do it though, but it may not be as straightforward as you would like it to be!!!
PgcEdit helps a lot, but can't help you quickly figure out what's the use of a particular gprm().

So in short, you don't know if you can safely modify the program flow of your DVD. Best solution is to try, and play in a soft DVD, trying every possible scenario (which can take quite a while!). Or better yet, leave it the way it is ;).

Jeanl

r0lZ
6th December 2004, 19:50
Originally posted by Chetwood
As gprm(0) equals 40 it jumps to the episode selection menu but I want to stay in this RootMenu cause it offers episode/language/specials selection. To achieve this behaviour I deleted

[71 00 00 00 00 28 00 00] 4 Set gprm(0) =(mov) 40


so gprm(0) stays at 80 (whatever this means), the if-condition isn't met and I stay in the RootMenu. Fine, but the highlighted button now is episode selection, the same one that was highlighted upon entering this menu for the first time. But now I'm arriving there after having watched all episodes so it would make more sense to have the specials button highlited instead. Now how would I do that? Adding a new line that says:

if gprm(0) == 80 stay in RootMenu and highlight button 2Try to change the 2nd. line 'Set gprm(1) =(mov) 1024' to 'Set gprm(1) =(mov) 2048'. This may work, as the buttons numbers values are actually 1024 * number of button. So, the GPRM 1 looks like it is used to store the button number to be used later, in the menu. But as jeanl explained, you are never sure, unless you analyse and understand all the commands in all PGCs of the DVD!

Swapping works fine, however I ran into problems with Ifoedit: I didn't expect to have to open each titleset's ifo instead of only the video_ts to strip the unwanted LUs. And when I do so on those 3 other LUs, do I get rid of the content as well so that I don't have to blank them out with PgcEdit or DVD Shrink (still image)? In IfoEdit, you have to load the IFO of the titleset with the menu you want to strip.
And yes, the video contents of the stripped LUs will be removed from the VOBs by IfoEdit. (This is what 'Strip' means ;))

2COOL
7th December 2004, 00:22
@Chetwood

How about trying this?

OLD:

[71 00 00 00 00 28 00 00] 4 Set gprm(0) =(mov) 40

NEW:

[71 00 00 00 00 64 00 00] 4 Set gprm(0) =(mov) 100

This would satisfy your VTSM 2's pre commands.
[00 B1 00 00 00 64 00 0D] 9 if ( gprm(0) != 100 ) then { Goto line 13 }
[71 00 00 00 00 00 00 00] 10 Set gprm(0) =(mov) 0
[20 06 00 00 00 00 00 01] 11 LinkPGN Program 1 //Root menu since grpm(0) = 100 then you should go to pre # 10 next.


You provide a grey area with your VMGM PGC 7 since all you mentioned was after FBI warning PGC > VMGM PGC 7 > VTSM2, root. What's your command table look like in VMGM PGC 7?

Chetwood
7th December 2004, 16:07
Originally posted by 2COOL

How about trying this?

OLD:

[71 00 00 00 00 28 00 00] 4 Set gprm(0) =(mov) 40

NEW:

[71 00 00 00 00 64 00 00] 4 Set gprm(0) =(mov) 100

This would satisfy your VTSM 2's pre commands.


I did it and it jumped to the right menu but the button 2 instead of 3 was highlighted, even when I changed '5 Set gprm(1) =(mov) 1024' to 3072. Only when I deleted this line, effectively keeping gprm(0) at 80 it would jumpt to the correct menu and select the third button as intended. Haven't noticed any repercussions so far...



You provide a grey area with your VMGM PGC 7 since all you mentioned was after FBI warning PGC > VMGM PGC 7 > VTSM2, root. What's your command table look like in VMGM PGC 7?

I did so because I thought it was unimportant considering what is in there which is this:


[30 06 00 01 02 83 00 00] 1 (JumpSS) Jump to VTSM 2, Root menu (TTN 1)


@r0lZ

Two things I noticed with latest version of PgcEdit (0.4.3.1):


when I put a hotkey on pgcedit.exe I can start it with CTRL-ALT-P but it does open as a regular window and not maximized as I specified in the .lnk-file

when I switch over to trace mode the toolbar is switched off automatically so I got to turn it on again with VIEW | toolbar.


Any ideas?

r0lZ
7th December 2004, 16:20
Originally posted by Chetwood
@r0lZ

Two things I noticed with latest version of PgcEdit (0.4.3.1):


when I put a hotkey on pgcedit.exe I can start it with CTRL-ALT-P but it does open as a regular window and not maximized as I specified in the .lnk-file

when I switch over to trace mode the toolbar is switched off automatically so I got to turn it on again with VIEW | toolbar.


Any ideas? This is probably because I force the windows to be opened at the last saved position. I'll have a look...
This is normal. But you can turn this behavior off with the Trace -> Hide Toolbars in Trace mode? option (also available in the Trace Setup menu).

Chetwood
7th December 2004, 18:52
Originally posted by r0lZ
This is probably because I force the windows to be opened at the last saved position. I'll have a look...


Since I always maximize after opening, this would be my last saved position.


This is normal. But you can turn this behavior off with the Trace -> Hide Toolbars in Trace mode? option (also available in the Trace Setup menu).

Damn, I overlooked this several times obviously.

Well, I guess I just risk my DVD playback to screw up deleting this one GPRM line unless somone else comes up with another suggestion. In any case, thanks to all.

r0lZ
7th December 2004, 19:03
Originally posted by Chetwood
Since I always maximize after opening, this would be my last saved position. No. The position is never saved when the window is maximized. But you may try to enlarge it to almost the maximum size, and save that position.
BTW, the fault is from Tcl/Tk. I have no way to know that the window must be opened in maximized mode. Sorry.

Chetwood
8th December 2004, 08:07
Originally posted by r0lZ
No. The position is never saved when the window is maximized. But you may try to enlarge it to almost the maximum size, and save that position.
BTW, the fault is from Tcl/Tk. I have no way to know that the window must be opened in maximized mode. Sorry.

Really? I always thought this in an Internet Explorer only bug, where you had to press CTRL when closing the last window to retain this size as default. Alright, I don't use IE anymore and I've used this method for PgcEdit which works fine, thanks.

Chetwood
17th December 2004, 17:32
Well, everything worked so far with my previous rip now I'm trying somethiong new and guess what, it doens'twork as intended!

I've manipulated the ifos so that upon entering the DVD I'm jumping staright to the main menu which has 5 buttons, 4 eps and one special features button. Now when I click on an ep instead of jumping straight to the ep I'm getting another menu where I can select the ep's settings. I totally wanna skip this but it does not work. Maybe you have got some ideas, here's the root menu:



********** pre commands:
[00 B1 00 00 00 00 00 0D] 1 if ( gprm(0) != 0 ) then { Goto line 13 }
[71 00 00 00 00 01 00 00] 2 Set gprm(0) =(mov) 1
[71 00 00 02 64 65 00 00] 3 Set gprm(2) =(mov) 25701 ("de")
[71 00 00 03 00 00 00 00] 4 Set gprm(3) =(mov) 0
[71 00 00 04 00 00 00 00] 5 Set gprm(4) =(mov) 0
[71 00 00 05 00 00 00 00] 6 Set gprm(5) =(mov) 0
[71 00 00 06 00 01 00 00] 7 Set gprm(6) =(mov) 1
[71 00 00 0B 00 00 00 00] 8 Set gprm(11) =(mov) 0
[71 00 00 0F 00 00 00 00] 9 Set gprm(15) =(mov) 0
[51 00 00 81 C2 00 00 00] 10 (SetSTN) Set Audio stream = 1 ; Set Sub-picture stream = 2, on
[56 00 00 00 04 00 00 00] 11 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)
[00 02 00 00 00 00 00 00] 12 Break
[00 00 00 00 00 00 00 00] 13 NOP
[00 A1 00 0D 00 09 00 24] 14 if ( gprm(13) == 9 ) then { Goto line 36 }
[20 D4 00 0F 00 00 00 07] 15 if ( gprm(15) > 0 ) then { LinkPGCN PGC 7 }
[71 00 00 0F 00 00 00 00] 16 Set gprm(15) =(mov) 0
[20 A7 00 0D 00 01 00 02] 17 if ( gprm(13) == 1 ) then { LinkCN Cell 2 }
[20 A7 00 0D 00 02 00 03] 18 if ( gprm(13) == 2 ) then { LinkCN Cell 3 }
[20 A7 00 0D 00 03 00 04] 19 if ( gprm(13) == 3 ) then { LinkCN Cell 4 }
[20 A7 00 0D 00 04 00 05] 20 if ( gprm(13) == 4 ) then { LinkCN Cell 5 }
[00 A1 00 0D 00 05 00 1C] 21 if ( gprm(13) == 5 ) then { Goto line 28 }
[00 A1 00 0D 00 06 00 1E] 22 if ( gprm(13) == 6 ) then { Goto line 30 }
[00 A1 00 0D 00 07 00 20] 23 if ( gprm(13) == 7 ) then { Goto line 32 }
[00 A1 00 0D 00 08 00 22] 24 if ( gprm(13) == 8 ) then { Goto line 34 }
[20 A6 00 0D 00 0A 14 01] 25 if ( gprm(13) == 10 ) then { LinkPGN Program 1, button 5 (5120) }
[56 00 00 00 04 00 00 00] 26 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)
[20 07 00 00 00 00 00 08] 27 LinkCN Cell 8
[56 00 00 00 04 00 00 00] 28 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)
[20 07 00 00 00 00 00 01] 29 LinkCN Cell 1
[56 00 00 00 08 00 00 00] 30 (SetHL_BTN) Set Highlighted Button =(mov) 2048 (button 2)
[20 07 00 00 00 00 00 01] 31 LinkCN Cell 1
[56 00 00 00 0C 00 00 00] 32 (SetHL_BTN) Set Highlighted Button =(mov) 3072 (button 3)
[20 07 00 00 00 00 00 01] 33 LinkCN Cell 1
[56 00 00 00 10 00 00 00] 34 (SetHL_BTN) Set Highlighted Button =(mov) 4096 (button 4)
[20 07 00 00 00 00 00 01] 35 LinkCN Cell 1
[00 A1 00 0F 00 01 00 31] 36 if ( gprm(15) == 1 ) then { Goto line 49 }
[00 A1 00 0F 00 02 00 33] 37 if ( gprm(15) == 2 ) then { Goto line 51 }
[00 A1 00 0F 00 03 00 35] 38 if ( gprm(15) == 3 ) then { Goto line 53 }
[00 A1 00 0F 00 04 00 3F] 39 if ( gprm(15) == 4 ) then { Goto line 63 }
[00 A1 00 0F 00 05 00 37] 40 if ( gprm(15) == 5 ) then { Goto line 55 }
[00 A1 00 0F 00 06 00 39] 41 if ( gprm(15) == 6 ) then { Goto line 57 }
[00 A1 00 0F 00 07 00 39] 42 if ( gprm(15) == 7 ) then { Goto line 57 }
[00 A1 00 0F 00 08 00 3B] 43 if ( gprm(15) == 8 ) then { Goto line 59 }
[00 A1 00 0F 00 09 00 3B] 44 if ( gprm(15) == 9 ) then { Goto line 59 }
[00 A1 00 0F 00 0A 00 3D] 45 if ( gprm(15) == 10 ) then { Goto line 61 }
[00 A1 00 0F 00 0B 00 3D] 46 if ( gprm(15) == 11 ) then { Goto line 61 }
[00 A1 00 0F 00 0C 00 37] 47 if ( gprm(15) == 12 ) then { Goto line 55 }
[00 A1 00 0F 01 90 00 3F] 48 if ( gprm(15) == 400 ) then { Goto line 63 }
[71 00 00 0F 00 00 00 00] 49 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 08 06] 50 LinkPGN Program 6, button 2 (2048)
[71 00 00 0F 00 00 00 00] 51 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 0C 06] 52 LinkPGN Program 6, button 3 (3072)
[71 00 00 0F 00 00 00 00] 53 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 10 06] 54 LinkPGN Program 6, button 4 (4096)
[71 00 00 0F 00 00 00 00] 55 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 04 07] 56 LinkPGN Program 7, button 1 (1024)
[71 00 00 0F 00 00 00 00] 57 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 08 07] 58 LinkPGN Program 7, button 2 (2048)
[71 00 00 0F 00 00 00 00] 59 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 0C 07] 60 LinkPGN Program 7, button 3 (3072)
[71 00 00 0F 00 00 00 00] 61 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 10 07] 62 LinkPGN Program 7, button 4 (4096)
[71 00 00 0F 00 00 00 00] 63 Set gprm(15) =(mov) 0
[20 06 00 00 00 00 14 06] 64 LinkPGN Program 6, button 5 (5120)
********** post commands:
[20 06 00 00 00 00 04 01] 1 LinkPGN Program 1, button 1 (1024)
********** cell commands:
[20 07 00 00 00 00 00 01] 1 LinkCN Cell 1
[20 01 00 00 00 00 00 0D] 2 LinkTailPGC




LinkCN Cell 2 is the menu with the eps settings which jumps to yet another small video clip and only then to the ep itself which is in VTST 1 TTN 1 so I thought I'd replace it by



[30 23 00 00 00 01 0D 00] 17 if ( gprm(13) == gprm(0) ) then { (JumpVTS_TT) Jump to TTN 1 in this VTS }



which works only half way as it jumps to the ep but after playback instead of going back to the root menu and waiting for a new ep to be selected it jumps to the root menu and directly selects the same ep again and plays is over.

Any suggestions? Do you have enough info?

jeanl
17th December 2004, 18:22
chetwood,
How did you "manipulate" the IFOs? Did you follow up one of the techniques that I describe in my guide, or did you go for something simpler? I'm asking because the 2 techniques in my guide are specifically intended to avoid the kind of problems you have (i.e., they're intended to replicate exactly a user clicking his way to the menu or clicking his way to the movie then to the menu, in which case what you describe shouldn't happen).
- If you followed my guide, which of the two techniques did you use (jumping straight to menu, or jumping to movie then to menu)?
- Did you find an unused gprm, or did you have to reuse one?
- If you didn't follow my guide, what did you change in the IFO?

Jeanl

P.S. mmmm I'm looking at your precommand area, and I'm thinking there are cases where my guide will not do the right thing :(. I hadn't thought of that, but if you normally enter the main menu with a "link" command (as is the case for you), then my guide will not replicate that since I'm only using a break to enter the menu! BIG BUG :(
OK I'll look into that. In the meantime, you could try to use the second technique (jumping to the movie and from there to the root menu). This will work (because you'll use the normal way of entering the menu). Of course, you'll have to revert to the original before you try that.

2COOL
17th December 2004, 20:06
Originally posted by Chetwood
I totally wanna skip thisThis is guide (http://home.tiscali.be/debie.roland/pgcedit/third_party/2cool/remove_language_aspect_ratio_menus/remove_language_and_aspect_ratio_menus_intro.htm) is little old since PgcEdit can now preview menus but the concept is still the same. Find the menu (episode setting menu), create a new cell command, and blank the menu. When I get the time during or after the holidays, I'll update it.

jeanl
17th December 2004, 23:14
Chetwood,
Something else to try. As I mentioned above, because in your DVD you normally enter the menu via a "Link" command, my guide will not work properly. I don't know which Link command is executed, that's hard to figure out if I don't have the gprm values at the start of the PGC. There's an easy fix though:
- In the guide, when you reach the breakpoint you put in the menu, and you insert the pre-commands that set all the registers the right way, you will need to change the break command to a Link command.
- To know which command to use, you can look at the Log display (bottom right) where all the commands executed so far are displayed. The last one you'll see then will be the one that caused the menu to start playing. In your case, it will be a "LinkPGC" or "LinkCN" command (I'm guessing here).
- You will need to replace the "break" (at line 12) with that command. This will make sure that when you jump from first-play PGC, you enter the menu exactly the same way as in the unmodified DVD.

That's the easiest fix I can think of at this point.
I'm willing to bet that all the subsequent problems will magically disappear! (if they don't then something is really wrong!).

Let me know so I can update the guide...

Jeanl

Chetwood
18th December 2004, 09:23
Originally posted by jeanl
chetwood,
How did you "manipulate" the IFOs?


Like with my previous rip I've used 'jumping straight to menu' from your guide. Don't get me wrong, this works perfectly so you guide did it's job. However, on this DVD I'm aiming at something more and I hope to adapt your technique on other steps. Here's what currently happens:


DVD is put into the player and jumps straight to the root menu where the first ep button is highlighted so you click it and jump to the
ep menu where again the first button is highlighted which is labeled 'play ep' so when you click on it
you see a 2 second clip of the ep fading into black and only then
the ep starts


So what I wanna do is cut the crap ;) I only want to jump to the root menu as first play and whenever I select an ep there I go straight to the ep. When it's done, I wanna be returned to this menu (blanking out the FBI warning after the ep) with the next ep's button highlighted. The 5th button in this menu 'special features' will be blanked out with Menuedit.

Now if I would apply the mothod used in your guide I would set a playback breakpoint at the ep and then run a trace from the root menu to this ep. But where would I paste the registers as commands to? Curiously enough I do have *another* 4 GPRMs (5 in total) left which matches the number of eps on the disk, the 1st was used to jump straight to the root menu. But what makes it difficult for me is that the parts I wanna skip (the ep selection menu and the 2 sec. clip) are in other cells of the root menu instead of being elsewhere and thus they are referenced with other commands. Like I said before, when I change this line



[30 23 00 00 00 01 0D 00] 17 if ( gprm(13) == gprm(0) ) then { (JumpVTS_TT) Jump to TTN 1 in this VTS }



I do jump straight to the ep when selecting it in the root menu but after playback and returning to the root menu briefly I'm jumping back to the ep automatically. I figured all the GPRM stuff wouldn't be necessary since all I wanna do is start the ep with it's default settings set in the root menu. Seems I was wrong.

So in case I cleared it up for you, do you have any ideas?

jeanl
18th December 2004, 18:55
Chetwood,
OK I understand better now. What you really want to do is skip the small menu (I thought it didn't appear in the original DVD). You could definitely use 2COOL's guide for that, but it might be a bit of an overkill for you.
What you're probably missing is the button command in the ep menu you're trying to skip. I'm betting the button command sets a register then jump to the episode. What you're missing is the register setting, and that's probably why when you go back to the main menu after that, it does not do the right thing.
Lookup the button command in the ep submenu to play the episode (use the "Show menu buttons" right-click option). You'll need to reproduce the register setting then do the jump in the command you modify at line 17.

Can you post the PGC info here? Right click on the menu PGC and chose PGC: Info. This will show all the buttons and their commands (although we won't know which is which!)
Jeanl

Chetwood
18th December 2004, 19:48
Originally posted by jeanl
Can you post the PGC info here? Right click on the menu PGC and chose PGC: Info. This will show all the buttons and their commands (although we won't know which is which!)
Jeanl

I've attached it as a text file (http://www.dvdshrink.info/chetwood/rootmenupgc.txt) to keep this page from getting endless. The buttons are easy, 1-4 are eps 1-4 and 5 is special features which I'm going to blank out anyway. Thanks.

jeanl
18th December 2004, 20:25
Chetwood, it's still not easy to see what's going on because I don't know which cell is which and which button does what.
I'm guessing cell1 is the main menu where you can select the episode.
Cell2 is one of the menus you'd like to skip. Which button is the one you'd like "fake push" (the "play" button)? I"m guessing it's the first one since you say it's selected. It links to PGC11 where you probably have the fade out, a couple of register setting then a jump to the right episode.
All you have to do is put the button command
LinkPGCN PGC 11
as your line 17, and that should work. If you don't want the fade out, then you can simply blank out PGC11 (simply click on the blank icon in PgcEdit)...
Of course, you'll have to do that with all the episodes (modify line 17 18 19 and 20).

Let us know!!

Jeanl

Chetwood
19th December 2004, 10:26
Originally posted by jeanl
Chetwood, it's still not easy to see what's going on because I don't know which cell is which and which button does what.

I guessed this would happen, after all you don't have the files. Still you were right that I wanted to push the first button and in fact it worked when I changed line 17 to LinkPGCN PGC11 BUT again after playback I'm linked from the FBI warning to the menu where it starts the same ep over again!

What I'm wondering: is it really necessary to use the same technique with saving the registers to an unused GPRM or could I simply replace the jump button so that selecting button one straight jumps to the ep skipping all menus and fade clips in between? This would similar to the way it's done in DVDRemake Pro, isn't it? I mean, you can select any button and change the jump target without fiddling around with registers.

Now this is what the changed registers look like from the moment on when you select ep 1 in the root menu right after putting in the DVD:



[71 00 00 00 00 01 00 00] 1 Set gprm(0) =(mov) 1
[71 00 00 02 64 65 00 00] 2 Set gprm(2) =(mov) 25701 ("de")
[71 00 00 03 00 00 00 00] 3 Set gprm(3) =(mov) 0
[71 00 00 04 00 00 00 00] 4 Set gprm(4) =(mov) 0
[71 00 00 05 00 00 00 00] 5 Set gprm(5) =(mov) 0
[71 00 00 06 00 01 00 00] 6 Set gprm(6) =(mov) 1
[71 00 00 07 00 00 00 00] 7 Set gprm(7) =(mov) 0
[71 00 00 0B 00 00 00 00] 8 Set gprm(11) =(mov) 0
[71 00 00 0D 00 01 00 00] 9 Set gprm(13) =(mov) 1
[71 00 00 0F 00 00 00 00] 10 Set gprm(15) =(mov) 0
[51 00 00 81 C2 00 00 00] 11 (SetSTN) Set Audio stream = 1 ; Set Sub-picture stream = 2, on
[56 00 00 00 04 00 00 00] 12 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)



So when I return to the root menu after playback of the first ep these lines are executed:




[00 B1 00 00 00 00 00 0D] 1 if ( gprm(0) != 0 ) then { Goto line 13 }
[00 00 00 00 00 00 00 00] 13 NOP
[00 A1 00 0D 00 09 00 24] 14 if ( gprm(13) == 9 ) then { Goto line 36 }
[20 D4 00 0F 00 00 00 07] 15 if ( gprm(15) > 0 ) then { LinkPGCN PGC 7 }
[71 00 00 0F 00 00 00 00] 16 Set gprm(15) =(mov) 0
[20 04 00 00 00 00 00 0B] 17 LinkPGCN PGC 11



which is a loop.

In case you got fed up with this blindguessing just let me know and I'll rip the stuff without menu or do my own...

jeanl
19th December 2004, 18:30
chetwood,
I got it.
It looks like your gprm(13) should be set to 6 when you come back to the menu, but I'm not sure where this normally happens! I was guessing it would be in PGC 11, but apparently, that's not the case. If gprm(13)=6, then you'll go to line 30, highlight button 2 and go back to the main menu, and everything will be OK.
So insert a gprm(13) = 6 in PGC 11 before you link to the first episode. Or maybe as a post command of your first episode if it's in a different PGC just to make sure it does not get overwritten somewhere else.

I'm just puzzled that things got broken like that...
Jean

Chetwood
20th December 2004, 18:40
Originally posted by jeanl
I'm just puzzled that things got broken like that...


Me too, but I am clueless anyway. But thanks for the tip, cause it worked with adding a post-command to the ep. Still, I didn't think it to be that time-consuming. I guess, I'm gonna make my own simply menus for the next rips ;)

jeanl
20th December 2004, 18:44
time-consuming yep, but that's also the way you learn man!
And after all the trouble, when it works, you know you've mastered the beast (and a what a beast that is, don't get me going on the DVD specs!), submitted it to your will!!! ;)

Take care!
Jeanl

Sir Didymus
29th December 2004, 12:55
Originally posted by r0lZ
You can use the Copy LU cmds to other LUs to automatize this procedure.
...
If you don't want to keep the other menu languages, then you should Strip the unwanted LUs with IfoEdit (Menu Extras button, with the Strip Language Unit's (LUs) option checked).

Hi r0lZ,
Just a feature request, since other nice and useful options are present for handling LUs in PgcEdit...

Can you consider an option for killing the playback of a specific LU ?

Cheers,
SD

r0lZ
29th December 2004, 15:44
Can you consider an option for killing the playback of a specific LU ? Well, it's not possible to kill playback of an LU. It is however possible to change the language code of the LU so that it will not be called anymore. But I can't see a good reason to do so. If you don't want to see a specific LU, just set the language code of your player to another one.

It is also possible to remove the complete LU, and all the references of the LU to the VOB cells. This solution will allow to strip the unreferenced cells with IfoEdit or VobBlanker.
But stripping the LU directly with IfoEdit is easier, and more efficient: all you have to do is to select the LU you want to keep, and the VOB will be stripped of all cells related to the removed LU.

Sir Didymus
29th December 2004, 17:13
@r0lZ.

Well, you're definitely right, meaning that with IfoEdit the job is easy and efficient... So, sorry for the request...

By the way, let me spend some more words just to explain the reason for the request...
Well, since there are no VM commands for playing a given language unit, the behaviour of a standard player, for choosing the one of some possible LUs to play, is driven by the the following rules:
1. Compare the preferred language of the player against the different LUs, and play the matching one;
2. In case of no matching, playing the "default" LU, if present;
3. In case the "default" LU not present, play the first LU.

Now, I have a player with very poor characteristics [ok I will trow it away asap... :D ]... that does not allow to set a language code different than English, German and French...

Since my preferred language is different (Italian...), the funny situation I am experiencing is that all the titles I try to play on this player have a "natural" tendence to play the first LU available in the title, and never the Italian menus, that I normally see on all my other players...

As you have pointed out the IfoEdit way is the proper one, and that's exactely what I normally do...

It is that recently found very handy to use PgcEdit for copying commands between different LUs...

and got a look at this very nice guide of 2COOL:

http://forum.doom9.org/showthread.php?threadid=72547

So I wondered to myself how should it cost to implement a macro in PgcEdit, performing something similar...

And after asking to myself and asking again, at the end i decided to ask directly to you... :)

Cheers,

and again... afraid for the request...

I totally agree that's was not a good idea to ask to perform functions already carried out by other EXCELLENT tools...

SD

r0lZ
29th December 2004, 19:10
2. In case of no matching, playing the "default" LU, if present; Well. I really don't know what you are calling the "default" LU. For me, there are only two rules: if a LU matching the player's preferences is found, it is played. Else, the first one should be played.

PgcEdit has the ability to swap the LUs, so that your preferred LU will be in the first place.

However, if your player has no configuration option, and is stupid enough to think he must always show one specific, hardcoded LU (say english), then the method of stripping the english LU with IfoEdit should work.

Of course, changing the 'en' code of the english menu to, for example 'zu' (Zulu) may also work. But I don't like that: this LU will probably never be played anymore. So, stripping it is again the best solution.

If you really wants to rename the english menu, you may use 2COOL's guide. Note that the guide has the effect of effectly stripping the LU in the IFOs, but not in the VOBs.

Chetwood
29th December 2004, 19:30
Originally posted by Sir Didymus
So I wondered to myself how should it cost to implement a macro in PgcEdit, performing something similar...


@r0lZ
I was thinking about something similar. Is there an official thread for PgcEdit feature requests already? I'd like to see my guide on Importing selfmade menus to episode DVDs done with DVD Shrink (http://www.dvdshrink.info/chetwood/guides.php) put into a macro so I can do it with the click of a button just like with the DVD Shrink Remote buttons-macro. Is there a way for us users to implement such a thing? I guess, you're quite busy adding other new features with higher priority...

r0lZ
29th December 2004, 19:38
Exactly! I have to make the BOV support and the menu editor. After that, probably in a couple of months, I will start a special 'feature requests' thread, and implement some of the most useful ones.

Sir Didymus
30th December 2004, 09:34
Originally posted by r0lZ
Exactly! I have to make the BOV support and the menu editor. After that, probably in a couple of months, I will start a special 'feature requests' thread, and implement some of the most useful ones.

Really sorry: it was my fault to start this OT discussion. BOV support ? menu editor ? This sound nice, very nice!!! Good to hear something about the heavy (and really appreciated) work you are doing with PgcEdit.


If you really wants to rename the english menu, you may use 2COOL's guide. Note that the guide has the effect of effectly stripping the LU in the IFOs, but not in the VOBs.

Yeah. This is the reason I called this "Kill LU Playback" and not "Strip LU"... :) I agree with Chetwood... It's unfair to ask you to implement the most strange and crazy functions... The possibility of executing external code is all what users may need to try to write their own PgcEdit macros... By the way: no pressure on my side. This have clearily a very low priority respect to the other extensions you are working on...


Well. I really don't know what you are calling the "default" LU. For me, there are only two rules: if a LU matching the player's preferences is found, it is played. Else, the first one should be played.

About the "third rule...". Sometimes my poor English prevents me being clear... For default I intended "not specified"... Language code "und", as defined by ISO 639, part b:

http://www.loc.gov/standards/iso639-2/langcodes.html

IfoEdit reports languages marked with "und" as Not Specified, while PgcEdit presents them with the symbol "(--)".

I didn't test it with PgcEdit, but I think that in order to be DVD compliant, if a LU is not matching the player prefererred language and an Unspecified LU is present, this one should be played even in the case it is not the first one...

Regards,
SD

MarioGarcia
11th December 2005, 23:16
hello
it's maybe time to make this thread living again
i am backing up and old movie: rosemary baby.
all the pgrm are used, and i am wondering how to deal with it, all my reading hasn't led anywhere.
the movie from factory is already going to the main movie, without editing anything; I Just used another guide to override the language selection and screen ratio menus and i want it to go to the main menu.
here's the code:

********** pre commands:
[20 A4 00 04 00 02 00 05] 1 if ( gprm(4) == 2 ) then { LinkPGCN PGC 5 }
[20 A4 00 04 00 03 00 06] 2 if ( gprm(4) == 3 ) then { LinkPGCN PGC 6 }
[20 A4 00 04 00 04 00 11] 3 if ( gprm(4) == 4 ) then { LinkPGCN PGC 17 }
[00 B2 00 05 00 0A 00 00] 4 if ( gprm(5) != 10 ) then { Break }
[61 00 00 08 00 82 00 00] 5 Set gprm(8) =(mov) sprm(2:Sub-picture stream number)
[61 00 00 09 00 81 00 00] 6 Set gprm(9) =(mov) sprm(1:Audio stream number)
[71 A0 08 08 00 3F 00 49] 7 if ( gprm(8) == 73 ) then { Set gprm(8) =(mov) 63 }
[41 00 00 00 88 00 00 00] 8 (SetSTN) Set Sub-picture stream = gprm(8)
[00 B2 00 09 00 01 00 00] 9 if ( gprm(9) != 1 ) then { Break }
[00 B2 00 08 00 3F 00 00] 10 if ( gprm(8) != 63 ) then { Break }
[71 00 00 08 00 49 00 00] 11 Set gprm(8) =(mov) 73
[41 00 00 00 88 00 00 00] 12 (SetSTN) Set Sub-picture stream = gprm(8)
********** post commands:
[30 06 00 00 00 42 00 00] 1 (JumpSS) Jump to VMGM Title menu
********** cell commands:


thank you
mario garcia