<全体構成>
まず、図1を用いて、パチンコ機100の全体構成について説明する。なお、同図はパチンコ機100を正面側(遊技者側)から見た外観斜視図である。
パチンコ機100は、ガラス製または樹脂製の透明板部材152および透明部材保持枠(ガラス枠)154からなる扉部材156の奥側に視認可能に配設した後述する遊技盤(盤面)102を備えている。
また、発射杆138および発射槌140の下方には、発射杆138を制御して遊技領域104に向けて球の発射強度の操作を行うための操作ハンドル148を配設していると共に、貯留皿144の下方には、貯留皿144に貯留できない溢れ球を貯留するための下皿150を設けている。
図2は、遊技盤102を正面から見た略示正面図である。遊技盤102には、外レール106と内レール108とを配設し、遊技球(以下、単に「球」と称する場合がある。)が転動可能な遊技領域104を区画形成している。
遊技領域104の略中央には、演出装置200を配設している。この演出装置200には、略中央に横長の装飾図柄表示装置110を配設し、その周囲に、普通図柄表示装置112と、特別図柄表示装置114と、普通図柄保留ランプ116と、特別図柄保留ランプ118と、高確中ランプ120を配設している。なお、以下、普通図柄を「普図」、特別図柄を「特図」と称する場合がある。
演出装置200は、可動部を動作して演出を行うものであり、詳細については後述する。装飾図柄表示装置110は、装飾図柄ならびに演出に用いる様々な画像を表示するための表示装置であり、本実施例では液晶表示装置(Liquid Crystal Display)によって構成する。この装飾図柄表示装置110は、左図柄表示領域110a、中図柄表示領域110b、右図柄表示領域110cおよび演出表示領域110dの4つの表示領域に分割し、左図柄表示領域110a、中図柄表示領域110bおよび左図柄表示領域110cはそれぞれ異なった装飾図柄を表示し、演出表示領域110dは演出に用いる画像を表示する。さらに、各表示領域110a、110b、110c、110dの位置や大きさは、装飾図柄表示装置110の表示画面内で自由に変更することを可能としている。なお、装飾図柄表示装置110は、液晶表示装置に代えて、ドットマトリクス表示装置、7セグメント表示装置、EL(ElectroLuminescence)表示装置、ドラム式表示装置、リーフ式表示装置等他の表示デバイスを採用してもよい。
普図表示装置112は、普図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。特図表示装置114は、特図の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。
普図保留ランプ116は、保留している普図変動遊技の数を示すためのランプであり、本実施例では、普図変動遊技を2つまで保留することを可能としている。特図保留ランプ118は、保留している特図変動遊技の数を示すためのランプであり、本実施例では、特図変動遊技を4つまで保留することを可能としている。高確中ランプ120は、遊技状態が高確率状態(後述する大当り遊技の当選確率を通常の確率よりも高く設定した遊技状態)であること、または高確率状態になることを示すためのランプであり、遊技状態を低確率状態(後述する大当り遊技の当選確率を通常の確率に設定した遊技状態)から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。なお、本実施例では、後述するミッションタイムに移行する場合にも高確中ランプ120を点灯し、ミッションタイムを終了した場合に高確中ランプ120を消灯するように構成している。
また、この演出装置200の周囲には、一般入賞口122と、普図始動口124と、第1特図始動口126と、第2特図始動口128と、可変入賞口130を配設している。一般入賞口122は、本実施例では遊技盤102に複数配設しており、この一般入賞口122への入球を所定の球検出センサ(図示省略)が検出した場合(一般入賞口122に入賞した場合)、後述する払出装置552を駆動し、所定の個数(本実施例では10個)の球を賞球として貯留皿144に排出する。貯留皿144に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。なお、一般入賞口122に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。本実施例では、入賞の対価として遊技者に払い出す球を「賞球」、遊技者に貸し出す球を「貸球」と区別して呼ぶ場合があり、「賞球」と「貸球」を総称して「球(遊技球)」と呼ぶ。
普図始動口1124は、ゲートやスルーチャッカーと呼ばれる、遊技領域の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では遊技盤102の左側に1つ配設している。普図始動口124を通過した球は一般入賞口122に入球した球と違って、遊技島側に排出することはない。球が普図始動口124を通過したことを所定の玉検出センサが検出した場合、パチンコ機100は、普図表示装置112による普図変動遊技を開始する。
第1特図始動口126は、本実施例では遊技盤102の中央に1つだけ配設している。この第1特図始動口126への入球を所定の球検出センサが検出した場合、後述する払出装置552を駆動し、所定の個数(本実施例では3個)の球を賞球として貯留皿144に排出するとともに、特図表示装置114による特図変動遊技を開始する。なお、第1特図始動口126に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
第2特図始動口128は、電動チューリップ(電チュー)と呼ばれ、本実施例では第1特図始動口126の真下に1つだけ配設している。この第2特図始動口128は、左右に開閉自在な羽根を備え、羽根の閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置112が当たり図柄を停止表示した場合に羽根が所定の時間間隔、所定の回数で開閉する。第2特図始動口128への入球を所定の球検出センサが検出した場合、後述する払出装置552を駆動し、所定の個数(本実施例では5個)の球を賞球として後述する貯留皿144に排出するとともに、特図表示装置114による特図変動遊技を開始する。なお、第2特図始動口128に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
可変入賞口130は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技盤102の中央部下方に1つだけ配設している。この可変入賞口130は、開閉自在な扉部材を備え、扉部材の閉鎖中は球の入球が不可能であり、特図変動遊技に当選し、特図表示装置114が大当たり図柄を停止表示した場合に扉部材が所定の時間間隔(例えば、開放時間29秒、閉鎖時間1.5秒)、所定の回数(例えば15回)で開閉する。可変入賞口130への入球を所定の球検出センサが検出した場合、後述する払出装置552を駆動し、所定の個数(本実施例では15球)の球を賞球として貯留皿144に排出する。なお、可変入賞口130に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材132や、遊技釘134を複数個、配設していると共に、内レール108の最下部には、いずれの入賞口や始動口にも入賞しなかった球をパチンコ機100の裏側に誘導した後、遊技島側に排出するためのアウト口136を設けている。
このパチンコ機100は、遊技者が貯留皿144に貯留している球を発射レール142の発射位置に供給し、遊技者の操作ハンドル148の操作量に応じた強度で発射モータ602を駆動し、発射杆138および発射槌140によって外レール106、内レール108を通過させて遊技領域104に打ち出す。そして、遊技領域104の上部に到達した球は、打球方向変換部材132や遊技釘134等によって進行方向を変えながら下方に落下し、入賞口(一般入賞口122、可変入賞口130)や始動口(第1特図始動口126、第2特図始動口128)に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口124を通過するのみでアウト口136に到達する。
<演出装置>
次に、パチンコ機100の演出装置200について説明する。この演出装置200の前面側には、ワープ装置230およびステージを配設し、演出装置200の背面側には、装飾図柄表示装置110および遮蔽手段250を配設している。すなわち、演出装置200において、装飾図柄表示装置110および遮蔽手段250は、ワープ装置230およびステージの後方に位置することとなる。
ワープ装置230は、演出装置200の左上方に設けた入球口232に入った遊技球を演出装置200の前面下方の前面ステージ234に排出し、さらに、前面ステージ234に排出した遊技球が前面ステージ234の中央部後方に設けた第2の入球口236に入った場合は、遊技球を、第1特図始動口126の上方である演出装置200の下部中央に設けた排出口238から第1特図始動口126に向けて排出するものである。この排出口238から排出した遊技球は特図始動口126に入球しやすくなっている。
遮蔽手段250は、格子状の左扉250aおよび右扉250bからなり、装飾図柄表示装置110および前面ステージ234の間に配設する。左扉250aおよび右扉250bの上部には、図示しない2つのプーリに巻き回したベルトをそれぞれ固定している。すなわち、左扉250aおよび右扉250bは、モータによりプーリを介して駆動するベルトの動作に伴って左右にそれぞれ移動する。遮蔽手段250は、左右扉250a、250bを閉じた状態ではそれぞれの内側端部が重なり、遊技者が装飾図柄表示装置110を視認し難いように遮蔽する。左右扉250a、250bを開いた状態ではそれぞれの内側端部が装飾図柄表示装置110の表示画面の外側端部と若干重なるが、遊技者は装飾図柄表示装置110の表示の全てを視認可能である。また、左右扉250a、250bは、それぞれ任意の位置で停止可能であり、例えば、表示した装飾図柄がどの装飾図柄であるかを遊技者が識別可能な程度に、装飾図柄の一部だけを遮蔽するようなことができる。なお、左右扉250a、250bは、格子の孔から後方の装飾図柄表示装置110の一部を視認可能にしてもよいし、格子の孔の障子部分を半透明のレンズ体で塞ぎ、後方の装飾図柄表示装置110による表示を漠然と遊技者に視認させるようにしてもよいし、格子の孔の障子部分を完全に塞ぎ(遮蔽し)、後方の装飾図柄表示装置110を全く視認不可にしてもよい。
<図柄の種類>
次に、図3(a)〜(c)を用いて、パチンコ機100の特図表示装置114、装飾図柄表示装置110、普図表示装置112が停止表示する特図および普図の種類について説明する。
同図(a)は特図の停止表示態様の一例を示したものである。本実施例の特図の停止表示態様には、大当たり図柄である「特図1」と、特別大当たり図柄である「特図2」と、外れ図柄である「特図3」の3種類がある。第1特図始動口126または第2特図始動口128に球が入賞したことを所定の球検出センサが検出したことを条件として特図変動遊技を開始した場合には、特図表示装置114は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「特図の変動表示」を行う。そして、特図の変動開始前に決定した変動時間が経過すると、特図変動遊技の当選を報知する場合には「特図1」または「特図2」を停止表示し、特図変動遊技の外れを報知する場合には「特図3」を停止表示する。なお、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
同図(b)は装飾図柄の一例を示したものである。本実施例の装飾図柄には、「装飾1」〜「装飾10」の10種類がある。第1特図始動口126または第2特図始動口128に球が入賞したことを所定の球検出センサが検出したことを条件にして、装飾図柄表示装置110の左図柄表示領域110a、中図柄表示領域110b、右図柄表示領域110cの各図柄表示領域に、「装飾1」→「装飾2」→「装飾3」→・・・・「装飾9」→「装飾10」→「装飾1」→・・・の順番で表示を切り替える「装飾図柄の変動表示」を行う。そして、大当たりを報知する場合には、図柄表示領域110a〜110cに大当たりに対応する図柄組合せ(本実施例では、同一の数字の装飾図柄の組合せ(例えば、「装飾2−装飾2−装飾2」))を停止表示し、特別大当たりを報知する場合には、特別大当たりに対応する図柄組合せ(本実施例では、同一の奇数番号数字の装飾図柄の組合せ(例えば、「装飾1−装飾1−装飾1」))を停止表示する。なお、大当たりに対応する図柄の組合せを停止表示した場合には、大当たり遊技または特別大当たり遊技を開始し、特別大当たりに対応する図柄の組合せを停止表示した場合には、特別大当たり遊技を開始する。また、外れを報知する場合には、図柄表示領域110a〜110cに大当たりに対応する図柄組合せ以外の図柄組合せを停止表示した後で、保留している装飾図柄の変動表示があれば、その変動表示を開始する。
同図(c)は普図の停止表示態様の一例を示したものである。本実施例の普図の停止表示態様には、当たり図柄である「普図1」と、外れ図柄である「普図2」の2種類がある。普図始動口124を球が通過したことを所定の球検出センサが検出したことを条件として普図表示遊技を開始した場合には、普図表示装置112は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す「普図の変動表示」を行う。そして、普図変動遊技の当選を報知する場合には「普図1」を停止表示し、普図変動遊技の外れを報知する場合には「普図2」を停止表示する。
<制御部>
次に、図4を用いて、このパチンコ機100の制御部の回路構成について詳細に説明する。なお、同図は制御部の回路ブロック図を示したものである。
パチンコ機100の制御部は、大別すると、遊技の中枢部分を制御する主制御部300と、主制御部300が送信するコマンド信号(以下、単に「コマンド」と呼ぶ)に応じて、主に演出の制御を行う副制御部400と、主制御部300が送信するコマンドに応じて、主に遊技球の払い出しに関する制御を行う払出制御部550と、遊技球の発射制御を行う発射制御部600と、パチンコ機100に供給される電源を制御する電源管理部650によって構成している。
<主制御部>
まず、パチンコ機100の主制御部300について説明する。
主制御部300は、主制御部300の全体を制御する基本回路302を備えており、この基本回路302には、CPU304と、制御プログラムや各種データを記憶するためのROM306と、一時的にデータを記憶するためのRAM308と、各種デバイスの入出力を制御するためのI/O310と、時間や回数等を計測するためのカウンタタイマ312を搭載している。なお、ROM306やRAM308については他の記憶手段を用いてもよく、この点は後述する副制御部400についても同様である。この基本回路302のCPU304は、水晶発信器314が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路302には、水晶発信器314aが出力するクロック信号を受信する度に0〜65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路316と、このカウンタ回路316が生成するハードウェア乱数を取得・保持するラッチ回路317と、各始動口、入賞口の入り口および可変入賞口の内部に設けた球検出センサを含む各種センサ318が出力する信号を受信し、増幅結果や基準電圧との比較結果(例えば、後述する入球検知信号)をラッチ回路317および基本回路302に出力するためのセンサ回路320と、特図表示装置114の表示制御を行うための表示回路322と、普図表示装置112の表示制御を行うための表示回路324と、各種状態表示部326(普図保留ランプ116、特図保留ランプ118、高確中ランプ118等)の表示制御を行うための表示回路328と、第2特図始動口128や可変入賞口130等を開閉駆動する各種ソレノイド330を制御するためのソレノイド回路332を接続している。
また、基本回路302には、情報出力回路334を接続しており、主制御部300は、この情報出力回路334を介して、外部のホールコンピュータ(図示省略)等が備える情報入力回路652にパチンコ機100の遊技情報(例えば、遊技状態)を出力する。
また、主制御部300は、副制御部400にコマンドを送信するための出力インタフェースと、払出制御部550にコマンドを送信するための出力インタフェースをそれぞれ備えており、この構成により、副制御部400および払出制御部550との通信を可能としている。なお、主制御部300と副制御部400および払出制御部550との情報通信は一方向の通信であり、主制御部300は副制御部400および払出制御部550にコマンド等の信号を送信できるように構成しているが、副制御部400および払出制御部550からは主制御部300にコマンド等の信号を送信できないように構成している。
<副制御部>
次に、パチンコ機100の副制御部400について説明する。
副制御部400は、主に主制御部300が送信したコマンド等に基づいて副制御部400の全体を制御する基本回路402を備えており、この基本回路402には、CPU404と、制御プログラムや各種データを記憶するためのROM406と、一時的にデータを記憶するためのRAM408と、各種デバイスの入出力を制御するためのI/O410と、時間や回数等を計測するためのカウンタタイマ412を搭載している。この基本回路402のCPU404は、水晶発信器414が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路402には、スピーカ416(およびアンプ)の制御を行うための音源IC418と、各種ランプ420の制御を行うための表示回路422と、演出装置200の演出用可動体等を駆動する駆動装置であるソレノイドまたはモータ等が含まれる各種演出用駆動装置424の制御を行うための演出用駆動装置制御回路426と、装飾図柄表示装置(液晶表示装置)110および遮蔽手段250の制御を行うための副制御部500と、チャンスボタン146の押下を検出して信号を出力するチャンスボタン検出回路380を接続している。
<払出制御部、発射制御部、電源管理部>
次に、パチンコ機100の払出制御部550、発射制御部600、電源管理部650について説明する。
払出制御部550は、主に主制御部300が送信したコマンド等の信号に基づいて払出装置552を制御すると共に、払出センサ554が出力する制御信号に基づいて賞球または貸球の払い出しが完了したか否かを検出すると共に、インタフェース部556を介して、パチンコ機100とは別体で設けられたカードユニット654との通信を行う。
発射制御部600は、払出制御部550が出力する、発射許可または停止を指示する制御信号や、操作ハンドル148内に設けた発射強度出力回路が出力する、遊技者による発射ハンドル148の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆138および発射槌140を駆動する発射モータ602の制御や、貯留皿144から発射レール142に球を供給する球送り装置604の制御を行う。
電源管理部650は、パチンコ機100に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部300、副制御部400等の各制御部や払出装置552等の各装置に供給する。さらに、電源管理部650は、外部からの電源が断たれた後も所定の部品(例えば主制御部300のRAM308等)に所定の期間(例えば10日間)電源を供給するための蓄電回路(例えばコンデンサ)を備えている。
<主制御部の基本回路>
次に、図5を用いて、上述の主制御部300の基本回路302について詳細に説明する。なお、同図は主制御部の基本回路の主要部分を示したブロック図である。
基本回路302が備えるCPU304は、16本のアドレスバスA0〜A15と、8本のデータバスD0〜D7と、1本のメモリリクエスト出力端子MREQと、1本のIOリクエスト出力端子IORQを備える。16本のアドレスバスA0〜A15は、アドレスコンバータ340を経由してRAM308のアドレス入力端子に接続し、また、16本のアドレスバスA0〜A15のうち、アドレスの下位8ビットに割り当てている8ビットのアドレスバスA0〜A7は、さらにアドレスデコーダ342のアドレス入力端子に接続している。8本のデータバスD0〜D7は、RAM308のデータ入力端子に接続しているとともに、バッファIC344、346のデータ入力端子にそれぞれ接続している。メモリリクエスト出力端子MREQ端子は、OR回路348を経由してRAM308のリクエスト端子に接続している。IOリクエスト出力端子IORQは、アドレスデコーダ342のリクエスト端子に接続している。
アドレスデコーダ342の出力端子OUTは、アドレスコンバータ340の入力端子INに接続しているとともに、OR回路348の入力端子に接続している。
また、アドレスデコーダ342のチップセレクト出力端子CS1は、バッファ344のチップセレクト端子に接続し、アドレスデコーダ342のチップセレクト出力端子CS2は、バッファ346のチップセレクト端子に接続している。バッファ344は、アドレスデコーダ342のチップセレクト出力端子CS1からチップセレクト信号を入力した場合に、始動口1(第1特図始動口126)、始動口2(第2特図始動口128)、大入賞口2(可変入賞口130)から入力する入球検知信号の状態を内部にラッチしてCPU304に接続したデータバスD0〜D7に出力可能に構成している。また、バッファ346は、アドレスデコーダ342のチップセレクト出力端子CS2からチップセレクト信号を入力した場合に、電チューソレノイド(第2特図始動口128の駆動手段)、大入賞口ソレノイド(可変入賞口130の駆動手段)、払出ストローブ(払出制御部550への信号)に、CPU304のデータバスD0〜D7から入力する信号を出力可能に構成している。
<I/Oマップドメモリ>
図6(a)は主制御部300のCPU304によってアクセス可能なメモリ空間の一例を示した図であり、同図(b)は主制御部300のCPU304によってアクセス可能なI/O空間の一例を示した図である。また、同図(c)はメモリ空間のRAMに割り当てた領域と、I/O空間に割り当てた領域との対応関係を示した図である。
主制御部300のCPU304は、0000番地〜FFFF番地の64Kバイトのメモリ空間と、00番地〜FF番地の256バイトのI/O空間を有している。図6(a)に示すように、CPU304のメモリ空間には、ROM306の記憶領域、RAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2820番地〜29FF番地の480バイトの記憶領域)、バッファIC344、336などの周辺ICに接続しているチップセレクト出力端子CS0〜CS26、CPU304の内部機能レジスタなどを割り当てている。なお、メモリ空間に割り当てる各機能は、CPU304が備える内部機能レジスタの設定を変更することによってユーザが任意に割り当てることができ、本実施例で示した例に限定されるものではない。
例えば、CPU304がRAM308のメモリ空間対応記憶領域(後述するI/O空間対応記憶領域2800番地〜281F番地に連続する2820番地〜29FF番地の480バイトの記憶領域)の所定記憶領域に情報の書き込みを行う場合には、CPU304は、RAM308に割り当てたメモリ空間(この例では、2820番地〜29FF番地)に対応する番地に情報の書き込みを行う。
これにより、CPU304のアドレスバスA0〜A15からは、RAM308のメモリ空間対応記憶領域に対応するアドレス信号が出力され、CPU304のデータバスD0〜D7からは、RAM308に割り当てたメモリ空間に書き込んだ情報に対応するデータ信号が出力され、CPU304のメモリリクエスト出力端子MREQやライト信号からは所定時間のアクティブレベル(例えば、ローレベル)のパルス信号が出力される。このとき、RAM308は、メモリリクエスト出力端子MREQから入力するリクエスト信号の立ち下がりエッジでアドレス入力端子に入力するアドレス信号をラッチした後、メモリリクエスト出力端子MREQから入力するリクエスト信号の立ち上がりエッジでデータ入力端子に入力するデータ信号をラッチして、アドレス信号で指定された所定記憶領域にデータ信号で示されるデータを記憶する。なお、本明細書では、このようなメモリ空間を介したメモリへのデータの書き込みを「メモリマップドメモリに対する書き込み」と称する場合があり、本実施例では、CPU304が備えるLD命令によって「メモリマップドメモリに対する書き込み」が実現される。
一方、CPU304がRAM308のメモリ空間対応記憶領域(2820番地〜29FF番地の480バイトの記憶領域)の所定記憶領域から情報の読み出しを行う場合には、CPU304は、RAM308に割り当てたメモリ空間(2820番地〜29FF番地)に対応する番地から情報の読み出しを行う。
これにより、CPU304のアドレスバスA0〜A15からは、RAM308のメモリ空間対応記憶領域に対応するアドレス信号が出力され、CPU304のデータバスD0〜D7には、アドレス信号に対応するデータ信号が入力され、CPU304のメモリリクエスト出力端子MREQやリード信号からは所定時間のアクティブレベル(例えば、ローレベル)のパルス信号が出力される。このとき、RAM308は、メモリリクエスト出力端子MREQから入力するリクエスト信号の立ち下がりエッジでアドレス入力端子に入力するアドレス信号をラッチした後、メモリリクエスト出力端子MREQから入力するリクエスト信号の立ち上がりエッジの前までに、アドレス信号で指定された記憶領域からデータを読み出して、このデータをデータバスD0〜D7にデータ信号として出力する。なお、本明細書では、このようなメモリ空間を介したメモリからのデータの読み出しを「メモリマップドメモリに対する読み出し」と称する場合があり、本実施例では、CPU304が備えるLD命令によって「メモリマップドメモリに対する読み出し」が実現される。
また、CPU304のI/O空間には、図6(b)に示すように、RAM308のI/O空間対応記憶領域(この例では、RAM308の2800番地〜281F番地の32バイトの記憶領域)、バッファIC344、336などの周辺ICに接続しているチップセレクト出力端子CS0〜CS26を割り当てている。なお、I/O空間に割り当てる各機能は、CPU304が備える内部機能レジスタの設定を変更することによってユーザが任意に割り当てることができ、本実施例で示した例に限定されるものではない。また、RAM308の記憶領域のうち、いずれの範囲をI/O空間に割り当てるかに関しても、内部機能レジスタの設定を変更することによってユーザが自由に割り当てることができ、本実施例で示した例に限定されるものではない。
例えば、CPU304がRAM308のI/O空間対応記憶領域(2800番地〜281F番地の記憶領域)の所定記憶領域に情報の書き込みを行う場合には、CPU304は、RAM308に割り当てたI/O空間(この例では、00番地〜1F番地)に対応する番地(例えば、RAM308の2800番地に対応するI/O空間の00番地)に情報の書き込みを行う。
これにより、図7のタイムチャートに示すように、CPU304のアドレスバスA0〜A15のうちの下位8ビットのA0〜A7からは、RAM308のI/O空間対応記憶領域に対応するアドレス信号が出力され、CPU304のデータバスD0〜D7からは、RAM308に割り当てたI/O空間に書き込んだ情報に対応するデータ信号が出力され、CPU304のIOリクエスト出力端子IOREQやライト信号W0からは所定時間のアクティブレベル(例えば、ローレベル)のパルス信号が出力される。また、アドレスデコーダ342は、IOリクエスト出力端子IOREQからのリクエスト信号の入力により、アドレスコンバータ340とOR回路348に信号を出力し、RAM308にリクエスト信号を入力するとともにRAM308のアドレス入力端子にメモリ空間のRAM308に割り当てたアドレスの上位8ビットに対応するアドレス信号(この例では、28h)を入力する。このとき、RAM308は、OR回路348からのリクエスト信号の立ち下がりエッジでアドレス入力端子に入力するアドレス信号をラッチした後、OR回路348からのリクエスト信号の立ち上がりエッジでデータ入力端子に入力するデータ信号をラッチして、アドレス信号で指定された所定記憶領域にデータ信号で示されるデータを記憶する。なお、本明細書では、このようなI/O空間を介したメモリへのデータの書き込みを「I/Oマップドメモリに対する書きこみ」と称する場合があり、本実施例では、CPU304が備えるOUT命令によって「I/Oマップドメモリに対する書きこみ」が実現される。また、OUT命令に相当する命令として、例えば、OUTD命令、OUTDR命令、OUTI命令、OUTIR命令などを適用することもできる。
一方、CPU304がRAM308のI/O空間対応記憶領域(2800番地〜281F番地の記憶領域)の所定記憶領域から情報の読み出しを行う場合には、CPU304は、RAM308に割り当てたI/O空間(00番地〜1F番地)に対応する番地から情報の読み出しを行う。
これにより、図8のタイムチャートに示すように、CPU304のアドレスバスA0〜A15のうちの下位8ビットのA0〜A7からは、RAM308のI/O空間対応記憶領域の所定記憶領域に対応するアドレス信号が出力され、CPU304のデータバスD0〜D7には、アドレス信号に対応するデータ信号が入力され、CPU304のIOリクエスト出力端子IOREQやリード信号R0からは所定時間のアクティブレベル(例えば、ローレベル)のパルス信号が出力される。また、アドレスデコーダ342は、IOリクエスト出力端子IOREQからのリクエスト信号の入力により、アドレスコンバータ340とOR回路348に信号を出力し、RAM308にリクエスト信号を入力するとともにRAM308のアドレスバスにメモリ空間のRAM308に割り当てたアドレスの上位8ビットに対応するアドレス信号(この例では、28h)を入力する。このとき、RAM308は、OR回路348からのリクエスト信号の立ち下がりエッジでアドレス入力端子に入力するアドレス信号をラッチした後、OR回路348からのリクエスト信号の立ち上がりエッジの前までに、アドレス信号で指定された記憶領域からデータを読み出してデータバスD0〜D7にデータ信号として出力する。なお、本明細書では、このようなI/O空間を介したメモリからのデータの読み出しを「I/Oマップドメモリに対する読み出し」と称する場合があり、本実施例では、CPU304が備えるIN命令によって「I/Oマップドメモリに対する読み出し」が実現される。また、IN命令に相当する命令として、例えば、IND命令、INDR命令、INI命令、INIR命令などを適用することもできる。
なお、本実施例では、IOリクエスト出力端子IOREQからのリクエスト信号の入力に基づいてOR回路348に出力する信号をメモリアクセス信号とするが、メモリアクセス信号は本構成に限定されるものではなく、IOREQからのリクエスト信号に基づいて出力され、それがメモリにアクセスするための信号であれば、いずれの信号でもよい。例えば、IOREQからのリクエスト信号を直接入力せず間接的に入力してもよいし、記憶手段に直接出力せず間接的に出力してもよい。
また、アドレスデコーダ342は、アドレスデコーダ342に入力されたアドレスが所定のアドレスであればメモリアクセス信号を出力し、所定のアドレスでなければ他の信号を出力する。この所定のアドレスは、前述したように内部機能レジスタの設定により変更可能である。
<主制御部メイン処理>
次に、図9を用いて、主制御部300のCPU304が実行する主制御部メイン処理について説明する。なお、同図は主制御部メイン処理の流れを示すフローチャートである。
上述したように、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)338を設けている。この起動信号を入力した基本回路302のCPU304は、リセット割り込みによりリセットスタートしてROM306に予め記憶している制御プログラムに従って処理を実行する。
ステップS101では、初期設定1を行う。この初期設定1では、CPU304の内部機能レジスタによるメモリ空間およびI/O空間の割り当て設定、CPU304のスタックポインタ(SP)へのスタック初期値の設定、割り込みマスクの設定、I/Oポート310の初期設定、RAM308に記憶する各種変数の初期設定、WDT313への動作許可及び初期値の設定等を行う。なお、本実施例では、WDT313に、初期値として32.8msに相当する数値を設定する。
ステップS102では、WDT313のカウンタの値をクリアし、WDT313による時間計測を再始動する。
ステップS103では、低電圧信号がオンであるか否か、すなわち、電圧監視回路336が、電源管理部650から主制御部300に供給している電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU304が電源の遮断を検知した場合)にはステップS102に戻り、低電圧信号がオフの場合(CPU304が電源の遮断を検知していない場合)にはステップS104に進む。
ステップS104では、初期設定2を行う。この初期設定2では、後述する主制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマ312に設定する処理、I/O310の所定のポート(例えば試験用出力ポート、副制御部400への出力ポート)からクリア信号を出力する処理、RAM308への書き込みを許可する設定等を行う。
ステップS105では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部300の基本回路302を初期状態にする場合)にはステップS107に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS108に進む。
具体的には、最初に、電源基板に設けた操作部を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS107に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)は、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS107に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS106に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS107に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS107に進む。
ステップS106では、復電時処理を行う。この復電時処理では、電断時にRAM308に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタを読み出し、スタックポインタに再設定する。また、電断時にRAM308に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割り込み許可の設定を行う。以降、CPU304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機100は電源断時の状態に復帰する。すなわち、電断直前にタイマ割り込み処理(後述)に分岐する直前に行った(ステップS108、ステップS109内の所定の)命令の次の命令から処理を再開する。
ステップS107では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、RAM308の全ての記憶領域の初期化などを行う。
ステップS108では、割り込み禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための2つの初期値生成用乱数カウンタ(ハードウェア乱数)と、普図タイマ乱数値、特図タイマ乱数値をそれぞれ生成するための2つの乱数カウンタ(ハードウェア乱数)を更新する。例えば、普図タイマ乱数値として取り得る数値範囲が0〜20とすると、RAM308に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が21であれば0を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。また、この基本乱数初期値更新処理の終了後に割り込み許可の設定を行ってステップS109に進む。
ステップS109では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
主制御部300は、所定の周期ごとに開始するタイマ割り込み処理を行っている間を除いて、ステップS108およびS109の処理を繰り返し実行する。
<主制御部タイマ割り込み処理>
次に、図10を用いて、主制御部300のCPU304が実行する主制御部タイマ割り込み処理について説明する。なお、同図は主制御部タイマ割り込み処理の流れを示すフローチャートである。
主制御部300は、所定の周期(本実施例では約1msに1回)でタイマ割り込み信号を発生するカウンタ・タイマ312を備えており、このタイマ割り込み信号を契機として主制御部タイマ割り込み処理を所定の周期で開始する。
ステップS201では、タイマ割り込みスタート処理を行う。このタイマ割り込みスタート処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
ステップS202では、WDT313のカウント値が初期設定値(本実施例では32.8ms)を超えてWDT割り込みが発生しないように(処理の異常を検出しないように)、WDTを定期的にリスタートを行う。
ステップS203では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、上述のガラス枠154が開放状態または閉鎖状態のいずれの状態であるかを検出するための開放センサ、上述の下皿150が球で一杯になったか否かを検出するための下皿満タンセンサ、および複数の球検出センサを含む各種センサ318の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ318ごとに区画して設けた信号状態記憶領域に記憶する。本実施例では、前々回のタイマ割り込み処理(約2ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割り込み処理(約1ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
ステップS204およびステップS205では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS110で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する普図当選乱数値および特図乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が0〜100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。
ステップS206では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタ(ハードウェア乱数)を更新する。
ステップS207では、タイマ更新処理を行う。詳細は後述するが、このタイマ更新処理では、普通図柄表示装置112に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、特別図柄表示装置114に図柄を変動・停止表示する時間を計時するための特図表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
ステップS208では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口(一般入賞口122、第1、第2特図始動口126、128、および可変入賞口130)に入賞(入球)があった場合に、RAM308に各入賞口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
ステップS209では、入賞受付処理を行う。この入賞受付処理では、第1、第2特図始動口126、128の入賞と判定し、且つ、保留している特図変動遊技の数が4未満である場合には、入賞した始動口に対応するハードウェア乱数を特図当選乱数値として取得する。また、普図始動口124の入賞と判定し、且つ、保留している普図変動遊技の数が2未満の場合には、入賞した始動口に対応するハードウェア乱数を普図当選乱数値として取得し、RAM308に設けた上述の特図用とは別の乱数値記憶領域に記憶する。
ステップS210では、払出要求数送信処理を行う。なお、払出制御部550に出力する出力予定情報および払出要求情報は1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4〜5に今回加工種別(0〜3)、およびビット0〜3に加工後の払出要求数を示すようにしている。
ステップS211では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動中(後述する普図汎用タイマの値が1以上)における普図状態更新処理では、普図表示装置112を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオンの場合には、上述の普図1の態様となるように普図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、上述の普図2の態様となるように普図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により普図の停止表示を行い、普図変動遊技の結果を遊技者に報知するようにしている。
また、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、当りフラグがオンの場合には、所定の開放期間(例えば2秒間)、第2特図始動口128の羽根部材の開閉駆動用のソレノイド330に、羽根部材を開放状態に保持する信号を出力するとともに、RAM308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
また、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、所定の閉鎖期間(例えば500m秒間)、羽根部材の開閉駆動用のソレノイド330に、羽根部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
また、所定の閉鎖期間を経過したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、普図の状態を非作動中に設定する。普図の状態が非作動中の場合における普図状態更新処理では、何もせずに次のステップS212に移行するようにしている。
ステップS212では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第2特図始動口128の開閉制御を行っておらず(普図の状態が非作動中)、且つ、保留している普図変動遊技の数が1以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはRAM308に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置112に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM308に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、RAM308に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
ステップS213では、特図状態更新処理を行う。この特図状態更新処理は、特図の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図変動中(後述する特図汎用タイマの値が1以上)における特図状態更新処理では、特図表示装置112を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、特図変動表示時間が経過したタイミング(特図表示図柄更新タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当たりフラグがオンで確変フラグがオフの場合には特図表示装置114に、上述の特図1、大当たりフラグがオンで確変フラグがオンの場合には特図表示装置114に、上述の特図2、大当たりフラグがオフの場合には、上述の特図3の態様となるように特図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた特図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により特図の停止表示をおこない、特図変動遊技の結果を遊技者に報知するようにしている。また、コマンド設定送信処理(ステップS215)で一般コマンド回転停止設定送信処理を実行させるために上述の送信情報記憶領域に02Hを送信情報(一般情報)として追加記憶する。
また、所定の停止表示期間が終了したタイミング(特図停止時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当たりフラグがオンの場合には、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置110による大当たりを開始することを遊技者に報知する画像を表示している期間待機するためにRAM308に設けた特図待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS215)で一般コマンド入賞演出設定送信処理を実行させるために上述の送信情報記憶領域に04Hを送信情報(一般情報)として追加記憶する。
また、所定の入賞演出期間が終了したタイミング(特図待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口130に所定球数(例えば10球)の遊技球の入賞を検出するまで)可変入賞口130の扉部材の開閉駆動用のソレノイド330に、扉部材を開放状態に保持する信号を出力するとともに、RAM308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS215)で一般コマンド大入賞口開放設定送信処理を実行させるために上述の送信情報記憶領域に10Hを送信情報(一般情報)として追加記憶する。
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口130の扉部材の開閉駆動用のソレノイド330に、扉部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS215)で一般コマンド大入賞口閉鎖設定送信処理を実行させるために上述の送信情報記憶領域に20Hを送信情報(一般情報)として追加記憶する。
また、この扉部材の開放・閉鎖制御を所定回数(例えば15ラウンド)繰り返し、終了したタイミングで開始する特図状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置110による大当たりを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、コマンド設定送信処理(ステップS215)で一般コマンド終了演出設定送信処理を実行させるために上述の送信情報記憶領域に08Hを送信情報(一般情報)として追加記憶する。
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、特図の状態を非作動中に設定する。特図の状態が非作動中の場合における特図状態更新処理では、何もせずに次のステップS214に移行するようにしている。
ステップS214では、特図関連抽選処理を行う。この特図関連抽選処理では、特図変動遊技および可変入賞口130の開閉制御を行っておらず(特図の状態が非作動中)、且つ、保留している特図変動遊技の数が1以上である場合に、大当たり判定テーブル、高確率状態移行判定テーブル、タイマ番号決定テーブルなどを使用した各種抽選のうち、最初に大当たり判定を行う。具体的には、ステップS203で乱数値記憶領域に記憶した特図当選乱数値が、大当たり判定テーブルの第1特図始動口用抽選データの数値範囲であるか否かを判定し、特図当選乱数値が第1特図始動口用抽選データの数値範囲である場合には、特図変動遊技の当選と判定してRAM308に設けた大当たりフラグの格納領域に大当たりとなることを示す情報を設定する(ここで、大当たりの情報をRAM308に設定することを大当たりフラグをオンに設定するという)。一方、特図当選乱数値が第1特図始動口用抽選データの数値範囲以外である場合には、特図変動遊技の外れと判定してRAM308に設けた大当たりフラグの格納領域に外れとなることを示す情報を設定する(ここで、外れの情報をRAM308に設定することを大当たりフラグをオフに設定するという)。なお、保留している特図変動遊技の数は、RAM308に設けた特図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している特図変動遊技の数から1を減算した値を、この特図保留数記憶領域に記憶し直すようにしている。また、当り判定に使用した乱数値を消去する。
大当たりフラグにオンを設定した場合には、次に確変移行判定を行う。具体的には、ステップS209で乱数値記憶領域に記憶した特図乱数値が、移行判定乱数の数値範囲であるか否かを判定し、特図乱数値が抽選データの数値範囲である場合には、RAM308に設けた確変(確率変動)フラグの格納領域に、特別大当たり遊技を開始することを示す情報を設定する。(ここで、特別大当たり遊技開始の情報をRAM308に設定することを確変フラグをオンに設定するという)。一方、特図乱数値が抽選データの数値範囲以外である場合には、上述の確変フラグの格納領域に、大当たり遊技を開始することを示す情報を設定する(ここで、大当たり遊技開始の情報をRAM308に設定することを確変フラグをオフに設定するという)。
大当たり判定の結果に関わらず、次にタイマ番号を決定する処理を行う。具体的には、上述の特図タイマ乱数値生成用の乱数カウンタの値を特図タイマ乱数値として取得する。大当たりフラグの値、および取得した特図タイマ乱数値を含むタイマ乱数の数値範囲に対応するタイマ番号を選択し、RAM308に設けた所定のタイマ番号格納領域に記憶する。さらに、そのタイマ番号に対応する変動時間を、特図変動表示時間として、上述の特図表示図柄更新タイマに記憶し、コマンド設定送信処理(ステップS215)で一般コマンド回転開始設定送信処理を実行させるために上述の送信情報記憶領域に01Hを送信情報(一般情報)として追加記憶してから処理を終了する。
ステップS215では、コマンド設定送信処理を行う。なお、副制御部400に送信する出力予定情報(コマンド)は16ビットで構成しており、ビット15はストローブ情報(オンの場合、データをセットしていることを示す)、ビット11〜14はコマンド種別(00Hの場合は基本コマンド、01Hの場合は図柄変動開始コマンド、04Hの場合は図柄変動停止コマンド、05Hの場合は入賞演出開始コマンド、06Hの場合は終了演出開始コマンド、07Hの場合は大当たりラウンド数指定コマンド、0EHの場合は復電コマンド、0FHの場合はRAMクリアコマンドをそれぞれ示すなどコマンドの種類を特定可能な情報)、ビット0〜10はコマンドデータ(コマンド種別に対応する所定の情報)で構成している。
具体的には、ストローブ情報はコマンド送信処理でオン、オフするようにしている。また、コマンド種別が図柄変動開始コマンドの場合であればコマンドデータに、大当たりフラグの値、確変フラグの値、特図関連抽選処理で選択したタイマ番号などを示す情報を含み、図柄変動停止コマンドの場合であれば、大当たりフラグの値、確変フラグの値などを含み、入賞演出コマンドおよび終了演出開始コマンドの場合であれば、確変フラグの値などを含み、大当たりラウンド数指定コマンドの場合であれば確変フラグの値、大当たりラウンド数などを含むようにしている。コマンド種別が基本コマンドを示す場合は、コマンドデータにデバイス情報、第1特図始動口126への入賞の有無、第2特図始動口128への入賞の有無、可変入賞口130への入賞の有無などを含む。
また、上述の一般コマンド回転開始設定送信処理では、コマンド種別に01H、コマンドデータにRAM308に記憶している大当たりフラグの値、確変フラグの値、特図関連抽選処理で選択したタイマ番号、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド回転停止設定送信処理では、コマンド種別に04H、コマンドデータにRAM308に記憶している大当たりフラグの値、確変フラグの値などを示す情報を設定する。上述の一般コマンド入賞演出設定送信処理では、コマンド種別に05H、コマンドデータにRAM308に記憶している入賞演出期間中に装飾図柄表示装置110・各種ランプ420・スピーカ416に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド終了演出設定送信処理では、コマンド種別に06H、コマンドデータにRAM308に記憶している演出待機期間中に装飾図柄表示装置110・各種ランプ420・スピーカ416に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口開放設定送信処理では、コマンド種別に07H、コマンドデータにRAM308に記憶している大当たりラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口閉鎖設定送信処理では、コマンド種別に08H、コマンドデータにRAM308に記憶している大当たりラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。副制御部400では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
ステップS216では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路334を介してパチンコ機100とは別体の情報入力回路652に出力する。
ステップS217では、デバイス監視処理を行う。このデバイス監視処理では、ステップ203において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、ガラス枠開放エラーの有無または下皿満タンエラーの有無などを監視し、ガラス枠開放エラーまたは下皿満タンエラーを検出した場合に、副制御部400に送信すべき送信情報に、ガラス枠開放エラーの有無または下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド330を駆動して第2特図始動口128や、可変入賞口130の開閉を制御したり、表示回路322、324、328を介して普図表示装置112、特図表示装置114、各種状態表示部326などに出力する表示データを、I/O310の出力ポートに設定する。また、払出要求数送信処理(ステップS210)で設定した出力予定情報を出力ポート310を介して副制御部400に出力する。
ステップS218では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS220に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS219に進む。
ステップS219では、タイマ割り込みエンド処理を行う。このタイマ割り込みエンド処理では、ステップS201で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行う。
ステップS220では、電源管理部650から主制御部300に供給している電源の電圧値を監視する電圧監視回路が、所定の値以下である場合に電圧が低下したことを示す電圧低下信号を出力しているか否か、すなわち電源の遮断を検知したか否かを監視し、電源の遮断を検知した場合には、復電時に電断時の状態に復帰するための特定の変数やスタックポインタを復帰データとしてRAM308の所定の領域に退避し、入出力ポートの初期化等の電断処理を行う。
<タイマ更新処理>
次に、図11(a)を用いて、上述の主制御部タイマ割り込み処理におけるタイマ更新処理について説明する。なお、同図はタイマ更新処理の流れを示すフローチャートである。
ステップS251では、1バイトタイマ更新処理(詳細は後述)を行い、その後、ステップS252では、2バイトタイマ更新処理(詳細は後述)を行って処理を終了する。
<1バイトタイマ更新処理>
次に、図11(b)および図12を用いて、上述のタイマ更新処理における1バイトタイマ更新処理について説明する。なお、図11(b)は1バイトタイマ更新処理の流れを示すフローチャートであり、図12は1バイトタイマ更新処理および2バイトタイマ更新処理のプログラムの一例を示した図である。
ステップS261では、上述のIN命令を用いたI/Oマップドメモリに対する読み出しにより、CPU304の1バイト(8ビット)長のAレジスタに、RAM308のI/O空間対応記憶領域(この例では、00番地)に記憶している1バイト長の特図表示図柄更新タイマの値を読み出す(図12の(1)参照)。
ステップS262では、ステップS261でAレジスタに読み出した値に1を加算した後(図12の(2)参照)、ステップS263では、上述のOUT命令を用いたI/Oマップドメモリに対する書きこみにより、RAM308のI/O空間対応記憶領域(この例では、00番地)に記憶している特図表示図柄更新タイマに、CPU304のAレジスタの値を書き込む(図12(3)参照)。以上のステップS261〜S263の処理により、1バイト長の特図表示図柄更新タイマの値が1つ加算される。
次に、ステップS264では、上述のIN命令を用いたI/Oマップドメモリに対する読み出しにより、CPU304の1バイト長のAレジスタに、RAM308のI/O空間対応記憶領域(この例では、01番地)に記憶している1バイト長の普図表示図柄更新タイマの値を読み出す(図12の(4)参照)。
ステップS265では、ステップS264でAレジスタに読み出した値に1を加算した後(図12の(5)参照)、ステップS266では、上述のOUT命令を用いたI/Oマップドメモリに対する書きこみにより、RAM308のI/O空間対応記憶領域(この例では、01番地)に記憶している普図表示図柄更新タイマに、CPU304のAレジスタの値を書き込む(図12(6)参照)。以上のステップS264〜S266の処理により、1バイト長の普図表示図柄更新タイマの値が1つ加算される。また、ステップS267では、その他の1バイト長のタイマを更新して処理を終了する。
<2バイトタイマ更新処理>
次に、図11(c)および図12を用いて、上述のタイマ更新処理における2バイトタイマ更新処理について説明する。なお、図11(c)は2バイトタイマ更新処理の流れを示すフローチャートである。
ステップS271では、上述のLD命令を用いたメモリマップドメモリに対する読み出しにより、CPU304の2バイト(16ビット)長のHLレジスタに、RAM308のメモリ空間対応記憶領域(この例では、2820番地〜2821番地)に記憶している2バイト長の特図表示図柄汎用タイマの値を読み出す(図12の(7)参照)。
ステップS272では、ステップS271でHLレジスタに読み出した値に1を加算した後(図12の(8)参照)、ステップS273では、上述のLD命令を用いたメモリマップドメモリに対する書きこみにより、RAM308のメモリ空間対応記憶領域(この例では、2820番地〜2821番地)に記憶している特図表示図柄汎用タイマに、CPU304のHLレジスタの値を書き込む(図12の(9)参照)。以上のステップS271〜S273の処理により、2バイト長の特図表示図柄汎用タイマの値が1つ加算される。
次に、ステップS274では、上述のLD命令を用いたメモリマップドメモリに対する読み出しにより、CPU304の2バイト(16ビット)長のHLレジスタに、RAM308のメモリ空間対応記憶領域(この例では、2822番地〜2823番地)に記憶している2バイト長の普図表示図柄汎用タイマの値を読み出す(図12の(10)参照)。
ステップS275では、ステップS274でHLレジスタに書き込んだ値に1を加算した後(図12の(11)参照)、ステップS276では、上述のLD命令を用いたメモリマップドメモリに対する書きこみにより、RAM308のメモリ空間対応記憶領域(この例では、2822番地〜2823番地)に記憶している普図表示図柄汎用タイマに、CPU304のHLレジスタの値を書き込む(図12の(12)参照)。以上のステップS274〜S276の処理により、2バイト長の普図表示図柄汎用タイマの値が1つ加算される。また、ステップS277では、その他の2バイト長のタイマを更新して処理を終了する。
図13は、CPU304のIN命令、OUT命令、LD命令に要するステート数(クロック数)と、プログラムコード量を、I/Oマップドメモリに対する読み書きとメモリマップドメモリに対する読み書きで比較した図である。
最初に、RAM308からCPU304のレジスタに1バイト長のデータを転送する場合(RAM308からCPU304のレジスタに1バイト長のデータを読み出す場合)を考える。上述のIN命令を用いたI/Oマップドメモリに対する読み出しにより、CPU304の1バイト長のAレジスタに、RAM308のI/O空間対応記憶領域(この例では、I/O空間の10番地)を介してRAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地)に記憶している1バイト長のデータを読み出すように構成した場合、ステート数が11ステート、プログラムコード量は2バイトとなる。一方、上述のLD命令を用いたメモリマップドメモリに対する読み出しにより、CPU304の1バイト長のAレジスタに、RAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地)に記憶している1バイト長のデータを読み出すように構成した場合、ステート数が13ステート、プログラムコード量は3バイトとなる。したがって、RAM308に記憶している1バイト長のデータを読み出す場合には、上述のLD命令を用いたメモリマップドメモリに対する読み出しよりも、上述のIN命令を用いたI/Oマップドメモリに対する読み出しが適しており、後者を採用することでステート数を2ステート、プログラムコード量を1バイト削減することができる。
続いて、CPU304のレジスタからRAM308に1バイト長のデータを転送する場合(CPU304のレジスタからRAM308に1バイト長のデータを書き込む場合)を考える。上述のOUT命令を用いたI/Oマップドメモリに対する書き込みにより、CPU304のAレジスタに記憶している1バイト長のデータを、RAM308のI/O空間対応記憶領域(この例では、I/O空間の10番地)を介してRAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地)に書き込むように構成した場合、ステート数が11ステート、プログラムコード量は2バイトとなる。一方、上述のLD命令を用いたメモリマップドメモリに対する書き込みにより、CPU304のAレジスタに記憶している1バイト長のデータを、RAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地)に書き込むように構成した場合、ステート数が13ステート、プログラムコード量は3バイトとなる。したがって、RAM308に1バイト長のデータを書き込む場合には、上述のLD命令を用いたメモリマップドメモリに対する書き込みよりも、上述のOUT命令を用いたI/Oマップドメモリに対する書き込みが適しており、後者を採用することでステート数を2ステート、プログラムコード量を1バイト削減することができる。
続いて、RAM308からCPU304のレジスタに2バイト長のデータを転送する場合(RAM308からCPU304のレジスタに2バイト長のデータを読み出す場合)を考える。上述のIN命令を用いたI/Oマップドメモリに対する読み出しにより、CPU304の2バイト長のHLレジスタに、RAM308のI/O空間対応記憶領域(この例では、I/O空間の10番地〜11番地)を介してRAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地〜2811番地)に記憶している2バイト長のデータを2度に分けて読み出すように構成した場合、ステート数が30ステート、プログラムコード量は6バイトとなる。一方、上述のLD命令を用いたメモリマップドメモリに対する読み出しにより、CPU304の2バイト長のHLレジスタに、RAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地〜2811番地)に記憶している2バイト長のデータを一度に読み出すように構成した場合、ステート数が16ステート、プログラムコード量は3バイトとなる。したがって、RAM308に記憶している2バイト長のデータを読み出す場合には、上述のIN命令を用いたI/Oマップドメモリに対する読み出しよりも、上述のLD命令を用いたメモリマップドメモリに対する読み出しが適しており、後者を採用することでステート数を14ステート、プログラムコード量を3バイト削減することができる。
最後に、CPU304のレジスタからRAM308に2バイト長のデータを転送する場合(CPU304のレジスタからRAM308に2バイト長のデータを書き込む場合)を考える。上述のOUT命令を用いたI/Oマップドメモリに対する書き込みにより、CPU304のHLレジスタに記憶している2バイト長のデータを、RAM308のI/O空間対応記憶領域(この例では、I/O空間の10番地〜11番地)を介してRAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地〜2811番地)に2度に分けて書き込むように構成した場合、ステート数が30ステート、プログラムコード量は6バイトとなる。一方、上述のLD命令を用いたメモリマップドメモリに対する書き込みにより、CPU304のHLレジスタに記憶している2バイト長のデータを、RAM308のメモリ空間対応記憶領域(この例では、メモリ空間の2810番地〜2811番地)に一度に書き込むように構成した場合、ステート数が16ステート、プログラムコード量は3バイトとなる。したがって、RAM308に2バイト長のデータを書き込む場合には、上述のIN命令を用いたI/Oマップドメモリに対する読み出しよりも、上述のLD命令を用いたメモリマップドメモリに対する読み出しが適しており、後者を採用することでステート数を14ステート、プログラムコード量を3バイト削減することができる。
なお、CPU304のレジスタからRAM308に2バイト長のデータを転送する例として、LD C、10H(2バイト、7ステート)→IN L、(C)(2バイト、12ステート)→INC C(1バイト、4ステート)→IN H、(C)(2バイト、12ステート)というプログラムも考えられるが、合計で35ステート、7バイトとなるため、RAM308に2バイト長のデータを書き込む場合には、上述のIN命令を用いたI/Oマップドメモリに対する読み出しよりも、上述のLD命令を用いたメモリマップドメモリに対する読み出しが有利である。
<副制御部メイン処理>
次に、図14(a)を用いて、副制御部400のCPU404が実行する副制御部メイン処理について説明する。なお、同図は副制御部メイン処理の流れを示すフローチャートである。
副制御部400には、電源が投入されるとリセット信号を出力するリセット信号出力回路を設けている。このリセット信号を入力した基本回路402のCPU404は、リセット割り込みによりリセットスタートしてROM406に予め記憶した制御プログラムに従って処理を実行し、まず、ステップS301で各種の初期設定を行う。この初期設定では、入出力ポートの初期設定や、各種変数の初期化等を行う。
ステップS302では、コマンド入力処理(詳細は後述)を行う。
ステップS303では、I/O410の出力ポートを介して副制御部500にコマンドを出力する。
ステップS304では、後述するタイマ変数記憶領域の値が10以上であるか否かを判定する。タイマ変数記憶領域の値が10以上である場合はステップS305に進み、タイマ変数記憶領域の値が10未満である場合にはステップS302に進む。
ステップS305では、タイマ変数記憶領域に0を格納する。
ステップS306では、演出データ更新処理を行う。この演出データ更新処理では、後述する変動パターン選択処理で記憶する変動番号、仮停止図柄の組合せ、および停止図柄の組合せの種別の更新を行うと共に、装飾図柄の変動表示を開始してからの経過時間に基づいて装飾図柄表示装置110、遮蔽手段250、スピーカ416、各種ランプ420および演出装置200の演出用可動体等による演出を制御するための動作制御データの更新を行う。
ステップS306では、決定された演出情報が示している態様で装飾図柄変動表示を行うように次回実行する上記ステップS303の処理で副制御部500に出力するコマンド(例えば左に装飾7を停止することを指示するコマンドや遮蔽手段250を動作させるコマンド等)をRAM408に設けた液晶コマンド格納領域に格納する等、後述するステップS305、306、307によるスピーカ416、各種ランプ420、および演出用可動体を制御する準備を行う。また、所定の条件が成立している場合には所定の演出を実行するか否か、例えば、主制御部300から取得したハードウェア乱数を用いて、チャンスボタンを用いた演出を行うか否か等の抽選を行う。
ステップS307では、音出力処理を行う。この音出力処理では、上記ステップS306で取得したスピーカ制御用の情報に含まれるスピーカ416に出力する音声データをI/O410の出力ポートに設定し、スピーカ416の出力制御を音源IC418に行わせる。
ステップS308では、ランプ制御処理を行う。このランプ制御処理では、上記ステップS306で取得した各種ランプ制御用の情報に含まれる各種ランプ420に出力するランプの点灯・消灯を示すデータ等をI/O410の出力ポートに設定し、各種ランプ420の点灯や消灯の制御を表示回路422に行わせる。
ステップS309では、演出用駆動装置制御処理を行う。この演出用駆動装置制御処理では、上記ステップS306で取得した演出用可動体の制御用の情報に含まれる動作タイミングを示すデータ等をI/O410の出力ポートに設定し、演出用可動体等を駆動する各種演出用駆動装置424の制御を演出用駆動装置制御回路426に行わせる。
副制御部400は、後述するストローブ処理、チャンスボタン処理、または副制御部タイマ割り込み処理による中断を除いて、以降、ステップS302〜S309の処理を繰り返し実行する。
<コマンド入力処理>
次に、図14(b)を用いて、上記副制御部メイン処理におけるコマンド入力処理(ステップS302)について説明する。同図はコマンド入力処理の流れを示すフローチャートである。
ステップS401では、後述するコマンド記憶領域の内容を確認し、未処理のコマンドが残っているか否かを判断する。そして、コマンド記憶領域に未処理のコマンドが残っている場合にはステップS402に進み、コマンド記憶領域に未処理のコマンドが残っていない場合には処理を終了して副制御部メイン処理に復帰する。
図14(c)は変動パターン選択処理の流れを示すフローチャートであり、同図(d)は図柄停止処理の流れを示すフローチャートである。ステップS402では、コマンド記憶領域に記憶している未処理コマンドのうちの次に処理するべき未処理コマンドの種類に基づいて、図14(c)に示す変動パターン選択処理(例えば未処理コマンドが上記図柄変動開始コマンドに基づいて実行する)や、同図(d)に示す図柄停止処理等を行う。未処理コマンドに基づく処理は他にも備えている。例えば、大当たり中に可変入賞口130の開放制御を開始するたびに主制御部300が出力し、大当たり開始後の可変入賞口130の開放回数を示す情報を含むラウンド開始コマンドが未処理コマンドである場合に行うラウンド開始処理等である。その他の処理は、ここでは割愛する。
変動パターン選択処理のステップS501では、未処理コマンドに含まれている上記大当たりフラグの値、確変フラグの値、およびタイマ番号を抽出し、RAM408のそれぞれの記憶領域に記憶する。また、上述の変動番号選択テーブルや図柄決定テーブルを参照して演出データ(本実施例では変動番号、仮停止図柄・停止図柄の組合せ等)を選択し、これをRAM408に設けた記憶領域に記憶した後、処理を終了する。
図柄停止処理のステップS601では、上記図柄記憶領域に記憶している停止図柄の組合せを構成する3つの装飾図柄を装飾図柄表示装置110の左、中、右図柄表示領域110a〜110cの3つの表示領域に表示するように設定して処理を終了する。また、上記ラウンド開始処理では未処理コマンドに含まれている上記大当たり開始後の可変入賞口130の開放回数を示す情報を抽出し、RAM408の記憶領域に記憶する。
<ストローブ割り込み処理>
次に、図14(e)を用いて、副制御部400のストローブ割り込み処理について説明する。なお、同図はストローブ割り込み処理の流れを示すフローチャートである。
このストローブ割り込み処理は、副制御部400が、主制御部300が出力するストローブ信号を検出した場合に実行する処理である。ストローブ割り込み処理のステップS701では、主制御部300が出力したコマンドを未処理コマンドとしてRAM408に設けた上記コマンド記憶領域に記憶する。
<チャンスボタン割り込み処理>
次に、図14(f)を用いて、副制御部400のチャンスボタン割り込み処理について説明する。なお、同図はチャンスボタン割り込み処理の流れを示すフローチャートである。
このチャンスボタン割り込み処理は、副制御部400がチャンスボタン検出回路364によってチャンスボタン146の操作を検出した場合に実行する処理である。
チャンスボタン割り込み処理のステップS801では、RAM408の検知カウンタ記憶領域に記憶している、チャンスボタン146の押下回数を計測するための検知カウンタから値を取得し、取得した値に1を加算してから元の検知カウンタ記憶領域に記憶する。
<変数更新割り込み処理>
次に、図14(g)を用いて、副制御部400のCPU404によって実行する変数更新割り込み処理について説明する。なお、同図は変数更新割り込み処理の流れを示すフローチャートである。
副制御部400は、所定の周期(本実施例では2msに1回)でタイマ割り込みを発生するハードウェアタイマを備えており、このタイマ割り込みを契機として、変数更新割り込み処理を所定の周期で実行する。
変数更新割り込み処理のステップS901では、RAM408のタイマ変数記憶領域の値に1を加算して元のタイマ変数記憶領域に記憶する。従って、ステップS304において、タイマ変数の値が10以上と判定されるのは20ms毎(2ms×10)となる。
以上説明したように、本実施例1に係るパチンコ機100は、CPU(例えば、CPU304)からI/O空間を介してアクセス可能な第1の記憶領域(例えば、RAM308のI/O空間対応記憶領域)を少なくとも有する記憶手段(例えば、RAM308)を備えたことを特徴とする、遊技台である。
本実施例1に係るパチンコ機100によれば、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、前記記憶手段は、前記CPUからメモリ空間を介してアクセス可能な第2の記憶領域(例えば、RAM308のメモリ空間対応記憶領域)をさらに有するように構成してもよい。
このような構成とすれば、記憶手段の第1の記憶領域と第2の記憶領域を使い分けることが可能となり、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、前記記憶手段に記憶する情報のうち、第1のデータ長の情報(例えば、特図表示図柄更新タイマや普図表示図柄更新タイマなどの1バイト長のデータ)の少なくとも一部を前記第1の記憶領域に記憶し、前記記憶手段に記憶する情報のうち、前記第1のデータ長よりも長い第2のデータ長の情報(例えば、特図表示図柄汎用タイマや普図表示図柄汎用タイマなどの2バイト長のデータ)を前記第2の記憶領域に記憶するように構成してもよい。
このような構成とすれば、データ長に応じて情報を適切な記憶領域に記憶することができ、記憶手段の記憶容量を削減することができる場合がある。
また、前記記憶手段に記憶する情報のうち、前記第1の記憶領域に記憶する情報は全て前記第1のデータ長の情報であってもよい。
このような構成とすれば、第1の記憶手段に記憶する情報のデータ長を1種類にすることができ、記憶手段を効率的に利用することができる場合がある上に、データの読み書き速度を速めることができる場合がある。
また、前記記憶手段に記憶する情報のうち、前記第1のデータ長の情報の全てを前記第1の記憶領域に記憶してもよい。
このような構成とすれば、第1の記憶手段に記憶する情報のデータ長を1種類にすることができ、記憶手段を効率的に利用することができる場合がある上に、データの読み書き速度を速めることができる場合がある。
また、前記CPUは、前記記憶手段の第1の記憶領域にアクセスするための第1の命令(例えば、IN命令やOUT命令)と、前記記憶手段の前記第2の記憶領域にアクセスするための第2の命令(例えば、LD命令)と、を少なくとも備えていてもよい。
このような構成とすれば、第1の記憶領域にアクセスする命令と、第2の記憶領域にアクセスするための命令を明示することができ、プログラムの開発効率の向上や、プログラムのメンテナンス性の向上を図ることができる場合がある。
また、前記第1の命令のプログラムコード量が、前記第2の命令のプログラムコード量よりも小さくなるように構成してもよい。
このような構成とすれば、第2の命令(第2の記憶領域)よりも第1の命令(第1の記憶領域)を多用することによって、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、前記第1の命令に含まれるアドレス部(例えば、アセンブラ言語の「IN A、10H」の第2オペランドである10H)のプログラムコード量が、前記第2の命令に含まれるアドレス部(例えば、アセンブラ言語の「LD A、2810H」の第2オペランドである2810H)のプログラムコード量の半分であってもよい。
このような構成とすれば、第2の命令(第2の記憶領域)よりも第1の命令(第1の記憶領域)を多用することによって、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、前記第1の命令に含まれるアドレス部は、前記第1の記憶領域のアドレスを直接指定する直接アドレス方式であり、前記第2の命令に含まれるアドレス部は、前記第2の記憶領域のアドレスを直接指定する直接アドレス方式であってもよい。
このような構成とすれば、アドレス長に応じて情報を適切な記憶領域に記憶することができ、記憶手段の記憶容量を削減することができる場合がある。
また、CPUが出力するメモリリクエスト信号に基づいてアクセスされる記憶手段(例えば、RAM308)を備えた遊技台において、前記CPUが出力したIOリクエスト信号を入力したことに基づいて、前記記憶手段にアクセスするためのメモリアクセス信号を出力するメモリアクセス信号出力回路(例えば、アドレスデコーダ342)をさらに備えてもよいし、CPUが出力するメモリリクエスト信号に基づいてアクセスされる記憶手段を備えた遊技台において、前記CPUが出力したIOリクエスト信号を前記CPUが出力したIOリクエスト信号の入力およびCPUから出力されたアドレス情報が所定のアドレスであることに基づいて、前記記憶手段にアクセスするためのメモリアクセス信号を出力するメモリアクセス信号出力回路(例えば、アドレスデコーダ342)をさらに備えてもよい。
このような構成とすれば、メモリリクエスト信号に基づくアクセスと、IOリクエスト信号に基づくアクセスを併用することが可能となり、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、IOリクエスト信号と共に出力されたアドレス情報を変更するアドレス変更回路(例えば、アドレスコンバータ340)をさらに備えてもよい。
このような構成とすれば、メモリリクエスト信号に基づくアクセスと、IOリクエスト信号に基づくアクセスの併用が容易となる場合がある。
また、前記CPUは、前記アドレス情報と、前記メモリアクセス信号とに基づいて、データ情報を前記記憶手段に書き込み、または、読み出すように構成してもよい。
なお、上記実施例では、主制御部300のCPU304およびRAM308に本発明を適用する例を示したが、本発明はこれに限定されず、例えば、副制御部400のCPU404およびRAM408、払出制御部550のCPUおよびRAM(図示省略)など、他の制御部のCPUやRAMに本発明を適用してもよい。
また、I/O空間を介してアクセス可能な記憶領域に記憶した情報は全て1バイトの情報であってもよい。また、I/O空間を介してアクセス可能な記憶領域に記憶した情報は全て、CPUが情報が記憶されたアドレスを使用して他のアドレスを参照しないものであってもよい。
また、上記実施例では、I/Oマップドメモリの割り当て対象(本発明における「記憶手段」)をRAMとしたが、本発明はこれに限定されず、例えば、ROM、レジスタ、キャッシュメモリなど、他の記憶手段でもよく、内蔵でも外付けでもよい。
また、上記実施例では、I/Oマップドメモリを、データが記憶されているアドレスを直接指定する直接アドレス方式によってアクセスする例を示したが、本発明はこれに限定されず、例えば、相対アドレス方式や間接アドレス方式によってアクセスしてもよい。但し、メモリ空間に割り当てた16ビットアドレスを使用して相対アドレス方式や間接アドレス方式によってアクセスする情報は、メモリ空間に割り当てることが好ましい。
また、次に例示する各種データは、I/Oマップドメモリによって読み書き可能な記憶領域に記憶してもよく、メモリマップドI/Oによって読み書き可能な記憶領域に記憶してもよい。例えば、ウォッチドッグタイマの設定データ、チップセレクト選択データ、外部割込みレジスタ設定データ、所定の乱数の最大値の設定データ、乱数に関する設定データ、CTC設定データ、電源投入時の初期設定データ、入力ポートの設定データ、タイマ制御に関するデータ、7セグの表示に関するデータ、入賞口のチェックの際に使用するデータ、主制御部が払出制御部に送信する払出数に関するデータ、副制御部に対して送信要求するための設定データ、副制御部に対するコマンドに関するデータ、所定の試験機関に対する試験の際に使用するデータ、普通図柄データに関するデータ、外部装置(演出装置など)に関するデータ、図柄の変動時間に関するデータ、図柄の抽選に関するデータ、図柄抽選の使用する乱数のデータ、図柄の変動時間を判定するために使用するデータ、大当たりの際に普通大当たりか確率変動大当たりかを判定するために使用する乱数のデータ、電源状態に関するデータ、電源断時のスタックポインタの待避に関するデータ、電源投入の判定信号、払出制御部に送信するデータ、出力ポートに出力するためのデータ、ランプの演出状態に関するデータ、特別図柄の表示状態に関するデータ、普通図柄の表示状態に関するデータ、特別図柄の当選・非当選に関するデータ、大入賞口の開閉を判定するための大入賞口に入賞した球の数に関するデータ、図柄の変動の回数を判定するための始動口下入賞数に関するデータ、特別図柄の保留球数に関するデータ、普通図柄の保留球数に関するデータ、普通図柄の当選・非当選に関するデータ、電断復帰が正常に行われたかを示すデータ、割り込み機能を限定するか否かに関するデータ、センサの検出に関するデータ、特別図柄表示図柄の更新に関するタイミングを計るためのデータ、普通図柄表示図柄の更新に関するタイミングを計るためのデータ、ガラス枠の開放時間を計るためのデータ、内枠の開放時間を計るためのデータ、受皿が満タンになったか否かに関するデータ、普通図柄に全体的に使用するタイマ、チェックサムの値を記憶するためのデータ、(払出制御部)遊技球の賞球数(払出)に関するデータ、CRユニットとの接続に関するデータ、CRユニットとの通信に関するデータ、モータを駆動するための駆動制御データ、7セグに表示する数値データ、主制御部から送信されたデータ、遊技球の貸出に関するデータ、主制御部との接続を確認するためのデータ、主制御部が動作しているかを確認するためのデータ、主制御部から正常にデータが送られてきたか否かを確認するためのデータ、払出装置を駆動するために使用するデータなどが挙げられる。
また、これらの例示した各種データを一時的に記憶するためのデータを、I/Oマップドメモリによって読み書き可能な記憶領域に記憶してもよく、メモリマップドI/Oによって読み書き可能な記憶領域に記憶してもよい。
また、上記実施例では、主制御部メイン処理の初期設定1(ステップS101)でメモリ空間とI/O空間のRAMの割り当て設定を行う例を示したが、本発明はこれに限定されるものではなく、I/O空間のRAMの割り当て設定のタイミングは、処理状況に応じて適宜変更してもよい。
例えば、遊技台の電源投入後、RAM合計値(RAMの所定記憶領域(チェックサム記憶領域以外の記憶領域)に記憶しているデータの合計値)と、チェックサム記憶領域に記憶しているチェックサムの値とを比較する場合に、RAM合計値を算出する前にI/O空間のRAMの割り当て設定を行わなくてもよい(遊技台の電源投入後からチェックサムの値の比較まではI/O空間のRAMの割り当て設定を行わないか、チェックサムの値の比較前にI/O空間のRAMの割り当て設定を一時的に解除してもよい)。なぜなら、RAM合計値の算出は、RAMの所定記憶領域の先頭アドレスからアドレスを1つずつ進めることで所定記憶領域に記憶しているデータの合計値を算出することが一般的であるが、メモリ空間に割り当てたRAMのデータとI/O空間に割り当てたRAMのデータが混在していると、同一の命令構造でRAM合計値の算出ができなくなり、プログラムコードの簡素化を阻害し、プログラムコードが増大するおそれがあるからである。
また、全てのRAM領域をクリア(RAMクリア)する場合には、I/O空間のRAMの割り当て設定を行わなくてもよい(RAMクリアを行うまではI/O空間のRAMの割り当て設定を行わないか、RAMクリアを行う前にI/O空間のRAMの割り当て設定を一時的に解除してもよい)。なぜなら、RAMクリアを行う場合は、RAM領域の先頭アドレスからアドレスを1つずつ進めて先頭アドレスから末尾アドレスまで0の値を代入するのが一般的であるが、同一の命令構造でRAMクリアができなくなり、プログラムコードの簡素化を阻害し、プログラムコードが増大するおそれがあるからである。したがって、I/O空間の割り当て設定はRAMクリア後に行うことが好ましい。
また、電断時にチェックサムの値を算出する場合には、I/O空間のRAMの割り当て設定を行わなくてもよい(チェックサムの値を算出するまではI/O空間のRAMの割り当て設定を行わないか、チェックサムの値を算出する前にI/O空間のRAMの割り当て設定を一時的に解除してもよい)。なぜなら、チェックサムの値を算出する場合は、RAMの所定記憶領域の先頭アドレスからアドレスを1つずつ進めることで所定記憶領域に記憶しているデータを用いてチェックサムの値を算出することがあるが、メモリ空間に割り当てたRAMのデータとI/O空間に割り当てたRAMのデータが混在していると、同一の命令構造でチェックサムの値の算出ができなくなり、プログラムコードの簡素化を阻害し、プログラムコードが増大するおそれがあるからである。したがって、I/O空間のRAMの割り当て設定は電断時後に解除することが好ましい。また、電断時にスタックポインタをRAMに退避するような場合にも、退避前にI/O空間のRAMの割り当て設定を解除することが好ましい。
また、メモリ空間に割り当てたRAMのデータのチェックサムと、I/O空間に割り当てたRAMのデータのチェックサムは、それぞれの記憶領域内に別々に設けてもよく、また、いずれか一方の記憶領域にまとめて設けてもよい。
また、電断時にそれぞれの記憶領域毎にチェックサムの値を算出し、電源投入時にそれぞれの領域毎にRAM合計値を取得し、それぞれの値を比較してもよい。
また、電断時はI/Oマップドメモリの設定が行われているため記憶領域毎にチェックサムの値を算出するが、電源投入時はI/O空間のRAMの割り当てを行わない(遊技台の電源投入後からチェックサムの比較まではI/O空間のRAMの割り当て設定を行わないか、チェックサムの値の比較前にI/O空間のRAMの割り当てを一時的に解除してもよい)ことでそれぞれの記憶領域の合計値を同一の命令構造で取得し、電断時に記憶したそれぞれの記憶領域毎のチェックサムの合計値と比較してもよい。
なお、本発明では第1の領域と第2の領域とが連続したアドレスとなっていたが、連続していなくてもよい。
また、上述のRAM308のうちの所定の第1の記憶領域へのデータ入出力をイン(IN)命令、アウト(OUT)命令により行なうとともに、該RAM308のうちの所定の第2の記憶領域へのデータ入出力をロード(LD)命令でおこなうことでプログラム量を低減することが可能になるが、基本回路302とは別体に設けた外部装置へのアクセスについてはプログラム量の低減を考えるとイン/アウト命令で行なった方が良いが、ロード命令でおこなうように構成してもよい。外部装置へのアクセスをロード命令により行なうようにすると、イン/アウト命令で行なう場合に較べてプログラム量は増加するが、RAM308のうちの所定の第1の記憶領域へのデータ入出力をイン/アウト命令でプログラムの量を低減していることで、従来の構成の遊技制御回路と比較すればプログラム量の低減に寄与することができる。
また、上述した実施例に記載の遊技台はプログラムコードを削減することでシンプルに遊技制御をおこなうことでプログラムチェックのしやすさの向上やプログラムミスなど人的要因による誤動作を防止することができるといった一面もあり、このようなシンプルな遊技制御をおこなう場合、基本回路302は8ビット(1バイト)幅のデータバスを使って情報の送受信を行なうように構成した方が、16ビット幅などといった高級な構成にする場合に較べて回路構成を単純にできることから、ノイズなど外乱による誤動作や、プログラムミス、配線ミスなど人的要因による誤動作を防止することができることでより信頼性の高い遊技制御を実現しやすく、好適である。また、アドレスデコーダが出力するCS(チップセレクト)信号を送信するための信号線の数もできるだけ少なくすることで、実施例に記載の遊技台のように、アドレスデコーダは実質1バイト幅の信号線により入力されるアドレス情報をデコードすればよくなり、構成をより単純化できる場合がある。しかし、上述したように様々な遊技装置の制御を確実におこなわなければならないため、RAM、ROMなどはある程度の大きさが必要なことからアドレスバスは16ビット幅で構成するようにしている。遊技制御は所定の制御開始契機(例えば前回の割り込み処理の開始)から所定の時間後に別の制御を開始(例えば次の割り込み処理を開始)することで、時間的な偏りの少ない公平な遊技制御を実現している。そのため遊技制御を構成する1つ1つの処理は出来れば短時間で完了するように構成したほうが、所定の処理が長引いたことが原因で所定の時間後に別の制御を開始することができなくなるといった不具合(いわゆる処理落ち)の危険を減少させられる場合がある。すなわち、データ容量を低減するとともに処理を高速化させることで、より信頼性の高い遊技制御をおこなうことが可能になる場合がある。
また、データ容量の低減および処理の高速化を実現させるために、上述したように2バイトの大きさでRAM308に設けたカウンタ情報は2バイト構成のレジスタ(例えばHLレジスタ)を使用したロード命令で情報の入出力をおこない、1バイトの大きさでRAM308に設けたカウンタ情報はイン命令で情報の入出力をおこなうようにしてもよい。しかし、複数の1バイトのカウンタ情報をRAM308に連続して設け、それら複数のカウンタ情報の更新時期が同一になるような構成にしている場合には、複数のカウンタ情報に含まれるカウンタ情報のそれぞれをいちいちイン命令で入力し、更新してアウト命令で出力するようにはせずに、複数のカウンタ情報のうちの先頭または最後方のカウンタ情報のアドレスを一度2バイト構成のレジスタ(例えばHLレジスタ)にロード命令で設定し、該2バイト構成のレジスタの値を進める、または戻すことで処理対象となるカウンタ情報を変化させるとともに、カウンタ情報の更新については該アドレスがロードされた2バイト構成のレジスタを介して更新(例えば「INC (HL)」)するようにしてもよい。このようにすることでデータ容量の低減だけを考慮して、処理を低速にしてしまうことで処理落ちが発生するといった不具合を回避することができる場合がある。これはカウンタ情報に限定されず、RAM308に連続的に配置している複数の同一種類の1バイト幅の情報に関しても同様である。複数の同一種類の1バイト幅の情報は例えば複数の外部装置のそれぞれに対して出力予定の1バイト情報を記憶している記憶領域を適用してもよい。すなわち情報の大きさが1バイトであってもアドレスをロードしたレジスタの値を更新して、該レジスタが示すアドレスの情報に同様の処理をおこなう場合にはイン命令およびアウト命令ではなくロード命令で入出力可能な位置に配置する方が好適な場合がある。全体で1つの意味を持つ1バイト構成の制御フラグ(例えばFFH、A5H、5AHなどの1または複数の値の場合にオンを示し、00Hの場合にオフを示すフラグ)はイン命令、アウト命令で入出力可能な位置に配置してもよい。
また、上記実施例においては、遊技球を遊技媒体としたパチンコ機の例を示したが、本発明はこれに限定されるものではなく、例えば、メダル(コイン)を遊技媒体としたスロットマシンなどにも適用可能である。以下、スロットマシンの一例について説明する。
<全体構成>
まず、図15を用いて、スロットマシン1100の全体構成について説明する。なお、同図はスロットマシン1100の外観斜視図を示したものである。
スロットマシン1100は、略箱状の本体1101と、この本体1101の前面開口部に取り付けられた前面扉1102とを有して構成されている。スロットマシン1100の本体1101の中央内部には、外周面に複数種類の図柄が所定コマ数だけ配置されたリールが3個(左リール1110、中リール1111、右リール1112)収納され、スロットマシン1100の内部で回転できるように構成されている。各図柄は帯状部材に等間隔で適当数印刷され、この帯状部材が所定の円形枠材に貼り付けられて各リール1110乃至1112が構成されている。リール1110乃至1112上の図柄は、遊技者から見ると、図柄表示窓1113から縦方向に概ね3つ表示され、合計9つの図柄が見えるようになっている。そして、各リール1110乃至1112を回転させることにより、遊技者から見える図柄の組み合せが変動することとなる。
また、図柄表示窓1113の外枠には、点滅や点灯などの点灯制御によって、後述する有効ラインや入賞ラインを報知するためのライン表示LED(図示省略)が配置されている。
さらに、スロットマシン1100内部において各々のリール1110乃至1112の近傍には、投光部と受光部からなる光学式センサ(図示省略)が設けられており、この光学式センサの投光部と受光部の間を、リールに設けられた一定の長さの遮光片が通過するように構成されている。このセンサの検出結果に基づいてリール上の図柄の回転方向の位置を判断し、目的とする図柄が入賞ライン1114上に表示されるようにリール1110乃至1112を停止させる。
入賞ライン表示ランプ1120は、有効となる入賞ラインを示すランプである。有効となる入賞ラインは、スロットマシン1100に投入されたメダルの数によって予め定まっている。5本の入賞ライン1114のうち、例えば、メダルが1枚投入された場合、中段の水平入賞ラインが有効となり、メダルが2枚投入された場合、上段水平入賞ラインと下段水平入賞ラインが追加された3本が有効となり、メダルが3枚投入された場合、右下り入賞ラインと右上り入賞ラインが追加された5本が入賞ラインとして有効になる。なお、入賞ライン1114の数については5本に限定されるものではない。
スタートランプ1121は、リール1110乃至1112が回転することができる状態にあることを遊技者に知らせるランプである。再遊技ランプ1122は、前回の遊技において入賞役の一つである再遊技役に入賞した場合に、今回の遊技が再遊技可能であること(メダルの投入が不要であること)を遊技者に知らせるランプである。告知ランプ1123は、内部抽選において、特定の入賞役(例えば、BB(ビッグボーナス)やRB(レギュラーボーナス)等のボーナス)に内部当選していることを遊技者に知らせるランプである。メダル投入ランプ1124は、メダルの投入が可能であることを知らせるランプである。払出枚数表示器1125は、何らかの入賞役に入賞した結果、遊技者に払出されるメダルの枚数を表示するための表示器である。遊技回数表示器1126は、メダル投入時のエラー表示や、ビッグボーナスゲーム中(BBゲーム中)の遊技回数、所定の入賞役の入賞回数等を表示するための表示器である。貯留枚数表示器1127は、スロットマシン1100に電子的に貯留されているメダルの枚数を表示するための表示器である。リールパネルランプ1128は、演出用のランプである。
メダル投入ボタン1130、1131は、スロットマシン1100に電子的に貯留されているメダルを所定の枚数分投入するためのボタンである。この例では、メダル投入ボタン1130が押下される毎に1枚ずつ最大3枚まで投入され、メダル投入ボタン1131が押下されると3枚投入されるようになっている。メダル投入口1134は、遊技を開始するに当たって遊技者がメダルを投入するための投入口である。すなわち、メダルの投入は、メダル投入ボタン1130又は1131により電子的に投入することもできるし、メダル投入口1134から実際のメダルを投入することもできる。精算ボタン1132は、スロットマシン1100に電子的に貯留されたメダル及びベットされたメダルを精算し、メダル払出口1155よりメダル受皿1156に排出するためのボタンである。メダル返却ボタン1133は、投入されたメダルが詰まった場合に押下してメダルを取り除くためのボタンである。
スタートレバー1135は、遊技の開始操作を行うためのレバー型のスイッチである。即ち、メダル投入口1134に所望する枚数のメダルを投入して、スタートレバー1135を操作すると、これを契機としてリール1110乃至1112が回転し、遊技が開始される。ストップボタン1137乃至1139は、スタートレバー1135の操作によって回転を開始したリール1110乃至1112に対する停止操作を行うためのボタンであり、各リール1110乃至1112に対応して設けられている。そして、いずれかのストップボタン1137乃至1139を操作すると対応するいずれかのリール1110乃至1112が停止することになる。
ドアキー孔1140は、スロットマシン1100の前面扉1102のロックを解除するためのキーを挿入する孔である。メダル払出口1155は、メダルを払出すための払出口である。メダル受皿1156は、メダル払出口1155から払出されたメダルを溜めるための器である。なお、メダル受皿1156は、本実施例1では発光可能な受皿を採用している。
上部ランプ1150、サイドランプ1151、中央ランプ1152、腰部ランプ1153、下部ランプ1154は、遊技を盛り上げるための装飾用のランプである。演出装置1190は、例えば開閉自在な扉装置(シャッター)1163が前面に取り付けられた液晶表示装置を含み、この演出装置1190には、例えば小役告知等の各種の情報が表示される。音孔1160は、スロットマシン1100内部に設けられているスピーカの音を外部に出力するための孔である。タイトルパネル1162には、スロットマシン1100を装飾するための図柄が描かれる。
<制御部>
次に、図16を用いて、このスロットマシン1100の主制御部1300の回路構成について詳細に説明する。なお、同図は主制御部1300の回路ブロック図を示したものである。
スロットマシン1100の制御部は、大別すると、遊技の中枢部分を制御する主制御部1300と、主制御部1300が送信したコマンドに応じて各種機器を制御する副制御部1400とからなる。
主制御部1300は、主制御部1300の全体を制御するための演算処理装置であるCPU1310や、CPU1310が各ICや各回路と信号の送受信を行うためのデータバス及びアドレスバスを備え、その他、以下に述べる構成を有する。クロック補正回路1314は、水晶発振器1311が発振したクロックを分周してCPU1310に供給する回路である。例えば、水晶発振器1311の周波数が12MHzの場合に、分周後のクロックは6MHzとなる。CPU1310は、クロック補正回路1314により分周されたクロックをシステムクロックとして受け入れて動作する。
また、CPU1310には、センサやスイッチの状態を常時監視するためのタイマ割り込み処理の周期やモータの駆動パルスの送信周期を設定するためのタイマ回路1315をバスを介して接続している。CPU1310は、電源が投入されると、データバスを介してROM1312の所定エリアに格納した分周用のデータをタイマ回路1315に送信する。タイマ回路1315は、受信した分周用のデータを基に割り込み時間を決定し、この割り込み時間ごとに、割り込み要求をCPU1310に送信する。CPU1310は、この割込み要求を契機に、各センサ等の監視や駆動パルスの送信を実行する。例えば、CPU1310のシステムクロックを6MHz、タイマ回路1315の分周値を1/256、ROM1312の分周用のデータを44に設定した場合、この割り込みの基準時間は、256×44÷6MHz=1.877msとなる。
さらに、CPU1310には、各ICを制御するためのプログラム、入賞役の内部抽選時に用いる抽選データ、リールの停止位置等の各種データを記憶しているROM1312や、一時的なデータを保存するためのRAM1313を接続している。なお、これらのROM1312やRAM1313については他の記憶手段を用いてもよく、この点は後述する副制御部1400においても同様である。
また、CPU1310には、外部の信号を受信するための入力インタフェース1360を接続し、割込み時間ごとに入力インタフェース1360を介して、メダル投入センサ1320、スタートレバーセンサ1321、ストップボタンセンサ1322、メダル投入ボタンセンサ1323、精算スイッチセンサ1324、メダル払出センサ1326の状態を検出し、各センサを監視している。
スタートレバーセンサ1321はスタートレバー1135の操作を検出するためのセンサである。ストップボタンセンサ1322はストップボタン1137〜1139のいずれかが押された場合、どのストップボタンが押されたかを検出するためのセンサである。メダル投入ボタンセンサ1323はメダル投入ボタン1130、1131のいずれかが押下された場合、どのメダル投入ボタンが押されたかを検出するためのセンサである。精算スイッチセンサ1324は、精算ボタン1132に設けており、精算ボタン1132が一回押されると、貯留しているメダル及びベットしているメダルを精算して払い出すことになる。
CPU1310には、さらに、入力インタフェース1361、出力インタフェース1370、1371をアドレスデコード回路1350を介してアドレスバスに接続している。CPU1310は、これらのインタフェースを介して外部のデバイスと信号の送受信を行っている。入力インタフェース1361には、インデックスセンサ1325を接続しており、インデックスセンサ1325は、リール1110〜1112に設けた遮光片が通過するたびにハイレベルになる。CPU1310は、この信号を検出すると、リールが1回転したものと判断し、リールの回転位置情報をゼロにリセットする。出力インタフェース1370には、リールを駆動させるためのモータを制御するリールモータ駆動部1330と、ホッパー1172のモータを駆動するためのホッパーモータ駆動部1331と、遊技ランプ1340(入賞ライン表示ランプ1120、スタートランプ1121、再遊技ランプ1122、告知ランプ1123、メダル投入ランプ1124等)と、7セグメント(SEG)表示器1341(払出枚数表示器1125、遊技回数表示器1126、貯留枚数表示器1127等)と、後述する外部集中端子板1450を接続している。
また、CPU1310には、水晶発信器1316が出力するクロック信号を受信する度に0〜65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用しているカウンタ回路1318と、このカウンタ回路1318が生成するハードウェア乱数を取得・保持するラッチ回路1317を接続している。
また、CPU1310のデータバスには、副制御部1400にコマンドを送信するための出力インタフェース1371を接続している。主制御部1300と副制御部1400との情報通信は一方向の通信であり、主制御部1300は副制御部1400へコマンドを送信するが、副制御部1400から主制御部1300へ何らかのコマンド等を送信することはできない。
このようなスロットマシン1110に本発明を適用し、CPU(例えば、CPU1310)からI/O空間を介してアクセス可能な第1の記憶領域(例えば、RAM1313のI/O空間対応記憶領域)を少なくとも有する記憶手段(例えば、RAM1313)を備えたスロットマシン1100としてもよい。
このようなスロットマシン1100によれば、従来よりもプログラムコードを削減し、記憶手段の記憶容量を削減することができる場合がある。
また、例えば、パチンコ機等の実機の動作を家庭用ゲーム機用として擬似的に実行するようなゲームプログラムにおいても、本発明を適用してゲームを実行することができる。
なお、本発明の実施の形態に記載された作用および効果は、本発明から生じる最も好適な作用および効果を列挙したに過ぎず、本発明による作用および効果は、本発明の実施の形態に記載されたものに限定されるものではない。また、実施例に記載した複数の構成のうち、1つの構成に記載している内容を、他の構成に適用することでより遊技の幅を広げられる場合がある。