以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
(スロットマシン100の機械的構成)
図1および図2の外観図に示すように、遊技機としてのスロットマシン100は、前面が開口した筐体102と、筐体102の前面一端に回動可能に上下に並んで配置される前面上扉104および前面下扉106とが設けられている。前面上扉104の下部略中央には、ガラス板や透明樹脂板等で構成された無色透明の図柄表示窓108が設けられており、筐体102内の図柄表示窓108に対応する位置には、3つのリール110(左リール110a、中リール110b、右リール110c)が、それぞれ独立して回動可能に設けられている。左リール110a、中リール110b、右リール110cには、図3(a)の図柄配列に示すように、20に等分された各領域に複数種類の図柄がそれぞれ配列されており、遊技者は、図柄表示窓108を通じて、上段、中段、下段に位置する、左リール110a、中リール110b、右リール110cそれぞれの3つの連続する合計9個の図柄を視認することができる。
前面下扉106の上部には操作部設置台112が形成され、操作部設置台112には、メダル投入部114、ベットスイッチ116、スタートスイッチ118、ストップスイッチ120、演出スイッチ122等が設けられている。メダル投入部114は、メダル投入口114aを通じて遊技媒体としてのメダルの投入を受け付ける。ベットスイッチ116は、スロットマシン100の内部に電気的に貯留(以下、単にクレジットという)されているメダルのうち、1遊技で必要とされる規定数のメダルを投入(ベット)する。
スタートスイッチ118は、例えば傾倒操作を検出可能なレバーで構成され、遊技者による遊技の開始操作を検出する。ストップスイッチ120(ストップスイッチ120a、ストップスイッチ120b、ストップスイッチ120c)は、左リール110a、中リール110b、右リール110cそれぞれに対応して設けられており、遊技者の停止操作を検出する。演出スイッチ122は、例えば、押圧スイッチと、その周囲に回転自在に配されたジョグダイヤルスイッチとから構成され、遊技者の押圧操作や回転操作を検出する。
前面上扉104の上部略中央には、演出に伴う様々な画像を表示する液晶表示部124が設けられている。また、前面上扉104の上部や左右には、例えば高輝度の発光ダイオード(LED)によって構成される演出用ランプ126が設けられる。また、前面上扉104の裏面における液晶表示部124の左右位置や前面下扉106の裏面における左右位置には、効果音や楽音等による聴覚的な演出を行うスピーカ128が設けられている。
操作部設置台112には、メインクレジット表示部130およびメイン払出表示部132が設けられている。また、図柄表示窓108と操作部設置台112との間には、サブクレジット表示部134およびサブ払出表示部136が設けられている。これらメインクレジット表示部130およびサブクレジット表示部134にはクレジットされているメダルの枚数(クレジット枚数)が表示され、メイン払出表示部132およびサブ払出表示部136にはメダルの払出枚数が表示される。また、サブ払出表示部136の横には区間表示器160が設けられている。区間表示器160では、後述する有利区間に滞在しているか否かが表される。
筐体102内におけるリール110の下方には、メダル排出口140aからメダルを払い出すためのメダル払出装置(メダルホッパー)142が設けられている。また、前面下扉106の前面下部には、メダル排出口140aから払い出されたメダルを貯留するための受け皿部140が設けられている。また、筐体102内には、電源スイッチ144が設けられている。電源スイッチ144は、スロットマシン100を管理する管理者が操作し、電源の切断状態と電源の投入状態の2つの状態を切り換えるために用いられる。
スロットマシン100では、遊技が開始可能となり、規定数のメダルがベットされると、有効ラインAが有効化するとともに、スタートスイッチ118に対する操作が有効となる。ここで、ベットは、ベットスイッチ116の操作を通じてクレジットされているメダルを投入する場合と、メダル投入部114を通じてメダルを投入する場合と、詳しくは後述するリプレイ役が有効ラインA上に表示されたことに基づいてメダルを自動投入する場合のいずれも含む。また、有効ラインAは、当選役の入賞を判定するためのラインであり、本実施形態では1本である。有効ラインAは、図3(b)に示すように、図柄表示窓108に臨む9つの図柄(3リール×上中下の3段)のうち、左リール110aの中段、中リール110bの中段、右リール110cの中段に停止する図柄に対応する位置を結んだラインに設定されている。無効ラインは、有効ラインA上に表示された図柄組み合わせのみでは当選役を把握しにくい場合に、当選役の把握を容易にする他の図柄組み合わせを表示する、当選役の入賞判定には用いられない有効ラインA以外のラインであり、本実施形態では、図3(b)に示す4つの無効ラインB1、B2、C1、C2を想定している。
そして、遊技者によりスタートスイッチ118が操作されると、遊技が開始され、左リール110a、中リール110b、右リール110cが回転されるとともに、当選種別抽選等が実行される。その後、ストップスイッチ120a、120b、120cの操作に応じて、対応する左リール110a、中リール110b、右リール110cをそれぞれ停止させる。そして、当選種別抽選の抽選結果および有効ラインAに表示された図柄の組み合わせによって、メダルの払い出しを受け得る当選役が入賞した場合にはメダルの払い出しが実行され、メダルの払い出しを受け得る当選種別に非当選であった場合または当選したが入賞しなかった場合には左リール110a、中リール110b、右リール110cが全て停止したことをもって、遊技が終了する。
なお、本実施形態において、上記1遊技は、メダル投入部114を通じたメダルの投入、ベットスイッチ116の操作を通じたクレジットされているメダルの投入、または、リプレイ役が有効ラインA上に表示されたことに基づくメダルの自動投入のいずれかが行われてから、遊技者によるスタートスイッチ118の操作に応じて、左リール110a、中リール110b、右リール110cが回転制御されるとともに当選種別抽選が実行され、当選種別抽選の抽選結果および遊技者による複数のストップスイッチ120a、120b、120cの操作に応じて、操作されたストップスイッチ120a、120b、120cに対応する左リール110a、中リール110b、右リール110cがそれぞれ停止制御され、メダルの払い出しを受け得る当選役が入賞した場合、そのメダルの払い出しが実行されるまでの遊技をいう。また、メダルの払い出しを受け得る当選種別に非当選であった場合または当選したが入賞しなかった場合、左リール110a、中リール110b、右リール110cが全て停止したことをもって1遊技が終了する。ただし、1遊技の開始を、上記のメダルの投入、または、リプレイ役の当選の代わりに、遊技者によるスタートスイッチ118の操作と読み替えてもよい。また、かかる1遊技が繰り返される数を遊技数とする。
(スロットマシン100の電気的構成)
図4は、スロットマシン100の概略的な電気的構成を示したブロック図である。図4に示すように、スロットマシン100は、遊技の進行を制御する主制御基板200と、遊技の進行に応じた演出を制御する副制御基板202とを含む制御基板が設けられている。また、主制御基板200と副制御基板202との間の電気的な信号の伝達は、不正防止等の観点から、主制御基板200から副制御基板202への一方向のみに制限される。
(主制御基板200)
主制御基板200は、中央処理装置であるメインCPU200a、プログラム等が格納されたメインROM200b、ワークエリアとして機能するメインRAM200c等を含む半導体集積回路を有し、スロットマシン100全体を統括的に制御する。なお、メインRAM200c(RWM:Read Write Memory)は、電源が切断された場合においても、設定変更が行われてRAMクリアが実行されない限り、データが消去されることなく保持される。
また、主制御基板200は、メインCPU200aが、メインROM200bに格納されたプログラムに基づきメインRAM200cと協働することで機能する、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316等の機能部を有する。
主制御基板200では、メダル投入口114aへのメダルの投入を検出する投入メダル検出部114b、ベットスイッチ116、スタートスイッチ118およびストップスイッチ120a、120b、120cから各種の検出信号を受信しており、受信した検出信号に基づいて、メインCPU200aが種々の処理を実行する。
初期化手段300は、主制御基板200における初期化処理を実行する。ベット手段302は、遊技に使用するためのメダルをベットする。当選種別抽選手段304は、スタートスイッチ118の操作に基づき、詳しくは後述するように、当選役の当否、より詳しくは、当選役が含まれる当選種別の当否を決定する当選種別抽選を行う。
リール制御手段306は、スタートスイッチ118の操作に応じて、左リール110a、中リール110b、右リール110cを回転制御し、回転している左リール110a、中リール110b、右リール110cにそれぞれ対応したストップスイッチ120a、120b、120cの操作に応じて、対応する左リール110a、中リール110b、右リール110cを停止制御する。
また、主制御基板200には、リール駆動制御部150が接続されている。このリール駆動制御部150は、スタートスイッチ118の操作信号に応じ、リール制御手段306から送信される、左リール110a、中リール110b、右リール110cの回転開始信号に基づいて、ステッピングモータ152を駆動する。また、リール駆動制御部150は、ストップスイッチ120の操作信号に応じ、リール制御手段306から送信される、左リール110a、中リール110b、右リール110cそれぞれの停止信号および回転位置検出回路154の検出信号に基づいて、ステッピングモータ152の駆動を停止する。
判定手段308は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたか否か判定する。ここで、当選役に対応する図柄組み合わせが有効ラインA上に表示されることを単に入賞という場合がある。払出制御手段310は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたこと(入賞したこと)に基づいて、当該当選役に対応する数だけメダルを払い出す。また、主制御基板200には、メダル払出装置142が接続されており、払出制御手段310は、メダルの払出枚数を計数しながらメダルを排出する。
遊技状態制御手段312は、当選種別抽選の結果や判定手段308の判定結果を参照し、複数種類の遊技状態のいずれかに遊技状態を移行させる。また、演出状態制御手段314は、当選種別抽選の結果、判定手段308の判定結果、遊技状態の遷移情報を参照し、複数種類の演出状態のいずれかに演出状態を移行させる。
コマンド送信手段316は、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314等の動作に伴う、遊技に関するコマンドを順次決定し、決定したコマンドを副制御基板202に順次送信する。
また、主制御基板200には、乱数発生器200dが設けられる。乱数発生器200dは、計数値を順次インクリメントし、所定の数値範囲内でループさせ、所定の時点における計数値を抽出することで乱数を得る。主制御基板200の乱数発生器200dによって生成される乱数(以下、当選種別抽選乱数という)は、遊技者に付与する遊技利益、例えば、当選種別抽選手段304が当選種別を決定するために用いられる。
(副制御基板202)
また、副制御基板202は、主制御基板200と同様に、中央処理装置であるサブCPU202a、プログラム等が格納されたサブROM202b、ワークエリアとして機能するサブRAM202c等を含む各種半導体集積回路を有し、主制御基板200からのコマンドに基づき、特に演出を制御する。また、サブRAM202c(RWM)にもメインRAM200c同様、不図示のバックアップ電源が接続されており、電源が切断された場合においても、データが消去されることなく保持される。なお、副制御基板202にも、主制御基板200同様、乱数発生器202dが設けられており、乱数発生器202dによって生成される乱数(以下、演出抽選乱数という)は、主に演出の態様を決定するために用いられる。
また、副制御基板202では、サブCPU202aが、サブROM202bに格納されたプログラムに基づき、サブRAM202cと協働することで機能する、初期化決定手段330、コマンド受信手段332、演出制御手段334等の機能部を有する。
初期化決定手段330は、副制御基板202における初期化処理を実行する。コマンド受信手段332は、主制御基板200等、他の制御基板からのコマンドを受信し、コマンドに対する処理を行う。演出制御手段334は、演出スイッチ122から検出信号を受信するとともに、受信されたコマンドに基づいて液晶表示部124、スピーカ128、演出用ランプ126の各デバイスで行われる遊技の演出を決定する。具体的に、演出制御手段334は、液晶表示部124に表示される画像データや、演出用ランプ126、サブクレジット表示部134、サブ払出表示部136等の電飾機器を通じた演出のための電飾データを決定するとともに、スピーカ128から出力すべき音声を構成する音声データを決定する。そして、演出制御手段334は、決定した遊技の演出を実行する。演出には、後述するART遊技状態(AT状態)において、ストップスイッチ120a、120b、120cの操作態様を報知し、遊技利益の大きい所定の当選役の入賞を補助する補助演出も含まれる。
なお、以下では、液晶表示部124、演出用ランプ126、スピーカ128、サブクレジット表示部134、サブ払出表示部136といった、副制御基板202を含む、主制御基板200以外の基板で管理される報知手段を他報知手段という場合がある。これに対し、メインクレジット表示部130、メイン払出表示部132といった、主制御基板200で管理される報知手段を主報知手段(指示モニタ)という場合がある。また、補助演出を実行可能な主報知手段および他報知手段を合わせて補助演出報知手段という場合もある。
(主制御基板200で用いられるテーブル)
図5は、当選役を説明するための説明図であり、図6および図7は、当選種別抽選テーブルを説明するための説明図である。
スロットマシン100においては、詳しくは後述するように、複数種類の遊技状態および演出状態が設けられており、遊技の進行に応じて遊技状態および演出状態が移行される。そして、主制御基板200では、遊技状態制御手段312により管理、制御される遊技状態に対応する複数の当選種別抽選テーブル等がメインROM200bに格納されている。当選種別抽選手段304は、メインRAM200cに記憶された現在の設定値(遊技利益を得る容易性を段階的に示したもの)と現在の遊技状態に応じて、対応する当選種別抽選テーブルをメインROM200bから抽出し、抽出した当選種別抽選テーブルに基づき、スタートスイッチ118の操作信号に応じて取得された当選種別抽選乱数が当選種別抽選テーブル内のいずれの当選種別に対応するか判定する。
ここで、当選種別抽選テーブルで抽出される当選種別を構成する当選役には、リプレイ役、小役、ボーナス役が含まれる。リプレイ役は、リプレイ役に対応する図柄組み合わせが有効ラインA上に表示されると、遊技者によるメダルの新たなるベットを行わずして再度遊技を実行できる役である。小役は、その小役に対応する図柄組み合わせが有効ラインA上に表示されることにより、図柄組み合わせに応じて所定枚数のメダルの払い出しを受けることができる役である。また、ボーナス役は、そのボーナス役に対応する図柄組み合わせが有効ラインA上に表示されることにより、遊技状態制御手段312により管理される遊技状態をボーナス遊技状態に移行させることができる役である。
本実施形態における当選役は、図5に示すように、リプレイ役として、当選役「移行リプレイ1」〜「移行リプレイ4」、「通常リプレイ1」〜「通常リプレイ3」、「チェリーリプレイ1」、「チェリーリプレイ2」、「BAR煽りリプレイ」、「BAR揃いリプレイ」、「チャンスリプレイ」(以下、かかる12個のリプレイ役を単に当選役「リプレイ」と略す場合がある)が設けられている。
また、小役として、当選役「1枚役1」〜「1枚役16」(以下、かかる16個の小役を単に当選役「1枚役」と略す場合がある)、当選役「ベル1」〜「ベル5」(以下、かかる5個の小役を単に当選役「ベル」と略す場合がある)、当選役「チェリー」、当選役「スイカ1」〜「スイカ4」(以下、かかる4個の小役を単に当選役「スイカ」と略す場合がある)、当選役「リーチ目1」〜「リーチ目3」(以下、かかる3個の小役を単に当選役「リーチ目」と略す場合がある)が設けられている。
また、ボーナス役として、当選役「RBB1」、「RBB2」、「CBB1」、「CBB2」(以下、かかる4個のボーナス役を単に当選役「BB」と略す場合がある)が設けられている。図5では、左リール110a、中リール110b、右リール110cそれぞれに、各当選役を構成する1または複数の図柄が対応付けられている。なお、図5中「ANY」は、対応する有効ラインA上にいずれの図柄が停止してもよいことを示す。また、当選役「チェリーリプレイ1」、「チェリーリプレイ2」、「チャンスリプレイ」、「チェリー」、「スイカ」は、当選役「BB」を除く他の当選役よりも得られる特典(遊技利益)が高くなるように設定される所謂レア役である。
ここで、本実施形態においては、遊技者によってストップスイッチ120が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段306によって、当該図柄が有効ラインA上に停止するように停止制御がなされる。また、ストップスイッチ120が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が、有効ラインA上にはないが、リール110の回転方向と反対の方向の図柄4コマ分に相当する範囲(引込範囲)内に存在している場合には、リール制御手段306によって、離れている図柄数が滑りコマ数となり、当該当選役に対応する図柄組み合わせを構成する図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。また、入賞可能な当選役に対応する図柄がリール110中に複数あり、いずれもリール110の引込範囲内に存在している場合には、予め定められた優先順位に従っていずれの図柄を有効ラインA上に引き込むか決定され、当該優先された図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。なお、ストップスイッチ120が押圧操作されたときに、入賞可能な当選役以外の当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段306によって、その図柄を有効ラインA上に停止させないようにする、所謂蹴飛ばし処理も並行して実行される。また、後述するように、当選種別に含まれる当選役に操作態様(操作順や操作タイミング)が入賞条件として設定されている場合、リール制御手段306は、遊技者の操作態様に応じて当選役に対応する図柄組み合わせを有効ラインA上に表示可能に停止制御する。
そして、例えば、当選役「移行リプレイ1」〜「移行リプレイ4」、当選役「通常リプレイ1」〜「通常リプレイ3」、当選役「ベル1」〜「ベル5」に対応する図柄組み合わせを構成する図柄は、各リール110において、上記の停止制御によって、必ず有効ラインA上に表示可能なように配列されている。このような当選役をPB=1と表す場合がある。一方、例えば、当選役「チェリー」、当選役「スイカ」、当選役「BB」に対応する図柄組み合わせを構成する図柄は、各リール110において、上記の停止制御によって、必ずしも有効ラインA上に表示可能なように配列されていないので、所謂とりこぼしが発生する場合がある。このような当選役をPB≠1と表す場合がある。
図6および図7に示すように、当選種別抽選テーブルでは、複数の当選領域が区画されており、各遊技状態によって抽選の対象となる当選種別が異なったり、ハズレ(不当選)の有無が異なったりする。図6および図7では、各遊技状態(RT0遊技状態(RT0)、RT1遊技状態(RT1)、RT2遊技状態(RT2)、RT3遊技状態(RT3)、RT4遊技状態(RT4)、内部中遊技状態(内部中)、当選役「RBB1」が入賞したボーナス遊技状態(BB1)、当選役「RBB2」が入賞したボーナス遊技状態(BB2)、当選役「CBB」が入賞したボーナス遊技状態(CBB1)、当選役「CBB2」が入賞したボーナス遊技状態(CBB2))毎に割り当てられた当選領域(当選種別)を「○」や「●」で表しているが、実際には、複数の遊技状態それぞれに対応する当選種別抽選テーブルがメインROM200bに記憶されている。なお、「○」はその当選種別の当選確率に設定差(設定値毎の差)が無い設定差無当選種別であることを示し、「●」はその当選種別の当選確率に設定差が有る設定差有当選種別であることを示している。当選種別抽選テーブルでは、区画化された各当選領域にはそれぞれ当選範囲を示す数値である所定の置数(当選範囲値)と当選種別が対応付けられており、遊技状態毎に割り当てられた全ての当選領域の置数を合計すると当選種別抽選乱数の総数(65536)となる。当選種別抽選手段304は、その時点の遊技状態に基づいて、当該当選種別抽選テーブルにおける複数の当選領域のうち番号の高い方から、順次、置数を取得し、その置数を当選種別抽選乱数から減算して、その減算値が0未満となると、その時点の当選領域に対応付けられた当選種別を当選種別抽選の抽選結果としている。
図6および図7の当選種別抽選テーブルによれば、例えば当選領域1には、当選種別「ハズレ」が対応付けられており、かかる当選種別に当選すると、図5に示したいずれの当選役に対応する図柄組み合わせも有効ラインA上に表示されることはなく、メダルの払い出し等が行われることはない。ただし、後述するように、BB内部当選フラグが次遊技に持ち越されている場合、当選種別「ハズレ」の当選により、当選役「BB」に対応する図柄組み合わせを有効ラインA上に表示させることが可能となる。
また、当選領域2〜26には、1のリプレイ役が単独で、または、複数のリプレイ役が重複して対応付けられている。そして、複数の当選役が重複して含まれる当選種別に当選した場合には、いずれの当選役に対応する図柄組み合わせを有効ラインA上に優先的に表示させるかについての入賞条件、例えば、ストップスイッチ120a、120b、120cが操作される順番が設定されている。
以下の説明において、左リール110a、中リール110b、右リール110cの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順1」とし、左リール110a、右リール110c、中リール110bの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順2」とし、中リール110b、左リール110a、右リール110cの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順3」とし、中リール110b、右リール110c、左リール110aの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順4」とし、右リール110c、左リール110a、中リール110bの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順5」とし、右リール110c、中リール110b、左リール110aの順にリールを停止させるストップスイッチ120a、120b、120cの操作を「打順6」とする。
例えば、RT1遊技状態において、当選種別「移行リプレイ1」に当選し、打順1による操作が行われた場合、RT2遊技状態への移行を示す当選役「移行リプレイ2」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされる。また、打順2〜打順6による操作が行われた場合、RT3遊技状態への移行を示す当選役「移行リプレイ3」、「移行リプレイ4」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされる。
また、当選領域28〜39には、当選役「ベル」と当選役「1枚役」とが重複して含まれる当選種別「打順ベル左1」〜「打順ベル右4」(以下、かかる12個の当選種別を単に当選種別「打順ベル」と略す場合がある)がそれぞれ対応付けられている。なお、当選領域28〜39の当選確率(置数の数)は等しくなるように設定されている。遊技者は、通常、いずれの当選種別に当選しているのかを知ることができないため、上記のような当選領域28〜39を設けることにより、当選役「ベル」を入賞させにくくしている。また、当選役「1枚役」が優先的に表示される打順でストップスイッチ120a、120b、120cが操作されても、必ずしも当選役「1枚役」に対応する図柄組み合わせを有効ラインA上に表示させられるとは限らないので、その操作態様によっては、とりこぼしが発生することがある(PB≠1)。また、当選領域40〜42には、当選役「ベル2」と当選役「ベル3」とが重複して含まれる当選種別「打順ベル左中」〜「打順ベル中右」がそれぞれ対応付けられている。なお、当選領域40〜42の当選確率(置数の数)は等しくなるように設定されている。
また、当選領域50〜53には、当選役「RBB1」が含まれる当選種別「RBB1」、「RBB2」、「RBB3」、「RBB4」が対応付けられており、当選領域54〜57には、当選役「RBB2」が含まれる当選種別「RBB5」、「RBB6」、「RBB7」、「RBB8」が対応付けられており、当選領域58〜61には、当選役「CBB1」が含まれる当選種別「CBB1」、「CBB2」、「CBB3」、「CBB4」が対応付けられており、当選領域62〜65には、当選役「CBB2」が含まれる当選種別「CBB5」、「CBB6」、「CBB7」、「CBB8」が対応付けられている。なお、以下では、当選種別「RBB1」、「RBB2」、「RBB3」、「RBB4」、「RBB5」、「RBB6」、「RBB7」、「RBB8」、「CBB1」、「CBB2」、「CBB3」、「CBB4」、「CBB5」、「CBB6」、「CBB7」、「CBB8」を単に当選種別「BB」と略す場合がある。
なお、上述したいずれかの当選種別に当選すると、それぞれの当選種別に対応する内部当選フラグが成立(オン)するとともに、この内部当選フラグの成立状況に応じて、各リール110の停止制御がなされることとなる。このとき、小役が含まれる当選種別に当選したものの、これら当選役に対応する図柄組み合わせを、その遊技内で有効ラインA上に表示させることができなかった場合には、当該遊技の終了後に内部当選フラグがオフされる。つまり、小役の当選の権利は小役が含まれる当選種別に当選した遊技内のみに限られ、当該権利を次遊技に持ち越すことはできない。これに対して、当選役「BB」が含まれる当選種別に当選した場合には、BB内部当選フラグが成立(オン)するとともに、当選役「BB」に対応する図柄組み合わせが有効ラインA上に表示されるまで、BB内部当選フラグが遊技を跨いで持ち越される。なお、リプレイ役である当選役「リプレイ」が含まれる当選種別に対応する内部当選フラグが成立した場合には、その当選種別に含まれる当選役「リプレイ」のうちのいずれかの当選役「リプレイ」に対応する図柄組み合わせが必ず有効ラインA上に表示され、メダルを要することなく次遊技を行うために必要となる処理が行われた後に、当該内部当選フラグがオフされる。
(遊技状態の遷移)
ここで、図8を用い、上記ボーナス遊技状態を含む遊技状態の遷移について説明する。ここでは、RT0遊技状態、RT1遊技状態、RT2遊技状態(後述するART遊技状態となる場合あり)、RT3遊技状態、RT4遊技状態、内部中遊技状態、ボーナス遊技状態といった複数の遊技状態が準備されている。RT0遊技状態、RT1遊技状態、RT2遊技状態、RT3遊技状態、RT4遊技状態は、それぞれリプレイ役の当選確率が設定された(RT0遊技状態=1/7.3、RT1遊技状態=1/1.4、RT2遊技状態=1/1.4、RT3遊技状態=1/7.3、RT4遊技状態=1/7.3)、所謂、RT遊技状態であり、後述するように、所定の当選役が有効ラインA上に表示されることで、あるいは、ボーナス役の当選に関連してRT遊技状態が遷移する。ここでは、RT1遊技状態およびRT2遊技状態のリプレイ役の当選確率が比較的高く設定されており、遊技者はRT1遊技状態やRT2遊技状態に移行することで、遊技を有利に進行することができる。
通常遊技状態におけるRT0遊技状態は、複数の遊技状態における初期状態に相当する遊技状態である。RT0遊技状態において、当選種別「打順ベル」に当選し、いずれの小役(当選役「ベル」、「1枚役」)に対応する図柄の組み合わせも有効ラインA上に表示されなかった場合に表示されるブランク図柄組み合わせに対応する図柄の組み合わせが有効ラインA上に表示された場合に、遊技状態制御手段312は、遊技状態をRT1遊技状態に移行させる(1)。
また、RT1遊技状態において、当選種別「移行リプレイ1」〜「移行リプレイ6」のいずれかに当選し、かつ、当選役「移行リプレイ2」に対応する図柄組み合わせが表示された場合に、遊技状態制御手段312は、遊技状態をRT2遊技状態に移行させる(2)。かかるRT2遊技状態では、所定の条件下で補助演出を行う、所謂、ATを並行して実行すること(AT演出状態)を想定しており、本実施形態においては、RT2遊技状態と並行してATを実行している状態をART遊技状態という。
また、RT2遊技状態において、当選種別「移行リプレイ13」〜「移行リプレイ15」のいずれかに当選し、かつ、当選役「移行リプレイ1」に対応する図柄組み合わせが表示された場合、また、当選種別「打順ベル」に当選し、いずれの小役(当選役「ベル」、「1枚役」)に対応する図柄の組み合わせも有効ラインA上に表示されなかった場合、つまり、ブランク図柄組み合わせに対応する図柄の組み合わせが有効ラインA上に表示された場合に、遊技状態制御手段312は、遊技状態をRT1遊技状態に移行させる(3)。
また、RT1遊技状態において、当選種別「移行リプレイ1」〜「移行リプレイ12」のいずれかに当選し、かつ、当選役「移行リプレイ3」または当選役「移行リプレイ4」に対応する図柄組み合わせが表示された場合に、遊技状態制御手段312は、遊技状態をRT3遊技状態に移行させる(4)。また、RT0遊技状態において、当選種別「移行リプレイ7」〜「移行リプレイ12」のいずれかに当選し、かつ、当選役「移行リプレイ3」または当選役「移行リプレイ4」に対応する図柄組み合わせが表示された場合に、遊技状態制御手段312は、遊技状態をRT3遊技状態に移行させる(5)。また、遊技状態制御手段312は、RT3遊技状態において、当選種別「BB」に当選することなく、所定の遊技数(例えば、16遊技)が経過すると、遊技状態をRT0遊技状態に移行させる(6)。
また、RT0遊技状態、RT1遊技状態、RT2遊技状態、RT3遊技状態、RT4遊技状態のいずれかの遊技状態での当選種別抽選において、ボーナス役を含む当選種別のいずれかに当選し、BB内部当選フラグが成立すると、遊技状態制御手段312は、遊技状態をボーナス遊技状態の準備状態に相当する内部中遊技状態に移行する(7)。このとき、ボーナス役に対応する図柄組み合わせを有効ラインA上に表示させることができなかった場合には、そのままBB内部当選フラグが次遊技に持ち越され(内部中遊技状態が維持され)、次回以降の遊技においてもボーナス役に対応する図柄組み合わせを有効ラインA上に表示させることが可能となる。内部中遊技状態では、その前段(直前)の遊技状態よりリプレイ役(例えば、当選種別「通常リプレイ1」)の当選確率が高く(例えば、1/3.0)設定されるので、メダルの消費を抑えつつ、ボーナス役に対応する図柄組み合わせを有効ラインA上に表示させるように狙うことができる。そして、遊技者が、ボーナス役に対応する図柄組み合わせを有効ラインA上に表示させると、遊技状態制御手段312は、遊技状態を、内部中遊技状態からボーナス遊技状態に移行する(8)。また、ボーナス遊技状態において、それぞれのボーナス役に対応付けられた所定枚数を超えるメダルが払い出されると、遊技状態制御手段312は、ボーナス役を含む当選種別が決定されたときの遊技状態に拘わらず、遊技状態を、ボーナス遊技状態からRT4遊技状態に移行する(9)。したがって、ボーナス役に当選すると、RT0遊技状態〜RT3遊技状態に移行する前に、必ず、RT4遊技状態を経由することとなる。
そして、RT4遊技状態において、当選種別「打順ベル」に当選し、いずれの小役(当選役「ベル」、「1枚役」)に対応する図柄の組み合わせも有効ラインA上に表示されなかった場合に、ブランク図柄組み合わせに対応する図柄の組み合わせが有効ラインA上に表示されて、遊技状態制御手段312は、遊技状態をRT1遊技状態に移行させる(10)。
(演出状態の遷移)
図9は、主制御基板200における演出状態の遷移を説明するための説明図である。以下、主制御基板200において演出状態制御手段314により遷移される演出状態(非AT演出状態、AT演出状態)について詳述する。
(非AT演出状態)
非AT演出状態は、通常演出状態とチャンス演出状態(チャンスゾーン)とが設けられている。非AT演出状態が実行される際、補助演出の実行頻度がAT演出状態より極めて低く、補助演出がほぼ行われないので、獲得できるメダルの枚数が制限される。通常演出状態は、副制御基板202で管理される複数の演出状態のうち、初期状態に相当する遊技状態である。
演出状態制御手段314は、通常演出状態における所定の契機で遊技状態をチャンス演出状態に移行し(1)、チャンス演出状態のまま所定の条件が満たされると、例えば、所定の遊技数が消化されると、通常演出状態に戻す(2)。また、演出状態制御手段314は、通常演出状態およびチャンス演出状態において、演出状態をAT演出状態に移行することができる(3)。ただし、チャンス演出状態の方が通常演出状態よりAT演出状態に移行し易いように設定されている。例えば、通常演出状態およびチャンス演出状態のいずれの遊技状態においても、当選種別抽選により決定された当選種別に基づいてAT演出状態へ移行するか否かが抽選(演出状態抽選)により決定される場合に、当選種別毎に対応付けられたAT演出状態へ移行する確率が通常演出状態よりチャンス演出状態の方が高くなっている。したがって、遊技者は、通常演出状態より、チャンス演出状態に滞在することを望むこととなる。また、AT演出状態に移行することなく非AT演出状態で所定の遊技数が消化されると(所謂、天井到達)、演出状態制御手段314は、遊技状態をAT演出状態へ移行する。
(AT演出状態)
AT演出状態では、補助演出によって正解操作態様が報知されることで、メダルの消費を抑えつつ、多くのメダルを獲得することが可能となる。したがって、遊技者は、AT演出状態において、非AT演出状態と比べ、遊技を有利に進行することができる。
また、AT演出状態では、通常AT演出状態、チャンスAT演出状態(特化ゾーン)といった2つのAT演出状態が設けられている。通常AT演出状態は、所定の継続遊技数(例えば、50遊技)を1セットとしてセット数管理により遊技が進行する。演出状態制御手段314は、演出状態が通常AT演出状態に設定されると、ストック(保持)されているセット数を1減算するとともに、継続遊技数を50遊技に設定する。そして、継続遊技数の遊技が終了すると、演出状態制御手段314は、セット数が0であるか(セット数がストックされているか)判定し、セット数が0でない場合には、ストックされているセット数を1減算して、通常AT演出状態を継続させる(4)。ただし、通常AT演出状態の継続時の継続遊技数は30遊技以上の所定の遊技数となる。一方、ストックされているセット数が0である場合には、演出状態制御手段314は、通常AT演出状態を終了し、演出状態をチャンス演出状態へ移行する(5)。また、演出状態制御手段314は、通常AT演出状態において所定条件を満たすと、演出状態をチャンスAT演出状態に移行することができる(6)。
チャンスAT演出状態は、所定の遊技数が経過するまで継続し、その間に、通常AT演出状態のセット数を上乗せする。そして、所定の遊技数が終了すると、演出状態制御手段314は、演出状態を通常AT演出状態に移行する(7)。
なお、遊技状態および演出状態のいずれにおいても、所定の当選役の入賞または取りこぼしを移行条件とする場合、移行条件を満たすまでの準備状態を経由して(例えば、非AT演出状態から通常AT演出状態(3)、通常AT演出状態からチャンス演出状態(5))、移行先の遊技状態や演出状態に移行する場合がある。
(有利区間について)
ところで、上述したようなボーナス遊技状態やAT演出状態への移行頻度が偏ると射倖性が過度に高まってしまう懸念がある。そこで、メダルの獲得性能が高い遊技状態が偏っているか否かを統括的かつ画一的に判定すべく、有利区間比率、連続役物比率、役物比率といった判断基準を設ける。有利区間比率は、有利区間に滞在している遊技数である滞在遊技数を、当該スロットマシン100を遊技場(ホール)に設置してからの遊技数の総数である総遊技数で除算し、%(パーセント)で示した値であり、連続役物比率は、所定の基準集計期間における、レギュラーボーナス遊技等、第1種特別役物の作動によって払出制御手段310が払い出したメダルの枚数である連続役物払出数を、払出制御手段310が払い出したメダルの総数である総払出数で除算し、%で示した値であり、役物比率は、所定の基準集計期間における、ボーナス遊技等、役物の作動に基づいて払出制御手段310が払い出したメダルの枚数である役物払出数を、払出制御手段310が払い出したメダルの総数である総払出数で除算し、%で示した値である。なお、有利区間比率は、総遊技数のみを用い、連続役物比率、役物比率のように6000遊技といった有限の遊技数は用いない。
ここで、有利区間は、指示機能に係る性能を有する区間、すなわち、補助演出(指示機能)を実行する区間を含んだ、遊技者にとって有利な区間をいう。また、このような有利区間に属している状態を有利状態と総称し、有利区間に属していない(有利区間ではない非有利区間に属している)状態を非有利状態と総称する。なお、上述した通常AT演出状態およびチャンスAT演出状態は、最大払出枚数を獲得できる補助演出が少なくとも1回実行される点で有利状態に含まれ、そのような有利状態中(有利区間中)に実行されるボーナス遊技状態や内部中遊技状態も有利状態に含まれる。したがって、有利区間比率は、AT演出状態および非AT演出状態における全ての遊技数に対する、AT演出状態およびチャンス演出状態、ならびに、そのような有利区間中の内部中遊技状態およびボーナス遊技状態で遊技した滞在遊技数の比率を表すこととなる。
また、役物は、入賞を容易にするための装置であり、レギュラーボーナス(RB)、チャレンジボーナス(CB)、シングルボーナス(SB)等が該当する。また、かかる役物のうち、レギュラーボーナス(RB)が第1種特別役物に対応する。なお、レギュラービッグボーナス(RBB)は、第1種特別役物であるレギュラーボーナス(RB)の入賞形態を示す図柄組み合わせの表示によらずにレギュラーボーナス(RB)が連続で作動するものであり、チャレンジビッグボーナス(CBB)は、第2種特別役物(役物のうちの一つ)であるチャレンジボーナス(CB)の入賞形態を示す図柄組み合わせの表示によらずにチャレンジボーナス(CB)が連続で作動するものである。したがって、連続役物比率は、所定の基準集計期間において払い出された総払出数に対する第1種特別役物の作動によって払い出された連続役物払出数の比率を表すこととなり、役物比率は、所定の基準集計期間において払い出された総払出数に対する役物の作動によって払い出された役物払出数の比率を表すこととなる。
なお、基準集計期間は、払出制御手段310が払い出したメダルの枚数を累積する対象期間である。本実施形態では、例えば、有限の値である6000遊技や、当該スロットマシン100を遊技場(ホール)に設置してから全ての期間(以下、「総累計」という)の2通りを挙げる。ここで、6000遊技としては、現在の遊技を起点とした直近の6000遊技を対象としているが、後述するように、その計算は所定の遊技数(例えば400遊技)毎に行われる。したがって、連続役物比率としては、6000遊技の連続役物比率と総累計の連続役物比率とを導出し、役物比率としては、6000遊技の役物比率と総累計の役物比率とを導出する。ただし、基準集計期間として、任意の遊技数を設定できることは言うまでもない。
このような、有利区間比率、連続役物比率、役物比率を求めるべく、演出状態制御手段314は、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数を累積する。このとき、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数それぞれには、カウンタが対応付けられている。具体的に、演出状態制御手段314は、1遊技が開始されると、総遊技数を示す総遊技数カウンタを1だけインクリメントする。そして、現在の演出状態が有利状態であるか否かを判定し、有利状態であれば、滞在遊技数を示す滞在遊技数カウンタを1だけインクリメントする。なお、滞在遊技数カウンタの更新は、演出状態が非有利状態である場合において有利状態に当選した遊技(有利区間への移行処理が行われた遊技)の次遊技から開始される。ただし、レギュラービッグボーナス(RBB)またはチャレンジビッグボーナス(CBB)の当選に基づいてAT演出状態への移行が決定した場合には当該ボーナスが入賞した遊技の次遊技から開始される。
また、演出状態制御手段314は、当該遊技でメダルが払い出されると、総払出数を示す総払出数カウンタを、その払出枚数分だけインクリメントする。そして、当該メダルの払い出しが役物に基づいていれば、役物払出数を示す役物払出数カウンタを、その払出枚数分だけインクリメントし、さらに、当該メダルの払い出しが第1種特別役物に基づいていれば、役物払出数カウンタに加え、連続役物払出数を示す連続役物払出数カウンタを、その払出枚数分だけインクリメントする。なお、かかるカウンタによる計数は、規定数や設定値に拘わらず常に実行される。このようにして、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数がそれぞれ累積される。
続いて、演出状態制御手段314は、累積した、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数に基づいて有利区間比率、連続役物比率、役物比率を導出する。具体的に、演出状態制御手段314は、滞在遊技数を総遊技数で除算し、%換算して有利区間比率を導出し、所定の遊技数(例えば400遊技)毎に、総累計の連続役物払出数を総累計の総払出数で除算し、%換算して総累計の連続役物比率を導出し、総累計の役物払出数を総累計の総払出数で除算し、%換算して総累計の役物比率を導出する。また、演出状態制御手段314は、所定の遊技数(例えば400遊技)毎に、過去6000遊技の連続役物払出数を6000遊技の総払出数で除算し、%換算して6000遊技の連続役物比率を導出し、過去6000遊技の役物払出数を6000遊技の総払出数で除算し、%換算して6000遊技の役物比率を導出する。
このように、本実施形態では、有利区間比率、連続役物比率、役物比率としては、最終的に%に換算された値を求めることとなる。これは、除算した結果に対し、小数点以下2桁のみが必要であることを示す。また、本実施形態では、%に換算した場合の小数点以下の値は切り捨てとしている。これは、除算した結果に対し、小数点以下2桁のみを導出できれば、小数点以下3桁以降の演算を要さないことを意味する。次に、演出状態制御手段314は、所定の表示指令に基づいて、導出した有利区間比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率を、管理者が視認可能な、例えば、主制御基板200に設けられた図示しない比率表示部に表示する。こうして、管理者は、有利区間比率、連続役物比率、役物比率を、その識別子とともに視認することができる。
以下、主制御基板200、副制御基板202における具体的処理をフローチャートに基づいて説明する。
(主制御基板200のメイン処理)
図10は、主制御基板200のメイン処理を示したフローチャートである。ここでは、まず、主制御基板200のメイン処理に沿って、初期化後の1遊技の概略を説明し、その後、各処理の詳細について説明する。また、ここでは、本実施形態の特徴に関係する処理について詳細に説明し、本実施形態の特徴と無関係の構成については説明を省略する。また、詳細な説明は省略するが、各処理が遂行される際、各処理において用いられるスイッチ(ベットスイッチ116、スタートスイッチ118、ストップスイッチ120a、120b、120c)は、処理の開始時に有効化され、処理の終了時に無効化される。
(ステップS100)
電源スイッチ144を介してスロットマシン100の電源が投入され、通電状態になると、初期化手段300は、遊技開始に備え初期化処理を実行する。初期化手段300は、電源が投入されている間、随時バックアップデータを生成し、そのバックアップデータをメインRAM200cに保持している。したがって、不意の電断が生じたとしても、この初期化処理において、保持されたバックアップデータを用い電断前の状態に復帰させることができる。例えば、リール110の回転中に不意の電断が起きたとしても、復帰動作後に再度各リール110が回転している状態から開始される。したがって、初期化処理では、基本的に、メインRAM200cの初期化(RAMクリア)は行われない。
(ステップS200)
続いて、遊技者によるベットスイッチ116の操作、または、メダル投入部114へのメダルの投入を通じ、ベット手段302がメダルをベットする。また、コマンド送信手段316は、その操作がなされたことを示す投入コマンドを生成し、生成された投入コマンドを副制御基板202に送信する。
(ステップS300)
次に、当選種別抽選手段304は、スタートスイッチ118に対する遊技開始操作を有効化し、スタートスイッチ118の操作待ち状態に移行する。ここで、当選種別抽選手段304は、遊技者によるスタートスイッチ118の操作に応じて、主制御基板200の乱数発生器200dによって更新された当選種別抽選乱数から、スタートスイッチ118が操作された時点における1の当選種別抽選乱数を取得する。そして、当選種別抽選手段304は、図6、図7に示した当選種別抽選テーブルから、現在設定されている遊技状態に対応する1の当選種別抽選テーブルを決定するとともに、取得した当選種別抽選乱数が、決定した当選種別抽選テーブルにおけるいずれの当選領域に対応するか判定し、判定された当選領域の当選種別または不当選を抽選結果として決定する。
また、コマンド送信手段316は、スタートスイッチ118の操作に応じて抽選結果が決定された後、当選種別抽選の抽選結果(当選種別または不当選)や遊技状態に関する情報等を含む当選種別コマンドを生成し、生成された当選種別コマンドを副制御基板202に送信する。
(ステップS400)
スタートスイッチ118が操作されると、リール制御手段306は、ステッピングモータ152を駆動して左リール110a、中リール110b、右リール110cを回転させる。このリール回転処理においては、前回の1遊技における左リール110a、中リール110b、右リール110cの回転開始時点から所定の時間(例えば4.1秒)が経過すると(ウェイト)、当該遊技における左リール110a、中リール110b、右リール110cの回転を開始し、左リール110a、中リール110b、右リール110cの全てが定速回転となったところで、ステップS500に処理を移す。
(ステップS500)
続いて、リール制御手段306は、ストップスイッチ120a、120b、120cを有効化し、遊技者によるストップスイッチ120a、120b、120cの操作を受け付けると、その操作に対応する左リール110a、中リール110b、右リール110cのいずれかを停止制御する。
また、コマンド送信手段316は、ストップスイッチ120a、120b、120cのいずれかの操作がなされると、操作がなされたストップスイッチ120a、120b、120cの情報を示す停止コマンド(第1停止コマンド、第2停止コマンド、第3停止コマンド)を操作の度に生成し、生成された停止コマンドを順次、副制御基板202に送信する。
(ステップS600)
次に、判定手段308は、図3(b)に示した有効ラインA上に表示された図柄組み合わせが予め定められたどの組み合わせに相当するかを判定し、その図柄組み合わせに応じて遊技状態の変更やリプレイに際して要求される種々の処理を実行する。また、コマンド送信手段316は、有効ラインA上に表示された図柄組み合わせや、有効ラインA上に小役に対応する図柄組み合わせが表示された場合におけるメダルの払出枚数等を含む入賞コマンドを生成し、生成された入賞コマンドを副制御基板202に送信する。
(ステップS700)
続いて、払出制御手段310は、ステップS600における判定結果に基づき、例えば、有効ラインA上に小役に対応する図柄組み合わせが表示されると、当該小役に対応するメダルの払出処理を実行し、有効ラインA上にリプレイ役に対応する図柄組み合わせが表示されると、自動的に次遊技のベットを行うための処理を実行する。また、遊技状態制御手段312は、ボーナス遊技状態においてメダルの所定枚数の払い出しが実行されると、遊技状態をボーナス遊技状態からRT4遊技状態に移行する。このように、払出制御手段310は、有効ラインA上に表示された図柄組み合わせに対応して種々の処理を遂行し、当該1遊技を終了する。また、コマンド送信手段316は、メダルの払出処理がなされた場合、払出処理がなされたことを示す払出コマンドを生成し、生成された払出コマンドを副制御基板202に送信する。
ステップS200からステップS700までの一連の処理を通じて1遊技が実行される。以後は、ステップS200からステップS700までを繰り返すこととなる。
(メインCPU200aによるメモリ管理)
ところで、上述したように、主制御基板200においては、メインCPU200aが、メインROM200bに格納されたプログラムに基づきメインRAM200cと協働することで、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316等として機能し、遊技の進行を制御する。これらの機能部を実行するためのプログラムは、メインROM200bおよびメインRAM200cの所定の領域(使用領域)に配される。
図11は、メインROM200bおよびメインRAM200cのメモリマップを示す説明図である。ここで、0000h〜2FFFh(12kbyte)のメモリ空間には、メインROM200bが割り当てられ、F000h〜F1FFh(512byte)およびF200h〜F3FFh(512byte)のメモリ空間には、それぞれメインRAM200cが割り当てられている。また、メインROM200bおよびメインRAM200cのいずれにおいても使用領域が規定されている。
メインROM200bの0000h〜1DF3hのメモリ空間には使用領域が割り当てられている。具体的に、0000h〜11FFh(4.5kbyte)に制限されたメモリ空間に、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316を機能させ、遊技の進行を制御する遊技制御処理を実行するためのプログラムの命令コード(命令コードをモジュールと呼ぶ場合がある)が格納され、1200h〜1DF3h(3.0kbyte)に制限されたメモリ空間に、遊技制御処理のプログラムに用いられるデータが格納されている。また、1E00h〜1EFFhのメモリ空間にはコメント領域が割り当てられ、2FC0h〜2FFFFhのメモリ空間にはプログラム管理領域が割り当てられている。なお、数値の末尾に付された「h」は、その数値が16進数であることを示す。また、プログラムの命令コードはアセンブラ言語で記述されている。ここで、プログラムは、命令コードで構成されたものであり、コンピュータに読み出され、データやワークエリアと協働して所定の処理を実現することができる。
また、メインRAM200cのF000h〜F1FFhのメモリ空間には使用領域が割り当てられている。具体的に、F000h〜F13Fhのメモリ空間には、上記遊技制御処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F1C0h〜F1FFhのメモリ空間には、上記遊技制御処理のスタック領域が割り当てられている。また、メインCPU200aには内部レジスタが設けられている。
図12は、メインCPU200aの内部レジスタを説明するための説明図である。内部レジスタは、それぞれ8bitまたは16bitで構成され、単独で用いる場合と、予め定められている組み合わせ(ペアレジスタ)で用いる場合とがある。また、内部レジスタには表レジスタと、一部の表レジスタに対応した裏レジスタとがある。
図12に示す内部レジスタのうち、Qレジスタ(キューレジスタ)は、遊技機用拡張仕様の8ビット専用レジスタである。かかるQレジスタの上位1バイトはF0h固定で、F000h〜F0FFhのメインRAM200cのアクセスに利用する。Iレジスタは、割込先アドレスの上位8ビットを記憶する専用レジスタである。Aレジスタは、演算処理やデータ転送に使う8ビットのアキュムレータである。Fレジスタは、各種演算結果を保持する8ビットのフラグレジスタである。ここで、Fレジスタの各ビットは、図12に示すように、最上位ビット(MSB:Most Significant Bit)から最下位ビット(LSB:Least Significant Bit)にかけて、sは、演算結果が負のとき1にセットされるサインフラグであり、zは、演算の結果、全ビットが0のとき1にセットされるゼロフラグであり、tzは、データ転送命令(LD;ロード)の実行により、全ビットが0のとき1にセットされる(値の変わる)遊技機用拡張仕様の特定ビットフラグ(第2ゼロフラグ)であり、ティーゼットフラグと呼ぶ場合もある。hは、プログラマーが関与できないハーフキャリーフラグであり、*は、予約ビット(未定義)であり、p/vは、パリティオーバーフローフラグであり、nは、プログラマーが関与できない加減算フラグであり、cは、演算の結果、桁上げまたはボロー発生時に1がセットされるキャリーフラグである。なお、Fレジスタは、AレジスタとペアレジスタAFを構成する。
また、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタは、8ビットの汎用レジスタであり、それぞれ16ビットのペアレジスタBC、DE、HLを構成する。IXレジスタ、IYレジスタは、インデックスアドレッシング用16ビット専用レジスタであり、IXh、IYhは、上位8ビットを示し、IXl、IYlは下位8ビットを示す。A’レジスタ、F’レジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタ、L’レジスタは、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタの表レジスタとの交換命令によりデータ(内容)交換可能な裏レジスタであり、A’レジスタとF’レジスタでペアレジスタAF’を構成し、B’レジスタとC’レジスタでペアレジスタBC’を構成し、D’レジスタとE’レジスタでペアレジスタDE’を構成し、H’レジスタとL’レジスタでペアレジスタHL’を構成する。かかる裏レジスタは、割込処理の発生時に表レジスタのスタック領域として機能する。
このような環境の下、メインCPU200aは、例えば、1.49msec毎の割込信号に応じて、使用領域のプログラムの命令コードに従い、使用領域のプログラムデータを参照しつつ、また、各内部レジスタ、使用領域のワークエリアやスタック領域を利用して、初期化手段300、ベット手段302、当選種別抽選手段304、リール制御手段306、判定手段308、払出制御手段310、遊技状態制御手段312、演出状態制御手段314、コマンド送信手段316を機能させる遊技制御処理を遂行する。
図13は、使用領域の制御領域に配されるプログラムの命令コードを示した説明図である。ここで、メインCPU200aは、例えば、1.49msec毎の割込信号に応じ、図13(a)、図13(b)に示す使用領域に格納されているプログラム(使用プログラム)の命令コードによって遊技制御処理を遂行する。なお、内部レジスタには、スタックポインタSPおよびプログラムカウンタPCは含まない。また、Rレジスタ(リフレッシュレジスタ)の内容は、保護の必要がないため処理の対象から除外している。
使用領域において図13(a)のプログラムの命令コードが遂行されると、まず、割り込み禁止命令「DI」により、割り込みが禁止される。次に、論理命令「OR A」により、Aレジスタの値に応じてゼロフラグがセットされる。例えば、Aレジスタの値が0であれば、ゼロフラグが1にセットされ、Aレジスタの値が0でなければ、ゼロフラグが0にセットされる。
続いて、ジャンプ命令「JP Z,MAIN1」により、ゼロフラグが1であるか否か判定され、ゼロフラグが1であれば、同一の使用領域に格納されているプログラム「MAIN1」の命令コードにジャンプする。そして、図13(b)に示されたプログラムの命令コードに従って遊技制御処理が遂行される。かかる処理が完了すると、ジャンプ命令「JP MAIN2」により元の命令コードに処理が戻る。最後に、割り込み許可命令「EI」により、割り込みが許可される。なお、ジャンプ命令「JP Z,MAIN1」の遂行時にゼロフラグが0であった場合、図13(b)に示されたプログラムの命令コードが遂行されることなく、割り込み許可命令「EI」により、割り込みが許可される。
ここでは、使用領域のみを用い、別領域に処理が移ることなく遊技制御処理が遂行される。このように、遊技制御処理では、複数の命令コード(モジュール)が使用領域に格納され、そのうちの1の命令コードが複数の命令コードから呼び出されたり、1回の割込で複数の命令コードが実行されることがある。
また、スロットマシン100では、上述した遊技制御処理の他に、所定の契機で、遊技の進行に影響を及ぼさない処理である、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理等を遂行する場合がある。かかる所定の契機としては、遊技制御処理の割込に応じたタイミング(例えば、1遊技の終了時)や、遊技制御処理と独立した異なる割込に応じたタイミングを採用することができる。以下、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理の処理態様を説明する。
(遊技機用試験処理)
メインCPU200aは、遊技機用試験機の接続で必要となるプログラムの命令コードに従い、遊技機用試験機の接続で必要となるプログラムデータを参照しつつ、また、各内部レジスタ、ワークエリアやスタック領域を利用して遊技機用試験処理を遂行する。その内容は、回胴式遊技機用試験機の接続仕様書(第四版)に記載されているが、以下に、その概略を説明する。
図14は、スロットマシン100の試射試験を説明するための説明図である。試射試験においては、図14に示すようにスロットマシン100と試射試験機400とを、各信号を統一するための第1インターフェースボード402および第2インターフェースボード404を介して接続する。
まず、試射試験機400は、第1インターフェースボード402のコネクトCN3を介して、スロットマシン100に所定の信号を出力する。ここで出力される所定の信号は、例えば、ベットスイッチ116、スタートスイッチ118、ストップスイッチ120等が操作された旨の擬似信号である。なお、実際には、これらのスイッチは操作されていないので、スイッチ毎に設けられたセンサは検出信号を出力することがないが、擬似的に操作されたものとして擬似信号が出力される。
また、かかる信号に対して、主制御基板200は、第1インターフェースボード402のコネクトCN1、CN2を介して、試射試験機400に所定の信号を出力する。ここで出力される所定の信号は、演出用ランプ126の状態、各種センサの状態、ステッピングモータ152の位置等を示す信号である。また、AT演出状態等による補助演出を採用している場合、主制御基板200は、第2インターフェースボード404のコネクトCN4を介して、試射試験機400に所定の信号を出力する。ここで出力される所定の信号は、最大の出玉率を得ることができる遊技方法に係る信号等である。ここでは、このような信号が、主として離散信号、すなわち、1(HIGH)または0(LOW)の2値で表される。
そして、図14のような構成を前提に、スタートスイッチ118、ストップスイッチ120、ベットスイッチ116等の入力に対する遊技制御処理(当選種別抽選、リール制御、ベット等)の作動状況が正常であるか、メインクレジット表示部130、メイン払出表示部132、各種ランプが正常に表示されているか等が試験される。また、ベットスイッチ116、スタートスイッチ118、ストップスイッチ120、遊技制御処理の作動の各種タイミング、例えば、スタートスイッチ118が操作されてから、最初にストップスイッチ120が有効になり、それに対応する演出用ランプ126の点灯消灯状態を管理するランプ信号がONとなるタイミング等、信号がON/OFFする条件が満たされてから信号が変化しているか、または、そのタイミングが適切な時間範囲に含まれているかが試験される。
また、出玉性能に係る(出玉率の上下限を確認する)試験としては、例えば、(1)短時間出玉率(任意の400遊技の区間における出玉率が300%未満であること)、(2)中時間出玉率(任意の6000遊技の区間における出玉率が150%未満であること)、(3)長時間出玉率(任意の17500遊技の区間における出玉率が120%未満であり、55%を超えること)、(4)役物比率(スロットマシン100から払い出された遊技メダルの内、役物(SB、CB、MB、RB、BB)の作動で獲得した出玉が70%以下であること)、(5)連続役物比率(遊技機から払い出された遊技メダルの内、連続役物(RBもしくはBB)の作動で獲得した出玉が60%以下であること)等が挙げられる。また、その試験方法としては、(A)シミュレーション試験(毎遊技で獲得できる最大の枚数を獲得する試験)、(B)試射試験1(遊技者が遊技する遊技方法と同じ遊技方法で遊技する試験)、(C)試射試験2(出玉率が最低となる遊技方法で遊技)等が挙げられる。
(セキュリティ関連処理)
また、メインCPU200aは、第三者の不正防止を目的とした異常状態を特定するために必要となるプログラムの命令コードに従い、異常状態を特定するために必要となるプログラムデータを参照しつつ、また、各内部レジスタ、ワークエリアやスタック領域を利用してセキュリティ関連処理を遂行する。
図15は、異常状態を説明するための説明図である。本実施形態では、図15に示すように、主制御基板200で管理される、例えば、12(種別)の異常状態「逆流エラー」、「エンプティエラー」、「払い出し詰まりエラー」、「払い出し異常エラー」、「オーバーエラー」、「滞留エラー」、「バックアップエラー」、「ドア開放エラー」、「投入異常エラー」、「表示判定異常エラー」、「RWM異常エラー」、「設定値異常エラー」が設けられ、それぞれに、エラーコード「E1」、「E2」、「E3」、「E4」、「E5」、「E6」、「E7」、「E8」、「E9」、「EE」、「EA」、「EC」が対応付けられている。
かかる異常状態は、それぞれ以下のように定義される。例えば、異常状態「逆流エラー」は、メダルの投入を受け付けている状態で、投入メダル検出部114bの2つの通過センサにおいてメダルの通過順序が正しくない場合に生じる。異常状態「エンプティエラー」は、メダルを払い出す際に、メダル払出装置142を構成する払出メダル検出部(図示せず)の通過センサのOFF状態が所定時間(例えば2100msec)以上継続した場合に生じる。異常状態「払い出し詰まりエラー」は、メダルを払い出す際に、払出メダル検出部の通過センサのON状態が所定時間(例えば172msec)以上継続した場合に生じる。異常状態「払い出し異常エラー」は、メダルの払い出し以外で、払出メダル検出部の通過センサのON状態が所定時間(例えば6msec)以上継続した場合に生じる。異常状態「オーバーエラー」は、メダル払出装置142を構成するメダル貯留部(図示せず)に設けられたオーバーフローセンサ(図示せず)のON状態が所定時間(例えば700msec)以上継続した場合に生じる。異常状態「滞留エラー」は、投入メダル検出部114bの通過センサのON状態が所定時間(例えば132msec)以上継続した場合、または、メダル投入口114aに投入されたメダルを検出する投入検知センサのON状態が所定時間(例えば533msec)以上継続した場合に生じる。異常状態「バックアップエラー」は、電源スイッチ144の投入時においてRWMのバックアップ異常を検出した場合に生じる。異常状態「ドア開放エラー」は、前扉としての前面上扉104または前面下扉106のいずれかの開放状態を検知するドア開閉スイッチ(図示せず)のON状態が所定時間(例えば48msec)以上継続した場合に生じる。異常状態「投入異常エラー」は、ブロッカー(図示せず)を閉塞してから所定時間(例えば269msec)以上経過後に投入メダル検出部114bの通過センサがON状態の場合、または、メダルの投入を受け付けている状態で、投入メダル検出部114bの2つの通過センサにおいて正しい順序で通過したメダル数と、Rシュートセンサ(図示せず)を通過したメダル数との差が一定以上あった場合に生じる。異常状態「表示判定異常エラー」は、判定処理ステップS600において、有効ラインA上に表示されることを許可されていない小役の入賞、または、リプレイ役やボーナス役の作動に係る図柄の組み合わせが有効ラインA上に表示された場合に生じる。異常状態「RWM異常エラー」は、コールドスタート時において、値を正常に読み書きすることができないRWMを検出した場合に生じる。異常状態「設定値異常エラー」は、当選種別抽選等の内部抽選時において、参照した設定値が許容範囲(設定1〜設定6)外の場合に生じる。
メインCPU200aは、このような複数の異常状態のうちのいずれかの異常状態が発生したか否かを判定し、メインクレジット表示部130またはメイン払出表示部132に、異常状態に対応付けられたエラーコードを表示(報知)する。具体的に、前面上扉104または前面下扉106が開放されると、異常状態「ドア開放エラー」が発生したと判定され、異常状態「ドア開放エラー」に対応付けられたエラーコード「E8」が、例えば、メイン払出表示部132に表示(報知)される。
(有利区間関連処理)
また、メインCPU200aは、上述した有利区間比率、連続役物比率、役物比率を計算するために必要となるプログラムの命令コードに従い、有利区間比率、連続役物比率、役物比率を計算するために必要となるプログラムデータを参照しつつ、また、各内部レジスタ、ワークエリアやスタック領域を利用して有利区間関連処理を遂行する。例えば、メインCPU200aは、ワークエリアを用いて、総遊技数カウンタ、滞在遊技数カウンタ、総払出数カウンタ、役物払出数カウンタ、連続役物払出数カウンタを構成し、遊技の進行やメダルの払い出しに応じて、その値を更新する。そして、演出状態制御手段314は、所定の表示指令に基づいて、導出した有利区間比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率を、主制御基板200に設けられた図示しない比率表示部に表示する。
なお、かかる有利区間関連処理は、遊技制御処理の割込に応じたタイミング、例えば、1遊技の終了時である払出処理S700の実行中に遂行することも、遊技制御処理と独立した異なる割込に応じたタイミングで行うこともできる。ここで、1遊技の終了時に有利区間関連処理を遂行する場合、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数、有利区間比率に関しては遊技毎に常に計算され、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率に関しては所定の遊技数(例えば400遊技)毎に計算される。
(使用領域とは別の別領域)
上述したように、メインCPU200aは、遊技制御処理のみならず、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理も遂行する場合がある。しかし、使用領域の記憶容量は予め定められており、例えば、図11に示したように、制御領域が4.5kbyteに制限され、データ領域が3.0kbyteに制限されている。したがって、遊技制御処理のみならず、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のプログラムやデータまでも使用領域に配すると、その分、遊技制御処理が制限されてしまう。特に、AT演出状態や、リール110を多彩な態様で回転させる所謂リール演出を、メインCPU200aが管理する場合、遊技制御処理がさらに圧迫されるおそれがある。
ここで、遊技制御処理を実行するためのプログラム(使用プログラム)やデータは、必ず使用領域に格納しなければならないが、遊技制御処理以外の遊技の進行に影響を及ぼさない(直接関係のない)処理(遊技機用試験処理、セキュリティ関連処理、有利区間関連処理等)を実行するためのプログラム(別プログラム)やデータは使用領域および別領域のいずれにも格納できる。そこで、本実施形態では、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理等を実行するためのプログラムやデータの少なくとも一部を、使用領域とは異なる(使用領域外の)記憶領域のうちの一部である別領域に記述する。図11を用いて上述したように、メインROM200bの0000h〜1DF3hのメモリ空間には使用領域が割り当てられ、メインRAM200cのF000h〜F1FFhのメモリ空間には使用領域が割り当てられている。そして、かかる使用領域とは別の領域に別領域を設定する。
例えば、図11に示すように、メインROM200bの1F00h〜2FBFhのメモリ空間には別領域が割り当てられ、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理を遂行するプログラムの命令コードおよびプログラムデータが格納されている。また、メインRAM200cのF200h〜F3FFhのメモリ空間には別領域が割り当てられている。具体的に、F210h〜F22Fhのメモリ空間には、上記遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F230h〜F246hのメモリ空間には、上記遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理のスタック領域が割り当てられている。なお、別領域に記憶容量の制限はなく、図11の例では、使用領域、コメント領域、および、プログラム管理領域以外の記憶領域に、自由に割り当てることができる。
このように使用領域で遂行される処理(ここでは、遊技制御処理)と、必ずしも使用領域で行わなくてよい処理(ここでは、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理)とが混在している場合には、遊技制御処理を実行するためのプログラム(使用プログラム)やデータを使用領域に格納し、使用領域で行わなくてよい、遊技制御処理以外の遊技の進行に影響を及ぼさない処理(遊技機用試験処理、セキュリティ関連処理、有利区間関連処理等)を実行するためのプログラム(別プログラム)やデータを別領域に格納する。なお、例えば、遊技機用試験処理について、遊技機用試験機の接続で必要となるプログラムおよびデータについては、遊技機規則、すなわち、平成16年(2004年)1月30日の国家公安委員会規則第1での改正を経た昭和60年(1985年)2月12日の国家公安委員会規則第4「遊技機の認定及び型式の検定等に関する規則」の別表第三(2)イ(ハ)における使用領域とは別の領域に配置することは問題ないとされている。このように記憶領域を複数に区分することで、別領域に移動させたプログラムの分だけ使用領域の記憶領域に余裕が生じる。したがって、その分、使用領域を遊技制御処理(使用プログラム)に割り当てることが可能となる。
しかし、そのように記憶領域を、使用領域、別領域、その他の領域とで役割分担した場合においても、スロットマシン100の公正さは担保されなくてはならない。ここでは、スロットマシン100の公正さを担保しつつ、使用領域と別領域とで適切に役割分担するために、以下の(1)〜(6)の条件を規定する。
条件(1)、別領域に配置するプログラムについては、スロットマシン100の試験に必要な信号の出力(遊技機用試験処理)、不正防止(セキュリティ関連処理)、および、有効区間に関する計算(有利区間関連処理)を目的として使用され、遊技の公正を害さない(損なわない)ものであること。条件(2)、使用領域と別領域の制御領域およびデータ領域については、それぞれを明示的に区別された領域に配置すること。条件(3)、別領域に配置するプログラム(別プログラム)は、使用領域のプログラム(使用プログラム)から静的に呼び出された上で実行されること。また、その際のプログラムリストにおいては、呼び出し先アドレスが明らかに記載されていること。条件(4)、別領域に配置するプログラムは機能ごとにモジュール化し、呼び出された際には、使用領域で利用している全レジスタの内容を保護すること。条件(5)、使用領域または別領域から互いの領域にあるRWMへのアクセスは参照のみ可能とし、更新は不可とすること。条件(6)、別領域の制御領域から使用領域の制御領域にあるサブルーチンを呼び出すことは不可とすること。なお、使用領域に割込処理を行うサブルーチンを設けることから、別領域の制御領域を使用する際には、割込禁止にする必要が生じる。なお、遊技制御処理を適切に遂行するために、割込禁止を行ってから割込禁止を解除するまでの時間は、遊技制御処理における割込処理の間隔(例えば1.49msec)以内とならなければならない。したがって、別領域の制御領域を使用するサブルーチンを呼び出す場合、その1回の呼び出しにかかる総時間は、遊技制御処理の割込処理の間隔以内となるように設定することとなる。以下では、これらの条件を規定した上で、使用領域から、別領域に配置されるプログラムを呼び出す例を挙げる。
(第1の実施例)
図16は、使用領域の制御領域および別領域の制御領域に配されるプログラムの命令コードを示した説明図である。ここで、メインCPU200aは、例えば、1.49msec毎の割込信号に応じて、図16(a)に示す使用領域に格納されているプログラム(使用プログラム)の命令コードによって遊技制御処理を遂行し、必要に応じて別領域のプログラム(別プログラム)を呼び出す処理を遂行する。そして、メインCPU200aは、図16(b)に示す別領域に格納されているプログラム「SAMPLE1」の命令コードによる処理を遂行し、その処理が完了すると使用領域に格納されているプログラムの処理に復帰する。ここで、プログラム「SAMPLE1」は第1の実施例において呼び出されるプログラムの典型例を示し、実際は、「SAMPLE1」として複数のプログラム(命令コード)が別領域に格納されている。なお、当該第1の実施例、ならびに、後述する第2の実施例および第3の実施例では、外部割込、マスク不能な割込NMIは使用していない。また、内部レジスタには、スタックポインタSPおよびプログラムカウンタPCは含まない。また、Rレジスタ(リフレッシュレジスタ)の内容は、保護の必要がないため処理の対象から除外している。
使用領域において図16(a)のプログラムの命令コードが遂行されると、まず、割り込み禁止命令「DI」により、割り込みが禁止される。次に、退避命令「PUSH ALL」によって、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IYの各内部レジスタ)の内容が一括して使用領域のスタック領域に退避される。こうして、図16(c)に示すように、使用領域のスタック領域(例えば、アドレスF1F2h〜F1FFh)に内部レジスタの内容が保持される。
続いて、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換し、かつ、交換命令「EXX」により、表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換する。そして、退避命令「PUSH GRP」により、内部レジスタ(AF,BC,DE,HLの各レジスタ)の内容(元々(別領域の命令コードを呼び出す直前)の裏レジスタAF’,BC’,DE’,HL’の内容)が使用領域のスタック領域に退避される。退避されるスタック領域のアドレスは、退避命令「PUSH ALL」による退避内容に上書きしないよう、それより若いアドレスとなる。ここでは、結果的に、元々の裏レジスタAF’,BC’,DE’,HL’の内容が退避されることとなる。こうして、図16(c)に示すように、使用領域のスタック領域(例えば、アドレスF1EAh〜F1F1h)に内部レジスタの内容が保持される。ここでは、元々の裏レジスタAF’,BC’,DE’,HL’の内容も退避されるので、仮に、使用領域において割込処理が実行され、表レジスタAF,BC,DE,HLの内容が裏レジスタAF’,BC’,DE’,HL’に退避されている状態で当該別領域のプログラムが遂行されたとしても、裏レジスタAF’,BC’,DE’,HL’に退避されている元々の表レジスタAF,BC,DE,HLの内容を適切に復帰させることができ、使用領域の遊技制御処理が影響を受けることを確実に回避できる。
こうして、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各内部レジスタ)の内容が全て退避されると、メインCPU200aは、呼び出し命令「CALL SAMPLE1」により、図16(b)に示す別領域のプログラムの命令コードを呼び出す。このとき、図16(c)に示すように、使用領域のスタック領域(例えば、アドレスF1E8h〜F1E9h)には、呼び出し命令の戻り番地(F1E9hに戻り番地の上位8ビット、F1E8hに戻り番地の下位8ビット)が退避される。
別領域においては、図16(b)に示されたプログラムの命令コードに従って所定の処理が実行される。例えば、上述した遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理が遂行される。例えば、遊技制御処理における払い出し処理S700において、別領域に格納された有利区間関連処理が呼び出される。ここでは、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各内部レジスタ)の内容が全て退避されているので、使用領域で利用している全レジスタの内容を保護しつつ、別領域において各内部レジスタを使用することができる。かかる処理が完了すると、戻り命令「RET」により、使用領域のスタック領域(例えば、アドレスF1E8h〜F1E9h)が参照され、使用領域に処理が戻る。
そして、使用領域においては、復帰命令「POP GRP」により、使用領域のスタック領域(例えば、アドレスF1EAh〜F1F1h)に退避されていた内容を内部レジスタ(AF,BC,DE,HLの各内部レジスタ)に復帰させる。こうして、退避されていた元々の裏レジスタAF’,BC’,DE’,HL’の内容が、一旦、表レジスタAF,BC,DE,HLに格納される。次に、交換命令「EXX」により、表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換し、かつ、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換する。こうして、元々の裏レジスタAF’,BC’,DE’,HL’の内容が復帰することとなる。
続いて、復帰命令「POP ALL」によって、使用領域のスタック領域(例えば、アドレスF1F2h〜F1FFh)に退避されていた内容を一括して内部レジスタ(Q,I,AF,BC,DE,HL,IX,IYの各内部レジスタ)に復帰させる。最後に、割り込み許可命令「EI」により、割り込みが許可される。
使用領域に記述された図16(a)のプログラムの命令コードは、「DI」、「EX」、「EXX」、「EI」が各1バイト、「PUSH ALL」、「PUSH GRP」、「POP ALL」、「POP GRP」が各2バイト、「CALL SAMPLE1」が3バイトなので計17バイト(1バイト×6+2バイト×4+3バイト)となる。したがって、図16(b)に示した別領域のプログラムの命令コードが17バイトを超える命令コードで記述される場合、その17バイトを超える分について、使用領域の容量を節約できることになる。なお、図16(b)に示したような別領域のプログラムの命令コード(モジュール)は、通常複数となることが多いため、一つ一つの処理での節約バイト数は少なくとも、トータルでは大きな節約効果を得ることができる。
上記の例では、別領域に遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理を配しているので、条件(1)の「別領域に配置するプログラムについては、遊技機用試験処理、セキュリティ関連処理、および、有利区間関連処理を目的として使用され、遊技の公正を害さないものであること」を満たす。
また、図11のように、メモリマップを構成しているので、条件(2)の「使用領域と別領域の制御領域およびデータ領域については、それぞれを明示的に区別された領域に配置すること」も満たしている。
また、図16(a)の呼び出し命令「CALL SAMPLE1」により、別領域のプログラムの命令コードが静的に呼び出され、また、呼び出し先アドレスは「SAMPLE1」と明らかなので、条件(3)の「別領域に配置するプログラムは、使用領域のプログラムから静的に呼び出された上で実行されること。また、その際のプログラムリストにおいては、呼び出し先アドレスが明らかに記載されていること」も満たしている。
また、図16(b)に示すように、別領域のプログラムの命令コードは機能単位でモジュール化され、図16(a)の命令コード「PUSH ALL」、「EX」、「EXX」、「PUSH GRP」によって、全ての内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が退避され、命令コード「POP GRP」、「EXX」、「EX」、「POP ALL」によって、全ての内部レジスタの内容が復帰され、仮に、別領域のプログラムの命令コードを遂行中に内部レジスタの内容が破壊されたとしても、使用領域で使用される内部レジスタの同一性は保たれるので、条件(4)の「別領域に配置するプログラムは機能ごとにモジュール化し、呼び出された際には、使用領域で利用している全レジスタの内容を保護すること」も満たしている。
また、図16(a)、図16(b)のように、命令コードを呼び出し命令「CALL」に絞り、メインRAM200cにおける互いの領域を参照する場合であっても、更新を実行しないとすることで、条件(5)の「使用領域または別領域から互いの領域にあるRWMへのアクセスは参照のみ可能とし、更新は不可とすること」も満たしている。
また、図16(a)、図16(b)のように、呼び出し命令「CALL」を使用領域でのみ記述し、別領域から使用領域のプログラムの命令コードを呼び出さないとすることで、条件(6)の「別領域の制御領域から使用領域の制御領域にあるサブルーチンを呼び出すことは不可とすること」も満たしている。
こうして、スロットマシン100の公正さを担保しつつ、使用領域と別領域とで適切に役割分担することが可能となる。また、使用領域および別領域のいずれにも配置可能な処理(遊技機用試験処理、セキュリティ関連処理、有利区間関連処理)を実行する別プログラムの命令コードを別領域に配置することで、使用領域にしか配置できない遊技制御処理を実行する使用プログラムを割り当てることが可能な記憶容量が増加し(使用領域に余裕が生じ)、その分、遊技制御処理を拡充できる。さらに、ここでは、全ての内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各内部レジスタ)の内容が退避されるので、別領域の命令コードを呼び出す直前に、使用領域を用いて行われる遊技制御処理において、裏レジスタAF’,BC’,DE’,HL’を含む全ての内部レジスタが利用されていたとしても、その別領域の命令コードを呼び出す直前の全ての内部レジスタの内容を保護することが可能となる。
(第2の実施例)
第1の実施例では、使用領域において命令コードが17バイトとなる例を挙げて説明した。第2の実施例では、内部レジスタの内容の退避処理を別領域で行うことで、使用領域における命令コードの記述量をさらに少なくする。なお、ここでは、別領域において、使用領域のSP(スタックポインタ)の退避と、別領域のSPの設定が行われる。
ここで、フラグレジスタ(Fレジスタ)には、データ転送命令(LD;ロード)の実行により値が変わる特定ビットフラグ(tz)が定義されている。これにより、演算の結果、全ビットが0のとき1にセットされる通常のゼロフラグによる処理の分岐の他、データ転送命令の実行により値の変わる特定ビットフラグによる処理の分岐も可能となり、使用領域での遊技制御処理で用いる分岐処理が少ない命令数で記述でき、記憶容量の節約を図ることができる。かかる反面、このような特定ビットフラグを定義したことにより、スタック領域を使い分けするとき、スタックポインタの変更に伴うデータ転送により、フラグレジスタの内容が変化する可能性がある。ここでは、フラグレジスタの内容を使用領域のスタック領域に退避させ、別領域からの復帰後に使用領域のスタック領域から復帰させるため、別領域のプログラムの実行前後でフラグレジスタの同一性は保たれる。よって、特定ビットフラグを定義したことにより使用領域での遊技制御処理の容量節約を可能としながら、容量節約も効果的に図ることができる。
図17は、使用領域の制御領域および別領域の制御領域に配されるプログラムの命令コードを示した説明図である。ここでも、第1の実施例同様、メインCPU200aは、例えば、1.49msec毎の割込信号に応じて、図17(a)に示す使用領域に格納されているプログラム(使用プログラム)の命令コードによって遊技制御処理を遂行し、必要に応じて別領域のプログラム(別プログラム)を呼び出す処理を遂行する。そして、メインCPU200aは、図17(b)に示す別領域に格納されているプログラム「SAMPLE2」の命令コードによる処理を遂行し、その処理が完了すると使用領域に格納されているプログラムの処理に復帰する。ここで、プログラム「SAMPLE2」は第1の実施例において呼び出されるプログラムの典型例を示し、実際は、「SAMPLE2」として複数のプログラム(命令コード)が別領域に格納されている。
使用領域において図17(a)のプログラムの命令コードが遂行されると、まず、割り込み禁止命令「DI」により、割り込みが禁止される。次に、退避命令「PUSH AF」により、使用領域で使用しているメインCPU200aの内部レジスタAFの内容が、図17(c)に示す使用領域のスタック領域(例えば、アドレスF1FEh〜F1FFh)に退避される。こうして、少なくともフラグレジスタの内容は保護される。使用領域で使用しているメインCPU200aの内部レジスタAFの内容が退避されると、メインCPU200aは、呼び出し命令「CALL SAMPLE2」により、図17(b)に示す別領域のプログラムの命令コードを呼び出す。このとき、図17(c)に示すように、使用領域のスタック領域(例えば、アドレスF1FCh〜F1FDh)には、呼び出し命令の戻り番地(F1FDhに戻り番地の上位8ビット、F1FChに戻り番地の下位8ビット)が退避される。
別領域においては、図17(b)に示されたプログラムの命令コードに従って所定の処理が実行される。まず、ロード命令「LD (EX_STCB),SP」により、使用領域のスタックポインタが、ポインタEX_STCBが示すアドレスに退避(保持)される。そして、ロード命令「LD SP,@SK2_ARE_BAS+1」により、新たに、別領域用のスタックポインタの初期値を設定する。ここでは、スタックポインタとしてアドレスF246hから使えるので、スタックポインタとしては、そのアドレスに1つ加算したF247h(@SK2_ARE_BAS+1)を設定する。かかる命令コードにより、使用領域のスタックポインタを適切に退避させることができ、別領域のプログラムの遂行の影響を受けなくて済む。
次に、退避命令「PUSH ALL」によって、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IYの各レジスタ)の内容が一括して別領域のスタック領域に退避される。こうして、図17(d)に示すように、別領域のスタック領域(例えば、アドレスF239h〜F246h)に内部レジスタの内容が保持される。
続いて、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換し、かつ、交換命令「EXX」により、表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換する。そして、退避命令「PUSH GRP」により、内部レジスタ(AF,BC,DE,HLの各レジスタ)の内容(元々(別領域の命令コードを呼び出す直前)の裏レジスタAF’,BC’,DE’,HL’の内容)が別領域のスタック領域に退避される。退避されるスタック領域のアドレスは、退避命令「PUSH ALL」による退避内容に上書きしないよう、それより若いアドレスとなる。ここでは、結果的に、元々の裏レジスタAF’,BC’,DE’,HL’の内容が退避されることとなる。こうして、図17(d)に示すように、使用領域のスタック領域(例えば、アドレスF231h〜F238h)に内部レジスタの内容が保持される。ここでは、元々の裏レジスタAF’,BC’,DE’,HL’の内容も退避されるので、仮に、使用領域において割込処理が実行され、表レジスタAF,BC,DE,HLの内容が裏レジスタAF’,BC’,DE’,HL’に退避されている状態で当該別領域のプログラムが遂行されたとしても、裏レジスタAF’,BC’,DE’,HL’に退避されている元々の表レジスタAF,BC,DE,HLの内容を適切に復帰させることができ、使用領域の遊技制御処理が影響を受けることを確実に回避できる。
こうして、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が全て退避されると、例えば、上述した遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理が遂行される。ここでは、使用領域で使用しているメインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が全て退避されているので、使用領域で利用している全レジスタの内容を保護しつつ、別領域において各内部レジスタを使用することができる。
かかる処理が完了すると、復帰命令「POP GRP」により、別領域のスタック領域(例えば、アドレスF231h〜F238h)に退避されていた内容を内部レジスタ(AF,BC,DE,HLの各レジスタ)に復帰させる。こうして、退避されていた元々の裏レジスタAF’,BC’,DE’,HL’の内容が一旦表レジスタAF,BC,DE,HLに格納される。次に、交換命令「EXX」により、表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換し、かつ、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換する。こうして、元々の裏レジスタAF’,BC’,DE’,HL’の内容が復帰することとなる。
続いて、復帰命令「POP ALL」によって、別領域のスタック領域(例えば、アドレスF239h〜F246h)に退避されていた内容を一括して内部レジスタ(Q,I,AF,BC,DE,HL,IX,IYの各レジスタ)に復帰させる。こうして、メインCPU200aの内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が全て復帰する。次に、ロード命令「LD SP,(EX_STCB)」により、ポインタEX_STCBが示すアドレスの内容を使用領域のスタックポインタに復帰させる。次に、戻り命令「RET」により、使用領域のスタック領域(例えば、アドレスF1FCh〜F1FDh)が参照され、使用領域に処理が復帰される。
そして、使用領域においては、復帰命令「POP AF」により、使用領域のスタック領域(例えば、アドレスF1FEh〜F1FFh)に退避されていた内容を内部レジスタAFに復帰させる。最後に、割り込み許可命令「EI」により、割り込みが許可される。
使用領域に記述された図17(a)のプログラムの命令コードは、「DI」、「PUSH AF」、「POP AF」、「EI」が各1バイト、「CALL SAMPLE2」が3バイトなので計7バイト(1バイト×4+3バイト)となる。これは、第1の実施例において図16(a)で示した使用領域におけるプログラムの命令コード(17バイト)より短い。したがって、図17(b)に示した別領域のプログラムの命令コードが7バイトを超える命令コードで記述される場合、その7バイトを超える分について、使用領域の容量を節約できることになる。なお、第1の実施例同様、図17(b)に示したような別領域のプログラムの命令コード(モジュール)は、通常複数となることが多いため、一つ一つの処理での節約バイト数は少なくとも、トータルでは大きな節約効果を得ることができる。
上記の例では、別領域に遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理を配しているので、条件(1)の「別領域に配置するプログラムについては、遊技機用試験処理、セキュリティ関連処理、および、有利区間関連処理を目的として使用され、遊技の公正を害さないものであること」を満たす。
また、図11のように、メモリマップを構成しているので、条件(2)の「使用領域と別領域の制御領域およびデータ領域については、それぞれを明示的に区別された領域に配置すること」も満たしている。
また、図17(a)の呼び出し命令「CALL SAMPLE2」により、別領域のプログラムの命令コードが静的に呼び出され、また、呼び出し先アドレスは「SAMPLE2」と明らかなので、条件(3)の「別領域に配置するプログラムは、使用領域のプログラムから静的に呼び出された上で実行されること。また、その際のプログラムリストにおいては、呼び出し先アドレスが明らかに記載されていること」も満たしている。
また、図17(b)に示すように、別領域のプログラムの命令コードは機能単位でモジュール化され、図17(b)の命令コード「PUSH ALL」、「EX」、「EXX」、「PUSH GRP」によって、全ての内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が退避され、命令コード「POP GRP」、「EXX」、「EX」、「POP ALL」によって、全ての内部レジスタの内容が復帰され、仮に、別領域のプログラムの命令コードを遂行中に内部レジスタの内容が破壊されたとしても、使用領域で使用される内部レジスタの同一性は保たれるので、条件(4)の「別領域に配置するプログラムは機能ごとにモジュール化し、呼び出された際には、使用領域で利用している全レジスタの内容を保護すること」も満たしている。
また、図17(a)、図17(b)のように、命令コードを呼び出し命令「CALL」に絞り、メインRAM200cにおける互いの領域を参照する場合であっても、更新を実行しないとすることで、条件(5)の「使用領域または別領域から互いの領域にあるRWMへのアクセスは参照のみ可能とし、更新は不可とすること」も満たしている。
また、図17(a)、図17(b)のように、呼び出し命令「CALL」を使用領域でのみ記述し、別領域から使用領域のプログラムの命令コードを呼び出さないとすることで、条件(6)の「別領域の制御領域から使用領域の制御領域にあるサブルーチンを呼び出すことは不可とすること」も満たしている。
こうして、スロットマシン100の公正さを担保しつつ、使用領域と別領域とで適切に役割分担することが可能となる。また、また、使用領域および別領域のいずれにも配置可能な処理(遊技機用試験処理、セキュリティ関連処理、有利区間関連処理)を実行する別プログラムの命令コードを別領域に配置することで、使用領域にしか配置できない遊技制御処理を実行する使用プログラムを割り当てることが可能な記憶容量が増加し(使用領域に余裕が生じ)、その分、遊技制御処理を拡充できる。なお、第2の実施例では、使用領域におけるプログラムの命令コードが、第1の実施例の17バイトと比較して7バイトと少なく済むので、第1の実施例と比べても、遊技制御処理を実行する使用プログラムを割り当てることが可能な記憶容量を大きくとることができる。また、ここでは、全ての内部レジスタ(Q,I,AF,BC,DE,HL,IX,IY,AF’,BC’,DE’,HL’の各レジスタ)の内容が退避されるので、別領域の命令コードを呼び出す直前に、使用領域を用いて行われる遊技制御処理において、裏レジスタAF’,BC’,DE’,HL’を含む全ての内部レジスタが利用されていたとしても、その別領域の命令コードを呼び出す直前の全ての内部レジスタの内容を保護することが可能となる。
(第3の実施例)
第2の実施例では、使用領域において命令コードが7バイトとなる例を挙げて説明した。第3の実施例では、内部レジスタの内容の退避処理を別領域で行うこと前提に、別領域で利用する内部レジスタの使用を制限することで、使用領域における命令コードの記述量をさらに少なくする。具体的に、使用領域においては、表レジスタAF,BC,DE,HLを使用し、裏レジスタAF’,BC’,DE’,HL’は使用しない。そして、別領域では、他の表レジスタQ,I,HL,IX,IYおよび裏レジスタAF’,BC’,DE’,HL’を使用せず(使用を制限し)、表レジスタAF,BC,DE,HLの内容の退避のみを行う。このように内部レジスタの使用態様(仕様)は、スロットマシン100の機種毎に異ならせることができる。また、ここでは、割り込み許可命令「EI」は、次の命令の実行後に有効(割り込み許可)となる特性を利用して、割り込み許可命令「EI」も別領域で実行している。
図18は、使用領域の制御領域および別領域の制御領域に配されるプログラムの命令コードを示した説明図である。ここでも、第1の実施例および第2の実施例同様、メインCPU200aは、例えば、1.49msec毎の割込信号に応じて、図18(a)に示す使用領域に格納されているプログラム(使用プログラム)の命令コードによって遊技制御処理を遂行し、必要に応じて別領域のプログラム(別プログラム)を呼び出す処理を遂行する。そして、メインCPU200aは、図18(b)に示す別領域に格納されているプログラム「SAMPLE3」の命令コードによる処理を遂行し、その処理が完了すると使用領域に格納されているプログラムの処理に復帰する。ここで、プログラム「SAMPLE3」は第1の実施例において呼び出されるプログラムの典型例を示し、実際は、「SAMPLE3」として複数のプログラム(命令コード)が別領域に格納されている。
使用領域において図18(a)のプログラムの命令コードが遂行されると、まず、割り込み禁止命令「DI」により、割り込みが禁止される。次に、内部レジスタの内容を退避させることなく、メインCPU200aは、呼び出し命令「CALL SAMPLE3」により、図18(b)に示す別領域のプログラムの命令コードを呼び出す。このとき、図18(c)に示すように、使用領域のスタック領域(例えば、アドレスF1FEh〜F1FFh)には、呼び出し命令の戻り番地(F1FFhに戻り番地の上位8ビット、F1FEhに戻り番地の下位8ビット)が退避される。
別領域においては、図18(b)に示されたプログラムの命令コードに従って所定の処理が実行される。まず、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換することで、元々(別領域の命令コードを呼び出す直前)の表レジスタAFの内容を裏レジスタAF’に退避させる。また、交換命令「EXX」により、元々の表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換することで、表レジスタBC,DE,HLの内容を裏レジスタBC’,DE’,HL’に退避させる。こうして、スタックポインタを設定することなく、内部レジスタ(AF,BC,DE,HLの各内部レジスタ)の内容を退避させることができる。
こうして、使用領域で使用しているメインCPU200aの内部レジスタ(AF,BC,DE,HLの各内部レジスタ)の内容が全て退避されると、例えば、上述した遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理が遂行される。ここでは、使用領域で使用しているメインCPU200aの内部レジスタ(AF,BC,DE,HLの各内部レジスタ)の内容が全て退避されており、また、他の内部レジスタは使用が制限されているので、使用領域で利用している内部レジスタの内容を保護しつつ、使用を制限していない各内部レジスタを使用することができる。
かかる処理が完了すると、交換命令「EXX」により、表レジスタBC,DE,HLの内容と裏レジスタBC’,DE’,HL’の内容を交換することで、元々の表レジスタBC,DE,HLの内容が復帰される。また、交換命令「EX AF,AF’」により、表レジスタAFの内容と裏レジスタAF’の内容を交換することで、元々の表レジスタAFの内容が復帰される。
このように、別領域のプログラムの命令コードが一通り遂行された後、第3の実施例では、戻り命令「RET」の前に、割り込み許可命令「EI」を実行する。かかる割り込み許可命令「EI」は、次の命令の実行後に有効(割り込み許可)となる特性を有している。したがって、次の命令「RET」の前に実行しても、割り込みが許可されるのは使用領域に処理が戻された後になるので問題ない。そして、戻り命令「RET」により、使用領域のスタック領域(例えば、アドレスF1FEh〜F1FFh)が参照され、使用領域に処理が復帰される。なお、かかる戻り命令「RET」の後に、実質的に割り込みが許可される。
使用領域に記述された図18(a)のプログラムの命令コードは、「DI」が1バイト、「CALL SAMPLE3」が3バイトなので計4バイト(1バイト+3バイト)となる。これは、第1の実施形態において図16(a)で示した使用領域におけるプログラムの命令コード(17バイト)や第2の実施例において図17(a)で示した使用領域におけるプログラムの命令コード(7バイト)より短い。したがって、図18(b)に示した別領域のプログラムの命令コードが4バイトを超える命令コードで記述される場合、その4バイトを超える分について、使用領域の容量を節約できることになる。なお、第1の実施例や第2の実施例同様、図18(b)に示したような別領域のプログラムの命令コード(モジュール)は、通常複数となることが多いため、一つ一つの処理での節約バイト数は少なくとも、トータルでは大きな節約効果を得ることができる。
上記の例では、別領域に遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理を配しているので、条件(1)の「別領域に配置するプログラムについては、遊技機用試験処理、セキュリティ関連処理、および、有利区間関連処理を目的として使用され、遊技の公正を害さないものであること」を満たす。
また、図11のように、メモリマップを構成しているので、条件(2)の「使用領域と別領域の制御領域およびデータ領域については、それぞれを明示的に区別された領域に配置すること」も満たしている。
また、図18(a)の呼び出し命令「CALL SAMPLE3」により、別領域のプログラムの命令コードが静的に呼び出され、また、呼び出し先アドレスは「SAMPLE3」と明らかなので、条件(3)の「別領域に配置するプログラムは、使用領域のプログラムから静的に呼び出された上で実行されること。また、その際のプログラムリストにおいては、呼び出し先アドレスが明らかに記載されていること」も満たしている。
また、図18(b)に示すように、別領域のプログラムの命令コードは機能単位でモジュール化され、図18(b)の命令コード「EX」、「EXX」によって、使用が許可される範囲の内部レジスタ(AF,BC,DE,HLの各内部レジスタ)の内容が退避され、命令コード「EXX」、「EX」によって、その内部レジスタの内容が復帰され、仮に、別領域のプログラムの命令コードを遂行中に内部レジスタの内容が破壊されたとしても、使用領域で使用される内部レジスタの同一性は保たれるので、条件(4)の「別領域に配置するプログラムは機能ごとにモジュール化し、呼び出された際には、使用領域で利用している全レジスタの内容を保護すること」も満たしている。
また、図18(a)、図18(b)のように、命令コードを呼び出し命令「CALL」に絞り、メインRAM200cにおける互いの領域を参照する場合であっても、更新を実行しないとすることで、条件(5)の「使用領域または別領域から互いの領域にあるRWMへのアクセスは参照のみ可能とし、更新は不可とすること」も満たしている。
また、図18(a)、図18(b)のように、呼び出し命令「CALL」を使用領域でのみ記述し、別領域から使用領域のプログラムの命令コードを呼び出さないとすることで、条件(6)の「別領域の制御領域から使用領域の制御領域にあるサブルーチンを呼び出すことは不可とすること」も満たしている。
こうして、スロットマシンの公正さを担保しつつ、使用領域と別領域とで適切に役割分担することが可能となる。また、使用領域および別領域のいずれにも配置可能な処理(遊技機用試験処理、セキュリティ関連処理、有利区間関連処理)を実行する別プログラムの命令コードを別領域に配置することで、使用領域にしか配置できない遊技制御処理を実行する使用プログラムを割り当てることが可能な記憶容量が増加し(使用領域に余裕が生じ)、その分、遊技制御処理を拡充できる。なお、第3の実施例では、使用領域におけるプログラムの命令コードが、第1の実施例の17バイトや第2の実施例の7バイトと比較して4バイトと少なく済むので、第1の実施例や第2の実施例と比べても、遊技制御処理を実行する使用プログラムを割り当てることが可能な記憶容量を大きくとることができる。また、ここでは、内部レジスタの一部(AF,BC,DE,HLの各内部レジスタ)の内容が退避されるので、別領域の命令コードを呼び出す直前に、使用領域を用いて行われる遊技制御処理において、表レジスタAF,BC,DE,HLが利用されていたとしても、その別領域の命令コードを呼び出す直前の内部レジスタの内容を保護することが可能となる。
また、第3の実施例においては、命令コード「PUSH」、「POP」を用いていないので、スタックポインタを不要に使用しないで済み、スタック領域を他の処理に割り当てることができる。
さらに、命令コード「EI」を別領域のプログラムの命令コードに含めることで、割り込み許可を適切なタイミングで実行しつつ、使用領域の記憶容量を確保することが可能となる。なお、命令コード「EI」を別領域のプログラムの命令コードに含める態様を第3の実施例で説明したが、第1の実施例や第2の実施例に適用できることは言うまでもない。この場合、第3の実施例同様、別領域のプログラムにおける命令コード「RET」の直前に、命令コード「EI」を記述し、その代わりに、使用領域のプログラムから「EI」を削除することができる。
また、上述した実施形態においては、別領域における記憶容量の制限がないため、可能な限り使用領域の命令コードを別領域に移す例を挙げて説明したが、割込時間(割込周期)やプログラムの命令コードの長さ等に基づいて、適宜、いずれの領域に配するか調整してもよい。例えば、使用領域にまだ余裕がある場合や、処理が複雑になる等、プログラムの命令コードを全て別領域に配すると問題が生じる場合や、別領域にプログラムの命令コードを配することによって割り込み禁止から割り込み許可までの時間が割り込み時間(割り込みと割り込みとの間の時間、例えば1.49msec)を超えてしまう場合には、別領域に配置すべきプログラムの命令コードの一部または全部を使用領域に配置してもよい。
また、上述した実施形態においては、遊技機用試験処理、セキュリティ関連処理、有利区間関連処理のうち一部または全部の処理を別領域に配置する例を挙げて説明したが、いずれの処理も、使用領域と別領域に分配してもよく、また、いずれの処理も使用領域のみに配してもよい。また、その分配単位は、モジュール(プログラム)単位でもよいし、モジュールをさらに分割した命令コード単位でもよい。ここで、モジュール単位とは、遊技機用試験処理であれば、試験項目や試験方法それぞれの処理であり、セキュリティ関連処理であれば、図15に示した異常状態「逆流エラー」、「エンプティエラー」、「払い出し詰まりエラー」、「払い出し異常エラー」、「オーバーエラー」、「滞留エラー」、「バックアップエラー」、「ドア開放エラー」、「投入異常エラー」、「表示判定異常エラー」、「RWM異常エラー」、「設定値異常エラー」それぞれの判定および報知(表示)の処理であり、有利区間関連処理であれば、有利区間比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率それぞれの計算処理や、総遊技数、滞在遊技数、総払出数、連続役物払出数、役物払出数の累積処理である。
なお、1のスロットマシン100では、上述した第1の実施例、第2の実施例、第3の実施例のいずれか1の実施例にのみ基づいて、別領域に格納されているプログラムが呼び出される。しかし、かかる場合に限らず、1のスロットマシン100において、第1の実施例、第2の実施例、第3の実施例それぞれのプログラムの呼び出し方が混在してもよい。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことはいうまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上述した実施形態では、主制御基板200と副制御基板202とが、遊技を進行するための機能部を分担するように配したが、主制御基板200の機能部を副制御基板202に配しても、副制御基板202の機能部を主制御基板200に配してもよく、また、全ての機能部を1の制御基板に纏めて配することもできる。
また、上述した主制御基板200および副制御基板202が行う各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。