以下、本発明の実施の形態を図面を参照しつつ説明する。図2はこの発明を適用するパチンコ機の遊技盤1の模式的な説明図である。遊技盤1の略中央部に設けられた始動口10に遊技媒体としてのパチンコ球が入賞すると乱数抽選による大当り判定が行われる。大当りの場合には、特別図柄表示装置25が左図柄、中図柄、右図柄を変動表示後、特定の表示パターンとなるようにして図柄変動を停止する。さらに、大入賞口20を大当りパターンで開閉制御すると共に、特に特定領域21にパチンコ球が入賞した場合には遊技者に有利になるような特別の開閉パターンで大入賞口20を開閉制御する。
一方、パチンコ球が作動ゲート15を通過すると、乱数抽選による普通図柄の当り判定が行われる。例えば当りの場合、0〜9まで変動する普通図柄のうち、「3」と「7」のいずれかが選択され、普通図柄表示装置30はその値を表示すると共に、普通電動役物35が所定時間開放される。この普通電動役物35の開放中にパチンコ球が入賞すると、大当り抽選が行われ、大当りの場合には上述したように大入賞口20が開閉制御される。また、ランプ装置40やLED装置50の点灯制御や図示しないスピーカーからの駆動制御によって遊技の効果演出が適宜行われる。なお、入賞しないパチンコ球はアウト口45を介して所定のタンク(図示せず)に収集されるようになっている。このようにして、遊技機に設けられた各種の装置が動作を行うことによって、遊技機の制御動作が行われている。
図1は、このような制御動作を説明するための主要部のみを示した遊技機の制御ブロック図である。例えば4(msec)毎に割り込み信号を出力するリセット回路100がCPU220に接続され、いずれかの入賞口に入賞したパチンコ球の存在を検出する入賞球検出スイッチ105と、始動口10にパチンコ球が入賞したことを検出する始動口用検出スイッチ110と、パチンコ球が作動ゲート15を通過したことを検出する作動ゲート用検出スイッチ115と、大入賞口20に入賞したパチンコ球の存在を検出する大入賞口用検出スイッチ120と、普通電動役物35にパチンコ球が入賞したことを検出する普通電動役物用検出スイッチ125と、特定領域21にパチンコ球が入賞したことを検出する特定入賞口用検出スイッチ130とが、インターフェイス機能を有しバッファメモリ205を備えるI/F(インターフェイス)200を介し、CPU220にバス260によって接続されている。
一方、特別図柄表示装置140(図2では符号25)と、普通図柄表示装置145(図2では符号30)と、大入賞口20を開閉制御するアクチュエータとして機能する大入賞口用作動ソレノイド150と、普通電動役物35を開閉制御するアクチュエータとして機能する普通電動役物用作動ソレノイド155と、点灯制御されるランプ装置160(図2では符号40)と、点灯制御されるLED装置165(図2では符号50)と、効果音を出力するスピーカー170が接続された音声合成IC175とが、インターフェイス機能を有するI/F210を介してCPU220に接続されている。I/F210には、図示しないホールコンピュータに遊技情報を送信するための信号線も接続されている。
また、前述したバス260には、ワークエリア等として機能するRAM240と、動作制御プログラムおよびデータが内蔵されたROM230とがCPU220と情報通信可能に接続されている。そして、動作制御プログラムおよびデータは複数のモジュールで構成されていて各モジュールはモジュール群250を構成している。
図3は、このモジュール群250の構成の模式的な説明図であり、モジュール群250は、乱数更新モジュール300、図柄乱数更新モジュール305、基本タイマ更新モジュール310、入力ポートチェックモジュール315、スイッチチェックモジュール320、異常検出モジュール325(エラー中か否かを判定するモジュールを含む)、図柄セットモジュール335、特別図柄制御モジュール340、普通図柄制御モジュール345、タイマ減算モジュール350、賞球セットモジュール355、表示器データセットモジュール360、外部情報セットモジュール365、LEDセットモジュール370、ランプセットモジュール375、効果音セットモジュール380、ポート出力モジュール385、RAMセットモジュール390、および残時間モジュール395とからなる。なお、乱数更新モジュール300と図柄乱数更新モジュール305とで乱数制御モジュールが構成され、入力ポートチェックモジュール315とスイッチチェックモジュール320とでスイッチ制御モジュールが構成され、図柄セットモジュール335と特別図柄制御モジュール340と普通図柄制御モジュール345とタイマ減算モジュール350とで役物制御モジュールが構成され、賞球セットモジュール355と表示器データセットモジュール360と外部情報セットモジュール365とLEDセットモジュール370とランプセットモジュール375とで出力データセットモジュールが構成されている。
以下、まず図4のメインフローチャート(メインモジュール)を参照して各モジュールの動作概要を説明し、次に、工夫を施したモジュールの詳細について説明する。電源投入直後からリセット回路100が、例えば4(msec)毎に割り込み信号を出力する。この割り込み信号が出力される毎にこれをトリガとして、一連のモジュール実行が繰り返し行われる。
この一連のモジュール実行は、先頭の乱数更新モジュールから残時間モジュールを繰り返して行われるが、各モジュールはメインモジュールからの「呼び出し(CALL)」により実行され、「戻る(RETURN)」により実行が終了される処理体系になっている。このため、各モジュールは機能ブロック単位化されており、各モジュール単位で開発を行うことが可能となり、また内容変更や実行順序の入れ替え等も容易となる。
まず、CPU220が、特別図柄や普通図柄の当り抽選を行うための乱数値を更新する乱数更新モジュール300を実行する(ステップS400)。これにより、4(msec)毎に、特別図柄および普通図柄の夫々に対してRAM240内に設けられている当り判定用のループカウンタのカウンタ値(乱数値)を1だけ増加する。
次に、CPU220が、特別図柄表示装置140に表示する左図柄、中図柄、右図柄を定める乱数値または図柄制御動作に係わる乱数値を更新する図柄乱数更新モジュール305を実行する(ステップS405)。これにより、4(msec)毎に、左図柄、中図柄、右図柄の夫々に対してRAM240内に設けられている、表示図柄を定めるための乱数値を更新するために、RAM240内に設けられている左図柄、中図柄、右図柄用のループカウンタのカウンタ値(乱数値)等を1だけ増加する。
次に、CPU220が、制御動作に用いる各種のタイマ値を更新する基本タイマ更新モジュール310を実行する(ステップS410)。このタイマは、例えばランプ装置160やLED装置165の点灯制御の際に用いられる。例えば、リセット回路100から出力される4(msec)毎のパルスを最高24個まで計数(更新)して行き24個目でタイムアウトするようにすれば「4(msec)×24=96(msec)≒100(msec)」より約100(msec)のタイマを実現することができる。このモジュールの実行により動作制御に必要な各種のタイマを実現する。
次に、CPU220が、各スイッチのオン、オフ状態を示したデジタル情報を読み込むために入力ポートチェックモジュール315を実行する(ステップS415)。ところで、I/F200が備えるバッファメモリ205には、各スイッチ(105、110、115、120、125、130)の出力結果である6ビットのデジタル信号(例えばスイッチオンの時「1」、スイッチオフの時「0」)が順次格納されるようになっている。このモジュールの実行により、CPU220がバッファメモリ205に格納されている複数ビットのデジタル信号をレジスタに読み込む。
次に、CPU220が、各スイッチのオン、オフ状態を把握するためのスイッチチェックモジュール320を実行する(ステップS420)。これにより、前記レジスタのデジタル信号を参照して、各スイッチのオン、オフ状態を把握する。例えば、始動口用検出スイッチ110に対応するデジタル信号が「1」である場合、始動口10にパチンコ球が入賞したものと把握して後の処理を行うことになり、他のスイッチに対しても同様な処理を行う。
次に、CPU220が、予め定めた異常時であるか否かを判断するための異常検出モジュール325を実行する(ステップS425)。これにより、CPU220が、大入賞口用検出スイッチ120に断線や短絡が発生していると判断した場合、また、大入賞口用作動ソレノイド150を駆動して大入賞口20を開状態にしたにも関わらず、その間入賞球検出スイッチ105によってパチンコ球の入賞が検出されない場合(無通過エラー)、さらに、特定入賞口用検出スイッチ130によって、パチンコ球が特定領域21を通過したことを検出してから例えば2秒間、大入賞口用検出スイッチ120がパチンコ球の入賞を検出しない場合、等には異常時つまりエラー時と判断して、RAM240内にエラーフラグを立てると共に、夫々のエラーの復旧状態も判定する。なお、エラーフラグはエラー種別毎にRAM240内に立てることが可能に構成されている。
次に、CPU220が、エラーが発生したか否かを判断し、この判断結果に応じて次に実行する処理に移行するためのエラー判定を実行する(ステップS430)。これにより、CPU220は、異常時つまりエラー時には賞球セットモジュール355を実行すると共に(Yes)、エラー時以外の場合には図柄セットモジュール335を実行する(No)。
次に、エラー時以外の場合に、CPU220は図柄変動速度を設定する図柄セットモジュール335を実行する(ステップS435)。これにより、CPU220は、特別図柄表示装置25の特別図柄および普通図柄表示装置30の普通図柄の変動表示速度データをRAM240内の所定エリアに格納する。後に、CPU220は、この変動表示速度データを出力して、設定された変動表示速度で図柄が表示されるように特別図柄表示装置25および普通図柄表示装置30を駆動する。
次に、CPU220は特別図柄装置の制御を行うための特別図柄制御モジュール340を実行する(ステップS440)。これにより、CPU220は、始動口用検出スイッチ110がパチンコ球の始動口10への入賞を検出した場合には、先に更新した乱数の値を参照して大当り抽選を行い、抽選結果に応じて特別図柄表示装置140を制御する。また、大当りの場合には大入賞口用作動ソレノイド150を駆動制御する。
次に、CPU220は普通図柄装置の制御を行うための普通図柄制御モジュール345を実行する(ステップS445)。これにより、CPU220は、作動ゲート用検出スイッチ115がパチンコ球の通過を検出した場合には、先に更新した乱数の値を参照して当り抽選を行い、抽選結果に応じて普通図柄表示装置145を制御する。また、当りの場合には普通電動役物作動ソレノイド155を駆動制御する。
次に、CPU220は制御動作に必要な所定のタイマのタイマ値を減算するためのタイマ減算モジュール350を実行する(ステップS450)。これにより、制御動作に必要な所定のタイマのタイマ値がデクリメントされる。
次に、CPU220は賞球信号を本体側CPU(図示せず)に送るための賞球数データをRAM240内の所定エリアに格納する賞球セットモジュール355を実行する(ステップS455)。これにより、後述するポート出力モジュールでの処理でCPU220は、入賞球検出スイッチ105から得られるデジタル信号に基づいて賞球数を計算し賞球数を示す賞球信号を本体側CPUに送る。
次に、CPU220は特別図柄表示を行うためのデータを生成する表示器データセットモジュール360を実行する(ステップS460)。これにより、CPU220は、特別図柄表示装置140の制御データを生成してRAM240内にセットする。後に、セットされたデータを受信した特別図柄表示装置140は図柄表示制御を行う。
次に、CPU220は遊技データを外部出力する外部情報セットモジュール365を実行する(ステップS465)。これにより、CPU220は、予めRAM240に格納していた、大当り情報、始動入賞情報等の遊技データをI/F210を介してホールコンピュータに送信する。
次に、CPU220はLED装置165を点灯制御するためのLEDセットモジュール370を実行し(ステップS470)、ランプ装置160を点灯制御するためのランプセットモジュール375を実行する(ステップS475)。
ステップS470やステップS475によって、CPU220は図柄変動時と非図柄変動時、さらに、大当り時、リーチ時等のシーン別に点灯制御を行うためのデータをRAM240にセットする。
次に、CPU220は効果音を出力するための効果音セットモジュール380を実行する(ステップS480)。これにより、CPU220は音声合成IC175を駆動してスピーカー170から効果音を出力させる。
次に、CPU220はRAM240の所定エリアにセットされていた情報を各出力デバイスに出力するポート出力モジュール385を実行する(ステップS485)。これにより、CPU220は、役物制御モジュールや出力データセットモジュールによってRAM240の所定エリアにセットされていた情報を対応する出力デバイスに出力する。例えば、LED装置165が実際に点灯制御される。
次に、CPU220は、RAM240内のデータコピーやRAM240の所定アドレスに所望の定数値を格納するためのRAMセットモジュール390を実行する(ステップS490)。これにより、CPU220は、例えば電源投入時のRAM240の初期化処理を行う。
そして、CPU220は残時間モジュール395を実行する(ステップS495)。これにより、CPU220は、リセット回路100から次の割り込み信号が供給されるまで、所定のモジュール例えば前記図柄乱数更新処理を行い、タイミング調整を行う。以上の処理を割り込み信号が供給される毎に行って一連の遊技制御が実行される。
以上のように遊技制御手順を全てモジュール化しておけば、CPU220がモジュールを順次実行していくことによって、遊技機の全制御動作が行われる。このように、遊技制御手順を全てモジュール化しておけば、デバック効率の向上等が図られ開発工数が低減できると共に、不正なプログラム改ざんの発見も容易になる。また、乱数更新モジュールは1割り込みの開始直後またはこれに近い時点で実行されることにより、従来では割り込み毎に毎回、更新されなかったり、また、毎回、更新しても更新間隔がずれていたりして正確な当り確率を実現できない恐れがあったが、このような不都合を解消することが可能である。
また、CPU220がスイッチ制御モジュール、異常検出モジュール、および役物制御モジュールの順番で夫々のモジュールを実行し、異常検出モジュールの実行結果が異常つまりエラーである場合には役物制御モジュールを実行しないので、エラー時には役物制御処理が行われず制御動作の効率化が図られる。
さらに、CPU220がポート出力モジュールを、役物制御モジュールおよび出力データセットモジュールの後に実行するようにしたため、ある割り込み内でセットしたデータをその割り込み内で出力することができ、制御動作のずれが生じないという効果が得られる。また、タイミングチャートが把握しやすいという効果も得られる。
以下、本発明によって処理実行に工夫を施したモジュールについて説明する。まず、図柄セットモジュール335について説明する。このモジュールのデータ構造の一例を図6(a)に示す。図6(a)に示すように、このデータ構造は、タイマデータと3つの処理データとを組にしたものを2行備え、最終行はアドレス移動コードとデータアドレスデータとなっている。
図5のフローチャートにしたがって動作を説明すると、まず、ステップS500において変動表示の初めてのデータか否かを判定する。初めてのデータの場合(Yes)にはステップS530に処理を移行し、これ以外の場合(No)には、ステップS505に進みRAM240に1行目のデータ「タイマデータa、処理データa、処理データb、処理データc」を転送する。ステップS510において、タイマデータが終端コード(例えば予め定めた1バイトのデータ)であれば(Yes)処理を終了すると共に、終端コードでなければステップS515において、タイマデータを1減算する。
そして、ステップS520においてタイマ値が0か否かを判定して、0でない場合(No)には処理を終了すると共に、ステップS525において0の場合(Yes)にはアドレスポインタを更新する。ステップS530においては、タイマデータがアドレス移動コード(例えば予め定めた1バイトのデータ)か否かを判断し、アドレス移動コードである場合には(Yes)ステップS535に進むと共に、アドレス移動コードでない場合には(No)ステップS540に進む。
ステップS535では、アドレス移動コードに対応付けられているデータアドレスデータをアドレスデータポインタとして設定する。この結果、処理対象がアドレスデータポインタに記憶されているデータの組となる。一方、タイマデータがアドレス移動コードでない場合には、2行目のデータ「タイマデータb、処理データd、処理データe、処理データf」が処理対象となる。
そして、ステップS540、545において、該当アドレスポインタのタイマデータと処理データをRAM240に設定する。図6(b)は具体的なデータ構造例を示していて、1行目は「タイマデータ1(s)、左図柄変動速度4(msec)×20、中図柄変動速度4(msec)×20、右図柄変動速度4(msec)×20」、2行目は「タイマデータ2(s)、左図柄変動速度4(msec)×30、中図柄変動速度4(msec)×30、右図柄変動速度4(msec)×30」、最終行はアドレス移動コード$FEとデータアドレスデータ♯1とが定義されている。したがって、左、中、右図柄変動速度を1(s)だけ4(msec)×20とした後、左、中、右図柄変動速度を2(s)だけ4(msec)×30とする処理を繰り返し行う処理となる。
なお、普通図柄に対してはタイマデータと普通図柄変動速度データとを対応付けたデータの組にすれば同様な処理が可能となる。したがって、この実施形態によれば、アドレス移動コードとデータアドレスデータとを用いた明瞭なデータ構造で繰り返し処理を行うことができ、従来では、繰り返す処理内容を何行にも渡って記述する必要があり動作制御データ容量が増大することがあったがこのような不都合を解消することが可能となる。また、プログラムは複数の機種間で共通化でき開発工数の低減が図られる。
次に、特別図柄制御モジュール340について説明する。この説明を行う前に理解の容易化のため、図7や図8を参照して特別図柄の停止制御について説明する。図7は、始動口10にパチンコ球が入賞し、停止図柄が決定された後の左図柄、中図柄、右図柄の停止制御を模式的に説明したものである。各図柄が高速変動を行っていると、まず、左図柄が高速変動から制御パターンaでの停止制御が行われ、次いで中図柄が制御パターンbで停止制御され、さらに、右図柄が制御パターンcで停止制御される。
図8に示すように、制御パターンaとしては、停止図柄の3図柄手前に図柄差し替えを行い、変動速度を低速にし、3図柄変動して停止図柄で停止を行う通常制御が挙げられる。また、制御パターンbとしては、この通常制御の他に、変動速度を低速にして3図柄変動し、変動速度を中速度にして、表示図柄と停止図柄が一致時に図柄停止を行うスベリが挙げられる。さらに、制御パターンcとしては、通常制御の他に、変動速度を低速にし、10図柄変動して、表示図柄と停止図柄が一致時に図柄停止を行うノーマルと、図柄変動速度をコマ送り速度にし、10図柄変動して、表示図柄と停止図柄が一致時に図柄停止を行うコマ送りが挙げられる。なお、図柄の表示はCPU220がアドレスポインタで予め記憶された表示データを指し示すことによって行われるので、図柄差し替えはこのアドレスポインタをCPU220が変更することによって実現される。
さて、図11に示すように、この特別図柄制御モジュール340は、図柄変動を開始させる処理を行う変動開始モジュール1100と、図柄変動を行う図柄変動モジュール1110と、大当りか否かを判定する大当り判定モジュール1120と大入賞口20の開閉制御等の大当り処理を行う大当り動作モジュール1130と、1ゲーム終了時の処理を行う1ゲーム終了モジュール1140とを含み、さらに、図柄変動モジュール1110は、各種の制御動作を行う補助ルーチンa1111、…、補助ルーチンb1112と、制御対象図柄を変更するための初期化ルーチン1113とを含んでいる。
図9は、さらに、図柄変動モジュール1110が備えたデータ構造体を示していて、このデータ構造体は、データが終端か否かを定義する終端認識データ900と、コールすべき補助ルーチンを指定する補助ルーチン指定データ905と、図柄制御タイマ(例えば15秒)や図柄最低変動枚数(例えば10枚)で、このデータ構造体のデータを使用する時間を定めるステップ移動契機データ910と、効果音を指定する効果音指定データ915と、変動速度を指定する変動速度指定データ920と、表示すべき画像データを指定する表示画像指定データ925とを有して構成されていて、このデータ構造体を指定するアドレスポインタを変動データアドレスポインタと称する。また、このデータ構造体はROM230内に左、中、右図柄毎に1個以上設けられている。なお、変動速度や表示画像はROM230の所定のエリアにデータとして記憶されている。
図10は、左図柄を通常制御するときの具体的なデータ構造体の例であり、最初のデータ構造体においては、終端認識データ1000は未定義、補助ルーチン指定データ1005は左図柄を停止図柄の3図柄手前にする補助ルーチンを定義し、ステップ移動契機データ1010は図柄最低変動枚数「3」を定義し、さらに、変動速度指定データ1020は左図柄を低速にする変動速度を定義し、また、効果音指定データ1015および表示画像指定データ1025はいずれも未定義であり、最終のデータ構造体においては、終端認識データ1030のみに終端が定義され、その他の補助ルーチン指定データ1035、ステップ移動契機データ1040、効果音指定データ1045、変動速度指定データ1050、および表示画像指定データ1055はいずれも未定義である。
次に、図12のフローチャートを参照して図柄変動制御について説明する。まず、ステップS1200において、RAM240に予め記憶されている例えば5(s)間の高速変動が終了したか否かを判定し、終了していれば(Yes)ステップS1216に進むと共に、終了していない場合には(No)ステップS1202に進み、ステップ移動契機データ910で図柄制御タイマが定義されていれば、これがタイムアップしたか否かを判定する(S1202)。タイムアップしていなければ(No)処理を終了すると共に、タイムアップしている場合には、ステップS1204に進み、ステップ移動契機データ910で図柄最低変動枚数が定義されていれば、これが0か否かを判定する(S1204)。
図柄最低変動枚数が0の場合には(Yes)ステップS1210に進むと共に、図柄最低変動枚数が0でない場合には(No)ステップS1206に進み、現在表示されている図柄が基準位置(正確に停止可能な位置で例えば図柄の下端部より若干下の位置)にあるか否かを判定する(S1206)。基準位置であれば(Yes)ステップS1208に進むと共に、基準位置でなければ(No)ステップS1210に進む。ステップS1208では、図柄最低変動枚数を1減じる処理を行う。
次に、ステップS1210において、ステップ移動契機データ910で図柄最低変動枚数が定義されていれば、これが0か否かを判定する(S1210)。図柄最低変動枚数が0の場合には(Yes)ステップS1220に進むと共に、図柄最低変動枚数が0でない場合には(No)、ステップS1212に進み、図柄停止チェック禁止フラグがセットされているか否かを判定する。ここで、図柄停止チェック禁止フラグとは、所定の図柄数だけリール表示が行われた時に図柄停止を可能とするためのフラグである。
このフラグがセットされている場合には(Yes)処理を終了すると共に、セットされていない場合には(No)、ステップS1214に進み、現在表示されている図柄の位置が停止位置か否かを判定する。停止位置の場合には(Yes)ステップS1216に進むと共に、停止位置でない場合には(No)処理を終了する。
次に、ステップS1216において、図柄停止チェック禁止フラグをセットして、ステップS1218において初期化処理を行う。この初期化処理は、制御対象図柄を変更すると共に、変動データアドレスポインタを所望のものに変更する処理である。具体的には、左、中、右図柄の順で制御対象を変更すると共に、制御対象を変更した場合には、各図柄に対して予め定められている変動データアドレスポインタ初期値を変動データアドレスポインタとする。
次に、変動データアドレスポインタで指定されたデータ構造体のデータをチェックする(ステップS1220)。まず、ステップS1222において、終端認識データ900を参照してデータが終端であるか否かを判定する。終端であれば(Yes)、ステップS1224に進んで図柄停止チェック禁止フラグをクリアすると共に、終端でなければ(No)ステップS1226に進んで、補助ルーチン指定データ905を参照して補助ルーチンが定義されているか否かを判定する。補助ルーチンが定義されていれば(Yes)、ステップS1228に進んで補助ルーチンをコールして実行すると共に、補助ルーチンが定義されていなければ(No)、ステップS1230に進んでステップ移動契機データ910にデータをセットする。
さらに、ステップS1232において、効果音指定データ915を参照して、効果音が定義されているか否かを判定する。効果音が定義されていればステップS1234に進んで効果音データ(効果音番号)をRAM240の所定エリアにセットすると共に、効果音が定義されていない場合には、ステップS1236に進んで、変動速度指定データ920を参照して、変動速度が定義されているか否かを判定する。
変動速度が定義されている場合には(Yes)、ステップS1238に進んで変動速度データをRAM240にセットする処理を行うと共に、変動速度が定義されていない場合には(No)、ステップS1240に進んで、表示画像指定データ925を参照して、表示画像が定義されているか否かを判定する。
表示画像が定義されている場合には(Yes)、ステップS1242に進んで表示画像をRAM240にセットする処理を行うと共に、表示画像が定義されていない場合には(No)、ステップS1244に進んで、次のデータ構造体の終端認識データを参照して、データが終端か否かを判定し、終端ならば(Yes)ステップS1212に分岐すると共に、終端でないならば(No)、ステップS1246に進んで変動データアドレスポインタを更新し次のデータ構造体へと移る。従来では制御パターンに対応して全てプログラミングを行っていたため、左図柄では通常制御、中図柄では通常制御、スベリ制御、右図柄では通常制御、ノーマル、コマ送りの夫々に対して制御プログラムを用意していたが、この発明によれば、簡単なデータ変更で図柄変動制御を行うことが可能となる。
次に、表示器データセットモジュール360について説明する。図13は、このモジュールが備えるデータやテーブルの構造を示している。図13(a)に示す画像データ1300は、タイマとして機能する表示器出力タイマデータとアニメまたはリールのいずれかを指定するスプライトグランド群指定データとリールカウンタデータとを対にしたものを複数組備えていて、時間経過と共に順に処理が行われる。表示器出力タイマデータで示される時間内において、スプライトグランド群指定データで指定されたリールまたはアニメを、リールカウンタデータで指定される表示データで表示させる処理が行われる。そして、リールカウンタデータは、次に説明するアドレスデータ1310のアドレスポインタとなっている。
図13(b)に示すアドレステープル1310は、左図柄リールアドレス計算データアドレス、中図柄リールアドレス計算データアドレス、右図柄リールアドレス計算データアドレスを組にしたものを複数組備えていて、各リールアドレス計算データアドレスは、次に説明するリールアドレス計算データ1320のアドレスポインタとなっている。
図13(c)に示すリールアドレス計算データは、定数値データ1321、乗数値格納RAMアドレス1322、加算値格納RAMアドレス1323、ベースアドレス1324からなっている。具体的には、「乗数値格納RAMアドレスで示されるRAM内容×定数値データ+加算値格納RAMアドレスで示されるRAM内容+ベースアドレス」なる計算で求まるアドレスが図柄表示データとなる。
なお、ここでいう「乗数値格納RAMアドレスで示されるRAM内容」とは、各図柄に付される番号(図柄カウンタ)である。図16に示されるように図柄1、2、3、…、15の各図柄カウンタは0、1、2、…、14である。次に、「定数値データ」とは、1図柄のライン数である。次に「加算値格納RAMアドレスで示されるRAM内容」とは図柄表示原点位置からのずれ分のライン数(図柄オフセット)である。次に「ベースアドレス」とは、例えば遊技上の特定条件成立により表示図柄部分に重なるようにキャラクタを登場させるために、通常時と特定時用として予め異なるバージョンの図柄リールを複数用意しているときの各図柄リールに付される番号(リールカウンタ)である。
図16に示されるように、図柄リールの画像データはROM230の所定のエリアに格納されていて、アドレス(♯a)を指定することによって、例えば、このアドレスから256ライン分(1図柄は100ライン)のデータが表示可能となるので、図15に示すように、CPU220は、表示コマンドと左図柄表示データと中図柄表示データと右図柄表示データとを組にしたものをRAM240内の所定エリアにセットする。後に、このコマンドデータを特別図柄表示装置140に送信すれば特別図柄の表示制御が行われる。
次に、図14に示すフローチャートを参照して表示器データセット処理について説明する。まず、CPU220は、画像データ1300の1組におけるリールカウンタデータを取得し(ステップS1400)、このリールカウンタデータをアドレスポインタとして、対応する左、中、右図柄リールアドレス計算データアドレスをアドレステーブル1310から索出する(ステップS1405)。これによって、例えば、左図柄リールアドレス計算データアドレスa、中図柄リールアドレス計算データアドレスa、右図柄リールアドレス計算データアドレスaが索出される。
次に、ステップS1410において、左図柄リールアドレス計算データアドレスをポインタとして、対応するリールアドレス計算データを選択して「乗数値格納RAMアドレスで示されるRAM内容×定数値データ+加算値格納RAMアドレスで示されるRAM内容+ベースアドレス」なる計算で求まるアドレスを左図柄表示データとしてRAM240の所定エリアに格納する。同様に、ステップS1415において、中図柄リールアドレス計算データアドレスをポインタとして、対応するリールアドレス計算データを選択して「乗数値格納RAMアドレスで示されるRAM内容×定数値データ+加算値格納RAMアドレスで示されるRAM内容+ベースアドレス」なる計算で求まるアドレスを中図柄表示データとしてRAM240の所定エリアに格納し、ステップS1420において、右図柄リールアドレス計算データアドレスをポインタとして、対応するリールアドレス計算データを選択して「乗数値格納RAMアドレスで示されるRAM内容×定数値データ+加算値格納RAMアドレスで示されるRAM内容+ベースアドレス」なる計算で求まるアドレスを右図柄表示データとしてRAM240の所定エリアに格納し、図15に示すようなコマンドデータをRAM240に格納する。このような処理を図13(a)で示す各組のデータに対して行っていく。なお、同じ処理を繰り返す場合には、先に図6(a)で説明したように、アドレス移動コードとデータアドレスデータとを最終段に設けておけば良い。このように表示器データセット処理を行えば、複数の機種間でプログラムを共通化できデータを変更するのみで所望の図柄表示制御を容易に行うことが可能となる。
次に、LEDセットモジュール370について説明する。理解の容易化のため図19に示すように、縦方向の3本の信号線(COMA、COMB、COMC)と横方向の3本の信号線(LED1、LED2、LED3)に設けられた9個のLED1901〜1909の点灯制御を例にとり説明する。CPU220が、各LEDを点灯させるためには、接続された横方向および縦方向の信号線をセット状態にすればよい。セット状態としては例えばカソード側の信号をロー状態にすると共に、アノード側の信号をハイ状態にすればよい。
図18は、LEDセットモジュール370が備えるデータ構造の模式的説明図で、3つのCOMA、COMB、COMCのいずれかを指定するCOM対象カウンタの値別にゲーム状態選択データテーブルアドレスを備えたCOM選択データテーブル1800と、各ゲーム状態選択データテーブルアドレスをポインタとして指示される、COMAゲーム状態選択データテーブル1810、COMBゲーム状態選択データテーブル1820、COMCゲーム状態選択データテーブル1830とを有し、各COMゲーム状態選択データテーブルは、ゲーム状態に応じたLEDダイナミック制御データへのポインタとなるLEDダイナミック制御データアドレス(非図柄変動時、図柄変動時、図柄リーチ時、大当り時)を有している。
図17のフローチャートを参照して、LEDセット処理について説明する。なお、COM対象カウンタは電源投入時には初期化処理がされている。まず、ステップS1700において、COM対象カウンタの値(0、1、2のいずれか)に対応したゲーム状態選択データテーブルアドレスをCOM選択データテーブル1800から選択する。
次に、ステップS1705において、このゲーム状態選択データテーブルアドレスをポインタとしたゲーム状態データテーブルを選択すると共にRAM240に格納されている遊技情報を参照してゲーム状態を把握し、このテーブルからゲーム状態に対応したLEDダイナミック制御データアドレスを選択する。
次に、ステップS1710において、対応するLEDダイナミック制御データを獲得してRAM240の所定エリアに格納する。ステップS1715において、COM対象カウンタを「1」更新し、ステップS1720において、この更新したカウンタ値が3以上が否かを判定する。3以上であれば(Yes)ステップS1725に進みCOM対象カウンタを0にする共に、3以上でなければ(No)処理を終了する。以上のようにして、LEDを点灯制御するためのダイナミック制御データをRAM240に格納可能となり、簡単なデータ構造で点灯制御データをセットすることが可能となる。
なお、以上の説明はLEDの点灯制御について説明したが、同様に遊技状態に対応したランプ点灯制御データをRAM240にセットすることも可能になる。次に、効果音セットモジュール380について説明する。このモジュールが備えるデータ構造を図20に示す。図20に示すように、このデータ構造は効果音番号と効果音データとが対応付けられている。効果音タイマデータは今回音データを継続して出力する時間、今回音データは音声合成IC175に送るデータ、次回効果音番号は次回の効果音番号である。また、RAM240内の所定エリアには効果音番号を指定する情報が格納される効果音番号エリア(図示せず)が設けられていて、CPU220は適宜このエリアの値を更新していく。
さて、図21を参照して、効果音セット処理について説明する。まず、ステップS2100では、CPU220がステップS1234において効果音番号エリアに格納されている効果音番号を参照しこれに対応した効果音データを取得し、RAM240に格納する。次に、ステップS2105において、効果音タイマデータの時間だけ、今回音データを音声合成IC175に出力する。これによって、音声合成IC175はスピーカー170を駆動する。ステップS2110では、効果音タイマが終了してタイムアップしたか否かを判定する。タイムアップしていれば(Yes)ステップS2115に進むと共に、タイムアップしていなければ(No)ステップS2105に処理を移行する。そして、ステップS2115では、効果音番号エリアに次回効果音番号を設定して処理を終了する。このような処理によれば、複数の機種間でプログラムを共通化でき効果音データの構造を変更するのみで所望の効果音を出力するようにでき、開発工数およびプログラム容量の低減を図ることが可能となる。
次に、RAMセットモジュール390について説明する。図24は、RAMセット処理を説明する模式的説明図である。図24に示すように、RAMセット処理には、RAM240内のあるアドレスのデータを別のアドレスにコピーするもの(例えば、アドレス乱数Aのデータ$11をアドレス停止位置Aに転送する、アドレス乱数Aのデータ$12をアドレス停止位置Bに転送すること等)やRAM240内のあるアドレスに定数値を直接格納するもの(例えば、アドレス当りフラグに$5Aを格納する、アドレスタイマに$122を格納する等)が含まれる。
図22はこのモジュールのデータ構造であり、認識コード2200、定数値またはコピー元RAMアドレス2205、およびコピー先RAMアドレス2210を組にしたものを4組備えていて、最終行は予め定められた終端コード(例えば$FF)2215となっている。この1組のデータが順次処理対象となって行き、データ組の位置はRAMセット処理更新アドレスポインタで指示されている。
次に、図23を参照してRAMセット処理について説明する。まず、ステップS2300において、CPU220は、終端コードが出現したか否かを判定する。終端コードが出現した場合(Yes)には処理を終了すると共に、終端コードが出現しない場合(No)にはステップS2310に進む。ステップS2310では、データ2205から定数値またはコピー元RAMアドレスを取得する。
次に、ステップS2315において、認識コードが「0」か「1」かを判定する。「1」の場合には、定数値を直接アドレスに格納するものとしてステップS2325に進み、一方、「0」の場合には、データコピーを行うものとしてステップS2320に進む。ステップS2320では、コピー元RAMアドレスの内容(定数値)を取得する。そして、ステップS2325では、いずれの場合においても、定数値をコピー先RAMアドレスへ格納する。最後に、ステップS2330において、RAMセット処理アドレスポインタの更新を行って次のデータ組に対する処理を行う。
このような処理によれば、複数の機種間でモジュール化されたプログラムを共通化でき、データ構造を変更するのみで所望のRAMセット処理を行うことができ、開発工数およびプログラム容量の低減を図ることが可能となる。特に、電源投入後に行うRAM240内の所定のエリアの初期化処理等を簡単に行える。
以上説明してきたように、本発明の実施の形態によれば、制御プログラムおよびデータ全体の開発の容易化を図ることが可能になる。以上の実施の形態の説明は図柄表示装置を用いて大当りを決定するパチンコ機を対象にしたものであるが、その他の種類のパチンコ機、例えば、変動入賞球装置を用いて大当りを決定するパチンコ機やパチスロ機にも本発明を適用できる。