Bjs Button highlights

This guide show's 12 main titles .

The project was authored using dvdauthorgui to folder for resetting nav command's required for all these functions using pgcedit .

1: 12 titles , including 13th "about" .
2: A "play all" feature on 2 menu's (return to menu that called it) .
3: All return's , highlight button that initialized the call procedure .

You need to be aware not too cross reference gprm's or it will not function as required .

I prefer to use gprm values , rather then gprm == gprm ... you run out of those when dealing with large project's .

================================================== ==========================

The authored project needed the following done in order to match the first picture snap of the projects completed content , further down .

Right click on menu1 , and select "set menu type" and set to "root menu" .

Right click on menu2 , and select "set menu type" and set to "chapter menu" .

===============

Now right click on menu2 , and select "new dummy pgc" ... your adding 5 dummy pgc's using this procedure repeatedly ... save dvd when done this far and the project will now appear as in picture 1 .

===============

Ok , here is a snap of the project's layout so far in pgcedit .



Ok , and the menu's used as well .

Menu 1 .



And menu 2 .



Now for the nav command's used for the project ... to make it simple , all you need to do is copy the block's of text , and simply paste them where required , taking note of their headings above for pre or post ... you dont want to put them in the wrong place's .

You will need to input those used for the button's though .



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



Pre
[56 00 00 00 04 00 00 00] 1 (SetHL_BTN) Set Highlighted Button =(mov) 1024 (button 1)
[20 A7 00 00 00 01 04 01] 2 if ( gprm(0) == 1 ) then { LinkCN Cell 1, button 1 (1024) }
[20 A7 00 00 00 02 08 01] 3 if ( gprm(0) == 2 ) then { LinkCN Cell 1, button 2 (2048) }
[20 A7 00 00 00 03 0C 01] 4 if ( gprm(0) == 3 ) then { LinkCN Cell 1, button 3 (3072) }
[20 A7 00 00 00 04 10 01] 5 if ( gprm(0) == 4 ) then { LinkCN Cell 1, button 4 (4096) }
[20 A7 00 00 00 05 14 01] 6 if ( gprm(0) == 5 ) then { LinkCN Cell 1, button 5 (5120) }
[20 A7 00 00 00 06 18 01] 7 if ( gprm(0) == 6 ) then { LinkCN Cell 1, button 6 (6144) }
[20 A7 00 00 00 07 1C 01] 8 if ( gprm(0) == 7 ) then { LinkCN Cell 1, button 7 (7168) }
[20 A7 00 00 00 08 20 01] 9 if ( gprm(0) == 8 ) then { LinkCN Cell 1, button 8 (8192) }
[20 A7 00 00 00 09 24 01] 10 if ( gprm(0) == 9 ) then { LinkCN Cell 1, button 9 (9216) }
[20 A4 00 00 00 0A 00 02] 11 if ( gprm(0) == 10 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0B 00 02] 12 if ( gprm(0) == 11 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0C 00 02] 13 if ( gprm(0) == 12 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0D 00 02] 14 if ( gprm(0) == 13 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0E 00 02] 15 if ( gprm(0) == 14 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 0F 00 02] 16 if ( gprm(0) == 15 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 10 00 02] 17 if ( gprm(0) == 16 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 11 00 02] 18 if ( gprm(0) == 17 ) then { LinkPGCN PGC 2 }
[20 A4 00 00 00 12 00 02] 19 if ( gprm(0) == 18 ) then { LinkPGCN PGC 2 }

Now for the button's .

button 1: [71 04 00 00 00 01 00 07] Set gprm(0) =(mov) 1 ; LinkPGCN PGC 7
button 2: [71 04 00 00 00 02 00 07] Set gprm(0) =(mov) 2 ; LinkPGCN PGC 7
button 3: [71 04 00 00 00 03 00 07] Set gprm(0) =(mov) 3 ; LinkPGCN PGC 7
button 4: [71 04 00 00 00 04 00 07] Set gprm(0) =(mov) 4 ; LinkPGCN PGC 7
button 5: [71 04 00 00 00 05 00 07] Set gprm(0) =(mov) 5 ; LinkPGCN PGC 7
button 6: [71 04 00 00 00 06 00 07] Set gprm(0) =(mov) 6 ; LinkPGCN PGC 7
button 7: [71 04 00 00 00 10 00 02] Set gprm(0) =(mov) 16 ; LinkPGCN PGC 2
button 8: [71 04 00 00 00 08 00 03] Set gprm(0) =(mov) 8 ; LinkPGCN PGC 3
button 9: [71 04 00 00 00 09 00 05] Set gprm(0) =(mov) 9 ; LinkPGCN PGC 5



