JP5740623B2 - Game machine - Google Patents
Game machine Download PDFInfo
- Publication number
- JP5740623B2 JP5740623B2 JP2012107583A JP2012107583A JP5740623B2 JP 5740623 B2 JP5740623 B2 JP 5740623B2 JP 2012107583 A JP2012107583 A JP 2012107583A JP 2012107583 A JP2012107583 A JP 2012107583A JP 5740623 B2 JP5740623 B2 JP 5740623B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- game
- control device
- value
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 585
- 230000008569 process Effects 0.000 claims description 543
- 238000012545 processing Methods 0.000 claims description 331
- 238000003860 storage Methods 0.000 claims description 129
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 description 320
- 230000000694 effects Effects 0.000 description 158
- 230000015654 memory Effects 0.000 description 150
- 230000008859 change Effects 0.000 description 51
- 230000009471 action Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 38
- 238000004519 manufacturing process Methods 0.000 description 30
- 238000001514 detection method Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 24
- 238000011084 recovery Methods 0.000 description 23
- 238000007689 inspection Methods 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000012790 confirmation Methods 0.000 description 17
- 230000004913 activation Effects 0.000 description 11
- 230000001629 suppression Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000005034 decoration Methods 0.000 description 8
- OMFRMAHOUUJSGP-IRHGGOMRSA-N bifenthrin Chemical compound C1=CC=C(C=2C=CC=CC=2)C(C)=C1COC(=O)[C@@H]1[C@H](\C=C(/Cl)C(F)(F)F)C1(C)C OMFRMAHOUUJSGP-IRHGGOMRSA-N 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000004092 self-diagnosis Methods 0.000 description 7
- 239000011521 glass Substances 0.000 description 6
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000002360 preparation method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000000630 rising effect Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000007257 malfunction Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 238000007599 discharging Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 238000004904 shortening Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 244000145845 chattering Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 101000686909 Homo sapiens Resistin Proteins 0.000 description 2
- 102100024735 Resistin Human genes 0.000 description 2
- 239000006059 cover glass Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Landscapes
- Pinball Game Machines (AREA)
Description
本発明は、レジスタを備えたプロセッサによって制御を行う遊技機に関する。 The present invention relates to a gaming machine that is controlled by a processor having a register.
従来よりも、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現するために、ROMの0008H番地から000
FH番地には、変動停止コマンド送信処理のプログラムを格納し、ROMの0020H番地から0027H番地には、賞球数コマンド送信処理のプログラムを格納するとともに、これらのプログラムをRST命令を用いて呼び出すようにした遊技機が知られている(例えば、特許文献1)。
In order to maintain the program maintainability and the processing speed, and to prevent unauthorized modification and improve the ease of discovering unauthorized modifications, the ROM address 0008H is 000.
The program for the variable stop command transmission process is stored in the address FH, the program for the prize ball number command transmission process is stored in the addresses 0020H to 0027H of the ROM, and these programs are called using the RST instruction. There is a known gaming machine (for example, Patent Document 1).
この特許文献1の遊技機の構成では、特許文献1の図22に示すように、RST命令を実行すると、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュールに移行する。その後、呼び出し先のサブモジュールの終了時にRET命令を実行することで、スタックに格納してあった戻りアドレスの値をプログラムカウンタに戻し、呼び出し元のモジュールに復帰する。なお、特許文献1の段落[0148]に示すように、CALL命令を用いても同様の処理が行われる。
In the configuration of the gaming machine of
なお、特許文献1のようにRST命令やCALL命令を実行しなくても、タイマ割込等の割込が発生した場合に、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュール(タイマ割込みの処理モジュール)に移行する処理を行う遊技機もある。
Even if an RST instruction or CALL instruction is not executed as in
例えば、特許文献2に開示された遊技機では、特許文献2の段落[0071]〜[0073]に示すように、タイマ割込等の割込が発生すると、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュール(タイマ割込みの処理モジュール)に移行する。その後、呼び出し先のサブモジュールの終了時にRETI命令を実行することで、スタックに格納してあった戻りアドレスの値をプログラムカウンタに戻し、呼び出し元のモジュールに復帰する。
For example, in the gaming machine disclosed in
このようなタイマ割込みの処理を行うときは、特許文献3の図5や特許文献4の図6(c)に示すように、処理の先頭にて、フラグレジスタの値をAFレジスタとしてスタックに格納することが通常行われる。なお、このスタックに格納されたフラグレジスタの値は、特許文献3の図5に示されるように、タイマ割込みの処理を終了してRETI命令を実行する際に元のフラグレジスタへ復帰するようになっている。
When performing such timer interrupt processing, as shown in FIG. 5 of
呼び出し元のモジュールで用いられていたレジスタの値が、呼び出し先のサブモジュールで変更されてしまうと、CPUの演算処理に支障を来たす。そのため、従来の遊技機では、特許文献3の図5のS11に示すように、処理の先頭でPUSH命令を用いてレジスタの値をスタックに退避する処理が通常行われ、特許文献3の図5のS25に示すように、処理の最後でPOP命令を用いてレジスタの値をスタックから復帰させる処理が行われる。このとき、特許文献4の図6(c)に示すように、スタックには、様々なレジスタの値が一時的に格納される。そのため、呼び出し先のモジュール内にて、PUSH命令やPOP命令を記述する必要があり、プログラム容量が増えてしまう要因となっていた。
If the value of the register used in the caller module is changed in the callee submodule, it will hinder the CPU processing. For this reason, in the conventional gaming machine, as shown in S11 of FIG. 5 of
このようなPUSH命令及びPOP命令を用いて、レジスタの値をスタックから出し入れする処理は、特許文献2に開示されたタイマ割り込みの処理に限らず、特許文献1に示したようなRST命令(或いはCALL命令)を用いて呼び出されるサブモジュール内でも、頻繁に行われている。そのため、このようなサブモジュール内にもPUSH命令やPOP命令を記述する必要があり、プログラム容量が増えてしまう要因となっていた。
The process of putting the register value in and out of the stack using such a PUSH instruction and the POP instruction is not limited to the timer interrupt process disclosed in
なお、前者のタイマ割込みの処理では、フラグレジスタの値を無条件にスタックに格納する必要があったのに対して、後者のRST命令(或いはCALL命令)を用いて呼び出されるサブモジュールの処理では、フラグレジスタを退避すべきか否かは、モジュールの目的によって一意に定まっていなかった。そこで、このような条件を満たしつつも、プログラム容量を削減するための工夫が必要とされていた。 In the former timer interrupt processing, the value of the flag register had to be stored unconditionally in the stack, whereas in the latter sub-module processing called using the latter RST instruction (or CALL instruction) Whether or not the flag register should be saved has not been uniquely determined by the purpose of the module. Therefore, a device for reducing the program capacity while satisfying such conditions has been required.
本発明は、上記のような問題点を解決するためになされたもので、フラグレジスタを退避すべきか否かをプログラムによって決定できる構成としながらも、遊技制御プログラム全体のコード量を削減することを目的とする。 The present invention has been made to solve the above-described problems, and it is possible to reduce the code amount of the entire game control program while adopting a configuration capable of determining by a program whether or not the flag register should be saved. Objective.
本発明の代表的な一形態では、所定の始動条件の成立により遊技を実行し、該遊技が特別な結果となる場合に遊技者に特典を付与する特別遊技状態を発生させる遊技制御を行う遊技制御装置を備えた遊技機において、前記遊技制御装置には、遊技制御プログラムを記憶する遊技制御プログラム記憶手段と、前記遊技制御プログラムにより所要の演算処理を行う演算処理手段と、前記演算処理を行う際に値が記憶されるレジスタと、前記演算処理手段によって更新される情報が記憶される更新情報記憶手段と、を備え、前記更新情報記憶手段にはスタック領域が設定され、前記レジスタには、前記演算処理手段による演算結果を記憶するためのフラグレジスタが含まれ、前記遊技制御プログラムには、呼出元の処理が記述された呼出元ルーチンと、前記呼出元ルーチンに記述された呼出の命令が実行された場合に呼び出される処理が記述された第1の呼出先ルーチンと、前記呼出元ルーチンに記述された命令の実行中において、所定の割込信号が発生した場合に呼び出される処理が記述された第2の呼出先ルーチンと、が含まれ、前記演算処理手段は、前記第1の呼出先ルーチンが呼び出された場合は、前記フラグレジスタの値を前記スタック領域に格納せず、格納命令を実行することなく前記呼出元ルーチンに含まれる戻りアドレスの値を前記スタック領域に格納し、前記第1の呼出先ルーチンの処理の実行を開始する一方で、前記第2の呼出先ルーチンが呼び出された場合は、格納命令を実行することなく前記フラグレジスタの値と前記呼出元ルーチンに含まれる戻りアドレスの値の各々を前記スタック領域に格納し、前記第2の呼出先ルーチンの処理の実行を開始し、前記第2の呼出先ルーチンが呼び出された場合は、前記フラグレジスタの値を前記スタック領域に格納した後に、前記呼出元ルーチンに含まれる戻りアドレスの値を前記スタック領域に格納する。 In an exemplary embodiment of the present invention, perform the Ri遊 technique by the establishment of a predetermined restart condition, to generate a special game state to grant a privilege to the player if the recreation is a special result game In a gaming machine including a game control device that performs control, the game control device includes a game control program storage unit that stores a game control program, an arithmetic processing unit that performs a required arithmetic process using the game control program, A register in which a value is stored when performing arithmetic processing, and an update information storage unit in which information updated by the arithmetic processing unit is stored, and a stack area is set in the update information storage unit, The register includes a flag register for storing a calculation result by the calculation processing means, and the game control program includes a call source routine in which a call source process is described. A first call destination routine describing a process to be called when a call instruction described in the call source routine is executed, and a predetermined allocation during execution of the instruction described in the call source routine. And a second call destination routine describing a process to be called when an input signal is generated, and the arithmetic processing means, when the first call destination routine is called , without storing the value in the stack area, the value of the return address contained in the calling routine without executing the stored instructions stored in the stack area, starts execution of the processing of pre-Symbol first callee routine while, when said second callee routine is called, the return address contained in the calling routine with the value of the flag register without performing store instructions Each was stored in the stack area, and starts execution of the processing of pre-Symbol second callee routine, and if the previous SL second callee routine is called, the value of the flag register stack area Then, the return address value included in the call source routine is stored in the stack area.
本明細書における実施形態では、「遊技機」をパチンコ機として説明しているが、スロットマシンなどの回胴式遊技機であってもよいし、スマートボールであってもよい。これらのパチンコ機以外の遊技機であっても、前述した課題はパチンコ機の場合と同様に発生する課題である。 In the embodiment of the present specification, the “game machine” is described as a pachinko machine, but it may be a spinning-type game machine such as a slot machine or a smart ball. Even in a gaming machine other than these pachinko machines, the above-described problem is a problem that occurs as in the case of the pachinko machine.
「所定の始動条件」とは、パチンコ機であれば、例えば、遊技球が始動入賞口に入賞する場合である。また、スロットマシンであれば、例えば、遊技媒体のベットをした後、遊技者によってスタートレバーが操作される場合である。 The “predetermined start condition” is, for example, a case where a game ball wins a start winning opening if it is a pachinko machine. Further, in the case of a slot machine, for example, the player operates a start lever after betting a game medium.
「補助遊技」とは、例えば、表示画面の画像を表示可能な領域(表示領域)設けられた複数の変動表示領域において、各変動表示領域に識別情報などが表示され、各識別図柄が変動表示する変動表示ゲームである。変動表示ゲームにおける「特別な結果」とは、例えば、変動表示する識別図柄がすべて同じ図柄で停止した場合である。 “Auxiliary game” means, for example, in a plurality of variable display areas provided with areas (display areas) where images of the display screen can be displayed, identification information is displayed in each variable display area, and each identification symbol is displayed in a variable manner It is a variable display game. The “special result” in the variable display game is, for example, a case where all the identification symbols to be variable displayed stop at the same symbol.
「遊技制御プログラム」とは、遊技の進行制御を行うプログラムや、演出制御を行うプログラムが含まれる。「遊技制御プログラム」は、「遊技制御プログラム記憶手段」に記憶され、「演算処理手段」によって実行される。「遊技制御プログラム記憶手段」は、読み書き可能(揮発性)であってもよいし、読み出し専用(不揮発性)であってもよい。「演算処理手段」は、いわゆるCPU(若しくはCPUに含まれる命令解釈実行回路)である。 The “game control program” includes a program for performing progress control of a game and a program for performing effect control. The “game control program” is stored in the “game control program storage means” and is executed by the “arithmetic processing means”. The “game control program storage means” may be readable / writable (volatile) or read-only (nonvolatile). The “arithmetic processing means” is a so-called CPU (or an instruction interpretation execution circuit included in the CPU).
「レジスタ」は、「演算処理手段」によってアクセスされるデータが格納される。「遊技制御プログラム記憶手段」や「更新情報記憶手段」に格納されたデータを「演算処理手段」がアクセスする場合には「レジスタ」を介するようにしてもよいし、直接アクセス可能としてもよい。 The “register” stores data accessed by the “arithmetic processing means”. When the “arithmetic processing means” accesses the data stored in the “game control program storage means” or the “update information storage means”, the data may be accessed via a “register” or may be directly accessible.
「フラグレジスタ」とは、CPU(演算処理手段)の演算状態を示す値が格納されるレジスタである。例えば、演算結果が正であるか否かを示すフラグや、0であるか否かを示すフラグなどが含まれる。「演算処理手段」は「フラグレジスタ」を参照して処理を分岐させたり、処理の実行順序を制御したりする。 The “flag register” is a register that stores a value indicating a calculation state of a CPU (arithmetic processing means). For example, a flag indicating whether the calculation result is positive, a flag indicating whether it is 0, or the like is included. The “arithmetic processing means” refers to the “flag register” to branch the processing or to control the execution order of the processing.
「所定の割込信号」とは、例えば、所定の時間間隔で出力する場合(タイマ割込)や停電発生時に出力する場合などがある。遊技制御装置(遊技制御手段)は、割込信号を受信すると、割込信号に対応する割り込み処理(第2の呼出先ルーチン)を実行する。 The “predetermined interrupt signal” includes, for example, a case of outputting at a predetermined time interval (timer interrupt) and a case of outputting when a power failure occurs. When receiving the interrupt signal, the game control device (game control means) executes an interrupt process (second call destination routine) corresponding to the interrupt signal.
「スタック領域」は、実行中の処理から他の処理を呼び出す場合や実行中の処理を中断して割り込み処理を実行する場合に、元の処理に復帰するために必要なデータを一時的に格納する領域である。呼び出された順序が新しい順にスタック領域に格納されたデータを取り出してレジスタや更新情報記憶手段に戻す。 "Stack area" temporarily stores data necessary for returning to the original process when calling another process from the process being executed or when interrupting the current process and executing the interrupt process. It is an area to do. The data stored in the stack area is taken out in the order of the called order and returned to the register or the update information storage means.
本発明の一形態によれば、割り込みが発生した場合など、フラグレジスタを確実に退避させる必要がある場合にはフラグレジスタの値をスタック領域に格納してから処理を実行する。一方、必ずしもフラグレジスタの値を退避させる必要がない場合には、フラグレジスタの値をスタック領域に格納せずに処理を実行することによって呼び出し先の処理の種類に応じた処理を実行することができる。 According to an aspect of the present invention, when it is necessary to save the flag register with certainty, such as when an interrupt occurs, processing is executed after the value of the flag register is stored in the stack area. On the other hand, if it is not always necessary to save the value of the flag register, the processing corresponding to the type of processing at the call destination can be executed by executing the processing without storing the value of the flag register in the stack area. it can.
以下、本発明の実施の形態について、図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
なお、以下の実施の形態の説明における前後左右とは、遊技者から見た、つまり遊技盤(遊技機)に向かって見た方向を指すものとする。 In the following description of the embodiment, front, rear, left, and right refer to directions viewed from the player, that is, viewed from the game board (game machine).
(第1の実施の形態)
図1は、本発明の第1の実施の形態の遊技装置6の構成を説明する図である。
(First embodiment)
FIG. 1 is a diagram illustrating the configuration of the
遊技装置6は、有価価値を記憶する記憶媒体が挿入されるカードユニット70及び実際に遊技を行い、遊技媒体を払出可能な遊技機1を備える。
The
まず、遊技機1について説明する。
First, the
遊技機1の前面枠3は、本体枠(外枠)2にヒンジ4によって開閉回動可能に組み付けられる。遊技盤5(図3参照)は前面枠3の表側に形成された収納部(図示省略)に収装される。また、前面枠3には、遊技盤5の前面を覆うカバーガラス(透明部材)を備えたガラス枠18が取り付けられている。
The
ガラス枠18のカバーガラスの周囲には、装飾光が発光される装飾部材9が備えられている。この装飾部材9の内部にはランプやLED等からなる装飾装置が備えられている。この装飾装置を所定の発光態様によって発光させることによって、装飾部材9が所定の発光態様で発光する。
A
ガラス枠18の左右には、音響(例えば、効果音)を発するスピーカ30が備えられている。また、ガラス枠18の上方には照明ユニット10が備えられている。照明ユニット10の内部には、装飾装置が備えられている。
照明ユニット10の右側には、遊技機1のエラー発生や前面枠3の開放をホール店員に通知するためのエラー報知LED29が備えられている。
On the right side of the
前面枠3の下部の開閉パネル20には図示しない打球発射装置に遊技球を供給する上皿21が備えられている。さらに、固定パネル22には灰皿15、下皿23及び打球発射装置の操作部24等が備えられている。下皿23には、下皿23に貯まった遊技球を排出するための下皿球抜き機構16が備えられる。前面枠3下部右側には、ガラス枠18を施錠するための鍵25が備えられている。
The open /
また、遊技者が操作部24を回動操作することによって、打球発射装置は、上皿21から供給される遊技球を発射する。
Further, when the player turns the
また、上皿21の上縁部には、遊技者からの操作入力を受け付けるためのセレクトスイッチ40及び操作スイッチ41が備えられている。
The upper edge of the
遊技者がセレクトスイッチ40を操作することによって、表示装置8(図3参照)における変動表示ゲームの演出内容を選択することができる。また、遊技者が操作スイッチ41を操作することによって、表示装置8における変動表示ゲームに、遊技者の操作を介入させた演出を行うことができる。
When the player operates the
上皿21の右上部には、遊技者が遊技媒体を借りる場合に操作する球貸ボタン26、及び、カードユニット70からプリペイドカードを排出させるために操作される排出ボタン27が設けられている。これらのボタン26、27の間には、プリペイドカードの残高を表示する残高表示部28が設けられる。
A
次に、カードユニット70について説明する。
Next, the
カードユニット70の下部には、プリペイドカード又は会員カード等のカードを挿入可能なカード挿入口71が設けられる。
A
プリペイドカード又は会員カード等のカードには、当該カードの一意な識別子、当該カードの所有者(遊技者)の会員情報、及び残高等が記憶されている。会員情報には、カードの所有者の住所、氏名、年齢、及び職業等が含まれる。 A card such as a prepaid card or a member card stores a unique identifier of the card, member information of the owner (player) of the card, a balance, and the like. The membership information includes the card owner's address, name, age, occupation, and the like.
カード挿入口71にプリペイドカード又は会員カード等のカードが挿入された場合、図示しないカードリーダ・ライタによって、カードに記憶された情報が読み出される。そして、当該カードに記憶された残高が、遊技機1の残高表示部28及びカードユニット70の中央付近に設けられた残高表示部72に表示される。
When a card such as a prepaid card or a membership card is inserted into the
残高表示部72の上方には、紙幣を挿入可能な紙幣挿入口73が設けられる。紙幣挿入口73に挿入された紙幣の有価価値は、カードに残高として記憶される。
Above the
紙幣挿入口73の上方には、動作表示部74が設けられる。動作表示部74は、カードユニット70の動作に対応した色で点灯する。
An
次に、図2を参照しながら遊技機1の裏面側について説明する。図2は、本発明の第1の実施の形態の遊技機1の背面図である。
Next, the back side of the
遊技機1の裏面側、具体的には、前面枠3の裏面側には、中央に略正方形状の開口部を有する枠状の裏機構盤310が取り付けられる。
On the back side of the
裏機構盤310の上部には、島設備に設けられた補給装置(図示省略)から補給された遊技球を貯留すると共に、貯留した遊技球を流下させる球貯留ユニット320が配設される。
Above the
裏機構盤310の側部(図2中右側)には、球貯留ユニット320から流下してきた遊技球を、遊技機前面に配設された上皿21及び下皿23に払い出す球排出ユニット330が配設される。
On the side of the back mechanism board 310 (on the right side in FIG. 2), a
裏機構盤310の中央部には、遊技を統括的に制御する遊技制御装置100と、遊技制御装置100から送信される演出制御指令に基づいて変動表示ゲームの演出を制御する演出制御装置150とが配設される。
At the center of the
遊技制御装置100には、図示しない検査装置に接続される検査装置接続端子107が配設される。
The
裏機構盤310の下部には、遊技制御装置100から送信されるデータに基づいて球排出ユニット330の動作を制御し、遊技者に賞球を付与する払出制御装置(付与制御装置)210と、電源装置160とが配設される。
At the bottom of the
払出制御装置210には、図示しない検査装置に接続される検査装置接続端子217及び払出制御装置210に発生したエラーの種類を数字で表示するエラーナンバー表示器222が配設される。
The
また、電源装置160の右側の裏機構盤310には、遊技機1をカードユニット70に接続するためのカードユニット接続端子340が配設される。
In addition, a card
次に、遊技盤5について、図3を参照しながら説明する。図3は、本発明の第1の実施の形態の遊技盤5の正面図である。
Next, the
遊技盤5の表面には、ガイドレール55で囲われた略円形状の遊技領域51が形成される。遊技領域51は、遊技盤5の四方に各々設けられた樹脂製のサイドケース52及びガイドレール55によって構成される。遊技領域51の右下側のサイドケース52は、前面の中央部が黒色透明の証紙プレート53で覆われている。
On the surface of the
遊技領域51には、ほぼ中央に表示装置8が設けられるセンターケース300が配置される。表示装置8はセンターケース300に設けられた凹部に、センターケース300の前面より奥まった位置に取り付けられている。すなわち、センターケース300は表示装置8の表示領域の周囲を囲い、表示装置8の表示領域から突出して設けられている。
In the
また、遊技領域51の右下の領域には、図4で後述する特図表示器120及び普図表示器121を一体化した、図柄表示ユニット(一括表示器)45が備えられる。
In the lower right area of the
表示装置8は、例えば、LCD(液晶表示器)、CRT(ブラウン管)等で表示画面が構成されている。表示画面の画像を表示可能な領域(表示領域)には、複数の変動表示領域が設けられており、各変動表示領域に識別情報(特別図柄)や特図(特別図柄)変動表示ゲームを演出するキャラクタが表示される。表示画面の変動表示領域には、識別情報として割り当てられた三つの特別図柄が変動表示(可変表示)して特図変動表示ゲームが行われる。その他、表示画面には遊技の進行に基づく画像(例えば、大当り表示、ファンファーレ表示、エンディング表示等)が表示される。
The
センターケース300の左側には、普通図柄始動ゲート31が設けられる。センターケース300の左下側には、三つの一般入賞口32が備えられ、センターケース300の右下側には、一つの一般入賞口32が備えられている。
A normal
センターケース300の下方には、第1始動入賞口37と、第1始動入賞口37の直下に配設され、上部に逆「ハ」の字状に開いて遊技球が流入し易い状態に変換する一対の開閉部材を含む普通変動入賞装置33を備える第2始動入賞口34とが配置される。そして、遊技球が第1始動入賞口37又は第2始動入賞口34に入賞した場合には、補助遊技として特図変動表示ゲームが実行される。すなわち、第1始動入賞口37又は第2始動入賞口34に遊技球が入賞することが特図変動表示ゲームを開始するための始動条件となっており、第1始動入賞口37及び第2始動入賞口34が当該始動条件を発生させる変動始動入賞装置をなしている。なお、第1始動入賞口37に遊技球が入賞したことによって実行される特図変動表示ゲームを第1特図変動表示ゲームとし、第2始動入賞口34に遊技球が入賞したことによって実行される特図変動表示ゲームを第2特図変動表示ゲームとする。
Below the
また、センターケース300に設けられた始動入賞口の下方には、表示装置8の作動結果(特図変動表示ゲームの結果)によって遊技球を受け入れない状態と受け入れ易い状態とに変換可能な特別変動入賞装置(大入賞口)36が配設される。
Further, below the start winning opening provided in the
遊技機1では、図示しない発射装置から遊技領域51に向けて遊技球(パチンコ球)が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域51内の各所に配置された釘や風車等の方向転換部材によって転動方向を変えながら遊技領域51を流下する。そして、普通図柄始動ゲート31、一般入賞口32、第1始動入賞口37、第2始動入賞口34、又は特別変動入賞装置36に入賞するか、遊技領域51の最下部に設けられたアウト口39から排出される。
In the
また、第2始動入賞口34の状態には、普通変動入賞装置33の開閉によって、遊技球が入賞しやすい状態(入賞容易状態)と遊技球が入賞しにくい状態(非入賞容易状態)とがある。
In addition, the state of the second
通常、普通変動入賞装置33が閉状態の場合には、第2始動入賞口34は、遊技球が入賞しにくい状態となる。普通図柄始動ゲート31を遊技球が通過することによって、普図変動表示ゲームが実行され、普図変動表示ゲームの結果が当りとなると、普通変動入賞装置33が開状態に変換され、第2始動入賞口34は遊技球が入賞し易い状態となる。
Usually, when the normal
一般入賞口32への遊技球の入賞は、一般入賞口32に備えられた入賞口SW(スイッチ)32A〜32N(図4参照)によって検出される。
The winning of a game ball in the general winning
第1始動入賞口37への遊技球の入賞は第1特図始動SW(スイッチ)37A(図4参照)によって検出される。この遊技球の通過タイミングによって抽出された各種乱数は、遊技制御装置100内の特図1始動記憶領域に特別図柄入賞記憶として所定回数(例えば、最大で4回分)を限度に記憶される。
The winning of a game ball in the first
また、第2始動入賞口34への遊技球の入賞は第2特図始動SW(スイッチ)34A(図4参照)によって検出される。この遊技球の通過タイミングによって抽出された各種乱数は、遊技制御装置100内の特図2始動記憶領域に特別図柄入賞記憶として所定回数(例えば、最大で4回分)を限度に記憶される。
Also, the winning of a game ball in the second
遊技制御装置100は、これらの特別図柄入賞記憶に基づき、図柄表示ユニット45を形成する特図表示器120(図4参照)にて、第1特図動表示ゲーム及び第2特図動表示ゲームを行う。
Based on these special symbol winning memories, the
ここで特図表示器120について説明する。特図表示器120は、図示しない第1特図図柄表示部、第1特図入賞記憶数表示部、第2特図図柄表示部、及び第2特図入賞記憶数表示部を有する。
Here, the
そして、遊技球が第1始動入賞口37に入賞して特別図柄入賞記憶が発生すると、第1特図入賞記憶数表示部に特別図柄入賞記憶の記憶数が表示され、第1特図図柄表示部にて第1特図変動表示ゲームが実行される。同様に、遊技球が第2始動入賞口34に入賞して特別図柄入賞記憶が発生すると、第2特図入賞記憶数表示部に特別図柄入賞記憶の記憶数が表示され、第2特図図柄表示部にて第2特図変動表示ゲームが実行される。
When the game ball wins the first
なお、第1始動入賞口37への入賞が所定のタイミングでなされたとき(具体的には、入賞検出時の当り乱数値が当り値であるとき)には、第1特図変動表示ゲームの結果として表示図柄により特別結果態様が導出される。具体的には、第1図柄表示部にて、対応する特定の図柄(例えば、「1」〜「9」までのいずれかの数字等)が停止表示される。なお、第1特図変動表示ゲームがはずれの場合には、第1特図図柄表示部にて、はずれに対応する図柄(例えば「0」等)が停止表示される。
Note that when the winning to the first
同様に、第2始動入賞口34への入賞が所定のタイミングでなされたとき(具体的には、入賞検出時の当り乱数値が当り値であるとき)には、第2特図変動表示ゲームの結果として表示図柄により特別結果態様が導出される。具体的には、第2特図図柄表示部にて、対応する特定の図柄(例えば、「1」〜「9」までのいずれかの数字等)が停止表示される。なお、第2特図変動表示ゲームがはずれの場合には、第2特図図柄表示部にて、はずれに対応する図柄(例えば「0」等)が停止表示される。
Similarly, when a winning at the second
そして、第1特図変動表示ゲームの結果として特別結果態様が導出された場合、あるいは、第2特図変動表示ゲームの結果として特別結果態様が導出された場合には、大当り状態(特別遊技状態)が発生する。このとき、特別変動入賞装置36は、大入賞口ソレノイド38(図4参照)への通電によって、所定の時間(例えば、30秒)だけ、遊技球を受け入れない閉状態から遊技球を受け入れやすい開状態に変換される。すなわち、特別変動入賞装置36が所定の時間又は所定数の遊技球が入賞するまで大きく開くので、この間遊技者は多くの遊技球を獲得することができるという特典が付与される。
When the special result mode is derived as a result of the first special figure variation display game, or when the special result mode is derived as a result of the second special figure variation display game, the big hit state (special game state) ) Occurs. At this time, the special variable
なお、表示装置8においても、図柄表示ユニット45の特図表示器120で実行される第1特図変動表示ゲームと第2特図変動表示ゲームに同期して、飾り特図変動表示ゲームが実行される。このとき、前述した数字等で構成される特別図柄(識別情報)が左(第一特別図柄)、右(第二特別図柄)、中(第三特別図柄)の順に変動表示を開始して、飾り特図変動表示ゲームに関する画像が表示される。
In the
第1特図変動表示ゲーム若しくは第2特図変動表示ゲームが特別結果態様を導出する場合は、表示装置8でも特定態様の図柄が導出されて停止表示する。具体的には、表示装置8では、三つの特別図柄が揃った状態(大当り図柄)で停止する。第1特図変動表示ゲーム及び第2特図変動表示ゲームが特別結果態様を導出しない場合は、表示装置8でも特定態様の図柄を停止表示しないように制御される。
When the first special figure fluctuation display game or the second special figure fluctuation display game derives the special result mode, the
なお、本実施形態では、図柄表示ユニット45で実行される第1特図変動表示ゲーム及び第2特図変動表示ゲームと、表示装置8で実行される飾り特図変動表示ゲームのいずれをも特図変動表示ゲームとして扱うものとする。
In the present embodiment, both the first special figure fluctuation display game and the second special figure fluctuation display game executed by the
特別変動入賞装置36への遊技球の入賞は、カウントSW(スイッチ)36A(図4参照)によって検出される。
The winning of the game ball to the special
普通図柄始動ゲート31への遊技球の通過は、普図始動SW(スイッチ)31A(図4参照)で検出される。この遊技球の通過タイミングによって抽出された普図乱数は、遊技制御装置100内の普図始動記憶領域に普通図柄入賞記憶として所定回数(例えば、最大で4回分)を限度に記憶される。遊技制御装置100は、この普通図柄入賞記憶に基づき、図柄表示ユニット45を形成する普図表示器121(図4参照)にて、普図変動表示ゲームを行う。
The passing of the game ball to the normal
ここで普図表示器121について説明する。普図表示器121は、図示しない普図図柄表示部と普図入賞記憶数表示部を有する。前述したように、遊技球が普通図柄始動ゲート31を通過して普通図柄入賞記憶が発生すると、この普図図柄表示部にて普図変動表示ゲームが実行される。また、普図入賞記憶数表示部には、普通図柄入賞記憶の記憶数が表示される。
Here, the
そして、遊技球が普通図柄始動ゲート31を通過して普通図柄入賞記憶が発生すると、普図入賞記憶数表示部に普通図柄入賞記憶の記憶数が表示され、普図図柄表示部にて普図変動表示ゲームが実行される。
When the game ball passes through the normal
なお、普通図柄始動ゲート31の通過が所定のタイミングでなされたとき(具体的には、通過検出時の当り乱数値が当り値であるとき)には、普図図柄表示部に表示される普通図柄が当り状態で停止し、普図変動表示ゲームが当りとなる。このとき、普通変動入賞装置33は、普電ソレノイド90(図4参照)への通電により、第2始動入賞口34への入口が所定の時間(例えば、0.5秒〜2.9秒の範囲内で予め定められた時間)だけ開放するように変換され、遊技球の第2始動入賞口34への入賞が許容される。これによって、遊技球が第2始動入賞口34へ入賞しやすくなり、第2特図変動表示ゲームの始動が容易となる。
In addition, when the normal
このようにして、一般入賞口32、第1始動入賞口37、第2始動入賞口34、又は特別変動入賞装置36に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が払出制御装置210によって制御される払出ユニットから、前面枠3の上皿21又は下皿23に排出される。
In this way, when a game ball wins the general winning
なお、本実施形態のパチンコ遊技機は、特図変動表示ゲームの結果に対応して(厳密には、特図変動表示ゲームの結果として特図表示器120に停止表示される図柄に対応して)、以後の特図変動表示ゲームの当り確率が変化する場合があり、遊技状態は、常時、特図変動表示ゲームが低確率で大当りとなる低確率状態か、当該低確率状態よりも特図変動表示ゲームが大当りとなる確率の高い高確率状態のいずれかに設定されている。なお、低確率状態を通常状態や非確変遊技状態と称したり、高確率状態を確変遊技状態(確変状態)と称したりする場合もある。
Note that the pachinko gaming machine according to the present embodiment corresponds to the result of the special figure fluctuation display game (strictly, it corresponds to the symbol that is stopped and displayed on the special
さらに、本実施形態のパチンコ遊技機の遊技状態は、特図変動表示ゲームの結果に対応して、普通変動入賞装置33の開放頻度が変化する場合があり、遊技状態は、常時、普通変動入賞装置33の開放頻度が低い入賞抑制状態か、当該入賞抑制状態よりも普通変動入賞装置33の開放頻度が高い入賞促進状態のいずれかに設定されている。なお、入賞抑制状態を通常状態や非時短遊技状態と称したり、入賞促進状態を時短遊技状態(時短状態)と称したりする場合もある。
Furthermore, in the gaming state of the pachinko gaming machine according to the present embodiment, the opening frequency of the normal
この入賞促進状態においては、普図変動表示ゲームの実行時間が入賞抑制状態における実行時間より短くなるように制御される(例えば、入賞抑制状態で10秒に対し、入賞促進状態で1秒)。これによって、単位時間当りの普通変動入賞装置33の開放回数が実質的に多くなるように制御される。
In the winning promotion state, the execution time of the normal fluctuation display game is controlled to be shorter than the execution time in the winning suppression state (for example, 10 seconds in the winning suppression state and 1 second in the winning promotion state). As a result, the number of times the normally variable winning
また、入賞促進状態においては、普図変動表示ゲームが当り結果となって普通変動入賞装置33が開放される場合に、開放時間が通常遊技状態の開放時間より長くなるように制御されてもよい(例えば、入賞抑制状態で0.5秒に対し、入賞促進状態で2.9秒)。また、入賞促進状態においては、普通図柄変動表示ゲームの1回の当り結果に対して、普通変動入賞装置33が1回ではなく、複数回(例えば、2回)開放してもよい。さらに、入賞促進状態においては、普図変動表示ゲームの結果が当りとなる確率が入賞抑制状態より高くなるように制御してもよい。すなわち、入賞促進状態では、入賞抑制状態よりも普通変動入賞装置33の開放頻度が増加し、普通変動入賞装置33に遊技球が入賞しやすくなり、特図変動表示ゲームの始動が容易となる特典が付与される。
Further, in the winning promotion state, when the normal
図4は、本発明の第1の実施の形態の遊技装置6のブロック図である。
FIG. 4 is a block diagram of the
遊技制御装置100は、遊技用マイコン(遊技用演算処理装置600)101、入力I/F(Interface)105、出力I/F(Interface)106及び検査装置接続端子107を備える。
The
遊技用マイコン101は、CPU102、ROM(Read Only Memory)103及びRAM(Random Access Memory)104を備える。
The
CPU102は、遊技を統括的に制御する主制御装置であって、遊技制御を行う。ROM103は、遊技制御のための不変の情報(プログラム、データ等)を記憶する。RAM104は、遊技制御時にワークエリアとして利用される。
The
遊技制御装置100には、遊技用マイコン101に一意に設定された識別番号を出力することが可能な検査装置接続端子107が設けられている。検査装置接続端子107に図示しない検査装置を接続すると、検査装置は遊技機1を識別することができる。
The
CPU102は、入力I/F105を介して各種検出器(第1特図始動SW37A、第2特図始動SW34A、普図始動SW31A、カウントSW36A、及び入賞口SW32A〜入賞口SW32N、オーバーフローSW(スイッチ)109、球切れSW(スイッチ)110、及び枠開放SW(スイッチ)111)からの検出信号を受けて、大当り抽選等、種々の処理を行う。
The
オーバーフロースイッチ109は、下皿23に遊技球が所定数以上貯留されていることを検出する。球切れスイッチ110は、球貯留ユニット320に配設され、球貯留ユニット320に貯留される遊技球が所定数以下になることを検出する。枠開放スイッチ111は、前面枠3の開放を検出する。
The
また、CPU102は、出力I/F106を介して、普図表示器121、特図表示器120、普電SOL(ソレノイド)90、大入賞口SOL(ソレノイド)38、払出制御装置210及び演出制御装置150に指令信号を送信し、遊技を統括的に制御する。
In addition, the
普図表示器121は、前述したように、普図変動表示ゲームが表示される。特図表示器120は、前述したように、第1特図変動表示ゲームと第2特図変動表示ゲームとが表示される。
As described above, the
普電SOL90は、第2始動入賞口34に遊技球が入賞可能となるように、第2始動入賞口34に備えられた開閉部材で構成された普通変動入賞装置33を所定の時間だけ開放させる。
The general
大入賞口SOL38は、特別変動入賞装置36の大入賞口を所定の時間だけ、遊技球を受け入れない閉状態(遊技者に不利な状態)から遊技球を受け入れやすい開状態(遊技者に有利な状態)にする。 The big prize opening SOL38 is in an open state (advantageous to the player) from the closed state (a disadvantageous state for the player) that does not accept the game ball for a predetermined time. State).
また、遊技制御装置100は、遊技機1に関する情報を、外部情報端子108を介して、遊技店に設置された情報収集端末や遊技場内部管理装置(図示省略)に出力する。
In addition, the
遊技制御装置100は、変動開始コマンド、客待ちデモコマンド、ファンファーレコマンド、確率情報コマンド、及びエラー指定コマンド等を、演出制御指令信号として、演出制御装置150へ送信する。
The
次に、払出制御装置210及び演出制御装置150について説明する。
Next, the
演出制御装置(表示制御装置)150は、遊技制御装置100から入力される各種信号に基づいて、エラー報知LED29、スピーカ30、発光により遊技演出を行う装飾部材9(図1)及び表示装置8を制御する。
The effect control device (display control device) 150 includes an
演出制御装置150は、遊技用マイコン(遊技用演算処理装置600)151、ドライバ155、音回路156、及びVDP157を備える。
The
遊技用マイコン151は、CPU152、ROM153及びRAM154を備える。
The gaming microcomputer 151 includes a
CPU152は、演出制御を行う制御装置である。ROM153は、演出制御に必要な不変の情報(プログラム、データ等)を記憶している。RAM154は、演出制御時にワークエリアとして利用される。
The
ドライバ155は、CPU152からの指令により、エラー報知LED29及び装飾部材9を制御する。音回路156は、CPU152からの指令により、効果音を生成してスピーカ30から出力する。VDP157は、CPU152からの指令により、画像データを生成して表示装置8へ出力する。
The
払出制御装置210は、遊技制御装置100からの賞球指令信号に基づいて、払出装置の払出モータ220を駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置210は、カードユニット70からの貸球要求信号に基づいて、遊技制御装置100が送信する排出指令信号に基づいて、払出装置の払出モータ220を駆動させ、貸球を払い出させるための制御を行う。
Based on the prize ball command signal from the
払出制御装置210は、遊技用マイコン(遊技用演算処理装置600)211、入力I/F(Interface)215、入出力I/F(Interface)216及び検査装置接続端子217を備える。
The
遊技用マイコン211は、CPU212、ROM213及びRAM214を備える。
The gaming microcomputer 211 includes a
CPU212は、払い出しを統括的に制御する制御装置であって、払出制御を司る。ROM213は、払出制御のための不変の情報(プログラム、データ等)を記憶している。RAM214は、払出制御時にワークエリアとして利用される。
The
CPU212は、入力I/F215を介して払出球検出スイッチ112、オーバーフロースイッチ109、球切れスイッチ110、エラー解除スイッチ223、税率設定スイッチ226、及び貸出料金設定スイッチ227からの入力を受ける。
The
エラー解除スイッチ223は、払出制御装置210にエラーが発生した場合に、遊技店の店員等が発生したエラーの原因を解消した際に、遊技店の店員等によって操作され、エラー状態を解除するためのスイッチである。
The
税率設定スイッチ226は、遊技球の貸し出しに対して課税される間接税の税率を設定するスイッチである。貸出料金設定スイッチ227は、貸し出される遊技球の有価価値を設定するためのスイッチである。
The tax
また、CPU212は、入出力I/F216を介して、払出モータ220、発射制御装置221、エラーナンバー表示器222、税率表示器224及び貸出料金表示器225に指令信号を送信する。また、CPU212は、入出力I/F216を介して遊技制御装置100から送信された各種信号を受信する。
Further, the
払出モータ220は、実際に払出装置で遊技球を払い出すために駆動されるモータである。具体的には、払出モータ220は、1個の遊技球を貯留可能な凹部を所定個数有するスプロケットを回転させることによって、遊技球を払い出す。
The
発射制御装置221は、遊技球を遊技盤5に発射するための発射装置を制御する。エラーナンバー表示器222は、払出制御装置210の裏面側に配設され、払出制御装置210で発生したエラーの種類を特定可能に表示する。
The
税率表示器224は、払出制御装置210の裏面側に配設され、税率設定スイッチ226によって設定された間接税の税率を表示する。貸出料金表示器225は、払出制御装置210の裏面側に配設され、貸出料金設定スイッチ227によって設定された貸し出される遊技球の有価価値を表示する。
The tax rate indicator 224 is disposed on the back side of the
電源装置160は、バックアップ電源161、RAMクリアスイッチ162を備える。遊技制御装置100、演出制御装置150、及び払出制御装置210は、電源装置160に接続される。
The
バックアップ電源161は、停電時においても、遊技制御装置100、演出制御装置150、及び払出制御装置210に電源を供給する。なお、演出制御装置150には必ずしも電源を供給しなくてもよく、停電復帰後、遊技制御装置100からコマンドを送信するようにしてもよい。
The
RAMクリアスイッチ162は、遊技制御装置100に備わるRAM104及び払出制御装置210に備わるRAM214に記憶されている情報を初期化するスイッチである。
The RAM
また、遊技機1に備わる球貸ボタン26が操作されると、カードユニット70は、プリペイドカード又は会員カード等のカードに記憶されている有価価値から貸し出される遊技球分の有価価値を減算して、減算した有価価値の値を遊技機1の残高表示部28に表示する。また、遊技機1に備わる排出ボタン27が操作されると、カードユニット70は、カード挿入口71に挿入されたカードを排出する。
Further, when the
遊技制御装置100に備わる遊技用マイコン101と払出制御装置210に備わる遊技用マイコン211とは、暗号化された暗号化信号(暗号化データ)を双方向通信可能に接続される。また、暗号化されない非暗号化信号(平文データ)については、遊技制御装置100に備わる遊技用マイコン101から払出制御装置210に備わる遊技用マイコン211に単方向通信が可能に接続される。
The
また、遊技制御装置100に備わる遊技用マイコン101と演出制御装置150に備わる遊技用マイコン151とは、暗号化されない非暗号化信号(平文データ)を遊技制御装置100から演出制御装置150への単方向で通信可能に接続される。
In addition, the
なお、遊技制御装置100に備わる遊技用マイコン101、演出制御装置150に備わる遊技用マイコン151及び払出制御装置210に備わる遊技用マイコン211は、これらの接続に必要なポートを備えている。
Note that the
次に、遊技制御装置100に備わる遊技用マイコン101、演出制御装置150に備わる遊技用マイコン151及び払出制御装置210に備わる遊技用マイコン211(以下、総称して遊技用演算処理装置600という)について、図5を用いて詳細に説明する。
Next, with respect to the
図5は、本発明の第1の実施の形態の遊技用演算処理装置(アミューズチップ)600のブロック図である。 FIG. 5 is a block diagram of the game processing device (amuse chip) 600 according to the first embodiment of this invention.
遊技用演算処理装置600はいわゆるアミューズチップ用のICとして製造され、遊技制御を行う遊技領域部600Aと情報管理を行う情報領域部600Bとに区分される。 The game processing unit 600 is manufactured as an IC for a so-called amuse chip, and is divided into a game area unit 600A for performing game control and an information area unit 600B for managing information.
まず、遊技領域部600Aは、CPUコア601、ユーザプログラムROM602、HWパラメータROM603、ユーザワークRAM604、ミラードRAM605、外部バスインターフェース(I/F)606、バス切替回路607、乱数生成回路608、クロック生成回路609、割込制御回路610A、リセット回路610B、アドレスデコーダ611、出力制御回路612、ブートブロック613、復号化・ROM書込回路614、シリアル送信回路615A、シリアル送信回路615B、シリアル受信回路625、暗号化送受信回路616、及びバス617によって構成される。なお、シリアル送信回路615A及びシリアル送信回路615Bを総称して、シリアル送信回路615という。
First, the game area unit 600A includes a
CPUコア601は、図4のCPU102、CPU152又はCPU212に相当する。ユーザプログラムROM602は、図4のROM103、ROM153又はROM213に相当する。また、ユーザプログラムROM602及びHWパラメータROM603を総称して、ROM(不揮発性記憶手段)という。
The
ユーザワークRAM604は、図4のRAM104、RAM154又はRAM214に相当する。また、ユーザワークRAM604及びミラードRAM605を総称して、RAM(揮発性記憶手段)という。
The
CPUコア601は、遊技制御のための演算処理を行う演算処理手段として機能する。ユーザプログラムROM602は、制御プログラムを格納する。制御プログラムは、遊技用演算処理装置600が遊技制御装置100に備わる遊技用マイコン101である場合には、遊技の制御を行うための遊技制御プログラムである。また、遊技用演算処理装置600が払出制御装置210に備わる遊技用マイコン211である場合には、遊技球の払い出しを行うための払出制御プログラムである。さらに、遊技用演算処理装置600が演出制御装置150に備わる遊技用マイコン151である場合には、演出の制御を行うための演出制御プログラムである。
The
HWパラメータROM603は、正当性確認情報を格納する。正当性確認情報とは、遊技用演算処理装置600の正当性の簡易チェックを行う場合の情報であり、例えば、遊技機1の一意な識別子を示す固有ID、メーカコード(遊技機1の製造メーカ毎に割り振られた固有の製造メーカの一意な識別子)、遊技機1のランク(1種、2種等)を示すランクコード、製造メーカが遊技機1の種類に設定する機種コード、検査番号を示す検査コード、電源投入時にRAMをバックアップするか否かを示すRAMバックアップコード、税率設定スイッチ226によって設定された税率、貸出料金設定スイッチ227によって設定された貸出料金等である。また、HWパラメータROM603には、最初に貸出情報要求を送信した検査装置の一意な識別子である固有IDが一つのみ記憶される。
The
第三者機関又は遊技機1の製造メーカがユーザプログラムROM602にプログラムを書き込む際に、正当性確認情報がHWパラメータROM603に書き込まれる。遊技用演算処理装置600は、電源立ち上がり時に、ユーザプログラムROM602に書き込まれたプログラムが正当であるか否かについて簡易チェックを行うことができる。具体的には、遊技用演算処理装置600の電源立ち上がり時に、遊技用演算処理装置600自身が演算した演算値と、正当性確認情報(すなわち、第三者機関等によって予め設定された結果値)とを比較判定することで、簡易的な遊技用演算処理装置600のチェックを行うことが可能になっている。
When the third party organization or the manufacturer of the
ユーザワークRAM604は、遊技領域部600Aにおけるプログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられるものである。このユーザワークRAM604には、バックアップ電源161(図4)からのバックアップ電源が供給されているので、遊技機1への電源供給が途絶えても、記憶データが保持されるように構成されている。ミラードRAM605は、クロックの立ち下がり時にユーザワークエリアに記憶された情報を複製し、複製した情報を記憶する(CPUコアがZ80の場合には、クロックの立ち上がり時に処理を実行するため、同期して動くことがないようにしている)。
The
外部バスインターフェース606は、メモリリクエスト信号MREQ、入出力リクエスト信号IORQ、メモリ書込み信号WR、メモリ読み出し信号RD及びモード信号MODEなどのインターフェースであり、また、バス切替回路607は、16ビットのアドレス信号A0〜A15や8ビットのデータ信号D0〜D7のインターフェースである。
The
例えば、MODE信号をハイレベルにした状態で、アドレス信号A0〜A15を順次にインクリメントしながら、データ信号D0〜D7を加えると、ユーザプログラムROM602への書き込みモードとなって遊技機1の製造メーカ又は第三者機関によるプログラムの書き込みが可能になる。なお、書き込みモードはプログラムの書き込みを可能にするものであり、ブートブロック613に記憶されるブートプログラムを書き込みできるようにするものではない。
For example, if the data signals D0 to D7 are added while sequentially increasing the address signals A0 to A15 while the MODE signal is at a high level, the writing mode to the
また、ユーザプログラムROM602へのプログラムの書き込みが終了すると、HWパラメータROM603の所定領域に書込終了コードが記録(例えば、所定のコード若しくは所定ビットを物理的に切断することで記録)されるようになっており、HWパラメータROM603に書込終了コードが記録されている場合には、ユーザプログラムROM602への新たなプログラムの書き込みができないようになっている。
Further, when the writing of the program to the
乱数生成回路608は遊技の実行過程において遊技価値(例えば、大当り)を付加するか否か等に係わる乱数(乱数は、大当りの決定や停止時の図柄の決定等に使用)を生成するもので、一様性乱数を生成する数学的手法(例えば、合同法又はM系列法等)を利用している。なお、遊技用演算処理装置600が払出制御装置210に備わる遊技用マイコン211である場合には、乱数生成回路608は必要ない。
The random
クロック生成回路609は、遊技用演算処理装置600の外部から入力されたシステムクロック信号を分周して、遊技制御に必要な各種の周期的な信号を生成する。具体的には、CPUコア102を動作させるためのクロック信号、乱数生成回路608の乱数カウンタ値を更新するためのクロック信号、及びシリアル送受信を行う際のタイミング信号などを生成する。なお、クロック生成回路609は、CTC(Counter Timer Circuit)の機能を有しており、CPUコア102にて所定周期(例えば、4ミリ秒)のタイマ割込処理を行わせるためのタイマ割込信号も生成している。
The
割込制御回路610Aは、所定の割り込み条件の成立に基づいて、割り込みの発生をCPUコア102に知らせる。なお、所定の割り込み条件は、遊技用演算処理装置600の外部から割込要求信号(INT信号、NMI信号)が入力された場合や、クロック生成回路609のCTCからタイマ割込信号が出力された場合などが相当する。
The interrupt
CPUコア102は、INT信号やNMI信号が入力された場合には、現在実行中の処理を中断して予め定められた割込処理を実行する。なお、INT信号による割込(マスカブル割込)は、プログラムの設定により禁止できるが、NMI信号による割込(ノンマスカブル割込)はプログラムの設定により禁止できない。また、CPUコア102は、タイマ割込信号が出力された場合には、図29に示すタイマ割込処理を実行する。
When an INT signal or an NMI signal is input, the
また、リセット回路610Bは、外部から入力されたリセット信号(RST0端子からの信号RST0)を検出すると、遊技用演算処理装置600の内部に備えられた各回路とCPUコア102にリセット信号を伝達する。
Further, when the
なお、リセット回路610Bは、セキュリティ回路630(図11参照)としても機能する。このセキュリティ回路630は、遊技用演算処理装置600の内部に備えられた各回路に対して異常なアクセスが発生したことを検出する機能を有しており、異常を検出するとCPUコア102にリセット信号を伝達する。
Note that the
アドレスデコーダ611は、内蔵デバイス及び内蔵コントロール/ステータスレジスタ群のロケーションをメモリマップドI/O方式及びI/OマップドI/O方式によりデコードする。
The
出力制御回路612は、アドレスデコーダ611からの信号制御を行って外部端子より8ビットのチップセレクト信号(CS0〜CS7)を外部に出力するとともに、遊技用演算処理装置600の内部に備えた回路を選択するチップセレクト信号を発生する機能を有する。ブートブロック613は、ブートプログラムを記憶し、電源投入時に遊技用演算処理装置600の初期化に係わる処理を行う。
The
復号化・ROM書込回路614は、ユーザプログラムROM602及びHWパラメータROM603への書込みモードの際に使用されるもので、モード信号MODEが[H]レベルになっている間、バス切替回路607を介してアドレス信号A0〜A15やデータ信号D0〜D7を取り込み、そのデータ信号D0〜D7に含まれる情報(暗号化されたプログラム及び暗号化された変更後の固有ID)を復号化処理した後、バス617を介してユーザプログラムROM602及びHWパラメータROM603に出力する(書き込む)。
The decryption /
シリアル送信回路615A及びシリアル送信回路615Bは、暗号化されていない平文データを送信するための回路である。シリアル送信回路615Aは、SIOTX0端子を介して演出制御装置150に接続される。また、シリアル送信回路615Bは、SIOTX1端子を介して払出制御装置210に接続される。シリアル受信回路625は、暗号化されていない平文データを、SIORX端子を介して受信するための回路である。
The
暗号化送受信回路616は、NJLINK端子を介して暗号化された暗号化データを送受信する回路である。例えば、遊技制御装置100から払出制御装置210にデータを送信する場合に使用される、また、遊技制御装置100と払出制御装置210との間は、NJLINK接続で接続され、暗号化送受信回路616には、NJLINK信号線が接続される。暗号化送受信回路616は、NJLINK信号線を介してデータを送受信する。
The encrypted transmission /
バス617はデータバス(図11のデータバス660)、アドレスバス(図11のアドレスバス650)及び制御バスを含むものであり、情報領域部600Bまで延びている。
The
次に、遊技用演算処理装置600における情報管理を行う情報領域部600Bは、HPGプログラムROM618、IDプロパティメモリ619、バスモニタ回路620、HPGワークRAM621、制御回路622、外部通信制御回路623、バス624、及び遊技領域部600Aから延びるバス617の一部を含んで構成される。
Next, an information area unit 600B for managing information in the game processing unit 600 includes an
HPGプログラムROM618には、各種検査動作を行うHPGプログラムが格納される。
The
IDプロパティメモリ619には、図示しない検査装置から外部通信制御回路623を介して受信した要求に基づいて、HWパラメータROM603に記憶されている情報を図示しない検査装置にすぐに出力できるように、遊技用演算処理装置600の電源投入時(システムリセット時)にHWパラメータに記憶されている情報を複製して記憶する。なお、IDプロパティメモリ619は、遊技領域部600A側及び情報領域部600B側の双方よりアクセスが可能な構成になっている。
In the
バスモニタ回路620は、情報領域部600B側より遊技領域部600A側のバス617の状態監視及び制御を行う。ここでの制御とは、HWパラメータROM603の内容をIDプロパティメモリ619に複写する際のタイミング制御や、ユーザプログラムROM602に格納されたプログラムを外部に出力する際(遊技領域部600A側のバス617を開放してユーザプログラムROM602からプログラムを読み込んで情報領域部600B側より外部に出力する際)のタイミング制御である。なお、プログラムは、外部通信制御回路623で暗号化されてから出力される。
The
HPGワークRAM621は、情報領域部600Bにおけるプログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられるものである。
The HPG work
制御回路622は情報領域部600B側を制御するもので、バッファメモリを有している。制御回路622は、例えば、バスモニタ回路620を介してCPUコア102の動作を監視し、非動作中に遊技領域部600AのユーザワークRAM604に記憶された内容をミラードRAM605へコピーする。また、図示しない検査装置からの要求に応答して情報領域部600BのIDプロパティメモリ619の内容を外部へ転送したり、プログラム要求に応答してバスモニタ回路620を介してユーザプログラムROM602内のプログラムを外部へ転送したりする。制御回路622のメモリは、転送時のタイミング調節のために用いられる。
The
外部通信制御回路623は図示しない検査装置との通信を行うもので、例えば、外部からの指令に基づいて遊技用演算処理装置600内に格納されている情報(例えば、固有ID、プログラム、実払出数等)を暗号化した後、外部へ転送する等の処理を行う。
The external
遊技用演算処理装置600では、遊技領域部600Aと情報領域部600Bがバスモニタ回路620を介して独立して動作する。すなわち、情報領域部600B側は遊技領域部600AにおけるCPUコア102の作動に関係なく(プログラム実行に関係なく)動作可能である。
In the game processing unit 600, the game area unit 600A and the information area unit 600B operate independently via the
なお、図5では図示されていないが、遊技用演算処理装置600には、図11にて後述するRAMアクセス規制回路(更新規制手段)640を備えている。 Although not shown in FIG. 5, the gaming arithmetic processing device 600 includes a RAM access restriction circuit (update restriction means) 640 described later in FIG.
図6は、本発明の第1の実施の形態の遊技制御装置100におけるシリアル送信回路615の構成例を示すブロック図である。
FIG. 6 is a block diagram illustrating a configuration example of the
シリアル送信回路615は、送信シリアルチャンネル設定レジスタ633、送信データステータスレジスタ631、送信制御レジスタ632、送信データレジスタ635(送信データバッファレジスタ635A、送信データシフトレジスタ635B)、ボーレート生成回路(送信速度設定手段)634を含んで構成される。
The
シリアル送信回路615は、出力制御回路612から入力された選択信号に基づいて、送信先を選択する。また、リセット信号の入力を受け付けると、各種レジスタに設定された値を0クリアする。
The
送信シリアルチャンネル設定レジスタ633は、データ送信時の通信速度及び通信フォーマットを指定するレジスタである。送信シリアルチャンネル設定レジスタ633には、後述するメイン処理におけるシリアル通信設定処理によって各値が設定される。
The transmission serial
図7は、本発明の第1の実施の形態の送信シリアルチャンネル設定レジスタ633の構成例を示す図である。図7に示すように、送信シリアルチャンネル設定レジスタ633は、16ビットで構成されており、ビット0〜15はすべて書き込み/読み出し可能とされる。
FIG. 7 is a diagram illustrating a configuration example of the transmission serial
送信シリアルチャンネル設定レジスタ633において、ビット0〜12には、送信ボーレート(通信速度)を算出するためのボーレート設定値(例えば、分周比)が設定される。
In the transmission serial
具体的には、遊技用演算処理装置600に入力されるシステムクロック(MCLK)の周波数(単位Hz:ヘルツ)を32で除した値を、さらに、このボーレート設定値で除した値が、送信ボーレート(1秒間に送信されるデータのビット数)として設定される。例えば、ボーレート設定値として100を設定すると、システムクロックの周波数が20MHzであった場合には、送信ボーレートは、20,000,000÷32÷100=6250(bps)となる。 Specifically, a value obtained by dividing the frequency (unit: Hz) of the system clock (MCLK) input to the game processing unit 600 by 32 and further divided by this baud rate set value is the transmission baud rate. It is set as (number of bits of data transmitted per second). For example, if 100 is set as the baud rate setting value, and the system clock frequency is 20 MHz, the transmission baud rate is 20,000,000 / 32/100 = 6250 (bps).
ビット13には、送信データ長を8ビットとする場合に“0”が設定され、9ビットとする場合に“1”が設定される。
ビット14には、送信データにパリティを付加しない場合に“0”が設定され、パリティを付加する場合に“1”が設定される。ビット15には、送信データに付加するパリティを偶数パリティとする場合に“0”が設定され、奇数パリティとする場合に“1”が設定される。なお、ビット15は、ビット14に“1”(パリティ有り)が設定されている場合に有効となる。
なお、遊技用演算処理装置600にリセット信号(RST0)が入力されると、シリアル送信回路615がリセットされ、送信シリアルチャンネル設定レジスタ633の全ビットが“0”に設定される(図6等も参照)。
When a reset signal (RST0) is input to the game processing unit 600, the
図6の説明に戻り、送信制御レジスタ632は、シリアル送信回路615の動作を制御するためのレジスタである。
Returning to the description of FIG. 6, the
図8は、本発明の第1の実施の形態の送信制御レジスタ632の構成例を示す図である。図8に示すように、送信制御レジスタ632は、例えば8ビットで構成され、ビット6は読み出し専用とされ、他のビット0、4、5、7は書き込み/読み出し可能とされる。なお、本実施形態では送信制御レジスタ632のビット1〜3は未使用としているため、図8では記載を省略している。
FIG. 8 is a diagram illustrating a configuration example of the transmission control register 632 according to the first embodiment of this invention. As shown in FIG. 8, the
送信制御レジスタ632のビット0には、送信回路(シリアル送信回路615)を初期化する場合に“1”が設定される。送信回路が初期化されると送信データレジスタ635のデータも含めて全てのレジスタが初期値とされる。
ビット4には、送信データレジスタ635(送信データシフトレジスタ635B)からのデータ送信を禁止する場合に“0”が設定され、データ送信を許可する場合に“1”が設定される。
ビット5には、送信データレジスタ635が空になったときに送信割り込みを要求しない場合に“0”が設定され、送信割り込みを要求する場合に“1”が設定される。
ビット6には、送信割り込み要求が発生しているか否か(送信割り込み状態)を示す値が設定される。ビット6に“0”が設定されている場合には送信割り込みを要求していない状態であることを示し、“1”が設定されている場合には送信割り込みを要求している状態であることを示す。
ビット7には、送信データレジスタのビット8の値(データ長が9ビットの場合)が設定される。
In
なお、遊技用演算処理装置600にリセット信号(RST0)が入力されると、シリアル送信回路615がリセットされ、送信制御レジスタ632の全ビットが“0”に設定される(図6等も参照)。その結果、送信制御レジスタ632のビット4が“0”になるので、送信データレジスタ635(送信データシフトレジスタ635B)からのデータ送信が禁止され、データ出力がオフされた状態になる。
When a reset signal (RST0) is input to the gaming arithmetic processing device 600, the
図6の説明に戻り、送信データステータスレジスタ631は、送信データレジスタ635の状態を示すレジスタである。CPU102は、送信データステータスレジスタ631の設定値によって、送信データレジスタ635の状態を確認することができる。
Returning to the description of FIG. 6, the transmission
図9は、本発明の第1の実施の形態の送信データステータスレジスタ631の構成例を示す図である。送信データステータスレジスタ631は、例えば8ビットで構成され、ビット0〜5、7はすべて読み出し専用とされる。なお、本実施形態では送信データステータスレジスタ631のビット6は未使用としているため、図9では省略している。
FIG. 9 is a diagram illustrating a configuration example of the transmission
送信データステータスレジスタ631において、ビット0〜5には、送信データの残量を示す値が設定される。例えば、ビット0〜5に“00h”(16進数の“0”)が設定されていると送信データがないことを示し、“01h”が設定されていると送信データが1バイト残っていることを示し、“20h”が設定されていると送信データが32バイト残っていることを示す。
In the transmission
ビット7には、送信データレジスタ635におけるデータの送信状態を示す値が設定される。ビット7に“1”が設定されているとデータを送信していない状態であることを示し、“0”が設定されているとデータを送信している状態であることを示す。
In
なお、遊技用演算処理装置600にリセット信号(RST0)が入力されると、シリアル送信回路615がリセットされ、送信データステータスレジスタ631の全ビットが“0”に設定される(図6等も参照)。その結果、送信データステータスレジスタ631のビット0〜5が“00h”となり、送信データの残量がない状態となる。
When a reset signal (RST0) is input to the game processing unit 600, the
図6の説明に戻り、送信データレジスタ635は、シリアル送信回路615が送信するデータを格納するレジスタである。送信データレジスタ635は、例えば、1段の送信データシフトレジスタ635Bと、31段の送信データバッファレジスタ635Aで構成される。
Returning to the description of FIG. 6, the transmission data register 635 is a register for storing data transmitted by the
図10は、本発明の第1の実施の形態の送信データレジスタ635(1段分)の構成例を示す図である。1段の送信データレジスタ635は、例えば8ビットで構成され、ビット0〜7はすべて書き込み専用とされる。
FIG. 10 is a diagram illustrating a configuration example of the transmission data register 635 (for one stage) according to the first embodiment of this invention. The one-stage transmission data register 635 is composed of, for example, 8 bits, and
この送信データレジスタ635には、タイマ割込処理で生成される制御指令データが格納され、送信制御レジスタのビット4に“1”(送信許可)が設定されていれば、格納された制御指令データは自動的に演出制御装置150に送信される。
This transmission data register 635 stores control command data generated by the timer interrupt process. If
制御指令データは、例えば、1バイトのモードデータと1バイトのアクションデータの2バイトで構成されるので、2段の送信データレジスタ635に1つの制御指令データが格納されることとなる。そして、本実施形態では、送信データレジスタ635を32段で構成しているので、1回のタイマ割込処理で最大16の制御指令データが生成される場合、これをすべて送信データレジスタ635に格納することができる。 The control command data is composed of, for example, 2 bytes of 1-byte mode data and 1-byte action data, so that one control command data is stored in the two-stage transmission data register 635. In this embodiment, since the transmission data register 635 is composed of 32 stages, when a maximum of 16 control command data are generated by one timer interrupt process, all of them are stored in the transmission data register 635. can do.
ただし、CPU102によって、新たな送信データを送信データレジスタ635に格納できるのは、送信データステータスレジスタ631のビット0〜5の値(送信データの残量を示す値)が“00h”〜“1Fh”の場合(送信データレジスタ635に、0〜31バイトの未送信データが残っている場合)に限られる。
However, the
送信データステータスレジスタ631のビット0〜5の値が“20h”の場合は、送信データレジスタ635に空きがないので、CPU102によって送信データレジスタ635に書き込もうとされたデータは廃棄される。これにより、送信データレジスタ635が満杯のときは、誤ってCPU102によるデータ書き込みが発生しても、既に格納されている送信データレジスタ635のデータが破壊されないようになっている。
When the value of
なお、遊技用演算処理装置600にリセット信号(RST0)が入力されると、シリアル送信回路615がリセットされ、送信データレジスタ635の全ビットが“0”に設定される(図6等も参照)。
When a reset signal (RST0) is input to the gaming arithmetic processing device 600, the
図6の説明に戻り、ボーレート生成回路634は、クロック生成回路609から分周回路629を介して出力されるクロック信号(遊技用演算処理装置600に入力されるシステムクロック(MCLK)を分周した信号)及び送信シリアルチャンネル設定レジスタ633に設定されている設定値(ボーレート設定値)に基づいて、シリアル送信回路615が用いる送信ボーレートを生成する。このとき、ボーレート生成回路634は、クロック信号及びボーレート設定値に基づいて、前述の計算式を用いて送信ボーレートを求める。また、分周回路629は、CPU102にも分周されたクロック信号を入力する。なお、分周回路629は、クロック生成回路609に含まれるように構成してもよい。
Returning to the description of FIG. 6, the baud
シリアル送信回路615では、送信許可の設定(送信制御レジスタ632のビット4を“1”)がなされた後、送信するデータを送信データレジスタ635(送信データバッファレジスタ635A)に書き込む、又は、送信するデータを送信データレジスタ635に書き込んだ後、送信許可の設定がなされると、自動的に送信が開始される。送信が開始されると、送信データバッファレジスタ635Aのデータが送信データシフトレジスタ635Bに転送され、送信データシフトレジスタ635Bからシリアル変換されて、最下位ビット(ビット0)から1ビットずつ順次出力される。そして、データの送信が完了すると送信データシフトレジスタ635Bは空になるので、送信データバッファレジスタ635Aに書き込まれている次のデータが送信データシフトレジスタ635Bに転送され、出力される。
The
したがって、シリアル送信回路615では、送信データレジスタ635(送信データシフトレジスタ635B、送信データバッファレジスタ635A)に書き込まれたデータ(制御指令データ)が、演出制御装置150に1ビットずつ順次送信されることとなる。
Therefore, in the
このように、シリアル送信回路(制御指令送信手段)615は、送信データ(例えば、制御指令データ)を格納する送信データレジスタ635を備え、送信データレジスタ635に送信データが格納されると、遊技制御装置100から演出制御装置150へ向かう方向に、格納された送信データを1ビットずつ順次送信する(いわゆるシリアル通信)ように構成されている。
As described above, the serial transmission circuit (control command transmission means) 615 includes the transmission data register 635 for storing transmission data (for example, control command data). When the transmission data is stored in the transmission data register 635, the game control is performed. The stored transmission data is sequentially transmitted bit by bit in the direction from the
具体的には、送信データレジスタ635は、格納されたデータをすぐに送信する送信データシフトレジスタ635Bと、格納されたデータを保持するとともに、送信データシフトレジスタ635Bがデータを格納可能な状態(データの送信が完了した状態)となったときに、保持しているデータを送信データシフトレジスタ635Bに転送する送信データバッファレジスタ635Aと、で構成される。
Specifically, the transmission data register 635 has a transmission
これにより、従来のパラレル通信では必須とされていたタイマ割込処理における制御指令データの送信処理を省略できるので、CPU102の負担を軽減することができる。
Thereby, the transmission process of the control command data in the timer interrupt process, which is essential in the conventional parallel communication, can be omitted, so that the burden on the
また、シリアル通信とすることで、制御指令データを送信するための配線本数を比較的少なくすることができる。 In addition, by using serial communication, the number of wires for transmitting control command data can be relatively reduced.
また、遊技制御装置100と演出制御装置150との間の通信は、遊技制御装置100から演出制御装置150へのみデータを送信可能な単方向通信とされ、遊技制御装置100にデータは入力されないので、不正が行われることを防止できる。
The communication between the
なお、本実施形態においては、送信データレジスタ635に最大で32バイトの送信データが格納可能であるが、この32バイトのデータが、1回のタイマ割込処理において全て出力できるように、ボーレート設定値(送信シリアルチャンネル設定レジスタ633のビット0〜12)の値が設定されている。
In this embodiment, transmission data register 635 can store transmission data of up to 32 bytes, but the baud rate is set so that all of this 32 bytes of data can be output in one timer interrupt process. The value (
具体的には、送信データレジスタ635から出力される1バイトあたりのデータ送信に必要な時間Tbと、タイマ割込信号の発生周期Fと、送信データレジスタ635に格納できるデータの上限バイト数Bとの関係が、F/B>Tbとなるように、ボーレート設定値を設定して送信の速度を決めればよい。 Specifically, the time Tb required for data transmission per byte output from the transmission data register 635, the generation period F of the timer interrupt signal, the upper limit number of bytes B of data that can be stored in the transmission data register 635, The baud rate setting value may be set to determine the transmission speed so that the relationship of F / B> Tb is satisfied.
例えば、タイマ割込信号の発生周期F=4ミリ秒で、送信データレジスタ635に格納できるデータの上限バイト数B=32バイトであれば、F/B=4000/32=125マイクロ秒よりも短くなるようにTbの値を決定し、遊技用演算処理装置600に入力されるシステムクロック(MCLK)の周波数を考慮したうえで、ボーレート設定値の値を定めればよい。 For example, if the timer interrupt signal generation cycle F = 4 milliseconds and the upper limit number of bytes B = 32 bytes of data that can be stored in the transmission data register 635, F / B = 4000/32 = 125 microseconds or less. Thus, the value of Tb is determined, and the value of the baud rate set value may be determined in consideration of the frequency of the system clock (MCLK) input to the gaming arithmetic processing device 600.
このような構成とすることで、シリアル送信回路(制御指令送信手段、送信手段)615は、1回のタイマ割込処理において生成される一連の制御指令データをすべて格納することが可能となり、タイマ割り込み毎に生成される制御指令データを確実に送信することができる。 With such a configuration, the serial transmission circuit (control command transmission means, transmission means) 615 can store all of a series of control command data generated in one timer interrupt process. It is possible to reliably transmit control command data generated for each interrupt.
図11は、本発明の第1の実施の形態の遊技制御装置100に備わる遊技用演算処理装置(アミューズチップ)600とその周辺のブロック図である。
FIG. 11 is a block diagram of a game processing unit (amuse chip) 600 provided in the
遊技用演算処理装置600は、セキュリティ回路630、CPUコア102(図11では601)、RAMアクセス規制回路640、ユーザワークRAM104(図11では604)、アドレスデコーダ611、出力制御回路612、及び、ユーザプログラムROM103(図11では602)を備える。
The gaming arithmetic processing device 600 includes a
なお、遊技用演算処理装置600に備わるこれらの回路等は、アドレスバス650及びデータバス660を介して接続されている。アドレスバス650は、A0〜A15の16ビットの信号線によって構成され、データバス660は、D0〜D7の8ビットの信号線によって構成される。
Note that these circuits and the like included in the gaming arithmetic processing device 600 are connected via an
また、遊技制御装置100は、演出制御装置150に接続されるシリアル送信回路615A、及び、払出制御装置210に接続されるシリアル送信回路615Bを備える。
Further, the
なお、演出制御装置150及び払出制御装置210には、シリアル受信回路625(図5)に相当する受信回路が備えられていて、シリアル送信回路615A、615Bから出力されたシリアルのデータを、それぞれが受信する構成となっている。
The
遊技用演算処理装置600に電源が投入される際には、RST0端子(図5)を介して電源装置160からリセット信号(起動信号)が入力され、リセット回路610B(図5)が作動する。
When power is supplied to the gaming arithmetic processing device 600, a reset signal (start signal) is input from the
セキュリティ回路630は、このリセット信号が入力されるとHWパラメータROM603に記憶された正当性確認情報を用いて、セキュリティチェック処理を実行する。このセキュリティチェック処理は、ユーザプログラムROM103に記憶されたプログラムの正当性の判定を行う処理である。
When this reset signal is input, the
セキュリティ回路630は、このセキュリティチェック処理を実行している間は、CPUコア102のリセット端子(RES0(負論理))にリセット信号を継続して出力することで、CPUコア102の起動を待機させる。
While this security check process is being executed, the
CPUコア102は、前述のリセット端子(RES0(負論理))と、書込指令出力端子(WR(負論理))、及び読出指令出力端子(RD(負論理))を備える。リセット端子はセキュリティ回路630に接続されており、遊技用演算処理装置600にリセット信号が入力されると、前述のように、セキュリティチェック処理を実行している間、CPUコア102に対するリセット信号がリセット端子に入力される。
The
CPUコア102のリセット端子にリセット信号が入力されると、CPUコア102は、CPUコア102に備わるレジスタ(REG)を初期化する。
When a reset signal is input to the reset terminal of the
また、CPUコア102がユーザワークRAM104にデータの書き込みを指令する書込指令を出力する場合には、CPUコア102の書込指令出力端子からは所定値よりも低い電圧のローレベルの信号が出力される。同様に、CPUコア102がユーザワークRAM104からデータの読み出しを指令する読出指令を出力する場合には、CPUコア102の読出指令出力端子からは所定値よりも低い電圧のローレベルの信号が出力される。
When the
つまり、書込指令出力端子及び読出指令出力端子は、通常電圧がハイレベルに維持されており、ユーザワークRAM104への読み書きを行うときにのみ電圧がローレベルになる。
That is, the normal voltage is maintained at a high level at the write command output terminal and the read command output terminal, and the voltage is at a low level only when reading / writing to the
また、CPUコア102は、アドレスバス650に指定したアドレスを出力し、データバス660を介して指定したアドレスに格納されたデータを入出力する。
In addition, the
まず、ユーザワークRAM104のデータの読み出しについて説明する。
First, reading of data from the
CPUコア102から、ユーザワークRAM104の読出指令入力端子(RD(負論理))に読出指令が入力されると、アドレスバス650及びデータバス660を介してCPUコア102に読出データが出力される。
When a read command is input from the
このとき、CPUコア102からアドレスバス650へは、ユーザワークRAM104のアドレスが出力され、アドレスデコーダ611からユーザワークRAM104のチップ選択端子(所謂CS端子に相当、図示は略)に選択信号が入力されることによって、ユーザワークRAM104が選択される。次いで、選択されたユーザワークRAM104は、アドレスバス650が指定する記憶領域のデータをデータバス660へ出力する。次いで、CPUコア102は、データバス660へ出力されたデータを内部へ取り込む。このような手順により、CPUコア102はユーザワークRAM104からデータを読み出す。
At this time, the address of the
次に、ユーザワークRAM104へのデータの書き込みについて説明する。
Next, data writing to the
CPUコア102に備わる書込指令出力端子は、RAMアクセス規制回路640のORゲート回路642に備わる二つの入力端子のうち一方の入力端子に接続される。ORゲート回路642の他方の入力端子は、RAMアクセス規制回路640のフリップフロップ回路641の出力端子(Q(負論理))に接続され、ORゲート回路642の出力端子は、ユーザワークRAM104の書込指令入力端子(WR(負論理))に接続されている。
The write command output terminal provided in the
また、ユーザワークRAM104の書込指令入力端子に所定値以下の電圧であるローレベルの信号が入力されると、ユーザワークRAM104への書き込みが許容される。
When a low level signal having a voltage equal to or lower than a predetermined value is input to the write command input terminal of the
このため、ORゲート回路642の二つの入力端子にそれぞれローレベルの信号が入力されなければ、ユーザワークRAM104への書き込みが許容されない。言い換えれば、ORゲート回路642の少なくとも一方の入力端子にハイレベルの信号が入力されていると、ユーザワークRAM104への書き込みが規制(禁止)される。
Therefore, writing to the
ここで、RAMアクセス規制回路640のフリップフロップ回路641について説明する。
Here, the flip-
フリップフロップ回路641は、D型のフリップフロップ回路であり、入力端子として、データ端子(D)、リセット端子(R(負論理))、及び出力イネーブル端子(OE(負論理))を備えるとともに、出力端子(Q(正論理),Q(負論理))を備える。
The flip-
データ端子には、データバス660を構成する信号線D0〜D7のうち所定の一本の信号線(例えば、D0)が接続されている。
One predetermined signal line (for example, D0) among the signal lines D0 to D7 constituting the
リセット端子には電源装置160からリセット信号線が接続され、リセット信号が入力されるとリセット端子はローレベルとなる。このときフリップフロップ回路641は、出力端子Q(正論理)からローレベルの信号を出力させ、出力端子Q(負論理)からハイレベルの信号を出力させる。出力端子Q(正論理)からの出力と、出力端子Q(負論理)からの出力は、相互に反転するレベルとなっている。
A reset signal line is connected to the reset terminal from the
また、出力イネーブル端子は、出力制御回路612から送信された出力イネーブル信号が入力される。出力イネーブル信号がハイレベルの場合には、出力端子から信号の出力が可能な状態となる。
The output enable signal transmitted from the
このフリップフロップ回路641に備えた出力端子Q(負論理)からの信号レベルは、CPUコア102によって、自在に設定できるようになっている。この設定は、CPUコア102が、フリップフロップ回路641に割り当てられたアドレスの記憶領域に所定のデータを書き込むことで実現される。
The signal level from the output terminal Q (negative logic) provided in the flip-
具体的には、CPUコア102によってフリップフロップ回路641に割り当てられたアドレスの記憶領域にデータを書き込む処理が行われると、CPUコア102からアドレスバス650へは、フリップフロップ回路641のアドレスが出力される。次に、アドレスデコーダ611から、出力制御回路612を介して、フリップフロップ回路641の出力イネーブル端子にクロック信号が入力され、出力イネーブル端子の電圧レベルが立ち上がり、ハイレベルとなる。
Specifically, when the
このときフリップフロップ回路641は、データ端子に入力されている信号を取り込んで、取り込んだ信号を出力端子Q(正論理)から出力し、取り込んだ信号の反転値を出力端子Q(負論理)から出力する。
At this time, the flip-
また、フリップフロップ回路641は、出力制御回路612がクロック信号の入力を終了した場合には、出力イネーブル端子の電圧レベルは立ち下がりローレベルとなり、出力端子Q(正論理)及び出力端子Q(負論理)の電圧レベルを保持する。
Further, in the flip-
また、出力端子Q(負論理)は、ORゲート回路642の入力端子に信号を出力する。出力端子Q(正論理)には何も接続されない。
The output terminal Q (negative logic) outputs a signal to the input terminal of the
次に、フリップフロップ回路641の入力状態に応じた各種動作について説明する。
Next, various operations according to the input state of the flip-
フリップフロップ回路641は、前述したように、出力イネーブル端子の電圧レベルの立ち上り、つまり出力イネーブル信号の入力開始時に、データ端子の電圧レベルを読み取り、読み取った電圧レベルの反転値を出力端子Q(負論理)から出力する。
As described above, the flip-
一方、フリップフロップ回路641は、出力イネーブル端子の電圧レベルの立ち下がり、つまり、出力イネーブル信号の入力終了時に、出力イネーブル端子の電源レベルの立ち上がり時の出力端子Q(負論理)からの出力を保持する。
On the other hand, the flip-
出力端子Q(負論理)からハイレベルの信号がORゲート回路642の入力端子に出力されていると、ORゲート回路642の他方の入力端子にローレベル及びハイレベルのいずれの信号が入力されても、ORゲート回路642の出力端子からはハイレベルの信号が出力される。
When a high level signal is output from the output terminal Q (negative logic) to the input terminal of the
このため、フリップフロップ回路641の出力端子Q(負論理)からハイレベルの信号が出力されていれば、ORゲート回路642の他方の入力端子に書込指令信号が入力されても(当該他方の入力端子にローレベルの信号が入力されても)、ユーザワークRAM104の書込指令入力端子にはローレベルが入力されなくなり、RAM書込禁止状態が発生する。
Therefore, if a high-level signal is output from the output terminal Q (negative logic) of the flip-
RAMアクセス規制回路640をRAM書込禁止状態にするかRAM書込許可状態にするかは、クロック信号がフリップフロップ回路641に入力されたときのフリップフロップ回路641のデータ端子に入力される電圧レベル、又はリセット信号の入力の有無に基づく。
The voltage level input to the data terminal of the flip-
前述のようにCPUコア102は、出力制御回路612を制御してクロック信号の出力を制御でき、データバス660の信号線の出力も制御できるので、フリップフロップ回路641の出力端子Q(負論理)から出力される信号は、CPUコア102によって制御可能である。言い換えると、CPUコア102は、データバス660の信号レベルを制御することによってRAMアクセス規制回路640の書込状態を制御できる。
As described above, the
さらに、前述のようにフリップフロップ回路641のリセット端子にリセット信号が入力された場合には、フリップフロップ回路641は、出力端子Qの電圧レベルをローにするため、出力端子Q(負論理)の電圧レベルはハイになる。このため、フリップフロップ回路641にリセット信号が入力された場合には、RAMアクセス規制回路640では、RAM書込禁止状態が発生することになる。
Further, as described above, when a reset signal is input to the reset terminal of the flip-
前述のように、出力制御回路612が払出制御装置210に接続されるシリアル送信回路615Bにクロック信号を入力すると、シリアル送信回路615Bは、クロック信号が入力されたタイミングで、データバス617からデータを読み取り、読み取ったデータを送信データバッファレジスタ635Aに格納する。そして、送信データバッファレジスタ635Aに格納されたデータを送信データシフトレジスタ635Bに格納し、払出制御装置210に順次出力する。
As described above, when the
なお、前述したセキュリティ回路630、RAMアクセス規制回路640、及びシリアル送信回路615の起動(リセット)は、電源装置160からのリセット信号を、前述のリセット回路610B(図5)を介して受け入れた場合に実行される。ただし、電源装置160からのリセット信号は、必ずしもリセット回路610Bを介して各回路に入力される必要はなく、リセット回路610Bを経由しない別個の信号線を介して各回路に入力されるような構成でもよい。
Note that the activation (reset) of the
なお、シリアル送信回路615(615A、615B)においては、図7〜図10の説明で前述したように、リセット信号によって、演出制御装置150や払出制御装置210へのデータ出力がオフ状態となる。
In the serial transmission circuit 615 (615A, 615B), as described above with reference to FIGS. 7 to 10, the data output to the
また、払出制御装置210は、シリアル送信回路615を備えてはいない点が、図6に示した遊技制御装置100と異なっている。その他の構成は、図11に示した遊技制御装置100と同じ構成である。
Further, the
また、演出制御装置150は、シリアル送信回路615を備えてはいない点、さらに、遊技用演算処理装置600にRAMアクセス規制回路640を備えていない点が、図6に示した遊技制御装置100と異なっている。その他の構成については、図11に示した遊技制御装置100と同じ構成である。
In addition, the fact that the
なお、払出制御装置210及び演出制御装置150に備えたシリアル受信回路625は、払出制御装置210(又は演出制御装置150)のCPU102が起動した後であれば、遊技制御装置100のシリアル送信回路615からの信号を受け入れられる状態となっている。なお、払出制御装置210(又は演出制御装置150)のシリアル受信回路625とCPU102とは、データバス617によって相互に接続される構成となっている。
Note that the
図12は、本発明の第1の実施の形態のCPUコア102の内部構成を説明するブロック図である。CPUコア102はZ80系のCPUとして構成されている。
FIG. 12 is a block diagram illustrating an internal configuration of the
図12に示すCPUコア102は、それぞれ8ビットの幅を有する、Wレジスタ1201A、Aレジスタ1202A、Bレジスタ1204A、Cレジスタ1205A、Dレジスタ1207A、Eレジスタ1208A、Hレジスタ1210A、Lレジスタ1211Aを備えている。
The
これらの汎用レジスタは、Wレジスタ1201AとAレジスタ1202Aとを組み合わせて、16ビットの幅を有するWAレジスタ1203Aとして使用することも可能である。同様に、Bレジスタ1204AとCレジスタ1205Aとを組み合わせたBCレジスタ1206A、Dレジスタ1207AとEレジスタ1208Aとを組み合わせたDEレジスタ1209A、Hレジスタ1210AとLレジスタ1211Aとを組み合わせたHLレジスタ1212Aを使用することも可能である。
These general-purpose registers can be used as a
なお、これらの汎用レジスタは、1つの汎用レジスタ群(バンク0のレジスタ群)1220Aを形成している。一方、CPUコア102は、バンク0のレジスタ群1220Aに含まれる汎用レジスタと同様の構成を有する、もう1つの汎用レジスタ群(バンク1のレジスタ群)1220Bを備えている。
These general-purpose registers form one general-purpose register group (register group in bank 0) 1220A. On the other hand, the
このバンク1のレジスタ群1220Bには、バンク0のWレジスタ1201A〜Lレジスタ1211Aと同一の機能を有する、Wレジスタ1201B〜Lレジスタ1211Bを備えている。これらのレジスタも、バンク0同様に、WAレジスタ1203B〜HLレジスタ1212Bとして、16ビットのレジスタとして使用することが可能である。
The
さらに、CPUコア102は、8ビットの幅を有するフラグレジスタ1200を備えている。
Further, the
フラグレジスタ1200は、図13で詳細を説明するが、レジスタを用いた演算結果が格納される。また、フラグレジスタ1200の、レジスタバンクセレクタ(RBS)1301(図13で後述)によって、2つの汎用レジスタ群1220A、1220Bのうちのいずれを、演算対象として用いるかが選択される。
The
レジスタバンクセレクタ(RBS)1301により選択されたレジスタ群に属する各レジスタは、後述の命令解釈実行回路1242によって演算に用いられる。一方、選択されていないレジスタ群に属する各レジスタは、レジスタバンクセレクタ(RBS)1301の値が変更されて選択対象となるまでは、値を保持する。
Each register belonging to the register group selected by the register bank selector (RBS) 1301 is used for calculation by an instruction
また、CPUコア102は、8ビットの幅を有して、上位アドレス指定レジスタとして機能するKレジスタ1230を備えている。このレジスタは、後述の命令解釈実行回路1242が、所定の16ビットのアドレスに記憶されたデータにアクセスする際の上位8ビットのアドレスを指定する上位アドレス指定レジスタである。
Further, the
さらに、CPUコア102は、それぞれ16ビットの幅を有する、IXレジスタ1231、IYレジスタ1232、スタックポインタとして機能するSPレジスタ1233、及びプログラムカウンタとして機能するPCレジスタ1234を備えている。
Further, the
IXレジスタ1231、IYレジスタ1232は、後述の命令解釈実行回路1242がデータをアクセスする際のインデックスとして用いられる。スタックポインタ1233は、スタックエリア(図18で後述)にデータを格納する(又はデータを取り出す)際の領域の位置を示す。プログラムカウンタ1234は、後述の命令解釈実行回路1242で実行されている命令が格納されているアドレスを示している。
The
命令解釈実行回路1242は、遊技制御プログラムを実行して、CPUコア102内部の各レジスタを用いた演算処理を行う。具体的には、ユーザプログラムROM103にて、プログラムカウンタ1234に示されるアドレスに記憶されたデータを読み出すとともに、読み出したデータをコードと見なして、コードに対応する命令を実行する。
The instruction
故に、本実施形態においては、CPUコア102自体を演算処理手段として例示しているが、CPUコア102の内部では、命令解釈実行回路1242が主体となって演算処理手段の機能を果たしている。
Therefore, in the present embodiment, the
なお、命令解釈実行回路1242は、遊技制御プログラムの命令に対応して、アクセス回路1243、アドレスバス650、及びデータバス660を介して、CPUコア102外部のユーザプログラムROM103、ユーザワークRAM604、及び他の回路との間で、データの授受を行う場合もある。
The instruction
また、命令解釈実行回路1242は、ユーザプログラムROM103の命令を1つずつ実行する毎に、次の命令が格納されているアドレスをプログラムカウンタ1234に格納する。このようにして命令の実行と、プログラムカウンタ1234の更新を繰り返すことで、遊技制御プログラムが順次実行される。なお、割込制御回路610Aからの割込信号を受け付けると、プログラムカウンタ1234の値は、予め設定された割込処理のアドレスの値に切り替えられる。
Further, the instruction
この命令解釈実行回路1242及びCPUコア102に備える各レジスタは、内部バス1235によって、データが授受される。
Data is transmitted to and received from the instruction
初期値設定回路1241は、CPUコア102に備える各レジスタに初期値をハード的に設定する回路である。
The initial
内蔵リセット回路1240は、セキュリティ回路630からのリセット信号を受信すると、初期値設定回路1241を起動させ、CPUコア102に備える各レジスタに初期値を設定させたのちに、命令解釈実行回路1242を起動させる。
When the built-in
図13は、本発明の第1の実施の形態のフラグレジスタ1200の構成を説明する図である。フラグレジスタ1200の各ビットの値は、図12における命令解釈実行回路1242によって設定される。
FIG. 13 is a diagram illustrating the configuration of the
割込マスタ許可フラグ(IMF)1300は、割込信号による割込処理の許否を設定するフラグであり、セット(値が「1」)で許可、クリア(値が「0」)で禁止となる。 The interrupt master permission flag (IMF) 1300 is a flag for setting permission / inhibition of interrupt processing by an interrupt signal, and is permitted when set (value is “1”) and prohibited when cleared (value is “0”). .
レジスタバンクセレクタ(RBS)1301は、図12における命令解釈実行回路1242が演算処理を行う際に、2つの汎用レジスタ群1220A、1220Bのうちのいずれを用いるかを選択するフラグであり、セット(値が「1」)でバンク1のレジスタ群1220B、クリア(値が「0」)でバンク0のレジスタ群1220Aが選択される。
The register bank selector (RBS) 1301 is a flag that selects which of the two general-
オーバーフローフラグ(VF)1302は、所定の演算によって演算対象の汎用レジスタに桁溢れ(オーバーフロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。 The overflow flag (VF) 1302 is set (value is “1”) when a digit overflow (overflow) occurs in a general-purpose register to be calculated by a predetermined operation, and is cleared (value is “0”) in other cases. .
サインフラグ(SF)1303は、所定の演算によって演算対象の汎用レジスタの最上位ビットが「1」になるとセット(値が「1」)され、他の場合はクリア(値が「0」)される。 The sign flag (SF) 1303 is set (value is “1”) when the most significant bit of the calculation target general-purpose register is “1” by a predetermined operation, and is cleared (value is “0”) in other cases. The
ハーフキャリーフラグ(HF)1304は、8ビット演算を行った結果として演算対象の汎用レジスタの4ビット目に桁上がり(キャリー)や桁借り(ボロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。 The half carry flag (HF) 1304 is set (value is “1”) when carry (carry) or borrow (borrow) occurs in the 4th bit of the general-purpose register to be calculated as a result of 8-bit operation. In other cases, it is cleared (value is “0”).
キャリーフラグ(CF)1305は、所定の演算によって桁上がり(キャリー)や桁借り(ボロー)が発生するとセット(値が「1」)され、他の場合はクリア(値が「0」)される。 The carry flag (CF) 1305 is set (value is “1”) when a carry (carry) or borrow (borrow) is generated by a predetermined operation, and is cleared (value is “0”) in other cases. .
ゼロフラグ(ZF)1306は、所定の演算算結果が「0」となった場合にセット(値が「1」)され、他の場合はクリア(値が「0」)される。 The zero flag (ZF) 1306 is set (value is “1”) when a predetermined calculation result is “0”, and is cleared (value is “0”) in other cases.
ジャンプステータスフラグ(JF)1307は、キャリーフラグ(CF)1305又はゼロフラグ(ZF)1306の少なくとも一方がセットされた場合にはセット(値が「1」)される。若しくは、演算処理を行わない場合であっても、汎用レジスタの値が「00H」の値になった場合は、セット(値が「1」)される。このような条件をいずれも満たさない場合は、クリア(値が「0」)される。 The jump status flag (JF) 1307 is set (value is “1”) when at least one of the carry flag (CF) 1305 or the zero flag (ZF) 1306 is set. Alternatively, even when the arithmetic processing is not performed, when the value of the general-purpose register becomes “00H”, it is set (value is “1”). When none of these conditions is satisfied, the value is cleared (value is “0”).
なお、CPUコア102がリセットされた場合には、フラグレジスタの全bitが0に設定される。
When the
図14は、本発明の第1の実施の形態のユーザワークRAM104の一例を示す図である。
FIG. 14 is a diagram illustrating an example of the
ユーザワークRAM104は、第1停電復旧領域701、ワークエリア702、第2停電復旧領域703、チェックサム領域704、使用禁止領域(アクセス禁止領域)705、及びスタック領域706を有する。
The
ユーザワークRAM104には、アドレス「2800H」〜「29FFH」が割り当てられており、第1停電復旧領域701にはアドレス「2800H」が割り当てられ、ワークエリア702にはアドレス「2801H」〜「2917H」が割り当てられ、第2停電復旧領域703にはアドレス「2918H」が割り当てられ、チェックサム領域704にはアドレス「2919H」が割り当てられ、使用禁止領域705にはアドレス「291AH」〜「297FH」が割り当てられ、スタック領域706にはアドレス「2980H」〜「29FFH」が割り当てられる。
Addresses “2800H” to “29FFH” are assigned to the
ユーザワークRAM104の各領域について説明する。
Each area of the
第1停電復旧領域701及び第2停電復旧領域703は、遊技機1への電源供給開始時に参照される情報が格納されており、直前の電源供給停止のとき(停電発生や遊技機1の電源スイッチをオフにしたとき)に、電源遮断の処理が正しく実行されていたか否かを示す情報(電源遮断確認フラグ)が格納されている。
The first power
ワークエリア702には、遊技制御で必要な変数等が格納され、図25及び図26に示す遊技制御装置メイン処理並びに図29に示すタイマ割込処理等で、これらの変数が更新される。具体的には、特図変動表示ゲーム及び普図変動表示ゲームの保留数を格納する保留カウンタ、特図変動表示ゲームを実行するために必要な各種乱数の生成領域、普図変動表示ゲームを抽選するために必要な乱数(普図乱数)の生成領域、普図乱数の保存領域、特図変動表示ゲームを実行するために必要な各種乱数の保存領域などがワークエリア702に記憶される。これらの詳細については、図15から図17を参照して後述する。
The
チェックサム領域704には、停電発生時に算出されたユーザワークRAM104の第1停電復旧領域701、ワークエリア702、及び第2停電復旧領域703のチェックサムが格納される。
The
使用禁止領域705は使用されない記憶領域であり、当該領域へのアクセスがあると、セキュリティ回路630(図6)によって、CPUコア102がリセットされるようになっている。
The use-prohibited
スタック領域706には、CPUコア102で演算されているデータの一部を一時的に退避させる場合に、退避データが格納される。また、割込みが発生した場合の戻りアドレスや、サブルーチンや関数を呼び出す場合の戻りアドレスも格納される。
The
なお、本実施形態では、ワークエリア702のうち遊技制御に用いられる各種乱数の生成及び保存領域の上位アドレスと、スタック領域706が割り当てられている領域の上位アドレスが異なるように設定されている。具体的には、ワークエリア702の各種乱数の生成及び保存領域の上位アドレスが「28H」(第1記憶領域)、スタック領域の上位アドレスが「29H」(第2記憶領域)となっており、乱数更新時にスタック領域の値を誤って更新してしまったり、スタック領域更新時に乱数の値を誤って更新してしまったりすることを防止している。
In the present embodiment, in the
さらに、上位アドレスが誤って設定されてしまった場合であっても誤作動を生じさせないように、各種乱数の生成及び保存領域の下位アドレスがスタック領域の下位アドレスと重ならないように設定している。 Furthermore, even if the upper address is set by mistake, the lower address of the various random number generation and storage areas is set so that it does not overlap with the lower address of the stack area so as not to cause a malfunction. .
具体的には、図15から図17で後述する、特図変動表示ゲームを実行するための各種乱数(始動記憶)の生成領域(2820H〜2827H)、普図乱数の生成領域(2828H)及び普図乱数の保存領域(282CH〜282FH)、第1特図変動表示ゲームを実行するための各種乱数(始動記憶)の保存領域(2830H〜284FH)、及び、第2特図変動表示ゲームを実行するための各種乱数(始動記憶)の保存領域(2850H〜286FH)などが該当する。これらの領域の上位アドレスを「28H」から「29H」に置換した領域(即ち2920H〜296FHの領域)は、図14に示すように、使用禁止領域705として設定されている。
Specifically, various random number (starting memory) generation areas (2820H to 2827H), a normal random number generation area (2828H), a general random number generation area (2828H), and a common random number display game for executing the special figure variation display game, which will be described later with reference to FIGS. Random number storage area (282CH to 282FH), various random number (starting memory) storage areas (2830H to 284FH) for executing the first special figure fluctuation display game, and second special figure fluctuation display game This corresponds to a storage area (2850H to 286FH) of various random numbers (startup memory) for the purpose. An area obtained by replacing the upper addresses of these areas from “28H” to “29H” (that is, an area from 2920H to 296FH) is set as a use-prohibited
図15から図17は、本発明の第1の実施の形態のユーザワークRAM104に割り当てられたワークエリア702に格納されるデータの具体例を説明する図である。図15は保留カウンタ、各種乱数の生成領域及び普図乱数の保存領域を示す。図16は第1特図変動表示ゲームを実行するために必要な各種乱数の保存領域、図17は第2特図変動表示ゲームを実行するために必要な各種乱数の保存領域を示す。
15 to 17 are diagrams illustrating specific examples of data stored in the
図15を参照すると、保留カウンタを格納する領域として281DHから281FHが割り当てられている。具体的には、第1特図変動表示ゲームの保留記憶数を格納する第1特図保留カウンタ(281DH)、第2特図変動表示ゲームの保留記憶数を格納する第1特図保留カウンタ(281EH)、普図変動表示ゲームの保留記憶数を格納する普図保留カウンタ(281FH)となっている。さらに、特図変動表示ゲームを実行するための各種乱数(始動記憶)の生成領域(2820H〜2827H)、普図乱数の生成領域(2828H)及び普図乱数の保存領域(282CH〜282FH)が割り当てられている。 Referring to FIG. 15, 281DH to 281FH are allocated as areas for storing the hold counter. Specifically, a first special figure hold counter (281DH) that stores the number of reserved memories of the first special figure variable display game, and a first special figure hold counter that stores the number of held memories of the second special figure variable display game ( 281EH), it is a universal figure holding counter (281FH) for storing the holding memory number of the common figure variable display game. Furthermore, various random number (starting memory) generation areas (2820H to 2827H), normal random number generation areas (2828H), and normal random number storage areas (282CH to 282FH) are allocated for executing the special figure variation display game. It has been.
特図変動表示ゲームを実行するための各種乱数には、特図変動表示ゲームの大当りを決定するための大当り乱数(2バイト)、特図変動表示ゲームの大当り図柄を決定するための大当り図柄乱数、特図変動表示ゲームの変動パターンを決定するための第1変動P(パターン)乱数(2バイト)、第2変動P(パターン)乱数、第3変動P(パターン)乱数(2バイト)が含まれる。 Various random numbers for executing the special figure fluctuation display game include a big hit random number (2 bytes) for determining the big hit of the special figure fluctuation display game, and a big hit symbol for determining the big hit symbol of the special figure fluctuation display game Includes a first variation P (pattern) random number (2 bytes), a second variation P (pattern) random number, and a third variation P (pattern) random number (2 bytes) for determining the variation pattern of the special figure variation display game. It is.
図16を参照すると、第1特図変動表示ゲームを実行するための各種乱数を格納する領域が割り当てられている。本実施形態では、第1特図変動表示ゲームの始動記憶(特図1始動記憶)を最大4回分保持可能となっている。そして、これら乱数値は、特図始動口SW共通処理(図40)において設定される。 Referring to FIG. 16, an area for storing various random numbers for executing the first special figure variation display game is allocated. In the present embodiment, the start memory of the first special figure variation display game (special figure 1 start memory) can be retained up to four times. These random numbers are set in the special figure starting port SW common process (FIG. 40).
具体的には、記憶された特図1始動記憶の保留順に領域が割り当てられる。具体的には、保留1は2830Hから2837H、保留2は2838Hから283FH、保留3は2840Hから2847H及び保留4は2848Hから284FHの各領域が割り当てられている。また、各領域には、前述した特図変動表示ゲームを実行するための各種乱数に応じた領域がさらに割り当てられている。
Specifically, the areas are allocated in the order in which the stored special figure 1 start-up memory is stored. Specifically, areas 1830H to 2837H, 238H to 283FH, 2840H to 2847H, 3840, and 2848H to 284FH are allocated to the
そして、保留1個目の特図1始動記憶に対応する第1特図変動表示ゲームが実行される場合には、後述する特図普段処理の特図1変動開始処理(図45)において、保留1個目の各乱数を取得(一時的に退避)した後に、保留2個目〜4個目の特図1始動記憶に対応する領域に記憶された各乱数を保留1個目〜3個目の特図1始動記憶に対応する領域にシフトする。 Then, when the first special figure fluctuation display game corresponding to the first special figure 1 start memory to be held is executed, in the special figure normal fluctuation process (FIG. 45) described later, After obtaining (temporarily saving) each first random number, each random number stored in the area corresponding to the second to fourth special figure 1 start memory is held first to third The shift to the area corresponding to the start memory of FIG.
そして、遊技制御装置100は、後述する特図大当り判定処理(図42)において、取得した各乱数(一時的に退避していた保留1個目の各乱数)の値と、予め定義された特図1変動表示ゲーム用の大当り判定値とを比較して、特図1変動表示ゲームが大当りか否かを判定し、特図1始動記憶数(第1特図保留カウンタに記憶された値)を1減算する。
Then, the
図17を参照すると、図16に示した第1特図変動表示ゲームの場合と同様に、第2特図変動表示ゲームを実行するための各種乱数(特図2始動記憶)を格納する領域が割り当てられている。特図2始動記憶に含まれる各種乱数は、特図1始動記憶と同様に処理される。 Referring to FIG. 17, as in the case of the first special figure fluctuation display game shown in FIG. 16, there are areas for storing various random numbers (special figure 2 start memory) for executing the second special figure fluctuation display game. Assigned. Various random numbers included in the special figure 2 start memory are processed in the same manner as the special figure 1 start memory.
図18及び図19は、本発明の第1の実施の形態のスタック領域706の一例を示す図である。図18及び図19では、スタック領域706に戻りアドレスや所定のレジスタの値が格納される場合について説明する。
18 and 19 are diagrams illustrating an example of the
まず、図18(A)は、遊技機1に電源が投入された直後の状態であり、スタック領域706に何もデータが格納されていない状態を示している。この場合、スタックポインタ(SP)1233は、スタック領域の最終領域(29FFH)をスタックポインタ初期値として示している。
First, FIG. 18A shows a state immediately after power is turned on to the
図18(B)は、スタック領域706に退避データが格納されたり、割込み発生やサブルーチン呼び出しによって、スタック領域706に戻りアドレスなどのデータが格納された状態を示している。この場合、最後にデータ(又はアドレス)が格納された領域の1つ上のアドレスを、スタックポインタ1233によって示すことになる。
FIG. 18B shows a state in which saved data is stored in the
なお、スタック領域706に戻りアドレスが格納される場合としては、割込みが発生した場合と、後述する「CALL」命令を実行して通常のサブルーチン呼び出しを行った場合とがあるが、本実施形態では、前者の場合と後者の場合とで、スタック領域706に格納されるデータが異なる。
The return address is stored in the
図19(C)は、呼出元のルーチンにて後述する「CALL」命令を実行して通常のサブルーチン呼び出しを行った場合において、スタック領域706にデータが退避する様子を示している。なお、この図は、図18(B)の状態にて「CALL」命令を実行した直後の様子を示している。
FIG. 19C shows a state in which data is saved in the
図18(B)において、「CALL」命令を実行すると、スタック領域706に、呼出元のルーチンの戻りアドレスが上位バイトと下位バイトに分離して格納される。このとき、最後にアドレスが格納された領域の1つ上のアドレスが、スタックポインタ1233によって示される。
In FIG. 18B, when the “CALL” instruction is executed, the return address of the call source routine is stored in the
なお、呼出先のサブルーチンの処理の最後にて、後述する「RET」命令が実行されると、この戻りアドレスがプログラムカウンタ1234に戻されるとともに、スタックポインタ1233の値も、「CALL」命令実行前の値に戻される(図18(B)の状態に戻る)。これにより、呼出元のルーチンに処理を戻すことができる。
When a “RET” instruction, which will be described later, is executed at the end of the processing of the called subroutine, this return address is returned to the
一方、図19(D)は、呼出元のルーチンにて割込みが発生して、呼出先の割込処理のルーチンが実行される場合において、スタック領域706にデータが退避する様子を示している。なお、図19(D)は、図18(B)の状態にて割込みが発生した直後の様子を示している。
On the other hand, FIG. 19D shows how data is saved in the
図18(B)において、割込みが発生すると、スタック領域706に、まず、呼出元のルーチンで設定されていたフラグレジスタ1200の値が格納され、次に、呼出元のルーチン戻りアドレスが上位バイトと下位バイトに分離して格納される。このとき、最後にアドレスが格納された領域の1つ上のアドレスが、スタックポインタ1233によって示される。
In FIG. 18B, when an interrupt occurs, the
なお、呼出先の割込処理ルーチンの最後にて、後述する「RETI」若しくは「RETN」命令が実行されると、スタック領域706に格納していた戻りアドレスがプログラムカウンタ1234に戻され、スタック領域706に格納していたフラグレジスタの値も、フラグレジスタ1200に戻される。さらに、スタックポインタ1233の値も、割込みが発生する前の値に戻される(図18(B)の状態に戻る)。これにより、呼出元のルーチンに処理を戻すことができる。
When a “RETI” or “RETN” instruction, which will be described later, is executed at the end of the interrupt processing routine of the call destination, the return address stored in the
このようにして、スタック領域706に格納された戻りアドレス等のデータは、後に格納された戻りアドレスから先に読み出される。
In this manner, data such as a return address stored in the
なお、後述する「PUSH」命令を実行すると、命令で指定されたレジスタの値がスタック領域706に格納され、スタックポインタ1233の値も、図19(C)や図19(D)と同様に、最後にデータが格納された領域の1つ上のアドレスを示すことになる。
When a “PUSH” instruction, which will be described later, is executed, the value of the register designated by the instruction is stored in the
一方、後述する「POP」命令を実行すると、スタック領域706に格納されていた値を取り出して、命令で指定されたレジスタに格納され、スタックポインタ1233の値も、図19(C)から図18(B)に変化するように、最後にデータが取り出された領域のアドレスを示すことになる。
On the other hand, when a “POP” instruction to be described later is executed, the value stored in the
このように、本実施形態では、スタック領域706において最後にデータが格納されたアドレスの1つ上のアドレス(言い換えれば、最後に取り出されたデータのアドレス)を、スタックポインタ1233によって示している。すなわち、現時点でのスタックポインタ1233は、次のスタック領域706に格納されるデータのアドレスを示している。
As described above, in the present embodiment, the
なお、別の方法として、現時点でのスタックポインタ1233によって、次にスタック領域706から取り出されるデータのアドレスを示すような方法も考えられる。このような変形例を図20に示す。
As another method, a method of indicating the address of data to be next fetched from the
図20(E)は、遊技機1に電源が投入された直後の状態であり、スタック領域706に何もデータが格納されていない状態を示している。この場合、スタックポインタ(SP)1233は、スタック領域の最終領域(29FFH)の1つ下のアドレス(2A00H)をスタックポインタ初期値として示している。なお、このスタックポインタ初期値が示す領域は、スタック領域には含まれない領域(本実施形態では、ユーザワークRAM104の記憶領域にも含まれていない領域)である。
FIG. 20E shows a state immediately after the
図20(F)は、スタック領域706に退避データが格納されたり、割込み発生やサブルーチン呼び出しによって、スタック領域706に戻りアドレスなどのデータが格納された状態を示している。この場合、最後にデータ(又はアドレス)が格納された領域を、スタックポインタ1233によって示すことになる。スタック領域706からデータを取りだす場合は、現時点でスタックポインタ1233が示しているアドレスからデータを取り出せばよい。
FIG. 20F shows a state in which saved data is stored in the
なお、スタック領域706の割り当てが、上位アドレスが同じ領域に限定されている(例えば、2900H〜29FFHの領域に割り当てられることが限定されている)のであれば、スタックポインタ1233は下位のアドレスのみを指定するだけで機能を発揮する。このような構成においては、スタックポインタ1233を1バイトのレジスタで構成することが可能であり、図20の方法よりも、図18及び図19の方法にてスタックポインタ1233によるアドレス指定を行う構成が効果的である。
If the allocation of the
図21及び図22は、本発明の第1の実施の形態のCPUコア102によって実行される遊技制御プログラムを記述するためのアセンブリ言語の命令を説明する図である。各命令は、対応するコードデータに変換されて、ユーザプログラムROM103の所定のアドレスに記憶されている。図21は、変換後のコードデータにアドレス部を含まない命令(変換後のコードデータが命令コード部のみで構成される命令)を示し、図22は、変換後のコードデータに命令コード部とアドレス部の各々を含む命令を示している。なお、ここで対象となるレジスタは、図12に示すレジスタである。
21 and 22 are diagrams illustrating assembly language instructions for describing the game control program executed by the
図21において、命令2100は、指定するレジスタの値を、Aレジスタ1202Aに格納する命令である。例えば、「LD A,B」は、Bレジスタ1204Aの値を、Aレジスタ1202Aに格納する命令である。他の「LD A,C」〜「LD A,L」の命令も同様に、対応するCレジスタ1205A〜Lレジスタ1211Aから値を抽出して、Aレジスタ1202Aに格納する命令である。
In FIG. 21, an
命令2101は、Aレジスタ1202Aの値を、指定するレジスタに格納する命令である。例えば、「LD B,A」は、Aレジスタ1202Aの値を、Bレジスタ1204Aの値に格納する命令である。他の「LD C,A」〜「LD L,A」の命令も同様に、Aレジスタ1202Aから値を抽出して、対応するCレジスタ1205A〜Lレジスタ1211Aに格納する命令である。
The
命令2102は、Aレジスタ1202Aの値と指定するレジスタの値とで論理和演算を行い、演算結果をAレジスタ1202Aに格納する命令である。例えば、「OR B」は、Aレジスタ1202Aの値とBレジスタ1204Aの値とで、各ビット毎に論理和演算を行い、演算結果をAレジスタ1202Aに格納する命令である。他の「OR C」〜「OR L」の命令も同様に、Aレジスタ1202Aの値と、対応するCレジスタ1205A〜Lレジスタ1211Aの値とで論理和演算を行い、演算結果をAレジスタ1202Aに格納する命令である。
The
命令2103の「ADD A,A」は、Aレジスタ1202Aの値に、同じAレジスタ1202Aの値を加算して、演算結果をAレジスタ1202Aに格納する命令である。実質的には、Aレジスタ1202Aの値が2倍される演算が行われる命令である。命令2104の「ADD HL,BC」は、HLレジスタ1212Aの値にBCレジスタ1206Aの値を加算して、演算結果をHLレジスタ1212Aに格納する命令である。
“ADD A, A” of the
命令2105の「PUSH HL」は、HLレジスタ1212Aの値を、スタックエリアに格納する命令である。命令2106の「POP HL」は、スタックエリアから取り出した値をHLレジスタ1212Aの値に格納する命令である。
“PUSH HL” of the
命令2107の「INC HL」は、HLレジスタ1212Aの値を「1」だけ加算する命令である。命令2108の「DEC HL」は、HLレジスタ1212Aの値を「1」だけ減算する命令である。
“INC HL” of the
命令2109の「JP (HL)」は、HLレジスタ1212Aの値をアドレスと見なして、そのアドレス先に分岐する命令である。例えば、HLレジスタ1212Aの値が「1234H」であれば、命令解釈実行回路1242は、プログラムカウンタ1234の値を「1234H」に変更する。これにより、次に、命令解釈実行回路1242が実行する命令は、アドレスが「1234H」となる領域に格納されているコードを変換した命令となる。以降、命令解釈実行回路1242は、変更後のアドレス以降の命令を順次実行する。
“JP (HL)” of the
命令2110は、スタックエリアに格納された値をプログラムカウンタ1234に戻すことで、呼び出し先の処理ルーチンから、呼び出し元の処理ルーチンに復帰する命令である。ここで、「RET」は、図22で後述する「CALL nn」命令の実行により呼び出された処理ルーチンから復帰する命令であり、「RETI」は、INT割込により呼び出された処理ルーチンから復帰する命令であり、「RETN」は、NMI割込により呼び出された処理ルーチンから復帰する命令である。
The
命令2111は、割込を受け付けるか否かを設定する命令である。「DI」は割り込みの禁止を設定する命令であり、「EI」は割り込みの許可を設定する命令である。
The
命令2112は、Kレジスタ1230に格納されている値を上位バイトとし、Lレジスタ1211Aに格納されている値を下位バイトとして合成した2バイトの値をアドレスと見なして、そのアドレスの領域に記憶されている値を、Aレジスタ1202Aに設定する命令である。具体的には、「2803H」のアドレスに記憶された値をAレジスタ1202Aに設定したいときは、予め、Kレジスタ1230に「28H」の値を格納するとともに、Lレジスタ1211Aに「03H」の値を格納し、その状態で「LDK A,(L)」という命令を実行する。
The
なお、Aレジスタ1202Aの値を、所望のアドレスの領域に格納する場合は、予め格納先の上位アドレスをKレジスタ1230に設定し、下位アドレスをLレジスタ1211Aに設定した状態で、図に示す「LDK (L),A」という形式の命令を実行する。
In the case where the value of the
命令2113の「INC L」は、Lレジスタ1211Aに格納されている値を「1」だけ加算する命令である。ただし、Lレジスタ1211Aの値が「FFH」のときに、「INC L」命令を実行すると、命令実行後のLレジスタ1211Aの値が「00H」になる。
“INC L” of the
命令2114の「DEC L」は、Lレジスタ1211Aに格納されている値を「1」だけ減算する命令である。ただし、Lレジスタ1211Aの値が「00H」のときに、「DEC L」命令を実行すると、命令実行後のLレジスタ1211Aの値が「FFH」になる。
“DEC L” of the
命令2115は、図13で前述したフラグレジスタ1200の「レジスタバンクセレクタ」のビットに値を設定するための命令である。「LD RBS,0」は該当ビットに「0」の値を設定する命令であり、「LD RBS,1」は該当ビットに「1」の値を設定する命令である。
The
命令2106の「PUSH FLG」は、フラグレジスタ1200の値を、スタックエリアに格納する命令である。命令2107の「POP FLG」は、スタックエリアから取り出した値をフラグレジスタ1200に格納する命令である。
“PUSH FLG” of the
図21に示す命令のうち、図に示すように、命令2100から命令2114までの命令は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部を構成するコードデータに変換される。例えば、「LD A,B」の命令は、「78H」という1バイトのコードデータに変換されて、ユーザプログラムROM103の所定アドレスに記憶されている。
Of the instructions shown in FIG. 21, as shown in the figure, instructions from
一方、図21に示す命令のうち、命令2115から命令2117までの命令は、ユーザプログラムROM103に記憶される際に、2バイトの命令コード部を構成するコードデータに変換される。例えば、「LD RBS,0」は、「CBH」「00H」という2バイトのコードデータに変換され、ユーザプログラムROM103の連続する所定のアドレスに記憶されている。
On the other hand, among the instructions shown in FIG. 21, the instructions from the
次に、図22において、命令2200は、指定するレジスタに任意の1バイトの値を設定する命令である。図中の「n」はレジスタに設定する値を示しており、例えば、Aレジスタ1202Aに「42H」の値を設定したいときは、「LD A,42H」という命令になる。
Next, in FIG. 22, an
なお、この命令2200は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、1バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「LD A,42H」の命令は、1バイトの命令コード部のデータ「3EH」と、1バイトのアドレス部のデータ「42H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに「3EH」、「42H」の順で記憶されている。
When the
同様に、「LD B,n」は、Bレジスタ1204Aに任意の1バイトの値(n)を設定する命令であり、「LD K,n」は、Kレジスタ1230に任意の1バイトの値(n)を設定する命令である。これらの命令も、1バイトの命令コード部と、1バイトのアドレス部のデータに変換されて、ユーザプログラムROM103の連続する所定のアドレスに記憶されている。
Similarly, “LD B, n” is an instruction to set an arbitrary 1-byte value (n) in the
命令2201は、任意のアドレスの領域に記憶されている値を、Aレジスタ1202Aに設定する命令である。図中の「nn」は2バイトのアドレス値を示しており、例えば、「2901H」のアドレスに記憶された値をAレジスタ1202Aに設定したいときは、「LD A,(2901H)」という命令になる。
The
なお、Aレジスタ1202Aの値を、任意のアドレスの領域に格納する場合は、図に示すように「LD (nn),A」という形式の命令になる。例えば、Aレジスタ1202Aの値を「2901H」のアドレスの領域に格納したいときは、「LD (2901H),A」という命令になる。
When the value of the
この命令2201は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、2バイトのアドレス部とからなる計3バイトのコードデータに変換される。例えば、「LD A,(2901H)」の命令は、1バイトの命令コード部のデータ「3AH」と、2バイトのアドレス部のデータ「01H」「29H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに、「3AH」、「01H」、「29H」の順で記憶されている。
When this
命令2202は、Kレジスタ1230に格納されている値を上位バイトとし、任意の1バイトの値で示される値を下位バイトとして合成した2バイトの値をアドレスと見なして、そのアドレスの領域に記憶されている値を、Aレジスタ1202Aに設定する命令である。この場合の任意の1バイトの下位アドレスは、図中の「n」に対応している。
The
具体的には、「2803H」のアドレスに記憶された値をAレジスタ1202Aに設定したいときは、予めKレジスタ1230に「28H」の値を格納しておき、その状態で「LDK A,(03H)」という命令を実行する。
Specifically, when the value stored in the address “2803H” is to be set in the
なお、Aレジスタ1202Aの値を、所望のアドレスの領域に格納する場合は、予め格納先の上位アドレスをKレジスタ1230に設定した状態で、図に示す「LDK (n),A」という形式の命令を実行する。例えば、Aレジスタ1202Aの値を「2803H」のアドレスの領域に格納したいときは、Kレジスタ1230の値を「28H」に設定した状態で、「LDK (03H),A」という命令を実行する。
When the value of the
この命令2202は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、1バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「LDK A,(03H)」の命令は、1バイトの命令コード部のデータ「3FH」と、1バイトのアドレス部のデータ「03H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに、「3FH」、「03H」の順で記憶されている。
When this
命令2203は、指定するレジスタに任意の2バイトの値を設定する命令である。図中の「nn」はレジスタに設定する2バイトの値を示しており、例えば、HLレジスタ1212Aに「5678H」の値を設定したいときは、「LD HL,5678H」という命令になる。
An
なお、この命令2203は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、2バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「LD HL,5678H」の命令は、1バイトの命令コード部のデータ「21H」と、2バイトのアドレス部のデータ「78H」「56H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに「21H」、「78H」、「56H」の順で記憶されている。
When this
同様に、「LD SP,nn」は、スタックポインタ1233に任意の2バイトの値(n)を設定する命令である。これらの命令も、1バイトの命令コード部と、2バイトのアドレス部のデータに変換されて、ユーザプログラムROM103の連続する所定のアドレスに記憶されている。
Similarly, “LD SP, nn” is an instruction for setting an arbitrary 2-byte value (n) in the
命令2204は、任意の連続するアドレスの領域に記憶されている2バイトの値を、HLレジスタ1212Aに設定する命令である。図中の「nn」は連続する小さいほうのアドレス値を示しており、例えば、「2901H」と「2902H」の各アドレスに記憶された値をHLレジスタ1212Aに設定したいときは、「LD HL,(2901H)」という命令になる。このとき、「2901H」のアドレスに格納されている値がLレジスタ1211Aに格納され、「2902H」のアドレスに格納されている値がHレジスタ1210Aに格納される。
The
なお、HLレジスタ1212Aの値を、任意の連続するアドレスの領域に格納する場合は、図に示すように「LD (nn),HL」という形式の命令になる。例えば、HLレジスタ1212Aの値を、「2901H」と「2902H」の各アドレスの領域に格納したいときは、「LD (2901H),HL」という命令になる。このとき、Lレジスタ1211Aの値が「2901H」のアドレスに格納され、Hレジスタ1210Aの値が「2902H」のアドレスに格納される。
When the value of the
この命令2204は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、2バイトのアドレス部とからなる計3バイトのコードデータに変換される。例えば、「LD HL,(2901H)」の命令は、1バイトの命令コード部のデータ「2AH」と、2バイトのアドレス部のデータ「01H」「29H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに、「2AH」、「01H」、「29H」の順で記憶されている。
When this
命令2205は、Kレジスタ1230に格納されている値を上位バイトとし、任意の1バイトの値で示される値を下位バイトとして合成した2バイトの値をアドレスと見なして、そのアドレスの領域に記憶されている値と、当該アドレスに続くアドレスに記憶されている値の各々を、HLレジスタ1212Aに設定する命令である。この場合の任意の1バイトの下位アドレスは、図中の「n」に対応している。
The
具体的には、「2803H」及び「2804H」のアドレスに記憶された値をHLレジスタ1212Aに設定したいときは、予めKレジスタ1230に「28H」の値を格納しておき、その状態で「LDK HL,(03H)」という命令を実行する。これにより、「2803H」のアドレスに格納されている値がLレジスタ1211Aに格納され、「2804H」のアドレスに格納されている値がHレジスタ1210Aに格納される。
Specifically, when the values stored in the addresses “2803H” and “2804H” are to be set in the
なお、HLレジスタ1212Aの値を、所望のアドレスの領域に格納する場合は、予め格納先の上位アドレスをKレジスタ1230に設定した状態で、図に示す「LDK (n),HL」という形式の命令を実行する。例えば、HLレジスタ1212Aの値を「2803H」及び「2804H」のアドレスの領域に格納したいときは、Kレジスタ1230の値を「28H」に設定した状態で、「LDK (03H),HL」という命令を実行する。
When the value of the
この命令2205は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、1バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「LDK HL,(03H)」の命令は、1バイトの命令コード部のデータ「2FH」と、1バイトのアドレス部のデータ「03H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに、「3FH」、「03H」の順で記憶されている。
When this
命令2206は、指定するアドレスに処理を分岐させる命令である。図中の「nn」は分岐先のアドレスを示しており、例えば、「5678H」のアドレスに処理に分岐させるときは、「JP 5678H」という命令になる。この命令を実行すると、命令解釈実行回路1242は、指定するアドレスの値をプログラムカウンタ1234に設定する。
An
なお、この「JP nn」の形式で示される命令は、フラグレジスタ1200の内容にかかわらず、指定するアドレスに処理を分岐する。フラグレジスタ1200のゼロフラグ1306(図13)がセットされているときのみ分岐を行いたい場合は「JP Z,nn」の命令を用い、このゼロフラグ1306がクリアされているときのみ分岐を行いたい場合は「JP NZ,nn」の命令を用いる。
Note that an instruction shown in the format “JP nn” branches to a specified address regardless of the contents of the
なお、この命令2206は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、2バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「JP 5678H」の命令は、1バイトの命令コード部のデータ「C3H」と、2バイトのアドレス部のデータ「78H」「56H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに「C3H」、「78H」、「56H」の順で記憶されている。
When this
命令2207の「CALL nn」は、指定するアドレスの処理を呼び出して、呼び出し先の処理ルーチンに一時的に分岐させる命令である。図中の「nn」は呼び出し先のアドレスを示しており、例えば、「5678H」のアドレスの処理を呼び出すときは、「CALL 5678H」という命令になる。この命令を実行すると、命令解釈実行回路1242は、現在実行中の命令の次のステップに位置するアドレスの値を、戻り先のアドレスとしてスタックエリアに格納した上で、分岐先のアドレスの値をプログラムカウンタ1234に設定する。
“CALL nn” of the
なお、呼び出し先の処理ルーチンの最終ステップでは、前述の「RET」命令を実行することで、プログラムカウンタ1234には、スタックエリアに格納された戻り先のアドレスの値を復帰させることができる。これにより、呼び出し元の処理ルーチンのアドレスに処理を戻すことができる。
In the final step of the call destination processing routine, by executing the “RET” instruction described above, the value of the return destination address stored in the stack area can be returned to the
なお、この命令2207は、ユーザプログラムROM103に記憶される際に、1バイトの命令コード部と、2バイトのアドレス部とからなる計2バイトのコードデータに変換される。例えば、「CALL 5678H」の命令は、1バイトの命令コード部のデータ「CDH」と、2バイトのアドレス部のデータ「78H」「56H」とに変換され、ユーザプログラムROM103の連続する所定のアドレスに「C3H」、「78H」、「56H」の順で記憶されている。
When this
図23は、本発明の第1の実施の形態の各装置(遊技制御装置100、払出制御装置210、及び演出制御装置150)の電源投入時処理のフローチャートである。
FIG. 23 is a flowchart of power-on processing for each device (
具体的には、図23(A)は、遊技制御装置100の電源投入時処理のフローチャートであり、図23(B)は、払出制御装置210の電源投入時処理のフローチャートであり、図23(C)は、演出制御装置150の電源投入時処理のフローチャートである。
Specifically, FIG. 23A is a flowchart of the power-on process of the
最初に、遊技制御装置100の電源投入時処理(図23(A))から説明する。この電源投入時処理は、ユーザプログラムROM602(図5参照)に記憶された遊技制御プログラムによって実行される処理ではなく、遊技制御装置100に備わる各種ハードウェア(CPUコア102周辺のハードウェア)によって実行される処理である。
First, the processing when the
まず、遊技制御装置100は、電源装置160から出力されたリセット信号が伝達される(2301)。
First, the
このリセット信号は、電源装置160から、セキュリティ回路630(図11参照)、RAMアクセス規制回路640のフリップフロップ回路641のリセット端子(図11参照)、及びシリアル送信回路615のリセット端子に入力される。具体的には、これらのリセット端子には、電源が投入されると、所定時間、所定の電圧(例えば、5V)以下の電圧が印加されることによってリセット信号が入力され、所定時間経過後に所定の電圧が印加されることによって、リセット信号が入力されなくなる。
This reset signal is input from the
なお、セキュリティ回路630は、電源装置160からリセット信号が入力されると、後述のセキュリティチェック処理が終了するまでCPUコア102のリセット端子にリセット信号を出力し続けて、CPUコア102の起動を待機させる。
When the reset signal is input from the
そして、シリアル送信回路615のリセット端子にリセット信号が入力されると、シリアル送信回路615の入力端子及び出力端子の電圧レベルがローに制御され、各種装置(普電SOL90、大入賞口SOL38等)に接続される出力I/F106のポートをすべて0に設定することにより、シリアル送信回路615、及び出力I/F106がハードウェアにより初期化される(2302)。
When a reset signal is input to the reset terminal of the
次に、RAMアクセス規制回路640によって、ユーザワークRAM104への書き込み規制されるRAM書込禁止状態が発生する(2303)。
Next, the RAM
具体的には、図11で説明したように、フリップフロップ回路641のクリア端子にはリセット信号が入力されるため、フリップフロップ回路641の出力端子Q(負論理)からハイレベルの信号が出力される状態となる。これにより、ORゲート回路642の他方の入力端子にハイレベルの信号が入力されても、ローレベルの信号が入力されても、ユーザワークRAM104の書込指令入力端子にはハイレベルの信号が入力されることになるため、RAM書込禁止状態が発生する。このように、電源投入時にRAM書込禁止状態を発生させることによって、誤ったタイミングでユーザワークRAM104が更新されることを防ぐことが可能となる。
Specifically, as described with reference to FIG. 11, since the reset signal is input to the clear terminal of the flip-
次に、リセット信号が入力された図11に示すセキュリティ回路630が自己診断処理を実行する(2304)。自己診断処理は、セキュリティ回路630が初期化されているか否かを判定する処理である。
Next, the
そして、自己診断処理によって、セキュリティ回路630が初期化されていると判定された場合には、セキュリティ回路630は、セキュリティチェック処理を実行する(2305)。セキュリティチェック処理は、図11で説明したように、HWパラメータROM603(図5参照)に記憶された正当性確認情報を用いて、ユーザプログラムROM602(図5参照)に記憶されたプログラムの正当性の判定を行う処理である。
If it is determined by the self-diagnosis process that the
ステップ2305の処理で、セキュリティチェック処理を実行すると、遊技制御装置プログラム開始準備処理へ移行する。このとき、セキュリティ回路630は、CPUコア102のリセット端子に出力していたリセット信号を停止することで、CPUコア102が起動する。このため、遊技制御装置プログラム開始準備処理は、CPUコア102によって実行される。遊技制御装置プログラム開始準備処理は図24にて後述する。
When the security check process is executed in the process of
次に、払出制御装置210の電源投入時処理(図23(B))を説明する。前述したように、払出制御装置210は、シリアル送信回路615を備えていない点を除き、図11に示した遊技制御装置100と同じ構成である。図11に示す遊技制御装置100の構成部と同じ構成部については、同じ符号を付与して説明する。
Next, the power-on process (FIG. 23B) of the
まず、払出制御装置210は、電源装置160から出力されたリセット信号が伝達される(2311)。なお、ステップ2311の処理は、ステップ2301の処理と同じである。
First, the
そして、払出制御装置210にリセット信号が入力されると、払出制御装置210の出力ポート(図4の入出力I/F216に含まれる)の電圧レベルが0に設定され、各種装置(払出モータ220、及び発射制御装置221等)に接続される入出力I/F216のポートがすべて0に設定され、入出力I/F216がハードウェアにより初期化される(2312)。
When a reset signal is input to the
次に、払出制御装置210のRAMアクセス規制回路640によって、RAM214への書き込み規制されるRAM書込禁止状態が発生する(2313)。なお、ステップ2313の処理の具体的な説明は、ステップ2303の処理と同じである。
Next, a RAM write prohibition state in which writing to the
次に、リセット信号が入力された払出制御装置210のセキュリティ回路630が自己診断処理を実行する(2314)。なお、ステップ2314の処理の具体的な説明は、ステップ2304の処理と同じである。
Next, the
そして、自己診断処理によって、セキュリティ回路630が初期化されていると判定された場合には、セキュリティ回路630は、セキュリティチェック処理を実行する(2315)。なお、ステップ2315の処理の具体的な説明は、ステップ2305の処理と同じである。
If the self-diagnosis process determines that the
そして、払出制御装置210は、電源投入時の初期化処理を実行する(2316)。電源投入時の初期化処理は、RAM214等を初期化する処理であって、CPU212によって実行される。また、RAM214を初期化する前に、ステップ2313の処理で発生したRAM書込禁止状態が解除されて、RAM214はRAM書込可能状態となる。
Then, the
次に、払出制御装置210は、遊技制御装置100からの指令を受信可能な状態を発生させる(2317)。そして、払出制御装置210のCPU212は、遊技制御装置100から送信された指令が初期化指令であるか否かを判定する(2319)。ステップ2319の処理で、遊技制御装置100から送信された指令が初期化指令でないと判定された場合には(2319の結果が「N」)、初期化指令が取り込まれるまで待機する。
Next, the
一方、遊技制御装置100から送信された指令が初期化指令であると判定された場合には(2319の結果が「N」)、払出制御装置210は通信開始時の初期化処理を実行し(2320)、払出制御装置メイン処理へ移行する。
On the other hand, when it is determined that the command transmitted from the
次に、演出制御装置150の電源投入時処理(図23(C))を説明する。前述したように、演出制御装置150は、シリアル送信回路615を備えていない点、及び、遊技用演算処理装置600がRAMアクセス規制回路640を備えていない点以外は、図11に示した遊技制御装置100と同じ構成である。図11に示す遊技制御装置100の構成部と同じ構成部については、同じ符号を付与して説明する。
Next, the power-on process (FIG. 23C) of the
まず、演出制御装置150は、電源装置160から出力されたリセット信号が伝達される(2321)。なお、ステップ2321の処理は、ステップ2301の処理と同じである。
First, the
そして、演出制御装置150にリセット信号が入力されると、演出制御装置150の出力ポートがハードウェアにより初期化される(2322)。
When a reset signal is input to the
そして、演出制御装置150は、電源投入時の初期化処理を実行する(2323)。電源投入時の初期化処理は、RAM154等を初期化する処理であって、CPU152によって実行される。
Then, the
次に、演出制御装置150は、遊技制御装置100からの指令を受信可能な状態を発生させる(2324)。そして、遊技制御装置100から送信された指令が初期化指令であるか否かを判定する(2326)。
Next, the
演出制御装置150は、遊技制御装置100から送信された指令が初期化指令でないと判定された場合には(2326の結果が「N」)、初期化指令が取り込まれるまで待機する。
When it is determined that the command transmitted from the
一方、演出制御装置150は、遊技制御装置100から送信された指令が初期化指令であると判定された場合(2326の結果が「Y」」、演出制御装置150は通信開始時の初期化処理を実行し(2327)、演出制御装置メイン処理へ移行する。
On the other hand, the
図24は、本発明の第1の実施の形態の遊技制御装置プログラム開始準備処理を説明するフローチャートである。なお、遊技制御装置プログラム開始準備処理の前半(プログラムカウンタ1234にリセットアドレスを設定するまでの間)は、ユーザプログラムROM602(図5参照)に記憶された遊技制御プログラムによって実行される処理ではなく、CPUコア102に備わる初期値設定回路124(図12参照)によって実行される処理である。
FIG. 24 is a flowchart illustrating the game control device program start preparation process according to the first embodiment of this invention. The first half of the game control device program start preparation process (until the reset address is set in the program counter 1234) is not a process executed by the game control program stored in the user program ROM 602 (see FIG. 5). This is a process executed by the initial value setting circuit 124 (see FIG. 12) provided in the
CPUコア102は、セキュリティ回路630からのリセット信号を受け入れると、内蔵リセット回路1240により、初期値設定回路1241を動作させる。このとき、内蔵リセット回路1240は、初期値設定回路1241が各レジスタに初期値を設定するまで、命令解釈実行回路1242の動作を待機させる。
When the
初期値設定回路1241が動作を開始すると、スタックポインタ1233に初期値「29FFH」を設定し、Kレジスタ1230に「28H」を設定し、HLレジスタ1212Aにリセットアドレスである「4000H」を設定し、他のレジスタには「00H」の値(16ビットレジスタには「0000H」の値)を設定する(2401)。なお、リセットアドレスは「0000H」としてもよい。
When the initial
次いで、初期値設定回路1241は、プログラムカウンタ1234に、リセットアドレスである「4000H」の値を設定する(2402)。これにより、各レジスタに初期値が設定される。次いで、内蔵リセット回路1240は、待機させていた命令解釈実行回路1242を動作させると、命令解釈実行回路1242は、プログラムカウンタ1234が示すアドレス(遊技制御プログラムが記憶されたユーザプログラムROM602のリセットアドレスに相当)からプログラムの実行を開始する。命令解釈実行回路1242がプログラムを実行開始した後の処理は、図25の遊技制御装置メイン処理にて説明する。
Next, the initial
次に、遊技制御装置100のCPU102によって実行される遊技制御装置メイン処理を、図25及び図26を用いて説明する。
Next, game control device main processing executed by the
図25は、本発明の第1の実施の形態の遊技制御装置メイン処理の前半部のフローチャートであり、図26は、本発明の第1の実施の形態の遊技制御装置メイン処理の後半部のフローチャートである。なお、これらの処理は遊技制御装置100によって実行されるが、厳密には、命令解釈実行回路1242が、CPUコア102内部の各レジスタを参照しながら、遊技制御プログラムを実行することで実現される。
FIG. 25 is a flowchart of the first half of the game control device main process according to the first embodiment of the present invention, and FIG. 26 shows the second half of the game control device main process according to the first embodiment of the present invention. It is a flowchart. Note that these processes are executed by the
まず、遊技制御装置100は、CPU102への割込みを禁止する(2501)。そして、遊技制御装置100は、スタックポインタ1233(図12)に初期値「29FFH」を設定する(2502A)。これにより、スタックポインタ1233の値が「29FFH」でなければ「29FFH」に変更される。なお、スタックポインタ1233に初期値「29FFH」が既に設定されていても、再度「29FFH」の値が設定される。
First, the
次いで、遊技制御装置100は、Kレジスタ1230に「28H」の値を設定する(2502B)。これにより、Kレジスタ1230の値が「28H」でなければ「28H」に変更される。なお、Kレジスタ1230に初期値「28H」が既に設定されていても、再度「28H」の値が設定される。
Next, the
次いで、遊技制御装置100は、割込モードを設定する(2503)。割込モードは、CPU102が内蔵デバイスからの割込要求の処理を可能とし、また、プログラムにおいて割込要求の処理を実行する位置を設定することを可能とするものである。
Next, the
次に、遊技制御装置100は、入力I/F105からRAMクリアSW信号の状態を取り込み、取り込んだRAMクリアSW信号の状態をCPU102のレジスタに記憶する(2504)。
Next, the
そして、遊技制御装置100は、RAM104を使用しないディレイ処理を実行する(2505)。このディレイ処理は、所定時間、処理を待機させる処理であり、具体的には、チェックサムが算出されない記憶領域にて、所定の数が0になるまでデクリメントし続ける処理である。ディレイ処理は、この所定の数を待機させる時間に対応する時間に設定することによって、所定時間を計時するタイマ計時手段となる。なお、ディレイ処理の詳細については、図28にて後述する。
Then, the
次に、遊技制御装置100は、再度、入力I/F105からRAMクリアSW信号の状態を取り込み、取り込んだRAMクリアSW信号の状態をCPU102のレジスタに記憶する(2506)。なお、CPU102が二つのRAMクリア信号の状態を比較できるように、ステップ2504の処理でRAMクリアSW信号の状態を記憶するレジスタの領域、及び、ステップ2506の処理でRAMクリアSW信号の状態を記憶するレジスタの領域は、異なる領域である。
Next, the
次に、遊技制御装置100は、図23のステップ2303の処理で発生したRAM書込禁止状態をRAM書込可能状態にする(2507)。
Next, the
具体的には、CPU102の指令によって、フリップフロップ回路641のクロック端子にクロック信号を出力制御回路612から入力させ、かつ、フリップフロップ回路641のデータ端子に接続された信号線の信号レベルをハイレベルにする。これにより、フリップフロップ回路641の出力端子Q(正論理)からハイレベルの信号が出力され、出力端子Q(負論理)からローレベルの信号が出力されるため、ORゲート回路642の入力端子にローレベルの信号が入力されることにより、RAM書込可能状態になる。
Specifically, a clock signal is input from the
次に、遊技制御装置100は、スタック領域706を使用して、各種設定処理を実行する(2508)。この設定処理は、例えば、サブルーチンや関数を呼び出して、遊技制御に必要な各種記憶領域に初期データを設定する処理である。この設定処理において、CPU102により、図7〜図9で前述した、送信シリアルチャンネル設定レジスタ633、送信制御レジスタ632、送信データステータスレジスタ631の各ビットの初期値が設定されることで、送信ボーレート等の設定が行われる。
Next, the
これらのサブルーチンや関数は、遊技制御プログラムに記述した複数の箇所から呼び出される形態となっており、遊技制御プログラムの容量削減に貢献している。一方で、サブルーチンや関数を呼び出す際には、前述したように、戻りアドレスをスタック領域706に待避する処理を必要とする。
These subroutines and functions are called from a plurality of locations described in the game control program, and contribute to reducing the capacity of the game control program. On the other hand, when a subroutine or function is called, processing for saving the return address in the
そして、遊技制御装置100は、ステップ2504の処理でレジスタに記憶されたRAMクリアSW信号の状態とステップ2508の処理でレジスタに記憶されたRAMクリアSW信号の状態とを比較して、どちらのRAMクリアSW信号の状態も、RAMクリアSW162が操作されたことを示しているか否かを判定する(2509)。
Then, the
ステップ2509の処理では、異なるタイミングで取得したRAMクリア信号の状態に基づいてRAMクリアSW162が操作されたか否かを判定しているので、ノイズ等による誤判定を防止できる。
In the processing of
ステップ2509の処理で、RAMクリアSW162が操作されたと判定された場合、遊技制御装置100は、ユーザワークRAM104のすべての記憶領域を初期化する(2510)。
If it is determined in
そして、遊技制御装置100は、初期化指令信号を払出制御装置210及び演出制御装置150へ送信し(2511)、図26に示すステップ2517の処理に進む。
Then, the
一方、ステップ2509の処理で、RAMクリアSW162が操作されていないと判定された場合、遊技制御装置100は、ユーザワークRAM104の第1停電復旧領域701及び第2停電復旧領域703に、電源遮断確認フラグが格納されているか(正確には、電源遮断確認フラグがオンとなっているか)を確認する(2512)。
On the other hand, if it is determined in
そして、遊技制御装置100は、直前の電源供給停止のときに、電源遮断の処理が正しく実行されていたか否かを判定する(2513)。具体的には、遊技制御装置100は、第1停電復旧領域701及び第2停電復旧領域703の両方に電源遮断確認フラグが格納されている場合には、電源遮断の処理が正しく実行されているものであると判定し、一方、第1停電復旧領域701及び第2停電復旧領域703の少なくとも一方に電源遮断確認フラグが格納されていない場合(少なくとも一方の電源遮断確認フラグがオフの場合)には、電源遮断の処理が正しく実行されていないと判定する。
Then, the
ステップ2513の処理で電源遮断の処理が正しく実行されていたと判定された場合には、遊技制御装置100は、ユーザワークRAM104の第1停電復旧領域701、ワークエリア702、及び第2停電復旧領域703を用いてチェックサムを算出して、算出したチェックサムがチェックサム領域704に格納されているチェックサムと一致するか否かを照合する(2514)。
If it is determined in
なお、チェックサム領域704に格納されているチェックサムは、停電検出時のユーザワークRAM104の第1停電復旧領域701、ワークエリア702、及び第2停電復旧領域703を用いてチェックサムを算出して、格納されたものである。
The checksum stored in the
つまり、ステップ2514の処理は、停電検出時のユーザワークRAM104に格納された情報と電源投入時のユーザワークRAM104に格納された情報とが一致するか否かを照合する処理である。
That is, the process of
そして、ステップ2514の処理の照合結果が、算出したチェックサムとチェックサム領域704に格納されたチェックサムとが一致するものであるか否かを判定する(2515)。
Then, it is determined whether or not the collation result of the processing in
ステップ2514の処理で算出したチェックサムとチェックサム領域704に格納されたチェックサムとが一致しないとステップ2515の処理で判定された場合、つまり、停電検出時のユーザワークRAM104に格納された情報と電源投入時のユーザワークRAM104に格納された情報とが一致しない場合には、遊技制御装置100は、ステップ2510の処理に進み、ユーザワークRAM104のすべての領域を初期化し、ステップ2511の処理にて初期化指令を払出制御装置210及び演出制御装置150に送信する。
If it is determined in
一方、ステップ2514の処理で算出したチェックサムとチェックサム領域704に格納されたチェックサムとが一致するとステップ2515の処理で判定された場合、つまり、停電検出時のユーザワークRAM104に格納された情報と電源投入時のユーザワークRAM104に格納された情報とが一致する場合には、遊技制御装置100は、遊技制御装置100の起動に必要な領域(ユーザワークRAM104の一部の領域)を初期化する(2516)。このとき、ユーザワークRAM104の第1停電復旧領域701及び第2停電復旧領域703の各々にて、電源遮断確認フラグが消去(正確には、各領域にて電源遮断確認フラグがオフ)される。そして、遊技制御装置100は、初期化指令を払出制御装置210及び演出制御装置150に送信する(2511)。
On the other hand, if the checksum calculated in
これらの処理が完了すると、遊技制御装置100に関する初期化処理が完了となる。次いで、図26に示すステップ2517の処理に進む。
When these processes are completed, the initialization process related to the
次に、ステップ2511の処理で初期化指令が払出制御装置210及び演出制御装置150に送信された後、遊技制御装置100は、各種時間を計測やタイマ割込みを行うためのCTC(Counter Timer Circuit)を起動し(2517)、遊技制御に関する乱数を生成する乱数生成回路608(図5)を初期化する(2518)。そして、遊技制御装置100は、ステップ2501の処理で禁止されたCPU102への割込みを許可する(2519)。
Next, after the initialization command is transmitted to the
次に、遊技制御装置100は、初期値乱数を更新する初期値乱数更新処理を実行する(2520)。初期値乱数とは、遊技制御に関する乱数のカウンタ(例えば、始動入賞口へ入賞したタイミングで取得される乱数のカウンタ)が上限値に達した場合に初期値に戻るが、その初期値を決定するための乱数である。
Next, the
そして、遊技制御装置100は、停電検出信号が入力されたか否かを確認し(2521)、ステップ2521の処理での確認結果が、停電検出信号が入力されたことを示すか否かを判定する(2522)。
Then, the
遊技制御装置100は、停電検出信号が入力されていないと判定した場合には(ステップ2522の結果が「N」)、停電は発生していないので、ステップ2520の処理に戻る。
When the
一方、ステップ2522の処理で、停電検出信号が入力されたと判定された場合には(ステップ2522の結果が「Y」)、遊技制御装置100により停電処理が実行される。まず、遊技制御装置100は、CPU102への割込みを禁止し(2523)、出力I/F106に備わる出力ポートの電圧レベルをローレベルに設定する(2524)。
On the other hand, if it is determined in
次に、遊技制御装置100は、ユーザワークRAM104の第1停電復旧領域701及び第2停電復旧領域703に、電源遮断確認フラグを格納(正確には、各領域にて電源遮断確認フラグをオン)し(2525)、ユーザワークRAM104の第1停電復旧領域701、ワークエリア702、及び第2停電復旧領域703を用いてチェックサムを算出して、算出したチェックサムをチェックサム領域704に格納する(2526)。
Next, the
次に、遊技制御装置100は、RAMアクセス規制回路640によってユーザワークRAM104をRAM書込禁止状態にする(2527)。
Next, the
具体的には、CPU102の指令によって、フリップフロップ回路641のクロック端子にクロック信号を出力制御回路612から入力させ、かつ、フリップフロップ回路641のデータ端子に接続された信号線の信号レベルをローレベルにする。これにより、フリップフロップ回路641の出力端子Q(正論理)からローレベルの信号が出力され、出力端子Q(負論理)からハイレベルの信号が出力されるため、ORゲート回路642の入力端子にハイレベルの信号が入力されることにより、RAM書込禁止状態になる。
Specifically, a clock signal is input from the
そして、遊技制御装置100は、遊技機1の電源が切れるまで待機する(2528)。なお、遊技制御装置100には、バックアップ電源が接続されているので、停電が発生しても、すぐに電源が切れることはない。
Then, the
なお、本実施形態では、ステップ2514の処理で電源断時のユーザワークRAM104と電源投入時のユーザワークRAM104との正当性を判定する前のステップ2507の処理でRAM書込可能状態にしたが、RAM書込可能状態にするタイミングは、遅くともステップ2514の処理の正当性に応じて行われるステップ2510又は2516の処理におけるユーザワークRAM104の初期化処理の実行直前であればよい。
In the present embodiment, the process of
このように、遊技機1にて電源供給が遮断した場合には、必要な電源遮断処理を実行した後は、ユーザワークRAM104をRAM書込禁止状態に設定し、遊技機1にて再度電源供給が復帰したときでも、すぐにユーザワークRAM104をRAM書込可能状態としないで、ハードウェアに関する初期化処理を一定時間実行し、ステップ2514の処理の正当性に応じて行われるステップ2510又は2516の処理におけるユーザワークRAM104の初期化処理の実行直前になって、ようやくRAM書込可能状態にすることによって、ユーザワークRAM104の初期化まで不用意なユーザワークRAM104の書き込みを防止できる。
As described above, when the power supply is cut off in the
そのため、ステップ2514の処理における正当性判定が行われる直前には、RAM書込禁止状態になっているので、電源投入後にユーザワークRAM104に誤った書き込みがなされ、ステップ2514の処理で誤った判定がされることを防止できる。
Therefore, immediately before the validity determination in the process of
なお、本実施形態では、ステップ2508の処理でスタック領域706を用いた各種設定処理を実行するために、ステップ2514の処理における正当性判定処理の前のステップ2507の処理でRAM書込可能状態にしている。
In this embodiment, in order to execute various setting processes using the
これによって、正当性判定を行う前に正当性判定の対象とはならないスタック領域706を用いた各種設定処理を行うことができるようになるため、遊技制御装置100の各種設定を早い段階で行うことができるので遊技制御装置100の起動を高速化でき、また、スタック領域706を用いるので処理プログラムが共通化でき、プログラム容量を削減できる。
As a result, various setting processes using the
なお、図15では、ステップ2510又は2516の処理でユーザワークRAM104を初期化した後、ステップ2515の処理で初期化指令信号を送信しているが、ステップ2514における正当性判定の実行前のステップ2508の処理の実行後に初期化指令信号を送信してもよい。
In FIG. 15, after initialization of the
この場合には、ステップ2514の処理における正当性判定の実行前であるので、正当性判定に寄与しないスタック領域706又はCPU102に備わるレジスタを用いて、初期化指令信号を送信する。
In this case, since it is before execution of the validity determination in the processing of
なお、CPU102に備わるレジスタを用いなくても、例えば、ユーザワークRAM104とは別個に、遊技制御装置100に所定のタイマ回路などを設けて、このタイマ回路に備えられた記憶領域を更新させるような方法でも実現可能である。言い換えれば、正当性判定に影響のない記憶領域であれば、どのようなものを用いても適用が可能であり、好ましくは、ユーザワークRAM104と記憶領域とを分離できれば、CPU102のプログラムも簡素化されるということである。
Even if the register provided in the
ステップ2510又は2516の処理では、RAM104の一部領域を初期化する処理であるステップ2516の処理が、RAM104の全領域を初期化する処理であるステップ2510の処理よりも実行時間が長いため、ステップ2510の処理を実行するかステップ2516の処理を実行するかによって、初期化指令信号が送信される時間が異なってしまう。
In the process of
ステップ2514の処理における正当性判定の実行前に初期化指令信号を送信することによって、ステップ2511の処理で初期化指令信号を送信するよりも早く初期化指令信号を送信できる。また、電源投入から一定時間で初期化指令信号を送信することができる。
By transmitting the initialization command signal before executing the validity determination in the processing of
図27は、本発明の第1の実施の形態の遊技制御装置メイン処理(図25)におけるステップ2501からステップ2502Bまでの処理を説明する図である。ここでは、図12で前述した各種レジスタ、図21及び図22で前述したアセンブリ言語を用いて説明を行うことにする。
FIG. 27 is a diagram illustrating processing from
なお、図27における列2710は、遊技制御プログラムが格納されているユーザプログラムROM103のアドレスを示し、列2720は、当該アドレスに格納されているデータを示している。例えば、ユーザプログラムROM103の「4000H」のアドレスには「F3H」のデータが格納され、続く「4001H」のアドレスには「31H」のデータが格納され、続く「4002H」のアドレスには「00H」のデータが格納され、続く「4003H」のアドレスには「2AH」のデータが格納されている。
Note that a
行2701の「DI」命令は、遊技制御装置メイン処理(図25)のステップ2501の割込禁止処理に対応し、この命令に対応するコード「F3H」の値がアドレス「4000H」の領域に格納される。
The “DI” instruction in
行2702の命令は、同じくステップ2502Aの処理に対応し、スタックポインタ(SP)に対応するSPレジスタ1233に初期アドレスとして「29FFH」を設定する。
The instruction in
行2703の命令は、同じくステップ2502Bの処理に対応し、Kレジスタ1230に、上位アドレスのデフォルトの初期値「28H」を設定する。このように、Kレジスタ1230に予め「28H」を設定しておくことによって、「28H」を上位バイトとし、さらに任意の1バイトの値で示される値を下位バイトとして合成した2バイトの値をアドレスと見なして、そのアドレスの領域に記憶されている値を所定のレジスタに設定することができる。例えば、「2803H」のアドレスに記憶された値をAレジスタ1202Aに設定したい場合には、「LDK A,(03H)」という命令を実行すればよい。こうすることによって、2バイトのアドレスの全てを直接指定する場合よりもコード量を1バイト分削減することができる。特に、特定の領域を指定する頻度が大きいほど削減されるコード量を大きくすることができる。本実施形態では、例えば、変動表示ゲームが実行されるたびにシフトされ、アクセス頻度の多い始動記憶を格納するアドレスを指定する場合に使用される。また、Kレジスタを有効に活用するために、これらの始動記憶の上位アドレスは「28H」となるように配置されている。
The instruction in
なお、ユーザプログラムROM103の「4000H」のアドレスは、前述ように、リセットアドレスである。よって、リセット信号の発生時には、まず、この「4000H」に配置されたコードの命令が実行され、その後は、以降のアドレスに配置された命令が順次実行される。
Note that the address “4000H” of the
ちなみに、リセット信号が発生すると、初期値設定回路1241によってSPレジスタ1233に「29FFH」がハード的に設定されるので、行2702の命令は、省略(言い換えれば、図25のステップ2502Aを省略)することも可能である。同様に、リセット信号が発生すると、初期値設定回路1241によってKレジスタ1230に「28H」がハード的に設定されるので、行2703の命令は、省略(言い換えれば、図25のステップ2502Bを省略)することも可能である。ただし、初期値設定回路1241が機能せずに、プログラムカウンタ1234の値のみがリセットアドレスの値に変更される事態を想定するのであれば、行2702及び行2703の命令を配置しておくことにも意味がある。
Incidentally, when a reset signal is generated, “29FFH” is set in hardware in the
図28は、本発明の第1の実施の形態のディレイ処理を説明する図である。 FIG. 28 is a diagram illustrating delay processing according to the first embodiment of this invention.
図28に示すディレイ処理は、図25のステップ2505で実行されるが、当該ディレイ処理を実行している時点では、ユーザワークRAM104の値が更新できないようにRAM書込禁止状態となっている。これは、直前の停電発生時に格納されたチェックサムと、電源投入直後となる現時点でのチェックサムとの照合を行うためである。
The delay process shown in FIG. 28 is executed in
このため、図25に示すステップ2505におけるディレイ処理では、正当性の判定が行われる記憶領域が含まれたユーザワークRAM104を用いずに、他の記憶領域(正当性判定の対象とならない判定対象外記憶領域)を用いてディレイ処理を実行しなければならない。そこで、本実施形態のディレイ処理は、CPUコア102に備わるレジスタ(汎用レジスタ)を用いて実行される。
For this reason, the delay process in
以下に、判定対象外記憶領域を含むユーザワークRAM104の記憶領域をまったく利用せずに、レジスタを用いたディレイ処理を説明する。なお、CPUコア102として、Z80系のCPUを用いるものとするので、Z80系のCPUで使用されるレジスタ及びアセンブリ言語を用いて説明を行う。
Hereinafter, a delay process using a register without using the storage area of the
なお、図28における列2810は、図27の列2710同様に遊技制御プログラムが格納されているユーザプログラムROM103のアドレスを示し、列2820は、図27の列2720同様に、当該アドレスに格納されているデータを示している。
A
まず、行2801は、当該ディレイ処理の最初の処理に相当し、CPUコア102のレジスタ(図11参照)のHレジスタ及びLレジスタを1つのペアとして構成したHLレジスタに、「0603H」をロードする。具体的には、Hレジスタに「06H」がロードされ、Lレジスタには「03H」がロードされる。
First,
次に、行2802を実行し、HLレジスタの値をデクリメント(1減算)する。したがって、行2802が最初に実行された後、HLレジスタの値は「0602H」となる。
Next,
続いて、行2803を実行し、Hレジスタに格納された値をAレジスタにロードする。そして、行2804を実行し、AレジスタとLレジスタとの論理和を算出する。行2805では、行2804で算出された論理和がゼロでなければ(NZ)、行2802(アドレスが4023Hとなる行)に戻る。したがって、Hレジスタ及びLレジスタの両方が「00H」となるまで、行2802から2805までの処理を繰り返すことになる。
Subsequently,
つまり、図28では、維持タイマとして使用されるHレジスタ及びLレジスタに格納された「0603H」(=1539)が「0000H」になるまでデクリメントされるもので、合計1539回デクリメントが行われる。この間、図25に示す遊技制御装置メイン処理は、ステップ2505の処理で待機するため、遊技制御装置100の起動が遅延することとなる。
That is, in FIG. 28, “0603H” (= 1539) stored in the H register and L register used as the maintenance timer is decremented until “0000H”, and the decrement is performed a total of 1539 times. During this time, the game control apparatus main process shown in FIG. 25 waits in the process of
ここで遅延時間を具体的に算出する。遅延時間は、行2802から2805までの処理を、繰り返し回数(「0603H」=1539)分だけ実行した時間となる。そこで、行2803から2805までの各行の実行時間を算出する。各行には実行される命令が定義されており、各命令には、実行に必要なCPUのクロックサイクル数(ステート数)が対応している。したがって、1ステート当りの時間を各命令に対応するステート数に乗じることによって各命令の実行時間を算出することができる。
Here, the delay time is specifically calculated. The delay time is the time when the processes from the
本発明の第1の実施の形態では、クロック数20Mhzを2倍に分周した10MhzがCPUの動作クロックとなるため、1/10000000=100n秒が1ステート当りの処理時間となる。以下、具体的に各行の処理時間を算出する。
In the first embodiment of the present invention, 10 Mhz obtained by dividing the number of
行2802で実行されるデクリメント「DEC」命令のステート(数)は6となっている。したがって、行2802の処理時間は6×100n秒=600n秒となる。同様に、行2803で実行されるロード「LD」命令のステート(数)は4、及び、行2804で実行されるロード「OR」命令のステート(数)は4となっており、それぞれの処理時間は4×100n秒=400n秒となっている。さらに、行2805で実行されるジャンプ「JP」命令のステート(数)は行2804の演算結果が非0の場合には12、0の場合には7となっている。0の場合は遅延時間終了時だけであるため、ステート数を12とすると、処理時間は12×100n秒=1200n秒となる。
The state (number) of the decrement “DEC” instruction executed in
以上より、1回の繰り返しにおける処理時間は、600n秒+400n秒+400n秒+1200n秒=2600n秒となる。そして、繰り返し回数は、1539回であるため、2600n秒×1539=4.0014m秒となり、約4秒の遅延時間となる。したがって、この場合のディレイ処理は、4秒間を計時するタイマ計時手段となっている。 From the above, the processing time in one iteration is 600 nsec + 400 nsec + 400 nsec + 1200 nsec = 2600 nsec. Since the number of repetitions is 1539, 2600 nsec × 1539 = 1.0014 msec, which is a delay time of about 4 sec. Therefore, the delay process in this case is a timer timing means for timing 4 seconds.
また、このディレイ処理中は、ユーザワークRAM104へのアクセスが全く行われない。すなわち、正当性の判定が行われる記憶領域が含まれたユーザワークRAM104の値を書き換えることなく、ディレイ処理を実行することができる。
Further, during this delay process, the
図28で説明したように、本実施形態では、ハードウェアを用いずに、正当性判定に寄与しない、つまり、チェックサムを算出しない領域を用いてソフトウェアにより実現(維持タイマを計時)しているので、図25に示すステップ2514の正当性判定を正確に行うことができるとともに、ハードウェアでディレイ処理を実現するよりも安価に実現することができる。
As described with reference to FIG. 28, in the present embodiment, hardware is not used, and it is realized by software using a region that does not contribute to the validity determination, that is, the checksum is not calculated (the maintenance timer is timed). Therefore, it is possible to accurately perform the legitimacy determination in
例えば、ハードウェアでディレイ処理を実現する遊技機として、特開2002−224394号公報に開示されるような技術が知られており、この遊技機では、電源が断たれた後の復帰時に、払出しの不都合な状態が解消するまで賞媒体の払出し動作を停止できるようにすること、さらに、賞媒体の払出しに関して遊技者とホール側とでトラブルが発生しないようにすることを目的として、停電からの復帰時に、払出し制御手段が主制御手段よりも先に起動して払出し制御が開始された場合、初期化スイッチが操作されていないため、払出し動作復帰処理が実行され、その後、主制御手段から払出し再開コマンドを受信するまで、払出し動作を停止して、払出し再開可能な状態で待機する構成となっている。 For example, as a gaming machine that realizes delay processing with hardware, a technique disclosed in Japanese Patent Application Laid-Open No. 2002-224394 is known, and in this gaming machine, payout is performed at the time of return after power is turned off. In order to stop the award medium payout operation until the inconvenience of the problem is resolved, and to prevent troubles between the player and the hall with respect to the award medium payout, At the time of return, when the payout control means is activated prior to the main control means and the payout control is started, the payout operation return processing is executed because the initialization switch is not operated, and then the payout from the main control means is performed. Until the resumption command is received, the payout operation is stopped and the apparatus waits in a state where the payout can be resumed.
さらに、この遊技機では、後から起動した主制御手段は補給切れ検出スイッチや満杯検出スイッチからの検出スイッチに基づいて払出しに関するエラーを検出しない場合に、主制御手段から払出し再開コマンドが送信されてくるので、払出し制御手段はその払出し再開コマンド受信をきっかけに払出し動作を再開する構成となっている。 Further, in this gaming machine, when the main control means activated later does not detect an error relating to payout based on the detection switch from the supply replenishment detection switch or the fullness detection switch, a payout restart command is transmitted from the main control means. Therefore, the payout control means is configured to resume the payout operation in response to receipt of the payout restart command.
そして、この遊技機は、主制御手段を、払出し制御手段よりも遅延させて起動させるために、主制御手段(主制御基板39)に遅延回路90を設けて、リセット信号発生手段77からのリセット信号が、払出し制御手段(払出し制御基板46)に到達するよりも時間tだけ遅延して主制御手段に到達するように構成しているので(特開2002−224394号公報の段落[0051]〜[0053]、図9、図11参照)、遅延回路90などのハードウェアが必要であるため、コストが高くなってしまうという問題があった。また、遅延回路90はハードウェアで構成されているため、遅延の時間値をプログラムで変更できないという問題もあった。
In this gaming machine, a
この場合、遅延回路90に相当する機能を、主制御手段(主制御基板39)に設けたC
PUを用いてソフトウェアによって実現すれば、コスト面での課題が解決するが、CPUを用いて遅延時間を計時するためには、主制御手段(主制御基板39)のバックアップ用メモリ39bを用いなければならず、この場合、主制御手段が起動後にバックアップ用メモリ39bの正当性を確認して、バックアップ用メモリ39bが使用可能な状態になってから遅延時間を計時するので、遊技機全体の起動が遅れてしまうという課題を残していた。そのため、ソフトウェアによって遊技制御装置の起動を従属制御装置の起動よりも遅延させることによってコストダウンを図りつつも、遊技機全体の起動が遅延してしまうことを防止する遊技機が提供されることが望まれていた。
In this case, a function corresponding to the
If implemented by software using a PU, the problem in terms of cost will be solved, but in order to measure the delay time using a CPU, the backup memory 39b of the main control means (main control board 39) must be used. In this case, the main control means confirms the validity of the backup memory 39b after activation, and measures the delay time after the backup memory 39b becomes usable. Was left behind. Therefore, it is possible to provide a gaming machine that prevents the activation of the entire gaming machine from being delayed while reducing the cost by delaying the activation of the gaming control apparatus from the activation of the dependent control apparatus by software. It was desired.
本実施形態に戻って、CPUコア102で使用できるレジスタの数が少ない場合には、スタック領域を利用してディレイ処理を実行するほうが有効である。ただし、正当性判定の対象となっている第1停電復旧領域701、ワークエリア702、第2停電復旧領域703、チェックサム領域704の各記憶領域を、ノイズ等によって書き換えてしまうことを極力防止したいのであれば、ディレイ処理中を通してユーザワークRAM104をRAM書込禁止状態とし、図28に示したスタック領域を利用しないディレイ処理を実行するほうが有効ともいえる。
Returning to the present embodiment, when the number of registers that can be used by the
また、動作クロック数を高く設定することによってCPUによる演算処理速度を高速化することが可能となるが、演算処理速度を高速化すると、ディレイ処理におけるループ回数(図28では「0603H」=1539回)を高速化した分だけ大きくする必要がある。しかしながら、演算処理速度を高速化しすぎると、ループ回数が大きくなりすぎてしまい、ループ回数を格納するレジスタのバイト数が所定バイト数(例えば、2バイト)を超えてしまい、プログラムの容量が大きくなってしまう。そこで、図28にて説明したように、ループ回数を格納するレジスタのバイト数が2バイトに収まる(ループ回数が65536回を超えない)ようにCPU102の動作速度(クロック数)を設定することによって、高速通信を実現しながらもプログラム容量の増大を抑えることが可能となる。
In addition, it is possible to increase the processing speed of the CPU by setting the number of operation clocks high. However, if the processing speed is increased, the number of loops in the delay processing (“0603H” in FIG. 28 = 1539). ) Needs to be increased by the speed. However, if the calculation processing speed is increased too much, the number of loops becomes too large, the number of bytes in the register for storing the number of loops exceeds a predetermined number of bytes (for example, 2 bytes), and the capacity of the program increases. End up. Therefore, as described with reference to FIG. 28, by setting the operation speed (number of clocks) of the
図29は、本発明の第1の実施の形態のタイマ割込処理を示すフローチャートである。このタイマ割込処理は、遊技制御装置100のCPUコア102によって実行される。
FIG. 29 is a flowchart illustrating timer interrupt processing according to the first embodiment of this invention. This timer interrupt process is executed by the
遊技機の電源が投入されると、遊技制御装置メイン処理(図25及び図26参照)が実行される。そして、ステップ2517の処理で起動させたCTCによって、所定時間周期(例えば、4ミリ秒周期)でタイマ割込みが発生すると、遊技制御装置100のCPU102によって、タイマ割込処理が繰り返し実行される。ただし、これらの処理(2912〜2922の処理)は、割り込み発生毎に必ずしもすべて行なわれなくてもよい。例えば、ステップ2912の入出力処理においては、毎回入力信号を監視するが、出力処理は割り込みの発生の1回おきに実行されてもよい。つまり、1回の割込処理で一通りの処理をすべて完了するのではなく、この割込処理が複数回繰り返し実行されて一連の遊技制御処理が完了するようにしてもよい。
When the power of the gaming machine is turned on, the game control device main process (see FIGS. 25 and 26) is executed. When a timer interrupt is generated at a predetermined time period (for example, a period of 4 milliseconds) by the CTC activated in the process of
本実施形態のタイマ割込処理において、遊技制御装置100は、まず、レジスタのデータをスタック領域706に退避する(2911)。ここでは、遊技制御プログラムに記述された命令を実行することにより、CPUコア102の内部のレジスタ(図12参照)の中から、タイマ割込処理が呼び出される直前の処理(呼出元処理)で使用されていたものを選択して、スタック領域706に退避させる処理が行われる。
In the timer interrupt process of the present embodiment, the
ただし、フラグレジスタ1200(図12参照)に関しては、図19の(D)に示すように、当該タイマ割込処理が開始する時点で既にスタック領域706に退避されているので、改めて命令を実行させる必要はない。
However, regarding the flag register 1200 (see FIG. 12), as shown in FIG. 19D, the instruction is executed again because it has already been saved in the
次に、遊技制御装置100は、入出力処理を実行する(2912)。入出力処理は、入力処理と出力処理とを含む。入力処理は、入力I/F105を介して各種センサ(特図始動SW34A、普図始動SW31A、カウントSW36A、入賞口SW32A〜32N、オーバーフローSW109、球切れSW110、枠開放SW111など)から入力される信号にチャタリング除去等の処理をし、入力情報を確定する処理である。
Next, the
出力処理は、出力I/F106を介して、特図ゲーム処理(2919)及び普図ゲーム処理(2920)にて設定されたパラメータに基づいて、特図表示器120、普図表示器121、普電SOL90、及び大入賞口SOL38を制御するための信号を出力する。
The output process is performed through the output I /
なお、前述したように、入力処理と出力処理とは1回のタイマ割り込みで同時に実行されなくてもよい。 As described above, the input process and the output process do not have to be executed simultaneously by a single timer interrupt.
次に、遊技制御装置100は、各種処理で送信バッファにセットされた(コマンド)を演出制御装置150及び払出制御装置210等に出力するコマンド送信処理を行う(2913)。具体的には、演出制御装置150に特別図柄変動表示ゲームに係わる演出指令信号(演出コマンド)を出力したり、払出制御装置210に排出指令信号(払出指令信号、払出コマンド)を出力したりする。コマンド送信処理の詳細については、図31にて後述する。なお、払出コマンドについては図33にて詳細を説明し、演出コマンドについては図35にて詳細を説明する。
Next, the
その後、遊技制御装置100は、特別図柄変動表示ゲームの当りはずれを判定するための大当り乱数カウンタ(図15の大当り乱数の生成領域)の値を1ずつ加算する乱数更新処理1を行う(2914)。なお、この乱数更新処理1では、特別図柄変動表示ゲームの停止図柄を決定する大当り図柄乱数カウンタ(図15の大当り図柄乱数の生成領域)の値、普通図柄変動表示ゲームの当りはずれを判定するための普図乱数カウンタ(図15の普図乱数生成領域)にも1ずつ加算する。
After that, the
次に、遊技制御装置100は、乱数の初期値を更新し、乱数の時間的な規則性を崩すための初期値乱数更新処理を実行する(2915)。ステップ2915の初期値乱数更新処理は、図26に示す初期値乱数更新処理(2520)と同じなので、説明を省略する。
Next, the
そして、遊技制御装置100は、特別図柄変動表示ゲームに関連した飾り特別図柄変動表示ゲームにおける変動表示パターンを決定する乱数を更新するための変動表示パターン乱数カウンタ(図15の第1変動P乱数の生成領域、第2変動P乱数の生成領域、第3変動P乱数の生成領域)の値を1ずつ加算する乱数更新処理2を行う(2916)。
Then, the
次に、遊技制御装置100は、各入賞口に遊技球が入賞していないかを監視するために、入賞口監視処理を行う(2917)。具体的には、第1特図始動SW37A、第2特図始動SW34A、普図始動SW31A、カウントSW36A、入賞口SW32A〜32N、から信号の入力があるか否か(遊技球の検出を示す信号が入力されているか否か)を監視する。
Next, the
このとき、大当りが発生して特別変動入賞装置36が開放中であるときには、カウントSW36Aにより遊技球の検出数を計数して、特別変動入賞装置36へ入賞した遊技球の数を計数する。この計数結果が所定数(例えば10個)になると、特別変動入賞装置36を閉止して、次のラウンドに更新する処理を行う。
At this time, when a big hit occurs and the special
また、このとき、普図始動SW31Aによる遊技球の検出があれば、普図保留カウンタの値が所定数未満(例えば、「4個」未満)であることを条件に「1」だけ増加させ、普図乱数カウンタ値(図15の普図乱数生成領域)が、普図保留カウンタに対応する普図始動入賞記憶領域(図15)に記憶される。 At this time, if a game ball is detected by the general chart start SW 31A, it is increased by “1” on condition that the value of the general chart hold counter is less than a predetermined number (for example, less than “four”), The common random number counter value (the common random number generation area in FIG. 15) is stored in the common figure start winning storage area (FIG. 15) corresponding to the common figure hold counter.
なお、第1特図始動SW37Aによる遊技球の検出があれば、後述する「始動口SW監視処理」にて、各種乱数値が、第1特図始動入賞記憶領域(図16)に記憶される。同様に、第2特図始動SW34Aによる遊技球の検出があれば、後述する「始動口SW監視処理」にて、各種乱数値が、第2特図始動入賞記憶領域(図17)に記憶される。 If a game ball is detected by the first special figure start SW 37A, various random numbers are stored in the first special figure start winning storage area (FIG. 16) in the “start opening SW monitoring process” described later. . Similarly, if a game ball is detected by the second special figure start SW 34A, various random numbers are stored in the second special figure start winning storage area (FIG. 17) in the “start opening SW monitoring process” described later. The
その後、遊技制御装置100は、排出球の球詰まりや、各種スイッチ、センサ等の異常などを監視するエラー監視処理を行う(2918)。
After that, the
その後、遊技制御装置100は、特別図柄変動表示ゲームに関する処理を行う特図ゲーム処理(2919)、普通図柄変動表示ゲームに関する処理を行う普図ゲーム処理(2920)を行う。
Thereafter, the
特図ゲーム処理(2919)は、第1特図始動SW37A及び第2特図始動SW34Aで検出された始動入賞口への遊技球の入賞に基づいて抽出され、特別図柄始動入賞記憶に記憶された特別図柄乱数カウンタ値が当りか否か判定し、特図表示器120で特別図柄変動表示ゲームを実行する。なお、特図始動入賞記憶には、直ちに前記変動表示ゲームを実行することができない状態で始動入賞口に遊技球が入賞した場合に、抽出された乱数が始動入賞記憶として記憶される。なお、特図ゲーム処理の詳細は、図37にて後述する。
The special figure game process (2919) is extracted based on the winning of the game ball at the start winning opening detected by the first special figure starting SW 37A and the second special figure starting SW 34A, and stored in the special symbol starting winning memory. It is determined whether or not the special symbol random number counter value is a hit, and the
また、特図ゲーム処理(2919)では、特図表示器120の表示に対応する識別情報の変動表示のための処理を行う。抽出された乱数が所定の値であれば、特別図柄に関する当り状態となり、識別情報の変動表示が当り図柄で停止する。また、当り状態になると、特別変動入賞装置36に遊技球を受け入れやすい開状態になる。
In the special figure game process (2919), a process for displaying the variation of the identification information corresponding to the display on the
普図ゲーム処理(2920)は、普図始動SW31Aで検出された普通図柄始動ゲート31への遊技球の通過に基づいて抽出され、普通図柄始動入賞記憶に記憶された普図乱数カウンタ値(2917の処理で抽出・記憶された普通図柄変動表示ゲームの結果に関する乱数)が当りか否かを判定し、普図保留カウンタの値を1だけ減算して、普図表示器121で普通図柄の変動表示ゲームを実行する。普図乱数カウンタ値が所定の値であれば、普図に関する当り状態となり、普通図柄の変動表示が当り状態で停止するためのパラメータを設定する。
The normal game process (2920) is extracted based on the passing of the game ball to the normal
次に、遊技制御装置100は、遊技機1に設けられ、遊技に関する各種情報を表示するセグメントLED(特図表示器120及び普図表示器121)に出力する信号を編集する処理を行う(2921)。具体的には、特別図柄変動表示ゲームが開始されると、今回開始した特別図柄変動表示ゲームの実行回数を減じた特別図柄入賞記憶数を特図表示器120の特図記憶表示部に表示するためのパラメータを編集する。同様に、普通図柄の変動表示ゲームが開始されると、今回開始した普通図柄変動表示ゲームの実行回数を減じた普通図柄入賞記憶数を普図表示器121の普図記憶表示器に表示するためのパラメータを編集する。
Next, the
その後、遊技制御装置100は、検査装置接続端子107を介して接続される管理用コンピュータに遊技機1の状態を出力するための外部情報を編集する外部情報編集処理を行う(2922)。外部情報には、図柄が確定したか、当りであるか、確率変動中であるか、変動時間短縮中であるか、変動表示ゲームのスタート等、変動表示ゲームの進行状態に関連する情報が含まれる。また、エラーが発生したことを示すエラー信号も含まれる。
Thereafter, the
次に、遊技制御装置100は、タイマ割込処理の終了を宣言する(2923)。
Next, the
その後、遊技制御装置100は、スタック領域706に退避していたレジスタを復帰する復帰処理(2924)を行う。ここでは、遊技制御プログラムに記述された命令を実行することにより、S2911のステップにて退避したレジスタの値を復帰させる。次いで、禁止設定されていた割り込みの許可設定をする処理を行う(2925)。
After that, the
そして、タイマ割込処理を終了し、遊技制御装置メイン処理(図25及び図26)に戻る。ここでは、「RET」命令ではなく「RETI」命令を実行して、呼出元の処理に戻る。そのため、スタック領域706に退避されていたフラグレジスタ1200(図12参照)の値も復帰することになり、スタックポインタ1233が示す値も、図19の(D)から図18の(B)の様に変化する。
And a timer interruption process is complete | finished and it returns to a game control apparatus main process (FIG.25 and FIG.26). Here, the “RETI” instruction is executed instead of the “RET” instruction, and the process returns to the caller process. Therefore, the value of the flag register 1200 (see FIG. 12) saved in the
なお、タイマ割込処理の先頭にて、図21に示す「レジスタバンクセレクタ」を切り替える命令2115(「LD RBS,0」又は「LD RBS,1」)を実行することにより、演算対象として用いるレジスタ群(汎用レジスタ群1220A、1220B)を切り替えることも可能である。例えば、呼出元の処理では汎用レジスタ群1220Aのレジスタを用いる一方で、当該タイマ割込処理では汎用レジスタ群1220Bのレジスタを用いるように切り替えることも可能である。
A register used as an operation target is executed by executing an instruction 2115 (“LD RBS, 0” or “LD RBS, 1”) for switching the “register bank selector” shown in FIG. 21 at the beginning of the timer interrupt processing. It is also possible to switch the group (general-
このようなレジスタバンクの切り換えを実行する場合は、タイマ割込処理の中では、呼出元の処理とは異なるレジスタ群のレジスタが使用されるため、S2911のステップにてレジスタを退避させるような処理や、S2911のステップにてレジスタを復帰させるような処理は不要である。 When performing such register bank switching, a register group register different from the call source process is used in the timer interrupt process. In addition, the process of restoring the register in step S2911 is not necessary.
なお、当該タイマ割込処理でも、最後に「RETI」命令を実行するので、スタック領域706に退避されていたフラグレジスタ1200(図12参照)の値が復帰することになり、フラグレジスタ1200のレジスタバンクセレクタ(RBS)1301(図13参照)の値も呼出前の状態に復帰する。そのため、図21に示す「レジスタバンクセレクタ」を切り替える命令2115(「LD RBS,0」又は「LD RBS,1」)は、タイマ割込処理の先頭で1回だけ実行すればよい。
Even in the timer interrupt processing, since the “RETI” instruction is finally executed, the value of the flag register 1200 (see FIG. 12) saved in the
そして、次のタイマ割り込みが発生するまで初期値乱数更新処理等(図26のステップ2520〜2522の処理)を繰り返す。
Then, the initial value random number update process and the like (the processes of
図30は、本発明の第1の実施の形態の遊技制御装置100から、演出制御装置150及び払出制御装置210に初期化指令信号を送信する初期化指令送信処理の手順を示すフローチャートである。本処理は、図25のステップ2511の初期化指令送信処理に対応する。
FIG. 30 is a flowchart illustrating a procedure of initialization command transmission processing for transmitting an initialization command signal from the
遊技制御装置100は、まず、演出指令及び排出指令の送信を禁止状態に設定する(3001)。具体的には、送信制御レジスタ632(図8)のビット4を“0”に設定して、送信データレジスタ635からの信号の出力を禁止した状態に設定する。
First, the
次に、遊技制御装置100は、起動時の演出指令を送信データレジスタ635に格納する(3002)。そして、起動時の演出指令がすべて送信データレジスタ635に格納されるまで処理を継続する(3003)。
Next, the
遊技制御装置100は、すべての演出指令が送信データレジスタ635に格納されると(3003の結果が「N」)、起動時の排出指令を送信データレジスタ635に格納する(3004)。そして、起動時の排出指令がすべて送信データレジスタ635に格納されるまで処理を継続する(3005)。
When all the production commands are stored in the transmission data register 635 (the result of 3003 is “N”), the
最後に、遊技制御装置100は、ステップ3001の処理で禁止状態に設定されていた演出指令及び排出指令の送信を許可状態に設定する(3006)。具体的には、送信制御レジスタ632(図8)のビット4を“1”に設定して、送信データレジスタ635からの信号の出力を許可した状態に設定する。
Finally, the
図31は、本発明の第1の実施の形態の遊技制御装置100から、演出制御装置150及び払出制御装置210にコマンドを送信するためのコマンド送信処理の手順を示すフローチャートである。本処理は、図29のステップ2913のコマンド送信処理に対応する。
FIG. 31 is a flowchart illustrating a procedure of command transmission processing for transmitting a command from the
遊技制御装置100は、初期化指令送信処理と同様に送信制御レジスタ632(図8)のビット4を“0”に設定して、まず、演出指令及び排出指令の送信を禁止状態に設定する(3101)。
The
次に、遊技制御装置100は、送信待ちの演出指令が存在するか否か(今回のタイマ割込処理のタイミングで、演出制御装置150に対応する送信データレジスタ635に書き込むべきデータが存在するか否か)を判定する(3102)。送信待ちの演出指令が存在しない場合には(3102の結果が「N」)、ステップ3112以降の排出指令に関する処理を実行する。
Next, the
一方、遊技制御装置100は、送信待ちの演出指令が存在する場合には(3102の結果が「Y」)、送信待ちの演出指令に変動開始の演出指令が含まれているか否かを判定する(3103)。変動開始の演出指令とは、図35にて後述する「停止図柄指定コマンド(MODE=B0H)」と「飾り図柄変動パターン指定コマンド(MODE=B1H〜BFH)」の各々に相当するコマンドであり、演出制御装置150は、このコマンドを受信したことを契機に、表示装置8にて変動表示ゲームの実行を開始する。
On the other hand, when there is an effect command waiting for transmission (the result of 3102 is “Y”), the
遊技制御装置100は、送信待ちの演出指令に変動開始の演出指令が含まれている場合には(3103の結果が「Y」)、変動開始の演出指令を送信データレジスタに格納する(3104)。そして、送信待ちの演出指令に含まれているすべての変動開始の演出指令が送信データレジスタに格納されるまで処理を継続する(3105)。
When the production command for variation start is included in the production command waiting for transmission (the result of 3103 is “Y”), the
遊技制御装置100は、送信待ちの演出指令に変動開始の演出指令が含まれていなかった場合(3103の結果が「N」)、又は送信待ちの演出指令に含まれている変動開始の演出指令をすべて送信データレジスタに格納した場合には(3105の結果が「Y」)、送信待ちの演出指令に他の演出指令が含まれているか否かを判定する(3106)。
The
遊技制御装置100は、送信待ちの演出指令に変動開始以外の演出指令が含まれていない場合には(3106の結果が「N」)、ステップ3111の処理を実行し、続いて、排出指令に関する処理を実行する。
When the effect command other than the start of variation is not included in the effect command waiting for transmission (the result of 3106 is “N”), the
一方、遊技制御装置100は、送信待ちの演出指令に変動開始以外の演出指令が含まれている場合には(3106の結果が「Y」)、送信バッファ(送信データバッファレジスタ635A)に空きがあるか否かを判定する(3107)。具体的には、送信データステータスレジスタ631(図9)のビット0〜5の値(送信データの残量を示す値)が“00h”〜“1Fh”であれば、空きがあると判定される。
On the other hand, in the case where an effect command other than the start of variation is included in the effect command waiting for transmission (the result of 3106 is “Y”), the
送信バッファに空きがない場合には(3107の結果が「N」)、送信待ちの演出指令を次回の送信タイミングに持ち越し(3108)、ステップ3111の処理を実行し、続いて、排出指令に関する処理を実行する。
If there is no space in the transmission buffer (the result of 3107 is “N”), the production command waiting for transmission is carried over to the next transmission timing (3108), the processing of
遊技制御装置100は、送信バッファに空きがある場合には(3107の結果が「Y」)、送信データレジスタに変動開始以外の演出指令を格納する(3109)。そして、送信バッファの空きが無くなるか、すべての演出指令が送信データレジスタに格納されるまで、ステップ3107から2110までの処理を継続する(3110)。
When there is an empty transmission buffer (the result of 3107 is “Y”), the
遊技制御装置100は、送信待ちの演出指令を送信バッファに格納する処理が終了すると、送信制御レジスタ632(図8)のビット4を“1”に設定することで、ステップ3101の処理で禁止状態に設定されていた演出指令の送信を許可状態に設定する(3111)。
When the process of storing the effect command waiting for transmission in the transmission buffer ends, the
以上のように、コマンド送信処理において演出指令を演出制御装置150に送信する場合、変動開始の演出指令を優先して送信することによって、遊技制御装置100における変動表示ゲームの進行状態と、演出制御装置150における変動表示ゲームの進行状態との時間差が常に固定されたものとなる。そのため、変動表示ゲームが開始される毎にこの時間差が変化するような不具合を防止できるようになり、遊技制御装置100と演出制御装置150とを同期させながら、表示装置8で実行される変動表示ゲームをより確実に実行させることができる。演出指令の送信が終了すると、続いて、排出指令を払出制御装置210に送信するための処理を実行する。
As described above, when the effect command is transmitted to the
遊技制御装置100は、まず、SW制御領域を検査し、賞球排出対象スイッチ(SW)の立ち上がりがあるか否かを監視する(3112)。賞球を排出する入賞口に遊技球が入賞すると、賞球排出対象SWがオンに設定される。そして、遊技制御装置100は、賞球の排出に該当するスイッチが存在するか否かを判定する(3113)。
The
なお、SW制御領域とは、遊技機に備えられた各種スイッチの検出状態を、タイマ割込毎に記憶しておく記憶領域のことである。ここでは、SW制御領域のうち、遊技球検出によって賞球が排出されるスイッチのみが対象とされ、これら対象となったスイッチのうちで、「立ち上がり情報」がオンとなっているものがあるか否かを判定している。 The SW control area is a storage area for storing detection states of various switches provided in the gaming machine for each timer interrupt. Here, in the SW control area, only the switch from which the winning ball is discharged by the detection of the game ball is targeted, and among these switches, there is a switch whose “rise information” is on. It is determined whether or not.
遊技制御装置100は、賞球の排出に該当するスイッチが存在する場合(「立ち上がり情報」がオンとなっている賞球排出対象のSWが存在する場合)には(3113の結果が「Y」)、オンとなっている賞球排出対象SWの1つを選択し、選択されたSWに該当する排出指令を送信データレジスタに格納する(3114)。 The game control apparatus 100 (when the result of 3113 is “Y”) when there is a switch corresponding to the discharge of the prize ball (when there is a SW of the prize ball discharge target whose “rise information” is on). ), One of the prize ball discharge target SWs that is turned on is selected, and a discharge command corresponding to the selected SW is stored in the transmission data register (3114).
次に、その時点で「立ち上がり情報」がオンとなっている賞球排出対象のSWが、他にも存在するかを確認する。遊技制御装置100は、他の賞球排出対象のSWがオンになっていれば、オンとなっている賞球排出対象SWの1つをさらに選択し、選択されたSWに該当する排出指令を送信データレジスタに格納する。そして、すべての賞球を排出する指令が送信データレジスタに格納されるまで処理を継続する(3115)。
Next, it is confirmed whether or not there are other SWs subject to prize ball discharge whose “rise information” is on at that time. The
遊技制御装置100は、賞球の排出に該当するスイッチが存在しない場合には(3113の結果が「N」)、又は賞球の排出に該当するスイッチに対応する排出指令をすべて送信データレジスタに格納した場合には、送信待ちの他の排出指令(払出制御装置210へエラー発生やエラー解除を指令するコマンドなど)が存在するか否かを判定する(3116)。
When there is no switch corresponding to the prize ball discharge (the result of 3113 is “N”), the
遊技制御装置100は、送信待ちの他の排出指令が存在しない場合には(3116の結果が「N」)、排出指令に関する送信を許可状態に設定し(3121)、呼び出し元に戻る。
When there is no other discharge command waiting for transmission (the result of 3116 is “N”), the
一方、遊技制御装置100は、送信待ちの他の排出指令が存在する場合には(3116の結果が「Y」)、送信バッファに空きがあるか否かを判定する(3117)。具体的には、送信データステータスレジスタ631(図9)のビット0〜5の値(送信データの残量を示す値)が“00h”〜“1Fh”であれば、空きがあると判定される。
On the other hand, when there is another discharge command waiting for transmission (the result of 3116 is “Y”), the
送信バッファに空きがない場合には(3117の結果が「N」)、送信待ちの排出指令を次回の送信タイミングに持ち越し(3118)、排出指令に関する送信を許可状態に設定し(3121)、呼び出し元に戻る。 If there is no space in the transmission buffer (the result of 3117 is “N”), the discharge command waiting for transmission is carried over to the next transmission timing (3118), the transmission related to the discharge command is set to the permitted state (3121), and called. Return to the original.
遊技制御装置100は、送信バッファに空きがある場合には(3117の結果が「Y」)、送信待ちの排出指令を送信データレジスタに格納する(3119)。そして、送信バッファの空きが無くなるか、すべての排出指令が送信データレジスタに格納されるまで、ステップ3117から3120までの処理を継続する(3120)。最後に、排出指令に関する送信を許可状態に設定し(3121)、呼び出し元に戻る。
When there is an empty transmission buffer (the result of 3117 is “Y”), the
以上のように、本実施形態では、コマンド送信処理において排出指令を払出制御装置210に送信する場合に賞球排出指令を、その他の排出指令(エラー発生/解除の指令)よりも優先して送信することによって、賞球排出対象の複数のスイッチが、同一のタイマ割込周期内で同時にオンした場合であっても、確実に賞球を排出させるように構成されている。
As described above, in this embodiment, when a discharge command is transmitted to the
このように、演出指令や賞球排出指令などの制御指令を内容に応じて優先して送信して遊技が円滑に進行するように制御し、さらに、優先されなかった制御指令については次回割込発生時に送信することによって、送信漏れのない正確な指令送信を実現することが可能となる。 In this way, control commands such as production commands and prize ball discharge commands are preferentially transmitted according to the contents to control the game so that the game progresses smoothly. By transmitting at the time of occurrence, it is possible to realize accurate command transmission without transmission omission.
図32は、本発明の第1の実施の形態の電源投入時の遊技制御装置100、払出制御装置210、及び演出制御装置150が行う処理、並びに、遊技制御装置100に備わるシリアル送信回路615の状態のタイミングチャートである。
FIG. 32 shows processing performed by the
リセット信号が払出制御装置210に接続されるシリアル送信回路615B及び演出制御装置150に接続されるシリアル送信回路615Aに伝達されると、図23に示すステップ2302の処理により、各シリアル送信回路615が不定状態(3201)から初期状態(3202)に移行する。
When the reset signal is transmitted to the
この不定状態では、シリアル送信回路615(シリアル送信回路615A、615B)から出力される信号線のレベルは、ハイレベルであるのかローレベルであるのか保証されない状態である。一方、シリアル送信回路615がリセット信号により初期化されて初期状態に遷移すると、シリアル送信回路615Bからの出力信号はオフを示すレベルに確定される。
In this indefinite state, it is not guaranteed whether the level of the signal line output from the serial transmission circuit 615 (
シリアル送信回路615の初期状態は、遊技制御装置100が図25に示すステップ2511の処理で初期化指令を送信するために、初期化指令が各シリアル送信回路615に設定されるまで(3203)継続する。
The initial state of the
一方、遊技制御装置100のセキュリティ回路630にリセット信号が伝達されると、図23に示すステップ2304の処理で自己診断処理を実行し、ステップ2305の処理でセキュリティチェック処理を実行する(3204)。セキュリティチェック処理の実行後にCPU102が起動し、CPU102によって遊技制御装置メイン処理(図25及び図26)が実行される。
On the other hand, when the reset signal is transmitted to the
CPU102は、ディレイ処理の実行(3206)前に1回目のRAMクリア信号の取り込み(3205)と、ディレイ処理の実行後に2回目のRAMクリア信号の取り込み(3207)と、を行う。言い換えると、1回目のRAMクリア信号取り込み(3205)と2回目のRAMクリア信号取り込み(3207)とは、ディレイ処理(3206)を挟んで実行される。
The
このように、2205及び2207の各時点で実行されるRAMクリア信号取り込みの間に、ディレイ処理を実行するので、ディレイ処理の間に、1回目のRAMクリア信号取り込みで取り込んだチャタリング除去等を行うことができる。
As described above, since the delay process is executed during the RAM clear signal fetching executed at the
ディレイ処理(3206)で処理を待機させた後に、図25に示すステップ2516及び1510の処理でRAM104の初期化処理を行い(3208)、ステップ2511の処理で初期化指令を送信してから、通常の遊技制御を行う(3209)。
After waiting in the delay process (3206), the
なお、通常の遊技制御を実行すると、遊技状態に応じて、払出制御指令を払出制御装置210に送信するために、払出制御指令が払出制御装置210に接続されるシリアル送信回路615Bに設定される(3210)。また、通常の遊技制御の実行中には、遊技状態に応じて、演出制御指令を演出制御装置150に送信するために、演出制御指令が演出制御装置150に接続されるシリアル送信回路615Aに設定される(3211)。
When the normal game control is executed, the payout control command is set in the
一方で、払出制御装置210のセキュリティ回路にリセット信号が伝達されると、払出制御装置210のセキュリティ回路は、図23に示すステップ2314の処理で自己診断処理を実行し、ステップ2315の処理でセキュリティチェック処理を実行する(3212)。セキュリティチェック処理の実行後にCPU212が起動し、CPU212によって、図14のステップ2316の処理で電源投入時の初期化処理を実行する(3213)。払出制御装置210の初期化処理が実行されると、払出制御装置210のシリアル受信回路625を、遊技制御装置100からの指令を受信可能な状態にする(3214)。
On the other hand, when the reset signal is transmitted to the security circuit of the
また、演出制御装置150にリセット信号が伝達されると、演出制御装置150は、図23のステップ2323の処理で電源投入時の初期化処理を実行する(3215)。演出制御装置150の初期化処理が実行されると、演出制御装置150のシリアル受信回路625を、遊技制御装置100からの指令を受信可能な状態にする(3216)。
When the reset signal is transmitted to the
遊技制御装置100は、ディレイ処理を実行することで、RAM104の初期化処理の実行開始のタイミングを遅延させている。言い換えると、ディレイ処理によって、演出制御装置150や払出制御装置210へ初期化指令を送信するタイミングを遅延させている。
The
このため、ディレイ処理によって、払出制御装置210に接続されるシリアル送信回路615B及び演出制御装置150に接続されるシリアル送信回路615Aが初期状態を維持する時間を十分に確保し、その間に、払出制御装置210及び演出制御装置150は、初期化処理を実行し、自身のシリアル受信回路625を介して遊技制御装置100からの指令を受信可能な状態にすることができる。
For this reason, the delay process ensures sufficient time for the
したがって、ディレイ処理を設けることで、図25のように、リセット信号が、遊技制御装置100、払出制御装置210及び演出制御装置150に同時に伝達される構成の遊技機であっても、ハードウェア等で構成した遅延回路を設けることなく、各制御装置が起動を開始するタイミングを適切に設定することができる。
Therefore, by providing a delay process, as shown in FIG. 25, even if the gaming machine has a configuration in which the reset signal is simultaneously transmitted to the
よって、図32のように、まず、払出制御装置210に接続されるシリアル送信回路615B及び演出制御装置150に接続されるシリアル送信回路615Aが初期状態に維持され、その状態で、払出制御装置210及び演出制御装置150のシリアル受信回路625が指令受信可能状態になり、次いで、払出制御装置210及び演出制御装置150に初期化指令を送信させることを確実に実行できるようになる。
Therefore, as shown in FIG. 32, first, the
仮に、遊技機1への電源投入直後において、遊技制御装置100の払出制御装置210に接続されるシリアル送信回路615B及び演出制御装置150に接続されるシリアル送信回路615Aが初期状態に維持される以前に、払出制御装置210若しくは演出制御装置150のシリアル受信回路625が指令受信可能状態になると、払出制御装置210に接続されるシリアル送信回路615B及び演出制御装置150に接続されるシリアル送信回路615Aから出力される信号レベルが不安定であるから、払出制御装置210若しくは演出制御装置150にてこの不安定な信号レベルの情報を、正規な信号であると誤って受信するおそれがあり、誤作動を引き起こす可能性がある。
If the
また、払出制御装置210若しくは演出制御装置150のシリアル受信回路625が指令受信可能状態になる前に、遊技制御装置100から、払出制御装置210若しくは演出制御装置150へ初期化指令を送信してしまうと、払出制御装置210や演出制御装置150で初期化指令を受信できなくなり、誤作動を引き起こす可能性がある。
Further, before the
特に、本実施形態の遊技機のように、遊技制御装置100から払出制御装置210へ単方向で指令を送信する構成や、遊技制御装置100から演出制御装置150へ単方向で指令を送信する構成の場合には、指令された情報が正しく送信されているか否かを確認することが困難であるため、初期化時に処理を遅延させることが有効である。
In particular, as in the gaming machine of the present embodiment, a configuration in which a command is transmitted from the
また、図32では、RAMクリア信号の取り込みが2回である例を示したが、複数回であればよい。この複数回の間にディレイ処理を実行することによって、ディレイ処理実行直前のRAMクリア信号取り込みのチャタリング除去等にかかる時間をディレイ処理による遅延時間と重複させることができるので、処理を効率化させることができる。 FIG. 32 shows an example in which the RAM clear signal is fetched twice, but it may be a plurality of times. By executing the delay process between a plurality of times, the time required for chattering removal of the RAM clear signal fetching immediately before the execution of the delay process can be overlapped with the delay time by the delay process. Can do.
図33は、本発明の第1の実施の形態の遊技制御装置100から払出制御装置210に送信される排出指令の一例を示す図である。
FIG. 33 is a diagram illustrating an example of a discharge command transmitted from the
払出制御装置210に送信される排出指令は、払出制御装置210を初期化する指令(初期化指令信号)と、賞球を排出する指令(排出指令信号)と、エラーの発生及び解除を通知する指令(エラー通知信号)があり、モード部及びアクション部からなる共通のフォーマットで送信される。
The discharge command transmitted to the
まず、初期化指令信号について説明すると、初期化指令信号は、モード部が「80H」であり、アクション部は「00H〜7FH」のいずれかの値となる。初期化指令信号のアクション部は、払出制御装置210に設定されている認証コードに対応する値(「00H〜7FH」のいずれかの値)となる。この払出制御装置210に設定されている認証コードに対応する値は、例えば、RAM104に設定されているものとする。なお、モード部は「80H」以上の値、アクション部には「80H」未満の値が設定されており、モード部を受信する場合に「80H」未満の値が送信された場合には不正なコマンドが送信されてきたことを判別することが可能となっている。
First, the initialization command signal will be described. In the initialization command signal, the mode portion has a value of “80H” and the action portion has any value of “00H to 7FH”. The action part of the initialization command signal becomes a value (any value of “00H to 7FH”) corresponding to the authentication code set in the
初期化指令信号の出力時期は、遊技制御装置100に電源投入時であり、具体的には、図25に示すステップ2511の処理である。
The output timing of the initialization command signal is when the
次に、排出指令信号について説明する。払出制御装置210によって払い出される遊技媒体の個数に対応して、15個の排出指令信号が用意されている。
Next, the discharge command signal will be described. Fifteen discharge command signals are prepared corresponding to the number of game media to be paid out by the
排出指令信号のモード部は「A1H〜AFH」である。なお、このモード部の下位バイトは、排出指令信号が払い出しを指令する遊技媒体の個数と一致する。また、排出指令信号のアクション部は「5EH〜50H」となる。このアクション部は、モード部の各ビットの論理を反転した値となっている。 The mode part of the discharge command signal is “A1H to AFH”. Note that the lower byte of this mode part matches the number of game media for which the discharge command signal commands payout. The action part of the discharge command signal is “5EH to 50H”. This action part has a value obtained by inverting the logic of each bit of the mode part.
例えば、1個の遊技媒体の払い出しを指令する排出指令信号のモード部は「A1H」であり、アクション部は「5EH」である。すなわち、排出指令信号は、モード部とアクション部とからなる2バイトのデータで構成されている。 For example, the mode part of the discharge command signal for instructing the payout of one game medium is “A1H”, and the action part is “5EH”. That is, the discharge command signal is composed of 2-byte data including a mode part and an action part.
なお、排出指令信号の出力時期は、一般入賞口32、第1始動入賞口37、第2始動入賞口34、特別変動入賞装置(大入賞口)36に遊技球が入賞したタイミングで出力される。
The output timing of the discharge command signal is output at the timing when the game ball is won in the general winning
また、払出制御装置210は、排出指令信号を受信すると、受信した排出指令信号のモード部の各ビットの論理を反転した値が、アクション部の各ビットの値と一致しなければ、受信した排出指令信号に対応する個数の遊技媒体の払い出しを許可しない。
Further, when the dispensing
最後に、エラー通知信号について説明する。排出指令がエラー発生通知の場合には、モード部にエラーが発生したことを示す「C0H」が設定される。また、エラー通知信号のアクション部は、発生したエラーの種類に対応する値(「00H〜7FH」のいずれかの値)が設定される。 Finally, the error notification signal will be described. When the discharge command is an error occurrence notification, “C0H” indicating that an error has occurred is set in the mode section. In the action part of the error notification signal, a value corresponding to the type of error that has occurred (any value of “00H to 7FH”) is set.
排出指令がエラー解除通知の場合には、モード部にエラーが解除されたことを示す「C1H」が設定される。また、エラー解除信号のアクション部は、エラー通知信号の場合と同様に、発生したエラーの種類に対応する値(「00H〜7FH」のいずれかの値)が設定される。 When the discharge command is an error release notification, “C1H” indicating that the error has been released is set in the mode section. Further, the action part of the error cancellation signal is set to a value corresponding to the type of error that has occurred (any value of “00H to 7FH”), as in the case of the error notification signal.
図34は、本発明の第1の実施の形態のスイッチの立ち上がりを検出する手順を示すタイムチャートである。なお、図中のfは割込周期であり、割込周期の先頭でタイマ割込が発生する。また、dは遅延時間を示す。スイッチの立ち上がり、すなわち、スイッチがオンになったか否かの判定は、図29に示したタイマ割込処理のステップ2912の入出力処理で行われる。なお、以下に示す、第1物理レベル、第2物理レベル、論理レベル、立上り情報は、タイマ割込が発生する毎に更新され、遊技機に備えられたスイッチ毎に整理されてSW制御領域(図31で前述)に記憶される。
FIG. 34 is a time chart illustrating a procedure for detecting the rise of the switch according to the first embodiment of this invention. In the figure, f is an interrupt cycle, and a timer interrupt is generated at the beginning of the interrupt cycle. D represents a delay time. The rise of the switch, that is, whether or not the switch has been turned on is determined in the input / output process of
まず、スイッチの立ち上がり時(3401)及び立ち下がり時(3402)について説明する。CPU102は、タイマ割込発生時の入出力処理(図29のステップ2912)において、スイッチの検出信号のレベルが、前回設定された第1物理レベルと相違すると(ローレベルからハイレベル、又は、ハイレベルからローレベルに変化)、第1物理レベルを検出信号のレベルに新たに設定する。そして、所定の遅延時間が経過した後、スイッチの検出信号が、前回設定された第2物理レベルと相違する場合には、第2物理レベルを検出信号のレベルに設定する。なお、第1物理レベルと第2物理レベルとは、検出タイミングが異なるだけである。
First, the rise time (3401) and fall time (3402) of the switch will be described. In the input / output process (
このとき、第1物理レベルと、第2物理レベルとが一致していれば、検出信号が変化したものと判断し、論理レベルに当該レベルを設定する。そして、論理レベルがローレベルからハイレベルに変化した場合には、次のタイマ割込発生から遅延時間が経過するまで、立ち上がり情報をオンに設定する。すなわち、立ち上がり情報をオンに設定した後、次のタイマ割込発生でオフに設定する。 At this time, if the first physical level and the second physical level match, it is determined that the detection signal has changed, and the level is set as the logical level. When the logic level changes from the low level to the high level, the rising information is set on until the delay time elapses after the next timer interrupt occurs. That is, after the rising edge information is set to ON, it is set to OFF when the next timer interrupt occurs.
また、本発明の第1の実施の形態では、第1物理レベルと第2物理レベルの信号レベルが相違する場合、すなわち、3403に示すように、第1物理レベル検出時と、第2物理レベル検出時とで、スイッチの検出信号のレベルが相違する場合には、ノイズが発生したものとして、論理レベルを変更しないように構成されている。このように構成することによって、ノイズ発生時に誤って立上り情報がオンに設定されることを防ぎ、後述するように、賞球排出指令が誤って払出制御装置210に送信されることを防ぐことができる。
Further, in the first embodiment of the present invention, when the signal levels of the first physical level and the second physical level are different, that is, as shown in 3403, when the first physical level is detected, the second physical level is detected. When the level of the detection signal of the switch is different from that at the time of detection, it is assumed that noise has occurred and the logic level is not changed. By configuring in this way, it is possible to prevent the rising information from being set to ON by mistake when noise occurs, and to prevent the prize ball discharge command from being erroneously transmitted to the
また、本発明の第1の実施の形態では、図34のタイミングチャートに示した立上り情報がオンとなったスイッチの中に賞球排出対象となるものが含まれている場合は、送信バッファ(図6の送信データバッファレジスタ635A)に賞球排出指令が格納されることで、遊技制御装置100から払出制御装置210に賞球排出指令が送信される。また、賞球排出指令は、賞球排出の対象となる入賞スイッチ(図4における、第1特図始動SW37A、第2特図始動SW34A、カウントSW36A、及び入賞口SW32A〜入賞口SW32N)ごとに定義される。なお、本発明の第1の実施の形態では、賞球排出の対象となる入賞スイッチが16個備えられている。
Further, in the first embodiment of the present invention, when a switch for which the rising edge information shown in the timing chart of FIG. The prize ball discharge command is transmitted from the
このとき、1回のタイマ割込周期内での送信で、送信バッファ内に格納されたすべての賞球排出指令が送信されないと、次回のタイマ割込発生時に、賞球排出対象のスイッチの立上り情報がオンとなって新たに発生した賞球排出指令を、送信バッファに取り込めないおそれがある。これを防止するには、新たに賞球排出指令が発生する度に、送信バッファに空きがあるか否かを確認して、空きがなければ次回送信時まで賞球排出指令を保持していなければならず、送信できない賞球排出指令を保持するための記憶領域(例えば、前述したSW制御領域の立ち上がり情報を一時的に退避させる領域など)を必要としてしまう。また、送信バッファに格納できなかった賞球排出指令を退避させる処理も必要となってしまう。 At this time, if all the prize ball discharge commands stored in the transmission buffer are not transmitted in one transmission within the timer interruption period, the rise of the switch for prize ball discharge will occur at the next timer interruption. There is a possibility that the prize ball discharge command newly generated when the information is turned on cannot be taken into the transmission buffer. To prevent this, every time a new prize ball discharge command is issued, it is checked whether or not there is a vacancy in the transmission buffer. If there is no vacancy, the prize ball discharge command must be held until the next transmission. In other words, a storage area for holding a prize ball discharge command that cannot be transmitted (for example, an area for temporarily saving the rising information of the SW control area described above) is required. In addition, it is necessary to save the prize ball discharge command that could not be stored in the transmission buffer.
例えば、賞球排出対象のスイッチが5個であり、賞球排出指令のサイズが2バイトであるならば、払出制御装置210に指令を送信するためのバッファ(送信データレジスタ635)に格納できるデータの最大バイト数を10バイトとしておけば、同一タイマ割込周期内で賞球排出対象の全てのスイッチが同時にオンしたとしても、全ての賞球排出指令をバッファに取り込むことができる。しかしながら、賞球排出対象のスイッチが5個を超えた場合には、バッファにはより多くの容量を必要とすることになる。
For example, if the number of prize ball discharge target switches is five and the size of the prize ball discharge command is 2 bytes, data that can be stored in a buffer (transmission data register 635) for transmitting the command to the
本発明の第1の実施の形態では、送信バッファの容量を32バイトに設定しているので、賞球排出対象のスイッチが16個以下であれば、1回の割り込み発生時にすべての賞球排出指令を遊技制御装置100から払出制御装置210に送信できるように構成されている。したがって、送信されなかった賞球排出指令を保持するための記憶領域を必要とせず、また、送信されていない賞球排出指令を退避させる処理も不要となるため、必要な記憶容量を削減し、遊技制御装置100の制御プログラムを簡略化することができる。
In the first embodiment of the present invention, since the capacity of the transmission buffer is set to 32 bytes, if there are 16 or less prize ball discharge target switches, all prize balls are discharged when one interrupt occurs. A command can be transmitted from the
図35は、本発明の第1の実施の形態の遊技制御装置100から演出制御装置150に送信される演出制御コマンドの一例を示す図である。
FIG. 35 is a diagram illustrating an example of the effect control command transmitted from the
演出制御装置150に送信されるコマンドは、初期化コマンドと通常時のコマンドである演出コマンドとがあり、これらのモード部及びアクション部によって構成される共通のフォーマットで送信される。
The commands transmitted to the
まず、初期化コマンドについて説明する。 First, the initialization command will be described.
初期化コマンドには、RAM104のすべての領域が初期化されたか否かを示す電源投入コマンドと、遊技機1のシリーズを特定するためのシリーズ機特定コマンドとが含まれる。また、直前の電源遮断時における遊技機1の遊技状態(低確率状態、高確率状態、入賞抑制状態、入賞促進状態)を通知するコマンドや直前の電源遮断時における特別図柄入賞記憶の数を通知するコマンドも初期化コマンドに含まれる。
The initialization command includes a power-on command indicating whether or not all areas of the
図35に示すように、RAM104のすべての領域が初期化されたことを示す電源投入コマンドAのモード部は「80H」であり、アクション部は「01H」である。RAM104のすべての領域が初期化されたこととは、図25に示すステップ2510の処理が実行されたことである。
As shown in FIG. 35, the mode part of the power-on command A indicating that all areas of the
一方、RAM104のすべての領域が初期化されていないこと、つまり、RAM104の一部の領域が初期化されたことを示す電源投入コマンドBのモード部は「80H」であり、アクション部は「02H」である。RAM104のすべての領域が初期化されていないこと、つまり、RAM104の一部の領域が初期化されたこととは、図25に示すステップ2516の処理が実行されたことである。
On the other hand, the mode part of the power-on command B indicating that all areas of the
したがって、図25に示すステップ2510の処理が実行された場合には、ステップ2511の処理で、モード部が「80H」でアクション部が「01H」である電源投入コマンドAが送信される。図25に示すステップ2516の処理が実行された場合には、ステップ2511の処理で、モード部が「80H」でアクション部が「02H」である電源投入コマンドAが送信される。
Therefore, when the process of
演出制御装置150は、RAM104のすべての領域が初期化されたことを示す電源投入コマンドAを受信すると、RAM104のすべての領域が初期化されたことを表示装置8に表示する。
When receiving the power-on command A indicating that all areas of the
また、演出制御装置150は、RAM104のすべての領域が初期化されていないことを示す電源投入コマンドBを受信すると、RAM104のすべての領域が初期化されていないことを表示装置8に表示する。
Further, when receiving the power-on command B indicating that not all areas of the
また、シリーズ機特定コマンドのモード部は「81H」であり、アクション部は「01H〜7FH」である。アクション部は、遊技機1のシリーズに対応する「01H」〜「7FH」のいずれかの値である。なお、遊技機1のシリーズに対応する値は、ROM103に設定されている。
Also, the mode part of the series machine specific command is “81H”, and the action part is “01H to 7FH”. The action part is one of values “01H” to “7FH” corresponding to the series of
また、遊技状態(低確率状態、高確率状態、入賞抑制状態、入賞促進状態)を通知するコマンドは、モード部が「90H」となっており、アクション部には、直前の電源遮断時における遊技状態別に対応付けられた値が格納される。例えば、低確率状態であればアクション部は「01H」であり、高確率状態であればアクション部は「02H」となる。演出制御装置150は、遊技状態を通知するコマンドを受信すると、遊技状態を報知するための演出を行う。
Further, the command for notifying the game state (low probability state, high probability state, winning suppression state, winning promotion state) has a mode portion of “90H”, and the action portion has a game at the time of the previous power cut-off. A value associated with each state is stored. For example, the action part is “01H” in the low probability state, and the action part is “02H” in the high probability state. When receiving the command for notifying the game state, the
また、特別図柄入賞記憶の数を通知する保留情報コマンドは、モード部が「A0H」となっており、アクション部は「00H〜04H」のいずれかの値である。アクション部は、直前の電源遮断時における始動記憶数(0〜4)に対応した値である。演出制御装置150は、保留情報コマンドを受信すると、表示装置8の記憶表示部(図49で後述する第1記憶表示部4920又は第2記憶表示部4930)部に、受信した保留情報コマンドに対応する始動記憶数を表示する。
Further, in the hold information command for notifying the number of special symbol winning memories, the mode portion is “A0H” and the action portion is any value from “00H to 04H”. The action part is a value corresponding to the starting memory number (0 to 4) at the time of the previous power shutdown. Upon receiving the hold information command, the
これらのシリーズ機特定信号、遊技状態を通知するコマンド、及び特別図柄入賞記憶の数を通知するコマンドの出力時期は、電源投入時であり、図25に示すステップ2511の処理で送信される。なお、これらの各信号と電源投入コマンドの出力順序は、いずれが先であっても後であってもよい。さらに、電源投入時に、遊技制御装置100から演出制御装置150へ通知すべき情報が他にもあれば、初期化コマンドとして一緒に送信してもよい。
The output timing of these series machine identification signals, the command for notifying the gaming state, and the command for notifying the number of special symbol winning memories is when the power is turned on, and is transmitted in the process of
次に、各演出コマンドについて説明する。 Next, each effect command will be described.
まず、表示装置8で実行される変動表示ゲームにおいて、始動口に遊技球が入賞したタイミングで出力され、図柄の変動開始前に実行される演出を指示する変動前演出指定コマンドについて説明する。
First, in the variable display game executed on the
変動前演出指定コマンドのモード部は「A1H〜AFH」であり、アクション部は「01H〜7FH」のいずれかの値である。モード部は前半変動パターン番号に対応し、アクション部は後半変動パターン番号に対応する。 The mode part of the pre-change effect designation command is “A1H to AFH”, and the action part is any value of “01H to 7FH”. The mode portion corresponds to the first half variation pattern number, and the action portion corresponds to the second half variation pattern number.
演出制御装置150は、変動前演出指定コマンドを受信すると、表示装置8において識別図柄の変動開始前の演出、例えば、先読み予告としてキャラクタが登場するなどの演出が実行され、その後、図柄の変動表示を開始し、変動表示ゲームを開始する。
Upon receiving the pre-change effect designation command, the
表示装置8で実行される変動表示ゲームにおいて図柄の変動パターンを指示する飾り図柄変動パターン指定コマンドについて説明する。
A decorative symbol variation pattern designation command for designating a symbol variation pattern in the variation display game executed on the
飾り図柄変動パターン指定コマンドのモード部は「B1H」であり、アクション部は「01H〜7FH」のいずれかの値である。モード部は前半変動パターン番号に対応し、アクション部は後半変動パターン番号に対応する。 The mode part of the decorative symbol variation pattern designation command is “B1H”, and the action part is any value of “01H to 7FH”. The mode portion corresponds to the first half variation pattern number, and the action portion corresponds to the second half variation pattern number.
演出制御装置150は、飾り図柄変動パターン指定コマンドを受信すると、表示装置8において図柄の変動表示を開始し、変動表示ゲームを開始する。
When receiving the decorative symbol variation pattern designation command, the
飾り図柄変動パターン指定コマンドは、表示装置8において変動表示ゲームの図柄の変動表示を開始するタイミングで送信する。具体的には、表示装置8で変動表示ゲームが終了した場合に始動記憶がある場合、又は表示装置8で変動表示ゲームが実行されていない場合に始動入賞口に遊技球が入賞した場合である。
The decorative symbol variation pattern designation command is transmitted at the timing at which the variation display game symbol variation display is started on the
次に、表示装置8における変動表示ゲームにおける停止図柄を指定する停止図柄指定コマンドについて説明する。
Next, a stop symbol designation command for designating a stop symbol in the variable display game on the
停止図柄指定コマンドのモード部は「B0H」であり、アクション部は「01H〜7FH」のいずれかの値である。アクション部は、停止図柄に対応する値である。 The mode part of the stop symbol designation command is “B0H”, and the action part is one of the values “01H to 7FH”. The action part is a value corresponding to the stop symbol.
演出制御装置150は、停止図柄指定コマンドを受信すると、受信した停止図柄指定コマンドに基づいて、表示装置8における変動表示ゲームの停止図柄を特定する。
When receiving the stop symbol designation command, the
停止図柄指定コマンドは、表示装置8の変動表示ゲームの変動表示を開始するときに送信される。
The stop symbol designation command is transmitted when the variation display of the variation display game on the
続いて、変動時間が経過し、変動表示中の図柄を停止するための図柄変動停止コマンドについて説明する。 Next, a symbol variation stop command for stopping the symbol whose variation time has elapsed and displaying the variation is described.
図柄変動停止コマンドのモード部は「C0H」であり、アクション部は「01H」である。 The mode part of the symbol variation stop command is “C0H”, and the action part is “01H”.
演出制御装置150は、図柄変動停止コマンドを受信すると、表示装置8で変動表示している図柄を停止させる。
When receiving the symbol variation stop command, the
図柄変動停止コマンドは、変動時間が経過したタイミングで送信される。 The symbol fluctuation stop command is transmitted when the fluctuation time has elapsed.
続いて、特別遊技状態発生中に送信される大当り関連コマンドについて説明する。 Next, a jackpot related command transmitted during the occurrence of a special gaming state will be described.
大当り関連演出指令信号のモード部は「D0H」であり、アクション部は「01H〜7FH」のいずれかの値である。アクション部は、特別遊技状態の進行状況に応じた値である。 The mode portion of the big hit related effect command signal is “D0H”, and the action portion is any value of “01H to 7FH”. The action part is a value corresponding to the progress status of the special game state.
演出制御装置150は、大当り関連コマンドを受信すると、受信した大当り関連コマンドに基づいて、特別遊技状態に関連する演出を行う。
When receiving the jackpot related command, the
遊技機1においてエラーが発生した場合にエラーの発生を報知するためのエラー関連コマンドについて説明する。
An error-related command for notifying the occurrence of an error when an error occurs in the
エラー関連コマンドのモード部は「70H」であり、アクション部は「01H〜7FH」のいずれかの値である。アクション部は発生したエラーに対応した値である。 The mode part of the error-related command is “70H”, and the action part is one of values “01H to 7FH”. The action part is a value corresponding to the error that has occurred.
演出制御装置150は、エラー関連コマンドを受信すると、エラー関連コマンドに基づいて、発生したエラーを報知するための演出を行う。
When receiving the error-related command, the
エラー関連コマンドは、遊技制御装置100がエラーを検出したタイミングで送信される。
The error-related command is transmitted when the
なお、前述の遊技状態を通知するコマンド(モード部=「90H」)は、電源投入時だけでなく、通常の遊技中において遊技状態が変化した場合にも送信される。例えば、遊技中において低確率状態が発生したときに、モード部=「90H」かつアクション部=「01H」のコマンドが送信され、遊技中において、高確率状態が発生したときに、モード部=「90H」かつアクション部=「02H」のコマンドが送信される。 Note that the above-described command (mode portion = “90H”) for notifying the gaming state is transmitted not only when the power is turned on, but also when the gaming state changes during normal gaming. For example, when a low probability state occurs during a game, a command of mode portion = “90H” and action portion = “01H” is transmitted, and when a high probability state occurs during a game, the mode portion = “ 90H "and action part =" 02H "are transmitted.
また、前述の特別図柄入賞記憶の数を通知するコマンド(モード部=「A0H」)は、電源投入時だけでなく、通常の遊技中において始動入賞口に遊技球が入賞して始動記憶数が増加した場合にも送信される。例えば、遊技中において始動入賞口に遊技球が入賞して始動記憶数が「3」に変化したときには、モード部=「A0H」かつアクション部=「03H」の信号が送信される。 In addition, the command (mode part = “A0H”) for notifying the number of special symbol winning memories mentioned above is not only when the power is turned on, but when the game ball is won at the starting winning opening during normal games, Sent when the number increases. For example, when the game ball is won at the start winning opening during the game and the start memory number is changed to “3”, a signal of mode portion = “A0H” and action portion = “03H” is transmitted.
したがって、これらの遊技状態を通知する信号、及び特別図柄入賞記憶の数を通知する信号は、演出コマンドとしても機能することになる。 Therefore, the signal for notifying these gaming states and the signal for notifying the number of special symbol winning memories also function as effect commands.
なお、前述したように、これらの信号のうち、変動前演出指定コマンドは、他の信号よりも優先して演出制御装置150へのデータ送信を行うためのバッファ(送信データレジスタ635)に取り込まれる。これにより、遊技制御装置100における変動表示ゲームの進行状態と、演出制御装置150における変動表示ゲームの進行状態との時間差を常に固定させる。
As described above, among these signals, the pre-fluctuation effect designation command is fetched into a buffer (transmission data register 635) for transmitting data to the
図36は、本発明の第1の実施の形態の遊技制御装置100から演出制御装置150に送信される送信データの構成を示す説明図である。図36(a)は送信データの概略構成を示し、図36(b)は送信データの詳細構成を示している。なお、遊技制御装置100から払出制御装置210に送信される送信データの構成も同様である。
FIG. 36 is an explanatory diagram illustrating a configuration of transmission data transmitted from the
図36(a)に示すように、1組の制御指令データは、コマンドの分類を識別するためのモードデータDCmと、実行されるコマンドの内容(機能)を示すアクションデータDCaで構成される。これらのモードデータDCm及びアクションデータDCaは、図33の賞球排出指令のMODE及びACTION、図35の演出制御コマンドのMODE及びACTIONに各々対応する。 As shown in FIG. 36 (a), one set of control command data is composed of mode data DCm for identifying the command classification and action data DCa indicating the content (function) of the command to be executed. These mode data DCm and action data DCa correspond to the prize ball discharge command MODE and ACTION shown in FIG. 33 and the effect control command MODE and ACTION shown in FIG. 35, respectively.
また、本実施形態では、送信バッファに設定されたすべての制御指令データ(最大32バイト)を1回の割込周期ですべて送信可能となるようにデータの送信速度が設定されている。したがって、遊技制御装置100の制御プログラムを複雑化させずに、演出制御装置150への指令送信を一時的に中断するなどの処理を必要とせず、また、指令送信の遅れなどによって、遊技制御装置100と演出制御装置150の各制御の進行状態がずれないようにすることが可能となる。
In this embodiment, the data transmission speed is set so that all the control command data (maximum 32 bytes) set in the transmission buffer can be transmitted in one interrupt cycle. Therefore, without complicating the control program of the
また、図36(b)に示すように、1組の制御指令データを構成するモードデータDCm及びアクションデータDCaは、8ビットのコマンドデータに、1フレームの開始であることを示すスタートビット、1ビットのパリティデータ、1フレームの終わりであることを示すストップビットが付加され、1フレームを処理単位として送信される。従って、この1フレームの時間が、1バイトあたりのデータ送信時間(送信バッファに格納された制御指令データを1バイト送信するために必要な時間)となる。 Further, as shown in FIG. 36 (b), the mode data DCm and action data DCa constituting one set of control command data are 8 bits of command data, a start bit indicating the start of one frame, Bit parity data, a stop bit indicating the end of one frame is added, and one frame is transmitted as a processing unit. Therefore, the time of one frame is the data transmission time per byte (the time necessary for transmitting one byte of control command data stored in the transmission buffer).
すなわち、本実施形態では、非同期方式(調歩同期式)によるシリアル通信を利用して制御指令データを送信する。 That is, in this embodiment, the control command data is transmitted using serial communication using an asynchronous method (start-stop synchronization method).
演出制御装置150は、受信した1組の制御指令データ(モードデータDCm+アクションデータDCa)を解析し、表示装置8、音回路156、装飾制御装置等を制御するための制御データを生成する。
The
本実施形態では、1回の割込処理で生成された一連の制御指令データを送信するときに、全ての制御指令データを、タイマ割込周期内で一時に送信するようにしている。すなわち、一連の制御指令データを全て送信データレジスタ635に格納した後で、シリアル送信回路615を送信許可状態として(送信制御レジスタ632の送信イネーブルを送信許可に設定)送信を開始する。
In this embodiment, when a series of control command data generated by one interrupt process is transmitted, all the control command data is transmitted at a time within a timer interrupt cycle. That is, after storing a series of control command data in the transmission data register 635, the
従属制御装置としての演出制御装置150は、連続して受信したデータを、一連の制御指令データとして認識する。そして、この一連の制御指令データを処理単位として演出装置(例えば、表示装置8)を制御する。
The
これにより、演出制御装置150は、タイマ割込処理毎に生成された一連の制御指令データを特定でき、1回のタイマ割込処理で生成された一連の制御指令データを処理単位として演出装置を制御するので、一連の制御指令データに基づく演出を連続して(タイムラグなく)実行することができる。
Thereby, the
次に、図37を参照して、図29のタイマ割込処理における特図ゲーム処理(2918)の詳細を説明する。図37は、本発明の第1の実施の形態の特図ゲーム処理の手順を示すフローチャートである。 Next, with reference to FIG. 37, the details of the special game process (2918) in the timer interruption process of FIG. 29 will be described. FIG. 37 is a flow chart showing the procedure of the special figure game process according to the first embodiment of this invention.
遊技制御装置100は、第1始動入賞口37(図3参照)及び普通変動入賞装置33(図3参照)の第2始動入賞口への遊技球の入賞を監視し、入賞に基づき各種乱数値の記憶を行う始動口SW監視処理を実行する(3700)。なお、始動口SW監視処理についての詳細は、図39にて後述する。
The
遊技制御装置100は、カウントSW36A(図3参照)からの入力を監視するカウントスイッチ監視処理を行う(3701)。
The
遊技制御装置100は、ステップ3706〜3712の各処理で設定される特図ゲーム処理タイマが0であるか否かを判定する(3702)。
The
特図ゲーム処理タイマが0でないと判定された場合には(3702の結果が「N」)、遊技制御装置100は、特図ゲーム処理タイマを−1更新し(3703)、更新された特図ゲーム処理タイマがタイムアップして0になったか否かを判定する(3704)。特図ゲーム処理タイマがタイムアップしていない場合には(3704の結果が「N」)、遊技制御装置100はステップ3714の処理を実行する。
If it is determined that the special figure game processing timer is not 0 (the result of 3702 is “N”), the
一方、特図ゲーム処理タイマが0であると判定された場合には(3702の結果が「Y」)、又は特図ゲーム処理タイマがタイムアップしたと判定された場合には(3704の結果が「Y」)、遊技制御装置100は、ゲーム処理番号を取得し、取得したゲーム処理番号に基づいて実行する処理を選択するゲーム分岐処理を行う(3705)。
On the other hand, when it is determined that the special figure game process timer is 0 (the result of 3702 is “Y”), or when it is determined that the special figure game process timer is up (the result of 3704 is “Y”), the
ゲーム処理番号が0である場合には、遊技制御装置100は、特図変動表示ゲームの変動開始を監視し、特図変動表示ゲームの変動開始の設定や演出の設定、特図変動中処理を行うために必要な情報の設定を行う特図普段処理を実行する(3706)。特図普段処理では、特図変動表示ゲームの変動に係る情報の設定を行うようになっており、始動記憶に基づく特図変動表示ゲームの実行に伴って始動記憶を1デクリメントする処理や特図変動表示ゲームにおける変動時間の設定処理等を行う。なお、特図普段処理についての詳細は、図45にて後述する。
When the game process number is 0, the
ゲーム処理番号が1である場合には、遊技制御装置100は、特図表示中処理(3708)を行うために必要な情報(特図変動表示ゲームにおける結果の停止表示時間等)の設定を行う特図変動中処理を実行する(3707)。
When the game process number is 1, the
ゲーム処理番号が2である場合には、遊技制御装置100は、特図表示中処理を実行する(3708)。特図表示中処理では、特図変動表示ゲームの結果が大当りである場合にファンファーレ・インターバル処理(3709)を行うために必要な情報が設定され、特図変動表示ゲームの結果がはずれである場合には特図普段処理(3706)を行うために必要な情報が設定される。
When the game process number is 2, the
ゲーム処理番号が3である場合には、遊技制御装置100は、特別遊技状態における大入賞口の開放回数の更新等の処理を行うファンファーレ・インターバル処理を実行する(3709)。なお、この処理において、ラウンド開始コマンドが設定される。
When the game process number is 3, the
ゲーム処理番号が4である場合には、遊技制御装置100は大入賞口開放中処理を行う(3710)。大入賞口開放中処理では、特別遊技状態が最終ラウンドでなければファンファーレ・インターバル処理(3709)を行うために必要な情報(インターバルコマンドを含む)が設定され、特別遊技状態が最終ラウンドであれば特別遊技状態の終了画面のコマンド(大当り終了コマンド)の設定や大入賞口残存球処理(3711)を行うために必要な情報が設定される。
When the game process number is 4, the
ゲーム処理番号が5である場合には、遊技制御装置100は大入賞口残存球処理を行う(3711)。大入賞口残存球処理では、特別遊技状態が最終ラウンドである場合に、大入賞口を閉鎖した後に大入賞口内に残存する全ての遊技球がカウントSW42cで検出されるまでの時間が設定される。
If the game process number is 5, the
ゲーム処理番号が6である場合には、遊技制御装置100は大当り終了処理を実行する(3712)。大当り終了処理では、特別遊技状態を終了する処理が行われ、特図普段処理(3706)を行うために必要な情報が設定される。
If the game process number is 6, the
ゲーム処理番号に基づくステップ3706〜3712の処理を行った後、遊技制御装置100は、設定された各種データをセーブするテーブルデータセーブ処理を実行する(3713)。その後、遊技制御装置100は、特図1変動表示ゲームのゲーム処理タイマの更新等を行う特図1変動制御処理(3714)を実行し、特図2変動表示ゲームのゲーム処理タイマの更新等を行う特図2変動制御処理(3715)を実行して、特図ゲーム処理を終了する。
After performing the processing of
図38は、本発明の第1の実施の形態の特図ゲーム処理におけるゲーム処理番号に基づいた分岐の処理を説明する図である。この分岐の処理は、図37のステップ3705で実行され、行3801〜行3807の命令が順に実行されることになる。ここでは、図12で前述した各種レジスタ、図21及び図22で前述したアセンブリ言語を用いて説明を行うことにする。
FIG. 38 is a diagram illustrating a branching process based on the game process number in the special figure game process according to the first embodiment of this invention. This branching process is executed in
なお、図38における列3821は、遊技制御プログラムが格納されているユーザプログラムROM103のアドレスを示し、列3822は、当該アドレスに格納されているデータを示している。例えば、ユーザプログラムROM103の「4800H」のアドレスには「F5H」のデータが格納され、続く「4801H」のアドレスには「0CH」のデータが格納され、続く「4802H」のアドレスには「48H」のデータが格納され、続く「4803H」のアドレスには「3AH」のデータが格納されている。以降の「4804H」〜「480BH」のアドレスには、「10H」、「28H」、「87H」、‥‥、「09H」、「E9H」のデータが格納されている。
Note that a
さらに、「480CH」と「480DH」のアドレスには「20H」と「48H」の値が格納されている。この2バイトのデータを16ビットのデータ(ただし、下位アドレス側と上位アドレス側を入れ替える)として表現したデータ「4820H」は、図37のステップ3706で実行される特図普段処理の先頭アドレスに相当する。同様に、「480EH」と「480FH」のアドレスに格納されるデータを16ビットで表現した「4840H」は、図37のステップ3707で実行される特図変動中処理の先頭アドレスに相当する。
Furthermore, the values “20H” and “48H” are stored in the addresses “480CH” and “480DH”. The data “4820H” expressing this 2-byte data as 16-bit data (however, the lower address side and the upper address side are interchanged) corresponds to the head address of the special figure routine processing executed in
以下、「4810H」以降に格納される16ビットの各データ「4860H」、「4880H」、「48A0H」、‥‥は、図37のステップ3708、3709、3710、‥‥で実行される、特図表示中処理、ファンファーレ・インターバル処理、大入賞口開放処理、‥‥のそれぞれの先頭アドレスに相当する。このようにして、アドレス値480CH〜4819Hの領域では、各処理の先頭アドレスが処理番号順に格納されることにより、所定の分岐アドレステーブルを構成している。
Hereinafter, the 16-bit data “4860H”, “4880H”, “48A0H”, etc. stored after “4810H” are executed in
行3801の命令は、HLレジスタ1212Aに、前述の分岐アドレステーブルの先頭となるアドレス値「480CH」をロードするものである。次に、行3802の命令が実行され、Aレジスタ1202Aにゲーム処理番号(図37の3705参照)がロードされる。次に、行3803の命令が実行され、Aレジスタ1202Aの値が2倍される。
The instruction in the
次に、行3804によりAレジスタ1202Aの値がCレジスタ1205Aにロードされ、行3805によりBレジスタ1204Aに「0」の値がロードされることで、BCレジスタ1206AにAレジスタ1202Aの値が設定される。
Next, the value of the
次に、行3806によりHLレジスタ1212AにBCレジスタ1206Aの値が加算される。これにより、HLレジスタ1212Aには、ゲーム処理番号に対応する処理の分岐先のアドレスが設定される。最後に、行3807の「JP (HL)」命令を実行することで、HLレジスタ1212Aが示すアドレスに、処理を移行させる。
Next, in
ここで、行3801〜行3807の各命令と、遊技制御プログラムが格納されているユーザプログラムROM103に記憶される列3722の各データとの関係について説明する。
Here, the relationship between each command in the
遊技制御プログラムを記述するアセンブリ言語の命令は、図21及び図22で前述したコードに変換されて、ユーザプログラムROM103に記憶されている。例えば、行3801の「LD HL,480CH」の命令は、「4800H」〜「4803H」のアドレスに配置される「F5H」、「0CH」「48H」の値に変換されて、ユーザプログラムROM103に記憶されている。行3802〜行3807の各命令も、対応するコードに変換されて、ユーザプログラムROM103の「4803H」〜「480BH」のアドレスに、順に記憶されている。
The assembly language instruction describing the game control program is converted into the code described above with reference to FIGS. 21 and 22 and stored in the
なお、行3808以降の記述は、特図普段処理、特図変動中処理、特図表示中処理、ファンファーレ・インターバル処理、大入賞口開放処理、‥‥の先頭アドレスの値をプログラム中に配置することを示しており、ユーザプログラムROM103の「480CH」以降のアドレスに、対応するアドレスデータが設定されることによって、前述の分岐アドレステーブルが構成されることになる。
In the description after
このように、HLレジスタに所定の分岐アドレステーブルの先頭アドレス(「480CH」)を設定し、処理番号(SEQNO)に応じてHLレジスタの値を更新することによって、処理番号に応じた処理を実行することができる。したがって、HLレジスタは、分岐アドレス設定レジスタとして機能する。 As described above, the start address (“480CH”) of a predetermined branch address table is set in the HL register, and the value corresponding to the process number is updated by updating the value of the HL register according to the process number (SEQNO). can do. Therefore, the HL register functions as a branch address setting register.
なお、「JP (HL)」以外に、特定のレジスタが示す値をアドレスと見なして分岐する命令が存在すれば、そのレジスタは分岐アドレス設定レジスタとして機能することになる。例えば、図21には図示していないが、IXレジスタ1231が示す値のアドレスに処理を分岐させる命令「JP (IX)」を用いていれば、IXレジスタ1231は分岐アドレス設定レジスタとして機能していることとなる。
In addition to “JP (HL)”, if there is an instruction to branch by regarding a value indicated by a specific register as an address, the register functions as a branch address setting register. For example, although not shown in FIG. 21, if the instruction “JP (IX)” for branching the process to the address indicated by the
また、「JP (HL)」命令を用いなくても、HLレジスタが示す値をアドレスと見なして、そのアドレスに処理を分岐させるような方法は、他にもある。例えば、「PUSH HL」命令を実行して、一旦スタック領域に706にHLレジスタの値を格納し、直後に「RET」命令を実行すれば、スタック領域に706に格納してあったHLレジスタの値がプログラムカウンタ1234に格納される。その結果、HLレジスタが示す値のアドレスに処理を分岐させることができる。
Further, there is another method in which the value indicated by the HL register is regarded as an address and processing is branched to that address without using the “JP (HL)” instruction. For example, if the “PUSH HL” instruction is executed, the value of the HL register is temporarily stored in the
このような方法を用いるのであれば、HLレジスタ1212A以外のレジスタを分岐アドレス設定レジスタとして機能させることも可能である。例えば、DEレジスタ1209Aをスタック領域に706に格納した直後に「RET」命令を実行すれば、DEレジスタ1209Aが示す値のアドレスに分岐するので、この場合はDEレジスタ1209Aが分岐アドレス設定レジスタとして機能することになる。
If such a method is used, it is possible to cause a register other than the HL register 1212A to function as a branch address setting register. For example, if the “RET” instruction is executed immediately after the
次に、図39を参照して、図37の特図ゲーム処理における始動口SW監視処理(3700)の詳細を説明する。図39は、本発明の第1の実施の形態の始動口SW監視処理の手順を示すフローチャートである。 Next, the details of the start port SW monitoring process (3700) in the special game process of FIG. 37 will be described with reference to FIG. FIG. 39 is a flowchart illustrating a procedure of start port SW monitoring processing according to the first embodiment of this invention.
始動口SW監視処理では、遊技制御装置100は、まず第1始動入賞があるか否かの判定を行う(3900)。第1始動入賞口37への入賞があるか否かは、第1始動入賞口37への入賞があった場合に第1特図始動SW37Aから出力される遊技球の検出信号の有無によって判定される。第1始動入賞がない場合には(3900の結果が「N」)、遊技制御装置100はステップ3901の処理を実行する。これに対して、第1始動入賞がある場合には(3900の結果が「Y」)、遊技制御装置100は特図始動口SW共通処理(3904)を実行し、始動口SW監視処理を終了する。なお、特図始動口SW共通処理についての詳細は図40にて後述する。
In the start port SW monitoring process, the
遊技制御装置100は、普電作動中であるか否かを判定する(3901)。具体的には、遊技制御装置100は、普電(普通電動役物)としての普通変動入賞装置33の開閉部材が作動し、遊技球の入賞が可能な開状態となっているか否かを判定する。開閉部材が開状態であって普電作動中である場合には(3901の結果が「Y」)、遊技制御装置100はステップ3903の処理を実行する。これに対して、開閉部材が閉状態であって普電作動中でない場合には(3901の結果が「N」)、遊技制御装置100はステップ3902の処理を実行する。
The
遊技制御装置100は、不正入賞エラーが発生したか否かを判定する(3902)。具体的には、遊技制御装置100は、普通変動入賞装置33の開閉部材が閉状態である状態で発生した不正な入賞があるか否かを判定する。なお、普通変動入賞装置33の開閉部材が閉状態になった後の所定期間に検出された入賞は、不正入賞ではないと判定される。不正入賞エラーが発生している場合には(3902の結果が「Y」)、遊技制御装置100は始動口SW監視処理を終了する。これに対して、不正入賞エラーが発生していない場合には(3902の結果が「N」)、遊技制御装置100はステップ3903の処理を実行する。
The
遊技制御装置100は、第2始動入賞(普通変動入賞装置33の第2始動入賞口34への入賞)があるか否かを判定する(3903)。普通変動入賞装置33の第2始動入賞口34への入賞があるか否かは、第2始動入賞口34への入賞があった場合に第2特図始動SW34Aから出力される遊技球の検出信号の有無によって判定される。第2始動入賞がない場合には(3903の結果が「N」)、遊技制御装置100は、始動口SW監視処理を終了する。これに対して、第2始動入賞がある場合には(3903の結果が「Y」)、遊技制御装置100は特図始動口SW共通処理(3904)を実行し、始動口SW監視処理を終了する。
The
図40を参照して、図39の始動口SW監視処理における特図始動口SW共通処理(3904)の詳細を説明する。図40は、本発明の第1の実施の形態の特図始動口SW共通処理の手順を示すフローチャートである。 With reference to FIG. 40, the details of the special view start port SW common process (3904) in the start port SW monitoring process of FIG. 39 will be described. FIG. 40 is a flowchart illustrating the procedure of the special figure start port SW common process according to the first embodiment of this invention.
特図始動口SW共通処理では、遊技制御装置100は、まず対応する始動入賞フラグを設定する処理を実行する(4000)。遊技制御装置100は、第1始動入賞口37と普通変動入賞装置33の第2始動入賞口34のいずれの始動口への入賞により特図始動口SW共通処理が開始されたかに基づき始動入賞フラグを設定する。始動入賞フラグとしては、第1始動入賞口37への入賞により特図始動口SW共通処理が開始された場合は特図1フラグが設定され、普通変動入賞装置33の第2始動入賞口34への入賞により特図始動口SW共通処理が開始された場合は特図2フラグが設定される。以下の処理では、特図1フラグが設定されていれば対応する処理として特図1始動記憶についての処理が行われ、特図2フラグが設定されていれば対応する処理として特図2始動記憶についての処理が行われる。
In the special figure start port SW common process, the
遊技制御装置100は、まず、遊技球が入賞した始動入賞口に対応するフラグを設定する(4000)。具体的には第1始動入賞口に遊技球が入賞した場合には第1始動入賞フラグを設定し、第2始動入賞口に遊技球が入賞した場合には第2始動入賞フラグを設定する。
First, the
次に、遊技制御装置100は、対応する保留の数が上限(例えば4)であるか否かを判定する(4001)。対応する保留の数とは、第1始動入賞口37に遊技球が入賞した場合には第1特図保留カウンタの値が対象となり、第2始動入賞口34に遊技球が入賞した場合には第2特図保留カウンタの値が対象となる(ともに図15参照)。
Next, the
このとき、対応する保留の数が上限となっていて、これ以上対応する始動記憶を記憶できない場合には(4001の結果が「Y」)、遊技制御装置100は本処理を終了して始動口SW監視処理を終了する。これに対して、対応する保留が上限でない場合には(4001の結果が「N」)、遊技制御装置100は、対応する始動記憶数(即ち、第1特図保留カウンタ又は第2特図保留カウンタのうち、入賞した始動口に対応する方)を1インクリメントする処理を実行し(4002)、その後、ステップ4003の処理を実行する。
At this time, if the number of corresponding holds is the upper limit and the corresponding start memory cannot be stored any more (the result of 4001 is “Y”), the
遊技制御装置100は、保留数情報を設定する処理を実行する(4003)。遊技制御装置100は、対応する始動記憶数が1インクリメントされたことに基づき、始動記憶数の情報である保留数情報を設定する。なお、保留数情報は、始動記憶に関する情報を含む保留情報コマンド(図35参照)の一つとして後に演出制御装置150に送信されるようになっている。その後、遊技制御装置100は、対応する大当り判定用乱数を取得する処理(4004)、対応する大当り図柄乱数を取得する処理(4005)、対応する特図変動表示ゲームの変動パターン乱数を取得する処理(4006)を実行する。ここでは、図15に示される、大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数の各生成領域から、乱数値を取得する。
The
遊技制御装置100は、ステップ4004〜4006で取得した各種乱数値を用いて、特図保留情報判定処理を実行する(4007)。この特図保留情報判定処理の詳細は、図41を参照して後述する。
The
そして、遊技制御装置100は、対応する大当り判定用乱数を記憶する処理(4008)、対応する大当り図柄乱数を記憶する処理(4009)、対応する変動パターン乱数を記憶する処理を実行する(4010)。ここでは、遊技制御装置100は、ステップ4004〜4006で取得した各種乱数値を、対応する乱数記憶領域に記憶する。
Then, the
対応する乱数記憶領域とは、処理対象の始動口が第1始動入賞口37であれば、図16で前述した、第1特図変動表示ゲームを実行するために必要な各種乱数の保存領域のうち、第1特図保留カウンタに対応する領域が該当する。同様に、処理対象の始動口が第2始動入賞口34であれば、図17で前述した、第2特図変動表示ゲームを実行するために必要な各種乱数の保存領域のうち、第2特図保留カウンタに対応する領域が該当する。
The corresponding random number storage area is a storage area for various random numbers necessary for executing the first special figure variation display game described above with reference to FIG. 16 if the start opening to be processed is the first
例えば、第2始動入賞口34に遊技球が入賞した結果、ステップ4002の処理にて第2特図保留カウンタが1インクリメントされて「3」となった場合は、図17における「保留3の保存領域」に割り当てられた各種乱数の保存領域に、ステップ4004〜4006で取得した各種乱数値を記憶することになる。
For example, if the second special figure hold counter is incremented by 1 in the process of
次いで、遊技制御装置100は、保留情報コマンドを設定する処理を実行し(4011)、本処理を終了する。保留情報コマンドは、始動口への入賞によって更新された後の保留数(第1特図保留カウンタ又は第2特図保留カウンタの値)を通知するコマンドであり、直後に演出制御装置150に送信される(正確には、次回のタイマ割込処理(図29)のコマンド送信処理(2912)が実行されるタイミングで送信される)ようになっている。
Next, the
続いて、図41を参照して、図40の特図始動口SW共通処理における特図保留情報判定処理(4007)の詳細を説明する。図41は、本発明の第1の実施の形態の特図保留情報判定処理の手順を示すフローチャートである。 Next, with reference to FIG. 41, the details of the special figure hold information determination process (4007) in the special figure start port SW common process of FIG. 40 will be described. FIG. 41 is a flowchart illustrating a procedure of special figure hold information determination processing according to the first embodiment of this invention.
特図保留情報判定処理では、乱数記憶領域へ新たに始動記憶が記憶される際に、すなわち、第1始動入賞口37や第2始動入賞口34(普通変動入賞装置33)に遊技球が入賞したタイミングで、当該該始動記憶に対応する結果関連情報の判定が行われる。つまり、特図保留情報判定処理では、新たに記憶された始動記憶に基づく特図変動表示ゲームの開始タイミングより前に、当該始動記憶に対応した結果関連情報の判定を行う先読処理が行われることになる。
In the special figure hold information determination process, when the start memory is newly stored in the random number storage area, that is, the game ball is won in the first
特図保留情報判定処理では、遊技制御装置100は、まず特図2始動記憶についての処理であるか否かを判定する(4100)。特図2始動記憶についての処理である場合には(4100の結果が「Y」)、常に先読み処理を実行するため、遊技制御装置100はステップ4103の処理を実行する。
In the special figure hold information determination process, the
これに対して、特図2始動記憶についての処理でない場合(4100の結果が「N」)、つまり、特図1始動記憶についての処理である場合には、遊技制御装置100は、普通変動入賞装置33の作動状態が抑制状態であるか否かを判定する(4101)。普通変動入賞装置33の作動状態が抑制状態でない場合には(4101の結果が「N」)、遊技制御装置100は、特図1始動記憶に関連する先読み演出を実行することなく、特図保留情報判定処理を終了する。
On the other hand, if the process is not for the special figure 2 start memory (the result of 4100 is “N”), that is, if the process is for the special figure 1 start memory, the
これに対して、普通変動入賞装置33が抑制状態である場合には、遊技制御装置100は、大当り中であるか否かを判定する(4102)。遊技状態が特別遊技状態であって、大当り中である場合には(4102の結果が「Y」)、遊技制御装置100は、特図1始動記憶に対する先読み演出をせずに、特図保留情報判定処理を終了する。
On the other hand, when the normal
これに対して、大当り中でない場合には(4102の結果が「N」)、遊技制御装置100は、始動記憶に対して大当り乱数が大当り判定値と一致するかを判定し、大当りである場合には大当りの種類や変動パターンを決定する特図大当り判定処理を実行する(4103)。なお、特図大当り判定処理についての詳細は、図42にて後述する。
On the other hand, when it is not a big hit (the result of 4102 is “N”), the
遊技制御装置100は、ステップ4103の処理で一時的に記憶される大当り種類を特定する情報及び変動パターンを特定する情報を用いて、変動前演出指定コマンドを設定する(4104)。変動前演出指定コマンドは、後述する図43及び図44の変動パターンテーブルを用いて設定され、一旦、遊技制御装置100のRAM104に記憶される。そして、次回のタイマ割込処理(図29参照)が実行されて、変動前演出指定コマンドが遊技制御装置100から演出制御装置150に送信されると、演出制御装置150の変動パターン情報記憶領域に記憶される。
The
図42を参照して、図41の特図保留情報判定処理における特図大当り判定処理(4103)の詳細を説明する。なお、後述の図46の特図1変動開始処理(特図2変動開始処理)における特図大当り判定処理(4103)を実行する際にも、図42の処理が行われる。図42は、本発明の第1の実施の形態の特図大当り判定処理の手順を示すフローチャートである。 The details of the special figure jackpot determination process (4103) in the special figure hold information determination process of FIG. 41 will be described with reference to FIG. The process of FIG. 42 is also performed when executing the special figure big hit determination process (4103) in the special figure 1 fluctuation start process (special figure 2 fluctuation start process) of FIG. 46 described later. FIG. 42 is a flowchart illustrating a procedure of special figure jackpot determination processing according to the first embodiment of this invention.
特図大当り判定処理では、判定対象の始動記憶の大当り種類及び変動パターンを決定する処理が行われる。なお、図41の特図保留情報判定処理の特図大当り判定処理を実行する場合は、乱数記憶領域へ新たに記憶された始動記憶が判定対象となるが、図46の特図1変動開始処理(特図2変動開始処理)の特図大当り判定処理を実行する場合は、変動開始となる始動記憶が判定対象となる。すなわち、特図大当り判定処理は、複数の呼び出し元から参照される共通モジュールとなっている。 In the special figure jackpot determination process, a process of determining the jackpot type and variation pattern of the start memory to be determined is performed. Note that when the special figure jackpot determination process of the special figure hold information determination process of FIG. 41 is executed, the start memory newly stored in the random number storage area becomes the determination target, but the special figure 1 fluctuation start process of FIG. When executing the special figure jackpot determination process (special figure 2 fluctuation start process), the start-up memory at which the fluctuation starts is a determination target. That is, the special figure jackpot determination process is a common module that is referred to by a plurality of callers.
遊技制御装置100は、まず、特図確変フラグはオンになっているか否かを判定する(4200)。そして、特図確変フラグがオンの場合には(4200の結果が「Y」)、遊技制御装置100は、確変状態における、すなわち特図確率が高確率時の大当り判定を実行する(4201)。なお、特図確変フラグは、特図表示中処理(図37のステップ3708)においてオン/オフに設定される。
The
特図確変フラグがオンでない場合には(4200の結果が「N」)、遊技制御装置100は、非確変状態、すなわち特図確率が低確率時の大当り判定を実行する(4202)。
If the special figure probability change flag is not on (the result of 4200 is “N”), the
次に、遊技制御装置100は、対応する始動記憶が大当りであるか否かを判定する(4203)。すなわち、始動記憶の大当り乱数の値が、大当り判定値と一致するか否かを判定する。
Next, the
そして、大当りである場合には(4203の結果が「Y」)、遊技制御装置100は、対応する始動記憶の大当り図柄乱数を用いて、確変大当りや通常大当りといった大当りの種類を決定する(4204)。
If it is a big hit (the result of 4203 is “Y”), the
これに対し、対応する始動記憶が大当りではない場合には、遊技制御装置100は、大当りの種類が「はずれ」となったことをRWMに一時的に記憶する(4205)。
On the other hand, if the corresponding start-up memory is not a big hit, the
続いて、遊技制御装置100は、対応する始動記憶の特図変動表示ゲームが短時間変動となる条件が成立しているか否かを判定する(4206)。ここでは、判定対象が特図2変動表示ゲームの始動記憶である場合は、短時間変動となる条件が成立しているものと見なされる。あるいは、判定対象が特図1変動表示ゲームの始動記憶であっても、当該判定を行う時点における特図1変動表示ゲームの始動記憶数が上限数(ここでは4)となっているか、普通変動入賞装置33の作動状態が促進状態となっているかのいずれかの状態である場合は、短時間変動となる条件が成立しているものと見なされる。
Subsequently, the
そして、短時間変動となる条件が成立する場合には(4206の結果が「Y」)、遊技制御装置100は、対応する始動記憶の第1〜第3変動パターン乱数により短時間変動の変動パターンを決定する(4207)。
If the condition for short-term fluctuation is satisfied (the result of 4206 is “Y”), the
これに対し、短時間変動となる条件が成立していない場合には(4206の結果が「N」)、遊技制御装置100は、対応する始動記憶の第1〜第3変動パターン乱数により長時間変動の変動パターンを決定する(4208)。なお、変動パターン決定の仕方の詳細については図43及び図44にて後述する。
On the other hand, if the condition for the short-time fluctuation is not satisfied (the result of 4206 is “N”), the
最後に、遊技制御装置100は、はずれを含む大当り種類を特定する情報と、変動パターンを特定する情報を一時的にRWMに記憶する(4209)。ここでは、特定する情報とは、変動パターン番号である。その後、遊技制御装置100は、特図大当り判定処理を終了する。
Finally, the
図43及び図44を参照して、図42の変動パターンの決定(ステップ4207及びステップ4208)やステップ4209における変動パターン番号の決定について説明する。図43は、本発明の第1の実施の形態の後半変動パターンテーブルである。また、図44は、本発明の第1の実施の形態の前半変動パターンテーブルである。
With reference to FIGS. 43 and 44, determination of the variation pattern (
図43(A)は、図42のステップ4203の処理において、対応する始動記憶が大当りではないと判定された場合に選択されるテーブルであり、特図変動表示ゲームの後半の変動パターンが決定される。
FIG. 43A is a table that is selected when it is determined that the corresponding start-up memory is not a big hit in the process of
まず、対応する始動記憶の第1変動パターン乱数の値に応じて、グループ番号0〜2のいずれかが選択される。ここで、グループ番号「0」は「リーチなし」、番号「1」は「ノーマルリーチ」、番号「2」は「SPリーチ」を示す。「リーチなし」が選択される確率は2701/3001、「ノーマルリーチ」が選択される確率は295/3001、「SPリーチ」が選択される確率は5/3001である。
First, one of the
次に、対応する始動記憶の第2変動パターン乱数の値に応じて、後半変動パターン番号01h〜23hのいずれかが選択される。ここで、後半変動パターン番号「01h」は「リーチなし変動」で変動時間2秒を示す。後半変動パターン番号11h〜13hは「ノーマルリーチ」変動であり、番号「11h」は変動時間9秒の「ノーマルリーチ短変動」、番号「12h」は変動時間10秒の「ノーマルリーチ中変動」、番号「13h」は変動時間11秒の「ノーマルリーチ長変動」を示す。また、後半変動パターン番号21h〜23hは「SPリーチ」変動であり、番号「21h」は変動時間37秒の「SPリーチ短変動」、番号「22h」は変動時間38秒の「SPリーチ中変動」、番号「23h」は変動時間39秒の「SPリーチ長変動」を示す。
Next, one of the second half
図43(B)は、図42のステップ4203において、対応する始動記憶が大当りであると判定された場合に選択されるテーブルであり、特図変動表示ゲームの後半の変動パターンが決定される。ここでは、図43(A)と異なるところを説明する。
FIG. 43B is a table that is selected when it is determined in
大当りが発生する場合は、後半変動パターンにおいてグループ番号「0」の「リーチなし」が選択されることはない。「ノーマルリーチ」又は「SPリーチ」が選択される。「ノーマルリーチ」が選択される確率は1501/3001、「SPリーチ」が選択される確率は1500/3001である。 When a big hit occurs, “no reach” of group number “0” is not selected in the latter half fluctuation pattern. “Normal reach” or “SP reach” is selected. The probability that “normal reach” is selected is 1501/3001, and the probability that “SP reach” is selected is 1500/3001.
なお、「ノーマルリーチ」からさらに第2変動パターン乱数に応じて選択される後半変動パターン番号は、51h〜53hとなるが、それぞれ11h〜13hに対応しており、選択される確率も同じである。同様に、「SPリーチ」の後半変動パターン番号は、61h〜63h(21h〜23hに対応)となる。 The second half variation pattern numbers selected from “normal reach” according to the second variation pattern random numbers are 51h to 53h, which correspond to 11h to 13h, respectively, and have the same probability of being selected. Similarly, the latter half variation pattern numbers of “SP reach” are 61h to 63h (corresponding to 21h to 23h).
このように、変動パターンの決定には、まず、第1変動パターン乱数を用いて後半変動のリーチ種類(なしを含む)を決定し、次に第2変動パターン乱数を用いて後半変動パターン(変動時間)を決定する。そして、後半変動パターンを示す後半変動パターン番号と、第3変動パターン乱数とを用いて、前半変動パターンを決定する(図44参照)。 As described above, in determining the fluctuation pattern, first, the reach type (including none) of the second half fluctuation is determined using the first fluctuation pattern random number, and then the second half fluctuation pattern (fluctuation) using the second fluctuation pattern random number. Time). Then, the first half variation pattern is determined using the second half variation pattern number indicating the second half variation pattern and the third variation pattern random number (see FIG. 44).
続いて、図44を参照して、前半変動パターンテーブルについて説明する。 Next, the first half variation pattern table will be described with reference to FIG.
図44では、後半変動パターン番号01h〜63h毎に設定された振分率に応じて、第3変動パターン乱数を用いて前半変動パターンが決定される。
In FIG. 44, the first half variation pattern is determined using the third variation pattern random number according to the distribution ratio set for each of the second half
前半変動パターンには、「前半キャラクタA出現変動」と、「前半キャラクタB出現変動」と、「前半キャラクタなし変動」の変動時間を短縮した「前半短縮変動」とがある。それぞれの変動時間は、10秒、10秒、10秒、1秒に設定されている。 The first-half variation patterns include “first-half character A appearance variation”, “first-half character B appearance variation”, and “first-half character variation” that shortens the variation time of “first-half character absence variation”. Each variation time is set to 10 seconds, 10 seconds, 10 seconds, and 1 second.
第1変動パターン乱数及び第2変動パターン乱数を用いた結果、後半変動パターンを「ノーマルリーチ変動」とする決定がなされている場合には、第3変動パターン乱数の値が0〜200の場合に「前半キャラクタA出現変動」を選択し、第3変動パターン乱数の値が201〜205の場合に「前半キャラクタB出現変動」を選択し、第3変動パターン乱数の値が206〜400の場合に「前半キャラクタなし変動」を選択する。 As a result of using the first fluctuation pattern random number and the second fluctuation pattern random number, when the second half fluctuation pattern is determined to be “normal reach fluctuation”, when the value of the third fluctuation pattern random number is 0 to 200, “ “First Half Character A Appearance Variation” is selected, “First Variation Character B Appearance Variation” is selected when the value of the third variation pattern random number is 201 to 205, and “3rd Variation Pattern Random Value” is 206 to 400. Select “No First Character Variation”.
第1変動パターン乱数及び第2変動パターン乱数を用いた結果、後半変動パターンを「SPリーチ変動」とする決定がなされている場合には、必ずキャラクタが出現するように制御され、第3変動パターン乱数の値が0〜200の場合に「前半キャラクタA出現変動」を選択し、第3変動パターン乱数の値が201〜400の場合に「前半キャラクタB出現変動」を選択する。 As a result of using the first variation pattern random number and the second variation pattern random number, if it is determined that the latter half variation pattern is “SP reach variation”, the character is controlled to appear without fail, and the third variation pattern When the value of the random number is 0 to 200, “first half character A appearance variation” is selected, and when the value of the third variation pattern random number is 201 to 400, “first half character B appearance variation” is selected.
第1変動パターン乱数及び第2変動パターン乱数を用いた結果、後半変動パターンを「リーチなし変動」とする決定がなされている場合(後半変動パターン番号=01hの場合)には、第3変動パターン乱数の値が0〜5のときに「前半キャラクタA出現変動」が選択される。第3変動パターン乱数の値が6〜400の場合には、図42のステップ4206における短時間変動の条件が成立しているときに「前半短縮変動」が選択され、この条件が成立していないときは「前半キャラクタなし変動」が選択される。
As a result of using the first fluctuation pattern random number and the second fluctuation pattern random number, when the latter half fluctuation pattern is determined to be “unreachable fluctuation” (in the case of the latter half fluctuation pattern number = 01h), the third fluctuation pattern When the value of the random number is 0 to 5, “first character A appearance variation” is selected. When the value of the third variation pattern random number is 6 to 400, “first half shortened variation” is selected when the condition for short-term variation in
本発明の第1の実施の形態では、後半変動パターン番号01hの「リーチなし変動」の場合にのみ、「前半短縮変動」が設定されている。そして、「リーチなし変動」は、大当りの種類が「はずれ」である場合に高い確率で選択される。また、「リーチなし変動」の場合には「前半キャラクタなし変動」が選択される確率は低く、「前半短縮変動」又は「前半キャラクタなし変動」が選択される確率が高い。
In the first embodiment of the present invention, the “first half shortening variation” is set only in the case of “non-reach variation” of the second half
したがって、保留記憶数が多い場合ではずれのときは「リーチなし・前半短縮変動」が選択される確率が高いので、全体の平均変動時間を短縮する。そして、保留記憶数が少ない場合ではずれのときは「リーチなし・前半キャラクタなし変動」が選択される確率が高くなっている。 Accordingly, when there is a large number of reserved memories, there is a high probability that “no reach / first half shortened variation” will be selected when there is a shift, so the overall average variation time is shortened. When the number of reserved memories is small, the probability that “no reach / no first half character fluctuation” is selected is high when there is a shift.
これに対して、はずれのときは、リーチを伴う変動(「ノーマルリーチ変動」及び「SPリーチ変動」)や、リーチを伴わない「リーチなし・前半キャラクタA出現変動」が選択される確率は低くなっている。なお、特図変動表示ゲームが大当りとなる確率は、低確率時において1/301とし、高確率時において1/61とするものとする。 On the other hand, when there is a loss, there is a low probability that a change with reach (“normal reach change” and “SP reach change”) or “no reach / first character A appearance change” without reach will be selected. ing. Note that the probability that the special figure variation display game is a big hit is 1/301 at a low probability and 1/61 at a high probability.
本実施形態では、リーチを伴なう変動(「ノーマルリーチ変動」及び「SPリーチ変動」)や、「リーチなし・前半キャラクタA出現変動」を、保留記憶数の数に関係なく共通の変動時間が設定された共通変動態様とする。これらの変動態様は、特図の大当り結果と、第1〜第3変動パターン乱数とによって決定されるので、決定処理を行う時点における保留記憶数の数に依存することなく決定されるものである。つまり、同一の保留記憶であれば、特図保留情報判定処理(図41)の特図大当り判定処理(4104)により決定される変動態様と、特図1(特図2)変動開始処理(図46)の特図大当り判定処理(4606)による決定される変動態様とが一致する。 In the present embodiment, fluctuations with reach (“normal reach fluctuation” and “SP reach fluctuation”) and “no reach / first character A appearance fluctuation” are represented by a common fluctuation time regardless of the number of reserved memories. The common variation mode is set. Since these fluctuation modes are determined by the jackpot result of the special figure and the first to third fluctuation pattern random numbers, they are determined without depending on the number of the reserved storage numbers at the time of performing the determination process. . That is, if it is the same hold storage, the fluctuation mode determined by the special figure big hit determination process (4104) of the special figure hold information determination process (FIG. 41) and the special figure 1 (special figure 2) fluctuation start process (FIG. The variation mode determined by the special figure jackpot determination process (4606) of 46) matches.
これに対して、「リーチなし・前半短縮変動」や「リーチなし・前半キャラクタなし変動」は、保留記憶数の数に基づいていずれかが選択される変動パターンであるので、固有変動態様とする。これらの変動態様は、特図の大当り結果と、第1〜第3変動パターン乱数のみならず、決定処理を行う時点における保留記憶数の数に依存して決定されるものである。つまり、同一の保留記憶であっても、特図保留情報判定処理(図41)の特図大当り判定処理(4104)により決定される変動態様と、特図1(特図2)変動開始処理(図46)の特図大当り判定処理(4606)により決定される変動態様とが一致するとは限らない。ただし、前者の処理で決定された変動態様が固有変動態様であれば、後者の処理で決定された変動態様も固有変動態様となるように設定されている。 On the other hand, “no reach / first half shortening variation” and “no reach / first half character variation” are variation patterns in which one of them is selected based on the number of reserved storage numbers, and are therefore inherent variation modes. . These fluctuation modes are determined not only depending on the jackpot result of the special figure and the first to third fluctuation pattern random numbers, but also depending on the number of reserved storage numbers at the time of performing the determination process. That is, even in the same hold storage, the variation mode determined by the special figure jackpot determination process (4104) of the special figure hold information determination process (FIG. 41) and the special figure 1 (special figure 2) fluctuation start process ( The variation mode determined by the special figure big hit determination process (4606) of FIG. 46) does not always match. However, if the variation mode determined in the former process is an inherent variation mode, the variation mode determined in the latter process is also set to be the inherent variation mode.
なお、これらの前半変動パターンには、前半変動パターン番号が設けられているが、始動入賞時及び変動開始時のどちらのタイミングで決定された前半変動パターンかによって前半変動パターン番号が異なる。 These first-half variation patterns are provided with first-half variation pattern numbers, but the first-half variation pattern numbers differ depending on whether the first-half variation pattern is determined at the timing of starting winning or variation start.
本テーブルを用いる図42の特図大当り判定処理は、遊技球が第1始動入賞口37又は普通変動入賞装置33の第2始動入賞口に入賞したときに実行される特図保留情報判定処理(図41)で対象の始動記憶の結果を先読みするために実行され、さらに、後述する特図1(特図2)変動開始処理(図46)でも実行される。
The special figure jackpot determination process of FIG. 42 using this table is a special figure holding information determination process executed when a game ball wins the first
これは、始動入賞時と変動開始時とでは、保留記憶数が異なったり、遊技状態が異なったりする。すなわち、始動入賞時と変動開始時とでは、図42の特図大当り判定処理における処理結果が異なる場合があり、選択される前半変動パターンも異なる場合がある。このため、始動入賞時及び変動開始時のどちらの場合に決定した前半変動パターン番号かが判別できるようにしている。 This is because the number of stored memories is different or the game state is different at the time of starting winning and at the start of variation. That is, the processing result in the special figure big hit determination process of FIG. 42 may be different between the start winning prize and the fluctuation start, and the selected first half fluctuation pattern may be different. Therefore, it is possible to determine whether the first half variation pattern number is determined at the time of starting winning or at the start of variation.
ここでは、始動入賞時に決定した前半変動パターン番号の頭文字を「A」とし、変動開始時に決定した前半変動パターン番号の頭文字を「B」とする。そして、「前半キャラクタA出現変動」の場合はE/Cに続く番号を「1h」とし、「前半キャラクタB出現変動」の場合は「2h」とし、「前半キャラクタなし変動」の場合は「3h」とし、「前半短縮変動」の場合は「4h」とする。このように、互いに共通するモジュールを用いる。 Here, the first letter of the first variation pattern number determined at the time of starting winning is “A”, and the first letter of the first variation pattern number determined at the start of fluctuation is “B”. In the case of “first character A appearance variation”, the number following E / C is “1h”, in the case of “first character B appearance variation”, it is “2h”, and in the case of “first character non-character variation”, “3h”. And “4h” in the case of “first half shortening fluctuation”. In this way, modules that are common to each other are used.
なお、図50で後述するが、本実施形態では、「前半キャラクタA出現変動」では「キャラクタA」が出現し、「前半キャラクタB出現変動」では「キャラクタB」が出現するようになっている。 As will be described later with reference to FIG. 50, in this embodiment, “Character A” appears in “First half character A appearance variation”, and “Character B” appears in “First half character B appearance variation”. .
次に、図45を参照して、図37の特図ゲーム処理における特図普段処理(3706)の詳細を説明する。図45は、本発明の第1の実施の形態の特図普段処理の手順を示すフローチャートである。 Next, with reference to FIG. 45, details of the special figure routine process (3706) in the special figure game process of FIG. 37 will be described. FIG. 45 is a flowchart showing the procedure of the special figure normal processing according to the first embodiment of this invention.
特図普段処理では、遊技制御装置100は、まず、保留された特図2始動記憶があるか否かを判定する(4500)。
In the special figure normal processing, the
特図2始動記憶がある場合には(4500の結果が「Y」)、遊技制御装置100は、特図2変動開始処理を実行し(4501)、その後、図37に示した特図ゲーム処理で特図変動中処理が実行されるように特図ゲーム処理番号を1に設定する(4504)。
If there is a special figure 2 start memory (the result of 4500 is “Y”), the
さらに、遊技制御装置100は、特図2変動開始処理によって算出され、決定した前半変動パターン及び後半変動パターンに対応する合計変動時間を特図ゲーム処理タイマに設定する処理を実行する(ステップ4505)。その後、特図普段処理を終了する。なお、ステップ4505の処理で変動時間が特図ゲーム処理タイマに設定されるので、変動時間が経過するまでは、図37の特図変動中処理(3707)は実行されない。
Further, the
一方、特図2始動記憶がない場合には(4500の結果が「N」)、遊技制御装置100は、保留された特図1始動記憶があるか否かを判定する(4502)。特図1始動記憶がある場合には(4502の結果が「N」)、遊技制御装置100は、特図1変動開始処理を実行する(4503)。その後、遊技制御装置100は、特図ゲーム処理番号を1に設定する処理を実行する(4504)。さらに、特図1変動開始処理で算出され、決定した変動時間を特図ゲーム処理タイマに設定する処理を実行し(4505)、特図普段処理を終了する。
On the other hand, when there is no special figure 2 start memory (the result of 4500 is “N”), the
特図1始動記憶がないと判定された場合には(4502の結果が「N」)、遊技制御装置100は、客待ちデモフラグの設定があるか否かを判定する(4506)。客待ちデモフラグの設定がある場合には(4506の結果が「Y」)、遊技制御装置100は特図普段処理を終了する。これに対して、客待ちデモフラグの設定がない場合には(4506の結果が「N」)、遊技制御装置100は、客待ちデモフラグをセットする処理を実行する(4507)。さらに、客待ちデモコマンドの設定を実行し(4508)、特図普段処理を終了する。
When it is determined that there is no special figure 1 start memory (the result of 4502 is “N”), the
なお、ステップ4507の処理でセットされた客待ちデモコマンドは、後に演出制御装置150に送信される。演出制御装置150は、この客待ちデモコマンドの受信に基づき、例えば表示装置8の表示部に客待ちデモ画像を表示する処理を実行する。
The customer waiting demonstration command set in the processing of
図45に示したように、本実施形態では、遊技制御装置100は、特図2始動記憶がある場合に当該特図2始動記憶に基づく特図2変動表示ゲームを、特図1始動記憶に基づく特図1変動表示ゲームよりも優先的に実行する。
As shown in FIG. 45, in this embodiment, the
次に、図46を参照して、図45の特図普段処理における特図1/特図2変動開始処理(ステップ4503、ステップ4501)の詳細を説明する。図46は、本発明の第1の実施の形態の特図1/特図2変動開始処理の手順を示すフローチャートである。
Next, the details of the special figure 1 / special figure 2 variation start process (
まず、特図1変動開始処理では、遊技制御装置100は、第1特図変動表示ゲームに関する各種乱数の保存領域(図16参照)のうち、次回の変動の対象となる領域、すなわち保留1個目に対応する保留乱数記憶領域を指定する(4600)。次に、ステップ4600の処理で指定した記憶領域から大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数を取得した後、保留1〜3個目に対応する保留乱数記憶領域に、保留2〜4個目に対応する保留乱数記憶領域(次回以降の変動に対応する記憶領域)の各乱数をシフトする(4601)。そして、特図1の保留数を1減算し(4602)、ステップ4606以降の処理を実行する。
First, in the special figure 1 fluctuation start process, the
次いで、遊技制御装置100は、ステップ4601の処理で取得した保留1個目の各種乱数を用いて、図42に示した特図大当り判定処理を実行する(4606)。次に、図42の特図大当り判定処理のステップ4209の処理において一時的に記憶した情報を用いて、演出制御装置150に送信する飾り図柄変動パターンコマンドを設定する(4607)。飾り図柄変動パターンコマンドは、表示装置8で実行される飾り特図変動表示ゲームの内容を決めるコマンドである。
Next, the
さらに、遊技制御装置100は、保留情報コマンドを設定する(4608)。前述したように、保留情報コマンドは特図1又は特図2の保留数を通知するコマンドであり、ここでは、特図1又は特図2のうち、変動対象の特図の保留数を設定する。そして、ステップ4609において図45の特図普段処理のステップ4505の処理で設定した、決定した変動パターンに対応する変動時間を取得し(4609)、その後、特図1変動開始処理を終了する。
Further, the
同様に、特図2変動開始処理では、遊技制御装置100は、前述の特図1変動開始処理のステップ4600〜4602の処理に対応してステップ4603〜4605の処理を実行する。
Similarly, in the special figure 2 fluctuation start process, the
遊技制御装置100は、第2特図変動表示ゲームに関する各種乱数の保存領域(図17参照)のうち、次回の変動の対象となる領域、すなわち保留1個目に対応する保留乱数記憶領域を指定する(4603)。次に、ステップ4603の処理で指定した記憶領域から大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数を取得した後、保留1〜3個目に対応する保留乱数記憶領域に、保留2〜4個目に対応する保留乱数記憶領域(次回以降の変動に対応する記憶領域)の各乱数をシフトする(4604)。そして、特図2の保留数を1減算して(4605)、ステップ4606以降の処理を実行する。
The
なお、ステップ4606では、ステップ4604の処理で取得した保留1個目の各種乱数を用いて、図42に示した特図大当り判定処理を実行することになる。
In
このように、特図1又は特図2の変動が開始されるときにも特図大当り判定処理が実行されることで、飾り特図変動表示ゲームの表示内容が決定される。 As described above, the special contents big hit determination process is executed even when the fluctuation of the special figure 1 or the special figure 2 is started, thereby determining the display content of the decoration special figure fluctuation display game.
図47A及び図47Bは、本発明の第1の実施の形態における始動記憶をシフトさせる処理のプログラムの一例を示す図である。図47A及び図47Bに示すプログラムは、図46のステップ4601の処理に対応する。図47AはKレジスタを利用してプログラムのコード量を削減したプログラムであって、図47BはKレジスタを利用しないプログラムである。
47A and 47B are diagrams illustrating an example of a program for processing for shifting the start-up memory according to the first embodiment of this invention. The programs shown in FIGS. 47A and 47B correspond to the process of
図47Aを参照すると、まず、行4701に示すように、Kレジスタに「28H」を設定し、その後、行4702に示すように、LDK命令によって指定された下位アドレスとKレジスタに設定された上位アドレスとを組み合わせたアドレスにアクセスする。このように、CPUコア102はKレジスタに固有の上位アドレスを設定する固有値設定手段をなす。
Referring to FIG. 47A, first, as shown in
前述のように、保留2に対応する始動記憶を保留1に対応する領域にシフトする場合には、図16に示したように、保留2に対応する始動記憶のアドレス「2838H」〜「283FH」に格納されたデータを、保留1に対応する始動記憶にアドレス「2830H」〜「2837H」に移動させる。行4702では、アドレス2838Hに格納されたデータをAレジスタに格納し、行4703でAレジスタに格納されたデータをアドレス2830Hに格納することによってデータを移動させている。同様に、「2839H」〜「283FH」に格納されたデータを、「2831H」〜「2837H」に移動させることによって保留2に対応する始動記憶を保留1に対応する領域にシフトさせる。
As described above, when the start memory corresponding to the
なお、保留3に対応する始動記憶を保留2に対応する始動記憶にシフトさせる処理、及び保留4に対応する始動記憶を保留3に対応する始動記憶にシフトさせる処理も、図に示すように、後半のプログラムによって実行される。
The process of shifting the start memory corresponding to the
図47Bは、図47Aと同様に、始動記憶の消化にともなって、始動記憶をシフトさせる処理のプログラムを示しており、図47Aのプログラムを実行した場合と同じ処理が実行される。しかしながら、図47Bに示すプログラムでは、2バイトのアドレスを直接指定している(例えば、行4722の「2838H」)。 FIG. 47B shows a processing program for shifting the start memory as the start memory is digested, as in FIG. 47A, and the same processing as when the program of FIG. 47A is executed is executed. However, in the program shown in FIG. 47B, a 2-byte address is directly specified (for example, “2838H” in line 4722).
以上のように、図47Aに示すプログラムでは、始動記憶が格納された領域のアドレスを指定するために1バイトの下位アドレスのみを指定すればよい(4710)。これに対し、図47Bに示すプログラムでは、アドレスの指定に2バイトの容量を要し(4730)、図47Aに示したプログラムよりも多くの容量を必要とする。したがって、始動記憶を格納する領域のように、連続した領域にデータを格納し、これらのデータにアクセスする場合には、図47Aに示したプログラムのように、上位アドレスをKレジスタに予め保持してデータにアクセスするようにすることによってプログラムの容量を削減することができる。 As described above, in the program shown in FIG. 47A, only the lower address of 1 byte needs to be specified in order to specify the address of the area where the start memory is stored (4710). On the other hand, the program shown in FIG. 47B requires a 2-byte capacity for address designation (4730), and requires more capacity than the program shown in FIG. 47A. Therefore, when data is stored in a continuous area like the area for storing the start memory and accessed, the upper address is held in the K register in advance as in the program shown in FIG. 47A. Thus, the capacity of the program can be reduced by accessing the data.
また、前述のように、Kレジスタ(上位アドレス指定レジスタ)に固有のアドレス値(上位アドレス、例えば、「28H」)を予め設定しておくことによって、その後、下位アドレスのみ指定すれば所定の領域にアクセスできるため、CPUコア(演算処理手段)102の処理負担を軽減することもできる。 In addition, as described above, a specific address value (upper address, for example, “28H”) is set in advance in the K register (upper address specifying register). Therefore, the processing load on the CPU core (arithmetic processing means) 102 can be reduced.
図48は、本発明の第1の実施の形態のサブルーチン(サブモジュール)を構成するプログラムの一例を示す図である。(A)及び(B)は、プログラム中に記述されたサブルーチン呼び出しの命令(CALL命令又はRST命令)を実行した際に呼び出されるサブルーチンの一例を示している。これに対して(C)は、割込信号の発生により呼び出されるサブルーチンの一例を示している。 FIG. 48 is a diagram illustrating an example of a program configuring a subroutine (submodule) according to the first embodiment of this invention. (A) and (B) show an example of a subroutine called when a subroutine calling instruction (CALL instruction or RST instruction) described in the program is executed. On the other hand, (C) shows an example of a subroutine called by the generation of an interrupt signal.
まず(A)は、呼出元のルーチンで格納されたフラグレジスタの値が、呼出先のサブルーチンにおける処理過程で書き換えられないように構成したプログラムの例である。このサブルーチンは、5200Hのアドレスから処理を開始する例となっており、最初に「PUSH FLG」の命令を実行することで、フラグレジスタの値をスタック領域に退避している(行4811)。 First, (A) is an example of a program configured such that the value of the flag register stored in the call source routine is not rewritten in the process of the call destination subroutine. This subroutine is an example of starting processing from an address of 5200H, and by first executing the instruction “PUSH FLG”, the value of the flag register is saved in the stack area (line 4811).
なお、呼出元のルーチンで格納されたフラグレジスタ以外のレジスタであっても、サブルーチン内で書き換えられないように構成する場合は、「PUSH」命令を用いて、該当するレジスタをスタック領域に退避することができる。例えば、行4812に示すように、「PUSH HL」の命令を実行することで、HLレジスタの値をスタック領域に退避することができる。
Note that even if a register other than the flag register stored in the call source routine is configured so that it cannot be rewritten in the subroutine, the corresponding register is saved in the stack area using the “PUSH” instruction. be able to. For example, as shown in
そして、サブルーチンに記述された一連のプログラムを実行終了した場合は、「POP」命令を実行して、スタック領域に退避しておいたHLレジスタ及びフラグレジスタの値を復帰させてから(行4813、4814)、「RET」命令を実行して呼出元の処理に戻るようになっている(行4815)。
When the execution of the series of programs described in the subroutine is finished, the “POP” instruction is executed to restore the values of the HL register and flag register saved in the stack area (
一方(B)は、サブルーチンにおける処理過程にて演算結果をフラグレジスタに設定し、そのフラグレジスタの値を呼出元のルーチンに返すプログラムの一例である。このサブルーチンは、5100Hのアドレスから処理を開始する例となっており、(A)のように「PUSH」「POP」命令を用いて、フラグレジスタの値をスタック領域に出し入れするような処理を行っていない。 On the other hand, (B) is an example of a program that sets an operation result in the flag register in the process of the subroutine and returns the value of the flag register to the calling routine. This subroutine is an example of starting processing from an address of 5100H. As shown in (A), using the “PUSH” and “POP” instructions, processing is performed such that the value of the flag register is put into and out of the stack area. Not.
そして、サブルーチンに記述された一連のプログラムを実行終了した場合は、AレジスタとEレジスタの値の論理和を演算することでフラグレジスタに演算結果が設定され(行4821)、さらに、Dレジスタの値をAレジスタにロードしてから(行4822)、「RET」命令を実行して呼出元に戻るようになっている(行4823)。 When the execution of a series of programs described in the subroutine is completed, the operation result is set in the flag register by calculating the logical sum of the values of the A register and the E register (line 4821). After the value is loaded into the A register (line 4822), the "RET" instruction is executed to return to the caller (line 4823).
この(B)のようなサブルーチンの構成は、サブルーチン内で所定の演算を実行するとともに、その演算結果をフラグレジスタに格納し、さらに格納されたフラグレジスタの値が呼出元のルーチンに戻されてからも活用されるような場合に適している。そのため、呼び出されるサブルーチンのプログラムには、フラグレジスタの値をスタック領域に出し入れする「PUSH」「POP」命令が記述されていない。 The structure of the subroutine as shown in (B) executes a predetermined operation in the subroutine, stores the operation result in the flag register, and returns the stored flag register value to the calling source routine. It is suitable for the case where it is used from the beginning. Therefore, the “PUSH” and “POP” instructions for loading / unloading the value of the flag register into / from the stack area are not described in the subroutine program to be called.
このようなサブルーチンの構成は、予め共通化した処理を遊技制御プログラムの様々な箇所で実行させる場合に適しており、共通化した処理のブロックを予めサブルーチンとしてプログラム中に配置しておいて、呼出元となるプログラムでCALL命令(又はRST命令)を実行することで実現できる。 Such a subroutine configuration is suitable for executing a common process in various places in the game control program. The common process block is arranged in the program as a subroutine in advance and called. This can be realized by executing a CALL instruction (or RST instruction) in the original program.
ただし、プログラム製作者の立場を考慮すると、(A)のようにサブルーチンで用いたフラグレジスタと呼出元ルーチンで用いるフラグレジスタとを別個のものとして扱いたい場合もあれば、(B)のようにサブルーチンで用いたフラグレジスタと呼出元ルーチンで用いるフラグレジスタとを同一のものとして扱いたい場合もある。 However, considering the position of the program producer, there are cases where the flag register used in the subroutine and the flag register used in the caller routine are to be handled separately as in (A), as in (B). In some cases, it is desirable to treat the flag register used in the subroutine and the flag register used in the call source routine as the same.
そのため、サブルーチンを呼び出す目的に応じて、フラグレジスタの値を退避させるか否かの選択を行う必要がある。従って、サブルーチンを構成するプログラムに「PUSH」「POP」命令を記述するか否かによって、フラグレジスタをスタック領域に出し入れするか否かを選択できるように構成しておくことが好ましいことになる。 Therefore, it is necessary to select whether to save the value of the flag register according to the purpose of calling the subroutine. Therefore, it is preferable that the flag register is selected so as to be taken into or out of the stack area depending on whether or not the “PUSH” and “POP” instructions are described in the program constituting the subroutine.
一方(C)は、タイマ割込などの割込信号で呼び出されるサブルーチン(割込処理)を構成したプログラムの例である。このサブルーチンが呼び出されると、図19(D)に示すように、「PUSH」命令を実行しなくてもフラグレジスタの値がスタック領域に退避される。このとき、呼出元ルーチンで使用していたレジスタ群のバンクが0(表レジスタ)であれば、フラグレジスタのRBSのビットは「0」となっている。 On the other hand, (C) is an example of a program that constitutes a subroutine (interrupt processing) called by an interrupt signal such as a timer interrupt. When this subroutine is called, as shown in FIG. 19D, the value of the flag register is saved in the stack area without executing the “PUSH” instruction. At this time, if the bank of the register group used in the call source routine is 0 (table register), the RBS bit of the flag register is “0”.
なお、このサブルーチンは、呼出元ルーチンで実行中の処理を任意のタイミングで中断して実行されるため、呼び出されたサブルーチンで用いられるフラグレジスタの値と、呼出元のルーチンで使用しているフラグレジスタの値には相関がない。そのため、呼出元のルーチンで使用しているフラグレジスタの値が、割込処理のサブルーチン内で変更されると、処理結果が予期しないものとなる。 Since this subroutine is executed by interrupting the processing being executed in the calling source routine at an arbitrary timing, the value of the flag register used in the called subroutine and the flag used in the calling source routine There is no correlation between register values. For this reason, if the value of the flag register used in the calling source routine is changed in the interrupt processing subroutine, the processing result becomes unexpected.
それ故に、割込処理のサブルーチンが呼び出されたときは、例外なくフラグレジスタの値をスタック領域に退避させる必要がある。(C)の構成であれば、フラグレジスタの値をスタック領域に退避させる「PUSH」命令のコードが不要となるので、割込処理のサブルーチンを記述するプログラムのコード量を削減することができる。 Therefore, when the interrupt processing subroutine is called, it is necessary to save the value of the flag register to the stack area without exception. With the configuration of (C), the code of the “PUSH” instruction that saves the value of the flag register in the stack area becomes unnecessary, so that the code amount of the program describing the interrupt processing subroutine can be reduced.
ちなみに(C)の割込処理のサブルーチンは、5300Hのアドレスから処理を開始する例となっている。そして、行4831の「LD RBS,1」を実行すると、フラグレジスタのRBSのビットが「1」となる。これにより、使用可能なレジスタ群が、呼出元ルーチンで使用していたバンク0(表レジスタ)から、バンク1(裏レジスタ)に切り替えられる。このとき、バンク0のレジスタ群の各レジスタに格納された値はそのまま保持され、割込処理のサブルーチンでは、バンク1のレジスタ群のレジスタを用いて実行される。
Incidentally, the interrupt processing subroutine (C) is an example in which processing is started from an address of 5300H. When “LD RBS, 1” in
さらに、割込処理のサブルーチンの最後で「RETI」を実行することによって、呼出元の処理に戻るようになっている(行4832)。このとき、スタック領域に退避してあったフラグレジスタの値が復帰することで、フラグレジスタのRBSのビットが「0」に復帰し、以降使用されるレジスタ群のバンクが0に戻される。 Furthermore, by executing “RETI” at the end of the interrupt processing subroutine, the processing returns to the calling source processing (line 4832). At this time, the value of the flag register saved in the stack area is restored, so that the RBS bit of the flag register is restored to “0”, and the bank of the register group used thereafter is restored to 0.
なお(A)のサブルーチンにおいて、使用可能なレジスタ群をバンク1(裏レジスタ)に切り替える場合は、行4811の「PUSH FLG」を実行した後に、「LD RBS,1」の命令を実行すればよい。これにより、フラグレジスタのRBSのビットが「1」となり、使用可能なレジスタ群が、呼出元ルーチンで使用していたバンク0(表レジスタ)から、バンク1(裏レジスタ)に切り替わる。この場合は、行4814の「POP FLG」を実行することで、フラグレジスタのRBSのビットを「0」に復帰させ、呼出元の処理に戻る直前にレジスタ群のバンクを0に戻すことになる。
In the subroutine (A), when the usable register group is switched to the bank 1 (back register), after executing “PUSH FLG” in the
また(B)のサブルーチンにおいて、使用可能なレジスタ群をバンク1(裏レジスタ)に切り替える場合は、プログラム中で「LD RBS,1」の命令を実行すればよいが、呼出元ルーチンに戻る直前で「LD RBS,0」の命令を実行しておく必要がある。 In the subroutine (B), when the usable register group is switched to the bank 1 (back register), the instruction “LD RBS, 1” may be executed in the program, but immediately before returning to the calling routine. The instruction “LD RBS, 0” needs to be executed.
以上、図48の(A)〜(C)に示したように、本実施形態では、呼出元のルーチンで、プログラム中に記述されたサブルーチン呼び出しの命令(CALL命令又はRST命令)を実行した場合や、割込信号が発生した場合には、サブルーチンが呼び出され、その際に、呼出元のルーチンに含まれる戻りアドレスの値をスタック領域に格納する構成となっている。 As described above, as shown in FIGS. 48A to 48C, in this embodiment, a subroutine call instruction (CALL instruction or RST instruction) described in the program is executed in the call source routine. When an interrupt signal is generated, a subroutine is called, and at this time, the return address value included in the calling source routine is stored in the stack area.
この場合において、割込信号は呼出元のルーチンの実行中のアドレスとは無関係に発生するものであるので、(C)に示すような割込処理のサブルーチンを呼び出す際は、割込信号が発生した時点におけるフラグレジスタ1200の値は、呼出先のルーチンの処理中で破壊されないように、スタック領域に退避しておくことが好ましい。
In this case, since the interrupt signal is generated regardless of the address under execution of the calling source routine, an interrupt signal is generated when calling the interrupt processing subroutine as shown in (C). It is preferable to save the value of the
そのため、図19の(D)に示すように、呼出元のルーチンに含まれる戻りアドレスの値だけでなく、フラグレジスタ1200の値もスタック領域に格納して、呼出先の処理に移行させる構成となっている。これにより、呼出先のルーチンのプログラム中にフラグレジスタをスタック領域に格納するための命令(「PUSH FLG」)を記述しなくても、フラグレジスタの値が自動的にスタック領域に格納されるため、プログラムのコード量を節約することができる。
Therefore, as shown in FIG. 19D, not only the return address value included in the call source routine, but also the value of the
これに対して、呼出元のルーチンに記述されたCALL命令等の呼出の命令を実行する場合は、(A)に示すように、呼出元のルーチンで設定されたフラグレジスタ1200の値を呼出先のルーチンの処理中で破壊しないように構成すべき場合もある一方で、(B)に示すように、呼出先のルーチンの処理中で設定されたフラグレジスタ1200の値を、呼出元のルーチンに戻して演算に利用することもあり得る。つまり、呼出元のルーチンで設定されたフラグレジスタ1200の値をスタック領域に退避すべきか否かはケースバイケースである。
On the other hand, when a call instruction such as a CALL instruction described in the call source routine is executed, the value of the
そのため、図19の(C)に示すように、呼出元のルーチンに含まれる戻りアドレスの値のみを格納して、フラグレジスタ1200の値はスタック領域に格納しない状態で、呼出先の処理に移行させる構成となっている。そして、呼出先のルーチンのプログラム中に、プログラム中にフラグレジスタ1200の値をスタック領域に格納する命令(例えば、「PUSH FLG」)を記述するか否かにより、値を退避するか否かが選択できる構成となっている。
For this reason, as shown in FIG. 19C, only the return address value included in the call source routine is stored, and the value of the
さらに、図48の(A)〜(C)に示したように、本実施形態では、汎用レジスタのバンクを切り変える機能を有しているので、呼出先のルーチン内でバンクを切り替えることにより、呼出元とは異なるレジスタを活用することができる。 Further, as shown in FIGS. 48A to 48C, in the present embodiment, since it has a function of switching the bank of general-purpose registers, by switching the bank in the call destination routine, A register different from the caller can be used.
特に(C)に示した割込処理のサブルーチンでは、フラグレジスタの値を復帰させる命令を実行しなくても、処理の最後で「RETI」を実行することによって、スタック領域に退避してあったフラグレジスタの値が自動的に復帰する構成となっている。そのため、サブルーチン内で、フラグレジスタの値を復帰させる命令を実行しなくても、呼出元ルーチンに戻るときにバンクを戻すことが出来るので、よりプログラムのコード量を節約できるようになっている。 In particular, in the interrupt processing subroutine shown in (C), even if an instruction for restoring the value of the flag register is not executed, “RETI” is executed at the end of the processing to save the stack area. The flag register value is automatically restored. Therefore, it is possible to return the bank when returning to the call source routine without executing an instruction for restoring the value of the flag register in the subroutine, so that the code amount of the program can be further saved.
図49及び図50は、本発明の第1の実施の形態において、表示装置8で実行される飾り特図変動表示ゲームの画面遷移を説明する図である。
FIG. 49 and FIG. 50 are diagrams for explaining screen transitions in the decorative special figure variation display game executed on the
画面(a)は変動開始前の状態を示し、始動記憶が消化されると、画面(b)に示すように、図柄表示領域4910にて各識別図柄が変動を開始する。なお、図柄表示領域4910の下方には第1記憶表示部4920と第2記憶表示部4930とが設定される。これらの各記憶表示部には、保留記憶があることを示すマーク(通常の保留記憶表示)4940と、保留記憶がないことを示すマーク4950が表示される。その後、画面(c)に示すように、左図柄、右図柄の順に識別図柄の変動が停止され、最終的には中図柄の変動が停止して、画面(d)に示すように変動停止した状態となる。
Screen (a) shows the state before the start of variation, and when the start-up memory is exhausted, as shown in screen (b), each identification symbol starts to vary in
このとき、左図柄と右図柄が同一の図柄で停止した場合には、画面(e)に示すようにリーチ状態となり、その後、中図柄の変動が継続される。そして、変動表示ゲームの結果がはずれの場合には、画面(f)に示すように、左右の識別図柄とは異なる図柄で中図柄が停止する。また、変動表示ゲームの結果が大当りとなる場合には、画面(g)に示すように、左右の識別図柄と同じ識別図柄で中図柄が停止する。変動表示ゲームで大当りとなると、前述したように特別遊技状態に遷移し、遊技者は多くの遊技価値を得ることが可能となる。 At this time, when the left symbol and the right symbol are stopped at the same symbol, the reach state is reached as shown in the screen (e), and then the variation of the middle symbol is continued. If the result of the variable display game is out of place, as shown in the screen (f), the middle symbol stops with a symbol different from the left and right identification symbols. Further, when the result of the variable display game is a big hit, as shown in the screen (g), the middle symbol stops at the same identification symbol as the left and right identification symbols. When a big win is obtained in the variable display game, as described above, a transition is made to the special game state, and the player can obtain a lot of game values.
また、画面(e)で示したリーチは、通常のリーチであるが、画面(e)の代わり又は画面(e)に示したリーチの後に、画面(h)に示すように、中図柄が回転して表示されるスーパー(SP)リーチが発生する場合がある。SPリーチが発生する場合には、通常のリーチと比較して変動表示ゲームの結果が大当りとなる確率が大きくなるように設定されている。 In addition, the reach shown on the screen (e) is a normal reach. However, instead of the screen (e) or after the reach shown on the screen (e), the middle symbol is rotated as shown on the screen (h). Super (SP) reach may be generated. When the SP reach occurs, the probability that the result of the variable display game is a big hit is set to be larger than that of the normal reach.
また、画面(i)は、変動開始後の状態を示しているが、始動記憶のうちの一つに対して先読み報知が実行されている。具体的には、始動入賞時に設定された前半変動パターン番号がキャラクタA又はキャラクタBが出現する前半変動を行うものであった場合に、先読み報知が実行される。このとき、記憶表示部にて、通常の保留記憶表示4940とは表示態様が異なる特定の保留記憶表示5010が表示されることで、先読みの報知が行われる。
Moreover, although the screen (i) shows the state after the start of fluctuation, the prefetch notification is executed for one of the start memories. Specifically, the prefetch notification is executed when the first half variation pattern number set at the time of starting winning is for performing the first half variation in which the character A or the character B appears. At this time, the pre-read notification is performed by displaying a specific
その後、始動記憶が消化され(画面(j))、先読み報知がなされた始動記憶に基づく変動表示ゲームが開始されると(画面(k))、キャラクタが出現する予告演出が実行される(画面(l)、画面(m))。 After that, when the start memory is digested (screen (j)) and the variable display game based on the start memory for which the pre-read notification has been made is started (screen (k)), a notice effect in which the character appears is executed (screen). (L), screen (m)).
画面(l)ではキャラクタA(第1のキャラクタ)5020が出現し、画面(m)ではキャラクタB(第2のキャラクタ)5030が出現している。これらのキャラクタAとBは、互いに表示態様が異なるものが好ましい。ただし、互いに表示態様が同じものであっても、出現するキャラクタの大きさ、出現数、移動速度などをキャラクタAとBとで各々異ならせるようにして、遊技者に各々が区別できるようにしているものであれば、特に限定はされない。 A character A (first character) 5020 appears on the screen (l), and a character B (second character) 5030 appears on the screen (m). These characters A and B preferably have different display modes. However, even if the display modes are the same, the size, number of appearances, moving speed, etc. of the appearing characters are made different between the characters A and B so that the player can distinguish them. If it is, it will not be specifically limited.
本実施形態では、前半変動(一部の識別図柄の変動が停止してリーチ状態が発生する前の状態)でキャラクタが出現するようになっている。その後、左右の識別図柄が停止し、リーチ状態が発生する(画面(n))。このとき、スーパーリーチ若しくは通常のリーチが発生する。なお、このリーチ状態のときに、前述のキャラクタが出現するようにしてもよい。 In the present embodiment, the character appears in the first half of the change (a state before the change of some of the identification symbols stops and the reach state occurs). Thereafter, the left and right identification symbols are stopped, and a reach state is generated (screen (n)). At this time, super reach or normal reach occurs. Note that the character described above may appear in this reach state.
なお、本実施形態では、入賞口SW監視処理(図29のステップ2917)において、普図始動SW31Aによる遊技球の検出があったときに、普図乱数カウンタ値(図15の普図乱数生成領域)の値を普図始動入賞記憶領域(図15)に記憶しているが、普図変動表示ゲームに関する乱数であれば、別の乱数を記憶するようにしてもよい。例えば、乱数生成回路608にて普図変動表示ゲームに関する乱数を生成(ハード乱数を生成)しておき、普図始動SW31Aによる遊技球の検出があったときに、この生成した乱数を普図始動入賞記憶領域(図15)に記憶するようにしてもよい。
In the present embodiment, in the winning opening SW monitoring process (
また、本実施形態では、特図始動口SW共通処理(図40)のステップ4004〜4006の処理において、図15に示される大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数の各生成領域から乱数値を取得しているが、特図変動表示ゲームに関する乱数であれば、別の乱数を取得するようにしてもよい。例えば、乱数生成回路608にて、大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数の全部又は一部を生成(ハード乱数を生成)しておき、ステップ4004〜4006の処理の実行時に、この生成した乱数を取得するようにしてもよい。
Further, in the present embodiment, each of the big hit random numbers, big hit symbol random numbers, and first to third variation pattern random numbers shown in FIG. 15 is generated in the processing of
ここで、本実施形態において、割込み処理が呼び出された場合に、スタック領域に、フラグレジスタの値と、戻りアドレス値が格納される順序について説明する。 Here, in this embodiment, the order in which the value of the flag register and the return address value are stored in the stack area when an interrupt process is called will be described.
まず、図51Aは、本発明の第1の実施の形態とは対照的に、割込み処理が呼び出された場合に、先に戻りアドレス値をスタック領域に格納し、その後、フラグレジスタの値をスタック領域に格納することを仮定した場合の図である。この図51Aの(A)〜(C)により、割込み処理ルーチンの実行過程において、スタック領域に退避されたデータがどのように変化するかを説明する。 First, in contrast to the first embodiment of the present invention, FIG. 51A shows that when an interrupt process is called, the return address value is first stored in the stack area, and then the value of the flag register is stacked. It is a figure at the time of assuming storing in an area | region. With reference to (A) to (C) of FIG. 51A, how the data saved in the stack area changes during the execution of the interrupt processing routine will be described.
なお、図51Aの「FLG」は1バイトのフラグレジスタの値を示している。また、「ADR_H」は戻りアドレスの上位バイトの値を示し、「ADR_L」は戻りアドレスの下位バイトの値を示しており、「ADR_H」と「ADR_L」を組み合わせることで、2バイトの戻りアドレス値が構成される。 Note that “FLG” in FIG. 51A indicates the value of the 1-byte flag register. “ADR_H” indicates the value of the upper byte of the return address, “ADR_L” indicates the value of the lower byte of the return address, and the return address value of 2 bytes is obtained by combining “ADR_H” and “ADR_L”. Is configured.
まず、図51Aの(A)は、割込み処理が発生して、戻りアドレス値及びフラグレジスタの値が、スタック領域に格納された直後の状態である。次いで、割込み処理ルーチン内で「PUSH」や「CALL」の命令が実行されると、図51Aの(B)に示すように、スタック領域に別の退避データが蓄積される。 First, FIG. 51A (A) shows a state immediately after an interrupt process occurs and the return address value and the flag register value are stored in the stack area. Next, when a “PUSH” or “CALL” instruction is executed in the interrupt processing routine, another save data is accumulated in the stack area as shown in FIG. 51A (B).
次いで、以降の割込み処理ルーチン内で「POP」命令等が実行されると、蓄積された退避データが徐々に復帰し、割込み処理ルーチンの最後の段階になると図51Aの(A)の状態に戻ることになる。そして、割込み処理ルーチンの最後で「RETI」命令を実行すると、スタック領域から「FLG」の値がフラグレジスタに復帰して格納されるともに、「ADR_H」と「ADR_L」の戻りアドレス値が復帰してプログラムカウンタに格納されることで、割込信号が発生した時点に対応する呼出元ルーチンのアドレスに処理が移り、以降の処理を継続することになる。 Next, when a “POP” instruction or the like is executed in the subsequent interrupt processing routine, the stored saved data is gradually restored, and when the final stage of the interrupt processing routine is reached, the state returns to the state of FIG. 51A (A). It will be. When the “RETI” instruction is executed at the end of the interrupt processing routine, the value of “FLG” is returned from the stack area to the flag register and stored, and the return address values of “ADR_H” and “ADR_L” are restored. By storing in the program counter, the process moves to the address of the call source routine corresponding to the time when the interrupt signal is generated, and the subsequent processes are continued.
なお、「RETI」命令が実行されるまでは、この割込み処理ルーチンの実行中でのスタックポインタの値は、フラグレジスタの値が格納されている領域のアドレス(図では29F9H)よりも、常に小さな値(2980H〜29F8H)の範囲で増減する。 Until the “RETI” instruction is executed, the value of the stack pointer during execution of this interrupt processing routine is always smaller than the address (29F9H in the figure) of the area where the value of the flag register is stored. Increase or decrease within the range of values (2980H to 29F8H).
ただし、割込み処理ルーチンのプログラムにバグ等があるときは、スタックポインタの値が想定している範囲を外れてしまう恐れがある。例えば「POP」命令が、プログラム開発者が意図している回数よりも1回だけ余分に実行されると、スタックポインタの値が、フラグレジスタの値が格納されている領域のアドレス(29F9H)を一時的に指し示してしまうことになる。そして、この状態で「PUSH」命令を1回だけ実行すると、29F9Hのアドレスに退避されている「FLG」の値に、別の値が上書きされてしまうことになる。 However, if there is a bug in the interrupt processing routine program, the stack pointer value may fall outside the expected range. For example, if the “POP” instruction is executed once more than the number intended by the program developer, the value of the stack pointer is set to the address (29F9H) of the area where the value of the flag register is stored. It will point temporarily. If the “PUSH” instruction is executed only once in this state, another value is overwritten on the value of “FLG” saved at the address 29F9H.
このようなバグが存在する場合は、割込み処理ルーチンの最後で「RETI」命令を実行する段階になったとき、図51Aの(C)に示すように、29FAH〜29FBHのアドレスに退避された「ADR_H」と「ADR_L」を書き換えることなく、29F9Hのアドレスに退避された「FLG」のみを異常な値に書き換えるという状態が発生する恐れがある。 When such a bug exists, when the “RETI” instruction is executed at the end of the interrupt processing routine, as shown in (C) of FIG. 51A, the “evacuated” addresses 29FAH to 29FBH are saved. There is a possibility that only “FLG” saved in the address 29F9H is rewritten to an abnormal value without rewriting “ADR_H” and “ADR_L”.
この場合、復帰後のフラグレジスタに格納される値が異常値になっているため、以降の処理が正常に動作せずに障害が発生することが考えられる。しかしながら、プログラムカウンタに復帰する戻りアドレス値(「ADR_H」と「ADR_L」)は正常な値であるので、割込み処理ルーチンの最後で「RETI」命令を実行すると、プログラムが暴走することなく呼出元のルーチンに戻って処理を継続することになる。 In this case, since the value stored in the flag register after the return is an abnormal value, it is considered that the subsequent processing does not operate normally and a failure occurs. However, since the return address values ("ADR_H" and "ADR_L") that return to the program counter are normal values, if the "RETI" instruction is executed at the end of the interrupt processing routine, the program does not run out of control. Return to the routine and continue processing.
そのため、遊技機の開発期間中では、開発者がプログラム中のバグの存在に気づかない可能性がある。仮に、障害の発生に気づいても、プログラムが暴走しない可能性が高いが故に、障害の発生要因を特定することが困難になるおそれがある。 Therefore, during the game machine development period, the developer may not be aware of the presence of bugs in the program. Even if the occurrence of a failure is noticed, there is a high possibility that the program will not run out of control, so it may be difficult to identify the cause of the failure.
一方、図51Bは、本発明の第1の実施の形態と同様に、割込み処理が呼び出された場合に、先にフラグレジスタの値をスタック領域に格納し、その後、戻りアドレス値をスタック領域に格納した場合の図である。この図51Bの(A)〜(C)により、割込み処理ルーチンの実行過程において、スタック領域に退避されたデータがどのように変化するかを説明する。なお、図51Bの「FLG」、「ADR_H」、「ADR_L」も、図51Aと同様の構成である。 On the other hand, FIG. 51B shows that the flag register value is first stored in the stack area when the interrupt processing is called, and then the return address value is stored in the stack area, as in the first embodiment of the present invention. It is a figure at the time of storing. With reference to (A) to (C) of FIG. 51B, how the data saved in the stack area changes during the execution of the interrupt processing routine will be described. Note that “FLG”, “ADR_H”, and “ADR_L” in FIG. 51B have the same configuration as in FIG. 51A.
まず、図51Bの(A)は、割込み処理が発生して、戻りアドレス値及びフラグレジスタの値が、スタック領域に格納された直後の状態である。次いで、割込み処理ルーチン内で「PUSH」や「CALL」の命令を実行すると、図51Bの(B)に示すように、スタック領域に別の退避データが蓄積される。 First, (A) of FIG. 51B shows a state immediately after an interrupt process occurs and the return address value and the flag register value are stored in the stack area. Next, when a “PUSH” or “CALL” instruction is executed in the interrupt processing routine, another save data is accumulated in the stack area as shown in FIG. 51B (B).
次いで、以降の割込み処理ルーチン内で「POP」命令等が実行されると、蓄積された退避データが徐々に復帰し、割込み処理ルーチンの最後の段階になると図51Bの(A)の状態に戻ることになる。そして、割込み処理ルーチンの最後で「RETI」命令を実行すると、スタック領域から「FLG」の値がフラグレジスタに復帰して格納されるともに、「ADR_H」と「ADR_L」の戻りアドレス値が復帰してプログラムカウンタに格納されることで、割込信号が発生した時点に対応する呼出元ルーチンのアドレスに処理が移り、以降の処理を継続することになる。 Next, when the “POP” instruction or the like is executed in the subsequent interrupt processing routine, the stored saved data is gradually restored, and when the final stage of the interrupt processing routine is reached, the state returns to the state shown in FIG. 51B (A). It will be. When the “RETI” instruction is executed at the end of the interrupt processing routine, the value of “FLG” is returned from the stack area to the flag register and stored, and the return address values of “ADR_H” and “ADR_L” are restored. By storing in the program counter, the process moves to the address of the call source routine corresponding to the time when the interrupt signal is generated, and the subsequent processes are continued.
なお、「RETI」命令が実行されるまでは、この割込み処理ルーチンの実行中でのスタックポインタの値は、戻りアドレス値が格納されている領域のアドレス(図では29F9H)よりも、常に小さな値(2980H〜29F8H)の範囲で増減する。 Until the “RETI” instruction is executed, the value of the stack pointer during execution of this interrupt processing routine is always smaller than the address (29F9H in the figure) of the area where the return address value is stored. Increase or decrease within the range of (2980H to 29F8H).
このとき、前述の図51Aと同様に、割込み処理ルーチンのプログラムにバグ等があると、スタックポインタの値が想定している範囲を外れてしまう恐れがある。この場合、スタック領域に待避されている「ADR_L」、「ADR_H」、「FLG」などの値が別の値が上書きされてしまう恐れがあり、割込み処理ルーチンの最後で「RETI」命令を実行したときに、フラグレジスタの値が正常に復帰しなくなってしまう。 At this time, as in FIG. 51A described above, if there is a bug or the like in the interrupt processing routine program, the value of the stack pointer may deviate from the expected range. In this case, values such as “ADR_L”, “ADR_H”, and “FLG” saved in the stack area may be overwritten with another value, and the “RETI” instruction is executed at the end of the interrupt processing routine. Sometimes, the value of the flag register does not return to normal.
しかしながら、前述の図51Aとは異なり、図51Bの構成であれば、スタック領域に退避された「ADR_H」と「ADR_L」の値を書き換えずに、スタック領域に退避された「FLG」のみを書き換えることは、あり得ない。その理由は、図51Bの(C)に示すように、スタック領域へのデータの出し入れの順序に特徴があるが故に、「FLG」が異常値に書き換えられるときには、その上方に待避されている「ADR_H」と「ADR_L」の値も、書き換えられていると考えられるからである。 However, unlike FIG. 51A described above, the configuration of FIG. 51B rewrites only “FLG” saved in the stack area without rewriting the values of “ADR_H” and “ADR_L” saved in the stack area. That is impossible. The reason for this is that, as shown in (C) of FIG. 51B, since there is a characteristic in the order of putting data in and out of the stack area, when “FLG” is rewritten to an abnormal value, it is saved above it. This is because the values of “ADR_H” and “ADR_L” are also considered to be rewritten.
このようにして、割込み処理ルーチンの最後で図51Bの(C)の状態となり、この状態で「RETI」命令を実行するすると、29F9H〜29FAHのアドレスに退避された異常なアドレス値がプログラムカウンタに格納されるので、呼出元のルーチンに戻れず、プログラムが暴走することになる。 In this way, the state shown in FIG. 51B (C) is reached at the end of the interrupt processing routine, and when the “RETI” instruction is executed in this state, the abnormal address value saved to the addresses 29F9H to 29FAH is stored in the program counter. Since it is stored, it cannot return to the calling routine, and the program will run out of control.
すなわち、本実施形態と同様の図51Bの構成であれば、復帰後のフラグレジスタに格納される値が異常値になるような場合には、「RETI」命令実行後のプログラムカウンタにも異常なアドレス値が必ず格納される。そのため、割込み処理ルーチンにバグがあれば、遊技機の開発期間中にプログラムが暴走して、開発者が障害の発生に気づきやすい構成となるのである。従って、図51Aの構成よりも、プログラムのバグが発見しやすい遊技機を実現することが可能となる。 That is, with the configuration of FIG. 51B similar to the present embodiment, if the value stored in the flag register after return becomes an abnormal value, the program counter after execution of the “RETI” instruction is also abnormal. The address value is always stored. Therefore, if there is a bug in the interrupt processing routine, the program runs out of control during the development period of the gaming machine, and the developer can easily recognize the occurrence of the failure. Therefore, it is possible to realize a gaming machine in which program bugs are easier to find than in the configuration of FIG. 51A.
次に、本実施形態において、割込み処理が呼び出された場合にスタック領域に格納される、フラグレジスタの値のバイト数と、戻りアドレス値のバイト数との関係について説明する。 Next, in the present embodiment, the relationship between the number of bytes of the flag register value and the number of bytes of the return address value stored in the stack area when the interrupt process is called will be described.
まず、図51Cは、本発明の第1の実施の形態とは対照的に、フラグレジスタの値のバイト数と、戻りアドレス値のバイト数とを、ともに2バイトで構成することを仮定した場合の図である。この図51Cの(A)〜(D)により、割込み処理の開始直後及び終了直前におけるスタック領域内の退避データの状態と、CALL命令により呼び出されたサブルーチンの開始直後及び終了直前におけるスタック領域内の退避データの状態について説明する。 First, in FIG. 51C, in contrast to the first embodiment of the present invention, it is assumed that the number of bytes of the flag register value and the number of bytes of the return address value are both composed of 2 bytes. FIG. 51A to 51D, the saved data state in the stack area immediately after the start of the interrupt process and immediately before the end, and the state in the stack area immediately after the start of the subroutine called by the CALL instruction and immediately before the end. The state of saved data will be described.
なお、図51Cの「FLG」は2バイトのフラグレジスタの値を示している。また、「ADRW_H」と「ADRW_L」は、当該割込み処理の発生時に格納される戻りアドレス値の上位バイトと下位バイトの値を示している。また、「ADR2_H」と「ADR2_L」、及び「ADR1_H」と「ADR1_L」は、当該割込み処理が発生するよりも前に格納されたアドレス値の上位バイトと下位バイトである。なお、「ADR3_H」と「ADR3_L」は、割込み処理が発生することに替えて、CALL命令によるサブルーチンが開始された場合に格納される戻りアドレス値の上位バイトと下位バイトの値を示している。 Note that “FLG” in FIG. 51C indicates the value of the 2-byte flag register. Further, “ADRW_H” and “ADRW_L” indicate the values of the upper byte and the lower byte of the return address value stored when the interrupt process occurs. Further, “ADR2_H” and “ADR2_L”, and “ADR1_H” and “ADR1_L” are the upper byte and the lower byte of the address value stored before the interrupt processing occurs. Note that “ADR3_H” and “ADR3_L” indicate the upper byte and lower byte values of the return address value stored when the subroutine by the CALL instruction is started instead of the occurrence of the interrupt processing.
まず、図51Cの(A)は、割込み処理が発生して、戻りアドレス値及びフラグレジスタの値が、スタック領域に格納された直後の状態である。この割込み処理の最後のステップにおいては、「RETI」命令が実行されることで、スタック領域から2バイトのフラグレジスタの値と、2バイトの戻りアドレス値が復帰する。なお、スタック領域へのデータの格納状況に対応してスタックポインタの値も増減するようになっており、「RETI」命令実行後に呼出元の処理に復帰した際には、スタック領域は図51Cの(B)に示す状態となっている。 First, FIG. 51C (A) shows a state immediately after an interrupt process occurs and the return address value and the flag register value are stored in the stack area. In the last step of this interrupt processing, the “RETI” instruction is executed, whereby the 2-byte flag register value and 2-byte return address value are restored from the stack area. It should be noted that the value of the stack pointer is also increased or decreased in accordance with the storage status of data in the stack area, and when returning to the calling process after execution of the “RETI” instruction, the stack area is shown in FIG. 51C. The state shown in FIG.
一方、割込み処理が発生するのではなく、呼出元の処理でCALL命令を実行してサブルーチンを呼び出した場合は、図51Cの(C)に示すように、戻りアドレス値のみがスタック領域に格納され、フラグレジスタの値は格納されない。そして、このサブルーチンの最後のステップにおいては、「RET」命令が実行されることで、スタック領域から2バイトの戻りアドレス値のみが復帰する。なお、スタック領域へのデータの格納状況に対応してスタックポインタの値も増減するようになっており、「RET」命令実行後に呼出元の処理に復帰した際には、スタック領域は図51Cの(B)に示す状態となっている。 On the other hand, when the subroutine is called by executing the CALL instruction in the call source process instead of the interrupt process, only the return address value is stored in the stack area as shown in FIG. 51C (C). The value of the flag register is not stored. In the last step of this subroutine, only the 2-byte return address value is restored from the stack area by executing the “RET” instruction. It should be noted that the value of the stack pointer is also increased or decreased according to the data storage status in the stack area. When the process returns to the caller after execution of the “RET” instruction, the stack area is shown in FIG. 51C. The state shown in FIG.
ただし、CALL命令で呼び出したサブルーチンのプログラムにバグがあり、サブルーチンの最後で、「RET」命令の代わりに、誤って「RETI」命令を実行してしまった場合は、図51Cの(C)に示す状態から「ADR3_H」と「ADR3_L」の値を戻りアドレス値としてプログラムカウンタに復帰させるだけでなく、「ADR2_H」と「ADR2_L」の値を2バイトのフラグレジスタの値と見なして復帰させてしまうことになる。そのため、「RETI」命令実行後に呼出元の処理に復帰した際には、スタック領域は図51Cの(D)に示す状態となってしまう。 However, if there is a bug in the subroutine program called by the CALL instruction, and the “RETI” instruction is executed by mistake instead of the “RET” instruction at the end of the subroutine, (C) in FIG. 51C. From the state shown, not only the values of “ADR3_H” and “ADR3_L” are returned to the program counter as return address values, but also the values of “ADR2_H” and “ADR2_L” are regarded as values of the 2-byte flag register and returned. It will be. Therefore, when returning to the caller process after executing the “RETI” instruction, the stack area is in the state shown in FIG. 51C (D).
その後、呼出元の処理でさらに「RET」命令を実行すると、図51Cの(D)の状態から、「ADR1_H」と「ADR1_L」の戻りアドレス値を取得して、プログラムカウンタに復帰させ、そのアドレスに移行してしまうことになる。これは、呼出元の処理で「RET」命令を実行した場合に取得されるべき本来の戻りアドレス値(図51Cの(B)の「ADR2_H」と「ADR2_L」)とは異なるアドレスに、処理が移行することに相当する。 Thereafter, when the “RET” instruction is further executed in the calling source process, the return address values of “ADR1_H” and “ADR1_L” are acquired from the state of (D) in FIG. 51C, and the program counter is returned to that address. Will be transferred to. This is because the process is performed at an address different from the original return address values (“ADR2_H” and “ADR2_L” in FIG. 51C (B)) that should be acquired when the “RET” instruction is executed in the caller process. This is equivalent to migrating.
この場合、本来実行すべき処理とは異なる処理が行われるため、何らかの障害が発生するはずであるが、誤って取得した「ADR1_H」と「ADR1_L」の戻りアドレス値は、プログラム上にアドレス値として使用されている値である。故に、プログラムが暴走することなく呼出元のルーチンに戻って処理を継続することになる。 In this case, since a process different from the process that should be originally performed is performed, some kind of failure should occur. However, the return address values of “ADR1_H” and “ADR1_L” that are acquired by mistake are used as address values on the program. This is the value being used. Therefore, the program returns to the calling routine without continuing the runaway and the processing is continued.
そのため、遊技機の開発期間中では、開発者がプログラム中のバグの存在に気づかない可能性がある。仮に、障害の発生に気づいても、プログラムが暴走しない可能性が高いが故に、障害の発生要因を特定することが困難になるおそれがある。 Therefore, during the game machine development period, the developer may not be aware of the presence of bugs in the program. Even if the occurrence of a failure is noticed, there is a high possibility that the program will not run out of control, so it may be difficult to identify the cause of the failure.
一方、図51Dは、本発明の第1の実施の形態と同様に、フラグレジスタの値のバイト数と、戻りアドレス値のバイト数とを、異ならせて構成した場合の図である。この図51Dの(A)〜(C)により、割込み処理の開始直後及び終了直前におけるスタック領域内の退避データの状態と、CALL命令により呼び出されたサブルーチンの開始直後及び終了直前におけるスタック領域内の退避データの状態について説明する。 On the other hand, FIG. 51D is a diagram in the case where the number of bytes of the flag register value is different from the number of bytes of the return address value, as in the first embodiment of the present invention. 51A to 51C, the state of the saved data in the stack area immediately after the start and immediately before the end of the interrupt processing, and the state in the stack area immediately after the start of the subroutine called by the CALL instruction and immediately before the end. The state of saved data will be described.
なお、図51Dの「ADR1_H」、「ADR1_L」、「ADR2_H」、「ADR2_L」「ADR3_H」、「ADR3_L」も、図51Cと同様の構成である。ただし、図51Dの「FLG」が1バイトで構成されている点は、図51Cと異なっている。 Note that “ADR1_H”, “ADR1_L”, “ADR2_H”, “ADR2_L”, “ADR3_H”, and “ADR3_L” in FIG. 51D have the same configuration as in FIG. 51C. However, “FLG” in FIG. 51D is composed of 1 byte, which is different from FIG. 51C.
まず、図51Dの(A)は、呼出元の処理でCALL命令を実行してサブルーチンを呼び出した場合において、戻りアドレス値がスタック領域に格納された直後の状態である。この場合は、戻りアドレス値のみがスタック領域に格納され、フラグレジスタの値は格納されない。そして、このサブルーチンの最後のステップにおいては、「RET」命令が実行されることで、スタック領域から2バイトの戻りアドレス値のみが復帰する。なお、スタック領域へのデータの格納状況に対応してスタックポインタの値も増減するようになっており、「RET」命令実行後に呼出元の処理に復帰した際には、スタック領域は図51Dの(B)に示す状態となっている。 First, (A) of FIG. 51D shows a state immediately after the return address value is stored in the stack area when the CALL instruction is executed in the call source process to call a subroutine. In this case, only the return address value is stored in the stack area, and the value of the flag register is not stored. In the last step of this subroutine, only the 2-byte return address value is restored from the stack area by executing the “RET” instruction. It should be noted that the value of the stack pointer is also increased or decreased in accordance with the data storage status in the stack area, and when returning to the caller process after executing the “RET” instruction, the stack area is shown in FIG. 51D. The state shown in FIG.
ただし、CALL命令で呼び出したサブルーチンのプログラムにバグがあり、サブルーチンの最後で、「RET」命令の代わりに、誤って「RETI」命令を実行してしまった場合は、図51Dの(A)に示す状態から「ADR3_H」と「ADR3_L」の値を戻りアドレス値としてプログラムカウンタに復帰させるだけでなく、「ADR2_L」の値を1バイトのフラグレジスタの値と見なして復帰させてしまうことになる。そのため、「RETI」命令実行後に呼出元の処理に復帰した際には、スタック領域は図51Dの(C)に示す状態となってしまう。 However, if there is a bug in the subroutine program called by the CALL instruction and the “RETI” instruction is executed by mistake instead of the “RET” instruction at the end of the subroutine, the process shown in FIG. From the state shown, not only the values of “ADR3_H” and “ADR3_L” are returned to the program counter as return address values, but also the value of “ADR2_L” is regarded as the value of the 1-byte flag register. Therefore, when returning to the caller process after executing the “RETI” instruction, the stack area is in the state shown in FIG. 51C (C).
その後、呼出元の処理でさらに「RET」命令を実行すると、図51Dの(C)の状態から、「ADR1_L」と「ADR2_H」の値を戻りアドレス値として取得してプログラムカウンタに格納し、さらにプログラムカウンタが示す場所へ移行してしまうことになる。これは、呼出元の処理で「RET」命令を実行した場合に取得されるべき本来の戻りアドレス値(図51Dの(A)の「ADR2_H」と「ADR2_L」)とは異なるアドレスに、処理が移行することに相当する。 Thereafter, when the “RET” instruction is further executed in the calling source process, the values of “ADR1_L” and “ADR2_H” are acquired as return address values from the state of (C) in FIG. 51D and stored in the program counter. It will move to the place indicated by the program counter. This is because the processing is performed at an address different from the original return address values (“ADR2_H” and “ADR2_L” in FIG. 51D (A)) that should be acquired when the “RET” instruction is executed in the calling source processing. This is equivalent to migrating.
この場合、誤って取得したアドレスのうち、「ADR2_H」がアドレスの下位バイトと認識され、「ADR1_L」がアドレスの上位バイトと認識されるので、実際には正しい組み合わせになっていないアドレスが生成されることになり、プログラム上にアドレス値として使用されていないアドレス値になると考えられる。そのため、以降に「RET」命令を実行したときに、プログラムカウンタには異常なアドレス値が格納されることになり、それ故にCPUが暴走する可能性が高くなる。そのため、割込み処理ルーチンにバグがあれば、遊技機の開発期間中にプログラムが暴走して、開発者が障害の発生に気づきやすい構成となるのである。従って、図51Cの構成よりも、プログラムのバグが発見しやくい遊技機を実現することが可能となる。 In this case, among the addresses acquired in error, “ADR2_H” is recognized as the lower byte of the address and “ADR1_L” is recognized as the upper byte of the address, so an address that is not actually in the correct combination is generated. Therefore, it is considered that the address value is not used as an address value on the program. Therefore, when the “RET” instruction is subsequently executed, an abnormal address value is stored in the program counter, and therefore, the possibility of the CPU running out of control increases. Therefore, if there is a bug in the interrupt processing routine, the program runs out of control during the development period of the gaming machine, and the developer can easily recognize the occurrence of the failure. Therefore, it is possible to realize a gaming machine in which a bug in the program is easier to find than in the configuration of FIG. 51C.
以上のように構成することによって、フラグレジスタ及び戻りアドレスをスタック領域に退避させる場合にノイズ等によってスタック領域に格納されたデータが書き換えられて障害が発生した場合であっても、障害を早期に発見可能となるため、障害発生時の原因特定が容易になり、開発効率を向上させることが可能となる。 By configuring as described above, even when the flag register and the return address are saved in the stack area, even if the data stored in the stack area is rewritten due to noise or the like, the failure is caused early. Since it becomes possible to identify the cause, it becomes easy to identify the cause when a failure occurs, and it is possible to improve development efficiency.
ここで、本発明とは対照的な従来技術と本発明との対比を行う。 Here, the contrast between the prior art and the present invention as opposed to the present invention is performed.
まず、特許文献Aとして特開2009−183500号公報に開示されるような遊技機が知られており、この遊技機では、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減するために、CPUからI/O空間を介してアクセス可能な記憶領域を少なくとも有する記憶手段を備えている。 First, a gaming machine as disclosed in Japanese Patent Application Laid-Open No. 2009-183500 is known as Patent Document A. In this gaming machine, in order to reduce the program code and reduce the storage capacity of the storage means than before. In addition, storage means having at least a storage area accessible from the CPU via the I / O space is provided.
そして、この遊技機では、特許文献Aの段落[0137]〜[0142]に記載があるように、LD命令、IN命令、OUT命令を適宜使い分けることで、プログラム全体のステート数やプログラムコード量を削減している。 In this gaming machine, as described in paragraphs [0137] to [0142] of Patent Document A, the LD instruction, the IN instruction, and the OUT instruction are properly used, so that the number of states and the program code amount of the entire program can be reduced. Reduced.
さらに、この遊技機では、特許文献Aの図13に記載があるように、指定したRAM領域からレジスタにデータを格納するLD命令や、逆に、レジスタから指定したRAM領域にデータを格納するLD命令を用いている。 Further, in this gaming machine, as described in FIG. 13 of Patent Document A, an LD instruction for storing data from a designated RAM area into a register, or conversely, an LD for storing data into a RAM area designated from a register. Instruction is used.
具体的には、RAM領域の2810H番地のデータをAレジスタに格納するための「LD A,(2810H)」、AレジスタのデータをRAM領域の2810H番地に格納するための「LD (2810H),A」、RAM領域の2810H番地のデータをHLレジスタに格納するための「LD HL,(2810H)」、HLレジスタのデータをRAM領域の2810H番地に格納するための「LD (2810H),HL」などが該当する。 Specifically, “LD A, (2810H)” for storing data at address 2810H in the RAM area in the A register, and “LD (2810H), for storing data in register A at address 2810H in the RAM area. A ”,“ LD HL, (2810H) ”for storing the data at address 2810H in the RAM area in the HL register, and“ LD (2810H), HL ”for storing the data in the HL register at address 2810H in the RAM area And so on.
これらの命令は、特許文献Aの図13にも記載があるが、3バイトのプログラムコード量を要する命令である。なお、プログラムコードとは、任意の命令を、命令コード部(オペコード部)とアドレス部(オペランド部)との組み合せを用いて所定バイト数の数値で表現したものである。 Although these instructions are also described in FIG. 13 of Patent Document A, they are instructions that require a 3-byte program code amount. The program code is an arbitrary instruction expressed by a numerical value of a predetermined number of bytes using a combination of an instruction code part (opcode part) and an address part (operand part).
命令コード部は、命令同士を識別するために必要なコードであり、例えば、「LD A,(2810H)」のような、指定されたRAM領域のデータをAレジスタに格納するためのLD命令であれば、「3AH」などの1バイトの値が割り当てられている。一方、アドレス部はRAM領域のアドレスを指定するためのコードであり、例えば、2810H番地へのアクセスを指定する場合は、「28H」「10H」という2バイトの値がプログラムにて設定される。 The instruction code portion is a code necessary for identifying instructions, and is an LD instruction for storing data in a designated RAM area in the A register, such as “LD A, (2810H)”, for example. If there is, a 1-byte value such as “3AH” is assigned. On the other hand, the address portion is a code for designating the address of the RAM area. For example, when designating access to address 2810H, a 2-byte value of “28H” and “10H” is set by the program.
このようなLD命令は、遊技プログラムにて頻繁に使用されるものであるから、プログラム全体のコード量を削減するためには、命令をできるだけ少ないバイト数で表現できることが好ましいのは言うまでもない。しかしながら、RAM領域のアドレスを指定する際には、アドレス部に少なくとも2バイトのコードを割り当てる必要がある上に、命令同士を識別するための命令コード部のコードが少なくとも1バイト必要となるため、このようなLD命令を表現するためのプログラムコードは、2バイト以下に削減することは不可能である。 Since such LD instructions are frequently used in game programs, it is needless to say that the instructions can be expressed with as few bytes as possible in order to reduce the code amount of the entire program. However, when specifying the address of the RAM area, it is necessary to assign a code of at least 2 bytes to the address part, and at least 1 byte of the code of the instruction code part for identifying the instructions is required. The program code for expressing such an LD instruction cannot be reduced to 2 bytes or less.
そこで本発明は、上記のような問題点を解決するために、遊技制御プログラム全体のコード量を削減することを目的としている。 Therefore, the present invention aims to reduce the code amount of the entire game control program in order to solve the above-described problems.
例えば、本発明の第1の実施の形態によれば、上位アドレス指定レジスタを用いることにより、RAM(更新情報記憶手段)にアクセスするための命令を、少ないバイト数のコードで実現することが可能となる。そのため、遊技制御プログラムに当該命令を用いることで、遊技制御プログラム全体のコード量を削減することが可能となる。 For example, according to the first embodiment of the present invention, an instruction for accessing a RAM (update information storage means) can be realized with a code having a small number of bytes by using an upper address specification register. It becomes. Therefore, the code amount of the entire game control program can be reduced by using the instruction for the game control program.
なお、上位アドレス指定レジスタ自体は1バイトのレジスタであるので、特定アドレスの前後各128バイト(又は前後各127バイト)の範囲内からデータを取り出すことを目的として、当該特定アドレスを指定するためにわざわざ2バイトのレジスタを用いるような方法と比較すると、アドレス指定のためのレジスタ構成が簡素化されている。 Since the upper address specification register itself is a 1-byte register, in order to specify the specific address for the purpose of extracting data from the range of 128 bytes before and after the specific address (or 127 bytes before and after each specific address). Compared to a method using two-byte registers, the register configuration for addressing is simplified.
また、Kレジスタ(上位アドレス指定レジスタ)に固有のアドレス値(“28H”)を設定すること(固有値設定手段)によって、リセット(起動)信号が発生した際に、CPU(演算処理手段)によってKレジスタに固有のアドレス値を設定する処理を行う必要がなくなる。したがって、リセット後、遊技制御プログラムでKレジスタに固有のアドレス値を設定しなくても、RAMにデータを読み書きすることが可能となる。さらに、CPUの処理負担が軽減され、遊技制御プログラムのコード量を削減することも可能となる。 Further, by setting a unique address value (“28H”) in the K register (upper address designation register) (unique value setting means), when a reset (startup) signal is generated, the CPU (arithmetic processing means) performs K There is no need to set a unique address value in the register. Therefore, after resetting, it is possible to read / write data from / to the RAM without setting a unique address value in the K register in the game control program. Further, the processing load on the CPU is reduced, and the code amount of the game control program can be reduced.
また、RAMに記憶された情報の更新を規制するRAMアクセス規制回路を備え、所定の起動信号が発生するとRAMアクセス規制回路によりRAMの更新禁止状態となり、その後、CPUコアの動作が開始されてRAMの更新禁止状態が解除され、次いで、上位アドレス指定レジスタにより指定されるアドレスに記憶された情報を用いて遊技制御が開始されるので、誤ったタイミングでRAMの値が更新されることを防止できる。 In addition, a RAM access restriction circuit for restricting the update of information stored in the RAM is provided, and when a predetermined activation signal is generated, the RAM access restriction circuit causes the RAM to be prohibited from being updated. Since the update prohibition state is released, and then game control is started using information stored at the address specified by the upper address specification register, it is possible to prevent the RAM value from being updated at an incorrect timing. .
さらに、本発明の第1の実施の形態によれば、始動記憶などを保持するワークエリアと、スタック領域とが異なる上位アドレスとなる領域に保持されるため、乱数更新時などに誤ってスタック領域に格納されたデータを更新することを防止することができるため、誤動作を防ぐことができる。 Furthermore, according to the first embodiment of the present invention, since the work area that holds the start memory and the like and the stack area are held in different upper address areas, the stack area is mistakenly changed at the time of random number update or the like. Since it is possible to prevent the data stored in the database from being updated, malfunctions can be prevented.
特に、始動記憶を保持する領域(例えば、図16、図17、図53A、図53Bに例示するような乱数記憶領域、あるいは図15に例示する普図乱数保存領域)は、変動表示ゲームを開始する際に、格納されている乱数がシフトされることになるが、これらの領域の上位アドレスはすべて同一(28H)になるように設定されているので、シフトの処理を行う際に上位アドレス指定レジスタの値を変更する必要がなく、処理が簡素化される。 In particular, the area that holds the start memory (for example, the random number storage area illustrated in FIG. 16, FIG. 17, FIG. 53A, or FIG. 53B, or the universal random number storage area illustrated in FIG. 15) starts the variable display game. The stored random numbers will be shifted, but since the upper addresses of these areas are all set to be the same (28H), the upper address is designated when the shift process is performed. There is no need to change the register value, and the processing is simplified.
また、ワークエリアの下位アドレスが一致する領域であって、上位アドレスがスタック領域と同じ領域を使用禁止領域に設定することによって、上位アドレスの値を間違っている状態で始動記憶を更新しようするとCPUがリセットされ、誤作動を防止することができる。 In addition, if the lower address of the work area is the same and the upper address is the same as the stack area, the CPU is used to update the start-up memory when the upper address value is incorrect by setting the use prohibited area. Is reset to prevent malfunction.
次に、特許文献Bとして特開平10−033804号公報に開示されるようなパチンコ機が知られており、パチンコ機の制御装置のプログラムにおいては、遊技状態に対応して異なる命令が実行されるように、プログラム内部で分岐の処理が行われている。この特許文献Bでは、段落[0072]〜[0073]に記載があるように、プロセスフラグの値に応じて制御を分岐させる処理がなされ、その分岐の際には、基本回路30のROMに記憶されているプロセスジャンプテーブル(特許文献Bの図13)を参照して行なわれる。
Next, a pachinko machine as disclosed in Japanese Patent Application Laid-Open No. 10-033804 is known as Patent Document B, and in the program of the control device of the pachinko machine, different instructions are executed corresponding to the gaming state. As described above, branch processing is performed in the program. In Patent Document B, as described in paragraphs [0072] to [0073], a process for branching control is performed in accordance with the value of a process flag, and in that branch, the process is stored in the ROM of the
一方、パチンコ機の制御装置などに用いられるCPUとして、特許文献Cとして特開平11−232099号公報に開示されるZ80系のCPUが知られている。Z80系の命令には、特許文献Cの段落[0020]に示されるような「JP(HL)」の命令が用意されている。この命令は、HLレジスタに格納された値をアドレスと認識させて、そのアドレスで示されるプログラムの箇所に処理を分岐させるものである。なお、CPUが起動した時点では、HLレジスタの値は不定な値が格納されている。 On the other hand, as a CPU used for a control device of a pachinko machine or the like, a Z80 CPU disclosed in Japanese Patent Application Laid-Open No. 11-232099 as Patent Document C is known. As a Z80 series command, a “JP (HL)” command as shown in paragraph [0020] of Patent Document C is prepared. This instruction causes the value stored in the HL register to be recognized as an address, and branches the process to the location of the program indicated by the address. Note that when the CPU is activated, the value of the HL register is an indefinite value.
特許文献Bの従来技術の遊技機のプログラムにて分岐の処理を行う場合には、特許文献CのCPUの「JP(HL)」が用いられることがあり、この場合、HLレジスタに分岐先のアドレスの値を格納してから、「JP(HL)」の命令を実行する構成となる。 When branch processing is performed in the prior art gaming machine program of Patent Literature B, the “JP (HL)” of the CPU of Patent Literature C may be used. In this case, the branch destination is stored in the HL register. After storing the address value, the “JP (HL)” instruction is executed.
しかしながら、特許文献Bの従来技術の遊技機などは、ノイズ環境に晒されているために、CPUが暴走する危険を有している。特に、特許文献Cのような従来のCPUを用いた場合は、遊技機の電源が投入されてCPUが起動を開始した直後では、HLレジスタの値が不定な値であるために、誤ってプログラム中の「JP(HL)」命令が実行された場合には、分岐先が不定なためにCPUが暴走するおそれがあった。 However, since the gaming machine of the prior art of Patent Document B is exposed to a noise environment, there is a risk that the CPU may run away. In particular, when a conventional CPU such as Patent Document C is used, the value of the HL register is an indefinite value immediately after the game machine is turned on and the CPU starts up. When the “JP (HL)” instruction is executed, the CPU may run away because the branch destination is indefinite.
そこで、本発明は、上記のような問題点を解決するために、ノイズ環境でも正常にCPUを動作させることを目的としている。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to operate a CPU normally even in a noisy environment in order to solve the above problems.
例えば、本発明の第1の実施の形態によれば、固有値設定手段(図12の初期値設定回路)を備えており、起動信号(リセット信号)が発生すると、固有値設定手段により分岐アドレス設定レジスタに固有のアドレス値が設定されるので、遊技制御プログラム開始直後にノイズ等が発生して、誤って特定の命令を実行してしまった場合であっても、固有のアドレス値で示されるアドレスに処理を分岐させることができる。そのため、遊技制御プログラム開始直後にノイズ等が発生しても、演算処理手段の暴走を防止することができる。 For example, according to the first embodiment of the present invention, the eigenvalue setting means (initial value setting circuit in FIG. 12) is provided, and when a start signal (reset signal) is generated, the eigenvalue setting means causes the branch address setting register to Since a unique address value is set, even if a noise or the like occurs immediately after the start of the game control program and a specific command is executed by mistake, the address indicated by the unique address value is set. Processing can be branched. Therefore, even if noise or the like occurs immediately after the start of the game control program, the runaway of the arithmetic processing means can be prevented.
すなわち、固有のアドレス値で示されるアドレス(例えば、遊技制御プログラムのリセットアドレス)には、演算処理手段が暴走したときに実行すべきプログラムの命令(リセット処理等の命令)が予め配置されているので、遊技制御プログラム開始直後にノイズ等が発生しても対処することが可能となる。 That is, a program instruction (an instruction for reset processing, etc.) to be executed when the arithmetic processing means runs away is arranged in advance at an address (for example, a reset address of the game control program) indicated by a unique address value. Therefore, even if noise or the like occurs immediately after the start of the game control program, it can be dealt with.
また、本発明の第1の実施の形態では、分岐アドレス設定レジスタを用いて、特図変動表示ゲームの制御状態(ゲーム処理番号に対応する各遊技状態)に対応した分岐処理を行っているので、制御状態が順次切り替わっても、その都度、切り換えられた制御状態に対応する分岐先の処理が行えるように、効率的な遊技制御プログラムが構成できるようになっている。なお、普図変動表示ゲームの制御状態に対応した分岐処理も、分岐アドレス設定レジスタを用いて行うようにしてもよい。 In the first embodiment of the present invention, the branch address setting register is used to perform branch processing corresponding to the control state of the special figure variation display game (each game state corresponding to the game process number). Even if the control state is sequentially switched, an efficient game control program can be configured so that the branch destination process corresponding to the switched control state can be performed each time. Note that the branching process corresponding to the control state of the normal map display game may also be performed using the branch address setting register.
さらに、本発明の第1の実施の形態によれば、電源投入時の際に、遊技制御プログラムが開始される前に、初期値設定回路(固有値設定手段)1241によってCPUコア102に備えるスタックポインタに初期値がハード的に設定される。そのため、遊技制御プログラムの実行が開始された直後にノイズ等が原因で割込処理が発生しても、呼出元のルーチンの戻りアドレスをスタック領域に確実に格納することができ、割込処理から呼出元のルーチンに復帰する際にも問題なく処理を継続することができる。
Furthermore, according to the first embodiment of the present invention, the stack pointer provided in the
また、分岐アドレス設定レジスタ(HLレジスタ)にリセットアドレス値が格納された状態で、特定の命令(JP(HL))が実行された場合であっても、スタックポインタの値を設定できる。 Further, even when a specific instruction (JP (HL)) is executed with the reset address value stored in the branch address setting register (HL register), the value of the stack pointer can be set.
なお、遊技制御中に異常が発生して、リセット回路610B(セキュリティ回路630)によりCPUコア102がリセットされるような場合であっても、CPUコア102の処理がリセットアドレスに戻される。
Even if an abnormality occurs during game control and the
この場合、初期値設定回路1241によってスタックポインタに初期値がハード的に設定されなくても、リセットアドレスからの命令を実行した直後に、ソフトウェアによりスタックポインタに初期値を設定する(図25の遊技制御装置メイン処理のステップ2502A)ので、あらゆるリセット状態に対応してスタックポインタに初期値を設定することが可能となる。なお、同様の理由により、上位アドレス指定レジスタにもソフトウェアによって初期値を設定している(図25の遊技制御装置メイン処理のステップ2502B)。
In this case, even if the initial value is not set in the stack pointer by the initial
さらに、遊技制御プログラムは、呼出元のルーチンに記述されたCALL命令等の呼出の命令が実行された場合(第1の呼出条件が成立した場合)や、呼出元のルーチンの命令実行中に所定の割込信号が発生した場合(第2の呼出条件が成立した場合)には、呼出元のルーチンに含まれる戻りアドレスの値をスタック領域に格納して、呼出先の処理に移行するような構成となっている。 Further, the game control program is executed when a call instruction such as a CALL instruction described in the call source routine is executed (when the first call condition is satisfied) or during execution of the instruction of the call source routine. When the interrupt signal is generated (when the second call condition is satisfied), the return address value included in the call source routine is stored in the stack area, and the process proceeds to the call destination process. It has a configuration.
この場合において、後者の所定の割込信号は、呼出元のルーチンの実行中のアドレスとは無関係に発生するものであるので、割込信号が発生した時点におけるフラグレジスタ1200の値は、呼出先のルーチンの処理中で破壊されないように、スタック領域に退避しておくことが好ましい。
In this case, since the latter predetermined interrupt signal is generated regardless of the address during execution of the call source routine, the value of the
そこで、後者の第2の呼出条件が成立した場合は、図19の(D)に示すように、呼出元のルーチンに含まれる戻りアドレスの値だけでなく、フラグレジスタ1200の値もスタック領域に格納して、呼出先の処理に移行させている。そのため、後者の第2の呼出条件が成立した場合には、呼出先のルーチンのプログラム中にフラグレジスタをスタック領域に格納するための命令(「PUSH FLG」)を記述しなくても、フラグレジスタの値が自動的にスタック領域に格納されるため、プログラムのコード量を節約することができる。
Therefore, when the latter second calling condition is satisfied, as shown in FIG. 19D, not only the value of the return address included in the calling source routine but also the value of the
これに対して、前者のように、呼出元のルーチンに記述されたCALL命令等の呼出の命令を実行する場合は、呼出元のルーチンで設定されたフラグレジスタ1200の値を呼出先のルーチンの処理中で破壊してはいけない場合もあるが、呼出先のルーチンの処理中で設定されたフラグレジスタ1200の値を、呼出元のルーチンに戻して演算に利用することもあり得る。よって、呼出元のルーチンで設定されたフラグレジスタ1200の値をスタック領域に退避すべきか否かはケースバイケースであることから、呼出先のルーチンのプログラム中に、プログラム中にフラグレジスタ1200の値をスタック領域に格納する命令(例えば、「PUSH FLG」)を記述して、値を退避するか否かを決定したほうが都合が良い。
On the other hand, when a call instruction such as a CALL instruction described in the call source routine is executed as in the former case, the value of the
故に、前者の第1の呼出条件が成立した場合は、図19の(C)に示すように、呼出元のルーチンに含まれる戻りアドレスの値はスタック領域に格納するものの、フラグレジスタ1200の値を自動的にスタック領域に格納することはしない。
Therefore, when the former first calling condition is satisfied, as shown in FIG. 19C, the value of the return address included in the calling source routine is stored in the stack area, but the value of the
なお、図19の(D)及び図51Bに示すように、スタック領域には、先にフラグレジスタの値を格納して、後から戻りアドレスの値を設定しているので、戻りアドレスの値を破壊することなくフラグレジスタの値のみを破壊するような事態は発生しない。そのため、図51Aで例示した構成の遊技機のように、呼出先の割込処理ルーチンでフラグレジスタの値が破壊された状態のまま、スムーズに呼出元のルーチンに戻って処理を継続してしまうことはない。 As shown in FIG. 19D and FIG. 51B, since the flag register value is stored in the stack area first and the return address value is set later, the return address value is set. A situation in which only the value of the flag register is destroyed without destruction does not occur. Therefore, as in the gaming machine having the configuration illustrated in FIG. 51A, the process returns to the calling source routine smoothly and continues with the flag register value being destroyed in the calling destination interrupt processing routine. There is nothing.
また、図19の(D)及び図51Dに示すように、スタック領域に格納される戻りアドレスの値は2バイト構成であるのに対して、スタック領域に格納されるフラグレジスタの値は1バイト構成となっている。このように、スタック領域に格納される戻りアドレスとフラグレジスタとのバイト数を異ならせることで、呼出先のルーチンで誤ってフラグレジスタの値を戻りアドレスとして復帰させた場合には、図51Cで例示した構成の遊技機のような不具合が発生することがなく、以降の処理では戻りアドレスの取得が不可能となるので、プログラムのバグ等を発見しやすい。 Further, as shown in FIGS. 19D and 51D, the value of the return address stored in the stack area is 2 bytes, whereas the value of the flag register stored in the stack area is 1 byte. It has a configuration. As described above, when the return address stored in the stack area and the number of bytes of the flag register are different from each other, the value of the flag register is erroneously returned as the return address in the call destination routine. There is no problem as in the gaming machine having the exemplified configuration, and the return address cannot be obtained in the subsequent processing, so that it is easy to find a bug in the program.
さらに、図21及び図48(C)に示すように、「LD RBS,1」の命令(又は「LD RBS,0」の命令)を実行することによって、汎用レジスタのバンクを切り変える機能を有しているので、呼出先のルーチン内でバンクを切り替えることにより、呼出元とは異なるレジスタを活用することができる。 Further, as shown in FIG. 21 and FIG. 48C, there is a function of switching the bank of general-purpose registers by executing the “LD RBS, 1” instruction (or “LD RBS, 0” instruction). Therefore, a register different from the call source can be utilized by switching the bank in the call destination routine.
なお、図14に示したように、第1の実施の形態では、ユーザワークRAM104において上位アドレスの境界、すなわち、上位アドレスが「28H」の領域と「29H」の領域との境界を連続してアクセスすることが可能となっていたが、この境界に使用禁止領域を設けるようにしてもよい。
As shown in FIG. 14, in the first embodiment, in the
さらに、特許文献Dとして特開2009−142566号公報に開示されるようなパチンコ機が知られており、遊技機を制御するためのプログラムの容量削減を図るために、パチンコ機の主制御基板において、CPUからIOにアクセスするためのイン/アウトコマンドが出力された時、エリア区分判定部が、アドレス値に応じて、アクセス先をIO、RAMのいずれかに切り換え、その結果に応じてIO識別信号又はチップセレクタ信号をアクティブにする構成が開示されている。 Further, a pachinko machine as disclosed in Japanese Patent Application Laid-Open No. 2009-142666 is known as Patent Document D. In order to reduce the capacity of a program for controlling a gaming machine, the main control board of the pachinko machine When an in / out command for accessing the IO from the CPU is output, the area classification determination unit switches the access destination to either IO or RAM according to the address value, and identifies the IO according to the result A configuration for activating a signal or chip selector signal is disclosed.
この特許文献Dの遊技機の構成では、イン/アウトコマンドを用いてRAMの一部(疑似RAM領域)にアクセス可能となり、この時、RAMの先頭アドレスを含む連続領域にワーク及び疑似RAM領域を割り当てるとともに、終端アドレスを開始点としてアドレスが小さくなる側に順次データが蓄積されるようにスタック領域を割り当てるように構成されている。 In the configuration of the gaming machine disclosed in Patent Document D, a part of the RAM (pseudo RAM area) can be accessed using in / out commands. In addition to the allocation, the stack area is allocated so that data is sequentially accumulated on the side where the address becomes smaller, starting from the end address.
一般に、スタックをRAMのどの領域に割り当てるかは、制御装置の設計者の裁量に任せたほうが、設計の自由度が増すために都合が良い。そのため、CPUの起動時にはスタックポインタの初期値は不定な値にしておき、CPUがプログラムの実行を開始した後に、ソフトウェアによりスタックポインタの初期値を設定する構成が好ましい。従って、この特許文献Dの遊技機においても、CPUの起動時のスタックポインタの初期値は、不定な値となっているものと考えられる。 In general, it is more convenient to leave the stack to which area of the RAM is left to the discretion of the control device designer because the degree of design freedom increases. Therefore, it is preferable that the initial value of the stack pointer is set to an indefinite value when the CPU is activated, and the initial value of the stack pointer is set by software after the CPU starts executing the program. Therefore, also in the gaming machine of this Patent Document D, it is considered that the initial value of the stack pointer when the CPU is activated is an indefinite value.
しかしながら、スタックポインタの初期値が不定な状態で、ノイズ等により割込み信号が発生すると、不定な値で示された領域をスタック領域と見なしたままで、CPUが処理を行ってしまうおそれがあった。この場合でも、CPUは、割込み処理ルーチンに処理を移してしまうことになり、割込み処理ルーチンの最後にRETIなどの命令を実行しても、その時点でスタックポインタが指し示している領域には戻りアドレスの値が格納されている保障がないため、CPUが暴走するおそれもあった。その結果、想定外の大当り等が発生するなどして正規な遊技を行えないおそれがあった。 However, when an interrupt signal is generated due to noise or the like when the initial value of the stack pointer is indefinite, there is a possibility that the CPU may perform processing while the area indicated by the indefinite value is regarded as the stack area. Even in this case, the CPU moves the processing to the interrupt processing routine. Even if an instruction such as RETI is executed at the end of the interrupt processing routine, the return address is stored in the area pointed to by the stack pointer at that time. Since there is no guarantee that the value is stored, the CPU may run away. As a result, there is a possibility that a regular game cannot be performed due to an unexpected big hit or the like.
そのため、ノイズ環境に晒されているパチンコ機等の遊技機では、スタック領域を設定するための設計の自由度よりも、CPUが暴走しないように構成することを重視したほうがよいという課題があった。 For this reason, pachinko machines and other gaming machines that are exposed to a noise environment have a problem that it is better to focus on the configuration so that the CPU does not run out of control rather than the degree of design freedom for setting the stack area. .
また、従来の遊技機においては、RAM領域内に割り当てられるスタック領域には、CPUが遊技プログラム実行中に所定のサブモジュールを呼び出した際に、呼び出し元のモジュールのアドレスの値が、戻りアドレス値として格納されるものがあった。そして、呼び出し先のサブモジュールの実行後に、スタック領域に格納してあった戻りアドレスの値をプログラムカウンタに戻すことで、CPUの処理が呼び出し元のモジュールに復帰するようになっていた。 In the conventional gaming machine, the stack area allocated in the RAM area has the return address value of the address of the caller module when the CPU calls a predetermined submodule while the game program is being executed. There was something stored as. Then, after the callee submodule is executed, the value of the return address stored in the stack area is returned to the program counter, so that the CPU processing returns to the caller module.
例えば、特許文献E(特開2008−080004号公報)に開示された遊技機では、特許文献Eの図22に示すように、RST命令を実行すると、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュールに移行する。その後、呼び出し先のサブモジュールの終了時にRET命令を実行することで、スタック領域に格納されていた戻りアドレスの値をプログラムカウンタに戻し、呼び出し元のモジュールに復帰する。なお、特許文献Eの段落[0148]に示すように、CALL命令を用いても同様の処理が行われる。 For example, in the gaming machine disclosed in Patent Document E (Japanese Patent Laid-Open No. 2008-080004), as shown in FIG. 22 of Patent Document E, when an RST instruction is executed, the return address value of the calling module is stacked. And move to the called submodule. Thereafter, by executing a RET instruction at the end of the callee submodule, the return address value stored in the stack area is returned to the program counter, and the caller module is restored. Note that, as shown in paragraph [0148] of Patent Document E, similar processing is performed even when a CALL instruction is used.
また、特許文献Eでは、従来よりも、プログラムのメンテナンス性および処理速度を維持しつつ、不正改造抑制および不正改造発見容易性向上を実現するために、ROMの0008H番地から000FH番地には、変動停止コマンド送信処理のプログラムを格納し、ROMの0020H番地から0027H番地には、賞球数コマンド送信処理のプログラムを格納するとともに、これらのプログラムをRST命令を用いて呼び出すようにしている。 Further, in Patent Document E, there is a change from 0008H to 000FH in ROM in order to suppress unauthorized modification and improve ease of discovery of unauthorized modification while maintaining program maintainability and processing speed. A program for stop command transmission processing is stored, and a program for command ball number command transmission processing is stored at addresses 0020H to 0027H of the ROM, and these programs are called using an RST instruction.
なお、特許文献EのようにRST命令やCALL命令を実行しなくても、タイマ割込等の割込が発生した場合に、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュール(タイマ割込みの処理モジュール)に移行する処理を行う遊技機もある。 Even if an RST instruction or CALL instruction is not executed as in Patent Document E, when an interrupt such as a timer interrupt occurs, the return address value of the calling module is stored in the stack and called. There is also a gaming machine that performs processing to shift to the previous submodule (timer interrupt processing module).
例えば、特許文献F(特開2001−212330号公報)に開示された遊技機では、特許文献Fの段落[0071]〜[0073]に示すように、タイマ割込等の割込が発生すると、呼び出し元のモジュールの戻りアドレスの値をスタックに格納して、呼び出し先のサブモジュール(タイマ割込みの処理モジュール)に移行する。その後、呼び出し先のサブモジュールの終了時にRETI命令を実行することで、スタックに格納してあった戻りアドレスの値をプログラムカウンタに戻し、呼び出し元のモジュールに復帰する。 For example, in the gaming machine disclosed in Patent Document F (Japanese Patent Laid-Open No. 2001-212330), as shown in paragraphs [0071] to [0073] of Patent Document F, when an interrupt such as a timer interrupt occurs, The return address value of the caller module is stored in the stack, and the process proceeds to the callee submodule (timer interrupt processing module). Thereafter, the RETI instruction is executed when the callee submodule ends, thereby returning the value of the return address stored in the stack to the program counter and returning to the caller module.
このようなタイマ割込みの処理を行うときは、特許文献G(特開2004−089476号公報)の図5や特許文献H(特開2006−068568号公報)の図6(c)に示すように、処理の先頭にて、フラグレジスタの値をAFレジスタとしてスタックに格納することが通常行われる。なお、このスタックに格納されたフラグレジスタの値は、特許文献Gの図5に示されるように、タイマ割込みの処理を終了してRETI命令を実行する際に元のフラグレジスタへ復帰するようになっている。 When such timer interrupt processing is performed, as shown in FIG. 5 of Patent Document G (Japanese Patent Laid-Open No. 2004-089476) and FIG. 6 (c) of Patent Document H (Japanese Patent Laid-Open No. 2006-068568). In general, the flag register value is stored in the stack as an AF register at the beginning of the process. As shown in FIG. 5 of Patent Document G, the value of the flag register stored in the stack is restored to the original flag register when the timer interrupt processing is finished and the RETI instruction is executed. It has become.
しかし、呼び出し元のモジュールで用いられていたレジスタの値が、呼び出し先のサブモジュールで変更されてしまうと、CPUの演算処理に支障をきたしてしまう。そのため、従来の遊技機では、特許文献Gの図5のS11に示すように、処理の先頭でPUSH命令を用いてレジスタの値をスタック領域に退避する処理が通常行われ、処理の最後でPOP命令を用いてレジスタの値をスタック領域から復帰させる処理が行われる。このとき、特許文献Hの図6(c)に示すように、スタック領域には、様々なレジスタの値が一時的に格納される。そのため、呼び出し先のモジュール内にて、PUSH命令やPOP命令を記述する必要があり、プログラム容量が増えてしまう要因となっていた。 However, if the value of the register used in the caller module is changed in the callee submodule, the CPU processing will be hindered. Therefore, in the conventional gaming machine, as shown in S11 of FIG. 5 of Patent Document G, the process of saving the register value to the stack area using the PUSH instruction is usually performed at the beginning of the process, and the POP is performed at the end of the process. Processing for restoring the value of the register from the stack area using an instruction is performed. At this time, as shown in FIG. 6C of Patent Document H, various register values are temporarily stored in the stack area. For this reason, it is necessary to describe a PUSH instruction or a POP instruction in the callee module, which increases the program capacity.
このようなPUSH命令及びPOP命令を用いて、レジスタの値をスタックから出し入れする処理は、特許文献Eに開示されたタイマ割り込みの処理に限らず、特許文献Dに示したようなRST命令(あるいはCALL命令)を用いて呼び出されるサブモジュール内でも、頻繁に行われている。そのため、このようなサブモジュール内にもPUSH命令やPOP命令を記述する必要があり、プログラム容量が増えてしまう要因となっていた。 The process of putting a register value in and out of the stack using such a PUSH instruction and a POP instruction is not limited to the timer interrupt process disclosed in Patent Document E, but an RST instruction as shown in Patent Document D (or This is also frequently done in submodules called using the CALL instruction. For this reason, it is necessary to describe a PUSH instruction or a POP instruction in such a submodule, which increases the program capacity.
なお、前者のタイマ割込みの処理では、フラグレジスタの値を無条件にスタックに格納する必要があったのに対して、後者のRST命令(あるいはCALL命令)を用いて呼び出されるサブモジュールの処理では、フラグレジスタを退避すべきか否かは、モジュールの目的によって一意に定まっていなかった。そこで、このような条件を満たしつつも、プログラム容量を削減するための工夫が必要とされていた。 In the former timer interrupt process, the value of the flag register had to be stored in the stack unconditionally, whereas in the latter module process called using the latter RST instruction (or CALL instruction) Whether or not the flag register should be saved has not been uniquely determined by the purpose of the module. Therefore, a device for reducing the program capacity while satisfying such conditions has been required.
次に、図52は、本発明の第1の実施の形態の変形例のユーザワークRAM104の一例を示す図である。図52に示すユーザワークRAM104には、上位アドレスの境界(RAMのアドレスが「28FFH」から「2900H」に変化する境界線を含んだ領域)に使用禁止領域が設けられている。このように、上位アドレスが変化(「28H」から「29H」に変化)する境界に使用禁止領域を設けることによって、上位アドレスを変更せずに連続した領域にアクセスしようとすることなどを防ぐことが可能となり、誤作動を防止することができる。
Next, FIG. 52 is a diagram illustrating an example of a
例えば、このような境界線の前後のエリアに、Aレジスタ1202Aの値を一括して格納することを考える。この場合、上位アドレス指定レジスタであるKレジスタ1230の値を「28H」に固定した状態で、「INC L」命令(図21参照)を実行してLレジスタ1211Aの値を増加させながら、「LDK (L),A」の命令(図21参照)を実行させることになる。
For example, consider that the values of the
このとき「INC L」命令の実行により、Lレジスタ1211Aの値が「FFH」から「00H」に変化するタイミングがある。これは、Aレジスタ1202Aの値の格納先が境界線を跨ぐタイミングであるが、正しい格納先を指定するためには、以降のKレジスタ1230の値を「29H」に変更する必要がある。そのため、本来であれば、遊技プログラムにてKレジスタ1230の値を「29H」に変更する命令を実行しなければならないが、プログラム製作者が見落としてしまうおそれがある。
At this time, there is a timing when the value of the
なお、図52では、ワークエリアが、上位アドレスが「28H」と「29H」となる2つの領域に分散して設定されているが、ワークエリアを上位アドレス「28H」の領域に限定してもよい。この場合であっても、遊技制御装置100のCPU102は、初期化処理を実行する際に、ユーザワークRAM104の全域(上位のアドレスが互いに異なる領域、具体的には上位のアドレスが「28H」及び「29H」になる全ての領域)に対して、データの読み書きを行うことになる。これは、ワークエリア以外の領域(例えば、スタック領域など)でも、初期化を行う必要があるからである。
In FIG. 52, the work area is set so as to be distributed in two areas having upper addresses “28H” and “29H”. However, the work area may be limited to the area having the upper address “28H”. Good. Even in this case, when the
そして、初期化処理が完了した時点で、上位アドレス指定レジスタであるKレジスタ1230の値が「28H」に設定され、以後、停電処理が発生するまでの間は、Kレジスタ1230の値を「28H」に維持したまま、CPU102によって遊技制御を継続する。
When the initialization process is completed, the value of the
このように構成することによって、Kレジスタに設定された値を変更する頻度を大幅に低減させることができるので、レジスタの値を変更する処理の実行回数を削減することができる。したがって、プログラム容量をさらに削減することが可能となり、また、遊技制御処理の高速化を期待できる。 With this configuration, the frequency of changing the value set in the K register can be greatly reduced, so that the number of executions of the process of changing the register value can be reduced. Therefore, it is possible to further reduce the program capacity and to expect a high speed game control process.
(第2の実施の形態)
第1の実施の形態では、第2特図変動表示ゲームが第1特図変動表示ゲームよりも優先して実行されるように構成されていたが、第2の実施の形態では、第2特図変動表示ゲーム及び第1特図変動表示ゲームの区別なく、入賞した順序で特図変動表示ゲームが実行される。
(Second Embodiment)
In the first embodiment, the second special figure fluctuation display game is configured to be executed in preference to the first special figure fluctuation display game. However, in the second embodiment, the second special figure fluctuation display game is executed. The special figure fluctuation display game is executed in the order of winning without distinguishing between the figure fluctuation display game and the first special figure fluctuation display game.
そこで、第1の実施の形態では、始動記憶に大当り乱数、大当り図柄乱数、変動パターン乱数が含まれていたが、第2の実施の形態では、さらに、第1始動入賞口37に遊技球が入賞したか、第2始動入賞口34に遊技球が入賞したかを区別する、すなわち、実行される特図変動表示ゲームが第1特図変動表示ゲームであるか、又は、第2特図変動表示ゲームであるかを区別するための特図識別bitが始動記憶に含まれる。また、始動記憶の上限も実質的には8個となるので、ユーザワークRAM104において、8ブロック分の乱数の保存領域を確保し、これを保留1〜保留8として割り当てるものとする。
Therefore, in the first embodiment, the big hit random number, the big hit symbol random number, and the fluctuation pattern random number are included in the start memory, but in the second embodiment, a game ball is further added to the first
図53A及び図53Bは、本発明の第2の実施の形態の特図変動表示ゲームを実行するために必要な各種乱数の保存領域を示す図であり、図53Aは保留1から4、図53Bは保留5から8に対応する各種乱数の保存領域を示す。
53A and 53B are diagrams showing storage areas for various random numbers necessary for executing the special figure variation display game according to the second embodiment of the present invention, and FIG. 53A is a
本実施形態では、図53A及び図53Bに示すように、第3変動パターン乱数を格納する領域の先頭bitを特図識別bitとする。 In the present embodiment, as shown in FIGS. 53A and 53B, the top bit of the area storing the third variation pattern random number is set as a special figure identification bit.
なお、図40の特図始動口SW共通処理を実行する際に、ステップ4004〜4006で取得した各種乱数値を、ステップ4008〜4010にて対応する乱数記憶領域に記させることになるが、対応する領域が第1の実施の形態とは異なっている。第2の実施形態においての対応する乱数記憶領域とは、第1特図保留カウンタと第2特図保留カウンタとの合算値に対応する領域である。
In addition, when executing the special figure start port SW common process of FIG. 40, various random number values acquired in
例えば、第1始動入賞口37若しくは第2始動入賞口34に遊技球が入賞した結果、第1特図保留カウンタと第2特図保留カウンタとの合算値が「2」となった場合は、図53Aにおける「保留2の保存領域」に割り当てられた各種乱数の保存領域に、ステップ4004〜4006で取得した各種乱数値を記憶することになる。このとき、第1始動入賞口37への入賞であれば「保留2の保存領域」の特図識別bitには「0」が設定され、第2始動入賞口34への入賞であれば「保留2の保存領域」の特図識別bitには「1」が設定される。
For example, when the game ball is won at the first
同様に、第1始動入賞口37若しくは第2始動入賞口34に遊技球が入賞した結果、第1特図保留カウンタと第2特図保留カウンタとの合算値が「7」となった場合は、図53Bにおける「保留7の保存領域」に割り当てられた各種乱数の保存領域に、ステップ4004〜4006で取得した各種乱数値を記憶することになる。このとき、第1始動入賞口37への入賞であれば「保留7の保存領域」の特図識別bitには「0」が設定され、第2始動入賞口34への入賞であれば「保留7の保存領域」の特図識別bitには「1」が設定される。
Similarly, when the game ball is won at the first
図54は、本発明の第2の実施の形態の特図保留情報判定処理の手順を示すフローチャートである。なお、第1の実施の形態の特図保留情報判定処理と共通の処理については、図41と同じ符号を割り当てて記載を省略する。 FIG. 54 is a flowchart illustrating a procedure of special figure hold information determination processing according to the second embodiment of this invention. In addition, about the process common to the special figure pending | holding information determination process of 1st Embodiment, the code | symbol same as FIG. 41 is allocated and description is abbreviate | omitted.
本発明の第2の実施の形態では、遊技制御装置100は、特図1と特図2とを区別せずに始動記憶を扱うので、第1の実施の形態におけるステップ4100〜ステップ4102のような条件を設定せずに無条件で特図大当り判定処理(4103)を実行する。
In the second embodiment of the present invention, the
図55は、本発明の第2の実施の形態の特図普段処理の手順を示すフローチャートである。なお、第1の実施の形態と共通の処理については、図45と同じ符号を割り当てて記載を省略する。 FIG. 55 is a flowchart showing the procedure of the special figure normal processing according to the second embodiment of this invention. In addition, about the process which is common in 1st Embodiment, the code | symbol same as FIG. 45 is allocated and description is abbreviate | omitted.
本発明の第2の実施の形態では、特図2始動記憶を優先して消化しない。そこで、まず、遊技制御装置100は、特図1及び特図2の保留数を合計し(5500)、合計保留数が0より大きいか否か、すなわち、特図1又は特図2の保留があるか否かを判定する(5501)。そして、保留がある場合には、ステップ5502において次の保留が特図1の保留であるか否かを判定する。そして、保留が特図1である場合には、特図1変動開始処理(4503)を実行する。また、保留が特図1でなく特図2である場合には、特図2変動開始処理(4504)を実行する。
In the second embodiment of the present invention, priority is not given to the special figure 2 starting memory. Therefore, first, the
なお、特図1変動開始処理と特図2変動開始処理のいずれの処理を行ったかにかかわらず、図46の処理において、遊技制御装置100は、図53Aの保留1の保存領域を、次回の変動の対象として指定する(4600若しくは4603)。さらに、この指定された記憶領域から大当り乱数、大当り図柄乱数、第1〜第3変動パターン乱数を取得した後、保留1〜7個目に対応する保留乱数記憶領域(図53A及び図53B)に、保留2〜8個目に対応する保留乱数記憶領域(次回以降の変動に対応する記憶領域:図53A及び図53B参照)の各乱数をシフトし(4601若しくは4604)、以降の処理(4602若しくは4605)の処理を実行することになる。
Regardless of whether the special figure 1 fluctuation start process or the special figure 2 fluctuation start process is performed, in the process of FIG. 46, the
一方、ステップ5501の処理で合計保留数が0の場合には、遊技制御装置100は、ステップ4506以降の処理を実行する。
On the other hand, if the total number of holds is 0 in the process of
このように、本発明の第2の実施の形態によれば、第2特図変動表示ゲームを優先して実行しない場合であっても、第1の実施の形態と同様に、遊技制御プログラム全体のコード量を削減することが可能となる。 Thus, according to the second embodiment of the present invention, even if the second special figure variation display game is not executed preferentially, the entire game control program is similar to the first embodiment. It is possible to reduce the amount of code.
なお、今回開示した実施の形態における補助遊技は、例として、変動表示ゲームを開示しているが、これに限定されるものではない。例えば、遊技の実行中に遊技者にボタン等による選択操作をさせ、その操作入力に対応して遊技結果が導出されるような遊技も含まれる。あるいは、遊技の実行中に遊技球やメダルなどの遊技媒体が所定の領域に入賞するか否かの物理的な抽選を行わせ、その抽選結果に対応して遊技結果が導出されるような遊技も補助遊技に含まれる。この場合、遊技媒体が所定の領域に入賞することが「特別な結果」となる。 In addition, although the auxiliary | assistant game in embodiment disclosed this time has disclosed the variable display game as an example, it is not limited to this. For example, a game in which a player performs a selection operation using a button or the like during the execution of a game and a game result is derived in response to the operation input is also included. Alternatively, a game in which a physical lottery is performed as to whether or not a game medium such as a game ball or medal wins a predetermined area during the execution of the game, and a game result is derived in accordance with the lottery result Is also included in auxiliary games. In this case, it is a “special result” that the game medium wins a predetermined area.
また、今回開示した実施の形態における遊技機には、パチンコ機以外の様々な遊技機が適用可能である。例えば、パチスロ機、アレンボール機、じゃん球遊技機などにも適用が可能である。 In addition, various gaming machines other than pachinko machines can be applied to the gaming machines in the embodiment disclosed this time. For example, the present invention can be applied to a pachislot machine, an allen ball machine, a ball ball game machine, and the like.
なお、今回開示した実施の形態は、全ての点で例示であって制限的なものではない。また、本発明の範囲は前述した発明の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲での全ての変更が含まれることが意図される。 The embodiment disclosed this time is illustrative in all points and is not restrictive. The scope of the present invention is shown not by the above description of the invention but by the scope of claims, and is intended to include all modifications within the scope and meaning equivalent to the scope of claims.
以上のように、本発明は、レジスタを備えたプロセッサを含む遊技制御装置が遊技制御を行う遊技機に適用可能である。 As described above, the present invention can be applied to a gaming machine in which a game control device including a processor including a register performs game control.
1 遊技機
2 本体枠(外枠)
3 前面枠
5 遊技盤
6 遊技装置
8 表示装置
18 ガラス枠
31 普通図柄始動ゲート
32 一般入賞口
33 普通変動入賞装置
34 第2始動入賞口
36 特別変動入賞装置
37 第1始動入賞口
51 遊技領域
70 カードユニット
100 遊技制御装置
101 遊技用マイコン
102、601 CPUコア
103、602 ユーザプログラムROM
104、604 ユーザワークRAM
150 演出制御装置(表示制御装置)
160 電源装置
161 バックアップ電源
210 払出制御装置
600 遊技用演算処理装置(アミューズチップ)
603 HWパラメータROM
608 乱数生成回路
609 クロック生成回路
610A 割込制御回路
610B リセット回路
611 アドレスデコーダ
618 HPGプログラムROM
619 IDプロパティメモリ
621 HPGワークRAM
629 分周回路
630 セキュリティ回路
640 RAMアクセス規制回路(更新規制手段)
641 フリップフロップ回路
642 ORゲート回路
650 アドレスバス
660 データバス
702 ワークエリア
705 使用禁止領域(アクセス禁止領域)
706 スタック領域
1200 フラグレジスタ
1203A、1203B WAレジスタ
1206A、1206B BCレジスタ
1209A、1209B DEレジスタ
1212A、1212B HLレジスタ
1220A、1220B 汎用レジスタ群
1230 Kレジスタ
1233 スタックポインタ(SP)レジスタ
1234 プログラムカウンタ(PC)レジスタ
1240 内蔵リセット回路
1241 初期値設定回路(固有値設定手段)
1242 命令解釈実行回路
1243 アクセス回路
1
DESCRIPTION OF
104, 604 User work RAM
150 Production control device (display control device)
160
603 HW parameter ROM
608 Random
619
629
641 Flip-
706
1242 Instruction
Claims (1)
前記遊技制御装置には、
遊技制御プログラムを記憶する遊技制御プログラム記憶手段と、
前記遊技制御プログラムにより所要の演算処理を行う演算処理手段と、
前記演算処理を行う際に値が記憶されるレジスタと、
前記演算処理手段によって更新される情報が記憶される更新情報記憶手段と、
を備え、
前記更新情報記憶手段にはスタック領域が設定され、
前記レジスタには、前記演算処理手段による演算結果を記憶するためのフラグレジスタが含まれ、
前記遊技制御プログラムには、
呼出元の処理が記述された呼出元ルーチンと、
前記呼出元ルーチンに記述された呼出の命令が実行された場合に呼び出される処理が記述された第1の呼出先ルーチンと、
前記呼出元ルーチンに記述された命令の実行中において、所定の割込信号が発生した場合に呼び出される処理が記述された第2の呼出先ルーチンと、が含まれ、
前記演算処理手段は、
前記第1の呼出先ルーチンが呼び出された場合は、前記フラグレジスタの値を前記スタック領域に格納せず、格納命令を実行することなく前記呼出元ルーチンに含まれる戻りアドレスの値を前記スタック領域に格納し、前記第1の呼出先ルーチンの処理の実行を開始する一方で、
前記第2の呼出先ルーチンが呼び出された場合は、格納命令を実行することなく前記フラグレジスタの値と前記呼出元ルーチンに含まれる戻りアドレスの値の各々を前記スタック領域に格納し、前記第2の呼出先ルーチンの処理の実行を開始し、
前記第2の呼出先ルーチンが呼び出された場合は、前記フラグレジスタの値を前記スタック領域に格納した後に、前記呼出元ルーチンに含まれる戻りアドレスの値を前記スタック領域に格納することを特徴とする遊技機。 Run the Ri遊 technique by the establishment of a predetermined restart condition, with a game controller for the game control for generating special game state to grant a privilege to the player if the recreation is a special result game In the machine
In the game control device,
Game control program storage means for storing a game control program;
Arithmetic processing means for performing required arithmetic processing by the game control program;
A register for storing a value when performing the arithmetic processing;
Update information storage means for storing information updated by the arithmetic processing means;
With
A stack area is set in the update information storage means,
The register includes a flag register for storing a calculation result by the calculation processing unit,
The game control program includes
A caller routine describing the caller's processing;
A first call destination routine describing a process to be called when a call instruction described in the call source routine is executed;
A second call destination routine describing a process to be called when a predetermined interrupt signal is generated during execution of the instruction described in the call source routine,
The arithmetic processing means includes:
When the first call destination routine is called, the value of the flag register is not stored in the stack area, and the return address value included in the call source routine is not stored in the stack area without executing a store instruction. while stored, it starts execution of the processing of pre-Symbol first callee routine,
When said second callee routine is called, stores each of the flags register value with the value of the return address contained in the calling routine without executing the stored command to the stack area, before Symbol The execution of the processing of the second call destination routine is started ,
Before SL If second callee routine is called, the value of the flag register after storing in said stack area, characterized by storing a value of the return address contained in the calling routine to the stack area A gaming machine.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012107583A JP5740623B2 (en) | 2012-05-09 | 2012-05-09 | Game machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012107583A JP5740623B2 (en) | 2012-05-09 | 2012-05-09 | Game machine |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015066912A Division JP6060367B2 (en) | 2015-03-27 | 2015-03-27 | Game machine |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013233293A JP2013233293A (en) | 2013-11-21 |
JP2013233293A5 JP2013233293A5 (en) | 2014-03-13 |
JP5740623B2 true JP5740623B2 (en) | 2015-06-24 |
Family
ID=49759908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012107583A Active JP5740623B2 (en) | 2012-05-09 | 2012-05-09 | Game machine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5740623B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5055681B2 (en) * | 2004-02-27 | 2012-10-24 | 株式会社三洋物産 | Game machine |
JP5238952B2 (en) * | 2007-12-11 | 2013-07-17 | 株式会社大一商会 | Game machine |
JP2011172654A (en) * | 2010-02-23 | 2011-09-08 | Sophia Co Ltd | Game machine |
JP5610876B2 (en) * | 2010-06-25 | 2014-10-22 | 株式会社平和 | Game machine |
JP4897100B1 (en) * | 2011-04-19 | 2012-03-14 | 株式会社大都技研 | Amusement stand |
-
2012
- 2012-05-09 JP JP2012107583A patent/JP5740623B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013233293A (en) | 2013-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5906131B2 (en) | Game machine | |
JP5969812B2 (en) | Game machine | |
JP5969813B2 (en) | Game machine | |
JP5820333B2 (en) | Game machine | |
JP6028191B2 (en) | Game machine | |
JP5820334B2 (en) | Game machine | |
JP5906129B2 (en) | Game machine | |
JP5977792B2 (en) | Game machine | |
JP5740620B2 (en) | Game machine | |
JP2013192794A (en) | Game machine | |
JP2016182371A (en) | Game machine | |
JP5883348B2 (en) | Game machine | |
JP5945759B2 (en) | Game machine | |
JP5643974B2 (en) | Game machine | |
JP5643975B2 (en) | Game machine | |
JP5945758B2 (en) | Game machine | |
JP5740623B2 (en) | Game machine | |
JP5740622B2 (en) | Game machine | |
JP5740619B2 (en) | Game machine | |
JP5740621B2 (en) | Game machine | |
JP5814856B2 (en) | Game machine | |
JP5969814B2 (en) | Game machine | |
JP5906130B2 (en) | Game machine | |
JP5977793B2 (en) | Game machine | |
JP6149187B2 (en) | Game machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140623 |
|
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: 20150324 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150327 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5740623 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |