以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、スロット機などの他の遊技機に適用することもできる。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と遊技球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが識別情報としての図柄を可変表示する複数の可変表示部を含む可変表示装置(特別図柄表示装置)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。また、可変表示装置9には、始動入賞口14に入った有効入賞球数すなわち始動記憶数を表示する4つの特別図柄始動記憶表示エリア(始動記憶表示エリア)18が設けられている。有効始動入賞がある毎に、表示色が変化する(例えば青色表示から赤色表示に変化)始動記憶表示エリアを1増やす。そして、可変表示装置9の可変表示が開始される毎に、表示色が変化している始動記憶数表示エリアを1減らす(すなわち表示色をもとに戻す)。この例では、図柄表示エリアと始動記憶表示エリアとが区分けされて設けられているので、可変表示中も始動記憶数が表示された状態にすることができる。なお、始動記憶表示エリアを図柄表示エリアの一部に設けるようにしてもよい。また、可変表示中は始動記憶数の表示を中断するようにしてもよい。また、この例では、始動記憶表示エリアが可変表示装置9に設けられているが、始動記憶数を表示する表示器(特別図柄始動記憶表示器)を可変表示装置9とは別個に設けてもよい。
可変表示装置9の下方には、始動入賞口14としての可変入賞球装置15が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。また、始動入賞口14の下部には開閉動作を行う可変入賞球装置15が設けられている。可変入賞球装置15は、ソレノイド16によって開状態とされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態とされる開閉板20が設けられている。開閉板20は大入賞口(可変入賞球装置)を開閉する手段である。開閉板20から遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域:特別領域)に入った入賞球はVカウントスイッチ22で検出され、開閉板20からの入賞球はカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。
ゲート32に遊技球が入賞しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に右側のランプが点灯すれば当たりとなる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32に入った入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への入賞がある毎に、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33,39への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。各入賞口29,30,33,39は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、始動入賞口14や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
そして、この例では、左枠ランプ28bの近傍に、賞球払出中に点灯する賞球LED51が設けられ、天枠ランプ28aの近傍に、補給球が切れたときに点灯する球切れLED52が設けられている。上記のように、この実施の形態のパチンコ遊技機1には、発光体としてのランプやLEDが各所に設けられている。さらに、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、カードユニットという。)が、パチンコ遊技機1に隣接して設置される(図示せず)。
打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、可変表示装置9において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、始動記憶数を1増やす。
可変表示装置9における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄の組み合わせが大当り図柄(特定表示結果)であると、大当り遊技状態に移行する。すなわち、開閉板20が、一定時間経過するまで、または、所定個数(例えば10個)の遊技球が入賞するまで開放する。そして、開閉板20の開放中に遊技球がV入賞領域に入賞しVカウントスイッチ22で検出されると、継続権が発生し開閉板20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。
停止時の可変表示装置9における特別図柄の組み合わせが確率変動を伴う大当り図柄(確変図柄)の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態となる。
遊技球がゲート32に入賞すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。さらに、確変状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数が高められる。すなわち、可変入賞球装置15の開放時間と開放回数は、普通図柄の停止図柄が当り図柄であったり、特別図柄の停止図柄が確変図柄である場合等に高められ、遊技者にとって不利な状態から有利な状態に変化する。なお、開放回数が高められることは、閉状態から開状態になることも含む概念である。
図2は、主基板31における回路構成の一例を示すブロック図である。なお、図2には、払出制御基板37および演出制御基板80等も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路(遊技制御用マイクロコンピュータに相当:遊技制御手段)53と、ゲートスイッチ32a、始動口スイッチ14a、Vカウントスイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、およびクリアスイッチ921からの信号を基本回路53に与える入力ドライバ回路58と、可変入賞球装置15を開閉するソレノイド16、開閉板20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動するソレノイド回路59とが搭載されている。
なお、ゲートスイッチ32a、始動口スイッチ14a、Vカウントスイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。入賞検出を行う始動口スイッチ14a、Vカウントスイッチ22、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの各スイッチは、入賞検出手段でもある。なお、入賞検出手段は、複数の入賞口に別個に入賞したそれぞれの遊技球をまとめて検出するものであってもよい。また、ゲートスイッチ32aのような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞になり、通過ゲートに設けられているスイッチ(例えばゲートスイッチ32a)が入賞検出手段になる。さらに、この実施の形態では、V入賞領域に入賞した遊技球はVカウントスイッチ22のみで検出されるので、大入賞口に入賞した遊技球数は、Vカウントスイッチ22による検出数とカウントスイッチ23による検出数との和になる。しかし、V入賞領域に入賞した遊技球が、Vカウントスイッチ22で検出されるとともにカウントスイッチ23でも検出されるようにしてもよい。その場合には、大入賞口に入賞した遊技球数は、カウントスイッチ23による検出数に相当する。
また、基本回路53から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示装置9における図柄の可変表示開始に利用された始動入賞球の個数を示す有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路64が搭載されている。
遊技制御用マイクロコンピュータで実現される基本回路53は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54およびRAM55はCPU56に内蔵されている。すなわち、CPU56は、1チップマイクロコンピュータである。1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54およびI/Oポート部57は外付けであっても内蔵されていてもよい。なお、CPU56はROM54に格納されているプログラムに従って制御を実行するので、以下、CPU56が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているCPUについても同様である。また、遊技制御手段は、遊技制御用マイクロコンピュータで実現される基本回路53で実現されているが、主として、遊技制御用マイクロコンピュータにおけるプログラムに従って制御を実行するCPU56で実現される。
また、RAM55は、その一部または全部が電源基板において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグ等)と未払出賞球数を示すデータは、バックアップRAMに保存される。なお、遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
遊技球を打撃して発射する打球発射装置は払出制御基板37上に搭載されている払出制御用マイクロコンピュータを含む払出制御手段によって制御される発射モータ94を含み、発射モータ94が回転することによって遊技球を遊技領域7に向けて発射する。発射モータ94を駆動するための駆動信号は、タッチセンサ基板91を介して発射モータ94に伝達される。また、払出制御手段は、インタフェース基板(中継基板)66を介してカードユニット50と通信を行う。
なお、この実施の形態では、演出制御基板80に搭載されている演出制御手段が、遊技盤6に設けられている普通図柄始動記憶表示器41および装飾ランプ25の表示制御を行うとともに、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cの表示制御を行う。また、演出制御基板80に搭載されている演出制御手段は、特別図柄を可変表示する可変表示装置9および普通図柄を可変表示する普通図柄表示器10の表示制御も行う。さらに、スピーカ27からの音発生を制御する。
図3は、主基板31に搭載されている発振器72、カウンタ73およびラッチ回路74(図2において図示せず)をCPU56および入力ポート75,76とともに示すブロック図である。入力ポート75,76は、図2に示すI/Oポート57の一部である。
発振器72は、CPU56の動作クロックの周波数よりも高い周波数のクロック信号を発振してカウンタ73に供給する。この実施の形態では、カウンタ73は、16ビットカウンタであり、発振器72からのクロック信号によってカウント値を歩進(1増やすこと)させる。カウント値は、10進で0から65535まで進み、さらに歩進すると値が0に戻る。ラッチ回路74は、CPU56から出力されるタイミング信号によって、カウンタ73のカウント値をラッチする。すなわち、カウント値を保持する。なお、CPU56は、出力ポートを介してタイミング信号を出力するが、図3において出力ポートは記載省略されている。
CPU56は、汎用レジスタと専用レジスタとを内蔵している。汎用レジスタとして、例えば、B,C,D,E,H,Lレジスタがあり、専用レジスタとして、例えば、インデックスレジスタ、メモリリフレッシュレジスタ(リフレッシュレジスタ)、スタックポインタ等がある。リフレッシュレジスタは8ビットレジスタであり、ROM54に格納されているプログラムの命令をフェッチ(ROM54内の機械語命令をCPU56内の制御機構(ALU)に読み込むこと)する毎に値が自動的に+1(インクリメント)されるレジスタであるとする。ただし、最上位ビットはインクリメントされず、実質的には7ビットレジスタである。なお、プログラムの命令フェッチが発生する時間間隔は、一般に、数マイクロ秒以下であり、また、一定時間ではない。
次に遊技機の動作について説明する。図4は、主基板31における遊技制御手段が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、CPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。割込モード2は、CPU56の専用レジスタのうちの特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードである。そして、内蔵デバイスレジスタの初期化を行う(ステップS4)。内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化(ステップS5)を行った後、RAM55をアクセス可能状態に設定する(ステップS6)。
次いで、CPU56は、入力ポート1を介して入力されるクリアスイッチ921の出力信号の状態を1回だけ確認する(ステップS7)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理を実行する(ステップS10〜ステップS15)。クリアスイッチ921がオンである場合(押下されている場合)には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート1では、クリアスイッチ信号のオン状態はハイレベルである。また、例えば、遊技店員は、クリアスイッチ921をオン状態にしながら遊技機に対する電力供給を開始する(例えば電源スイッチ914をオンする)ことによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
クリアスイッチ921がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような保護処理が行われていたことを確認した場合には、CPU56はバックアップあり(バックアップRAM領域のデータ保護処理が行われた)と判定する。そのような保護処理が行われていないことを確認した場合には、CPU56は初期化処理を実行する。
保護処理が行われていたか否かは、後述する電力供給停止時処理においてバックアップRAM領域に保存されるバックアップ監視タイマの値が、バックアップRAM領域のデータ保護処理を実行したことに応じた値(例えば2)になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域にデータ保護処理を実行したことを示すフラグをセットし、ステップS8において、そのフラグがセットされていることを確認したらバックアップありと判定してもよい。
バックアップありと判定したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理(ステップS10〜S15の処理)を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS91)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS92)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS91およびS92の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグなど)や未払出賞球数を示すデータが設定されている部分である。
また、CPU56は、ROM54に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS93)、その内容に従ってサブ基板(払出制御基板37および演出制御基板80)に、電力供給が復旧した旨を示す制御コマンドが送信されるように制御する(ステップS94)。そして、ステップS15に移行する。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。なお、RAM55の全領域を初期化せず、所定のデータ(例えば大当り判定用乱数を生成するためのカウンタのカウント値のデータ)をそのままにしてもよい。例えば、大当り判定用乱数を生成するためのカウンタのカウント値のデータをそのままにした場合には、不正な手段によって初期化処理が実行される状態になったとしても、大当り判定用乱数を生成するためのカウンタのカウント値が大当り判定値に一致するタイミングを狙うことは困難である。また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次作業領域に設定する(ステップS12)。ステップS11およびS12の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
また、CPU56は、CPU56は、ROM54に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS13)、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンド等がある。
そして、ステップS15において、CPU56は、所定時間(例えば2ms)毎に定期的にタイマ割込がかかるようにCPU56に内蔵されているCTCのレジスタの設定を行なう。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2ms毎に定期的にタイマ割込がかかるとする。
初期化処理の実行(ステップS10〜S15)が完了すると、CPU56は、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)を繰り返し実行する。CPU56は、表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする(ステップS19)。なお、表示用乱数とは、可変表示装置9に表示される図柄を決定するための乱数等であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、所定のカウンタのカウント値の初期値を決定するための乱数である。
次に、遊技制御処理について説明する。図5は、タイマ割込処理を示すフローチャートである。メイン処理に実行中に、具体的には、ステップS16〜S19のループ処理の実行中に、タイマ割込が発生すると、CPU56は、タイマ割込の発生に応じて起動されるタイマ割込処理において遊技制御処理を実行する。タイマ割込処理において、CPU56は、まず、タイミング信号(図3参照)を出力するための処理であるタイミング信号出力処理を実行する(ステップS19)。そして、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断処理(電源断検出処理)を実行する(ステップS20)。電源断信号は、電源基板等に搭載されている電圧低下検出回路からの出力信号である。また、電源断処理において、電源断信号が出力されたことが検出された場合には、バックアップRAM領域のデータ保護処理を実行する。
次いで、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。なお、各スイッチの検出信号を確認する処理を実行する部分では、スイッチタイマの値が+2になっていたら、スイッチがオンしたと判定する。すなわち、2回の連続する遊技制御処理においてスイッチの検出信号の状態がオン状態であることを検知した場合に、CPU56は、スイッチがオンしたと判定する。
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する(+1する)処理を行う(ステップS23)。CPU56は、さらに、表示用乱数および初期値用乱数を生成するためのカウンタのカウント値を更新する(+1する)処理を行う(ステップS24,S25)。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS26)。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS27)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄に関する図柄制御コマンドをRAM55の所定の領域に設定して図柄制御コマンドを送出する処理を行う(特別図柄コマンド制御処理:ステップS28)。また、普通図柄に関する図柄制御コマンドをRAM55の所定の領域に設定して図柄制御コマンドを送出する処理を行う(普通図柄コマンド制御処理:ステップS29)。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS30)。
また、CPU56は、入賞口スイッチ29a,30a,33a,39a等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS31)。具体的には、入賞口スイッチ29a,30a,33a,39a等がオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す賞球制御信号等の払出制御信号を出力する。払出制御基板37に搭載されている払出制御用CPU371は、賞球個数を示す賞球制御信号等の払出制御信号に応じて球払出装置97を駆動する。
そして、CPU56は、始動入賞記憶数の増減をチェックする記憶処理を実行する(ステップS32)。また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS33)。また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポート3のRAM領域におけるソレノイドに関する内容を出力ポートに出力する(ステップS34:ソレノイド出力処理)。その後、割込許可状態に設定し(ステップS35)、処理を終了する。
以上の制御によって、この実施の形態では、遊技制御処理は定期的(例えば2ms毎)に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。また、ステップS19,S21〜S34の処理(ステップS30およびS33を除く)が、遊技の進行を制御する遊技制御処理に相当する。
図6は、各乱数を示す説明図である。各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:大当りを発生させるか否か決定する(大当り判定用)
(2)ランダム2−1〜2−3(ランダム2):特別図柄の左中右のはずれ図柄決定用(特別図柄左中右)
(3)ランダム3:大当りを発生させる特別図柄の組合せを決定する(大当り図柄決定用)
(4)ランダム4:特別図柄の変動パターンを決定する(変動パターン決定用)
(5)ランダム5:普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(6)ランダム6:ランダム5の初期値を決定する(ランダム5初期値決定用)
図5に示された遊技制御処理におけるステップS23では、CPU56は、(3)の大当り図柄決定用乱数、および(5)の普通図柄当り判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。それらとランダム1とが判定用乱数であり、それら以外の乱数が表示用乱数または初期値用乱数である。なお、遊技効果を高めるために、上記(1)〜(6)の乱数以外の乱数を用いてもよい。
図7は、入力ポート75,76を介してラッチ回路74から入力したデータ(数値)にもとづいてランダム1を生成する方法を示す説明図である。この実施の形態では、ラッチ回路74から入力されるデータのうち下位14ビットを使用する。従って、入力されるデータ(ハードウェア乱数ともいう。)は、2進14ビット(10進で0〜16383のいずれか)の値を示すことになる。CPU56は、0〜16383を52毎に区切ってランダム1を生成する。例えば、ラッチ回路74から入力されるデータが0〜51のいずれかであれば、ランダム1を「0」とする。ラッチ回路74から入力されるデータが52〜103のいずれかであれば、ランダム1を「1」とする。同様にして、0〜315のうちのいずれかの値となるランダム1を生成する。なお、0〜16383を52毎に区切った場合に最後は52に満たなくなるので、ランダム1=「315」に対応するデータの個数は52よりも少ない。
図8は、CPU56が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。図8に示す特別図柄プロセス処理は、図5のフローチャートにおけるステップS26の具体的な処理である。CPU56は、特別図柄プロセス処理を行う際に、変動短縮タイマ減算処理(ステップS310)を行い、遊技盤6に設けられている始動入賞口14に遊技球が入賞したことを検出するための始動口スイッチ14aがオンしていたら、すなわち遊技球が始動入賞口14に入賞する始動入賞が発生していたら(ステップS311)、始動口スイッチ通過処理(ステップS312)を行った後に、内部状態に応じて、ステップS300〜S308のうちのいずれかの処理を行う。変動短縮タイマは、特別図柄の変動時間が短縮される場合に、変動時間を設定するためのタイマである。
特別図柄通常処理(ステップS300):特別図柄の可変表示を開始できる状態になるのを待つ。特別図柄の可変表示が開始できる状態になると、始動入賞記憶数を確認する。始動入賞記憶数が0でなければ、特別図柄の可変表示の結果、大当りとするか否か決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS301に移行するように更新する。
特別図柄停止図柄設定処理(ステップS301):特別図柄の可変表示後の左中右図柄の停止図柄を決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS302に移行するように更新する。
変動パターン設定処理(ステップS302):特別図柄の可変表示の変動パターン(可変表示態様)を、ランダム4の値に応じて決定する。また、変動時間タイマをスタートさせる。このとき、演出制御基板80に対して、左中右最終停止図柄と変動態様(変動パターン)を指令する情報とが送信される。そして、内部状態(特別図柄プロセスフラグ)をステップS303に移行するように更新する。
特別図柄変動処理(ステップS303):所定時間(ステップS302の変動時間タイマで示された時間)が経過すると、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。
特別図柄停止処理(ステップS304):可変表示装置9において表示される全図柄が停止されるように制御する。具体的には、特別図柄停止を示す演出制御コマンドが送信される状態に設定する。そして、停止図柄が大当り図柄の組み合わせである場合には、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。
大入賞口開放開始処理(ステップS305):大入賞口を開放する制御を開始する。具体的には、カウンタやフラグを初期化するとともに、ソレノイド21を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS306に移行するように更新する。
大入賞口開放中処理(ステップS306):大入賞口ラウンド表示の演出制御コマンドを演出制御基板80に送出する制御や大入賞口の閉成条件の成立を確認する処理等を行う。最後の大入賞口の閉成条件が成立したら、内部状態をステップS307に移行するように更新する。
特定領域有効時間処理(ステップS307):Vカウントスイッチ22の通過の有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態をステップS305に移行するように更新する。また、所定の有効時間内に大当り遊技状態継続条件が成立しなかった場合、または、全てのラウンドを終えた場合には、内部状態をステップS308に移行するように更新する。
大当り終了処理(ステップS308):大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。そして、内部状態をステップS300に移行するように更新する。
図9は始動口スイッチ通過処理(ステップS312)を示すフローチャートである。始動口スイッチ通過処理において、CPU56は、始動入賞記憶数が最大値である4に達しているかどうか確認する(ステップS42)。始動入賞記憶数が4に達していなければ、CPU56は、リフレッシュレジスタの値をロードする(ステップS43)。そして、リフレッシュレジスタの下位2ビットの値(0〜3のいずれか)に1加算した値(1〜4のいずれか)をタイミングカウンタにセットする(ステップS44)。タイミングカウンタとは、次回に起動される遊技制御処理を実行するための定期処理(タイマ割込処理)を1回目として、何回目の定期処理において、ラッチ回路74からデータ(数値)を入力するのかを示すカウンタであり、RAM55に形成されている。従って、タイミングカウンタに設定される値は、(2msの整数倍+α)のランダムな時間を設定するための値となる。αは、実際に始動口スイッチ14aが検出信号を出力してから定期処理が開始されるまでの時間に相当し、不定時間である。
また、リフレッシュレジスタのビット2〜6を2ビット下位にシフトし上位3ビットを0にした値(0〜63のいずれか)をディレイカウンタにセットする(ステップS45)。ディレイカウンタとは、遊技制御処理が開始されてからラッチ回路74からデータを入力する時点を規定するためのカウンタであり、定期処理が起動されてからランダムな時間経過後にタイミング信号を出力することを実現するためのカウンタである。
図10は、図5に示すタイマ割込処理におけるタイミング信号出力処理(ステップS19)の処理例を示すフローチャートである。タイミング信号出力処理において、まず、タイミングカウンタの値を確認する(ステップS71)。タイミングカウンタの値が0であれば、処理を終了する。0でなければ、タイミングカウンタの値を−1する(ステップS72)。そして、タイミングカウンタの値を再度確認し(ステップS73)、タイミングカウンタの値が0でなければ、タイミング信号出力タイミングがまだ到来していないとして処理を終了する。0になっていれば、ディレイカウンタの値をロードする(ステップS74)。そして、ディレイカウンタの値が0になるまで、その値を−1する(ステップS75,S76,S77)。
ディレイカウンタの値が0になると、タイミング信号を出力してラッチ回路74からデータを入力するランダム1生成処理を実行する(ステップS78)。そして、始動記憶数を+1し(ステップS79)、各乱数(図8に示す(2)〜(4)の乱数)を抽出し、ランダム1とともに、始動記憶数に応じた乱数値格納エリアに格納する(ステップS80)。
以上の処理によって、遊技制御手段におけるタイミング信号出力手段は、始動口スイッチ14aから検出信号が出力された時点からランダムな時間が経過した時点でタイミング信号を出力する。例えば、始動口スイッチ14aから検出信号が出力された時点以降に実行されるランダムな回(ステップS44でセットされたタイミングカウンタの値に相当)の遊技制御処理においてタイミング信号を出力する処理を実行することができる。具体的には、遊技制御手段は、リフレッシュレジスタの値にもとづいて1〜4のいずれかの数値をランダムに発生させ、始動口スイッチ14aからの検出信号が入力されてから、ランダムな数値に対応する回数(例えば0〜3回)の周期(この例では2ms)に相当する時間が経過した後に実行される定期処理としてのタイマ割込処理(例えば検出信号が入力された時点を基準として1〜4回目に実行されるタイマ割込処理)においてタイミング信号を出力する処理を実行する。また、タイマ割込処理が起動されてからランダムな時間(ステップS45でセットされたディレイカウンタの値に相当)経過後に遊技制御処理においてタイミング信号を出力する。その結果、始動口スイッチ14aから検出信号が出力された時点からランダムな時間が経過した時点でタイミング信号を出力することができる。この実施の形態では、ランダムな時間は、(2msの整数倍+α+ディレイカウンタにもとづく時間)に相当する。また、ディレイカウンタにもとづく時間は、ほぼ、(ステップS76,S77の処理時間)×(ステップS45でセットされたディレイカウンタの値)となる。なお、ステップS74〜S77の処理を実行しないように構成しても、タイミング信号を出力するタイミングを、2msの整数倍でばらつかせることが可能である。ステップS74〜S77の処理を実行しない場合には、ステップS45の処理を実行しなくてもよい。また、S71〜S73の処理を実行しなくても、タイマ割込処理が起動されてからランダムな時間経過後に遊技制御処理においてタイミング信号を出力することができるので、タイミング信号を出力するタイミングをばらつかせることが可能である。その場合には、ステップS44の処理を実行しなくてもよい。
図11は、ステップS78のランダム1生成処理を示すフローチャートである。ランダム1生成処理において、CPU56は、タイミング信号を出力する(ステップS81)。タイミング信号に応じて、ラッチ回路74は、カウンタ73のカウント値をラッチする。CPU56は、入力ポート75,76を介してラッチ回路74が保持している値を入力する(ステップS82)。そして、入力値の変換を行う(ステップS83)。
例えば、CPU56は、入力ポート75,76を介して入力したカウンタ73のカウント値を示す16ビットのうちの上位バイトと下位バイトとを入れ替える。さらに、上位2ビットをマスクし(0にし)、下位14ビットを使用する。16ビットのうちの14ビットのみを使用することによって、カウント値が周回する時間が短縮される。また、上位バイトと下位バイトとを逆にすることによって、カウンタ73の歩進の仕方とCPU56が扱うカウント値の歩進の仕方とを異ならせることができる。すなわち、実質的に、カウント値が1ずつ順に歩進するのではなくランダムに進むようにすることができる。なお、入力値の変換の方法はこの実施の形態で使用する方法に限られず、他の変換の仕方を採用してもよい。
そして、CPU56は、入力値を変換した値をバッファにセットする(ステップS84)。バッファはRAM55に形成されている。また、ランダム1生成用カウンタに、初期値として0をセットする(ステップS85)。そして、バッファの値から52を減算する(ステップS86)。減算後のバッファの値が負になっていた場合にはステップS88に移行する(ステップS87)。負になっていなければ、ランダム1生成用カウンタの値を+1して(ステップS88)、ステップS86に戻る。
そして、CPU56は、ステップS89において、そのときのランダム1生成用カウンタの値をランダム1と定める。以上のような処理によって、図7に示した方法が実現される。なお、ここで用いられている「52」(mとする。)は一例であって、mとして他の数を用いてもよい。また、カウンタ73のカウント値(実際に使用するのは変換値)をm個毎に区切る方法として他の方法を用いてもよい。例えば、カウンタ73のカウント値にmを加算していき、最大値(この例では16383)を越えたときの加算回数をランダム1としてもよい。
また、この実施の形態では、ランダム1を生成したときに、各乱数(図8に示す(2)〜(4)の乱数)も抽出するようにしたが(図10のステップS10)、それらの各乱数については、始動入賞が発生したときに抽出するようにしてもよい。
図12は、特別図柄プロセス処理における特別図柄通常処理(ステップS300)を示すフローチャートである。特別図柄通常処理において、CPU56は、特別図柄の変動を開始することができる状態(例えば特別図柄プロセスフラグの値がステップS300を示す値となっている場合)には(ステップS51)、始動入賞記憶数の値を確認する(ステップS52)。具体的には、始動入賞カウンタのカウント値を確認する。なお、特別図柄プロセスフラグの値がステップS300を示す値となっている場合とは、可変表示装置9において図柄の変動がなされていず、かつ、大当り遊技中でもない場合である。
始動入賞記憶数が0でなければ、始動入賞記憶数=1に対応する保存領域(乱数値格納エリア)に格納されている各乱数値を読み出してRAM55の乱数バッファ領域に格納するとともに(ステップS53)、始動入賞記憶数の値を1減らし、かつ、各保存領域の内容をシフトする(ステップS54)。すなわち、始動入賞記憶数=n(n=2,3,4)に対応する保存領域に格納されている各乱数値を、始動入賞記憶数=n−1に対応する保存領域に格納する。
次いで、CPU56は、乱数格納バッファから大当り判定用乱数(ランダム1)を読み出し、読み出したランダム1の値に応じて大当りとすか否かを決定する(ステップS55)。大当りとすることに決定した場合には(ステップS56)、CPU56は、大当りフラグをセットする(ステップS57)。そして、特別図柄プロセスフラグの値を特別図柄停止図柄設定処理に対応した値に更新する(ステップS58)。なお、あらかじめ0〜315の範囲内の1つまたは複数の大当り判定値が定められ、ランダム1が大当り判定値と一致した場合に大当りとすることに決定される。
大当りとすることに決定された場合には、可変表示装置9における表示結果(停止図柄)が大当り図柄になるように制御され、その後、大当り遊技状態になる。以上のように、遊技制御手段は、ラッチ回路74に対してタイミング信号を出力してカウンタ73のカウント値をラッチさせた後、ラッチ回路74から数値を入力し、入力した数値にもとづいて大当りとするか否かを決定する。
上記の実施の形態では、カウンタ73のカウント値のみを用いてランダム1を生成したが、カウント値とともに内部的に生成した乱数を用いてランダム1を生成するようにしてもよい。なお、内部的に生成した乱数とは、図6に示すランダム2〜6と同様の方法によってソフトウェアによって生成した内部乱数や、CPU内における所定のランダムな値を発生しうる手段(例えばリフレッシュレジスタ)が発生した乱数を意味する。なお、ランダム2〜6と同様の方法によってソフトウェアによって内部乱数を生成する場合には、例えば、内部乱数を生成するためのカウンタを、ステップS18,S25の表示用乱数更新処理で更新することによって内部数値更新処理が実行される。
図13は、カウント値とともに内部的に生成した乱数を用いてランダム1を生成する場合のランダム1生成処理を示すフローチャートである。図13に示す処理では、CPU56は、カウンタ73のカウント値に対してソフトウェアによって生成した乱数の値を加算した後に(ステップS90)、ステップS85以降の処理を実行する。なお、カウンタ73のカウント値と内部的に生成した乱数との演算は加算に限られず、減算、乗算、除算等他の演算を用いてもよい。このように、カウンタ73のカウント値とともに内部的に生成した乱数を用いてランダム1を生成する場合には、ランダム1の値にさらにばらつきを与えることができるので、ランダム1に周期性が生ずる可能性をさらに低減することができる。
図14は、遊技制御手段によるランダム1の生成タイミングの一例を示す説明図である。図14に示す例は、CPU56が、実際に始動口スイッチ14aが遊技球を検出した時点において実行されている遊技制御処理の次に遊技制御処理(0で示されている)において、始動口スイッチ14aに対応したスイッチタイマの値が+2になってスイッチがオンしたと判定した場合の例である。よって、CPU56は、その遊技制御処理において実行される特別図柄プロセス処理(ステップS26)における始動口スイッチ通過処理でタイミングカウンタに0でない値をセットし(ステップS44)、ディレイカウンタにランダムな値をセットする(ステップS45)。
また、図14には、タイミングカウンタに2がセットされた場合が例示されている。よって、以降の2回目の遊技制御処理(2で示されている)において、タイミング信号出力処理(ステップS19)でタイミング信号が出力され、ラッチ回路74からデータが入力され、ランダム1が生成される。
以上に説明したように、この実施の形態では、実際に始動入賞が生じた時点からランダム1が生成される時点までの時間がランダムになるので、ランダム1が大当り判定値と一致するタイミングを狙って不正に始動入賞を生じさせるような行為を行うことを困難にする。
なお、上記の実施の形態のパチンコ遊技機1は、始動入賞にもとづいて可変表示装置9に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第1種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第2種パチンコ遊技機や、始動入賞にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物への入賞があると所定の権利が発生または継続する第3種パチンコ遊技機であっても、本発明を適用できる。
また、本発明は、スロット機において効果的に適用することができる。すなわち、スロット機における遊技制御手段が、スタートレバーの押下を検出するスイッチ等の検出手段が実際に押下を検出した時点と、ビッグボーナスゲーム等の特定遊技状態を発生させるか否か判定するための乱数値を発生させる時点との間の時間を、上記の実施の形態と同様にして、ランダムにすることによって、乱数値が判定値と一致するタイミングを狙って遊技者がスタートレバーを操作することを困難にする。