以下、本発明の実施形態について詳細に説明する。図1は、本実施形態のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される前枠3とで構成されている。この前枠3には、遊技盤5が、裏側からではなく表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。前面板7には発射用の遊技球を貯留する上皿8が装着され、前枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その内側の遊技領域5aの略中央には、液晶カラーディスプレイである表示装置DISPが配置されている。また、遊技領域5aの適所には、上下2つの図柄始動口15A,15Bと、単一の大入賞口16と、左右4つの普通入賞口17と、通過口であるゲート18とが配設されている。これらの入賞口及びゲート15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
表示装置DISPの下部には、7セグメントLEDやドットマトリクスなどで構成される特別図柄表示部SPa,SPbが設けられている。特別図柄表示部は、左右の図柄始動口15A,15Bに対応して2つ設けられており、各図柄始動口15A,15Bに遊技球が入賞することを条件に実行される大当り抽選の抽選結果を明示するための表示部である。各特別図柄表示部SPa,SPbは、対応する図柄始動口15A,15Bに遊技球が入賞すると、表示内容の変動動作を開始し、その後、大当り状態か否かの抽選結果を表示して停止するようになっている。図示のように、特別図柄表示部SPa,SPbが7セグメントLEDで構成されている場合、大当り状態であれば特別図柄(例えば「1」〜「9」)の何れかを表示し、ハズレ状態あれば「−」を表示する。
特別図柄表示部SPa,SPbの下部には、それぞれ4個のLEDランプで構成された2つの抽選保留数表示部14A,14Bが、図柄始動口15A,15Bに対応して設けられている。抽選保留数表示部14A,14Bは、特別図柄表示部SPa,SPbの変動動作中に、図柄始動口15A,15Bに更に遊技球が入賞したことを示しており、4個を限度に遊技球の入賞が記憶され、その後の大当り抽選処理が保留状態となる。
本実施形態の場合、表示装置DISPは、特別図柄表示部として機能するのではなく、演出図柄を変動表示する演出図柄表示部として機能している。そして、特別図柄表示部SPa又は特別図柄表示部SPbと同期した演出動作を実行している。具体的には、大当り状態に係わる演出図柄(簡易的には、特別図柄と同じ「1」〜「9」)を変動表示すると共に、背景画像や各種のキャラクタなどをアニメーション的に表示している。
表示装置DISPの右上部には、普通図柄表示部19が設けられている。普通図柄表示部19は普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、表示される普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。なお、普通図柄の変動動作中に、遊技球がゲート18を通過した場合には、4個を上限として変動動作の開始が保留される。
大入賞口16は、例えば前方に開放可能な開閉板16aで開閉制御されるが、特別図柄表示部SPa,SPbと演出図柄表示部DISPの停止図柄が「7」及び「7・7・7」などの特別図柄のとき、「大当り」と称される特別遊技が開始され、開閉板16aが開放されるようになっている。
大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このような動作は、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部の変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、確変大当り状態となり、特別遊技の終了後のゲームが高確率状態となるという特典が付与される。
図3は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図である。図中の一点破線は、主に、直流電圧ラインを示している。図3に示す通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧やシステムリセット信号(電源リセット信号)SYSなどを出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出及び音声演出を実行する演出制御基板22と、演出制御基板22から受けた制御コマンドCMD’に基づいて表示装置DISPを駆動する液晶制御基板23と、主制御基板21から受けた制御コマンドCMD”に基づいて払出モータMを制御して遊技球を払い出す払出制御基板24と、遊技者の操作に応答して遊技球を発射させる発射制御基板25と、を中心に構成されている。
但し、この実施形態では、主制御基板21が出力する制御コマンドCMDは、コマンド中継基板26と演出インターフェイス基板27を経由して、演出制御基板22に伝送される。また、演出制御基板22が出力する制御コマンドCMD’は、演出インターフェイス基板27を経由して、液晶制御基板23に伝送され、主制御基板21が出力する制御コマンドCMD”は、主基板中継基板28を経由して、払出制御基板24に伝送される。
これら主制御基板21、演出制御基板22、液晶制御基板23、及び払出制御基板24には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板21〜24に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部22、液晶制御部23、及び払出制御部24と言うことがある。なお、演出制御部22、液晶制御部23、及び払出制御部24の全部又は一部がサブ制御部である。
ところで、このパチンコ機GMは、図3の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された前枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新た盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材1を除く全てが、盤側部材GM2である。
図3の破線枠に示す通り、枠側部材GM1には、電源基板20と、払出制御基板24と、発射制御基板25と、枠中継基板32とが含まれており、これらの回路基板が、前枠3の適所に各々固定されている。一方、遊技盤5の背面には、主制御基板21、演出制御基板22、液晶制御基板23が、表示装置DISPやその他の回路基板と共に固定されている。
そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された接続コネクタC1〜C4によって電気的に接続されている。接続コネクタC1〜C4は、この実施形態では、遊技盤5の背面視左下に集中配置されている。そして、ガラス扉6を開放した状態で、前枠3の表側から、遊技盤5の左端を前枠3に係止して回転支点を確保し、確保した回転支点を中心に遊技盤5を回転させることで、前枠3の内側に遊技盤5を嵌合させる。なお、遊技盤5を嵌合させると、全ての接続コネクタC1〜C4が接続状態となり、それだけで枠側部材GM1と盤側部材GM2の接続が完了し、パチンコ機GMが動作可能な状態となる。
図3に示す通り、電源基板20は、接続コネクタC2を通して、主基板中継基板28に接続され、接続コネクタC3を通して、電源中継基板30に接続されている。そして、主基板中継基板28は、電源基板20から受けたシステムリセット信号SYS、RAMクリア信号DEL、電圧降下信号DWN、バックアップ電源BU、DC12V、DC32Vを、そのまま主制御部21に出力している。同様に、電源中継基板30も、電源基板20から受けたシステムリセット信号SYSや、交流及び直流の電源電圧を、そのまま演出インターフェイス基板27に出力している。なお、演出インターフェイス基板27は、受けたシステムリセット信号SYSを、そのまま演出制御部22と液晶制御部23に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の、システムリセット信号SYS、RAMクリア信号DEL、電圧降下信号DWN、バックアップ電源BUを、その他の電源電圧と共に直接的に受けている。
ここで、電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって各制御部21〜24のワンチップマイコンその他のIC素子が電源リセットされるようになっている。
主制御部21及び払出制御部24が、電源基板20から受けるRAMクリア信号DELは、各制御部21,24のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。初期化スイッチSWをON操作すると、RAMクリア信号DELがLレベルとなり、初期化スイッチSWから手を離すと、RAMクリア信号DELがHレベルに戻る。
主制御部21及び払出制御部24が、電源基板20から受ける電圧降下信号DWNは、交流電源24Vが降下し始めたことを示す信号であり、この電圧降下信号DWNを受けることによって、各制御部21、24では、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源BUは、営業終了や停電により交流電源24Vが遮断された後も、主制御部21と払出制御部24のワンチップマイコンの内蔵RAMのデータを保持するDC5Vの直流電源である。したがって、主制御部21と払出制御部25は、電源遮断前の遊技動作を電源投入後に再開できることになる(電源バックアップ機能)。このパチンコ機では少なくとも数日は、各ワンチップマイコンのRAMの記憶内容が保持されるよう設計されている。
一方、演出制御部22と液晶制御部23には、上記した電源バックアップ機能が設けられていない。しかし、先に説明した通り、演出制御部22と液晶制御部23には、電源中継基板30と演出インターフェイス基板27を経由して、システムリセット信号SYSが共通して供給されており、他の制御部21,24と、ほぼ同期したタイミングで電源リセット動作が実現される。
主制御部21は、払出制御部25に対して、制御コマンドCMD”を伝送している。一方、払出制御部25は、主制御部25に対して、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONが伝送している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。
また、主制御部21は、遊技盤中継基板29を経由して、遊技盤5の各遊技部品に接続されている。そして、遊技盤上の各入賞口16〜18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動チューリップなどのソレノイド類を駆動している。スイッチ信号には、図柄始動口15A,15Bから主制御部21に伝送される入賞スイッチ信号と、ゲート18から主制御部21に伝送されるゲート信号と、が含まれる。
続いて、遊技動作を統括的に制御する主制御部21のプログラムの概要を説明する。図4は、主制御部21の制御プログラムを示すフローチャートである。主制御部21の制御プログラムは、電源電圧の復旧や投入に基づいて起動されるシステムリセット処理(図4)と、タイマ割込みにより2mS毎に起動されるマスク可能なタイマ割込み処理(図8(a))と、で構成されている。なお、これらの処理を実現するワンチップマイコンには、Z80CPU(Zilog社)相当品が内蔵されている。
以下、図4を参照しつつ、システムリセット処理プログラム(メイン処理)について説明する。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチSWがOFF状態で電源がON状態になる場合と、遊技ホールの開店時のように、初期化スイッチSWがON操作されて電源がON状態になる場合とがある。なお、制御プログラムが暴走したことにより、ウォッチドッグタイマが起動してCPUが強制的にリセットされる場合もある。
何れの場合でも、Z80CPUは、最初に自らを割込み禁止状態に設定すると共に(ST1)、割込みモード2に設定する(ST2)。また、CPU内部のスタックポインタSPの値を、スタック領域の最終アドレスに初期設定すると共に(ST3)、ワンチップマイコンの各部を含めて内部レジスタの値を初期設定する(ST4)。
次に、入力ポートIN2からRAMクリア信号DELを取得する(ST5)。先に説明した通り、RAMクリア信号DELとは、ワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。
そこで、次に、RAMクリア信号のレベルが判定される(ST6)。例えば、停電状態からの復旧時や、初期化スイッチSWをON操作することなく電源を投入した営業開始時には、RAMクリア信号はOFF状態(Hレベル)である。そのため、この状態では、続いて、バックアップフラグBFLの内容が判定される(ST7)。バックアップフラグBFLとは、図8(b)の電源監視処理の動作が実行されたことを示すデータであり、この実施形態では、電源遮断時のステップST38の処理でバックアップフラグBFLが5AHとされ、電源復帰後のステップST33の処理でゼロクリアされる。
電源投入時や、停電状態からの復旧時である場合には、バックアップフラグBFLの内容が5AHの筈である。但し、何らかの理由でプログラムが暴走状態となり、ウォッチドッグタイマによるCPUリセット動作が生じたような場合には、バックアップフラグBFL=00Hである。したがって、BFL≠5AH(通常はBFL=00H)となる場合には、ステップST7からステップST10の処理に移行させて遊技機の動作を初期状態に戻す。
一方、バックアップフラグBFL=5AHであれば、チェックサム値を算出するためのチェックサム演算を実行する(ST8)。ここで、チェックサム演算とは、内蔵RAMのワーク領域を対象とする8ビット加算演算である。そして、チェックサム値が算出されたら、この演算結果を、RAMのSUM番地の記憶値と比較をする(ST9)。
SUM番地には、電圧降下時に実行される電源監視処理(図8(b))において、同じチェックサム演算によるチェックサム値が記憶されている(ST39)。そして、記憶された演算結果は、内蔵RAMの他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップST9の判定によって両者が一致する筈である。
しかし、電源降下時にチェックサム演算(ST39)の実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算(ST8)の実行時までの間に、ワーク領域のデータが破損している場合もあり、このような場合にはステップST9の判定結果は不一致となる。判定結果の不一致によりデータ破損が検出された場合には、ステップST10の処理に移行させてRAMクリア処理を実行し、遊技機の動作を初期状態に戻す。一方、ステップST9の判定において、チェックサム演算(ST8)によるチェックサム値と、SUM番地の記憶値とが一致する場合には、ステップST12の処理に移行する。
続いて、ステップST6の判定処理に戻って説明を続ける。上記の場合とは逆に、RAMクリア信号がON状態(Lレベル)であったと仮定すると、ステップST6の判定に続いて、内蔵RAMの全領域がゼロクリアされる(ST10)。したがって、図8(b)のステップST38の処理でセットされたバックアップフラグBFLの値は、他のチェックサム値などと共にゼロとなる。
次に、RAM領域がゼロクリアされたことを報知するための電源投入コマンドが出力され(ST11)、CPUを割込み禁止状態にセットした状態で(ST12)、各種のカウンタついて更新処理を実行し(ST13)、その後、CPUを割込み許可状態に戻して(ST14)ステップST13に戻る。
ステップST13で更新されるカウンタには、変動パターン(演出内容)を決定するために使用される3つのカウンタCNT1〜CNT3が含まれている。これらのカウンタCNT1〜CNT3は、本実施例では各々8ビット長であり、図8(a)の特別図柄処理(ST27)における大当り抽選処理の結果や遊技状態(低確率状態、高確率状態、保留個数など)に応じて、どのような演出態様とするかを決定する乱数値RND1〜RND3として使用される。
一般に、大当り抽選処理の結果や遊技状態に対応して、各種の遊技演出をランダムに実行するためには、バリエーションに富んだ多数の演出内容を用意しておくと共に、これらの演出内容をランダムに選択する変動パターン作成処理が必要となる。しかし、ROMデータ領域やROMプログラム領域には容量制限があるので、単なる選択処理(変動パターン作成)のためにROM領域を大きく消費するのは妥当でない。
そこで、本実施例では、3つのカウンタCNT1〜CNT3の循環数値範囲をあえて相違させると共に、3つのカウンタCNT1〜CNT3を組み合わせて、図柄始動口15A,15Bへの入賞後に実行すべき演出内容を選択して、実行される演出内容のランダム性を高めている。
図5は、ステップST13のカウンタ更新処理と、これに関係するROMのデータ領域(乱数作成テーブル)と、RAMのワーク領域とを図示したものである。図示の通り、RAMのワーク領域には、WR_ADR番地から連続して、3バイト分のカウンタ領域CNT1〜CNT3が連続して確保されている。また、ROMのデータ領域には、RND_MK番地から連続して、3つのカウンタCNT1〜CNT3の数値範囲(各1バイト)が連続して記憶されている。
具体的には、RND_MK番地には、カウンタCNT1の数値範囲N1、RND_MK+1番地には、カウンタCNT2の数値範囲N2、RND_MK+2番地には、カウンタCNT3の数値範囲N3が記憶されている。したがって、各カウンタCNTiは、0〜Ni−1の数値範囲内で循環することになる。なお、i=1〜3である。
以上を踏まえて、図5のフローチャートを説明する。無限ループ状に繰り返されるカウンタ更新処理(ST13)では、毎回、先ず、Z80CPUのHLレジスタに、乱数作成テーブルの先頭アドレスRND_MKを格納する(ST50)。また、DEレジスタに、ワーク領域の該当エリアの先頭アドレスであるWR_ADRを格納する(ST51)。次に、この実施例では、変動パターン(演出内容)を決定するために3つのカウンタCNT1〜CNT3を使用するので、Bレジスタに「3」を格納する(ST52)。
以上の初期処理が終われば、DEレジスタが指示するアドレスの格納データを、Aレジスタにロードした後(ST53)、Aレジスタを更新する(ST54)。具体的には、インクリメント(+1)処理によってAレジスタの値が更新されるが(ST54)、更新後の値は、カウンタCNT1〜CNT3の更新後のカウンタ値に他ならない。
次に、インクリメント後のAレジスタの値と、HLレジスタが指示するアドレスの格納データとを比較する(ST55)。この処理によって、何れかのカウンタCNTiのカウンタ値と、そのカウンタの数値範囲Niとが比較されることになる。そして、もし両者が一致すれば、Aレジスタをゼロに戻す一方(ST56)、Aレジスタの値が数値範囲内であれば、そのAレジスタの値をDEレジスタが指示するアドレスに格納する(ST57)。
その後、HLレジスタとDEレジスタをインクリメント処理し(ST58,ST59)、Bレジスタをデクリメント処理する(ST60)。そして、デクリメント後のBレジスタの値がゼロになるまで、ステップST53〜ST60の処理を繰返してサブルーチン処理を終える(ST61)。
以上説明した一連の処理によって、3つのカウンタCNT1〜CNT3について、一回の更新処理が終わる。図4に示す通り、ステップST13の更新処理は、タイマ割込み処理の合間に無限ループ状に繰返されるので、3つのカウンタCNT1〜CNT3は、タイマ割込み待ちの間に、繰返し更新されることになる。ここで、3つのカウンタCNT1〜CNT3は、その循環数値範囲N1〜N3がそれぞれ相違するので、互いのカウンタ値の間に明確な規則性がない結果として、3つのカウンタCNT1〜CNT3を組み合わせて選択される変動パターン(演出内容)のランダム性が向上する。
そして、このようなカウンタ更新処理にために消費されるROMプログラム領域は、20バイトであり、ROMのデータ領域も3バイトの消費に過ぎないので、ROMデータ領域やROMプログラム領域の使用を最小限に抑制して、演出内容の選択のランダム性を高めることができる。
ところで、図5のカウンタ更新処理(ST13)は、必ずしも、図5の構成に限定されない。例えば、図6に示す通り、カウンタCNT1〜CNT3の個数(=3)を、乱数作成テーブルに格納しておくのも好適である。この場合、乱数作成テーブルは4バイト長であり、その先頭アドレスであるRND_MK番地には、カウンタ個数の「3」が格納される。
このような構成を採る場合には、ステップST52の処理に変えて、ステップSS52の処理において、HLレジスタが指示するアドレスの格納データ(=3)がBレジスタに格納される。そして、[LD B,3]が2バイト長であるのに対して、[LD B,(HL)]が1バイト長であるので、カウンタ更新処理(ST13)のためのROMプログラム領域の占有量が図5の構成より1バイトだけ減少する。
なお、[LD B,3]の実行時には、ROMのプログラム領域だけがアクセスされるのに対して、[LD B,(HL)]の実行時には、ROMのプログラム領域だけでなく、ROMのデータ領域(乱数作成テーブルの先頭アドレス)もアクセスされる。
また、図6の構成では、最初に、乱数作成テーブル(4バイト長)の先頭アドレス(RND_MK)が、HLレジスタに格納されるので(SS50)、ステップSS53のタイミングでHLレジスタをインクリメントする必要があるが、SS53〜SS61の処理は、実質的には、図5のST53〜ST61の処理と同じである。
以上の通り、図5又は図6の構成を採れば、ROMプログラム領域を19バイトまたは20バイト使用し、ROMデータ領域を4バイトまたは3バイト使用するだけで、演出内容の選択を効果的にランダム化することができる。
ところで、図5や図6に示すカウンタ更新処理(ST13)は、遊技機の動作中、最も高頻度に実行される。すなわち、タイマ割込みルーチンの処理は、2mSに1回しか実行されないのに対して、カウンタ更新処理(ST13)は、通常の設計では、それ以上の頻度で繰返し実行される。
そして、このように高頻度で実行されるカウンタ更新処理(ST13)の動作中に、万一、Bレジスタの値がビット化けすると、ワーク領域の更新処理(ST57,SS58)が3回を超えて実行されることになり、本来、更新される必要のないワーク領域の内容を不合理にインクリメントしてしまう可能性もある。
ワーク領域には、各種のフラグを含めて遊技動作を制御するための重要なデータが記憶されているので、万一、これらの値が不合理に更新されると、遊技動作を正常に継続できない。特に、大当り状態であることを示す大当りフラグが、不合理に変更されたのでは、大当り状態が消失してしまうことにもなる。
そこで、このような点を考慮して、プログラム暴走を防止するためには、図7の構成を採るのが好適である。図7では、TT53〜TT64の処理を3回繰り返すループ処理において、毎回、Bレジスタの値をチェックして、Bレジスタが明らかな異常値を示す場合には、その段階でサブルーチン処理を終えている。
すなわち、ワーク領域を書き換える[LD (DE),A]の処理(TT61)に先立って、AレジスタにRAN_MK番地の格納データをロードし(TT58)、そのロード値(=3)と、その時のBレジスタの値とを対比し(TT59)、もし、A<Bであればサブルーチン処理を終えている。Bレジスタは、ステップTT52の処理で3に初期設定された後、本来なら3→2→1と変化して(TT63)、カウンタCNT3を更新した後に(TT61)、0になるはずである。
したがって、正常に動作が繰り返されている限り、Bレジスタの値が、ステップTT59のタイミングにおけるAレジスタより大きい値になることはない。そこで、A<Bとなる明らかな異常時には、直ちにサブルーチン処理を終えることで、ワーク領域の異常な書き換え処理を回避している。
なお、異常検出時に、サブルーチン処理(ST13)を途中終了しても、カウンタCNT1〜CNT3は、演出内容をランダムに選択する用途でしか使用しかないので、カウンタCNT1〜CNT3の更新処理がスキップされたことに実質的な弊害は生じない。
続いて、上記したメイン処理を中断させて、2mS毎に開始されるタイマ割込み処理プログラム(図8(a))を説明する。タイマ割込みが生じると、CPUのレジスタを保存することなく、直ちに電源監視処理が実行される(ST20)。これは、タイマ割込み処理が起動されるタイミングが、ステップST14の直後に固定されているため、レジスタを保存する必要がないからである。
電源監視処理(ST20)では、電源基板20から供給されている電圧降下信号DWNのレベルを判定するが、具体的な処理内容については後述する。電源監視処理(ST20)が終わると、普通図柄処理(ST26)や特別図柄処理(ST27)で使用する乱数カウンタRG,BGが、ソフトウェア的に更新されることで抽選用の乱数値が生成される(ST21)。
次に、各遊技動作の時間を管理しているタイマについて、タイマ減算処理が行なわれる(ST22)。ここで減算されるタイマは、主として、電動チューリップや大入賞口の開放時間やその他の遊技演出時間を管理するために使用される。
続いて、図柄始動口15A,15Bの入賞検出スイッチを含む各種スイッチ類のON/OFF信号が入力され、ワーク領域の入賞スイッチデータとして、該当ビットにON/OFF信号が記憶される(ST23)。
スイッチ入力処理(ST23)が終われば、次に、エラー管理処理が行われる(ST24)。エラー管理処理は、遊技球の補給が停止したり、遊技球が詰まっていないかなど、機器内部に異常が生じていないかの判定を含んでいる。
次に、払出制御部24から受けた賞球計数信号に基づく管理処理を実行した後(ST25)、普通図柄処理を行う(ST26)。普通図柄処理とは、電動チューリップなど、普通電動役物を作動させるか否かの判定を意味する。具体的には、遊技球がゲートを通過したと判定されている場合に、ステップST21の処理で更新された当り用カウンタRGを、当り当選値と対比して行われる。そして、対比結果が当選状態であれば当り中の動作モードに変更する。また、当り中となれば、電動チューリップなど、普通電動役物の作動に向けた処理を行う。
続いて、特別図柄処理を行う(ST27)。特別図柄処理とは、大入賞口16など特別電動役物を作動させるか否かの判定である。遊技球が図柄始動口15A,15Bを通過したと判定されている場合に、ステップST21の処理で更新された大当り用カウンタBGを、大当り当選値と対比して大当り抽選処理を実行する。
次に、大当り抽選処理の結果を踏まえて、如何なる図柄演出・音声演出・ランプ演出を実行するかを規定する変動パターンを決定する。この変動パターンの決定では、その時のワーク領域のカウンタCNT1〜CNT3の全てが、乱数値RND1〜RND3として使用される。
本実施例では、各カウンタCNT1〜CNT3の数値範囲は、8ビット長のN1〜N3であるので、原理的には、演出内容として、膨大なN1*N2*N3通りを用意できることになり、膨大に用意された演出の何れかが選択される。しかも、本実施例では、N1≠N2≠N3となっているので、N1=N2=N3の場合と比較すると、各カウンタCNT1〜CNT3のカウンタ値の組み合わせに規則性がなく、その分だけ、演出内容の選択結果にランダム性が高い。
このようにして抽選結果と演出内容とを関連させて決定した後、抽選結果が当選状態であれば大当り中の動作モードに変更する。このとき、ワーク領域の大当りフラグはセット状態となる。また、大当り中となれば、大入賞口など種特別電動役物の作動に向けた処理を行う。
次に、特別図柄処理(ST27)の後、主制御部21で管理するLEDについて点灯動作を進行させると共に(ST28)、電動チューリップや大入賞口などの開閉動作を実現するソレノイド駆動処理を実行して、タイマ割込みを終える(ST29)。その結果、割込み処理ルーチンからメイン処理の無限ループ処理(図4)に戻り、ステップST13のカウンタ更新処理が繰返し実行される。
続いて、図8(b)に示す電源監視処理(ST21)について念のため説明する。電源監視処理(ST21)では、先ず、電源基板20から供給される電圧降下信号DWNを取得し(ST31)、それが異常レベルでないか判定する(ST32)。そして、異常レベルでない場合には、異常回数カウンタとバックアップフラグBFLをゼロクリアして処理を終える(ST33)。
一方、電圧降下信号DWNが異常レベルである場合には、異常回数カウンタをインクリメント(+1)して(ST34)、計数結果が上限値MAXを超えていないかを判定する(ST35)。これは、入力ポートからの取得データが、ノイズなどの影響でビット化けしている可能性があることを考慮したものであり、所定回数(例えば、上限値MAX=2)連続して異常レベルを維持する場合には、交流電源が現に遮断されたと判定する。
このように、本実施形態では、電源遮断時にも、直ぐには以降のバックアップ処理を開始せず、動作開始のタイミングが、MAX×2mSだけ遅れる。
しかし、(1)電圧降下信号DWNは、直流電源電圧の降下ではなく、交流直流電圧の降下を検出すること、(2)直流電源電圧は、大容量のコンデンサによって交流電源の遮断後もしばらくは維持されること、(3)電源監視処理が高速度(2mS毎)で繰り返されること、(4)乱数取得の割込みの処理がシンプルであり素早く完了すること、(5)バックアップ処理もシンプルであり、迅速に終わることから、実質的には何の弊害もない。
ところで、ステップST35の判定の結果、異常回数カウンタの計数値が上限値MAXに一致した場合には、異常回数カウンタをゼロクリアした後(ST36)、CPUを割込み禁止状態にする(ST37)。これは、このタイミングまで、CPUが、割込み許可状態であるので(ST20参照)、乱数取得の割込み要求を受け付けることを意味する。したがって、図柄始動口への入賞状態は、電源遮断の最終段階まで、チェックされることになり、チェックされた入賞状態や、取得された乱数値は、ワンチップマイコンの内蔵RAMに記憶されるので、電源遮断後もバックアップ電源BUによって維持される。
以上の処理が終われば、その後は割込み処理が生じないので、バックアップフラグBFLに5AHを設定し(ST38)、メインルーチンのステップST8の場合と、全く同じ演算を、全く同じ作業領域(ワークエリア)に対して実行し、その演算結果を記憶する(ST39)。なお、実行される演算は、典型的には8ビット加算演算である。
そして、その後はワンチップマイコンをRAMアクセス禁止状態に設定すると共に(ST40)、全ての出力ポートの出力データをクリアする(ST41)。その結果、同種の電源監視処理を主制御部21より遅れて開始する払出制御部24に対して、不合理なデータが送信させることが防止される。そして、その後は、無限ループ処理を繰返しつつ直流電源電圧が降下するのを待つ(ST41)。
以上、本発明の2つの実施形態について詳細に説明したが、具体的な説明は特に本発明を限定する趣旨ではなく、本発明の趣旨を逸脱することなく各種の改変が可能である。例えば、実施例は弾球遊技機について説明したが、スロットマシンにも本発明を好適に適用することができる。