View Full Version : Easter eggs through number input
linx05
13th March 2007, 07:06
I was having a look through Wikipedia and came across this (http://en.wikipedia.org/wiki/Easter_egg_%28virtual%29#DVDs):
Most DVD releases of George Lucas' films include blooper reels or hidden videos that can only be accessed by entering "1138" on the DVD remote when the "THX" logo has been highlighted. This is an in-joke referring to his first film, THX 1138.
How does one create this on a DVD? Can it be done with freeware tools such as PgcEdit (I do not have DVD Remake PRO)?
r0lZ
13th March 2007, 09:03
Sure!
But beware! Some players (like my Sony) use the number keys to jump to chapters or titles, and you can't use them to select an hidden button. Therefore, this kind of easter egg cannot be accessed with all players. You should add another way (hidden or not) to access the feature.
Note also that you cannot use 0 in the code.
To do it, you have to create 9 hidden tiny transparent buttons, and be sure to set the number of numerically selectable buttons (an Advanced control) to 9.
Then, link the buttons to a dummy PGC, where you have to keep track of which button has been pressed. When all buttons have been pressed in the correct order, jump to the bonus. Otherwise, restart the menu PGC.
For 1138, the code could be something like that:
[61 00 00 0F 00 88 00 00] 1 Set gprm(15) =(mov) sprm(8:Highlighted button number)
[76 00 00 0F 04 00 00 00] 2 Set gprm(15) /=(div) 1024
[00 A1 00 0F 00 01 00 07] 3 if ( gprm(15) == 1 ) then { Goto line 7 }
[00 A1 00 0F 00 03 00 0B] 4 if ( gprm(15) == 3 ) then { Goto line 11 }
[00 A1 00 0F 00 08 00 0E] 5 if ( gprm(15) == 8 ) then { Goto line 14 }
[71 04 00 0E 00 00 00 01] 6 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 7 NOP
[00 A1 00 0E 00 00 00 11] 9 if ( gprm(14) == 0 ) then { Goto line 17 }
[00 A1 00 0E 00 01 00 11] 8 if ( gprm(14) == 1 ) then { Goto line 17 }
[71 04 00 0E 00 00 00 01] 10 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 11 NOP
[00 A1 00 0E 00 02 00 11] 12 if ( gprm(14) == 2 ) then { Goto line 17 }
[71 04 00 0E 00 00 00 01] 13 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 14 NOP
[00 A1 00 0E 00 03 00 13] 15 if ( gprm(14) == 3 ) then { Goto line 19 }
[71 04 00 0E 00 00 00 01] 16 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 17 NOP
[73 04 00 0E 00 01 00 01] 18 Set gprm(14) +=(add) 1 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 19 NOP
[71 04 00 0E 00 00 00 02] 20 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 2
I assume that your easter egg menu is in PGC 1, and that the bonus is in PGC 2 (or is called by PGC 2.)
GPRM 14 is used to hold the step accessed so far. Therefore, you have to be sure to enter the menu with GPRM 14 containing 0.
GPRM 15 is initialized at the beginning with the value of the button that has been pressed. Then, this button number is compared with 1, 3 and 8, and if it's another button that has been pressed, GPRM 14 is reset to 0 to invalidate the code pressed so far, and the nav returns to the menu.
If the button is 1, and GPRM 14 is 0 or 1, then it's the first or second time that the user presses 1 in the sequence, and therefore GPRM 14 is increased, and we return to the menu.
Otherwise, the code is reset, and we return to the menu.
If the button is 3, and GPRM 14 is 2, then the user has already pressed "113", and we increase the value of GPRM 14 again, and we return to the menu.
Otherwise, the code is reset, and we return to the menu.
If the button is 8, and GPRM 14 is 3, then the user has pressed the whole "1138" sequence, and we reset GPRM 14 (to be sure it is 0 the next time the menu is entered), and we play the hidden bonus.
Otherwise, the code is reset, and we return to the menu.
Of course, you have to adapt the code above to suit your needs, but it should give you an idea of the method.
2COOL
13th March 2007, 22:11
Relevant information (http://forum.doom9.org/showthread.php?t=83922&highlight=star+wars+easter+egg)
Semi-Off Topic: You know, you can still create DVD easter eggs without menus, I could use previous chapter button, for example, when accessing a certain Title. In PgcEdit, you could create this new EE Title to jump to it. It's not mentioned in this guide (http://www.videohelp.com/~r0lZ/pgcedit/third_party/2cool/previous_chapter/intro.htm) but you can get the idea of it. ;) You can set, say, Title 3 of 5 to jump previously to Title 6 but still have your DVD end at Title 5. The only way to access Title 6 is at Title 3.
You can explore other options like next chapter or GoUp functions when they are pressed too. Can you imagine if you had normally played a DVD that had only one short Title and ended but there was 10 hidden Titles on the side to check out?
linx05
14th March 2007, 05:39
Wow thanks for that r0lZ. I might have a crack at that one day. It's only for personal reasons. For instance the next time I author a home DVD I can put in a cool little easter egg using someones birthday.
2COOL: I did a search and couldn't find that. Damn. I'll have a look at that thread and your little semi-off topic help :P.
Thank you.
2COOL
14th March 2007, 05:45
I didn't put the easter egg idea in my guide but the guide gives you the plan on how to do it though. In my previous post, click on guide, highlighted in red. It's a clickable link. ;)
Marillo
28th September 2009, 13:17
hit to everyone.
this topic suits to me, but I still cannot make it work...
I have a dvd with 4 titles, 4 vobs, and I want to add a 5th vob accessible only via numerical code (181275)...
I can
- create a hidden button in title menu
- import the vob as a VTST 5
- create a dummy pgc
I cannot
- create a VTSM 5 (as the other titles)
- do the rest :(
can anyone help me?
thanks
marillo
here is the map
DVD: "E:/VIDEO_TS"
DVD-TEXT General Name: ""
Provider ID: "TEST DVD"
Number of VTS: 5
VMG , First-Play PGC
VMGM , LU 1 (--) , 1 (0:30) 9b. TitleM (Programs: 1, Cells: 1)
VMGM , LU 1 (--) , 2 (dummy)
VMGM , LU 1 (--) , 3 (dummy)
VMGM , LU 1 (--) , 4 (dummy)
VMGM , LU 1 (--) , 5 (dummy)
VMGM , LU 1 (--) , 6 (dummy)
VMGM , LU 1 (--) , 7 (dummy)
VTSM 1 , LU 1 (--) , 1 (dummy) RootM
VTST 1 , 1 TTN 1 (10:44) Title 1 (Chapters: 1, Programs: 1, Cells: 1)
VTSM 2 , LU 1 (--) , 1 (dummy) RootM
VTST 2 , 1 TTN 1 (4:20) Title 2 (Chapters: 1, Programs: 1, Cells: 1)
VTSM 3 , LU 1 (--) , 1 (dummy) RootM
VTST 3 , 1 TTN 1 (11:00) Title 3 (Chapters: 1, Programs: 1, Cells: 1)
VTSM 4 , LU 1 (--) , 1 (dummy) RootM
VTST 4 , 1 TTN 1 (11:17) Title 4 (Chapters: 1, Programs: 1, Cells: 1)
VTST 5 , 1 TTN 1 (6:23) Title 5 (Chapters: 1, Programs: 1, Cells: 1)
r0lZ
28th September 2009, 15:11
I cannot
- create a VTSM 5 (as the other titles)
Right-click on the VTST 5 title (Title 5), and select "New Menu".
(You can also import VTSM 1, 2, 3 or 4 as VTSM 5 if you prefer that method.)
- do the rest
What rest?
Marillo
28th September 2009, 16:52
To do it, you have to create 9 hidden tiny transparent buttons
I did so, editing the menu. The 9 buttons are all 1x1 size (by the way, can they be 0x0)
and be sure to set the number of numerically selectable buttons (an Advanced control) to 9.
done - I made them (through PGCEdit, from button 10 up to buttton 19) hidden ("Jump to a non deleted button").
Then, link the buttons to a dummy PGC, where you have to keep track of which button has been pressed. When all buttons have been pressed in the correct order, jump to the bonus. Otherwise, restart the menu PGC.
done
PGC 8 (newly created) has this command as per having code "181275":
[61 00 00 0F 00 88 00 00] 1 Set gprm(15) =(mov) sprm(8:Highlighted button number)
[76 00 00 0F 04 00 00 00] 2 Set gprm(15) /=(div) 1024
[00 A1 00 0F 00 01 00 09] 3 if ( gprm(15) == 1 ) then { Goto line 9 }
[00 A1 00 0F 00 04 00 0D] 4 if ( gprm(15) == 4 ) then { Goto line 13 }
[00 A1 00 0F 00 02 00 10] 5 if ( gprm(15) == 2 ) then { Goto line 16 }
[00 A1 00 0F 00 07 00 13] 6 if ( gprm(15) == 7 ) then { Goto line 19 }
[00 A1 00 0F 00 05 00 16] 7 if ( gprm(15) == 5 ) then { Goto line 22 }
[71 04 00 0E 00 00 00 01] 8 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 9 NOP
[00 A1 00 0E 00 00 00 19] 10 if ( gprm(14) == 0 ) then { Goto line 25 }
[00 A1 00 0E 00 02 00 19] 11 if ( gprm(14) == 2 ) then { Goto line 25 }
[71 04 00 0E 00 00 00 01] 12 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 13 NOP
[00 A1 00 0E 00 01 00 19] 14 if ( gprm(14) == 1 ) then { Goto line 25 }
[71 04 00 0E 00 00 00 01] 15 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 16 NOP
[00 A1 00 0E 00 03 00 19] 17 if ( gprm(14) == 3 ) then { Goto line 25 }
[71 04 00 0E 00 00 00 01] 18 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 19 NOP
[00 A1 00 0E 00 04 00 19] 20 if ( gprm(14) == 4 ) then { Goto line 25 }
[71 04 00 0E 00 00 00 01] 21 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 22 NOP
[00 A1 00 0E 00 05 00 1B] 23 if ( gprm(14) == 5 ) then { Goto line 27 }
[71 04 00 0E 00 00 00 01] 24 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 25 NOP
[73 04 00 0E 00 01 00 01] 26 Set gprm(14) +=(add) 1 ; LinkPGCN PGC 1
[00 00 00 00 00 00 00 00] 27 NOP
[71 04 00 0E 00 00 00 02] 28 Set gprm(14) =(mov) 0 ; LinkPGCN PGC 2
[/quote]
do you think everything's OK? (I must try this evening home)
thanks in advance
regards
Marillo
r0lZ
28th September 2009, 18:10
Your method seems correct, but I can't be sure without examining the whole DVD.
Also, you might have to edit the post-commands of the imported title, and the pre-commands of the new VTSM 5 menu to return to the main menu.
Marillo
29th September 2009, 07:05
I edited the post commands of the title to return to main menu, but it didn't work, because I didn't pay attention to what r0lZ said ;)
you have to create 9 hidden tiny transparent buttons, and be sure to set the number of numerically selectable buttons (an Advanced control) to 9
the button numbers MUST be from 1 to 9, so I hade to re-number the other "old" buttons, changing also references to first play PGC (automaticselection to button 11 instead of button 1), becasue gprm(15) takes note of the button number (according pressed number on remote).
Further, "Autoaction" didn't work on my poor player, so to activate the hidden chapet I had to press 1+OK, 8+OK, 1+OK etc.
BUT it works nicely!!
:thanks: r0lZ
marillo
r0lZ
29th September 2009, 07:27
You don't need the 9 hidden buttons, and to renumber the visible buttons! I haven't read the whole thread again, but iirc, the 9 hidden buttons are only necessary to compose a secret number (made of several digits) to display the hidden bonus. If you want to display it, say, if the user presses just a single numeric button, you have to create only a single hidden button, and link it directly to the bonus. The user will have to guess that he has to press the number corresponding to the number of visible buttons + 1.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.