Zadanie nie było bardzo trudne

niestety dopiero dzisiaj mam okazję korzystać z kompa ze Scenaristem ale za to zrobiłem specjalnie dla Ciebie nawet kilka prób, żeby być pewnym, że zadziała.
Odp.1: Po ilości pętli
Projekt krótki i przykładowy obrazuje rysunek poniżej.
Zawiera on wszystkie komendy, jakie są wykorzystywane.
Używamy dwa rejestry GPRM ***8211; w przykładzie 0 i 1
First Play uruchamia menu z podświetlonym przyciskiem (domyślnie 1).
Jako Pre Command w menu ustawiamy rejestr GPRM0 na wartość będącą ilością pętli, po których przejściu samoczynnie wywoła się film z Title_1 (u nas wywoła się po piątej pętli).
W Post Command ustawiamy po pierwsze inkrementacje rejestru GPRM1 ***8211; jest to zliczacz pętli (domyślnie wszystkie rejestry GPRM po starcie płyty mają wartość 0, więc rejestr na początku jest czysty).
Następnie jeżeli rejestry 0 i 1 są sobie równe, czyli po przejściu 5 pętli program przechodzi do odtwarzania filmu (mimo tego, że przycisk w menu nie został wciśnięty).
Następnie jeżeli rejestry nie są sobie równe to pracuje pętla ***8211; w tym przypadku zapętlone jest menu).
Komendy są wykonywane jedna za drugą ważna jest więc kolejność komend!
Przycisk menu podlinkowałem do filmu ***8211; gdyby jednak komuś przyszło do głowy go wcisnąć***8230;
Dodatkowo w filmie, tudzież tym co ma się samoczynnie wywoływać, trzeba wyzerować w PreCommands rejestr pętli GPRM1. W przeciwnym przypadku wybór samoczynny zadziała tylko raz ***8211; zostaną zakłócone warunki początkowe.
Zerowanie rejestru przywraca więc początkowe warunki logiczne.
Proste prawda?
Odp.2: Po czasie
Przykład obrazuje rysunek.
UWAGA HARDCORE!
Tego nie da się zrobić wprost z uwagi na ograniczenia GPRMów jako timery.
Mało tego żeby wyskoczyć z filmu po dowolnym czasie można to zrobić tylko w obrębie Title danego VTS. Mało tego aby to osiągnąć trzeba wiedzieć, że w tle wykorzystujemy dwa rejestry SPRM ***8211; mianowicie 9 i 10.
Rejestr 9 ustawia czas, po którym wywoływana jest PGC z rejestru 10.
Dodatkowo sprawa komplikuje się niesamowicie, jeżeli chcemy wyskoczyć w ten sposób z menu.
Dlaczego ***8211; w menu i żadnym innym miejscu niż to, o którym pisałem powyżej nie działają zegary nawigacyjne.
Trzeba więc oszukać menu.
Sama parametryzacja komend w tym przypadku jest prostsza niż w poprzednim. Struktura jest jednak o wiele bardziej skomplikowana.
Po pierwsze RootMenu to Dummy Menu ***8211; jest tylko wskazaniem na miejsce gdzie znajduje się rzeczywiste menu. Musi jednak być, żeby prawidłowo działał przycisk MENU na pilocie DVD.
Plansza_t to menu, PGC_2 to film, PGC_3 to w zasadzie DummyPGC, ale ponieważ Title Entry nie może być Dummy to musiałem wrzucić tam jakiś stały obrazek.
Musiałem tak zrobić, gdyż gdyby timery ustawić w menu to działałyby tylko w przypadku gdy menu trwa dłużej niż ustawiony timer. Gdyby trwało krócej to zapętliłby się warunek początkowy***8230; W naszym przypadku menu pracuje sobie w pętli (link na poziomie celi) a jak timer dojdzie do ustawionej wartości to niezależnie od ilości pętli wyjdzie do filmu.
Czyli wyjdzie dokładnie po ustawionym czasie, czyli tak jak było w pytaniu.
A zapomniałbym czas ustawiamy w SetNVTMR NV_TMR=X, gdzie X = ilości sekund (w naszym przypadku 15).
Życzę miłej analizy i owocnej pracy.
By the way ***8211; sprawa się nieco komplikuje, gdy mamy więcej filmów i więcej przycisków, które mogą być podświetlone a nie naciśnięte a każdy z nich prowadzi w inne miejsce.
Nie będę tego jednak tu opisywał, gdyż nie widzę sensu takiego rozwiązania od strony logiki użytkowania płyty.
Zresztą jak przerobisz przykład powyżej to pewnie coś sam wymyślisz. Dla ułatwienia dodam, że wtedy musisz użyć GPRMów w połączeniu z wartościami przycisków ukrytych w SPRMach a potem to już będzie łatwo***8230;
W razie pytań jak zwykle służę pomocą
Pozdrawiam!