Log in

View Full Version : Standalone lockup from reauthored DVD


Taelon
29th August 2005, 00:19
After several months of reading the guides and lurking in these forums and successfully making working DVD backups, I've started to use PGCEdit and VOBblanker a bit more aggressively. Unfortunately, that has led to several backups which refuse to play in my only standalone player (5 year old Toshiba 5 disk changer), but play perfectly in the computer with PowerDVD.

The ISO's are created with PGCEdit with the "32k space.. " option ON. I use DVDDecrypter to 'burn' the disk and set booktype to DVD-ROM, on 'quality' DVD+R media. Nero CD-DVD disk quality scans are very good (quality score >90). I should mention that I've tried to burn +RW media for testing, but can't get the standalone player to recognize the media (I'm thankful that it plays +R's since I read that it was unsupported).

The few backups that won't play seem to share a common trait, ie; First play Jumps from VMGM to the last VTS (which was blanked), then back to VMGM. So, it seemed like the way to avoid this problem in the future was to remove the last (blanked VTS's) and insert the relevant pre & post commands in VMGM. This usually works, however, in this instance the reauthored DVD completely locks-up the player, not even the power button will respond, it has to be physically unplugged to reset it to where I can even remove the disk.

So, I'm hoping the experts here will see where I've gone wrong in my attempt to reauthor this DVD. Here are PGCEdit traces showing only the area that differs between the original and reauthored disk from time of disk insert until the Root Menu is reached:

Original:


------> Entering VMGM , LU 1 (en) , 2 (dummy)
-- pre 1 : if ( gprm(12) & 65280 ) then { Goto line 3 }
if ( 268 & 65280 ) : true.
-- pre 3 : Set gprm(14) =(mov) gprm(12)
-> gprm(14) = 268 (0x010C)
-- pre 4 : Set gprm(14) /=(div) 256
-> gprm(14) = 1 (0x0001)
-- pre 5 : Set gprm(12) &=(and) 255
-> gprm(12) = 12 (0x000C)

** pre 6 - 24 removed for readability purposes **

-- pre 25 : Set gprm(8) =(mov) 10
-> gprm(8) = 10 (0x000A)
-- pre 26 : if ( gprm(8) == gprm(12) ) then { (JumpTT) Jump to Title 10 }
if ( 10 == 12 ) : false.
-- pre 27 : Set gprm(8) =(mov) 11
-> gprm(8) = 11 (0x000B)
-- pre 28 : if ( gprm(8) == gprm(12) ) then { (JumpTT) Jump to Title 11 }
if ( 11 == 12 ) : false.
-- pre 29 : Set gprm(8) =(mov) 12
-> gprm(8) = 12 (0x000C)
-- pre 30 : if ( gprm(8) == gprm(12) ) then { (JumpTT) Jump to Title 12 }
if ( 12 == 12 ) : true.
-> sprm(4:Title number in volume) = 12 (0x000C)
-> sprm(5:Title number in VTS) = 1 (0x0001)
-> sprm(6:PGC number) = 1 (0x0001)
-> sprm(7:Chapter number (or Program number!)) = 1 (0x0001)
-> sprm(14:Video preference and current mode) = 0 (0x0000)
------> Entering VTST 12 , 1 TTN 1 (0:11) Title 12
PUOs: 24181765 (0x0170FC05)
-- pre 1 : Set gprm(8) =(mov) gprm(14)
-> gprm(8) = 1 (0x0001)
-- pre 2 : Set gprm(14) =(mov) 0
-> gprm(14) = 0 (0x0000)
-- pre 3 : if ( gprm(8) == 1 ) then { Break }
if ( 1 == 1 ) : true.
******* Start playback VTST 12 , 1 TTN 1 (0:11) Title 12...
******* Playing Program 1, Cell 1 (0:11.01) (Chapter 1)
-> sprm(7:Chapter number (or Program number!)) = 1 (0x0001)
******* End playback of PGC 1.
-- post 1 : (CallSS) Call the VMGM PGC 18, resume cell 1
------> Entering VMGM , LU 1 (en) , 18 (dummy)
-- pre 1 : Set gprm(10) =(mov) 8
-> gprm(10) = 8 (0x0008)
-- pre 2 : (JumpSS) Jump to VTSM 1, Root menu (TTN 1)
-> sprm(5:Title number in VTS) = 1 (0x0001)
------> Entering VTSM 1 , LU 1 (en) , 1 (dummy) RootM


Reauthored:

------> Entering VMGM , LU 1 (en) , 2 (dummy)

** pre 1 - 24 (same as original) **

-- pre 25 : Set gprm(8) =(mov) 12
-> gprm(8) = 12 (0x000C)
-- pre 26 : if ( gprm(8) == gprm(12) ) then { LinkPGCN PGC 18 }
if ( 12 == 12 ) : true.
------> Entering VMGM , LU 1 (en) , 18 (dummy)
-- pre 1 : Set gprm(8) =(mov) gprm(14)
-> gprm(8) = 1 (0x0001)
-- pre 2 : Set gprm(14) =(mov) 0
-> gprm(14) = 0 (0x0000)
-- pre 3 : NOP
-- pre 4 : Set gprm(10) =(mov) 8
-> gprm(10) = 8 (0x0008)
-- pre 5 : (JumpSS) Jump to VTSM 1, Root menu (TTN 1)
-> sprm(5:Title number in VTS) = 1 (0x0001)
------> Entering VTSM 1 , LU 1 (en) , 1 (dummy) RootM


The rest of the trace to reach the Root Menu is identical. As you can see all I'm trying to do is eliminate the jump to VTST 12. Any ideas why this causes my standalone player to lock-up?

Thanks

2COOL
29th August 2005, 06:48
Is Title 12 the only title in a VTS? If so, trying blanking this Title. If not, do a Kill Playback on it.

r0lZ
29th August 2005, 09:44
If you want to go straight to the root menu, why don't you use the 'Jump to PGC upon DVD insert' macro? It will take care of everything for you.

Anyway, your logic should work. But I wonder why you change the value in GPRM 8 to 12 in pre command 25. Of course, the next test is true, and you have modified the jump to title 10 to go to VMGM PGC 18. OK. But if VMGM PGC 2 is called again later to jump to title 10, it will not work anymore.
IMHO, it is better to change only pre 30, like that:
-- pre 30 : if ( gprm(8) == gprm(12) ) then { LinkPGCN PGC 18 }
The result should be identical, but title 10 will still be callable.
Of course, I'm not sure that modif will fix the problem.

Another problem could be the initialization of the highlighted button. When entering the menu, SPRM 8 should hold a valid button number * 1024. If it holds 0, or a value that is not a multiple of 1024, or a value greather than the number of buttons in the menu x 1024, the player may hang.

Last hint: try to play your reauthored DVD with IfoEdit's Play DVD. If something is wrong, it will warn you. (Unfortunately, it is difficult to know where the problem is located, but at least you will know for sure that there is one problem somewhere.)

Can you be more specific on the symptoms you experienced with your standalone? You say it hangs. But when? After the root menu has been played, or before?
BTW, my Sony standalone hangs the same way when it encounter some kind of illegal commands (like a call w/o the resume cell 1.) I have also to disconnect it! Do you own a Sony?

If you find why your standalone crash, please let me know. If it's easy, I will add a check in PgcEdit to warn the user in such case.

Taelon
29th August 2005, 10:20
Is Title 12 the only title in a VTS? If so, trying blanking this Title. If not, do a Kill Playback on it.

VTS 9-12 were deleted using the "kill last VTS in DVD" function in PGCEdit.

r0lZ
29th August 2005, 10:39
VTS 9-12 were deleted using the "kill last VTS in DVD" function in PGCEdit.Are you SURE there are no remaining refs to some PGCs in that VTS? You should use the Info -> Calls Cross References function, and see at the bottom of the text. If the 'Jumps to Nowhere' section is not empty, you should fix these commands to jump to a valid PGC.

Taelon
29th August 2005, 10:55
If you want to go straight to the root menu, why don't you use the 'Jump to PGC upon DVD insert' macro? It will take care of everything for you.
I don't know why I have never tried that macro, guess I'm still trying to understand how things work, and like doing things the hard way :confused:
Anyway, your logic should work. But I wonder why you change the value in GPRM 8 to 12 in pre command 25. Of course, the next test is true, and you have modified the jump to title 10 to go to VMGM PGC 18. OK. But if VMGM PGC 2 is called again later to jump to title 10, it will not work anymore.
IMHO, it is better to change only pre 30, like that:
-- pre 30 : if ( gprm(8) == gprm(12) ) then { LinkPGCN PGC 18 }
The result should be identical, but title 10 will still be callable.
Of course, I'm not sure that modif will fix the problem.
I should have mentioned that VTS 9 thru VTS 12 were deleted using the "kill last VTS in DVD" function.
Another problem could be the initialization of the highlighted button. When entering the menu, SPRM 8 should hold a valid button number * 1024. If it holds 0, or a value that is not a multiple of 1024, or a value greather than the number of buttons in the menu x 1024, the player may hang.
There are many more lines of code that get executed before it actually reaches the menu, but I left it out since the rest is unchanged from the source DVD. The DVD is authored very strange, it actually jumps to the Main Title, Cell 29 at one point, then VTSM 1 PGC 53, before finally getting to PGC 6 as shown here:
-----> Entering VTSM 1 , LU 1 (en) , 6 (0:00) 5b.
PUOs: 24966115 (0x017CF3E3)
-- pre 1 : NOP
-- pre 2 : NOP
-- pre 3 : NOP
-- pre 4 : NOP
-- pre 5 : Set gprm(8) =(mov) gprm(13)
-> gprm(8) = 1 (0x0001)
-- pre 6 : if ( gprm(8) != 0 ) then { Goto line 8 }
if ( 1 != 0 ) : true.
-- pre 8 : Set gprm(8) &=(and) 63
-> gprm(8) = 1 (0x0001)
-- pre 9 : Set gprm(8) *=(mul) 1024
-> gprm(8) = 1024 (0x0400) = button 1
-- pre 10 : NOP
-- pre 11 : Set gprm(11) =(mov) 1
-> gprm(11) = 1 (0x0001)
-- pre 12 : (SetHL_BTN) Set Highlighted Button =(mov) gprm(8)
-> sprm(8:Highlighted button number) = 1024 (0x0400) = button 1
******* Start playback VTSM 1 , LU 1 (en) , 6 (0:00) 5b....
******* Playing Program 1, Cell 1 (0:00.12 + infinite pause) (5 buttons)
-> sprm(8:Highlighted button number) = 1024 (0x0400) = button 1
Selected menu button: 1
-- button : LinkTailPGC
Last hint: try to play your reauthored DVD with IfoEdit's Play DVD. If something is wrong, it will warn you. (Unfortunately, it is difficult to know where the problem is located, but at least you will know for sure that there is one problem somewhere.)
It plays fine in the IfoEdit player, PowerDVD, and mPlayerClassic.
Can you be more specific on the symptoms you experienced with your standalone? You say it hangs. But when? After the root menu has been played, or before?
It hangs right after the disk is loaded, it indicates the DVD is present but I never see anything on the TV screen, in fact the screen still says it's loading.
BTW, my Sony standalone hangs the same way when it encounter some kind of illegal commands (like a call w/o the resume cell 1.) I have also to disconnect it! Do you own a Sony?
This is a Toshiba 5 disk changer, manufactured in 1999.
If you find why your standalone crash, please let me know. If it's easy, I will add a check in PgcEdit to warn the user in such case.
I appreciate your assistance with this problem, I'm amazed at the capabilities you've put into PGCEdit, it seems to rival expensive commercial applications. I do have a couple questions/suggestions but I'll put them in the main PGCEdit thread.

Taelon
29th August 2005, 11:01
Are you SURE there are no remaining refs to some PGCs in that VTS? You should use the Info -> Calls Cross References function, and see at the bottom of the text. If the 'Jumps to Nowhere' section is not empty, you should fix these commands to jump to a valid PGC.
I normally use the "Find jumps to Nowhere", honestly the 'Calls Cross References function' always scared me since it says I should back-up the IFO's first. But I just ran it and it confirmed:
############################## Jumps to nowhere! #############################
None.

r0lZ
29th August 2005, 11:06
There are many more lines of code that get executed before it actually reaches the menu, but I left it out since the rest is unchanged from the source DVD. The DVD is authored very strange, it actually jumps to the Main Title, Cell 29 at one point, then VTSM 1 PGC 53, before finally getting to PGC 6Hum, in this case, you may have a problem with a RSM command. This kind of authoring is often used so that RSM will have a title to resume to.
But I don't think it's the case, since the player hangs before the menu has been reached. I'm puzzled.

r0lZ
29th August 2005, 11:10
honestly the 'Calls Cross References function' always scared me since it says I should back-up the IFO's first.Only if you want to remove the VM commands and links in the unused PGCs. Since there can be a lot of changes, I think it's safer to backup the IFOs. But honestly, I have never encountered a problem with this function.

Taelon
29th August 2005, 11:17
Hum, in this case, you may have a problem with a RSM command. This kind of authoring is often used so that RSM will have a title to resume to.
But I don't think it's the case, since the player hangs before the menu has been reached. I'm puzzled.

Uh-oh, if you're puzzled I'll probably never solve this. The funny thing is that I thought this would be a fast & easy title to back-up since it didn't require any compression. It's a flipper disk with identical content on both sides, one has FullScreen, the other WideScreen and all I wanted to do was eliminate the Warnings in VTS 10, 11 and the studio logo in VTS 12.

r0lZ
29th August 2005, 11:55
I've made this kind of edits several times, without problem.
The strange thing is that your player hangs, while all software players are happy. Maybe a bug in your standalone?

Taelon
29th August 2005, 12:12
I've made this kind of edits several times, without problem.
The strange thing is that your player hangs, while all software players are happy. Maybe a bug in your standalone?
I'm almost sure it's a bug in the player and bet the disk would play fine in 90% of the players out there. I've done several backups like this successfully also.

If I could get it to read RW's I'd try some things to see if I could isolate the bug, but I don't want to waste a bunch of media testing it. I guess I'll just have to hope that whatever the bug is, I don't run into it again soon.

Taelon
6th September 2005, 06:38
If you want to go straight to the root menu, why don't you use the 'Jump to PGC upon DVD insert' macro? It will take care of everything for you.After letting this project sit for a week I finally went back to it, this time I used the 'Jump to PGC upon DVD insert' macro as you suggested, then I removed VTS 9 - VTS 12 and finally ran the Calls Cross References function. The resulting DVD plays perfectly in my standalone, thanks r0lZ!

I'm totally amazed by the power of the 'Jump to PGC upon DVD insert' macro! The original DVD jumped around between 15 different PGCs before getting to the menu, my attempt to manually bypass VTST 12 still went through 14 PGCs since I left most of the commands (but this caused the standalone to lock-up as noted above). The new backup only goes through 3 PGCs to reach the main menu, but seems to work perfectly.

I don't know how you programmed this amazing piece of magic but I'm very impressed. :thanks:

r0lZ
6th September 2005, 10:47
Thanks for your kind reply.

The Jump2PGC method is the result of a brainstorm with Jeanl, 2COOL and me, with some help of other beta testers. I have only programmed the method described in the guides by Jeanl and 2COOL, in a macro, with some minor changes. So, you should thank the whole Doom9 community.

blutach
6th September 2005, 13:58
@Taelon

The great thing about the macro is that you can go through the menu a bit and select the default audio and subbie streams you want and not just start at the first time the menu is entered.

Makes it very easy for folks in countries where they want to select a different stream from the default.

Regards

Taelon
7th September 2005, 01:39
So, you should thank the whole Doom9 community.Don't know if this counts but I did so in my first post on these great forums. (http://forum.doom9.org/showthread.php?t=99325) :)

@blutach

Good to know, thanks!

and :thanks:

To the whole Doom9 Community!

blutach
7th September 2005, 12:06
Nice to see you here Taelon :)

Regards