以下、本発明の好適な実施の形態を図面に基づいて説明する。
図1は、本発明の一実施形態の遊技装置の全体を示す正面図である。
本実施形態の遊技装置は、遊技者が保有する遊技媒体数(遊技球数)もしくはそれに変換可能な金銭の額等の有価価値を記憶する記憶媒体が挿入されるカードユニット70及び実際に遊技媒体としての遊技球を使用した遊技を実行して所定数の遊技球を賞品球として払出可能な遊技機10を備える。
遊技機10は、本体枠(外枠)11と前面枠12を備え、該前面枠12は本体枠(外枠)11にヒンジ13を介して開閉回動可能に組み付けられている。上記前面枠12の前面側に形成された収納部(図示省略)に、遊技盤50(図3参照)が収納されている。また、前面枠12には、遊技盤50の前面を覆うカバーガラス(透明部材)を備えたガラス枠15が取り付けられている。
ガラス枠15のカバーガラスの周囲には、内部にランプやLED等からなる発光装置を備えた装飾部材16が設けられている。ガラス枠15の上方にも内部に発光装置を備えた照明ユニット17が設けられている。これらの発光装置が所定の態様に従って発光されることによって、遊技の演出効果を高める装飾発光や遊技状態を示す発光がなされる。
さらに、照明ユニット17の右側には、遊技機10のエラー発生や前面枠12の開放をホール店員に通知するためのエラー報知LED18が設けられている。ガラス枠12の下部左側には、音響(例えば、効果音)を発するスピーカ19が設けられている。
前面枠12の下部には開閉パネル20と固定パネル30が設けられ、開閉パネル20には、図示しない打球発射装置に遊技球を供給する上皿21が設けられ、該上皿21の上縁部には、遊技者からの操作入力を受け付けるためのセレクトスイッチ22及び操作スイッチ23が設けられている。また、固定パネル30には灰皿31、下皿32及び打球発射装置の操作部33等が設けられている。さらに、下皿32には、該下皿32に貯まった遊技球を排出するための下皿球抜き機構34が設けられている。
この実施形態の遊技装置にあっては、遊技者が上記操作部33を回動操作することによって、打球発射装置が、上皿21から供給される遊技球を発射する。また、遊技者がセレクトスイッチ22を操作することによって、遊技盤の中央に設けられている表示装置61(図3参照)における変動表示ゲームの演出内容を選択することができる。さらに、遊技者が操作スイッチ23を操作することによって、表示装置61で実行される変動表示ゲームにおいて、遊技者の操作を介入させた演出を行わせることができる。
上皿21の右上部には、遊技者が遊技媒体を借り受ける際に操作する球貸ボタン26、及び、カードユニット70からプリペイドカードを排出させるために操作する排出ボタン27が設けられている。また、これらのボタン26、27の間には、プリペイドカードの残高を表示する残高表示部28が設けられている。
遊技機10の左側に隣接して配置されているカードユニット70の下部には、プリペイドカード又は会員カード等のカードが挿入可能なカード挿入口71が設けられている。プリペイドカード又は会員カード等のカードには、当該カードの識別情報、当該カードの所有者(遊技者)の会員情報、及び残高等が記憶されている。
カード挿入口71にプリペイドカード又は会員カード等のカードが挿入された場合、内部のカードリーダ・ライタによって、カードに記憶された情報が読み出される。そして、読み出された情報のうちカード残高が、遊技機10の残高表示部28及びカードユニット70の中央付近に設けられた残高表示部72に表示される。
残高表示部72の上方には、紙幣を挿入可能な紙幣挿入口73が設けられており、紙幣挿入口73に挿入された紙幣の金額は、カードに残高として記憶される。紙幣挿入口73の上方には、動作表示部74が設けられている。動作表示部74は、カードユニット70の動作状態に対応して発光色が変化される。
次に、図2を用いて遊技機10の裏面側の構成を説明する。図2は、本実施形態の遊技機10の背面図である。
遊技機10の裏面側、具体的には、前面枠12の背部には、中央に略正方形状の開口部を有する枠状の裏機構盤40が取り付けられている。裏機構盤40の上部には、島設備に設けられた補給装置(図示省略)から補給された遊技球を貯留すると共に、貯留した遊技球を流下させる球貯留ユニット41が配設されている。裏機構盤40の側部(図2の右側)には、球貯留ユニット41から流下してきた遊技球を、遊技機前面に配設された上皿21及び下皿32に払い出す球排出ユニット42が配設されている。
裏機構盤40の中央部には、遊技を統括的に制御する遊技制御装置100と、遊技制御装置100から送信される演出制御指令に基づいて変動表示ゲームの演出を制御する演出制御装置150とが配設され、遊技制御装置100には、検査装置に接続される検査装置接続端子107が配設されている。
裏機構盤40の下部には、遊技制御装置100から送信されるデータに基づいて球排出ユニット42の動作を制御する払出制御装置200と、電源装置160とが配設されている。払出制御装置200には、検査装置に接続される検査装置接続端子217及び払出制御装置200に発生したエラーの種類を数字で表示するエラーナンバー表示器43が配設されている。また、電源装置160の右側には、遊技機10をカードユニット70に接続するためのカードユニット接続端子170が配設されている。
次に、遊技盤50について、図3を用いて説明する。図3は、本実施形態の遊技盤50の正面図である。
遊技盤50の表面には、ガイドレール53で囲われた略円形状の遊技領域51が形成されている。遊技領域51は、遊技盤50の四隅に各々設けられた樹脂製のサイドケース52及びガイドレール53によって構成される。
遊技領域51には、ほぼ中央に表示装置61を備えたセンターケース60が配置されている。表示装置61は、センターケース60に設けられた凹部に、センターケース60の前面より奥まった位置に取り付けられている。すなわち、センターケース60は表示装置61の表示領域の周囲を囲い、表示装置61の表示面よりも前方へ突出するように形成されている。
表示装置61は、例えば、LCD(液晶表示器)、CRT(ブラウン管)等の表示画面を有する装置で構成されている。表示画面の画像を表示可能な領域(表示領域)には、複数の識別情報(特別図柄)や特図変動表示ゲームを演出するキャラクタが表示される。表示画面は1つであるが、複数(例えば3つ)の変動表示領域を有するとみることができ、各変動表示領域には、識別情報として割り当てられた特別図柄が変動表示(可変表示)して特図変動表示ゲームが行われる。その他、表示画面には遊技の進行に基づく画像(例えば、大当り表示、ファンファーレ表示、エンディング表示等)が表示される。
センターケース60の左側には、普通図柄始動ゲート54が設けられている。センターケース60の左下側には、三つの一般入賞口55が配置され、センターケース60の右下側には、一つの一般入賞口55が配置されている。また、センターケース60の下側には、始動入賞口56が、またその直下には開閉可能な普通変動入賞装置57aを備える始動入賞装置57が配設されている。
さらに、始動入賞装置57の下方には、表示装置61の変動表示ゲームの結果によって遊技球を受け入れない状態と受け入れ易い状態とに変換可能な特別変動入賞装置(大入賞口)58が配設される。また、遊技盤50の右上には、セグメント型表示器などからなる普図表示器62と、特図表示器63と、特図変動表示ゲーム及び普図変動表示ゲームの未処理回数を表示する発光表示ユニット64が設けられている。普図表示器62は、遊技球が普通図柄始動ゲート54を通過した場合に行われる普図変動表示ゲームが表示される。特図表示器63には、遊技球が始動入賞口56または始動入賞装置57に入賞した場合に行われる特図変動表示ゲームが表示される。
本実施形態の遊技機10では、図示しない発射装置から遊技領域51に向けて遊技球(パチンコ球)が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域51内の各所に配置された障害釘や風車等の方向転換部材によって転動方向を変えながら遊技領域51を流下し、普通図柄始動ゲート54、一般入賞口55、始動入賞口56、始動入賞装置57又は特別変動入賞装置58に入賞するか、遊技領域51の最下部に設けられたアウト口59へ流入し遊技領域から排出される。
なお、始動入賞装置57の状態には、普通変動入賞装置57aの開閉によって、遊技球が入賞しやすい状態と遊技球が入賞しにくい状態とがある。通常、普通変動入賞装置57aは閉状態であり、始動入賞装置57は、遊技球が入賞しない状態もしくは入賞しにくい状態にされている。普通図柄始動ゲート54を遊技球が通過することによって、普図表示器62で普図変動表示ゲームが実行され、普図変動表示ゲームの結果、当り状態が発生すると、普通変動入賞装置57aが開状態に変換され、始動入賞装置57は遊技球が入賞し易い状態となる。
一般入賞口55への遊技球の入賞は、一般入賞口55に設けられた一般入賞口スイッチ55a〜55n(図4参照)によって検出される。始動入賞口56への遊技球の入賞は特図始動スイッチ56a(図4参照)によって、始動入賞装置57への遊技球の入賞は特図始動スイッチ57bによって検出される。この遊技球の通過タイミングによって抽出された特別図柄乱数カウンタ値は、遊技制御装置100内の特図記憶領域(RAMの一部)に特別図柄入賞記憶として所定回数(例えば、最大で4回分)を限度に記憶される。そして、この特別図柄入賞記憶の記憶数は、発光表示ユニット64及び表示装置61の特別図柄入賞記憶数表示部(複合記憶表示部)に表示される。遊技制御装置100は、特別図柄入賞もしくはその記憶に基づいて、特図表示器63で特図変動表示ゲームを行うとともに、表示装置61にて演出表示としての飾り特図変動表示ゲームを行う。
始動入賞口56または始動入賞装置57に遊技球の入賞があると、表示装置61で、前述した数字等で構成される特別図柄(識別情報)が左(第一特別図柄)、右(第二特別図柄)、中(第三特別図柄)の順に変動表示を開始して、特図変動表示ゲームに関する画像が表示される。つまり、表示装置61では、特別図柄入賞記憶の記憶数に対応する特別図柄変動表示ゲームが行われ、興趣向上のために多様な表示を演出する。
始動入賞口56または始動入賞装置57への入賞が所定のタイミングでなされたとき(具体的には、入賞検出時の当り乱数値が当り値であるとき)には特図変動表示ゲームの結果として表示図柄により特定の結果態様(特別結果態様)が導出されて、大当り状態となる。具体的には、表示装置61の特別図柄入賞記憶表示部では、当り図柄である一桁の特別図柄で停止して、表示装置61は、三つの特別図柄が揃った状態(大当り図柄)で停止する。これに応じて、特別変動入賞装置58は、内蔵されている大入賞口ソレノイド58b(図4参照)が駆動されることによって、所定の時間だけ遊技球を受け入れない閉状態から遊技球を受け入れやすい開状態に変換され、遊技者は多くの賞球を獲得することができるという特典が付与される。
特別変動入賞装置58への遊技球の入賞は、カウントスイッチ58a(図4参照)によって検出される。普通図柄始動ゲート54への遊技球の通過は、普図始動スイッチ54a(図4参照)で検出される。この遊技球の通過タイミングによって抽出された普通図柄乱数カウンタ値は、遊技制御装置100内の普図記憶領域(RAMの一部)に普通図柄入賞記憶として所定回数(例えば、最大で4回分)を限度に記憶される。そして、この普図入賞記憶の記憶数は、表示装置61の図示しない普図入賞記憶数表示部に表示される。
普図入賞記憶があると、遊技制御装置100は、普図入賞記憶に基づいて普図入賞記憶数表示部で普図変動表示ゲームを開始する。すなわち、普通図柄始動ゲート54への通過検出が所定のタイミングでなされたとき(具体的には、通過検出時の普図乱数カウンタ値が当り値であるときには)には、普図入賞記憶数表示部に表示される普通図柄が当り状態で停止し、当り状態となる。このとき、普通変動入賞装置57aは、内蔵されている普電ソレノイド57c(図4参照)が駆動されることにより、所定の時間だけ開放するように変換され、遊技球の始動入賞装置57への入賞が許容される。なお、普通変動入賞装置57aの開放時間は、例えば、確率変動状態及び変動時間短縮状態では2.9秒間、通常遊技状態では0.5秒間として、遊技状態に応じて開放態様が変化するように制御することができる。
このようにして、一般入賞口55、始動入賞口56、57又は特別変動入賞装置58に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が払出制御装置200によって制御される払出ユニット42から、前面枠12の上皿21又は下皿32に排出される。
図4は、本実施形態の遊技装置の制御システムのブロック図である。
遊技機10は遊技機全体の制御を行う遊技制御装置100を備え、遊技制御装置100は、遊技用マイクロコンピュータ110、入力I/F(Interface)105、出力I/F(Interface)106及び検査装置接続端子107を備え、上記遊技用マイクロコンピュータ110は、CPU111、ROM(Read Only Memory)112及びRAM(Random Access Memory)113を備える。
CPU111は、遊技を統括的に制御する主制御装置であって、プログラムの命令コードを解読(デコード)して遊技制御装置100内部の制御信号を生成する命令実行部や、データの演算を行う演算論理ユニット、演算を行うデータを一時的に保持するアキュームレータなどを備え、制御プログラムに従って遊技制御を実行する。ROM112は、遊技制御のための不変の情報(プログラム、固定データ等)を記憶している。RAM113は、遊技制御時にCPUの作業領域を提供するワークエリアとして利用される。
遊技制御装置100には検査装置接続端子107が設けられており、検査装置接続端子107からは、遊技用マイクロコンピュータ110に設定された識別番号を出力することができる。これによって、検査装置接続端子107に検査装置を接続すると、検査装置は遊技機10を識別することができる。また、遊技制御装置100には出力I/F106を介して外部情報端子108が接続されており、遊技機10に関する情報を、外部情報端子108より、遊技店に設置された情報収集端末や遊技場内部管理装置(図示省略)へ出力するように構成されている。
遊技制御装置100には、各種検出装置(特図始動スイッチ56a,57b、普図始動スイッチ54a、カウントスイッチ58a、一般入賞口スイッチ55a〜55n、オーバーフロースイッチ32a、枠開放スイッチ12a及び球切れスイッチ41a)からの検出信号が入力される。オーバーフロースイッチ32aは、下皿32に遊技球が所定数以上貯留されていることを検出する。枠開放スイッチ12aは、前面枠12が開いたことを検出する。球切れスイッチ41aは、球貯留ユニット41に配設され、球貯留ユニット41に貯留される遊技球が所定数以下になることを検出する。
遊技制御装置100に入力された上記各種検出装置からの検出信号は、入力I/F105を介してCPU111に入力され、CPU111はこれらの信号に基づいて大当り抽選等、種々の処理を行う。また、CPU111は、出力I/F106を介して、発光表示ユニット64、普図表示器62、特図表示器63、普電SOL(ソレノイド)57c、大入賞口SOL(ソレノイド)58b、払出制御装置200及び演出制御装置150に指令信号を送信して、遊技を統括的に制御する。
さらに、遊技制御装置100は、球払出ユニット42の払出モータ42aを制御する払出制御装置200へ払出し指令信号を送信するとともに、演出制御装置150へ、変動開始コマンド、客待ちデモコマンド、ファンファーレコマンド、確率情報コマンド、及びエラー指定コマンド等を、演出制御指令信号として送信する。
次に、払出制御装置200及び演出制御装置150について説明する。演出制御装置150は、遊技制御装置100から入力される各種信号に基づいて、エラー報知LED18、スピーカ19及び表示装置61を制御する。
払出制御装置200は、遊技制御装置100からの賞球払出し指令信号に従って、払出ユニット42の払出モータ42aを駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置200は、カードユニット70からの貸球要求信号に基づいて遊技制御装置100から送信される払出指令信号に従って、払出ユニット42の払出モータ42aを駆動させ、貸球を払い出させるための制御を行う。
払出制御装置200は、遊技用マイクロコンピュータ210、入力I/F(Interface)215、出力I/F(Interface)216及び検査装置接続端子217を備え、遊技用マイクロコンピュータ210は、CPU211、ROM212及びRAM213を備える。
CPU211は、払い出しを統括的に制御する制御装置であって、払出制御を司る。ROM212は、払出制御のための不変の情報(プログラム、データ等)を記憶している。RAM213は、払出制御時にワークエリアとして利用される。
CPU211には、入力I/F215を介して払出ユニット42内の払出球検出スイッチ42b、オーバーフロースイッチ32a、不正検出スイッチとしての枠開放スイッチ12a、球切れスイッチ41a、エラー解除スイッチ44からの信号が入力される。また、CPU211は、出力I/F216を介して、払出ユニット42内の払出モータ42a、発射制御装置180、エラーナンバー表示器43等の駆動信号を出力する。
エラー解除スイッチ44は、払出制御装置200にエラーが発生した場合に、遊技店の店員等が発生したエラーの原因を解消した際に、遊技店の店員等によって操作され、エラー状態を解除するためのスイッチである。発射制御装置180は、遊技球を遊技領域51内に発射するための発射装置を制御する。エラーナンバー表示器43は、払出制御装置200の裏面側に配設され、払出制御装置200で発生したエラーの種類を特定可能に表示する。
なお、遊技制御装置100、演出制御装置150、及び払出制御装置200は、電源装置160に接続される。電源装置160は、バックアップ電源161、RAMクリアスイッチ162を備える。バックアップ電源161は、停電時においても、遊技制御装置100、演出制御装置150、及び払出制御装置200に電源を供給する(演出制御装置150には供給しなくてもよい)。RAMクリアスイッチ162は、遊技制御装置100内のRAM113及び払出制御装置200内のRAM213に記憶されている情報を強制的に初期化するスイッチである。
また、遊技機10に設けられている球貸ボタン26が操作されると、カードユニット70は、プリペイドカード又は会員カード等のカードに記憶されている有価価値から貸し出される遊技球分の有価価値を減算して、減算された有価価値の値を遊技機10の残高表示部28に表示する。また、遊技機10に設けられている排出ボタン27が操作されると、カードユニット70は、カード挿入口71に挿入されているカードを排出する。
図5は、上記遊技制御装置100を構成する遊技用マイクロコンピュータ(遊技用演算処理装置)110のより具体的な構成を示すブロック図である。従来の遊技用マイクロコンピュータは、一般に乱数生成回路が外付けの回路として構成され、接続されていたのに対し、この実施例の遊技用マイクロコンピュータは乱数生成回路を内蔵している。
この実施例の遊技用マイクロコンピュータ110は、遊技制御を行う遊技制御ブロック110Aと情報管理を行う管理ブロック110Bとに区分され、以下に説明する各回路ブロックを構成する素子が1つ半導体基板上に半導体集積回路(アミューズメントチップ)として形成されている。
遊技制御ブロック110Aは、CPUコア111、プログラムROM112、ワークRAM113、外部バスインターフェース114、バス切換え回路115、復号化・ROM書込み回路116、ミラードRAM117、割込制御回路としての割込みコントローラ118、ブートブロック119、リセット割込み制御回路120、アドレスデコーダ121、出力制御回路122、クロックジェネレータ123、乱数生成回路124及びHWパラメータROM125などの機能ブロックを含む。これらの機能ブロックおよび管理ブロック110B間は、CPUバス126によって接続されている。
CPUコア111は、アキュームレータなどの各種レジスタ、演算・論理部(ALU)、命令レジスタ(IR)、デコーダ、プログラムカウンタ(PC)、スタックポインタ(SP)、これらを結ぶデータバス、アドレスバス及び各種制御部をコア内に含み、例えば、Z80アーキテクチャで構成される。CPUコア111は、プログラムROM112に格納されている遊技制御プログラムをロードして実行することによって、遊技機10の制御に必要な各種機能をソフト的に実現する。
ワークRAM113は、CPUコア111の主記憶に相当し、例えば、S−RAM等の高速半導体デバイスで構成される。また、ワークRAM113は、遊技ブロック110Aにおける遊技プログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられる。なお、ワークRAM113は、遊技用マイクロコンピュータ110の端子群の一つに割り当てられた専用の端子を用いてバッテリバックアップ機能を付与できるようになっており、遊技機10の電源オフ後もその記憶内容を保持する。また、ワークRAM113は、そのチップイネーブルの禁止及び許可が、図示しないプロテクト回路によってコントロールされるようになっており、チップイネーブルの禁止状態中(遊技機10への電源非供給時)は読み出しおよび書き込みのいずれも行うことができない。
外部バスインターフェース114は、外部デバイスとの間で、メモリリクエスト信号、入出力リクエスト信号、メモリ書込信号又はメモリ読出信号及びモード信号等の各種信号の入出力制御を行うための回路である。バス切換え回路115は、図示しない外部バスとチップ内部の上記CPUバス126との間で、アドレス信号およびデータ信号の入出力を可能にするためバスの切換えを行う回路である。例えば、メモリリクエスト信号MREQ又は入出力リクエスト信号IORQをアクティブにした状態でメモリ書込み信号WRをアクティブにすると、所定の外部I/Oに外部データ信号を書き込むことができ、メモリ読出し信号RDをアクティブにすると、所定の外部I/Oから外部データ信号を取り込むことができるようになる。
復号化・ROM書込み回路116は、暗号化されて送られて来たデータを復号したり電気的に書込み可能なプログラムROM112やHWパラメータROM125の書込みに必要な電圧を生成したりタイミングを制御したりする回路である。例えば、モード信号MODEをアクティブにした状態で、外部アドレス信号を順次インクリメントしながら外部データ信号を外から与えると、プログラムROM112への書込モードとなって遊技機の製造メーカ又は第三者機関による遊技プログラムの書き込みが可能になる。ただし、プログラムROM112への遊技プログラムの書き込みが終了後に、後述のHWパラメータROM125の所定領域に書込終了コードを記録すると、それ以降はプログラムROM112への遊技プログラムの書き込みができないようになる。
ミラードRAM117は、クロックの立ち下がり時にユーザワークエリアに記憶された情報を複製した情報を記憶する(CPUコアがZ80の場合には、クロックの立ち上がり時に処理を実行するため、同期して動くことがないようにしている)。
割込制御回路118は、外部からの割込み要求信号に応答してCPUコア111に対して割込み要求を行ったり、チップ内部の回路(例えば乱数生成回路)に対して制御信号を送ったりする回路である。また、リセット割込制御回路120は、外部から入力されるリセット信号に応答してCPUコア111をシステムリセットするとともに、遊技用マイクロコンピュータ110の内部の各種リソースを初期状態に設定する信号を生成する回路である。
ブートブロック119は、ブートプログラムを格納するROMを備え、遊技用マイクロコンピュータ110のシステムリセット時にこのブートプログラムが立ち上がって、所定の簡易チェックを行う。そして、ブートROMが正常であれば、プロテクト設定処理を実行した後、遊技プログラムの所定アドレス(CPU111のアドレス空間内における所定アドレス(一般に当該アドレス空間の先頭番地0000h))に処理を渡す。
アドレスデコーダ121は、CPUバス126のアドレス情報をデコードして、そのデコード結果に応じて、出力制御回路122を制御する。クロックジェネレータ123は、外部から供給されるシステムクロックMCLKに基づいて、CPUコア111を含む遊技用マイクロコンピュータ110内の各ブロックに供給する動作クロックやタイマ割込み用のクロック、カウンタ更新用のクロックなどを生成する。システムクロックMCLKとは別に乱数更新用のクロックEXCLKを受けるように構成しても良い。
乱数生成回路124は、大当りの判定等に使用される乱数を生成する回路であり、従来の遊技用マイクロコンピュータでは、外付けの回路として構成されていたものを内蔵するとともに、特有の機能を追加したものである。本実施形態においては、乱数生成回路124には、特図変動表示ゲームの結果が大当りとなる場合に停止図柄を決定するための大当り図柄乱数等を生成する第1乱数生成回路と、特図変動表示ゲームの結果を大当りとするか否かを決定するための大当り乱数を生成する第2乱数生成回路とが含まれる。これらの乱数生成回路については、図6〜図9を用いて後に詳しく説明する。
HWパラメータROM125は、プログラムROM112へのプログラムの書き込みを禁止するための前記書込終了コードを記録したり、ユーザーシステム(ハードウェア)に特有のパラメータを設定できるようにするためのもので、電気的に書き込み可能なメモリ(例えばEPROM,EEPROM,フラッシュメモリ等)により構成されている。
管理ブロック110Bは、管理用プログラムROM131、管理用ワークRAM132、バスモニタ回路133、IDプロパティメモリ134、管理用制御回路135、外部通信制御回路136及びこれらの回路ブロック間を接続するローカルバス137を含むとともに、バスモニタ回路133がローカルバス137と遊技制御ブロック110AのCPUバス126の両方に接続されることにより、CPUバス126を介してCPUコア111との間でデータの送受信が行えるように構成されている。
管理用ワークRAM132は、バスモニタ回路133を介して読み込まれた遊技制御ブロック110Aの情報を一時的に保持するための記憶領域として使用される。バスモニタ回路133は、CPUバス126の状態を監視し、CPUバス126がCPUコア111によって使用されていないときは、必要に応じてCPUバス126を介して遊技制御ブロック110AのプログラムROM112やユーザワークRAM113等をアクセスし、所要のデータ(遊技プログラムやユーザワークRAM113の内容等)を管理ブロック113Bに取り込む。
IDプロパティメモリ134には、遊技用マイクロコンピュータ110の識別や正当性の判定のために使用する固有ID(固有情報)が書き込まれており、この固有IDは、バス137および外部通信制御回路136を介して遊技機外部の管理装置(ホールコンピュータ)で読み取ることができる。これによって、管理装置で遊技機の固有IDを監視することができる。具体的には、予め遊技機に設定された固有IDと、管理装置によって読み取られた固有IDとが一致しない場合は、管理装置は、各種信号の入出力を不可能にする。すると、遊技制御装置100に接続された各種装置(例えば、大入賞口ソレノイド58b及び普通変動入賞口ソレノイド57c)や従属制御装置とCPUコア111との信号の入出力が不可能となり、例えば、スイッチが操作できなくなったり、装飾用ランプが点灯しなかったりして、遊技機に異常が発生したことが明確となる。
また、IDプロパティメモリ134には、この固有IDに加えて、遊技種別コード、ランクコード、メーカ番号、機種コード及び検査番号等の各情報が書き込まれている。なお、遊技種別コードは、パチンコ遊技機やスロットルマシン等を区別するための情報であって、例えば、パチンコ遊技機の場合は“P”、スロットルマシンの場合は“G”で表される。ランクコードは、遊技機1の機種ランクコード(第1種、第2種等を区別するためのコード)、メーカ番号当該遊技機1の製造メーカを識別するためのメーカID(又はメーカコード)である。機種コードは、製造メーカが設定する当該遊技機1の製品コードである。検査番号(又は検定コード)は、第三者機関による検査に合格した遊技機1に付与される番号である。
さらに、IDプロパティメモリ134には、ROMとRAMが内蔵され、ROMの内容がRAMコピーされる。つまり、固有ID、遊技種別コード、ランクコード、メーカ番号、機種コード及び検査番号がROMに格納されていてそれらがRAMにコピーされる。コピーのタイミングは、遊技機の電源投入時又は遊技用マイクロコンピュータ110のシステムリセット時であって、例えば、システムリセット直後に管理ブロック110Bで実行される初期化処理の中で行うようにされる。
制御回路135は、管理ブロック110Bの動作を制御するもので、バッファメモリを有している。制御回路135は、例えば、バスモニタ回路133を介してCPUコア11の動作を監視し、非動作中に遊技ブロック110AのユーザワークRAM113に記憶された内容をミラードRAM117へコピーする。また、検査装置からの要求に応答して管理ブロック110BのIDプロパティメモリ134の内容を外部へ転送したり、プログラム要求に応答してバスモニタ回路133を介してユーザプログラムROM112内のプログラムを外部へ転送したりする。バッファメモリは、転送時のタイミング調節のために用いられる。
外部通信制御回路136は、遊技機の外部に設けられた情報収集端末装置やID検査装置と通信を行う。例えば、情報収集端末装置が接続されている場合は、その情報収集端末装置からの要求に応答して、管理用ワークRAM132やIDプロパティメモリ134の記憶内容を要求元の情報収集端末装置に転送し、ID検査装置が接続されている場合は、そのID検査装置からの要求に応答して、少なくともIDプロパティメモリ134に記憶されている固有IDの情報を要求元のID検査装置に転送する。
次に、本発明の実施形態の遊技用マイクロコンピュータ110における乱数生成回路124について詳細に説明する。前述したように、乱数生成回路124は、大当り図柄乱数等を生成する第1乱数生成回路124Aと大当り乱数を生成する第2乱数生成回路124Bとを有する。
図6は、第1乱数生成回路124Aのブロック図である。第1乱数生成回路(第1乱数生成手段)124Aは、乱数更新コントローラ608a、第1乱数用レジスタ群608b、第2乱数用レジスタ群608c、第3乱数用レジスタ群608d、及び第4乱数用レジスタ群608e等により構成される。
乱数更新コントローラ(更新制御手段)608aは、遊技制御の実行過程において用いる乱数の生成のための演算処理を行うもので、カウンタ方式または生成多項式等を用いて一様性乱数を生成する数学的手法(例えば、M系列法あるいは合同法等)を利用して乱数を生成する。また、乱数更新コントローラ608aには、リセット割込み制御回路120からの割込み信号、クロックジェネレータ123を構成する信号発生手段としてのCTC(Counter/Timer Circuit)回路232および分周回路231からの信号(CTC2,φ1)が入力可能となっている。
なお、特に限定されるものではないが、本実施例の第1乱数生成回路124Aは、後述のように、クロックジェネレータ123内のCTC回路232からの信号CTC2の入力とCPU111による乱数更新トリガレジスタ(608b3)への設定のいずれによっても乱数の更新処理が行なえるように構成されている。また、第1乱数生成回路124Aは、後述のように、カウンタ方式すなわちカウンタ値を−1ずつ更新することで乱数を生成するモードと、M系列乱数を生成するモードのいずれかを選択できるように構成されている。
第1乱数用レジスタ群608bは、CTC更新許可レジスタ608b1、タップ設定レジスタ608b2、乱数更新トリガレジスタ608b3、最大値設定レジスタ(範囲情報記憶手段)608b4、スタート値設定レジスタ608b5、一周完了報知レジスタ608b6、乱数カウンタ(乱数値記憶手段)608b7、ワークエリア(更新手段)608b8、及び乱数更新中報知レジスタ(更新中情報記憶手段)608b9、更新エラー報知レジスタ608b10、乱数回路リセットレジスタ608b11、乱数カウンタ608b7の周回数を計数する周回カウンタ608b12、分周信号φ1の入力回数を計数する回数カウンタ608b13などにより構成される。
なお、第2乱数用レジスタ群608c、第3乱数用レジスタ群608d、及び第4乱数用レジスタ群608eに関しては、第1乱数用レジスタ群608bと同様の構成を有するため説明は省略する。複数の乱数用レジスタ群を備えることにより、大当り停止図柄を決定する大当り図柄乱数、特図変動表示ゲームにおける変動パターン決定する変動パターン乱数、普図変動表示ゲームにおいて当りを発生させるか否かを決定する当り乱数など、遊技制御で使用する複数の乱数を並行して生成することができる。
CTC更新許可レジスタ608b1は、乱数カウンタ608b7の自動更新を許可/不可の何れかに設定するものであり、「許可」に設定されていれば、CTC回路232からの信号CTC2をトリガにして乱数カウンタ608b7が更新されることとなる。
タップ設定レジスタ608b2は、「カウンタモード」の場合において、乱数カウンタ608b7を作動させるものであり、電源投入時は「0」となっており、このとき、乱数カウンタ608b7は作動しないようになっている。そして、タップ設定レジスタ608b2に「0」以外の値が書き込まれることによって、乱数カウンタ608b7が作動するようになっている。また、「乱数モード」の場合、タップ設定レジスタ608b2に書き込まれた値によって、M系列の漸化式の種類が決定される。従って、タップ設定レジスタ608b2が乱数値の更新を開始するか否かを示す起動情報を記憶する起動情報記憶手段として機能する。
乱数更新トリガレジスタ608b3は、CPUコア111から直接書込みが可能なレジスタであり、CPUコア111が例えば割込み処理で所定値を書き込むと、乱数更新コントローラ608aがそれを認知して乱数カウンタ608b7のカウンタ値を更新するように構成されている。なお、このとき、CTC更新許可レジスタ608b1の設定が「許可」/「不可」の何れの場合でも乱数カウンタ608b7が更新される。従って、乱数更新トリガレジスタ608b3が乱数値の更新を指示する更新指示記憶手段として機能する。
最大値設定レジスタ608b4は、乱数カウンタ608b7の最大値とモードを設定するものである。最大値は8以上4095以下の値に設定される。また、モードは「乱数モード」か「カウンタモード」の何れかに設定される。そして、設定された最大値をNとした場合、「乱数モード」において乱数カウンタ608b7は1〜Nの範囲で更新され、「カウンタモード」において乱数カウンタ608b7は0〜Nの範囲で更新される。従って、最大値設定レジスタ608b4が第1乱数生成回路124Aの更新範囲情報を記憶する範囲情報記憶手段として機能する。
スタート値設定レジスタ608b5は、乱数カウンタ608b7の更新スタート値(開始値)を設定するものである。乱数カウンタ608b7が所定の周期を1周したときに、乱数更新コントローラ608aによってこのスタート値が乱数カウンタ608b7に設定される。具体的には、例えば、最大値設定レジスタ608b4において設定された最大値Nよりも大きな値をスタート値Sとして設定した場合には、乱数カウンタ608b7が所定の周期を1周したときに最大値Nをスタート値Sで除した際の余り値が乱数カウンタ608b7に設定される。従って、スタート値設定レジスタ608b5が乱数値の開始値を記憶する開始値記憶手段として機能し、乱数更新コントローラ608aが開始値設定手段として機能する。
一周完了報知レジスタ608b6は、乱数カウンタ608b7が所定の周期を1周したことを報知するものであり、CPUコア111がスタート値設定レジスタ608b5にスタート値を設定するとオンに設定され、オンに設定された後、乱数カウンタ608b7が所定の周期を1周すると、オフに設定される。そして、周回カウンタ608b12が、乱数カウンタ608b7の周回数を計数する。
乱数カウンタ608b7は、12次(12ビット)の乱数列で構成され、タップ設定レジスタ608b2に所定の値が書き込まれるまでは、データを設定して乱数の電源投入時におけるスタート値を変更することができる。故に、乱数カウンタ608b7の範囲は、「乱数モード」であれば1〜4095の間の値を取りうることになり、「カウンタモード」であれば、0〜4095の間の値をとり得ることになる。また、「乱数モード」では、カウンタ値が一周するまで、同じ乱数値が生成されないようになっている。
ワークエリア608b8は、乱数カウンタ608b7の更新用バッファとして機能するものであり、ワークエリア608b8で乱数の更新がなされ更新された値が乱数カウンタ608b7に格納される。従って、ワークエリア608b8が乱数の更新手段として機能し、乱数カウンタ608b7が乱数値記憶手段として機能する。ワークエリア608b8はCPUからの読込みが不能なレジスタとされ、これにより誤って更新中の不確定な値がCPUに取り込まれるのを防止することができる。なお、停電時には停電直前の値がワークエリア608b8に保持される。
ワークエリア608b8の値は、CTC回路232からの信号や乱数更新トリガレジスタ608b3の書込みにより乱数の更新が指令されると、最大値設定レジスタ608b4で示される範囲の値となるまで更新され続ける。そして、このワークエリア608b8の値が更新されている間は、「乱数モード」であっても「カウンタモード」であっても、乱数カウンタ608b7には「0」が設定される。従って「乱数モード」の場合には、更新範囲内の数値(1〜N)に属しない「0」が乱数カウンタ608b7に設定されていると、乱数カウンタ608b7が更新中であることが示される。また、「カウンタモード」ではワークエリア608b8でダウンカウント方式によりカウント値を更新する。アップカウント方式によりカウント値を更新するように構成しても良い。
乱数更新中報知レジスタ608b9は、乱数が更新中であることを報知するものであり、信号発生手段としてのCTC回路232や乱数更新トリガレジスタ608b3により乱数カウンタ608b7が更新されている間はオンに設定され、更新中でなければオフに設定される。従って、乱数更新中報知レジスタ608b9が乱数値を更新中であるか否かを示す更新中情報が記憶される更新中情報記憶手段として機能する。
更新エラー報知レジスタ608b10は、乱数カウンタ608b7の値が更新されなかった場合に、乱数更新コントローラ608aによってエラーを示す値が設定され、CPU111がこのレジスタの値を読み込むことで乱数更新エラーが発生しているか否か知ることができるようになっている。従って、更新エラー報知レジスタ608b10が乱数生成回路608の異常情報記憶手段として機能する。更新エラーすなわちワークエリア608b8の値が更新されたか否かは乱数更新コントローラ608aによって判定することができる。
乱数回路リセットレジスタ608b11は、乱数更新エラーが発生した場合に乱数生成回路608を外部からリセットするためのもので、CPU111がこのレジスタに所定の値を書き込むと、乱数更新コントローラ608aはリセット指令があったと判定して回路内部をリセット状態にする。回数カウンタ608b13は、分周信号φ1の入力回数を計数する。
クロックジェネレータ123は、CTC回路232と分周回路231とを備えており、分周回路231は、外部(発振回路)から入力された原クロック信号MCLKを分周し、原クロック信号の周期の2倍の周期のクロック信号φ1を生成して乱数コントローラ608aへ動作クロックとして供給するとともに、原クロック信号MCLKよりも周期の長いクロック信号φ2を生成しCTC回路232に入力する。
CTC回路232は、分周回路231からのクロック信号φ2に基づいて、CPU111に対して所定周期(例えば、2ミリ秒)のタイマ割込み信号(CTC1)および乱数コントローラ608aへ供給する乱数更新のトリガを与える信号CTC2を発生する。従って、CTC回路232は乱数更新のトリガを与える信号の発生手段として機能する。なお、CTC回路232は、発生する信号CTC1,CTC2の周期を自由に設定できるように構成されている。
次に、乱数更新コントローラ608aによる第1乱数生成回路124A内の制御の手順について説明する。図7には、乱数更新コントローラによる処理の前半部分のフローチャートが、また図8には乱数更新コントローラによる処理の後半部分のフローチャートが示されている。
乱数更新コントローラ608aは、まず、リセット割込み制御回路120によるリセット割込信号に基づき、ワークエリア608b8に記憶された値を除いて、他の記憶領域やレジスタに記憶されている値を初期化する(ステップS101)。また、このとき、周回カウンタ608b12の値を「0」に設定する。次に、ワークエリア608b8に記憶された乱数カウンタの値を乱数カウンタ608b7に取り込む(ステップS102)。続いて、乱数カウンタ608b7の変更を許可し(ステップS103)、タップ設定レジスタ608b2の設定を待つ(ステップS104)。
その後、乱数更新コントローラ608aは、乱数カウンタ608b7の変更を禁止し(ステップS105)、このときの乱数カウンタ608b7の値をワークエリア608b8に記憶し(ステップS106)、回数カウンタ608b13を「0」に設定する(ステップS107)。なお、乱数カウンタ608b7の変更が禁止されるまでの間は、CPUコア111(図5)によって乱数カウンタ608b7に任意の値を書き込むことが可能である。
次に、CTC回路232によるCTC信号(CTC2)が発生(検出)したか否かを判定する(ステップS108)。このCTC回路232によるCTC信号が発生したか否かの判定(ステップS108)において、CTC回路232によるCTC信号が発生した場合(Yes)は、CTC使用モードか否か、具体的には、CTC更新許可レジスタ608b1が「許可」に設定されているか否かの判定(ステップS109)を行う。
そして、このCTC使用モードか否かの判定(ステップS109)において、CTC使用モードの場合(Yes)は、ステップS111へ進む。一方、このCTC使用モードか否かの判定(ステップS109)において、CTC使用モードでない場合、すなわち、CTC更新許可レジスタ608b1が「不可」に設定されている場合(No)は、乱数更新トリガレジスタ608b3に指定値が書き込まれているか否かの判定(ステップS110)を行う。
また、CTC回路232によるCTC信号が発生したか否かの判定(ステップS108)において、CTC回路232によるCTC信号が発生していない場合(No)は、乱数更新トリガレジスタ608b3に指定値が書き込まれているか否かの判定(ステップS110)を行う。この判定(ステップS110)において、乱数更新トリガレジスタ608b3に指定値が書き込まれている場合(Yes)は、ステップS111へ進む。一方、ステップS110の判定において、乱数更新トリガレジスタ608b3に指定値が書き込まれていないと判定した場合(No)は、ステップS108へ戻る。
次に、乱数更新中報知レジスタ608b9をオンに設定する(ステップS111)とともに、乱数カウンタ608b7の値を「0」に設定し(ステップS112)し、分周回路231からの分周信号φ1の入力を待つ(ステップS113)。それから、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)を行う。この判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「カウンタモード」の場合、ワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)を行う。
そして、ワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)において、ワークエリア608b8の値が「0」の場合(No)は、ワークエリア608b8の値を最大値に設定する(ステップS116)。一方、このワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)において、ワークエリア608b8の値が「0」より大きい(Yes)と判定した場合は、ワークエリア608b8の値を1デクリメントする(ステップS117)。
次に、周回カウンタ608b12の値を1インクリメントし(ステップS118)、周回カウンタの値が乱数カウンタの最大値に1足した値以上か否かの判定を行う(ステップS119)。そして、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上の場合(ステップS119;Yes)は、周回カウンタの値を「0」に設定する(ステップS120)。一方、この周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上か否かの判定(ステップS119)において、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上でない場合(ステップS119;No)は、ステップS134へ進む。
次に、スタート値設定レジスタ608b5において乱数更新のスタート値の取得及び最大値以下にする補正を行う(ステップS121)。具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合には、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。そして、ワークエリア608b8にスタート値を取り込み(ステップS122)、一周完了報知レジスタ608b6をオンに設定する(ステップS123)。
次に、回数カウンタ608b13の値が規定値に達したか否かの判定を行う(ステップS134)。ここで、規定値(規定更新時間)は、例えば、「カウンタモード」の場合は規定値が「2」、「乱数モード」の場合であって最大値が「17」以上の場合は規定値が「20」、「乱数モード」の場合であって最大値が「16」以下の場合は規定値が「200」に設定される。これらの規定値(規定更新時間)のデータは、遊技用マイクロコンピュータ110のROM112に予め記憶されている。
従って、乱数カウンタ608b7の更新が開始されると、分周回路231から乱数更新コントローラ608aへ分周信号入力ごとに乱数を更新するのではなく、入力される分周信号が所定回数検出されるまでは、乱数カウンタ608b7を更新しないことになり、さらに、その検出回数がある程度のまとまった数に固定されることになる。言い換えれば、「カウンタモード」の場合は、乱数カウンタ608b7を更新するために、分周信号が2回発生する時間(規定更新時間)を要することになる。また、「乱数モード」の場合であって乱数カウンタの最大値が「17」以上の場合は、乱数カウンタ608b7を更新するために、分周信号が20回発生する時間を要することになり、「乱数モード」の場合であって乱数カウンタの最大値が「16」以下の場合は、乱数カウンタ608b7を更新するために、分周信号が200回発生する時間を要することになる。
回数カウンタ608b13の値が規定値に達したか否かの判定(ステップS134)において、回数カウンタの値が規定値に達していない場合(No)は、分周信号を待ち(ステップs137)、回数カウンタの値を1インクリメントして(ステップS138)、ステップS134へ戻る。一方、回数カウンタの値が規定値に達したか否かの判定(ステップS134)において、回数カウンタの値が規定値に達した場合(Yes)は、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS135)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS136)、ステップS107に戻る。
また、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「乱数モード」の場合、ステップS124へ進む。そして、ワークエリア608b8にてM系列乱数を更新し(ステップS124)、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きいか否かの判定を行う(ステップS125)。
この判定(ステップS125)において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きい場合(Yes)は、分周信号を検出したか否かの判定(ステップS126)を行う。そして、この判定(ステップS126)において、分周信号を検出した場合(Yes)は、回数カウンタ608b13の値を1インクリメントし(ステップS127)、ステップS124へ戻る。一方、この分周信号を検出したか否かの判定(ステップS126)において、分周信号を検出していない場合(No)は、ステップS124へ戻る。
また、ステップS125の判定において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きくない場合(ステップS125;No)は、周回カウンタ608b12の値を1インクリメントし(ステップS128)、周回カウンタの値が最大値以上か否かの判定を行う(ステップS129)。この判定(ステップS129)において、周回カウンタの値が最大値以上の場合(Yes)は、周回カウンタの値を「0」に設定する(ステップS130)。一方、周回カウンタの値が最大値以上か否かの判定(ステップS129)において、周回カウンタの値が最大値以上でない場合(No)は、ステップS134へ進む。
次に、スタート値設定レジスタ608b5においてスタート値の取得及び最大値以下にする補正を行う(ステップS131)。具体的には、このとき、最大値よりも取得したスタート値の方が大きいため、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。そして、ワークエリア608b8にスタート値を取り込み(ステップS132)、一周完了報知レジスタ608b6をオンに設定し(ステップS133)、ステップS134へ進む。そして、この判定(ステップS134)において、回数カウンタ608b13の値が規定値に達した(Yes)と判定した場合は、前述したように、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS135)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS136)、ステップS107に戻る。
なお、図7および図8には示されていないが、乱数更新コントローラ608aは、乱数更新処理後に乱数カウンタ608b7の値をチェックして、更新がされていない場合には更新エラーと判定して、更新エラー報知レジスタ608b10にエラーが発生したことを示す値を設定するように構成されている。
次に、図9を用いて、本実施例の遊技用マイクロコンピュータ110に内蔵されている乱数生成回路124を構成する第2乱数生成回路124Bについて説明する。
第2乱数生成回路124Bはクロックジェネレータ123内のシステムクロックMCLKを分周する分周回路231から供給されるクロックφ1と、CTC(カウンタ・タイマ・サーキット)回路232から供給される信号CTC2とにより動作する。クロックジェネレータ123の構成は、図6のクロックジェネレータ123と同一であるので、説明を省略する。
第2乱数生成回路124Bは、該乱数生成回路全体を制御する乱数更新コントローラ240と、CPUバス126を介してCPUコア111によって乱数の初期値が設定される第2乱数初期値設定レジスタ241と、第2乱数回路起動レジスタ242および第2乱数カウンタ243を備える。第2乱数回路起動レジスタ242にCPUコア111によって所定の値が設定されると、乱数更新コントローラ240が乱数生成の制御を開始するように構成されている。また、第2乱数カウンタ243はバイナリカウンタからなり、その計数範囲は、HWパラメータROMに所定の値を設定することで計数上限値を8ビット(FFh)から16ビット(FFFFh)の範囲で選択することができるように構成されている。第1乱数生成回路124Aと同様に、最大値設定レジスタを設けるようにしても良い。複数種類の乱数が必要な場合は、複数の第2乱数カウンタ243を設けるとともに、第2乱数初期値設定レジスタ241には乱数カウンタ毎に異なる初期値を設定するように構成することができる。
さらに、第2乱数生成回路124Bは、前記第2乱数カウンタ243の値を取り込んで保持する3個の第2乱数ラッチレジスタ245,247,249と、始動入賞検出信号を擬似的に発生させてこれらのラッチレジスタへ第2乱数カウンタ243の値をラッチさせるトリガ信号を生成する第2乱数ラッチレジスタトリガ回路244,246,248を備える。第2乱数ラッチレジスタトリガ回路244,246,248は、レジスタによって構成することができる。第2乱数ラッチレジスタ245,247,249は、通常は乱数更新コントローラ240が生成するラッチ信号に基づいて第2乱数カウンタ243の値をラッチするが、CPUコア111が第2乱数ラッチレジスタトリガ回路244,246,248に所定の値を設定した場合にも、ラッチトリガ信号が生成されて、第2乱数ラッチレジスタ245,247,249に第2乱数カウンタ243の値がラッチされる。
この実施例においては、図10に示すように、上記分周回路231で分周されたクロックφ1(CTC回路232からの信号CTC2)の立ち上がりによって第2乱数カウンタ243を更新させる一方、クロックφ1(CTC2)の反転信号すなわち位相が180°異なるクロック/φ1(または/CTC2)をラッチタイミング信号とすることによって、第2乱数カウンタ243の値が変化するタイミングでカウンタ値のラッチ動作がなされないようにしている。
乱数更新コントローラ240には、割込みコントローラ118からのラッチ信号LAT0,LAT1,LAT2が入力されており、ラッチ信号LAT0,LAT1,LAT2の入力に基づいて第2乱数ラッチレジスタ245,247,249へカウンタをラッチさせるための制御信号を生成する。この実施例では、割込みコントローラ118に特図始動スイッチ56aと57bからの始動入賞検出信号DET0,DET1が入力されており、始動入賞が検出される度に第2乱数カウンタ243の値が第2乱数ラッチレジスタ245,247のいずれかにラッチされる。
具体的には、割込みコントローラ118は、第2乱数カウンタ243に供給されるクロック信号にて256個のクロック(25.6μs:EXCLK又はMCLK=20MHz入力時)にわたって連続して始動入賞検出信号DETを検出したタイミングで乱数更新コントローラ240にラッチ信号LATを出力する。そして、乱数更新コントローラ240はラッチ信号LATが入力されたタイミングでカウンタ値をラッチするのではなく、ラッチ信号LATが入力された直後のクロック信号の立ち上がりで第2乱数ラッチレジスタ245,247,249のうちいずれか対応するレジスタにカウンタ値をラッチさせる。
特に限定されるものではないが、この実施例では、DET0(LAT0)には始動口スイッチ1の信号が入力され、該信号が入力されると第2乱数ラッチレジスタ245にカウンタ値がラッチされる。DET1(LAT1)には始動口スイッチ2の信号が入力され、該信号が入力されると第2乱数ラッチレジスタ247にカウンタ値がラッチされるようにしている。割込みコントローラ118の3つの入力のうちひとつDET2(LAT2)および第2乱数ラッチレジスタ249は、遊技領域に3個の始動入賞口が設けられる遊技機に対応できるようにするため設けられており、この実施例の遊技機においては予備として扱われる。
なお、割込みコントローラの代わりに、外部から書き込み可能なコントロールレジスタを設けて、コントロールレジスタへの書込みに応じてカウンタ値のラッチ信号を生成するように構成しても良い。また、コントロールレジスタを設けた場合には、始動入賞検出信号DET0,DET1によってコントロールレジスタの所定のビットをセットし、それによって割込みコントローラ118に割込み信号が入力され、割込みコントローラ118によって上記と同様な制御を行うように構成しても良い。
さらに、上記第2乱数生成回路124Bは、CPUコア111に対して第2乱数生成回路124Bの内部の状態を知らせるための第2乱数ステータスレジスタ250と、第2乱数生成回路124Bを初期化させる第2乱数回路初期化レジスタ251を備える。第2乱数ステータスレジスタ250には、第2乱数ラッチレジスタ245,247,249へのカウンタ値のラッチを許可または禁止するラッチ許可フラグが設けられており、このフラグをセットすることによってカウンタ値のラッチを許可し、フラグをクリアすることによってラッチを禁止できる。
この実施例では、上記ラッチ許可フラグは、各第2乱数ラッチレジスタ245,247,249に対応してそれぞれ設けられており、レジスタごとにラッチの許可/禁止を制御できるように構成されている。なお、第2乱数ステータスレジスタ250は、乱数更新コントローラ240によって書き換えが行われ、CPUコア111はリードのみ可能でライトは行えないようになっている。これにより、プログラムを書き換えてCPUによって不正な乱数値を取得させるような不正行為を防止することができる。
図11には、乱数更新コントローラ240によるラッチレジスタへのカウンタ値の保持制御(ラッチ制御)手順が示されている。この制御では、先ずラッチ信号LAT0,LAT1,LAT2のいずれかが入力されているか否かを判定し(ステップS141)、ラッチ信号LAT0,LAT1,LAT2のいずれかが入力されている場合には、第2乱数ステータスレジスタ250のラッチ許可フラグがセットされているか判定する(ステップS142)。ラッチ信号の入力がない場合あるいはラッチ信号があってもラッチ許可フラグがセットされていない場合には当該制御を終了し、ステップS142でラッチ許可フラグがセットされていると判定すると、第2乱数カウンタ243よりカウンタの値を読み出して対応する第2乱数ラッチレジスタ(245,247,249のいずれか)に格納する(ステップS143,S144)。続いて、第2乱数ステータスレジスタ250の対応するラッチ許可フラグを禁止状態にして当該制御を終了する(ステップS145)。
図12には、乱数更新コントローラ240によるラッチデータ読込み時の制御手順が示されている。この制御では、先ずCPUコア111による第2乱数ラッチレジスタ(245,247,249のいずれか)のデータ読込みがあったか否かを判定し(ステップS151)、データ(カウンタ値)の読込みがあった場合には、当該第2乱数ラッチレジスタのデータをクリアし、第2乱数ステータスレジスタ250の対応するラッチ許可フラグを許可状態にセットして当該制御を終了する(ステップS152,S153)。第2乱数ラッチレジスタのデータを読み込んでからクリアしてラッチ許可フラグを許可状態にセットすることにより、回路の故障等何らかの不具合で第2乱数ラッチレジスタへのカウンタ値のラッチが行われなくなった場合にも、取得済みのカウンタ値を重複して取得するおそれがなくなる。これにより、直前に第2乱数ラッチレジスタに保持されていた値が大当りに相当するものであった場合に、続けて大当りが発生するのを防止することができる。
この実施例では、上記乱数更新コントローラ240による第2乱数ラッチレジスタへのカウンタ値のラッチは、外部からの始動入賞検出信号DET0,DET1によって行なわれる。一方、始動入賞検出信号DET0またはDET1がマイクロコンピュータに入力されると、CPUコア111は、そのプログラム処理によって所定の条件が成立した場合に、第2乱数ラッチレジスタ245または247のデータ(カウンタ値)を大当り判定用の乱数値として読み込む。そして、カウンタの値が第2乱数ラッチレジスタにラッチされてからCPUにより読み込まれるまでは、第2乱数ステータスレジスタ250のラッチ許可フラグがラッチ禁止状態にされる。
そのため、上記のような制御を行うことによって、仮に乱数更新コントローラ240へ入力されるラッチ信号LAT0,LAT1,LAT2にノイズがのったとしても、誤って第2乱数カウンタ243のカウンタ値が第2乱数ラッチレジスタにラッチされる(上書きされる)ことはなく、CPUが誤ったカウンタ値(乱数値)を読み込むこともない。なお、CPUコア111により読み込まれたデータ(第2乱数)は、遊技用マイコン110内のRAM113の所定の領域に格納される。
また、乱数生成回路が外付け回路として接続されていた従来の遊技制御回路では、遊技者が不正な操作によって本来の始動入賞検出信号と異なるタイミングでラッチ信号を与えると、誤ったカウンタ値(乱数値)がCPUに読み込まれるおそれがあったものが、この実施例では、不正に始動入賞検出信号DET0,DET1を入力してカウンタ値をラッチレジスタにラッチさせたとしても、そのラッチデータはCPUによって読み込まれることはなく、その後、正規に発生した始動入賞検出信号DET0,DET1によってカウンタ値がラッチレジスタにラッチされて、CPUによって読み込まれる。その結果、不正行為による誤った乱数値の取得を困難にすると共に、始動入賞に基づいてラッチされたカウンタ値を確実に遊技制御で使用できるようになる。
次に、上記遊技制御装置100の遊技用マイクロコンピュータ(以下、遊技用マイコンと称する)110によって実行される遊技制御について説明する。
遊技用マイコン110による制御処理は、主に図13および図14に示すメイン処理と、所定時間周期(例えば2msecごと)に行われる図15に示すタイマ割込み処理とからなる。
メイン処理は、電源が投入されることで開始される。このメイン処理においては、図13に示すように、まず、割込み禁止する処理(ステップS1)を行なってから、割込みが発生したときに実行するジャンプ先のベクタアドレスを設定する割込みベクタ設定処理(ステップS2)、割込みが発生したときにレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理(ステップS3)、割込み処理のモードを設定する割込みモード設定処理(ステップS4)を行う。
次に、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)のアクセス許可をし、全出力ポートをオフ(出力が無い状態)に設定する(ステップS5,S6)。その後、電源装置160内のバックアップ用メモリのクリアスイッチ162がオンしているか否か判定する(ステップS7)。ここで、クリアスイッチがオフであれば、ステップS8で、RWM内の停電検査領域のデータをチェックした後、停電復旧か否かおよびチェックサムと呼ばれるデータの正常/異常を調べるためのコードを検査する(ステップS9,S10)。
ステップS9で停電復旧であると判定しステップS10でチェックサムが正常と判定した場合は、ステップS11で、読出し書込み可能なRWMに停電復旧時の初期値を設定してから、遊技枠の状態に係るデータを記憶しているメモリ領域をクリアし、他の制御装置へ停電復旧コマンドを送信する処理(ステップS12,S13)を行なって、図14のステップS17へ移行する。一方、ステップS9で停電復旧でないと判定またはステップS10でチェックサムが異常と判定した場合は、ステップS14で、使用中の読出し書込み可能なRWMをクリアする。それから、RWMに電源投入時の初期値をセーブしてから、他の制御装置へ電源投入コマンドを送信する処理(ステップS15,S16)を行なって、図14のステップS17へ移行する。
また、上記ステップS7で、クリアスイッチがオンと判定した場合は、ステップS14へジャンプして使用中の読出し書込み可能なRWMをクリアし、RWMに電源投入時の初期値をセーブしてから、他の制御装置へ電源投入コマンドを送信する処理(ステップS15,S16)を行なって、図14のステップS17へ移行する。
ステップS17では割込みタイマを起動し、次のステップS18で、乱数生成回路の起動処理を行なって乱数生成回路124を起動させる。具体的には、第1乱数生成回路124A(図6参照)では、CTC更新許可レジスタ608b1への設定、ソフト乱数処理の場合の最大値設定レジスタ608b4への最大値とモードの設定、タップ設定レジスタ608b2への乱数生成回路を起動させるためのコード(指定値)の設定などがCPU111によって行われる。第2乱数生成回路124B(図9参照)では、第2乱数回路起動レジスタ242に回路を起動させるためのコードをセットして第2乱数生成回路124Bを起動させる。
その後、一旦割込みを禁止して(ステップS19)、第1乱数生成回路124Aにより生成される大当り図柄判定用乱数などの乱数の初期値を更新して乱数の時間的な規則性を崩すための初期値乱数更新処理(ステップS20)を行う。それから、割込みを許可して(ステップS21)、停電検査領域のデータをチェックする処理(ステップS22)を行う。そして、停電が発生したか否かの判定(ステップS23)を行い、停電が発生していない場合(No)には、上述の割込みを禁止する処理(ステップS19)に戻り、ステップS20〜S23の処理を繰り返し行う。
一方、ステップS23において、停電が発生していると判定した場合(Yes)は、一旦割込みを禁止する処理(ステップS24)、全出力ポートをオフにする処理(ステップS25)、停電検査領域をクリアする処理(ステップS26)を行う。その後さらに、停電復旧検査領域に停電復旧検査領域チェックデータをセーブする処理(ステップS27)、RWMの電源遮断時のチェックサムを算出する処理(ステップS28)を行なった後、RWMへのアクセスを禁止する処理(ステップS29)を行なってから、遊技機の電源が遮断されるのを待つ。このように、停電復旧検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
次に、図15のタイマ割込み処理について説明する。このタイマ割込み処理は、クロックジェネレータ123内のCTC回路232で生成される周期的なタイマ割込み信号CTC1がCPUコア111に入力されることで、例えば2msごとに開始される。遊技用マイコン110にタイマ割込みが発生すると、図15のタイマ割込み処理が開始される。
タイマ割込み処理が開始されると、まず所定のレジスタに保持されている値をRAMに移すレジスタ退避の処理(ステップS30)を行う。次に、各種センサ(特図始動スイッチ56a、57b、普図始動スイッチ54a、枠開放スイッチ12a、球切れスイッチ41aなど)からの入力を取り込む入力処理(ステップS31)を行う。それから、各種処理でセットされた出力データに基づき、ソレノイド(大入賞口SOL58b、普電SOL57b)等のアクチュエータの駆動制御を行うための出力処理(ステップS32)を行う。遊技球の入賞及び通過を検出するスイッチからの入力は、上記ステップS31の入力処理にて入力ポートの読み込みを2msごとに行い、チャタリングの除去を行った状態を解析し、スイッチのレベル状態が0から1に変化した時にスイッチのオンとする。
さらに、ステップS31の入力処理では、入力ポート状態を取得する際のスイッチの入力に対するチャタリング除去の方法として、1割込み毎に入力ポートよりスイッチのポート状態を読み込み、解析するスイッチのポート状態を摘出し、2割込み分の連続するデータが一致していればその状態を正常なポート状態とする。そして、その状態をレベル状態の確定とし、レベル状態を更新する。データが一致していなければ前回のレベル状態を継続する。また、レベル状態の変化により立ち上がりエッジを更新する。この時、更新した立ち上がりエッジがRAMに記憶される。以上の処理が遊技球の入賞及び通過を検出するスイッチの全てにおいて行われる。
次に、各種処理で送信バッファにセットされたコマンドを演出制御装置150や払出制御装置200等に出力するコマンド送信処理(ステップS33)、乱数更新処理(ステップS34)を行う。この乱数更新処理(ステップS34)では、第1乱数生成回路124A(図6)に設けられている乱数更新トリガレジスタ608b3への更新指令(所定値の書込み)を行う。従って、乱数更新処理(ステップS34)も乱数更新手段の一部を構成することとなる。一方、第2乱数生成回路124B(図9)は、一旦起動されるとCPUからの更新指令を受けずに乱数更新コントローラ240により、更新が行われる。
なお、第1乱数生成回路124Aより生成される特図変動表示ゲームの大当り図柄を判定するための大当り図柄乱数の取込み、および特図変動表示ゲームでの変動パターンを決定するための変動パターン乱数の取込み、第2乱数生成回路124Bにより生成される特図変動表示ゲームの当り/はずれを判定するための大当り判定用乱数の取込みはこのステップには含まれない。大当り判定用乱数、変動パターン乱数および大当り判定用乱数の取込みは、後述の特図ゲーム処理の始動口SW2監視処理(図16)の中で実行される。また、第1乱数生成回路124Aより生成される普図変動表示ゲームの当りはずれを判定するための当り乱数の取込みは、図15の普図ゲーム処理(ステップS37)の中で実行される。
次に、特図始動スイッチ56a、57b、普図始動スイッチ54a、入賞口スイッチ55a…55n、カウントスイッチ58aから正常な信号の入力があるか否かの監視や、エラーの監視を行う入賞口スイッチ/エラー監視処理(ステップS35)を行う。また、特図変動表示ゲームに関する処理を行う特図ゲーム処理(ステップS36)、普図変動表示ゲームに関する処理を行う普図ゲーム処理(ステップS37)を行う。
次に、遊技機10に設けられ、遊技に関する各種情報を表示するセグメントLEDを所望の内容を表示するように駆動するセグメントLED編集処理(ステップS38)を行う。それから、外部の管理装置に出力する信号を出力バッファにセットする外部情報編集処理(ステップS39)を行う。続いて、割込みの終了を宣言する処理(ステップS40)を行い、待避したレジスタのデータを復帰する処理(ステップS41)を行った後、割込みを許可する処理(ステップS42)を行なって、タイマ割込み処理を終了する。
次に、図15のタイマ割込み処理における特図ゲーム処理(ステップS37)の詳細を、図16を用いて説明する。
図16に示すように、特図ゲーム処理では、まず、始動入賞口56および第2の始動入賞口を有する普通変動入賞装置57への入賞(特図始動SW1,SW2)の監視と、入賞検出に基づき各種乱数値の取得および記憶を行う始動口スイッチ監視処理(ステップS361)を実行する。始動口スイッチ監視処理は、始動入賞口56の入賞の監視を行う始動口SW1監視処理(始動口スイッチ1監視処理)と普通変動入賞装置57への入賞の監視を行う始動口SW2監視処理(始動口スイッチ2監視処理)からなる。その後、特別変動入賞装置58内のカウントスイッチ58aからの入力の監視と入力数の計数を行うカウントスイッチ監視処理(ステップS362)を実行する。
次に、特図変動表示ゲームの実行に関する各処理で設定されるゲーム処理タイマがタイムアップしたか否かを判定する(ステップS363)。ここで、ゲーム処理タイマがタイムアップしていないと判定した場合(No)は、特図変動表示ゲームの制御に関する特図変動制御処理(ステップS375)を行って特図ゲーム処理を終了する。また、ゲーム処理タイマがタイムアップしたか否かの判定(ステップS363)において、ゲーム処理タイマがタイムアップしていると判定した場合(Yes)は、ゲームを合理的に進行させるために設けたゲーム処理番号に基づき次に実行する処理を選択するゲーム分岐処理(ステップS364)を行う。
ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「0」であると判定した場合は、特別図柄の変動開始を監視し、特別図柄の変動開始の設定や演出の設定、又は特図普段処理を行うために必要な情報の設定を行う特図普段処理(ステップS365)を行う。また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「1」であると判定した場合は、特図変動表示ゲームの前半変動時間に係る情報の設定を行う特図前半変動開始処理(ステップS366)を行う。
なお、ここで、前半変動時間とは、特図変動表示ゲームの開始からリーチ状態が発生するまでの期間である。一方、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「2」であると判定した場合は、特図変動表示ゲームの後半変動時間に係る情報の設定を行う特図後半変動開始処理(ステップS367)を行う。なお、後半変動時間とは、リーチ状態の発生から特図変動表示ゲームの終了までの期間である。
また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「3」であると判定した場合は、表示装置61で実行される飾り特図変動表示ゲームの変動中の図柄の更新や図柄を仮停止した後に再変動させるなどの制御を行う特図変動中処理(ステップS368)を行う。また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「4」であると判定した場合は、特図変動ゲームにおいて最終的な図柄の停止タイミングを設定したりする特図表示中処理(ステップS369)を行う。
さらに、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「5」であると判定した場合は特別遊技状態(大当り)における効果音や照明ユニット17の発光駆動、所定のインターバル(例えば1秒)を挟んだ特別変動入賞装置58(大入賞口)の複数回の開放動作処理などを行うファンファーレ/インターバル中処理(ステップS370)を行う。
また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「6」であると判定した場合は大入賞口開放中処理(ステップS371)を行う。この大入賞口開放中処理(ステップS371)では、特別遊技状態が最終ラウンドでなければファンファーレ/インターバル中処理(ステップS370)を行うために必要な情報の設定を、また特別遊技状態が最終ラウンドであれば、特別遊技状態の終了画面のコマンドの設定や次の大入賞口残存球処理(ステップS372)を行うために必要な情報の設定を行う。
また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「7」であると判定した場合は、大入賞口を閉鎖した後に大入賞口内に残存する全ての遊技球がカウントスイッチ58aで検出されるまで時間を設定する大入賞口残存球処理(ステップS372)を行う。また、ゲーム分岐処理(ステップS364)において、ゲーム処理番号が「8」であると判定した場合は、特別遊技状態を終了する処理を行うとともに、前記特図普段処理(ステップS365)を行うために必要な情報を設定する大当り終了処理(ステップS373)を行う。
さらに、ゲーム処理番号に基づく上述の各処理を行った後、設定された各種データをセーブするテーブルデータセーブ処理(ステップS374)を行なってから、ゲーム処理タイマの更新などの処理を行う特図変動制御処理(ステップS375)を行なって特図ゲーム処理を終了する。
次に、図15の特図ゲーム処理中の始動口スイッチ監視処理(ステップS361)において実行される始動口SW2監視処理(始動口スイッチ2監視処理)の詳細を、図16を用いて説明する。
始動口SW2監視処理(始動口スイッチ2監視処理)では、まず、普通変動入賞装置57が作動中であるか否か、すなわち普通変動入賞装置57が作動して遊技球の入賞が可能な開状態となっているか否かの判定(ステップS611)を行う。この判定において、普通変動入賞装置が作動中である場合(Yes)は、ステップS613へジャンプして始動口スイッチ2(57b)がオンであるか否かの判定を行う。また、ステップS611において、普通変動入賞装置が作動中でないと判定した場合(No)は、次のステップで不正入賞数が上限値であるか否かの判定(ステップS612)を行う。
なお、上記ステップS613での始動口スイッチの判定では、前述した図14のステップS32の入力処理でRAMに記憶された始動口スイッチに対応する立ち上がりエッジの有無を調べ、更新した立ち上がりエッジが「あり」の時は、スイッチの状態がオンであると判定し、更新した立ち上がりエッジが「なし」の時は、スイッチの状態がオフであると判定する。
普通変動入賞装置57は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。よって、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数するようになっている。
そして、不正入賞数が上限値であるか否かの判定(ステップS612)では、このように計数された不正入賞数が所定の上限値以上であるかが判定される。この判定において、不正入賞数が上限値である場合(Yes)は、始動口SW監視処理を終了する。すなわち、この場合は始動記憶を発生させないようにする。また、ステップS612において、不正入賞数が上限値でないと判定した場合(No)は、ステップS613で、始動口スイッチ2(57b)がオンであるか否かの判定を行う。
ステップS613で始動口スイッチ2がオンでないと判定された場合には、始動口SW2監視処理を終了する。一方、ステップS613で始動口スイッチ2がオンであると判定された場合には、ステップS614へ進んで、普通変動入賞装置57への遊技球の入賞回数を更新する始動口信号出力回数更新処理(ステップS614)を行う。
次に、始動記憶数が上限値であるか否かの判定(ステップS615)が行われ、この判定において、始動記憶数が上限値でない場合(No)は、次のステップS616で始動記憶数をインクリメント(+1)した後、第2乱数生成回路124B内の第2乱数ラッチレジスタ(245,247,249)の値を大当り乱数値として取得しRAM(113)の所定領域に記憶する処理(ステップS617)を行う。
遊技用マイコン110は、上記ステップS617の後、第1乱数生成回路124Aの乱数更新中報知レジスタ608b9を参照し(ステップS618)、乱数更新中か否かを判定する(ステップS619)。ステップS619で乱数更新中(Yes)と判定するとステップS618へ戻る。M系列乱数の更新処理の場合には更新に時間がかかるため、乱数が更新されるのを待つためである。ステップS619で乱数更新中(No)と判定すると、第1乱数生成回路124Aの乱数カウンタ608b7の値を取得し大当り図柄乱数としてRAMに記憶する処理(ステップS620)、変動パターン乱数を取得しRAMに記憶する処理(ステップS621)を行う。さらに、演出制御装置150へ送信する飾り特図始動記憶数コマンドを送信回路に設定する処理(ステップS622)を実行して始動口SW2監視処理を終了する。
また、上記ステップS615の判定で、始動記憶数が上限値であると判定した場合(Yes)、すなわちこれ以上始動記憶を記憶できない場合は、ステップS623へ移行して、第2乱数生成回路124B内の第2乱数ラッチレジスタ(245,247,249)の値を取得すなわち読出しだけ行なって始動口SW2監視処理を終了する。始動記憶数が上限値である場合にも、ラッチレジスタ(245,247,249)の値を取得することで、次に始動入賞が検出されたときに乱数カウンタ243からラッチレジスタ(245,247,249)へのカウンタ値の取込みが可能にされる。第2乱数生成回路124Bは、ラッチレジスタからの乱数値の読み込みをしないと、次のカウンタ値の取得が行えないためである。
また、図16の始動口スイッチ監視処理(ステップS361)では、上記した始動口スイッチ2監視処理に続いて始動口SW1監視処理(始動口スイッチ1監視処理)が実行される。始動口スイッチ1監視処理は始動口スイッチ2監視処理とほぼ同様である。
始動口スイッチ2監視処理と始動口スイッチ1監視処理の差異は、始動口スイッチ1監視処理では図17の始動口スイッチ2監視処理のステップS611の普通変動入賞装置57が作動中であるか否かの判定、ステップS612の不正入賞数が上限値であるか否かの判定を行わないようにし、さらに、ステップ613で、始動口スイッチ2(57b)ではなく始動口スイッチ1(56a)がオンであるか否かの判定を行うようにすることができる。
(第1発明)
次に、第1乱数生成回路124Aおよび第2乱数生成回路124Bを備えた実施形態の遊技制御装置における第1発明に係る大当り乱数値と大当り図柄乱数値の生成の仕方を、図18を用いて説明する。
従来の遊技機においては、遊技制御装置における大当り乱数値や大当り図柄乱数値の生成は、それぞれの発生確率を決定し、その確率や使用するカウンタ回路(バイナリカウンタのビット数)等に応じて乱数の更新範囲を設定しており、各乱数の相関については考慮していなかった。
そのため、例えば大当り乱数の範囲を1〜8、大当り図柄乱数の範囲を0〜9のように設定し、同一のクロックで動作するカウンタを使用して乱数を生成する場合、2種類の乱数の一巡に要する更新回数をそれぞれMとNとすると、2種類の乱数の組み合わせは、MとNの最小公倍数に相当するカウント動作を行った時点で初期状態に戻る。そのため、2つ乱数値の取り得る範囲を上記のように設定した場合には、図18(A)から分かるように、初期状態(例えば1,0)が更新回数20回に1回のように比較的頻繁に現れるとともに、(2,0)(4,0)(6,0)(8,0)(1,1)(1,3)(1,5)(1,7)……のように、現れないものがあるため、乱数の組み合わせに偏りが発生して遊技の一様性が低下してしまうという不具合がある。
そこで、本実施例においては、大当り乱数(第2カウンタ値)の総数は、因数分解した場合の素因数として「2」または「5」を含まない数とし、大当り図柄乱数(第1カウンタ値)は、因数分解した場合の素因数に「2」および「5」を含む数となるように設定するようにした。具体的には、例えば図18(B)に示すように、大当り乱数の範囲を1〜7、大当り図柄乱数の範囲を0〜9のように設定する。つまり、大当り乱数の総数は素因数として「2」または「5」を含まない「7」とし、大当り図柄乱数は素因数に「2」および「5」を含む「10」とするようにした。
上記のような設定を行うことにより、初期状態(例えば1,0)からすべての乱数の組み合わせが出現するまでの間(70回)に、一度出現した乱数の組み合わせは出現しない為、遊技の一様性が低下することを防止することができる。
なお、大当り乱数の総数は「7」に限定されるものでなく、素因数として「2」または「5」を含まない、つまり「3」「7」「11」「13」「17」「19」……の素因数のうち幾つかの素因数の掛け算で表わされる数とすればよい。また、大当り図柄乱数の総数は「10」に限定されるものでなく、素因数として「2」または「5」を含むようにするのがよい。
さらに、最小公倍数を大きくするため、2種類の乱数の総数は互いに同一の素因数を含まないようにする。ここで、大当り図柄乱数の総数は素因数として「2」または「5」を含む数としたのは、百分率に基づいた正確な振り分け(例えば40%とか15%など端数とならない出現率)や抽選が行い易いためである。具体的には、大当り図柄乱数の総数は、「2」のみを素因数として含む数(2、2×2、2×2×2…)、または「5」のみを素因数として含む数(5、5×5、5×5×5…)、あるいは「2」および「5」のみを素因数として含む数(2×5、2×5×2、2×5×5、2×5×2×2…)のように決定するのが良い。
図19には、大当り図柄乱数の範囲を「0000」〜「1001」(10進数で「0」〜「9」)とし、大当り図柄として例えば「0」〜「9」の10種類の数字を使用した場合における大当り図柄乱数と、大当り図柄と、振り分け内容との関係を示す。図19において、「ラウンド数:15R、低確率(時短100回)」とは、発生した大当り遊技において特別変動入賞装置58の開放が15回実行され、大当り遊技終了後には、特図変動表示ゲームにおける確率状態が低確率となり、特図変動表示ゲームの変動時間が通常よりも短い時短制御が100回実行されるようになることを意味している。また、「ラウンド数:15R、高確率(時短∞回)」とは、発生した大当り遊技において特別変動入賞装置58の開放が15回実行され、大当り遊技終了後には、特図変動表示ゲームにおける確率状態が高確率となり、次に大当りが発生するまで時短制御が実行されるようになることを意味している。
図19のような大当り図柄乱数の範囲の設定と振り分けを行うことにより、大当り遊技終了後の確率状態は、低確率が40%で高確率が60%となり百分率に基づいた振り分けや抽選が行い易いことが分かる。その結果、遊技者に例えば確率を報知する場合などに、より正確な報知が可能となる。また、上記のような振り分けを行うことで、大当り図柄乱数は、確率変動状態を発生させるか否かの判定を行うための乱数とみなすことができる。
図20には、大当り乱数を生成する図9の第2乱数生成回路124Bにおける乱数カウンタ243の有効ビット数と、生成可能な乱数の範囲との関係を示す。
乱数生成回路としてのバイナリカウンタの有効ビット数をnとすると、カウンタの計数可能な値は1〜2n−1の2n個(nは正の整数)である。ところで、数学的には、10進数における「2n−1」に相当する数(3,7,15,31……)は、「2」を含まない1つの素因数または2つ以上の素因数の掛け算で表されることが知られている。さらに、図20に示すように、カウンタの有効ビット数nが2の倍数(4,8,12,16……)である場合には、「2n−1」なる数は素因数として「5」を含む。
従って、上記実施例で説明したように、第2乱数生成回路124Bによって素因数として「2」または「5」を含まない大当り乱数を生成する場合には、乱数カウンタ243の有効ビット数nを2の倍数以外の数(図20では2,3,5,6,7,9,10,11,13,14または15)に設定して、「1」〜「2n−1」の範囲のカウンタ値を発生させるようにすれば、図6の第1乱数生成回路124Aのように最大値設定レジスタ608b4を設けずに、素因数として「2」および「5」を含まない大当り乱数を生成することができる。普図変動表示ゲームの当り判定用の乱数や特図変動表示ゲームの変動パターンの判定用乱数についても、大当り図柄乱数と同様な方法で生成することができる。なお、有効ビット数はユーザプログラムROMにHWパラメータとして記憶され、ユーザプログラムの起動開始時に設定される。また、乱数生成回路に有効ビット設定レジスタを設け、ユーザプログラムの中で設定してもよい。
ところで、乱数生成回路の分野では、従来よりM系列乱数ではカウンタ値を「0」からではなく「1」からスタートすることが行われており、カウンタの初期値として「0」をとることがないカウンタをハード的に実現することは困難ではない。
また、上記実施例では、大当り図柄乱数等を、タイマ割込み処理(図15のステップS34)で更新される第1乱数生成回路124Aによって生成し、大当り乱数はタイマ割込み処理に依存せずに更新される生成多項式を用いたM系列方式によってカウンタ値を更新可能な第2乱数生成回路124Bによって生成するようにしたものを説明したが、大当り乱数もタイマ割込み処理で更新される第1乱数生成回路124Aと同様な乱数生成回路によって生成するようにしてもよいし、大当り乱数および大当り図柄乱数を乱数生成回路でなくタイマ割込みによるプログラム処理で生成する、つまりRAM上にカウンタ領域を設けソフトウェアにより乱数の更新を行うように構成することも可能である。なお、第2乱数生成回路によるカウンタ値の更新は、M系列方式に限らず、カウントアップ方式あるいはカウントダウン方式を採用するようにしても良い。
上述したように、本出願には、所定数を更新範囲として第1カウンタ値を循環して更新する第1乱数生成手段と、所定数を更新範囲として第2カウンタ値を循環して更新する第2乱数生成手段と、を備え、前記第1及び第2の乱数生成手段が更新する前記第1及び第2カウンタ値を任意のタイミングで取得し、該取得した前記第1及び第2カウンタ値を乱数として遊技制御に利用する遊技機において、カウンタ値が一巡する間に前記第1乱数生成手段で更新される第1カウンタ値の総数、およびカウンタ値が一巡する間に前記第2乱数生成手段で更新される第2カウンタ値の総数は、互いに共通する素因数を含まない数となるようにした発明が含まれている。
上記のような発明によれば、第1乱数生成手段で更新される第1カウンタ値の総数、および前記第2乱数生成手段で更新される第2カウンタ値の総数は、互いに共通する素因数を含まない数としたので、第1乱数生成手段により生成される第1カウンタ値と第2乱数生成手段により生成される第2カウンタ値との間に相関がなくなり、第1及び第2の乱数カウンタのカウンタ値の取り得る値の組み合わせに偏りが発生しないため、遊技の一様性を確保することができる。
また、前記第2乱数生成手段は、生成多項式を用いたM系列方式によってカウンタ値を更新し、前記第2カウンタ値の更新範囲として、1〜2n−1(n:整数)を設定可能とするようにしてもよい。これにより、M系列方式によって第2カウンタ値を更新することで、第2カウンタ値に偏りが発生することを防止することができる。また、第2カウンタ値の更新範囲として、1〜2n−1(n:整数)を設定することで、第2カウンタ値の総数として「2」を素因数として含まない数を設定することができ、「5」を素因数として含む数を少なくすることができ、「2」又は「5」を素因数として含まない数を第2カウンタ値の総数として設定することができる。
(第2発明)
第2の発明は、タイマ割込み処理で更新される第1乱数生成回路124Aと同様な乱数生成回路を使用するなどして、タイマ割込みによって大当り乱数および大当り図柄乱数等を更新する場合に、乱数の組み合わせに偏りが生じないように乱数の更新を行える乱数生成方法を提供するものである。
第2の発明においては、図21(A)に示すように、例えば大当り図柄乱数として使用する乱数1(第1カウンタ値)の総数をNa、例えば大当り乱数として使用する乱数2(第2カウンタ値)の総数をNb、乱数1の更新間隔をTa(ms)、乱数2の更新間隔をTb(ms)とし、PaをNaと互いに素となる整数(但しPa≦Nb)もしくは「1」、PbをNbと互いに素となる整数(但しPb≦Na)もしくは「1」としたときに、次式、
Tb=kTa
k=Na/PbまたはPa/Na
を満足するように、Na,Nb,Ta,Tb,kを決定するようにしたものである。なお、ここで、互いに素となる整数とは、お互いに割り切ることができないとともに共通の素因数を含まない整数を意味する。
例えばNa=5,Nb=7とした場合、上記条件より、Paは1,2,3,7の中から、Pbは1,2,3,5の中から選択する必要があり、k=Na/PbまたはPa/Nbであればよいので、kは5/1,5/2,5/3,5/5;1/7,2/7,3/7,7/7のいずれかを取り得る。ここで、仮にPa=7,Pb=5を選択した場合には、k=Na/Pb(=Pa/Nb)よりk=1、従って、Ta=Tbとなるように設定すれば良い。
図21(B)に、上記のように設定を行って更新処理をした場合の大当り乱数と大当り図柄乱数との関係を示す。それぞれの乱数の更新間隔Ta、Tbは、Ta=Tbより2msとした。
図21(B)より、この実施例の場合、初期状態(例えば0,0)からすべての乱数の組み合わせが出現するまでの間(35回)に、一度出現した乱数の組み合わせは出現しない為、遊技の一様性が低下することを防止することができることが分かる。
一方、例えばNa=10,Nb=10とした場合、「10」の素因数は「2」と「5」であるため、上記条件より、Paは1,3,7,9の中から、Pbも1,3,7,9の中から選択する必要があるが、k=Na/PbまたはPa/Nbであればよいので、kは10/1,10/3,10/7,10/9;1/10,3/10,7/10,9/10のいずれかを取り得る。ここで、仮にPa=1を選択した場合には、k=Pa/Nbよりk=1/10、従って、Ta=10Tbとなるように設定すれば良い。
図22に、上記のように設定を行って更新処理をした場合の大当り図柄乱数と大当り乱数との関係を示す。それぞれの乱数の更新間隔は、Tb=1msとすると、TaはTa=10Tbより10msとなる。
図22より、初期状態(例えば0,0)は大当り乱数の更新回数100回に1回のように出現する頻度が低くなるとともに、2種類の乱数の取り得るすべて組み合わせが100回に1回ずつ現れ、遊技の一様性が向上するようになることが分かる。
また、例えばNa=10,Nb=5とした場合、「10」と「5」の素因数は「5」であるため、上記条件より、Paは1,2,3,4,6,7,8,9の中から、Pbは1,2,3,4の中から選択する必要があるが、k=Na/PbまたはPa/Nbであればよいので、k=1/10,2/10,3/10,4/10,6/10,7/10,8/10,9/10;5/1,5/2,5/3,5/4のいずれかを取り得る。そこで、例えばPb=4を選択したとすると、k=Na/Pbよりk=10/4=5/2、従って、5Ta=2Tbとなるように設定すればよい。
図23に、上記のように設定を行って更新処理をした場合の大当り図柄乱数と大当り乱数との関係を示す。それぞれの乱数の更新間隔は、Ta=2msとすると、Tbは5Ta=2Tbより5msとなる。つまり、大当り図柄乱数を2msに1回更新したとすると、大当り乱数は5msに1回更新すればよいこととなる。
図23より、この実施例の場合、初期状態(例えば0,0)からすべての乱数の組み合わせが出現するまでの間(50回)に、一度出現した乱数の組み合わせは出現しない為、遊技の一様性が低下することを防止することができることが分かる。
上記のように、kが「1」以外の適当な値をとるとき、すなわち大当り図柄乱数の更新間隔と大当り乱数の更新間隔を異なる値に設定した場合には、大当り図柄乱数の総数Naと大当り乱数の総数Nbが、共通の素因数(図23の例では「5」)を含んでいたとしても、大当り図柄乱数の総数と大当り乱数の総数の積に相当する回数に1回の頻度で初期状態が出現するようにすることができる。なお、大当り乱数および大当り図柄乱数を乱数生成回路でなく、タイマ割込みによるプログラム処理で生成してもよい。つまりRAM上にカウンタ領域を設けソフトウェアにより乱数の更新を行うように構成することも可能である。
上述したように、本出願には、所定数を更新範囲として第1カウンタ値を循環して更新する第1乱数生成手段と、所定数を更新範囲として第2カウンタ値を循環して更新する第2乱数生成手段と、を備え、前記第1及び第2乱数生成手段が更新する前記第1及び第2カウンタ値を任意のタイミングで取得し、該取得した前記第1及び第2カウンタ値を乱数として遊技の制御に利用する遊技機において、
前記第1乱数生成手段で更新される第1カウンタ値の総数をNa、第1カウンタ値の更新間隔をTa、前記第2乱数生成手段で更新される第2カウンタ値の総数をNb、第2カウンタ値の更新間隔をTbとし、前記第1カウンタ値の更新間隔Taと前記第2カウンタ値の更新間隔Tbとの比Ta/Tbをk、PaをNaと互いに素となる整数、PbをNbと互いに素となる整数としたとき、前記第1及び第2乱数生成手段は、
k=Na/Pbまたはk=Pa/Na
であり、かつ
Pa≦Nb,Pb≦Na
を満たす第1及び第2カウンタ値の総数Na、Nbと、第1及び第2カウンタ値の更新間隔Ta、Tbとに基づいて、前記第1及び第2カウンタ値の更新を行う発明が含まれている。
上記のような発明によれば、第1乱数生成手段により生成される第1カウンタ値と第2乱数生成手段により生成される第2カウンタ値との間に相関がなくなり、第1カウンタ値と第2カウンタ値の取り得る値の組み合わせに偏りが発生しないため、遊技の一様性を確保することができる。
なお、この第2の発明においては、前記更新間隔Ta、TbがTa=Tbである場合に、前記第1乱数生成手段により更新される第1カウンタ値の総数、および前記第2乱数生成手段により更新される第2カウンタ値の総数は、互いに共通する素因数を含まない数となるようにしてもよい。
これにより、第1カウンタ値の総数と第2カウンタ値の総数との最小公倍数が、第1カウンタ値の総数と第2カウンタ値の総数とを掛け算した数と等しくなり、最小公倍数に相当する回数の更新を行った場合に、第1カウンタ値と第2カウンタ値の組み合わせとして第1カウンタ値と第2カウンタ値の取り得る値の組み合わせのすべてを発生させることができ、遊技の一様性を確保することができる。
また、第2の発明においても、第1の発明と同様に、前記第1乱数生成手段で更新される第1カウンタ値の総数は、2又は5を素因数として含む数とし、前記第2乱数生成手段で更新される第2カウンタ値の総数は、2又は5を素因数として含まない数としてもよい。
これにより、第1カウンタを用いて振り分けや抽選を行う際に、百分率(例えば40%、15%など)に基づいた正確な振り分けや抽選を行うことができる。また、前記第2乱数生成手段により更新される第2カウンタ値の総数は、「2」又は「5」を素因数として含まない数としたので、第1カウンタ値の総数および第2カウンタ値の総数は互いに共通する素因数を含まない数となる。
さらに、第2の発明において、第1の発明と同様に、入賞口に遊技球が入賞したことに関連して所定の遊技価値付与可能な遊技機であって、前記所定の遊技価値として、特別遊技状態と、該特別遊技状態の終了後に前記特別遊技状態の発生確率が高確率である確率変動状態と、を発生可能であり、前記特別遊技状態を発生させるか否かの判定は、前記第2カウンタ値に基づいて行い、前記確率変動状態を発生させるか否かの判定は、前記第1カウンタ値に基づいて行うようにしてもよい。
(第3発明)
次に、図24および図25を用いて第3の発明の実施例を説明する。
第3の発明の第1実施例は、図14に示す第1発明の実施例におけるメイン処理のステップS20で実行される初期値乱数更新処理の代わりに、大当り図柄乱数更新処理を設け、RAM113内に設けた図柄乱数領域に格納されている乱数を直接更新するようにしたものである。
図25にこの大当り図柄乱数更新処理の詳しい手順の例が示されている。なお、図14において、ステップS20の前後に設けられていた割込み禁止と割込み許可は、第3の実施例では、図25の大当り図柄乱数更新処理の中に設けられている。これは、割込み禁止期間をできるだけ短くすることによって、タイマ割込みによる処理を実行する時間が圧迫されないようにするためである。
この実施例の大当り図柄乱数更新処理においては、図25に示すように、先ず、RAM113内に設けた図柄乱数領域のアドレスを設定する処理(ステップS201)を行い、加算繰り返し数として例えば「3」のような素数を設定する(ステップS202)。加算繰り返し数は「3」に限定されるものでないが、あまり大きな値は避けるのが良い。大きな値を使用すると乱数の更新に時間がかかり、割込み処理が圧迫されるためである。
上記ステップS202で加算繰り返し数を設定した後は、割込みを禁止(ステップS203)してから、ステップS201でアドレスを設定した図柄乱数領域の値に「1」を加算する処理を行う(ステップS204)。この処理は、RAM113からデータを読み出してCPUの演算ユニットで加算し結果をアキュームレータに保持しそれをRAM113の元のアドレス位置の図柄乱数領域に格納するものではなく、RAM内の値を直接更新(+1)するものであり、例えばそのような新たな命令をCPUに設けることで実現することができる。
上記ステップS204で図柄乱数領域の値に「1」を加算する処理を行った後は、ステップS202で設定した加算繰り返し数を減算(−1)する(ステップS205)。そして、次のステップS206で繰り返し数が「0」になったか否かを判定する(ステップS206)。ここで、繰り返し数が「0」になっていない(No)と判定すると、ステップS204へ戻って上記処理を繰り返す。一方、ステップS206で、繰り返し数が「0」になった(Yes)と判定すると、ステップS207へ進んでステップS203で禁止した割込みを許可して、当該大当り図柄乱数更新処理を終了する。
本実施例の大当り図柄乱数更新処理のように、RAM内に記憶されている乱数値を直接更新することによって、RAMからのデータの読み出しを行っている間にノイズによって値が変化してしまうのを回避することができ、正確な乱数の更新が可能となる。また、大当り図柄乱数更新処理をメイン処理の中で繰り返し実行することによって、次のタイマ割込みが入るまでの残余時間が毎回異なることで、大当り図柄乱数更新処理の実行回数が変化しそれによって生成される乱数がよりランダムな値となる。さらに、ステップS202のように加算繰り返し数を設定することによって、固定された値を加算する方式に比べて不正を行いにくくすることができる。
(第2実施例)
次に、図26および図27を用いて第3の発明の第2実施例を説明する。
第1実施例は、メイン処理の中に大当り図柄乱数更新処理を設け、RAM113内の図柄乱数領域に格納されている値に素数を加算することで乱数を更新するようにしているので、仮に加算する値として「0」つまり加算繰り返し数として「0」が設定されると、ステップS205で−1されることで、図柄乱数領域の値は、繰り返し数が8ビットの場合にはFF、16ビットの場合にはFFFFとなり、次のステップS206での判定で「Yes」となるまでの時間が非常に長くなってしまう。
そのため、例えば、大当り図柄乱数4〜6(図19参照 付与される遊技価値が一番高い)に更新されたタイミングでステップS202の加算繰り返し数として「0」を設定する不正がなされたとすると、その後割込みが禁止された状態でステップS204〜S206を何度も繰り返すことで、タイマ割込み処理の実行時間が短くなって割込み時間内にすべての処理を終了することができなくなって、正常な遊技制御がなされなくなるおそれがある。そこで、第2実施例では、図26に示すように、タイマ割込み処理内に割込み処理を監視する処理を設けて、上記のような不正を回避するようにしたものである。
図26に示す本実施例のタイマ割込み処理と図15に示す第1発明の実施例におけるタイマ割込み処理との差異は、本実施例のタイマ割込み処理においては、図15のステップS30とS31との間に、割込み処理監視フラグがオンになっているか否かを判定する処理(ステップS30a)と、割込み処理監視フラグがオンでない場合(No)に割込み処理監視フラグをオンする処理(ステップS30b)、割込みの終了を宣言する処理(ステップS30c)、割込みを許可する処理(ステップS30d)を設けた点と、これに伴い図15のステップS41の次の割込みを許可する処理(ステップS42)を削除し、代わりに割込み処理監視フラグをオフする処理(ステップS43)を設けた点とにある。
図26に示す本実施例のタイマ割込み処理においては、仮にステップS31〜S41の途中まで処理が進んだ時点で1回の割込み処理に与えられた時間が過ぎてしまい、次のタイマ割込みが入って来たとする。すると、ステップS43の割込み処理監視フラグをオフする処理が実行されていないため、次のタイマ割込み処理の実行の際にステップS30aで割込み処理監視フラグがオンになっている(Yes)と判定して、ステップS44へ移行して割込みが禁止され、その後、符号Bに従って図27のメイン処理のステップS29へジャンプして、RWM(リードライトメモリ)のアクセスが禁止されることとなる。
そのため、例えば、大当り図柄乱数4〜6(図19参照 付与される遊技価値が一番高い)に更新されたタイミングでステップS202の加算繰り返し数として「0」を設定するような不正がなされ、その後割込みが禁止された状態でステップS204〜S206を何度も繰り返すことで、タイマ割込み処理の実行時間が短くなって割込み時間内にすべての処理を終了することができなくなって、正常な遊技制御がなされなくなる事態が発生するのを防止することができる。
上述したように、本出願には、所定数を更新範囲として第1カウンタ値を循環して更新する第1乱数生成手段と、所定数を更新範囲として第2カウンタ値を循環して更新する第2乱数生成手段と、遊技プログラムにより遊技を統括的に制御するともに、任意のタイミングで前記第1及び第2の乱数生成手段が更新する前記第1及び第2カウンタ値を取得し、前記第1及び第2カウンタ値を乱数として遊技制御を行う遊技制御手段と、を備えた遊技機において、
前記遊技制御手段は、所定周期で開始される割込みルーチンと、前記割込みルーチンの残余時間に繰り返し実行されるループ処理を有するメインルーチンと、を実行し、前記第1乱数生成手段は、前記割込みルーチンの残余時間でループ処理を実行するメインルーチンの中で、前記第1カウンタ値に所定の素数値を加算することにより、前記第1カウンタ値の更新を行うようにした発明が含まれている。
上記のような発明によれば、割込みルーチンの残余時間でループ処理を実行するメインルーチンの中で、第1カウンタ値に所定の素数値を加算することにより、第1カウンタ値の更新を行うようにしたので、第1カウンタが周回する更新周期が定まらずに変化することとなるため、第1乱数生成手段により生成される第1カウンタ値と第2乱数生成手段により生成される第2カウンタ値との間に相関がなくなり、第1カウンタ値と第2カウンタ値の取りうる値の組み合わせに偏りが発生して遊技の一様性が低下することを防止することができる。
この第3の発明においては、前記遊技プログラムにより遊技制御を含む所定の演算処理の作業領域として必要なデータを記憶する作業領域データ記憶手段と、前記遊技制御手段は、前記第1カウンタ値と、前記遊技プログラムにより遊技制御を含む所定の演算処理に必要なデータを記憶し、電源断後も記憶保持可能な記憶手段を備え、前記第1乱数生成手段は、前記記憶手段から前記第1カウンタ値をアキュームレータに取得することなく、前記記憶手段に記憶されている前記第1カウンタ値に所定の素数値を加算する所定の演算処理を含み、前記所定の演算処理の開始に先立って前記割込みルーチンの実行を禁止状態とし、該演算処理の終了後に前記割込みルーチンの実行を許可状態とするようにしてもよい。
これにより、ノイズ等によって誤った値が記憶手段に記憶されることを防止することができる。つまり、レジスタ等に読み出して演算を行う必要がない為、記憶手段から取得した値、記憶手段への書込む値がノイズ等によって任意の値に変化し、誤った値を第1カウンタ値としてしまうこと防止することができる。
また、第3の発明においても、第1の発明と同様に、前記第1乱数生成手段で更新される第1カウンタ値の総数は、2又は5を素因数として含む数とし、前記第2乱数生成手段で更新される第2カウンタ値の総数は、2又は5を素因数として含まない数としてもよい。
さらに、第3の発明において、入賞口に遊技球が入賞したことに関連して所定の遊技価値付与可能な遊技機であって、前記所定の遊技価値として、特別遊技状態と、該特別遊技状態の終了後に前記特別遊技状態の発生確率が高確率である確率変動状態と、を発生可能であり、前記特別遊技状態を発生させるか否かの判定は、前記第2カウンタ値に基づいて行い、前記確率変動状態を発生させるか否かの判定は、前記第1カウンタ値に基づいて行うようにしてもよい。
以上本発明者によってなされた発明を実施形態に基づき具体的に説明したが、今回開示した実施形態は、全ての点で例示であって制限的なものではない。また、本発明の範囲は前述した発明の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲での全ての変更が含まれることが意図される。
例えば、前記第1実施例では、大当り図柄乱数等を、タイマ割込み処理(図15のステップS34)で更新される第1乱数生成回路124Aによって生成し、大当り乱数はタイマ割込み処理では更新されない第2乱数生成回路124Bによって生成するようにしたものを、また前記第3実施例では、大当り図柄乱数を乱数生成回路でなくプログラムによるメイン処理で生成する、つまりRAM上にカウンタ領域を設けソフトウェアにより乱数の更新を行うように構成したものを説明したが、普図当り判定用の乱数や変動パターン選択用の乱数、さらに大当り乱数もプログラムによるメイン処理で生成することも可能である。その場合、図26のステップS34の乱数更新処理は不要となる。
また、前記実施例(図18〜図23)では、主として大当り図柄乱数と大当り乱数の具体的な生成方法について説明したが、普図変動表示ゲームの当り判定用の乱数や特図変動表示ゲームの変動パターンの選択用の乱数ついても、大当り図柄乱数と同様に扱って生成することができる。
さらに、前記実施例では、主として本発明を、カードユニットによって遊技媒体としての遊技球が貸し出されるパチンコ遊技機に適用したものを説明したが、本発明はこのようなパチンコ遊技機に限定されないとともに、アレンジボール遊技機、雀球遊技機、及びスロットマシンなどの遊技機にも適用可能である。