JP4408096B2 - スロットマシン - Google Patents

スロットマシン Download PDF

Info

Publication number
JP4408096B2
JP4408096B2 JP2005168020A JP2005168020A JP4408096B2 JP 4408096 B2 JP4408096 B2 JP 4408096B2 JP 2005168020 A JP2005168020 A JP 2005168020A JP 2005168020 A JP2005168020 A JP 2005168020A JP 4408096 B2 JP4408096 B2 JP 4408096B2
Authority
JP
Japan
Prior art keywords
data
determination
value
game
setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005168020A
Other languages
English (en)
Other versions
JP2006340832A (ja
Inventor
隆 福田
征也 平田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sankyo Co Ltd
Original Assignee
Sankyo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sankyo Co Ltd filed Critical Sankyo Co Ltd
Priority to JP2005168020A priority Critical patent/JP4408096B2/ja
Publication of JP2006340832A publication Critical patent/JP2006340832A/ja
Application granted granted Critical
Publication of JP4408096B2 publication Critical patent/JP4408096B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Slot Machines And Peripheral Devices (AREA)

Description

本発明は、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置の表示結果に応じて所定の入賞が発生可能なスロットマシンに関する。
従来、この種のスロットマシンでは、ゲームの開始とほぼ同時に入賞の発生を許容するか否かを決定する内部抽選を行い、この内部抽選に当選したことを条件に、当選した入賞の発生が許容されるものが一般的である。また、スロットマシンを設置して営業する遊技店では、売上を調整するうえで設置されたスロットマシンの入賞確率の段階を変更する必要があることから、このようなスロットマシンにおいては、遊技店の従業員等の操作によって、内部抽選の抽選確率として適用される当選確率の段階を示す値である設定値を、異なる確率が定められた複数の値から選択・設定できるようになっている。
スロットマシンには、遊技の制御を行うマイクロコンピュータ等からなる制御部が搭載されており、この制御部により前述の内部抽選も行われている。また、この制御部には遊技の制御を行うためのデータを書き換え可能なメモリ(RAM)を備えており、遊技店の従業員等の操作により選択・設定された設定値もこのメモリに記憶されることとなるが、例えば、電源投入時にメモリのデータがバックアップされていない場合やメモリのデータが破壊されている場合、マイクロコンピュータの不具合(CPUの暴走など)によりリセットがかかった場合等、メモリのデータに異常が生じうることがあり、このような場合には、もとの状態に復帰することが不可能となるので、メモリの記憶状態が初期化される。もちろん設定値もメモリに記憶されているので、もともと設定されていた設定値を復帰させることも不可能である。
このため、従来のスロットマシンでは、メモリのデータに異常が生じると、メモリのデータを初期化するとともに、設定値には、予め定められた設定値(例えば、払出率が100%に近い当選確率を定めた設定値や払出率が最も低くなる当選確率を定めた設定値)を自動的に設定し、ゲームの進行が可能な状態に復帰させていた(例えば、特許文献1参照)。また、予め定められた設定値を自動的に設定した後、遊技店の従業員等によるリセット操作(主にエラー解除や打止状態の解除を行うための操作)によりゲームの進行が可能な状態に復帰させていた(例えば、特許文献2参照)。
また、近年においては、意図的に不正な電波や信号を加えることにより、メモリに記憶されている設定値、すなわち遊技店側が選択・設定した設定値を払出率の高い設定値に書き換える不正行為がなされることがある。このため、設定値が変更された際に、内部抽選を行う際に読み込む設定値が記憶されるメモリとは異なるサブメモリにも変更後の設定値を記憶し、ゲーム開始時に内部抽選に適用する設定値と、サブメモリに記憶されている設定値とを比較し、双方の設定値が一致しない場合においてエラー信号を出力し、ゲームの処理を中断するようにしたスロットマシンが提案されている(例えば、特許文献3参照)。
特開平6−114140号公報 特開2000−296200号公報 特開2005−6940号公報
特許文献3に記載されたスロットマシンでは、内部抽選に適用する設定値が遊技店側によって設定された設定値と異なるため、エラー信号が出力され、ゲームの処理が中断した場合に、どのように復帰させるかについて特に記載されていないが、例えば、特許文献2に記載されているように、エラーが生じた場合には、遊技店の従業員等によるリセット操作によりゲームの処理を復帰させるものが一般的であるので、同様に復帰させることが考えられる。すなわち予め定められた設定値を自動的に設定した後、遊技店の従業員等によるリセット操作によりゲームの処理を復帰させると考えられる。
しかしながら、内部抽選に適用する設定値が遊技店側によって設定された設定値と異なるため、エラー信号が出力され、ゲームの処理が中断した場合には、不正行為がなされた可能性が高いためにゲームの処理が中断したにも関わらず、リセット操作、すなわち通常のエラーの解除と同様の簡単な手順でゲームの処理が復帰してしまうので、かかる不正行為が発見される前に、不正行為を行った者によってエラーが解除されてしまう可能性があり、このような不正行為を十分に防止できない虞がある。
更に、本来であれば、遊技店側の操作により選択・設定された設定値に基づく当選確率を適用して内部抽選が行われ、入賞の発生が許容されるべきであるのに、遊技店の従業員等によりリセット操作がなされることでゲームの処理が復帰し、スロットマシンの制御により自動的に設定された予め定められた設定値に基づく当選確率を適用して内部抽選が行われることとなる。すなわち本来であれば遊技店側が選択した設定値に基づいてゲームが行われるべきところを、スロットマシンにより自動的に設定された設定値に基づいてゲームが行われることとなるため、ゲームの公平性が損なわれてしまうという問題があった。
本発明は、このような問題点に着目してなされたものであり、不正行為を効果的に防止できるとともに、ゲームの公平性を図ることができるスロットマシンを提供することを目的とする。
本発明の請求項に記載のスロットマシンは、
1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置の表示結果が導出されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシンであって、
遊技の制御を行うメイン制御手段を備え、
前記メイン制御手段は、
前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段と、
所定の設定操作手段の操作に基づいて、入賞の発生を許容する旨が決定される割合が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段と、
前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の複数の異なる記憶領域に設定する設定値設定手段と、
前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段と、
前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段と、
前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段と、
ゲームの開始操作がなされる毎に、前記メインデータ記憶手段の複数の異なる記憶領域にそれぞれ記憶されている設定値データを読み出し、全ての設定値データが一致する場合に前記読み出した設定値データが適正であると判定し、いずれか1つでも一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段と、
前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段と、
前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段と、
前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段と、
を含む
ことを特徴としている。
この特徴によれば、設定値が変更された際に、変更後の設定値データがメインデータ記憶手段の複数の異なる記憶領域に設定されるとともに、これら複数の異なる記憶領域に記憶されている設定値データが全て一致するか否かが1ゲーム毎に判定され、いずれか1つでも一致しないと判定された場合にはゲームの進行が不能化される。すなわち通常ではメインデータ記憶手段の複数の異なる記憶領域に記憶されている設定値データが全て一致するはずであり、これらの設定値データが1つでも一致しなければ、不正に設定値データが書き換えられた可能性があるので、この場合にはゲームの進行が不能化される。このゲームの進行が不能化された状態は、設定操作手段の操作に基づいて設定値が新たに選択・設定されることで解除される。このため、不正に設定値データが書き換えられた可能性がある場合においてゲームを再開するためには、通常のエラーを解除するためのリセット操作よりも手間のかかる設定値の変更操作を行う必要があるので、かかる不正行為を効果的に防止することができる。
また、不正に設定値データが書き換えられた可能性がある場合には、スロットマシンにより自動的に設定された設定値ではなく、設定操作手段の操作に基づいて選択・設定された設定値(一般的に、設定操作手段の操作は遊技店の従業員により操作されるので、遊技店側が選択した設定値である)に基づいてゲームが行われることとなるので、ゲームの公平性を図ることができる。
また、メインデータ記憶手段に記憶されているデータに異常が生じた場合にはゲームの進行が不能化されるとともに、この場合にも設定操作手段の操作に基づいて設定値(設定値)を新たに選択・設定することで、ゲームの進行が不能化された状態が解除される。すなわち、メインデータ記憶手段に記憶されているデータに異常が生じても、設定操作手段の操作に基づいて選択・設定された設定値に基づいてゲームが行われることとなるので、ゲームの公平性を図ることができる。
また、メインデータ記憶手段に記憶されたデータに異常が生じるのは、停電時やメイン制御手段の制御に不具合が生じて制御を続行できないときがほとんどであるため、これらの状態から復旧してメイン制御手段が起動するときにおいてのみデータが正常か否かの判定を行うことで、当該判定をデータに異常が生じている可能性が高い状況においてのみ行うようにできる。すなわちデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、メイン制御手段の負荷を軽減させることができる。
本発明の請求項に記載のスロットマシンは、
1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置の表示結果が導出されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシンであって、
遊技の制御を行うメイン制御手段を備え、
前記メイン制御手段は、
前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段と、
所定の設定操作手段の操作に基づいて、入賞の発生を許容する旨が決定される割合が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段と、
前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の第1の記憶領域に設定する設定値設定手段と、
前記第1の記憶領域とは異なる前記メインデータ記憶手段の第2の記憶領域に、入賞の発生を許容するか否かを決定する際に前記第1の記憶領域から読み出した設定値データを履歴として設定する履歴設定値設定手段と、
前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段と、
前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段と、
前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段と、
ゲームの開始操作がなされる毎に、前記第1の記憶領域に記憶されている設定値データ及び前記第2の記憶領域に記憶されている設定値データを読み出し、双方が一致する場合に前記読み出した設定値データが適正であると判定し、一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段と、
前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段と、
前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段と、
前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段と、
を含む
ことを特徴としている。
この特徴によれば、今回のゲームにおいて事前決定手段が用いるために第1の記憶領域から読み出した設定値データと、第2の記憶領域に記憶されている前回のゲーム以前に事前決定手段が用いた設定値データと、が一致するか否かが1ゲーム毎に判定され、一致しないと判定された場合にはゲームの進行が不能化される。すなわち通常では今回のゲームにおいて事前決定手段が用いる設定値データと、前回のゲーム以前に事前決定手段が用いた設定値データと、が一致するはずであり、これらのデータが一致しなければ、不正に設定値データが書き換えられた可能性があるので、この場合にはゲームの進行が不能化される。このゲームの進行が不能化された状態は、設定操作手段の操作に基づいて設定値が新たに選択・設定されることで解除される。このため、不正に設定値データが書き換えられた可能性がある場合においてゲームを再開するためには、通常のエラーを解除するためのリセット操作よりも手間のかかる設定値の変更操作を行う必要があるので、かかる不正行為を効果的に防止することができる。
また、不正に設定値データが書き換えられた可能性がある場合には、スロットマシンにより自動的に設定された設定値ではなく、設定操作手段の操作に基づいて選択・設定された設定値(一般的に、設定操作手段の操作は遊技店の従業員により操作されるので、遊技店側が選択した設定値である)に基づいてゲームが行われることとなるので、ゲームの公平性を図ることができる。
また、メインデータ記憶手段に記憶されているデータに異常が生じた場合にはゲームの進行が不能化されるとともに、この場合にも設定操作手段の操作に基づいて設定値(設定値)を新たに選択・設定することで、ゲームの進行が不能化された状態が解除される。すなわち、メインデータ記憶手段に記憶されているデータに異常が生じても、設定操作手段の操作に基づいて選択・設定された設定値に基づいてゲームが行われることとなるので、ゲームの公平性を図ることができる。
また、メインデータ記憶手段に記憶されたデータに異常が生じるのは、停電時やメイン制御手段の制御に不具合が生じて制御を続行できないときがほとんどであるため、これらの状態から復旧してメイン制御手段が起動するときにおいてのみデータが正常か否かの判定を行うことで、当該判定をデータに異常が生じている可能性が高い状況においてのみ行うようにできる。すなわちデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、メイン制御手段の負荷を軽減させることができる。
尚、請求項1、2において、所定数の賭数とは、少なくとも1以上の賭数であって、2以上の賭数が設定されることや最大賭数が設定されることでゲームが開始可能となるようにしても良い。また、複数の遊技状態に応じて定められた賭数が設定されることでゲームが開始可能となるようにしても良い。
また、請求項1、2において、メインデータ記憶手段は、メイン制御手段を構成するマイクロコンピュータに内蔵されていても良いし、マイクロコンピュータの外部に備えていても良い。
本発明の請求項に記載のスロットマシンは、請求項1または2に記載のスロットマシンであって、
前記メインデータ記憶手段の記憶領域には、前記メイン制御手段が動作を行うためのデータが記憶されるワーク領域と、前記メイン制御手段が動作を行うためのデータの読み出し及び書き込みが行われることのない未使用領域と、が割り当てられており、
前記メイン制御手段は、前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段を含み、
該初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用領域を1ゲーム毎に初期化する
ことを特徴としている。
この特徴によれば、メインデータ記憶手段における未使用領域が1ゲーム毎に初期化されるので、メインデータ記憶手段の未使用領域を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できる。
尚、初期化手段は、1ゲームのうちのいずれかのタイミング(例えば、ゲーム開始時や終了時、1ゲーム毎に必ず実行される処理の実行時等)で少なくとも1回は、メインデータ記憶手段における未使用領域を初期化するものであれば良い。
本発明の請求項に記載のスロットマシンは、請求項1〜のいずれかに記載のスロットマシンであって、
前記メインデータ記憶手段の記憶領域には、前記メイン制御手段が動作を行うためのデータが記憶されるワーク領域と、データを一時的に格納することが可能なスタック領域と、が割り当てられており、
前記メイン制御手段は、
前記メイン制御手段が使用中のデータを前記スタック領域に退避するデータ退避手段と、
前記退避手段により前記スタック領域に退避したデータを前記メイン制御手段が使用するデータとして復帰させるデータ復帰手段と、
前記スタック領域のうち前記データ退避手段により退避したデータが記憶されていない未使用スタック領域を特定する未使用スタック領域特定手段と、
前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段と、
を含み、
前記初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用スタック領域特定手段により特定される未使用スタック領域を1ゲーム毎に初期化する
ことを特徴としている。
この特徴によれば、メインデータ記憶手段のスタック領域における未使用スタック領域が1ゲーム毎に初期化されるので、未使用スタック領域を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できるとともに、例えば、未使用スタック領域に不正なデータ(不正プログラムが指定するアドレス等)を加え、データの復帰時にメイン制御手段を誤作動させることでレジスタ等を不正なものに書き換えてしまうことにより、本来のプログラムとは異なる動作を行わせてしまうような不正も防止できる。
尚、初期化手段は、1ゲームのうちのいずれかのタイミング(例えば、ゲーム開始時や終了時、1ゲーム毎に必ず実行される処理の実行時等)で少なくとも1回は、未使用スタック領域を初期化するものであれば良い。
本発明の手段1に記載のスロットマシンは、請求項またはに記載のスロットマシンであって、
前記初期化手段は、複数種類の初期化条件のうちいずれかの初期化条件が成立したときに、該成立した初期化条件の種類に対応して定められた領域を初期化するとともに、該成立した初期化条件の種類に関わらず前記メインデータ記憶手段の記憶領域における未使用領域及び/または前記未使用スタック領域を必ず初期化する
ことを特徴としている。
この特徴によれば、複数種類の初期化条件のうちどの条件が成立した場合でも、必ずメインデータ記憶手段における未使用領域及び/またはスタック領域における未使用スタック領域が初期化されることとなるので、不正プログラムが常駐してしまうことを一層確実に防止できる。
尚、複数種類の初期化条件は、1ゲームのうちのいずれかのタイミング(例えば、ゲーム開始時や終了時、1ゲーム毎に必ず実行される処理の実行時等)で成立する初期化条件を含むものである。
本発明の手段2に記載のスロットマシンは、請求項3、4、手段1のいずれかに記載のスロットマシンであって、
前記メインデータ記憶手段には、記憶領域を特定するアドレスが割り当てられているとともに、
前記初期化手段は、2種類以上の初期化条件の種類に対応して前記メインデータ記憶手段における初期化開始アドレスが設定されるとともに、該初期化条件に共通する初期化終了アドレスが設定された初期化領域設定手段を含み、前記初期化条件が成立したときに、該初期化条件の種類に対応して前記初期化領域設定手段に設定された初期化開始アドレスから前記初期化終了アドレスまでの各アドレスが割り当てられた記憶領域を初期化する
ことを特徴としている。
この特徴によれば、2種類以上の初期化条件の種類に対応する初期化開始アドレスとこれら初期化条件に共通の初期化終了アドレスのみを設定しておくことで、初期化条件の種類に対応する初期化終了アドレスを個々に設定しておくことなく、初期化条件の種類に対応する記憶領域を初期化することができるので、複数種類の初期化を行うためのプログラム容量を削減できる。
本発明の手段3に記載のスロットマシンは、手段1または手段2に記載のスロットマシンであって、
前記メインデータ記憶手段には、記憶領域を特定するアドレスが割り当てられているとともに、
前記初期化手段は、初期化条件の種類に対応して前記メインデータ記憶手段における初期化開始アドレスと該初期化開始アドレスに対して初期化される記憶領域のサイズが設定された初期化領域設定手段を含み、前記初期化条件が成立したときに、該初期化条件の種類に対応して前記初期化領域設定手段に設定された初期化開始アドレスから該初期化アドレスに対して設定されたサイズの記憶領域を初期化する、
ことを特徴としている。
この特徴によれば、初期化条件の種類に対応する初期化開始アドレスとその際初期化される記憶領域のサイズのみを設定しておくことで、初期化条件の種類に対応する初期化終了アドレスを個々に設定しておくことなく、初期化条件の種類に対応する記憶領域を初期化することができるので、複数種類の初期化を行うためのプログラム容量を削減できる。
本発明の手段4に記載のスロットマシンは、請求項3、4、手段1〜3のいずれかに記載のスロットマシンであって、
前記スロットマシンで用いられる所定の電力の状態を監視し、電力供給が断たれたことに関わる停電条件が成立しているときに停電信号を出力する停電検出手段を備え、
前記メイン制御手段は、信号が入力されることにより外部割込を発生させる割込入力端子と、通常入力端子と、を有するマイクロコンピュータにて構成されており、
前記停電検出手段は、前記停電信号を前記マイクロコンピュータの前記割込入力端子に出力し、
前記メイン制御手段は、
前記メインデータ記憶手段における前記未使用領域及び/または前記未使用スタック領域を含む全ての記憶領域のデータを所定の演算方法にて計算するデータ演算手段と、
前記外部割込の発生に応じて、前記データ演算手段による計算結果を特定の値とするための調整用データを算出し、該算出した調整用データを前記メインデータ記憶手段に格納する処理を含む停電時割込処理を実行する停電時割込処理実行手段と、
前記メイン制御手段の起動時に、前記データ演算手段による計算結果が前記特定の値か否かを判定し、該データ演算手段による計算結果が前記特定の値であると判定したことを条件に、前記メインデータ記憶手段に記憶されているデータに基づいて前記メイン制御手段の制御状態を復帰させるメイン制御状態復帰処理を含むメイン起動処理を実行するメイン起動処理手段と、
を含む
ことを特徴としている。
この特徴によれば、メイン制御手段の起動時において、メインデータ記憶手段における未使用領域及び/または未使用スタック領域を含む全ての記憶領域に格納されているデータを所定の演算方法にて計算した結果が特定の値か否かを判定している。すなわちメインデータ記憶手段における未使用領域及び/または未使用スタック領域を含む全ての記憶領域に格納されているデータに基づいて計算された内容に基づいて、メインデータ記憶手段のデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行うことができる。また、メインデータ記憶手段の未使用領域及び/または未使用スタック領域を利用して不正プログラムが格納された場合にも、当該不正プログラムが格納されたままメイン制御手段の制御が復帰してしまうことを防止できる。
尚、前記メイン制御手段の起動時とは、前記スロットマシンへの電力供給が開始されたこと(電源投入)に伴いメイン制御手段が起動するときや、メイン制御手段に不具合(一定時間以上の動作の停止、いわゆる暴走等)が生じたことに伴うリセット信号の入力によりメイン制御手段が再起動するときが該当する。
また、停電条件が成立しているときとは、例えば、スロットマシンで用いられる直流電圧を監視し、当該電圧が電断を判断するために定められた閾値以下となったとき、またはその期間が一定期間継続したときや、スロットマシンで用いられる交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したとき、等であり、停電を検出できるものであればその他の条件であっても良い。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
いずれかの入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記複数種類の設定値に共通して記憶するとともに、前記設定値に共通して判定値データが記憶されていない入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記設定値の種類に応じて個別に記憶する判定値データ記憶手段と、
を含み、
前記事前決定手段は、前記設定値設定手段により設定された設定値に対応して前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定し、
前記判定値データ記憶手段は、前記設定値の種類に応じて個別に記憶する判定値データとして異なる判定値の数を示す異数判定値データと、前記設定値の種類に応じて個別に記憶する判定値データとして同一の判定値の数を示す同数判定値データとを、前記入賞の種類に応じて記憶する
ことを特徴としている。
この特徴によれば、判定値データ記憶手段には、いずれかの入賞について複数種類の設定値に共通して判定値データが記憶されているので、このように複数種類の設定値に共通して判定値データが記憶される入賞については、判定値データの記憶に必要な記憶容量が少なくて済むようになる。すなわち入賞の発生を許容するか否かの決定のために必要な判定値データのデータ量を抑えることができる。
また、判定値データ記憶手段には、いずれかの入賞について複数種類の設定値に共通して判定値データが記憶されているとともに、他の入賞について設定値の種類に応じたデータが個別に記憶されており、この中には、設定値の種類に応じて個別に記憶する判定値データとして同一の判定値の数を示す同数判定値データも含まれている。判定値データは、設定値に応じて事前決定手段が各々の入賞の発生を許容する旨を決定する確率を決定するものとなるが、開発用の機種においては、この判定値データを微妙に調整しながらシミュレーションを行っていくのが通常である(当初の判定値データを異なるものとしておく場合と、同じものとしておく場合とがあり得る)。そして、シミュレーションの結果で得られた適切な判定値データを量産用の機種に適用するものとしている。ここで、設定値に応じて判定値データを変化させながらシミュレーションを行った結果として設定値に関わらずに判定値データが同じものとなったとしても、そのような種類の入賞は、そのまま設定値の種類に応じて個別に判定値データを記憶させておけば良い。
また、当初は設定値の種類に応じて個別に同一の判定値を示す同数判定値データとして判定値データを記憶させておいた場合、シミュレーションの結果により当初登録しておいた判定値データのままでよければ、そのまま同数判定値データとして判定値データ記憶手段に記憶させておくことができる。シミュレーションの結果として当初登録しておいた判定値データで問題があったときには、設定値に応じて判定値データを変化させ、異数判定値データとして判定値データ記憶手段に記憶させることができる。このため、開発用の機種における判定値データの記憶態様を量産用の機種においてそのまま転用することができるので、最初の設計段階から量産用の機種に至るまでの開発を容易に行うことができる。
尚、判定値データを設定値の種類に応じて個別に記憶するとは、必ずしも設定値の種類の数だけ個別に判定値データを記憶するものだけを意味するものではなく、全ての設定値の種類に共通して判定値データを記憶するのでなければ、これに含まれるものとなる。例えば、設定値の種類が6種類(第1段階〜第6段階)ある場合、第1〜第3段階までは共通、第4〜第6段階までは共通といった場合も、判定値データを設定値の種類に応じて個別に記憶するものとなる。
また、前記設定値設定手段により設定可能な複数種類の設定値は、前記事前決定手段が入賞の発生を許容する割合がその全ての種類において互いに異なっていなければならないというものではなく、一部の種類における前記許容する割合が他の種類における前記許容する割合と異なっていれば良い。もっとも、全ての種類において異なっていることを妨げるものではない。
また、前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データとは、判定値の数そのものであっても良いし、判定値の範囲を定義することによって判定値の数を示すデータであっても良い。
また、前記事前決定手段が、複数種類の入賞(例えば、遊技状態の移行を伴う特別入賞と遊技用価値の付与を伴う小役入賞など)の発生を同時に許容する旨を決定する場合と、いずれかの種類の入賞の発生を単独で許容する旨を決定する場合と、を含む場合に、前記判定値データ記憶手段は、判定値データを入賞の種類毎に記憶するものに限らず、複数種類の入賞の発生を同時に許容する旨を決定することとなる判定値の数を示す判定値データと、いずれかの種類の入賞の発生を単独で許容する旨を決定することとなる判定値の数を示す判定値データと、を個別に記憶するようにしても良い。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシンは、
所定周波数のパルス信号を発生するパルス発生回路と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの数値データとして入力する入力手段と、
を更に備え、
前記数値データ入力手段は、前記特定領域に入力されたnビットの数値データのうちの特定のビットのデータと、該数値データのうちの他のビットのデータを入れ替えて、該入れ替えを行ったnビットの入替数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
この特徴によれば、カウンタ回路から抽出したnビット配列のデータ信号に対応した数値データに対して、入替手段によって特定のビットのデータと他のビットのデータを入れ替えた入替数値データを、判定用数値データとして入力するものとしている。このため、賞の発生を許容するか否かを決定するために用いる判定値をバラつかせなくても、その判定に用いる判定用数値データの周期性を失わせることができる。これにより、入賞の種類毎に判定値の数を示す判定値データを用いることで入賞の種類毎に判定値が固まってしまっても、遊技者による狙い打ちの防止を図ることができるようになる。また、特定のビットの入れ替えだけで、入力手段が入力した数値データの周期性を失わせることができ、特別な回路を設けることなく、処理負荷がそれほど大きくならない。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシンは、
所定周波数のパルス信号を発生するパルス発生回路と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段と、
所定のタイミングで第2の数値データを更新する数値更新手段と、
前記所定の抽出条件が成立することにより、前記数値更新手段が更新する第2の数値データを抽出する数値抽出手段と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記数値抽出手段が抽出した第2の数値データを用いて所定の演算を行う演算手段と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと前記下位jビ
ットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
この特徴によれば、第2の数値データを用いて第1の数値データに対してそのまま演算を行うのではなく、第1の数値データの上位kビットに対して演算を行うことにより演算結果数値データが示す数値のバラツキが大きくなる。このため、入賞の発生を許容するか否かを決定するために用いる判定値をバラつかせなくても、その判定に用いる判定用数値データの周期性を失わせることができる。これにより、入賞の種類毎に判定値の数を示す判定値データを用いることで入賞の種類毎に判定値が固まってしまっても、遊技者による狙い打ちの防止を図ることができるようになる。また、数値更新手段からの第2の数値データの抽出と上位kビットに対する演算だけで、入力手段が入力した第1の数値データの周期性を失わせることができ、特別な回路を設けることなく、処理負荷がそれほど大きくならない。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシンは、
所定周波数のパルス信号を発生するパルス発生回路と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段と、
所定のタイミングで第2の数値データを更新する第1の数値更新手段と、
所定のタイミングで前記第2の数値データとは異なる第3の数値データを更新する第2の数値更新手段と、
予め定められた抽出条件が成立することにより、前記第1の数値更新手段から第2の数値データを抽出する第1の数値抽出手段と、
所定の抽出条件が成立することにより、前記第2の数値更新手段から第3の数値データ
を抽出する第2の数値抽出手段と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記第1の数値抽出手段が抽出した第2の数値データを用いて所定の演算を行い、下位jビットに対して前記第2の数値抽出手段が抽出した第3の数値データを用いて所定の演算を行う演算手段と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと該演算後の下位jビットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
この特徴によれば、第2の数値データを用いて第1の数値データに対してそのまま演算を行うのではなく、第1の数値データの上位kビットに対しても演算を行うことにより演算結果数値データが示す数値のバラツキが大きくなる。下位jビットに対しても演算を行うことによりバラツキが更に大きくなる。このため、入賞の発生を許容するか否かを決定するために用いる判定値をバラつかせなくても、その判定に用いる判定用数値データの周期性を失わせることができる。これにより、入賞の種類毎に判定値の数を示す判定値データを用いることで入賞の種類毎に判定値が固まってしまっても、遊技者による狙い打ちの防止を図ることができるようになる。また、第1、第2の数値更新手段からの第2、第3の数値データの抽出と上位kビット及び下位jビットに対する演算だけで、入力手段が入力した第1の数値データの周期性を失わせることができ、特別な回路を設けることなく、処理負荷がそれほど大きくならない。
尚、請求項において、前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データとは、判定値の数そのものであっても良いし、判定値の範囲を定義することによって判定値の数を示すデータであっても良い。
また、請求項において、前記事前決定手段が、複数種類の入賞(例えば、遊技状態の移行を伴う特別入賞と遊技用価値の付与を伴う小役入賞など)の発生を同時に許容する旨を決定する場合と、いずれかの種類の入賞の発生を単独で許容する旨を決定する場合と、を含む場合に、前記判定値データ記憶手段は、判定値データを入賞の種類毎に記憶するものに限らず、複数種類の入賞の発生を同時に許容する旨を決定することとなる判定値の数を示す判定値データと、いずれかの種類の入賞の発生を単独で許容する旨を決定することとなる判定値の数を示す判定値データと、を個別に記憶するようにしても良い。
本発明の請求項に記載のスロットマシンは、請求項1〜8、手段1〜4のいずれかに記載のスロットマシンであって、
前記スロットマシンで用いられる所定の電力の状態を監視し、電力供給が断たれたことに関わる停電条件が成立しているときに停電信号を出力する停電検出手段を備え、
前記メイン制御手段は、信号が入力されることにより外部割込を発生させる割込入力端子と、通常入力端子と、を有するマイクロコンピュータにて構成されており、
前記停電検出手段は、前記停電信号を前記マイクロコンピュータの前記割込入力端子に出力し、
前記メイン制御手段は、前記外部割込の発生に応じて、前記メインデータ記憶手段における記憶領域に0以外の特定のデータを格納した後、該特定のデータを含む前記記憶領域のデータを排他的論理和演算した結果が0となる調整用データを算出し、該算出した調整用データを前記記憶領域に格納する処理を含む停電時割込処理を実行する停電時割込処理実行手段を更に含み、
前記記憶データ判定手段は、前記メイン制御手段の起動時に前記メインデータ記憶手段における記憶領域のデータを排他的論理和演算した結果が0であるか否か、及び前記記憶領域に前記特定のデータが格納されているか否か、を判定し、前記記憶領域のデータを排他的論理和演算した結果が0であると判定し、かつ前記記憶領域に前記特定のデータが格納されていると判定したことを条件に、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致すると判定する
ことを特徴としている。
この特徴によれば、停電時にメインデータ記憶手段の記憶領域に0以外の特定のデータを格納した後、該特定のデータを含む記憶領域のデータを排他的論理和演算した結果が0となる調整用データを更に格納し、起動時にメインデータ記憶手段の記憶領域のデータを排他的論理和演算した結果が0であり、かつ0以外の特定のデータが格納されていることを条件に、メインデータ記憶手段にバックアップされているデータが正常であると判定されるので、メインデータ記憶手段の記憶領域のデータがクリアされてしまった場合には、特定のデータが格納されるべき領域も0となり、このような場合には、メインデータ記憶手段にバックアップされているデータが正常ではないと判定され、誤ってバックアップされているデータが正常であると判定されてしまうことを防止できるので、起動時においてバックアップされているデータが正しい内容であるか否かの判定精度を高めることができる。
尚、前記メイン制御手段の起動時とは、前記スロットマシンへの電力供給が開始されたこと(電源投入)に伴いメイン制御手段が起動するときや、メイン制御手段に不具合(一定時間以上の動作の停止、いわゆる暴走等)が生じたことに伴うリセット信号の入力によりメイン制御手段が再起動するときが該当する。
また、停電条件が成立しているときとは、例えば、スロットマシンで用いられる直流電圧を監視し、当該電圧が電断を判断するために定められた閾値以下となったとき、またはその期間が一定期間継続したときや、スロットマシンで用いられる交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したとき、等であり、停電を検出できるものであればその他の条件であっても良い。
本発明の手段5に記載のスロットマシンは、請求項に記載のスロットマシンであって、
前記メイン制御手段は、前記記憶データ判定手段により、前記メインデータ記憶手段の記憶領域のデータを排他的論理和演算した結果が0であると判定され、かつ前記記憶領域に前記特定のデータが格納されていると判定された場合に、該記憶領域に格納されている前記特定のデータを該特定のデータ以外のデータに更新する特定データ更新手段を含む
ことを特徴としている。
この特徴によれば、起動後もメインデータ記憶手段の記憶領域に特定のデータが格納されたままの状態となることで、次回起動時においてメインデータ記憶手段のデータが正常にバックアップされていないにも関わらず、特定のデータが格納されているために正常にバックアップされていると誤って判定されてしまうことを防止できる。
尚、記憶領域に格納されている前記特定のデータを該特定のデータ以外のデータに更新するとは、例えば、特定のデータが格納されている領域の値を0に更新したり、予め定められた初期値に更新したりすることである。
本発明の請求項10に記載のスロットマシンは、請求項1〜9、手段1〜5のいずれかに記載のスロットマシンであって、
前記メイン制御手段は、
前記メイン制御手段の起動時に、前記設定操作手段による前記設定値の設定操作が有効となる設定操作有効状態へ移行させるための移行操作手段の操作がなされているか否かを判定する移行操作判定手段と、
前記メイン制御手段の起動時において、前記移行操作判定手段により前記移行操作手段の操作がなされていると判定されたことを条件に、前記設定操作有効状態へ移行させる設定操作有効状態移行手段と、
前記メイン制御手段の起動時において、前記記憶データ判定手段により前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたとき、または前記移行操作判定手段により前記移行操作手段の操作がなされていると判定され、前記設定操作有効状態に移行するときに、前記メインデータ記憶手段において前記メイン制御手段が使用中のデータが格納されている領域を除く全ての領域を初期化する初期化手段と、
を含み、
前記移行操作判定手段は、前記メイン制御手段の起動時において、前記記憶データ判定手段が前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かを判定する前に、前記移行操作手段の操作がなされているか否かを判定し、
前記記憶データ判定手段は、前記移行操作判定手段により前記移行操作手段の操作がなされていないと判定されたときに、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かを判定する
ことを特徴としている。
この特徴によれば、メインデータ記憶手段のデータに異常が生じて、遊技の進行が不能化された場合には、その状態を解除するために設定操作有効状態へ移行させることに伴って、メインデータ記憶手段においてメイン制御手段が使用中のデータが格納されている領域を除く全ての領域が初期化されるので、メインデータ記憶手段のデータに異常が生じたことに伴うデータの初期化及び設定値の設定に伴うデータの初期化を1度で行うことができ、無駄な処理を省くことができる。更に、メイン制御手段の起動時には、記憶データ判定手段によりデータが正常か否かが判定される前に、移行操作判定手段により移行操作手段の操作がなされているか否かが判定され、その時点で移行操作手段の操作がなされていると判定された場合には、記憶データ判定手段による判定は行われず、設定操作有効状態に移行し、新たに設定値の設定が行われることとなり、この場合にも無駄な処理を省くことができる。
尚、前記初期化手段は、前記設定操作有効状態に移行することを契機に、前記メインデータ記憶手段において前記メイン制御手段が使用中のデータが格納されている領域を除く全ての領域を初期化するものであれば良く、設定操作有効状態に移行する前、設定操作有効状態への移行中、設定操作有効状態の終了などを契機に、前記メインデータ記憶手段において前記メイン制御手段が使用中のデータが格納されている領域を除く全ての領域を初期化するものであれば良い。
本発明の実施例を以下に説明する。
本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン1は、前面が開口する筐体(図示略)と、この筺体の側端に回動自在に枢支された前面扉と、から構成されている。
本実施例のスロットマシン1の筐体内部には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉に設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図2に示すように、それぞれ「赤7」(図中黒色の7)、「青7」(図中網かけの7)、「白7」、「BAR」、「JAC」、「スイカ」、「チェリー」、「ベル」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図3参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
また、前面扉には、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いてメダル1枚分の賭数を設定する際に操作される1枚BETスイッチ5、クレジットを用いて、その範囲内において遊技状態に応じて定められた規定数の賭数(本実施例では後述の通常遊技状態及び小役ゲームにおいては3、後述のレギュラーボーナスにおいては1)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8Rが設けられている。
また、前面扉には、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、後述するビッグボーナス中のメダルの獲得枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、入賞の発生により払い出されたメダル枚数が表示されるペイアウト表示器13が設けられている。
また、前面扉には、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられている。
また、MAXBETスイッチ6の内部には、1BETスイッチ5及びMAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図3参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図3参照)がそれぞれ設けられている。
また、前面扉の内側には、所定のキー操作により後述するRAM異常エラーを除くエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、メダル投入部4から投入されたメダルの流路を、筐体内部に設けられた後述のホッパータンク(図示略)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク側に流下したメダルを検出する投入メダルセンサ31が設けられている。
筐体内部には、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rの基準位置をそれぞれ検出可能なリールセンサ33からなるリールユニット(図示略)、メダル投入部4から投入されたメダルを貯留するホッパータンク(図示略)、ホッパータンクに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34、ホッパーモータ34の駆動により払い出されたメダルを検出する払出センサ35、電源ボックス(図示略)が設けられている。
電源ボックスの前面には、後述のビッグボーナス終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36、起動時に設定変更モードに切り替えるための設定キースイッチ37、通常時においてはRAM異常エラーを除くエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更モードにおいては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をON/OFFする際に操作される電源スイッチ39が設けられている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するには1枚BETスイッチ5、またはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインL1〜L5(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。尚、本実施例では、規定数の賭数として後述する通常遊技状態及びビッグボーナス中の小役ゲームにおいては3枚が定められており、後述するレギュラーボーナス中においては、1枚が定められている。尚、遊技状態に対応する規定数を超えてメダルが投入された場合には、その分はクレジットに加算される。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、有効化されたいずれかの入賞ラインL1〜L5上に予め定められた図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。また、有効化されたいずれかの入賞ラインL1〜L5上に、遊技状態の移行を伴う図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行するようになっている。
図3は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図3に示すように、遊技制御基板40、演出制御基板90、電源基板100が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板100によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板100には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、電源基板100には、前述したホッパーモータ34、払出センサ35、打止スイッチ36、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31、リールセンサ33が接続されているとともに、電源基板100を介して前述した払出センサ35、打止スイッチ36、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED10、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板100を介して前述したホッパーモータ34が接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、CPU41a、ROM41b、RAM41c、I/Oポート41dを備えたマイクロコンピュータからなり、遊技の制御を行うメイン制御部41、所定範囲(本実施例では0〜16383)の乱数を発生させる乱数発生回路42、乱数発生回路から乱数を取得するサンプリング回路43、遊技制御基板40に直接または電源基板100を介して接続されたスイッチ類から入力された検出信号を検出するスイッチ検出回路44、リールモータ32L、32C、32Rの駆動制御を行うモータ駆動回路45、流路切替ソレノイド30の駆動制御を行うソレノイド駆動回路46、遊技制御基板40に接続された各種表示器やLEDの駆動制御を行うLED駆動回路47、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する電断検出回路48、電源投入時またはCPU41aからの初期化命令が入力されないときにCPU41aにリセット信号を与えるリセット回路49、その他各種デバイス、回路が搭載されている。
CPU41aは、計時機能、タイマ割込などの割込機能(割込禁止機能を含む)を備え、ROM41bに記憶されたプログラム(後述)を実行して、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。ROM41bは、CPU41aが実行するプログラムや各種テーブル等の固定的なデータを記憶する。RAM41cは、CPU41aがプログラムを実行する際のワーク領域等として使用される。I/Oポート41dは、メイン制御部41が備える信号入出力端子を介して接続された各回路との間で制御信号を入出力する。
メイン制御部41は、信号入力端子DATAを備えており、遊技制御基板40に接続された各種スイッチ類の検出状態がこれら信号入力端子DATAを介して入力ポートに入力される。これら信号入力端子DATAの入力状態は、CPU41aにより監視されており、CPU41aは、信号入力端子DATAの入力状態、すなわち各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、CPU41aは、前述のように割込機能を備えており、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、割込1〜4の4種類の割込を実行可能であり、各割込毎にカウンタモード(信号入力端子DATAとは別個に設けられたトリガー端子CLK/TRGからの信号入力に応じて外部割込を発生させる割込モード)とタイマモード(CPU41aのクロック入力数に応じて内部割込を発生させる割込モード)のいずれかを選択して設定できるようになっている。
本実施例では、割込1〜4のうち、割込2がカウンタモードに設定され、割込3がタイマモードに設定され、割込1、4は未使用とされている。トリガー端子CLK/TRGは、前述した電断検出回路48と接続されており、CPU41aは電断検出回路48から出力された電圧低下信号の入力に応じて割込2を発生させて後述する電断割込処理を実行する。また、CPU41aは、クロック入力数が一定数に到達する毎、すなわち一定時間間隔毎に割込3を発生させて後述するタイマ割込処理を実行する。また、割込1、4は、未使用に設定されているが、ノイズ等によって割込1、4が発生することがあり得る。このため、CPU41aは、割込1、4が発生した場合に、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、CPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、割込2、3、1、4の順番で優先して実行する割込が設定されている。すなわち割込2とその他の割込が同時に発生した場合には、割込2を優先して実行し、割込3と割込1または4が同時に発生した場合には、割込3を優先して実行するようになっている。
また、CPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の開始時に、レジスタに格納されている使用中のデータをRAM41cに設けられた後述のスタック領域に一時的に退避させるとともに、当該割込処理の終了時にスタック領域に退避させたデータをレジスタに復帰させるようになっている。
RAM41cには、DRAM(Dynamic RAM)が使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要となる。CPU41aには、このリフレッシュ動作を行うためのリフレッシュレジスタ41R(図42参照)が設けられている。リフレッシュレジスタ41Rは、8ビットからなり、そのうちの下位7ビットが、CPU41aがROM41bから命令をフェッチする度に自動的にインクリメントされるもので、その値の更新は、1命令の実行時間毎に行われる。
また、メイン制御部41には、停電時においてもバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU41aによりリフレッシュ動作が行われてRAM41cに記憶されているデータが保持されるようになっている。
乱数発生回路42は、後述するように所定数のパルスを発生する度にカウントアップして値を更新するカウンタによって構成され、サンプリング回路43は、乱数発生回路42がカウントしている数値を取得する。乱数発生回路42は、乱数の種類毎にカウントする数値の範囲が定められており、本実施例では、その範囲として0〜16383が定められている。CPU41aは、その処理に応じてサンプリング回路43に指示を送ることで、乱数発生回路42が示している数値を乱数として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用するが、その詳細については詳しく説明する。また、CPU41aは、前述のタイマ割込処理により、RAM41cの特定アドレスの数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。
CPU41aは、I/Oポート41dを介して演出制御基板90に、各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。遊技制御基板40から演出制御基板90へ送信されるコマンドの伝送ラインは、ストローブ(INT)信号ライン、データ伝送ライン、グラウンドラインから構成されているとともに、演出中継基板80を介して接続されており、遊技制御基板40と演出制御基板90とが直接接続されない構成とされている。
演出制御基板90には、スロットマシン1の前面扉に配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、リールLED等の電気部品が接続されており、これら電気部品は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
演出制御基板90には、メイン制御部41と同様にCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の駆動制御を行う液晶駆動回路92、演出効果LED52の駆動制御を行うランプ駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時またはCPU91aからの初期化命令が入力されないときにCPU91aにリセット信号を与えるリセット回路95、その他の回路等、が搭載されており、CPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
CPU91aは、メイン制御部41のCPU41aと同様に、タイマ割込などの割込機能(割込禁止機能を含む)を備える。サブ制御部91の割込端子(図示略)は、コマンド伝送ラインのうち、メイン制御部41がコマンドを送信する際に出力するストローブ(INT)信号線に接続されており、CPU91aは、ストローブ信号の入力に基づいて割込を発生させて、メイン制御部41から送信されたコマンドを受信するコマンド受信割込処理を実行する。また、CPU91aは、クロック入力数が一定数に到達する毎、すなわち一定時間間隔毎に割込を発生させてタイマ割込処理(サブ)を実行する。また、CPU91aにおいても未使用の割込が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、CPU91aは、CPU41aとは異なり、ストローブ信号(INT)の入力に基づいて割込が発生した場合には、他の割込に基づく割込処理の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、他の割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU91aによりリフレッシュ動作が行われてRAM91cに記憶されているデータが保持されるようになっている。
図4は、電源基板100の構成を説明するための回路図であり、図5(a)は、遊技制御基板40におけるメイン制御部41まわりの構成を説明するための回路図であり、図5(b)は、演出制御基板90におけるサブ制御部91まわりの構成を説明するための回路図である。
電源基板100には、図4に示すように、整流回路302、トランス304、電圧生成回路303、305〜308が搭載されている。整流回路302は、外部から供給されたAC100Vの交流電圧を直流電圧に変換し、トランス304は、整流回路302により変換された直流電圧を内部回路に伝達する。そして電圧生成回路303は、トランス304を介して伝達された直流電圧から+25Vの直流電圧を生成してコネクタ301と電圧生成回路305、306、307、308にそれぞれ出力する。電圧生成回路305、306、307、308は、電圧生成回路303にて生成された+25Vの直流電圧から、+24V、+12V(VCC)、+12V、+5Vの直流電圧を各々生成してコネクタ301に出力する。コネクタ301は遊技制御基板40等に接続され、電圧生成回路305、306、307、308により生成された直流電圧が、遊技制御基板40や演出制御基板90に搭載されたデバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源として供給される。すなわち電圧生成回路303により生成された+25Vの直流電圧は、遊技制御基板40や演出制御基板90に搭載された各種デバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源の生成源となっている。
電源基板100から供給される直流電圧のうち、+24Vの直流電圧は、電源基板100に直接接続されたホッパーモータ34の駆動電源として使用されるとともに、遊技制御基板40に供給され、遊技制御基板40に接続されたリールモータ32L、32C、32R、流路切替ソレノイド30等の電気部品の駆動電源としても使用される。また、+12V(VCC)の直流電圧は、遊技制御基板40を介して演出制御基板90に供給されており、サブ制御部91等の演出制御基板90に搭載されたデバイスの駆動電源である後述の+5V(VCC)の元となる電源や、演出制御基板90に接続される液晶表示器51、LED、スピーカ等の電気部品の駆動電源として使用される。また、+12Vの直流電圧は、遊技制御基板40に供給され、遊技制御基板40に接続されたLEDや表示器、センサ、スイッチ等の電気部品(電源基板100を介して遊技制御基板40に接続されたスイッチ等の電気部品を含む)の駆動電源として使用される。また、+5Vの直流電圧は、遊技制御基板40に供給され、メイン制御部41等の遊技制御基板40に搭載されたデバイスの駆動電源として使用される。
また、遊技制御基板40における+5Vの直流電圧の供給ラインは、図5(a)に示すように、遊技制御基板40上で分岐して+5V(VBB)の直流電圧の供給ラインを形成する。この+5V(VBB)の直流電圧の供給ラインは、逆流防止用のダイオード312を介してバックアップ電源入力端子VBBに接続されているとともに、図5(a)に示すように、電源基板100側でグラウンドレベルに接続され、その間には大容量のコンデンサ310が設けられている。これにより+5V(VBB)の直流電圧をコンデンサ310に蓄積可能とされ、停電時においても、コンデンサ310に蓄積された電圧を、当該電圧が全て放出されるまでの期間にわたりバックアップ電源として供給できるようになっている。
また、電源基板100から出力される直流電圧のうち、+25Vの直流電圧、すなわち+24V、+12V(VCC)、+12V、+5Vの直流電圧の生成源となる直流電圧は、遊技制御基板40において、図5(a)に示すように、抵抗311により減圧(本実施例では、約6.6%減圧)されて、電断検出回路48が備える監視電圧入力端子VSBに入力される。電断検出回路48は、監視電圧入力端子VSBに入力された電圧が所定の大きさ(本実施例では、+1.2V)以下となったときに、電圧低下信号出力端子RESETから電圧低下信号を出力する構成とされている。この電圧低下信号出力端子RESETは、前述のようにメイン制御部41のトリガー端子CLK/TRGに接続されており、監視電圧入力端子VSBに入力された電圧が所定の大きさ以下となったときに、電圧低下信号がメイン制御部41のトリガー端子CLK/TRGに入力されるようになっている。すなわち、メイン制御部41のCPU41aは、電断検出回路48からの電圧低下信号の入力に基づき電断の発生を検知して後述する電断割込処理を実行できるようになっている。本実施例では、+25Vの直流電圧が約+18V以下となったときに抵抗311により減圧された電圧が+1.2V以下となり、電圧低下信号が出力されるため、CPU41aは電圧低下信号の入力に基づいて、+25Vの直流電圧が、+18V以下となったときに電断の発生を検知することができる。
また、電圧低下信号出力端子RESETは、途中で分岐してメイン制御部41の信号入力端子DATAにも接続されており、監視電圧入力端子VSBに入力された電圧が所定の大きさ以下となったときに、電圧低下信号がメイン制御部41のトリガー端子CLK/TRGに加えて信号入力端子DATAにも入力されるようになっている。また、電断検出回路48は、監視電圧入力端子VSBに入力された電圧が所定の大きさ(+1.2V)以下となってから、当該電断検出回路48が動作不能となるか、電圧が所定の大きさ(+1.2V)を超えるまでの間、継続して電圧低下信号を出力するようになっている。このため、CPU41aは、電断検出回路48からの電圧低下信号の入力に基づく電断割込処理中にも、電圧低下信号の入力状況を監視することが可能とされている。
このように本実施例では、メイン制御部41並びに電断検出回路48が、電圧生成回路308により生成された+5Vの直流電圧にて駆動されるとともに、電断検出回路48は、電圧生成回路303により生成された+25Vの直流電圧がこれら各デバイスを駆動させる+5Vよりも高い電圧である+18V以下となったときに、電断の発生を検知し、電圧低下信号を出力するようになっており、CPU41aが電断の発生を検知した後もしばらくは+5Vの直流電圧がメイン制御部41に対して供給されるため、電圧低下信号の入力に基づきCPU41aが電断割込処理を行うのに必要な時間を十分に確保することができるようになっている。
また、本実施例では、電断検出回路48が、電圧生成回路303にて生成された+25Vの直流電圧の降下を監視するとともに、電源基板100、遊技制御基板40及び演出制御基板90に接続された電気部品を駆動するための電源電圧が、電断検出回路48が監視する+25Vの直流電圧を生成する電圧生成回路303とは別個に設けられた電圧生成回路305、306、307にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電断検出回路48により監視されるので、一時的な電圧降下に伴って電断の発生が検知され、電断割込処理が行われてしまう等の誤動作を防止できる。
また、図4に示すように、電源基板100において電圧生成回路306に入力される+25Vの直流電圧のラインにはコンデンサ309が設けられており、+25Vの直流電圧から電圧生成回路306に供給される電圧を蓄積可能とされ、電圧生成回路303からの電圧の供給が途切れたときでも、コンデンサ309に蓄積された電圧が放出されるまでの期間にわたり電圧生成回路306に対して+12V(VCC)を生成するのに必要な電圧が供給されるようになっている。このため、電圧生成回路306は、停電時において電圧生成回路303からの電圧の供給が途切れたときでも一定時間の間、演出制御基板90に搭載されたサブ制御部91等のデバイスの電源の元となる+12V(VCC)の直流電圧の供給を維持できるようになっており、演出制御基板90に搭載されたデバイス、特にサブ制御部91を、停電時において遊技制御基板40に搭載されたデバイスよりも長い時間駆動させることができるようになっている。尚、本実施例では、コンデンサ309として停電時において電断検出回路48が電圧低下信号を出力した時点、すなわち+25Vの直流電圧が+18V以下となった時点から、最低でも20ms以上の時間にわたりサブ制御部91の駆動を維持することが可能な容量のコンデンサが用いられている。
また、演出制御基板90には、図5(b)に示すように、電源基板100から遊技制御基板40を介して供給された+12V(VCC)の直流電圧から+5V(VCC)を生成する電圧生成回路313が設けられており、この電圧生成回路により生成された+5V(VCC)の直流電圧は、サブ制御部91等、演出制御基板90が搭載する各種デバイスに供給され、これらデバイスの駆動電源として使用される。
また、+5V(VCC)の直流電圧のサブ制御部91への供給ラインは、逆流防止用のダイオード314を介してサブ制御部91のバックアップ電源入力端子VBBに接続されるとともに、グラウンドレベルに接続され、その間には大容量のコンデンサ315が設けられている。これにより+5V(VCC)の直流電圧をコンデンサに蓄積可能とされ、停電時においても、コンデンサ315に蓄積された電圧を、当該電圧が全て放出されるまでの期間にわたりバックアップ電源として供給できるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものであり、後述する内部抽選の当選確率は、設定値に応じて定まるものとなる。以下、設定値の変更操作について説明する。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24に設定値の初期値として1が表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更モードに移行する。設定変更モードにおいて、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された設定値が1ずつ更新されていく(設定6から更に操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると設定値が確定し、確定した設定値がメイン制御部41のRAM41cに格納される。そして、設定キースイッチ37がOFFされると、遊技の進行が可能な状態に移行する。
本実施例のスロットマシン1においては、メイン制御部41のCPU41aが電圧低下信号を検出した際に、電断割込処理を実行する。電断割込処理では、レジスタを後述するRAM41cのスタックに退避し、メイン制御部41のRAM41cにいずれかのビットが1となる破壊診断用データ(本実施例では、5A(H))、すなわち0以外の特定のデータを格納するとともに、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM41cに格納する処理を行うようになっている。尚、RAMパリティとはRAM41cの該当する領域(本実施例では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、CPU41aは、その起動時においてRAM41cの全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM41cに記憶されているデータに基づいてCPU41aの処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、RAM異常エラー状態は、他のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
また、CPU41aは、後述する内部抽選処理において内部抽選に用いる設定値が適正な値であるか否かを判定する設定値判定処理を実行する。
設定値判定処理では、内部抽選に用いる設定値が適正な範囲の値(1〜6)か否かを判定する設定値判定処理1、内部抽選に用いる設定値と、設定変更時に設定された設定値と、が一致するか否かを判定する設定値判定処理2、今回のゲームの内部抽選に用いる設定値と、前回のゲームの内部抽選に用いた設定値と、が一致するか否かを判定する設定値判定処理3、を1ゲーム毎にそれぞれ実行する。
そして、設定値判定処理1において、内部抽選に用いる設定値が適正な範囲の値でない場合、または設定値判定処理2において、内部抽選に用いる設定値と、設定変更時に設定された設定値と、が一致しない場合、または設定値判定処理3において、今回のゲームの内部抽選に用いる設定値と、前回のゲームの内部抽選に用いた設定値と、が一致しない場合にも、RAM異常と判定し、RAM異常エラーコードをセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、前述のようにRAM異常エラー状態は、他のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。本実施例では、後に説明するが、遊技状態として、レギュラーボーナス、ビッグボーナス中の小役ゲーム、通常遊技状態があり、このうちレギュラーボーナスに対応する賭数の規定数として1が定められており、小役ゲーム及び通常遊技状態に対応する賭数の規定数として3が定められている。このため、遊技状態がレギュラーボーナスにあるときには、賭数として1が設定されるとゲームを開始させることが可能となり、遊技状態が小役ゲームまたは通常遊技状態にあるときには、賭数として3が設定されるとゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化されるようになっており、遊技状態に応じた規定数が1であれば、賭数として1が設定された時点で全ての入賞ラインL1〜L5が有効化され、遊技状態に応じた規定数が3であれば、賭数として3が設定された時点で全ての入賞ラインL1〜L5が有効化されることとなる。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(以下、有効ラインと呼ぶ)上に役と呼ばれる図柄の組み合わせが揃うと入賞となる。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役とがある。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグが設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、そのゲームの終了時にクリアされるが、特別役の当選フラグは、当該フラグにより許容された役の組み合わせが揃うまで有効とされ、許容された役の組み合わせが揃ったゲームにおいてクリアされる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組み合わせを揃えることができなかった場合にも、その当選フラグはクリアされずに、次のゲームへ持ち越されることとなる。もっとも、後に説明するように特別役のうちJACINの組み合わせは、当選したゲームに必ず揃うこととなるので、次のゲームへ持ち越されることはなく、それ以外の特別役の当選フラグのみ、当該フラグにより許容される役の組み合わせが揃わなかった場合に、次のゲームへ持ち越されることとなる。
図6(a)は、遊技状態別当選役テーブルを示す図である。遊技状態別当選役テーブルは、メイン制御部41のROM41bに予め格納され、内部抽選において当選と判定される役を判断するために用いられるものであるが、遊技状態別当選役テーブルの登録内容は、遊技状態に応じて定められた役を示すものとなる。このスロットマシン1における役としては、小役としてJAC、チェリー、スイカ、ベルが、再遊技役としてリプレイ、特別役としてビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、JACINが定められている。
レギュラーボーナスの遊技状態では、小役であるJAC、チェリー、スイカ及びベルが、入賞となる役として定められており、レギュラーボーナスにおける内部抽選で抽選の対象とされる。ビッグボーナスの後述する小役ゲームでは、小役であるチェリー、スイカ及びベル、特別役であるレギュラーボーナス(2)及びJACINが入賞となる役として定められており、小役ゲームにおける内部抽選で抽選の対象とされる。通常遊技状態では、小役であるチェリー、スイカ及びベル、再遊技役であるリプレイ、特別役であるビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)が入賞となる役として定められており、通常遊技状態における内部抽選で抽選の対象とされる。
尚、本実施例では、レギュラーボーナスの遊技状態において、チェリー、スイカ及びベルに加えてJACが入賞となる小役として定められているが、レギュラーボーナスの遊技状態においても、小役ゲームや通常遊技状態と同様に、チェリー、スイカ及びベルのみを入賞となる小役として定めるようにしても良い。
JACは、レギュラーボーナスにおいて有効ラインに「ベル−JAC−JAC」の組み合わせが揃ったときに入賞となるが、レギュラーボーナス以外の遊技状態では、この組み合わせが揃ったとしてもJAC入賞とならない。チェリーは、いずれの遊技状態においても左のリール2Lについて有効ラインのいずれかに「チェリー」の図柄が導出されたときに入賞となる。スイカは、いずれの遊技状態においても有効ラインのいずれかに「スイカ−スイカ−スイカ」の組み合わせが揃ったときに入賞となる。ベルは、いずれの遊技状態においても有効ラインのいずれかに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となる。これらの小役が入賞したときのメダルの払い出しについては後述する。
リプレイは、通常遊技状態において有効ラインのいずれかに「JAC−JAC−JAC」の組み合わせが揃ったときに入賞となるが、レギュラーボーナスやビッグボーナス(小役ゲーム及びレギュラーボーナス)では、この組み合わせが揃ったとしてもリプレイ入賞とならない。リプレイ入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数(レギュラーボーナスではリプレイ入賞しないので必ず3)に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
ビッグボーナスは、通常遊技状態において有効ラインのいずれかに「赤7−赤7−赤7」の組み合わせ、「白7−白7−白7」の組み合わせ、または「青7−青7−青7」の組み合わせが揃ったときに入賞となる。ビッグボーナス入賞すると、遊技状態がビッグボーナスに移行する。ビッグボーナスにおいては、小役ゲームと称されるゲームを行うことができる。遊技状態がビッグボーナスにある間は、ビッグボーナス中フラグがRAM41cに設定される。ビッグボーナスは、当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときに終了する。
尚、「赤7−赤7−赤7」によるビッグボーナス、「白7−白7−白7」によるビッグボーナス、及び「青7−青7−青7」を区別する必要がある場合には、それぞれビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)と呼ぶものとする。また、ビッグボーナス(1)〜(3)は、更に、内部抽選で当選が判定される順番に応じてそれぞれ細分化されており、これらを区別する場合には、それぞれビッグボーナス(1)−A、ビッグボーナス(1)−B、ビッグボーナス(1)−C、ビッグボーナス(2)−A、ビッグボーナス(2)−B、ビッグボーナス(2)−C、ビッグボーナス(3)−A、ビッグボーナス(3)−B、ビッグボーナス(3)−Cと呼ぶものとする。
レギュラーボーナスは、小役ゲーム及び通常遊技状態において有効ラインのいずれかに「BAR−BAR−BAR」の組み合わせが揃ったときに入賞となる。レギュラーボーナス入賞すると、遊技状態が小役ゲームまたは通常遊技状態からレギュラーボーナスに移行する。レギュラーボーナスは、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。遊技状態がレギュラーボーナスにある間は、レギュラーボーナス中フラグがRAM41cに設定される。特に、小役ゲームにおいてレギュラーボーナス入賞すると、ビッグボーナス中にレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグもRAM41cに設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
尚、通常遊技状態の「BAR−BAR−BAR」によるレギュラーボーナス、ビッグボーナスにおける小役ゲームの「BAR−BAR−BAR」によるレギュラーボーナスを区別する必要がある場合には、それぞれレギュラーボーナス(1)、レギュラーボーナス(2)と呼ぶものとする。また、前述したビッグボーナス(1)、ビッグボーナス(2)及びビッグボーナス(3)、レギュラーボーナス(1)及びレギュラーボーナス(2)をまてめて、単に「ボーナス」と呼ぶ場合があるものとする。
JACINは、小役ゲームにおいて有効ラインのいずれかに「スイカ−JAC−JAC」の組み合わせが揃ったときに入賞となるが、小役ゲーム以外の遊技状態では、この組み合わせが揃ったとしてもJACIN入賞とならない。JACIN入賞すると、ビッグボーナス中に前述したレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグもメイン制御部41のRAM41cに設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
以下、内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するかどうかを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、後述するように内部抽選用の乱数(0〜16383の整数)が取得される。そして、遊技状態に応じて定められた各役について、取得した内部抽選用の乱数と、遊技者が設定した賭数と、リセット/設定スイッチ38により設定された設定値に応じて定められた各役の判定値数に応じて行われる。本実施例においては、通常遊技状態において小役及び再遊技役の抽選と特別役の抽選とが個別に行われるので、内部抽選における当選は、排他的なものではなく、1ゲームにおいて小役と特別役とが同時に当選することがあり得る。
遊技状態に応じた役の参照は、レギュラーボーナス、ビッグボーナス中の小役ゲームにおいては、図6(a)に示した遊技状態別当選役テーブルに基づいて行われ、通常遊技状態においては、図6(a)に示した遊技状態別当選役テーブル及び図6(c)に示す後述の特別役用の役別テーブルの双方に基づいて行われる。
遊技状態がレギュラーボーナス(ビッグボーナス中に提供された場合を含む)にあるときには、遊技状態別当選役テーブルを参照し、JAC、チェリー、スイカ、ベルが内部抽選の対象役として順に読み出され、遊技状態がビッグボーナス中の小役ゲームにあるときには、チェリー、スイカ、ベル、レギュラーボーナス(2)、JACINが内部抽選の対象役として順に読み出される。もっとも、前回以前のゲームでレギュラーボーナス当選フラグ(2)が設定され、当該フラグに基づく入賞が発生しないで持ち越されているときには、レギュラーボーナス(2)及びJACINは、内部抽選の対象役とならない。
通常遊技状態にあるときには、まず、小役及び再遊技役の抽選が行われ、その後、特別役の抽選が行われる。小役及び再遊技役の抽選では、遊技状態別当選役テーブルを参照し、通常遊技状態において対象となる小役及び再遊技役、すなわちチェリー、スイカ、ベル、リプレイが内部抽選の対象役として順に読み出される。
特別役の抽選では、遊技状態別当選役テーブル及び特別役用の役別テーブルを参照し、遊技状態別当選役テーブルに登録された通常遊技状態において対象となる特別役が、特別役用の役別テーブルに登録された順に読み出される。
また、特別役の抽選においては、複数の特別役について当選が判定される間に、特別役のハズレか否かが判定されるようになっており、特別役用の役別テーブルには、特別役及び特別役のハズレがそれぞれ判定される順番に登録されている。このため、特別役の抽選においては、特別役用の役別テーブルに登録された順に特別役及び特別役のハズレが読み出されることとなる。
図6(c)に示すように、特別役用の役別テーブルには、通常遊技状態において抽選対象となる特別役として、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)が登録されているとともに、ビッグボーナス(3)−Aとビッグボーナス(1)−Bの間、ビッグボーナス(3)−Bとビッグボーナス(1)−Cの間に、それぞれハズレ−A、ハズレ−Bが登録されているので、特別役の抽選では、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)の順に読み出されることとなる。
もっとも、前回以前のゲームでレギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)またはビッグボーナス(3)の当選フラグが設定され、当該フラグに基づく入賞が発生しないで持ち越されているときには、レギュラーボーナス(1)及びビッグボーナス(1)〜(3)は、内部抽選の対象役とならないので特別役の抽選自体行われることはない。
内部抽選では、内部抽選の対象役について定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。当選と判定されると、当該役の当選フラグがメイン制御部41のRAM41cに設定される。判定値数は、メイン制御部41のROMに予め格納された役別テーブルに登録されている判定値数の格納アドレスに従って読み出されるものとなる。
また、特に通常遊技状態においては、まず通常遊技状態において対象となる小役及び再遊技役について定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定され、当該役の当選フラグが設定される。
更に、内部抽選用乱数の加算の結果がオーバーフローしたか否かに関わらず、通常遊技状態において対象となる特別役について定められた判定値数(特別役のハズレに対応して定められた判定値数を含む)を、加算前の内部抽選用の乱数(最初に取得した乱数)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定され、当該役の当選フラグが設定される(特別役のハズレに対応して定められた判定値数の加算結果がオーバーフローしたときはこの限りではない)。すなわち通常遊技状態においては、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選及び特別役の抽選の双方が行われるようになっている。
尚、前述のように、前回以前のゲームから前回以前のゲームでレギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)またはビッグボーナス(3)の当選フラグが持ち越されている状態であれば、特別役の抽選が行われることはない。
図6(b)は、小役及び再遊技役用の役別テーブルの例を示す図であり、図6(c)は、特別役(及びハズレ)用の役別テーブルの例を示す図である。判定値数は、その値が256以上のものとなるものもあり、1バイト分では記憶できないので、判定値数毎に2バイト分の記憶領域を用いて登録されるものとなる。
各役(及びハズレ)の判定値数は、ゲームにおいて遊技者が設定する賭数(BET)に対応して登録されている。同一の役であっても、レギュラーボーナスにおける当選確率が他の役と異なっている場合があるからである。また、各役(及びハズレ)の賭数に応じた判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
小役及び再遊技役用の役別テーブルには、図6(b)に示すように、JAC、チェリー、スイカ、ベル、リプレイの判定値数の格納アドレスが参照される順番に登録されている。
JACは、レギュラーボーナスでのみ内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
チェリー、スイカ及びベルは、いずれの遊技状態でも内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態または小役ゲームでの賭数3に対応する判定値数の格納アドレスとが登録されている。チェリー及びスイカについては、共通フラグが1となっており、それぞれの賭数に対応して設定値に関わらず共通の判定値数の格納アドレスが登録されている。ベルについては、共通フラグが0となっており、それぞれの賭数に対応して設定値に応じて個別に判定値数の格納アドレスが登録されている。
リプレイは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
特別役(及びハズレ)用の役別テーブルには、図6(c)に示すように、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)、レギュラーボーナス(2)及びJACINの順番に各役の判定値数の格納アドレスが登録されている。
ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−Bは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)は、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。
レギュラーボーナス(2)及びJACINは、ビッグボーナス中の小役ゲームでのみ内部抽選の対象となる役であり、小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
また、役別テーブルには、各役に入賞したときに払い出されるメダルの払出枚数も登録されている。もっとも、入賞したときにメダルの払い出し対象となる役は、小役であるJAC、チェリー、スイカ及びベルだけである。チェリー、スイカ及びベルは、賭数が1のとき(レギュラーボーナス)でも3のとき(レギュラーボーナス以外の遊技状態)でも入賞が発生可能であるが、ベルについては、賭数が1であるとき、すなわち遊技状態がレギュラーボーナスにあるときには、それ以外の8枚よりも多い15枚のメダルが払い出されるものとなる。
ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、及びJACINの入賞は、遊技状態の移行を伴うものであり、メダルの払い出し対象とはならない。リプレイでは、メダルの払い出しを伴わないが、次のゲームで賭数の設定に用いるメダルの投入が不要となるので実質的には3枚の払い出しと変わらない。また、当然ながら特別役のハズレについてはメダルの払い出し対象とはならない。
図7は、役別テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。この判定値数の記憶領域は、開発用の機種ではメイン制御部41のRAM41cに、量産機種ではメイン制御部41のROM41bに割り当てられたアドレス領域に設けられている。
例えばアドレスADD、ADD+34、ADD+36、ADD+38、ADD+40、ADD+42、ADD+44、ADD+46、ADD+48、ADD+110、ADD+112は、それぞれ内部抽選の対象役がJAC、リプレイ、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、レギュラーボーナス(2)、JACINであるときに設定値に関わらずに参照されるアドレスであり、設定値に関わらずに、それぞれ27、2245、2、2、2、263、4、4、4、32、4311が判定値数として取得される。
アドレスADD+98は、内部抽選の対象役がレギュラーボーナス(1)であって設定値が1のときに参照されるアドレスであり、このときには、ここに格納された値である31が判定値数として取得される。アドレスADD+100、ADD+102、ADD+104、ADD+106、ADD+108は、それぞれ内部抽選の対象役がレギュラーボーナス(1)であって設定値が2〜6のときに参照されるアドレスである。レギュラーボーナス(1)については、設定値に応じて個別に判定値数が記憶されているが、同一の判定値数が記憶されているので、いずれの設定値においてもレギュラーボーナス(1)の当選確率は同じとなっている。
アドレスADD+50、ADD+52、ADD+54、ADD+56、ADD+58、ADD+60は、それぞれ内部抽選の対象役がハズレ−Bであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+62、ADD+64、ADD+66、ADD+68、ADD+70、ADD+72は、それぞれ内部抽選の対象役がビッグボーナス(1)−Cであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+74、ADD+76、ADD+78、ADD+80、ADD+82、ADD+84は、それぞれ内部抽選の対象役がビッグボーナス(2)−Cであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+86、ADD+88、ADD+90、ADD+92、ADD+94、ADD+96は、それぞれ内部抽選の対象役がビッグボーナス(3)−Cであって設定値が1〜6のときに参照されるアドレスである。ハズレ−B、ビッグボーナス(1)−C、(2)−C、(3)−Cについては、設定値に応じて個別に判定値数が記憶され、しかも異なる判定値数が記憶されているので、設定値に応じてハズレ−B、ビッグボーナス(1)−C、(2)−C、(3)−Cの当選(特別役のハズレ)確率が異なることとなる。
アドレスADD+2は、賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がチェリーであるときに設定値に関わらずに参照されるアドレスである。アドレスADD+4は、賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がチェリーであるときに設定値に関わらず参照されるアドレスである。チェリーについての判定値数は、賭数に応じて登録されているが、同じ値が登録されているので、いずれの遊技状態においてもチェリーの当選確率は同じとなる。スイカについても、アドレスADD+6、ADD+8に同様にして判定値数が登録されている。
アドレスADD+10、ADD+12、ADD+14、ADD+16、ADD+18、ADD+20は、それぞれ賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+10とADD+12、ADD+14とADD+16、ADD+18とADD+20には、それぞれ同一の値が登録されているので、レギュラーボーナス時においては、設定値1と設定値2、設定値3と設定値4、設定値5と設定値6とで、ベルの当選確率が同一となる。
アドレスADD+22、ADD+24、ADD+26、ADD+28、ADD+30、ADD+32は、それぞれ賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+22、ADD+24、ADD+26、ADD+28、ADD+30、ADD+32には、互いに異なる値が登録されているので、通常遊技状態または小役ゲームにおいては、設定値に応じてベルの当選確率が異なることとなる。
図8(a)(b)、図9、図10(a)(b)は、内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例を示す図である。図8(a)(b)及び図9では通常遊技状態にあるときの、図10(a)では小役ゲームにあるときの、図10(b)ではレギュラーボーナスにあるときの例を示している。図8(a)(b)、図9、図10(a)(b)のいずれも、設定値が6の場合の例を示しており、また、図8(b)及び図9では、レギュラーボーナス及びビッグボーナスの当選フラグのいずれも設定されてない場合の例を示している。
通常遊技状態において内部抽選の対象役となる役は、レギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、チェリー、スイカ、ベル、リプレイであるが、前述のように通常遊技状態においては、同一の内部抽選用の乱数につき小役及び再遊技役の抽選と特別役の抽選とが別個に行われるので、ここでは、小役及び再遊技役の抽選における内部抽選用の乱数の値及び各役の判定値数と当選役との関係、特別役の抽選における内部抽選用の乱数の値及び各役の判定値数と当選役との関係、双方の抽選を合わせた結果による内部抽選用の乱数の値及び各役の判定値数と当選役との関係、についてそれぞれ説明する。
例えば、図8(a)に示すように、通常遊技状態における小役及び再遊技役の抽選において対象となる役は、チェリー、スイカ、ベル、リプレイであり、設定値6においては、それぞれの判定値数は、269、68、3582、2245となる。最初に小役及び再遊技役の抽選の対象役となるチェリーは、判定値数の31を加算することで加算結果がオーバーフローすることとなる16115〜16383が内部抽選用の乱数として取得されたときに当選となる。
次に小役及び再遊技役の抽選の対象役となるスイカは、チェリーの判定値数269とスイカの判定値数68とを合計した337を加算することで加算結果がオーバーフローすることとなる16047〜16114が内部抽選用の乱数として取得されたときに当選となる。同様に、ベルは、12465〜16046が内部抽選用の乱数として取得されたときに、リプレイは、10220〜12464が内部抽選用の乱数として取得されたときに、それぞれ当選と判定される。
これらの判定値数に基づいて算出される小役及び再遊技役のおおよその当選確率は、チェリー、スイカ、ベル、リプレイのそれぞれについて、1/60.9、1/240.9、1/4.6、1/7.3となる。尚、0〜10219が内部抽選用の乱数として取得されたときには、全ての小役及び再遊技役にハズレとなる。
一方、図8(b)に示すように、通常遊技状態における特別役の抽選において対象となる役は、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)であり、設定値6においては、それぞれの判定値数は、2、2、2、263、4、4、4、5883、14、14、14、31となるので、16382〜16383、16380〜16381、16378〜16379、16115〜16674、16111〜16114、16107〜16110、16103〜16106、10220〜16102、10206〜10219、10192〜10205、10178〜10191、10147〜10777が内部抽選用の乱数として取得されたときに、当選(特別役のハズレ)と判定される。また、それぞれの役のおおよその当選確率は、1/8192、1/8192、1/8192、1/62.3、1/4096、1/4096、1/4096、1/2.8、1/1170.3、1/1170.3、1/1170.3、1/528.5となる。尚、0〜10146が内部抽選用の乱数として取得されたときには、全ての特別役にハズレとなる。
そして、小役及び再遊技役の抽選においてチェリーが当選と判定される内部抽選用の乱数の範囲(16115〜16383)と特別役の抽選においてビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−Aが当選と判定される内部抽選用の乱数の範囲(16382〜16383、16380〜16381、16378〜16379)は重複するので、これら重複する範囲の値が内部抽選用の乱数として取得されたときには、それぞれビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時に当選したと判定される。同様に、小役及び再遊技役の抽選においてスイカが当選と判定される内部抽選用の乱数の範囲(16047〜16114)と特別役の抽選においてビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−Bが当選と判定される内部抽選用の乱数の範囲(16111〜16114、16107〜16110、16103〜16106)、はそれぞれ重複するので、これら重複する範囲の値が内部抽選用の乱数として取得されたときには、それぞれビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時に当選したと判定される。
このため、通常遊技状態では、図9に示すように、16382〜16383、16380〜16381、16378〜16379が内部抽選用の乱数として取得されたときに、それぞれビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時に当選したと判定され、16115〜16377が内部抽選用の乱数として取得されたときに、チェリーのみが単独で当選したと判定され、16111〜16114、16107〜16110、16103〜16106が内部抽選用の乱数として取得されたときに、それぞれビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時に当選したと判定され、16047〜16102が内部抽選用の乱数として取得されたときに、スイカのみが単独で当選したと判定され、12465〜16046が内部抽選用の乱数として取得されたときに、ベルのみが単独で当選したと判定され、10220〜12464が内部抽選用の乱数として取得されたときに、リプレイのみが単独で当選したと判定され、10206〜10219が内部抽選用の乱数として取得されたときに、ビッグボーナス(1)のみが単独で当選したと判定され、10192〜10205が内部抽選用の乱数として取得されたときに、ビッグボーナス(2)のみが単独で当選したと判定され、10178〜10191が内部抽選用の乱数として取得されたときに、ビッグボーナス(3)のみが単独で当選したと判定され、10147〜10177が内部抽選用の乱数として取得されたときに、レギュラーボーナス(1)のみが単独で当選したと判定されることとなる。
そしてビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時当選するおおよその確率はそれぞれ1/8192となり、チェリーが単独で当選するおおよその確率は1/62.3となり、ビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時当選するおおよその確率はそれぞれ1/4096となり、スイカが単独で当選するおおよその確率は1/292.6となり、ベル、リプレイ、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)が単独で当選するおおよその確率はそれぞれ1/4.6、1/7.3、1/1170.3、1/1170.3、1/1170.3、1/528.5となる。尚、0〜10146が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
このように本実施例では、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっており、内部抽選においては、内部抽選用の乱数として取得した値が、これら判定値数により特定される小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲に含まれていれば、小役、再遊技役、特別役がそれぞれ単独で当選したと判定し、小役及び特別役が重複して当選する判定値の範囲に含まれていれば、小役及び特別役の双方が当選したと判定するようになっている。
また、本実施例では、ビッグボーナス(1)〜(3)とチェリーが重複して当選する判定値の範囲よりも、ビッグボーナス(1)〜(3)とスイカが重複して当選する判定値の範囲の方が大きくなるように設定されているため、ビッグボーナス(1)〜(3)とチェリーが同時に当選する確率よりも、ビッグボーナス(1)〜(3)とスイカが同時に当選する確率の方が高い。
また、通常遊技状態において、既にレギュラーボーナスまたはビッグボーナスの当選フラグのいずれかが設定されている場合、すなわちこれら当選フラグが前回以前のゲームにて設定され、持ち越されている場合には、小役及び再遊技役の抽選のみが行われるため、各役が当選と判定される乱数値及び各役の当選確率は、図8(a)に示すものとなる。
また、図10(a)に示すように、小役ゲームでは、チェリー、スイカ、ベル、レギュラーボーナス(2)、JACINが内部抽選の対象役となり、それぞれの判定値数が269、68、3582、32、4311であるので、16115〜16383、16047〜16114、12465〜16046、12433〜12464、8122〜12432が内部抽選用の乱数として取得されたときに、当選と判定される。また、それぞれの役のおおよその当選確率は、1/60.9、1/240.9、1/4.6、1/512、1/3.8となる。尚、0〜8121が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
また、図10(b)に示すように、レギュラーボーナスでは、JAC、チェリー、スイカ、ベルが内部抽選の対象役となり、それぞれの判定値数が27、269、68、15919であるので、16357〜16383、16088〜16356、16020〜16087、101〜16019が内部抽選用の乱数として取得されたときに、当選と判定される。また、それぞれの役のおおよその当選確率は、1/606.8、1/60.9、1/240.9、1/1.03となる。尚、0〜100が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
次に、内部抽選用の乱数の取得について、図11を参照して詳しく説明する。内部抽選用の乱数は、ハードウェア乱数機能により乱数発生回路42から乱数を抽出し、これをCPU41aがソフトウェアによって加工することによって取得されるものとなる。尚、乱数発生回路42から抽出した、或いはこれを加工した乱数の最下位ビットを第0ビット、最上位ビットを第15ビットと呼ぶものとする。
図11(a)は、乱数発生回路42の構成を詳細に示すブロック図である。図示するように、乱数発生回路42は、パルス発生回路42aと、下位カウンタ42bと、上位カウンタ42cとから構成されている。下位カウンタ42b及び上位カウンタ42cは、いずれも8ビット(1バイト)のカウンタであり、下位カウンタ42bが第0ビット〜第7ビット、上位カウンタ42cが第8ビット〜第15ビットの合計で16ビットのデータ信号を出力する。
パルス発生回路42aは、CPU41aの動作クロックの周波数よりも高く、その整数倍とはならない周波数(互いに素とすることが好ましい)でパルス信号を出力する。パルス発生回路42aの出力するパルス信号が下位カウンタ42bにクロック入力される。
下位カウンタ42bは、パルス発生回路42aからパルス信号が入力される度に第0ビットのデータ信号をHレベルとLレベルとで交互に反転させる。正論理を適用するものとすると、Hレベルの論理値が1でLレベルの論理値が0に対応する。負論理の場合は、論理値が1の場合をLレベル、論理値が0の場合をHレベルと読み替えれば良い。第0ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第0ビットのデータ信号の論理値が1から0に変化する度に第1ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第m−1ビットのデータ信号の論理値が1から0に変化する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。また、第7ビットのデータ信号のレベルがHレベルからすなわち第7ビットのデータ信号の論理値が1から0に変化する度に桁上げ信号を出力する。下位カウンタ42bの出力する桁上げ信号が上位カウンタ42cにクロック入力される。
上位カウンタ42cは、下位カウンタ42bから桁上げ信号が入力される度に第8ビットのデータ信号をHレベルとLレベルとで交互に反転させる。第9ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第9ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
下位カウンタ42bのデータ信号を下位8ビットとし、上位カウンタ42cのデータ信号を上位8ビットとした16ビットのデータ信号の論理値は、パルス発生回路42aがパルス信号を出力する度に、0(0000h)→1(0001h)→2(0002h)→…→65535(FFFFh)と値が更新毎に連続するように更新され、最大値の65535(FFFFh)の次は初期値の0(0000h)へと値が循環して、乱数発生回路42から出力されるものとなる。
サンプリング回路43は、ラッチ回路から構成され、CPU41aからのサンプリング指令(スタートスイッチ7の操作時)に基づいて、乱数発生回路42からそのときに出力されている16ビットのデータ信号をラッチし、ラッチしたデータ信号を出力する。CPU41aは、I/Oポート41dを介してサンプリング回路43から入力されたデータ信号に対応した数値データを、乱数発生回路42が発生する乱数として抽出するものとなる。尚、以下では、乱数発生回路42から出力されるデータ信号は、その論理値に応じた乱数として説明するものとする。
図11(b)は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの説明図である。乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、他の汎用レジスタまたはRAM41cの作業領域を用いて、汎用レジスタ41GRの下位バイト(下位カウンタ42bから抽出した値)と、上位バイトの値(上位カウンタ42cから抽出した値)とを入れ替える。
次に、CPU41aは、抽出された乱数に対して上位バイトと下位バイトとが入れ替えられた乱数の値を、8080hと論理和演算をする。CPU41aの処理ワークは1バイトなので、実際には上位バイトと下位バイトとについて順次論理和演算を行うものとなる。この論理和演算によって第15ビットと第7ビットは常に1となる。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。
CPU41aは、このときに汎用レジスタ41GRに格納されている値を、内部抽選用の乱数として取得してRAM41cの所定の領域に記憶させ、これに各役の判定値数を順次加算していくものとなる。内部抽選用の乱数の第15ビットと第14ビットは常に1となるので、内部抽選用の乱数は、14ビット(16384)の大きさを有する乱数ということになり、実質的に0〜16383の値をとるものとなる。
尚、乱数発生回路42からの乱数の抽出から加工を終了するまでの間は、CPU41aに対する割り込みが禁止される。CPU41aに対して割り込みが発生することによって、当該割り込み処理ルーチンで汎用レジスタ41GRの内容が書き換えられてしまうのを防ぐためである。
次に、リール2L、2C、2Rの図柄の配列と、停止制御とについて説明する。前述したように、リール2L、2C、2Rの回転は、ストップスイッチ8L、8C、8Rを操作したときから4図柄以内の引き込み範囲で停止される。停止すべき図柄は、当選フラグの設定状況に応じて選択されるものであり、各ゲームにおいて設定された有効ライン上に4図柄の引き込み範囲で当選している役の図柄を揃えて停止させることができれば、これを揃えて停止させる。当選していない役の図柄は、4図柄の引き込み範囲でハズシて停止させる。
ここで、図2に示すように、「スイカ」、「ベル」、「JAC」については、リール2L、2C、2Rのいずれについても5図柄以内の間隔で配置されており、4図柄の引き込み範囲で必ず可変表示装置2の任意の位置に停止させることができる。つまり、スイカ、ベル、リプレイ、JAC、JACINの当選フラグがそれぞれ設定されているときには、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず当該役を入賞させることができる。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cは、512バイトの格納領域を有しており、図12に示すように、各バイト毎に7E00(H)〜7FFF(H)のアドレスが割り当てられているとともに、重要ワーク、一般ワーク、特別ワーク、設定値ワーク1〜3、非保存ワーク、未使用領域、スタック領域に区分されている。
重要ワークは、7E00(H)〜7E27(H)の40バイトの領域であり、各種表示器やLEDの表示用データ、I/Oポート41dの入出力データ、遊技時間の計時カウンタ等、ビッグボーナス終了時に初期化すると不都合があるデータが格納されるワークである。
一般ワークは、7E28(H)〜7E8E(H)、7EBA(H)〜7F04(H)の178バイトの領域であり、停止図柄データ、メダルの払出枚数、役の当選フラグ、ビッグボーナス中のメダル払出総数等、ビッグボーナス終了時に初期化可能なデータが格納されるワークである。
特別ワークは、7E8F(H)〜7EB3(H)の37バイトの領域であり、演出制御基板90へコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。
設定値ワーク1は、7EB4(H)の1バイトの領域であり、内部抽選処理で抽選を行う際に用いる設定値が格納されるワークであり、設定開始前(設定変更モードへの移行前)の初期化において0が格納された後、1に補正され、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されることとなる。
設定値ワーク2は、7EB5(H)の1バイトの領域であり、内部抽選処理で抽選を行う際に設定値ワーク1から読み出された設定値が、設定終了時に格納された設定値と一致するか否かを判定する際に用いる設定値が格納されるワークであり、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されることとなる。
設定値ワーク3は、7EB6(H)の1バイトの領域であり、内部抽選処理で抽選を行う際に設定値ワーク1から読み出された設定値が、前のゲームの内部抽選処理で抽選を行う際に用いた設定値と一致するか否かを判定する際に用いる設定値、すなわち前のゲームの設定値が格納されるワークであり、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されるとともに、1ゲーム毎に内部抽選処理で抽選を行う際に設定値ワーク1から読み出された値に更新されることとなる。
非保存ワークは、7EB7(H)〜7EB9(H)の3バイトの領域であり、打止スイッチ36の状態を各種スイッチ類の状態を保持するワークであり、起動時にRAM41cのデータが破壊されているか否かに関わらず必ず値が設定されることとなる。
未使用領域は、7F05(H)〜7FD1(H)の205バイトの領域であり、RAM41cの格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。
スタック領域は、7FD2(H)〜7FFF(H)の45バイトの領域であり、このうち7FD2(H)〜スタックポインタ−1の領域は、スタック領域内の使用されていない未使用スタック領域であり、スタックポインタ〜7FFF(H)の領域は、CPU41aのレジスタから退避したデータが格納されている使用中スタック領域である。このうち未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメイン制御部41のCPU41aは、図13(a)に示すように、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、起動時にRAM41cのデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。
初期化1は、起動時において設定キースイッチ37がONの状態であり、設定変更モードへ移行する場合において、その前に行う初期化であり、初期化1では、RAM41cの格納領域のうち、使用中スタック領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化2は、ビッグボーナス終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がOFFの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
ROM41bには、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録されており、CPU41aがRAM41cの初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する。また、初期化サイズが未使用スタック領域のサイズを含むものであれば、未使用スタック領域のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する。そして、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行する。すなわちCPU41aがRAM41cを初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化することとなる。
図13(b)は、初期化テーブルを示す図である。初期化テーブルには、前述のように初期化1〜4に対応して開始アドレス及び初期化サイズが登録されている。
初期化1には、開始アドレスとして7E00(H)、初期化サイズとして1D3(H)+M(未使用スタック領域のサイズ:(スタックポインタ−7FD2))バイトが登録されているので、初期化1では、7E00(H)から1D3(H)+Mバイト分の領域が初期化される。そして、図12に示すように、重要ワーク、一般ワーク、特別ワーク、設定値ワーク1〜3、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域は、7E00(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計すると1D3(H)+Mバイトとなるので、初期化1において、7E00(H)から1D3(H)+Mバイト分が初期化されることで、重要ワーク、一般ワーク、特別ワーク、設定値ワーク1〜3、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化2には、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化2において初期化される一般ワークが離れた2つのアドレス領域に割り当てられているからである。初期化2には、最初に初期化する領域の開始アドレスとして7E28(H)、初期化サイズとして67(H)バイトが登録され、次に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして118(H)+Mバイトがそれぞれ登録されているので、初期化2では、7E28(H)から67(H)バイト分の領域及び7EB7(H)から118(H)+Mバイト分の領域が初期化される。そして、7E28(H)〜7E8E(H)の一般ワークのサイズは67(H)バイトとなり、図12に示すように、残りの一般ワークの領域、未使用領域、未使用スタック領域は、7EB7(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計すると118(H)+Mバイトとなるので、初期化2において、7E28(H)から67(H)バイト分が初期化され、7EB7(H)から118(H)+Mバイト分が初期化されることで、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化3にも、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化3において初期化される非保存ワークと未使用領域及び未使用スタック領域とが離れた2つのアドレス領域に割り当てられているからである。初期化3には、最初に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして3(H)バイトが登録され、次に初期化する領域の開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトがそれぞれ登録されているので、初期化3では、7EB7(H)から3(H)バイト分の領域及び7F05(H)からCD(H)+Mバイト分の領域が初期化される。そして、図12に示すように、非保存ワークは、7EB7(H)から3バイト分の領域であり、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化3において、7EB7(H)から3(H)バイト分が初期化され、7F05(H)からCD(H)+Mバイト分が初期化されることで、非保存ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化4には、開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトが登録されているので、初期化4では、7F05(H)からCD(H)+Mバイト分の領域が初期化される。そして、図12に示すように、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化4において、7F05(H)からCD(H)+Mバイト分が初期化されることで、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
また、初期化1〜4のうち初期化1、3については、CPU41aの起動後、割込が許可される前に行われる処理である。一方、初期化2、4については、割込が許可されている状態で行われる処理であるが、これら初期化2、4の実行中は、割込が禁止されるようになっている。すなわち初期化1〜4の実行中においては常に割込が禁止されるようになっている。
尚、本実施例においてRAM41cの記憶領域を初期化するとは、対象となる領域のデータを0クリアすること、すなわち対象となる領域の値を0に更新することであるが、例えば、対象となる領域のデータを予め定められた初期値に書き換えるようにしても良い。
次に、本実施例におけるメイン制御部41のCPU41aが実行する各種制御内容を、図14〜図37に基づいて以下に説明する。
CPU41aは、リセット回路49からリセット信号が入力されると、図14のフローチャートに示す起動処理を行う。尚、リセット信号は、電源投入時及びメイン制御部41の動作が停滞した場合に出力される信号であるので、起動処理は、電源投入に伴うCPU41aの起動時及びCPU41aの不具合に伴う再起動時に行われる処理である。
起動処理では、まず、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sa1)、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否か、すなわち電圧が安定しているか否かを判定し(Sa2)、電圧低下信号が入力されている場合には、電圧低下信号が入力されているか否かの判定以外は、いずれの処理も行わないループ処理に移行する。
Sa2のステップにおいて電圧低下信号が入力されていないと判定した場合には、Iレジスタ及びIYレジスタの値を初期化する(Sa3)とともに、打止スイッチ36の状態を取得し、CPU41aの特定のレジスタに打止機能の有効/無効を設定する(Sa4)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM41cの格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM41cへのアクセスを許可し(Sa5)、設定キースイッチ37がONの状態か否かを判定する(Sa6)。Sa6のステップにおいて設定キースイッチ37がONの状態でなければ、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し(Sa7)、RAMパリティが0か否かを判定する(Sa8)。正常に電断割込処理が行われていれば、RAMパリティが0になるはずであり、Sa8のステップにおいてRAMパリティが0でなければ、RAM41cに格納されているデータが正常ではないので、RAM異常を示すエラーコードをRAM41cに設定し(Sa10)、図15に示すエラー処理に移行する。
また、Sa8のステップにおいてRAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa9)。正常に電断割込処理が行われていれば、破壊診断用データが設定されているはずであり、Sa9のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM41cのデータが正常ではないので、RAM異常を示すエラーコードをRAM41cに設定し(Sa10)、図15に示すエラー処理に移行する。
エラー処理では、図15に示すように、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、RAM41cに設定されているエラーコードを遊技補助表示器12に表示する(Sb2)。
次いで、RAM41cに設定されているエラーコードを確認し、当該エラーコードがRAM異常エラーを示すエラーコードであるか否かを判定し(Sb3)、RAM異常エラーを示すエラーコードを示すエラーコードが設定されている場合には、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を行った後(Sb4)、いずれの処理も行わないループ処理に移行する。
また、Sb3のステップにおいて、RAM異常以外を示すエラーコードが設定されている場合には、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb5)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb6)、リセットスイッチ23の操作も検出されていなければ、Sb4のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb5のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb6のステップにおいてリセットスイッチ23の操作が検出された場合には、RAM41cに設定されているエラーコードをクリアし(Sb7)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させて(Sb8)、もとの処理に戻る。
このようにエラー処理においては、RAM異常エラー以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常エラーによるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除されることはない。
図14に戻り、Sa9のステップにおいて破壊診断用データが正常であると判定した場合には、RAM41cのデータは正常であるので、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa11)、破壊診断用データをクリアする(Sa12)。次いで、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa13)、割込を許可して(Sa14)、電断前の最後に実行していた処理に戻る。
また、Sa6のステップにおいて設定キースイッチ37がONの状態であれば、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa15)、設定値ワークに格納されている値(この時点では0)を1に補正する(Sa16)。次いで、割込を許可して(Sa17)、図16に示す設定変更処理、すなわち設定変更モードに移行し(Sa18)、設定変更処理の終了後、ゲーム処理に移行する。
設定変更処理では、図16に示すように、RAM41cの設定値ワーク1に格納されている設定値(設定変更処理に移行する前に設定値ワーク1の値は1に補正されているので、ここでは1である)を読み出す(Sc1)。
その後、リセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態となり(Sc2、Sc3)、Sc2のステップにおいてリセット/設定スイッチ38の操作が検出されると、Sc1のステップにおいて読み出した設定値に1を加算し(Sc4)、加算後の設定値が7であるか否か、すなわち設定可能な範囲を超えたか否かを判定し(Sc5)、加算後の設定値が7でなければ、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻り、Sc5のステップにおいて加算後の設定値が7であれば設定値を1に補正した後(Sc6)、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻る。
また、Sc3のステップにおいてスタートスイッチ7の操作が検出されると、その時点で選択されている変更後の設定値をRAM41cの設定値ワーク1〜3の全てに格納して、設定値を確定した後(Sc7)、設定キースイッチ37がOFFの状態となるまで待機する(Sc8)。そして、Sc8のステップにおいて設定キースイッチ37のOFFが判定されると、図14のフローチャートに復帰し、ゲーム処理に移行することとなる。
このように起動処理においては、設定キースイッチ37がONの状態ではない場合に、RAMパリティが0であるか否か、破壊診断用データが正常であるか否かを判定することでRAM41cに記憶されているデータが正常か否かを判定し、RAM41cのデータが正常でなければ、異常エラー処理に移行する。RAM異常エラーによるエラー処理では、いずれの処理も行わないループ処理に移行するので、ゲームの進行が不能化される。そして、RAM41cのデータが正常でなければ、割込が許可されることがないので、一度RAM異常エラーによるエラー処理に移行すると、設定キースイッチ37がONの状態で起動し、割込が許可されるまでは、電断しても電断割込処理は行われない。すなわち電断割込処理において新たにRAMパリティが0となるようにRAM調整用データが計算されて格納されることはなく、破壊診断用データが新たに設定されることもないので、CPU41aが再起動しても設定キースイッチ37がONの状態で起動した場合を除き、CPU41aを再起動させてもゲームを再開させることができないようになっている。
そして、RAM異常エラーによるエラー処理に一度移行すると、設定キースイッチ37がONの状態で起動し、RAM41cの使用中スタック領域を除く全ての領域が初期化された後、設定変更処理が行われ、リセット/設定スイッチ38の操作により新たに設定値が選択・設定されるまで、ゲームの進行が不能な状態となる。すなわちRAM異常エラーによるエラー処理に移行した状態では、リセット/設定スイッチ38の操作により新たに設定値が選択・設定されたことを条件に、ゲームの進行が不能な状態が解除され、ゲームを再開させることが可能となる。
図17は、CPU41aが実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、リール停止処理(Sd4)、入賞判定処理(Sd5)、払出処理(Sd6)、ゲーム終了時処理(Sd7)、フリーズ処理(Sd8)、を順に実行し、フリーズ処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点で賭数を確定する処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおけるスタートスイッチ7の検出によるゲームスタートと同時に内部抽選用の乱数を抽出し、抽出した乱数の値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理を実行する。このリール回転処理においては、全てのリール2L、2C、2Rが定速回転した時点でストップスイッチ8L、8C、8Rの操作を有効とする。
Sd4のステップにおけるリール停止処理では、遊技者によるストップスイッチ8L、8C、8Rの操作が検出され、各リール2L、2C、2Rの停止条件が成立したことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd5のステップにおける入賞判定処理では、Sd4のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd6のステップにおける払出処理では、Sd5のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sd7のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
Sd8のステップにおけるフリーズ処理では、ビッグボーナス入賞時、及びビッグボーナスの終了時に、BET処理への移行を遅延させることにより、その間賭数の設定を不能化させる処理を行う。また、ビッグボーナスの終了時の打止状態もこの処理により制御される。
図18及び図19は、CPU41aがSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアし(Se1)、当該ゲームがリプレイゲームであるか否かを判定する(Se2)。RAM41cにリプレイゲーム中である旨を示すリプレイゲーム中フラグが設定されており、当該ゲームがリプレイゲームであると判定された場合には、BETカウンタの値を1加算し、RAM41cに設定された賭数の規定数(後に説明するが、遊技状態に応じて定められた賭数の規定数であり、レギュラーボーナスにあるときには、1が設定され、通常遊技状態及び小役ゲームにあるときには、3が設定される。もっともリプレイゲームに制御されるのは通常遊技状態のみである。)を参照し、BETカウンタの値が規定数であるか否を判定する処理(Se3、Se4)をSe4のステップにおいてBETカウンタの値が規定数であると判定されるまで繰り返し実行し、Se4のステップにおいてBETカウンタの値が規定数であると判定された場合には、スタートスイッチ7の操作の検出待ちの状態で待機する(Se5)。そして、この状態でスタートスイッチ7の操作が検出されると、BET処理を終了して、図17のフローチャートに復帰する。
また、Se2のステップにおいてリプレイゲームでなければ、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se6)、BETカウンタの値が規定数であれば、更にRAM41cにおいてクレジットの値が格納されるクレジットカウンタの値が上限値である50であるか否かを判定する(Se7)。そして、Se6及びSe7のステップにおいてBETカウンタの値が規定数であり、かつクレジットカウンタの値が50であれば、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se8)、Se6のステップにおいてBETカウンタの値が規定数ではない場合、またはSe7のステップにおいてクレジットカウンタの値が50ではない場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とする(Se9)。
次いで、クレジットカウンタの値及びBETカウンタの値の双方が0であるか否かを判定し(Se10)、クレジットカウンタまたはBETカウンタの値のいずれか一方でも0でなければ、更に精算スイッチ10の操作が検出されているか否かを判定し(Se11)、精算スイッチ10の操作が検出されていれば、ホッパーモータ34を駆動してクレジットカウンタ及びBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダル及び賭数の設定に用いられたメダルを返却する制御が行われる精算処理(Se12)を行った後、Se6のステップに戻る。
また、Se10のステップにおいてクレジットカウンタの値及びBETカウンタの値の双方が0の場合、またはSe12のステップにおいて精算スイッチ10の操作が検出されていない場合には、投入メダルセンサ31により投入メダルの通過が検出されたか否かを判定し(Se13)、投入メダルの通過が検出されていれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se14)、BETカウンタの値が規定数でなければ、BETカウンタの値を1加算した後(Se15)、Se6のステップに戻り、Se14のステップにおいてBETカウンタの値が規定数であれば、クレジットカウンタの値が50であるか否かを判定し(Se16)、クレジットカウンタの値が50であれば、そのままSe6のステップに戻り、クレジットカウンタの値が50でなければ、クレジットカウンタの値を1加算した後(Se17)、Se6のステップに戻る。
また、Se13のステップにおいて投入メダルの通過が検出されていなければ、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se18)、BETカウンタの値が規定数であれば、スタートスイッチ7の操作が検出されているか否かを判定し(Se19)、スタートスイッチ7の操作が検出されていなければ、そのままSe6のステップに戻り、スタートスイッチ7の操作が検出されていれば、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se20)、BET処理を終了して、図17のフローチャートに復帰する。これに伴い、投入メダルセンサ31、1BETスイッチ5及びMAXBETスイッチ6の検出に基づく賭数の設定が禁止されるとともに、精算スイッチ10の検出に基づくクレジットの精算が禁止されることとなる。尚、本実施例では、BET処理においてのみ賭数の設定を行い、図17に示すSd2〜Sd8の処理では、賭数の設定が禁止される。また、BET処理及び後述するSd8のフリーズ処理においてのみクレジット(賭数の設定に用いられたメダルを含む)の精算を行い、図17に示すSd2〜Sd7までのステップにおいては、クレジットの精算が禁止される。
また、Se18のステップにおいてBETカウンタの値が規定数でなければ、クレジットカウンタの値が0か否かを判定し(Se21)、クレジットカウンタの値が0であれば、Se6のステップに戻る。Se21のステップにおいてクレジットカウンタの値が0でなければ、1枚BETスイッチ5の操作が検出されているか否かを判定し(Se22)、1枚BETスイッチ5の操作が検出されていなければ、MAXBETスイッチ6の操作が検出されているか否かを判定し(Se23)、MAXBETスイッチ6の操作が検出されていなければ、Se6のステップに戻る。
また、Se22のステップにおいて1枚BETスイッチ5の操作が検出されていれば、クレジットカウンタの値を1減算し(Se24)、BETカウンタの値を1加算した後(Se25)、Se6のステップに戻る。また、Se23のステップにおいてMAXBETスイッチ6の操作が検出されていれば、クレジットカウンタの値が0となるか、BETカウンタの値が規定数となるまで、クレジットカウンタの値を1減算し、BETカウンタの値を1加算する処理(Se26〜Se29)を繰り返し実行し、Se26のステップにおいてクレジットカウンタの値が0となるか、Se29のステップにおいてBETカウンタの値が規定数となった時点で、Se6のステップに戻る。
図20〜図22は、CPU41aがSd2のステップにおいて実行する内部抽選処理の制御内容を示すフローチャートである。
内部抽選処理では、まず、詳細を後述する乱数取得処理を行う(Sg1)。この乱数取得処理においては、乱数発生回路(図示略)が発生する乱数に基づいて、内部抽選用の乱数の値が取得されることとなる。
そして、RAM41cの設定値ワーク1〜3に格納されている設定値をそれぞれを読み出し(Sg2)、読み出した設定値に基づいて抽選に用いる設定値、すなわち設定値ワーク1に格納されている設定値が適正か否かを判定する設定値判定処理を行う(Sg3)。そして、設定値判定処理において設定値が適正であれば、設定値ワーク3に格納されている値、すなわち前回のゲームにおいて抽選に用いた設定値を、設定値1に格納されている値、すなわち今回のゲームにおいて抽選に用いる設定値に更新する(Sg4)。
次いで、現在の遊技状態が通常遊技状態であるか否かを判定し(Sg5)、通常遊技状態であれば、通常遊技状態に対応して、図6(a)に示す遊技状態別当選役テーブルに登録されている順番で小役及び再遊技役を読み出す(Sg6)。Sd1のステップで設定されたBET数(賭数)を読み出し、当該役と読み出したBET数に対応する役について、図6(b)の小役及び再遊技役用の役別テーブルから共通フラグの設定状況を取得する(Sg7)。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg8)。
共通フラグが設定されていれば、当該役、当該BET数について図6(b)の小役及び再遊技役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg9)。そして、Sg11の処理に進む。共通フラグが設定されていなければ、当該役、当該BET数について、設定値ワーク1から読み出した設定値に対応して小役及び再遊技役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg10)。そして、Sg11の処理に進む。
Sg11のステップでは、Sg9またはSg10のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg12)。オーバーフローが生じた場合には、当該役の当選フラグをRAM41cに設定する(Sg13)。そして、図21に示すSg15の処理に進む。
Sg12のステップにおいてオーバーフローが生じていない場合には、通常遊技状態について定められた小役及び再遊技役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg14)。未だ処理対象としていない役があれば、Sg6の処理に戻り、通常遊技状態について定められた小役及び再遊技役から次の役を処理対象として処理を継続する。処理対象としていない役がなければ、図21に示すSg15の処理に進む。
Sg15のステップでは、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する。レギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、内部抽選処理を終了して、図17のフローチャートに復帰する。また、レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、内部抽選用の乱数を加算前の値、すなわちSg1の乱数取得処理において取得した値に戻す(Sg16)。
次いで、図6(a)に示す遊技状態別当選役テーブル及び図6(c)に示す特別役用の役別テーブルを参照し、遊技状態別当選役テーブルに登録されている通常遊技状態の抽選対象となる特別役を、特別役用の役別テーブルに登録されている順番で読み出す(Sg17)。この際、特別役のハズレが特別役用の役別テーブルに登録されている場合には、特別役のハズレについても登録されている順番で読み出す。更に、図6(c)の特別役用の役別テーブルから共通フラグの設定状況を取得する(Sg18)。この結果、当該役について共通フラグが設定されているかどうかを判定する(Sg19)。
共通フラグが設定されていれば、当該役について図6(c)の特別役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg20)。そして、Sg22の処理に進む。共通フラグが設定されていなければ、当該役について設定値ワーク1から読み出した設定値に対応して特別役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg21)。そして、Sg22の処理に進む。
Sg22のステップでは、Sg20またはSg21のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg23)。オーバーフローが生じた場合には、当該役がハズレ−Aまたはハズレ−Bであるか否かを判定する(Sg24)。当該役がハズレ−Aまたはハズレ−Bのいずれかであれば、内部抽選処理を終了して、図17のフローチャートに復帰する。また、当該役がハズレ−Aでもなく、ハズレ−Bでもなければ、当該役の当選フラグをRAM41cに設定する(Sg25)。そして、内部抽選処理を終了して、図17のフローチャートに復帰する。
Sg23のステップにおいてオーバーフローが生じていない場合には、通常遊技状態について定められた特別役(特別役のハズレ含む)のうちで未だ処理対象としていない役があるかどうかを判定する(Sg26)。未だ処理対象としていない役があれば、Sg17の処理に戻り、通常遊技状態について定められた特別役(特別役のハズレ含む)から次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図17のフローチャートに復帰する。
また、Sg5のステップにおいて、現在の遊技状態が通常遊技状態でなければ、小役ゲームか否かを判定する(Sg27)。小役ゲームであれば、小役ゲームに対応して、図6(a)の遊技状態別当選役テーブルに登録されている役を順番に読み出し(Sg28)、Sg30の処理に進む。Sg27のステップにおいて小役ゲームでなければ、レギュラーボーナスであるので、レギュラーボーナスに対応して図6(a)の遊技状態別当選役テーブルに登録されている役を順番に読み出し(Sg29)、Sg30の処理に進む。
Sg30のステップでは、Sg28及びSg29のステップで読み出した役の種類がレギュラーボーナス(2)またはJACINであるかどうかを判定する。レギュラーボーナス(2)またはJACINである場合には、前回以前のゲームでRAM41cにレギュラーボーナス(2)の当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg31)。読み出した役の種類がレギュラーボーナス(2)でもJACINでもなければ、そのままSg32の処理に進む。
レギュラーボーナス(2)の当選フラグが既に設定されていれば、内部抽選処理を終了して、図17のフローチャートに復帰する(レギュラーボーナス(2)及びJACINは、前述のように遊技状態別当選役テーブルにおいて小役よりも後に登録されているので、これで内部抽選処理が終了することとなるので)。読み出した役の種類がレギュラーボーナス(2)またはJACINであっても、レギュラーボーナス(2)の当選フラグが設定されていなければ、Sg32の処理に進む。
Sg32のステップでは、更にSd1のステップで設定されたBET数(賭数)を読み出し、当該役と読み出したBET数に対応する役について、図6(b)(c)の該当する役別テーブルから共通フラグの設定状況を取得する。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg33)。
共通フラグが設定されていれば、当該役、当該BET数について図6(b)(c)の該当する役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg34)。そして、Sg36の処理に進む。共通フラグが設定されていなければ、当該役、当該BET数について設定値ワーク1から読み出した設定値に対応して図6(b)(c)の該当する役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg35)。そして、Sg36の処理に進む。
Sg36のステップでは、Sg34またはSg35のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg37)。オーバーフローが生じた場合には、当該役の当選フラグをRAM41cに設定する(Sg38)。そして、内部抽選処理を終了して、図17のフローチャートに復帰する。
Sg37のステップにおいてオーバーフローが生じていない場合には、当該遊技状態について定められた役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg39)。未だ処理対象としていない役があれば、Sg27の処理に戻り、当該遊技状態について定められた次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図17のフローチャートに復帰する。
以上のように内部抽選処理においては、通常遊技状態においては、同一の内部抽選用の乱数につき小役及び再遊技役と特別役との抽選が別個に行われるようになっているため、通常遊技状態においては、当選となる乱数の範囲が重複する小役(本実施例では、チェリー及びスイカ)と特別役(本実施例では、ビッグボーナス(1)〜(3))とが同時に当選することがある。
次に、Sg1のステップにおける乱数取得処理を図23のフローチャートに基づいて詳しく説明する。
乱数取得処理では、まず、割込を禁止する(Sh1)。次に、サンプリング回路43にサンプリング指令を出力し、乱数発生回路42が発生している乱数をラッチさせ、ラッチさせた乱数の値をI/Oポート41dから入力して、これを抽出する。乱数発生回路42から抽出された乱数の値は、汎用レジスタ41GRに格納される(Sh2)。
次に、汎用レジスタ41GRに格納された乱数の下位バイトの値と上位バイトの値を、RAM41cの作業領域を用いて互いに入れ替える(Sh3)。次に、汎用レジスタ41GRに格納された乱数の値を8080hと論理和演算する(Sh4)。更に上位バイト(第15〜第8ビット)を1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。このときに汎用レジスタ41GRに格納された値が内部抽選用の乱数として取得され、RAM41cの所定の領域に保存される(Sh5)。そして、Sh1のステップで禁止した割込を許可してから(Sh6)、乱数取得処理を終了して、図20のフローチャートに復帰する。
次に、Sg3のステップにおける設定値判定処理を図24〜図27のフローチャートに基づいて詳しく説明する。
設定値判定処理では、図24に示すように、設定値判定処理1(Sg51)、設定値判定処理2(Sg52)、設定値判定処理3(Sg53)を順次実行する。
Sg51のステップにおける設定値判定処理1では、図25に示すように、設定値ワーク1から読み出した値が1〜6の範囲か否か、すなわち今回のゲームの内部抽選に用いる設定値が適正な範囲の値か否かを判定し(Sg61)、設定値ワーク1から読み出した値が1〜6の範囲の値でなければ、RAM異常を示すエラーコードをRAM41cに設定し(Sg62)、図15に示すエラー処理に移行し、設定値ワーク1から読み出した値が1〜6の範囲の値であれば、Sg52のステップにおける設定値判定処理2に進む。
Sg52のステップにおける設定値判定処理2では、図26に示すように、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致するか否か、すなわち今回のゲームの内部抽選に用いる設定値と、前回の設定変更時に設定された設定値と、が一致するか否かを判定し(Sg71)、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致しなければ、RAM異常を示すエラーコードをRAM41cに設定し(Sg72)、図15に示すエラー処理に移行し、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致すれば、Sg53のステップにおける設定値判定処理3に進む。
Sg53のステップにおける設定値判定処理3では、図27に示すように、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致するか否か、すなわち今回のゲームの内部抽選に用いる設定値と、前回のゲームの内部抽選に用いた設定値と、が一致するか否かを判定し(Sg81)、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致しなければ、RAM異常を示すエラーコードをRAM41cに設定し(Sg82)、図15に示すエラー処理に移行し、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致すれば、図20に示すフローチャートに復帰する。
以上のように設定値判定処理においては、今回のゲームの内部抽選に用いる設定値が、適正な範囲の値であるか否か、今回のゲームの内部抽選に用いる設定値と前回の設定変更時に設定された設定値とが一致するか否か、今回のゲームの内部抽選に用いる設定値と前回のゲームの内部抽選に用いた設定値とが一致するか否か、をそれぞれ判定することにより、今回のゲームの内部抽選に用いる設定値が適正な値であるか否かを判定し、少なくともいずれか1つの判定において設定値が適正な値ではないと判定された場合には、前述したRAM異常エラーを示すエラーコードを設定してエラー処理に移行し、起動時にRAM41cのデータが正常ではないと判定された場合と同様に、RAM異常エラーによるエラー状態となり、ゲームの進行が不能化されるようになっている。
図28は、CPU41aがSd5のステップにおいて実行する入賞判定処理の制御内容を示すフローチャートである。
入賞判定処理では、まず、現在の遊技状態に対応して、図6(a)の遊技状態別当選役テーブルに入賞判定の対象として登録されている役を順番に読み出し(Si1)、読み出した役の組み合わせが有効ラインに揃っているか否かを判定する(Si2)。そして当該役の組み合わせが有効ラインに揃っていなければ、Si4の処理に進み、当該役の組み合わせが有効ラインに揃っていれば、当該役が入賞した旨を示す入賞フラグをRAM41cに設定した後(Si3)、Si4の処理進む。
Si4のステップでは、当該遊技状態について入賞判定の対象として定められた役のうちで未だ処理対象としていない役があるかどうかを判定する。未だ処理対象としていない役があれば、Si1の処理に戻り、遊技状態別当選役テーブルに登録されている次の役を処理対象として処理を継続する。処理対象としていない役がなければ、入賞フラグを参照し、リプレイが入賞したか否かを判定し(Si5)、リプレイが入賞していなければ、Si7に進み、リプレイが入賞していれば、リプレイゲーム中である旨を示すリプレイゲーム中フラグをRAM41cに設定し(Si6)、Si7の処理進む。
Si7のステップでは、入賞フラグを参照し、ビッグボーナスが入賞したか否かを判定し、ビッグボーナスが入賞していなければSi10の処理に進み、ビッグボーナスが入賞していれば、ビッグボーナス中である旨を示すビッグボーナス中フラグをRAM41cに設定するとともに、ビッグボーナス当選フラグをクリアし(Si8)、RAM41cにおいてビッグボーナス中のメダルの払出総数が格納されるビッグボーナス中払出数カウンタの値を初期化し(Si9)、RAM41cの特別ワークに設けられた演出待ち時間用のタイマカウンタにBB入賞時演出の演出待ち時間を計時するための値を設定した後(Si10)、Si11の処理に進む。尚、演出待ち時間用のタイマカウンタに格納された値は、後述するタイマ割込処理が実行される毎に減算され、演出待ち時間用のタイマカウンタに格納された値が0となった時点で演出待ち時間が経過した旨が判定されることとなる。
Si11のステップでは、入賞フラグを参照し、レギュラーボーナスが入賞したか否かを判定し、レギュラーボーナスが入賞していなければ、入賞判定処理を終了して、図17のフローチャートに復帰する。レギュラーボーナスが入賞していれば、レギュラーボーナス中である旨を示すレギュラーボーナス中フラグをRAM41cに設定するとともに、レギュラーボーナス当選フラグをクリアし(Si12)、RAM41cにおいてレギュラーボーナスのゲーム数が格納されるレギュラーボーナスゲーム数カウンタの値及びレギュラーボーナス中の入賞回数が格納されるレギュラーボーナス中入賞カウンタの値を初期化した後(Si13)、入賞判定処理を終了して、図17のフローチャートに復帰する。
図29は、CPU41aがSd7のステップにおいて実行するゲーム終了時処理の制御内容を示すフローチャートである。
ゲーム終了時処理では、まず、現在の遊技状態に対応して、ボーナス中か否か、すなわちレギュラーボーナス中、ビッグボーナス中であるか否かを判定し(Sj1)、ボーナス中でなければ、Sj3の処理に進み、ボーナス中であれば、ボーナス中に用いる各種カウンタ(前述したビッグボーナス中払出数カウンタ、レギュラーボーナスゲーム数カウンタ、レギュラーボーナス中入賞カウンタ)の値を更新し(Sj2)、Sj3の処理に進む。
Sj3のステップでは、当該ゲームがリプレイゲームであったか否かを判定し、リプレイゲームでなければSj5の処理に進み、リプレイゲームであったならば、RAM41cに設定されているリプレイゲーム中フラグをクリアし(Sj4)、Sj5の処理に進む。
Sj5のステップでは、当該ゲームがビッグボーナス中か否かを判定し、ビッグボーナス中であれば、更に当該ビッグボーナスの終了条件が成立したか否か、すなわち当該ビッグボーナス中の払出総数が465枚を越えたか否か、を判定し(Sj6)、Sj5のステップでビッグボーナス中ではない場合、またはSj6のステップにおいてビッグボーナスの終了条件が成立していなければ、Sj10の処理に進み、Sj6のステップにおいてビッグボーナスの終了条件が成立していれば、RAM41cの特別ワークに設けられた演出待ち時間用のタイマカウンタにエンディング演出の演出待ち時間を計時するための値を設定した後(Sj7)、RAM41cに設定されているビッグボーナス中フラグをクリアし(Sj8)、RAM41cの未使用領域及び未使用スタック領域に加えて一般ワークを初期化する初期化2を行った後(Sj9)、Sj10の処理に進む。
Sj10のステップでは、当該ゲームがレギュラーボーナス中であるか否かを判定し、レギュラーボーナス中であれば、更に当該レギュラーボーナスの終了条件が成立したか否か、すなわちレギュラーボーナスのゲーム数が12ゲームに到達するか、レギュラーボーナス中の入賞回数が8回に到達するか、また、ビッグボーナス中に提供されたレギュラーボーナスであれば、当該ビッグボーナス中の払出総数が465枚を越えたか否か、を判定し(Sj11)、Sj10のステップでレギュラーボーナス中ではない場合、またはSj11のステップにおいてレギュラーボーナスの終了条件が成立していなければ、Sj13の処理に進み、Sj11のステップにおいてレギュラーボーナスの終了条件が成立していれば、RAM41cに設定されているレギュラーボーナス中フラグをクリアし(Sj12)、Sj13の処理に進む。
Sj13のステップでは、次ゲームの遊技状態がレギュラーボーナスであるか否かを判定し、次ゲームの遊技状態がレギュラーボーナスであれば、RAM41cに設定されている賭数の規定値を1とし(Sj14)、Sj16の処理に進む。次ゲームの遊技状態がレギュラーボーナスでない場合、すなわち次ゲームが通常遊技状態またはビッグボーナス中の小役ゲームである場合には、RAM41cに設定されている賭数の規定値を3とし(Sj15)、Sj16の処理に進む。
Sj16のステップでは、RAM41cに設定されている特別役以外の当選フラグをクリアした後、RAM41cの未使用領域及び未使用スタック領域を初期化する初期化4を行い(Sj17)、ゲーム終了時処理を終了して、図17に示すフローチャートに復帰する。
次に、CPU41aが初期化条件の成立に応じて実行する初期化1〜4の制御内容を図30〜図34のフローチャートに基づいて説明する。
図30は、CPU41aが起動処理において設定変更モードへの移行前に実行する初期化1の制御内容を示すフローチャートである。
初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスと初期化サイズを読み出す(Sm1)。読み出した開始アドレス(7E00(H))にポインタをセットする(Sm2)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sm3)、初期化する領域のバイト数(1DM(H)+M)をセットする(Sm4)。そして、Sm2でセットされた開始アドレスからSm4でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sm5)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
図31は、図30のSm5のステップにおいて実行するRAMクリア処理の制御内容を示すフローチャートである。
RAMクリア処理では、ポインタが示すアドレスが示す1バイトのデータを0クリアし(Sn1)、初期化バイト数(初期化する領域としてセットされたバイト数)を1減算する(Sn2)。次いで、減算後の初期化バイト数が0となったか否か、すなわち指定されたバイト数全ての初期化が終了したか否かを判定する(Sn3)。減算後の初期化バイト数が0でなければ、ポインタを1進めて(Sn4)、Sn1の処理に戻り、初期化バイト数が0となるまでSn1〜4の処理を繰り返し行う。そして、Sn3のステップにおいて減算後の初期化バイト数が0であれば、指定されたバイト数全ての初期化が終了したこととなるので、RAMクリア処理を終了し、もとの処理に復帰する。
図32は、CPU41aがSd7のゲーム終了時処理においてビッグボーナス終了時に実行する初期化2の制御内容を示すフローチャートである。
初期化2では、まず、割込を禁止した後(Sp1)、ROM41bの初期化テーブルを参照し、初期化2に対応して登録されている開始アドレスと初期化サイズを読み出す(Sp2)。初期化2には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7E28(H))にポインタをセットし(Sp3)、最初に初期化する領域のバイト数(67(H))をセットし(Sp4)、Sp3でセットされた開始アドレスからSp4でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図31参照)を実行する(Sp5)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7EBA(H))にポインタをセットし(Sp6)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sp7)、2番目に初期化する領域のバイト数(118(H)+M)をセットする(Sp8)。そして、Sp6でセットされた開始アドレスからSp8でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図31参照)を実行し(Sp9)、RAMクリア処理が終了すると、Sp1のステップにおいて禁止していた割込を許可し(Sp10)、初期化2を終了してもとの処理に復帰する。
図33は、CPU41aが起動処理においてRAM41cのデータが正常である場合に実行する初期化3の制御内容を示すフローチャートである。
初期化3では、まず、ROM41bの初期化テーブルを参照し、初期化3に対応して登録されている開始アドレスと初期化サイズを読み出す(Sq1)。初期化3には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7EB7(H))にポインタをセットし(Sq2)、最初に初期化する領域のバイト数(3(H))をセットし(Sq3)、Sq2でセットされた開始アドレスからSq3でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図31参照)を実行する(Sq4)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7F05(H))にポインタをセットし(Sq5)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sq6)、2番目に初期化する領域のバイト数(CD(H)+M)をセットする(Sq7)。そして、Sq5でセットされた開始アドレスからSq7でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図31参照)を実行し(Sq8)、RAMクリア処理が終了すると、初期化3を終了してもとの処理に復帰する。
図34は、CPU41aがSd7のゲーム終了時処理において各ゲーム毎に実行する初期化4の制御内容を示すフローチャートである。
初期化4では、まず、割込を禁止した後(Sr1)、ROM41bの初期化テーブルを参照し、初期化4に対応して登録されている開始アドレスと初期化サイズを読み出す(Sr2)。読み出した開始アドレス(7F05(H))にポインタをセットする(Sr3)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sr4)、初期化する領域のバイト数(CD(H)+M)をセットする(Sr5)。そして、Sr3でセットされた開始アドレスからSr5でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図31参照)を実行し(Sr6)、RAMクリア処理が終了すると、Sr1のステップにおいて禁止していた割込を許可し(Sr7)、初期化4を終了してもとの処理に復帰する。
図35及び図36は、CPU41aが割込3の発生に応じて、すなわち0.56msの間隔で起動処理やゲーム処理に割り込んで実行するタイマ割込処理の制御内容を示すフローチャートである。
タイマ割込処理においては、まず、割込を禁止する(Ss1)。すなわち、タイマ割込処理の実行中に他の割込処理が実行されることを禁止する。そして、使用中のレジスタをスタック領域に退避する(Ss2)。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Ss3)。Ss3のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Ss4)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSs8のモータステップ処理において変更した位相信号データや後述するSs23の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Ss5)。
次いで、分起用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Ss6)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(Ss7)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(Ss8)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Ss9)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss6のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Ss10)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Ss11)、各種ソフトウェア乱数を更新する乱数更新処理(Ss12)、各種時間カウンタを更新する時間カウンタ更新処理(Ss13)、コマンドキューに格納されたコマンドを演出制御基板90に対して送信するコマンド送信処理(Ss14)、外部出力信号を更新する外部出力信号更新処理(Ss15)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss4のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分起用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Ss16)、タイマ割込4でなければ、すなわちタイマ割込3であれば、入力ポートから各種スイッチ類の検出データを入力するポート入力処理(Ss17)、定速回転中のリール2L、2C、2Rの原点通過をチェックする原点通過時処理(Ss18)、各種スイッチ類の検出信号に基づいてこれら各種スイッチが検出条件を満たしているか否かを判定するスイッチ入力判定処理(Ss19)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss16のステップにおいてタイマ割込4であれば、有効なストップスイッチ8L、8C、8Rの検出が判定されたときに、停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Ss22)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Ss23)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Ss24)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
図37は、CPU41aが割込2の発生に応じて、すなわち電断検出回路48からの電圧低下信号が入力されたときに起動処理やゲーム処理に割り込んで実行する電断割込処理の制御内容を示すフローチャートである。
電断割込処理においては、まず、割込を禁止する(Sv1)。すなわち電断割込処理の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(Sv2)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sv3)。この際、電圧低下信号が入力されていなければ、Sv2においてスタック領域に退避したレジスタを復帰し(Sv4)、Sv1のステップにおいて禁止した割込を許可して(Sv5)、割込前の処理に戻る。
また、Sv3のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施例では、5A(H))をセットして(Sv6)、全ての出力ポートを初期化する(Sv7)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sv8)、RAM41cへのアクセスを禁止する(Sv9)。
そして、電圧低下信号が入力されているか否かの判定(Sv10、尚、Sv10は、Sv3と同様の処理である)を除いて、何らの処理も行わないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にCPU41aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理へ移行するようになっているが、ループ処理において何らの処理も行わず、ループ処理が行われている間に、電圧が回復し、リセット回路49からリセット信号が入力されたことに基づいて、起動処理へ移行するようにしても良い。
以上説明したように、本実施例のスロットマシン1では、設定値ワーク1から読み出した値が1〜6の範囲か否か、すなわち内部抽選に用いる設定値が適正な範囲の値か否かを判定する設定値判定処理1を1ゲーム毎に実行し、設定値ワーク1から読み出した値が1〜6の範囲の値でなければ、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化される。本実施例において設定値ワーク1に格納される値、すなわち設定変更処理により選択可能な設定値の範囲は1〜6の値であるので、設定値ワーク1に格納されている値が1〜6の範囲の値でなければ、設定値が不正に書き換えられた可能性があり、この場合にはゲームの進行が不能化されることとなる。
また、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致するか否か、すなわち内部抽選に用いる設定値と、設定変更時に設定された設定値と、が一致するか否かを判定する設定値判定処理2を1ゲーム毎に実行し、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致しない場合にも、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化される。本実施例では、設定変更時に設定値ワーク1と設定値ワーク2のそれぞれに変更後の設定値が格納されるようになっており、通常は設定値1に格納されている値と設定値2に格納されている値とが一致するはずであり、これらの値が一致しなければ、設定値が不正に書き換えられた可能性があり、この場合にもゲームの進行が不能化されることとなる。
また、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致するか否か、すなわち今回のゲームの内部抽選に用いる設定値と、前回のゲームの内部抽選に用いた設定値と、が一致するか否かを判定する設定値判定処理3を1ゲーム毎に実行し、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致しない場合にも、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化される。本実施例では、内部抽選に用いた設定値を設定値ワーク3に格納するようになっており、通常は設定値1に格納されている値(今回のゲームの内部抽選で用いる設定値)と設定値3に格納されている値(前回のゲームの内部抽選で用いた設定値)とが一致するはずであり、これらの値が一致しなければ、設定値が不正に書き換えられた可能性があり、この場合にもゲームの進行が不能化されることとなる。
そして、一度RAM異常エラーによるエラー状態に制御されると、設定変更モードに移行させて、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち不正に設定値が書き換えられた可能性がある場合においてゲームを再開するためには、通常のエラー状態を解除するためのリセット操作よりも手間のかかる設定変更操作を行う必要があるので、かかる不正行為を効果的に防止することができる。
また、不正に設定値が書き換えられた可能性がある場合には、スロットマシンにより自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値(一般的に、設定変更操作は遊技店の従業員により行われるので、遊技店側が選択した設定値である)に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
尚、本実施例では、内部抽選に用いる設定値、すなわち内部抽選の当選確率を定めた設定値として1〜6の範囲の6段階の値を適用しているが、設定値はこれに限られるものではなく、少なくとも複数段階の設定値を選択して設定できるものであれば良く、例えば、高/低の2段階を選択可能な設定値や、1〜3の範囲の3段階の設定値を選択可能な設定値などを適用しても良い。更に、RAM41cの設定値ワーク1〜3には、これら設定値を示す値として1〜6の値そのものを格納しているが、設定値を特定可能な値が格納されるものであれば良く、例えば、1〜6の設定値に対応して0〜5(実際の設定値から1を減算した値)を設定値ワーク1〜3に格納するようにしても良い。
また、本実施例では、設定値ワーク1から読み出した値が1〜6の範囲か否かを判定する設定値判定処理1、設定値ワーク1から読み出した値と、設定値ワーク2から読み出した値と、が一致するか否かを判定する設定値判定処理2、設定値ワーク1から読み出した値と、設定値ワーク3から読み出した値と、が一致するか否かを判定する設定値判定処理3の全てを実行して、内部抽選に用いる設定値が適正であるか否かを判定しているが、これら設定値判定処理1〜3のいずれか1つの処理を行うことで、内部抽選に用いる設定値が適正であるか否かを判定するものであっても良く、例えば、設定値判定処理1のみを行うもの、設定値判定処理2のみを行うもの、設定値判定処理3のみを行うもの、設定値判定処理1〜3のうちいずれか2つの処理を行うもの、などであっても良い。
更に、設定値判定処理1〜3のうちいずれか1つの処理を毎ゲーム行い、残りの1つの処理、または残りの全ての処理を所定の契機(例えば、所定ゲーム数毎、ボーナス終了時、特定の役の当選時など)で実行するものや、設定値判定処理のうちいずれか2つの処理を1ゲーム毎に行い、残りの1つの処理を所定の契機で実行するものであっても良い。
また、本実施例では、設定値判定処理1〜3を1ゲーム毎に実行しているが、設定値判定処理を1ゲーム毎に行うのではなく、設定値判定処理1〜3を所定ゲーム数毎に行ったり、特定の期間(ボーナス中を除く期間など)のゲームにおいて行ったりするようにしても良い。
また、本実施例では、内部抽選処理において、内部抽選に用いる設定値が適正であるか否かを判定する設定値判定処理1〜3を実行しているが、そのタイミングは、1ゲーム中のどのタイミングであっても良く、例えば、ゲーム開始時やゲーム終了時に行うものであっても良い。
また、本実施例では、内部抽選処理において、設定値ワーク3の値を設定値ワーク1から読み出した値(今回のゲームの内部抽選に用いるために読み出した設定値)に更新しているが、設定値ワーク3の値を設定値ワーク1から読み出した値に更新するタイミングは、当該ゲームが終了するまでのいずれかのタイミング(例えば、全てのリール2L、2C、2Rの停止時や、メダルの払出終了時など)であれば良い。
また、本実施例では、設定変更時に、設定値ワーク1及び設定値ワーク2の2つの領域に設定値が格納され、設定値判定処理2において、設定値ワーク1に格納されている値と設定値ワーク2に格納されている値とが一致するか否かを判定し、一致しない場合に、適正な設定値ではないと判定するが、設定変更時に3つ以上の記憶領域に設定値を格納し、設定値判定処理2において、これら3つ以上の記憶領域に格納されている値が全て一致するか否かを判定し、一致しない場合に、適正な設定値ではないと判定するようにしても良い。
更に、設定変更時に3つ以上の記憶領域に設定値を格納し、設定値判定処理2において、これら3つ以上の領域に格納されている値が所定数以上一致するか否か(例えば、5つの記憶領域に設定値を格納し、そのうち3つ以上の値が一致するか否か等)を判定し、所定数以上一致しない場合に、適正な設定値ではないと判定するようにしても良く、このようにすれば、ノイズなどにより設定変更時に格納された設定値を示すデータの一部が欠損した場合でも、誤って適正な設定値ではないと判定されて遊技の進行が不能化してしまうことを防止できる。
また、本実施例では、設定値ワーク3に前回のゲームの内部抽選に用いた設定値のみが格納され、設定値判定処理3において、設定値ワーク1に格納されている値と設定値ワーク3に格納されている値とが一致するか否か、すなわち今回のゲームの内部抽選に用いる設定値と、前回のゲームの内部抽選に用いる設定値と、が一致するか否かを判定し、一致しない場合に、適正な設定値ではないと判定するが、前回のゲーム以前の所定ゲーム数にわたり各ゲームの内部抽選に用いた設定値を格納するとともに、設定値判定処理3において今回のゲームの内部抽選に用いる設定値と、前回のゲームよりも前のゲーム(例えば、所定ゲーム数前のゲーム)の内部抽選に用いた設定値と、が一致するか否かを判定し、一致しない場合に、適正な設定値ではないと判定するようにしても良い。
また、前回のゲーム以前の所定ゲーム数にわたり各ゲームの内部抽選に用いた設定値を格納するとともに、設定値判定処理3において今回のゲームの内部抽選に用いる設定値と、前回のゲーム以前の複数のゲームの内部抽選に用いたそれぞれの設定値と、が全て一致するか否かを判定し、一致しない場合に、適正な設定値ではないと判定するようにしても良い。
更に、前回のゲーム以前の所定ゲーム数にわたり各ゲームの内部抽選に用いた設定値を格納するとともに、設定値判定処理3において今回のゲームの内部抽選に用いる設定値と、前回のゲーム以前の複数のゲームの内部抽選に用いたそれぞれの設定値と、が所定数以上一致するか否か(例えば、過去5ゲームの内部抽選に用いたそれぞれの設定値を5つの記憶領域に格納し、そのうち3つ以上の値が一致するか否か等)を判定し、所定数以上一致しない場合に、適正な設定値ではないと判定するようにしても良く、このようにすれば、ノイズなどにより設定変更時に格納された設定値を示すデータの一部が欠損した場合でも、誤って適正な設定値ではないと判定されて遊技の進行が不能化してしまうことを防止できる。
また、本実施例のスロットマシン1では、メイン制御部41のRAM41cにおける未使用領域が1ゲーム毎に初期化されるので、RAM41cの未使用領域を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できる。
また、本実施例では、RAM41cにおける未使用領域に加えてスタック領域における未使用スタック領域も1ゲーム毎に初期化されるので、RAM41cにおいてその時点で使用されていない全ての領域が1ゲーム毎に初期化されることとなり、例え、RAM41cの未使用領域を利用せずに未使用スタック領域を利用して不正プログラムを格納させようとしても、当該不正プログラムが常駐してしまう余地を無くすことができるので、不正プログラムが常駐してしまうことを一層確実に防止できるとともに、例えば、未使用スタック領域に不正なデータ(不正プログラムが指定するアドレス等)を加え、データの復帰時にマイクロコンピュータを誤作動させることでレジスタを不正なものに書き換えてしまうことにより、本来のプログラムとは異なる動作を行わせてしまうような不正も防止できる。更に、未使用スタック領域に不正なデータが格納されることによって、本来であれば退避したデータを格納できるはずの領域が圧迫され、スタック領域がオーバーフローしてしまい、メイン制御部41を構成するマイクロコンピュータが暴走してしまう等の不具合も防止できる。
尚、本実施例では、RAM41cの未使用領域及び未使用スタック領域を1ゲーム毎に初期化しているが、少なくともRAM41cの未使用領域または未使用スタック領域のいずれか一方の領域を1ゲーム毎に初期化するものであれば良い。
また、本実施例では、ゲーム終了時にRAM41cの未使用領域及び未使用スタック領域を初期化する初期化4を毎ゲーム実行することで、RAM41cの未使用領域や未使用スタック領域を1ゲーム毎に初期化しているが、少なくとも1ゲーム毎に1回以上RAM41cの未使用領域及び/または未使用スタック領域が初期化されるものであれば、RAM41cの未使用領域及び/または未使用スタック領域の初期化を行うタイミングは、1ゲーム中のどのタイミングであっても良く、例えば、ゲーム開始時や1ゲーム毎に必ず実行される処理の実行時にRAM41cの未使用領域及び/または未使用スタック領域の初期化を行うものであっても良い。
また、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、起動時にRAM41cのデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化1〜4を行うとともに、これら4種類の初期化条件のうちどの条件が成立した場合でも、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、不正プログラムが常駐してしまうことを一層確実に防止できる。
特に、起動時においてRAM41cのデータが破壊されていないときに、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、RAM41cにの未使用領域や未使用スタック領域を利用して不正プログラムや不正データが格納された場合にも、当該不正プログラムや不正データが格納されたままメイン制御部41の制御状態がRAM41cのデータに基づいて復帰してしまうことを防止できる。
また、メイン制御部41のROM41bには、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録されており、CPU41aがRAM41cの初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する(初期化サイズが未使用スタック領域のサイズを含むものであれば、未使用スタック領域のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する)。そして、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行する。すなわちCPU41aがRAM41cを初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化するようになっている。
このため、ROM41bの初期化テーブルに、初期化条件の種類に対応する開始アドレスとその際初期化される領域のサイズのみを設定しておくことで、初期化条件の種類に対応する初期化終了アドレスを個々に設定しておくことなく、初期化条件の種類に対応する領域を初期化することができるとともに、複数種類の初期化を共通の処理(RAM初期化処理)を用いて行えるので、複数種類の初期化を行うためのプログラム容量を削減できる。更に、RAM初期化処理においては、初期化サイズが0か否かを判定するのみで処理の終了を判定するので、現在初期化したバイトのアドレスと終了アドレスとの比較によって処理の終了を判定する場合に比較して、処理負荷を大幅に軽減できる。
また、初期化1〜4の実行中においては常に割込が禁止されるようになっており、RAM41cに記憶されているデータを初期化している最中に電断検出回路48から電圧低下信号が入力されても、初期化が終了するまでは電断割込処理が実行されないので、例えば、初期化が完全に終了する前の段階で電断割込処理が行われることにより、初期化されるべきデータのうち初期化されたデータと初期化されていないデータとが混在してしまい、復旧時に電断前の制御状態へ正常に復帰させることができなくなってしまう等の不具合を防止できる。
また、電断割込処理において、いずれかのビットが1となる破壊診断用データをRAM41cの所定アドレスに格納した後、RAM41cの未使用領域及び未使用スタック領域を含む全てのデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける未使用領域及び未使用スタック領域を含む全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否か、及び破壊診断用データが格納されているか否か、を判定し、RAMパリティが0でなかった場合、またはRAMパリティが0であっても破壊診断用データが正常に格納されていない場合には、RAM異常エラーによるエラー状態となり、設定キースイッチ37をONの状態で電源投入し、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるまで、ゲームの進行が不可能となるので、起動時にRAM41cの未使用領域及び/または未使用スタック領域に不正プログラムが格納された場合でも、当該不正プログラムを発見して初期化することができる。
更に、RAM41cに格納されているデータが正常ではないと判定され、RAM異常エラー状態となると、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるようになっており、RAM41cに格納されているデータが正常ではないと判定されたときにも、その後、設定キースイッチ37がONの状態で電源投入されたときにも、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるので、RAM41cに格納されている可能性がある不正プログラムを確実に除去することができる。
また、本実施例では、RAM41cに記憶されているデータに異常が生じた場合には、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化されるとともに、一度RAM異常エラーによるエラー状態に制御されると、設定変更モードに移行させて、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち、RAM41cに記憶されているデータに異常が生じた場合にも、スロットマシンにより自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
また、RAM41cに記憶されたデータに異常が生じるのは、停電時やCPU41aが暴走する等、制御に不具合が生じて制御を続行できないときがほとんどである。このため本実施例では、これらの状態から復旧してCPU41aが起動するときにおいてのみデータが正常か否かの判定を行うようになっているので、RAM41cに記憶されたデータが正常か否かの判定をデータに異常が生じている可能性が高い状況においてのみ行うことができる。すなわちデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、CPU41aの負荷を軽減させることができる。
また、本実施例では、電断割込処理においてRAM41cの全てのデータに基づくRAMパリティ、すなわち排他的論理和演算した結果が0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行うことができる。
また、本実施例では、電断割込処理において、いずれかのビットが1となる破壊診断用データ(本実施例では、5A(H))、すなわち0以外の特定のデータをRAM41cの所定のアドレスに格納した後、この破壊診断用データを含むRAM41cの全てのデータに基づくRAMパリティが0となる調整用データを格納し、起動時においてRAMパリティが0か否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティが0であり、かつ破壊診断用データも正常に格納されていることを条件に、RAM41cのデータが正常であると判定し、RAM41cに格納されているデータに基づいて制御状態を復帰させるようになっている。これにより、全ての領域に00(H)が格納されている場合、すなわちRAM41cのデータが正常でなくても、RAM41cのデータが0クリアされてしまった場合には、起動時のRAMパリティの判定により正常であると判定されてしまうが、RAM41cのデータが0クリアされてしまった場合には、破壊診断用データが格納されるべき領域も0となり、RAM41cのデータが正常ではないと判定され、誤ってRAM41cのデータが正常であると判定されてしまうことを防止できるので、起動時においてRAM41cのデータが正しい内容であるか否かの判定精度を一層高めることができる。
また、CPU41aは、起動時においてRAMパリティが0であり、かつ破壊診断用データも正常に格納されていると判定し、RAM41cのデータが正常であると判定すると、RAM41cに格納されている破壊診断用データをクリアする(0に更新する)ようになっているので、起動後もRAM41cに破壊診断用データが格納されたままの状態となることで、次回起動時においてRAM41cのデータが正常ではないにも関わらず、破壊診断用データが格納されているために正常であると誤って判定してしまうことを防止できる。
また、本実施例では、RAM41cのデータに異常が生じて、ゲームの進行が不能化された場合には、設定値の変更操作が有効となる設定変更モード(設定変更処理)へ移行することに伴って、RAM41cの使用中スタック領域を除く全ての領域が初期化されるので、RAM41cのデータに異常が生じたことに伴うデータの初期化及び設定値の選択・設定に伴うデータの初期化を1度で行うことができ、無駄な処理を省くことができる。更に、CPU41aの起動時には、RAM41cのデータが正常か否かを判定する前に、設定キースイッチ37がONの状態であるか否かを判定し、その時点で設定キースイッチ37がONの状態であると判定した場合には、RAM41cのデータが正常か否かの判定は行わず、設定変更モードに移行させて、新たに設定値が選択・設定されることとなり、この場合にも無駄な処理を省くことができる。
尚、本実施例では、設定変更処理に移行する前に、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1を行っているが、設定変更処理に移行することに伴って初期化1が行われれば良く、例えば、設定変更処理の終了後に行っても良いし、設定変更処理において設定値が確定した時点で行っても良い。尚、この場合には、確定した設定値が変更されてしまうと不都合が生じるので、初期化1においては、RAM41cの使用中スタック領域及び設定値ワークを除く全ての領域が初期化されることとなる。
また、本実施例では、トリガー端子CLK/TRGに電圧低下信号が入力されることで、CPU41aが実行中の処理に割り込んで電断割込処理を実行するようになっているが、電断割込処理では、破壊診断用データを設定する処理やRAMパリティ調整用データを計算して設定する処理等、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行う前に、信号入力端子DATAに電圧低下信号が入力されているか否かを判定を行い、信号入力端子DATAにも電圧低下信号が入力されていれば、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行うのに対して、信号入力端子DATAに電圧低下信号が入力されていなければ、もとの処理に復帰するようになっている。
すなわち、メイン制御部41には、電圧低下信号が2系統の入力部に入力され、CPU41aは、一方の入力部に電圧低下信号が入力されて電断割込処理を実行しても、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等が実行される前に再度他方の入力部に電圧低下信号が入力されているか否かを判定し、他方の入力部にも電圧低下信号が入力されていて初めてこれらの処理が実行されるようになっており、電断を誤って検出した際に、誤って復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等の処理が行われてしまうことが防止できるので、電断を誤って検出することに伴い、必要以上に長い間CPU41aの制御が中断されたり、必要以上に負荷がかかってしまうことを防止できる。
また、本実施例では、電断検出回路48が監視する電圧と、電源基板100、遊技制御基板40及び演出制御基板90に接続された電気部品を駆動させるための電源電圧と、が別個に設けられた電圧生成回路にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電断検出回路48により監視されるので、一時的な電圧降下に伴って電圧低下信号が出力され、電断割込処理が行われてしまう等の誤動作を防止できる。
また、電断割込処理及びタイマ割込処理の実行中においては、他の割込が禁止されるようになっており、例えば、タイマ割込処理の実行中に電圧低下信号が入力された場合でも2重に割込が生じることがなく、CPU41aの処理負荷が増大してしまったりデータの整合性がとれなくなってしまうことを防止できる。特に、コマンドの送信中に電圧低下信号が入力されても、割込が生じて当該コマンドの送信が阻害されることがなく、CPU41aの駆動が停止する前に正常に送信を完了させることができる。
また、電断割込処理の割込タイミングとタイマ割込処理の割込タイミングとが同時となった場合、すなわち割込2と割込3が同時に発生した場合には、割込2を優先し、電断割込処理を実行するとともに、タイマ割込処理の実行中に割込2が発生した場合には、当該タイマ割込処理の終了を待って電断割込処理を実行するようになっており、多重割込を防止しつつも極力早い段階で電断割込処理が行われるので、CPU41aの駆動が停止する前に電断割込処理を確実に行うことができる。
また、CPU41aは、割込1〜4の4種類の割込を実行可能であり、このうち未使用に設定されている割込1、4が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。このため、未使用の割込1、4が発生したときでも、すぐに割込前の処理に復帰することとなるので、ノイズ等によって未使用の割込が発生してもCPU41aが暴走してしまうといった不具合を防止できる。
また、本実施例のスロットマシン1では、入賞となる役の種類として、メダルの払い出しを伴う小役、次のゲームでの賭数にメダルを消費しないで済む再遊技役、遊技状態の移行を伴う特別役が定められている。特別役は、遊技状態の移行を伴うものであって、そのときの遊技状態に依存するので基本的な役とは言えない。スロットマシンの遊技性は、単にゲームを行うだけではなく、ゲームの結果により遊技者がメダルを獲得していくことにあるので、入賞によってメダルの払い出しを伴う小役が最も基本的な役であるということができる。ここで、小役の種類としては、JAC、チェリー、スイカ、ベルがあるが、レギュラーボーナスにおいて僅かな確率で当選するJACの他は、いずれの遊技状態においても入賞となる役の種類として定められている。このように基本となる小役を、いずれの遊技状態に制御されているときであっても入賞となる役として定めることで、遊技性が遊技者にとって分かり易いものとなる。
通常遊技状態でビッグボーナス入賞すると、レギュラーボーナスへの移行を伴うJACINに比較的高い確率で当選する(取りこぼしがないので、入賞する)ビッグボーナスに遊技状態が移行される。ビッグボーナスは、消化ゲーム数に関わらず、当該ビッグボーナス中において遊技者に払い出したメダル数の総数が465枚に達すると終了するものとなっている。ここでビッグボーナス(小役ゲーム及びレギュラーボーナスを含む)中のゲームでは、リプレイが内部抽選の対象役として定められていないので、リプレイ入賞することがない。リプレイは、遊技者の手持ちのメダルを減らさないものであるがメダルの払い出しを伴わないので、ビッグボーナスの終了条件となる払い出しメダル数に影響しない。つまり、ビッグボーナス中にリプレイ入賞させても不必要にビッグボーナスのゲーム数を増やすだけのものとなってしまうので、リプレイをビッグボーナスにおける内部抽選の対象役として定めないことで、ビッグボーナスの遊技状態を無駄に長引かせることがなく、遊技を効率良く進めることができるようになる。
また、レギュラーボーナスの遊技状態では、小役(特にベル)に高い確率で当選し、非常に多くのメダルを獲得できるようになるので、これに対する遊技者の期待感は高い。このレギュラーボーナスには、小役ゲームでJACIN入賞したときに移行されるだけではなく、通常遊技状態でレギュラーボーナス入賞したときにも移行される。このため、通常遊技状態にあるときであっても、レギュラーボーナスに対する期待感を遊技者に与えることができるので、遊技の興趣を向上させることができる。更に、レギュラーボーナスにおいては、通常遊技状態や小役ゲームにおいても定められているチェリー、スイカ、ベルに加えて、JACも小役として定められている。これにより、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
また、ビッグボーナスにおいて小役ゲームからレギュラーボーナスに遊技状態を移行させるためのJACINの表示態様は、「スイカ−JAC−JAC」の組み合わせにより構成され、他の役の表示態様として使用されていないものである。レギュラーボーナスにおいてチェリー、スイカ、ベルの小役に加えて入賞と判定されるJACの表示態様も、「ベル−JAC−JAC」の組み合わせにより構成され、他の役の表示態様として使用されていないものである。このため、リール2L、2C、2Rの表示結果として導出された表示態様と入賞となる役との関係が明確になり、遊技者にとっては遊技性が分かりやすいものとなる。
また、リール2L、2C、2Rの回転は、ストップスイッチ8L、8C、8Rの操作が検出されてから190ミリ秒の最大停止遅延時間の範囲で停止されることとなるが、この間に4図柄を引き込むことができるので、停止すべき図柄は5図柄の範囲から選ぶことができる。ここで、「スイカ」、「ベル」及び「JAC」の図柄は、リール2L、2C、2Rのいずれについても必ず5コマ以内の間隔で配置されているので、これらの図柄によって構成されるスイカ、ベル、リプレイ、JAC、及びJACINは、当選しているときには取りこぼしが生じない。特にレギュラーボーナス中のベルは、おおよそ1/1.03という非常に高い確率で当選することとなるが、これの取りこぼしが生じ得ないので、レギュラーボーナスでは遊技者が実質的には目押しをしなくても済むようになり、簡単に遊技を進められるようになる。
上記したように遊技状態毎に内部抽選の対象となる役の種類は、遊技状態別当選役テーブルに登録されているが、各役の当選確率を定める判定値数は、役別テーブルから参照されるアドレスに格納されている。役別テーブルには、各役の入賞が発生したときのメダル数も登録されている。
役別テーブルにおいて、メダル数は賭数に応じて登録されており、チェリー、スイカ、ベルの入賞が発生したときには、賭数に応じてメダル数が設定される(もっとも、チェリー、スイカでは、結果的に同じメダル数が設定される)。ここで、レギュラーボーナスにおける賭数は1で固定されているが、レギュラーボーナス以外の遊技状態における賭数は3で固定されている。これにより、賭数に応じて払出数を取得するだけでも、遊技状態に応じて適切な数のメダルを払い出すことができる。また、メダル数を設定する際に遊技状態を判断する必要がないので、入賞判定処理における処理ステップが簡素化される。しかも、レギュラーボーナスに対応した賭数1の方が、賭数3のときよりもベルの入賞時におけるメダル数が多いので、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
役別テーブルにおいて、いずれの遊技状態においても入賞となる役として定められたチェリー、スイカ、及びベルについては、賭数毎に判定値数の格納先アドレスが登録されており、賭数に従って判定値数が取得されることとなる(もっとも、チェリー、スイカでは、結果的に同じ判定値数が取得される)。ここで、レギュラーボーナスにおける賭数は1で固定されているが、レギュラーボーナス以外の遊技状態における賭数は3で固定されている。これにより、賭数に応じて判定値数を取得するだけでも、遊技状態に応じた当選確率でチェリー、スイカ、及びベルの内部抽選を行うことができる。また、判定値数を取得する際に遊技状態を判断する必要がないので、内部抽選における処理ステップが簡素化される。しかも、レギュラーボーナスに対応した賭数1の方が、賭数3のときよりもベルの当選確率が高いので、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
また、役別テーブルに登録されている各役の判定値数の格納先のアドレスは、設定値に応じて異なっている場合もあるが、設定値に関わらずに当選確率を同一とするものとした役については、設定値に関わらずに判定値数が共通化して格納されるものとなる。このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。もっとも、役別テーブルにおいて、内部抽選の対象役と設定されている賭数とが同じで設定値に応じて参照される判定値数を格納したアドレスが異なっていても、異なるアドレスにおいて格納されている判定値数が同じである場合がある。
一般に開発段階においては、少なくとも一部の役について設定値に応じて判定値数を調整しながら(すなわち、内部抽選の当選確率を調整しながら)、シミュレーションを行っていくものとしている。当初の判定値数として、設定値に応じて異なる判定値数を登録しておいたが、シミュレーションにより調整を行った結果として、設定値が異なる場合の判定値数が同一になる場合もある。当初の判定値数として、設定値に応じて同一の判定値数を登録しておいたが、シミュレーションの結果により当初から登録してあった判定値数がそのまま用いられる場合もある(シミュレーションの結果により当初とは異なる判定値数すなわち、設定値に応じて異なる判定値数となる場合もある)。そして、それぞれの場合におけるシミュレーションで適切な結果の得られた判定値数を、量産用の機種に設定する判定値数として選ぶものとしている。
ここで、シミュレーションにより調整された判定値数が結果として設定値に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM41bに記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、役別テーブルに登録されている各役の判定値数の格納先のアドレスは、賭数(1または3)に応じて異なっているが、例えば、チェリーやスイカのように異なるアドレスにおいて格納されている判定値数が同じである場合がある。
開発用の機種においては、賭数に応じても判定値データを微妙に調整しながらシミュレーションを行っていくのが通常である(当初の判定値数を異なるものとしておく場合と、同じものとしておく場合とがあり得る)。ここで、シミュレーションにより調整された判定値数が結果として賭数に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM41bに記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、内部抽選は、取得した内部抽選用の乱数に、役別テーブルから参照された各役の判定値数を加算していき、その加算の結果がオーバーフローしたか否かによって、それぞれの役の当選の有無を判定するものとしている。このため、各役の判定値数をそのまま用いて内部抽選を行うことができる。尚、実際の当選判定を行う前に当選判定用テーブルを生成する場合にはループ処理が2回必要になるが、この実施の形態によれば、抽選処理におけるループ処理が1回で済むようになり、抽選処理全体での処理効率が高いものとなる。
また、通常遊技状態における内部抽選では、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選と特別役の抽選とを別個に行うようになっている。そして、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態においては、小役及び再遊技役の抽選のみが行われることとなる。このため、複数の特別役が重複して当選してしまうことがない。更に、特別役の成立前後において、小役及び再遊技役の抽選を共通化できるので、通常遊技状態における内部抽選を簡素化することができるとともに、特別役の成立後、持ち越されている状態においては、小役及び再遊技役の抽選のみを行えば良いので、特別役の当選が持ち越されている状態での内部抽選の処理効率も高くなる。
尚、本実施例では、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選と特別役の抽選とを別個に行うようになっており、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態においては、小役及び再遊技役の抽選のみが行われるようになっているが、特別役の成立後も、小役及び再遊技役の抽選、及び特別役の抽選の双方を行い、特別役の抽選により特別役が当選した場合に、当該当選を無効に扱うようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。
また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっており、内部抽選においては、内部抽選用の乱数として取得した値が、これら判定値数により特定される小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲に含まれていれば、小役、再遊技役、特別役がそれぞれ単独で当選したと判定し、小役及び特別役が重複して当選する判定値の範囲に含まれていれば、小役及び特別役の双方が当選したと判定するようになっている。このため、特別役と小役の双方の当選が判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役と小役が同時に当選することとなり、特別役または小役の当選のみが判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役または小役のみが当選することとなる。これにより、ゲームの結果として小役入賞が発生した場合でも、小役よりも有利度の高い特別役の発生が許容されていることが否定されないので、このような状況においても特別役の発生に対する遊技者の期待感を持続させることができる。
尚、本実施例では、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっているが、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合に、特別役に当選していることに対して期待が持てる。また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び特別役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞しなかった場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び小役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。
また、本実施例では、ビッグボーナス(1)〜(3)とチェリーが重複して当選する判定値の範囲よりも、ビッグボーナス(1)〜(3)とスイカが重複して当選する判定値の範囲の方が大きくなるように設定されているため、ビッグボーナス(1)〜(3)とチェリーが同時に当選する確率よりも、ビッグボーナス(1)〜(3)とスイカが同時に当選する確率の方が高くなる。これにより、チェリーが入賞したときよりもスイカが入賞したときの方が、ビッグボーナス(1)〜(3)と同時に当選している可能性が高くなるので、小役が入賞したときに、その小役の種類によってビッグボーナス(1)〜(3)の当選に対する期待感に変化を持たせることができるため、興趣を高めることができる。
また、本実施例において乱数取得処理によって取得される内部抽選用の乱数は、サンプリング回路43により乱数発生回路42から抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工してから使用するものとしている。乱数発生回路42は、パルス発生回路42aのパルス信号の周波数で高速に更新して乱数を発生しているが、ソフトウェアにより加工した後の内部抽選用の乱数では、その加工によって更新の周期性が失われるものとなる。
これに対して、内部抽選では各役に対応した判定値数を内部抽選用の乱数の値に順次加算していくことにより行うため、図8〜図10に示したように各役を当選とする内部抽選用の乱数の値は、固まってしまうこととなる。これに対して、ソフトウェアによる加工で内部抽選用の乱数の周期性を失わせ、その値をバラつかせることによって、遊技者による狙い打ちを可能な限り防ぐことができる。
しかも、乱数発生回路42のカウンタ42b、42cの値を更新させるためにパルス発生回路42aが発生するパルス信号の周波数は、CPU41aの動作クロックの周波数よりも高く、整数倍ともなっていない。このため、乱数発生回路42が発生する乱数の更新が、CPU41aが行う処理と同期しにくくなる。しかも、パルス発生回路42aのパルス信号の周波数の方を高くすることで、乱数発生回路42が発生する乱数の更新速度を非常に速いものとすることができる。
一方、ソフトウェアによる乱数の加工は、サンプリング回路43により乱数発生回路42から抽出した乱数の上位バイトと下位バイトとを入れ替え、第15、第7ビットをマスクした後、上位バイトをビットシフトするだけで良い。従って、16ビット(実際にはマスクされて14ビット)という比較的大きな乱数であっても、周期性を失わせるために必要な加工の処理に要する負荷がそれほど大きくならず、容易に取得することができる。このように大きな乱数が取得できることで、内部抽選における確率設定を細かく行うことができるようになる。
また、本実施例では、サンプリング回路43により乱数発生回路42から抽出した2バイト(16ビット)の乱数のうち、特定の2ビット(本実施例では第15、第7ビット)をマスクして得られる14ビットの乱数が取得されるようになっている。これは、一般的に汎用品の乱数発生回路は、16ビットの乱数を出力するものであるが、内部抽選において用いる乱数の範囲としては、14ビットの乱数で十分であり、16ビットの乱数をそのまま取得した場合には、乱数の範囲が大き過ぎるため、役別テーブルに格納されるデータ量がも多くなってしまい、ROM41bの格納領域も圧迫されてしまううえに、内部抽選で処理する数値も大きくなってしまうので、CPU41aの負荷も大きくなってしまうからである。
このように本実施例では、サンプリング回路43により乱数発生回路42から抽出した2バイト(16ビット)の乱数のうち、特定の2ビットをマスクして得られる14ビットの乱数を取得するので、比較的安価な汎用の乱数発生回路を用いても、ROM41bの格納領域を圧迫することがなく、CPU41aの負荷も大きくなってしまうことがない。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、実施例において、CPU41aがRAM41cの初期化を行う際には、ROM41bの初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定するとともに、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行することで、初期化条件に応じたRAM41cの領域を初期化しているが、初期化1〜4において初期化される領域を連続するアドレス領域に設定するとともに、初期化テーブルには、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと、初期化1〜4の全てに共通する終了アドレスと、を登録しておき、CPU41aがRAM41cの初期化を行う際に、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスを取得し、開始アドレスにポインタを設定するとともに、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に、ポインタを進める処理を、初期化1〜4に共通の終了アドレスの領域がクリアされるまで実行することで、初期化条件に応じたRAM41cの領域を初期化するようにしても良い。
尚、この場合、1バイトクリアする毎に、ポインタが示すアドレスが終了アドレスであるかを判定し、終了アドレスであれば初期化を終了させるようにしても良いが、まず、初期化テーブルから取得した開始アドレスから共通の終了アドレスまでの初期化バイト数を計算して設定し、開始アドレスから1バイトクリアする毎に初期化バイト数を1減算するとともに、ポインタを1進める処理を、初期化バイト数が0になるまで実行し、初期化バイト数が0となった時点で終了アドレスの領域がクリアされたと判定し、初期化を終了することが好ましい。これは、ポインタが示すアドレスと終了アドレスを1バイト毎に比較する処理を行うよりも、初期化バイト数が0か否かを判定する処理の方が処理効率が高いからである。
図38(a)は、RAM41cの格納領域の変形例を示す図であり、図38(b)は、初期化テーブルの変形例を示す図であり、図39は、初期化1の変形例を示すフローチャートである。
図38(a)に示すように、この変形例においては、RAM41cの格納領域が7E00(H)から、設定値ワーク1〜3、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域、使用中スタック領域の順番で割り当てられている。このため、初期化1、2、4のいずれを行った場合でも、初期化される領域が連続するアドレス領域となる。詳しくは、初期化1において初期化される領域は、使用中スタック領域を除く全ての領域、すなわち、設定値ワーク1〜3、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E00(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化2において初期化される領域は、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E53(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化4において初期化される領域は、未使用領域、未使用スタック領域であり、これらの領域は、7F05(H)〜スタックポインタまでの連続するアドレス領域である。尚、初期化2において一般ワーク、未使用領域、未使用スタック領域が初期化されるのに対して、初期化3では、非保存ワーク、未使用領域、未使用スタック領域が初期化されるので、初期化3において初期化される未使用領域及び未使用スタック領域は、連続するアドレス領域となるが、非保存ワークは連続しないアドレス領域となる。
図38(b)に示すように、この変形例において適用する初期化テーブルには、初期化1〜4に対応して開始アドレスが登録されているとともに、初期化1〜4に共通する終了アドレスが登録されている。また、初期化3については、非保存ワークが連続しないアドレス領域となるので、非保存ワークの開始アドレスに対応して初期化サイズが登録されている。
次に、図39に示すフローチャートに基づいて、CPU41aが実行する初期化1の変形例を説明する。
この初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスを読み出す(Sm101)。そして、読み出した開始アドレス(7E00(H))にポインタをセットする(Sm102)。次いで、ROM41bの初期化テーブルを参照し、初期化1〜4に共通の終了アドレスを読み出す(Sm103)。そして、Sm101で読み出した開始アドレス(7E00(H))からSm103で読み出した終了アドレス(スタックポインタ)までのバイト数を計算し(Sm104)、計算したバイト数を初期化する領域のバイト数をセットする(Sm105)。そして、Sm102でセットされた開始アドレスからSm105でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sm106)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
また、初期化2、4の変形例は、図39に示す初期化1の変形例とほぼ同様の処理であり、初期化テーブルに登録されている初期化2または初期化4の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。また、初期化3の変形例では、まず、初期化テーブルに登録されている非保存ワークの開始アドレスと初期化サイズを取得し、開始アドレスから初期化サイズ分のバイト数にわたりデータをクリアした後、初期化テーブルに登録されている未使用領域及び未使用スタック領域の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。
上記のようなRAM41cの初期化の変形例によれば、複数の初期化条件について、初期化テーブルに対応する開始アドレスとこれら複数の初期化条件に共通の終了アドレスのみを設定しておくことで、複数の初期化条件に対応する終了アドレスを個々に設定しておくことなく、複数の初期化条件に対応する領域を初期化することができるので、複数種類の初期化を行うためのプログラム容量を削減できる。
また、前記実施例では、電断割込処理においてRAM41cのRAMパリティが0となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているが、もちろん電断割込処理においてRAM41cのRAMパリティが1となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが1か否かを判定することで、RAM41cのデータが正常か否かを判定するようにしても良い。更には、電断割込処理においてRAM41cの全ての領域のチェックサム(該当する領域に格納されているデータの排他的論理和)を計算し、特定の領域に格納するとともに、復旧時において、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算し、その結果が00(H)であればRAM41cのデータが正常であると判定し、00(H)でなければRAM41cのデータが異常であると判定するようにしても良い。
これは、電断割込処理において正常にチェックサムが格納されていれば、復旧時において特定の領域を除く領域のチェックサムと特定の領域に格納されているデータ(電断時に計算したチェックサム)が同じ値をとるはずであり、特定の領域を除く領域のチェックサムと特定の領域に格納されているデータが一致するのであれば、双方のデータの排他的論理和を計算するとその結果が00(H)となるので、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算した結果が00(H)であれば、RAM41cのデータが正常であると判定できるためである。
尚、この場合にも、電断割込処理において、チェックサムを計算する前にいずれかのビットが1となる破壊診断用データ(例えば5A(H))を所定のアドレスに格納し、復旧時においては、チェックサムが00(H)か否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、チェックサムが00(H)であり、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。RAM41cのデータが正常でなくても、全ての領域に00(H)が格納されている場合には、起動時のチェックサムの判定により正常であると判定されてしまうが、停電時にいずれかのビットが1となる破壊診断用データを格納した後、チェックサムを計算し、特定の領域に格納しておくとともに、起動時にチェックサムの判定に加えて破壊診断用データのチェックも行うことで、例え、起動時において全ての領域が0クリアされてしまい、チェックサムが00(H)となり正常と判定された場合にも、破壊診断用データが停電時に格納された値と一致しなくなり、異常と判定されるため、RAM41cに格納されているデータの異常の判定精度を高めることができる。
また、上記では、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、RAM41cに格納するとともに、復旧時においてRAM41cの全ての領域に基づいて計算したRAMパリティが0であるか否か、またはRAM41cの全ての領域に基づいて計算したチェックサムが00(H)であるか否か、に基づいてRAM41cのデータが正常か否かを判定しているが、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、特定の領域に格納するとともに、復旧時においてRAM41cの特定の領域を除くRAMパリティまたはチェックサムを計算し、特定の領域に格納されているRAMパリティまたはチェックサムとの比較結果が一致するか否かによってRAM41cのデータが正常か否かを判定するようにしても良い。尚、この場合にも上記と同様に、RAMパリティやチェックサムを計算する前にいずれかのビットが1となる破壊診断用データを所定のアドレスに格納し、復旧時においては、RAMパリティやチェックサムが一致するか否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティやチェックサムが一致し、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。
また、前記実施例では、電断割込処理において破壊診断用データとして、5A(H)をRAM41cに格納しているが、0以外のデータを格納し、起動時に確認できるものであれば良く、このような構成であっても、起動時において全ての領域が0クリアされてしまった場合に破壊診断用データが停電時に格納された値と一致しなくなり、異常と判定されるため、RAM41cに格納されているデータの異常の判定精度を高めることができる。
また、前記実施例では、CPU41aの起動時において、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定し、RAMパリティが0であることを条件に破壊診断用データが正常に格納されているか否かの判定を行っているが、まず、破壊診断用データが正常に格納されているか否かを判定し、破壊診断用データが正常に格納されていることを条件に、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定するようにしても良く、このようにすれば、破壊診断用データが正常に格納されていない場合には、RAMパリティを計算せずに、RAM41cのデータが異常である旨を判定することができる。
また、前記実施例では、メイン制御部41の起動時においてのみRAM41cのデータが正常か否かを判定しているが、その他の契機、例えば、1ゲーム毎に判定するようにしても良い。
また、前記実施例では、メイン制御部41とは別個に設けられたリセット回路49からのリセット信号に基づいてメイン制御部41が起動するようになっているが、リセット回路をメイン制御部41を構成するマイクロコンピュータが搭載していても良い。
また、前記実施例では、メイン制御部41を構成するマイクロコンピュータにRAM41cが搭載されているが、マイクロコンピュータの外部に当該マイクロコンピュータのワークとして用いるRAMを搭載したものであっても良い。
また、前記実施例では、電断検出回路48が、スロットマシン1に用いられる直流電圧を監視し、当該直流電圧が一定の電圧以下となったときに電断を検出しているが、例えば、当該直流電圧が一定の電圧以下となった期間が一定期間継続したときに電断を検出するようにしても良い。また、スロットマシン1に供給される交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したときに電断を検出するようにしても良い。
また、前記実施例では、電断検出回路48が、遊技制御基板40に搭載されているが、その他の場所に搭載されていても良く、例えば、電源基板100や電源基板100から遊技制御基板40への電源の供給ラインが経由する中継基板等に搭載されていても良い。
また、前記実施例では、各種エラー状態の内容をエラー状態に応じたエラーコードを遊技補助表示器12に表示させることで、エラーを報知するようになっている。すなわち遊技制御部41により制御される報知手段により報知されているが、これら遊技制御部41により制御される報知手段に加えて、エラー状態を示すコマンドを演出制御部91に対して送信し、演出制御部91により制御される報知手段によりエラーの報知が行われるようにしても良いし、遊技制御部41により制御される報知手段による報知を行わず、演出制御部91により制御される報知手段によりエラーの報知が行われるようにしても良い。
また、前記実施例では、内部抽選に用いる判定値数が記憶されるRAM41cの判定値数記憶領域は、2バイトの領域を用いて、それぞれの場合における判定値数を記憶するものとしていた。もっとも、一般的なスロットマシンでは、特別役の判定値数は、いずれの遊技状況においても255を超えるものが設定されることはあまりない。このように255を超える判定値数を設定する必要がないものについては、1バイトの領域だけを用いて、判定値数を記憶するものとしても良い。
また、前記実施例では、判定値数が設定値に関わらず共通のものについて、その一部を設定値1〜6の全体に共通して記憶しているが、判定値数が設定値に関わらず共通のものについても、設定値1〜6のそれぞれに対して個別に記憶することもできる。また、判定値数が設定値に関わらず共通のものは、その全てを設定値1〜6の全体に共通して記憶するすることもできる。
また、前記実施例では、判定値数が、設定値1〜6の全体に共通して記憶されているか、設定値1〜6のそれぞれに対して個別に記憶されているかであった。もっとも、設定値1〜6の全体に共通して判定値数が記憶されない(設定値についての共通フラグが設定されない)ものとして、例えば、設定値1〜3については判定値数が共通、設定値4〜6については判定値数が共通のものとすることもできる。賭数についての判定値数についても同様で、例えば賭数1と2については共通、賭数3では個別とすることもできる。
また、前記実施例では、同一の設定値における同一の役について賭数に応じて参照される判定値数が賭数(1または3)のそれぞれに対して異なるアドレスに格納されていた。すなわち同一の設定値における同一の役について賭数に応じて参照される判定値数が同じであっても個別に記憶されていたが、賭数に関わらず当選確率を同一とするものとした役について、判定値数の格納先のアドレスを共通化したり、設定値及び賭数に関わらず当選確率を同一とするものとした役について、判定値数の格納先のアドレスを共通化するようにしても良く、このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。
また、前記実施例では、設定値等に応じて取得した判定値数を内部抽選用の乱数の値に順次加算していたが、取得した判定値数を取得した内部抽選用の乱数の値から順次減算して、減算の結果を新たな内部抽選用の乱数の値とするものとしても良い。判定値数を内部抽選用の乱数の値から減算するときには、内部抽選用の乱数の第15ビットと第14ビットとを「0」として、減算の結果にオーバーフロー(ここでは、減算結果がマイナスとなること)が生じたかどうかを判定するものとすることができる。
また、前記実施例では、内部抽選において、取得した内部抽選用の乱数の値に遊技状況に応じた各役の判定値数を順次加算していき、加算結果がオーバーフローしたときに当該役を当選と判定するものとしていた。これに対して、遊技状況に応じた各役の判定値数に応じて、各役を当選と判定する判定値を定めた当選判定用テーブルをゲーム毎に作成し、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしても良い。また、各役を当選と判定する判定値を定めた当選判定用テーブルを予めROM41bに格納しておき、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしても良い。
また、前記実施例では、通常遊技状態及びビッグボーナス中の小役ゲームにおいて、賭数として3を設定することのみによりゲームを開始させることができた。これに対して、通常遊技状態及びビッグボーナス中の小役ゲームにおいても、賭数として1を設定してゲームを開始させることをできるようにしたり、更には賭数として2を設定してゲームを開始させることをできるようにしても良い。これにより、通常遊技状態及びビッグボーナス中の小役ゲームで賭数として1または2が設定されていたときには、賭数として3が設定されたときよりも内部抽選における小役の当選確率を低下させるともに、小役に入賞したときの払い出しメダル枚数を増加させることができる。例えば、通常遊技状態及びビッグボーナス中の小役ゲームで賭数として3が設定されたときには、ベルの当選確率を1/4.6、払出枚数を8枚とするが、賭数として1または2が設定されたときには、ベルの当選確率を1/240.9、払出枚数を15枚としても良い。更に賭数として1が設定されたときと2が設定されたときとで、ベルの当選確率及び払出枚数を変えても良い。
また、前記実施例では、通常遊技状態における内部抽選において、同一の内部抽選用の乱数について、小役及び再遊技役用の役別テーブルを参照する小役及び再遊技役の抽選と、特別役用の役別テーブルを参照する特別役の抽選と、を別個に行うとともに、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようにすることにより、特別役と小役が同時に当選し得る構成としていたが、役別テーブルに、特別役のみに対応する判定値数の格納先のアドレス、特別役及び小役の双方に対応する判定値数の格納先のアドレス、小役のみに対応する判定値数の格納先アドレス、再遊技役のみに対応する判定値数の格納先アドレスをそれぞれ登録しておき、内部抽選において、取得した内部抽選用の乱数に、役別テーブルから参照された各役の判定値数を加算していき、特別役のみに対応する判定値数との加算結果がオーバーフローした場合には、特別役のみの当選を判定し、特別役及び小役の双方に対応する判定値数との加算結果がオーバーフローした場合には、特別役及び小役の双方の当選を判定し、小役または再遊技役のみに対応する判定値数との加算結果がオーバーフローした場合には、小役または再遊技役のみの当選を判定するようにすることで、特別役と小役が同時に当選し得る構成とすることもできる。すなわち1つの役別テーブルから、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようにすることで、特別役と小役が同時に当選し得る構成とすることもできる。
図40は、役別テーブルの変形例を示す図であり、図41は内部抽選処理の変形例を示すフローチャートである。
図40に示す役別テーブルには、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、JACIN、JAC、チェリー、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、スイカ、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカ、ベル、リプレイの判定値数の格納アドレスが参照される順番に登録されている。
各役の判定値数は、ゲームにおいて遊技者が設定する賭数(BET)に対応して登録されている。同一の役であっても、レギュラーボーナスにおける当選確率が他の役と異なっている場合があるからである。また、各役の賭数に応じた判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。これらの役のうち、ビッグボーナス(1)、ビッグボーナス(2)及びビッグボーナス(3)、レギュラーボーナス(1)については、共通フラグの値が0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。また、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカについては、共通フラグの値が1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。レギュラーボーナス(2)及びJACINは、ビッグボーナス中の小役ゲームでのみ内部抽選の対象となる役であり、小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
JACは、レギュラーボーナスでのみ内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。リプレイは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
チェリー、ベル、及びスイカは、いずれの遊技状態でも内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態または小役ゲームでの賭数3に対応する判定値数の格納アドレスとが登録されている。チェリー及びスイカについては、共通フラグが1となっており、それぞれの賭数に対応して設定値に関わらず共通の判定値数の格納アドレスが登録されている。ベルについては、共通フラグが0となっており、それぞれの賭数に対応して設定値に応じて個別に判定値数の格納アドレスが登録されている。
次に、図41に示すフローチャートに基づいて、CPU41aが実行する内部抽選処理の変形例を説明する。
この変形例における内部抽選処理では、まず、詳細を後述する乱数取得処理を行う(Sg101)。この乱数取得処理においては、乱数発生回路(図示略)が発生する乱数に基づいて、内部抽選用の乱数の値が取得されることとなる。
そして、RAM41cの設定値ワーク1〜3に格納されている設定値をそれぞれを読み出し(Sg102)、読み出した設定値に基づいて抽選に用いる設定値、すなわち設定値ワーク1に格納されている設定値が適正か否かを判定する設定値判定処理を行う(Sg103)。そして、設定値判定処理において設定値が適正であれば、設定値ワーク3に格納されている値、すなわち前回のゲームにおいて抽選に用いた設定値を、設定値1に格納されている値、すなわち今回のゲームにおいて抽選に用いる設定値に更新する(Sg104)。
次いで、現在の遊技状態に対応して、図40の役別テーブルに登録されている役を順番に読み出す(Sg105)。ここで読み出した役の種類がレギュラーボーナス(レギュラーボーナス(1)、レギュラーボーナス(2))、ビッグボーナス(ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)(+チェリー、+スイカは含まず))であるかどうかを判定する(Sg106)。レギュラーボーナス、ビッグボーナスまたはJACINのいずれかである場合には、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg107)。読み出した役の種類がレギュラーボーナスでもレギュラーボーナスでもなければ、そのままSg108の処理に進む。
レギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、Sg105の処理に戻り、更に遊技状態別当選役テーブルに次に登録されている役を読み出すものとなる(レギュラーボーナス、ビッグボーナス及びJACINは、役別テーブルにおいて最初に登録されており、これで抽選処理が終了となることはないので)。読み出した役の種類がレギュラーボーナス、ビッグボーナスまたはJACINであっても、レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、Sg108の処理に進む。
Sg108では、更にSd1のステップで設定されたBET数を読み出し、当該役と読み出したBET数に対応する役について、図40の役別テーブルから共通フラグの設定状況を取得する。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg109)。
共通フラグが設定されていれば、当該役、当該BET数について図40の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg110)。そして、Sg112の処理に進む。共通フラグが設定されていなければ、RAM41cに設定されている設定値を読み出し、当該役、当該BET数について読み出した設定値に対応して役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg111)。そして、Sg112の処理に進む。
Sg112のステップでは、Sg110またはSg111のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg113)。オーバーフローが生じた場合には、当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカであるか否かを判定する(Sg114)。当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカでなければ、当該役の当選フラグをRAM41cに設定する(Sg114)。そして、内部抽選処理を終了して、図17のフローチャートに復帰する。
Sg114のステップにおいて、当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカであれば、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg116)。レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、ビッグボーナス(1)〜(3)の該当する当選フラグ及びチェリーの当選フラグ、またはビッグボーナス(1)〜(3)の該当する当選フラグ及びスイカの当選フラグをそれぞれRAM41cに設定する(Sg117)。そして、内部抽選処理を終了して、図17のフローチャートに復帰する。
Sg116のステップにおいてレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、チェリーの当選フラグまたはスイカの当選フラグをRAM41cに設定する(Sg118)。そして、内部抽選処理を終了して、図17のフローチャートに復帰する。
Sg113のステップにおいてオーバーフローが生じていない場合には、当該遊技状態について定められた役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg119)。未だ処理対象としていない役があれば、Sg105の処理に戻り、遊技状態別当選役テーブルに登録されている次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図17のフローチャートに復帰する。
上記のように、図40に示す役別テーブル及び図41に示す内部抽選処理を適用した変形例によれば、特別役と小役の双方の当選が判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役と小役が同時に当選することとなり、特別役の当選のみが判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役のみが当選することとなる。これにより、ゲームの結果として小役入賞が発生した場合でも、小役よりも有利度の高い特別役の発生が許容されていることが否定されないので、このような状況においても特別役の発生に対する遊技者の期待感を持続させることができる。また、特別役のハズレに対応する判定値数を登録する必要がないので、ROM41bの容量を節約できるとともに、遊技状態に関わらず、内部抽選処理を共通化できるので、プログラムも簡素化することができる。
尚、上記の構成においては、図40に示す役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっているが、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合に、特別役に当選していることに対して期待が持てる。また、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び特別役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞しなかった場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。また、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び小役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。
また、上記の構成においては、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態において、特別役が単独で当選する判定値の範囲の値が内部抽選用の乱数として取得された場合にハズレと判定され、小役及び特別役が重複して当選する判定値の範囲の値が内部抽選用の乱数として取得された場合に、小役のみの当選が判定されることで、複数の特別役が当選してしまうことがないようになっているが、小役及び特別役が重複して当選する判定値の範囲の値が内部抽選用の乱数として取得された場合にもハズレと判定するようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。また、特別役の成立後は、特別役が単独で当選する判定値の範囲や小役及び特別役が重複して当選する判定値の範囲を特定可能なデータが登録されていない役別テーブル、すなわち再遊技役が当選する判定値の範囲を特定可能なデータと小役のが当選する判定値の範囲を特定可能なデータのみが登録された役別テーブルによって内部抽選処理を行うようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。
また、前記実施例では、乱数発生回路42から抽出した乱数の上位バイト全体を下位バイトで置換し、下位バイト全体を上位バイトで置換するという入れ替えを行っていた。これに対して、乱数発生回路42から抽出した乱数のビットのうちの特定のビットのデータを他のビットのデータ(但し、マスクされる第7、第15ビット以外)で置換するだけであっても良い。また、乱数発生回路42から抽出した乱数の値を、そのまま内部抽選用の乱数として取得するものとしても良い。更に、上記の実施の形態とは異なる方法により内部抽選用の乱数に加工するものとしても良い。
図42は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第1の変形例の説明図である。この第1の変形例でも、乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、更に内部のリフレッシュレジスタ41Rの値を加工用の乱数として抽出する。CPU41aは、汎用レジスタ41GRの上位バイトの値(上位カウンタ42cから抽出した値)にリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。汎用レジスタ41GRの下位バイトの値(下位カウンタ42bから抽出した値)は、そのままにしておく。
次に、CPU41aは、汎用レジスタ41GRの値、すなわち上位バイトに加工用の乱数を加算した値を、8080hと論理和演算をする。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU41aは、このときに汎用レジスタ41GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
図43は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第2の変形例の説明図である。この例でも、乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、更に内部のリフレッシュレジスタ41Rの値を加工用の乱数として抽出する。CPU41aは、汎用レジスタ41GRの上位バイトの値(上位カウンタ42cから抽出した値)にリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。また、汎用レジスタ41GRの下位バイトの値(下位カウンタ42bから抽出した値)にもリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。
次に、CPU41aは、汎用レジスタ41GRの値、すなわち上位バイト及び下位バイトにそれぞれ加工用の乱数を加算した値を、8080hと論理和演算をする。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU41aは、このときに汎用レジスタ41GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
以上説明した第1、第2の変形例では、リフレッシュレジスタ41Rの値を加工用の乱数として抽出し、これを乱数発生回路42から抽出した乱数の上位バイト(第2変形例では、更に下位バイト)に加算して、乱数の加工を行うものとしている。ここで適用した乱数の加工には、少なくとも加工用の乱数を上位バイトに加算する処理を含んでいる。これにより、内部抽選用の乱数のバラツキを大きくすることができ、遊技者による狙い打ちを可能な限り防ぐことができる。
また、加工用の乱数をリフレッシュレジスタ41Rから抽出するものとしたことで、加工用の乱数を生成する手段として特別な構成が必要ない。しかも、リフレッシュレジスタ41Rの値は、CPU41aの命令フェッチ毎に更新されるもので、その更新間隔は一定しないので、ランダム性の高い乱数を加工用の乱数として抽出することができる。そして、加工用の乱数のランダム性が高いことから、これを用いて生成される内部抽選用の乱数のランダム性も高くなる。
尚、上記第1、第2の変形例において、乱数発生回路42から抽出した乱数の上位バイト(及び下位バイト)にリフレッシュレジスタ41Rから抽出した値を加算していたが、リフレッシュレジスタ41R以外でハードウェアまたはソフトウェアにより周期的に更新される値を加算しても良い。また、リフレッシュレジスタ41Rから抽出した値(或いは、リフレッシュレジスタ41Rに代わるものの値)を加算するのではなく、減算や、論理和、論理積などの論理演算を行っても良い。
また、前記実施例で示した上位バイトと下位バイトとの入れ替えのようなビットの置換を、第1、第2の変形例に併用するものとしても良い。上記第1、第2の変形例においても、乱数発生回路42からの乱数の抽出から加工を終了するまでの間は、汎用レジスタ41GRの内容が書き換えられてしまうのを防ぐため、CPU41aに対する割り込みが禁止されるものとなる。
また、第2の変形例においては、乱数発生回路42から抽出した乱数の上位バイトと下位バイトにそれぞれ加算する加工用の乱数を、リフレッシュレジスタ41Rから異なるタイミングで別々に抽出しても良い。上位バイトに加算する加工用の乱数を更新する手段と、下位バイトに加算する加工用の乱数を更新する手段とを別々に用意し、それぞれから上位バイト用、下位バイト用の加工用の乱数を抽出する手段を設けるものとしても良い。この場合において、上位バイト用の加工用の乱数を更新する手段と下位バイト用の加工用の乱数を更新する手段の一方をリフレッシュレジスタ41Rによって構成するものとすることができる。
また、前記実施例では、乱数発生回路42が発生する乱数、すなわちハードウェア乱数機能により抽出した乱数をソフトウェアにより加工する場合に本発明を適用した場合について説明した。しかしながら、上記したソフトウェアによる乱数の加工は、ソフトウェアにより周期的に更新される乱数に適用しても良い。例えば、メイン制御部41を構成するマイクロコンピュータとは別の第2のマイクロコンピュータにおいてタイマ割り込みなどにより周期的に更新される乱数を、CPU41aが第2のマイクロコンピュータに指示を送って抽出させ、I/Oポート41dを介してCPU41aに入力して、汎用レジスタ41GRに格納するものとすることができる。第2のマイクロコンピュータの機能は、メイン制御部41を構成するマイクロコンピュータに含まれていても良い。この場合にも、加工後に取得される乱数の値をバラつかせることができるようになり、遊技者による狙い打ちの防止の効果を図ることができる。
また、前記実施例では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであっても良い。
前記実施例における各要素は、本発明に対して以下のように対応している。
本発明の請求項に記載のスロットマシンは、
遊技用価値(メダル)を用いて1ゲームに対して所定数(1または3)の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報(図柄)を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン(スロットマシン1)であって、
遊技の制御を行うメイン制御手段(メイン制御部41)を備え、
前記メイン制御手段は、
前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段(RAM41c)と、
所定の設定操作手段(リセット/設定スイッチ38)の操作に基づいて、入賞の発生を許容する旨が決定される割合(当選確率)が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段(CPU41aによる設定変更処理)と、
前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の複数の異なる記憶領域(設定値ワーク1、設定値ワーク2)に設定する設定値設定手段(設定変更処理において確定した設定値を設定値ワーク1、設定値ワーク2のそれぞれに格納する処理)と、
前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段(バックアップ電源)と、
前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)と、
前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段(CPU41aは、RAMのデータ異常と判定したときにRAM異常エラー状態に制御する)と、
ゲームの開始操作がなされる毎に、前記メインデータ記憶手段の複数の異なる記憶領域にそれぞれ記憶されている設定値データを読み出し、全ての設定値データが一致する場合に前記読み出した設定値データが適正であると判定し、いずれか1つでも一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段(CPU41aは、設定値ワーク1、2から読み出された設定値が一致するか否かを判定する)と、
前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段(CPU41aは、内部抽選において設定値ワーク1から設定値を読み出し、読み出した設定値の当選確率に応じて、複数種類の役について当選したか否かの判定を行う)と、
前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段(CPU41aは、設定値ワーク1、2から読み出された設定値が一致しないときにRAM異常エラー状態に制御する)と、
前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段(CPU41aは、RAM異常エラー状態に移行すると、設定変更処理により新たに設定値が選択・設定されることでゲーム処理に復帰させる)と、
を含む
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、
遊技用価値(メダル)を用いて1ゲームに対して所定数(1または3)の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報(図柄)を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン(スロットマシン1)であって、
遊技の制御を行うメイン制御手段(メイン制御部41)を備え、
前記メイン制御手段は、
前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段(RAM41c)と、
所定の設定操作手段(リセット/設定スイッチ38)の操作に基づいて、入賞の発生を許容する旨が決定される割合(当選確率)が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段(CPU41aによる設定変更処理)と、
前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の第1の記憶領域(設定値ワーク1)に設定する設定値設定手段(設定変更処理において確定した設定値を設定値ワーク1に格納する処理)と、
前記第1の記憶領域とは異なる前記メインデータ記憶手段の第2の記憶領域(設定値ワーク3)に、入賞の発生を許容するか否かを決定する際に前記第1の記憶領域から読み出した前記設定値データを履歴として設定する履歴設定値設定手段と、
前記第1の記憶領域とは異なる前記メインデータ記憶手段の第2の記憶領域(設定値ワーク3)に、前記事前決定手段が入賞の発生を許容するか否かを決定する際に前記第1の記憶領域から読み出した設定値データを履歴として設定する履歴設定値設定手段(内部抽選処理において設定値ワーク1から読み出した設定値を設定値ワーク3に格納する処理)と、
前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段(バックアップ電源)と、
前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)と、
前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段(CPU41aは、RAMのデータ異常と判定したときにRAM異常エラー状態に制御する)と、
ゲームの開始操作がなされる毎に、前記第1の記憶領域(設定値ワーク1)に記憶されている設定値データ及び前記第2の記憶領域(設定値ワーク3)に記憶されている設定値データを読み出し、双方が一致する場合に前記読み出した設定値データが適正であると判定し、一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段(CPU41aは、設定値ワーク1、3から読み出された設定値が一致するか否かを判定する)と、
前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段(CPU41aは、内部抽選において設定値ワーク1から設定値を読み出し、読み出した設定値の当選確率に応じて、複数種類の役について当選したか否かの判定を行う)と、
前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段(CPU41aは、設定値ワーク1、3から読み出された設定値が一致しないときにRAM異常エラー状態に制御する)と、
前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段(CPU41aは、RAM異常エラー状態に移行すると、設定変更処理により新たに設定値が選択・設定されることでゲーム処理に復帰させる)と、
を含む
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1または2に記載のスロットマシンであって、
前記メインデータ記憶手段(RAM41c)の記憶領域には、前記メイン制御手段(メイン制御部41)が動作を行うためのデータが記憶されるワーク領域(重要ワーク、一般ワーク、特別ワーク、設定値ワーク1〜3、非保存ワーク)と、前記メイン制御手段が動作を行うためのデータの読み出し及び書き込みが行われることのない未使用領域と、が割り当てられており、
前記メイン制御手段は、前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段(CPU41aによるRAM41cの初期化)を含み、
該初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用領域を1ゲーム毎(1ゲーム終了毎)に初期化する
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜のいずれかに記載のスロットマシンであって、
前記メインデータ記憶手段(RAM41c)の記憶領域には、前記メイン制御手段(メイン制御部41)が動作を行うためのデータが記憶されるワーク領域(重要ワーク、一般ワーク、特別ワーク、設定値ワーク1〜3、非保存ワーク)と、データを一時的に格納することが可能なスタック領域と、が割り当てられており、
前記メイン制御手段は、
前記メイン制御手段が使用中のデータを前記スタック領域に退避するデータ退避手段(CPU41aによるレジスタの退避)と、
前記退避手段により前記スタック領域に退避したデータを前記メイン制御手段が使用するデータとして復帰させるデータ復帰手段(CPU41aによるレジスタの復帰)と、
前記スタック領域のうち前記データ退避手段により退避したデータが記憶されていない未使用スタック領域を特定する未使用スタック領域特定手段(CPU41aによるスタックポインタから未使用領域のサイズの計算)と、
前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段(CPU41aによるRAM41cの初期化)と、
を含み、
前記初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用スタック領域特定手段により特定される未使用スタック領域を1ゲーム毎(1ゲーム終了毎)に初期化する
ことを特徴としている。
本発明の手段1に記載のスロットマシンは、請求項またはに記載のスロットマシンであって、
前記初期化手段(CPU41aによるRAM41cの初期化)は、複数種類の初期化条件(設定開始前、ビッグボーナス終了時、電源投入時でRAM41cが壊れていないとき、1ゲーム終了時)のうちいずれかの初期化条件が成立したときに、該成立した初期化条件の種類に対応して定められた領域を初期化するとともに、該成立した初期化条件の種類に関わらず前記メインデータ記憶手段(RAM41c)の記憶領域における未使用領域及び/または前記未使用スタック領域を必ず初期化する
ことを特徴としている。
本発明の手段2に記載のスロットマシンは、請求項3、4、手段1のいずれかに記載のスロットマシンであって、
前記メインデータ記憶手段(RAM41c)には、記憶領域を特定するアドレスが割り当てられているとともに、
前記初期化手段(CPU41aによるRAM41cの初期化)は、2種類以上の初期化条件(設定開始前、ビッグボーナス終了時、1ゲーム終了時)の種類に対応して前記メインデータ記憶手段における初期化開始アドレス(開始アドレス)が設定されるとともに、該初期化条件に共通する初期化終了アドレス(終了アドレス)が設定された初期化領域設定手段(初期化テーブル(図38(b))を含み、前記初期化条件が成立したときに、該初期化条件の種類に対応して前記初期化領域設定手段に設定された初期化開始アドレスから前記初期化終了アドレスまでの各アドレスが割り当てられた記憶領域を初期化する
ことを特徴としている。
本発明の手段3に記載のスロットマシンは、手段1または手段2に記載のスロットマシンであって、
前記メインデータ記憶手段(RAM41c)には、記憶領域を特定するアドレスが割り当てられているとともに、
前記初期化手段(CPU41aによるRAM41cの初期化)は、初期化条件(設定開始前、ビッグボーナス終了時、電源投入時でRAM41cが壊れていないとき、1ゲーム終了時)の種類に対応して前記メインデータ記憶手段における初期化開始アドレス(開始アドレス)と該初期化開始アドレスに対して初期化される記憶領域のサイズ(初期化サイズ)が設定された初期化領域設定手段(ROM41bの初期化テーブル(図13(b))を含み、前記初期化条件が成立したときに、該初期化条件の種類に対応して前記初期化領域設定手段に設定された初期化開始アドレスから該初期化アドレスに対して設定されたサイズの記憶領域を初期化する、
ことを特徴としている。
本発明の手段4に記載のスロットマシンは、請求項3、4、手段1〜3のいずれかに記載のスロットマシンであって、
前記スロットマシン(スロットマシン1)で用いられる所定の電力の状態(+25V)を監視し、電力供給が断たれたことに関わる停電条件が成立しているとき(+18V以下となったとき)に停電信号(電圧低下信号)を出力する停電検出手段(電断検出回路48)を備え、
前記メイン制御手段(メイン制御部41)は、信号が入力されることにより外部割込(割込2)を発生させる割込入力端子トリガー端子CLK/TRG)と、通常入力端子(信号入力端子DATA)と、を有するマイクロコンピュータにて構成されており、
前記停電検出手段は、前記停電信号を前記マイクロコンピュータの前記割込入力端子に出力し、
前記メイン制御手段は、
前記メインデータ記憶手段(RAM41c)における前記未使用領域及び/または前記未使用スタック領域を含む全ての記憶領域のデータを所定の演算方法(排他的論理和演算)にて計算するデータ演算手段(CPU41aによるRAMパリティの計算)と、
前記外部割込の発生に応じて、前記データ演算手段による計算結果を特定の値(0)とするための調整用データ(パリティ調整用データ)を算出し、該算出した調整用データを前記メインデータ記憶手段に格納する処理を含む停電時割込処理(電断割込処理)を実行する停電時割込処理実行手段(CPU41a)と、
前記メイン制御手段の起動時に、前記データ演算手段による計算結果が前記特定の値か否かを判定し、該データ演算手段による計算結果が前記特定の値であると判定したことを条件に、前記メインデータ記憶手段に記憶されているデータに基づいて前記メイン制御手段の制御状態を復帰させるメイン制御状態復帰処理(レジスタの復帰)を含むメイン起動処理を実行するメイン起動処理手段(CPU41aによる起動処理)と、
を含む
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
いずれかの入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を、前記複数種類の設定値に共通して記憶する(例えば、チェリー、スイカ)とともに、前記設定値に共通して判定値データが記憶されていない入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記設定値の種類に応じて個別に記憶する(例えば、ベル、レギュラーボーナス(1))判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記設定値設定手段により設定された設定値に対応して前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定し、
前記判定値データ記憶手段は、前記設定値の種類に応じて個別に記憶する判定値データとして異なる判定値の数を示す異数判定値データ(ベルの判定値数の格納アドレス)と、前記設定値の種類に応じて個別に記憶する判定値データとして同一の判定値の数を示す同数判定値データ(レギュラーボーナス(1)の判定値数の格納アドレス)とを、前記入賞の種類に応じて記憶する
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン(スロットマシン1)は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
を更に備え、
前記数値データ入力手段は、前記特定領域に入力されたnビットの数値データのうちの特定のビットのデータ(上位8ビットのデータ)と、該数値データのうちの他のビットのデータ(下位8ビットのデータ)を入れ替えて、該入れ替えを行ったnビットの入替数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン(スロットマシン1)は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
所定のタイミングで第2の数値データを更新する数値更新手段(リフレッシュレジスタ41R)と、
前記所定の抽出条件が成立することにより、前記数値更新手段が更新する第2の数値データを抽出する数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記数値抽出手段が抽出した第2の数値データを用いて所定の演算を行う演算手段(CPU41aによる汎用レジスタ41GRの上位バイトの値へのリフレッシュレジスタ41Rから抽出した加工用の乱数の加算)と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと前記下位jビ
ットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン(スロットマシン1)は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
所定のタイミングで第2の数値データを更新する第1の数値更新手段(リフレッシュレジスタ41R)と、
所定のタイミングで前記第2の数値データとは異なる第3の数値データを更新する第2の数値更新手段(リフレッシュレジスタ41R)と、
予め定められた抽出条件が成立することにより、前記第1の数値更新手段から第2の数値データを抽出する第1の数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
所定の抽出条件が成立することにより、前記第2の数値更新手段から第3の数値データ
を抽出する第2の数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記第1の数値抽出手段が抽出した第2の数値データを用いて所定の演算を行い、下位jビットに対して前記第2の数値抽出手段が抽出した第3の数値データを用いて所定の演算を行う演算手段(CPU41aによる汎用レジスタ41GRの上位バイト及び下位バイトの値へのリフレッシュレジスタ41Rから抽出した加工用の乱数の加算)と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと該演算後の下位jビットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
ことを特徴としている。
本発明の請求項に記載のスロットマシンは、請求項1〜8、手段1〜4のいずれかに記載のスロットマシンであって、
前記スロットマシン(スロットマシン1)で用いられる所定の電力の状態(+25V)を監視し、電力供給が断たれたことに関わる停電条件が成立しているとき(+18V以下となったとき)に停電信号(電圧低下信号)を出力する停電検出手段(電断検出回路48)を備え、
前記メイン制御手段(メイン制御部41)は、信号が入力されることにより外部割込(割込2)を発生させる割込入力端子トリガー端子CLK/TRG)と、通常入力端子(信号入力端子DATA)と、を有するマイクロコンピュータにて構成されており、
前記停電検出手段は、前記停電信号を前記マイクロコンピュータの前記割込入力端子に出力し、
前記メイン制御手段は、前記外部割込の発生に応じて、前記メインデータ記憶手段(RAM41c)における記憶領域に0以外の特定のデータ(破壊診断用データ)を格納した後、該特定のデータを含む前記記憶領域のデータを排他的論理和演算した結果が0となる調整用データ(RAMパリティ調整用データ)を算出し、該算出した調整用データを前記記憶領域に格納する処理を含む停電時割込処理(電断割込処理)を実行する停電時割込処理実行手段(CPU41a)を更に含み、
前記記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)は、前記メイン制御手段の起動時に前記メインデータ記憶手段における記憶領域のデータを排他的論理和演算した結果が0であるか否か、及び前記記憶領域に前記特定のデータが格納されているか否か、を判定し、前記記憶領域のデータを排他的論理和演算した結果が0であると判定し、かつ前記記憶領域に前記特定のデータが格納されていると判定したことを条件に、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致すると判定する
ことを特徴としている。
本発明の手段5に記載のスロットマシンは、請求項に記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、前記記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)により、前記メインデータ記憶手段(RAM41c)の記憶領域のデータを排他的論理和演算した結果が0であると判定され、かつ前記記憶領域に前記特定のデータ(破壊診断用データ)が格納されていると判定された場合に、該記憶領域に格納されている前記特定のデータを該特定のデータ以外のデータ(0)に更新する特定データ更新手段(CPU41による破壊診断用データのクリア)を含む
ことを特徴としている。
本発明の請求項10に記載のスロットマシンは、請求項1〜9、手段1〜5のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記メイン制御手段の起動時に、前記設定操作手段(リセット/設定スイッチ38)による前記設定値の設定操作が有効となる設定操作有効状態(設定変更モード)へ移行させるための移行操作手段(設定キースイッチ37)の操作がなされているか否かを判定する移行操作判定手段(CPU41aによる設定キースイッチ37のON/OFF判定)と、
前記メイン制御手段の起動時において、前記移行操作判定手段により前記移行操作手段の操作がなされていると判定されたことを条件に、前記設定操作有効状態へ移行させる設定操作有効状態移行手段(CPU41aによる設定変更処理への移行)と、
前記メイン制御手段の起動時において、前記記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)によりより前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたとき、または前記移行操作判定手段により前記移行操作手段の操作がなされていると判定され、前記設定操作有効状態に移行するときに、前記メインデータ記憶手段において前記メイン制御手段が使用中のデータが格納されている領域(使用中スタック領域)を除く全ての領域を初期化する初期化手段(CPU41aによるRAM41cの初期化)と、
を含み、
前記移行操作判定手段は、前記メイン制御手段の起動時において、前記記憶データ判定手段が前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かを判定する前に、前記移行操作手段の操作がなされているか否かを判定し、
前記記憶データ判定手段は、前記移行操作判定手段により前記移行操作手段の操作がなされていないと判定されたときに、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するかを判定する
ことを特徴としている。
本発明が適用された実施例のスロットマシンの正面図である。 リールの図柄配列を示す図である。 スロットマシンの構成を示すブロック図である。 電源基板の構成を説明するための回路図である。 (a)は、遊技制御基板におけるメイン制御部まわりの構成を説明するための回路図である。(b)は、演出制御基板におけるサブ制御部まわりの構成を説明するための回路図である。 (a)は、遊技状態別役テーブルを示す図である。(b)は、小役及び再遊技役用の役別テーブルを示す図である。(c)は、特別役用の役別テーブルである。 役別テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。 (a)(b)は、通常遊技状態における内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例をそれぞれ示す図である。 通常遊技状態における内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例をそれぞれ示す図である。 (a)は小役ゲームの、(b)はレギュラーボーナスの、内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例をそれぞれ示す図である。 (a)は乱数発生回路の構成を詳細に示すブロック図である。(b)は乱数発生回路から抽出した乱数をCPUがソフトウェアにより内部抽選用の乱数に加工するまでの説明図である。 メイン制御部のRAMの格納領域の構成を示す図である。 (a)は、メイン制御部のCPUが行う初期化1〜4において初期化される領域を示す図である。(b)は、メイン制御部のROMに格納された初期化テーブルを示す図である。 メイン制御部のCPUが起動時に実行する起動処理の制御内容を示すフローチャートである。 メイン制御部のCPUがエラー発生時に実行するエラー処理の制御内容を示すフローチャートである。 メイン制御部のCPUが起動処理において実行する設定変更処理の制御内容を示すフローチャートである。 メイン制御部のCPUが起動処理後に実行するゲーム処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム制御処理において実行するBET処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム制御処理において実行するBET処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム処理において実行する内部抽選処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム処理において実行する内部抽選処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム処理において実行する内部抽選処理の制御内容を示すフローチャートである。 メイン制御部のCPUが内部抽選処理において実行する乱数取得処理の制御内容を示すフローチャートである。 メイン制御部のCPUが内部抽選処理において実行する設定値判定処理の制御内容を示すフローチャートである。 メイン制御部のCPUが設定値判定処理において実行する設定値判定処理1の制御内容を示すフローチャートである。 メイン制御部のCPUが設定値判定処理において実行する設定値判定処理2の制御内容を示すフローチャートである。 メイン制御部のCPUが設定値判定処理において実行する設定値判定処理3の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム処理において実行する入賞判定処理の制御内容を示すフローチャートである。 メイン制御部のCPUがゲーム処理において実行するゲーム終了時処理の制御内容を示すフローチャートである。 メイン制御部のCPUが起動処理において実行する初期化1の制御内容を示すフローチャートである。 メイン制御部のCPUが初期化1〜4において実行するRAMクリア処理の制御内容を示すフローチャートである。 メイン制御部のCPUがビッグボーナス終了時に実行する初期化2の制御内容を示すフローチャートである。 メイン制御部のCPUが起動処理において実行する初期化3の制御内容を示すフローチャートである。 メイン制御部のCPUが1ゲーム終了毎に実行する初期化4の制御内容を示すフローチャートである。 メイン制御部のCPUが定期的に実行するタイマ割込処理の制御内容を示すフローチャートである。 メイン制御部のCPUが定期的に実行するタイマ割込処理の制御内容を示すフローチャートである。 メイン制御部のCPUが、電断検出回路から電圧低下信号の入力されることによって実行する電断割込処理の制御内容を示すフローチャートである。 (a)は、メイン制御部におけるRAMの格納領域の変形例を示す図である。(b)は、初期化テーブルの変形例を示す図である。 メイン制御部のCPUが実行する初期化1の変形例を示す図である。 役別テーブルの変形例を示す図である。 メイン制御部のCPUがゲーム処理において実行する内部抽選処理の変形例を示すフローチャートである。 乱数発生回路から抽出した乱数をCPUがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第1の変形例の説明図である。 乱数発生回路から抽出した乱数をCPUがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第2の変形例の説明図である。
符号の説明
1 スロットマシン
2L、2C、2R リール
40 遊技制御基板
41 メイン制御部
41a CPU
41b ROM
41c RAM
42 乱数発生回路
43 サンプリング回路
48 電断検出回路
80 演出中継基板
90 演出制御基板
91 サブ制御部
91a CPU
91b ROM
91c RAM

Claims (10)

  1. 1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置の表示結果が導出されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシンであって、
    遊技の制御を行うメイン制御手段を備え、
    前記メイン制御手段は、
    前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段と、
    所定の設定操作手段の操作に基づいて、入賞の発生を許容する旨が決定される割合が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段と、
    前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の複数の異なる記憶領域に設定する設定値設定手段と、
    前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段と、
    前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段と、
    前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段と、
    ゲームの開始操作がなされる毎に、前記メインデータ記憶手段の複数の異なる記憶領域にそれぞれ記憶されている設定値データを読み出し、全ての設定値データが一致する場合に前記読み出した設定値データが適正であると判定し、いずれか1つでも一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段と、
    前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段と、
    前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段と、
    前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段と、
    を含む
    ことを特徴とするスロットマシン。
  2. 1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置の表示結果が導出されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシンであって、
    遊技の制御を行うメイン制御手段を備え、
    前記メイン制御手段は、
    前記メイン制御手段が動作を行うためのデータを読み出し及び書き込み可能に記憶する記憶領域を有するメインデータ記憶手段と、
    所定の設定操作手段の操作に基づいて、入賞の発生を許容する旨が決定される割合が異なる複数種類の設定値のうちから、いずれかの設定値を選択する設定値選択手段と、
    前記設定値設定手段により選択された設定値を示す設定値データを前記メインデータ記憶手段の第1の記憶領域に設定する設定値設定手段と、
    前記第1の記憶領域とは異なる前記メインデータ記憶手段の第2の記憶領域に、入賞の発生を許容するか否かを決定する際に前記第1の記憶領域から読み出した設定値データを履歴として設定する履歴設定値設定手段と、
    前記スロットマシンへの電源供給が遮断しても前記メインデータ記憶手段に記憶されている前記メイン制御手段が動作を行うためのデータを保持する保持手段と、
    前記スロットマシンへの電源投入時に、前記メイン制御手段が動作を行うためのデータのうちの前記設定値データが適正か否かの判定を個別に行わず、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かの判定を行う記憶データ判定手段と、
    前記記憶データ判定手段により前記保持手段により保持されている前記遊技制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたときに、ゲームの進行を不能化する第1の不能化手段と、
    ゲームの開始操作がなされる毎に、前記第1の記憶領域に記憶されている設定値データ及び前記第2の記憶領域に記憶されている設定値データを読み出し、双方が一致する場合に前記読み出した設定値データが適正であると判定し、一致しない場合に前記読み出した設定値データが適正ではないと判定する設定値データ判定手段と、
    前記設定値データ判定手段により前記読み出した設定値データが適正であると判定したときに、該読み出した設定値データが示す設定値に応じた割合で当該ゲームにおいて入賞の発生を許容するか否かを決定する事前決定手段と、
    前記設定値判定手段により前記読み出した設定値データが適正ではないと判定されたときに、ゲームの進行を不能化する第2の不能化手段と、
    前記第1の不能化手段により前記ゲームの進行が不能化された状態においても前記第2の不能化手段により前記ゲームの進行が不能化された状態においても、前記設定操作手段の操作に基づいて前記設定値設定手段により前記設定値が新たに設定されたことを条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段と、
    を含む
    ことを特徴とするスロットマシン。
  3. 前記メインデータ記憶手段の記憶領域には、前記メイン制御手段が動作を行うためのデータが記憶されるワーク領域と、前記メイン制御手段が動作を行うためのデータの読み出し及び書き込みが行われることのない未使用領域と、が割り当てられており、
    前記メイン制御手段は、前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段を含み、
    該初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用領域を1ゲーム毎に初期化する
    ことを特徴とする請求項1または2に記載のスロットマシン。
  4. 前記メインデータ記憶手段の記憶領域には、前記メイン制御手段が動作を行うためのデータが記憶されるワーク領域と、データを一時的に格納することが可能なスタック領域と、が割り当てられており、
    前記メイン制御手段は、
    前記メイン制御手段が使用中のデータを前記スタック領域に退避するデータ退避手段と、
    前記退避手段により前記スタック領域に退避したデータを前記メイン制御手段が使用するデータとして復帰させるデータ復帰手段と、
    前記スタック領域のうち前記データ退避手段により退避したデータが記憶されていない未使用スタック領域を特定する未使用スタック領域特定手段と、
    前記メインデータ記憶手段における記憶領域の少なくとも一部を初期化する初期化手段と、
    を含み、
    前記初期化手段は、前記メインデータ記憶手段の記憶領域における前記未使用スタック領域特定手段により特定される未使用スタック領域を1ゲーム毎に初期化する
    ことを特徴とする請求項1〜のいずれかに記載のスロットマシン。
  5. 前記メイン制御手段は、
    前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
    いずれかの入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記複数種類の設定値に共通して記憶するとともに、前記設定値に共通して判定値データが記憶されていない入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記設定値の種類に応じて個別に記憶する判定値データ記憶手段と、
    を含み、
    前記事前決定手段は、前記設定値設定手段により設定された設定値に対応して前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定し、
    前記判定値データ記憶手段は、前記設定値の種類に応じて個別に記憶する判定値データとして異なる判定値の数を示す異数判定値データと、前記設定値の種類に応じて個別に記憶する判定値データとして同一の判定値の数を示す同数判定値データとを、前記入賞の種類に応じて記憶する
    ことを特徴とする請求項1〜のいずれかに記載のスロットマシン。
  6. 前記メイン制御手段は、
    前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
    前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
    を含み、
    前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
    前記スロットマシンは、
    所定周波数のパルス信号を発生するパルス発生回路と、
    nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
    遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
    前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの数値データとして入力する入力手段と、
    を更に備え、
    前記数値データ入力手段は、前記特定領域に入力されたnビットの数値データのうちの特定のビットのデータと、該数値データのうちの他のビットのデータを入れ替えて、該入れ替えを行ったnビットの入替数値データを、前記判定用数値データとして前記判定領域に入力する
    ことを特徴とする請求項1〜のいずれかに記載のスロットマシン。
  7. 前記メイン制御手段は、
    前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
    前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
    を含み、
    前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
    前記スロットマシンは、
    所定周波数のパルス信号を発生するパルス発生回路と、
    nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
    遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
    前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段と、
    所定のタイミングで第2の数値データを更新する数値更新手段と、
    前記所定の抽出条件が成立することにより、前記数値更新手段が更新する第2の数値データを抽出する数値抽出手段と、
    上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記数値抽出手段が抽出した第2の数値データを用いて所定の演算を行う演算手段と、
    を更に備え、
    前記数値データ入力手段は、前記演算手段による演算後の上位kビットと前記下位jビ
    ットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
    ことを特徴とする請求項1〜のいずれかに記載のスロットマシン。
  8. 前記メイン制御手段は、
    前記事前決定手段により決定を行う前に、所定のタイミングで所定の範囲内において更新される数値データを、ゲーム毎に判定用数値データとして判定領域に入力する数値データ入力手段と、
    前記入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを記憶する判定値データ記憶手段と、
    を含み、
    前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
    前記スロットマシンは、
    所定周波数のパルス信号を発生するパルス発生回路と、
    nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路と、
    遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号を出力するラッチ回路と、
    前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をnビットの第1の数値データとして入力する入力手段と、
    所定のタイミングで第2の数値データを更新する第1の数値更新手段と、
    所定のタイミングで前記第2の数値データとは異なる第3の数値データを更新する第2の数値更新手段と、
    予め定められた抽出条件が成立することにより、前記第1の数値更新手段から第2の数値データを抽出する第1の数値抽出手段と、
    所定の抽出条件が成立することにより、前記第2の数値更新手段から第3の数値データ
    を抽出する第2の数値抽出手段と、
    上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記第1の数値抽出手段が抽出した第2の数値データを用いて所定の演算を行い、下位jビットに対して前記第2の数値抽出手段が抽出した第3の数値データを用いて所定の演算を行う演算手段と、
    を更に備え、
    前記数値データ入力手段は、前記演算手段による演算後の上位kビットと該演算後の下位jビットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する
    ことを特徴とする請求項1〜のいずれかに記載のスロットマシン。
  9. 前記スロットマシンで用いられる所定の電力の状態を監視し、電力供給が断たれたことに関わる停電条件が成立しているときに停電信号を出力する停電検出手段を備え、
    前記メイン制御手段は、信号が入力されることにより外部割込を発生させる割込入力端子と、通常入力端子と、を有するマイクロコンピュータにて構成されており、
    前記停電検出手段は、前記停電信号を前記マイクロコンピュータの前記割込入力端子に出力し、
    前記メイン制御手段は、前記外部割込の発生に応じて、前記メインデータ記憶手段における記憶領域に0以外の特定のデータを格納した後、該特定のデータを含む前記記憶領域のデータを排他的論理和演算した結果が0となる調整用データを算出し、該算出した調整用データを前記記憶領域に格納する処理を含む停電時割込処理を実行する停電時割込処理実行手段を更に含み、
    前記記憶データ判定手段は、前記メイン制御手段の起動時に前記メインデータ記憶手段における記憶領域のデータを排他的論理和演算した結果が0であるか否か、及び前記記憶領域に前記特定のデータが格納されているか否か、を判定し、前記記憶領域のデータを排他的論理和演算した結果が0であると判定し、かつ前記記憶領域に前記特定のデータが格納されていると判定したことを条件に、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致すると判定する
    ことを特徴とする請求項1〜8のいずれかに記載のスロットマシン。
  10. 前記メイン制御手段は、
    前記メイン制御手段の起動時に、前記設定操作手段による前記設定値の設定操作が有効となる設定操作有効状態へ移行させるための移行操作手段の操作がなされているか否かを判定する移行操作判定手段と、
    前記メイン制御手段の起動時において、前記移行操作判定手段により前記移行操作手段の操作がなされていると判定されたことを条件に、前記設定操作有効状態へ移行させる設定操作有効状態移行手段と、
    前記メイン制御手段の起動時において、前記記憶データ判定手段により前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致しないと判定されたとき、または前記移行操作判定手段により前記移行操作手段の操作がなされていると判定され、前記設定操作有効状態に移行するときに、前記メインデータ記憶手段において前記メイン制御手段が使用中のデータが格納されている領域を除く全ての領域を初期化する初期化手段と、
    を含み、
    前記移行操作判定手段は、前記メイン制御手段の起動時において、前記記憶データ判定手段が前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かを判定する前に、前記移行操作手段の操作がなされているか否かを判定し、
    前記記憶データ判定手段は、前記移行操作判定手段により前記移行操作手段の操作がなされていないと判定されたときに、前記保持手段により保持されている前記メイン制御手段が動作を行うためのデータが電源遮断前のデータと一致するか否かを判定する
    ことを特徴とする請求項1〜9のいずれかに記載のスロットマシン。
JP2005168020A 2005-06-08 2005-06-08 スロットマシン Expired - Fee Related JP4408096B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005168020A JP4408096B2 (ja) 2005-06-08 2005-06-08 スロットマシン

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005168020A JP4408096B2 (ja) 2005-06-08 2005-06-08 スロットマシン

Publications (2)

Publication Number Publication Date
JP2006340832A JP2006340832A (ja) 2006-12-21
JP4408096B2 true JP4408096B2 (ja) 2010-02-03

Family

ID=37638248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005168020A Expired - Fee Related JP4408096B2 (ja) 2005-06-08 2005-06-08 スロットマシン

Country Status (1)

Country Link
JP (1) JP4408096B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007054252A (ja) * 2005-08-24 2007-03-08 Sankyo Kk スロットマシン

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4859397B2 (ja) * 2005-06-17 2012-01-25 株式会社三共 弾球遊技機
JP5008446B2 (ja) * 2007-04-19 2012-08-22 株式会社三共 スロットマシン
JP4950746B2 (ja) * 2007-04-19 2012-06-13 株式会社三共 スロットマシン
JP5059474B2 (ja) * 2007-04-19 2012-10-24 株式会社三共 スロットマシン
JP5220169B2 (ja) * 2011-07-25 2013-06-26 株式会社三共 弾球遊技機
JP6061453B2 (ja) * 2011-08-23 2017-01-18 株式会社三共 遊技機
JP6061454B2 (ja) * 2011-08-23 2017-01-18 株式会社三共 遊技機
JP5159966B2 (ja) * 2012-03-06 2013-03-13 株式会社三共 スロットマシン
JP5571160B2 (ja) * 2012-12-10 2014-08-13 株式会社三共 スロットマシン
JP6061962B2 (ja) * 2015-01-23 2017-01-18 株式会社三共 遊技機
JP6061961B2 (ja) * 2015-01-23 2017-01-18 株式会社三共 遊技機
JP2017140083A (ja) * 2016-02-08 2017-08-17 サミー株式会社 遊技機
JP6392260B2 (ja) * 2016-02-08 2018-09-19 サミー株式会社 遊技機
JP2017140081A (ja) * 2016-02-08 2017-08-17 サミー株式会社 遊技機
JP6160721B1 (ja) * 2016-02-08 2017-07-12 サミー株式会社 遊技機
JP2017051677A (ja) * 2016-12-13 2017-03-16 株式会社三共 スロットマシン
JP2022009916A (ja) * 2017-10-13 2022-01-14 株式会社三洋物産 遊技機
JP2022019951A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2022019953A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2022024173A (ja) * 2017-10-13 2022-02-08 株式会社三洋物産 遊技機
JP2022019948A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2022019947A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2022019949A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2019072119A (ja) * 2017-10-13 2019-05-16 株式会社三洋物産 遊技機
JP2022019952A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP2022009915A (ja) * 2017-10-13 2022-01-14 株式会社三洋物産 遊技機
JP2022019950A (ja) * 2017-10-13 2022-01-27 株式会社三洋物産 遊技機
JP6624210B2 (ja) * 2018-01-12 2019-12-25 サミー株式会社 遊技機
JP2019136420A (ja) * 2018-02-15 2019-08-22 株式会社三洋物産 遊技機
JP2019136422A (ja) * 2018-02-15 2019-08-22 株式会社三洋物産 遊技機
JP2019136421A (ja) * 2018-02-15 2019-08-22 株式会社三洋物産 遊技機
JP2019170818A (ja) * 2018-03-29 2019-10-10 株式会社三洋物産 遊技機
JP2022019946A (ja) * 2020-05-07 2022-01-27 株式会社三洋物産 遊技機
JP2022016570A (ja) * 2020-11-05 2022-01-21 株式会社三洋物産 遊技機

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007054252A (ja) * 2005-08-24 2007-03-08 Sankyo Kk スロットマシン
JP4634892B2 (ja) * 2005-08-24 2011-02-16 株式会社三共 スロットマシン

