US20100093433A1 - Gaming system and gaming system processor module - Google Patents

Gaming system and gaming system processor module Download PDF

Info

Publication number
US20100093433A1
US20100093433A1 US12/575,960 US57596009A US2010093433A1 US 20100093433 A1 US20100093433 A1 US 20100093433A1 US 57596009 A US57596009 A US 57596009A US 2010093433 A1 US2010093433 A1 US 2010093433A1
Authority
US
United States
Prior art keywords
operating system
game
instance
gaming
component processes
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US12/575,960
Inventor
Zoran Tomicic
Drazen Lenger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aristocrat Technologies Australia Pty Ltd
Original Assignee
Aristocrat Technologies Australia Pty Ltd
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
Priority claimed from AU2008905247A external-priority patent/AU2008905247A0/en
Application filed by Aristocrat Technologies Australia Pty Ltd filed Critical Aristocrat Technologies Australia Pty Ltd
Assigned to ARISTOCRAT TECHNOLGIES AUSTRALIA PTY LIMITED reassignment ARISTOCRAT TECHNOLGIES AUSTRALIA PTY LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LENGER, DRAZEN, TOMICIC, ZORAN
Publication of US20100093433A1 publication Critical patent/US20100093433A1/en
Assigned to ARISTOCRAT TECHNOLOGIES AUSTRALIA PTY LIMITED reassignment ARISTOCRAT TECHNOLOGIES AUSTRALIA PTY LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 023637 FRAME: 0013. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: LENGER, DRAZEN, TOMICIC, ZORAN
Assigned to UBS AG, STAMFORD BRANCH reassignment UBS AG, STAMFORD BRANCH PATENT SECURITY AGREEMENT Assignors: ARISTOCRAT TECHNOLOGIES AUSTRALIA PTY LIMITED
Priority to US14/824,738 priority Critical patent/US10592060B2/en
Priority to US16/809,254 priority patent/US11249612B2/en
Priority to US16/884,800 priority patent/US11281350B2/en
Priority to US16/943,772 priority patent/US11385758B2/en
Priority to US16/943,764 priority patent/US11287939B2/en
Priority to US17/701,474 priority patent/US11662873B2/en
Assigned to BANK OF AMERICA, N.A. reassignment BANK OF AMERICA, N.A. NOTICE OF ASSIGNMENT OF SECURITY INTEREST Assignors: UBS AG, STAMFORD BRANCH
Priority to US18/305,232 priority patent/US20230266855A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof

Definitions

  • the present invention relates to gaming systems and processor modules therefore.
  • Electronic gaming machines and gaming systems incorporating one or more electronic gaming machines are known. Such gaming machines and systems are used to provide games, playable by users for their enjoyment.
  • a gaming system processor module adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • the gaming system processor module can have a virtual machine monitor to support the simultaneous execution of two or more operating system instances, wherein each operating system instance executes in its own virtual machine.
  • the processor module may include one or more physical processors. Each processor can have one or more processing cores.
  • each operating system instance can be selectively provided with direct access to one or more hardware resources. Any hardware resource access provided to an operating system instance can be exclusive to the operating system instance.
  • a first operating system instance acts as a host operating system and each further operating system instance acts as a guest operating system, and wherein access to hardware resources is allocated selectively to guest operating system instances under control of the host operating system.
  • the host operating system instance can be adapted to monitor the guest operating system instances and selectively restart a guest operating system instance, if necessary, when an execution error is detected in the guest operating system instance.
  • component processes related to game play execute in a first operating system instance and component processes related to game presentation execute in a second guest operating system instance.
  • the first and second operating system instances each execute a different type of operating system.
  • the first operating system type can be a LINUX operating system or variant thereof.
  • the second guest operating system can be a Microsoft Windows operating system.
  • each operating system instance can execute the same type of operating system.
  • a gaming system including:
  • a game controller including:
  • a program including computer readable instructions which when executed by a processor module of a game system adapt the processor module to support simultaneous execution of two or more operating system instances, to thereby enable execution of program code which enables play of a game, and execution of a the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • a method of gaming including the steps of:
  • the method can further include the step of selectively providing direct hardware access to each operating system instance.
  • component processes executed in the first operating system are component processes for implementing game play and component processes executed the further operating system instance are component processes for game presentation.
  • a computer readable medium including the above program code.
  • a data signal including the above program code.
  • An eighth aspect provides transmitting and receiving the above data signal.
  • FIG. 1 is a block diagram of the core components of a gaming system
  • FIG. 2 is a perspective view of a stand alone gaming machine
  • FIG. 3 is a block diagram of the functional components of a gaming machine
  • FIG. 4 is a schematic diagram of the functional components of a memory
  • FIG. 5 is a schematic diagram of a network gaming system
  • FIG. 6 is a further block diagram of a gaming system
  • FIG. 7 is a block diagram representative of an exemplary architecture for a gaming processor
  • FIG. 8 is a further block diagram of a gaming system.
  • At least one of the elements is hereby expressly defined to include a tangible medium such as a memory, DVD, CD, etc. storing the software and/or firmware.
  • a gaming system having a game controller with an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances.
  • the game controller is arranged to implement a game using to or more component software processes wherein at least one component process is executes using a first operating system instance and at least one other component process executed using a further operating system instance.
  • the gaming system can take a number of different forms.
  • a stand alone gaming machine is provided wherein all or most components to implement the game are present in a player operable gaming machine.
  • a distributed architecture wherein some of the components to implement the game are present in a player operable gaming machine and some of the components to implement the game are located remotely relative to the gaming machine.
  • a “thick client” architecture may be used wherein part of the game is executed on a player operable gaming machine and part of the game is executed remotely, such as by a gaming server; or a “thin client” architecture may be used wherein most of the game is executed remotely such as by a gaming server and a player operable gaming machine is used only to display audible and/or visible gaming information to the player and receive gaming inputs from the player.
  • an architecture may be provided wherein a gaming machine is networked to a gaming server and the respective functions of the gaming machine and the gaming server are selectively modifiable.
  • the gaming system may operate in stand alone gaming machine mode, “thick client” mode or “thin client” mode depending on the game being played, operating conditions, and so on.
  • Other variations will be apparent to persons skilled in the art.
  • the gaming system includes several core components.
  • the core components are a player interface 50 and a game controller 60 as illustrated in FIG. 1 .
  • the player interface is arranged to enable manual interaction between a player and the gaming system and for this purpose includes the input/output components for the player to enter instructions and play the game and observe the game outcomes.
  • Components of the player interface may vary from embodiment to embodiment but will typically include a credit mechanism 52 to enable a player to input credits and receive payouts, one or more displays 54 , a game play mechanism 56 including one or more input devices that enable a player to input game play instructions (e.g. to place betas wager), and one or more speakers 58 .
  • the game controller 60 is in data communication with the player interface and typically includes a processor 62 that processes the game play instructions in accordance with game play rules and outputs game play outcomes to the display.
  • the game play instructions are stored as program code in a memory 64 but can also be hardwired.
  • processor is used to refer generically to any device that can process game play instructions in accordance with game play rules and may include: a microprocessor, microcontroller, programmable logic device or other computational device, a general purpose computer (e.g. a PC) or a server.
  • FIG. 2 A gaming system in the form of a stand alone gaming machine 202 is illustrated in FIG. 2 .
  • the gaming machine 202 includes a console 12 having a display 14 on which are displayed representations of a game 16 that can be played by a player.
  • a mid-trim 20 of the gaming machine 202 houses a bank of buttons 22 for enabling a player to interact with the gaming machine, in particular during game play.
  • the mid-trim 20 also houses a credit input mechanism 24 which in this example includes a coin input chute 24 A and a bill collector 24 B.
  • Other credit input mechanisms may also be employed, for example, a card reader for reading a smart card, debit card or credit card.
  • gaming machines may configure for ticket in such that they have a ticket reader for reading tickets having a value and crediting the player based on the face value of the ticket.
  • a player marketing module (not shown) having a reading device may also be provided for the purpose of reading a player tracking device, for example as part of a loyalty program.
  • the player tracking device may be in the form of a card, flash drive or any other portable storage medium capable of being read by the reading device.
  • the player marketing module may provide an additional credit mechanism, either by transferring credits to the gaming machine from credits stored on the player tracking device or by transferring credits from a player account in data communication with the player marketing module.
  • a top box 26 may carry artwork 28 , including for example pay tables and details of bonus awards and other information or images relating to the game. Further artwork and/or information may be provided on a front panel 29 of the console 12 .
  • a coin tray 30 is mounted beneath the front panel 29 for dispensing cash payouts from the gaming machine 202 .
  • the display 14 shown in FIG. 2 is in the form of a video display unit, particularly a cathode ray tube screen device.
  • the display 14 may be a liquid crystal display, plasma screen, any other suitable video display unit, or the visible portion of an electromechanical device.
  • the top box 26 may also include a display, for example a video display unit, which may be of the same type as the display 14 , or of a different type.
  • FIG. 3 shows a block diagram of operative components of a typical gaming machine which may be the same as or different to the gaming machine of FIG. 2 .
  • the gaming machine 100 includes a game controller 101 having a processor 102 . Instructions and data to control operation of the processor 102 are stored in a memory 103 , which is in data communication with the processor 102 . Typically, the gaming machine 100 will include both volatile and non-volatile memory and more than one of each type of memory, with such memories being collectively represented by the memory 103 .
  • the gaming machine has hardware meters 104 for purposes including ensuring regulatory compliance and monitoring player credit, an input/output (I/O) interface 105 for communicating with peripheral devices of the gaming machine 100 .
  • the input/output interface 105 and/or the peripheral devices may be intelligent devices with their own memory for storing associated instructions and data for use with the input/output interface or the peripheral devices.
  • a random number generator module 113 generates random numbers for use by the processor 102 . Persons skilled in the art will appreciate that the reference to random numbers includes pseudo-random numbers.
  • a player interface 120 includes peripheral devices that communicate with the game controller 101 include one or more displays 106 , a touch screen and/or buttons 107 , speakers or audio output (not shown), a card and/or ticket reader 108 , a printer 109 , a bill acceptor and/or coin input mechanism 110 and a coin output mechanism 111 .
  • Additional hardware may be included as part of the gaming machine 100 , or hardware may be omitted based on the specific implementation.
  • buttons or touch screens are typically used in gaming machines to allow a player to place a wager and initiate a play of a game
  • any input device that enables the player to input game play instructions may be used.
  • a mechanical handle is used to initiate a play of the game.
  • the gaming machine 100 may include a communications interface, for example a network card 112 .
  • the network card may, for example, send status information, accounting information or other information to a central controller, server or database and receive data or commands from the central controller, server or database.
  • communications over a network may be via player marketing module—i.e. the player marketing module may be in data communication with one or more of the above devices and communicate with it on behalf of the gaming machine.
  • FIG. 4 shows a block diagram of the main components of an exemplary memory 103 .
  • the memory 103 includes RAM 103 A, EPROM 103 B and a mass storage device 103 C.
  • the RAM 103 A typically temporarily holds program files for execution by the processor 102 and related data.
  • the EPROM 103 B may be a boot ROM device and/or may contain some system or game related code.
  • the mass storage device 103 C is typically used to store game programs, the integrity of which may be verified and/or authenticated by the processor 102 using protected code from the EPROM 103 B or elsewhere.
  • operative components of the gaming machine 100 may be distributed, for example input/output devices 106 , 107 , 108 , 109 , 110 , 111 to be provided remotely from the game controller 101 .
  • FIG. 5 shows a gaming system 200 in accordance with an alternative embodiment.
  • the gaming system 200 includes a network 201 , which for example may be an Ethernet network.
  • Gaming machines 202 shown arranged in three banks 203 of two gaming machines 202 in FIG. 5 , are connected to the network 201 .
  • the gaming machines 202 provide a player operable interface and may be the same as the gaming machines 10 , 100 shown in FIGS. 2 and 3 , or may have simplified functionality depending on the requirements, guidelines, rules, and/or preferences for implementing game play. While banks 203 of two gaming machines are illustrated in FIG. 5 , banks of one, three or more gaming machines are also envisaged.
  • One or more displays 204 may also be connected to the network 201 .
  • the displays 204 may be associated with one or more banks 203 of gaming machines.
  • the displays 204 may be used to display representations associated with game play on the gaming machines 202 , and/or used to display other representations, for example promotional or informational material.
  • game server 205 implements part of the game played by a player using a gaming machine 202 and the gaming machine 202 implements part of the game. With this embodiment, as both the game server and the gaming device implement part of the game, they collectively provide a game controller.
  • a database management server 206 may manage storage of game programs and associated data for downloading or access by the gaming devices 202 in a database 206 A.
  • Jackpot server 207 will be provided to perform accounting functions for the Jackpot game.
  • a loyalty program server 212 may also be provided.
  • game server 205 implements most or all of the game played by a player using a gaming machine 202 and the gaming machine 202 essentially provides only the player interface. With this embodiment, the game server 205 provides the game controller. The gaming machine will receive player instructions, pass these to the game server which will process them and return game play outcomes to the gaming machine for display. In a thin client embodiment, the gaming machines could be computer terminals, e.g. PCs running software that provides a player interface operable using standard computer input and output components. Other client/server configurations are possible, and further details of a client/server architecture can be found in WO 2006/052213 and PCT/SE2006/000559, the disclosures of which are incorporated herein by reference.
  • Servers are also typically provided to assist in the administration of the gaming network 200 , including for example a gaming floor management server 208 , and a licensing server 209 to monitor the use of licenses relating to particular games.
  • An administrator terminal 210 is provided to allow an administrator to run the network 201 and the devices connected to the network.
  • the gaming system 200 may communicate with other gaming systems, other local networks, for example a corporate network, and/or a wide area network such as the Internet, for example through a firewall 211 .
  • other local networks for example a corporate network
  • a wide area network such as the Internet
  • functionality at the server side of the network may be distributed over a plurality of different computers.
  • elements may be run as a single “engine” on one server or a separate server may be provided.
  • the game server 205 could run a random generator engine.
  • a separate random number generator server could be provided.
  • a plurality of game servers could be provided to run different games or a single game server may run a plurality of different games based on the terminals.
  • Embodiments of the gaming system described in detail herein use an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances. Games can be implemented in this system using two or more cooperating component processes such that at least one component process executes using a first operating system instance and one or more other component processes execute using a further operating system instance. Thus, game execution is partitioned such that cooperating component processes execute using different operating system instances.
  • Each of the operating system instances may be a different operating system type.
  • the first operating system may be a LINUX operating system and a second operating system may be a Microsoft Windows® operating system.
  • Each operating system instance may be selectively provided direct access to one or more hardware resources.
  • Other operating system types may also be used.
  • the game machine 600 includes a game controller 660 and a player interface 650 .
  • the player interface 650 includes a credit mechanism 652 , displays 654 , a game play mechanism 656 and speakers 658 .
  • the controller 660 includes a processor 662 and memory 664 .
  • the memory 664 stores game data including software programs for two or more component processes 640 , 645 which, when executed, implement the game.
  • the processor 662 is adapted to support two or more operating system instances.
  • the processor 662 can be a processor module, such as a central processor unit (CPU) having one or more physical processors, or an electronic processing arrangement including one or more physical processors.
  • the electronic processing arrangement may be centralised in one processor module. Alternatively the electronic processing arrangement may be distributed, for example where two or more CPUs are connected in a multi processor environment.
  • the processors may be single or multi-core processors.
  • the processor 662 is running two operating system instances 666 , 668 .
  • a first component process executes 640 ′ in the first operating system 666 and a second component process executes 645 ′ in the second operating system 668 .
  • Using two or more operating system instances enables different processes to execute independently of one another.
  • access to hardware resources can be selectively allocated to different operating systems.
  • the first operating system 666 is used for executing game play processes 640 ′ and is therefore allocated access to hardware resources for the credit mechanism 652 and game play mechanism 656 of the player interface 650 .
  • the second operating system 668 is used for executing component processes for game presentation 645 ′ and is therefore allocated access to hardware resources for the displays 654 and speakers 658 of the player interface 650 .
  • the execution of game processes and hardware access is separated into two partitions 630 , 635 with the first partition 630 being for game play and the second partition 635 being for game presentation.
  • Allocation of hardware resources separately to each partition is optional.
  • only one operating system instance is provided direct access to hardware resources.
  • Partitioning of game component process execution using different operating system instances can exhibit a number of advantages. For example, in some embodiments partitioning can enhance security by separating player account and credit handling from other game processes. For example, resistance to hacking of player accounts may be increased by quarantining player account and credit handling from processing of inputs from the player interface other than the credit mechanism.
  • one operating system instance can be used for providing the game machine platform and another one or more operating systems used for execution of the game per se, for example the platform operating system instance may handle all I/O and mathematical functions and the one or more operating system instances for implementing the game handle execution of the game play process and presentation. This can minimise risk of interference or timing delay for the mathematical functions due to processing of other aspects of game play or presentation, such as playing animated graphics. Interference or security risks can be even further mitigated in embodiments where access to hardware resources can be selectively allocated to different operating system instances.
  • the two or more component processes can be adapted to execute in different operating system types or versions. This can be advantageous for portability or compatibility of games between different machines. Further, partitioning games into cooperating component processes adapted to execute in different operating systems enables a game to be designed and implements in a modular fashion. This has the advantage of enabling component processes to be selectively modified or upgraded, for example for compatibility with different hardware or selectively upgrading different elements of the game such as the game graphics.
  • Producing a game in this modular fashion may also be advantageous for obtaining regulatory approval of games initially and in the case of upgrades.
  • game play component processes which deal with credit handling, game outcome generation, random number generation, player tracking etc could be adapted to execute using one operating system instance.
  • the component processes for game presentation such as graphics and sound can be adapted to execute in another operating system instance.
  • Game data such as game outcome data, can be provided to the game presentation component processes of one operating system instance by game execution component processes of the other operating system instance. This data can be passed between the two operating system instances using a data transfer protocol or signal.
  • the game presentation component process cannot influence game play due to the operating system separation.
  • the requirement for regulatory approval of the game presentation component processes may be different and less strict than the regulatory approval requirements for the game play processes.
  • the game play process may be granted regulatory approval and then each of the sets of game presentation component processes assessed and approved individually. Further, regulatory approval may be straightforward and readily obtained where only the presentation of a game is changed, for example changing a game theme from a circus to a seaside theme, without altering the actual game play process.
  • a virtual machine monitor or hypervisor 720 is provided to enable execution of multiple virtual machines on the same physical processor hardware 710 , this can be referred to as virtualisation or paravirtualisation.
  • the physical hardware 710 may include one or more central processor units (CPUs) 712 a - n and a variety of memory resources 714 .
  • the virtual machine monitor (VMM) 720 is a basic abstraction layer of software that sits directly on the hardware 710 below any operating systems 730 , 740 .
  • the VMM performs scheduling of process execution across the physical hardware 710 , including scheduling across multiple processors 712 a - n and processor cores in the case of multi-core processors.
  • the VMM also abstracts the hardware to define the virtual machines for the various operating systems.
  • the virtual machine hardware architecture apparent and accessible to the operating system executing within that machine may be different from the actual physical hardware architecture.
  • the sophistication of the VMM used may place constraints on the physical hardware architecture which may be used.
  • the sophistication of the VMM will also determine the flexibility of the abstraction of hardware to the different virtual machines. For example, a simple VMM may only be able to operate in a single processor hardware environment.
  • the abstracted hardware for each virtual machine may be an image of the physical processor hardware and hardware peripherals only visible to one virtual machine.
  • a sophisticated VMM may be capable of operating in a multi processor environment and enable different abstracted hardware architectures for each virtual machine.
  • the VMM 720 of FIG. 7 operates at the lowest and most privileged layer in the architecture.
  • the VMM 720 can host multiple guest operating systems (OS), each executing within a secure virtual machine 730 , 740 .
  • the VMM 720 is responsible for processing scheduling and memory partitioning of the various virtual machines running on the same physical hardware 710 .
  • the VMM 720 abstracts the hardware for the virtual machines 730 , 740 and controls the execution of the virtual machines 730 , 740 which share a common hardware processing environment 710 .
  • the operating system running in each virtual machine may be a modified or unmodified version of an operating system depending on the level of virtualisation. For example, where full virtualisation is used, unmodified operating systems such as standard windows or other unmodified operating systems may be used.
  • a VMM may support a combination of fully virtualised and paravirtualised virtual machines.
  • Each virtual machine 730 , 740 can be referred to as a domain.
  • the operating system manages its own applications.
  • Managing the applications within an OS includes responsibility for scheduling each application 750 , 760 within time allotted to the virtual machine 730 , 740 by the VMM 720 .
  • each operating system schedules the execution of its applications as if it were operating on its own stand alone hardware.
  • the VMM allocates processing capacity to the respective virtual machines and schedules the execution from each virtual machine on the physical hardware.
  • the VMM can also include a mechanism for enabling data to be exchanged between processes executing in different virtual machines, for example using an inter domain signalling protocol.
  • this inter-domain data exchange enables data, such as game outcome data, to be transferred from an operating system executing component processes for game play to an operating system executing component processes for game outcome presentation.
  • the VMM can also be adapted to selectively enable access to peripheral hardware devices. For example, by virtualising hardware devices 770 or their drivers 780 , 782 , 784 in a virtual machine, the peripheral hardware devices become accessible to that virtual machine.
  • the VMM may selectively virtualise peripheral devices in a virtual machine, thus only making some peripheral devices accessible to the operating system of the virtual machine. For example, in a gaming system peripheral devices for handling player credits, such as a card reader, can be made accessible only to one operating system and invisible to others, which can have security advantages.
  • each virtual machine can use a different operating system, enabling advantageous operating system and hardware combinations to be chosen. For example, the virtual machine executing a windows operating system having enhanced graphics handling capabilities may be granted direct hardware access to the graphics card.
  • the applications executed in each operating system 730 , 740 are the component processes 750 , 760 for implementing the game.
  • the two sets of component processes 750 , 760 cooperate to implement the game.
  • the first set of component processes 750 can be processes related to processing game play instructions and generation of game outcomes.
  • the second set of component processes 760 can be game presentation processes, for example game graphics, sounds and controlling other aspects of a game machine such as flashing lights.
  • game result data generated by the first set of component processes 750 is provided to the second set of component processes 760 for presentation to the player.
  • the game presentation processes do not influence the result of the game. This can offer security advantages and flexibility in game generation.
  • VMM for implementing the described architecture
  • Xen® hypervisor is an open source VMM adapted for use with processor hardware provided from several manufacturers, for example the Xen® hypervisor is adapted for use with IA-32, x86, x86-64, IA-64 and PowerPC 970 architectures.
  • Xen® can support a number of different guest operating systems including Windows®, Linux®, Solaris®, and various versions of the BSD operating system.
  • Xen® is also adapted to take advantage of some hardware virtualisation support in processors manufactured by Intel® and AMD® which enables the hypervisor to grant direct hardware access to guest operating systems.
  • domain 0 can have special management privileges for interaction with other virtual machines and special hardware access privileges.
  • the domain 0 operating system instance is booted initially on power up.
  • the operating system for domain 0 is a modified version of Linux.
  • Domain 0 includes management and control functions for building other virtual machines.
  • further operating system instances can be booted as guest domains from within domain 0 using the management and control functions.
  • a windows operating system may be booted in a guest domain and a further guest domain for a further Linux operating system instance.
  • Each guest domain can be referred to as a domain U or unprivileged domain.
  • the management and control functions of domain 0 can also be used to selectively allocate access to physical hardware resources to guest operating system instances and the hardware access can be exclusive.
  • hardware access can be allocated to a domain at PCI (peripheral component interconnect) level in a manner which makes the hardware visible and accessible to the allocated domain only, say a guest domain U with a windows operating system instance, and invisible to the other domains including the host domain 0 .
  • PCI peripheral component interconnect
  • Domain 0 can also perform administrative tasks such as suspending and resuming other virtual machines. For example, where there is a fault or crash in a guest domain, the guest operating system instance may be restarted under the control of domain 0 while processing continues in other domains.
  • An advantage of this is that where an operating system is less stable or the code execution in a virtual machine is potentially unstable, this operating system instance can be re-booted independent of processing occurring in other virtual machines, if necessary. For example, in a gaming context graphics processes may execute in one domain and game play processes such as result generation and award handling may execute in another domain. If there is a problem with the graphics processing, then the operating system of the graphics domain may be restarted without disturbing the game play processing.
  • FIG. 8 illustrates a game system having an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances.
  • the system includes a game controller 800 and a player interface 850 .
  • the game controller includes memory 810 , processor 820 , and peripheral hardware 886 .
  • the player interface 850 includes all the hardware accessible to the player, including a credit mechanism 852 such as a card/ticket reader or coin mechanism, game play mechanism 856 such as a touch screen or buttons, one or more displays 854 and speakers 858 . In a case where a touch screen is included as part of the game play mechanism 856 the touch screen may also be one of the displays 854 .
  • the game controller 850 processor 820 can be an electronic processing arrangement including one or more processors, each having one more processor cores.
  • the processor 820 is adapted to support simultaneous execution of two operating system instances, with a first operating system instance running in domain 0 860 and a second operating system instance running in domain U 870 .
  • the first, domain 0 , operating system instance 860 includes management and control functions 862 for starting and monitoring the second operating system instance 870 .
  • the management and control functions 862 can also be used to control access to peripheral hardware for each operating system 860 , 870 .
  • a game is implemented using cooperating component processes including an outcome generator process 864 , an input/output handling process 866 , a prize evaluator 868 , a display controller 875 and a sound controller 878 .
  • the component processes are partitioned such that the outcome generator 864 , input/output handler 866 and prize evaluator 868 component processes for implementing game play execute using the first operating system instance 860 and the display controller 875 and sound controller 878 component processes for presenting game results execute using the second operating system instance 870 .
  • the memory 810 is shared between the two operating system instances.
  • Memory 810 is used to store data such as game rules 840 accessed by the component processes for game play, in particular for generating and evaluating game outcomes, and game presentation theme data 845 which can be accessed by the game presentation component processes.
  • Other data such as player data 830 may be accessed by both the game play and game presentation component processes. For example, during the course of game play, player data may be updated by the game play component processes with a players current credit balance, bet amount, selected pay lines, win amount etc. This data may be read by game presentation component processes for display.
  • a virtual machine monitor VMM (not shown) is responsible for scheduling processing on the physical hardware and memory access for the two domains 860 , 870 .
  • the first virtual machine 860 uses a version of the Linux® operating system.
  • the game component processes executed within this operating system instance are processes related to game play. These processes can include:
  • the second virtual machine 870 uses a Windows® operating system.
  • the game component processes executed within this operating system instance are processes related to game presentation, including video processing, graphical presentation of game outcomes and graphical user interface (GUI) presentation. Sound processing may also be included in this operating system instance. Partitioning the game component processes in this manner enables latest graphical processing features of the Windows® operating system to be taken advantage of for presenting the game.
  • GUI graphical user interface
  • the graphical processing capabilities of Windows® operating system referred to above may be superseded by an alternative operating system or operating system version.
  • the system may be upgraded by producing an alternative embodiment using the alternative operating system.
  • the host operating system instance and component processes therein executed to perform the game may remain the same.
  • the second guest operating system instance and the component processes executed therein can be changed to the new operating system or version having improved graphical processing capabilities.
  • regulatory approval for the upgraded gaming system may be easier to obtain than for an entirely new gaming system.
  • Some of the game play processes executing in the first virtual machine 860 require access to peripheral hardware.
  • the game play processes 864 , 866 , 868 executing in the first virtual machine 860 may require access to the credit mechanism 852 , network card 882 , random number generator 880 , meters 884 and game play mechanism 856 .
  • Domain 0 in the Xen® architecture is a privileged domain and therefore, by default, is allocated access to all peripheral hardware. This means that all the peripheral hardware will be visible in domain 0 but not visible or directly accessible to any guest domain U. This has an advantage in that any processing in a guest domain U cannot interact with peripheral hardware it does not have access to.
  • graphics processing in domain U cannot affect any credit input or payed out as the credit mechanism is not visible or accessible to domain U.
  • the processing in domain U 870 may not require any direct hardware access or hardware can be emulated in the domain U virtual machine so it appears to domain U that the operating system has access to the hardware, but any data exchanged between a peripheral hardware device and a process in domain U is actually handled by domain 0 .
  • processor and VMM architectures can support granting direct hardware access to domain U.
  • domain 0 can selectively allocate direct access to hardware to domain U.
  • domain U can be granted direct access to graphics or video cards and sound cards at PCI level for game presentation.
  • the virtual machines can be configured so that direct access is selectively allocated for different hardware devices and the access can be exclusive.
  • domain U 870 can be granted direct access to graphics and sound cards used for game graphic and sound processing by the display controller 875 and sound controller 878 and driving the displays 854 and speakers 858 respectively.
  • Other hardware can remain invisible to domain U, for example there is no need for domain U to access the random number generator 880 or credit mechanism 852 so this hardware is not made visible to domain U 870 .
  • the virtual machines can be configured such that direct hardware access to a device is granted exclusively to a virtual machine.
  • Exclusive access to a hardware device for domain U will make the device visible to the operating system in domain U and invisible to the operating system in domain 0 .
  • exclusive access to the video and sound cards to domain U will make these cards visible to processes executing in domain U but invisible and inaccessible to processes executing in domain 0 .
  • Granting direct access to hardware to a guest domain 870 can be controlled by the host domain, domain 0 860 , using the management and control functionality 862 provided in that domain.
  • Configuring the virtual machines may be performed automatically using program code or under the control of an administrator. For example, when starting up a game machine an administrator may log in to domain 0 820 and, using the management and control functions 862 , configure the two or more domains to selectively allocate hardware access to one or more domains.
  • the display controller 875 in domain U 870 reads game presentation data from memory, processes the presentation data and presents game information on a display 854 , for example a screen including game play instructions and an invitation to play the game.
  • a player uses the credit mechanism 852 to input credit for wagers and the game play mechanism 856 to input game play instructions, for example the number of win lines to play and the amount wagered for each win line.
  • These inputs are processed in domain 0 860 by the I/O interface process 866 and player data 830 stored in memory 810 .
  • Data may also be sent to a connected game server using the network card 882 , for example player tracking data sent to a player loyalty/marketing server or wager data to a bonus server.
  • the outcome generator 864 operates in response to the player's operation of game play mechanism 856 to generate a game outcome which will then be evaluated by prize evaluator 868 .
  • the first part of forming the game outcome is for a random result to be generated, for example using a random number generator 880 and processing the random result by the outcome generator 864 in accordance with game rules 840 .
  • each spinning reel is simulated using a set of symbols having a defined sequence.
  • the symbol image data for each symbol set can be stored in the presentation data 845 .
  • a generated random number is used by the outcome generator 864 to determine for each set of symbols a position in the sequence representative of a stop position for the spinning reel.
  • a selected outcome symbol set can be determined from the stop positions and the number of symbols to be selected from each reel, for example three symbols for each of five reels.
  • the prize evaluator 868 is provided with selected symbol set which is evaluated in accordance with game rules 840 to determine whether a prize is to be awarded for the game outcome. For example, the prize evaluator compares the selected symbol set with prize winning symbol combinations and prize tables stored in the game rules 840 to determine any prize to award. Data indicating any winning combinations and prize data is then stored in player data.
  • the stop position data or selected symbol data for each reel and any prize data can be provided to the display controller 875 in domain U for presentation of the game outcome symbol set.
  • the stop position data may be stored in memory 810 and a signal or interrupt, triggered by the outcome generator and handled by the VMM, sent to the display controller and sound controller in domain U to advise that a result is ready for display.
  • the display controller 875 uses the stop position data and symbol image data to cause a set of symbols to be displayed on display 854 at a set of display positions. For example, for each of five sets, the three symbols in sequence after the stop position for that set may be displayed such that symbols are displayed at fifteen display positions on display 854 .
  • the display controller may also generate and play an animation of the reels spinning prior to displaying the outcome symbol set.
  • the display controller can also highlight any winning symbol combinations based on the prize data, for example by changing the colour of a winning pay line or flashing symbols of a winning combination.
  • Other data such as a credit value awarded for the outcome and player's remaining credit balance can also be read from player data and displayed.
  • Sounds may also be played by the sound controller based on the outcome, for example sounds representative of the reels spinning may be played in conjunction with the animation of the spinning reels and a selected tune may be played for a winning outcome.
  • This example illustrates how game presentation processing can be performed independent of game play processing.
  • the display controller and sound controller simply read data from the shared memory in order to present the game outcomes.
  • the presentation game processing may be provided read only memory access or alternatively data passed between domains may only be temporarily stored, for example in buffer or register memory, so the processing in domain U does not directly access player data 830 . It should be appreciated that partitioning processing in this manner means that presentation processing in domain U can not influence the game play processing in domain 0 .
  • this random number generator may be isolated from other game processes in its own domain U. This may be advantages for maintaining the security and integrity of the random number generator or enabling the random number generator to be implemented in an operating system different from other operating systems used for game processing.
  • an embodiment could be embodied in program code for adapting a processor to support two or more operating system instances and implement a game as described above.
  • the program code could be supplied in a number of ways, for example on a computer readable medium, such as a disc or a memory (for example, that could replace part of memory 103 ) or as a data signal (for example, by downloading it from a server).
  • hardware access may be shared between domains.
  • an I/O interface such as a touch screen may be visible in both domain 0 860 for processing input game play instructions and domain U for presenting game instructions or outcomes.
  • the hardware may be emulated in one of the domains.
  • access to the hardware is scheduled between the hardware sharing virtual machines by the VMM.
  • the present invention contemplates methods, systems and program products on any electronic device and/or machine-readable media suitable for accomplishing its operations. Certain embodiments of the present invention may be implemented using an existing computer processor and/or by a special purpose computer processor incorporated for this or another purpose or by a hardwired system, for example.
  • Embodiments within the scope of the present invention include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon.
  • machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor.
  • machine-readable media may comprise RAM, ROM, PROM, EPROM, EEPROM, Flash, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor.
  • Machine-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.

