次に、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明にかかる遊技機の一例のパチンコ遊技機の遊技盤面を示す正面図である。遊技者が図示しない打球操作ハンドルを操作すれば、打球待機樋(図示せず)に貯溜されているパチンコ玉が1つずつ遊技盤1の前面に形成されている遊技領域2内に打込まれる。遊技領域2には、複数種類の識別情報を可変表示可能な、回転ドラムを用いた可変表示装置3が設けられているとともに、始動口10が設けられている。これら始動口10内に入賞したパチンコ玉は、それぞれ始動入賞玉検出器(始動口スイッチ)11により検出される。なお、可変表示装置としては回転ドラムを用いたものに限らず、液晶表示装置や、CRT(陰極線表示管)などを用いたものであっても良い。
始動口スイッチ11の検出信号に基づき、可変表示装置3の各図柄表示部が可変開始される。可変表示装置3には、回転ドラム4a、4b、4cの図柄によって3行×3列のマトリックス状に配列された9つの図柄表示部が形成され、それぞれドラムランプ7a〜7iにより背後から照明されている。各図柄表示部は、可変表示中は所定の複数個の図柄を順次回転表示する。そして、所定時間の経過に基づいてまず左端の回転ドラム4aが停止し、その後右端の回転ドラム4cが停止し、最後に中央の回転ドラム4bが停止する。なお、停止時の順序をこれに限定されず、たとえば左、中、右の順で停止制御しても良い。回転ドラムは3つに限らず2つ以下または4以上のものであってもよい。さらに、この可変表示装置3の可変表示を、遊技者の停止ボタン(図示せず)の押圧操作によって停止させたり、また、所定時間の経過または遊技者の停止ボタンの押圧操作のうちいずれか早い方が行なわれたことに基づいて停止制御してもよい。
停止時の表示結果が予め定められた特定の表示態様の組み合わせになれば、可変入賞球装置12の開閉板14を開成させて遊技者にとって有利な第1の状態とし所定の遊技価値が付与可能な状態にする。左、右図柄が停止した時点で特定の表示態様の組合わせとなる条件を満たしていれば、これをリーチ状態と呼ぶ。
前述のように可変表示装置3によって表示される図柄は、3×3のマトリックス状の配列となる。このマトリックスにより、水平方向の3本のラインと、対角線の2本との合計5本の表示ラインが形成される。本実施の形態においては、この5つのラインのいずれも組合せ有効列とされており、このライン上に特定の表示態様の組み合わせ(たとえば「777」や「FEVER」)が停止表示されれば、前記第1の状態となるように遊技機が制御される。また、特定の図柄(たとえば赤い「7」、青い「7」)は確率変動図柄と呼び、これが揃って大当りが発生した場合は、その後大当りが2回発生するまでの間、可変表示停止時の大当りとなる確率が、通常時の5倍となる。また、この確率が高確率となっている間にさらに確率変動図柄が揃って大当りとなった場合には、その時点からさらに2回大当りが発生するまでの間、高確率状態が持続する。ただし、大当り中には大当り発生の確率は通常の値に戻される。
可変表示装置3の可変表示中においてパチンコ玉が始動口10に入賞すればその始動入賞が記憶され、可変表示装置3の可変表示が停止した後にその記憶に基づいて再度可変表示装置3が可変開始される。その始動入賞記憶の上限値はたとえば「4」に定められている。その始動入賞記憶回数は始動記憶表示器8により表示される。なお、可変表示装置3の下部で始動口10の左右には、パチンコ玉を始動口10の上方に誘導するための誘導部材9が設けられている。
一方、可変入賞球装置12は、通常時においては開口部13が開閉板14により閉塞されてパチンコ玉が開口部13に入賞できない遊技者にとって不利な第2の状態になっている。しかし、開閉板14が開成することにより、パチンコ玉が開口部13に入賞可能な遊技者にとって有利な第1の状態となる。可変入賞球装置12の第1の状態は、パチンコ玉の所定個数(たとえば10個)の開口部13への入賞または所定時間(たとえば30秒間)の経過のいずれか早い方の条件が成立することにより終了し、可変入賞球装置12が第2の状態に切換わる。開口部13への入賞玉の個数は10カウントスイッチ16およびVスイッチ17によってカウントされる。この可変入賞球装置12に入賞した入賞玉の個数は入賞個数表示器18により表示される。
一方、開口部13内の所定の箇所(図示右側)には特定入賞領域が形成されており、可変入賞球装置12に入賞したパチンコ玉がこの特定入賞領域に入賞すれば、Vスイッチ17により検出され、その回における可変入賞球装置12の第1の状態が終了して第2の状態となった後、再度開閉板14が開成されて第1の状態が繰返し継続制御される。この繰返し継続制御の上限回数はたとえば16回と定められている。なお、図中15はソレノイドであり、開閉板14を開閉駆動させるためのものである。
この可変入賞球装置12の第2の状態としては、打玉が全く入賞できない状態ではなく、打玉が入賞困難な状態であってもよい。
可変表示装置3の上部には覆い5が設けられている。また遊技領域2には、さらに、ラッキーナンバー表示LED19と、レール飾りランプ20と、通常入賞口とが設けられている。
図2は、可変表示装置3の各回転ドラム4a〜4c上に形成された図柄を、展開図形式で示したものである。各図柄には図柄コ─ド00H〜14H(16進表示)が割り当てられている。左図柄と中図柄とは同一の図柄であるが、右図柄のみは他の図柄とは配列が少し異なっている。
図3は、パチンコ遊技機に用いられている制御回路を示すブロック図である。パチンコ遊技機の制御回路39は、各種機器を制御するためのプログラムに従って遊技機制御を行なうためのメイン基本回路21と、始動口スイッチ11とVスイッチ17と10カウントスイッチ16とからの検出信号をメイン基本回路21に与えるためのスイッチ回路29と、メイン基本回路21の指令に従ってソレノイド15を駆動し、メイン基本回路21から与えられるデータに従ってレール飾りランプ20を駆動し、大当り情報、確率変動情報、有効始動情報をホール用管理コンピュータ等に対して出力するためのランプ・ソレノイド・情報出力回路28と、メイン基本回路21から与えられるデータに従って始動記憶表示器8とV表示LED35と入賞個数表示器18と開放回数表示器6とラッキーナンバー表示LED19とを駆動するための7セグ・LED駆動回路28と、メイン基本回路21から与えられる音データに従ってスピーカ34を駆動し、効果音を発生させるための音回路26とを含む。
メイン基本回路21には、電源投入時にメイン基本回路21をリセットするための初期リセット回路24と、メイン基本回路21に対して定期的(たとえば2msec毎)にリセットパルスを与え、所定のゲーム制御用プログラムを先頭から繰返し実行させるためのクロック用リセットパルス発生回路23と、メイン基本回路21から与えられるアドレス信号をデコードし、メイン基本回路内に含まれるROM、RAM、I/Oポート等のいずれか1つを選択するための信号を出力するためのアドレスデコード回路25とが接続されている。
メイン基本回路21およびクロック用リセットパルス発生回路23には、ドラムユニット38に含まれるドラムセンサ37a〜37cの検出信号とメイン基本回路21からの指示とに従って、ドラムランプ7a〜7iと、ドラムモータ左36aと、ドラムモータ中36bと、ドラムモータ右36cとによる可変表示を制御するためのサブ基本回路22が接続されている。ドラムランプ7a〜7iはドラムランプ回路30を、ドラムモータ36a〜36cはモータ回路31を、ドラムセンサ37a〜37cはセンサ回路32を介してそれぞれサブ基本回路22に接続されている。センサ回路32は、メイン基本回路21にも接続されている。
また、パチンコ遊技機の制御回路には、AC24Vの交流電源に接続され、複数種類の直流の電圧を発生させる電源回路33が含まれている。電源回路33には、ドラムランプ用電源33Aも含まれる。
制御回路39のメイン基本回路21と、サブ基本回路22とは、共に同一の遊技機制御基板40上に設けられている。メイン基本回路21とサブ基本回路22とは、ケーブルではなく基板40上の配線で接続されており、その接続線の長さも、サブ基本回路22をメイン基本回路21の基板とは異なる可変表示装置制御用基板上に設けた場合と比較してはるかに短くなる。したがって、メイン基本回路21からサブ基本回路22への表示制御用信号の伝送時に、表示制御用信号にノイズが混入するおそれが小さくなるという効果がある。
なお、サブ基本回路22から可変表示装置3への表示制御用信号にノイズが混入することを防止するために、可変表示装置3に、ノイズ防止用バッファを設けてもよい。具体的には、ツェナーダイオードやバリスタなど、所定の電位以上の電圧が印加されたときに導通する素子を用いて、過大なレベルのノイズが入力されたときに、ノイズをたとえば接地電位に流す様にする。
メイン基本回路21には、スイッチ回路29を介して次のような信号が与えられる。10カウントスイッチ16は、可変入賞球装置12に入賞した入賞玉の検出信号をスイッチ回路29を介してメイン基本回路21に与える。Vスイッチ17は、可変入賞球装置12の特定入賞領域に入賞した入賞玉を検出し、検出信号をスイッチ回路29を介してメイン基本回路21に与える。始動口スイッチ11は、始動口10に入賞したパチンコ玉を検出し、検出信号をスイッチ回路29を介してゲーム制御用メイン基本回路21に与える。
サブ基本回路22は、ゲーム制御用メイン基本回路21によって制御されて次のように表示を行なう。まず、通常時には、サブ基本回路22は3つの回転ドラム4a〜4cをすべて停止している。始動入賞が発生し、可変開始されると、すべての回転ドラムが高速で回転する。所定時間の経過後回転ドラム左4aが停止される。すなわち回転ドラム左4aが、予定停止図柄の1図柄前からゆっくりした回転となり、予定停止図柄で停止される。なお、この停止図柄は始動入賞に基づいてランダム数を用いて予め決定されている。
回転ドラム左4aが停止後所定時間経過すると、回転ドラム右4cが停止される。すなわち、回転ドラム右4cを予定停止図柄の6図柄前からゆっくり回転させ、予定停止図柄で停止させる。さらに所定時間経過後、回転ドラム中4bを同様にして停止させる。すなわち、回転ドラム中4bを予定停止図柄の11図柄手前からゆっくり回転させ、予定停止図柄で停止させる。ただしこの場合、回転ドラム右4cが停止した時点でリーチラインが発生した場合には、この回転ドラム中4bを通常の停止時よりもさらに長く(たとえば10秒間)ゆっくりとスクロールさせ、予定停止図柄で停止させる。リーチとならないはずれ時の場合、可変表示開始から停止までの時間はそれぞれ所定の時間となるように制御される。
停止時の表示結果によって、いずれかの有効ラインに特定の表示態様の組み合わせ(たとえば「777」)が揃った時には大当りとなる。この場合メイン基本回路21はスピーカ34を駆動してファンファーレ音を発生させる。
大当りとなって可変入賞球装置12が開成状態となっている間、サブ基本回路22には停止時の図柄を表示するとともに、大当りの組合せが成立したラインの裏側からドラムランプ7a〜7iを点滅表示する。
V入賞があった場合には、可変入賞球装置12にパチンコ玉が所定個数(たとえば10個)入賞するか、所定時間(たとえば30秒)が経過するかして一旦可変入賞球装置12が閉成した後、2秒間のインターバルをおいて再度可変入賞球装置12が開成する。この繰返し継続回数の上限は所定回数(たとえば16回)に制限されている。
可変入賞球装置12の繰返し継続回数が16回となり、最終の開成が終了すると、大当り制御が終了する。
なお、前述のように確率変動図柄が揃って大当りが発生した場合は、その後大当りが2回発生するまでの間、可変表示時の大当りとなる確率が、通常時の5倍となる。また、この確率が高確率となっている間にさらに確率変動図柄が揃って大当りとなった場合には、その時点からさらに2回大当りが発生するまでの間、高確率状態が持続する。本実施の形態では通常の確率は1/352、高確率時の確率は5/352である。この確率変動情報は、ホール用管理コンピュータに出力される。
レール飾りランプ20は、遊技状態に応じて点灯、消灯、点滅を行ない、スピーカ34は、遊技状態に応じて予め定められた効果音を発生する。ソレノイド15は、メイン基本回路21の制御に応じて、可変入賞球装置12の開成および閉成を行なう。始動記憶表示器8は、可変表示中等において始動入賞があった場合にその個数を記憶して表示する。入賞個数表示器18は、可変入賞球装置12の1回の開成におけるパチンコ玉の入賞個数を表示する。
なお、可変表示装置は、たとえばボクシングの試合を映像表示し、遊技者側のボクサーが勝てば所定の遊技価値を付与するものでもよい。その場合には、たとえば遊技者側のボクサーが2回ダウンを奪えばKO勝ちとなり大当りとするようにし、1回目のダウンを奪えるようにするか否かを、乱数発生手段が発生した乱数に基づき事前決定するようにする。つまり、複数種類の図柄をスクロール表示または切換表示するものに限らず、かつ、表示結果が導出表示された後においても引続き可変表示され続けるものでもよい。
図4は、図3に示した制御回路39の動作を説明するためのメインルーチンのフローチャートである。
図4に示すメインルーチンプログラムは前述のようにたとえば2msec毎に1回実行される。この実行は、図3のクロック用リセットパルス発生回路23が2msec毎に1回発生するリセットパルスに応答して開始される。まずステップS(以下単にSと言う)1により、スタックセット処理がなされ、S2によりRAMエラーがあったか否かの判断が行なわれる。この判断は、後述するようにメイン基本回路21に含まれるRAMの所定アドレスの内容を読出し、その値が所定の値(本実施の形態の場合6802H)と等しいか否かを調べることにより行なわれる。プログラムの暴走時や電源投入直後には、RAMの格納データは不定であるため、この判断の答えはNOとなって制御はS3に進む。
S3においては、RAMの所定アドレスに初期データを書き込むなど、所定のイニシャル処理が行なわれる。この内容については図5を参照して詳述する。なお、本実施の形態の遊技機においては、このイニシャル処理を複数回に分割して行なっている。複数回に分割することにより、1回のリセットパルスの入力に応答して行なわれる処理は少なく、それに要する時間も短くて済むために、たとえば電源の投入直後など、リセットパルスの発生間隔が不安定で、比較的短い間に後続するリセットパルスが入力されたりした場合でも、イニシャル処理が不完全なままで通常の遊技制御に移行してしまう虞が少ない。
S3の後制御はS15に進む。S15以降の処理については後述する。S3が複数回数実行されることによりRAMに所定の初期データが書込まれるため、以降このメインルーチンの実行時には、S2における判断の答えがYESとなり、制御はS4に進む。
続いてS4では、10カウント・モータエラーフラグがセットされているか否かについての判断が行なわれる。この処理は、10カウントスイッチ16やVスイッチ17が回転ドラム4a〜4cの各モータ36a〜36cなどに異常が発生したか否かを判定するためのものである。エラーが発生していない場合には制御はS5に進み、モータ復旧フラグがセットされているか否かの判断が行なわれる。モータ復旧フラグとは、モータのエラーが発生したと判断されてモータが停止され、かつ後述するような一定のエラーリセット動作が行なわれた時にセットされるもので、セットされている場合にはモータを所定の初期状態に復旧させるべきことを示す。したがって、モータ復旧フラグがセットされている場合にはS6に処理が進み、モータ復旧フラグがクリアされ、モータに印加される電圧を通常電圧にしてモータをONさせ、かつプロセスフラグをサブCPUコマンドセット中を示す「13」という値に設定する。このプロセスフラグとは、後述するS7の処理で所定の制御時間を保ちながらパチンコ遊技機を制御するために必要となるものである。S6の後制御はS7に進む。また、S5においてモータ復旧フラグがONでないと判定された場合、すなわち通常動作時にも処理はS5からS7に進む。
S7のプロセス処理とは、図6(b)〜図11を参照して後述するように、遊技の種々のプロセスに応じて必要な処理を行なうためのステップである。
プロセス処理が実行された後S8では、図3に示されるサブ基本回路22(以下これをサブCPUと呼ぶ)に対して発行するコマンドをI/OポートからサブCPUに対して出力する処理が行なわれる。この処理により、サブCPUに対し、遊技状態に応じた表示を行なうためのコマンドが与えられる。これらコマンドの内容については図14を参照して後述するが、コマンドの送信方法に本発明の特徴がある。
続いてS9では、各種検出器からの検出信号を入力するスイッチ入力処理が行なわれる。この内容については図13(b)を参照して後述する。
次にS10により、エラー復旧チェック処理が行なわれる。この処理は、10カウントエラー、Vスイッチ、モータなどのエラーを復旧させるための何らかのリセット処理が行なわれたか否かをチェックする処理である。実際には、このリセット処理は、10カウントスイッチ、Vスイッチの断線・ショート・玉詰まりの場合にはその状態を解除することにより行なわれ、大当りにおける1回の開放中に入賞玉が1個も検出されなかったり、モータエラーが発生したりしている場合には、10カウントスイッチまたはVスイッチに遊技玉を1つ通すことで行なわれる。制御回路は、エラー状態である時に10カウントスイッチに遊技玉が1つ通されたことを検知すると、それに応答してエラー状態からの復旧処理を行なう。このエラー復旧チェック処理の詳細については図12(a)を参照して後述する。
続いて、S11で、サブCPUへの、現在の遊技状態に応じたコマンドを、出力ポートにセットする処理が行なわれる。この処理については、図12(b)を参照して後述する。
次にS12では、ランプ・ソレノイド・情報出力回路28(図3参照)を介して確率変動情報と有効始動情報とをホール用管理コンピュータに出力する処理が行なわれる。
S13では、Vスイッチ、10カウントスイッチに断線、ショート、玉づまりなどの異常が発生していないかどうかをチェックする処理が行なわれる。
次にS14により、モータセンサ37a〜37cから、モータの基準位置の検出信号が入力されているかどうかを知るために、モータセンサ37a〜37cからの入力を調べるモータステップチェック処理が行なわれる。この処理については、図6(a)を参照して後述する。
次にS15により、ランダム1カウンタのカウント値を更新する処理が行なわれる。このランダム1カウンタは、可変表示装置3の停止時の表示結果を、大当りが発生する特定の識別情報の組合せ(たとえば777)にするか否かを決定するためのものである。
続いてS16では、LEDを駆動するためのデータをI/Oポートにセットする処理が行なわれる。
次にS17に進み、リセット回数が「0」、「1〜15」のいずれであるかについての判断が行なわれる。このリセット回数とは、クロック用リセットパルス発生回路23から発せられる定期リセットパルスに従ってメイン基本回路21がリセットされた回数を意味し、リセットされる度に「0」から1つずつ歩進され、「15」に達した後さらに歩進されることにより「0」となる。リセット回数が「0」の場合にはS18に進み、ラッキーナンバー表示LED19を変動させるための処理が行なわれ、S20に進む。リセット回数が「0」以外の時には出力データテーブルを選択し、LED・ランプデータをセットする処理が実行される。この制御に基づき、前述したレール飾りランプ20等の表示制御が行なわれる。S19の後制御はS20に進む。
S20では、図13(a)を参照して後述する入賞記憶エリア格納処理が行なわれる。S20の後処理はS21に進み、ランダム2カウンタ、ランダム3カウンタ、ランダム4カウンタ、ランダム5カウンタの更新処理が行なわれる。ランダム2カウンタは、大当り時の停止図柄を決定するために用いられる。ランダム3カウンタは、はずれ時の左図柄、中図柄、右図柄を決定するために用いられる。ランダム4カウンタは、図柄変動時に、図柄を1図柄だけ多く空回転させるか否かを決定するために用いられる。ランダム5カウンタは、ラッキーナンバー表示LED19の停止位置を決定するために用いられる。このS21の処理は、クロック用リセットパルス発生回路23によってリセットされる時間(2msec)内にS1〜S20までの処理を行ない、その残り時間であるリセット待ち時間を利用して行なわれる。S1〜S20までの処理時間がランダムとなるために、S21による処理時間もランダムとなり、S21による更新処理の結果、ランダム2カウンタ、ランダム3カウンタ、ランダム4カウンタ、ランダム5カウンタのカウント値はランダムな値を取ることになる。
図5(a)は、図4のS3で行なわれるシステムイニシャル処理のサブルーチンプログラムを示すフローチャートである。このシステムイニシャル処理は、電源投入後RAM内に初期データがすべて書込まれるまで、複数回実行される。
まず、S22において、パターンデータが「2086H」であるかどうかについての判断が行なわれる。このパターンデータは、RAMの所定のアドレスに書込まれるデータであって、このシステムイニシャル処理が最初に実行されたときに第1段階としてこの「2086H」という値が書込まれ、このシステムイニシャル処理が終了するときに「6802H」という値が書込まれる。前述したS2では、このパターンデータが「6802H」という値かどうかを調べ、「6802H」であった場合にS4に進むようにしている。したがって後述するS23で「2086H」がこのアドレスに書込まれた場合でも、S2における判断の結果制御はS3に進むことになり、このシステムイニシャル処理が繰返して実行されることになる。
S22でパターンデータが「2086H」でないと判断された場合、S23に進み、システムイニシャル処理がどの段階にあるかを示す変数「イニシャルステップ」に「1」がセットされ、前述した特定のアドレスにパターンデータ「2086H」が書込まれる。S23の後リセットパルス待ちとなる。S23で「2086H」が書込まれたため、図4のS2における判断の結果は「NO」であるが、続くシステムイニシャル処理では、S22における判断の結果がYESとなり、制御はS24に進むことになる。
システムイニシャル処理が2度目に実行される場合には、前述のようにS24に制御が進む。S24では、イニシャルステップの内容が「1」かどうかについての判断が行なわれる。「1」であればシステムイニシャル処理の第2段階であり、それ以外の場合にはシステムイニシャル処理の第3段階以降である。したがってS24の判断の結果がYESであれば制御はS25に進み、変数「イニシャルステップ」が1インクリメントされ、RAMエリアが0クリアされる。S25の後リセット待ちとなる。S24における判断の結果がNOであれば、システムイニシャル処理の第3段階以降であるから制御はS26に進む。
システムイニシャル処理が第3回目に実行される場合、S22における判断の答えはYES、S24における判断の答えはNOとなる。したがって制御はS26に進み、S26では入出力ポートから、遊技機を初期化するためのデータの出力などが行なわれる。続いてS27では、変数「イニシャルステップ」の値が「2」かどうかについての判断が行なわれる。「2」であれば制御はS28に、それ以外であれば制御はS31に進む。
S28では、システムイニシャル処理の第3段階の処理が行なわれる。まずS28で、プロセスの進行時間を制御するためのプロセスタイマに、ドラムの初期化待ち時間(約10.77秒)を示す時間がセットされ、変数「イニシャルステップ」の値が1インクリメントされる。続いてS29で、RAM内に必要な初期データを書込む処理が行なわれる。続いてS30で、サウンドジェネレータを初期化する処理が行なわれてリセット待ちとなる。S28でイニシャルステップに1が加算されたために、次にこのシステムイニシャル処理が実行される場合にはS27における判断の結果がNOとなり制御はS31に進む。
このシステムイニシャル処理が4回目に実行される場合、前述のように制御はS31に進み、S31ではモータステップチェック処理が行なわれる。このモータステップチェック処理は、図4のS14に示されたものと同じであって、その内容については図6(a)を参照して後述する。S31の後、制御はS32に進む。
S32では、変数「イニシャルステップ」の値が3かどうかについての判断が行なわれる。3であれば制御はS33に、3以外であれば制御はS35に進む。システムイニシャル処理の4回目の実行ではイニシャルステップは3であるから制御はS33に進み、プロセスタイマチェック処理が行なわれた後、S34で変数「イニシャルステップ」を1インクリメントする処理が行なわれてリセット待ちとなる。S34でイニシャルステップが1加算されるために、このシステムイニシャル処理の5回目以降の実行ではS32における判断の結果がNOとなって制御はS35に進む。
S33で実行されるプロセスタイマチェック処理は、図5(b)に示されている。まずS43で、プロセスタイマが0となっているかどうかについての判断が行なわれる。0であればこのサブルーチンは終了し、0でなければS44でプロセスタイマを1減算する処理が行なわれてこのサブルーチンは終了する。したがってこのプロセスタイマチェック処理が1回実行されるたびに、プロセスタイマが0になるまで1ずつ減算される。
システムイニシャル処理の第5回目の実行では、前述したように制御はS35に進む。変数「イニシャルステップ」の値は4である。S35では、イニシャルステップが4かどうかについての判断が行なわれる。システムイニシャル処理の5回目の実行ではこの判断の結果はYESとなり制御はS36に進む。S36では前述のプロセスタイマチェック処理が行なわれ、S37に進む。S37では、S36の処理の結果プロセスタイマが0となったかどうかについての判断が行なわれる。0でない場合には直ちにこのシステムイニシャル処理は終了するが、プロセスタイマが0となると制御はS38に進む。すなわち、S28でドラム初期化待ち時間がセットされたプロセスタイマが0となって初めて制御はS38に進むために、S38が行なわれるまでの間に、ドラムの状態が完全に初期化されていることになる。
S38の後S39に進み、ドラム回転カウンタが12未満であるかどうかについての判断が行なわれる。このドラム回転カウンタとは、3つのドラムの回転数をカウントするためのものであり、1つのドラムが1回転することにより1カウントアップされる。この実施の形態の場合には少なくとも各ドラムが4回転して初めてドラムの初期化が完了したと判断されているために、S39における判断の結果がYESであればモータが正常には回転していないと判断されて制御はS41に進む。S39における判断の結果がNOであればドラムの初期化が正常に行なわれてモータが正常に回転していると判断されるために、制御はS40に進む。
S40では、変数「イニシャルステップ」に「0」をセットし、パターンデータとして「6802H」を書込んでこの処理を終了する。S40でパターンデータ「6802H」が書込まれるために、S40の実行の後図4のS2ではYESという判断がされることになり、S4以下の通常のゲーム制御が行なわれる。一方、S39の判断の結果がYESであればS41でエラーフラグにモータエラーを示す値「08H」がセットされ、さらにS42で変数「イニシャルステップ」に「0FH」がセットされてこのサブルーチンは終了する。すなわち、システムイニシャル処理が正常に終了しなかった場合にはエラーフラグがセットされ、変数「イニシャルステップ」の値にも特定の値がセットされることになる。
上述のように図5に示されるシステムイニシャル処理は、第1段階〜第4段階までの処理が各々1回ずつ実行され、さらに第5段階の処理は、S28でセットされたプロセスタイマが終了するまで繰返し実行される。このようにシステムイニシャル処理を複数回に分けて実行することにより、個々のシステムイニシャル処理で行なわれる処理は極めて少なくなる。遊技機の電源投入時などには、メイン基本回路をリセットするためのリセットパルスの発生間隔が一定でなくなる場合があり、予定していた間隔よりも短い間隔でリセットパルスが入力され、その結果予定していた処理を最後まで完了できないうちに次の処理が始められてしまう恐れがあるが、このようにシステムイニシャル処理を複数回に分けて個々の処理を短い時間で終了させることにより、システムイニシャル処理がすべて完了しないうちに通常のゲーム制御に移行してしまうという虞れが少なくなるという効果がある。
図6(a)は、図4のS14および図5(a)のS31に示したモータステップチェック処理のサブルーチンプログラムを示すフローチャートである。まずステップS45で、モータセンサからの信号を入力する処理が行なわれる。続いてS46で、S45の入力の結果、モータセンサの出力がONかどうかについての判断が行なわれる。ONであれば制御はS48に、さもなければ制御はS47にそれぞれ進む。
S47では、モータセンサがOFFであると判断されるために、センサONカウンタの値を初期値「2」にセットする処理が行なわれる。このセンサONカウンタとは、モータセンサの入力のチャタリングによる誤判定を防止するために設けられたものである。S47の後制御はS52に進む。
一方、モータセンサの出力がONであると判断された場合には、S48で、センサONカウンタの値が0かどうかについての判断が行なわれる。センサONカウンタは、前述したようにS47で初期値「2」に設定され、モータセンサからの信号がONであると判断されるたびに、後述するS51で1ずつ減算される。したがってこのモータステップチェック処理が3回行なわれる間、連続してモータセンサからの信号がONとなっている場合にのみS48における判断の答えがYESとなって制御はS50に進む。S50では各ドラムについて予め準備されたドラム回転カウンタが1加算され、モータセンサに対応のドラムが1回回転したものと判断される。S50の後制御はS51に進む。
一方、S48でセンサカウンタが未だ0でないと判断された場合には制御はS49に進み、センサONカウンタが0より大きいかどうかについての判断が行なわれる。0より大きい場合には制御はS51に、そうでない場合には制御はS52にそれぞれ進む。S51では、センサONカウンタの値を1減算する処理が行なわれる。
続いてS52では、すべてのセンサに対して上述したS46〜S51の処理が終了したかどうかについての判断が行なわれる。終了した場合にはこのサブルーチンは終了し、終了しない場合には再びS46以下の処理が繰返して行なわれる。
上述したようにこのモータステップチェック処理では、或るドラムのモータセンサからの入力が、3回連続してONとなって初めてS50でドラム回転カウンタの値が1加算される。仮にモータセンサからの入力信号にノイズが混入した場合、そのノイズの信号レベルは短時間で上昇し短時間で再び通常レベルに戻るものと考えられる。したがって仮にそのようなノイズによってS46で一度YESという判断がなされた場合、まずS48ではNOの判断がされてS49からS51に進んでセンサONカウンタの値が1減算されるが、続いてモータステップチェック処理が行なわれるときには、信号レベルがOFFとなっているために、S46における判断の結果がNOとなりS47に進むことになる。そのためS47で再びセンサONカウンタに初期値「2」が設定されるので、ノイズによってドラムが1回回転したと誤って判定される虞れがない。
図6(b)〜図11(b)は、図4のS7で示したプロセス処理のサブルーチンプログラムを示すフローチャートである。各サブルーチンへは、プロセスフラグの値を参照して制御がジャンプする。このプロセスフラグは、後述するS56、S60、S65、S74、S87、S99、S103、S111、S115、S121、S125、S128、S130、S132、S137、S142、S144、S152等の処理によりそれぞれの値にセットされるものであり、所定の制御時間を保ちながらパチンコ遊技機を制御するために必要となるものである。プロセスフラグの値に応じて、実行されるサブルーチンプログラムが選択される。
プロセスフラグが「0」の場合には図6(b)に示す通常処理が行なわれ、「1」の場合には図7(a)に示すドラム回転前処理が行なわれ、「2」の場合には図7(b)に示す大当り図柄セット処理が行なわれ、「3」の場合には図8(a)に示すはずれ図柄セット処理が行なわれ、「4」〜「11」の場合には図8(b)に示すはずれ図柄チェック処理が行なわれ、「12」の場合には図9(a)に示すサブCPUコマンドセット中処理が行なわれ、「13」の場合には図9(c)に示すサブCPUコマンド出力中処理が行なわれ、「14」〜「18」の場合には図10に示すドラム停止待ち処理(14は左ドラム停止処理、15は右ドラム停止処理、16は中ドラム停止処理、17はリーチ時の中図柄停止処理、18は確率変動図柄でのリーチ時の中図柄停止処理)が行なわれ、「19」の場合には図11(a)に示される大当りチェック処理が行なわれ、「20、21」の場合には開放前処理(20は通常時、21は確率変動図柄での大当り)の処理が行なわれ、「22〜25」の場合には開放中処理(22はV入賞前、23はV入賞後、24は確率変動図柄での大当りにおけるV入賞前、25は確率変動図柄での大当りにおけるV入賞後)が行なわれ、「26、27」の場合には開放後処理(26はV入賞前、27はV入賞後)が行なわれ、「28」の場合には図11(b)に示される大当り動作終了待ち処理が行なわれる。開放前処理と、開放中処理と、開放後処理のフローチャートおよびその説明については省略する。
図6(b)は、図4のS7に示したプロセス処理のうち、通常処理のサブルーチンプログラムを示すフローチャートである。まずS53により、入賞記憶があるか否かの判断が行なわれる。この入賞記憶は、後述するS177により「1」ずつ加算され、始動入賞に対する可変表示が開始されるたびに「1」ずつ減算される。
入賞記憶がなかった場合には制御はS54に進み、ホール用管理コンピュータへの大当り情報OFF出力と、ソレノイド15のOFF出力のセットが行なわれてこのサブルーチンは終了する。一方、入賞記憶があった場合には制御はS55に進み、ホール用管理コンピュータに対して有効始動情報を出力するためのタイマがセットされる。このタイマは、有効始動情報を外部に出力する時間を計測するためのものであり、本実施の形態の場合には0.5秒に相当する値である。さらにS56で、プロセスフラグに1がセットされ、プロセスタイマに回転前時間がセットされる。本実施の形態の場合にはプロセスタイマには128msに相当する値がセットされる。S56でプロセスフラグに1がセットされるために、次に図4のS7が行なわれる場合には、図7(a)に示されるドラム回転前処理が行なわれることになる。S56の後このサブルーチンは終了する。
図7(a)は、図4のS7で行なわれるプロセス処理のうち、プロセスフラグの値が「1」のときに行なわれるドラム回転前処理のフローチャートである。この処理は、通常処理において入賞記憶があったと判断された場合に実行される。
まずS57で、図6(b)のS56でセットされたプロセスタイマが終了したか否かについての判断が行なわれる。終了しない場合にはS58に進みプロセスタイマが1減算される。S59で再びプロセスタイマが終了したかどうかについての判断が行なわれ、未だ終了していない場合にはこのサブルーチンは終了する。
S57またはS59のいずれかでプロセスタイマが終了していると判断された場合にはS60でプロセスフラグに2をセットする処理が行なわれる。プロセスフラグに2がセットされるために、次にプロセス処理が行なわれる場合には後述する大当り図柄セット処理が行なわれることになる。
S61で、入賞記憶エリア1に格納されていたランダム1カウンタの値の読出が行なわれる。この入賞記憶エリアは、始動入賞があったときに、その時点のランダム1カウンタの値を格納しておくエリアであり、入賞記憶を4つ保持しておくために、全部で4箇所準備されている。S61では、そのうち最も古いデータを格納するためのエリア1からのランダム1カウンタの値の読出が行なわれる。
続いてS62では、読出されたランダム1カウンタの値が所定の大当り判定値(1通り)と一致するか否かについての判断が行なわれる。一致する場合にはこのサブルーチンは直ちに終了する。したがって大当りであればプロセスフラグの値は「2」となって、前述の通り大当り図柄セット処理が次に行なわれる。一方、大当り判定値ではないと判定された場合には制御はS63に進む。S63では、現在確率変動フラグがセットされているか否かについての判断が行なわれる。この確率変動フラグとは、前述したように特定の確率変動図柄で大当りが発生した場合にセットされるフラグで、このフラグがセットされている場合には、当該大当り後2回の大当りが発生するまで、大当りが発生する確率が5倍となる。
S63で確率変動フラグがセットされていないと判断された場合には制御はS65に進む。一方、セットされていると判断された場合にはS64に進み、読出されたランダム1カウンタの値が確率変動時の大当り判定値と等しいかどうかについての判断が行なわれる。確率変動時の大当り判定値は、S62で用いられる大当り判定値の他に4通り予め定められている。したがって、確率変動フラグがセットされている場合には、それ以外の場合と比べて大当りとなる確率が前述のように5倍となる。S64の結果読出されたランダム1カウンタの値と大当り判定値のいずれかとが等しいと判断された場合には直ちにこのサブルーチンは終了するが、いずれとも一致しないと判断された場合にはS65に進む。S65では、プロセスフラグに「3」がセットされる。プロセスフラグが「3」にセットされた場合には、図4のS7に示されるプロセス処理が次回実行されるときには、はずれ図柄セット処理が行なわれる。
図7(b)は、図4のS7に示したプロセス処理のうち、プロセスフラグが「2」のときに実行される大当り図柄セット処理のサブルーチンプログラムを示すフローチャートである。まずS66で、大当り図柄テーブルを参照し、入賞記憶エリア1に格納されているランダム2カウンタの値に対応する当り図柄を停止図柄ナンバーの左、中、右にセットする処理が行なわれる。この場合、左中右の図柄配列が同一であって当りラインが1ラインのみである場合には左図柄ナンバーと中図柄ナンバーと右図柄ナンバーとを一致させればよく、この実施の形態のように大当り図柄テーブルを使用する必要はない。
S67では、S66においてセットされた当り図柄のラインに応じて、サブCPUコマンドデータのうち、前述のようにコマンドコードが「2」として送信されるドラムランプ制御データのうちのドラムランプデータ1、2(リーチ)と、ドラムランプデータ1、2(大当り)とがそれぞれセットされる。これらドラムランプデータ1、2(リーチ)とドラムランプデータ1、2(大当り)とはそれぞれ8ビットずつのデータである。前述のように可変表示装置上の表示列は3×3の9列ある。ドラムランプデータ1、2(リーチ)とドラムランプデータ1、2(大当り)とは、それぞれ合計16ビットのデータであるので、この16ビットのうちの9ビットを1ビットずつ各列に割り当てて、それぞれの列のドラムランプの点滅を各ビットによって指定する。
S68では大当りフラグに「大当り、リーチ」がセットされてS69に進む。S69では、S66でセットされた停止図柄が確率変動図柄かどうかについての判断が行なわれる。確率変動図柄でない場合には制御はS71に、確率変動図柄である場合には制御はS70にそれぞれ進む。S70では、大当りフラグに「大当り、確変大当り、リーチ、確変リーチ」がセットされてS71に進む。
S71では、現在のランダム4カウンタの値によって空回転図柄数をセットする処理が行なわれる。この空回転図柄数とは、図柄の停止までに変動する図柄の数を所定数だけ変化させる際の、その変化の数である。具体的には、ランダム4カウンタの値が奇数のときには空回転図柄数として「1」が、偶数のときには「0」がそれぞれセットされる。
S72では、ドラム再回転用テーブルを参照して、ランダム4に対応する再回転図柄数と大当りチェック待ち時間とがセットされる。この再回転図柄数とは、大当り時の、次のようなドラム制御において用いられるものである。本実施の形態では、可変表示装置の図柄が停止するよりも前に、既に図7(a)のS62またはS64によって大当りか否かが決定されている。そこで、大当りであると判定された場合には、遊技の興趣を向上させるために、図柄を可変表示開始後、一定時間後にそれぞれストレートに順次停止させる停止方法の他に、中央のドラム4bについて図柄を一時停止させた後、再び図柄変動させた後大当り図柄で停止させる方法との2通りが用意されている。S72でセットされる再回転図柄数とは、一旦停止後に再び変動する図柄の数である。ランダム4カウンタの値は0〜39の40通りの値をとり得るが、そのうち0〜19の場合には図柄をストレートに停止させ、20〜39の場合には一旦停止した後再回転して大当り図柄で停止させる。すなわちランダム4カウンタが20〜39である場合にS72の再回転図柄数が決定される。全図柄は21あり、このうち停止図柄で一旦停止した後再回転して再び同じ図柄で停止させるのはあまり意味がないので、再回転図柄数としては1〜20の20通りのいずれかがセットされる。
次にS73によって、ランダム5カウンタの値によりラッキーナンバー表示LED19の停止位置をセットする処理が行なわれる。
S74ではプロセスフラグに「12」がセットされる。プロセスフラグが12にセットされることにより、S7のプロセス処理が次回実行される際には図9(a)を参照して後述するサブCPUコマンドセット中処理が実行されることになる。S74の後このサブルーチンは終了する。
S62ないしS64の処理によって、可変表示装置の停止時の表示結果が特定の表示態様の組合せとなるかどうかが決定される。各回転ドラムには21通りの図柄が描かれており、かつ大当りとなる図柄の組合せは8通りの大当り図柄の5ラインすなわち40通りあるので、表示上の大当りの発生する確率は40/213 ≒1/231.5となる。一方、ソフト上の大当りとなる確率は、図7(a)のS62ないし64からわかるようにランダム1カウンタのとり得る値の範囲によって定まる。この実施の形態の場合にはランダム1カウンタは0〜351の値をとり、大当りはそのうちの1通りまたは5通り(確変時)である。したがってソフト上の大当りが発生する確率は前述のように1/352または5/352となる。
図8(a)は、プロセスフラグが「3」のときに行なわれるはずれ図柄セットのサブルーチンプログラムを示すフローチャートである。この処理はプロセスフラグが「3」にセットされている場合、すなわち抽選の結果はずれと判定された場合に実行される。
まずS75により、入賞記憶エリア1に格納されているランダム3カウンタの値の下位データと、前回の左停止図柄ナンバーとを加算する処理が行なわれる。S76で、S75の加算の結果が21以上かどうかについての判断が行なわれ、21以上である場合にはS77で加算結果から21が減算されてS78に進むS75〜S77によって新たな左停止図柄ナンバーが決定され、S78でセットされる。S75〜S78によって停止図柄ナンバーを決定することにより、ランダム3のみによって停止図柄を決定させる場合よりも各図柄の出現の態様(出目)が偏ることが減少するという効果がある。
S79〜S82、S83〜S86はそれぞれ、S75〜S78と同様の処理を停止図柄ナンバー中と停止図柄ナンバー右とに行なうための処理である。加算に用いられるランダム3カウンタの値がそれぞれ中位と上位とであることを除き、これらの処理は停止図柄ナンバー左を決定するときの処理と同様であるので、ここではその詳細は省略する。
S87では、大当りフラグをクリアし、再回転図柄数をクリアし、大当りチェック待ち時間(245すなわち490ms)がセットされ、大当り図柄テーブルのアドレスがセットされ、プロセスフラグが4にセットされる。この大当り図柄テーブルアドレスとは、後述する図8(b)のはずれ図柄チェック処理のS88において大当り図柄テーブルからデータを読出す際の、テーブルアドレスの先頭を示す。またプロセスフラグに「4」がセットされるために、次回プロセス処理が実行される場合にははずれ図柄チェック処理が行なわれることになる。
図8(b)は、プロセスフラグが「4」〜「11」のときに行なわれるはずれ図柄チェック処理のサブルーチンプログラムのフローチャートである。この処理は、リーチラインがどこに発生しているか、図8(a)で行なわれたはずれ図柄セット処理の結果、停止図柄が偶然大当りの組合せになってしまっているラインがないか否かを判定するための処理である。本実施の形態のような回転ドラムによる可変表示装置の場合には、大当りが発生する可能性のあるラインは全部で5つである。また左、中、右の各図柄表示部に表示される大当り図柄は8通りである。そこで、このはずれ図柄チェック処理では、このはずれ図柄チェック処理が1回実行されるごとに、8図柄のうちの1つの図柄のみについて上述の5ラインについてのチェックを行ない、全部で8回繰返し実行することにより8図柄のすべてについてのチェックを行なう。プロセスフラグの4〜11は、この8図柄にそれぞれ対応する。このように1回につき1つの図柄のみについてチェックするのは、このメインルーチンを1回実行する間の処理の数を少なくし、所定の処理を終了する前にリセットされてしまい遊技制御が異常となることを防止するためである。
まず、S88では、S87でセットされた大当り図柄テーブルアドレスに従って大当り図柄テーブルからデータの読出処理が行なわれる。そして変数「チェック回数」に「5」がセットされる。
S89では、チェック回数が0かどうかについての判断が行なわれる。0であればS99に、0でなければS90にそれぞれ処理が進む。S90では、大当り図柄テーブルが終了したかどうかについての判断が行なわれる。終了した場合にはS99に、終了していない場合にはS91にそれぞれ制御が進む。S91では、停止図柄の左が当該テーブルの当り図柄かどうかについての判断が行なわれる。当り図柄でなければS93に、当り図柄であればS92にそれぞれ制御が進む。S92では、停止図柄の右図柄が当り図柄かどうかについての判断が行なわれる。当り図柄であれば制御はS94に、当り図柄でなければ制御はS93にそれぞれ進む。S91でYES、S92でもYESという結果が得られた場合にはリーチ発生という判断が行なわれる。
S93では、大当り図柄テーブルのアドレスを更新し、チェック回数を1減算してS89に戻る。S93に制御が進んできた場合は、図8(a)のはずれ図柄セット処理でセットされた図柄が、大当りの組合せでも、リーチの組合せでもない場合である。したがってS89〜S93の処理を5ラインのすべてについてさらに繰返し実行する必要がある。そこでS93でチェック回数を1減算し、S89でこのチェック回数が0となるまでこの処理が繰返し実行される。
一方、S92でリーチが発生していると判断された場合には、その図柄の他のラインについてさらにチェックを行なう必要はない。そこでこの場合には制御はS94に進み、S94以下でリーチ時についてのチェックがさらに行なわれる。
まずS94では、ドラムランプデータ1、2(リーチ)に、該当するラインを特定するデータがセットされる。S95で大当りフラグに「リーチ」がセットされる。S96でランダム4カウンタの値により、空回転図柄数がセットされる。S97で、停止図柄の中図柄が当り図柄かどうかについての判断が行なわれる。当り図柄であればこのラインについて単にリーチだけではなく、大当りの組合せとなっているわけであるので、S98で停止図柄ナンバーの中を強制的に1ずらしてはずれの組合せにする処理が行なわれる。S97で当り図柄でないと判断された場合およびS98の後制御はS99に進む。
S99では、次回に参照すべき大当り図柄テーブルのアドレスがセットされて、プロセスフラグに1加算される。したがってプロセスフラグが4〜10である場合には引続き次のプロセス処理でもはずれ図柄チェック処理が行なわれ、プロセスフラグが11である場合には、次回プロセス処理が実行される場合にはサブCPUコマンドセット中処理が行なわれる。
図9(a)は、プロセスフラグが12のときに行なわれるサブCPUコマンドセット中処理のフローチャートである。まずS100で、入賞記憶エリアをシフトする処理が行なわれる。この処理により、入賞記憶エリア1に入賞記憶エリア2の内容が、入賞記憶エリア2に入賞記憶エリア3の内容が、入賞記憶エリア3に入賞記憶エリア4の内容がそれぞれシフトされ、入賞記憶エリア4の内容がクリアされる。S101で、ドラム回転フラグが通常回転を示す値(00H)にセットされる。このドラム回転フラグは、図14(a)のエリア8で示されるフラグであり、ゲーム制御用マイクロコンピュータからサブCPUに送信されるデータである。さらにS102では、後述するサブCPUコマンドセット中処理が行なわれ、S103でプロセスフラグに1加算されてサブCPUコマンドセット中処理が終了する。プロセスフラグが13となるために、次回プロセス処理が実行される場合には図9(c)に示されるサブCPUコマンド出力中処理が行なわれる。
図9(b)は、図9(a)のS102に示した制御データとしてのサブCPUコマンドセット処理のサブルーチンのプログラムのフローチャートである。まずS104で、図14(a)(b)に示されるコマンドヘッダ0〜6に、それぞれ固定の値をセットする処理が行なわれる。S105で、種類データとしてのコマンドコードに「01」をセットする処理が行なわれる。これにより、サブCPUコマンドとしてドラム回転制御用データが送信されるように設定される。S106で、図9(a)のS101で設定されたドラム回転フラグの内容をエリア8にセットする。S107で、大当り図柄セット処理またははずれ図柄セット処理でセットされた停止図柄ナンバーの左、中、右の値をそれぞれエリア9〜11にセットする処理が行なわれる。
S108では、大当りフラグの内容をセットする処理が行なわれる。この大当りフラグは1バイトのデータであり、ビット0、1にドラム回転増カウンタの値がセットされ、ビット3はリーチのとき1に設定され、ビット4は確率変動図柄でリーチのとき1に設定され、ビット5は確率変動図柄で大当りのとき1に設定され、ビット7は大当りのときに1に設定される。
S109で空回転図柄数が、S110で再回転図柄数がそれぞれ図14(a)のエリア13、14にセットされた後、S111でコマンド出力カウンタを「1」にセットする処理が行なわれる。このコマンド出力カウンタは、メインCPUからサブCPUに送信されるデータの数をカウントするためのものであり、コマンド出力カウンタが1であればサブCPUコマンドの1番目のデータ(第1バイト目)が送信されることになる。ドラム回転制御用データの場合にはこのコマンド出力カウンタが後述するように15になるまで、ドラムランプ制御用データの場合には13になるまでサブCPUコマンドの出力が行なわれる。
図9(c)は、プロセスフラグが13のときに行なわれるサブCPUコマンド出力中処理のサブルーチンプログラムのフローチャートである。まずS112で、モータをONさせる処理、すなわちモータに与えられる電圧を通常電圧とする処理が行なわれる。続いてS113で、コマンド出力カウンタが0かどうかについての判断が行なわれる。0であれば制御はS114に進み、0でなければこのサブルーチンプログラムは直ちに終了する。
S114では、ドラム回転カウンタに0がセットされ、続いてS115でプロセスタイマに左ドラム停止待ち時間に相当する値がセットされる。本実施の形態の場合には左ドラム停止待ち時間として約0.646秒が設定される。さらにプロセスフラグに1が加算されてこのサブルーチンプログラムは終了する。プロセスフラグが1加算されるために、次回プロセス処理が実行される際には左ドラム停止待ち処理が実行されることになる。
図10は、プロセスフラグが14〜18のときに行なわれるドラム停止待ち処理のサブルーチンプログラムのフローチャートである。プロセスフラグが14のときには左ドラム停止待ち処理が、15のときには右ドラム停止待ち処理が、16のときには中ドラム停止待ち処理が、17のときには中ドラム停止待ち処理(リーチ)が、18のときには中ドラム停止待ち処理(確変リーチ)が、それぞれ行なわれる。
まずS116で、プロセスタイマが0になったか否かについての判断が行なわれる。0であれば制御はS119に進む。0でなければS117に進みプロセスタイマをさらに1減算して、S118でプロセスタイマが0になったか否かについての判断が行なわれる。プロセスタイマが0であればS119に進む。すなわち、プロセスタイマが0となるまで所定時間が経過して初めてS119以下に処理が進み、該当するドラムが停止されることになる。
S119では、ドラム停止音のデータがセットされる。S120では、プロセスフラグが14かどうかについての判断が行なわれる。プロセスフラグが14とは、左ドラムの停止待ち処理であることを示す。14以外の場合にはS122に制御が進む。14であればS121に進み、プロセスタイマに右ドラム停止待ち時間(0.8秒)がセットされ、プロセスフラグが1加算されてこのサブルーチンプログラムは終了する。プロセスフラグが15となるために、次にプロセス処理が実行されるときには右ドラム停止待ち処理が行なわれ、S120における判断の答えがNOとなる。
S122では、プロセスフラグが15かどうかについての判断が行なわれる。15以外の場合にはS132に進む。15であればS123に進み、ドラム回転カウンタが12未満かどうかについての判断が行なわれる。ドラム回転カウンタが12未満であれば何らかの原因でモータが停止していると判断されるためにS124に制御が進み、エラーフラグにモータエラーを示す値(08H)がセットされてこのサブルーチンプログラムは終了する。12以上であればS125に進み、プロセスタイマに中ドラム停止待ち時間(0.8秒)がセットされ、プロセスフラグに16がセットされる。プロセスフラグに16がセットされるために次回にプロセス処理が実行されるときには、中ドラム停止待ち処理が行なわれることになる。続いてS126で、大当りフラグがリーチとなっているかどうかについての判断が行なわれる。リーチであればS127に進むが、リーチでなければこのままこのサブルーチンプログラムは終了する。
S127では、停止図柄ナンバー中の値から、前回の停止図柄ナンバー中の値と再回転図柄数とを減算した結果と、空回転図柄数とに応じ、予め準備されたリーチ時間テーブルを参照してリーチ時間を算出する処理が行なわれる。このリーチ時間とは、右ドラムが停止したときから、中ドラムが最終的に停止するときまでの時間を示す。さらにS128でプロセスフラグに17がセットされる。プロセスフラグに17がセットされるために、次回プロセス処理が行なわれるときには中ドラム停止待ち処理(リーチ)が実行されることになる。S128の後処理はS129に進む。
S129ではさらに、大当りフラグが確変リーチを示す値かどうかについての判断が行なわれる。確変リーチであればS130でプロセスフラグに18がセットされ、S131に進む。確変リーチでなければ直接S131に進む。プロセスフラグに18がセットされた場合には、次回のプロセス処理では中ドラム停止待ち処理(確変リーチ)が実行されることになる。
S131では、S127で算出された時間が、プロセスタイマにセットされてこのサブルーチンプログラムを終了する。
図11(a)は、プロセスフラグが19のときに行なわれる大当りチェック処理のサブルーチンプログラムのフローチャートを示す。まずS133で、プロセスタイマが0となったか否かについての判断が行なわれる。プロセスタイマが未だ0でなければこのサブルーチンプログラムは直ちに終了し、プロセスタイマが0となって初めてS134に制御が進む。
S134では、モータをOFFさせる処理、すなわちモータに印加される電圧を低電圧とする処理が行なわれる。続いてS135では、中図柄ナンバーを前回中図柄ナンバー格納エリアに格納する処理が行なわれる。
続いてS136では、大当りフラグが大当りとなっているかどうかについての判断が行なわれる。大当りでなければS137でプロセスフラグに0がセットされてこのサブルーチンプログラムは終了する。したがってこの場合には通常処理に制御が戻ることになる。大当りフラグが大当りであれば制御はS138に進む。S138では、確率変動カウンタが0かどうかについての判断が行なわれる。この確率変動カウンタは、確率変動図柄で大当りした場合に「2」がセットされるものである。0であれば直ちに制御はS140に進むが、0でなければS139で確率変動カウンタが1減算されてS140に進む。すなわち、確率変動カウンタは、確率変動図柄で大当りした場合に「2」がセットされた後、大当りが発生するたびに1ずつ減算される。そして0であれば大当りが発生する確率は低(通常)確率となり、0以外の場合に高確率となる。
S140では確率変動フラグをクリアする処理が行なわれる。これは、高確率時であっても、大当り中には一旦大当り発生の確率を低確率にするためである。続いてS141で、ラッキーナンバー表示用LEDの停止位置がセットされてラッキーナンバー表示用LEDの変動時間がセットされる。さらにS142で、プロセスタイマに開放前時間がセットされる。本実施の形態の場合には開放前時間として5秒に相当する時間がセットされる。そしてプロセスフラグに20がセットされてS143に進む。プロセスフラグに20がセットされたために、次にプロセス処理が実行されるときには開放前処理が行なわれることになる。
S143では、大当りフラグが確変大当りかどうかについての判断が行なわれる。確変大当りであれば制御はS144に進んでプロセスフラグに21がセットされる。S144の後、および大当りフラグが確変大当りでない場合にはこのサブルーチンは終了する。プロセスフラグに21がセットされた場合には、次回プロセス処理が実行されるときには開放前処理(確変大当り)が実行されることになる。この開放前(確変大当り)の処理は、通常の開放前処理とは効果音やドラムランプその他のランプ制御が変えられ、遊技の興趣がより向上するようになっている。
図11(b)は、プロセスフラグが28となった場合に行なわれる大当り動作終了待ち処理のサブルーチンプログラムのフローチャートである。まずS145でプロセスタイマが終了したかどうかについての判断が行なわれる。プロセスタイマが終了して初めてS146に制御が進み、ホール用管理コンピュータなどに送信される大当り情報と確率変動情報とがOFFされる。続いてS147で、大当りフラグが確変大当りかどうかについての判断が行なわれる。確変大当りでない場合には制御はS149に進むが、確変大当りである場合にはS148で確率変動カウンタに2が設定された後S149に進む。
S149では、確率変動カウンタの値をそのまま確率変動フラグにセットする処理が行なわれる。続いてS150で、確率変動フラグがセットされているかどうか、すなわち確率変動フラグが0かどうかについての判断が行なわれ、0ならば制御はS152に進むが、0でない場合にはS151でホール用管理コンピュータに出力される確率変動情報がONされた後S152に進む。S152では、開放回数カウンタがクリアされた後プロセスフラグが0に設定され、次からは通常処理が実行されることになる。この大当り動作終了待ち処理により、大当り中には一旦低確率に戻されていた大当りの発生確率が、確率変動時には再び高確率に設定し直される。
図12(a)は、図4のS10に示したエラー復旧チェック処理のサブルーチンプログラムのフローチャートである。まずS153で、エラーフラグがセットされているかどうかについての判断が行なわれ、セットされていない場合には何もせずに直ちにこのサブルーチンプログラムは終了する。セットされている場合にはS154に進む。
S154ではVスイッチエラー復旧チェック処理が、続くS155では10カウントスイッチエラー復旧チェック処理がそれぞれ行なわれる。これら2つの処理では、Vスイッチまたは10カウントスイッチを用いた、予め定められたエラーフラグリセット処理に相当する処理が行なわれたかどうかについてのチェックを行なう。行なわれていると判断された場合にはエラーフラグをリセットする。たとえば、大当り中の1回の可変入賞球装置12の開放において入賞玉が1個も検出されなかった場合またはモータエラーが発生した場合、本実施の形態の場合には10カウントスイッチに遊技玉を1つ通すことによりエラーフラグがリセットされる。
S156では、S154、S155の処理の後なおかつエラーフラグがセットされているかどうかについての判断が行なわれる。未だセットされていれば制御はS161に進む。セットされていなければ制御はS157に進む。
S157ではプロセスフラグが13未満かどうかについての判断が行なわれる。13未満であれば制御はS161に進む。13以上であれば制御はS158に進み、プロセスフラグが18よりも大きいかどうかについての判断が行なわれる。18よりも大きければ制御はS161に進む。18以下であれば制御はS159に進む。このS157、S158の処理により、プロセスフラグが13以上18以下である場合、すなわちモータが回転中であるべき場合のみに制御がS159に進むことになる。これ以外の場合には改めてモータを復旧させる必要がなく、前述のように直接制御はS161に進む。
S159では、サブCPUを用いてドラムモータに対して初期動作を行なわせるモータ復旧フラグがセットされる。続いてS160ではサブCPUコマンドセット処理が行なわれる。このサブCPUコマンドセット処理については図9(b)を参照して既に説明した。なお、サブCPUコマンドセット処理におけるS106においては、モータ復旧フラグの値(通常時0,復旧時1)がそのままセットされることになる。
S156でエラーフラグがセットされていると判断された場合、S157、S158でプロセスフラグが13未満または18よりも大きいと判断された場合、およびS160が実行された後には、制御はS161に進み、エラーフラグの内容がセットされてこのサブルーチンプログラムは終了する。
図12(b)は、図4のS11に示したサブCPUコマンド出力セット処理とサブルーチンプログラムのフローチャートである。まずS162で、コマンド出力カウンタが0かどうかについての判断が行なわれる。0であればこのサブルーチンプログラムは直ちに終了する。0以外であれば制御はS163に進み、サブCPUコマンド出力がセットされる。続いてS164でコマンド出力カウンタが1加算される。さらにS165で、図14(a)(b)に示されるエリア7のコマンドコードが「01」かどうかについての判断が行なわれる。01であれば全部で15のエリアを有するドラム回転制御用データの送信であり、そうでない場合には全部で13のデータを有するドラムランプ制御用データの出力である。そこでコマンドコードが01であればS166に進み、コマンド出力カウンタが15以下かどうかについての判断が行なわれる。15以下であればこのサブルーチンプログラムは終了する。15を超えていればS168に進み、コマンド出力カウンタを0クリアする処理が行なわれてこのサブルーチンプログラムは終了する。
一方S165でコマンドコードが01ではないと判断された場合にはS167に進み、コマンド出力カウンタが13以下かどうかについての判断が行なわれる。13以下であればこのサブルーチンプログラムは直ちに終了するが、13を超えていればS168に進み、コマンド出力カウンタが0クリアされてこのサブルーチンプログラムは終了する。
図13(a)は、図4のS20に示した入賞記憶エリア格納処理のサブルーチンプログラムを示すフローチャートである。S169により、始動入賞数が「0」であるか否かの判断が行なわれる。この始動入賞数は、後述するS177により「1」ずつ加算され、後述するS171により「1」ずつ減算される。始動入賞数が「0」の場合にはこのままサブルーチンプログラムは終了する。始動入賞数が0でない場合にはS170に進み、ランダム1カウンタ,ランダム2カウンタ,ランダム3カウンタの値を始動入賞記憶エリアの、対応するエリアにそれぞれ格納する処理が行なわれる。この始動入賞記憶エリアは、始動入賞記憶数に応じて各ランダムカウンタの値を記憶するための複数個(本実施の形態では4個)のカウント値格納用のエリアを有する。
次にS171に進み、始動入賞数を前述のように「1」減算する処理が行なわれ、再び処理はS169に戻る。S169〜S171の処理は始動入賞数が「0」になるまで繰返し行なわれる。この入賞記憶エリア格納処理により、始動入賞毎に、それに対応するランダム1カウンタ,ランダム2カウンタ,ランダム3カウンタの値がそれぞれの入賞記憶エリアに格納される。
図13(b)は、図4のS9に示したスイッチ入力処理のサブルーチンプログラムを示すフローチャートである。まずS172により、I/Oポートから、各種検出器の検出信号を入力する処理が行なわれる。次にS173により、10カウントスイッチ(入賞個数検出器)16に断線やショート等のエラーが発生しているか否か等を、エラーフラグがセットされているかどうかによって確認する処理が行なわれ、エラーが発生している場合にはS178に制御が進む。
エラーフラグがセットされていない場合には制御はS174に進み、始動口スイッチからの信号がONとなっているかどうかについての判断が行なわれる。ONとなっていれば制御はS178に進むが、ONとなっていなければ制御はS175に進む。S175では、始動口スイッチに始動入賞玉が入賞したと判断してよいかどうかについての判断が行なわれる。すなわち、入賞タイミングとなっているかどうかについての判断が行なわれる。本実施の形態の場合には、始動口スイッチがONの状態が所定時間続き、OFFに立下がったときに入賞タイミングと判定しているので、S174、S175のような判断処理が行なわれる。
S175で入賞タイミングでないと判断された場合にはS178に進むが、入賞タイミングであればS176に進む。
S176では、入賞記憶数が既に4以上かどうかについての判断が行なわれ、4以上であればこれ以上記憶する余地がないために制御はS178に進む。4未満であればS177に進み、入賞記憶数および始動入賞数がともに1ずつ加算される。S177の後制御はS178に進む。
S178ではVスイッチにエラーが発生しているか否かを調べる処理が行なわれ、エラーが発生している場合にはVスイッチエラーフラグがセットされる。同様にS179では10カウントスイッチにエラーが発生しているか否かを調べる処理が行なわれ、エラーが発生している場合には10カウントスイッチエラーフラグがセットされる。
パチンコ玉が始動口10に入賞して始動スイッチ11によって検出された場合、始動スイッチ11からは所定のパルス幅を有する検出パルスが導出され、基本回路21に与えられる。この場合その検出パルスのパルス幅の時間中スイッチ入力処理のサブルーチンが実行される毎にS174によりYESの判断が続けて行なわれる。その度に始動口スイッチのONカウンタがカウントアップされ、そのカウント値が所定の値(たとえば3)以上に達し、かつ始動口スイッチが再びOFFとなって初めてS175によってYESの判断が行なわれ、始動入賞があったものと判定される。一方、静電気などに起因したノイズにより始動スイッチ11からの出力が瞬間的にONと判断されるような値になる場合があるが、そのような場合には始動スイッチ11からの入力はパルス幅がほとんど0に近い信号となる。そのために、仮にそのようなノイズが入力されたタイミングと同一のタイミングでS174の判断が1回行なわれてONカウンタの値が1加算されたとしても、そのパルスの立下がり時にS175において続いて行なわれるONカウンタが所定の数(たとえば3)になったか否かの判断においてはNOと判断されるために、ただちに始動口スイッチ11がパチンコ玉を検出したとは判断されない。そして、続くスイッチ入力処理が実行されたときにはノイズはすでに立下がってしまっているために、S175における判断が必ずNOとなり、始動口スイッチのONカウンタがクリアされる。したがって、ノイズによって始動口スイッチがONしていると誤判断されるおそれはない。
図14は、図4のS11、図9(a)〜(c)に示したサブCPUコマンドの内容を示す模式図である。
図14(a)を参照して、ゲーム制御用マイクロコンピュータに用意されたサブCPUコマンドエリアは、それぞれ固定データ(“1FH”“00H”“01H”“02H”“04H”“08H”“10H”)が格納されるヘッダ0〜6と、以下に続くデータがドラム回転制御用のデータであるのか、ドラムランプ制御用のデータであるのかを示すためのコマンドコードエリア7とを含む。これらのうちサブCPUコマンドエリア1〜14と同様の領域が、サブ基本回路(サブCPU)22にもサブCPUコマンド入力エリアとして用意されており、基本回路21のドラム制御コマンドエリアの各データエリアのデータが、サブCPUコマンド入力エリアの対応するデータエリアに伝送される。
コマンドコードが“01”である場合には、コマンドコードの次の7つのエリアが有効であり、それぞれ、ドラム回転コードのエリア(00は通常回転、01は異常復旧をそれぞれ示す)8と、それぞれ21通り(16進表示で00〜14)の値を取り得る左、中、右の各停止図柄を指定するエリア9、10、11と、大当りフラグ(ドラム回転増カウンタ、リーチ、確率変動図柄によるリーチ、確率変動図柄による大当たり、大当り)のためのエリア12と、空回転図柄数(00、01の2通り)を格納するためのエリア13と、大当たり時の再回転図柄数(00〜14Hの21通り)を格納するためのエリア14となっている。再回転図柄数とは、大当たり時に、図柄を最終的に停止する前に一旦停止させ、その後再び回転させたのち最終の停止図柄に停止させて、大当たり時の遊技の興趣を向上させるためのものである。
コマンドコードが“02”である場合には、5つのエリアが有効であり、それぞれ、6通りの値(00〜05、00は通常、01はドラム回転中、02はリーチ中またははずれインターバル中、03は開放前、04は開放中、05は開放後をそれぞれ示す)を採りうるドラム制御コードを格納するエリア8と、リーチ時のドラムランプデータを格納するエリア9、10と、大当たり時のドラムランプデータを格納するためのエリア11、12となっている。
サブCPUでは、入力されるデータの先頭が1Fか否か、さらにその後ろの6バイトが固定ヘッダと一致するか否かを判定してサブCPUコマンドが入力されたと判断し、続くエリア7のコマンドコードが01であるか、02であるかを判定して、その後の7つまたは5つのエリアがドラム回転制御用のデータであるか、ドラムランプ制御用のデータであるかを判断する。
一般に、ドラム回転制御用データは、可変開始時のみサブCPUに送ればよく、サブCPUは、送られたドラム回転制御用データに従ってドラムモータを制御してサブCPUコマンドで指定された停止図柄でモータを停止させる。したがって、可変表示を行なっていないとき、および可変表示が開始された後には、ドラム回転制御用データをサブCPUに送信する必要はない。一方、ドラムランプ制御用データは、可変表示中か否かを問わず送信する必要がある。そこで、上述のようにサブCPUコマンドとして2通り用意し、可変表示の開始時のみコマンドコード“01”のデータを、その他の時にはコマンドコード“02”のデータを送信するようにする。このようにすることにより、ドラム回転制御用のデータとドラムランプ制御用のデータとを同時に送信する場合と比較して一回あたりに送信されるデータ量が減少し、送信に必要な時間も短くなり、そのためにゲーム制御用マイクロコンピュータの負担が軽くなるという効果がある。
なお、本実施の形態の遊技機では、ゲーム制御用マイクロコンピュータからサブCPUへは、各停止図柄を特定する情報が送信され、現在の表示図柄を示す情報は送信されない。しかし本発明はこれには限定されず、必要に応じて現在どの図柄を表示するかを指定する情報をゲーム制御用マイクロコンピュータからサブCPUに送信するようにしてもよい。
図14(b)を参照して、ドラムランプ制御用コードは00〜05Hのいずれかをとる。00であれば通常状態、01であればドラム回転中、02であればリーチ回転中またははずれインターバル中、03であれば開放前、04であれば開放中、05であれば開放後であることを示す。ドラムランプデータ1、2(リーチ)およびドラムランプデータ1、2(大当り)はそれぞれ、リーチの発生したまたは大当りの発生したラインがどれかを示すために特定するデータである。
図15〜図21は、サブCPUで実行される可変表示装置の制御用プログラムのフローチャートであり、図22(a)はモータ制御用エリアを示し、図22(b)はモータの加速・減速中に参照されるモータ制御データテーブルを示す。
図15(a)は、可変表示装置を制御するためのサブCPUのメインルーチンのフローチャートである。このメインルーチンは、図3に示されるクロック用リセットパルス発生回路23からのリセットパルスに応答して、所定時間ごとにその先頭から繰返し実行される。
まずS201において、I/Oポートの初期化と、割込マスクのセットとが行なわれる。続いてS202では、RAMの所定アドレスのデータを読出し、その値が所定の値(たとえば6805H)かどうかを判断することによってRAMが正常状態かどうかについての判断が行なわれる。電源投入直後にはRAMの格納内容は不定であるために、S202における判断の結果はS203に進み、システムイニシャル処理が行なわれることになる。このシステムイニシャル処理では、後述するようにRAMの所定アドレスに所定のデータ(前述の6805H)が書込まれる。したがってシステムイニシャル処理が完了した後には、S202における判断の結果がYESとなり制御はS204に進む。S203の内容については図16を参照して後述する。
S204では、I/Oの出力が行なわれて、S205で表示タイマの更新が行なわれる。この表示タイマとは、表示のためのクロックとして用いられるタイマであって、8msecごとに1ずつ加算される。さらにS206では、このサブCPUのプログラムに予め準備された動作フラグの値に応じて、各プロセスルーチンにジャンプする処理が行なわれる。この処理はちょうど図4に示されるS7の処理と同様のものであり、S7のプロセスフラグが図15(a)の動作フラグに対応する。各プロセスルーチンについては後述するが、動作フラグが0のときには動作停止状態、動作フラグが1のときにはドラム回転スタート、動作フラグが2のときにはドラム回転中の処理がそれぞれ行なわれる。続いてS207では、ドラムランプデータセット処理、サブCPUコマンドチェック処理、サブCPUコマンド入力処理がそれぞれ行なわれる。このS207の処理の詳細についてはそれぞれ図15(b)、図18(a)、図17(a)を参照して後述する。
図15(b)は、S207で行なわれるドラムランプデータセット処理のサブルーチンプログラムのフローチャートである。まずS237で、ドラムランプ制御用コードが0か、1か、2か、3または5か、4かについての判断が行なわれる。このドラムランプ制御用コードは、図14(b)のドラムランプ制御用データのうちエリア8に格納される、メインCPUから送信されてくるデータを指す。
ドラムランプ制御用コードが0のときには、通常の処理が行なわれ、ドラムランプを1024ms間隔で点滅させるためのデータがセットされる。
ドラムランプ制御用コードが1のときには、ドラム回転中処理に対応するドラムランプデータのセットが行なわれる。すなわちS239で、全ドラムランプを点灯させるデータがセットされる。
ドラムランプ制御用コードが2のときには、リーチ回転中またははずれインターバルに対応するデータのセットが行なわれる。まず、S240で大当りフラグがリーチとなっているかどうかについての判断が行なわれ、リーチであればS241に進み、リーチでなければS239に進む。S239では前述のように全ドラムランプを点灯させるデータがセットされる。一方S241では、リーチに対応したドラムランプの点灯を行なうためのデータのセットが行なわれる。すなわち、中ドラムランプは点灯させ、図14(b)のエリア9、10に示されるドラムランプデータ(リーチ)に応じ、左右のドラムランプを128ms間隔で点滅させるためのデータのセットが行なわれる。
ドラムランプ制御用コードが3または5のときには、それぞれ開放前処理と開放後処理に対応したドラムランプデータのセットが行なわれる。まずS242では、図14(b)のエリア11、12によってメインCPUから送信されるドラムランプデータ(大当り)に応じて定まる行のドラムランプを256ms間隔で点滅させるためのデータのセットが行なわれる。
ドラムランプ制御用コードが4のときには、開放中処理に対応するドラムランプの制御が行なわれる。すなわち、S243で、メインCPUから送信されてくるドラムランプデータ(大当り)に応じ、大当りが発生したラインのドラムランプを128ms間隔で点滅させるためのデータのセットが行なわれる。これら処理が終了するとドラムランプデータセット処理のサブルーチンプログラムが終了する。
図16は、図15のS203に示されるシステムイニシャル処理のサブルーチンプログラムのフローチャートである。このシステムイニシャル処理は、後述するように7段階に分けて実行される。このうち、第1段階から第3段階までは1回ずつ行なわれ、それ以降の処理については所定のプロセスタイマが終了するまで繰返し実行される。
まずS208およびS209により、RAMの所定アドレスのパターンデータが5086Hかどうかについての判断が行なわれる。5086Hでない場合にはこのシステムイニシャル処理が初めて実行される(第1回目)ものと判断され、S210に進む。S210では、第1段階の処理として変数「イニシャルステップ」に「1」がセットされ、パターンデータに5086Hがセットされてこのサブルーチンプログラムは終了する。S210でRAMの所定アドレスに5086Hというデータが書込まれるために、図15(a)のS202における判断の答えは引続きNOであるが、S208、S209(図16)における判断の答えはともにYESとなり、システムイニシャル処理が次に実行される場合にはS211に進む。
S211では、イニシャルステップが1かどうかについての判断が行なわれる。イニシャルステップが1であればS212に進み、イニシャルステップが1加算され、RAMエリアが0クリアされる。このS212の処理が第2段階の処理に相当する。S212の後このサブルーチンプログラムは終了する。
S211における判断の結果イニシャルステップが1でないと判断された場合には制御はS213に進む。S213では、I/O出力が行なわれ、さらにS214でイニシャルステップが2かどうかについての判断が行なわれる。2であれば制御はS215に進み、システムイニシャル処理の第3段階の処理が行なわれる。すなわち、S215では、モータ励磁パターンの3が出力され、プロセスタイマに250(0.5秒)がセットされ、さらにイニシャルステップが1加算される。S215の後このサブルーチンプログラムは終了する。
イニシャルステップが1加算されて3となったために、次回このシステムイニシャル処理が実行されるときにはS214における判断の結果がNOとなり、制御はS216に進む。S216ではイニシャルステップが3かどうかについての判断が行なわれる。3であればS217に進み、システムイニシャル処理の第4段階の処理が行なわれる。まずS217で、S215でセットされたプロセスタイマが1減算され、S218でプロセスタイマが0となったかどうかについての判断が行なわれる。0でなければこのサブルーチンプログラムは終了し、0となって初めてS219に制御が進む。すなわち、0.5秒が経過して初めてS219の処理が行なわれる。S219では、モータ励磁パターン0(基準パターン)が出力され、プロセスタイマに再び250(0.5秒)がセットされ、イニシャルステップが1加算される。S219の後このサブルーチンプログラムは終了する。イニシャルステップが1加算されて4になったために、次にこのシステムイニシャル処理が実行されるときにはS216における判断の結果がNOとなり、制御はS220に進む。
S220では、イニシャルステップが4かどうかについての判断が行なわれる。4であればS221に進み、システムイニシャル処理の第5段階の処理が行なわれる。まずS221で、S219でセットされたプロセスタイマが1減算され、S222でプロセスタイマが終了したかどうかについての判断が行なわれる。終了しない場合にはこのサブルーチンプログラムは終了し、プロセスタイマが終了して初めてS223に制御が進む。S223では、イニシャルタイマがセットされ、センサチェックカウンタに対して初期値(70)がセットされる。さらにS224では、後述するドラム回転スタート処理が行なわれる。S225ではイニシャルステップに1加算され、このサブルーチンプログラムは終了する。イニシャルステップが5となるために、次のシステムイニシャル処理の実行ではS220における判断の結果がNOとなり、制御はS226に進む。
S226では、イニシャルステップが5かどうかについての判断が行なわれる。5であればS227に進み、システムイニシャル処理の第6段階の処理が行なわれる。まずS227で、S223でセットされたイニシャルタイマが0かどうかについての判断が行なわれる。0であればS229に進むが、0でなければS228でイニシャルタイマが1減算された後S229に進む。このイニシャルタイマとは、後述するようにシステムイニシャル処理の第5段階の処理から第7段階の処理までの間に、少なくとも所定の間隔をおくために用いられるものである。
S229では、後述するドラム回転処理が行なわれる。続いてS230では、動作フラグが0かどうかについての判断が行なわれる。この動作フラグが0である場合にはS231でイニシャルステップが1加算されてこのサブルーチンプログラムは終了する。動作フラグが0でなければこのサブルーチンプログラムは直ちに終了する。S231でイニシャルステップが1加算されて6となった場合には、次にこのシステムイニシャル処理が実行された場合、S226における判断の結果がNOとなり、制御はS232に進む。
S232以下がシステムイニシャル処理の最終段階(第7段階)の処理である。まずS232で、イニシャルステップが6かどうかについての判断が行なわれる。6以外であればこのサブルーチンプログラムは直ちに終了する。6であればS233に制御が進み、S223でセットされたイニシャルタイマが0となっているかどうかについての判断が行なわれる。0でなければS234に進み、イニシャルタイマが1減算される。さらにS235でイニシャルタイマが0かどうかについての判断が行なわれ、0であればS236に進むが、未だ0となっていない場合にはこのサブルーチンプログラムは直ちに終了する。したがって、S223でセットされたイニシャルタイマが終了して初めてS236の処理が行なわれることになる。S236では、まずサブCPUコマンド長に14がセットされ、表示タイマに初期値がセットされ、イニシャルステップに0がセットされ、パターンデータに6805Hがセットされる。S236の後このシステムイニシャル処理は終了する。S236においてパターンデータに6805Hが書込まれることにより、次に図15(a)のメインルーチンが実行された場合、S202における判断の結果がYESとなり、S204以下の処理が実行されることになる。
図17(a)は、サブCPU側で、メインCPUからのサブCPUコマンドを受取るサブCPUコマンド入力処理のサブルーチンプログラムのフローチャートである。この処理は図15(a)のS207において行なわれる。
まずS330において、入力データが「1F」かどうかについての判断が行なわれる。これは、図14(a)(b)に示されるように、サブCPUコマンドのヘッダ0が“1F”となっていることから、このヘッダ0を検出することによりコマンド入力を開始すべきか否かを判断しているためである。S330において入力データが1Fであると判断された場合にはS331に進み、コマンド入力カウンタの値を1にしてこのサブルーチンプログラムは終了する。一方1Fでない場合には、S332に進み、コマンド入力カウンタが0かどうかについての判断が行なわれる。0である場合にはサブCPUコマンドの入力が開始されていないということであるからこのサブルーチンプログラムは終了する。0でなければS333に進む。
S333では、送信されてきたサブCPUコマンドの1バイトを、所定の記憶エリアに格納するサブCPUコマンドセット処理が行なわれる。続いてS334では、コマンド入力カウンタが7かどうかについての判断が行なわれる。7でなければ制御はS338に進み、7であれば制御はS335に進む。このS334の処理は、図14に示されるサブCPUコマンドのヘッダ1〜6とそれ以降とで異なる処理を行なうためである。S335では、S333でセットされたサブCPUコマンドが、エリア7のデータ、すなわちコマンドコードであることから、このコマンドコードが「01」かどうかについての判断が行なわれる。「01」であれば図14(a)に示されるドラム回転制御用データであるためS336でコマンド長として14をセットしS338に進む。1でなければ図14(b)に示されるドラムランプ制御用データであるから、S337に進みコマンド長として12をセットしてS338に進む。
S338では、コマンド入力カウンタを1加算し、S339で加算後のコマンド入力カウンタが、S336またはS337でセットされたコマンド長未満かどうかについての判断が行なわれる。S339における判断の結果がYESであればこのサブルーチンプログラムは直ちに終了するが、NOであればS340に進み、コマンドの入力が完了したことを示すための処理、すなわちコマンド入力フラグのセットと、コマンド入力カウンタのクリアとが行なわれる。コマンド長については、S336またはS337において14または12がそれぞれ設定され、この値はクリアされない。したがってS334における判断の結果がNOとなってS338からS339に制御が進んだ場合、カウンタが6以下である場合には前回のサブCPUコマンド入力処理でセットされたコマンド長が用いられ、7以降の場合には今回のサブCPUコマンド入力処理のS336またはS337でセットされたコマンド長が用いられる。カウンタが6以下の場合に前回までのコマンド長が用いられたとしても、カウンタ=7となった時点で今回のサブCPUコマンド入力処理におけるコマンド長が正しく設定されるために、S339における判断は、現在のサブCPUコマンドのコマンドコードに基づいて正しく行なわれる。
図17(b)は、図16のS224で実行されるドラム回転スタート処理のサブルーチンプログラムのフローチャートである。まずS341において、モータ制御フラグが加速/減速を示す値に設定され、定速送り図柄数がセットされる。この定速送り図柄数とは、ドラムの回転開始後、所定の速度に達した後に各ドラムが停止するまでに回転表示される図柄数をいい、左ドラムに対しては「1」、中ドラムに対しては「11」、右ドラムに対しては「6」がそれぞれ設定される。なお、定速送りの場合には、モータの1ステップは20msであり、1つの図柄を送るためには、8ステップを要する。したがって、定速送り時には、160ms当り1図柄という速度での図柄の送りが行なわれる。なお、本実施の形態では左、中、右の各ドラムモータを制御するためのモータ制御エリアをそれぞれにつき1つずつ設けている。そのモータ制御エリアを模式的に図22(a)に示す。
以下の処理の説明の前に、この図22(a)について簡単に説明する。図22(a)を参照して、たとえば左モータ制御エリアは、モータ制御フラグエリアと、停止図柄ナンバーエリアと、1ステップタイマエリアと、次回1ステップタイマデータセーブエリアと、現在モータステップナンバーエリアと、センサONカウンタのエリアと、センサチェックカウンタのエリアと、センサマスクデータのエリアと、1図柄中のステップ数のエリアと、現在図柄ナンバーのエリアと、定速送り図柄数のエリアとを含む。
モータ制御フラグエリアはその下位4ビットを使用する。最下位のビット0は加速・減速中を示す。この場合モータの制御にはテーブルデータが使用される。その内容については後述する。ビット1は定速中処理を示す。ビット2は停止中処理を示す。ビット3は大当り時の図柄の一旦停止に対応する、一時停止中処理を示す。現在モータステップナンバーは、00〜03の範囲のいずれかの値をとる。センサチェックカウンタは、モータエラーの検出用に用いられる。センサマスクデータは、左モータとして10H、中モータとして20H、右モータ用として40Hが用いられる。1図柄中のステップ数は、前述したように8ステップであるから、00〜07の範囲の値のいずれかが格納される。現在図柄ナンバーは、現在表示中の図柄ナンバーを示し、前述のように21通りあるので、00〜14Hの値をとる。定速送り図柄数は、前述したように左モータについては01H、中モータについては0BH(十進表示で11)、右モータについては06Hがそれぞれ設定される。
S342を参照して、まず各モータにつき、1ステップタイマの初期値がセットされる。本実施の形態の場合には左モータについては1が、中モータについては2が、右モータについては3がそれぞれセットされる。続いて各モータ制御エリアのエリア3のステップ数が初期値にセットされる。すなわち0クリアされる。続いて左中右の各モータ制御エリアを参照して、ドラム制御用データアドレスをセットする処理が行なわれる。このドラム制御用データは、図柄の回転開始後終了までに要する時間を、回転開始時の図柄には関係なく一定にするために用意されたものである。その一例が図22(b)に示されている。図22(b)には、例として2つのドラム制御データテーブルが示されているが、このテーブルが回転開始時の図柄と目的の図柄との関係がいかなる場合でも一定時間で目的の図柄まで送れるように全部で21種類用意されている。
図22(b)のたとえばDRTB16というデータテーブルは、図柄送りのステップ数として968ステップを6300msで送る場合のデータテーブルである。この6300msという数字はすべてのデータテーブルで共通である。DRTB16において、“,”の左側に示されている数字(たとえば16/2、14/2など)は、1ステップ当りのタイマカウント数、すなわちそのステップ送りに要する時間を示す。“,”の右側は、左側に記載されたワンステップ当りタイマカウント数で送るステップ数を表わす。ステップ数を縦に合計すると、DRTB16の場合には全部で968ステップとなる。1図柄については、前述したように8ステップを要するので、968ステップでは121図柄、すなわちドラムの5回転と16図柄の図柄送りが行なわれる。
一方、DRTB17は、6300msの間に808ステップの図柄送りを行なう場合のデータテーブルである。808ステップは、101図柄、すなわちドラムの4回転と17図柄に対応する。
DRTB16とDRTB17とを比較すると、上から5行目までと、下から6行目まではともに等しくなっている。上から5行目まではドラムの回転開始時、下から6行目まではドラムの停止時にそれぞれ対応する。上から6行目以降下から7行目までのデータが、ほぼ定速でドラムを回転させながら、ステップ数の違いを吸収して最終的に図柄が停止するまでの時間を一致させるように時間調整するために用いられている。
このようにドラムの回転開始後、ドラムの停止までの時間を一定にすることにより、メインCPUで可変表示を制御するために用意するタイマは、1種類ですむ。そのために、メインCPU側での可変表示のための制御の時間管理が容易に行なえるという効果がある。
再び図17(b)を参照して、S342の後、S343で、メインCPUから送信されてきた大当りフラグ(図14(a)参照)がリーチとなっているかどうかについての判断が行なわれる。リーチでない場合には制御はS345に進むが、リーチである場合にはS344に進み、中ドラム制御用テーブル0がセットされる。このS344の処理により、リーチの場合には、ドラム制御用データの終了時点で中ドラムについては表示された図柄は最初の図柄に戻ることになる。S345では、動作フラグに「2」がセットされてこのサブルーチンプログラムは終了する。動作フラグに「2」がセットされるため、次に図15のメインルーチンプログラムが行なわれる場合には、S206においてドラム回転中処理が行なわれる。
図17(c)は、S229(図16参照)で行なわれるドラム回転処理のサブルーチンプログラムのフローチャートである。S346、S347、S348でそれぞれドラム制御左、中、右の処理が行なわれる。このドラム制御処理の詳細については図19(a)を参照して後述する。
続いてS349で、各モータ制御フラグが停止中となっているかどうかについての判断が行なわれ、停止中となっていればS350に進み、動作フラグに0がセットされる。動作フラグに0がセットされるために、各モータは停止される。S349でNOと判断された場合およびS350の処理が終了した場合にはこのサブルーチンプログラムは終了する。
図18(a)は、図15(a)のS207で行なわれるサブCPUコマンドチェック処理のサブルーチンプログラムのフローチャートである。まずS244で、コマンド入力フラグがセットされているかどうかについての判断が行なわれる。このコマンド入力フラグは、図17(a)のS340でセットされるフラグであり、サブCPUコマンドの受信が完了したかどうかを示すものである。セットされている場合にはS245で、このコマンド入力フラグがクリアされる。続いてS246では、受信したサブCPUコマンドのヘッダ1〜6が正常なデータかどうかについての判断が行なわれる。ヘッダ1〜6については、図14(a)に示されるようにそれぞれ固定のデータが予め定められている。したがってこの固定データが正しくヘッダ1〜6として受信されているかどうかによって、受信したコマンドを有効とするかどうかを判断するためである。正常であればS247以下の処理が行なわれるが、正常でなければこのサブルーチンプログラムは終了する。
S247では、受信したサブCPUコマンドのコマンドコードが2かどうかについての判断が行なわれる。2であれば制御はS248に、さもなければ制御はS249にそれぞれ進む。S248では、ドラムランプ制御用コードコマンド取出処理が行なわれる。この処理の詳細については図18(b)を参照して後述する。S248の後このサブルーチンプログラムは終了する。
一方、S249では、コマンドコードが1かどうかについての判断が行なわれる。1であれば制御はS250に進み、ドラム回転コマンドの取出処理が行なわれる。このドラム回転コマンド取出処理の詳細については図18(c)を参照して後述する。S249でコマンドコードが1でないと判断された場合には、受信したデータが正常なものではないと判断されるためにこのサブルーチンプログラムは終了する。
図18(b)は、S248に示したドラムランプ制御用コードコマンド取出処理のサブルーチンプログラムのフローチャートである。まずS251でドラムランプ制御用コードを、サブCPUコマンド入力エリアからRAM中の記憶領域にセットする。続いてS252で、ドラムランプ1、2データ(リーチ)が、S253でドラムランプ1、2データ(大当り)がそれぞれ同様にしてセットされる。S254で、表示タイマがクリアされ表示タイマが初期値に設定される。本実施の形態の場合には初期値として2.048秒に相当する値がセットされる。S254の後このサブルーチンは終了する。
図18(c)は、図18(a)で行なわれるドラム回転コマンド取出処理のサブルーチンプログラムのフローチャートである。まずS255で、ドラム回転制御用データのうちの先頭(ヘッダ1)から7つ後、すなわちエリア8のドラム回転データが“10H”であるかどうかを調べることにより、異常復旧のドラム回転コマンドかどうかを判断する。正常であれば制御はS257に進む。復旧処理であればS256に進み、センサチェックカウンタに対して初期値である70がセットされる。S256の後制御はS257に進む。
S257では、停止図柄ナンバーの左がセットされる。S258で中停止図柄ナンバーがセットされ、保存エリアにこのセットされた中停止図柄ナンバーのデータがセットされる。この保存エリアの中停止図柄ナンバーは、後述する図21(b)のS329で用いられる。S259では、右停止図柄ナンバーがセットされ、S260では、大当りフラグにサブCPUコマンドとして入力された内容がセットされる。同様にS261、S262では、サブCPUコマンドの空回転図柄数と再回転図柄数とが、プログラム中の変数にセットされる。
S263では、S262でセットされた再回転図柄数が0かどうかについての判断が行なわれる。0であれば処理はS268に進むが、0以外である場合には制御はS264に進む。S264では、中停止図柄ナンバーから再回転図柄数を減算し、S265では減算結果が0以上かどうかについての判断が行なわれる。0以上であればS267に進むが、0未満であればS266に進み、演算結果に21が加算される。これにより、演算結果は0〜20のうちのいずれかの値をとることになる。続いてS267では、S264〜S266の演算結果を停止図柄ナンバーの中にセットする処理が行なわれS268に進む。
S268では、動作フラグに1がセットされる。動作フラグに1がセットされるために、図15(a)のS206の次の実行時には、ドラム回転スタート処理が行なわれることになる。S268の後このサブルーチンプログラムは終了する。
図19(a)は、図17(c)のS346、S347、S348で行なわれるドラム制御処理のサブルーチンプログラムのフローチャートである。まずS369で、モータ制御フラグが停止中となっているかどうかについての判断が行なわれる。停止中であれば何もせずこのサブルーチンプログラムは終了する。停止中でなければS270に進み、モータセンサからの出力を入力する処理が行なわれる。続いてS271では、モータセンサからの信号がONとなっているかどうかについての判断が行なわれる。ONとなっていなければS272に進む。S272では、ONカウンタが0かどうかについての判断が行なわれ、0であればS276に、0でなければS273にそれぞれ制御が進む。S273ではセンサONカウンタが1減算されてS276に進む。
一方、S271でセンサがONであると判定された場合にはS274に進み、センサONカウンタの内容が3以上かどうかについての判断が行なわれる。3以上であれば何もせず制御はS276に進み、3未満であればS275でONカウンタに1加算されてS276に進む。S270〜S275の処理により、センサからの信号がONしている間、3を限度としてONカウンタの加算が行なわれ、OFFした場合に1減算されてS276に制御が進む。モータが基準位置にない場合にはモータセンサの出力はOFFとなっているので、ONカウンタが0であれば制御はS271、S272、S276に進み、0でなければONカウンタが0となるまでS271、S272、S273の処理が行なわれる。
ONカウンタをこのように用いることにより、何らかの原因でモータセンサからの信号にスパイク状のノイズが混入した場合、一旦はS274、S275を通ってONカウンタが加算されても、次にこのドラム制御処理が実行される場合にはそのスパイク状ノイズはOFFレベルに立下がっているために、S271からS272、S273に処理が進み、ONカウンタが1減算される。モータが基準位置にあると判断されるのはONカウンタが2以上のときであり、したがって、スパイク状のノイズによって誤ってモータが基準位置にあると判定される恐れは少ない。
S276では、モータ制御フラグが加速/減速となっているかどうかについての判断が行なわれる。加速/減速でなければS278に進むが、加速/減速であればS277に進み、ドラム加速/減速処理が実行される。この処理については図19(b)を参照して後に説明する。
S278ではさらに、モータ制御フラグが定速かどうかについての判断が行なわれる。定速であればS279でドラム定速処理、さもなければS280でドラム一時停止処理が実行され、ともにこのサブルーチンプログラムは終了する。S279のドラム定速処理、S280のドラム一時停止処理についてはそれぞれ図21(a)(b)を参照して後に説明する。
図19(b)は、図19(a)のS277に示したドラム加速/減速処理のサブルーチンプログラムのフローチャートである。S281で、図17(b)のS342でセットされた1ステップタイマが終了したかどうかについての判断が行なわれる。終了していない場合にはこのサブルーチンプログラムは終了し、1ステップタイマが終了して初めてS282に制御が進む。S282ではステップチェック処理が行なわれる。このステップチェック処理とは、モータに何らかの異常が発生したかどうかをチェックするための処理であり、その詳細については図20(a)を参照して後に説明する。S283では、S282の処理の結果動作フラグが0となっているかどうかについての判断が行なわれる。動作フラグが0の場合とは、何らかの原因でモータが停止している場合、もしくはモータを停止させるべき場合を示す。0であればこのサブルーチンプログラムは終了する。0以外の場合にはS284に進み、次の1ステップのためのタイマデータがセットされる。S285で、モータ制御エリアの3(図22参照)にセットされたステップ数が終了したかどうかについての判断が行なわれ、終了していない場合には制御はS296に進み、終了している場合には制御はS286に進む。
S286では、ドラム制御用テーブルが終了したかどうかについての判断が行なわれ、終了している場合(データが$FFであった場合)にはS288に、終了していない場合にはS287にそれぞれ進む。S287では、次回の制御用データがプログラム中の記憶領域にセットされ、さらに制御用データのアドレスの更新が行なわれる。S287の後制御はS296に進む。
一方、S286でドラム制御用テーブルが終了したと判定された場合には、S288に進み、現在制御中のモータが中ドラムのモータかどうかについての判断が行なわれる。中ドラムのモータでない場合には制御はS293に、中ドラムである場合には制御はS289にそれぞれ進む。最初に中ドラムについて説明する。
まずS289では、リーチ時の中ドラムの回転数を増加させるための回転増カウンタが0かどうかについての判断が行なわれる。0であればS291で空回転図柄数が0かどうかについての判断が行なわれる。0であればS293に進む。0でなければS292に進み、ステップ数として1図柄ステップ数(8ステップ)がセットされ、空回転図柄数を1減算してS296に進む。一方回転増カウンタが0でなければS290に進み、ステップ数にリーチ回転増ステップ数をセットし回転増カウンタを1減算してS296に進む。
一方、S288で中ドラムでないと判定された場合およびS291で空回転図柄数が0であると判定された場合にはS293に進み、モータ制御フラグを定速にセットし、S294でイニシャルステップ(図16参照)が0かどうかについての判断が行なわれる。0であれば通常時であるのでそのまま制御はS296に進むが、0以外の場合には図16のシステムイニシャル処理の中で行なわれるドラム加速/減速処理であるから、S295で停止図柄ナンバーに0がセットされてS296に進む。停止図柄ナンバーの0は「赤7」であるから、初期動作時には可変表示装置のドラムの中央部には「赤い777」が揃うことになる。
S296では、モータ出力データがセットされてこのサブルーチンプログラムは終了する。
図20は、図19(a)のS270〜S275の処理により得られたモータセンサからの信号に基づき、モータがどのような状態にあるかを判定するためのステップチェック処理のサブルーチンプログラムのフローチャートである。
このモータセンサは、モータの回転基準位置を検出するものであり、モータが1回転する度に前述した図19(a)のONカウンタを用いて所定時間以上ONした時に1回基準位置検出と判定される。
図20(a)は、図19(b)のS282に示したプログラムの具体的内容を示す。図20(a)のS297に示されている「モータ励磁パターン」とはステッピングモータのコイルを励磁する励磁パターンであり、本実施の形態のステッピングモータの励磁パターンは基準パターンを含め4通りがある。モータ励磁パターンのうち、モータ基準パターンを「0」と定める。
ドラムの1回転がステッピングモータの168ステップに相当するため、ドラムの1回転の間の基準励磁パターン回数は168/4=42回となり、ドラムの1回転の間にS297により42回YESの判断がなされる。S297によりYESの判断がなされればS298に進み、センサONカウンタが2未満か否かの判断が行なわれる。このセンサONカウンタは、図19のS275で1加算され、S272で1減算される、0〜3の値をとるカウンタであり、前述のようにモータセンサの出力信号のチャタリングによる誤判定を防止するために設けられる。なお、センサONカウンタは通常は0、有効な入力があったときには3または2となる。
そして、センサONカウンタが2以上であると判定された場合には、ドラムが基準位置に達しているためにS299に示すように1図柄中ステップNO.を0にするとともに現在図柄NO.を0にする処理が行なわれる。
1図柄中ステップNO.と現在図柄NO.との関係を簡単に説明すると、1図柄に対応するステップ数は8ステップであるから1図柄中ステップNO.は0〜7の値を取り得る。また、ドラムに描かれている図柄数は21であるから現在図柄NO.は0〜20の値を取り得る。そして1図柄中ステップNO.の値が8に達した場合には、現在図柄NO.の値に1が加算されるとともに1図柄中ステップNO.の値が0にされ、加算された結果現在図柄NO.の値が21に達した場合には、現在図柄NO.の値も0にされる。これらの処理は図20(b)で示すモータ出力データセット処理において行なわれるが、モータ基準パターンになったときにモータセンサがONの判断がなされた場合には、モータ出力データセット処理の状態に関係なくS299においてともに0にされることになる。
次にS300によりセンサチェックカウンタの値が「100」以上であるか否かの判断を行なう。センサチェックカウンタは、電源投入時や復旧時には図16のS223による初期設定値「70」からS298におけるモータONセンサのOFF判定毎にS305によってカウントダウンされる。また、可変表示中においては、S298においてON判定された時のセンサチェックカウンタの値は、S303で「100」に初期設定された後、S305で42回カウントダウンされるため正常時は「58」となる。ゆえに、正常に動作している限りは、電源投入時や復旧時を含めてS300,S302ともにNOの判断がなされてS303においてセンサONカウンタの値が「100」に更新されることとなる。なお、センサチェックカウンタが「70」に初期設定されるのは、「0」に設定して、電源投入時や復旧時にS306でエラー判定されるのを防止するためである。
一方、S300においてセンサチェックカウンタが「100」未満、S302においてセンサチェックカウンタが「82」以上であると判定されればS307に進み、動作フラグに0がセットされる。つまり、基準位置検出後ドラムが半回転程度しないうちにモータセンサがONと判断された場合にはS304によりモータの動作を停止させるための処理を行なう。このエラーの原因は、たとえば、センサが故障していたり、モータ基準位置の反射位置がずれたりした場合である。
次に、S298によりNOと判断されてかつセンサチェックカウンタの値が「100」以上であった場合には、S301によりセンサチェックカウンタが「1」インクリメントされ、S304によりセンサONカウンタが「105」未満か否かの判断が行なわれる。そして、「105」以上であった場合にはS307に進み、動作フラグに0がセットされる。つまり、センサチェックカウンタは、前述のように通常100が初期値となっているので、基準パターン5回を越えてドラムセンサのON状態が続いた場合は、ドラムセンサが故障しているかまたはドラムセンサのコネクタが外れている場合等が考えられるため、S307により動作フラグへの0のセットが行なわれるのである。
モータ基準パターンになったときにモータセンサがONと判断されない(ONカウンタが2未満)場合にはS305によりセンサチェックONカウンタが「1」ディクリメントされる。つまり、モータセンサがOFFに切替わってから次にONに切替わるまでの間何回モータ基準パターンになったかがS305によりカウントダウンされる。正常時にはモータ基準パターンが42回生ずればドラムが1回転しているために、このセンサONカウンタは100〜58の値を取ることになる。そして、S306により、センサONカウンタの値が「7」以下であると判断された場合すなわちドラムが2回転を越えて回転しても無反射部分が検出されない場合はS307に進み、動作フラグに0のセットが行なわれる。この場合のモータエラーは故障やモータあるいはリールが可変表示装置の一部に接触していることや、遊技者が無理にドラムを停止させようとすることによる外力でステッピングモータが回転しない場合が考えられる。
図20(b)は、図19(b)のS296で行なわれるモータ出力データセット処理のサブルーチンプログラムのフローチャートである。まずS308で、モータ制御エリアの該当アドレスからデータが読出される。S309でモータステップナンバーが、S310で1図柄中ステップナンバーがそれぞれ1ずつ加算される。S311で、加算の結果1図柄中ステップナンバーが最大値(本実施の形態の場合には8)となったかどうかについての判断が行なわれる。最大値であれば制御はS312に、それ以外の場合には制御はS316に進む。
S312では、1図柄の表示がちょうど終了したということであるから、現在図柄ナンバーを1加算する。続いてS313では、加算の結果現在図柄ナンバーが最大値(本実施の形態の場合には21)となったかどうかについての判断が行なわれる。最大値でなければ制御はS315に進むが、最大値であればS314で現在図柄ナンバーを0にセットした後S315に進む。S315では、1図柄中ステップナンバーを0にセットする処理が行なわれてS316に進む。
S316では、モータステップナンバーに応じたモータ励磁パターンをセットする処理が行なわれる。S316の後このサブルーチンプログラムは終了する。
図21(a)は、図19(a)のS279に示されるドラム定速処理のサブルーチンプログラムのフローチャートである。まずS317において、1ステップタイマが終了したかどうかについての判断が行なわれる。終了していない場合にはこのサブルーチンは直ちに終了する。1ステップタイマが終了すると制御はS318に進み、図20のステップチェック処理が行なわれてS319に進む。S319では、ステップチェック処理の結果動作フラグが0となったかどうかについての判断が行なわれる。動作フラグが0である場合にはこのサブルーチンプログラムは直ちに終了する。動作フラグが0以外の場合にはS320に制御が進み、現在の図柄中のステップナンバーについてのチェックが行なわれる。そしてS321で、図柄中のステップナンバーが0かどうかについての判断が行なわれる。0以外の場合には図柄途中であるから制御はS323に進む。0である場合にはS322に進み、現在の図柄ナンバーが停止図柄ナンバーと一致しているかどうかについての判断が行なわれる。一致している場合には制御はS324に進み、一致していない場合にはS323に進む。S323では、引続きモータ出力データのセットが行なわれ、ドラムの回転が継続される。S323の後このサブルーチンプログラムは終了する。
一方、現在図柄ナンバーが停止図柄ナンバーと一致している場合、S324でモータ制御フラグに「停止中」がセットされる。S325で、再回転図柄数が0かどうかについての判断が行なわれ、0であればこのサブルーチンプログラムは終了するが、0以外の場合にはS326で、プロセスタイマに245(490ms)がセットされ、モータ制御フラグに「一時停止」がセットされる。モータ制御フラグに一時停止がセットされるため、プロセスタイマにセットされた時間の間、中図柄が一旦停止された後、再び回転を始めて停止図柄で停止するような制御が行なわれることになる。
図21(b)は、図19(a)のS280に示されるドラム一時停止処理のサブルーチンプログラムのフローチャートである。この処理はモータ制御フラグが「一時停止」のときに行なわれる。まずS327で、S326でセットされたプロセスタイマを1減算する処理が行なわれ、S328でプロセスタイマが終了したかどうかについての判断が行なわれる。終了していなければこのサブルーチンプログラムは終了する。プロセスタイマが終了して初めて制御はS329に進む。S329では、停止図柄ナンバー保存エリアに保存されていた停止図柄ナンバー中のデータを停止図柄ナンバーとして再セットし、定速時の1ステップタイマ(20msに相当)をセットし、モータ制御フラグを「定速」にし、再回転図柄数をクリアする処理が行なわれる。S329の後このプログラムは終了する。
以上のようにこの実施の形態では、メインCPUからサブCPUに送信するサブCPUコマンド中に、コマンドコードを含め、このコマンドコードによって送信されるコマンドデータの内容を区別するようにした。停止図柄などドラム回転制御用のデータはドラムの回転開始時のみに送ればよく、他の場合には送る必要がない。したがって本実施の形態の遊技機では、このように普段送る必要のないデータをサブCPUコマンドとしてサブCPUに常時送信する必要がなくなったために、送信データが減少し、送信にかかる時間を少なくすることができる。そのため、送信に要する時間を短くすることができ、可変表示制御がゲーム制御に与える悪影響を最小限にすることができる。
なお、この実施の形態では特定の確率変動図柄で大当りした場合には、大当りとなる確率を向上させる例について説明し、かつ通常の確率と高確率時の確率とはそれぞれ固定されていた。しかし、本発明はこれには限定されず、確率設定スイッチを設けることにより、通常時または高確率時、もしくはその両方において確率を変更するようにしてもよいし、確率変動させないものでもよい。
次に、課題を解決するための手段における実施の形態での具体的開示内容を括弧書で示したものを、以下に記載する。
複数種類の識別情報を可変表示可能な可変表示装置(図1:遊技領域2には、複数種類の識別情報を可変表示可能な、回転ドラムを用いた可変表示装置3が設けられている・・・なお、可変表示装置としては回転ドラムを用いたものに限らず、液晶表示装置や、CRT(陰極線表示管)などを用いたものであっても良い。)を含み、遊技領域に設けられた始動領域(始動口10)に打玉が進入したときに可変表示が行なわれ(これら始動口10内に入賞したパチンコ玉は、それぞれ始動入賞玉検出器(始動口スイッチ)11により検出される。:始動口スイッチ11の検出信号に基づき、可変表示装置3の各図柄表示部が可変開始される。)、該可変表示装置の表示結果が予め定められた特定の表示態様になった場合に所定の遊技価値が付与可能となる(停止時の表示結果によって、いずれかの有効ラインに特定の表示態様の組み合わせ(たとえば「777」)が揃った時には大当りとなる。:なお、可変表示装置は、たとえばボクシングの試合を映像表示し、遊技者側のボクサーが勝てば所定の遊技価値を付与するものでもよい。)遊技機(パチンコ遊技機)であって、
遊技機の遊技状態を制御する遊技制御手段(メイン基本回路21)と、
前記可変表示装置を制御する可変表示制御手段(サブ基本回路22)とを含み、
前記遊技制御手段は、前記可変表示装置の制御に必要な複数種類のコマンド(図14:プロセス処理が実行された後S8では、図3に示されるサブ基本回路22(以下これをサブCPUと呼ぶ)に対して発行するコマンドをI/OポートからサブCPUに対して出力する処理が行なわれる。この処理により、サブCPUに対し、遊技状態に応じた表示を行なうためのコマンドが与えられる。)であって該コマンドの種類を特定可能な種類データ(図9(b)、図14:S105で、種類データとしてのコマンドコードに「01」をセットする処理が行なわれる。これにより、サブCPUコマンドとしてドラム回転制御用データが送信されるように設定される。)を含むコマンドを複数段階に分けて前記可変表示制御手段に送信し(図12(b)、図14:S111でコマンド出力カウンタを「1」にセットする処理が行なわれる。このコマンド出力カウンタは、メインCPUからサブCPUに送信されるデータの数をカウントするためのものであり、コマンド出力カウンタが1であればサブCPUコマンドの1番目のデータ(第1バイト目)が送信されることになる。ドラム回転制御用データの場合にはこのコマンド出力カウンタが後述するように15になるまで、ドラムランプ制御用データの場合には13になるまでサブCPUコマンドの出力が行なわれる)、
前記可変表示制御手段は、送信されてきた前記コマンドに含まれる種類データに基づいて、前記コマンドの種類を判別して(図14:さらにS165で、図14(a)(b)に示されるエリア7のコマンドコードが「01」かどうかについての判断が行なわれる。)、その種類に応じた制御を前記コマンドに基づいて行ない(図15〜図21)、
前記遊技制御手段は、
数値情報を更新する数値情報更新手段(図4:S15により、ランダム1カウンタのカウント値を更新する処理が行なわれる。)と、
該数値情報更新手段により更新された数値情報を抽出して該数値情報と当り判定値とが一致していると判定したときに前記可変表示装置の表示結果を前記特定の表示態様とすることを決定する特定表示態様決定手段(図7(a):S61で、入賞記憶エリア1に格納されていたランダム1カウンタの値の読出が行なわれる。:続いてS62では、読出されたランダム1カウンタの値が所定の大当り判定値(1通り)と一致するか否かについての判断が行なわれる。一致する場合にはこのサブルーチンは直ちに終了する。したがって大当りであればプロセスフラグの値は「2」となって、前述の通り大当り図柄セット処理が次に行なわれる。)とを含み、
該特定表示態様決定手段は、前記始動領域への打玉の進入時に数値情報を抽出して格納しておき(図13:S174に進み、始動口スイッチからの信号がONとなっているかどうかについての判断が行なわれる。・・・入賞タイミングであればS176に進む。・・・S176では、入賞記憶数が既に4以上かどうかについての判断が行なわれ、・・・4未満であればS177に進み、入賞記憶数および始動入賞数がともに1ずつ加算される。:S169により、始動入賞数が「0」であるか否かの判断が行なわれ・・・0でない場合にはS170に進み、ランダム1カウンタ・・・の値を始動入賞記憶エリアの、対応するエリアにそれぞれ格納する処理が行なわれる。)、当該始動領域への打玉の進入に応じた前記可変表示装置の可変表示の開始の際に、格納しておいた数値情報についての判定を行ない(図7(a):図7(a)は、図4のS7で行なわれるプロセス処理のうち、プロセスフラグの値が「1」のときに行なわれるドラム回転前処理のフローチャートである。:S61で、入賞記憶エリア1に格納されていたランダム1カウンタの値の読出が行なわれる。:続いてS62では、読出されたランダム1カウンタの値が所定の大当り判定値(1通り)と一致するか否かについての判断が行なわれる。)、
前記遊技制御手段は、さらに、前記コマンドとして、前記可変表示装置の識別情報の可変表示パターンの種類を特定するためのデータ(図9(b)、図14:S108では、大当りフラグの内容をセットする処理が行なわれる。この大当りフラグは1バイトのデータであり、ビット0、1にドラム回転増カウンタの値がセットされ、ビット3はリーチのとき1に設定され、)(図17(b):再び図17(b)を参照して、S342の後、S343で、メインCPUから送信されてきた大当りフラグ(図14(a)参照)がリーチとなっているかどうかについての判断が行なわれる。リーチでない場合には制御はS345に進むが、リーチである場合にはS344に進み、中ドラム制御用テーブル0がセットされる。このS344の処理により、リーチの場合には、ドラム制御用データの終了時点で中ドラムについては表示された図柄は最初の図柄に戻ることになる。)(図19(b):まずS289では、リーチ時の中ドラムの回転数を増加させるための回転増カウンタが0かどうかについての判断が行なわれる。・・・回転増カウンタが0でなければS290に進み、ステップ数にリーチ回転増ステップ数をセットし回転増カウンタを1減算してS296に進む。)、および、前記可変表示装置の表示結果を特定するためのデータ(図9(b)、図14:S107で、大当り図柄セット処理またははずれ図柄セット処理でセットされた停止図柄ナンバーの左、中、右の値をそれぞれエリア9〜11にセットする処理が行なわれる。:S108では、大当りフラグの内容をセットする処理が行なわれる。この大当りフラグは1バイトのデータであり、・・・ビット7は大当りのときに1に設定される。)を、前記可変表示装置の可変表示の開始時にのみ前記可変表示制御手段に送信し(ドラム回転制御用データは、可変開始時のみサブCPUに送ればよく、サブCPUは、送られたドラム回転制御用データにしたがってドラムモータを制御してサブCPUコマンドで指定された停止図柄でモータを停止させる。したがって、・・・可変表示が開始された後には、ドラム回転制御用データをサブCPUに送信する必要はない。)、
前記可変表示制御手段は、前記可変表示の開始時に受信した後には、前記可変表示パターンの種類を特定するためのデータ、および、前記可変表示装置の表示結果を特定するためのデータを受信することなく可変表示制御し、表示結果を導出する制御を行なう(サブCPUは、送られたドラム回転制御用データにしたがってドラムモータを制御してサブCPUコマンドで指定された停止図柄でモータを停止させる。)。
1 遊技盤、3 可変表示装置、4a〜4b 回転ドラム、6 開放回数表示器、12 可変入賞球装置、7a〜7i ドラムランプ、8 始動記憶表示器、9 誘導部材、10 始動口、11 始動口スイッチ、15 ソレノイド、16 10カウントスイッチ、17 Vスイッチ、18 入賞個数表示器、21 メイン基本回路、22 サブ基本回路、39 制御回路、40 遊技機制御基板。