Document number 20140004957
A snapshot of an emulated game may be generated by a snapshot generator. At some point during the emulation of the emulated game, a snapshot generator delivers a suspension request to an emulator. Once the suspension request is received, the emulator will suspend the emulated title. The emulator generates a snapshot of the emulated game by recording the current state of all devices being emulated. The snapshot is then delivered to the snapshot generator. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
Now, PlayStation Remix may not be the best name for this, but what is presented seems similar to that of NES Remix although not as elaborate perhaps. It took me a few reads to understand what this is all about. As it mentions cloud-based applications, I assume it has something to do with Gaikai.
FIELD OF THE DISCLOSURE
 The present disclosure is related to video game emulation. Among other things, this application describes a method and apparatus for emulating a video game that includes generating snapshots that can be used for incorporating new content into the emulated video games.
BACKGROUND OF THE INVENTION
 Finding new ways to play preexisting video games can increase the longevity of older games. Instead of replaying the same level or completing the same missions repeatedly, gamers often desire new challenges when replaying legacy games. In response to this need, game designers have begun to produce mini-games. Within a mini-game, the gamer can be instructed to complete new objectives or challenge their friends for high scores in a format that was not originally designed into the legacy game. Further, since the mini-game is derived from a legacy game, the gamer already knows the characters and basic components of the game, and is therefore more likely to play the mini-game.
 Mini-games often do not begin at traditional starting points that were used in the original game. For example, the mini-game may begin near the end of a level, just prior to facing a final opponent, or the boss of the level. A boss is an enemy-based challenge which is found in many video games. Bosses are generally seen at the climax of a particular section of the game, usually at the end of a stage or level. Due to the climactic nature of fighting a boss, mini-game designers may choose to use this section of the game as their starting point. In order to make the mini-game more challenging than the original version, the game designer may also want to limit the number of lives a player may use, or change other game parameters such as the amount of health the main character has remaining Other game scenarios may be chosen as starting points for a min-game. For example a mini-game may begin with the game player being the batter in a baseball game where there are two outs in the bottom of the ninth inning and the batter's team is down by one run.
 However, in order to generate mini-games that start with these specific circumstances a game designer must reverse engineer the underlying code in each game and then rewrite the code to enable the mini-game to start under these specific conditions. This process is time consuming and expensive, because it may require multiple engineers to redevelop a single legacy game. Additionally since mini-games are shorter than full-length games, there is a need to produce mini-games in larger quantities.
 In order to create mini-games without reverse engineering and recoding a game designer may rely on the use of triggers and snapshots to provide information needed for the mini-games without having to dig into the code of the legacy game. Triggers are further described in commonly assigned co-pending application Ser. No. 61/666,628 (Attorney Docket Number SCEA12004US00) filed the same day as the present application and entitled "DETERMINING TRIGGERS FOR CLOUD-BASED EMULATED GAMES". The mini-games may be made by providing an emulator with game inputs that bring the emulated game to a certain point where the mini-game will begin. A snapshot may be generated according to aspects of the present disclosure and that point may be used as the used as the starting point in the future mini-game. Thereafter, triggers may be generated in order to provide new experiences for the game. Game designers may then develop a script and combine it with the snapshot and triggers to produce the mini-game. Therefore, in order to design mini-games in this manner, there is a need in the art for a method of quickly generating snapshots.
 A snapshot may be a recorded description of the state of every device being emulated at a designated time during the emulation according to an aspect of the present disclosure. A snapshot may be generated by a snapshot generator. First the snapshot generator delivers game inputs to an emulator. The emulator receives the game inputs and proceeds to emulate the game according to the game inputs. At some point during the emulation, the snapshot generator delivers a suspension request to the emulator. Once the suspension request is received, the emulator will suspend the emulated title at the next point in time at which all devices being emulated are in a steady state. As used herein, steady state means that there are no asynchronous activities occurring in the emulator. At this steady state, the emulator generates a snapshot of the emulated game by recording the current state of all devices being emulated. The snapshot is then delivered to the snapshot generator.
The images aren't very exciting (apart from Sheet 3 perhaps), but I include them anyway:
 By way of example, a legacy game 106 may be any game that is not compatible with a target platform. By way of example and not by way of limitation, the legacy game 106 may have been designed to be played on Sony Computer Entertainment's PlayStation console, but the target platform is a home computer. By way of example, the legacy game 106 may have been designed to be played on a PlayStation 2 console, but the target platform is a PlayStation 3 console. Further, by way of example and not by way of limitation, a legacy game 106 may have been designed to be played on a PlayStation console, but the target platform is a hand held console such as the PlayStation Vita from Sony Computer Entertainment.
BRIEF DESCRIPTION OF THE DRAWINGS
 FIG. 1 is a schematic diagram of a snapshot generator and an emulator communicating over a network according to an aspect of the present disclosure.
 FIG. 2 is a flow diagram illustrating a method of producing a snapshot for an emulated game according to an aspect of the present disclosure.
 FIG. 3A is a schematic diagram illustrating the process of the snapshot generator delivering legacy game input data to the emulator according to an aspect of the present disclosure.
 FIG. 3B is a schematic diagram illustrating the process of the snapshot generator delivering a legacy game suspension request to the emulator, and in response the emulator delivers the snapshot to the snapshot generator.
 FIG. 4A is a block diagram describing the instructions for how the snapshot generator generates a snapshot according to an aspect of the present disclosure.
 FIG. 4B is a block diagram describing the instructions for how an emulator generates a snapshot according to an aspect of the present disclosure.