JP2018191916A - Game machine - Google Patents

Game machine Download PDF

Info

Publication number
JP2018191916A
JP2018191916A JP2017097685A JP2017097685A JP2018191916A JP 2018191916 A JP2018191916 A JP 2018191916A JP 2017097685 A JP2017097685 A JP 2017097685A JP 2017097685 A JP2017097685 A JP 2017097685A JP 2018191916 A JP2018191916 A JP 2018191916A
Authority
JP
Japan
Prior art keywords
random number
game
buffer
program
random
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017097685A
Other languages
Japanese (ja)
Other versions
JP7048219B2 (en
Inventor
貴博 上田
Takahiro Ueda
貴博 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Heiwa Corp
Original Assignee
Heiwa Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Heiwa Corp filed Critical Heiwa Corp
Priority to JP2017097685A priority Critical patent/JP7048219B2/en
Publication of JP2018191916A publication Critical patent/JP2018191916A/en
Application granted granted Critical
Publication of JP7048219B2 publication Critical patent/JP7048219B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Pinball Game Machines (AREA)
  • Slot Machines And Peripheral Devices (AREA)

Abstract

To provide a game machine capable of controlling a game by appropriately using random numbers equally distributed in a high dimension without impairing conformity of a random number generation system.SOLUTION: The game machine: divides a random number generated by a random number generation program P3 into n pieces; in response to a request of a performance program P1, outputs the divided random numbers to the performance program P1; and causes the performance program P1 to control a performance of the game on the basis of the putout random numbers. When the divided random numbers are accumulated in a random number buffer 6021a and are input/output, the game machine determines the number of random numbers to be generated by the random number generation program P3 according to an idle capacity (E) of the random number buffer 6021a, and causes the performance program P1 to output all the random numbers divided into the plurality of pieces, without any exception.SELECTED DRAWING: Figure 9

Description

本発明は、遊技機に関する。   The present invention relates to a gaming machine.

メダルやパチンコ玉などの遊技媒体に対して一定の遊技価値を付与し、このような遊技媒体を獲得するための遊技を行うパチンコ機やスロットマシンなどの遊技機が知られている。この種の遊技機では、遊技の進行や演出の決定などのために乱数を用いた様々な抽選が行われている。例えば、従来、所定のサイクルでカウントアップされるリーチ乱数値設定領域のカウント値を、スタートSWが遊技球を検出したことに基づいて読み込み、RAMのリーチ乱数値蓄積領域にリーチ乱数値として蓄積し、このリーチ乱数値に基づいてリーチ演出における特別図柄の変動パターンの内容を設定するパチンコ機が提案されている(下記の特許文献1)。また、ハードウェアに由来する不規則性を利用したいわゆるハードウェア乱数方式の他、ソフトウェア乱数方式、例えば、メルセンヌ・ツイスタ法などの乱数生成アルゴリズムによって擬似乱数を生成し、抽選に用いるスロットマシンが知られている(下記の特許文献2)。   There are known gaming machines such as pachinko machines and slot machines that give a certain gaming value to gaming media such as medals and pachinko balls and perform games for obtaining such gaming media. In this type of gaming machine, various lotteries using random numbers are performed in order to determine the progress of the game and the production. For example, conventionally, the count value of the reach random number setting area that is counted up in a predetermined cycle is read based on the detection of the game ball by the start SW, and is stored as a reach random number value in the reach random number value storage area of the RAM. A pachinko machine has been proposed that sets the content of a special symbol variation pattern in reach production based on the reach random value (Patent Document 1 below). In addition to the so-called hardware random number system that uses irregularities derived from hardware, software random number systems, for example, pseudo random numbers are generated by a random number generation algorithm such as the Mersenne Twister method, and slot machines used for lottery are known. (Patent Document 2 below).

特開2005−329139号公報JP 2005-329139 A 特許第5467559号公報Japanese Patent No. 5467559

上記のメルセンヌ・ツイスタ法のようなソフトウェア乱数生成処理系は、乱数周期が長い、高次元(623次元)に乱数が均等分布する良質な疑似乱数列を生成することができる。ところが、近年のソフトウェアによる乱数生成プログラムは、例えば64ないし32ビット程度のビット幅の乱数を生成するよう構成されていることが多いのに対して、遊技機、例えば抽選や演出制御のために必要になる乱数はそれよりもビット幅の小さい16ビット幅程度の乱数である場合があり、乱数生成プログラムで生成した乱数を、抽選や演出のための制御プログラムで利用できる乱数に変換する必要がある。その場合、例えば32ビットずつ乱数生成プログラムで生成した乱数を1つずつ16ビットに変換するような処理を行うと、生成したビットパターンを全て利用できず、また処理負荷が増大する虞がある。   A software random number generation processing system such as the Mersenne Twister method described above can generate a high-quality pseudo-random number sequence having a long random number period and a uniform distribution of random numbers in a high dimension (623 dimensions). However, recent random number generation programs by software are often configured to generate random numbers having a bit width of about 64 to 32 bits, for example, but are necessary for game machines such as lottery and effect control. The random number to be may be a 16-bit wide random number with a smaller bit width, and it is necessary to convert the random number generated by the random number generation program into a random number that can be used by a control program for lottery or presentation. . In that case, for example, if a process of converting random numbers generated by the random number generation program by 32 bits into 16 bits one by one cannot use all the generated bit patterns, there is a possibility that the processing load increases.

本発明の課題は、上記に鑑み、遊技機において、乱数生成系で生成される乱数と、乱数を利用する制御系、例えば、演出制御部が必要とする乱数のサイズが異なっている場合でも効率よく、また容易に乱数生成手段で乱数を発生させ、乱数を利用する制御系が必要とするサイズの乱数に分割して出力し、利用させることができるようにすることにある。   In view of the above, the problem of the present invention is that even in a gaming machine, even when the random number generated by the random number generation system is different from the control system that uses the random number, for example, the random number size required by the production control unit It is also possible to easily generate random numbers with a random number generation means, divide them into random numbers of a size required by a control system that uses random numbers, and output them for use.

上記課題を解決するため、本発明においては、乱数に基づき遊技の演出を制御する演出制御手段(P1)と、所定アルゴリズムに基づき乱数を生成する乱数生成手段(P3)と、前記乱数生成手段によって生成させた乱数を複数の乱数に分割する分割手段(S12〜S14)と、を備え、前記演出制御手段(P1)は、前記分割手段により分割された乱数に基づき遊技の演出を制御する構成を採用した。   In order to solve the above problems, in the present invention, an effect control means (P1) for controlling the effect of a game based on random numbers, a random number generation means (P3) for generating random numbers based on a predetermined algorithm, and the random number generation means Dividing means (S12 to S14) for dividing the generated random number into a plurality of random numbers, and the effect control means (P1) controls the effect of the game based on the random number divided by the dividing means. Adopted.

上記構成によれば、乱数生成手段が生成する乱数および演出制御手段が必要とする乱数のサイズ、例えばビット幅などが異なっているような場合でも、効率よく、また容易に乱数生成手段で乱数を発生させ、例えば演出制御手段が必要とするサイズの乱数に分割して演出制御手段に出力し、利用させることができる。   According to the above configuration, even when the random number generated by the random number generation unit and the random number size required by the presentation control unit, such as the bit width, are different, the random number generation unit efficiently and easily generates the random number. For example, it can be divided into random numbers of a size required by the production control means and output to the production control means for use.

なお、上記の課題を解決するための手段、および発明の効果の欄に括弧書きで示した参照符号は、下記の実施形態の部材との対応付けを示す便宜上のものに過ぎず、本発明の構成を限定することを意図したものではない。   Note that the means for solving the above-described problems and the reference numerals shown in parentheses in the column of the effect of the invention are merely for the convenience of showing the correspondence with the members of the following embodiments, and It is not intended to limit the configuration.

本発明の実施の形態に係る遊技機の扉が開放された状態における外観構成を示す斜視図である。It is a perspective view which shows the external appearance structure in the state by which the door of the game machine which concerns on embodiment of this invention was open | released. 本発明の実施形態に係る遊技機の正面図である。1 is a front view of a gaming machine according to an embodiment of the present invention. 本発明の実施形態に係る遊技機の機能ブロックを説明する図である。It is a figure explaining the functional block of the game machine concerning the embodiment of the present invention. 本発明の実施形態に係る遊技機の副制御部の詳細構成を説明する図である。It is a figure explaining the detailed structure of the sub-control part of the game machine which concerns on embodiment of this invention. 本発明の実施形態に係る遊技機のメモリアドレス空間を示す図である。It is a figure which shows the memory address space of the game machine which concerns on embodiment of this invention. 本発明の実施形態に係る遊技機における乱数生成に係る流れを説明する概念図である。It is a conceptual diagram explaining the flow concerning the random number generation in the gaming machine according to the embodiment of the present invention. デバッグカウンタのカウンタ値の32ビット拡張の方法を説明する模式図である。It is a schematic diagram explaining the method of 32-bit extension of the counter value of a debug counter. 本発明の実施形態に係る遊技機における電源投入時の乱数生成処理を示すフローチャート図である。It is a flowchart figure which shows the random number generation process at the time of power activation in the gaming machine according to the embodiment of the present invention. 本発明の実施形態に係る遊技機における乱数バッファへの乱数の格納処理を説明する概念図である。It is a conceptual diagram explaining the random number storage process to the random number buffer in the gaming machine according to the embodiment of the present invention. (a)はタスク管理プログラムにおけるタスクのスケジューリングを説明する模式図、(b)は図10(a)にてスケジューリングされたタスクの実行状態を示すタイムチャート図である。FIG. 11A is a schematic diagram for explaining task scheduling in a task management program, and FIG. 10B is a time chart showing an execution state of the task scheduled in FIG. 本発明の実施形態に係る遊技機におけるシステム安定時の乱数生成処理を示すフローチャートである。It is a flowchart which shows the random number generation process at the time of the system stable in the game machine which concerns on embodiment of this invention. 本発明の実施形態に係る遊技機における32ビット乱数の生成個数を決定する処理を示すフローチャートである。It is a flowchart which shows the process which determines the production | generation number of 32-bit random numbers in the gaming machine which concerns on embodiment of this invention. (a)は本発明の実施形態に係る遊技機における乱数取得ドライバの要部を示すフローチャート図、(b)および(c)は当該の乱数取得ドライバで用いられる乱数バッファの枯渇に対処する異なる代替処理をそれぞれ示すフローチャート図である。(A) is a flowchart showing the main part of the random number acquisition driver in the gaming machine according to the embodiment of the present invention, (b) and (c) are different alternatives for dealing with the exhaustion of the random number buffer used in the random number acquisition driver. It is a flowchart figure which shows a process, respectively. 本発明の実施形態に係る遊技機における、乱数の生成異常に対処する回復処理を備えた乱数生成処理を示すフローチャートである。It is a flowchart which shows the random number generation process provided with the recovery process which copes with the random number generation abnormality in the gaming machine according to the embodiment of the present invention. 本発明の変形例に係る遊技機の外観構成を示す斜視図である。It is a perspective view which shows the external appearance structure of the game machine which concerns on the modification of this invention. 本発明の変形例に係る遊技機におけるリールの図柄配列を説明する図である。It is a figure explaining the symbol arrangement | sequence of the reel in the game machine which concerns on the modification of this invention. 本発明の変形例に係る遊技機の機能ブロックを説明する図である。It is a figure explaining the functional block of the game machine concerning the modification of the present invention.

以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。また、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略するとともに、本発明に直接関係のない要素については、図示を省略する。   Hereinafter, this embodiment will be described. In addition, this embodiment demonstrated below does not unduly limit the content of this invention described in the claim. In addition, all the configurations described in the present embodiment are not necessarily essential configuration requirements of the present invention. In addition, in the present specification and drawings, elements having substantially the same function and configuration are denoted by the same reference numerals, and redundant description is omitted, and elements not directly related to the present invention are illustrated. Is omitted.

1.構成
図1は、本実施形態の遊技機であるパチンコ機100の斜視図であり、扉が開放された状態を示している。図1に示すように、パチンコ機100は、略矩形状に組まれた四辺によって囲繞空間が形成される外枠102と、外枠102にヒンジ機構によって開閉自在に取り付けられた中枠104と、中枠104にヒンジ機構によって開閉自在に取り付けられた前枠106と、を備えている。
1. Configuration FIG. 1 is a perspective view of a pachinko machine 100 that is a gaming machine of the present embodiment, showing a state in which a door is opened. As shown in FIG. 1, the pachinko machine 100 includes an outer frame 102 in which an enclosed space is formed by four sides assembled in a substantially rectangular shape, and a middle frame 104 attached to the outer frame 102 so as to be freely opened and closed by a hinge mechanism. And a front frame 106 attached to the middle frame 104 by a hinge mechanism so as to be freely opened and closed.

中枠104は、外枠102と同様に、略矩形状に組まれた四辺によって囲繞空間が形成されている。パチンコ機100では、中枠104の囲繞空間に遊技盤108を保持している。また、前枠106には、ガラス製又は樹脂製の透過板110が保持されている。そして、パチンコ機100では、中枠104及び前枠106を外枠102に対して閉じると、遊技盤108と透過板110とが所定の間隔を維持して略平行に対面するとともに、パチンコ機100の正面側から、透過板110を介して遊技盤108が視認可能となる。   As with the outer frame 102, the middle frame 104 has an enclosed space formed by four sides assembled in a substantially rectangular shape. In the pachinko machine 100, the game board 108 is held in the surrounding space of the middle frame 104. The front frame 106 holds a transmission plate 110 made of glass or resin. In the pachinko machine 100, when the middle frame 104 and the front frame 106 are closed with respect to the outer frame 102, the game board 108 and the transmission plate 110 face each other substantially in parallel while maintaining a predetermined distance. From the front side, the game board 108 can be visually recognized through the transmission plate 110.

図2は、本実施形態におけるパチンコ機100の正面図である。図2に示すように、前枠106の下部には、パチンコ機100の正面側に突出する操作ハンドル112が設けられている。操作ハンドル112は、遊技者によって回転操作可能に設けられており、遊技者が操作ハンドル112を回転させて発射操作を行うと、操作ハンドル112の回転角度に応じた強度で、不図示の発射機構によって遊技球が発射される。このようにして発射された遊技球は、遊技盤108に設けられたレール114a、114b間を上昇して遊技領域116に導かれることになる。   FIG. 2 is a front view of the pachinko machine 100 in the present embodiment. As shown in FIG. 2, an operation handle 112 protruding to the front side of the pachinko machine 100 is provided below the front frame 106. The operation handle 112 is provided so that it can be rotated by a player. When the player rotates the operation handle 112 to perform a firing operation, the launching mechanism (not shown) has a strength corresponding to the rotation angle of the operation handle 112. A game ball is fired. The game ball thus fired is raised between the rails 114 a and 114 b provided on the game board 108 and guided to the game area 116.

遊技領域116は、遊技盤108と透過板110(図1参照)との間隔に形成される空間であって、遊技球が流下又は転動可能な領域である。遊技盤108には、多数の釘や風車が設けられており、遊技領域116に導かれた遊技球が釘や風車に衝突して、不規則な方向に流下、転動するようにしている。   The game area 116 is a space formed at a distance between the game board 108 and the transmission plate 110 (see FIG. 1), and is an area where a game ball can flow down or roll. The game board 108 is provided with a large number of nails and windmills, and a game ball guided to the game area 116 collides with the nails and windmills, and flows down and rolls in an irregular direction.

遊技領域116は、発射機構の発射強度に応じて遊技球の進入度合いを互いに異にする第1遊技領域116a及び第2遊技領域116bを備えている。第1遊技領域116aは、パチンコ機100に正対した遊技者から見て遊技領域116の左側に位置し、第2遊技領域116bは、パチンコ機100に正対した遊技者から見て遊技領域116の右側に位置している。パチンコ機100では、レール114a、114bが遊技領域116の左側にあることから、発射機構によって所定の強度未満の発射強度で発射された遊技球が第1遊技領域116aに進入し、所定の強度以上の発射強度で発射された遊技球が第2遊技領域116bに進入することになる。   The game area 116 includes a first game area 116a and a second game area 116b that differ in the degree of entry of the game ball according to the firing strength of the launch mechanism. The first game area 116 a is located on the left side of the game area 116 when viewed from the player facing the pachinko machine 100, and the second game area 116 b is the game area 116 viewed from the player facing the pachinko machine 100. Located on the right side. In the pachinko machine 100, since the rails 114a and 114b are on the left side of the game area 116, a game ball launched with a firing strength less than a predetermined intensity by the launch mechanism enters the first game area 116a and exceeds a predetermined strength. A game ball that has been launched with a launch intensity of 2 will enter the second game area 116b.

また、遊技領域116には、遊技球が入球可能な一般入賞口118、第1始動口120、第2始動口122が設けられており、一般入賞口118、第1始動口120、第2始動口122に遊技球が入球すると、それぞれ所定の賞球が遊技者に払い出される。なお、パチンコ機100において、賞球数は、1個以上であれば何個でもよく、また、一般入賞口118、第1始動口120、第2始動口122のそれぞれで払い出す賞球数を異ならせてもよいし、同じ賞球数に設定してもよい。パチンコ機100では、第1始動口120に遊技球が入球して払い出す賞球数を、第2始動口122に遊技球が入球して払い出す賞球数よりも少なく設定することも可能である。   Further, the game area 116 is provided with a general winning port 118, a first starting port 120, and a second starting port 122 through which a game ball can enter, and the general winning port 118, the first starting port 120, the second starting port 122 are provided. When a game ball enters the start port 122, a predetermined prize ball is paid out to the player. In the pachinko machine 100, the number of winning balls may be any number as long as it is one or more, and the number of winning balls to be paid out at each of the general winning opening 118, the first starting opening 120, and the second starting opening 122 is determined. It may be different or set to the same number of prize balls. In the pachinko machine 100, the number of prize balls to be paid out when the game ball enters the first start port 120 may be set smaller than the number of prize balls to be paid out by the game ball entering the second start port 122. Is possible.

本実施形態のパチンコ機100では、第1始動口120内に第1始動領域が設けられ、第2始動口122内に第2始動領域が設けられている。そして、パチンコ機100では、所定の契機として、第1始動口120又は第2始動口122に遊技球が入球して第1始動領域又は第2始動領域に遊技球が進入すると、予め設けられた複数の特別図柄の中からいずれか1つの特別図柄を決定するための抽選が行われる。各特別図柄には、遊技者にとって有利な大役遊技の実行可否や、以後の遊技状態をどのような遊技状態にするかといった種々の特典(遊技利益)が対応付けられている。したがって、遊技者は、第1始動口120又は第2始動口122に遊技球が入球すると、所定の賞球を獲得するのと同時に、種々の特典を受ける権利獲得の機会を獲得することとなる。   In the pachinko machine 100 according to the present embodiment, a first start region is provided in the first start port 120, and a second start region is provided in the second start port 122. In the pachinko machine 100, when a game ball enters the first start port 120 or the second start port 122 and enters the first start region or the second start region as a predetermined trigger, the pachinko machine 100 is provided in advance. In addition, a lottery for determining any one special symbol from among the plurality of special symbols is performed. Each special symbol is associated with various benefits (game profits) such as whether or not a big game that is advantageous to the player can be executed, and what game state the subsequent game state is to be made. Therefore, when a game ball enters the first start port 120 or the second start port 122, the player acquires a predetermined prize ball and at the same time acquires an opportunity to acquire a right to receive various privileges. Become.

また、第2始動口122には、可動片122bが開閉可能に設けられており、可動片122bの状態に応じて、第2始動口122への遊技球の進入容易性が変化するように構成されている。具体的には、可動片122bが閉状態にあるときには、第2始動口122への遊技球の入球が不可能となり、可動片122bが開き遊技球の直径よりも開いた状態にあるときには、第2始動口122への遊技球の入球が可能となっている。   In addition, a movable piece 122b is provided at the second starting port 122 so as to be openable and closable, and the ease of entry of the game ball into the second starting port 122 changes depending on the state of the movable piece 122b. Has been. Specifically, when the movable piece 122b is in the closed state, it is impossible to enter the game ball into the second start port 122, and when the movable piece 122b is open and opened in a state larger than the diameter of the game ball, A game ball can enter the second start port 122.

パチンコ機100では、遊技領域116に設けられたゲート124内の進入領域を遊技球が通過すると、普通図柄の抽選が行われ、抽選によって当たりに当選すると、可動片122bが所定時間、開状態に制御される。可動片122bが開状態に制御されることで、本実施形態のパチンコ機100では、可動片122bが遊技球を第2始動口122に導く受け皿として機能し、第2始動口122への遊技球の入球が容易となる。なお、パチンコ機100は、可動片122bが閉状態にあるときに、第2始動口122への遊技球の入球が不可能となるように構成されているが、第2始動口122が閉状態にある場合にも一定の頻度で遊技球が入球可能となるように構成されていてもよい。   In the pachinko machine 100, when the game ball passes through the entry area in the gate 124 provided in the game area 116, a normal symbol lottery is performed, and if the winning is won by the lottery, the movable piece 122b is opened for a predetermined time. Be controlled. When the movable piece 122b is controlled to be in the open state, in the pachinko machine 100 of the present embodiment, the movable piece 122b functions as a tray for guiding the game ball to the second start port 122, and the game ball to the second start port 122 It becomes easy to enter. The pachinko machine 100 is configured such that when the movable piece 122b is in the closed state, it is impossible to enter the game ball into the second start port 122, but the second start port 122 is closed. Even when in a state, it may be configured such that a game ball can enter at a certain frequency.

遊技領域116には、遊技球が入球可能な大入賞口128が設けられている。大入賞口128には、開閉扉128bが開閉可能に設けられており、通常、開閉扉128bが大入賞口128を閉鎖して、大入賞口128への遊技球の入球が不可能となっている。これに対して、パチンコ機100では、大役遊技が実行されると、開閉扉128bが開放されて、大入賞口128への遊技球の入球が可能となる。そして、パチンコ機100では、大入賞口128に遊技球が入球すると、所定の賞球が遊技者に払い出される。   The game area 116 is provided with a large winning opening 128 through which a game ball can enter. An open / close door 128b is provided at the big prize opening 128 so as to be openable and closable. Normally, the open / close door 128b closes the big prize opening 128 so that a game ball cannot enter the big prize opening 128. ing. On the other hand, in the pachinko machine 100, when the big game is executed, the open / close door 128b is opened, and the game ball can be inserted into the big winning opening 128. In the pachinko machine 100, when a game ball enters the big prize opening 128, a predetermined prize ball is paid out to the player.

遊技領域116の最下部には、一般入賞口118、第1始動口120、第2始動口122、大入賞口128のいずれにも入球しなかった遊技球を、遊技領域116から遊技盤108の背面側に排出する排出口130が設けられている。   At the bottom of the game area 116, game balls that have not entered any of the general prize opening 118, the first start opening 120, the second start opening 122, and the big prize opening 128 are transferred from the game area 116 to the game board 108. A discharge port 130 for discharging is provided on the back side.

パチンコ機100には、遊技の進行中等に演出を行う演出装置200として、液晶表示装置からなる演出表示装置201、駆動装置からなる演出役物装置202、さまざまな点灯態様や発光色に制御されるランプからなる演出照明装置204、スピーカからなる楽曲出力装置206、遊技者の演出に関する操作を受け付ける演出操作装置208が設けられている。   The pachinko machine 100 is controlled as an effect display device 201 made up of a liquid crystal display device, an effect agent device 202 made up of a drive device, and various lighting modes and light emission colors as an effect device 200 that makes an effect during the progress of a game. An effect lighting device 204 composed of a lamp, a music output device 206 composed of a speaker, and an effect operation device 208 that accepts operations related to the player's effects are provided.

演出表示装置201は、遊技盤108の略中央部分において、パチンコ機100の正面側から視認可能な位置に画像を表示する画像表示部を備えている。演出表示装置201は、図2に示すように、画像表示部に演出図柄210a〜210cが変動表示され、演出図柄210a〜210cの停止表示態様によって大役抽選結果が遊技者に報知される変動演出が実行されることとなる。   The effect display device 201 includes an image display unit that displays an image at a position that is visible from the front side of the pachinko machine 100 in a substantially central portion of the game board 108. As shown in FIG. 2, in the effect display device 201, the effect symbols 210a to 210c are variably displayed on the image display unit, and the effect that the big lottery result is notified to the player by the stop display mode of the effect symbols 210a to 210c is provided. Will be executed.

演出役物装置202は、演出表示装置201よりも前方に配置され、通常、遊技盤108の背面側に退避しているが、演出図柄210a〜210cの変動表示中などに、演出表示装置201の前方まで移動して、遊技者に大当たりの期待感を付与するものである。   The stage effect device 202 is disposed in front of the stage display device 201 and is normally retracted to the back side of the game board 108. However, during the variation display of the stage symbols 210a to 210c, etc. It moves forward and gives the player a sense of expectation of jackpot.

演出照明装置204は、例えばLED(Light Emitting Diode)から構成され、演出役物装置202や遊技盤108等に設けられており、演出表示装置201に表示される画像等に合わせて、さまざまに点灯制御される。   The effect lighting device 204 is composed of, for example, an LED (Light Emitting Diode) and is provided on the effect agent device 202, the game board 108, and the like, and is lit variously according to an image displayed on the effect display device 201. Be controlled.

楽曲出力装置206は、前枠106の上部位置や外枠102(図1参照)の最下部位置に設けられ、演出表示装置201に表示される画像等に合わせて、パチンコ機100の正面側に向けてさまざまな楽曲を出力する。なお、楽曲とは、楽音、噪音、音声、擬音等、音に関する全ての概念を含む。   The music output device 206 is provided at the upper position of the front frame 106 or at the lowermost position of the outer frame 102 (see FIG. 1), and on the front side of the pachinko machine 100 according to the image displayed on the effect display device 201. Output various music. Note that music includes all concepts related to sound, such as musical sounds, stuttering, voice, and onomatopoeia.

演出操作装置208は、遊技者の押下操作を受け付けるボタンと、遊技者の回転操作を受け付ける回転操作部(例えば、ジョグダイヤル)と、で構成され、パチンコ機100の幅方向略中央位置であって、かつ、透過板110よりも下方位置に設けられている。演出操作装置208は、演出表示装置201に表示される画像等に合わせて有効化され、操作有効期間内に遊技者の操作を受け付けると、当該操作に応じて、様々な演出が実行される。   The effect operation device 208 includes a button that accepts a player's pressing operation and a rotation operation unit (for example, a jog dial) that accepts a player's rotation operation, and is at a substantially central position in the width direction of the pachinko machine 100. In addition, it is provided at a position below the transmission plate 110. The effect operation device 208 is activated according to an image displayed on the effect display device 201, and when an operation of the player is received within the operation effective period, various effects are executed according to the operation.

また、演出操作装置208の後方には、パチンコ機100から払い出される賞球や、遊技球貸出装置から貸し出される遊技球が導かれる上皿132が設けられ、上皿132の下方に下皿134が設けられている。パチンコ機100では、上皿132が遊技球で一杯になると、遊技球が下皿134に導かれることとなる。また、下皿134の底面には、下皿134から遊技球を排出するための球抜き孔(不図示)が形成されている。球抜き孔は、通常、開閉板(不図示)によって閉じられているが、球抜きつまみ134aを図中左右方向にスライドさせることにより、当該球抜きつまみ134aと一体となって開閉板がスライドし、球抜き孔から下皿134の下方に遊技球を排出することが可能となっている。   Further, behind the effect operation device 208, an upper plate 132 to which a prize ball paid out from the pachinko machine 100 and a game ball lent out from the game ball lending device are guided is provided, and a lower plate 134 is provided below the upper plate 132. Is provided. In the pachinko machine 100, when the upper plate 132 is filled with game balls, the game balls are guided to the lower plate 134. In addition, a ball hole (not shown) for discharging game balls from the lower plate 134 is formed on the bottom surface of the lower plate 134. The ball release hole is normally closed by an opening / closing plate (not shown), but by sliding the ball removal knob 134a in the left-right direction in the figure, the opening / closing plate slides integrally with the ball removal knob 134a. The game ball can be discharged from the ball release hole to the lower side of the lower plate 134.

遊技盤108には、遊技領域116の外方であって、かつ、遊技者が視認可能な位置に、遊技に係る種々の状況を表示するための装置として、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170及び右打ち報知表示器172が設けられている。   On the game board 108, a first special symbol display 160, a second display device 160, and the like are used as devices for displaying various situations relating to the game at positions outside the game area 116 and visible to the player. 2 a special symbol display 162, a first special symbol hold display 164, a second special symbol hold display 166, a normal symbol display 168, a normal symbol hold display 170, and a right-handed notification display 172 are provided.

図3は、本実施形態のパチンコ機100の機能ブロック図である。主制御部300は、遊技の進行を制御し、メインCPU300aと、メインROM300bと、メインRAM300cと、を備えている。メインCPU300aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM300bに格納されたプログラムを読み出して演算処理を行うとともに、各装置や表示器を直接制御したり、あるいは演算処理の結果に応じて他の制御部に主制御部300で生成したコマンドを送信したりすることで、遊技の進行に係る制御処理を実行する。メインRAM300cは、メインCPU300aの演算処理時におけるデータのワークエリアとして機能する。   FIG. 3 is a functional block diagram of the pachinko machine 100 of the present embodiment. The main control unit 300 controls the progress of the game, and includes a main CPU 300a, a main ROM 300b, and a main RAM 300c. The main CPU 300a reads out a program stored in the main ROM 300b based on an input signal from each detection switch or timer, performs arithmetic processing, directly controls each device or display, or outputs the result of the arithmetic processing. In response, the control process related to the progress of the game is executed by transmitting the command generated by the main control unit 300 to another control unit. The main RAM 300c functions as a data work area during the arithmetic processing of the main CPU 300a.

主制御部300には、一般入賞口118に遊技球が入球したことを検出する一般入賞口検出スイッチ118sと、第1始動口120に遊技球が入球したことを検出する第1始動口検出スイッチ120sと、第2始動口122に遊技球が入球したことを検出する第2始動口検出スイッチ122sと、ゲート124を遊技球が通過したことを検出するゲート検出スイッチ124sと、大入賞口128に遊技球が入球したことを検出する大入賞口検出スイッチ128sと、が接続されており、各検出スイッチから出力される検出信号が主制御部300に入力されるよう構成されている。   The main control unit 300 includes a general winning port detection switch 118s that detects that a game ball has entered the general winning port 118, and a first start port that detects that a game ball has entered the first start port 120. A detection switch 120s, a second start port detection switch 122s that detects that a game ball has entered the second start port 122, a gate detection switch 124s that detects that a game ball has passed through the gate 124, and a grand prize A prize winning port detection switch 128s for detecting that a game ball has entered the mouth 128 is connected, and a detection signal output from each detection switch is input to the main control unit 300. .

また、主制御部300には、第2始動口122の可動片122bを作動する普通電動役物ソレノイド122cと、大入賞口128を開閉する開閉扉128bを作動する大入賞口ソレノイド128cと、が接続されており、主制御部300によって、第2始動口122及び大入賞口128の開閉制御が実行されるよう構成されている。   Further, the main control unit 300 includes a normal electric accessory solenoid 122c that operates the movable piece 122b of the second start port 122, and a large winning opening solenoid 128c that operates the opening and closing door 128b that opens and closes the large winning opening 128. The main control unit 300 is configured to perform opening / closing control of the second start port 122 and the special prize opening 128.

また、主制御部300には、第1特別図柄表示器160と、第2特別図柄表示器162と、第1特別図柄保留表示器164と、第2特別図柄保留表示器166と、普通図柄表示器168と、普通図柄保留表示器170と、右打ち報知表示器172と、が接続されており、主制御部300によって、これら各表示器の表示制御が実行される。   The main control unit 300 also includes a first special symbol display 160, a second special symbol display 162, a first special symbol hold indicator 164, a second special symbol hold indicator 166, and a normal symbol display. A display 168, a normal symbol hold display 170, and a right-handed notification display 172 are connected, and the main control unit 300 executes display control of each display.

本実施形態のパチンコ機100では、主に第1始動口120又は第2始動口122への遊技球の入球によって開始される特別遊技と、ゲート124を遊技球が通過することによって開始される普通遊技と、に遊技の種別が大別される。そして、主制御部300のメインROM300bには、特別遊技及び普通遊技を進行するための種々のプログラムや、各種の遊技に必要なデータ、テーブルが記憶されている。   In the pachinko machine 100 according to the present embodiment, the game is started mainly by a special game started by entering a game ball into the first start port 120 or the second start port 122 and when the game ball passes through the gate 124. The types of games are roughly divided into ordinary games. The main ROM 300b of the main control unit 300 stores various programs for proceeding with special games and normal games, data necessary for various games, and tables.

更に、主制御部300には、上記メインCPU300aと、メインROM300bと、メインRAM300c以外にも、乱数発生器430aやサンプリング回路430bが実装されており、乱数発生器430aは、大役遊技判定用にハードウェア乱数(例えば 10進数表記で0〜65535)を発生させる。乱数発生器430aにより発生された乱数は、サンプリング回路430bを通じてメインCPU300aに入力される。メインCPU300aは、上記第1始動口検出スイッチ120sもしくは第2始動口検出スイッチ122sが遊技球を検出すると、上記サンプリング回路430bを通じて乱数発生器430aから乱数を取得し、この取得した乱数に基づいて特別図柄の当否に係る抽選を実行する。また、ゲート検出スイッチ124sが遊技球を検出すると、上記サンプリング回路430bを通じて乱数発生器430aから乱数を取得し、この取得した乱数に基づいて普通図柄の当否に係る抽選を実行する。そして、これら抽選の結果に基づいて、普通電動役物ソレノイド122cに信号を出力し可動片122bを作動させる制御、大入賞口ソレノイド128cに信号を出力し開閉扉128bを作動させる制御等、遊技の進行に係る制御を実行する。   Further, in addition to the main CPU 300a, the main ROM 300b, and the main RAM 300c, the main control unit 300 is also equipped with a random number generator 430a and a sampling circuit 430b. The random number generator 430a is a hardware for determining a big game. A wear random number (for example, 0 to 65535 in decimal notation) is generated. The random number generated by the random number generator 430a is input to the main CPU 300a through the sampling circuit 430b. When the first start port detection switch 120s or the second start port detection switch 122s detects the game ball, the main CPU 300a acquires a random number from the random number generator 430a through the sampling circuit 430b, and specially selects the special random number based on the acquired random number. A lottery related to the success or failure of the symbol is executed. When the gate detection switch 124s detects a game ball, the random number is acquired from the random number generator 430a through the sampling circuit 430b, and a lottery for determining whether or not the normal symbol is true is executed based on the acquired random number. Based on the results of these lotteries, the control of outputting a signal to the ordinary electric accessory solenoid 122c and operating the movable piece 122b, the control of outputting the signal to the big prize opening solenoid 128c and operating the open / close door 128b, etc. Control the progress.

また、主制御部300には、払出・発射制御部310及び副制御部330が接続されている。パチンコ機100は、それぞれ独立した制御基板として、主制御部300と、払出・発射制御部310と、副制御部330と、を有しており、副制御部330は、主制御部300から副制御部330への一方向にのみ通信可能な態様で主制御部300と接続されている。なお、各基板には、不図示の電源基板が接続されており、電源基板を介して商用電源から各基板に電力供給が実行されている。   The main control unit 300 is connected to a payout / launch control unit 310 and a sub control unit 330. The pachinko machine 100 includes a main control unit 300, a dispensing / launch control unit 310, and a sub control unit 330 as independent control boards. The sub control unit 330 is connected to the sub control unit 330 from the main control unit 300. The main controller 300 is connected to the controller 330 in a manner that allows communication in only one direction. Note that a power supply board (not shown) is connected to each board, and power is supplied from the commercial power supply to each board via the power supply board.

払出・発射制御部310は、遊技球を発射させるための制御及び賞球を払い出すための制御を行う。払出・発射制御部310も、主制御部300と略同様に、CPU、ROM、RAMを備えており、主制御部300に対して双方向に通信可能に接続されている。払出・発射制御部310には、遊技情報出力端子板312が接続されており、主制御部300から出力される遊技進行上の種々の情報が、払出・発射制御部310及び遊技情報出力端子板312を介して、遊技店のホールコンピュータ等に出力されることとなる。   The payout / launch control unit 310 performs control for launching a game ball and control for paying out a prize ball. As with the main control unit 300, the payout / launch control unit 310 also includes a CPU, a ROM, and a RAM, and is connected to the main control unit 300 so as to be capable of bidirectional communication. A game information output terminal board 312 is connected to the payout / launch control section 310, and various information on the progress of the game output from the main control section 300 is sent to the payout / launch control section 310 and the game information output terminal board. Through 312, the data is output to a hall computer or the like of a game store.

また、払出・発射制御部310には、貯留部に貯留された遊技球を賞球として遊技者に払い出すための払出モータ314が接続されている。払出・発射制御部310は、主制御部300から送信された払出個数指定コマンドに基づいて払出モータ314を制御して所定の賞球を遊技者に払い出すように制御する。このとき、パチンコ機100では、払い出された遊技球数が払出球計数スイッチ316sによって検出され、払い出すべき賞球が遊技者に払い出されたかが把握されるように構成されている。   Further, the payout / launch control unit 310 is connected to a payout motor 314 for paying out a game ball stored in the storage unit as a prize ball to the player. The payout / launch control unit 310 controls the payout motor 314 based on the payout number designation command transmitted from the main control unit 300 so as to pay out a predetermined prize ball to the player. At this time, the pachinko machine 100 is configured such that the number of game balls that have been paid out is detected by the payout ball counting switch 316s, and it is understood whether or not the prize ball to be paid out has been paid out to the player.

また、払出・発射制御部310には、下皿134の満タン状態を検出する皿満タン検出スイッチ318sが接続されている。皿満タン検出スイッチ318sは、賞球として払い出される遊技球を下皿134に導く通路に設けられており、当該通路を遊技球が通過するたびに、遊技球検出信号を払出・発射制御部310に出力するように構成されている。   In addition, a dish full tank detection switch 318 s that detects a full tank state of the lower dish 134 is connected to the dispensing / launch control unit 310. The dish full tank detection switch 318s is provided in a path for guiding game balls to be paid out as prize balls to the lower dish 134, and each time a game ball passes through the path, a game ball detection signal is discharged / launched control unit 310. It is configured to output to.

そして、皿満タン検出スイッチ318sは、下皿134に所定量以上の遊技球が貯留された状態である満タン状態になると、下皿134に向かう通路内に遊技球が滞留することで、払出・発射制御部310に向けて遊技球検出信号を連続的に出力する。払出・発射制御部310は、遊技球検出信号が所定時間連続して入力された場合に、下皿134が満タン状態であると判断し、皿満タンコマンドを主制御部300に送信する。払出・発射制御部310は、皿満タンコマンドを送信した後、遊技球検出信号の連続入力が途絶えた場合には、満タン状態が解除されたと判断し、皿満タン解除コマンドを主制御部300に送信する。   When the full tray state is reached, in which the predetermined amount or more of the game balls are stored in the lower tray 134, the tray full tank detection switch 318s is paid out by the game balls remaining in the passage toward the lower tray 134. The game ball detection signal is continuously output to the launch control unit 310. When the game ball detection signal is continuously input for a predetermined time, the payout / launch control unit 310 determines that the lower plate 134 is full and transmits a full plate command to the main control unit 300. The payout / launch control unit 310 determines that the full tank state has been released when the continuous input of the game ball detection signal is interrupted after transmitting the full dish command, and sends the full dish release command to the main control unit. To 300.

また、払出・発射制御部310には、遊技球の発射制御を行う払出・発射制御回路320が設けられている。払出・発射制御部310には、操作ハンドル112に設けられ、当該操作ハンドル112に遊技者が触れたことを検出するタッチセンサ112sと、操作ハンドル112の操作角度を検出する操作ボリューム112aと、が接続されている。そして、タッチセンサ112s及び操作ボリューム112aから信号が入力されると、払出・発射制御回路320において、遊技球発射装置に設けられた発射用ソレノイド112cを通電して遊技球を発射させる制御が実行される。   In addition, the payout / launch control unit 310 is provided with a payout / launch control circuit 320 that controls the launch of the game ball. The payout / launch control unit 310 includes a touch sensor 112s that is provided on the operation handle 112 and detects that the player has touched the operation handle 112, and an operation volume 112a that detects an operation angle of the operation handle 112. It is connected. When a signal is input from the touch sensor 112s and the operation volume 112a, the payout / launch control circuit 320 executes control to energize the launch solenoid 112c provided in the game ball launch device to launch the game ball. The

副制御部330は、主に遊技中や待機中などの各演出を制御し、図3及び図4に示すように、サブCPU330a1及びVDP(Video Display Processor)330a2によって構成される演出用制御チップ330aと、サブROM330bと、サブRAM330cと、を備えている。また、副制御部330には、演出装置200が接続されていると共に、演出操作装置208として、遊技者の操作を検出する押下検出スイッチ2081s及び回転検出スイッチ2082sが接続されている。押下検出スイッチ2081sは、遊技者が演出操作装置208のボタンを押下操作した場合に、遊技者の押下操作を検出し、回転検出スイッチ2082sは、遊技者が演出操作装置208の回転操作部を回転操作した場合に、遊技者の回転操作を検出する。   The sub-control unit 330 mainly controls each effect such as playing or waiting, and as shown in FIGS. 3 and 4, an effect control chip 330a configured by a sub CPU 330a1 and a VDP (Video Display Processor) 330a2. And a sub-ROM 330b and a sub-RAM 330c. In addition, the sub-control unit 330 is connected to the effect device 200, and as the effect operation device 208, a press detection switch 2081s and a rotation detection switch 2082s for detecting the player's operation are connected. The press detection switch 2081s detects the player's press operation when the player presses the button of the effect operation device 208, and the rotation detection switch 2082s rotates the rotation operation unit of the effect operation device 208. When operated, the player's rotation operation is detected.

サブROM330bは、詳しくは図4に示す制御ROM654、画像・音声ROM611などにより構成されており、演出プログラムP1、乱数種生成プログラムP2、乱数生成プログラムP3、タスク管理プログラムP4、乱数取得ドライバP5、デバッグ情報取得ドライバP6などの各種プログラムや、演出の内容を決定するための複数の演出抽選テーブルなどの演出データが格納されている。サブCPU330a1は、これらサブROM330bに格納されたプログラムを読み出して演算処理を行うことにより、演出制御手段、乱数種生成手段、乱数生成手段、タスク管理手段として機能する。また、サブRAM330cは、詳しくは図4に示すCPURAM602、内蔵eDRAM604及びバックアップSRAM655などにより構成されており、サブCPU330a1の演算処理時におけるデータのワークエリアとして機能する。   The sub-ROM 330b includes a control ROM 654, an image / audio ROM 611, and the like shown in FIG. 4 in detail. The production program P1, random number seed generation program P2, random number generation program P3, task management program P4, random number acquisition driver P5, debug Various programs such as the information acquisition driver P6 and production data such as a plurality of production lottery tables for determining the contents of the production are stored. The sub CPU 330a1 functions as an effect control unit, a random number generation unit, a random number generation unit, and a task management unit by reading out the program stored in the sub ROM 330b and performing arithmetic processing. Further, the sub RAM 330c includes a CPU RAM 602, a built-in eDRAM 604, a backup SRAM 655, and the like shown in FIG. 4 in detail, and functions as a data work area when the sub CPU 330a1 performs arithmetic processing.

演出制御手段は、演出プログラムP1がサブCPU330a1により読み出し、実行されることによって機能する手段であり、実行する演出を乱数に基づいて決定する演出抽選処理、演出表示装置201に画像を表示させる制御である画像表示処理、演出役物装置202を駆動させる駆動制御処理、演出照明装置204を点灯させる点灯制御処理、楽曲出力装置206から楽曲を出力させる楽曲出力制御処理等の演出に係る制御を実行する。演出制御手段は、これらの演出処理を、主制御部300から送信されたコマンドやタイマからの入力信号、演出操作装置208からの入力信号などの外部信号に基づいて実行する。なお、この外部信号を生成するタイマとしては、ウォッチ・ドッグ・タイマなどがある。   The effect control means is a means that functions when the effect program P1 is read and executed by the sub CPU 330a1, and is an effect lottery process that determines an effect to be executed based on a random number, and a control that causes the effect display device 201 to display an image. Control related to effects such as a certain image display process, a drive control process for driving the effect actor device 202, a lighting control process for lighting the effect lighting device 204, and a music output control process for outputting music from the music output device 206 is executed. . The effect control means executes these effect processes based on an external signal such as a command transmitted from the main control unit 300, an input signal from the timer, or an input signal from the effect operating device 208. As a timer for generating the external signal, there is a watch dog timer or the like.

乱数種生成手段は、乱数種生成プログラムP2がサブCPU330a1により読み出し、実行されることによって機能する手段であり、上記演出抽選処理にて使用されるソフトウェア乱数(擬似乱数)を演算する際の基となる乱数種(以下、シード値ともいう)を生成する。   The random number seed generation means is a means that functions when the random number seed generation program P2 is read and executed by the sub CPU 330a1, and is based on a software random number (pseudo random number) used in the effect lottery process. A random number seed (hereinafter also referred to as a seed value) is generated.

乱数生成手段は、乱数生成プログラムP3がサブCPU330a1により読み出し、実行されることによって機能する手段であり、所定の乱数生成アルゴリズムに基づいて演算により乱数を生成する乱数生成処理を実行する。副制御部330では、ハードウェア乱数を用いて抽選を行う主制御部300とは異なり、乱数生成アルゴリズムに基づいた演算により生成されるソフトウェア乱数を使用する。   The random number generation means functions when the random number generation program P3 is read and executed by the sub CPU 330a1 and executes random number generation processing for generating random numbers by calculation based on a predetermined random number generation algorithm. Unlike the main control unit 300 that performs lottery using hardware random numbers, the sub-control unit 330 uses software random numbers generated by computation based on a random number generation algorithm.

タスク管理手段は、タスク管理プログラムP4がサブCPU330a1により読み出し、実行されることによって機能する手段であり、サブCPU330a1が実行する制御処理に係るタスクの優先度を設定する。なお、ここで、タスクとは、サブCPU330a1が実行することのできる処理の単位であり、プログラムを実行する際の処理(以下、プロセスともいう)を細分化した処理単位である。タスク管理手段は、間隔の短い所定時間毎(本実施の形態では30fps(33.33ms)のサイクル)に優先度の設定を更新すると共に、サブCPU330a1は、上記所定時間内において実行可能なタスクを優先度に従って逐次処理する。上記処理が繰り返し実行されることによって、遊技者には複数のプロセスが同時に実行されているように見える。   The task management unit is a unit that functions when the task management program P4 is read and executed by the sub CPU 330a1, and sets the priority of the task related to the control processing executed by the sub CPU 330a1. Here, a task is a unit of processing that can be executed by the sub CPU 330a1, and is a processing unit obtained by subdividing processing (hereinafter also referred to as a process) when executing a program. The task management means updates the priority setting every predetermined time with a short interval (a cycle of 30 fps (33.33 ms) in the present embodiment), and the sub CPU 330a1 executes tasks that can be executed within the predetermined time. Process sequentially according to priority. By repeatedly executing the above processing, it seems to the player that a plurality of processes are being executed simultaneously.

<副制御部の詳細構成>
ついで、上記副制御部330の詳細構成について図4及び図5に基づいて説明をする。図4に示すように、演出用制御チップ330aは、副制御部330の制御主体を構成するサブCPU330a1、およびVDP330a2を備えており、CPUをVDPに取り込む形で一体のハードウェアLSIによって構成されている。
<Detailed configuration of sub-control unit>
Next, the detailed configuration of the sub-control unit 330 will be described with reference to FIGS. As shown in FIG. 4, the production control chip 330 a includes a sub CPU 330 a 1 and a VDP 330 a 2 that constitute a control subject of the sub control unit 330, and is configured by an integrated hardware LSI so as to incorporate the CPU into the VDP. Yes.

サブCPU330a1は、CPUコア601、CPUコア601が待機時間なくアクセス可能なCPURAM602、遊技機で一般的な同図左側の周辺部材(651〜656)との入出力を行うためのI/Oポートアレイ603、主にキャッシュメモリなどとして利用される内蔵eDRAM(Embeded DRAM)604、デバッグ時に使用されるハードウェアカウンタであるデバッグカウンタ605を備えている。   The sub CPU 330a1 has an I / O port array for performing input / output with the CPU core 601, the CPU RAM 602 that the CPU core 601 can access without waiting time, and the peripheral members (651 to 656) on the left side of the figure generally used in gaming machines. 603, a built-in eDRAM (Embedded DRAM) 604 mainly used as a cache memory, and a debug counter 605 that is a hardware counter used for debugging.

I/Oポートアレイ603は、主制御部300と主にコマンド入出力を行うための主制御部I/O651(コマンド受信手段)、計時制御に利用されるRTC(Real Time Clock)652、例えば副制御部330の基板上に配置されたDIPスイッチ653、副制御部330のファームウェアの格納などに用いられる副制御部基板上に配置された制御ROM654、必要に応じて副制御部330の状態をバックアップするために用いられるバックアップSRAM655、およびデバッグUART656などと接続され、これら各部との信号入出力に用いられる。DIPスイッチ653は、デバッグ、検証動作などのためのモード設定などに利用される。   The I / O port array 603 includes a main control unit I / O 651 (command receiving means) for mainly performing command input / output with the main control unit 300, an RTC (Real Time Clock) 652 used for timing control, for example, a sub-control DIP switch 653 arranged on the substrate of the control unit 330, control ROM 654 arranged on the sub control unit substrate used for storing firmware of the sub control unit 330, and backup of the state of the sub control unit 330 as necessary Are connected to a backup SRAM 655, a debug UART 656, and the like, which are used for signal input / output with these units. The DIP switch 653 is used for mode setting for debugging and verification operations.

VDP330a2は、演出表示装置201と入出力を行うためのLCDI/F641、およびVRAM642から成る画像制御部640を備える。なお、画像制御部640には、画像レンダリングなどを行う画像処理ハードウェアなどが含まれていてもよい。また、本実施形態のVDP330a2は、例えば遊技機に特化された製品であって、楽曲出力装置206を構成するスピーカに対する音声出力を行うためのサウンドI/F621から成る音声制御部620、演出役物装置202などの可動物の駆動系のモータ、ソレノイドの制御、センサ類の検出信号を取り込むためのASIB I/F631を有する可動物/センサ制御部630を備える。更に、VDP330a2は、演出音声や演出画像の背景やキャラクタのような素材を格納した画像・音声ROM611(CGROM)からデータを読み出すためのCGROMI/F650を備えている。   The VDP 330 a 2 includes an image control unit 640 including an LCD I / F 641 for performing input / output with the effect display device 201 and a VRAM 642. Note that the image control unit 640 may include image processing hardware that performs image rendering and the like. In addition, the VDP 330a2 of the present embodiment is a product specialized for a gaming machine, for example, and includes a sound control unit 620 including a sound I / F 621 for performing sound output to a speaker constituting the music output device 206, A movable object / sensor control unit 630 having an ASIB I / F 631 for taking in a detection signal from a motor, a solenoid of a movable object drive system such as the object device 202, and sensors. Further, the VDP 330a2 includes a CGROM I / F 650 for reading data from an image / sound ROM 611 (CGROM) storing a production sound, a background of the production image, and a material such as a character.

図5は、副制御部330の記憶領域、特にサブCPU330a1がアクセス/管理するメモリアドレス空間の構成の一例を示す図である。なお、図5においては、メモリの高位アドレスを図の下方に、また低位アドレスを図の上方に取っている。図5に示すメモリ配置では、低位アドレスの領域には、メモリマップトI/Oのための記憶領域が並ぶ。即ち、これらメモリマップトI/Oのための領域には、制御ROM654、バックアップSRAM655、外部制御信号I/O606、デバッグUARTI/O656などにサブCPU330a1がアクセスするための領域が含まれる。   FIG. 5 is a diagram illustrating an example of a configuration of a storage area of the sub control unit 330, particularly a memory address space accessed / managed by the sub CPU 330a1. In FIG. 5, the high address of the memory is taken in the lower part of the figure and the low address is taken in the upper part of the figure. In the memory arrangement shown in FIG. 5, storage areas for memory mapped I / O are arranged in the low address area. That is, the area for the memory mapped I / O includes an area for the sub CPU 330a1 to access the control ROM 654, the backup SRAM 655, the external control signal I / O 606, the debug UARTI / O 656, and the like.

図5の構成では、更にその高位側アドレスに、内蔵eDRAM604の領域が配置され、内蔵eDRAM604の高位側のアドレスにVDP330a2のVRAM642の空間がマッピングされている。また、VRAM642の高位側アドレスの空間には、CPUコア601のレジスタに対してメモリマップトI/Oが可能なCPUレジスタI/O607の領域が配置されている。更に、CPUレジスタI/O607よりも上位アドレス側の空間には、CPURAM602の空間がマッピングされている。   In the configuration of FIG. 5, the area of the built-in eDRAM 604 is further arranged at the higher address, and the space of the VRAM 642 of the VDP 330 a 2 is mapped to the higher address of the built-in eDRAM 604. Further, in the space of the high-order address of the VRAM 642, an area of the CPU register I / O 607 capable of memory mapped I / O with respect to the register of the CPU core 601 is arranged. Further, the space of the CPURAM 602 is mapped to the space on the higher address side than the CPU register I / O 607.

より詳しくは、バックアップSRAM655にはバックアップ用のバッテリーが接続されており、電源がOFFになっても記憶したデータを保持することができるようになっている。このため、バックアップSRAM655のアドレス領域内には、電源OFF時にサブRAMの特定領域の内容をバックアップするバックアップ領域6552が設けられている。また、バックアップSRAM655のアドレス領域には、後述の乱数種の生成のための変数として用いられる32ビットのカウンタ値を記憶する補助カウンタ6551が設けられている。この補助カウンタ6551は、乱数種生成時に1回だけ固定幅のインクリメント値が加算される。この固定幅のインクリメント値には任意の素数が使用される。   More specifically, a backup battery is connected to the backup SRAM 655 so that stored data can be held even when the power is turned off. For this reason, a backup area 6552 is provided in the address area of the backup SRAM 655 to back up the contents of a specific area of the sub RAM when the power is turned off. Further, in the address area of the backup SRAM 655, an auxiliary counter 6551 for storing a 32-bit counter value used as a variable for generating a random number seed described later is provided. The auxiliary counter 6551 is incremented by a fixed width increment value only once when generating a random number seed. An arbitrary prime number is used for this fixed width increment value.

また、CPURAM602のアドレス領域内には、乱数に関するデータを保存する乱数用変数領域6021と、プロセスを切り替える際にサブCPU330a1が使用しているレジスタやフラグなどの状態(以下、コンテキストという)などを保存するカーネルスタック領域6022と、が設けられている。また、上記乱数用変数領域6021には、乱数生成時に参照される状態ベクトル、乱数種の値、乱数の発生回数などの乱数に係る情報が記憶される乱数情報記憶領域6021bと、生成された乱数が格納される乱数バッファ6021aと、が設けられている。   Also, in the address area of the CPURAM 602, a random number variable area 6021 for storing data relating to random numbers, and the state (hereinafter referred to as context) of registers and flags used by the sub CPU 330a1 when switching processes are stored. A kernel stack area 6022 is provided. In addition, the random number variable area 6021 stores a random number information storage area 6021b in which information related to random numbers such as a state vector, a random seed value, and the number of random numbers generated is stored. Is stored in the random number buffer 6021a.

なお、上記乱数の発生回数とは、乱数バッファ6021aに乱数が格納された回数ではなく、乱数バッファ6021aから乱数が取り出された回数を意味する。また、乱数バッファ6021aは、乱数が格納された順に読み出される先入先出バッファ(FIFO(First−in First−out)バッファ)であり、瞬間的に多量の乱数が使用されても格納されている乱数が枯渇しないように所定の容量(本実施の形態では512段のバッファ)を備えている。   Note that the number of occurrences of the random number means not the number of times random numbers are stored in the random number buffer 6021a but the number of times random numbers are extracted from the random number buffer 6021a. The random number buffer 6021a is a first-in first-out buffer (FIFO (First-in First-out) buffer) that is read in the order in which random numbers are stored, and is stored even if a large number of random numbers are used instantaneously. Is provided with a predetermined capacity (512-stage buffer in this embodiment).

2.副制御部における乱数制御処理の流れ
ついで、副制御部330における乱数制御に係る処理の流れについて図6に基づいて説明をする。本実施形態において副制御部330では上記ソフトウェア乱数を抽選前に予め生成して乱数バッファ6021aに格納するため、これを主制御部300にて実行すると出玉に係る抽選を予め実行することとなってしまう。従って、本実施形態では、上記ソフトウェア乱数を演出に係る処理を実行する副制御部330にて使用している。以下、この副制御部330に係る乱数処理を中心に説明を行う。まず、演出プログラムP1による乱数の取得の流れについて説明をする。
2. Flow of Random Number Control Processing in Sub Control Unit Next, the flow of processing related to random number control in the sub control unit 330 will be described with reference to FIG. In the present embodiment, the sub-control unit 330 generates the software random number in advance before the lottery and stores it in the random number buffer 6021a. If this is executed by the main control unit 300, the lottery relating to the ball is executed in advance. End up. Therefore, in the present embodiment, the software random number is used in the sub-control unit 330 that executes the process related to the effect. In the following, description will be made focusing on random number processing related to the sub-control unit 330. First, the flow of acquisition of random numbers by the effect program P1 will be described.

演出抽選処理を実行するために演出プログラムP1から乱数の取得要求があると、乱数バッファ6021aに格納されている乱数が演出プログラムP1へと受け渡される。ここで、上記乱数バッファ6021aなどの乱数に係るデータは、上述したようにCPURAM602に全て記憶されており、メモリアドレス空間上においてカーネルが使用するシステム層に位置している。一方で、演出プログラムP1は、OS上にて動作するソフトウェアであるアプリケーションであり、メモリアドレス空間上においてシステム層よりも低位のユーザ層に位置する領域にアクセスを行う。ここで、上記演出プログラムP1がシステム層に位置する乱数用変数領域6021に直接アクセスするようにすると、演出プログラムP1に不具合等があった場合、カーネルが使用するシステム層のデータにまで影響が生じる虞がある。このため、本実施の形態では、上記演出プログラムP1が乱数バッファ6021aから乱数を取得する場合、必ず、乱数取得ドライバP5を介して上記システム層に位置する乱数バッファ6021aから乱数が受け渡されるようになっている。   When there is a random number acquisition request from the effect program P1 to execute the effect lottery process, the random number stored in the random number buffer 6021a is delivered to the effect program P1. Here, the random number data such as the random number buffer 6021a is stored in the CPURAM 602 as described above, and is located in the system layer used by the kernel in the memory address space. On the other hand, the rendering program P1 is an application that is software that runs on the OS, and accesses an area located in a user layer lower than the system layer in the memory address space. Here, if the production program P1 directly accesses the random number variable area 6021 located in the system layer, if the production program P1 has a defect or the like, the system layer data used by the kernel may be affected. There is. Therefore, in the present embodiment, when the rendering program P1 acquires a random number from the random number buffer 6021a, the random number is always transferred from the random number buffer 6021a located in the system layer via the random number acquisition driver P5. It has become.

同様に、デバッグ時に外部コンピュータなどからデバッグ情報の要求があった場合も、デバッグ情報取得ドライバP6を介して乱数種や乱数の発生回数などの情報が乱数情報記憶領域6021bから受け渡されるようになっている。即ち、本実施の形態においては、システム層側にある乱数制御クラスには、演出プログラムP1などのユーザ層側からは直接アクセスすることが禁止されており、上記乱数やデバッグ情報などの乱数に係る情報は、必ず上記の乱数取得ドライバP5、またはデバッグ情報取得ドライバP6のいずれかの乱数用ドライバクラスを経由して取得するようになっている。   Similarly, when there is a request for debug information from an external computer or the like during debugging, information such as the random number seed and the number of random numbers generated is passed from the random number information storage area 6021b via the debug information acquisition driver P6. ing. That is, in the present embodiment, the random number control class on the system layer side is prohibited from being directly accessed from the user layer side such as the rendering program P1, and information related to random numbers such as the random number and debug information is provided. Is always acquired via the random number driver class of either the random number acquisition driver P5 or the debug information acquisition driver P6.

ついで、上記乱数制御クラスにおける乱数の生成の流れについて説明をする。乱数制御クラスでは、乱数の生成にあたり、乱数種生成プログラムP2によって乱数生成の基となる乱数種が生成される。具体的には、乱数種生成プログラムP2は、下式(1)に従って補助カウンタ6551の32ビットカウンタ値(補助カウンタ値)に基づいて乱数種(シード値)を演算する。   Next, the flow of random number generation in the random number control class will be described. In the random number control class, when generating a random number, the random number seed generation program P2 generates a random number seed that is a basis for random number generation. Specifically, the random number seed generation program P2 calculates a random number seed (seed value) based on the 32-bit counter value (auxiliary counter value) of the auxiliary counter 6551 according to the following equation (1).

シード値=(補助カウンタ値XORチェックサム値)XOR
((デバッグカウンタ[bit7:0]<<16)
+(デバッグカウンタ[bit15:8]<<24)) …(1)
Seed value = (auxiliary counter value XOR checksum value) XOR
((Debug counter [bit7: 0] << 16)
+ (Debug counter [bit15: 8] << 24)) (1)

即ち、乱数種生成プログラムP2は、補助カウンタ値とチェックサム値の排他的論理和(XOR)を求め、更に、デバッグカウンタ605のカウンタ値との排他的論理和(XOR)を求めることによって乱数種を演算している。なお、上記チェックサム値は、バックアップ領域6552の特定領域から何らかのチェックサム演算により求めた32ビットのチェックサム値である。   That is, the random number seed generation program P2 obtains an exclusive OR (XOR) of the auxiliary counter value and the checksum value, and further obtains an exclusive OR (XOR) with the counter value of the debug counter 605 to obtain the random number seed. Is calculated. The checksum value is a 32-bit checksum value obtained from a specific area in the backup area 6552 by some checksum calculation.

また、デバッグカウンタ605のカウンタ値は、16ビット長のデータである一方、目的のシード値や補助カウンタ値は32ビット長のデータであるため、デバッグカウンタ605のカウンタ値は上式(1)の2行目と3行目に示すようなビットシフト演算によって32ビットに拡張するよう加工した上で使用する。図7はこのデバッグカウンタ605のカウンタ値の加工処理を示している。   The counter value of the debug counter 605 is 16-bit data, while the target seed value and auxiliary counter value are 32-bit data. Therefore, the counter value of the debug counter 605 is expressed by the above equation (1). Used after processing to be expanded to 32 bits by a bit shift operation as shown in the second and third lines. FIG. 7 shows the processing of the counter value of the debug counter 605.

この加工処理では、図7上段に示すように、デバッグカウンタ605の下位8ビット(0〜7ビット)のデータを取り出して16ビット左シフト演算し32ビット拡張した結果(上式(1)2行目)と、デバッグカウンタ605の上位8ビット(8〜15ビット)のデータを取り出して24ビット左シフト演算し32ビット拡張した結果(上式(1)3行目)を加算して、図7下段のデバッグカウンタ605のカウンタ値とする。   In this processing, as shown in the upper part of FIG. 7, the lower 8 bits (0 to 7 bits) of the debug counter 605 are extracted, 16 bits are left-shifted, and 32 bits are extended (the above equation (1) 2 rows) 7), the upper 8 bits (8 to 15 bits) of the debug counter 605 are taken out, and the result of shifting left 24 bits and extending 32 bits (the above (1), 3rd line) is added, and FIG. The counter value of the lower debug counter 605 is used.

なお、補助カウンタ6551は、バックアップSRAM655に設けられているため、電源がOFFされてもデータが保持されると共に、全RAMクリア時であってもその値が初期化されることはない。従って、RAMクリアされることでシード値が固定されることが防止される。また、上記のようにデバッグカウンタ605のカウンタ値を加工して用いることによってシード値が「0」となることを防止すると共に、ビットシフト演算して32ビット拡張することにより、特にシード値の下位ビットから上位ビットの全てのビットをランダムに攪拌する、特に上位16ビット側の値も漏らさずランダムに攪拌することができるようになっている。   Since the auxiliary counter 6551 is provided in the backup SRAM 655, the data is retained even when the power is turned off, and the value is not initialized even when all the RAMs are cleared. Therefore, the seed value is prevented from being fixed by clearing the RAM. Further, by processing and using the counter value of the debug counter 605 as described above, it is possible to prevent the seed value from becoming “0”, and by performing bit shift operation and extending 32 bits, in particular, lower order of the seed value. All bits from the bits to the upper bits can be agitated randomly, and in particular, the values on the higher 16 bits can be agitated randomly without leaking.

乱数種が生成されると、生成された乱数種が乱数情報記憶領域6021bに格納されると共に、補助カウンタ6551の値が更新される。そして、乱数生成プログラムP3は、上記乱数情報記憶領域6021bに格納された乱数種を使用してソフトウェア乱数を演算し、生成した乱数を乱数バッファ6021aに格納する乱数生成処理を実行する。   When the random number seed is generated, the generated random number seed is stored in the random number information storage area 6021b and the value of the auxiliary counter 6551 is updated. Then, the random number generation program P3 calculates a software random number using the random number seed stored in the random number information storage area 6021b, and executes a random number generation process for storing the generated random number in the random number buffer 6021a.

なお、乱数生成処理において、本実施の形態ではメルセンヌ・ツイスタ法(Mersenne twister法)を用いて乱数を発生させている。メルセンヌ・ツイスタ法は、M系列乱数発生アルゴリズムを用いた擬似乱数発生方法である。M系列乱数発生アルゴリズムとは、高次の漸化式によって乱数を発生するアルゴリズムであり、当該式において排他的論理和の演算を行うことを特徴とするものである。また、メルセンヌ・ツイスタ法では、乱数生成プログラムP3が乱数列の次の値を生成するために内部で保持する所定数(本実施の形態では623個)の状態ベクトル(初期値)を備えている必要があり、この状態ベクトルは、上述した乱数情報記憶領域6021bに記憶されている。   In this embodiment, random numbers are generated by using the Mersenne twister method in the present embodiment. The Mersenne Twister method is a pseudo-random number generation method using an M-sequence random number generation algorithm. The M-sequence random number generation algorithm is an algorithm for generating a random number by a higher-order recurrence formula, and is characterized by performing an exclusive OR operation in the formula. Further, in the Mersenne Twister method, the random number generation program P3 has a predetermined number (623 in this embodiment) of state vectors (initial values) held internally to generate the next value of the random number sequence. This state vector is stored in the random number information storage area 6021b described above.

3.乱数の生成タイミング
ついで、上記乱数の生成タイミングについて説明をする。メルセンヌ・ツイスタ法では、乱数周期が非常に長く(219937−1)、また高次元(623次元)に均等分布する乱数列を生成でき、生成した乱数は任意のビット長(8/16/32/64bit)の乱数データとして使用することができる。しかし、その反面、初期化時と624n回目(nは自然数)の乱数の取得時には状態ベクトルのデータを更新する必要があり、処理負荷が一時的に増加するデメリットがある。即ち、メルセンヌ・ツイスタ法では、乱数周期よりも短い所定周期で分割して状態ベクトルの更新を行うようになってはいるものの、乱数生成時に丁度この状態ベクトルの更新の所定周期が到来すると、それによって処理負荷が一時的に増大する。
3. Next, the random number generation timing will be described. In the Mersenne Twister method, it is possible to generate a random number sequence having a very long random number period (2 19937 -1) and evenly distributed in a high dimension (623 dimensions), and the generated random number has an arbitrary bit length (8/16/32). / 64 bit) random number data. However, on the other hand, it is necessary to update the state vector data at the time of initialization and at the time of obtaining the 624n-th random number (n is a natural number), which has a demerit that the processing load temporarily increases. That is, in the Mersenne Twister method, the state vector is updated by being divided at a predetermined cycle shorter than the random number cycle. As a result, the processing load temporarily increases.

このため、本実施の形態では、サブCPU330a1の負荷が高い状態で、上記乱数生成処理の負荷のピークが到来することを防止するため、上述したように乱数を使用前に先行して生成し、乱数バッファ6021aに蓄積すると共に、遊技機の電源投入時及びサブCPU330a1の負荷の低い低負荷時(以下、システム安定時ともいう)に上記乱数を生成及び格納するように構成されている。以下、これら電源投入時及びシステム安定時における乱数生成処理について詳しく説明をする。   For this reason, in the present embodiment, in order to prevent the load peak of the random number generation processing from coming in a state where the load of the sub CPU 330a1 is high, the random number is generated before use as described above, The random number is stored in the random number buffer 6021a, and the random number is generated and stored when the gaming machine is turned on and when the load of the sub CPU 330a1 is low (hereinafter also referred to as system stability). The random number generation process when the power is turned on and when the system is stable will be described in detail below.

<電源投入時における乱数生成処理>
まず、電源投入時の乱数生成処理について図8及び図9に基づいて説明をする。図8に示すように、遊技機の電源がONされると、まず、CPURAM602のカーネルスタック領域6022及び乱数用変数領域6021に対して初期化処理が実行される(図8のS1)。この初期化処理では、乱数用変数領域6021が初期化されるため、乱数情報記憶領域6021bに記憶されている状態ベクトル及び乱数種、乱数バッファ6021aに格納されている乱数などのデータが初期化される。
<Random number generation processing at power-on>
First, random number generation processing at power-on will be described with reference to FIGS. As shown in FIG. 8, when the power of the gaming machine is turned on, first, initialization processing is executed for the kernel stack area 6022 and random number variable area 6021 of the CPURAM 602 (S1 in FIG. 8). In this initialization process, since the random number variable area 6021 is initialized, data such as the state vector and random number seed stored in the random number information storage area 6021b and the random number stored in the random number buffer 6021a are initialized. The

上記初期化処理が実行されると、次に、乱数種生成プログラムP2が実行されて乱数種が生成され、この生成された乱数種が乱数情報記憶領域6021bに格納される(S2)。乱数情報記憶領域6021bに新たな乱数種が格納されると、乱数生成プログラムP3が実行されて、この新たな乱数種に基づいて乱数生成が実行される(S3)。   After the initialization process is executed, the random number seed generation program P2 is executed to generate a random number seed, and the generated random number seed is stored in the random number information storage area 6021b (S2). When a new random number seed is stored in the random number information storage area 6021b, the random number generation program P3 is executed, and random number generation is executed based on the new random number seed (S3).

上述したメルセンヌ・ツイスタ法により乱数生成を実行するに際し、電源投入時は、状態ベクトルのデータが初期化されているため、乱数種生成プログラムP2(図6)はこの状態ベクトルのデータを更新して乱数情報記憶領域6021bに記憶させる。ついで、乱数生成プログラムP3は、生成する乱数値の数を決定し、上記新たな乱数種及び状態ベクトルに基づいて所望の数の乱数値を生成する。   When executing random number generation by the Mersenne Twister method described above, since the state vector data is initialized when the power is turned on, the random number seed generation program P2 (FIG. 6) updates the state vector data. It is stored in the random number information storage area 6021b. Next, the random number generation program P3 determines the number of random values to be generated, and generates a desired number of random values based on the new random number seed and state vector.

ここで、本実施の形態では、メルセンヌ・ツイスタ法により32ビット長の乱数値が生成される。一方で、乱数バッファ6021aには、乱数値は16ビット長のデータとして格納される。従って、図9に示すように、メルセンヌ・ツイスタ法によって生成された32ビット長の乱数値は、上位16ビットの値と、下位16ビットの値とが別々の乱数として乱数バッファ6021aに格納される。   Here, in the present embodiment, a 32-bit random number value is generated by the Mersenne Twister method. On the other hand, the random number value is stored as 16-bit data in the random number buffer 6021a. Therefore, as shown in FIG. 9, the 32-bit long random value generated by the Mersenne Twister method is stored in the random number buffer 6021a as a higher random number of 16 bits and a lower 16-bit value as separate random numbers. .

上述したように乱数バッファ6021aは、512段のFIFO構造のリングバッファにより構成されており、電源投入時には、この512段の乱数バッファ6021aの全てに乱数が格納される。従って、乱数生成プログラムP3は、メルセンヌ・ツイスタ法によって512/2=256個の32ビット長の乱数を生成し、生成した256個の32ビット長の乱数を、生成した乱数の順に上位16ビット、下位16ビットの順序で乱数バッファ6021aに格納して行く(S4)。   As described above, the random number buffer 6021a is composed of a 512-stage FIFO structure ring buffer, and when power is turned on, random numbers are stored in all of the 512-stage random number buffers 6021a. Accordingly, the random number generation program P3 generates 512/2 = 256 32-bit random numbers by the Mersenne Twister method, and generates the generated 256 32-bit random numbers in the order of the generated random numbers. The lower 16 bits are stored in the random number buffer 6021a (S4).

そして、512段の乱数バッファ6021aの全てに乱数が格納されると(S5のYes)、乱数生成処理を終了し、乱数バッファ6021aに空きがある場合には(S5のNo)、その空きが無くなるまで乱数を生成する。このように、本実施の形態では、電源投入時に乱数バッファ6021aに空きが無くなるまで乱数を生成するため、遊技が開始する前に最大限、乱数の生成を実行することができ、遊技開始後の乱数生成の負荷を軽減することができる。   When random numbers are stored in all of the 512-stage random number buffers 6021a (Yes in S5), the random number generation process is terminated, and when there is an empty space in the random number buffer 6021a (No in S5), the empty space disappears. Generate random numbers up to. As described above, in this embodiment, random numbers are generated until the random number buffer 6021a becomes empty when the power is turned on, so that random numbers can be generated to the maximum extent before the game starts. The load of random number generation can be reduced.

<システム安定時における乱数生成処理>
ついで、システム安定時における乱数生成処理について図10及び図11に基づいて説明をする。システム起動後、タスク管理プログラムP4は、所定時間毎(本実施の形態では30fps(33.33ms)のサイクル)に実行可能なプロセスのタスクに優先度を設定し、サブCPU330a1は、このタスク管理プログラムP4によって設定された優先度に従って各タスクを逐次処理する。
<Random number generation processing when the system is stable>
Next, random number generation processing when the system is stable will be described with reference to FIGS. After the system is started, the task management program P4 sets priorities for the tasks of the process that can be executed at predetermined time intervals (30 fps (33.33 ms) in this embodiment), and the sub CPU 330a1 Each task is sequentially processed according to the priority set by P4.

以下、演出処理を実行するプロセスA〜C及び乱数生成処理を実行するプロセスDを実行する場合を例にとって、上記サブCPU330a1によるタスク処理を詳しく説明する。なお、プロセスAは、タスクA1及びA2から構成され、プロセスBはタスクB1から構成され、プロセスCはタスクC1から構成され、プロセスDはタスクD1から構成されているものとする。図10(a)に示すように、本実施の形態に係るタスク管理プログラムP4は、発生したタスク(プロセス)の内、実行可能な状態のタスクに対して優先度を設定し、この設定した優先度に従ってタスクの順序を設定する。例えば、第1サイクルT1では実行するタスクの順序をA1→B1→C1→D1のように設定する。   Hereinafter, the task processing by the sub CPU 330a1 will be described in detail by taking as an example the case of executing the processes A to C for executing the rendering process and the process D for executing the random number generation process. Process A is composed of tasks A1 and A2, process B is composed of task B1, process C is composed of task C1, and process D is composed of task D1. As shown in FIG. 10A, the task management program P4 according to the present embodiment sets priorities for tasks that can be executed among the generated tasks (processes), and sets the priorities thus set. Set task order according to degree. For example, in the first cycle T1, the order of tasks to be executed is set as A1-> B1-> C1-> D1.

このように優先度が設定されると、サブCPU330a1は、上記第1サイクルT1内において、タスク管理プログラムP4によって設定された優先度に沿って、各タスクを逐次処理して行く。しかしながら、図10(b)に示すように、第1サイクルT1では、単一サイクルに対して実行可能なタスクの量が多いため、タスクC1を実行した時点にて第1サイクルT1が終了してしまう。このように、当該サイクル内において優先度の低いタスクの処理ができなかった場合、処理することができなかったタスク(第1サイクルT1においてはタスクD1)については処理が持ち越され、タスク管理プログラムP4は、次のサイクル(第2サイクルT2)の開始に際して再度、優先度付けを行う。   When the priority is set in this way, the sub CPU 330a1 sequentially processes each task according to the priority set by the task management program P4 in the first cycle T1. However, as shown in FIG. 10B, in the first cycle T1, the amount of tasks that can be executed for a single cycle is large. Therefore, when the task C1 is executed, the first cycle T1 ends. End up. As described above, when a task with a low priority cannot be processed in the cycle, the task that has not been processed (task D1 in the first cycle T1) is carried over, and the task management program P4 Performs the prioritization again at the start of the next cycle (second cycle T2).

第1サイクルT1にてプロセスB及びCが終了し、また、タスクA1が実行されたことにより、第2サイクルT2においてはプロセスAのタスクA2が実行可能となる。このため、タスク管理プログラムP4は、上記タスクA2及び未実行のタスクD1に対して優先度を設定し、第2サイクルT2にて実行するタスクの順序をA2→D1とする。第2サイクルT2において、サブCPU330a1は、この設定された優先度に従ってタスクA2及びD1を逐次処理する。第2サイクルT2では、乱数生成処理であるタスクD1よりも優先度の高いタスクがタスクA2のみしかないため、図10(b)に示すようにタスクA2が実行されたのち第2サイクルT2中にて上記タスクD1も実行することができる。   Since the processes B and C are completed in the first cycle T1 and the task A1 is executed, the task A2 of the process A can be executed in the second cycle T2. Therefore, the task management program P4 sets priorities for the task A2 and the unexecuted task D1, and sets the order of tasks to be executed in the second cycle T2 from A2 to D1. In the second cycle T2, the sub CPU 330a1 sequentially processes the tasks A2 and D1 according to the set priority. In the second cycle T2, only the task A2 has a higher priority than the task D1 that is the random number generation process. Therefore, as shown in FIG. 10B, after the task A2 is executed, The task D1 can also be executed.

具体的には、図11に示すように、タスクD1が起動されると、乱数生成プログラムP3が呼び出され、乱数生成プログラムP3は、まず、状態ベクトルの更新が必要か否かを確認する(図11のS10)。即ち、今回の乱数生成処理が前回の状態ベクトルの更新から624n回目の乱数生成にあたるか否かを判断し、624n回目の乱数生成の場合は(S10のYes)、乱数情報記憶領域6021bに格納されている状態ベクトルの値を更新する(S15)。更に、状態ベクトルの更新が必要ない場合(S10のNo)は、乱数バッファ6021aがフル(Full)、即ち、乱数バッファ6021aが満杯であるか否かを判定する(S11)。ここで、16ビット乱数を格納できる空き容量がない状態である場合(S11のYes)は、乱数生成プログラムP3を実行するタスクD1を終了する。   Specifically, as shown in FIG. 11, when the task D1 is activated, the random number generation program P3 is called, and the random number generation program P3 first checks whether or not the state vector needs to be updated (FIG. 11). 11 S10). That is, it is determined whether or not the current random number generation process corresponds to the 624n-th random number generation from the previous update of the state vector. In the case of the 624n-th random number generation (Yes in S10), the random number information is stored in the random number information storage area 6021b. The value of the current state vector is updated (S15). Further, when it is not necessary to update the state vector (No in S10), it is determined whether or not the random number buffer 6021a is full (ie, the random number buffer 6021a is full) (S11). Here, when there is no free space that can store a 16-bit random number (Yes in S11), the task D1 that executes the random number generation program P3 is terminated.

一方、16ビット乱数を格納できる空き容量が存在する場合(S11のNo)は、乱数生成プログラムP3が生成すべき乱数の発生個数を決定する(S12)。この図11のS12における乱数の生成個数(N)の決定処理は、後で図12を参照して詳細に説明する。   On the other hand, when there is a free capacity that can store a 16-bit random number (No in S11), the random number generation program P3 determines the number of generated random numbers (S12). The process of determining the number of generated random numbers (N) in S12 of FIG. 11 will be described in detail later with reference to FIG.

乱数生成アルゴリズムによって生成する乱数の個数が決定(S12)されると、乱数生成プログラムP3は、決定された個数の32ビット乱数をメルセンヌ・ツイスタ法によって生成し(S13)、生成された順番を崩さずに上位16ビット側から乱数バッファ6021aに格納する(S14)。なお、図11は、簡略化のため、ステップS10の位置においてのみ状態ベクトルの更新を確認するよう記述しているが、実際の処理では、複数の乱数をステップS13にて生成する場合、そのそれぞれの乱数の1個の生成の度に状態ベクトルの更新が必要か否かを確認するものとする。   When the number of random numbers generated by the random number generation algorithm is determined (S12), the random number generation program P3 generates the determined number of 32-bit random numbers by the Mersenne Twister method (S13) and breaks the order of generation. Without being stored in the random number buffer 6021a from the upper 16 bits (S14). In FIG. 11, for simplification, it is described that the update of the state vector is confirmed only at the position of step S10. However, in actual processing, when a plurality of random numbers are generated in step S13, It is assumed that it is checked whether or not the state vector needs to be updated every time one random number is generated.

このように、タスク管理プログラムP4は、各サイクル毎に乱数生成処理に係るタスク(例えばタスクD1)を実行可能タスクのウェイティングキュー(待ち行列)に組み込むと共に、上記乱数生成処理に係るタスクが演出処理に係るタスク(例えばタスクA1、A2、B1、C1)より優先度が低くなるように優先度を設定している。より詳しくは、タスク管理プログラムP4は、乱数生成処理に係るタスクの優先度を最も低くするように設定している。従って、図10(b)のサイクルT1のように他のタスクの処理によってサブCPU330a1の負荷が重い状態(高負荷時)では、乱数生成処理に係るタスクは実行されず、少なくとも所定サイクル内に演出処理に係るタスクが全て実行された低負荷時(即ち、システム安定時)に乱数生成処理に係るタスクが実行されるように構成されている。   As described above, the task management program P4 incorporates the task related to the random number generation process (for example, the task D1) into the waiting queue (queue) of the executable task for each cycle, and the task related to the random number generation process performs the rendering process. The priority is set so that the priority is lower than the tasks related to (for example, tasks A1, A2, B1, C1). More specifically, the task management program P4 is set so that the priority of the task related to the random number generation process is the lowest. Therefore, in a state where the load of the sub CPU 330a1 is heavy due to processing of other tasks as in the cycle T1 of FIG. 10B (when the load is high), the task relating to the random number generation processing is not executed, and the rendering is performed at least within a predetermined cycle. The task related to the random number generation process is executed at a low load (that is, when the system is stable) when all the tasks related to the process are executed.

上述したように、本実施の形態に係る遊技機(100)は、乱数に基づいて抽選処理を実行する抽選手段(P1)と、複数の乱数が格納される記憶手段(6021a)と、乱数生成アルゴリズムに基づいて演算により乱数を生成し、生成した乱数を前記記憶手段(6021a)に格納する乱数生成処理を実行して、前記抽選手段(P1)により取得される乱数を予め前記記憶手段(6021a)に格納する乱数生成手段(P3)と、を備え、前記記憶手段(6021a)に格納された乱数は、前記記憶手段(6021a)に格納された順序に従って取得されるように構成されている。   As described above, the gaming machine (100) according to the present embodiment includes a lottery unit (P1) that executes a lottery process based on a random number, a storage unit (6021a) that stores a plurality of random numbers, and a random number generator. A random number is generated by calculation based on an algorithm, and a random number generation process for storing the generated random number in the storage unit (6021a) is executed, and the random number acquired by the lottery unit (P1) is stored in advance in the storage unit (6021a). Random number generation means (P3) stored in the storage means (6021), and the random numbers stored in the storage means (6021a) are obtained according to the order stored in the storage means (6021a).

即ち、本実施の形態に係るパチンコ機100は、乱数バッファ6021aを設け、演出プログラムP1が乱数を使用する前に、先行して乱数生成プログラムP3によって乱数の生成及び蓄積を行う。即ち、乱数バッファ6021aを配置して、乱数生成処理を、乱数の取得ないし実際の乱数使用タイミングとは非同期的に実行するよう構成されている。このような構成により、例えば、内部状態の移行や演出時間、エフェクトの強さなど、様々な状態を決定するために瞬間的に多量の乱数を消費し、当該演出に係る各種演算によりサブCPU330a1が高負荷状態となるユーザ操作を契機に発生する演出の発生時や演出の切り替え時を避けて乱数生成を実行することができ、乱数生成に係る処理負荷を分散することができる。特に、メルセンヌ・ツイスタ法などの高性能な乱数生成アルゴリズムは、比較的、処理負荷が高く、乱数値の生成に一定の処理能力が要求されるが、乱数の生成タイミングをズラすことによって、この乱数生成処理による負荷によって他のデバイスの制御を妨げることを防止し、演出上の不備(コマ落ち、音切れ)などの発生を防止することができる。   That is, the pachinko machine 100 according to the present embodiment is provided with a random number buffer 6021a, and generates and stores random numbers in advance by the random number generation program P3 before the effect program P1 uses the random numbers. In other words, the random number buffer 6021a is arranged, and the random number generation processing is executed asynchronously with the acquisition of random numbers or the actual random number use timing. With such a configuration, for example, a large amount of random numbers are instantaneously consumed to determine various states such as the transition of the internal state, the production time, and the strength of the effect, and the sub CPU 330a1 performs various calculations related to the production. Random number generation can be performed while avoiding the occurrence of an effect that occurs when a user operation enters a high load state or when the effect is switched, and the processing load related to random number generation can be distributed. In particular, high-performance random number generation algorithms such as the Mersenne Twister method have a relatively high processing load and require a certain processing capacity to generate random values. It is possible to prevent the control of other devices from being hindered by the load due to the random number generation process, and to prevent the occurrence of deficiencies in production (frame dropping, sound cuts).

また、記憶手段としての乱数バッファ6021aをFIFOバッファとして構成し、この乱数バッファ6021aにソフトウェア乱数を格納している。ソフトウェア乱数は、生成する時間軸が乱数値のランダム性に影響を及ぼさず、また、乱数が生成された順序に従って使用されることとなるため、アルゴリズムとして補償されている乱数の正当性を担保することができる。   Further, a random number buffer 6021a as a storage unit is configured as a FIFO buffer, and software random numbers are stored in the random number buffer 6021a. Since software random numbers do not affect the randomness of random values, and the random numbers that are generated are used according to the order in which the random numbers are generated, the validity of the random numbers that are compensated as an algorithm is guaranteed. be able to.

また、前記抽選手段は、実行する演出を乱数に基づいて決定する演出抽選処理を実行すると共に、前記決定された演出を演出装置(200)に実行させる演出制御手段(P1)であり、前記乱数生成手段(P3)は、前記演出制御手段によって実行される制御による処理負荷が所定の負荷以下の状態にて、前記乱数生成処理を実行して生成された乱数を前記記憶手段(6021a)に格納している。   The lottery means is an effect control means (P1) for executing an effect lottery process for determining an effect to be executed based on a random number and causing the effect device (200) to execute the determined effect. The generation means (P3) stores the random number generated by executing the random number generation processing in the storage means (6021a) in a state where the processing load by the control executed by the effect control means is not more than a predetermined load. doing.

即ち、乱数生成プログラムP3は、例えば、始動口120,122や大入賞口128に遊技球が入球していない時や、遊技者による遊技が実行されていないデモ画面表示時など、サブCPU330a1が低処理負荷状態の際に上記乱数を生成することが出来る。このため、上述した演出の切替時などサブCPU330a1が高負荷状態の際にサブCPU330a1の処理能力を乱数生成のために割くことを回避することができる。   That is, the random number generation program P3 is executed by the sub CPU 330a1 when, for example, a game ball is not entered in the start opening 120, 122 or the big prize opening 128, or when a demonstration screen is displayed when no game is executed by the player. The random number can be generated in a low processing load state. For this reason, when the sub CPU 330a1 is in a high load state, such as when switching the effects described above, it is possible to avoid allocating the processing capability of the sub CPU 330a1 for generating random numbers.

また、パチンコ機100は、制御処理の実行に係るタスクの優先度を設定すると共に、前記乱数生成手段(P3)による前記乱数生成処理に係るタスクの優先度を、前記演出抽選処理にて決定された演出に関する制御処理に係るタスクよりも低く設定するタスク管理手段(P4)を備えている。   Further, the pachinko machine 100 sets the priority of the task related to the execution of the control process, and the priority of the task related to the random number generation process by the random number generation means (P3) is determined in the effect lottery process. The task management means (P4) set lower than the task related to the control process related to the effect is provided.

即ち、タスク管理プログラムP4が、乱数生成処理に係るタスクよりも演出に関する制御処理に係るタスクを低く設定することにより、演出に係るタスクを実行してもなお、乱数生成処理に係るタスクを実行することができる上記低処理負荷状態、即ち、システム安定時に乱数を生成することができる。   That is, the task management program P4 executes the task related to the random number generation process even if the task related to the effect is executed by setting the task related to the effect related to the control process lower than the task related to the random number generation process. The random number can be generated when the processing load is low, that is, when the system is stable.

また、前記乱数生成手段(P3)は、電源投入時に前記乱数生成処理を実行する。即ち、電源投入時に乱数生成処理を実行し、乱数バッファ6021aに乱数を格納することによって、遊技が開始されていない状態にて乱数バッファ6021aに乱数を格納することができ、遊技開始後の乱数生成の負荷を軽減することができる。   The random number generation means (P3) executes the random number generation process when the power is turned on. That is, by executing random number generation processing when power is turned on and storing random numbers in the random number buffer 6021a, random numbers can be stored in the random number buffer 6021a in a state where the game has not started, and random number generation after the game starts Can reduce the load.

4.乱数生成ないし取得処理の細部
以下では、本実施の形態における乱数生成系、特に乱数生成系の処理の細部において採用可能な種々の構成について詳細に説明する。以下でも、乱数生成はメルセンヌ・ツイスタ法によって行うものとする。
4). Details of Random Number Generation or Acquisition Processing Various configurations that can be employed in the details of the processing of the random number generation system according to the present embodiment, particularly the random number generation system, will be described in detail below. In the following, it is assumed that random number generation is performed by the Mersenne Twister method.

<乱数生成および乱数バッファへの格納>
本実施の形態においては、上述のように、乱数生成処理(上記のタスクD1)で呼び出される乱数生成プログラムP3は乱数生成において、32ビット乱数を生成する。一方、ユーザ層(図6)に配置された演出制御手段たる演出プログラムP1が演出制御に必要とする乱数値は16ビット乱数である。
<Random number generation and storage in random number buffer>
In the present embodiment, as described above, the random number generation program P3 called in the random number generation process (the task D1) generates a 32-bit random number in the random number generation. On the other hand, the random number value required for the effect control by the effect program P1 as the effect control means arranged in the user layer (FIG. 6) is a 16-bit random number.

そこで、本実施の形態では、次のような乱数生成手段(乱数生成プログラムP3)によって生成させた乱数を複数の乱数に分割する分割手段を用いる。即ち、演出プログラムP1に出力できる16ビット乱数に対応する16ビットの格納段を例えば512段有する乱数バッファ6021aを配置する(図6)。この乱数バッファ6021aは、乱数生成の処理負荷の分散を考慮して、演出プログラムP1への乱数出力と、乱数生成とを非同期的に行うためのFIFOバッファとして機能させる。そして、図9に示したように、乱数生成プログラムP3に生成させた32ビット乱数1つを上位16ビットと下位16ビットに分割し、乱数バッファ6021aの2つの格納段に格納する。   Therefore, in the present embodiment, a dividing unit that divides a random number generated by the following random number generating unit (random number generating program P3) into a plurality of random numbers is used. That is, the random number buffer 6021a having, for example, 512 stages of 16-bit storage stages corresponding to the 16-bit random numbers that can be output to the effect program P1 is arranged (FIG. 6). This random number buffer 6021a functions as a FIFO buffer for performing random number output to the rendering program P1 and random number generation in consideration of the distribution of the processing load for random number generation. Then, as shown in FIG. 9, one 32-bit random number generated by the random number generation program P3 is divided into upper 16 bits and lower 16 bits and stored in two storage stages of the random number buffer 6021a.

上記のような構成において、もし仮に図11の乱数生成および乱数バッファ(FIFO)への格納を行う時、乱数バッファ6021aに16ビットの格納域が1段しか空いていない場合には、乱数生成プログラムP3を呼び出して32ビット乱数を生成すると、16ビット乱数を1つは乱数バッファ6021aに格納できるが、残りの16ビット乱数は格納できないことになる。特にメルセンヌ・ツイスタ法のように乱数の均等分布を保証するため、予め乱数情報記憶領域6021bに状態ベクトルを格納しているような手法を乱数生成に用いている場合、乱数バッファ6021aに格納できなかった残りの16ビット乱数を捨て去ってしまうことは乱数列を乱すことになり、適切ではない。   In the configuration as described above, if the random number generation and storage in the random number buffer (FIFO) of FIG. 11 are performed and the random number buffer 6021a has only one stage of storage area of 16 bits, the random number generation program When P3 is called to generate a 32-bit random number, one 16-bit random number can be stored in the random number buffer 6021a, but the remaining 16-bit random numbers cannot be stored. In particular, in order to guarantee an even distribution of random numbers, such as the Mersenne Twister method, when a method of storing state vectors in the random number information storage area 6021b in advance is used for random number generation, it cannot be stored in the random number buffer 6021a. Discarding the remaining 16-bit random number will disturb the random number sequence and is not appropriate.

そこで、以下では、図11のS12の詳細な構成、即ち、サブCPU330a1(図3、図4)が乱数生成プログラムP3に生成させる、分割して乱数バッファ6021aの現在の空き容量に格納できるだけの32ビット乱数の生成個数(N)を決定するための詳細な処理の一例を詳細に示している。   Therefore, in the following, the detailed configuration of S12 of FIG. 11, that is, the sub CPU 330a1 (FIGS. 3 and 4) generates the random number generation program P3, and can be divided and stored in the current free capacity of the random number buffer 6021a. An example of detailed processing for determining the number of generated bit random numbers (N) is shown in detail.

図12の処理では、まず、乱数バッファ6021aの空き段数Eを求める(S21)。この空き段数Eは、16ビット乱数を格納するための未使用の格納段が何段あるか、即ち、乱数バッファ6021aの空き容量に相当する値で、例えば以下のような処理によってこの空き段数Eを求めることができる。   In the process of FIG. 12, first, the number E of empty stages in the random number buffer 6021a is obtained (S21). This empty stage number E is the number of unused storage stages for storing 16-bit random numbers, that is, a value corresponding to the empty capacity of the random number buffer 6021a. For example, the empty stage number E is obtained by the following processing. Can be requested.

例えば、制御手段としてのサブCPU330a1は、上記のように乱数バッファ6021aを512段のFIFOバッファとして管理する。一般に、このようなFIFOバッファの入出力制御には、バッファ中の読出しアドレスを保持する読み出しポインタRと、書き込みアドレスを保持する書き込みポインタWが用いられる。この16ビットデータを格納するFIFO構成の乱数バッファ6021aの格納域(格納段)を指示するポインタR、Wは、16ビット幅の格納域のアドレスを指示するポインタとして実装される。また、ポインタR、Wは1ずつインクリメント(またはデクリメント)させた場合、実際のアドレス値は16ビットの格納域1つに相当するオフセット値ずつ増加(減少)される。なお、このようなポインタの扱いは、例えばC言語などの処理系で一般的なものであるが、他の異なる処理系などにおいては、FIFOバッファの読み書きを制御するポインタ(アドレスカウンタ)に関して、上記と異なる演算規約が用いられる場合がある。   For example, the sub CPU 330a1 as the control unit manages the random number buffer 6021a as a 512-stage FIFO buffer as described above. In general, for such input / output control of the FIFO buffer, a read pointer R that holds a read address in the buffer and a write pointer W that holds a write address are used. The pointers R and W for designating the storage area (storage stage) of the FIFO buffer random number buffer 6021a for storing the 16-bit data are implemented as pointers for designating the address of the 16-bit wide storage area. When the pointers R and W are incremented (or decremented) by 1, the actual address value is incremented (decreased) by an offset value corresponding to one 16-bit storage area. Such a pointer is generally handled in a processing system such as C language. However, in other different processing systems, the pointer (address counter) for controlling reading / writing of the FIFO buffer is described above. A different calculation convention may be used.

また、通常、FIFOバッファはいわゆるリングバッファとして使用され、上記のポインタR、Wの値に応じてサブCPU330a1がFIFOバッファとしての乱数バッファ6021aの終端アドレスに対して読み出しまたは書き込みを行った後は、先頭を指すようにリセットされる。そこで、乱数バッファ6021aが512段あって、新しく生成すべき16ビット乱数を格納するための空き段数Eを求める場合には、例えば下式(2)のような演算により、空き段数Eを求めることができる。   Usually, the FIFO buffer is used as a so-called ring buffer. After the sub CPU 330a1 reads or writes the end address of the random number buffer 6021a as the FIFO buffer according to the values of the pointers R and W, Reset to point to the beginning. Therefore, when there are 512 stages of random number buffer 6021a and the number of empty stages E for storing a new 16-bit random number to be generated is obtained, the number of empty stages E is obtained by an operation such as the following equation (2). Can do.

E=(512−W)+(R−1) …(2)   E = (512-W) + (R-1) (2)

ここで、上式(2)中のR、Wは、上記のポインタR、Wの指示している乱数バッファ6021aのスロット(段)位置を擬似的に表現したものであり、例えばその右辺第1項は書き込みポインタWより後に残っている空き段数、右辺第2項は読み出しによって空いた空き段数に相当する。   Here, R and W in the above equation (2) are a pseudo representation of the slot (stage) position of the random number buffer 6021a indicated by the pointers R and W. The term corresponds to the number of empty stages remaining after the write pointer W, and the second term on the right side corresponds to the number of empty stages left after reading.

続いて、図12の処理手順において、上記のようにして求めた空き段数Eを用いて、乱数生成プログラムP3に生成させる32ビット乱数の個数Nを次式(3)によって取得する(S22)。   Subsequently, in the processing procedure of FIG. 12, the number N of 32-bit random numbers to be generated by the random number generation program P3 is obtained by the following equation (3) using the empty stage number E obtained as described above (S22).

N=INT((E+n)/n) − 1 …(3)   N = INT ((E + n) / n) −1 (3)

ここで上式(3)において、INTは整数化(切り捨て)の演算を示す。また、nは、乱数生成プログラムP3に生成させた(32ビットの)乱数を(16ビットの)乱数バッファ6021aに格納するために分割する分割数を示し、本実施の形態では、n=2である。この上式(3)の演算は、切り捨てのために分割数n分だけ予め空き段数Eの数値を増やしてから分割数nで除し、小数点以下を切り捨てた上、1個の32ビット乱数に相当する1を減算するものである。例えば、分割数n=2で、16ビットの乱数バッファ6021aの空き段数E(空き容量)がE=33の時と、E=32の時では、上式(3)によると、いずれの場合も32ビット乱数の生成個数NはN=16となる。なお、ビット幅の小さい乱数に分割して用いるために、乱数生成プログラムP3に生成させる乱数の個数を求める演算手法は、上式(3)に限定されることなく当業者において任意に変更して構わない。   Here, in the above equation (3), INT represents an integer conversion (rounding down) operation. Further, n represents the number of divisions for dividing the (32-bit) random number generated by the random number generation program P3 into the (16-bit) random number buffer 6021a. In this embodiment, n = 2. is there. In the calculation of the above equation (3), the number of empty stages E is increased in advance by the number n of divisions for truncation, and then divided by the number n of divisions, and after the decimal point is rounded down, one 32-bit random number is obtained. The corresponding 1 is subtracted. For example, when the number of divisions n = 2 and the number of empty stages E (free space) of the 16-bit random number buffer 6021a is E = 33 and when E = 32, according to the above equation (3), in either case The number N of 32-bit random numbers generated is N = 16. Note that the calculation method for obtaining the number of random numbers to be generated by the random number generation program P3 for use by dividing into random numbers having a small bit width is not limited to the above equation (3), and can be arbitrarily changed by those skilled in the art. I do not care.

また、図11の乱数生成および乱数バッファ格納処理が、低負荷のシステム安定時に低い優先度で実行されることを考慮して、一度の呼び出しでなるべく所期の個数の32ビット乱数を生成し、16ビットの乱数バッファ6021aに分割、格納する処理を終了できるよう、32ビット乱数の生成個数Nの最大値を制限することが考えられる。例えば、ステップS12で上式(3)で求めた32ビット乱数の生成個数Nが所定の最大値Mを超えないよう制限する。このように、32ビット乱数の生成個数NをMに制限する場合には、例えばMの値は16、32、48…程度とすることが考えられる(上述の図11に関する説明ではM=16)。   Further, in consideration of the fact that the random number generation and random number buffer storage processing of FIG. 11 is executed with a low priority when the system of low load is stable, a desired number of 32-bit random numbers are generated by one call, It is conceivable to limit the maximum value of the number N of 32-bit random numbers generated so that the process of dividing and storing in the 16-bit random number buffer 6021a can be completed. For example, the number of generated 32-bit random numbers N obtained by the above equation (3) in step S12 is limited so as not to exceed a predetermined maximum value M. In this way, when the number N of 32-bit random numbers generated is limited to M, for example, the value of M can be set to about 16, 32, 48... (M = 16 in the description of FIG. 11 above). .

以上のように、図12に示した処理手順によって、乱数生成プログラムP3が生成する32ビット乱数を、演出プログラムP1が必要とする16ビット乱数に分割して乱数バッファ6021aに格納し、乱数バッファ6021aを介して出力することができる。このような乱数の分割手段を用いることにより、効率よく、また容易に乱数ビットパターンを捨てることなく、演出プログラムP1が必要とするサイズの乱数に分割して出力し、演出プログラムP1に利用させることができる。   As described above, the 32-bit random number generated by the random number generation program P3 is divided into 16-bit random numbers required by the rendering program P1 and stored in the random number buffer 6021a by the processing procedure shown in FIG. Can be output via By using such random number dividing means, it is possible to efficiently and easily divide and output random numbers of the size required by the effect program P1 without discarding the random number bit pattern, and make the effect program P1 use it. Can do.

しかも、上記のような乱数の分割手段によれば、乱数バッファ6021aの現在の空き容量に格納できるだけの32ビット乱数の生成個数Nを求めることができ、従って、図12に示した32ビット乱数の生成個数Nの決定処理を図11のS12に適用すれば、図11のS13において、16ビット幅構成の乱数バッファ6021aの空き容量に格納できるだけの生成個数Nの32ビット乱数を乱数生成プログラムP3に生成させることができる。   Moreover, according to the random number dividing means as described above, the number N of 32-bit random numbers that can be stored in the current free space of the random number buffer 6021a can be obtained. Therefore, the 32-bit random number shown in FIG. If the process for determining the generated number N is applied to S12 of FIG. 11, a 32-bit random number of the generated number N that can be stored in the free space of the random number buffer 6021a having a 16-bit width is supplied to the random number generation program P3 in S13 of FIG. Can be generated.

従って、図12に示した32ビット乱数の生成個数Nの決定処理によれば、簡単なポインタ演算や整数演算を行うだけで、乱数バッファ6021aの空き容量に応じて当該の空き容量に分割手段により複数に分割された乱数を格納できるよう、32ビット乱数の生成個数Nを決定することができ、生成した32ビット乱数を分割して得た16ビット乱数を、その一部を捨てたりすることなく、また生成順に、効率よく乱数を必要とする演出制御手段、例えば演出プログラムP1に出力することができる。このため、図12の32ビット乱数の生成個数Nの決定手法によれば、メルセンヌ・ツイスタ法のような乱数生成手法で保証されている乱数の出現確率分布を損うことがない。   Therefore, according to the process of determining the number N of 32-bit random numbers generated shown in FIG. 12, only a simple pointer calculation or integer calculation is performed, and the dividing unit divides the free capacity according to the free capacity of the random number buffer 6021a. The number N of 32-bit random numbers generated can be determined so that a plurality of divided random numbers can be stored, and the 16-bit random numbers obtained by dividing the generated 32-bit random numbers can be stored without discarding a part thereof. In addition, it is possible to output to an effect control means that requires random numbers efficiently, for example, an effect program P1 in the order of generation. For this reason, according to the method for determining the number N of generated 32-bit random numbers in FIG. 12, the appearance probability distribution of random numbers guaranteed by a random number generating method such as the Mersenne Twister method is not impaired.

なお、以上では、上式(3)のような演算によって、乱数バッファ6021aの空き容量に格納できるだけの個数の32ビット乱数を乱数生成プログラムP3に生成させ、これにより、32ビット乱数を分割して得た16ビット乱数を生成順に、効率よく演出プログラムP1の要求に応じて演出プログラムP1に出力させる構成を示した。しかしながら、例えば、上式(3)のような演算を行うことなく32ビット乱数を乱数生成プログラムP3に生成させ、もし32ビット乱数を分割して得た16ビット乱数を全て現状の乱数バッファ6021aの空き容量に格納できない状態が生じた場合に、乱数バッファ6021aに格納できなかった16ビット乱数を格納するための予備バッファを用意しておく構成を採用してもよい。   In the above description, the number of 32-bit random numbers that can be stored in the free space of the random number buffer 6021a is generated by the random number generation program P3 by the calculation of the above equation (3), and thus the 32-bit random numbers are divided. The configuration is shown in which the obtained 16-bit random number is output to the production program P1 efficiently in accordance with the request of the production program P1 in the order of generation. However, for example, the 32-bit random number is generated by the random number generation program P3 without performing the calculation of the above equation (3), and all the 16-bit random numbers obtained by dividing the 32-bit random number are stored in the current random number buffer 6021a. A configuration in which a spare buffer for storing a 16-bit random number that could not be stored in the random number buffer 6021a when a state that cannot be stored in the free space occurs may be employed.

この予備バッファは、適当な段数の16ビットの格納段で構成し、また、当該の予備バッファに16ビット乱数が格納されているか否かを示す予備バッファフラグを設けておく。また、予備バッファに格納されている乱数の数や読み書き位置を管理するには、上記のポインタR、Wと同様の読み出し位置および書き込み位置をそれぞれ指示するポインタなどを用意することが考えられる。このような予備バッファを用いる場合、例えば乱数生成プログラムP3が、乱数バッファ6021aに空きが生じたか否かを監視し、もし予備バッファに格納されている乱数を格納できる大きさの空き(上式(2)などによって計算できる)が生じている場合には、適宜、予備バッファから乱数バッファ6021aに乱数をコピーし、予備バッファをクリアする。このようにして、32ビット乱数を分割して得た16ビット乱数を生成順に、乱数バッファ6021aから順次、出力させることができる。あるいは、乱数バッファ6021aと予備バッファに格納されている乱数の出力順を本来の順序に管理するために、それぞれのバッファの乱数格納アドレスを順番に格納するポインタのリストを用いるようにしてもよい。このようなポインタのリストを用いることによっても、32ビット乱数を分割して得た16ビット乱数を生成順に、順次、乱数バッファ6021aから、または予備バッファから出力させることができる。   This spare buffer is composed of an appropriate number of 16-bit storage stages, and a spare buffer flag indicating whether or not a 16-bit random number is stored in the spare buffer is provided. In order to manage the number of random numbers stored in the spare buffer and the read / write position, it is conceivable to prepare pointers for indicating the read position and write position similar to the pointers R and W, respectively. When such a spare buffer is used, for example, the random number generation program P3 monitors whether or not there is a vacancy in the random number buffer 6021a, and if the vacancy is large enough to store the random number stored in the spare buffer (the above formula ( 2), the random number is appropriately copied from the spare buffer to the random number buffer 6021a, and the spare buffer is cleared. In this way, 16-bit random numbers obtained by dividing 32-bit random numbers can be sequentially output from the random number buffer 6021a in the order of generation. Alternatively, in order to manage the output order of the random numbers stored in the random number buffer 6021a and the spare buffer in the original order, a list of pointers that sequentially store the random number storage addresses of the respective buffers may be used. By using such a list of pointers, 16-bit random numbers obtained by dividing 32-bit random numbers can be sequentially output from the random number buffer 6021a or from the spare buffer in the order of generation.

以上のような制御を行うことによっても、メルセンヌ・ツイスタ法のような乱数生成手法で保証されている乱数の出現確率分布を損なうことなく、32ビット乱数を分割して得た16ビット乱数を生成順に、効率よく順次、演出プログラムP1の要求に応じて出力することができる。なお、以上では、乱数取得ドライバP5を呼び出す乱数の需要側は演出プログラムP1であるものとして説明したが、乱数の需要側の制御系は、演出プログラムP1に限らず、副制御部330のソフトウェアないしハードウェアによって構成される任意の部位であって構わない。   By performing the control as described above, a 16-bit random number obtained by dividing a 32-bit random number is generated without impairing the random number appearance probability guaranteed by a random number generation method such as the Mersenne Twister method. It can be output sequentially and efficiently in response to a request from the production program P1. In the above description, the demand side of the random number that calls the random number acquisition driver P5 has been described as the effect program P1, but the control system on the demand side of the random number is not limited to the effect program P1, and software or sub-control unit 330 It may be an arbitrary part constituted by hardware.

<乱数バッファ枯渇に対する対処>
上述のように、本実施の形態では、FIFO構成の乱数バッファ6021aを用意し、演出プログラムP1の乱数取得とは非同期的に低負荷のシステム安定時に実行される乱数生成プログラムP3(乱数生成手段)によって乱数を生成させ、生成させた乱数を乱数バッファ6021aに格納する乱数生成および乱数バッファ格納処理(図11)を実行する。
<Countermeasures against random buffer exhaustion>
As described above, in the present embodiment, the FIFO-structured random number buffer 6021a is prepared, and the random number generation program P3 (random number generation means) is executed asynchronously with the acquisition of the random number of the rendering program P1 when the system is stable at low load. Then, random number generation is performed, and random number generation and random number buffer storage processing (FIG. 11) for storing the generated random number in the random number buffer 6021a are executed.

また、制御手段としてのサブCPU330a1は、演出プログラムP1(演出制御手段)の要求に応じて、乱数バッファ6021aから乱数の生成順に読み出す、いわばバッファモードによって演出プログラムP1(演出制御手段)に出力する。また、その時、乱数生成プログラムP3に生成させた32ビット乱数を16ビット乱数に分割し、しかも分割した16ビット乱数を捨てることなく、乱数バッファ6021aに格納し、また乱数バッファ6021aを経由して演出プログラムP1(演出制御手段)に出力する。   Further, the sub CPU 330a1 serving as the control means reads out from the random number buffer 6021a in the order of generation of random numbers in response to a request from the effect program P1 (effect control means), and outputs it to the effect program P1 (effect control means) in a so-called buffer mode. At that time, the 32-bit random number generated by the random number generation program P3 is divided into 16-bit random numbers, and the divided 16-bit random numbers are stored in the random number buffer 6021a without being discarded, and are also rendered via the random number buffer 6021a. It outputs to program P1 (production control means).

一方で、演出プログラムP1は、乱数取得ドライバP5を呼び出すことにより、16ビット乱数を1つ要求する(図6)。この時、システム側の乱数制御クラス(図6)は、乱数バッファ6021aから16ビット乱数を1つ取り出して、演出プログラムP1に出力する。なお、この16ビット乱数の出力には、乱数取得ドライバP5から呼び出し側の演出プログラムP1に対して乱数値をリターン値として返す方式や、また、演出プログラムP1が乱数取得ドライバP5に対して指定したアドレス(あるいは大域的に確保された所定アドレス)の出力バッファに格納する方式などのいずれを用いてもよい。   On the other hand, the rendering program P1 requests one 16-bit random number by calling the random number acquisition driver P5 (FIG. 6). At this time, the system-side random number control class (FIG. 6) extracts one 16-bit random number from the random number buffer 6021a and outputs it to the effect program P1. The 16-bit random number is output by a method in which a random number value is returned as a return value from the random number acquisition driver P5 to the calling side production program P1, or the production program P1 designates the random number acquisition driver P5. Any method of storing in an output buffer of an address (or a predetermined address secured globally) may be used.

乱数バッファ6021aは、上記のように16ビット乱数を512個格納できる512段程度のサイズで構成され、演出プログラムP1の要求に先行して図11の乱数生成および乱数バッファ格納処理によって予め未使用の16ビット乱数が乱数バッファ6021aに貯留されているよう動作させることになる。そのためには、例えば予め動作実験を行って、演出プログラムP1の要求に余裕を持って応答できるよう図11の乱数生成および乱数バッファ格納処理に与える優先度をチューニングする手法を利用できる。   The random number buffer 6021a has a size of about 512 stages capable of storing 512 16-bit random numbers as described above, and is previously unused by the random number generation and random number buffer storage processing of FIG. 11 prior to the request of the rendering program P1. The operation is performed so that the 16-bit random number is stored in the random number buffer 6021a. For this purpose, for example, a method of tuning the priority given to the random number generation and random number buffer storage processing of FIG. 11 can be used by performing an operation experiment in advance and responding with a margin to the request of the rendering program P1.

しかしながら、入念に上記のようなチューニングを行っても、遊技状態によっては、演出プログラムP1が連続的に16ビット乱数を要求し、図11の乱数生成および乱数バッファ格納処理に先行して大量に16ビット乱数が消費され、乱数バッファ6021aが枯渇、即ち、乱数バッファ6021aに出力すべき16ビット乱数が残っていない空(カラ)状態となる可能性は否定できない。この点を考慮して、16ビット乱数を格納する乱数バッファ6021aの段数(サイズ)を上記の512段などよりもっと多めに取っておく措置も考えられるが、あらゆる遊技ないしそれに対応する演出状態を考慮して、充分な(と考えられる)乱数バッファ6021aの段数を決定するのは容易ではない。また、極めて稀な遊技ないし演出状態まで考慮すると、殆ど使用されないような、無駄に大きすぎる乱数バッファ6021aを確保することになり兼ねない。   However, even if the above tuning is performed carefully, depending on the gaming state, the production program P1 continuously requests 16-bit random numbers, and a large amount of 16 prior to the random number generation and random number buffer storage processing of FIG. The possibility that the random number buffer 6021a is depleted, that is, the possibility that the 16-bit random number to be output to the random number buffer 6021a remains empty (empty) cannot be denied. Considering this point, there may be a measure to keep the number (size) of the random number buffer 6021a for storing the 16-bit random number larger than the above-mentioned 512 stages, but any game or the corresponding performance state is considered. Thus, it is not easy to determine the number of stages of the random buffer 6021a that is sufficient (considered). In addition, when considering extremely rare games or effects, it is possible to secure a random buffer 6021a that is rarely used and is too large.

そこで、本実施の形態では、乱数取得ドライバP5を図13(a)および、図13(b)または(c)に示すように構成することにより、乱数を必要とする制御系と乱数を生成ないし取得する制御系との間で、乱数の需要/供給の関係を調節する。例えば、乱数バッファ6021aの枯渇が生じた場合に代替処理(下記の代替処理1または2)を実行できるようにし、16ビット×512段程度の乱数バッファ6021aを配置する場合でも、演出プログラムP1に必要とする16ビット乱数を出力できるようにする。なお、図13(a)〜(c)の処理においても、乱数生成の手法はメルセンヌ・ツイスタ法であるものとする。   Therefore, in this embodiment, the random number acquisition driver P5 is configured as shown in FIG. 13A and FIG. 13B or FIG. The demand / supply relationship of random numbers is adjusted with the control system to be acquired. For example, even when the random number buffer 6021a is depleted, an alternative process (substitute process 1 or 2 below) can be executed, and the random number buffer 6021a of about 16 bits × 512 stages is arranged in the rendering program P1. 16-bit random numbers can be output. In the processes of FIGS. 13A to 13C, the random number generation method is the Mersenne Twister method.

図13では、演出制御手段に出力すべき乱数が前記乱数バッファに残っていない場合に行う代替処理として、上記のFIFO構成の乱数バッファ6021aを経由するバッファモードによらず、演出プログラムP1(演出制御手段)に直接、出力する乱数を生成するダイレクトモードを実行する。この、バッファモードに換えて実行する、乱数バッファ6021aを経由せずに乱数を生成するダイレクトモードの形態としては、例えば次のような2つが考えられる。   In FIG. 13, as an alternative process performed when the random number to be output to the effect control means does not remain in the random number buffer, the effect program P1 (effect control) is used regardless of the buffer mode via the FIFO-structured random number buffer 6021a. A direct mode for generating a random number to be output is directly executed. For example, the following two modes are conceivable as the direct mode for generating random numbers without passing through the random number buffer 6021a, which is executed instead of the buffer mode.

上記ダイレクトモードの1つは、上記のバッファモードによらず、即ち、乱数バッファ6021aを経由させることなく、本来の乱数生成手段である乱数生成プログラムP3を呼び出して乱数を生成させ、生成した乱数を演出プログラムP1(演出制御手段)に出力するものである(図13(b)の代替処理1)。なお、この場合には、乱数生成プログラムP3を呼び出すと32ビット乱数が1つ生成されるが、演出プログラムP1の要求に応じて出力すべき乱数は16ビット乱数であるから、乱数生成プログラムP3により生成させた32ビット乱数を複数に分割して得た16ビット乱数の一部、即ち、16ビット乱数の1つは演出プログラムP1に出力し、一方、演出プログラムP1に出力しなかった乱数は乱数バッファ6021aに格納し、FIFOアクセスを制御する上記のポインタR、Wを適宜更新する。このような処理によれば、複数に分割して得た16ビット乱数を捨てたり消去したりすることなく、その全てを出力することができ、従って、メルセンヌ・ツイスタ法のように状態ベクトルなどによって予め生成される擬似乱数の出現確率が決定づけられている乱数生成系の整合性を損うことがない。   One of the direct modes does not depend on the buffer mode, that is, without passing through the random number buffer 6021a, calls the random number generation program P3 which is the original random number generation means, generates random numbers, and generates the generated random numbers. This is output to the production program P1 (production control means) (alternative processing 1 in FIG. 13B). In this case, when the random number generation program P3 is called, one 32-bit random number is generated. However, since the random number to be output in response to the request from the effect program P1 is a 16-bit random number, the random number generation program P3 A part of the 16-bit random number obtained by dividing the generated 32-bit random number into a plurality of parts, that is, one of the 16-bit random numbers is output to the effect program P1, while the random number not output to the effect program P1 is a random number. The pointers R and W that are stored in the buffer 6021a and control the FIFO access are appropriately updated. According to such processing, it is possible to output all of the 16-bit random numbers obtained by dividing into a plurality of parts without discarding or erasing them. Therefore, as in the Mersenne Twister method, the state vector can be used. The consistency of the random number generation system in which the appearance probability of the pseudo random number generated in advance is determined is not impaired.

また、上記ダイレクトモードの他の1つは、本来の乱数生成手段である乱数生成プログラムP3とは異なる他の手段によって乱数を生成させ、生成した乱数を前記演出制御手段に直接、出力する(図13(c)の代替処理2)ものである。   In the other direct mode, random numbers are generated by another means different from the random number generation program P3 which is the original random number generation means, and the generated random numbers are directly output to the effect control means (see FIG. 13 (c) is an alternative process 2).

図13(a)は乱数取得ドライバP5が、演出プログラムP1のクラス呼び出しに応じて、主に上記のバッファモードによって乱数バッファ6021aから乱数を出力する処理手順の全体の流れを示しており、ここではまず乱数バッファ6021aが出力すべき16ビット乱数が残っていない枯渇(空(カラ))状態であるか否かを判定する(S31)。   FIG. 13 (a) shows the overall flow of the processing procedure in which the random number acquisition driver P5 outputs random numbers from the random number buffer 6021a mainly in the above buffer mode in response to the class call of the effect program P1. First, it is determined whether or not the 16-bit random number to be output from the random number buffer 6021a is in an exhausted (empty) state (S31).

この乱数バッファ6021aの枯渇判定は、例えば、FIFOアクセスのための上記の読み出し、書き込みのポインタR、Wに対するポインタ演算などによって行うことができる。例えば、乱数バッファ6021aの枯渇状態(残量0)は乱数バッファ6021a中の次の書き込みアドレスを指しているアドレス値に、読み出しポインタRのアドレス値が追いついてしまっている状態として、検出することができる。   This depletion determination of the random number buffer 6021a can be performed by, for example, the pointer calculation for the read and write pointers R and W for FIFO access. For example, the exhaustion state (remaining amount 0) of the random number buffer 6021a can be detected as a state in which the address value of the read pointer R has caught up with the address value indicating the next write address in the random number buffer 6021a. it can.

もし、乱数バッファ6021aの枯渇状態(残量0)が生じていなければ、S31からS32へ移行し、乱数バッファ6021aから16ビット乱数を1個読み出し(S32)、続いて読み出しポインタRの値を更新し(S33)、読み出した16ビット乱数を演出プログラムP1に出力する(S34)。   If the random number buffer 6021a is not depleted (the remaining amount is 0), the process proceeds from S31 to S32, one 16-bit random number is read from the random number buffer 6021a (S32), and then the value of the read pointer R is updated. Then, the read 16-bit random number is output to the effect program P1 (S34).

一方、乱数バッファ6021aの枯渇状態(残量0)が生じている場合には、乱数バッファ6021aから読み出せる16ビット乱数が無いため、出力ステップ(S34)で出力できる16ビット乱数を生成する代替処理(S35)を実行する。   On the other hand, if the random number buffer 6021a is depleted (remaining amount is 0), there is no 16-bit random number that can be read from the random number buffer 6021a, so an alternative process of generating a 16-bit random number that can be output in the output step (S34). (S35) is executed.

図13(b)と(c)は、上記のダイレクトモードによって16ビット乱数を生成し、出力する代替処理(S35)のそれぞれ異なる構成例を示している。まず、図13(b)の代替処理1は、FIFOの乱数バッファ6021aを経由せず、緊急避難的に乱数生成プログラムP3を呼び出して少なくとも1個の16ビット乱数を生成して出力するものである。   FIGS. 13B and 13C show different configuration examples of alternative processing (S35) for generating and outputting a 16-bit random number in the direct mode. First, the alternative process 1 in FIG. 13B is to generate and output at least one 16-bit random number by calling the random number generation program P3 in an emergency evacuation manner without going through the FIFO random number buffer 6021a. .

図13(b)の代替処理1では、まず、低い優先度のタスク(あるいはプロセス、スレッド)として動作している図11の乱数生成および乱数バッファ格納処理を一時停止させる(S51)。この乱数生成および乱数バッファ格納処理の一時停止には、システムに用意されている例えばシグナル(signal)のようなタスク間通信手段(あるいはプロセス間通信手段、スレッド間通信手段など)を利用することができる。   In the alternative process 1 of FIG. 13B, first, the random number generation and random number buffer storage process of FIG. 11 that is operating as a low priority task (or process or thread) is temporarily stopped (S51). In order to temporarily stop the random number generation and random number buffer storage processing, it is possible to use an inter-task communication means (or inter-process communication means, inter-thread communication means, etc.) such as a signal prepared in the system. it can.

続いて、乱数生成プログラムP3を呼び出して32ビット乱数をN個生成させる(S52)。この32ビット乱数の生成個数Nは、1(ないし数個)程度とする。このN個の32ビット乱数は、演出プログラムP1が必要とするサイズの乱数を得るためn分割(本実施の形態ではn=2)するものとし、N*n個の(本実施の形態では16ビットの)乱数を生成する(S53)。   Subsequently, the random number generation program P3 is called to generate N 32-bit random numbers (S52). The number N of 32-bit random numbers generated is about 1 (or several). The N 32-bit random numbers are divided into n (n = 2 in the present embodiment) to obtain a random number of a size required by the effect program P1, and N * n (16 in the present embodiment). A random number of bits is generated (S53).

そして、生成、分割したN*n個の乱数の先頭の1個を演出プログラムP1に出力し(S54)、残りの(N*n−1)個の乱数を乱数バッファ6021aに格納し(S55)、それに応じて乱数バッファ6021aのFIFO入出力を制御する読み出し、および書き込みのポインタR、Wの値を更新する(S56)。更に、S51で一時停止させておいた乱数生成および乱数バッファ格納処理(図11)を再開させる(S57)。このタスク(あるいはプロセス、スレッド)再開処理も、上述の例えばシグナル(signal)のようなタスク(あるいはプロセス、スレッド)間通信手段によって実行する。   Then, the first one of the generated and divided N * n random numbers is output to the effect program P1 (S54), and the remaining (N * n-1) random numbers are stored in the random number buffer 6021a (S55). Accordingly, the values of the read and write pointers R and W for controlling the FIFO input / output of the random number buffer 6021a are updated (S56). Furthermore, the random number generation and random number buffer storage processing (FIG. 11) that has been suspended in S51 is resumed (S57). This task (or process, thread) restart process is also executed by the task (or process, thread) communication means such as the above-mentioned signal (signal).

以上のようにして、乱数バッファ6021aの枯渇状態が検出された場合には、乱数バッファ6021aを経由しないダイレクトモードとして実装した代替処理1を実行する。乱数バッファ6021a(FIFO)を経由せず、緊急避難的に直接、乱数生成プログラムP3を呼び出して32ビット乱数を生成し、16ビット乱数に分割し、その先頭から16ビット乱数を1個、出力することができる。この処理は、演出プログラムP1の要求に迅速に応答するために通常、比較的高い優先度を与えて動作させる乱数取得ドライバP5中で高速に実行することができる。しかも、その場合、32ビット乱数を分割して得た16ビット乱数のうち使用しなかったものは乱数バッファ6021a(FIFO)に格納するようにしているため、メルセンヌ・ツイスタ法のように乱数列の整合性を考慮すると生成した乱数列の途中の幾つかを捨てることができないような乱数生成手法を用いている場合でも、乱数システムの整合性を損うことがない。   As described above, when the exhaustion state of the random number buffer 6021a is detected, the alternative process 1 implemented as the direct mode not via the random number buffer 6021a is executed. Random number buffer 6021a (FIFO) is not evacuated directly, but emergency evacuation directly calls random number generation program P3 to generate a 32-bit random number, divides it into 16-bit random numbers, and outputs one 16-bit random number from the beginning. be able to. This process can usually be executed at high speed in the random number acquisition driver P5 that is operated with a relatively high priority in order to respond quickly to the request of the effect program P1. In addition, in this case, the unused 16-bit random number obtained by dividing the 32-bit random number is stored in the random number buffer 6021a (FIFO). Therefore, as in the Mersenne Twister method, Even when a random number generation method that cannot discard some of the generated random number sequences in consideration of the consistency is used, the consistency of the random number system is not impaired.

一方、図13(c)は、上記のダイレクトモードによって16ビット乱数を生成し、出力する他の代替処理2の構成例を示している。図13(c)の代替処理2は、乱数システムの整合性を僅かに損なう可能性があるが、本来の乱数生成プログラムP3を呼び出すことなく、緊急避難的に他の乱数発生手段によって、16ビット乱数を1つ生成(S61)する。   On the other hand, FIG. 13C shows a configuration example of another alternative process 2 that generates and outputs a 16-bit random number in the direct mode. The alternative processing 2 in FIG. 13C may slightly impair the consistency of the random number system, but it is 16 bits by other random number generation means in an emergency evacuation without calling the original random number generation program P3. One random number is generated (S61).

図13(c)のS61で他の乱数発生手段によって生成された1個の16ビット乱数は、同図のS62において、演出プログラムP1に出力される。なお、この本来の乱数生成プログラムP3とは異なる他の乱数発生手段による16ビット乱数の生成(S61)には、適当なハードウェアタイマやカウンタ、例えばデバッグカウンタ605や補助カウンタ6551の計数値を利用して演出プログラムP1の要求に応じて出力できる16ビット乱数を生成する手法が考えられる。   One 16-bit random number generated by other random number generation means in S61 of FIG. 13C is output to the effect program P1 in S62 of FIG. It should be noted that, for generation of 16-bit random numbers by other random number generation means different from the original random number generation program P3 (S61), count values of appropriate hardware timers and counters, for example, the debug counter 605 and the auxiliary counter 6551 are used. Then, a method of generating a 16-bit random number that can be output in response to the request of the effect program P1 can be considered.

なお、図13(c)の代替処理2において、乱数の取得方法を変更する場合に用いる(本来の乱数生成プログラムP3とは異なる)他の乱数発生手段としては、上記のデバッグカウンタ605や補助カウンタ6551を用いる方法以外に、RTC652(システムタイマ)の計時値を適宜ビットシフトして16ビット乱数を取得する、あるいは別途、サブ基板上に配置した不図示のハードウェアによる乱数生成チップの出力を利用する、などの手法を用いることができる。   In addition, in the alternative processing 2 in FIG. 13C, other random number generation means (different from the original random number generation program P3) used when changing the random number acquisition method include the debug counter 605 and the auxiliary counter described above. In addition to the method using 6551, a 16-bit random number is obtained by appropriately bit-shifting the measured value of RTC 652 (system timer), or the output of a random number generation chip by hardware (not shown) separately arranged on a sub board is used. Or the like.

なお、図13(c)の代替処理2は、本来の乱数生成プログラムP3を呼び出さないため、乱数取得ドライバP5(システムレベルの乱数制御クラス)で実行する他、ユーザレベルの演出プログラムP1側で実行するような構成を採ってもよい。その場合、乱数取得ドライバP5は、図13(a)の先頭で乱数バッファ6021aの枯渇を検出した場合、適宜定めておいたエラーを示す戻り値(エラーコード)をユーザレベルの演出プログラムP1に返して処理をエラー終了するよう実装する。そして、演出プログラムP1側では、その戻り値(エラーコード)を検出した時に、図13(c)のS61に示した他の手段による乱数発生を行うよう動作させればよい。   The alternative process 2 in FIG. 13C does not call the original random number generation program P3, so it is executed by the random number acquisition driver P5 (system level random number control class) or the user level effect program P1. Such a configuration may be adopted. In that case, when the random number acquisition driver P5 detects the exhaustion of the random number buffer 6021a at the top of FIG. 13A, it returns a return value (error code) indicating an error that has been appropriately determined to the user level effect program P1. Implement the process to end with an error. Then, on the effect program P1 side, when the return value (error code) is detected, the program may be operated to generate random numbers by other means shown in S61 of FIG.

以上のようにして、図13(c)の代替処理2によれば、乱数バッファ6021aの枯渇(16ビット乱数の残数0)が生じた場合に演出プログラムP1が必要とする16ビット乱数を生成することができる。図13(c)の代替処理2は、本来の乱数生成プログラムP3を呼び出さずに緊急避難的に16ビット乱数を生成するため、乱数システムの整合性を損う可能性がある。しかしながら、乱数システムの整合性を僅かに損なう犠牲はあるが、より高速に演出プログラムP1に出力すべき代替の16ビット乱数を生成できる可能性がある。   As described above, according to the alternative process 2 in FIG. 13C, when the random number buffer 6021a is exhausted (the remaining number of 16-bit random numbers is 0), the 16-bit random numbers required by the rendering program P1 are generated. can do. Since the alternative process 2 in FIG. 13C generates a 16-bit random number in an emergency evacuation mode without calling the original random number generation program P3, the consistency of the random number system may be impaired. However, there is a possibility of generating an alternative 16-bit random number to be output to the performance program P1 at a higher speed, at the expense of slightly compromising the consistency of the random number system.

また、図13(a)〜(c)に示した処理手法は、乱数バッファ6021aを経由して乱数の入出力を行うバッファモードと、乱数バッファ6021aを経由しないダイレクトモードを設け、乱数の枯渇、言い換えれば乱数の需要と供給に係る状況に応じて、バッファモードとダイレクトモードを切り替える構成であり、このような構成により、乱数の生成系と乱数を利用する処理系の間で、乱数の需要と供給の関係を良好に調節することができる。   13A to 13C are provided with a buffer mode for inputting / outputting random numbers via the random number buffer 6021a and a direct mode not passing through the random number buffer 6021a. In other words, it is a configuration that switches between the buffer mode and the direct mode according to the situation related to the demand and supply of random numbers.With such a configuration, the demand for random numbers between the random number generation system and the processing system that uses random numbers The supply relationship can be adjusted well.

なお、図13(a)〜(c)では、通常状態ではバッファモードを用い、代替処理1または2でダイレクトモードを利用する構成を示したが、この関係は逆であってもよい。また、乱数の需要と供給の調整は、必ずしもバッファの枯渇状態の検出を条件として行うべきものとは限らない。   13A to 13C show a configuration in which the buffer mode is used in the normal state and the direct mode is used in the alternative processing 1 or 2, the relationship may be reversed. Further, the adjustment of supply and demand of random numbers is not necessarily performed on the condition of detecting the depletion state of the buffer.

例えば、ここで、通常状態では、ダイレクトモードで乱数生成プログラムP3によって乱数を発生させることを考える。この構成では、演出プログラムP1の乱数の需要を満たすことができないタイミングが生じる場合がある。例えば、メルセンヌ・ツイスタ法のように624n回の乱数発生ごとに状態ベクトル更新によって処理が重くなるような乱数方式を乱数生成プログラムP3で用いると、例えば高負荷の時にダイレクトモードで乱数生成プログラムP3を呼び出した時、生成された乱数を取得するまでに長い処理時間がかかってしまう可能性がある。そこで、ダイレクトモードで乱数生成プログラムP3によって乱数を発生させる時に、システムの負荷、例えばサブCPU330a1がロードアベレージ(load average)などの値を取得し、その値が所定以上である場合には、乱数の入出力をバッファモードに切り換えることが考えられる。この場合には、乱数バッファ6021aには、例えば乱数生成プログラムP3と異なる乱数生成手段、例えばハードウェアカウンタやタイマの値から乱数を生成して格納する乱数処理を低優先度のタスクとして動作させておく。そして、ロードアベレージ(load average)などに応じて、システムの負荷が高すぎる場合には、ダイレクトモードで乱数生成プログラムP3を呼び出すことなく、乱数バッファ6021aに蓄積されている乱数を出力する。以上のように、通常状態ではダイレクトモードを用い、代替処理1または2でバッファモードを利用する構成とし、乱数の需要と供給の調整を適切に行える可能性がある。   For example, here, in a normal state, it is considered that random numbers are generated by the random number generation program P3 in the direct mode. In this configuration, there may be a timing when the demand for random numbers of the production program P1 cannot be satisfied. For example, if the random number generation program P3, such as the Mersenne Twister method, in which the processing becomes heavy by updating the state vector every 624n times of random number generation is used in the random number generation program P3, for example, the random number generation program P3 in the direct mode when the load is high When called, it may take a long time to get the generated random number. Therefore, when a random number is generated by the random number generation program P3 in the direct mode, the system load, for example, the sub CPU 330a1 acquires a value such as a load average, and if the value is equal to or greater than a predetermined value, It is conceivable to switch the input / output to the buffer mode. In this case, the random number buffer 6021a operates as a low priority task, for example, random number generation means different from the random number generation program P3, for example, random number processing for generating and storing random numbers from the values of hardware counters or timers. . If the system load is too high in accordance with load average or the like, the random number stored in the random number buffer 6021a is output without calling the random number generation program P3 in the direct mode. As described above, there is a possibility that the direct mode is used in the normal state and the buffer mode is used in the alternative processing 1 or 2 to appropriately adjust the demand and supply of random numbers.

<乱数生成異常の対処>
本実施の形態では、乱数生成手法にメルセンヌ・ツイスタ法を用いており、例えば乱数生成系のハードウェアおよびソフトウェアが正常に動作している場合には、非常に長い周期の擬似乱数列を生成し、演出プログラムP1はこれを利用することができる。しかしながら、乱数生成系のハードウェアおよびソフトウェアに異常がある場合には、乱数の生成異常が生じる可能性がある。
<Countermeasures for abnormal random number generation>
In this embodiment, the Mersenne Twister method is used as a random number generation method. For example, when the hardware and software of a random number generation system are operating normally, a pseudo-random number sequence with a very long period is generated. The production program P1 can use this. However, if there is an abnormality in the hardware and software of the random number generation system, there is a possibility that a random number generation abnormality will occur.

例えば、メルセンヌ・ツイスタ法における状態ベクトルを格納するCPURAM602の乱数情報記憶領域6021bが破損しているような状態が発生すると、本来の乱数列の周期よりも短い周期で、例えば同一ビットパターン(0や、他の特定の値に相当するビットパターン)の乱数が連続的に出力されるような生成異常を生じる可能性がある。例えば、物理的な外乱によってCPURAM602の乱数情報記憶領域6021bがハードウェア的に破損した場合や、システムプログラムの暴走などによって乱数情報記憶領域6021bの乱数制御データ、例えばメルセンヌ・ツイスタ法における状態ベクトルが書き換えられてしまうと、上記のような乱数の生成異常を生じる可能性がある。   For example, when a state in which the random number information storage area 6021b of the CPURAM 602 storing the state vector in the Mersenne Twister method is damaged occurs, for example, the same bit pattern (0 or , A random number of bit patterns corresponding to other specific values) may be generated continuously. For example, when the random number information storage area 6021b of the CPU RAM 602 is damaged in hardware due to a physical disturbance, or the random number control data in the random number information storage area 6021b, for example, the state vector in the Mersenne Twister method is rewritten due to a runaway system program. If this happens, there is a possibility that the random number generation abnormality as described above may occur.

図14は、上記のような乱数の生成異常を生じた場合の回復処理を実装した図11の乱数生成および乱数バッファ格納処理、特に、図11のS13およびS14に相当する処理手順の流れを示している。   FIG. 14 shows a flow of the processing procedure corresponding to the random number generation and random number buffer storage processing of FIG. 11 that implements the recovery processing in the case where the above-described random number generation abnormality occurs, in particular, corresponding to S13 and S14 of FIG. ing.

図14に示す回復処理(S46)は、乱数の生成異常を検出した場合に乱数の取得方法を変更する手続によって構成される。この乱数の取得方法を変更する手続の1つは、例えば、乱数生成プログラムP3(乱数生成手段)とは異なる他の手段によって乱数を生成させ、乱数の生成異常を検出した乱数の少なくとも一部に換えて前記演出制御手段に出力するものである(下記の(A))。また、この乱数の取得方法を変更する手続の他の1つは、例えば乱数生成プログラムP3(乱数生成手段)の初期化または更新(下記の(B))であり、この初期化または更新処理としては、具体的には、乱数生成プログラムP3(乱数生成手段)の乱数情報記憶領域6021bに格納されている乱数制御データの初期化、または更新処理、例えばメルセンヌ・ツイスタ法においては、乱数情報記憶領域6021bに乱数制御データとして格納されている状態ベクトルの更新処理を行うことができる。   The recovery process (S46) shown in FIG. 14 includes a procedure for changing the method for acquiring a random number when a random number generation abnormality is detected. One of the procedures for changing the random number acquisition method is to generate random numbers by means other than the random number generation program P3 (random number generation means), for example. Instead, it is output to the effect control means ((A) below). Another procedure for changing the random number acquisition method is, for example, initialization or update of the random number generation program P3 (random number generation means) ((B) below). Specifically, in the initialization or update processing of random number control data stored in the random number information storage area 6021b of the random number generation program P3 (random number generation means), for example, in the Mersenne Twister method, the random number information storage area The state vector stored as random number control data 6021b can be updated.

また、乱数の生成異常は、上記のように、例えば乱数生成プログラムP3(乱数生成手段)に発生させ、あるいは更に乱数バッファに分割して格納した複数の乱数に特定の同一値が複数連続した場合に、前記生成異常が発生したことを検出する手法を用いることができる。   In addition, as described above, the random number generation abnormality is generated by, for example, the random number generation program P3 (random number generation means), or is further divided into a random number buffer and stored with a plurality of specific identical values. In addition, a technique for detecting that the generation abnormality has occurred can be used.

図14の乱数生成、格納処理(図11のS13、S14に相当)では、まず、図11のS12で取得した生成個数Nの32ビット乱数を生成および格納済みか否かを判定する(S41)。ここで、既にN個の32ビット乱数を生成および格納済みの場合は、この乱数生成、格納処理(図11のS13、S14)を終了する。   In the random number generation and storage processing of FIG. 14 (corresponding to S13 and S14 of FIG. 11), first, it is determined whether or not the generated number N of 32-bit random numbers acquired in S12 of FIG. 11 has been generated and stored (S41). . If N 32-bit random numbers have already been generated and stored, the random number generation and storage processing (S13 and S14 in FIG. 11) is terminated.

一方、図11のS12で取得した生成個数Nの32ビット乱数の生成、格納が終了していない場合には、乱数生成プログラムP3を呼び出して1個の32ビット乱数を生成させ(S42)、n個(本実施の形態ではn=2)の16ビット乱数に分割して乱数バッファ6021aに格納する(S43)。   On the other hand, if generation and storage of the generated number N of 32-bit random numbers acquired in S12 of FIG. 11 are not completed, the random number generation program P3 is called to generate one 32-bit random number (S42), n Divided into 16-bit random numbers (n = 2 in this embodiment) and stored in the random number buffer 6021a (S43).

続いて、それまでに乱数バッファ6021aに格納した16ビット乱数列を検査し、乱数の生成異常が発生しているか否かを判定する(S44)。例えば、この判定(S44)は、最後に格納した16ビット乱数列の数個、例えば4〜10個程度の数個が全て(連続して)同一値(0または他の特定数値)であるか否かを検査することによって行う。そして、このような乱数の生成異常が発生していない場合には、書き込みポインタWの値を更新(S45)し、制御を上記のS41に復帰させる。なお、乱数の生成異常を検出するために連続して同一値であるか否かを検査する16ビット乱数の数は、必ずしも上記の4〜10個の範囲でなくても構わない。例えば、適当な演算方式によって、乱数の生成異常を検出するために連続して同一値であるか否かを検査する乱数の数を決定できる場合には、その乱数の数を採用して構わない。ただし、一般には、連続して同一値であるか否かを検査する16ビット乱数の数が1〜3個程度では誤検出が頻出する可能性が大きくなり、10個以上などのように多すぎる場合には、極めて稀にしか発生しない生成異常しか検出できなくなる可能性がある、と考えられる。   Subsequently, the 16-bit random number sequence stored in the random number buffer 6021a is checked to determine whether or not random number generation abnormality has occurred (S44). For example, in this determination (S44), whether or not several of the last stored 16-bit random number sequences, for example, about 4 to 10 are all (continuously) the same value (0 or other specific numerical value). This is done by checking whether or not. If no such random number generation abnormality has occurred, the value of the write pointer W is updated (S45), and the control is returned to S41. It should be noted that the number of 16-bit random numbers for checking whether or not the same value is continuously detected in order to detect random number generation abnormality does not necessarily have to be in the range of 4 to 10 described above. For example, if it is possible to determine the number of random numbers to be inspected for the same value in order to detect random number generation abnormality by an appropriate calculation method, the number of random numbers may be adopted. . However, in general, if the number of 16-bit random numbers for checking whether or not they are the same value continuously is about 1 to 3, the possibility of frequent false detections increases, and there are too many such as 10 or more. In some cases, it may be possible to detect only generation abnormalities that occur very rarely.

一方、ステップS44で、上記乱数の生成異常が発生している場合には、回復処理(S46)を実行してからS45に移行する。   On the other hand, if the random number generation abnormality has occurred in step S44, the recovery process (S46) is executed, and then the process proceeds to S45.

この回復処理(S46)の手法の1つ(A)としては、例えば、本来の乱数生成プログラムP3とは異なる他の手段によって、生成異常が生じている数個(例えば4、6、8程度の数個)の16ビット乱数の少なくとも1つを置換する乱数を他の手段によって生成することが考えられる。この他の手段による乱数の生成(A)には、図13(c)の代替処理2で説明したように、デバッグカウンタ605や補助カウンタ6551の値、RTC652(システムタイマ)の計時値などを適宜ビットシフトして16ビット乱数を取得する手法、あるいは別途、サブ基板上に配置した不図示のハードウェアによる乱数生成チップの出力を利用する手法を用いることができる。   As one method (A) of the recovery process (S46), for example, several (for example, about 4, 6, 8) in which generation abnormality has occurred by other means different from the original random number generation program P3. It is conceivable that a random number replacing at least one of several (16) random numbers is generated by other means. In the random number generation (A) by other means, the values of the debug counter 605 and the auxiliary counter 6551, the time value of the RTC 652 (system timer), etc. are appropriately set as described in the alternative process 2 of FIG. A technique of obtaining a 16-bit random number by bit-shifting, or a technique of using an output of a random number generation chip by hardware (not shown) separately arranged on a sub board can be used.

図9には、生成異常が生じている16ビット乱数を本来の乱数生成プログラムP3とは異なる他の手段によって生成した乱数によって置換する様子を示してある。図9の例では、乱数生成プログラムP3が生成した「0」が連続する4個の16ビット乱数の内、少なくともいずれか一つ、例えば乱数バッファ6021aの511段目の値を、他の手段から取得した乱数(例えばデバッグカウンタ605のカウンタ値ないしそれを加工して得た値)に書き換えている。このように、生成した乱数に乱数生成アルゴリズムによって生成される乱数列の周期よりも短い周期性が発生した場合、本来の乱数生成プログラムP3とは異なる他の乱数発生手段で発生させた乱数によって乱数の少なくとも一部を置き換えることによって、例え、乱数生成系のハードウェアないしソフトウェア的に何らかの不具合が発生している場合でも、演出プログラムP1が順次、利用する乱数のランダム性を可能な限り担保することができる。なお、上記乱数値として置き換えるカウンタ値は、デバッグカウンタ605のカウンタ値に限らず、RTC652のカウンタ値などでも良く、乱数生成プログラムP3以外の他の手段により生成された値であればどのような値であっても良い。   FIG. 9 shows a state in which a 16-bit random number in which generation abnormality has occurred is replaced with a random number generated by other means different from the original random number generation program P3. In the example of FIG. 9, at least one of four consecutive 16-bit random numbers “0” generated by the random number generation program P3, for example, the value at the 511th stage of the random number buffer 6021a is obtained from other means. The acquired random number (for example, a counter value of the debug counter 605 or a value obtained by processing it) is rewritten. Thus, when the generated random number has a periodicity shorter than the period of the random number sequence generated by the random number generation algorithm, the random number is generated by a random number generated by another random number generation means different from the original random number generation program P3. By substituting at least a part of the random number generation system, even if there is a problem with the hardware or software of the random number generation system, the randomness of the random numbers used sequentially by the production program P1 should be as much as possible Can do. The counter value replaced as the random number value is not limited to the counter value of the debug counter 605 but may be a counter value of the RTC 652, or any value as long as it is a value generated by means other than the random number generation program P3. It may be.

なお、生成異常が生じている乱数を置換する値は、乱数生成プログラムP3以外の他の手段により生成された値、例えば乱数としての使用に支障のない値であればどのような値を用いても良い。   Note that the value that replaces the random number in which the generation abnormality has occurred is any value generated by means other than the random number generation program P3, for example, any value that does not hinder use as a random number. Also good.

また、回復処理(S46)の手法の他の1つ(B)としては、強制的に状態ベクトルの更新処理(例えば図11のS15)を起動して、CPURAM602の乱数情報記憶領域6021bの初期化ないしは更新処理を行う手法を取ることができる。   Further, as another method (B) of the recovery process (S46), the state vector update process (for example, S15 in FIG. 11) is forcibly started to initialize the random number information storage area 6021b of the CPURAM 602. Or the method of performing an update process can be taken.

以上のようにして、同一ビットパターン(0または他の特定ビットパターン)の連続出力を介して16ビット乱数の生成異常を検出し、もしそのような16ビット乱数の生成異常が発生している場合には、回復処理を行って、乱数システムの整合性を適宜、回復することができる。この回復処理は、乱数の取得方法を変更するものであって、例えば上記のS46で説明したように(A)他の手段による代替乱数の生成、(B)乱数生成系の制御データ、例えば乱数情報記憶領域6021bに格納されている乱数制御データ(状態ベクトル)の初期化ないしは更新処理などを行うことによって実現できる。   As described above, when a 16-bit random number generation abnormality is detected through continuous output of the same bit pattern (0 or another specific bit pattern), and such a 16-bit random number generation abnormality has occurred In other words, the consistency of the random number system can be restored as appropriate by performing a recovery process. This recovery process changes the random number acquisition method. For example, as described in S46 above, (A) generation of alternative random numbers by other means, (B) control data of the random number generation system, for example, random numbers This can be realized by initializing or updating random number control data (state vector) stored in the information storage area 6021b.

なお、回復処理のうち、上記の(A)他の手段による代替乱数の生成による手法を取る場合は、図13(c)で説明した代替処理の場合と同様に、ユーザレベルの演出プログラムP1で実行するよう構成することも考えられる。その場合には、直近の数個(例えば4、6、8程度の数個)の16ビット乱数列に同一ビットパターン(0または他の特定ビットパターン)の連続が出現しているか否かの判定(上記のS44)、および、その判定結果に応じた他の手段を用いた代替乱数生成による回復処理(上記のS46)は、演出プログラムP1で実行する。また、図9の例では、生成異常と判断した4個連続する「0」のうち、その3番目に相当する「0」を他の手段から得た乱数に書き換えているが、生成異常と判断する連続する同一値の乱数の内、どの乱数を書き換えるかは任意である。また、生成異常と判断する連続する同一値の乱数を、全て、適当な手段から得た乱数で書き換えるような構成であってもよい。   Note that, in the recovery process, when the above-described method (A) of generating alternative random numbers by other means is used, the user level effect program P1 is used, as in the case of the alternative process described in FIG. It can also be configured to execute. In that case, it is determined whether or not a sequence of the same bit pattern (0 or other specific bit pattern) appears in the most recent (for example, about 4, 6, 8) 16-bit random number sequences. The recovery process (above S46) by the alternative random number generation using the other means according to the determination result (S44 described above) is executed by the effect program P1. Further, in the example of FIG. 9, among the four consecutive “0” s determined to be generation abnormal, “0” corresponding to the third is rewritten with a random number obtained from another means. It is arbitrary which random number is rewritten among consecutive random numbers having the same value. Moreover, the structure which rewrites all the random numbers of the same value determined as generation | occurrence | production abnormality with the random number obtained from the appropriate means may be sufficient.

5.変形例
なお、上述した実施の形態では、乱数生成のアルゴリズムとしてメルセンヌ・ツイスタ法を採用したが、本発明はこれに限らず、例えば、Xorshift法などの他の乱数生成アルゴリズムによって乱数を生成しても良い。また、乱数を格納する乱数バッファをFIFOバッファによって構成したが、これに限らず、生成された乱数が生成された順序に従って消費されるように、例えば、乱数を使用する演出プログラムP1などのアプリケーション側のプログラムを構成しても良い。
5). In the above-described embodiment, the Mersenne Twister method is adopted as a random number generation algorithm. However, the present invention is not limited to this, and for example, a random number is generated by another random number generation algorithm such as the Xorshift method. Also good. In addition, the random number buffer for storing the random number is configured by the FIFO buffer. However, the present invention is not limited to this. For example, the application side such as the rendering program P1 using the random number may consume the generated random numbers according to the generation order. This program may be configured.

また、乱数種の生成に補助カウンタ6551のカウンタ値を用いているが、これに限らず、例えば、補助カウンタ6551のカウンタ値を使用する場合に比較して乱数種の生成スピードは落ちるが、RTC652やデバッグカウンタ605のカウンタ値を用いて乱数種を生成しても良い。更に、補助カウンタ6551のカウンタ値をそのまま乱数種として使用しても良い。   Further, the counter value of the auxiliary counter 6551 is used for generating the random number seed. However, the present invention is not limited to this. For example, the generation speed of the random number seed is reduced as compared with the case where the counter value of the auxiliary counter 6551 is used, but the RTC 652 Alternatively, the random number seed may be generated using the counter value of the debug counter 605. Further, the counter value of the auxiliary counter 6551 may be used as it is as a random number seed.

また、本実施形態では、バックアップSRAM655内の補助カウンタ6551は、断電時(電源OFF時)にその値が保持されるように構成されているが、例えば、断電時に補助カウンタの値を保持せず、かつ、電源投入時に補助カウンタの初期化を実行しないようにして、電源投入時にその値が不定となるように構成しても良い。このように、電源投入時に乱数種の生成に使用される補助カウンタの値を不定とすることにより、電源投入時の乱数種の値が一定の値になるようにすることを防止することができる。   In the present embodiment, the auxiliary counter 6551 in the backup SRAM 655 is configured to hold the value when the power is cut off (when the power is turned off). For example, the auxiliary counter 6551 holds the value of the auxiliary counter when the power is cut off. The auxiliary counter may not be initialized when the power is turned on, and the value may be indefinite when the power is turned on. Thus, by making the value of the auxiliary counter used for generating the random number seed when the power is turned on indefinite, it is possible to prevent the value of the random seed when the power is turned on from being a constant value. .

また、上述した実施形態では、乱数生成アルゴリズムによって乱数バッファ6021aに格納される乱数よりもビット長の長い乱数を生成し、この乱数生成アルゴリズムによって生成された乱数を複数の乱数に分割して乱数バッファ6021aに格納するように構成したが、これに限らず、例えば、乱数生成アルゴリズムによって生成される乱数のビット長と乱数バッファ6021aに格納される乱数のビット長とを同じにして、分割処理を行わずにそのまま乱数バッファ6021aに格納するように構成しても良い。また、反対に、乱数生成アルゴリズムによって生成される乱数のビット長を、乱数バッファ6021aに格納される乱数のビット長よりも短くし、生成した複数の乱数を結合して1つの乱数として乱数バッファ6021aに格納するようにしても良い。即ち、乱数の正当性を担保できるように、乱数生成アルゴリズムによって生成された乱数を、本来の乱数列の順序を崩さずに残らず使用する形であれば、どのように乱数バッファ6021aに格納するようにしても良い。更に、乱数バッファは、上述した実施の形態のように必ずしも1つである必要はない。例えば、第1の乱数バッファが溢れた場合に、溢れた乱数を格納する第2の乱数バッファが設けられていても良い。   In the above-described embodiment, the random number generation algorithm generates a random number having a bit length longer than the random number stored in the random number buffer 6021a, and divides the random number generated by the random number generation algorithm into a plurality of random numbers. However, the present invention is not limited to this. For example, the bit length of the random number generated by the random number generation algorithm and the bit length of the random number stored in the random number buffer 6021a are set to be the same. Instead, the data may be stored in the random number buffer 6021a as it is. Conversely, the bit length of the random number generated by the random number generation algorithm is made shorter than the bit length of the random number stored in the random number buffer 6021a, and the generated random numbers are combined into one random number buffer 6021a. You may make it store in. That is, in order to ensure the validity of the random number, the random number generated by the random number generation algorithm can be stored in the random number buffer 6021a as long as the original random number sequence is used without breaking the order. You may do it. Further, the number of random number buffers is not necessarily one as in the above-described embodiment. For example, when the first random number buffer overflows, a second random number buffer that stores the overflowing random number may be provided.

また、上述した実施形態では、タスクの完了を契機としてサブCPU330a1が次のタスクの実行へと移行しており、タスクの状態変更をきっかけとしてタスクの切り替えを行うように構成されていたが、例えば、タスク管理プログラムP4は、所定のサイクル内において、各タスクが実行される時間を優先度に応じて設定し、このタスクに応じて設定された時間が経過することを契機にサブCPU330a1が次のタスクを実行するように構成しても良い。また、タスクの優先度の設定に限らず、例えば、サブCPU330a1の負荷が所定の負荷を監視し、サブCPU330a1の負荷が所定の負荷以下の際に乱数生成処理を実行するように構成しても良い。この時、乱数生成処理は、割り込み処理により実行されても良いし、その優先度を上げてサイクル処理内で実行されるように設定しても良い。   In the above-described embodiment, the sub CPU 330a1 shifts to the execution of the next task when the task is completed, and the task is switched when triggered by the task state change. The task management program P4 sets the time for each task to be executed in a predetermined cycle according to the priority, and the sub CPU 330a1 sets the next time when the time set according to the task elapses. You may comprise so that a task may be performed. Further, not limited to the setting of task priority, for example, the load of the sub CPU 330a1 may monitor a predetermined load, and the random number generation process may be executed when the load of the sub CPU 330a1 is equal to or lower than the predetermined load. good. At this time, the random number generation process may be executed by an interrupt process, or may be set so as to be executed in the cycle process by increasing its priority.

更に、上述した実施形態では、抽選手段として演出プログラムP1を例に説明をしたが、本発明はこれに限らず、何らかの乱数抽選を実行するものであれば、上記記憶手段としての乱数バッファ6021aに格納された乱数は、どのような手段(プログラム)に使用されても良く、本発明は、副制御部330のみならず主制御部300に適用されても良い。また、上記サブCPU330a1とVDP330a2とは、必ずしも一体のハードウェアLSIに実装されている必要はなく、別体のLSIによって構成されても良い。   Furthermore, in the above-described embodiment, the production program P1 has been described as an example of the lottery unit. However, the present invention is not limited to this, and any random number lottery can be performed in the random number buffer 6021a as the storage unit. The stored random number may be used for any means (program), and the present invention may be applied not only to the sub-control unit 330 but also to the main control unit 300. Further, the sub CPU 330a1 and the VDP 330a2 do not necessarily have to be mounted on an integrated hardware LSI, and may be configured by separate LSIs.

また、本実施形態においては、遊技機として、大当たり図柄を含む複数種類の図柄の中からいずれかを決定する図柄決定手段と、図柄が決定されてから所定の変動時間が経過すると、図柄表示部に図柄を表示させる図柄表示手段と、図柄表示部に大当たり図柄が表示されると、複数回のラウンド遊技で構成される大役遊技を実行する大役遊技実行手段と、大役遊技におけるラウンド遊技のうち予め設定された特定ラウンド遊技中に、大入賞口に入球した遊技球が特定領域に進入すると、所定の遊技利益を付与する遊技利益付与手段と、大役遊技中の演出を実行する演出実行手段と、を備えるいわゆる第一種遊技を可能なパチンコ機100を例示したが、これに限らず、例えば、小当たり遊技中に所定の領域に遊技球が侵入することで大役遊技を開始可能な第二種遊技を可能なパチンコ機であっても本発明は適用し得る。また、第三種遊技を実行可能なパチンコ機、これら第一種ないし第三種遊技のいずれかを組み合わせて実行可能なパチンコ機であっても本発明は適用し得る。更に、例えば、外周面に複数種類の図柄が配列されている複数のリールと、遊技者による開始操作を検出するスタートスイッチと、複数のリールに対応して設けられ、各リールを停止させるための停止操作を検出するストップスイッチと、遊技の進行を制御する主制御部と、コマンドに基づき演出を制御する演出制御手段を有する副制御部を備え、主制御部が、複数種類の役の当否を決定する内部抽選を行う内部抽選手段と、スタートスイッチによる開始操作の検出に基づいて、複数のリールを回転させ、ストップスイッチによる停止操作の検出及び内部抽選手段により決定された内部抽選の結果に基づいて、回転中のリールを停止させるリール停止制御を行うリール制御手段と、複数のリールが停止した状態で、役ごとに予め定められた入賞形態を示す図柄組合せが有効ライン上に表示されたことに基づいて、役が入賞したと判定する入賞判定手段と、を有するスロットマシンにも、本発明は適用できる。以下、スロットマシン1について詳述する。   In the present embodiment, as a gaming machine, a symbol determining means for determining one of a plurality of types of symbols including a jackpot symbol, and a symbol display unit when a predetermined fluctuation time has elapsed since the symbol was determined A symbol display means for displaying a symbol on the screen, a big bonus game executing means for executing a big game consisting of a plurality of round games when a jackpot symbol is displayed on the symbol display section, and a round game in the big game in advance. During a specific round game that is set, when a game ball that has entered the special winning opening enters a specific area, a game profit granting means for giving a predetermined game profit, and an effect executing means for executing an effect during the big game However, the present invention is not limited to this. For example, a big ball game is made when a game ball enters a predetermined area during a small hit game. Even pachinko machine as possible can be started second type game present invention is applicable. In addition, the present invention can be applied to a pachinko machine that can execute a third type game, or a pachinko machine that can be executed by combining any of the first to third type games. Further, for example, a plurality of reels having a plurality of types of symbols arranged on the outer peripheral surface, a start switch for detecting a start operation by the player, and a plurality of reels provided for stopping each reel. It has a stop switch that detects a stop operation, a main control unit that controls the progress of the game, and a sub-control unit that has an effect control means that controls the effect based on the command. Based on the internal lottery means for performing the internal lottery to be determined and on the basis of the result of the internal lottery determined by the detection of the stop operation by the stop switch and the internal lottery means based on the detection of the start operation by the start switch A reel control means for performing reel stop control for stopping the rotating reel, and a predetermined input for each combination with a plurality of reels stopped. Based on the symbol combination indicating the form is displayed on the pay line, a winning determination means that the winning combination is won, even slot machine having the present invention can be applied. Hereinafter, the slot machine 1 will be described in detail.

<スロットマシンの機械的構成>
図15は、スロットマシン1の外観構成を示す斜視図である。スロットマシン1は、いわゆる回胴式遊技機と呼ばれるもので、メダルを遊技媒体として用いた遊技を行う種類の遊技機である。
<Mechanical structure of slot machine>
FIG. 15 is a perspective view showing an external configuration of the slot machine 1. The slot machine 1 is a so-called revolving game machine, and is a type of game machine that performs games using medals as game media.

スロットマシン1は、収納箱BX、前面上扉UD及び前面下扉DDからなる箱形の筐体内に複数のリールとしての第1リールR1〜第3リールR3からなるリールユニットが収められている。また、筐体内のリールユニットの下部には、メダルの払出装置としてのホッパーユニット920(図17参照)が収められている。また、スロットマシン1の筐体内には、CPU、ROM(情報記憶媒体の一例)、RAM等を搭載し、スロットマシン1の動作を制御する制御基板も収められている。   In the slot machine 1, a reel unit including a first reel R1 to a third reel R3 as a plurality of reels is housed in a box-shaped casing including a storage box BX, a front upper door UD, and a front lower door DD. A hopper unit 920 (see FIG. 17) as a medal payout device is housed in the lower part of the reel unit in the housing. Further, a CPU, a ROM (an example of an information storage medium), a RAM, and the like are mounted in the casing of the slot machine 1 and a control board for controlling the operation of the slot machine 1 is also housed.

図15に示すように第1リールR1〜第3リールR3は、それぞれ外周面が一定の間隔で20の領域(以下、各領域を「コマ」と記載する)に区画されており、各コマに図16に示す複数種類の図柄のいずれかが配列されている。   As shown in FIG. 15, each of the first reel R1 to the third reel R3 has an outer peripheral surface divided into 20 regions (hereinafter, each region is referred to as “frame”) at regular intervals. One of a plurality of types of symbols shown in FIG. 16 is arranged.

図16は、スロットマシン1における第1リールR1〜第3リールR3の周面に配列された各図柄を示す図である。図16に示すように、第1リールR1〜第3リールR3の外周面に、赤7図柄「赤7」、白7図柄「白7」、青7図柄「青7」、BAR図柄「BAR」、リプレイ図柄「RP」、ベル図柄「BL」、チェリー図柄「CH」、スイカ図柄A「WMA」、スイカ図柄B「WMB」、及びブランク図柄「BLK」が配列されている。また、第1リールR1〜第3リールR3の周面には、それぞれ20コマの図柄が配列されており、それぞれ停止番号0番〜停止番号19番のいずれかの停止番号が割り当てられている。   FIG. 16 is a view showing symbols arranged on the peripheral surfaces of the first reel R1 to the third reel R3 in the slot machine 1. As shown in FIG. 16, on the outer peripheral surfaces of the first reel R1 to the third reel R3, a red 7 symbol “red 7”, a white 7 symbol “white 7”, a blue 7 symbol “blue 7”, and a BAR symbol “BAR”. The replay symbol “RP”, the bell symbol “BL”, the cherry symbol “CH”, the watermelon symbol A “WMA”, the watermelon symbol B “WMB”, and the blank symbol “BLK” are arranged. Further, 20 frames of symbols are arranged on the peripheral surfaces of the first reel R1 to the third reel R3, and any one of stop numbers 0 to 19 is assigned.

第1リールR1〜第3リールR3は、リール駆動手段としてのステッピングモータ(図示省略)に軸支されており、それぞれステッピングモータの軸周りに回転駆動され、ステッピングモータの駆動パルスのパルス数やパルス幅などを制御することによって、コマ単位(所定の回転角度単位、所定の回転量単位)で停止可能に設けられている。すなわち、スロットマシン1では、ステッピングモータが制御基板から供給された駆動パルスに応じて第1リールR1〜第3リールR3を回転駆動し、制御基板から駆動パルスの供給が断たれると、ステッピングモータの回転が停止することに伴って第1リールR1〜第3リールR3が停止する。   The first reel R1 to the third reel R3 are pivotally supported by a stepping motor (not shown) serving as a reel driving means, and are each driven to rotate around the axis of the stepping motor. By controlling the width or the like, it is possible to stop in units of frames (a predetermined rotation angle unit, a predetermined rotation amount unit). That is, in the slot machine 1, the stepping motor rotates the first reel R1 to the third reel R3 according to the drive pulse supplied from the control board, and when the supply of the drive pulse from the control board is cut off, the stepping motor As the rotation stops, the first reel R1 to the third reel R3 stop.

前面上扉UDと前面下扉DDとは、個別に開閉可能に設けられている。前面上扉UDには、第1リールR1〜第3リールR3の回転状態及び停止状態を観察可能にする表示窓DWが設けられている。第1リールR1〜第3リールR3の停止状態では、第1リールR1〜第3リールR3それぞれの外周面に一定間隔で配列された複数種類の図柄のうち、外周面上に連続して配列されている3つの図柄(上段図柄、中段図柄、下段図柄)をスロットマシン1の正面から表示窓DWを通じて観察できるようになっている。   The front upper door UD and the front lower door DD are provided so that they can be opened and closed individually. The front upper door UD is provided with a display window DW that allows observation of the rotation state and the stop state of the first reel R1 to the third reel R3. In the stopped state of the first reel R1 to the third reel R3, the plurality of types of symbols arranged at regular intervals on the outer peripheral surfaces of the first reel R1 to the third reel R3 are continuously arranged on the outer peripheral surface. The three symbols (the upper symbol, the middle symbol, and the lower symbol) can be observed from the front of the slot machine 1 through the display window DW.

また、スロットマシン1では、表示窓DWを通じて図柄を観察するための表示位置として、各リールについて上段、中段、下段が設けられており、各リールの表示位置の組合せによって有効ラインL1が設定されている。なお、スロットマシン1では、1回の遊技に関して必要となるメダルの数、いわゆる規定投入数が、遊技状態に応じてそれぞれ2枚(第2規定投入数)又は3枚(第1規定投入数)に設定されており、各遊技状態に設定された規定投入数に相当するメダルが投入されると第1リールR1〜第3リールR3の中段によって構成される有効ラインL1が有効化される。   Further, in the slot machine 1, upper, middle, and lower stages are provided for each reel as display positions for observing symbols through the display window DW, and an effective line L1 is set by a combination of display positions of the reels. Yes. In the slot machine 1, the number of medals required for one game, the so-called prescribed insertion number, is two (second prescribed insertion number) or three (first prescribed insertion number) depending on the gaming state. When a medal corresponding to the specified insertion number set in each gaming state is inserted, the effective line L1 configured by the middle stages of the first reel R1 to the third reel R3 is activated.

そして、遊技結果は、表示窓DW内の有効ラインL1上に停止表示された図柄組合せによって判定され、有効ラインL1上の図柄組合せが予め定められた役に対応した図柄組合せである場合に、その役が入賞したものとしてホッパーユニット920からメダルの払い出し等が行われる。   The game result is determined by the symbol combination stopped and displayed on the active line L1 in the display window DW, and when the symbol combination on the effective line L1 is a symbol combination corresponding to a predetermined role, As a winning combination, a medal is paid out from the hopper unit 920.

前面上扉UDには、主制御表示装置500を含む遊技情報表示部DSが設けられている。遊技情報表示部DSは、LED、ランプ、7セグメント表示器等からなり、メダルのクレジット数、1回の遊技におけるメダルの払出数あるいは獲得数、ボーナス状態でのメダルの払出数の合計あるいは獲得数の合計、今回の遊技で当選した役の情報、メダルの払い出しに関係するストップボタンB1〜ストップボタンB3の押し方を示唆する情報の表示等の各種遊技情報が表示される。主制御表示装置500には、規定投入数のメダルが投入されスタートレバーSLが操作された際に、今回の遊技で当選した役の情報である当選情報に基づき作成される制御信号である当選コマンドに対応する表示である報知表示が表示される。また、主制御表示装置500には、7セグメント表示器のドットであり、後述する有利期間制御手段710によって有利期間が開始されている場合に点灯し、有利期間が開始されていない、つまり非有利期間が開始されている場合に消灯することで有利期間が開始されているか否かを報知する有利期間報知部500Aが設けられている。   The front upper door UD is provided with a game information display unit DS including the main control display device 500. The game information display unit DS includes an LED, a lamp, a 7-segment display, and the like. The number of medals credits, the number of medals paid out or won in one game, and the total number of medals paid out or won in a bonus state. A variety of game information such as information on the winning combination in the current game, information indicating how to press the stop buttons B1 to B3 related to the payout of medals, and the like are displayed. In the main control display device 500, when a prescribed number of medals are inserted and the start lever SL is operated, a winning command which is a control signal generated based on winning information which is information of a winning combination in the current game A notification display that is a display corresponding to is displayed. Further, the main control display device 500 is a dot of a 7-segment display, and is lit when the advantageous period is started by the advantageous period control means 710 described later, and the advantageous period is not started, that is, not advantageous. There is provided an advantageous period notifying unit 500A for notifying whether or not the advantageous period is started by turning off the light when the period is started.

また、前面上扉UDには、演出を行うための演出表示装置930が設けられている。演出表示装置930は、例えば液晶ディスプレイから構成され、遊技を補助したり、遊技を盛り上げたりするための各種の映像や画像が表示される。また、スロットマシン1では、前面上扉UDや前面下扉DDに対して、演出を行うためのスピーカ(図示省略)が複数設けられている。スピーカからは、遊技を補助したり、遊技を盛り上げたりするための各種の音声が出力される。   The front upper door UD is provided with an effect display device 930 for performing effects. The effect display device 930 is composed of, for example, a liquid crystal display, and displays various videos and images for assisting the game or exciting the game. Further, in the slot machine 1, a plurality of speakers (not shown) for performing effects are provided for the front upper door UD and the front lower door DD. From the speaker, various sounds for assisting the game or exciting the game are output.

前面下扉DDには、各種の操作手段が設けられている。操作手段としては、クレジット(貯留)されたメダルを投入する操作を行うための投入操作手段として、1枚のメダルを投入するシングルベットボタンBT及び規定投入数のメダルを投入するマックスベットボタンMB、第1リールR1〜第3リールR3を回転させて遊技を開始する契機となる開始操作を遊技者に実行させるための遊技開始操作手段としてのスタートレバーSL、ステッピングモータにより回転駆動されている第1リールR1〜第3リールR3のそれぞれを停止させる契機となる停止操作を遊技者に実行させるための停止操作手段としてのストップボタンB1〜ストップボタンB3及びクレジットされたメダルを精算するための精算ボタンBS、遊技者の演出に関する操作を受け付ける演出操作装置JGも設けられている。   Various operation means are provided on the front lower door DD. As the operation means, a single bet button BT for inserting one medal and a max bet button MB for inserting a predetermined number of medals as input operation means for performing an operation of inserting a credited (stored) medal. The first lever R1 to the third reel R3 are rotated and driven by a start lever SL as a game start operation means for causing the player to execute a start operation that triggers the start of the game by rotating the first reel R1 to the third reel R3. Stop buttons B1 to B3 as stop operation means for causing the player to execute a stop operation that triggers the stop of each of the reels R1 to R3, and an adjustment button BS for adjusting the credited medals. An effect operating device JG that receives operations related to the player's effects is also provided.

演出操作装置JGは、左右に回転可能なリング状の回転操作部JGDと、回転操作部JGDの回転中心に設けられ押下操作することができるボタンJGBとから構成されている。回転操作部JGDは、回転方向及び回転量(角度)を検知し、検知した情報を出力することで遊技者の回転操作を受け付けることができる。ボタンJGBは、押下操作された場合に副制御部20(図17参照)へ信号を出力することで遊技者の押下操作を受け付ける。演出操作装置JGは、演出表示装置930に表示される画像等に合わせて有効化され、操作有効期間内に遊技者の操作を受け付けると、当該操作に応じて、様々な演出が実行される。   The effect operation device JG includes a ring-shaped rotation operation unit JGD that can rotate left and right, and a button JGB that is provided at the rotation center of the rotation operation unit JGD and can be pressed. The rotation operation unit JGD can receive the player's rotation operation by detecting the rotation direction and the rotation amount (angle) and outputting the detected information. The button JGB receives a player's pressing operation by outputting a signal to the sub-control unit 20 (see FIG. 17) when the button JGB is pressed. The effect operation device JG is activated in accordance with an image displayed on the effect display device 930, and when an operation of the player is received within the operation effective period, various effects are executed according to the operation.

スロットマシン1では、遊技者がメダルをメダル投入口MIに投入するか、メダルが規定投入数以上にクレジットされている場合に、規定投入数と同じ回数シングルベットボタンBTを押下するシングルベット操作又はマックスベットボタンMBを押下するマックスベット操作を行うことで、規定投入数のメダルが投入状態に設定され、第1リールR1〜第3リールR3の回転制御を開始することが可能な準備状態にセットされる。そして、遊技者がスタートレバーSLに対して開始操作を実行すると、制御基板において第1リールR1〜第3リールR3をステッピングモータの駆動により回転開始させるとともに、乱数を用いた内部抽選が行われ、第1リールR1〜第3リールR3の回転速度が所定の速度まで上昇し定常回転になったことを条件に、ストップボタンB1〜ストップボタンB3の押下操作が許可、すなわちストップボタンB1〜ストップボタンB3による停止操作が有効化される。   In the slot machine 1, when the player inserts a medal into the medal insertion slot MI or when the medal is credited more than the predetermined insertion number, the single bet operation or pressing the single bet button BT as many times as the predetermined insertion number or By performing a max bet operation by depressing the max bet button MB, a predetermined number of medals are set to the inserted state and set to a ready state in which the rotation control of the first reel R1 to the third reel R3 can be started. Is done. And when a player performs start operation with respect to the start lever SL, while rotating the 1st reel R1-3rd reel R3 by the drive of a stepping motor in a control board, the internal lottery using a random number is performed, On the condition that the rotation speeds of the first reel R1 to the third reel R3 are increased to a predetermined speed and become a steady rotation, the pressing operation of the stop button B1 to the stop button B3 is permitted, that is, the stop button B1 to the stop button B3. The stop operation by is activated.

その後、遊技者が任意のタイミングでストップボタンB1〜ストップボタンB3を押下(以下、「押下タイミング」と記載)していくと、ストップボタンB1〜ストップボタンB3のそれぞれに内蔵されている停止信号出力手段としてのストップスイッチ840がON動作を行い、制御基板へ出力するリール停止信号をOFF状態からON状態へ変化させる。   Thereafter, when the player presses down the stop button B1 to the stop button B3 (hereinafter referred to as “pressing timing”) at an arbitrary timing, the stop signal output built in each of the stop buttons B1 to B3 is output. A stop switch 840 as a means performs an ON operation to change the reel stop signal output to the control board from the OFF state to the ON state.

また、遊技者が任意のタイミングで押下状態にあるストップボタンB1〜ストップボタンB3を解放すると、ストップボタンB1〜ストップボタンB3のそれぞれに対応するストップスイッチがOFF動作を行い、制御基板へ出力するリール停止信号をON状態からOFF状態に変化させる。そして、制御基板は、ストップボタンB1〜ストップボタンB3の押下タイミング及び解放タイミングに応じて信号状態が変化するリール停止信号のOFF状態からON状態への変化に基づいて、内部抽選の結果に応じた停止位置で第1リールR1〜第3リールR3を停止させる。   In addition, when the player releases the stop button B1 to the stop button B3 that are in a pressed state at an arbitrary timing, the stop switches corresponding to the stop buttons B1 to B3 perform the OFF operation, and the reels output to the control board The stop signal is changed from the ON state to the OFF state. Then, the control board responds to the result of the internal lottery based on the change from the OFF state to the ON state of the reel stop signal whose signal state changes according to the press timing and release timing of the stop buttons B1 to B3. The first reel R1 to the third reel R3 are stopped at the stop position.

また、前面下扉DDの下部には、メダル払出口MOとメダル受け皿MPとが設けられており、遊技の結果に応じた枚数のメダルがメダル払出口MOからメダル受け皿MPへ払い出されるようになっている。また、遊技機内にクレジットされたメダルが記憶されている状態で、精算ボタンBSが押下された場合、精算ボタンBSの押下に伴ってホッパーユニット920からクレジット数(クレジットされたメダルの枚数)に相当する枚数のメダルを払い出す精算処理を実行し、メダル払出口MOからメダル受け皿MPへメダルを払い出す。   Further, a medal payout opening MO and a medal tray MP are provided at the lower part of the front lower door DD, and the number of medals according to the game result is paid out from the medal payout port MO to the medal tray MP. ing. Further, when the settlement button BS is pressed in a state where the credited medals are stored in the gaming machine, it corresponds to the number of credits (number of credited medals) from the hopper unit 920 when the settlement button BS is pressed. A settlement process for paying out the number of medals is executed, and the medals are paid out from the medal payout exit MO to the medal tray MP.

<スロットマシンの電気的構成>
図17は、スロットマシン1の機能ブロック図である。スロットマシン1は、それぞれ独立した制御基板である主制御部10と副制御部20とによって制御される。主制御部10は、複数の主操作検出手段としてのメダル投入スイッチ810、ベットスイッチ820、スタートスイッチ830、ストップスイッチ840、設定変更スイッチ850及びリセットスイッチ860の入力手段からの入力信号を受けて、遊技を実行するための各種の演算を行い、演算結果に基づいてリールユニット910、ホッパーユニット920、遊技情報表示部DS等の出力手段の動作を制御する。また、スロットマシン1においては、主制御部10と副制御部20とについて、主制御部10から副制御部20への短方向通信のみを可能に構成され、主制御部10から副制御部20へ各種信号を送信可能であるものの、副制御部20から主制御部10へ各種信号を送信することができないように通信接続されている。
<Electric configuration of slot machine>
FIG. 17 is a functional block diagram of the slot machine 1. The slot machine 1 is controlled by a main control unit 10 and a sub control unit 20 which are independent control boards. The main control unit 10 receives input signals from the input means of the medal insertion switch 810, the bet switch 820, the start switch 830, the stop switch 840, the setting change switch 850, and the reset switch 860 as a plurality of main operation detecting means. Various calculations for executing the game are performed, and operations of the output means such as the reel unit 910, the hopper unit 920, and the game information display unit DS are controlled based on the calculation results. In the slot machine 1, the main control unit 10 and the sub control unit 20 are configured to enable only short direction communication from the main control unit 10 to the sub control unit 20. Although various signals can be transmitted, the communication connection is established so that various signals cannot be transmitted from the sub-control unit 20 to the main control unit 10.

主制御部10は、遊技の進行を制御し、メインCPU11と、メインROM12と、メインRAM13と、を備えている。メインCPU11は、各入力手段からの入力信号に基づいて、メインROM12に格納されたプログラムを読み出して演算処理を行うとともに、各装置や表示器を直接制御したり、あるいは演算処理の結果に応じて他の制御部に主制御部10で生成したコマンドである第1コマンドを送信したりすることで、遊技の進行に係る制御処理を実行する。メインRAM13は、メインCPU11の演算処理時におけるデータのワークエリアとして機能する。   The main control unit 10 controls the progress of the game, and includes a main CPU 11, a main ROM 12, and a main RAM 13. The main CPU 11 reads out a program stored in the main ROM 12 based on an input signal from each input means and performs arithmetic processing, and directly controls each device and display, or according to the result of the arithmetic processing. A control process related to the progress of the game is executed by transmitting a first command that is a command generated by the main control unit 10 to another control unit. The main RAM 13 functions as a data work area when the main CPU 11 performs arithmetic processing.

メインCPU11は、メインROM12に格納されたプログラムに基づき、メインRAM13と協働して、設定変更手段701、投入受付手段702、乱数生成手段703、内部抽選手段704、リール制御手段705、入賞判定手段706、払出制御手段707、リプレイ処理手段708、遊技状態移行制御手段709、有利期間制御手段710、指示機能状態制御手段711として機能する。   Based on the program stored in the main ROM 12, the main CPU 11 cooperates with the main RAM 13 to set change means 701, insertion acceptance means 702, random number generation means 703, internal lottery means 704, reel control means 705, winning determination means. 706, payout control means 707, replay processing means 708, gaming state transition control means 709, advantageous period control means 710, and instruction function state control means 711.

設定変更手段701は、メインRAM13に記憶されている設定値を変更する制御を行う。スロットマシン1では、収納箱BX内に収められた電源装置に設けられている設定変更スイッチ850から出力される信号である設定信号が入力されることで、設定変更が実行される。スロットマシン1では、設定変更手段701によって確定された設定値に応じて、内部抽選手段704による内部抽選で当選可能な当選エリアのうち一部の当選エリアの当選確率が変更される。   The setting changing unit 701 performs control to change the setting value stored in the main RAM 13. In the slot machine 1, the setting change is executed by inputting a setting signal that is a signal output from the setting change switch 850 provided in the power supply device housed in the storage box BX. In the slot machine 1, the winning probabilities of some winning areas among the winning areas that can be won by the internal lottery by the internal lottery means 704 are changed according to the setting value determined by the setting changing means 701.

投入受付手段702は、メダルの投入を受け付ける投入受付期間において、規定投入数に相当するメダルが投入されたことに基づいて、スタートレバーSLに対する遊技開始操作を有効化する処理を行う。具体的には、メダル投入口MIにメダルが投入されると、メダル投入スイッチ810が作動することに伴って、投入受付手段702が、規定投入数を限度として、投入されたメダルを投入状態に設定する。また、投入受付手段702は、メダルがクレジットされた状態でシングルベットボタンBT又はマックスベットボタンMBが押下されるベット操作が実行されると、ベットスイッチ820が作動することに伴って、規定投入数を限度として、クレジットされたメダルを投入状態に設定する。   The insertion accepting means 702 performs a process of validating the game start operation for the start lever SL based on the insertion of medals corresponding to the prescribed number of insertions in the insertion acceptance period for accepting medal insertion. Specifically, when a medal is inserted into the medal slot MI, the medal insertion switch 810 is activated, and the insertion accepting means 702 puts the inserted medal into the insertion state up to the specified number of insertions. Set. In addition, when the bet operation in which the single bet button BT or the max bet button MB is pressed while the medal is credited is executed, the insertion accepting unit 702 operates in accordance with the operation of the bet switch 820. The credited medal is set to the inserted state with the limit of.

なお、スロットマシン1では、規定投入数に相当するメダルの投入に基づいて有効化されたスタートレバーSLの最初の押下操作が、遊技者による遊技の開始操作として受け付けられ、第1リールR1〜第3リールR3の回転を開始させる契機となっているとともに、後述する内部抽選手段704が内部抽選を実行する契機となっている。   In the slot machine 1, the first pressing operation of the start lever SL activated based on the insertion of medals corresponding to the specified number of insertions is accepted as a game starting operation by the player, and the first reel R1 to the first reel R1. It is an opportunity to start the rotation of the three reels R3, and an internal lottery means 704 described later is an opportunity to execute the internal lottery.

メイン側乱数生成手段である乱数生成手段703は、抽選用の乱数を発生させる手段である。乱数は、例えば、インクリメントカウンタ(所定のカウント範囲を循環するように数値をカウントするカウンタ)のカウント値に基づいて発生させることができる。なお、「乱数」には、数学的な意味でランダムに発生する値のみならず、発生自体は規則的であっても、取得タイミング等が不規則であるために実質的に乱数として機能しうる値も含まれる。   A random number generation means 703 which is a main random number generation means is a means for generating random numbers for lottery. The random number can be generated based on, for example, a count value of an increment counter (a counter that counts numerical values so as to circulate a predetermined count range). “Random number” is not only a value that occurs randomly in a mathematical sense, but even if the generation itself is regular, it can function substantially as a random number because the acquisition timing is irregular. A value is also included.

内部抽選手段704は、遊技者がスタートレバーSLに対して開始操作を実行し、スタートスイッチ830が開始操作を検出することで出力されるスタート信号に基づいて、役の当否を決定する内部抽選を行う手段であって、抽選テーブル選択処理、乱数判定処理、抽選フラグ設定処理等を行う。   The internal lottery means 704 performs an internal lottery for determining whether or not a winning combination is made based on a start signal output when the player executes a start operation on the start lever SL and the start switch 830 detects the start operation. This is a means for performing lottery table selection processing, random number determination processing, lottery flag setting processing, and the like.

抽選テーブル選択処理では、メインROM12に格納されている複数の内部抽選テーブルのうち、いずれの内部抽選テーブルを用いて内部抽選を行うかを現在の遊技状態に基づき選択する。各内部抽選テーブルでは、複数の乱数(例えば、0〜65535の65536個の乱数)のそれぞれに対して、リプレイ、小役及びボーナスなどの各種の役やハズレ(不当選)が対応付けられている。   In the lottery table selection process, which internal lottery table is used to select the internal lottery table among the plurality of internal lottery tables stored in the main ROM 12 is selected based on the current gaming state. In each internal lottery table, each of a plurality of random numbers (for example, 65536 random numbers from 0 to 65535) is associated with various combinations such as replays, small roles, bonuses, and loses (unauthorized). .

乱数判定処理では、スタートスイッチ830から出力されるスタート信号に基づいて、遊技ごとに乱数生成手段703が生成する乱数(抽選用乱数)を取得し、取得した乱数を抽選テーブル選択処理で選択した内部抽選テーブルと比較して、比較結果に基づき役に当選したか否かを判定する。   In the random number determination process, based on the start signal output from the start switch 830, a random number (lottery random number) generated by the random number generation means 703 for each game is acquired, and the acquired random number is selected in the lottery table selection process. Compared with the lottery table, it is determined whether or not the winning combination is won based on the comparison result.

抽選フラグ設定処理では、乱数判定処理の結果に基づいて、当選したと判定された役に対応する抽選フラグを非成立状態(第1のフラグ状態、OFF状態)から成立状態(第2のフラグ状態、ON状態)に設定する。スロットマシン1では、2種類以上の役が重複して当選した場合には、重複して当選した2種類以上の役のそれぞれに対応する抽選フラグが成立状態に設定される。なお、抽選フラグの設定情報は、メインRAM13に格納される。   In the lottery flag setting process, the lottery flag corresponding to the winning combination determined to be won based on the result of the random number determination process is changed from the non-established state (first flag state, OFF state) to the established state (second flag state). , ON state). In the slot machine 1, when two or more types of winning combinations are won, a lottery flag corresponding to each of the two or more types of winning winning combinations is set to the established state. The lottery flag setting information is stored in the main RAM 13.

リール制御手段705は、遊技者がスタートレバーSLへ開始操作を実行することにより作動するスタートスイッチ830から、スタート信号が出力されたことに基づいて、ステッピングモータにより第1リールR1〜第3リールR3の回転駆動を開始する。また、リール制御手段705は、第1リールR1〜第3リールR3の回転状態が、所定速度(例えば、約80rpm)で定常回転する回転状態となった場合に、各リールに対応するストップボタンB1〜ストップボタンB3が押下操作されることでストップスイッチ840によって検出される停止操作を有効化する制御を実行する。そして、リール制御手段705は、停止操作の検出に基づきストップスイッチ840からリール停止信号が出力された場合に、リールユニット910のステッピングモータへの駆動パルス(モータ駆動信号)の供給を停止することにより、第1リールR1〜第3リールR3の各リールを停止させる制御を行う。このとき、リール制御手段705は、ステッピングモータにより回転駆動されている第1リールR1〜第3リールR3を抽選フラグの設定状態、すなわち内部抽選の結果に応じた態様で停止させる制御を行う。つまり、リール制御手段705は、ストップボタンB1〜ストップボタンB3の各ボタンが押下されるごとに、第1リールR1〜第3リールR3のうち押下されたストップボタンに対応するリールの停止位置を決定して、決定された停止位置でリールを停止させる制御を行っている。   The reel control means 705 is provided with a first reel R1 to a third reel R3 by a stepping motor based on the output of a start signal from a start switch 830 that is activated by a player performing a start operation on the start lever SL. The rotation drive of is started. Further, the reel control means 705 provides a stop button B1 corresponding to each reel when the rotation state of the first reel R1 to the third reel R3 is a rotation state in which the first reel R1 to the third reel R3 rotate at a predetermined speed (for example, about 80 rpm). Control for enabling the stop operation detected by the stop switch 840 when the stop button B3 is pressed is executed. The reel control means 705 stops supply of drive pulses (motor drive signal) to the stepping motor of the reel unit 910 when a reel stop signal is output from the stop switch 840 based on detection of the stop operation. Then, control is performed to stop each of the first reel R1 to the third reel R3. At this time, the reel control means 705 performs control to stop the first reel R1 to the third reel R3, which are rotationally driven by the stepping motor, in a manner according to the lottery flag setting state, that is, the result of the internal lottery. That is, the reel control means 705 determines the stop position of the reel corresponding to the pressed stop button among the first reel R1 to the third reel R3 each time each of the stop buttons B1 to B3 is pressed. Thus, control is performed to stop the reel at the determined stop position.

また、スロットマシン1では、第1リールR1〜第3リールR3について、ストップボタンB1〜ストップボタンB3が押下された時点から190ms以内に、押下されたストップボタンに対応する回転中のリールを停止するようになっている。ここで、ストップボタンの押下時点から190ms以内に回転中のリールを停止させる場合、回転している各リールの停止位置は、各リールの直径及び回転速度により、ストップボタンの押下時点からリールが停止するまでに最大で4コマ分回転可能に構成されている。リール制御手段705は、ストップボタンB1〜ストップボタンB3のうち押下操作が行われたストップボタンに対応する回転中のリールの外周面上において、内部抽選で当選した役に対応する図柄が、ストップボタンに対する押下操作が行われた時点で有効ラインL1上の表示位置に対して0コマ〜4コマの範囲内に位置する場合に、抽選フラグが当選状態に設定されている役に対応する図柄を有効ラインL1上の表示位置に表示するように、押下操作が行われたストップボタンに対応する回転中のリールを停止させる制御を行っている。   In the slot machine 1, for the first reel R1 to the third reel R3, the rotating reel corresponding to the pressed stop button is stopped within 190 ms from the time when the stop button B1 to the stop button B3 is pressed. It is like that. Here, when the rotating reel is stopped within 190 ms from the time when the stop button is pressed, the reel is stopped from the time when the stop button is pressed depending on the diameter and rotation speed of each reel. Up to 4 frames can be rotated up to this point. The reel control means 705 displays a symbol corresponding to the winning combination in the internal lottery on the outer peripheral surface of the rotating reel corresponding to the stop button that has been pressed among the stop buttons B1 to B3. The symbol corresponding to the combination for which the lottery flag is set to the winning state is valid when the position is within the range of 0 frame to 4 frames with respect to the display position on the active line L1 at the time when the operation is pressed. Control is performed to stop the rotating reel corresponding to the stop button on which the pressing operation has been performed so that the reel is displayed at the display position on the line L1.

リール制御手段705は、スタートスイッチ830が開始操作を検出することで出力されるスタート信号を受信し、第1リールR1〜第3リールR3の回転を開始して1回の遊技を開始した場合に、一般にウェイト(又はウェイト時間)と称される待機時間(約4.1秒)を設定するように構成されている。そして、リール制御手段705は、待機時間の設定から待機時間が経過するまでの期間内にスタート信号をスタートスイッチ830から受信した場合に、待機時間が経過した後に第1リールR1〜第3リールR3の回転を開始するように構成されている。この構成により、リール制御手段705は、1回の遊技の開始から次の遊技の開始までに一定の時間として最小遊技時間(約4.1秒)を経過してから遊技を開始させることができる。   The reel control means 705 receives the start signal output when the start switch 830 detects the start operation, and starts the rotation of the first reel R1 to the third reel R3 to start one game. A standby time (about 4.1 seconds) generally called a wait (or wait time) is set. Then, when the reel control means 705 receives a start signal from the start switch 830 within a period from the setting of the standby time until the standby time elapses, the first reel R1 to the third reel R3 after the standby time has elapsed. Is configured to start rotation. With this configuration, the reel control means 705 can start a game after a minimum game time (about 4.1 seconds) has elapsed as a certain time from the start of one game to the start of the next game. .

入賞判定手段706は、第1リールR1〜第3リールR3の全てが停止した時点で有効ラインL1上に表示されている図柄組合せ(第1リールR1〜第3リールR3の停止態様)が、予め定められた役の入賞の形態であるか否かを判定する入賞判定処理を行う。スロットマシン1では、入賞判定処理における入賞判定手段706の判定結果に基づいて各処理が実行される。入賞役の判定結果に基づき実行される各処理としては、例えば、小役が入賞した場合には払出制御手段707にメダルを払い出させる枚数を決定する処理が行われ、リプレイが入賞した場合には、リプレイ処理手段708に次回の遊技においてメダルを消費せずに実行させる処理を行わせ、ボーナスが入賞した場合には遊技状態移行制御手段709に入賞したボーナスを作動させる処理が行われる。   The winning determination means 706 indicates that the symbol combination displayed on the active line L1 at the time when all of the first reel R1 to the third reel R3 are stopped (the stop mode of the first reel R1 to the third reel R3) is previously determined. A winning determination process is performed for determining whether or not the predetermined winning combination is in the form of winning. In the slot machine 1, each process is executed based on the determination result of the winning determination means 706 in the winning determination process. As each process executed based on the winning combination determination result, for example, when a small combination wins, a process for determining the number of medals to be paid out by the payout control means 707 is performed, and when a replay wins. In the next game, the replay processing unit 708 performs processing without consuming medals, and when a bonus is won, processing for operating the winning bonus in the gaming state transition control unit 709 is performed.

払出制御手段707は、入賞判定手段706による入賞判定処理の結果に基づき、払出数に相当するメダルを、払出装置としてのホッパーユニット920に払い出させる払出制御を行う。ホッパーユニット920には、メダルを1枚払い出すごとに作動する払出メダル検出スイッチ925が備えられている。払出制御手段707は、払出メダル検出スイッチ925からの入力信号に基づいて、ホッパーユニット920から実際に払い出されたメダルの数を管理することができるように構成されている。なお、メダルのクレジットが許可されている場合には、ホッパーユニット920によって実際にメダルの払い出しを行う代わりに、メインRAM13のクレジット記憶領域(図示省略)に記憶されているクレジット数(クレジットされたメダルの数)に対して払出数を加算するクレジット加算処理を行って仮想的にメダルを払い出す処理を行う。   The payout control means 707 performs payout control for paying out medals corresponding to the number of payouts to a hopper unit 920 as a payout device based on the result of the winning determination process by the winning determination means 706. The hopper unit 920 is provided with a payout medal detection switch 925 that operates every time a single medal is paid out. The payout control means 707 is configured to manage the number of medals actually paid out from the hopper unit 920 based on an input signal from the payout medal detection switch 925. In the case where medal credits are permitted, instead of actually paying out medals by the hopper unit 920, the number of credits stored in the credit storage area (not shown) of the main RAM 13 (credited medals). The credit addition process of adding the number of payouts to the number of payouts is performed to virtually pay out medals.

リプレイ処理手段708は、入賞判定手段706により有効ラインL1上に複数種類のリプレイのうちいずれかのリプレイの入賞を示す図柄組合せが停止表示されたと判定され、リプレイが入賞した場合に、次回の遊技に関してメダルの投入を要さずに遊技を実行可能にする準備状態に設定するリプレイ処理(再遊技処理)を行う。すなわち、スロットマシン1では、リプレイが入賞した場合、規定投入数分のメダルを遊技者の手持ちのメダル(クレジットメダルを含む)を使わずに自動的に投入する自動投入処理が行われ、前回の遊技と同じ有効ラインL1を設定した状態で、次回のスタートレバーSLに対する開始操作を待機する。   The replay processing means 708 determines that the symbol combination indicating the winning of any one of the replays is stopped and displayed on the active line L1 by the winning determination means 706, and when the replay wins, the next game A replay process (re-game process) is performed to set a ready state in which a game can be executed without requiring medal insertion. That is, in the slot machine 1, when a replay is won, automatic insertion processing is performed in which medals for the specified number of insertions are automatically inserted without using the medals (including credit medals) held by the player. In a state where the same effective line L1 as the game is set, the next start operation for the start lever SL is awaited.

遊技状態移行制御手段709は、リプレイの当選態様がそれぞれ異なる複数の遊技状態の間での遊技状態の移行と、内部抽選手段704による内部抽選で、抽選フラグが成立状態に設定された場合に、入賞するまで成立状態が維持されるボーナスに当選した場合に、現在の遊技状態からボーナス成立状態への遊技状態の移行と、入賞したボーナスを作動させるとともに作動させたボーナスに対応する遊技状態であるボーナス状態への遊技状態の移行と、の遊技状態移行制御を行う。   When the lottery flag is set to the established state by the game state transition between a plurality of game states with different replay winning modes and the internal lottery by the internal lottery unit 704, the gaming state transition control unit 709 When winning a bonus that is maintained until the prize is won, the game state transitions from the current gaming state to the bonus establishment state, and the gaming state corresponding to the activated bonus is activated. The game state transition control to the bonus state is performed.

有利期間制御手段710は、特定役の入賞を補助する入賞補助制御を実行可能な遊技が実行される期間である有利期間(有利区間)と、入賞補助制御が実行されない遊技が実行される期間である非有利期間(非有利区間)と、の間での移行に係る制御を実行する。有利期間制御手段710は、有利期間と非有利期間との間での移行に係る制御として、非有利期間内における遊技において、ボーナスが非成立状態であり、かつボーナスの非作動中である場合に設定差がない当選エリアに当選した場合に、非有利期間を終了し有利期間を開始するか否かを決定する抽選である有利期間抽選を実行する。   The advantageous period control means 710 includes an advantageous period (advantageous period) in which a game capable of executing the winning assist control for assisting the winning of the specific combination is executed, and a period in which a game in which the winning auxiliary control is not executed is executed. Control related to transition between a certain non-advantage period (non-advantage period) is executed. Advantageous period control means 710 is a control related to the transition between the advantageous period and the non-advantaged period, when the bonus is not established and the bonus is not activated in the game within the non-advantageous period. When a winning area with no setting difference is won, an advantageous period lottery that is a lottery for deciding whether to end the non-advantage period and start the advantageous period is executed.

有利期間制御手段710は、予め設定された有利期間を終了する条件が成立した場合や、有利期間を開始してから所定の遊技回数(例えば1500ゲーム)の遊技が実行された場合に、有利期間を終了し次ゲームから非有利期間を開始するとともに、有利期間中に使用した指示機能に係る全パラメータを初期化する処理である終了処理を実行する。また、有利期間制御手段710は、有利期間を開始した場合に有利期間報知部500Aを点灯させ、非有利期間を開始した場合に有利期間報知部500Aを消灯させる。   The advantageous period control means 710 performs the advantageous period when a condition for ending the advantageous period set in advance is satisfied, or when a predetermined number of games (for example, 1500 games) are executed after the advantageous period is started. Is finished and a non-advantage period is started from the next game, and an end process, which is a process for initializing all parameters related to the instruction function used during the advantageous period, is executed. Further, the advantageous period control unit 710 turns on the advantageous period notification unit 500A when the advantageous period starts, and turns off the advantageous period notification unit 500A when the non-advantage period starts.

指示機能状態制御手段711は、有利期間制御手段710によって有利期間が開始されている場合に、入賞補助制御を実行可能な状態であるAT状態を含む複数の指示機能状態の間での指示機能状態の移行に係る制御を含む指示機能に係る制御(アシストタイム制御)を行う。指示機能状態制御手段711は、指示機能状態が入賞補助制御を実行可能な状態である場合に、特定役が入賞する確率を上げるための制御として、内部抽選手段704に当選した当選エリアに応じてそれぞれ異なる当選コマンドを作成させ、作成させた当選コマンドを主制御表示装置500に送信させることで、内部抽選で当選した当選エリアがいずれの当選エリアであるかを報知し、遊技者にストップボタンB1〜ストップボタンB3の操作方法を指示する機能(指示機能)である報知表示が主制御表示装置500に実行される制御である入賞補助制御を実行可能となるように構成されている。   The instruction function state control unit 711 indicates an instruction function state among a plurality of instruction function states including an AT state in which a winning assist control can be executed when the advantageous period is started by the advantageous period control unit 710. The control related to the instruction function including the control related to the shift (assist time control) is performed. In response to the winning area won by the internal lottery means 704 as control for increasing the probability that the specific combination will win when the instruction function state is a state where the winning assist control can be executed. Different winning commands are created, and the created winning command is transmitted to the main control display device 500 to notify which winning area the winning area won in the internal lottery is, and to the player the stop button B1 The notification display, which is a function (instructing function) for instructing the operation method of the stop button B3, is configured to be able to execute winning assistance control, which is control executed on the main control display device 500.

副制御部20は、主制御部10から送信されるコマンドに基づき演出を制御し、サブCPU21と、サブROM22と、サブRAM23と、を備えている。サブCPU21は、主制御部10から送信されたコマンドやタイマからの入力信号等などの外部信号に基づいて、サブROM22に格納されたプログラムを読み出して演算処理を行うとともに、演出表示装置930や音響装置940を含む演出装置900に演出を実行させる演出に係る制御を実行する。サブRAM23は、サブCPU21の演算処理時におけるデータのワークエリアとして機能する。   The sub control unit 20 controls the presentation based on the command transmitted from the main control unit 10, and includes a sub CPU 21, a sub ROM 22, and a sub RAM 23. The sub CPU 21 reads out a program stored in the sub ROM 22 based on an external signal such as a command transmitted from the main control unit 10 or an input signal from a timer, performs arithmetic processing, and produces an effect display device 930 or an acoustic signal. Control related to the effect of causing the effect device 900 including the device 940 to execute the effect is executed. The sub RAM 23 functions as a data work area when the sub CPU 21 performs arithmetic processing.

上記サブROM22には、演出プログラムP11、乱数種生成プログラムP21、乱数生成プログラムP31、タスク管理プログラムP41、乱数取得ドライバP51、デバッグ情報取得ドライバP61などの各種プログラムや、演出の内容を決定するための複数の演出抽選テーブルなどのデータが格納されており、サブCPU21は、これらサブROM22に格納されたプログラムを読み出して演算処理を行うことにより、演出制御手段、乱数種生成手段、乱数生成手段、タスク管理手段として機能する。また、サブRAM23には、演出プログラムP11が演出抽選処理を実行する際に使用する乱数が蓄積される乱数バッファ6021a1が設けられている。   The sub ROM 22 determines various programs such as the production program P11, the random number seed generation program P21, the random number generation program P31, the task management program P41, the random number acquisition driver P51, the debug information acquisition driver P61, and the contents of the production. Data such as a plurality of effect lottery tables are stored, and the sub CPU 21 reads the program stored in the sub ROM 22 and performs arithmetic processing to thereby perform effect control means, random number seed generation means, random number generation means, task Functions as a management means. Further, the sub RAM 23 is provided with a random number buffer 6021a1 in which random numbers used when the effect program P11 executes the effect lottery process are stored.

演出制御手段は、演出プログラムP11がサブCPU21により読み出し、実行されることによって機能する手段であり、実行する演出を乱数に基づいて決定する演出抽選処理等の演出に係る制御を実行する。演出制御手段は、これらの処理を、主制御部10から送信されたコマンドやタイマからの入力信号、演出操作装置800への遊技者の入力などの外部信号に基づいて実行する。   The effect control means functions when the effect program P11 is read and executed by the sub CPU 21, and executes control related to effects such as effect lottery processing for determining the effect to be executed based on random numbers. The effect control means executes these processes based on an external signal such as a command transmitted from the main control unit 10, an input signal from the timer, or a player input to the effect operating device 800.

乱数種生成手段は、乱数種生成プログラムP21がサブCPU21により読み出し、実行されることによって機能する手段であり、上記演出抽選処理にて使用されるソフトウェア乱数(擬似乱数)を演算する際の基となる乱数種(以下、シード値ともいう)を生成する。   The random number seed generation means is a means that functions when the random number seed generation program P21 is read and executed by the sub CPU 21, and is based on a software random number (pseudo random number) used in the effect lottery process. A random number seed (hereinafter also referred to as a seed value) is generated.

乱数生成手段は、乱数生成プログラムP31がサブCPU21により読み出し、実行されることによって機能する手段であり、所定の乱数生成アルゴリズムに基づいて演算により乱数を生成する乱数生成処理を実行する。乱数生成プログラムP31は、上述したようにスロットマシン1の電源投入時及びシステム安定時に上記乱数生成処理を実行する。   The random number generation means functions when the random number generation program P31 is read and executed by the sub CPU 21, and executes random number generation processing for generating random numbers by calculation based on a predetermined random number generation algorithm. As described above, the random number generation program P31 executes the random number generation process when the slot machine 1 is powered on and when the system is stable.

タスク管理手段は、タスク管理プログラムP41がサブCPU21により読み出し、実行されることによって機能する手段であり、サブCPU21が実行する制御処理に係るタスクの優先度を設定する。タスク管理手段は、間隔の短い所定時間毎(本実施の形態では30fps(33.33ms)のサイクル)に優先度の設定を更新すると共に、サブCPU21は、上記所定時間内において実行可能なタスクを優先度に従って逐次処理する。上記処理が繰り返し実行されることによって、遊技者には複数のプロセスが同時に実行されているように見えるようになっている。   The task management unit is a unit that functions when the task management program P41 is read and executed by the sub CPU 21, and sets the priority of the task related to the control process executed by the sub CPU 21. The task management means updates the priority setting every predetermined time with a short interval (a cycle of 30 fps (33.33 ms) in the present embodiment), and the sub CPU 21 executes tasks that can be executed within the predetermined time. Process sequentially according to priority. By repeatedly executing the above processing, it seems that a plurality of processes are simultaneously executed for the player.

スロットマシン1においても上述したパチンコ機100と同様に、乱数バッファ6021a1を設け、演出プログラムP11が乱数を使用する前に、予め乱数生成プログラムP31によって乱数の生成及び蓄積を行っており、乱数生成のタイミングを乱数使用時以外のタイミングにズラしている。これにより、例えば、スタートスイッチ830が開始操作を検出した後、各ストップボタンB1〜ストップボタンB3を押下するまでの間の期間や、遊技者による遊技が実行されていないデモ画面表示時など、サブCPU21に対する外部信号の入力が所定量以下となる低処理負荷状態の際に乱数を生成することができ、乱数生成に係る処理負荷を分散することができる。このため、上述した演出の切替時などサブCPU21が高負荷状態の際にサブCPU21の処理能力を乱数生成のために割くことを回避することができる。   Similarly to the pachinko machine 100 described above, the slot machine 1 is also provided with a random number buffer 6021a1, and the random number generation program P31 generates and stores random numbers in advance before the effect program P11 uses random numbers. The timing is shifted to a timing other than when random numbers are used. Thereby, for example, after the start switch 830 detects the start operation, the period from when each of the stop buttons B1 to B3 is pressed, or when the demo screen is displayed when the game is not executed by the player. Random numbers can be generated in a low processing load state in which the input of an external signal to the CPU 21 is a predetermined amount or less, and the processing load related to random number generation can be distributed. For this reason, when the sub CPU 21 is in a high load state such as at the time of switching the effects described above, it is possible to avoid allocating the processing capacity of the sub CPU 21 for generating random numbers.

また、上記スロットマシン1においても上述したパチンコ機100と同様に、例えば16ビット構成の乱数バッファ6021a1を経由して、乱数生成プログラムP31で生成した32ビット乱数を16ビット乱数に分割して演出プログラムP11に利用する場合、図11および図12に示した乱数生成処理、および32ビット乱数の生成個数(N)の決定処理を実施することができ、上述と同様の作用効果を期待できる。また、上記スロットマシン1においても上述したパチンコ機100と同様に、乱数バッファ6021a1を配置する場合には、乱数バッファ6021a1の枯渇に対処する代替処理(図13(b)、(c))を備えた乱数取得ドライバの構成、特に乱数バッファ6021aを経由して乱数の入出力を行うバッファモードと、乱数バッファ6021aを経由しないダイレクトモードを設け、乱数の枯渇、言い換えれば乱数の需要と供給に係る状況に応じて、バッファモードとダイレクトモードを切り替える構成(図13(a)〜(c))を実施することができ、上述と同様の作用効果を期待できる。さらに、乱数の生成異常を検出し、乱数の生成異常の発生に応じて行う回復処理を備えた乱数生成プログラムP31の構成(図14)を実施することができ、上述と同様の作用効果を期待できる。   Also in the slot machine 1, as in the pachinko machine 100 described above, for example, the 32-bit random number generated by the random number generation program P31 is divided into 16-bit random numbers via the random buffer 6021a1 having a 16-bit configuration. When used for P11, the random number generation process shown in FIGS. 11 and 12 and the determination process of the number of generated 32-bit random numbers (N) can be performed, and the same effect as described above can be expected. Also, in the slot machine 1, as with the pachinko machine 100 described above, when the random number buffer 6021a1 is arranged, an alternative process (FIGS. 13B and 13C) for dealing with the exhaustion of the random number buffer 6021a1 is provided. The configuration of the random number acquisition driver, in particular, a buffer mode for inputting / outputting random numbers via the random number buffer 6021a and a direct mode not passing through the random number buffer 6021a are provided. Accordingly, a configuration (FIGS. 13A to 13C) for switching between the buffer mode and the direct mode can be implemented, and the same effect as described above can be expected. Furthermore, it is possible to implement the configuration (FIG. 14) of the random number generation program P31 provided with a recovery process that detects a random number generation abnormality and performs a recovery process in response to the occurrence of a random number generation abnormality, and expects the same effect as described above. it can.

なお、上述した実施の形態に記載した発明は、どのように組み合わされても良く、パチンコ機100の実施形態に記載された乱数生成処理の内容については、当然にスロットマシン1に対しても適用することができる。また、上述した実施形態では、リプレイ確率が変動するRT状態とAT状態とを組み合わせた、いわゆるART機について説明をしたが、リプレイについては入賞補助演出を行わないAT機や、ATを搭載せずにボーナスを中心に出玉を増やすノーマル機に対しても本発明は適用することができる。   The invention described in the above-described embodiment may be combined in any way, and the contents of the random number generation processing described in the embodiment of the pachinko machine 100 are naturally applied to the slot machine 1 as well. can do. In the above-described embodiment, the so-called ART machine that combines the RT state and the AT state in which the replay probability fluctuates has been described. However, for the replay, the AT machine that does not perform the winning assist effect or the AT is not mounted. In addition, the present invention can also be applied to a normal machine that increases the number of balls around a bonus.

100:遊技機(パチンコ機)、6021a:記憶手段(乱数バッファ)、P1:抽選手段(演出プログラム:演出制御手段)、P3:乱数生成手段(乱数生成プログラム)、P4:タスク管理手段(タスク管理プログラム)、P5:乱数取得ドライバ 100: gaming machine (pachinko machine), 6021a: storage means (random number buffer), P1: lottery means (production program: production control means), P3: random number generation means (random number generation program), P4: task management means (task management) Program), P5: Random number acquisition driver

Claims (3)

乱数に基づき遊技の演出を制御する演出制御手段と、
所定アルゴリズムに基づき乱数を生成する乱数生成手段と、
前記乱数生成手段によって生成させた乱数を複数の乱数に分割する分割手段と、
を備え、
前記演出制御手段は、前記分割手段により分割された乱数に基づき遊技の演出を制御することを特徴とする遊技機。
Production control means for controlling the production of the game based on random numbers;
Random number generating means for generating a random number based on a predetermined algorithm;
Dividing means for dividing the random number generated by the random number generating means into a plurality of random numbers;
With
The game machine characterized in that the effect control means controls the game effect based on the random numbers divided by the dividing means.
前記分割手段により前記複数に分割された乱数を残らず前記演出制御手段に出力することを特徴とする請求項1に記載の遊技機。   The gaming machine according to claim 1, wherein the random number divided into a plurality by the dividing means is output to the effect control means without remaining. 前記分割手段により分割された乱数を格納する乱数バッファを備え、前記乱数バッファの空き容量に応じて、当該の空き容量に前記分割手段により複数に分割された乱数を格納できるよう、前記乱数生成手段によって生成させる乱数の数を決定することを特徴とする請求項1または2に記載の遊技機。   A random number buffer for storing the random numbers divided by the dividing means, and the random number generating means for storing the random numbers divided by the dividing means in the free capacity according to the free capacity of the random number buffer; 3. The gaming machine according to claim 1, wherein the number of random numbers to be generated is determined.
JP2017097685A 2017-05-16 2017-05-16 Pachinko machine Active JP7048219B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017097685A JP7048219B2 (en) 2017-05-16 2017-05-16 Pachinko machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017097685A JP7048219B2 (en) 2017-05-16 2017-05-16 Pachinko machine

Publications (2)

Publication Number Publication Date
JP2018191916A true JP2018191916A (en) 2018-12-06
JP7048219B2 JP7048219B2 (en) 2022-04-05

Family

ID=64568667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017097685A Active JP7048219B2 (en) 2017-05-16 2017-05-16 Pachinko machine

Country Status (1)

Country Link
JP (1) JP7048219B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009285381A (en) * 2008-05-30 2009-12-10 Kyoraku Sangyo Kk Game machine
JP2014014550A (en) * 2012-07-10 2014-01-30 Kpe Inc Game machine
JP2014113275A (en) * 2012-12-07 2014-06-26 Olympia:Kk Game machine
JP2016059439A (en) * 2014-09-16 2016-04-25 サミー株式会社 Game machine
JP2016190006A (en) * 2015-03-31 2016-11-10 京楽産業.株式会社 Game machine
JP2017006587A (en) * 2015-06-26 2017-01-12 株式会社オリンピア Game machine
JP6959761B2 (en) * 2017-05-16 2021-11-05 株式会社平和 Pachinko machine

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009285381A (en) * 2008-05-30 2009-12-10 Kyoraku Sangyo Kk Game machine
JP2014014550A (en) * 2012-07-10 2014-01-30 Kpe Inc Game machine
JP2014113275A (en) * 2012-12-07 2014-06-26 Olympia:Kk Game machine
JP2016059439A (en) * 2014-09-16 2016-04-25 サミー株式会社 Game machine
JP2016190006A (en) * 2015-03-31 2016-11-10 京楽産業.株式会社 Game machine
JP2017006587A (en) * 2015-06-26 2017-01-12 株式会社オリンピア Game machine
JP6959761B2 (en) * 2017-05-16 2021-11-05 株式会社平和 Pachinko machine

Also Published As

Publication number Publication date
JP7048219B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
JP2017213304A (en) Game machine
JP2017202054A (en) Game machine
JP2017189214A (en) Game machine
JP2018000611A (en) Game machine
JP2018117833A (en) Game machine
JP2017185099A (en) Game machine
JP6959761B2 (en) Pachinko machine
JP2018126186A (en) Game machine
JP2018061526A (en) Game machine
JP2011045476A (en) Game machine
JP2013162867A (en) Game machine
JP2018033666A (en) Game machine
JP2017205323A (en) Game machine
JP2018011629A (en) Game machine
JP2018029689A (en) Game machine
JP2017189215A (en) Game machine
JP2018099476A (en) Game machine
JP2018068870A (en) Game machine
JP7136452B2 (en) game machine
JP2018011767A (en) Game machine
JP7217509B2 (en) game machine
JP2018191916A (en) Game machine
JP2018191917A (en) Game machine
JP2018201778A (en) Game machine
JP2019177185A (en) Game machine

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220324

R150 Certificate of patent or registration of utility model

Ref document number: 7048219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150