Pre
[20 A7 00 00 00 0A 04 01] 1 if ( gprm(0) == 10 ) then { LinkCN Cell 1, button 1 (1024) }
[20 A7 00 00 00 0B 08 01] 2 if ( gprm(0) == 11 ) then { LinkCN Cell 1, button 2 (2048) }
[20 A7 00 00 00 0C 0C 01] 3 if ( gprm(0) == 12 ) then { LinkCN Cell 1, button 3 (3072) }
[20 A7 00 00 00 0D 10 01] 4 if ( gprm(0) == 13 ) then { LinkCN Cell 1, button 4 (4096) }
[20 A7 00 00 00 0E 14 01] 5 if ( gprm(0) == 14 ) then { LinkCN Cell 1, button 5 (5120) }
[20 A7 00 00 00 0F 18 01] 6 if ( gprm(0) == 15 ) then { LinkCN Cell 1, button 6 (6144) }
[20 A7 00 00 00 10 1C 01] 7 if ( gprm(0) == 16 ) then { LinkCN Cell 1, button 7 (7168) }
[20 A7 00 00 00 11 20 01] 8 if ( gprm(0) == 17 ) then { LinkCN Cell 1, button 8 (8192) }
[20 A7 00 00 00 12 24 01] 9 if ( gprm(0) == 18 ) then { LinkCN Cell 1, button 9 (9216) }

The button's once more .

button 1: [71 04 00 00 00 0A 00 07] Set gprm(0) =(mov) 10 ; LinkPGCN PGC 7
button 2: [71 04 00 00 00 0B 00 07] Set gprm(0) =(mov) 11 ; LinkPGCN PGC 7
button 3: [71 04 00 00 00 0C 00 07] Set gprm(0) =(mov) 12 ; LinkPGCN PGC 7
button 4: [71 04 00 00 00 0D 00 07] Set gprm(0) =(mov) 13 ; LinkPGCN PGC 7
button 5: [71 04 00 00 00 0E 00 07] Set gprm(0) =(mov) 14 ; LinkPGCN PGC 7
button 6: [71 04 00 00 00 0F 00 07] Set gprm(0) =(mov) 15 ; LinkPGCN PGC 7
button 7: [71 04 00 00 00 07 00 01] Set gprm(0) =(mov) 7 ; LinkPGCN PGC 1
button 8: [71 04 00 00 00 11 00 04] Set gprm(0) =(mov) 17 ; LinkPGCN PGC 4
button 9: [71 04 00 00 00 12 00 06] Set gprm(0) =(mov) 18 ; LinkPGCN PGC 6

===============

We are left to fill in the nav command's for dummy pgc's and title's ... the next group is for pgc's



Pre
[30 03 00 00 00 01 00 00] 1 (JumpVTS_TT) Jump to TTN 1 in this VTS



Pre
[30 03 00 00 00 01 00 00] 1 (JumpVTS_TT) Jump to TTN 1 in this VTS



Pre
[30 03 00 00 00 0D 00 00] 1 (JumpVTS_TT) Jump to TTN 13 in this VTS



Pre
[30 03 00 00 00 0D 00 00] 1 (JumpVTS_TT) Jump to TTN 13 in this VTS



Pre
[00 A1 00 00 00 01 00 0D] 1 if ( gprm(0) == 1 ) then { Goto line 13 }
[00 A1 00 00 00 02 00 0E] 2 if ( gprm(0) == 2 ) then { Goto line 14 }
[00 A1 00 00 00 03 00 0F] 3 if ( gprm(0) == 3 ) then { Goto line 15 }
[00 A1 00 00 00 04 00 10] 4 if ( gprm(0) == 4 ) then { Goto line 16 }
[00 A1 00 00 00 05 00 11] 5 if ( gprm(0) == 5 ) then { Goto line 17 }
[00 A1 00 00 00 06 00 12] 6 if ( gprm(0) == 6 ) then { Goto line 18 }
[00 A1 00 00 00 0A 00 13] 7 if ( gprm(0) == 10 ) then { Goto line 19 }
[00 A1 00 00 00 0B 00 14] 8 if ( gprm(0) == 11 ) then { Goto line 20 }
[00 A1 00 00 00 0C 00 15] 9 if ( gprm(0) == 12 ) then { Goto line 21 }
[00 A1 00 00 00 0D 00 16] 10 if ( gprm(0) == 13 ) then { Goto line 22 }
[00 A1 00 00 00 0E 00 17] 11 if ( gprm(0) == 14 ) then { Goto line 23 }
[00 A1 00 00 00 0F 00 18] 12 if ( gprm(0) == 15 ) then { Goto line 24 }
[30 03 00 00 00 01 00 00] 13 (JumpVTS_TT) Jump to TTN 1 in this VTS
[30 03 00 00 00 02 00 00] 14 (JumpVTS_TT) Jump to TTN 2 in this VTS
[30 03 00 00 00 03 00 00] 15 (JumpVTS_TT) Jump to TTN 3 in this VTS
[30 03 00 00 00 04 00 00] 16 (JumpVTS_TT) Jump to TTN 4 in this VTS
[30 03 00 00 00 05 00 00] 17 (JumpVTS_TT) Jump to TTN 5 in this VTS
[30 03 00 00 00 06 00 00] 18 (JumpVTS_TT) Jump to TTN 6 in this VTS
[30 03 00 00 00 07 00 00] 19 (JumpVTS_TT) Jump to TTN 7 in this VTS
[30 03 00 00 00 08 00 00] 20 (JumpVTS_TT) Jump to TTN 8 in this VTS
[30 03 00 00 00 09 00 00] 21 (JumpVTS_TT) Jump to TTN 9 in this VTS
[30 03 00 00 00 0A 00 00] 22 (JumpVTS_TT) Jump to TTN 10 in this VTS
[30 03 00 00 00 0B 00 00] 23 (JumpVTS_TT) Jump to TTN 11 in this VTS
[30 03 00 00 00 0C 00 00] 24 (JumpVTS_TT) Jump to TTN 12 in this VTS

=================

Title Command's :



Post
[00 A1 00 00 00 01 00 05] 1 if ( gprm(0) == 1 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 02 00 00] 7 (JumpVTS_TT) Jump to TTN 2 in this VTS



Post
[00 A1 00 00 00 02 00 05] 1 if ( gprm(0) == 2 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 03 00 00] 7 (JumpVTS_TT) Jump to TTN 3 in this VTS



Post
[00 A1 00 00 00 03 00 05] 1 if ( gprm(0) == 3 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 04 00 00] 7 (JumpVTS_TT) Jump to TTN 4 in this VTS



Post
[00 A1 00 00 00 04 00 05] 1 if ( gprm(0) == 4 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 05 00 00] 7 (JumpVTS_TT) Jump to TTN 5 in this VTS



Post
[00 A1 00 00 00 05 00 05] 1 if ( gprm(0) == 5 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 06 00 00] 7 (JumpVTS_TT) Jump to TTN 6 in this VTS



Post
[00 A1 00 00 00 06 00 05] 1 if ( gprm(0) == 6 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 07 00 00] 7 (JumpVTS_TT) Jump to TTN 7 in this VTS



Post
[00 A1 00 00 00 0A 00 05] 1 if ( gprm(0) == 10 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 08 00 00] 7 (JumpVTS_TT) Jump to TTN 8 in this VTS



Post
[00 A1 00 00 00 0B 00 05] 1 if ( gprm(0) == 11 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 09 00 00] 7 (JumpVTS_TT) Jump to TTN 9 in this VTS



Post
[00 A1 00 00 00 0C 00 05] 1 if ( gprm(0) == 12 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 0A 00 00] 7 (JumpVTS_TT) Jump to TTN 10 in this VTS



Post
[00 A1 00 00 00 0D 00 05] 1 if ( gprm(0) == 13 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 0B 00 00] 7 (JumpVTS_TT) Jump to TTN 11 in this VTS



Post
[00 A1 00 00 00 0E 00 05] 1 if ( gprm(0) == 14 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 07] 2 if ( gprm(0) == 8 ) then { Goto line 7 }
[00 A1 00 00 00 11 00 07] 3 if ( gprm(0) == 17 ) then { Goto line 7 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
[00 00 00 00 00 00 00 00] 6 NOP
[30 03 00 00 00 0C 00 00] 7 (JumpVTS_TT) Jump to TTN 12 in this VTS



Post
[00 A1 00 00 00 0F 00 05] 1 if ( gprm(0) == 15 ) then { Goto line 5 }
[00 A1 00 00 00 08 00 05] 2 if ( gprm(0) == 8 ) then { Goto line 5 }
[00 A1 00 00 00 11 00 05] 3 if ( gprm(0) == 17 ) then { Goto line 5 }
[00 00 00 00 00 00 00 00] 4 NOP
[30 08 00 00 01 83 00 00] 5 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1



Post
[00 A1 00 00 00 09 00 03] 1 if ( gprm(0) == 9 ) then { Goto line 3 }
[00 A1 00 00 00 12 00 03] 2 if ( gprm(0) == 18 ) then { Goto line 3 }
[30 08 00 00 01 83 00 00] 3 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1

==============

INFO :

==============

As you will have seen ... highlight command's for each button , must not be cross-referenced ... you can see a little of this in VTSM 1 , LU1 (en) , 7 , where gprm's using value's 7 to 9 have no reference and neither do value's 16 to 18 .

This is due to both the "chapter" , "play all" , and "about" being referenced as in

1: Chapter use's (7) menu1 and (16) menu2 , and each chapter button is "set" using each other's menu gprm to link to each others chapter button .

2: Play all's from both menu's use their gprm's which initially highlight's them , and both are routed via dummy pgc's 3 and 4 ... you will note that each title has nav's used to tell the difference between "go to next title" or "return to menu" .

3: The About feature use's the same feature's as per play all , yet dose not require nav redirection , it simply route's the initial nav command received back to the menu after the play back of title 13 .

================================================== =====================

Going back to menu 1 , you could route all gprm value's above 9 via using a single command such as

[20 D4 00 00 00 09 00 02] 1 if ( gprm(0) > 9 ) then { LinkPGCN PGC 2 }

This would re-direct all gprm value's above 9 to go to menu2 instead , using a single nav command .

================================================== =====================

This project use's a single VST , but the command's are transferable to MULTI-VST title's created using the "import" feature in pgcedit to build compilation title's .

================================================== =====================

For those working on such projects and needing some help with functions , in pgcedit , go to INFO , DVD COMMANDS ... and save this as a text file ... this would contain all nav command's , and help's locate the problem's much easier .

Tested in nero showtime (highlights work fine) ... ifoedit , windvd , powerdvd , koolplaya , avs dvd player worked , but had highlight issue's ... but some of these issue's were contributed from the title's included in the project .

1: It might be advisable to include a first play title , before first menu ... especially for windvd .
2: Make sure , if title's or menu's include audio , that both stream's match length , or skipping may happen ... noted in ifoedit play back .

There was no navigational problem's with returns to menu's , or call's from menu's , in the above mentioned program's , or on several home dvd player's in which the project was tested on for playback result's .

This end's the guide ... hope you like it .

=================

Playlist's from this point are DEAD SET SIMPLE using this format ... but may not be "newbie" friendly when dealing with huge compilation's ... one false move ... and you might want to blow your brain's out ... lmgo

Try using some of pgcedit's trace method's to locate the area with issue ... it's faster than locating problems via play back .

PS : Yes I could have used a single dummy pgc to control both "play all" and "about" ... so dont tell me this .

The entire project was 2 mb's in total in pal format .

===========

Partially related , as this was created during the process for this project and guide during a previous process ...



Hmm ... not very funny ... but now that I know how to generate these sucker's ... I'll see what I can do with them later .

As a side note :

Those creating mixed content compilation's for playback on home dvd player's , preferably using pgcedit ... could you please confirm if your player's support such play back in the dvd player's section without issue's , thus allowing other's to check this ability prior to purchase of new unit's ... thank you .