Micro DVD Player
Version 1.2 - Documentation


Written by Locutus. Copyright © 2000-2001 by Tiamat Software. All rights reserved.

PLEASE READ THIS TEXT CAREFULLY TO UNDERSTAND HOW THE MICRO DVD PLAYER WORKS, AND TO AVOID UNNECESSARY QUESTIONS AND PROBLEMS !

ATTENTION! This software may not be used with copyrighted material. The author doesn't intend to promote piracy by any means, and the scope of the application is limited to video processing tasks with home made digital video material, or with backup copies of movies that you own, if such copies are legal in your country.

I do not guarantee that this program works as intended (means: it may have bugs anywhere and anytime), and I am not to be held responsible for any damage that might occur directly or indirectly through the usage of this program.

Contents


Overview

Main Purpose

Play DVD movies from CD or HDD as close to the original as possible, including as many features of the original DVD as possible and giving as much comfort as possible compared to original DVD viewing.


Main Features

To achieve its goal, MDVDP has the following main features.


Requirements


Further Features


Registration

Micro DVD Player is "Free Shareware" from version 1.2 onwards. This means payment of the registration fee is done voluntarily and is solely meant as an appreciation of the many months of work I invested and am still investing in this program.

The unregistered version...

When you register, you will receive the following:

When you register, you will NOT receive:

The proposed registration fee is $10, but since it's voluntary, you can also pay more or less if you wish.

For details on registration, please click here


Using the Player

General Information

Usage of the Micro DVD Player is quite straightforward, most of its functions are self-explaining. Still I'd like to give some hints and information.

In order to be recognized by the player as an MDVD, a CD has to contain the movie's INI file in the root, named "MDVD.INI" or "MDVD.MVD". If no such file exists on the CD, it is not treated as a Micro DVD.

The player supports drag-and-drop. You can drop files from any Explorer window or other file manager on the control bar. Depending on the file extension, the player behaves like the file was passed as a command line parameter (see next section!).

The on-screen display is available only in fullscreen mode and is currently turned on/off only via keyboard (default key is "O") or remote control.

Autostart and Command Line parameters

You can run the MDVDP.EXE with the following types of command line parameters:

  1. One filename with extension .INI or .MVD (example: "MDVDP.EXE d:\mdvdtest\MDVD.INI").
    This will cause the player to do the following:
    1. Switch to MDVD Mode
    2. Set the movie loading mode either to "Load Movie from Directory" (if the given file is on a HDD), or to "Load Movie from CD" (if the given file is on a CD), use the given file as INI file (in case of HDD)
    3. If the given file is on a CD, then the Primary CD-ROM Drive will be set to the file's drive letter.
    4. Play the movie.
    Besides .INI the player here also accepts .MVD in case you want to make a Windows Explorer file type association to automatically run MDVDP.EXE when you click on an .MVD file (.INI is a bit generic for that purpose).
  2. A pathname (denoted by a "\" as last character!) (example: " MDVDP.EXE d:\myavis\").
    This will cause the player to switch to File Mode, empty the playlist if the appropriate setting is made in config, scan the given directory and all subdirectories for media files, add those to the playlist, and play the first of them.
  3. One filename with extension .LST or .M3U (example: "MDVDP.EXE e:\mp3\classic.m3u").
    This will cause the player to switch to File Mode, empty the playlist if the appropriate setting is made in config, import the given playlist, and play the first entry.
  4. One or more filenames with any extension except .INI and .MVD (example: "MDVDP.EXE d:\movies\test.avi d:\movies\test2.avi").
    This will cause the player to switch to File Mode, empty the playlist if the appropriate setting is made in config, use the given filenames as new playlist entries, and play the first one.
  5. The text "/AutoPlayCD"
    This causes the player to switch to MDVD Mode, set the movie loading mode to "Load Movie from CD-ROM", set the Primary CD-ROM to the drive you are running the EXE from, and play the currently inserted CD
    This function is useful if you want to put the player together with the movie on a CD, and execute it through AUTORUN.INF. Just use the command "MDVDP.EXE /AutoPlayCD" and the player will automatically launch and start the movie upon insertion.
  6. The text "/QuickINI /V:VideoFile /A:AudioFile /S:SubtitleFile"
    This causes the player to switch to QuickINI Mode, set the video, audio and subtitle files to the given names and play the movie. Using this you can very quickly launch a video with optional secondary language and subtitles. Note: the filenames given here may not be relative path names, they have to be absolute.

Note: If the name of an .INI or .MVD file does not begin with a drive letter and ":\", like "C:\", it is regarded to be a relative pathname to the directory where MDVDP.EXE (in case of command line) or the .MVD file resides.

If the player is already running, then the command line you start a new instance of the player with is passed to the already running instance. MDVDP will not run multiple times.

Auto-starting from CD

There are currently two methods for automatically running the player if a MDVD is inserted in a CD-ROM.

Method One: /AutoPlayCD with EXE on CD

You put your movie structure on the CD, the MDVD.INI or MDVD.MVD resides in the root of the CD. Put the MDVDP.EXE in the root too. Then create a file named AUTORUN.INF in the root with the following contents:

[AUTORUN]
Open=MDVDP.EXE /AutoPlayCD
Icon=myicon.ICO

This will cause the player to behave like described earlier in the parameters section. Icon= is optional and sets the CD's icon to the ICO file you put on it and name there.

Method Two: MDVD.MVD and file type association

You put the movie structure and the MDVD.MVD INI file in the root of the CD. Do not put MDVDP.EXE there.

The MDVDP.EXE has to reside somewhere on your HDD. To run it from there when a .MVD file is "executed", go to config, section MISC, tab FILE TYPES, and activate the Windows file association for .MVD files.

Now you need to have the CD "run" the MDVD.MVD file so that Windows starts the registered MDVDP.EXE from your HDD and gets the .MVD file passed as a parameter. Unfortunately, you can only specify executables in the AUTORUN.INF file, not associated file types. Therefore copy the file AUTORUN.EXE that came with the player to the root of the CD and put the following into the AUTORUN.INF:

[AUTORUN]
Open=AUTORUN.EXE
Icon=myicon.ICO

This will make the player start and behave as described earlier in the parameters section. Icon= is optional and sets the CD's icon to the ICO file you put on it and name there.

When you use method one and wish to start the player with a pre-defined configuration, you can put a config file MDVDP.INI (do not mix this up with a movie ini MDVD.INI!) on the CD. It will then be copied and used, if you don't have a config file on HDD yet. See here for more details.

Advantages of Method One:

The player can run immediately from CD, no need to copy anything to the HDD. No file associations are necessary.

Disadvantages of Method One:

You are fixed to the version of the player that you burn to the CD.

Advantages of Method Two:

The up-to-date version you currently hold somewhere on the HDD is always used, also with older MDVDs.

Disadvantages of Method Two:

You must have the player installed on your HDD and have it make a file association in Windows for .MDV files.

Playing a sequence of files

If you just wish to automatically play a sequence of files, one after the other, and don't need features like chapter lists or menu or subtitles etc., you can use the Playlist feature to achieve this.

Put a text file named *.LST or *.M3U into the directory where the files you wish to play reside (files in subdirs under that dir are also possible). Write one filename per line in this file. If it is a file in the same directory as the LST file, just give its name. If it is in a subdirectory, give the subdirectory name plus the filename. Do not use absolute path names including the drive letter, for purpose of being able to move the files together with the playlist later.

You can then load this LST manually into the running player by switching to File Mode and clicking the EJECT button, or launch the player with the LST/M3U as command line parameter. You can basically also use the Autostart Method Two described above to run the player from a CD launching your playlist automatically.

Copying language audio files to HDD

When playing a secondary language of a movie that uses Method One for multi-language (see below!), MDVDP plays the video from the primary file and the audio from another audio-only file. Therefore two files have to be accessed at the same time. Although the data rate of the second file is only about 20 kB/sec, which should in no case cause performance problems, the reading laser of the CD-ROM is moved unnecessarily much.

To get around this problem, the player offers the function to automatically copy secondary audio files to a temporary directory on the harddrive and load them from there, while still playing the video from CD.

You activate this feature on the MOVIE tab of the configuration dialog. You can choose there whether you want to be asked if the player should copy audio to the HDD, or whether it should do so automatically. Plus you can choose whether the copied files are removed from HDD after the movie ends, either automatically or after a confirmation. If you leave the files on HDD, they will automatically be used again when you watch the movie again. Furthermore you can set the directory where to store the temp audio files.

The copying of audio files to HDD is initiated when a secondary language is activated while watching a movie. Deletion of audio files is done when the movie stops.

You can manage the temp audio (meaning: delete them independently from inserting the movie CD) in the BOOKMARKS tab of the configuration dialog.

The Control Bar

The control bar is where all the interesting action takes place. A little screenshot:

I'll explain the function of all its buttons now, from left to right. Note: In the default skin, buttons that are currently inactive (=not clickable) are shown in grey, while active buttons have a bright white icon.

IconFunctionShort-
cut
The long horizontal bar below the display is the Movie Position Slider. You can quickly jump in the movie by clicking and/or holding the mouse in this slider. Note: When your main movie consists of multiple CDs, little vertical bars show the position in the movie where the CD needs to be changed.
Increases the main volume of the movie (including movie itself, the menu and all special feature vides) by one level. PAD +
Decreases the main volume of the movie (including movie itself, the menu and all special feature vides) by one level. PAD -
Mutes/unmutes the movie (including movie itself, the menu and all special feature vides). PAD *

By clicking this area you can open/close the hatch hiding the advanced contol buttons.
Opens the Jump to Time window if a video is running. J
Opens a popup window containing the Run Special Video list when in MDVD Mode. Only available while the nav menu is running. S
When in MDVD Mode, this button lets the player return to the menu from a running movie, or, when clicked a second time, restart the movie at the position you left it for the menu.
When in MDVD Mode and no movie is playing, then this button will open a list of the recently used .INI/.MVD files for the Load from Directory mode, if any exist.
M
Opens a popup window containing the Jump to Chapter list when playing an MDVD, or the Choose File list when playing a file. When in MDVD mode and no file is playing, it opens the Choose Movie from Catalog window. C
When in File Mode, this button toggles the Shuffle Mode of the player. When shuffle is active, the files in the playlist are played in random order. Each time shuffle is activated or playing starts, the random order is renewed, and lasts until you turn off shuffle or playing again. H
When in File Mode, this button toggles the Repeat Mode of the player. There are three modes: no repeat, repeat one and repeat all. Repeat one plays the selected file over and over again, repeat all starts the whole playlist from the beginning when it reaches the end. R
Lets you add a new bookmark for the movie currently running. Bookmarks can be edited in the Configuration dialog.
Note: A bookmark is a personal marker in the movie that you can jump to directly; you can mark your favourite scenes that way.)
A
Opens the Jump to Bookmark popup window. B
Lets you choose another language in a popup window if the movie being played has more than one language available. L
Lets you choose another subtitle or deactivate them in a popup window if the movie being played has subtitles available. U
This will open the Playlist/Catalog Editor, which allows you to edit your HDD Movie Catalog for MDVD mode, and the Playlist for file mode. Q
Opens the Configuration Dialog. F12
Toggles between MDVD and File Mode. In MDVD Mode the program is ready to play Micro DVDs from the CD-ROM or HDD (as selected in the Configuration or using the Movie Source button), or construct INI data internally on the fly if Quick-INI Mode is selected. Quick-INI Mode is useful if you want to play a video file with either an audio file (foreign language) synchronously or view subtitles, without having to write an INI file. In File Mode you can play freely play single audio/video files, which you compose in the Playlist. F
Toggles the movie source for MDVD Mode between Load from CD-ROM, Load from Directory and Quick-INI. See Configuration for details. G
Toggles the Zooms State the video window. There are three size states: original size, double size (only available if the double-sized video still fits on your screen) and fullscreen. Z
This currently keyboard-only function toggles the OSD (on- screen display) in fullscreen mode. Depending on the settings you made in the configuration dialog, the OSD is either turned on/off, or toggled through off/mode 1/mode 2. O
Steps one frame back/forward in the movie. Note: These buttons are only available when the movie is in Pause-Mode. DEL INS
Play. Starts the movie/file when in Stop mode, or continues playing when in Pause mode. When already playing and not winding, and player is in File Mode, then the currently playing file is restarted.
Note: When the menu of a Micro DVD is running, pressing Play starts the movie at the position where you last stopped it.
SPACE
Stop. Sets the player in Stop mode no matter what mode it is in just now. When playing a Micro DVD, the current play position is remembered (see Play command). BACKSPACE
Pause. When currently playing a movie or file, the player is set in Pause mode. This also activates the functions Previous/Next Frame. PAUSE
Previous chapter/file. When in MDVD Mode, the player jumps to the previous chapter of the movie. When in File Mode, the previous file in the playlist is loaded. P
Next chapter/file. When in MDVD Mode, the player jumps to the next chapter of the movie. When in File Mode, the next file in the playlist is loaded. N
By clicking on the dark circle around the play/stop/etc. buttons you can set different playback speeds. There are 2x and 0.5x forward (while playing continuoulsy), and fast winding (jumps once per second, 10 or 30 seconds forward or 5, 10 or 30 seconds backwards). Cursor
Left/Right
The funtion of this button depends on the mode the player is currently in. In MDVD-From-CD mode, it ejects the CD(s) from the CD-ROM(s) you set as primary and secondary CD-ROM drive in the configuration dialog. In MDVD-From-HDD mode, it opens a file requester, allowing you to quickly select an INI file you want to load from a HDD directory. In FILE mode, it allows you to choose a media file to add to the playlist. E
Will toggle to the next language (if available), without showing a selection menu, or back to the primary language if the current one was the last available one. ,
Will toggle to the next subtitle (if available), without showing a selection menu, or turn subtitles off if the current one was the last available one. .
Toggles display of elapsed-remaining time. T
Toggles the pan-and-scan mode on/off. POS 1
Switches to the next pan-and-scan mode or back to the first. END
Jumps a configurable amount of seconds backwards in the file. PAGE DOWN
Jumps a configurable amount of seconds forward in the file. PAGE UP

