US20070293291A1
2007-12-20
11/447,258
2006-06-06
A method for simplifying complex operations in an interactive DVD utilizing the Binary System. A developer can combine numerous command sequences into fewer sequences utilizing binary arithmetic and variables in the DVD's command sequences.
Get notified when new applications in this technology area are published.
G11B27/105 » CPC main
Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel; Indexing; Addressing; Timing or synchronising; Measuring tape travel; Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
G11B2220/2562 » CPC further
Record carriers by type; Disc-shaped record carriers characterised in that the disc is based on a specific recording technology; Optical discs DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
A63F9/24 IPC
Games not otherwise provided for Games using electronic circuits not otherwise provided for
This invention relates generally to improvements in digital versatile disc systems and, more particularly, to an improved scripting method for digital versatile disc systems.
Digital versatile discs (DVDs) are information storage devices used for storing prerecorded audio information, movies and computer software. DVDs use command sequences to control navigation and to store data.
In DVD Command Sequences, a compare operation compares the contents of a specified GPRM to another GPRM, SPRM or a constant value. Depending upon the result of the comparison, the command associated with the compare operation is executed or skipped. Compare operations enable the DVD player to perform conditional branching. For example, if the value in GPRM 2 equals the value in SPRM 9, then play title 12.
The following operators can be used in a compare operation. One of the operands must be a GPRM register. The other operand can be a GPRM, a SPRM, or a constant value.
| Operator | Description |
| & | If the result of a logical AND is not equal to zero (true), the |
| associated command is executed. | |
| == | If the contents of the operands are equal, the associated |
| command is executed. | |
| != | If the contents of the operands are not equal, the associated |
| command is executed. | |
| >= | If the first operand is greater or equal to the second operand, |
| the associated command is executed. | |
| > | If the first operand is greater than the second operand, the |
| associated command is executed. | |
| <= | If the first operand is less or equal to the second operand, the |
| associated command is executed. | |
| < | If the first operand is less than the second operand, the |
| associated command is executed. | |
The command sequences are limited to simple comparisons and do not allow for complex, multiple operands. For example, you cannot check to see if one GRPM is greater than another GPRM AND less than yet another GPRM.
The typical solution for this dilemma is to create two scripts, one to check the first operand, and another to check the second operand. Then, link the two scripts together with a JUMP command. This makes creating complex interactive DVD titles unmanageable. Plus, in the DVD specification, you are limited to 128 commands per program chain (PGC).
If you were to create a DVD trivia title and wanted to check to see if Player 1 (GP4) was the winner in a 2 player game, you would simply create
| Command Sequence1 | |
| JUMP TO WinnerPlayer1 IF GP4>GP5 | |
| JUMP TO Tie if GP4 = GP5 | |
| JUMP TO WinnerPlayer2 IF GP5>GP4 | |
It gets more complicated, however; when you add players. A three player game would be scripted as:
| Command Sequence1 | |
| JUMP TO CommandSequence2 IF GP4>GP5 | |
| JUMP TO CommandSequence3 IF GP5>GP4 | |
| JUMP TO CommandSequence4 IF GP6>GP4 | |
| Command Sequence2 | |
| JUMP TO WinnerPlayer1 IF GP5>GP6 | |
| JUMP TO WinnerPlayer3 IF GP4<GP6 | |
| Command Sequence3 | |
| JUMP TO WinnerPlayer2 IF GP5>GP6 | |
| JUMP TO WinnerPlayer3 IF GP5<GP6 | |
| Command Sequence4 | |
| JUMP TO WinnerPlayer3 IF GP6>GP5 | |
| JUMP TO WinnerPlayer2 IF GP5>GP6 | |
This does not even take into account all of the possibilities of ties. For example: Player 1 and 2 may tie for first place, or Player 1 and 3, etc. That means you would have even more scripts to maintain. In a four player game, another layer of sequences would have to be added to account for the extra conditional operand.
the variable GP7 if player 2 beat/tie 3 players, add 4 to the variable GP7 if player 3 beat/tie 3 players, and add 8 to the variable of player 4 beat/tie 4 other players.
Then we can check for the 15 possible winner/tie scenarios:
| Value | Winner |
| 1 | Player 1 |
| 2 | Player 2 |
| 4 | Player 3 |
| 8 | Player 4 |
| 3 | Player 1 and Player 2 |
| 5 | Player 1 and Player 3 |
| 9 | Player 1 and Player 4 |
| 6 | Player 2 and Player 3 |
| 10 | Player 2 and Player 4 |
| 12 | Player 3 and Player 4 |
| 7 | Player 1, Player 2, and Player 3 |
| 11 | Player 1, Player 2, and Player 4 |
| 13 | Player 1, Player 3, and Player 4 |
| 14 | Player 2, Player 3, and Player 4 |
| 15 | All Players Win |
The customary explanation of the binary system draws attention to the progression of the powers of the number two. However, as we analyze the base two system, we see that it actually begins with the number one (1), which breaks with the pattern of the powers of the number two. The pattern established by the progression of the powers of the number two implies that the first integer of the series would be the number two to the power of zero. This would mean that the first integer of the series should be a zero and not the number one. The expression calling the binary system a base two system seems to represent a misnomer. Therefore, the binary system actually reflects the progression of the number one (1) being doubled (duplatio/mediatio). In other words, the binary system is actually the 1, 2, 4, 8, 16, 32, 64 . . . n., series.
By using the Binary System, we can cut all of the command sequences down to one command sequence. You could use this model to create even more player scenarios, but for this example, we will stop at a four-player game.
First, if we total up all of the players that each player tied or beat, in a four player game, the number of the winner(s) should be 3. That is, the total number of players minus 1.
By adding a number from the binary system (1, 2, 4, 8, etc) to a new variable (for this example let's say GP7) for each player whose total winnings equals 3, we will be able to pick the winners. i.e.: Add 1 to the variable GP7 if player 1 beat/tie 3 players; add 2 to Based on the value of GP7 and the chart above, we could use a JUMP command to play the appropriate winner movie or script.
The previous example was a game, but it could have easily been a movie title with sophisticated branching and operands. If you were authoring a DVD that had a multiple combination of language and subtitle tracks and you wanted to play a movie or script if a certain combination of selections were chosen, you could assign each language and subtitle track a number from the Binary System and check for each possible combination in a simple straight forward compare operation.
1. A method for simplifying complex operations in an interactive DVD utilizing binary arithmetic and variables in command sequences.
2. The method according to claim 1, wherein binary arithmetic consists of addition, subtraction, multiplication, or division.
3. The method according to claim 1, wherein the variables comprises of GPRM, SPRM or a constant value.
4. The method according to claim 1, wherein the command sequences consist of a list of commands, both navigational and data, which is scripted to execute in a given sequence.