Редактирование DVD№ 51
GUD

BlackChaosThanks за PGCEdit. И за "сурового дяденьку" . А если ещё и:


"Полностью переводить вышеуказанный сайт не буду, но кое-чем поделюсь.
Если конечно у народа интерес есть и администрация не против..."

...то было бы просто СУПЕР. У меня лично интерес огромный... Администрация, Вы не против?
Профиль 

Редактирование DVD№ 52
BlackChaos

Только прежде чем выкладывать то, что уже имеется, хотелось бы узнать, а что именно интересует? Регистры, команды переходов или все полностью?
И есть еще одна проблемка, если я буду приводить готовые примеры, то только используя программу DVD-Lab, а не все работают с ней! Можно конечно на каком-нибудь готовом диске при помощи PGCEdit, но это малость не то.
Профиль 

Редактирование DVD№ 53
BlackChaos

Все, кто смотрел DVD-фильмы, наверняка интересовались внутренним устройством (структурой) этих дисков. Некоторые, чтобы убрать не очень нужные вкрапления (типа рекламных роликов), которые невозможно обойти кроме как просмотреть полностью или для создания своих дисков, не уступающих по возможностям своим официальным собратьям на которых даже можно играть в игры предназначенные детской аудитории. Информация в интернете достаточно скудная и в основном на английском языке, да и поделиться никто особо желанием не горит.
Вот для того, чтобы было легче пройти путь по которому прошел я, и будет описана внутренняя структура DVD, возможные команды и их применение.

Часть первая

Наше путешествие во внутренности любого DVD-видео диска я начну с оговорки о том, что все ниже описанное гораздо легче понять людям знакомым с программированием. Ведь все переходы от фильма к меню или наоборот, а так же установка воспроизведения нужной звуковой дорожки или субтитров, выполняются именно этими командами и использованием регистров. (Регистры – это такие ячейки в которых содержатся какие-то данные). Вот с них я и начну…

Системные регистры:
Все регистры, используемые в DVD делятся на две группы. Первая – это системные регистры задача которых сохранить и сообщить состояние DVD плеера в текущий момент времени. Часть системных параметров определяются и устанавливаются DVD плеером, часть просто индикативных и могут быть только прочитаны. Системные параметры обозначаются как SPRM, всего их 24. Разрядность SPRM регистра 16 бит и, соответственно, максимальное значение регистра может быть 65535 в десятичной системе или FFFFh в шестнадцатиричной. Значения в регистрах SPRM можно просматривать и изменять (конечно, только разрешенные для изменения) во время воспроизведения. Ниже приведено описание всех SPRM регистров с краткими пояснениями:

SPRM0 – Preferred menu language (Код языка меню – определяет код языка, используемого в меню)

SPRM1 –   Audio stream number (Номер текущего аудио-потока)

SPRM2 –   Sub-picture number stream (Номер текущего потока субтитров)

SPRM3 –   Angle number (Номер текущего потока “angle” угла. Наверно видели фильмы в которых можно одну и ту же сцену посмотреть с разных сторон. Например всем известная “Матрица”)

SPRM4 –   Title number in volume (Номер текущего проигрываемого заголовка)

SPRM5 –   Title number in VTS (Номер текущего VTS – равен SPRM4)

SPRM6 –   PGC number (Номер PGC – cодержит номер PGC с текущим проигрываемым тайтлом. Если тайтл включает в себя несколько PGC, то содержимое регистра будет меняться во время воспроизведения)

SPRM7 –   Number chapter or program (Номер текущей проигрываемой сцены или подпрограммы. Номер, естественно, по мере изменения текущей сцены будет также меняться.)

SPRM8 –   Highlighter button number (Номер последней выбранной кнопки)

SPRM9 –   Navigation timer (Параметр определяет время перехода к проигрыванию PGC, номер которой задается значением в SPRM10. При выполнении каждую секунду уменьшается на единицу.)
SPRM10 – PGC jamp for navigation timer (Номер PGC для перехода по таймеру навигации.)

SPRM11 – Karaoke audio mixing mode (Режим караоке DVD-проигрывателя - определяет возможности DVD плеера по микшированию аудио каналов для караоке. Если плеер караоке не поддерживает, то параметр игнорируется.)

SPRM12 – Parental management country code (Код страны для управления родительским контролем. В разных странах разное отношение к восприятию детьми фильмов. В одной стране можно смотреть, а в другой только в присутствии родителей. Вот тут и помогает данный регистр в совокупности с SPRM13.)
SPRM13 – Parental level (Уровень родительского запрета - определяет уровень запрета, устанавливаемый в соответствии с кодом страны, заданным в SPRM 12.)

SPRM14 – Video preference and current mode (Определяет соотношение сторон кадра и текущий режим.)

SPRM15 – Player audio capabilities (Возможности поддержки проигрывателем аудио форматов.)

SPRM16 – Preferred audio language (Стартовый код языка для звука.)
SPRM17 – Preferred audio language extension (Расширение кода языка.)
(Два эти регистра SPRM16 и SPRM17 используются вместе)

SPRM18 – Preferred sub-picture language (Стартовый код языка для субтитров.)
SPRM19 – Preferred sub-picture language extension (Расширение кода языка субтитров.)
(Так же используются вместе)

SPRM20 – Player region code (Региональный код установленный в проигрывателе)

SPRM21-23 – Reserved (Зарезервировано)

Общие регистры:
Регистры общего назначения (GPRM) могут использоваться абсолютно свободно для ваших целей. Разрядность GPRM регистра 16 бит и, соответственно, максимальное значение регистра может быть 65535 в десятичной системе или FFFFh в шестнадцатиричной. Обозначаются они от GPRM0 до GPRM15.

Я понимаю, что тем, кто не очень в ладах с официальной терминологией или новичкам, могут быть непонятны некоторые используемые обозначения. Поэтому вот маленький словарик:

Cell - ячейка - В DVD-Video минимальный адресуемый элемент DVD проекта. Если фильм разбить на главы, например, то фрагмент от начала главы до ее конца также является ячейкой (cell).
Angles - показ одного и того же изображения, снятого разными камерами.
PGC - Program Chain - программная цепочка - Основной элемент структуры диска, состоит из нескольких “program”, связанных вместе для последовательного воспроизведения. На диске обязательно должна быть хотя бы одна PGC.
Program - программа - под программой в DVD среде понимается набор аудио и видео фрагментов. Включает в себя несколько ячеек (Cell).
PTT - Part of Title - фрагмент “title” - часть “title”, иными словами глава или сцена.
Title - заголовок - наибольший элемент компоновки в диске. Диск может содержать до 99 title, выбрать которые можно через “Title Menu”.
VMG - Video Manager - видео менеджер - меню диска, служит для доступа ко всем “titles” на диске. Тем не менее реально может не использоваться, если на диске только один VTS. Если VTS больше, чем один, то доступ ко всем VTS можно получить только через VMG.
VTS - Video Title Set - набор title - контейнер для практически всех составляющих DVD-Video диска. Именно внутри VTS устанавливаются строгие ограничения по единому стандарту применяемых файлов. Может содержать до 99 titles.


На первый раз все. Далее я расскажу о командах используемых при создании DVD дисков.

Профиль 

Редактирование DVD№ 54
BlackChaos

Часть вторая

Все действия (просмотр фильма, переход в меню выбора глав или выбор языка) выполняются при помощи специального командного языка или, как его еще называют, виртуальными машинными командами VM. Всего существует около 40 (сорока) команд. Эти команды могут использоваться в различных местах DVD, но в основном вы будете использовать их в PRE – перед объектом и в POST – после объекта. В данном случае “объект” – это сам фильм или меню. Очень интересно использование Cell Commands (команды ячейки) – а если проще, то можно сделать такой диск, в котором определенные фрагменты будут пропускаться, если на проигрывателе стоит “родительский контроль”. Ну, или можно сделать две версии фильма, одна нормальная, а вторая, как говорят, с “альтернативным финалом”. Придумать можно много, а вот чтобы воплотить задумку в жизнь надо знать следующие операторы и команды.

GPRM операторы:
Синтаксис в разных программа может выглядеть по разному и поэтому я буду приводить несколько примеров одного и того же оператора. А в качестве просто числа будет использовано число “15”.

Assign – оператор присваивания регистру значения в виде числа или значения из другого регистра.
Примеры: GPRM1 = 15; GPRM1 = GPRM2; GPRM1 = SPRM1
Альтернативный: mov(GPRM1, 15); mov GPRM1, 15; GPRM1 mov 15

Swap – взаимный обмен регистров значениями.
Пример: GPRM1 <-> GPRM2
Альтернативный: swp GPRM1, GPRM2; swp(GPRM1, GPRM2); GPRM1 swp GPRM2

Addition – оператор добавления (именно добавления).
Примеры: GPRM1 += 15; GPRM1 += GPRM2; GPRM1 += GPRM1 + 15
Альтернативный: add GPRM1, 15; GPRM1 add 15; ADD(GPRM1,15)
Здесь, людям не знакомым с программированием наверно требуется пояснить почему именно “добавления”. Я поясню это на следующем примере. В регистре GPRM1 содержится значение 2. Тогда, чтобы получить в регистре 5 (пятерку), следует выполнить следующее действие GPRM1 += 3. В обычной нотации будет выглядеть так: GPRM1 = GPRM1 + 3 (5 = 2 + 3).

Subtraction – вычитание. Принцип аналогичен вышеописанному оператору добавления.
Примеры: GPRM1 -= 15; GPRM1 -= GPRM2
Альтернативный: sub GPRM1, 15; GPRM1 sub 15; sub(GPRM1, 15)

Multiply – умножение. Принцип аналогичен вышеописанному оператору добавления.
Пример: GPRM1 *= 15; GPRM1 *= GPRM2
Альтернативный: mul GPRM1, 15; GPRM1 mul 15; mul(GPRM1, 15)

Divide – целочисленное деление. Принцип аналогичен вышеописанному оператору добавления.
Пример: GPRM1 /= 15; GPRM1 /= GPRM2
Альтернативный: div GPRM1, 15; GPRM1 div 15; div(GPRM1, 15)

Remainder – остаток или модуль деления.
Пример: GPRM1 %= 15; GPRM %= GPRM2
Альтернативный: mod GPRM1, 15; GPRM1 mod 15; mod(GPRM1, 15)

Random – случайное число.
Пример: GPRM1 rnd 15 (Положить в регистр GPRM1 случайное число между 0-15);
GPRM1 rnd GPRM2 (Положить в регистр GPRM1 случайное число между “0” и числом содержащимся в GPRM2).
Альтернативный: rnd GPRM1, 15; rnd(GPRM1, 15)

AND – логическое “И”. Здесь я только скажу, что открывать ликбез по основам программирования не буду – так что кто не знает, что такое “булева алгебра” или работа с битами, поищите в нете информацию на эту тему.
Примеры : GPRM1 &= 15; GPRM1 &= GPRM2
Альтернативный: and GPRM1, 15; GPRM1 and 15; and(GPRM1, 15)

OR – логическое “ИЛИ”.
Примеры: GPRM1 |= 15; GPRM1 |= GPRM2
Альтернативный: or GPRM1, 15; GPRM1 or 15; or (GPRM1, 15)

XOR – логическое отрицание или неэквивалентность.
Примеры: GPRM1 ^= 15; GPRM1 ^= GPRM2
Альтернативный: xor GPRM1, 15; GPRM1 xor 15; xor(GPRM1, 15)

Вот вроде и все операторы. Вы наверно обратили внимание, что слева может находиться только один из регистров общего пользования GPRM. Справа – число (ака константа), регистр GPRM или SPRM.
Прошу так же обратить внимание, что знак “=” – это не сравнение, а именно оператор присваивания. Сравнение обозначается вот так “==” (два знака “=” вместе). Это очень важно, иначе вы рискуете долго искать причину, по которой ваш диск не работает так как задумано!

А теперь подробней об операторt сравнения “==” и прочих, а так же проверке состояния регистров при помощи “if” (если). Заметьте, что операторы сравнения используются только с “if”.

Пример: if (GPRM1 == 15) Goto 5 – расшифровка этого очень проста. Если регистр GPRM1 равен 15 то перейти на строку с номером 5. (Goto – это команда перехода с которой мы ознакомимся чуть дальше.) Конечно кроме оператора сравнения есть и другие, все они приведены ниже.

== – упомянутый уже оператор сравнения.
Примеры: if (GPRM1 == 15); if (GPRM1 == GPRM2); if (GPRM1 == SPRM1)
(если GPRM равно)

!= – оператор “не равно”.
Примеры: if (GPRM1 != 15); if (GPRM1 != GPRM2); if (GPRM1 != SPRM1)
(если GPRM не равно)

>= – оператор “больше или равно”
Примеры: if (GPRM1 >= 15); if (GPRM1 >= GPRM2); if (GPRM1 >= SPRM1)
(если GPRM больше или равен)

> – оператор “больше”.
Примеры: if (GPRM1 > 15); if (GPRM1 > GPRM2); if (GPRM1 > SPRM1)
(если GPRM больше)

<= – меньше или равно.
Примеры: if (GPRM1 <= 15); if (GPRM1 <= GPRM2); if (GPRM1 <= SPRM1)
(если GPRM меньше или равно)

< – оператор “меньше”
Примеры: if (GPRM1 < 15); if (GPRM1 < GPRM2); if (GPRM1 < SPRM1)
(если GPRM меньше)

& – логическое “И”.
Примеры: if (GPRM1 & 15); if (GPRM1 & GPRM2); if (GPRM1 & SPRM1)
(если GPRM при выполнении логического “И” не равно нулю)

Здесь так же нельзя использовать левым операндом ничего кроме регистров GPRM.
Кроме того, почти все команды могут использоваться с операторами сравнения, за некоторым исключением. Например написав:
if (GPRM1 == 15) LinkPGCN 1
или
if (GPRM1 == GPRM2) Goto 10
будет правильно, то
if (GPRM1 == 15) JumpSS VMGM 1
работать уже не будет. Вместо этого следует писать таким образом:
GPRM2 = 15
if (GPRM1 == GPRM2) JumpSS VMGM 1

C чем это связано я точно не знаю, но думаю что это ограничения разрешенной длины команды в занимаемых ею байтах.
Отсюда следует следующее ограничение: Команды JumpSS, CallSS и Set... не могут использоваться совместно со сравнением с константой!

В третьей части я расскажу и подробно объясню назначение и принятый синтаксис команд и приведу маленький пример их возможного использования.
 
[ 11-11-05, Птн, 21:33:38 Отредактировано: BlackChaos ]
Профиль 

Редактирование DVD№ 55
GUD

BlackChaos "Наше путешествие во внутренности любого DVD-видео диска я начну с оговорки о том, что все ниже описанное гораздо легче понять людям знакомым с программированием."

Н-дя... С программированием не знаком... Хотя когда-то в школе что-то похожее было. В принципе, смысл операторов понятен. Только где их писать(менять) и чем вообще открыть IFO(BUP), чтобы всё это увидеть?

BlackChaos "Только прежде чем выкладывать то, что уже имеется, хотелось бы узнать, а что именно интересует?"

Откуда всё пошло: "Допустим взял у соседа DVD диск. Скопировал себе на винт. Поправил настройки (то же предупреждение убрал), после чего записал на болванку." Вот и хочется убрать предупреждение, рекламу, ненужные языки и субтитры, а также всё, что имело к перечисленному какое-то отношение (кнопки, ссылки в VOB, может ещё чего?). Так же, как и искренне уважаемый BlackChaos, сталкивался с тем, что на диске, где язык меняется только через меню (от этого тоже не мешало бы избавиться!), после смены воспроизведение начинается с начала.
Профиль 

Редактирование DVD№ 56
GUD

Кстати, почитал Ваш гайд в теме Дяди Фёдора "DivX2DVD - полный таториал"... Вопрос про кнопки: неужели они просто текст в одном слое с фоном? Тогда получается, что программки для создания своих DVD, где сам создаёшь кнопки, затем просто "объединяют слои"?
Профиль 

Редактирование DVD№ 57
BlackChaos

Кнопки сами по себе ничего не делают и ничего интересного не представляют. Они просто часть картинки - статичной или анимированной, без разницы. Можно свободно заменить любое меню - так я писал в упомянутых постах. А вот именно подсветка при выборе какого-либо пункта и представляет особый интерес. Это ни что иное как обычные субтитры, только используемые по другому.
В итоге меню представляет собой два слоя: первый - это сама картинка (то, что мы видим на экране), и второй слой - субтитры, представляющие собой четырехбитную картинку (черно-белую).
Профиль 

Редактирование DVD№ 58
GUD

BlackChaos, сорри ламера, таки чем можно открыть IFO, что бы "полюбоваться"-поковыряться изнутри?
Профиль 

Редактирование DVD№ 59
BlackChaos

Весь код DVD-диска содержится именно в Ifo-файлах. Простым его редактированием можно сделать все - разве только размеры активной области кнопок находятся в VOB-файлах. Как я уже говорил, лучше всего для этой цели подходит именно программа PGCEdit. Она показывает не просто строки кода - подобно IfoEdit, а еще и их взаимосвязь. В программе присутствует даже трассировщик с помощью которого можно легко отслеживать изменения в регистрах, переходы по ссылкам и прочее. Она конечно сложновата на первый взгляд, но я и не говорил, что будет просто. Сегодня выложу информацию по командам DVD и приведу пару примеров (как защитить свой диск от просмотра в одном, определенном регионе и как сделать просмотр невожможным, если проигрыватель мультирегионный). Ну может быть, если успею, то покажу как делается заставка на диске, чтобы она проигрывалась только один раз!
Все примеры будут показаны при помощи PGCEdit.

Надеюсь такой вариант устроит всех интересующихся?
Профиль 

Редактирование DVD№ 60
GUD

BlackChaos, Меня лично устраивает (и очень интересует) всё, рассказываемое и описываемое Вами... PGCEdit есть, так что с удовольствием буду изучать примеры.
Профиль 

Редактирование DVD№ 61
BlackChaos

Извиняюся за задержку, но просто дела семейные... статья то готова была, а вот пример не был оформлен. Но вот, получайте продолжение.

Часть третья

Как я и обещал сейчас последует список команд используемых при создании DVD. Я понимаю, что возможен тот случай, когда не все будет понятно. Но тут я уж помочь сильно не смогу – вооружайтесь программой PGCEdit, открывайте диски и изучайте их внутреннюю структуру и код. Практика, в данном случае - лучший учитель.

VM команды:

n”– число, регистры GPRM или SPRM.
ttn” – регистры GPRM или SPRM.

1. Nop – нет операции

2. Goto (n)– переход на строку.

3. Break – останов программы, а точнее прекращение выполняемого кода и выход из текущей подпрограммы.

4. Exit – прекращение показа DVD. Проще говоря команда “Стоп”.

5. LinkPGCN (n) – связь c PGC в том же домене.

6. LinkPGN (n) – связь c программой в том же PGC.

7. LinkCN (n) – связь c ячейкой (Cell) в текущем PGC.

8. LinkNoLink (n) – подсветить кнопку (сделать выбранной). Здесь хочу сразу заметить, что кнопки считаются начиная не с единицы а с числа 1024, а каждая следующая в степени два. Первая кнопка – 1024, вторая – 2048 и т.д.

9. LinkTopC (n) – связь c текущей ячейкой (Cell) в текущем PGC.
10. LinkNextC (n) – связь cо следующей ячейкой (Cell) в текущем PGC.
11. LinkPrevC (n) – связь c предыдущей ячейкой в текущем PGC.

12. LinkTopPG (n) – связь c текущей программой в этом же PGC.
13. LinkNextPG (n) – связь cо следующей программой в текущем PGC.
14. LinkPrevPG (n) – связь c предыдущей программой в том же PGC.

15. LinkTipPGC (n) – связь c текущим PGC в текущем домене.
16. LinkNextPGC (n) – связь cо следующим PGC в текущем домене.
17. LinkPrevPGC (n) – связь cо следующим PGC в текущем домене.

18. LinkGoUpPGC (n) – связь c вызовом PGC в текущем домене.

19. LinkTailPGC (n) – связь с POST-командами в текущем PGC.

20. LinkPTT (n) – связь c PTT в текущем VTS.

21. RSM – вернуться к воспроизведению. (Здесь возникает достаточно интересная проблема к которой я вернусь в примерах.)

22. JumpTT (ttn) – переход к видео-заголовку.

23. JumpVTS_TT (ttn) – перейти к видео-заголовку в тукущем VTS.

24. JumpVTS_PTT (ttn) – перейти к PTT в указанном VTS.

25. JumpSS FP – переход к First-Play PGC.

26. CallSS – перейти к First-Play PGC из VTS

27. SetSTN (audio=n subp=n:on angle=n) – установить Audio/Subtitle/Angle – потоки.

28. SetHL_BTN (tt) – подсветить (выбрать) кнопку.

Если кого удивляет, что количество команд недотягивает до упомянутых 40 – отвечу, здесь только те, предназначение которых я знаю. Остальные не попадались ни на одном из имеющихся дисков и проследить их я не мог.


А теперь можно и приступить к примерам!

Пример 1
Условие: Нужно сделать так, чтобы наш диск не проигрывался в определенном регионе… пусть будет в первом (Америка и Канада), даже если региональная привязка снята при помощи специальных программ.

Запускаем программу PGCEdit и выбираем любой DVD (предварительно перенесенный на жесткий диск), желательно с рекламой, на которую мы сделаем переход. В самостоятельно изготовленном диске конечно придется добавить такую заставку.
Я использую PGCEdit версии 0.6.1 – в ней нужно зайти в меню “Options” -> “Command Editor” и поставить галочку напротив “Auto renumber GOTOs when commands added/removed” – это для того, чтобы программа автоматом поправляла номер строки в команде “Goto“. Теперь все будет в полном порядке и можно продолжать…

Слева имеется вся структура открытого DVD, где нужно выбрать первую строку - всегда “VMG First-Play PGC”. C правой стороны появятся команды данного PGC. Что именно там находится нас пока не особо интересует. Мы просто добавим нужные команды не затрагивая уже существующих. Встаем курсором на “pre commands” и вызываем контекстное меню, где выбираем “Add after”. Повторяем процедуру пять раз. В итоге у нас появится пять дополнительных строк с командой “NOP”. Встаем на первый “NOP” и кликаем два раза или нажимаем клавишу “Пробел”, или вызываем контекстное меню в котором выбираем “Edit Cmd”. Теперь в появившемся окне снова в меню – “By Type”->”Set”->”GPRM”->”Set GPRM (Set)” - окно изменит свой вид. В нем ставим параметры как на картинке:

Кнопка “Ок” и первая строка готова. Встаем на строку за номером 2 и снова вызываем редактор команд: “By Type”->”Set”->”GPRM”->”Set GPRM (Set)”. Снова все как на картинке:

Строка номер 3:

Строка с номером 4 делается немного по другому. Снова в редактор команд: “Numerically -> Flow control -> GoTo”

И ставим все как на картинке. В параметре “Goto line” у меня стоит цифра 6 (шесть). В принципе у вас она не должна отличаться от приведенной – мы же просто добавили строки и все. В этом PGC всегда есть хотя бы одна строка на которую команда “Goto” и должна сделать переход при выполнении некоторых условий.
Самое сложное – это пятая строка. Почему – я не знаю как устроен ваш диск, на котором вы тренируетесь. На моем диске реклама расположена в VTS 2 поэтому я добавляю следующую команду: “Alphabetically -> JumpTT” и в параметре ставлю цифру два.

Если у вас диск имеет другую структуру, то попробуйте использовать разные команды, только следите, чтобы после изменения она не стала красного цвета – это значит, что так работать не будет (ошибка). Вот что получилось у меня:

1 Set gprm(0) =(mov) sprm(20:Player region code)
2 Set gprm(0) ^=(xor) 255
3 Set gprm(0) &=(and) 1
4 if ( gprm(0) == 0 ) then { Goto line 6 }
5 (JumpTT) Jump to Title 2


Теперь расшифруем, что делает каждая строка, но для начала ознакомимся вот с чем… Вам наверняка известно, что весь мир поделен на регионы. Всего существует не шесть регионов, как говорят некоторые справочники, а восемь. Вот их список:

Видите рядом с порядковыми цифрами вот такие записи (val: 1, val: 2… val: 128) Вот эти вот “val” и есть те самые коды, которые выдает системный регистр SPRM20. Почему именно так… Битовые значения (прошу прощения у тех, кто хорошо знаком с булевой алгеброй) этих чисел выглядят следующим образом:
1. 1    = 00000001
2. 2    = 00000010
3. 4    = 00000100
4. 8    = 00001000
5. 16   = 00010000
6. 32   = 00100000
7. 64   = 01000000
8. 128 = 10000000
Самое странное, что при установке какого-либо региона, бит, соответствующий этому региону устанавливается не в единицу, а в ноль. Соответственно если проигрыватель настроен на первый регион, то SPRM20 выдаст в качестве параметра код 254 (255 – 1 = 254), что в битовом варианте равно 11111110. Если установлено сразу несколько кодов, например первый (Америка и Канада) и пятый (Россия), то в регистре SPRM20 получим число 238 (255 – 1 – 16 = 238) или в двоичном счислении 11101110. А если разрешить все регионы, то 0 (ноль) – 00000000.
Теперь обещаные объяснения:
Set gprm(0) =(mov) sprm(20:Player region code) – в регистр общего пользования GPRM0 заносится значение из системного регистра SPRM20 (региональная установка проигрывателя).
Set gprm(0) ^=(xor) 255 – здесь выполняется побитовое преобразование – инвертируются все биты (опять для незнающих: нули становятся единицами, а единицы – нулями). Команда XOR с числом 255 (11111111), как раз и выполняет такое действие. Если проигрыватель был установлен на первый регион, то число 254 (11111110) преобразуется в 1 (00000001).
Set gprm(0) &=(and) 1 – с помощью битовой команды “AND” проверяем, а не установлен ли в проигрывателе первый регион. Команда “AND” делает следующее - сравнивает побитно два числа и если в обоих эти разряды установлены в 1, то результатом будет 1, иначе результатом будет 0. У нас 00000001 “AND” 00000001 – в результате получаем 1, т.е. был установлен первый регион.
if ( gprm(0) == 0 ) then { Goto line 6 } – если GPRM0 равен 0 (нулю – первый регион не установлен), тогда переход на строку с номером 6. Соответственно в случае, когда не равно нулю (первый регион установлен), то перехода не происходит, а выполняется следующая строка под номером пять.
(JumpTT) Jump to Title 2 – переход на ролик с рекламой.

Если же вы хотите проверить несколько регионов, то в строке 3 (три) нужно просто изменить значение на другое. Например хотим проверить регионы 1, 3 и 4. Тогда получится следующее: 1 + 4 + 8 = 13 (11110010) – вот это число и подставляем. Или проверим регионы 6 и 2, тогда 2 + 32 = 34 (11011101).
Если вы хотите запретить просмотр на “мультизонных” проигрывателях, то просто опустите строки 2 и 3, а в строке 4 напишите так:
if (gprm(0) != 0) then { Goto line 6 }
Вот вроде и все…

Хотя я забыл упомянуть еще один интересный вопрос. Мы сделали проверку в “First Play PGC”, что является неверным решением, по очень простой причине – если во время просмотра ролика нажать кнопку “Меню”, то проигрыватель спокойно перейдет в меню минуя наш код. Отсюда вывод, что следует вставить дополнительный блок команд “VM Command” с нашим кодом, а в меню выполнить на него переход. Тогда в случае, если проверка регионов прошла нормально (просмотр разрешен) – вновь вернуться в меню и продолжить проигрывание, а если нет, то вновь на ролик. Попробуйте сделать сами. В следующей статье я скорее всего покажу как написать такой код – вот и сравним! Как вариант, можно просто прекратить выполнение диска командой “Exit”.

Вот теперь действительно все!

********************************
Добавлено:
Я совсем забыл сказать одну простую вещь! Такая защита называется "RCE protection" и используется на дисках первой зоны! (Жадные они... буржуины!. Замечу, чтоб такая защита работала как можно лучше, не стоит кодировать диск на определенный регион. Причина опять же проста - есть DVD-проигрыватели, которые определяют регильнальный код диска и выставляют значение регистра SPRM20 в такой же. Соответственно защита не срабатывает!
Да и программы, типа DVD-декрипторов, определяют такой тип защиты.
 [ 18-11-05, Птн, 21:14:08 Отредактировано: BlackChaos ]
[ 18-11-05, Птн, 22:42:10 Отредактировано: BlackChaos ]
Профиль 

Редактирование DVD№ 62
VoronTVPro

BlackChaosПодскажите плиз как откорректировать IFO. Ситуация такая: На диске два фильма. После окончания первого фильма, перехода на следующий нет. В меню так же не выходит. Похоже просто виснет. Так вот, где и что надо прописать чтоб по окончании фильма начинался следующий. Спасибо.
Профиль 

Редактирование DVD№ 63
BlackChaos

В IfoEdit такое можно сделать, но практически будет очень сложно осуществить. Причина в том, что вы не знаете заранее куда и как сделать переход. Так что мой совет будет таков: 1. Сначала скачать и установить программу PGCEdit (ссылки я давал в предыдущих постах) - она откроет всю структуру диска.
2. Снять скрин экрана и прислать мне на "мыло" (адрес есть в профиле)
3. Я гляну и скажу точно какой командой и куда это можно сделать.
Профиль 

Редактирование DVD№ 64
aport

BlackChaos,
может можете подсказать, что делать в моей ситуации: Хотел с помощью WinDVD Creator/DiskManager изменить фон простейшего меню на DVD+RW, а он глюкнул и в результате софтовый плейер теперь видит только 5 первых кнопок меню (было 20), да и эпизоды как-то перемешались и не соответствуют кнопкам, а часть эпизодов вообще не видно. В тоже время WinDVD Creator/DiskManager продолжает видеть(и проигрывать) старое меню и все эпизоды.

Как вы думаете, чем быстрее исправить ситуацию? Как советовал ДядяФедор в мае "сделать демультиплекс в TMPGEnc, а потом создать меню и собрать все вместе" из VOB файлов, или заняться изучением PGCEdit в целях попытаться поменять ссылки в IFO вручную?

Заранее спасибо.


Профиль 

Редактирование DVD№ 65
BlackChaos

Если я правильно понял, то имела место попытка изменить изменить само меню. Я делал такую вещь и подробно описывал весь процесс вот тут.
Если делал тоже самое, то могло произойти только одно (я так думаю) - размер нового видео-потока (картинки меню) оказался большим размером чем заменяемый (старый). В постах на которые приведена ссылка я говорил, что новый поток должен быть по размеру точно таким же как и старый или чуть-чуть меньше. Но ни в коем случае не больше! Результат несоблюдения этого правила, как говорится "на лицо".
Чем помочь... лучший вариант конечно - это вернуться к старому и все переделать по новой, но это если старый вариант сохранился. Если нет, то только разбирать меню на "запчасти" и создавать по новой вместе с фильмом.
Можно конечно попробовать более длительный по времени вариант - повторить проделанную операцию еще раз уменьшив размер нового потока! Но тут как повезет, можно сразу получить нужный результат, а можно и через N-ное количество попыток.
В качестве утешения, могу сообщить что мной эта процедура было проделана не менее 50-ти раз, прежде чем я уяснил ошибку и написал на форум как это сделать.

Если что... жду вопросов!
 
[ 24-11-05, Чтв, 21:16:27 Отредактировано: BlackChaos ]
Профиль 

Редактирование DVD№ 66
aport

BlackChaos,
спасибо, чтохорошо обо мне подумали. На самом деле никаких сложных процедур я не проводил
(ваша ссылка правда сейчас не открывается, но думаю там какая-нибудь непростая вещь).
DiskManager в WinDVD Creator простая процедура, которая читает ваш диск и предлагает несколько стандартных интерфейсов меню. Я просто выбрал меню как было, но с другой фоновой картинкой. К сожалению диск до обновления я не сохранил (умный очень), а программа при записи изменений дает сбой (может понимает только свои меню?).

Не понимаю, почему DiskManager видит одно меню, а скажем CloneDVD2 другое на одном и том же диске. Может CloneDVD2 (да и плейер тоже) смотрят BUP-файл? Тогда может для эксперимента удалить его? Кстати DVDRemaker не видит вообще никакой привязки видео потока к меню и вставляет нулевые ссылки.

"Создавать по новой вместе с фильмом" это то что предлагал ДядяФедор сделать из VOB? А в этом процессе случайно перекодировки не будет? Не хотелось бы терять качество.

А что вы понимаете под повторить еще раз, уменьшив размер потока в моем случае? Размер потока зависит от сложности фоновой картинки или это свойство DiskManager? Я же меняю фоновую картинку не вручную.


Спасибозаучастие.
Профиль 

Редактирование DVD№ 67
BlackChaos

Именно то что предлагал дядя Федор и предстоит сделать в таком случае!
Качество не пострадает если просто сделать "demux", а потом собрать по новой. Я лично пользуюсь DVD-Lab Pro. Можно конечно попробовать исправить с помощью PGCEdit, но тут я посоветовать не смогу, так как должен видеть диск перед глазами... а то насоветую! Просто похоже, что добавилось еще одно меню которое и своротило все ссылки - PGCEdit может помочь!

Что касаемо размера потока, то лучше всего кодировать с помощью Cinema Craft Encoder (дядя Федор писал как это сделать) в нем можно выставить нужный размер файла. А вообще все про размер - по ссылке! Ссылку я поправил - можно глянуть!

Если что... вопрошай!
Профиль 

Редактирование DVD№ 68
aport

Решил таки посмотреть структуру через PGCEdit.При сканировании на BOV дает ошибку "неверный идентифиуатор NAV pack" и предлагает сделать "mock strip"
в IFOEdit. Не посоветуете где можно почитать по этой процедуре?

Кстати PGCEdit нашел на диске только одно меню и пунктов в нем сколько должно быть,
а вот титулов видит в два раза больше. Привязки второй цепочки (нумерация продолжается по нарастанию) титулов к меню не видно. Причем поток второго меню попал в первый титул в цепочке (и в его копию), но как меню не воспринимается, а стоит в видеопотоке.
Может ссылки на копию цепочки титулов просто удалить?
Профиль 

Редактирование DVD№ 69
BlackChaos

Наиболее подходяще только тут.
Профиль 

Редактирование DVD№ 70
aport

BlackChaos, большое спасибо за ссылку.

Посмотрел другой диск с аналогичным меню, но до обработки Disk Manager. Оказывется
увеличение титлов в два раза это видимо свойство данного меню - у второго диска их
тоже в два раза больше, и все работает. Для ссылки на эти дублирующие титлы в блоке
VMGM присутствует дополнительный PGC, аналогичный по командам PGC первого набора титлов, но со ссылками на второй. На первый взгляд отличие, внесенное Disk Manager заключается в том, что в конце обоих PGC в VMGM он заменил комбинацию команд
Set gprm(5) =(mov) 258
(JumpTT) Jump to Title 20
на команду
Link PGC 1

Хотел "тупо" поменять команды обратно, но столкнулся с новой проблемой. Может подскажите в чем тут загвоздка. PGCEditor перестает читать директорию с видеофайлами уже после первого спасения проекта (даже если никаких изменений не производилось, только открытие и спасение). Говорит,что неправильная длина таблицы и предлагает поправить в IFOEdit.
Выглядит это как-то странно, поскольку до спасения он файлы читал.

Кстати, если интересно, могу послать структуру команд этого меню, которое создает бытовой Philips DVD/HDD Recorder без всякого компьютера (видимо есть зашитый софт).


Профиль 

Редактирование DVD№ 71
BlackChaos

А не "будет ли любезен многоуважаемый" aport, кинуть мне на мыло свое мыло? Зачем объясню уже там - некоторая помощь требуется!
Профиль 

Редактирование DVD№ 72
DRUG

Ребята, не подскажете программу, которая показывает время (реальное, в формате чч:мм:сс фильма)перехода с одного слоя на другой для двуслойных болванок.
Профиль 

Редактирование DVD№ 73
BlackChaos

Не встречал такой. А можно спросить зачем?
Профиль 

Редактирование DVD№ 74
DRUG

Мне нужно проверить, возникает ли на плейере пауза при переходе с одного слоя на другой, или нет. И чтобы не тратить время, желательно знать хотя бы приблизительно это время. Диски писались программой, которая сама ставит layer break.
Профиль 

Редактирование DVD№ 75
BlackChaos

Понятно! Тогда пользуй программу PGCEdit. Там в Edit PGC показывается время перехода со слоя на слой.
Профиль 

Редактирование DVD№ 76
Oleggy

Как я понял из постов, здесь есть люди которые смогут помочь мне разобраться в некоторых терзающих меня вопросах.. а именно их несколько.. вот они:
1. Как легко и просто имея несколько разных VOB создать IFO файл чтоб работали корректно переключение чаптеров и перемотка? Вроде сам что то сделал с помощью IfoEdit но получилось ужасно ни чаптеры ни перемотка вообще нормально не работает (все в разнобой.. ) Мне бы желательно простую инструкцию.. (типа захожу в то меню
устанавливаю то.. и OK!)
2. Как обьединить несколько VOB в один без пережатия? Вроде с помощью TMPGEnc но так в нем и не разобрался... Желательно тоже простую инструкцию..
3. Как пережать DVD? отдельный VOB? если пережимать то нужен как я понял кодек Cinema Craft Encoder чтоб было хорошее качество... установил.. но там нет открыть VOB..
Ребята кто может подскажите... плиз..
Профиль 

Редактирование DVD№ 77
BlackChaos

На третий вопрос можно ответить сразу. Поищи программу DVDShrink или DVDRebuilder PRO - они обе пережимают DVD целиком. Правда DVDRebuilder дает лучший результат (хотя и за большее время) по причине использования не встроенного кодека, как в Шринке, а любого другого Cinema Craft или Canopus.
Что касается CinemaCraft Encoder и вообще DVD, то посмотри тут и тут.

Перехать VOB в один... а какой размер исходных файлов? Они не могут быть более чем 1024 мегабайта.

Остальное через некоторое время расскажу.
Профиль 

Редактирование DVD№ 78
Oleggy

BlackChaos, благодарствую!
про 3-ий вопрос:
Про DVDShrink знаю, пользовался.. но отказался, т.к. он довольно ограниченный (нельзя менять разрешение, частоту, а битерейт только уменьшается до ~50%), а вот DVDRebuilder PRO попробую...
про 2-ой вопрос:
Имею четыре VOB, каждый по 217МБ. так вот мне бы узнать две вещи: как их обьединить вместе посредством IFO (чтоб и чаптеры и перемотка как надо) и как их обединить в один VOB.. (DVDShrink не может, требует IFO к ним)
Профиль 

Редактирование DVD№ 79
Oleggy

Да и еще вот вопрос.. какой прогой лучше всего заменить(или добавить) звуковую MP3 дорожку в DVD?
Профиль 

Редактирование DVD№ 80
BlackChaos

Значится так. DVDShrink принципиально не работает с VOB-файлами. Ему только DVD целиком подавай! Потому как программа предназначена именно для сжатия (например DVD9 в DVD5). DVDRebuilder предназначен для того же самого, только качество у него значительно выше за счет использования кодеков сторонних производителей, например вышеупомянутый CinemaCraft Encoder. Правда и время обработки увеличивается, ведь для достижения лучшего эффекта или точнее меньшего искажения исходного материала просчет идет точнее, старательней и желательно не менее чем в три прохода.
Теперь.. я не совсем понял вот этого: "нельзя менять разрешение" - а на кой леший его менять? Оно ж стандартное!
Теперь что касается объединения разных VOB-файлов в один DVD. IfoEdit такого сделать не могёт, потому как в таком случае используется не простое VTS меню, а VMG меню (то бишь глобальное для всего диска из которого доступны все VOB'ы). А из VTS меню доступен лишь один VOB-файл... вернее несколько, но каждый последующий должен быть продолжением предыдущего. Чего, как я понимаю, у тебя и не имеется? IfoEdit о VMG меню даже и не подозревает!
А посему лучшим вариантом будет demux файлов с последующей сборкой в любой программе DVD авторинга. Я использую DVDLab которая может сделать demux в один видео-файл. Вот только по поводу аудио дорожки я не уверен. А посему вывод один demux на потоки и объединение в видеоредакторе, а уж потом сборка DVD.

Сейчас я работаю над документацией о программе PGCEdit которая (я очень сильно это подозреваю) может помочь в объединении разных VOB-файлов в один диск. Как закончу, так дам ссылку... хотя можешь вот тут посмотреть. Кое что я уже сделал, может пригодится для любопытных! В принципе можешь и там спрашивать, отвечу в любом случае!

Замена аудио-дорожки в готовом DVD или опять же просто отдельный файл? Это принципиальное отличие, для сборки конечного результата.

---------------
Если что... пиши. Постараюсь ответить подробней!
Профиль 

Редактирование DVD№ 81
Oleggy

Хорошо, ясно.. что объединение разных VOB файлов посредством IFO это дело довольно геморойное и быстро не делается...
Ну а объединение последовательных VOB файлов посредством IFO тогда как? IfoEdit? Вот я запускаю IfoEdit: захожу DVD Author -> Author New DVD.. открыается диалоговое окно и видно что надо указывать отдельно видео и отдельно аудио.. т.е. надо сначала каждый VOB разбить на m2v и аудио и уж затем добавлять... и так с каждым? Наверно есть проще вариант? (документацию на русском к IfoEdit где взять ?) В котором к имеющимся VOB файлам создается просто IFO файлы VTS_01_0.IFO и VIDEO_TS.IFO и УРА! готовый DVD в кармане!
А по поводу "нельзя менять разрешение" а если надо! Стандартное то оно стандартное! А если нестандартное? Встречал же я диски с разными разрешениями не только 720х576 а с.. 352х576, 352х460, 354х320 и др. которые прекрасно работают на бытовых проигрывателях.
А вот замена аудиодорожки.. меня интерисует замена в целом DVD.. да и в отдельном VOB тоже!
Профиль 

Редактирование DVD№ 82
BlackChaos

Значится так...
Если надо изменить разрешение, то без полного ремастеринга не обойтись. Разбираешь (demuxe) на потоки с помощью программы VOBEdit и получаешь исходники. Там сразу надо указать, что разные последовательные VOB'ы объединить в один. Потом видеопоток прогоняешь через CinemaCraft Encoder (там есть опция Resize) и получаешь на выходе стандартный размер кадра. Потом собираешь в любой программе DVD-авторинга без создания меню. Или опять же IfoEdit используй. Кстати - не забудь "chapters" сохранить, а то потом выставлять их замучаешься.
И наконец с помощью программы VobBlanker подсовываешь к исходному меню новые файлы. Минут 10-15 и готово!

Я бы написал подробно, но два раза делать одно и тоже не хочу. Через пару дней на моем сайте будет полное описание всей этой операции. Если терпит, то подожди.

С аудио дорожкой все примерно так же, только при сборке подсовываешь другой аудио-поток!

Без demuxe не обойтись, только при помощи PGCEdit это можно сделать, а мануал я еще не доделал. Готов будет где-то к выходным и опять же на моем сайте (ссылку на него здесь выложу). Времени просто на все не хватает - работать понимаешь надо!
Профиль 

Редактирование DVD№ 83
Oleggy

BlackChaos! Вот ты пишешь о DVD-программировании... а есть ли у тебя пример какой-нибудь DVD игры или чего-нибудь эдакого интерактивного? может сам что-то написал... а то теория теорией... но хочется на это посмотреть самому, как запрограммировано и т.д. Ведь что бы научится этому самому нужно от чего то отталкиватся...
Профиль 

Редактирование DVD№ 84
BlackChaos

На следующей неделе я выложу на сайт полное описание, как написать что-то интерактивное в DVD. Теория начнет превращаться в практику! Просто времени не хватает...
Профиль 

Редактирование DVD№ 85
BlackChaos

Oleggy, вот тут описание замены звуковой дорожки в DVD.
Профиль 

Редактирование DVD№ 86
Oleggy

BlackChaos, сенькаю!
Да! вот интересный вопрос... Какой прогой можно легко визуально подредактировать DVD-меню? (поменять названия кнопок, их вид, фон.. и др.) Что скажешь на счет DVD Menu Studio? может знаешь какую-нибудь прогу по лучше?
Профиль 

Редактирование DVD№ 87
BlackChaos

Имеется в виду уже готовый диск?
Профиль 

Редактирование DVD№ 88
Oleggy

Да.
Профиль 

Редактирование DVD№ 89
BlackChaos

Понятно. Я как раз делаю статью на эту тему! Все проверено и работает на 1000%. Есть только одна проблема, но она тоже решается - допишу программу и дам ссылку на нее. Эта программа поставит окончательную точку в исправлении уже готового меню DVD-дисков.

Ждем-с...?
Профиль 

Редактирование DVD№ 90
BlackChaos

Oleggy, спрашивал "Какой прогой можно легко визуально подредактировать DVD-меню" - получи описание данного процесса. Статья так и называется "Редактирование DVD-меню".

Проги, которая могла бы такое сделать без проблем, не существует! DVD Menu Studio - это для создания меню, а никак не для редактирования уже готового.

Есть у меня кое-какие наработки в виде своей программы - но пока рано ее выпускать в свет! Доделаю окончательно - будет на том же сайте. Кстати - бета-тестером поработать не желаешь?
 
[ 02-01-06, Пнд, 18:24:10 Отредактировано: BlackChaos ]
Профиль 

Редактирование DVD№ 91
Oleggy

BlackChaos, спасибо, хорошая инфа! Бета-тестером.. это можно.
И вот еще... я хочу вернутся к старому обсуждению о пережатии DVD с изменением разрешения, меня интересует фраза: "...Разбираешь (demuxe) на потоки... Потом видеопоток прогоняешь через CinemaCraft Encoder (там есть опция Resize)..." - имеется в виду прогон через сам CinemaCraft Encoder? Но ведь CCE не понимает m2v файлы.. по крайней мере это у меня... или у меня не та версия? у меня Cinema Craft Encoder SP v2.70.02.00
И кстати.. т.к. DVDRebuilder я не работал... и поэтому у меня вопрос: есть ли возможность в DVDRebuilder изменение битерейта пережимаемого DVD и предварительного просчета размера видео.. эдакий MPEG2-калькулятор.., я понимаю считать то там особо делать нечего.. но все-таки? (у меня версия: DVD Rebuilder v0.95 Freeware (Limited) Edition)
Профиль 

Редактирование DVD№ 92
Oleggy

Да вот еще вопрос. Какой прогой все-таки редактировать AC3? Допустим необходимо
оставить в AC3 не 6 а 4 или 2 дорожки? а битерейт не 320, а 256? Какой прогой пользоватся? DVD Lab Pro? Sonic Foundary Soft Encode? Эти проги скорее для создание AC3, а не для редактирования. Вот вопрос..
Профиль 

Редактирование DVD№ 93
smeh

BlackChaos
А не подскажите как починить такой баг:
Усть диск 8 гигов.
IfoEdit-ом порезал его на два диска.
В первом диске все нормально, а во втором не работает перемотка.
Скакать по чаптерсам получается, а вот если за слайдер передвинуть, то всегда перепрыгивает на один и тот же фрагмент (в моем случае на 2).
Как с этим бороться.
PgcEdit есть, где там чего подкрутить?
Профиль 

Редактирование DVD№ 94
Дядя Федор

Автор: Oleggy
Дата : 06-01-06, Птн, 12:15:48

Да вот еще вопрос. Какой прогой все-таки редактировать AC3? Допустим необходимо
оставить в AC3 не 6 а 4 или 2 дорожки? а битерейт не 320, а 256? Какой прогой пользоватся? DVD Lab Pro? Sonic Foundary Soft Encode? Эти проги скорее для создание AC3, а не для редактирования. Вот вопрос..


AC3 декодируешь в PCM(wav): в Sonic Foundary Soft Encode открываешь АС3 файл и сохраняешь каждый канал отдельно, затем редактируешь несжатым, и опять конвертируешь в АС3...
Профиль 

Редактирование DVD№ 95
BlackChaos

Автор: smeh
Дата : 01-02-06, Срд, 11:13:06

BlackChaos
А не подскажите как починить такой баг:
Усть диск 8 гигов.
IfoEdit-ом порезал его на два диска.
В первом диске все нормально, а во втором не работает перемотка.
Скакать по чаптерсам получается, а вот если за слайдер передвинуть, то всегда перепрыгивает на один и тот же фрагмент (в моем случае на 2).
Как с этим бороться.
PgcEdit есть, где там чего подкрутить?


Звиняюсь, но в данном случае ответа не знаю. Попытаюсь пповторить - может тогда.
Профиль 

Редактирование DVD№ 96
smeh

BlackChaos
Я попробовал пере-порезать диск ShrinkDVD.
Все стало нормально.
Думаю это глюк IfoEdit'a
Профиль 

Редактирование DVD№ 97
BlackChaos

Похоже на то... хорошо, что справился сам!
Профиль 

Редактирование DVD№ 98
smeh

BlackChaos
Еще назрел вопрос.
Где устанавливается ссылка на Title menu.
А то у меня из разных мест диска, если нажать на плейере Title menu, перескакивает
на разные места. Когда идет фильм, то пересткакивает на начало фильма, а когда всякие заставки, то перескакивает правильно.
Профиль 

Редактирование DVD№ 99
BlackChaos

smeh, а поподробнее? В чем делаешь (программа), какая структура создаваемого диска - а то я ответить не смогу.
Хотя если на первый взгляд, то просто не настроен сам переход в фильме.
Профиль 

Редактирование DVD№ 100
smeh

BlackChaos
вот мне и интересно где это настраивается.

вот когда идет сам фильм VTST 3,1 то получается что из него никак не получается вернуться в титл меню. Причем если делать трассировку в PgcEdit то все нормально отрабатывает

структура:
Профиль 


Вы не зарегистрированы либо не вошли в портал!!!
Регистрация или вход в портал - в главном меню.



 Просмотров:   092861    Постингов:   000181