AU2019210586B2 - Memory expansion board with random number generator - Google Patents
Memory expansion board with random number generatorInfo
- Publication number
- AU2019210586B2 AU2019210586B2 AU2019210586A AU2019210586A AU2019210586B2 AU 2019210586 B2 AU2019210586 B2 AU 2019210586B2 AU 2019210586 A AU2019210586 A AU 2019210586A AU 2019210586 A AU2019210586 A AU 2019210586A AU 2019210586 B2 AU2019210586 B2 AU 2019210586B2
- Authority
- AU
- Australia
- Prior art keywords
- memory
- random numbers
- processor
- gaming machine
- number generator
- 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.)
- Active
Links
Abstract
A gaming device comprises a main board comprising a processor, a memory storing system program code and an expansion port in data communication with a memory interface of the processor, and a memory expansion board connected to the main board via the expansion port. The memory expansion board comprises a device configured to execute a random number generator and write random numbers into one or more registers of the memory expansion board accessible by the main board, and at least one connector for connecting a memory module comprising game program code. When the processor requires random numbers, the system program code causes the processor to read random numbers from the one or more registers of the memory expansion board. 11577160_1 (GHMatters) P111479.AU.1 2019 2019210586 31 Jul 20 19 21 05 86 3 1 Ju l 2 01 9 4/4 2019210586 31 UPDATING SYSTEM SOFTWARE TO READ 420 RANDOM NUMBERS FROM THE MEMORY EXPANSION BOARD 400 FIG. 4
Description
4/4
31 Jul 2019
2019210586 31 2019210586
UPDATING SYSTEM SOFTWARE TO READ 420 RANDOM NUMBERS FROM THE MEMORY EXPANSION BOARD
400
&/'͘ϰ FIG. 4
MEMORY EXPANSION BOARD WITH RANDOM NUMBER GENERATOR 13 Apr 2026
[0001] The present application relates to a memory expansion board with a random number generator and a gaming device incorporating a memory expansion board with a random number generator. 2019210586
[0002] Electronic gaming machines (“EGMs”) or gaming devices provide a variety of wagering games such as slot games, video poker games, video blackjack games, roulette games, video bingo games, keno games and other types of games that are frequently offered at casinos and other locations. Play on EGMs typically involves a player establishing a credit balance by inputting money, or another form of monetary credit, and placing a monetary wager (from the credit balance) on one or more outcomes of an instance (or single play) of a primary or base game. In many games, a player may qualify for secondary games or bonus rounds by attaining a certain winning combination or triggering event in the base game. Secondary games provide an opportunity to win additional game instances, credits, awards, jackpots, progressives, etc. Awards from any winning outcomes are typically added back to the credit balance and can be provided to the player upon completion of a gaming session or when the player wants to “cash out.”
[0003] “Slot” type games are often displayed to the player in the form of various symbols arrayed in a row-by-column grid or matrix. Specific matching combinations of symbols along predetermined paths (or paylines) through the matrix indicate the outcome of the game. The display typically highlights winning combinations/outcomes for ready identification by the player. Matching combinations and their corresponding awards are usually shown in a “pay-table” which is available to the player for reference. Often, the player may vary his/her wager to include differing numbers of paylines and/or the amount bet on each line. By varying the wager, the player may sometimes alter the frequency or number of winning combinations, frequency or number of secondary games,
1 22586781_1 (GHMatters) P111479.AU.1 and/or the amount awarded. 13 Apr 2026
[0004] Typical games use a random number generator (RNG) to randomly determine the outcome of each game. The game is designed to return a certain percentage of the amount wagered back to the player (RTP = return to player) over the course of many plays or instances of the game. The RTP and randomness of the RNG are critical to ensuring the fairness of the games and are therefore highly regulated. Upon initiation of play, the RNG randomly 2019210586
determines a game outcome and symbols are then selected which correspond to that outcome. Notably, some games may include an element of skill on the part of the player and are therefore not entirely random.
[0005] Embodiments of the invention exploit the capability of gaming devices to add games via a memory expansion board in order to incorporate an improved or additional random number generator into the gaming device. Embodiments provides a memory expansion board which incorporates a random number generator device. Software resident on the main board of the gaming device enables the processor read random numbers from the memory expansion board via the processor’s memory interface.
[0006] In an embodiment of the invention, a gaming device comprises a main board comprising a processor, a memory storing system program code and an expansion port in data communication with a memory interface of the processor. A memory expansion board is connected to the main board via the expansion port, the memory expansion board comprises a device configured to execute a random number generator and write random numbers into one or more registers of the memory expansion board accessible by the main board, and at least one connector for connecting a memory module comprising game program code. When the processor requires random numbers, the system program code causes the processor to read random numbers from the one or more registers of the memory expansion board.
[0007] In another embodiment, there is provided a memory expansion board for connecting to a main board of a gaming device via an expansion port.
2 22586781_1 (GHMatters) P111479.AU.1
The memory expansion board comprises a device configured to execute a 13 Apr 2026
random number generator and write random numbers into one or more registers of the memory expansion board accessible by the main board so that a processor of the main board can read random numbers from the one or more registers, and at least one connector for connecting a memory module comprising game program code.
[0008] In another embodiment, there is provided a method of retrofitting a 2019210586
gaming device comprising connecting a memory expansion board to an expansion port of a main board of the gaming device, the memory expansion board comprising a device configured to execute a random number generator and write random numbers into one or more registers of the memory expansion board accessible by the main board, and at least one connector for connecting a memory module comprising game program code, and updating system software in a memory of the main board to include instructions which when executed by a processor of the main board cause the processor to read random numbers from the one or more registers of the memory expansion board when the processor requires random numbers.
[0009] In another embodiment, there is provided a gaming machine comprising: a main board comprising a) a processor having a memory interface, b) a memory storing system program code, c) an expansion port in data communication with a memory interface, and d) a second random number generator; a memory module comprising game program code; and a memory expansion board connected to the main board via the expansion port, and, when connected, operable to be in data communication with the main board via the expansion port, the memory expansion board comprising: one or more registered accessible by the main board, and a device configured to execute a random number generator and write random numbers into the one or more registers, wherein when the processor requires one or more random numbers, the system program code causes the processor to read the one or more random numbers from the one or more registers, wherein the main board uses the one or more random numbers to operate the second random number generator, and wherein the memory module further comprises updating system software, which, when executed, further causes the processor to read the one or more random numbers
3 22586781_1 (GHMatters) P111479.AU.1 from the memory expansion board instead of the second random number 13 Apr 2026 generator.
[0010] FIG. 1 is an exemplary diagram showing several EGMs networked with various gaming related servers. 2019210586
[0011] FIG. 2 is a block diagram showing various functional elements of an exemplary EGM.
[0012] FIG. 3 is a block diagram showing detail of certain components of FIG.2.
[0013] FIG. 4 is a flow chart of a method of retrofitting a gaming device.
[0014] FIG. 1 illustrates several different models of EGMs which may be networked to various gaming related servers. The present invention can be configured to work as a system 100 in a gaming environment including one or more server computers 102 (e.g., slot servers of a casino) that are in communication, via a communications network, with one or more gaming devices 104A-104X (EGMs, slots, video poker, bingo machines, etc.). The gaming devices 104A-104X may alternatively be portable and/or remote gaming devices such as, but not limited to, a smart phone, a tablet, a laptop, or a game console.
[0015] Communication between the gaming devices 104A-104X and the server computers 102, and among the gaming devices 104A-104X, may be direct or indirect, such as over the Internet through a website maintained by a computer on a remote server or over an online data network including commercial online service providers, Internet service providers, private networks, and the like. In other embodiments, the gaming devices 104A-104X may communicate with one another and/or the server computers 102 over RF, cable TV, satellite links and the like.
[0016] In some embodiments, server computers 102 may not be
4 22586781_1 (GHMatters) P111479.AU.1 necessary and/or preferred. For example, the present invention may, in one or 13 Apr 2026 more embodiments, be practiced on a stand-alone gaming device such as gaming device 104A, gaming device 104B or any of the other gaming devices 104C-104X. However, it is typical to find multiple EGMs connected to networks implemented with one or more of the different server computers 102 described herein.
[0017] The server computers 102 may include a central determination 2019210586
gaming system server 106, a ticket-in-ticket-out (TITO) system server 108, a player tracking system server 110, a progressive system server 112, and/or a casino management system server 114. Gaming devices 104A-104X may include features to enable operation of any or all servers for use by the player and/or operator (e.g., the casino, resort, gaming establishment, tavern, pub, etc.). For example, game outcomes may be generated on a central determination gaming system server 106 and then transmitted over the network to any of a group of remote terminals or remote gaming devices 104A-104X that utilize the game outcomes and display the results to the players.
[0018] Gaming device 104A is often of a cabinet construction which may be aligned in rows or banks of similar devices for placement and operation on a casino floor. The gaming device 104A often includes a main door 116 which provides access to the interior of the cabinet. Gaming device 104A typically includes a button area or button deck 120 accessible by a player that is configured with input switches or buttons 122, an access channel for a bill validator 124, and/or an access channel for a ticket printer 126.
[0019] In FIG. 1, gaming device 104A is shown as a Relm XLTM model gaming device manufactured by Aristocrat® Technologies, Inc. As shown, gaming device 104A is a reel machine having a gaming display area 118 comprising a number (typically 3 or 5) of mechanical reels 130 with various symbols displayed on them. The reels 130 are independently spun and stopped to show a set of symbols within the gaming display area 118 which may be used to determine an outcome to the game. In embodiments where the reels are mechanical, mechanisms can be employed to implement greater functionality. For example, the boundaries of the gaming display area boundaries of the gaming display area 118 may be defined by one or more mechanical shutters
5 22586781_1 (GHMatters) P111479.AU.1 controllable by a processor. The mechanical shutters may be controlled to open 13 Apr 2026 and close, to correspondingly reveal and conceal more or fewer symbol positions from the mechanical reels 130. For example, a top boundary of the gaming display area 118 may be raised by moving a corresponding mechanical shutter upwards to reveal an additional row of symbol positions on stopped mechanical reels. Further, a transparent or translucent display panel may be overlaid on the gaming display area 118 and controlled to override or supplement what is 2019210586 displayed on one or more of the mechanical reel(s).
[0020] In many configurations, the gaming machine 104A may have a main display 128 (e.g., video display monitor) mounted to, or above, the gaming display area 118. The main display 128 can be a high-resolution LCD, plasma, LED, or OLED panel which may be flat or curved as shown, a cathode ray tube, or other conventional electronically controlled video monitor.
[0021] In some embodiments, the bill validator 124 may also function as a “ticket-in” reader that allows the player to use a casino issued credit ticket to load credits onto the gaming device 104A (e.g., in a cashless ticket (“TITO”) system). In such cashless embodiments, the gaming device 104A may also include a “ticket-out” printer 126 for outputting a credit ticket when a “cash out” button is pressed. Cashless TITO systems are well known in the art and are used to generate and track unique bar-codes or other indicators printed on tickets to allow players to avoid the use of bills and coins by loading credits using a ticket reader and cashing out credits using a ticket-out printer 126 on the gaming device 104A. In some embodiments a ticket reader can be used which is only capable of reading tickets. In some embodiments, a different form of token can be used to store a cash value, such as a magnetic stripe card.
[0022] In some embodiments, a player tracking card reader 144, a transceiver for wireless communication with a player’s smartphone, a keypad 146, and/or an illuminated display 148 for reading, receiving, entering, and/or displaying player tracking information is provided in EGM 104A. In such embodiments, the gaming device 104A can communicate with the player tracking server system 110 to send and receive player tracking information.
[0023] Gaming device 104A may also include a bonus topper wheel 134. When bonus play is triggered (e.g., by a player achieving a particular outcome or
6 22586781_1 (GHMatters) P111479.AU.1 set of outcomes in the primary game), bonus topper wheel 134 is operative to 13 Apr 2026 spin and stop with indicator arrow 136 indicating the outcome of the bonus game. Bonus topper wheel 134 is typically used to play a bonus game, but it could also be incorporated into play of the base or primary game.
[0024] A candle 138 may be mounted on the top of gaming device 104A and may be activated by a player (e.g., using a switch or one of buttons 122) to indicate to operations staff that gaming device 104A has experienced a 2019210586
malfunction or the player requires service. The candle 138 is also often used to indicate a jackpot has been won and to alert staff that a hand payout of an award may be needed.
[0025] There may also be one or more information panels 152 which may be a back-lit, silkscreened glass panel with lettering to indicate general game information including, for example, a game denomination (e.g., $0.25 or $1), pay lines, pay tables, and/or various game related graphics. In some embodiments, the information panel(s) 152 may be implemented as an additional video display.
[0026] Gaming devices 104A have traditionally also included a handle 132 typically mounted to the side of main cabinet 116 which may be used to initiate game play.
[0027] Many or all the above described components can be controlled by circuitry housed inside the main cabinet 116 of the gaming device 104A.
[0028] Note that not all gaming devices necessarily include top wheels, top boxes, information panels, cashless ticket systems, and/or player tracking systems. Further, some suitable gaming devices have only a single game display that includes only a mechanical set of reels and/or a video display, while others are designed for bar counters or table tops and have displays that face upwards.
[0029] An alternative example gaming device 104B illustrated in FIG. 1 is the ArcTM model gaming device manufactured by Aristocrat® Technologies, Inc. Note that where possible, reference numerals identifying similar features of the gaming device 104A embodiment are also identified in the gaming device 104B embodiment using the same reference numbers. Gaming device 104B does not include physical reels and instead shows game play functions on main display
7 22586781_1 (GHMatters) P111479.AU.1
128. An optional topper screen 140 may be used as a secondary game display 13 Apr 2026
for bonus play, to show game features or attraction activities while a game is not in play, or any other information or media desired by the game designer or operator. In some embodiments, topper screen 140 may also or alternatively be used to display progressive jackpot prizes available to a player during play of gaming device 104B.
[0030] Example gaming device 104B includes a main cabinet 116 2019210586
including a main door 118 which opens to provide access to the interior of the gaming device 104B. The main or service door 118 is typically used by service personnel to refill the ticket-out printer 126 and collect bills and tickets inserted into the bill validator 124. The door 118 may also be accessed to reset the machine, verify and/or upgrade the software, and for general maintenance operations.
[0031] Another example gaming device 104C shown is the HelixTM model gaming device manufactured by Aristocrat® Technologies, Inc. Gaming device 104C includes a main display 128A that is in a landscape orientation. Although not illustrated by the front view provided, the landscape display 128A may have a curvature radius from top to bottom, or alternatively from side to side. In some embodiments, display 128A is a flat panel display. Main display 128A is typically used for primary game play while secondary display 128B is typically used for bonus game play, to show game features or attraction activities while the game is not in play or any other information or media desired by the game designer or operator.
[0032] Many different types of games, including mechanical slot games, video slot games, video poker, video black jack, video pachinko, keno, bingo, and lottery, may be provided with or implemented within the depicted gaming devices 104A-104C and other similar gaming devices. Each gaming device may also be operable to provide many different games. Games may be differentiated according to themes, sounds, graphics, type of game (e.g., slot game vs. card game vs. game with aspects of skill), denomination, number of paylines, maximum jackpot, progressive or non-progressive, bonus games, and may be deployed for operation in Class 2 or Class 3, etc.
[0033] FIG. 2 is a block diagram depicting exemplary internal electronic
8 22586781_1 (GHMatters) P111479.AU.1 components of a gaming device 200 fitted with a memory expansion board 250 13 Apr 2026 of an embodiment of the invention. Gaming device 200 is shown connected to various external systems. Gaming device 200 includes one or more processors 204 and a memory 208 coupled to the processor 204.
[0034] The memory 208 may include RAM, ROM or another form of storage media that stores instructions for execution by the processor 204. In an example, memory 208 stores system software 205 and game software 206. 2019210586
[0035] The gaming device 200 may include a topper display 216 or another form of a top box (e.g., a topper wheel, a topper screen, etc.) which sits above main cabinet 218. The gaming cabinet 218 or topper display 216 may also house a number of other components which may be used to add features to a game being played on gaming device 200, including speakers 220, a ticket printer 222 which prints bar-coded tickets or other media or mechanisms for storing or indicating a player’s credit value, a ticket reader 224 which reads bar- coded tickets or other media or mechanisms for storing or indicating a player’s credit value, and a player tracking interface 232. The player tracking interface 232 may include a keypad 226 for entering information, a player tracking display 228 for displaying information (e.g., an illuminated or video display), a card reader 230 for receiving data and/or communicating information to and from media or a device such as a smart phone enabling player tracking. Ticket printer 222 may be used to print tickets for a TITO system server 108. The gaming device 200 may further include a bill validator 234, buttons 236 for player input, cabinet security sensors 238 to detect unauthorized opening of the cabinet 218, a primary game display 240, and a secondary game display 242, each coupled to and operable under the control of main board 201.
[0036] Gaming device 200 may be connected over network 214 to player tracking system server 110. Player tracking system server 110 may be, for example, an OASIS® system manufactured by Aristocrat® Technologies, Inc. Player tracking system server 110 is used to track play (e.g. amount wagered, games played, time of play and/or other quantitative or qualitative measures) for individual players so that an operator may reward players in a loyalty program. The player may use the player tracking interface 232 to access his/her account information, activate free play, and/or request various information. Player
9 22586781_1 (GHMatters) P111479.AU.1 tracking or loyalty programs seek to reward players for their play and help build 13 Apr 2026 brand loyalty to the gaming establishment. The rewards typically correspond to the player's level of patronage (e.g., to the player's playing frequency and/or total amount of game plays at a given casino). Player tracking rewards may be complimentary and/or discounted meals, lodging, entertainment and/or additional play. Player tracking information may be combined with other information that is now readily obtainable by a casino management system. 2019210586
[0037] Gaming devices, such as gaming devices 104A-104X, 200, are highly regulated to ensure fairness and, in many cases, gaming devices 104A- 104X, 200 are operable to award monetary awards (e.g., typically dispensed in the form of a redeemable voucher). Therefore, to satisfy security and regulatory requirements in a gaming environment, hardware and software architectures are implemented in gaming devices 104A-104X, 200 that differ significantly from those of general-purpose computers. Adapting general purpose computers to function as gaming devices 200 is not simple or straightforward because of: 1) the regulatory requirements for gaming devices 200, 2) the harsh environment in which gaming devices 200 operate, 3) security requirements, 4) fault tolerance requirements, and 5) the requirement for additional special purpose componentry enabling functionality of an EGM. These differences require substantial engineering effort with respect to game design implementation, hardware components and software.
[0038] When a player wishes to play the gaming device 200, he/she can insert cash or a ticket voucher through a coin acceptor (not shown) or bill validator 234 to establish a credit balance on the gamine machine. The credit balance is used by the player to place wagers on instances of the game and to receive credit awards based on the outcome of winning instances. The credit balance is decreased by the amount of each wager and increased upon a win. The player can add additional credits to the balance at any time. The player may also optionally insert a loyalty club card into the card reader 230. During the game, the player views the game outcome on the game displays 240, 242. Other game and prize information may also be displayed.
[0039] For each game instance, a player may make selections, which may affect play of the game. For example, the player may vary the total amount
10 22586781_1 (GHMatters) P111479.AU.1 wagered by selecting the amount bet per line and the number of lines played. In 13 Apr 2026 many games, the player is asked to initiate or select options during course of game play (such as spinning a wheel to begin a bonus round or select various items during a feature game). The player may make these selections using the player-input buttons 236, the primary game display 240 which may be a touch screen, or using some other input device which enables a player to input information into the gaming device 200. In some embodiments, a player’s 2019210586 selection may apply across a plurality of game instances. For example, if the player is awarded additional game instances in the form of free games, the player’s prior selection of the amount bet per line and the number of lines played may apply to the free games. The selections available to a player will vary depending on the embodiment. For example, in some embodiments a number of pay lines may be fixed. In other embodiments, the available selections may include different numbers of ways to win instead of different numbers of pay lines.
[0040] During certain game events, the gaming device 200 may display visual and auditory effects that can be perceived by the player. These effects add to the excitement of a game, which makes a player more likely to enjoy the playing experience. Auditory effects include various sounds that are projected by the speakers 220. Visual effects include flashing lights, strobing lights or other patterns displayed from lights on the gaming device 200 or from lights behind the information panel 152 (FIG. 1).
[0041] When the player is done, he/she cashes out the credit balance (typically by pressing a cash out button to receive a ticket from the ticket printer 222). The ticket may be “cashed-in” for money or inserted into another machine to establish a credit balance for play.
[0042] In an example, gaming device 200 is formed by retrofitting memory expansion board 250 to gaming device 200. In an example, gaming device is an EGM operating on the Aristocrat MK6 platform such as the Aristocrat Xcite EGM.
[0043] Memory expansion board 250 is connected to main board 201 via an expansion port 207 of main board 201 that is in data communication with the memory interface of the processor 204. It will be appreciated that main board 201 also includes other components that aren’t illustrated such as a power supply. In
11 22586781_1 (GHMatters) P111479.AU.1 an example, the processor’s memory expansion interface has two areas, a first 13 Apr 2026 area for addressing memory and a second area for addressing input/output devices and the memory expansion board is accessed via the second area in order to avoid disturbing the memory allocation. In other examples, the memory space could be one contiguous block or may be divided up into several sections, by “chip select” control signals or by memory paging. Further it will be appreciated that the processor has even more separate memory areas 2019210586
(governed by multiple chip select control signals) and it is the memory expansion interface of the processor that has two areas.
[0044] Memory expansion board 250 has a programmable logic device in the form of a field programmable gate array (FPGA) 250 and a plurality of connectors 281A-281N (e.g. sockets) for connecting one or more memory modules 254A-254N storing game software to the memory expansion board. Memory expansion board expansion board 250 allows gaming device 200 to provide more than one game or a game different to that of game software 206. Memory expansion board 250 also allows gaming device to provide a game requiring more software than can be accommodated by size of memory 208.
[0045] As explained below, in the embodiments, memory expansion board 250 provides a random number generator 259 for use by gaming device 200 in generating game instances. In one example, the random number generator 259 is used in conjunction with existing game software 206. In another example, random number generator 259 is used in conjunction with game software in one of more of memory modules 254A-254N. In an example, the random number generator 259 enables the main board 201 to have access to a more robust random number generator than originally implemented on the main board 201 while using the same program code. In this example, there may only be a random number generator on memory expansion board. Memory expansion board may also be used to expand system software - i.e. one or more of memory modules 254A -254N may comprise system software.
[0046] In this respect, game software (whether in internal memory 206 or loaded from a memory module 254) is configured to request random numbers from system software 205. Accordingly, an aspect of the embodiment to modify system software 205 so that rather than providing the random numbers itself,
12 22586781_1 (GHMatters) P111479.AU.1 system software 205 is configured to communicate with memory expansion 13 Apr 2026 board 250 to obtain random numbers. In this respect system software 205 provides the functions of an operating system, device drivers and generic (rather than game specific) gaming and system functions, including the management of RNG number generation.
[0047] FIG. 3 shows the basic architecture of the memory expansion board 250. There are three basic groups of signals which the main board 201 2019210586
uses to communicate with the memory expansion board 250:
1. Address bus signals 271.
2. Bidirectional data bus signals 272.
3. Control signals 273.
[0048] In an example, the RNG 259 is the BA431 Random Number Generator (RNG) core produced by Silex Inside of Rue du Bosquet, 7, 1348 Louvain-la-Neuve, Belgium. The BA 431 is advantageous as it is capable of outputting true random numbers. However, in other examples pseudo-random numbers may be acceptable and herein the term random number is used to refer to both true and pseudo-random numbers unless the context expressly indicates otherwise.
[0049] In one example, the FPGA is an Altera series FPGA available from Intel Corporation and having a NIOS CPU. The RNG 259 has an initialisation process which is implemented by an NIOS CPU, which is part of the FPGA. During initialization, the memory expansion board 250 will report “Busy” via a designated register. However, the Board ID and Version registers of the memory expansion board 250 may be read by the main board 201 before the RNG core 259 initialisation is complete.
[0050] Once the RNG core 259 is initialised (and has passed all tests, the keys are then seeded by the NIOS CPU with values from the RNG 259 itself and the RNG core 259 is ready to produce random numbers. No initialisation of the RNG core 259 itself is required from the main board 201.
[0051] In an example, the memory expansion board 250 requires the main board 201 to complete a system initialisation sequence of its own before it
13 22586781_1 (GHMatters) P111479.AU.1 becomes fully operational and allows access to the memory modules 254 (in one 13 Apr 2026 example memory modules are EPROMs). If the main board 201 attempts to read from EPROM space before initialisation is complete, the memory expansion 22586781_1 (GHMatters) P111479.AU.1 board 250 will forcibly reset the main board 201. Once complete the main board 201 may thereafter request random numbers from the First-In-First-Out (FIFO) buffer.
[0052] The RNG core 259 is configured by the NIOS CPU to produce random 2019210586
numbers at a rate in excess of that required by the main board 201 at a nominally 10Hz. In this mode of operation, random numbers are sampled by the core 259 continuously and fed into a FIFO; once the FIFO is full, sampling is automatically suspended by the core until the FIFO starts to empty again.
[0053] The NIOS CPU has its own FIFO which is 128x 32-bit values deep which is exposed to the main board 201 bus. It runs in a continuous loop, sampling the BA431 RNG FIFO and the BA431 RNG error status. Each loop iteration will fill the NIOS CPU FIFO with up to 64 x 32-bit values. Under normal operation the BA431 RNG FIFO will be full and the NIOS CPU FIFO almost full, which enables short bursts of a large number of RNG requests from main board 201 to be handled.
[0054] If the BA431 core reports an error as a result of its continuous tests, the NIOS CPU will apply a soft reset to the RNG core. Under normal operation it is reasonable to expect that the BA431 RNG core is able to reinitialise before the main board 201 has exhausted the NIOS CPU FIFO of random numbers.
[0055] The memory expansion board 250 will report the availability (or not) of random numbers to the main board - based solely on the level of the NIOS CPU FIFO – via the system initialisation/status register. Hence the system software running on main board 201 is configured read the status prior to requesting a pair of 32-bit numbers from the board.
[0056] The main board 201 requests a single 32-bit half of a random number by reading either the least or most significant word register of the random number (technically it makes no difference which register is actually read). These registers reside in I/O space on the memory expansion board 250.
[0057] The main board 201 read strobe on either register access initiates a
14 22586781_1 (GHMatters) P111479.AU.1
NIOS CPU FIFO read and the 32-bit FIFO output is driven onto the main board 13 Apr 2026
201 data bus, where the main board 201 latches it on de-assertion of the read strobe.
[0058] In an example, before memory expansion board 250 becomes fully operational, the main board 201 must complete an initialisation sequence within 12s of power-on. Failure to complete the sequence will result in the memory expansion board 250 forcibly resetting the main board 201. 2019210586
[0059] In an example, the initialisation sequence is as follows:
1) main board 201 reads an expected token from a designated register of the expansion board 250.
2) main board 201 responds by writing a return token to the register.
3) main board 201 reads a random challenge word from the register.
4) main board 201 responds by writing a response derived from the challenge word.
5) main board 201 reads a “Ready” token from the register.
[0060] Any other responses from the designated register indicates the main board 201 has not followed the sequence correctly and the sequence must be restarted.
[0061] As indicated above, the Board ID and Version registers may be read before commencing the sequence. For example, to confirm that the memory expansion board has a random number generator.
[0062] In an example, any deviation from the above, including accessing other on-board registers, will restart the sequence.
[0063] In an example, the main board 201 may request a 64-bit random number from the memory expansion board via the following sequence:
1) main board 201 reads a Ready token from the designated register.
2) main board 201 reads the RNG LS Word Register.
15 22586781_1 (GHMatters) P111479.AU.1
3) main board 201 reads the RNG MS Word Register. 13 Apr 2026
[0064] If the designated register instead returns a “Busy” token in step 1, then the NIOS CPU FIFO is considered empty (has less than two 32-values) and the main board 201 must re-poll the design register until it returns the Ready token. Under normal operation this condition is not expected to happen.
[0065] Conversely, when the designated register returns a Ready token it is 2019210586
guaranteed that the NIOS CPU FIFO has a minimum of two 32-bit values in it.
[0066] Technically, reading either LS or MS word registers has the same effect, i.e. by pulling a 32-bit value from the NIOS CPU FIFO. So, it is not possible, for example, to read the LS word twice and expect the same value. Similarly, reading either register before the other, or either register twice, results in the same sequence of random numbers being read by the main board 201.
[0067] In an alternative embodiment, rather than using the FPGA to produce the random numbers, a dedicated hardware random number generator device is incorporated on the memory expansion board.
[0068] FIG. 4 is a flow chart of a method 400 of retrofitting a gaming device of an embodiment. In an example, the method involves connecting 410 a memory expansion board 250 to a memory expansion port 207 of a main board 201 of the gaming device 201, wherein the memory expansion board 250 comprises a programmable logic device 252 configured to execute a random number generator and write random numbers into one or more registers of the memory expansion board 250 accessible by the main board 201, and at least one connector 281 for connecting a memory module 254 comprising game program code to the memory expansion board 250. In some examples, at least one memory module 254 comprising game program code is connected to said at least one connector 281.
[0069] The method 400 also involves updating 420 system software in a memory 208 of the main board 201 to include instructions which when executed by a processor 204 of the main board 201 cause the processor 204 to read random numbers from the one or more registers of the memory expansion board 250 when the processor requires random numbers. The processor 204 also executes any game program code in a memory module 254 on the memory
16 22586781_1 (GHMatters) P111479.AU.1 expansion board 250. 13 Apr 2026
[0070] In another embodiment, instead of replacing use of the RNG provided by the operating system code, the gaming device 200 uses random numbers from the memory expansion board 250 to improve operation of the RNG provided by the operating system code.
[0071] In one example, the RNG provided by the operating system code 2019210586
incorporates the “Fortuna” algorithm. Fortuna is described in “Practical Cryptography” (Ferguson and Schneier, 2003) and provides a cryptographically secure pseudorandom number generator (CSPRNG). Other CSPRNGs may be used instead of Fortuna.
[0072] Fortuna can be implemented a number of ways, however, one implementation includes the use of an AES (Rijindael) 256 bit block cipher key and a 128 bit counter to run the cipher in counter mode as well as using SHA- 256 for hashing and 32 pools of entropy.
[0073] In an example, each entropy pool is a SHA-256 hash of the entropy data. Entropy is added to one entropy one pool at a time and added to each entropy pool by cycling through all 32 pools.
[0074] Examples of entropy sources include unpredictable events within the gaming device 200 such as interrupts from peripherals and messages placed in internal message port(s).
[0075] In an example, to form each item of entropy data every item of entropy has a time (counter) from a high precision timer appended to the data to prior to being hashed.
[0076] In an example, values from the RNG 259 of memory expansion board 250 are also used as an additional source of entropy. In an example, these values are used as an additional source of entropy during specific parts of the algorithm rather than as a constant source of entropy. For example, at bootup of the gaming device or during a reseed event. In one example, values from RNG are logically combined with seed values store for use by the RNG provided by the operating system code.
[0077] In further example embodiments, an additional hardware RNG
17 22586781_1 (GHMatters) P111479.AU.1
(HWRNG) can be provided by an Inter-Integrated Circuit (I2C) device. For 13 Apr 2026
example, where there is a spare memory socket on the main board intended for EEPROMs. A device could be added to this spare socket that functions as a HWRNG.
[0078] In another example, where there is a serial peripheral interface (SPI) bus it could potentially be used to access a HWRNG. 2019210586
[0079] In an example, the HWRNG could be a ring oscillator.
[0080] In an example embodiment, there is provided a gaming device comprising:
a main board comprising a processor, a memory storing system program code and an expansion port in data communication with a memory interface of the processor;
a memory expansion board connected to the main board via the expansion port, the memory expansion board comprising a device configured to execute a first random number generator and write random numbers into one or more registers of the memory expansion board accessible by the main board,
wherein execution of the system code by the processor implements a second random number generator and causes the processor to read random numbers from the one or more registers of the memory expansion board as a source of entropy for the second random number generator.
[0081] In an example, the system code causes the processor to read random numbers from the one or more registers of the memory expansion board as a source of entropy each time the gaming device is rebooted.
[0082] In an example, the system code causes the processor to read random numbers from the one or more registers of the memory expansion board as a source of entropy responsive to a reseed event.
[0083] In an example, the device configured to execute the first random number generator is a programmable logic device.
18 22586781_1 (GHMatters) P111479.AU.1
[0084] In an example, the first random number generator is a true-random 13 Apr 2026
random number generator.
[0085] In an example, the memory expansion board comprises at least one memory module storing game program, and wherein when the processor executes said game program code, the game program code requests random numbers be provided by said system code. 2019210586
[0086] In an example, said memory comprises game program code, and wherein when the processor executes said game program code, the game program code requests random numbers be provided by said system code.
[0087] In an example, each random number from the first random number generator comprises a first part and a second part and the first part and the second part are written into separate ones of two registers and the system code causes the processor to read the two registers to obtain the random number.
[0088] In an example, prior to reading the random number from the first random number generator, the processor polls a register of the memory expansion board to confirm that there is a random number available.
[0089] In an example, the first random number generator executed by the programmable logic device is configured to write generated random numbers to a first FIFO configured to hold a plurality of random numbers.
[0090] In an example, the programmable logic device comprises a second FIFO and the programmable logic device is configured to read random numbers from the first FIFO into the second FIFO.
[0091] In an example, the one or more registers are registers of the second FIFO.
[0092] Another example embodiment provides a method of operating a gaming device comprising a main board comprising a processor and an expansion port in data communication with a memory interface of the processor, and a memory expansion board connected to the main board via the expansion port, the memory expansion board comprising a device configured to execute a first random number generator and write random numbers into one or more registers, the method comprising:
19 22586781_1 (GHMatters) P111479.AU.1 implementing a second random number generator with the processor; 13 Apr 2026 and reading, by the processor, random numbers from the one or more registers of the memory expansion board as a source of entropy for the second random number generator.
[0093] In another example embodiment, there is provided a gaming device 2019210586
comprising:
a main board comprising a processor, a memory storing system program code and an expansion port in data communication with a memory interface of the processor; and
a hardware random number generator connected to the main board and configured to generate first random numbers,
wherein the processor executes game program code in order to generate game outcomes of a game playable with the gaming device and the executing game code requests second random numbers from system code executed by the processor in order to generate the game outcomes, and
wherein the system code executed by the processor implements a second random number generator in order to provide said second random numbers and causes the processor to obtain first random numbers from the hardware random number generator as a source of entropy for the second random number generator.
[0094] In another example embodiment, there is provided a method of operating a gaming device comprising a main board comprising a processor, a memory storing system program code and an expansion port in data communication with a memory interface of the processor; and a hardware random number generator connected to the main board, the method comprising
generating first random numbers with the hardware random generator;
executing system code by the processor in order to implement a second random number generator that outputs second random numbers including by obtaining first random numbers from the hardware random number generator as a source of entropy for the second random number generator; and
20 22586781_1 (GHMatters) P111479.AU.1 using said second random numbers to generate game outcomes of a 13 Apr 2026 game playable with the gaming device.
[0095] While the invention has been described with respect to the figures, it will be appreciated that many modifications and changes may be made by those skilled in the art without departing from the spirit of the invention. Any variation and derivation from the above description and figures are included in the scope of the present invention as defined by the claims. 2019210586
21 22586781_1 (GHMatters) P111479.AU.1
Claims (18)
1. A gaming machine comprising: a main board comprising a) a processor having a memory interface, b) a memory storing system program code, c) an expansion port in data 2019210586
communication with a memory interface, and d) a second random number generator; a memory module comprising game program code; and a memory expansion board connected to the main board via the expansion port, and, when connected, operable to be in data communication with the main board via the expansion port, the memory expansion board comprising: one or more registered accessible by the main board, and a device configured to execute a random number generator and write random numbers into the one or more registers, wherein when the processor requires one or more random numbers, the system program code causes the processor to read the one or more random numbers from the one or more registers, wherein the main board uses the one or more random numbers to operate the second random number generator, and wherein the memory module further comprises updating system software, which, when executed, further causes the processor to read the one or more random numbers from the memory expansion board instead of the second random number generator.
2. The gaming machine as claimed in claimed in claim 1, wherein the device is a programmable logic device.
3. The gaming machine as claimed in claim 1 or claim 2, wherein the random number generator is a true-random random number generator.
22 22586784_1 (GHMatters) P111479.AU.1
4. The gaming machine as claimed in any one of claims 1 to 3, wherein 13 Apr 2026
when the processor executes the game program code, the game program code requests the one or more random numbers be provided by the system code.
5. The gaming machine as claimed in any one of claims 1 to 4, wherein the memory comprises second game program code, and wherein when the processor executes the second game program code, the second game program 2019210586
code requests random numbers be provided by the system program code.
6. The gaming machine as claimed in any one of claims 1 to 6, wherein each of the one or more random numbers comprises a first part and a second part, and the first part and the second part are written into a first register and a second register, and the system code causes the processor to read the first register and the second register to obtain the one or more random numbers.
7. The gaming machine as claimed in any one of claims 1 to 5, wherein prior to reading the one or more random numbers, the processor polls the one or more registers of the memory expansion board to confirm that the one or more random numbers are available.
8. The gaming machine as claimed in any one of claims 1 to 7, wherein the random number generator executed by the device is configured to write generated random numbers to a first FIFO buffer configured to hold the one or more random numbers.
9. The gaming machine as claimed in claim 8, wherein the device comprises a second FIFO buffer, and the device is configured to read the one or more random numbers from the first FIFO buffer into the second FIFO buffer.
10. The gaming machine as claimed in claim 9, wherein the second FIFO buffer comprises the one or more registers.
11. The gaming machine of any one of claims 1 to 10, wherein the memory interface includes a first area for addressing the memory.
23 22586784_1 (GHMatters) P111479.AU.1
12. The gaming machine of claim 11, wherein the memory interface further includes a second area operable to address input/output devices.
13. The gaming machine of any one of claims 1 to 12, wherein the game program code, when executed, causes the processor to operate with a display device to display a play of a first game, and wherein the memory is operable to 2019210586
store second game program code, when executed, causes the processor to operate with the display device to display a play of a different second game.
14. The gaming machine of any one of claims 1 to 13, wherein the memory expansion board further comprises a second processor operable to seed a plurality of keys, and the random number generator is operable to produce the one or more random numbers with the plurality of keys, when the random number generator is initialized.
15. The gaming machine of any one of claims 1 to 14, wherein, in response to the main board attempting to read from the memory module before initialization is complete, the memory expansion board is operable to reset the main board.
16. The gaming machine of any one of claims 1 to 15, wherein the memory module is embedded in the memory expansion board.
17. The gaming machine of any one of claims 1 to 16, wherein the random number generator is operable to sample the one or more random numbers continuously and feed the one or more random numbers into a FIFO buffer.
18. The gaming machine of any one of claims 1 to 17, wherein the random number generator is a hardware random number generator.
24 22586784_1 (GHMatters) P111479.AU.1
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/856,983 US11341809B2 (en) | 2019-06-26 | 2020-04-23 | Gaming machines having retrofittable insertable memory expansion board with onboard random number generator |
| US17/751,606 US11756378B2 (en) | 2019-06-26 | 2022-05-23 | Gaming machines having retrofittable insertable memory expansion board with onboard random number generator |
| US18/230,439 US12165468B2 (en) | 2019-06-26 | 2023-08-04 | Gaming machines having retrofittable insertable memory expansion board with onboard random number generator |
| US18/937,217 US20250069469A1 (en) | 2019-06-26 | 2024-11-05 | Gaming Machines Having Retrofittable Insertable Memory Expansion Board with Onboard Random Number Generator |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2019902239A AU2019902239A0 (en) | 2019-06-26 | Memory expansion board with random number generator | |
| AU2019902239 | 2019-06-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| AU2019210586A1 AU2019210586A1 (en) | 2021-01-21 |
| AU2019210586B2 true AU2019210586B2 (en) | 2026-04-30 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11195367B2 (en) | Methods and systems for overlaid pay modalities on selected symbols in gaming machines | |
| US10720015B2 (en) | Enhanced electronic gaming machines and methods for same providing merged game matrices with merged symbol set | |
| US10818128B2 (en) | Bonus wheel with top-level progressive award | |
| US20240177556A1 (en) | Merged Game Matrices on an Electronic Gaming Machine | |
| US11257321B2 (en) | Enhanced electronic gaming machines and methods for same providing merged game matrices with merged symbol set | |
| US11961358B2 (en) | Gaming system with symbol-driven approach to randomly-selected trigger value for feature | |
| US12002323B2 (en) | Systems and methods for modifying one or more symbols on one or more still-spinning reels of a wagering game | |
| AU2026202613A1 (en) | A gaming device | |
| US20250069469A1 (en) | Gaming Machines Having Retrofittable Insertable Memory Expansion Board with Onboard Random Number Generator | |
| US20230082227A1 (en) | Systems and methods of electronic gaming including gesture-based player constructed symbol combinations | |
| AU2024201201B2 (en) | A gaming machine | |
| US20180268658A1 (en) | Gaming machine with concurrent activatable wager options and individually selectable wager amounts | |
| AU2019210586B2 (en) | Memory expansion board with random number generator | |
| AU2024201105B2 (en) | A gaming device | |
| AU2020100431A4 (en) | An graphical user interface providing simplified display of game events | |
| AU2019210586A1 (en) | Memory expansion board with random number generator | |
| US20210280012A1 (en) | Active mystery feature | |
| AU2020244390A1 (en) | Gaming system with symbol driven mystery feature game |