以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、この実施の形態にかかるスロットマシンの全体構造を示す正面図である。スロットマシン1の前面扉は、施錠装置19にキーを差し込み、時計回り方向に回動操作することにより開放状態とすることができる。このスロットマシン1の上部前面側には、可変表示装置2が設けられている。可変表示装置2の内部には、3つのリール3L、3C、3Rから構成されるリールユニット3が設けられている。リール3L、3C、3Rは、それぞれリールモータ3ML、3MC、3MR(図3参照)の駆動によって回転/停止させられる。
リール3L、3C、3Rの外周部には、図2に示すように、それぞれ「7」、「BAR」、「JAC」、「リプレイ」、「スイカ」、「チェリー」、「ベル」といった互いに識別可能な複数種類の図柄が所定の順序で描かれている。ここで、「リプレイ」及び「ベル」は、リール3L、3C、3Rのいずれについても、最大でも5コマ以内の間隔で配置されている。右のリール3Rについて「JAC」は最大でも5コマ以内の間隔で配置されている。リール3L、3C、3Rの外周部に描かれた図柄は、可変表示装置2において上中下三段に表示される。
リールユニット3内には、リール3L、3C、3Rのそれぞれに対して、その基準位置を検出するリールセンサ3SL、3SC、3SR(図3参照)と、背面から光を照射するリールランプ3LP(図3参照)とが設けられている。可変表示装置2には、後述するレギュラーボーナスにおいて賭け数として1が設定されているときには、中段の1本の入賞ラインが設定される。レギュラーボーナス以外では賭け数として3が設定されている状態でのみゲームを開始させることができ、この賭け数として3が設定されているときには、上中下段の3本及び対角線の2本の合計5本の入賞ラインが設定される。
また、可変表示装置2の周囲には、各種表示部が設けられている。可変表示装置2の下側には、ゲーム回数表示部21と、クレジット表示部22と、ペイアウト表示部23とが設けられている。ゲーム回数表示部21は、7セグメント表示器によるゲーム回数表示器51(図3参照)によって構成され、後述するレギュラーボーナス(ビッグボーナス中に提供された場合を含む)におけるゲーム数及び入賞数をカウントするカウンタの値を表示する。ゲーム回数表示部21は、後述するビッグボーナス時にメダルの払い出し数をカウントするカウンタの値を表示するために用いてもよい。さらに、ゲーム回数表示部21は、後述するRAM異常エラーなどのエラーが発生したときに、発生したエラーの種類に対応したコード(エラーコード)を表示するためにも用いられる。
クレジット表示部22は、7セグメント表示器によるクレジット表示器52(図3参照)によって構成され、後述するようにメダルの投入枚数及び払い出し枚数に応じてデータとして蓄積されたクレジットの数を表示する。ペイアウト表示部23は、7セグメント表示器によるペイアウト表示器53(図3参照)によって構成され、入賞が成立した場合に払い出されるメダルの枚数を表示する。
可変表示装置2の左側には、1枚賭け表示部24、2枚賭け表示部25、26、及び3枚賭け表示部27、28が設けられている。1枚、2枚、3枚賭け表示部24〜28は、入賞ラインに対応してそれぞれ1枚、2枚、3枚賭けランプ54〜58(図3参照)が点灯状態となることで、各ゲームにおける入賞ラインを遊技者に示す。1枚、2枚、3枚賭け表示部24〜28は、また、後述する役への入賞があった場合に1枚、2枚、3枚賭けランプ54〜58が点滅状態となることで、後述する役に入賞した入賞ラインを遊技者に示す。
可変表示装置2の右側には、投入指示表示部29と、スタート表示部30と、ウェイト表示部31と、リプレイ表示部32と、ゲームオーバー表示部33とが設けられている。投入指示表示部29は、投入指示ランプ59(図3参照)が点灯状態となることで、メダルが投入可能なことを示す。スタート表示部30は、スタートランプ60(図3参照)が点灯状態となることで、スタート可能、すなわちスタートレバー11の操作受付可能であることを示す。ウェイト表示部31は、ウェイトランプ61(図3参照)が点灯状態となることで、後述するウェイトがかかっていることを示す。リプレイ表示部32は、リプレイランプ62(図3参照)が点灯状態となることで、後述するリプレイ入賞をしたことを示す。ゲームオーバー表示部33は、ゲームオーバーランプ63(図3参照)が点灯状態となることで、スロットマシン1が打ち止めになったことを示す。
可変表示装置2の上側には、演出手段としての液晶表示器4が設けられている。液晶表示器4は、遊技状態や当選フラグの設定状況等に応じて様々な演出用の画像を表示する。また、液晶表示器4には、遊技に直接的または間接的に関わる様々な情報を表示することが可能である。
また、可変表示装置2の下方に設けられた台状部分の水平面には、メダル投入口13と、1枚BETボタン14と、MAXBETボタン15と、精算ボタン16とが設けられている。1枚BETボタン14及びMAXBETボタン15には、データとして蓄積されたクレジット(最大50)から賭け数の設定を可能としているときに点灯するBETボタンランプ70a、70b(図3参照)が内部に配されている。
メダル投入口13は、遊技者がここからメダルを投入するものであり、投入指示表示部29が点灯しているときにメダルの投入が投入メダルセンサ44(図3参照)によって検出されると、賭け数が設定され、或いはクレジットがデータとして蓄積される。1枚BETボタン14及びMAXBETボタン15は、データとして蓄積されているクレジットから賭け数(それぞれ1、3)を設定する際に遊技者が操作するボタンであり、遊技者によって操作されたことが1枚BETスイッチ45(図3参照)またはMAXBETスイッチ46(図3参照)によって検出されると、クレジットからの賭け数の設定が行われる。精算ボタン16は、クレジットの払い出しを指示するためのボタンであり、精算スイッチ47(図3参照)によって操作が検出されると、データとして蓄積されたクレジットに応じたメダルが払い出される。
その台状部分の垂直面には、スタートレバー11と、停止ボタン12L、12C、12Rとが設けられている。スタートレバー11は、ゲームを開始する際に遊技者が操作するもので、その操作がスタートスイッチ41(図3参照)によって検出されると、リール駆動モータ3ML、3MC、3MRが駆動開始され、リール3L、3C、3Rが回転開始する。リール3L、3C、3Rが回転開始した後所定の条件が成立することにより停止ボタン12L、12C、12Rの操作が可能となると、その内部に備えられた操作有効ランプ63L、63C、63R(図3参照)が点灯状態となって、その旨が遊技者に示される。
停止ボタン12L、12C、12Rは、それぞれ遊技者が所望のタイミングでリール3L、3C、3Rの回転を停止させるべく操作するボタンであり、その操作がストップスイッチ42L、42C、42R(図3参照)で検出されると、リール3L、3C、3Rの回転が停止される。停止ボタン12L、12C、12Rの操作から対応するリール3L、3C、3Rの回転を停止するまでの最大停止遅延時間は190ミリ秒である。
リール3L、3C、3Rは、1分間に80回転し、80×21(1リール当たりの図柄コマ数)=1680コマ分の図柄を変動させるので、190ミリ秒の間では最大で4コマの図柄を引き込むことができることとなる。つまり、後述する停止制御テーブルにより選択される停止図柄は、停止ボタン12L、12C、12Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分の図柄である。
さらに、停止ボタン12L、12C、12Rを覆うパネルが、ボーナス告知部36として適用されている。ボーナス告知部36は、ボーナス告知ランプ66(図3参照)が点灯状態となることで、後述するレギュラーボーナス入賞、及びビッグボーナス入賞が可能となっていることを遊技者に告知する。また、停止ボタン12Rの右側には、メダルが詰まったときなどにおいてスロットマシン1に機械的に振動を与えるメダル詰まり解消ボタン18が設けられている。
スロットマシン1の下部前面側には、メダル払い出し口71と、メダル貯留皿72とが設けられている。メダル払い出し口71は、ホッパー80(図3参照)によって払い出しが行われたメダルを外部に排出するものである。メダル貯留皿72は、払い出されたメダルを貯めておくためのものである。メダル貯留皿72の上の前面パネルには、内部に設置された蛍光灯6(図3参照)が発した光が照射される。
スロットマシン1の下部前面側と、上部前面側の左右とには、それぞれ演出手段としてのスピーカ7U、7L、7Rが設けられている。スピーカ7U、7L、7Rは、スタートレバー11が操作された時のスタート音の出力や、入賞時、ビッグボーナス突入時、及びレギュラーボーナス突入時における効果音の出力や、さらには異常時における警報音の出力を行うと共に、遊技状態に応じた様々な演出用の音声の出力を行う。
さらに、スロットマシン1の前面側には、可変表示装置2及び液晶表示器4の周囲を取り囲むように、演出手段としての遊技効果ランプ75A〜75M(図3参照)の発光により光による演出を行う遊技効果表示部5A〜5Mが設けられている。遊技効果表示部5A〜5Mは、遊技の進行状況に応じた様々なパターンで光による演出を行うものである。なお、遊技効果表示部5A〜5Mの発光色は、単色からなるものであっても、複数色からなるものであっても構わない。
図3は、このスロットマシン1の制御回路の構成を示す図である。図示するように、このスロットマシン1の制御回路は、電源基板100、遊技制御基板101、演出制御基板102、リール中継基板103、リールランプ中継基板104、外部出力基板105、及び演出中継基板106に大きく分けて構成される。
電源基板100は、AC100Vの外部電源電圧を変圧し、遊技制御基板101その他のスロットマシン1の各部に動作電力を供給する。図3では、遊技制御基板101、ホッパー80、各スイッチ91〜94にのみ接続されているように示しているが、電源基板100は、他の各部への電力の供給も行っている。電源基板100は、スロットマシン1の内部に設けられ、メダルの払い出し動作を行うホッパーモータ82と、メダルの払い出しを検知する払い出しセンサ81とから構成されるホッパー80に接続されている。
電源基板100は、後述する内部抽選への当選確率を設定し、これに基づいて算出されるメダルの払出率の設定値(設定1〜設定6)を変更するための設定スイッチ91、設定スイッチ91を操作有効とする設定キースイッチ92、内部状態(RAM112)をリセットする第2リセットスイッチ93、及び電源のON/OFF切り替えを行うメインスイッチ94にもそれぞれ接続されてており、これらのスイッチの検出信号を遊技制御基板101へと送る。これらのスイッチ91〜94は、スロットマシン1の内部に設けられている。
遊技制御基板101は、スロットマシン1における遊技の進行全体の流れを制御するメイン側の制御基板であり、CPU111、RAM112、ROM113及びI/Oポート114を含む1チップマイクロコンピュータからなる制御部110を搭載している。また、乱数発生回路115、サンプリング回路116、電源監視回路117、リセット回路118その他の回路を搭載している。
CPU111は、計時機能、タイマ割り込みなどの割り込み機能(割り込み禁止機能を含む)を備え、ROM113に記憶されたプログラム(後述)を実行して、遊技の進行に関する処理を行うと共に、スロットマシン1内の制御回路の各部を直接的または間接的に制御する。CPU111が取り扱うデータの1ワードは、8ビット(1バイト)であり、RAM112、ROM113のアドレスも、8ビット単位で割り付けられている。
CPU111は、8ビットの大きさを有するアキュムレータレジスタ(以下、Aレジスタ)と、16ビットの大きさを有するHLレジスタと、16ビットの大きさを有し、RAM112から読み出したデータを2ワード分一時格納するDEレジスタとを有している。そして、DEレジスタに格納されたデータは、HLレジスタに格納されたデータに加算することが可能となっており、加算の結果としてHLレジスタがオーバーフローしたことを示すオーバーフローフラグを含んでいる。
RAM112は、CPU111がプログラムを実行する際のワーク領域として使用される。ROM113は、CPU111が実行するプログラムや固定的なデータを記憶する。RAM112とROM113のアドレスの割り当ては、メーカにおける開発用機種とホールに納入される量産機種とで異なる。I/Oポート114は、遊技制御基板101に接続された各回路との間で制御信号を入出力する。
また、RAM112は、DRAM(Dynamic RAM)が使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要となる。CPU111には、このリフレッシュ動作を行うためのリフレッシュレジスタが設けられている。リフレッシュレジスタは、1ワード分の大きさである8ビットからなり、そのうちの下位7ビットがCPU111がROM113から命令をフェッチする度に自動的にインクリメントされるもので、その値の更新は、1命令の実行時間毎に行われる。なお、RAM112の領域の構成については、後述する。
乱数発生回路115は、後述するように所定数のパルスを発生する度にカウントアップして値を更新するカウンタによって構成され、サンプリング回路116は、乱数発生回路115がカウントしている数値を取得する。乱数発生回路115は、遊技の進行に使用される乱数の種類毎に設けられていて、乱数の種類毎にカウントする数値の範囲が定められている。CPU111は、その処理に応じてサンプリング回路116に指示を送ることで、乱数発生回路115が示している数値を乱数として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数には、ハードウェア乱数機能により抽出した数値をソフトウェアにより加工した数値が使用される。
電源監視回路117は、電源基板100から供給される電源電圧を監視し、電圧の低下を検出したときに、電圧低下信号を制御部110に対して出力する。制御部110は、特に図示はしないが、電源監視回路117に接続された割込入力端子を備えており、割込入力端子に電圧低下信号が入力されることでCPU111に外部割り込みが発生し、CPU111は、後述する電断割込処理を実行する。
リセット回路118は、電源投入時において制御回路110が起動可能なレベルまで電圧が上昇したきにリセット信号を出力して制御部110を起動させると共に、制御部110から定期的に出力される信号に基づいてリセットカウンタの値がクリアされずにカウントアップした場合、すなわち制御部110が一定時間動作を行わなかった場合に、制御部110に対してリセット信号を出力し、制御部110を再起動させる。
CPU111は、また、タイマ割り込み処理により、RAM112の特定アドレスの数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。CPU111は、I/Oポート114を介して演出制御基板102に、各種のコマンドを送信する。なお、遊技制御基板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は、後述する内部抽選によりRAM112に設定される当選フラグを参照して、リール中継基板103を介してリールモータ3ML、3MC、3MRを制御して、リール3L、3C、3Rを停止させる。遊技制御基板101には、さらに演出中継基板106を介して演出制御基板102が接続されている。
演出中継基板106は、遊技制御基板101から演出制御基板102へ送信される情報の一方向性を担保するために設けられた基板である。演出中継基板106は、この状態を調べることによって遊技制御基板101や演出制御基板102を調べなくても、遊技制御基板101の制御部110に不正な信号(特に演出制御基板102に外部から入力されるようになっている信号)が入力されるような改造がなされていないかどうかをチェックすることができるようにするものである。
演出制御基板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の制御部120は、これら各部をそれぞれ制御して、演出を行っている。
リール中継基板103は、遊技制御基板101と外部出力基板105及びリールユニット3との間を中継している。リール中継基板103には、また、満タンセンサ90が接続されており、その検出信号が入力される。満タンセンサ90は、スロットマシン1の内部に設けられ、ホッパー80からオーバーフローしたメダルを貯留するオーバーフロータンク内のメダルが満タンになったことを検知するものである。
リールランプ中継基板104は、演出制御基板102とリールユニット3との間を中継している。外部出力基板105は、ホールの管理コンピュータなどの外部装置に接続されており、遊技制御基板101からリール中継基板103を介して入力されたビッグボーナス中信号、レギュラーボーナス中信号、リール制御信号、ストップスイッチ信号、メダルIN信号、メダルOUT信号、及び当選状況信号を、当該外部装置に出力する。
次に、遊技制御基板101のRAM112の構成と初期化について説明する。図4は、RAM112の記憶領域の構成を示す図である。遊技制御基板101のRAM112は、512バイトの格納領域を有しており、図4に示すように、各バイト毎に7E00(H)〜7FFF(H)のアドレスが割り当てられているとともに、重要ワーク112−1、一般ワーク112−2、特別ワーク112−3、設定値ワーク112−4、非保存ワーク112−5、未使用領域112−6、スタック領域112−7に区分されている。
重要ワーク112−1は、7E00(H)〜7E27(H)の40バイトの領域であり、各種表示器やLEDの表示用データ、I/Oポート114の入出力データ、遊技時間の計時カウンタ等、ビッグボーナス終了時に初期化すると不都合があるデータが格納されるワークである。後述する特別役一時格納ワークは、重要ワーク112−1に含まれる。
一般ワーク112−2(一般ワーク112−21及び112−22)は、7E28(H)〜7E8E(H)、7EBA(H)〜7F04(H)の178バイトの領域であり、停止図柄データ、メダルの払出枚数、ビッグボーナス中のメダル払出総数等、ビッグボーナス終了時に初期化可能なデータが格納されるワークである。後述する一般役一時格納ワーク及び内部当選フラグ格納ワークは、一般ワーク112−2に含まれる。
特別ワーク112−3は、7E8F(H)〜7EB5(H)の39バイトの領域であり、演出制御基板102ヘコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。
設定値ワーク112−4は、7EB6(H)の1バイトの領域であり、設定値が格納されるワークであり、設定開始前(設定変更モードへの移行前)の初期化において0が格納された後、1に補正され、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されることとなる。
非保存ワーク112−5は、7EB7(H)〜7EB9(H)の3バイトの領域であり、各種スイッチ類の状態を保持するワークであり、電源投入時にRAM112のデータが破壊されているか否かに関わらず必ず値が設定されることとなる。
未使用領域112−6は、7F05(H)〜7FD1(H)の205バイトの領域であり、RAM112の格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。
スタック領域112−7は、7FD2(H)〜7FFF(H)の45バイトの領域であり、このうち7FD2(H)〜スタックポインタ(SP)−1の領域は、スタック領域112−7内の使用されていない未使用スタック領域112−71であり、スタックポインタ〜7FFF(H)の領域は、CPU111のレジスタから退避したデータが格納されている使用中スタック領域112−72である。このうち未使用スタック領域112−71は、未使用領域112−6と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域112−72は、プログラムの続行のため、初期化されることはない。
この実施の形態において遊技制御基板101のCPU111は、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、電源投入時にRAM112のデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。図5(a)は、それぞれの初期化条件において遊技制御基板101内のRAM112の初期化される領域を示す図である。
初期化1は、電源投入時において設定キースイッチ92がONの状態であり、設定変更モードへ移行する場合において、その前に行う初期化であり、初期化1では、RAM112の格納領域のうち、使用中スタック領域112−72を除く全ての領域(未使用領域112−6及び未使用スタック領域112−71を含む)が初期化される。初期化2は、ビッグボーナス終了時に行う初期化であり、初期化2では、RAM112の格納領域のうち、一般ワーク112−2、未使用領域112−6及び未使用スタック領域112−71が初期化される。
初期化3は、電源投入時において設定キースイッチ92がOFFの状態であり、かつRAM112のデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク112−5、未使用領域112−6及び未使用スタック領域112−71が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM112の格納領域のうち、未使用領域112−6及び未使用スタック領域112−71が初期化される。
ROM113には、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録されており、CPU111がRAM112の初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する。
また、初期化サイズが未使用スタック領域112−71のサイズを含むものであれば、未使用スタック領域112−71のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する。そして、ポインタが設定された初期化アドレスから1バイトずつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行する。すなわちCPU111がRAM112を初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化することとなる。
図5(b)は、初期化テーブルを示す図である。初期化テーブルには、前述のように初期化1〜4に対応して開始アドレス及び初期化サイズが登録されている。
初期化1には、開始アドレスとして7E00(H)、初期化サイズとして1D3(H)+M(未使用スタック領域112−71のサイズ:(スタックポインタ−7FD2))バイトが登録されているので、初期化1では、7E00(H)から1D3(H)+Mバイト分の領域が初期化される。
図4に示すように、重要ワーク112−1、一般ワーク112−21、特別ワーク112−3、設定値ワーク112−4、非保存ワーク112−5、一般ワーク112−22、未使用領域112−6、未使用スタック領域112−71は、7E00(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計すると1D3(H)+Mバイトとなるので、初期化1において、7E00(H)から1D3(H)+Mバイト分が初期化されることで、重要ワーク112−1、一般ワーク112−21、特別ワーク112−3、設定値ワーク112−4、非保存ワーク112−5、一般ワーク112−22、未使用領域112−6、未使用スタック領域112−71の順番でこれらの各領域が初期化されることとなる。
初期化2には、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化2において初期化される一般ワーク112−2(112−21及び112−22)が離れた2つのアドレス領域に割り当てられているからである。初期化2には、最初に初期化する領域の開始アドレスとして7E28(H)、初期化サイズとして67(H)バイトが登録され、次に初期化する領域の開始アドレスとして7EBA(H)、初期化サイズとして118(H)+Mバイトがそれぞれ登録されているので、初期化2では、7E28(H)から67(H)バイト分の領域及び7EBA(H)から118(H)+Mバイト分の領域が初期化される。
7E28(H)〜7E8E(H)の一般ワーク112−2のサイズは67(H)バイトとなり、図4に示すように、残りの一般ワーク112−2の領域、未使用領域112−6、未使用スタック領域112−71は、7EBA(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計すると118(H)+Mバイトとなるので、初期化2において、7E28(H)から67(H)バイト分が初期化され、7EBA(H)から118(H)+Mバイト分が初期化されることで、一般ワーク112−2、未使用領域112−6、未使用スタック領域112−71の順番でこれらの各領域が初期化されることとなる。
初期化3にも、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化3において初期化される非保存ワーク112−5と未使用領域112−6及び未使用スタック領域112−71とが離れた2つのアドレス領域に割り当てられているからである。初期化3には、最初に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして3(H)バイトが登録され、次に初期化する領域の開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトがそれぞれ登録されているので、初期化3では、7EB7(H)から3(H)バイト分の領域及び7F05(H)からCD(H)+Mバイト分の領域が初期化される。
図4に示すように、非保存ワーク112−5は、7EB7(H)から3バイト分の領域であり、未使用領域112−6、未使用スタック領域112−71は、7F05(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化3において、7EB7(H)から3(H)バイト分が初期化され、7F05(H)からCD(H)+Mバイト分が初期化されることで、非保存ワーク112−5、未使用領域112−6、未使用スタック領域112−71の順番でこれらの各領域が初期化されることとなる。
初期化4には、開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトが登録されているので、初期化4では、7F05(H)からCD(H)+Mバイト分の領域が初期化される。図4に示すように、未使用領域112−6、未使用スタック領域112−71は、7F05(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化4において、7F05(H)からCD(H)+Mバイト分が初期化されることで、未使用領域112−6、未使用スタック領域112−71の順番でこれらの各領域が初期化されることとなる。
また、初期化1〜4のうち初期化1、3については、CPU111の起動後、割込が許可される前に行われる処理である。一方、初期化2、4については、割込が許可されている状態で行われる処理であるが、これら初期化2、4の実行中は、割込が禁止されるようになっている。すなわち初期化1〜4の実行中においては常に割込が禁止されるようになっている。
上記スロットマシン1においては、設定値に応じてメダルの払出率が変わるものであり、後述する内部抽選の当選確率は、設定値に応じて定まるものとなる。以下、設定スイッチ91による設定値の変更操作について説明する。設定値を変更するためには、設定キースイッチ92をON状態としてからメインスイッチ94によりスロットマシン1の電源をONする必要がある。設定値を変更せずにスロットマシン1を起動する場合には、設定キースイッチ92をOFF状態としてメインスイッチ94により電源をONすればよい。
設定キースイッチ92をON状態として電源をONすると、設定値の変更操作が可能な設定変更モードなる。設定変更モードにおいて、設定スイッチ91が操作されると、設定値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートレバー11が操作されてから設定キースイッチ92がOFFされると、変更後の確定した設定値が設定値ワーク112−4に記憶される。そして、設定キースイッチ92がOFFされると、遊技の進行が可能な状態に移行する。
遊技の進行が可能な状態であるときには、スロットマシン1におけるゲームが1ゲームずつ順次進行するが、各ゲームで行われる内部抽選において設定値ワーク112−4に格納された設定値が正常範囲(1〜6)にあるかどうかを判定する。設定値が正常範囲にない場合には、RAM異常と判定し、RAM異常エラーコードをセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。
また、遊技制御基板101のCPU111が電圧低下信号を検出した際に、電断割込処理を実行する。電断割込処理では、レジスタをスタック領域112−7に退避し、遊技制御基板101のRAM112にいずれかのビットが1となる破壊診断用データ(この実施の形態では、5A(H))、すなわち0以外の特定のデータを格納するとともに、RAM112の全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM112の非保存ワーク112−5に格納する処理を行うようになっている。
ここにRAMパリティとは、RAM112の該当する領域(この実施の形態では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM112の全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM112の全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、CPU111は、その起動時においてRAM112の全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM112に記憶されているデータに基づいてCPU111の処理状態を電断前の状態に復帰させる。一方、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。RAM異常エラー状態は、他のエラー状態と異なり、第1リセットスイッチ48または第2リセットスイッチ93を操作しても解除されないようになっており、設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
上記スロットマシン1においては、可変表示装置2の賭け数に応じて設定された入賞ライン上に役図柄が揃うと、入賞となる。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、遊技状態の移行を伴う特別役と、メダルの払い出しを伴う小役と、賭け数の設定を必要とせずに次のゲームを開始可能となる再遊技役とがある。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグが設定されている必要がある。
内部抽選は、当該ゲームでの遊技状態に応じて行われる。すなわち、遊技状態の違いにより、内部抽選の対象となる役も異なっている。レギュラーボーナス(ビッグボーナス中を含む)の遊技状態では、小役であるJAC、チェリー及びベルが、入賞となる役として定められている。ビッグボーナス(小役ゲーム)の遊技状態では、特別役であるレギュラーボーナス(2)及びJACIN、小役であるチェリー及びベルが入賞となる役として定められている。通常遊技状態では、特別役であるビッグボーナス(1)、ビッグボーナス(1)及びビッグボーナス(2)、小役であるチェリー及びベル、再遊技役であるリプレイが入賞となる役として定められている。
また、内部抽選により、入賞となる役に加えて、いずれの役の入賞も許容されないハズレについての抽選も行われるようになっており、ハズレが当選した場合には、ハズレの当選フラグが設定されるようになっている。また、ハズレは、ハズレ(1)、ハズレ(2)の2種類に分類されている。内部抽選では、いずれの役の入賞も当選しない場合に、ハズレ(1)がさらに内部抽選の対象役となり、ハズレ(1)に当選したか、ハズレ(1)に当選しなかったか(このときは、ハズレ(2)となる)により、ハズレの種類を特定できるようになっている。なお、ハズレ(2)については抽選は行われないが、ハズレ(1)を含めていずれの抽選対象役にも当選せずにハズレ(2)となったことを、ハズレ(2)に当選したものとして説明する場合があるものとする。
JACは、レギュラーボーナスにおいて入賞ラインに「リプレイ−リプレイ−JAC」の組み合わせが揃ったときに入賞となるが、レギュラーボーナス以外の遊技状態では、この組み合わせが揃ったとしてもJAC入賞とならない。チェリーは、いずれの遊技状態においても左のリール3Lについて入賞ラインのいずれかに「チェリー」の図柄が導出されたときに入賞となる。ベルは、いずれの遊技状態においても入賞ラインのいずれかに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となる。これらの小役が入賞したときのメダルの払い出しについては後述する。
リプレイは、通常遊技状態において入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組み合わせが揃ったときに入賞となるが、レギュラーボーナスやビッグボーナス(小役ゲーム及びレギュラーボーナス)では、この組み合わせが揃ったとしても入賞とならない。リプレイが入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数(レギュラーボーナスではリプレイ入賞しないので必ず3)に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
ビッグボーナスは、通常遊技状態において入賞ラインのいずれかに「BAR−BAR−BAR」の組み合わせ(ビッグボーナス(1))、または「7−7−7」の組み合わせ(ビッグボーナス(2))が揃ったときに入賞となる。ビッグボーナス入賞すると、遊技状態が通常遊技状態からビッグボーナスに移行する。ビッグボーナスにおいては、小役ゲームと称されるゲームを行うことができる。遊技状態がビッグボーナスにある間は、ビッグボーナス中フラグがRAM112に設定される。ビッグボーナスは、当該ビッグボーナス中において遊技者に払い出したメダルの総数が466枚に達したときに終了する。
レギュラーボーナスは、小役ゲーム、通常遊技状態において入賞ラインのいずれかに「7−7−BAR」の組み合わせが揃ったときに入賞となる。レギュラーボーナス入賞すると、遊技状態が小役ゲームまたは通常遊技状態からレギュラーボーナスに移行する。レギュラーボーナスは、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。遊技状態がレギュラーボーナスにある間は、レギュラーボーナス中フラグがRAM112に設定される。特に、小役ゲームにおいてレギュラーボーナス入賞すると、ビッグボーナス中にレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグもRAM112に設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が466枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
なお、通常遊技状態の「7−7−BAR」によるレギュラーボーナス、ビッグボーナスにおける小役ゲームの「7−7−BAR」によるレギュラーボーナスを区別する必要がある場合には、それぞれレギュラーボーナス(1)、レギュラーボーナス(2)と呼ぶものとする。また、前述したビッグボーナス(1)及びビッグボーナス(2)、レギュラーボーナス(1)及びレギュラーボーナス(2)をまとめて、単に「ボーナス」と呼ぶ場合があるものとする。
JACINは、小役ゲームにおいて入賞ラインのいずれかに「ベル−ベル−JAC」の組み合わせが揃ったときに入賞となるが、小役ゲーム以外の遊技状態では、この組み合わせが揃ったとしてもJACIN入賞とならない。JACIN入賞すると、ビッグボーナス中に前述したレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグも遊技制御基板101のRAM112に設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が466枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
チェリー、ベルは、賭け数が1のとき(レギュラーボーナス)でも3のとき(レギュラーボーナス以外の遊技状態)でも入賞が発生可能であるが、ベルについては、賭け数が1であるとき、すなわち遊技状態がレギュラーボーナスにあるときには、それ以外の8枚よりも多い15枚のメダルが払い出されるものとなる。チェリーに入賞したときに払い出されるメダルの枚数は、賭け数に関わらずに、それぞれ1入賞ライン当たり2枚であり、3枚賭けで上段または下段にチェリーが停止すれば合計4枚となる。JACに入賞したときに払い出されるメダルの枚数は、15枚である。
以下、内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するかどうかを、可変表示装置2の表示結果が導出表示される以前に(実際には、スタートレバー11の操作時)、決定するものである。内部抽選では、乱数発生回路115から内部抽選用の乱数(0〜65535の整数)が取得される。そして、遊技状態に応じて定められた各役について、取得した内部抽選用の乱数と、遊技者が設定した賭け数と、設定スイッチ91により設定された設定値に応じて定められた各役の判定値数に応じて行われる。
前述したように、内部抽選は、当該ゲームにおける遊技状態に応じて行われる。遊技状態がレギュラーボーナス(ビッグボーナス中に提供された場合を含む)にあるときには、JAC、チェリー、ベル、ハズレ(1)が順に内部抽選の対象役となり、判定値数が取得される。遊技状態がビッグボーナス中の小役ゲームにあるときには、チェリー、ベル、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、レギュラーボーナス(2)、JACIN、ハズレ(1)が順に内部抽選の対象役となり、判定値数が取得される。もっとも、ビッグボーナス(1)+チェリーまたはビッグボーナス(2)+チェリーが内部抽選の対象役となったときにおいて、実際に内部抽選の対象となっている役はチェリーだけである。
通常遊技状態にあるときには、前回以前のゲームで既にビッグボーナス(1)、ビッグボーナス(2)またはレギュラーボーナス(1)に当選し、当該当選に基づいてこれらの役に入賞せずに、その当選が持ち越されているかどうかに応じて内部抽選の対象役となるかどうかが異なるものとなる。未だビッグボーナス(1)、ビッグボーナス(2)またはレギュラーボーナス(1)に当選していないときには、まず、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)が順に内部抽選の対象役となる。先に内部抽選の対象役となったビッグボーナス(1)、ビッグボーナス(2)及びレギュラーボーナス(1)に当選しなければ、さらにビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、チェリー、ベル、リプレイ、ハズレ(1)が順に内部抽選の対象役となる。
前回以前のゲームで既にビッグボーナス(1)、ビッグボーナス(2)またはレギュラーボーナス(1)に当選しているときには、ビッグボーナス(1)、ビッグボーナス(2)及びレギュラーボーナス(1)は内部抽選の対象役とならずに、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、チェリー、ベル、リプレイ、ハズレ(1)が順に内部抽選の対象役となる。もっとも、ビッグボーナス(1)+チェリーまたはビッグボーナス(2)+チェリーが内部抽選の対象役となったときにおいて、実際に内部抽選の対象となっている役はチェリーだけである。
内部抽選では、内部抽選の対象役について定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、その対象となっている役に当選したものと判定される。当選と判定されると、当該役の当選フラグがRAM112に設定される。判定値数は、ROM113に予め格納された判定値数格納領域テーブルに登録されている判定値数の格納アドレスに従って読み出されるものとなる。
図6は、判定値数格納領域テーブルの例を示す図である。判定値数は、その値が256以上となるものもあり、1ワード分では記憶できないので、判定値数毎に2ワード分の記憶領域を用いて登録されるものとなる。ROM113から読み出された判定値数のデータは、CPU111のDEレジスタに一旦格納されて、後述するように内部抽選用の乱数を格納するHLレジスタに順次加算されていくものとなる。
抽選対象となる役の判定値数は、役毎にゲームにおいて遊技者が設定する賭け数(BET)に対応して登録されている。抽選対象となる役が同じであっても、レギュラーボーナスにおける当選確率が他の遊技状態における当選確率と異なっている場合があるからである。また、抽選対象となる役の賭け数に応じた判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
JACは、レギュラーボーナスでのみ内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは0であり、設定値に応じて個別に判定値数の格納アドレスが登録されている。チェリー及びベルは、いずれの遊技状態でも内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態または小役ゲームでの賭数3に対応する判定値数の格納アドレスとが登録されている。チェリーについては、共通フラグが1となっており、それぞれの賭数に対応して設定値に関わらず共通の判定値数の格納アドレスが登録されている。ベルについては、共通フラグが0となっており、それぞれの賭数に対応して設定値に応じて個別に判定値数の格納アドレスが登録されている。リプレイは、通常遊技状態において内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスとが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)は、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリーは、小役ゲーム及び通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は1となっており、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
レギュラーボーナス(2)及びJACINは、ビッグボーナス中の小役ゲームでのみ内部抽選の対象となる役であり、小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。これらの役については、共通フラグの値は1となっており、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
ハズレ(1)は、全ての遊技状態において内部抽選の対象となり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態及び小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。これらは全て共通フラグの値が1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
図7は、判定値数格納領域テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。この判定値数の記憶領域は、開発用の機種ではRAM112に、量産機種ではROM113に割り当てられたアドレス領域に設けられている。
例えばアドレスADD+66、ADD+68、ADD+82、ADD+84は、それぞれ内部抽選の対象役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、レギュラーボーナス(2)、JACINであるときに設定値に関わらずに参照されるアドレスであり、設定値に関わらずに、それぞれ27、57、85、23500が判定値数として取得される。
アドレスADD+0は、内部抽選の対象役がJACであって設定値が1のときに参照されるアドレスであり、このときには、ここに格納された値である51477が判定値数として取得される。アドレスADD+2、ADD+4、ADD+6、ADD+8、ADD+10は、それぞれ内部抽選の対象役がJACであって設定値が2〜6のときに参照されるアドレスである。JACについては、アドレスADDとADD+2とADD+4とADD+6、ADD+8とADD+10には、それぞれ同一の値が登録されているので、設定値1〜4、設定値5と設定値6とで、JACの当選確率が同一となる。
アドレスADD+12は、賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がチェリーであるときに設定値に関わらずに参照されるアドレスである。アドレスADD+14は、賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がチェリーであるときに設定値に関わらず参照されるアドレスである。チェリーについての判定値数は、賭数に応じて互いに異なる値が登録されているので、賭数に応じてチェリーの当選確率が異なることとなる。
アドレスADD+16、ADD+18、ADD+20、ADD+22、ADD+24、ADD+26は、それぞれ賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+16とADD+18とADD+20とADD+22、ADD+24とADD+26には、それぞれ同一の値が登録されているので、レギュラーボーナス時においては、設定値1〜4、設定値5と設定値6とで、ベルの当選確率が同一となる。
アドレスADD+28、ADD+30、ADD+32、ADD+34、ADD+36、ADD+38は、それぞれ賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+28とADD+30とADD+32とADD+34、ADD+36とADD+38には、それぞれ同一の値が登録されているので、通常遊技状態または小役ゲームにおいては、設定値1〜4、設定値5と設定値6とで、ベルの当選確率が同一となる。アドレスADD+40は、通常遊技状態において内部抽選の対象役がリプレイであるときに設定値に関わらず参照されるアドレスである。
アドレスADD+42、ADD+44、ADD+46、ADD+48、ADD+50、ADD+52は、それぞれ内部抽選の対象役がビッグボーナス(1)であって設定値が1〜6のときに参照されるアドレスである。アドレスADD+54、ADD+56、ADD+58、ADD+60、ADD+62、ADD+64は、それぞれ内部抽選の対象役がビッグボーナス(2)であって設定値が1〜6のときに参照されるアドレスである。ビッグボーナス(1)、ビッグボーナス(2)については、設定値に応じて個別に判定値数が記憶され、しかも異なる判定値数が記憶されているので、設定値に応じてビッグボーナス(1)、ビッグボーナス(2)の当選確率が異なることとなる。
アドレスADD+70、ADD+72、ADD+74、ADD+76、ADD+78、ADD+80は、それぞれ内部抽選の対象役がレギュラーボーナス(1)であって設定値が1〜6のときに参照されるアドレスである。レギュラーボーナス(1)については、設定値に応じて個別に判定値数が記憶されているが、同一の判定値数が記憶されているので、いずれの設定値においてもレギュラーボーナス(1)の当選確率は同じとなっている。
アドレスADD+86は、賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象がハズレ(1)であるときに設定値に関わらず参照されるアドレスであり、アドレスADD+88は、賭数が3のとき、すなわち通常遊技状態及び小役ゲームにおいて内部抽選の対象がハズレ(1)であるときに設定値に関わらず参照されるアドレスである。
内部抽選において当選したものと判定された役については、当該役の当選フラグがRAM112に設定される。通常遊技状態において、特別役(ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)、レギュラーボーナス(2))の当選フラグは、これに基づく入賞があるまで次ゲーム以降に持ち越されるものとなっているが、これ以外の役の当選フラグは、入賞の発生に有無に関わらず、当該ゲーム限りで消去されるものとなっている。このため、特別役とこれ以外の一般役に分けて、内部抽選の結果がRAM112に格納されるものとなる。
図8は、内部抽選の結果を格納する領域を説明する図である。つまり、RAM112には、図8(a)に示す特別役一時格納ワーク(iwin_bonus:以下、bレジスタと呼ぶ場合がある)と、図8(b)に示す一般役一時格納ワーク(iwin_gen:以下、gレジスタと呼ぶ場合がある)と、図8(c)に示す内部当選フラグ格納ワーク(iwin_flag:以下、fレジスタと呼ぶ場合がある)とが設けられている。また、図示しないが、前回以前のゲームでのボーナス当選が持ち越されていることを示す特別役持越ワーク(以下、cレジスタと呼ぶ場合がある)も、RAM112に設けられている。ここで、一般役一時格納ワークと内部当選フラグ格納ワークは、一般ワーク112−2に含まれていて、1ゲーム毎にクリアされるが、特別役一時格納ワーク及び特別役持越ワークは、特別ワーク112−3に含まれていて、ビッグボーナスが終了したゲームでなければクリアされない。
通常遊技状態のゲームにおいて、特別役一時格納ワークに特別役の当選を示すデータ(すなわち、0以外のデータ)が書き込まれていれば、特別役の抽選は行われず、その内容が書き換えられることはない。もっとも、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリーの判定値数は取得されるが、実際上はチェリーのみが抽選対象役となり、特別役一時格納ワークの内容が更新されることはない。特別役一時格納ワークに未だ特別役に当選していないことを示すデータ(すなわち、0)が書き込まれているときに、特別役の抽選が行われ、当選した特別役に対応したデータが書き込まれる。
小役ゲームにおいては、特別役一時格納ワークに特別役の当選を示すデータが書き込まれているか否かに関わらずに特別役の抽選が行われ、その内容が書き込まれる。例えば、前回のゲームでJACINに当選し、その旨のデータ(すなわち、5)が書き込まれていても、今回のゲームの抽選で特別役に当選しなければ、特別役一時格納ワークの内容が特別役に当選していないことを示すデータ(すなわち、0)に書き換えられる。レギュラーボーナスの遊技状態では、そもそも特別役の抽選は行われず、特別役一時格納ワークの内容は、常に0となる。
また、一般役一時格納ワークには、いずれの遊技状態のゲームでも内部抽選に当選した役(ハズレ(1)を含む)のデータが書き込まれる。小役またはリプレイだけではなく、ハズレ(1)にも当選しなかった場合には、何らのデータも書き込まず、その内容は前回のゲーム終了時にクリアされたときの0のままである。一般役一時格納ワークの内容が0であるということは、ハズレ(2)に決定されていることを示すものである。
内部当選フラグ格納ワークには、その上位4ビットに特別役一時格納ワークのデータが、下位4ビットに一般役一時格納ワークのデータが書き込まれ、この内容が当該ゲームにおける当選フラグの設定状況を示すものとなる。通常遊技状態では、特別役一時格納ワークに前回以前のゲームから特別役の当選を示すデータが書き込まれていて、当該ゲームにおける抽選で小役またはリプレイに当選すれば、特別役の当選フラグと小役またはリプレイの当選フラグが重複して設定されたものとなる。また、通常遊技状態で特別役一時格納ワークに未だ特別役の当選を示すデータが書き込まれていない状態でビッグボーナス(1)+チェリーまたはビッグボーナス(2)+チェリーに当選すれば、ビッグボーナス(1)当選フラグまたはビッグボーナス(2)当選フラグと、チェリー当選フラグとが重複して設定されるものとなる。
なお、以下の説明において、内部抽選においてボーナスに当選した(ここでは、前回以前のゲームからボーナスの当選が持ち越されていない)ゲームを、ボーナス成立ゲームと呼ぶ場合があるものとする。また、ボーナスとチェリーに重複当選したゲームを、ボーナス+チェリー当選ゲームと呼ぶ場合があるものとする。さらに、前回以前のゲームからボーナスの当選が持ち越されていて、新たに××(小役またはリプレイ)に当選したゲームをボーナス持越中××と呼ぶ場合があるものとする。
次に、内部抽選用の乱数の取得について、詳しく説明する。内部抽選用の乱数は、ハードウェア乱数機能により乱数発生回路115から乱数を抽出し、これをCPU111がソフトウェアによって加工することによって取得されるものとなる。内部抽選用の乱数を取得するときには、ボーナス告知ランプ66を点灯するか否かを決定する告知決定用の乱数も取得される。なお、乱数発生回路115から抽出した、或いはこれを加工した乱数の最下位ビットを第0ビット、最上位ビットを第15ビットと呼ぶものとする。
まず、乱数発生回路115からの乱数の抽出について説明する。図9(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レベルからLレベルに反転するとき、すなわち第7ビットのデータ信号の論理値が1から0に変化する度に桁上げ信号を出力する。下位カウンタ115bの出力する桁上げ信号が上位カウンタ115cにクロック入力される。
上位カウンタ115cは、下位カウンタ115bから桁上げ信号が入力される度に第8ビットのデータ信号をHレベルとLレベルとで交互に反転させる。第8ビットのデータ信号のレベルが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から出力されるデータ信号は、その論理値に応じた乱数として説明するものとする。
次に、乱数発生回路115から抽出した乱数のソフトウェアによる加工について説明する。図9(b)は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの説明図である。乱数発生回路115から抽出された乱数は、CPU111が有する16ビットのHLレジスタに格納されるものとなる。
乱数発生回路115から抽出された乱数がHLレジスタに格納されると、CPU111は、AレジスタまたはRAM112の作業領域を用いて、HLレジスタの下位バイト(下位カウンタ115bから抽出した値)と、上位バイトの値(上位カウンタ115cから抽出した値)とを入れ替える。CPU111は、このときにHLレジスタに格納されている値を、内部抽選用の乱数として取得してRAM112の所定の領域に記憶させ、当選判定用テーブルに登録された各役の判定値(実際には、上限の判定値のみ)と順次比較するものとなる。
なお、乱数発生回路115から乱数を抽出してから加工を終了するまでの間は、CPU111に対する割り込みが禁止される。CPU111に対して割り込みが発生することによって、当該割り込み処理ルーチンでHLレジスタの内容が書き換えられてしまうのを防ぐためである。
次に、リール3L、3C、3Rの停止制御について説明する。CPU111は、リールの回転が開始したとき及び、リールが停止し、かつ未だ回転中のリールが残っているときに、ROM113に格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、停止ボタン12L、12C、12Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの引込コマ数に基づいて、操作された停止ボタン12L、12C、12Rに対応するリール3L、3C、3Rの回転を停止させる制御を行う。
図10は、ROM113に格納されたテーブルインデックスを示す図である。図示するように、テーブルインデックスには、各遊技状態について、内部当選状況別に、テーブル作成用データが格納された領域の先頭アドレスが格納されている。
通常遊技状態においては、チェリー、ベル、リプレイ、ビッグボーナス(1)成立ゲーム、ビッグボーナス(1)+チェリー成立ゲームまたはビッグボーナス(1)持越中チェリー、ビッグボーナス(1)持越中ベル、ビッグボーナス(1)持越中リプレイ、ビッグボーナス(1)持越中ハズレ(1)、ビッグボーナス(1)持越中ハズレ(2)、ビッグボーナス(2)成立ゲーム、ビッグボーナス(2)+チェリー成立ゲームまたはビッグボーナス(2)持越中チェリー、ビッグボーナス(2)持越中ベル、ビッグボーナス(2)持越中リプレイ、ビッグボーナス(2)持越中ハズレ(1)、ビッグボーナス(2)持越中ハズレ(2)、レギュラーボーナス(1)成立ゲーム、レギュラーボーナス(1)持越中チェリー、レギュラーボーナス(1)持越中ベル、レギュラーボーナス(1)持越中リプレイ、レギュラーボーナス(1)持越中ハズレ(1)、レギュラーボーナス(1)持越中ハズレ(2)、ハズレ(1)、ハズレ(2)のそれぞれについて、テーブル作成用データが格納された領域の先頭アドレスが格納されている。
ビッグボーナス中の小役ゲーム及びレギュラーボーナスにおいては、JAC、チェリー、ベル、レギュラーボーナス(2)成立ゲーム、レギュラーボーナス(2)持越中チェリー、レギュラーボーナス(2)持越中ベル、レギュラーボーナス(2)持越中ハズレ(1)、レギュラーボーナス(2)持越中ハズレ(2)、JACIN成立ゲーム、ハズレ(1)、ハズレ(2)のそれぞれについて、テーブル作成用データが格納された領域の先頭アドレスが格納されている。
小役ゲーム及びレギュラーボーナスにおいて内部当選状況がチェリー、ベルの場合には、通常遊技状態において内部当選状況がチェリー、ベルの場合と共通のテーブル作成用データが参照される。小役ゲームにおいて内部当選状況がレギュラーボーナス(2)成立ゲーム、レギュラーボーナス(2)持越中チェリー、レギュラーボーナス(2)持越中ベルの場合には、通常遊技状態において内部当選状況がレギュラーボーナス(1)成立ゲーム、レギュラーボーナス(1)持越中チェリー、レギュラーボーナス(1)持越中ベルの場合と共通のテーブル作成用データが参照される。小役ゲームにおいて内部当選状況がレギュラーボーナス(2)持越中ハズレ(1)、レギュラーボーナス(2)持越中ハズレ(2)の場合には、ともに通常遊技状態において内部当選状況がレギュラーボーナス(2)持越中ハズレ(2)の場合と共通のテーブル作成用データが参照される。小役ゲーム及びレギュラーボーナスにおいて内部当選状況がハズレ(1)、ハズレ(2)の場合には、ともに通常遊技状態において内部当選状況がハズレ(2)の場合と共通のテーブル作成用データが参照される。
このように遊技状態が異なったり、内部当選状況が異なったりする場合でも、同一の制御が適用される場合においては、テーブル作成用データが格納された領域の先頭アドレスとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。ここで、テーブル作成用データは、停止操作位置に応じた引込コマ数を示す引込コマ数データと、リールの停止状況に応じて参照すべき引込コマ数データのアドレスとからなる。
リールの停止状況に応じて参照される引込コマ数データは、全てのリール3L、3C、3Rが回転しているか、左リール3Lのみ停止しているか、中リール3Cのみ停止しているか、右リール3Rのみ停止しているか、左、中リール3L、3Cが停止しているか、左、右リール3L、3Rが停止しているか、中、右リール3C、3Rが停止しているか、によって異なる場合があり、さらに、リール3L、3C、3Rの内のいずれかが停止している状況においては、停止済みのリールの停止位置によっても異なる場合がある。
テーブル作成用データには、それぞれの状況について、参照すべき引込コマ数データのアドレスが回転中のリール別に登録されている。それぞれの状況に応じて参照すべき引込コマ数データのアドレスは、テーブル作成用データの先頭アドレスに基づいて特定でき、この特定されたアドレスから、それぞれの状況に応じて必要な引込コマ数データを特定できるようになっている。なお、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の引込コマ数データが適用される場合においては、引込コマ数データのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の引込コマ数データが参照されることとなる。
また、引込コマ数データは、停止操作が行われたタイミング別の引込コマ数を特定可能なデータである。リールモータ3ML、3MC、3MRには、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ3ML、3MC、3MRを168ステップ駆動させることでリール3L、3C、3Rが1周することとなる。そして、リール1周に対して8ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から1〜21の領域番号が割り当てられている(図11参照)。
一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から1〜21の図柄番号が割り当てられているので、1番図柄から21番図柄に対して、それぞれ1〜21の領域番号が順に割り当てられていることとなる。そして、引込コマ数データには、領域番号別の引込コマ数が所定のルールで圧縮して格納されており、引込コマ数データを展開することによって領域番号別の引込コマ数を取得できるようになっている。
図11は、停止制御テーブルの例を示す図である。停止制御テーブルは、前述のようにテーブルインデックス及びテーブル作成用データを参照して作成される。停止制御テーブルには、図11に示すように、領域番号に対応して、各領域番号に対応する領域が停止基準位置(この実施の形態では、透視窓3の下段図柄の領域)に位置するタイミング(リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング)で停止ボタン12L、12C、12Rの操作が検出された場合の引込コマ数がそれぞれ設定されている。
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの遊技状態及び内部当選状況に応じたテーブル作成用データの先頭アドレスを取得する。そして取得した先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリール3L、3C、3Rが回転中の状態に対応する各リールの引込コマ数データのアドレスを取得し、取得したアドレスに格納されている各リールの引込コマ数データを展開して全てのリール3L、3C、3Rについて停止制御テーブルを作成する。
また、リール3L、3C、3Rのうちのいずれか1つが停止したとき、またはいずれか2つが停止したときには、リール回転開始時に取得した先頭アドレス、すなわちそのゲームの遊技状態及び内部当選状況に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリール及び当該リールの停止位置の領域番号に対応する未停止リールの引込コマ数データのアドレスを取得し、取得したアドレスに格納されている各リールの引込コマ数データを展開して未停止のリールについて停止制御テーブルを作成する。
次に、CPU111が停止ボタン12L、12C、12Rのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明する。
停止ボタン12L、12C、12Rのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する引込コマ数を取得する。そして、取得した引込コマ数分リールを回転させて停止させる制御を行う。具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した引込コマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行う。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域(図の停止操作ポイント)から引込コマ数分先の停止位置となる領域番号に対応する領域(図の停止ポイント)が停止基準位置(本実施例では、透視窓3の下段図柄の領域)に停止することとなる。
また、テーブルインデックスには、一の遊技状態における一の内部当選状況に対応するテーブル作成用データの格納領域の先頭アドレスとして1つのアドレスのみが格納されており、さらに、一のテーブル作成用データには、一のリールの停止状況(及び停止済みのリールの停止位置)に対応する引込コマ数データの格納領域のアドレスとして1つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状況に対応するテーブル作成用データ、及びリールの停止状況(及び停止済みのリールの停止位置)に対応する引込コマ数データが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状況、及びリールの停止状況(及び停止済みのリールの停止位置)に対して一意となる。このため、遊技状態、内部当選状況、リールの停止状況(及び停止済みのリールの停止位置)の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。
また、引込コマ数として0〜4の値が定められており、停止操作を検出してから最大4コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
また、テーブルインデックスには、いずれかの役に当選している場合に対応して、当選役を4コマの範囲で最大限に引き込み、当選していない役が揃わないように引き込む引込コマ数が定められたテーブル作成用データのアドレスが格納され、ハズレに当選している場合に対応して、いずれの役も揃わないように引き込む引込コマ数が定められたテーブル作成用データのアドレスが格納されている。このため、いずれかの役に当選している場合には、当選役を4コマの範囲で最大限引き込み、当選していない役が揃わないように引き込む引込コマ数が定められた停止制御テーブルが作成され、リールの停止制御が行われる一方、ハズレに当選している場合には、いずれの役も揃わない引込コマ数が定められた停止制御テーブルが作成され、リールの停止制御が行われる。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役の図柄を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役の図柄は、最大4コマの引込範囲でハズシて停止させる制御が行われることとなる。
また、テーブルインデックスには、特別役と小役が同時に当選した場合や、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合(ビッグボーナス(1)+チェリー、ビッグボーナス(1)+ベルなど)に対応して、当選した特別役を4コマの範囲で最大限に引き込むように引込コマ数が定められているとともに、当選した特別役を最大4コマの範囲で引き込めない停止操作位置については、当選した小役を4コマの範囲で最大限に引き込むように引込コマ数が定められたテーブル作成用データのアドレスが格納され、リールの停止制御が行われる。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している特別役の図柄を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している特別役の図柄を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している小役の図柄を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役の図柄は、4コマの引込範囲でハズシて停止させる制御が行われることとなる。すなわちこのような場合には、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞させることが可能となる。
また、テーブルインデックスには、特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合(ビッグボーナス(1)+リプレイなど)に対応して、再遊技役を4コマの範囲で最大限に引き込むように引込コマ数が定められたテーブル作成用データのアドレスが格納され、リールの停止制御が行われる。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。なお、再遊技役を構成する図柄である「リプレイ」は、リール3L、3C、3Rのいずれについても5コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができる。特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合には、遊技者による停止ボタン12L、12C、12Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。
次に、チャンス目及びリーチ目について説明する。この実施の形態においてチャンス目とは、通常遊技状態においていずれかのボーナス(ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1))が当選しているとき、またはハズレ(1)が当選しているときに導出されうる表示態様である。例えば、左リールの表示結果として、1〜3番図柄の「ベル・7・7」または9〜11番図柄の「リプレイ・ベル・リプレイ」が停止し、いずれの役も入賞ライン上に揃っていない表示態様、中リールの表示結果として、11〜13番図柄の「チェリー・ベル・チェリー」または16〜18番図柄の「スイカ・ベル・スイカ」が停止し、いずれの役も入賞ライン上に揃っていない表示態様、右リールの表示結果として、7〜9番図柄の「BAR・リプレイ・JAC」または16〜18番図柄の「7・リプレイ・JAC」が停止し、いずれの役も入賞ライン上に揃っていない表示態様をチャンス目として適用している。
また、リーチ目とは、通常遊技状態においていずれかのボーナス(ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1))が当選しているときのみ導出されうる表示態様である。例えば、左リールの表示結果として、2〜4番図柄の「7・7・7」または8〜10番図柄の「スイカ・リプレイ・ベル」が停止した表示態様をリーチ目として適用している。
ここで、チャンス目及びリーチ目を導出させる際のリールの停止制御の一例を、図11に基づいて説明する。図11は、通常遊技状態における内部当選状況が、ハズレ(1)、ハズレ(2)、ビッグボーナス(1)成立ゲーム、ビッグボーナス(2)成立ゲーム、レギュラーボーナス(1)成立ゲーム、ビッグボーナス(1)持越中ハズレ(1)、ビッグボーナス(2)持越中ハズレ(1)、レギュラーボーナス(1)持越中ハズレ(1)、ビッグボーナス(1)持越中ハズレ(2)、ビッグボーナス(2)持越中ハズレ(2)、レギュラーボーナス(1)持越中ハズレ(2)の場合に作成される左リール3Lの停止制御テーブルを示している。
通常遊技状態における内部当選状況がハズレ(2)の場合においては、左リール3Lの停止制御テーブルとして、図11のハズレ(2)の項目に対応する停止制御テーブルが作成される。この停止制御テーブルでは、全ての領域番号に対して1〜3番図柄の「ベル・7・7」、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」、9〜11番図柄の「リプレイ・ベル・リプレイ」、以外の表示結果が特定される引込コマ数が定められている。従って、いずれのタイミングで左停止ボタン12Lの操作が検出された場合にも、1〜3番図柄の「ベル・7・7」、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されることがなく、最終的にチャンス目やリーチ目が成立することもない。
通常遊技状態における内部当選状況がビッグボーナス(1)成立ゲームの場合においては、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(1)成立ゲームの項目に対応する停止制御テーブルが作成される。この停止制御テーブルでは、領域番号3〜6に対して1〜3番図柄の「ベル・7・7」が特定される引込コマ数が定められており、領域番号14、15に対して9〜11番図柄の「リプレイ・ベル・リプレイ」が特定される引込コマ数が定められており、他の領域番号に対して2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」以外の表示結果が特定される引込コマ数が定められている。従って、領域番号3〜6のタイミングで左停止ボタン12Lの操作が検出された場合には、1〜3番図柄の「ベル・7・7」が表示結果として導出され、領域番号14、15のタイミングで左停止ボタン12Lの操作が検出された場合には、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されるとともに、最終的に入賞ライン上に入賞役が揃うことはないので、チャンス目が成立することとなる。また、それ以外のいずれのタイミングで左停止ボタン12Lの操作が検出された場合でも、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」が表示結果として導出されることがなく、最終的にリーチ目が成立することはない。
通常遊技状態における内部当選状況がハズレ(1)、ビッグボーナス(2)成立ゲームまたはレギュラーボーナス(1)成立ゲームの場合においては、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(2)成立ゲーム、ハズレ(1)の項目に対応する停止制御テーブルが作成される。この停止制御テーブルでは、領域番号3〜6に対して1〜3番図柄の「ベル・7・7」が特定される引込コマ数が定められており、領域番号14、15に対して9〜11番図柄の「リプレイ・ベル・リプレイ」が特定される引込コマ数が定められており、他の領域番号に対して2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」以外の表示結果が特定される引込コマ数が定められている。従って、領域番号3〜6のタイミングで左停止ボタン12Lの操作が検出された場合には、1〜3番図柄の「ベル・7・7」が表示結果として導出され、領域番号14、15のタイミングで左停止ボタン12Lの操作が検出された場合には、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されるとともに、最終的に入賞ライン上にビッグボーナス(2)またはレギュラーボーナス(1)以外の入賞役が揃うことはないので、チャンス目が成立することとなる。また、それ以外のいずれのタイミングで左停止ボタン12Lの操作が検出された場合でも、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」が表示結果として導出されることがなく、最終的にリーチ目が成立することはない。
通常遊技状態における内部当選状況がビッグボーナス(1)持越中ハズレ(2)の場合においては、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(1)ハズレ(2)の項目に対応する停止制御テーブルが作成される。この停止制御テーブルでは、領域番号3に対して1〜3番図柄の「ベル・7・7」が特定される引込コマ数が定められており、領域番号4〜6に対して2〜4番図柄の「7・7・7」が特定される引込コマ数が定められており、領域番号14に対して8〜10番図柄の「スイカ・リプレイ・ベル」が特定される引込コマ数が定められており、領域番号15に対して9〜11番図柄の「リプレイ・ベル・リプレイ」が特定される引込コマ数が定められている。従って、領域番号3のタイミングで左停止ボタン12Lの操作が検出された場合には、1〜3番図柄の「ベル・7・7」が表示結果として導出され、領域番号15のタイミングで左停止ボタン12Lの操作が検出された場合には、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されるとともに、最終的に入賞ライン上に入賞役が揃うことはないので、チャンス目が成立することとなる。また、領域番号4〜6のタイミングで左停止ボタン12Lの操作が検出された場合には、2〜4番図柄の「7・7・7」が表示結果として導出され、領域番号14のタイミングで左停止ボタン12Lの操作が検出された場合には、8〜10番図柄の「スイカ・リプレイ・ベル」が表示結果として導出されるので、リーチ目が成立することとなる。
通常遊技状態における内部当選状況がビッグボーナス(2)持越中ハズレ(2)またはレギュラーボーナス(1)持越中ハズレ(2)の場合においては、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(2)/レギュラーボーナスハズレ(2)の項目に対応する停止制御テーブルが作成される。この停止制御テーブルでは、領域番号3に対して1〜3番図柄の「ベル・7・7」が特定される引込コマ数が定められており、領域番号4〜8に対して2〜4番図柄の「7・7・7」が特定される引込コマ数が定められており、領域番号14に対して8〜10番図柄の「スイカ・リプレイ・ベル」が特定される引込コマ数が定められており、領域番号15に対して9〜11番図柄の「リプレイ・ベル・リプレイ」が特定される引込コマ数が定められている。従って、領域番号3のタイミングで左停止ボタン12Lの操作が検出された場合には、1〜3番図柄の「ベル・7・7」が表示結果として導出され、領域番号15のタイミングで左停止ボタン12Lの操作が検出された場合には、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されるとともに、最終的に入賞ライン上にビッグボーナス(2)またはレギュラーボーナス(1)以外の入賞役が揃うことはないので、チャンス目が成立することとなる。また、領域番号4〜8のタイミングで左停止ボタン12Lの操作が検出された場合には、2〜4番図柄の「7・7・7」が表示結果として導出され、領域番号14のタイミングで左停止ボタン12Lの操作が検出された場合には、8〜10番図柄の「スイカ・リプレイ・ベル」が表示結果として導出されるので、リーチ目が成立することとなる。
通常遊技状態における内部当選状況がビッグボーナス(1)持越中ハズレ(1)の場合においては、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(1)ハズレ(1)の項目に対応する停止制御テーブルが作成され、通常遊技状態における内部当選状況がビッグボーナス(2)持越中ハズレ(1)またはレギュラーボーナス(1)持越中ハズレ(1)の場合においては、リールの回転開始時に、左リール3Lの停止制御テーブルとして、図11のビッグボーナス(2)/レギュラーボーナスハズレ(1)の項目に対応する停止制御テーブルが作成される。これらの停止制御テーブルには、全ての領域番号に対して1〜3番図柄の「ベル・7・7」、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」、9〜11番図柄の「リプレイ・ベル・リプレイ」、以外の表示結果が特定される引込コマ数が定められており、いずれのタイミングで左停止ボタン12Lの操作が検出された場合にも、1〜3番図柄の「ベル・7・7」、2〜4番図柄の「7・7・7」、8〜10番図柄の「スイカ・リプレイ・ベル」、9〜11番図柄の「リプレイ・ベル・リプレイ」が表示結果として導出されることがなく、最終的にビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)の入賞役が揃うことはあっても、チャンス目やリーチ目が成立することはない。
なお、ここでは、左リール3Lの停止制御テーブルについて説明したが、中リール、右リール3C、3Rについても同様に、通常遊技状態においてハズレ(1)が当選するか、いずれかのボーナスが当選していることを条件に、チャンス目を導出可能な停止制御テーブルに基づいて停止制御が行われる。また、ボーナスの成立ゲームと、ボーナスの持越中にハズレが当選したゲームとで異なる停止制御テーブルに基づいて停止制御が行われ、ボーナスの持越中においては、ハズレ(1)が当選するか、ハズレ(2)が当選するか、によって異なる停止制御テーブルに基づいて停止制御が行われるようになっている。
以上のように通常遊技状態において作成されるリール制御テーブルでは、ハズレ(1)が当選するか、いずれかのボーナスが当選しているゲームであることを条件に、チャンス目を導出可能なものとしている。また、通常遊技状態において作成されるリール制御テーブルでは、いずれかのボーナスの持越中であり、かつハズレ(2)が当選していることを条件に、リーチ目を導出可能なものとしている。すなわちボーナスの成立ゲームと、ボーナスの持越中にハズレが当選したゲームとで異なる停止制御テーブルに基づいてリールの停止制御が行われることとなる。さらに、通常遊技状態において作成されるリール制御テーブルでは、いずれかのボーナスの持越中にハズレ(2)が当選した場合には、チャンス目及びリーチ目を導出可能なものとしているが、いずれかのボーナスの持越中にハズレ(1)が当選した場合には、チャンス目もリーチ目も導出されないものとしている。すなわちボーナスの持越中においては、ハズレ(1)が当選するか、ハズレ(2)が当選するか、によって異なる停止制御テーブルに基づいてリールの停止制御が行われることとなる。
また、リール回転開始時には、左リール3Lの停止制御テーブルとして内部当選状況に対応して図11の停止制御テーブルが作成されるようになっているが、中リール3Cまたは右リール3Rのいずれか1つのリールが停止している場合、または中リール及び右リール3C、3Rの双方が停止している場合においても、当選しているボーナスの組み合わせが入賞ライン上に揃っている場合や当選していない役が入賞してしまう可能性がある場合を除いて、左リール3Lの停止制御テーブルとして内部当選状況に対応して図11の停止制御テーブルが作成されるようになっている。すなわちリール3L、3C、3Rの停止順が異なっても、当選しているボーナスの組み合わせが入賞ライン上に揃っている場合や当選していない役が入賞してしまう可能性がある場合を除いて、通常遊技状態においてハズレ(1)が当選するか、いずれかのボーナスが当選していれば、チャンス目を導出可能な停止制御テーブルに基づいてリール3L、3C、3Rの停止制御が行われることとなり、通常遊技状態においていずれかのボーナスの持越中であり、かつハズレ(2)が当選していれば、チャンス目及びリーチ目を導出可能な停止制御テーブルに基づいてリール3L、3C、3Rの停止制御が行われることとなる。
上記したように、ゲーム毎の内部抽選の結果に応じて当選フラグが設定され、その当選フラグの設定状況に応じた停止制御テーブルが選ばれて、リール3L、3C、3Rの停止が制御されてることとなる。当選フラグの設定状況は、このようにリール3L、3C、3Rの停止制御を定めるだけではなく、演出制御基板102において独自に行う演出にも影響するものである。また、各ゲームの遊技状態も、演出制御基板102において独自に行う演出に影響するものである。
このため、CPU111は、ゲーム毎に当選フラグの設定状況を示す当選状況通知コマンドを生成して、演出制御基板102に送信するものとしている。1ゲームの終了後で次のゲームに移行する前に、次のゲームで適用される遊技状態コマンドを生成して演出制御基板102に送信するものとしている。なお、CPU111は、ゲームの進行状況に応じて当選状況通知コマンド以外の各種コマンドも演出制御基板102に送信しているが、本発明に関わるものではないため、詳細な説明を省略する。
演出制御基板102のCPU121は、遊技制御基板101のCPU111から送られてきた各種コマンドに基づいて独自の制御により演出を行うものとしている。演出制御基板102のCPU121により制御される演出としては、当選状況通知コマンドが送られてきたとき、すなわち実質的にスタートレバー11が操作されたタイミングで行われるスタート音の出力がある。スタート音は、ゲーム毎の当選状況に応じて異なるものとなっている。
図12は、演出制御基板102内のROM123に格納されたスタート音選択テーブルの例を示す図である。スタート音は、スタート音パターン01〜03からなる。CPU121は、通常遊技状態以外の遊技状態(小役ゲーム、レギュラーボーナス)では、常にスタート音パターン01のスタート音を出力させる制御を行う。通常遊技状態においては、スタート音を出力する契機となる当選状況通知コマンドが示す内部当選状況に応じてスタート音パターン01〜03のいずれか1つを選択し、選択したスタート音パターンのスタート音を出力させる制御を行う。
詳しくは、ビッグボーナス(1)またはビッグボーナス(2)が当選している場合には、スタート音パターン01のスタート音を32/64の割合で出力させる制御を行い、スタート音パターン02のスタート音を12/64の割合で出力させる制御を行い、スタート音パターン03のスタート音を20/64の割合で出力させる制御を行う。レギュラーボーナス(1)に当選している場合には、スタート音パターン01のスタート音を32/64の割合で出力させる制御を行い、スタート音パターン02のスタート音を16/64の割合で出力させる制御を行い、スタート音パターン03のスタート音を16/64の割合で出力させる制御を行う。
ハズレ(1)に当選している場合には、スタート音パターン01のスタート音を32/64の割合で出力させる制御を行い、スタート音パターン02のスタート音を20/64の割合で出力させる制御を行い、スタート音パターン03のスタート音を12/64の割合で出力させる制御を行う。ハズレ(2)に当選している場合には、スタート音パターン01のスタート音を60/64の割合で出力させる制御を行い、スタート音パターン02のスタート音を3/64の割合で出力させる制御を行い、スタート音パターン03のスタート音を1/64の割合で出力させる制御を行う。
このように、ゲーム開始時に、ハズレの種類を含む内部当選状況を特定可能な当選状況通知コマンドが、演出制御基板102に対して送信されるようになっているため、演出制御基板102のCPU121は、入賞役の当選状態のみならず、ハズレの種類に応じて異なる演出を行うことが可能となる。
以下、この実施の形態にかかるスロットマシン1における処理について説明する。スロットマシン1においては、ゲームの処理が1ゲームずつ繰り返して行われることで遊技が進行されるものであるが、そのためには、遊技の進行が可能な状態となっていなければならない。遊技の進行が可能な状態であるためには、CPU111を含む制御部110が起動された状態で正常範囲の設定値が設定値ワーク112−4に格納されており、RAM112に格納されたデータに異常がないことが条件となる。
図13は、遊技制御基板101のCPU111が実行する起動処理を示すフローチャートである。この起動処理は、遊技制御基板101のリセット回路からリセット信号が入力されて制御部110が起動されたときに行われる処理である。なお、リセット信号は、電源投入時及び制御部110の動作が停滞した場合に出力される信号であるので、起動処理は、電源投入に伴う制御部110の起動時及び制御部110の不具合に伴う再起動時に行われる処理となる。
起動処理では、まず、内蔵デバイスや周辺IC、スタックポインタ等を初期化し(ステップS101)、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否か、すなわち電圧が安定しているか否かを判定する(ステップS102)。電圧低下信号が入力されている場合には、電圧低下信号が入力されているか否かの判定以外は、いずれの処理も行わないループ処理に移行する。電圧低下信号が入力されていないと判定した場合には、Iレジスタ及びIYレジスタの値を初期化する(ステップS103)。ここにIレジスタは、割込発生時に参照する割込テーブルのアドレスを設定するレジスタであり、IYレジスタは、RAM112の格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次に、RAM112へのアクセスを許可する(ステップS104)。そして、設定キースイッチ92がONの状態か否かを判定する(ステップS105)。設定キースイッチ92がONでなければ、RAM112に記憶されているデータについてRAMパリティを計算し(ステップS106)、RAMパリティが0か否かを判定する(ステップS107)。正常に電断割込処理が行われていれば、RAMパリティが0になるはずであり、RAMパリティが0でなければ、RAM112に格納されているデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し、図15に示すRAM異常エラー処理に移行する。
RAMパリティが0であれば、さらに破壊診断用データが正常か否かを判定する(ステップS108)。正常に電断割込処理が行われていれば、破壊診断用データが設定されているはずであり、破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM112のデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し、図15に示すRAM異常エラー処理に移行する。
破壊診断用データが正常であると判定した場合には、RAM112のデータは正常であるので、RAM112の非保存ワーク112−5、未使用領域112−6及び未使用スタック領域112−71を初期化する初期化3を行った後(ステップS109)、破壊診断用データをクリアする(ステップS110)。次に、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(ステップS111)、割込を許可して(ステップS112)、電断前の最後に実行していた処理に戻る。
また、ステップS105において設定キースイッチ92がONの状態であれば、使用中スタック領域112−72を除いてRAM112に格納されているデータを全て初期する初期化1を実行した後(ステップS113)、設定値ワーク112−4に格納されている値(この時点では0)を1に補正する(ステップS114)。そして、割込を許可して(ステップS115)、図14に示す設定変更処理に移行する(ステップS116)。そして、設定変更処理の終了後、遊技の進行が可能な状態となってゲーム処理に移行する。
図14は、CPU111がステップS116で実行する設定変更処理を詳細に示すフローチャートである。設定変更処理では、まず、設定変更モード中である旨を示す設定変更中フラグをRAM112の所定の領域にセットし(ステップS201)、設定値ワーク112−4に格納されている設定値(設定変更処理に移行する前に設定値ワーク112−4の値は1に書き換えられているので、ここでは1である)を読み出す(ステップS202)。
その後、設定スイッチ91及びスタートスイッチ41の操作の検出待ちの状態となる(ステップS203、S204)。ステップS203において設定スイッチ91の操作が検出されると、ステップS202において読み出した設定値に1を加算し(ステップS205)、加算後の設定値が7であるか否か、すなわち正常範囲を越えたか否かを判定する(ステップS206)。加算後の設定値が7でなければ、再びステップS203、S204の設定スイッチ91及びスタートスイッチ41の操作の検出待ちの状態に戻る。加算後の設定値が7であれば、設定値を1に補正して(ステップS207)、再びステップS203、S204の設定スイッチ91及びスタートスイッチ41の操作の検出待ちの状態に戻る。
ステップS204においてスタートスイッチ41の操作が検出されると、その時点で選択されている変更後の設定値を設定値ワーク112−4に格納して設定値を確定する(ステップS208)。その後、設定キースイッチ92がOFFの状態となるまで待機する(ステップS209)。そして、ステップS209において設定キースイッチ92がOFFの状態になったと判定されると、ステップS201でセットした設定変更中フラグをクリアする(ステップS210)。そして、図13のフローチャートに復帰すると、遊技の進行が可能な状態となってゲーム制御処理に移行する。
図15は、遊技制御基板101のCPU111が実行するRAM異常エラー処理を詳細に示すフローチャートである。RAM異常エラー処理では、ゲーム回数表示器51を制御してRAM異常エラーコードをゲーム回数表示部21に表示した後(ステップS301)、いずれの処理を行わないループ処理に移行する。
上記のように起動処理においては、設定キースイッチ92がONの状態でない場合に、RAMパリティと破壊診断用データとによりRAM112に記憶されているデータが正常か否かを判定し、データが正常でない場合には、RAM異常エラー処理に移行する。RAM異常エラー処理では、RAM異常エラーコードをゲーム回数表示部21に表示させた後、いずれの処理も行わないループ処理に移行するので、ゲームの進行が不能化される。
RAMパリティまたは破壊診断用データによりデータが異常であると判定されると割込が許可されることがないので、一度RAM異常エラー処理に移行すると、設定キースイッチ92がONの状態で起動し、割込禁止が解除されるまでは、電源が遮断しても電断割込処理は行われない。制御部110が起動しても設定キースイッチ92がONの状態で起動した場合を除き、RAM112のデータが正常にならないので、制御部110を起動させてゲームを開始(再開)させることができないようになっている。
そして、RAM異常エラー状態に一度移行すると、設定キースイッチ92がONの状態で起動し、設定変更処理が行われて設定スイッチ91の操作により新たな設定値が選択・設定されるまで、ゲームの進行が不能な状態となる。すなわち、RAM異常エラー状態に移行した状態では、設定スイッチ91の操作により新たに設定値が選択・設定されたことを条件に、ゲームの進行が不能な状態が解除され、ゲームを開始(再開)させることが可能となる。なお、RAM異常エラー以外のエラー状態では、第1リセットスイッチ48または第2リセットスイッチ93の操作でのみゲームの進行が不能な状態を解除し、ゲームを再開させることができる。
以上のように遊技の進行が可能な状態となると、スロットマシン1においてゲームの処理が1ゲームずつ繰り返して行われることとなる。以下、スロットマシン1におけるゲームの実行ついて説明する。なお、スロットマシン1における“ゲーム”とは、狭義には、スタートレバー11の操作からリール3L、3C、3Rを停止するまでをいうものであるが、ゲームを行う際には、スタートレバー11の操作前の賭け数の設定や、リール3L、3C、3Rの停止後にメダルの払い出しや遊技状態の移行も行われるので、これらの付随的な処理も広義には“ゲーム”に含まれるものとする。なお、遊技制御基板101から演出制御基板102へのコマンドの送信は、本発明の説明に必要なものだけを説明し、そうでないコマンドの送信については、説明を省略する。
図16は、CPU111が実行するゲーム処理の制御内容を示すフローチャートである。ゲーム処理では、1ゲームの間にBET処理(ステップS401)、内部抽選処理(ステップS402)、リール回転処理(ステップS403)、入賞判定処理(ステップS404)、払出処理(ステップS405)、ゲーム終了時処理(ステップS406)を順に実行する。1ゲームに関してゲーム終了時処理までが終了すると、再びステップS401のBET処理に戻り、次のゲームに関する処理が行われるものとなる。
ステップS401のBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートレバー11が操作された時点で賭数を確定する処理を実行する。
ステップS402における内部抽選処理では、ステップS401におけるスタートレバー11の操作の検出によるゲームスタートと同時に内部抽選用の乱数を抽出し、抽出した乱数の値に基づいて上記した各役への入賞を許容するか否か及びいずれの役も許容しない場合にハズレの種類を決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM112の内部当選フラグ格納ワークに当選フラグが設定される。
ステップS403におけるリール回転処理では、各リール3L、3C、3Rを回転させる処理、遊技者による停止ボタン12L、12C、12Rの操作が検出されたことに応じて対応するリール3L、3C、3Rの回転を停止させる処理を実行する。
ステップS404における入賞判定処理では、ステップS403において全てのリール3L、3C、3Rの回転が停止したと判定した時点で、各リール3L、3C、3Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
ステップS405における払出処理では、ステップS404において入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
ステップS406におけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。また、ビッグボーナスが終了したゲームであるか否かに応じて初期化2または初期化4の処理を実行する。
次に、上記したステップS402の内部抽選処理について詳しく説明する。図17は、CPU111がステップS402で実行する内部抽選処理を詳細に示すフローチャートである。内部抽選処理では、乱数取得処理を行い、サンプリング指令を出力することにより乱数発生回路115が発生する乱数をサンプリング回路116に抽出させ、抽出された乱数を内部抽選用の乱数に加工して、RAM112の内部抽選用の乱数の格納領域に記憶させる(ステップS501)。なお、乱数取得処理の詳細については後述する。
次に、RAM112の設定値ワーク112−4に記憶されている設定値を読み出し(ステップS502)、読み出した設定値が本来とり得るべき値である1以上6以下の範囲にあるかどうかを判定する(ステップS503)。読み出した設定値が1以上6以下の範囲になければ、RAM異常エラーとなり、図15に示したRAM異常エラー処理を行うものとする。
読み出した設定値が1以上6以下の範囲にあれば、RAM112のビッグボーナス中フラグ及びレギュラーボーナス中フラグの状態を参照して、今回のゲームの遊技状態が通常遊技状態にあるかどうかを判定する(ステップS504)。通常遊技状態にあれば、詳細を後述する通常用抽選処理を行い(ステップS505)、ステップS509の処理に進む。通常遊技状態でなければ、今回のゲームの遊技状態が小役ゲームであるかどうかを判定する(ステップS506)。小役ゲームであれば、小役ゲーム用抽選処理を行い(ステップS507)、ステップS509の処理に進む。小役ゲームでもなければ、今回のゲームの遊技状態はレギュラーボーナスであるので、ここではレギュラーボーナス用抽選処理を行い(ステップS508)、ステップS509の処理に進む。
ステップS509では、bレジスタ(特別役一時格納ワーク)に格納されている特別役の当選を示すデータを、Aレジスタに書き込む。さらに、Aレジスタの下位4ビットの値を上位4ビットにシフトする(ステップS510)。次に、gレジスタ(一般役一時格納ワーク)に格納されている一般役の当選を示すデータを、Aレジスタに格納されているデータに加算し、これをAレジスタに格納する(ステップS511)。そして、Aレジスタに格納されている値をfレジスタ(内部当選フラグ格納ワーク)に書き込む(ステップS512)。
さらに、内部当選フラグ格納ワークおける当選フラグの設定状況に応じて当選状況通知コマンドを生成し、これを演出制御基板102に送信する(ステップS513)。そして、内部抽選処理を終了して、図16のフローチャートに復帰する。
次に、ステップS501の乱数取得処理について詳しく説明する。図18は、CPU111がステップS501で実行する乱数取得処理を詳細に示すフローチャートである。乱数取得処理では、まず、CPU111に対する割り込みを禁止する(ステップS601)。次に、サンプリング回路116にサンプリング指令を出力し、乱数発生回路115が発生している乱数をラッチさせ、ラッチさせた乱数の値をI/Oポート114から入力して、これを抽出する。乱数発生回路115から抽出された乱数の値は、HLレジスタに格納される(ステップS602)。
次に、HLレジスタに格納された乱数の下位バイトの値と上位バイトの値を、AレジスタまたはRAM112の作業領域を用いて互いに入れ替える(ステップS603)。このときにHLレジスタに格納された値が内部抽選用の乱数として取得されるものとなる。そして、ステップS601で禁止した割り込みを許可してから(ステップS604)、乱数取得処理を終了して、図17のフローチャートに復帰する。
次に、ステップS505の通常用抽選処理について詳しく説明する。図19は、CPU111がステップS505で実行する通常用抽選処理を詳細に示すフローチャートである。まず、bレジスタ(特別役一時格納ワーク)のデータをAレジスタに書き込み(ステップS701)、Aレジスタのデータが示す値が0であるかどうかを判定する(ステップS702)。
Aレジスタのデータが示す値が0であれば、前回以前のゲームでボーナス当選していないということである。この場合には、ビッグボーナス(1)抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(1)の判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS703)。次に、ビッグボーナス(1)の当選を示す01hをAレジスタに書き込み(ステップS704)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS705)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS706)。
HLレジスタがオーバーフローしていなければ、ビッグボーナス(1)には当選しなかったということである。この場合には、ビッグボーナス(2)抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(2)の判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS707)。次に、ビッグボーナス(2)の当選を示す02hをAレジスタに書き込み(ステップS708)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS709)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS710)。
HLレジスタがオーバーフローしていなければ、ビッグボーナス(2)にも当選しなかったということである。この場合には、レギュラーボーナス(1)抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するレギュラーボーナス(1)の判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS711)。次に、レギュラーボーナス(1)の当選を示す03hをAレジスタに書き込み(ステップS712)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS713)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS714)。
HLレジスタがオーバーフローしていなければ、レギュラーボーナス(1)にも当選しなかったということである。この場合には、ビッグボーナス(1)+チェリー抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(1)+チェリーの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS715)。次に、ビッグボーナス(1)+チェリーの当選を示す12hをAレジスタに書き込み(ステップS716)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS717)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS718)。
HLレジスタがオーバーフローしていなければ、ビッグボーナス(1)+チェリーにも当選しなかったということである。この場合には、ビッグボーナス(2)+チェリー抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(2)+チェリーの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS719)。次に、ビッグボーナス(2)+チェリーの当選を示す22hをAレジスタに書き込み(ステップS720)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS721)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS722)。
また、ステップS706でHLレジスタがオーバーフローしていた場合には、今回のゲームでビッグボーナス(1)に当選となる。ステップS710でHLレジスタがオーバーフローしていた場合には、今回のゲームでビッグボーナス(2)に当選となる。ステップS714でHLレジスタがオーバーフローしていた場合には、今回のゲームでレギュラーボーナス(1)に当選となる。この場合には、Aレジスタのデータをbレジスタに書き込む(ステップS723)。ここでは、ボーナス以外の役の抽選結果はハズレ(2)となるので、ステップS754の処理に進む。
ステップS718でHLレジスタがオーバーフローしていた場合には、今回のゲームでビッグボーナス(1)+チェリーに当選となる。ステップS722でHLレジスタがオーバーフローしていた場合には、今回のゲームでビッグボーナス(2)+チェリーに当選となる。この場合には、まず、Aレジスタのデータをスタック領域112−7に退避した上で(ステップS724)、Aレジスタの上位4ビットの値を下位4ビットにシフトする(ステップS725)。そして、シフトした後のAレジスタのデータをbレジスタに書き込む(ステップS726)。
その後、ステップS724でスタック領域112−7に退避していたデータをAレジスタに復元させる(ステップS727)。そして、Aレジスタのデータと0Fhとの論理積演算を行い、Aレジスタの上位4ビットをマスクする。この時点でAレジスタには、チェリーの当選を示す02hが書き込まれている(ステップS728)。そして、ステップS755の処理に進む。
ステップS702でAレジスタのデータが示す値が0でなければ、前回以前のゲームでボーナス当選しているということである。この場合には、前回以前のゲームで当選したボーナス当選フラグが持ち越されている状態を示す01hをcレジスタに書き込む(ステップS729)。
次に、ビッグボーナス(1)+チェリー抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(1)+チェリーの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS730)。もっとも、実際の抽選はチェリーのみについて行われるので、チェリーの当選を示す02hをAレジスタに書き込み(ステップS731)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS732)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS733)。
HLレジスタがオーバーフローしていなければ、ビッグボーナス(1)+チェリーに当選しなかったということである。この場合には、ビッグボーナス(2)+チェリー抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するビッグボーナス(2)+チェリーの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS734)。もっとも、実際の抽選はチェリーのみについて行われるので、チェリーの当選を示す02hをAレジスタに書き込み(ステップS735)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS736)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS737)。
ステップS722またはステップS737でHLレジスタがオーバーフローしていなければ、ビッグボーナス(2)+チェリーに当選しなかったということなので、チェリー抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するチェリーの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS738)。次に、チェリーの当選を示す02hをAレジスタに書き込み(ステップS739)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS740)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS741)。
HLレジスタがオーバーフローしていなければ、チェリーにも当選しなかったということである。この場合には、ベル抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するベルの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS742)。次に、ベルの当選を示す03hをAレジスタに書き込み(ステップS743)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS744)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS745)。
HLレジスタがオーバーフローしていなければ、ベルにも当選しなかったということである。この場合には、リプレイ抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するリプレイの判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS746)。次に、リプレイの当選を示す04hをAレジスタに書き込み(ステップS747)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS748)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS749)。
HLレジスタがオーバーフローしていなければ、リプレイにも当選しなかったということである。この場合には、ハズレ(1)抽選確率取得処理を行って、通常遊技状態の賭け数3と設定値ワーク112−4に格納されている設定値に対応するハズレ(1)の判定値数を取得し、取得した判定値数をDEレジスタに一時格納する(ステップS750)。次に、ハズレ(1)の当選を示す05hをAレジスタに書き込み(ステップS751)、さらにHLレジスタの値にDEレジスタの値を加算して、HLレジスタに書き込む(ステップS752)。そして、この加算の結果、HLレジスタがオーバーフローしたかどうかを判定する(ステップS753)。
HLレジスタがオーバーフローしていなければ、ハズレ(1)にも当選しなかったということであり、ハズレ(2)に当選したということになるので、ステップS754の処理に進む。ステップS754では、ハズレ(2)の当選を示す00hをAレジスタに書き込み、ステップS755の処理に進む。
ステップS733、S737またはS741でHLレジスタがオーバーフローしていた場合には、今回のゲームでチェリーに当選となる。ステップS745でHLレジスタがオーバーフローしていた場合には、今回のゲームでベルに当選となる。ステップS749でHLレジスタがオーバーフローしていた場合には、今回のゲームでリプレイに当選となる。ステップS753でHLレジスタがオーバーフローしていた場合には、今回のゲームでハズレ(1)に当選となる。これらの場合は、当選となった役に対応した値がAレジスタに書き込まれており、ステップS755の処理に進む。
ステップS755では、Aレジスタのデータをgレジスタに書き込む。こうして今回のゲームにおける特別役の当選状況がbレジスタに、一般役の当選状況がgレジスタに書き込まれ、また、ボーナス当選している場合は今回のゲームによる当選か前回以前のゲームからの持ち越しであるかを示す情報がcレジスタに書き込まれた状態で、図17の処理に復帰することとなる。
なお、ステップS507の小役ゲーム用抽選処理もステップS508のレギュラーボーナス用抽選処理も、通常遊技状態用抽選処理と同様にHLレジスタにDEレジスタの値(抽選対象となる役の判定値)を順次加算していき、HLレジスタがオーバーフローしたときの対象役を当選とするものである。もっとも、レギュラーボーナス用抽選処理では、ボーナスの抽選そのものが行われず、小役ゲーム用抽選処理では、各ゲームの抽選結果に応じてbレジスタの内容も書き換えられる。例えば、前回のゲームでJACINまたはレギュラーボーナス(2)に当選していても、今回のゲームでJACINにもレギュラーボーナス(2)にも当選しなかった場合には、bレジスタの内容は00hとなる。
次に、ステップS403のリール回転処理について詳しく説明する。図20は、CPU111がステップS403で実行するリール回転処理を詳細に示すフローチャートである。リール回転処理では、まず、前のゲームのリール回転開始時点からウェイトタイム(例えば、約4.1秒)が経過したか否かを判定し(ステップS801)、ウェイトタイムが経過していなければ、ウェイトタイムが経過するまで待機する。ウェイトタイムが経過していれば、ウェイトタイムの計時を新たに開始する(ステップS802)。
次に、リールモータの回転開始時のワーク初期化コードをレジスタに設定し、リールの回転を開始させる(ステップS803)。そして、テーブルインデックスを参照して、テーブル作成用データを特定し、特定したテーブル作成用データに基づいて、当該ゲームの遊技状態、内部当選状況、他のリールの停止状況に対応する停止制御テーブルを、回転中のリール別に作成し(ステップS804)、停止準備完了時のワーク初期化コードをレジスタに設定する(ステップS805)。これにより、停止ボタン12L、12C、12Rの操作が有効となる。
次に、停止ボタン12L、12C、12Rのいずれかの有効な操作が検出されたか否かを判定する(ステップS806)。いずれの停止ボタンの操作も検出されていなければ、リール回転エラー(一定期間以上、リールセンサ3SL、3SC、3SRによりリール基準位置が検出されない場合に判定されるエラー)が発生したか否かを判定する(ステップS807)。リール回転エラーが発生していなければ、さらに投入エラー(メダルの投入が許可されている期間以外で、メダルの投入が検出された場合に判定されるエラー)が発生したか否か、及び払出エラー(メダルの払出が許可されている期間以外で、メダルの払出が検出された場合に判定されるエラー)が発生したか否かを判定する(ステップS808、S809)。ステップS807〜ステップS809においていずれのエラーの発生も判定されなければ、ステップS806に戻る。
また、ステップS808において投入エラーの発生が判定された場合、またはステップS809において払出エラーの発生が判定された場合には、リール回転中の投入・払出エラーを示すエラーコードをレジスタに設定し(ステップS810)、所定のエラー処理に移行する(ステップS811)。そして、エラーが解除された場合には、再びステップS806に戻る。
また、ステップS807においてリール回転エラーの発生が判定された場合には、リール回転エラーを示すエラーコードをレジスタに設定し(ステップS812)、所定のエラー処理に移行する(ステップS813)。これに伴い、リール3L、3C、3Rの回転も一時的に停止する。そして、エラーが解除された場合には、再びステップS803に戻り、リール3L、3C、3Rの回転が再開する。
ステップS806において停止ボタン12L、12C、12Rの操作が検出された場合には、操作された停止ボタンに対応するリールモータ(3ML、3MC、3MRのいずれか)における、その時点のリール基準位置からのステップ数(停止操作位置となるステップ数)を取得し、停止リールに対応するワークに設定する(ステップS814)。その後、操作された停止ボタンに対応するリール(3L、3C、3Rのいずれか)の回転が停止するまで待機する(ステップS815)。
そして、操作された停止ボタンに対応するリール(3L、3C、3Rのいずれか)の回転が停止すると、リール3L、3C、3Rの全てが停止したか否かを判定し(ステップS816)、全てのリール3L、3C、3Rの回転が停止していなければ、ステップS804に戻る。全てのリール3L、3C、3Rの回転が停止していれば、リール回転処理を終了して、図16のフローチャートに復帰する。
以上のようにリール回転処理では、リール3L、3C、3Rの回転が開始した後、停止ボタン12L、12C、12Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、停止ボタン12L、12C、12Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。なお、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、停止ボタン12L、12C、12Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、停止ボタン12L、12C、12Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。また、RAM112のデータが破壊されていて元の状態に復帰できない場合は、この限りではない。
次に、ステップS406のゲーム終了時処理について詳しく説明する。図21は、CPU111がステップS406で実行するゲーム終了時処理を詳細に示すフローチャートである。ゲーム終了時処理では、RAM112にレギュラーボーナス中フラグが設定されているかどうかにより、当該ゲームの遊技状態がレギュラーボーナスであったかどうかを判定する(ステップS901)。但し、今回のゲームの入賞でレギュラーボーナス中フラグが設定された場合には、レギュラーボーナス中であったと判定されない。当該ゲームの遊技状態がレギュラーボーナスでなかった場合には、ステップS905の処理に進む。
当該ゲームの遊技状態がレギュラーボーナスであった場合には、RAM112に設けられたカウンタにより、当該レギュラーボーナスが開始してから(ビッグボーナスでは、その中で新たなレギュラーボーナスが開始してから)の消化ゲーム数と入賞ゲーム数とをカウントする(ステップS902)。このカウントの結果、当該レギュラーボーナスにおける入賞ゲーム数が8となったか、或いは当該レギュラーボーナスにおける消化ゲーム数が12となったかどうかを判定する(ステップS903)。
当該レギュラーボーナスにおける入賞ゲーム数が8となったか、或いは当該レギュラーボーナスにおける消化ゲーム数が12となった場合には、RAM112に設定されているレギュラーボーナス中フラグを消去すると共に、レギュラーボーナス中の消化ゲーム数と入賞ゲーム数とをカウントするためのカウンタの値をいずれも0に初期化する(ステップS904)。そして、ステップS905の処理に進む。当該レギュラーボーナスにおける入賞ゲーム数が8となってなく、且つ当該レギュラーボーナスにおける消化ゲーム数が12ともなっていない場合には、そのままステップS905の処理に進む。
ステップS905では、RAM112にビッグボーナス中フラグが設定されているかどうかにより、当該ゲームの遊技状態がビッグボーナスであったかどうかを判定する。但し、今回のゲームの入賞でビッグボーナス中フラグが設定された場合には、ビッグボーナス中であったと判定されない。ビッグボーナス中であったと判定された場合には、RAM112に設けられたカウンタにより当該ビッグボーナスが開始してからのメダルの払い出し総数をカウントする(ステップS906)。このカウントの結果、メダルの払い出し総数が465枚を越えたかどうかを判定する(ステップS907)。
メダルの払い出し総数が465枚を越えていれば、今回のゲームがビッグボーナスの終了ゲームということになる。そこで、初期化2を行ってから(ステップS908)、ステップS910の処理に進む。一方、ステップS905で当該ゲームの遊技状態がビッグボーナスでないと判定された場合、或いはステップS907でメダルの払い出し総数が465枚を越えてなくビッグボーナスが終了していないと判定された場合には、次に説明する初期化4を行ってから(ステップS909)、ステップS910の処理に進む。
ステップS910では、RAM112のビッグボーナス中フラグ及びレギュラーボーナス中フラグの状態に応じて、次のゲームで適用される遊技状態を示す遊技状態コマンドを生成し、演出制御基板102に送信する。そして、ゲーム終了時処理を終了する。
次に、ステップS909の初期化4処理について詳しく説明する。図22は、CPU111がステップS909で実行する初期化4処理を詳細に示すフローチャートである。初期化4処理では、まず、割込を禁止した後(ステップS1001)、ROM113の初期化テーブルを参照し、初期化4に対応して登録されている開始アドレスと初期化サイズを読み出す(ステップS1002)。そして、読み出した開始アドレス(7F05(H))にポインタをセットする(ステップS1003)。
次に、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(ステップS1004)、初期化する領域のバイト数(CD(H)+M)をセットする(ステップS1005)。そして、ステップS1003でセットされた開始アドレスからステップS1005でセットされたバイト数にわたり、RAM112のデータをクリアする(ステップS1006)。RAM112のクリアが終了すると、ステップS1001において禁止していた割込を許可する(ステップS1007)。そして、初期化4を終了して、図21のフローチャートの処理に復帰する。
なお、ここでは初期化4のみについてフローチャートを示して詳細な説明を行ったが、初期化1、初期化2、初期化3の各処理についても、ROM113に格納されている初期化テーブルを参照し、開始アドレスから初期化サイズで示されるまでの領域を続けて初期化するものとなっている。もっとも、初期化2と初期化3では、開始アドレスと初期化サイズが2つずつ組になって初期化テーブルに登録されているため、連続した領域の初期化の処理が2回に分けて行われるものとなる。また、初期化1、初期化2、初期化3においても、初期化4と同様に割込禁止がなされる。
以上のようなゲームの繰り返しにおいて、遊技制御基板101のCPU111は、通常遊技状態、ビッグボーナス、レギュラーボーナスの間で遊技状態の移行を行っており、遊技の進行状況に応じてコマンドを演出制御基板102に送信している。これに対して、演出制御基板102のCPU121は、遊技制御基板101から受信したコマンドに基づいて、スタート音の出力を含む独自の演出を行っている。以下、演出制御基板102側の制御により行われる演出の処理について説明する。
図23は、演出制御基板102のCPU121が実行する処理を示すフローチャートである。演出制御基板102側では、遊技制御基板101から送られてくるコマンドを受信したかどうかを判定している(ステップS1101)。遊技制御基板101からいずれかのコマンドを受信すると、受信したコマンドの種類が何であるかを判定する(ステップS1102)。
受信したコマンドの種類がステップS513で送信された当選状況通知コマンドであった場合には、前回のゲームでRAM122に保存した今回のゲームにおける遊技状態、並びに受信した当選状況通知コマンドが示すビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)、ハズレ(1)の当選状況に応じて図12に示すスタート音選択テーブルを参照して、スタート音パターンを選択する(ステップS1103)。そして、スピーカ7L、7R、7Uを制御して、選択したパターンでスタート音を出力させる(ステップS1104)。さらに、必要に応じてその他のスタート時における演出を行い(ステップS1105)、ステップS1101の処理に戻る。
受信したコマンドの種類がステップS910で送信された遊技状態コマンドであった場合には、当該コマンドが示す次のゲームの遊技状態をRAM122の所定の領域に保存する(ステップS1106)。そして、ステップS1101の処理に戻る。
また、受信したコマンドの種類が他のコマンドであった場合には、それぞれのコマンドの種類に応じた処理(本発明と関係ないので、詳細は省略)を実行する(ステップS1107)。その後、ステップS1101の処理に戻る。
以上説明したように、この実施の形態にかかるスロットマシン1では、停止操作位置(リール基準位置からのステップ数に対して割り当てられた領域)に対して停止位置(表示結果)が一意的に定められた複数の停止制御テーブルのうち、全てのリールが回転中においては、各遊技状態のそれぞれについての内部当選状態に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御が行われる。一方、いずれかのリールが既に停止している場合においては、各遊技状態のそれぞれについての内部当選状態、停止済みのリールの停止位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御が行われるようになっており、遊技状態、内部当選状態、リールの停止状況(及び停止済みのリールの停止位置(表示結果))の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。このため、従来のように一の内部当選状態に対して複数の停止制御テーブルからいずれか1つの停止制御テーブルを内部抽選とは異なる抽選(例えばリール制御の振分抽選など)などによりさらに選択する必要がなく、リールを停止させる際の制御が複雑化することがない。
また、内部抽選では、いずれの役も当選していない場合に、ハズレ(1)、ハズレ(2)のうちの一方を決定するとともに、決定されたハズレの種類に応じて左リール3Lの停止制御テーブルとして引込コマ数や停止位置の異なる停止制御テーブルが選択されるようになっている。すなわち、従来のように内部抽選とは異なる抽選などによって複数の停止制御テーブルから異なる停止制御テーブルを選択するのではなく、内部抽選により決定されたハズレの種類に応じて異なる停止制御テーブルを選択することによりリール3L、3C、3Rの停止制御のパターンを変化させることができる、このため、リールを停止させる際の制御を複雑化することなく、リール3L、3C、3Rの導出態様(いわゆる滑り)や表示結果(停止位置)をより多彩なものにできる。
特にハズレ(2)よりも当選する確率の低いハズレ(1)のみが当選するか、いずれかのボーナスが当選していることを条件にチャンス目を導出可能な停止制御テーブルが作成され、この停止制御テーブルに基づいてリール3L、3C、3Rの停止制御が行われるとともに、通常遊技状態においてハズレ(2)のみが当選している場合には、チャンス目が導出されることのない停止制御テーブルが作成され、この停止制御テーブルに基づいてリールの停止制御が行われる。すなわち、いずれかのボーナスに当選しているか、ハズレ(1)のみが当選しているときに、ハズレ(1)よりも当選確率の高いハズレ(2)のみが当選しているときには導出されることのないチャンス目を導出させることが可能となるので、チャンス目が導出されたときのボーナスに当選していることに対する遊技者の期待感を高めることができる。
また、ボーナスの成立ゲームと、ボーナスの持越中にハズレが当選したゲームとで異なる停止制御テーブルに基づいてリール3L、3C、3Rの停止制御が行われるようになっている。このため、ボーナスの成立ゲームであるか、既にボーナスが前回以前のゲームから持ち越されている状態であるかをリール3L、3C、3Rの停止制御の違いによって判別できるので、興趣を高めることができる。
また、ボーナスの持越中においては、ハズレ(1)が当選するか、ハズレ(2)が当選するかによって異なる停止制御テーブルに基づいてリール3L、3C、3Rの停止制御が行われるようになっており、ボーナスの持越中においても、ハズレの種類に応じてリールの停止制御を変化させることができるので、リール3L、3C、3Rの導出態様(滑り)や停止位置(表示結果)を多様化することができる。
また、本実施例では、小役ゲーム及びレギュラーボーナスにおいて内部当選状態がハズレ(1)、ハズレ(2)の場合には、ともに通常遊技状態において内部当選状態がハズレ(2)の場合と共通のテーブル作成用データが参照されるようになっている。すなわち小役ゲーム及びレギュラーボーナスにおいては、ハズレの種類に関わらず、常に同一の停止制御テーブルに基づいてリールの停止制御が行われるようになっているので、リールの停止態様を変化させたところで興趣にあまり影響を与えることのない小役ゲームやレギュラーボーナスにおけるリールの停止制御を簡素化することができる。
また、リール3L、3C、3Rを停止制御するために用いられる停止制御テーブルは、複数の連続するステップ数の範囲(本実施例では1図柄が変動する4ステップずつ)毎に引込コマ数(当該範囲で停止操作が検出された場合の停止位置)を一意に定めるものとしている。このため、停止制御テーブルを作成するためのテーブル作成用データの容量も大幅に軽減できる。
また、この実施の形態にかかるスロットマシンでは、CPU111が演出制御基板102に対して遊技の進行に応じたコマンドを送信し、演出制御基板102に搭載されたCPU121は、遊技制御基板101から送信されたコマンドに基づいて演出の制御を行うようになっている。CPU111は、コマンドを送信するのみで演出の制御を行う必要がないので、CPU111を含む遊技制御基板側の処理負荷を軽減できるうえに、演出を多彩なものにできる。
ここで、遊技制御基板101から演出制御基板102にコマンドが送信されるコマンド伝送ラインについて、遊技制御基板101と演出制御基板102との間で演出中継基板106を介して接続されており、遊技制御基板101に演出制御基板102が直接接続される構成となっていない。このため、コマンド伝送ラインからCPU111に対して外部から不正な信号が入力され、遊技の制御に影響を与えられてしまうことを防止できる。
このようなコマンドとして、ゲーム開始時に、ハズレの種類を含む内部当選状態を特定可能な内部当選コマンドが、演出制御基板102に対して送信されるようになっており、演出制御基板102のCPU121は、入賞役の当選状態のみならず、ハズレの種類に応じて異なる割合で複数の演出(スタート音の出力)を行うことが可能となる、これにより、内部当選状態に対応するリール3L、3C、3Rの停止制御と演出(出力されるスタートンのパターン)とがリンクすることとなり、演出効果を一層高めることができるようになる。
例えば、いずれかのボーナスが当選しているときに、ハズレ(1)が当選した場合を除いてチャンス目を導出可能なリールの停止制御が行われるとともに、通常遊技状態において、いずれのボーナスも当選していないときに、ハズレ(1)であれば、チャンス目を導出可能にリールの停止制御が行われるのに対して、ハズレ(2)であれば、チャンス目が導出されることのないリールの停止制御が行われる。すなわちチャンス目が導出されることによっていずれかのボーナスに当選している可能性が高まる。
そして、いずれかのボーナスに当選している場合及びチャンス目を導出可能なハズレ(1)の場合には、チャンス目が導出されることのないハズレ(2)よりも高い割合で、スタート音パターン02、03のスタート音を出力させる制御が行われるようになっているので、ゲーム開始時に、スタート音パターン01のスタート音が出力されるよりもスタート音パターン02、03のスタート音が出力される方がボーナスに当選している可能性が高まる。
さらにスタート音パターン01のスタート音が出力されるよりもスタート音パターン02、03のスタート音が出力される方が高い割合でチャンス目が導出されることとなるので、スタート音の違いと、チャンス目の導出によってボーナスの当選に対する遊技者の期待感を効果的に高めることができる。こうしてハズレの種類を含む内部当選状況に応じて演出が行われることにより、内部当選状況に対応するリール3L、3C、3Rの停止制御と演出がリンクすることとなり、演出効果を一層高めることができるようになる。
また、ビッグボーナスは、消化ゲーム数に関わらず、メダルの払い出し枚数が465枚を越えると終了するものとなっている。ここでビッグボーナス(小役ゲーム及びレギュラーボーナスを含む)中のゲームでは、リプレイが内部抽選の対象役として定められていないので、リプレイ入賞することがない。リプレイは、遊技者の手持ちのメダルを減らさないものであるがメダルの払い出しを伴わないので、ビッグボーナスの終了条件となる払い出しメダル枚数に影響しない。つまり、ビッグボーナス中にリプレイ入賞させても不必要にビッグボーナスのゲーム数を増やすだけのものとなってしまうので、リプレイをビッグボーナスにおける内部抽選の対象役として定めないことで、ビッグボーナスの遊技状態を無駄に長引かせることがなく、遊技を効率よく進めることができるようになる。
また、ビッグボーナスにおいて小役ゲームからレギュラーボーナスに遊技状態を移行させるためのJACINの表示態様は、「ベル−ベル−JAC」の組み合わせにより構成され、他の役の表示態様として使用されていないものである。このため、可変表示装置2に導出された表示態様と入賞となる役との関係が明確になり、遊技者にとっては遊技性が分かりやすいものとなる。
リール3L、3C、3Rの回転は、停止ボタン12L、12C、12Rの操作がストップスイッチ42L、42C、42Rで検出されてから190ミリ秒の最大停止遅延時間の範囲で停止されることとなるが、この間に4コマを引き込むことができるので、停止すべき図柄は5コマの範囲から選ぶことができる。従って、リプレイ、JACINまたはベルに当選しているときには、これを取りこぼすことがない。レギュラーボーナス中には、おおよそ1/1.01という非常に高い確率でJACINまたはベルに当選することとなるが、これの取りこぼしが生じ得ないので、レギュラーボーナスでは遊技者が実質的には目押しをしなくても済むようになり、簡単に遊技を進められるようになる。
上記したように遊技状態毎に内部抽選の対象となる各役の当選確率を定める判定値数は、役別テーブルから参照されるアドレスに格納されている。賭け数毎に判定値数の格納先アドレスが登録されており、賭け数に従って判定値数が取得されることとなる。ここで、レギュラーボーナスにおける賭け数は1で固定されているが、レギュラーボーナス以外の遊技状態における賭け数は3で固定されている。これにより、賭け数に応じて判定値数を取得するだけでも、遊技状態に応じた当選確率でベル及びチェリーの内部抽選を行うことができる。また、判定値数を取得する際に遊技状態を判断する必要がないので、内部抽選における処理ステップが簡素化される。しかも、レギュラーボーナスに対応した賭け数1の方が、賭け数3のときよりもベルの当選確率が高いので、レギュラーボーナスにおける遊技者の期待感をさらに高めさせて、遊技の興趣を向上させることができる。
また、各抽選対象役の判定値数の格納先のアドレスは、設定値に応じて異なっている場合もあるが、設定値に関わらずに当選確率を同一とするものとした役については、設定値に関わらずに判定値数が共通化して格納されるものとなる。このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。もっとも、内部抽選の対象役と設定されている賭け数とが同じで設定値に応じて参照される判定値数を格納したアドレスが異なっていても、異なるアドレスにおいて格納されている判定値数が同じである場合がある。
一般に開発段階においては、少なくとも一部の役について設定値に応じて判定値数を調整しながら(すなわち、内部抽選の当選確率を調整しながら)、シミュレーションを行っていくものとしている。当初の判定値数として、設定値に応じて異なる判定値数を登録しておいたが、シミュレーションにより調整を行った結果として、設定値が異なる場合の判定値数が同一になる場合もある。当初の判定値数として、設定値に応じて同一の判定値数を登録しておいたが、シミュレーションの結果により当初から登録してあった判定値数がそのまま用いられる場合もある(シミュレーションの結果により当初とは異なる判定値数すなわち、設定値に応じて異なる判定値数となる場合もある)。そして、それぞれの場合におけるシミュレーションで適切な結果の得られた判定値数を、量産用の機種に設定する判定値数として選ぶものとしている。
ここで、シミュレーションにより調整された判定値数が結果として設定値に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM113に記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、内部抽選は、取得した内部抽選用の乱数に、役別テーブルから参照された各役の判定値数を加算していき、その加算の結果がオーバーフローしたか否かによって、それぞれの役の当選の有無を判定するものとしている。このため、各役の判定値数をそのまま用いて内部抽選を行うことができる。なお、実際の当選判定を行う前に当選判定用テーブルを生成する場合には、まず、全ての抽選対象役について当選となる判定値の範囲を特定する必要がある。これに対して、この実施の形態によれば、既に何らかの抽選対象役に当選したときには、他の役に当選となる判定値を特定する必要がないので、抽選処理全体での処理効率が高いものとなる。
また、通常遊技状態における判定値数には、ビッグボーナス(1)またはビッグボーナス(2)と、チェリーとの両方を抽選対象とするものが登録されている。ここで、前回以前のゲームからボーナス当選が持ち越されていなければ、内部抽選用の乱数の値によっては、ビッグボーナス(1)またはビッグボーナス(2)と、チェリーの両方に当選となる。ここで、抽選対象の一方の役であるチェリーの当選に基づいて設定されたチェリー当選フラグに基づいて、可変表示装置2の表示結果により「チェリー」の小役に入賞したとしても、依然としてビッグボーナス(1)またはビッグボーナス(2)に当選しているという可能性もある。このため、「チェリー」の小役に入賞したときであっても、ビッグボーナス(1)またはビッグボーナス(2)の当選も遊技者に期待させることができ、遊技の興趣を向上させることができる。
また、乱数取得処理によって取得される内部抽選用の乱数は、サンプリング回路116により乱数発生回路115から抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工してから使用するものとしている。乱数発生回路115は、パルス発生回路115aのパルス信号の周波数で高速に更新して乱数を発生しているが、ソフトウェアにより加工した後の内部抽選用の乱数では、その加工によって更新の周期性が失われるものとなる。
これに対して、内部抽選では各役に対応した判定値数を内部抽選用の乱数の値に順次加算していくことにより行うため、各役を当選とする内部抽選用の乱数の値は、固まってしまうこととなる。これに対して、ソフトウェアによる加工で内部抽選用の乱数の周期性を失わせ、その値をバラつかせることによって、遊技者による狙い打ちを可能な限り防ぐことができる。
しかも、乱数発生回路115のカウンタ115b、115cの値を更新させるためにパルス発生回路115aが発生するパルス信号の周波数は、CPU111の動作クロックの周波数よりも高く、整数倍ともなっていない。このため、乱数発生回路115が発生する乱数の更新が、CPU111が行う処理と同期しにくくなる。しかも、パルス発生回路115aのパルス信号の周波数の方を高くすることで、乱数発生回路115が発生する乱数の更新速度を非常に速いものとすることができる。
一方、ソフトウェアによる乱数の加工は、サンプリング回路116により乱数発生回路115から抽出した乱数の上位バイトと下位バイトとを入れ替え、第15、第7ビットをマスクした後、上位バイトをビットシフトするだけでよい。従って、16ビット(実際にはマスクされて14ビット)という比較的大きな乱数であっても、周期性を失わせるために必要な加工の処理に要する負荷がそれほど大きくならず、容易に取得することができる。このように大きな乱数が取得できることで、内部抽選における確率設定を細かく行うことができるようになる。
ところで、この実施の形態にかかるスロットマシン1では、遊技制御基板101のRAM112における未使用領域112−6を1ゲーム毎に初期化するようにしている。このため、RAM112の未使用領域112−6を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できる。
また、RAM112における未使用領域112−6に加えてスタック領域112−7中の未使用スタック領域112−71も1ゲーム毎に初期化するものとしている。このため、RAM112においてその時点で使用されていない全ての領域が1ゲーム毎に初期化されることとなり、例えば、RAM112の未使用領域112−6を利用せずに未使用スタック領域112−71を利用して不正プログラムを格納させようとしても、当該不正プログラムが常駐してしまう余地を無くすことができるので、RAM112に不正プログラムが常駐してしまうことを一層確実に防止できる。
このように未使用スタック領域112−71までゲーム毎に初期化することで、例えば、未使用スタック領域112−71に不正なデータ(不正プログラムが指定するアドレス等)を加え、データの復帰時にマイクロコンピュータを誤作動させることでレジスタを不正なものに書き換えてしまうことにより、本来のプログラムとは異なる動作を行わせてしまうような不正も防止できる。さらに、未使用スタック領域112−71に不正なデータが格納されることによって、本来であれば退避したデータを格納できるはずの領域が圧迫され、スタック領域112−7がオーバーフローしてしまい、遊技制御基板101を構成するマイクロコンピュータが暴走してしまう等の不具合も防止できる。
さらに、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、電源投入時にRAM112のデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化1〜4を行うものとしているが、これら4種類の初期化条件のうちどの条件が成立した場合でも、必ずRAM112における未使用領域112−6及び未使用スタック領域112−71を初期化するものとしている。これにより、不正プログラムが常駐してしまうことを一層確実に防止できるようになる。
また、遊技制御基板101のROM113には、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録された初期化テーブルが格納されている。CPU111がRAM112の初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する(初期化サイズが未使用スタック領域112−71のサイズを含むものであれば、未使用スタック領域112−71のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する)。そして、ポインタが設定された初期化アドレスから1バイトつつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行している。すなわち、CPU111がRAM112を初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化するようになっている。
このため、ROM113の初期化テーブルに、初期化条件の種類に対応する開始アドレスとその際初期化される領域のサイズのみを設定しておくことで、初期化条件の種類に対応する初期化終了アドレスを個々に設定しておくことなく、初期化条件の種類に対応する領域を初期化することができるとともに、複数種類の初期化を共通の処理(RAM初期化処理)を用いて行えるので、複数種類の初期化を行うためのプログラム容量を削減できる。さらに、初期化の処理においては、初期化サイズが0か否かを判定するのみで処理の終了を判定するので、現在初期化したバイトのアドレスと終了アドレスとの比較によって処理の終了を判定する場合に比較して、処理負荷を大幅に軽減できる。
また、初期化1〜4の実行中においては常に割込が禁止されるようになっており、RAM112に記憶されているデータを初期化している最中に電源監視回路117から電圧低下信号が入力されても、初期化が終了するまでは電断割込処理が実行されないので、例えば、初期化が完全に終了する前の段階で電断割込処理が行われることにより、初期化されるべきデータのうち初期化されたデータと初期化されていないデータとが混在してしまい、復旧時に電断前の制御状態へ正常に復帰させることができなくなってしまう等の不具合を防止できる。
また、電断割込処理においてRAM112の未使用領域112−6及び未使用スタック領域112−71を含む全てのデータに基づいてRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM112における未使用領域112−6及び未使用スタック領域112−71を含む全ての領域に格納されているデータに基づいて計算したRAMパリティを判定している。RAMパリティに異常があれば、RAM異常エラー状態となり、設定キースイッチ92をONの状態で電源投入し、RAM112の使用中スタック領域を除く全ての領域を初期化する初期化1が行われるまで、ゲームの進行が不可能となる。このため、電源投入時にRAM112の未使用領域112−6および/または未使用スタック領域112−71に不正プログラムが格納された場合でも、当該不正プログラムを発見して初期化することができる。
また、この実施の形態にかかるスロットマシン1では、RAM112に記憶されているデータに異常が生じた場合には、RAM異常エラー状態に制御され、ゲームの進行が不能化されると共に、設定変更モードに移行し、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち、RAM112に記憶されているデータに異常が生じても、スロットマシン1により自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値(一般的に、設定変更操作は遊技店の従業員により行われるので、遊技店側が選択した設定値である)に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
また、内部抽選において抽選対象の役に当選とするか否かを決定する際に、設定値ワーク112−4に格納されている設定値が適正な値(1〜6の範囲の値)でなければ、デフォルトの設定値(例えば、設定1)に基づく確率で当選とするか否かを決定するのではなく、この場合にもRAM異常エラー状態に制御され、ゲームの進行が不能化されると共に、設定変更モードに移行し、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち内部抽選において抽選対象となる役に当選とするか否かの決定を適正に行うことができない場合も、設定変更操作に基づいて選択・設定された設定値に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
また、RAM112に記憶されたデータに異常が生じるのは、停電時や制御部110が暴走する等、制御に不具合が生じて制御を続行できないときがほとんどである。これらの状態から復旧して制御部110が起動するときにおいてのみデータが正常か否かの判断を行うようになっているので、RAM112に記憶されたデータが正常か否かの判定をデータに異常が生じている可能性が高い状況においてのみ行うことができる。すなわち、RAM112に記憶されたデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、制御部110の負荷を軽減させることができる。
また、RAM112のデータに異常が生じて、ゲームの進行が不能化された場合には、ゲームの進行が不能化された状態を解除する条件となる設定値の変更操作が有効となる設定変更モード(設定変更処理)へ移行することに伴って、RAM112に記憶されているデータが初期化される。このため、RAM112のデータに異常が生じたことに伴うデータの初期化と設定値の選択・設定に伴うデータの初期化とを1度で行うことができるので、無駄な処理を省くことができる。
さらに、制御部110の起動時には、RAM112のデータが正常であるか否かを判定する前に、設定キースイッチ92がONの状態であるか否かを判定し、その時点で設定キースイッチ92がONの状態であると判定した場合には、RAM112のデータが正常であるか否かの判定は行わずに、設定変更モードに移行する。こうしてRAM112のデータが正常であるか否かの判定を行わずに新たに設定値が選択・設定されることにより、無駄な処理を省くことができるようになる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、リールの回転開始時に、全てのリールについて、各遊技状態のそれぞれについての内部当選状況に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御が行われるとともに、その後リールが停止する毎に、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止済みのリールの停止位置、すなわちいずれか1つのリールが停止した状態では停止済みのリールの停止位置、いずれか2つのリールが停止した状態では停止済みの2つのリールの停止位置の組み合わせに対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御が行われるなっていた。
もっとも、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止済みのリールの停止位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うとともに、さらにいずれかのリールが停止したとき(2つのリールが停止したとき)には、新たに停止制御テーブルを選択せず、全てのリールが回転している状態でいずれか1つのリールが停止したときに選択された停止制御テーブルに従って残りのリールの停止制御を行うようにしてもよい。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止済みのリールの停止位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うとともに、さらにいずれかのリールが停止したとき(2つのリールが停止したとき)に、各遊技状態のそれぞれについての内部当選状況、最初に停止したリールの停止位置または最後に停止したリールの停止位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
上記の実施の形態では、いずれかのリールが既に停止している場合において、各遊技状態のそれぞれについての内部当選状況、リールの停止状況及び停止済みのリールの停止位置に対して一意的に定められた停止制御テーブルに従ってリールの停止制御が行われるようになっていた。これに対して、いずれかのリールが既に停止している場合において、各遊技状態のそれぞれについての内部当選状況、リールの停止状況及び停止済みのリールの停止操作位置に対して一意的に定められた停止制御テーブルに従ってリールの停止制御が行われるようにしてもよい。ここでは、遊技状態及び内部当選状況が同一であり、かつ停止済みのリールの停止位置(停止図柄)が同一の場合であっても、停止済みのリールの停止操作位置が異なる場合には、異なる停止制御テーブルが適用されることがあるため、リールの表示結果をより多彩なものにできる。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止済みのリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うとともに、さらにいずれかのリールが停止したとき(2つのリールが停止したとき)には、新たに停止制御テーブルを選択せず、全てのリールが回転している状態でいずれか1つのリールが停止したときに選択された停止制御テーブルに従って残りのリールの停止制御を行うようにしてもよい。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止済みのリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うとともに、さらにいずれかのリールが停止したとき(2つのリールが停止したとき)に、各遊技状態のそれぞれについての内部当選状況、最初に停止したリールまたは最後に停止したリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
上記の実施の形態では、いずれか2つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止位置の組み合わせに対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御が行われるようになっている。これに対して、いずれか2つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止したリールのうちのいずれか1つのリールの停止位置、停止したリールのうちの残りのリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止位置に対して一意的に定められた停止制御テーブルを選択し、いずれか2つのリールが停止したときに、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止操作位置の組み合わせに対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、いずれか2つのリールが停止したときに、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止位置の組み合わせに対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
また、いずれか1つのリールが停止したときに、回転中のリールについて、各遊技状態のそれぞれについての内部当選状況、停止したリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、いずれか2つのリールが停止したときに、各遊技状態のそれぞれについての内部当選状況、停止したリールのうちのいずれか1つのリールの停止位置、停止したリールのうちの残りのリールの停止操作位置に対して一意的に定められた停止制御テーブルを選択し、選択した停止制御テーブルに従ってリールの停止制御を行うようにしてもよい。
上記の実施の形態では、1図柄が変動する範囲の領域の単位毎に、引込コマ数を一意的に定めた停止制御テーブルを用いているが、これに限るものではない。例えば、1/2図柄が変動する範囲の領域、すなわち1図柄が変動する範囲未満の単位毎に、引込コマ数(停止位置)を一意的に定めた停止制御テーブルを用いてリールの停止制御を行うようにしてもよい。すなわち、ある図柄が基準位置に位置するステップ数から1図柄が変動する範囲以内の異なるステップ数に対して異なる停止位置が定められた停止制御テーブルを用いてリールの停止制御を行うようにしてもよい。このようにすることで、1図柄が変動する範囲以内であっても、停止操作のタイミングが異なることで導出される表示結果を変化させることができるので、停止操作のタイミングに応じてより多彩な態様でリールの表示結果を導出させることができる。
上記の実施の形態では、内部抽選において入賞役として定められた全ての役にハズレた場合には、さらに当該内部抽選のうちでハズレの種類(ハズレ(1)またはハズレ(2))を決定し、ハズレ(1)の当選となればハズレ(1)当選フラグを設定するものとしていた。そして、ハズレ(1)とハズレ(2)のいずれであるかにより、異なるリール制御テーブルを作成し、リール3L、3C、3Rの停止制御が異なるものとなるようにしていた。しかしながら、入賞役として定められた全ての役にハズレたのであれば、内部抽選でハズレの種類までを決定しなくてもよい。
この場合において、内部抽選の結果が同じハズレであったとしても異なるリール制御テーブルを作成し、リール3L、3C、3Rについて異なる停止制御を行えるようにするため、内部抽選の結果がハズレ(すなわち、何らの役の当選フラグも設定されていない)場合には、HLレジスタの値(当該遊技状態での入賞役の抽選が終了した後の値)に応じてリール制御テーブルを生成するものとしてもよい。また、ボーナス持越中ハズレについても同様である。また、この場合の当選状況通知コマンドには、HLレジスタの値(ハズレの種類を定める閾値との大小関係で可)を特定可能な情報を含ませるものとすればよい。
上記の実施の形態では、ハズレ(1)とハズレ(2)という2種類のハズレがあったが、3種類以上のハズレがあってもよく、それぞれのハズレの種類に応じて選択される停止制御テーブルを異なるものとしてもよい。また、抽選対象して判定値数が登録されているのはハズレ(1)のみで、ハズレ(1)の判定値数でHLレジスタがオーバーフローしない、すなわちハズレ(1)にも当選しなければ、ハズレ(2)に当選するものとしていた。しかしながら、全てのハズレの種類について判定値数を登録しておいてもよい。ここで、2種類のハズレがある場合に、ハズレ(1)に当選せず、ハズレ(2)にも当選しなかった残りの場合は、リプレイなどの他の役に当選となるものとしてもよい。
上記の実施の形態では、通常遊技状態における内部当選状況が、いずれかのボーナスの成立ゲーム、いずれかのボーナスの持越中ハズレ(2)、ハズレ(1)である場合に、各リールの停止操作が行われた順番に関わらず、チャンス目を導出させることが可能に制御され、通常遊技状態における内部当選状況が、いずれかのボーナスの持越中ハズレ(2)である場合に、各リールの停止操作が行われた順番に関わらず、リーチ目を導出させることが可能に制御されていた。もっとも、特定の条件を満たす順番(例えば、左、中、右)で各リールの停止操作が行われたことを条件にチャンス目やリーチ目を導出できるようにしてもよい。
上記の実施の形態では、リール3L、3C、3Rの全てに表示結果が導出された時点で成立するチャンス目を適用しているが、いずれか1つのリールまたは2つのリールに表示結果が導出された時点で成立するチャンス目を適用してもよい。例えば、左リール3Lの特定の位置に「スイカ」図柄が導出されるのみで成立する表示態様や、左リール3L及び中リール3Rが停止した時点で特定の入賞ライン上に「スイカ」の組み合わせが導出されるのみで成立する表示態様をチャンス目として適用してもよい。
上記の実施の形態では、入賞役の当選状態、ハズレの種類に応じた割合でスタート音のパターンを複数のパターンから選択し、選択したパターンのスタート音を出力させる制御を行っていたが、スタート音ではなく、例えば、リール停止時に出力される停止音を適用していもよい。また、音声に限らず、ランプやLEDの点灯態様、液晶の表示態様を適用してもよい。そして、入賞役の当選状態、ハズレの種類に応じた割合で演出パターンを複数のパターンから選択し、選択したパターンに従って演出を行う場合でも上記と同様の効果を得られるものである。
また、入賞役の当選状態及びハズレの種類に応じて演出を行うのではなく、選択された停止制御テーブルに応じて演出を行うものとしてもよい。例えば、チャンス目を導出可能な停止制御テーブルが選択されたときには、チャンス目が導出不能な停止制御テーブルが選択されたときとは異なる態様で演出を行うものとしてもよい。可変表示装置2の表示結果として実際にチャンス目が導出されたときに、チャンス目が導出されなかったときとは異なる態様で演出を行うものとしてもよい。この場合、遊技制御基板101から演出制御基板102には、リール3L、3C、3Rについて停止した図柄を示す停止コマンドを送信し、演出制御基板102のCPU121は、受信した停止コマンドに基づいてチャンス目が導出されたかどうかを判定することができる。なお、可変表示装置2の表示結果に応じた演出は、チャンス目に限るものではなく、何らかの特定の表示結果が導出されたときに演出を行うものとしてもよい。
上記の実施の形態では、ビッグボーナス(1)またはビッグボーナス(2)とチェリーとを同時に抽選対象としていた。これを含めて、通常遊技状態において、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス(1)といった特別役の抽選と、一般役(小役、リプレイ)の抽選は、同じ流れの中で行うものとしていた。これに対して、特別役の抽選と一般役の抽選とは、別々に行うものとしてもよい。
図24は、この変形例において適用される当選判定用テーブルを模式的に示す図である。図25は、この変形例において適用される内部抽選処理を詳細に示すフローチャートである。これ以外の構成及び処理については、上記の実施の形態にかかるスロットマシン1と同一であるものとする。
図24に示すように、当選判定用テーブルとしては、遊技状態別の小役当選判定用テーブル(小役テーブル)とボーナス当選判定用テーブル(ボーナステーブル)とがあり、ROM113に予め格納されている。小役テーブル及びボーナステーブルは、いずれも設定値に応じて用意され、内部抽選処理においては設定値に応じたものが用いられるものとなっているが、ここでは、図示を省略している。
ここで、図24(a)に示すように、通常遊技状態にあって前回以前のゲームからビッグボーナス(1)、ビッグボーナス(2)またはレギュラーボーナス(1)の当選が持ち越されていないとき、すなわち特別役一時格納ワーク(bレジスタ)の値が0であるときには、通常遊技状態に対応した小役テーブル(1)とボーナステーブル(1)の双方を用いて、内部抽選が行われる。なお、図24(a)において、斜線を付している範囲は、内部抽選用の乱数の値がこの範囲の値であれば、ビッグボーナス(1)またはビッグボーナス(2)とチェリーに重複して当選となる範囲である。
一方、通常遊技状態にある場合であっても、前回以前のゲームからビッグボーナス(1)、ビッグボーナス(2)またはレギュラーボーナス(1)の当選が持ち越されている、すなわち特別役一時格納ワーク(bレジスタ)の値が0でないときには、図24(b)に示すように、通常遊技状態に対応した小役テーブル(1)のみが用いられて、内部抽選が行われる。
遊技状態が小役ゲームにあるときには、図24(c)に示すように、小役ゲームに対応した小役テーブル(2)とボーナステーブル(2)の双方を用いて、内部抽選が行われる。ここでは、一般役とボーナスの双方に当選となる判定値の範囲はない。また、遊技状態がレギュラーボーナス(ビッグボーナス中に提供された場合を含む)にあるときには、そもそもボーナスの抽選を行わないので、図24(d)にそれぞれ示すように、レギュラーボーナスに対応した小役テーブル(3)のみが用いられて、内部抽選が行われる。
図25に示す内部抽選処理において、ステップS1201〜S1203の処理と、ステップS1203で設定値が1以上6以下の範囲にないと判定されたときにRAM異常エラー処理に移行する点については、上記の実施の形態における内部抽選処理(図17のステップS501〜S503)と同じである。また、gレジスタ(一般役一時格納ワーク)及びbレジスタ(特別役一時格納ワーク)の値が確定した後のステップS1220以降の処理についても、図17のステップS509以降の処理と同じである。
ステップS1203で設定値が1以上6以下の範囲にあると判定されると、現在の遊技状態と設定値に応じて用意された小役テーブルを、内部抽選に用いるテーブルとして設定する(ステップS1204)。次に、設定した小役テーブルに登録されている各役の当選となる判定値と、ステップS1201で取得した内部抽選用の乱数の値とを順次比較し(ステップS1205)、設定した小役テーブルに登録されているいずれかの役に当選したかどうかを判定する(ステップS1206)。いずれかの役に当選した場合には、当選した役に対応した値をgレジスタに書き込み(ステップS1207)、ステップS1208の処理に進む。いずれの役にも当選しなかった場合には、そのままステップS1208の処理に進む。
ステップS1208では、RAM112にレギュラーボーナス中フラグが設定されているかどうかにより、現在の遊技状態がレギュラーボーナス(ビッグボーナス中に提供されたものを含む)であるかどうかを判定する。現在の遊技状態がレギュラーボーナスであれば、そのままステップS1220の処理に進む。現在の遊技状態がレギュラーボーナスでなければ、さらにビッグボーナス中フラグが設定されているかどうかにより、現在の遊技状態がビッグボーナス中の小役ゲームであるかどうかを判定する。
現在の遊技状態が小役ゲームであれば、bレジスタ及びgレジスタのいずれの値も0となっているかどうか、すなわち前回以前のゲームからの持ち越しを含めて未だ何の役(ハズレ(1)を含む)にも当選していないかどうかを判定する(ステップS1210)。bレジスタまたはgレジスタのいずれかの値が0となっていなければ、そのままステップS1220の処理に進む。
bレジスタ及びgレジスタのいずれの値も0であれば、設定値に応じたボーナステーブル(2)を、内部抽選に用いるテーブルとして設定する(ステップS1211)。次に、ボーナステーブル(2)に登録されている各役の当選となる判定値と、ステップS1201で取得した内部抽選用の乱数の値とを順次比較し(ステップS1212)、ボーナステーブル(3)に登録されているいずれかの役に当選したかどうかを判定する(ステップS1213)。いずれかの役に当選した場合には、当選した役に対応した値をbレジスタに書き込み(ステップS1214)、ステップS1220の処理に進む。いずれの役にも当選しなかった場合には、そのままステップS1220の処理に進む。
現在の遊技状態がビッグボーナス中の小役ゲームでもなければ、通常遊技状態である。この場合には、bレジスタの値が0となっているかどうか、すなわち前回以前のゲームからボーナス当選が持ち越されているかどうかを判定する(ステップS1215)。bレジスタの値が0となっていなければ、そのままステップS1220の処理に進む。
bレジスタの値が0であれば、設定値に応じたボーナステーブル(1)を、内部抽選に用いるテーブルとして設定する(ステップS1216)。次に、ボーナステーブル(1)に登録されている各役の当選となる判定値と、ステップS1201で取得した内部抽選用の乱数の値とを順次比較し(ステップS1217)、ボーナステーブル(1)に登録されているいずれかの役に当選したかどうかを判定する(ステップS1218)。いずれかの役に当選した場合には、当選した役に対応した値をbレジスタに書き込み(ステップS1219)、ステップS1220の処理に進む。いずれの役にも当選しなかった場合には、そのままステップS1220の処理に進む。
このように特別役と一般役とで別個のテーブルを用意しておき、通常遊技状態において内部抽選用の乱数の値が特別役に当選となる値に対応するとともに一般役にも当選となる値に対応するときには、特別役と一般役とに同時に当選することとなる。この場合、小役やリプレイなどの一般役の当選フラグに基づいて、可変表示装置2の表示結果が小役やリプレイの入賞となったとしても、なおも特別役にも当選していたという可能性がある。これにより、特別役の当選に対する遊技者の期待感を高めさせることができ、遊技の興趣を向上させることができる。
また、内部抽選の結果として特別役に当選しなくても、小役やリプレイ(この変形例では、チェリー)には当選しているという可能性があるので、遊技者の期待感の維持を図ることができる。さらに、通常遊技状態において特別役の当選フラグが前回以前のゲームから持ち越されていなければ、小役テーブルとボーナステーブルの双方を用いて内部抽選を行うが、特別役の当選フラグが前回以前のゲームから持ち越されていれば、小役テーブルのみを用いて内部抽選を行えばよいこととなる。これにより、通常遊技状態における内部抽選を簡単な処理で行うことができるようになる。
この変形例では、特別役の当選の判定に用いる内部抽選用の乱数も一般役の当選の判定に用いる内部抽選用の乱数も同一のものであったが、互いに別々の乱数を用いるものとしてもよい。また、レギュラーボーナス(1)、ビッグボーナス(1)またはビッグボーナス(2)の当選が持ち越されてるか否かに関わらず、通常遊技状態においては小役テーブルとボーナステーブルの両方を用いて抽選を行うようにし、前回以前のゲームからレギュラーボーナス(1)、ビッグボーナス(1)またはビッグボーナス(2)の当選が持ち越されているときにレギュラーボーナス、ビッグボーナス(1)またはビッグボーナス(2)に当選したときには、その当選を無効とするものとしてもよい。
上記の実施の形態では、役別テーブルに登録されたアドレスに記憶された判定値数を内部抽選用の乱数に加算していき、その加算の結果オーバーフローが生じたときに、当該役に当選するものとしていた。これに対して、取得した判定値数を取得した内部抽選用の乱数の値から順次減算して、減算の結果を新たな内部抽選用の乱数の値とするものとしてもよい。判定値数を内部抽選用の乱数の値から減算するときには、減算の結果にオーバーフロー(ここでは、減算結果がマイナスとなること)が生じたかどうかを判定するものとすることができる。
上記の実施の形態では、内部抽選は、取得した内部抽選用の乱数の値に遊技状況に応じた各役の判定値数を順次加算していき、加算結果がオーバーフローしたときに当該役を当選と判定するものとしていた。これに対して、遊技状況に応じた各役の判定値数に応じて、各役を当選と判定する判定値を定めた当選判定用テーブルをゲーム毎に作成し、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしてもよい。
上記の実施の形態では、RAM112には、それぞれ1バイトで構成される特別役一時格納ワークと、一般役一時格納ワークと、内部当選フラグ格納ワークがあり、特別役に当選したゲームで該特別役の当選を示すデータを特別役一時格納ワーク一旦に書き込み、一般役に当選したゲームで該一般役の当選を示すデータを一般役一時格納ワークに一旦書き込んでいた。その後、特別役一時格納ワークのデータと一般役一時格納ワークのデータを内部当選フラグ格納ワークに書き込むものとしていた。
しかしながら、当選フラグを書き込むための方法及びそのためにRAM112に用意されたワークは、これに限るものではない。例えば、それぞれ1バイトで構成される特別役格納ワークと一般役格納ワークとを設け、特別役格納ワークのデータは、特別役に当選した後、該特別役に入賞するまで更新しないものとし、一般役格納ワークのデータは、1ゲーム毎に一般役の抽選結果に応じて更新するものとすることができる。この場合、特別役格納ワークと一般役格納ワークの2バイトで内部当選フラグを格納するための領域が構成されることとなる。
また、1バイトの内部当選フラグ格納ワークのみを内部当選フラグを格納するための領域として用意しておくこともできる。この場合、特別役の当選フラグを上位4ビットに、一般役の当選フラグを下位4ビットに格納するものとすると、上位4ビットのデータは、特別役に当選した後、該特別役に入賞するまで更新しないが、下位4ビットのデータは、1ゲーム毎に一般役の抽選結果に応じて更新するものとすることができる。上位4ビットのデータが特別役の当選を示しているときには、例えば、F0hとの論理積演算により下位4ビットを0にクリアした後、内部当選フラグ格納ワークに当該ゲームでの一般役の抽選結果に応じた値を加算(或いは、排他的論理和演算)して、再び内部当選フラグ格納ワークに書き込むものとすればよい。
上記の実施の形態では、乱数発生回路115から抽出した乱数の上位バイト全体を下位バイトで置換し、下位バイト全体を上位バイトで置換するという入れ替えを行っていた。これに対して、乱数発生回路115から抽出した乱数のビットのうちの特定のビットのデータを他のビットのデータ(但し、マスクされる第7、第15ビット以外)で置換するだけであってもよい。また、乱数発生回路115から抽出した乱数の値を、そのまま内部抽選用の乱数として取得するものとしてもよい。さらに、上記の実施の形態とは異なる方法により内部抽選用の乱数に加工するものとしてもよい。
図26は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの処理(ステップS501)の第1の変形例の説明図である。この第1の変形例でも、乱数発生回路115から抽出された乱数は、CPU111が有する16ビットのHLレジスタに格納されるものとなる。
乱数発生回路115から抽出された乱数がHLレジスタに格納されると、CPU111は、さらに内部のリフレッシュレジスタ111Rの値を加工用の乱数として抽出する。CPU111は、HLレジスタの上位バイトの値(上位カウンタ115cから抽出した値)にリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。HLレジスタの下位バイトの値(下位カウンタ115bから抽出した値)は、そのままにしておく。CPU111は、このときにHLレジスタに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
図27は、乱数発生回路115から抽出した乱数をCPU111がソフトウェアにより内部抽選用の乱数に加工するまでの処理(ステップS302)の第2の変形例の説明図である。この例でも、乱数発生回路115から抽出された乱数は、CPU111が有する16ビットのHLレジスタに格納されるものとなる。
乱数発生回路115から抽出された乱数がHLレジスタに格納されると、CPU111は、さらに内部のリフレッシュレジスタ111Rの値を加工用の乱数として抽出する。CPU111は、HLレジスタの上位バイトの値(上位カウンタ115cから抽出した値)にリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。また、HLレジスタの下位バイトの値(下位カウンタ115bから抽出した値)にもリフレッシュレジスタ111Rから抽出した加工用の乱数を加算する。CPU111は、このときにHLレジスタに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
以上説明した第1、第2の変形例では、リフレッシュレジスタ111Rの値を加工用の乱数として抽出し、これを乱数発生回路115から抽出した乱数の上位バイト(第2変形例では、さらに下位バイト)に加算して、乱数の加工を行うものとしている。ここで適用した乱数の加工には、少なくとも加工用の乱数を上位バイトに加算する処理を含んでいる。これにより、内部抽選用の乱数のバラツキを大きくすることができ、遊技者による狙い打ちを可能な限り防ぐことができる。
また、加工用の乱数をリフレッシュレジスタ111Rから抽出するものとしたことで、加工用の乱数を生成する手段として特別な構成が必要ない。しかも、リフレッシュレジスタ111Rの値は、CPU111の命令フェッチ毎に更新されるもので、その更新間隔は一定しないので、ランダム性の高い乱数を加工用の乱数として抽出することができる。そして、加工用の乱数のランダム性が高いことから、これを用いて生成される内部抽選用の乱数のランダム性も高くなる。
なお、上記第1、第2の変形例において、乱数発生回路115から抽出した乱数の上位バイト(及び下位バイト)にリフレッシュレジスタ111Rから抽出した値を加算していたが、リフレッシュレジスタ111R以外でハードウェアまたはソフトウェアにより周期的に更新される値を加算してもよい。また、リフレッシュレジスタ111Rから抽出した値(或いは、リフレッシュレジスタ111Rに代わるものの値)を加算するのではなく、減算や、論理和、論理積などの論理演算を行ってもよい。
また、上記の実施の形態で示した上位バイトと下位バイトとの入れ替えのようなビットの置換を、第1、第2の変形例に併用するものとしてもよい。上記第1、第2の変形例においても、乱数発生回路115からの乱数の抽出から加工を終了するまでの間は、HLレジスタの内容が書き換えられてしまうのを防ぐため、CPU111に対する割り込みが禁止されるものとなる。
また、第2の変形例においては、乱数発生回路115から抽出した乱数の上位バイトと下位バイトにそれぞれ加算する加工用の乱数を、リフレッシュレジスタ111Rから異なるタイミングで別々に抽出してもよい。上位バイトに加算する加工用の乱数を更新する手段と、下位バイトに加算する加工用の乱数を更新する手段とを別々に用意し、それぞれから上位バイト用、下位バイト用の加工用の乱数を抽出する手段を設けるものとしてもよい。この場合において、上位バイト用の加工用の乱数を更新する手段と下位バイト用の加工用の乱数を更新する手段の一方をリフレッシュレジスタ111Rによって構成するものとすることができる。
上記の実施の形態では、判定値数記憶領域は、2バイトの領域を用いて、それぞれの場合における判定値数を記憶するものとしていた。もっとも、一般的なスロットマシンでは、レギュラーボーナス(1)、ビッグボーナス(1)、或いはビッグボーナス(2)といった役の判定値数は、いずれの遊技状況においても255を超えるものが設定されることはあり得ない。このように255を超える判定値数を設定する必要がないものについては、1バイトの領域だけを用いて、判定値数を記憶するものとしてもよい。
上記の実施の形態では、判定値数は、設定値1〜6の全体に共通して記憶されているか、設定値1〜6のそれぞれに対して個別に記憶されているかであった。もっとも、設定値1〜6の全体に共通して判定値数が記憶されない(設定値についての共通フラグが設定されない)ものとして、例えば、設定値1〜3については判定値数が共通、設定値4〜6については判定値数が共通のものとすることもできる。
上記の実施の形態では、小役ゲームまたは通常の遊技状態においては、賭け数として3を設定することのみによりゲームを開始させることができた。これに対して、小役ゲームまたは通常の遊技状態においても、賭け数として1を設定してゲームを開始させることをできるようにしたり、さらには賭け数として2を設定してゲームを開始させることをできるようにしてもよい。
小役ゲーム、通常の遊技状態で賭け数として1または2が設定されていたときには、賭け数として3が設定されたときよりも内部抽選における小役の当選確率を低下させるともに、小役に入賞したときの払い出しメダル枚数を増加させることができる。また、小役ゲーム、通常の遊技状態において賭け数として1、2、または3のいずれも設定できるスロットマシンでは、判定値数は、設定値1〜6の全体に共通して記憶される役があるだけではく、賭け数1〜3の全体に共通して記憶される役があるものとしてもよい。この場合は、賭け数に応じても判定値数の記憶領域を小さくすることができ、さらに記憶容量の削減を図ることができる。
上記の実施の形態では、遊技状態がビッグボーナスにある場合において、JACINまたはレギュラーボーナス(2)に入賞することを条件として、ビッグボーナスの間においてレギュラーボーナスに制御するものとしていた。もっとも、ビッグボーナスにおける遊技状態をレギュラーボーナスに制御する条件はこれに限るものではなく、例えば、遊技状態がビッグボーナスにある場合において、スタートレバー11の操作時にRAM112にレギュラーボーナス中フラグが設定されていなければ、これを設定してレギュラーボーナスに制御するものとしてもよい。すなわち、ビッグボーナスにおいては、払出メダル枚数が465枚を越えるまで、レギュラーボーナスの遊技状態が繰り返して現れるものとしてもよい。
上記の実施の形態では、ゲーム終了時にRAM112の未使用領域112−6及び未使用スタック領域112−71を初期化する初期化4を毎ゲーム実行することで、RAM112の未使用領域112−6や未使用スタック領域112−71を1ゲーム毎に初期化していた。もっとも、少なくとも1ゲーム毎に1回以上RAM112の未使用領域112−6および/または未使用スタック領域112−71が初期化されるものであれば、RAM112の未使用領域112−6および/または未使用スタック領域112−71の初期化を行うタイミングは、1ゲーム中のどのタイミングであってもよい。例えば、ゲーム開始時や1ゲーム毎に必ず実行される処理の実行時にRAM112の未使用領域112−6および/または未使用スタック領域112−71の初期化を行うものとすることができる。
上記の実施の形態では、CPU111がRAM112の初期化を行う際には、ROM113の初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定するとともに、ポインタが設定された初期化アドレスから1バイトつつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行することで、初期化条件に応じたRAM112の領域を初期化していた。
これに対して、初期化1〜4において初期化される領域を連続するアドレス領域に設定するとともに、初期化テーブルには、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと、初期化1〜4の全てに共通する終了アドレスとを登録しておいてもよい。この場合、CPU111は、RAM112の初期化を行う際に初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスを取得し、開始アドレスにポインタを設定するとともに、ポインタが設定された初期化アドレスから1バイトつつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に、ポインタを進める処理を、初期化1〜4に共通の終了アドレスの領域がクリアされるまで実行するものとしてもよい。
なお、この場合においては、1バイトクリアする毎に、ポインタが示すアドレスが終了アドレスであるかを判定し、終了アドレスであれば初期化を終了させるようにしてもよい。もっとも、まず、初期化テーブルから取得した開始アドレスから共通の終了アドレスまでの初期化バイト数を計算して設定し、開始アドレスから1バイトクリアする毎に初期化バイト数を1減算するとともに、ポインタを1進める処理を、初期化バイト数が0になるまで実行し、初期化バイト数が0となった時点で終了アドレスの領域がクリアされたと判定して初期化を終了することが好ましい。これは、ポインタが示すアドレスと終了アドレスを1バイト毎に比較する処理を行うよりも、初期化バイト数が0か否かを判定する処理の方が処理効率が高いからである。
上記の実施の形態では、可変表示装置2は、外周部に複数の図柄を所定順に配した3つのリール3L、3C、3Rを備えるものとし、これらのリール3L、3C、3Rの回転駆動によって図柄を可変表示させるものとしていた。しかしながら、液晶表示装置などの表示装置上で仮想的に図柄を可変表示させるものを、上記のような可変表示装置2の代わりに用いてもよい。
上記の実施の形態では、賭け数の設定や入賞に伴う有価価値の付与に用いる遊技媒体としてメダルを適用したスロットマシンを例として説明した。しかしながら、本発明を具現化するスロットマシンは、パチンコ遊技機で用いられている遊技球を遊技媒体として適用したスロットマシン(いわゆるパロット)であってもよい。遊技球を遊技媒体として用いる場合は、例えば、メダル1枚分を遊技球5個分に対応させることができ、上記の実施の形態で賭け数として3を設定する場合は、15個の遊技球を用いて賭け数を設定するものに相当する。