以下、本発明の好ましい実施例について、添付図面を参照して説明する。第1実施例では、遊技機の一例としてパチンコ遊技機、特に、第1種パチンコ遊技機を用いて説明する。なお、本発明を第3種パチンコ遊技機や他の遊技機に用いることは、当然に可能である。
図1は、パチンコ遊技機Pの遊技盤の正面図である。遊技盤1の周囲には、球が入賞することにより5個から15個の賞球が払い出される複数の入賞口2が設けられている。また、遊技盤1の中央には、複数種類の識別情報としての図柄などを表示する液晶(LCD)ディスプレイ3が設けられている。このLCDディスプレイ3の表示画面は横方向に3分割されており、3分割された各表示領域において、それぞれ図柄の変動表示が行われる。
LCDディスプレイ3の下方には、図柄作動口(第1種始動口)4が設けられている。球がこの図柄作動口4を通過することにより、前記したLCDディスプレイ3の変動表示が開始される。図柄作動口4の下方には、特定入賞口(大入賞口)5が設けられている。この特定入賞口5は、LCDディスプレイ3の変動後の表示結果が予め定められた図柄の組み合わせの1つと一致する場合に、大当たりとなって、球が入賞しやすいように所定時間(例えば、30秒経過するまで、あるいは、球が10個入賞するまで)開放される入賞口である。この特定入賞口5内には、Vゾーン5aが設けられており、特定入賞口5の開放中に、球がVゾーン5a内を通過すると、継続権が成立して、特定入賞口5の閉鎖後、再度、その特定入賞口5が所定時間(又は、特定入賞口5に球が所定個数入賞するまで)開放される。この特定入賞口5の開閉動作は、最高で16回(16ラウンド)繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値の付与された状態(特別遊技状態)である。
図2は、かかるパチンコ遊技機Pの電気的構成を示したブロック図である。パチンコ遊技機Pの主制御基板Cは、8.192MHzの動作クロック11aに基づいて動作するMPU11と、そのMPU11によって実行される各種の制御プログラムや固定値データを記憶したROM12と、制御プログラムの実行時に各種のデータ等を一時的に記憶するためのメモリであるRAM13と、7.15909MHzのクロック14aから出力されるクロックパルスの立ち下がり毎にカウントアップを行う16ビットの乱数カウンタ14と、入出力ポート16と、乱数カウンタ14でカウントされる乱数値に対する所定のデータ、即ちその乱数値が大当たりであるか否か等のデータを記憶する比較ROM17とを備えている。なお、図5のフローチャートに示すプログラムは、制御プログラムの一部としてROM12内に記憶されている。
乱数カウンタ14は、7.15909MHzのクロック14aから出力されるクロックパルスの立ち下がり毎に、1カウントずつカウントアップを行う16ビットカウンタである。よって、この乱数カウンタ14により、ソフト制御では到底追従することができない高速な速度で、乱数値を「0〜65535」の範囲で更新することができる。MPU11から乱数カウンタ14の下位アドレスとリード信号とが出力されると、乱数カウンタ14の16ビットのカウント値(乱数値)が、一旦、乱数カウンタ14内部の16ビットの出力レジスタにラッチされ、そのラッチされた乱数カウンタ14の下位バイトの値がデータバスへ出力されて、MPU11に読み込まれる。次に、MPU11から乱数カウンタ14の上位アドレスとリード信号とが出力されると、乱数カウンタ14の下位バイトの読み込み時に乱数カウンタ14内部の出力レジスタにラッチされたカウント値(乱数値)の上位バイトの値がデータバスへ出力されて、MPU11に読み込まれる。このようにして、16ビットの乱数カウンタ14の値がMPU11によって読み込まれる。乱数カウンタ14では、このカウント値の読み出しの最中にも、クロック14aのクロックパルスに基づいてカウント値の更新が行われている。なお、乱数カウンタ14の値は、球が図柄作動口4を通過するタイミングで読み出され、大当たりの判定に用いられる。
また、乱数カウンタ14のカウント値は、電源の投入時において初期化されず、電源投入時における不定値からカウントアップを開始する。よって、「ぶら下げ基板」では、乱数カウンタ14の不定な初期値を把握することができないので、乱数カウンタ14のカウント値、即ち乱数値を把握することができないのである。更に、乱数カウンタ14は、MPU11に外付けされているので、2ms毎にMPU11へリセット割込がかけられても、乱数カウンタ14のカウント値は、その都度「0」クリアされてしまうことはなく、カウントを継続することができる。よって、MPU11のリセット割込の度に、乱数カウンタ14のカウント値を保存し、その保存した値を乱数カウンタ14へ書き戻すという、煩雑な処理が不要となる。
ここで、MPU11の動作クロック11aと、乱数カウンタ14のクロック14aとの関係について説明する。MPU11の動作クロック11aは、周波数8.192MHzであるので、16,384クロックで、主制御基板Cで実行されるリセット割込処理の2msの間隔を得ることができる。一方、乱数カウンタ14のクロック14aは、周波数7.15909MHzであるので、リセット割込処理の2msの間隔を得ることができない。詳細には、14,318クロックでは、1.99997485714msとなって2msに満たず、それよりも1クロック多い14,319クロックでは、2.000114539697msとなって2msを超えてしまう。
パチンコ遊技機Pの遊技の制御は、主制御基板Cによって2ms毎に行われるのに対し、大当たりを決定する乱数カウンタ14による乱数値の更新は、2msの間隔を得られない7.15909MHzのクロック14aで行われるので、不正行為を働く「ぶら下げ基板」が、主制御基板Cに同期して動作する場合には、乱数カウンタ14のカウント値(乱数値)を把握することができず、逆に、乱数カウンタ14に同期して動作する場合には、主制御基板Cに同期して動作することができない。従って、「ぶら下げ基板」から大当たりの発生タイミングに合わせて図柄作動口4の通過信号をパチンコ遊技機Pの主制御基板Cへ出力することはできないので、「ぶら下げ基板」を用いた不正行為を防止することができる。
比較ROM17は、乱数カウンタ14で更新される乱数値に対する所定のデータ、即ち、その乱数値が大当たりであるか否か等のデータを乱数値毎に記憶するメモリであり、乱数カウンタ14の更新範囲分の64Kバイトのサイズを備えている。乱数値に対するデータは、各乱数値に対して1バイトずつ設けられており、乱数値が示す比較ROMのアドレスに記憶されている。このため、比較ROM17は「0000h〜0FFFFh」の大きなアドレス空間を専有するが、メモリアドレス上ではなく、I/Oアドレス上の「000Eh」及び「000Fh」のアドレスに配置されているので、比較ROM17が64Kバイトの大きなサイズを有していても、その比較ROM17で64Kバイトのメモリ空間を専有することがなく、メモリ空間を有効に使用することができる。なお、比較ROM17がI/Oアドレス上に配置されることにより、その比較ROM17へのアクセスは、入出力ポート16を介して行われる。
図3(a)は、比較ROM17の1バイトのデータの構成をビット毎に示した図である。図3(a)に示すように、比較ROM17の0ビット目は大当たりビットx(17a)、1ビット目は高確率大当たりビットy(17b)、2ビット目は素数ビットz(17c)に割り当てられている。これら各ビット17a,17bの状態により、図3(b)に示すように大当たりが判定される。即ち、大当たりビットx(17a)が「0」である場合には、高確率大当たりビットy(17b)の状態に拘わらず、ハズレである(17d)。大当たりビットx(17a)が「0」である場合に、高確率大当たりビットy(17b)が「1」という設定は存在しない(17e)。一方、大当たりビットx(17a)が「1」である場合には、高確率大当たりビットy(17b)が「0」であれば大当たりであり(17f)、高確率大当たりビットy(17b)が「1」であれば高確率大当たりである(17g)。
素数ビットz(17c)は、乱数値が素数であることを示すビットであり、素数ビットz(17c)が「1」であれば、対象となる乱数値は素数であり、逆に、「0」であれば、対象となる乱数値は素数ではない。なお、この第1実施例では、大当たりの判定に素数ビットz(17c)を用いていない。
ここで、図4を参照して、比較ROM17に記憶される乱数値に対する所定のデータ、即ち、乱数値が大当たりであるか否かのデータの取得(読み出し)方式について説明する。まず、MPU11によって乱数カウンタ14のカウント値(乱数値)が下位バイト、上位バイトの順に読み込まれ(41)、その乱数値の下位バイトがMPU11からI/Oアドレスの「000Eh」へ、上位バイトがI/Oアドレスの「000Fh」へ、それぞれデータとして出力される(42)。16ビットの該乱数値は、一旦、入出力ポート16の入力用ラッチレジスタ16a(16ビット)にラッチされ、入出力ポート16から比較ROM17へ16ビットのアドレスデータとして出力される(43)。比較ROM17のリード端子RDバーは接地されて常時アクティブにされているので(44)、比較ROM17へ出力されたアドレスが安定すると、比較ROM17から乱数値に対するデータが読み出され(45)、入出力ポート16の出力用バッファ16b(8ビット)へ入力される。そして、MPU11によってI/Oアドレスの「000Eh」の読み出し命令が実行されると、出力用バッファ16bに入力されたデータが、MPU11によって読み出され(46)、乱数値に対するデータの取得(読み出し)が完了する。
なお、図4に示す通り、I/Oアドレスの「000Eh」および「000Fh」には、入力用ラッチレジスタ16aと出力用バッファ16bとがそれぞれ別々に設けられている(出力用バッファ16bは、「000Eh」にのみ設けられ「000Fh」には無い)。MPU11からI/Oアドレスの「000Eh」および「000Fh」に対してデータのライト命令が実行されたときには、そのデータは入力用ラッチレジスタ16aへラッチされ、一方、MPU11からI/Oアドレスの「000Eh」に対してデータのリード命令が実行されたときには、出力用バッファ16bに入力されている8ビットのデータがMPU11へ読み込まれる。
図2に示すように、これらMPU11、ROM12、RAM13は、バスライン15を介して互いに接続されており、バスライン15は、また、入出力ポート16にも接続されている。この入出力ポート16は、比較ROM17をはじめ、表示用制御基板Dや他の入出力装置19と接続されている。主制御基板Cは、入出力ポート16を介して、表示用制御基板Dや他の入出力装置19へ各種コマンドを送信し、それら各装置を制御する。なお、主制御基板Cと表示用制御基板Dとの接続は、入力および出力が固定的な2つのバッファ(インバータゲート)18,28を介して行われている。よって、主制御基板Cと表示用制御基板Dとの間におけるコマンドの送受信は、主制御基板Cから表示用制御基板Dへの一方向にのみ行われ、表示用制御基板Dから主制御基板Cへコマンド等を送信することはできない。
表示用制御基板Dは、MPU21と、プログラムROM22と、ワークRAM23と、ビデオRAM24と、キャラクタROM25と、画像コントローラ26と、入力ポート29と、出力ポート27とを備えている。入力ポート29の入力にはインバータゲート28の出力が接続され、その入力ポート29の出力は、MPU21、プログラムROM22、ワークRAM23を接続するバスラインと接続されている。また、出力ポート27の入力には画像コントローラ26が接続され、その出力ポート27の出力にはLCDディスプレイ3が接続されている。
表示用制御基板DのMPU21は、主制御基板Cから送信される制御用コマンドに基づいて、LCDディスプレイ3の(変動)表示を制御するためのものであり、プログラムROM22には、このMPU21により実行される各種の制御プログラムが記憶されている。ワークRAM23は、MPU21によるプログラムの実行時に使用されるワークデータが記憶されるメモリである。
ビデオRAM24は、LCDディスプレイ3に表示されるデータが記憶されるメモリであり、このビデオRAM24の内容を書き換えることにより、LCDディスプレイ3の表示内容が変更される。即ち、各表示領域における図柄の変動表示は、ビデオRAM24の内容が書き換えられることにより行われる。キャラクタROM25は、LCDディスプレイ3に表示される図柄などのキャラクタデータを記憶するメモリである。画像コントローラ26は、MPU21、ビデオRAM24、出力ポート27のそれぞれのタイミングを調整して、データの読み書きを介在するとともに、ビデオRAM24に記憶される表示データをキャラクタROM25を参照して所定のタイミングでLCDディスプレイ3に表示させるものである。
次に、図5を参照して、主制御基板Cで行われるリセット割込処理について説明する。図5は、主制御基板Cで2ms毎に実行されるリセット割込処理のフローチャートである。このリセット割込処理では、まず、その処理が電源投入後、最初に実行された処理であるか否かを調べ(S1)、最初に実行された処理であれば(S1:Yes)、RAM13の内容を一旦「0」クリアした後に初期値を設定する等といった初期化処理を実行する(S2)。S2の処理の実行後は、次のリセット割込処理が発生するまで処理の実行を待機する。
S1の処理において電源投入後2回目以降に実行されたリセット割込処理であると判断された場合には(S1:No)、S3〜S11の各処理によってパチンコ遊技機Pの遊技の制御が行われる。遊技の制御では、まず、球が第1種始動口(図柄作動口)4を通過したか否かを調べ(S3)、球が第1種始動口(図柄作動口)4を通過していれば(S3:Yes)、大当たりか否かの判定を行うために、S4〜S10の各処理を実行する。
まず、MPU11によって乱数カウンタ14の値(乱数値)をリードし(図4の41)、そのリードした値をMPU11の内部レジスタであるBCレジスタへ書き込む(S4)。次に、BCレジスタの値を比較ROM17のI/Oアドレスである「000Eh」及び「000Fh」へ出力する(S5,図4の42)。図4を参照して説明したように、このS5の処理によって、BCレジスタの値(乱数値)は、一旦、入出力ポート16の入力用ラッチレジスタ16aにラッチされた後に、入出力ポート16から比較ROM17へアドレスとして出力される(図4の43)。比較ROM17のリード信号は常時アクティブにされているので(図4の44)、入出力ポート16から出力されたアドレスが安定すると、乱数値が示すアドレスに記憶される比較ROM17のデータ、即ち乱数値に対するデータが比較ROM17から読み出され、入出力ポート16へ出力される(図4の45)。比較ROM17から入出力ポート16へ出力されたデータは、入出力ポート16の出力用バッファ16bへ入力される。
次に、S6の処理によって、I/Oアドレスの比較ROM17のアドレスである「000Eh」の値をリードし(図4の46)、そのリードした値をMPU11の内部レジスタであるDレジスタへ書き込む(S6)。MPU11のリード時に参照される入出力ポート16の出力用バッファ16bには、前記した通り既に乱数値に対するデータが入力されているので、S6の処理により、その乱数値に対するデータをDレジスタに読み込むことができる。
乱数値に対するデータをDレジスタへ読み込んだ後は、そのDレジスタの大当たりビットx(17a)の状態を調べる(S7)。大当たりビットx(17a)が「1」であれば(S7:Yes)、大当たりの発生であるので、かかる場合には、更に、高確率大当たりビットy(17b)の状態を調べて(S8)、その大当たりが高確率大当たりであるか否かを判定する。即ち、高確率大当たりビットy(17b)が「1」であれば(S8:Yes)、高確率大当たりの発生であるので高確率大当たり処理を実行し(S9)、逆に、高確率大当たりビットy(17b)が「0」であれば(S8:No)、通常の大当たりの発生であるので大当たり処理を実行する(S10)。また、S7の処理において、大当たりビットx(17a)が「0」であれば(S7:No)、大当たりの発生ではないので、S8〜S10の各処理をスキップして、処理をS11へ移行する。
なお、S11の処理では、主制御基板Cにおいて遊技の進行を制御するための各処理(S11)を実行し、その各処理(S11)の実行後は、次のリセット割込処理が発生するまで処理の実行を待機する。
以上説明したように、第1実施例のパチンコ遊技機Pによれば、乱数値に対する大当たり等のデータを、予め比較ROM17の乱数値が示すアドレスに記憶しておき、大当たりの判定契機が到来すると、乱数カウンタ14から読み出した乱数値をアドレスとして比較ROM17へ出力し、比較ROM17からその乱数値に対するデータを読み出して、大当たり等の判定を行っている。よって、大当たり等の判定を乱数値の更新範囲の大きさに拘わらず短時間で行うことができるので、パチンコ遊技機Pの遊技の制御に支障を来すことなく、「ぶら下げ基板」等を用いた不正行為を防止するために、乱数値の更新範囲を広げることができる。
次に、図6及び図7を参照して、第2実施例を説明する。前記した第1実施例では、図3に示すように、大当たりビットx(17a)は0ビット目に、高確率大当たりビットy(17b)は1ビット目に、素数ビットz(17c)は2ビット目に、それぞれ固定して記憶されたが、第2実施例では、各ビットの記憶位置を乱数値に応じて変更している。以下、前記した第1実施例と同一の部分には同一の符号を付してその説明は省略し、第1実施例と異なる部分についてのみ説明する。
図6は、第2実施例における比較ROM17の1バイトのデータの構成をビット毎に示した図である。図6に示すように、第2実施例では、乱数値を8で割った余りのビット位置に大当たりビットx(17a)が配置され、その+1ビット目の位置に高確率大当たりビットy(17b)が配置され、更に、その+1ビット目の位置に素数ビットz(17c)が配置される。なお、ビット位置に+1した値が8以上になる場合には、高確率大当たりビットy(17b)又は素数ビットz(17c)の該当するビットは、+1した値と「8」との差のビット位置に配置される。
例えば、乱数値が「0」である場合には、その乱数値を8で割った余りは「0」なので、各ビットは図6の60のように配置される。また、乱数値が「189」である場合には、その乱数値を8で割った余りは「5」なので、各ビットは図6の65のように配置される。更に、乱数値が「511」である場合には、その乱数値を8で割った余りは「7」なので、各ビットは図6の67のように配置される。なお、この第2実施例でも、第1実施例の場合と同様に、大当たりの判定に素数ビットz(17c)を用いていない。
図7を参照して、主制御基板Cで行われる第2実施例のリセット割込処理について説明する。第2実施例のリセット割込処理では、S4〜S6の各処理によって乱数値に対するデータをDレジスタへ書き込んだ後に、乱数値を記憶するBCレジスタの値を「8」で割り、その余りをMPU11の内部レジスタであるEレジスタへ書き込む(S21)。
乱数値に対するデータをDレジスタへ、乱数値を「8」で割った余りをEレジスタへ書き込んだ後は、Eレジスタの値番目に位置するDレジスタのビット、即ち、大当たりビットx(17a)の状態を調べる(S22)。大当たりビットx(17a)が「1」であれば(S22:Yes)、大当たりの発生である。よって、かかる場合には、更に、Eレジスタの値+1番目に位置するDレジスタのビット、即ち、高確率大当たりビットy(17b)の状態を調べて(S23)、その大当たりが高確率大当たりであるか否かを判定する。高確率大当たりビットy(17b)が「1」であれば(S23:Yes)、高確率大当たりの発生であるので高確率大当たり処理を実行し(S9)、逆に、高確率大当たりビットy(17b)が「0」であれば(S23:No)、通常の大当たりの発生であるので大当たり処理を実行する(S10)。
なお、乱数値を「8」で割った余りが「7」である場合(Eレジスタの値が「7」である場合)には、その余りに「+1」した値が「8」になるので、図6を参照して説明した通り、高確率大当たりビットy(17b)は、余りに+1した値と「8」との差のビット位置、即ち0ビット目に配置される(図6の67)。
S22の処理において、Eレジスタの値番目に位置するDレジスタのビット、即ち、大当たりビットx(17a)が「0」であれば(S22:No)、大当たりの発生ではないので、以降のS23,S9,S10の各処理をスキップして、処理をS11へ移行する。
以上説明したとおり、第2実施例のパチンコ遊技機Pによれば、乱数値に応じて大当たりビットxのビット位置を変更しているので、比較ROM17と入出力ポート16とのデータ線を切断等して大当たりを発生させるという不正行為を防止することができる。
大当たりビットxのビット位置が固定されていると、そのビット位置の信号線を切断しプルアップすることにより、その信号線の出力を「1」に固定して不当に大当たりを発生させることができる。しかし、第2実施例のように、大当たりビットxのビット位置を乱数値に応じて変化させることにより、かかる不正を防止することができる。例えば、大当たりビットxの1ビット前(大当たりビットxが0ビット目である場合には7ビット目)の値が「0」であり、且つ、大当たりビットxが「1」である場合に限り、大当たりを発生させるのである。この方式によれば、すべての信号線を切断しプルアップした場合には、大当たりビットxの1ビット前のビットも必ず「1」になるので、大当たりは全く発生しない。従って、比較ROM17と入出力ポート16とのデータ線を切断等して大当たりを発生させるという不正行為を防止することができるのである。
次に、図8を参照して、第3実施例を説明する。前記した第1及び第2実施例では、大当たりの判定に素数ビットz(17c)を用いることはなかったが、第3実施例では、素数ビットz(17c)を用いて大当たりの判定を行っている。
具体的には、大当たりは乱数値が素数である場合にのみ発生するものとし、且つ、ROM12内に、乱数値の更新範囲に対応するサイズの比較ROM17と同様な大当たり判定テーブル(図示せず)を設ける。そして、大当たりの判定は、比較ROM17から読み出した乱数値に対するデータの素数ビットz(17c)が「1」である場合にのみ、ROM12内の大当たり判定テーブルを更に参照し、その大当たり判定テーブルの乱数値に対するデータの大当たりビットx(17a)及び高確率大当たりビットy(17b)の状態により行うのである。なお、前記した通り、素数ビットz(17c)は対象となる乱数値が素数である場合にのみ「1」となっている。以下、前記した第1実施例と同一の部分には同一の符号を付してその説明は省略し、第1実施例と異なる部分についてのみ説明する。
図8に示すように、第3実施例のリセット割込処理では、S4〜S6の各処理によって乱数値に対するデータをDレジスタへ書き込んだ後、そのDレジスタの素数ビットz(17c)の状態を調べる(S31)。Dレジスタの素数ビットz(17c)が「1」であれば(S31:Yes)、対象となる乱数値は素数であるので、大当たりの可能性がある。よって、かかる場合には、ROM12内の大当たり判定テーブルから乱数値であるBCレジスタの値番目のデータをリードし、そのリードしたデータをDレジスタへ書き込む(S32)。これにより、Dレジスタには乱数値に対する大当たり等のデータが記憶されるので、その後は、S7及びS8の各処理によって、Dレジスタの大当たりビットx(17a)及び高確率大当たりビットy(17b)の状態により、大当たり等の発生を判定する。
なお、S31の処理において、素数ビットz(17c)が「0」であれば(S31:No)、対象となる乱数値は素数ではないので、大当たりの可能性は無い。よって、かかる場合には、S32,S7〜S10の各処理をスキップして、処理をS11へ移行する。
以上説明したとおり、第3実施例のパチンコ遊技機Pによれば、乱数値が素数である場合に限り大当たりを発生させるので、大当たりの判定は素数ビットzが「1」である場合にのみ行えばよい。よって、大当たりの判定回数を少なくして制御を効率よく実行することができる。また、このように大当たりの判定を2段階で、即ち、比較ROM17のデータとROM12内の大当たり判定テーブルのデータとで行うことにより、比較ROM17が不正なROMに交換されても、大当たりを不当に発生させることはできない。よって、不正行為の防止効果を一層向上させることができる。
なお、この第3実施例を次のように変形しても良い。即ち、第3実施例の大当たり判定テーブルに代えて、ROM12内に、大当たりとなる乱数値を記憶する大当たりテーブルと、高確率大当たりとなる乱数値を記憶する高確率大当たりテーブルとをそれぞれ設ける。そして、比較ROM17から読み出したデータの素数ビットzが「1」である場合に、対象となる乱数値が、ROM12内の大当たりテーブル及び高確率大当たりテーブルに記憶されるか否かを判断して、大当たり及び高確率大当たりの発生を判定するように構成するのである。この変形例においても、大当たりの判定は乱数値が素数である場合にのみ行われるので、大当たりの判定回数を少なくでき、遊技の制御に支障を来すことがない。
また、第3実施例において、大当たりを発生させる乱数値を例えば「7〜1035」、高確率大当たりを発生させる乱数値を例えば「7〜273」というように、それぞれ連続した範囲で定めておき、素数ビットzが「1」である場合に限り、その乱数値が該範囲内の値であるか否かを判断して、大当たりの判定を行うようにしても良い。この場合、大当たりの判定を範囲で行うことになるが、素数は連続して存在しないので、範囲全体が1個の乱数値として機能することはなく、乱数値の更新範囲を広げた意味を失うことはない。なお、この変形例では、大当たり判定テーブルは使用しないので、削除する。
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、本実施例では、乱数値に対する大当たり等のデータを記憶する比較ROMはMPU11と別体に構成されたが、この比較ROM17をMPU11と一体に、即ち、MPU11に内蔵しても良い。比較ROM17をMPU11に内蔵すれば、比較ROM17を不正に交換することができなくなるので、不正行為の防止効果を一層向上することができる。
以下に本発明の変形例を示す。請求項1記載の遊技機の制御装置において、前記記憶手段はI/Oアドレス上に配置されていることを特徴とする遊技機の制御装置1。乱数値に対応して所定のデータ(例えば、大当たり等のデータ)を記憶する記憶手段を、メモリアドレス上では無く、I/Oアドレス上に配置することにより、メモリアドレスを有効に使用することができる。例えば、乱数カウンタを16ビットカウンタで構成し、記憶手段をメモリアドレス上へ配置すると、0000〜0FFFFhのメモリ空間をすべて記憶手段に専有されてしまう。しかし、記憶手段をI/Oアドレス上に配置することにより、0000〜0FFFFhのメモリ空間を記憶手段以外のアドレスとして有効に使用することができるのである。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1において、遊技の制御を行うMPUを備え、前記記憶手段は、そのMPUに内蔵されていることを特徴とする遊技機の制御装置2。記憶手段をMPUに内蔵することにより、所定の遊技価値(例えば、大当たり)を不当に発生させるために、その記憶手段を不正なものに交換する行為を防止することができる。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1若しくは2において、前記読出手段によって読み出される前記記憶手段のデータには、大当たりの発生の有無を示す大当たりビットが設けられていることを特徴とする遊技機の制御装置3。大当たりビットの状態により大当たりの発生の有無が判定される。
遊技機の制御装置3において、前記大当たりビットのビット位置は、前記記憶手段へアドレスとして出力される乱数値に応じて変化することを特徴とする遊技機の制御装置4。大当たりビットのビット位置が固定されていると、そのビット位置の信号線を切断しプルアップ(又はプルダウン)することにより、その信号線の出力を「1(又は0)」に固定して不当に大当たりを発生させることができる。しかし、大当たりビットのビット位置を乱数値に応じて変化させることにより、かかる不正を防止することができる。例えば、大当たりビットの1ビット前(大当たりビットが第0ビットである場合には第7ビット)の値が「0」であり、且つ、大当たりビットが「1」である場合に大当たりを発生させるのである。この方式によれば、すべての信号線を切断しプルアップした場合には、大当たりは全く発生しない。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1若しくは2において、前記読出手段によって読み出される前記記憶手段のデータには、前記記憶手段へアドレスとして出力された乱数値が素数であることを示す素数ビットが設けられていることを特徴とする遊技機の制御装置5。乱数値が素数である場合に限り大当たりを発生させれば、素数ビットが「1(又は0)」である場合にのみ、大当たりの判定を行えばよいので、大当たりの判定回数を少なくして制御を効率よく実行することができる。また、このように大当たりの判定を2段階で行うことにより、記憶手段が不正交換されても、大当たりを不当に発生させることはできないので、不正行為の防止効果を一層向上させることができる。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1から5のいずれかにおいて、前記乱数カウンタの更新は、ソフト制御ではカウント値の更新が追従できない高速パルスにより行われることを特徴とする遊技機の制御装置6。よって、「ぶら下げ基板」等によるソフト制御では、乱数カウンタに追従させてカウント値の更新を行うことができないので、「ぶら下げ基板」等による乱数値の把握を不可能にすることができる。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1から6のいずれかにおいて、遊技の制御を行うMPUを備え、前記乱数カウンタによるカウント値の更新は、そのMPUの動作クロックと非同期のクロックにより行われることを特徴とする遊技機の制御装置7。よって、「ぶら下げ基板」等によるソフト制御では、乱数カウンタの更新に同期させてカウント値の更新を行うことができないので、「ぶら下げ基板」等による乱数値の把握を不可能にすることができる。加えて、かかる乱数カウンタのカウント値を更新するクロックが、ソフト制御ではそのカウント値の更新を追従できないほどの高速なクロックであれば、「ぶら下げ基板」等のソフト制御による乱数値の把握を一層困難なものとすることができる。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1から7のいずれかにおいて、前記乱数カウンタは、遊技の制御状態に応じて非等間隔に絶えず出力される信号によりカウント値の更新を行うことを特徴とする遊技機の制御装置8。よって、乱数カウンタの更新は非等間隔に絶えず行われるので、「ぶら下げ基板」等による乱数値の把握を不可能にすることができる。
請求項1記載の遊技機の制御装置、又は、遊技機の制御装置1から8のいずれかにおいて、遊技の制御を行うMPUを備え、前記乱数カウンタは、そのMPUから出力されるM1信号、メモリ・リクエスト信号、IOリクエスト信号、リード信号、ライト信号、リフレッシュ信号、ウエイト信号、バス・リクエスト信号、バス・アクノリッジ信号、少なくとも1本のアドレスバスの信号、または、少なくとも1本のデータバスの信号のうち、いずれかの信号に基づいてカウント値を更新することを特徴とする遊技機の制御装置9。これらの信号は、遊技の制御状態に応じて、いずれも非等間隔に絶えず出力されるので、該信号の発生回路を別途設ける必要がなく、回路コストを低減することができる。なお、前記した信号のうち、いくつかの信号を組み合わせて使用しても良い。
請求項1記載の遊技機の制御装置、遊技機の制御装置1から9のいずれかにおいて、前記乱数カウンタによる乱数値の更新は不定値から開始されることを特徴とする遊技機の制御装置10。例えば、電源投入時において、乱数カウンタのカウント値である乱数値の初期化を行わず、電源投入時における不定値から乱数値の更新を行うことにより、「ぶら下げ基板」等による乱数値の把握を困難なものとすることができる。