以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、この実施の形態にかかるスロットマシンの全体構造を示す正面図である。スロットマシン1は、筐体本体と、筐体本体に対して開閉可能に構成された前面扉とから構成される。図1では、前面扉を閉鎖状態とした場合を示している。スロットマシン1の前面扉は、施錠装置19にキーを差し込み、時計回り方向に回動操作することにより開放状態とすることができる。筐体本体の前面扉との接触部に設けられた扉開放センサ95(図2参照)により前面扉が開放状態となっているかどうかが検出される。
このスロットマシン1の上部前面側には、可変表示装置2が設けられている。可変表示装置2は、筐体の内部に収納され、3つのリール3L、3C、3Rから構成されるリールユニット3と、前面扉に設けられ、リール3L、3C、3Rに描かれた図柄を上中下段の三段に表示させる表示窓とによって構成される。リール3L、3C、3Rは、それぞれリールモータ3ML、3MC、3MR(図2参照)の駆動によって回転/停止させられる。
リール3L、3C、3Rの外周部には、それぞれ「赤7」、「青7」、「BAR」、「JAC」、「スイカ」、「チェリー」、「ベル」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。また、リールユニット3内には、リール3L、3C、3Rのそれぞれに対して、その基準位置を検出するリールセンサ3SL、3SC、3SR(図2参照)と、背面から光を照射するリールランプ3LPとが設けられている。
また、可変表示装置2の周囲には、各種表示部が設けられている。可変表示装置2の下側には、ゲーム回数表示部21と、クレジット表示部22と、ペイアウト表示部23とが設けられている。ゲーム回数表示部21は、7セグメント表示器によるゲーム回数表示器51(図2参照)によって構成され、後述するビッグボーナス、レギュラーボーナス、RT時のゲーム数、入賞数、或いは払出メダル総数を表示する。
クレジット表示部22は、7セグメント表示器によるクレジット表示器52(図2参照)によって構成され、後述するようにメダルの投入枚数及び払い出し枚数に応じてデータとして蓄積されたクレジットの数を表示する。ペイアウト表示部23は、7セグメント表示器によるペイアウト表示器53(図2参照)によって構成され、入賞が成立した場合に払い出されるメダルの枚数を表示する。
可変表示装置2の左側には、1枚賭け表示部24、2枚賭け表示部25、26、及び3枚賭け表示部27、28が設けられている。1枚、2枚、3枚賭け表示部24〜28は、賭け数(1、2または3)に応じて有効化されたライン(以下、有効ラインという)に対応してそれぞれ1枚、2枚、3枚賭けランプ54〜58(図2参照)が点灯状態となることで、各ゲームにおける有効ラインを遊技者に示す。1枚、2枚、3枚賭け表示部24〜28は、また、後述する役への入賞があった場合に1枚、2枚、3枚賭けランプ54〜58が点滅状態となることで、後述する役に入賞した有効ラインを遊技者に示す。
可変表示装置2の右側には、投入指示表示部29と、スタート表示部30と、ウェイト表示部31と、リプレイ表示部32と、ゲームオーバー表示部33とが設けられている。投入指示表示部29は、投入指示ランプ59(図2参照)が点灯状態となることで、メダルが投入可能なことを示す。スタート表示部30は、スタートランプ60(図2参照)が点灯状態となることで、スタート可能、すなわちスタートレバー11の操作受付可能であることを示す。ウェイト表示部31は、ウェイトランプ61(図2参照)が点灯状態となることで、後述するウェイトがかかっていることを示す。リプレイ表示部32は、リプレイランプ62(図2参照)が点灯状態となることで、後述するリプレイ入賞をしたことを示す。ゲームオーバー表示部33は、ゲームオーバーランプ63(図2参照)が点灯状態となることで、スロットマシン1が打ち止めになったことを示す。
可変表示装置2の上側には、液晶表示器4が設けられている。液晶表示器4は、遊技状態に応じた様々な演出用の画像を表示する。また、液晶表示器4には、遊技に直接的または間接的に関わる様々な情報を表示することが可能であり、後述する設定値の変更操作が行われていることの報知のためにも用いられる。
また、可変表示装置2の下方に設けられた台状部分の水平面には、メダル投入口13と、1枚BETボタン14と、MAXBETボタン15と、精算ボタン16とが設けられている。1枚BETボタン14及びMAXBETボタン15には、データとして蓄積されたクレジット(最大50)から賭け数の設定を可能としているときに点灯するBETボタンランプ70a、70b(図2参照)が内部に配されている。
メダル投入口13は、遊技者がここからメダルを投入するものであり、投入指示部29が点灯しているときにメダルの投入が投入メダルセンサ44(図2参照)によって検出されると、賭け数が設定され、或いはクレジットがデータとして蓄積される。1枚BETボタン14及びMAXBETボタン15は、データとして蓄積されているクレジットから賭け数(それぞれ1、3)を設定する際に遊技者が操作するボタンであり、遊技者によって操作されたことが1枚BETスイッチ45(図2参照)またはMAXBETスイッチ46(図2参照)によって検出されると、クレジットからの賭け数の設定が行われる。精算ボタン16は、クレジットの払い出しを指示するためのボタンであり、精算スイッチ47(図2参照)によって操作が検出されると、データとして蓄積されたクレジットに応じたメダルが払い出される。
その台状部分の垂直面には、スタートレバー11と、停止ボタン12L、12C、12Rとが設けられている。スタートレバー11は、ゲームを開始する際に遊技者が操作するもので、その操作がスタートスイッチ41(図2参照)によって検出されると、リール駆動モータ3ML、3MC、3MRが駆動開始され、リール3L、3C、3Rが回転開始する。
停止ボタン12L、12C、12Rは、それぞれ遊技者が所望のタイミングでリール3L、3C、3Rの回転を停止させるべく操作するボタンであり、その操作がストップスイッチ42L、42C、42R(図2参照)で検出されると、リール3L、3C、3Rの回転が停止される。停止ボタン12L、12C、12Rの操作が可能となっていることを、その内部に備えられた操作有効ランプ63L、63C、63R(図2参照)が点灯状態となることにより、遊技者に示す。
さらに、停止ボタン12L、12C、12Rを覆うパネルが、ボーナス告知部36として適用されている。ボーナス告知部36は、ボーナス告知ランプ66(図2参照)が点灯状態となることで、後述するボーナス入賞が可能となっていることを遊技者に告知する。また、停止ボタン12Rの右側には、メダルが詰まったときなどにおいてスロットマシン1に機械的に振動を与えるメダル詰まり解消ボタン18が設けられている。
スロットマシン1の下部前面側には、メダル払い出し口71と、メダル貯留皿72とが設けられている。メダル払い出し口71は、ホッパー80(図2参照)によって払い出しが行われたメダルを外部に排出するものである。メダル貯留皿72は、払い出されたメダルを貯めておくためのものである。メダル貯留皿72の上の前面パネルには、内部に設置された蛍光灯6(図2参照)が発した光が照射される。
スロットマシン1の下部前面側と、上部前面側の左右とには、それぞれ演出手段としてのスピーカ7U、7L、7Rが設けられている。スピーカ7U、7L、7Rは、入賞時及びボーナス突入時の効果音の出力や、異常時における警報音の出力を行うと共に、遊技状態に応じた様々な演出用の音声の出力を行う。
さらに、スロットマシン1の前面側には、可変表示装置2及び液晶表示器4の周囲を取り囲むように、演出手段としての遊技効果ランプ75A〜75M(図2参照)の発光により光による演出を行う遊技効果表示部5A〜5Mが設けられている。遊技効果表示部5A〜5Mは、遊技の進行状況に応じた様々なパターンで光による演出を行うものである。なお、遊技効果表示部5A〜5Mの発光色は、単色からなるものであっても、複数色からなるものであっても構わない。
図2は、このスロットマシン1の制御回路の構成を示す図である。図示するように、このスロットマシン1の制御回路は、電源基板100、遊技制御基板101、演出制御基板102、リール中継基板103、リールランプ中継基板104及び外部出力基板105に大きく分けて構成される。
電源基板100は、AC100Vの外部電源電圧を変圧し、遊技制御基板101その他のスロットマシン1の各部に動作電力を供給する。図2では、遊技制御基板101、ホッパー80、各スイッチ91〜94にのみ接続されているように示しているが、電源基板100は、他の各部への電力の供給も行っている。電源基板100は、スロットマシン1の内部に設けられ、メダルの払い出し動作を行うホッパーモータ82と、メダルの払い出しを検知する払い出しセンサ81とから構成されるホッパー80に接続されている。
電源基板100は、後述する内部抽選への当選確率を設定し、これに基づいて算出されるメダルの払出率の設定値(設定1〜設定6)を変更するための設定スイッチ91、設定スイッチ91を操作有効とする設定キースイッチ92、内部状態(RAM112)をリセットする第2リセットスイッチ93、及び電源のON/OFF切り替えを行うメインスイッチ94に、前面扉が開放状態にあることを検出する扉開放センサ95にもそれぞれ接続されており、これらのスイッチ、センサの検出信号を遊技制御基板101へと送る。スイッチ91〜94は、スロットマシン1の内部に設けられている。
遊技制御基板101は、スロットマシン1における遊技の進行全体の流れを制御するメイン側の制御基板であり、CPU111、RAM112、ROM113及びI/Oポート114を含む1チップマイクロコンピュータからなる制御部110を搭載している。また、乱数発生回路115、サンプリング回路116その他の回路を搭載している。
CPU111は、計時機能、タイマ割り込みなどの割り込み機能(割り込み禁止機能を含む)を備え、ROM113に記憶されたプログラム(後述)を実行して、遊技の進行に関する処理を行うと共に、スロットマシン1内の制御回路の各部を直接的または間接的に制御する。CPU111は、8ビット(1バイト)を1として処理を行うものである。RAM112は、CPU111がプログラムを実行する際のワーク領域として使用される。ROM113は、CPU111が実行するプログラムや固定的なデータを記憶する。RAM112とROM113のアドレスの割り当ては、メーカにおける開発用機種とホールに納入される量産機種とで異なる。I/Oポート114は、遊技制御基板101に接続された各回路との間で制御信号を入出力する。
RAM112は、DRAM(Dynamic RAM)が使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要となる。CPU111には、このリフレッシュ動作を行うためのリフレッシュレジスタが設けられている。リフレッシュレジスタは、8ビットからなり、そのうちの下位7ビットがCPU111がROM113から命令をフェッチする度に自動的にインクリメントされるもので、その値の更新は、1命令の実行時間毎に行われる。なお、RAM112の構成については後述する。
乱数発生回路115は、後述するように所定数のパルスを発生する度にカウントアップして値を更新するカウンタによって構成され、サンプリング回路116は、乱数発生回路115がカウントしている数値を取得する。乱数発生回路115は、遊技の進行に使用される乱数の種類毎に設けられていて、乱数の種類毎にカウントする数値の範囲が定められている。CPU111は、その処理に応じてサンプリング回路116に指示を送ることで、乱数発生回路115が示している数値を乱数として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用するが、その詳細については詳しく説明する。
CPU111は、また、タイマ割り込み処理により、RAM112の特定アドレスの数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。CPU111は、I/Oポート114を介して演出制御基板102に、各種のコマンドを送信する。これらのコマンドは、それぞれ8ビットで構成される。なお、遊技制御基板101から演出制御基板102へ情報(コマンド)は一方向のみで送られ、演出制御基板102から遊技制御基板101へ向けて情報(コマンド)が送られることはない。
遊技制御基板101には、1枚BETスイッチ45、MAXBETスイッチ46、スタートスイッチ41、ストップスイッチ42L、42C、42R、精算スイッチ47、第1リセットスイッチ48、投入メダルセンサ44が接続されており、これらのスイッチ/センサ類の検出信号が入力される。また、リール中継基板103を介して、リールセンサ3SL、3SC、3SRの検出信号が入力される。I/Oポート114を介して入力されるこれらスイッチ/センサ類の検出信号、或いは前述したように電源基板100を介して入力される各種スイッチの検出信号に従って、遊技制御基板101上のCPU111は、処理を行っている。
遊技制御基板101には、また、流路切り替えソレノイド49、ゲーム回数表示器51、クレジット表示器52、ペイアウト表示器53、投入指示ランプ59、1枚賭けランプ54、2枚賭けランプ55、56、3枚賭けランプ57、58、ゲームオーバーランプ63、スタートランプ60、リプレイランプ62、BETボタンランプ70a、70b、操作有効ランプ63L、63C、63Rが接続されており、CPU111は、遊技の進行状況に従ってこれらの動作を制御している。
また、遊技制御基板101には、リール中継基板103を介してリールモータ3ML、3MC、3MRが接続されている。CPU111は、ROM113内の遊技状態に対応したリール制御テーブルを参照して、リール中継基板103を介してリールモータ3ML、3MC、3MLを制御して、リール3L、3C、3Rを停止させる。
演出制御基板102は、スロットマシン1における演出の実行を制御するサブ側の制御基板であり、CPU121、RAM122、ROM123及びI/Oポート124を含む1チップマイクロコンピュータからなる制御部120を搭載している。また、乱数発生回路125及びサンプリング回路126を搭載しており、CPU121は、サンプリング回路126により乱数発生回路125がカウントしている値を取得することにより、遊技制御基板101と同様のハードウェア乱数機能を形成している。割り込み処理によるソフトウェア乱数機能も有している。
CPU121は、ROM123に記憶されたプログラム(後述)を実行して、演出の実行に関する処理を行うと共に、演出制御基板102内の各回路及びこれに接続された各回路を制御する。演出の実行は、I/Oポート124を介して遊技制御基板101から受信したコマンドに基づいて行われる。RAM122は、CPU121がプログラムを実行する際のワーク領域として使用される。ROM123は、CPU121が実行するプログラムや固定的なデータを記憶する。I/Oポート124は、演出制御基板102に接続された各回路との間で制御信号を入出力する。
演出制御基板102には、遊技効果ランプ75A〜75M、液晶表示器4、スピーカ7L、7R、7U、蛍光灯6、ウェイトランプ61、ボーナス告知ランプ66が接続されている。また、リールランプ中継基板104を介してリールランプ3LPが接続されている。演出制御基板102の制御部は、これら各部をそれぞれ制御して、演出を行っている。
リール中継基板103は、遊技制御基板101と外部出力基板105及びリールユニット3との間を中継している。リール中継基板103には、また、満タンセンサ90が接続されており、その検出信号が入力される。満タンセンサ90は、スロットマシン1の内部に設けられ、ホッパー80からオーバーフローしたメダルを貯留するオーバーフロータンク内のメダルが満タンになったことを検知するものである。
リールランプ中継基板104は、演出制御基板102とリールユニット3との間を中継している。外部出力基板105は、ホールの管理コンピュータなどの外部装置に接続されており、遊技制御基板101からリール中継基板103を介して入力されたビッグボーナス中信号、レギュラーボーナス中信号、RT中信号、リール制御信号、ストップスイッチ信号、メダルIN信号、メダルOUT信号を、当該外部装置に出力する。
上記スロットマシン1においては、設定値に応じてメダルの払出率が変わるものであり、後述する内部抽選の当選確率は、設定値に応じて定まるものとなる。以下、設定スイッチ91による設定値の変更操作について説明する。
設定値を変更するためには、設定キースイッチ92をON状態としてからメインスイッチ92によりスロットマシン1の電源をONする必要がある。設定キースイッチ92をON状態とせずに電源をONした場合、RAM112のデータが正常であれば電源断前の状態に復帰するが、RAM112のデータが壊れていて電源断前の状態に復帰できないと、RAM112の特別ワーク以下の領域がクリアされ、設定値が1に設定される。このとき、初期化コマンドが遊技制御基板101から演出制御基板102に送られる。
設定キースイッチ92をON状態として電源をONすると、設定値の変更操作が可能となるが、ここで設定値の変更操作が可能となる前に、設定変更コマンドが遊技制御基板101から演出制御基板102に送られる。設定変更コマンドを受信することにより、演出制御基板102のCPU121は、設定値の変更操作中である旨を例えば液晶表示器4に表示するなどして報知する。
設定値の変更操作が可能な期間において、設定スイッチ91が操作されると、設定値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートレバー11が操作されてから設定キースイッチ92がOFFされると、設定値の変更が確定する。このとき、RAM112の重要ワーク以下の領域がクリアされ、ボーナス当選フラグが設定されていた場合にはこれが消去され、ボーナス中フラグが設定されていた場合にはこれが消去される。
また、設定値の確定により、状態コマンドが遊技制御基板101から演出制御基板102に送られるが、この状態コマンドは、各ゲームの終了時において演出制御基板102に送られる状態コマンドで兼用されている。演出制御基板102のCPU121は、状態コマンドを受信したときに設定値の変更中である旨を報知していれば、この報知を終了させる。
上記スロットマシン1においては、可変表示装置2の賭け数に応じて設定された有効ライン上に役図柄が揃うと、入賞となる。入賞が発生するためには、当該役の内部当選フラグが設定されている必要があるが、その詳細については後述する。入賞の際には、メダルの払い出しが行われ、また、入賞に伴って遊技状態が変化させられる。以下、これらの入賞と判定される“役”について説明する。
通常の遊技状態において、賭け数に応じた有効ライン上に、例えば「BAR」が3つ揃った場合、レギュラーボーナス入賞となり、遊技状態がレギュラーボーナスに移行する。レギュラーボーナスは、レギュラーボーナスゲーム(JACゲーム)と称されるゲームを所定回(例えば、12回)だけ行うこと、または所定回(例えば、8回)だけ入賞する(有効ライン上に「JAC」が揃う:JAC入賞)ことにより終了する。遊技状態がレギュラーボーナスにある間は、レギュラーボーナス中フラグがRAM112に設定される(次に説明するビッグボーナス中に提供された場合を含む)。
賭け数に応じた有効ライン上に、例えば「赤7」が3つ揃った場合には、ビッグボーナス入賞となり、遊技状態がビッグボーナスに移行する。ビッグボーナスにおいては、小役ゲームと称されるゲームを行うことができる。この小役ゲームでは、比較的高い確率で有効ライン上に「JAC」が揃い(JACIN入賞)、JACIN入賞すると、前述したレギュラーボーナス(JACゲーム)が提供される。ビッグボーナスは、当該期間において遊技者に払い出したメダルの枚数が規定枚数に達したときに終了する。遊技状態がビッグボーナスにある間は、ビッグボーナス中フラグがRAM112に設定される。
賭け数に応じた有効ライン上に、例えば「青7」が3つ揃った場合には、RT入賞となり、遊技状態がRT(Replay Time)に移行する。RTでは、内部抽選におけるリプレイの当選確率が通常の遊技状態よりも高くなるが、他の役の当選確率は通常の遊技状態と変わらない。RTは、所定ゲーム数を消化することによって終了する。遊技状態がRTにある間は、RT中フラグがRAM112に設定される。なお、以下の説明において単に「ボーナス」といった場合は、特に断りがない限り、ビッグボーナス、レギュラーボーナス及びRTを含むものとする。
また、レギュラーボーナスゲーム以外のゲームで、有効ライン上に「スイカ」または「ベル」が揃った場合、或いは左のリール3Lについて「チェリー」が現れた場合には、小役入賞となる。ビッグボーナス期間中において提供される小役ゲーム及びレギュラーボーナスゲーム(ビッグボーナス中を含む)を除き、有効ライン上に「JAC」が揃った場合には、リプレイ入賞となる。なお、以下の説明において小役といった場合には、特に断りがない限り、リプレイ、JAC、JACINのボーナス以外の役を全て含むものとする。それ以外の表示態様が可変表示装置2に導出表示された場合には、いずれの役にも入賞しなかったこと、すなわちハズレとなる。
以上説明した役への入賞があった場合には、リプレイ入賞であった場合を除いて、それぞれの役に応じた枚数のメダルが払い出される(但し、クレジット数が50に達するまでは、役に応じた数のクレジットがデータとして蓄積され、この場合もメダルと同様に有価価値を払い出したこととなる)。また、メダルの払い出しの枚数は、ベルの小役が8枚、チェリーの小役が2枚である他は、全て15枚である。
以下、内部抽選について説明する。内部抽選は、後述する各役への入賞を許容するかどうかを、可変表示装置2の表示結果が導出表示される以前に(実際には、スタートレバー11の操作時)、決定するものであり、ゲーム毎に取得した内部抽選用の乱数(0〜16383の整数)を、設定スイッチ91により設定された設定値、遊技者が設定した賭け数、及び現在の遊技状態に対応した各役の判定値数を加算していくことによって、CPU111が行うものである。内部抽選における当選は、排他的なものであり、1ゲームにおいて複数が同時に当選することはない。
まず、内部抽選用の乱数の取得について、図3を参照して詳しく説明する。内部抽選用の乱数は、ハードウェア乱数機能により乱数発生回路115から乱数を抽出し、これをCPU111がソフトウェアによって加工することによって取得されるものとなる。内部抽選用の乱数を取得するときには、ボーナス告知ランプ66を点灯するか否かを決定する告知決定用の乱数も取得される。なお、乱数発生回路115から抽出した、或いはこれを加工した乱数の最下位ビットを第0ビット、最上位ビットを第15ビットと呼ぶものとする。
図3(a)は、乱数発生回路115の構成を詳細に示すブロック図である。図示するように、乱数発生回路115は、パルス発生回路115aと、下位カウンタ115bと、上位カウンタ115cとから構成されている。下位カウンタ115b及び上位カウンタ115cは、いずれも8ビット(1バイト)のカウンタであり、下位カウンタ115bが第0ビット〜第7ビット、上位カウンタ115cが第8ビット〜第15ビットの合計で16ビットのデータ信号を出力する。
パルス発生回路115aは、CPU111の動作クロックの周波数よりも高く、その整数倍とはならない周波数(互いに素とすることが好ましい)でパルス信号を出力する。パルス発生回路115aの出力するパルス信号が下位カウンタ115bにクロック入力される。
下位カウンタ115bは、パルス発生回路115aからパルス信号が入力される度に第0ビットのデータ信号をHレベルとLレベルとで交互に反転させる。正論理を適用するものとすると、Hレベルの論理値が1でLレベルの論理値が0に対応する。負論理の場合は、論理値が1の場合をLレベル、論理値が0の場合をHレベルと読み替えればよい。第0ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第0ビットのデータ信号の論理値が1から0に変化する度に第1ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第m−1ビットのデータ信号の論理値が1から0に変化する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。また、第7ビットのデータ信号のレベルがHレベルからすなわち第7ビットのデータ信号の論理値が1から0に変化する度に桁上げ信号を出力する。下位カウンタ115bの出力する桁上げ信号が上位カウンタ115cにクロック入力される。
上位カウンタ115cは、下位カウンタ115bから桁上げ信号が入力される度に第8ビットのデータ信号をHレベルとLレベルとで交互に反転させる。第9ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第9ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
下位カウンタ115bのデータ信号を下位8ビットとし、上位カウンタ115cのデータ信号を上位8ビットとした16ビットのデータ信号の論理値は、パルス発生回路115aがパルス信号を出力する度に、0(0000h)→1(0001h)→2(0002h)→…→65535(FFFFh)と値が更新毎に連続するように更新され、最大値の65535(FFFFh)の次は初期値の0(0000h)へと値が循環して、乱数発生回路115から出力されるものとなる。
サンプリング回路116は、ラッチ回路から構成され、CPU111からのサンプリング指令に基づいて、乱数発生回路115からそのときに出力されている16ビットのデータ信号をラッチし、ラッチしたデータ信号を出力する。CPU111は、I/Oポート114を介してサンプリング回路116から入力されたデータ信号に対応した数値データを、乱数発生回路115が発生する乱数として抽出するものとなる。なお、以下では、乱数発生回路115から出力されるデータ信号は、その論理値に応じた乱数として説明するものとする。
図3(b)は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの説明図である。乱数発生回路115から抽出された乱数は、CPU111が有する16ビットの汎用レジスタ111GRに格納されるものとなる。
乱数発生回路115から抽出された乱数が汎用レジスタ111GRに格納されると、CPU111は、他の汎用レジスタまたはRAM112の作業領域を用いて、汎用レジスタ111GRの下位バイト(下位カウンタ115bから抽出した値)と、上位バイトの値(上位カウンタ115cから抽出した値)とを入れ替える。
次に、CPU111は、抽出された乱数に対して上位バイトと下位バイトとが入れ替えられた乱数の値を、8080hと論理積演算をする。CPU111の処理ワードは1バイトなので、実際には上位バイトと下位バイトとについて順次論理積演算を行うものとなる。この論理積演算によって第15ビットと第7ビットは常に1となる。さらに、CPU111は、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。
CPU111は、このときに汎用レジスタ111GRに格納されている値を、内部抽選用の乱数として取得してRAM112の所定の領域に記憶させ、これに各役の判定値数を順次加算していくものとなる。内部抽選用の乱数の第15ビットと第14ビットは常に1となるので、内部抽選用の乱数は、14ビット(16384)の大きさを有する乱数ということになり、実質的に0〜16383の値をとるものとなる。
なお、乱数発生回路115からの乱数の抽出から加工を終了するまでの間は、CPU111に対する割り込みが禁止される。CPU111に対して割り込みが発生することによって、当該割り込み処理ルーチンで汎用レジスタ111GRの内容が書き換えられてしまうのを防ぐためである。
次に、内部抽選において用いられる判定値数について説明する。この実施の形態にかかるスロットマシン1では、設定値、賭け数及び遊技状態(これらをまとめて遊技状況という)に応じて役の種類と、役毎に当選とされる判定値の数を示す判定値数の格納場所を登録した遊技状態別テーブルが予め用意されている。
図4は、遊技状態別テーブルの例を示す図である。図4に示す遊技状態別テーブルは、ROM113に予め格納されている。遊技状態別テーブルは、遊技状態に応じて定められている役と、それぞれの役に対応する判定値数の記憶されたアドレスとを登録したテーブルである。判定値数は、その値が256以上のものとなるものもあり、1ワード分では記憶できないので、判定値数毎に2ワード分の記憶領域を用いて登録されるものとなる。
また、判定値数は、設定値及び賭け数に関わらずに共通となっているものと、設定値および/または賭け数に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、設定値についての共通フラグが設定され(値が「1」とされ)、判定値数が賭け数に関わらずに共通である場合には、賭け数(BET数)についての共通フラグが設定される(値が「1」とされる)。設定値及び賭け数の両方に関わらずに判定値数が共通であれば、両方のフラグが設定されるものとなる。
図4(a)は、レギュラーボーナス(ビッグボーナス中を含む)の遊技状態にあるときに参照される遊技状態別テーブルを示す。レギュラーボーナスにおいては、内部抽選の対象となる役としてJACのみが登録されている。レギュラーボーナスにおいては、1枚賭けのみが可能となるので、判定値数は、賭け数に関わらずに共通であり、また、この実施の形態にかかるスロットマシン1では、設定値にも関わらずに共通なものとなっている。
図4(b)は、ビッグボーナス中の小役ゲームの遊技状態にあるときに参照される遊技状態別テーブルを示す。ビッグボーナスにおいては、内部抽選の対象となる役としてJACIN、「スイカ」の小役、「ベル」の小役、「チェリー」の小役の4種類が登録されている。いずれの役の判定値数も、設定値に関わらず共通なものとなっているが、「スイカ」の小役及び「ベル」の小役については、設定値の違いにより判定値数は変わらないが、賭け数に応じて判定値数が異なっている。
図4(c)は、RTの遊技状態にあるときに参照される遊技状態別テーブルを示す。RTにおいては、内部抽選の対象となる役として、ビッグボーナス、レギュラーボーナス、「スイカ」の小役、「ベル」の小役、「チェリー」の小役、リプレイの6種類が登録されている。ビッグボーナス及びレギュラーボーナスについては、設定値及び賭け数に応じて判定値数が異なっている。もっとも、賭け数が1または2の場合には、設定値に関わらず賭け数が共通となっている。
「スイカ」の小役及び「ベル」の小役については、設定値の違いにより判定値数は変わらないが、賭け数に応じて判定値数が異なっている。「チェリー」の小役については、賭け数に応じて判定値数は変わらないが、設定値に応じて賭け数が異なっている。リプレイの判定値数は、設定値及び賭け数に関わらずに共通なものとなっている。
図4(d)は、通常の遊技状態にあるときに参照される遊技状態別テーブルを示す。通常の遊技状態においては、内部抽選の対象となる役として、ビッグボーナス、レギュラーボーナス、「スイカ」の小役、「ベル」の小役、「チェリー」の小役、リプレイ、RTの7種類が登録されている。ビッグボーナス及びレギュラーボーナスについては、設定値及び賭け数に応じて判定値数が異なっている。もっとも、賭け数が1または2の場合には、設定値に関わらず賭け数が共通となっている。
「スイカ」の小役及び「ベル」の小役については、設定値の違いにより判定値数は変わらないが、賭け数に応じて判定値数が異なっている。「チェリー」の小役については、賭け数に応じて判定値数は変わらないが、設定値に応じて賭け数が異なっている。リプレイの判定値数は、設定値及び賭け数に関わらずに共通なものとなっている。RTの判定値数も、設定値及び賭け数に関わらずに共通なものとなっている。
なお、遊技状態がRTにあるときは、重ねてRTに当選しないことと、リプレイ当選確率が高くなる以外、内部抽選における他の役の当選確率は、通常の遊技状態の場合と同じである。このため、RTにあるときに参照される遊技状態別テーブルに登録されている判定値数のアドレスは、リプレイを除いて設定値及び賭け数が同じであれば、通常の遊技状態にあるときに参照される遊技状態別テーブルに登録されている判定値数のアドレスと同じになっている。
図5は、遊技状態別テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。この判定値数の記憶領域は、開発用の機種ではRAM112に、量産機種ではROM113に割り当てられたアドレス領域に設けられている。例えばアドレスADDは、レギュラーボーナスの遊技状態別テーブルによりJACの役について参照されるアドレスであるが、ここに格納された判定値数が16375であるので、レギュラーボーナスにあるときにはJACの当選を判定するための判定値数として16375が取得される。
また、例えばアドレスADD+32は、通常の遊技状態またはRTで賭け数が3、設定値が6であるときにビッグボーナスについて参照されるアドレスであるが、ここに格納された判定値数が60であるので、通常の遊技状態またはRTで賭け数が3、設定値が6のときにはビッグボーナスの当選を判定するための判定値数として60が取得される。なお、アドレスADD+74、ADD+76は、それぞれRT、通常の遊技状態においてリプレイ当選を判定するための判定値数を格納したアドレスであるが、それぞれに格納された判定値数が5120、2245と異なっていることから、通常の遊技状態におけるリプレイ当選確率とRTにおけるリプレイ当選確率とが異なるものとなる。
また、通常の遊技状態またはRTであるときの「スイカ」の小役の判定値数は、賭け数が1であればアドレスADD+50に、賭け数が2であればアドレスADD+52に、賭け数が3であればアドレスADD+54に記憶されている。もっとも、アドレスADD+50、ADD+52、ADD+54に記憶されている判定値数は、いずれも68であるので、通常の遊技状態またはRTにおける「スイカ」の小役の当選確率は、賭け数に関わらずに同じものとなる。
さらに、通常の遊技状態またはRTであるときの「チェリー」の小役の判定値数は、設定値が1であればアドレスADD+62に、設定値が2であればアドレスADD+64に、設定値が3であればアドレスADD+66に、設定値が4であればアドレスADD+68に、設定値が5であればアドレスADD+70に、設定値が6であればアドレスADD+72に記憶されている。もっとも、アドレスADD+62、ADD+64、ADD+66、ADD+68、ADD+70、ADD+72に記憶されている判定値数は、いずれも269であるので、通常の遊技状態またはRTにおける「チェリー」の小役の当選確率は、設定値に関わらすに同じものとなる。
内部抽選は、取得した内部抽選用の乱数に設定値、賭け数及び遊技状態に応じた各役の判定値数を加算していき、オーバーフローしたときに当該役を当選と判定するものである。図6は、内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例を示す図である。図6では、通常の遊技状態で、賭け数が3、設定値が6の場合を示している。ここでの役の種類は、ビッグボーナス、レギュラーボーナス、「スイカ」の小役、「ベル」の小役、「チェリー」の小役、リプレイ、及びRTであり、それぞれの判定値数が60、30、68、3562、269、2245、16となっている。
ビッグボーナスについて、いずれについての個別に判定値数を記憶したアドレスを遊技状態別テーブルに登録している。ここで賭け数3、設定値6に対応して登録されたアドレスADD+32に記憶された判定値数は30となっている。この判定値数の30が加算されるものとすると、内部抽選用の乱数の値が16324〜16383であるときに加算結果がオーバーフローして、ビッグボーナスに当選となる。
レギュラーボーナスについて、いずれについての個別に判定値数を記憶したアドレスを遊技状態別テーブルに登録している。ここで賭け数3、設定値6に対応して登録されたアドレスADD+48に記憶された判定値数は60となっている。この判定値数の30とビッグボーナスの判定値数の60と合わせて90が加算されるものとすると、内部抽選用の乱数の値が16294〜16323であるときに加算結果がオーバーフローして、レギュラーボーナスに当選となる。
「スイカ」の小役について、設定値について共通に判定値数を記憶したアドレスを遊技状態別テーブルに登録している。ここで賭け数3に対応して登録されたアドレスADD+54に記憶された判定値数は68となっている。この判定値数の68とそれまでに加算された判定値数とを合わせて158が加算されるものとすると、内部抽選用の乱数の値が16226〜16293であるときに加算結果がオーバーフローして、「スイカ」の小役に当選となる。
「ベル」の小役については、設定値について共通に判定値数を記憶したアドレスを遊技状態別テーブルに登録している。ここで賭け数3に対応して登録されたアドレスADD+60に記憶された判定値数は3562となっている。この判定値数の3562とそれまでに加算された判定値数とを合わせて3720が加算されるものとすると、内部抽選用の乱数の値が12664〜16225であるときに加算結果がオーバーフローして、「ベル」の小役に当選となる。
「チェリー」の小役については、賭け数について共通に判定値数を記憶したアドレスを遊技状態別テーブルに登録している。ここで設定値6に対応して登録されたアドレスADD+72に記憶された判定値数は269となっている。この判定値数の269とそれまでに加算されれた判定値数と合わせて3889が加算されるものとすると、内部抽選用の乱数の値が12395〜12663であるときに加算結果がオーバーフローして、「チェリー」の小役に当選となる。
リプレイについては、設定値と賭け数の双方に共通して判定値数を記憶したアドレスを遊技状態別テーブルに登録している。リプレイについて登録されたアドレスADD+76に記憶された判定値数は2245となっている。この判定値数の2245とそれまでに加算されれた判定値数と合わせて6234が加算されるものとすると、内部抽選用の乱数の値が10150〜12394であるときに加算結果がオーバーフローして、リプレイに当選となる。
RTについては、設定値と賭け数の双方に共通して判定値数を記憶したアドレスを遊技状態別テーブルに登録している。RTについて登録されたアドレスADD+78に記憶された判定値数は16となっている。この判定値数の16とそれまでに加算されれた判定値数と合わせて6250が加算されるものとすると、内部抽選用の乱数の値が10134〜10149であるときに加算結果がオーバーフローして、RTに当選となる。
これらの判定値数に基づいて算出される各役のおおよその当選確率は、ビッグボーナス、レギュラーボーナス、「スイカ」の小役、「ベル」の小役、「チェリー」の小役、リプレイ、及びRTのそれぞれについて、1/273.1、1/546.1、1/240.9、1/4.6、1/60.9、1/7.3、1/1024.0(小数第2以下四捨五入)となる。なお、内部抽選用の乱数の値が0〜10133であるときには、加算結果がオーバーフローすることがなく、全ての役にハズレとなる。
また、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグまたはRT当選フラグが既に設定されているときには、ビッグボーナス、レギュラーボーナスまたはRT(設定されている当選フラグの種類と異なっていてもよい)に当選したと判定されても、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグまたはRT当選フラグが重ねて設定されることはなく、その当選が破棄される。
上記した内部抽選において当選と判定された役については、当該役の当選フラグがRAM112に設定される。また、ビッグボーナス、レギュラーボーナス(ビッグボーナス中に提供された場合を含む)、RTの遊技状態にあることを示すビッグボーナス中フラグ、レギュラーボーナス中フラグ、RT中フラグもRAM112に設定される。さらに、設定値や賭け数についてもRAM112に記憶される。そこで、RAM112の構成について説明する。
図7は、遊技制御基板101のRAM112のメモリマップを示す図である。図示するように、RAM112の記憶領域は、スタック領域112−1と、特別ワーク112−2と、設定値ワーク112−3と、重要ワーク112−4と、一般ワークI112−5と、一般ワークII112−6と、一般ワークIII112−7と、未使用領域112−8とに分けられる。それぞれの領域の先頭アドレスは、add、add+A、add+B、add+C、add+D、add+E、add+F、add+Gとなっている。RAM112の最終アドレスは、add+Hとなっている。
スタック領域112−1は、スタックのための領域であり、スタックポインタもここに含まれる。特別ワーク112−2は、演出制御基板102に送信するコマンドやソフトウェア乱数を生成するためのワーク領域である。設定値ワーク112−3は、設定値を保持するワーク領域であり、設定値の変更操作の終了時に当該確定した設定値が、電源投入時にRAM112が壊れていた場合に設定値1を示すデータが入れられる。重要ワーク112−4は、ビッグボーナス終了時にクリアされると不都合が生じることのあるデータを記憶するワーク領域である。
一般ワーク112−5〜7は、ビッグボーナス終了時にクリアしてもよいデータを記憶するワーク領域である。一般ワーク112−5〜7は、ビッグボーナス終了時以外にクリアしてもよいかの条件に応じて、一般ワークI112−5、一般ワークII112−6、一般ワークIII112−7に分けられる。未使用領域112−8は、RAM112のうちの使用されていない領域である。
一般ワークI112−5は、ビッグボーナス中フラグを設定するための領域と、ビッグボーナスにおける払出メダル枚数をカウントするカウンタのための領域とを含んでいる。一般ワークII112−6は、レギュラーボーナス中フラグ、RT中フラグを設定するための領域と、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ、RT当選フラグを設定するための領域と、レギュラーボーナス及びRTにおける消化ゲーム数をカウントするカウンタのための領域と、レギュラーボーナスにおける入賞ゲーム数をカウントするカウンタのための領域とを含んでいる。一般ワークIII112−7は、小役、リプレイ、JAC、JACINの当選フラグを設定するための領域を含んでいる。
特別ワーク112−2は、電源投入時にRAM112が壊れていた場合にのみ全体がクリアされる。重要ワーク112−4は、電源投入時にRAM112が壊れていた場合と設定値の変更操作が終了した場合にのみ全体がクリアされる。一般ワークI112−5は、電源投入時にRAM112が壊れていた場合と設定値の変更操作が終了した場合の他に、ビッグボーナスが終了したときに全体がクリアされる。
一般ワークII112−6も、電源投入時にRAM112が壊れていた場合と設定値の変更操作が終了した場合の他に、ビッグボーナスが終了したときに全体がクリアされるが、ゲーム終了時の条件に応じて必要な箇所がクリアされる(すなわち、フラグが消去され、カウンタが初期化される)。一般ワークIII112−7は、電源投入時にRAM112が壊れていた場合と設定値の変更操作が終了した場合の他に、ビッグボーナスが終了したか否かに関わらず各ゲームの終了時に全体がクリアされる。未使用領域112−8をクリアする条件も、一般ワークIII112−7と同じである。
以上の条件から、電源投入時にRAM112が壊れていた場合には、特別ワーク112−2以下の領域全体がクリアされる。設定値の変更操作が終了したときには、重要ワーク112−4以下の領域全体がクリアされる。ビッグボーナスが終了したときには、一般ワークI11−5以下の領域全体がクリアされる。ビッグボーナスの終了とならずにゲームが終了したときには、一般ワークIII112−7以下の領域全体がクリアされる。
RAM112の領域をクリアする条件が成立したときには、成立した条件に応じたアドレスを、CPU111の所定のアドレスレジスタに設定する。ここで、条件に応じたアドレスとは、電源投入時にRAM112が壊れていた場合にはadd+A、設定値の変更操作が終了した場合にはadd+C、ビッグボーナスが終了した場合にはadd+D、ビッグボーナスの終了とならずにゲームが終了した場合にはadd+Fである。そして、CPU111は、設定したアドレスからRAM112の最終アドレスadd+Hとなるまで、所定のアドレスレジスタに設定されたアドレスを1ずつ加算しながら、該アドレスレジスタが示すアドレスのデータをクリアしていくものとなる。
演出制御基板102のCPU121は、遊技制御基板101のCPU111から送られてくるコマンドに基づいて各種の演出を行うものとしている。上記した初期化コマンドまたは設定変更コマンドを受信したときには、それまで実行されていた演出を停止してからRAM122をクリアするものとしている。また、設定変更コマンドを受信したときには、設定値の変更操作中である旨を液晶表示器4に表示して遊技者に報知するものとしている。この報知は、状態コマンドを受信することによって、終了させられるものとなる。
以下、この実施の形態にかかるスロットマシン1における動作について説明する。スロットマシン1の動作は、メインスイッチ94をONすることで電源が投入されることによって開始するが、この電源投入時において特別な処理が行われるものとなる。
図8は、遊技制御基板101のCPU111が電源投入時において実行する処理を示すフローチャートである。スロットマシン1の電源が投入されると、まず、設定キースイッチ92が鍵操作されてON状態となっているかどうかを判定する(ステップS101)。設定キースイッチ92がOFF状態となっていれば、RAM112のデータが壊れてなく、正常な状態であるかどうかを判定する(ステップS102)。RAM112が正常な状態であれば、電源が遮断される前の状態に復帰して、ゲームの処理を開始する。
RAM112のデータが壊れていた場合には、RAM112のクリアする領域の先頭アドレスとしてadd+Aをアドレスレジスタに設定する(ステップS103)。そして、詳細を後述するRAMクリア処理を行うことにより、RAM112のadd+A以降の領域、すなわち特別ワーク112−2以下の領域をクリアする(ステップS104)。さらに、クリアした設定値ワークに設定値の初期値として1を記憶させる(ステップS105)。さらに初期化コマンドを生成して、これを演出制御基板102に送信する(ステップS106)。そして、後述するゲームの処理を開始させるものとなる。
設定キースイッチ92がON状態となっていれば、扉開放センサ95の検出信号に基づいて前面扉が開放されているかどうかを判定する(ステップS107)。前面扉が開放されていれば、不正な設定値の変更操作が行われようとしている可能性があるので、エラー終了する。ここでは、前面扉が開放状態で設定値の変更操作が行われた旨のエラーコードを、ゲーム回数表示部21に表示させるなどして報知する。エラーコマンドを送信して、演出制御基板102のCPU121に、スピーカ7L、7R、7Uからエラー音を出力させたり、液晶表示器4にエラーコードを表示させるものとしてもよい。
前面扉が開放されていなければ、設定値の変更操作が行われている旨を示す設定変更コマンドを生成して、これを演出制御基板102に送信する(ステップS108)。また、設定値ワークに記憶された設定値を所定のエリアに読み出し、ゲーム回数表示器51を制御することにより、この設定値をゲーム回数表示部21に表示させる(ステップS109)。
次に、スタートレバー11が操作されているかどうかを判定する(ステップS110)。スタートレバー11が操作されていなければ、そのままステップS112の処理に進む。スタートレバー11が操作されていた場合には、設定キースイッチ92がOFF状態とされたかどうかを判定する(ステップS111)。設定キースイッチ92がOFF状態とされていなければ、ステップS112の処理に進む。
ステップS112では、設定スイッチ91が操作されたかどうかを判定する。設定スイッチ91が操作されていなければ、ステップS109の処理に戻る。設定スイッチ91が操作されていれば、設定値を1だけ加算し(ステップS113)、加算した結果が7となったかどうかを判定する(ステップS114)。加算した結果が7となっていなければ、そのままステップS109の処理に戻る。加算した結果が7となった場合には、設定値を初期値の1に戻し(ステップS115)、ステップS109の処理に戻る。こうして設定値の更新が行われてからステップS109に戻った場合には、更新された後の設定値がゲーム回数表示部21に表示されるものとなる。
ステップS107でスタートレバー11が操作されていて、ステップS108で設定キースイッチ92がOFF状態とされた場合には、RAM112のクリアする領域の先頭アドレスとしてadd+Cをアドレスレジスタに設定する(ステップS116)。そして、詳細を後述するRAMクリア処理を行うことにより、RAM112のadd+C以降の領域、すなわち重要ワーク112−4以下の領域をクリアする(ステップS117)。また、現在の設定値を確定して、これを設定値ワーク112−3に記憶させ、ゲーム回数表示器51を制御することにより、ステップS109でゲーム回数表示部21に表示された設定値を表示消去する(ステップS118)。
さらに、状態コマンド送信処理を実行し、RAM112に記憶されている現在の設定値、ビッグボーナス中フラグ、レギュラーボーナス中フラグ及びRT中フラグの状態に基づいて状態コマンドを生成し、これを演出制御基板102に送信する(ステップS119)。ここで送信する状態コマンドは、ステップS118で設定値ワーク112−3に記憶させた設定値と、ビッグボーナス、レギュラーボーナス、RTのいずれの状態にもないことを示す。なお、この状態コマンド送信処理は、次に説明する1ゲームの処理の最後で実行されるものと同じである。そして、次に説明するゲームの処理を開始させるものとなる。
電源投入時の処理が終了し、電源断前の状態に復帰するか、ゲーム開始となると、1ゲームずつの処理を繰り返して行うものとなる。なお、以下の説明において“ゲーム”といった場合には、狭義には、スタートレバー11の操作からリール3L、3C、3Rを停止するまでをいうものとする。もっとも、ゲームを行う際には、スタートレバー11の操作前の賭け数の設定や、リール3L、3C、3Rの停止後にメダルの払い出しや遊技状態の移行も行われるので、これらの付随的な処理も広義には“ゲーム”に含まれるものとする。
図9は、遊技制御基板101のCPU111が実行する1ゲーム分の処理を示すフローチャートである。この処理は、電源を投入し、所定のブート処理を行った後、または設定スイッチ91の操作により設定変更を行った直後にも実行される。1ゲームの処理が開始すると、まず、RAM112の未使用領域112−8をクリアする処理(add+Gをアドレスレジスタに設定して、RAMクリア処理を行うことによる)を含む初期処理が行われる(ステップS201)。
次に、1枚BETボタン14またはMAXBETボタン15を操作することにより、或いはメダル投入口13からメダルを投入することにより賭け数を設定し、スタートレバー11を操作することにより当該ゲームの実質的な開始を指示するBET処理を行う(ステップS202)。もっとも、前のゲームでリプレイ入賞していた場合には、リプレイフラグにより前のゲームと同じ賭け数が自動設定される(この段階でリプレイフラグが消去される)ので、そのままスタートレバー11を操作してゲームの開始を指示すればよい。
BET処理により賭け数が設定され、スタートレバー11が操作されると、内部抽選用の乱数を抽出し、抽出した乱数の値に基づいて上記した各役への入賞を許容するかどうかを決定する抽選処理を行う(ステップS203)。この抽選処理では、それぞれの抽選結果に基づいて、RAM112に当選フラグが設定される。なお、抽選処理の詳細については後述する。
抽選処理が終了すると、次にリール変動開始処理が行われる(ステップS204)。リール変動開始処理では、前回のゲームでのリール3L、3C、3Rの回転開始から1ゲームタイマが計時する時間が所定時間(例えば、4.1秒)が経過していることを条件に、リールモータ3ML、3MC、3MRを駆動させ、左、中、右の全てのリール3L、3C、3Rを回転開始させる。これにより、可変表示装置2において図柄が変動表示される。ここで、前回のゲームでの回転開始から所定時間が経過していない場合、回転開始待ちとなり、ウェイトランプ61を点灯させることによりその旨をウェイト表示部31で報知する。また、次回のゲームのための1ゲームタイマの計時を開始する。
その後、リール変動停止処理が行われる(ステップS205)。リール変動停止処理では、リールの回転開始から所定の条件(回転速度が一定速度に達した後、リールセンサ3SL、3SC、3SRにより基準位置を検出すること)が成立した後、停止ボタン12L、12C、12Rを操作有効とし、それぞれ遊技者によって操作されることにより、当選フラグの設定状況に応じて、リールモータ3ML、3MC、3MRを駆動停止させ、リール3L、3C、3Rの回転を停止させる。これとともに、リール停止コマンドを演出制御基板102に送信する。また、所定の条件が成立してからの経過時間が所定時間(例えば、30秒)となったときに、リール3L、3C、3Rの駆動を強制的に停止させる。
リール3L、3C、3Rの駆動がそれぞれ停止すると、その停止時における表示態様において、ステップS202のBET処理で設定した賭け数に応じた有効ライン上に上記したいずれかの役図柄が導出表示されたかどうかを判定する入賞判定処理が行われる(ステップS206)。この入賞判定処理でいずれかの役に入賞したと判定されると、遊技制御基板101において発生した入賞に応じた各種の処理が行われる。
入賞に応じた処理として、ビッグボーナス入賞した場合にビッグボーナス当選フラグの消去とビッグボーナス中フラグの設定を行う。レギュラーボーナス入賞またはJACIN入賞した場合にレギュラーボーナス当選フラグまたはJACIN当選フラグの消去とレギュラーボーナス中フラグの設定を行う。RT入賞した場合にRT当選フラグの消去とRT中フラグの設定を行う。リプレイ入賞した場合にリプレイフラグの設定を行う。また、リプレイ以外の役に入賞した場合には、入賞した役の種類に応じた払出予定数を一般ワークIII112−7に設定する。
入賞判定処理が終了すると、払出処理が行われる(ステップS207)。払出処理では、入賞判定処理において設定した払い出し予定数だけクレジットを増加させる。但し、データとして蓄積されているクレジットの数が50に達した場合は、ホッパーモータ82を駆動させることにより、超過した枚数のメダルをメダル払い出し口71から払い出させる。また、入賞に関わらない各種の処理(ボーナス当選フラグ以外の当選フラグの消去やボーナスの終了に関する処理を含む)も行われる。なお、払出処理の詳細については後述する。
払出処理が終了すると、状態コマンド送信処理が行われる(ステップS208)。状態コマンド送信処理は、RAM112に記憶されている現在の設定値、ビッグボーナス中フラグ及びレギュラーボーナス中フラグに基づいて状態コマンドを生成し、これを演出制御基板102に送信するもので、ステップS114で実行されたものと同じである。そして、1ゲーム分の処理が終了し、次の1ゲーム分の処理が開始する。
次に、上記したステップS203の抽選処理について詳しく説明する。図10は、CPU111がステップS203で実行する抽選処理を詳細に示すフローチャートである。抽選処理では、まず、詳細を後述する乱数取得処理を行う。この乱数取得処理においては、乱数発生回路115が発生する乱数に基づいて、内部抽選用の乱数の値が取得されることとなる(ステップS301)。さらに、今回のゲームの遊技状況として、ビッグボーナス中フラグ、レギュラーボーナス中フラグ、またはRT中フラグの設定の有無により区別される現在の遊技状態と、ステップS202のBET処理で設定された賭け数と、現在設定されている設定値とを取得して、一般ワークIII112−8の所定の領域に保存する(ステップS302)。
次に、現在の遊技状態に応じた遊技状態別テーブルに登録された役について順番に処理対象として、共通フラグの設定状態を参照する(ステップS303)。その結果、設定値とBET数のいずれについても共通フラグが設定されているかどうかを判定する(ステップS304)。いずれについても共通フラグが設定されていれば、遊技状態別テーブルの当該役について登録されているアドレスに格納されている判定値数を取得する(ステップS305)。そして、ステップS307の処理に進む。
一方でも共通フラグが設定されていなければ、当該役についてステップS302で取得した現在の設定値及び賭け数に対応して遊技状態別テーブルに登録されているアドレスに格納されている判定値数を取得する(ステップS306)。そして、ステップS307の処理に進む。ステップS307では、ステップS305またはS306で取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(ステップS308)。
オーバーフローが生じた場合には、処理対象としている役がビッグボーナス、レギュラーボーナス、またはRTのいずれかであるかを判定する(ステップS309)。いずれかであった場合には、前回以前のゲームにおいて既にビッグボーナス当選フラグ、レギュラーボーナス当選フラグ、またはRT当選フラグ(処理対象としている役と異なってもよい)が設定されているかどうかを判定する(ステップS310)。ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ、またはRT当選フラグが設定されていれば、そのまま抽選処理を終了して、図9のフローチャートに復帰する。
ステップS309で処理対象としている役がビッグボーナス、レギュラーボーナス、RTのいずれでもなかった場合、或いはステップS310でビッグボーナス当選フラグ、レギュラーボーナス当選フラグ、RT当選フラグのいずれも設定されていなければ、処理対象としている役の当選フラグを、役の種類に応じて一般ワーク112−5〜7の所定の領域に設定する(ステップS311)。そして、抽選処理を終了して、図9のフローチャートに復帰する。
また、ステップS308でオーバーフローしていないと判定された場合には、遊技状態別テーブルに登録された役のうちで未だ処理対象としていない役があるかどうかを判定する(ステップS312)。未だ処理対象としていない役があれば、ステップS303の処理に戻り、処理対象を次の役として処理を継続する。処理対象としていない役がなければ、抽選処理を終了して、図9のフローチャートに復帰する。
次に、ステップS301の乱数取得処理について詳しく説明する。図11は、CPU111がステップS301で実行する乱数取得処理を詳細に示すフローチャートである。乱数取得処理では、まず、CPU111に対する割り込みを禁止する(ステップS401)。次に、サンプリング回路116にサンプリング指令を出力し、乱数発生回路115が発生している乱数をラッチさせ、ラッチさせた乱数の値をI/Oポート114から入力して、これを抽出する。乱数発生回路115から抽出された乱数の値は、汎用レジスタ111GRに格納される(ステップS402)。
次に、汎用レジスタ111GRに格納された乱数の下位バイトの値と上位バイトの値を、一般ワークIII112−7を用いて互いに入れ替える(ステップS403)。次に、汎用レジスタ111GRに格納された乱数の値を8080hと論理積演算する(ステップS404)。さらに上位バイト(第15〜第8ビット)を1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。このときに汎用レジスタ111GRに格納された値が内部抽選用の乱数として取得され、一般ワークIII112−7の所定の領域に保存される(ステップS405)。そして、ステップS401で禁止した割り込みを許可してから(ステップS406)、乱数取得処理を終了して、図10のフローチャートに復帰する。
次に、上記したステップS207の払出処理について詳しく説明する。図12は、CPU111がステップS207で実行する払出処理を詳細に示すフローチャートである。まず、一般ワークIII112−7に設定された払い出し予定数が0となるまで、払い出し予定数を1ずつ減算していきながらホッパー80を制御してメダルを1枚ずつ排出させることで、入賞した役に対応した数のメダルを遊技者に払い出す。但し、クレジットの数が50に達していなければ、メダルを1枚ずつ排出する代わりにクレジットの数を1ずつ加算していく(ステップS501)。
次に、一般ワークII112−6にRT中フラグが設定されているかどうかにより、現在の遊技状態がRTとなっているかどうかを判定する(ステップS502)。現在の遊技状態がRTとなっていれば、一般ワークII112−6に設けられたゲーム数カウンタを用いて当該RTにおける消化ゲーム数をカウントする(ステップS503)。そのカウント結果として、RTの終了条件となったかどうかを判定する(ステップS504)。
RTの終了条件となっていれば、一般ワークII112−6に設定されているRT中フラグを消去するとともに、一般ワークII112−6に設けられたゲーム数カウンタの値をクリアする(ステップS505)。そして、ステップS513の処理に進む。RTの終了条件となっていなければ、そのままステップS513の処理に進む。
現在の遊技状態がRTとなっていなければ、一般ワークII112−6にレギュラーボーナス中フラグが設定されているかどうかにより、現在の遊技状態がレギュラーボーナス(ビッグボーナス中に提供された場合を含む)になっているかどうかを判定する(ステップS506。現在の遊技状態がレギュラーボーナスとなっていなければ、そのままステップS510の処理に進む。
現在の遊技状態がレギュラーボーナスとなっていれば、一般ワークII112−6に設けられたゲーム数カウンタを用いて当該レギュラーボーナスにおける消化ゲーム数をカウントするとともに、入賞数カウンタを用いて当該レギュラーボーナスにおける入賞ゲーム数をカウントする(ステップS507)。そのカウント結果として、レギュラーボーナスの終了条件となったかどうかを判定する(ステップS508)。
レギュラーボーナスの終了条件となっていれば、一般ワークII112−6に設定されているレギュラーボーナス中フラグを消去するとともに、一般ワークII112−6に設けられたゲーム数カウンタ及び入賞数カウンタの値をクリアする(ステップS509)。そして、ステップS510の処理に進む。レギュラーボーナスの終了条件となっていなければ、そのままステップS510の処理に進む。
ステップS510では、一般ワークI112−5にビッグボーナス中フラグが設定されているかどうかにより、現在の遊技状態がビッグボーナス(レギュラーボーナス中である場合を含む)になっているかどうかを判定する。現在の遊技状態がビッグボーナスとなっていなければ、ステップS513の処理に進む。
現在の遊技状態がビッグボーナスとなっていれば、一般ワークI112−5に設けられた払出数カウンタを用いて当該ビッグボーナスにおける払出メダル枚数をカウントする(ステップS511)。そのカウント結果として、ビッグボーナスの終了条件となったかどうかを判定する(ステップS512)。ビッグボーナスの終了条件となっていなければ、ステップS513の処理に進む。ビッグボーナスの終了条件となっていれば、ステップS515の処理に進む。
ステップS513では、ビッグボーナスの終了以外で今回のゲームが終了する場合となるので、RAM112のクリアする領域の先頭アドレスとしてadd+Fをアドレスレジスタに設定する。そして、詳細を後述するRAMクリア処理を行うことにより、RAM112のadd+F以降の領域、すなわち一般ワークIII112−7以下の領域をクリアする(ステップS514)。そして、払出処理を終了して、図9のフローチャートに復帰する。
これにより、今回のゲームの終了時において、小役、リプレイ、JAC、JACINの当選フラグは消去されるが、ビッグボーナス、レギュラーボーナス、RTの当選フラグは消去されないこととなる。ビッグボーナス中フラグ、レギュラーボーナス中フラグ、RT中フラグが設定されている場合において、これらは消去されないこととなる。また、今回のゲームの遊技状況や内部抽選用の乱数などもクリアされることとなる。
ステップS515では、ビッグボーナスの終了で今回のゲームが終了する場合となるので、RAM112のクリアする領域の先頭アドレスとしてadd+Dをアドレスレジスタに設定する。そして、詳細を後述するRAMクリア処理を行うことにより、RAM112のadd+D以降の領域、すなわち一般ワークI112−5以下の領域をクリアする(ステップS516)。そして、払出処理を終了して、図9のフローチャートに復帰する。
これにより、今回のゲームの終了時において、小役、リプレイ、JAC、JACINの当選フラグが消去されることとなる。ここではビッグボーナス、レギュラーボーナス、RTの当選フラグが設定されている場合はない。ビッグボーナス中フラグとレギュラーボーナス中フラグ(設定されている場合)も消去されることとなる。ここではRT中フラグが設定されている場合はない。また、今回のゲームの遊技状況や内部抽選用の乱数などもクリアされることとなる。
次に、上記したステップS104、S117、S514及びS516のRAMクリア処理について詳しく説明する。RAMクリア処理では、RAM112のアドレスレジスタに設定されたアドレスのデータをクリアする。アドレスレジスタの値がRAM112の最終アドレスであるadd+Hとなっていなければ、アドレスレジスタの値を1加算し、さらに当該アドレスのデータをクリアする。アドレスレジスタの値がadd+Hとなっていたときには、当該アドレスのデータをクリアしてRAMクリア処理が終了となる。
以上のようなゲームの繰り返しにおいて、遊技制御基板101のCPU111は、通常の遊技状態、RT、レギュラーボーナス及びビッグボーナスの間で遊技状態の移行を行っており、遊技の進行状況に応じてコマンドを演出制御基板102に送信している。これに対して、演出制御基板102のCPU121は、遊技制御基板101から受信したコマンドに基づいて、独自の演出を行っている。以下、演出制御基板102のCPU121が各種の演出を行うために実行する処理について説明する。
図13は、演出制御基板102のCPU121が実行するコマンド受信待機処理を示すフローチャートである。演出制御基板102側では、遊技制御基板101から送られてくるコマンドを受信したかどうかを判定している(ステップS601)。コマンドを受信するまでは、ステップS601の処理を繰り返し、コマンドの受信を待機している状態にある。遊技制御基板101からいずれかのコマンドを受信すると、受信したコマンドの種類が何であるかを判定する(ステップS602)。
受信したコマンドの種類がステップS106で送信された初期化コマンドであった場合には、液晶表示器4への画像の表示、遊技効果LED75および/またはリールランプ3LPの点灯、或いはスピーカ7からの音声の出力などにより現在行っている演出を停止させる(ステップS603)。演出を停止させると、RAM122のデータをクリアする(ステップS604)。この際、保存されていた設定値もクリアされるが、ここでの設定値は必ず1となるので、RAM112に設定値として1を保存する(ステップS605)。そして、ステップS601の処理に戻る。
受信したコマンドの種類がステップS108で送信された設定変更コマンドであった場合には、液晶表示器4への画像の表示、遊技効果LED75および/またはリールランプ3LPの点灯、或いはスピーカ7からの音声の出力などにより現在行っている演出を停止させる(ステップS606)。演出を停止させると、RAM122のデータをクリアする(ステップS607)。この際、保存されていた設定値もクリアされるが、設定値の変更操作が終了したときの状態コマンドで新たな設定値が通知されるので、そのままにしておく。また、液晶表示器4に設定値の変更操作中である旨を示す情報を表示して、その旨を遊技者に報知する(ステップS608)。そして、ステップS601の処理に戻る。
受信したコマンドの種類がステップS119またはS208で送信された状態コマンドであった場合には、当該状態コマンドが示す設定値や、ビッグボーナス中、レギュラーボーナス中或いはRT中であることを示す情報をRAM122に保存する(ステップS609)。さらに、液晶表示器4において設定値の変更操作中である旨が報知されているかどうかを判定する(ステップS610)。設定値の変更操作中である旨が報知されていなければ、そのままステップS601の処理に戻る。報知されていれば、液晶表示器4に表示された情報を消去して、設定値の変更操作中である旨の報知を終了する(ステップS611)。そして、ステップS601の処理に戻る。
また、受信したコマンドの種類が他のコマンドであった場合には、それぞれのコマンドの種類に応じた処理(本発明と関係ないので、詳細は省略)を実行する(ステップS612)。その後、ステップS601の処理に戻る。
以上説明したように、この実施の形態にかかるスロットマシン1では、遊技状態に応じて定められた各役の当選確率を定める判定値数は、遊技状態別テーブルから参照されるアドレスに格納されている。その格納先のアドレスは、設定値および/または賭け数に応じて異なっている場合もあるが、設定値および/または賭け数に関わらずに当選確率を同一とするものとした役については、格納先のアドレスが共通化しており、すなわち、設定値および/または賭け数に関わらずに判定値数が共通化して格納されるものとなる。このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。
もっとも、同じ遊技状態の遊技状態別テーブルから同一の役について設定値および/または賭け数に応じて参照される判定値数を格納したアドレスが異なっていても、異なるアドレスにおいて格納されている判定値数は同じ場合がある。つまり、同一の役について設定値および/または賭け数に応じて判定値数が別々に登録されていても、その判定値数は同じという場合がある。
一般に開発段階においては、少なくとも一部の役について設定値および/または賭け数に応じて判定値数を調整しながら(すなわち、内部抽選の当選確率を調整しながら)、シミュレーションを行っていくものとしている。当初の判定値数として、設定値および/または賭け数に応じて異なる判定値数を登録しておいたが、シミュレーションにより調整を行った結果として、設定値および/または賭け数が異なる場合の判定値数が同一になる場合もある。当初の判定値数として、設定値および/または賭け数に応じて同一の判定値数を登録しておいたが、シミュレーションの結果により当初から登録してあった判定値数がそのまま用いられる場合もある(シミュレーションの結果により当初とは異なる判定値数すなわち、設定値および/または賭け数に応じて異なる判定値数となる場合もある)。そして、それぞれの場合におけるシミュレーションで適切な結果の得られた判定値数を、量産用の機種に設定する判定値数として選ぶものとしている。
ここで、シミュレーションにより調整された判定値数が結果として設定値および/または賭け数に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM113に記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、内部抽選は、取得した内部抽選用の乱数に、遊技状態別テーブルに登録された各役の判定値数を加算していき、その加算の結果がオーバーフローしたか否かによって、それぞれの役の当選の有無を判定するものとしている。このため、遊技状況に応じた各役の判定値数をそのまま用いて内部抽選を行うことができる。なお、実際の当選判定を行う前に当選判定用テーブルを生成する場合にはループ処理が2回必要になるが、この実施の形態によれば、抽選処理におけるループ処理が1回で済むようになり、抽選処理全体での処理効率が高いものとなる。
また、乱数取得処理によって取得される内部抽選用の乱数は、サンプリング回路116により乱数発生回路115から抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工してから使用するものとしている。乱数発生回路115は、パルス発生回路115aのパルス信号の周波数で高速に更新して乱数を発生しているが、ソフトウェアにより加工した後の内部抽選用の乱数では、その加工によって更新の周期性が失われるものとなる。
これに対して、内部抽選では各役に対応した判定値数を内部抽選用の乱数の値に順次加算していくことにより行うため、図6に示したように各役を当選とする内部抽選用の乱数の値は、固まってしまうこととなる。これに対して、ソフトウェアによる加工で内部抽選用の乱数の周期性を失わせ、その値をバラつかせることによって、遊技者による狙い打ちを可能な限り防ぐことができる。
しかも、乱数発生回路115のカウンタ115b、115cの値を更新させるためにパルス発生回路115aが発生するパルス信号の周波数は、CPU111の動作クロックの周波数よりも高く、整数倍ともなっていない。このため、乱数発生回路115が発生する乱数の更新が、CPU111が行う処理と同期しにくくなる。しかも、パルス発生回路115aのパルス信号の周波数の方を高くすることで、乱数発生回路115が発生する乱数の更新速度を非常に速いものとすることができる。
一方、ソフトウェアによる乱数の加工は、サンプリング回路116により乱数発生回路115から抽出した乱数の上位バイトと下位バイトとを入れ替え、第15、第7ビットをマスクした後、上位バイトをビットシフトするだけでよい。従って、16ビット(実際にはマスクされて14ビット)という比較的大きな乱数であっても、周期性を失わせるために必要な加工の処理に要する負荷がそれほど大きくならず、容易に取得することができる。このように大きな乱数が取得できることで、内部抽選における確率設定を細かく行うことができるようになる。
また、設定値の変更操作は、設定キースイッチ92をON状態としてメインスイッチ94により電源をONすることで可能となるが、このときには設定変更コマンドが演出制御基板102に送信される。設定変更コマンドを受信することによって、演出制御基板102では実行中の演出が停止され、RAM122のデータがクリアされる。そして、設定値の変更操作を行う際に、演出制御基板102において変更前の設定値に基づく演出が継続することなくなるので、そのような演出による煩わしさを感じさせることがない。
演出制御基板102において設定変更コマンドを受信したときには、状態コマンドを受信するまで、液晶表示器4により設定値の変更操作中である旨が報知される。設定変更コマンドは設定値の変更操作の開始時に送信され、状態コマンドは設定値の変更操作の終了時に送信されるので、この間に設定値の変更操作が行われているということである。液晶表示器4に報知を行うことによって、設定値の変更操作が行われていると外部から分かることとなり、不正な設定値の変更操作が行われるのを防ぐことができる。
電源投入時にRAM112が壊れていた場合にも初期化コマンドが送信されることによって演出制御基板102では実行中の演出が停止され、RAM122のデータがクリアされるので、演出制御基板102のRAM122が壊れていないときに遊技制御基板101の側の状態と異なる演出が実行することなくなるので、そのような演出による煩わしさを感じさせることがない。初期化コマンドを受信したときには、演出制御基板102のRAM122にも設定値として1が記憶されるので、遊技制御基板101の設定値ワーク112−3に記憶された実際の設定値と異なる演出が実行されるのを防ぐことができる。
また、スタートレバー11を操作した後に設定キースイッチ92をOFF状態とすると、設定値に関する情報を含む状態コマンドが演出制御基板102に送信される。この状態コマンドを受信することによって、演出制御基板102のRAM122にも変更後の設定値が保存されることとなる。これにより、スタートレバー11を操作してから設定キースイッチ92をOFF状態とすることで演出制御基板102の側で認識される設定値も確実に変更後のものに更新され、設定値の変更操作を終了した後のゲームにおいて、変更後の設定値に基づく演出を確実に行えるようになる。
ところで、スタートレバー11を操作して設定キースイッチ92をOFF状態として設定値を確定させたときに演出制御基板102に送信される状態コマンドは、各ゲームの終了時に送信される状態コマンドと兼用されている。このように状態コマンドの兼用を行うことで、遊技制御基板101及び演出制御基板102において複数種類のコマンドを取り扱うのに必要な記憶容量を小さくできる。また、演出制御基板102のCPU121がコマンドの種類を判断する際の処理負荷も小さくすることができる。
さらに、変更後の設定値を確定させたときにはRAM112の重要ワーク112−4以下の領域がクリアされるが、これによって各役の当選フラグが全て消去される、ビッグボーナス中フラグ、レギュラーボーナス中フラグ或いはRT中フラグが設定されていても、消去されることとなる。状態コマンドは、設定値に関する情報だけでなく、遊技状態に関する情報も含んでいるので、設定値の変更が行われた後に行われるゲームにおいて、演出制御基板102の側で認識する遊技状態が遊技制御基板101の側で認識する遊技状態と食い違うことがなく、遊技状態に応じた演出を確実に行うことができる。
また、設定値の変更操作は、設定キースイッチ92をON状態として電源を投入すると可能となるが、この操作が行われても前面扉が開放されていなければエラーとなる。このため、外部からの不正な信号操作によって設定スイッチ91や設定キースイッチ92が操作されたものとする信号がCPU111に入力されても、エラーとなって設定値が変更されることはない。また、前面扉に穴を開けて設定スイッチ91や設定キースイッチ92を操作しても、エラーとなって設定値が変更されることがない。これにより、不正な設定値の変更操作が行われるのを防ぐことができる。しかも、ここでエラーが生じたことは、エラーコードの表示などにより外部に報知されるものとなるので、この報知によっても不正な設定値の変更操作が行われるのを防ぐことができる。
ところで、遊技制御基板101のRAM112は、スタック領域112−1と、特別ワーク112−2と、設定値ワーク112−3と、重要ワーク112−4と、一般ワークI112−5と、一般ワークII112−6と、一般ワークIII112−7と、未使用領域112−8とに分けられるが、成立した条件に応じて一部の領域がクリアされることがある。ここでRAM112をクリアする条件が成立した場合、成立した条件に応じてアドレスを設定して、その最終アドレスまで全てクリアすればよい。
このため、成立した条件に応じて異なる処理は、クリアする領域の先頭アドレスの設定だけであり、その他は同一のRAMクリア処理で行うことができるので、制御が容易になる。また、クリアする領域の先頭アドレス以外には、成立した条件に応じてクリアする領域を細かく指定するためのデータが必要なく、RAM112を領域別にクリアするためのデータ量を小さくすることができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、電源投入時にRAM112が壊れていた場合には初期化コマンドが、設定値の変更操作を開始するときには設定変更コマンドが、遊技制御基板101から演出制御基板102に送信されるものとなっていた。これに対して、設定値の変更操作中であることを報知しないのであれば、設定時の変更操作を開始するときにも設定変更コマンドではなく、電源投入時にRAM112が壊れていた場合と同じ初期化コマンドを送信するものとしてもよい。
演出制御基板102のCPU121は、初期化コマンドを受信したときにはRAM122に設定値として1を記憶させるが、設定値の変更操作が終了したときには状態コマンドが送信されるので、ゲームが開始可能となるまでにはRAM122にも正しい設定値が記憶されることとなり、問題が生じることはない。このように設定値の変更操作の開始時に送信するコマンドを初期化コマンドと兼用することで、遊技制御基板101及び演出制御基板102において複数種類のコマンドを取り扱うのに必要な記憶容量を小さくでき、CPU121がコマンドの種類を判断する際の処理負荷も小さくすることができる。
なお、設定値の変更操作を終了したときに遊技制御基板101から演出制御基板102に送信するコマンドは、各ゲームの終了時において送信する状態コマンドとは異なる種類のコマンドとしてもよい。設定値の変更操作を終了した旨を示すコマンドを受信したときには、CPU121は、これによって直ちに設定値の変更操作中である旨の報知を終了させるものとすることができる。
上記の実施の形態では、設定値の変更操作を開始したときに送信される設定変更コマンドにより設定値の変更操作中である旨の報知が開始され、設定値の変更操作が終了したときに送信される状態コマンドにより設定値の変更操作中である旨の報知が終了されるものとしていた。もっとも、設定値の変更操作が行われた旨の報知は、このように設定値の変更操作の開始から終了までの期間において継続して行わなくても、当該期間における任意のタイミングにおいて行うものとすることができる。
例えば、演出制御基板102のCPU121は、設定変更コマンドを受信してから所定時間だけ、設定値の変更操作が開始された旨を報知するものとすることができる。また、設定値の変更操作の終了時に各ゲームの終了時において送信する状態コマンドとは異なる種類のコマンドを送信するものとした場合、演出制御基板102のCPU121は、当該コマンドを受信したときに、設定値の変更操作が行われた旨を報知するものとすることもできる。
上記の実施の形態では、判定値数記憶領域は、2バイトの領域を用いて、それぞれの場合における判定値数を記憶するものとしていた。もっとも、一般的なスロットマシンでは、ビッグボーナス、レギュラーボーナス、或いはRTといった役の判定値数は、いずれの遊技状況においても255を超えるものが設定されることはあり得ない。このように255を超える判定値数を設定する必要がないものについては、1バイトの領域だけを用いて、判定値数を記憶するものとしてもよい。
上記の実施の形態では、判定値数は、設定値1〜6の全体に共通して記憶されているか、設定値1〜6のそれぞれに対して個別に記憶されているかであった。もっとも、設定値1〜6の全体に共通して判定値数が記憶されない(設定値についての共通フラグが設定されない)ものとして、例えば、設定値1〜3については判定値数が共通、設定値4〜6については判定値数が共通のものとすることもできる。賭け数についての判定値数についても同様で、例えば賭け数1と2については共通、賭け数3では個別とすることもできる。
上記の実施の形態では、設定値等に応じて取得した判定値数を内部抽選用の乱数の値に順次加算していたが、取得した判定値数を取得した内部抽選用の乱数の値から順次減算して、減算の結果を新たな内部抽選用の乱数の値とするものとしてもよい。判定値数を内部抽選用の乱数の値から減算するときには、内部抽選用の乱数の第15ビットと第14ビットとを「0」として、減算の結果にオーバーフロー(ここでは、減算結果がマイナスとなること)が生じたかどうかを判定するものとすることができる。
上記の実施の形態では、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ或いはRT当選フラグが設定されているか否かに関わらず、遊技状態が通常またはRTにあるときにはビッグボーナス及びレギュラーボーナス(並びにRT(通常の遊技状態にあるとき)の判定値数を取得して、これらの役の当選の有無を判定するものとしていた。但し、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ或いはRT当選フラグが設定されているときには、これらの役に当選したものと判定されても、対応する当選フラグを設定しないものとしていた。
これに対して、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ或いはRT当選フラグが既に設定されているときには、これらの役の抽選自体を行わないものとしてもよい。すなわち、ビッグボーナス当選フラグ、レギュラーボーナス当選フラグ或いはRT当選フラグが設定されているときには、これらの役に対応した判定値数を内部抽選用の乱数に加算したりしないものとしてもよい。この場合には、判定値数を内部抽選用の乱数に加算した結果のオーバーフロー判定を行う回数が少なくて済むようになる。
上記の実施の形態では、内部抽選は、取得した内部抽選用の乱数の値に遊技状況に応じた各役の判定値数を順次加算していき、加算結果がオーバーフローしたときに当該役を当選と判定するものとしていた。これに対して、遊技状況に応じた各役の判定値数に応じて、各役を当選と判定する判定値を定めた当選判定用テーブルをゲーム毎に作成し、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしてもよい。
レギュラーボーナスの場合は、賭け数が1に固定されるので、ゲーム毎に当選判定用テーブルを作成しないで、レギュラーボーナスの開始時のみに当選判定用テーブルを作成するものとしてもよい。レギュラーボーナスでは1枚賭けでゲームを行うが、それ以外のゲームでは必ず3枚賭けでゲームを行うものとした3枚賭け専用機でも、ゲーム毎に当選判定用テーブルを作成しないで、設定値の変更操作がなされた後か、遊技状態に変化があったときのゲームにおいてのみ、当選判定用テーブルを生成するものとしてもよい。
上記の実施の形態では、通常の遊技状態とRTとで、別々の遊技状態別テーブルが用いられていた。もっとも、通常の遊技状態とRTとで適用される判定値数の異なる役は、リプレイと、RT(通常の遊技状態のみの役である)だけである。このため、通常の遊技状態とRTとで遊技状態別テーブルを共通化し、リプレイとRTについては、設定値と賭け数に応じて判定値数が格納されていることを示す共通フラグと同様の共通フラグを用いて、異なる判定値数が適用させるようにすることができる。
上記の実施の形態では、乱数発生回路115から抽出した乱数の上位バイト全体を下位バイトで置換し、下位バイト全体を上位バイトで置換するという入れ替えを行っていた。これに対して、乱数発生回路115から抽出した乱数のビットのうちの特定のビットのデータを他のビットのデータ(但し、マスクされる第7、第15ビット以外)で置換するだけであってもよい。また、乱数発生回路115から抽出した乱数の値を、そのまま内部抽選用の乱数として取得するものとしてもよい。さらに、上記の実施の形態とは異なる方法により内部抽選用の乱数に加工するものとしてもよい。
図14は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの処理(ステップS301)の第1の変形例の説明図である。この第1の変形例でも、乱数発生回路115から抽出された乱数は、CPU111が有する16ビットの汎用レジスタ111GRに格納されるものとなる。
乱数発生回路115から抽出された乱数が汎用レジスタ111GRに格納されると、CPU111は、さらに内部のリフレッシュレジスタ111Rの値を加工用の乱数として抽出する。CPU111は、汎用レジスタ111GRの上位バイトの値(上位カウンタ115cから抽出した値)にリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。汎用レジスタ111GRの下位バイトの値(下位カウンタ115bから抽出した値)は、そのままにしておく。
次に、CPU111は、汎用レジスタ111GRの値、すなわち上位バイトに加工用の乱数を加算した値を、8080hと論理積演算をする。さらに、CPU111は、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU111は、このときに汎用レジスタ111GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
図15は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの処理(ステップS301)の第2の変形例の説明図である。この例でも、乱数発生回路115から抽出された乱数は、CPU111が有する16ビットの汎用レジスタ111GRに格納されるものとなる。
乱数発生回路115から抽出された乱数が汎用レジスタ111GRに格納されると、CPU111は、さらに内部のリフレッシュレジスタ111Rの値を加工用の乱数として抽出する。CPU111は、汎用レジスタ111GRの上位バイトの値(上位カウンタ115cから抽出した値)にリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。また、汎用レジスタ111GRの下位バイトの値(下位カウンタ115bから抽出した値)にもリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。
次に、CPU111は、汎用レジスタ111GRの値、すなわち上位バイト及び下位バイトにそれぞれ加工用の乱数を加算した値を、8080hと論理積演算をする。さらに、CPU111は、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU111は、このときに汎用レジスタ111GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
以上説明した第1、第2の変形例では、リフレッシュレジスタ111Rの値を加工用の乱数として抽出し、これを乱数発生回路115から抽出した乱数の上位バイト(第2変形例では、さらに下位バイト)に加算して、乱数の加工を行うものとしている。ここで適用した乱数の加工には、少なくとも加工用の乱数を上位バイトに加算する処理を含んでいる。これにより、内部抽選用の乱数のバラツキを大きくすることができ、遊技者による狙い打ちを可能な限り防ぐことができる。
また、加工用の乱数をリフレッシュレジスタ111Rから抽出するものとしたことで、加工用の乱数を生成する手段として特別な構成が必要ない。しかも、リフレッシュレジスタ111Rの値は、CPU111の命令フェッチ毎に更新されるもので、その更新間隔は一定しないので、ランダム性の高い乱数を加工用の乱数として抽出することができる。そして、加工用の乱数のランダム性が高いことから、これを用いて生成される内部抽選用の乱数のランダム性も高くなる。
なお、上記第1、第2の変形例において、乱数発生回路115から抽出した乱数の上位バイト(及び下位バイト)にリフレッシュレジスタ111Rから抽出した値を加算していたが、リフレッシュレジスタ111R以外でハードウェアまたはソフトウェアにより周期的に更新される値を加算してもよい。また、リフレッシュレジスタ111Rから抽出した値(或いは、リフレッシュレジスタ111Rに代わるものの値)を加算するのではなく、減算や、論理和、論理積などの論理演算を行ってもよい。
また、上記の実施の形態で示した上位バイトと下位バイトとの入れ替えのようなビットの置換を、第1、第2の変形例に併用するものとしてもよい。上記第1、第2の変形例においても、乱数発生回路115からの乱数の抽出から加工を終了するまでの間は、汎用レジスタ111GRの内容が書き換えられてしまうのを防ぐため、CPU111に対する割り込みが禁止されるものとなる。
また、第2の変形例においては、乱数発生回路115から抽出した乱数の上位バイトと下位バイトにそれぞれ加算する加工用の乱数を、リフレッシュレジスタ111Rから異なるタイミングで別々に抽出してもよい。上位バイトに加算する加工用の乱数を更新する手段と、下位バイトに加算する加工用の乱数を更新する手段とを別々に用意し、それぞれから上位バイト用、下位バイト用の加工用の乱数を抽出する手段を設けるものとしてもよい。この場合において、上位バイト用の加工用の乱数を更新する手段と下位バイト用の加工用の乱数を更新する手段の一方をリフレッシュレジスタ111Rによって構成するものとすることができる。
上記の実施の形態では、乱数発生回路115が発生する乱数、すなわちハードウェア乱数機能により抽出した乱数をソフトウェアにより加工する場合に本発明を適用した場合について説明した。しかしながら、上記したソフトウェアによる乱数の加工は、ソフトウェアにより周期的に更新される乱数に適用してもよい。例えば、制御部110を構成するマイクロコンピュータとは第1のマイクロコンピュータにおいてタイマ割り込みなどにより周期的に更新される乱数を、CPU111が第2のマイクロコンピュータに指示を送って抽出させ、I/Oポート114を介してCPU111に入力して、汎用レジスタ111GRに格納するものとすることができる。第2のマイクロコンピュータの機能は、制御部110を構成するマイクロコンピュータに含まれていてもよい。この場合にも、加工後に取得される乱数の値をバラつかせることができるようになり、遊技者による狙い打ちの防止の効果を図ることができる。
上記の実施の形態では、遊技の進行に関わる情報や演出の実行に関わる情報であって、変更する必要のある情報は、それぞれ遊技制御基板101と演出制御基板102のRAM112、122に記憶されるものとなっていた。これに対して、設定値のように頻繁に更新されることがない情報は、電気的に書き換え可能な不揮発性のメモリ(EEPROM、フラッシュメモリなど)に記憶させるものとしてもよい。上記の実施の形態のRAM112、122のデータの初期化に対応して、このような不揮発性のメモリのデータを初期化するものとしてもよい。
上記の実施の形態では、遊技制御基板101のRAM112について、成立した条件に応じてクリアすべき領域の先頭アドレスを設定して、最終アドレスまでを全てクリアするものとしていた。演出制御基板102のRAM122についても、成立した条件に応じてクリアする領域が定められるのであれば、RAM112と同様に領域を配置し、成立した条件に応じたアドレスから最終アドレスまでを全てクリアするものとすることができる。成立した条件の種類は、コマンドによって演出制御基板102のCPU121に通知するものとすることができる。
上記の実施の形態では、通常の遊技状態以外の遊技者にとって有利な遊技状態としては、ビッグボーナス、レギュラーボーナス、RTの3つであり、いずれも遊技制御基板101による処理で制御されるものであった。これに対して、当選している小役の種類や、小役を入賞させるための停止ボタン12L、12C、12Rの操作順序を告知するAT(Assist Time)を、遊技者に有利な遊技状態として設けるものとしてもよい。このATは、演出制御基板102による処理で制御するものとすることができる。
遊技状態をATに移行させるか否かのAT抽選の当選確率、遊技状態をATに移行させてから終了までのATゲーム数の決定確率、遊技状態がATにあるときにゲーム毎に告知を行う確率などについても、設定値に従って異なるものとすることができる。上記のように設定値の変更が確定したときの状態コマンドの送信によって、演出制御基板102で認識される設定値も確実に更新することができるので、遊技制御基板101で認識されている設定値と食い違いを生じることなく、演出制御基板102においてATに関する制御を行えるようになる。
上記の実施の形態では、可変表示装置2は、外周部に複数の図柄を所定順に配した3つのリール3L、3C、3Rを備えるものとし、これらのリール3L、3C、3Rの回転駆動によって図柄を可変表示させるものとしていた。しかしながら、液晶表示装置などの表示装置上で仮想的に図柄を可変表示させるものを、上記のような可変表示装置2の代わりに用いてもよい。
上記の実施の形態では、本発明をスロットマシンに適用した場合を例として説明した。これに対して、設定値に応じて特図ゲームの大当たり確率を異なるものとするパチンコ遊技機があり、このようなパチンコ遊技機では、上記したスロットマシン1と同様に設定値の変更操作が行われる。パチンコ遊技機でも、上記したスロットマシン1と同様に、遊技の進行を制御する遊技制御基板と特図ゲームの実行等の演出を制御する演出制御基板とに分けて、制御回路を構成するものとしている。
上記したスロットマシン1に適用した設定値の変更操作の開始時と終了時におけるコマンドの送信は、パチンコ遊技機において適用することができる。これらのタイミングで送信されるコマンドを他のコマンドと兼用することも、パチンコ遊技機において適用することができる。設定値の変更操作中である旨を報知することも、パチンコ遊技機において適用することができる。前面扉が開放状態にあることを条件として設定値の変更操作を可能とすることも、パチンコ遊技機においても適用することができる。
また、パチンコ遊技機において特図ゲームの結果を大当たりとするか否かは、大当たり判定用乱数を取得し、該取得した乱数の値に応じて決定するものとしているが、上記した内部抽選用の乱数の取得方法を、大当たり判定用乱数の取得のためにも適用することができる。図14、図15で示した変形例の内部抽選用の乱数の取得方法も、大当たり判定用乱数の取得のためにも適用することができる。