以下、本発明の好ましい実施例について、添付図面を参照して説明する。本実施例では、遊技機の一例として弾球遊技機の一種であるパチンコ機、特に、第1種パチンコ遊技機を用いて説明する。なお、本発明を第3種パチンコ遊技機や他の遊技機に用いることは、当然に可能である。
図1は、本実施例のパチンコ機Pの遊技盤の正面図である。遊技盤1の周囲には、球が入賞することにより所定個数の球が払い出される複数の入賞口2が設けられている。また、遊技盤1の中央には、複数種類の識別情報としての図柄(特別図柄)などを表示する液晶ディスプレイ(以下単に「LCD」と略す)3が設けられている。このLCD3の表示画面は縦方向に3分割されており、3分割された各表示領域において、それぞれ上から下へ上下方向にスクロールしながら図柄の変動表示が行われる。
LCD3の上方には、表面に「○」と「×」との普通図柄が表示された2つのLED6a,6bで構成された普通図柄表示装置6が配設されている。この普通図柄表示装置6では、遊技領域に打ち込まれた球がLCD3の両側に配設されたゲート7を通過した場合に、「○」と「×」とのLED6a,6bを交互に点灯させる変動表示が行われる。かかる変動表示が「○」のLED6aで終了した場合には、当たりとなって普通電動役物4が所定時間(例えば0.5秒)開放される。
また、LCD3の下方には、図柄作動口(第1種始動口、普通電動役物)4が設けられており、球がこの図柄作動口4へ入賞することにより、前記したLCD3の変動表示が開始される。図柄作動口4の下方には、特定入賞口(大入賞口)5が設けられている。この特定入賞口5は、LCD3の変動後の表示結果が予め定められた図柄の組み合わせの1つと一致する場合に、大当たりとなって、球が入賞しやすいように所定時間(例えば、30秒経過するまで、或いは、球が10個入賞するまで)開放される入賞口である。
この特定入賞口5内には、Vゾーン5aが設けられており、特定入賞口5の開放中に、球がVゾーン5a内を通過すると、継続権が成立して、特定入賞口5の閉鎖後、再度、その特定入賞口5が所定時間(又は、特定入賞口5に球が所定個数入賞するまで)開放される。この特定入賞口5の開閉動作は、最高で16回(16ラウンド)繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値が付与された状態(特別遊技状態)である。
なお、第3種パチンコ遊技機において所定の遊技価値が付与された状態(特別遊技状態)とは、LCD3の変動後の表示結果が予め定められた図柄の組み合わせの1つと一致する場合に、特定入賞口が所定時間開放されることをいう。この特定入賞口の開放中に、球がその特定入賞口内へ入賞すると、特定入賞口とは別に設けられた大入賞口が所定時間、所定回数開放される。
図2は、かかるパチンコ機Pの電気的構成を示したブロック図である。パチンコ機Pの主制御基板Cには、演算装置である1チップマイコンとしてのMPU11が搭載されている。このMPU11の詳細については、図3を参照しつつ後述する。
図2に示すように、MPU11は、払出モータ17によって賞球や貸球の払出制御を行う払出制御基板Hと、前述した特別図柄及び普通図柄の変動表示の制御を行う表示用制御基板Dと、第1種始動口スイッチ20と、そのほか、他の入出力装置21とにそれぞれ接続されている。また、表示用制御基板Dは、スピーカ18から効果音の出力制御を行うと共にLEDや各種ランプ19の点灯制御を行う音声ランプ制御基板Sと接続され、主制御基板CのMPU11から送信される制御用コマンドに基づいて、かかる音声ランプ制御基板Sの動作を制御する。
第1種始動口スイッチ20は、図柄作動口(第1種始動口)4(図1参照)に入賞した球を検出するためのスイッチであり、図柄作動口4の近傍に設けられている。第1種始動口スイッチ20によって球が検出されると、払出モータ17が作動して図示しない払出装置によって5個の賞球が払い出される。また、第1種始動口スイッチ20によって球が検出された場合には、乱数カウンタ54b(図3参照)の値が取得され、その取得された値がユーザワークRAM54の所定の領域に書き込まれて記憶される。
電源基板30は、パチンコ機Pの各部に電力を供給するための電源部30aと、停電監視回路30bと、クリアスイッチ30cとを備えている。停電監視回路30bは、停電等の発生による電源断時に、主制御基板CのMPU11のNMI端子へ停電信号31を出力するための回路である。停電監視回路30bは、電源部30aから出力される最も大きい電圧である直流安定24ボルトの電圧を監視し、この電圧が22ボルト未満になった場合に停電(電源断)の発生と判断して、停電信号31を主制御基板C及び払出制御基板Hへ出力するように構成されている。この停電信号31の出力によって、主制御基板C及び払出制御基板Hは、停電の発生を認識し、停電時処理(主制御基板Cの場合は図4のNMI割込処理)を実行する。なお、電源部30aは、直流安定24ボルトの電圧が22ボルト未満になった後においても、かかる停電時処理の実行に充分な時間の間、制御系の駆動電圧である5ボルトの出力を正常値に維持するように構成されているので、主制御基板C及び払出制御基板Hは、停電時処理を正常に実行することができるのである。
クリアスイッチ30cは、主制御基板CのユーザワークRAM54および払出制御基板HのRAM(図示せず)にバックアップされているデータをクリアするためのスイッチであり、押しボタンタイプのスイッチで構成されている。このクリアスイッチ30cが押下された状態でパチンコ機Pの電源が投入されると(停電解消による電源入を含む)、主制御基板Cおよび払出制御基板Hへクリア信号32がそれぞれ出力され、そのクリア信号32を契機として、それぞれのユーザワークRAM54のデータがクリアされる。なお、この場合、乱数カウンタ54bの値はクリアされるので、かかる乱数カウンタ54bの更新の初期値は、ID用RAM64に記憶される固有コードメモリ64aの値(固有コード)を利用してパチンコ機毎に異なる値に設定される。
次に図3を参照して、主制御基板Cに搭載されるワンチップマイコンとしてのMPU11について説明する。図3は、MPU11の電気的構成を示すブロック図である。同図に示すように、MPU11には、中央処理装置(CPU)51を中心にして、プログラムROM52、HWパラメータ53、ユーザワークRAM54、内部I/Oブロック55、I/Oポート56等が備えられており、これらは互いにバス57によって接続されている。また、これらはバスモニタ58を介して管理ブロック59に接続されている。CPU51は、アキュームレータ(Acc)をはじめ、B、C、D、E、H、Lの各レジスタ、IX、IYの16ビットのインデックスレジスタ、フラグレジスタ等の各レジスタを備えている(図3には、IYレジスタ51aのみ図示している)。
本実施例においてプログラムROM52は、ワンタイム書き込み型のEPROMにより構成され、ここに所定の制御プログラムや初期データが予め記憶されている。図4から図9に示すフローチャートのプログラムは、制御プログラムの一部としてこのプログラムROM52内に記憶されている。CPU51は、I/Oポート56を介して入力されてくる各種信号等に基づき前記プログラムROM52の制御プログラム等に従って各種演算処理を実行する。HWパラメータ53は書き換え可能な不揮発性のメモリであるEEPROMによって構成されており、クロック等に関する各種設定事項等が記憶されている。
ユーザワークRAM54はCPU51による演算結果等の各種データを一時的に記憶するものであり、バックアップエリア54aと、乱数カウンタ54bと、現初期値メモリ54cとを備えている。また、ユーザワークRAM54には、パチンコ機Pの電源のオフ後においても、後述する電源基板30からバックアップ電圧が供給されており、データを保持(バックアップ)することができるように構成されている。なお、コンデンサや電池等を使用してユーザワークRAM54のデータをバックアップするように構成しても良い。
バックアップエリア54aは、停電などの発生により電源が切断された場合、電源の再入時に、パチンコ機Pの状態を電源切断前の状態に復帰させるため、電源切断時(停電発生時を含む。以下、同様)のスタックポインタや、各レジスタ、I/O等の値を記憶しておくためのエリアである。IYレジスタ51aの値も電源断時にこのバックアップエリアに記憶される。このバックアップエリア54aへの書き込みは、NMI割込処理(図4参照)によって電源切断時に実行され、逆にバックアップエリア54aに書き込まれた各値の復帰は、電源入時(停電解消による電源入を含む。以下、同様)の初期化処理(図5参照)において実行される。なお、MPU11のNMI(Non Maskable Interrupt)端子(ノンマスカブル割込端子)には、停電等の発生による電源断時に、後述する停電監視回路30bから出力される停電信号31が入力されるように構成されており、停電の発生により、図4の停電時処理(NMI割込処理)が即座に実行される。
乱数カウンタ54bは、大当たりの発生を決定するためのカウンタであり、後述する乱数更新処理(図9参照)によって、「0」〜「629」の範囲で2ms毎に1カウントずつ加算方向に更新される。この乱数カウンタ54bの値は、遊技盤1に打ち込まれた球が図柄作動口4へ入賞して後述する第1種始動口スイッチ20で検出されたとき(始動入賞時)に取得され、このとき取得された乱数カウンタ54bの値が例えば「7」または「315」であった場合には、大当たりが発生する。大当たりが発生すると、大当たりコマンドが主制御基板Cから後述する表示用制御基板Dへ送信され、表示用制御基板Dは、その大当たりコマンドに基づいてLCD3の変動表示と音声ランプ制御基板Sの制御とを行う。
なお、乱数カウンタ54bの値は、上述したように、電源基板30から供給されるバックアップ電圧により、電源のオフ後においても保持(バックアップ)されている。よって、電源投入時には、そのバックアップされた値から乱数カウンタ54bの更新を再開することができるので、乱数カウンタ54bの更新の初期値が固定値となることを回避して、乱数カウンタ54bのランダム性を確保することができる。
一方、バックアップ不良等により乱数カウンタ54bの値が適正に保持されなかった場合や、クリアスイッチ30cの押下により乱数カウンタ54bの値がクリアされた場合には、図6に示すRAMクリア及び初期化処理において、後述する固有コードメモリ64aの値を利用して各パチンコ機毎に異なる初期値が生成される。よって、乱数カウンタ54bの値がクリア等された場合においても、乱数カウンタ54bの更新の初期値が「0」等の固定値となることを回避して、乱数カウンタ54bのランダム性が低下すること防止することができる。例えば、不正に乱数カウンタ54bの値をクリアして大当たりを不当に発生させる不正行為に対しては、クリア後の乱数カウンタ54bの更新の初期値を各パチンコ機毎に異ならせることができるので、その初期値の把握を困難なものとして、かかる不正行為を抑制することができる。
なお、固有コードメモリ64aの値に基づいて生成されるランダムな値(初期値)は、乱数カウンタ54bの値がクリア等された後の1周期目(最初)の更新の初期値にのみ使用され、2周期目以降の更新の初期値には、IYレジスタ51aの値が使用される。
現初期値メモリ54cは、更新中の乱数カウンタ54bの初期値を記憶するためのメモリであり、CPU51のIYレジスタ51aは、乱数カウンタ54bの次回の更新の初期値を記憶するためのメモリ(レジスタ)である。現初期値メモリ54c及びIYレジスタ51aは、いずれも乱数カウンタ54bの更新範囲と同じ「0」〜「629」の範囲が適正な更新範囲内の値とされている。IYレジスタ51aについては、INT割込処理(図8参照)のみならず、メイン処理(図5参照)においても更新されており、メイン処理においては適正な更新範囲を考慮することなく、1カウントずつアップされるので、IYレジスタ51aは、INT割込処理の乱数更新処理(S52、図9参照)において、適正な更新範囲内の値に補正された後に、乱数カウンタ54bの次回の更新の初期値として使用される。また、IYレジスタ51aの更新は、メイン処理のS21の処理において繰り返し実行される。かかる処理は、定期的に実行されるINT割込処理の制御の残余時間において実行される。残余時間は、遊技の状態に応じて変化する不定な時間であるため、IYレジスタ51aの値は、ランダムに更新される。よって、かかるIYレジスタ51aの値を乱数カウンタ54bの更新の初期値として使用することにより、乱数カウンタ54bの更新の初期値をランダムに変更することができる。
内部I/Oブロック55は、カウンタ・タイマ、割込みコントローラ及び高速HWカウンタ等の機能ブロックにより構成されている。バスモニタ58は、データの入出力を管理するものであり、このバスモニタ58によって、CPU51の演算データ等が管理ブロック59へ出力され、また、管理ブロック59の内容(例えば、固有コードメモリ64aの値)がCPU51の要求に応じてユーザワークRAM54等へ出力される。
管理ブロック59は、独立記憶部を構成し、検査ポート61並びにミラードRAM62、ステータスRAM63及びID用RAM64等を備えている。検査ポート61は書込みエラーや、シーケンス異常等を検出可能となっており、ミラードRAM62はユーザワークRAM54のデータをミラーリング(複写)するものである。また、ステータスRAM63には、HWパラメータ53の設定事項等が書き込まれる。
ID用RAM64には、固有コードメモリ64aが設けられており、この固有コードメモリ64aには、MPU11に固有(即ち、パチンコ機固有)の識別番号(識別情報)としての値(固有コード)が書き込まれている。この固有コードメモリ64aの値は、パチンコ機Pのセキュリティー情報としての役割を担っており、各MPU毎に異なるユニークな番号で構成されている。MPU11の検査ポート61には、モジュラージャック(図示せず)が接続可能に構成されており、このモジュラージャックを介してチェッカー(図示せず)をMPU11に接続することができる。よって、固有コードメモリ64aの値を外部から読み出して真贋の照合をすることができるので、MPU11のセキュリティーチェックを行うことができる。従って、かかる固有コードメモリ64aの値等を不正に書き換えたり、MPU11を不正なMPUに交換するという不正行為を実行困難なものとして、その不正行為を抑制することができる。
この固有コードメモリ64aの値(固有コード)は、図6のRAMクリア及び初期化処理において読み出され、乱数カウンタ54bの更新の初期値を生成する際に使用される。上述したように、固有コードメモリ64aの値は、パチンコ機毎に異なるユニークな番号から構成されているので、この固有コードメモリ64aの値を利用して生成される乱数カウンタ54bの更新の初期値は、パチンコ機毎に異なる不定な値となり、その結果、乱数カウンタ54bのランダム性を不当に低下させて大当たりを発生させる等の不正行為を抑制することができる。なお、ID用RAM64には、固有コードメモリ64aの他にパチンコ機Pの製造メーカコードや機種コード等を記憶するメモリ(図示せず)も設けられている。
次に、上記のように構成されたパチンコ機Pで実行される各処理を、図4から図9の各フローチャートを参照して説明する。図4は、停電の発生等によるパチンコ機Pの電源断時に、主制御基板Cで実行されるNMI割込処理を示すフローチャートである。このNMI割込処理により、停電の発生等による電源断時の主制御基板Cの状態がバックアップエリア54aに記憶される。
停電の発生等によりパチンコ機Pの電源が断されると、停電監視回路30bから停電信号31が主制御基板CのMPU11のNMI(Non Maskable Interrupt)端子へ出力される。すると、MPU11は、実行中の制御を中断して、図4のNMI割込処理を開始する。停電信号31が出力された後所定時間は、主制御基板Cの処理が実行可能なように電源基板30の電源部30aから電力供給がなされており、この所定時間内にNMI割込処理が実行される。
NMI割込処理では、まず、各レジスタおよびI/O等の値をスタックエリアへ書き込み(S1)、次に、スタックポインタの値をバックアップエリア54aへ書き込んで退避する(S2)。更に、停電発生情報をバックアップエリア54aへ書き込んで(S3)、停電の発生等による電源断時の状態を記憶する。その後、その他停電処理を実行した後(S4)、電源が完全に断して処理が実行できなくなるまで、処理をループする。
図5は、パチンコ機Pの電源入時に主制御基板Cで実行されるメイン処理のフローチャートである。メイン処理では、バックアップが有効であれば、バックアップエリア54aに記憶された各データを元の状態に戻し、遊技の制御を電源が断される前の状態から続行する。一方、バックアップが有効でなかったり、或いは、バックアップが有効であっても電源入時にクリアスイッチ30cが押下された場合には、RAMクリア及び初期化処理(S18)を実行して、パチンコ機Pを初期化する。
まず、割込を禁止し(S11)、スタックポインタを設定する(S12)。クリアスイッチ30cがオンされているか否かを確認し(S13)、オンされていなければ(S13:No)、バックアップが有効であるか否かを確認する(S14)。この確認は、ユーザワークRAM54の所定のエリアに書き込まれたキーワードが正しく記憶されているか否かにより判断する。キーワードが正しく記憶されていればバックアップは有効であり、逆に、キーワードが正しくなければバックアップデータは破壊されているので、そのバックアップは有効ではない。バックアップが有効であれば(S14:Yes)、処理をS15へ移行して、主制御基板Cの各状態を電源断前の状態に復帰させる。即ち、バックアップエリア54aからスタックポインタの値を読み出して、これをスタックポインタへ書き込み、電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻す(S15)。次に、スタックポインタの値を戻した後のスタックエリア、即ちバックアップエリア54aへ退避した各レジスタやI/O等のデータをそのバックアップエリア54aから読み出して、これら各データを元のレジスタやI/O等へ書き込み(S16)、その後、割込の状態を停電発生時に実行される図4の処理で記憶しておいた電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻し(S17)、NMI割込リターンを実行して処理を電源断前に実行していたところへ戻して、制御を電源断前の状態から続行する。
一方、クリアスイッチ30cがオンされていたり(S13:Yes)、或いはバックアップが有効でなければ(S14:No)、RAMクリア及び初期化処理を実行する(S18)。その後、タイマ割込等の各割込の設定を行って(S19)、割込が発生可能な状態にした上で、割込を許可する(S20)。割込の許可後は、図8のINT割込処理の実行の合間(INT割込処理の実行の残余時間)に、S21及びS22の処理を繰り返し実行する。
S21の処理は、IYレジスタ51aのインクリメント処理(S21)であり、この処理の実行の度にIYレジスタ51aの値は「+1」される。S21の処理は、MPU11の1命令で実行されるので、その実行途中でINT割込処理などの他の割込処理が実行されることはない。よって、S21の処理によるIYレジスタ51aの値(カウント値)の更新を途中で途切れさせること無く完了することができる。また、かかる更新は、IYレジスタ51aの値を他のレジスタ(ALU等のソフト制御の範疇外のものは除く)やメモリに移動した上で、IYレジスタ51aの値の更新を行い、その更新後の値をIYレジスタ51aへ戻して、該更新を完了するのではないので、この点においても、例えIYレジスタ51aの更新処理が並行して行われても、IYレジスタ51aの値を的確に更新することができる。IYレジスタ51aは、16ビットレジスタで構成されている。よって、IYレジスタ51aの値が「0FFFFh」の状態でS21の処理が実行されると、IYレジスタ51aの値は「0」となる。
ここで、IYレジスタ51aは、大当たりを決定するための乱数カウンタ54bの更新の初期値を記憶するレジスタとして使用される(乱数カウンタ54bの更新の初期値をカウントするカウンタとして使用される)。また、その他ランダム処理(S22)は、遊技の制御に当たって所定のデータにランダム性を持たせるための更新処理である。上述する通りこれらの処理は、割込の実行されない不定な時間を利用して繰り返し実行されるので、これらの処理の対象となるデータは、結果的にランダムな値となる。よって、S20およびS21の各処理を繰り返し実行することにより、乱数カウンタの更新の初期値等をランダムな値にすることができる。
なお、本実施例の乱数カウンタ54bは「0〜629」の範囲で更新されるので、INT割込処理の実行によってIYレジスタ51aの値が最大値である「629」に更新されている場合にも、S21の処理によってIYレジスタ51aの値が「0」に更新されるまでに、次のINT割込処理が実行されるように、INT割込処理の最短実行時間とS21及びS22の合計最短実行時間とに基づいて、INT割込処理の実行間隔が決められている。即ち、「629」から「0FFFFh(=65535)」になるまでの64906回のS21及びS22の処理が実行される迄の間に、遅くとも次のINT割込処理が実行されるように、本実施例ではINT割込処理の実行間隔は2msとされている。このように構成することにより、IYレジスタ51aの値を更新範囲のチェックをせずに繰り返し「+1」更新しても、INT割込処理内で実行されるIYレジスタ補正処理(図7参照)によって、その値を適正な更新範囲内の値に補正することができる。よって、メイン処理でのIYレジスタ51aの更新を無意味なものとすることなく、有効に利用することができる。
図6は、主制御基板Cのメイン処理の中で実行されるRAMクリア及び初期化処理(S18)を示すフローチャートである。この処理は、ユーザワークRAM54および各I/Oの値を初期化すると共に、固有コードメモリ64aの値(固有コード)を利用して乱数カウンタ54bの更新の初期値を生成することにより、パチンコ機毎に異なる乱数カウンタの54bの更新の初期値を生成する為の処理である。
このRAMクリア及び初期化処理では、まず、ユーザワークRAM54の各値を「0」クリアし、ユーザワークRAM54および各I/O等の初期値を設定する(S31)。ここで、従来のパチンコ機では、この「0」クリアされた値を初期値として乱数カウンタの更新を開始していたため、その更新の初期値が固定値(ここでは、「0」)となり、乱数カウンタのランダム性の低下を招いていた。そこで、本実施例のパチンコ機Pでは、以下に説明する処理によって乱数カウンタ54bの更新の初期値をランダムに生成し、かかる乱数カウンタ54bのランダム性の低下を防止している。
即ち、S31の処理後は、まず、ID用RAM64の固有コードメモリ64aの値をリードして(S32)、そのリードした値をIYレジスタ51aへ書き込む(S33)。固有コードメモリ64aの値は、上述したように、MPU11に固有のユニークな番号であるので、S33では、同一機種のパチンコ機においても、全てのパチンコ機毎に異なる値がIYレジスタ51aへ書き込まれる。なお、固有コードメモリ64aの値が2バイト以上で構成される場合には、本実施例では下位2バイトのデータをIYレジスタ51aへ書き込むが、2バイト以上の固有コードメモリ64aの値を2バイトのデータに加工して、その加工した値をIYレジスタ51aへ書き込むようにしても良い。また、下位以外の2バイトのデータをIYレジスタ51aへ書き込むように構成しても良い。
次いで、図7に示すIYレジスタ補正処理(S34)によって、IYレジスタ51aの値を乱数カウンタ54bの適正な更新範囲内の値(本実施例では「0〜629」)に加工(補正)する。IYレジスタ51aへ書き込まれたデータは、必ずしも乱数カウンタ54bの適正な更新範囲内のデータであるとは限らないからである。
図7に示すように、IYレジスタ補正処理では、まず、IYレジスタ51aの値が適正な更新範囲の最大値である「629」以下であるか否かを確認する(S41)。IYレジスタ51aの値が「630」以上であれば(S41:No)、その値は乱数カウンタ54bの適正な更新範囲の値を超えているので、この場合には、IYレジスタ51aの値から更新範囲の最大値+1である「630」を減算する(S42)。減算の結果、IYレジスタ51aの値が「629」以下になっていれば(S41:Yes)、IYレジスタ51aの値の補正を終了し、このIYレジスタ補正処理を終了する。一方、減算してもなおIYレジスタ51aの値が「630」以上であれば(S41:No)、IYレジスタ51aの値が「629」以下になるまで、その値から「630」の減算処理を繰り返す。このように、IYレジスタ51aの値は、IYレジスタ補正処理(S34)によって、乱数カウンタ54bの適正な更新範囲内の値(本実施例では「0〜629」)に補正される。
図6に戻って説明する。IYレジスタ補正処理によって、IYレジスタ51aの値が適正な更新範囲内の値となると、そのIYレジスタ51aの値を乱数カウンタ54b及び現初期値メモリ54cへ書き込んで(S35、S36)、乱数カウンタ54b及び現初期値メモリ54cの更新の初期値を設定する。なお、乱数カウンタ54bは、このS35の処理によって設定された値を更新の初期値として、後述する乱数更新処理(S52、図9参照)により1周期目の更新を開始する。
このように、乱数カウンタ54bの更新の初期値には、固有コードメモリ64aの値(即ち、IYレジスタ51aに書き込まれた値)を加工(補正)して生成されたランダムな値が設定される。バックアップ不良等により乱数カウンタ54bの値が適正に保持されなかった場合や、クリアスイッチ30cの押下により乱数カウンタ54bの値がクリアされた場合には、このランダムに生成された初期値から乱数カウンタ54bの更新が開始されるので、かかる乱数カウンタ54bの更新が「0」等の固定値から開始されることを回避して、乱数カウンタ54bのランダム性の低下を抑制することができるのである。
ここで、例えば、主制御基板Cと他の基板(例えば、電源基板30)等との間に、不正な基板(例えば、いわゆる「ぶら下がり基板」等)を取り付けて、その基板から不正に生成した信号(例えば、停電信号31)を主制御基板Cへ出力する不正行為が考えられる。例えば、不正に生成した停電信号を連続的に主制御基板Cへ出力して、停電時処理を頻発させると、主制御基板C(MPU11)は、停電時処理を正常に実行することができなくなり、遊技状態が初期化(ユーザワークRAM54が初期化)されてしまう。このようにすることで、乱数カウンタ54bの更新を「0」等の固定値から開始させ、乱数カウンタ54bのランダム性を不当に低下させるのである。
しかしながら、本実施例の遊技機Pによれば、乱数カウンタ54bの更新の初期値は、固有コードメモリ64aの値(固有コード)に基づいて生成されるため、パチンコ機毎に異なるランダムな値である。よって、不正行為を行う者(不正な基板)は、第1種始動口スイッチ20の検出信号を不正に生成し、その不正に生成した検出信号を大当たりのタイミングで出力しようとしても、乱数カウンタ54bの値を把握することができないので、大当たりを不正に発生させることができない。従って、いわゆる「ぶら下げ基板」等によって大当たりを不当に発生させる等の不正行為を防止することができるのである。
なお、パチンコ機Pを不正に入手して、そのパチンコ機Pが備えるMPU11の固有コードメモリ64aの値(固有コード)を解読すると共に、プログラムROM52に記憶された制御プログラムを解析することにより、乱数カウンタ54bの更新の初期値を取得(把握)することはできる。しかし、この不正に取得した乱数カウンタ54bの更新の初期値は、入手したパチンコ機P自体でのみ発生する値であり、他のパチンコ機では(パチンコ機毎に固有コードが異なるため)それとは異なる初期値が発生する。そのため、同一機種のパチンコ機においても、各パチンコ機毎に個別に固有コードを解読しなければ不正行為を働くことができず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
図8は、パチンコ機Pの主制御基板Cにおいて定期的(例えば2ms毎)に実行されるインターバル割込処理(INT割込処理)のフローチャートである。パチンコ機Pの主な制御は、このINT割込処理によって実行される。INT割込処理では、まず、特別図柄変動処理(S59)や表示・ランプ・効果音データ作成処理(S61)などにより、前回のINT割込処理で作成されたコマンド等のデータを各ポートへ出力するポート出力処理を実行する(S51)。
次に、大当たりを決定するための乱数カウンタ54bの値などを「+1」更新する乱数更新処理(S52、図9を参照しつつ後述する)を実行し、記憶タイマ減算処理を実行する(S53)。記憶タイマ減算処理は、大当たり判定の保留球が所定数以上あり、且つ、LCD3において図柄の変動表示中である場合に、図柄の変動表示の時間短縮を行うものである。スイッチ監視処理(S54)は、読み込まれた各スイッチの状態に応じて、遊技領域へ打ち込まれた球の入賞口2や大入賞口5、図柄作動口4への入賞、ゲート7への通過等に関する処理を行うものである。図柄カウンタ更新処理(S55)では、LCD3で行われる変動表示の結果、停止表示される図柄を決定するためのカウンタの更新処理が行われる。また、図柄チェック処理(S56)では、図柄カウンタ更新処理(S55)で更新されたカウンタの値に基づいて、特別図柄変動処理(S59)で使用される大当たり図柄や、はずれ図柄、更にはリーチ図柄などが決定される。
普通図柄変動処理(S57)によって、「○」と「×」との2つのLED6a,6bで構成された普通図柄表示装置6の変動表示を行うと共に、その変動表示の結果、「○」のLED6aで変動表示が終了した場合には当たりとなって普通電動役物(図柄作動口)4を所定時間(例えば0.5秒)開放する当たり処理を実行する。その後、状態フラグをチェックし(S58)、LCD3において特別図柄の変動開始または変動表示中であれば(S58:図柄変動中)、特別図柄変動処理(S59)によって、球が図柄作動口4を通過するタイミングで読み取った乱数カウンタ54bの値に基づいて、大当たりか否かの判定が行われると共に、LCD3において特別図柄の変動処理を実行する。一方、状態フラグをチェックした結果、大当たり中であれば(S58:大当り中)、大入賞口5を開放するなどの大当たり処理(S60)を実行する。更に、状態フラグをチェックした結果、特別図柄の変動中でも大当たり中でもなければ(S58:その他)、S59及びS60の処理をスキップして、S61の表示・ランプ・効果音データ作成処理へ移行する。
表示・ランプ・効果音データ作成処理(S61)では、特別図柄の変動表示以外にLCD3に表示されるデモデータや、普通図柄表示装置6の2つのLED6a,6bの表示データ、保留球ランプをはじめとした各種のランプデータ、遊技の状況に応じた効果音データなどが作成される。なお、これらの表示データ、ランプデータ及び効果音データは、前記したポート出力処理(S51)によってコマンドデータとして表示用制御基板Dへ出力される。表示用制御基板Dでは、そのコマンドデータを解読して、LCD3や普通図柄表示装置6の表示制御に使用すると共に、音声ランプ制御基板Sへのコマンドデータを作成して、これを音声ランプ制御基板Sへ出力して、ランプやLED及び効果音の出力制御をコントロールする。表示・ランプ・効果音データ作成処理(S61)の終了後は、このINT割込処理を終了する。その後は、INT割込処理の実行直前に実行されていたメイン処理(図5)の直後に戻ってメイン処理を続行する。そして、前回のINT割込処理の実行から所定時間(例えば2ms)が経過すると、次のINT割込処理が実行される。
次に、図9を参照してINT割込処理の中で実行される乱数更新処理(S52)を説明する。図9は、主制御基板CのINT割込処理の中で実行される乱数更新処理(S52)を示すフローチャートである。この処理では、IYレジスタ51aの値を「+1」ずつ更新すると共に、その更新後のIYレジスタ51aの値を適正な更新範囲内の値である「0〜629」の値に補正する。また、乱数カウンタ54bの値を「0」〜「629」の範囲内で「+1」ずつ更新している。
まず、IYレジスタ51aのインクリメント処理を行い(S71)、IYレジスタ51aの値を「+1」する。前述した通り、IYレジスタ51aの値は、メイン処理において、INT割込処理の残余時間の間に絶えず「+1」更新されているので、S71の処理で「+1」更新したIYレジスタ51aの値は適正な更新範囲内の値である「0〜629」を超えている場合がある。そこで、IYレジスタ51aのインクリメント処理後は、IYレジスタ補正処理(S72)を実行して、更新後のIYレジスタ51aの値を適正な更新範囲内の値に戻す。なお、IYレジスタ補正処理(S72)は、前述した図7の処理と同一であるので、その説明は省略する。
次に、乱数カウンタ54bの値を1加算し(S73)、加算後の乱数カウンタ54bの値が「630」以上であるか否か、即ち、乱数カウンタ54bの適正な更新範囲の値を超えているか否かを調べる(S74)。加算後の乱数カウンタ54bの値が「630」以上であれば(S74:Yes)、適正な更新範囲の値を超えているので、乱数カウンタ54bの値を「0」クリアする(S75)。一方、加算後の乱数カウンタ54bの値が「629」以下であれば(S74:No)、適正な更新範囲内の値であるので、加算後の値を維持すべくS75の処理をスキップして、S76の処理へ移行する。
S76の処理では、更新後の乱数カウンタ54bの値と現初期値メモリ54cの値とが比較される。現初期値メモリ54cには現在更新中の乱数カウンタ54bの更新の初期値が記憶されているので、両値が等しい場合には(S76:Yes)、乱数カウンタ54bの更新は一回り終了したということである。よって、かかる場合には、乱数カウンタ54bの次回の更新の初期値を記憶するIYレジスタ51aの値を乱数カウンタ54b及び現初期値メモリ54cへ書き込み(S77、S78)、乱数カウンタ54bの更新の初期値を変更する。
このように、乱数カウンタ54bは、一回りの更新が終了する毎にその更新の初期値を変更するため、乱数の一様性(連続で取得した場合に同じ値をとることがなく、しかも、すべての値が同じ確率で取り出せること)のある乱数値を得ることができる。更に、その更新の初期値であるIYレジスタ51aの値は、前述した通り、遊技の状態に応じて変化する不定な時間を使用して更新される為、乱数カウンタ54bの更新の初期値をランダムに変更することができる。
一方、更新後の乱数カウンタ54bの値と現初期値メモリ54cの値とが等しくない場合には(S76:No)、乱数カウンタ54bの更新は未だ一回り終了していないので、S77及びS78の処理をスキップすることにより乱数カウンタ54b及び現初期値メモリ54cの値を維持する。その後は、他の乱数の更新処理(S79)を実行して、この乱数カウンタ更新処理を終了する。
以上説明したように、本実施例のパチンコ機Pによれば、大当たりを決定する乱数カウンタ54bの初期値をカウントするIYレジスタ51aは、INT割込処理(図8参照)において定期的に更新されるだけでなく、メイン処理(図5参照)においては、INT割込処理の残余時間を利用して更新される。かかる残余時間は遊技の制御状態に応じて変化する時間なので、IYレジスタ51aの値を、確実に更新され且つランダム性の付与されたものとして、乱数カウンタ54bの更新の初期値として使用することができる。
また、IYレジスタ51aの更新は、メイン処理とINT割込処理との2つの異なった処理で行われるが、その更新は1命令で行われるので、両処理の実行タイミングの如何に拘わらず、更新結果を無意味なのもとすることなく、有効に利用することができる。更に、ユーザワークRAM54上のメモリを使用することなく、CPU51の内部レジスタであって、比較的使用頻度の少ないインデックスレジスタであるIYレジスタ51aを使用しているので、その分、メモリの使用効率をも向上することができる。しかも、IYレジスタ51aは、16ビットで更新が可能であるので、「256」を超えた更新範囲を有する乱数カウンタ54bの更新の初期値をカウントするカウンタとして好適である。
更に、乱数更新処理(図9参照)では、IYレジスタ51aの値を適正な更新範囲内の値に補正した後に、乱数カウンタ54bの更新の初期値として使用しているので、メイン処理において、IYレジスタ51aを更新範囲のチェックをせずに「+1」更新しても、IYレジスタ51aの値を的確に使用することができる。言い換えれば、メイン処理において、IYレジスタ51aの値が適正な更新範囲内にあるか否かをチェックしながら1命令で更新することはできないので、メイン処理ではIYレジスタ51aの値を1命令で「+1」更新のみし、IYレジスタ51aの値を使用するINT割込処理において、そのIYレジスタ51aの値の使用前に、その値を適正な更新範囲内の値に補正しているのである。更に、IYレジスタ51aの値の補正が的確に行われるように、メイン処理の更新でIYレジスタ51aの値が「0」にならないように、INT割込処理の最短処理時間とS21及びS22の合計最短処理時間とにより、INT割込処理の実行間隔が決められているので(本実施例では、その結果、INT割込処理は2ms毎に実行される)、IYレジスタ補正処理(図7参照)によって、更新されたカウント値をロスすることなく、IYレジスタ51aの値を適正な更新範囲内の値に補正することができる。
次に、図10を参照して第2実施例のIYレジスタ補正処理を説明する。第2実施例のIYレジスタ補正処理は、まず、IYレジスタ51aの値が適正な更新範囲の最大値である「629」以下であるか否かを確認する(S81)。IYレジスタ51aの値が「629」以下であれば(S81:Yes)、IYレジスタ51aは適正な更新範囲内の値であるので、その値を補正すること無く、IYレジスタ補正処理を終了する。一方、IYレジスタ51aの値が「630」以上であれば(S81:No)、その値は乱数カウンタ54bの適正な更新範囲の値を超えているので、この場合には、IYレジスタ51aの値を更新範囲の最大値+1である「630」で除算する(S82)。除算した余りをIYレジスタ51aへ書き込んで(S83)、これをIYレジスタ51aの値とし、このIYレジスタ補正処理を終了する。なお、この図10の処理においては、S81の処理を削除して構成するようにしても良い。
以上説明した各実施例において、請求項1記載の制御手段としては、主制御基板Cが該当し、第1制御手段としては、図5に示すメイン処理が該当し、第2制御手段としては、図8に示すINT割込処理が該当する。更に、補正手段としては、INT割込処理の乱数更新処理(S52、図9参照)の中で実行されるS72のIYレジスタ補正処理が該当する。
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施例では、カウンタとしてIYレジスタ51aを用いた、必ずしもIYレジスタ51aに限定されるものではなく、IYレジスタ51aに代えて、IXレジスタやBCレジスタ、DEレジスタ、HLレジスタなどをカウンタとして使用しても良い。また、レジスタに代えて、例えばユーザワークRAM54等のRAM上のメモリをカウンタとして使用しても良い。かかる場合には、メイン処理におけるカウンタ値の更新は、1命令で実行するか、或いは、1命令で実行できない場合には更新自体をそのメモリ上で行うようにする。更に、本実施例におけるカウント値の更新(IYレジスタ51aの値の更新)は、インクリメント命令(INC)により「+1」ずつの加算方向に行われたが、インクリメント命令に代えて、デクリメント命令(DEC)を使用して「−1」ずつの減算方向に行うようにしても良い。かかる場合には、カウント値の補正処理をカウント方式に併せて修正する。
また、本発明のカウンタは、必ずしも乱数カウンタ54bの更新の初期値をカウントするカウンタとして使用する必要はない。よって、例えば、本発明のカウンタを、乱数カウンタ54b自体として使用しても良いし、図柄カウンタやリーチカウンタのように、ランダム性を必要とする他のカウンタとして使用するようにしても良い。
本発明を上記実施例とは異なるタイプのパチンコ機等に実施しても良い。例えば、一度大当たりすると、それを含めて複数回(例えば2回、3回)大当たり状態が発生するまで、大当たり期待値が高められるようなパチンコ機(通称、2回権利物、3回権利物と称される)として実施しても良い。また、大当たり図柄が表示された後に、所定の領域に球を入賞させることを必要条件として特別遊技状態となるパチンコ機として実施しても良い。更に、パチンコ機以外にも、アレパチ、雀球、スロットマシン、いわゆるパチンコ機とスロットマシンとが融合した遊技機などの各種遊技機として実施するようにしても良い。
なお、スロットマシンは、例えばコインを投入して図柄有効ラインを決定させた状態で操作レバーを操作することにより図柄が変動され、ストップボタンを操作することにより図柄が停止されて確定される周知のものである。従って、スロットマシンの基本概念としては、「複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備え、始動用操作手段(例えば操作レバー)の操作に起因して図柄の変動が開始され、停止用操作手段(例えばストップボタン)の操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えたスロットマシン」となり、この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
また、パチンコ機とスロットマシンとが融合した遊技機の具体例としては、複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備えており、球打出用のハンドルを備えていないものが挙げられる。この場合、所定の操作(ボタン操作)に基づく所定量の球の投入の後、例えば操作レバーの操作に起因して図柄の変動が開始され、例えばストップボタンの操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄がいわゆる大当たり図柄であることを必要条件として遊技者に有利な大当たり状態が発生させられ、遊技者には、下部の受皿に多量の球が払い出されるものである。
以下に本発明の変形例を示す。カウンタと、そのカウンタの値を更新する第1制御手段と、その第1制御手段の実行を中断して制御を実行する第2制御手段と、前記第1及び第2制御手段を有し前記カウンタの値を所定条件下において遊技の制御に使用する制御手段とを備えた遊技機において、前記第1制御手段は、前記カウンタの値を直接更新するものであり、前記第2制御手段は、前記第1制御手段とは別に前記カウンタの値を更新すると共に、そのカウンタの値を適正な更新範囲内の値に補正する補正手段を備えていることを特徴とする遊技機1。カウンタの値を直接更新するとは、そのカウンタ以外の他のレジスタやメモリを使用することなく直接カウンタの値を更新することをいい、例えば、カウンタの値を、一旦他のレジスタ(CPU内のALU等のソフト制御の範疇外のものは除く)やメモリへロードし、そのレジスタやメモリで更新しその更新した値を該カウンタへ書き戻すことによって更新することではない意である。
遊技機1によれば、1のカウンタは、第1制御手段と、その第1制御手段の実行を中断して実行される第2制御手段との2つの制御手段によって更新される。第2制御手段は、第1制御手段の実行タイミングに拘わらず、第1制御手段の実行を中断して制御を実行し、その制御の中でカウンタの更新を行う。よって、第1制御手段がカウンタの更新を次のように行う場合、第2制御手段の実行タイミング如何によっては、カウンタの更新に支障を来してしまう。即ち、カウンタの値を、一旦、他のレジスタやメモリへロードし(ステップ1)、そのレジスタまたはメモリ内でカウント値を更新し(ステップ2)、更新されたカウント値をカウンタへロードする(戻す)(ステップ3)ことにより、カウンタの更新を行う場合、ステップ1の実行後からステップ3の実行前に第2制御手段が実行されてカウント値の更新が行われると、第2制御手段の実行後に第1制御手段のステップ3が実行されるので、折角、第2制御手段でカウント値の更新を行っても、第1制御手段によってカウント値は元の値に戻されてしまう。これに対し遊技機1では、第1制御手段はカウンタの値を直接更新するので、第2制御手段が如何なるタイミングで実行されても、その第2制御手段で更新後のカウント値を元に戻してしまうことはない。即ち、第1制御手段は、第2制御手段で更新されたカウント値を引き続き継続して更新することができる。よって、遊技機1によれば、1のカウンタを第1制御手段と第2制御手段との2つの制御手段で別々に更新する場合であっても、カウンタの値を引き続き継続して更新することができる。また、第2制御手段は、カウンタの値を適正な更新範囲内の値に補正する補正手段を備えているので、第1制御手段によるカウンタの値の更新がカウンタの適正な更新範囲を超えるものとなっても、第2制御手段の実行により、カウンタの値を適正な更新範囲内の値に補正することができる。なお、第2制御手段によるカウンタの値の更新方式は、必ずしも第1制御手段の更新方式と同一である必要はなく、異なった更新方式であっても良い。
遊技機1において、前記第1制御手段は、前記カウンタの値を1命令で直接更新するものであることを特徴とする遊技機2。
請求項1記載の遊技機または遊技機1若しくは2において、前記第1制御手段は、前記カウンタの値がその適正な更新範囲を超える場合にもそのカウンタの値の更新を継続するように構成され、前記第2制御手段は、前記補正手段によって前記カウンタの値を適正な更新範囲内の値に補正した後でそのカウンタの値を遊技の制御に使用するものであることを特徴とする遊技機3。カウンタの値は、適正な更新範囲を超える場合であっても、第1制御手段によって更新されるが、その値は第2制御手段によって適正な更新範囲内の値に補正され、その補正後のカウンタの値が第2制御手段によって遊技の制御に使用される。よって、第1制御手段によって適正な更新範囲内の値を超えてカウンタの値を更新しても、遊技の制御には適正な更新範囲内の値として使用することができる。
請求項1記載の遊技機または遊技機1から3のいずれかにおいて、前記第1及び第2制御手段によるカウンタの更新は増加方向に行われ、前記第2制御手段の補正手段は、前記カウンタの値が適正な更新範囲内の値にない場合(適正な更新範囲の値を超えている場合)に、そのカウンタの値を更新範囲数で減算し、その差が更新範囲内の値になるまで該減算を繰り返して、最終的な差を前記カウンタの値とするものであることを特徴とする遊技機4。なお、更新範囲数とは、例えば、カウンタが「0〜x」の範囲で更新される場合には「x+1」をいい、「1〜x」の範囲で更新される場合には「x」をいう。
請求項1記載の遊技機または遊技機1から3のいずれかにおいて、前記第1及び第2制御手段によるカウンタの更新は増加方向に行われ、前記第2制御手段の補正手段は、前記カウンタの値を更新範囲数で除算し、その余りを前記カウンタの値とするものであることを特徴とする遊技機5。なお、カウンタの値の除算は、そのカウンタの値が適正な更新範囲内の値にあるか否かを判断した上で、カウンタの値が適正な更新範囲内の値にない場合(適正な更新範囲の値を超えている場合)に限って行うように構成しても良い。また、更新範囲数とは、例えば、カウンタが「0〜x」の範囲で更新される場合には「x+1」をいい、「1〜x」の範囲で更新される場合には「x」をいう。
請求項1記載の遊技機または遊技機1から3のいずれかにおいて、前記第1及び第2制御手段によるカウンタの更新は減少方向に行われ、前記第2制御手段の補正手段は、前記カウンタの値が適正な更新範囲内の値にない場合(適正な更新範囲の値を超えている場合)に、そのカウンタの最大更新範囲からそのカウンタの値を減算した差が適正な更新範囲内の値であれば更にその差を適正な更新範囲の最大値から減算した差を前記カウンタの値とし、一方、前記カウンタの最大更新範囲からそのカウンタの値を減算した差が適正な更新範囲内の値でなければ更にその差を更新範囲数で減算しその差が更新範囲内の値になるまで該減算を繰り返して得た最終的な差を適正な更新範囲の最大値から減算してその差を前記カウンタの値とするものであることを特徴とする遊技機6。なお、更新範囲数とは、例えば、カウンタが「0〜x」の範囲で更新される場合には「x+1」をいい、「1〜x」の範囲で更新される場合には「x」をいう。また、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが16ビットで構成される場合には0FFFFhとなり、カウンタが8ビットで構成される場合には0FFhとなる。
請求項1記載の遊技機または遊技機1から6のいずれかにおいて、前記第2制御手段は、前記第1制御手段により前記カウンタの値の更新がそのカウンタの適正な更新範囲を超えて行われた場合には、その第1制御手段による更新で前記カウンタの値が適正な更新範囲内の値となる前までに、その第1制御手段の実行を中断して前記カウンタの値を適正な更新範囲内の値に補正するものであることを特徴とする遊技機7。よって、カウンタの最大更新範囲が前記更新範囲数の整数倍で構成されない場合にも、第1制御手段と第2制御手段とによって、カウンタの値を継続して更新することができる。なお、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが16ビットで構成される場合には0FFFFhとなり、カウンタが8ビットで構成される場合には0FFhとなる。
請求項1記載の遊技機または遊技機1から6のいずれかにおいて、前記第2制御手段は、前記第1制御手段により前記カウンタの値の更新がそのカウンタの最大更新範囲を超えて更新される前までに、その第1制御手段の実行を中断して前記カウンタの値を適正な更新範囲内の値に補正するものであることを特徴とする遊技機8。よって、カウンタの最大更新範囲が前記更新範囲数の整数倍で構成されない場合にも、第1制御手段と第2制御手段とによって、カウンタの値を継続して更新することができる。なお、カウンタの最大更新範囲とは、ハード的にそのカウンタの取り得る更新範囲をいい、遊技の制御に使用される適正な更新範囲より大きな範囲となっている。例えば、最大更新範囲は、カウンタが16ビットで構成される場合には0FFFFhとなり、カウンタが8ビットで構成される場合には0FFhとなる。
請求項1記載の遊技機または遊技機1から8のいずれかにおいて、前記第2制御手段は定期的に実行される割込処理により構成され、前記第1制御手段は割込によらないメイン処理あるいは前記第2制御手段より割込優先順位の低い割込処理によって構成されていることを特徴とする遊技機9。遊技機9によれば、1の制御手段で、第1制御手段と第2制御手段との2の制御手段を実行することができる。
請求項1記載の遊技機または遊技機1から9のいずれかにおいて、前記第2制御手段は定期的に実行されると共に、その実行時間は遊技の状態に応じて変化するように構成され、前記第1制御手段は、前記第2制御手段の実行後から次の第2制御手段が実行されるまでの残余時間を利用して前記カウンタの値を更新するものであることを特徴とする遊技機10。第2制御手段は定期的に実行され且つその実行時間は遊技の状態によって変化するので、第1制御手段によるカウンタの更新を第2制御手段の実行後の残余時間を利用して行うことにより、更新されるカウンタの値にランダム性を付与することができる。しかも、カウンタの値は第2制御手段によっても更新されるので、遊技の状態がいかなる場合においても、少なくとも定期的なカウンタの更新は継続することができる。
請求項1記載の遊技機または遊技機1から10のいずれかにおいて、前記カウンタはCPUに内蔵のレジスタにより構成されることを特徴とする遊技機11。CPUに内蔵されるレジスタをカウンタに使用するので、その分、メモリの使用量を減少してメモリを有効利用することができる。なお、カウンタとして使用するレジスタとしては、一般的に使用頻度が少なく、且つ16ビットで構成されるインデックスレジスタIX,IYが好適である。
請求項1記載の遊技機または遊技機1から11のいずれかにおいて、前記第2制御手段によって更新されると共に大当たりの発生を決定する乱数カウンタと、その乱数カウンタの更新の初期値を記憶する現初期値メモリとを有し、前記乱数カウンタの値が更新により前記現初期値メモリの値と一致した場合に、前記カウンタの値を前記乱数カウンタおよび前記現初期値メモリへ書き込んで前記乱数カウンタの更新の初期値を変更する変更手段とを備えていることを特徴とする遊技機12。カウンタの更新はランダムに行われるので、そのカウンタの値を乱数カウンタの更新の初期値として使用することにより、大当たりの決定にランダム性を付与して、不正行為などの防止効果を向上させることができる。なお、カウンタの値を乱数カウンタおよび現初期値メモリへ書き込むとは、必ずしも、カウンタから直接読み出した値を乱数カウンタおよび現初期値メモリのそれぞれへ書き込む必要はなく、カウンタから読み出した値を乱数カウンタへ書き込み、その乱数カウンタへ書き込んだ値を現初期値メモリへ書き込んだり、或いは逆に、カウンタから読み出した値を現初期値メモリへ書き込み、その現初期値メモリへ書き込んだ値を乱数カウンタへ書き込むようにしても良いのである。
請求項1記載の遊技機または遊技機1から12のいずれかにおいて、前記カウンタの値を電源の切断後においても保持するバックアップ手段を備えていることを特徴とする遊技機13。なお、遊技機13が遊技機12の構成に追加される場合には、カウンタのみならず、乱数カウンタおよび現初期値メモリの値をもバックアップ手段によって電源の切断後も保持するように構成する。
請求項1記載の遊技機または遊技機1から13のいずれかにおいて、前記遊技機はパチンコ機であることを特徴とする遊技機14。中でも、パチンコ機の基本構成としては操作ハンドルを備え、その操作ハンドルの操作に応じて球を所定の遊技領域へ発射し、球が遊技領域内の所定の位置に配設された作動口に入賞(又は作動口を通過)することを必要条件として、表示装置において変動表示されている識別情報が所定時間後に確定停止されるものが挙げられる。また、特別遊技状態の出力時には、遊技領域内の所定の位置に配設された可変入賞装置(特定入賞口)が所定の態様で開放されて球を入賞可能とし、その入賞個数に応じた有価価値(景品球のみならず、磁気カードへ書き込まれる情報等も含む)が付与されるものが挙げられる。
請求項1記載の遊技機または遊技機1から13のいずれかにおいて、前記遊技機はスロットマシンであることを特徴とする遊技機15。中でも、スロットマシンの基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段(例えば操作レバー)の操作に起因して図柄の変動が開始され、停止用操作手段(例えばストップボタン)の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備えた遊技機」となる。この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
請求項1記載の遊技機または遊技機1から13のいずれかにおいて、前記遊技機はパチンコ機とスロットマシンとを融合させたものであることを特徴とする遊技機16。中でも、融合させた遊技機の基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段(例えば操作レバー)の操作に起因して識別情報の変動が開始され、停止用操作手段(例えばストップボタン)の操作に起因して、或いは、所定時間経過することにより識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備え、遊技媒体として球を使用すると共に、前記識別情報の変動開始に際しては所定数の球を必要とし、特別遊技状態の出力に際しては多くの球が払い出されるように構成されている遊技機」となる。