To move the mouse around on the Nav Menu or in the Chapters/etc. Selection Window, use the Cursor Keys. To simulate a mouse click in those cases, press the ctrl key.
Some explanation for graphics that appear in the left-hand display area of the control bar:
This icon tells you that the player is in MDVD mode with Movie Source set to CD. Details on INI file format are here.
This icon tells you that the player is in MDVD mode with Movie Source set to Directory (Harddisk).
This icon tells you that the player is in MDVD mode with Movie Source set to Quick-INI. Details on Quick-INI are here.
To the right of those icons you find little marker circles that inform you about certain states/function of the player.
The topmost circle shows the state of the overlay mode. A blinking yellow circle means that the player is trying to determine the overlay key color. A white circle means overlay is active. A red circle indicates a failed color detection.
This icon tells you that the player is in FILE mode.
Here the player shows the active subtitle.
Here the player shows the active language.
This tiny symbol tells you about the player's mute state. If you just see a white dot here without the curved lines on both sides, the player is set to mute.
When you see this, the player is in Shuffle Mode.
When you see this, the player is in Repeat Mode.
When you see this, the player is in Repeat All Mode.

Transparent subtitles

Micro DVD Player can display subtitles and an on-screen menu in transparent text over the video. For this to work, the video must be played in Overlay Mode by the graphics card. This means that not the CPU does the actual "copy video data to the screen", but the graphics card itself replaces a certain color, which is painted on the movie player window, with the picture.

In this mode, MDVDP can use the same method to put another window containing subtitles over the video. The background of this window contains the graphics card's key color which it replaces by the video. This means the player first has to detect the key color. It does so every time a video starts.

The time needed for detection varies and depends on many factors. In the ADVANCED section of the configuration you can set two values: the minimum time that the key color must be stably detectable (default is 2 seconds), and the maximum time after which the overlay mode is regarded as inactive, and subtitles in window mode plus OSD are disabled (default is 15 seconds).

If the transparent subtitles mode is turned on in the configuration, but detection of the key color fails, a warning message is displayed. This message can be turned off in config.

You can easily detect whether your video is played in overlay mode. One method is to take a screenshot of the Windows desktop using the PrintScreen key. (Give the video some time to settle down first!) Paste that screenshot in some graphics application. If you see a frame of your video, overlay mode is off. If you see some solid color (can be very dark, almost black) instead of a video, overlay mode is on.

Another, even quicker, method is to quickly move the video window around. If overlay mode is active, you'll notice that the actual video doesn't immediately follow your motion, but "stays behind" a little, and jumps to the new position after a while. If the video display perfectly matches every move you make with the window, overlay mode is off.

After starting a video, switching resolution, or bringing the video window to front, the overlay mode is usually off until the next keyframe of the video passes. Depending on codec and settings, this may take from 0 to 10 or more seconds. During this time, you'll see a black screen if the key color was successfully detected before, or the OSD/transparent subtitles are turned off while trying to detect it.

If the graphics card uses the overlay mode to play the video can depend on many factors. Here's some help if it does NOT use overlay:

The On-Screen Display

When in fullscreen mode, you can activate an OSD (on-screen display) which shows important information like play time, play mode, chapter info, volume bar, seek bar, movie info etc. transparently over the video.

Therefore the OSD is only available when you use transparent subtitle mode and graphics card works in overlay mode (see the previous section for details). The OSD is activated by pressing the O key. (This is the default key which may be changed in the config dialog.)

The OSD is not available when the nav menu of an MDVD is running. In the configuration dialog you can choose what elements of the OSD are visible, optionally you can use two OSD modes which are toggled using the OSD activation key.

Furthermore you can choose whether certain elements of the OSD (play mode, chapter info and volume bar) appear for a short time when the corresponding player parameter changes, and automatically disappear again (if they are not active due to active OSD anyway) after a configurable number of seconds.

The Configuration Dialog

This is where you set all of the player's parameters. Most settings are quite self-explanatory. I'll give some hints though.

Storage of Configuration Data

The configuration data of MDVDP (including settings, bookmarks for all movies and the playlist) are stored in an ASCII file named MDVDP.INI. This file is usually located in the same directory as the MDVDP.EXE

I find this method more practical than using the registry for the whole configuration, because you can easily transfer the program together with its config to another computer or Windows installation without worrying about config stored in the registry. Plus you can clean the program up more easily without having to deal with registy entries.

Since Micro DVD Player is able to run from HDD as well as directly from CD, and the MDVDP.INI has to be writable, it cannot be stored in the same dir as the EXE if it is run from CD.

To get around this problem, the location of the INI file is stored in the Windows registry, in the key "HKEY_CURRENT_USER\Software\Tiamat Software\Micro DVD Player\INILocation" every time the INI file is saved. In case the program is run from CD, and there is no path stored in the registry yet, the INI file is saved in the user's WINDOWS directory, whose name is taken from the environment variable %WINDIR% (usually C:\WINDOWS for Windows 9x and C:\WINNT for Windows NT/2000).

When the program is started, it tries to read its configuration. First it checks if it is run from HDD or CD.

In case of running from HDD, the program does the following:

In case of running from CD, the program does the following:

You see, you can also put an MDVDP.INI on the CD you burned the player to and run the player from. That INI is only used if none exists yet on the HDD, and it is copied to the user's WINDOWS directory first.

After loading the configuration, it is stored again immediately, so that it is then stored in its proper place (in case it was read from the WINDOWS directory but is to be stored in the program's own directory) and so that the registry entry denoting the location is written.

This has the effect that, if the program was run from HDD once, the INI file is always written to that directory on the HDD. Otherwise, if no HDD stored INI file is available and the program is run from CD, the file is stored to the user's WINDOWS directory.

You can move the program to another directory without having to change the registry entry manually, because when run from HDD, the program does not heed the registry entry, but only looks for the INI file in its own directory and then in WINDOWS, and later automatically stores the new location to the registry.

Remote Control Support

Micro DVD Player can be operated using IR Remote Controls. Currently only the RealMagic remote is supported. The remote buttons trigger the following functions:



Making your own Micro DVD

Introduction

Ok, now for the serious stuff: how to make an own Micro DVD.

First a note: I'm not going to explain the whole process of ripping a DVD here in detail, there are many good web pages about this.

Micro DVD Player plays everything that the Windows Media Player supports, since it uses the same system functions for the actual playback. So all video/audio files you create in this process just have to be playable by MediaPlayer to be recognized by MDVDP !

You could use normal VCD-format MPEG1 files e.g., or M-JPEG AVIs, or MPEG2 or even VOBs if MediaPlayer plays them on your system. But the highly recommended format for Micro DVDs is AVIs with MPEG4 video and MP3 audio, because this gives the best possible quality at the least CD space usage!

IMPORTANT: CDs used as Micro DVDs must have a volume label, because the player detects whether a CD is inserted by checking the label. It is not important what you label your CDs, and CDs belonging to one movie do not have to have the same label. As long as the label is not empty, it will work. To determine which CDs belong to one movie, the entry "ID" in the movie's INI file (see below) is used.


Seven Steps to a Micro DVD

Note: The steps 2-5 are optional, so if you do not want or have a chapter list, nav menu etc., you can set up your MDVD very quickly, the INI file only consists of the MAIN and MOVIE section then. But to make it really interesting and looking cool, you should consider ripping the nav menu too, or at least putting in the chapters list. Subtitles are as well part of any worthwhile DVD rip, and languages are recommended too. :)

Step 1: The Main Movie
Step 2: Special Features
Step 3: Navigation Menu
Step 4: Multilanguage
Step 5: Subtitles
Step 6: Directory Structure
Step 7: The INI File


Step 1: The Main Movie

A Micro DVD is basically a ripped DVD movie. So go ahead and use your favourite ripping method to create your main movie! It may be 1, 2 or 3 CDs long. Give the A/V files any name you wish, I suggest something like "VTS_01_1.AVI" and so on, to make it look really cool. :)

Note: The file name is not important for format recognition, e.g. AVI files can have any name, they are still recognized as AVI.


Step 2: Special Features

Besides the main movie an MDVD may contain any number of additional A/V files for Special Feature (making-of, reports, outtakes etc.) videos on the DVD. So you can rip those, which are usually in VOB files after the main movie, too.

Special videos may be located either on CD 1 to 3 (meaning together with a part of the main movie if there's still room on the CD) or you can put them on a fourth CD. Anyway all special videos have to be on the SAME CD !


Step 3: Navigation Menu

Micro DVD Player can "emulate" the original navigation menu of a DVD. For that purpose, you must first create a video file (if the DVD has animated menus) containing all the animation sequences. Do so by using your usual ripping method, plus some cutting utilities (either on VOB- or on AVI- level) to put your menu video together.

If the DVD menu also contains still images, which is the case for most DVDs, use a DVD player that can do still captures (save single frames as BMP), like PowerDVD. Capture all stills you need, and convert them to JPG to save space. Put the menu video and all still pictures in one directory.

Important: The nav menu files have to be on ALL CDs belonging to a movie, and they have to be in the same directory on all CDs.

Also important: The animated part (AVI) and the still images (JPG) of you menu must have the same dimensions (width+height), or you'll get major trouble. This does of course not apply to the movie itself, which may have a different size.


Step 4: Multilanguage Audio Files

Micro DVD Player can also play multi-language movies. To do so, it uses two methods.

METHOD ONE

The first method is to play the picture from the main A/V file and the sound from an additional audio-only file synchronously.

To use this method, you put the primary language in the main movie A/V file itself, and create an additional audio-only file for each secondary language.

You can do this the following way: convert the video and the audio for all languages separately (e.g. with Mpeg2Avi or Flask for video, and Graphedit for audio). Then use Virtual Dub to multiplex each audio file together with the video file, MP3 compressing it at the same time. This is necessary in order to keep perfect A/V sync. Then load the second resulting AVI and save the WAV from it, giving you the secondary audio file you can use for the player.

METHOD TWO

The second method is to put all the language audio tracks into one multiplexed AVI file. The problem with such AVIs is that MediaPlayer (whose functions MDVDP uses) always plays all audio tracks at once when you feed it with such a muxed file. But there's a very elegant way to get around this problem: GraphEdit.

A good tutorial (written by SPIRIT) on how to create a multi-audio stream AVI and the necessary GRF files to play it back can be found in the file TwoStreams.HTML that came with this documentation. Take a look at it!

When you understood that tutorial, you know how to make Graph files that will play just one language from a multi-lang AVI. Make such a graph for each language, including the main=primary one, in your movie!

Important: The actual AVI file must reside in the same directory as the graph file you create! And make sure the graph file does not contain absolute path names, otherwise it won't work when you burn it to CD, since your CD-ROM usually has a different drive letter than the HDD you create the graph file on.

If you use the second method, the following differences to the "normal mode of operation" concerning file types (see here) in the INI file apply:

There is one disadvantage in using this method: when you switch the language, another video file has to be loaded, which causes the player to show a black screen break of about 2-3 seconds. Advantage is that you don't need to mess with several A/V files, there won't be synchronization problems, and no copying of audio to HDD is necessary to reduce CDROM laser movement.


Step 5: Subtitles

Micro DVD Player can display subtitles. It reads them from a text file that has a very simple structure. For each subtitle put one line in the file that looks the following way:

{First Frame}{Last Frame}Text

The subtitle can consist of five lines max., use the character | (pipe) as line separator. Last Frame can be empty if the subtitle is to be displayed until the next one is due.

The characters {, } and | can be redefined in the movie's INI file (see here for details).

The subtitles are - depending on the settings the user makes in the configuration dialog - displayed in the space between the top or bottom border of the video and the edge of the screen. If the available space is not sufficient, or the user forces it, the subtitles are displayed transparently over the movie.

A real-life example:

{6027}{6101}Can I have five tickets to Terrance|and Phillip's Asses of Fire, please?
{6125}{}No.
{6175}{}What do you mean, "no"?
{6211}{}Asses of Fire|has been rated "R"...
{6263}{}by the Motion Picture|Association of America.
{6314}{}You have to be accompanied|by a parent or guardian.
{6361}{}- But why?|- Because this movie|has naughty language!
{6420}{}- Next, please.|- [ Cash Register Rings ]

MDVDP supports control codes in the text part of subtitles. Control codes may appear anywhere in the subtitle line. Most of the codes are available in two forms: with a lower-case letter (then the code only applies to a single line of the subtitle) or with an upper-case letter (then all lines are affected, no matter in which line the codes occurs).

Currently the following control codes are available:

Important: You can set default values for a subtitle file (overriding the settings made by the user in the configuration dialog) by adding the following line somewhere to your subtitle file:

{DEFAULT}{}<Control Codes>

Replace the <Control Codes> with any number of control codes that are valid in individual subtitle entries. The control codes have to be the upper-case versions here! E.g. to make the subtitle file by default display in Arial, 18pt, bold+italic and below the movie, use this line:

{DEFAULT}{}{F:Arial}{S:18}{Y:b,i}{P:1}

The control code H is only valid in this DEFAULT line!

The user can override all those default and sub/line-individual settings by activating the option "Ignore subtitle styles" in the configuration screen.

In case you have a subtitle file that shows somehow displaced subtitles, meaning either all subs appear too early or late by the same amount of time, or the displacement gets worse the further you look into the movie, check this section, parameters Offset and Multiplier for a method of correcting this.

Besides its own format, MDVDP also supports other subtitle formats. See here for details. If you want further subtitle file formats besides the currently known ones to be supported, contact me.


Step 6: Directory Structure

Now that you have all files ready, put them together in a directory structure for the CD like the following:


X:\ +--MDVD.INI           The MDVD INI file (see next step) 
    +--Menu_TS            This directory holds all menu related files 
    ¦  +--MTS_01_1.vob    Video file for the menu (it's actually an AVI, but
    |  |                    VOB sounds cooler ;) )
    ¦  +--MTS_02_1.jpg    Some still picture files... 
    ¦  +--MTS_03_1.jpg 
    ¦  +--MTS_04_1.jpg 
    ¦  +--MTS_04_2.jpg 
    +--Video_TS           The movie- and special feature files reside in here 
    |  +--VTS_01_1.vob    The main movie AVI. For a 2-CD movie the file might
    |                       be named VTS_01_2.vob, and special feature videos 
    |                       might be VTS_02_1.vob etc. 
    +--Audio_TS 
       +--ATS_01_1.vob    An audio-only file with the first foreign language

You see, the directory structure is quite simple. And as you can name all of the directories and files as you wish, this is just an example.


Step 7: Creating the INI File

Now you have lots of video-, picture- and soundfiles cluttering around your harddrive, and you somehow need to tell MDVDP what to do with it. This is where the INI file kicks in!

Using it you tell the player in what directory it has to look for the different files, what they are named, what chapters there are and where they start, and last but not least the layout of the nav menu.

Later in this document, you'll find detailed information on the INI file structure and on how to use the INI Editor.

Some additional information and hints

Delay (MPEG 4 and seeking)

When you seek in a compressed video file that uses delta-frames (meaning only the differences to the frame before are recorded), the decoder/player has to refer to the nearest former keyframe (the opposite of a delta frame, keyframes are compressed "standalone", without reference to former or later frames) and quickly "play" to the desired seeking position from there. This playing process normally is invisible, the decoder internally calculates the frames from the keyframe to the desired frame invisibly.

But due to a bug (or at least very unpleasant feature) in the current version of the MPEG 4 decoder, the player does not do this calculation process invisibly, but you see the frames between the nearest keyframe and the desired seek location being displayed quickly on the screen.

Therefore is is highly recommended that, when compressing using DivX, you set the option Keyframes every One second! Otherwise you might see up to 8 seconds of quick seeking whenever you change the play position in your movie.

Furthermore, this calculation process naturally takes some time. The bigger the distance between keyframes, the longer the process takes. So the player needs a certain delay when winding or synchronizing video and secondary language audio, at least one second or half the number of seconds between keyframes.

You can set this delay for your movie in the INI file, plus you can force a certain minimum delay in the player itself, in case you have an old and slow CD-ROM which needs a bit more time to seek and "settle down".

Chapters

A DVD movie usually is divided into chapters. You can of course divide your MDVD in a similar way. When editing the INI file, you can write down the start frame number and the title of each chapter. (Don't worry, the INI Editor does most of the work for you.) Some annotations regarding chapters:

Navigation Menu

The nav menu on a MDVD is divided in so-called Pages. A page can be a still image with some clickable areas on it, or a animation with areas, or just a clickarea-less transition video which jumps to another page when finished.

The highest possible number for a page is 500, for a selection it is 50.

Details on what parameters you can set for a page can be found here.


Format of the INI file

General information

The following part of this document resembles the layout of a real INI file, showing you keywords etc. and giving explanation and information. The contents of the right columns would have to be comments in a real INI file.


INI file entries with explanation and information

The Main Section
The Movie Section
The Chapters Section
The Specials Section
The Languages Section
The Subtitles Section
The Menu Section
The Page Section
The Selection Section

[Micro DVD Ini File] Required. This has to be the first line of the file. The INI Editor automatically writes this first line to the file whenever it saves it.

[MAIN]

Required. This section gives vital information about the movie.
Title=String Required. The title of the movie as shown in the control panel's display area
ID=String Required. A unique string identifying this movie (used to find/determine other CDs for a multi-CD movie). IMPORTANT: Since this ID is also used as directory name for the Copy secondary audio files to HDD feature, you may ONLY use characters in the ID string that are valid characters in a file name too !
CDNumber=Number Optional. For multi-CD movies this tells which CD this is (not the total number of CDs!). Important: if your movie only has one CD, leave this out!
Delay=Number Optional.Tells the player how many seconds to wait between each jump when doing fast-forward or -reverse, and how many seconds to wait when synchronizing video+audio when playing secondary language (see info on MPEG 4 and seeking). Default if omitted is 1 second. Value can be overridden in the player's config dialog.
Note: All Directory parameters may be absolute pathnames (they are treated as such if the second character in the string is a ":"), which is not recommended though. Better make them relative pathnames, in that case the path in which the MDVD.INI resides is added to the beginning of the given directory. You can also name the directory as "." (a simple dot), this means the same directory where the INI file resides in is meant.

A movie can consist of max. 4 CDs, the main movie may extend over CDs 1, 2 and 3, and additional Special Feature videos may be on a fourth CD. (Specials may also be on CD 1, 2 or 3 though.)

[MOVIE]

Required.
Directory=String Required. Directory where to find all of the movie AVI files on all CDs.
AVIName=String Required. Name of the AVI file on CD 1 containing video and main language audio. Attention: In case of a multi-language movie that uses method two of creating a multi-lang MDVD, this entry does not point to an actual AVI file, but to the Graph file that makes the multi-audio AVI play the primary language!
AVI2Name=String Optional. For multi-CD main movies, this gives the AVI filename for CD 2 video+main audio. Attention: In case of a multi- language movie that uses method two of creating a multi- lang MDVD, this entry does not point to an actual AVI file, but to the Graph file that makes the multi-audio AVI play the primary language!
AVI3Name=String Optional. For multi-CD main movies, this gives the AVI filename for CD 3 video+main audio. Attention: In case of a multi- language movie that uses method two of creating a multi- lang MDVD, this entry does not point to an actual AVI file, but to the Graph file that makes the multi-audio AVI play the primary language!
CD1Frames=Number Optional. In case of a multi-CD main movie this gives the number of frames in CD 1 video.
CD2Frames=Number Optional. In case of a multi-CD main movie this gives the number of frames in CD 2 video.
CD3Frames=Number Optional. In case of a multi-CD main movie this gives the number of frames in CD 3 video. If your main movie only has two CDs, leave this entry out or set it to 0!
Note: "AVI" files do not necessarily have to be "real" AVI files, they can technically be anything that Windows Media Player can play. Plus they do not have to have an extension of .AVI, you can also name them .VOB if you want to make your MDVD look like a real DVD even more! :-)

[CHAPTERS]

Optional. This section may be omitted if you do not want a chapter list for your movie. In that case, all chapter seeking functions are disabled when playing the movie.
Number1=Number2 String Required. Repeat this line for each chapter.
  • Number1
    The number of the chapter being described (chapters do not necessarily have to be described in ascending frame order, but it's recommended that you do so for readability purposes)
  • Number2
    The number of the first frame of this chapter in the movie. Note: The frame number extends over ALL video files in case of a multi-CD movie, so it does NOT start with 0 in the second file but continues with "Endframe-of- CD- 1"+1 !
  • String
    The title of the chapter to be displayed in the control panel

[SPECIALS]

Optional. This section may be omitted if your movie does not have "special feature" videos such as making-ofs and stuff. Otherwise they are listed under this section.
CD=Number Required. The number of the CD which the specials are on. Note: The special videos are expected to reside in the directory given in the "Directory" entry of the "Movie" section, meaning in the same path as the main movie!
Number1=String1 String2 Required. Repeat this line for each special video.
  • Number1
    The number of the special video being described (specials do not necessarily have to be described in ascending order, but it's recommended that you do so for readability purposes)
  • String1
    The AVI file name of the special video. May not contain spaces, since space is the parameter seperator! NOTE: multilanguage is NOT supported for special videos, only for the main movie !
  • String2
    The title of the special to be displayed in the control panel

[LANGUAGES]

Optional. For those cool movies which have multiple languages and offer the viewer to switch the language at any point he wants to (just like real DVDs), you give the necessary information in this section. If your movie only has one language, omit this section.
Directory=String Required. Directory where to find all of the secondary language files on all CDs. If MultipleAudioAVI is set to 1, this will usually be the same directory as the one for [MOVIE].
MultipleAudioAVI=0|1 Optional. If you set this to 1, then the main movie A/V file is considered to contain multiple audio tracks (this means the movie uses method two of creating a multi-lang MDVD). Default is 0.
Primary=String[3] String Required. For each language there is a short 3-character abbreviation (like ENG for English) to be displayed in the control panel, and a long form for the selection requester. This line gives the short form (String[3] meaning a string of length 3!) and the long form (String) for the primary language, that is the language included in the main movie A/V file
Number=String[3] String Required. Repeat this and the following line for each secondary language.
  • Number
    The number of the secondary language being described (does not necessarily have to be described in ascending order, but it's recommended that you do so for readability purposes).
  • String[3]
    The short 3-character form of the language name.
  • String
    The long form of the language name.
File=String1 String2 String3 Required.This line gives the names of the WAV files for the language described in the line before, for CD 1 (String1), CD 2 (String2) and CD 3 (String3) Note: String2 and String3 are omitted if the movie only extends over one or two CDs! Attention: In case of a multi-language movie that uses method two of creating a multi-lang MDVD, this entry does not point to an actual audio file, but to the Graph file that makes the multi-audio AVI play the desired language!
Note: ".WAV Files", just like with AVI before, here only refers to the file type, it doesn't have to be a real WAV but will rather be an MP3 with or without a WAV header, basically everything that Media Player can play and contains only audio.

[SUBTITLES]

Optional. Another cool movie feature are subtitles, helping a lot in understanding e.g. foreign language films. If you ripped/created subtitles for your movie, you give the necessary information in this section.
Directory=String Required. Directory where to find all of the subtitle files on all CDs.
DialogString=String Optional. The player can automatically display lines of subtitles in different colors if they are part of a dialog. Usually a minus char ("-") as first char in a line indicates that another person is speaking. Using this entry you can tell the player with which string a subtitle line has to start to be regarded as a new speaker in a dialog. If you omit this entry, the whole subtitle is displayed in default color. All colors can be set in the configuration dialog of the player. Note: If you use a "{c:}" Color Tag (see here for details) in your subtitle lines, that color has priority over the automatically selected one!
Lines=Number Optional. Default value for this entry is 3. The calculation of available space on the screen for subtitles is dependent on the maximum number of lines subtitles for the movie contain. You can give this number using this entry.
EstimateDisplayDuration=0|1 Optional. If you set this to 1 (default is 0), then the span of time for that a subtitle is displayed is estimated (meaning calculated by the formula Time in Seconds = 1 + 0.05 * (Number of Chars in Subtitle)), otherwise the Last Frame values in the subtitle file are used. This is useful for external subtitle formats which do not contain Last Frame values, or if your MDVDP style subtitle file does not have Last Frame values due to the ripping method you might be using.
MaxDisplayDuration=Number Optional. If your subtitle file basically has Last Frame values, but some subtitles don't, you can set this entry to the number of seconds that a subtitle is displayed if no last frame is given. Note: EstimateDisplayDuration has priority over this entry if set to 1. The default value is 0, meaning no maximum display duration.
Number=String[3] String Required. Repeat this and the following four lines for each subtitle set. The next line is required too, while the following three are optional. The entries File, Format, Offset and Multiplier always refer to the subtitle language previously defines.
  • Number
    The number of the subtitle being described (does not necessarily have to be described in ascending order, but it's recommended that you do so for readability purposes).
  • String[3]
    The short 3-character form of the subtitle name.
  • String
    The long form of the subtitle name.
File=String Required.This line gives the name of the text file for the subtitle described in the line before. Note: The subtitle file, whose structure is explained here, has to be on all movie CDs under the same name in the same directory.
Format=Number Optional. Besides its own format, Micro DVD Player also supports other formats of subtitle files. The default for the Format value is -1, which means the player automatically detects the format. If you set this to non-zero, the following format is expected:
  • 1 - SubMagic/SubViewer. See here for details)
  • 2 - SubRip. The ripper done by the programmers of SubMagic has an own format (a lot better than SubViewer's), see website for format 1!
  • 3 - SubViewer 2.0. The new format of SubViewer with end frames and milliseconds resolution.
  • 4 - TMPlayer. The native format of some subtitle displayer widely used in Poland
  • 5 - Sub Station Alpha. Loading SSA subtitles is quite stripped-down at the moment, only the start+end frame info (hundreth-second resolution) and the text is converted at the moment. All style info is stripped.
If you want further subtitle file formats besides the currently known ones to be supported, contact me.
OpenBracket=Char Optional. Using this entry you can redefine the open bracket character for MicroDVD format subtitle files. Default value is "{". This is useful if the { is needed in the language of this subtitle.
CloseBracket=Char Optional. Using this entry you can redefine the close bracket character for MicroDVD format subtitle files. Default value is "}". This is useful if the } is needed in the language of this subtitle.
LineSeparator=Char Optional. Using this entry you can redefine the line separator character for MicroDVD format subtitle files. Default value is "|". This is useful if the | is needed in the language of this subtitle.
Offset=Number Optional. In case your subtitles are displayed out-of-sync with the movie, meaning all subtitle lines appear a certain amount of time too early or late, you can make the player add (or subtract, if the Number is negative) the given number of frames to all start- and end- frames of this subtitle file while loading them, thus making them appear later or earlier during movie playback. This will help if all subtitle frame numbers are displaced by the same value (constant displacement). The default value is 0, meaning no shifting is done.
Multiplier=Number Optional. In case your movie runs faster or slower than the subtitles, meaning the subs get more and more out-of-sync while watching the movie (either faster or slower), you can use this parameter to multiply all subtitle start/end-frames of this file by the given number. This is called linear displacement, meaning if you e.g. check the subtitles twice as far into the movie, they will be displaced twice as much as before.

Attention: to avoid problems with different international decimal point symbols, do not write decimal numbers like 1.5 here! The Number is in units of 100000, meaning to get a multiplier of 1.5, you have to enter a 150000. The default value if you omit this entry is 100000, resulting in multiplication by 1.

If e.g. your movie runs a little faster than the subs, meaning the subs appear more and more "too late", try entering a multiplier of 99990, resulting in all subtitle start/end frames to be multiplied by 0.999, making them appear earlier in the movie. You have to experiment a bit to find the correct value.

Useful hint: You can combine the parameters Offset and Multiplier. The Offset is added to the frame numbers first, then the Multiplier is executed. So to fix sync problems with subtitles, you should first use the Offset parameter to shift the first subtitle so that it matches the movie, then check if the rest of the subtitles appears okay. If so, you're done. If not, experiment with the Multiplier value, speeding up or slowing down the subtitles until they match the movie till the end.

[MENU]

Optional. This section may be omitted if your movie does not have a navigation menu. In that case the main movie starts immediately upon CD start.
Directory=String Required. The directory in which all menu related files reside.
AVIName=String Optional. In case the movie has animated menus, this gives the A/V file containing ALL the animations. Selection of video parts is done via "VideoRange" (see Pages section).
AudioName=String Optional. For those boring DVD nav menus that have no animated pages and no sound, you can specify the name of an audio file (WAV, MP3 etc.) here that is played as background audio whenever the menu is running. Note: The AudioFile is played only when the page being displayed is a still image. When a video page is active, the Audio file is paused meanwhile, and restarted when a still image page is active again.
Size=Number1,Number2 Required if your menu only has still pictures. This gives the dimensions (Number1 is width, Number2 is height) of the menu video and still pictures. If your menu has a video, you may omit this entry, as the dimensions are taken from the video itself then.
StartPage=Number Required. The first page to be displayed when the movie starts.
MenuPage=Number Required. The page to be displayed when returning to the menu from a running or ended movie (usually a main loop for animated menus, may be the same as StartPage)
ChaptersPage=Number Optional. First chapter selection page, if such exists. Currently only used for the player feature Jump to chapters page after main page has completed N video loops.
SpecialsPage=Number Optional. The number of the Special Features page, if such exists. When returning to the menu from a running or ended special video, this page is used. If this is omitted or zero, the MenuPage is used instead.

[PAGE=Number]

Optional. For each "page" in the menu which may be a still image or a part of the MENU video, you define a PAGE section. The Number says which page is being described. The highest possible page number is 500. Pages do not have to be in ascending order, plus you may have gaps in page numbers for a better grouping (like pages 1-4 defining the main menu, 10-15 the chapters selection and 20-23 some special videos).
Repeat this section for each page in your menu.
CopyFrom=Number Optional. In case you have several pages that have almost identical definitions, you can copy the contents of a previously defined page to the current one, and only explicitly state those entries that are different from the copied section. This can save a lot of space and work e.g. for chapter selection pages, which are often quite identical.
Note: CopyFrom exists for pages as well as for selections (see below). If used on the page level, the page settings plus all selections are copied!
BackgroundMode=1|2 Required. With this you give the mode of this page:
  • 1 means it plays a part of the menu A/V file
  • 2 means it displays a still picture
PictureFile=String Required if BackgroundMode is 2. You give the name of the picture file (usually JPG format) here.
VideoRange=Number1-Number2 Required if BackgroundMode is 1. This gives the first and last frame of the menu video file to be played for this page.
VideoLoop=0|1 Optional for BackgroundMode 1. If set to 1, the selected VideoRange loops, otherwise the video stops, or the menu jumps to another page or executes an action, depending on the setting of JumpAtEnd and ActionAtEnd, when the end frame has been reached.
PictureDuration=Number Optional for BackgroundMode 2. If set to non-zero, the menu automatically jumps to another page after Number of seconds has elapsed. Note: this setting only has effect if the background mode for this page is picture, and not if it is video.
JumpAtEnd=Number Optional. Page number to activate when the current page ends. This is used in two cases:
  1. When BackgroundMode is 1 and VideoLoop is 0 (then the given page is activated as soon as the last frame of VideoRange is reached). If JumpAtEnd is 0 in this case, the last frame of the video range will be displayed happily ever after. :-)
  2. When BackgroundMode is 2 and PictureDuration is non-0 (then the given page is activated as soon as the given duration has elapsed).
Number can be an absolute page number (like 2 or 15 etc., activating page 2 or 15). Or it can be a relative number (like +3 or -4 etc., activating the page 3 pages after or 4 pages before the current page). The latter format is useful e.g. for actor info pages, which often have buttons for "go to previous/next page".
Important note: If both JumpAtEnd and ActionAtEnd (see next entry) are defined, ActionAtEnd will be executed first, and then JumpAtEnd, except the Action was one that quits the menu, such as Start Movie or Start At Chapter N.
ActionAtEnd=Number Optional. In addition to jumping to a page, any action that the player supports can be triggered at the end of a page. For that purpose, put the action number, followed by a "#" character, and then by the parameter, in this entry. See here for details on actions.
Important note: If both JumpAtEnd and ActionAtEnd (see next entry) are defined, ActionAtEnd will be executed first, and then JumpAtEnd, except the Action was one that quits the menu, such as Start Movie or Start At Chapter N.
Another important note: When the user clicks the mouse to skip a transition video (see next entry), the ActionAtEnd is not executed, only the JumpAtEnd page is processed in that case!
SelectionAvailable=0|1 Required. 0 means there are no clickable areas in this page. Note: This is important for determining if a page is a Transition Video, meaning that it just leads to another page without any user choice.
If a page has this value set to 0, and VideoLoop set to 0, and JumpAtEnd set to non-zero, it is considered a Transition Video and may be skipped by clicking the mouse or permanently (see config dialog of the player program!).
SelectionOrdering=1|2 Optional. You set the ordering mode of all selections on the current page to row (1 = default) or to column (2).
Explanation: To be able to use the "cursor keys" on a remote control ("move one selection up,down,left,right"), the selections on a page have to be ordered in a 2-dimensional table. To do so, the player processes the following loop:
  1. Find the topmost, not yet processed selection
  2. Find all not yet processed selections whose vertical center lies between the top and bottom boundary of the selection found in 1)
  3. Order all selections found in 2) by their horizontal position and mark them as processed
  4. Repeat 1) to 3) until all selections are processed
Depending on where the selections on a page are located, this method may result in strange cursor-jump behaviour (a good example is the scene selection of the movie The Sixth Sense). If you have multiple columns of selections on the page with different numbers of selections per column, you should use the column ordering mode. Otherwise, if the selections are mainly structured in rows, use the default row orderingmode.
DefaultSelection=Number Optional. With this value you can tell the player on which selection the mouse shall be positioned when the page is activated. This is useful e.g. when you use a remote control, and want the mouse to be positioned over some kind of NEXT button in a "actors' information" section etc. When you set this value to 0 (which is the default if omitted), the left- and topmost selection is used for mouse positioning.
ProhibitSelectionBefore=Number Optional for BackgroundMode 1. If this is zero or greater, the user is not able to click selection areas before the frame given in Number has been reached in the menu video. Set this to -1 (which is also the default when you omit the entry) to deactivate the function. Note: if activated in the player config dialog, the user can jump immediately to the first frame allowing selections by clicking the mouse! (This is an improvement over the usual DVD feature that totally disallows you to choose actions while playing certain video parts.)
ProhibitSelectionAfter=Number Optional for BackgroundMode 1. If this is non-zero, no selection clicking is possible after a certain frame in the menu video has been passed.

[SELECTION=Number]

Optional. For each clickable area on a page, you give a Selection section in the INI file. Note: A Selection section always refers to the previously defined Page section. The highest possible selection number for each page is 50.
CopyFrom=Number Optional. Just like with pages, you can copy a previously defined selection to the current one if they are almost identical.
Note: CopyFrom exists for pages as well as for selections (see below). If used on the selection level, only the given selection is copied!
Area=Number1,Number2Number3,Number4 Required. This gives the coordinates of the clickable rectangle for this selection on the current page. Number1 is the left, Number2 the top, Number3 the right and Number4 the bottom boundary.
Note: The mouse cursor changes its form when you move over a clickable area. You don't have to worry about coordinate transformation when the user stretches the video to fullscreen, this transformation is done automatically. Just give the coordinates here relative to the ORIGINAL dimensions of the video/still image.
Action=1|2|3|4|5|6|7 Required. Action to be taken when the user clicks this selection. If parameters are necessary, they are given in the following entry Parameter.
  • 1 = Jump to another page
    Parameter: Number of page to be activated. This can be an absolute page number (like 2 or 15 etc., activating page 2 or 15). Or it can be a relative number (like +3 or -4 etc., activating the page 3 pages after or 4 pages before the current page). The latter format is useful e.g. for actor info pages, which often have buttons for "go to previous/next page".
  • 2 = Start the movie at the beginning
    Parameter: None
  • 3 = Start the movie at the given chapter
    Parameter: Chapter at which to start the movie
  • 4 = Display a message in a nice dialog box.
    Parameter: Text to be displayed.
    Some important hints:
    • To write multiple lines, use a pipe '|' character to separate lines.
    • You can set the font size for your message by giving a number at the beginning of the text, separated from real text by a space. Default size in case of missing number is 12.
    • The text may not contain the character "#", because this is used as separator for multiple actions/parameters (see below).
  • 5 = Start a Special Feature video
    Parameter: Special video to be started (defined in section Specials)
  • 6 = Change language
    Parameter: Number of language (0=primary)
  • 7 = Change subtitle
    Parameter: Number of subtitle (0=deactivate)
  • 8 = Return to Movie (means restart the movie at the position where you left it for the menu by clicking the Menu button on the control bar. This does basically the same as clicking the menu button a second time.
    Parameter:: None
Note: Selections can also trigger multiple actions. For that purpose, the Action entry can hold multiple numbers, separated by a "#", e.g. "7#1" to change the subtitle and then jump to another page. The parameters also have to be separated by a "#". Remember that the parameter for action 4 (Display Message) not contain "#" characters as they would be interpreted as parameter delimiter. Some actions, like Start Movie, Start At Chapter etc. will cancel further defined actions, pay attention to this.
Parameter=Number/String Required if the given Action requires a parameter. See entry Action for description of parameters.

INI and Subtitle File Examples

To help you understand the format and function of INI and SUB (MDVDP Format) files, here are some examples for you.


Simple subtitle INI file

You can use this INI file structure if you only quickly want to display a subtitle file together with a video file and do not need/want further stuff like Nav Menu, Chapters, Multilanguage etc. The following text is meant for Copy+Paste to your INI file!

[Micro DVD Ini File]

; You can remove all comments (text after a semicolon) if you want!

; Put your video and subtitle file, plus this INI file, in the same directory
; and run the player with the INI file as parameter (MDVDP.EXE TEST.INI e.g.)

; Or run the player, go to MDVD mode, go to Config screen, choose "Run Movie
; from Directory" and choose your INI file.

[MAIN]
Title=The Matrix      ; Your video title goes here

[MOVIE]
Directory=.           ; Means the video file is looked for in the same directory
                      ; as the INI file
AVIName=Filename.Ext  ; Put your video filename here

[SUBTITLES]
Directory=.           ; Means the subtitle file is looked for in the same directory
                      ; as the INI file
1=ENG English         ; Put short and long form of language here
File=Filename.Ext     ; Put your Subtitle file name here
Format=1              ; Put 0 here for MDVDP format, 1 for SubViewer format
Lines=3               ; Put maximum number of lines occuring in subtitles here


Real-life example INI file from "The Matrix"

[Micro DVD Ini File]

[MAIN]
Title=The Matrix
ID=9918D4AE
CDNumber=1

[MOVIE]
Directory=Video_TS
AVIName=VTS_01_1.VOB

[MENU]
Directory=Menu_TS
AVIName=MTS_01_1.VOB
StartPage=1
MenuPage=2
ChaptersPage=21
SpecialsPage=11

[SPECIALS]
CD=2
1=VTS_02_1.VOB Making the Matrix
2=VTS_02_2.VOB Follow the White Rabbit
3=VTS_02_3.VOB What is Bullet Time
4=VTS_02_4.VOB What is The Concept

[CHAPTERS]
1=1008 Trinity in a jam
2=5424 Impossible Pursuit
3=9576 Follow Instructions
4=13992 The Question
5=17232 "They're coming for you"
6=24504 Unable to speak
7=31008 Getting the bug out
8=36984 Morpheus' proposal
9=42912 Down the rabbit hole
10=46656 Slimy rebirth
11=52728 Nebuchadnezzar's crew
12=56688 The real world
13=63864 The search is over
14=67056 Training begins
15=70824 Morpheus/Neo matchup
16=77208 First jump
17=80040 The gatekeepers
18=84912 Running silent and deep
19=91656 Dealing for bliss
20=96576 Off to see the oracle
21=102144 There is no spoon
22=104400 Choices... and a cookie
23=111984 Glitch in the matrix
24=118536 One left behind
25=123624 Heroes unplugged
26=129336 Cypher's burnout
27=131592 Matters of belief
28=140160 Virus to be cured
29=145416 Lobby shooting spree
30=152736 Dodge this
31=154848 Gotcha
32=158112 Rooftop rescue
33=162480 Subway showdown
34=168936 "My name is Neo"
35=170928 Sentines attack
36=176160 "He is the one"
37=180888 Final connections
38=186192 End Credits

[PAGE=1]                           ; Intro Video and Begin of Main Loop
    BackgroundMode=1
    VideoRange=450-2002
    VideoLoop=0
    JumpAtEnd=2
    SelectionAvailable=1
    ProhibitSelectionBefore=1164   ; Selection not allowed before the menu is fully visible on screen
    [SELECTION=1]                  ; Go to chapters selection
        Area=336,272-533,291
        Action=1
        Parameter=20
    [SELECTION=2]                  ; Go to Special Features
        Area=336,308-532,327
        Action=1
        Parameter=10
    [SELECTION=3]                  ; No languages and subtitles available: display a message
        Area=336,343-446,360
        Action=4
        Parameter=Multiple audio tracks|and subtitles are not|available on this CD.
    [SELECTION=6]                  ; Start movie
        Area=336,379-453,397
        Action=2
        
[PAGE=2]                       ; Main Menu Loop, same selections as page 1, but looping video
    CopyFrom=1
    BackgroundMode=1
    VideoRange=2015-3083
    VideoLoop=1
    JumpAtEnd=0
    SelectionAvailable=1
    
[PAGE=10]                       ; Transition to "Special Features"
    BackgroundMode=1
    VideoRange=8612-8679
    VideoLoop=0
    JumpAtEnd=11
    SelectionAvailable=0        ; No selection, plays once and jumps to another page then
    
[PAGE=11]                       ; Special Features
    BackgroundMode=2            ; A still picture this time
    PictureFile=MTS_02_1.jpg
    SelectionAvailable=1
    [SELECTION=1]               ; Back to Main Menu
        Area=176,410-275,427
        Action=1
        Parameter=2
    [SELECTION=2]               ; Go to Cast&Crew page
        Area=174,309-301,328
        Action=1
        Parameter=30
    [SELECTION=3]               ; Go to Dreamworld page
        Area=174,357-350,375
        Action=1
        Parameter=110
        
[PAGE=20]                       ; Transition to Chapters Selection
    BackgroundMode=1
    VideoRange=3097-3154
    VideoLoop=0
    JumpAtEnd=21
    SelectionAvailable=0
    
[PAGE=21]                       ; Chapters Page 1
    BackgroundMode=1
    VideoRange=3217-3946
    VideoLoop=0
    JumpAtEnd=22
    SelectionAvailable=1
    [SELECTION=1]               ; Start movie at chapter 1
        Area=166,96-260,166
        Action=3
        Parameter=1
    [SELECTION=2]               ; Start at chapter 2, and so on
        Area=313,96-410,166
        Action=3
        Parameter=2
    [SELECTION=3]
        Area=458,96-557,166
        Action=3
        Parameter=3
    [SELECTION=4]
        Area=168,250-257,320
        Action=3
        Parameter=4
    [SELECTION=5]
        Area=319,248-407,319
        Action=3
        Parameter=5
    [SELECTION=6]
        Area=464,252-551,318
        Action=3
        Parameter=6
    [SELECTION=11]               ; Start movie at beginning
        Area=162,408-263,430
        Action=2
    [SELECTION=12]               ; Back to main menu
        Area=309,409-411,430
        Action=1
        Parameter=2
    [SELECTION=13]               ; Start chapter 38 (end credits)
        Area=456,409-556,430
        Action=3
        Parameter=38
    [SELECTION=21]               ; Selections 21-27 choose the 7 chapters pages 21-27
        Area=191,384-206,396
        Action=1
        Parameter=21
    [SELECTION=22]
        Area=237,384-255,396
        Action=1
        Parameter=22
    [SELECTION=23]
        Area=285,382-310,395
        Action=1
        Parameter=23
    [SELECTION=24]
        Area=339,382-366,395
        Action=1
        Parameter=24
    [SELECTION=25]
        Area=397,383-425,394
        Action=1
        Parameter=25
    [SELECTION=26]
        Area=454,382-479,394
        Action=1
        Parameter=26
    [SELECTION=27]
        Area=506,384-532,396
        Action=1
        Parameter=27
        
[PAGE=22]                        ; Chapters pages 2-7 are mainly the same as 21, just      
    CopyFrom=21                  ; partially differen selection areas, and other chapters of course
    JumpAtEnd=23
    VideoRange=3990-4749
    [SELECTION=11]
        Area=0,0-0,0             ; Set area to 0,0-0,0 to disable a previously defined and copied selection!
    [SELECTION=13]
        Area=0,0-0,0
    [SELECTION=1]
        Parameter=7
    [SELECTION=2]
        Parameter=8
    [SELECTION=3]
        Parameter=9
    [SELECTION=4]
        Parameter=10
    [SELECTION=5]
        Parameter=11
    [SELECTION=6]
        Parameter=12
        
[PAGE=23]
    CopyFrom=22
    JumpAtEnd=24
    VideoRange=4760-5519
    [SELECTION=1]
        Parameter=13
    [SELECTION=2]
        Parameter=14
    [SELECTION=3]
        Parameter=15
    [SELECTION=4]
        Parameter=16
    [SELECTION=5]
        Parameter=17
    [SELECTION=6]
        Parameter=18
        
[PAGE=24]
    CopyFrom=22
    JumpAtEnd=25
    VideoRange=5530-6289
    [SELECTION=1]
        Parameter=19
    [SELECTION=2]
        Parameter=20
    [SELECTION=3]
        Parameter=21
    [SELECTION=4]
        Parameter=22
    [SELECTION=5]
        Parameter=23
    [SELECTION=6]
        Parameter=24
        
[PAGE=25]
    CopyFrom=22
    JumpAtEnd=26
    VideoRange=6300-7059
    [SELECTION=1]
        Parameter=25
    [SELECTION=2]
        Parameter=26
    [SELECTION=3]
        Parameter=27
    [SELECTION=4]
        Parameter=28
    [SELECTION=5]
        Parameter=29
    [SELECTION=6]
        Parameter=30
        
[PAGE=26]
    CopyFrom=22
    JumpAtEnd=27
    VideoRange=7070-7829
    [SELECTION=1]
        Area=226,96-327,166
        Parameter=31
    [SELECTION=2]
        Area=396,96-488,166
        Parameter=32
    [SELECTION=3]
        Area=226,250-327,320
        Parameter=33
    [SELECTION=4]
        Area=396,250-488,320
        Parameter=34
    [SELECTION=5]
        Area=0,0-0,0
    [SELECTION=6]
        Area=0,0-0,0
        
[PAGE=27]
    CopyFrom=26
    JumpAtEnd=21
    VideoRange=7840-8605
    [SELECTION=1]
        Parameter=35
    [SELECTION=2]
        Parameter=36
    [SELECTION=3]
        Parameter=37
    [SELECTION=4]
        Parameter=38
        
        
[PAGE=30]                        ; Transition to Cast&Crew
    BackgroundMode=1
    VideoRange=0-74
    VideoLoop=0
    JumpAtEnd=31
    SelectionAvailable=0
    
[PAGE=31]                        ; Cast&Crew Mainpage
    BackgroundMode=2
    PictureFile=MTS_03_1.jpg
    SelectionAvailable=1
    [SELECTION=1]
        Area=163,410-262,428
        Action=1
        Parameter=11
    [SELECTION=2]
        Area=161,151-391,167
        Action=1
        Parameter=41
    [SELECTION=3]
        Area=161,180-440,199
        Action=1
        Parameter=51
    [SELECTION=4]
        Area=161,210-431,228
        Action=1
        Parameter=61
    [SELECTION=5]
        Area=161,239-468,256
        Action=1
        Parameter=71
    [SELECTION=6]
        Area=161,270-423,283
        Action=1
        Parameter=81
    [SELECTION=7]
        Area=161,312-396,329
        Action=1
        Parameter=91
    [SELECTION=8]
        Area=161,343-396,374
        Action=1
        Parameter=101
        
        
[PAGE=41]
    BackgroundMode=2
    PictureFile=MTS_04_1.jpg
    SelectionAvailable=1
    [SELECTION=1]
        Area=310,408-376,427
        Action=1
        Parameter=31                ; Back to Cast&Crew page
    [SELECTION=2]
        Area=480,408-571,426
        Action=1
        Parameter=+1                ; Jump to next page
        
[PAGE=42]
    CopyFrom=41
    PictureFile=MTS_04_2.jpg
    [SELECTION=1]
        Parameter=-1
    [SELECTION=3]
        Area=395,407-461,427
        Action=1
        Parameter=31
        
[PAGE=43]                           ; Identical to previous page except for picture
    CopyFrom=42
    PictureFile=MTS_04_3.jpg
        
[PAGE=44]
    CopyFrom=42
    PictureFile=MTS_04_4.jpg
        
[PAGE=45]
    CopyFrom=42
    PictureFile=MTS_04_5.jpg
        
[PAGE=46]
    CopyFrom=42
    PictureFile=MTS_04_6.jpg
        
[PAGE=47]
    CopyFrom=42
    PictureFile=MTS_04_7.jpg
    [SELECTION=2]
        Parameter=31
    [SELECTION=3]
        Area=0,0-0,0
        
        
[PAGE=51]
    CopyFrom=41
    PictureFile=MTS_05_1.jpg
        
[PAGE=52]
    CopyFrom=42
    PictureFile=MTS_05_2.jpg
        
[PAGE=53]
    CopyFrom=42
    PictureFile=MTS_05_3.jpg
        
[PAGE=54]
    CopyFrom=42
    PictureFile=MTS_05_4.jpg
        
[PAGE=55]
    CopyFrom=42
    PictureFile=MTS_05_5.jpg
        
[PAGE=56]
    CopyFrom=42
    PictureFile=MTS_05_6.jpg
        
[PAGE=57]
    CopyFrom=47
    PictureFile=MTS_05_7.jpg
        
[PAGE=61]
    CopyFrom=41
    PictureFile=MTS_06_1.jpg
        
[PAGE=62]
    CopyFrom=42
    PictureFile=MTS_06_2.jpg
        
[PAGE=63]
    CopyFrom=42
    PictureFile=MTS_06_3.jpg
        
[PAGE=64]
    CopyFrom=47
    PictureFile=MTS_06_4.jpg
        
[PAGE=71]
    CopyFrom=41
    PictureFile=MTS_07_1.jpg
        
[PAGE=72]
    CopyFrom=42
    PictureFile=MTS_07_2.jpg
        
[PAGE=73]
    CopyFrom=47
    PictureFile=MTS_07_3.jpg
        
[PAGE=81]
    CopyFrom=41
    PictureFile=MTS_08_1.jpg
        
[PAGE=82]
    CopyFrom=42
    PictureFile=MTS_08_2.jpg
        
[PAGE=83]
    CopyFrom=42
    PictureFile=MTS_08_3.jpg
        
[PAGE=84]
    CopyFrom=42
    PictureFile=MTS_08_4.jpg
        
[PAGE=85]
    CopyFrom=47
    PictureFile=MTS_08_5.jpg
        
[PAGE=91]
    CopyFrom=41
    PictureFile=MTS_09_1.jpg
    [SELECTION=1]
        Area=146,407-212,428
    [SELECTION=2]
        Area=315,407-408,428
        
[PAGE=92]
    CopyFrom=42
    PictureFile=MTS_09_2.jpg
        
[PAGE=93]
    CopyFrom=42
    PictureFile=MTS_09_3.jpg
        
[PAGE=94]
    CopyFrom=42
    PictureFile=MTS_09_4.jpg
        
[PAGE=95]
    CopyFrom=42
    PictureFile=MTS_09_5.jpg
    [SELECTION=1]
        Area=146,407-212,428
    [SELECTION=2]
        Area=315,407-408,428
    [SELECTION=3]
        Area=231,407-297,428
        
[PAGE=96]
    CopyFrom=42
    PictureFile=MTS_09_6.jpg
        
[PAGE=97]
    CopyFrom=47
    PictureFile=MTS_09_7.jpg
        
[PAGE=101]
    CopyFrom=41
    PictureFile=MTS_10_1.jpg
    [SELECTION=1]
        Area=0,0-0,0
    [SELECTION=2]
        Parameter=31
    [SELECTION=3]                        ; This will start a special video
        Area=507,344-548,382
        Action=5
        Parameter=4
        
[PAGE=110]                               ; Transition to The Dreamworld
    BackgroundMode=1
    VideoRange=150-224
    VideoLoop=0
    JumpAtEnd=111
    SelectionAvailable=0
    
[PAGE=111]
    BackgroundMode=2
    PictureFile=MTS_11_1.jpg
    SelectionAvailable=1
    [SELECTION=1]
        Area=164,408-267,431
        Action=1
        Parameter=11
    [SELECTION=2]
        Area=314,408-411,432
        Action=1
        Parameter=112
    [SELECTION=3]
        Area=163,202-336,220
        Action=5
        Parameter=1
    [SELECTION=4]
        Area=162,125-528,186
        Action=4
        Parameter=14 Audio commentaries|are not available|on this CD
    [SELECTION=5]
        Area=171,343-212,382
        Action=5
        Parameter=3
        
[PAGE=112]
    BackgroundMode=2
    PictureFile=MTS_11_2.jpg
    SelectionAvailable=1
    [SELECTION=1]
        Area=164,408-233,431
        Action=1
        Parameter=111
    [SELECTION=2]
        Area=309,407-415,432
        Action=1
        Parameter=11
    [SELECTION=3]
        Area=161,128-499,169
        Action=4
        Parameter=14 Audio commentaries|are not available|on this CD
    [SELECTION=4]
        Area=160,192-574,333
        Action=5
        Parameter=2


Real-life example INI file from "South Park"

[Micro DVD Ini File]

[MAIN]
Title=South Park - Bigger, Longer and Uncut
ID=C22A33B2
Delay=1

[MOVIE]
Directory=Video_TS
AVIName=VTS_01_1.Vob

[MENU]
Directory=Menu_TS
Size=720,480                           ; As there's no video, the size must be given in this statement
StartPage=1
MenuPage=1
ChaptersPage=3
AudioName=MTS_01_0.VOB                 ; Background audio to increase entertainment of this picture-only menu

[SPECIALS]
CD=1
1=VTS_02_1.Vob Trailer 1
2=VTS_02_2.Vob Trailer 2
3=VTS_02_3.Vob Animation Technology

[LANGUAGES]
Directory=Audio_TS
Primary=ENG English
1=FRE French
File=ATS_01_1.Vob

[SUBTITLES]
Directory=Video_TS
1=ENG English
File=VTS_01_1.SUB

[CHAPTERS]
1=0 "Mountain Town"
2=7200 Asses of Fire/"Uncle Fucka"
3=10584 "Wendy's Song"
4=12864 Fragile little minds
5=18672 World news
6=21338 "It's easy, mmmkay!"
7=24912 "Oh my god, they killed Kenny!"
8=29064 Heaven and Hell
9=31176 "Blame Canada"
10=33792 Partners in evil
11=43248 "Kyle's mom's a bitch"
12=47112 The V-chip
13=49152 The march of war
14=50496 "What would Brian Boitano do?"
15=54792 The seventh sign
16=60504 "Up there"
17=64488 "La Resistance"
18=73920 Saddam is from Mars, Satan is from Venus
19=75504 The mole
20=78024 "I can change"
21=81144 The USO show
22=88176 "I'm super"
23=93984 Throw the switch
24=100872 Blood of the innocent
25=105936 Kenny's wish/"Mountain Town" (reprise)
26=110184 Credit

[PAGE=1]                        ; Main Menu Page
    BackgroundMode=2
    PictureFile=Mts_01_1.jpg
    SelectionAvailable=1
    PictureDuration=10          ; This causes the first chapters page to be activated automatically
    JumpAtEnd=11                ; after 10 seconds (kind of slideshow)
    [SELECTION=1]               ; Go to chapters page
        Area=346,280-460,390
        Action=1
        Parameter=11
    [SELECTION=2]               ; Specials page was missing, so choose specials with the chapters button
        Area=222,292-340,386
        Action=4
        Parameter=14 Please choose|the desired|special feature|using the|CHAPTERS button
    [SELECTION=3]               ; Go to audio/subtitle setup page
        Area=359,176-463,271
        Action=1
        Parameter=30
    [SELECTION=4]               ; Run movie
        Area=233,190-346,274
        Action=2
        
[PAGE=11]                       ; Chapters page 1
    BackgroundMode=2
    PictureFile=Mts_03_1.jpg
    SelectionAvailable=1
    PictureDuration=5           ; After 5 seconds jump to next chapters page (kind of slideshow)
    JumpAtEnd=+1
    [SELECTION=1]               ; Selections 1-13 select the chapters pages
        Area=181,357-212,380
        Action=1
        Parameter=11
    [SELECTION=2]
        Area=226,357-257,380
        Action=1
        Parameter=12
    [SELECTION=3]
        Area=275,357-306,380
        Action=1
        Parameter=13
    [SELECTION=4]
        Area=322,356-353,379
        Action=1
        Parameter=14
    [SELECTION=5]
        Area=366,357-407,378
        Action=1
        Parameter=15
    [SELECTION=6]
        Area=423,357-473,378
        Action=1
        Parameter=16
    [SELECTION=7]
        Area=489,358-539,379
        Action=1
        Parameter=17
    [SELECTION=8]
        Area=162,385-212,406
        Action=1
        Parameter=18
    [SELECTION=9]
        Area=226,385-276,406
        Action=1
        Parameter=19
    [SELECTION=10]
        Area=290,385-343,405
        Action=1
        Parameter=20
    [SELECTION=11]
        Area=361,386-414,406
        Action=1
        Parameter=21
    [SELECTION=12]
        Area=432,385-485,405
        Action=1
        Parameter=22
    [SELECTION=13]
        Area=504,386-557,406
        Action=1
        Parameter=23
    [SELECTION=20]              ; Jump back to main menu  
        Area=318,413-419,435
        Action=1
        Parameter=1
    [SELECTION=31]              ; Start movie at chapter 1 (there are only 2 chapters per page here)
        Area=209,189-354,295
        Action=3
        Parameter=1
    [SELECTION=32]
        Area=361,187-506,293
        Action=3
        Parameter=2
        
[PAGE=12]
    CopyFrom=11
    PictureFile=Mts_03_2.jpg
    [SELECTION=31]
        Parameter=3
    [SELECTION=32]
        Parameter=4
[PAGE=13]
    CopyFrom=11
    PictureFile=Mts_03_3.jpg
    [SELECTION=31]
        Parameter=5
    [SELECTION=32]
        Parameter=6
[PAGE=14]
    CopyFrom=11
    PictureFile=Mts_03_4.jpg
    [SELECTION=31]
        Parameter=7
    [SELECTION=32]
        Parameter=8
[PAGE=15]
    CopyFrom=11
    PictureFile=Mts_03_5.jpg
    [SELECTION=31]
        Parameter=9
    [SELECTION=32]
        Parameter=10
[PAGE=16]
    CopyFrom=11
    PictureFile=Mts_03_6.jpg
    [SELECTION=31]
        Parameter=11
    [SELECTION=32]
        Parameter=12
[PAGE=17]
    CopyFrom=11
    PictureFile=Mts_03_7.jpg
    [SELECTION=31]
        Parameter=13
    [SELECTION=32]
        Parameter=14
[PAGE=18]
    CopyFrom=11
    PictureFile=Mts_03_8.jpg
    [SELECTION=31]
        Parameter=15
    [SELECTION=32]
        Parameter=16
[PAGE=19]
    CopyFrom=11
    PictureFile=Mts_03_9.jpg
    [SELECTION=31]
        Parameter=17
    [SELECTION=32]
        Parameter=18
[PAGE=20]
    CopyFrom=11
    PictureFile=Mts_03_10.jpg
    [SELECTION=31]
        Parameter=19
    [SELECTION=32]
        Parameter=20
[PAGE=21]
    CopyFrom=11
    PictureFile=Mts_03_11.jpg
    [SELECTION=31]
        Parameter=21
    [SELECTION=32]
        Parameter=22
[PAGE=22]
    CopyFrom=11
    PictureFile=Mts_03_12.jpg
    [SELECTION=31]
        Parameter=23
    [SELECTION=32]
        Parameter=24
[PAGE=23]
    CopyFrom=11
    PictureFile=Mts_03_13.jpg
    JumpAtEnd=1
    [SELECTION=31]
        Parameter=25
    [SELECTION=32]
        Parameter=26
        
[PAGE=30]                       ; Language+Subtitle setup page
    BackgroundMode=2
    PictureFile=Mts_02_1.jpg
    SelectionAvailable=1
    [SELECTION=1]               ; Set default language
        Area=385,178-566,194
        Action=6
        Parameter=0
    [SELECTION=2]               ; Set language 1 (French)
        Area=442,203-510,224
        Action=6
        Parameter=1
    [SELECTION=3]               ; Set subtitle 1 (English)
        Area=390,258-578,302
        Action=7
        Parameter=1
    [SELECTION=4]               ; Back to main page
        Area=435,339-536,361
        Action=1
        Parameter=1
    [SELECTION=5]               ; Turn off subtitles
        Area=454,306-514,328
        Action=7
        Parameter=0


Excerpt from the "South Park" subtitles file

{98}{296}[ Orchestra: Pastoral ]
{604}{767}[ Birds Twittering ]
{814}{}There's a bunch of birds
{889}{}ln the sky
{959}{}And some deers
{1005}{1079}Just went running by
{1097}{}Oh, the snow's|pure and white
{1169}{}On the earth|rich and brown
{1279}{}Just another|Sunday morning
{1359}{}ln my quiet
{1411}{1487}Mountain town
{1546}{}- [ Groans ]|-  The sun is shining|and the grass is green
{1619}{}Under the three feet|of snow, I mean
{1673}{}This is a day when it's hard|to wear a frown
{1761}{}All the happy people|stop to say hello
{1814}{}- Get out of my way!|-  Even though the temperature's low
{1885}{}It's a perfect|Sunday morning
{1924}{}ln my quiet|little mountain town
{2001}{}Well, good morning, Stan.
{2033}{}- Mom, can I have eight dollars|to see a movie?|- A movie?
{2093}{}Yeah. It's gonna be the best movie ever.|It's a foreign film from Canada.
{2168}{}All right.|But be back for supper.
{2220}{}Thanks, Mom.
{2254}{}Oh, what|a picture-perfect child
{2313}{}Just like Jesus|he's tender and mild
{2368}{}He'd wear a smile|while he wore a thorny crown
{2458}{}What an angel with|a heart so sweet and sure
{2526}{}And a mind|so open and pure
{2578}{2688}Thank god we live in this|quiet redneck mountain town!
{2692}{2728}Dude!|Dude, wake up!
{2810}{}[ Stan ]|Kenny, come on!
{2850}{2870}[ Muffled ]|Coming!
{2895}{}The Terrance and Phillip movie is out.|You wanna come?
{2951}{}- [ Muffled ] Sure. Let's go!|- Where do you think you're goin'?
{3023}{}- [ Muffled Reply ]|- You can't. You have to go to church.
{3100}{}- [ Whining ]|- [ Mother ] Well, fine.
{3143}{}Go ahead and miss church.
{3182}{}Then when you die and go to hell,|you can answer to Satan!
{3278}{}[ Muffled ]|Okay!
{3314}{}You can see your breath|hanging in the air
{3368}{}You see homeless people|but you just don't care
{3418}{}It's a sea of smiles in which|we'd be glad to drown
{3510}{}[ Muffled Singing ]
{3619}{}That's right!|It's Sunday morning
{3661}{}[ Choir Joins ln ]|ln our quiet, little
{3695}{}White-bread|redneck mountain town
{3767}{}Ba-ba-ba-ba-bah!
{3798}{}- Ready, lke? Kick the baby!|- Don't kick the baby.
{3870}{}- Kick the baby!|- [ lke Shrieks, Giggles ]
{3931}{}lke! You broke another window!
{3991}{}That's a bad baby!|Bad baby!
{4048}{}Kyle, we're going to|the Terrance and Phillip movie.
{4112}{}- Oh, my God, dude!|- Kyle! Where are you going?
{4180}{}Uh, ice skating.
{4215}{}Well, take your|little brother with you.
{4257}{}- He's not even my real brother.|He's adopted.|- Do as I say, Kyle!
{4334}{}Okay, okay, I'm sorry.
{4416}{}Look at those frail|and fragile boys
{4466}{}lt really gets me down
{4524}{}The world|is such a rotten place
{4580}{}And city life's|a complete disgrace
{4628}{}That's why I moved to|this redneck, meshugeneh
{4691}{}Quiet mountain
{4745}{}Town
{4829}{}- Ike! Bad baby!|- [ Murmurs ]
{4887}{}[ TV Announcer ] This program|is brought to you by Snacky Smores...
{4929}{}- the creamy fun of Smores|in a delightful cookie crunch.|- [ Doorbell Rings ]
{4987}{}Mom! Somebody's at the door!
{5030}{}- Coming, hon.|- Aah! I can't see the TV!
{5090}{}It's been six weeks since Saddam Hussein|was killed by a pack of wild boars...
{5171}{}and the world is still glad|to be rid of him.
{5218}{}Oh, look, Eric.|It's your little friends.
{5268}{}- Cartman!|- What are you guys doing here?
{5338}{}Oh, sweet, dude!|Yes! Yes!
{5412}{}Off to the movies|we shall go
{5478}{}Where we learn everything|that we know
{5539}{}'Cause the movies teach us
{5571}{}What our parents|don't have time to say
{5640}{}And this movie's gonna|make our lives complete
{5709}{}'Cause Terrance and Phillip
{5746}{}-  Are sweet|- Super sweet!
{5783}{}Thank God we live|in the quiet
{5837}{}- Little, redneck podunk, white-trash|-Whoo-whoo!
{5907}{}U... S...
{5963}{}A
{6027}{6101}Can I have five tickets to Terrance|and Phillip's Asses of Fire, please?

Using the INI Editor

What is a MDVD INI File?

Well, since a Micro DVD is not just some boring AVI file, but consists of one, two or three main movie videos, and optional language files, special feature videos, subtitle files, and, last but not least, navigation menu files, the player must somehow know how to handle all this stuff. :-)

