Mam film na dvd z dwoma wersjami menu do wyboru: angielska (animowana) i polska (statyczna). Problem polega na tym, że wersja angielska jest trefna - brakuje podmenu chapter, więc o wyborze rozdziałów można zapomnieć, a sam film się wiesza. Póki co myślałem nad trzema rozwiązaniami:
- usunięcie przycisku od menu chapter
- podpięcie pod w/w przycisk polskie menu chapter
- rezygnacaja z wyboru menu i pozostawienie polskiego
(i ku temu dążę...)
I tu zaczynają się schody. Film startuje od loga WB, po czym przechodzi do ekranu wyboru menu i dalej do wybranego przez siebie menu => brak jakichkolwiek problemów ze startem filmu po naciśnięciu PLAY. Title menu w oryginale przypisane jest pod menu angielskie, Root menu - logo WB + ekran wyboru wersji menu.
Pogrzebałem trochę w PGCEdit, ustawiłem polskie menu jako Root menu i... lipa. Płyta i owszem startuje bez problemów od polskiego menu, ale filmu po naciśnięciu PLAY odtwarzać już nie chce, a mnie kończą się już pomysły jak ją do tego zmusić. Menu znajduje się w VTSM 1, sam film w VTST 7, więc komendy JupmVTS_PTT czy JumpVTS_TT nie działają; podobnie jak JumpTT i ustawienie skoku do filmu. Wszystkie przyciski w menu maja komendy Link TailPGC. Prawdopodobnie gdzieś jest jakaś komenda nadrzędna, ale nie bardzo wiem jaka i gdzie jej szukać...
btw - czy da radę przenieść film z VTST 7 do VTST 1 - jeśli tak, jak to zrobić?
Jakby komuś się chciało rzucić okiem, poniżej lista komend z poszczególnych PGC (przed modyfikacją):
First-Play PGC:
Kod:
VMG , First-Play PGC - Chapters: n/a, Programs: n/a, Cells: n/a
********** pre commands:
1 Set gprm(6) =(mov) 1000
2 Set gprm(7) =(mov) 1
3 (JumpSS) Jump to VTSM 1, Root menu (TTN 1)
********** post commands:
********** cell commands:
Playback time: 00:00:00.00 (at 25 fps)
PG Playback mode: sequential
PUOs: 0 (0x00000000)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0
Root Menu:
Kod:
VTSM 1 , LU 1 (en) , 1 (dummy) RootM - Chapters: n/a, Programs: 0, Cells: 0
********** pre commands:
1 if ( gprm(7) != 0 ) then { LinkPGCN PGC 3 }
2 Set gprm(6) =(mov) 0
3 if ( gprm(1) != 0 ) then { LinkPGCN PGC 5 }
4 if ( gprm(2) != 0 ) then { LinkPGCN PGC 4 }
5 Set gprm(0) =(mov) sprm(5:Title number in VTS)
6 Set gprm(0) *=(mul) 256
7 Set gprm(0) |=(or) sprm(7:Chapter number (or PGN))
8 NOP
9 NOP
10 NOP
11 NOP
12 NOP
13 NOP
14 NOP
15 NOP
16 NOP
17 NOP
18 RSM
********** post commands:
********** cell commands:
Ekran wyboru menu:
Kod:
VTSM 1 , LU 1 (en) , 6 (0:00) 2b. - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 NOP
2 NOP
3 NOP
4 NOP
5 Set gprm(0) =(mov) gprm(5)
6 if ( gprm(0) != 0 ) then { Goto line 8 }
7 Set gprm(0) =(mov) 1
8 Set gprm(0) &=(and) 63
9 Set gprm(0) *=(mul) 1024
10 NOP
11 Set gprm(3) =(mov) 1
12 (SetHL_BTN) Set Highlighted Button =(mov) gprm(0)
********** post commands:
1 Set gprm(3) =(mov) 0
2 Set gprm(0) =(mov) sprm(8:Highlighted button number)
3 Set gprm(0) /=(div) 1024
4 if ( gprm(0) != 1 ) then { Goto line 8 }
5 (SetSTN) Set Audio stream = 0 ; Set Sub-picture stream = 0, off
6 LinkPGCN PGC 63
7 NOP
8 if ( gprm(0) != 2 ) then { Goto line 12 }
9 (SetSTN) Set Audio stream = 1 ; Set Sub-picture stream = 1, off
10 LinkPGCN PGC 64
11 NOP
12 NOP
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
2 Groups Select button=0, Action button=0
1: LinkTailPGC
2: LinkTailPGC
Playback time: 00:00:00.10 (at 25 fps)
PG Playback mode: sequential
PUOs: 0 (0x00000000)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0
Subpic stream 1 status: 0x80000001 (streams for 4:3=0, wide=0, letterbox=0, pan&scan=1)
But- Prog. Cell Type Layer Ang VOBU Cell Cell Playback End Entry First Last Last VOB Cell
tons Flags Break Still Still Cmd. Time Time VOBU ILVU VOBU VOBU ID ID
Time # sector End Start End
2 1 1 2 yes - no 255 0 00:00:00.10 00:00:00.10 0 0 0 23 1 1
Polskie menu:
Kod:
VTSM 1 , LU 1 (en) , 6 (0:00) 2b. - Chapters: n/a, Programs: 1, Cells: 1
********** pre commands:
1 NOP
2 NOP
3 NOP
4 NOP
5 Set gprm(0) =(mov) gprm(5)
6 if ( gprm(0) != 0 ) then { Goto line 8 }
7 Set gprm(0) =(mov) 1
8 Set gprm(0) &=(and) 63
9 Set gprm(0) *=(mul) 1024
10 NOP
11 Set gprm(3) =(mov) 1
12 (SetHL_BTN) Set Highlighted Button =(mov) gprm(0)
********** post commands:
1 Set gprm(3) =(mov) 0
2 Set gprm(0) =(mov) sprm(8:Highlighted button number)
3 Set gprm(0) /=(div) 1024
4 if ( gprm(0) != 1 ) then { Goto line 8 }
5 (SetSTN) Set Audio stream = 0 ; Set Sub-picture stream = 0, off
6 LinkPGCN PGC 63
7 NOP
8 if ( gprm(0) != 2 ) then { Goto line 12 }
9 (SetSTN) Set Audio stream = 1 ; Set Sub-picture stream = 1, off
10 LinkPGCN PGC 64
11 NOP
12 NOP
********** cell commands:
********** menu buttons commands:
VOB ID 1, Cell ID 1 (First NAV pack LBA=0)
2 Groups Select button=0, Action button=0
1: LinkTailPGC
2: LinkTailPGC
Playback time: 00:00:00.10 (at 25 fps)
PG Playback mode: sequential
PUOs: 0 (0x00000000)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0
Subpic stream 1 status: 0x80000001 (streams for 4:3=0, wide=0, letterbox=0, pan&scan=1)
But- Prog. Cell Type Layer Ang VOBU Cell Cell Playback End Entry First Last Last VOB Cell
tons Flags Break Still Still Cmd. Time Time VOBU ILVU VOBU VOBU ID ID
Time # sector End Start End
2 1 1 2 yes - no 255 0 00:00:00.10 00:00:00.10 0 0 0 23 1 1
Jedyne menu jakie znalazłem odwołujące się bezpośrednio do VTST 7 (z filmem):
Kod:
VMGM , LU 1 (en) , 2 (dummy) - Chapters: n/a, Programs: 0, Cells: 0
********** pre commands:
1 if ( gprm(4) & 65280 ) then { Goto line 3 }
2 Goto line 6
3 Set gprm(6) =(mov) gprm(4)
4 Set gprm(6) /=(div) 256
5 Set gprm(4) &=(and) 255
6 if ( gprm(4) >= 9 ) then { LinkPGCN PGC 3 }
7 Set gprm(0) =(mov) 1
8 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 1 }
9 Set gprm(0) =(mov) 2
10 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 2 }
11 Set gprm(0) =(mov) 3
12 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 3 }
13 Set gprm(0) =(mov) 4
14 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 4 }
15 Set gprm(0) =(mov) 5
16 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 5 }
17 Set gprm(0) =(mov) 6
18 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 6 }
19 Set gprm(0) =(mov) 7
20 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 7 }
21 Set gprm(0) =(mov) 8
22 if ( gprm(0) == gprm(4) ) then { (JumpTT) Jump to Title 8 }
23 (JumpSS) Jump to First Play PGC
********** post commands:
********** cell commands:
Playback time: 00:00:00.00 (at 25 fps)
PG Playback mode: sequential
PUOs: 0 (0x00000000)
NextPGCN: 0
PrevPGCN: 0
GoUpPGCN: 0
PGC Still Time: 0