<全体構成>
まず、図1を用いて、本実施例1に係るスロットマシン100の全体構成について説明する。なお、図1はスロットマシン100の外観斜視図を示したものである。
スロットマシン100は、略箱状の本体101と、この本体101の前面開口部に取り付けられた前面扉102とを有して構成されている。スロットマシン100の本体101の中央内部には、外周面に複数種類の図柄が所定コマ数だけ配置されたリールが3個(左リール110、中リール111、右リール112)収納され、スロットマシン100の内部で回転できるように構成されている。本実施例1において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形枠材に貼り付けられて各リール110〜112が構成されている。リール110〜112上の図柄は、遊技者から見ると、図柄表示窓113から縦方向に概ね3つ表示され、合計9つの図柄が見えるようになっている。そして、各リール110〜112を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。なお、本実施例1では、3個のリールをスロットマシン100の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
また、各々のリール110〜112の背面には、図柄表示窓113に表示される個々の図柄を照明するためのバックライト(図示省略)が配置されている。なお、このバックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。
入賞ライン表示ランプ120は、有効となる入賞ラインを示すランプである。有効となる入賞ラインは、スロットマシン100に投入されたメダルの数によって予め定まっている。5本の入賞ライン114のうち、例えば、メダルが1枚投入された場合、中段の水平入賞ラインが有効となり、メダルが2枚投入された場合、上段水平入賞ラインと下段水平入賞ラインが追加された3本が有効となり、メダルが3枚投入された場合、右下り入賞ラインと右上り入賞ラインが追加された5本が入賞ラインとして有効になる。なお、入賞ライン114の数については5本に限定されるものではない。
スタートランプ121は、リール110〜112が回転することができる状態にあることを遊技者に知らせるランプである。再遊技ランプ122は、前回の遊技において入賞役の一つである再遊技役に入賞した場合に、今回の遊技が再遊技可能であること(メダルの投入が不要であること)を遊技者に知らせるランプである。告知ランプ123は、内部抽選において、特定の入賞役(例えば、BB(ビッグボーナス)やRB(レギュラーボーナス)等のボーナス)に内部当選していることを遊技者に知らせるランプである。メダル投入ランプ124は、メダルの投入が可能であることを知らせるランプである。払出枚数表示器125は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。遊技回数表示器126は、メダル投入時のエラー表示や、ビッグボーナス遊技中(BB遊技中)の遊技回数、所定の入賞役の入賞回数等を表示するための表示器である。貯留枚数表示器127は、スロットマシン100に電子的に貯留されているメダルの枚数を表示するための表示器である。リールパネルランプ128は、演出用のランプである。
メダル投入ボタン130、131は、スロットマシン100に電子的に貯留されているメダルを所定の枚数分投入するためのボタンである。本実施例1においては、メダル投入ボタン130が押下される毎に1枚ずつ最大3枚まで投入され、メダル投入ボタン131が押下されると3枚投入されるようになっている。メダル投入口134は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、メダル投入ボタン130または131により電子的に投入することもできるし、メダル投入口134から実際のメダルを投入することもできる。精算ボタン132は、スロットマシン100に電子的に貯留されたメダル及びベットされたメダルを精算し、メダル払出口155よりメダル受皿156に排出するためのボタンである。メダル返却ボタン133は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。
スタートレバー135は、遊技の開始操作を行うためのレバー型のスイッチである。即ち、メダル投入口134に所望する枚数のメダルを投入して、スタートレバー135を操作すると、これを契機としてリール110〜112が回転し、遊技が開始される。ストップボタン137〜139は、スタートレバー135の操作によって回転を開始したリール110〜112に対する停止操作を行うためのボタンであり、各リール110〜112に対応して設けられている。そして、いずれかのストップボタン137〜139を操作すると対応するいずれかのリール110〜112が停止することになる。
ドアキー140は、スロットマシン100の前面扉102のロックを解除するためのキーを挿入する孔である。メダル払出口155は、メダルを払出するための払出口である。メダル受皿156は、メダル払出口155から払出されたメダルを溜めるための器である。なお、メダル受皿156は、本実施例1では発光可能な受皿を採用しており、以下受皿ランプと呼ぶこともある。
上部ランプ150、サイドランプ151、中央ランプ152、腰部ランプ153、下部ランプ154、受皿ランプ156は、遊技を盛り上げるための装飾用のランプである。演出装置157は、例えば開閉自在な扉(シャッター)163が前面に取り付けられた液晶表示装置を含み、この演出装置157には、例えば小役告知等の各種の情報が表示される。音孔160は、スロットマシン100内部に設けられているスピーカの音を外部に出力するための孔である。タイトルパネル162には、スロットマシン100を装飾するための図柄が描かれる。
図2はスロットマシン100の前面扉102を開放した状態を示した図である。
スロットマシン100の本体101内部に収容した各々のリール110〜112の近傍には、投光部と受光部からなる光学式のインデックスセンサ353〜355(図3参照)を設けており、このインデックスセンサ353〜355の投光部と受光部の間を、各リール110〜112に設けられた一定の長さの遮光片が通過するように構成している。スロットマシン100は、このインデックスセンサ353〜353の検出結果に基づいてリール110〜112上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン114上に表示されるようにリール110〜112を停止する。
また、メダル投入口134の裏側近傍には、メダルセレクタ170を配設している。このメダルセレクタ170は、メダル投入口134からメダルが正常に投入されたか否か、メダル投入口134から投入されるメダルが正規なメダルであるか否かなどを判断するための装置で、投光部と受光部からなる光学式の2つのメダルセンサ349、350(図3参照)を設けている。
また、本体101内部の下方には、ホッパー172を設けている。このホッパー172は、箱状のバケット172aに貯めているメダルをメダル払出口155から払出すための装置で、投光部と受光部からなる光学式の2つの払出しセンサ351、352(図3参照)を設けている。払出しセンサ351、352は、ホッパー172のメダル排出口近傍に設けてあり、スロットマシン100は、これら払出しセンサ351、352の各々の検出結果や、検出結果の組合せに基づいて、メダルの払い出しに異常があるか否かを判断する。
また、前面扉102の裏側右下方には、前面扉102を本体101に固定するための係止部102aを設けており、この係止部102aを係止して前面扉102をロックする本体101側のロック部材には、前面扉102が開放しているか閉鎖しているかを判断するためのドア開放検知センサ(図示省略)を設けている。
<制御部>
次に、図3を用いて、このスロットマシン100の制御部の回路構成について詳細に説明する。
スロットマシン100の制御部は、遊技の中枢部分を制御する主制御部300と、主制御部300より送信されたコマンドに応じて各種機器を制御する副制御部400と、演出装置157を制御する表示制御部500と、によって構成されている。
<主制御部>
まず、スロットマシン100の主制御部300について説明する。
1チップマイクロプロセッサ(以下、MainMPUと称す)310は、スロットマシン100における制御の中枢となるものであり、バス(アドレスバス、データバス、各種制御信号線)370を介して、周辺部との間で制御信号やデータの受渡しが行われる。なお、このMainMPU310の詳細な構成については後述する。
外部乱数発生器311は、乱数を発生するもので、複数のカウンタ、クロック発振器、分周器およびラッチ回路等で構成される。MainCPU310は、バス370を介して、外部乱数発生器311が発生させた乱数値を取得することが可能である。
また、MainCPU310には、入力インターフェース360およびバス370を介して、ストップボタン137〜139のいずれかが押された場合、どのストップボタンが押されたかを検知する左ストップボタンセンサ341、中ストップボタンセンサ342、および、右ストップボタンセンサ343と、スタートレバー135の操作を検知するスタートレバーセンサ344と、メダル投入ボタン130、131のいずれかが押下された場合、どのメダル投入ボタンが押されたかを検知する1枚投入ボタンセンサ345、3枚投入ボタンセンサ347と、精算ボタン132の押下に伴って動作する精算ボタンスイッチ348と、メダル投入口134から投入されたメダルを本体内部に導くメダル通路に配設され、メダル投入口134より投入されたメダルを検知する第1メダルセンサ(メダルセンサ1)349および第2メダルセンサ(メダルセンサ2)350と、メダルの払出しを検知する第1払出しセンサ(払出しセンサ1)351および第2払出しセンサ(払出しセンサ2)352と、左リール110、中リール111、右リール112の各リールの回転方向の図柄位置を検出するための左リールインデックスセンサ353、中リールインデックスセンサ354、および、右リールインデックスセンサ355がそれぞれ接続されている。
さらに、MainCPU310には、出力インターフェース332およびバス370を介して、左リール110、中リール111、右リール112の各リールの回転駆動を行うモータ(図示省略)を制御するための左リールモータ駆動部321、中リールモータ駆動部322、および、右リールモータ駆動部323と、メダル払出装置(いわゆるホッパー:図示省略)を制御するホッパー駆動部331と、遊技ランプ380(具体的には、入賞ライン表示ランプ120、スタートランプ121、再遊技ランプ122、告知ランプ123、メダル投入ランプ124等)と、7セグメント(SEG)表示器390(払出枚数表示器125、遊技回数表示器126、貯留枚数表示器127等)がそれぞれ接続されている。また、MainCPU310の出力インターフェース332は、副制御部400の入力インターフェイス430に接続されており、主制御部300は各種の主制御コマンドを副制御部400へ送信することが可能な構成となっている。
<副制御部>
次に、同図を用いて、スロットマシン100の副制御部400について説明する。
マイクロプロセッサ(以下、SubCPUと称す)410は、主制御部300から送信された各種の主制御コマンドを入力インターフェース430およびバス470を介して受信し、受信したコマンドの内容に応じて副制御部400全体を制御する。
ROM411は、副制御部400全体を制御するためのプログラムやデータ等を記憶する記憶手段の一つである。RAM412は、SubCPU410で処理されるプログラムのワークエリアを有し、可変データ等を記憶する記憶手段の一つである。
演出用発光表示部450は、上部ランプ150、サイドランプ151、中央ランプ152、腰部ランプ153、下部ランプ154、受け皿ランプ156をまとめて表したもので、出力インターフェース420およびバス470を介してSubCPU410に接続され、このSubCPU410の指示に従って点灯/点滅/消灯する。
楽音信号形成部460は、SubCPU410から受け渡された制御信号やデータに基づいて、楽音信号を形成して出力する。この楽音信号は、アンプ461で増幅された後、スピーカ(具体的には上部スピーカおよび中央スピーカ)462から音として出力される。また、SubCPU410は、出力インターフェース440を介して、各種制御データを表示制御部500へ送信する。
<表示制御部>
次に、同図を用いて、スロットマシン100の表示制御部500について説明する。
マイクロプロセッサ(以下、第2のSubCPUと称す)510は、副制御部400から送信された各種制御データを入力インターフェース530およびバス570を介して受信し、受信したコマンドの内容に応じて液晶表示装置(LCD)157を制御する。
ROM511は、表示制御部500全体を制御するためのプログラムやデータ等を記憶する記憶手段の一つである。VDP550は、第2のSubCPU510の指示に従って、出力インターフェース553を介して液晶表示装置157に表示データ等を送信する。なお、ROM552は、表示データ等を記憶する記憶手段の一つである。
<MPU>
図4は主制御部300のMainMPU310内部の構成を詳細に示した内部構成図である。MainMPU310は、制御の中枢であるCPUコア602を備えており、このCPUコア602には、バス604を介して、内蔵ROM606、内蔵RAM608、乱数発生回路610、乱数取込制御回路612、割込制御回路614、外部バス制御回路616、クロック回路618、タイマ回路620、リセット制御回路622などを接続している。
内蔵ROM606には、主制御部300全体を制御するためのユーザプログラムやデータ等を記憶する。内蔵RAM608には、各種の演算に用いるデータ等を一時的に記憶する。乱数発生回路610は、乱数値を発生させる2種類の乱数回路chA、chB(詳細は後述)を備えている。乱数取込制御回路612は、外部トリガ信号に基づいて乱数発生回路610が発生させた乱数値を内部レジスタに取り込むための制御を行う。割込制御回路614は、外部割り込み信号要求や内蔵周辺回路からの割込み要求を制御する回路である。外部バス制御回路616は、アドレスバス、データバス、および各制御信号の方向制御などを行うための回路である。クロック回路618は、外部から入力するクロック信号を分周してCPUコア602や内部の各回路に供給するための回路である。タイマ回路620は、各種ハードウェアタイマによる時間計測などを行うための回路である。リセット制御回路622は、システムリセット入力信号XSRSTなどに基づいて各種の初期化などを行うための回路である。
図5はMainMPU310の端子配置を示した端子配置図である。MPU310は、アドレス入出力端子(アドレスバス)A0〜A15と、データ入出力端子(データバス)D0〜D7と、制御信号端子(リード信号端子XRD、ライト信号端子XWR、メモリリクエスト端子XMREQ、IOリクエスト端子XIORQ)と、システムリセット入力端子XSRSTと、プログラムモード設定入力端子PRGと、ベリファイ結果出力端子VRYと、汎用入力端子P0〜P4と、システムクロック入力端子CLKなどを備えている。
図6はMainMPU310の乱数発生回路610が備える乱数回路chAおよび乱数回路chB内部の構成を詳細に示した内部構成図である。なお、乱数回路chBの内部構成は、乱数回路chAと同一であるため、図示は省略する。
乱数回路chAおよびchBは、後述する乱数使用設定で外部信号入力(本実施例では汎用入力端子P0〜P3からの信号入力)に基づく乱数値の取込を設定した場合に、その外部信号の入力を禁止または許可するための外部ラッチ許可レジスタと、後述する乱数使用設定でソフトウェアに基づく乱数値の取込を設定した場合に、乱数値を取り込むための乱数値取込レジスタと、取り込まれた乱数値を格納するための乱数値レジスタ1〜8と、乱数値レジスタ1〜8に乱数値が取り込まれたことを示すためのラッチフラグレジスタと、乱数列を変更するための乱数列変更レジスタと、を有して構成しており、異なった乱数列を持つ2種類の16ビット乱数値を発生させることが可能である。また、内蔵ROM606のプログラム管理エリア(詳細は後述)に設けた乱数使用設定、乱数初期設定、乱数取込設定の内容を変更することによって、乱数回路chAおよびchBの使用/未使用、初期値・乱数列変更方法の選択、乱数値の更新周期、乱数値の取り込み方法、割込条件などを変更することが可能である。
<内蔵ROMのプログラム管理エリア>
図7は内蔵ROM606のプログラム管理エリアの構成を示した図である。内蔵ROM606には、プログラムデータエリアとプログラム管理エリアの2つのエリアを割り当てている。プログラムデータエリアはユーザプログラムを格納するためのエリアである。プログラム管理エリアはCPUコア602がユーザプログラムを実行するのに必要な情報を格納するためのエリアであり、上述の乱数使用設定、乱数初期設定、乱数値取込設定のほか、後述するバス出力設定などを割り当てている。以下、乱数使用設定、乱数初期設定、乱数値取込設定、およびバス出力設定について説明する。
<乱数使用設定>
図8は乱数使用設定の設定データを示した図である。この乱数使用設定は、ソフトウェア(プログラムの実行)に基づいて乱数値を取り込むか、MainMPU310に入力する外部信号入力に基づいて乱数値を取り込むかを選択するためのものであり、本実施例では、後述する電源ON処理で乱数使用設定を0に設定し、ソフトウェアに基づく乱数値の取込を選択する。
<乱数初期設定>
図9は乱数初期設定の設定データを示した図である。この乱数初期設定は、乱数列の変更方法の選択、乱数値の初期値の選択、乱数値の更新周期の選択を行うためのものであり、本実施例では、後述する電源ON処理で乱数初期設定を22H(Hは16進数であることを示す)に設定する(より具体的には、乱数列の変更方法に対応する2ビットには「00(変更無し)」を設定し、乱数値の初期値に対応する1ビットには「1(IDナンバーに基づいた値)」を設定し、乱数値の更新周期に対応する1ビットには「0(内部システムクロック)」を設定する)。なお、「IDナンバー」とは、個々のMainMPU310に予め付与され、個々のMainMPUを特定することが可能な固有の数値であり、例えば、個々のMainMPU310に予め付与されたシリアル番号などが該当する。また、「IDナンバーに基づいた値」には、IDナンバーそのものの他、IDナンバーに加工を施した値(例えば、IDナンバーの全てのビットを反転した値、IDナンバーに所定の演算を施した値など)が含まれる。
<乱数取込設定>
図10は乱数取込設定の設定データを示した図である。この乱数取込設定は、上述の乱数使用設定でソフトウェアに基づく乱数値の取り込みを選択した場合に有効となる設定であり、書込みのみが可能である。本実施例では、取得する乱数の種類(乱数回路chAの乱数値、乱数回路chBの乱数値)と、乱数を取り込む乱数値レジスタ1〜8に基づいて、乱数取込設定の対応ビットに1を書き込む。例えば、乱数回路chAで発生させた乱数値を乱数値レジスタ1に取り込みたい場合には、乱数取込設定に80Hを設定する。
<バス出力設定>
図11はバス出力設定1〜3の設定データを示した図である。このバス出力設定1〜3は、CPUコア602が内蔵ROM606、内蔵RAM608、内部レジスタなどの内部回路にアクセスする際に、外部バス制御回路616のアドレス入出力端子A0〜A15やデータ入出力端子D0〜D7から、アドレス信号やデータ信号を外部に出力するか否かを選択するためのものである。本実施例では、後述する電源ON処理でバス出力設定1〜3を全て00Hに設定し、CPUコア602が内部回路にアクセスする際に、外部バス制御回路616のアドレス入出力端子A0〜A15およびデータ入出力端子D0〜D7から、アドレス信号やデータ信号を外部に出力しないように設定する。なお、それぞれ個別にバスの出力を設定していたが、すべてのバスの出力設定を意味するビットを設定する設定データにしてもよい。
<MPUの動作モード>
図12はMainMPU310の動作モードの遷移図である。MainMPU310の動作モードには、セキュリティモードと、ユーザーモードと、プログラムモードの3種類がある。
セキュリティモードは、内蔵ROM606のプログラムデータエリアに記憶されたユーザプログラムが所定の条件を満たすか否か(本実施例では、ユーザプログラムを基に計算された認証コードが正しいか否か)を確認するセキュリティチェックを行った後に、内蔵ROM606のプログラム管理エリアに記憶された各種設定を用いてユーザプログラムを実行する環境設定を行うモードである。このセキュリティモードは、セキュリティチェックで異常が発見されなかった場合(本実施例では、認証コードが正しかった場合)にユーザーモードに移行し、セキュリティチェックで異常が発見された場合(本実施例では、認証コードが誤っていた場合)に動作を停止する。ユーザーモードは、内蔵ROM606のプログラムデータエリアに記憶したユーザプログラムを実行するモードである。プログラムモードは、MainMPU310外部から内蔵ROM606のプログラムデータエリアにユーザプログラムを書き込むためのモードである。なお、本実施例のMainMPU310には、複数回の読み書きが可能な記憶手段(例えば、EEPROM、UV−EPROM)を内蔵する開発用マイクロコンピュータと、1回の書き込みが可能な記憶手段(例えば、ワンタイムPROM、マスクROM)を内蔵する量産用マイクロコンピュータの両者が含まれる。
MainMPU310は、システムリセット入力端子XSRSTにローレベルの信号が入力してシステムリセットされた後に、プログラムモード設定入力端子PRGにハイレベルの信号が入力されていればプログラムモードに移行し、プログラムモード設定入力端子PRGにローレベルの信号が入力されていればセキュリティモードに移行する。そして、セキュリティモードのセキュリティチェックで異常が発見されなかった場合にユーザーモードに移行し、セキュリティチェックで異常が発見された場合に動作を停止する。なお、プログラムモードおよびユーザモードは、再びシステムリセットがされるまで他のモードに遷移することはない。
<入賞役の種類>
次に、スロットマシン100の入賞役の種類について説明する。なお、入賞役の種類は、本実施例で示す入賞役に限定されるものではなく、任意に採用できることは言うまでもない。
MainMPU310の内蔵ROM606には、各々の入賞役の図柄抽選データからなる入賞役抽選テーブルが予め記憶されている。図柄抽選データは、所定の遊技回数における各入賞役の出現回数を示すものである。実際の各入賞役の内部当選確率は、各図柄抽選データの数値を、入賞役の内部抽選時に取得される乱数値の範囲の大きさ(例えば65536)で除した値となる。乱数値は予めいくつかの数値範囲に分割され、その各数値範囲に各入賞役やハズレが対応付けられる。なお、図柄抽選データは、設定1〜設定6まで存在し、遊技店の係員等はいずれかを任意に選択し、設定することができる。
例えば、通常遊技の入賞役には、ビッグボーナス(BB)と、レギュラーボーナス(RB)と、再遊技(リプレイ)と、小役がある。ビッグボーナス(BB)は、入賞により特別遊技であるビッグボーナス遊技(BB遊技)が開始される特別役(作動役)である。レギュラーボーナス(RB)は、入賞によりレギュラーボーナス遊技(RB遊技)が開始される特殊役(作動役)である。再遊技(リプレイ)は、入賞により、次回の遊技でメダルの投入を行うことなく遊技を行うことができる入賞役(作動役)であり、メダルの払出は行わない。小役は、入賞により所定数のメダルが払い出される入賞役である。
<遊技状態の種類>
次に、スロットマシン100の遊技状態の種類について説明する。
スロットマシン100の遊技状態は、通常遊技と、BB遊技と、RB遊技と、に大別される。BB遊技の内容は、複数種類考えられるが、本実施例では予め定めたメダル数を獲得した場合(例えば、入賞により獲得したメダル数が465枚に達した場合)に終了する遊技である。また、RB遊技の内容は、複数種類考えられるが、本実施例では、予め定めた回数(本実施例では12回)の遊技を行うか、あるいは、所定の役に予め定めた回数(本実施例では8回)入賞するかのいずれかの条件が成立することを終了条件とする遊技である。
<電源ON処理>
次に、図13を用いて、主制御部300の電源ON処理について説明する。なお、同図は電源ON処理の流れを示したフローチャートである。
主制御部300のMPU301は、図示しない電源供給部から電源が供給され、システムリセット入力端子XSRSTにローレベルの信号が入力してシステムリセットされ、プログラムモード設定入力端子PRGにローレベルの信号が入力されている場合にはセキュリティモードに移行してステップS101以降の処理を実行する。一方、システムリセット後にプログラムモード設定入力端子PRGにハイレベルの信号が入力されている場合にはプログラムモードに移行してステップS150のプログラムモード処理(詳細は後述)を実行する。
セキュリティモードのステップS101ではセキュリティチェックを行い(本実施例では、ユーザプログラムを基に計算された認証コードが正しいか否かの判定を行い)、セキュリティチェックで異常が発見されなかった場合にはユーザモードに移行し(ステップS102に移行し)、セキュリティチェックで異常が発見された場合には動作を停止する。
ステップS102では、ハードウェアセットアップ処理を行う。このハードウェアセットアップ処理では、上述のバス出力設定1〜3に0を設定し、CPUコア602が内部回路にアクセスする際に、外部バス制御回路616のアドレス入出力端子A0〜A15およびデータ入出力端子D0〜D7から、アドレス信号やデータ信号を外部に出力しないように設定する。
図14はMainMPU310の入出力端子に入出力する信号の一例を示したタイムチャートである。この例に示す信号は、上から順番に、システムクロック入力端子CLKに入力するクロック信号と、システムリセット入力端子XSRSTに入力するリセット信号と、プログラムモード設定入力端子PRGに入力するプログラムモード設定入力信号と、アドレス入出力端子A0〜A15から出力するアドレス信号と、IOリクエスト信号端子XIORQから出力するIOリクエスト信号と、データ入出力端子D0〜D7から出力するデータ信号である。
本実施例では、電源ON処理のステップS102のハードウェアセットアップ処理においてバス出力設定1〜3に0を設定している。このため、ステップS102以降(セキュリティチェック後)にCPUコア602が内部回路にアクセスする際にはアドレス入出力端子A0〜A15やデータ入出力端子D0〜D7から信号を外部に出力することはないが、MainMPU310外部の周辺回路(例えば、上記図3に示す各種センサ、各種駆動部、各種ランプなど)にアクセスする際にはIOリクエスト端子XIORQをアクティブレベル(本実施例ではローレベル)に駆動するとともにアドレス入出力端子A0〜A15やデータ入出力端子D0〜D7からアドレス信号やデータ信号を外部に出力することで周辺回路にアクセスするように構成している。
図13に戻って、ステップS103では、各種割り込み要求信号の条件設定や割り込みマスクの解除など、割り込みモードの設定を行う。
ステップS104では、MainMPU310内部の乱数発生回路610の初期値設定処理(詳細は後述)を行い、ステップS105では、その他の初期設定処理を行った後、後述する主制御部メイン処理に移行する。
<プログラムモード処理>
次に、図15を用いて、上述のプログラムモード処理(ステップS150)について説明する。なお、同図はプログラムモード処理の流れを示したフローチャートである。
ステップS151では、アドレス入出力端子A0〜A15およびデータ入出力端子D0〜D7に相互に通信可能に接続した外部装置(本実施例ではROMライタ)から、ユーザプログラムの書き込み指令があったか否かを確認する。そして、外部装置からユーザプログラムの書き込み指令があった場合にはステップS152に進み、書き込み指令がなかった場合にはステップS154に進む。
ステップS152では、ユーザプログラムの書き込み処理を行う。この書き込み処理では、外部装置から受信したユーザプログラムを内蔵ROM606のプログラムデータエリアに順次記憶する。
ステップS153では、ユーザプログラムの書き込みが終了したか否かを判定し、書き込みが終了した場合にはステップS154に進み、書き込みが終了していない場合にはステップS152に戻ってユーザプログラムの書き込みを継続する。
ステップS154では、外部装置からユーザプログラムのベリファイ指令があったか否かを確認する。そして、外部装置からユーザプログラムのベリファイ指令があった場合にはステップS155に進み、ベリファイ指令がなかった場合には処理を終了する。
ステップS155では、ユーザプログラムのベリファイ処理(詳細は後述)を行った後、処理を終了する。
<ベリファイ処理>
次に、図16を用いて、上述のベリファイ処理(ステップS155)について説明する。なお、同図はベリファイ処理の流れを示したフローチャートである。
ステップS160では、外部装置からユーザプログラムの一部を受信したか否かを判定し、ユーザプログラムの一部を受信した場合にはステップS161に進み、ユーザプログラムの一部を受信していない場合にはユーザプログラムの一部を受信するのを待つ。
ステップS161では、ステップS160で受信したユーザプログラムの一部を、内蔵RAM608に設けた所定容量(本実施例では128バイト)のベリファイ用記憶領域に記憶する。
ステップS162では、ベリファイ記憶領域がユーザプログラムで一杯になったか否かを判定し、ベリファイ記憶領域がユーザプログラムで一杯になった場合にはステップS164に進み、そうでない場合にはステップS163に進む。
ステップS163では、全てのユーザプログラムの受信が終了したか否かを判定し、全てのユーザプログラムの受信が終了した場合にはステップS164に進み、そうでない場合にはユーザプログラムの受信を継続すべくステップS160に戻る。
ステップS164では、ステップS161で内蔵RAM608のベリファイ用記憶領域に記憶したユーザプログラムと、内蔵ROM606に記憶したユーザプログラムの対応部分を比較する。なお、本実施例では、上述の通り、内蔵ROM606または内蔵RAM608のアクセス時にはアドレス入出力端子A0〜A15やデータ入出力端子D0〜D7から信号を外部に出力することがないため、このステップS164のユーザプログラムの比較処理においてもアドレス入出力端子A0〜A15やデータ入出力端子D0〜D7から信号を外部に出力することはない。
ステップS165では、ステップS164で比較した2つのユーザプログラムが一致するか否かを判定し、一致する場合にはステップS166に進み、一致しない場合にはステップS167に進む。
ステップS166では、全てのユーザプログラムの比較が終了したか否かを判定し、比較が終了した場合にはステップS168に進み、比較が終了していない場合にはベリファイ処理を継続すべくステップS160に戻る。
ステップS167では、外部装置から受信したユーザプログラムと、内蔵ROM606に書き込まれたユーザプログラムが一致しなかった旨を外部に報知するためにベリファイ結果出力端子VRYからローレベルの信号を出力して処理を終了する。一方、ステップS168では、外部装置から受信したユーザプログラムと、内蔵ROM606に書き込まれたユーザプログラムが一致した旨を外部に報知するためにベリファイ結果出力端子VRYからハイレベルの信号を出力して処理を終了する。
なお、本実施例では、ベリファイの結果を報知するための専用出力端子(ベリファイ結果出力端子)をMainMPU310に設けたが、汎用の出力端子を用いてベリファイの結果を外部に出力するように構成してもよい。また、ユーザープログラムの一部をベリファイ用記憶領域に格納して内蔵ROMと比較を行う例を示したが、ユーザープログラムの全てをベリファイ用記憶領域に格納し、内蔵ROMと比較を行ってプログラムが一致するか否かの判定を行ってもよく、また、ベリファイ用記憶領域に一旦格納した後に別領域の判定領域に転送し、その間、次の比較判定に合わせてベリファイ用記憶領域にユーザープログラムの一部を格納し、転送しつつ、比較判定を行ってもよい。
<乱数発生回路の初期値設定処理>
次に、図17(a)を用いて、MainMPU301内部の乱数発生回路610の初期値設定処理について説明する。なお、同図は乱数発生回路の初期値設定処理の流れを示したフローチャートである。
ステップS201では、乱数発生回路610の乱数回路chAのchA乱数初期値設定(詳細は後述)を行い、ステップS202では、乱数発生回路610の乱数回路chBのchB乱数初期値設定(詳細は後述)を行う。
<chA乱数初期値設定処理>
次に、図17(b)を用いて、chA乱数初期値設定処理について説明する。なお、同図はchA乱数初期値設定処理の流れを示したフローチャートである。
ステップS301では、上述の乱数初期設定の設定データを参照し、ステップS302では、IDナンバーに基づいた値を乱数の初期値に設定するか否か、すなわち、ステップS301で参照した乱数初期設定の設定データのビット1を1に設定しているか否かを判断する。そして、IDナンバーに基づいた値を乱数の初期値に設定する場合(乱数初期設定の設定データのビット1を1に設定している場合)には、ステップS303においてIDナンバーに基づいた値(この例ではIDナンバーそのもの)をchAの初期値に設定し、IDナンバーに基づいた値を乱数の初期値に設定しない場合(乱数初期設定の設定データのビット1を0に設定している場合)には、ステップS304において固定値(本実施例では0001H)をchAの初期値に設定する。
ステップS305では、その他の設定処理を行った後、処理を終了する。
<chB乱数初期値設定処理>
次に、図17(c)を用いて、chB乱数初期値設定処理について説明する。なお、同図はchB乱数初期値設定処理の流れを示したフローチャートである。
ステップS401では、上述の乱数初期設定の設定データを参照し、ステップS402では、IDナンバーに基づいた値を乱数の初期値に設定するか否か、すなわち、ステップS401で参照した乱数初期設定の設定データのビット5を1に設定しているか否かを判断する。そして、IDナンバーに基づいた値を乱数の初期値に設定する場合(乱数初期設定の設定データのビット5を1に設定している場合)には、ステップS403においてIDナンバーに基づいた値を反転した値(例えば、IDナンバーが8888Hの場合には7777H)をchAの初期値に設定し、IDナンバーに基づいた値を乱数の初期値に設定しない場合(乱数初期設定の設定データのビット5を0に設定している場合)には、ステップS404において固定値(本実施例では0001H)をchAの初期値に設定する。
ステップS405では、上記ステップS303(またはS304)およびステップS403(またはS404)で設定した値を乱数値の初期値に設定し、ステップS406では、その他の設定処理を行った後、処理を終了する。
なお、電源復帰からの初期値の設定は、主制御部300のMainCPU310固有のIDナンバーに基づいた値を用いて初期値を設定し、それ以降の電源断が生じるまでの初期値の更新設定はRレジスタの値を用いて更新設定する。これにより、強制的に電源をOFFさせ、主制御部300のMainCPU310の固定的な初期値設定により特定の値(特定の値は、大当たり、ボーナス、特典を付与する条件となる特定の役などに対応)を狙い打ちすることが可能な不正行為、いわゆるリセットゴトの対策になる。さらに、そのリセットゴトの対策として、IDナンバーに基づいた値を初期値に設定する際に、その前に特定の遅延処理を行うことによって、精度を高めることも可能である。例えば、遅延処理の内容として、電源ONから初期値設定までに、一定時間経過後、内部的にリセットを発生させ、その間は待機(ウェイト)させて、プログラムをスタートさせないようにしてもよい。このような構成にすれば、さらに特定の値を狙い打ちすることが困難となり、リセットゴトに対する精度を高めることができる。また、内部的にリセットを発生させた後に内部の乱数発生回路のいずれか一方の乱数発生のスタートを所定の契機で行ってもよく、一方の乱数発生と他方の乱数発生のスタート契機を異ならせてもよい。ここで、所定の契機はプログラムにより予め定めてもよく、ストップボタンなどの任意の操作部の入力を契機としたタイミングでもよい。また、外部の乱数発生回路を使用する場合には、これら上述のように初期値を設定した後は、その初期値設定のために使用した、乱数回路の乱数発生を停止させてもよい。このような構成にすることで、電源ON時の初期値設定のためにのみ使用する乱数回路を以後必要のない場合には、乱数発生を停止させることで、不要な処理や電気消費がなくて済む。
<主制御部メイン処理>
次に、図18を用いて、主制御部300のメイン処理について説明する。なお、同図は主制御部メイン処理の流れを示したフローチャートである。
遊技の基本的制御は、主制御部300のMainCPU310が中心になって行い、電源断等を検知しないかぎり、MainCPU310が同図の主制御部メイン処理を繰り返し実行する。
スロットマシン100に電源が投入されると、まず、各種の初期化処理が実行され、その後、主制御部メイン処理のステップS501では、メダル投入に関する処理を行う。ここでは、メダルの投入の有無をチェックし、投入されたメダルの枚数に応じて入賞ライン表示ランプ120を点灯させる。なお、前回の遊技で再遊技に入賞した場合はメダルの投入が不要である。
ステップS502では、遊技のスタート操作に関する処理を行う。ここでは、スタートレバー135が操作されたか否かのチェックを行い、スタート操作されたと判断した場合は、投入されたメダル枚数を確定する。
ステップS503では、有効な入賞ライン114を確定する。
ステップS504では、乱数発生回路610の乱数回路chA、乱数回路chB、および外部乱数発生回路311でそれぞれ発生させた乱数値(以下、各々の乱数値を「内部chA乱数値」、「内部chB乱数値」、「外部乱数値」と称する場合がある)を取得する。また、取得した内部chA乱数値、内部chB乱数値、外部乱数値を含む乱数値コマンドを副制御部400に送信する。
ステップS505では、ステップS504で取得した乱数値(本実施例では内部chA乱数値)と、内蔵ROM606に格納されている入賞役抽選テーブルを用いて、入賞役の内部抽選を行う。なお、本実施例では、内部chA乱数値を用いて入賞役の内部抽選を行う例を示したが、本発明はこれに限定されず、例えば、内部chA乱数値、内部chB乱数値、および外部乱数値の1または複数を用いて入賞役の内部抽選を行ってもよい。また、内部chA乱数値、内部chB乱数値、および外部乱数値の1または複数を用いて演算を行い、その演算結果を用いて入賞役の内部抽選を行ってもよい。さらに、ステップS504で取得した乱数値は、入賞役の内部抽選のほかにも、リール停止制御テーブルを選択するときの抽選や、後述する演出の抽選などに使用してもよい。
ステップS506では、リール回転開始処理により、全リール110〜112の回転を開始させる。この際、ステップS505の内部抽選結果等に基づき、停止位置データ選択テーブルを参照し、いずれか一つのリール停止制御テーブルを選択する。
ステップS507では、リール停止制御処理により、押されたストップボタン137〜139に対応するリール110〜112の回転を停止させる。この際、各リール110〜112を、ステップS506で選択したリール停止制御テーブルに基づいて停止させる。
ステップS508では、ストップボタン137〜139が押されることによって停止した図柄の入賞判定を行う。ここでは、有効化された入賞ライン114上に、内部当選した入賞役またはフラグ持越し中の入賞役に対応する入賞図柄組合せが揃った(表示された)場合にその入賞役に入賞したと判定する。
ステップS509では、メダル払出処理を行う。このメダル払出処理では、払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを払い出す。
ステップS510では、遊技状態制御処理を行う。この遊技状態制御処理では、遊技状態を移行するための制御が行われ、例えば、BB入賞の場合に次回からBB遊技を開始できるよう準備し、それらの最終遊技では、次回から通常遊技が開始できるよう準備する。
以上により1遊技が終了し、以降、主制御部メイン処理を繰り返すことにより遊技が進行することになる。
<副制御部メイン処理>
次に、図19(a)を用いて、副制御部400のメイン処理について説明する。なお、同図は副制御部メイン処理の流れを示すフローチャートである。
ステップS601では、各種の初期化を行い、ステップS602では、主制御部300からのコマンドを受信したか否かを判定する。そして、主制御部300から何らかのコマンドを受信した場合はステップS603に進み、コマンドを受信していない場合はステップS602の判定を繰り返し実行し、主制御部300からのコマンド受信待ちとなる。
ステップS603では、主制御部300から受信したコマンドを解析し、ステップS604では、演出処理(詳細は後述する)を行う。
副制御部400のSubCPU410は、以上の処理を、電源断等を検知しないかぎり繰り返し実行する。
<表示制御部割り込み処理>
次に、図19(b)を用いて、表示制御部500の割り込み処理について説明する。なお、同図は表示制御部割り込み処理の流れを示すフローチャートである。
ステップS701では、副制御部400からのコマンドを受信したか否かを判定する。そして、副制御部400から何らかのコマンドを受信した場合はステップS702に進み、コマンドを受信していない場合は処理を終了する。また、ステップS702では、副制御部400から受信したコマンドをRAMのコマンド格納領域に格納する。
<表示制御部メイン処理>
次に、図19(c)を用いて、表示制御部500のメイン処理について説明する。なお、同図は表示制御部メイン処理の流れを示すフローチャートである。
ステップS801では、上記コマンド格納領域の内容を確認し、副制御部400からコマンドを受信したか否かを判定する。そして、副制御部400から何らかのコマンドを受信した場合はステップS802に進み、コマンドを受信していない場合はステップS801の判定を繰り返し実行し、コマンド受信待ちとなる。
ステップS802では、副制御部400から受信したコマンドを解析し、ステップS803では、受信したコマンドの内容に従って、演出データを設定する。
表示制御部500の第2のSubCPU510は、以上の処理を、電源断等を検知しないかぎり繰り返し実行する。
<演出処理>
次に、図20を用いて、上記副制御部メイン処理における演出処理(ステップS604)について説明する。なお、同図は演出処理の流れを示したフローチャートである。
ステップS901では、主制御部300から乱数値コマンドを受信して乱数値(内部chA乱数値、内部chB乱数値、外部乱数値)を取得したか否かを判定し、乱数値を取得した場合にはステップS902に進み、乱数値を取得していない場合にはステップS906に進んで、その他の処理を行う。
ステップS902では、副制御部400が生成する演出用抽選カウンタ(ソフトウェア乱数値)をRAM412の所定記憶領域から取得する。なお、演出用抽選カウンタは、SubCPU410が備えるハードウェアタイマを用いて数値を定期的にカウントすることによって生成してもよいし、RAM412に設けたカウンタを副制御部メイン処理においてカウントすることによって生成してもよい。
ステップS903では、演算加工処理を行う。この演算加工処理では、ステップS901で取得した乱数値のうちの内部chB乱数値と、ステップS902で取得した演出用抽選カウンタを加算して、その加算結果を演出用乱数値としてRAM412の所定記憶領域に記憶する。なお、本実施例では、内部chB乱数値と演出用抽選カウンタ(ソフトウェア乱数値)を加算して演出用乱数値を生成する例を示したが、本発明はこれに限定されず、例えば、減算、積算など、その他の演算によって演出用乱数値を生成してもよい。また、内部chA乱数値、内部chB乱数値、外部乱数値、および演出用抽選カウンタの1または複数を用いて演出用乱数値を生成してもよい。
ステップS904では、ステップS903で生成した演出乱数値を用いて、複数種類の演出の中から1つの演出を選択する抽選を行う。そして、抽選結果を示唆する演出を選択した場合にはステップS905において、LCD157を用いて抽選結果を示唆する告知演出を行い、抽選結果を示唆する演出を選択しなかった場合にはステップS906において、その他の処理を行う。
以上説明したように、本実施例に係るスロットマシン100は、乱数値を発生させる乱数値発生手段(本実施例では乱数発生回路610の乱数回路chA、chB)と、乱数値発生手段が発生させた乱数値(本実施例では内部chA乱数値や内部chB乱数値)を用いて遊技に関する制御を行う遊技制御手段(本実施例ではMainMPU)310と、を備えた遊技台において、乱数値発生手段は、遊技制御手段310に付与された固有の情報(本実施例ではMainMPU310のIDナンバー)に基づいた値を、乱数値として設定可能に構成されていることを特徴とする、遊技台である。
本実施例に係るスロットマシン100によれば、遊技制御手段毎に異なる固有の情報に基づいて乱数値を生成させることができ、遊技で用いられる乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を未然に防止することができる。
また、乱数値発生手段は、遊技制御手段310に付与された固有の情報に基づいた値を、乱数値の初期値として設定可能に構成されていれば、固定の初期値を用いる場合に比べて乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、乱数値発生手段は、遊技制御手段310に内蔵された内部乱数値発生手段または/および遊技制御手段310とは別体の外部乱数値発生手段(本実施例では外部乱数発生回路)311によって構成されていれば、より一層、乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、内部乱数値発生手段が発生させる第1の乱数値(本実施例では内部chA乱数値)を用いて第1の制御(本実施例では入賞役の内部抽選)を行い、外部乱数値発生手段311が発生させる第2の乱数値(本実施例では外部乱数値)を用いて第1の制御とは異なる第2の制御(例えばリール停止制御テーブルを選択する抽選)を行えば、第1の制御および第2の制御に用いられる乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、複数の情報の中から1または複数の情報を抽選によって選択する抽選手段(本実施例では、入賞役の内部抽選、リール停止制御テーブルを選択する抽選、演出の抽選など)を備え、抽選手段は、内部乱数値発生手段が発生させる第1の乱数値(本実施例では内部chA乱数値や内部chB乱数値)または/および外部乱数値発生手段311が発生させる第2の乱数値(本実施例では外部乱数値)を用いて抽選を行えば、遊技の抽選に用いられる乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、抽選手段は、予め定めた複数種類の役の内部当選の当否を抽選によって決定する役抽選手段(本実施例では入賞役内部抽選処理)を含めば、役の内部抽選に用いられる乱数値にランダム性を持たせることが可能で、不正に役の大当たりを狙うような不正行為を防止することができる場合がある。
また、内部乱数値発生手段が発生させる第1の乱数値を取得した後に内部乱数値発生手段による乱数値の発生を停止させ、その後は外部乱数値発生手段が発生させる第2の乱数値を用いて遊技に関する制御を行えば、制御負担を軽減することができる上に、乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、遊技制御手段310には、複数(本実施例では2つ)の内部乱数値発生手段が内蔵され、複数の内部乱数値発生手段は、遊技制御手段310に付与された固有の情報に基づいた異なる値(例えば、MainMPU310のシリアル番号と製造番号)を、各々の乱数値として設定可能に構成されていれば、乱数値を狙った不正行為をより確実に防止することができる場合がある。
また、複数の内部乱数値発生手段は、遊技制御手段310に付与された固有の情報に基づいた異なる値を、各々の乱数値の初期値として設定可能に構成されていれば、固定の初期値を用いる場合に比べて乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、複数の内部乱数値発生手段は、少なくとも、遊技制御手段に付与された固有の情報からなる数値(例えば、IDナンバー)と、固有の情報からなる数値に基づいて生成した数値(例えば、IDナンバーの全てのビットを反転した値)を、各々の乱数値として設定可能に構成されていれば、より一層、ランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、複数の内部乱数値発生手段は、少なくとも、遊技制御手段に付与された固有の情報からなる数値と、固有の情報からなる数値に基づいて生成した数値を、各々の乱数値の初期値として設定可能に構成されていれば、固定の初期値を用いる場合に比べて乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、複数の内部乱数値発生手段のうちの一の内部乱数値発生手段(本実施例では乱数回路chA)が発生させた乱数値を用いて第3の制御(本実施例では入賞役の抽選)を行い、複数の内部乱数値発生手段のうちの他の乱数値発生手段(本実施例では乱数回路chB)が発生させた乱数値を用いて第3の制御とは異なる第4の制御(本実施例では演出の抽選)を行えば、第3の制御および第4の制御に用いられる乱数値にランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、複数の内部乱数値発生手段のうちの一の内部乱数値発生手段が発生させた乱数値または/および他の内部乱数値発生手段が発生させた乱数値を用いて遊技に関する制御を行えば、より一層、ランダム性を持たせることが可能で、乱数値を狙った不正行為を防止することができる場合がある。
また、一の内部乱数値発生手段が発生させた乱数値および他の内部乱数値発生手段が発生させた乱数値を用いて演算を行い、その演算結果を用いて遊技に関する制御を行えば、さらに予測不可能な乱数値を生成することができ、乱数値を狙った不正行為を防止することができる場合がある。
なお、上記実施例では、MainMPU310に乱数発生回路を内蔵したが、SubCPU410や第2のSubCPU510に内蔵してもよい。また、外部乱数回路を主制御部300に設けたが、副制御部400や表示制御部500に設けてもよい。
また、本発明に係る遊技台の構成は、上記実施例に係るスロットマシン100の構成に限定されるものではない。例えば、図21はMainMPU310の外部にアドレスデコーダICおよびラッチICを接続した例を示した図であり、図22はMainMPU310の外部にアドレスデコーダIC、インバータICおよびラッチICを接続した例を示した図である。
これらの例では、MainMPU310のアドレス入出力端子A0〜A15、ライト信号端子XWR、およびIOリクエスト端子XIORQをアドレスデコーダICに接続するとともに、このアドレスデコーダICのデコード出力端子を、直接(またはインバータICを介して)ラッチICに接続する。また、MainMPU310のデータ入出力端子D0〜D7を、直接、ラッチICの入力端子に接続する。ラッチICは、アドレスデコーダICのデコード出力端子から直接(またはインバータICを介して)入力するチップセレクト信号の立ち上がりに同期して、MainMPU310のデータ入出力端子D0〜D7から入力するデータ信号をラッチ(保持)して、各種デバイスが接続された出力端子に出力する。
図23はMainMPU310に入力するクロック信号と、MainMPU310から出力する各種の信号と、アドレスデコーダICのチップセレクト信号と、ラッチICの出力信号のタイムチャートを示した図であり、図24は各種信号の遅延時間の詳細を示した図である。
アドレスデコーダICのチップセレクト信号は、MainMPU310のライト信号端子XWRから出力されるライト信号、またはIOリクエスト端子XIORQから出力されるIOリクエスト信号に基づいて生成され、ライト信号またはIOリクエスト信号の立ち上がりエッジを基準としたチップセレクト信号の立ち上がりエッジの最大遅延時間TM(MAX)は、この例では11.5nsである。また、MainMPU310のデータ入出力端子D0〜D7から出力されるデータ信号の最小保持時間(ライト信号またはIOリクエスト信号が立ち上がった後にデータ信号が保持される最小時間)TN(MIN)は、この例では15nsである。さらに、ラッチICに入力したデータ信号がラッチICの出力端子から出力されるまでの最小遅延時間To(MIN)は、この例では0nsである。ここで、アドレスデコーダICのチップセレクト信号が立ち上がった後にラッチICの出力端子から出力されるデータ信号が保持される最小保持時間TCh(MIN)は、TN(MIN)−TM(MAX)+To(MIN)で算出することができ、この例では15ns−11.5ns−0ns=3.5nsとなる。すなわち、最小保持時間TCh(MIN)を延ばすためには、最大遅延時間TM(MAX)の値を小さくするか、最小保持時間TN(MIN)の値を大きくすることが必要である。前者の対応策としては、アドレスデコーダICによる各種信号の遅延を短縮するために、例えばライト信号を直接(またはアドレスデコーダICとは別体の論理ICなどを介して)、ラッチICに入力することが考えられ、後者の対応策としては、MainMPU310における最小保持時間TN(MIN)を例えば30ms以上に延ばすことが考えられる。特に後者の場合、ユーザプログラムによって最小保持時間を変更可能に構成し、MainMPU310に接続される外部デバイスの特性に合わせた設定ができることが好ましい。
また、本発明は、複数種類の図柄が施された複数のリール110〜112と、リールの回転を指示するための回転指示手段(スタートレバー135)と、各々のリールに対応して設けられ、リールの回転を個別に停止させるための停止指示手段(ストップボタン137〜139)と、予め定めた役の内部当選の当否を抽選により判定する抽選処理手段(入賞役内部抽選処理)と、抽選処理手段の抽選結果に基づいてリールの回転の停止に関する停止制御を行うリール停止制御手段(リール停止制御処理)と、抽選処理手段の抽選結果に基づいてリール110〜112の予め設定された有効ライン上において所定の図柄組合せが停止表示され、図柄表示窓上における停止時のリールに表示される図柄組合せが内部当選した役に対応して予め定めた図柄組合せであるか否かの判定をする判定手段(入賞判定処理)と、を備えたスロットマシンに好適であるが、本発明はこれに限定されるものではなく、例えば、遊技球(例えば、パチンコ玉)を遊技媒体としたパチンコ遊技機などにも適用可能である。
ここで、本発明が適用されるパチンコとしては、例えば、図25に示すように、所定の遊技領域に球を発射する発射装置と、発射装置から発射された球を入球可能に構成された入賞口と、入賞口に入球した球を検知する検知手段と、検知手段が球を検知した場合に球を払出す払出手段と、所定の図柄(識別情報)を変動表示する可変表示装置を備え、入賞口に遊技球が入って入賞することを契機として、可変表示装置が図柄を変動させた後に停止表示させて、遊技状態の推移を告知するようなパチンコが一例として挙げられる。
次に、図26を用いて、このパチンコ機1000の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
パチンコ機1000の制御部は、大別すると、遊技の中枢部分を制御する主制御部1300と、主制御部1300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて、主に演出の制御を行う副制御部1350と、主制御部1300が送信するコマンドに応じて、主に遊技球の払い出しに関する制御を行う払出制御部1400と、遊技球の発射制御を行う発射制御部1450と、パチンコ機1000に供給される電源を制御する電源管理部1500によって構成している。
<主制御部>
まず、パチンコ機1000の主制御部1300について説明する。
主制御部1300は、主制御部1300の全体を制御する基本回路1302を備えており、この基本回路1302には、CPU1304と、制御プログラムや各種データを記憶するためのROM1306と、一時的にデータを記憶するためのRAM1308と、各種デバイスの入出力を制御するためのI/O1310と、時間や回数等を計測するためのカウンタタイマ1312を搭載している。なお、ROM1306やRAM1308については他の記憶手段を用いてもよく、この点は後述する副制御部1350についても同様である。この基本回路1302のCPU1304は、水晶発信器1314が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路1302には、水晶発信器1314が出力するクロック信号を受信する度に0〜65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路1316(この回路には2つのカウンタを内蔵しているものとする)と、各始動口、入賞口の入り口および可変入賞口の内部に設けた球検出センサを含む各種センサ1318が出力する信号を受信し、増幅結果や基準電圧との比較結果をカウンタ回路1316および基本回路1302に出力するためのセンサ回路1320と、特図表示装置1114の表示制御を行うための表示回路1322と、普図表示装置1112の表示制御を行うための表示回路1324と、各種状態表示部1326(図示しないが、普図保留ランプ、特図保留ランプ、高確中ランプ等)の表示制御を行うための表示回路1328と、第2特図始動口(図示せず)や可変入賞口(図示せず)等を開閉駆動する各種ソレノイド1330を制御するためのソレノイド回路1332を接続している。
なお、第1特図始動口(図示せず)に球が入賞したことを球検出センサ1318が検出した場合には、センサ回路1320は球を検出したことを示す信号をカウンタ回路1316に出力する。この信号を受信したカウンタ回路1316は、第1特図始動口(図示せず)に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第1特図始動口(図示せず)に対応する内蔵のカウンタ値記憶用レジスタに記憶する。また、カウンタ回路1316は、第2特図始動口(図示せず)に球が入賞したことを示す信号を受信した場合も同様に、第2特図始動口(図示せず)に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第2特図始動口(図示せず)に対応する内蔵のカウンタ値記憶用レジスタに記憶する。
さらに、基本回路1302には、情報出力回路1334を接続しており、主制御部1300は、この情報出力回路1334を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路1550にパチンコ機1000の遊技情報(例えば、遊技状態)を出力する。
また、主制御部1300は、副制御部1350にコマンドを送信するための出力インタフェースと、払出制御部1400にコマンドを送信するための出力インタフェースをそれぞれ備えており、この構成により、副制御部1350および払出制御部1400との通信を可能としている。なお、主制御部1300と副制御部1350および払出制御部1400との情報通信は一方向の通信であり、主制御部1300は副制御部1350および払出制御部1400にコマンド等の信号を送信できるように構成しているが、副制御部1350および払出制御部1400からは主制御部1300にコマンド等の信号を送信できないように構成している。
<副制御部>
次に、パチンコ機1000の副制御部1350について説明する。
副制御部1350は、主に主制御部1300が送信したコマンド等に基づいて副制御部1350の全体を制御する基本回路1352を備えており、この基本回路1352には、CPU1354と、制御プログラムや各種データを記憶するためのROM1356と、一時的にデータを記憶するためのRAM1358と、各種デバイスの入出力を制御するためのI/O1360と、時間や回数等を計測するためのカウンタタイマ1362を搭載している。この基本回路1352のCPU1354は、水晶発信器1364が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路1352には、スピーカ1366(およびアンプ)の制御を行うための音源IC1368と、各種ランプ1370の制御を行うための表示回路1372と、演出装置1200の演出用可動体1220を駆動する駆動装置であるソレノイドまたはモータ等が含まれる各種演出用駆動装置1374の制御を行うための演出用駆動装置制御回路1376と、装飾図柄表示装置(液晶表示装置)1110および遮蔽手段(図示せず)の制御を行うための液晶制御回路1378と、チャンスボタン146を接続している。
<払出制御部、発射制御部、電源制御部>
次に、パチンコ機1000の払出制御部1400、発射制御部1450、電源制御部1500について説明する。
払出制御部1400は、主に主制御部1300が送信したコマンド等の信号に基づいて払出装置1402を制御すると共に、払出センサ1404が出力する制御信号に基づいて賞球または貸球の払い出しが完了したか否かを検出すると共に、インタフェース部1406を介して、パチンコ機1000とは別体で設けられたカードユニット1552との通信を行う。
発射制御部1450は、払出制御部1400が出力する、発射許可または停止を指示する制御信号や、操作ハンドル1148内に設けた発射強度出力回路が出力する、遊技者による発射ハンドル1148の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆(図示せず)および発射槌(図示せず)を駆動する発射モータ1452の制御や、貯留皿から発射レールに球を供給する球送り装置1454の制御を行う。
電源制御部1500は、パチンコ機1000に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部1300、副制御部1350等の各制御部や払出装置1402等の各装置に供給する。さらに、電源制御部1500は、外部からの電源が断たれた後も所定の部品(例えば主制御部1300のRAM1308等)に所定の期間(例えば10日間)電源を供給するための蓄電回路(例えばコンデンサ)を備えている。
<主制御部メイン処理>
次に、図27を用いて、主制御部1300のCPU1304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
上述したように、主制御部1300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)1338を設けている。この起動信号を入力した基本回路1302のCPU1304は、リセット割り込みによりリセットスタートしてROM1306に予め記憶している制御プログラムに従って処理を実行する。
ステップS1101では、初期設定1を行う。この初期設定1では、CPU1304のスタックポインタ(SP)へのスタック初期値の設定、割り込みマスクの設定、I/Oポート1310の初期設定、RAM1308に記憶する各種変数の初期設定、WDTへの初期値の設定等を行う。なお、本実施例では、WDTに、初期値として32.8msに相当する数値を設定する。
ステップS1102では、WDTのリセットを行い、WDTによる時間計測を再始動する。
ステップS1103では、低電圧信号がオンであるか否か、すなわち、電圧監視回路1336が、電源管理部1500から主制御部1300に供給している電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU1304が電源の遮断を検知した場合)にはステップS1102に戻り、低電圧信号がオフの場合(CPU1304が電源の遮断を検知していない場合)にはステップS1104に進む。
ステップS1104では、初期設定2を行う。この初期設定2では、後述する主制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマ312に設定する処理、I/O1310の所定のポート(例えば試験用出力ポート、副制御部1350への出力ポート)からクリア信号を出力する処理、RAM1308への書き込みを許可する設定等を行う。
ステップS1105では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部1300の基本回路1302を初期状態にする場合)にはステップS1108に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS1108に進む。
具体的には、最初に、電源基板に設けた操作部を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路1302を初期状態にすべくステップS1108に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)は、RAM1308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路1302を初期状態にすべくステップS1108に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM1308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS1106に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機1000を初期状態にすべくステップS1108に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS1108に進む。
ステップS1106では、復電時処理を行う。この復電時処理では、電断時にRAM1308に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタを読み出し、スタックポインタに再設定する。また、電断時にRAM1308に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割り込み許可の設定を行う。以降、CPU1304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機1000は電源断時の状態に復帰する。すなわち、電断直前にタイマ割り込み処理(後述)に分岐する直前に行った(ステップS1108、ステップS1109内の所定の)命令の次の命令から処理を再開する。
ステップS1107では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、RAM1308の全ての記憶領域の初期化などを行う。
ステップS1108では、割り込み禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための2つの初期値生成用乱数カウンタと、普図タイマ乱数値、特図タイマ乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が0〜20とすると、RAM1308に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が21であれば0を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。また、この基本乱数初期値更新処理の終了後に割り込み許可の設定を行ってステップS1109に進む。
上述の基本乱数初期値更新処理では、基本回路1302のワンチップマイクロコンピュータ内部の乱数発生回路(図示せず)よりIDナンバーに基づいた値を、初期値として生成する。その後は、その初期値を取得した乱数発生を停止させる。なお、初期値取得に使用した乱数発生回路よりIDナンバーに基づいた値を生成し、大当たりに関する抽選、演出抽選、乱数値の加工などに使用しても良く、チップ内の複数の乱数発生回路を設けて、IDナンバーに基づいた値として、それぞれ異なる初期値を設定しても良い。さらにまた、2つの乱数発生回路より生成した乱数値を演算して上述の大当たりに関する抽選や演出抽選、乱数値の加工などに使用しても良い。一方の乱数値を大当たりに関する抽選に用いたり、又は加工用に大当たり抽選に用いて、他方を演出抽選に使用しても良い。
ステップS1109では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部1300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
<主制御部タイマ割り込み処理>
次に、図28を用いて、主制御部1300のCPU1304が実行する主制御部タイマ割り込み処理について説明する。なお、同図は主制御部タイマ割り込み処理の流れを示すフローチャートである。
主制御部1300は、所定の周期(本実施例では約2msに1回)でタイマ割り込み信号を発生するカウンタ・タイマを備えており、このタイマ割り込み信号を契機として主制御部タイマ割り込み処理を所定の周期で開始する。
ステップS1201では、タイマ割り込みスタート処理を行う。このタイマ割り込みスタート処理では、CPU1304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
ステップS1202では、WDTのカウント値が初期設定値(本実施例では32.8ms)を超えてWDT割り込みが発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施例では、主制御部タイマ割り込みの周期である約2msに1回)リスタートを行う。
ステップS1203では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O1310の入力ポートを介して、上述のガラス枠開放センサ、前枠開放センサ、下皿満タンセンサ、複数の球検出センサを含む各種センサ1318の検出信号を入力して検出信号の有無を監視し、RAM1308に各種センサ1318ごとに区画して設けた信号状態記憶領域に記憶する。本実施例では、前々回のタイマ割り込み処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM1308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM1308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割り込み処理(約2ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM1308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
また、ステップS1203では、上述の前々回検出信号記領域、前回検出信号記領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が一致するか否かを判定する。そして、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施例では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、入賞口(一般入賞口、可変入賞口1)や始動口(第1特図始動口、第2特図始動口)への入球、または普図始動口の通過があったと判定する。例えば、一般入賞口への入球を検出する球検出センサにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口へ入球したと判定し、以降の一般入賞口への入球に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口への入球に伴う処理を行わずに後続の処理に分岐する。
ステップS1204およびステップS1205では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS1110で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部1300で使用する普図当選乱数値および特図乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が0〜100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0〜100の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM1308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。なお、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが1周したことを判定するための初期値記憶領域をRAM1308に設けている。
ステップS1206では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部1300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
ステップS1207では、タイマ更新処理を行う。詳細は後述するが、このタイマ更新処理では、普通図柄表示装置1112に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、特別図柄表示装置1114に図柄を変動・停止表示する時間を計時するための特図表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
ステップS1208では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口(一般入賞口、第1、第2特図始動口および可変入賞口)に入賞(入球)があった場合に、RAM1308に各入賞口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
また、ステップS1209では、入賞受付処理を行う。この入賞受付処理では、第1、第2特図始動口に入賞があり、且つ、保留している特図変動遊技の数が4未満である場合には、入賞した始動口に対応するカウンタ回路のカウンタ値記憶用レジスタから値を特図当選乱数値として取得する。また、上述の特図乱数値生成用の乱数カウンタから値を特図乱数値として取得し、RAM1308に設けた乱数値記憶領域に特図当選乱数値と共に記憶する。また、普図始動口を球が通過したことを検出し、且つ、保留している普図変動遊技の数が2未満の場合には、そのタイミングにおける普図当選乱数値生成用の乱数カウンタの値を普図当選乱数値として取得し、RAM1308に設けた上述の特図用とは別の乱数値記憶領域に記憶する。また、この入賞受付処理では、所定の球検出センサにより第1、第2特図始動口、普図始動口、または可変入賞口の入賞(入球)を検出した場合に、副制御部1350に送信すべき送信情報に、第1、第2特図始動口、普図始動口、および可変入賞口の入賞(入球)の有無を示す入賞受付情報を設定する。
ステップS1210では、払出要求数送信処理を行う(詳細は後述する)。なお、払出制御部1400に出力する出力予定情報および払出要求情報は1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4〜5に今回加工種別(0〜3)、およびビット0〜3に加工後の払出要求数を示すようにしている。
ステップS1211では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動中(後述する普図汎用タイマの値が1以上)における普図状態更新処理では、普図表示装置1112を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオンの場合には、普図表示装置1112を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、普図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM1308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により普図の停止表示を行い、普図変動遊技の結果を遊技者に報知するようにしている。
また、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、当りフラグがオンの場合には、所定の開放期間(例えば2秒間)、第2特図始動口の羽根部材の開閉駆動用のソレノイド1330に、羽根部材を開放状態に保持する信号を出力するとともに、RAM1308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
また、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、所定の閉鎖期間(例えば500m秒間)、羽根部材の開閉駆動用のソレノイド1330に、羽根部材を閉鎖状態に保持する信号を出力するとともに、RAM1308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
また、所定の閉鎖期間を経過したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、普図の状態を非作動中に設定する。普図の状態が非作動中の場合における普図状態更新処理では、何もせずに次のステップS1313に移行するようにしている。
ステップS1212では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第2特図始動口の開閉制御を行っておらず(普図の状態が非作動中)、且つ、保留している普図変動遊技の数が1以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはRAM1308に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置112に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM1308に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、RAM1308に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
ステップS1213では、特図状態更新処理を行う。この特図状態更新処理は、特図の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図変動中(後述する特図汎用タイマの値が1以上)における特図状態更新処理では、特図表示装置1112を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、特図変動表示時間が経過したタイミング(特図表示図柄更新タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当たりフラグがオンで確変フラグがオンの場合には特図表示装置1114に特図1、大当たりフラグがオンで確変フラグがオフの場合には特図表示装置1114に特図2、大当たりフラグがオフの場合には、特図3の態様となるように特図表示装置1112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM1308に設けた特図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により特図の停止表示をおこない、特図変動遊技の結果を遊技者に報知するようにしている。また、コマンド設定送信処理(ステップS1316)で一般コマンド回転停止設定送信処理を実行させるために上述の送信情報記憶領域に02Hを送信情報(一般情報)として追加記憶する。
また、所定の停止表示期間が終了したタイミング(特図停止時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当たりフラグがオンの場合には、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置110による大当たりを開始することを遊技者に報知する画像を表示している期間待機するためにRAM1308に設けた特図待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS1316)で一般コマンド入賞演出設定送信処理を実行させるために上述の送信情報記憶領域に04Hを送信情報(一般情報)として追加記憶する。
また、所定の入賞演出期間が終了したタイミング(特図待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口に所定球数(例えば10球)の遊技球の入賞を検出するまで)可変入賞口の扉部材の開閉駆動用のソレノイド1330に、扉部材を開放状態に保持する信号を出力するとともに、RAM1308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS1215)で一般コマンド大入賞口開放設定送信処理を実行させるために上述の送信情報記憶領域に10Hを送信情報(一般情報)として追加記憶する。
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口の扉部材の開閉駆動用のソレノイド1330に、扉部材を閉鎖状態に保持する信号を出力するとともに、RAM1308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS1215)で一般コマンド大入賞口閉鎖設定送信処理を実行させるために上述の送信情報記憶領域に20Hを送信情報(一般情報)として追加記憶する。
また、この扉部材の開放・閉鎖制御を所定回数(例えば15ラウンド)繰り返し、終了したタイミングで開始する特図状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置1110による大当たりを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM1308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、コマンド設定送信処理(ステップS1215)で一般コマンド終了演出設定送信処理を実行させるために上述の送信情報記憶領域に08Hを送信情報(一般情報)として追加記憶する。
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、特図の状態を非作動中に設定する。特図の状態が非作動中の場合における特図状態更新処理では、何もせずに次のステップS1315に移行するようにしている。
ステップS1214では、特図関連抽選処理を行う。この特図関連抽選処理では、特図変動遊技および可変入賞口の開閉制御を行っておらず(特図の状態が非作動中)、且つ、保留している特図変動遊技の数が1以上である場合に、大当たり判定テーブル、高確率状態移行判定テーブル、タイマ番号決定テーブルなどを使用した各種抽選のうち、最初に大当たり判定を行う。具体的には、ステップS1203で乱数値記憶領域に記憶した特図当選乱数値が、大当たり判定テーブルの第1特図始動口用抽選データの数値範囲であるか否かを判定し、特図当選乱数値が第1特図始動口用抽選データの数値範囲である場合には、特図変動遊技の当選と判定してRAM1308に設けた大当たりフラグの格納領域に大当たりとなることを示す情報を設定する(ここで、大当たりの情報をRAM1308に設定することを大当たりフラグをオンに設定するという)。一方、特図当選乱数値が第1特図始動口用抽選データの数値範囲以外である場合には、特図変動遊技の外れと判定してRAM1308に設けた大当たりフラグの格納領域に外れとなることを示す情報を設定する(ここで、外れの情報をRAM1308に設定することを大当たりフラグをオフに設定するという)。なお、保留している特図変動遊技の数は、RAM1308に設けた特図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している特図変動遊技の数から1を減算した値を、この特図保留数記憶領域に記憶し直すようにしている。また、当り判定に使用した乱数値を消去する。
具体例としては、遊技状態が低確率状態であり、第1特図始動口への球入賞の検出に基づいて取得した特図当選乱数値が10100の場合は大当たりフラグをオンに設定し、特図当選乱数値が10200の場合は大当たりフラグをオフに設定する。また、第2特図始動口への球入賞の検出に基づいて取得した特図当選乱数値が20100の場合は大当たりフラグをオンに設定し、特図当選乱数値が20200の場合は大当たりフラグをオフに設定する。
大当たりフラグにオンを設定した場合には、次に確変移行判定を行う。具体的には、ステップS1209で乱数値記憶領域に記憶した特図乱数値が、移行判定乱数の数値範囲であるか否かを判定し、特図乱数値が抽選データの数値範囲である場合には、RAM1308に設けた確変(確率変動)フラグの格納領域に、特別大当たり遊技を開始することを示す情報を設定する。(ここで、特別大当たり遊技開始の情報をRAM1308に設定することを確変フラグをオンに設定するという)。一方、特図乱数値が抽選データの数値範囲以外である場合には、上述の確変フラグの格納領域に、大当たり遊技を開始することを示す情報を設定する(ここで、大当たり遊技開始の情報をRAM1308に設定することを確変フラグをオフに設定するという)。例えば、取得した特図乱数値が20の場合には確変フラグをオンに設定する。一方、取得した特図乱数値が特図乱数値が80の場合には確変フラグをオフに設定する。
大当たり判定の結果に関わらず、次にタイマ番号を決定する処理を行う。具体的には、上述の特図タイマ乱数値生成用の乱数カウンタの値を特図タイマ乱数値として取得する。大当たりフラグの値、および取得した特図タイマ乱数値を含むタイマ乱数の数値範囲に対応するタイマ番号を選択し、RAM1308に設けた所定のタイマ番号格納領域に記憶する。さらに、そのタイマ番号に対応する変動時間を、特図変動表示時間として、上述の特図表示図柄更新タイマに記憶し、コマンド設定送信処理(ステップS215)で一般コマンド回転開始設定送信処理を実行させるために上述の送信情報記憶領域に01Hを送信情報(一般情報)として追加記憶してから処理を終了する。
例えば、大当たりフラグがオフで、取得した特図タイマ乱数値が50000の場合には、特図タイマ乱数値は0〜60235の範囲であることから、タイマ番号決定テーブルのそれらの条件に対応する1行目に記憶しているタイマ番号を示すタイマ1、および変動時間を示す5を選択し、RAM308に設けたそれぞれの記憶領域に記憶する。一方、大当たりフラグがオンで、取得した特図タイマ乱数値が64000の場合には、特図タイマ乱数値は0〜15535の範囲ではないことからタイマ2は選択せず、15536〜24535ではないことからタイマ3は選択せず、24536〜62535ではないことからタイマ4は選択しないが、62536〜65535の範囲内であることから、タイマ番号決定テーブルのそれらの条件に対応する8行目に記憶しているタイマ番号を示すタイマ5、および変動時間を示す50を選択し、RAM1308に設けたそれぞれの記憶領域に記憶する。なお、割り込み処理の開始周期である2msを考慮して、選択した変動時間の値に500(1000ms/2ms)を掛けた値を変動時間記憶領域にセットする。例えば、変動時間が5秒の場合には、変動時間記憶領域には2500の値を初期値としてセットし、ステップS1308のタイマ更新処理を実行する度に、この変動時間記憶領域の値を1だけ減算するようにすることで、割り込み処理の実行回数により時間の経過を計測できるようにしている。また、複数回(例えば5回)のタイマ割込処理の実行ごと(例えば2ms周期)に変動時間記憶領域の値を減算する場合には、変動時間が10秒の場合であれば、10秒が10000msであることから周期(2ms×5)で割り算して1000を変動時間記憶領域に設定する。
ステップS1215では、コマンド設定送信処理を行う(詳細は後述する)。なお、副制御部1350に送信する出力予定情報は16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11〜14はコマンド種別(00Hの場合は基本コマンド、01Hの場合は図柄変動開始コマンド、04Hの場合は図柄変動停止コマンド、05Hの場合は入賞演出開始コマンド、06Hの場合は終了演出開始コマンド、07Hの場合は大当たりラウンド数指定コマンド、0EHの場合は復電コマンド、0FHの場合はRAMクリアコマンドをそれぞれ示すなどコマンドの種類を特定可能な情報)、ビット0〜10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
具体的には、ストローブ情報は上述のコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、大当たりフラグの値、確変フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、大当たりフラグの値、確変フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、確変フラグの値などを含み、大当たりラウンド数指定コマンドの場合であれば確変フラグの値、大当たりラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第1特図始動口への入賞の有無、第2特図始動口への入賞の有無、可変入賞口への入賞の有無などを含む。
また、上述の一般コマンド回転開始設定送信処理では、コマンド種別に01H、コマンドデータにRAM1308に記憶している大当たりフラグの値、確変フラグの値、特図関連抽選処理で選択したタイマ番号、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド回転停止設定送信処理では、コマンド種別に04H、コマンドデータにRAM1308に記憶している大当たりフラグの値、確変フラグの値などを示す情報を設定する。上述の一般コマンド入賞演出設定送信処理では、コマンド種別に05H、コマンドデータにRAM308に記憶している入賞演出期間中に装飾図柄表示装置110・各種ランプ370・スピーカ366に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド終了演出設定送信処理では、コマンド種別に06H、コマンドデータにRAM1308に記憶している演出待機期間中に装飾図柄表示装置1110・各種ランプ1370・スピーカ1366に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口開放設定送信処理では、コマンド種別に07H、コマンドデータにRAM1308に記憶している大当たりラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口閉鎖設定送信処理では、コマンド種別に08H、コマンドデータにRAM1308に記憶している大当たりラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。副制御部1350では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
ステップS1216では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM1308に記憶している遊技情報を、情報出力回路1334を介してパチンコ機1000とは別体の情報入力回路1550に出力する。
ステップS1217では、デバイス監視処理を行う。このデバイス監視処理では、ステップ1203において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、ガラス枠開放エラーの有無、前枠開放エラーの有無、または下皿満タンエラーの有無などを監視し、ガラス枠開放エラー、前枠開放エラー、または下皿満タンエラーを検出した場合に、副制御部350に送信すべき送信情報に、ガラス枠開放エラーの有無、前枠開放エラーの有無、下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド1330を駆動して第2特図始動口や、可変入賞口の開閉を制御したり、表示回路を介して普図表示装置1112、特図表示装置1114、各種状態表示部1326などに出力する表示データを、I/O1310の出力ポートに設定する。また、払出要求数送信処理(ステップS1210)で設定した出力予定情報を出力ポート1310を介して副制御部1350に出力する。
ステップS1218では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1219に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1220に進む。
ステップS1219では、タイマ割り込みエンド処理を行う。このタイマ割り込みエンド処理では、ステップS1301で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行う。
ステップS1220では、電源制御部1500から主制御部1300に供給している電源の電圧値を監視する電圧監視回路が、所定の値以下である場合に電圧が低下したことを示す電圧低下信号を出力しているか否か、すなわち電源の遮断を検知したか否かを監視し、電源の遮断を検知した場合には、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM1308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行う。
このようなパチンコ機1000のように、大当たりに関する抽選や、演出に関する抽選などにおいて、チップ内部のIDナンバーに基づいた値を利用することで、外部から容易に乱数値を狙い打ちすることが困難となる。
なお、本発明の実施の形態に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施の形態に記載されたものに限定されるものではない。