Abstract

A gaming system and processor module are therefore adapted to support simultaneous execution of two or more operating system instances. Program code is provided for play of the game uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance. Each operating system instance may execute in its own virtual machine.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application claims the benefit of priority to Australian Provisional Patent Application No. 2008905247, filed on Oct. 9, 2008, entitled “GAMING SYSTEM and GAMING SYSTEM PROCESSOR MODULE”, which is herein incorporated by reference in its entirety.
  • FIELD
  • The present invention relates to gaming systems and processor modules therefore.
  • BACKGROUND
  • Electronic gaming machines and gaming systems incorporating one or more electronic gaming machines are known. Such gaming machines and systems are used to provide games, playable by users for their enjoyment.
  • While such gaming systems provide users with enjoyment, a need exists for alternative gaming systems.
  • SUMMARY OF THE INVENTION
  • According to a first aspect, there is provided a gaming system processor module adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • The gaming system processor module can have a virtual machine monitor to support the simultaneous execution of two or more operating system instances, wherein each operating system instance executes in its own virtual machine. The processor module may include one or more physical processors. Each processor can have one or more processing cores.
  • In some embodiments each operating system instance can be selectively provided with direct access to one or more hardware resources. Any hardware resource access provided to an operating system instance can be exclusive to the operating system instance.
  • In an embodiment a first operating system instance acts as a host operating system and each further operating system instance acts as a guest operating system, and wherein access to hardware resources is allocated selectively to guest operating system instances under control of the host operating system.
  • The host operating system instance can be adapted to monitor the guest operating system instances and selectively restart a guest operating system instance, if necessary, when an execution error is detected in the guest operating system instance.
  • In one embodiment, component processes related to game play execute in a first operating system instance and component processes related to game presentation execute in a second guest operating system instance.
  • In some embodiments the first and second operating system instances each execute a different type of operating system. For example, the first operating system type can be a LINUX operating system or variant thereof. The second guest operating system can be a Microsoft Windows operating system.
  • Alternatively each operating system instance can execute the same type of operating system.
  • In an embodiment component processes executed using the second guest operating system include game graphics component processes. In this embodiment the second guest operating system may be provided access to game system hardware resources for displaying game graphics.
  • According to a second aspect, there is provided a gaming system including:
      • a player interface arranged to enable a player to enter instructions to play a game and including one or more displays to display game results; and
      • a game controller in data communication with the player interface, the game controller including:
        • a memory; and
        • an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • According to a third aspect, there is provided a game controller including:
      • a memory; and
      • an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • According to a fourth aspect, there is provided a program including computer readable instructions which when executed by a processor module of a game system adapt the processor module to support simultaneous execution of two or more operating system instances, to thereby enable execution of program code which enables play of a game, and execution of a the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
  • According to a fifth aspect, there is provided a method of gaming including the steps of:
      • providing program code which enables play of a game, wherein execution of the program code uses two or more cooperating component processes;
      • executing at least one of the component processes using a first operating system instance; and
      • executing at least one other cooperating component process using a further operating system instance, wherein the execution of the component processes in the first and further operating systems cooperates to implement the game.
  • The method can further include the step of selectively providing direct hardware access to each operating system instance.
  • In an embodiment the component processes executed in the first operating system are component processes for implementing game play and component processes executed the further operating system instance are component processes for game presentation.
  • According to a sixth aspect there is provided a computer readable medium including the above program code.
  • According to a seventh aspect there is provided a data signal including the above program code.
  • An eighth aspect provides transmitting and receiving the above data signal.
  • BRIEF DESCRIPTION OF DRAWINGS
  • Certain exemplary embodiments of the invention will now be described with reference to the accompanying drawings in which:
  • FIG. 1 is a block diagram of the core components of a gaming system;
  • FIG. 2 is a perspective view of a stand alone gaming machine;
  • FIG. 3 is a block diagram of the functional components of a gaming machine;
  • FIG. 4 is a schematic diagram of the functional components of a memory;
  • FIG. 5 is a schematic diagram of a network gaming system;
  • FIG. 6 is a further block diagram of a gaming system;
  • FIG. 7 is a block diagram representative of an exemplary architecture for a gaming processor;
  • FIG. 8 is a further block diagram of a gaming system.
  • Features, further aspects, and advantages of the present invention will become apparent from the following description of embodiments thereof, by way of example only, with reference to the accompanying drawings. Also, various embodiments of the aspects described in the preceding paragraphs will be apparent from the appended claims, the following description and/or the accompanying drawings. It should be understood, however, that the present invention is not limited to the arrangements and instrumentality shown in the attached drawings.
  • DETAILED DESCRIPTION
  • Although the following discloses example methods, systems, articles of manufacture, and apparatus including, among other components, software executed on hardware, it should be noted that such methods and apparatus are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware, or in any combination of hardware, software, and/or firmware. Accordingly, while the following describes example methods, systems, articles of manufacture, and apparatus, the examples provided are not the only way to implement such methods, systems, articles of manufacture, and apparatus.
  • When any of the appended claims are read to cover a purely software and/or firmware implementation, in at least one embodiment, at least one of the elements is hereby expressly defined to include a tangible medium such as a memory, DVD, CD, etc. storing the software and/or firmware.
  • Referring to the drawings, there is shown a gaming system having a game controller with an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances. The game controller is arranged to implement a game using to or more component software processes wherein at least one component process is executes using a first operating system instance and at least one other component process executed using a further operating system instance.
  • The gaming system can take a number of different forms. In a first form, a stand alone gaming machine is provided wherein all or most components to implement the game are present in a player operable gaming machine.
  • In a second form, a distributed architecture is provided wherein some of the components to implement the game are present in a player operable gaming machine and some of the components to implement the game are located remotely relative to the gaming machine. For example, a “thick client” architecture may be used wherein part of the game is executed on a player operable gaming machine and part of the game is executed remotely, such as by a gaming server; or a “thin client” architecture may be used wherein most of the game is executed remotely such as by a gaming server and a player operable gaming machine is used only to display audible and/or visible gaming information to the player and receive gaming inputs from the player.
  • However, it will be understood that other arrangements are envisaged. For example, an architecture may be provided wherein a gaming machine is networked to a gaming server and the respective functions of the gaming machine and the gaming server are selectively modifiable. For example, the gaming system may operate in stand alone gaming machine mode, “thick client” mode or “thin client” mode depending on the game being played, operating conditions, and so on. Other variations will be apparent to persons skilled in the art.
  • Irrespective of the form, the gaming system includes several core components. At the broadest level, the core components are a player interface 50 and a game controller 60 as illustrated in FIG. 1. The player interface is arranged to enable manual interaction between a player and the gaming system and for this purpose includes the input/output components for the player to enter instructions and play the game and observe the game outcomes.
  • Components of the player interface may vary from embodiment to embodiment but will typically include a credit mechanism 52 to enable a player to input credits and receive payouts, one or more displays 54, a game play mechanism 56 including one or more input devices that enable a player to input game play instructions (e.g. to place betas wager), and one or more speakers 58.
  • The game controller 60 is in data communication with the player interface and typically includes a processor 62 that processes the game play instructions in accordance with game play rules and outputs game play outcomes to the display. Typically, the game play instructions are stored as program code in a memory 64 but can also be hardwired. Herein the term “processor” is used to refer generically to any device that can process game play instructions in accordance with game play rules and may include: a microprocessor, microcontroller, programmable logic device or other computational device, a general purpose computer (e.g. a PC) or a server.
  • A gaming system in the form of a stand alone gaming machine 202 is illustrated in FIG. 2. The gaming machine 202 includes a console 12 having a display 14 on which are displayed representations of a game 16 that can be played by a player. A mid-trim 20 of the gaming machine 202 houses a bank of buttons 22 for enabling a player to interact with the gaming machine, in particular during game play. The mid-trim 20 also houses a credit input mechanism 24 which in this example includes a coin input chute 24A and a bill collector 24B. Other credit input mechanisms may also be employed, for example, a card reader for reading a smart card, debit card or credit card. Other gaming machines may configure for ticket in such that they have a ticket reader for reading tickets having a value and crediting the player based on the face value of the ticket. A player marketing module (not shown) having a reading device may also be provided for the purpose of reading a player tracking device, for example as part of a loyalty program. The player tracking device may be in the form of a card, flash drive or any other portable storage medium capable of being read by the reading device. In some embodiments, the player marketing module may provide an additional credit mechanism, either by transferring credits to the gaming machine from credits stored on the player tracking device or by transferring credits from a player account in data communication with the player marketing module.
  • A top box 26 may carry artwork 28, including for example pay tables and details of bonus awards and other information or images relating to the game. Further artwork and/or information may be provided on a front panel 29 of the console 12. A coin tray 30 is mounted beneath the front panel 29 for dispensing cash payouts from the gaming machine 202.
  • The display 14 shown in FIG. 2 is in the form of a video display unit, particularly a cathode ray tube screen device. Alternatively, the display 14 may be a liquid crystal display, plasma screen, any other suitable video display unit, or the visible portion of an electromechanical device. The top box 26 may also include a display, for example a video display unit, which may be of the same type as the display 14, or of a different type.
  • FIG. 3 shows a block diagram of operative components of a typical gaming machine which may be the same as or different to the gaming machine of FIG. 2.
  • The gaming machine 100 includes a game controller 101 having a processor 102. Instructions and data to control operation of the processor 102 are stored in a memory 103, which is in data communication with the processor 102. Typically, the gaming machine 100 will include both volatile and non-volatile memory and more than one of each type of memory, with such memories being collectively represented by the memory 103.
  • The gaming machine has hardware meters 104 for purposes including ensuring regulatory compliance and monitoring player credit, an input/output (I/O) interface 105 for communicating with peripheral devices of the gaming machine 100. The input/output interface 105 and/or the peripheral devices may be intelligent devices with their own memory for storing associated instructions and data for use with the input/output interface or the peripheral devices. A random number generator module 113 generates random numbers for use by the processor 102. Persons skilled in the art will appreciate that the reference to random numbers includes pseudo-random numbers.
  • In the example shown in FIG. 3, a player interface 120 includes peripheral devices that communicate with the game controller 101 include one or more displays 106, a touch screen and/or buttons 107, speakers or audio output (not shown), a card and/or ticket reader 108, a printer 109, a bill acceptor and/or coin input mechanism 110 and a coin output mechanism 111. Additional hardware may be included as part of the gaming machine 100, or hardware may be omitted based on the specific implementation. For example, while buttons or touch screens are typically used in gaming machines to allow a player to place a wager and initiate a play of a game any input device that enables the player to input game play instructions may be used. For example, in some gaming machines a mechanical handle is used to initiate a play of the game.
  • In addition, the gaming machine 100 may include a communications interface, for example a network card 112. The network card may, for example, send status information, accounting information or other information to a central controller, server or database and receive data or commands from the central controller, server or database. In embodiments employing a player marketing module, communications over a network may be via player marketing module—i.e. the player marketing module may be in data communication with one or more of the above devices and communicate with it on behalf of the gaming machine.
  • FIG. 4 shows a block diagram of the main components of an exemplary memory 103. The memory 103 includes RAM 103A, EPROM 103B and a mass storage device 103C. The RAM 103A typically temporarily holds program files for execution by the processor 102 and related data. The EPROM 103B may be a boot ROM device and/or may contain some system or game related code. The mass storage device 103C is typically used to store game programs, the integrity of which may be verified and/or authenticated by the processor 102 using protected code from the EPROM 103B or elsewhere.
  • It is also possible for the operative components of the gaming machine 100 to be distributed, for example input/ output devices 106,107,108,109,110,111 to be provided remotely from the game controller 101.
  • FIG. 5 shows a gaming system 200 in accordance with an alternative embodiment. The gaming system 200 includes a network 201, which for example may be an Ethernet network. Gaming machines 202, shown arranged in three banks 203 of two gaming machines 202 in FIG. 5, are connected to the network 201. The gaming machines 202 provide a player operable interface and may be the same as the gaming machines 10,100 shown in FIGS. 2 and 3, or may have simplified functionality depending on the requirements, guidelines, rules, and/or preferences for implementing game play. While banks 203 of two gaming machines are illustrated in FIG. 5, banks of one, three or more gaming machines are also envisaged.
  • One or more displays 204 may also be connected to the network 201. For example, the displays 204 may be associated with one or more banks 203 of gaming machines. The displays 204 may be used to display representations associated with game play on the gaming machines 202, and/or used to display other representations, for example promotional or informational material.
  • In a thick client embodiment, game server 205 implements part of the game played by a player using a gaming machine 202 and the gaming machine 202 implements part of the game. With this embodiment, as both the game server and the gaming device implement part of the game, they collectively provide a game controller. A database management server 206 may manage storage of game programs and associated data for downloading or access by the gaming devices 202 in a database 206A. Typically, if the gaming system enables players to participate in a Jackpot game, a Jackpot server 207 will be provided to perform accounting functions for the Jackpot game. A loyalty program server 212 may also be provided.
  • In a thin client embodiment, game server 205 implements most or all of the game played by a player using a gaming machine 202 and the gaming machine 202 essentially provides only the player interface. With this embodiment, the game server 205 provides the game controller. The gaming machine will receive player instructions, pass these to the game server which will process them and return game play outcomes to the gaming machine for display. In a thin client embodiment, the gaming machines could be computer terminals, e.g. PCs running software that provides a player interface operable using standard computer input and output components. Other client/server configurations are possible, and further details of a client/server architecture can be found in WO 2006/052213 and PCT/SE2006/000559, the disclosures of which are incorporated herein by reference.
  • Servers are also typically provided to assist in the administration of the gaming network 200, including for example a gaming floor management server 208, and a licensing server 209 to monitor the use of licenses relating to particular games. An administrator terminal 210 is provided to allow an administrator to run the network 201 and the devices connected to the network.
  • The gaming system 200 may communicate with other gaming systems, other local networks, for example a corporate network, and/or a wide area network such as the Internet, for example through a firewall 211.
  • Persons skilled in the art will appreciate that in accordance with known techniques, functionality at the server side of the network may be distributed over a plurality of different computers. For example, elements may be run as a single “engine” on one server or a separate server may be provided. For example, the game server 205 could run a random generator engine. Alternatively, a separate random number generator server could be provided. Further, persons skilled in the art will appreciate that a plurality of game servers could be provided to run different games or a single game server may run a plurality of different games based on the terminals.
  • Embodiments of the gaming system described in detail herein use an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances. Games can be implemented in this system using two or more cooperating component processes such that at least one component process executes using a first operating system instance and one or more other component processes execute using a further operating system instance. Thus, game execution is partitioned such that cooperating component processes execute using different operating system instances.
  • Each of the operating system instances may be a different operating system type. For example the first operating system may be a LINUX operating system and a second operating system may be a Microsoft Windows® operating system. Each operating system instance may be selectively provided direct access to one or more hardware resources. Other operating system types may also be used.
  • An example of an embodiment of a stand alone game machine having a processor adapted to support two or more operating systems simultaneously is illustrated in FIG. 6. The game machine 600 includes a game controller 660 and a player interface 650. The player interface 650 includes a credit mechanism 652, displays 654, a game play mechanism 656 and speakers 658. The controller 660 includes a processor 662 and memory 664.
  • In this embodiment the memory 664 stores game data including software programs for two or more component processes 640, 645 which, when executed, implement the game. The processor 662 is adapted to support two or more operating system instances. The processor 662 can be a processor module, such as a central processor unit (CPU) having one or more physical processors, or an electronic processing arrangement including one or more physical processors. The electronic processing arrangement may be centralised in one processor module. Alternatively the electronic processing arrangement may be distributed, for example where two or more CPUs are connected in a multi processor environment. The processors may be single or multi-core processors.
  • In the example illustrated the processor 662 is running two operating system instances 666, 668. A first component process executes 640′ in the first operating system 666 and a second component process executes 645′ in the second operating system 668. Using two or more operating system instances enables different processes to execute independently of one another. In the embodiment illustrated in FIG. 6, access to hardware resources can be selectively allocated to different operating systems. In this example, the first operating system 666 is used for executing game play processes 640′ and is therefore allocated access to hardware resources for the credit mechanism 652 and game play mechanism 656 of the player interface 650. The second operating system 668 is used for executing component processes for game presentation 645′ and is therefore allocated access to hardware resources for the displays 654 and speakers 658 of the player interface 650.
  • As illustrated the execution of game processes and hardware access is separated into two partitions 630, 635 with the first partition 630 being for game play and the second partition 635 being for game presentation. Allocation of hardware resources separately to each partition is optional. In an alternative embodiment only one operating system instance is provided direct access to hardware resources.
  • Partitioning of game component process execution using different operating system instances can exhibit a number of advantages. For example, in some embodiments partitioning can enhance security by separating player account and credit handling from other game processes. For example, resistance to hacking of player accounts may be increased by quarantining player account and credit handling from processing of inputs from the player interface other than the credit mechanism. In some embodiments one operating system instance can be used for providing the game machine platform and another one or more operating systems used for execution of the game per se, for example the platform operating system instance may handle all I/O and mathematical functions and the one or more operating system instances for implementing the game handle execution of the game play process and presentation. This can minimise risk of interference or timing delay for the mathematical functions due to processing of other aspects of game play or presentation, such as playing animated graphics. Interference or security risks can be even further mitigated in embodiments where access to hardware resources can be selectively allocated to different operating system instances.
  • In some embodiments the two or more component processes can be adapted to execute in different operating system types or versions. This can be advantageous for portability or compatibility of games between different machines. Further, partitioning games into cooperating component processes adapted to execute in different operating systems enables a game to be designed and implements in a modular fashion. This has the advantage of enabling component processes to be selectively modified or upgraded, for example for compatibility with different hardware or selectively upgrading different elements of the game such as the game graphics.
  • Producing a game in this modular fashion may also be advantageous for obtaining regulatory approval of games initially and in the case of upgrades. For example, game play component processes which deal with credit handling, game outcome generation, random number generation, player tracking etc could be adapted to execute using one operating system instance. The component processes for game presentation, such as graphics and sound can be adapted to execute in another operating system instance. Game data, such as game outcome data, can be provided to the game presentation component processes of one operating system instance by game execution component processes of the other operating system instance. This data can be passed between the two operating system instances using a data transfer protocol or signal. However, the game presentation component process cannot influence game play due to the operating system separation. Thus, the requirement for regulatory approval of the game presentation component processes may be different and less strict than the regulatory approval requirements for the game play processes. For example, this can have significant advantages where the same game play process is used for two or more types of game machines which each have different game presentation capabilities, for example different displays and different graphics processing abilities. The game play process may be granted regulatory approval and then each of the sets of game presentation component processes assessed and approved individually. Further, regulatory approval may be straightforward and readily obtained where only the presentation of a game is changed, for example changing a game theme from a circus to a seaside theme, without altering the actual game play process.
  • As illustrated in FIG. 7, a virtual machine monitor or hypervisor 720 is provided to enable execution of multiple virtual machines on the same physical processor hardware 710, this can be referred to as virtualisation or paravirtualisation. The physical hardware 710 may include one or more central processor units (CPUs) 712 a-n and a variety of memory resources 714. In the architecture of the embodiment illustrated, the virtual machine monitor (VMM) 720 is a basic abstraction layer of software that sits directly on the hardware 710 below any operating systems 730, 740. The VMM performs scheduling of process execution across the physical hardware 710, including scheduling across multiple processors 712 a-n and processor cores in the case of multi-core processors. The VMM also abstracts the hardware to define the virtual machines for the various operating systems. Thus the virtual machine hardware architecture apparent and accessible to the operating system executing within that machine may be different from the actual physical hardware architecture. It should be appreciated that the sophistication of the VMM used may place constraints on the physical hardware architecture which may be used. Further, the sophistication of the VMM will also determine the flexibility of the abstraction of hardware to the different virtual machines. For example, a simple VMM may only be able to operate in a single processor hardware environment. The abstracted hardware for each virtual machine may be an image of the physical processor hardware and hardware peripherals only visible to one virtual machine. Alternatively a sophisticated VMM may be capable of operating in a multi processor environment and enable different abstracted hardware architectures for each virtual machine.
  • The VMM 720 of FIG. 7 operates at the lowest and most privileged layer in the architecture. The VMM 720 can host multiple guest operating systems (OS), each executing within a secure virtual machine 730, 740. The VMM 720 is responsible for processing scheduling and memory partitioning of the various virtual machines running on the same physical hardware 710. The VMM 720 abstracts the hardware for the virtual machines 730, 740 and controls the execution of the virtual machines 730, 740 which share a common hardware processing environment 710. The operating system running in each virtual machine may be a modified or unmodified version of an operating system depending on the level of virtualisation. For example, where full virtualisation is used, unmodified operating systems such as standard windows or other unmodified operating systems may be used. In this full virtualisation embodiment the operating system is not aware that it is sharing hardware. Whereas where paravirtualisation is used operating systems must be modified and the virtual machine recognises that it is sharing hardware resources. A VMM may support a combination of fully virtualised and paravirtualised virtual machines.
  • Each virtual machine 730, 740 can be referred to as a domain. Within each domain 730, 740 the operating system manages its own applications. Managing the applications within an OS includes responsibility for scheduling each application 750, 760 within time allotted to the virtual machine 730, 740 by the VMM 720. For example, each operating system schedules the execution of its applications as if it were operating on its own stand alone hardware. The VMM allocates processing capacity to the respective virtual machines and schedules the execution from each virtual machine on the physical hardware.
  • The VMM can also include a mechanism for enabling data to be exchanged between processes executing in different virtual machines, for example using an inter domain signalling protocol. For example, this inter-domain data exchange enables data, such as game outcome data, to be transferred from an operating system executing component processes for game play to an operating system executing component processes for game outcome presentation.
  • The VMM can also be adapted to selectively enable access to peripheral hardware devices. For example, by virtualising hardware devices 770 or their drivers 780, 782, 784 in a virtual machine, the peripheral hardware devices become accessible to that virtual machine. The VMM may selectively virtualise peripheral devices in a virtual machine, thus only making some peripheral devices accessible to the operating system of the virtual machine. For example, in a gaming system peripheral devices for handling player credits, such as a card reader, can be made accessible only to one operating system and invisible to others, which can have security advantages. Further, each virtual machine can use a different operating system, enabling advantageous operating system and hardware combinations to be chosen. For example, the virtual machine executing a windows operating system having enhanced graphics handling capabilities may be granted direct hardware access to the graphics card.
  • In the embodiment illustrated in FIG. 7 the applications executed in each operating system 730, 740 are the component processes 750, 760 for implementing the game. The two sets of component processes 750, 760 cooperate to implement the game. For example, the first set of component processes 750 can be processes related to processing game play instructions and generation of game outcomes. The second set of component processes 760 can be game presentation processes, for example game graphics, sounds and controlling other aspects of a game machine such as flashing lights. In this example, game result data generated by the first set of component processes 750 is provided to the second set of component processes 760 for presentation to the player. As these component processes operate in different virtual machines, the game presentation processes do not influence the result of the game. This can offer security advantages and flexibility in game generation.
  • An example of a suitable VMM for implementing the described architecture is a Xen® hypervisor. Xen® is an open source VMM adapted for use with processor hardware provided from several manufacturers, for example the Xen® hypervisor is adapted for use with IA-32, x86, x86-64, IA-64 and PowerPC 970 architectures. Xen® can support a number of different guest operating systems including Windows®, Linux®, Solaris®, and various versions of the BSD operating system. Xen® is also adapted to take advantage of some hardware virtualisation support in processors manufactured by Intel® and AMD® which enables the hypervisor to grant direct hardware access to guest operating systems. Although a preferred embodiment will now be described with reference to features of the Xen® hypervisor, alternative VMMs are considered within the scope of the present application.
  • In the Xen® architecture the first virtual machine, domain 0 can have special management privileges for interaction with other virtual machines and special hardware access privileges. The domain 0 operating system instance is booted initially on power up. Typically the operating system for domain 0 is a modified version of Linux. Domain 0 includes management and control functions for building other virtual machines. For example, after the operating system instance of domain 0 is booted further operating system instances can be booted as guest domains from within domain 0 using the management and control functions. For example, a windows operating system may be booted in a guest domain and a further guest domain for a further Linux operating system instance. Each guest domain can be referred to as a domain U or unprivileged domain.
  • The management and control functions of domain 0 can also be used to selectively allocate access to physical hardware resources to guest operating system instances and the hardware access can be exclusive. For example, hardware access can be allocated to a domain at PCI (peripheral component interconnect) level in a manner which makes the hardware visible and accessible to the allocated domain only, say a guest domain U with a windows operating system instance, and invisible to the other domains including the host domain 0.
  • Domain 0 can also perform administrative tasks such as suspending and resuming other virtual machines. For example, where there is a fault or crash in a guest domain, the guest operating system instance may be restarted under the control of domain 0 while processing continues in other domains. An advantage of this is that where an operating system is less stable or the code execution in a virtual machine is potentially unstable, this operating system instance can be re-booted independent of processing occurring in other virtual machines, if necessary. For example, in a gaming context graphics processes may execute in one domain and game play processes such as result generation and award handling may execute in another domain. If there is a problem with the graphics processing, then the operating system of the graphics domain may be restarted without disturbing the game play processing. This means that where a problem occurs with graphics processing this can be corrected and allow the game to continue uninterrupted. Depending on the time taken to correct the graphics processing fault a player may not even be aware a problem occurred. Further, risks due to a graphics package or operating system being potentially unstable are mitigated by virtue of the partitioning into separate virtual machines.
  • FIG. 8 illustrates a game system having an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances. The system includes a game controller 800 and a player interface 850. The game controller includes memory 810, processor 820, and peripheral hardware 886. The player interface 850 includes all the hardware accessible to the player, including a credit mechanism 852 such as a card/ticket reader or coin mechanism, game play mechanism 856 such as a touch screen or buttons, one or more displays 854 and speakers 858. In a case where a touch screen is included as part of the game play mechanism 856 the touch screen may also be one of the displays 854.
  • In this embodiment the game controller 850 processor 820 can be an electronic processing arrangement including one or more processors, each having one more processor cores. The processor 820 is adapted to support simultaneous execution of two operating system instances, with a first operating system instance running in domain 0 860 and a second operating system instance running in domain U 870. The first, domain 0, operating system instance 860 includes management and control functions 862 for starting and monitoring the second operating system instance 870. The management and control functions 862 can also be used to control access to peripheral hardware for each operating system 860, 870.
  • In this embodiment a game is implemented using cooperating component processes including an outcome generator process 864, an input/output handling process 866, a prize evaluator 868, a display controller 875 and a sound controller 878. The component processes are partitioned such that the outcome generator 864, input/output handler 866 and prize evaluator 868 component processes for implementing game play execute using the first operating system instance 860 and the display controller 875 and sound controller 878 component processes for presenting game results execute using the second operating system instance 870.
  • The memory 810 is shared between the two operating system instances. Memory 810 is used to store data such as game rules 840 accessed by the component processes for game play, in particular for generating and evaluating game outcomes, and game presentation theme data 845 which can be accessed by the game presentation component processes. Other data such as player data 830 may be accessed by both the game play and game presentation component processes. For example, during the course of game play, player data may be updated by the game play component processes with a players current credit balance, bet amount, selected pay lines, win amount etc. This data may be read by game presentation component processes for display. A virtual machine monitor VMM (not shown) is responsible for scheduling processing on the physical hardware and memory access for the two domains 860, 870.
  • In this example the first virtual machine 860, domain 0, uses a version of the Linux® operating system. The game component processes executed within this operating system instance, in this embodiment, are processes related to game play. These processes can include:
      • communication via the network interface to game servers;
      • receiving and processing game play instructions input via the game play mechanism;
      • interaction with game controller peripheral hardware such as a meters for regulator monitoring and a random number generator, if a peripheral random number generator is used;
      • game mathematics such as outcome generation and prize evaluation;
      • market functions such as player tracking an loyalty monitoring; and
      • handling of player credit, including reading cards or tickets, real time processing of credit input using a coin or bill input acceptor, and controlling pay out of credit using a coin output or ticket output.
  • In this example the second virtual machine 870, domain U, uses a Windows® operating system. The game component processes executed within this operating system instance, in this embodiment, are processes related to game presentation, including video processing, graphical presentation of game outcomes and graphical user interface (GUI) presentation. Sound processing may also be included in this operating system instance. Partitioning the game component processes in this manner enables latest graphical processing features of the Windows® operating system to be taken advantage of for presenting the game.
  • Other operating system types and combinations thereof may also be used and are envisaged within the scope of the present application. For example, the graphical processing capabilities of Windows® operating system referred to above may be superseded by an alternative operating system or operating system version. In this instance the system may be upgraded by producing an alternative embodiment using the alternative operating system. The host operating system instance and component processes therein executed to perform the game may remain the same. The second guest operating system instance and the component processes executed therein can be changed to the new operating system or version having improved graphical processing capabilities. In this scenario, as the game execution component processes have not been changed, regulatory approval for the upgraded gaming system may be easier to obtain than for an entirely new gaming system.
  • Some of the game play processes executing in the first virtual machine 860 require access to peripheral hardware. For example, the game play processes 864, 866, 868 executing in the first virtual machine 860 may require access to the credit mechanism 852, network card 882, random number generator 880, meters 884 and game play mechanism 856. Domain 0, in the Xen® architecture is a privileged domain and therefore, by default, is allocated access to all peripheral hardware. This means that all the peripheral hardware will be visible in domain 0 but not visible or directly accessible to any guest domain U. This has an advantage in that any processing in a guest domain U cannot interact with peripheral hardware it does not have access to. For example, graphics processing in domain U cannot affect any credit input or payed out as the credit mechanism is not visible or accessible to domain U. In some embodiments the processing in domain U 870 may not require any direct hardware access or hardware can be emulated in the domain U virtual machine so it appears to domain U that the operating system has access to the hardware, but any data exchanged between a peripheral hardware device and a process in domain U is actually handled by domain 0.
  • In some embodiments processor and VMM architectures can support granting direct hardware access to domain U. In such embodiments domain 0 can selectively allocate direct access to hardware to domain U. For example, in the embodiment illustrated, domain U can be granted direct access to graphics or video cards and sound cards at PCI level for game presentation. The virtual machines can be configured so that direct access is selectively allocated for different hardware devices and the access can be exclusive.
  • For example, domain U 870 can be granted direct access to graphics and sound cards used for game graphic and sound processing by the display controller 875 and sound controller 878 and driving the displays 854 and speakers 858 respectively. Other hardware can remain invisible to domain U, for example there is no need for domain U to access the random number generator 880 or credit mechanism 852 so this hardware is not made visible to domain U 870.
  • The virtual machines can be configured such that direct hardware access to a device is granted exclusively to a virtual machine. Exclusive access to a hardware device for domain U will make the device visible to the operating system in domain U and invisible to the operating system in domain 0. Using the example above, exclusive access to the video and sound cards to domain U will make these cards visible to processes executing in domain U but invisible and inaccessible to processes executing in domain 0. Granting direct access to hardware to a guest domain 870 can be controlled by the host domain, domain 0 860, using the management and control functionality 862 provided in that domain. Configuring the virtual machines may be performed automatically using program code or under the control of an administrator. For example, when starting up a game machine an administrator may log in to domain 0 820 and, using the management and control functions 862, configure the two or more domains to selectively allocate hardware access to one or more domains.
  • An example of game processing using the game system of FIG. 8 will now be described in relation to a spinning reel game. The display controller 875 in domain U 870 reads game presentation data from memory, processes the presentation data and presents game information on a display 854, for example a screen including game play instructions and an invitation to play the game. A player uses the credit mechanism 852 to input credit for wagers and the game play mechanism 856 to input game play instructions, for example the number of win lines to play and the amount wagered for each win line. These inputs are processed in domain 0 860 by the I/O interface process 866 and player data 830 stored in memory 810. Data may also be sent to a connected game server using the network card 882, for example player tracking data sent to a player loyalty/marketing server or wager data to a bonus server.
  • The outcome generator 864 operates in response to the player's operation of game play mechanism 856 to generate a game outcome which will then be evaluated by prize evaluator 868. The first part of forming the game outcome is for a random result to be generated, for example using a random number generator 880 and processing the random result by the outcome generator 864 in accordance with game rules 840.
  • For example, for a spinning reel game, each spinning reel is simulated using a set of symbols having a defined sequence. The symbol image data for each symbol set can be stored in the presentation data 845. A generated random number is used by the outcome generator 864 to determine for each set of symbols a position in the sequence representative of a stop position for the spinning reel. A selected outcome symbol set can be determined from the stop positions and the number of symbols to be selected from each reel, for example three symbols for each of five reels.
  • The prize evaluator 868 is provided with selected symbol set which is evaluated in accordance with game rules 840 to determine whether a prize is to be awarded for the game outcome. For example, the prize evaluator compares the selected symbol set with prize winning symbol combinations and prize tables stored in the game rules 840 to determine any prize to award. Data indicating any winning combinations and prize data is then stored in player data.
  • The stop position data or selected symbol data for each reel and any prize data can be provided to the display controller 875 in domain U for presentation of the game outcome symbol set. For example, the stop position data may be stored in memory 810 and a signal or interrupt, triggered by the outcome generator and handled by the VMM, sent to the display controller and sound controller in domain U to advise that a result is ready for display. The display controller 875 uses the stop position data and symbol image data to cause a set of symbols to be displayed on display 854 at a set of display positions. For example, for each of five sets, the three symbols in sequence after the stop position for that set may be displayed such that symbols are displayed at fifteen display positions on display 854. The display controller may also generate and play an animation of the reels spinning prior to displaying the outcome symbol set. The display controller can also highlight any winning symbol combinations based on the prize data, for example by changing the colour of a winning pay line or flashing symbols of a winning combination. Other data such as a credit value awarded for the outcome and player's remaining credit balance can also be read from player data and displayed. Sounds may also be played by the sound controller based on the outcome, for example sounds representative of the reels spinning may be played in conjunction with the animation of the spinning reels and a selected tune may be played for a winning outcome.
  • This example illustrates how game presentation processing can be performed independent of game play processing. The display controller and sound controller simply read data from the shared memory in order to present the game outcomes. The presentation game processing may be provided read only memory access or alternatively data passed between domains may only be temporarily stored, for example in buffer or register memory, so the processing in domain U does not directly access player data 830. It should be appreciated that partitioning processing in this manner means that presentation processing in domain U can not influence the game play processing in domain 0.
  • Although the example illustrated uses two virtual machines, three or more virtual machines may also be used. For example, where a software random number generator or pseudo-random number generator is used for generating game outcomes, this random number generator may be isolated from other game processes in its own domain U. This may be advantages for maintaining the security and integrity of the random number generator or enabling the random number generator to be implemented in an operating system different from other operating systems used for game processing.
  • Persons skilled in the art will also appreciate that an embodiment could be embodied in program code for adapting a processor to support two or more operating system instances and implement a game as described above. The program code could be supplied in a number of ways, for example on a computer readable medium, such as a disc or a memory (for example, that could replace part of memory 103) or as a data signal (for example, by downloading it from a server).
  • In some cases hardware access may be shared between domains. For example an I/O interface such as a touch screen may be visible in both domain 0 860 for processing input game play instructions and domain U for presenting game instructions or outcomes. In this example the hardware may be emulated in one of the domains. Alternatively access to the hardware is scheduled between the hardware sharing virtual machines by the VMM.
  • It will be understood to persons skilled in the art of the invention that many modifications may be made without departing from the spirit and scope of the invention, in particular it will be apparent that certain features of the invention can be combined to form further embodiments.
  • It is to be understood that, if any prior art publication is referred to herein, such reference does not constitute an admission that the publication forms a part of the common general knowledge in the art, in Australia or any other country.
  • In the claims which follow and in the preceding description, except where the context requires otherwise due to express language or necessary implication, the word “comprise” or variations such as “comprises” or “comprising” is used in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the presence or addition of further features in various embodiments of the invention.
  • It will be understood that the invention disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention.
  • It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the invention as shown in the specific embodiments without departing from the spirit or scope of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive. Several embodiments are described above with reference to the drawings. These drawings illustrate certain details of specific embodiments that implement the systems and methods and programs of the present invention. However, describing the invention with drawings should not be construed as imposing on the invention any limitations associated with features shown in the drawings. It will be understood that the invention disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention.
  • The present invention contemplates methods, systems and program products on any electronic device and/or machine-readable media suitable for accomplishing its operations. Certain embodiments of the present invention may be implemented using an existing computer processor and/or by a special purpose computer processor incorporated for this or another purpose or by a hardwired system, for example.
  • Embodiments within the scope of the present invention include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media may comprise RAM, ROM, PROM, EPROM, EEPROM, Flash, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such a connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.

Claims (34)

1. A gaming system processor module adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
2. A gaming system processor module as claimed in claim 1 having a virtual machine monitor to support the simultaneous execution of two or more operating system instances, wherein each operating system instance executes in its own virtual machine.
3. A gaming system processor module as claimed in claim 2 comprising one or more physical processors.
4. A gaming system processor module as claimed in claim 3 wherein each processor has one or more processing cores.
5. A gaming system processor module as claimed in claim 2 wherein each operating system instance can be selectively provided with direct access to one or more hardware resources.
6. A gaming system processor module as claimed in claim 5 wherein any hardware resource access provided to an operating system instance is exclusive to the operating system instance.
7. A gaming system processor module as claimed in claim 6 wherein a first operating system instance acts as a host operating system and each further operating system instance acts as a guest operating system, and wherein access to hardware resources is allocated selectively to guest operating system instances under control of the host operating system.
8. A gaming system processor module as claimed in claim 7 wherein the host operating system instance is adapted to monitor the guest operating system instances and selectively restart a guest operating system instance, if necessary, when an execution error is detected in the guest operating system instance.
9. A gaming system processor module as claimed in claim 7 wherein component processes related to game play execute in a first guest operating system instance and component processes related to game presentation execute in a second guest operating system instance.
10. A gaming system processor module as claimed in claim 9 wherein the first and second operating system instances each execute a different type of operating system.
11. A gaming system processor module as claimed in claim 10 wherein the first operating system type is a LINUX operating system or variant thereof.
12. A gaming system processor module as claimed in claim 11 wherein the second guest operating system is a Microsoft Windows operating system.
13. A gaming system processor module as claimed in claim 12 wherein component processes executed using the second guest operating system include game graphics component processes.
14. A gaming system processor module as claimed in claim 13 wherein the second guest operating system is provided access to game system hardware resources for displaying game graphics.
15. A gaming system comprising:
a player interface arranged to enable a player to enter instructions to play a game and including one or more displays to display game results; and
a game controller in data communication with the player interface, the game controller comprising:
a memory; and
an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
16. A gaming system as claimed in claim 15 wherein the processing arrangement is provided with a virtual machine monitor to support the simultaneous execution of two or more operating system instances wherein each operating system instance executes in its own a virtual machine.
17. A gaming system as claimed in claim 16 wherein the processing arrangement comprises one or more physical processors.
18. A gaming system as claimed in claim 17 wherein each processor has one or more processing cores.
19. A gaming system as claimed in claim 16 wherein each operating system instance can be selectively provided with direct access to one or more hardware resources.
20. A gaming system as claimed in claim 19 wherein any hardware resource access provided to an operating system instance is exclusive to the operating system instance.
21. A gaming system as claimed in claim 20 wherein a first operating system instance acts as a host operating system and each further operating system instance acts as a guest operating system, and wherein access to hardware resources is allocated selectively to guest operating system instances under control of the host operating system.
22. A gaming system as claimed in claim 21 wherein component processes related to game play execute in a first operating system instance and component processes related to game presentation execute in a second guest operating system instance.
23. A gaming system as claimed in claim 22 wherein the first and second operating system instances each execute a different type of operating system.
24. A gaming system as claimed in claim 23 wherein the first operating system type is a LINUX operating system or variant thereof.
25. A gaming system as claimed in claim 24 wherein the second guest operating system is a Microsoft Windows operating system.
26. A gaming system as claimed in claim 25 wherein component processes executed using the second guest operating system include game graphics component processes.
27. A gaming system as claimed in claim 26 wherein the second guest operating system is provided access to game system hardware resources for displaying game graphics.
28. A game controller comprising:
a memory; and
an electronic processing arrangement adapted to support simultaneous execution of two or more operating system instances to thereby enable execution of program code which enables play of a game, whereby execution of the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
29. A game controller as claimed in claim 28 wherein the processing arrangement comprises one or more physical processors.
30. A game controller as claimed in claim 29 wherein each processor has one or more processing cores.
31. A computer readable storage medium comprising computer readable instructions which when executed by a processor of a game system adapt the processor to support simultaneous execution of two or more operating system instances, to thereby enable execution of program code which enables play of a game, and execution of a the program code uses two or more cooperating component processes partitioned such that at least one of the component processes executes using a first operating system instance, and at least one other cooperating component process executes using a further operating system instance.
32. A method of gaming comprising the steps of:
providing program code which enables play of a game, wherein execution of the program code uses two or more cooperating component processes;
executing at least one of the component processes using a first operating system instance; and
executing at least one other cooperating component process using a further operating system instance, wherein the execution of the component processes in the first and further operating systems cooperates to implement the game.
33. A method as claimed in claim 32 further comprising the step of selectively providing direct hardware access to each operating system instance.
34. A method as claimed in claim 32 wherein the component processes executed in the first operating system are component processes for implementing game play and component processes executed the further operating system instance are component processes for game presentation.
US12/575,960 2008-10-09 2009-10-08 Gaming system and gaming system processor module Abandoned US20100093433A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US14/824,738 US10592060B2 (en) 2008-10-09 2015-08-12 Gaming system and gaming system processor module
US16/809,254 US11249612B2 (en) 2008-10-09 2020-03-04 Gaming system and gaming system processor module
US16/884,800 US11281350B2 (en) 2008-10-09 2020-05-27 Gaming system and gaming system processor module
US16/943,764 US11287939B2 (en) 2008-10-09 2020-07-30 Gaming system and gaming system processor module
US16/943,772 US11385758B2 (en) 2008-10-09 2020-07-30 Gaming system and gaming system processor module
US17/701,474 US11662873B2 (en) 2008-10-09 2022-03-22 Gaming system and gaming system processor module
US18/305,232 US20230266855A1 (en) 2008-10-09 2023-04-21 Gaming system and gaming system processor module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2008905247A AU2008905247A0 (en) 2008-10-09 Gaming system and gaming system processor module
AU2008905247 2008-10-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/824,738 Continuation US10592060B2 (en) 2008-10-09 2015-08-12 Gaming system and gaming system processor module

Publications (1)

Publication Number Publication Date
US20100093433A1 true US20100093433A1 (en) 2010-04-15

Family

ID=42099362

Family Applications (6)

Application Number Title Priority Date Filing Date
US12/575,960 Abandoned US20100093433A1 (en) 2008-10-09 2009-10-08 Gaming system and gaming system processor module
US14/824,738 Active 2030-05-04 US10592060B2 (en) 2008-10-09 2015-08-12 Gaming system and gaming system processor module
US16/809,254 Active 2030-03-12 US11249612B2 (en) 2008-10-09 2020-03-04 Gaming system and gaming system processor module
US16/884,800 Active 2030-01-24 US11281350B2 (en) 2008-10-09 2020-05-27 Gaming system and gaming system processor module
US17/701,474 Active US11662873B2 (en) 2008-10-09 2022-03-22 Gaming system and gaming system processor module
US18/305,232 Pending US20230266855A1 (en) 2008-10-09 2023-04-21 Gaming system and gaming system processor module

Family Applications After (5)

Application Number Title Priority Date Filing Date
US14/824,738 Active 2030-05-04 US10592060B2 (en) 2008-10-09 2015-08-12 Gaming system and gaming system processor module
US16/809,254 Active 2030-03-12 US11249612B2 (en) 2008-10-09 2020-03-04 Gaming system and gaming system processor module
US16/884,800 Active 2030-01-24 US11281350B2 (en) 2008-10-09 2020-05-27 Gaming system and gaming system processor module
US17/701,474 Active US11662873B2 (en) 2008-10-09 2022-03-22 Gaming system and gaming system processor module
US18/305,232 Pending US20230266855A1 (en) 2008-10-09 2023-04-21 Gaming system and gaming system processor module

Country Status (2)

Country Link
US (6) US20100093433A1 (en)
AU (1) AU2009222627B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120220370A1 (en) * 2010-01-08 2012-08-30 Ami Entertainment Network, Inc. Multi-touchscreen module for amusement device
WO2013066644A1 (en) * 2011-11-03 2013-05-10 Cisco Technology, Inc. Virtual machines in a packet switching device
US20130173900A1 (en) * 2011-12-28 2013-07-04 Huawei Technologies Co., Ltd. Key transmission method and device of a virtual machine under full disk encryption during pre-boot
US9020894B2 (en) 2012-01-24 2015-04-28 Cisco Technology, Inc. Service version modification of a high-availability system
US9185030B2 (en) 2011-11-03 2015-11-10 Cisco Technology, Inc. Virtual machines in a packet switching device
US10592060B2 (en) 2008-10-09 2020-03-17 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248459B2 (en) 2016-03-15 2019-04-02 Microsoft Technology Licensing, Llc Operating system support for game mode

Citations (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5277424A (en) * 1992-07-08 1994-01-11 United Gaming, Inc. Video gaming device utilizing player-activated variable betting
US5805790A (en) * 1995-03-23 1998-09-08 Hitachi, Ltd. Fault recovery method and apparatus
US20020052230A1 (en) * 1999-09-24 2002-05-02 Shuffle Master, Inc. Video gaming apparatus for wagering with universal computerized controller and I/O interface for unique architecture
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US20030069074A1 (en) * 2001-09-10 2003-04-10 Shuffle Master, Inc. Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US20030224858A1 (en) * 2001-03-08 2003-12-04 Yoseloff Mark L. Computerized gaming system, method and apparatus
US20040002381A1 (en) * 1995-06-29 2004-01-01 Igt Electronic gaming apparatus with authentication
US20040198479A1 (en) * 2000-03-08 2004-10-07 Igt Computerized gaming system, method and apparatus
EP1467282A2 (en) * 2003-04-09 2004-10-13 Jaluna SA Operating systems
US20040215702A1 (en) * 2002-12-31 2004-10-28 Glenn Hamasaki Management of service components installed in an electronic device in a mobile services network
US20050010738A1 (en) * 2000-10-17 2005-01-13 Igt High performance battery backed ram interface
US20050096133A1 (en) * 2003-11-04 2005-05-05 Hoefelmeyer Ralph S. Systems and methods for providing self-compiling, peer-to-peer on-line gaming
US20050170893A1 (en) * 2002-07-03 2005-08-04 Muir Robert L. Gaming machine power fail enhancement
US20050181875A1 (en) * 2004-02-18 2005-08-18 Coin Mechanisms, Inc. Mobile lottery, gaming and wagering system and method
US20050223219A1 (en) * 2003-03-10 2005-10-06 Cyberscan Technology, Inc. Dynamic configuration of a gaming system
US7022017B1 (en) * 1996-09-25 2006-04-04 Oneida Indian Nation Interactive resort operating system
US20060122937A1 (en) * 2003-03-10 2006-06-08 Cyberscan Technology, Inc. Universal method for submitting gaming machine source code software to a game certification laboratory
US20060137015A1 (en) * 2004-12-18 2006-06-22 Comcast Cable Holdings, Llc System and method for secure conditional access download and reconfiguration
US20060259292A1 (en) * 2005-05-12 2006-11-16 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US20060264256A1 (en) * 2005-04-12 2006-11-23 Gagner Mark B Gaming system with administrative interfaces for managing downloadable game components
US20060287108A1 (en) * 2005-05-17 2006-12-21 Canterbury Stephen A Wagering game with usb nonvolatile storage
US20060288200A1 (en) * 2002-09-13 2006-12-21 Bally Gaming, Inc. Device verification system and method
US20070004501A1 (en) * 2005-06-29 2007-01-04 Christopher Brewer Multi-core processing in a wagering game machine
US20070027796A1 (en) * 2005-07-29 2007-02-01 Claus Matthew W System and method for routing trading orders in an electronic trading system using trader lists
US20070129151A1 (en) * 2001-08-20 2007-06-07 Crowder Robert W Jr Game Conversion Method
US20070129150A1 (en) * 2001-08-20 2007-06-07 Crowder Robert W Jr Game Conversion System
US20070150937A1 (en) * 2002-07-05 2007-06-28 Cyberview Technology, Inc. Secure game download
US20070165856A1 (en) * 2004-05-07 2007-07-19 Wms Gaming Inc. Protecting a gaming machine from rogue code
US20070178970A1 (en) * 2000-08-18 2007-08-02 Igt Gaming machine virtual player tracking and related services
US20070243937A1 (en) * 2006-02-24 2007-10-18 Hernandez Juan L Method for booting and using software for AWP and B type amusement gaming machines, and for C type casino machines
US20070270213A1 (en) * 2002-03-12 2007-11-22 Igt Virtual player tracking and related services
US20070267816A1 (en) * 2006-05-22 2007-11-22 Ihsoft, Ltd. Real-time response over hardware I/O interfaces for video gaming machine
US20070287540A1 (en) * 2005-09-08 2007-12-13 Brahmandam Kiran Soft key hot spot activation system and method
US20080009337A1 (en) * 2006-07-08 2008-01-10 Jackson Mark D Self-authenticating file system in an embedded gaming device
US20080028400A1 (en) * 2006-07-27 2008-01-31 Microsoft Corporation Virtualization comprising integration of host and guest user interfaces
US20080045342A1 (en) * 2003-03-05 2008-02-21 Bally Gaming, Inc. Data Integrity and Non-Repudiation
US7337219B1 (en) * 2003-05-30 2008-02-26 Aol Llc, A Delaware Limited Liability Company Classifying devices using a local proxy server
US20080064501A1 (en) * 2005-04-28 2008-03-13 Bally Gaming, Inc. Download and configuration capable gaming machine operating system, gaming machine and method
US7351151B1 (en) * 2001-08-20 2008-04-01 Sierra Design Group Gaming board set and gaming kernel for game cabinets
US20080082985A1 (en) * 2004-06-15 2008-04-03 Gagner Mark B Gaming Software Providing Operating System Independence
US20080155536A1 (en) * 2006-12-22 2008-06-26 Konstantin Levit-Gurevich Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor
US20080163239A1 (en) * 2006-12-29 2008-07-03 Suresh Sugumar Method for dynamic load balancing on partitioned systems
US20080168479A1 (en) * 2007-01-05 2008-07-10 Thomas Joseph Purtell Bypass Virtualization
US20090248949A1 (en) * 2008-03-31 2009-10-01 Dell Products L. P. System and Method for Increased System Availability In Virtualized Environments
US20090275407A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Virtualization for gaming devices

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5770533A (en) 1994-05-02 1998-06-23 Franchi; John Franco Open architecture casino operating system
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6171190B1 (en) 1998-05-27 2001-01-09 Act Labs, Ltd. Photosensitive input peripheral device in a personal computer-based video gaming platform
US7761283B1 (en) 1998-06-24 2010-07-20 Aristocrat Technologies Australia Pty Limited Virtual EPROM simulator apparatus
JP3862418B2 (en) 1998-06-30 2006-12-27 富士フイルムホールディングス株式会社 Image decoding method and apparatus, and computer-readable recording medium storing a program for causing a computer to execute the image decoding method
CA2319600A1 (en) 1999-09-14 2001-03-14 Peter J. Johnson Method and apparatus for providing a compartmentalized game instruction architecture within a gaming machine
US7819750B2 (en) 1999-10-06 2010-10-26 Igt USB software architecture in a gaming machine
US9235955B2 (en) 2000-12-22 2016-01-12 Bally Gaming, Inc. Universal game monitoring unit and system
US7950999B2 (en) 2004-09-16 2011-05-31 Bally Gaming, Inc. User interface system and method for a gaming machine
CA2399691A1 (en) 2000-01-21 2001-07-26 Oneida Indian Nation Interactive resort operating system
WO2001056159A1 (en) 2000-01-27 2001-08-02 Hitachi, Ltd. Semiconductor device
AU2001245529B2 (en) 2000-03-08 2008-09-18 Igt Computerized gaming system, method and apparatus
WO2001077982A1 (en) 2000-04-11 2001-10-18 Picosoft Co., Ltd. Toy with operating system
EP1410170B1 (en) * 2000-12-21 2010-01-20 Microsoft Corporation Logical substitution of processor control in an emulated computing environment
GB2372622B (en) 2001-01-18 2004-09-01 Richard Tanfield Overall equipment effectiveness (OEE) electronic simulator
US7085722B2 (en) 2001-05-14 2006-08-01 Sony Computer Entertainment America Inc. System and method for menu-driven voice control of characters in a game environment
AU2008200148B2 (en) 2001-09-10 2010-01-21 Igt Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US7356677B1 (en) 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
KR20020010559A (en) 2001-11-27 2002-02-04 이종하 Portable Digital Device Application Software Run System using Virtual Machine in Internet, and the Method
US7158972B2 (en) * 2001-12-11 2007-01-02 Sun Microsystems, Inc. Methods and apparatus for managing multiple user systems
KR100620626B1 (en) 2002-03-25 2006-09-13 주식회사 비즈모델라인 System and Method for Updating Game Data by Synchronizing Wire and Wireless
KR20030079315A (en) 2002-04-03 2003-10-10 (주) 이모션 Method of Network Soccer Game
KR100473956B1 (en) 2002-05-27 2005-03-08 (주) 솔빅스테크놀로지 Downloading-type instant lottery service system and method using internet by mobile phone
EP1679634A3 (en) 2002-07-05 2012-08-29 Mudalla Technology, Inc. Secure game download
ES2209636B1 (en) 2002-10-02 2005-10-01 Universidad De Barcelona CYCLIC DEPSIPEPTIDE AS A CHEMOTHERAPEUTIC AGENT AGAINST CANCER.
US7097562B2 (en) 2003-06-03 2006-08-29 Wms Gaming Inc. Peer-to-peer distributed gaming application network
KR100487623B1 (en) 2003-07-01 2005-05-03 엘지전자 주식회사 Method for controlling the multimedia contents of mobile phone
SG136965A1 (en) 2003-10-10 2007-11-29 Koninkl Philips Electronics Nv Playback of audio-video content and an associated java application from an optical disc
US7996785B2 (en) 2004-06-30 2011-08-09 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
FR2875028B1 (en) * 2004-09-03 2006-12-08 Trango Systems Sarl MECHANISMS FOR CPU VIRTUALIZATION
US7905780B2 (en) 2004-09-16 2011-03-15 Bally Gaming International, Inc. User interface system and method
US7966485B2 (en) 2004-12-01 2011-06-21 Igt Universal operating system to hardware platform interface for gaming machines
WO2006072942A2 (en) 2005-01-03 2006-07-13 Ilya Roitman Device, system and method of gaming
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
WO2006119070A1 (en) 2005-04-29 2006-11-09 Wms Gaming Inc. Asset management of downloadable gaming components in a gaming system
US7685593B2 (en) 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
WO2006128019A2 (en) 2005-05-26 2006-11-30 Wms Gaming Inc. Verifying and auditing game content in a gaming system
US7580728B2 (en) 2005-06-21 2009-08-25 Usa Wireless Solutions Universal mobile gaming docking station and controller
US20070021196A1 (en) 2005-07-19 2007-01-25 Campbell Steven M Watermarking downloadable game content in a gaming system
US9135777B2 (en) 2005-07-20 2015-09-15 Bally Gaming, Inc. Management of downloadable game components in a gaming system
US8192288B2 (en) 2005-08-23 2012-06-05 Wms Gaming Inc. Remote management of a gaming machine through retrieval of an inventory of assets
US9342945B2 (en) * 2005-09-09 2016-05-17 Bally Gaming, Inc. Gaming device with a virtualization manager
WO2007032916A1 (en) 2005-09-09 2007-03-22 Wms Gaming Inc. Gaming network with remote file system for storing game content
NZ550995A (en) 2005-11-04 2007-11-30 Stargames Corp Pty Ltd Improvements in slot machine games
JP2007152057A (en) 2005-12-02 2007-06-21 Shinichi Fujita Hitting exercise device
WO2007078654A2 (en) 2005-12-20 2007-07-12 Wms Gaming Inc. Wagering game machine having image copied file system
JP2007236724A (en) 2006-03-10 2007-09-20 Konami Gaming Inc Game system and server unit utilizable in the system
GB2435955A (en) 2006-03-11 2007-09-12 Inspired Broadcast Networks Lt Credit handling in networked entertainment devices
JP5330638B2 (en) 2006-03-28 2013-10-30 株式会社平和 Game machine
JP4911577B2 (en) 2006-03-28 2012-04-04 サミー株式会社 Pachinko machine
US8397231B2 (en) * 2006-03-31 2013-03-12 Lenovo (Singapore) Pte. Ltd. Monitoring of virtual operating systems using specialized packet recognized by hypervisor and rerouted to maintenance operating system
CA2548924A1 (en) 2006-05-04 2007-11-04 Stephen G. Gray Ultra handheld internet portable(u-hip)
US8043160B2 (en) 2006-05-08 2011-10-25 Wms Gaming Inc. Downloadable operating system for wager gaming systems
WO2007145954A2 (en) 2006-06-07 2007-12-21 Wms Gaming Inc. Processing metadata in wagering game systems
US7653835B2 (en) * 2006-06-27 2010-01-26 Lenovo (Singapore) Pte. Ltd. Apparatus and methods for improved computer system error reporting and management
US8595817B2 (en) * 2006-08-01 2013-11-26 Cisco Technology, Inc. Dynamic authenticated perimeter defense
JP2008036149A (en) * 2006-08-07 2008-02-21 Aruze Corp Slot machine using circular line belt (reel) and its driving method
WO2008018874A1 (en) 2006-08-10 2008-02-14 Walker Digital, Llc Selective reset for gaming device
US20080132331A1 (en) * 2006-09-19 2008-06-05 Cyberscan Technology, Inc. Regulated gaming - virtual display
US20080094311A1 (en) 2006-10-20 2008-04-24 University Of Houston System Interactive hyperwall for visualization, simulation, gaming
US20080234047A1 (en) 2007-03-21 2008-09-25 Igt Wager game license management in a game table
US8479208B2 (en) * 2007-03-30 2013-07-02 Intel Corporation System partitioning to present software as platform level functionality including mode logic to maintain and enforce partitioning in first and configure partitioning in second mode
CA2699565C (en) * 2007-09-20 2014-07-15 C&S Operations, Inc. Computer system with multiple terminals
US8527679B2 (en) * 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US8088001B2 (en) * 2008-08-18 2012-01-03 Igt Casino gaming exchange market
AU2009222627B2 (en) 2008-10-09 2011-07-21 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module

Patent Citations (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5277424A (en) * 1992-07-08 1994-01-11 United Gaming, Inc. Video gaming device utilizing player-activated variable betting
US5805790A (en) * 1995-03-23 1998-09-08 Hitachi, Ltd. Fault recovery method and apparatus
US20040002381A1 (en) * 1995-06-29 2004-01-01 Igt Electronic gaming apparatus with authentication
US7022017B1 (en) * 1996-09-25 2006-04-04 Oneida Indian Nation Interactive resort operating system
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US20020052230A1 (en) * 1999-09-24 2002-05-02 Shuffle Master, Inc. Video gaming apparatus for wagering with universal computerized controller and I/O interface for unique architecture
US20040198479A1 (en) * 2000-03-08 2004-10-07 Igt Computerized gaming system, method and apparatus
US20080058097A1 (en) * 2000-03-08 2008-03-06 Igt Computerized gaming system, method and apparatus
US20070178970A1 (en) * 2000-08-18 2007-08-02 Igt Gaming machine virtual player tracking and related services
US20050010738A1 (en) * 2000-10-17 2005-01-13 Igt High performance battery backed ram interface
US20030224858A1 (en) * 2001-03-08 2003-12-04 Yoseloff Mark L. Computerized gaming system, method and apparatus
US7351151B1 (en) * 2001-08-20 2008-04-01 Sierra Design Group Gaming board set and gaming kernel for game cabinets
US20070129150A1 (en) * 2001-08-20 2007-06-07 Crowder Robert W Jr Game Conversion System
US20070129151A1 (en) * 2001-08-20 2007-06-07 Crowder Robert W Jr Game Conversion Method
US20030069074A1 (en) * 2001-09-10 2003-04-10 Shuffle Master, Inc. Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US20070270213A1 (en) * 2002-03-12 2007-11-22 Igt Virtual player tracking and related services
US20050170893A1 (en) * 2002-07-03 2005-08-04 Muir Robert L. Gaming machine power fail enhancement
US20070150937A1 (en) * 2002-07-05 2007-06-28 Cyberview Technology, Inc. Secure game download
US20060288200A1 (en) * 2002-09-13 2006-12-21 Bally Gaming, Inc. Device verification system and method
US20040215702A1 (en) * 2002-12-31 2004-10-28 Glenn Hamasaki Management of service components installed in an electronic device in a mobile services network
US20080045342A1 (en) * 2003-03-05 2008-02-21 Bally Gaming, Inc. Data Integrity and Non-Repudiation
US20060122937A1 (en) * 2003-03-10 2006-06-08 Cyberscan Technology, Inc. Universal method for submitting gaming machine source code software to a game certification laboratory
US20050223219A1 (en) * 2003-03-10 2005-10-06 Cyberscan Technology, Inc. Dynamic configuration of a gaming system
EP1467282A2 (en) * 2003-04-09 2004-10-13 Jaluna SA Operating systems
US7337219B1 (en) * 2003-05-30 2008-02-26 Aol Llc, A Delaware Limited Liability Company Classifying devices using a local proxy server
US20050096133A1 (en) * 2003-11-04 2005-05-05 Hoefelmeyer Ralph S. Systems and methods for providing self-compiling, peer-to-peer on-line gaming
US20050181875A1 (en) * 2004-02-18 2005-08-18 Coin Mechanisms, Inc. Mobile lottery, gaming and wagering system and method
US20070165856A1 (en) * 2004-05-07 2007-07-19 Wms Gaming Inc. Protecting a gaming machine from rogue code
US20080082985A1 (en) * 2004-06-15 2008-04-03 Gagner Mark B Gaming Software Providing Operating System Independence
US20060137015A1 (en) * 2004-12-18 2006-06-22 Comcast Cable Holdings, Llc System and method for secure conditional access download and reconfiguration
US20060264256A1 (en) * 2005-04-12 2006-11-23 Gagner Mark B Gaming system with administrative interfaces for managing downloadable game components
US20080064501A1 (en) * 2005-04-28 2008-03-13 Bally Gaming, Inc. Download and configuration capable gaming machine operating system, gaming machine and method
US20060259292A1 (en) * 2005-05-12 2006-11-16 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US20060287108A1 (en) * 2005-05-17 2006-12-21 Canterbury Stephen A Wagering game with usb nonvolatile storage
US20070004501A1 (en) * 2005-06-29 2007-01-04 Christopher Brewer Multi-core processing in a wagering game machine
US20070027796A1 (en) * 2005-07-29 2007-02-01 Claus Matthew W System and method for routing trading orders in an electronic trading system using trader lists
US20070287540A1 (en) * 2005-09-08 2007-12-13 Brahmandam Kiran Soft key hot spot activation system and method
US20070243937A1 (en) * 2006-02-24 2007-10-18 Hernandez Juan L Method for booting and using software for AWP and B type amusement gaming machines, and for C type casino machines
US20070267816A1 (en) * 2006-05-22 2007-11-22 Ihsoft, Ltd. Real-time response over hardware I/O interfaces for video gaming machine
US20080009337A1 (en) * 2006-07-08 2008-01-10 Jackson Mark D Self-authenticating file system in an embedded gaming device
US20080028400A1 (en) * 2006-07-27 2008-01-31 Microsoft Corporation Virtualization comprising integration of host and guest user interfaces
US20080155536A1 (en) * 2006-12-22 2008-06-26 Konstantin Levit-Gurevich Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor
US20080163239A1 (en) * 2006-12-29 2008-07-03 Suresh Sugumar Method for dynamic load balancing on partitioned systems
US20080168479A1 (en) * 2007-01-05 2008-07-10 Thomas Joseph Purtell Bypass Virtualization
US20090248949A1 (en) * 2008-03-31 2009-10-01 Dell Products L. P. System and Method for Increased System Availability In Virtualized Environments
US20090275407A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Virtualization for gaming devices

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592060B2 (en) 2008-10-09 2020-03-17 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11662873B2 (en) 2008-10-09 2023-05-30 Aristocrat Technologies Australia Pty. Limited Gaming system and gaming system processor module
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11281350B2 (en) 2008-10-09 2022-03-22 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11249612B2 (en) 2008-10-09 2022-02-15 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US9390578B2 (en) * 2010-01-08 2016-07-12 Ami Entertainment Network, Llc Multi-touchscreen module for amusement device
US20120220370A1 (en) * 2010-01-08 2012-08-30 Ami Entertainment Network, Inc. Multi-touchscreen module for amusement device
US9596175B2 (en) 2011-11-03 2017-03-14 Cisco Technology, Inc. Virtual machines in a packet switching device
US9185030B2 (en) 2011-11-03 2015-11-10 Cisco Technology, Inc. Virtual machines in a packet switching device
WO2013066644A1 (en) * 2011-11-03 2013-05-10 Cisco Technology, Inc. Virtual machines in a packet switching device
US9317316B2 (en) * 2011-12-28 2016-04-19 Huawei Technologies Co., Ltd. Host virtual machine assisting booting of a fully-encrypted user virtual machine on a cloud environment
US20130173900A1 (en) * 2011-12-28 2013-07-04 Huawei Technologies Co., Ltd. Key transmission method and device of a virtual machine under full disk encryption during pre-boot
US9020894B2 (en) 2012-01-24 2015-04-28 Cisco Technology, Inc. Service version modification of a high-availability system

Also Published As

Publication number Publication date
AU2009222627B2 (en) 2011-07-21
US20150346884A1 (en) 2015-12-03
US20230266855A1 (en) 2023-08-24
US20200201463A1 (en) 2020-06-25
US10592060B2 (en) 2020-03-17
US20220214759A1 (en) 2022-07-07
US11249612B2 (en) 2022-02-15
US11662873B2 (en) 2023-05-30
US20200285335A1 (en) 2020-09-10
AU2009222627A1 (en) 2010-04-29
US11281350B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
US11385758B2 (en) Gaming system and gaming system processor module
US11662873B2 (en) Gaming system and gaming system processor module
AU2010236943B2 (en) Presentation of remotely-hosted and locally rendered content for gaming systems
CA2461938C (en) Game development architecture that decouples the game logic from the graphics logic
CA3040520C (en) Method and apparatus for integrating remotely-hosted and locally rendered content on a gaming device
US10235832B2 (en) Post certification metering for diverse game machines
US20100124983A1 (en) Gaming Machine with Secondary Interface Board for Leveraging Slot Machine Interface Board Communications
AU2016200256A1 (en) A gaming system and a method of gaming
US10530822B2 (en) System and method for reducing network dependencies for streaming content
US11287939B2 (en) Gaming system and gaming system processor module
US20090191936A1 (en) Gaming system, a game controller, a player interface, and a method of gaming
AU2011205032B2 (en) Gaming system and gaming system processor module
US8033908B2 (en) Gaming system and a method of gaming
US9715786B2 (en) Method of gaming, a game controller and a gaming system
AU2021209342A1 (en) Gaming system and gaming system processor module
AU2021209350A1 (en) Gaming system and gaming system processor module
ZA200402388B (en) Game development architecture that decouples the game logic from the graphics logic.

Legal Events

Date Code Title Description
AS Assignment

Owner name: ARISTOCRAT TECHNOLGIES AUSTRALIA PTY LIMITED,AUSTR

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TOMICIC, ZORAN;LENGER, DRAZEN;SIGNING DATES FROM 20091015 TO 20091103;REEL/FRAME:023637/0013

AS Assignment

Owner name: ARISTOCRAT TECHNOLOGIES AUSTRALIA PTY LIMITED, AUS

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 023637 FRAME: 0013. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:TOMICIC, ZORAN;LENGER, DRAZEN;SIGNING DATES FROM 20091015 TO 20091103;REEL/FRAME:034197/0149

AS Assignment

Owner name: UBS AG, STAMFORD BRANCH, CONNECTICUT

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ARISTOCRAT TECHNOLOGIES AUSTRALIA PTY LIMITED;REEL/FRAME:034777/0498

Effective date: 20141020

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: BANK OF AMERICA, N.A., NORTH CAROLINA

Free format text: NOTICE OF ASSIGNMENT OF SECURITY INTEREST;ASSIGNOR:UBS AG, STAMFORD BRANCH;REEL/FRAME:060204/0216

Effective date: 20220524