【手続補正書】
【提出日】平成17年2月4日(2005.2.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【発明の名称】      遊技機
【特許請求の範囲】
【請求項１】  所定のタイミングで更新される乱数カウンタを備えた遊技機において、
固有コードを記憶する固有コード記憶手段を備え、
前記乱数カウンタの更新の初期値は、前記固有コード記憶手段に記憶される固有コードを利用して生成されることを特徴とする遊技機。
【請求項２】  前記固有コード記憶手段に記憶される固有コードを取得する固有コード取得手段と、
その固有コード取得手段により取得した固有コードを利用して前記乱数カウンタの更新の初期値を生成する初期値生成手段とを備えていることを特徴とする請求項１記載の遊技機。
【請求項３】  前記乱数カウンタの値は、所定の範囲内で繰り返し更新されると共に所定周期毎に更新の初期値が変更されるものであり、
その所定周期毎に変更される更新の初期値の内、少なくとも最初の周期における更新の初期値は、前記初期値生成手段により固有コードを利用して生成されることを特徴とする請求項２記載の遊技機。
【請求項４】  前記乱数カウンタの更新範囲内の値を記憶する初期値メモリと、
その初期値メモリの値を他の処理が実行されるまでの残余時間の間に繰り返し更新する初期値更新手段とを備え、
前記乱数カウンタの値は、前記初期値生成手段により固有コードを利用して生成された初期値から更新が開始される周期を除き、前記初期値更新手段により更新された初期値メモリの値を初期値として各周期の更新が開始されることを特徴とする請求項２又は３に記載の遊技機。
【請求項５】  前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値に基づく回数分だけ前記乱数カウンタの更新範囲内で繰り返し更新される所定回数更新手段を備え、
前記乱数カウンタの更新の初期値は、その所定回数更新手段の更新後の値を利用して生成されることを特徴とする請求項２から４のいずれかに記載の遊技機。
【請求項６】  前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値が少なくとも前記乱数カウンタの更新範囲外である場合にその取得された値を乱数カウンタの更新範囲内の値に補正する取得値の補正手段を備えており、
その補正手段による補正が行われた場合には、その補正後の値を利用して前記乱数カウンタの更新の初期値が生成され、前記補正手段による補正が行われなかった場合には、前記固有コード取得手段により取得された固有コードの値を利用して前記乱数カウンタの更新の初期値が生成されることを特徴とする請求項２から４のいずれかに記載の遊技機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】  本発明は、パチンコ機やスロットマシンなどに代表される遊技機に関するものである。
【０００２】
【従来の技術】  従来、例えばパチンコ機等は、複数種類の図柄を変動表示可能な表示装置を備えており、遊技領域に打ち込まれた球が図柄作動口へ入賞することに基づいて変動表示を開始するように構成されている。そして、ある種のパチンコ機では、この変動表示が予め定められた図柄の組み合わせと一致すると、大当たりとなって、遊技者に所定の遊技価値が付与される。
【０００３】
ところで、例えば、変動装置で行われる変動表示、具体的には、例えば図柄停止前のリーチ演出内容や大当たり図柄を含めた停止図柄の種類等は、球が図柄作動口へ入賞するタイミングによって決定される。即ち、１カウントずつ更新される所謂乱数カウンタを備え、球が図柄作動口へ入賞したタイミングで、その乱数カウンタの値を読み出して、読み出された乱数カウンタの値に基づいて演出内容等を決定するのである。
【０００４】
【発明が解決しようとする課題】  しかしながら、従来の遊技機では、同一機種であればその乱数カウンタの形態が各遊技機毎に同一に構成されていた。そのため、かかる乱数カウンタの値に基づいて決定される演出内容等が各遊技機毎に似通ったものとなってしまい、各遊技機の個性が没却されてしまうという種々の問題点があった。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、その主たる目的は上記した課題を解決することができる遊技機を提供することであり、例えば、演出内容等に関して個性を発揮し得る遊技機を提供することを目的としている。
【０００６】
【課題を解決するための手段】  この目的を達成するために請求項１記載の遊技機は、所定のタイミングで更新される乱数カウンタを備えるものであり、固有コードを記憶する固有コード記憶手段を備え、前記乱数カウンタの更新の初期値は、前記固有コード記憶手段に記憶される固有コードを利用して生成される。
請求項２記載の遊技機は、請求項１記載の遊技機において、前記固有コード記憶手段に記憶される固有コードを取得する固有コード取得手段と、その固有コード取得手段により取得した固有コードを利用して前記乱数カウンタの更新の初期値を生成する初期値生成手段とを備えている。
請求項３記載の遊技機は、請求項２記載の遊技機において、前記乱数カウンタの値は、所定の範囲内で繰り返し更新されると共に所定周期毎に更新の初期値が変更されるものであり、その所定周期毎に変更される更新の初期値の内、少なくとも最初の周期における更新の初期値は、前記初期値生成手段により固有コードを利用して生成されるものである。
請求項４記載の遊技機は、請求項２又は３に記載の遊技機において、前記乱数カウンタの更新範囲内の値を記憶する初期値メモリと、その初期値メモリの値を他の処理が実行されるまでの残余時間の間に繰り返し更新する初期値更新手段とを備え、前記乱数カウンタの値は、前記初期値生成手段により固有コードを利用して生成された初期値から更新が開始される周期を除き、前記初期値更新手段により更新された初期値メモリの値を初期値として各周期の更新が開始されるものである。
請求項５記載の遊技機は、請求項２から４のいずれかに記載の遊技機において、前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値に基づく回数分だけ前記乱数カウンタの更新範囲内で繰り返し更新される所定回数更新手段を備え、前記乱数カウンタの更新の初期値は、その所定回数更新手段の更新後の値を利用して生成されるものである。
請求項６記載の遊技機は、請求項２から４のいずれかに記載の遊技機において、前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値が少なくとも前記乱数カウンタの更新範囲外である場合にその取得された値を乱数カウンタの更新範囲内の値に補正する取得値の補正手段を備えており、その補正手段による補正が行われた場合には、その補正後の値を利用して前記乱数カウンタの更新の初期値が生成され、前記補正手段による補正が行われなかった場合には、前記固有コード取得手段により取得された固有コードの値を利用して前記乱数カウンタの更新の初期値が生成されるものである。
【０００７】
【発明の実施の形態】  以下、本発明の好ましい実施例について、添付図面を参照して説明する。本実施例では、遊技機の一例として弾球遊技機の一種であるパチンコ機、特に、第１種パチンコ遊技機を用いて説明する。なお、本発明を第３種パチンコ遊技機や他の遊技機に用いることは、当然に可能である。
【０００８】
図１は、本発明の第１実施例におけるパチンコ機Ｐの遊技盤１の正面図である。遊技盤１の周囲には、球が入賞することにより５個から１５個の球が払い出される複数の入賞口２が設けられている。また、遊技盤１の中央には、複数種類の識別情報としての図柄などを表示する液晶ディスプレイ（以下単に「ＬＣＤ」と称す）３が設けられている。このＬＣＤ３の表示画面は縦方向に３分割されており、３分割された各表示領域３ａ，３ｂ，３ｃにおいて、それぞれ上から下へ縦方向にスクロールしながら図柄の変動表示が行われる。
【０００９】
ＬＣＤ３の下方には、図柄作動口（第１種始動口）４が設けられており、球がこの図柄作動口４に入賞することにより、前記したＬＣＤ３の変動表示が開始される。図柄作動口４の下方には、特定入賞口（大入賞口）５が設けられている。この特定入賞口５は、ＬＣＤ３の変動後の表示結果が予め定められた図柄の組み合わせの１つと一致する場合に、大当たりとなって、球が入賞しやすいように所定時間（例えば、３０秒経過するまで、或いは、球が１０個入賞するまで）開放される入賞口である。
【００１０】
この特定入賞口５内には、Ｖゾーン５ａが設けられており、特定入賞口５の開放中に、球がＶゾーン５ａ内を通過すると、継続権が成立して、特定入賞口５の閉鎖後、再度、その特定入賞口５が所定時間（又は、特定入賞口５に球が所定個数入賞するまで）開放される。この特定入賞口５の開閉動作は、最高で１６回（１６ラウンド）繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値の付与された状態（特別遊技状態）である。
【００１１】
なお、第３種パチンコ機において所定の遊技価値が付与された状態（特別遊技状態）とは、ＬＣＤ３の変動後の表示結果が予め定められた図柄の組み合わせの１つと一致する場合に、特定入賞口が所定時間開放されることをいう。この特定入賞口の開放中に、球がその特定入賞口内へ入賞すると、特定入賞口とは別に設けられた大入賞口が所定時間、所定回数開放される。
【００１２】
図２は、パチンコ機Ｐの電気的な構成を概略的に示したブロック図である。図２に示すように、パチンコ機Ｐは、主制御基板Ｃに、複数の制御基板Ｈ，Ｄ，Ｓ，Ｌ等が接続されて構成されている。主制御基板Ｃは、遊技内容の制御を行うためのものであり、この主制御基板Ｃに接続された各種スイッチ（例えば、第１種始動口スイッチ２０）から出力される信号と、主制御基板Ｃ内に設けられるカウンタ値などとに基づいて、各制御基板Ｈ，Ｄ，Ｓ，Ｌへ制御コマンドを送信して遊技の制御を行っている。
【００１３】
主制御基板Ｃには、ワンチップマイコンとしてのＭＰＵ１１が搭載されている。ここで、図３を参照してＭＰＵ１１について説明する。図３は、ＭＰＵ１１の電気的構成を示すブロック図である。同図に示すように、ＭＰＵ１１には、中央処理装置（ＣＰＵ）５１を中心にして、プログラムＲＯＭ５２、ＨＷパラメータ５３、ユーザワークＲＡＭ５４、内部Ｉ／Ｏブロック５５、Ｉ／Ｏポート５６等が備えられており、これらはお互いにバス５７によって接続されている。また、これらはバスモニタ５８を介して管理ブロック５９に接続されている。
【００１４】
本実施の形態においてプログラムＲＯＭ５２は、ワンタイム書き込み型のＥＰＲＯＭにより構成され、ここに所定の制御プログラムや初期データが予め記憶されている。図４から図９に示すフローチャートのプログラムは、制御プログラムの一部としてこのプログラムＲＯＭ５２内に記憶されている。ＣＰＵ５１は、Ｉ／Ｏポート５６を介して入力されてくる各種信号等に基づき前記プログラムＲＯＭ５２の制御プログラム等に従って各種演算処理を実行する。ＨＷパラメータ５３は書き換え可能な不揮発性のメモリであるＥＥＰＲＯＭによって構成されており、クロック等に関する各種設定事項等が記憶されている。
【００１５】
ユーザーワークＲＡＭ５４はＣＰＵ５１による演算結果等の各種データを一時的に記憶するものであり、バックアップエリア５４ａと、乱数カウンタ５４ｂと、現初期値メモリ５４ｃと、次初期値メモリ５４ｄと、初期値設定メモリ５４ｅとを備えている。また、ユーザーワークＲＡＭ５４には、パチンコ機Ｐの電源のオフ後においても、後述する電源基板３０からバックアップ電圧が供給されており、データを保持（バックアップ）することができるように構成されている。なお、コンデンサや電池等を使用してユーザーワークＲＡＭ５４のデータをバックアップするように構成しても良い。
【００１６】
バックアップエリア５４ａは、停電などの発生により電源が切断された場合、電源の再入時に、パチンコ機Ｐの状態を電源切断前の状態に復帰させるため、電源切断時（停電発生時を含む。以下、同様）のスタックポインタや、各レジスタ、Ｉ／Ｏ等の値を記憶しておくためのエリアである。このバックアップエリア５４ａへの書き込みは、ＮＭＩ割込処理（図４参照）によって電源切断時に実行され、逆にバックアップエリア５４ａに書き込まれた各値の復帰は、電源入時（停電解消による電源入を含む。以下、同様）の初期化処理（図６参照）において実行される。なお、ＭＰＵ１１のＮＭＩ（Non Maskable Interrupt）端子（ノンマスカブル割込端子）には、停電等の発生による電源断時に、後述する停電監視回路３０ｂから出力される停電信号３１が入力されるように構成されており、停電の発生により、図４の停電時処理（ＮＭＩ割込処理）が即座に実行される。
【００１７】
乱数カウンタ５４ｂは、大当たりの発生を決定するためのカウンタであり、後述する乱数更新処理（図８参照）によって、「０」〜「６３０」の範囲で２ｍｓ毎に１カウントずつ更新される。この乱数カウンタ５４ｂの値は、遊技盤１に打ち込まれた球が図柄作動口４へ入賞して後述する第１種始動口スイッチ２０で検出されたとき（始動入賞時）に取得され、このとき取得された乱数カウンタ５４ｂの値が例えば「７」または「３１５」であった場合には、大当たりが発生する。大当たりが発生すると、大当たりコマンドが主制御基板Ｃから後述する表示用制御基板Ｄへ送信され、表示用制御基板Ｄは、その大当たりコマンドに基づいたＬＣＤ３の変動表示を行う。
【００１８】
なお、乱数カウンタ５４ｂの値は、上述したように、電源基板３０から供給されるバックアップ電圧により、電源のオフ後においても保持（バックアップ）されている。よって、電源投入時には、そのバックアップされた値から乱数カウンタ５４ｂの更新を再開することができるので、乱数カウンタ５４ｂの更新の初期値が固定値となることを回避して、乱数カウンタ５４ｂのランダム性を確保することができる。
【００１９】
一方、バックアップ不良等により乱数カウンタ５４ｂの値が適正に保持されなかった場合や、クリアスイッチ３０ｃの押下により乱数カウンタ５４ｂの値がクリアされた場合には、図７に示すＲＡＭクリア及び初期化処理において、後述する固有コードメモリ６４ａの値を利用して各パチンコ機毎に異なる初期値が生成される。よって、乱数カウンタ５４ｂの値がクリア等された場合においても、乱数カウンタ５４ｂの更新の初期値が「０」等の固定値となることを回避して、乱数カウンタ５４ｂのランダム性が低下すること防止することができる。例えば、不正に乱数カウンタ５４ｂの値をクリアして大当たりを不正に発生させる不正行為に対しては、クリア後の乱数カウンタ５４ｂの更新の初期値を各パチンコ機毎に異ならせることができるので、その初期値の把握を困難なものとして、かかる不正行為を抑制することができる。
【００２０】
なお、固有コードメモリ６４ａの値に基づいて生成されるランダムな値（初期値）は、乱数カウンタ５４ｂの値がクリア等された後の１周期目（最初）の更新の初期値にのみ使用され、２周期目以降の更新の初期値には、後述する次初期値メモリ５４ｄに記憶される値が使用される。
【００２１】
現初期値メモリ５４ｃは、乱数カウンタ５４ｂの更新中の初期値を記憶するためのメモリであり、次初期値メモリ５４ｄは、乱数カウンタ５４ｂの次回の更新の初期値を記憶するためのメモリである。現初期値メモリ５４ｃ及び次初期値メモリ５４ｄは、いずれも乱数カウンタ５４ｂの更新範囲と同じ「０」〜「６３０」の範囲内で更新される。
【００２２】
なお、次初期値メモリ５４ｄの値の更新は、図５に示すメイン処理のＳ３１の処理において、所定時間が経過するまでの残余時間の間、繰り返し実行される。この残余時間は、遊技の状態に応じて変化する不定な時間であるため、次初期値メモリ５４ｄの値は、ランダムに更新される。よって、かかる次初期値メモリ５４ｄの値を乱数カウンタ５４ｂの更新の初期値として使用することにより、乱数カウンタ５４ｂの更新の初期値をランダムに変更することができる。
【００２３】
初期値設定メモリ５４ｅは、後述するＩＤ用ＲＡＭ６４の固有コードメモリ６４ａから読み出された（取得された）値を記憶するためのメモリであり、ＩＤ用ＲＡＭ６４の固有コードメモリ６４ａに記憶される値と同じ大きさのバイナリデータが記憶される。この初期値設定メモリ５４ｅの値は、後述するＲＡＭクリア及び初期化処理（図７参照）において、乱数カウンタ５４ｂの初期値を生成する際に使用される。
【００２４】
内部Ｉ／Ｏブロック５５は、カウンタ・タイマ、割込みコントローラ及び高速ＨＷカウンタ等の機能ブロックにより構成されている。バスモニタ５８は、データの入出力を管理するものであり、このバスモニタ５８によって、ＣＰＵ５１の演算データ等が管理ブロック５９へ出力され、また、管理ブロック５９の内容（例えば、固有コードメモリ６４ａの値）がＣＰＵ５１の要求に応じてユーザワークＲＡＭ５４等へ出力される。
【００２５】
管理ブロック５９は、独立記憶部を構成し、検査ポート６１並びにミラードＲＡＭ６２、ステータスＲＡＭ６３及びＩＤ用ＲＡＭ６４等を備えている。検査ポート６１は書込みエラーや、シーケンス異常等を検出可能となっており、ミラードＲＡＭ６２はユーザワークＲＡＭ５４のデータをミラーリング（複写）するものである。また、ステータスＲＡＭ６３には、ＨＷパラメータ５３の設定事項等が書き込まれる。
【００２６】
ＩＤ用ＲＡＭ６４には、固有コードメモリ６４ａが設けられており、この固有コードメモリ６４ａには、ＭＰＵ１１に固有（即ち、パチンコ機固有）の識別番号（識別情報）としての値（固有コード）が書き込まれている。この固有コードメモリ６４ａの値は、パチンコ機Ｐのセキュリティー情報としての役割を担っており、各ＭＰＵ毎に異なるユニークな番号で構成されている。ＭＰＵ１１の検査ポート６１には、モジュラージャック（図示せず）が接続されており、このモジュラージャックを介してチェッカー（図示せず）をＭＰＵ１１に接続することができる。よって、固有コードメモリ６４ａの値を外部から読み出して真贋の照合をすることができるので、ＭＰＵ１１のセキュリティーチェックを行うことができる。従って、かかる固有コードメモリ６４ａの値等を不正に書き換えたり、ＭＰＵ１１を不正なＭＰＵに交換するという不正行為を実行困難なものとして、その不正行為を抑制することができる。
【００２７】
この固有コードメモリ６４ａの値（固有コード）は、図７のＲＡＭクリア及び初期化処理において読み出され、乱数カウンタ５４ｂの更新の初期値を生成する際に使用される。上述したように、固有コードメモリ６４ａの値は、パチンコ機毎に異なるユニークな番号から構成されているので、この固有コードメモリ６４ａの値を利用して生成される乱数カウンタ５４ｂの更新の初期値は、パチンコ機毎に異なる不定な値となり、その結果、乱数カウンタ５４ｂのランダム性を不正に低下させて大当たりを発生させる等の不正行為を抑制することができるのである。なお、ＩＤ用ＲＡＭ６４には、固有コードメモリ６４ａの他にパチンコ機Ｐの製造メーカコードや機種コード等を記憶するメモリ（図示せず）も設けられている。
【００２８】
図２に戻って説明する。ＭＰＵ１１は、図２に示すように、払出モータ１７によって賞球や貸球の払出制御を行う払出制御基板Ｈと、前記した図柄の変動表示の制御を行う表示用制御基板Ｄと、スピーカ１８から効果音の出力制御を行う効果音制御基板Ｓと、ＬＥＤや各種ランプ１９の点灯制御を行うランプ制御基板Ｌと、第１種始動口スイッチ２０と、そのほか、他の入出力装置２１とにそれぞれ接続されている。
【００２９】
第１種始動口スイッチ２０は、図柄作動口（第１種始動口）４（図１参照）に入賞した球を検出するためのスイッチであり、図柄作動口４の近傍に設けられている。第１種始動口スイッチ２０によって球が検出されると、図示しない払出装置によって５個の賞球が払い出される。また、第１種始動口スイッチ２０によって球が検出された場合には、乱数カウンタ５４ｂの値が取得され、その取得された値がユーザワークＲＡＭ５４の所定の領域に書き込まれて記憶される。
【００３０】
電源基板３０は、パチンコ機Ｐの各部に電力を供給するための電源部３０ａと、停電監視回路３０ｂと、クリアスイッチ３０ｃとを備えている。停電監視回路３０ｂは、停電等の発生による電源断時に、主制御基板ＣのＭＰＵ１１のＮＭＩ端子へ停電信号３１を出力するための回路である。停電監視回路３０ｂは、電源部３０ａから出力される最も大きい電圧である直流安定２４ボルトの電圧を監視し、この電圧が２２ボルト未満になった場合に停電（電源断）の発生と判断して、停電信号３１を主制御基板Ｃ及び払出制御基板Ｈへ出力するように構成されている。この停電信号３１の出力によって、主制御基板Ｃ及び払出制御基板Ｈは、停電の発生を認識し、停電時処理（主制御基板Ｃの場合は図４のＮＭＩ割込処理）を実行する。なお、電源部３０ａは、直流安定２４ボルトの電圧が２２ボルト未満になった後においても、かかる停電時処理の実行に充分な時間の間、制御系の駆動電圧である５ボルトの出力を正常値に維持するように構成されているので、主制御基板Ｃ及び払出制御基板Ｈは、停電時処理を正常に実行することができるのである。
【００３１】
クリアスイッチ３０ｃは、主制御基板ＣのユーザーワークＲＡＭ５４および払出制御基板ＨのＲＡＭ（図示せず）にバックアップされるデータをクリアするためのスイッチであり、押しボタンタイプのスイッチで構成されている。このクリアスイッチ３０ｃが押下された状態でパチンコ機Ｐの電源が投入されると（停電解消による電源入を含む）、主制御基板Ｃおよび払出制御基板Ｈによって、それぞれのユーザーワークＲＡＭ５４のデータがクリアされる。なお、この場合には、乱数カウンタ５４ｂの値がクリアされるので、かかる乱数カウンタ５４ｂの更新の初期値は、ＩＤ用ＲＡＭ６４に記憶される固有コードメモリ６４ａの値（固有コード）を利用してパチンコ機毎に異なる値に設定される。
【００３２】
次に、上記のように構成されたパチンコ機Ｐで実行される各処理を、図４から図９の各フローチャートを参照して説明する。図４は、停電の発生等によるパチンコ機Ｐの電源断時に、主制御基板Ｃで実行されるＮＭＩ割込処理を示すフローチャートである。このＮＭＩ割込処理により、停電の発生等による電源断時の主制御基板Ｃの状態がバックアップエリア５４ａに記憶される。
【００３３】
停電の発生等によりパチンコ機Ｐの電源が断されると、停電監視回路３０ｂから停電信号３１が主制御基板ＣのＭＰＵ１１のＮＭＩ（Non Maskable Interrupt）端子へ出力される。すると、ＭＰＵ１１は、実行中の制御を中断して、図４のＮＭＩ割込処理を開始する。停電信号３１が出力された後所定時間は、主制御基板Ｃの処理が実行可能なように電源基板３０の電源部３０ａから電力供給がなされており、この所定時間内にＮＭＩ割込処理が実行される。
【００３４】
ＮＭＩ割込処理では、まず、各レジスタおよびＩ／Ｏ等の値をスタックエリアへ書き込み（Ｓ１）、次に、スタックポインタの値をバックアップエリア５４ａへ書き込んで退避する（Ｓ２）。更に、停電発生情報をバックアップエリア５４ａへ書き込んで（Ｓ３）、停電の発生等による電源断時の状態を記憶する。その後、その他停電処理を実行した後（Ｓ４）、電源が完全に断して処理が実行できなくなるまで、処理をループする。
【００３５】
図５は、パチンコ機Ｐの主制御基板Ｃにおいて実行されるメイン処理を示すフローチャートである。パチンコ機Ｐの主な制御は、このメイン処理によって実行される。メイン処理では、まず、割込を禁止した後（Ｓ１１）、図６に示す初期化処理を実行する（Ｓ１２）。ここで、図６のフローチャートを参照して、初期化処理について説明する。
【００３６】
図６は、パチンコ機Ｐの電源入時に主制御基板Ｃのメイン処理の中で実行される初期化処理（Ｓ１２）を示すフローチャートである。この処理では、バックアップが有効であれば、バックアップエリア５４ａに記憶された各データを元の状態に戻し、遊技の制御を電源が断される前の状態から続行する。一方、バックアップが有効でなかったり、或いは、バックアップが有効であっても電源入時にクリアスイッチ３０ｃが押下された場合には、ＲＡＭクリア及び初期化処理（Ｓ４７）を実行する。なお、この初期化処理（Ｓ１２）は、サブルーチンの形式で記載されているが、スタックポインタの設定前に実行される処理なので、実際には、サブルーチンコールされずに、Ｓ１１の処理後に順に実行される。
【００３７】
まず、スタックポインタを設定し（Ｓ４１）、クリアスイッチ３０ｃがオンされているか否かを確認する（Ｓ４２）。クリアスイッチ３０ｃがオンされていなければ（Ｓ４２：Ｎｏ）、バックアップが有効であるか否かを確認する（Ｓ４３）。この確認は、ユーザーワークＲＡＭ５４の所定のエリアに書き込まれたキーワードが正しく記憶されているか否かにより判断する。キーワードが正しく記憶されていればバックアップは有効であり、逆に、キーワードが正しくなければバックアップデータは破壊されているので、そのバックアップは有効ではない。バックアップが有効であれば（Ｓ４３：Ｙｅｓ）、処理をＳ４４へ移行して、主制御基板Ｃの各状態を電源断前の状態に復帰させる。
【００３８】
Ｓ４４からの処理では、まず、バックアップエリア５４ａからスタックポインタの値を読み出して、これをスタックポインタへ書き込み、電源断前（停電前）の状態、即ちＮＭＩ割込発生前の状態に戻す（Ｓ４４）。次に、バックアップエリア５４ａへ退避した各レジスタやＩ／Ｏ等のデータをそのバックアップエリア５４ａから読み出して、これら各データを元のレジスタやＩ／Ｏ等へ書き込む（Ｓ４５）。その後、割込状態を停電発生時に実行される図４の処理で記憶しておいた電源断前（停電前）の状態、即ちＮＭＩ割込発生前の状態に戻し（Ｓ４６）、ＮＭＩ割込リターンを実行して処理を電源断前に実行していたところへ戻して、制御を電源断前の状態から続行する。
【００３９】
一方、バックアップが有効でなかったり（Ｓ４３：Ｎｏ）、或いはクリアスイッチ３０ｃがオンされていれば（Ｓ４２：Ｙｅｓ）、ＲＡＭクリア及び初期化処理を実行して（Ｓ４７）、ユーザーワークＲＡＭ５４の各値を初期化する。ここで、図７のフローチャートを参照して、ＲＡＭクリア及び初期化処理について説明する。
【００４０】
図７は、主制御基板Ｃの初期化処理（Ｓ１２）の中で実行されるＲＡＭクリア及び初期化処理（Ｓ４７）を示すフローチャートである。この処理は、ユーザーワークＲＡＭ５４の各値を初期化すると共に、固有コードメモリ６４ａの値（固有コード）を利用して乱数カウンタ５４ｂの更新の初期値を生成することにより、パチンコ機毎に異なる乱数カウンタの５４ｂの更新の初期値を生成する為の処理である。
【００４１】
このＲＡＭクリア及び初期化処理では、まず、ユーザーワークＲＡＭ５４の各値を「０」クリアし、初期値を設定する（Ｓ５１）。ここで、従来のパチンコ機では、この「０」クリアされた値を初期値として乱数カウンタの更新を開始していたため、その更新の初期値が固定値（ここでは、「０」）となり、その乱数カウンタのランダム性の低下を招いていた。そこで、本発明のパチンコ機Ｐでは、以下に説明する処理によって乱数カウンタ５４ｂの更新の初期値をランダムに生成し、かかる乱数カウンタ５４ｂのランダム性の低下を防止している。
【００４２】
即ち、Ｓ５１の処理後は、まず、ＩＤ用ＲＡＭ６４の固有コードメモリ６４ａの値をリードして（Ｓ５２）、そのリードした値をユーザーワークＲＡＭ５４の初期値設定メモリ５４ｅへ書き込む（Ｓ５３）。なお、固有コードメモリ６４ａの値は、上述したように、ＭＰＵ１１に固有のユニークな番号である。そのため、Ｓ５３では、同一機種のパチンコ機においても、全てのパチンコ機毎に異なる値が初期値設定メモリ５４ｅへ書き込まれる。
【００４３】
次いで、Ｓ５４及びＳ５５の処理によって、初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂの更新範囲内の値に加工（補正）する。具体的には、まず、初期値設定メモリ５４ｅの値が「６３０」以下であるか否か、即ち、乱数カウンタ５４ｂの更新範囲内の値であるか否かを確認する（Ｓ５４）。初期値設定メモリ５４ｅの値が「６３１」以上であれば（Ｓ５４：Ｎｏ）、乱数カウンタ５４ｂの更新範囲の値を超えている。よって、この場合には、初期値設定メモリ５４ｅの値から「６３０」、即ち、乱数カウンタ５４ｂの更新範囲の値の上限値（最大値）を減算する処理（Ｓ５５）を繰り返し実行して、かかる初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂの更新範囲内の値に加工（補正）する（Ｓ５４，Ｓ５５）。
【００４４】
一方、Ｓ５４の処理において、初期値設定メモリ５４ｅの値が「６３０」以下であれば（Ｓ５４：Ｙｅｓ）、乱数カウンタ５４ｂの更新範囲内の値である。よって、かかる場合には、初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込み（Ｓ５６，Ｓ５７）、乱数カウンタ５４ｂ及び現初期値メモリ５４ｃに更新の初期値を設定する。なお、乱数カウンタ５４ｂは、このＳ５６の処理によって設定された値を更新の初期値として、後述する乱数更新処理（Ｓ１６、図５及び図８参照）によって１周期目の更新を開始する。
【００４５】
このように、乱数カウンタ５４ｂの更新の初期値には、固有コードメモリ６４ａの値（即ち、初期値設定メモリ５４ｅに書き込まれた値）を加工（補正）して生成されたランダムな値が設定される。バックアップ不良等により乱数カウンタ５４ｂの値が適正に保持されなかった場合や、クリアスイッチ３０ｃの押下により乱数カウンタ５４ｂの値がクリアされた場合には、このランダムに生成された初期値から乱数カウンタ５４ｂの更新が開始されるので、かかる乱数カウンタ５４ｂの更新が「０」等の固定値から開始されることを回避して、乱数カウンタ５４ｂのランダム性の低下を抑制することができるのである。
【００４６】
ここで、例えば、主制御基板Ｃと他の基板（例えば、電源基板３０）等との間に、不正な基板（例えば、いわゆる「ぶら下がり基板」等）を取り付けて、その基板から不正に生成した信号（例えば、停電信号３１）を主制御基板Ｃへ出力する不正行為が考えられる。例えば、不正に生成した停電信号を連続的に主制御基板Ｃへ出力して、停電時処理を頻発させると、主制御基板Ｃ（ＭＰＵ１１）は、停電時処理を正常に実行することができなくなり、遊技状態が初期化（ユーザーワークＲＡＭ５４が初期化）されてしまう。このようにすることで、乱数カウンタ５４ｂの更新を「０」等の固定値から開始させ、乱数カウンタ５４ｂのランダム性を不当に低下させるのである。
【００４７】
しかしながら、本発明の遊技機Ｐによれば、乱数カウンタ５４ｂの更新の初期値は、固有コードメモリ６４ａの値（固有コード）に基づいて生成されるため、パチンコ機毎に異なるランダムな値である。よって、不正行為を行う者（不正な基板）は、第１種始動口スイッチ２０の検出信号を不正に生成し、その不正に生成した検出信号を大当たりのタイミングで出力しようとしても、乱数カウンタ５４ｂの値を把握することができないので、大当たりを不正に発生させることができない。従って、いわゆる「ぶら下げ基板」等によって大当たりを不当に発生させる等の不正行為を防止することができるのである。
【００４８】
なお、パチンコ機Ｐを不正に入手して、そのパチンコ機Ｐが備えるＭＰＵ１１の固有コードメモリ６４ａの値（固有コード）を解読すると共に、プログラムＲＡＭ５２に記憶された制御プログラムを解析することにより、乱数カウンタ５４ｂの更新の初期値を取得（把握）することはできる。しかし、この不正に取得した乱数カウンタ５４ｂの更新の初期値は、入手したパチンコ機Ｐ自体でのみ発生する値であり、他のパチンコ機では（パチンコ機毎に固有コードが異なるため）それとは異なる初期値が発生する。そのため、同一機種のパチンコ機においても、各パチンコ機毎に個別に固有コードを解読しなければ不正行為を働くことができず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
【００４９】
図５のフローチャートに戻って説明する。Ｓ１３の処理ではタイマ割込の設定を行う（Ｓ１３）。ここで設定されるタイマ割込としては、ＬＣＤ３の変動表示を制御する制御用コマンドを表示用制御基板Ｄへ送信するためのストローブ信号を発生させるタイマ割込などがある。タイマ割込の設定後は、各割込を許可状態とする（Ｓ１４）。割込の許可後は、特別図柄変動処理（Ｓ２５）や、表示データ作成処理（Ｓ２７）、ランプ・情報処理（Ｓ２８）などにより、前回の処理で更新された出力データを一度に各ポートへ出力するポート出力処理を実行する（Ｓ１５）。
【００５０】
Ｓ１５の処理の実行後は、各種カウンタの値を更新する乱数更新処理（Ｓ１６）を実行する。ここで、図８のフローチャートを参照して、乱数更新処理について説明する。図８は、主制御基板Ｃのメイン処理の中で実行される乱数更新処理（Ｓ１６）を示すフローチャートである。この処理では、乱数カウンタ５４ｂの値を「０」〜「６３０」の範囲内で「＋１」ずつ更新している。
【００５１】
まず、乱数カウンタ５４ｂの値を１加算し（Ｓ６１）、乱数カウンタ５４ｂの値が「６３１」以上であるか否か、即ち、乱数カウンタ５４ｂの更新範囲の値を超えているか否かを調べる（Ｓ６２）。加算後の乱数カウンタ５４ｂの値が「６３１」以上であれば（Ｓ６２：Ｙｅｓ）、更新範囲の値を超えているので、乱数カウンタ５４ｂの値を「０」クリアする（Ｓ６３）。一方、加算後の乱数カウンタ５４ｂの値が「６３０」以下であれば（Ｓ６２：Ｎｏ）、更新範囲内の値であるので、加算後の値を維持すべくＳ６３の処理をスキップして、Ｓ６４の処理へ移行する。
【００５２】
Ｓ６４の処理では、更新後の乱数カウンタ５４ｂの値と現初期値メモリ５４ｃの値とが比較される。現初期値メモリ５４ｃには現在更新中の乱数カウンタ５４ｂの更新の初期値が記憶されているので、両値が等しい場合には（Ｓ６４：Ｙｅｓ）、乱数カウンタ５４ｂの更新は一回り終了したということである。よって、かかる場合には、乱数カウンタ５４ｂの次回の更新の初期値を記憶する次初期値メモリ５４ｄの値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込み（Ｓ６５，Ｓ６６）、乱数カウンタ５４ｂの更新の初期値を変更する。
【００５３】
このように、乱数カウンタ５４ｂは、一回りの更新が終了する毎にその更新の初期値を変更するため、乱数の一様性（連続で取得した場合に同じ値をとることがなく、しかも、すべての値が同じ確率で取り出せること）のある乱数値を得ることができる。更に、その更新の初期値である次初期値メモリ５４ｄの値は、後述するように、遊技の状態に応じて変化する不定な時間を使用して更新される為、乱数カウンタ５４ｂの更新の初期値をランダムに変更することができる。
【００５４】
一方、更新後の乱数カウンタ５４ｂの値と現初期値メモリ５４ｃの値とが等しくない場合には（Ｓ６４：Ｎｏ）、乱数カウンタ５４ｂの更新は未だ一回り終了していないので、Ｓ６５及びＳ６６の処理をスキップすることにより乱数カウンタ５４ｂ及び現初期値メモリ５４ｃの値を維持する。
【００５５】
Ｓ６４〜Ｓ６６の処理を実行した後は、図柄の変動パターンなどを決定するためのカウンタの値などを「＋１」更新する他の乱数の更新処理（Ｓ６７）を実行して、この乱数カウンタ更新処理を終了する。
【００５６】
図５のフローチャートに戻って説明する。乱数更新処理（Ｓ１６）の実行後は、記憶タイマ減算処理（Ｓ１７）が実行される。この記憶タイマ減算処理は、大当たり判定の保留球が所定数以上あり、且つ、ＬＣＤ３において図柄の変動表示中である場合に、図柄の変動表示の時間短縮を行うものである。
【００５７】
スイッチ監視処理（Ｓ１８）は、ＩＮＴ割込で読み込まれた各スイッチの状態に応じて、遊技領域へ打ち込まれた球の入賞口２や大入賞口５、図柄作動口４への入賞、更には賞球の払い出し等に関する処理を行うものである。図柄カウンタ更新処理（Ｓ２０）では、ＬＣＤ３で行われる変動表示の結果、停止表示される図柄を決定するためのカウンタの更新処理が行われる。また、図柄チェック処理（Ｓ２１）では、図柄カウンタ更新処理（Ｓ２０）で更新されたカウンタの値に基づいて、特別図柄変動処理（Ｓ２５）で使用される大当たり図柄や、はずれ図柄、更にはリーチ図柄などが決定される。
【００５８】
次いで、普通図柄変動処理（Ｓ２３）によって、７セグメントＬＥＤ（図示せず）の変動表示を行うと共に、その変動表示の結果、当たりが発生した場合には普通電動役物（図示せず）を所定時間開放する当たり処理を実行する。その後、状態フラグをチェックし（Ｓ２４）、ＬＣＤ３において図柄の変動開始または変動表示中であれば（Ｓ２４：図柄変動中）、特別図柄変動処理（Ｓ２５）によって、球が図柄作動口４に入賞するタイミングで読み取った乱数カウンタ５４ｂの値に基づいて、大当たりか否かの判定が行われると共に、ＬＣＤ３において図柄の変動処理を実行する。一方、状態フラグをチェックした結果、大当たり中であれば（Ｓ２４：大当り中）、大入賞口５を開放するなどの大当たり処理（Ｓ２６）を実行する。更に、状態フラグをチェックした結果、図柄の変動中でも大当たり中でもなければ（Ｓ２４：その他）、Ｓ２５及びＳ２６の処理をスキップして、Ｓ２７の表示データ作成処理へ移行する。
【００５９】
表示データ作成処理（Ｓ２７）では、図柄の変動表示以外にＬＣＤ３に表示されるデモデータや、７セグメントＬＥＤの表示データなどが作成され、ランプ・情報処理（Ｓ２８）では、保留球のランプデータをはじめ、各種のランプデータが作成される。効果音処理（Ｓ２９）では、遊技の状況に応じた効果音データが作成される。なお、これらの表示データ及び効果音データは、前記したポート出力処理（Ｓ１５）やタイマ割込処理によって各制御基板Ｈ，Ｄ，Ｓ，Ｌへ出力される。
【００６０】
効果音処理（Ｓ２９）の終了後は、次のＳ１５の処理の実行タイミングが到来するまでの残余時間の間、次初期値メモリ５４ｄの値を更新する次初期値メモリ更新処理（Ｓ３１）を繰り返し実行する。Ｓ１５〜Ｓ２９の各処理は定期的に実行する必要があるので、Ｓ３２の処理において、前回のＳ１５の処理の実行からの経過時間をチェックする（Ｓ３２）。チェックの結果、前回のＳ１５の処理の実行から２ｍｓ経過していれば（Ｓ３２：Ｙｅｓ）、処理をＳ１５へ移行し、一方、２ｍｓ経過していなければ（Ｓ３２：Ｎｏ）、処理をＳ３１へ移行して、次初期値メモリ更新処理（Ｓ３１）の実行を繰り返す。
【００６１】
ここで、Ｓ１５〜Ｓ２９の各処理の実行時間は、遊技の状態に応じて変化するので、次のＳ１５の処理の実行タイミングが到来するまでの残余時間は、一定の時間ではない。よって、かかる残余時間を使用して次初期値メモリ更新処理（Ｓ３１）を繰り返し実行することにより、次初期値メモリ５４ｄの値をランダムに変更することができるのである。なお、次初期値メモリ更新処理（Ｓ３１）については、図９のフローチャートを参照して説明する。
【００６２】
図９は、主制御基板Ｃのメイン処理の中で実行される次初期値メモリ更新処理（Ｓ３１）を示すフローチャートである。この次初期値メモリ更新処理（Ｓ３１）は、図５に示したメイン処理において残余時間を使用して繰り返し実行される処理であり、乱数カウンタ５４ｂの更新の初期値を記憶する次初期値メモリ５４ｄの値を、乱数カウンタ５４ｂの更新範囲の「０」〜「６３０」の範囲内で「＋１」ずつ更新する。
【００６３】
まず、次初期値メモリ５４ｄの値を「１」加算し（Ｓ７１）、加算後の次初期値メモリ５４ｄの値が「６３１」以上であるか否か、即ち、乱数カウンタ５４ｂの更新範囲の値を超えているか否かを調べる（Ｓ７２）。加算後の次初期値メモリ５４ｄの値が「６３１」以上であれば（Ｓ７２：Ｙｅｓ）、更新範囲の値を超えているので、次初期値メモリ５４ｄの値を「０」クリアする（Ｓ７３）。一方、加算後の次初期値メモリ５４ｄの値が「６３０」以下であれば（Ｓ７２：Ｎｏ）、更新範囲内の値であるので、加算後の値を維持すべくＳ７３の処理をスキップして、この次初期値メモリ更新処理を終了する。
【００６４】
次に、図１０を参照して第２実施例について説明する。第１実施例では、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値から所定値（「６３０」）を繰り返し減算して乱数カウンタ５４ｂの更新の初期値を生成したが（図７参照）、第２実施例では、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値を所定値で除算することにより乱数カウンタ５４ｂの更新の初期値を生成する。なお、前記した第１実施例と同一の部分には同一の符号を付して、その説明は省略する。
【００６５】
図１０は、主制御基板Ｃの初期化処理（Ｓ１２）の中で実行される第２実施例におけるＲＡＭクリア及び初期化処理（Ｓ８１）を示すフローチャートである。このＲＡＭクリア及び初期化処理（Ｓ８１）では、まず、第１実施例と同様に、ユーザーワークＲＡＭ５４の各値を「０」クリアし、初期値を設定する（Ｓ８２）。次いで、ＩＤ用ＲＡＭ６４の固有コード６４ａの値をリードして（Ｓ８３）、そのリードした値をユーザーワークＲＡＭ５４の初期値設定メモリ５４ｅへ書き込み（Ｓ８４）、Ｓ８５の処理へ移行する。なお、初期値設定メモリ５４ｅには、第１実施例と同様に、パチンコ機毎に異なる値が書き込まれる。
【００６６】
Ｓ８５の処理では、初期値設定メモリ５４ｅに書き込まれた値が「６３０」以下であるか否か、即ち、乱数カウンタ５４ｂの更新範囲内の値であるか否かを確認する（Ｓ８５）。初期値設定メモリ５４ｅの値が「６３０」以下であれば（Ｓ８５：Ｙｅｓ）、乱数カウンタ５４ｂの更新範囲内の値である。よって、かかる場合には、初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込み（Ｓ８６，Ｓ８７）、乱数カウンタ５４ｂ及び現初期値メモリ５４ｃに更新の初期値を設定する。
【００６７】
一方、Ｓ８５の処理において、初期値設定メモリ５４ｅの値が「６３１」以上であれば（Ｓ８５：Ｎｏ）、乱数カウンタ５４ｂの更新範囲の値を超えているので、この初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂの初期値に設定することができない。よって、この場合には、かかる初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂの更新範囲内の値に加工（補正）し、その加工後の値を乱数カウンタ５４ｂの更新の初期値に設定する。
【００６８】
具体的には、まず、初期値設定メモリ５４ｅの値を「６３０」、即ち、乱数カウンタ５４ｂの更新範囲の値の上限値（最大値）で除算して（Ｓ８８）、その除算した結果得られる余り値を乱数カウンタ５４ｂ及び現初期値メモリ５４ｃへ書き込み（Ｓ８９，Ｓ９０）、乱数カウンタ５４ｂ及び現初期値メモリ５４ｃに更新の初期値を設定する。かかる余り値は、初期値設定メモリ５４ｅの値を乱数カウンタ５４ｂの更新範囲の上限値「６３０」で除算して得られた値であるので、乱数カウンタ１３の更新範囲内の値となるのである。なお、乱数カウンタ５４ｂは、このＳ８６又はＳ８９の処理によって設定された値を更新の初期値として、乱数更新処理（Ｓ１６、図５及び図８参照）によって１周期目の更新が開始される。
【００６９】
このように、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値を所定値で除算して、その余り値を乱数カウンタ５４ｂの更新の初期値に設定することにより、第１実施例と同様に、かかる乱数カウンタ５４ｂの更新の初期値をパチンコ機毎に異なるランダムな値に設定することができるのである。よって、バックアップ不良等やクリアスイッチ３０ｃの押下、或いは、不正な行為により乱数カウンタ５４ｂの値がクリアされた場合でも、乱数カウンタ５４ｂの更新の初期値が「０」等の固定値となることを回避することができるので、乱数カウンタ５４ｂのランダム性の低下を抑制して不正な行為を抑制することができるのである。
【００７０】
次に、図１１を参照して第３実施例について説明する。第１実施例では、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値から所定値（「６３０」）を繰り返し減算して乱数カウンタ５４ｂの更新の初期値を生成したが（図６参照）、第３実施例では、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値（回数）分だけ乱数カウンタ５４ｂを繰り返し更新することにより初期値を生成する。なお、前記した第１実施例と同一の部分には同一の符号を付して、その説明は省略する。
【００７１】
図１１は、主制御基板Ｃの初期化処理（Ｓ１２）の中で実行される第３実施例におけるＲＡＭクリア及び初期化処理（Ｓ９１）を示すフローチャートである。このＲＡＭクリア及び初期化処理（Ｓ９１）では、まず、第１実施例と同様に、ユーザーワークＲＡＭ５４の各値を「０」クリアし、初期値を設定する（Ｓ９２）。次いで、ＩＤ用ＲＡＭ６４の固有コードメモリ６４ａの値をリードして（Ｓ９３）、そのリードした値をユーザーワークＲＡＭ５４の初期値設定メモリ５４ｅへ書き込む（Ｓ９４）。なお、初期値設定メモリ５４ｅには、第１実施例と同様に、パチンコ機毎に異なる値が書き込まれる。
【００７２】
次いで、Ｓ９５からＳ９９の処理によって、乱数カウンタ５４ｂの値をその更新範囲内で、初期値設定メモリ５４ｅに書き込まれた値（回数）分だけ更新（加算処理）する。具体的には、まず、乱数カウンタ５４ｂの値を「１」加算して（Ｓ９５）、加算後の乱数カウンタ５４ｂの値が「６３１」以上であるか否か、即ち、乱数カウンタ５４ｂの更新範囲の値を超えているか否かを確認する（Ｓ９６）。乱数カウンタ５４ｂの値が「６３１」以上であれば（Ｓ９６：Ｙｅｓ）、更新範囲の値を超えているので、乱数カウンタ５４ｂの値を「０」クリアする（Ｓ９７）。一方、加算後の乱数カウンタ５４ｂの値が「６３０」以下であれば（Ｓ９６：Ｎｏ）、更新範囲内の値であるので、加算後の値を維持すべくＳ９７の処理をスキップして、Ｓ９８の処理へ移行する。
【００７３】
Ｓ９８及びＳ９９の処理では、乱数カウンタ５４ｂの加算処理（Ｓ９５）が、所定回数（初期値設定メモリ５４ｅの値）分だけ行われたか否かを判断する。即ち、初期値設定メモリ５４ｅの値を「１」減算し（Ｓ９８）、減算後の初期値設定メモリ５４ｅの値が「０」であるか否かを確認する（Ｓ９９）。初期値設定メモリ５４ｅの値が「０」でなければ（Ｓ９９：Ｎｏ）、乱数カウンタ５４ｂの加算処理（Ｓ９５）が未だ所定回数に達していないので、Ｓ９５の処理へ移行して、乱数カウンタ５４ｂの加算処理（Ｓ９５）を繰り返す。一方、減算後の初期値設定メモリ５４ｅの値が「０」であれば（Ｓ９９：Ｙｅｓ）、所定回数分の乱数カウンタ５４ｂの加算処理（Ｓ９５）が終了しているので、Ｓ１００の処理へ移行する。なお、乱数カウンタ５４ｂは、Ｓ９５からＳ９９の処理によって所定回数分だけ更新された後の値を初期値として、乱数更新処理（Ｓ１６、図５及び図８参照）によって１周期目の更新が開始される。
【００７４】
Ｓ１００の処理では、乱数更新処理（Ｓ１６、図５及び図８参照）において、乱数カウンタ５４ｂの１周期目の更新の終了を判別するために、所定回数分の更新が終了した後の乱数カウンタ５４ｂの値を現初期値メモリ５４ｃへ書き込み（Ｓ１００）、この処理を終了する。
【００７５】
このように、取得した固有コードメモリ６４ａ（初期値設定メモリ５４ｅ）の値（回数）分だけ乱数カウンタ５４ｂを繰り返し更新することにより、第１実施例と同様に、かかる乱数カウンタ５４ｂの更新の初期値をパチンコ機毎に異なるランダムな値に設定することができるのである。よって、バックアップ不良等やクリアスイッチ３０ｃの押下、或いは、不正な行為により乱数カウンタ５４ｂの値がクリアされた場合でも、乱数カウンタ５４ｂの更新の初期値が「０」等の固定値となることを回避して、乱数カウンタ５４ｂのランダム性の低下を抑制すると共に、不正な行為を抑制することができるのである。
【００７６】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００７７】
例えば、上記各実施例では、固有コードメモリ６４ａの値を利用して乱数カウンタ５４ｂの更新の初期値を生成したが、必ずしも乱数カウンタ５４ｂに限られるわけではなく、他の種々のカウンタの更新の初期値を同様に固有コードメモリ６４ａの値を利用して生成することができる。一例としては、例えば、変動表示において停止表示される図柄（例えば、大当たり図柄、はずれ図柄、リーチ図柄など）を決定するためのカウンタや、図柄の変動パターンを決定するためのカウンタなどへの適用が例示される。
【００７８】
また、上記各実施例では、ユーザーワークＲＡＭ５４に初期値設定メモリ５４ｅを設け、かかる初期値設定メモリ５４ｅにリードした固有コードメモリ６４ａの値を書き込むように構成した。しかし、必ずしも初期値設定メモリ５４ｅを設ける必要はなく、かかる初期値設定メモリ５４ｅに代えて、リードした固有コードメモリ６４ａの値を現初期値メモリ５４ｃへ書き込むように構成しても良い。この場合、現初期値メモリ５４ｃに書き込まれた固有コードメモリ６４ａの値を乱数カウンタ５４ｂの更新範囲内の値に補正することにより（図７のＳ５４，Ｓ５５、図１０のＳ８５，Ｓ８８、図１１のＳ９５〜Ｓ９９参照）、初期値設定メモリ５４ｅの値を現初期値メモリ５４ｃへ書き込む処理を省略することができるので、その分、ＣＰＵ５１の処理の負担を軽減することができる。
【００７９】
また、上記各実施例では、固有の識別番号（固有コード）を備えるＭＰＵ１１を使用する場合を説明したが、これに限られるわけではなく、他のタイプのＭＰＵを本発明に適用することは当然可能である。
【００８０】
例えば、上記各実施例と異なり、固有の識別番号（固有コード）を備えていないタイプのＭＰＵを使用する場合には、そのＭＰＵの制御プログラムや固定値データ等を記憶するＲＯＭに識別番号（固有コード）を書き込む（即ち、ＲＯＭ毎にそれぞれ異なる値を書き込む）ように構成しても良い。このように構成することで、固有コードを記憶するために記憶手段を別途設ける必要がないので、装置コストを低減することができる。また、制御プログラム等の書き込みと固有コードの書き込みとを同時にまとめて行うことができるので、作業コストを低減することもできる。
【００８１】
一方、識別番号（固有コード）の書き込みは、必ずしも制御プログラム等の書き込みと同時に予め行っておく必要はなく、この識別番号（固有コード）の書き込みを所定のタイミングで行うように構成しても良い。かかる構成について、図１２を参照して説明する。なお、上記各実施例と同一の部分には同一の符号を付して、その説明は省略する。
【００８２】
図１２は、パチンコ機Ｐの電気的な構成を概略的に示したブロック図である。主制御基板Ｃは、演算装置であるＭＰＵ１０１と、そのＭＰＵ１０１により実行される各種の制御プログラムや固定値データ等を記憶したＲＯＭ１０２と、ワークメモリ等として使用されるＲＡＭ１０３と、不揮発性のメモリであるＥＥＰＲＯＭ１０４と、時間を計時するリアルタイムクロック（ＲＴＣ）１０５とを備えている。
【００８３】
ＲＡＭ１０３は、バックアップエリア１０３ａと、乱数カウンタ１０３ｂと、現初期値メモリ１０３ｃと、次初期値メモリ１０３ｄと、初期値設定メモリ１０３ｅとを備えている。なお、ＲＡＭ１０３に設けられた各メモリ１０３ａ〜１０３ｅのそれぞれは、上記各実施例においてユーザーワークＲＡＭ５４に設けられた各メモリ５４ａ〜５４ｅにそれぞれ該当し、その説明は省略する。
【００８４】
ＥＥＰＲＯＭ１０４には、固有コードメモリ１０４ａが設けられている。固有コードメモリ１０４ａは、後述するＲＴＣ１０５から取得される時間データ（識別番号）が書き込まれるものであり、その書き込まれた時間データ（識別番号）が上記各実施例においてＩＤ用ＲＡＭ６４に設けられた固有コードメモリ６４ａの値に該当する。よって、乱数カウンタ１０３ｂの更新の初期値は、この固有コードメモリ１０４ａに書き込まれた時間データ（識別情報）を利用して生成される。
【００８５】
なお、ＥＥＰＲＯＭ１０４は、電源投入時において書き換え可能であると共に、電源断後においてもその内容を保持可能な不揮発性のメモリである。よって、停電の発生やホールの閉店等により電源がオフされても、固有コードメモリ１０４ａの値は保持（バックアップ）される。但し、書き換え可能なＥＥＰＲＯＭ１０４に代えて、ワンタイム書き込み型のいわゆるＥＰＲＯＭに固有コードメモリ１０４ａを設けるように構成しても良い。この場合には、固有コードメモリ１０４ａに一旦書き込まれた時間データ（識別番号）が、不用意に、或いは、不正な行為等により書き換えられることを防止することができる。
【００８６】
ＲＴＣ１０５は、時刻等の時の計測を行うＩＣであり、上述した固有コードメモリ１０４ａには、このＲＴＣ１０５から取得した計測値（時間データ）が識別番号として書き込まれる。ここで、ＲＴＣ１０５は、１／１００秒単位まで計測可能に構成されており、１／１００秒から分までの各桁の値が時間データとして取得される。例えば、ＲＴＣ１０５により計測される時刻が「８時３４分２３秒４５」であれば、そのタイミングで取得される時間データの値は「３４２３４５」となる。
【００８７】
また、ＲＴＣ１０５は、バックアップ用の電池（図示せず）が接続されてバックアップ可能に構成されている。よって、停電の発生やホールの閉店等により電源がオフされても、時の計測を継続することができるので、ＲＴＣ１０５の計測値は、パチンコ機Ｐの電源投入時においても固定値（例えば「０時０分０秒００」）となることがない。従って、停電の発生やホールの閉店等により電源がオフされても、取得するタイミングに応じて変化するランダムな値（時間データ）をＲＴＣ１０５から取得することができる。
【００８８】
このように構成されたパチンコ機は、ＲＴＣ１０５から所定のタイミングで時間データを取得して、その取得した時間データを識別番号として固有コードメモリ１０４ａに書き込む。ＲＴＣ１０５から取得される時間データは、その取得するタイミングに応じて変化するランダムな値である。よって、固有コードメモリ１０４ａには、各パチンコ機毎に異なるランダムな識別番号（パチンコ機に固有の固有コード）が書き込まれる。従って、かかる識別番号を利用することにより、上記各実施例と同様に、パチンコ機毎に異なるランダムな値を乱数カウンタ１０３ｂの更新の初期値に設定することができ、かかる乱数カウンタ１０３ｂの更新の初期値が「０」等の固定値となることを回避することができるので、乱数カウンタ１０３ｂのランダム性の低下を抑制すると共に、不正な行為を抑制することができるのである。
【００８９】
なお、ＲＴＣ１０５から時間データを取得するタイミングとしては、パチンコ機の工場出荷前やホール搬入後などの種々のタイミングが例示される。例えば、工場出荷時であれば、パチンコ機を検査する際に行われる初回の電源投入を検知して、その検知タイミングを時間データの取得タイミングとしたり、或いは、パチンコ機の検査終了後に行われる球抜き時の出力信号（球抜き信号）の検知タイミングを利用しても良い。また、ホール搬入時であれば、ＲＡＭ１０３を初期化する際に出力されるクリア信号の検知タイミングを利用しても良い。これらの各タイミングは、各パチンコ機毎に不定であるため、ランダムに変化する時間データを取得することができる。
【００９０】
更に、別の変形例として、ＭＰＵ１１内に内蔵されるカウンタ（例えば、フリーランニングカウンタ）を用いて、その値を乱数カウンタの値として大当たりの判定に使用したり、現初期値メモリの値として使用したり、或いは、次初期値メモリの値として乱数カウンタ５４ｂの次回の更新の初期値を記憶するメモリとして使用しても良い。また、これら以外の他のカウンタとして使用しても良い。
【００９１】
かかる場合には、該カウンタが電源投入のタイミングで常に０から更新されると（該カウンタの更新の初期値が常に０であると）、外部から該カウンタの値を認識できるので、不正され易い。そこで、電源投入時における該カウンタの更新の初期値を、固有コードメモリ６４ａの値に基づいて決定するのである。しかも、その動作をソフト制御を介すことなく、ハード的に行うことにより、セキュリティ機能を向上させて、不正防止効果を上げるのである。
【００９２】
例えば、電源投入時の制御プログラムの実行前に、ＭＰＵ１１内でハード的に実行されるブートプログラムにより、固有コードメモリ６４ａの値に基づいて該カウンタの初期値をセットする。このセットは、固有コードメモリ６４ａの値をそのまま使用しても良いし、固有コードメモリ６４ａの値を加工して使用するようにしても良い。ハード的なブートプログラムの実行後には、プログラムＲＯＭ５２に記憶される制御プログラムが実行される。かかる制御プログラムの実行によって、該カウンタの更新の最大値が設定され、該カウンタの更新がスタートされる。すると、該カウンタは、固有コードメモリ６４ａに記憶される値に基づいて設定された値から更新を開始するので、更新の初期値がＭＰＵ１１毎に異なることとなり、外部から該カウンタの値を認識できなくして、不正行為の防止効果を向上することができる。
【００９３】
このように、固有コードメモリ６４ａの値をカウンタの初期値としてハード的にセットし、そのカウンタの値を乱数カウンタなどに用いることにより、ソフト制御を介すことなく、該カウンタの更新の初期値をＭＰＵ１１毎に変更できるので、不正防止の効果は大である。
【００９４】
本発明を上記実施例とは異なるタイプのパチンコ機等に実施しても良い。例えば、一度大当たりすると、それを含めて複数回（例えば２回、３回）大当たり状態が発生するまで、大当たり期待値が高められるようなパチンコ機（通称、２回権利物、３回権利物と称される）として実施しても良い。また、大当たり図柄が表示された後に、所定の領域に球を入賞させることを必要条件として特別遊技状態となるパチンコ機として実施しても良い。更に、パチンコ機以外にも、アレパチ、雀球、いわゆるパチンコ機とスロットマシンとが融合した遊技機などの各種遊技機として実施するようにしても良い。
【００９５】
なお、スロットマシンは、例えばコインを投入して図柄有効ラインを決定させた状態で操作レバーを操作することにより図柄が変動され、ストップボタンを操作することにより図柄が停止されて確定される周知のものである。従って、スロットマシンの基本概念としては、「複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して図柄の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えたスロットマシン」となり、この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【００９６】
また、パチンコ機とスロットマシンとが融合した遊技機の具体例としては、複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備えており、球打出用のハンドルを備えていないものが挙げられる。この場合、所定の操作（ボタン操作）に基づく所定量の球の投入の後、例えば操作レバーの操作に起因して図柄の変動が開始され、例えばストップボタンの操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄がいわゆる大当たり図柄であることを必要条件として遊技者に有利な大当たり状態が発生させられ、遊技者には、下部の受皿に多量の球が払い出されるものである。
【００９７】
以下に本発明の変形例を示す。請求項１記載の遊技機において、前記固有コード記憶手段に記憶される固有コードを取得する固有コード取得手段と、その固有コード取得手段により取得した固有コードを利用して前記乱数カウンタの更新の初期値を生成する初期値生成手段とを備えていることを特徴とする遊技機１。
【００９８】
乱数カウンタの値は、例えば、電源投入時、クリアされ初期値が設定されるため、その乱数カウンタの更新の初期値が固定値となる。即ち、乱数カウンタの更新の初期値は、例えば「０」等の固定値から開始されることとなり、乱数カウンタのランダム性が低下する。しかし、遊技機１によれば、初期値生成手段は、固有コード取得手段により取得された固有コードを利用して乱数カウンタの更新の初期値を生成するので、固有コード毎に異なるランダムな初期値を発生させることができる。よって、各固有コードに応じて変化するランダムな値を乱数カウンタから発生させることができるので、乱数カウンタの値のランダム性を確保することができる。
【００９９】
なお、固有コードは、遊技機に関する固有の情報や遊技機とは無関係に設定される固有の情報として、固有コード記憶手段（例えば、ＲＯＭやＥＥＰＲＯＭ等が例示される）に、例えばバイナリーデータとして記憶されており、固有コード取得手段は、その固有コードを固有コード記憶手段から数値データとして取得する。
【０１００】
固有コードとしては、例えば、製造メーカーコード（例えば、遊技機メーカーや構成部品メーカーなどを示す識別情報）、機種コード（例えば、遊技機の機種や構成部品の種別などを示す識別情報）、製造コード（例えば、製造番号や製造年月日などを示す識別情報）、遊技機（或いは、盤、枠、主制御基板など）に固有の識別情報（例えば、ユニークな番号など）、遊技機情報に関係の無い識別情報（例えば、ＭＰＵやＲＯＭ、或いは、ＥＥＰＲＯＭなどに固有の識別情報（ユニークな番号など））などが例示される。
【０１０１】
ここで、固有コード記憶手段には、上述した各固有コードが単独で或いは混在して記憶されており、固有コード取得手段は、その固有コード記憶手段に記憶される１の固有コードの一部若しくは全部を、又は、複数の固有コードのうちの一部若しくは全部を単独で或いは混在させて取得するものである。そして、初期値生成手段は、固有コード取得手段が取得した固有コードの更に一部若しくは全部又はその一部若しくは全部が混在した（組み合わされた）ものを利用して乱数カウンタの更新の初期値を生成するものである。
【０１０２】
請求項１記載の遊技機または遊技機１において、前記乱数カウンタの値は、所定の範囲内で繰り返し更新されると共に所定周期毎に更新の初期値が変更されるものであり、その所定周期毎に変更される更新の初期値の内、少なくとも最初の周期における更新の初期値は、前記初期値生成手段により固有コードを利用して生成されることを特徴とする遊技機２。なお、所定周期の所定とは自然数を意味しているので、所定周期とは、例えば、１周期、２周期、３周期、・・・である。よって、最初の周期とは、１周期目を意味する。また、更新の途中において、乱数カウンタの値がクリア等された場合には、そのクリア後に再開される更新が１周期目の更新に該当する。
【０１０３】
従来の遊技機では、例えば「０」から１カウントずつ乱数カウンタを更新し、その更新が一定値（例えば「６３０」）に達すると、乱数カウンタの更新は、再度「０」に戻って再開するように構成されていた。そのため、この乱数カウンタは、いわば疑似乱数の域を超えるものではなく、かかる乱数カウンタの値に基づいて決定される演出内容や大当たり判定等に偏りが生じる可能性があるという問題点があった。また、乱数カウンタの更新の初期値を、例えば１周期毎に変更するものもあるが、その変更はソフト的に行われるため、やはり疑似乱数の域を超えず、この場合にも同様の問題点があった。ところで、このように、乱数カウンタの更新の初期値をソフト的に決定する遊技機では、そのソフト的な決定方法が例えば不正な行為により解析されてしまうと、他の遊技機についても容易に不正行為を行い得るという問題点があった。即ち、同一機種の遊技機であれば、乱数カウンタの更新の初期値の決定方法が各遊技機においてソフト的に同一であり、故に、１の遊技機に対して初期値の決定方法が解析できれば、他の遊技機においても同様の手段により不正な行為を行い得るのである。
【０１０４】
しかし、遊技機２によれば、乱数カウンタの更新の初期値は、固有コードを利用して生成されるので、乱数カウンタの更新は、固有コード毎に異なるランダムな値から開始されることとなる。よって、かかる乱数カウンタのランダム性を確保することができるだけでなく、不正な行為をも抑制することもできる。例えば、固有コードが遊技機に固有の情報から構成されている場合、即ち、固有コードが各遊技機毎に異なる情報である場合には、この固有コードを利用することにより、各遊技機毎に異なる乱数カウンタの更新の初期値を生成することができる。よって、乱数カウンタの更新の初期値を不正に取得する場合には、同一機種の遊技機であっても、各遊技機毎に固有コードを解読しなければならず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
【０１０５】
遊技機２において、前記乱数カウンタの更新範囲内の値を記憶する初期値メモリと、その初期値メモリの値を他の処理が実行されるまでの残余時間の間に繰り返し更新する初期値更新手段とを備え、前記乱数カウンタの値は、前記初期値生成手段により固有コードを利用して生成された初期値から更新が開始される周期を除き、前記初期値更新手段により更新された初期値メモリの値を初期値として各周期の更新が開始されることを特徴とする遊技機３。
【０１０６】
遊技機３によれば、残余時間は遊技の状態に応じて変化する不定な時間であるので、初期値メモリの値は初期値更新手段によりランダムに更新される。よって、かかる初期値メモリの値を乱数カウンタの更新の初期値として使用することにより、乱数カウンタの更新の初期値がランダムに変更され、乱数カウンタの値のランダム性を確保することができる。
【０１０７】
ここで、乱数カウンタの更新の各周期において、最初の周期（１周期目）では、残余時間を利用して初期値メモリの値をランダムに更新することができない。そのため、その初期値メモリの値を乱数カウンタの最初の周期（１周期目）における更新の初期値に使用すると、更新の初期値が固定値となり、乱数カウンタのランダム性が低下する。しかし、遊技機３によれば、「初期値生成手段により固有コードを利用して生成された初期値から更新が開始される周期」、即ち、最初の周期（１周期目）においては、初期値メモリの値からは更新が開始されない。その結果、最初の周期（１周期目）における乱数カウンタの更新の初期値が固定値となることを回避することができ、乱数カウンタの値のランダム性を確保することができる。
【０１０８】
遊技機２又は３において、前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値に基づく回数分だけ前記乱数カウンタの更新範囲内で繰り返し更新される所定回数更新手段を備え、前記乱数カウンタの更新の初期値は、その所定回数更新手段の更新後の値を利用して生成されることを特徴とする遊技機４。
【０１０９】
遊技機４によれば、固有コード取得手段により取得された固有コードは、例えば、遊技機毎に異なる不定な値である。そのため、この固有コードに基づく回数分だけ乱数カウンタの更新範囲内で繰り返し更新された所定回数更新手段の値も、更新回数が不定となり、ランダムな値となる。よって、この所定回数更新手段の更新後の値を利用して乱数カウンタの更新の初期値を生成することにより、かかる乱数カウンタの更新をランダムな値から開始させることができ、その結果、乱数カウンタのランダム性を確保することができる。
【０１１０】
また、所定回数更新手段の更新は、上述したように、乱数カウンタの更新範囲内で繰り返し行われる。そのため、例えば、固有コード取得手段により取得した固有コードの値（大きさ）が乱数カウンタの更新範囲の上限を越えている、或いは、下限を下回っている場合であっても、所定回数更新手段の更新後の値は、その更新回数（即ち、固有コードの値）に関わりなく、乱数カウンタの更新範囲内の値となり、その結果、かかる更新後の所定回数更新手段の値を乱数カウンタの更新の初期値として使用することができるのである。
【０１１１】
このように、固有コードの値（大きさ）に関わりなく、所定回数更新手段の更新後の値を所望の範囲内の値に加工することができるので、固有コードの値（大きさ）を不必要に制限する必要がない。よって、例えば、固有コードを乱数カウンタの更新範囲の上限より大きな値にも設定することができるので、より大量の情報を固有コードに保持させることができのである。従って、乱数カウンタの更新の初期値を生成するに際し、より大量の情報（固有コード）を利用することができるので、かかる乱数カウンタの初期値をよりランダムに変化させることができるのである。
【０１１２】
遊技機４において、前記所定回数更新手段の更新は、前記固有コード取得手段により取得された固有コードの値が前記乱数カウンタの更新範囲外である場合に行われるものであり、その所定回数更新手段の更新が行われた場合には、その更新後の所定回数更新手段の値を利用して乱数カウンタの更新の初期値が生成され、前記所定回数更新手段の更新が行われなかった場合には、前記固有コード取得手段により取得された固有コードの値を利用して乱数カウンタの更新の初期値が生成されることを特徴とする遊技機５。なお、乱数カウンタの更新範囲外の値とは、乱数カウンタの更新範囲の上限値を超えている、或いは、下限値を下回っている値を意味し、例えば、乱数カウンタが「１００」から「２００」までの範囲で１カウントずつ繰り返し更新されるものであれば、「９９」以下の値および「２０１」以上の値である。
【０１１３】
遊技機５によれば、所定回数更新手段の更新は、固有コード取得手段により取得された固有コードの値が乱数カウンタの更新範囲外である場合にのみ行われる。即ち、固有コード取得手段により取得された固有コードの値が乱数カウンタの更新範囲内にある場合には、取得された固有コードの値を利用して乱数カウンタの更新の初期値を生成するので、所定回数更新手段の更新を行う必要がない。よって、不必要な処理を排除することができるので、その分だけ乱数カウンタの更新の初期値を生成する処理コストを低減することができるのである。
【０１１４】
遊技機２又は３において、前記初期値生成手段は、前記固有コード取得手段により取得された固有コードの値が少なくとも前記乱数カウンタの更新範囲外である場合にその取得された値を乱数カウンタの更新範囲内の値に補正する取得値補正手段を備えており、その補正手段による補正が行われた場合には、その補正後の値を利用して前記乱数カウンタの更新の初期値が生成され、前記補正手段による補正が行われなかった場合には、前記固有コード取得手段により取得された固有コードの値を利用して前記乱数カウンタの更新の初期値が生成されることを特徴とする遊技機６。
【０１１５】
遊技機６によれば、固有コード取得手段により取得された固有コードは、例えば、遊技機毎に異なる不定な値である。そのため、その不定な値（固有コード）をそのまま、或いは、補正手段により補正しつつ利用することにより、乱数カウンタの更新の初期値をランダムに生成することができる。よって、かかる乱数カウンタの更新をランダムな値（初期値）から開始させることができ、その結果、乱数カウンタのランダム性を確保することができる。
【０１１６】
ここで、補正手段とは、取得された値を何らかの補正方法により乱数カウンタの更新範囲内の値に補正する手段であり、その補正方法としては、以下の方法が例示される。例えば、（１）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を越える値）から所定値（例えば、乱数カウンタの更新範囲の上限値）を繰り返し減算する補正方法。所定回数の減算により、乱数カウンタの更新範囲内の値を得ることができる。（２）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を越える値）を所定値（例えば、少なくとも乱数カウンタの更新範囲の上限値以上の値）により除算する補正方法。除算して生成される余り値を取得することにより、乱数カウンタの更新範囲内の値を得ることができる。（３）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を下回る値）に所定値（例えば、乱数カウンタの更新範囲の下限値）を繰り返し加算する補正方法。所定回数の加算により、乱数カウンタの更新範囲内の値を得ることができる。（４）これら（１）〜（３）を組み合わせた補正方法。
【０１１７】
また、遊技機６によれば、固有コード取得手段により取得された固有コードの値が少なくとも前記乱数カウンタの更新範囲外である場合には、その取得された値を補正手段により乱数カウンタの更新範囲内の値に補正することができるので、固有コードの値（大きさ）を不必要に制限する必要がない。即ち、固有コード取得手段により取得される値が乱数カウンタの更新範囲内の値となるように、固有コードの値を乱数カウンタの更新範囲内の値に制約する必要がない。よって、例えば、固有コードを乱数カウンタの更新範囲の上限よりも大きな値に設定することができるので、より大量の情報を固有コードに保持させることができる。従って、乱数カウンタの更新の初期値を生成するに際し、より大量の情報（固有コード）を利用することができるので、かかる乱数カウンタの初期値をよりランダムに変化させることができるのである。
【０１１８】
請求項１記載の遊技機または遊技機１から６のいずれかにおいて、前記乱数カウンタの値を電源の切断後においても保持するバックアップ手段と、前記乱数カウンタの値をクリアするクリア手段とを備えており、そのクリア手段により乱数カウンタの値がクリアされた場合、或いは、前記バックアップ手段により乱数カウンタの値が適正に保持されなかった場合には、前記乱数カウンタの更新は、前記初期値生成手段により生成される初期値から開始されることを特徴とする遊技機７。
【０１１９】
遊技機７によれば、乱数カウンタの値は、電源の切断後においてもバックアップ手段により保持されている。よって、電源投入時には、かかるバックアップ（保持）された乱数カウンタの値から更新を再開することにより、乱数カウンタの更新の初期値が固定値となることを回避することができ、乱数カウンタのランダム性を確保することができる。一方、例えばバックアップ不良等により乱数カウンタの値を適正に保持することができなかった場合、或いは、何らかの理由により乱数カウンタの値をクリアする必要が生じた場合には、乱数カウンタの更新は、初期値生成手段により生成されたランダムな値（初期値）から開始される。その結果、乱数カウンタの更新の初期値が固定値となることを回避することができ、乱数カウンタの値のランダム性を確保することができる。
【０１２０】
請求項１記載の遊技機または遊技機１から７のいずれかにおいて、遊技の制御プログラムを記憶するプログラム記憶手段と、そのプログラム手段に記憶される制御プログラムに基づいて遊技を制御する制御手段とを備えており、前記固有コード記憶手段は、前記プログラム記憶手段に設けられていることを特徴とする遊技機８。
【０１２１】
遊技機８によれば、固有コードを記憶する固有コード記憶手段は、制御プログラムを記憶するプログラム記憶手段に設けられている。よって、固有コードを記憶するために記憶手段を別途設ける必要がなく、装置コストを低減することができるので、その分遊技機全体としての装置コストを低減することができる。
【０１２２】
また、このように構成することにより、制御プログラムをプログラム記憶手段に書き込む書込工程において、かかる制御プログラムの書き込みと共に固有コードの書き込みをも同時にまとめて行うことができる。よって、固有コードの書き込みと制御プログラムの書き込みとをそれぞれ別々に行う必要がなく、その分、固有コードの書き込みに要する作業コストを低減することができる。
【０１２３】
更に、プログラム記憶手段が書き換え不能に構成される場合には、一旦書き込まれた固有コードが不用意に或いは何らかの理由により書き換えられることを防止することができる。よって、かかる固有コードを利用して乱数カウンタの更新の初期値を生成することにより、ランダムな値（初期値）を生成することができ、その結果、乱数カウンタのランダム性を確保することができる。
【０１２４】
請求項１記載の遊技機または遊技機１から７のいずれかにおいて、遊技の制御プログラムを記憶するプログラム記憶手段と、そのプログラム手段に記憶される制御プログラムに基づいて遊技を制御する制御手段と、電源の供給が途絶えてもデータを保持する不揮発性のデータ保持手段とを備え、前記固有コード記憶手段は、前記データ保持手段に設けられていることを特徴とする遊技機９。
【０１２５】
データ保持手段としては、ＥＥＰＲＯＭやフラッシュメモリ等が例示される。また、電池（充電池でも良い）やコンデンサ（例えば、電解コンデンサやスパーキャパシタ）等によりバックアップされたＲＡＭによりデータ保持手段を構成しても良い。或いは、ワンタイム書き込み型のＥＰＲＯＭによりデータ保持手段を構成しても良い。ＥＰＲＯＭにより構成した場合には、一旦書き込まれた固有コードが不用意に或いは何らかの理由により書き換えられることを防止することができる。
【０１２６】
遊技機９において、所定の間隔毎にカウントを実行するカウント手段と、そのカウント手段のカウント値を所定のタイミングで取得するカウント値取得手段と、そのカウント値取得手段により取得したカウント値を前記データ保持手段に設けられた固有コード記憶手段に書き込む書込手段とを備えており、前記固有コードの一部または全部は、その書込手段により書き込まれたカウント値により構成されていることを特徴とする遊技機１０。
【０１２７】
ここで、カウント手段としては、所定間隔毎に更新されるカウンタＩＣや時間の計時を行うＲＴＣ（リアルタイムクロック）等が例示される。なお、カウント手段がＲＴＣにより構成される場合、遊技機９において記載したカウント値としてはＲＴＣにより計時される時間データが該当する。
【０１２８】
また、カウント値を取得する所定のタイミングとしては、例えば、次に示すタイミングが例示される。（１）電源を投入（切断）するタイミング。（２）球抜き信号が出力されたタイミング（３）リセット信号が出力されたタイミング。なお、例示した各タイミングにおいて、特定（例えば、初回）のタイミングでのみカウント値を取得しても良く、或いは、各タイミング毎に毎回カウント値を取得しても良い。
【０１２９】
遊技機１０によれば、カウント値取得手段が取得するカウント値は、その取得するタイミングに応じて変化するランダムな値である。固有コード記憶手段には、そのランダムなカウント値が書き込まれるので、かかる固有コード記憶手段に記憶される固有コードの値は、カウント値を取得するタイミング毎に異なる不定な値となる。よって、その固有コードを利用して乱数カウンタの更新の初期値を生成することにより、ランダムな値（初期値）を生成することができ、その結果、乱数カウンタのランダム性を確保することができる。
【０１３０】
また、固有コード記憶手段には、上述したように、所定タイミングで取得したカウント値が書き込まれる、かかる固有コード記憶手段に予め固有コードを記憶させておく必要がない。即ち、例えば、固有コード記憶手段がＲＯＭに設けられる場合には、各ＲＯＭ毎に異なる固有コードを書き込むという煩雑な処理を省略することができるだけでなく、固有コードの書き込み処理自体を省略することができるので、その分だけ固有コードの書き込みに要する処理コストを低減することができる。
【０１３１】
請求項１記載の遊技機または遊技機１から７のいずれかにおいて、遊技の制御プログラムを記憶するプログラム記憶手段と、そのプログラム手段に記憶される制御プログラムに基づいて遊技を制御する制御手段と、その制御手段による制御プログラムの実行に伴って各種のデータを一時的に記憶するデータ記憶手段とを内蔵するワンチップＭＰＵを備え、前記固有コード記憶手段は、前記ワンチップＭＰＵに設けられると共に、その固有コード記憶手段に記憶される固有コードは、前記ＭＰＵ固有の識別情報として構成されていることを特徴とする遊技機１１。このＭＰＵは、プログラム記憶手段と、制御手段と、データ記憶手段の他に、更にタイマ（カウンタタイマ、ウォッチドッグタイマ等）やフリーランニングカウンタなどのカウンタ、チップセレクトロジック、乱数発生回路、固有コード（このＭＰＵに固有の識別情報（ＩＤコード）やメーカーコード、機種コード等）やチェックサムなどを出力するための出力回路などの周辺装置を内蔵したものであっても良い。
【０１３２】
遊技機１１によれば、乱数カウンタの更新の初期値は固有コードを利用して生成されるのであるが、その固有コードはＭＰＵ固有の識別情報として構成されている。よって、乱数カウンタの更新は、固有コード毎に異なる、即ち、各遊技機毎に異なるランダムな値から開始されることとなる。よって、かかる乱数カウンタのランダム性を確保することができるだけでなく、不正な行為をも抑制することができる。即ち、不正な手段により１の遊技機（ＭＰＵ）から固有コードを取得した場合でも、その固有コードによって解読できる乱数カウンタの更新の初期値はその１の遊技機自体に対してのみであり、他の遊技機に対しては同一機種の遊技機であっても取得した固有コードを適用することができない。よって、不正な行為を働く者は、各遊技機毎に固有コードをそれぞれ解読しなければならず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
【０１３３】
遊技機１１において、前記ＭＰＵは、固有コードを出力可能に構成されると共に、その固有コードを読み取るための外部装置を接続するための接続手段を備えていることを特徴とする遊技機１２。なお、接続手段としては、モジュラージャック等が例示される。遊技機１２によれば、ＭＰＵには、外部装置を接続するための接続手段が設けられているので、この接続手段を介して固有コードを読み取ることができる、よって、読み出した固有コードをチェックしてＭＰＵの真贋等を照合することができるので、固有コードの書き換えや、或いは、ＭＰＵ自体の載せ替え等の不正な行為を抑制することができ、その結果、固有コードを利用して生成される乱数カウンタのランダム性を確保することができる。
【０１３４】
請求項１記載の遊技機または遊技機１から１２のいずれかにおいて、前記遊技機はパチンコ機であることを特徴とする遊技機１３。中でも、パチンコ機の基本構成としては操作ハンドルを備え、その操作ハンドルの操作に応じて球を所定の遊技領域へ発射し、球が遊技領域内の所定の位置に配設された作動口に入賞（又は作動口を通過）することを必要条件として、表示装置において変動表示されている識別情報が所定時間後に確定停止されるものが挙げられる。また、特別遊技状態の出力時には、遊技領域内の所定の位置に配設された可変入賞装置（特定入賞口）が所定の態様で開放されて球を入賞可能とし、その入賞個数に応じた有価価値（景品球のみならず、磁気カードへ書き込まれる情報等も含む）が付与されるものが挙げられる。
【０１３５】
請求項１記載の遊技機または遊技機１から１２のいずれかにおいて、前記遊技機はスロットマシンであることを特徴とする遊技機１４。中でも、スロットマシンの基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して図柄の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより、識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備えた遊技機」となる。この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
【０１３６】
請求項１記載の遊技機または遊技機１から１２のいずれかにおいて、前記遊技機はパチンコ機とスロットマシンとを融合させたものであることを特徴とする遊技機１５。中でも、融合させた遊技機の基本構成としては、「複数の識別情報からなる識別情報列を変動表示した後に識別情報を確定表示する可変表示手段を備え、始動用操作手段（例えば操作レバー）の操作に起因して識別情報の変動が開始され、停止用操作手段（例えばストップボタン）の操作に起因して、或いは、所定時間経過することにより識別情報の変動が停止され、その停止時の確定識別情報が特定識別情報であることを必要条件として、遊技者に有利な特別遊技状態を出力させる特別遊技状態出力手段とを備え、遊技媒体として球を使用すると共に、前記識別情報の変動開始に際しては所定数の球を必要とし、特別遊技状態の出力に際しては多くの球が払い出されるように構成されている遊技機」となる。
【０１３７】
【発明の効果】  請求項１記載の遊技機によれば、乱数カウンタの更新の初期値は、固有コード記憶手段に記憶される固有コードを利用して生成される。よって、乱数カウンタの更新は、固有コード毎に異なる値から開始されるので、かかる乱数カウンタの値に基づいて決定される演出内容等を固有コード毎に変化させることができるという効果がある。従って、各遊技機に固有コードに応じた個性を付加することができるのである。
【０１３８】
請求項２記載の遊技機によれば、請求項１記載の遊技機の奏する効果に加え、更に次の効果を奏する。乱数カウンタの値は、例えば、電源投入時、クリアされ初期値が設定されるため、その乱数カウンタの更新の初期値が固定値となる。即ち、乱数カウンタの更新の初期値は、例えば「０」等の固定値から開始されることとなり、乱数カウンタのランダム性が低下する。しかし、請求項２記載の遊技機によれば、初期値生成手段は、固有コード取得手段により取得された固有コードを利用して乱数カウンタの更新の初期値を生成するので、固有コード毎に異なるランダムな初期値を発生させることができる。よって、各固有コードに応じて変化するランダムな値を乱数カウンタから発生させることができるので、乱数カウンタの値のランダム性を確保することができるという効果がある。
なお、固有コードは、遊技機に関する固有の情報や遊技機とは無関係に設定される固有の情報として、固有コード記憶手段（例えば、ＲＯＭやＥＥＰＲＯＭ等が例示される）に、例えばバイナリーデータとして記憶されており、固有コード取得手段は、その固有コードを固有コード記憶手段から数値データとして取得する。
固有コードとしては、例えば、製造メーカーコード（例えば、遊技機メーカーや構成部品メーカーなどを示す識別情報）、機種コード（例えば、遊技機の機種や構成部品の種別などを示す識別情報）、製造コード（例えば、製造番号や製造年月日などを示す識別情報）、遊技機（或いは、盤、枠、主制御基板など）に固有の識別情報（例えば、ユニークな番号など）、遊技機情報に関係の無い識別情報（例えば、ＭＰＵやＲＯＭ、或いは、ＥＥＰＲＯＭなどに固有の識別情報（ユニークな番号など））などが例示される。
ここで、固有コード記憶手段には、上述した各固有コードが単独で或いは混在して記憶されており、固有コード取得手段は、その固有コード記憶手段に記憶される１の固有コードの一部若しくは全部を、又は、複数の固有コードのうちの一部若しくは全部を単独で或いは混在させて取得するものである。そして、初期値生成手段は、固有コード取得手段が取得した固有コードの更に一部若しくは全部又はその一部若しくは全部が混在した（組み合わされた）ものを利用して乱数カウンタの更新の初期値を生成するものである。
【０１３９】
請求項３記載の遊技機によれば、請求項２記載の遊技機の奏する効果に加え、更に次の効果を奏する。従来の遊技機では、例えば「０」から１カウントずつ乱数カウンタを更新し、その更新が一定値（例えば「６３０」）に達すると、乱数カウンタの更新は、再度「０」に戻って再開するように構成されていた。そのため、この乱数カウンタは、いわば疑似乱数の域を超えるものではなく、かかる乱数カウンタの値に基づいて決定される演出内容や大当たり判定等に偏りが生じる可能性があるという問題点があった。また、乱数カウンタの更新の初期値を、例えば１周期毎に変更するものもあるが、その変更はソフト的に行われるため、やはり疑似乱数の域を超えず、この場合にも同様の問題点があった。ところで、このように、乱数カウンタの更新の初期値をソフト的に決定する遊技機では、そのソフト的な決定方法が例えば不正な行為により解析されてしまうと、他の遊技機についても容易に不正行為を行い得るという問題点があった。即ち、同一機種の遊技機であれば、乱数カウンタの更新の初期値の決定方法が各遊技機においてソフト的に同一であり、故に、１の遊技機に対して初期値の決定方法が解析できれば、他の遊技機においても同様の手段により不正な行為を行い得るのである。
しかし、請求項３記載の遊技機によれば、乱数カウンタの更新の初期値は、固有コードを利用して生成されるので、乱数カウンタの更新は、固有コード毎に異なるランダムな値から開始されることとなる。よって、かかる乱数カウンタのランダム性を確保することができるだけでなく、不正な行為をも抑制することもできるという効果がある。例えば、固有コードが遊技機に固有の情報から構成されている場合、即ち、固有コードが各遊技機毎に異なる情報である場合には、この固有コードを利用することにより、各遊技機毎に異なる乱数カウンタの更新の初期値を生成することができる。よって、乱数カウンタの更新の初期値を不正に取得する場合には、同一機種の遊技機であっても、各遊技機毎に固有コードを解読しなければならず、その結果、かかる不正行為を極めて困難なものとすることができるのである。
なお、所定周期の所定とは自然数を意味しているので、所定周期とは、例えば、１周期、２周期、３周期、・・・である。よって、最初の周期とは、１周期目を意味する。また、更新の途中において、乱数カウンタの値がクリア等された場合には、そのクリア後に再開される更新が１周期目の更新に該当する。
【０１４０】
請求項４記載の遊技機によれば、請求項１又は２に記載の遊技機の奏する効果に加え、残余時間は遊技の状態に応じて変化する不定な時間であるので、初期値メモリの値は初期値更新手段によりランダムに更新される。よって、かかる初期値メモリの値を乱数カウンタの更新の初期値として使用することにより、乱数カウンタの更新の初期値がランダムに変更され、乱数カウンタの値のランダム性を確保することができるという効果がある。
ここで、乱数カウンタの更新の各周期において、最初の周期（１周期目）では、残余時間を利用して初期値メモリの値をランダムに更新することができない。そのため、その初期値メモリの値を乱数カウンタの最初の周期（１周期目）における更新の初期値に使用すると、更新の初期値が固定値となり、乱数カウンタのランダム性が低下する。しかし、請求項４記載の遊技機によれば、「初期値生成手段により固有コードを利用して生成された初期値から更新が開始される周期」、即ち、最初の周期（１周期目）においては、初期値メモリの値からは更新が開始されない。その結果、最初の周期（１周期目）における乱数カウンタの更新の初期値が固定値となることを回避することができ、乱数カウンタの値のランダム性を確保することができる。
【０１４１】
請求項５記載の遊技機によれば、請求項２から４のいずれかに記載の遊技機の奏する効果に加え、更に次の効果を奏する。固有コード取得手段により取得された固有コードは、例えば、遊技機毎に異なる不定な値である。そのため、この固有コードに基づく回数分だけ乱数カウンタの更新範囲内で繰り返し更新された所定回数更新手段の値も、更新回数が不定となり、ランダムな値となる。よって、この所定回数更新手段の更新後の値を利用して乱数カウンタの更新の初期値を生成することにより、かかる乱数カウンタの更新をランダムな値から開始させることができ、その結果、乱数カウンタのランダム性を確保することができるという効果がある。
また、所定回数更新手段の更新は、上述したように、乱数カウンタの更新範囲内で繰り返し行われる。そのため、例えば、固有コード取得手段により取得した固有コードの値（大きさ）が乱数カウンタの更新範囲の上限を越えている、或いは、下限を下回っている場合であっても、所定回数更新手段の更新後の値は、その更新回数（即ち、固有コードの値）に関わりなく、乱数カウンタの更新範囲内の値となり、その結果、かかる更新後の所定回数更新手段の値を乱数カウンタの更新の初期値として使用することができるのである。
このように、固有コードの値（大きさ）に関わりなく、所定回数更新手段の更新後の値を所望の範囲内の値に加工することができるので、固有コードの値（大きさ）を不必要に制限する必要がない。よって、例えば、固有コードを乱数カウンタの更新範囲の上限より大きな値にも設定することができるので、より大量の情報を固有コードに保持させることができのである。従って、乱数カウンタの更新の初期値を生成するに際し、より大量の情報（固有コード）を利用することができるので、かかる乱数カウンタの初期値をよりランダムに変化させることができるのである。
【０１４２】
請求項６記載の遊技機によれば、請求項２から４のいずれかに記載の遊技機の奏する効果に加え、更に次の効果を奏する。固有コード取得手段により取得された固有コードは、例えば、遊技機毎に異なる不定な値である。そのため、その不定な値（固有コード）をそのまま、或いは、補正手段により補正しつつ利用することにより、乱数カウンタの更新の初期値をランダムに生成することができる。よって、かかる乱数カウンタの更新をランダムな値（初期値）から開始させることができ、その結果、乱数カウンタのランダム性を確保することができるという効果がある。
ここで、補正手段とは、取得された値を何らかの補正方法により乱数カウンタの更新範囲内の値に補正する手段であり、その補正方法としては、以下の方法が例示される。例えば、（１）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を越える値）から所定値（例えば、乱数カウンタの更新範囲の上限値）を繰り返し減算する補正方法。所定回数の減算により、乱数カウンタの更新範囲内の値を得ることができる。（２）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を越える値）を所定値（例えば、少なくとも乱数カウンタの更新範囲の上限値以上の値）により除算する補正方法。除算して生成される余り値を取得することにより、乱数カウンタの更新範囲内の値を得ることができる。（３）取得された固有コードの値（例えば、乱数カウンタの更新範囲の上限値を下回る値）に所定値（例えば、乱数カウンタの更新範囲の下限値）を繰り返し加算する補正方法。所定回数の加算により、乱数カウンタの更新範囲内の値を得ることができる。（４）これら（１）〜（３）を組み合わせた補正方法。
また、請求項６記載の遊技機によれば、固有コード取得手段により取得された固有コードの値が少なくとも前記乱数カウンタの更新範囲外である場合には、その取得された値を補正手段により乱数カウンタの更新範囲内の値に補正することができるので、固有コードの値（大きさ）を不必要に制限する必要がない。即ち、固有コード取得手段により取得される値が乱数カウンタの更新範囲内の値となるように、固有コードの値を乱数カウンタの更新範囲内の値に制約する必要がない。よって、例えば、固有コードを乱数カウンタの更新範囲の上限よりも大きな値に設定することができるので、より大量の情報を固有コードに保持させることができる。従って、乱数カウンタの更新の初期値を生成するに際し、より大量の情報（固有コード）を利用することができるので、かかる乱数カウンタの初期値をよりランダムに変化させることができるのである。
【図面の簡単な説明】
【図１】  本発明の第１実施例におけるパチンコ機の遊技盤の正面図である。
【図２】  パチンコ機の電気的構成を示したブロック図である。
【図３】  ＭＰＵの電気的構成を示したブロック図である。
【図４】  ＮＭＩ割込処理を示すフローチャートである。
【図５】  メイン処理を示すフローチャートである。
【図６】  初期化処理を示すフローチャートである。
【図７】  ＲＡＭクリア及び初期化処理を示すフローチャートである。
【図８】  乱数更新処理を示すフローチャートである。
【図９】  次初期値メモリ更新処理を示すフローチャートである。
【図１０】  第２実施例におけるＲＡＭクリア及び初期化処理を示すフローチャートである。
【図１１】  第３実施例におけるＲＡＭクリア及び初期化処理を示すフローチャートである。
【図１２】  変形例におけるパチンコ機の電気的構成を示したブロック図である。
【符号の説明】
５４ｂ，１０３ｂ          乱数カウンタ
５４ｄ，１３０ｄ          次初期値メモリ（初期値メモリ）
６４ａ，１０４ａ          固有コードメモリ（固有コード記憶手段）
Ｐ                        パチンコ機（遊技機）
Ｓ３１                    次初期値メモリ更新処理（初期値更新手段）
Ｓ５２，Ｓ８３，Ｓ９３    固有コード取得手段
Ｓ５３〜Ｓ５７，Ｓ８４〜Ｓ９０，Ｓ９４〜Ｓ１００  初期値生成手段
Ｓ５４〜Ｓ５５，Ｓ８５〜Ｓ９０，Ｓ９５〜Ｓ１００  補正手段
Ｓ９８〜Ｓ９９            所定回数更新手段