The present invention relates to creating and downloading game packages, and in particular for creating and downloading game packages for legacy games.
Advances in the design and implementation of gaming machines sometimes prevent older games from operating in newer gaming machines. New hardware and/or software is developed for gaming machines to provide new and/or improved game play experiences for players, and capabilities for owners and operators. For example, operating systems controlling the operation of the processor or processors in gaming machines are updated to provide new such capabilities. New games may then be designed and implemented to take advantage of these new capabilities. However, in some cases, older games, termed legacy games in the present application, which were not designed to use the new capabilities, are unable to take advantage of them. In such a situation, a legacy game may need to be reprogrammed to take advantage of the new operating system.
More specifically, an improved operating system, and cooperating new slot machine game program, may permit configuration options of the game to be dynamically and/or remotely changed without requiring a reinstallation of the game. However, in a legacy slot machine game, configuration data, such as maximum lines, maximum wager per line, and so forth, is set during installation of the game and is unchangeable without uninstalling (deleting) and then reinstalling the game in the gaming machine. Thus, legacy games are currently not able to cooperate with the new operating system to provide dynamic configuration option change.
Often, however, the legacy games are still popular and viable, and require no changes in game play operation. In addition, in most jurisdictions, game software must be submitted to and approved by regulatory bodies, which then require that the approved software be cryptographically signed to prevent modification. If a new game program is implemented, recreating the legacy game, which operates with the new operating system, it must be submitted to the regulatory bodies, which must analyze and approve it. This typically takes time and money. For a game not requiring any changes to the game play this is a waste of time and money.
It is, therefore, desirable to permit a legacy game to be able to be installed and operated in a gaming machine including new and/or improved features for which that game was not designed; more specifically a new operating system including features with which the legacy game was not designed to cooperate. Such a system will permit the use of already existing and approved games on gaming machines using new hardware and/or software. This will permit continued use of popular and viable legacy games without requiring redesign, reimplementation and resubmission to regulatory bodies of reprogrammed legacy games.
In accordance with principles of the present invention, a system includes a download configuration host server coupled to an electronic gaming machine which, in turn, comprises an operating system. A method for configuring a legacy game application on the electronic gaming machine comprises the following steps. A downloadable package comprising a game image of the legacy game and a game descriptor file is generated. The downloadable package is communicated from the download configuration host server to the electronic gaming machine. The legacy game image is installed on the electronic gaming machine. The installed legacy game is configured by the operating system. The operating system simulates configuration of the installed legacy game by an operator in response to data in the game descriptor file. The installed legacy game is then enabled for game play.
a and b are screen displays illustrating a button panel displayed by a legacy game previously installed in a gaming machine from a downloadable package as illustrated in
It is desirable to create downloadable packages for legacy games which permit those legacy games to operate with a later, more advanced, operating systems and/or game download and configuration systems. Such download and configuration systems permit configuration changes to be made to electronic gaming machines (EGMs) on a casino floor in real time. Previously approved legacy game image files are used to create downloadable packages.
In general, a game play system, e.g. in a casino, includes a download configuration host server coupled to an electronic gaming machine which, in turn, comprises an operating system. A method for configuring a legacy game application on the electronic gaming machine comprises the following steps. A downloadable package comprising a game image of the legacy game and a game descriptor file is generated. The downloadable package is communicated from the download configuration host server to the electronic gaming machine. The legacy game image is installed on the electronic gaming machine. The installed legacy game is configured by the operating system. The operating system simulates configuration of the installed legacy game by an operator in response to data in the game descriptor file. The installed legacy game is then enabled for game play.
In the present application, the term ‘game image file’ refers to a file which includes information defining a game which has been approved by regulatory agencies and has been cryptographically signed to prevent alteration. A game image file for a legacy game is combined with a game option xml file called “Game Descriptor File” (GDF) to create a file called a “Download Package”.
Data in the GDF permits the operating system to interact with the legacy game. Repacking the legacy game image into a downloadable package file with a GDF gives the ability to release legacy popular game titles with a new and/or improved download and configuration host to provide game content that is downloadable and remotely configurable from a backend system. The present application describes creating a downloadable package from a previously approved game image, installing a game package in an EGM, and remotely configuring game options.
As is well known, electronic gaming machines include one or more computers, each including a processor, memory, and input/output devices, coupled together via a computer bus, and operating under control of one or more executable programs. The memory is a combination of read-write memory (RAM), read-only memory (ROM), and mass storage devices, such as disk drives; optical drives such as CDs or DVDs; semiconductor mass storage; tape drives; and so forth. Output devices include display screens on which images are displayed representing game play. Other output devices include lights and sound producing devices such as speakers, buzzers, bells, etc. Input devices include buttons for receiving instruction from a player related to game play. Other input devices include coin receivers, bill receivers, and/or ticket receivers for receiving wagers from players. Another input device is one or more touch screens, which may be placed atop one or more of the output devices, or atop a player panel, for receiving instruction from a player related to game play. The computer may also include communication input/output devices such as network interfaces which can receive data from a network and transmit data to the network, or wireless communication devices.
An executable program, when executed by the processor, receives input instructions from the player through the input devices, performs calculations in the processor according to the approved game executable program, and generates output displays and sounds representing the results of game play on the output devices. A control executable program, generally termed an operating system, controls access to the computer hardware from other executable programs, such as game programs, and other generally available functions. Other systems in a gaming system, such as download configuration host servers, progressive servers, administration servers, accounting servers, and so forth, also include one or more computers which are constructed and operated as described just above.
Typically, a legacy game requires its options to be configured during initial installation on an EGM before the game to become enabled and playable. The value of these options are typically displayed by the legacy game on an operator menu screen.
For the new operating system (OS) to support download and configuration of legacy games from e.g. a remote host, the OS needs information related to the display of the option selectors on the game setup display screens such as screen 100. This permits access to those game setup display screens to change of these options as desired. The Game Descriptor File (GDF) is an xml file that is created for the legacy game and contains information related to the display of game options on the Game Setup menu.
The Game Descriptor File contains co-ordinates (x, y) of the buttons and/or other widgets shown in the Game Setup Menu 100. The co-ordinates of a button relate to the location of that button on the game setup display. Typically, this is measured from the left edge for the x co-ordinate, and from the top edge for the y co-ordinate. The measurements are also typically in pixels, though other measurement units may be used instead. The Game Descriptor File may also contain other data related to the buttons and/or widgets such as name, identifiers, etc.
If, for example, the download and configuration system desires to change the “Max Bet Per Line” 104 option value from 10 (108) to 20 (110), the OS retrieves the location of “Max Bet Per Line” 20 button 110 from the GDF file. The OS then simulates a touch on the game setup display screen 100 at that location. This activates the “Max Bet Per Line” 20 button 110, as if it were being manually touched by an operator at the EGM. This configuration activity is hidden from players by displaying a splash screen over the Game Setup screen 100 which includes a status message indicating that option changes are being applied.
Legacy games were developed, approved, and released prior to the development of new OSs and/or new download and configuration systems coupled between the OS and the slot machine game application. The new OS and/or new download and configuration system allow dynamic access to, and remote configuration of, game options. The download and configuration system provides the capability for the game to register its configuration options to the OS at runtime. The OS compiles a list of options for the legacy game and sends them to the download and configuration system through a communication link. In one embodiment, this communication link may use the game-to-system (G2S) protocol. The G2S communication standard protocol is promulgated by the Gaming Standards Association (GSA). More specifically, in such an embodiment, the option configuration device (OptionConfig), which is part of the G2S protocol, may be used to configure, or reconfigure options in a gaming machine.
Because a legacy game is not designed or implemented to cooperate with a download and configuration system, or to communicate using the G2S communication protocol, the legacy game, by itself, cannot be used with such a system. To bridge this gap between the legacy game and the OS, Game Descriptor File (GDF), with the appropriate options for each legacy game, is generated and included within a download package. The legacy game image (i.e. the data approved by regulatory bodies and cryptographically signed) is combined with the GDF file to create a downloadable package. There are no changes made to the legacy game image in the downloadable package. The legacy game image is reproduced exactly and compressed to reduce the size of download package file. Because no changes are made to the legacy game image, that game image may legitimately be used to control the EGM.
Referring to
Referring to
After the downloadable package file 302 is created and signed, it is communicated to a Software Download and Distribution Point (SDDP) server where it is available to be downloaded to gaming machines. Creating and scheduling the download and install tasks are done through a user interface to a download management host.
Referring to
After the game package is downloaded 424, the EGM 404 performs a validation 418 of the package received from the SDDP server 406 to ensure that the download package is downloaded to the EGM 404 completely and without errors. In the illustrated embodiment, this is done using the known technique of calculating a result of a one-way function, e.g. a cryptographic hash function, applied to the downloaded file and comparing it to the expected value of the one-way function found in the package header 304 (of
The download host system 402 then performs an independent verification 420 of the download package on the SDDP server 406. In the illustrated embodiment, this verification uses the known technique of generating a salt value (consisting of a predetermined number of random bits), combining the salt with the contents of the download package, then calculating a result of applying a one-way function, e.g. a cryptographic hash function, to the combination. The value of the resulting one-way function of the combination is kept.
The download host system 402 then directs the EGM 404 to perform a similar verification 422 of the file downloaded to the EGM 404. The download host system 402 transmits the salt to the EGM 404 so the same salt is used by the EGM 404 to verify the contents of the download package at the EGM 404 as was used by the download host system 402 to verify the contents of the download package at the SDDP server 406. When the EGM 404 has calculated the result of the hash function on the combination of the salt received from the download host system 402 and the download package received from the SDDP server, that result is transmitted back to the download host system. The download host system compares the result received from the EGM 404 with the result previously calculated at the download host system 402. If the two results are equal, then the contents of the download package at the EGM are considered verified 428.
In a legacy game package download process, the EGM stores the legacy game image, i.e. the approved signed part, 306 (of
Referring to
Before installation of the downloaded package, EGM 504 provides a snapshot 514, 515 of meter data related to game play history, as described below in
After the download of the legacy game and the retrieval and storage of history, meter and transaction data, and in preparation for the initiation of operation of the downloaded legacy game, the EGM 504 automatically clears 518 the contents of a non-volatile memory device (not shown) in the EGM 504 erasing previously stored critical information such as accounting meters, game history, and logs of vouchers, events, progressive contributions and wins, bills-in, etc. This critical information is stored 522 locally in the EGM 504 in a critical-data partition of the hard disk drive and retained to meet jurisdictional requirements.
To activate the newly downloaded legacy game, the EGM 504 performs an automatic processor reset. During the reboot process, the OS locates the game descriptor file (
Some of the options that are expected to be configured initially from the download host server 602 include: device setup, credit setup, game combos, etc. Other options that are expected to be configured include game options such as: number of lines and bet per line, minimum bet, double up and any other game specific options. The minimum bet option is expected to change more frequently than other options in order to perform yield management. After configuration of the legacy game options, the EGM 604 is enabled and the legacy game, or game combos, are made available to a player.
When the EGM 604 performs a reset, or reboot, it clears 610 the non-volatile RAM (NVRAM), as described above. The EGM 604 then connects 612 to the download configuration host server 602. Operation of the EGM 604 is suspended 614 giving the operator the opportunity to configure the EGM 604. Once connected, the download configuration host server 602 sends an option change message 616 to the EGM 604. This option change message 616 contains desired values for all the required options. The EGM updates the specified options, and informs the download configuration host server 602 when the configuration changes are applied 618. When the options received from the download configuration host server 602 have been applied and the EGM is ready to be playable 620, the EGM 604 sends a message 622, informing the download configuration host server 602.
As described above, it is desirable to support configuration and reconfiguration of legacy game options remotely and/or in real-time. The legacy game 708, itself, is not designed or implemented in a manner to allow such reconfiguration. However, the new OS 706 in the new EGM 704 is designed and implemented to handle configuration changes in legacy games 708.
The download and configuration host 702 sends a bet-per-line change request 722 to the EGM 704. The OS 706 in the EGM 704 receives the request and detects that this option is meant for a legacy game 708 and, thus, is settable only at installation. In order to apply this option change request, the legacy game 708 is uninstalled and reinstalled. During this process, the legacy game 708 persistent data, e.g. NVRAM, is cleared, then the previous options are set again, along with the new value for the minimum bet option. Changes to configuration options are made during “Idle” conditions which meet jurisdictional and operational requirements. To verify this condition, the OS checks if the EGM 704 is in the “Game_Idle” state and if so, proceeds doing the following steps:
Entries in the game descriptor file (
For example, referring to
During the course of game play (i.e. after the legacy game 708 starts and before it ends) the icon buttons 804 may be enabled and displayed e.g. based on a need for a game feature or bonus round. For example, if the legacy game 708 has a feature where the player needs to make a selection of 5 cards, then the number of lines buttons 802 (e.g. the four number of lines buttons 802) become enabled again for the player to make a selection. After the end of the game feature or bonus round state, the number of lines buttons 802 return to the disabled state 804.
As described above, before installation of a downloaded game or a game configuration change, the game play history for the current game is captured to one or more video files. One frame of the file history is stored in a portion of the video file corresponding to a video frame. In one embodiment, the history files are stored as delta compressed .f32 format video in the /critical_data/gamehistory partition in the hard disk drive (not shown) on the EGM. However, other video file formats may also be used to store the game history. One skilled in the art understands how to select a video file format and to store the game history frames as corresponding video frames in the format of the selected video file.
These files are named as illustrated in
The process of capturing the game history screens is similar to that of setting game options of a legacy game by the OS. That is, touch coordinates for the screen buttons and/or other widgets operative to display screens containing game history are stored in the game descriptor file (
In general, access to the display screens available for saving the game play history and accounting history of the EGM begin with screen 1000, illustrated in
In automatic operation under control of the OS 706 (
In order to save the features history of the legacy game, the OS 706 (of
The OS 706 then simulates activation of the current history button 1004 (of
After storing the game history information, and before installation of a downloaded legacy game, OS information is also captured to archive files, which in the illustrated embodiment are also video files. The following OS information is archived:
Screens representing OS information are captured by the same technique described above: the OS 706 (
When the OS 706 (
All information desired to be archived before installation of the legacy game is stored in this manner: simulating activation of appropriate on-screen buttons; capturing data representing desired screens; and appending the captured screens to a video format file.
Archived .f32 video files, containing game and OS data, are protected from unauthorized alteration. More specifically, a hash (e.g. SHA1) is calculated on the data in the .f32 file and is added to the game history log file(s) stored in /critical-data/Logs/partition of the hard disk drive (not shown) of the EGM. The game history log file(s) with the SHA1 hash is authenticated after power cycles or machine reboots. If any data changes in the f32 files or game history log itself, the EGM will fault and the RAM must be cleared to proceed.
The game descriptor file of
Number | Date | Country | |
---|---|---|---|
61406028 | Oct 2010 | US |