Also Published As

Publication number Publication date
JP2006340832A (ja) 2006-12-21

Similar Documents

Publication Publication Date Title
JP4408096B2 (ja) スロットマシン
JP4724457B2 (ja) スロットマシン
JP4724456B2 (ja) スロットマシン
JP5065578B2 (ja) スロットマシン
JP5065579B2 (ja) スロットマシン
JP4206385B2 (ja) スロットマシン
JP4498969B2 (ja) スロットマシン
JP4758671B2 (ja) スロットマシン
JP4047865B2 (ja) スロットマシン
JP4792238B2 (ja) スロットマシン
JP4237149B2 (ja) スロットマシン
JP4206386B2 (ja) スロットマシン
JP4063828B2 (ja) スロットマシン
JP5019718B2 (ja) スロットマシン
JP2007117302A (ja) スロットマシン
JP4554423B2 (ja) スロットマシン
JP4217224B2 (ja) スロットマシン
JP4206387B2 (ja) スロットマシン
JP5071833B2 (ja) スロットマシン
JP4554422B2 (ja) スロットマシン
JP4964290B2 (ja) スロットマシン
JP4554421B2 (ja) スロットマシン
JP5320429B2 (ja) スロットマシン
JP4523018B2 (ja) スロットマシン
JP2007111390A (ja) スロットマシン

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091105

R150 Certificate of patent or registration of utility model

Ref document number: 4408096

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees