WO1996013773A1 - Video game porting compiler and method of operating a video game - Google Patents

Video game porting compiler and method of operating a video game Download PDF

Info

Publication number
WO1996013773A1
WO1996013773A1 PCT/US1995/013871 US9513871W WO9613773A1 WO 1996013773 A1 WO1996013773 A1 WO 1996013773A1 US 9513871 W US9513871 W US 9513871W WO 9613773 A1 WO9613773 A1 WO 9613773A1
Authority
WO
WIPO (PCT)
Prior art keywords
audiovideo
data signals
branches
scenes
storage device
Prior art date
Application number
PCT/US1995/013871
Other languages
French (fr)
Inventor
Bruce Leak
Sean Callahan
George Cossey
Original Assignee
Rocket Science Games, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rocket Science Games, Inc. filed Critical Rocket Science Games, Inc.
Publication of WO1996013773A1 publication Critical patent/WO1996013773A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level

Definitions

  • VIDEO GAME PORTING COMPILER AND METHOD OF OPERATING A VIDEO GAME
  • the present invention relates to a compiler, and in particular, to a compiler for translating a computer program operating on a first computer to be operational on a second computer having a constraint of retrieval time of video data signals from a storage device associated with the second computer.
  • a primary goal of the developers of video games is for the video games, when played, to simulate reality as faithfully as possible. As such, it is preferable to display actual video scenes, rather than animated video scenes.
  • video data signals characterized by actual video scenes require large bandwidth, their use places high speed demands on video game storage device hardware. In order to appear realistic, it is desirable that video data signals characterized by the actual video scenes be retrievable from storage quickly to be available for display with minimal latency.
  • a video game developer initially develops game software to execute on a high performance, relatively unconstrained, computer (“development platform") which can retrieve video data signals from storage with minimal latency.
  • the video data signals may be stored in a fast randomly accessible memory medium, such as a large hard disk.
  • a user input node a point in the software where user input is sought and subsequent video scenes would differ depending upon the user input
  • the video game software can quickly respond to the user input, retrieving the video scenes associated with the branches with little or no latency. That is, the developer does not have to be concerned about delay in the availability of the video data from the chosen branch. This freedom from concern about the latency constraint allows the developer to direct her creative energies to the overall video game functions themselves, rather than to working around computing platform constraints.
  • target computers are typically inexpensive computer systems that suffer in performance.
  • One major performance problem is video signal data retrieval latency as a result of a storage medium being only sequentially accessible, or slow, or both sequentially accessible and slow.
  • a first prior art target computer system attempts to solve the data latency problem by storing video data on parallel tracks of a sequential access video tape.
  • Each parallel track contains video data associated with alternate branches of user input nodes in the video game software.
  • the target-dependent description of the game is such that when the video game player chooses one branch from a user input node, video data is provided for display from a video tape track which contains the video data for the chosen branch.
  • a problem with the first prior art system is the bandwidth loss associated with having parallel tracks of video data recorded for the various possible branches.
  • video data is recorded on a plurality of tracks, when only one track is ever needed at any one point in time.
  • retrieval of the stored video data is limited to sequential access.
  • a second prior art system programs a target computer to pre-fetch into a fast memory (i.e. one with minimal access latency, known as a cache) video data associated with to-be executed software instructions of a current path when video data associated with currently executing instructions is sparse. That is, for a particular time period when the density of the current video data is less than the capacity of the fast memory, the target computer is programmed to pre-fetch future video data of the current path to fill in the unused capacity.
  • a fast memory i.e. one with minimal access latency, known as a cache
  • a problem with the second prior art system is that unless it can be determined in advance whether the current path or a branch will be taken from a user input node of a current path, such a system cannot know for certain whether to pre-fetch data that is the continuation of the present path or is a branch. Hence, its use is limited to pre-fetching video data from the current path.
  • a third prior art system also programs a target computer to pre-fetch video data to fill in unused capacity.
  • the third prior art system overcomes the problem of the second prior art system by programming the target computer to force the video game player to decide, at a time before a user input node is reached in the game video display, which branch from the user input node will be taken. For example, a player of an automobile driving video game may be forced to engage a right or left turn signal some time before reaching an intersection, so that the appropriate (right or left turn) video data can be pre-fetched.
  • a problem with the third prior art system is that, while it allows pre-fetching of data before a user input node, forcing a player to "pre-decide" detracts from the realism and spontaneity of the video game.
  • a first embodiment in accordance with the present invention is a method of translating a computer program which operates on a first computer means for displaying video data signals on a video display means.
  • the video data signals are characterized by a plurality of video scenes associated with a current path and a plurality of first branches, with a user input node for selecting video scenes associated with one of said plurality of first branches.
  • the method translates the computer program to be operational on a second computer means with the second computer means having a constraint of retrieval time of said video data signals from a storage device associated with said second computer means.
  • the method comprises: a) calculating the capacity of said second computer means to retrieve video data signals from said storage device while said second computer means would be operating on said computer program during said current path; and b) arranging said computer program to retrieve from said storage device video data signals characterized by video scenes associated with said plurality of first branches while said second computer means would be operating on said computer program during said current path, while said second computer means has the capacity to retrieve video data signals from said storage device.
  • video data signals characterized by video scenes associated with a particular program branch are retrieved from the slow storage medium in advance of their need, to overcome the video retrieval time constraint of the target computer.
  • a second embodiment in accordance with the present invention is a method of arranging the video data signals.
  • the method comprises: a) calculating the capacity of said second computer means to retrieve video data signals from said storage device while said second computer means would be operating on said translated computer program during said current path; and b) arranging video data signals characterized by video scenes associated with said plurality of first branches such that said data signals characterized by video scenes associated with said plurality of first branches are retrievable while said second computer means would be operating on said current path, while said second computer means has the capacity to retrieve video data signals from said storage device.
  • a third embodiment in accordance with the present invention is a method of operating the computer program on the second computer means, comprising: a) retrieving video data signals, from said storage device, associated with said current path; b) displaying video scenes associated with said retrieved video data signals, while c) substantially simultaneously retrieving video data signals, from said storage device, associated with each of said plurality of first branches.
  • Fig. 1 is a block diagram of a typical video game target computer.
  • Fig. 2 shows a sample video game execution tree.
  • Fig. 3 is a flowchart of a method in accordance with a first embodiment of the invention.
  • Fig. 4 is a flowchart of a method in accordance with a second embodiment of the invention.
  • Fig. 5 is a schematic diagram of a plan view of a rotating storage media, such as CD-ROM, showing the storage of the video for different branches, in accordance with the method of the present invention.
  • Fig. 6 is a flowchart of a method in accordance with a third embodiment of the invention.
  • Fig. 1 shows a typical video game target computer 18.
  • Video data signals are stored in a relatively slow storage medium 20, such as a CD-
  • Video data signals are retrieved from the slow storage medium 20 to a video cache 22, which has faster access time than the slow storage medium 20.
  • a video game program is stored in an instruction memory 26.
  • the video data signals are characterized by video scenes associated with branches of the video game program.
  • the video data signals are retrieved from the video cache 22 to a video display memory 30, wherein the video data signals in the video memory 30 are displayed on a display device 32.
  • Fig. 2 is a sample execution tree for a video game instruction sequence.
  • blocks A, B, C, D, E, F, and G each represent branches of the video game program stored in the instruction memory 26.
  • the left-to- right direction of the execution tree represents the passage of time in which the video game program instructions are executed when the video game is played.
  • At the right end of each block is a user input node.
  • the user selects video scenes associated with one of the branches off the user input node by inputting game action signals via an input device 28.
  • the input device 28 can be located proximate to the target computer 18, or it can be located remotely as in the case of a video game delivered via cable or other wired or wireless medium to a household, with the target computer 18 being located remotely from the user. Since video scenes for a particular video game remain constant among target computers 18, the video data signal requirements also remain constant among target computers 18. However, each target computer 18 has its own video retrieval time constraint which depends on the particular hardware and system software.
  • the present invention ensures that, for a particular target computer 18, video data signals characterized by video scenes associated with a particular program branch are retrieved from the slow storage medium 20 to the video cache memory 22 in advance of their need, to overcome the video retrieval time constraint of the target computer 18.
  • step 110 calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during a current path.
  • step 120 arrange the video game program to retrieve video data signals associated with first branches of the video game program while the target computer 18 has capacity to retrieve video data signals from the video storage.
  • step 130 calculate preserved capacity to further retrieve video data signals from the video storage 20.
  • step 140 arrange the video game program to retrieve from the video storage video data signals characterized by video scenes associated with second branches of the video game program.
  • the translating program which can be executed by the developing computer, or another computer, calculates the capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current video path A.
  • the translating program may have to be changed or translated from the instructions set developed for operation on the developing computer into the instruction set for execution by the CPU 24 on the target computer 18.
  • the translating program is a program written in the C language, operating on the Apple Macintosh computer. A copy of the program is set forth in Exhibit A.
  • the translating program arranges the video game program to retrieve video data signals associated with a portion of the first branches B and C of the video game program, from the slow storage 20, while the video game program would be executing video instructions of the current video path A.
  • the translating program arranges the video game program to retrieve video data signals in an amount sufficient to display video scenes, of any first branch B or C chosen by a user, substantially equal to the constraint of video data signal retrieval time. That is, the translating program preferably arranges the video game program to retrieve less than all of the video signal data associated with scenes for the first branches B and C.
  • the translating computer preferably arranges the video game program to retrieve video data signals for video scenes up to a point 42 in branch B.
  • the video data signals from the start of the branch B, at the end of user input node 40 to point 42 represents a time period T B .
  • the time period T B represents a latency time period to retrieve the video signal data associated with the scenes from the beginning of the branch
  • video data signals corresponding to video scenes in branch C starting from user input node 40, until point 44, representing a retrieval time period of T c would be retrieved by the slow storage device 20.
  • the time for retrieval of video data signals from one branch, such as branch B may not be equal to the retrieval time of video data signals from another branch, such as branch C.
  • the target computer 18 would then retrieve video signal data for video scenes commencing from point 44.
  • video data signals representing video scenes from the start of user input node 40 until point 44, from the cache memory 22 would be supplied for display.
  • the video data signals of the branch not selected may be deleted from the cache memory 22, thereby freeing up cache memory 22.
  • the translating program may continue to a step 130, where it calculates the remaining capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current path A. If there is remaining capacity, the translating program continues at step 140, arranging the computer program to retrieve from the video storage 20, video data signals characterized by video scenes associated with third branches D, E, F, and G of the video game program, the third branches D and E being associated with the user input node at the end of the second branch B, and the third branches F and G being associated with the user input node at the end of the second branch C.
  • the translating computer program may arrange the video game program to retrieve from the video storage device 20 less than all of the video signal data associated with the scenes for the third branches D, E, F, and G, while substantially simultaneously the video game program is executing the video program of current video path A.
  • the translating program would preferably arrange the video game program to retrieve video data signals for video scenes only up to a point 46 in branch D, a point 48 in branch E, a point 50 in branch F, and a point 52 in branch G.
  • the time T E to retrieve the video signal data associated with the scenes from the beginning of branch E to the point 48, the time T F to retrieve the video signal data associated with the scenes from the beginning of the branch F to the point 50, and the time T G to retrieve the video signal data associated with the scenes from the beginning of branch G to the point 52 are equal to the constraint of video data signal retrieval time, for those respective branches.
  • pre-fetching of video data signals is not limited to one branch ahead. The video data signals of the branches not selected may then be discarded from cache memory 22.
  • video data signals for the video scenes associated with the latency time of T E would be supplied from the cache memory 22, while the slow storage device 20 retrieved video data signals for video scenes after point 46.
  • a further embodiment according to the present invention is particularly useful when the target computer's associated video storage medium 20, on which the video data signals are stored, is only sequentially accessible.
  • the video data signals are arranged on the storage medium 20 in the sequence that they are to be retrieved by the arranged computer program.
  • Fig. 4 calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during the current path.
  • step 220 arrange the video data signals on the video storage device such that video data signals associated with first branches of the video game program are retrievable after video data signals associated with the current path of the video game program, while the target computer is operating on the current path of the video game program and the target computer has capacity to retrieve video data signals from the video storage.
  • step 230 calculate capacity for the target computer to further retrieve video data signals from the video storage.
  • step 240 arrange the video data signals on the video storage device such that video data signals associated with second branches of the video game program are retrievable after video data signals associated with the first branches of the video game program, while the target computer has capacity to retrieve video data signals from the video storage. That is, at step 210, the translating program calculates the capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current path A.
  • the translating program arranges the video data signals on the video storage device 20 such that video data signals associated with the first branches B and C of the video game program are retrievable after the video data signals associated with the current path A of the video game program, while the target computer 18 is operating on the current path
  • a of the video game program and the target computer 18 has capacity to retrieve video data signals from the video storage 20.
  • the translating program arranges only an amount of the video signal data associated with the first branches B and C of the video game program sufficient for the video game program to display video scenes of any first branch B or C chosen by a user within the limitations of the target computer 18 (i.e. up to points 42 and 44, respectively).
  • the video data may be arranged to be retrieved from the video storage device 20 only those video data signals characterized by video scenes associated with the first branches B and C that are not associated with the current path A.
  • the translating program may continue to a step 230, where it calculates remaining capacity, for the target computer 18 to further retrieve video data signals from the video storage 20. If there is remaining capacity, the translating program continues at step 240, arranging the video data signals on the video storage device 20 such that video data signals associated with the second branches D, E, F, and G of the video game program are retrievable after video data signals associated with the first branches B and C of the video game program, while the target computer 18 has capacity to retrieve video data signals from the video storage 20.
  • the foregoing method describes the translating program being able to arrange the video game program such that during the execution of the video program in the current video path, the video program would also substantially simultaneously retrieve video data signals from branches not associated with the current path, all within the hardware constraint of the target computer 18, to eliminate latency.
  • the translating program can cause the video game program to be arranged on the slow storage device 20, in any one or all of the following manners, and also overcome the latency requirement.
  • the translating program can cause compressed video data signals to be stored on the slow storage device 20.
  • the calculation of latency must take into account the amount of time needed by the CPU 24 to decompress the video data signals.
  • only the video data signals associated with the pre-fetch segment of each branch need to be compressed.
  • Compressed video data signals require less storage space than uncompressed video data signals.
  • the retrieval of a lesser amount of data signals from a slow storage device 20 would require less capacity or bandwidth for retrieval.
  • the translation program can cause the further compression of the video data signals. Further compression of video data signals can, however, cause the loss of video fidelity, but does result in less storage space, and therefore requires less capacity for retrieval.
  • the translation program could also cause the video frame rate to be uniformly decreased. Thus, for example, real time video requires 30 frames per second. However the translation program could cause, for example, every third frame to be a repeat of every second frame. While the result would be video that may appear to be "jerky", it would require less video storage space, again resulting in a decrease in capacity required during retrieval.
  • the audio signals may be compressed.
  • FIG. 5 there is shown a plan view of a rotating storage media 70, such as CD-ROM.
  • the rotating platter 70 on which are stored the video signals rotate in the direction shown by the arrow R.
  • a rotating storage medium such as a DVD
  • the data signals are stored in tracks, which are concentric circles.
  • the video data signals for the current path A are stored in a segment of a track shown as 72.
  • One method to reduce the latency time is to arrange the video data signals for the video data signals for branch B to be an immediate contiguous continuation of the track segment 72 on which are arranged the video signals for the current path A. This would result in virtually zero or negligible latency time for the video data signals for branch B.
  • there is a limit as to the number of times in which this technique can be used since available storage space on the disc 70, may limit the placement of different segments of video data signals associated with different branches.
  • the video data signals for the other branch e.g. branch C must be arranged on the disc 70. Since the location which is the contiguous continuation of the track segment 70 is taken, the video data signals for branch C must be arranged in a track different from the track 72, such as track 74. As between track segment 74A and 74B, depending upon the time it would take the head containing the read/write transducers to traverse the distance from track 72 to track 74, by the time the head is positioned over track 74, either segment 74A or segment 74B would be closer to the head. The latency time would then be the time for the disc 70 to rotate into position such that track segment 74A or 74B is read by the transducer.
  • the developing computer can calculate the amount of time required for the transducer head to traverse the radial distance from track 72 to track 74, and record the video information of branch C at the track segment (74A or 74B) closest to the position of the transducer to minimize the latency of the head moving to the recorded segment.
  • FIG 6 there is shown a flowchart of a third embodiment of a method of the present invention.
  • This embodiment is very similar to the embodiment shown and described in Figure 3. However, it incorporates, the steps described heretofore, with regard to the case if the latency time cannot be reduced by the embodiments described in the first and second embodiments.
  • step 300 assume the placement of the video data signals on the slow video storage in some location.
  • step 310 calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during the current path.
  • step 315 determine if the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer.
  • step 316 if not, change the following parameters, in the following order; and return to step 310; a. alter the location of the video data signals; b. compress or further compress the video signals, including change the video frame rate; c. compress or further compress the audio signals.
  • step 320 if yes, arrange the video game program to retrieve video data signals associated with first branches of the video game program while the target computer 18 has capacity to retrieve video data signals from the video storage.
  • step 330 calculate preserved capacity to further retrieve video data signals from the video storage 20.
  • step 340 arrange the video game program to retrieve from the video storage video data signals characterized by video scenes associated with second branches of the video game program.
  • the translation program assumes the video data signals are placed at certain locations on the CD-ROM.
  • the choice of the particular location for the video segments A,B,C etc. may be simply based upon "next available" immediately contiguous track segment, or any other type of assumption.
  • step 310 the calculation of the capacity of the target computer to retrieve video data signals is similar to the method for step 1 10, shown and described in Figure 3.
  • the translation program determines if the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer. In other words, based upon the placed locations for the video data signals, would the retrieval time for those video signals, and the capacity be within the latency constraint requirements.
  • the translation program advances to step 316 if the locations on the CD-ROM would not fit within the constraint of the latency time. At that point in the order of preference to alter the parameters, the translation program performs the following functions: a. alter the location of the video data signals. This is the first choice since, it does not involve any alteration of video compression, frame rate etc. all of which might impact the user enjoyability and/or require further hardware resources (such as processing capability, in the case of compression). b. If after attempting to alter the location of the video data signals still does not result in the video signals being retrievable within the latency time, then the translation program can cause the compression or the further compression of the video signals. This would also include the possibility of reducing the video frame rate, as discussed heretofore, c.
  • the translation program can cause the compression or further compression of the associated audio signals.
  • the program returns to step 310. If the translation program determines that the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer, then at step 320 the translation program arranges the video game program similar to step 120, all as described previously. From there, the translation program advances to step 330, which is similar to step 130. From step 330, the translation program advances to step 340, which is similar to step 140.
  • audiovisual signals shall mean either video or audio signals.

Abstract

Methods are disclosed for ensuring that, for a particular target computer (18), video data signals characterized by video scenes associated with all program branches (42-52) from a user input node (40) are retrieved from a slow storage medium (20) in advance of their need, to overcome the video retrieval time constraint of the target computer. The method is realized by calculating the capacity of the target computer to retrieve video data signals (110, 130) and arranging a program to retrieve video data signals associated with first and second branches in the program in advance of their need (120, 140). Overcoming the video retrieval time constraint adds to the realism of the game.

Description

VIDEO GAME PORTING COMPILER AND METHOD OF OPERATING A VIDEO GAME
This application is submitted with a microfiche appendix, Exhibit A and containing copyrighted material, Copyright 1994, Rocket Science Games, Inc. The Appendix consists of three (3) microfiches with 182 frames. The copyright owner has no objection to the facsimile reproduction by any one of the patent document or the patent disclosure, as it appears in the Patent and
Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever in the appendices.
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a compiler, and in particular, to a compiler for translating a computer program operating on a first computer to be operational on a second computer having a constraint of retrieval time of video data signals from a storage device associated with the second computer.
BACKGROUND OF THE INVENTION
A primary goal of the developers of video games is for the video games, when played, to simulate reality as faithfully as possible. As such, it is preferable to display actual video scenes, rather than animated video scenes. However, because video data signals characterized by actual video scenes require large bandwidth, their use places high speed demands on video game storage device hardware. In order to appear realistic, it is desirable that video data signals characterized by the actual video scenes be retrievable from storage quickly to be available for display with minimal latency.
Typically, a video game developer initially develops game software to execute on a high performance, relatively unconstrained, computer ("development platform") which can retrieve video data signals from storage with minimal latency. For example, the video data signals may be stored in a fast randomly accessible memory medium, such as a large hard disk. With such a fast medium, when the software developer creates a user input node (a point in the software where user input is sought and subsequent video scenes would differ depending upon the user input) in the software having several branches, the video game software can quickly respond to the user input, retrieving the video scenes associated with the branches with little or no latency. That is, the developer does not have to be concerned about delay in the availability of the video data from the chosen branch. This freedom from concern about the latency constraint allows the developer to direct her creative energies to the overall video game functions themselves, rather than to working around computing platform constraints.
Once video game software is developed on a development platform, it must be translated or "ported" to various game computers ("target computers"), all of which may differ in hardware constraints as well as configurations. Moreover, target computers are typically inexpensive computer systems that suffer in performance. One major performance problem is video signal data retrieval latency as a result of a storage medium being only sequentially accessible, or slow, or both sequentially accessible and slow.
A first prior art target computer system attempts to solve the data latency problem by storing video data on parallel tracks of a sequential access video tape. Each parallel track contains video data associated with alternate branches of user input nodes in the video game software. The target- dependent description of the game is such that when the video game player chooses one branch from a user input node, video data is provided for display from a video tape track which contains the video data for the chosen branch. A problem with the first prior art system is the bandwidth loss associated with having parallel tracks of video data recorded for the various possible branches. Thus, video data is recorded on a plurality of tracks, when only one track is ever needed at any one point in time. In addition, retrieval of the stored video data is limited to sequential access.
A second prior art system programs a target computer to pre-fetch into a fast memory (i.e. one with minimal access latency, known as a cache) video data associated with to-be executed software instructions of a current path when video data associated with currently executing instructions is sparse. That is, for a particular time period when the density of the current video data is less than the capacity of the fast memory, the target computer is programmed to pre-fetch future video data of the current path to fill in the unused capacity. However, a problem with the second prior art system is that unless it can be determined in advance whether the current path or a branch will be taken from a user input node of a current path, such a system cannot know for certain whether to pre-fetch data that is the continuation of the present path or is a branch. Hence, its use is limited to pre-fetching video data from the current path.
A third prior art system also programs a target computer to pre-fetch video data to fill in unused capacity. The third prior art system overcomes the problem of the second prior art system by programming the target computer to force the video game player to decide, at a time before a user input node is reached in the game video display, which branch from the user input node will be taken. For example, a player of an automobile driving video game may be forced to engage a right or left turn signal some time before reaching an intersection, so that the appropriate (right or left turn) video data can be pre-fetched. A problem with the third prior art system is that, while it allows pre-fetching of data before a user input node, forcing a player to "pre-decide" detracts from the realism and spontaneity of the video game.
Finally, it is also well known in the computer processor art for a processor to pre-fetch instructions, from two branches, from main memory into a cache memory. Depending upon the outcome of execution of a branching instruction, subsequent instructions for execution would be instructions pre-fetched into cache memory from one of the two branches. SUMMARY OF THE INVENTION
A first embodiment in accordance with the present invention is a method of translating a computer program which operates on a first computer means for displaying video data signals on a video display means. The video data signals are characterized by a plurality of video scenes associated with a current path and a plurality of first branches, with a user input node for selecting video scenes associated with one of said plurality of first branches. The method translates the computer program to be operational on a second computer means with the second computer means having a constraint of retrieval time of said video data signals from a storage device associated with said second computer means.
The method comprises: a) calculating the capacity of said second computer means to retrieve video data signals from said storage device while said second computer means would be operating on said computer program during said current path; and b) arranging said computer program to retrieve from said storage device video data signals characterized by video scenes associated with said plurality of first branches while said second computer means would be operating on said computer program during said current path, while said second computer means has the capacity to retrieve video data signals from said storage device.
Thus, for a particular target computer, video data signals characterized by video scenes associated with a particular program branch are retrieved from the slow storage medium in advance of their need, to overcome the video retrieval time constraint of the target computer.
A second embodiment in accordance with the present invention is a method of arranging the video data signals. The method comprises: a) calculating the capacity of said second computer means to retrieve video data signals from said storage device while said second computer means would be operating on said translated computer program during said current path; and b) arranging video data signals characterized by video scenes associated with said plurality of first branches such that said data signals characterized by video scenes associated with said plurality of first branches are retrievable while said second computer means would be operating on said current path, while said second computer means has the capacity to retrieve video data signals from said storage device.
A third embodiment in accordance with the present invention is a method of operating the computer program on the second computer means, comprising: a) retrieving video data signals, from said storage device, associated with said current path; b) displaying video scenes associated with said retrieved video data signals, while c) substantially simultaneously retrieving video data signals, from said storage device, associated with each of said plurality of first branches.
A better understanding of the features and advantages of the invention will be obtained by reference to the following detailed description and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized.
BRIEF DESCRIPTION OF THE FIGURES
Fig. 1 is a block diagram of a typical video game target computer.
Fig. 2 shows a sample video game execution tree. Fig. 3 is a flowchart of a method in accordance with a first embodiment of the invention.
Fig. 4 is a flowchart of a method in accordance with a second embodiment of the invention. Fig. 5 is a schematic diagram of a plan view of a rotating storage media, such as CD-ROM, showing the storage of the video for different branches, in accordance with the method of the present invention.
Fig. 6 is a flowchart of a method in accordance with a third embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention method will now be described with reference to the Figures.
Fig. 1 shows a typical video game target computer 18. Video data signals are stored in a relatively slow storage medium 20, such as a CD-
ROM. Video data signals are retrieved from the slow storage medium 20 to a video cache 22, which has faster access time than the slow storage medium 20.
A video game program is stored in an instruction memory 26. The video data signals are characterized by video scenes associated with branches of the video game program. The video data signals are retrieved from the video cache 22 to a video display memory 30, wherein the video data signals in the video memory 30 are displayed on a display device 32.
Fig. 2 is a sample execution tree for a video game instruction sequence. In Fig. 2, blocks A, B, C, D, E, F, and G each represent branches of the video game program stored in the instruction memory 26. The left-to- right direction of the execution tree represents the passage of time in which the video game program instructions are executed when the video game is played. At the right end of each block is a user input node. The user selects video scenes associated with one of the branches off the user input node by inputting game action signals via an input device 28. The input device 28 can be located proximate to the target computer 18, or it can be located remotely as in the case of a video game delivered via cable or other wired or wireless medium to a household, with the target computer 18 being located remotely from the user. Since video scenes for a particular video game remain constant among target computers 18, the video data signal requirements also remain constant among target computers 18. However, each target computer 18 has its own video retrieval time constraint which depends on the particular hardware and system software.
The present invention ensures that, for a particular target computer 18, video data signals characterized by video scenes associated with a particular program branch are retrieved from the slow storage medium 20 to the video cache memory 22 in advance of their need, to overcome the video retrieval time constraint of the target computer 18.
A method of translating a video game program, developed on a developing computer, in accordance with one embodiment of the present invention, will now be described with reference to Fig. 3.
Fie. 3 At step 110, calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during a current path.
At step 120, arrange the video game program to retrieve video data signals associated with first branches of the video game program while the target computer 18 has capacity to retrieve video data signals from the video storage.
At step 130,calculate preserved capacity to further retrieve video data signals from the video storage 20.
At step 140, arrange the video game program to retrieve from the video storage video data signals characterized by video scenes associated with second branches of the video game program.
At step 110, the translating program, which can be executed by the developing computer, or another computer, calculates the capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current video path A. In addition, depending upon the cpu or the microprocessor of the target computer, the translating program may have to be changed or translated from the instructions set developed for operation on the developing computer into the instruction set for execution by the CPU 24 on the target computer 18. In the preferred embodiment, the translating program is a program written in the C language, operating on the Apple Macintosh computer. A copy of the program is set forth in Exhibit A. Then, at step 120, the translating program arranges the video game program to retrieve video data signals associated with a portion of the first branches B and C of the video game program, from the slow storage 20, while the video game program would be executing video instructions of the current video path A. The amount of video data signals that would be retrieved from the storage 20, while the video scenes from the current path A are being executed, starts immediately after the user input node 40 at the end of the current video path A.
Preferably, at step 120 the translating program arranges the video game program to retrieve video data signals in an amount sufficient to display video scenes, of any first branch B or C chosen by a user, substantially equal to the constraint of video data signal retrieval time. That is, the translating program preferably arranges the video game program to retrieve less than all of the video signal data associated with scenes for the first branches B and C. For example, for branch B, the translating computer preferably arranges the video game program to retrieve video data signals for video scenes up to a point 42 in branch B. The video data signals from the start of the branch B, at the end of user input node 40 to point 42 represents a time period TB. The time period TB represents a latency time period to retrieve the video signal data associated with the scenes from the beginning of the branch
B to the point 42. Thus, if the user at user input node 40 selected branch B for further display, it would take the slow storage device 20 the amount of time TB to retrieve the video signals from the branch B. By then, the slow storage device 20 would have retrieved video data signals associated with the video scenes after the point 42. During the time period TB in which the slow storage device 20 is retrieving video data signals from branch B, the video data signals stored in the video cache 22, for the video scenes starting from the beginning of branch B until point 42, would be supplied to the display device 32. Therefore, to the user, there is no delay in the display of video scenes as the user selects a branch at user input node 40. Similarly, during the execution of data signals in current path A, video data signals corresponding to video scenes in branch C, starting from user input node 40, until point 44, representing a retrieval time period of Tc would be retrieved by the slow storage device 20. As will be shown, the time for retrieval of video data signals from one branch, such as branch B may not be equal to the retrieval time of video data signals from another branch, such as branch C. Similar to the foregoing discussion, if and when the user selected video scenes associated with branch C, the target computer 18 would then retrieve video signal data for video scenes commencing from point 44. During that latency time equal to Tc, video data signals representing video scenes from the start of user input node 40 until point 44, from the cache memory 22 would be supplied for display.
Once the user has selected a particular branch, the video data signals of the branch not selected, a portion of which was also pre-fetched into cache memory 22, may be deleted from the cache memory 22, thereby freeing up cache memory 22.
The translating program may continue to a step 130, where it calculates the remaining capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current path A. If there is remaining capacity, the translating program continues at step 140, arranging the computer program to retrieve from the video storage 20, video data signals characterized by video scenes associated with third branches D, E, F, and G of the video game program, the third branches D and E being associated with the user input node at the end of the second branch B, and the third branches F and G being associated with the user input node at the end of the second branch C.
At step 140, as with at step 120, the translating computer program may arrange the video game program to retrieve from the video storage device 20 less than all of the video signal data associated with the scenes for the third branches D, E, F, and G, while substantially simultaneously the video game program is executing the video program of current video path A.
For example, for branch D, the translating program would preferably arrange the video game program to retrieve video data signals for video scenes only up to a point 46 in branch D, a point 48 in branch E, a point 50 in branch F, and a point 52 in branch G. The time TD to retrieve the video signal data associated with the scenes from the beginning of the branch D to the point
46, the time TE to retrieve the video signal data associated with the scenes from the beginning of branch E to the point 48, the time TF to retrieve the video signal data associated with the scenes from the beginning of the branch F to the point 50, and the time TG to retrieve the video signal data associated with the scenes from the beginning of branch G to the point 52 are equal to the constraint of video data signal retrieval time, for those respective branches.
Similar to the explanation above with reference to points 42 and 44 of branches B and C, respectively, if and when the user actually selected video scenes associated with branch D, at the end of branch B, the target computer
18 would begin to retrieve video signal data associated with scenes from point 46, with the latency time being TD, and with the video data signals for the video scenes from the start of branch D until point 46 being supplied from cache memory 22, retrieved during the execution of video signals from the current path A. Thus, because the branches of the video program are known, with the method of the present invention, pre-fetching of video data signals is not limited to one branch ahead. The video data signals of the branches not selected may then be discarded from cache memory 22.
Similarly, if branch E were selected, video data signals for the video scenes associated with the latency time of TE would be supplied from the cache memory 22, while the slow storage device 20 retrieved video data signals for video scenes after point 46.
A further embodiment according to the present invention, shown in Fig. 4, is particularly useful when the target computer's associated video storage medium 20, on which the video data signals are stored, is only sequentially accessible. In the further embodiment, the video data signals are arranged on the storage medium 20 in the sequence that they are to be retrieved by the arranged computer program.
Fig. 4 At step 210, calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during the current path.
At step 220, arrange the video data signals on the video storage device such that video data signals associated with first branches of the video game program are retrievable after video data signals associated with the current path of the video game program, while the target computer is operating on the current path of the video game program and the target computer has capacity to retrieve video data signals from the video storage.
At step 230, calculate capacity for the target computer to further retrieve video data signals from the video storage. At step 240, arrange the video data signals on the video storage device such that video data signals associated with second branches of the video game program are retrievable after video data signals associated with the first branches of the video game program, while the target computer has capacity to retrieve video data signals from the video storage. That is, at step 210, the translating program calculates the capacity of the target computer 18 to retrieve video data signals from the slow video storage device 20 (i.e. the capacity of the video cache 22) while the target computer 18 is operating on the video game program during the current path A.
Then, at step 220, the translating program arranges the video data signals on the video storage device 20 such that video data signals associated with the first branches B and C of the video game program are retrievable after the video data signals associated with the current path A of the video game program, while the target computer 18 is operating on the current path
A of the video game program and the target computer 18 has capacity to retrieve video data signals from the video storage 20.
Preferably, at step 220 the translating program arranges only an amount of the video signal data associated with the first branches B and C of the video game program sufficient for the video game program to display video scenes of any first branch B or C chosen by a user within the limitations of the target computer 18 (i.e. up to points 42 and 44, respectively).
In addition, at step 220, the video data may be arranged to be retrieved from the video storage device 20 only those video data signals characterized by video scenes associated with the first branches B and C that are not associated with the current path A.
Then, the translating program may continue to a step 230, where it calculates remaining capacity, for the target computer 18 to further retrieve video data signals from the video storage 20. If there is remaining capacity, the translating program continues at step 240, arranging the video data signals on the video storage device 20 such that video data signals associated with the second branches D, E, F, and G of the video game program are retrievable after video data signals associated with the first branches B and C of the video game program, while the target computer 18 has capacity to retrieve video data signals from the video storage 20. The foregoing method describes the translating program being able to arrange the video game program such that during the execution of the video program in the current video path, the video program would also substantially simultaneously retrieve video data signals from branches not associated with the current path, all within the hardware constraint of the target computer 18, to eliminate latency. However, depending upon the hardware constraints of the target computer 18, it may not be possible to retrieve video signals in sufficient quantity from branches not associated with the current path to overcome the latency requirement. In that event, the translating program can cause the video game program to be arranged on the slow storage device 20, in any one or all of the following manners, and also overcome the latency requirement.
1. If the video data signal is not compressed, the translating program can cause compressed video data signals to be stored on the slow storage device 20. Of course, the calculation of latency must take into account the amount of time needed by the CPU 24 to decompress the video data signals. In addition, only the video data signals associated with the pre-fetch segment of each branch need to be compressed. Thus, for example, only the video data signals associated with the video scenes from the start of branch B until point 42 need to be compressed. Compressed video data signals require less storage space than uncompressed video data signals. Thus, the retrieval of a lesser amount of data signals from a slow storage device 20 would require less capacity or bandwidth for retrieval.
2. If the video data signals are already compressed, the translation program can cause the further compression of the video data signals. Further compression of video data signals can, however, cause the loss of video fidelity, but does result in less storage space, and therefore requires less capacity for retrieval.
3. The translation program could also cause the video frame rate to be uniformly decreased. Thus, for example, real time video requires 30 frames per second. However the translation program could cause, for example, every third frame to be a repeat of every second frame. While the result would be video that may appear to be "jerky", it would require less video storage space, again resulting in a decrease in capacity required during retrieval.
4. If the video signals for a video scene is accompanied by a considerable amount of audio signals, the audio signals may be compressed.
5. The placement of the video signals on the slow storage device 20, such as a CD-ROM can be altered. Referring to Figure 5, there is shown a plan view of a rotating storage media 70, such as CD-ROM. The rotating platter 70 on which are stored the video signals rotate in the direction shown by the arrow R. As is well known, for a rotating storage medium such as a
CD-ROM or a magnetic disc drive, the data signals are stored in tracks, which are concentric circles. The video data signals for the current path A are stored in a segment of a track shown as 72. One method to reduce the latency time is to arrange the video data signals for the video data signals for branch B to be an immediate contiguous continuation of the track segment 72 on which are arranged the video signals for the current path A. This would result in virtually zero or negligible latency time for the video data signals for branch B. Of course, there is a limit as to the number of times in which this technique can be used, since available storage space on the disc 70, may limit the placement of different segments of video data signals associated with different branches.
In addition, the video data signals for the other branch, e.g. branch C must be arranged on the disc 70. Since the location which is the contiguous continuation of the track segment 70 is taken, the video data signals for branch C must be arranged in a track different from the track 72, such as track 74. As between track segment 74A and 74B, depending upon the time it would take the head containing the read/write transducers to traverse the distance from track 72 to track 74, by the time the head is positioned over track 74, either segment 74A or segment 74B would be closer to the head. The latency time would then be the time for the disc 70 to rotate into position such that track segment 74A or 74B is read by the transducer. The developing computer can calculate the amount of time required for the transducer head to traverse the radial distance from track 72 to track 74, and record the video information of branch C at the track segment (74A or 74B) closest to the position of the transducer to minimize the latency of the head moving to the recorded segment.
Referring to Figure 6, there is shown a flowchart of a third embodiment of a method of the present invention. This embodiment is very similar to the embodiment shown and described in Figure 3. However, it incorporates, the steps described heretofore, with regard to the case if the latency time cannot be reduced by the embodiments described in the first and second embodiments.
Fie. 6 At step 300, assume the placement of the video data signals on the slow video storage in some location. At step 310, calculate the capacity of the target computer to retrieve video data signals from the slow video storage device while the target computer is operating on the video game program during the current path. At step 315. determine if the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer.
At step 316, if not, change the following parameters, in the following order; and return to step 310; a. alter the location of the video data signals; b. compress or further compress the video signals, including change the video frame rate; c. compress or further compress the audio signals.
At step 320, if yes, arrange the video game program to retrieve video data signals associated with first branches of the video game program while the target computer 18 has capacity to retrieve video data signals from the video storage. At step 330, calculate preserved capacity to further retrieve video data signals from the video storage 20.
At step 340, arrange the video game program to retrieve from the video storage video data signals characterized by video scenes associated with second branches of the video game program.
Initially, at step 300, the translation program assumes the video data signals are placed at certain locations on the CD-ROM. The choice of the particular location for the video segments A,B,C etc. may be simply based upon "next available" immediately contiguous track segment, or any other type of assumption.
At step 310 the calculation of the capacity of the target computer to retrieve video data signals is similar to the method for step 1 10, shown and described in Figure 3.
At step 315 the translation program determines if the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer. In other words, based upon the placed locations for the video data signals, would the retrieval time for those video signals, and the capacity be within the latency constraint requirements.
The translation program advances to step 316 if the locations on the CD-ROM would not fit within the constraint of the latency time. At that point in the order of preference to alter the parameters, the translation program performs the following functions: a. alter the location of the video data signals. This is the first choice since, it does not involve any alteration of video compression, frame rate etc. all of which might impact the user enjoyability and/or require further hardware resources (such as processing capability, in the case of compression). b. If after attempting to alter the location of the video data signals still does not result in the video signals being retrievable within the latency time, then the translation program can cause the compression or the further compression of the video signals. This would also include the possibility of reducing the video frame rate, as discussed heretofore, c. Finally, after steps (a) and (b) above does not result in the video data signals being retrievable within the latency time, the translation program can cause the compression or further compression of the associated audio signals. Once the translation program has executed one of the forgoing methods, the program returns to step 310. If the translation program determines that the location of the video data signals, and the capacity of the target computer are within the latency constraints of the target computer, then at step 320 the translation program arranges the video game program similar to step 120, all as described previously. From there, the translation program advances to step 330, which is similar to step 130. From step 330, the translation program advances to step 340, which is similar to step 140. However, since the calculation and retrieval of video data signals from the second branches, branches which are not consecutive in time to the current path, need not be immediately retrieved, if there is a shortage of capacity, and/or due to execution of video data signals of the current path, the retrieval of the video data signals from the second branches cannot be done, there is no need to re-arrange the location of the video data signals on the CD-ROM, and/or to compress the video data signals, all as previously described. The retrieval of the video data signals from the second branch can wait until the target computer 18 would be processing the video data signals from either of the first branches, as the current path.
While the invention has been described with respect to video data signals associated with video game software branches, the present invention may also be used for minimizing latency in retrieving other types of data signals associated with video game software branches, for example audio data signals. Thus, as used hereinafter, in the claims, the term "audiovisual signals" shall mean either video or audio signals.

Claims

WHAT IS CLAIMED IS:
1. A method of translating a computer program, said computer program operating on a first computer means for outputting audiovideo data signals on an audiovideo output means, said audiovideo data signals characterized by a plurality of video scenes associated with a current path and a plurality of first branches, with user input for selecting audiovideo scenes associated with one of said plurality of first branches at a user input node, to be operational on a second computer means, said second computer means having a constraint of retrieval time of said audiovideo data signals from a storage device associated with said second computer means, said method comprising: a) calculating the capacity of said second computer means to retrieve audiovideo data signals from said storage device while said second computer means would be operating on said computer program during said current path; and b) arranging said computer program to retrieve from said storage device audiovideo data signals characterized by audiovideo scenes associated with said plurality of first branches while said second computer means would be operating on said computer program during said current path; while said second computer means has the capacity to retrieve audiovideo data signals from said storage device.
2. The method of claim 1, wherein at step b) said computer program is arranged to retrieve from said storage device only those audiovideo data signals characterized by audiovideo scenes associated with said plurality of first branches that are not associated with said current path.
3. The method of Claim 1 further comprising the step of: c) translating the instructions of the computer program for execution from the first computer means to the second computer means.
4. The method of claim 3, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting audiovideo scenes associated with one of said second branches at one of a second plurality of user input nodes, further comprising: d) calculating the capacity of said second computer means to further retrieve audiovideo signals from said storage device while said second computer means would be operating on said computer program during said current path and after retrieving from said storage device, in step b), audiovideo signals characterized by audiovideo scenes associated with said plurality of said first branches; and e) arranging said computer program to further retrieve from said storage device audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches while said second computer means would be operating on said computer program during said current path, while said second computer means has the capacity to retrieve audiovideo data signals from said storage device.
5. The method of claim 4, wherein at step d) said computer program is arranged to retrieve from said storage device only those audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches that are not associated with said current path or said first branches.
6. The method of claim 1, wherein at step b) said computer program is arranged to retrieve from said storage device audiovideo data signals in an amount sufficient to display audiovideo scenes, of a first branch chosen by a user substantially equal to the constraint of retrieval time.
7. The method of claim 6, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting audiovideo scenes associated with one of said second branches at one of a second plurality of user input nodes, further comprising: c) calculating the capacity of said second computer means to further retrieve audiovideo signals from said storage device while said second computer means would be operating on said computer program during said current path and after retrieving from said storage device, in step b), audiovideo signals characterized by audiovideo scenes associated with said plurality of said first branches; and d) arranging said computer program to further retrieve from said storage device audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches while said second computer means would be operating on said computer program during said current path, while said second computer means has the capacity to retrieve audiovideo data signals from said storage device.
8. The method of claim 7, wherein at step c) said computer program is arranged to retrieve from said storage device audiovideo data signals in an amount sufficient to display audiovideo scenes, of a second branch chosen by a user substantially equal to the constraint of retrieval time.
9. The method of claim 1, further comprising: c) arranging the audiovideo data signals of one of the plurality of first branches to be immediately contiguous to and continuation of the audiovideo data signals of the current path.
10. The method of claim 9, wherein said storage device is a rotating storage medium having a plurality of tracks, rotating in a first direction, said audiovideo data signals of said current path are arranged on a track, and a transducer means for retrieving said audiovideo data signals.
11. The method of claim 10, further comprising: d) arranging the audiovideo data signals of said plurality of first branches, other than said one, in a second track other than the first track storing the audiovideo data signals of the current path, in a position such that upon movement of said transducer means from said first track to said second track, rotation of said disc in the first direction to bring said transducer means to said position is minimized.
12. A method of arranging audiovideo data signals, said audiovideo data signals being outputted on an audiovideo device by a computer program operating on a first computer means, said audiovideo data signals characterized by a plurality of audiovideo scenes associated with a current path and a plurality of first branches of said computer program, with user input for selecting audiovideo scenes associated with one of said plurality of first branches at a user input node, for output by a translated computer program operational on a second computer means, said second computer means having a constraint of retrieval time of said audiovideo data signals from a storage device associated with said second computer means, said method comprising: a) calculating the capacity of said second computer means to retrieve audiovideo data signals from said storage device while said second computer means would be operating on said translated computer program during said current path; and b) arranging audiovideo data signals characterized by audiovideo scenes associated with said plurality of first branches such that said data signals characterized by audiovideo scenes associated with said plurality of first branches are retrievable while said second computer means would be operating on said current path and has the capacity to retrieve audiovideo data signals from said storage device.
13. The method of claim 12, wherein at step b) only said audiovideo data signals associated with said first branch that are not associated with said current path are arranged .
14. The method of claim 12, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting video scenes associated with one of said second branches at one of a second plurality of user input nodes, further comprising: c) calculating the capacity of said second computer means to further retrieve audiovideo signals from said storage device while said second computer means is operating on said translated computer program during said current path and after retrieving, from said storage device, audiovideo signals characterized by audiovideo scenes associated with said plurality of said first branches arranged in step b); and d) arranging audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches such that said data signals characterized by audiovideo scenes associated with said plurality of second branches are retrievable while said second computer means is operating on said current path and has the capacity to retrieve audiovideo data signals from said storage device.
15. The method of claim 14, wherein at step b) only said audiovideo data signals associated with said first branch that are not associated with said current path are arranged.
16. The method of claim 12, wherein at step b) only an amount of said audiovideo signal data characterized by audiovideo scenes associated with said plurality of first branches is arranged to be substantially sufficient for said translated computer program to overcome the constraint of retrieval time of said second computer.
17. The method of claim 16, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting audiovideo scenes associated with one of said second branches at one of a second plurality of user input nodes, further comprising: c) calculating the capacity of said second computer means to further retrieve audiovideo signals from said storage device while said second computer means is operating on said computer program during said current path and after retrieving from said storage device, in step b), audiovideo signals characterized by audiovideo scenes associated with said plurality of said first branches; and d) arranging audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches such that said data signals characterized by audiovideo scenes associated with said plurality of second branches are retrievable while said second computer means is operating on said current path and has the capacity to retrieve audiovideo data signals from said storage device.
18. The method of claim 17, wherein at step d) only an amount of said audiovideo signal data characterized by audiovideo scenes associated with said plurality of second branches is arranged to be substantially sufficient for said translated computer program overcome the constraint of retrieval time of said second computer.
19. , The method of claim 12, further comprising: c) arranging the audiovideo data signals of one of the plurality of first branches to be immediately contiguous to and continuation of the audiovideo data signals of the current path.
20. The method of claim 19, wherein said storage device is a rotating storage medium having a plurality of tracks, rotating in a first direction, and said audiovideo data signals of said current path are arranged on a track.
21. The method of claim 20, further comprising: d) arranging the audiovideo data signals of said plurality of first branches, other than said one, in tracks forming an acute angle with the end of the track storing the audiovideo data signals of the current path, and with the first direction.
22. A method of operating a computer program for outputting audiovideo data signals on an audiovideo device means, said audiovideo data signals characterized by a plurality of audiovideo scenes associated with a current path and a plurality of first branches, with user input for selecting audiovideo scenes from one of said plurality of first branches at a user input node, on a computer means having a storage device for storing said video data signals, said method comprising: a) retrieving audiovideo data signals, from said storage device, associated with said current path; b) outputting audiovideo scenes associated with said retrieved audiovideo data signals, and c) retrieving audiovideo data signals, from said storage device, associated with each of said plurality of first branches, prior to outputting all of the audiovideo scenes associated with the current path.
23. The method of claim 22, wherein at step c) only said audiovideo data signals characterized by audiovideo scenes associated with said plurality of first branches that are not associated with said current path are retrieved.
24. The method of claim 22, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting audiovideo scenes associated with one of said second branches at one of a second plurality of user input nodes, wherein at step c) audiovideo data signals associated with said plurality of second branches are also retrieved.
25. The method of claim 24, wherein at step c) only those audiovideo data signals characterized by audiovideo scenes associated with said plurality of second branches that are not associated with said current path or said first branch are retrieved.
26. The method of claim 22, wherein at step c) only an amount of said audiovideo data signals is retrieved sufficient to output audiovideo scenes, of a first branch chosen by a user substantially equal to the constraint of retrieval time.
27. The method of claim 26, wherein said plurality of audiovideo scenes are further associated with a plurality of second branches, with user input for selecting audiovideo scenes associated with one of said second branches at one of a second plurality of user input nodes, wherein at step c) audiovideo data signals associated with said plurality of second branches are also retrieved.
28. The method of claim 27, wherein at step c) only an amount of said audiovideo data signals is retrieved sufficient to output audiovideo scenes, of a second branch chosen by a user substantially equal to the constraint of retrieval time.
PCT/US1995/013871 1994-10-28 1995-10-27 Video game porting compiler and method of operating a video game WO1996013773A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33121494A 1994-10-28 1994-10-28
US08/331,214 1994-10-28

Publications (1)

Publication Number Publication Date
WO1996013773A1 true WO1996013773A1 (en) 1996-05-09

Family

ID=23293047

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1995/013871 WO1996013773A1 (en) 1994-10-28 1995-10-27 Video game porting compiler and method of operating a video game

Country Status (1)

Country Link
WO (1) WO1996013773A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261072A (en) * 1991-10-31 1993-11-09 Tandy Corporation Compact disk data transfer system using cache memory
US5339238A (en) * 1991-03-07 1994-08-16 Benson Thomas R Register usage tracking in translating code for different machine architectures by forward and reverse tracing through the program flow graph
US5355480A (en) * 1988-12-23 1994-10-11 Scientific-Atlanta, Inc. Storage control method and apparatus for an interactive television terminal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355480A (en) * 1988-12-23 1994-10-11 Scientific-Atlanta, Inc. Storage control method and apparatus for an interactive television terminal
US5339238A (en) * 1991-03-07 1994-08-16 Benson Thomas R Register usage tracking in translating code for different machine architectures by forward and reverse tracing through the program flow graph
US5261072A (en) * 1991-10-31 1993-11-09 Tandy Corporation Compact disk data transfer system using cache memory

Similar Documents

Publication Publication Date Title
US6867782B2 (en) Caching data in a processing pipeline
US5734862A (en) System for selectively buffering and displaying relevant frames from interleaving frames associated with respective animation sequences stored in a medium in response to user selection
US6415101B1 (en) Method and system for scanning and displaying multiple view angles formatted in DVD content
KR100618289B1 (en) Signal recording method and apparatus, signal recording / reproducing method and apparatus, and signal recording medium
US5754730A (en) Method for predicting what video data should be in a cache which is in a disk-based digital video recorder
US6343298B1 (en) Seamless multimedia branching
US5872575A (en) Method and system for the creation of and navigation through a multidimensional space using encoded digital video
US5890208A (en) Command executing method for CD-ROM disk drive
US6449687B1 (en) Computer readable medium and information processing apparatus
US5228859A (en) Interactive educational and training system with concurrent digitized sound and video output
US5924071A (en) Method and apparatus for optimizing a playlist of material
KR930009779B1 (en) Digital information input/output apparatus and method therefor
JP2000067522A (en) Information reproducing device/method, information recording device and its method, providing medium and recording medium
US20020089519A1 (en) Systems and methods for creating an annotated media presentation
JP2002514331A (en) Computer-implemented method for generating a virtual file for sharing information in a physical information file
US20040229688A1 (en) Methods and apparatus for playing video sequences while loading game data
JPH10162560A (en) Video editing method and non-linear video editing apparatus
JP2895064B2 (en) Still image file method, still image reproducing device, still image file storage medium system, and still image file device
US5708846A (en) System for retrieving initial data sequence corresponding to next data sequence while locating next data sequence when branch point is reached during current data sequence
JP3752256B2 (en) Multimedia data recording / reproducing apparatus and multimedia data generating method
JPH08195022A (en) Disk reproducing device, karaoke system and disk reproducing method
JP2736070B2 (en) Still image file editing device
WO1996013773A1 (en) Video game porting compiler and method of operating a video game
US5293606A (en) Apparatus and method for transferring interleaved data objects in mass storage devices into separate destinations in memory
US6816667B1 (en) Memory efficient method and apparatus for determining run times of DVD titles

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase