View Full Version : IFOedit for dummies
voo_doo99
18th July 2003, 22:50
Well, the forum is pretty quiet these days so hopefully noone will mind me openning a new thread to help me learning IFOedit. What can I say, IFOedit is in my blood, I wanna think IFOedit, sleep IFOedit, have IFO edit for breakfast, lunch, and dinner. You got it, I wanna have an IFOedit life. :D
Enough whining, on to the first question with DVD Menu buttons. I had thought the super-duper IFOedit has scripts for everything in the DVD. Little that I know until I started playing with VOBedit and MenuEdit that menu buttons have their own scripts, duh, which are not included in IFOedit PGC command tables. So, it that true or I just dont know where to look? :confused:
Dont everybody answer at once :cool:
---------------------
Oops, my apologies, moderator for I know not what I am doing. :( Please move this thread to the IFOedit forum. Many thanks.
I've looked at the 0.vobs in Vobedit but couldn't find any button related commands - where do they reside ? - I understand that only some authoring software actually puts commands in the vobs ....
(I've actually come done with a bad case of Ifoedit mayself in the last few days :) )
maa
mpucoder
18th July 2003, 23:53
It is true, each button gets one command. It can, however, then goto any of the cell commands in the menu PGC.
The commands reside in Button Information Table (http://www.mpucoder.com/DVD/pci_pkt.html#btn_it) of the PCI packet (part of the NAV pack)
To view them using VobEdit 0.6, open either video_ts.vob or any vts_xx_0.vob, click on any NAV pack. You must also have the "button" checkbox checked.
Thanks - thats a help indeed - my quest for getting DVD Lab to accept more than one VTS all-be-it afterwards, is not helped by the fact that this is the only program I've come across so far that puts the commands in the 0.vobs instead of the IFOs.
Of course comparing various 0.vobs from different films I'm collecting some HEX commands so as to edit them. I've managed to change a jump command already but not to the second VTS - yet - Oh Well I'll do it in the end - always do....after which I'll write it up for those interested in DVD Lab menu making
maa
Dimad
19th July 2003, 13:41
Of course comparing various 0.vobs from different films I'm collecting some HEX commands so as to edit them.
MenuEdit supports almost all commands allowed in vob files. Jumps and Links of all kinds. Links could be combined with set operation. It could be either set specified register to some value (or value in another register) or set audio/subpicture/angle stream # (also either by value or from register).
It also shows HEX code of the command as you edit it (for those who are a big fun of HEX codes) :)
And of course it will change all occurrences of the command (in all navigation packs of the cell).
mpucoder
19th July 2003, 15:50
Just collecting hex commands isn't going to be very helpful. These are programs for a virtual machine, and the layout of every disc is different, therefore the commands have to be tailored to the situation.
All button commands are in the vob file containing the menu or button-over-video, none are in the ifo (although, as mentioned, the button commands can reference the cell commands, which do reside in the ifo). However, there is a trick of using NOP for all the commands which makes it look like there are no commands in the vob. The post-commands for the menu then test SPRM 8 to see which button was last highlighted.
It is not possible to jump from one vts to another, it must be done using a dummy PGC in the VMG. Here (http://www.mpucoder.com/DVD/vmi-jmp.html) is a graphic showing the allowed jumps and calls. And Here (http://www.mpucoder.com/DVD/vmi.html) is the breakdown of the commands.
Going from vts to vts works like this:
1) Create a PGC with nothing in it except one pre-command, this is a dummy PGC because it shows no video.
2a) If starting from a menu JumpSS VMGM pgcn, where pgcn is the dummy PGC in VMG
-or-
2b) If starting from a button-over-video or menu in the title domain CallSS VMGM pgcn
3a) Jumping to a title (movie), the pre-command is JumpTT ttn, where ttn is the title number on the disc, check TT_SRPT in VIDEO_TS.IFO to locate the title.
-or-
3b) Jumping to a menu, the pre-command is JumpSS VTSM vts, ttn, menu, where vts is the titleset (vts number), ttn is the title relative to the start of the vts, and menu is one of root, subpicture, audio, angle, or PTT (chapter menu).
Hey mpucoder - thats fantastic - you've just saved me another week of experiments :) I already had the dummy PGC on my list of trials but didn't think it had to be that complicated !
Wow - I'll have to dig in to this!
BTW the collected hex commands from various DVD 0.vobs (values to the right of the call command in vobedit)have worked to change the commands although you say they shouldn't ?
thanks a lot
maa
mpucoder
21st July 2003, 17:15
not that they shouldn't, but it's best to know what they do and why. That way when you run into a DVD authored differently you won't be scratching your head as long:)
True - your charts are a great help to see whats alowed and what not ...
thanks again
maa
voo_doo99
21st July 2003, 20:25
All right! I am getting some great tips. Thanks for sharing your insights. Allow me a couples of 'dummies' questions: :cool:
1)How do I create a dummy PGC in the VMG with IFOedit?
2)Can a no-video PGC be safely deleted (wrt. DVD playability) and How?
Also, I am working on a DVD backup where the Main-Menu has a 'Trailers' button. This button opens up another menu with a list of trailers to be played. Since I stripped out the extra trailers except the main movie trailer, I really want to navigate the main menu 'Trailers' button to play the movie trailer directly :D , so:
3)Can IFOedit handle this task?, or I will need to get the MenuEdit tool?
Thx.
mpucoder
21st July 2003, 21:23
1) IfoEdit cannot create a PGC, the post on how its done was FYI (unless another program can add a PGC). You might find one that can be used to your advantage, and I didn't show it, but the first play can also be used (provided you want to go where it goes).
2) Before deleting or reusing a PGC make sure it has no programs and no commands. It wouldn't hurt to look for references, but that is not an easy task.
3) Menuedit is used to change the action of buttons, and, provided the navigation is legal, you can change a menu to go to an extra rather than another menu.
voo_doo99
22nd July 2003, 00:20
@mpucoder
Thank you for your explanation. I get better understanding of what IFOedit can/cannot do and not to hurt my head thinking of the hard-to-do things. Getting to know the tool is hard enough, and I dont wanna have an IFOedit life no mo! :D
No reason to stop learning thou :cool:. During my effort to trace the button navigation, I ran into different types of Link commands which I kinda guess what they did but like to have better explanation.
The command block below is from a movie Main-Menu PGC Command Table:
Menu 4: [entry only] (Programs: 5) (Cells: 5) (uses VOB-IDs: 1)
...
15.Pre Command Set GPreg<9> mov GPreg<14>
16.Pre Command Set GPreg<9> and (set-val)<61440>
17.Pre Command If GPreg<9> == (cmp-val)<8192> then (LinkPGCN) Link PGC 7
18.Pre Command Set GPreg<9> mov GPreg<10>
19.Pre Command Set GPreg<9> and (set-val)<61440>
20.Pre Command If GPreg<9> == (cmp-val)<0><' then Goto line# 22
21.Pre Command (LinkPGN) Link Program 2, [button=4]
22.Pre Command Set GPreg<10> or (set-val)<4096>
23.Pre Command (LinkPGN) Link Program 1, [button=4]
1.Post Command If GPreg<8> == (cmp-val)<4096><' then Goto line# 5
2.Post Command If GPreg<15> == (cmp-val)<1> then (Link subset) NOP
3.Post Command Set GPreg<13> mov (set-val)<0>
4.Post Command (JumpSS VMGM) Jump to VMG PGC: 2
5.Post Command (LinkPGN) Link Program 3, [button=0]
1.Cell Command (Link subset) LinkTopPG
2.Cell Command Set GPreg<8> mov (set-val)<0>(Link subset) LinkTailPGC
Questions:
1)On Pre#21 and #23, does it mean: Go to another Program [on same Vob ID] and run the script on 'button 4'?
2)On Post#2, what does '(Link subset) NOP' do?
3)On Post#5, is there really a 'button 0' or it has special meaning?
4)How do Cell commands get called?. Cell#1 from where? Cell#2?
5)Can I have an example of Link command used to select a default button?
Lotsa questions, so sorry, inquiring mind wanta know! :cool:. Thanks so much.
AT LAST SUCCESS ! - thanks to mpucoder.
I'm now able to use DVD Lab to make menus (very luxurious menus at that) for multiple VTS with multiple audio!
All I needed was the push to make a dummy PCG in the menu of video_ts.ifo and change one button with vobedit and some HEX magic.
he he ....
Hey voo_doo99, I've been there too,
I looked into many 0.vobs and found that a lot of software doesn't seem to use commands directly in the vobs. However DVD Lab does and the mess of pre and post commands is just to set some ifs and buts for what happens before and after pressing the buttons - BUT not what the buttons actually do! So the horror of having to deal with all those commands was missplaced - I just let them be, 'cause most of them (in my vobs) were "just in case" I made more menus, and did't actually do anything. (references to PGCs that aren't even there).
In Video_ts.ifo / VGM_PGCI_UT you can add an empty menu unit (VGM_PGC)
under the third time you see LU_1 appear there is the
"Number of Menus for this LU" - here you just change to a higher number. (You need to click another ifo and back again to refresh the view to show it)
I noticed that some ifos have information in the "newly created" PGC tables like prohibited Parental stuff or subpicture data so you need to check that and set everything to 0. Also I set the playback time value to 64 which removes the nasty looking words "illeagal fps"
(EDIT)
Oh dear - now I have a menu VOB thats 6 minutes of AC3 and buttons commands are repeated 100s of times - what do I do now ?
mpucoder
22nd July 2003, 03:45
Let's start with the most important one first. I tried changing the number of PGCs in a language unit (before answering that you can't add one) and found that the space for the PGC was not allocated. What you see is either unused bytes or another table being interpretted as another PGC pointer. If IfoEdit can create something it is done with a right click menu (such as a pre/post/cell command, or even the command table of a PGC). Simply changing the number of entires doesn't create the entry, and, due to the size of a PGC, it's unlikely you can slip one into the space remaining at the end of the LU.
Now - some answers. On any command with a button number in brackets it means to select that button number on entry. This is done by setting SPRM 8, and allows you to link to a menu and determine which button is highlighted by "default". I put default in quotes, because other link commands can bring up the same menu with a different "default" button highlighted. Button=0 means do not change SPRM 8. If going to the same menu, then the same button will be highlighted. Beware the trap, though, of not specifying a button - the same button number highlighted by the last menu will be highlighted.
"Link subset" is a rather literal interpretation by Derrow of the tables (there are others besides this). It refers to a group of link commands associated with the Set commands. In this case, it means nothing. That particular command would appear to be mistranslated, can we see the hex? It makes no sense to do a compare and then not act on the result.
Cell commands are called by number from the PGC. Look in the Cell Playback Information Table (http://www.mpucoder.com/DVD/pgc.html#play) byte 3. Cell commands are executed after the cell plays, so skipping around does not invoke them.
I can only go on the success I've had and this is remarkable.
The fact that the added VMG PCG had data in it (but no cells) indicates to me the way DVD Lab produces its raw material.
IFOedit makes a Video_ts.ifo roughly @6kb without and @ 8kb with empty menu tables.
The method I described above works. In the case of DVD Lab its a bit of a mystery why the table should contain data but having deleted or set to "0" that works too.
I saw a post a while ago on how to HEX edit a 0.vob to change 100s of comannds at once - anyone know where it is ?
voo_doo99
22nd July 2003, 19:10
Originally posted by mpucoder
"Link subset" is a rather literal interpretation by Derrow of the tables (there are others besides this). It refers to a group of link commands associated with the Set commands. In this case, it means nothing. That particular command would appear to be mistranslated, can we see the hex? It makes no sense to do a compare and then not act on the result.
@mpucoder
Golly, I think you're right. Is it a RSM? :confused:
2.Post Command If GPreg<15> == (cmp-val)<1> then (Link subset) NOP [20 a1 00 0f 00 01 00 10 ]
Originally posted by maa
All I needed was the push to make a dummy PCG in the menu of video_ts.ifo and change one button with vobedit and some HEX magic.
@maa
Good tip on dummy PCG. For kicks, I'll try it and see if that would work for me. Now, when you said 'change one button with vobedit' did you have to change all instances of the button script? [I tried, it was just too painful!]. Wanna say sth about the 'HEX magic'? You're just too far ahead on the curve for me! :cool:
I sure need time to digest what I learned here. Thxs yo'all.
mpucoder
22nd July 2003, 19:43
Definately bad translation. 20 a1 00 0f 00 01 00 10 is:
If GPRM<15> == 1 then RSM
it could also be shown as If GPRM<15> == 1 then RSM [button=0]
Note how much extra stuff IfoEdit puts into the translation?
20 A1 breaks down to 1 0 0 1 2 1 (using the fields from my page) meaning it's a link class command (1 0 0), direct compare for equality (1 2), CMD 1 means link subset. And byte 7 = 10 is RSM.
Another one to add to the list.
And mpucoder is way above my head here too !
When I said I started collecting HEX values I meant the commands for the buttons - thats all, - things like:
(JumpSS VMGM)) Jump to VMG PGC : 2
[30 06 00 02 00 C0 00 00]
I started collecting them by looking into other DVDs 0.vobs.
I enter the values in VobEdit and the command appears after a screen refresh.
Unfortunately I've created a long audio track in a menu with DVD Lab which has 100s of entries of the same buttons so if there is no other way I'll either have to buy a copy of MenuEdit or make still menus.
I've searched the forum again for a post I read about doing all buttons at once with a HexEditing trick but to no avail....
mpucoder
22nd July 2003, 20:11
Let us know if you ever find that trick. One I use is to use Ifoedit on any command in a scratch ifo I keep. IfoEdit has a right click command edit box with several commands in a dropdown box, pick the one you want, then look at the hex.
And the freeware version of Menuedit shows the HEX commands if you flip through the greyed out commands options ...
Still I don't understand why it should be so secret - isn't there a list of this stuff somewhere ? I'd like to be able to write my own IF / Then commands ...
mpucoder
23rd July 2003, 15:44
I'm guessing you haven't visited my site (http://www.mpucoder.com/DVD/) . But, beware, the commands documentation (virtual machine coding) is still very cryptic.
Yes - thats the trouble - I can't use any of it because its way over my head. If it were more ifoedit orientated I'd find a way in to understang the concepts but I don't know what to do with byte references...
I need more basic stuff like <set> mov <1024>
what does mov mean? movie or move?
A continuing adventure...
voo_doo99
23rd July 2003, 18:28
There's short write-up on DVD programming at this site (http://home.arcor.de/josef.braunstein/). Very short, lotsa disclaimers :cool:. Hope it will get expanded more.
Thanks for the link - every bit helps...
2COOL
23rd July 2003, 21:42
Originally posted by maa
Yes - thats the trouble - I can't use any of it because its way over my head. If it were more ifoedit orientated I'd find a way in to understang the concepts but I don't know what to do with byte references...
I need more basic stuff like <set> mov <1024>
what does mov mean? movie or move?
A continuing adventure...
@maa
When you have a mov command or move, it means to assigning a value to a GPReg or General Parameter Register. The targeted GPreg, which follows Set will be assigned the value of the Source value , following mov. This source can be another GPreg, SPreg (System Parameter Register), or a specific value between 0 and 65,535.
If you want to understand more on the basics of commands, I highly recommend you invest in a DVD Authoring book like I did. Back then as a newbie, I had progessed very quickly on learning what the navigation commands were by reading the book instead of browsing the forum. It's also a plus if you've some computer programming experience, especially Assembly language.
I have this book,
DVD Authoring and Production (http://www.amazon.com/exec/obidos/tg/detail/-/1578200822/ref=lib_rd_btb/102-3338096-7380127?v=glance&s=books).
There's also this book, DVD Demystified (http://www.amazon.com/exec/obidos/tg/detail/-/0071350268/ref=pd_bxgy_img_2/102-3338096-7380127?v=glance&s=books)
Personally, I looked at both of them at the same time and IMO, I found DVD Authoring and Production to be more appealing. You can probably find these at your local big book stores. I bought mine from Borders bookstore.
Thanks 2cool, I'll have to order that book!
Do you know the trick to change multiple instances of a button command with a HexEditor? Its the last thing I need to know before writing the guide for multile VTS/audio in DVD Lab. I read it a while ago and forgot to put it in the favorites folder ...
I must say that you're all a great bunch,
very helpfull.
voo_doo99
24th July 2003, 19:32
Originally posted by 2COOL
..., I found DVD Authoring and Production to be more appealing. You can probably find these at your local big book stores. I bought mine from Borders bookstore.
I really need to go to Borders and check out this book. The VMI table at @mpucoder site is just too tough. Just looking and I got a bit of headache, a nible of pain, and a byte of frustration every time :(.
Actually, I think @maa got the right idea about collecting HEX codes for reuse. After all, the same VMI codes are used evrywhere in IFOedit, VOBedit, MenuEdit,... . I know it would take me 6 to 8 weeks to collect a lot of codes, but if I collect enough codes I can adapt them to most IFOedit cases. [Anyone remember where I paraphrase that line from?]. Yeah, that would be smart, honey, I wanna be a HEX Codes collector now! :cool:.
@2COOL, missed your posts. Everytime you posted, I learned something new, it's a win-win situation ;). Welcome back!.
As I continue work on my guide for IFO Edit I have needed many HEX values that IfoEdit doesn't offer. Anyhow I've got it sorted now.
I've used a static menu after the motion menu where the button commands are repeated 100s of times, to make it easy to change the command because in such a menu its only in there once.
The re-linking back to menu after the film was an adventure of command logic and lots of HexPerimenting....
maybe we should start a thread of codes just to keep them all together.
maa
megahurts
25th July 2003, 22:50
Hello maa
I gave up trying to use multiple title sets with DVDlab until I saw this thred. It's a bit unorthadox but it does work. The movies were transcoded with DVD2one (2.1Gigs each).
The following is a DVDR with 2 movies and menu with DVDlab:
1 Make a fancy menu in DVDlab and Test Compile (menu only). Delete the VIDEO_TS files.
2 Rename all the movie1 VTS files to VTS_02 and movie2 files to VTS_3. Move to the menu folder.
3 Make a short 1 min VOB, IFO to be used as a dummy title set and rename them VTS_4 and move them to the menu folder. I will explain later.
4 Run DVDtoolbox and select the folder then click Create video manager(VIDEO_TS.IFO).
5 Open the VIDEO_TS.IFO with IFOEdit, VMGM_MAT/First Play PCG and edit the last pre command to (jumpSS VTSM) Title Nr = 1, TitleSet Nr=1, and Menu = root. Save file.
6 Open VTS_01_0.IFO, VTS_PGCITI/VTS_PGC_1. Make the 1. Pre command to read (CallSS_VMGM) Call VMG PGC: 3 [Resume Cell: 1].
7 In VTS_PGC_2, make the 1st Pre command to read (CallSS_VMGM) Call VMG PGC: 4 [Resume Cell: 1] and save file.
8 For the menu to be displayed after the movie open VTS_02_0.IFO/VTS_PGCITI/VTS_PGC_1. Make a 1st Post command to read (JumpSS VTSM) Jump to TitleSet(vts): 1, Title(tnn): 1, root-menu. Save file and do the same for VTS_03_0.IFO.
When using WinDVD 3.0 I get an error (User operation not permitted here) at the end of each movie. However it plays fine in my 3 DVD players.
The reason for the dummy titleset is in step 7 I couldn't go to the second movie. With the dummy titleset added, DVDtoolbox created a 4th LU_1 PGC-Menu in the VIDEO_TS.IFO. I'm sure there is a way around this with IFOEdit.
The only drawback I see is you have to go to the end of the movie to return to the menu.
Looking foward to seeing your guide on the same subject.
Regards,
Chas
Hi megahurts, my goal was to do it right so that everything works as expected. If you only need still menus its quite quick.
Don't worry (or maybe you should :) ) I have it working 100% now already!! Its possible to make a komplex menu structure consisting of:
1. Root menu with AC3 and moving bg.
2. Sub menus also moving with sound and language choice / multiple AC3.
3. Main movies that were NOT compiled in DVD Lab
but added in later. (Although you can keep them too if you wish)
4. Keep DVD Labs clever navigation command structure so that the
DVD will start as you created it and adhere to the typical "return
to last menu" commands (although I can also make it go anywhere
you like)
Now I'm just working on the guide as it contains quite a few steps and needs to be easilly assimilateable :)
soon....
Lord of the Discs
28th July 2003, 08:18
Originally posted by voo_doo99
There's short write-up on DVD programming at this site (http://home.arcor.de/josef.braunstein/). Very short, lotsa disclaimers :cool:. Hope it will get expanded more.
It will get expanded more. Check it in a few days.
LotD
Hi Lord of the Disks - great site!
Nice to see you getting your teeth into the command structure - I've been doing so too for the last couple of weeks in order to re-write the output from DVD Lab to use multiple VTS - my guide is nearly ready now.
BTW, "information" is singular and plural in english - no "s"
Its a common missunderstanding amongst Germans.
Lord of the Discs
29th July 2003, 14:11
Hallo maa,
would you please write my nickname in the way I chose it to be,
unless you also correct all of your audio-CDs, CD-Rs and CD-RWs by
writing a "k" over the "c" in the CD-standard logo.
I am well aware of my bad english and, at least for the time being, I
am satisfied with it, as long as the people understand what I mean.
But donīt worry, I assume that you had no bad intentions, so Iīm not
really mad at you. I even like your work and if you come out with a
"bulletproof" way (allways working, no side-effects) to author a DVD
with multiple VTS without using x0000$-software, then it would be a
great contribution to the community.
LotD
Oh dear - that went a bit wrong,
as I intended to be helpfull and not to attack, I wasn't expecting a "Gegenattake" - guess I'll have to look in to Human menu programming too as it seems I pressed the wrong button :)
Lord of the Discs
29th July 2003, 18:07
Itīs OK, maa,
I thought you have no bad intentions, so iīm not mad at you any more.
Let us continue to demystify the rest of the DVD. ;)
LotD
"bulletproof" way (allways working, no side-effects)
Well I had to re-write everything from scratch - (nearly half way now) because I trusted too much in PDVD and had everything working perfectly with a complex menu structure. Then I tested on my standalone and it froze on certain menu calls - so I guess another week now.
Lord of the Discs
30th July 2003, 01:16
I feel with you about trusting in software, and hardware too,
so here is my experience:
a DVD which is playing fine in a PC, using PowerDVD (I guess itīs
the one you mean with "PDVD", if not, then tell me about it) was not
working in a Cyberhome player; it was jumping from PGC 5 to PGC 6
although the DVD was authored to jump to PGC 7. In a JVC-player,
which also costs twice the Cyberhome, it was working OK.
The conclusion:
authoring-software is closest to the DVD-standard, followed by
software-player (with differencies among them) and at the end there
are all of the standalone-players (with differencies among them)
LotD
Yes - I must find a lot of players to test on before I publish this guide. Its a shame I can't post pictures here - I'm wondering if I should put it on a server somewhere and just place a link here instead as pictures speak louder than words!
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.