A portion of the disclosure of this document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice shall apply to this document: Copyright©2008 Microsoft Corp.
The presently disclosed subject matter relates to the field of computing, and more particularly, to fields such as gaming, although this is merely an exemplary and non-limiting field.
Certain types of computing devices, such as game consoles, are typically low-priced personal computers with diverse, non-volatile storage device options. A game console may contain a combination of internal and external storage devices. When viewed in comparison to other game consoles, there may be a wide variance in capacity and storage device configuration. As the software that is run on the computing device accumulates features, the increased capacity necessary to run those features may outgrow the capacity of a storage device, requiring the use of additional storage devices. In certain computing devices, such as some game consoles, the storage devices may be removable and roamable, i.e. moved from one game console to another.
A user experience may be provided to a user of a game console in which the experience level may be upgraded, or enhanced, from a basic, or core experience level. The enhanced experience level may include, but is not limited to, the ability to use various system components like avatars, whereas the core user experience may not allow the user to use the enhanced system components. These enhanced system components may require the use of more than one memory device upon which to store various system packages, or software components, that allow the console to properly provide that user experience level.
But, in a game console in which there may be more than one memory device storing system operating packages, or storage packages, there may be an occasion in which one or more of the storage packages may be stored across the more than one memory devices. Because one of the memory devices may be portable, it is possible that the memory device has stored thereon packages of one version of software and may be used in conjunction with another memory device having packages of a different version.
When this occurs, running a user experience at an enhanced user experience level may not be verified, and thus, not allowed. For example, a game console may have a permanent memory installed and a removable memory installed for use. To provide for the enhanced user experience level, it may have been determined that the system packages must at least be of a certain version. If one of the system packages are not of the version, the enhanced user experience level may not be allowed because the different versions may not have been verified to provide the enhanced user experience level.
Various mechanisms are discussed herein that provide for various user environments through upgrades in a system with removable and/or roamable storage devices. Depending upon the version of an upgrade for a particular system component, the user experience level may vary. For example, a user experience level may be a full experience level that is provided to the user if one or more system components have a first version that is a validated system configuration to run the first version. Further, in that example, a user experience level may be a limited experience if one or more system components have a second version or an invalidated system configuration.
A manifest is also described herein upon which the version for each experience may be checked against. The manifest may be downloaded as part of an upgrade package. The manifest may be a table of the groups of system software, or packages, that have been validated for a particular upgrade. Table entries may indicate a version of a package, and may comprise other information such as the location in which to find and download the package as well as the intended storage device(s) upon which the package may be stored. The manifest may be used to describe conditions, or installed packages, that may be used to determine the experience level. For example, and not by way of limitation, an enhanced user experience level may include the ability to use a movie player if the console is located in the United States. The manifest may include software packages installed that indicate that the console is located in the United States.
It should be noted that this Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The foregoing Summary, as well as the following Detailed Description, is better understood when read in conjunction with the appended drawings. In order to illustrate the present disclosure, various aspects of the disclosure are shown. However, the disclosure is not limited to the specific aspects shown. The following figures are included:
The subject matter of the various embodiments is described with specificity to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventor has contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or elements similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the term “step” may be used herein to connote different aspects of methods employed, the term should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly required. It should be understood that the explanations illustrating data or signal flows are only exemplary. The following description is illustrative and non-limiting to any one aspect.
Further, although the description following uses “enhanced” and “core” to describe a user experience level provided on the console, it should be noted that the terms are merely to denote different user experience levels having sets of features and are not intended to limit the scope of the present subject matter. For example, an enhanced user experience level may include a set of features and a core user experience may include a different set of features, some of which may or may not be included in the set of features provided in the enhanced user experience level.
Removable storage 206 may be of various types, including a removable hard drive, universal serial bus (USB) memory stick or any other type of storage device, or combination of such devices, that may become available for use. As features for console 202 become more complex, it may become necessary to use some of the storage capacity of removable storage 206. For example, the use of avatars in online game playing may require a large amount of storage capacity, greater than that offered solely by flash storage 204.
Thus, in order to provide that enhanced user experience level, software packages comprising computer executable instructions may be stored on removable storage 206. These software packages may constitute a set of user experience groups. Coherency of the console may be verified if these user experience groups are installed. If the appropriate user experience group is installed, the user experience level may be set to the corresponding user experience group verified to be installed, or coherent within the console. If the user experience group is not installed, the console user experience level may be set to a different user experience level, which may be a core or basic experience level provided on the console if not user experience groups are installed.
Because removable storage 206 is removable, or roamable, there may be an occasion in which the software packages necessary to properly execute the enhanced user experience level may be missing or may be of the incorrect version, i.e. a “1.0” release rather than the correct “2.0” release. This may happen for various reasons. For example, removable storage 206 may have been recently purchased and, thus, may not have the software packages store thereon. Also, removable storage 206 may have been transferred from one console to another. If while removable storage 206 was in communication with another console and no software packages were downloaded, or the software packages were of an earlier release version, when connected to another console, the software packages may be missing or of the incorrect version.
In order to adequately assure that a console will be able to provide an enhanced experience, it may be necessary to test various software packages and their versions. After testing, a list may be generated, the list comprising the software packages and versions that a console must have installed in order to run the enhanced experience level. These packages and their version numbers, and the combinations of each, constitute a coherent system. This list, which may be termed a manifest, is used by the console to determine if the console is configured in a manner that has been tested.
To reach its full utility, the manifest may describe all or some of the packages of a particular product or feature, even if the particular features may be appropriate for one type of system, such as a game console, or one system configured in one manner, such as a console located in the United States. The condition of the system, the runtime conditions, may be expressed in the manifest. In one example, a manifest list only packages that meet the runtime conditions that are permitted on a particular console. Having the conditions expressed in the manifest explicitly identifies the combinations that are tested as stable. Therefore, a certain level of quality control may be applied to the combinations. If one or more user packages are not present, thus lacking the packages necessary to form certain user experience combinations, or groups, the console may prohibit the unsupported, or incoherent, combination.
To allow console 210 to run the enhanced user experience level, also stored in removable storage is manifest 220. Manifest 220 comprises a list of software packages and their respective versions required to permit console 210 to provide the enhanced user experience level. In this example, in order to provide the enhanced user experience level, the console must have software package “A” version 1.1 and software package “B” version 1.2. Console 210, prior to allowing the enhanced user experience level, will access manifest 220 and check to see if the required software packages are installed on console 210.
If the packages are not installed, or the version is different, console 210 may use manifest 220 to get a list of the missing software packages and/or the correct versions of previously installed software packages. When a console software update is invoked, the missing software packages or the correct versions of the software packages may be retrieved. Further, as the enhanced user experience software packages change, the manifest may be updated.
Once the versions of the software packages are determined as well as the missing software packages, the console determines 306 whether or not the console software is coherent by comparing the information to the related information in the manifest. For example, as described in
At this point, the console may be configured to set 310 the user experience level at a “core”, or second, level if the system is determined to not be coherent. Or, the console may be configured to provide a means for updating the console in an attempt to reconfigure the console to be coherent. If the system is updated 308, after the update, the console re-verifies 306. If the console is not coherent and there are no updates available, the console is set 310 at the “core” user experience level.
In some configurations, there may be various levels of an enhanced user experience level. For example, there may be additional features available to the user if the console is connected to an online gaming service through an internet connection. For example, the console may be configured to provide a voice chat service to other users of other consoles if the console is connected to the online gaming service. Thus, a determination 312 may be made to check if the console is online and connected to the online gaming service. If the console is connected, the console may be set 314 at an enhanced, or third, online user experience level. If the console is not connected, the console may be set 316 at an enhanced, or first, offline user experience level.
If the console is set at a core user experience level, the console may be configured to attempt an update to reconfigure the console to be coherent.
Once the update point has been invoked, an updated manifest may be downloaded 402 to provide for the ability to check the console for coherency after the updates. It should be noted that an updated manifest may also include an original manifest if a manifest has not been previously stored on the console. A check may be made to determine 404 if there are any software updates required, and if there are updates required, the updates will be downloaded and installed 406 on the console. If the console is determined 408 to be coherent, the console may be set 410 to an enhanced user experience level. If the console is determined to not be coherent, the console may be set 412 to a core user experience level.
The above discussed computing devices and accessories can be embodied as gaming consoles, music players, personal computers, controllers, remote control devices and other such devices having different, similar, or the same platforms. Referring to
This console, which may include a game oriented console or a PC, can comprise, for example, digital audio processing functionality. Specifically, in
A graphics processing unit (GPU) 108 and a video encoder/video codec (coder/decoder) 114 can form a video processing pipeline for high speed and high resolution graphics processing. Data can be carried from the graphics processing unit 108 to the video encoder/video codec 114 via a bus. The video processing pipeline can output data to an A/V (audio/video) port 140 for transmission to a television or other display. A memory controller 110 can be connected to the GPU 108 and CPU 101 to facilitate processor access to various types of memory 112, such as, but not limited to, a RAM (Random Access Memory). Thus, various types of information, whether sensitive or not, or even parts of various types of information, can be stored in the various types of memories discussed above, depending on the need.
The multimedia console 100 can include an I/O controller 120, a system management controller 122, an audio processing unit 123, a network interface controller 124, a first USB host controller 126, a second USB controller 128 and a front panel I/O subassembly 130 that can be preferably implemented on a module 118. The USB controllers 126 and 128 can serve as hosts for peripheral controllers 142(1)-142(2), a wireless adapter 148, and an external memory unit 146 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). Moreover, the network interface 124 and/or wireless adapter 148 can provide access to a network (e.g., the Internet, home network, etc.) and can be any of a wide variety of various wired or wireless interface components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like. For example, network interface 124 may be used to connect console 100 with the online gaming service discussed above.
System memory 143 can be provided to store application data that is loaded during the boot process. A media drive 144 can be provided and can comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive 144 can be internal or external to the multimedia console 100. Application data can be accessed via the media drive 144 for execution, playback, etc. by the multimedia console 100. The media drive 144 can be connected to the I/O controller 120 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394). Additional to such application data, other information can be stored on the console 100 that will aid in the communication between peripheral / accessory device controllers and the console 100 itself.
The system management controller 122 can provide a variety of service functions to assure the availability of the multimedia console 100. The audio processing unit 123 and an audio codec 132 can form a corresponding audio processing pipeline with high fidelity, 3D, surround, and stereo audio processing according to aspects of the presently disclosed subject matter above. Audio data can be carried between the audio processing unit 123 and the audio codec 132 via a communication link. The audio processing pipeline can output data to the A/V port 140 for reproduction by an external audio player or device having audio capabilities.
The front panel I/O subassembly 130 can support the functionality of the power button 150 and the eject button 152, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console 100. A system power supply module 136 can provide power to the components of the multimedia console 100. A fan 138 can cool the circuitry within the multimedia console 100.
The CPU 101, GPU 108, memory controller 110, and various other components within the multimedia console 100 can be interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures.
When the multimedia console 100 is powered on or rebooted, application data can be loaded from the system memory 143 into memory 112 and/or caches 102, 104 and executed on the CPU 101. Such application data can include some of the online derived data, including the enhanced user experience level software packages discussed above. The application can also present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console 100. In operation, applications and/or other media contained within the media drive 144 can be launched or played from the media drive 144 to provide additional functionalities to the multimedia console 100. And, such media, including game titles can be the basis for providing the enhanced user experience levels.
The multimedia console 100 can be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console 100 can allow one or more users to interact with the system, watch movies, listen to music, and the like. However, with the integration of broadband connectivity made available through the network interface 124 or the wireless adapter 148, the multimedia console 100 can further be operated as a participant in a larger network community of computing devices. As such a participant, it can interact with computing devices, whether PCs or servers, and receive information that can be eventually stored.
Next,
Finally, it should also be noted that the various techniques described herein can be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus of the presently disclosed subject matter, or certain aspects or portions thereof, can take the form of program code (i.e., instructions) embodied in tangible storage media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, where, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the subject matter.
In the case of program code execution on programmable computers, the computing device can generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs that can utilize the creation and/or implementation of domain-specific programming models aspects of the present invention, e.g., through the use of a data processing application programming interface (API) or the like, are preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language, and combined.
Finally, while the present disclosure has been described in connection with a plurality of exemplary aspects, as illustrated in the various figures and discussed above, it is understood that other similar aspects can be used or modifications and additions can be made to the described aspects for performing the same function of the present disclosure without deviating therefrom. For example, in various aspects of the disclosure, methods, systems, and computer readable media were described configured for determining the coherency of a console. However, other equivalent mechanisms to these described aspects are also contemplated by the teachings herein. Therefore, the present disclosure should not be limited to any single aspect, but rather construed in breadth and scope in accordance with the appended claims.