Meaning, the INI file tells the player in what directories the video+audio files are, what their names are, at what frame the chapters start and what their titles are, what has to be displayed on each menu page and much more.


What is the INI Editor good for?

The INI file structure is quite straightforward with almost self-explaining entries, but there are some tasks involved in creating an INI that are quite a lot of work if you have to do them "by hand", for example finding out and typing frame numbers for the chapters list or clickable areas in the menu.

To make such tasks easier, I wrote the MDVD INI Editor. I'm going to explain its functions now.


The Main (Parent) Window

The INI Editor is a so-called MDI (multiple document interface) application, meaning you can open several INI files at once (like you can do with Winword etc.). Plus there is a always a graphic window and a video window inside the main window.

When editing an INI file, the videos and still pictures it uses can be loaded into the corresponding windows for area marking and frame seeking purposes.


The Toolbars

The main toolbar (whose functions are the same than those in the main menu) holds commands to open, save, close and create INI files. The newly implemented INI File Wizard can be launched here too. Furthermore you can freely load videos and pictures to the windows which do not occur in the INI file itself, plus you can "re-parse" the INI file.

When parsing, the combo boxes "Movie File", "Picture File" and "Menu Page" are updated to reflect possible changes made to the entries in the INI. Parsing is automatically done whenever you load a file or insert a video/picture file name through a popup menu command (see below).

The Video Controls toolbar allows you to navigate through the video. With the trackbar you can change the video's playback speed, and the white textbox allows you to jump directly to the frame number that you enter.

The toolbar at the bottom of the main window holds the video slider and two textboxes displaying the selected area and the current frame number in the video window.


The Editing Window

When you open or create a new INI, an editing window opens. It mainly consists of 8 edit boxes put on 4 tabs of a page control (those things often used for config dialogs in programs) holding different sections of the INI file.

Some beta testers asked me why I don't use an interface with check- and textboxes but simple edit boxes. I hold the view that you can work faster and more efficiently when you have a kind of text editor for your INI files providing you with functions for the more complicated tasks.

The edit boxes have full copy&paste capability. Copy is CTRL-INS, paste is Shift-Ins and cut is Shift-Del.

The editing window also contains three combo boxes at the bottom. Those hold the path and filename of all videos and still pictures and a list of all menu pages mentioned in the INI. By selecting a file or page from the list, the file is loaded to the appropriate window, or the PAGES edit box jumps to the selected page. The contents of those three boxes are updated when you "parse" the INI file (see above).


The Popup Menues

When you left-click on the section title or right-click in an edit box, the popup menu for the section appears. (You can also press the shortcut keys of course, as well as you can do this for the main menu.)

The popup menus contain useful functions for their INI section. Note: All text that is inserted by a popup function appears at the current cursor position!

All sections except for Chapters and Pages have the command "Clear" and "Insert Default Entries". These functions should be quite obvious.

A note concerning default entries: If you don't need all of the default entries (e.g. CopyFrom is often unneccesary), you can still leave those lines in the INI file, without a value, because entries that have no text behind the = character are ignored by the player. But it is recommended for readability purposes that you erase all lines which you don't need.

The other commands for each section are as follows:


The INI File Wizards

Many people asked me for it, so I finally implemented it. :-)

Besides the usual edit box interface, you can use a dialog-like function to enter the data for a new INI file. In the File menu you can invoke the main wizard which will let you enter the data for the sections Main, Movie, Chapters, Specials, Languages, Subtitles and Menu.

The outcome of using the wizard is basically the same as using the text edit window, but some people seem to like a dialog-style wizard more. So feel free to use whatever you like best.

The wizard is loaded with heaps of context-sensitive information, so no explanation should be necessary here at all. Just give it a try. When you have entered all the desired information, the wizard saves the new INI file and/or opens it in the usual text edit window.

To use a navigation menu, you'll then have to enter information for Pages and Selections. For that purpose, there are two commands in the edit box popup menu for the PAGES section, "New PAGE Wizard" and "New SELECTION Wizard". Use them to enter all pages and selections you need.


Contacting the author

You can contact the programmer of MDVDP for questions, suggestions and bug reports via:

WWWwww.tiasoft.de (Homepage)
E-Mailmdvdp@tiasoft.de
ICQUIN 15325926 (get ICQ here.)

Credits

Main skin "Sony II" and Splash Screen painted by MarbleMad.

Thanks to Careyer for graphics, hints and support up to version 1.0.

Thanks for many bug reports, suggestions and hints go to:

AGrabber, ByteFaker, DVDRick, Trent_R, Freezy3k, P.T.Binh, Bosman, Makkeren, Nowhereman, G.Kane, C.Vilar, John Doe, P.Luty, R.Derksen, M.Geblowski, Depeche, Northman, B.Sandor, D.Gilmour, Fachman, MIV, P.Quantin, Safai Ma, S.Heyenrath, Blight

Special thanks to the documentation translators:

Elad the One (Hebrew), E.Bus (Dutch), XTA (Spanish), S.Ilias (Greek), D.Hansen (Danish), S.Pecina (Czech), E.Genauck (German), Mr Twig (Norwegian), Gurol (Polish), Baratator (French), DivX Support (Portugese), Kaikko (Italian), S.Virth (v.1.0 French), R.M.Vasiliu (Romanian)

Also thanks to the Beta Tester crew:

M.Adámek, A.Gering, A.Gilsebach, H.Gaberschek, Aquachem, B15, Baratator, B.Trinder, Bewis, Black Phantom, B.Langham, BTK, C.Posada, A.Banderas, A.Pap, D.Scemama, Drezic, Dyton, E.Genauck, E.Bus, Ecki, Fabian, B.Sándor, Fish, D.Karolj, F.Zirner, GoloMeyer, Steve T., M.Ibañez, G.Hübel, A.Leal, H.H.Passos, Herk, S.Prokudin, H.Pereira, IceCube, S.Miodragovic, M.Cameron, Ishan, JV, Jazzman, J.Bae, Johnny B, J.Jose, J.A.G.Cardona, Julien, J.Silvestri, Kaikko, Kenijl, K.J.Cordero, J.K.Mjørud, K.Schulz, Kuge, Laofuzihere, M.Malinov, M.Vasilev, MadMax, M.Junglas, M.£ukowski, M.Townson, M.Ravnikar, M.Mrak, P.V.Bouzas, N.Mikesch, M.Martinelli, Polis, G.Kane, N1K, N.Terek, G.González, N.Bégué, L.Persy, N.Todorov, Nosferatu, Alex, N.Jesus, V.Nikolic, M.Tishmack, Pablo, P.T.Binh, Pavsoft, P.Pekárek, P.T.Rzetelski, Pet_CZ, P.Haapakoski, P.Vanhees, N.Marques, J.Kondenz, J.Grosjean, K.Péter, R.Pang, R.Balbontin, Robmich, R.M.Lamosca, S.C. da Silva, S.Citirak, Senatortake, S.Schmidt, J.R.Hagen, Starfighter, S.Leininger, Doc, S.Heitmann, M.Svendsen, S.Ma, ThaWizard, T.Machalski, Tomanija, Tomlow, T.Liiv, Unscarred, v.d.Haven, L.Gestel, V.Tzvetkov, Vicentemilio, B.D.Nabot, Klem, W.Nellen, Y.Bleuzen, R.Zheng, Zloty, S.Erkens, ZzeCoOl, E.Klusman, H.Lourenco, Hightech Computer, M.Perkus, S.Heyenrath, Thunder