The present invention generally relates to information processing technology, and more particularly, to a technology for executing application programs, such as game programs or the like.
In recent years a technology, referred to as emulation, for running software that is developed for certain target hardware on hardware different from the target hardware has become a focus of attention. The emulation technology virtually implements by an emulator hardware resources with which the target hardware is provided (e.g., a Central Processing Unit (CPU), memory, a disk system, or the like). When an application program that is to be executed on target hardware accesses to a hardware resource, an emulator that implements an environment for the hardware resource to be accessed inputs and/or outputs data as if it were a response from actual hardware. This allows the application program to operate.
With a conventional game console, the progress status of a game has been normally written in an external recording medium, such as a memory card or the like. In the past, a peripheral device, which is evolved from this external recording medium, has also been developed (see, for example, patent document No. 1). The peripheral device (herein after referred to as a “portable game device”) is capable to receive a game program transferred from a game console and capable to execute the game by itself as well as having a memory function. Game production companies store a main game program that is executed by a game console and a game program for a game executed by a portable game device (herein after referred to as a “mini game”) in one recording medium and provide users with the medium. This allows users to enjoy a mini game with a portable game device. The result of a mini game is transferred from a portable game device to a game console, and the game console forwards the progression of a main game by reflecting the result of the mini game.
[PATENT DOCUMENT 1] U.S. Pat. No. 6,582,311
An emulation device for a game generally has a hardware structure different from a conventional game device and is often provided without a slot for loading an external recording medium, such as a memory card or the like, which has been used in a conventional game device. Meanwhile, technical progress in recent years allows the capacity of recording media to increase dramatically, and an emulation device is configured to be capable of loading a high-capacity recording medium that is different in specifications from a recording medium used by a conventional game device. In an emulation device, a virtual memory card is generated in such a high-capacity recording medium or in an internal recording medium, and save data of the memory card is read into the virtual memory card.
A portable game device disclosed in the patent document 1 downloads the program of a mini game to a memory card, reads the program from the memory card, and executes the program, accordingly. Conventionally, the program of a mini game used to be stored in a recording medium, such as a CD-ROM or the like, together with the program of a main game, and a user used to buy the recording medium to play the mini game on a portable game device. In recent years, however, non-authorized game programs are sometimes available on the Internet. The operational reliability of non-authorized game programs are not guaranteed. Moreover, non-authorized game programs have a danger of causing an adverse impact on game devices. Therefore, in case of implementing a portable game device by emulation, it is preferable to provide a scheme where non-authorized mini game programs cannot be executed.
In case that a single information processing device is configured so as to be able to run a main game and a mini game, it is preferable that a user interface adopts a contrivance so as not to bring discomfort to a user when switching the main game and the mini game.
In this background, a purpose the present invention is to provide an information processing technology for executing an application program appropriately.
In order to address the aforementioned issue, an information processing device is provided according to an aspect of the present invention. The information processing device includes: a storage unit operative to store an image file of an application program; and a processing unit operative to execute the application program. Usage information, which indicates an available real device or an available virtual device when the application program is executed, is added to the image file, and the processing unit refers to the usage information and presents information relating to an available device to a user.
Optional combinations of the aforementioned constituting elements, and implementations of the invention in the form of methods, apparatuses, systems, recording mediums, computer programs, or the like may also be practiced as additional modes of the present invention.
According to the present invention, an information processing technology catering high user friendliness can be provided.
The information processing device 10 is a processing device configured to have a wireless communication function. According to the exemplary embodiment, the information processing device 10 has a communication function based on a wireless LAN system. Alternatively, the information processing device 10 may have a communication function based on another wireless communication system, or may have a communication function for connecting with an external device by a cable (e.g., a USB cable or the like).
The access point 12 functions as a relay device that connects information processing devices 10 with each other via a wireless LAN, connects an information processing device 10 to another access point via a wireless LAN, and/or connects an information processing device 10 to a network 14, such as the Internet, a wired LAN, or the like. In the communication system 1, the information processing device 10 can connect with the emulator program providing server 20 and with the game image file providing server 30 via the access point 12. In case that the information processing device 10 is provided with a wired communication function, the information processing device 10 may connect with the emulator program providing server 20 and with the game image file providing server 30 via a relay device, such as a personal computer (PC) or a game console connected to the network 14, etc.
The information processing device 10 may be a portable game device. If a disk that stores a game program is loaded into a disk reader, the information processing device 10 can thereby read out and execute the game program. According to the exemplary embodiment, the information processing device 10 may not be a portable game device and may be a game console, a personal computer, or a terminal device, such as, a cellular phone, a Personal Digital Assistance (PDA), or the like. Regardless of which of the terminal devices the information processing device 10 is configured as, the information processing device 10 functions as an emulation device that is capable of executing a game program provided from the game image file providing server 30 by activating an emulator program provided from the emulator program providing server 20.
The emulator program providing server 20 provides an emulator program for running a game program dedicated to a predetermined game device on the information processing device 10. The emulator program may constitute a part of firm ware. The emulator program providing server 20 may be configured as a firmware update server that provides updated firmware. In this process, if a user instructs the information processing device 10 to update firmware, the information processing device 10 downloads updated firmware from the emulator program providing server 20. By downloading the firmware, the information processing device 10 can acquire an emulator program and can operate as an emulation device, accordingly.
The game image file providing server 30 generates an image file of a game program dedicated to a predetermined game device and provides the information processing device 10 therewith. For example, the game image file providing server 30 transmits a list of game titles that can be downloaded to the information processing device 10. A user selects a desired game title, by which the information processing device 10 downloads the image file thereof to a recording medium, such as a flash memory, or the like. The information processing device 10 activates the emulator program and reads the downloaded image file, by which the information processing device 10 can make a game progress as if the information processing device 10 is the predetermined game device.
With a conventional game console, an external recording medium, such as a memory card or the like having memory capacity of about 1 mega byte (MB), is generally used in order to write save data of a game. However, at the present day, the memory capacity of a memory card is small and a large-capacity recording medium, such as a flash memory or the like is used instead of the memory card. Therefore, the information processing device 10 is often provided without a slot for inserting a memory card that used to be utilized in a conventional game console. Meanwhile, game programs are created in accordance with the hardware structure of a conventional game device on the basis of the premise that data is read from and written to a memory card. Therefore, in order to execute a game program on the information processing device 10, it is necessary to generate an imaginary memory card (herein after also referred to as a “virtual memory card”) on a recording medium. A virtual memory card is a “disk image” configured so as to have the same memory capacity as that of a conventional memory card. The information processing device 10 stores save data or the like in the disk image.
In the past, a portable game device, which is evolved from an external recording medium and which is capable of executing a mini game by itself upon receiving a game program transferred from a game console, has been developed. According to the exemplary embodiment, the information processing device 10 is configured as a portable game device. Therefore, a conventional portable game device is referred to as a “mini game device” in order to distinguish from the device 10. In a ROM that stores game software, a program that has been executed on a game console and a program that has been executed on a mini game device are stored. Hereinafter, in order to simplify an explanation, a game that has been executed on a conventional game console is referred to as a “main game,” and a game that has been executed on a mini game device is referred to as a “mini game.” A user downloads the program of a mini game to a mini game device by inserting a mini game device in a slot of a game console. The user removes the mini game device from the slot, and the mini game device can execute the mini game by itself, accordingly.
In the communication system 1 according to the exemplary embodiment, the emulator program providing server 20 provides the information processing device 10 with an emulator program for a conventional game console and with an emulator program for a mini game device. The information processing device 10 can operate as a conventional game console or as a mini game device by activating the provided emulator program. Hereinafter, in order to simplify an explanation, an emulator program for a game console is referred to as a “first emulator program,” and an emulator program for a mini game device is referred to as a “second emulator program.” The first emulator provides an execution environment of a game console, and the second emulator provides an execution environment of a mini game device. These emulator programs are transmitted via the network 14 in accordance with a download request issued by the information processing device 10.
The game image file providing server 30 provides the information processing device 10 with an image file of game software including the program of a main game and the program of a mini game. As described above, an image file refers to a file converted from a ROM that stores a program. The program of a mini game may be converted to a file separately from the program of a main game. Alternatively, the program of a mini game may be built in the program of a main game and converted to a file. In any case, an image file is formed in accordance with the contents and the structure of a conventional game ROM.
The information processing device 10 according to the exemplary embodiment first activates the first emulator program and executes a main game. If there is an instruction from a user to execute a mini game while executing the main game, the information processing device 10 activates the second emulator program and executes a mini game. When executing a mini game, the information processing device 10 does not allow all of the mini games that the device 10 retains to be executable, but executes only a mini game associated with the main game.
A conventional mini game device can download a plurality of mini game programs from a game console and a user can run any mini game. However, in recent years, a number of non-authorized game programs exist on the Internet and it is easy to acquire such game programs. Therefore, even a user who does not own the program of a main game can acquire only the program of a mini game. However, it is not preferable to provide a user who does not appropriately purchase game software with an environment where a mini game can be executed. Therefore, the information processing device 10 according to the exemplary embodiment imposes a predetermined constraint on the execution of a mini game.
The storage unit 180 is a recording medium such as a flash memory or the like, and is provided with an emulator program storage unit 150, game image file storage units 160a, 160b, and 160c (herein after referred to as a “game image file storage unit 160” when referred collectively), and save data storage units 170a, 170b, and 170c (herein after referred to as a “save data storage unit 170” when referred collectively). The emulator program storage unit 150, the game image file storage unit 160, and the save data storage unit 170 may be formed in the same storage unit 180, or may be formed in different storage units.
The emulation function of the information processing device 10 is implemented by a CPU, memory, a program loaded into the memory, or the like.
Upon receiving from the controller unit 44 a request to download an emulator program, the communication control unit 102 connects the communication unit 104 to the emulator program providing server 20. The communication unit 104 downloads from the emulator program providing server 20 a first emulator program for a conventional game console and a second emulator program for a mini game device, and provides the emulator program acquiring unit 112 therewith. The emulator program acquiring unit 112 stores the acquired first emulator program 152 and the second emulator program 154 in the emulator program storage unit 150.
The communication control unit 102 receives from the controller unit 44 a request to connect to the game image file providing server 30, and connects the communication unit 104 to the game image file providing server 30, accordingly. The game image file providing server 30 distributes a list of game titles that can be downloaded. A user selects a desired game title from a list displayed on the display unit 40, by which a download request for a game image file is generated. The communication unit 104 downloads the game image file from the game image file providing server 30, and provides the game image file acquiring unit 114 therewith. The game image file acquiring unit 114 stores the acquired game image file in the game image file storage unit 160.
According to the exemplary embodiment, a game image file includes a main game program 162 and a mini game program 164. Usage information 166, key information 168, and an icon image 172 are attached to the game image file as associated information. The main game program 162 is a program that used to be executed in a conventional game console, and the mini game program 164 is a program that used to be executed in a conventional mini game device. As described above, the mini game program 164 may be embedded in the main game program 162. However, in order to facilitate the understanding thereof, those programs are shown as separate programs in
The main game program 162 and the mini game program 164 is a ROM image, which is a file converted from a ROM storing a game program that used to be executed in a conventional game console. A game image file according to the exemplary embodiment has a format where at least the usage information 166, the key information 168, and the icon image 172 are attached to the ROM image.
The usage information 166 indicates an available real device or an available virtual device when the main game program 162 is executed. The real or virtual device may be a device that operates as a peripheral device of a conventional game console while the device 10 executes the first emulator program 152 and operates as the conventional game console. The usage information 166 according to the exemplary embodiment specifies that a virtual mini game device is available, i.e., the information 166 indicates that a mini game can be executed in the information processing device 10 by activating the second emulator program 154. The usage information 166 may be a flag value that indicates whether or not to allow the use, and may be defined as “1” in case that a mini game can be executed and may be defined as “0” in case that a mini game cannot be executed. The game image file may be configured so that, only in case that a main game is compatible with a mini game, the usage information 166 indicating that information is attached, and the game image file may be configured so as not to include the usage information 166 in case that the main game is not compatible with a mini game.
The usage information 166 may be information specifying that one or more peripheral devices other than the mini game device are available. For example, in case that a joystick can be used in the main game, the usage information 166 may specify that a joystick is available. In case that a keyboard can be used in the main game, the usage information 166 may specify that a keyboard is available. Assuming a situation where a user have to select a peripheral device to use by himself/herself when executing a main game, there may be a chance that the user selects an unavailable peripheral device by mistake. By contrast, if an available peripheral device is specified beforehand by the usage information 166, the user cannot select unavailable peripheral device in the first place, by allowing the information processing device 10 to provide the user only with information on the available peripheral device as a selectable device. This saves time and trouble when selecting a peripheral device to use.
The key information 168 is information for encrypting or decrypting a program for a peripheral device. The key information 168 may include an encryption key for encrypting a program and a decryption key for decrypting an encrypted program, or may include a common key for encrypting and decrypting. The key information 168 is information specific to game software, and different keys are defined for respective game titles.
The icon image 172 is image data to be presented in order to allow a user to visually recognize the existence of the mini game program 164.
The game image file acquiring unit 114 stores an acquired game image file separately for each game software, i.e. for each game title, in the storage unit 180. Consequently, the number of game image file storage units 160 generated in the storage unit 180 is the number of pieces of game software that have been downloaded.
When the main game execution unit 132 activates the main game program 162 on an environment provided by the first emulator, if it is the first activation, the memory management unit 138 generates the save data storage unit 135 on a RAM. The save data storage unit 135 is a disk image of a memory card, has a storage area of about 1 mega byte, and is divided into a predetermined number of (e.g., fifteen) blocks. If it is not the first activation, the memory management unit 138 executes a process of reading data from the save data storage unit 170 to the RAM because the save data storage unit 170 was already generated at the time of first activation as will be described later.
When activating the main game program 162 for the first time, a user manipulates the controller unit 44 so as to instruct to execute a mini game, and the mini game program 164 is read out from the game image file storage unit 160 to the save data storage unit 135, accordingly. The user selects one of the icon images 172 of the mini game displayed on the display unit 40, by which the user can play the mini game on an execution environment provided by the second emulator. If the mini game is completed, the result of the mini game is reflected to the progress of the main game. If the user saves the main game and ends the game, save data is written into the save data storage unit 135.
If the main game is completed, the memory management unit 138 writes the data that is stored in the save data storage unit 135 into the storage unit 180 as the save data storage unit 170. In this process, the memory management unit 138 reads the key information 168 from the game image file storage unit 160 and encrypts the mini game program by using the key information 168. The encrypted mini game program 164 can be decrypted only by using the corresponding key information 168. The mini game program 164 may be encrypted in advance and transmitted in an encrypted state, and may be acquired by the game image file acquiring unit 114. In this process, the key information 168 is merely required to have a role of a decryption key.
The memory management unit 138 encrypts the mini game program 164 by using the key information 168. However, the memory management unit 138 does not encrypt the icon image 172 for allowing a user to visually recognize the existence of the mini game program 164. Therefore, it is not necessary to decrypt the icon image 172 later when the icon image 172 is going to be presented to a user. Further, the memory management unit 138 does not encrypt the save data of a game. This allows the save data to be utilizable also in other information processing devices different from the information processing device 10 without the need for decryption. As described above, the memory management unit 138 stores the mini game program 164 in an encrypted state in the save data storage unit 170 and stores the save data without decryption in the save data storage unit 170. Although the icon image 172 may be stored in the save data storage unit 170, it is not always necessary to store the icon image 172 in the save data storage unit 170 because the icon image 172 is already retained in the game image file storage unit 160.
The save data storage unit 170 is generated for each game title. Among a plurality of save data storage units 170, the main game execution unit 132 accesses a save data storage unit 170 that corresponds to the game title of a main game program to be executed. A user can manipulate the controller unit 44 so as to change a save data storage unit 170 that the main game execution unit 132 is to access.
The save data storage unit 170 is formed in the storage unit 180, for example by setting its title ID as a directory name, and is configured as a disk image of a memory card in a similar manner with that of the save data storage unit 135. A point of difference from that of the save data storage unit 135 is that the mini game program 164 is encrypted as described above.
As described above, one game image file storage unit 160 and one save data storage unit 170 are respectively provided for each piece of game software of the same game title. Although an example has been presented wherein the directory name of the save data storage unit 170 is set as the character string of a title ID, the directory name of the game image file storage unit 160 may also be set in a similar manner as a character string including a title ID. These examples do not limit the directory names. Any directory name with which the first emulator can grasp respective storage positions can be adopted.
As described above, the emulator program storage unit 150, the game image file storage unit 160, and the save data storage unit 170 are formed in the storage unit 180, whereby the emulator function of the information processing device 10 according to the exemplary embodiment is implemented.
In the processing unit 120, if the input operation receiving unit 122 receives an operation for selecting a game title icon from the controller unit 44, the input operation receiving unit 122 provides an instruction to execute the first emulator program 152 to the first activator 126. The first activator 126 reads out the first emulator program 152 from the emulator program storage unit 150, and activates the program 152. This allows the information processing device 10 to operate as an emulation device. After the emulation function is started up, the main game execution unit 132 reads out the main game program 162 from the game image file storage unit 160 that stores the image file of the “ABC car race,” and executes the program 162 on an environment provided by the emulation function.
During the execution of the main game program 162, a user sometimes would like to use data retained in the virtual memory card. A typical case thereof is that a user uses save data retained in the save data storage unit 170 so as to play the continuation of a game that the user once played. The user can utilize the save data of the save data storage unit 170 associated with the “ABC car race,” or in case that the save data is retained in a save data storage unit 170 associated with another game, the user can utilize the save data of the save data storage unit 170. According to the exemplary embodiment, the user uses a mini game program retained in a virtual memory card in case that the user plays a mini game associated with a main game that is being executed. The user gives a predetermined operation via the controller unit 44, and the UI providing unit 136 generates a management screen image for a virtual memory card and presents the screen image on the display unit 40, accordingly.
As described above, the save data storage unit 170 is provided with a storage area divided into fifteen blocks. The icon images 200 of retained mini game programs and save data are displayed on the left side area of the display unit 40. In the example shown in
The memory management unit 138 specifies a mini game program from among data retained in the save data storage unit 170 and applies a decryption process to the mini game program. More specifically, the memory management unit 138 specifies the title ID of the main game program 162 that is being executed and reads out the key information 168 from the game image file storage unit 160 of the specified title ID. The memory management unit 138 decrypts the encrypted mini game program by using the read key information 168. In this process, because the read key information 168 corresponds to the ABC car race, the memory management unit 138 can decrypt the mini game program of the ABC car race. Thereby, this mini game program is in a format executable by the mini game execution unit 134. Meanwhile, since the read key information 168 does not correspond to the XYZ tennis, the memory management unit 138 cannot decrypt the mini game program of the XYZ tennis. Therefore, the first emulator does not recognize the encrypted mini game program of the XYZ tennis as a game program. Thus, a user cannot select the icon image 200e or the icon image 200f.
An operation menu 204 is displayed on the right side area of the display unit 40. A user can select the operation menu 204 by operating the controller unit 44 so as to move a selection box 202. In the operation menu 204, an item “import” is a command that instructs to copy data from another virtual memory card (save data storage unit 170). The management screen image of the virtual memory card shown in
An item “mini game” is a command for executing a mini game. The UI providing unit 136 refers to the usage information 166 of the ABC car race and adds the item “mini game” to the operation menu 204. More specifically, the UI providing unit 136 determines whether the ABC car race is compatible with a mini game by the usage information 166, and adds the item “mini game” to the operation menu 204 only in case that the ABC car race is compatible with the mini game. Therefore, in case that the usage information 166 does not exist, or in case that the usage information 166 indicates that the main game is not compatible with a mini game, the UI providing unit 136 does not present the operation menu of “mini game” to the user, thus the user can not run a mini game.
In this manner, the UI providing unit 136 refers to the usage information 166 and presents information relating to an available peripheral device to a user. More specifically, the memory management unit 138 specifies a game image file storage unit 160 on the basis of identification information (title ID) that identifies an application program that is to be executed by the main game execution unit 132, reads out the usage information 166 associated with the application program to be executed, and passes the information 166 to the UI providing unit 136. The UI providing unit 136 refers to the read usage information 166 and presents information relating to an available peripheral device so that the user can select the device. According to the exemplary embodiment, the UI providing unit 136 specifies that a virtual mini game device is available on the basis of the usage information 166, and presents a selection item “mini game” as shown in
A user can play the mini game of the ABC car race while playing the main game of the ABC car race. However, a user cannot play the mini game of other game title. This allows only a user who has legitimately purchased the game program, that is, a user who owns the key information 168 associated with the main game that is being executed, to play the mini game.
After the second activator 128 activates the second emulator program 154 and the mini game execution unit 134 reads the mini game program and executes the mini game, the first activator 126 stops the execution of the first emulator program 152. The emulator activator 124 decreases the CPU load by operating only the second emulator so as to realize the efficient use of hardware resources. On the other hand, the first emulator (game console) and the second emulator (mini game device) are also required to operate in a coordinated manner in the information processing device 10 according to the exemplary embodiment.
After having played the mini game, the user generates an instruction to complete the mini game by manipulating a predetermined button. The second emulator monitors the execution status of the mini game at predetermined time intervals. Upon detecting the instruction to complete, the second emulator generates an instruction to start the execution (recovery) of the first emulator. The start and the completion of the mini game is detected in the manner described below.
The second emulator describes the number of a program that is being executed at a predetermined area (herein after referred to as a “number specifying area”) in memory. The number of a program may be a number that specifies a storage area of a virtual memory card. A virtual memory card according to the exemplary embodiment is divided into fifteen areas, and each area is given one of the numbers from 1 to 15. In case the mini game is selected by the user on the operation screen image shown in
If the number in a number specifying area is 0, the second emulator detects that the mini game has not been executed yet. Upon activating the mini game program, the mini game execution unit 134 writes one of the numbers from 1 to 3 in the number specifying area. The second emulator refers to the contents stored in a block in the save data storage unit 135 on the basis of the written number, by which the second emulator recognizes that the mini game of the ABC car race is executed and issues an instruction to stop the execution to the first emulator.
Meanwhile, in case that the instruction to complete the mini game is input by the user, the mini game execution unit 134 writes 0 in the number specifying area, and completes the mini game. Upon detecting that the number in the number specifying area changes to 0, the second emulator determines that the mini game is completed and generates an instruction to start the execution of the first emulator. This allows the first activator 126 to execute the first emulator program 152. In this process, the UI providing unit 136 generates the operation screen image shown in
As described above, while the first emulator and the second emulator operate in a coordinated manner, games can be switched smoothly by allowing the UI providing unit 136 by the first emulator to generate a user interface screen image.
In this process, the memory management unit 138 acquires the key information 168 of the mini game program and decrypts the mini game program (S14). Referring to
Given above is an explanation based on the exemplary embodiment. The exemplary embodiment is intended to be illustrative only and it will be obvious to those skilled in the art that various modifications to constituting elements and processes could be developed and that such modifications are also within the scope of the present invention.
According to the exemplary embodiment, the explanation is given in case that the information processing device 10 is an emulation device that executes a game program dedicated to a predetermined game device. The present invention can be applied not only to an information processing device that executes a game program but also to an information processing device that processes content data including another application program or the like. According to the exemplary embodiment, a game program is taken as an example of an application program. However, the present invention can be also applied to a program for creating documents or the like in a similar manner.
1 . . . communication system, 10 . . . information processing device, 20 . . . emulator program providing server, 30 . . . game image file providing server, 40 . . . display unit, 42 . . . audio output unit, 44 . . . controller unit, 110 . . . acquiring unit, 112 . . . emulator program acquiring unit, 114 . . . game image file acquiring unit, 120 . . . processing unit, 122 . . . input operation receiving unit, 124 . . . emulator activator, 126 . . . first activator, 128 . . . second activator, 130 . . . execution unit, 132 . . . main game execution unit, 134 . . . mini game execution unit, 136 . . . UI providing unit, 138 . . . memory management unit, 150 . . . emulator program storage unit, 160 . . . game image file storage unit, 170 . . . save data storage unit, and 180 . . . storage unit.
The present invention can be applied to a technical field of information processing.
Number | Date | Country | Kind |
---|---|---|---|
2009-261987 | Nov 2009 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2010/004415 | 7/6/2010 | WO | 00 | 5/16/2012 |