View Full Version : pgcedit error: "too many commands"
mikewillnot
5th February 2008, 06:34
Backing up 2006 version of All the King's Men produced an error I've never seen:
"too many commands in VTST 2, PGC 1 (max 128!)
There are 147 commands in VTST 2, PGC 1"
I got here, I believe, by ripping (dvdfab HD Decrypter 4), and then running DVD-Shrink, then PGCedit -- although there's a possibility I may have ripped, then run PGCedit (to change first-play to movie), then DVDshrink, and now PGCedit again.
Indeed, the PGC in question has 147 commands. Is this important, and what should I do about it? It's rather over my head.
I can post the commands here, if it would be helpful.
THANKS
setarip_old
5th February 2008, 08:02
Hi!
There have recently been many posts referring to less-than-compliant rips being created by DVDFab HD Decrypter.
Therefore, you might want to try re-ripping this SONY release ("ARccOS" copy protected") with any one of the following:
1) RipIt4Me
2) DVD95CopyPro
3) AnyDVD
blutach
5th February 2008, 08:22
This probably happened in some bypassing manoever. A maximum of 128 pre, post and cell commands are allowed in any PGC. Check the offending PGC and see if there are duplicate commands which can be deleted. Also, check to see if the PGC is actually called. Many of these protection systems put illegal PGCs in the structure which are never called.
Regards
mikewillnot
6th February 2008, 05:46
The pgc with the excess of commands is the main movie. Also, no duplicate commands that I can see. Complicated bit of programming, though. What does "in some bypassing maneuver" mean?
The post commands section is pretty curious. Looks something like this:
(sorry about the mess; it was OCR'd from a screen capture):
[sloppy transcription of commands deleted; see post below for clean list]
etc
r0lZ
6th February 2008, 11:28
First thing: to copy/paste the commands of a PGC, use Info -> PGC. The commands are displayed as plain text, and you can copy them easily. Note that you have to paste them before closing PgcEdit.
BTW, I guess the first command is messed up due to your method. Right?
This kind of authoring is quite common. However, if there are more than 128 commands, it's an authoring error. Unfortunately, as the post-commands shown here are links to cell in that PGC, you cannot move them. Maybe it will be possible to move some of the pre-commands in another PGC. Please copy them here, using the method explained above.
You can also leave them as they are. IMO, most players will accept them, as this limitation to 128 commands is theoretical, but, of course, there is an important risk of crash.
setarip_old
6th February 2008, 17:29
@mikewillnot
Have you tried my suggestion to simply re-rip the DVD using a program other than DVDFabHDDecrypter?
mpucoder
6th February 2008, 23:49
The real shame is that all those goto's are not needed, the LinkCN command can be conditional. eg
if (gprm(6) = 710) then {LinkCN cell 21}
blutach
7th February 2008, 02:06
@mpucoder
It may be that they have done this as a protection mechanism
Regards
mikewillnot
7th February 2008, 19:33
I'm going to re-rip it. I was mostly curious about this wierd pgc, the what and why of it. Here's the whole thing.
********** pre commands:
1 if ( gprm(2) != 1022 ) then { Goto line 20 }
2 Set gprm(2) =(mov) 0
3 Set gprm(0) =(mov) 1
4 Set gprm(1) =(mov) 0
5 Set gprm(2) =(mov) 0
6 Set gprm(3) =(mov) 0
7 Set gprm(4) =(mov) 2
8 Set gprm(5) =(mov) 66
9 Set gprm(6) =(mov) 723
10 Set gprm(7) =(mov) 66
11 Set gprm(8) =(mov) 0
12 Set gprm(9) =(mov) 2
13 Set gprm(10) =(mov) 15
14 Set gprm(11) =(mov) 0
15 Set gprm(12) =(mov) 0
16 Set gprm(13) =(mov) 0
17 Set gprm(14) =(mov) 999
18 Set gprm(15) =(mov) 999
19 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)
20 NOP
21 if ( gprm(6) != 0 ) then { Goto line 23 }
22 (CallSS) Call the First Play PGC, resume cell 1
23 if ( gprm(9) == 2 ) then { Goto line 25 }
24 (CallSS) Call the VMGM PGC 3, resume cell 1
25 Set gprm(10) &=(and) 65534
26 Set gprm(10) &=(and) 65531
27 Set gprm(3) =(mov) 0
28 NOP
29 Set gprm(0) =(mov) gprm(12)
30 NOP
31 (SetSTN) Set Audio stream = gprm(0)
32 Set gprm(0) =(mov) gprm(13)
33 NOP
34 (SetSTN) Set Sub-picture stream = gprm(0)
********** post commands:
1 if ( gprm(6) & 16384 ) then { Goto line 55 }
2 Set gprm(6) &=(and) 16383
3 if ( gprm(6) == 710 ) then { Goto line 30 }
4 if ( gprm(6) == 711 ) then { Goto line 31 }
5 if ( gprm(6) == 712 ) then { Goto line 32 }
6 if ( gprm(6) == 713 ) then { Goto line 33 }
7 if ( gprm(6) == 714 ) then { Goto line 34 }
8 if ( gprm(6) == 715 ) then { Goto line 35 }
9 if ( gprm(6) == 716 ) then { Goto line 36 }
10 if ( gprm(6) == 717 ) then { Goto line 37 }
11 if ( gprm(6) == 718 ) then { Goto line 38 }
12 if ( gprm(6) == 719 ) then { Goto line 39 }
13 if ( gprm(6) == 720 ) then { Goto line 40 }
14 if ( gprm(6) == 721 ) then { Goto line 41 }
15 if ( gprm(6) == 722 ) then { Goto line 42 }
16 if ( gprm(6) == 723 ) then { Goto line 43 }
17 if ( gprm(6) == 724 ) then { Goto line 44 }
18 if ( gprm(6) == 725 ) then { Goto line 45 }
19 if ( gprm(6) == 726 ) then { Goto line 46 }
20 if ( gprm(6) == 727 ) then { Goto line 47 }
21 if ( gprm(6) == 728 ) then { Goto line 48 }
22 if ( gprm(6) == 729 ) then { Goto line 49 }
23 if ( gprm(6) == 730 ) then { Goto line 50 }
24 if ( gprm(6) == 731 ) then { Goto line 51 }
25 if ( gprm(6) == 732 ) then { Goto line 52 }
26 if ( gprm(6) == 733 ) then { Goto line 53 }
27 if ( gprm(6) == 734 ) then { Goto line 54 }
28 Set gprm(6) =(mov) 65535
29 (CallSS) Call the First Play PGC, resume cell 1
30 LinkCN Cell 21
31 LinkCN Cell 22
32 LinkCN Cell 23
33 LinkCN Cell 24
34 LinkCN Cell 25
35 LinkCN Cell 26
36 LinkCN Cell 27
37 LinkCN Cell 28
38 LinkCN Cell 29
39 LinkCN Cell 30
40 LinkCN Cell 31
41 LinkCN Cell 32
42 LinkCN Cell 33
43 LinkCN Cell 34
44 LinkCN Cell 35
45 LinkCN Cell 36
46 LinkCN Cell 37
47 LinkCN Cell 38
48 LinkCN Cell 39
49 LinkCN Cell 40
50 LinkCN Cell 41
51 LinkCN Cell 42
52 LinkCN Cell 43
53 LinkCN Cell 44
54 LinkCN Cell 45
55 Set gprm(6) &=(and) 16383
56 Set gprm(9) =(mov) 9
57 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands:
1 LinkCN Cell 65
2 if ( gprm(8) > gprm(0) ) then { LinkCN Cell 43 }
3 LinkCN Cell 75
4 LinkCN Cell 41
5 if ( gprm(6) < gprm(9) ) then { LinkCN Cell 52 }
6 LinkCN Cell 63
7 if ( gprm(13) != gprm(2) ) then { LinkCN Cell 65 }
8 LinkCN Cell 49
9 LinkCN Cell 67
10 (SetCLnk) Set gprm(6) =(mov) 0 ; if ( gprm(6) == 0 ) then { LinkTopCell }
11 if ( gprm(4) > gprm(9) ) then { LinkCN Cell 45 }
12 LinkCN Cell 44
13 if ( gprm(9) > gprm(14) ) then { LinkCN Cell 39 }
14 if ( gprm(5) < gprm(3) ) then { LinkCN Cell 74 }
15 LinkCN Cell 62
16 LinkCN Cell 55
17 LinkCN Cell 75
18 LinkCN Cell 67
19 if ( gprm(12) > gprm(10) ) then { LinkCN Cell 59 }
20 LinkCN Cell 1
21 if ( gprm(5) < 0 ) then { LinkCN Cell 59 }
22 LinkCN Cell 63
23 LinkCN Cell 70
24 if ( gprm(2) < 0 ) then { LinkCN Cell 59 }
25 LinkCN Cell 73
26 if ( gprm(2) != gprm(9) ) then { LinkCN Cell 48 }
27 LinkCN Cell 41
28 LinkCN Cell 52
29 Set gprm(6) |=(or) 16384 ; LinkTailPGC
30 if ( gprm(10) < 0 ) then { LinkCN Cell 73 }
31 if ( gprm(3) > 65535 ) then { LinkCN Cell 55 }
32 if ( gprm(11) != gprm(12) ) then { LinkCN Cell 39 }
33 if ( gprm(1) > 65535 ) then { LinkCN Cell 37 }
34 LinkCN Cell 4
35 if ( gprm(9) != gprm(7) ) then { LinkCN Cell 74 }
36 if ( gprm(10) > gprm(11) ) then { LinkCN Cell 1 }
37 LinkCN Cell 52
38 LinkCN Cell 42
39 if ( gprm(12) < gprm(4) ) then { LinkCN Cell 54 }
40 if ( gprm(7) > gprm(14) ) then { LinkCN Cell 60 }
41 LinkCN Cell 2
42 if ( gprm(5) != gprm(2) ) then { LinkCN Cell 39 }
43 Set gprm(6) |=(or) 32768 ; LinkTailPGC
44 LinkCN Cell 75
45 Set gprm(6) |=(or) 16384
46 LinkCN Cell 44
47 LinkCN Cell 42
48 if ( gprm(7) < 0 ) then { LinkCN Cell 74 }
49 if ( gprm(13) < 0 ) then { LinkCN Cell 37 }
50 if ( gprm(4) != gprm(10) ) then { LinkCN Cell 41 }
51 if ( gprm(6) != gprm(3) ) then { LinkCN Cell 49 }
52 if ( gprm(3) < 0 ) then { LinkCN Cell 68 }
53 LinkCN Cell 2
54 if ( gprm(10) > gprm(4) ) then { LinkCN Cell 57 }
55 if ( gprm(2) != gprm(14) ) then { LinkCN Cell 49 }
56 LinkTailPGC
r0lZ
8th February 2008, 00:06
I see. It's again ARccOS crap! Obviously, Sony has butchered this DVD as there is not enough space to add so many fake commands. They are lucky if this DVD works on all players!
Most of the cell commands are certainly not necessary, as they are added only to confuse the users, but unfortunately it is difficult to know which ones you can delete safely. The PSL2 plugin for PgcEdit has an handy function to clean the cell commands. You can probably still find it somewhere on the net.
You can also manually edit the post commands 3 to 28, and replace them by:
3 if ( gprm(6) == 710 ) then { LinkCN Cell 21 }
4 if ( gprm(6) == 711 ) then { LinkCN Cell 22 }
5 if ( gprm(6) == 712 ) then { LinkCN Cell 23 }
[...]
27 if ( gprm(6) == 734 ) then { LinkCN Cell 45 }
Then, remove the post-commands 30 to 54.
If necessary, fix the goto on line 1 so that it points to the command "Set gprm(6) &=(and) 16383". Normally, this command should be now at line 30, so, line 1 will be:
1 if ( gprm(6) & 16384 ) then { Goto line 30 }
Anyway, it's not a bad rip. Only a bad work by the authors of the protection. Ripping the DVD again will not help.
setarip_old
8th February 2008, 05:22
@r0lZ
Hi!Ripping the DVD again will not help.I beg to differ. Ripping agian with the SAME ripping program may not change the results but, using one of the other programs that I suggested very likely WILL change the results.
As I stated in my first post to this thread, there have recently been many posts referring to less-than-compliant rips being created by DVDFab HD Decrypter - whereas the other programs I've suggested have no such negative reputations...
blutach
8th February 2008, 07:30
@setarip_old - the pre and post commands are (essentially) set in stone - this takes care of 91 commands. I agree that some rippers eliminate superfluous cell commands, which might achieve the OPs ambitions.
Regards
mikewillnot
8th February 2008, 17:16
Interesting, and illuminating. Thanks for the critique and ideas. The simple edits r0lZ suggests will be sufficient to bring this pgc into compliance. The alternate ripper possibility is also interesting. May I ask, which ones "eliminate superfluous cell commands?" THANKS
setarip_old
8th February 2008, 19:29
May I ask, which ones "eliminate superfluous cell commands?"1) RipIt4Me
2) DVD95CopyPro
3) AnyDVD
mikewillnot
9th February 2008, 21:04
Thanks. I've got one of them, anyway.
RESULTS: the editing changes r0Lz suggested worked fine, in this case.
setarip_old
10th February 2008, 03:22
It would still be good to know if re-ripping with one the three suggested programs likewise solves the problem...
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.