Qcom Protocol v167
Qcom Protocol v167
QCOM Protocol
Version 1.6.7
© The State of Queensland (Department of Justice and Attorney-General) 2017. Copyright protects this publication.
Enquiries should be addressed to [email protected]
The information contained herein is subject to change without notice. The copyright owner shall not be liable for
technical or other errors or omissions contained herein. The reader/user accepts all risks and responsibility for losses,
damages, costs and other consequences resulting directly or indirectly from using this information.
Copyright protects this publication. Your use of this publication is subject to the terms and conditions of the licence
agreement entered into between you and the State of Queensland, acting through the Department of Justice and
Attorney-General (‘the Department’). If you have not entered into a licence agreement with the Department, then you
are not permitted to use this publication except to the extent permitted by the Copyright Act 1968 (Cth). If you would
like to enter into a licence agreement with the Department to use this publication, please contact the Office of Liquor and
Gaming Regulation on 13 QGOV (13 74 68) or visit www.business.qld.gov.au/liquor-gaming
For further information, please contact the Office of Liquor and Gaming Regulation on 13 QGOV (13 74 68) or visit
www.business.qld.gov.au/liquor-gaming
Policy:
All EGMs installed in licensed venues in the state of Queensland must be connected to an
Electronic EGM monitoring system. The OLGR requires all new EGMs to communicate using
the same protocol with respect to the Basic Monitoring Service.
Please refer to the revision history for any policy in regards to the incept date of the
requirements in this version of the document.
Purpose:
The purpose of this document is to provide a precisely defined standard of communication for
an EGM, requiring low CPU processing requirements while maximising functionality.
Scope:
Prerequisites:
This document assumes the reader has a thorough knowledge of EGMs and their operation
as well as a Software IT/Computer systems engineering background with previous experience
in communications protocols.
Typical scenario for QCOM shown below. (Note, QCOM is a LAN Protocol and the LAN type shown
is an example only)
GMNS compliance
RCR feature implemented as per GMNS (for EGMs supporting hoppers) CP:2
Floating point number support.
NVRAM required for QCOM (estimate):
o ~4k bytes (event queue + misc) + ~ 32..64 bytes per game variation.
A PC compatible based protocol simulator is available from OLGR subject to licensing arrangements.
A QCOM Protocol Software Development Kit is also available.
This is an important companion document to QCOM. This document lists all the SC
requirements on how to communicate to an EGM via QCOM. This document is
highly applicable to EGM monitoring system developers and developers of Value
Added Services such as player loyalty and jackpot systems.
This document defines the Local Area Network EGM Interface Specification that QCOM uses
in QLD. EGM manufacturers and monitoring system operators and developers must obtain a
copy of the above document
Hashing Algorithms
EGM manufacturers must obtain a copy of the above document in order to implement program
hashes. It contains a list of acceptable algorithms and also details what data must be included
in the overall program hash result.
The above is required by EGM manufacturers when wishing to implement remote software
upgrade support.
This document specifies the electronic data transfer formats between the OLGR and QLD
based LMOs. EGM monitoring system developers for the QLD market must obtain a copy of
this document.
EGM Monitoring System developers for the QLD market must obtain a copy of these
documents.
A summary of mandatory and optional sections will be added to this section at a later stage (todo).
When developing QCOM from scratch, begin from the low level and work up. The recommended
order of implementation of QCOM sections is the same as the recommended order of a QCOM
evaluation. Refer to the QCOM checklist introduction for the order. As the highest priority the EGM
must correctly identify its protocol version in the DLL (see 14.3.1). This is to ensure the protocol
simulator knows what protocol version EGM it is communicating with.
It is recommended to start the implementation by firstly trying to decode messages from the protocol
simulator within the EGM and displaying the results on the EGM. Once working, try implementing the
General Status Response (15.6.1) with constant data in it and a hard-coded poll address. An issue to
note here is that QCOM is not completely a typical poll-response protocol, as the EGM must delay all
requested data for one response before sending. This is to lower CPU requirements by spreading the
message processing load over a longer period. Refer section 14.1 on how this is to be handled.
Extend the response to be much larger than it should be to ensure no problems later when it
comes time to implement the larger responses.
Extend polls and broadcast messages to their maximum length to ensure no side effects in
processing large messages.
Utilising the QCOM SDK sample event code implementation is also recommended and can save
much time in implementation of the QCOM event queues.
A special mention is made regarding QCOM’s Response Timeout Period (14.1.7). Please refer to this
section for more information.
All references in the document are hot-links; i.e. Control-click on a reference to jump to that
location.
A number of Bookmarks have also been defined for quick navigation to major sections in the
document.
2 Definitions
2.1 List of Abbreviations and Acronyms
^ “to the power of” (mathematical exponential operator)
ACIA Asynchronous Communications Interface Adaptor
BCD Binary Coded Decimal
CC Cancel Credit
CDC Communications Disabling Condition (Refer 6)
CEO refers to a delegated authority within the OLGR
CFF Common Field Format. Refer to section 15.1
CRC Cyclic Redundancy Check
CRanE Configurable Random Event. Refer to section 16.5.1.1.
CMCS Central Monitoring and Control System hardware and software
CMS As above
CPU Central Processing Unit
DS Digital Signature
ECT Electronic Credit Transfer
EGM Electronic Gaming Machine
ESD Electro-Static Discharge
GMNS Gaming Machine National Standards Document for EGMs (1.1)
HS Hot Switching
ID Identification
IIS Implement In Simulator (Internal Use Only)
LAN Local Area Network
LP Linked Progressive
LPCPA Linked Progressive Current Prize Amount (See Glossary)
LS Least Significant
LSB Least Significant Byte
LSD Least Significant Digit
NA Not Applicable
NV Non-Volatile
PID Player Information Display (Refer GMNS for more information)
PHA Program Hash Algorithm
PSD Program Storage Device
If an abbreviation used is not defined above, then refer section on Common Field Formats (15.1)
2.2 Glossary
Audit Mode
Refer to the latest version of the Gaming Machine National Standards for EGMs (1.1).
“C”
Cancel Credit
Cashless Mode
Refer 16.2.
Critical Section
Power or other disruptions can occur at any time on an EGM. In this document, a
critical section refers to any area of EGM program code that if interrupted while being
executed, could leave one or more areas of the EGM’s NV memory corrupted or cause
a function or calculation to return an incorrect result because the state has changed.
Examples: updating any NV variable that takes more than one CPU instruction to
update; updating an event queue; running self audit formula, or processing poll data
(14.1.22).
Door Open
Refers to the open state condition of either the main, console (cash box), processor,
belly or note acceptor doors on an EGM. Also in this protocol the stacker removed
condition is to be treated as if it was a door open condition (i.e. it is not a fault
condition and a return of the stacker will clear the condition). Refer 7.10.3.12 for
more information
In this document, the term “event” & “event queue” and all similar forms, unless
specified otherwise in terms of context, refer only to QCOM defined events and event
queues. Refer to section 7 for more information.
Fault Condition
A fault condition means an event has occurred on the EGM where either a hardware
component(s) of the machine can no longer perform the function(s) for which it was
designed, or some action has taken place which the EGM considers to be illegal
behaviour.
NB: Door opens and stacker removed conditions are not to be considered fault
conditions in this document. CP:3
The EGM must remain in a fault condition lockup until it is manually keyed off by an
attendant or via the General Reset Poll.
External Jackpot/s
This refers to any type of linked jackpot that can be won on the EGM that the EGM
does not trigger as a part of any of its games, i.e. the jackpot is triggered by a device
‘external’ to the EGM. (If the EGM has not received the External Jackpot Information
poll (15.4.7) then it would have no way of telling if it was on an external jackpot.)
Game
Group Meter
Idle Mode
Message Data
‘Message Data’ when stated and where its context is not specified, refers to the area
of a broadcast, poll or response message, starting from the function code of the
message, up to but not including the message CRC (i.e. it excludes the Data Link Layer
protocol items.)
Any string following “Message Format and Order:” indicates the fields and order of the
fields as they would appear in actual poll/response message packets. Each separate
field is enclosed in < > brackets. [ ] brackets enclosing fields indicates optional fields
that only appear depending on certain conditions and configurations. New lines in a
message format string mean nothing.
Log /
Logging
In this document, the terms “log” and “logged” and all similar forms, when used in the
context of “events” refer to the process of an EGM creating a new QCOM defined event
in memory and pushing it onto the applicable QCOM event queue for subsequent
transmission via an Event Response (15.6.9). Refer to section 7 for more information.
In this document the ‘LP Turnover Meter’ refers to the applicable turnover towards a
jackpot (i.e. before the percentage contribution is taken out). An EGM must have one
unique LP Turnover Meter per game with a LP component. In a single variation
game this meter is equal to a games multi-game/variation turnover meter. In a multi-
variation multi-game EGM, each LP Turnover Meter is equal to the sum of each
game’s multi-game/variation turnover meters. In a single game EGM, it is also equal
to the EGM’s total turnover meter except it excludes RCR turnover * and other games
total turnover in a multi-game EGM. CP:4
The LP Turnover Meter is currently sent by the EGM in two response types; the
Progressive Meters Response (15.6.3) and the Meter Group/Contribution Response
(15.6.8) PAMT fields. Refer to section 10.6 for more information on linked
progressives.
* RCRF Turnover is excluded from EGM triggered jackpots because this type of jackpot
cannot be won from playing the RCRF. However for external jackpots, typically all
EGM turnover including RCRF turnover, contributes to the jackpot and can trigger the
jackpot.
This means the current value of a jackpot prize of a linked progressive jackpot level.
This is the amount which is usually displayed to participating players. If the LP jackpot
was won this is the amount that would be paid to the winning player.
Lockup Condition
Mask Out
If any bit fields are labelled ‘mask out’, then this means that when reading any other
field from the hosting byte, the field/s labelled ‘mask out’ must not affect or be a part
of the data extracted. For example if a byte field is defined as:
ByteAAA:
Bit 0 FlgA
Bit 1…7 reserved, mask out
To access the value FlgA, an operation equivalent to (ByteAAA & 0x01) must be
performed (in “C” notation)
Meter
Poll cycle
This feature activated at the end of a hopper collect gives the player an option to
gamble any remaining credit less than the value of one hopper coin/token for a chance
to win a whole coin/token at the regulatory minimum RTP set for the jurisdiction. Refer
to the latest version of the Gaming Machine National Standards for EGMs (1.1).
Return To Player
Site
System
Session
Test Mode
Refer to the latest version of the Gaming Machine National Standards for EGMs (1.1).
Turnover
Variation
2.3.2 All bytes in this protocol are least significant bit transmitted first (denoted bit 0).
2.3.4 BCD fields in the protocol document are packed BCD, LSB and LSD first (with respect to
bit 0) within the byte. E.g. the BCD number 1234 would be transmitted as 0x34 first, then
0x12. When required to display BCD numbers they are simply displayed as decimal
numbers.
2.3.5 '0x' preceding a number (or ‘h’ following), denotes a hexadecimal number (base 16),
otherwise the number is decimal.
2.3.6 All value fields are unsigned numbers unless specifically stated as signed.
2.3.7 32 bit Floating point numbers are represented in the protocol by IEEE 754 floating point
numbers. (The IEEE-754 floating-point format is used in ANSI C & C++ compilers) e.g.
The number 987654321000.0 (9.87654e11) typically would be represented in hex as
0x5365F4C4.
2.3.8 In QCOM, ASCII printable characters are defined as characters in the ASCII range 0x20
(' ') to 0x7A ('z') inclusive and must be displayable by the EGM. CP:5
Specifically: !”#$%&’()*+,-./0…9:;<>?@A…Z[\]^_`a…z
NB: does not include ‘{‘, ‘|’, ‘}’ and ‘~’ characters (ASCII 0x7B…0x7E) but there is no
issue if these characters are supported by the EGM
The ‘^’ character and Cash Ticket Printers – special case: QPV1.6.7
Many brands of ticket printers consider the ‘^’ character (ASCII 0x5E) to be a control
code and will not print this character (and possibly the whole string it is embedded in).
Accordingly the EGM for any QCOM text field destined for a cash ticket must either (pick
one): CP:6
The above only applies to cash-ticket related text fields. Specifically these are the Site
Details (15.5.5): STEXT & LTEXT fields and the Cash Ticket Out Request
Acknowledgement Poll (15.4.10):CTEXT fields. The EGM must still support the ‘^’
character (i.e. treat it as printable) for all other text string fields used in QCOM. CP:7
2.3.9 [] brackets indicate an optional item or field usually depending on other variables.
2.3.12 Unless specifically stated otherwise, all requirements in this document primarily apply to
EGM manufacturers.
1. After a RAM clear the EGM must not respond to or process any polls or broadcasts. Also
refer to section 8.1 for EGM Defaults upon an EGM RAM clear.
2. An EGM serial number must be manually entered in a function provided in either test or
audit mode on the EGM (See 3.1.2 for requirements).
3. Any other required, one-time EGM setup parameters not covered by the protocol (e.g.
button panel selection) must be requested and entered before the EGM proceeds any
further. CP:8
4. Once configured with a serial number and other manually entered items, the EGM must
no longer allow a Demonstration Mode (if applicable) CP:9.
5. The EGM may now commence responding to the SC once it has been assigned an initial
poll address. In order to obtain a poll address to respond on, the EGM must start
processing Broadcast Messages for the Poll Address Configuration Broadcast Message
(15.5.4).
6. Once responding, all remaining items required for configuration will then be sent from the
SC to the EGM via the EGM Configuration Poll (15.4.2), EGM Game Configuration Poll/s
(15.4.3) and Progressive Configuration Poll/s (15.4.6)which assigns the EGM with
denomination, game variation, progressive information (if applicable) and other various
parameters.
This completes EGM initialisation on the QCOM protocol. Also refer to the section on EGM defaults at
RAM clear (section 8.1). Upon a power failure at any stage of the configuration process, normal state
recovery rules apply (i.e. you should not have to start over and the EGM should return to the state
(above) it was in prior the power fail). CP:10
The setup function must accept only valid serial numbers which are 6 digit (packed BCD) numbers.
CP:13
Any value entered in the setup function must be able to be verified by the user before being
permanently accepted and write protected by the EGM. The act of permanently saving the serial
number must be unique and difficult to perform by accident CP:14
Once saved, the serial number must not be able to be changed unless the EGM is RAM cleared. CP:15
The default serial number initially offered in the setup function is zero, alternatively it is permissible to
restore a previously saved serial number from EEPROM (or equivalent) as the initial default for
confirmation or possible change.
(*Acceptance of the overall legibility of the serial number setup feature on the EGM is at the discretion
of the CEO CP:16.)
(Denomination hot-switching was added in QPv1.6) EGMs may support Denomination Hot Switching
at the discretion of the EGM manufacturer. If supported, the EGM will allow its credit denomination to
be changed via the EGM Configuration Poll (15.4.2). Capability for Denomination Hot-Switching is
indicated by the EGM via the EGM Configuration Response (15.6.12).
The following requirements apply to EGMs that support Denomination Hot Switching: CP:17
The EGM must have an on-screen display of its current credit denomination. E.g. “1 credit = 1
cent”. The display priority must be equivalent to the player clock display (refer Appendix A).
If the EGM has progressive games, then the progressive game component parameters must
not change on a denomination switch otherwise the EGM must not offer Denomination Hot
Switching. Progressive parameters (such as SUP, CEILING, or HRATE) typically have to
change for each denomination to maintain the RTP and will therefore progressive EGMs will
generally not be able to have their denomination changed.
The current reported list of variations for a game (15.6.11) must not change over a
denomination hot-switch. i.e the reported list of variations must still all be valid for the new
denomination otherwise the EGM must reject the new denomination.
The credit denomination of each play must be clearly displayed in last play recall.
The EGM must not offer hot-switching of denomination if any static artwork on the EGM needs
to be manually updated.
If denomination hot-switching is supported by the EGM, the EGM may allow its credit denomination to
be changed via the EGM Configuration Poll (15.4.2) when the following conditions are satisfied: CP:18
Configuration via the EGM Configuration Poll (15.4.2) has been previously successfully
completed on the EGM;
The EGM is in idle mode; CP:19
The EGM has zero credit;
The EGM MEF = 0,
An EGM Configuration Poll is received that contains a valid manufacturer ID, valid serial
number and a new valid credit denomination value in the DEN field.
If the above conditions hold, then the EGM will accept the new credit denomination, log the ‘EGM
Denomination Enabled Event’ (7.10.3.31) and update the EGM’s display of all current meters in units
of credit to allow correct betting to take place for the next play. CP:20 Due to possible side effects that
can occur from changing an EGM’s denomination (e.g. number of playlines may change), then it is also
acceptable for the EGM to set the current game display to its RAM clear default state (i.e. display a
non-winning combination and zero the bet & win meters etc).
On EGMs that support denomination hot-switching, once configuration has been completed via the
EGM Configuration Poll (15.4.2), the EGM must not process any other fields in the EGM Configuration
Poll apart from the validating the MID & SER fields and processing the DEN field for a possible credit
denomination change. CP:21 i.e. it must not be possible (without an EGM RAM clear) to change any
other field set exclusively by the EGM Configuration Poll.
If this feature is allowed by the regulatory authority, manufacturers may supply games that support a
credit denomination of less than 1 cent. E.g. 1 credit = 0.1 cent. If supported by the EGM for a game,
a credit meter multiplier must be hard-coded into the game. From the protocol’s point of view the EGM
will still appear to the SC at whatever credit denomination was set by it, but the EGM will be displaying
credit to the player multiplied by the hard-coded amount. All bets wagered and all non-progressive wins
(If this feature proves popular there may be extended support this feature in future versions of QCOM.)
‘Player Selectable Denomination’ refers to games where the player may choose to play the game at a
denomination of their choosing. EGM manufacturers wishing to provide player selectable denomination
games may do so with the approval of the regulatory authority. The EGM manufacturer must contact
the regulatory authority before implementing player selectable denomination games for any special
requirements.
There are two possible ways QCOM can support player selectable denomination games in QCOM.
Which particular method to be used is at the discretion of the regulatory authority.
1. Each available denomination version of the game appears via QCOM as a separate game
(i.e. GVN) in the EGM (the reason for doing this is this allows for individual game
denomination meters to be tracked via the Multi-game/Variation Meters response (15.6.6)).
All denominations offered must be evenly divisible by the EGM’s credit denomination
(15.4.2) which the EGM must require to be set at 1 cent, thus the EGM will appear via
QCOM to be still operating at the base credit denomination even though their actual
denomination may be a multiple of this value. All QCOM requirements pertaining to a multi-
game EGM would apply.
2. The game appears via QCOM as a single game operating at a one cent credit
denomination.
The maximum denomination that may be offered in a player selectable denomination game is limited
by MAXDEN (15.4.2).
3.2.2 Meters in audit mode must be able to be displayed on the EGM in a RAM error condition.
CP:27
3.2.3 Upon the occurrence of any RAM corruption, program mismatch or fault condition
requiring a RAM clear to reset, the EGM must immediately stop responding to polls from
the SC CP:28. This is to prevent the EGM from transmitting any corrupt information while it
resides in any of these error conditions.
bet adjustment,
must all be considered to be a part of idle mode under these requirements. This is important for the
implementation of all ‘return to idle’ mode operations (refer section 3.3.2 below) and other requirements
that apply ‘during idle mode’. Refer Appendix A.
Idle mode may be considered “paused” if interrupted by a higher priority concurrent state such as
audit/test modes, door open, or fault condition. If idle mode is paused then ‘during idle mode’
requirements do not apply.
Please note that GMNS has a different definition of idle mode. QCOM’s def. of idle mode does not
extend beyond the scope of this document.
If queued, QCOM requires an EGM to perform a number of tasks upon return to idle mode. The EGM
may return to idle mode from any of the following situations; a power up, a completed play, a fault
condition, a door open condition, a lockup condition or test/audit modes.
Under QCOM, any combination of the following events may be queued in the EGM to occur upon return
to idle mode:
1. A large win lockup with respect to the LWIN threshold. Refer 15.4.5. (Test once per play only.)
2. A win payout with respect to the NPWINP/SAPWINP thresholds. Once per play only. Refer 15.4.5.
(QPv1.6)
3. A System Lockup request as a result of the System Lockup Request Poll (15.4.9).
4. An ECT out as a result of the ‘ECT from EGM’ Lockup Request poll (16.3.2).
5. Any accumulated ECT-to-EGM as a result of the ECT to EGM poll (16.1.1) including Cashless
mode bit updates.
6. A cash-out as a result of the Cash-Out Request Poll (15.4.12).
7. Any changes as a result of a queued EGM Game Configuration Change Poll (15.4.4)
The order in which the EGM performs the above items if queued is important for constistent behaviour
between different manufacturer’s EGMs. Accordingly, the above tasks must be performed by the EGM
in the order listed above. CP:29 (QPv1.5 preferred order of priority was: ECT-Out, ECT-In, SL, CC, &
Game changes. Order was not mandatory except for ECT out/in)
The EGM must check for any of the above events upon every return to idle mode. If the EGM is
returning to idle mode and has to perform one of the above events, then when finished performing an
event, the EGM must restart from the top of the above list again. CP:30 (QPv1.5 this requirement was not
mandatory)
EGMs must ‘return to idle mode’ between every play to allow any of the above items to be executed if
queued. CP:31
If the EGM is already in idle mode then any of the above conditions are initiated immediately as they
occur. It is important to note that idle mode has a number of sub-modes as listed in the previous section
(3.3.1). None of the idle mode sub-modes listed in 3.3.1 are allowed to delay any queued return to idle
mode operations listed above, because the sub-modes are all defined as a part of idle mode and must
occur immediately when the EGM is in idle mode. CP:32
QPv1.6 QCOM EGMs must not automatically resume a hopper pay-out after an interruption during
the pay-out, e.g. door access, fault, power etc. The hopper pay must terminate upon return from the
interrupting condition. CP:33 A hopper payout may be restarted by pressing collect after the condition is
cleared. This is to allow a patron to be easily hand-paid by a cancel credit (via the Cash Out Request
Poll 0 or via Cancel Credit function in audit mode (if supported)) in the event of a recurring hopper
fault.
QPv1.6 EGMs with hopper weight sensors must cross check the hopper level ascertained from the
weight sensor with the current EGM hopper level meter. Mismatches are reported via the Hopper
Level Mismatch Event (7.10.1.5).
The EGM hopper level meter must never be allowed to go negative (either as a result of an
adjustment made in test/audit mode CP:34 or a collect CP:35); a negative operation on the hopper level
meter must produce a zero value for the hopper level meter.
ECT in/out must not affect the hopper level meter. CP:36
All refills which an EGM is commanded to record, will be of a variable amount which is specified by
the attendant at the time of the refill CP:38, with the default refill amount as set via the Hopper
Maintenance Poll. CP:39
A refill option should still be possible as an option during hopper empty and jam fault conditions and at
any time test or audit modes are available, as per GMNS. CP:40
EGMs must also provide the following functions in either test or audit mode of the EGM:
The ability to record a refill of any amount with the default value as set by the hopper
maintenance poll (15.4.17). CP:41
Display and adjustment of the current hopper level meter (3.4.1) CP:42.
All meters displayed must be labelled with units. CP:43 The above functions must be intuitive (no user
manual should be required), logical and foolproof. * This cannot be stressed enough. All values must
be confirmed before accepting. CP:44
(*Acceptance of the overall legibility of the hopper maintenance feature on the EGM is at the discretion
of the CEO CP:45.)
Upon a collect button press in idle mode with credit, or upon a win payout (QPv1.6 refer
section 15.4.5), as the highest priority, if the EGM was in cashless mode, then an ‘ECT-
from-EGM’ lockup (16.3.1) results so long as the amount to be transfered is less than
MAXECT (Section 16). Failing that, or if the EGM was not in cashless mode, then a
hopper payout, Ticket Out, or Cancel Credit will result, depending on the EGM’s current
hardware configuration and the thresholds set in the Hopper/Ticket Printer Maintenance
Poll (15.4.17). CP:47
If in Cashless mode then perform ECT-out unless credit is >= MAXECT, then act as if
not in cashless mode (below).
If not in Cashless mode then the following rule applies with respect to the value of the
credit meter:
Perform Hopper Payout < COLLIM (15.4.17) <= Perform Ticket Payout
< TICKET (15.4.17) <= Perform Cancel Credit
3.5.2 All hopper CP:48/ticket printer collects CP:49, cancel credits CP:50, residual credit removal CP:51
and electronic credit transfers CP:52, must be displayed on the EGM in $.¢.
Typically Cancel Credit is an available option for the player as a part of the RCRF.
However if the EGM has a ticket printer, then the RCRF Cancel Credit option must be
replaced with a “Ticket Out” option instead. CP:53
QCOM EGMs must display its configured denomination to the player via its VDU and not
via physical static artwork CP:54
3.6 Other
3.6.1 QCOM Parameter Access Rights.
Any parameter or variable that QCOM can control must not be set or overridden by any other means
on the EGM (e.g. via a function in EGM audit mode), unless an overriding feature is a requirement
specifically stated by this document.
Where a QCOM variable or parameter requires special handling, such as being stored in EGM critical
memory (refer GMNS), then this requirement or other requirements will be specifically stated in this
document where necessary.
Where use of critical memory (refer GMNS) is not mandated, consideration must still be given to
minimising or eliminating critical sections (refer 2.2) of EGM program code.
However, as a general minimum requirement for the display of any QCOM related text data on the
EGM, unless stated otherwise, any text display of QCOM related text data, must use a 10 point or
higher font and be at least 5mm high1 (unless stated otherwise) when measured directly off a properly
adjusted EGM VDU. In addition, every pixel in the original font definition, when displayed, must map to
at least one corresponding VDU pixel. For example, a 12 point font would be unacceptable if it was
displayed in VDU area which was only 8 VDU pixels high in resolution.
For the purposes of evaluating the above requirements, for VDUs with separated Red, Green & Blue
pixels, each set of RGB pixels is to be considered one VDU pixel.
Prominence, clarity (especially when scrolling), contrast and colour blending are also factors in
determining acceptability of any text display and acceptability is at the discretion of the CEO, OLGR.
In regard to the display of faults and “Lockup Conditions” on the EGM, (Refer section 15.6.1 STATE
field description for a list of possible ‘lockup conditions’ on the EGM), ideally any fault/lockup condition
on the EGM should appear as a box overwriting the game result window (e.g. the reel display) with the
required information displayed clearly inside. If the display box can be transparent so the the underlying
graphics are still distinguishable then this would be even better. All meters on the game display must
remain visible during the lockup. Acceptance of the overall legibility of the display of any fault/lockup
condition on the EGM’s display is at the discretion of the CEO CP:55.
In general, if a hardcoded message is displayed on the EGM, then it should not use abbreviations or
acronyms, or little understood terms if the target audience may be a player or attendant
1 Font height is to be measured off any single capital letter of the font used.
All monetary meters must be displayed in $.¢. Hex numbers with no default units (e.g. GVNs)
must be displayed with leading "0x". BCD values must be displayed as decimal, not hex (i.e
no “0x”). All other values must be displayed in decimal unless stated otherwise. Units should
always be clearly indicated. CP:57
The following items must be included in the EGM’s audit mode displays:
Note if the values to be displayed in EGM audit mode under section 4.1 are not displayed/refreshed in
real time, then the EGM must also display the following message ‘Values at: <ts>’ (where <ts> equals
the timestamp at which the data was sampled for display) on each applicable audit mode screen. CP:58
4.1.3 The version number of this protocol document under which the EGM is programmed to
operate. This number is hard-coded into the EGM program. E.g. “1.6.7". Labelled
PVERSION. CP:59
4.1.4 The Manufacturer ID (2 digits decimal) and EGM Serial Number (display in decimal, 6
digits) CP:60
4.1.5 The last received Site Details Broadcast message data CP:61.
4.1.6 All Meters referred to in this document CP:62. Refer Meter Group/Contribution CP:63, Multi-
game/variation meters (in addition, also display per Variation, the current total game
metered RTP as well as theoretical RTP CP:64), Progressive Meter, Bet Meter and Player
Choice Meter responses CP:65.
It is noted some meters have different definitions between QCOM and GMNS (e.g. Cancel
Credit, Progressive and Money Out meters). The EGM must display GMNS’s meters in
audit mode as required/defined in GMNS as the default EGM meters. CP:66 QCOM meters
must be displayed as defined on a separate screen from GMNS meters in audit mode as
a complete list. CP:67 Meters transmitted via QCOM must be as per QCOM’s definition.
4.1.7 Current total metered EGM RTP. In % to 2 decimal places CP:68. Refer to 12.1.1 for the
formula.
4.1.8 Indicate whether the EGM has been successfully configured via the EGM Configuration
Poll (15.4.2) CP:69
4.1.9 QPv1.6 For each game in the EGM, indicate if the game has been configured
successfully via the EGM Game Configuration Poll (15.4.3). CP:70
4.1.10 QPv1.6 For each progressive game in the EGM, in addition to PRET (15.6.11), the EGM
must display each game’s current total theoretical RTP (as PRET does not include the
progressive component). CP:71 (NB: A formula for a standard progressive level’s RTP
[based on parameters] is available in the OLGR Jackpot Systems Min. Requirements
document. For LPs the EGM must assume 0% RTP contribution from the LP levels until
the Progressive Configuration Poll (15.4.6) has been received and accepted.)
4.1.12 Refer to the Manufacturer Specific event (RTEXT event) section 7.10.1.16. QPV1.6.7
In the QCOM related pages in audit mode; display a list of all implemented RTEXT
events in the machine. One line per event. Columns must include: event text; event
description. If the event text is dynamically generated it is acceptable to display the
prefilled event text template, e.g. “game %d of %d”. QPV1.6.7
(*Acceptance of the overall legibility of the displayed information on the EGM is at the discretion of the
CEO CP:73.)
Note: If an item value is being displayed in audit mode in real time, then this requires no further
clarification, however, it must be clear throughout EGM audit mode as to which items are not being
displayed in real time and which are. E.g. separate the two types via pages or clearly marked
sections. CP:74
4.2.1 The current poll address (display in decimal, 1…250, 0 may be used to indicate the EGM
needs a PA) CP:75. (QPv1.5 PA display was not real time)
4.2.2 The last received date and time received from the SC. CP:76 CP:77 Labelled SYSTEM
TIME. CP:78
4.2.3 The EGM's current RTC value, if present. TZADJ adjusted. Labelled RTC (LOCAL)
TIME. CP:79 CP:80
4.2.4 The total number of successful polls (i.e. with a valid CRC) to the EGM's designated poll
address (15.5.4) since last RAM clear. Labelled TOTAL POLLS. CP:81 CP:82
4.2.5 The total number of completed poll messages with CRC errors* received by the EGM on
its designated poll address (15.5.4) since last RAM clear. (A QPv1.5 EGM also counted
incomplete poll messages here, a QPv1.6 EGM tallies incomplete poll messages
separately, see below) Labelled CRC ERRORS CP:83. CP:84
4.2.6 The total number of CRC errors* (since last RAM clear) received on Broadcast Messages
with the broadcast poll address 0xFF. Labelled BCRC ERRORS. CP:85
(*A CRC error must be only counted when a CRC check is actually performed by the
EGM on a received message and the result fails. i.e. do not count CRC errors for
messages with invalid length fields or incomplete polls)
4.2.7 (QPv1.6) The total number of received incomplete messages to the EGM’s address or
on broadcast messages. Labelled INCOMPLETE. CP:86
4.2.8 The total number of UART overrun errors. Labelled OVERRUN CP:87. This should always
be zero CP:88 and is mainly for testing purposes. Also refer section 13.2.4.
4.2.10 QPv1.6 Last received QCOM protocol EGM program hash seed and completed*
calculated hash. In hex. Labelled SEED and HASH respectively. CP:91 Display a QPv1.5
seed and hash as MSB first hex numbers, for QPV1.6, display the values as LSB first
hex numbers with a space (or highlight) every 4th character.
*The EGM must not display a hash result if a program hash calculation is in progress.
4.2.11 Primary event queue % full. Labelled EVENT QUEUE % CP:92 CP:93
4.2.12 The current number of events yet to be sent and acknowledged by the SC. Labelled
QUEUED EVENTS CP:94. CP:95
4.2.13 Primary and secondary(QPv1.6) QCOM event queue displays CP:96 showing for each event:
date and time (format: dd/mm/yy hh:mm:ss & not TZADJ adjusted) CP:97
Event Sequence Number (2 digits hex)
Event Status i.e. queued, sent, or purged (either colour or letter codes are fine)
Event Code (4 digits hex)
Short description (EGM ROM space permitting) CP:98
Extra event data (clearly formatted) if any CP:99.
Events must be displayed in the order in which they were logged. Purged events must
still be displayed until overwritten. CP:100 Refer section 7.3.
4.3.1 The game's name, variation and theoretical total percentage return*. Labelled: "name
VAR XX XX.XX%" CP:101. CP:102 (* special coding will be required here to incorporate the
RTP from customSAP CP:103 & LP CP:104 games. NB: The EGM must assume LP PRTP =
0 until the Progressive Configuration Poll has been received and accepted {refer 15.4.6})
4.3.2 The local date and time (i.e. a TZADJ adjusted RTC timestamp) the play commenced.
CP:105
4.3.5 The game denomination of the play (only mandatory if the game supports Denomination
Hot-Switching 3.1.3.1). CP:108
All Communication Disabling Conditions in this protocol are defined in this section. Communications
Disabling Conditions disable only the following functions on the EGM:
new game play (including all bet and play buttons) CP:109
new coin/token CP:110/bill/ticket acceptance CP:111 (i.e. physical credit acceptance)
With one or more active CDCs, any play (including free games) in progress or state/fault/lockup in
progress must first complete until the EGM returns to idle mode CP:112, however the disabling of
physical credit acceptance must occur immediately CP:113 (QPv1.6.4).
During a CDC, current credit must still be able to be collected by all the usual methods (3.5.1) CP:114,
all EGM test functions CP:115 and audit mode must be accessible CP:116, System Lockup must still
function CP:117, game configuration changes must still take place (as a result of 15.4.4) CP:118 and ECT
to/from the EGM must still function (for those CDCs where communication with the EGM is still
possible, or if queued before the CDC). CP:119
CDC’s must not prevent the EGM from returning to idle mode from any other mode CP:120. CDCs must
not be considered to be a stand alone EGM STATE (15.6.1) or fault condition. CDCs may be active
concurrently across all EGM modes and states, where active CDCs are simply displayed during EGM
idle mode.
(If the SC wants to implement a disable where credit input is disabled but game play is not, then it may
use the credit meter limit field CRLIMIT sent in the EGM Parameter Poll.)
An EGM will only enable new game play and credit acceptance, provided no communication disabling
conditions are active and no other fault/lock up conditions exist.
During active Communications Disabling Conditions in idle mode, the EGM must remove enticements
to insert credits CP:121 and play (e.g. 'play now' and button lights) CP:122 from its display. If there is credit
on the EGM in idle mode, any enticements to collect must remain during Communications Disabling
Conditions. CP:123
QPV1.6.7
The EGM may emit a sound denoting CDC entry if desired; however the EGM must not emit a
sound denoting CDC entry if the EGM was already in one or more CDCs. CP:124
It must be possible to access EGM test mode and audit mode, during communication disabling
conditions. CP:125
The EGM must also perform the procedures in section 8.3 (EGM Communication Defaults) upon entry
into a Communication Time-Out.
section 8.3.2 regarding when a poll address becomes ‘undesignated’ and section
& QPV1.6.7 Refer
15.5.4 regarding poll address designation. If the EGM does not have a designated poll address, then
a Communications Timeout CDC must not occur. (This prevents EGM’s popping in/out of CT when
being continually NAK’d and more importantly it avoids any CT event spam (s 7.10.3.6).)
QPv1.6 The EGM shall clear this CDC on the next successful poll address configuration for the EGM
received via the poll address broadcast (15.5.4), and re-enable again provided no other disabling
conditions exist. CP:128
(QPv1.5 FYI EGMs re-enabled on the next successful poll to its address (after poll address
configuration has been received), provided no other disabling conditions exist. CP:129
NB: QPv1.5 - An issue was that a QPv1.5 EGM would not accept a new poll address once assigned
until either the EGM is powered down or until at least one successful poll is received on that address
CP:130
The EGM must clear this CDC on the next positive acknowledgement from the SC (refer 14.2.1) to
the EGM’s designated poll address and enable provided no other disabling conditions exist. CP:132
Despite the name this CDC (or any other CDC for that matter) is not to be treated as a fault condition
by the EGM.
(QPv1.6) The EGM must also perform the procedures in the EGM Communication Defaults (section
8.3) upon entry into a Communications Fault. CP:133
This CDC is optional but is provided because some EGMs may find it easier to apply VAR/total game
RTP validation in idle mode of the EGM rather than during configuration of the game. CP:141 E.g. For
progressive games, there is a period of time from when the game is configured (15.4.3) until the
Progressive Configuration Poll (15.4.6) is followed in the game’s RTP may be temporarily out of
range. (Another option with respect to progressive games, would be for the EGM to consider the
game to be disabled until the required Progressive Configuration Poll is received)
* In some cases, this CDC may not be addressable without an EGM RAM clear unless the EGM is a
multi-game EGM, or the game is a progressive, or the game supports variation hot switching (9.2).
The display of Communications Disabling Conditions during idle mode must be considered in this
protocol to be a part of idle mode. CP:146 (Refer glossary section 2.2 definition of “Idle mode”).
(*Acceptance of the overall legibility of the display of CDC’s on the EGM is at the discretion of the CEO
(refer 3.6.3) CP:147.)
There are two acceptable methods for the display of the individual CDC messages, display the full text
or abbreviated letter codes.
The corresponding text used to display communication disabling conditions in full (as described above)
must be as follows:
Alternatively, or when the EGM cannot display all of the above text at once, the EGM must display
"PLAY DISABLED XXXXX", where "XXXXX" represents a string where each character denotes an
active communications disable condition. CP:157
For Example: "PLAY DISABLED ND", indicates Communications Fault and EGM Disabled are
current.
"PLAY DISABLED TFS", indicates Communications Time-Out, Event Queue Full and
Site Disabled are current.
The ideal CDC display would be a transparent box overlaid on the last game result display area.
QPV1.6.7: The CDC display while visible, must include, a poll cycle heartbeat display indicator 1. The
indicator must ‘tick’ upon each received date and time broadcast message (15.5.1) with a good CRC
processed by the EGM. Ideally the indicator needs to be uniform across all makes of machines, try to
make it a simple line roughly the size of a character located on the RHS of the CDC or machine
display, that rotates 45 degrees clockwise each ‘tick’. (QSIM for example cycles a text character
through: /-\| to achieve this). E.g. “Play disabled: TD /”, “Play disabled: TD -”, “Play
disabled: TD \”, “Play disabled: TD |”. However the tick indicator may be any
1 The tick may also be located outside of the CDC display if that is easier to implement.
Please refer to the glossary (section 2.2) for a definition of the terms “log” and “logged” and similar
forms when used this document in the context of “events”.
Any queries regarding implementations of the EGM QCOM event queues can be readily answered by
also having a look at the demo implementation program (qceq.exe) and source code contained in the
QCOM SDK.
7.1 General
7.1.1 The EGM must have two QCOM event queues, a large primary event queue and a
smaller secondary event queue. The main functional difference between the two queues
is that the EGM automatically purges (deletes) events from the secondary event queue
as the SC acknowledges them after being transmitted. However, the primary event
queue is only purged by the EGM upon command from the SC. Note, a SC will only
send the purge poll for events that have been confirmed to been stored in the host
monitoring system computer in a fault tolerant manner.
7.1.2 The event queues must be implemented as a circular buffer. This allows for events
‘purged’ via the Purge Events Poll (15.4.15) to still be displayed in audit mode (4.2.13)
for the longest possible period of time until they are overwritten by new events (also refer
7.3). Refer 7.11 for an illustration.
7.1.3 The EGM must store events in either the primary event queue or the secondary event
queue as specified in the sections following. The EGM must ensure that events received
by the SC (via Event Responses (see 15.6.9) are received in the order in which they
were created (from each event queue respectively) CP:158. This rule applies under all
conditions; e.g. during normal operation, after interruptions and after negative
acknowledgements (14.2.1). Related 7.5.4.
7.1.4 New events are always pushed onto the primary event queue unless it is full, or the
event is defined as an “unnumbered” event in which case the event is pushed onto the
secondary event queue.
7.1.5 All events must have a date and time stamp (not TZADJ adjusted) and must be logged
upon the occurrence of the event as per its definition (Refer section 7.10) CP:159.
7.1.6 Upon the occurrence of an event as defined, the EGM must transmit the event, no later
than the following two responses (provided no higher priority responses or events were
pending). I.e. either of the next two responses must contain the event. CP:160
Unless otherwise specified for a particular event (e.g. 7.10.3.10 & 7.10.3.11), events
when triggered must be created & time-stamped with the current EGM Non-Volatile Real
Time Clock (NV-RTC) date and time (refer to section 7.8 for important notes regarding
RTC use). For EGMs which are not using a NV-RTC, the EGM must use the last
received date and time from the broadcast information messages for the time-stamping
of events CP:161.
Event time-stamps must not change for the life of the event.
7.1.8 Assuming the SC does not change the EGM’s time backwards; events must always be
logged in chronological order.
7.1.10 Events are variable in length as some events have additional data associated with them.
For example, a cancel credit amount or jackpot information (Refer Section 7.7).
7.2.2 The EGM remains disabled in an event queue full condition until a Purge Events Poll is
received which results in enough free space of at least two events* in the primary event
queue. CP:166
* as the last event is always the Event Queue Full event (7.10.3.5).
In this document, the meaning of the word “purge” when applied to QCOM event queue events means
to flag the event/s as “purged”, however the events are not actually destroyed by the EGM at that time.
An event flagged as “purged” is an event that is not resent to the SC upon a “Request All Logged Events
Poll” (15.4.14). So from the SCs point of view, purged events appear destroyed, but events flagged as
“purged” are not actually destroyed by the EGM until overwritten by new events. The reason for all of
this is to allow for “purged” events to be still displayed in audit mode of the EGM for as long as possible.
(4.2.13)
Purged events in a given queue (primary or secondary), must be overwritten in the order in which they
were created. A purged event must not be overwritten until all other available event queue space has
been first used to store new events.
The next expected event sequence number to be used by the EGM must be stored in NV-RAM. CP:168
7.5.2 The secondary event queue is used in a primary event queue full condition and for
events defined as unnumbered events (section 7.6). CP:170
7.5.3 Events stored in this queue are automatically purged by the EGM as they are
acknowledged by the SC. CP:171
7.5.4 If both the primary and secondary event queues have events to send, the oldest event
must be sent first (as indicated by the event’s date and timestamp). CP:172 (Related: 7.1.3)
7.5.5 If both event queues should become full, the EGM must discard new events until space
becomes available. CP:173
The EGM must consider the secondary event queue to be full until there is enough free
space of at least two events in the secondary event queue.
* as the last event is always the Secondary Event Queue Full Event (7.10.4.3).
7.5.6 Events which are logged and stored in the secondary event queue must have an event
sequence number of zero CP:174 and must not affect the next event sequence number
being utilised for the primary event queue. CP:175
7.6.1 If the secondary event queue is full, then new unnumbered events are discarded until
space in the secondary event queue becomes available.
7.8.1 The EGM RTC must be immediately updated by the SC broadcast message date and
time if the broadcast date and time is less than the current EGM date and time CP:177, or if
the EGM date and time is less then the broadcast date and time by more than a second.
CP:178 (Refer 15.5.1)
7.8.2 The EGM RTC is never allowed to get ahead of the SC time when logging events, as this
will cause the SC to generate invalid date and time events for the EGM. However,
setting the EGM RTC via the system time received in the broadcast message (15.5.1)
should result in the EGM RTC being slightly behind system time, due to protocol
7.8.3 The EGM RTC if used must be year 2000 compliant (note however that an EGM no
longer has to deal with any date less than the year 2000). CP:180
Two examples of methods are: 1. simply maintain a CRC per event. 2. To save memory,
it is possible to maintain one overall event queue CRC that is updated as events are
added the queue without having to recalculate the overall event queue CRC each time
an event is added. To do this, the overall event queue CRC is calculated by XOR’ing the
CRC for each event in the queue together. Then as events are added (or overwritten) to
the queue, to get the new overall CRC result for the event queue, simply XOR each
added/overwritten event's CRC into the overall CRC result to add / remove it from the
overall event queue CRC result. By this method, adding or overwriting events from the
event queue does not require a re-calculation of the entire event queue CRC for each
operation in order to maintain one overall event queue CRC. Refer to the QCOM SDK for
an example of this methodology.
7.9.2 Updates to event queues and event queue pointers/indexers/CRCs must be treated as
critical sections (refer 2.2) of program code.
7.9.3 The event queue integrity (i.e. CRC’s) must be validated at least once upon every EGM
power up. CP:182 An uncorrectable corruption of the event queue must result in a RAM
error on the EGM (Refer Section 3.2). CP:183
Refer to the QCOM SDK for an example implementation of the QCOM event queues.
Events are reported via the EGM Event Response (Section 15.6.9)
All EGM fault and lockup conditions (which require an attendant) which exist in an EGM, must have a
corresponding event code CP:184. Undefined event codes are reserved for future expansion. Event
codes greater than 0x7FFF are reserved for system use.
Event codes are ordered into groups (fault conditions, advisory events etc.), the event type is denoted
by the most significant 4 bits of the event code.
The implementation of all events listed in this section is mandatory unless stated otherwise, or if the
EGM simply does not have the overall hardware device (e.g. No note acceptor present). Events must
be implemented as described.
Note to Monitoring Systems developers. For event reports produced by monitoring systems for the
OLGR, the exact text to use for the event name is the section heading name when an event name
descriptor section is not already provided within the actual section for the event. Where the event has
For example, the EGM NV-RAM Cleared event (section 7.10.1.28) would appear in event reports as:
<SCID> <midserial> <dattime> <systemseqno> <seq> <ecode> EGM NV-RAM Cleared Serial No: 001654321
Monitoring System developers should refer to the latest “OLGR Monitoring system Minimum
Requirements Document” for more information on event reports for the OLGR.
AMT 4 bytes signed hex, equals current hopper sensor level minus hopper level meter, in
cents. LSB first, display as signed decimal currency of up to 11 characters.
Exception - If the hopper can actually detect a true internal jam (e.g. rotor not turning)
and it is also of the type that consistently always pays out to the last coin, then the
hopper level meter (3.4.1) does not need to be used in the generation of the hopper
jam or hopper empty events.
Extended Data:
RTEXT 16 bytes printable ASCII (refer section 2.3.8) including NULL (0x00) characters.
Right padded with 0x00’s as required. This field must always contain at least one
terminating NULL character (0x00).
RTEXT is a manufacturer assigned description of the fault (15 chars max).
This event is not intended for high volume use, use events 0x0017, or 0x0018 instead
if high volume logging of this event may be possible. Accordingly, all uses of this event
by the EGM must be approved by the OLGR before implementation CP:204.
*Be Advised; the above paragraph will become a mandatory QCOM requirement in all
EGM software submissions by 2007.
Related: Section 4.1.12 display a list of defined RTEXT events in the machine.
SER EGM Serial number (15.1.8), 3 bytes BCD, LSB first, display as 6 characters of
unsigned decimal.
MID EGM Manufacturer I.D. (refer section 15.1.7), 1 byte BCD, display as 2 characters of
unsigned decimal.
TSER Ticket Serial number. 2 bytes hex, LSB first, display as 5 digits of unsigned decimal
The Ticket Serial Number is from the last generated EGM Cash Ticket Out Request
Event (7.10.4.11).
TAMT 4 bytes hex in cents, amount of ticket out from the last EGM Cash Ticket Out Request
Event, LSB first, display as decimal currency of up to 11 characters.
The above display device failure events are not mandatory if the hardware is not inherintely capable.
Extended Data:
KEYID 8 bytes hex, Last inserted License Key ID, zero if none. Display as a 16 character hex
zero padded LSB first unsigned number.
GVN Game Version Number (15.1.5) of the award, 2 bytes hex, display as 4 upper case
characters of unsigned hex.
VAR Game Variation Number (15.1.6) of the award, 1 byte BCD, display as 2 characters of
decimal
PGID Progressive Group I.D. (15.1.10) of the award, 2 bytes hex, display as 4 characters of
unsigned hex, upper case.
PLVL 1 byte hex,
Bits 0…2 denote the progressive level of the award 0...7, display as 1 character of
decimal
Bits 3…7 reserved = 0. (mask out these bits when reading any data from this byte)
QPv1.6.
LJAMT The last received jackpot current amount (15.5.2) for the level won at the time the
jackpot hit is revealed to the player CP:232 , 4 bytes hex in cents, LSB first, display as
unsigned decimal currency of up to 11 characters.
Format String: “Gme: 0x<GVN> Var: <VAR> Group: 0x<PGID> Lev: <PLVL> $<LJAMT>”
GVN Game Version Number (CFF) of the award, 2 bytes hex, display as 4 characters of
unsigned hex, upper case.
VAR Game Variation Number (CFF) of the award, 1 byte BCD, display as 2 characters of
decimal
PLVL 1 byte hex, 0...7 progressive level of award, display as 1 character of decimal
JPAMT Amount of award, 4 bytes hex in cents, LSB first, display as unsigned decimal currency
of up to 11 characters.
Extended Data:
CC 4 bytes hex, amount of cancel credit. LSB first, display unsigned decimal currency of
up to 11 characters.
It is not logged not after the RCRF Cancel Credit Lockup CP:242, System Lockup CP:243,
ECT lockup CP:244, SAP Awards CP:245, Ticket Out Lockup CP:246, CRanE Lockup, or
after any Communications Disabling Conditions CP:247.
EGM Manufacturers may provide for this feature at their discretion. The feature must
only be accessible from test or audit mode CP:249.
QCOM does not encourage player cancellable CCs at this time. This is because if the
feature did exist, it would be possible for a player to spam CC events and disable an
EGM with an event queue full.
This event must only be logged once per Communications Time-out (6.1.2) - timeout
period.CP:252
This event must not be logged on an EGM power up (as the EGM is already in CT on
power up by default, see 8.2). CP:253
QPv1.6 This event must not be logged if the EGM never received a valid poll (i.e. CRC)
to its designated poll address (via 15.5.4) since its last poll address designation (via
15.5.4) occurred. CP:254
Extended Data:
GVN Enabled Game Version Number (15.1.5), 2 bytes hex, display as 4 characters of
unsigned hex, upper case.
VAR Enabled Game Variation Number (15.1.6), 1 byte BCD, display as 2 characters of
decimal
AMT 4 bytes unsigned hex, amount of refill in cents. LSB first, display unsigned decimal
currency of up to 11 characters.
The following group of door open/close and stacker removed/returned events are logged;
In this protocol the stacker removed condition is to be treated as if it was a door open condition (i.e. it
is not a fault condition and a return of the stacker will clear the condition).
QCOM EGMs must not lockup or disable after any door closure or door power off access. The
monitoring system will decide if the EGM is to be disabled in each case based on jurisdictional
requirements.
Some model gaming machines have many monitored doors (in some cases monitored doors in
locations never envisaged by QCOM). Questions are sometimes raised as to the best way to map
these doors onto currently defined QCOM events and door flags (refer General Status Response) in
EGM software. Accordingly, following are some notes that should be taken into consideration when a
EGM manufacturer is initially planning how their inherently monitored doors with be reflected in
QCOM.
QCOM machines should be programmed to log a minimal number of QCOM events during
operation up to the point that EGM monitoring security or integrity may be adversely affected.
In other words, if there is no added value (regarding EGM integrity or security) in reporting two door
access event (as opposed to one event) to access a given piece of hardware in the EGM, then the
Acceptance of the way the EGM maps its monitored doors to QCOM event / flags is at the discretion of
the CEO CP:281.
When two or more doors are logically OR’ed together in the QCOM software implementation, the
EGM must still clearly identify which specific door/s are open on its primary display and in audit mode
at all times. CP:282 Without this, working with doors (especially diagnostics) will be difficult and
confusing for the user. For this reason QCOM does not encourage chaining doors together at the
hardware level.
As the machine logic board is rarely accessed and requires the highest security, there is no desirable
figure on the number of events that are logged in order to access this device
Hardware: Coin Hopper, Banknote acceptor, coin acceptors, QCOM interface / connection
Desirable number of events logged to access: 1 (e.g. Main door)
A minimum of one event to access is desirable for these frequently accessed types of hardware.
Below is a state table that must be used for events logged for a door over an EGM power fail or reset:
Door state before power fail During power fail Door events logged on power
up
Opened No change None
Opened Door is closed Log door closed event
Closed Door is opened and closed None
Closed Door is opened Log door opened event
Example implementation: Upon a cash box door open, in addition to the door open
message, the user is presented with a message which says “To record a cash box
clearance, turn the attendant key” If the user takes no action and closes the cashbox,
then the EGM assumes a clearance is not occurring and simply returns from the cash
box door open condition. If the attendant key is turned; the user is then presented with
1 Where open = 1
Example implementation: Refer to EGM Cash Box Cleared event in section 7.10.3.13
above
Power off door access events are logged upon power up using the current NV RTC time for a specific
door if the EGM detected the door opening while the mains power to the EGM was either off or
disconnected. If the EGM loses its ability to monitor a door during the power off state (i.e. backup
battery drains), then the EGM must assume the door has been opened.
Note, Power off door accessed events must not be logged for a door if the EGM was powered down
with that door already open CP:287.
State table for events logged for a power off monitored door over a power fail:
Door state before power fail If during the power fail: Door events logged on power
up
Opened No change None
Opened Door is closed Log door closed event.
Closed Door is opened and closed Log pwr off door accessed
event
Closed Door is opened Log both pwr off door accessed
& door opened events
(This event has been superseded in QPv1.6 (namely 7.10.4.12) and should not be implemented)
(NB this event code is now being utilised by the QCOM-KCMS system solution – do not re-use)
Extended Data:
TSER 4 bytes hex, Ticket Serial Number. Display as 10 characters of unsigned decimal
TAC 4 bytes hex, Ticket Authentication Code, display as 10 characters of unsigned decimal
AMT 4 bytes hex, value of ticket in cents. LSB first, display unsigned decimal currency of up
to 11 characters.
Extended Data:
GVN Applicable Game Version Number (15.1.5), 2 bytes hex, display as 4 characters of
unsigned hex, upper case.
VAR Current Game Variation Number (15.1.6), 1 byte BCD, display as 2 characters of
decimal
It is also permissible to operate this event as a fault condition for better prominence;
allowing multiple occurrences per power cycle (and saves implementing hysteresis).
It is also permissible to operate this event as a fault condition for better prominence;
allowing multiple occurrences per power cycle (and saves implementing hysteresis).
Event Code: 0x2045…0x2049 Reserved for possible use in QCOM FTP (QPv1.6)
There is the possibility that this event can cause an event runaway in an EGM. To
prevent an event runaway from occurring, after detecting and logging this event as
defined the first time since the EGM was last powered up, the EGM must only log this
event again once every 10 minutes if another recoverable RAM corruption has
occurred in that time and has not been powered down. (I.e. Once per power up, then
every 10 mins)
Event Code: 0x204F – This event is a spam risk, use the event in section 7.10.4.14 instead.
Description: (QPv1.6) Logged after a player elects to start a new session (i.e. reset PID statistics)
via the PID function. (Note, not all PID displays will have a new session button.) The
EGM must not log this event if there was no play in between two successive PID
sessions or if a PID is not implemented. CP:307
Extended Data:
DEN (New) Game Denomination. 4 bytes hex in cents. Display unsigned decimal currency
of up to 11 characters.
AMT 4 bytes unsigned hex in cents, amount of money in the hopper after the calibration (in
cents). LSB first, display unsigned decimal currency of up to 11 characters.
GVN Game Version Number (15.1.5) of updated game, 2 bytes hex, display as 4 characters
of unsigned hex, upper case.
VAR Current Game Variation Number (15.1.6) of updated game, 1 byte BCD, display as 2
characters of decimal.
PRTP Total RTP of updated progressive game component x 10000. 4 bytes hex.
PRTP is the total RTP of the startup prize, plus percentage increment, plus auxiliary
RTP of all progressive levels for the game denoted by GVN. Display as a percentage.
E.g. “1.2345%” equates to PRTP = 12345. Any significant digits dropped due to
precision limits must truncated (i.e. rounded down) QPV165
(To verify an implementation of the above RTP formula is working when using the
typical formula above, set HRATE = 0.5, SUP = 1c, PINC & AUXRTP = 250000 (i.e
25%), then RTPlevel n should equal 100)
Extended Data:
GVN Game Version Number (15.1.5) of winning game, 2 bytes hex, display as 4 characters
of unsigned hex, upper case.
VAR Game Variation Number (15.1.6) of winning game, 1 byte BCD, display as 2 characters
of decimal
Extended Data:
ICONDESCR 16 bytes printable ASCII (refer section 2.3.8) including NULL (0x00) characters.
Right padded with 0x00’s as required. This field must always contain at least one
terminating NULL character (0x00).
Refer EXTJIP section 15.4.7.
Extended Data:
KEYID 8 bytes hex, License Key ID (zero if not known). Display as a 16 character hex zero
padded LSB first unsigned number.
Extended Data:
KEYID 8 bytes hex, License Key ID (zero if not known). Display as a 16 character hex zero
padded LSB first unsigned number.
This event replaces the former logging of the Manufacturer Specific Fault event
(7.10.1.16) with RTEXT = “ECTIN DispLimit” previously required as a result of an
ECT-to-EGM denial (16.1.1).
(QPv1.6) EGMs must also terminate a hopper pay if a fault occurs (refer section 3.4).
If a hopper pay is aborted before any coins have been paid, the EGM doesn’t have to
log the event in this case.
Extended Data:
AMT 4 bytes hex, amount of hopper pay in cents. LSB first, display unsigned decimal
currency of up to 11 characters.
CC 2 bytes hex, amount of cancel credit in cents. LSB first, display up to 5 characters of
unsigned cents
Extended Data:
GVN Game Version Number (15.1.5) of the new game, 2 bytes hex, display as 4 characters
of unsigned hex, upper case.
VAR Game Variation Number (15.1.6) of the new game, 1 byte BCD, display as 2 characters
of decimal
GVN Game Version Number (15.1.5) of the award, 2 bytes hex, display as 4 characters of
unsigned hex, upper case.
VAR Game Variation Number (15.1.6) of the award, 1 byte BCD, display as 2 characters of
decimal
PLVL 1 byte hex
Bits 0…2 0...7 progressive level of award, display as 1 character of decimal
Bits 3…7 Reserved = 0, (mask out these bits when reading any data from this
byte) QPv1.6.
JPAMT Amount of award, 4 bytes hex in cents, LSB first, display as unsigned decimal currency
of up to 11 characters.
TSER Ticket Serial number. 2 bytes hex, LSB first, display as 5 digits of unsigned decimal.
TSER is assigned by the EGM, starting from one at the last EGM RAM clear. CP:341
TSER must be a global NV value in the EGM. TSER must be incremented by one for
each Ticket Out Lockup entered by the EGM and must wrap around to 1 when its
maximum value is reached. CP:342
TAMT 4 bytes hex in cents, amount of ticket out, LSB first, display as decimal currency of up
to 11 characters.
Extended Data:
TSER Ticket Serial number. 2 bytes hex, LSB first, display as 5 digits of unsigned decimal
The Ticket Serial Number is from the last generated EGM Cash Ticket Out Request
Event above.
TAMT 4 bytes hex in cents, amount of ticket out from the last EGM Cash Ticket Out Request
above, LSB first, display as decimal currency of up to 11 characters.
Figure 2
In the above diagram, all pointers (top, send, bottom) rotate in an anti-clockwise direction.
New events go here, overwriting the next purged event (Top moves anti-clockwise in above diagram).
Top must not pass bottom. If top reaches bottom the queue is deemed full.
Denotes the next event to send via the Event Response (15.6.9). Send moves by one event for each
Event Response acknowlegement. Send chases top. On the primary event buffer, a Request all
Logged Events Poll (15.4.14) resets Send to equal Bottom. On the secondary event buffer Send
always equals Bottom.
Bottom chases Top but must not pass Send. Only a Purge Poll (15.4.15) for the primary event
buffer, or a Event Response acknowledgement (14.2.1) for the secondary event buffer will move
Bottom.
“Purged events” denotes events that have been “purged” and thus will be overwritten by new events
over time.
8.1.2 The EGM must check the integrity of the event queue, meters CP:346 and critical memory
(refer GMNS) storage areas.
8.1.3 The EGM must require a serial number to be confirmed (3.1.2) and any other required
manually entered parameters must be setup as well (3.1.1).
8.1.4 The EGM must not accept credit via any method (e.g. Coins/notes, cashless in or other)
until at least EGM configuration has been completed via the EGM Configuration Poll
(15.4.2) CP:347
8.1.5 The EGM must be able to receive and process broadcast messages at all times, even
before EGM configuration has been completed (as this is how an EGM receives its poll
address once it is assigned a serial number).
8.1.6 The EGM must assume a default date and time of 01/01/2000 (QPv1.6. Was 1991 in
QPv1.5) and 00:00:00, until an update is received by the SC. CP:348
8.1.7 The EGM must not log any QCOM events onto its QCOM event queues (refer section 7)
until after the EGM’s poll address configuration (via the broadcast Message 15.5.4) has
been completed for the first time* CP:349, at which time the NV RAM clear event must be
logged CP:350 and then the current state of all EGM doors and note stacker must be
logged via events CP:351.
*I.e, the default date and time must never appear on events sent by the EGM and the
RAM Clear Event will be the first event logged with an Event Sequence Number of
0x01. CP:352
8.1.8 The EGM must assume an initial event sequence number of 0x01. CP:353
8.1.9 The EGM must disable all games via their Game Enable Flag (15.1.3). This also applies
to single game EGMs.
8.1.10 The EGM must default to disabled via the Machine Enable Flag (MEF), Site Enabled
Flag (SEF) and all Game Enable Flags (GEF). Refer section 15.1.
8.1.11 The EGM must zero all counters, EGM group meters CP:354, multi-game/variation meters
CP:355 and LP Turnover Meters. CP:356
8.1.12 The EGM must assume default denominations fields (DEN & TOK) of zero after a RAM
clear until configured by the EGM Configuration Poll (15.4.2). CP:357 Refer EGM
Configuration Response (15.6.12).
8.1.13 Other EGM Configuration Poll/Response (15.6.12) field defaults are as follows (note,
these figures are always overwritten by the SC upon configuration, the defaults are just
for initial reporting purposes):
MAXDEN 0
MINRTP 0.00%
MAXRTP 99.99%
MAXSD 65535
MAXLINES 65535
MAXBET 4294967295
MAXNPWIN 4294967295
8.1.14 A LP or SAP game must assume a default Progressive Group ID number (PGID, Refer
15.1) of zero until configured. CP:358 The default PGID number a non-progressive game
will assume after a RAM clear is 0xFFFF. CP:359
8.1.15 The EGM must assume default Poll Sequence Numbers (PSN, Refer Section 15.1.9) of
zero. CP:360. Ie. the first expected PSNs will be 0x01
8.1.16 The EGM must default to accept all Australian plastic banknote types until otherwise
configured via the Note Acceptor Maintenance poll (15.4.16). CP:361
8.1.17 The EGM must assume EGM Parameter Poll (15.4.5) defaults of: CP:362
8.1.19 A General Status Response (15.6.1) default state of 0x01 (Idle). CP:367
8.1.20 External Jackpot Information Poll (15.4.7) details of a RTP of zero and with zero jackpot
levels. CP:368 QPv1.6
8.2.1 The EGM must check the integrity of the event queue, meters CP:370 and critical memory
(refer GMNS) storage areas.
8.2.4 The EGM must check the state of all doors/note stacker at power up and log the
applicable events where a change in state of the door/stacker has occurred since power
down. CP:371
8.2.6 The EGM must not resume responding to the SC upon a power up, until after all power
up integrity checks have been completed. CP:372
8.2.8 The EGM must default to a Communications Timeout CDC (6.1.2) and must also
assume the Communication Defaults as listed in the section below.
8.3.1 The EGM must default to disabled via the Machine Enable Flag (MEF) Refer 15.1.2.
CP:374
8.3.2 The EGM must stop responding to polls to its current poll address and consider its poll
address as undesignated QPV1.6.7. The EGM must not resume responding to the SC until
the EGM has been designated a poll address again via the EGM Poll Address
Configuration broadcast message (15.5.4). CP:375
8.3.3 As the EGM may be assigned a new poll address, any pre-built/pre-queued response/s
must be discarded. Any pending group meters (either for transmission or awaiting
acknowledgement) are set back to idle. CP:376 However, events have special handling in
this regard, see below.
8.3.4 QPv1.6: If the EGM’s last response in the session was an event response (15.6.9), then
the EGM must assume a NAK for this event and it must ensure that the same event
response is automatically queued up for transmission again in the next session and that
all events that were pending transmission prior in the last session are still sent in the next
session. (This will create a duplicate event in the SC in this case (but this is of no
concern because consecutive duplicate events are currently automatically ignored by
SCs). Overall, this is a benefit because it reduces any possibility of an event being lost
between sessions.) CP:377
QPv1.5: If the EGMs last response prior the power down or communications time-out
was an event response (15.6.9), then to avoid sending the same event twice, the EGM
must ensure it processes the ACK or NAK on the first received poll (refer 14.2.1) in the
next session and apply it to the event response sent previously.
8.3.6 Reset the consecutive NAK counter to zero. (This is the internal EGM variable that the
EGM uses to detect 3 consecutive NAK’s - refer section 6.1.3. This should not affect the
EGM’s CDC display of communications fault (refer section 6.1.3); this CDC must be
reset as per section 6.1.3. QPV1.6.7 Note, this implies that the EGM’s NAK counter and
“flag” variable denoting the display of the communications fault CDC need to be two
separate variables). QPV1.6.7 CP:379
The current number of available games in the EGM and the maximum number of games that a player
may select from (via the game select screen) is indicated in the EGM Configuration Response
(15.6.12).
New for QPv1.6: Extended Multi-game Support. A QPv1.6 EGM may theoretically have up to
65535 resident games but may only offer a maximum of 255 games at a time* based on EGM
configuration settings (refer EGM Configuration Poll (15.4.2)). Initially after EGM RAM clear, the EGM
will report a total number of games via the EGM Configuration Response (15.6.12). The EGM will not
report Game Configuration Responses at this stage. After EGM configuration has been completed via
the EGM Configuration Poll (15.4.2), the number of games reported via the EGM Configuration
Response (15.6.12) may decrease as a result of the parameters in the EGM Configuration Poll
making one or more games ineligible or to reduce the number of games to a level the host system
can support*. The EGM will now provide details of each remaining available game via Game
Configuration Response/s (15.6.11). Games made ineligible by EGM Configuration Poll settings must
never be reported by the EGM via any response types CP:380. The EGM must not accept an EGM
Configuration that will result in all games being made ineligible; refer EGM Configuration Poll (15.4.2
second paragraph) for what events to log in this case. After EGM configuration is completed via the
EGM Configuration Poll (15.4.2), the reported list and number of available games reported by the
EGM, must not change unless the EGM is subsequently RAM cleared CP:381. Any EGM
manufacturer wishing to utilise this feature must first advise the OLGR to ensure that all
concerned systems support this feature before proceeding.
(A QPv1.5 EGM could only offer a static set of up to 255 games. All the games present would be
static and valid for the jurisdiction).
(*EGM manufacturers must check with the monitoring system provider or regulator before proposing
EGMs with more than 16 games that can be enabled at any time, as most monitoring systems have a
limit of the maximum number of enabled games per EGM that they can support.)
Once a multi-game EGM is completely setup, typically a player is presented with some sort of game
selection display as a part of idle mode, to allow them to choose which game they want to play next.
In a multi-game EGM, configured games are enabled / disabled by their corresponding Game Enable
Flag (15.1.3). Disabled games (GEF=0) may still be shown on the game select screen, but if shown,
they must be indicated as disabled (e.g. grey-out the game icon), however it may be better (reduces
risk of confusion) if the games are hidden from the game select screen when the game’s GEF = 0.
An un-configured game (re 15.4.3) must not be displayed on the game select screen in a multi-game
EGM. CP:382
An example of how to handle a configured game with GEF=0 in a multi-game EGM, is for the EGM to
simply “grey-out” the game on the game select screen, however the user can still select and enter the
disabled game (to view last play, rules etc), but are simply not allowed to start a new play. The words
“Game Disabled” would also be displayed inside the game.
Only one variation per game may be enabled for play at a time.
Hot switching support is mandatory in all multi-variation games except progressive games. (QPv1.6)
A prerequisite before an EGM may offer a game with hot switchable variations, or as a game with
multiple variations, is that the static artwork on the EGM must not have to the changed between
variations.
If an EGM has on-the-fly switching of game variations, the EGM must maintain a set of multi-
game/variation meters for each game variation. CP:385 In all other cases there is only one set of multi-
game/variation meters required per game in the EGM.
If the game has a progressive component, the progressive component (i.e. denoted by the percentage
increment, start-up, ceiling, overflows, trigger probability and jackpot current amounts) must not change
between game variations, otherwise the EGM must not offer that game to be hot-switched.
Reel strip and combination test modes, if offered, must be available for at least the currently selected
variation, in addition the currently selected variation must be displayed within these test functions. E.g.
“VAR: 99” CP:386
A game may or may not have a progressive component at the discretion of the EGM manufacturer.
A multi-game EGM may have games with and without progressive components.
QCOM progressive level percentage increment amounts in the EGM (i.e. PINC & AUXRTP as a %),
must utilise no more than of 4 decimal places. In addition, there must be no rounding of this figure when
transmitted, displayed or utilised (i.e. these values must be exact and no more than 4 decimal places).
CP:387
Upon a jackpot win, any contribution amount not of a whole cent must be carried over to the next
jackpot. This ensures that no partial contribution is lost over the course of a jackpot win.
Implementations of SAP & LP progressives in EGM or SC software must have no cumulative rounding
errors with respect to their specific theoretical auditing formulas. E.g. the theoretical progressive
balancing formula in section 10.4 for a basic progressive implementation must always balance over
time. CP:388 (Generally speaking there shouldn’t be an issue if the progressive implementation in
software avoids any form of ‘division’ operation and that precision is consistent in all calculations)
A SAP jackpot refers to a progressive jackpot level prize that is controlled and triggered by a single
EGM.
A LP jackpot in this document refers to a jackpot level that is triggered by the EGM but where the prize
amount (encompassing the start-up amount, increment and ceiling) is controlled by a SC. There is
usually more than one EGM contributing and competing for the prize amount.
Each progressive level may be offered by the EGM as either SAP only, LP only (QPv1.6), or either
(refer 15.6.11). The EGM may also allow a game to be configured with some levels as SAP and
others as LP. CP:389 QPv1.5 EGMs if LP had to also be able to be setup as a SAP, but exemptions
were granted on occasion.
Once per EGM RAM clear, initial jackpot level contributions (including overflows if SAP) are setup by
the SC before the EGM is enabled for play. This is required in case of an EGM RAM clear to restore
last known current amounts or when required to carry over a jackpot amount from somewhere else, for
example in the event of a decommissioned jackpot.
Turnover from the Residual Credit Removal Feature (RCRF) must not contribute to an EGM triggered
progressive level amount or chance of winning. Typically the only time RCRF turnover would contribute
to a jackpot is when the jackpot is an ‘external jackpot’ (i.e. not a part of the EGM’s game).
Level numbers are only used internally and must not be displayed to players, use level names instead.
Also refer to Section 15.1.10 for an explanation of Progressive Group ID numbers (PGID).
Displayed jackpot current amounts must be rounded down to the smallest display unit (typically cents,
however 5c may also be acceptable in some cases).
For progressive games that are intended for use with large external jackpot display signage, it is
recommended for redundancy purposes, that those games also have a small, discrete built in display
of jackpot current amounts (display space permitting). This may mean that the EGMs can remain in
play in the event of a failure of the primary external jackpot display.
1 If this still isn’t clear for a particular game (e.g. the game has levels with equal SUPs), then a sub-
order which takes into account to the physical order in which the levels are displayed to a player is an
acceptable alternative. In this case make level 0 is the highest (LHS) level as displayed (i.e. in
altitude and horizontal alignment) and the remainder follow in order from left to right, top to bottom.
2 FYI. Ordering by start-up amounts is assumed by the integrity check in section 15.4.6
The EGM must have the following additional meters and information in audit mode for each progressive
level in a game: (Labelled as shown in bold below and units must be indicated. NB: GMNS also
mandates ordering starting from ‘Current Value’ and this is reflected in the table below) CP:392
Each page of progressive meters must be titled with the applicable game name and GVN (QPv1.6.4)
CP:393. This is because the Hits, Wins and Turnover progressive meters below must always be metered
and displayed on per game basis; even in a shared progressive EGM (refer 10.9).
Current Value ($.¢) I.e. the amount as displayed on the jackpot display to participating
players. For LP levels, this will be the last received amount for the level
via the LP broadcast message. Refer 15.5.2.
Overflow ($.¢) (SAPs only. Display “NA” for LP levels)
Display overflow as the amount of contribution exceeding the ceiling
amount e.g. with no ceiling the current amount is $123.45 and with a
ceiling of $100 the overflow amount to display is $23.45. The EGM must
include hidden increment amounts in this value.
Hits (count) Number of times the game has won this jackpot level. CP:395
Wins ($.¢) Total amount of wins on this level for the game. CP:396
Start-Up Amount ($.¢) Default start-up amount (SUP) of the jackpot level. Do not include any
overflow or background increment here.
(If the level is a LP, then before the Progressive Configuration Poll
(15.4.6) poll has been received for the game, the EGM must display
“???” for this field).
Ceiling Amount ($.¢) This is the amount the jackpot displays actually freeze at when reached
by the current amount. Any contributions in excess of the ceiling must
go into the overflow meter. (If the level is a LP, then before the
Progressive Configuration Poll (15.4.6) poll has been received for the
game, the EGM must display “???” for this field).
Percentage Increment Percentage of turnover that contributes to the jackpot current amount.
(%) E.g. 1.5000% (four decimal places must be displayed)
(If the level is a LP, then before the Progressive Configuration Poll
(15.4.6) poll has been received for the game, the EGM must display
“???” for this field).
Hidden Increment (%) Refer GMNS. Equals AUXRTP. NB most systems do not currently
support LP totalisation including a hidden increment. EGM
manufacturers should check before implementing a LP game with a
hidden increment.
Initial Contribution ($.¢) Initial contribution amount received via the EGM Game Configuration
Poll (15.4.3) (+/-$.¢)
Note the value is in units of contribution, not turnover, i.e. the amount
taken out by the percentage increment. Display “NA” if level is LP
Note also that while the contribution received via the EGM Game
Configuration Poll (15.4.3) is an unsigned value, ‘Initial Contribution’
must be displayed as a signed integer in audit mode. CP:397 (This is
related to note 2 below)
Turnover ($.¢) Total applicable game turnover towards the jackpot since last EGM RAM
clear. Note the value is in units of turnover, not contribution. I.e. This
must not include initial contribution above, or RCRF turnover.
Any other meters or information relevant to reconciliation of the current jackpot amounts must also be
suitably displayed. (E.g. a next Start-Up amount percentage increment and contribution) CP:400
The level name and amount won in a progressive jackpot must also be displayed in the EGM's last play
recall information. CP:401
1. The formula may have to be adjusted by the EGM manufacturer to handle proprietary SAP
features/calculations for a particular game.
2. A SAP parameter change (specifically any change in either Percent Increment or Reset Amount
parameters, refer 15.4.6: customSAP) will cause the above audit formula to fail unless at least
one term in the formula is adjusted in compensation of the change. This must be done as
follows:CP:402
To avoid a self audit error occurring after accepting a new set of SAP parameters in
CustomSAP game, upon accepting the new SAP level parameters, the EGM must solve its
SAP reconciliation audit formula for ‘Initial Contribution’ and save the result. Subsequent SAP
self audits for the level should then balance with the new level parameters. CP:403
3. The formula will also fail upon any participating meter rollover e.g. the turnover meter. (As this
is unlikely to occur in the life of a game operating in a live gaming venue, this concern does not
need to be addressed at this time)
However this issue may occur during fast-play game testing in which case there are several
options that may be considered. For example: disable SAP reconciliation in test game software,
or use 64 bit meters, or have the EGM automatically disable SAP reconciliation the first time
the turnover meter crosses an upper threshold.
4. To minimise the risk of inadvertent self audit errors, reconciliation formulas like the above must
be implemented in the EGM as a critical section. (Related 12.4)
5. The above formula is only for a vanilla progressive, for example it does not take into account a
hidden increment (i.e. AUXRTP) or any other special features and the audit formula utilised
may need to be adjusted accordingly. (For example, to accommodate an AUXRTP
In QCOM, the requirements for handling SAPs are slightly different than for a LP level. This section
details the requirements specific to SAPs.
When a SAP level is won, the EGM must log the SAP Award event (7.10.4.8) and prominently and
constantly (QPv1.6) display the level name, the amount to be awarded (in $.¢) to the player for a sufficient
period. CP:404 E.g. “Mini Progressive Jackpot $12.34”. Acceptance of the overall legibility of the award
text message on the EGM display is at the discretion of the CEO CP:405.
SAP wins must be automatically paid directly to the EGM’s Credit Meter by the EGM and after a short
delay, the SAP win must also be automatically cleared by the EGM with no manual intervention required
(except if the total win amount (including the SAP win amount) at the end of the play exceeded the
Large Win Lockup threshold (15.4.5), in which case a Large Win Lockup must result). CP:406
SAP win shows are acceptable and recommended. Note that there is no STATE in the General
Status Response (15.6.1) to indicate a SAP win. The EGM must stay in either the ‘In-play’ state or
the ‘In-Play Feature’ state for the duration of the SAP win unless it was a Large Win.
SAP wins must be added to group meters 0x02 and 0x0CQPv1.6 by the EGM. CP:407 Refer 12.1.1.
In EGM audit mode for the GMNS master meter display, SAP wins must be added to the total wins
meter of the EGM and not to the total progressive wins meter on this display (if one exists). (NB the
QLD Appendix to GMNS that mandated this meter was abolished in 2013). CP:408
The EGM must not log a Lockup Cleared event for SAP wins. CP:409
In QPv1.5 EGMs, SAP wins were ‘silent’ and the following special requirements applied: CP:410
SAP wins were only added to group meter 0x02 (EGM total wins meter).
SAP wins were not added to group meters 0x07, or 0x0C. However the EGM still sent group
meter 0x07 (SAP wins) when group zero meters are requested, but its value was always zero
(this overrode the requirement in section 12.1, that the EGM must never to send a meter that
would always be zero).
SAP wins were added only to the WINS meter in Multi-Game/Variation Meter response
(15.6.6). (Same in QPv1.6)
No state set in the General Status Response (15.6.1) (same in QPv1.6)
EGMs did not log the SAP Award event (7.10.4.8).
EGMs did not log the ‘Lockup Cleared’ event after the SAP win. (Same in QPv1.6)
QCOM can support up to 65534 possible linked progressive groups and up to 8 possible progressive
levels per group. A multi-game EGM may contribute to a different LP group for each game, or the same
group for all games. The EGM must maintain a unique LP Turnover meter (refer 2.2) for each LP game
regardless. It is acceptable for a QCOM LP game to trigger one or more LP jackpots per ‘play’ (def:
2.2), e.g. during a free game series. A QCOM LP game must not log a new LP jackpot award event
until any current LP jackpot has been first acknowledged (via the LP Ack Poll 15.4.18) and the lockup
reset (see 10.6.1 below). Games which could trigger two or more LP jackpots on a single game feature
are allowed, however this requires special handling on the part of the EGM. For more information
regarding this, refer to section 10.8 below.
In QCOM, the requirements for handling SAPs are slightly different than for a LP level. This section
details the requirements specific to LPs.
EGM manufacturers should give some consideration to the hit rate before deciding to make a LP game
as some jurisdictions place restrictions on how many EGMs can be on a LP in order to reduce the
number of simultaneous wins. Also, some jackpot display systems that perform win shows can have
difficulty in keeping up if the hit rate for a LP is too high. To avoid these problems, consider making the
game a mixed LP/SAP game with the lower levels available as SAP.
10.6.1 LP Lockups
When a specific LP jackpot feature has been won, at the moment the jackpot level which has been won
is revealed to the winning player (either directly or by inference) the EGM must immediately:
Acceptance of the overall legibility of the text message on the EGM display is at the discretion of the
CEO CP:414.
*It is stressed that once the winning player is aware of which level they have won (even if only by
association, such as implied by a specific winning combination), the EGM must log the LP Award Event
at that time. CP:415 This is to reduce the potential of a simultaneous win claim and security reasons
The "VERIFYING JACKPOT AMOUNT" message must be displayed until receipt of the next Linked
Progressive Award Acknowledged Poll (15.4.18) at which time this message must be removed CP:416.
Linked progressive jackpots must not be able to be cleared or reset by any means (e.g. the EGM
General Reset Poll (15.4.19) or manual key-switch) until they are first acknowledged via the Linked
Progressive Award Acknowledged Poll (15.4.18). CP:417
The EGM must not display a 'you have won' message CP:418, or the equivalent (this includes a win
show CP:419) until after the Linked Progressive Award Acknowledged poll (15.4.18) has been received.
(QPv1.6) It is highly recommended that for an EGM performing a LP award win show, the EGM does
not allow the LP Award lockup to be reset via the General Reset Poll (15.4.19) until the win show has
been completed (as permitted under section 15.4.19). This is because for a LP level being auto-
paid/reset by a SC, the SC typically spams the General Reset Poll until the EGM reacts to it, potentially
cutting short any LP award win show. In addition, the EGM should reserve a few more seconds post
win show to allow the level ID and amount won to be adequately displayed (Note, faults that occur
during a LP win show must still be able to be reset CP:422). Note however that the LP Ack Poll must
never be ignored by the EGM that is in a LP lockup (refer 15.4.18) CP:423.
The amount of the LP award that the EGM must state in the LP Award lockup and use in the LP Award
Event, must be the last received amount for the level sent via the LP broadcast messages (15.5.2)
immediately prior the logging of the LP Award Event. CP:424
Very shortly after an EGM logs the ‘LP Award Event’, the EGM will receive in addition to the “LP Ack.
Poll’, a LP broadcast for the winning level containing the new SUP current amount. While it is mandatory
for the EGM to clearly display to the player the amount won for the duration of the LP lockup, internally,
the EGM must not under any circumstances, ignore an applicable LP Broadcast at any time for
subsequent display. While, it is acceptable for the duration of the LP lockup for the EGM to freeze the
winning level’s current amount on its LP displays, in background the EGM must still be processing
applicable LP Broadcasts so that when the EGM is finally reset from the LP lockup, the EGM has the
correct current amount ready to display. CP:425
In the Meter Group/Contribution Response (15.6.8), LP wins are added only to group meter: 0x08 (Total
EGM LP Wins) upon exit from the lockup condition (refer 12.2).
In the Multi-game/Variation Response (15.6.6) LP wins are added only to the PWIN meter.
Type: SAP LP
Protocol Version: QPv1.6 QPv1.5 All
Requirement:
Auto-pay & auto-clear progressive awards Yes Yes No
Audit Mode – GMNS master meter display; QLD App: NA NA Add wins
PROGRESSIVE meter. (NB The QLD Appendix to GMNS was
abolished in 2013 so this meter is no longer mandatory in QLD.)
Audit Mode – GMNS master meter display; WINS meter Add Add NA
wins wins
QCOM Group Meter 0x02 (EGM Total Wins Meter) Add Add NA
wins wins
QCOM Group Meter 0x07 (formerly the HPSAP Wins Meter) NA NA NA
QCOM Group Meter 0x08 (LP Wins Meter) NA NA Add wins
QCOM Group Meter 0x0C (SAP Wins Meter) (New for QPv1.6.1) Add NA NA
wins
Multi-Game Meters – WINS meter Add Add NA
wins wins
Multi-Game Meters – PROGR meter NA NA Add wins
This section deals with games that may trigger multiple LP jackpots on a single game feature outcome.
E.g. multiple jackpot hits as a result of a single spin of game reels.
As mentioned in section 10.6, a constraint exists in existing QCOM monitoring systems which
requires QCOM LP games to instigate a separate LP lockup for each hit of a LP jackpot level, with the
corresponding LP Award event (7.10.2.1) not to be logged until just prior its corresponding LP award
lockup. I.e. the EGM must not log a new LP jackpot award event until any current LP jackpot has
been first acknowledged (via the LP Ack Poll 15.4.18) and the LP lockup reset/cleared (refer 10.6.1
above). Also, each subsequent LP Award event must have a newer timestamp on the event than the
last LP award event (else the system will ignore all but the first received LP Award Event if the time-
stamps are all equal).
Accordingly, there are two options for games wishing to trigger multiple LP awards per play in order to
satisfy existing QCOM system constraints:
Option 1:
The EGM snapshots all the won jackpot progressive meters at the instant they are indicated as won
for subsequent reporting via LP Award events. The EGM then transmits the LP events as per the
system constraint (see above) from lowest prize level up. (This order helps minimise the risk of
simultaneous LP wins with respect to other EGMs on the link).
This method is best suited for jackpot levels which are auto-paid/cleared by the SC.
Pros/Cons of option 1:
+ the jackpot amounts at the time they are actually won is exactly what the player/s are going to be
subsequently awarded in all cases.
- a slightly elevated risk of a simultaneous win overpay with respect to higher LP jackpot levels.
- It may appear to the SC that some wins are coming in very late with respect to the current jackpot
amount, however this should be fine under current QCOM SCP LP requirements.
Option 2:
The EGM awards the hit jackpot levels from the highest prize level down as per the system constraint
(see above) and it does not take a snap-shot of the jackpot current amount for the LP Award event
until it actually comes time to log the corresponding LP award event.
Pros/Cons of option 2:
If option 2 is chosen, then the behaviour of the game in the event of multiple LP award level hits must
be stated in the game rules. E.g. "If multiple jackpots are won on a single <feature>, then they are
awarded one at a time in sequence from the highest to lowest jackpot level. The amount won will be
snapshot at the time the game locks up for that award level"
Games which can log multiple simultaneous LP awards for the same jackpot level must always
implement it via option 2 in order to avoid jackpot overpayment. i.e. The first prize amount will be the
metered amount and then subsequent amounts will all be the startup amount (assuming no overflow
to be carried over).
Identification: Whether of not an EGM is a shared progressive is reported by the EGM via the EGM
Configuration Response (15.6.12) FLGS field.
If an EGM is NOT a shared progressive, then this denotes that each progressive game’s component
in a multi-game machine is mutually exclusive. I.e. all progressive parameters and meters are mutually
exclusive on a per game basis CP:426 This means that playing games will only increment that game’s
progressive jackpots and not the progressive values of other games in the EGM. (This has been the
default behaviour in the previous version of QCOM (QPv1.5.x), however in practise it is decidedly more
common that the progressive component will be shared across progressive games in a multi-game
EGM. Accordingly this flag was created to allow the EGM to clarify the issue to the SC and behave
accordingly)
If an EGM is a shared progressive, then this denotes that the progressive component of any
progressive game in a multi-game EGM, is identical across all other progressive games in the EGM.
I.e. the jackpot amount for a given level is the same value for all progressive games in the EGM at all
times. This means that playing games will also increment all other resident progressive game
progressive jackpots in the EGM.
A shared progressive EGM must maintain and report the following progressive data fields with identical
values for all other progressive games in the EGM at all times:
CAMT and HRATE fields (refer sections Progressive Meters Response 15.6.3), CP:427
LP/SAP flag, SUP, PINC, CEIL, AUXRTP fields, refer Progressive Configuration Response
15.6.4 CP:428
In implementation, the EGM can either keep a copy per game and automatically keep the data in sync,
or simply maintain one copy of the data across all progressive games.
Exceptions:
the LP Turnover meter (PAMT, refer section 2.2) must always be maintained and sent, on a
per game basis by the EGM CP:429 and
progressive level HITS, WINS & PWINS meters (refer sections 15.6.3 & 15.6.6), must always
be maintained and sent, on a per-game-per-level basis by the EGM. CP:430
A shared progressive EGM must automatically apply any progressive configuration or changes thereof
to all other progressive games in the EGM (even if game configuration (15.4.3) has not yet been
completed on those games). CP:431 This means that when the SC configures or changes progressive
configuration in one progressive game via any of the following polls:
EGM Game Configuration Poll (15.4.3 PGID, PFLG & CAMT fields) CP:432
Progressive Configuration Poll (15.4.6 SUP, PINC, CEIL, AUXRTP fields) CP:433
EGM Game Configuration Change Poll (15.4.4 PGID field) CP:434
the SC does not have to also apply the configuration or change to any other progressive games in the
EGM because the EGM will.
During initial game configuration via the EGM Game/Progressive Configuration Polls, the EGM must
ignore progressive data in subsequent polls of these types once the first progressive game has been
successfully configured via each poll type respectively. CP:435 QPV1.6.7
A non-customSAP game is one in which the SAP level parameters are hard coded into the game and
cannot be changed.
A customSAP game allows its factory default SAP level parameters to be changed via the
Progressive Configuration Poll (s15.4.6).
Specifically:
Startup
Increment
Ceiling
AUXRTP
An EGM indicates support for customSAP in the Progressive Configuration Response (s15.6.4).
For quick access to all the customSAP related requirements, search the document for ‘customSAP’.
In general cryptography terms, a QCOM Program Hash is the equivalent of a ‘digital fingerprint’ or a
‘key dependent one way hash function’. They should not be confused with digital signatures used in
cryptography.
11.1 General
11.1.1 Each EGM has one overall program hash value reported on requested via the Program
Hash Response (15.6.13).
11.1.2 The EGM must initiate a Program Hash verification using a regulatory approved
algorithm when requested to do so via the Program Hash Request Poll (15.4.8).
11.1.3 The EGM will extract and use the seed from the message truncating it as required for its
designated hash algorithm.
11.1.4 When an EGM receives a Program Hash Request Poll, it must always restart a new hash
calculation, even if it was already in the process of calculating a program hash CP:436 .
11.1.5 The EGM must abort a hash calculation if it is powered down during the process. CP:437
An EGM must complete the Program Hash Calculation and be ready to transmit the Program
Hash Response (15.6.13) as soon as possible and within a specified time-out period after
receiving the request for the hash calculation. CP:438 (Check with the OLGR for the current
timeout value.)
Manufacturers should endeavour to make their program hash calculation on their EGM as
quick as possible, because in most cases an EGM will be disabled by a SC until it returns a
valid hash. A hash response time of no more than 30 seconds is preferable. Typically
program hashes are usually requested when an EGM resumes’ responding on the network,
but it is also possible an EGM could be in play, in a lockup, a fault condition or any other state
when it receives a program hash request.
11.1.7 The Program Hash Calculation should be invisible to a patron and the EGM must
continue to respond to the SC at all times and still perform all functions. Visual
degradation in EGM game performance is acceptable, but all other operations and
security functions of the EGM must be in no way affected CP:439.
11.1.8 In some circumstances, if an EGM is still having difficulty making a hash within the
program hash time-out, it is acceptable to temporarily suspend non-critical processes in
the EGM (e.g. idle mode, play, hopper pay out, etc) for a short period, provided an
appropriate message is displayed CP:440. E.g. “PLEASE WAIT – Calculating Hash”.
Consideration could also be given to a progress indicator in this case.
This is now a separate OLGR technical standard “Hashing Algorithms“ (refer 1.1). CP:441
11.1.10 To expedite a hash result, the EGM may calculate program hash in any desired
ROM/byte/bit order and over separate CPU controlled peripheral or sub-systems in
parallel. Multiple hash results over sub-systems must be combined to give a single final
QCOM (QPv1.6) can now support all hash algorithms types up to 160 bits maximum. (QPv1.5 was
limited to a maximum of 64 bits hashes) The specific algorithm the EGM must use is defined in a
separate standard (Refer section 1.1). CP:443
A list of acceptable Program Hash Algorithms are available from OLGR as a separate document (refer
1.1).
07 Reserved* CP:459
Formerly the Total EGM HP SAP Wins Meter. Intended to
be a total of all hand paid SAP wins on the EGM but was
never used (i.e. incremented by SAP wins). If sent by
any EGM this meter was always reported as zero. This
meter was made obsolete in QPv1.6.1. (i.e. must not be
sent) and replaced by 0x0C below for reasons of backward
compatibility in existing systems regarding how gaming tax
is calculated (NB in QPv1.6 EGMs, all SAP Wins are also
added to group meter 0x02).
(In QPv1.5 EGMs, this meter was never used either, as SAP
wins were hidden to allow SAP wins to be auto-paid/cleared
by the EGM; i.e. SAP wins were paid directly to the credit
meter and only added only to the total wins meter above.
This meter if sent in a QPv1.5 EGM would always be zero).
08 Total EGM Linked Progressive Wins* (LP) CP:460 LP 3
(i Not defined in this document. Contact the OLGR for more information on TMW)
(ii From Multi-Game Meter Responses (15.6.6))
* “Reserved”, or meters which are ‘not applicable’ (see below), must not be transmitted by the EGM.
A meter is ‘not applicable’ if its associated peripheral device is not installed (e.g. Group 2 meters and
other meters concerning note acceptance are ‘not applicable’ if the EGM does not have a note
acceptor installed), or if a related software feature is not present (E.g. the “Total EGM Linked
Progressive Wins meter is ‘not applicable’ if the EGM has no LP games). The requirement is that a
meter must not be sent by the EGM if it would remain at zero regardless of any possible operation
performed on the EGM (excluding RAM clears) CP:489. SAP & LP wins meters must not be sent until at
least one game is setup a SAP or LP respectively CP:490. The PID Accessed meter must start to be
included in applicable group meters responses no later than on the first PID access, but not before an
implemented PID display has first been enabled on the EGM (via 15.4.5). (Basically the EGM should
send the PID Accessed meter if it contains a non-zero value, or if it has ever been sent previously
since last EGM RAM clear with respect to the previous sentence) CP:491
All meters listed above without an * next to them must be transmitted under all EGM configurations.
Once a group meter has been transmitted by the EGM in any Meter Group response (15.6.8), it must
be always subsequently retransmitted when its group is requested via the EGM General Maintenance
Poll (15.4.13) or when its value is changed by the EGM CP:492. This occurs until the next EGM RAM
clear where the hardware options may change which may make some meters no longer applicable.
12.2.2 List of QCOM meter update times (refer 12.1) i.e. when a group meter response would
be queued unsolicited:
Examples:
The following EGM group meters are updated and flagged for transmission* (via the Meter
Group/Contribution response (15.6.8)) at the following times:
GT upon each and every gamble attempt by a player resulting in a loss. CP:502
GT and GW upon each and every gamble attempt by a player resulting in a win. CP:503
CI, COI and CB meters upon a single coin/token in that also diverts to the cashbox.
CP:504
All other meters must be updated and flagged for transmission precisely upon the occurrence
of the event CP:508.
Note; slow poll cycle times or communications issues will cause multiple meter updates to
accumulate and combine into a subsequent single group meter response CP:509 (space
permitting).
Some additional examples of when to flag for transmission some of the other group meters:
The total cents out and total coins out meters upon every coin paid. E.g. For a hopper
collect of 100 coins taking ~10 seconds, a group meter response would be seen every
second response containing the cents out and coin out meters with ~10 coins worth of
increment in each response for the duration of the hopper collect.
The total cents in and total coin in and cash box (if diverted to cash box) meters upon every
coin in.
* Where a number of meters are updated at the same point in the EGM software (e.g. stroke
and turnover are updated at the commencement of a play), then it is required that the meters
are all updated first and only then flagged/queued for transmission as a critical section of code.
CP:510 This critical section must ensure that only one meter response will result in all cases
provided the number of meters in the response doesn’t exceed 8; in this case a subsequent
response would also be sent. This is as opposed to updating a meter, flagging it for
transmission, then moving onto the next meter. This later method (depending on poll timings
and the EGM’s QCOM implementation, e.g. when there is a separate communications thread
with respect to the thread updating meters) can occasionally result in separate meter responses
which is not acceptable. E.g. if the EGM ever sent a meter group response containing the
stroke meter but with no turnover meter, then this does not meet the requirements here.
QPV1.6.7 EGMs that use 64 bit meters (or higher) are acceptable provided all QCOM
meters transmitted in all QCOM packets still rollover as per this specification and that all
self audit and other formulas still function correctly as intended. Master meters in audit
mode may appear as their native 64 bit meters, however all meters and number type
parameters appearing on QCOM specific pages in audit mode must reflect what is being
transmitted and received via QCOM. All QCOM 32 bit number fields must still function
exactly as per this specification. Double all conversions for possible side effects. (For
example in a QCOM machine there may exist a few places in code that compare a
QCOM related value to -1; areas like this may need special consideration).
12.3.2 Except for a meter roll-over, under no circumstances, must the EGM ever transmit a
cumulative meter in any response which is less than any previous transmitted value of
that meter CP:512.
An EGM must never permit (within reason*) its credit meter to rollover via any
combination events that increment the EGM’s credit meter (e.g. ECT, TITO, coin
insertion, banknote insertion, *including game wins).
Since credit meter rollover would never occur in normal operation, the concern here is
that any ability to roll over a credit meter may create opportunities for exploit in an EGM
or connected system.
Accordingly, all EGMs must implement a credit meter limit (if it doesn’t already do so e.g.
credit meter display capability limiting) which is sufficiently lower than the credit meter
rollover threshold with respect to any resident game’s likely large win scenarios. In
applying the limit, EGM must disable physical credit insertion devices and in the case of
ECT and TITO utilise the transaction denial option.
Please ensure the limit is not set too low in that it will cause issues or need review in the
expected operating life / environment of the EGM (consider worse case games and
environments e.g. high-roller gaming environments).
CI == (COI + NI + CSI)
CO == (COO + CSO)
Credit Meter == (CI + W - T - CC– CO + CTI - CTO) and
If an EGM has SAP levels then they must also be included in the self audit. The formula for self
auditing a standard progressive is located in section 10.4.1 CP:515 QPv1.6.4
The above formulas will automatically handle any meter roll-over if unsigned integer binary arithmetic
is used.
Care must be taken to ensure the meters are in a reconcilable condition when the audit is performed.
Additional meters may be required in the audit formulas to ensure reconciliation at all times (e.g. EGMs
which allow credit input during play or when the EGM has a cashless transfer to credit meter queued
CP:516).
To minimise the risk of inadvertent self audit errors, reconciliation formulas like the above must be
implemented in the EGM as a critical section (see glossary).
Failure of the above formula to reconcile, if not correctable via meter backups, must immediately result
in a RAM error on the EGM (Refer Section 3.2). CP:517
EGM self imposed sanity checks on credit meter movements are encouraged. However please avoid
credit meter threshold based sanity checks such as “if the credit meter is greater than x then RAM
Error”, as this potentially creates an arbitrary way of forcing the EGM into a RAM error by running up
the credit meter (for example via QCOM ECT). CP:518
For SC messages (or “polls”), the parity bit is used in the following manner: when the parity bit is set,
this denotes the start (i.e. the first byte) of a new message from the SC. In QCOM, the parity bit (or
wake-up bit), is only ever set by the SC on the first byte (i.e. the address byte) of a message. The
remainder of the poll message data, as well as all EGM responses, must have parity forced to zero.
EGMs should utilise the multi-point mode of their UART, SCC or ACIA to efficiently detect the start of a
new message on the LAN. If the EGM’s UART does not have hardware support for multi-point mode,
then this may still be done in software.
For EGM’s with UARTs without wake-up bit capability, but with forced parity capability, the EGM can
use the parity error indicator bit of the UART to also efficiently detect an address byte.
Third party QCOM sniffing applications must first synchronise on SC messages as the SC it the only
device setting the wake up bit which distinguishes between a poll and a response. Once a poll is
identified then the application can find a particular EGM’s reaponse as it knows that the if next message
has the same poll address, then it is a response to that poll. (Note, as of QPv1.6.6 there is now Iamapoll
/ Iamaresp flags (refer sections 14.2 & 14.3) which makes message synchronisation possible without
having to use the parity / wake-up bit).
For QCOM devices using Windows OS and trying to detect SC messages/polls, the Windows API
function of interest is DeviceIoControl using the IOCTL_SERIAL_LSRMST_INSERT parameter option.
This mode of operation inserts parity errors directly into the received serial stream allowing for easy
detection of wake-up bits associated with specific bytes.
EGM Requirements:
The ability to detect wake-up bits on all received bytes (indicating the start of a new message from a
SC).
When an EGM transmits a response, it must always transmit with the parity bit forced zero CP:520.
If during receipt of a message, an EGM receives a byte with the parity set (i.e. indicating a new
message), the EGM must abort receipt of the current message, and process the byte with the parity set
as the first byte of a new message CP:521.
UARTs with only forced parity capability are also perfectly acceptable, their only drawback is that every
received byte on the communication channel has to be interrogated by the CPU which requires
significantly more processor time compared with a UART with wake-up bit capability.
UARTs without either wake-up bit or forced parity capability can also work using a parity look up table.
However to transmit, parity must be changed during transmission, which can be difficult, as with some
UARTs, parity changes take effect immediately and the processing load is higher.
Another way to significantly reduce communication processing load, is to use the UART in FIFO mode,
if present. This can further reduce the total amount of interrupts the EGM CPU has to process by up to
16 times in some UARTS. A UART with a variable FIFO trigger level is recommended.
The ideal UART to use is one which has wake-up bit and FIFO buffer capability.
UART overrun errors indicate the EGM is not processing received UART characters quickly enough.
Manufacturers of EGMs experiencing overrun errors could try making the UART interrupt or process a
higher priority CP:523.
In 8-bit mode, the parity bit is still present, but the EGM no longer uses it.
Support for QCOM 8 bit mode is mandatory (for QPV1.6.7 EGMs and on).
13.3.1 Implementation
Implementing 8-bit mode in an existing QCOM EGM should only require a few lines of code to be
changed/added to an existing implementation of QCOM in an EGM. New developers implementing
QCOM in an EGM should implement QCOM in its native 9-bit mode then implement 8-bit mode after.
The EGM must ignore parity on received bytes and therefore its use in message
synchronisation (refer section 13.2.2 and related QCOM requirements pertaining to the wake-
up bit).
After the EGM finished receipt on any current incoming poll message, instead of waiting for a
byte with a wake-up-bit set (13.2.2) to denote a new poll/broadcast message, the EGM must
assume that the very next byte received will be the start of a new poll message and receive it
and the following bytes as a new poll/broadcast message as per section 14 as normal. Once
the message is received ok, or aborted (e.g. poll address is not applicable, illegal length byte
value, or bad CRC), the EGM must immediately assume the next received byte will be the
start of a new poll message again.
On power up, the EGM must assume the very first byte received will be the start of a new
poll/broadcast message.
Other than to implement the above, EGM manufacturers should not have to change anything else in
the EGM’s QCOM module. I.e. The EGM still transmits with parity forced zero as before and expect a
parity bit on all rx bytes as it did before (it just ignores parity now where as before it checked it for a
possible new poll message marker). It should require very little change to an approved QCOM
implementation to facilitate QCOM 8-bit mode.
In more technical detail; the primary line of code to be changed in the EGM is the line/s of code
equivalent to:
Update these lines of code to a new conditional statement along the lines:
As an example implementation, in QSIM EGM MODE source code all that was required were the
following changes:
The above variable: dll.idle denotes that the QCOM low level rx state engine was idle (i.e. not
currently in the process of receiving any part of a poll message. To facilitate this variable in QSIM*,
the following line of code was added immediately after where any poll message CRC was checked:
(*Many QCOM EGMs may already have the equivalent variable and not require any change to create
the equivalent of the dll.idle variable. QSIM source code did because it used to let the wake-up-bit
reset the rx state machine back to default)
If a message synchronisation issue does occur, it has been found that the EGM will tend to get back
in-sync after only a few seconds worth of poll cycles with no other help provided the garbage that
caused it to get out-of-sync does not persist. Also, Site Controllers can manually force a re-sync on
demand by sending out the following message: 255, 254, 253,…,0.
If an EGM in 8-bit mode can also see other EGMs responses, there may be concern is that it will treat
those responses as potential polls. This is not an issue because the poll address on those response
will not be the EGMs and the EGM will just parse over those responses as per existing QCOM
requirements mandate while keeping in message sync.
8-bit mode may be manually switched off/on via date&time broadcast messages. Refer section 15.5.1
FLG field. The machine must save the setting in NV-RAM. CP:527
In EGM audit mode, on the same UI screen as the QCOM serial number setup function s3.1.2 (or
otherwise as near as possible to it) it must also be possible to toggle 8-bit mode off/on at anytime.
CP:528
There must be only one on/off flag in the EGM’s NV RAM. CP:529
1 While in 8-bit mode the EGM will still be able to receive poll & broadcast messages sent by the SC
operating in 9-bit mode. First broadcast message the EGM sees will set the desired 8-bit mode setting
on EGM from there on out. All poll message synchronisation issues while an EGM is in 8-bit mode are
the SC's problem, for more information, refer to the latest version of the QCOM v1 Site Controller
Procedures document.
QCOM EGMs which support 8-bit mode must set CNTL:bit 1 in all responses. Refer 14.3.1. CP:531
In QCOM, messages sent by the SC are called “polls” and messages sent by the EGM are called
“responses”.
In QCOM, a “Poll Cycle” comprises of a single message or ‘poll’ sent to each EGM in turn by the
SC, after each poll to an EGM the SC will wait for a response from the EGM for a short period before
moving on to the next EGM. (An EGM will always try to respond to valid polls to its designated poll
address (15.5.4).) At the end of a poll cycle the SC will send out any broadcast messages. One
broadcast message that is always sent every poll cycle is the Date and Time Broadcast (15.5.1).
(EGMs do not respond to broadcast messages but must process them.) The Date and Time
Broadcast denotes the end of a poll cycle. Poll cycles are instigated by the SC and occur periodically
(see 14.1.3).
Notes :
EGM processing of a poll message data must not be carried out until after the response to
that poll has been initiated. CP:532 Refer “Figure 3 EGM Message Processing” above.
In other words, when polled for a specific response type, the EGM will not respond with the
requested response type on the response to that poll, but the requested response type will be
sent in response to the next poll (provided no other higher priority responses were pending).
The typical method in a poll-response protocol of processing the poll, building a response then
sending the response to that poll off all within the response timeout period is not allowed. CP:534
This is to standardise EGM response behaviour and it is also extremely CPU intensive as there
can be under some circumstances too much to do within the response time-out period.
Thus, the only time the EGM may a build a response (for subsequent transmission) is after a
valid poll (CRC ok) to the EGM’s address has been processed. CP:535
In regards to unsolicited responses of applicable types e.g., group meter increments, events
and program hash responses. When data pertaining to these types of responses is required
to be transmitted, the software should flag the applicable response type as “need to send”
such that the current data will be captured at the next response build at its given priority. This
avoids building a response with aged data. This method has the advantage of only requiring
the EGM to have two alternating response buffers; one is for the current transmission &
acknowledgement processing, and the other to hold the next response (as built or being built)
for pending transmission.
The EGM must be able to process at least one Date and Time Broadcast each poll cycle and
this must not interfere or be able to affect the processing of polls and building of responses to
the EGM’s poll address.
Refer to Figure 3 EGM Message Processing above and (14.1.23) for more information.
Typically a SC will commence a new poll cycle no more than once per second. However
QPv1.6 EGMs must now be able to sustain poll cycle periods as fast as 250 msecs without
missing any responses. At a minimum the EGM must be able to process at least two
messages per poll cycle; a poll to its address and one broadcast message. NB: the time
between a poll-response from an EGM and a broadcast message may be negligible and vice-
versa. CP:536 NB: polls to other addresses can also occur at any time and must be ignored if
not applicable to the EGM.
To sustain a continuous stream of responses an EGM must take no more than the 250msec
after receipt of a poll to its address to process the poll data and build the next response, or to
process a Date and Time Broadcast. CP:537
Some message types may take a very long time for the EGM to process. On example is the
Program Hash Request Poll (15.4.8). In this case the EGM will be granted a stated time-out
period in which the poll message request must be processed, but in the interim the EGM must
still process and respond to all received messages in a timely manner. These types of CPU
intensive poll requests are typically processed by another task in background by the EGM.
14.1.5 The EGM must only respond to poll messages received on its designated poll address
CP:538 (Refer 15.5.4) that have a valid CRC. CP:539
14.1.6 Broadcasts.
An EGM must not respond to a message with the broadcast address (255) and the
broadcast’s control field must be ignored by the EGM.
An EGM's response to a poll to its address must commence within 9 continuous character
times (which equates to approximately 5 milliseconds @ 19200 baud) upon receipt of the last
byte of the poll CP:540 provided the poll message had a valid poll address and CRC. CP:541 This
value is called the Response Timeout period.
Meeting this requirement can be challenge for EGM’s using protected mode operating
systems (i.e. Windows & Linux). In both cases meeting the required response time can
require a change to the Operating Systems’ Serial Port device driver.
Once an EGM has resumed responding to a SC on its designated poll address (Refer 8.3),
the EGM must respond to all subsequent received polls with a valid poll address and CRC,
until the next power down of the EGM or communications timeout. After an EGM power up or
communications timeout, the EGM must not resume responding until it has been assigned a
poll address via the poll address broadcast message (Refer 15.5.4).
Upon building a response, the EGM must build the highest priority response that is pending
but with the following exception; CP:542 excluding the lowest priority response, responses of the
same type (i.e. function code), must only be sent by the EGM every 2nd poll response. This
allows for a lower priority response between consecutive responses of the same type. CP:543
This behaviour should occur by default upon implementation the required QCOM response
methodology (refer Figure 3 & 14.1.1).
All responses must be built no earlier than the one poll cycle prior their transmission to ensure
they contain the most recent data. I.e. if a response type is requested but an opportunity for
its transmission was delayed by higher priority responses, then when the response is finally
sent it must reflect the latest EGM data no older than one poll cycle. CP:544
A SC acknowledges each EGMs response via the CTRL field of the next poll to the EGM’s
address. Refer section 14.2.1.
14.1.13 An EGM must only process poll messages which have a valid CRC. CP:545
Specifically, the EGM must not process either the CNTL or Application Layer Message Data
unless the message has a valid CRC. Refer section 14.2.1.
If the SC sent two consecutive polls in a row requesting the same response type, then the
EGM may respond with either one or two responses of that type requested, whichever is
easier (usually one is easier). Both poll’s message data must be processed. Similarly, if the
SC sent a poll requesting a specific response and the response to that poll was the required
response type, then the EGM is not required to send that response again. However, it may
also send the whole response again if that is easier.
Consecutive characters in a message response must not be separated by more than one
character time (i.e. 0.5729 milliseconds @ 19200 baud). This time refers to the gap
between two consecutive characters in an EGM's response. CP:547
If an EGM detects it receives any character while initiating or transmitting a response, it must
immediately abort the response and process the received byte. Some EGMs only do this if
the parity bit is enabled on the received byte. This is acceptable as it can be difficult to
implement this requirement in some UARTs. CP:548
14.1.17 To distribute processor load in the processing of received polls and to achieve the fast
response time, it is recommended poll message CRCs be calculated as the bytes are
received.
14.1.18 While building a poll response, the message data must be protected from access by
other processes, or change under interrupt. E.g. Metering data.
If an EGM receives an undefined function code in a message poll, it must still respond CP:549
and process the poll for an acknowledgement CP:550, but ignore the unknown message data
CP:551. For backward compatibility, an undefined function code must not be considered as a
non-acknowledge by the EGM CP:552. It is the SC responsibility to ensure that it only sends
known poll function types to an EGM (as the EGM reports its protocol version to the SC in the
EGM Configuration Response (15.6.12)).
EGMs must be able to process poll messages normally that have additional message data
inserted just before the CRC (i.e. a poll message must not be considered invalid because it
has a length byte greater than what the protocol indicates for the given message type). CP:553
This allows the SC to add additional information to poll message data for future expansion,
but while maintaining backward compatibility.
Malformed message lengths; i.e. too short or too long. A purposely or otherwise
malformed poll message length byte must not be able to cause a receive buffer overrun
or corrupt EGM memory.
o Short malformed messages*. I.e. Valid FC & CRC with correct LEN field for the
CRC position but one or more fields are missing. CP:554
o Short messages that are cropped. I.e. the message is missing a CRC (see
‘incomplete messages’ below).
o Long messages: additional bytes before the CRC (This is allowable behaviour,
refer 14.1.20)
o Long messages: additional bytes after the CRC. CP:555
Rapid polling (much greater then one poll cycle per second). CP:556
Invalid function codes (14.1.19).
Incomplete messages. (causing communications state machine/process hang) CP:557
Invalid message data within a valid message (all validity checks listed in section 15.4
must be performed by the EGM).
Anything transmitted to the EGM that can cause it to corrupt its memory, crash, or hang will be
considered an EGM software bug that must be addressed.
It must also not be possible to corrupt, overwrite, lose or abort the processing of a valid poll
message in the EGM (wrt its CRC) once it has been acknowledged (refer 14.1.11) without
resulting in an EGM RAM error. Specifically check an EGM power fail* and poll overrun
condition (where new poll message is received before the current poll message is processed,
refer 14.1.23).
* On slower EGMs there may be a critical section where EGM does not finish processing a
poll before the poll has been acknowledged by the EGM (14.1.11), then there is a critical
section of time following the last sent byte of the EGM’s response (which denotes an ACK),
until the EGM has finished processing the response, where a power interruption may result in
a poll that has been ACK’d but is never actually fully processed by the EGM. The EGM must
try to minimise or eliminate this critical section by either processing polls in a timely fashion or
via state recovery. CP: 558
If a new poll message (that is not a broadcast) is received before the previous poll message
has been processed (including the building of a response if required), then the EGM must
discard the new poll and ensure the current poll processing is completed. The EGM will miss
a response as a result. This should not be possible in normal operation given the current poll
If a broadcast message is received before the previous poll message has been processed
(including the building of a response if required), then the EGM must finish processing the
current poll message then process the broadcast message. No data or response must be lost
in this case. CP:560
If a new poll message (that is not a broadcast) is received before the previous broadcast
message has been processed, then the EGM must finish processing the current broadcast
message then process the new poll message. No data or response must be lost in this case.
CP:561
As per a poll overrun condition, at the low level, before an EGM can commence writing a new
poll message to a receive buffer, it must ensure the buffer is not still in use (i.e. being
processed). (This may not be applicable in all cases depending on each individual EGM
manufacturer’s implementation of QCOM). If the buffer is still in use, the EGM must simply
abort receipt of the new poll message and ensure processing of the data in the current
message buffer/s is completed. Similarly for the EGM transmit buffer/s. The EGM must
ensure a transmit buffer is not still in use before commencing to build a new response. If the
buffer is still in use, the EGM must wait until it is available before building any further
responses. CP:562 This may not be applicable in all cases depending on how QCOM is
implemented by the EGM.
14.1.25 Please refer to the QCOM SDK for more information on the recommended EGM
Message processing order.
ADRS Poll address of the EGM (1-250);, 1 byte hex (1-255) CP:563. Poll addresses in the range 251-
255 have special reserved functions: poll address 255 are broadcast messages, 252 is the seek
EGM broadcast (refer section 21) and the remainder are reserved for future use.
LEN Length of ensuing message, from the CNTL to CRC fields inclusive. 1 byte hex, LSB first.
For future expansion and backward compatibility the largest Message all EGMs must be able
to process (from address byte to CRC inclusive) is 257 bytes. (i.e. maximum LEN= 255 or 0xFF)
(QPv1.6)
(QPv1.5 EGMs typically can handle a max LEN = 0x9E (158 bytes) i.e. 160 bytes total)
The EGM must ensure LEN >= 4 bytes and <= Maximum EGM buffer size (i.e. 0xFF), if not the
EGM must abort receipt of the poll (do not increment the CRC error counter in this case as this
can occur frequently when there is more than one protocol on the LAN). CP:564
CNTL Control Field, 1 byte hex. See 14.2.1 below.
[...] Application Layer Message Data. Only one message type may be sent per poll. Refer sections
15.4 & 15.5.
CRC 16 bit CCITT CRC of the message, zero seeded, LSB LS bit first, utilising the standard
polynomial, X16 +X12 +X5 +1. Arranged so a CRC result of zero is always returned for a valid
message (address byte to CRC inclusive). The CCITT CRC Algorithm is available in "C" source
code format with the protocol SDK.
A change of state of this bit with respect to the last received value indicates an
acknowledgement to the EGM's last response. If the value of the bit does not change with
respect to the last received value, this indicates a negative acknowledgement to the EGM's last
response. The only way the EGM must be able to receive an ACK / NAK to its last response is
via this bit. CP:566 Related: s14.1.13
If the last response from the EGM is not acknowledged by the SC, (i.e. no change in this
value), the EGM must re-queue the response (function code) to be rebuilt and sent again later
CP:567 (with respect to general response message priority CP:568). This is the only time a
response is ever re-queued CP:569. When a response is NAK’d it must be rebuilt to ensure it
reflects the latest EGM data at all times (e.g. the Meter Group/Contribution Response 15.6.8).
CP:570 CP:571 For NAK’s in relation to Event Responses, see 7.1.3.
(QPv1.6) For any poll which contains a negative acknowledgement the EGM must not
process the application message data CP:572. This prevents poll messages from being
processed more than once by an EGM that is being NAK’ed. (QPv1.5 EGMs will process the
poll data again.)
(QPv1.6) This bit is not applicable on the first poll in a new session as there is no response
yet to apply the acknowledgement to. CP:573 However this bit must be saved by the EGM to set
the current Ack. state so acknowledgements can be detected on all subsequent polls in the
current session. CP:574
In QPv1.5 EGMs, the last received value of this bit must be stored in the EGM’s NV-RAM for
the purposes of satisfying section 8.3.4. (This is no longer required for QPv1.6 EGMs)
(QPv1.5 EGMs only) The control field from the last received poll to the EGM's address must be stored
in non-volatile RAM on the EGM in order to correctly determine acknowledgements after a power
down. CP:576
Bit 0 Iamaresp flag. Must be set to 0 by the EGM. (All currently do since day zero.)
Bit 1 8BitMode flag. Must equal 1 if the EGM supports 8-bit mode (13.3)1. Zero otherwise.
bits 2-4 Reserved = 0.
Bits 6…5 QPV (QCOM Protocol Version) (QPv1.6)
This 2 bit field must always be set to a value of 01 by the EGM. This field denotes what
version protocol the EGM implements.
QPV = 00 denotes a QCOM Protocol v1.5.5 and below EGM
QPV = 01 denotes a QCOM Protocol v1.6 or later EGM
This is to help a SC easily recognise which version protocol the EGM communicates
on.
Also see the QPV field in the EGM Configuration Response (15.6.12)
An EGM must expect to receive at least one valid broadcast message (a valid broadcast
includes correct poll address & CRC, but exclude function code) between successive polls to
the EGMs address. If the EGM detects a missed or corrupt broadcast message, the EGM
shall set this bit in all subsequently built future responses until the next time a response with
the bit set is acknowledged by the SC in the normal fashion. CP:577 The bit may then be
cleared from future responses.
EGMs must ensure they do not set this flag if it was to receive two or more consecutive
broadcast messages with no poll to the EGM’s address in between CP:579.
Specifically, the EGM will enable and disable individually configured games (even in a single game
EGM) as indicated by their Game Enable Flag sent in the EGM General Maintenance Poll (15.4.13)
and the EGM Game Configuration Poll (15.4.3). CP:580
Some multi-game EGMs allow only a limited number of games to be enabled for play at one time
(often this limit is usually imposed by the game select screen), but actually have a larger number of
games resident in the EGM to choose from. The EGM reports this information in the EGM
Configuration Response, Section 15.6.12.
If the EGM is told to enable a game that causes the maximum allowable number of enabled games to
be exceeded, the EGM must ignore the request to enable that game. CP:581 However this does not
stop a game from being configured.
Also refer to section 9 for how GEF affects the game select screen in a multi-game EGM.
EGM manufacturer’s must ensure BSVNs must be unique with respect to all previously used BSVN &
GVN numbers for the manufacturer. However, if a single game EGM does not have a generic base
software set, then the BSVN may be set at the same value as for the GVN number for the game CP:583.
Systems should refer to the latest version of the QCOM Site Controller Procedures document for what
do with BSVN fields.
Every version of a game produced by an EGM manufacturer must have one GVN number which must
uniquely identify the game and software version of the game for that manufacturer. In this protocol
the GVN is used as the method of referring to a specific game. So long as GVN numbers are unique
to the game and software version, the EGM manufacturer may use whatever GVN numbering scheme
An approved game denoted by a GVN, for a single game EGM, can have the same GVN if it is
incorporated into a multi-game EGM on the condition that the game is identical in all respects; i.e.
same game name, number of variations, PRTPs, reel strips, rules, etc.
GVNs for games ported to a new EGM base/shell version can have the same GVN on the condition
that the game is identical in all respects; i.e. same game name, number of variations, PRTPs, reel
strips, rules, etc.
A GVN of zero is reserved and must not be used as a game I.D. number.
When combined with the VAR field, this uniquely identifies a game and variation in an EGM of a
manufacturer.
When combined with the serial number the two fields uniquely identify a QCOM Protocol EGM.
NB In QCOM, MID fields are Binary Coded Decimal (BCD) hexadecimal values. E.g. a MID of "14" is
encoded as 0x14 within a QCOM message packet and QSIM would display "14" on its display if the
MID is implemented correctly by the machine. (NB because of past confusion, QCOM no longer uses
BCD for new fields, unfortunately for legacy fields like this one, its units cannot be easily changed due
to the number of systems now built around it)
Presently they are used by two poll message types, the Purge Events poll (Section 15.4.15) and ‘ECT
to EGM’ poll (Section 16.1.1).
The EGM must maintain a separate non-volatile PSN for each Poll message type which uses a PSN
field CP:586. I.e. Two. One for Purge Polls and another for ECT Polls.
If a PSN passes the above test on the processing of an applicable poll, then the EGM must update
the next expected PSN as per the above formula for the given poll type at that time. If the PSN fails
then its value must remain unchanged. CP:588
The default values for Poll Sequence Numbers the EGM must assume after a RAM clear is zero (i.e.
the first expected PSNs will be 0x01).
PSNs may be reset on command by the SC in the EGM Configuration Request Poll (15.4.1) CP:589.
PGID numbers are used to denote groups of levels of the basic EGM triggered, linked progressive
jackpots. They are arbitrarily assigned by the monitoring system as required by linked progressive
games. If a game has a linked progressive component (i.e. if one or more progressive levels have been
configured as LP) then its LP levels will be assigned a PGID number in the range 0x0001 to 0xFFFE
(inclusive). A single game can have only one PGID number. Different games within a single EGM can
have different PGID numbers (and usually will have).
The PGID’s primary function is to enable the EGM to identify applicable current progressive amounts
when broadcast out by the SC (15.5.2). Via the PGID, the EGM knows which current level amounts are
applicable to its games.
A PGID number of 0x0000 in the EGM Game Configuration response (15.6.11) indicates the game has
a progressive component with levels configurable as either LP or SAP and requires configuration via
the EGM Game Configuration Poll (15.4.3).
PGID in the range 0x0001-0xFFFE indicates the game has been configured with one or more Linked
Progressive levels and this is the LP group I.D. number contributed to by the game.
A PGID number of 0xFFFF indicates the game is either a non-progressive game or was configured as
SAP only.
0x39 \
… Reserved (FTP)
0x36 /
0x24 Reserved for ECT Operation - ECT Lockup Reset Poll (16.4)
0x23 Reserved for ECT Operation - ‘ECT from EGM’ Lockup Request Poll (16.3.2)
0x22 Reserved for ECT Operation - ECT to EGM Poll (16.1.1)
* Extended Current Date and Time Broadcast Messages (Refer Section 15.5)
0x20 NA Yes Reserved for the Seek EGM feature. Refer section 21.3
0x19 1 Yes Program Hash Response (15.6.13)
0x16 2 Yes EGM Configuration Response (15.6.12)
0x13 3 Yes... EGM Game Configuration Response (15.6.11)
0x10 4 Both... Event Response (15.6.9)
0x0F 5 Yes Purge Event Poll Acknowledgement Response (15.6.10)
0x0E 6 Yes ECT-to-EGM Poll Acknowledgement Response (16.1.2) (QPv1.6)
0x0C 7 Both... Meter Group/Contribution Response (15.6.8)
0x0B 8 Yes Player Choice Meters Response (15.6.7) (QPv1.6)
0x0A 9 Yes Multi-Game/Variation Meters Response (15.6.6)
0x09 10 Yes Bet Meters Response (15.6.5) (QPv1.6)
0x08 11 Yes Progressive Configuration Response (15.6.4) (QPv1.6)
0x07 12 Yes Progressive Meters Response (15.6.3)
0x06 13 Yes Reserved for Configurable Random Events (CRanE) (17.6)
0x05 14 Yes Reserved for EGM to EGM Communications, refer 19.1 (QPv1.6)
0x04 15 Yes Note Acceptor Status Response (15.6.2) (QPv1.6)
0x02 16 Yes Reserved for QCOM Command Prompt Response (20.2) (QPv1.6)
0x01 17 No General Status Response (15.6.1)
1 denotes highest priority response in the priority column above. Refer 14.1.9.
* In QCOM all EGM responses are solicited by the SC. However responses of a particular type have
three categories; solicited, unsolicited or both. Unsolicited means that the EGM will send the response
type in response to a poll when it needs to (wrt general response priority), solicited means that the SC
will only get the responses type when it specifically requests it.
"..." above, denotes multiple responses of the same type may have to be queued simultaneously by the
EGM as the result of one or more polls (more information is provided on this matter within the sections
on each response marked with ...). For all other responses the EGM will only have to be able to queue
one response of a type at a time.
Note. All reserved message bits and bytes must always be masked out by the EGM during poll
message processing to avoid any problems when the protocol is expanded.
Before accepting any of the data in this poll (which the EGM must only do if at least one game can be
enabled based on the data in the poll), the EGM must confirm all the poll message data is valid. Any
invalid information detected in this poll by the EGM, must result in the poll’s ‘message data’ area being
ignored and the “Invalid EGM Configuration” event (7.10.3.21) must be logged. (QPv1.6) The EGM
must also reject the poll and log the event, if accepting the configuration would mean no games would
be subsequently available as a result of the parameters1 (RTEXT (7.10.1.16) = “No Games Avail”). CP:597
If the EGM ignores the EGM Configuration Poll / data, it must be possible to try again without restarting
or RAM clearing the machine. QPV1.6.7
Once the EGM has accepted the configuration in an EGM Configuration Poll, it must not process this
poll type again until after its next RAM clear CP:598. The EGM must not consider this an issue or log any
events in response, the EGM must simply ignore (but still ACK) any superfluous EGM Configuration
polls.
There is one exception in relation to the previous paragraph for the processing of this poll type more
than once which is in relation to EGMs supporting denomination switching (refer 3.1.3.1). For EGMs
supporting denomination switching this poll may be subsequently used to change an EGM’s credit
denomination.
The current settings for the data set via this poll may be verified by a SC by requesting the EGM
Configuration Response (refer 15.6.12).
For any EGM still utilising JUR for any purpose (other than recording/reporting
back its current value), then:
please advise the OLGR the EGM software versions and a list of what
purposes JUR is being used for in the code (other than
recording/reporting back its current value).
the EGM must display a summary of those purposes in the QCOM related
pages within EGM audit mode. QPV1.6.7
1If a game may be setup LP or SAP, then the EGM may ignore the MAXPWIN parameter wrt
applying the ‘no games available’ requirement here
Defined jurisdictions:
If the EGM does not utilise JUR for any purpose other than recording/reporting its
current value, then the EGM must accept any given value for the JUR field. QPV1.6.7
If the EGM can reject any given value for JUR for any reason, then it must also log an
RTEXT event (7.10.1.16) with a suitable reason each time it rejects the JUR/poll.
QPV1.6.7 CP:602
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
QPV1.6.7The EGM must not apply sanity checks to EGM Configuration Poll ‘regulatory’ max/min type
parameters (see ‘regulatory’ above) other than the sanity checks specifically stated (see individual field
descriptions above). An EGM Configuration Poll with all the ‘regulatory’ max/min type parameters set
to their most liberal values must allow any EGM configuration to be accepted (provided the EGM also
supports the specific values sent for JUR, DEN, TOK) and allow the EGM to expose all games in the
EGM. CP:622 EGMs must never apply ‘equal to’ constraints to MAXDEN, MINRTP, MAXRTP, MAXBET,
MAXLINES,MAXNPWIN, MAXPWIN, MAXECT and MAXSD fields, as these parameters and similar
may change over time during the operational life of a game or may be set to their max value in some
cases.
QPV1.6.7
Additional EGM manufacturer implemented sanity checks or pre-requisites concerning JUR,
DEN, TOK fields are acceptable provided the EGM provides adequate feedback on any issues via the
logging of “Invalid EGM Configuration” events (7.10.3.21) followed with one or more suitable
explanatory RTEXT (7.10.1.16) events. Feedback represented by the event data must always provide
a clear way forward in resolving issues with EGM Configuration Poll data. CP:623
If the EGM is a multigame with shared progressive component (refer 10.9), then processing from this
point onwards for a progressive game must only be performed once per RAM clear by the EGM and
be automatically applied to all applicable games involved in the shared progressive arrangement by
the EGM. I.e. any differences in subsequent progressive configs would simply be ignored. CP:629
(QPv1.6.4) This ensures any initial contribution is only accepted once.
PGID Linked Progressive Group I.D. (15.1.10). The LP group contributed to by the game identified
by GVN & VAR (0x0001-0xFFFE), CP:630 2 bytes hex
0xFFFF indicates either a non-progressive game or indicates game will run as a SAP and has
no LP levels CP:631.
Validity Check: The message must be considered invalid if PGID is zero (see below) CP:632.
RTEXT (7.10.1.16) = “PGID = 0”.
PNUM 1 byte hex, number of progressive levels in the game. 0...8
Validity Check: The message must be considered invalid if PNUM is > 8 CP:633. (RTEXT
(7.10.1.16) = “PNUM >8”).
Validity Check: If PNUM is incorrect with respect the game's actual number of progressive
levels, the EGM will consider the poll invalid and log the “Invalid Game Config.” Event
(7.10.3.22) CP:634 (QPv1.6). (RTEXT (7.10.1.16) = “PNUM Incorrect”).
NB QPv1.5 EGMs would default to SAP if PNUM was invalid.
SIZ 1 byte hex. Size of each repeated entry = 5 CP:635
The following message poll data is repeated PNUM times for each progressive level in the game, in
order starting from level 0 (the highest expected jackpot). There may be up to eight repeated
progressive entries in one poll message depending on PNUM.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Notes:
The EGM must enable games (provided their Game Enable Flag is also set) as they are configured by
this poll CP:645. Also refer to the “EGM Game Variation Enabled“ event (7.10.3.7).
Validity checks: The EGM will consider the poll invalid and not accept the poll's ‘message data’ if either:
EGM Configuration has not been successfully completed via the EGM Configuration Poll (15.4.2)
QPv1.6. CP:646. (RTEXT (7.10.1.16) = “EGM not Cfg”).
The VAR CP:647, GVN CP:648 or PGID field, is illegal, incorrect or not applicable to the game and EGM.
(RTEXT (7.10.1.16) = “xxxx Unknown”, or “xxxx Illegal” where “xxx” is the VAR, GVN or PGID
respectively).
For a progressive game, if PGID indicates LP but no progressive levels were indicated as LP CP:649,
or, if PGID indicates SAP but one or more progressive levels were indicated as LP CP:650. (RTEXT
(7.10.1.16) = “PGID Inconsist”).
If a LP only or SAP only progressive level is attempted to be set as a SAP or LP respectively.
(RTEXT (7.10.1.16) = “Lev x is LP/SAP Only” where ‘x’ is substituted with the level ID number)
It fails any other validity check in this section.
If the message is considered invalid for any of the above reasons then the EGM must log the “Invalid
Game Configuration” event (7.10.3.22) CP:651.
The EGM must only process a valid poll message of this type that successfully configures the game,
once per game (GVN) per RAM clear CP:652. The EGM must not log any events in the case of additional
game config polls directed at an already configured game.
This poll may be used to change aspects of a game’s current configuration. Such as:
GEF
Variation CP:653 (if hot variation switching is supported by the particular EGM (refer 15.6.11)),
Linked Progressive Group I.D (PGID) CP:654,
This poll’s ‘message data’ area must be ignored by the EGM if it does not have zero credit on the
credit meter upon the initial processing of this poll message CP:655, or a play is in progress or
incomplete QPv1.6 CP:656, or if the game has not yet been configured via the EGM Game Configuration
Poll (15.4.3) CP:657.
If the poll is accepted, changes must take effect immediately if the EGM is in idle mode CP:658,
otherwise if not in idle mode, the changes must be queued in NV-RAM CP:659 and take effect upon the
next return to idle mode (3.3.2). CP:660
OPR 1 byte hex (QPv1.6. This field was BCD in QPv1.5). Monitoring System Operator ID.
This allows the EGM to execute any operator specific code, if any.
0x00 Default/Unused
Licensed Monitoring Operator ID/licence number, as allocated by OLGR
0x10 Denotes Tattersalls (VIC)
LWIN Large Win Lockup Threshold. 4 bytes hex, in cents.
At the end of a play upon return to idle mode (refer section 3.3.2), if a single play's
total win (including double up/gamble, free games, spins, features, SAP wins etc.) is
greater than or equal to this amount, the EGM will enter a large win lockup to allow
manual verification of the win amount CP:681. In QPv1.6, the EGM must not
automatically instigate a payout of the win amount as this is now controlled by other
1 I.e. after a LP lockup has been cleared, play must continue without having to release the play button at any stage.
Upon entry into the Large Win lockup condition, the EGM Large Win Lockup Event
must be logged (7.10.2.3) CP:683 and the win amount must be added to the EGM’s total
wins meter (12.2) and multi-game/variation win meters (15.6.6). CP:684 Once in the
lockup, the amount of the win and the game result must be displayed clearly to the
player and the attendant. CP:685 Acceptance of the overall legibility of the Large Win
Lockup display is at the discretion of the CEO CP:686. Upon lockup exit, the EGM may
either return to play or instigate a payment of the win amount depending on the
NPWINP & SAPWINP parameters below.
CRLIMIT Credit-in Lockout Value. 4 bytes hex, in cents. When the credit meter is greater than
or equal to this limit, credit entry to the machine via coins/tokens and banknotes must
be disabled CP:687. Cash tickets must still be accepted for possible TITO system
approval.
While disabled, the EGM must display an appropriate explanatory message in idle
mode (refer GMNS). CP:688
CRLIMIT does not apply to ECTs CP:689 or Ticket-In (re TITO) CP:690.
This parameter may be used as a general hard currency disable as used in some
jurisdictions near the end of operating hours.
DUMAX 1 byte hex.
bits 0...3
Maximum allowable number of consecutive Double-Ups/Gambles (or the
equivalent) per play, if applicable CP:691. If the EGM receives a value for
DUMAX greater than it can support in software then it must assume its
maximum possible value CP:692. A value of zero simply disables double-
up/gamble CP:693. The EGM may allow this to be set lower by an attendant if
desired.
bits 4...7
Reserved CP:694
DULIMIT Double-Up/Gamble Limit. 4 bytes hex, in cents. Double-up/Gamble (or the
equivalent) must not be offered if the total amount won for the play would exceed this
limit if the gamble was won CP:695.
It is recommended for multi-jurisdiction support that DUMAX & DULIMIT are displayed dynamically to
the player in either idle mode or on the game rules display or within the in double up/gamble feature.
TZADJ Time Zone Adjust. 2 bytes signed hex. Units of minutes. QPv1.6
TZADJ added to the current system time (15.5.1) to get the local time for display
purposes.
All date and time stamps logged and displayed on the EGM must be adjusted by this
amount except where stated otherwise. This includes, but is not limited to: CP:696
The player clock display time (15.5.1).
The local time as printed on a Cash-Out Ticket (22.3).
Last play recall time stamping.
Audit mode RTC display.
All displayable event queues except for the QCOM event queues (see
below).
Date and time stamps recorded with one value of TZADJ must not change if TZADJ
is subsequently changed. CP:697
The only exception is the logging of QCOM events and the display of the QCOM
event queues in EGM audit mode ((4.2.13). QCOM events (refer 7.10) must not be
adjusted by this field. CP:698
A PWRTIME value of zero is a special case and must cause power-save to occur
instantly the next time the EGM is in idle mode with zero credit, no faults, all doors
are closed. This is regardless QPv1.6.2 of the current value of the SEF. CP:702 This
allows the option to put EGMs into power-save that are on the same network as
EGMs that are in play.
The purpose of the above special case is to allow a gaming venue operator to put
individual EGMs into power-save if e.g. they wanted to close off a section of the
gaming floor and have those EGMs go into power-save. An operator couldn't do this
in former versions of QCOM running on a multi-drop LAN as the operator they had to
disable the entire EGM LAN (SEF=0) in order to put a single EGM into power-save.
Exiting power-save:
If PWRTIME is not equal to zero, any activity on the EGM (button push, fault,
audit mode access via key-switch, ECT-in, or door open), or a change in state of
the SEF from 0 to 1QPv1.6.2 CP:704, must reset the power-save timer and bring the
EGM out of power-save.
If PWRTIME=0 there must be no instantaneous exit/re-entries to power-save
(e.g. on button press or SEF 0 to 1 transition) CP:705
If PWRTIME = 0 then only leaving idle mode (e.g. a change in GSR:STATE from
Idle (e.g. System Lockup) or a change in state of the EGM to a fault condition,
door open, audit mode access or reboot) will temporarily bring the EGM out of
power-save until the next return to idle mode. CP:706
Any change in value of PWRTIME to a non-zero value must reset the current
power-save timer and therefore also cause the EGM to exit power-save if active
QPv1.6.2. CP:707
As the SEF may now also equal one (site enable) during power-save (see special
case above), the EGM must ensure that physical credit input devices are specifically
disabled for credit input during power-save. QPv1.6.2 CP:708
If both NPWINP & SAPWINP thresholds are exceeded for a single play then a payout must occur for
the combined win amount. CP:717
Any win payout that occurs must be correctly accounted for in last play recall, as per GMNS. CP:718
Upon entry into any win payout as a result of a win exceeding either NPWINP or SAPWINP, the EGM
must pause and display the following message for 5-10 seconds:
While this message is being displayed the EGM’s state (refer 15.6.1) should still be on of the ‘Play in
Progress’ states.
As a result of the above two new thresholds, in order to implement payouts of win amounts, to avoid
confusion, all payout routines via hopper, or ticket-out, or cancel credit, or ECT, must not assume
anywhere that the amount being paid is equal to the credit meter (especially from the aesthetic point
of view). CP:720
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
If the game’s variation is locked (refer 15.6.11) then this must also lock the SAP configuration and it
cannot be changed CP:722.
This poll’s SAP ‘message data’ must be ignored by the EGM if; the game doesn’t support
CustomSAPs, or if the EGM is not in idle mode, or it does not have zero credit on the credit meter
upon the processing of this poll message CP:723, or if the game has not yet been configured via the
EGM Game Configuration Poll (15.4.3) CP:724.
This poll’s LP ‘message data’ must be ignored by the EGM only if the game doesn’t support LPs, or if
the game has not yet been configured via the EGM Game Configuration Poll (15.4.3) CP:725.
If any data in the poll is accepted, changes must be immediately reflected in the protocol. CP:726
The following data is repeated as indicated by the NUM field. There may be up to eight progressive
levels in this poll and the levels must be sent in order from lowest level number ID (0), to highest. CP:730
where SUPRTP is the RTP of the jackpot startup amount with respect to the jackpots
hit rate, i.e. SUPRTP = HRATE * SUP * 100.0. To verify an implementation of the
SUPRTP formula is working, set HRATE = 1.0 & SUP = 1cent, then SUPRTP should
equal 100 which equates to 100%. *This formula is a typical example but may vary
depending on game design so should not be taken as a rule.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Before accepting a new progressive configuration, the following additional validity checks must be
performed by the EGM:
Upon failure of any validity checks, the EGM must reject the poll message data and log the Invalid
Progressive Configuration event (7.10.3.23). CP:736
If the new progressive configuration is accepted and actually is a change, then the EGM must log the
“Progressive Configuration Changed” event (7.10.3.34). CP:737
Carry over total contribution (including any overflow) of each changed SAP level to the
corresponding new SAP jackpot level. CP:738 (note that a change in PINC for a SAP level must
not affect its current contribution CP:739, but depending on the new SAP jackpot parameters, a
backward movement in the current jackpot amounts is possible. (see example below)
Calculate a new ‘Initial Contribution’ using the SAP reconciliation formula applicable to the
game. (This to ensure SAP level reconciliation is not broken by the change of SAP level
parameters. Refer 10.4.1 for more information.)
If the EGM is a shared progressive (refer 10.9) then any change to progressive configuration
successfully made by this poll to one game, must be automatically applied by the EGM to all other
progressive games. CP:740
Note that a SAP level’s trigger rate is not re-configurable at this time and must be locked to the
game’s variation or game. Also refer 9.2.
The reason for informing the EGM of the jackpot details is that some jurisdictions require external
jackpot details (e.g. Total combined RTP of all external jackpots) to be displayed on the EGMs PID.
Refer to local jurisdictional PID requirements for more information on PIDs. Some jurisdictions also
require the EGM to be able to display current external jackpot details and values on demand.
The EGM must not use this information with regard to any MINRTP / MAXRTP threshold validation
(15.4.2). CP:741
The EGM must also display the information received from the last External Jackpot Information Poll in
audit mode and store the last received details from this poll in NVRAM. CP:742
This poll may be sent to the EGM with information of up to a maximum of eight external jackpot
progressive group/level combinations. This poll replaces any previously sent data regarding external
jackpots. CP:743
When displaying both an icon and EXTJIP meters, the two must be
displayed in close proximity to each other. CP:751
A 50% transparent display is preferred for the EXTJIP data/icon in
order to make the display less obtrusive the EGM’s own game.
Acceptance of the overall legibility of the display is at the discretion of
the CEO CP:752.
Default at EGM RAM clear = 0. CP:753
Bits 12…15 Reserved
SIZ 1 byte hex
Size in bytes of each repeated entry below = 20. CP:754
The following data is repeated for each external jackpot level by the number of times indicated in the
FLG field.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
If this flag is set and the EGM has also been provided with level details (refer PGID, level ID and level
name fields above), the EGM must display the last received current amounts (via LP broadcasts –
section 15.5.2) and jackpot level names (LNAME) to the player at least during idle mode (only
mandatory for the current game and game selection idle mode displays) and during game play
(double up & second screen features may be exempted). Refer Appendix A CP:769. The overall display
must be prominent and cannot be cycled with other messages CP:770. The display line/box must be of
sufficient size to display at least one level at a time CP:771. The display may be scrolled as required to
display each level in turn. Each level must be displayed for at least 4 secs before continuing/scrolling
on to the next level, if any CP:772. The colour of the text must be suitable for the background it is
placed on. A transparent display is preferred in order to make the display less obtrusive the EGM’s
game. Acceptance of the overall legibility of the display is at the discretion of the CEO CP:773.
After any EGM power up, or upon receipt of a poll of this type, the EGM must not display to the player
a current jackpot amount configured for display by the External Jackpot Information Poll until after the
next LP Broadcast update (section 15.5.2) for the applicable level amount has been received. CP:774
(This is on a per level basis.) This prevents the EGM from displaying aged amounts to a player. Also
refer to section 15.5.2 for more information regarding LP broadcast processing.
or
Lots of Money
$12,345,678.90
or
Lots of Points
1,234,567,890
Upon receipt of this message, the EGM will enter the System Lockup condition if the EGM is in idle
mode CP:779 otherwise it must store the request in NV-RAM and enter the System Lockup upon next
return to idle mode (refer 3.3.2) CP:780.
Upon entry into the lockup, the EGM will set the System Lockup state in the General Status Response
(15.6.1) CP:781, prominently display CP:782 the TEXT field message data to the player and possibly
(depending on FLG field bit 7) play a jackpot fanfare. The message data and lockup state must be
stored in NV-RAM CP:783. The EGM must not display a lockup title (i.e. “System Lockup”) (QPv 1.6.4), or
“Call Attendant” or the equivalent for this lockup CP:784. However, in a low prominence position (and
minimum permissible font size) the EGM must display the text “QCOMSL” for the duration of the
System Lockup (the text must not be cycled with other messages) CP:785.
The EGM will remain locked up until reset by the EGM General Reset Poll (15.4.19) CP:786 or manual
key-switch CP:787. In addition, having either of the ‘Continue’ and ‘Question’ bits set (see below) will also
allow the user to reset the EGM from this lockup.
Acceptance of the fanfare sound used is at the discretion of the CEO (refer 3.6.3) CP:796.
LEN 1 byte hex.
Length of text field in bytes
Maximum length is 80 bytes CP:797.
Before processing, the EGM must verify LEN <= 80, if false the System Lockup request must
be ignored CP:798
TEXT LEN bytes of ASCII printable characters. Refer Section (2.3.8). CP:799 Before processing the
EGM must verify all characters are printable (refer 2.3.8), on fail, the System Lockup request
must be ignored CP:800
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
If the TEXT message is too long to display all at once the EGM should scroll it across the display. As
a last resort, the EGM may break the message at space characters and display consecutively
(separated with trailing and leading "...") CP:801. All required messages to be displayed by System
Lockup, must be displayed constantly (i.e. they must not be cycled on the display with other
messages) (QPv1.6). CP:802 To make this easier, it is acceptable for the system lockup display to
overwrite the play outcome display area (e.g. reels display), but it must not overwrite any meter
displays or other text messages. SPAM (15.4.20) must still be displayed during the SL as per section
15.4.20 CP:803.
Ideally the lockup should appear as a box overwriting the game result window (e.g. the reel display)
with the required information displayed clearly inside. If the display box can be made transparent
then this would be ideal. All meters on the game display must remain visible during the lockup. See
examples below.
The display must be legible. Acceptance of the overall legibility of the System Lockup text messages
on the EGM display is at the discretion of the CEO CP:804.
The EGM must ignore further System Lockup Requests polls until the current lockup has been carried
out and cleared CP:805. (If a SC wishes to generate multiple consecutive system lockups, then it is
recommended it also disable the EGM to prevent games being played between lockups.)
(QPv1.6) If a System Lockup is delayed because the EGM is not currently in idle mode (e.g. an EGM
with a long feature such as retriggerable free games may take a while to return), the EGM must display
the message “LOCKUP PENDING…” to the patron/attendant under the same display requirements as
SPAM (15.4.20), until such time as the EGM returns to idle mode and enters the System Lockup as per
the requirements in this section. CP:806
The EGM must provide in audit mode an audit log of at least the last 10 System Lockups (SL’s). The
log must contain the following data for each SL:
Time. System Lockup Poll received time (date and time-stamp, TZADJ adjusted).
Delay. (seconds) The amount of time before the EGM actually entered the SL after receipt of
the SL poll (i.e. as the lockup may be delayed if the EGM was not in idle mode)
TEXT field data (see above).
*NB the examples above have not been updated to confirm to QPv1.6.4 which does not allow
a title on the lockup, or show the required display of the text “QCOMSL”.
If not set, this indicates that the system is not approving the ticket out, the EGM
must ignore all other fields in this poll, pause and display for 5 seconds the
message “Cash Ticket Out Denied” and then exit/return from the TO Lockup
condition with respect to the “On-Failure Flag” above. CP:810
RES 4 bytes hex. Reserved.
TSER Ticket Serial Number. 2 bytes hex, from last Cash Ticket Out Request Event. Refer
section 7.10.4.11 for more information regarding TSER (e.g. when it is incremented).
The TSER in this poll must not overwrite the EGM’s TSER variable, it is for cross-
checking purposes only. See following requirement.
If TSER is incorrect with respect to the current value of the EGM’s TSER variable and
the success bit (FLG bit) was set, the EGM must ignore the acknowledgement poll and
log the Invalid Ticket Out Acknowledgement Event (7.10.3.36), remain in the lockup
and await another TO Ack Poll. CP:811
TAMT Ticket Out Amount
4 bytes hex in cents, amount of ticket out, LSB first, display as decimal currency of up
to 11 characters. If TAMT is incorrect with respect to the instigating “Ticket Out
Request” unnumbered event (7.10.4.11) and the success bit (FLG bit) was set, the
EGM must ignore the acknowledgement poll and log the Invalid Ticket Out
Acknowledgement Event (7.10.3.36), remain in the lockup and await another TO Ack
Poll. CP:812
TIME Transaction time. Seconds, Minutes, Hours, 1 byte each, BCD, 24 hour format.
DATE Transaction date. Day, Month, Year, 1 byte each, BCD
Time of Transaction in QCOM date and time format which must be printed on ticket by
the EGM (this time must not be adjusted by TZADJ by the EGM). CP:813
It is expected that the TITO system will populate DATE / TIME with the local gaming
venue time of the TO transaction AUTHNO denotes.
The EGM must ensure that the date and time fields are BCD and within valid ranges
(i.e. 1…60, 0…23 etc). CP:814 On failure the EGM must use the current local time (this
is the last rx broadcast message date and adjusted by TZADJ by the EGM) CP:815. No
A SC will send this poll in response to each new valid Cash Ticket Out Request Event (7.10.4.11)
received from the EGM. This poll ACK’s or NAK’s the EGM’s last Cash Ticket Out request.
EGMs must ignore this poll if it is not currently in a Cash Ticket Out lockup condition at the time. CP:822
If the EGM is in a higher priority condition, such as a door open or fault condition then it will store the
acknowledgement in NV RAM and action it upon return to the Cash Ticket Out lockup condition. CP:823
If a poll of this type is currently stored / pending or being actioned, then receiving another poll of this
type must have no effect CP:824
The EGM must be sure to only accept one valid Cash Ticket Out Ack Poll per Cash Ticket Out lockup
condition. CP:825
If non-zero, this indicates a denial of the EGM’s last Ticket In request, the EGM must
ignore the remaining fields in this poll, reset the appropriate flag in the “General Status
Response” (15.6.1) and reject back to the player the Cash Ticket-In currently waiting
for acknowledgement. CP:828
The reason for the failure is denoted by the value of FCODE. Refer 22.2 for the table
of failure codes.
TAMT Ticket In Amount.
4 bytes hex in cents, LSB first, display as decimal currency of up to 11 characters.
TAMT must not be zero.
TAMT must be less than MAXECT.
TAMT plus the EGM’s current credit meter value must not overflow (or rollover) the
EGM’s credit meter, or exceed the EGM’s credit meter display capabilities, or any other
EGM manufacturer specific credit meter limit. No other limits may be applied (e.g.
CRLIMIT); the TITO system will manage any type of limits relating to TITO.
Upon failure of any of the above, the EGM must abort the transaction as per section
22.2.2. CP:829
If the reason for the abort is due to the credit meter display capabilities being exceeded,
or any arbitrary EGM implemented credit meter limit, then the EGM must also log the
‘Transaction Denied - Credit Limit Reached’ event (7.10.3.44)CP:830
AUTHNO Ticket Authorisation Number, 16 bytes hex, LSB first.
This number is from the last Ticket-In Request Event (7.10.4.13) echoed back. The
AUTHNO field must only be validated by the EGM when FCODE = 0 (success). The
value received in this poll must not be saved (it is only to be compared against). CP:831
If this number does not equal the AUTHNO for the ticket currently being authenticated,
the EGM must simply ignore the poll message data and continue waiting for a new
Ticket Ack. poll for the remainder of the TI timeout period (22.2.1) CP:832
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
A SC will send this poll in response to each Cash Ticket In Request Event (7.10.4.13) received from
the EGM. This poll ACK’s or NAK’s the EGM’s last Cash Ticket In request.
EGM must ignore this poll if it is not currently awaiting acknowledgement for a new cash ticket in at the
time. CP:833
If a poll of this type is currently stored / pending or being actioned, then receiving another poll of this
type must have no effect CP:834
The EGM must be sure to only accept one valid Cash Ticket In Ack Poll per cash ticket in. CP:835
QPv1.5: Upon receipt of this poll, if the EGM is currently in idle mode and the credit meter is not zero,
the EGM must immediately enter a cancel credit lockup condition CP:836. If the EGM was not currently
in idle mode (e.g. in a fault/lockup/door open/audit mode/test mode/play CP:837), it will store the request
in NV-RAM (so long as there is currently credit on the credit meter) and enter the cancel credit lockup
condition immediately upon next return to idle mode (refer 3.3.2) if there is credit on the credit meter
CP:838. If the EGM was already in a cancel credit lockup, it must ignore the Cancel Credit Lockup Request
Poll CP:839. If the EGM was in cashless mode (16.2) the EGM shall instigate a cashless transfer as per
ECT requirements instead of a Cancel Credit CP:840.
QPv1.6: This poll must simply queue a ‘collect’ (as if the collect button was pressed) upon next return
to idle mode (refer 3.3.2) if the credit meter is not zero at that time. CP:841 If the EGM is currently in idle
mode with credit, then the EGM must behave as if the collect button was just pressed. CP:842
NB. With the new version of this command, to force a Cancel Credit on an EGM, a system must
temporality set COLLIM to zero, send the cash-out poll, then restore COLLIM to it previous value
after.
More than one group may be requested at a time CP:848. If a SC requests a meter group from
an EGM that has either no meters defined in it, or no meters are in use within the group (due
to current EGM/game configuration), then the EGM must ignore the request for that group CP:849.
If the GVN was correct but the VAR invalid or incorrect (i.e. does not correspond to a variation in the
game), then the EGM must ignore multi-game/variation meter requests, but it must still report any
other response type as requested via GFLG and set the GEF flag accordingly. CP:867
The SC will primarily use this poll when it is recovering after a SC RAM clear.
The EGM will re-queue for transmission all currently logged events in the primary event queue that have
not been previously denoted as purged by the purge events poll. CP:868
Note. While the response to this poll may be a new event, the EGM must ensure that the first re-sent
event is delayed to at least the response after the response to this poll (this is so the SC can correctly
resync its next expected event sequence number) CP:869. (This behaviour should occur by default when
the mandated response methodology is used. Refer to the figure in section 14.1).
If the PSN is correct (15.1.9), the EGM must; update the next expected Purge Events Poll PSN and
purge events from the primary event queue, starting from the first logged event in the event queue,
until the queue is either empty, or until the event with sequence number EVTNO (inclusive), or until
the first unacknowledged (by the SC) event, whichever comes first. An EVTNO of zero is a special
case and commands the EGM to purge all events (except any events queued to be sent or an event
awaiting acknowledgement). CP:871
In response to this poll the EGM must always queue a Purge Event Poll Acknowledgement Response
regardless of the PSN being correct or not (refer section 15.6.10) QPv1.6 (QPv1.5 EGMs only queued
the response if the PSN was valid) CP:872
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
EGMs must also provide a display function in either test or audit mode which displays the settings
controlled in this poll (but must not allow these settings to be altered. Refer 3.6.1). This poll must be
the only way on the EGM to change the above settings CP:877 (QPv1.6).
The settings in this poll may be verified by the SC via the Note Acceptor Status Response (15.6.2)
which may be requested via the General Maintenance Poll (15.4.13). QPv1.6
Note, cashless mode (16.2) takes priority over hopper/ticket collects unless stated otherwise CP:883.
Upon receipt of this poll, if no linked progressive award was current on the EGM, or the current LP
award had already been previously acknowledged via this poll, then the LP Acknowledgement Poll
must be ignored (it must not be queued for the next LP Award) CP:885. However, if the EGM has a LP
award current, but was in another state when this poll is received (e.g. in a fault condition, door open
mode or test/audit mode), then this poll must be queued in EGM NV-RAM for action upon return to
the current LP Award CP:886.
Fault and lock-up conditions must still be alternatively clearable via an appropriate manual key-switch
combination on the EGM in the usual manner CP:887.
Note, linked progressive jackpots cannot be cleared by any means until they are first acknowledged via
the linked progressive award acknowledged poll (15.4.18) refer section 10.6.1. In addition, EGMs are
permitted to ignore requests to clear a LP lockup via this poll (QPv1.6) until completion of any associated
LP win show, refer 10.6.1 (This prevents systems auto-clearing LP lockups from cutting LP win shows
short).
A list of fault and lock-up conditions appears in the Event section (7.10) and General Status response
section (15.6.1).
bit 0 If set, commands the EGM to attempt resetting of the current fault condition.
bit 1 If set, commands the EGM to clear the current lock-up condition CP:888.
bits 2-7 Reserved = 0, mask out these bits when reading any data from this byte CP:889.
Note, although this poll could potentially operate on both fault and lockup conditions
simultaneously, if both types of conditions were current, only the fault condition must
be acted upon if both bits were set in the poll CP:890.
STATE 1 byte hex. QPv1.6
This field may be used by the SC to ensure the poll clears only the lockup condition for which
it was intended. Refer * below.
This field is only applicable to the EGM if FLG:bit 1 above is also set. If STATE is non-zero
and FLG:bit 1 = 1, then STATE denotes the lockup condition that the General Reset Poll must
apply to. (Refer General Status Response 15.6.1; or see the table below for the list of
applicable STATE code values.) CP:891 If the EGM was not in the lockup condition denoted by
STATE at the time it processed this poll, then the EGM must not reset the current lockup
condition (if any). CP:892
If STATE is zero and FLG:bit 1 is set, then the poll is applied to the current lock-up condition
regardless. CP:893
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Upon receipt of this poll, if no fault/lockup condition existed on the EGM then this poll must be ignored.
If the EGM was in higher priority mode (e.g. door open, test or audit modes), then the request to reset
a lower priority fault or lockup via this poll must be ignored CP:894. If the EGM was in both a lockup
condition and one or more fault conditions, then the fault conditions must be reset first before the lockup
conditions may be acted upon. CP:895 The priority in this regard would be door opens (highest & reset
by respective door closure), fault conditions** and then lockups** CP:896. (**Refer glossary for definitions
of faults and lockups) (NB: It may also be acceptable to have door opens and faults as equal priority)
This poll cannot clear all possible types of lockups on an EGM. For example:
This poll must not clear / reset the EGM from an ECT-from-EGM Lockup.CP:899 Only the “ECT
Lockup Reset Poll” (16.4) can clear this type of lockup.
*The list of lockups that this poll may clear are: CP:900
StateID
(15.6.1) Lockup
3.6.3) CP:906.
LEN 1 byte hex.
Length of text field in bytes
Maximum length is 80 bytes CP:907. (QPv1.5 was only 40 bytes max)
0x00 means erase previous message CP:908
Before processing the EGM must verify LEN <= 80, if false then the request for the SPAM must
be ignored CP:909.
TEXT LEN bytes of ASCII printable characters. Refer Section (2.3.8). CP:910 This replaces and erases
any previously sent TEXT
Before processing the EGM must verify all characters are printable (refer 2.3.8), on fail then the
request for the SPAM must be ignored CP:911.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Upon receipt of this message, the EGM will immediately display the TEXT message to the
patron/attendant, except if in door open, test or audit modes (whereby SPAM TEXT display is
optional) CP:912. If the EGM is in test or audit mode, then the message is displayed immediately upon
next return to any other mode CP:913. The message data must be stored in NV-RAM and displayed on
the EGM until told to erase or overwrite it CP:914. QPv1.6 The EGM must be able to display at least 16
characters of the message at a time CP:915. SPAM text must be at least 5mm high when measured
directly off a properly adjusted EGM VDU (QPv1.6). CP:916 If the message is too long to display at
once, the EGM should scroll it across the display. As a last resort, the EGM may break the message
at space characters and display consecutively (separated with trailing and leading "...") CP:917. After
the initial display, the EGM may also alternate the TEXT message with other text messages on the
display provided there is sufficient time* to read the message each time it is displayed CP:918.
*When any part of the message is visible, it must be displayed at a rate no faster than 16 characters
per second QPv1.6.
The display must be legible. Acceptance of the overall legibility of the promotional text message on the
EGM display is at the discretion of the CEO (refer 3.6.3) CP:919.
Text messages sent by these polls must be displayed in addition to any text sent by the broadcast
promotional message in idle mode CP:920.
The physical order of the tower lights on the EGM is not important and beyond the scope of this
document.
The EGM will physically control its tower light (if present) with respect to the operator's requirements,
if any. It is standard practise that the EGM automatically flashes its red light during fault conditions.
However, the SC may also control the tower light using this poll. Therefore the EGM must share
control of the tower light between the EGM and SC using a logical OR operation with the following
priority CP:922.
This message is simply to solicit a response from the EGM, to check if the status of the EGM has
changed and to ensure the EGM is still responding.
TIME Current system time. Seconds, Minutes, Hours, 1 byte each, BCD, 24 hour format.
DATE Current system date. Day, Month, Year , 1 byte each, BCD
This is the current system date and time.
The EGM must synchronise its clocks using only this date and timestamp.
This is the date and time the EGMs must use all for time-stamping purposes such as events
and refreshing their RTC as necessary.
Validity Check: Date and Time must be BCD and all individual field values within range else the
date and time fields must be ignored. CP:932
WARNING: A SC may require the EGM to update its system clock at any time (i.e. either the
NV-RTC or a volatile hardware or software driven RTC, or any device the EGM uses to track
the system time). Refer 7.8.1. As a consequence of this, it is recommended that an EGM
does not use its system clock for any purpose other than for the player clock display (above)
and the time stamping of events (7.1.5). Software timing routines and delays routines must
not use the system clock unless those routines are programmed to compensate for a time
change that can occur at any time. Possible side effects in QCOM of uncompensated timing
routines upon a system time update by the SC are; possible premature timeout of
screensave, power-save or communications timeouts (6.1.2 & 6.1.8). CP:933 It is
recommended that EGMs implement a system time independent counter for use with timing
and delays routines. (E.g. a simple interrupt driven counter.) This will ensure that these
routines cannot be affected by SC time changes and will not require any on-the-fly adjustment
if the system time does change. CP:934
ESIZ 1 byte hex. Size in bytes of the EXTD field below. CP:935
A value of 0x00 denotes no EXTD data field (below) is present
EXTD Extended broadcast data field. ESIZ bytes.
EXTD data fields with an unknown function code (EFUNC) must be ignored by the EGM CP:936
The following message data is repeated by the number of times as indicated in the NUM byte CP:938.
The last received current progressive amount in the broadcast messages is the amount awarded to
the player when a linked progressive award event is logged (7.10.2.1). Refer LP section (10.6).
Note, a LP EGM, or jackpot display system processing this broadcast, must not make any
assumptions about the data ordering in any LP broadcast! For example, a SC may send out
multiple PGIDs in a single LP broadcast CP:940, in any order with respect to levels CP:941, including sending
out PGIDs and levels that are not applicable to the EGM CP:942, or mix these up in the same broadcast
with applicable PGIDs and levels CP:943. A SC may also send more CP:944 or less CP:945 levels than
expected for a given PGID, or split levels CP:946 across multiple broadcasts (this must not be considered
an error). A LP EGM (or Jackpot display system) must check every entry’s PGID & Level ID in the
broadcast and accept only the applicable LP current amounts and ignore non-applicable levels. CP:947
3.6.3) CP:950.
LEN 1 byte hex.
Length of text field in bytes
Maximum length is 80 bytes CP:951.
0x00 means erase previous message CP:952.
Before processing, the EGM must verify LEN <= 80, if false the GPM request must be ignored
CP:953.
TEXT LEN bytes of ASCII printable characters. Refer Section (2.3.8). CP:954
TEXT replaces and erases any previously sent GPM CP:955. Before processing the EGM must
verify all characters are printable (refer 2.3.8), on fail the poll must be ignored CP:956.
This extended broadcast type requests the EGM to display an arbitrary text message to the player while
it is in idle mode.
Upon receipt of this message, the EGM will display the TEXT message to patrons at least while in idle
mode (refer Appendix A) CP:957. The message data must be stored in NV-RAM and displayed until the
EGM is told to erase or overwrite it CP:958. QPv1.6 The EGM must be able to display at least 16
characters of the message at a time CP:959. If the message is too long to display at once, the EGM
should scroll it across the display. As a last resort, the EGM may break the message at space
characters and display consecutively (separated with trailing and leading "...") CP:960. The EGM may also
alternate the TEXT message with other text messages on the display provided there is sufficient time *
to read the entire message each time it is displayed CP:961.
*When any part of the message is visible, it must be displayed at a rate no faster than 16 characters
per second QPv1.6.
The display must be legible. Acceptance of the overall legibility of the promotional text message on the
EGM display is at the discretion of the CEO (refer 3.6.3) CP:962.
General promotional message text is displayed in addition to, or alternating with any text sent by the
specific promotional text message polls in idle mode.
The following message data is repeated by the number of times as indicated in the NUM byte.
This broadcast message is sent by the SC to designate an EGM a poll address and start the EGM
responding. This message is the only way to make an EGM resume responding to polls. An EGM
must only accept a poll address if the corresponding serial number and manufacturer ID matches its
own. This broadcast message’s EXTD must be ignored if the EGM has not been setup with a serial
number (3.1.1).
Only once the EGM has been configured with a poll address by this broadcast poll type may it
commence responding to the SC after a communication time-out, EGM power up or EGM RAM clear.
QPv1.6 Once configured with a valid poll address via the broadcast message, the EGM must
commence responding within two subsequent polls to the EGM’s address CP:967.
Once configured by this broadcast, the EGM must no longer process the EGM Poll Address
Configuration message data until the next communication session (refer glossary section 2.2) CP:968.
The poll address designated to an EGM via this message broadcast lasts until the EGM assumes
communications defaults again. Refer section 8.3 for more information.
Before processing the EGM must verify all characters are printable (refer 2.3.8), on fail then all
the Site Details message data must be ignored CP:973.
This message is in support of cash out ticket printing (22.3). If the EGM has a ticket printer, the message
data must be stored in NV-RAM CP:974.
The EGM may also use this information for any other purpose if desired.
Acceptance of the overall legibility of the text message on printed tickets is at the discretion of the CEO
CP:975.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Idle Mode
0x01
QCOM EGM State Transitions
Version 1.3
As defined in the General Status Response
Note:
Fault Conditions,
door open conditions, and
Bet Collect audit/test modes,
may all occur concurrently.
System
Lockup CRanE Decision made on type of collect to perform. Refer QCOM section 3.5
0x0B Lockup
0x0D
Play
0x02
Cashless
Mode
Reset
Printing RCRF
Ok? Ticket 0x05
RTIM Fail 0x0F
Return To Idle Mode (RTIM)
procedure. Win payout - Sucess
Refer QCOM section 3.3.2 NPWINP & SAPWINP
Refer QCOM section 3.3.2
Figure 8 Typical – for reference purposes only. This diagram is not a requirement.
This response is mandatory for EGMs with a Note Acceptor installed. This response is requested via
the EGM General Maintenance Poll (15.4.13).
E.g. “ABC,Aardvark,ABC-AU-L-1234,AU001234”
* The ‘Note Acceptor Validation Set Version’ must uniquely identify the current version of the information or
data set that the note validator is using to authenticate notes (if not already uniquely specified by the
Firmware ID string).
If any NADS sub-field cannot be ascertained by the EGM, then leave it empty. E.g.
“ABC,,ABC-AU-L-1234,AU001234” (if model not known), or “ABC,Aardvark” (if only
make and model known) CP:999
If for example (worse case) the Note Acceptor firmware ID received from the Note
Acceptor is too long or inconsistent, e.g.:
then the EGM may hash the above string with a CRC16 so it can be truncated to fit
into the NADS field and report the following e.g.:
Where (FAD4) above is the CRC16 of the original firmware string. This may be the
safest thing to do in some cases in order to avoid the situation where the EGM’s
software must to be upgraded just because the Note Acceptor manufacturer changes
the format of their firmware ID string. Accordingly the EGM manufacturer must be
wary of hard-coding a methodology to process a Note Acceptor firmware string
whose format is outside their control. CP:1000
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Each progressive game in the EGM must have only one set of progressive meters. Also refer 9.2.
The following data is repeated for each progressive level in the game as indicated by the NUM field.
If the level is a SAP, CAMT is the applicable contribution towards the level since the level was
last won CP:1007.
I.e. CAMT = Current jackpot display amount* – Reset amount + Overflow **
* capped at jackpot ceiling
** include amounts from a hidden increment if applicable
(NB: If there was an initial contribution received via EGM Game Configuration Poll (15.4.3),
then this amount will be also included on this meter until the first jackpot is won)
This amount would be the exact liability of the SAP jackpot amount if the EGM were
decommissioned.
The intent behind CAMT for SAPs is that if the EGM was RAM cleared and then reconfigured,
sending the last received CAMT back to the EGM via the EGM Game Configuration Poll
(15.4.3) would restore the SAP component to exactly the same state is was in immediately
prior the RAM clear.
If the level is a LP, CAMT is simply the last received broadcast jackpot current amount for the
LP level CP:1008.
HITS 2 bytes hex. Total hits on the progressive level denoted by PLEV. CP:1009
WINS 4 bytes hex in cents. Total wins for the progressive level denoted by PLEV. CP:1010
HRATE
Theoretical Hit Rate. 32 bit (4 byte) floating-point number (refer 2.3.7).
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Notes:
The EGM is only required to be able to queue a single response of this type at a time (QPv1.6).
QPv1.5 EGMs were required to be able to queue multiple PMR responses. CP:1014
Each game with one or more progressive levels must have only one corresponding set of progressive
configuration parameters in the EGM (i.e. a set of progressive parameters per variation is not allowed
unless the game is not variation hot-switchable, regardless in either case, QCOM is only currently
supporting the reporting of progressive configuration for the currently selected VAR). Also refer 9.2.
CP:1015
The following data is repeated for the number of progressive levels in the game denoted by GVN (as
indicated by the NUM field). There may be up to eight levels in one response. Levels must be in
reported in order starting from level ID 0 (i.e. highest jackpot first). CP:1017
Refer to the Progressive Configuration Poll (15.4.6) for more information on these
fields.
CP:1018
Notes:
The EGM is only required to be able to queue a single response of this type at a time. CP:1019
If this response has been requested and the EGM has LP levels that have not been configured yet
(via 15.4.6), then the EGM must report zero for all the parameters for those LP levels in this
response. CP:1020
If this response has been requested and the game has SAP levels or customSAP levels that have
not been configured yet (via 15.4.6), then the EGM must report reasonable1 default hard-coded
SAP parameters for those SAP levels in this response and applied upon game configuration (refer
15.4.3). CP:1021
1“reasonable”: i.e return an RTP within MINRTP & MAXRTP, ceilings within 95% CI, etc. Parameters
must also abide by all jackpot level validity checks listed in section 15.4.6
For example, if a reel game had two rows of bet buttons labelled 1, 5, 10, 20 & 25 lines and 1, 2, 5, 10
& 20 credits per line respectively, then GBFA= 5 & GBFB = 5 corresponding to the 25 total possible bet
combinations.
The product of GBFA x GBFB must be <= 50. If a game has more bet categories than this, then the
EGM must group them together in order to make <= 50 bet categories for the purpose to reporting bet
meters via this response. CP:1025 E.g. if a reel game had 25 individually selectable lines and it was
possible to bet 1, 2, 5, 10 & 15 credits per line, then GBFA x GBFB = 125. This is too many, to reduce,
group selectable lines into groups of 5 (i.e. 1-5, 6-10, 11-15, 16-20, 21-25) giving a total number of bet
categories of 25.
The following data is repeated GBFA x GBFB times. Each entry corresponds to specific bet category.
The order of entries in the response is GBFA meters first for a given GBFB and lowest bet categories
first. For example, in a reel based game, the first 5 meters in the response would correspond to bets
made for a 1 credit bet per line, for lines 1…n respectively. Then the next 5 meters in the response
would correspond to 2 credits bet per line, for lines 1…n respectively. In the C programming language,
this could be represented by a 2D array of the form [GBFB][GBFA].
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
The EGM is only required to be able to queue a single response of this type at a time.
The EGM must reset bet meters to zero upon a denomination hot-switch (3.1.3.1) and it is
also acceptable for the EGM to change the values of GBFA & GBFB upon a denomination
hot-switch but not at any other times. CP:1027
GVN & VAR denote the game and variation of the meters in this response.
STR Total Game Stroke (not including free spins or games), 4 bytes hex, LSB first
TURN Total Game Turnover, 4 bytes hex in cents, LSB first
WIN Total Game Wins added to credit meter, 4 bytes hex in cents, LSB first.
This meter includes all SAP wins but excludes all LP wins CP:1028
PWIN Total Game Linked Progressive Wins, 4 bytes hex in cents, LSB first CP:1029
This meter does not include SAP wins.
GWIN Total Games Won, 4 bytes hex. (New for QPv1.6)
Total number of games for which the win amount was not zero, incremented at the end of
each play if the play (including all features and gambles) results in a win. CP:1030.
GWIN must not be incremented for each win from gamble/double-up, or RCRF wins or for each
win on a free game series or game feature. CP:1031
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Notes:
Note, residual credit removal feature turnover and wins must not be added to these meters. CP:1032
The EGM is only required to be able to queue a single response of this type at a time (QPv1.6).
(QPv1.5 EGMs, in a multi-game EGM, if a request for game A and game B's (etc) multi-
game/variation meters is received before the EGM has responded with either, both games meter
responses must still be sent CP:1033. Or in a multi-variation EGM, if a request for game A’s variation 01
and variation 02 multi-game/variation meters is received before the EGM has responded with either,
both game/variation meter responses must still be sent CP:1034.)
In EGM audit mode on the page where the above meters are to be displayed for a given game
variation, the EGM must also display the base game RTP (WIN/TURNx100) & standard deviation of
the percentage RTP of the games played since last RAM clear for the displayed game. Labelled “W/T
%RTP” & “Std. Dev.” (decimal numbers to 2 decimal places). CP:1035 The formula is (in C notation):
(NB: PWIN is excluded from this calculation)
Divide by zero errors must be handled (i.e. when TURN == 0). CP:1036
It is accepted that this formula will break upon a TURN meter rollover, however rollovers are
unlikely to occur in this protocol.
The R term and the variables used in the calculation must be double precision floating point
numbers (i.e. minimum 64 bits).
Display example:
Each meter represents one possible choice presented to the player during play; each meter is simply
incremented if that choice is selected.
The EGM must maintain one set of player choice meters per game in the EGM when applicable. The
only player choices that must be tallied by the EGM for a game via these meters, are the choices which
affect the player’s standard deviation of any feature or prize and where there is no apparent best
strategy (e.g. such as in blackjack for example).
An example of a choice that must be metered is in the case of a game feature asking the player to pick
between a feature of either say 5 free games, a random bonus or other feature. Typically the RTP is
the same for each, but the standard deviation that results for each option may be very different.
Types of player choices that are not required to be tallied are for games such as Blackjack and Draw
Poker, as the game’s RTP is directly affected by the choice as well as the standard deviation, the player
choices won’t be tallied in these cases because there is only one best strategy and the player is also
being prompted by the EGM of the best strategy to pick anyway. Other examples of player choices that
would not be required to be metered are in the case where the player's choice has no consequence,
e.g. when the player would obtain the same RTP & Standard Deviation no matter which option they
choose. E.g. a pick a box feature where the same outcome can be obtained from choosing any box
(i.e. it doesn’t matter which box was actually chosen).
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Notes:
The EGM is only required to be able to queue a single response of this type at a time. CP:1039
Each response must contain the latest value of the meters within it at the time the response was built.
For example, this response would be queued at the beginning of a play (containing the updated
stroke and turnover), at the end of a play if a win resulted, any credit input, etc. Refer section (12.2)
for more information when to queue meters via this response.
This response may also contain a LP contribution if the game is a LP. See below.
The following message data is repeated by the number of times as indicated by the FLG field.
Different group meters must be able to be mixed in a response (refer to section 12.2 for
examples). If the EGM has meters queued to send via this response, then the response when
built, must be filled with all pending meters (regardless of group ID) while there is space still
available in the response (max 8 meters per response). CP:1042 When building each response
of this type, the priority of reporting meters is lowest queued meter ID first (this is within a single
response and between multiple responses) CP:1043. (This priority means that group meters with
the higher ID numbers, when queued for transmission, their transmission can be delayed by
lower numbered pending group meters.)
Suggestion for implementation of this response type for EGMs: The EGM should have one
‘need-to-send’ flag per meter and one overall flag that indicate that one or more group meters
need sending. Then when a meter changes, set the meter flag and the overall flag. For
ACK/NAK purposes, the EGM will also need to store the last transmitted meter ID numbers in
the last meters response.
LP Contribution Message data: (Presence is indicated via FLG: bit 7 as per the requirements below)
PGID Linked Progressive Group I.D. number of this contribution (15.1.10) for the game GVN, 2 bytes
hex
PLVL 1 byte hex. Reserved, must be set to 0xff
PAMT LP Turnover Meter CP:1046. The total game turnover applicable to PGID from the game denoted
by LGVN above, 4 bytes hex in cents, LSB first. Refer to the glossary (2.2) for more information
on the LP Turnover Meter.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Other requirements:
In a multi-game EGM, after any play, upon return to idle mode, any currently queued group meters, or
any group meters awaiting acknowledgement, or any pending LP contribution, must be sent and
acknowledged by the SC before the EGM may allow a different game to be selected and played. CP:1047
This requirement is not applicable when the same game is continuously played. To implement this
requirement, it is recommended that after each play, that the EGM disables the selection of other games
in the game select display (e.g. grey-out) while any group meters are either pending for transmission,
or awaiting transmission acknowledgement from the SC. Once there are no outstanding group meters,
the EGM can then enable new game selection until after the next play. CP:1048 The intent of this
requirement is to allow a SC to pre-emptively increment multi-game meters without having to continually
request the Multi-Game/Variation Meters Response (15.6.6) and to help ensure any LP contribution for
a game is not missed.
1 Filled / populated as per the requirements w.r.t the MGID/MET fields in this section.
TIME & DATE is the date and time stamp (not TZADJ adjusted) of when the event was created.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
This response is queued by the EGM whenever it receives a Purge Events poll (15.4.15) QPv1.6. CP:1052
(QPv1.5 EGMS only queued this response if the purge was successful i.e. the Purge Poll PSN was
valid. NB: this meant SCs had to handle two different purge ack methodologies. This had a potential
problem with event purging in the case when a purge poll is sent and the EGM stopped responding. If
the EGM still didn’t respond to the purge poll when resent later on, then it wasn’t possible to tell if the
EGM ever got the poll or whether its purge poll PSN was incorrect.)
Refer to the Purge Events Poll (15.4.15) for more information on purging.
This response allows the SC to easily detect out of sync Purge Event poll PSN numbers in all cases.
NUM 1 byte hex. Total number of variations available for selectionQPv1.6 in this game. (1...16
max)QPv1.6 (QPv1.5: Maximum was 8 variations per game and all were selectable) QPv1.6
EGMs may have more variations resident in the game, but only offer a maximum of 16
variations for selection at any time, based on EGM Configuration Poll (15.4.2) settings.
The list of offered variations must not change unless the EGM is RAM cleared. Also see section
9.
SIZ 1 byte hex. Size of each individual repeated entry = 0x03
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Note, in a multi-game EGM, if a request for game A and game B game configuration responses is
received before the EGM has responded with either, both games Game Configuration responses
must be sent CP:1067.
These flags have nothing to do whether a device is physically present, or in a fault. They simply
indicate that the device “expected”. Indicating that the device is “expected” by the EGM must
mean that the EGM is monitoring it and that it has the required support in QCOM implemented
for the device (i.e. an EGM must not indicate a banknote acceptor is “expected” if it doesn’t also
have the required driver to send the appropriate QCOM events and meters (12.1) for it). CP:1069
QPV1.6.7
Unless a peripheral device is critical to game play, machine operation or specifically
stated as mandatory under these requirements, then the EGM must be able to be comissioned
at RAM clear and subsequently enabled for play without the device present. CP:1070
ODEN Reserved = 0, 2 bytes BCD. EGM Credit Denomination. Used only by QPv1.5 EGMs.
OTOK Reserved = 0, 2 bytes BCD. EGM Token Denomination. Used only by QPv1.5 EGMs.
BSVN Base Software Version Number for the EGM (refer 15.1.4). 2 bytes hex.
1a peripheral is not to be "expected" at RAM clear unless the device is criticial to game play e.g.
progressive display, other than this, a device should not be "expected" until the EGM has either auto-
detected it, or the EGM has been told to expect it at EGM comissioning via a service mode interface.
The following fields are set via the EGM Configuration Poll (15.4.2) and they are reported back here
for verification by a SC. (Refer 8.1.13 for default values at EGM RAM clear before EGM configuration
has taken place):
Refer to the EGM Configuration Poll (15.4.2) for the definition of these fields.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
(QPv1.6) Except for the following fields: NUMG, DEN, TOK & CRC, all the data fields in this
response must be static (i.e. they must not change once reported by the EGM in the first EGM
Configuration response after a RAM clear). (In QPV1.5 EGMs the entire response was completely
static)
Electronic Credit Transfers (ECTs) are used to transfer credit between the EGM and SC for the
purposes of cashless gaming and the transfer small frequent progressive or system awards to the
EGMs credit meter.
The protocol deals strictly with the transfer of credit only, and does not have any concern for, or need
to know for example, account information such as account numbers and PIN numbers etc. These are
matters for the monitoring system operator.
The cumulative CP:1088 transferred amounts during and between plays must also be displayed in last play
information recall for all stored plays CP:1089. (Refer to GMNS last play recall requirements for play
start/end boundary definitions here; please ensure coins, banknotes and ECT have all the same timing
in this regard.)
The ECT meters in last play recall must be labelled “ECT/JACKPOT IN” CP:1090 and “ECT OUT” CP:1091.
(NB: the ECT transaction log (below) will primarily be used to audit recent cashless transfers and timing
there-of)(QPv1.6.4).
(QPv1.6) The EGM must display in a suitable page in audit mode, a log of at least the last 20
attempted* ECT-in/out transactions. Display: Type (In/Out), date & time (TZADJ adjusted based on
the ECT event time), Exp. PSN, Rxd. PSN (NB: PSN entries are ‘NA’ or ‘—‘ for ECT-from-EGM),
cashless mode bit (NB: ‘NA’ or ‘—‘ for ECT-from-EGM), amount ($.c) & status (Success/Fail/Waiting
Ack). (* transactions that fail due to an incorrect PSN, or >= MAXECT, must be included in the log)
CP:1092
() above denotes the ECT Source ID Descriptor Field. It may be either the ECT Source ID raw numeric
value or descriptor.
All ECT requests must be ignored if EGM configuration has not been successfully completed via the
EGM Configuration Poll (15.4.2). CP:1101
The following conditions must be met in order for the ECT-to-EGM to take place:
The EGM must have accepted an EGM Configuration Poll (15.4.2)1 before it will process any
part of the ECT-To_EGM Poll message data (apart from the DLL and FC which must always
be processed). CP:1102
the PSN must be valid (see 15.1.9). CP:1103
If the PSN was valid, the EGM must immediately update its next expected ECT PSN at this
time CP:1104
EAMT must be less than MAXECT (QPv1.6) CP:1105,
the credit meter display (on all screens) must be able to handle the display of it current
amount plus EAMT (QPv1.6) CP:1106 Any EAMT that would wrap the credit meter must also be
considered unable to be displayed. CP:1107
If all the above conditions are met, the EGM will immediately add EAMT if not zero CP:1108 to the Total
Cashless In and the Total Cents In meters and queue an EGM Meter Group / Contribution Response
(15.6.8) CP:1109. Then, if the EGM is in idle mode2, or a play is in progress 3 (and the play is not
suspended for any reason), it must add EAMT to the credit meter and set/reset cashless mode (16.2)
with respect to the cashless mode bit CP:1110. Otherwise if the EGM was not in idle mode [or a play is
in progress] (e.g. fault/lockup, test/audit mode, door open condition, etc – refer to Appendix A), it must
1 It is at the discretion of the EGM manufacturer as to whether or not it will allow an ECT-to-EGM to
take place before any games are configured.
2 Note, since Communications Disabling Conditions are defined as a part of idle mode in QCOM,
Cashless-In’s must be added to the credit meter during one or more CDCs while in idle mode. Refer
6.1
3 it is not mandatory to support crediting cashless-in to the credit meter while an EGM is in
play{QPv1.6.4}, the EGM may wait until the EGM returns to idle mode if desired.
(The reason for changing the state of the cashless mode bit only in idle mode [or during play], is
because changing it at other times could cause unexpected results, e.g. if the EGM was already in an
‘ECT From EGM’ Lockup condition at the time. The reason for updating the credit meter in idle mode
for an ‘ECT-in’ is for similar reasons, e.g. a credit meter update during a hopper payout or gamble
could also have unexpected results)
If any of the above listed conditions are not met then the transfer must not take place and EAMT and
the Cashless Mode bit must be ignored (QPv1.6). CP:1113 (QPv1.5 EGMs would always process the
Cashless Mode bit.) If the reason for the failure is due to the credit meter display width being
exceeded (refer last dot point in the list above), or any arbitrary EGM implemented credit meter limit,
then the EGM must log the ‘Transaction Denied - Credit Limit Reached’ event (7.10.3.44)CP:1114
If multiple valid ECT-to-EGM polls were received before the EGM had added any prior EAMT to the
credit meter, then the EGM must accumulate the EAMT field amounts to be added to the EGM’s
credit meter upon the next return to idle mode CP:1115 (see 3.3.2). A ‘pending cashless mode flag’ (NB:
only the last received cashless mode bit must be stored) and a ‘Queued ECT-in’ meter will be
required in order to implement an ‘ECT to EGM’. The ‘Queued ECT-in’ meter should also be taken
into account when the EGM performs a self audit and (QPv1.6) this meter must also be displayed in
audit mode on an appropriate page CP:1116.
Any residual amount not of a whole credit value will be stored by the EGM until it is either transferred
back to the SC CP:1117, rounded off (due to subsequent ECT transfers) CP:1118, gambled (via the residual
credit removal feature) CP:1119 or cancelled CP:1120 or cashed out via a ticket print CP:1121.
If the currently displayed credit meter is zero but some residual credit (credit not of a whole credit value)
remain, the EGM must also display to the player the residual credit amount in $.¢ if not already
displayed. CP:1122
This poll may be used with a zero EAMT value to command the EGM in or out of cashless mode (16.2)
without transferring credits CP:1123. (FYI QPv1.5 EGMs would always process the Cashless Mode bit e.g.
regardless of the value of the ECT PSN.)
When credit is actually added to the EGM’s credit meter as a result of this poll, the EGM must emit a
short cash-in sound effect CP:1124.
ECT Source ID
This field is a FYI field for the EGM, it provides the EGM with more information with regards to the
source of the ECT. The EGM must display a table of ECT in amounts by Source ID or Descriptor on a
suitable screen in EGM audit mode. CP:1125 The ECT Source ID number or Descriptor field must also be
displayed in the audit mode ‘ECT Transaction Log’ (see above) for each ECT-to-EGM entry. CP:1126
For display purposes in EGM audit mode, the possible IDs currently predefined are:
Note to SCs. The EGM may increment its ECT PSN indicating that it received an ECT to EGM poll
with a valid PSN, however the EGM could still ignore the ECT, if the amount was too large. This
shouldn’t happen but SCs should still also verify that the EGM total cashless-in meter above reflects
the last ECT-in amount.
The EGM will place itself in cashless mode depending on bit 7 of the FLG field in the ‘ECT to EGM’ poll.
While in this mode, pressing of collect on the EGM, instead of initiating a hopper pay, ticket voucher
printing or cancel credit, the EGM will initiate an "ECT from EGM lockup" CP:1131. Also while in cashless
mode, all cancel credits will initiate an "ECT from EGM” lockup instead.
The EGM will remain in cashless mode until either the EGM next exits from an ‘ECT from EGM’ lockup
condition (regardless of success CP:1132 or fail CP:1133, see below), at which time the EGM automatically
returns from cashless mode CP:1134, or until directed out of cashless mode via another ‘ECT to EGM’ poll
CP:1135.
1. The EGM receives an ‘ECT from EGM’ Lockup Request Poll (refer 16.3.2) CP:1137
2. Pressing collect on the EGM while in idle mode CP:1138
3. A Cash-Out Request Poll is received (15.4.12) CP:1139
4. An applicable win exceeding either NPWINP CP:1140, or SAPWINP CP:1141 win payout
thresholds (refer 15.4.5).
(Most QPv1.5 EGMs also initiated a ECT out on zero credit if the EGM was in cashless mode CP:1142,
but some exemptions were granted)
In all cases above, except for case 4, the amount to be transferred must be the whole current EGM
credit meter value. In case 4, the amount to be transferred is the win resulting from the play.
(QPv1.6) If the amount to be transferred is >= MAXECT, then the EGM must immediately reset itself
from cashless mode CP:1143 and a hopper payout CP:1144, cancel credit lockup CP:1145, or ticket out CP:1146
must result instead (which one depends on the current hardware configuration of the EGM and the
thresholds set in the Hopper/Ticket Printer Maintenance Poll (15.4.17)).
Upon entry into this condition, the EGM will log an ECT Event CP:1148 (16.3.3) and constantly display to
the player, the static message:
Where “xx.xx” is the amount to be transferred in $.¢ plus any residual CP:1150. It is preferred if the lockup
has no other title or label. See the figure below for an example. The EGM will remain locked up in this
condition displaying the above message until reset by the ECT Lockup Reset Poll CP:1151.
The EGM must not display “call attendant” or the equivalent during the lockup as this condition is
automatically cleared by the SC. CP:1152
Meters are updated upon exit from the lockup depending on the command received in the ECT Lockup
Reset Poll. CP:1153 Refer to section 12.2 Meter Updating for more information.
Upon receipt of this poll, if the EGM is currently in cashless mode (16.2) with non-zero creditQPv1.6 and
idle mode, it will enter an ‘ECT from EGM’ lockup condition CP:1154. If the EGM was not currently in idle
mode and in cashless mode (and not already in an ‘ECT from EGM’ lockup condition), it will store the
request in NV-RAM (regardless of the credit meter value) and then enter the lockup immediately upon
next return to idle mode as long as the credit meter is not equal to zero and the cashless mode flag is
still set at that time CP:1155 (see previous checkpoint for special case. Also refer to section 3.3.2).
If the EGM was not in cashless mode upon receipt of this poll, then the message must be ignored CP:1156.
Implementation note: Bugs in EGM implementations of ECT are commonly found when a simultaneous
ECT in/out occur on an EGM. There are two cases; either an ‘ECT to EGM’ occurs when the EGM was
already in an ECT lockup, or both an ‘ECT to EGM’ and ECT Lockup Request is received when the
EGM was not in idle mode. In the second case it is required the EGM carries out the ECT lockup first.
To avoid any problems, the EGM should only write to its cashless mode flag in idle mode and keep any
‘ECT from EGM’ state variables independent of ‘ECT to EGM’ state variables. CP:1157
SCs note: Upon sending this poll when the EGM is not in idle mode, SCs should also send MEF=0 and
CRLIMIT=0 to disable physical credit input once an ECT-from-EGM has been queued, this avoids the
potential for another player’s credit from inadvertently being transferred to that player’s account.
Event Code 0x3009 QPv1.6 This is a secondary or unnumbered advisory event type.
(Event code was 0x3004 in QPv1.5)
CAMT 4 bytes hex in cents, display up to 14 characters of unsigned currency (e.g. $xx,xxx,xxx.xx).
CAMT is the amount to transfer to the SC CP:1159.
This field was 4 bytes BCD in QPv1.5.
This event has no follow up event type (i.e. 0x01 Lockup clear) CP:1160.
If the EGM was in an ‘ECT from EGM’ lockup condition, but in a higher priority state (such as a fault
condition CP:1163, or a door open condition CP:1164, or audit mode CP:1165), then upon receipt of this poll, the
required action must be held pending (in NV RAM) and carried out immediately upon return to the ECT
lockup condition CP:1166.
Upon receipt of this poll, if no ‘ECT from EGM’ lockup condition was current, then the ECT Lockup
Reset request must be ignored CP:1167.
bit 0 If set, the credit transfer was successful, at the next opportunity the EGM must deduct
the amount successfully transferred from the current credit meter, update Total EGM
Cents Out CP:1168 and Total EGM Cashless Out CP:1169 Meters. Exit the lockup.
If not set, the credit transfer from the EGM is denied. (QPv1.6) The EGM must pause
and display the message “Transfer Denied” for 5 seconds, then exit the lockup, then
automatically initiate either a hopper payout CP:1170, or a cancel credit CP:1171 or a ticket
out CP:1172 for amount of the failed transfer attempt. (Which type of payout will depend
on the current hardware configuration and the thresholds set in the Hopper/Ticket
Printer Maintenance Poll (15.4.17)).
(On a fail, QPv1.5 EGMs would initiate a CC, even for an amount of 0$) CP:1173
bits 1..7 reserved = 0, mask out these bits when reading any data from this byte CP:1174.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
STATE
and
17.1 General
It is recommended EGM manufacturers should implement CREs last when implementing QCOM.
CRanE allows the monitoring system to configure an EGM with an event that occurs (i.e. logged)
randomly during game play.
17.1.1 Each EGM will provide provision for up to eight CRanE. Each event is configured with a
hit probability and optionally may also lockup the EGM upon its occurrence. Each event
may also be enabled or disabled at any time by the system (except while the EGM is in a
CRanE Lockup).
17.1.2 Once per play, the EGM will evaluate whether a hit has occurred with respect to each
enabled event (refer 17.3 RATE field). CP:1176 The CRanE hit evaluation (and possible
resulting hit lockup/s & Hit Event logging) must be performed immediately upon a bet at
the beginning of each play on the EGM, after the Stroke and Turnover meters have been
updated CP:1177 but before the play outcome is determined (via the RNG) and before the
play-show commences (i.e. the reels start spinning). CP:1178 This is to ensure that a
possible CRanE lockup cannot adversely interfere with the normal game’s “play-show”
(for example, by freezing the play-show in a random and possibly winning combination).
The evaluation must be performed one level at a time, in order from lowest numbered
event to highest CP:1179. If more than one event is enabled then it is possible that more
than one event can be hit per play and therefore it may also be possible to hit all eight
events (if all enabled) on a single play on the EGM CP:1180.
17.1.3 The EGM must be capable of generating 32 bit random numbers to implement CRanE
with a cycle of at least four times 232 (QPv1.6). CP:1181 If the module implementing CRanE
uses a separate RNG from the game RNG, then the CRanE RNG must also be
continuously cycled, seeded and maintained as per GMNS requirements for RNGs.
CP:1182
17.1.4 If an enabled event is hit, the EGM must immediately log the CRanE Hit Event (17.4)
CP:1183 and possibly enter the CRanE lockup state depending if the event is also set to
lockup (17.3) CP:1184. After the event is logged and the lockup cleared, the EGM will
automatically resume evaluating any remaining configured CRanE. CP:1185 If no other
trigger occurs, the EGM then continues the current play as normal CP:1186.
Upon receipt of the CRanE Lockup Acknowledgement Poll (17.5), the previous verification message
must be removed CP:1190 and replaced with the text message contained in the acknowledgement poll
CP:1191. (QPv1.5 EGMs also displayed the text "CONGRATULATIONS YOU HAVE WON" CP:1192) This
message then remains on display in the CRanE lockup condition until the EGM is finally reset via the
EGM General Reset Poll or key-switch CP:1193.
Acceptance of the overall legibility of the CRanE text messages on the EGM display is at the discretion
of the CEO CP:1194. Ideally, the CRanE lockup display should be very similar in appearance and
prominence to the System Lockup display (refer section 15.4.9).
When CRanE lockup is finally terminated via the EGM General Reset Poll, the EGM must continue
evaluating remaining enabled CRanE’s, or if the are no CRanE’s remaining then continue the play as
normal CP:1196.
The EGM will also display (discretely but clearly readable) for the duration of the CRanE lockup
condition, an authentication code comprised of the following information:
Where:
ID is the ID number of the current CRanE (1 digit 0...7)
HITS is the total number of hits for the CRanE with ID. 4 digits decimal (minimum). Zero
padded. Defaults to zero once per RAM clear.
RATE is the hit rate of the event (zero padded) as configured via the last CRanE Configuration
Poll (17.3). 8 digits hex.
The CRanE Authentication Code must also be displayed in the EGMs last play recall display in audit
mode for all stored plays CP:1198. Because more than one CRanE can be hit per play, it is acceptable to
only display the least probable CRanE event that hit per play in last play recall display CP:1199.
Operational Note: If CRanE is being used for large awards or other high risk applications, then upon a
hit/win, an attendant, or authorised person, or trusted 3rd party should manually verify within the CRanE
lockup:
That the authentication code RATE field is as expected for the given ID
It is a real CRanE lockup (and not a System Lockup faking a CRanE for example). (Suggest
crosschecking the Authentication Code in last play recall after lockup clear if the EGM’s System
Lockup and CRanE lockups are not distinctly different)
Record and sign off on the authentication code.
This poll configures or re-configures the EGMs CRanE. This poll may be sent at any time by the SC.
The following data is repeated the number of times as indicated by the NUM field.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
The EGM must not allow any CREs to be configured or reconfigured via this poll if the EGM is currently
locked up in a CRanE lockup condition CP:1211.
QPv1.6.1d: The EGM’s current CRanE configuration must be displayed in EGM audit mode as
required re QCOM section 4.1.11. CP:1212 (Prior QCOM v161d there existed a requirement stating
specifically not to display CRanE information in audit mode. This paragraph and checkpoint has been
added to ensure that the information was actually added back into EGM audit mode and not
overlooked as a part of a QCOM evaluation)
Name: "EGM CRanE Hit Lev: <LEV> Rate: <RATE>" (QPv1.5 has different descriptor)
This event is logged for every occurrence of a CRanE Trigger on the
EGM.
The poll type acknowledges an EGM locked up in a CRanE lock-up condition (if the event was
configured to lockup). It does not clear the lockup condition, but it signifies the current CRanE has been
verified by the system and the EGM is now authorised to clear the lockup via the EGM General Reset
Poll or manual Key-Switch combination CP:1216
Upon receipt of this poll, if no CRanE lockup condition existed on the EGM, the poll is ignored CP:1222.
The following data is repeated the number of times as indicated by the NUM field for every enabled
CRanE. Details for CRanE’s that are disabled must not be sent.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Do not implement. This section is not required reading as there is no longer any plan to add
support for this feature to QCOM v1.x. The section remains published to preserve any
intellectual property for possible future use.
There will be an extension to the QCOM Protocol that will specify the minimum requirements for
remote downloads of files, or ‘packages’ to EGMs. The files may be program, upgrades, game
upgrades, new games or variations, or peripheral upgrades (such as for note acceptors). It will also
specify the minimum requirements for the levels of integrity and security.
There will be a mandatory components for EGM manufacturers operating on the QCOM protocol to
implement in this area. However due to the size of this feature, its implementation will be a staged
approach over time. Accordingly, EGM manufacturers will be granted additional time to allow
integration the required new hardware, software and protocols into their EGMs.
For more information refer to the OLGR publication “Principles for Remotely Upgradeable EGMs”.
Game downloads.
Variation downloads.
EGM program patches/upgrades.
This feature represents potentially huge saving in the current cost of retrofitting EGM
software. (NB: An EGM manufacturer will not be allowed to provide game or variation
downloads until EGM program patching and upgrades have been successfully implemented
and once the requirements are finalised.)
Peripheral Software Upgrades.
E.g. Note Acceptor upgrades to support a new note type or to fix any identified
susceptibilities.
Potentially a huge saving in the existing cost of physically upgrading note acceptor software in
the field.
Hardware:
1 x UTP Ethernet Port. (The port must have extra fast transient protection to at least 4.5kv).
Minimum supported speed is 100 Mbit/sec. (However, for security reasons, the EGM’s Ethernet
port must remain disabled in all production EGMs, until such time as EGM program patching and
upgrades have also been successfully implemented once the requirements have been finalised)
The EGM must utilise re-writable PSDs for all its programs and software. Note, the EGM must
also contain enough free space on its PSDs to store its current software set plus a newer version
during a download. The PSDs must also still be able to be easily removed from the EGM for
isolated manual verification of the current contents when required for when higher security is
mandated.
The EGM must implement the OLGR’s ‘Electronic Seal Minimum Requirements’ hardware
requirements.
Note, any downloads must be performed in background by the EGM while it maintains all other
operations, including game-play.
The above list of protocols is not complete. The actual protocol to be used for the file transfer is
at the discretion of the EGM manufacturer but must run on top of TCP/IP on a re-assignable
range of ports.
All protocol drivers utilised must be demonstrated to be immune from all known malformed
message attacks.
(The whole of QCOM will eventually move to these protocols but not before QCOM RUGM
support is finalised and up and running)
Software:
An encryption library. (The exact algorithms to be supported are still to be finalised, however
RSA & SHA-1 such as “RSASS PKCS #1 v1.5 with SHA-1” are strong candidates).
A compression library.
18.2.1 Compression.
Software upgrades greater than 10 Mbytes must be implemented as differential patches (i.e. patch
files that modify the existing code) when this results in a smaller patch file.
18.2.2 Security.
Downloaded file authentication facilitated by Digital Signatures that the EGM will use to authenticate
downloaded files before activation, will be a mandatory requirement on all EGM software type
downloads. A standardised method of authentication will be mandated by the OLGR. TBA.
Individual files may be encrypted at the discretion of the EGM manufacturer. The encryption
algorithm is also at the discretion of the EGM manufacturer, but any encryption utilised must be a
published and publicly available algorithm with a demonstrated track record. (However the file
transfer itself may yet end up being encrypted if for example SSL is used. TBA)
For patch files that must be applied to a specific version of software, if the wrong version patch is
downloaded for the wrong version EGM software, the patch must automatically not take if activated.
I.e. the patch must contain embedded information as to what version software it must be applied to.
This is a requirement for all file types and is the manufacturer’s responsibility to implement a reliable
method.
The EGM must not allow its software to be downgraded to a previous version. I.e. The EGM must not
accept any download with an older version number than it is currently using.
File/package authentication requirements. These types of files must contain or have attached
at least two Digital Signatures (DS) generated by an acceptable public key encryption
algorithm over the file contents. One DS is generated by the EGM manufacturer the other by
the Regulatory Authority. Just prior file activation, if either DS does not validate, then the file
is must not be activated by the EGM. The file must authenticate before any other data within
the file is used by the EGM. Only if both signatures authenticate, may the EGM proceed and
activate the file.
Game software files must also have system of preventing previously approved but no longer
acceptable software (aged software) from being re-used. For example an expiry date, or
serial number, or an incrementing version number, embedded in the authenticated portion. If
the file version is too old relative to its current software, then the file is automatically deleted
by the EGM upon any activation attempt. If it was required to revert back to an expired
version of software, then this can be done as a new upgrade with a new version number.
Peripheral software (e.g. software for either a note acceptor, coin acceptor, I/O controller, etc.)
These files may contain a manufacturer password at the discretion of the EGM manufacturer,
otherwise no other security or Digital Signature is mandatory.
Support variable length, “do nothing when activated” arbitrary files, for development and testing
purposes and space filler files, must be supported by all EGMs implementing QCOM RUGM
support. Space filler files are non-algorithmic compressed white noise (random data) from a
trusted source that may be used on occasion to ensure a device, such as an EGM, has erased all
available free space by getting the EGM to return a seeded hash value of the file once it has been
sent to the EGM.
At this stage RSA encryption and SHA1 are strong candidates (both are patent free and source is
freely available).
EGM may be required to run an FTP client. TBA. All downloads must be resumable if
interrupted.
A Telnet server may be required. TBA.
Once a download is complete, the file is stored by the EGM until it is authenticated and then
either activated, overwritten or deleted.
All downloads must be digitally signed, compressed and packaged. Details TBA.
An encryption API. Requirements TBA.
Do not implement. This section is not required reading as there is no longer any plan to add
support for this feature to QCOM v1.x. The section remains published to preserve any
intellectual property for possible future use.
This feature allows EGMs of the same manufacturer to communicate with each other by using the SC
to relay messages. This eliminates the need for the EGM manufacturer to run a separate physical
network when wishing to implement EGM to EGM communications. Possible applications of this feature
are but not limited to; multi-terminal games and the synchronisation of events between EGMs such as
idle mode attract animations.
Because of the current network topology, only the SC is physically in a position to send messages to
all EGMs networked to it, it makes sense for the EGM to utilise the SC to pass on any desired message
data. However, the data echoed by the SC on behalf of the EGMs is an unconfirmed broadcast; if the
EGM wishes to send a confirmed packet then it must implement its own method where the EGMs send
an acknowledgement in response.
Bandwidth is also very limited; each message sent for broadcast by the EGM may be no longer than a
specified length (see below) and once the EGM has a send a message it may not send another
message until after the next EGM broadcast for its manufacturer. Refer to the EGM Broadcast Message
below for more information.
One condition of use of this feature is that all communication methods used to communicate between
EGMs using this feature are first approved by the OLGR.
The first EGM manufacturer interested in using this feature must give the OLGR 6 months notice in
advance to allow requirements to be finalised.
A SC will ignore any further broadcast requests from an EGM until it has broadcast the EGM’s last
broadcast request, unless the high priority bit is set, in which case the SC will queue the broadcast for
the EGM on that poll cycle with the high priority message within, overwriting any previously queued
message from that EGM.
An EGM can confirm transmission of its request broadcast by monitoring subsequent EGM Broadcast
Messages.
An EGM using this feature must be capable of processing 3 messages or better per second from a SC.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Do not implement. This section is no longer required reading as there is no plan to add
support for this feature to QCOM v1.x. The section remains published to preserve any
intellectual property for possible future use.
QCOM Command Prompt is a method of remotely interfacing with an EGM via a simple text interface
to perform custom operations not already covered by QCOM or the EGMs audit/test mode.
In production EGM software, services offered via QCOM Command Prompt must not be able to affect
the security and integrity of the EGM and its games. However, some services that could affect
security and integrity may be allowed remain in production software if access to the EGM’s processor
door is required in order to enable the service. Final approval of what services may remain in
production software is at the discretion of the Regulatory Authority.
CTEXT A text string of LEN bytes consisting of ASCII printable characters only (2.3.8).
EGM must verify all characters are printable (refer 2.3.8).
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Only the carriage return denotes a new line, multiple Command Prompt Responses are
concatenated together.
CRC Data Link Layer - Cyclic Redundancy Check. 2 bytes hex. Refer section 14.2.
Typically in QCOM, a SC requires prior knowledge of the EGM’s MID & Serial number in order to
establish communications with it (see Poll Address Configuration Broadcast Message 15.5.4). This
feature enables a SC with the additional ability to find any number of unknown EGMs sitting on its
LAN, without any prior knowledge or information about the EGMs, such as their manufacturer IDs or
serial numbers.
In monitoring systems that already authenticate serial numbers; this feature will enable detection of
incorrectly entered serial numbers in EGMs.
While implementation of this feature is mandatory for EGM manufacturers, this feature is not required
to be implemented by SCs in order to establish communication with an EGM if its serial number is
already known.
It is recommended EGM manufacturers implement this feature only towards the end of the
QCOM implementation and only after the successful implementation and testing of the
standard QCOM poll address configuration methodology (15.5.4), also refer to the
implementation note at the end of this section.
EGMs must only respond to the Seek EGM Broadcast Poll during a communications timeout (6.1.2)
CP:1227 with only Seek EGM Broadcast Response types (refer 21.3) and with respect to the following:
Upon initial entry into a communications timeout or after a power up, an EGM must respond
to the very next Seek EGM Broadcast Poll received on the seek EGM poll address. CP:1228
Then after this initial response, the EGM must only subsequently respond to the Seek EGM
Broadcast Poll, at random, once every 32 received poll cycles on average, for the duration of
the Communications Timeout (6.1.2). CP:1229
Polls to the seek EGM poll address must not bring an EGM out of a communications timeout. CP:1230
Acknowledgements are not applicable to polls/responses on the seek EGM poll address. CP:1231
When responding to the seek EGM poll address, the EGM will always respond with the same
message, the message simply contains the EGM’s current MID & SERIAL number (refer 21.3).
Obviously collisions are expected and are handled by the random retry. A worse case scenario with
32 EGMs on a LAN and all EGMs in a Communications Timeout, it takes the Site Controller on
average ~100 secs to retrieve all the EGMs serial numbers.
It is not the intent for this feature to be used every time an EGM stops responding. Once a SC finds
an EGM on a specific serial number, it must continue to try to use that serial number until directed
otherwise by the host system. Otherwise this could be a security risk.
It is recommended that the EGM manufacturer implement the Seek Broadcast Poll/Response at
the lowest possible level (e.g. under interrupt) and completely separated from the rest of the
QCOM code. Trying to implement this response in the EGM as a part of the normal QCOM
response methodology (refer 14.1) is actually very difficult and will probably lead to many
unwanted side effects. To minimise this risk, treat section 21 in the EGM software like a
separate, standalone protocol within QCOM.
Implementation of QCOM TITO is not mandatory. However as of July 2012 the OLGR is now
accepting TITO system submissions for evaluation; as of 2016 it is a standard feature in QLD.
Contact the OLGR for more information about the takeup of TITO in QLD.
The TITO solution described in this section is applicable to a TITO system in which the EGM is
interfacing directly to the TITO devices. I.e. the EGM owns the TITO devices. (NB: it has always
been possible in QCOM to add a TITO system on top of QCOM EGMs where the TITO devices
interface directly to the TITO system (not the EGMs) and the TITO system adds and removes credit
via the QCOM ECT in/out working in cooperation with the monitoring system or be a part of it.)
The methods provided here may be utilised as only a Ticket-Out (TO) system, or both a Ticket-In and
Ticket-Out (TITO) system. Ticket In may be facilitated by the EGM by either a dedicated ticket in
device or a banknote acceptor that can read tickets; QCOM neither differentiates nor cares either
way.
Receipt of the above event by the system will instigate an approval or otherwise for the transaction via
the Ticket Out Request Acknowledgement Poll” (15.4.10). CP:1235
The EGM must remain in this lockup condition until it receives the “Cash Ticket Out Request
Acknowledgement Poll” (15.4.10) which either approves or denies the ticket out request. CP:1236
All forms of physical credit input on the EGM (e.g. coins/notes/TI) must be disabled for the duration of
the Cash Ticket Out Lockup condition. CP:1237
The EGM must not display “call attendant” or the equivalent during the Cash Ticket Out Lockup as this
condition is automatically cleared by the SC. CP:1238
Unless actually printing a ticket which is handled in the next section, the EGM must recover and
resume from where it left off after any interruption to the ticket out process. CP:1239
No interruption to the TO process at any stage on the EGM may cause a financial loss to any party
(EGM, TITO system or player) or EGM RAM error (self audit error). CP:1240
For any fault condition on the EGM concerning the ticket printer that occurs during a ticket print that
prevents successful print1 (e.g. events 7.10.1.30 and possibly 7.10.1.31), because the EGM’s credit
meter will be already updated by this time, the EGM must also display the ticket’s serial number and
amount during the fault condition display for easy reference. CP:1243
After a fault condition in the above scenario is cleared, the EGM must not resume or retry the ticket
print. CP:1244
If any other fault (i.e. a fault other than a fault with the ticket printer) or door open condition occurs
during a ticket print, the EGM must endeavour to complete the print in progress without delay.
It should be noted that QCOM operates a little differently with respect to when TO meters are updated
when compared to other TITO systems. In QCOM TITO, TO meters are updated the instant the EGM
receives the TO Request Ack Poll (refer 15.4.10). In other TITO systems, the EGM waits until after it
“believes” a ticket has been “successfully” printed before updating meters. QCOM’s approach is
intentional and must be implemented. QCOM’s approach requires less work to implement in a TITO
system (as there is no 3rd handshake stage where the TITO system as to wait for confirmation that
the EGM has successfully printed the ticket – which may be a false positive anyway) and it lowers the
possibility of a double payment, because in QCOM, once a ticket print starts it is a constant that a
ticket record exists in the TITO host and is only redeemable from there.
1 Refer section 22.1.3 for the definition of a successful cash ticket print.
CTEXT for a single entry under a user controlled cursor, but not at all is fine).
A new entry must be added to the log upon the logging of each “Ticket Out Request” unnumbered event
(7.10.4.11) CP:1247. The log must indicate for each transaction whether the ticket-out is awaiting approval
(“sysWait”), denied/failed by the system (“denied”), approved & printing (“printing”), approved &
successfully printed1 (“success”), or approved & print failure (“printFail”). CP:1248 Acceptance of the overall
legibility of the log on the EGM display is at the discretion of the CEO CP:1249.
In QCOM version QPv166 a successful cash ticket print was defined as:
“Once the AUTHNO is printed on the ticket in any format, then it may be considered a full and
successful print”
(Note that as AUTHNO is the first item printed on a ticket, a successful print occurs almost
immediately in time after the print commences. So if the EGM cant go on and print the barcode, it
doesn't matter, it's still logged as a successful print.)
However in reality, this definition of a successful cash ticket print is not readily detectable and
therefore realistically able to be implemented by EGM / ticket printer hardware. So to avoid confusion
(particularly with TITO system developers and operators), the definition of a successful cash ticket
print is changedQPV1.6.7 to be more realistic, see below. This change in definition does not require a
change to existing EGM implementations of QCOM TITO as the two definitions are complementary.
Regardless, any EGM that can actually achieve the old definition may continue to use it, it makes no
difference.
Once the EGM believes the ticket print has commenced to the extent of its
capabilities in hardware, then the cash ticket print is assumed to be a success
for the purpose of logging the “EGM Cash Ticket Out Print Successful” event
(7.10.4.12).
It is possible to get a ticket jam event or other ticker print error event even after a ticket print
success event is logged.
When paper out errors do occur, they will always occur immediately after a ticket print. With
ticket printers the last printed ticket prior a paper out will be perfectly readable (unless some
other issue occurred).
There will always exist a range of possible print failures the EGM / ticket printer hardware
cannot ever detect or "see". So getting a success event from the EGM, but an unreadable
ticket output will occur on occasion. These instances can only be dealt with manually.
1 Refer section 22.1.3 for the definition of a successful cash ticket print.
If a cash ticket in with a readable barcode* is inserted into the EGM at any time while the EGM is
enabled to accept credit, in the following order CP:1250 the EGM must:
log the “Ticket In Request” unnumbered event (7.10.4.13) to instigate authorisation for the
amount on the ticket for the correct barcode number as represented by the barcode on the
ticket, and
set the appropriate TI flag in the “General Status Response” (15.6.1)
* QPV1.6.7 The EGM must be able to read barcodes of 16 and 18 digits (minimum) CP:1251. All barcode
numbers readable by the EGM must all be displayed correctly in the EGM audit mode where required
to be displayed (e.g. Ticket In Log). CP:1252
* QPV1.6.7 Support for reading barcode formats other than Interleave 2 of 5 is at the discretion of the EGM
manufacturer. However as QCOM (i.e. AUTHNO) does not support anything other than numeric
barcodes, tickets not comprised of fully numeric based barcodes must be rejected by the EGM.
If the EGM is unable to read the barcode on the ticket or the EGM is not currently enabled to receive
credit, then the ticket must be ejected back to the player. CP:1253 (Related: EGM Excessive Note/Ticket
Acceptor Rejects Fault (7.10.1.23)).
The EGM must reject all other ticket insertions until the current ticket has been either approved or
rejected. CP:1254
Once the system receives the “Ticket In Request” unnumbered event, it will approve or reject the
request based on the “Cash Ticket In Request Acknowledgement Poll” (15.4.11).
Refer to 15.4.11 for the procedure relating to the processing of the above poll.
If the ticket in request is rejected by the system, then the EGM must eject the physical ticket back to the
player and concurrently** and prominently display the message “TICKET REJECTED – XXXX - SEE
CASHIER” where “XXXX” is the text representation of the reason for the failure as specified by the
FCODE field in the “Cash Ticket In Request Acknowledgement Poll” (15.4.11). Refer table below for
the text. The message must be displayed during play and idle modes [for no more than 5 seconds]1 or
until the start of the next play or the next attempted banknote/ticket in/out operation, whichever is sooner
CP:1255. Acceptance of the overall legibility of the text message on the EGM display is at the discretion
The EGM is not required to display any error message upon a TI time-out as the ticket rejection itself
is considered sufficient user feedback in this case.
Following a time-out, all subsequent “Cash Ticket In Request Acknowledgement Poll” (15.4.11) poll
message data received by the EGM must be ignored until the next ticket insertion. CP:1260
The EGM must behave to the same requirements as per banknote acceptance in regards to
interruptions to the TI process and may abort the process as it sees fit and according to those
requirements.
No interruption to the TI process at any stage on the EGM may cause a financial loss to any party
(EGM, TITO system or player) or result in an EGM RAM error (e.g. an EGM self audit error). CP:1261
If the EGM aborts a Ticket In Process for any reason the EGM must:
Except for FCODE aborts (15.4.11), the EGM is not required to display any error message upon a TI
abort as the ticket rejection itself is considered sufficient user feedback in this case. (For FCODE
aborts refer to the previous section for required display messaging.)
Following an abort, all subsequent “Cash Ticket In Request Acknowledgement Poll” (15.4.11) poll
message data received by the EGM must be ignored until the next ticket insertion. CP:1263
In the event that the EGM cannot stack a ticket (stack jam, full, or general error), then as per
banknote acceptance, the following GMNS version 10.1 requirements must apply to the TI process:
“A gaming machine must not register credits as the result of banknote input until the banknote
has passed the point where it is possible to be rejected by the acceptor or be withdrawn.”
It should be noted (system developers) this means it is possible for an EGM to receive and
acknowledge receipt of the “Cash Ticket In Request Acknowledgement Poll” (15.4.11) but for the
ticket still not to be credited. I.e. the meters will never update.
A new entry must be added to the log upon the logging of each “Ticket In Request” unnumbered event
(7.10.4.13) CP:1265. The log must indicate for each transaction whether the ticket-in request is/was
awaiting approval (“sysWait”), denied by the system (“denied”) i.e. FCODE non-zero (also include an
abbreviated display of the FCODE decoded text descriptor if non-zero along with this (see 22.2 above),
or approved (“success”), or timed-out (“timeout”), or retention/stacking error (“stackErr”), or “tooLarge”
(re any EGM implemented credit meter limit),or aborted for any other reason (“aborted”). CP:1266
Acceptance of the overall legibility of the log on the EGM display is at the discretion of the CEO CP:1267.
(Not to scale)
Where:
The barcode must be centred in the ticket and must have a minimum length of 85mm (wrt an
18 digit US standard Interleave 2 of 5 ITF barcode) and a minimum height of 26mm. NB
(FYI only) it has been reported that some banknote validators request 15mm of whitespace at
either end of the barcode in order to maximise the acceptance ratio of tickets.
The overall dimension of the ticket must be 156 ±1mm by 65 ± 1mm.
Venue Name. The top horizontal line of text shown in the above example must be
substituted with STEXT field data as received from the last Site Details Broadcast (15.5.5).
CP:1268 The EGM must be able to fully display a text message of maximum length comprised
of only the widest proportion character (e.g. “WWW…”) for the given font used. CP:1269
Address Line. The next line down shown in the above example must be substituted with
LTEXT field data as received from the last Site Details Broadcast (15.5.5). CP:1270 The EGM
must be able to fully display a text message of maximum length comprised of only the widest
proportion character (e.g. “WWW…”) for the given font used. CP:1271 It is acceptable for the
EGM to break the address line over two lines in order to fit it.
“Ticket#”. This field is an EGM assigned ticket serial number from the “Ticket Out Request”
unnumbered event (7.10.4.11) ‘TSER’ field. CP:1272 1…65535
“EGM:” Refer section 15.6.12 MID and SER fields. 8 digits in the form mmssssss where mm
= QCOM Manufacturer ID (Refer 15.1.7) and ssssss = QCOM Serial Number (Refer 15.1.8).
CP:1273
The next line is the Date and Time as received from equivalent fields in the applicable “Cash
Ticket Out Request Acknowledgement Poll” refer (15.4.10). 24 hour “dd/mm/yyyy
hh:mm:ss” or 12 hour formats are both acceptable so long as so long as am/pm is indicated
when using the 12 hour format. CP:1274
The barcode must be an 18 digit US standard Interleave 2 of 5 ITF barcode. CP:1275
The number encoded by the barcode must be taken from the first 18 least significant decimal
digits of the Cash Ticket Out Request Acknowledgement Poll* (15.4.10) AUTHNO field. E.g.
00-2224-2867-5154-7568 represents an AUTHNO field value of
0x00000000000000000007E6FA1DB460B0 (shown left here as an MSB first number; in the
actual QCOM message packet it is tx’d LSB first) CP:1276 The maximum possible value able to
be represented by the barcode is 99-9999-9999-9999-9999 which equates to an AUTHNO
field value of 0x00000000000000000DE0B6B3A763FFFF CP:1277 *I.e the barcode-number-to-
print must equal AUTHNO mod (10^18) CP:1278
The barcode number must appear in the two places shown appear roughly in the size and
location shown in the above example image. CP:1279
Another copy of the amount in $.c must appear to the RHS of the barcode that is written
vertically on the LHS of the ticket image example above. CP:1282
The Certification String text (CTEXT) from the applicable “Cash Ticket Out Request
Acknowledgement Poll” (15.4.10) must appear as shown in the above image example
vertically written on the RHS. CP:1283 A line break must be inserted by the EGM upon printing
every 30 characters. CP:1284 The EGM must be able to fully display a text message of
maximum length comprised of only the widest proportion character (e.g. “WWW…”) for the
given font used. CP:1285
The back of the ticket must have the OLGR prescribed gambling helpline information text.
Contact the OLGR for details. It is noted and understood that the information printed on the
back of a ticket is pre-printed by the ticket paper supplier.
The only other pre-printed text (not shown in the above image) is the “INSERT THIS SIDE
UP” message.
Acceptance of the overall legibility and layout of a Cash Out Ticket printed by an EGM is at the
discretion of the CEO CP:1286.
http://www.bcgen.com/linear-barcode-creator.html
22.4 Other
The state of the current Ticket-in or Ticket out operation on the EGM must be stored in EGM critical
NV memory and by fully fault tolerant against power and other interruptions. CP:1287
If the EGM hosts a ticket printer then the firmware version of the ticket printer must be displayed in
EGM audit mode in a suitable location provided the ticket printer is also capable of sending this
information to the EGM. CP:1288 (For those ticket printers not currently capable the requirement is not
mandatory, however it is recommended future functionality as it will allow auditing of ticket printer
firmware versions over a network in future versions of QCOM.)
An AUTHO representing a barcode of all 0’s or all 9’s is reserved for EGM test ticket prints.
In QCOM TITO, AUTHNO values are generated by the TITO system. It should be noted that the
AUTHNO field in QCOM TITO message packets have some spare capacity. Accordingly, the system
should be mindful of the actual number of digits encoded onto a printed ticket for the given EGM and
not generate an AUTHNO utilising more digits than will be actually encoded by the EGM into the
printed ticket barcode.
The following paragraphs assume a ticket database is utilised (at this time printed barcodes would be
challenged to encode the entire output of a strong Digital Signature so a database is really the only
option unless an alternative technology is used. If tickets could encode a Digital Signature then it
could be feasible to implement a secure TITO system without the need for a ticket database.).
The intent of the following discussion is to raise awareness that a weak AUTHNO generator algorithm
is potentially a security risk regarding theft of unclaimed tickets.
Each generated AUTHNO must uniquely identify the ticket among all currently active tickets in the
system.
For the best integrity and security, the AUTHNO generator algorithm would also ensure that the
probably that an attacker may either guess or reverse engineer an active AUTHNO is virtually zero.
For example, given an attacker has full knowledge of the AUTHNO generator algorithm and all the
details of a given printed ticket excluding the barcode information, an attacker should still not be able
to determine the correct AUTHNO (i.e. barcode ID) of the ticket.
The above requirement infers that the ticket database has a secret e.g. a PRNG state or HMAC seed
(whether the secret is per ticket or global or how often it changes should be balanced against
operating risk).
Display(QPV1)
Communicate1
Display SPAM
Display CDCs
Allow ECT In3
Display GPM
Enabled2
(QPV1)
Legend:
Y = Yes,
n = No,
. = Don't care,
NA = Not Applicable
EGM States
Y Y Y Y Y Y Y Y Idle Mode - General/Betting/Game Display
Y Y Y Y Y Y Y Y Idle Mode - Game Selection
Y . Y Y Y Y . . Idle Mode - Full (primary) Screen Reserve Feature
Y . Y Y Y Y . . Idle Mode - Full (primary) Screen Attract Mode
Y . Y Y Y Y Y . Idle Mode - Other 2nd Screen DisplaysA
Y n Y NA NA NA NA NA Idle Mode – Power-save
Y n Y n . Y . . Hopper Collect
Y n Y n . Y . . Ticket Out Lockup
Y n Y n . Y . . Cancel Credit
Y n Y n . Y . . RCRF
Y n Y n . Y . . RCRF - Cancel Credit
Y n Y n . Y . . ECT Lockup (ECT out)
Y n Y n . Y . . System Lockup
Y . Y n . Y Y Y In Play
Y . Y n . Y Y . In Play - Game Features
Y . Y n . Y Y . Gamble
Y n Y n . Y . . Large Win Lockup
Y n Y n . Y . . LP Award Lockup
Y n Y n . Y . . CRanE Lockup
n n n n n n . n Power Up - Self Tests
EGM Concurrent States
Y n Y . . . . . Audit & Test Modes
Y n Y . . . . . Door Open
Y n Y . . . . . Fault Conditions
n n n . . . . . Fault Condition - RAM Error
Notes:
1. Assume manual setup is completed
2. Assume config complete, no CDCs & credit meter < limit
3. ECT In's are accepted but CM is typically not updated until return to Idle Mode
(16.1.1)
A. This refers to game rules displays, PIDs.
Generally speaking, if a conflict is identified between GMNS and QCOM, then where it is possible to
satisfy both requirements, then this must be done. Where conflicting requirements cannot both be
satisfied, then generally the QCOM Protocol takes priority unless specified otherwise in this document.
Please notify the OLGR of any conflicts that cannot be resolved by satisfying both requirements
documents or are not listed here.
GMNS uses CRECANLIM & MAXHOPPER (<=) to decide whether a hopper pay or CC should
occur. QCOM uses only one parameter COLLIM (<).
Differing definitions of idle mode should be noted (3.3.1).
GMNS v9 3.13.8 states “No changes to the set of games offered to the patron for selection (or
to the paytable) are permitted while there are credits on the player’s credit meter or while a
game is in progress. Except for the reference to changes to the paytable, for QCOM EGM’s
this requirement is implemented by the monitoring system rather than the EGM. With respect
to changes to the paytable, QCOM agrees with GMNS on this point.
GMNS v10 section 3.16 - table 3.6 states "External Peripheral Controller Fault / Disconnect"
are basically fault conditions however QCOM treats LP time-outs only as CDCs.
QCOM mandates the RTP of the RCRF must equal MINTRP, where as GMNS states the
RTP of the RCRF may be in the range MINRTP to 100%. (It should be noted that making the
RCRF RTP greater than or equal to the RTP of any game in an EGM may make the RCRF
more attractive to play than the game itself, thus detracting from playing the gaming machine
as intended)
In QCOM v1.6.6 "CRLIMIT" was changed to not apply to cash ticket in. Reason: suspected
possible future scenarios whereby it may be desirable to have a different banknote limit with
respect to cash ticket-in limit. Contention with GMNS 10.3 section 5.3.9 & potentially affects
the wording of 5.3.10
Meters. Some meters have different definitions between QCOM and GMNS (e.g. Cancel
Credit (12.1.1), Progressive and Money Out meters). This only affects EGM audit mode
meter display. Refer to section 4.1.6 for how this must be managed.
Some Casinos/jurisdictions require tower lights, so QCOM tower light support is recommended
(15.4.21).
Some jurisdictions do not require a player reserve function, it is recommended that the reserve
function be able to be toggled on or off from within test/audit mode of the EGM, or upon EGM
setup, or by some other method.
As a general rule for better multi-jurisdictional support, it is recommended that the EGM supports as
many optional parameters and features of QCOM as possible.
(The MID master list is located within the OLGR internal document with reference FM35. This list
includes reserved values. The OLGR licensing database should also be consulted)
10.6.1 LP Lockups x 2
1. Source code reference table (refer “QCOM Checklist – Full”). A table detailing for each
QCOM Checklist checkpoint denoted “Verify in source code” as a precondition; a cross-
reference to the module name, function name[, line number] and “quoted” line of source code1
with a short explanatory note (where not obvious) of how the requirement of the checkpoint
was implemented. (This may be submitted after the first pass of the QCOM evaluation has
been completed.)
2. A ‘how-to’ procedure for the reconciliation of the EGM’s reported QCOM program hash, with
the binary images produced from the EGM software build process for the submitted game.
3. A complete list of all possible faults (& manufacturer specific custom lockups if any) on the
EGM, cross-referenced against the applicable QCOM event code.
4. A complete source code reference list of all calculations & comparisons involving dates or
time (other than simple TZADJ adjustments for display or logging purposes). Refer s15.5.1
5. RTEXT Event Reference Table. A list of all uses of the RTEXT event message (7.10.1.16)
implemented by the EGM with source code references. E.g. “RTEXT”, Description (may be a
QCOM section reference where it is a QCOM required RTEXT), plus a reference to the
source module name and line number.
6. A list of any QCOM requirements / functionality that are implemented by EGM game code (as
opposed to being implemented by shell/base code which does not change for every game)
which is not already covered (checked) by the game checklist on the following page. E.g.
Typically: Fonts & colours used by QCOM messages, position of messages, etc. (This
information is used for creating an EGM model/platform specific QCOM game checklist to
supplement the game checklist on the next page. Refer Game checklist item 17.)
7. A fast-boot version of the EGM (preferred but optional). (The time in which it takes an EGM
to boot-up, if long, can blow out evaluation times and therefore costs due the large number of
times an EGM must be rebooted during a full QCOM evaluation.)
8. Toward the end of the evaluation, the manufacturer will be directed to submit an EGM and
software to various monitoring operators for system integration testing. (When submitting a
new QCOM compliant base to monitoring operators for system integration testing, please
ensure there is an explanatory covering letter detailing: what the submission is for, any
specific configuration issues, manual & instructions, any areas of significance that should be
examined in detail, e.g. first progressive game etc.)
1Just quote sufficient source code so that given the module and function name, the exact line of
source code of interest can be located in the module.
Manufacturer:
1. Bring the EGM on-line*, add credit and play some games and note any problems appearing on
QSIM or on the EGM. Ideally try to get a non-zero value on every meter the EGM reports and
check the meters balance (EGM->Request->More->More->Reconcile). (Any red coloured events
appearing in the event window must be investigated as they could indicate an issue) ................
*Re the EGM Configuration Poll: Provided the EGM agrees with the values of JUR, DEN and
TOK; an EGM Cfg. Poll with MAXDEN = 65535, MINRTP = 5000, MAXRTP = 10000, MAXSD =
65535, MAXLINES = 65535, MAXBET = -1, MAXNPWIN = -1, MAXPWIN = -1, MAXECT = -1
must always be accept by the EGM and make available all resident games up to the NUME limit.
.......................................................................................................................................................
2. Ensure the EGM returns its Program Hash response within the current OLGR specified time-out
period .............................................................................................................................................
3. Ensure for all Game Configuration Responses (F4) (15.6.11) that the message data (I.e. No. of
Games, GVNs, PNUM, VARs & PRET incl. the LPOnly flag & HS flag) is all correct for each game
.......................................................................................................................................................
4. Ensure full length SPAM A & B messages (15.4.20) are still displayed correctly and are still
clearly legible and 5mm high (min) & (10mm for prominent). (Check all printable characters
(2.3.8) as fonts may change between games). (NB: If the display font is proportional, make sure
the string is filled with “FATTER” characters, i.e. capitals) (Rationale: some games use a new
font, screen layout & colours for every game). Also note that in QPv1.6 SPAM A has two display
positions that must be checked .....................................................................................................
5. Ensure a full length General Promotional Message (15.5.3) (with “FATTER” chars) is still
displayed correctly and are still clearly legible and 5mm high (min). (Also verify a range of each
character type…use the ‘default’ GPM string for this) ...................................................................
6. Check display of Communications Disabling Conditions (6.2) is still acceptable and are still clearly
legible ............................................................................................................................................
7. Ensure a full length System Lockup (15.4.9) still functions (check all modes), displays correctly
and is still clearly legible and 5mm high (min). Check “QCOMSL” text is present and 5mm ........
8. Ensure a System Lockup is correctly queued if sent during any game mode (e.g. play, double-up,
game features) ..............................................................................................................................
10. If the game is a LP, then ensure LP Award Events are logged the instant the win is revealed to
the player and with the last received current amount for the level ................................................
11. If the game is a progressive, ensure that the Progressive Meters Response (especially HRATE’s
value and precision, refer 15.6.3) and Progressive Configuration Responses (15.6.4) are correct
for the game...................................................................................................................................
12. Ensure the Bet Meters response is correct for the game (use debug window) and is correctly
incrementing for a range of bets (15.6.5). QPv1.6 only................................................................
13. Ensure the Player Choice Meters response is correct for the game (use debug window) and is
correctly incrementing for all player choice options (15.6.7). QPv1.6 only. .................................
14. Verify the game display of the External Jackpot Information poll (15.4.7) is acceptable. (Check 8
levels linked to a PGID). QPv1.6 only ..........................................................................................
15. Verify CRanE Lockups (17.2) operate and display correctly (NB use a RATE value of -1 to force a
lockup) ...........................................................................................................................................
16. Auto-play the actual production version of the game for a number of hours at normal game speed
to ensure no serious events are generated by the protocol simulator or other observed issues ..
17. Complete any manufacturer specific QCOM game checklist created from Appendix F Item 6. (This
may be NA) ...................................................................................................................................
18. Verify cancel credit lockups operate and display correctly ............................................................
19. Verify the Residual Credit Removal Feature operates and displays correctly (check all four
outcomes; win, lose, cancel credit, abort) .....................................................................................
20. Verify the clock display is still clearly legible (15.5.1) and 7mm high (min)...................................
Notes:
Note that the QCOM protocol checklists do not denote a set of requirements for either a QCOM
machine or a QCOM compliance checklist. QCOM protocol checklists are published as FYI / example.
OLGR provides no guarantee that completing a OLGR QCOM checklist will result in a product or
service that conforms to the QCOM specificiation. Organisations implementing and operating
products and services conforming to OLGR requirements must perform their own due diligence
checks to ensure they have correctly implemented QCOM in accordance with the published
specification document.
Ignore below – just landing area for document checkpoint endnotes / references:
1
2
3
1286
1287
1288
A change to the first two digits represents a major change to the protocol indicating software
changes are required in EGMs and possibly SCs (this may also require the QPV & DLLVER
fields in the protocol to be incremented if the change is something a SC needs to be aware of).
A change to a third digit indicates a clarification release only and no software changes are
required in EGMs or SCs.
The revision history is updated (clearly highlight changes that require EGM or system
changes) .................................................................................................................................
The QCOM feature list is updated as necessary (section 1) ..................................................
Add new checkpoints as necessary (and keep in sync with the checklist spreadsheet) ........
Any moves or deletcions wrt checkpoints and the checklist spreadsheet must be changed to
reflect the same .......................................................................................................................
In the area changed specify which version it applies to (if applic. e.g. QPv1.5, QPv1.6) .......
Manually spell-check (as the document is now too large for Word’s auto-spell-check to
function) ..................................................................................................................................
Consider for every change, is backward compatibility affected? (e.g. SCs, EGMs, third party
protocol sniffers & sniffing LP displays) ..................................................................................
Does the change affect the Protocol Simulator? (Raise SCR if yes) ......................................
Does the change affect any related documents listed in section 1.1? (Especially the Site
Controller Procedures document) (Raise QIR if yes) .............................................................
The front page and revision history is updated especially wrt release/incept dates (NB: even
dates of release of draft version must also be recorded as individual releases) ....................
Update the Version Number on page 1 and on the checklist title pages ................................
Note, all external releases, including drafts, must be individually tracked in the revision history
................................................................................................................................................
Copyright notices (front page & footer) is current with respect to the year and version .........
Refresh both Table-of-Contents ..............................................................................................
Check page formatting (with ‘mark-up’ turned off) .................................................................
Search and remove IIS’s (if any) .............................................................................................
Search and remove comment boxes .....................................................................................
Search and remove TBA’s where possible .............................................................................
Does NPRV or PVERSION fields require updating? ..............................................................
Manually spell-check all changes (as doc is now too large for auto spell checking) ..............
Ensure references are correct (In Word, select All, then press F9) ........................................
Search and remove ‘Error! Reference Source not found’ errors (NB these are most likely to
occur in the revision history) ..................................................................................................
Check any web references are still ok (search ‘www’) ...........................................................
Clarify in the revision history (typically) the incept date/s for new or changed requirements.
Do any new/changed requirements need to be made ‘effective immediately’ or other
timeframe? .............................................................................................................................
Release both the changed marked version as well as the final version in Word document
format (Word format is used because hotlinks will not function and there are too many to
reliably carry over into a pdf) ...................................................................................................
Other
If the document is in Word format then there are a number of bookmarks defined to
make navigating this document easier. All cross references are hyperlinks for
convenience.
Note:
1. Clarifications to new CT tick display to provide easier implementation options. Refer s6.2.
2. Refer s13.3.3 8-bit mode, turning on/off. The UI must be on the serial cfg page and other
clarifications.
3. Refer s10.4.1, restored requirement to display HRATE simply because of s4.1.11.
4. Refer s22.2 made the 5 second display time proposed in previous draft optional.
5. Clarified the new audit mode display requirement in relation to the JUR field. Refer s15.4.2.
6. Added a short intro on QCOM customSAP’s. Refer s10.10. The feature was confusing to new
readers.
7. Refer s15.6.8 Meter Group Response. Improved wording wr.t. LP Contribution Message data.
No change in functionality here.
8. Refer s15.6.12 added a footnote to help clarify the meaning of “expected”.
9. Refer s15.6.11 the PRET to be reported is the game’s minimum RTP (Was formerly min. bet’s
RTP as QCOM assumed that the minimum bet’s RTP was the minimum RTP).
10. NB v1.6.7 change list continues below (re drafts 1 & 2)
Incept date for the implementation of new or changed requirements unless stated otherwise is one
year from the date of publication.
1. Made it clearer that the implementation for QCOM 8-bit mode for EGM manufacturers is
mandatory.
2. 8-bit mode now defaults to ON (refer section 13.3.3) and may be switched on/off via date &
time broadcast messages.
3. Added checkpoints for 8-bit mode.
4. FYI. Reasons for deleting all display “until next play” type requirements: Requirements like
these are considered to be outside the scope of a QCOM as well as being highly jurisdictionally
dependent. The QCOM SPAM feature can be used to display this information to any specific
regulator / operator requirements and any player queries in the area can still addressed via
individual logs pertaining to TITO and ECT in EGM audit mode. EGM manufactures may also
implement what they think is best practise (shorter display times is recommended to avoid
confusion when a new player takes over); see Ticket Rejected display requirements (s22.2) for
an example.
5. The QCOM checklist is now a separate document (a spreadsheet). While checkpoints (aka
endnotes) still appear in this document, they link to nothing in this document, however they still
correctly reference the relevant check index as numbered in the checklist spreadsheet. This
Incept date for the implementation of new or changed requirements unless stated otherwise is one
year from the date of publication.
1. Clarified implementation of COLLIM and TICKET fields with some supporting pseudo code.
Refer section 3.5.1.
2. Clarified sections 7.1.3 & 7.5.4 which were arguably in contention with each other in some rare
scenarios concerning time changes.
3. Changes to HRATE (refer sections 15.6.3 & 10.4). An EGM may now change the reported
value of HRATE at certain times and also report HRATE as zero to signify a disabled jackpot
level. Accordingly HRATE is no longer required to be displayed in EGM audit mode (10.4). (NB
reminder: as per QCOM SCP requirements v1.6.6 dated 5-Sep-2013, systems are no longer
to use HRATE for any purpose)
4. Progressive Cfg Poll (15.4.6), the sanity checks: SUP must not be equal to zero and SUPn >=
SUPn+1 are no longer integrity checks for EGM and systems. The approval of games that
adhere to these checks are a decision for each jurisdiction at game approval. Note that games
that break these former rules should not be submitted for one year from the date of publication
(as systems are given a year to implement the required changes.)
5. EGM Game Cfg Poll (15.4.3). It is no longer mandatory to divert a % of CAMT to the hidden
increment pool upon processing of CAMT in the poll. I.e. an initial CAMT contribution may be
all dumped onto the main prize value. So long as nothing is lost.
6. Added a requirement for the EGM to be able to scan tickets with other than 18 digits in the
barcode. (This is in support of both forward and backward compatibility) (Refer section 22.2)
7. Added a requirement and checkpoint pertaining to the ability to enable an EGM for play without
most peripheral devices installed (refer 15.6.12). E.g an ECT only EGM.
8. Added more checkpoints to ensure that existing meters affected by TITO are properly tested
during a QCOM TITO only evaluation (12.1.1).
9. Added a new scenario in which the EGM Progressive Configuration Changed event must be
logged. Also clarified the PRTP field in this event in cases where this field varies e.g. wrt bet.
(Refer section 7.10.3.34)
10. Deleted all requirements pertaining to the display of the last TITO & ECT operation to the player
in idle mode. Refer sections 16 and 22. This should help lower the chance of confusion,
misconception and clutter on the EGM’s display. Requirements like these are outside the scope
of QCOM. Note: All player queries in the area are better addressed via individual logs pertaining
to TITO and ECT in EGM audit mode.
11. Also reduced the time a TI error is displayed to 5 seconds max in order to avoid player confusion
in thinking an error is ongoing when it isn’t and still being displayed during next ticket insertion.
Refer 22.2.
12. Many ticket printers treat ‘^’ as a control code. Refer section 2.3.8 for options.
13. Clarified some “STATE” definitions in the General Status Response to help ensure consistency
in implementation (15.6.1).
1. Minor clarification to SPAM TEXT display requirements (15.4.20) in order to make it agree with
Appendix A – EGM State Pattern.
2. Manufacturer feedback resulted into a review of credit meter rollover scenarios and risks
thereof. Refer section 12.3.3.
3. Removed the former self audit requirement regarding CM >= 0 check (refer 12.4) and added a
new paragraph concerning credit meter validations.
4. The Cash Ticket In Ack Poll (15.4.11) / process had no event like ECT-to-EGM did (16.1.1) for
when the EGM denies an amount for being too large. Created new generic event for this called
‘Transaction Denied - Credit Limit Reached’ (7.10.3.44) now for use with both ECT-to-EGM and
Cash Ticket In. This event replaces the old ECT RTEXT event used in this scenario – refer
section 16.1.1)
Incept date for the implementation of new or changed requirements unless stated otherwise is one
year from the date of publication. (V1.6.6g draft change #9 (see below) is the only change that is
effective immediately.)
Incept date for the implementation of new or changed requirements unless stated otherwise is one
year. V1.6.6g draft change #9 (see below) is effective immediately.
1. Function code fields were missing from CRanE poll / response message format layouts. (In
QCOM by defn. there is always a FC field following the DLL field).
2. ECT-To-EGM Poll (16.1.1) – made PSN processing & update timing a little clearer based on
recent feedback by a new manufacturer.
3. Ticket layout – permit display of the address line text over two lines (refer 22.3)
4. Ticket layout (related) – removed paragraphs pertaining to a SC potentially using two
consecutive space characters to indicate a suitable place for a line break in the LTEXT field
(refer 15.5.5).
5. Refer “EGM Cash Ticket Out Print Failure” fault event (7.10.1.32), The fault condition display
associated with this event must also display the extended event data.
6. Added notes and clarification concerning the mapping of machine monitored doors onto QCOM
door events. Refer 7.10.3.12
7. Added Iamapoll and Iamaresp flags to DLL CTRL byte of all poll / broadcast messages (refer
14.2 and response message types). This doesn’t affect any existing or future EGM
implementations.
8. Added the requirement to display ticket printer firmware in EGM audit mode (22.4)
9. Clarified that CRLIMIT is not to apply to Ticket In (refer 15.4.5 & 15.4.11). The TITO system
will apply any TI limit as it is likely that some jurisdictions may want to set a different limit for TI
than physical credit in as controlled by CRLIMIT.
An incept period of one year is proposed bar point 9 which is intended to be effective
immediately.
Added final Ticket layout diagram (section 22.3) and added three new checkpoints concerning
the potential for text display field overrun wrt Venue, Address & CTEXT fields.
Clarified a couple of minor issuses concerning jackpots with a hidden increment of the overflow
meter and rounding
Fixed incorrect event code on the “Ticket-In Aborted” event (7.10.3.43)
Added an additional sanity checks re TAMT in the Ticket-In Ack Poll (15.4.11) i.e. TAMT != 0
Incept date: Unless stated otherwise* the incept date for which Queensland Licensed EGM
manufacturers must implement all new or updated QCOM requirements up to and including this version
of QCOM in all supported EGM base software and submit this for evaluation to the OLGR, is one year
from the above QCOM version date. QLD LMO systems must be submitted and approved to the
updated requirements no later than the above incept date. Existing gaming machine monitoring
*While the implementation of TITO in EGMs remains ‘not mandatory’, updated TITO
requirements are effective immediately if TITO is implemented.
Player Selectable Denomination (3.1.3.3). The EGM must require the credit denomination to
be set at one cent. (Ref NW & DR2.5)
Clarifications to TITO based on draft feedback:
o Clarified TITO – TI re meters 0x16, 0x17, 0x1A & 0x1E (refer 12.1.2)
o Clarified TITO – TO section on difficulties in printing a ticket (22.1.1)
o TITO – TI. The EGM no longer logs the formerly named “Invalid Ticket
Acknowledgement Event” (7.10.3.36) at any stage for the TI process (refer 15.4.11).
Changed the name of the event accordingly (added “Out” to event name descriptor).
o TITO - Display requirements for the ”ticket rejected” message have been made easier
to implement (22.2)
o TITO - Created a TI Acknowledgement Time-out (22.2.1) and event (7.10.3.42)
o TITO - Capped TI to MAXECT (15.4.11)
o TITO - Changed section on interruptions to TI process (22.2.2) and created “Ticket-In
Aborted” event (7.10.3.43)
Incept Date: NA – draft release for industry feedback. Please submit feedback within 4 weeks
from the release date.
Allow low fan RPM (7.10.3.25) & CPU Overtemp (7.10.3.24) events to be operated as fault
conditions.
Addressed an issue that arose concerning the previous introduction of the requirement for SAP
self audit. The issue is that SAP reconciliation formulas would be broken by a meter rollover
(albeit rare) or a SAP parameter change in customSAP games (likely). Refer 12.4 & 10.4.1 for
how this is must be addressed. The incept date for this change as per the incept date for
QCOM v1.6.4g.
Noted the SD display formulas susceptibility to TURN rollover 15.6.6.
Increased LPB timeout to 90 seconds (6.1.8)
Clarified QCOM’s progressive level numbering convention re a new progressive game type
(refer QCOM internal daily log 11/4/2011 for more information). Refer section 10.2
Clarified the term “reasonable” wrt default SAP parameters. Refer section’s 15.6.4 footnote.
Added checkpoint concerning loop clobbering. Refer section 13.1
Clarified reserved bit masking in all cases to help reduce confusion. Refer term “mask”
Added further poll/response processing notes (refer section 14.1.1) as a result of new client
feedback
Created a new section for shared progressive support (10.9) and moved primary requirements
to this section. Also clarified requirements to make them easier to understand
Reviewed section QCOM Message Synchronisation (13.2.2)
Added JUR ID 0x04 denoting South Australia and requested feedback on use in EGMs (refer
section 15.4.2).
Game Configuration change Poll (15.4.4). Deleted the requirement introduced in QPv1.6 which
required the machine upon a VAR change, to not affect the result, or display of the last played
game on the EGM. This requirement was deleted because 1. It was resource heavy to
implement 2. It was in contention with GMNS 3. It made VAR changes confusing for games
whose paytable also changed upon a VAR change (primary reason for deletion) 4. VAR
Incept Date: If not stated otherwise, the incept date for Queensland EGMs for which new or
updated requirements in this document must be implemented, is as per the incept date for next
major version release of the ANZ National Standards for Gaming Machines document. EGM
manufacturers may implement earlier if desired with prior permission from the OLGR. QLD
LMOs must be approved on the updated requirements no later than the above mentioned incept
date. Existing gaming machine monitoring systems must support the reporting of new/updated
EGM events within one month as per QLD Monitoring System minimum requirements.
Put upper limit on message timing concerning win payout thresholds (15.4.5)
Updated to new DEEDI report format template
“System Lockup” display must no longer have a title. The intent is the make system lockup
less ‘error’ looking as it is often used for awards etc. (15.4.9)
Added the requirement for EGMs to also self audit SAP levels (12.4)
Clarified the display on real time/ non-real time items in EGM audit mode (section 4)
Fixed error in formula for RTP Stndard Deviation (a bracket set was missing). Refer 15.6.6
Added new section regarding Multiple LP Award Handling (10.8)
Review/clarified the usage of the term ‘cashless mode’ throughout document.
Addressed contention wrt last play recall display requirements for an ECT-in that occurs during
a play (again). I.e removed requirement altogether as the new ECT log covers this better.
Refer Section 16.
Made a minor change to the integrity check in section 15.4.6 re SUPn > SUPn+1. Changed to
SUPn >= SUPn+1 RE SAP Game <editor: refer qcom daily log for more information>
Clarified PRET field re strategy games. Refer 15.6.11
Updated front page logo to exclude “Treasury” and added reference to DEEDI.
Clarified MAXNPWIN definition is as per GMNS.
Reserved EGM Parameter Poll FLG Bit 3 for NZ (Ref 27/11/2009) Section 15.4.5
Clarified CDCs with respect to physical credit disablement timing (section 6).
Clarified requirements during LP win shows (section 10.6.1).
Allow option of adding cashless-in’s (ECT-in) to the credit meter when the EGM is in-play
(16.1.1) (rather than mandating waiting until RTIM).
Added QCOM State Diagram pertaining to the General Status Response (15.6.1)
Deleted QCOM requirement to display progressive jackpot awards until start of next play (10.1).
This was an effort to implement, rarely used and last play recall and the event logs cover this
all sufficiently. (NB: GMNS v10 3.8.7 still has requirements in this area however.)
QCOM Version 1.6.3f Released 17 March 2009 (published 24/3/2009) - Robert Larkin
Incept Date: If not stated otherwise, the incept date for Queensland EGMs in which new or
updated requirements in this release must be implemented, is as per the QLD incept date for
National Standards Version 10 (QLD incept date for this was 1/10/2009). EGM manufacturers
may implement earlier if desired with prior permission from the OLGR. Monitoring Systems
should support the reporting of new events within one month.
Clarified the new licensing events are optional for an EGM manufacturer.
Corrected all multiplers concerning PINC, AUXRTP, MINRTP, MAXRTP & SUPRTP as used
in examples throughout the document.
10.4.1 Moved ‘win log’ item to last in meter list.
Added date and time calcs/comparisions to submission requirements list. This change is
effective immediately.
Added date and time display to RAM error fault display. Refer 3.2
Incept Date: If not stated otherwise, the incept date for Queensland EGMs in which new or
updated requirements in this release must be implemented, is as per the incept date for National
Standards Version 10. EGM manufacturers may implement earlier if desired with prior
permission from the OLGR. Monitoring Systems should support the reporting of new events
within one month.
Clarified required precision for HRATE field. Refer section 15.6.3. This change is effective
immediately.
The maximum number of decimal places for a progressive game’s percentage increment
amount is 4. Refer Section 10.1. This change is effective immediately.
Progressive implementations must not accumulate rounding errors. Refer Section 10.1
Clarified an ECT-from-EGM special case when a play is in progress with CM==0 and an ECT
from EGM poll is received during the play show and the play results in a win. Refer section
16.3.2
Clarified last play recall display for an ECT-in that occurs during a play. Refer Section 16.
New event: EGM Primary Display Device Failure 7.10.1.36
New event: EGM Tertiary Display Device Failure 7.10.1.37
EGM Top NP Prize Hit Event – removed 7.10.3.35
Reserved EGMPP FLG:Bit 4 for Tattersalls use (15.4.5)
New events: EGM License Key Detected. Refer sections 7.10.3.40 & 7.10.3.41
New event: EGM License Key Missing/Failure 7.10.1.38
0x03 = NZ version PID (15.4.5)
Incept Date: If not stated otherwise, the incept date for Queensland EGMs in which new or
updated requirements in this release must be implemented, is as per the incept date for National
Standards Version 10. EGM manufacturers may implement earlier if desired with prior
permission from the OLGR. The new submission requirements in Appendix F are effective
immediately.
Added RTEXT event for ECT-IN too large due to credit meter display width limit (16.1.1).
Incept Date: If not stated otherwise, the incept date for Queensland EGMs in which new or
updated requirements in this release must be implemented, is as per the incept date for
National Standards Version 10. EGM manufacturers may implement earlier if desired with
prior notice to the OLGR.
Incept Date: Where not stated otherwise, the incept date for new or changed requirements in
this version of the document is six months from the (non-draft) release date in all QCOM EGM
software submissions to the OLGR. (Incept date of this release was extended to coincide with
NS9 on the 1/10/2007)
Clarified that the PID access methodology must be a unique action on the EGM to ensure a
correct value for PID accessed meter (12.1.1).
Added an icon display option to the External Jackpot Information Poll (15.4.7) as requested
by Tattersalls. Support for this new feature is optional for QLD.
Added the Unit Modifier Flag to the External Jackpot Information Poll (15.4.7) as requested by
Tattersalls. Support for this new feature is optional for QLD.
Added the ECT Source ID field to the ECT to EGM Poll (16.1.1) as requested by Tattersalls.
Support for this new feature is optional for QLD.
QCOM Version 1.6.1c - 31/10/06 7th Draft. Released 2/11/06 - Robert Larkin
Incept Date: Where not stated otherwise, the incept date for new or changed requirements in
this version of the document is six months from the (non-draft) release date in all QCOM EGM
software submissions to the OLGR.
Clarified requirements for multiple updates to QCOM group meters to ensure that only one
group meter response will result. Refer 12.2.2
An ESD protected UTP / Ethernet / TCP/IP capable port will be mandatory on all new EGM
models submitted from 2007. Refer section 1.
Clarified hardware flags definition in the EGM Configuration Response (15.6.12)
The EGM must reset bet meters to zero upon a denomination hot-switch (15.6.5).
Added two more validity checks for progressive levels (PINC & SUPRTP) in the Progressive
Configuration Poll (15.4.6)
Clarified processing of LP Broadcasts during a LP lockup (10.6.1).
Clarified what is ‘shared’ exactly when an EGM sets the Shared Progressive Component Flag
(15.6.12)
Added screen dumps examples courtesy of IGT (Australia) PTY LTD.
With the introduction of win payouts (15.4.5), the document was still assuming in a number of
places that collects would always be of the whole current credit meter amount. Fixed all.
Added RTEXT suggestions. Search for RTEXT throughout this document for all suggestions.
Also refer section 7.10.1.16 which becomes mandatory in 2007.
Clarified section 14 with respect to malformed messages (14.1.21)
Added new optional CDC: “RTP out of range” (6.1.9).
Added macros to assist in the electronic completion of the checklists in this document.
Finalised QCOM checklist in preparation for the first QCOM v1.6 evaluation
No longer refer to program ‘signatures’ but to program ‘hashes’. This is a cosmetic change
only except refer sections 4.2.10 & 11.1.8.
EGM Cash Ticket In Request (7.10.4.13) – increased AUTHNO field to 16 bytes and now to be
displayed as MSB first hex number.
Removed AUTHNO field from the “EGM Cash Ticket Out Print Failure” Event (7.10.1.32) to
keep Extd event data under 16 byte limit (was a redundant field anyway).
Cash Ticket Out Request Acknowledgement Poll (15.4.10) – increased AUTHNO to 16 bytes
hex
Cash Ticket In Request Acknowledgement Poll (15.4.11) – increased AUTHNO to 16 bytes hex
Release Notes.
QCOM version 1.6 represents the biggest change to the QCOM protocol since its initial implemented
release as version 1.5. All changes to QCOM v1.5 (taking it to v1.5.5) were basically only clarifications,
where QCOM v1.6 introduces new elements and methods that need to be programmed into both the
EGMs and SCs. Since both v1.5.5 & v1.6 QCOM EGMs will be in use at the same time for an extended
period, it was considered important to be able to clearly distinguish between the differences of the two
protocol versions in this document. Accordingly requirements throughout this document that have
become specific to QCOM v1.5.5 EGMs are labelled with ‘QPv1.5’ and all new requirements that are
specific to QCOM v1.6 EGMs are labelled ‘QPv1.6’.
* The above points assume that the value added services alluded to were initially correctly
programmed, eg they masked out all reserved fields and did not assume a specific message length
for any message types.
A QPv1.6 EGM will not work on a QPv1.5 only SC (the SC must be upgraded first)
QPv1.5 EGMs will be supported indefinitely by QPv1.6 SCs
A SC can send any QPv1.6 poll to a QPv1.5 EGM with no side effects. (Poll message data area
extension has been thoroughly tested on all QPv1.5 EGMs. I.e. The QPv1.5 EGM will only
process data in the poll up to the limit of its knowledge of QPv1.5 and no further.)
Summary of all protocol Changes from QCOM Version 1.5.5 to Version 1.6
* Internal Use. Indicates changes that affect existing QLD Site Controller software.
Converted Protocol document to Microsoft Word. Some sections have been renumbered and moved
as a result
Clarified Global NAKs
Method 2 response methodology is now mandatory
Clarified new program signature timeout time
Add option to auto-pay, auto-clear SAPs.
Progressive Meters Response and Game Configuration Poll SAP contribution meter units changed.
Clarification release. No programming changes should be required. (If there are any document
changes requiring EGM or SC software changes then they are not required to be initiated until specified
the next release of this document.)
Be advised. All “prefer...” words in redline text will become mandatory in the next release of this
document.
Created Appendix A
Added Appendix B
Label changes:
MGEF is now GEF
GEF is now MEF
Var. Cfg. Poll is now the Var Change poll.
Refer red-line and strike-out throughout the document for other changes.
Any changes requiring EGM program changes are to be made at the EGM manufacturer's earliest
convenience, but no longer then 3 months from the date of this document.
Section 4.4. Added a couple of extra audit formulas so more group meters are validated.
Added "Configuration Required" Communications Disabling Condition to Section 6
Section 16. ECT. Added requirement for display of residual credit.
Clarified poll message data checks the EGM must perform.
Added more paragraph numbers.
Refer red-line and strike-out throughout the document. A summary of the changes follows:
MID field was incorrectly stated as "hex" instead of "BCD" in some places
Changed "Executive Director" to "Chief Executive"
Clarified hot-switching of progressive games (Section 9.2)
Clarified section 5.0.8 on the inter-character time-out
Added Figure 1. explaining message processing options
Added to section 5.0.16
Clarifications in sections 6 & 7
Added meters to section 10.3 - progressive audit meters
Simplified the general maintenance poll. It is now a fixed length poll which acts on a single game only.
"Cash Ticket Printed" had the wrong event code.
Clarified event 0x2001
Added optional new event "Cancel Credit Cancelled" (0x2002)
Added Section 13.2.5 baud rate tolerances
Added GEF flag to EGM Configuration Poll Section 15.5.1
Added section 2.3.8 defining ASCII printable characters
Section 15.6.1.3 Poll Address Configuration. Now can also change an EGMs poll address (ie. prevents
an EGM from being RAM cleared just because you move an EGM from one SC to another).
Clarified Section 14. "When a response is rebuilt due to a NAK, it must reflect the latest EGM data
(except for events which are a queue and are resent until acknowledged)."
Changes and clarifications have been extensive as the document was still under development. Please
read the whole document carefully. A summary of the changes follows. From this point on, all future
changes and clarifications will be thoroughly detailed in this section.
Version 1.0 DRAFT (based on REEF Protocol Version 1.7) 11 November 1996 by R. Larkin.
Actual first release date 10th Dec 1996