以下、本発明に係る遊技機の好ましい実施形態について、図1乃至図17を参照しながら詳細に説明する。なお、図1は上記遊技機の一例として説明するパチンコ機の外観正面図で、図2はパチンコ機の内部構造を示す背面図で、図3はパチンコ機に設けられている制御システムの概略を表したブロック図で、図4はパチンコ機に設けられているパチンコ機の制御に係る部分および乱数の発生に係る部分を表したブロック図で、図5はパチンコ機における乱数発生部とその周辺を表した回路図で、図6は乱数発生部におけるクロック監視回路の拡大図で、図7および図8は乱数発生部において生成する信号をタイミングチャートで示した図で、図9はパチンコ機に設けられている制御システムのうちのマイクロコントロールユニット(MCU)等を表したブロック図である。また、図10乃至図15は特別遊技判定用乱数の取得、利用、乱数発生部における異常検出の手順を示す図で、図16はパチンコ機に設けられているパチンコ機の制御に係る部分と乱数の発生に係る部分を表した第2の実施の形態におけるブロック図で、図17はパチンコ機における乱数発生部とその周辺を表す第2の実施の形態における回路図である。
ここではまず、上記遊技機の一例として説明するパチンコ機PMの概要構成を図1および図2を参照して説明する。図1に示すように、このパチンコ機PMは、外郭方形枠サイズに構成されて縦向きの固定保持枠をなす外枠1の開口前面に、これに合わせた方形枠サイズに構成されて開閉搭載用の前枠2が正面左側上下に配設されたヒンジ部材3a,3bにより横開き開閉および着脱が可能に取り付けられ、正面右側に設けられた施錠装置4を利用して通常は外枠1と係合された閉鎖状態に保持される。
前枠2の正面側には、前枠2の前面域に合わせた方形状をなし中央部に取り付けられたポリカーボネート板やガラス板等の透明板材を通して遊技盤20を透視可能なガラス扉5と、球皿に貯留された遊技球を整列させて1個ずつ打球発射装置9に導く上球皿6とが、ともに左側縁に内蔵されたヒンジ機構により横開き開閉および着脱が可能に組付けられ、通常は施錠装置4および図示しないロック機構を利用して前枠2の前面を覆う閉止状態で保持される。上球皿6のうち横型長方形をなし前枠2に対して開閉可能な当て板6aの左側上部には賞球払出用の賞球払出口6bが設けられている。上球皿6の左側下部には、遊技の展開状況に応じた効果音を発生させる図示しないスピーカからの音声が外部に放出される放音部6cが設けられている。また、前枠2の下部には遊技球を貯留する下球皿7が設けられ、この下球皿7と並んで遊技球の発射操作を行う操作ハンドル8が取り付けられている。
遊技盤20は、板厚19mm程度の積層合板を所定形状に切断等して、その表面に所定意匠のセルを貼り付けた化粧板(ベニヤとも称される)21を基板として構成される。化粧板21の前面側には、帯状の外レール23aおよび内レール23bが円弧状に固設され、これらの案内レール23a,23bで囲まれた内側に遊技領域PAが区画される。遊技領域PAには、第1始動入賞具24a、第2始動入賞具24b、一般入賞具25並びに大入賞具26を備えたアタッカー等の入賞具、および遊技の進行状況に応じて所定の図柄を遊技者が視認可能に表示させる図柄表示装置28などが取り付けられ、遊技領域PAの下端には入賞具24a,24b,25,26に入賞せずに落下した遊技球を遊技盤20の裏面側に排出させるアウト口27が設けられている。また、図柄表示装置28の上方には4個の特別図柄保留ランプ90,90,90,90が設けられている。
図柄表示装置28は、遊技盤20のほぼ中央に位置しており、3桁の絵柄の組合せからなる「特別図柄」を液晶画面にて変動表示させるもので、この特別図柄のうち、3桁がいずれも同一種類の絵柄の組合せからなるものを「当たり図柄」と称する。
第1始動入賞具24a又は第2始動入賞具24bへの入賞があると、上球皿6の賞球払出口6bから所定数の賞球(例えば5球)が遊技者に払い出されるのに加え、図柄表示装置28が作動し、図柄の変動が開始される。この変動の結果、停止表示される特別図柄が当たり図柄の場合には、遊技者にとって有利な「大当たり遊技」が発生する。
この大当たり遊技においては、普段は閉鎖している大入賞具26が開放される。大入賞具26への入賞があると、賞球払出口6bから所定数(例えば15球)の賞球が遊技者に払い出される。この大入賞具26は、開放されてから所定時間(例えば30秒)経過するか、又は所定数(例えば10球)の入賞があるかのいずれかにより一旦閉鎖する。そして、この大入賞具26が開放されている間に、この大入賞具26の内部に設けられている図示しないVゾーンへの入賞があると、大入賞具26は一旦閉鎖した後、再度開放することとなっている。これにより、大入賞具26の開放は、最大16回連続することが可能となっている。また、大入賞具26が16回開放し終えるか、又は大入賞具26の開放中に上記Vゾーンへの入賞がなかった場合には、この大当たり遊技は終了する。
なお、図柄表示装置28における変動表示の最中などに打球が第1始動入賞具24aもしくは第2始動入賞具24bに入賞した場合には、特別図柄保留ランプ90,90,90,90が最大4個まで点灯することとなっている。すなわち、この特別図柄保留ランプ90,90,90,90が点灯している個数分に相当する回数だけ、以後の図柄表示装置28の作動が保証されることとなっている。
第1始動入賞具24a内における打球の流路には、第1始動入賞具24aへの打球の入賞を検出して検出信号を出力し、図柄表示装置28における図柄の変動表示を開始させるための第1始動入賞センサ51が設けられている。この第1始動入賞センサ51は磁気センサを用いており、検出信号としてハイ信号およびロー信号の2通りの状態をとる第1始動信号を出力する。この第1始動信号は、打球を検出していないときにはハイ信号として出力され、打球を検出している間のみロー信号として出力される。なお、光学的又は機械的センサがこの第1始動入賞センサ51として使用されることもある。
また、第2始動入賞具24b内における打球の流路には、第1始動入賞センサ51と同じ磁気センサにより第2始動入賞具24bへの打球の入賞を検出して検出信号を出力し、図柄表示装置28における図柄の変動表示を開始させるための第2始動入賞センサ52が設けられている。この第2始動入賞センサ52は、検出信号としてハイ信号及びロー信号の2通りの状態をとる第2始動信号を出力する。そして、この第2始動信号は、打球を検出していないときにはハイ信号を出力しているが、打球が通過している間のみロー信号を出力する。なお、光学的又は機械的センサがこの第2始動入賞センサ52として使用されることもある。
図2に示すように、前枠2の裏面下部には、遊技球を外レール23aに向けて発射する打球発射装置9、および操作ハンドル8の回動操作を受けて打球発射装置9の作動を制御する発射装置制御基板200が取り付けられている。また、上球皿6の背後には、通常は閉鎖保持される上球皿6によりその前面側が覆われている遊技補助盤と称される補助機構部が形成され、その前面側に打球発射装置9によって打ち出された遊技球を外レール23aに向けて案内する発射レールや、遊技領域PAに到達できずに打球発射装置9側に戻ってきたファール球を下球皿7に排出させるファール球回収経路部材、遊技の展開状況に応
じた効果音を発生させる図示しないスピーカなどが取り付けられている。
また、前枠2の背後には、裏セット盤30が取り付けられている。この裏セット盤30は、外枠1の内寸サイズよりも幾分小さめの方形状をなし、中央に表裏貫通する窓口31wを有して一体成形された基枠体31をベースとして構成される。基枠体31の側縁部には上下に所定間隔をおいて裏セット盤揺動ヒンジ部材32,33が固定されており、この上下の裏セット盤揺動ヒンジ部材32,33を前枠2側の上下の固定ヒンジ部材12,13に係合させて揺動させあるいは係脱させることで、裏セット盤30が前枠2の背後に横開き開閉および着脱可能に装備され、通常は3箇所の閉鎖レバー34を利用して前枠2の背面を覆うように閉鎖保持される。
裏セット盤30には、窓口31wを取り囲むようにして賞球を払い出すための賞球経路が設けられる。すなわち、基枠体31の裏面側には、遊技球の貯留・供給を行うタンク部材35、タンク部材35から供給される遊技球を整列させて流下させる整列樋部材36、整列樋部材36から供給される遊技球を受けて所定数量の遊技球を待機保持させる賞球待機通路37、賞球待機通路37に待機された遊技球を所定の入賞条件等に基いて払い出す球払出装置38、球払出装置38から払い出された遊技球を上下の球皿6,7に導く賞球払出経路39などの賞球経路が設けられている。また、基枠体31の前面側には、窓口31wの下方に位置して遊技盤20の裏面側に排出されたアウト球およびセーフ球、球抜き機構によって賞球経路の途上から排出された抜き球等を集合させる図示しない集合経路が形成され、基枠体31の裏面側には集合経路と繋がって集合された遊技球を遊技施設側の回収バケットに排出させる図示しない球排出経路が形成されている。
裏セット盤30の裏面各部には、パチンコ機PMの作動を統括的に制御する主基板700や、主基板700からの指令信号に基いて球払出装置38の作動制御を行う球払出基板300、効果照明や効果音の作動制御を行うランプ・音声制御基板400、これらの制御基板や各種電子機器等に電力を供給する電源基板500、遊技ホールに設置された遊技機管理装置(管理コンピュータ)に対して各種の遊技情報を出力する外部接続装置としての外部端子板600などの回路基板が着脱交換可能に取り付けられ、各回路基板や電子機器が図示しないワイヤーハーネスで接続されてパチンコ機PMが構成される。また、球払出基板300の下方には、主基板700を含むこれら回路基板に何らかの異常動作等が生じたときに、これを発光ダイオードによる画面にて報知するためのエラー表示装置61(エラーLED)が設けられている。
パチンコ機PMは、ガラス扉5、上球皿6、裏セット盤30等がそれぞれ閉鎖され、前枠2が外枠1に閉鎖施錠された状態で遊技に供される。遊技は上球皿6に遊技球を貯留させて操作ハンドル8を回動操作することにより開始され、上球皿6に貯留された遊技球が1球ずつ打球発射装置9に送られ操作ハンドル8の回動操作角度に応じた強度で遊技領域PAに打ち出されてパチンコゲームが展開される。
次に、パチンコ機PMを制御する制御システムの概略を図3を加えて説明する。図3に示すように、本制御システムは、主基板700、第1始動入賞センサ51、第2始動入賞センサ52、図柄表示装置28、外部端子板600およびエラー表示装置61を有して構成され、これらがケーブル等により電気的に接続されている。
主基板700は、パチンコ機PMの動作全体を管理するシステムプログラム及び遊技用の実行プログラムが予め記憶されている半導体メモリ等で形成された記憶部を有しこれらのプログラムを実行するメインコントロール部730と、主基板700の制御とは無関係に特別遊技判定用のいわゆるハードウェア乱数(0〜65535の65536個の乱数値)を発生させる乱数発生部750とから構成されている。なお、本発明において、乱数とは、数学的な意味においてランダムに生成される値のみだけではなく、生成は規則的であっても、その取得のタイミングがランダムであるために実質的に乱数として機能しうる値をも意味する。そして、本発明においては、後述するクロックカウント回路B81〜B84によりカウントされ第1および第2カウント値記憶回路B91,B92に記憶される乱数値を、特に「カウント値」と称して説明する。
メインコントロール部730内の制御部740は、ROM733、RAM734を有しており、メインコントロール部730が実行すべき制御プログラム及び制御の過程で必要なデータはROM733に記載されている。また、メインコントロール部730には、基準クロック発生回路731が設けられている。この基準クロック発生回路731は、パチンコ機PMの制御の中枢を担うCPU732(図4参照)の動作基準をなす基準クロックを発生する回路であって、水晶発振器や水晶振動子等を用いて所定間隔のパルス(クロック信号)を発生するものである。また、このパルスを分周部735において適宜分周したものを基準クロックとすることもある。
また、メインコントロール部730は、ROM733に記憶された乱数生成プログラムB37に従って、いわゆるソフトウェア乱数を生成する乱数生成回路B31と、乱数発生部750において発生したハードウェア乱数および乱数生成回路B31により発生されたソフトウェア乱数に基いて所定の演算処理を実行する判定値演算回路B32と、当たり判定手段B34を含む乱数取得手段B33とを有して構成されている。
主基板700は、第1始動入賞センサ51もしくは第2始動入賞センサ52からのロー信号を検出すると、この乱数取得手段B33により、乱数発生部750から順次発生する65536個の乱数のうちの1つのカウント値(第1の乱数値)、もしくは、乱数生成回路B31により発生されたソフトウェア乱数(第2の乱数値)が取得され、図柄表示装置28における停止図柄の決定が行われる。
ROM733上の当たり判定テーブルB36には、乱数値の全範囲について、一の乱数値に対して「当たり乱数」か、それとも「ハズレ乱数」かの一意的な判定結果が定まるようなデータが記録されている。すなわち、全乱数値は、当たり乱数およびハズレ乱数のうちのどちらかに必ず属し、双方に属したり、いずれにも属しなかったりすることはない。ここで、当たり乱数とは、大当たり遊技を発生させるような所定の当たり図柄の組合せを図柄表示装置28に停止表示させるような乱数値をいう。
当たり判定手段B34は、上記乱数取得手段B33により取得された第1の乱数値もしくは第2の乱数値からなる判定値と上記判定テーブルB36に記憶されたデータとを比較参照して、当該判定値に対応する判定結果、すなわち、当該判定値が当たり乱数であるか、それともハズレ乱数であるかを取得する。
ROM733上の図柄データテーブルB35には、図柄表示装置28における停止図柄を決定するための図柄データが記録されている。個々の図柄データにはアドレス番号が付与されており、1つのアドレス番号から1つの図柄データが特定される。そして、乱数取得手段B33により取得された判定値が当たり判定手段B34により当たりと判定されたときには当たり図柄が、一方、ハズレと判定されたときにはハズレ図柄が格納された図柄データが適宜選択される。そして、主基板700からの制御信号に基いて選択された所定の図柄が図柄表示装置28上に表示される。
乱数発生部750は、後述するように、乱数クロック発生回路B51が正常に動作にしているか否かを検出するクロック監視回路B95を有している。
また、主基板700は、外部端子板600を介してパチンコ機PM外部に電気的に接続されており、主基板700から出力される各種の遊技情報をパチンコ機PM外部の管理コンピュータに対して伝送させることができるようになっている。この遊技情報には、主基板700等における何らかの異常を検出した制御部740から出力される報知信号も含まれており、管理コンピュータに対してパチンコ機PMの異常を報知させることができるため、遊技ホールはこの異常を直ちに認識することが可能となっている。
さらに、エラー表示装置61がそれぞれ配線ケーブルを介して主基板700に接続されており、主基板700等の各回路基板における異常を検出した制御部740から出力される報知信号により、エラー表示装置61の点灯を行わせることができる。
ここで、図4および図5を参照して、パチンコ機PMにおける乱数の発生およびこれの取得、さらに乱数発生手段の異常検出に係る部分の構成の第1の実施の形態について説明する。入力回路部B40は、主基板700外からの入力情報及び主基板700内に設けられた乱数発生部750により発生した乱数および後述するクロック監視回路B95からの異常信号等が入力される部分で、バッファ用のIC等により構成される。具体的には、入力回路部B40には、第1始動入賞具24aもしくは第2始動入賞具24bへの打球の入賞に応じて出力される第1始動入賞センサ51もしくは第2始動入賞センサ52からの入力信号や、乱数発生部750により発生された乱数の上位および下位8ビット分が入力される。さらに、乱数クロック発生手段B51からの出力信号がこの入力回路部B40に入力され、この出力信号が乱数クロック発生手段B51の正常な動作によるパルス信号であるか否かが、入力回路部B40を介して制御部740により監視される。
出力回路部B45は、主基板700外の電気部品(ランプ、スピーカ類)への制御信号等及び主基板700内に設けられた乱数発生部750により発生した乱数を読み込むための読込信号を出力する部分で、バッファ等のIC等により構成される。具体的には、出力回路部B45からは、主基板700が第1始動入賞具24aに入賞があったと判定した場合に、この入賞に対応するカウント値の読込の契機となる第1読込信号や、主基板700が第2始動入賞具24bに入賞があったと判定した場合に、この入賞に対応するカウント値の読込の契機となる第2読込信号が出力される。さらに、乱数クロック発生手段B51もしくはクロックカウント回路B81〜B84における異常動作が検出されたときに、外部端子板600を介してパチンコ機PM外部に向けて報知信号が出力される。また、エラー表示装置61に向けて報知信号が出力されて所定のエラー表示を行わせる。
第1始動入賞センサ51からの第1始動信号は、入力回路部B40のIC14の1A端子に入力される。一方、第2始動入賞センサ52からの第2始動信号は、入力回路部B40のIC14の2A端子に入力される。また、IC14の3A端子と、クロック監視回路B95を構成するトランジスタTR1のコレクタが接続されており、トランジスタTR1のベースに電圧が印加されると入力回路部B40側からコレクタ電流が流れるようになっている。
乱数発生部750は、乱数として供されるカウント値を生成するものであり、具体的には、乱数クロック発生回路B51、乱数クロック反転回路B61、第1及び第2ラッチ信号出力回路B71,B72、第1〜第4クロックカウント回路B81,B82,B83,B84、第1および第2カウント値記憶回路B91,B92およびクロック監視回路B95により構成される。
乱数クロック発生回路B51(OSC1)は、乱数カウント用のクロックを発生させるためのもので、発生したクロックを出力するクロック出力部(OUT)を備えている。この乱数クロック発生回路B51は、例えば、7.15909MHzのクロックを発生する水晶発振器により構成される。
乱数クロック反転回路B61(IC18)は、上記乱数クロック発生回路B51から出力されるクロックを反転させ、これを反転クロックとして、後述する第1ラッチ信号出力回路B71(IC16)および第2ラッチ信号出力回路B72(IC17)へ出力するものである。具体的には、IC18のうち、1Q端子から出力される信号を反転した信号を反転信号として、反転クロック出力部である1Q反転端子から出力するもので、クロックの立ち上がりエッジは反転クロックの立ち下がりエッジに、クロックの立ち下がりエッジは反転クロックの立ち上がりエッジにそれぞれ相当する。なお、この乱数クロック反転回路B61は、NOTゲートなどのICを用いて構成してもよい。
第1〜第4クロックカウント回路B81,B82,B83,B84は、クロックを入力する乱数クロック入力部(CK)と、計数した乱数値が出力されるカウント出力部(QA〜QD)をそれぞれ有している。この第1〜第4クロックカウント回路B81,B82,B83,B84は、図5に示すように、4ビットのインクリメントカウンタを4個(IC1からIC4まで)カスケード接続した回路で構成され、乱数クロック発生回路B51により発生したクロックの立ち上がりエッジで加算し、その加算結果を出力するための回路である。
乱数クロック発生回路B51からのクロックの入力により、まず、第1クロックカウント回路B81(IC1)において、4桁分の値(例えば、「0001」や「0011」)がカウントされる。「1111」までカウントされて、4桁分の値のカウントが終了すると、その都度、桁上がり信号がIC1のCO端子から第2クロックカウント回路B82(IC2)のENT端子へ出力される。第2クロックカウント回路B82がカウントを開始するには、第1クロックカウント回路B81からの当該桁上がり信号の入力が必要である。すなわち、IC2においては、この桁上がり信号と乱数クロック発生回路B51からのクロック(CK端子に入力される)とが同時に入力されて始めて次の4桁分のカウントが開始される。
同様に、IC2において、4桁分の値(例えば、「0001」や「0011」)が「1111」までカウントされると、その都度、桁上がり信号がIC2のCO端子から第3クロックカウント回路B83(IC3)のENT端子へ出力される。第3クロックカウント回路B83がカウントを開始するには、第2クロックカウント回路B82からの当該桁上がり信号の入力が必要である。すなわち、IC3においては、この桁上がり信号と乱数クロック発生回路B51からのクロック(CK端子に入力される)とが同時に入力されて始めて次の4桁分の値のカウントが開始される。
また、同様に、IC3において、4桁分の値(例えば、「0001」や「0011」)が「1111」までカウントされると、その都度、桁上がり信号がIC3のCO端子から第4クロックカウント回路B84(IC4)のENT端子へ出力される。第4クロックカウント回路B84がカウントを開始するには、第3クロックカウント回路B83からの当該桁上がり信号の入力が必要である。すなわち、IC4においては、この桁上がり信号と乱数クロック発生回路B51からのクロック(CK端子に入力される)とが同時に入力されて始めて次の4桁分の値のカウントが開始される。
以上のようにして、クロックカウント回路B81〜B84により、16ビットの2進数が生成されることとなっている。すなわち、16桁の2進数のうち、第1クロックカウント回路B81(IC1)が最下位の4桁、第2クロックカウント回路B82(IC2)がその上の4桁、第3クロックカウント回路B83(IC3)がさらにその上の4桁及び第4クロックカウント回路B84(IC4)が最上位の4桁をそれぞれ担当している。
上記4つのクロックカウント回路B81〜B84により加算されているカウントは、各々のカウント出力部(QA、QB、QC及びQD端子)を経て第1カウント値記憶回路B91および第2カウント値記憶回路B92へそれぞれ出力されて記憶される。なお、本実施の形態では、クロックカウント回路として加算式のインクリメントカウンタを使用しているが、他の実施の形態では、減算式のデクリメントカウンタを使用することとしてもよい。また、本実施の形態においては16ビットの乱数(4ビット×4)を生成することとしているが、他の実施の形態においては、このビット数は16ビットに限らず適宜変更することとしてもよい。
ラッチ信号出力回路B71,B72は、第1始動入賞具24aへの入賞に伴う乱数の取得に係る第1ラッチ信号出力回路B71(IC16)と、第2始動入賞具24bへの入賞に伴う乱数の取得に係る第2ラッチ信号出力回路B72(IC17)とに分けられている。
第1ラッチ信号出力回路B71(IC16)には、上記乱数クロック反転回路B61(IC18)からの反転クロックが第1反転クロック入力部(1CK)を経て入力される。これとともに、第1始動入賞センサ51からの第1始動信号が、バッファ(IC13)を介して第1始動信号入力部(1D)に入力される。そして、第1ラッチ信号出力回路B71は、この第1始動信号入力部(1D)を経て第1始動信号(ロー信号)が入力されたときは、この信号の立ち上がりエッジを、第1反転クロック入力部(1CK)から入力される反転クロックの立ち上がりエッジと同期するように遅延させて、第1ラッチ信号として第1ラッチ信号出力部(1Q)を経て第1カウント値記憶回路B91(IC5およびIC6)へ出力する。
一方、第2ラッチ信号出力回路B72(IC17)には、前記乱数クロック反転回路B61からの反転クロックが第2反転クロック入力部(2CK)を経て入力される。これとともに、前記第2始動入賞センサ52からの第2始動信号が第2始動信号入力部(2D)に入力される。そして、第2ラッチ信号出力回路B72は、この第2始動信号入力部(2D)を経て第2始動信号(ロー信号)が入力されたときは、この信号の立ち上がりエッジを、反転クロック入力部から入力される反転クロックの立ち上がりエッジと同期するように遅延させて、第2ラッチ信号として第2ラッチ信号出力部(2Q)を経て第2カウント値記憶回路B92(IC7およびIC8)へ出力する。
なお、上記第1及び第2始動信号は、いずれも後述するように入力回路部B40等を介してメインコントロール部730にも入力され、乱数取得のために実行されるプログラムを開始させるタイミングとしても用いられることとなっている。
カウント値記憶回路B91,B92は、第1始動入賞具24aへの入賞に由来する乱数を一時的に記憶する第1カウント値記憶回路B91と、第2始動入賞具24bへの入賞に由来する乱数を一時的に記憶する第2カウント値記憶回路B92とに分けられている。
第1カウント値記憶回路B91は、クロックカウント回路B81〜B84によりカウントされたカウント値を、第1ラッチ信号出力回路B71からの第1ラッチ信号に基いて(第1始動入賞センサ51からの第1始動信号を受けて、第1ラッチ信号出力回路B71からラッチ信号が出力されたときに)記憶するものである。一方、第2カウント値記憶回路B92は、クロックカウント回路B81〜B84によりカウントされたカウント値を、第2ラッチ信号出力回路B72からの第2ラッチ信号に基いて(第2始動入賞センサ52からの第2始動信号を受けて、第2ラッチ信号出力回路B72からラッチ信号が出力されたときに)記憶するものである。
第1カウント値記憶回路B91は、図5に示すように、8ビットのIC2個からなるレジスタ部(IC5及びIC6)と、8ビットのIC2個からなるバッファ部(IC9及びIC10)とから構成される。同様に、第2カウント値記憶回路B92も、8ビットのIC2個からなるレジスタ部(IC7及びIC8)と、8ビットのIC2個からなるバッファ部(IC11及びIC12)とから構成される。
第1カウント値記憶回路B91のレジスタ部のうち、IC5には、第1クロックカウント回路B81(IC1)からの4桁のカウント値がD1端子からD4端子までを介して入力され、また、第2クロックカウント回路B82(IC2)からの4桁のカウント値がD5端子からD8端子までを介して入力される。すなわち、IC5のD1端子〜D8端子まではカウント入力部として機能し、IC5には、これらを通じて第1始動入賞具24aに由来する16ビットの2進数のカウント値のうち下8桁が入力される。
第1カウント値記憶回路B91のレジスタ部のうち、IC6には、第3クロックカウント回路B83(IC3)からの4桁のカウント値がD1端子からD4端子までを介して入力され、また、第4クロックカウント回路B84(IC4)からの4桁のカウント値がD5端子からD8端子までを介して入力される。すなわち、IC6のD1端子〜D8端子まではカウント入力部として機能し、IC6には、これらを通じて第1始動入賞具24aに由来する16ビットの2進数のカウント値のうち上8桁が入力される。
第2カウント値記憶回路B92のレジスタ部のうち、IC7には、第1クロックカウント回路B81(IC1)からの4桁のカウント値がD1端子からD4端子までを介して入力され、また、第2クロックカウント回路B82(IC2)からの4桁のカウント値がD5端子からD8端子までを介して入力される。すなわち、IC7のD1端子〜D8端子まではカウント入力部として機能し、IC7には、これらを通じて第2始動入賞具24bに由来する16ビットの2進数のカウント値のうち下8桁が入力される。
第2カウント値記憶回路B92のレジスタ部のうち、IC8には、第3クロックカウント回路B83(IC3)からの4桁のカウント値がD1端子からD4端子までを介して入力され、また、第4クロックカウント回路B84(IC4)からの4桁のカウント値がD5端子からD8端子までを介して入力される。すなわち、IC8のD1端子〜D8端子まではカウント入力部として機能し、IC8には、これらを通じて第2始動入賞具24bに由来する16ビットの2進数のカウント値のうちの上8桁が入力される。
第1カウント値記憶回路B91のレジスタ部(IC5及びIC6)におけるCLOCK端子には、第1ラッチ信号出力回路B71からの第1ラッチ信号が入力される。すなわち、これらのCLOCK端子は、第1ラッチ信号入力部として機能しており、この第1ラッチ信号入力部から入力される第1ラッチ信号がハイ信号となった立ち上がりエッジの時点でクロックカウント回路B81〜B84から入力されているカウント値が、レジスタ部に記憶される。
第2カウント値記憶回路B92のレジスタ部(IC7及びIC8)におけるCLOCK端子には、第2ラッチ信号出力回路B72からの第2ラッチ信号が入力される。すなわち、これらのCLOCK端子は、第2ラッチ信号入力部として機能しており、この第2ラッチ信号入力部から入力される第2ラッチ信号がハイ信号となった立ち上がりエッジの時点でクロックカウント回路B81〜B84から入力されているカウント値が、レジスタ部に記憶される。
第1カウント値記憶回路B91のバッファ部(IC9及びIC10)におけるG1端子には、乱数取得のために実行されるプログラムに基いてメインコントロール部730の出力回路部B45から出力される読込信号に応じて、第1カウント値記憶回路B91に記憶された16桁からなる1つのカウント値がCPU732へ出力される。すなわち、この読込信号入力部から入力される読込信号がロー信号となる立ち下がりエッジの時点で、レジスタ部(IC5およびIC6)に記憶されている乱数が、Y1端子〜Y8端子をそれぞれ介してCPUデータバスへ出力されるようになっている。
なお、第1カウント値記憶回路B91から出力される乱数のうち、IC9を経由するものは、CPU732に入力されて、16桁の乱数のうちの下位8桁分として取り扱われる。一方、第1カウント値記憶回路B91から出力される乱数のうち、IC10を経由するものは、CPU732に入力されて、16桁の乱数のうちの上位8桁分として取り扱われる。
第2カウント値記憶回路B92のバッファ部(IC11及びIC12)における端子G1には、上記プログラムに基いてメインコントロール部730の出力回路部B45から出力される読込信号に応じて、第2カウント値記憶回路B92に記憶された16桁からなる1つのカウント値がCPU732へ出力される。すなわち、読込信号入力部から入力される読込信号がロー信号となる立ち下がりエッジの時点で、レジスタ部(IC7およびIC8)に記憶されている乱数が、Y1端子〜Y8端子をそれぞれ介してCPUデータバスへ出力されるようになっている。
第2カウント値記憶回路B92から出力される乱数のうち、IC11を経由するものは、CPU732に入力されて、16桁の乱数のうちの下位8桁分として取り扱われる。一方、第2カウント値記憶回路B92から出力される乱数のうち、IC12を経由するものは、CPU732に入力されて、16桁の乱数のうちの上位8桁分として取り扱われる。
次に、乱数発生部750内のクロック監視回路B95の拡大図である図6とともに、このクロック監視回路B95について説明する。クロック発生回路B51の異常動作を監視するためのクロック監視回路B95は、コンデンサC3およびC4と、ダイオードD1およびD2と、トランジスタTR1等とから構成される。そして、コンデンサC3は、カップリングコンデンサとして乱数クロック反転回路B61の1Q端子に接続され、トランジスタTR1のコレクタ側は、入力回路部B40の3A端子に接続されている。また、トランジスタTR1のコレクタ側は、抵抗R6を介して電源Eの正極側にも接続されている。なお、ダイオードD1および抵抗R5はいずれも、ダイオードD1のカソード側を常に正電位に保持するためのものである。
コンデンサC3は、直流成分がカットされたクロック発生回路B51からの周期的なパルス信号(クロック信号)だけをクロック監視回路B95側に通過させる役割を有している。このため、クロック発生回路B51に生じた何らかの不具合によりクロック発生回路B51が動作停止(パルス発振停止)すると、クロック発生回路B51からは時間変化のない一定のハイ信号もしくはロー信号が出力されることになり、クロック監視回路B95の側にはクロック発生回路B51からの出力信号が伝送されなくなる。すなわち、クロック発生回路B51の動作状況に応じて、クロック監視回路B95の側に入力される入力信号が変化する。
クロック監視回路B95内に構成されている平滑回路部B96は、クロック発生回路B51から入力されるパルス信号を平滑化して常に所定以上の電圧(例えば5V以上)を出力するもので、コンデンサC3側をアノードにして接続されたダイオードD2と、当該ダイオードD2のカソードとアース間に接続された平滑コンデンサC4等とから構成される。このダイオードD2は、そのカソード側を常に正電位に保持するためのものである。また、平滑コンデンサC4は、ダイオードD2を通過したパルス信号を平滑化して常に所定以上の電圧を出力し、この出力電圧がベース電圧としてトランジスタTR1に印加される。
トランジスタTR1のコレクタ側は、入力回路部B40の(IC14)の3A端子に接続され、また上述したように、この入力回路部B40への回路から分岐する分岐線が抵抗R6を介して電源Eの正極側に接続されている。クロック発生回路B51が正常にパルス信号を発振している状態では、平滑回路部B96により平滑化された所定以上の出力電圧がトランジスタTR1にベース電圧として印加される。トランジスタTR1に所定のベース電圧(例えば5V)が印加されると、トランジスタTR1のコレクタ側からエミッタ側(アース側)に向かってコレクタ電流Icが流れる。
このコレクタ電流Icは、電源Eから供給されるものであり、電源EからトランジスタTR1のコレクタ側に電流が流れるときは、入力回路部B40(IC14)の側に向けて電流Iaは流れない。このとき、IC14からCPU732に向けてクロック発生回路B51の異常動作を示す異常信号は出力されない。
一方、クロック発生回路B51に異常動作が生じてパルス信号の発振停止の状態では、平滑回路部B96からトランジスタTR1に電圧が印加されず、ベース電圧はゼロであるので(所定値以下であるので)コレクタ電流Icは流れない。このため、電源Eからは入力回路部B40(IC14)の側に向けて電流Iaが流れる。そして、IC14に電流Iaが流れると、IC14からはCPU732に向けて異常信号が出力される。
このようにトランジスタTR1は、電源Eから供給される電流をクロック監視回路B95の側へ流すか、あるいはこの電流を遮断する、スイッチとしての役割を有し、パルス信号の発振停止によりIC14の側に電流Iaが流れたときには、IC14からCPUデータバスを介して異常信号がCPU732に出力されることで、制御部740がクロック発生回路B51の異常動作を判断することができる。
図7および図8はいずれもクロック発生回路B51、クロック監視回路B95および入力回路部B40におけるそれぞれの信号波形の時間変化を示す波形図である。図7および図8で、Vaはクロック発生回路B51から出力されクロック監視回路B95に入力されるクロック信号(パルス信号)を示す。また、VbはカップリングコンデンサC3を通過した入力信号のダイオードD1のカソード側出力を示す。
図7に示すように、クロック発生回路B51はaの時点までは正常に動作してパルス信号がクロック監視回路B95に向けて発振されるため、Vbはクロック監視回路B95への入力波形と同じパルス信号となる。
一方、クロック発生回路B51からロー信号が出力されているaの時点でパルス信号の発振停止が起きて、これ以降クロック発生回路B51から時間変化のない一定のロー信号が出力される状態では、パルス信号がコンデンサC3を通過せず、ダイオードD1のカソード側出力Vbはゼロとなる。
Vcは平滑回路部B96により平滑化されたトランジスタTR1のベース電圧を示しており、トランジスタTR1はベース電圧VcがV0以上(例えば5V以上)のときにコレクタ電流Icが流れるようになっている。図7に示すように、aの時点まではクロック監視回路B95へのパルス信号の入力により常にV0以上のベース電圧がトランジスタTR1に印加されているため、電源EからトランジスタTR1に向けてコレクタ電流Icが流れる。これに対しaの時点以降では、パルス信号がコンデンサC3を通過せず、ダイオードD1のカソード側にパルス信号が出力されないため、トランジスタTR1のベース電圧VcはV0以下となってコレクタ電流Icは流れない。
上述したように、電源EからトランジスタTR1に向けてコレクタ電流Icが流れないときは、電源EからIC14の側に向けて電流が流れ、異常信号VdがIC14の3A端子に入力されるようになっている。図7に示すように、この異常信号Vdは、トランジスタTR1にV0以上のベース電圧が生じるaの時点まではIC14に向けて出力されない(ロー信号が出力される)。一方、トランジスタTR1のベース電圧がV0以下となるaの時点以降において、異常信号Vdが出力される(ハイ信号が出力される)。
そして、IC14の3A端子に異常信号Vdが出力されると、IC14の3Y端子からは、ロー信号としての異常信号が出力される。制御部740がこのロー信号としての異常信号を検出すると、制御部740はクロック発生回路B51に異常動作が発生したものと判断して外部端子板600を介してパチンコ機PM外部に報知信号を出力する。また、制御部740はエラー表示装置61にも報知信号を出力してエラー表示装置61の点灯を行わせてクロック発生回路B51の異常動作を報知させることができる。
一方、図8に示すように、クロック発生回路B51からハイ信号が出力されているbの時点でパルス信号の発振停止が起きて、これ以降クロック発生回路B51から時間変化がない一定のハイ信号が出力されるような場合も同様であり、異常信号Vdは、トランジスタTR1にV0以上のベース電圧が生じるbの時点までは出力されない(ロー信号が出力される)。一方、トランジスタTR1のベース電圧がV0以下となるbの時点以降において、異常信号Vdは出力される(ハイ信号が出力される)。そして、異常信号Vdが出力された場合には、IC14の3Y端子からはロー信号としての異常信号が出力され、制御部740がこのロー信号としての異常信号を検出すると、制御部740がパチンコ機PM外部に報知信号を出力し、エラー表示装置61の点灯を行わせてクロック発生回路B51の異常動作を報知させる。
以上のように、クロック発生回路B51の動作状態に応じて入力回路部B40から出力される異常信号Vdを入力回路部B14(IC14)が検出することで、クロック発生回路B51が正常に動作しているか否かを制御部740が判断することが可能であり、異常動作が発生したと判断された場合には、これを報知させることが可能となっている。
以上、パチンコ機PMにおける乱数の発生およびこれの取得について説明したが、乱数の生成方法として上記のような乱数発生部750によるものに限られない。例えば、図9(a)に示すように、乱数生成プログラムB37を有するROM733、RAM734およびCPU732をマイクロコントロールユニット(以下、「MCU」という。)800として1つのユニットを構成し、第2の乱数生成手段(乱数生成回路B31)であるこのMCU800が乱数(ソフトウェア乱数)を生成するように構成してもよい。このような構成によれば、MCU800内のCPU732が、基準クロック発生回路731において発生した所定間隔のパルス(クロック信号)、すなわち、CPU732の動作基準をなす基準クロックに基いてROM733に記憶された乱数生成プログラムB37を実行することでいわゆるソフトウェア乱数が生成され、生成された乱数は順次RAM734に格納されるようになっている。
あるいは、図9(b)に示すように、ROM733、RAM734およびCPU732のほかに、クロックカウント回路B81〜B84とは別の第2のクロックカウント回路736からなるマイクロコントロールユニットMCU800´を構成し、この第2のクロックカウント回路736からなる第2の乱数生成手段(乱数生成回路B31´)により乱数を生成してもよい。このような構成によれば、第2のクロックカウント回路736が基準クロック発生回路731において発生する基準クロックに基いて乱数をカウントし、所要の時間毎に出力されるCPU732からの読込信号に応じて第2のクロックカウント回路736にてカウントされた乱数値のうちからカウント値が取得され、RAM734に格納される。
次に、実際の遊技における乱数の取得、利用および乱数発生部の異常検出の手順を、図10から図15までのフローチャートを参照しつつ説明する。なお、下記において示されるフローチャートに沿って、CPU732により制御プログラムが実行されるが、CPU732が実行すべき当該制御プログラム及び制御の過程で必要なデータはROM733に記載されている。
なお、図10はパチンコ機における特別遊技判定用乱数の取得、利用の手順におけるメインルーチンを示した図で、図11はパチンコ機における特別遊技判定用乱数の取得、利用の手順における割込処理サブルーチンを示した図で、図12および図13はパチンコ機における特別遊技判定用乱数の取得、利用の手順における通常遊技処理サブルーチンの一部を示した図で、図14はパチンコ機における特別遊技判定用乱数の取得、利用の手順における図柄変動処理サブルーチンを示した図で、さらに、図15はパチンコ機における特別遊技判定用乱数の取得、利用の手順における図柄確定処理サブルーチンを示した図である。また、図12および図13に示すフローチャートは、丸囲みAの部分同士が繋がって1つのフローチャートを構成している。
パチンコ機PMの電源が投入されると、必要なパラメータの初期化等が行われた後、図10に示すメインルーチンに従って遊技の処理に関するプログラムが実行される。このメインルーチンにおいて、まず割込処理サブルーチンR0が図11に示すフローチャートに従って実行される。割込処理サブルーチンR0においては、通常遊技処理サブルーチンR1が図12及び図13に示すフローチャートに従って実行される。通常遊技処理サブルーチンR1においては、ステップS100で第1始動入賞具24a及び第2始動入賞具24bへの打球の入賞がチェックされる。
ここで、CPU732による始動入賞センサ51,52からの始動信号の検出周期は、所定の周期に設定されている。そして、ある検出周期において始動信号がロー信号であることが検出され、且つ、その次の検出周期及びさらにその次の検出周期と2回連続でハイ信号が検出された場合にのみ有効な入賞と判定される。
続くステップS110においては、第1始動入賞具24aへの入賞があったか否かが判断される。ここで、入賞がなかったと判断された場合、もしくは入賞はあったものの既に保留球数が4個に達している場合には、図13のステップS200に進む。一方、保留球数が4個未満で、且つ、入賞があったと判断された場合には、保留球数を1加算した上で、ステップS120に進む。
ステップS120においては、出力回路部B45から、16ビットの乱数のうち上位8ビット分に対する第1読込信号が出力される。そして、その上位8ビット分の第1読込信号が、第1カウント値記憶回路B91の第1読込信号入力部(IC10のG1端子)に入力される。そして、当該入賞に基く第1ラッチ信号の入力により、第1カウント値記憶回路B91のレジスタ部(IC6)に記憶されたカウント値が、バッファ部(IC10)の第1乱数出力部(Y1端子〜Y8端子)から出力される。そして、ステップS130に進む。
ステップS130においては、上記の段階で出力されたカウント値は、CPUデータバスを経由して、入力回路部B40の上位乱数読込部からメインコントロール部730に入力される。そして、ステップS140に進む。ステップS140においては、上記の段階で入力されたカウント値は、16ビットの乱数のうちの上位8ビット分として、RAM734に格納される。そして、ステップS150に進む。
ステップS150においては、出力回路部B45の第1読込信号出力部から、16ビットの乱数のうち下位8ビット分に対する第1読込信号が出力される。そして、その下位8ビット分の第1読込信号が、第1カウント値記憶回路B91の第1読込信号入力部(IC9のG1端子)に入力される。そして、当該入賞に基く第1ラッチ信号の入力により第1カウント値記憶回路B91のレジスタ部(IC5)に記憶されたカウント値が、バッファ部(IC9)の第1乱数出力部(Y1端子〜Y8端子)から出力される。そして、ステップS160に進む。
ステップS160においては、上記の段階で出力されたカウント値は、CPUデータバスを経由して、入力回路部B40の下位乱数読込部からメインコントロール部730に入力される。そして、ステップS170に進む。ステップS170においては、上記の段階で入力されたカウント値は、16ビットの乱数のうちの下位8ビット分として、RAM734に格納される。そして、先のステップS140で格納された上位8ビット分と合わせて、16ビットの乱数として取り扱われる。以上のようにしてRAM734に格納された16ビットの乱数(ハードウェア乱数)は、遊技者に利益を与える特別遊技を発生させるか否かを判定するための第1の乱数値として利用される。
一方、乱数生成回路B31は、ROM733に記憶された乱数生成プログラムB37を読み込んで、CPU732の基準クロックに基いて当該プログラムB37を実行し、いわゆるソフトウェア乱数(上記のように、乱数発生部750において生成されたハードウェア乱数に対して)を生成する。具体的には、この乱数生成プログラムB37は0から所定の数までを所定の周期で1ずつ加算する演算を行うものである。このようにして乱数生成回路B31において生成されたソフトウェア乱数は、遊技者に利益を与える特別遊技を発生させるか否かを判定するための第2の乱数値として利用される。ここではステップS180において、その時点において乱数生成プログラムB37に従って乱数生成回路B31により加算されているソフトウェア乱数が乱数取得手段B33により取得され、ハードウェア乱数と同様にRAM734に保存される。そして、図13のステップS200に進む。
図13のステップS200においては、第2始動入賞具24bへの入賞があったか否かが判断される。ここで、入賞がなかったと判断された場合、もしくは入賞はあったものの既に保留球数が4個に達している場合には、図11に示す割込処理サブルーチンR0に戻る。一方、保留球数が4個未満で、且つ、入賞があったと判断された場合には、保留球数を1加算した上で、ステップS210に進む。
ステップS210においては、出力回路部B45の第2読込信号出力部から、16ビットの乱数のうち上位8ビット分に対する第2読込信号が出力される。そして、その上位8ビット分の第2読込信号が、第2カウント値記憶回路B92の第2読込信号入力部(IC12のG1端子)に入力される。そして、当該入賞に基く第2ラッチ信号の入力により第2カウント値記憶回路B92のレジスタ部(IC8)に記憶されたカウント値が、バッファ部(IC12)の第2乱数出力部(Y1端子〜Y8端子)から出力される。そして、ステップS220に進む。
ステップS220においては、上記の段階で出力されたカウント値は、CPUデータバスを経由して、入力回路部B40の上位乱数読込部からメインコントロール部730に入力される。そして、ステップS230に進む。ステップS230においては、上記の段階で入力されたカウント値は、16ビットの乱数のうちの上位8ビット分として、RAM734に格納される。そして、ステップS240に進む。
ステップS240においては、出力回路部B45の第2読込信号出力部から、16ビットの乱数のうち下位8ビット分に対する第2読込信号が出力される。そして、その下位8ビット分の第2読込信号が、第2カウント値記憶回路B92の第2読込信号入力部(IC11のG1端子)に入力される。そして、当該入賞に基く第2ラッチ信号の入力により第2カウント値記憶回路B92のレジスタ部(IC7)に記憶されたカウント値が、バッファ部(IC11)の第2乱数出力部(Y1端子〜Y8端子)から出力される。そして、ステップS250に進む。
ステップS250においては、上記の段階で出力されたカウント値は、CPUデータバスを経由して、入力回路部B40の下位乱数読込部からメインコントロール部730に入力される。そして、ステップS260に進む。ステップS260においては、上記の段階で入力されたカウント値は、16ビットの乱数のうちの下位8ビット分として、RAM734に格納される。そして、先のステップS230で格納された上位8ビット分と合わせて、16ビットの乱数として取り扱われる。そして、ステップS270に進む。
ステップS270においては、その時点において乱数生成プログラムB37に従って乱数生成回路B31により加算されているソフトウェア乱数が乱数取得手段B33により取得され、RAM734に保存される。そして、図11に示す割込処理サブルーチンR0に戻り、ステップS10において乱数更新処理が行われる。この乱数更新処理は、先のステップS170およびS260において既にRAM734に記憶されていた乱数をRAM734上の記憶領域から削除するものである。そしてこれに引き続き、図柄変動処理サブルーチンR2が、図14に示すフローチャートに従って実行される。
図柄変動処理サブルーチンR2においては、まず、図14のステップS300において、図柄表示装置28において表示される図柄が停止しており、且つ、特別遊技が実行されていないような図柄変動許可状態であるか否かが判断される。ここで、図柄変動許可状態でないものと判断された場合、すなわち、図柄表示装置28において図柄が変動表示している最中であるか、もしくは特別遊技が実行されている最中であるものと判断された場合には、図11に示す割込処理サブルーチンR0に戻る。
一方、図柄変動許可状態であると判断された場合には、ステップS310に進む。ステップS310においては、保留球数が1以上あるか否かが判断される。保留球数が0の場合には、図柄の変動処理は実行されず、図11に示す割込処理サブルーチンR0に戻る。一方、保留球数が1以上の場合には、ステップS320に進む。ステップS320においては、保留球数から1が減算される。そして、ステップS330に進む。
ステップS330においては、制御部740により入力回路部B40からクロック発生回路B51の異常動作を示す異常信号が出力されているか否かが判断される。ここで、異常信号が出力されているものと判断された場合には、ステップS340において、通常遊技処理サブルーチンR1においてRAM734に記憶されたソフトウェア乱数がRAM734上の記憶領域から制御部740における作業用の記憶領域に読み込まれる。そして、ステップS360に進む。
一方、ステップS330においてクロック発生回路B51の異常動作を示す異常信号が出力されていないものと判断された場合には、ステップS350において、先の通常遊技処理サブルーチンR1においてRAM734に記憶された16ビットのハードウェア乱数(最大4個)のうち、最先に記憶されたものがRAM734上の当該記憶領域から制御部740における作業用の記憶領域に読み込まれる。さらに、通常遊技処理サブルーチンR1においてRAM734に記憶されたソフトウェア乱数も同様にRAM734上の記憶領域から制御部740における作業用の記憶領域に読み込まれる。そして、ステップS355に進む。
ステップS355においては、上記ハードウェア乱数およびソフトウェア乱数に基いて、遊技者に利益を与える特別遊技を発生させるか否かを判定するための判定値が演算される(判定値演算処理)。具体的には、ハードウェア乱数とソフトウェア乱数とを加算、減算、乗算および除算のうちのいずれかを行う演算、もしくはこれらを組み合わせた演算処理が実行される。
例えば、上記演算処理は、コンピュータによる乱数の生成方法の1つである線形合同法(Linear Congruential Method)を用いて実行することが可能である。線形合同法は、漸化式Xi+1 = a*Xi+c(mod m)、(ここで、a,c,iおよびmは整数で、0<a<m、0<c<m、X0は初期値で0<X0<mである)、すなわち、ある数Xiにある定数aを乗算してさらにある数cを加算したものを、ある数mで除算した余りをXi+1とするという整数演算を行う漸化式によって、周期的(周期はm)に反復する乱数の数列{Xi}(0<Xi<m)を求める方法である。
上記線形合同法を、乱数取得手段B33により取得されたハードウェア乱数とソフトウェア乱数に基く判定値の演算に適用すると以下のようになる。取得されたソフトウェア乱数を上記の漸化式における定数aとし、取得されたハードウェア乱数を同様に定数cとして、さらに、mとして例えば65536を設定する。そして、判定値演算回路B32により上記の漸化式Xi+1 = a*Xi+c(mod m)に基く演算を実行すれば、65536を周期として反復する乱数の数列{Xi}(0<Xi<65536)を得ることができる。そして、数列{Xi}を求める演算が実行されている状態で、乱数取得手段B33により演算されている数列{Xi}のうちの1つの値を任意の時点で抽出すれば、0〜65536までの値のうちのいずれか1つの数値が、ハードウェア乱数およびソフトウェア乱数に基く演算値として得ることが可能である。なお、乱数生成アルゴリズムとして、必ずしも上記線形合同法に限られず、線形合同法よりもランダム性の高く、長周期の乱数を高速に生成するのを望む場合には、例えばメルセンヌ・ツイスタ法(Mersenne Twister)を適用するのが好ましい。
ステップS360においては、上記ステップS340で判定値として読み込まれた乱数値、もしくは、ステップS355で判定値として演算された乱数値が、当たり判定手段B34により当たり判定テーブルB36内のデータと比較されることで、当選か否かが判定される。
なお、本発明においては、乱数クロック発生手段B51もしくはクロックカウント回路B81〜B84における異常動作の発生の有無に関わらず、ハードウェア乱数およびソフトウェア乱数に基いて演算された乱数の演算値が、当たり判定テーブルB36内の当たり乱数値と一致する割合は一定となっている。すなわち、例えば、ハードウェア乱数とソフトウェア乱数とを加算するような判定値の演算が実行されている場合に、正常に更新されるハードウェア乱数に基いて加算された判定値が当たり乱数値である割合と、上記のようなハードウェアの異常動作に発生により正常に更新されずに同一のハードウェア乱数が繰り返して読み込まれた場合に加算された判定値が当たり乱数値である割合とは、常に一定になるように設定されている。従って、ハードウェアの異常動作が発生したとしても、大当たり遊技の発生する確率は変動せずに常に一定であり、異常動作が遊技に直接的に影響を及ぼすことはない。
このように当たり乱数値が設定されている状態で、上記ステップS360において、当選でないと判定された場合には、ステップS370に進む。ステップS370においては、図柄データテーブルB35内の図柄データの中から所定のハズレ図柄を最終的に表示するような停止図柄が選択される。そして、ステップS395に進む。
一方、ステップS360において当選であると判定された場合には、ステップS380に進む。ステップS380においては、図柄データテーブルB35内の図柄データの中から所定の当たり図柄を最終的に表示するような停止図柄が選択される。そして、ステップS390に進む。
ステップS390においては、特別遊技フラグがセットされる。そして、ステップS395に進む。ステップS395においては、ステップS380で選択された所定の当たり図柄、もしくはステップS370で選択された所定のハズレ図柄を最終的に停止表示するような図柄の変動表示が遊技盤20上の図柄表示装置28にて実行される。そして、図11に示す割込処理サブルーチンR0に戻る。
図11に示す割込処理サブルーチンR0においては、図15に示すような図柄確定処理サブルーチンR3が実行される。ここではステップS400で、図柄変動タイマが既に規定値としてセットされている時間だけ経過したか否かが判断される。ここで、この図柄変動タイマが当該規定値を未だ経過したしていないものと判断された場合には、図11に示す割込処理サブルーチンR0に戻る。
一方、ステップS400で、図柄変動タイマが上記規定値を経過したものと判断された場合には、続くステップS410で、図柄確定フラグがオンされる。そして、ステップS420で、制御部740により入力回路部B40から乱数クロック発生回路B51の異常を示す異常信号が出力されているか否かが判断される。ここで、異常信号が出力されていないものと判断された場合には、図11に示す割込処理サブルーチンR0へ戻り、特別遊技処理サブルーチンR4が実行される。
一方、ステップS420で、入力回路部B40から異常信号が出力されているものと判断された場合には、続くステップS430において、制御部740がエラー表示装置61に報知信号を出力してエラー表示を行わせる。また、この報知信号は外部端子板600を介して遊技ホールに設置された管理コンピュータに対して伝送され、遊技ホール側にこの異常を直ちに認識させる。そして、図11に示す割込処理サブルーチンR0へ戻り特別遊技処理サブルーチンR4が実行される。
特別遊技処理サブルーチンR4においては、先の図柄確定処理サブルーチンR3のステップS410において図柄確定フラグがオンされ、且つ、図柄変動処理サブルーチンR2のステップS390において特別遊技フラグがセットされている場合には、特別遊技、すなわち大当たり遊技が実行される。この大当たり遊技においては、大入賞具26が所定時間開放されて遊技者にとって有利な状態となる。そして、大当たり遊技の終了後、特別遊技フラグおよび図柄確定フラグをクリアしてから、メインルーチンに戻る。一方、特別遊技フラグまたは図柄確定フラグがセットされていない場合には、本処理を終了する。
続いてメインルーチンにおいては、ステップS5において、乱数更新処理が実行される。この乱数更新処理は、RAM734に記憶されている乱数をRAM734上の記憶領域から削除するものであり、特別遊技の発生の有る無しに関わらず、所定の時間毎(例えば、40μsec毎)に実行されるようになっている。そして、メインルーチンにおいては、上述の割込処理サブルーチンR0および乱数更新処理が繰り返されることで、遊技が継続されることとなっている。
ここで、本実施例の変更例として、以下に2つのパターンを追加して説明する。上記の実施例では、図柄変動処理サブルーチンR2のステップS330において、クロック発生回路B51の異常動作を示す異常信号が出力されていないものと判断された場合に、続くステップS355において、先の通常遊技処理サブルーチンR1においてRAM734に記憶されたハードウェア乱数およびソフトウェア乱数を使用して判定値の演算を行っていた。
ここでは、通常遊技処理サブルーチンR1のステップS180やステップS270において、乱数生成プログラムB37に従って乱数生成回路B31により加算されている演算処理のためのソフトウェア乱数を取得せず、RAM734に記憶しない、というパターンも考えられる。このようにした場合には、ステップS330において異常信号が出力されていないものと判断されたときに、ステップS350においてハードウェア乱数のみが判定値として読み込まれ、演算処理を行わずにこの判定値に基づいて当選の判定が行われることになる。このように、ソフトウェア乱数を取得せず、RAM734に記憶しないことで、RAM734の省量化を図ることが可能となっている。
一方、CPU732の乱数生成回路B31が、ROM733に記憶された乱数生成プログラムB37を読み込まず、すなわちプログラムB37を実行せず、ソフトウェア乱数を生成しない、といったパターンも考えられる。この場合、上記の変更例と同様にハードウェア乱数のみがRAM734に読み込まれることからRAM734の省量化を図ることが可能なほか、乱数生成プログラムB37を実行しないことからCPU732に掛かる負担を軽減させることが可能である。
ここで、図16および図17を参照して、パチンコ機PMにおける乱数の発生およびこれの取得、さらに乱数発生手段の異常検出に係る部分の構成の第2の実施の形態について説明する。本実施例においては、第1の実施の形態と相違する部分を中心に簡潔に説明する。なお、図16は遊技機の制御に係る部分と乱数の発生に係る部分を表したブロック図で、図17は乱数発生部とその周辺を表す回路図である。
図16および図17に示すように、本実施例における主基板700の構成は、上記実施例1の場合と概ね同様であるが、本実施例においては乱数発生部750にオーバーフロー出力回路B97を有している。
このオーバーフロー信号出力回路B97は、第1〜第4クロックカウント回路B81〜B84において、異常動作が発生しているか否かを検出するためのものであり、第4クロックカウント回路B84(IC4)において、16ビット分の乱数値のカウントが終了する毎に(全ビットの値が「1」になる毎に)、第4クロックカウント回路B84からのカウント信号(例えばハイ信号)がIC4のCO端子からオーバーフロー信号出力回路B97の1CK端子へ向けて出力される。このカウント信号は、再び第1クロックカウント回路B81が乱数値のカウントを開始すると、出力が停止される(すなわち、ロー信号に切り換わる)。
第1〜第4クロックカウント回路B81〜B84に何らかの不具合が発生した場合には、第1〜第4クロックカウント回路B81〜B84のうちの何れかにおいて正常に乱数値のカウントアップがなされず、IC4のCO端子からオーバーフロー信号出力回路B97の1CK端子へ向けて出力されるカウント信号は、ロー信号のままである。
オーバーフロー信号出力回路B97は、第1〜第4クロックカウント回路B81〜B84がいずれも正常に動作して、16ビット分の乱数値のカウントが終了する所定周期毎に第4クロックカウント回路B84のCO端子から出力されるハイ信号としてのカウント信号が入力されると、入出力回路部B40(IC4)に向けて1Q端子からハイ信号としてのオーバーフロー信号を出力する。これに対し、第1〜第4クロックカウント回路B81〜B84のうちいずれかに異常動作が生じたことで第4クロックカウント回路B84のCO端子から出力されるカウント信号がロー信号のままである場合には、オーバーフロー信号出力回路B97は、入出力回路部B40(IC4)に向けて1Q端子からロー信号としてのオーバーフロー信号を出力する。
そして、入出力回路部B40は、オーバーフロー信号がハイ信号であることを検出すると、第1〜第4クロックカウント回路B81〜B84はいずれも正常に動作を行っているものと判断し、オーバーフロー信号出力回路B97に向けて制御信号を出力して、オーバーフロー信号出力回路B97から出力されるオーバーフロー信号をロー信号にリセットする。
一方、入出力回路部B40(IC4)は、オーバーフロー信号出力回路B97から出力されるオーバーフロー信号がロー信号のままであることを検出した場合には、第1〜第4クロックカウント回路B81〜B84のうちのいずれかが異常動作を起こしているものと判断し、CPU732に向けて異常信号を出力する。
上述したように、乱数クロック発生回路B51により、約7MHzの乱数クロックが発生する。そして、クロックカウント回路B81〜B84が16ビットの乱数を65536個カウントしてカウント信号をオーバーフロー信号出力回路B97に出力し、当該オーバーフロー信号出力回路B97からオーバーフロー信号が入出力回路部B40に出力される周期は10ms以下のオーダー(これは以下のように、概算される。すなわち、乱数クロック発生回路B51による乱数クロック発生周期、約0.14μsに、正常に動作するクロックカウント回路B81〜B84がカウントアップする16ビットのカウント値の個数(65536個)を乗じれば、カウント信号の発生周期(ハイ信号としてのオーバーフロー信号の発生周期でもある)を算出することができる。)であるから、乱数クロック発生回路B51が正常に動作していれば、この10ms以下のオーダーの周期でハイ信号としてのオーバーフロー信号が必ず出力される。このため、10msよりも大きい周期で、オーバーフロー信号出力回路B97から出力されるオーバーフロー信号を監視すれば、乱数クロック発生回路B51が正常に動作しているか否かを確実に検出することができる。
以上のように乱数発生部750が構成される本実施例における乱数の取得、利用および乱数発生部の異常検出は、実施例1で説明した図10から図15までのフローチャートに従って実行することが可能である。
本実施例では上記実施例1と同様に、ステップS330において、制御部740により入力回路部B40からクロック発生回路B51の異常動作を示す異常信号が出力されているか否かが判断される。ここでは、クロック発生回路B51の異常動作を示す異常信号のほか、クロックカウント回路B81〜B84の異常動作を示す異常信号が出力されているかどうかが検出され、これに応じて実施例1と同様な処理が実行される。
また、図15に示すステップS420で、乱数クロック発生回路B51の異常を示す異常信号もしくはクロックカウント回路B81〜B84の異常動作を示す異常信号が入力回路部B40から出力されているか否かが判断される。ここで、入力回路部B40からいずれかの異常信号が出力されているものと判断された場合には、続くステップS430において、制御部740がエラー表示装置61に報知信号を出力してエラー表示を行わせる。また、この報知信号は外部端子板600を介して遊技ホールに設置された管理コンピュータに対して伝送され、遊技ホール側にこの異常を直ちに認識させる。
このように、本実施例においては、乱数発生部750にオーバーフロー検出回路B97を設けることで、乱数クロック発生回路B51の異常動作だけではなく、クロックカウント回路B81〜B84の異常動作を検出することができるようになっている。
ここで、本発明において達成される効果は下記のようになる。すなわち、本発明に係る遊技機においては、複数の乱数生成手段のうちの一方をCPUを含んで構成し、CPUの基準クロックに基いてCPUのプログラム制御により乱数値をカウントする方法によっていわゆるソフトウェア乱数を生成することが可能である。このような場合には、複数の乱数生成手段のうちの他方を構成する乱数クロック発生手段等からなるハードウェア(第1の乱数生成手段)において異常動作が発生したような場合であっても、複数の乱数生成手段のうちの一方を構成するCPUにより生成されたソフトウェア乱数が判定値として取得され、CPU自体が故障しない限り乱数生成に係るハードウェアの故障に拘らず特別遊技を発生させるような乱数を抽選させることが可能である。このようにすれば、CPUが第1の乱数生成手段において生成された同一のカウント値を繰り返して読み込んでしまうような故障が生じたとしても、異常動作を起こした乱数生成手段等の部品を正常なものに交換するまでの間は、ソフトウェア乱数のみを判定値として遊技を続行させることが可能である。
さらに、第1の乱数生成手段のうち乱数クロック発生手段の異常動作を検出するために、乱数クロック発生手段からパルス信号が出力されているか否かをチェックして、異常信号出力手段に異常信号を出力させるためのパルス発振検出手段を、ダイオード、トランジスタ、コンデンサといった安価な部品のみで構成することが可能である。
また、判定値が当たり乱数値と一致する割合がハードウェア乱数を生成する第1の乱数生成手段の故障に関わらず一定であるように設定されていれば、たとえハードウェアの故障により同一のカウント値が繰り返して取得されたとしても、遊技者に利益を与える大当たり遊技の発生の確率は変動しないため、ハードウェアの異常を判定して何らかの措置を行わなくてもこの異常による直接的な影響を及ぼされずに遊技を続行させることが可能である。
さらに、乱数クロック発生手段の異常動作が発生した場合には報知信号が出力されて、エラー表示装置により異常動作の発生が直ちに表示されるため、遊技ホール側は早めにこの異常動作を認識することが可能である。
さらに、第1の乱数生成手段における異常動作の発生を検出する異常動作検出手段を、乱数クロック発生手段の異常動作の発生を検出可能な第1の異常動作検出手段と、乱数カウント手段の異常動作の発生を検出可能な第2の異常動作検出手段とからなる2つの異常動作検出手段で構成し、エラー表示装置により乱数クロック発生手段および乱数カウント手段のうちのいずれかで異常動作が発生したかを認識可能に報知させることも可能である。このように双方の異常動作を報知するように構成すれば、当該報知に基づいて第1の乱数生成手段の乱数クロック発生手段および乱数カウント手段のうちのいずれかにおける異常動作の発生箇所の特定が可能であることから、異常発生箇所の部品交換作業や異常発生箇所の点検作業(解析作業)を迅速に行うことができる。
なお、これまで本発明の好ましい実施形態について説明してきたが、本発明の範囲は上述の実施形態に限定されるものではない。例えば、上記実施例においては、ROM733に記憶された乱数生成プログラムB37を読み込んで、第2の乱数生成手段を構成する乱数生成回路B31が基準クロック発生回路731の水晶発振器等において発生した所定間隔のパルス(クロック信号)、すなわち、CPU732の動作基準をなす基準クロックに基いて乱数生成プログラムB37を実行してソフトウェア乱数を生成する構成であったが、第2の乱数生成手段をMCU800´(図9(b)参照)の第2のクロックカウント回路736で構成し、基準クロック発生回路731において発生する基準クロックに基いて、第2のクロックカウント回路736が第2の乱数値として取得される乱数をカウントするように構成してもよい。
さらに、上記実施例においては、クロック発生回路B51の異常動作を示す異常信号が出力されていないものと判断された場合に、すなわち、クロック発生回路B51が正常に動作しているときに、判定値演算回路B32によって演算されるハードウェア乱数とソフトウェア乱数との演算値を判定値として設定していたが、必ずしも当該演算値を判定値として設定する必要はなく、ハードウェア乱数およびソフトウェア乱数のうちのいずれかを判定値として設定してもよい。
また、実施例1では、異常動作検出手段であるクロック監視回路B95により乱数クロック発生回路B51における異常動作の検出を行っていたが、異常動作検出手段をクロック監視回路B95の代わりに、実施例2でも説明したオーバーフロー信号出力回路B97で構成してもよい。このように構成すれば、異常動作検出手段であるオーバーフロー信号出力回路B97から出力されるオーバーフロー信号の監視によってクロックカウント回路B81〜B84における異常動作を検出することが可能である。
また、上記の実施例では、第4クロックカウント回路B84からのカウント信号の出力に基いてオーバーフロー信号がロー信号からハイ信号に切り換わるように構成され、ハイ信号が検出されたときに、第1〜第4クロックカウント回路B81〜B84の正常な動作を判断し、ロー信号が検出されたときは、第1〜第4クロックカウント回路B81〜B84のうちのいずれかにおける異常動作を判断したが、これとは逆に、カウント信号の出力に基いてハイ信号からロー信号に切り換わるように構成して、ロー信号が検出されたときに、第1〜第4クロックカウント回路B81〜B84の正常な動作を判断し、ハイ信号が検出されたときは、第1〜第4クロックカウント回路B81〜B84のうちのいずれがにおけるの異常動作を判断するようにしてもよい。
また、第4クロックカウント回路B84の桁上がり信号出力部(CO端子)からから出力されるカウント信号は、16ビットのカウントが終了する毎に、オーバーフロー信号出力回路B97へ出力されるように構成されていたが、例えば、第1クロックカウント回路B81のカウント出力部QCとQDとの間にカウント信号出力端子を設け、当該カウント信号出力端子からカウント信号が出力するように構成してもよい。このような構成によれば、第1クロックカウント回路B81のカウント出力部QCからカウントが出力される毎に、カウント信号が異常信号出力手段に出力される。そして、異常信号監視手段が異常信号出力手段からハイ信号(もしくはロー信号)としての異常信号が出力されているか否かを監視することで、第1〜第4クロックカウント回路B81〜B84のうちのいずれかの異常動作を検出することができる。
また、オーバーフロー信号出力回路B97から出力されるオーバーフロー信号を、第1〜第4クロックカウント回路B81〜B84の動作情報として例えばRAM734に入力して記憶させ、CPU732がRAM734に記憶された当該動作情報を監視することで第1〜第4クロックカウント回路B81〜B84がいずれも正常に動作しているか否かを検出できるように構成してもよい。
このような構成によれば、オーバーフロー信号出力回路B97から出力されるオーバーフロー信号がハイ信号としてRAM734に入力されたときには(カウント回路からのカウント信号を直接RAM734に入力して動作情報を記憶するようにしてもよい。)、RAM734に例えばオン情報としての動作情報が記憶されるようになっており、CPU732がRAM734内のオン情報を読み込むと(RAM734にオフ情報としての動作情報が記憶されるようにして、このオフ情報を読み込むようにしてもよい。)、第1〜第4クロックカウント回路B81〜B84がいずれも正常に動作しているものと判断する。そして、CPU732はRAM734内のオン情報をオフ情報に書き換える(オフ情報として記憶された場合はオン情報に書き換えられる)。
一方、第1〜第4クロックカウント回路B81〜B84のうちいずれかにおいて異常動作が生じると、オーバーフロー信号はロー信号として出力され、RAM734にはオフ情報としての動作情報が記憶される。このとき、CPU732がRAM734内のオフ情報を読み込むことで、第1〜第4クロックカウント回路B81〜B84のうちのいずれかにおける異常動作を判断することができる(ロー信号が出力されたときにオン情報としてRAM734に記憶して、このオン情報をCPU732が読み込んで異常動作を判断するようにしてもよい)。
また、上記の実施例では、パチンコ機PMを例に乱数発生部が搭載された遊技機の説明を行ったが、パチンコ機PMは遊技機の一例であって、当該遊技機はパチンコ機に限られずスロットマシンであってもよい。この場合、乱数取得手段による取得結果に基いて複数種類の図柄を表示させる図柄表示装置は、例えば、モータ駆動により回転可能な複数個の回胴リールを有した回胴リール装置等で構成される。