<全体構成>
まず、図1を用いて、本実施例に係るスロットマシン100の全体構成について説明する。なお、同図はスロットマシン100の外観斜視図である。
スロットマシン100は、本体101と、本体101の正面に取付けられ、本体101に対して開閉可能な前面扉102と、を備える。本体101の中央内部には、(図1において図示省略)外周面に複数種類の図柄が配置されたリールが3個(左リール110、中リール111、右リール112)収納され、スロットマシン100の内部で回転できるように構成されている。これらのリール110〜112はステッピングモータ等の駆動手段により回転駆動される。
本実施例において、各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形筒状の枠材に貼り付けられて各リール110〜112が構成されている。リール110〜112上の図柄は、遊技者から見ると、図柄表示窓113から縦方向に概ね3つ表示され、合計9つの図柄が見えるようになっている。そして、各リール110〜112を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。つまり、各リール110〜112は複数種類の図柄の組合せを変動可能に表示する表示手段として機能する。なお、このような表示手段としてはリール以外にも液晶表示装置等の電子画像表示装置も採用できる。また、本実施例では、3個のリールをスロットマシン100の中央内部に備えているが、リールの数やリールの設置位置はこれに限定されるものではない。
各々のリール110〜112の背面には、図柄表示窓113に表示される個々の図柄を照明するためのバックライト(図示省略)が配置されている。バックライトは、各々の図柄ごとに遮蔽されて個々の図柄を均等に照射できるようにすることが望ましい。なお、スロットマシン100内部において各々のリール110〜112の近傍には、投光部と受光部から成る光学式センサ(図示省略)が設けられており、この光学式センサの投光部と受光部の間をリールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン上に表示されるようにリール110〜112を停止させる。
入賞ライン表示ランプ120は、有効となる入賞ラインを示すランプである。有効となる入賞ラインは、遊技媒体としてベットされたメダルの数によって予め定まっている。入賞ラインは5ラインあり、例えば、メダルが1枚ベットされた場合、中段の水平入賞ラインが有効となり、メダルが2枚ベットされた場合、上段水平入賞ラインと下段水平入賞ラインが追加された3本が有効となり、メダルが3枚ベットされた場合、右下り入賞ラインと右上り入賞ラインが追加された5ラインが入賞ラインとして有効になる。なお、入賞ラインの数については5ラインに限定されるものではなく、また、例えば、メダルが1枚ベットされた場合に、中段の水平入賞ライン、上段水平入賞ライン、下段水平入賞ライン、右下り入賞ラインおよび右上り入賞ラインの5ラインを入賞ラインとして有効としてもよい。
告知ランプ123は、例えば、後述する内部抽選において特定の入賞役(具体的には、ボーナス)に内部当選していること、または、ボーナス遊技中であることを遊技者に知らせるランプである。遊技メダル投入可能ランプ124は、遊技者が遊技メダルを投入可能であることを知らせるためのランプである。再遊技ランプ122は、前回の遊技において入賞役の一つである再遊技に入賞した場合に、今回の遊技が再遊技可能であること(メダルの投入が不要であること)を遊技者に知らせるランプである。リールパネルランプ128は演出用のランプである。
メダル投入ボタン130〜132は、スロットマシン100に電子的に貯留されているメダル(クレジットという。)を所定の枚数分投入するためのボタンである。本実施例においては、メダル投入ボタン130が押下される毎に1枚ずつ最大3枚まで投入され、メダル投入ボタン131が押下されると2枚投入され、メダル投入ボタン132が押下されると3枚投入されるようになっている。以下、メダル投入ボタン132はMAXメダル投入ボタンとも言う。なお、遊技メダル投入ランプ129は、投入されたメダル数に応じた数のランプを点灯させ、規定枚数のメダルの投入があった場合、遊技の開始操作が可能な状態であることを知らせる遊技開始ランプ121が点灯する。
メダル投入口141は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、メダル投入ボタン130〜132により電子的に投入することもできるし、メダル投入口141から実際のメダルを投入(投入操作)することもでき、投入とは両者を含む意味である。貯留枚数表示器125は、スロットマシン100に電子的に貯留されているメダルの枚数を表示するための表示器である。遊技情報表示器126は、各種の内部情報(例えば、ボーナス遊技中のメダル払出枚数)を数値で表示するための表示器である。払出枚数表示器127は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。
スタートレバー135は、リール110〜112の回転を開始させるためのレバー型のスイッチである。即ち、メダル投入口141に所望するメダル枚数を投入するか、メダル投入ボタン130〜132を操作して、スタートレバー135を操作すると、リール110〜112が回転を開始することとなる。スタートレバー135に対する操作を遊技の開始操作と言う。
ストップボタンユニット136には、ストップボタン137〜139が設けられている。ストップボタン137〜139は、スタートレバー135の操作によって回転を開始したリール110〜112を個別に停止させるためのボタン型のスイッチであり、各リール110〜112に対応づけられている。以下、ストップボタン137〜139に対する操作を停止操作と言い、最初の停止操作を第1停止操作、次の停止操作を第2停止操作、最後の停止操作を第3停止操作という。なお、各ストップボタン137〜139の内部に発光体を設けてもよく、ストップボタン137〜139の操作が可能である場合、該発光体を点灯させて遊技者に知らせることもできる。
メダル返却ボタン133は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。精算ボタン134は、スロットマシン100に電子的に貯留されたメダル、ベットされたメダルを精算し、メダル払出口155から排出するためのボタンである。ドアキー孔140は、スロットマシン100の前面扉102のロックを解除するためのキーを挿入する孔である。メダル払出口155は、メダルを払出すための払出口である。
音孔160a〜cはスロットマシン100内部に設けられているスピーカの音を外部に出力するための孔である。前面扉102の下部に設けられたタイトルパネル162は、遊技台を装飾するためのものであり、前面扉102の左右各部に設けられたサイドランプ144は遊技を盛り上げるための装飾用のランプである。前面扉102の上部には演出装置200が配設されている。
この演出装置200は、垂直方向に移動可能な垂直可動部材202と、水平方向に移動自在な水平可動部材204と、これらの可動部材202、204の奥側に配設された液晶表示装置157を備えており、液晶表示装置157が演出表示を行うと共に、垂直可動部材202および水平可動部材204が液晶表示装置157の手前で演出動作を行う構造となっている。また、垂直可動部材202および水平可動部材204の手前側には、液晶表示装置157、垂直可動部材202および水平可動部材204を覆うようにして透明なカバー部材が配設されている。このカバー部材の上部および下部には、半透明に着色された上部遮蔽領域206および下部遮蔽領域208がそれぞれ設けられており、液晶表示装置157、垂直可動部材202および水平可動部材204の一部を遮蔽している。
<制御部>
次に、図2〜図5を用いて、このスロットマシン100の制御部の回路構成について詳細に説明する。
スロットマシン100の制御部は、大別すると、遊技の中枢部分を制御する主制御部300と、主制御部300より送信されたコマンド(以下、制御コマンドとも言う)に応じて各種機器を制御する副制御部400と、副制御部400より送信されたコマンドに応じて各種機器を制御する副制御部500と、副制御部500より送信されたコマンドに応じて各種機器を制御する副制御部600と、によって構成されている。
<主制御部300>
まず、図2を用いて、スロットマシン100の主制御部300について説明する。主制御部300は、主制御部300の全体を制御するための演算処理装置であるCPU310や、CPU310が各ICや各回路と信号の送受信を行うためのデータバス及びアドレスバスを備え、その他、以下に述べる構成を有する。
クロック補正回路314は、水晶発振器311から発振されたクロックを分周してCPU310に供給する回路である。例えば、水晶発振器311の周波数が16MHzの場合に、分周後のクロックは8MHzとなる。CPU310は、クロック回路314により分周されたクロックをシステムクロックとして受け入れて動作する。
また、CPU310には、後述するセンサやスイッチの状態を常時監視するための監視周期やモータの駆動パルスの送信周期を設定するためのタイマ回路315がバスを介して接続されている。CPU310は、電源が投入されると、データバスを介してROM312の所定エリアに格納された分周用のデータをタイマ回路315に送信する。
タイマ回路315は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに、割り込み要求をCPU310に送信する。CPU310は、この割込み要求を契機に、各センサ等の監視や駆動パルスの送信を実行する。例えば、CPU310のシステムクロックを8MHz、タイマ回路315の分周値を1/256、ROM312の分周用のデータを47に設定した場合、この割り込みの基準時間は、256×47÷8MHz=1.504msとなる。
また、CPU310には、各ICを制御するための制御プログラムデータ、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等を記憶しているROM312や、一時的なデータを保存するためのRAM313が接続されている。これらのROM312やRAM313については他の記憶手段を用いてもよく、この点は後述する各制御部においても同様である。
CPU310には、さらに、入力インタフェース360、出力インタフェース370、371がアドレスデコード回路350を介してアドレスバスに接続されている。CPU310は、これらのインタフェースを介して外部のデバイスと信号の送受信を行っている。
CPU310は、割込み時間ごとに入力インタフェース360を介して、メダル受付センサ320、スタートレバーセンサ321、ストップボタンセンサ322、メダル投入ボタンセンサ323、精算スイッチセンサ324、メダル払い出しセンサ326、インデックスセンサ325の状態を検出し、各センサを監視している。
メダル受付センサ320は、メダル投入口134の内部の通路に2個設置されており、メダルの通過有無を検出する。スタートレバーセンサ321は、スタートレバー135に2個設置されており、遊技者によるスタート操作を検出する。ストップボタンセンサ322は、各々のストップボタン137〜139に設置されており、遊技者によるストップボタン137〜139の操作を検出する。
メダル投入ボタンセンサ323は、メダル投入ボタン130〜132のそれぞれに設置されており、RAM313に電子的に貯留されているメダルを遊技用のメダルとして投入する場合の投入操作を検出する。たとえば、CPU310は、メダル投入ボタン130に対応するメダル投入センサ323がLレベルになった場合に、電子的に貯留メダルを1枚投入し、メダル投入ボタン131に対応するメダル投入センサ323がLレベルになった場合に、電子的に貯留メダルを2枚投入し、メダル投入ボタン132に対応するメダル投入センサ323がLレベルになった場合に、電子的に貯留メダルを3枚投入する。なお、メダル投入ボタン132が押された際、貯留されているメダル枚数が2枚の場合は2枚投入され、1枚の場合は1枚投入される。
本実施例では、メダル投入ボタン132は、演出用投入ボタンとしても機能させている。すなわち、メダル投入ボタン132は、遊技者の操作を介入させる演出を行う場合に、遊技者による演出操作を受け付けるためのボタンとしても機能するようになっている。具体的には、遊技者によるスタートレバー135の操作から全てのリール110〜112が停止するまでの間に、メダル投入ボタン132に対応するメダル投入センサ323がLレベルになった場合、CPU310は、遊技者による演出操作があったもの(演出用投入ボタンの受付)と判断し、遊技者の操作に対応した処理を実行する。そして、全てのリール110〜112の停止から遊技者によりスタートレバー135が操作されるまでの間に、メダル投入ボタン132に対応するメダル投入センサ323がLレベルになった場合、CPU310は電子的に貯留メダルを3枚投入する。
精算スイッチセンサ324は、精算ボタン134に設けられている。精算ボタン134が一回押されると、貯留されているメダルを精算する。メダル払い出しセンサ326は、払い出されるメダルを検出するためのセンサである。なお、以上の各センサは、非接触式のセンサであっても接点式のセンサであってもよい。
インデックスセンサ325は、具体的には、各リール110〜112の取付台の所定位置に設置されており、リールに設けた遮光片がこのインデックスセンサ325を通過するたびにLレベルになる。CPU310は、この信号を検出すると、リールが1回転したものと判断し、リールの回転位置情報をゼロにリセットする。
出力インタフェース370には、リールを駆動させるためのリールモータ駆動部330と、ホッパー(バケットにたまっているメダルをメダル払出口155から払出すための装置。)のモータを駆動するためのホッパーモータ駆動部331と、遊技ランプ340(具体的には、入賞ライン表示ランプ120、遊技開始ランプ121、再遊技ランプ122、告知ランプ123、遊技メダル投入可能ランプ124等)と、7セグメント表示器341(貯留枚数表示器125、遊技情報表示器126、払出枚数表示器127等)が接続されている。
また、CPU310には、乱数発生回路317がデータバスを介して接続されている。乱数発生回路317は、水晶発振器316から発振されるクロックに基いて、一定の範囲内で値をインクリメントし、そのカウント値をCPU310に出力することのできるインクリメントカウンタであり、後述する入賞役の内部抽選をはじめ各種抽選処理に使用される。本実施例における乱数発生回路317は、水晶発振器316のクロック周波数を用いて0〜65535までの値をインクリメントする1つの乱数カウンタを備えている。
また、CPU310のデータバスには、副制御部400に信号(例えば、ボーナスや小役の内部当選を示すコマンド、演出用投入ボタン受付コマンド等)を送信するための出力インタフェース371が接続されている。
<副制御部400>
次に、図3を用いて、スロットマシン100の副制御部400について説明する。副制御部400は、主制御部300より送信されたコマンドに基づいて副制御部400の全体を制御する演算処理装置であるCPU410や、CPU410が各IC、各回路と信号の送受信を行うためのデータバス及びアドレスバスを備え、以下に述べる構成を有する。
クロック補正回路414は、水晶発振器411から発振されたクロックを補正し、補正後のクロックをシステムクロックとしてCPU410に供給する回路である。また、CPU410にはタイマ回路415がバスを介して接続されている。CPU410は、所定のタイミングでデータバスを介してROM412の所定エリアに格納された分周用のデータをタイマ回路415に送信する。タイマ回路415は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに、割り込み要求をCPU410に送信する。CPU410は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
また、CPU410には、副制御部400の全体を制御するための命令及びデータ、バックライトの点灯パターンや各種表示器を制御するためのデータが記憶されたROM412や、データ等を一時的に保存するためのRAM413が各バスを介して接続されている。
また、CPU410には、外部の信号を送受信するための入出力インタフェース460が接続されており、入出力インタフェース460には、各リール110〜112の図柄を背面より照明するためのバックライト420、前面扉102の開閉を検出するための扉センサ421、RAM413のデータをクリアにするためのリセットスイッチ422が接続されている。さらに、CPU410には、データバスを介して主制御部300から信号(コマンド)を受信するための入力インタフェース461が接続されている。
また、CPU410のデータバスとアドレスバスには、音源IC480が接続されている。音源IC480は、CPU410からの命令に応じて音声の制御を行う。また、音源IC480には、音声データが記憶されたROM481が接続されており、音源IC480は、ROM481から取得した音声データをアンプ482で増幅させてスピーカ483から出力する。
また、CPU410には、主制御部300と同様に、外部ICを選択するためのアドレスデコード回路450が接続されており、アドレスデコード回路450には、主制御部300からの信号(コマンド)を受信するための入力インタフェース461、入出力インタフェース470、時計IC422、が接続されている。CPU410は、時計IC422が接続されていることで、現在時刻を取得することが可能である。
さらに、入出力インタフェース470には、デマルチプレクサ419が接続されている。デマルチプレクサ419は、入出力インタフェース470から送信された信号を各表示部等に分配する。即ち、デマルチプレクサ419は、CPU410から受信されたデータに応じて演出ランプ430(上部ランプ、下部ランプ、サイドランプ144、リールパネルランプ128、タイトルパネルランプ、受皿ランプ、等)を制御する。なお、タイトルパネルランプは、タイトルパネル162を照明するランプである。
CPU410は、入力インタフェース461を介して受信したコマンドに基づいて、遊技全体を盛り上げる演出処理を自ら実行すると共に、演出処理を実行させるためのコマンドを入出力インタフェース470を介して副制御部500に送信する。また、CPU410は、演出処理において入出力インタフェース470を介して副制御部600からのコマンドを受信する。
<副制御部500>
次に、図4を用いて、スロットマシン100の副制御部500について説明する。副制御部500は、演算処理装置であるCPU510や、各IC、各回路と信号の送受信を行うためのデータバス及びアドレスバスを備え、以下に述べる構成を有する。
クロック補正回路514は、水晶発振器511から発振されたクロックを補正し、補正後のクロックをシステムクロックとしてCPU510に供給する回路である。
このCPU510は、副制御部400のCPU410からの信号(コマンド)を入出力インタフェース520を介して受信し、副制御部500全体を制御する。また、CPU510にはタイマ回路515がバスを介して接続されている。CPU510は、所定のタイミングでデータバスを介してROM512の所定エリアに格納された分周用のデータをタイマ回路515に送信する。タイマ回路515は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに、割り込み要求をCPU510に送信する。CPU510は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
また、CPU510には、バスを介して、ROM512、RAM513、VDP(ビデオ・ディスプレイ・プロセッサー)534が接続されている。ROM512には、副制御部500全体を制御するための制御プログラムデータや演出用のデータが記憶されている。RAM513は、CPU510で処理されるプログラムのワークエリア等を有する。VDP534には、水晶発振器533が接続され、さらに、バスを介して、画像データと、画像データ用のカラーパレットデータが記憶されているCG−ROM535、VRAM536が接続されている。VDP534は、CPU510からの信号をもとにCG−ROM535に記憶された画像データを読み出し、VRAM536のワークエリアを使用して画像信号を生成し、D/Aコンバータ537を介して液晶表示装置157の表示画面に画像を表示する。なお、液晶表示装置157には、CPU510によって液晶表示装置157の表示画面の輝度調整を可能とするため輝度調整信号が入力されている。
また、CPU510には、主制御部300および副制御部400と同様に、外部ICを選択するためのアドレスデコード回路550が接続されており、アドレスデコード回路550には、入出力インタフェース520が接続されている。入出力インタフェース520は、副制御部400から信号(コマンド)を受信すると共に副制御部600に信号(コマンド)を送信するためのインタフェースである。CPU510は、入出力インタフェース520を介して副制御部400から受信したコマンドに基づいて、液晶表示装置157の表示を制御する処理を実行すると共に、演出処理を実行させるためのコマンドを入出力インタフェース520を介して副制御部600に送信する。
<副制御部600>
次に、図5を用いて、スロットマシン100の副制御部600について説明する。副制御部600は、演算処理装置であるMPU610や、各IC、各回路と信号の送受信を行うためのデータバス及びアドレスバスを備え、以下に述べる構成を有する。
クロック補正回路614は、水晶発振器611から発振されたクロックを補正し、補正後のクロックをシステムクロックとしてMPU610に供給する回路である。
このMPU610は、CPU610aと、このCPU610aに内部バスを介して接続されたCache(以下、「キャッシュ」と称する場合がある)610bと、このキャッシュ610bの制御を行う制御部610cと、内部バスと後述する外部バスとの通信制御を行う外部バスインターフェース610dを備えており、副制御部500のCPU510からの信号(コマンド)を入出力インタフェース620を介して受信し、副制御部600全体を制御する。なお、キャッシュ610bと制御部610cの詳細については後述する。
また、MPU610にはタイマ回路615が外部バスを介して接続されている。MPU610は、所定のタイミングで外部データバスを介してROM612の所定エリアに格納された分周用のデータをタイマ回路615に送信する。タイマ回路615は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに、割り込み要求をMPU610に送信する。MPU610は、この割込み要求のタイミングをもとに、各ICや各回路を制御する。
また、MPU610には、外部バスを介して、ROM612およびRAM613が接続されている。ROM612には、副制御部600全体を制御するための制御プログラムデータや演出用のデータが記憶されている。RAM613は、MPU610で処理されるプログラムのワークエリア等を有する。なお、ROM612およびRAM613は外部バスを介してMPU610に接続されているため、ROM612およびRAM613の動作周波数(例えば、66.7MHz)は、MPU610と内部バスを介して接続されているキャッシュ610bの動作周波数(例えば、200MHz)よりも低くなっている。
また、MPU610には、副制御部400および副制御部500と同様に、外部ICを選択するためのアドレスデコード回路650が接続されており、アドレスデコード回路650には、外部の機器から信号を受信するための入力インタフェース660、および外部の機器へ信号を送信するための出力インタフェース670が接続されている。入力インタフェース660には、演出装置200の各駆動機構が備える左センサA216、左センサB217、右センサA226、右センサB227、上センサA236および上センサB237が接続されている。なお、本実施例の副制御部600は、オプションとしてさらに下センサA667、および下センサB668を接続可能に構成されている。
出力インタフェース670には、演出装置200の各駆動機構が備える各モータ215、225、235がドライバを介して接続されている。具体的には、左モータドライバ671を介して左モータ215、右モータドライバ672を介して右モータ225、上モータドライバ673を介して上モータ235が接続されている。なお、本実施例の副制御部600は、オプションとしてさらに下モータドライバ674を介して下モータ675を接続可能に構成されている。
また、アドレスデコード回路650には、入出力インタフェース620が接続されている。この入出力インタフェース620は、副制御部500から信号(コマンド)を受信すると共に副制御部400に信号(コマンド)を送信するためのインタフェースである。CPU610は、入出力インタフェース620を介して副制御部500から受信したコマンドに基づいて、演出装置200の各駆動機構を制御する処理を実行すると共に、コマンドを入出力インタフェース620を介して副制御部400に送信する。
なお、主制御部300と副制御部400の間の情報通信は、一方向の通信となっており、逆方向の通信は不可能に構成されている。すなわち、主制御部300からはコマンド等の信号を副制御部400へ送信することができるが、副制御部400からはコマンド等の信号を主制御部300へ送信することはできない。
また、副制御部400と副制御部500、副制御部500と副制御部600、および副制御部600と副制御部400の間の直接的な情報通信は、一方向の通信となっており、逆方向の通信は不可能に構成されている。すなわち、副制御部400から副制御部500へ、副制御部500から副制御部600へ、および副制御部600から副制御部400へは、直接的にコマンド等の信号を送信することができるが、副制御部500から副制御部400へ、副制御部600から副制御部500へ、および副制御部400から副制御部600へは、直接的にコマンド等の信号を送信することができない。従って、副制御部500から副制御部400へ信号を送信する場合は、副制御部500から副制御部600を介して副制御部400へ信号を送信するようになっている。同様に、副制御部600から副制御部500へ信号を送信する場合は、副制御部600から副制御部400を介して副制御部500へ信号を送信し、副制御部400から副制御部600へ信号を送信する場合は、副制御部400から副制御部500を介して副制御部600へ信号を送信する。
<キャッシュ610bの内部構成>
次に、図6を用いて、キャッシュ610bの内部構成について詳細に説明する。なお、同図はキャッシュ610bが備えるアドレスアレイ、データアレイ、LRUアレイを示した図である。
キャッシュ610bは、アドレスアレイ、データアレイ、LRUアレイを有して構成されている。アドレスアレイは、本実施例では、アドレスアレイ(ウェイ0〜ウェイ3)の4種類で構成されており、さらに各アドレスアレイ(ウェイ0〜ウェイ3)は、それぞれエントリ0〜エントリ511の512個のデータで構成されている。また、4種類のアドレスアレイ(ウェイ0〜ウェイ3)のうち、2つのアドレスアレイ(ウェイ0、ウェイ1)の各エントリのデータは、1ビット長のバリッドビットVと、22ビット長のタグアドレスの計23ビット長のデータであり、残りの2つのアドレスアレイ(ウェイ2、ウェイ3)の各エントリのデータは、1ビット長のバリッドビットVと、1ビット長のロックビットLと、22ビット長のタグアドレスの計24ビット長のデータである。
ここで、バリッドビットVは、対応するエントリのデータが有効か無効かを示す情報であり、0は対応するエントリのデータが無効であることを示し、1は対応するエントリのデータが有効であることを示している。また、ロックビットLは、対応するエントリのデータがロックされているか否か(上書き更新が禁止されているか否か(書換えが不可であるか可能であるか))を示す情報であり、0は対応するエントリのデータがロックされていないこと(上書き更新が禁止されていないこと(書換えが可能であること))を示し、1は対応するエントリのデータがロックされていること(上書き更新が禁止されていること(書換えが不可であること))を示している。また、タグアドレスは、実効アドレスから生成される物理アドレスを記憶するための記憶領域である。なお、バリッドビットV、ロックビットL、タグアドレスの制御方法については後述する。
データアレイは、本実施例では、各アドレスアレイ(ウェイ0〜ウェイ3)に対応して、データアレイ(ウェイ0〜ウェイ3)の4種類で構成されている。各データアレイ(ウェイ0〜ウェイ3)は、それぞれエントリ0〜エントリ511の512個のデータで構成されており、データアレイ(ウェイ0〜ウェイ3)の各データは、32ビット(4バイト)長の4つのロングワードデータ0〜3からなる計128ビット(16バイト)長のデータである。
LRU(Least Recently Used)アレイは、本実施例では、各データアレイ(ウェイ0〜ウェイ3)に対応して、エントリ0〜エントリ511の512個のデータで構成されている。LRUアレイの各データは、2ビット長のデータであり、4種類のウェイ0〜ウェイ3のうち、どのウェイのエントリに最も新しいデータ(最も直近にアクセスされたデータ)を登録しているかを示す情報である。なお、本実施例では、最も以前にアクセスされたウェイを選ぶLRUアルゴリズムを採用してキャッシュ610bの読み出し/書き込み制御を行うが、本発明はこれに限定されず、例えば、FIFO(First In First Out)アルゴリズムや、LFU(Least Frequently Used)アルゴリズムなど、公知のアルゴリズムを採用してキャッシュの読み出し/書き込み制御を行ってもよい。
<キャッシュ610bの検索方法>
次に、図7を用いて、キャッシュ610bの検索方法について説明する。なお、同図はキャッシュ610bの検索方法を模式的に示した図である。
詳細は後述するが、CPU610aが、キャッシュ610bの4つのウェイ0〜ウェイ4のうちのいずれか1つのウェイを選択し、実効アドレスのビット12〜ビット4によってキャッシュ610bの512個のエントリ0〜エントリ511うちのいずれか1つのエントリを選択すると、制御部610cが、キャッシュ610bのアドレスアレイから、CPU610aによって選択されたウェイとエントリに対応するタグアドレスの読み出しを行う。また、制御部610cは、このタグアドレスの読み出しと並行して、変換回路(MMU)によって実効アドレスのビット31〜ビット12を物理アドレスに変換する。そして、制御部610cは、キャッシュ610bから読み出したタグアドレス(物理アドレス)と、変換回路によって変換した物理アドレスを比較回路0〜3を用いて比較し、比較結果が一致している場合には、キャッシュがヒットしたと判定する。
そして、制御部610cは、データの読み出し時にキャッシュがヒット(リードヒット)したと判定した場合には、キャッシュ610bのデータアレイから、選択されているウェイおよびエントリに対応するデータをCPU610aに転送するとともに、リードヒットしたウェイおよびエントリに対応するLRUアレイを更新する。一方、制御部610cは、データの書き込み時にキャッシュがヒット(ライトヒット)したと判定した場合には、選択されているウェイおよびエントリに対応するキャッシュ610bのデータアレイにデータを書き込むとともに、ライトヒットしたウェイおよびエントリに対応するLRUアレイを更新する。なお、キャッシュ610bの書き込み制御にライトバック方式を採用している場合は、キャッシュ610bへの書き込みと同時に外部メモリ(例えば、RAM613)への書き込みは実行しないが、ライトスルー方式を採用している場合は、キャッシュ610bへの書き込みと同時に外部メモリへの書き込みを実行する。
<制御部610cのキャッシュロック制御>
次に、図8を用いて、制御部610cのキャッシュロック制御について詳細に説明する。なお、同図は制御部610cが実行するキャッシュロック制御の流れを示すフローチャートである。
ステップS001では、CPU610aから指定されたウェイ(本実施例では、ウェイ2またはウェイ3を指定(詳細は後述))に従って、キャッシュ610bのウェイを選択し、次のステップS002では、キャッシュロック制御に用いるポインターに初期値(この例では0)を設定する。
ステップS003では、MMUで変換した物理アドレスを先頭アドレスとして設定し、次のステップS004では、ポインターを進めるバイト数として所定数(この例では4)を設定する。
ステップS005では、ステップS003で設定した先頭アドレスを読み込み開始アドレスとして、ステップS004で設定したバイト数分の情報を読み込んで、ステップS001で選択したウェイのデータアレイに格納する。次のステップS006では、ポインターをステップS004で設定したバイト数分(この例では4)加算する。
ステップS007では、加算後のポインターが所定の上限値(この例では16)であるか否かを判定し、該当する場合はステップS008に進み、該当しない場合はステップS005に戻る。ステップS008では、ステップS005で格納したウェイおよびエントリに対応するロックビットを1に設定して処理を終了する。
<制御部610cのキャッシュリード制御>
次に、図9を用いて、制御部610cのキャッシュリード制御について詳細に説明する。なお、同図は、制御部610cのキャッシュリード制御の流れを示すフローチャートである。
ステップS051においてCPU610aから内部バスを介して実効アドレスのリードアクセス要求が供給されると、次のステップS052では、CPU610aから供給された実効アドレスの一部をMMUで物理アドレスに変換した後、ステップS053に進む。具体的には、上記図7に詳細に示すように、32ビットの実効アドレスのうちの上位20ビット(ビット12〜ビット31)を物理アドレスに変換する。
ステップS053では、CPU610aから供給された実効アドレスの一部からインデックス値を抽出し、このインデックス値に基づいて、キャッシュ610bのエントリを選択した後、ステップS054に進む。具体的には、上記図7に詳細に示すように、32ビットの実効アドレスのうちの9ビット(ビット4〜ビット12)をインデックス値として抽出し、キャッシュ610bのエントリ0〜エントリ511の中からインデックス値に対応するエントリを選択する。
ステップS054では、ステップS053で選択したエントリに対応するアドレスアレイ(ウェイ0〜ウェイ3)の各々のタグアドレスをキャッシュ610bから抽出した後、この各々のタグアドレスと、ステップS052で変換した物理アドレスを比較回路0〜3を用いて1つずつ比較した後、ステップS055に進む。
ステップS055では、ステップS054でキャッシュ610bから抽出した各々のタグアドレス(物理アドレス)が、ステップS052で変換した物理アドレスと一致し、且つ、タグアドレスに対応するバリッドビットVをキャッシュ610bから抽出してバリッドビットVが1(有効)であるか否かを判定する。そして、物理アドレスが一致し、且つ、バリッドビットVが1(有効)である場合にはステップS056に進み、そうでない場合にはステップS058に進む。
ステップS056では、CPU610aから供給された実効アドレスからロングワードを特定する。具体的には、上記図7に詳細に示すように、32ビットの実効アドレスのうちの2ビット(ビット2、ビット3)をロングワード選択ビットとして抽出し、ロングワード選択ビットに対応するロングワードを、キャッシュ610bのデータアレイ(ウェイ0〜ウェイ4)のロングワードLW0〜ロングワードLW3の中から選択する。次のステップS057では、ステップS056で選択したロングワードに格納されている情報を、キャッシュ610bから内部バスを介してCPU610aに転送した後、ステップS068に進む。
ステップS058では、実効アドレスに対応する情報の読み込みを開始する。具体的には、外部バスインターフェイスを介して外部バスにアクセスし、ROM612やRAM613などの外部デバイスから、CPU610aに転送する命令(プログラム)やデータの読み込みを開始する。
ステップS059では、キャッシュ610bのウェイ指定があるか無いかを判定し、該当する場合はステップS060に進み、該当しない場合はステップS062に進む。ステップS060では、指定されたウェイのエントリのうち、ステップS053で選択したエントリに、ステップS058で外部デバイスから読み込んだ情報と同じ情報を格納してステップS061に進み、このステップS061では、ステップS053で選択したエントリに対応するロックビットLに1(ロック状態)を設定してステップS066に進む。
ステップS062では、LRUアレイを参照し、最も古く更新されたウェイを特定し、次のステップS063では、ステップS062で特定したウェイのエントリのうち、ステップS053で選択したエントリに対応するロックビットLが1(書換え不可)であるか否かを判定する。そして、エントリに対応するロックビットLが0(書換え可能)の場合はステップS064に進み、ステップS062で特定したウェイのエントリに、ステップS058で外部デバイスから読み込んだ情報と同じ情報を格納してステップS066に進む。一方、エントリに対応するロックビットLが1(書換え不可)の場合はステップS065に進み、2番目に古く更新されたウェイを特定し、特定されたウェイのエントリに、ステップS058で外部デバイスから読み込んだ情報と同じ情報を格納してステップS066に進む。
ステップS066では、実効アドレスに対応するタグアドレスを登録し、バリッドビットVを1に設定する。具体的には、ステップS052で変換した物理アドレスを、ステップS053で選択したエントリに対応するタグアドレスに格納するともに、このタグアドレスに対応するバリッドビットVを1に設定してステップS067に進む。ステップS067では、キャッシュ610bのエントリに格納した情報をCPU610aに転送してステップS068に進む。ステップS068では、エントリに対応するLRUアレイを更新した後、処理を終了する。
なお、図示はしないが、キャッシュ610bはプリフェッチ機能を有しており、例えば、次に実行されると予想される命令コード(次に命令レジスタにロードされるであろう命令コード)を事前にキャッシュ610bに読み出すことが可能である。そして、このプリフェッチ機能によってプリフェッチされた情報がリードヒット(プリフェッチヒット)した場合には、キャッシュ610bにプリフェッチされた情報をCPU610aに転送するように構成している。一方、プリフェッチされた情報がリードミス(プリフェッチミス)した場合には、上述のキャッシュリード制御に従って実効アドレスに対応する情報の読み込みを開始する。
<制御部610cのキャッシュライト制御>
次に、図10を用いて、制御部610cのキャッシュライト制御について詳細に説明する。なお、同図は、制御部610cのキャッシュライト制御の流れを示すフローチャートである。
ステップS081においてCPU610aから内部バスを介して実効アドレスのライトアクセス要求が供給されると、次のステップS082では、CPU610aから供給された実効アドレスの一部をMMUで物理アドレスに変換した後、ステップS083に進む。
ステップS083では、CPU610aから供給された実効アドレスの一部からインデックス値を抽出し、このインデックス値に基づいて、キャッシュ610bのウェイ0〜ウェイ3のエントリを選択した後、ステップS084に進む。
ステップS084では、ステップS083で選択したエントリに対応するアドレスアレイ(ウェイ0〜ウェイ3)の各々のタグアドレスをキャッシュ610bから抽出した後、この各々のタグアドレスと、ステップS082で変換した物理アドレスを比較回路0〜3を用いて1つずつ比較した後、ステップS085に進む。
ステップS085では、ステップS084でキャッシュ610bから抽出した各々のタグアドレスが、ステップS082で変換した物理アドレスと一致するか否かを判定し、一致する場合にはステップS086に進み、一致しない場合にはステップS088に進む。
ステップS086では、ステップS083で選択したエントリに対応するロックビットLが1(書換え不可)であるか否かを判定し、該当する場合はステップS088に進み、該当しない場合はステップS087に進む。
ステップS087では、ステップS085において物理アドレスと一致すると判定されたタグアドレスに対応するエントリに、書き込み対象の情報を格納してステップS093に進む。
ステップS088では、キャッシュ610bのウェイ指定があるか無いかを判定し、該当する場合はステップS089に進み、該当しない場合はステップS091に進む。ステップS089では、指定されたウェイのエントリのうち、ステップS083で選択したエントリに、書き込み対象の情報を格納してステップS090に進み、このステップ090は、ステップS083で選択したエントリに対応するロックビットLに1を設定してステップS093に進む。
ステップS091では、LRUアレイを参照し、ロックビットLが0で、かつ最も古く更新されたウェイを特定し、次のステップS092では、ステップS091で特定したウェイのエントリに、書き込み対象の情報を格納してステップS093に進む。
ステップS093では、実効アドレスに対応するタグアドレスを登録し、バリッドビットVを1に設定する。具体的には、ステップS082で変換した物理アドレスを、ステップS083で選択したエントリに対応するタグアドレスに格納するともに、このタグアドレスに対応するバリッドビットVを1に設定してステップS094に進む。ステップS094では、エントリに対応するLRUアレイを更新した後、処理を終了する。
<図柄配列>
次に、図11を用いて、上述の各リール110〜112に施される図柄配列について説明する。なお、同図は、各リール(左リール110、中リール111、右リール112)に施される図柄の配列を平面的に展開して示した図である。
各リール110〜112には、同図の右側に示す複数種類(本実施例では、8種類)の図柄が所定コマ数(本実施例では、番号0〜20の21コマ)だけ配置されている。また、同図の左端に示した番号0〜20は、各リール110〜112上の図柄の配置位置を示す番号である。例えば、本実施例では、左リール110の番号1のコマには「BB1図柄」、中リール111の番号0のコマには「CHANCE図柄(チャンス図柄)」、右リール112の番号2のコマには「リプレイ図柄」がそれぞれ配置されている。
<入賞役の種類>
次に、図12を用いて、スロットマシン100の入賞役の種類について説明する。なお、同図は入賞役(作動役を含む)の種類、各入賞役の名称、各入賞役に対応する図柄組合せ、各入賞役の払出枚数、および各入賞役の作動を示した図である。
スロットマシン100の入賞役には、特別役1(BB1)と、特別役2(BB2)と、特別役3(RB)と、小役(CHANCE、ベル、スイカ、チェリー)と、再遊技役(リプレイ)がある。なお、入賞役の種類は、これに限定されるものではなく、任意に採用できることは言うまでもない。また、本実施例において、特別役1(BB1)はボーナス役1(BB1)と言うことがあり、特別役2(BB2)はボーナス役2(BB2)と言うことがあり、特別役3(RB)はボーナス役3(RB3)と言うことがある。また、これら特別役1〜3を総称してボーナス役と言うことがある。
本実施例における入賞役のうち、特別役1(BB1)、特別役2(BB2)および特別役3(RB)はボーナス遊技に移行する役として、また、再遊技役(リプレイ)は新たにメダルを投入することなく前回遊技で投入した枚数と同じ枚数のメダルを投入したものとする再遊技が可能となる役として、それぞれ入賞役とは区別され「作動役」と呼ばれる場合があるが、本実施例における「入賞役」には、作動役である、特別役1(BB1)、特別役2(BB2)、特別役3(RB)および再遊技役1、再遊技役2が含まれる。また、「入賞」とは、入賞役に対応する図柄組合せが有効ライン上に表示されることをいうが、本実施例における「入賞」には、メダルの配当を伴わない(メダルの払い出しを伴わない)作動役の図柄組合せが有効ライン上に表示される場合も含まれ、例えば、特別役1(BB1)、特別役2(BB2)、特別役3(RB)、再遊技役への入賞が含まれる。
「特別役1(BB1)、特別役2(BB2)」(以下、特別役1(BB1)および特別役2(BB2)を「ビッグボーナス(BB)」と総称する場合がある)は、入賞によりビッグボーナス遊技(BB遊技)が開始される特別役(作動役)である。対応する図柄組合せは、BB1が「BB1図柄−BB1図柄−BB1図柄」、BB2が「BB2図柄−BB2図柄−BB2図柄」である。また、BB1、BB2についてはフラグ持越しを行う。すなわち、BB1、BB2に内部当選すると、これを示すフラグが立つ(主制御部300のRAM313の所定のエリア内に記憶される)が、その遊技においてBB1、BB2に入賞しなかったとしても、入賞するまで内部当選を示すフラグが立った状態が維持され、次遊技以降でもBB1、BB2に内部当選中となり、BB1に対応する図柄組合せ「BB1図柄−BB1図柄−BB1図柄」、BB2に対応する図柄組合せ「BB2図柄−BB2図柄−BB2図柄」が、有効ライン上に揃って入賞する状態にある。
「特別役3(RB)」(以下、特別役3(RB)を「レギュラーボーナス」と称する場合がある。)は、入賞によりレギュラーボーナス遊技(RB遊技)が開始される特殊役(作動役)である。対応する図柄組合せは、「RB図柄−RB図柄−RB図柄」である。なお、RBについても上述のBBと同様にフラグ持越しを行う。但し、(詳細は後述するが)ビッグボーナス遊技(BB遊技)においては、レギュラーボーナス遊技(RB遊技)が内部当選することや、図柄組み合わせが入賞ライン上に表示されること、を開始条件とせずに自動的に開始させる設定としてもよい。なお、本実施例では、上述したビッグボーナス遊技(BB遊技)およびレギュラーボーナス遊技(RB遊技)を合わせて特別遊技又は単にボーナス遊技と言うことがある。また特別遊技は、通常遊技よりも遊技媒体の獲得率が高く、遊技者に有利な遊技状態である。
「小役1(CHANCE)、小役2(ベル)、小役3(スイカ)、小役4(チェリー)」(以下、単に「CHANCE」、「ベル」、「スイカ」、「チェリー」と称する場合がある)は、入賞により所定数のメダルが払い出される入賞役で、対応する図柄組合せは、CHANCEが「CHANCE図柄−CHANCE図柄−CHANCE図柄」、ベルが「ベル図柄−ベル図柄−ベル図柄」、スイカが「スイカ図柄−スイカ図柄−スイカ図柄」、チェリーが「チェリー図柄−ANY−ANY」である。また、対応する払出枚数は同図に示す通りである。なお、「チェリー図柄−ANY−ANY」の場合、左リール110の図柄が「チェリー図柄」であればよく、中リール111と右リール112の図柄はどの図柄でもよいことを示している。「小役1(CHANCE)、小役2(ベル)、小役3(スイカ)、および小役4(チェリー)」を一般役と言う。
「再遊技役(リプレイ)」は、入賞により次回の遊技でメダル(遊技媒体)の投入を行うことなく遊技を行うことができる入賞役(作動役)であり、メダルの払出は行われない。なお、対応する図柄組合せは、「リプレイ図柄−リプレイ図柄−リプレイ図柄」である。
<遊技状態の種類>
次に、スロットマシン100の遊技状態の種類について説明する。
本実施例では、スロットマシン100の遊技状態は、通常遊技状態(RT0モード)と、ビッグボーナス(BB)およびレギュラーボーナス(RB)の特別役(ボーナス役)内部当選遊技(RT1モード)と、BB遊技とRB遊技を含むボーナス遊技(RT2モード)と、再遊技変動遊技(RT3モード)と、に大別することができる。
<通常遊技状態(RT0モード)>
通常遊技状態(RT0モード)の内容は特に限定されないが、例えば、内部抽選の結果が概ねハズレとなり、遊技者が複数回の遊技を行った場合に遊技中に獲得できるメダルの総数が、遊技中に投入したメダルの総数に満たないような遊技状態をいい、本実施例では、後述する特別役(ボーナス役)内部当選遊技(RT1モード)、ボーナス遊技(RT2モード)、および再遊技変動遊技(RT3モード)以外の遊技状態をいう。この通常遊技状態(RT0モード)では、BB1、BB2またはRBに内部当選した場合(重複役による内部当選を含む)に特別役(ボーナス役)内部当選遊技(RT1モード)に移行する。また、再遊技変動遊技(RT3モード)が終了した場合には、通常遊技状態(RT0モード)に移行する。
<特別役(ボーナス役)内部当選遊技(RT1モード)>
この特別役(ボーナス役)内部当選遊技(RT1モード)は、特別役に対応する図柄組合せを有効ライン上に表示させることが可能となっている遊技状態をいう。この特別役(ボーナス役)内部当選遊技(RT1モード)は、通常遊技状態(RT0モード)において、BB1、BB2またはRBに内部当選した場合(重複役による内部当選を含む)、または後で説明する再遊技変動遊技(RT3モード)において、BB1、BB2またはRBのいずれかの特別役に内部当選した場合(重複役による内部当選を含む)で、且つ所定の遊技数(本実施例では、100ゲーム)を消化した場合に移行する。また、BB1、BB2またはRBに対応する図柄組合せが有効ライン上に表示された場合に終了し、入賞した特別役(特別役1〜3)の種類に応じて、次に説明するBB遊技(BB1遊技、BB2遊技)やRB遊技に移行する。
<BB遊技(RT2モード)>
BB遊技(RT2モード)の内容は特に限定されないが、遊技者にとって通常遊技状態よりも利益の大きい遊技状態であり、本実施例では、遊技中に獲得するメダルの総数が、遊技中に投入したメダルの総数を超えるような遊技状態をいう。BB遊技の一つであるBB1遊技は、特別役(ボーナス役)内部当選遊技(RT1モード)においてBB1に対応する図柄組合せが有効ライン上に表示された場合に移行し、後述するRB遊技を繰返し実行可能な遊技状態である。また、BB遊技の一つであるBB2遊技は、特別役(ボーナス役)内部当選遊技(RT1モード)においてBB2に対応する図柄組合せが有効ライン上に表示された場合に移行し、後述するRB遊技を繰返し実行可能な遊技状態である。また、BB遊技(BB1遊技またはBB2遊技)は、遊技中に予め定められた所定の数(例えば、351枚)を超えるメダルが払い出された場合に終了し、再遊技変動遊技(RT3モード)に移行する。但し、BB遊技中のRB遊技の開始条件は、RB遊技を開始する役(例えば、リプレイ)を設定し、この役が内部当選した場合、または、入賞した場合に、RB遊技を開始するように設定してもよい。さらには、BB遊技は、BB遊技中のRB遊技を除くBB一般遊技を予め定めた回数(例えば、30回)実行した場合、または、BB遊技中に実行したRB遊技の回数が予め定めた回数に達した場合(例えば、3回)に終了するようにしてもよい。
<RB遊技(RT2モード)>
RB遊技(RT2モード)の内容は特に限定されないが、遊技者にとって通常遊技状態よりも利益の大きい遊技状態であり、本実施例では、遊技中に獲得するメダルの総数が、遊技中に投入したメダルの総数を超えるような遊技状態をいう。RB遊技は、特別役(ボーナス役)内部当選遊技(RT1モード)においてRBに対応する図柄組合せが有効ライン上に表示された場合に移行する。また、RB遊技は、遊技中に予め定められた所定の数(例えば、104枚)を超えるメダルが払い出された場合に終了し、再遊技変動遊技(RT3モード)に移行する。但し、予め定めた所定の役が内部当選の確率を上昇させる変動(例えば、「設定1」、「通常遊技」に設定された「小役1」の内部当選確率1/15を、予め定めた所定の値である内部当選確率1/1.2に上昇させる)をし、予め定めた所定の数(例えば8回)の入賞があった場合に終了するようにしてもよい。
<再遊技変動遊技(RT3モード)>
再遊技変動遊技(RT3モード)の内容は特に限定されないが、本実施例では、再遊技役の内部当選確率を、通常遊技状態(RT0モード)における再遊技役(例えば、再遊技役1(リプレイ))の内部当選確率(本実施例では、約1/7.3)よりも上昇させる変動を行う遊技状態である。再遊技変動遊技状態(RT3モード)は、BB遊技状態(RT2モード)において、遊技中に予め定められた所定の数(例えば、351枚)を超えるメダルが払い出された場合、および通常遊技状態(RT0モード)において、CHANCEに対応する図柄組合せが有効ライン上に表示された場合に移行する。また、再遊技変動遊技状態(RT3モード)では、所定の遊技数(本実施例では、100ゲーム)を消化した場合に通常遊技状態(RT0モード)に移行し、BB1、BB2またはRBのいずれかの特別役に内部当選した場合(重複役による内部当選を含む)で、且つ所定の遊技数(本実施例では、100ゲーム)を消化した場合に特別役(ボーナス役)内部当選遊技(RT1モード)に移行する。なお、本実施例では、再遊技変動遊技をリプレイタイムとも言う。また、本実施例で特典遊技とは、例えばRT準備状態やRT状態をいうが、これに限定されず通常遊技状態よりも遊技者に有利な特典が付与される遊技であればよい。したがって、例えば、AT(アシストタイム:入賞役の内部当選等をランプ等で遊技者に報知する機能)、ART(アシストリプレイタイム:上述のATとRTを併せ持つ機能)、ST(ストックタイム:ボーナス役の内部当選フラグを一時的に貯留し、一定の条件を満たした場合にボーナス役の内部当選フラグを放出する機能)等でもよい。
<主制御部の処理>
次に、図13を用いて、主制御部300のメイン処理について説明する。なお、同図は、主制御部300のメイン処理の流れを示すフローチャートである。
遊技の基本的制御は、主制御部300のCPU310が中心になって行い、電源断等を検知しないかぎり、CPU310が同図の主制御部メイン処理を繰り返し実行する。そして、各処理の実行によって得られた情報は、所定のタイミングで副制御部400に適宜送信される。
スロットマシン100に電源が投入されると、まず、主制御部メイン処理のステップS101において各種の初期化処理が実行され、各種の初期設定が行われる。
ステップS102では、メダル投入に関する処理を行う。ここでは、メダルの投入の有無をチェックし、投入されたメダルの枚数に応じて入賞ライン表示ランプ120を点灯させる。なお、前回の遊技で再遊技役に入賞した場合は、メダルの追加投入をすることなく前回の遊技と同じ賭け数の遊技を行うことができる。また、ステップS102では、遊技のスタート操作に関する処理を行う。ここでは、スタートレバー135が操作されたか否かのチェックを行い、スタート操作されたと判断した場合は、投入されたメダル枚数を確定するとともに、副制御部400に対してスタート信号(コマンド)を送信する。
ステップS103では、有効な入賞ラインを確定し、ステップS104では、乱数発生器317で発生させた乱数を取得する。
ステップS105では、ステップS104で取得した乱数値と、現在の遊技状態に応じてROM312に格納されている入賞役抽選テーブルを用いて、入賞役の内部抽選を行う(抽選手段)。内部抽選の結果、いずれかの入賞役(作動役を含む)に内部当選した場合、その入賞役のフラグがONになる。また、このステップS105では、入賞役内部抽選の結果、入賞役に内部当選したと判定した場合には入賞役に対応するコマンドを、また、ハズレ(入賞役の非当選)と判定した場合にはハズレに対応するコマンドを、副制御部400に送信する。例えば、特別役に内部当選した場合には、副制御部400に対して特別役(ボーナス役)内部当選コマンドを送信し、スイカまたはチェリーに内部当選した場合には、副制御部400に対してスイカ/チェリー内部当選コマンドを送信する。
ステップS106では、ROM312に格納されているリール停止制御データ選択テーブルを参照し、ステップS105の内部抽選結果等に基づいて候補となるリール停止制御データを選択する。また、ステップS107では、リール回転開始処理により、全リール110〜112の回転を開始させる。
ステップS108では、演出用投入ボタン受付処理を行う。この演出用投入ボタン受付処理では、遊技者による演出用投入ボタン(メダル投入ボタン)132の操作を受け付けたか否かを判定し、演出用投入ボタン132の操作を受け付けた場合は、遊技者による演出用投入ボタン132の操作を受け付けた旨の演出用投入ボタン受付コマンドを副制御部400に送信する。
ステップS109では、リール停止制御処理により、押されたストップボタン137〜139に対応するリール110〜112の回転を停止させる。この際、各リール110〜112を、ステップS106で選択したリール停止制御データに基づいて停止させる。また、ステップS109では、全てのリール110〜112が停止した場合に、副制御部400に対して第3停止コマンドを送信する。
ステップS110では、ストップボタン137〜139が押されることによって停止した図柄の入賞判定を行う。ここでは、有効ライン上に、内部当選した入賞役またはフラグ持越し中の入賞役に対応する図柄組合せが揃った(表示された)場合にその入賞役に入賞したと判定する。例えば、有効ライン上に「リプレイ図柄−リプレイ図柄−リプレイ図柄」が揃っていたならばリプレイ入賞と判定する。また、このステップS110では、入賞判定の結果、入賞役に入賞したと判定した場合に、入賞役に対応するコマンドを副制御部400に送信する。例えば、有効ライン上に「CHANCE図柄−CHANCE図柄−CHANCE図柄」が表示された場合(チャンスに入賞した場合)には、副制御部400に対してCHANCE図柄表示コマンドを送信する。また、BB1、BB2、またはRBに入賞した場合も同様に、副制御部400に対してBB1入賞コマンド、BB2入賞コマンド、またはRB入賞コマンドをそれぞれ送信する。
ステップS111では、メダル払出処理を行う。このメダル払出処理では、払い出しのある何らかの入賞役に入賞していれば、その入賞役に対応する枚数のメダルを払い出す。ステップS112では、遊技状態制御処理を行う。以上により1ゲームが終了する。以降ステップS102へ戻って上述した処理を繰り返すことにより遊技が進行することになる。
<副制御部400の処理>
次に、副制御部400の処理について説明する。図14(a)は、副制御部400のメイン処理の流れを示すフローチャートである。
まず、ステップS301では、各種の初期設定を行う。電源投入が行われると、まずステップS301で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM413内の記憶領域の初期化処理等を行う。ステップS302では、コマンド入力処理(詳細は後述する)を行う。ステップS303では、演出データの更新処理を行う。この演出データの更新処理では、演出を制御するための動作制御データ等の更新を行う。具体的には、例えば、副制御部500へ送信する制御コマンドの有無を判定し、判定結果に基づいて動作制御データ等を更新する。
ステップS304では、ステップS303で更新した演出データの中に副制御部400の各演出デバイス(演出ランプ430、スピーカ483等)のドライバに出力するデータがあるか否かを判定する。該当する場合はステップS305へ進み、該当しない場合はステップS306に進む。ステップS305では、副制御部400の演出デバイスのドライバにデータをセットする。データのセットにより演出デバイスがそのデータに応じた演出を実行する。ステップS306では、ステップS303で更新した演出データの中に副制御部500に送信する制御コマンドがあるか否かを判定する。該当する場合はステップS307へ進み、該当しない場合はステップS302に戻る。ステップS307では、副制御部500に制御コマンド(例えば、特別役内部当選コマンドや演出用投入ボタン受付コマンドを主制御部300から受信した旨のコマンド等)を送信してステップS302に戻る。
次に、図14(b)を用いて、副制御部400のコマンド入力処理について説明する。同図は、副制御部400のコマンド入力処理の流れを示すフローチャートである。ステップS401では、RAM413に設けたコマンド記憶領域に少なくとも1つの未処理コマンド(後述するストローブ割込み処理によって格納される制御コマンド)が格納されているか否かを判定する。該当する場合はステップS402へ進み、該当しない場合はステップS401に戻る。ステップS402では、コマンド記憶領域から制御コマンドを1つ取得して解析し、解析結果に応じた処理を実行する。具体的には、例えば、取得した制御コマンドの解析結果が上述した特別役内部当選コマンドや演出用投入ボタン受付コマンドである場合には、これらのコマンドを副制御部300から受信した旨を示す制御コマンドを副制御部500へ送信する準備を行う。なお、取得した制御コマンドはコマンド記憶領域から消去する。
次に、図14(c)を用いて、副制御部400のストローブ割込み処理について説明する。同図は、副制御部400ストローブ割込み処理の流れを示すフローチャートである。このストローブ割込み処理は、副制御部400が、主制御部300が制御コマンドの送信とともに出力するストローブ信号を検出した場合に実行する処理である。ストローブ割込み処理のステップS501では、主制御部300が出力した制御コマンドを未処理コマンドとしてRAM413に設けたコマンド記憶領域に記憶する。
次に、図14(d)を用いて、副制御部400のタイマ割込み処理について説明する。同図は、副制御部400タイマ割込み処理の流れを示すフローチャートである。副制御部400は、所定の周期(本実施例では2msに1回)でタイマ割込みを発生するハードウェアタイマを備えており、このタイマ割込みを契機として、副制御部400タイマ割込み処理を実行する。このタイマ割込み処理のステップS601では、RAM413の所定記憶領域に記憶した汎用タイマを更新する。なお、本実施例では、割込み処理を5回行う毎に汎用タイマを1つ加算することによって汎用タイマの更新周期を10ms(=2ms×5回)に設定している。
<副制御部500の処理>
次に、副制御部500の処理について説明する。図15(a)は、副制御部500のメイン処理の流れを示すフローチャートである。
まず、ステップS701では、各種の初期設定を行う。電源投入が行われると、まずステップS701で初期化処理が実行される。この初期化処理では、入出力ポートの初期設定や、RAM513内の記憶領域の初期化処理等を行う。また、CG−ROM535に記憶した画像データやカラーパレットデータのうち、使用頻度の多いデータをVRAM613に転送する処理等を行う。ステップS702では、コマンド入力処理を行う。ここでは、まず、RAM513に設けたコマンド記憶領域に少なくとも1つの未処理コマンド(後述する副制御部500の割込み処理によって格納される制御コマンド)が格納されているか否かを判定する。そしてコマンド記憶領域に未処理の制御コマンドが格納されている場合には、コマンド記憶領域から制御コマンドを1つ取得して解析し、解析結果に応じた処理を実行する。具体的には、例えば、取得した制御コマンドの解析結果が、特別役内部当選コマンドや演出用投入ボタン受付コマンドを副制御部300から受信した旨のコマンドである場合には、これらのコマンドを副制御部400から受信した旨を示す制御コマンドを副制御部600へ送信する準備を行う。なお、取得した制御コマンドはコマンド記憶領域から消去する。
また、ここでは、解析した制御コマンド(例えば、特別役内部当選コマンド)の内容に基づいて抽選を行い、実行する演出の態様を決定する。例えば、副制御部500は抽選によって演出の種類を決定するが、このときに、今回の遊技で内部当選した入賞役の種類に応じて異なる抽選テーブルを使用する。そして、抽選により、垂直可動部材202および水平可動部材204を動作させる演出が選択された場合には、左モータ215、右モータ225および上モータ226の駆動制御に関するデータを含んだコマンド(後述するモータコマンド)等を副制御部600に送信する準備を行う。
ステップS703では、演出データの更新処理を行う。この演出データの更新処理では、例えば、副制御部600へ送信する制御コマンドの有無を判定し、判定結果に基づいて演出のための制御データ等の更新を行う。ステップS704では、液晶演出処理を行う。ここでは、VDP534により、液晶表示装置157に演出用の画像を表示させる処理等を行う。ステップS705では、ステップS703で更新した演出データの中に副制御部600に送信する制御コマンドがあるか否かを判定する。該当する場合はステップS706に進み、該当しない場合はステップS702に戻る。ステップS706では、副制御部600に制御コマンドを送信する。ここでは、垂直可動部材202および水平可動部材204を動作させる演出を行う場合に、モータコマンド等を副制御部600に送信する。コマンドを送信した後は、ステップS702に戻る。
次に、図15(b)を用いて、副制御部500の割込み処理について説明する。同図は、副制御部500割込み処理の流れを示すフローチャートである。副制御部500は、所定の周期(本実施例では、2msに1回)でタイマ割込みを発生するハードウェアタイマを備えており、このタイマ割込みを契機として、副制御部500割込み処理を実行する。ステップS801では、副制御部400からの受信コマンドがあるか否かを判定する。副制御部400からコマンドを受信した場合はステップS802に進み、そうでない場合は処理を終了する。ステップS802では、受信コマンドを未処理コマンドとしてRAM513のコマンド記憶領域に記憶する。
<副制御部600のメイン処理>
次に、図16を用いて、副制御部600のメイン処理について説明する。なお、同図は、副制御部600のメイン処理の流れを示すフローチャートである。
まず、ステップS901では、スロットマシン100の電源の遮断(電断)前の状態に復帰するか否かを判定し、復帰する場合にはステップS902に進み、復帰しない場合はステップS903に進む。
ステップS902では、復電時処理を行う。この復電時処理では、電断時にRAM613に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタを読み出し、スタックポインタに再設定する。また、電断時にRAM613に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割り込み許可の設定を行う。以降、MPU610が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、スロットマシン100は電源断時の状態に復帰する。すなわち、電断直前に行った命令の次の命令から処理を再開する。
ステップS903では、初期化処理を行った後、ステップS904に進む。この初期化処理では、入出力ポートの初期設定や、RAM613内の記憶領域の初期化処理等を行う。また、左モータ215、右モータ225および上モータ235を制御して、垂直可動部材202および水平可動部材204を基準位置に移動させる処理を行う。ステップS904では、常駐情報格納処理を行う。詳細は後述するが、この常駐情報格納処理では、使用頻度の高い処理の情報(プログラムやデータ)や、処理速度を高めたい処理の情報などを、キャッシュ610bに予め記憶するための処理を行う。
ステップS905では、RAM613のコマンド記憶領域に未処理コマンド(後述する副制御部600の割込み処理によって格納される制御コマンド)が格納されているか否かを判定する。そして、未処理コマンドがある場合はステップS906に進み、そうでない場合はステップS907に進む。ステップS906では、未処理コマンドの内容を解析して判定した後、ステップS907に進む。
ステップS907では、未処理コマンドがモータコマンドであるか否かを判定する。そして、未処理コマンドが、左モータ215、右モータ225および上モータ235を制御するためのモータコマンドである場合はステップS908に進み、そうでない場合はステップS909に進む。ステップS908では、動作停止の要求を行った後、ステップS909に進む。このステップS908では、後述するインターバルタイマ割込み処理に対して動作停止を要求する。具体的には、RAM613の所定の領域に動作停止を要求する旨の情報を記憶する。
ステップS909では、後述するインターバルタイマ割込み処理の絶対座標動作処理の駆動停止処理においてパーツリストデータの要求がされたか否かを判定する。具体的には、RAM613の所定の領域にパーツリストデータの取得を要求する旨の情報が記憶されているか否かを判定する。本実施例では、後述するステップS910において、受信したモータコマンドに基づき、ROM612の所定の領域に予め記憶されたパーツリストデータを参照して制御情報を取得する。そして、後述するインターバルタイマ割込み処理において、取得したパーツリストデータに基づき、ROM612の所定の領域に予め記憶されたパーツデータを参照してより詳細な制御情報を取得する。
ステップS910では、モータコマンドに基づくパーツリストデータの受渡しを行う。ここでは、まず、RAM613に設定されたパーツリストデータ記憶領域に記憶されていたパーツリストデータを消去する。そして、今回の未処理コマンド(モータコマンド)に基づいてROM612から取得したパーツリストデータをパーツリストデータ記憶領域に記憶する。
ステップS911は、副制御部400へコマンドを送信するか否かを判定する。副制御部400へコマンドを送信する場合はステップS912に進み、そうでない場合は、ステップS905に戻る。ステップS912では、副制御部400へコマンドを送信して、ステップS905に戻る。以降、副制御部600メイン処理では上記ステップS905〜S912の処理を繰り返し実行する。
<常駐情報格納処理>
次に、図17を用いて、上記副制御部600メイン処理における常駐情報格納処理について説明する。なお、同図は、常駐情報格納処理の流れを示すフローチャートである。
ステップS1001では、ROM612に予め記憶しているプログラムに記述された書換え不可情報に基づいて、キャッシュ610bに常駐させる情報を選定した後、ステップS1002に進む。具体的には、本実施例では、キャッシュ610bに常駐させる情報として、後述する電源断監視処理を実行するための情報(ROM612に予め記憶している電源断監視処理のプログラムや、この電源断監視処理のプログラムが参照する各種データ)や、後述するインターバルタイマ割込み処理を実行するための情報(ROM612に予め記憶しているインターバルタイマ割込み処理のプログラムや、このインターバルタイマ割込み処理のプログラムが参照する各種データ(例えば、後述するパーツリストデータやパーツデータなど))を選定する。
ステップS1002では、実効アドレスに対応する情報の読み込みを開始し、次のステップS1003では、ROM612に予め記憶しているプログラムに基づいて、ステップS1001で選定した情報を格納するキャッシュ601bのウェイを特定した後、ステップS1004に進む。具体的には、本実施例では、上述の電源断監視処理を実行するための情報を格納するキャッシュ601bのウェイとしてウェイ2がプログラムに予め設定され、上述のインターバルタイマ割込み処理を実行するための情報を格納するキャッシュ601bのウェイとしてウェイ3がプログラムに予め設定されており、副制御部600のCPU610aは、このプログラムの設定に従ってウェイ2とウェイ3を特定する。なお、電源断監視処理を実行するための情報とインターバルタイマ割込み処理を実行するための情報の両方をウェイ2およびウェイ3のいずれか一方に設定してもよい。
ステップS1004では、ステップS1001で選定した情報(本実施例では、電源断監視処理を実行するための情報と、インターバルタイマ割込み処理を実行するための情報)に対応する実効アドレスの一部から、上述のインデックス値を抽出した後、ステップS1005に進む。
ステップS1005では、ステップS1002で特定したウェイ(この例では、ウェイ2またはウェイ3)およびステップS1004で抽出したインデックス値に基づいて、キャッシュ610bのエントリを選択した後、ステップS1006に進む。
ステップS1006では、ステップS1001で選定した情報(本実施例では、電源断監視処理を実行するための情報と、インターバルタイマ割込み処理を実行するための情報)に対応する実効アドレスに記憶された情報(本実施例では、16バイト境界の16バイト分のデータブロック)を読み出して、ステップS1005で選択したエントリに対応するデータアレイのロングワードLW0〜LW3に格納する。
ステップS1007では、ステップS1001で選定した情報(本実施例では、電源断監視処理を実行するための情報と、インターバルタイマ割込み処理を実行するための情報)に対応する実効アドレスに基づいてMMUが生成する物理アドレスを、タグアドレスとして、ステップS1005で選択したエントリに対応するアドレスアレイに格納する。また、このタグアドレスに対応するロックビットLとバリッドビットVをそれぞれ1に設定した後、ステップS1008に進む。このロックビットLの1(ロック状態)の設定により、キャッシュ610bのウェイ2に格納した電源断監視処理を実行するための情報と、キャッシュ610bのウェイ3に格納したインターバルタイマ割込み処理を実行するための情報の上書き更新が禁止される(電源断監視処理を実行するための情報とインターバルタイマ割込み処理を実行するための情報がキャッシュ610bに常駐される)。
ステップS1008では、他にキャッシュ610cに常駐させる情報が無いかを判定し、常駐させる情報があればステップS1001に戻って常駐情報格納処理を継続し、常駐させる情報が無ければ常駐情報格納処理を終了する。
<副制御部600の電源断監視処理>
次に、図18(a)を用いて、副制御部600の電源断監視処理について説明する。なお、同図は、副制御部600の電源断監視処理の流れを示すフローチャートである。
副制御部600は、NMI(ノンマスカブル割込み)を発生するハードウェアを備えており、このNMIを契機として、副制御部600電源断監視処理を実行する。ステップS1701では、低電圧信号がオンであるか否か、すなわち、図示しない電圧監視回路が、副制御部600に供給している電源の電圧値が所定の値(例えば9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(MPU610が電源の遮断を検知した場合)にはステップS1702に進み、低電圧信号がオフの場合(MPU610が電源の遮断を検知していない場合)には処理を終了する。
ステップS1702では、上述のスタックポインタ退避領域にスタックポインタを記憶したり、上述のレジスタ退避領域に各レジスタの値を記憶する。また、RAM613に設けた電源ステータスの情報にサスペンドを示す情報を記憶したり、チェックサムを算出して記憶する。なお、本実施例では、RAM613の所定の領域(例えば全ての領域)に記憶している1バイトデータを、初期値が0である1バイト構成のレジスタを用いて全て加算して総和を算出し、その総和を0とするような値を算出してチェックサムとして記憶する。
<副制御部600の割込み処理>
次に、図18(b)を用いて、副制御部600の割込み処理について説明する。なお、同図は、副制御部600の割込み処理の流れを示すフローチャートである。
副制御部600は、所定の周期(本実施例では、2msに1回)でタイマ割込みを発生するハードウェアタイマを備えており、このタイマ割込みを契機として、副制御部600割込み処理を実行する。ステップS1801では、副制御部500からの受信コマンドがあるか否かを判定する。そして、副制御部500からコマンドを受信した場合はステップS1802に進み、そうでない場合は処理を終了する。ステップS1802では、受信コマンドを未処理コマンドとしてRAM613のコマンド記憶領域に記憶した後、処理を終了する。
<副制御部600のインターバルタイマ割込み処理>
次に、図19を用いて、副制御部600のインターバルタイマ割込み処理について説明する。なお、同図は、副制御部600のインターバルタイマ割込み処理の流れを示すフローチャートである。副制御部600は、所定の周期(本実施例では、0.3msに1回)でインターバルタイマ割込み処理を実行する。
まず、ステップS1101では、後述するデータ更新記憶処理のステップS1205でセットされる相対座標動作フラグがONであるか否かを判定する。ここでは、RAM613の所定の領域に記憶された相対座標動作の開始を示す相対座標動作フラグがONであるか否かを判定し、相対座標動作フラグがONでない場合はステップS1102に進み、相対座標動作フラグがONである場合はステップS1103に進む。ステップS1102では、各可動部材202、204に絶対座標動作を行わせる絶対座標動作処理を実行し、ステップS1103では、各可動部材202、204に相対座標動作を行わせる相対座標動作処理を実行する。絶対座標動作処理および相対座標動作処理の詳細については後述する。
ステップS1104では、パーツリストデータの受渡しがされたか否かを判定する。ここでは、副制御部600メイン処理のステップS910においてRAM613のパーツリストデータ記憶領域にパーツリストデータが新たに記憶されたか否かを判定し、パーツリストデータが記憶された場合はステップS1105に進み、そうでない場合はステップS1106へ進む。
ステップS1105では、データ更新記憶処理を実行する。以下、図20を用いて、データ更新記憶処理について説明する。同図は、データ更新記憶処理の流れを示すフローチャートである。
データ更新記憶処理のステップS1201では、RAM613のパーツリストデータ記憶領域に記憶されたパーツリストデータを参照し、これに基づいてROM612に予め記憶されたパーツデータ(キャッシュ610bに常駐するパーツデータ)を抽出して取得する。なお、このステップS1201では、パーツリストデータを参照する場合に、キャッシュ610bにリードヒットしたときは、キャッシュ610bに記憶されたパーツリストデータを参照し、キャッシュ610bにリードヒットしなかったときは、RAM613に記憶されたパーツリストデータを参照する。以下、インターバルタイマ割込み処理でRAM613に記憶されたデータを参照する(読み出す)場合に、キャッシュ610bにリードヒットしたときはキャッシュ610bに記憶されたデータを参照し、キャッシュ610bにリードヒットしなかったときはRAM613に記憶されたデータを参照する。
ステップS1202では、取得したパーツデータが絶対座標動作用のものであるか否かを判定する。すなわち、パーツデータの「動作パターン」の領域に0が格納されている場合はステップS1203に進み、1が格納されている場合はステップS1204に進む。
ステップS1203では、RAM613の絶対座標動作用の指定記憶領域に抽出したパーツデータを新たに記憶する。このとき、それまで絶対座標動作用の指定記憶領域に記憶されていたパーツデータは消去される。なお、このステップS1203では、パーツリストデータを記憶する場合に、キャッシュ610bにライトヒットしたときは、パーツデータを記憶せず、キャッシュ610bにライトヒットしなかったときは、キャッシュ610bにパーツデータを記憶する。以下、インターバルタイマ割込み処理でRAM613にデータを記憶する(書き込む)場合に、キャッシュ610bにライトヒットしたときはデータを記憶せず、キャッシュ610bにライトヒットしなかったときはキャッシュ610bデータを記憶する。
ステップS1204では、RAM613の相対座標動作用の指定記憶領域に抽出したパーツデータを新たに記憶する。このとき、それまで相対座標動作用の指定記憶領域に記憶されていたパーツデータは消去される。
ステップS1205では、相対座標動作フラグをONにセットする。これにより、次の割込みにおいてステップS1103の相対座標動作処理が実行される。ステップS1206では、後述する絶対座標動作処理の駆動停止処理のステップS1404でセットされる駆動停止フラグをOFFにリセットする。駆動停止フラグとは、モータを一次停止させるか否かを示す情報であり、RAM613の所定の領域に記憶されている。
図19に戻って、ステップS1106では、座標処理を行う。ここでは、各モータ215、225、235の累積ステップ数から各スライダ212、222、232の現在位置の座標(例えば、ステップ数)を算出してRAM613の所定の領域に記憶する。ここで記憶された各スライダ212、222、232の現在位置の座標は、例えば、液晶表示装置157に表示する画像を、垂直可動部材202や水平可動部材204の現在位置に合わせて配置する場合等に使用される。
<絶対座標動作処理>
次に、図21を用いて、インターバルタイマ割込み処理におけるステップS1102の絶対座標動作処理について説明する。なお、同図は、絶対座標動作処理の流れを示すフローチャートである。絶対座標動作処理は、各モータ215、225、235について個別に実行される。
絶対座標動作処理のステップS1301では、駆動停止処理を行う。以下、図22を用いて、駆動停止処理について説明する。同図は、駆動停止処理の流れを示すフローチャートである。
駆動停止処理のステップS1401では、動作停止の要求があるか否かを判定する。ここでは、副制御部600メイン処理のステップS908においてRAM613の所定の領域に動作停止を要求する旨の情報が記憶されたか否かを判定する。動作停止を要求する旨の情報が記憶されている場合はステップS1402に進み、そうでない場合は処理を終了する。ステップS1402では、駆動停止フラグがONであるか否かを判定する。駆動停止フラグがOFFである場合はステップS1403に進み、駆動停止フラグがONである場合は処理を終了する。
ステップS1403では、駆動停止情報を設定する。ここでは、各モータ215、225、235の駆動を一次停止させるために各モータドライバ671、672、673に出力する駆動停止情報(1パルスの信号)の設定を行う。駆動停止情報は、例えば「励磁」、「トルク」、「CW/CCW(回転方向)」の項目から構成され、RAM613の所定の領域に記憶される。RAM613の所定の領域にそれまで記憶されていた駆動停止情報は消去される。ステップS1404では、駆動停止フラグをONにセットする。ステップS1405では、設定した駆動停止情報を1パルスの信号として各モータドライバ671、672、673に出力する。ステップS1406では、パーツリストデータの要求を行う。ここでは、上述した副制御部600メイン処理に対してパーツリストデータの取得を要求する。具体的には、RAM613の所定の領域にパーツリストデータの取得を要求する旨の情報を記憶する。
図21に戻って、ステップS1302では、駆動停止フラグがONであるか否かを判定する。駆動停止フラグがOFFである場合はステップS1303に進み、駆動停止フラグがONである場合は処理を終了する。ステップS1303では、駆動情報の変更タイミングであるか否かを判定する。ここでは、後述する絶対座標動作用のステップ数カウンタが0であるならば、変更タイミングであると判定する。変更タイミングである場合はステップS1304に進み、そうでない場合はステップS1307に進む。ステップS1304では、インターバルタイマ割り込み処理のステップS1105のデータ更新記憶処理においてRAM613の絶対座標動作用の指定記憶領域に記憶されたパーツデータを参照して駆動情報を更新設定する。ここでは、各モータ215、225、235を駆動させるために各モータドライバ671、672、673に出力する駆動情報(1パルスの信号)の設定を行う。この駆動情報は、現在の各スライダ212、222、232の座標位置(各モータ215、225、235のステップ数)とパーツデータの「移動位置」および「移動に要する時間」に基づいて設定される。駆動情報は、例えば「励磁」、「トルク」、「CW/CCW(回転方向)」の項目から構成されている。ここで、「励磁」は、使用する励磁(1−2相または2相等)を設定するものである。「トルク」は、モータの駆動トルクを設定するものであり、通常は100に設定されるが、モータ停止後に所定時間を経過した場合は50が設定される。「CW/CCW」はモータの回転方向を設定するものであり、現在のステップ数が移動先のステップ数より小さいならば正回転に、現在のステップ数が移動先のステップ数より大きいならば負回転に設定される。設定された駆動情報はRAM613の所定の領域に記憶され、RAM613の所定の領域にそれまで記憶されていた駆動情報は消去される。なお、駆動情報は、上述の駆動停止情報とは別の領域に記憶される。
ステップS1305では、絶対座標動作用のステップ数カウンタの設定を行う。絶対座標動作用のステップ数カウンタとは、絶対座標動作において各モータドライバ671、672、673に出力されるモータのステップ数をカウントするためのものであり、RAM613の所定の領域に記憶されている。ここでは、総移動ステップ数がステップ数カウンタの初期値として設定される。総移動ステップ数は、例えば、パーツデータの「移動位置」のステップ数(基準位置から移動先までのステップ数)から、現在のステップ数を減じた数値の絶対値を求めることで算出される。現在のステップ数は、後述するステップS1310の現在ステップ数更新処理において更新された数値を使用する。
ステップS1306では、絶対座標動作用の出力回数カウンタの設定を行う。絶対座標動作用の出力回数カウンタとは、絶対座標動作において、各モータドライバ671、672、673に駆動情報の信号を出力するタイミングをカウントするためのものであり、RAM613の所定の領域に記憶されている。ここでは、上述のインターバルタイマ割込み処理(割込み周期:0.3ms)を何回実行するごとに、駆動情報の信号を出力するかが出力回数カウンタの基準値として設定される。出力回数カウンタの基準値は、2相励磁の場合、例えば、パーツデータの「移動に要する時間」の時間(ms)を割込み周期の0.3(ms)で除した数値を、さらにステップS1305で算出した総移動ステップ数で除することで算出される。1−2相励磁の場合、1回の出力(1パルスの信号)で1/2ステップとなるため、出力回数カウンタの基準値は上記演算結果の1/2の数値となる。なお、励磁が同じ且つ移動ステップ数の総数が同じ場合、出力回数カウンタの基準値が小さいほど速い動きとなる。算出された出力回数カウンタの基準値は、RAM613の所定の領域に記憶される。
ステップS1307では、各モータドライバ671、672、673に信号を出力するタイミングであるか否かを判定する。ここでは、ステップS1306において設定した出力回数カウンタの基準値と、後述するステップS1311の出力回数カウンタ更新処理において更新された出力回数カウンタの数値を比較して、両者が等しい場合に信号を出力するタイミングであると判定する。信号を出力するタイミングである場合はステップS1308に進み、そうでない場合はステップS1309に進む。
ステップS1308では、設定した駆動情報を示す信号を各モータドライバ671、672、673に出力する。ここでは、駆動情報を示す1パルスのデジタル信号を各モータドライバ671、672、673に出力する。なお、駆動情報を示す信号を受信した各モータドライバ671、672、673は、受信した変更をアナログ信号に変換した上で各モータ215、225、235に出力し、各モータ215、225、235を駆動する。各モータ215、225、235は、1パルスのデジタル信号によって、2相励磁ならば1ステップ回転し、1−2相励磁ならば1/2ステップ回転する。
ステップS1309では、絶対座標動作用のステップ数カウンタの更新処理を行う。ここでは、2相励磁の駆動情報を出力した場合には、記憶された絶対座標動作用のステップ数カウンタの数値から1を減算する。また、1−2相励磁の駆動情報を出力した場合には、出力が2回行われたときに、記憶された絶対座標動作用のステップ数カウンタの数値から1を減算する。
ステップS1310では、絶対座標動作用の現在ステップ数の更新処理を行う。絶対座標動作用の現在ステップ数とは、絶対座標動作における各スライダ212、222、232の現在位置を記憶するためのものであり、RAM613の所定の領域に記憶されている。ここでは、今回出力した駆動情報が、2相励磁且つ正回転であるならば記憶された現在ステップ数に1を加算して新たに記憶し、2相励磁且つ負回転であるならば記憶された現在ステップ数から1を減算して新たに記憶する。また、今回出力した駆動情報が、1−2相励磁且つ正回転であるならば、出力が2回行われたときに記憶された現在ステップ数に1を加算して新たに記憶し、1−2相励磁且つ負回転であるならば、出力が2回行われたときに記憶された現在ステップ数から1を減算して新たに記憶する。
ステップS1311では、絶対座標動作用の出力回数カウンタの更新処理を行う。ここでは、記憶された出力回数カウンタの数値に1を加算して新たに記憶する。但し、ステップS1304において駆動情報の更新設定がされた場合には、出力回数カウンタに1を設定し、ステップS1308において駆動情報が出力された場合には出力回数カウンタに0を設定する。
<相対座標動作処理>
次に、図23を用いて、インターバルタイマ割込み処理におけるステップS1103の相対座標動作処理について説明する。なお、同図は、相対座標動作処理の流れを示すフローチャートである。相対座標動作処理は、絶対座標動作処理と同様に、各モータ215、225、235について個別に実行される。
ステップS1501では、補正処理を行う。この補正処理では、相対座標動作用の指定記憶領域に記憶されたパーツデータを補正する。次のステップS1502では、駆動情報の変更タイミングであるか否かを判定する。ここでは、後述する相対座標動作用のステップ数カウンタの数値が0であるならば、変更タイミングであると判定する。変更タイミングである場合はステップS1503に進み、そうでない場合はステップS1506に進む。
ステップS1503では、インターバルタイマ割り込み処理のステップS1105のデータ更新記憶処理においてRAM613の相対座標動作用の指定記憶領域に記憶されたパーツデータを参照して駆動情報を更新設定する。ここでは、各モータ215、225、235を駆動させるために各モータドライバ671、672、673に出力する駆動情報(1パルスの信号)の設定を行う。算出された駆動情報はRAM613の所定の領域に記憶され、RAM613の所定の領域にそれまで記憶されていた駆動情報は消去される。なお、駆動情報は、駆動停止情報とは別の領域に記憶される。
ステップS1504では、相対座標動作用のステップ数カウンタの設定を行う。相対座標動作用のステップ数カウンタとは、相対座標動作において各モータドライバ671、672、673に出力されるモータのステップ数をカウントするためのものであり、RAM613の所定の領域に絶対座標動作用のステップ数カウンタとは別に記憶されている。ここでは、総移動ステップ数がステップ数カウンタの初期値として設定される。総移動ステップ数は、例えば、パーツデータの「移動位置」のステップ数(基準位置から移動先までのステップ数)から、現在のステップ数を減じた数値の絶対値を求めることで算出される。現在のステップ数は、後述するステップS1511の現在ステップ数更新処理において更新された数値を使用する。
ステップS1505では、相対座標動作用の出力回数カウンタの設定を行う。相対座標動作用の出力回数カウンタとは、相対座標動作において、各モータドライバ671、672、673に駆動情報の信号を出力するタイミングをカウントするためのものであり、RAM613の所定の領域に絶対座標動作用の出力回数カウンタとは別に記憶されている。ここでは、上述のインターバルタイマ割込み処理(割込み周期:0.3ms)を何回実行するごとに、駆動情報の信号を出力するかが出力回数カウンタの基準値として設定される。出力回数カウンタの基準値は、2相励磁の場合、例えば、パーツデータの「移動に要する時間」の時間(ms)を割込み周期の0.3(ms)で除した数値を、さらにステップS1705で算出した総移動ステップ数で除することで算出される。1−2相励磁の場合、1回の出力(1パルスの信号)で1/2ステップとなるため、出力回数カウンタの基準値は上記演算結果の1/2の数値となる。
ステップS1506では、各モータドライバ671、672、673に信号を出力するタイミングであるか否かを判定する。ここでは、ステップS1505において設定した出力回数カウンタの基準値と、後述するステップS1512の出力回数カウンタ更新処理において更新された出力回数カウンタの数値を比較して、両者が等しい場合に信号を出力するタイミングであると判定する。信号を出力するタイミングである場合はステップS1507に進み、そうでない場合はステップS1512に進む。ステップS1507では、設定した駆動情報を示す信号を各モータドライバ671、672、673に出力する。
ステップS1508では、相対座標動作用のステップ数カウンタの更新処理を行う。ここでは、2相励磁の駆動情報を出力した場合には、記憶された相対座標動作用のステップ数カウンタの数値から1を減算する。また、1−2相励磁の駆動情報を出力した場合には、出力が2回行われたときに、記憶された相対座標動作用のステップ数カウンタの数値から1を減算する。
ステップS1509では、相対座標動作用のステップ数カウンタの数値が0であるか否かを判定する。相対座標動作用のステップ数カウンタの数値が0である場合はステップS1510に進み、そうでない場合はステップS1511に進む。ステップS1510では、上述のデータ更新記憶処理のステップS1205でONにセットされた相対座標動作フラグをOFFにリセットする。
ステップS1511では、相対座標動作用の現在ステップ数の更新処理を行う。相対座標動作用の現在ステップ数とは、相対座標動作における各スライダ212、222、232の現在位置を記憶するためのものであり、RAM613の所定の領域に絶対座標動作用の現在ステップ数とは別に記憶されている。ここでは、今回出力した駆動情報が、2相励磁且つ正回転であるならば記憶された現在ステップ数に1を加算して新たに記憶し、2相励磁且つ負回転であるならば記憶された現在ステップ数から1を減算して新たに記憶する。また、今回出力した駆動情報が、1−2相励磁且つ正回転であるならば、出力が2回行われたときに記憶された現在ステップ数に1を加算して新たに記憶し、1−2相励磁且つ負回転であるならば、出力が2回行われたときに記憶された現在ステップ数から1を減算して新たに記憶する。
ステップS1512では、相対座標動作用の出力回数カウンタの更新処理を行う。ここでは、記憶された出力回数カウンタの数値に1を加算して新たに記憶する。但し、ステップS1503において駆動情報の更新設定がされた場合には、出力回数カウンタに1を設定し、ステップS1507において駆動情報が出力された場合には出力回数カウンタに0を設定する。
<演出例>
次に、図24および図25を用いて、垂直可動部材202および水平可動部材204を使用した演出について説明する。なお、図24(a)〜(c)および図25(a)〜(c)は、「隕石衝突1」の演出態様を示した図である。
本演出では、まず、図24(a)に示されるように、垂直可動部材202および水平可動部材204は、基準位置に位置している。また、液晶表示装置157は宇宙空間の画像を表示している。そして、この状態から、垂直可動部材202に通常動作を行わせる。この通常動作は、基準位置を基点にして動作する絶対座標動作(主動作)である。本演出における絶対座標動作では、同図(b)および(c)に示されるように、垂直可動部材202の右端および左端を交互に上下させて、垂直可動部材202をゆらゆらと揺れるように動作させる。具体的には、まず、左モータ215を駆動制御して左スライダ212を図の(1)位置から(2)位置に移動させ、次に、右モータ225を駆動制御して右スライダ222を図の(1)位置から(2)位置に移動させ、これと略同時に、左モータ215を駆動制御して左スライダ212を図の(2)位置から(1)位置に移動させる。以後は、左スライダ212および右スライダ222を、それぞれ逆方向に(1)位置と(2)位置の間で往復動作させる。なお、(1)位置は左右スライダ212、222の下限位置(基準位置)に、(2)位置は左右スライダ212、222の可動範囲の略中央に予め設定されている。本演出では、このように垂直可動部材202をゆらゆらと揺れるように動作させることで、宇宙船が揺れながら宇宙空間を飛行する様子を表現している。
次に、所定のタイミングで、図25(a)に示されるように、液晶表示装置157に隕石が前方から接近する画像を表示させると共に、垂直可動部材202の絶対座標動作を中断させる。また、これと略同時に、液晶表示装置157の垂直可動部材202の開口部202cの奥の部分には、「危険!!!」と遊技者に対するメッセージを表示する。ここで、所定のタイミングとは、内部当選した入賞役に関するコマンドを副制御部600が受信したときでもよいし、遊技者がストップボタン137〜139のいずれかを操作した旨のコマンドを副制御部600が受信したときでもよいし、遊技の開始、演出の開始または遊技者の操作等の所定のタイミングから所定の時間が経過したときでもよい。なお、この例では、左スライダ212が(2)位置から(1)位置に向けて移動途中の(3)位置に、右スライダ222が(1)位置から(2)位置に向けて移動途中の(3)位置にあるときに絶対座標動作(主動作)が中断されている。
絶対座標動作が中断された後には、垂直可動部材202に相対座標動作(副動作)を行わせる。すなわち、絶対座標動作が中断された時の左右スライダ212、222の位置である(3)位置を基点にした動作を、垂直可動部材202に行わせる。本演出における相対座標動作では、同図(b)に示されるように、垂直可動部材202を振動するように小刻みに上下に往復動させる。具体的には、左右スライダ212、222が同時に(3)位置→(4)位置→(3)位置→(5)位置→(3)位置と動く動作を、連続して2セット行う。このとき、液晶表示装置157には、隕石が衝突して弾ける画像を表示させる。本演出では、このように垂直可動部材202を振動するように動作させることで、隕石の衝突により宇宙船が振動する様子を表現している。
なお、(4)位置は(3)位置から所定の距離だけ上方に離れた位置に、(5)位置は(3)位置から所定の距離だけ下方に離れた位置に予め設定されている。従って、(3)位置の位置によっては、(4)位置または(5)位置が左右スライダ212、222の可動範囲外となる場合がある。このような場合には、(4)位置または(5)位置を補正した上で、垂直可動部材202に相対座標動作を行わせる。
続いて、相対座標動作が終了したとき、左右スライダ212、222は、同図(c)に示されるように(3)位置にある。すなわち、左右スライダ212、222は、絶対座標動作が中断されたときの位置にある。本演出では、相対座標動作の終了後、垂直可動部材202に絶対座標動作を(3)位置から再開させる。具体的には、絶対座標動作の中断時に(2)位置から(1)位置に向けて移動途中であった左スライダ212を(3)位置から(1)に向けて移動させ、絶対座標動作の中断時に(1)位置から(2)位置に向けて移動途中であった右スライダ222を(3)位置から(2)に向けて移動させる。以後は、左スライダ212および右スライダ222を、それぞれ逆方向に図の(1)位置と(2)位置の間を往復動作させる。また、相対座標動作が終了したときには、同図(c)に示されるように、「ボーナス?」等の内部当選した入賞役の種類を示唆するメッセージを開口部202cの奥の液晶表示装置157に表示する。
以上説明したように、本実施例1に係るスロットマシン100は、遊技の演出を行う演出手段(例えば、演出装置200、液晶表示装置157)と、前記演出手段に関わる第一の制御処理を実行するための第一の制御情報を読出し可能に記憶する第一の記憶手段(例えば、ROM612)と、前記第一の記憶手段から読み出された前記第一の制御情報を記憶し、該記憶された前記第一の制御情報を第一の速度(例えば、動作周波数66.7MHz)で読出し可能な第二の記憶手段(例えば、RAM613)と、前記第二の記憶手段から読み出された前記第一の制御情報に基づいて、前記第一の制御処理を実行する演算処理手段(例えば、CPU610a)と、を備える遊技台であって、前記第一の記憶手段および前記第二の記憶手段の両方は、前記演算処理手段とは別体に構成されたものであり、前記第一の記憶手段は、前記演算処理手段と通信線で接続され、且つ、前記第一の制御情報とは異なる制御情報であって、前記第一の制御処理とは異なる第二の制御処理を実行するための第二の制御情報を読出し可能に記憶し、前記第二の記憶手段は、前記演算処理手段と通信線で接続されており、前記演算処理手段と内部通信線で接続され、且つ、前記第一の記憶手段から読み出された前記第二の制御情報を記憶し、該記憶された前記第二の制御情報を前記第一の速度よりも大きな第二の速度(例えば、動作周波数200MHz)で読出し可能な第三の記憶手段(例えば、キャッシュ610b)を備え、前記第一の記憶手段から読み出された前記第二の制御情報は、電源投入がされたことに基づいて、前記第一の記憶手段から読み出されて前記第三の記憶手段に常駐するように記憶され、前記演算処理手段は、前記第一の制御処理を実行する場合は、前記第二の記憶手段から前記第一の制御情報を読み出して前記第一の制御処理を実行し、前記第二の制御処理を実行する場合は、前記第三の記憶手段から前記第二の制御情報を読み出して前記第二の制御処理を実行することを特徴とする、遊技台である。
本実施例1に係るスロットマシン100によれば、第二の制御情報に基づいて実行される特定の処理を高速に行うことができる。そのため、遊技台全体の制御の処理速度を従来よりも高めることができ、多種多様な制御を行うことができる場合がある。また、読み出し速度がやや遅い(小さい)第二の記憶手段に第一の制御情報を記憶し、第二の記憶手段より読み出し速度が速い(大きい)第三の記憶手段に第二の制御情報を記憶することで、第一の制御処理を実行する場合のレジスタ操作時の待機処理を削除し、ソースプログラムの効率化(データ容量の削減も含む)が可能となる場合がある。
また、迅速性が求められる処理(例えば、電断時処理)を適切なタイミングで実行できる場合がある。
また、前記第二の制御情報は、前記第一制御情報よりも前記演算処理手段による使用頻度が高い制御情報であってもよい。このような構成とすれば、使用頻度が高い第二の制御情報のアクセス速度を高めることができ、第二の制御情報に基づいて実行される特定の処理を高速に行うことができるため、遊技台全体の制御の処理速度を従来よりも高めることができ、多種多様な制御を行うことができる場合がある。
また、前記第二の制御情報は、前記演算処理手段のメイン処理(例えば、副制御部600のメイン処理)に対して周期的に割込みが行われる割込み処理(例えば、電源断監視処理、インターバルタイマ割込み処理)を実行するための制御情報であってもよい。このような構成とすれば、第二の制御情報に基づいて実行される割込み処理を高速に行うことができるため、割込み処理に割り当てる処理を増やすことができる上に、メイン処理の処理時間の空きを増大させ、メイン処理に割り当てる処理も増やすことができる場合があり、多種多様な制御を行うことができる場合がある。
また、前記第二の制御情報は、前記第一の制御処理よりも優先度の割合が高い制御処理を実行するための制御情報であってもよい。このような構成とすれば、優先度が高い特定の処理を高速に行うことができるため、遊技台全体の制御の処理速度を従来よりも高めることができ、多種多様な制御を行うことができる場合がある。
また、前記優先度の割合が高い制御処理は、電源断時に行われる電源断制御処理(例えば、電断時処理)であってもよい。このような構成とすれば、緊急性を有する電源の遮断時の処理を高速に行うことができるため、電断時の処理を確実に実行することができる場合がある。
また、前記第一の記憶手段(例えば、ROM612)は、前記演算処理手段(例えば,CPU610a)と外部通信線(例えば、外部バス)で接続され、且つ、前記演出手段の制御処理を実行するための制御情報を記憶し、前記第三の記憶手段は、前記演算処理手段と内部通信線(例えば、内部バス)で接続され、且つ、前記第一の記憶手段から読み出された前記制御情報を記憶し、前記演算処理手段は、前記第一の記憶手段および第三の記憶手段から読み出された制御情報を用いて、演算処理を実行し、該実行結果に基づいて前記演出手段の制御処理を実行するように構成してもよい。このように構成すれば、第三の記憶手段は内部バスを介して高速にアクセスできるため、第三の記憶手段に記憶される制御情報に基づいて実行される特定の処理を高速に行うことができる場合がある。
なお、本実施形態の参考例に係る遊技台の構成は、例えば、図26に示すように、遊技の演出を行う遊技装置と、前記遊技装置の制御処理を実行するための制御情報(この例では、処理C、処理Dのプログラムや各種データ)を記憶し、該記憶した制御情報を第1の速度で読出し可能な第1記憶手段(この例では、外付けROM2)と、前記第1記憶手段から読み出された前記制御情報を記憶し、該記憶した制御情報(この例では、処理A、処理Bのプログラムや各種データ)を前記第1の速度よりも高速な第2の速度で読出し可能な第2記憶手段(この例では、外付けROM1)と、前記第2記憶手段から読み出された制御情報に基づいて、前記遊技装置の制御処理を実行する遊技装置制御手段(この例では、CPU)と、を備える遊技台であって、前記制御情報は、所定の制御処理を実行するための第1制御情報と、前記所定の制御処理とは異なる予め定められた制御処理を実行するための第2制御情報(この例では、処理A、処理Bのプログラムや各種データ)と、を少なくとも含み、前記第2記憶手段は、前記第1制御情報を書換え可能として記憶し、前記第2制御情報を書換え不可として記憶してもよい。
このような構成によれば、第2制御情報を、高速に読み出し可能な第2記憶手段に記憶し、且つ、書換えを不可能としたため、第2制御情報に基づいて実行される特定の処理を高速に行うことができる。そのため、遊技台全体の制御の処理速度を従来よりも高めることができ、多種多様な制御を行うことができる場合がある。
また、上記実施例では、副制御部600に本発明を適用した例を示したが、主制御部300、副制御部400、または副制御部500に本発明を適用してもよい。
また、常駐情報格納処理を電源投入直後に実行する例を示したが、他のタイミングで実行するように構成してもよい。
また、上記実施例では、スロットマシンの電源の遮断の有無を判定する電源断監視処理や、電源が遮断された場合に行う電断時処理(ステップS1701)や、電源が投入されたときに電断前の状態に復帰するか否かの判定処理(ステップS901)や、電断前の状態に復帰する場合に行う復電時処理(ステップS902)などの電源の投入/遮断に関する処理を副制御部600で行う例を示したが、他の主制御部300、副制御部400、副制御部500において同様の処理を行ってもよい。
また、上記実施例では、ROM612やRAM613などの外部記憶デバイスをキャッシュ610bを介してCPU610aに接続(転送)する例を示したが、外部記憶デバイスをCPU610aに直接接続(直接転送)してもよい。
また、常駐情報格納処理によってキャッシュに常駐させる処理は、上記実施例で示した処理に限定されるものでない。したがって、例えば、画像の1フレーム単位(33ms単位)で処理を行う液晶表示装置(例えば、液晶表示装置157)の描画制御と、0.33ms単位で処理を行う可動役物(例えば、演出装置200)のモータ制御を1つのCPUで行う場合に、両方の処理のプログラムと、このプログラムで用いる各種データをキャッシュに常駐させてもよい(キャッシュに書換え不可に記憶してもよい)。モータは制御間隔のズレにより物理的に「脱調」などの現象を引き起こす可能性があるため、モータ制御は描画制御より優先度が高く、且つ実行頻度が高いのが一般的であるが、上記構成によれば、描画制御の処理を高速に行うことができる上に、この描画制御よりも優先度が高く、且つ実行頻度が高いモータ制御の処理も高速に行うことができる。そのため、描画制御の処理時間を増やすことができ、可動役物の動作中に液晶表示装置の画像がコマ落ちしてしまうような不具合を確実に防止することが可能となる。
また、常駐情報格納処理によってキャッシュに常駐させる処理としては、装飾ランプなどに用いるLEDのシリアル割込み処理が好適であり、特に、近年の遊技台のように複数のLEDを用いる場合に、LEDの駆動制御に要する制御部の制御負担を軽減することが可能となる上に、複数のシリアル信号の相互干渉などを回避できる場合がある。
なお、本発明に係る遊技台は、「複数種類の図柄が施された複数のリールと、このリールの回転を開始させるためのスタートレバーと、各々のリールに対応して設けられ、リールの回転を個別に停止させるためのストップボタンと、予め定められた役の内部当選の当否を抽選により判定する抽選手段と、この抽選手段の判定結果とストップボタンの操作に基づいて、リールを停止させるリール停止制御手段と、を備え、停止時のリールにより表示される図柄の組合せが、内部当選した役に対応して予め定められた図柄の組合せである場合に前記役に入賞するように構成されたスロットマシン」に好適であるが、上記実施例に示されるようなスロットマシンの構造等に限定されるものではない。
従って、例えば、上記実施例においては、メダル(コイン)を遊技媒体としたスロットマシンの例を示したが、本発明はこれに限定されるものではなく、例えば、遊技球(例えば、パチンコ玉)を遊技媒体としたスロットマシン(いわゆるパロット)やパチンコ遊技機などにも適用可能である。
ここで、本発明が適用されるパチンコ遊技機としては、所定の図柄(識別情報)を変動表示する可変表示装置を備え、始動入賞口に遊技球が入って入賞することを契機として、可変表示装置が図柄を変動させた後に停止表示させて、遊技状態の推移を告知するようなパチンコ遊技機が一例として挙げられる。
このようなパチンコ遊技機では、遊技球が始動入賞口に入球すると、抽選を行い、この抽選結果が当りであるか否かを判定する。そして、この抽選で大当たりに当選すると、可変表示装置により、特定の図柄による組合せ(大当たり図柄;例えば、444など)が表示され、大当たり状態に移行する。大当たり状態では、大入賞口が、例えば、所定の時間または所定の回数、開放され続けるので、遊技球は入球しやすい状態となり、遊技者にとって有利な状態(特定遊技状態)が実現されるようになっている。また、特定の図柄による組合せ(大当たり図柄)が、確率変動(大当たりに当選する確率が通常遊技状態よりも向上した遊技)を伴う大当たり図柄(確変図柄;例えば、7など)である場合には、当該特定遊技状態の終了後において、次に大当たりとなる確率が高くなる遊技状態(特別遊技状態)となるため、遊技者にとってさらに有利な状態(特定遊技状態の終了後に特別遊技が付与される状態)が実現される。
また、本発明の実施例に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施例に記載されたものに限定されるものではない。