<全体構成>
まず、図1を用いて、本発明の実施例1に係るパチンコ機100の全体構成について説明する。なお、同図はパチンコ機100を正面(遊技者側)から見た状態を示す略示正面図である。
パチンコ機100は、遊技領域104を覆う閉状態および該遊技領域104を開放する開状態のうちの一方から他方に開閉状態を変化可能なガラス枠151と、このガラス枠151の奥側に視認可能に配設された遊技盤(盤面)102を備えている。この遊技盤102には、遊技球(以下、単に球と称する場合がある。)を遊技盤102の中央に位置する遊技領域104に案内するための外レール106と内レール108を配設している。
遊技領域104の中央やや上側には、横長の装飾図柄表示装置110を配設し、この装飾図柄表示装置110の右下には、普通図柄表示装置112と、特別図柄表示装置114と、普通図柄保留ランプ116と、特別図柄保留ランプ118と、高確中ランプ120を配設している。なお、以下、普通図柄を普図、特別図柄を特図と称する場合がある。
装飾図柄表示装置110は、装飾図柄(図3(b)参照)を表示するための表示装置であり、本実施例では液晶表示装置によって構成する。この装飾図柄表示装置110は、左図柄表示領域110a、中図柄表示領域110b、右図柄表示領域110cの3つの表示領域に分割し、各々の表示領域110a、110b、110cに異なった装飾図柄を表示することを可能としている。
普図表示装置112は、普図(図3(c)参照)の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。特図表示装置114は、特図(図3(a)参照)の表示を行うための表示装置であり、本実施例では7セグメントLEDによって構成する。
普図保留ランプ116は、保留している普図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、普図変動遊技の開始を2つまで保留することを可能としている。特図保留ランプ118は、保留している特図変動遊技(詳細は後述)の数を示すためのランプであり、本実施例では、特図変動遊技の開始を4つまで保留することを可能としている。高確中ランプ120は、遊技状態が高確率状態であること、または高確率状態になることを示すためのランプであり、遊技状態を低確率状態から高確率状態にする場合に点灯し、高確率状態から低確率状態にする場合に消灯する。
また、これらの表示装置やランプの周囲には、一般入賞口122と、普図始動口124と、第1特図始動口126と、第2特図始動口128と、可変入賞口130を配設している。
一般入賞口122は、本実施例では左右に2つずつ配設しており、この一般入賞口122への入球を所定の球検出センサ(図示省略)が検出した場合(一般入賞口122に入賞した場合)、後述する払出装置154を駆動し、所定の個数(本実施例では10個)の球を賞球として後述する貯留皿144に排出する。貯留皿144に排出した球は遊技者が自由に取り出すことが可能であり、これらの構成により、入賞に基づいて賞球を遊技者に払い出すようにしている。なお、一般入賞口122に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。本実施例では、入賞の対価として遊技者に払い出す球を賞球、遊技者に貸し出す球を貸球と区別して呼ぶ場合があり、賞球と貸球を総称して球(遊技球)と呼ぶ。
普図始動口124は、ゲートやスルーチャッカーと呼ばれる、遊技領域104の所定の領域を球が通過したか否かを判定するための装置で構成しており、本実施例では左右に1つずつ配設している。普図始動口124を通過した球は一般入賞口122に入球した球と違って、遊技島側に排出することはない。球が普図始動口124を通過したことを所定の球検出センサが検出した場合、パチンコ機100は、普図表示装置112による普図変動遊技を開始する。
第1特図始動口126は、本実施例では中央に1つだけ配設している。この第1特図始動口126への入球を所定の球検出センサが検出した場合、後述する払出装置154を駆動し、所定の個数(本実施例では3個)の球を賞球として後述する貯留皿144に排出するとともに、特図表示装置114による特図変動遊技を開始する。なお、第1特図始動口126に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
第2特図始動口128は、電動チューリップ(電チュー)と呼ばれ、本実施例では第1特図始動口126の真下に1つだけ配設している。この第2特図始動口128は、左右に開閉自在な羽根を備え、羽根の閉鎖中は球の入球が不可能であり、普図変動遊技に当選し、普図表示装置112が当たり図柄を停止表示した場合に羽根が所定の時間間隔、所定の回数で開閉する。第2特図始動口128への入球を所定の球検出センサが検出した場合、後述する払出装置154を駆動し、所定の個数(本実施例では5個)の球を賞球として後述する貯留皿144に排出するとともに、特図表示装置114による特図変動遊技を開始する。なお、第2特図始動口128に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
可変入賞口130は、大入賞口またはアタッカーと呼ばれ、本実施例では遊技領域104の中央部下方に1つだけ配設している。この可変入賞口130は、開閉自在な扉部材を備え、扉部材の閉鎖中は球の入球が不可能であり、特図変動遊技に当選し、特図表示装置114が大当り図柄を停止表示した場合に扉部材が所定の時間間隔(例えば、開放時間29秒、閉鎖時間1.5秒)、所定の回数(例えば15回)で開閉する。可変入賞口130への入球を所定の球検出センサが検出した場合、後述する払出装置154を駆動し、所定の個数(本実施例では15球)の球を賞球として後述する貯留皿144に排出する。なお、可変入賞口130に入球した球は、パチンコ機100の裏側に誘導した後、遊技島側に排出する。
さらに、これらの入賞口や始動口の近傍には、風車と呼ばれる円盤状の打球方向変換部材132や、遊技釘134を複数個、配設していると共に、内レール108の最下部には、いずれの入賞口や始動口にも入賞しなかった球をパチンコ機100の裏側に誘導した後、遊技島側に排出するためのアウト口136を設けている。
遊技盤102の下方には、後述する発射モータ452によって回動する発射杆138と、この発射杆138の先端部に取り付けられて球を遊技領域104に向けて打ち出す発射槌140と、この発射槌140によって打ち出す球を外レール106に導くための発射レール142と、球を一時的に貯留すると共に、貯留している球を順次、発射レール142に供給するための貯留皿144と、遊技者による押下操作が可能であり、所定の時期にその操作を検出した場合に上述の装飾図柄表示装置110などによる演出表示を変化させるためのチャンスボタン146を配設している。
また、発射杆138および発射槌140の下方には、発射杆138を制御して遊技領域104に向けて球の発射強度の操作を行うための操作ハンドル148を配設していると共に、貯留皿144の下方には、貯留皿144に貯留できない溢れ球を貯留するための下皿150を設けている。
このパチンコ機100は、遊技者が貯留皿144に貯留している球を発射レール142の発射位置に供給し、遊技者の操作ハンドル148の操作量に応じた強度で発射モータ452を駆動し、発射杆138および発射槌140によって外レール106、内レール108を通過させて遊技領域104に打ち出す。そして、遊技領域104の上部に到達した球は、打球方向変換部材132や遊技釘134などによって進行方向を変えながら下方に落下し、入賞口(一般入賞口122、可変入賞口130)や始動口(第1特図始動口126、第2特図始動口128)に入賞するか、いずれの入賞口や始動口にも入賞することなく、または普図始動口124を通過するのみでアウト口136に到達する。
図2は、パチンコ機100を背面側から見た外観斜視図である。
パチンコ機100の背面上部には、上方に開口した開口部を有し、球を一時的に貯留するための球タンク152と、この球タンク152の下方に位置し、球タンク152の底部に形成した連通孔を通過して落下する球を背面右側に位置する払出装置154に導くためのタンクレール153と、を配設している。
払出装置154は、筒状の部材からなり、その内部には、スプロケット157と払出センサ158を備えている。スプロケット157は、モータによって回転可能に構成しており、タンクレール153を通過して払出装置154内に落下する球を一時的に滞留すると共に、モータを駆動することによって所定角度だけ回転することにより、一時的に滞留した球を払出装置154の下方へ1個ずつ送り出すように構成している。また、払出センサ158は、スプロケット157が送り出した球の通過を検知するためのセンサであり、球が通過しているときにオンの信号を出力し、球が通過していないときはオフの信号を出力する。なお、この払出センサ158を通過した球は、図示しない球レールを通過してパチンコ機100の表側に配設した貯留皿144に到達するように構成しており、パチンコ機100は、この構成により遊技者に対して球の払い出しを行う。
また、払出装置154の左側には、後述する主制御部300を構成する主基板161と、後述する演出制御部350を構成するサブ基板164を配設している。また、これら主基板161とサブ基板164の下方には、後述する発射制御部450を構成する発射基板166と、後述する電源管理部500を構成する電源基板162と、後述する払出制御部400を構成する払出基板165と、この払出基板165に接続したCRインターフェース部163を配設している。
<図柄の種類>
次に、図3(a)〜(c)を用いて、パチンコ機100の特図表示装置114、装飾図柄表示装置110、普図表示装置112が停止表示する特図および普図の種類について説明する。
図3(a)は特図の停止表示態様の一例を示したものである。本実施例の特図の停止表示態様には、同図に示すように特別大当り図柄である特図1と、大当り図柄である特図2と、外れ図柄である特図3の3種類がある。第1特図始動口126または第2特図始動口128に球が入賞したことを所定の球検出センサが検出したことを条件として特図変動遊技を開始した場合には、特図表示装置114は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す特図の変動表示を行う。そして、特図の変動開始前に決定した変動時間が経過すると、特図変動遊技(特別大当り遊技)の当選を報知する場合には特図1を停止表示し、特図変動遊技(大当り遊技)の当選を報知する場合には特図2を停止表示し、特図変動遊技の外れを報知する場合には特図3を停止表示する。なお、図中の白抜きの部分が消灯するセグメントの場所を示し、黒塗りの部分が点灯するセグメントの場所を示している。
図3(b)は装飾図柄の一例を示したものである。本実施例の装飾図柄には、装飾1〜装飾8の8種類がある。第1特図始動口126または第2特図始動口128に球が入賞したことを所定の球検出センサが検出したことを条件にして、装飾図柄表示装置110の左図柄表示領域110a、中図柄表示領域110b、右図柄表示領域110cの各図柄表示領域に、装飾1→装飾2→装飾3→・・・・装飾7→装飾8→装飾1→・・・の順番で表示を切り替える装飾図柄の変動表示を行う。そして、特図変動遊技(大当り遊技)の当選を報知する場合には、図柄表示領域110a〜110cに大当りに対応する図柄組合せ(本実施例では、同一の数字の装飾図柄の組合せ(例えば、装飾2−装飾2−装飾2))を停止表示し、特図変動遊技(特別大当り遊技)の当選を報知する場合には、特別大当りに対応する図柄組合せ(本実施例では、同一の奇数番号数字の装飾図柄の組合せ(例えば、装飾1−装飾1−装飾1))を停止表示する。
なお、大当りに対応する図柄の組合せを停止表示した場合には、大当り遊技、または特別大当り遊技を開始し、特別大当りに対応する図柄の組合せを停止表示した場合には、特別大当り遊技を開始する。また、外れを報知する場合には、図柄表示領域110a〜110cに大当りに対応する図柄組合せ以外の図柄組合せを停止表示した後で、保留している装飾図柄の変動表示があれば、その変動表示を開始する。
図3(c)は普図の停止表示態様の一例を示したものである。本実施例の普図の停止表示態様には、当たり図柄である普図1と、外れ図柄である普図2の2種類がある。普図始動口124を球が通過したことを所定の球検出センサが検出したことを条件として普図表示遊技を開始した場合には、普図表示装置112は、7個のセグメントの全点灯と、中央の1個のセグメントの点灯を繰り返す普図の変動表示を行う。そして、普図変動遊技の当選を報知する場合には普図1を停止表示し、普図変動遊技の外れを報知する場合には普図2を停止表示する。
<制御部>
次に、図4および図5を用いて、このパチンコ機100の制御部の回路構成について詳細に説明する。なお、図4は主制御部、払出制御部、発射制御部、および電源管理部の回路ブロック図を示したものであり、図5は演出制御部の回路ブロック図を示したものである。
パチンコ機100の制御部は、大別すると、遊技の中枢部分を制御する主制御部300と、主制御部300が送信するコマンド信号(以下、単にコマンドと呼ぶ)に応じて、主に演出の制御を行う演出制御部350と、主制御部300が送信するコマンドに応じて、主に遊技球の払い出しに関する制御を行う払出制御部400と、遊技球の発射制御を行う発射制御部450と、パチンコ機100に供給される電源を、パチンコ機100に搭載した電気部品に送電するための所定の電力を生成する電源管理部500によって構成している。
<主制御部>
まず、パチンコ機100の主制御部300について説明する。
主制御部300は、主制御部300の全体を制御する基本回路302を備えており、この基本回路302には、CPU304と、CPUの遊技制御内容を記述した制御プログラムや各種データを記憶するためのROM306と、一時的にデータを記憶するためのRAM308と、各種デバイスの入出力を制御するためのI/O310と、時間や回数などを計測するためのカウンタタイマ312と、CPU304の動作を監視して、基本回路302が出力する制御信号を所定時間(本実施例では32.8ms)受信しなかった場合に制御回路302に初期化信号を送信するためのウォッチドッグタイマ(WDT)313と、を搭載している。
また、基本回路302には、後述するセンサ回路320、表示回路322、表示回路324、ソレノイド回路332、カウンタ回路316を構成するカウンタ、情報出力回路334などの周辺デバイスに対する入出力(I/OマップドI/O)を制御するためのアドレスデコード回路351が塔載されている。
主制御部300のCPU304の各部、特に基本回路302と周辺デバイス、あるいは後述の払出制御部400、演出制御部350などとの間の接続には、システムバス(アドレスバス/データバス)と接続した出力ドライバIC・コネクタなどが用いられる。周辺デバイスに対するI/OマップドI/Oには、アドレスデコード回路351の制御が介在することになる。
なお、上記のROM306やRAM308については他の記憶手段を用いてもよく、この点は後述する演出制御部350や払出制御部400についても同様である。この基本回路302のCPU304は、水晶発信器314bが出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、主制御部300には、水晶発信器314aが出力するクロック信号を受信する度に0〜65535の範囲で数値を変動させるハードウェア乱数カウンタとして使用するカウンタ回路316(この回路には、第1、第2の特図始動口への入賞をそれぞれ後述のように処理するための2つのカウンタ回路316a、316bを内蔵しているものとする)と、ガラス枠151の開放/閉鎖を検出するガラス枠開放センサ、前枠の開放/閉鎖を検出する前枠開放センサ、下皿150が球で一杯になったことを検出する下皿満タンセンサ、各始動口、入賞口の入り口および可変入賞口の内部に設けた球検出センサなどを含む各種センサ318が出力する信号を受信し、増幅結果や基準電圧との比較結果をカウンタ回路316および基本回路302に出力するためのセンサ回路320と、特図表示装置114の表示制御を行うための表示回路322と、普図表示装置112の表示制御を行うための表示回路324と、各種状態表示部326(普図保留ランプ116、特図保留ランプ118、高確中ランプ118など)の表示制御を行うための表示回路328と、第2特別始動口1280や可変入賞口130などを開閉駆動する各種ソレノイド330を制御するためのソレノイド回路332を設けている。
なお、第1特図始動口126に球が入賞したことを球検出センサ318が検出した場合には、センサ回路320は球を検出したことを示す信号をカウンタ回路316に出力する。この信号を受信したカウンタ回路316は、第1特図始動口126に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第1特図始動口126に対応する内蔵のカウンタ値記憶用レジスタ(カウンタ回路316a)に記憶する。また、カウンタ回路316は、第2特図始動口128に球が入賞したことを示す信号を受信した場合も同様に、第2特図始動口128に対応するカウンタのそのタイミングにおける値をラッチし、ラッチした値を、第2特図始動口128に対応する内蔵のカウンタ値記憶用レジスタ(カウンタ回路316b)に記憶する。
さらに、主制御部300には、情報出力回路334を設けており、主制御部300は、この情報出力回路334を介して、外部のホールコンピュータ(図示省略)などが備える情報入力回路550にパチンコ機100の遊技情報(例えば、遊技状態)を出力する。
また、主制御部300には、電源管理部500から主制御部300に供給している電源の電圧値を監視する電圧監視回路336を設けており、この電圧監視回路336は、電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を基本回路302に出力する。
また、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)338を設けており、CPU304は、この起動信号出力回路338から起動信号を入力した場合に、遊技制御を開始する(後述する主制御部リセット割り込み処理を開始する)。ここでは起動信号送信回路338に供給される電力の電圧値が所定の値を超えた場合に、該基本回路302に起動信号を出力するようにしている。基本回路302など電気部品・電気回路が充分に動作できるだけの電力が該基本回路302に供給されている場合に、起動信号送信回路338に供給される電力の電圧値が所定の値を超えるように主制御部300の回路を構成している。
また、主制御部300には、演出制御部350にコマンドを送信するための出力インターフェイスと、払出制御部400にコマンドを送信するための出力インターフェイスをそれぞれ設けており、演出制御部350には、主制御部300からコマンドを受信するための入力インターフェイスを設け、払出制御部400には、主制御部300からコマンドを受信するための入力インターフェイスを設けている。この構成により、主制御部300と、演出制御部350および払出制御部400との通信を可能としている。なお、主制御部300と演出制御部350および払出制御部400との情報通信は一方向の通信であり、主制御部300は演出制御部350および払出制御部400にコマンドなどの信号を送信できるように構成しているが、演出制御部350および払出制御部400からは主制御部300にコマンドなどの信号を送信できないように構成している。
<払出制御部>
次に、パチンコ機100の払出制御部400について説明する。
払出制御部400は、主に主制御部300が送信したコマンドなどに基づいて払出制御部400の全体を制御する基本回路402を備えており、この基本回路402には、CPU404と、制御プログラムや各種データを記憶するためのROM406と、一時的にデータを記憶するためのRAM408と、各種デバイスの入出力を制御するためのI/O410と、時間や回数などを計測するためのカウンタタイマ412を搭載している。この基本回路402のCPU404は、水晶発信器414が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路402には、払出装置154に設けた払出センサ158を含む各種センサ428が出力する信号を受信するためのセンサ回路420と、各種ランプ430の表示制御を行うための表示回路422と、払出装置154に設けたスプロケット157を回転駆動するためのモータ制御回路424と、を接続している。
さらに、払出制御部400には、CRインターフェース部163を接続しており、払出制御部400は、このCRインターフェイス部163を介して、パチンコ機100とは別体で設けられたカードユニット552との通信を行うと共に、球貸し操作部407から入力する操作信号を検出する。
また、払出制御部400には、電源管理部500から払出制御部400に供給している電源の電圧値を監視する電圧監視回路426を設けており、この電圧監視回路426は、電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を基本回路402に出力する。
また、払出制御部400には、電源が投入されると起動信号(リセット信号)を出力する、図示しない起動信号出力回路(リセット信号出力回路)を設けており、CPU404は、この起動信号出力回路から起動信号を入力した場合に、払出制御を開始する(後述する払出制御部リセット割り込み処理を開始する)。
<発射制御部、電源管理部>
次に、パチンコ機100の発射制御部450、電源管理部500について説明する。
発射制御部450は、払出制御部400が出力する、発射許可または停止を指示する制御信号や、操作ハンドル148内に設けた発射強度出力回路が出力する、遊技者による発射ハンドル148の操作量に応じた発射強度を指示する制御信号に基づいて、発射杆138および発射槌140を駆動する発射モータ452の制御や、貯留皿144から発射レール142に球を供給する球送り装置454の制御を行う。
電源管理部500は、パチンコ機100に外部から供給される交流電源を直流化し、所定の電圧に変換して主制御部300、払出制御部400などの各制御部や払出装置154などの各装置に供給する。さらに、電源管理部500は、外部からの電源が断たれた後も所定の部品(例えば主制御部300のRAM308など)に所定の期間(例えば10日間)電力を供給するための蓄電装置(例えばコンデンサ)と、この蓄電装置よりも静電容量が小さく、所定の部品(例えば主制御部300の基本回路302全体)に供給している電力が、静電気ノイズ、人的なミス、遊技台に供給される電力の低下などが原因で変動し、低下している場合に、ある程度の電力を補うための蓄電装置(例えばコンデンサ)をさらに備えている。この蓄電装置により、所定の部品(例えば主制御部300)に供給される電力が電断時、復電時などに不安定になっても、ある程度安定してその所定の部品は動作できるように構成している。また、電源基板162には遊技店の店員などが操作可能な操作部(RAMクリアスイッチ)を備えており、電源投入時にこの操作部が操作されていることを検出した場合には、主制御部300の基本回路302および払出制御部400の基本回路402にRAM308、408を初期化することを指令するRAMクリア信号を出力するようにしている。
<演出制御部>
次に、図5を用いて、パチンコ機100の演出制御部350について説明する。
演出制御部350は、主に主制御部300が送信したコマンドなどに基づいて演出制御部350の全体を制御する基本回路352を備えており、この基本回路352には、CPU354と、制御プログラムや各種データを記憶するためのROM356と、一時的にデータを記憶するためのRAM358と、各種デバイスの入出力を制御するためのI/O360と、時間や回数などを計測するためのカウンタタイマ362を搭載している。この基本回路352のCPU354は、水晶発信器364が出力する所定周期のクロック信号をシステムクロックとして入力して動作する。
また、基本回路352には、スピーカ366(およびアンプ)の制御を行うための音源IC368と、各種ランプ370の制御を行うための表示回路372と、ステッピングモータ376の制御を行うためのモータ制御回路378と、装飾図柄表示装置(液晶表示装置)110およびこの装飾図柄表示装置110の前面に開閉自在に配設したシャッタデバイス373の制御を行うための液晶制御回路374と、チャンスボタン146の操作を検出した場合に基本回路352に検出信号を出力するチャンスボタン検出回路146aを接続している。
また、演出制御部350には、電源が投入されると起動信号(リセット信号)を出力する、図示しない起動信号出力回路(リセット信号出力回路)を設けており、CPU354は、この起動信号出力回路から起動信号を入力した場合に、演出制御を開始する。
<遊技制御用マイコン>
図4および図5に主制御部300、払出制御部400、演出制御部350の基本回路302、402、352などとして示した制御回路は、遊技制御装置、いわゆる遊技制御用マイコンとして1チップのLSIないしASICとして構成することができる。
図6は、本実施例の遊技制御用マイコン、特に、主制御部300の基本回路302として好適な遊技制御用マイコン600の構成を示している。図6の遊技制御用マイコン600の構成部材には600番台の参照符号を用いているが、上述の基本回路302、402、352などと共通する構成部材には、1および10桁が共通する600番台の参照符号を用いている。
図6において、符号604はCPUで、汎用のマイクロプロセッサと互換性のある命令セットが用いられる。CPU604の実行するプログラム、特に電源投入やリセット後の起動フェーズで実行される後述のプログラムは内蔵ROM606に格納され、CPU604のプログラム実行に際しては内蔵RAM608がワークエリアとして用いられる。
さらに、遊技制御用マイコン600には、図示のように、外部バスインターフェース610、クロック回路611、乱数回路614、タイマ回路612、パラレル入出力制御回路617、シリアル入出力制御回路618、アドレスデコード回路651、ウォッチドッグタイマ613が設けられている。これらの各ブロックの主な機能については、上述の通りである。
図6の遊技制御用マイコン600には、保安上の観点から、指定エリア外走行禁止回路619、照合用ブロック620が設けられている。
指定エリア外走行禁止回路619は、ハードウェア的な手段によって、プログラムが正当な指定エリア以外のメモリ領域のコードを実行しないように制御するためのものである。指定エリア外走行が発生すると、指定エリア外走行禁止回路619は指定エリア外走行禁止信号(IAT)を発生し、この信号によりリセット割り込みコントローラ615がユーザリセット割り込みを発生させる。この割り込みにより遊技制御用マイコン600は内蔵のレジスタなどを初期状態に設定するとともに、上述の内蔵ROM606に格納しているプログラムの実行を再度最初の制御処理から開始するようにしている。
なお、リセット割り込みコントローラ615は、遊技制御用マイコン600のリセット端子(不図示)にリセット信号が入力された時、所定の制御端子(たとえばPGM端子など:不図示)のレベルに応じてシステムリセット割り込みを発生させる。システムリセットの場合には、後述のセキュリティチェック処理が実行される。
照合用ブロック620には、内蔵ROM606などに格納したソフトウェアや制御データのチェックサムやCRCなどの照合用のデータを格納しておく。これらの照合データは、遊技台の起動時などの適当なタイミングでソフトウェアや制御データの照合に用いる他、遊技制御用マイコン600に照合用端子を設け、該端子に特定の外部装置の端子を電気的に接続し、その特定の外部装置が上述の照合データを読み取り、接続中の遊技台が正規の遊技台か否かをチェック可能にしてもよい。この照合用ブロック620(あるいは内蔵ROM606など)には、あるいはさらに、遊技台1台1台に固有の識別情報(ID番号など)を格納しておいてもよい。この遊技台の固有識別情報は、後述の時間変動制御に利用することができる。
本実施例の遊技制御用マイコン600では、さらに、後述のリセットないし電源投入後のCPUの処理開始タイミングを変動させる時間変動制御を行うための時間変動用回路616を1チップのマイコン内部に収容している。このように本発明に係わる時間変動用回路616を遊技制御用マイコン600のチップ内に収容、ブラックボックス化することによって、リバースエンジニアリングを難しくし、後述の時間変動制御を阻止することや、大当たりなど遊技者の有利な状態の抽選・決定制御方法に関する解析を困難にでき、不正遊技に対する強度を大きく向上することができる。
<主制御部メイン処理>
次に、図7を用いて、主制御部300のCPU304が実行する主制御部メイン処理、主にCPU304がリセット割り込みに応じて実行するリセット割り込み処理について説明する。図7はこの主制御部リセット割り込み処理の流れを示すフローチャートである。
上述したように、主制御部300には、電源が投入されると起動信号(リセット信号)を出力する起動信号出力回路(リセット信号出力回路)338を設けている。この起動信号を入力した基本回路302のCPU304は、リセット割り込みによりリセットスタートしてROM306に予め記憶している制御プログラムに従って処理を実行する。またウォッチドッグタイマ(WDT)313が出力する初期化信号を基本回路302が入力した場合も同様に、リセット割り込みによりリセットスタートするように構成している。
ステップS701では、初期設定1を行う。この初期設定1では、CPU304のスタックポインタ(SP)へのスタック初期値の設定、割り込みマスクの設定、I/Oポート310の初期設定、RAM308に記憶する各種変数の初期設定、WDT313への初期値の設定などを行う。なお、本実施例では、WDT313に、初期値として32.8msに相当する数値を設定する。
ステップS702では、WDT313のリセットを行い、WDT313による時間計測を再始動する。
ステップS703では、低電圧信号がオンであるか否か、すなわち、電圧監視回路336が、電源管理部500から主制御部300に供給している電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(CPU304が電源の遮断を検知した場合)にはステップS702に戻り、低電圧信号がオフの場合(CPU304が電源の遮断を検知していない場合)にはステップS704に進む。
ステップS704では、初期設定2を行う。この初期設定2では、後述する主制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマ312に設定する処理、I/O310の所定のポート(例えば試験用出力ポート、演出制御部350への出力ポート)からクリア信号を出力する処理、RAM308への書き込みを許可する設定などを行う。
ステップS705では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(主制御部300の基本回路302を初期状態にする場合)にはステップS708に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS708に進む。
具体的には、最初に、電源基板に設けた操作部を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、基本回路302を初期状態にすべくステップS708に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)は、RAM308に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、基本回路302を初期状態にすべくステップS708に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が特定の値(例えば0)の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS707に進み、チェックサムの結果が特定の値(例えば0)以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS708に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS708に進む。
ステップS707では、復電時処理を行う。この復電時処理では、電断時にRAM308に設けられたスタックポインタ退避領域に記憶しておいたスタックポインタを読み出し、スタックポインタに再設定する。また、電断時にRAM308に設けられたレジスタ退避領域に記憶しておいた各レジスタの値を読み出し、各レジスタに再設定した後、割り込み許可の設定を行う。以降、CPU304が、再設定後のスタックポインタやレジスタに基づいて制御プログラムを実行する結果、パチンコ機100は電源断時の状態に復帰する。すなわち、電断直前にタイマ割り込み処理(後述)に分岐する直前に行った(ステップS710、ステップS711内の所定の)命令の次の命令から処理を再開する。
ステップS708では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、RAM308の全ての記憶領域の初期化などを行う。
ステップS710では、割り込み禁止の設定を行った後、基本乱数初期値更新処理を行う。この基本乱数初期値更新処理では、普図当選乱数カウンタ、および特図乱数値カウンタの初期値をそれぞれ生成するための2つの初期値生成用乱数カウンタと、普図タイマ乱数値、特図タイマ乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図タイマ乱数値として取り得る数値範囲が0〜20とすると、RAM308に設けた普図タイマ乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が21であれば0を元の乱数カウンタ記憶領域に記憶する。他の初期値生成用乱数カウンタ、乱数カウンタもそれぞれ同様に更新する。また、この基本乱数初期値更新処理の終了後に割り込み許可の設定を行ってステップS711に進む。
なお、上記各乱数カウンタとしては、図4のカウンタ回路316を用いる。また、上記各乱数カウンタのうち、特に特図乱数値カウンタは、上述、ないし後述する大当りカウンタを構成するものであって、CPU304がユーザモード(後述)に入り、上記のステップS710に示したように上記各乱数カウンタをスタートさせる時期は、ほぼ一定、したがって、CPU304がユーザモードに入った時点から、乱数カウンタの値を抽出した時にその値が大当りに相当する値となっているタイミングもほぼ一定である。
ステップS711では、演出乱数更新処理を行う。この演出乱数更新処理では、主制御部300で使用する演出用乱数値を生成するための乱数カウンタを更新する。
主制御部300は、所定の周期ごとに開始するタイマ割り込み処理を行っている間を除いて、ステップS710およびS711の処理を繰り返し実行する。
<主制御部タイマ割り込み処理>
次に、図8を用いて、主制御部300のCPU304が実行する主制御部タイマ割り込み処理について説明する。図8は主制御部タイマ割り込み処理の流れを示すフローチャートである。
主制御部300は、所定の周期(本実施例では約2msに1回)でタイマ割り込み信号を発生するカウンタ・タイマ312を備えており、このタイマ割り込み信号を契機として主制御部タイマ割り込み処理を所定の周期で開始する。
ステップS801では、タイマ割り込みスタート処理を行う。このタイマ割り込みスタート処理では、CPU304の各レジスタの値をスタック領域に一時的に退避する処理などを行う。
ステップS802では、WDT313のカウント値が初期設定値(本実施例では32.8ms)を超えてWDT割り込みが発生しないように(処理の異常を検出しないように)、WDTを定期的に(本実施例では、主制御部タイマ割り込みの周期である約2msに1回)リスタートを行う。
ステップS803では、入力ポート状態更新処理を行う。この入力ポート状態更新処理では、I/O310の入力ポートを介して、上述のガラス枠開放センサ、前枠開放センサ、下皿満タンセンサ、複数の球検出センサを含む各種センサ318の検出信号を入力して検出信号の有無を監視し、RAM308に各種センサ318ごとに区画して設けた信号状態記憶領域に記憶する。本実施例では、前々回のタイマ割り込み処理(約4ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた前回検出信号記憶領域から読み出し、この情報をRAM308に各々の球検出センサごとに区画して設けた前々回検出信号記憶領域に記憶し、前回のタイマ割り込み処理(約2ms前)で検出した各々の球検出センサの検出信号の有無の情報を、RAM308に各々の球検出センサごとに区画して設けた今回検出信号記憶領域から読み出し、この情報を上述の前回検出信号記憶領域に記憶する。また、今回検出した各々の球検出センサの検出信号を、上述の今回検出信号記憶領域に記憶する。
また、ステップS803では、上述の前々回検出信号記領域、前回検出信号記領域、および今回検出信号記領域の各記憶領域に記憶した各々の球検出センサの検出信号の有無の情報を比較し、各々の球検出センサにおける過去3回分の検出信号の有無の情報が一致するか否かを判定する。そして、各々の球検出センサにおいて過去3回分の検出信号の有無の情報が、予め定めた入賞判定パターン情報(本実施例では、前々回検出信号無し、前回検出信号有り、今回検出信号有りであることを示す情報)と一致した場合に、入賞口(一般入賞口122、可変入賞口130)や始動口(第1特図始動口126、第2特図始動口128)への入球、または普図始動口124の通過があったと判定する。例えば、一般入賞口122への入球を検出する球検出センサにおいて過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致した場合には、一般入賞口122へ入球したと判定し、以降の一般入賞口122への入球に伴う処理を行うが、過去3回分の検出信号の有無の情報が上述の入賞判定パターン情報と一致しなかった場合には、以降の一般入賞口122への入球に伴う処理を行わずに後続の処理に分岐する。
ステップS804およびステップS805では、基本乱数初期値更新処理および基本乱数更新処理を行う。これらの基本乱数初期値更新処理および基本乱数更新処理では、上記ステップS710で行った初期値生成用乱数カウンタの値の更新を行い、次に主制御部300で使用する普図当選乱数値および特図乱数値をそれぞれ生成するための2つの乱数カウンタを更新する。例えば、普図当選乱数値として取り得る数値範囲が0〜100とすると、RAM308に設けた普図当選乱数値を生成するための乱数カウンタ記憶領域から値を取得し、取得した値に1を加算してから元の乱数カウンタ記憶領域に記憶する。このとき、取得した値に1を加算した結果が101であれば0を元の乱数カウンタ記憶領域に記憶する。また、取得した値に1を加算した結果、乱数カウンタが一周していると判定した場合にはそれぞれの乱数カウンタに対応する初期値生成用乱数カウンタの値を取得し、乱数カウンタの記憶領域にセットする。例えば、0〜100の数値範囲で変動する普図当選乱数値生成用の乱数カウンタから値を取得し、取得した値に1を加算した結果が、RAM308に設けた所定の初期値記憶領域に記憶している前回設定した初期値と等しい値(例えば7)である場合に、普図当選乱数値生成用の乱数カウンタに対応する初期値生成用乱数カウンタから値を初期値として取得し、普図当選乱数値生成用の乱数カウンタにセットすると共に、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するために、今回設定した初期値を上述の初期値記憶領域に記憶しておく。なお、普図当選乱数値生成用の乱数カウンタが次に1周したことを判定するための上述の初期値記憶領域とは別に、特図乱数生成用の乱数カウンタが1周したことを判定するための初期値記憶領域をRAM308に設けている。
ステップS808では、タイマ更新処理を行う。詳細は後述するが、このタイマ更新処理では、普通図柄表示装置112に図柄を変動・停止表示する時間を計時するための普図表示図柄更新タイマ、特別図柄表示装置114に図柄を変動・停止表示する時間を計時するための特図表示図柄更新タイマ、所定の入賞演出時間、所定の開放時間、所定の閉鎖時間、所定の終了演出期間などを計時するためのタイマなどを含む各種タイマを更新する。
ステップS809では、入賞口カウンタ更新処理を行う。この入賞口カウンタ更新処理では、入賞口(一般入賞口122、第1、第2特図始動口126、128、および可変入賞口130)に入賞(入球)があった場合に、RAM308に各入賞口ごとに設けた賞球数記憶領域の値を読み出し、1を加算して、元の賞球数記憶領域に設定する。
また、ステップS810では、入賞受付処理を行う。この入賞受付処理では、第1、第2特図始動口126、128に入賞があり、且つ、保留している特図変動遊技の数が4未満である場合には、入賞した始動口に対応するカウンタ回路316bのカウンタ値記憶用レジスタから値を特図当選乱数値として取得する。また、上述の特図乱数値生成用の乱数カウンタから値を特図乱数値として取得し、RAM308に設けた乱数値記憶領域に特図当選乱数値と共に記憶する。また、普図始動口124を球が通過したことを検出し、且つ、保留している普図変動遊技の数が2未満の場合には、そのタイミングにおける普図当選乱数値生成用の乱数カウンタの値を普図当選乱数値として取得し、RAM308に設けた上述の特図用とは別の乱数値記憶領域に記憶する。また、この入賞受付処理では、所定の球検出センサにより第1、第2特図始動口126、128、普図始動口124、または可変入賞口の入賞(入球)を検出した場合に、演出制御部350に送信すべき送信情報に、第1、第2特図始動口126、128、普図始動口124、および可変入賞口の入賞(入球)の有無を示す入賞受付情報を設定する。
ステップS811では、払出要求数送信処理を行う(詳細は後述する)。なお、払出制御部400に出力する出力予定情報および払出要求情報は1バイトで構成しており、ビット7にストローブ情報(オンの場合、データをセットしていることを示す)、ビット6に電源投入情報(オンの場合、電源投入後一回目のコマンド送信であることを示す)、ビット4〜5に今回加工種別(0〜3)、およびビット0〜3に加工後の払出要求数を示すようにしている。
ステップS812では、普図状態更新処理を行う。この普図状態更新処理は、普図の状態に対応する複数の処理のうちの1つの処理を行う。例えば、普図変動中(後述する普図汎用タイマの値が1以上)における普図状態更新処理では、普図表示装置112を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、普図変動表示時間が経過したタイミング(普図表示図柄更新タイマの値が1から0になったタイミング)における普図状態更新処理では、当りフラグがオンの場合には、図3(c)に示す普図1の態様となるように普図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行い、当りフラグがオフの場合には、図3(c)に示す普図2の態様となるように普図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた普図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により普図の停止表示を行い、普図変動遊技の結果を遊技者に報知するようにしている。
また、所定の停止表示期間が終了したタイミング(普図停止時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、当りフラグがオンの場合には、所定の開放期間(例えば2秒間)、第2特図始動口128の羽根部材の開閉駆動用のソレノイド330に、羽根部材を開放状態に保持する信号を出力するとともに、RAM308に設けた羽根開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。
また、所定の開放期間が終了したタイミング(羽根開放時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、所定の閉鎖期間(例えば500m秒間)、羽根部材の開閉駆動用のソレノイド330に、羽根部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた羽根閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。
また、所定の閉鎖期間を経過したタイミング(羽根閉鎖時間管理用タイマの値が1から0になったタイミング)で開始する普図状態更新処理では、普図の状態を非作動中に設定する。普図の状態が非作動中の場合における普図状態更新処理では、何もせずに次のステップS813に移行するようにしている。
ステップS813では、普図関連抽選処理を行う。この普図関連抽選処理では、普図変動遊技および第2特図始動口128の開閉制御を行っておらず(普図の状態が非作動中)、且つ、保留している普図変動遊技の数が1以上である場合に、上述の乱数値記憶領域に記憶している普図当選乱数値に基づいた乱数抽選により普図変動遊技の結果を当選とするか、不当選とするかを決定する当り判定をおこない、当選とする場合にはRAM308に設けた当りフラグにオンを設定する。不当選の場合には、当りフラグにオフを設定する。また、当り判定の結果に関わらず、次に上述の普図タイマ乱数値生成用の乱数カウンタの値を普図タイマ乱数値として取得し、取得した普図タイマ乱数値に基づいて複数の変動時間のうちから普図表示装置112に普図を変動表示する時間を1つ選択し、この変動表示時間を、普図変動表示時間として、RAM308に設けた普図変動時間記憶領域に記憶する。なお、保留している普図変動遊技の数は、RAM308に設けた普図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している普図変動遊技の数から1を減算した値を、この普図保留数記憶領域に記憶し直すようにしている。また当り判定に使用した乱数値を消去する。
ステップS814では、特図状態更新処理を行う。この特図状態更新処理は、特図の状態に応じて、次の8つの処理のうちの1つの処理を行う。例えば、特図変動中(後述する特図汎用タイマの値が1以上)における特図状態更新処理では、特図表示装置114を構成する7セグメントLEDの点灯と消灯を繰り返す点灯・消灯駆動制御を行う。
また、特図変動表示時間が経過したタイミング(特図表示図柄更新タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当りフラグがオンで確変フラグがオンの場合には特図表示装置114に図3(a)に示す特図1、大当りフラグがオンで確変フラグがオフの場合には特図表示装置114に図3(a)に示す特図2、大当りフラグがオフの場合には、図3(a)に示す特図3の態様となるように特図表示装置112を構成する7セグメントLEDの点灯・消灯駆動制御を行うと共に、その後、所定の停止表示期間(例えば500m秒間)その表示を維持するためにRAM308に設けた特図停止時間管理用タイマの記憶領域に停止期間を示す情報を設定する。この設定により特図の停止表示をおこない、特図変動遊技の結果を遊技者に報知するようにしている。また、コマンド設定送信処理(ステップS816)で一般コマンド回転停止設定送信処理を実行させるために上述の送信情報記憶領域に02Hを送信情報(一般情報)として追加記憶する。
また、所定の停止表示期間が終了したタイミング(特図停止時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、大当りフラグがオンの場合には、所定の入賞演出期間(例えば3秒間)すなわち装飾図柄表示装置110による大当りを開始することを遊技者に報知する画像を表示している期間待機するためにRAM308に設けた特図待機時間管理用タイマの記憶領域に入賞演出期間を示す情報を設定する。また、コマンド設定送信処理(ステップS816)で一般コマンド入賞演出設定送信処理を実行させるために上述の送信情報記憶領域に04Hを送信情報(一般情報)として追加記憶する。
また、所定の入賞演出期間が終了したタイミング(特図待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の開放期間(例えば29秒間、または可変入賞口130に所定球数(例えば10球)の遊技球の入賞を検出するまで)可変入賞口130の扉部材の開閉駆動用のソレノイド330に、扉部材を開放状態に保持する信号を出力するとともに、RAM308に設けた扉開放時間管理用タイマの記憶領域に開放期間を示す情報を設定する。また、コマンド設定送信処理(ステップS816)で一般コマンド大入賞口開放設定送信処理を実行させるために上述の送信情報記憶領域に10Hを送信情報(一般情報)として追加記憶する。
また、所定の開放期間が終了したタイミング(扉開放時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、所定の閉鎖期間(例えば1.5秒間)可変入賞口130の扉部材の開閉駆動用のソレノイド330に、扉部材を閉鎖状態に保持する信号を出力するとともに、RAM308に設けた扉閉鎖時間管理用タイマの記憶領域に閉鎖期間を示す情報を設定する。また、コマンド設定送信処理(ステップS816)で一般コマンド大入賞口閉鎖設定送信処理を実行させるために上述の送信情報記憶領域に20Hを送信情報(一般情報)として追加記憶する。
また、この扉部材の開放・閉鎖制御を所定回数(例えば15ラウンド)繰り返し、終了したタイミングで開始する特図状態更新処理では、所定の終了演出期間(例えば3秒間)すなわち装飾図柄表示装置110による大当りを終了することを遊技者に報知する画像を表示している期間待機するように設定するためにRAM308に設けた演出待機時間管理用タイマの記憶領域に演出待機期間を示す情報を設定する。また、コマンド設定送信処理(ステップS816)で一般コマンド終了演出設定送信処理を実行させるために上述の送信情報記憶領域に08Hを送信情報(一般情報)として追加記憶する。
また、所定の終了演出期間が終了したタイミング(演出待機時間管理用タイマの値が1から0になったタイミング)で開始する特図状態更新処理では、特図の状態を非作動中に設定する。特図の状態が非作動中の場合における特図状態更新処理では、何もせずに次のステップS815に移行するようにしている。
ステップS815では、特図関連抽選処理を行う。この特図関連抽選処理では、特図変動遊技および可変入賞口130の開閉制御を行っておらず(特図の状態が非作動中)、且つ、保留している特図変動遊技の数が1以上である場合に、主制御部300のROM306にあらかじめ格納されている大当り判定テーブル、高確率状態移行判定テーブル、タイマ番号決定テーブル(いずれも不図示)などを使用した各種抽選のうち、最初に大当り判定を行う。具体的には、ステップS810で乱数値記憶領域に記憶した特図当選乱数値が、大当り判定テーブルの第1特図始動口用抽選データの数値範囲であるか否かを判定し、特図当選乱数値が第1特図始動口用抽選データの数値範囲である場合には、特図変動遊技の当選と判定してRAM308に設けた大当りフラグの格納領域に大当りとなることを示す情報を設定する(ここで、大当りの情報をRAM308に設定することを大当りフラグをオンに設定するという)。一方、特図当選乱数値が第1特図始動口用抽選データの数値範囲以外である場合には、特図変動遊技の外れと判定してRAM308に設けた大当りフラグの格納領域に外れとなることを示す情報を設定する(ここで、外れの情報をRAM308に設定することを大当りフラグをオフに設定するという)。なお、保留している特図変動遊技の数は、RAM308に設けた特図保留数記憶領域に記憶するようにしており、当り判定をするたびに、保留している特図変動遊技の数から1を減算した値を、この特図保留数記憶領域に記憶し直すようにしている。また、当り判定に使用した乱数値を消去する。
具体例としては、遊技状態が低確率状態の場合に、第1特図始動口126への球入賞の検出に基づいて取得した特図当選乱数値が10001以上10145以下の場合に大当たりフラグをオン(大当たりを実行することを決定)するように上述の大当たり判定テーブルを構成している。すなわちこのテーブルの設定により大当たりフラグがオンになる確率は145/65536(約1/449)となる。ここで遊技状態が低確率状態であり、第1特図始動口126への球入賞の検出に基づいて取得した特図当選乱数値が10100の場合は大当りフラグをオンに設定し、特図当選乱数値が10200の場合は大当りフラグをオフに設定する。
大当りフラグにオンを設定した場合には、次に確変移行判定を行う。具体的には、ステップS810で乱数値記憶領域に記憶した特図乱数値が、高確率状態移行判定テーブルの移行判定乱数の数値範囲であるか否かを判定し、特図乱数値が抽選データの数値範囲である場合には、RAM308に設けた確変(確率変動)フラグの格納領域に、特別大当り遊技を開始することを示す情報を設定する。(ここで、特別大当り遊技開始の情報をRAM308に設定することを確変フラグをオンに設定するという)。一方、特図乱数値が抽選データの数値範囲以外である場合には、上述の確変フラグの格納領域に、大当り遊技を開始することを示す情報を設定する(ここで、大当り遊技開始の情報をRAM308に設定することを確変フラグをオフに設定するという)。例えば、高確率状態移行判定テーブルの移行判定乱数の数値範囲として11以上74以下といった数値範囲を記憶しており、また特図乱数値の取り得る数値範囲が0〜127であるとすると、取得した特図乱数値が20の場合には確変フラグをオンに設定する。一方、取得した特図乱数値が特図乱数値が80の場合には確変フラグをオフに設定する。
大当り判定の結果に関わらず、次にタイマ番号を決定する処理を行う。具体的には、上述の特図タイマ乱数値生成用の乱数カウンタの値を特図タイマ乱数値として取得する。大当りフラグの値、および取得した特図タイマ乱数値を含むタイマ番号決定テーブルのタイマ乱数の数値範囲に対応するタイマ番号を選択し、RAM308に設けた所定のタイマ番号格納領域に記憶する。さらに、そのタイマ番号に対応する変動時間を、特図変動表示時間として、上述の特図表示図柄更新タイマに記憶し、コマンド設定送信処理(ステップS816)で一般コマンド回転開始設定送信処理を実行させるために上述の送信情報記憶領域に01Hを送信情報(一般情報)として追加記憶してから処理を終了する。
ステップS816では、コマンド設定送信処理を行う(詳細は後述する)。なお、演出制御部350に送信する出力予定情報は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・各種ランプ370・スピーカ366に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド終了演出設定送信処理では、コマンド種別に06H、コマンドデータにRAM308に記憶している演出待機期間中に装飾図柄表示装置110・各種ランプ370・スピーカ366に出力する演出制御情報、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口開放設定送信処理では、コマンド種別に07H、コマンドデータにRAM308に記憶している大当りラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。上述の一般コマンド大入賞口閉鎖設定送信処理では、コマンド種別に08H、コマンドデータにRAM308に記憶している大当りラウンド数、確変フラグの値、保留している特図変動遊技の数などを示す情報を設定する。演出制御部350では、受信した出力予定情報に含まれるコマンド種別により、主制御部300における遊技制御の変化に応じた演出制御の決定が可能になるとともに、出力予定情報に含まれているコマンドデータの情報に基づいて、演出制御内容を決定することができるようになる。
ステップS817では、外部出力信号設定処理を行う。この外部出力信号設定処理では、RAM308に記憶している遊技情報を、情報出力回路334を介してパチンコ機100とは別体の情報入力回路550に出力する。
ステップS820では、デバイス監視処理を行う。このデバイス監視処理では、ステップ303において信号状態記憶領域に記憶した各種センサの信号状態を読み出して、ガラス枠開放エラーの有無、前枠開放エラーの有無、または下皿満タンエラーの有無などを監視し、ガラス枠開放エラー、前枠開放エラー、または下皿満タンエラーを検出した場合に、演出制御部350に送信すべき送信情報に、ガラス枠開放エラーの有無、前枠開放エラーの有無、下皿満タンエラーの有無を示すデバイス情報を設定する。また、各種ソレノイド330を駆動して第2特図始動口128や、可変入賞口130の開閉を制御したり、表示回路322、324、328を介して普図表示装置112、特図表示装置114、各種状態表示部326などに出力する表示データを、I/O310の出力ポートに設定する。また、払出要求数送信処理(ステップS811)で設定した出力予定情報を出力ポート310を介して演出制御部350に出力する。
ステップS821では、低電圧信号がオンであるか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS824に進み、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS822に進む。
ステップS822では、タイマ割り込みエンド処理を行う。このタイマ割り込みエンド処理では、ステップS801で一時的に退避した各レジスタの値を元の各レジスタに設定したり、割り込み許可の設定などを行う。
ステップS824では、電断時処理を行う。この電断時処理では、上述のスタックポインタ退避領域に現在のスタックポインタの値を記憶し、上述の電源ステータス記憶領域にサスペンドを示す情報を設定する。また、RAM308の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算し、チェックサム算出用数値記憶領域に記憶している値からその加算した結果を減算した値をチェックサム(電断時チェックサム)として算出し、算出した電断時チェックサムを上述のチェックサム算出用数値記憶領域に記憶し、RAM308への書き込みを禁止する設定を行った後、無限ループとなる。
<演出制御部メイン処理>
次に、図9(a)を用いて演出制御部350のCPU354が実行する演出制御部メイン処理について説明する。図9(a)は、演出制御部350のCPU354が実行する演出制御部メイン処理の流れを示している。
演出制御部350には、電源が投入されるとリセット信号を出力するリセット信号出力回路(不図示)を設けている。このリセット信号を入力した基本回路352のCPU354は、リセット割り込みによりリセットスタートしてROM356に予め記憶した制御プログラムに従って処理を実行し、まず、ステップS901で各種の初期設定を行う。この初期設定では、入出力ポートの初期設定や、各種変数の初期化などを行う。
ステップS902では、後述のコマンド入力処理を行う。
ステップS903では、I/O360の出力ポートを介して液晶制御回路374にコマンドを出力する。演出制御部350は、ストローブ処理または演出制御部タイマ割り込み処理による中断を除いて、これ以降、ステップ9302およびS903の処理を繰り返し実行する。
<コマンド入力処理>
ここで、図9(d)を用いて、上記の演出制御部メイン処理におけるコマンド入力処理(ステップS902)について説明する。同図は演出制御部350のCPU354が実行するコマンド入力処理の流れを示すフローチャートである。
基本回路352のRAM358内に割り当ててあるコマンド記憶領域には、以下に示す主基板割り込み処理によって主制御部300から送信された演出制御コマンドを格納するが、図9(d)のステップS909では、RAM358内のコマンド記憶領域の内容を確認し、未処理のコマンドが残っているか否かを判断する。
ステップS909においてコマンド記憶領域に未処理のコマンドが残っている場合にはステップS910に進み、コマンド記憶領域に未処理のコマンドが残っていない場合には処理を終了して演出制御部メイン処理に復帰する。
<主基板割り込み処理>
次に、図9(c)を用いて、演出制御部350が行う主基板割り込み処理について説明する。同図は演出制御部350のCPU354が実行する主基板割り込み処理の流れを示すフローチャートである。
この主基板割り込み処理は、主基板の主制御部300がストローブ信号により発生した割り込みを検出した場合に演出制御部350のCPU354が実行する処理である。当該割り込みが発生すると、図9(c)のステップS908において、CPU354は主制御部300が出力したコマンドを未処理コマンドとしてRAM358に設けたコマンド記憶領域に記憶する。
<演出制御部タイマ割り込み処理>
次に、図9(b)により、演出制御部350のCPU354が実行する演出制御部タイマ割り込み処理について説明する。同図は演出制御部タイマ割り込み処理の流れを示すフローチャートである。
演出制御部350は、所定の周期(本実施例では2msに1回)でタイマ割り込みを発生するハードウェアタイマを備えており、このタイマ割り込みを契機として、演出制御部タイマ割り込み処理を所定の周期で実行することにより、所期の演出制御を行う。
ステップS904では、演出データ更新処理を行う。この演出データ更新処理では、変動番号、仮停止図柄の組合せ、停止図柄の組合せ、後述する操作演出パターン、および装飾図柄の変動表示を開始してからの経過時間、などの演出データに基づいて装飾図柄表示装置110、スピーカ366および各種ランプ370による装飾図柄変動表示を制御するための動作制御データの更新を行う。
ステップS904では、演出を切り替えるタイミング、例えば演出情報Aによる演出の終了タイミングで演出情報をAからBに切り替える処理を行うと共に、切り替えた演出情報が示している態様で装飾図柄変動表示をおこなうように、続いて液晶制御回路374に出力する表示コマンドをRAM358に設けた液晶コマンド格納領域に格納するなどの処理を行う。また、後述のステップS905、S906によるスピーカ366または各種ランプ370を制御する準備を行う。
また、ステップS904では、所定の条件が成立している場合には所定の演出を実行するか否かの抽選を行う。例えば、チャンスボタン関係の演出をするかどうか、する場合には演出の内容を決定し、決定結果をRAM358に設けた操作演出パターン記憶領域に記憶し、さらに決定結果結果によっては上記装飾図柄の変動表示に用いる小分類データとは別の小分類データに関連する演出情報に基づいて装飾図柄表示装置110、スピーカ366ないし各種ランプ370を制御する準備を行う。これらの処理を行ってからこのステップS904を終了する。
ステップS905では、音出力処理を行う。この音出力処理では、上記ステップS904で取得したスピーカ制御用の情報(例えば小分類データB、または演出情報)に含まれるスピーカ366に出力する音声データをI/O360の出力ポートに設定し、スピーカ366の出力制御を音源IC368に行わせる。
ステップS906では、ランプ制御処理を行う。このランプ制御処理では、上記ステップS904で取得した各種ランプ制御用の情報に含まれる各種ランプ370に出力するランプの点灯・消灯を示すデータなどをI/O360の出力ポートに設定し、各種ランプ370の点灯や消灯の制御を表示回路372に行わせる。
ステップS907では、ステッピングモータ376により、遊技領域に配置した役物などを演出データで指定された演出態様で駆動する。ここでは、演出データで指定された演出に対応した駆動データをI/O360の出力ポートに設定し、モータ制御回路378を介してステッピングモータ376を駆動し、遊技領域に配置した役物などを演出データで指定された演出態様で駆動する。
<払出制御部リセット割り込み処理>
次に、図10を用いて、払出制御部400のCPU404が実行する払出制御部リセット割り込み処理について説明する。なお、同図は払出制御部リセット割り込み処理の流れを示すフローチャートである。
払出制御部400には、電源が投入されるとリセット信号を出力するリセット信号出力回路を設けている。このリセット信号を入力した基本回路402のCPU404は、リセット割り込みによりリセットスタートしてROM406に予め記憶している制御プログラムに従って処理を実行する。
ステップS1001では、初期設定1を行う。この初期設定1では、CPU404のスタックポインタ(SP)へのスタック初期値の設定等を行う。
ステップS1002では、低電圧信号がオンであるか否か、すなわち、電圧監視回路426が、電源管理部500から払出制御部400に供給している電源の電圧値が所定の値(本実施例では9v)未満である場合に電圧が低下したことを示す低電圧信号を出力しているか否かを監視する。そして、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1001の処理を繰り返し実行し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1003に進む。
ステップS1003では、初期設定2を行う。この初期設定2では、後述する払出制御部タイマ割り込み処理を定期毎に実行するための周期を決める数値をカウンタ・タイマ412に設定する処理、RAM406への書き込みを許可する設定、I/Oポート360の初期設定等を行う。
ステップS1004では、電源の遮断前(電断前)の状態に復帰するか否かの判定を行い、電断前の状態に復帰しない場合(パチンコ機100を初期状態にする場合)にはステップS1006に進み、電断前の状態に復帰する場合にはステップS1005に進む。
具体的には、最初に、電源基板に設けた操作部を遊技店の店員などが操作した場合に送信されるRAMクリア信号がオン(操作があったことを示す)であるか否か、すなわちRAMクリアが必要であるか否かを判定し、RAMクリア信号がオンの場合(RAMクリアが必要な場合)には、パチンコ機100を初期状態にすべくステップS1006に進む。一方、RAMクリア信号がオフの場合(RAMクリアが必要でない場合)は、RAM408に設けた電源ステータス記憶領域に記憶した電源ステータスの情報を読み出し、この電源ステータスの情報がサスペンドを示す情報であるか否かを判定する。そして、電源ステータスの情報がサスペンドを示す情報でない場合には、パチンコ機100を初期状態にすべくステップS1006に進み、電源ステータスの情報がサスペンドを示す情報である場合には、RAM408の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算することによりチェックサムを算出し、算出したチェックサムの結果が特定の値(例えば0)であるか否か(チェックサムの結果が正常であるか否か)を判定する。そして、チェックサムの結果が0の場合(チェックサムの結果が正常である場合)には電断前の状態に復帰すべくステップS1005に進み、チェックサムの結果が0以外である場合(チェックサムの結果が異常である場合)には、パチンコ機100を初期状態にすべくステップS1006に進む。同様に電源ステータスの情報が「サスペンド」以外の情報を示している場合にもステップS1006に進む。
ステップS1005では、復電時処理を行う。この復電時処理では、RAM408の記憶領域のうち、復電時にクリアすべき記憶領域(コマンドを格納するためのコマンドバッファ、エラー状態を記憶するためのエラーステータスなどを除く記憶領域)の初期化などを行う。
ステップS1006では、初期化処理を行う。この初期化処理では、割り込み禁止の設定、スタックポインタへのスタック初期値の設定、RAM408の所定の領域(例えば、全ての記憶領域)の初期化などを行う。
ステップS1007では、初期設定3を行う。この初期設定3では、RAM408に設けたエラーステータス記憶領域に記憶したエラーステータスのうち、不正払出エラーと払出超過エラー以外の情報をクリアしたり、割り込み許可の設定などを行う。
ステップS1008では、主制御部300から入力したデータの中に未解析データがあるか無いかを判定し、未解析データがある場合にはステップS1009でコマンド解析処理(詳細は後述する)を行い、未解析データがない場合にはステップS1010に進む。
ステップS1010では、低電圧信号がオフであるか否かを監視し、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1008に戻り、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1011に進む。
ステップS1011では、電断時処理を行う。この電断時処理では、RAM408に設けたスタックポインタ退避領域に現在のスタックポインタの値を記憶し、上述の電源ステータス記憶領域にサスペンドを示す情報を設定する。また、RAM408の所定の領域(例えば全ての領域)に記憶している1バイトデータを初期値が0である1バイト構成のレジスタに全て加算し、チェックサム算出用数値記憶領域に記憶している値からその加算した結果を減算した値をチェックサム(電断時チェックサム)として算出し、算出した電断時チェックサムを上述のチェックサム算出用数値記憶領域に記憶し、RAM408への書き込みを禁止する設定などを行う。
ステップS1012では、低電圧信号がオンであるか否かを監視し、低電圧信号がオンの場合(電源の遮断を検知した場合)にはステップS1012の処理を繰返し実行して低電圧信号がオフになるのを待ち、低電圧信号がオフの場合(電源の遮断を検知していない場合)にはステップS1001に戻り、払出制御部リセット割り込み処理を最初から開始する。すなわち、このステップS1012では、ステップS1010で低電圧信号を入力した後(電源の遮断を検知した後)で、この低電圧信号の出力が停止したことを検知した場合(電源の復帰を検知した場合)に払出制御回路402を初期化する初期化処理を行う。
<起動時間変動制御>
さて、ここで本実施例の遊技台において、電源投入ないしリセット入力に応じて行なう起動時間変動制御、およびそのための構成について説明する。
図4および図5に主制御部300、払出制御部400、演出制御部350の基本回路302、402、352などとして示した制御回路は、通常、いわゆる遊技制御用マイコンとして1チップのLSIないしASICとして構成される。本実施例の遊技制御用マイコンは、特に主制御部300の基本回路302として用いられるものは、例えば前述の図6に示したように構成する。
このような遊技制御用マイコンに組み込まれたCPUは、汎用のCPUと同等の命令セットを有するものではあるが、起動時、汎用のCPUとは異なり、CPU(図6では604)が規格(あるいは関連の法規/法令/規約)に定められたセキュリティチェックを行なった後、ユーザモードのプログラムとして上述の制御手順(例えば主制御部300のCPU304の場合、図7の主制御部メイン処理)を実行するよう構成しなければならない。
上記セキュリティチェック処理は、一般に、主制御部300のROM306が記憶している遊技制御内容に異常がないかをチェックする異常チェック処理として構成される。
前述のように、従来の遊技台では、大当り用カウンタの値が大当り判定値に一致する大当りタイミングは、遊技台が起動(リセット)された後、一定時間後に最初の大当りタイミングが到来し、その後、タイマ割り込み信号に応じて周期的に到来するようになっている。そして、なんらかの方法でこの大当りタイミングに合わせて始動口の検出スイッチのスタート信号を発生させる、例えば違法回路(主電源遮断(リセット)、所定時間待機、スタート発生などの一連の動作を行う)を装着する、といった不正遊技の手法が存在する。このタイミングが到来する周期をランダム化するために、実施例1に記載の遊技台で採用しているように、基本乱数カウンタが一周するごとに初期値乱数を代入するいわゆる初期値更新型の乱数生成方法もあるが、電源投入から基本乱数カウンタが一周するまでの初期値乱数が代入されるまでの期間に到来する大当たりタイミングを狙い打つ不正遊技方法が存在する他、初期値更新型の乱数生成方法が割り込み処理の処理時間が遊技制御の長さに応じて変化する(例えば複数の入賞口に球が入賞した直後の割り込み処理は、入賞口に球が一切入賞しなかった直後の割り込み処理よりも一般的に長くなる)ことを利用して電源投入から特定の遊技操作を行わない(例えば一発も球を遊技領域に発射しない)といった手法によっても、初期値更新型の乱数生成方法を採用していても、大当たりが発生するタイミングを予測することが出来てしまう。また、実施例に記載の遊技台のように基本回路300の外部に設けたカウンタ回路を利用した乱数生成方法であっても、電源投入から特定のタイミングで始動口(例えば第1特図始動口126)に遊技球が入賞したかのような信号を上述のカウンタ回路(例えば316)と基本回路300に入力されると、大当たり動作を開始してしまう。ここでカウンタ回路は1、または複数周カウントアップしている場合もある。以上のような不正遊技は実際に行なわれている。
本実施例では、この遊技台が起動(リセット)された後、周期的に到来する大当りタイミングを起動時間から見積もることができないように時間変動用回路を設ける。好ましい実装においては、この時間変動用回路616は図6に示したように遊技制御用マイコン600の内部に組み込む。
本実施例の時間変動用回路616は、遊技台の起動(リセット)タイミングから、CPU604のユーザモードとして実行される遊技台制御プログラムの開始タイミングまでの時間を変動させるものである。
図11は、本実施例における時間変動用回路616による時間変動制御の様子を概念的に示している。
図11のタイミングT0は、電源投入やリセットスイッチの操作などにより発生される遊技台のリセット入力タイミングである。タイミングT0でリセット入力が生じると、マイコン外部のリセット回路、例えば起動信号出力回路338(図4)によりリセット信号が発生され、図6の遊技制御用マイコン600はリセット割り込みコントローラ615を介してこのリセット信号を取り込む(1101)。
これに応じて、CPU604は上述のセキュリティチェック処理(1102)を実行した後、時間変動用回路616の出力を監視し、時間変動用回路616の時間変動処理(1103)が終了して時間変動用回路616が後述の遅延終了信号を発生するのを待つ。
すなわち、本実施例の遊技制御用マイコン600は、初期化処理ないしセキュリティチェック処理終了後、時間変動用回路616が遅延終了信号を発生しない限り、CPU604が、その後のユーザモードの制御、すなわち上述のS701から開始する遊技制御動作を実行しない、よう内部結線する。あるいは、初期化処理やセキュリティチェック処理の最終ルーチンとして時間変動用回路616が後述の遅延終了信号を発生するのを待つ検出ループを組み込んでも同等の機能を実現できる。
後述する時間変動用回路616が動作を終え、遅延終了信号を発生すると、時間変動処理(1103)が終了し、図11のタイミングT1からCPU604はユーザモードの遊技制御用プログラム(1104)、すなわち上述のS701から開始する遊技制御動作を開始する。
このように、時間変動用回路616の時間変動(1103)を挿入することにより、起動(リセット)後、ユーザモードの遊技制御用プログラム(1104)の実行開始までの時間Tx(T0〜T1)の長さを変動させることができる。
時間変動用回路616の時間変動(1103)の長さは、一定ではなく、ランダムであるのが望ましく、これにより、起動(リセット)後、ユーザモードの遊技制御用プログラム(1104)の実行開始までの時間Tx(T0〜T1)の長さを不定にすることができる。
本実施例では、時間変動用回路616の時間変動(1103)の長さをランダムに制御する。本実施例においては、例えば、時間変動用回路616の時間変動(1103)のランダム性とは、次のようなランダム性を意味する:
(a)時間変動用回路616が、実装された遊技台1台1台ごとに異なる遅延時間を生成する
また、
(b)同じ遊技台でも、温度や外乱、回路素子の製造誤差などに起因する作動誤差を利用して、起動毎に時間変動用回路616が異なる遅延時間を発生する
このような時間変動用回路616の時間変動(1103)のランダム性によって、図11に示した遊技制御用プログラム(1104)の実行開始までの時間Tx(T0〜T1)の長さを不定にすることができ、不正遊技者があらかじめ大当りタイミングを見積もることをほぼ不可能にできる。
なお、上記のランダム性(a)、(b)はいずれも実現することが望ましいが、いずれか一方だけでも後述の不正遊技行為を不可能ないしは著しく困難にする効果は期待することができる。
ただし、好ましくは時間変動用回路616が行う時間変動(遅延)処理(1103)の長さ(後述の図20の時間Tx2)は、例えば大当り値をカウントする乱数カウンタが最低値から最大値まで変化するために必要な循環時間の長さより長く設定する。したがって、上記のランダム性(a)、(b)は、少なくともこのオーダーの時間変動幅の範囲内で達成される必要がある。例えば、大当り値をカウントする乱数カウンタの循環時間に関連して定められる時間変動用回路616の変動時間Tx2が約1秒であれば、この約1秒前後程度の範囲内で上記のランダム性(a)、(b)が達成される必要がある。
図12〜図19は、上述の時間変動用回路616の種々の実装例を示したものである。
図12〜図18に示した回路は、簡単な発振回路を用いて周期信号を発生させ、この周期信号によりカウンタ回路1200を歩進させる構成である。カウンタ回路1200は、いずれもアップカウントないしダウンカウントによりあらかじめ定められたカウント値を計数すると遅延終了信号を出力する。なお、カウンタ回路1200のカウント入力には、シュミットトリガなどの波形整形回路が内蔵されているものとする。図12〜図18に示した回路では、上記のランダム性(a)、(b)は、主に発振回路の回路定数の選択、ないし回路部品の個体差や温度依存性などに関する精度により達成できる。
図12の回路は、オペアンプ1201の非反転入力への帰還回路にCR時定数回路CR1を、非反転入力〜接地間にCR時定数回路CR2を接続して構成した発振器で周期信号を発生させ、この周期信号をカウンタ回路1200でカウントさせるものである。
図13の回路は、カウンタ回路1200の入力端子に、シリーズ接続のオペアンプ(あるいは増幅器/インバータ)1201、1201を接続し、第1のオペアンプ1201の入出力帰還路にCR時定数回路CR3を接続したもので、第2のオペアンプ1201から入力される周期信号をカウンタ回路1200でカウントさせるものである。
図14の回路は、複数シリーズ接続のオペアンプ(あるいは増幅器/インバータ)1202、1202…をカウンタ回路1200の入力端子に接続したものである。シリーズ接続のオペアンプ(あるいは増幅器/インバータ)1202、1202…は、各段の内部遅延に相当する周期で発振するので、この周期信号をカウンタ回路1200でカウントさせるものである。
図15の回路は、トランジスタ1203、水晶発振素子およびコンデンサから成る容量回路Xtal1、およびCR時定数回路CR4を用いた発振回路をカウンタ回路1200の入力端子に接続したもので、トランジスタ1203のコレクタに得られる周期信号をカウンタ回路1200でカウントさせるものである。
図16の回路は、シリーズ接続のオペアンプ(あるいは増幅器/インバータ)1206、1207と、第1のオペアンプ1206の帰還路に、抵抗および水晶発振素子およびコンデンサから成る容量回路Xtal1から成る時定数回路を接続して成る発振回路をカウンタ回路1200の入力端子に接続したもので、第2のオペアンプ1206の出力に得られる周期信号をカウンタ回路1200でカウントさせるものである。
図17の回路は、相補的に動作するトランジスタ1204、1205と、これらトランジスタ1204、1205のコレクタ回路に接続したCR時定数回路CR5、CR6から成る発振回路をカウンタ回路1200の入力端子に接続したもので、トランジスタ1205のコレクタに得られる周期信号をカウンタ回路1200でカウントさせるものである。
図12〜図17に示した時間変動用回路616は、いずれも発振回路が発生する周期信号をカウンタ回路1200でカウントさせるもので、たとえば、発振回路の時定数を遊技台1台ごとに異なるものとすれば、上記のランダム性(a)を実現でき、また、回路素子に温度依存性などに関して精度の低い品種を用いることによって、上記のランダム性(b)を実現できる。
図18の回路は、所定の同調周波数を有するLC同調回路LC1、およびLC回路の出力を検波(平滑)するダイオードおよびコンデンサから成る検波(平滑)回路DC1をカウンタ回路1200の入力端子に接続したものである。
図18の回路には特別にアクティブ回路を設けていないが、LC同調回路LC1は、遊技台内部の電磁波と同調、共振する。通常、遊技台内部にはクロックジェネレータやワイヤハーネスなどが放射する電磁波ノイズが存在するため、検波(平滑)回路DC1の出力には、AM検波されたランダムな低周波信号が得られ、この低周波信号をカウンタ回路1200でカウントさせる。
遊技台内部のワイヤハーネスなどの配置、取り回しには、通常、微妙に異なる点が生じるので、図18のようなLC同調回路を用いた構成により上記のランダム性(a)を実現でき、また、コンデンサなどの回路素子に温度依存性などに関して精度の低い品種を用いることにより上記のランダム性(b)を実現できる。また、LC同調回路LC1の同調周波数を適宜選択することなどにより、時間変動用回路616の遅延時間の範囲をおおまかに選択することができる。
なお、図18では、AM検波の例を示したが、この回路の特徴は時間変動用回路616の遅延時間を決定するために遊技台内部の電磁波ノイズを利用する点にあり、AM検波方式は必須の要件ではない。したがって、当業者は、実際の設計条件に応じて、好適な遅延時間生成を行なえるよう他の検波方式(たとえばFM検波など)を用いることができる。また、カウンタ回路の入力端子に対して検波出力ゲインが足りない場合には、適宜低周波増幅器などを追加してもよいのはいうまでもない。
図19は、時間変動用回路616の異なる構成を示している。このカウンタ回路1200は、不図示のスタート端子にCPU604からのスタート信号を入力されることにより、プリセットカウント値として与えられたカウント値をダウンカウント(アップカウント)し、カウント終了時点で遅延終了信号を発生する。たとえば、プリセットカウント値として照合用ブロック620に格納した遊技台固有の識別番号などに基づいて発生した乱数値を与えるようにしておけば、上記のランダム性(a)を実現できる。また、カウンタ回路1200に与えるクロック発生器の誤差や、カウンタ回路1200それ自体に誤差の大きな品種を用いるなどすれば上記のランダム性(b)も実現できる。
また、図19の構成によれば、カウンタ回路1200のプリセットカウント値として他の適当なランダム性(a)、(b)を実現できる値を与えることにより、同等の時間変動機能を実現できる。例えば、遊技台内部の電磁波ノイズや、遊技台内部の温度情報などの環境情報に基づいてランダムな数値を生成し、プリセットカウント値としてカウンタ回路1200に与えることが考えられる。
以上のように構成した時間変動用回路616を用いて、ユーザモードの遊技台制御(図11の1104)が開始されるまでの時間Tx(T0〜T1)の長さを不定にすることができ、不正遊技者があらかじめ大当りタイミングを見積もることをほぼ不可能にできる。図20にこの様子をより具体的に示す。
図20は、起動信号出力回路338などから遊技制御用マイコン600のリセット端子に入力されるリセット信号に応じて実行されるリセット処理のタイミング、時間変動用回路616の動作タイミング、CPU604のユーザモードの動作タイミング、(最初に発生する)大当りスタートのタイミングを示したものである。
図20のように、遊技台の電源オン(あるいはリセット操作)によりリセット信号(1101)が発生されると、システムリセットの場合(ユーザリセットではない場合など)は、セキュリティチェック処理(SC)が走行する。
セキュリティチェック処理(SC)が終了すると(セキュリティチェック処理(SC)なしの場合は直ちに)時間変動用回路616の遅延処理が開始され、CPU604は、時間変動用回路616が遅延終了信号を出力するまで待機する(1102、期間Tx1)。
時間変動用回路616が遅延終了信号を出力すると、ここからユーザモードによる遊技制御用プログラムの実行(1104)が開始される。上記の時間変動用回路616の時間変動(遅延)期間Tx1が、ランダムであるため、ユーザモードによる遊技制御用プログラムの実行(1104)が開始されるまでのユーザモード起動時間Txの長さは、上記のランダム性(a)、(b)の意味合いにおいて、すなわち、遊技台1台ごとに、また、起動毎にランダムになる。
本実施例においても、ハードウェア乱数カウンタで大当りカウンタを構成する場合は、ユーザモードによる遊技制御用プログラムの実行(1104)開始後、大当りカウンタ値を取得する大当りになるタイミングまでの時間(1107)は依然として一定である。また、ソフトウェア乱数カウンタで大当りカウンタを構成(1106)する場合、初期設定(1105)の後、たとえ背景技術に示したような起動後、所定時間抽選を禁止するような処理を含めたとしても、やはり、大当りカウンタ値を取得する大当りになるタイミングまでの時間(1107)は常に一定である。
しかしながら、本実施例では、ユーザモードによる遊技制御用プログラムの実行(1104)が開始されるまでのユーザモード起動時間Txの長さが上記のように遊技台1台ごとに、また、起動毎にランダムに制御されるため、従来一定時間であったリセット処理(ないしセキュリティチェック処理)の終了から(最初の)大当りスタートのタイミング(1108)までの長さTx2は遊技台1台ごとに、また、起動毎にランダムになる。
したがって、本実施例によれば、不正遊技者があらかじめ大当りタイミングを見積もることをほぼ不可能にでき、大当り判定値を知られた場合でも、不正リセットを行う、あるいはさらに大当りタイミングに合わせて始動口の検出スイッチの信号をなんらかの手法で発生させ、任意に大当り状態を発生させる、といった不正遊技行為をほぼ回避/無効化することができる。
本実施例は、時間変動用回路を用い、リセット後、ユーザモードによる遊技制御用プログラムの実行開始までの時間を変動させる、というシンプルな構成を用いており、簡単安価に実施できる。例えば、大当り抽選処理それ自体を変更する必要がないため、既存の遊技台においても、時間変動用回路を追加してCPUのユーザモードの開始時間を変動(遅延)させるだけで容易に実現することができる。
時間変動用回路は、図12〜図19に示したように発振回路や同調回路およびカウンタ回路といった単純な回路により簡単安価に実施することができる。
また、時間変動用回路を図6に示したように遊技制御用マイコン内部に組み込むことによって、ブラックボックス化し、リバースエンジニアリングを難しくし、時間変動を阻止することや、大当たりなど遊技者の有利な状態の抽選・決定制御方法に関する解析を困難にでき、保安性をより高めることができる。
以上の実施例では、時間変動用回路による時間変動をセキュリティチェック処理の後に実行するものとしたが、図11や図20から明らかなように、ユーザモードのプログラム実行開始までの時間を変動させることにより目的を達成するものであるから、当業者は法規/法令/規約などの制約で許される範囲内において、ではあるが、時間変動用回路による時間変動を行う時期を決定できる。例えば、時間変動用回路による時間変動は、リセット処理とセキュリティチェック処理の間などユーザモードのプログラム実行開始までの任意の時期に挿入することが考えられる。
以上の実施例に示した構成の要点を列記すると以下の通りである。以下では、関連する変形例についても適宜記載する。
時間変動用回路(616)はリセット入力からCPUによる演算開始までの時間を変動させる。時間変動用回路による変動幅(Tx1)は、乱数カウンタが最低値から最大値まで変化するために必要な時間の長さより長く設定する。また、時間変動用回路の変動幅(Tx1)は、遊技台1台ごとにランダム(ランダム性(a))、また、起動毎にランダム(ランダム性(b))となるよう構成する。
時間変動用回路はCR、セラミックや水晶などの時定数を利用した発振回路を用い、例えば回路定数の選択などにより上記ランダム性(a)を達成する。発振に使用する電気部品の個体差により発振周期を不定にすることにより、上記ランダム性(b)を達成する。なお、時間変動用回路には、原子核崩壊速度に基づく超高速カウンタから取得した値に基づいてダウンカウンタのプリセット値を決定し、時間の変動幅を決定するような構成を用いてもよい。
時間変動用回路は、遅延回路を用いて構成し、外部から信号値(あるいは情報値)を入力する入力回路を遅延回路に含み、遅延回路がCPUによる演算開始時期を遅延させる期間の長さを入力回路が入力した値に対応させる。例えば、遊技制御装置を他の遊技制御装置と識別するための遊技台固有のID(識別)情報から生成した情報や、外乱情報を入力し、遅延回路がCPUによる演算開始時期を遅延(時間変動)させる期間の長さを決定する。
遊技制御装置を他の遊技制御装置と識別するための遊技台固有のID(識別)情報から生成した情報は、遊技制御装置内に組み込まれた識別情報記憶装置(照合用ブロック620など)に格納しておくことができる。
時間変動用回路は、外乱情報に基いて生成した値に基づいて時間の変動幅を決定する。例えば、遊技台内部の電磁波ノイズをこの外乱情報として用いることができる。時間変動用回路の時間の変動幅は、他の任意の外乱情報を利用して決定することもできる。
時間変動用回路は、なんらかの手法でランダムなカウンタのプリセット値を決定し、変動時間(Tx1)を決定するような構成としてもよい。この場合、ランダムに決定されるカウンタのプリセット値を、乱数値として遊技制御装置(上記の遊技制御用マイコン)のCPUが取り出せるように構成すれば、遊技制御装置でこの乱数値を任意の遊技制御に使用することができる。
遊技制御装置はCPU、ROM、RAM、入出力I/Fなど、公知の構成部材とともに、本実施例の時間変動用回路を1チップのパッケージ内に備えた遊技制御用マイコンとして構成する。大当り値を計数するカウンタは、一定周期で循環的にカウント値を変化させるソフトウェアまたはハードウェアにより構成されたカウンタとする。ソフトウェアカウンタを用い、起動後、所定時間抽選を禁止するような処理を行う場合でも、本実施例はハードウェアカウンタを用いる場合と同等の効果がある。
遊技制御装置は、システムリセット入力後、内部回路全初期化およびセキュリティチェック処理を行い、その後、内部CPUによるユーザモードプログラムとして遊技制御プログラムの実行を開始する。また、ユーザリセット入力の場合、遊技制御装置は、内蔵のCPU、CTC(タイマ回路)、PP(パラレル入出力ポート)、WPT(RAMライトプロテクトレジスタ)などの内部素子の初期化を行い、その後、内部CPUによるユーザモードプログラムとして遊技制御プログラムの実行を開始する。いずれの場合でも、時間変動用回路の時間変動制御は、大当りカウンタに関する処理が含まれる内部CPUにより遊技制御プログラムを実行するユーザモードの開始前に挿入されていればよい。
なお、上記実施例においては、カウンタ回路316aまたは316bのカウンタ値記憶用レジスタから値を特図当選乱数値として取得する例を挙げたが、カウンタ回路316aまたは316bのカウンタ値記憶用レジスタからカウンタ値を取得し、その取得した値と特定の値(例えば別のハードカウンタ、基本回路302や遊技制御用マイコン600などに設けた所定の乱数生成回路、Rレジスタなど特定のレジスタの値)との演算結果(例えば加算した結果)を特図当選乱数値として使用するようにしてもよい。
以上では、パチンコ機を実施例としたが、本発明は、リセット後の所定のタイミングで、所定のクロックで歩進するカウンタからカウント値を抽出し、抽出したカウント値に基づいて遊技者に有利な状態とするか否かを抽選により決定する遊技制御装置を用い、上述同様の手法で大当り抽選を行う遊技台であれば、任意の遊技台に実施することができる。
<<本発明の構成1>>
(項1)
所定の周期で値を変化させるカウンタと、
前記カウンタからカウント値を抽出し、抽出したカウント値に基づいて遊技者に有利な状態とするか否かを抽選により決定するCPUを備えた遊技制御装置と、
を有し、
前記遊技制御装置が起動信号を入力してから前記CPUによる所定の演算を開始するまでの時間の長さを変動させる時間変動用回路を前記遊技制御装置の内部に設けたことを特徴とする遊技台。
(項2)
項1に記載の遊技台において、前記CPUの遊技制御内容を予め記憶させているROMを前記遊技制御装置に設け、前記遊技制御装置は前記起動信号を入力した場合に、前記ROMが記憶している前記CPUの遊技制御内容に異常がないかをチェックする異常チェック処理を実行するように構成し、前記時間変動用回路は、前記異常チェック処理を終了してから、前記ROMが記憶している前記CPUの遊技制御内容に基づいた前記CPUによる所定の演算を開始するまでの時間の長さを変動させることを特徴とする遊技台。
(項3)
項1または2に記載の遊技台において、前記時間変動用回路は前記CPUによる演算開始時期を遅延させる遅延回路であることを特徴とする遊技台。
(項4)
項3に記載の遊技台において、外部から信号値ないし情報値を入力する入力回路を前記遅延回路に含み、前記遅延回路が前記CPUによる演算開始時期を遅延させる期間の長さを前記入力回路が入力した値に対応させることを特徴とする遊技台。
(項5)
項3または4に記載の遊技台において、抵抗の抵抗値および容量素子の容量値に依存した時定数に基づいてクロック信号を出力するクロック信号発生回路と、前記クロック信号発生回路が出力するクロック信号をカウントするカウンタ回路と、を前記遅延回路に含み、前記カウンタ回路が前記クロック信号を所定の回数入力した場合に、前記遅延回路による遅延動作を終了することを特徴とする遊技台。
(項6)
項3乃至5に記載の遊技台において、前記遊技制御装置を他の遊技制御装置と識別するための識別情報を記憶している識別情報記憶装置を該遊技制御装置に含み、前記遅延回路が前記CPUによる演算開始時期を遅延させる期間の長さを前記識別情報に対応させたことを特徴とする遊技台。
(項7)
項3乃至6に記載の遊技台において、外部から外乱信号を入力する入力回路を前記遅延回路に含み、前記遅延回路が前記CPUによる演算開始時期を遅延させる期間の長さを前記入力回路が入力した外乱信号に基づき決定することを特徴とする遊技台。
(項8)
項1乃至7に記載の遊技台において、前記時間変動用回路が変動させる時間の長さが遊技台1台1台毎に異なるランダムな長さに決定されることを特徴とする遊技台。
(項9)
項1乃至8に記載の遊技台において、前記時間変動用回路が変動させる時間の長さが遊技台の起動毎に異なるランダムな長さに決定されることを特徴とする遊技台。
<<本発明の構成2>>
(項1)
所定の周期で値を変化させるカウンタと、
前記カウンタからカウント値を抽出し、抽出したカウント値に基づいて遊技者に有利な状態とするか否かを抽選により決定する制御を含む遊技制御を行うためのCPUを備えた遊技制御装置と、
を有し、
前記遊技制御装置が起動信号を入力してから前記CPUによる遊技制御を開始するまでの時間の長さをランダムに変動させる時間変動処理を行う時間変動用回路を前記遊技制御装置の内部に設け、
前記起動信号は、電源が投入された場合に前記遊技制御装置に入力される信号であり、
前記CPUの遊技制御内容を予め記憶させているROMを前記遊技制御装置の内部に設け、
前記遊技制御装置は、
前記起動信号の入力に基づいて実行されるシステムリセットの場合には、前記ROMが記憶している前記CPUの遊技制御内容に異常がないかをチェックするとともに、前記時間変動処理を行うセキュリティチェック処理を実行し、前記時間変動処理および前記セキュリティチェック処理が完了した後、前記CPUによる遊技制御を開始するように構成されており、
前記遊技制御装置が前記CPUによる遊技制御中に正当な指定エリア以外のメモリ領域のコードを実行した場合に、前記状態が遊技者に有利な状態であっても指定エリア外走行禁止信号を発生する指定エリア外走行禁止回路を該遊技制御装置の内部に設け、
前記指定エリア外走行禁止信号の入力に基づいて実行されるユーザリセットの場合には、前記セキュリティチェック処理を実行しないことで、前記時間変動処理は実行されずに、前記CPUによる遊技制御を開始するように構成し、該ユーザリセットに基づく遊技制御の開始時は、前記状態を遊技者に有利ではない状態とすることを特徴とする遊技台。
(項2)
項1に記載の遊技台において、
前記時間変動処理が実行されることによって前記カウンタから特定のカウント値が抽出されることを防止するとともに、前記指定エリア外走行禁止信号の入力に基づく前記セキュリティチェック処理の実行を防止することで、前記正当な指定エリア以外のメモリ領域のコードを実行した場合に前記時間変動処理が行われることを防止する
ことを特徴とする遊技台。
(項3)
項1または2に記載の遊技台において、
遊技領域の所定の領域を遊技球が通過した場合に、所定の周期で更新される乱数カウンタから普図当選乱数値を取得し、前記普図当選乱数値に基づいた乱数抽選に当選した場合に、前記遊技領域に設けた電動チューリップの羽根が開閉するように構成され、
前記乱数カウンタが、前記所定の周期で値を変化させるカウンタである
ことを特徴とする遊技台。
<<本発明の構成3>>
(項1)
所定の周期で値を変化させる乱数生成回路と、
遊技領域に設けた始動口に遊技球が進入した場合に、前記乱数生成回路から乱数値を抽出し、抽出した乱数値に基づいて、前記遊技領域に設けた可変入賞口を開放する遊技者に有利な大当り状態とするか否かを抽選により決定する制御を含む遊技制御を行うためのCPUを備えた遊技制御装置と、
を有し、
前記遊技制御装置が起動信号を入力してから前記CPUによる遊技制御を開始するまでの時間の長さをランダムに変動させる時間変動処理を行う時間変動用回路を前記遊技制御装置の内部に設け、
前記起動信号は、電源が投入された場合に前記遊技制御装置に入力される信号であり、
前記CPUの遊技制御内容を予め記憶させているROMを前記遊技制御装置の内部に設け、
前記遊技制御装置は、
前記起動信号の入力に基づいて実行されるシステムリセットの場合には、前記ROMが記憶している前記CPUの遊技制御内容に異常がないかをチェックするとともに、前記時間変動処理を行うセキュリティチェック処理を実行し、前記時間変動処理および前記セキュリティチェック処理が完了した後、前記CPUによる遊技制御を開始するように構成されており、
前記遊技制御装置が前記CPUによる遊技制御中に正当な指定エリア以外のメモリ領域のコードを実行した場合に、前記可変入賞口が開放中であっても指定エリア外走行禁止信号を発生する指定エリア外走行禁止回路を該遊技制御装置の内部に設け、
前記指定エリア外走行禁止信号の入力に基づいて実行されるユーザリセットの場合には、前記セキュリティチェック処理を実行しないことで、前記時間変動処理は実行されずに、前記CPUによる遊技制御を開始するように構成し、該ユーザリセットに基づく遊技制御の開始時は、前記可変入賞口が閉鎖することを特徴とする遊技台。
(項2)
項1に記載の遊技台において、
前記時間変動処理が実行されることによって前記カウンタから特定のカウント値が抽出されることを防止するとともに、前記指定エリア外走行禁止信号の入力に基づく前記セキュリティチェック処理の実行を防止することで、前記正当な指定エリア以外のメモリ領域のコードを実行した場合に前記時間変動処理が行われることを防止する
ことを特徴とする遊技台。