JP2011182839A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2011182839A
JP2011182839A JP2010048429A JP2010048429A JP2011182839A JP 2011182839 A JP2011182839 A JP 2011182839A JP 2010048429 A JP2010048429 A JP 2010048429A JP 2010048429 A JP2010048429 A JP 2010048429A JP 2011182839 A JP2011182839 A JP 2011182839A
Authority
JP
Japan
Prior art keywords
state
numerical data
random number
game
value
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.)
Granted
Application number
JP2010048429A
Other languages
English (en)
Other versions
JP5618050B2 (ja
Inventor
Toshio Ogura
敏男 小倉
Masayuki Nakanishi
正幸 中西
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 JP2010048429A priority Critical patent/JP5618050B2/ja
Publication of JP2011182839A publication Critical patent/JP2011182839A/ja
Application granted granted Critical
Publication of JP5618050B2 publication Critical patent/JP5618050B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】不正行為によって設定変更状態に制御されることを防止しつつ、正規に設定変更状態に制御された場合には当該設定変更状態において確実に設定変更を行なうことができる遊技機を提供することである。
【解決手段】前面扉が開放状態であるときに操作可能となる電源スイッチや設定キースイッチを用いて設定変更操作が行なわれた操作状態となったときに、前面扉の開閉状態を判定し(Sa27b)、前面扉が開放状態であると判定されたとき(Sa27bでYES)に設定変更状態に制御し、その後においては前面扉の開閉状態に関わらず予め定められた設定終了条件が成立するまで当該設定変更状態を維持するのに対し、前面扉が閉鎖状態であると判定されたときに設定変更状態に制御しない(Sa27bでNO)。
【選択図】図23

Description

本発明は、たとえば、パチンコ機およびスロットマシンなどの遊技機に関する。詳しくは、遊技者に対する有利度を変更可能な遊技機に関する。
従来から、このような遊技機の一例として、可変表示装置を含む各種装置やこれらの装置を制御するための制御回路が本体内部に組み込まれ、該本体の前面が前面扉により開閉自在とされており、当該前面扉を開放させて本体内部に組み込まれた特定の操作手段を操作することにより、設定変更状態に制御させ、当該設定変更状態において複数種類の設定値のうちからいずれかの設定値を選択して設定することができるものがあった。設定値は、入賞(大当り、中当り、小当り、ボーナス、小役、再遊技役など)の発生を許容する確率(当選確率)を定めるものである。このため、前面扉を開放させるための鍵は、遊技場の特定の店員しか保持所有しておらず、設定変更は、実質的に、遊技場の特定の店員(遊技場管理者)しか行なうことができないように構成されている。
一方、遊技者の有利度は、設定されている設定値によって左右される。その結果、遊技者により設定変更状態に制御させて設定変更するといった不正行為が行なわれていた。たとえば、前面扉に穴を開けたり前面扉と本体との隙間から工具を挿入して、特定の操作手段を操作したり本体内部に組み込まれた回路を短絡させるなどして、特定の操作手段が操作されたときと同じ操作状態にすることにより、不正に設定変更する行為が発生していた。
このような不正行為を防止する遊技機として、閉状態にある前面扉を検出可能な扉検出センサを設けて、設定変更状態において前面扉が閉状態であるときに、設定変更するための設定変更信号を無効にするもの(たとえば、特許文献1参照)や、異常を報知する(たとえば、特許文献2参照)があった。
特開2004−135844号公報 特開2006−61510号公報
しかしながら、特許文献1および2に記載の遊技機にあっては、前面扉が閉状態であっても、設定変更状態に制御され得る。このため、前面扉が閉状態であっても、不正に設定変更が行なわれる虞があった。たとえば、特許文献1に記載の遊技機においては設定変更信号を無効にさせないような行為により、また、特許文献2に記載の遊技機においては異常報知されるものの設定変更を継続させるような行為により、いずれにしても、前面扉が閉状態であるにも関わらず、不正に設定変更が行なわれてしまう虞があった。
また、遊技場管理者により、正規に設定変更状態に制御されて設定変更が行なわれている場合であっても、たとえば遊技場管理者の手が扉検出センサに触れるなどして、前面扉が閉状態であると判定されたときには、その後設定変更を行なうことができなくなり、新たに設定変更状態に制御し直す手間を生じさせる虞があった。
この発明は、かかる実情に鑑み考え出されたものであり、その目的は、不正行為によって設定変更状態に制御されることを防止しつつ、正規に設定変更状態に制御された場合には当該設定変更状態において確実に設定変更を行なうことができる遊技機を提供することである。
課題を解決するための手段の具体例およびその効果
(1) 遊技者に対する有利度(たとえば設定値)を変更可能な遊技機(スロットマシン、パチンコ機など)であって、
開閉可能に設けられた開閉体(前面扉1b、本体枠914)と、
前記開閉体が開放状態であるときに操作可能となる操作手段(電源スイッチ39、設定キースイッチ37)と、
前記開閉体の開閉状態を検出する開閉状態検出手段(ドア開放検出スイッチ25、本体枠開放検出スイッチ925)と、
前記操作手段の操作状態が特定操作状態(電源スイッチ39がOFFからONとなったとき(電源投入時)に設定キースイッチ37がONを特定するための検出信号が出力されている操作状態)となったときの前記開閉体の開閉状態を、前記開閉状態検出手段の検出結果に基づいて判定する特定時判定手段(Sa27b)と、
前記特定時判定手段により前記開閉体が開放状態であると判定されたときに、複数種類の設定値のうちからいずれかの設定値を選択することで前記有利度を変更可能な設定変更状態に制御し(Sa28に移行)、前記開閉体が開放状態でないと判定されたときには、前記設定変更状態に制御しない(Sa27cに移行)状態制御手段(Sa27b、Sa27c、Sa28、Sa29、図28など)とを備え、
前記状態制御手段は、前記設定変更状態に制御した後においては、当該設定変更状態における前記開閉状態検出手段の検出結果に関わらず、所定の設定終了条件が成立(図28のSc11においてYES)するまで当該設定変更状態を維持する(図28参照)。
このような構成によれば、操作手段の操作状態が特定操作状態となったときの開閉体の開閉状態を判定し、開閉体が開放状態でないと判定されたときには、設定変更状態に制御されることがない。すなわち、本来であれば開閉体が開放状態でなければ、操作手段を操作できず特定操作状態にも成り得ないところ、特定操作状態となったときに開閉体が開放状態となっておらず不正行為が行なわれた可能性があるときには、設定変更状態に制御されることがない。これにより、不正行為によって設定変更状態に制御されて、設定変更が行なわれることを確実に防止することができる。
また、開閉体が開放状態であるときにおいて操作手段の操作状態が特定操作状態となったときには、設定変更状態に制御し、その後設定終了条件が成立するまで当該設定変更状態が維持される。このため、不正行為ではなく正規に操作が行なわれて設定変更状態に制御された後においては、設定変更途中において仮に遊技場管理者の手が開閉状態検出手段に触れるなどして、開閉体が開放状態でないと判定されたとしても、当該設定変更状態を維持させて、確実に設定変更を行なうことができる。
なお、遊技機は、遊技者に対する有利度を変更可能な遊技機であればよく、1ゲームに対して賭数を設定することにより可変表示装置における表示状態を変化させ得る遊技が開始可能となるスロットマシン(実施の形態参照)、所定の遊技領域(遊技盤)に打ち込まれた遊技媒体(たとえばパチンコ球)が所定の始動領域(始動口)を通過することにより可変表示装置における表示状態を変化させ得るパチンコ機(変形例(5)(6)参照)などであってもよい。
また、設定値とは、遊技者に対する有利度を定めた値であればよく、特定表示結果(ボーナス、小役、再遊技役、大当り、中当り、小当りなど)の導出を許容するか否かを決定する事前決定手段により特定表示結果の導出を許容する旨が決定される確率を定めた値であってもよいし、遊技者にとって有利な情報が報知される確率、遊技者にとって有利な情報が報知される報知状態に移行する確率などを定めた値であってもよい。また、遊技者にとって有利な有利状態(ボーナス、アシストタイム(AT)、リプレイタイム(RT)、大当り、確率変動状態など)に制御され得る確率が定められているものであってもよい(変形例(10)参照)。
また、特定時判定手段は、操作手段の操作状態が特定操作状態となったときに開閉体の開放状態を判定するものであってもよく、開閉体が閉状態となっているときに操作手段の操作状態が特定操作状態となったか否かを判定するものであってもよい。
操作手段は、一の操作を検出する一の操作手段であってもよく、第1の操作を検出する操作手段と当該第1の操作とは別の第2の操作を検出する操作手段とを含む複数種類の操作手段であってもよい。また、操作手段の操作状態とは、操作手段の操作部の状態(設定キースイッチがONである状態など)であってもよく、また操作手段から出力される信号の状態(設定キースイッチがONであるときに出力される信号の状態など)であってもよい。
開閉可能に設けられた前面扉(前面扉1b)を備えており、当該前面扉を開放状態とすることにより操作手段が操作可能となる場合は、当該前面扉が前記開閉体であるといえる(スロットマシン参照)。これに対し、外枠に対して回動自在に設けられた遊技機本体を備えており、当該遊技機本体を回動させて開放状態とすることにより操作手段が操作可能となる場合は、当該遊技機本体が前記開閉体であるといえる(パチンコ機参照)。すなわち、開閉体は、開放状態とすることにより操作手段を操作可能とならしめる部材であればよい。
(2) 前記操作手段は、一方側(図2において、筐体1aの左の側面)に設けられ、
前記開閉状態検出手段は、前記操作手段と異なる側(図2において、筐体1aの右の側面)に設けられている(図2参照)。
このような構成によれば、操作手段と開閉状態検出手段とが、各々、異なる側に設けられているため、不正行為を操作手段と開閉状態検出手段との双方に対して行なうことの困難性を高めることができる。
(3) 前記操作手段と異なり、遊技者により操作可能な遊技操作手段(1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10)と、
前記状態制御手段を含む手段であって、前記遊技操作手段の操作に応じて遊技の進行制御を行なうとともに、該遊技の進行制御に基づく制御情報(コマンド)を送信する遊技制御手段(メイン制御部41)と、
前記遊技制御手段から受信した制御情報に基づいて演出の制御を行なう演出制御手段(サブ制御部91)と、を備え、
前記遊技制御手段は、
前記設定変更状態が開始したときに設定変更開始制御情報(設定開始コマンド)を前記演出制御手段に対して送信する設定変更開始制御情報送信手段と、
前記遊技操作手段のうちの特定の遊技操作手段(ストップスイッチ8L、8C、8R)が遊技の進行制御に関与する関与制御状態(リール回転処理)に制御する関与制御手段と、
前記関与制御状態以外の制御状態において、前記特定の遊技操作手段の操作状態を示す操作制御情報(操作検出コマンド)を前記演出制御手段に対して送信する操作制御情報送信手段と、
前記特定の遊技操作手段の操作に関与することなく、前記状態制御手段により制御される前記設定変更状態において有利度を変更するための変更制御を行なう有利度変更制御手段(設定変更処理など)と、を含み、
前記操作制御情報送信手段は、前記設定変更状態においても前記操作制御情報を前記演出制御手段に対して送信し、
前記演出制御手段は、
前記遊技制御手段から受信した前記操作制御情報(設定開始コマンド)に基づいて操作演出を実行する操作演出実行手段と、
前記設定変更開始制御情報を受信したことに基づいて、前記演出制御手段が管理する管理情報にアクセス可能な管理者用状態(管理者モード)に制御する管理者用状態制御手段と、
前記管理者用状態において前記遊技制御手段から受信した前記操作制御情報に基づいて管理者用制御(管理情報の閲覧、管理情報の変更)を行なう管理者用制御手段と、を含む。
このような構成によれば、特定の遊技操作手段が遊技の進行制御に関与する関与制御状態以外の制御状態において、特定の遊技操作手段の操作状態を示す操作制御情報が演出制御手段に対して送信されるため、演出制御手段が遊技の進行制御に関与しない特定の遊技操作手段が操作されたことに基づいて演出を実行できる。また、演出制御手段は、遊技制御手段から設定変更状態が開始した旨を示す設定変更開始制御情報を受信したときに管理者用状態に制御するとともに、設定変更状態においても遊技制御手段から操作制御情報が送信されるようになっており、設定変更状態と同期する管理者用状態において受信した操作制御情報に基づいて演出制御手段が管理する管理情報にアクセス可能となる。このため、演出制御手段側に管理情報にアクセスするための遊技操作手段を備えることなく、本来であれば遊技制御手段による遊技の進行制御に用いられる特定の遊技操作手段を活用して管理情報のアクセス操作を行なうことができる。
なお、特定の遊技操作手段の操作状態を示す操作制御情報とは、特定の遊技操作手段が操作されている状態であること、特定の遊技操作手段が操作されていない状態であること、特定の遊技操作手段が操作されていない状態から操作されている状態に変化したこと、特定の遊技操作手段が操作されている状態から操作されていない状態に変化したこと、の少なくともいずれか1つが判定できる情報であればよい。
また、管理情報とは、遊技機が設置される遊技場の係員など遊技機の管理者のみがアクセス可能な情報であり、たとえば、管理者のみが閲覧可能なドア開放履歴などのセキュリティ情報や、履歴情報や遊技説明などの情報などを遊技者が閲覧可能とするか否かの設定情報などが該当する。
また、管理者用状態制御手段は、設定変更開始制御情報を受信したことに基づいて即座に管理者用状態に制御するようにしてもよいし、設定変更開始制御情報を受信した後にさらに予め定められた遊技操作手段が操作されたことなどの追加的な条件を満たした場合に管理者用状態に制御するようにしてもよい。
(4) 表示状態を変化させることが可能な可変表示装置(リール2L、2C、2R)と、
前記可変表示装置の表示結果として特定表示結果(ボーナス)が導出されたことに基づいて、遊技者にとって有利な状態(ボーナス)に制御する有利制御手段と、
数値データを更新する数値更新手段(乱数列変更回路555)と、
前記可変表示装置において表示状態を変化させた後に表示結果を導出させる可変表示を行なうための可変表示条件が成立したとき(スタートスイッチ7が操作されてとき、有効な始動入賞が発生したとき)に、前記数値更新手段によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域(乱数値レジスタR1D)に格納する乱数抽出手段(乱数ラッチセレクタ558A)と、
前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段により新たな数値データが格納されることがなく、該第1の数値データ格納領域に格納されている数値データを保持する数値データ保持手段(新たな数値データのラッチの禁止)と、
一定時間(約2.24ms)毎に、前記第1の数値データ格納領域に数値データが格納されているか否か(乱数ラッチフラグが設定されているか否か)を判定する数値データ格納判定手段と、
前記数値データ格納判定手段が前記第1の数値データ格納領域に数値データが格納されている(乱数ラッチフラグが設定されている)と判定したときに、前記第1の数値データ格納領域に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域とは異なる第2の数値データ格納領域(乱数値格納ワーク)に格納する数値データ読出手段と、
前記可変表示装置において表示状態の変化を開始させるときに、選択されている設定値から特定される確率にしたがって、前記第2の数値データ格納領域に格納された数値データを用いて前記特定表示結果の導出を許容するか否かを決定する事前決定手段(内部抽選)と、を備える。
このような構成によれば、可変表示条件の成立により抽出された数値データが第1の数値データ格納領域に格納された後、該格納された数値データが読み出されて第2の数値データ格納領域に格納されるまでは、第1の数値データ格納領域に格納されている数値データが保持され、新たな数値データによって上書きされてしまうことがないので、静電気などにより信号線にノイズがのっても数値データが変わってしまうことがない。
また、一定時間毎に、第1の数値データ格納領域に数値データが格納されているか否か判定され、第1の数値データ格納領域に数値データが格納されている場合には、第1の数値データ格納領域に格納されている数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、数値データが保持されても、その状態が一定時間を超えて継続することがなく、新たな数値データを格納可能な状態となる。このため、可変表示条件が成立したタイミングで抽出した数値データを取得することが可能となる。
また、数値データ格納判定手段が第1の数値データ格納領域に新たな数値データが格納されていると判定し、第1の数値データ格納領域から数値データが読み出される毎に、第2の数値データ格納領域の数値データが第1の数値データ格納領域から読み出された数値データ、すなわち新たに抽出された数値データに更新されるとともに、事前決定手段は、第1の数値データ格納領域に格納されている数値データではなく、第2の数値データ格納領域に格納された数値データを用いるので、第1の数値データ格納領域から数値データが読み出された後に、信号線にノイズがのって数値データが変わってしまっても事前決定手段が用いる第2の数値データ格納領域の数値データに影響することがなく、このような場合であっても、可変表示条件が成立したタイミングで抽出した数値データを用いて特定表示結果の導出を許容するか否かの決定を行なうことができる。
なお、前記事前決定手段による前記特定表示結果の導出を許容するか否かの決定に用いる数値データは、前記第2の数値データ格納領域に格納された数値データであればよく、当該決定を行なう際に前記第2の数値データ格納領域に格納されている数値データであってもよく(スロットマシン)、あるいは、当該決定を行なうまでに前記第2の数値データ格納領域に格納された数値データを読み出して当該第2の数値データ格納領域とは異なる第3の数値データ格納領域(たとえば、始動入賞に対応して抽出した乱数を保留記憶するためのいわゆる保留記憶領域)に格納する決定前数値データ読出手段を備える場合には、当該決定を行なう際に当該第3の数値データ格納領域に格納されている数値データであってもよい(パチンコ機)。
(5) 表示状態を変化させることが可能な可変表示装置(リール2L、2C、2R)と、
前記可変表示装置の表示結果として特定表示結果(ボーナス)が導出されたことに基づいて、遊技者にとって有利な状態(ボーナス)に制御する有利制御手段と、
数値データを更新する数値更新手段(乱数列変更回路555)と、
前記可変表示装置において表示状態を変化させた後に表示結果を導出させる可変表示を行なうための可変表示条件が成立したとき(スタートスイッチ7が操作されてとき、有効な始動入賞が発生したとき)に、前記数値更新手段によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域(乱数値レジスタR1D)に格納する乱数抽出手段(乱数ラッチセレクタ558A)と、
前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段により新たな数値データが格納されることがなく、該第1の数値データ格納領域に格納されている数値データを保持する数値データ保持手段(新たな数値データのラッチの禁止)と、
前記第1の数値データ格納領域に数値データが格納されたときに割込(乱数ラッチ割込)を発生させる割込発生手段と、
前記割込発生手段が前記割込を発生させたことに応じて、前記第1の数値データ格納領域に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域とは異なる第2の数値データ格納領域(乱数値格納ワーク)に格納する数値データ読出手段と、
前記可変表示装置において表示状態の変化を開始させるときに、選択されている設定値から特定される確率にしたがって、前記第2の数値データ格納領域に格納された数値データを用いて前記特定表示結果の導出を許容するか否かを決定する事前決定手段(内部抽選)と、を備える。
このような構成によれば、可変表示条件の成立により抽出された数値データが第1の数値データ格納領域に格納された後、該格納された数値データが読み出されて第2の数値データ格納領域に格納されるまでは、第1の数値データ格納領域に格納されている数値データが保持され、新たな数値データによって上書きされてしまうことがないので、静電気などにより信号線にノイズがのっても数値データが変わってしまうことがない。
また、数値データ格納領域に数値データが格納されると割込が発生し、割込に応じて数値データ格納領域に格納されている数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、割込の発生に応じて直ちに数値データが読み出され、新たな数値データを格納可能な状態となる。このため、可変表示条件が成立したタイミングで抽出した数値データを取得することが可能となる。
また、第1の数値データ格納領域に新たな数値データが格納されて割込が発生し、第1の数値データ格納領域から数値データが読み出される毎に、第2の数値データ格納領域の数値データが第1の数値データ格納領域から読み出された数値データ、すなわち新たに抽出された数値データに更新されるとともに、事前決定手段は、第1の数値データ格納領域に格納されている数値データではなく、第2の数値データ格納領域に格納された数値データを用いるので、第1の数値データ格納領域から数値データが読み出された後に、信号線にノイズがのって数値データが変わってしまっても事前決定手段が用いる第2の数値データ格納領域の数値データに影響することがなく、このような場合であっても、可変表示条件が成立したタイミングで抽出した数値データを用いて特定表示結果の導出を許容するか否かの決定を行なうことができる。
また、数値データ保持手段は、前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまで、前記乱数抽出手段による数値データの新たな抽出を禁止することにより、第1の数値データ格納領域に格納されている数値データを保持するようにしてもよいし、前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまで、前記乱数抽出手段により数値データの抽出が行なわれても第1の数値データ格納領域への格納を禁止することにより、第1の数値データ格納領域に格納されている数値データを保持するようにしてもよい。
なお、前記事前決定手段による前記特定表示結果の導出を許容するか否かの決定に用いる数値データは、前記第2の数値データ格納領域に格納された数値データであればよく、当該決定を行なう際に前記第2の数値データ格納領域に格納されている数値データであってもよく(スロットマシン)、あるいは、当該決定を行なうまでに前記第2の数値データ格納領域に格納された数値データを読み出して当該第2の数値データ格納領域とは異なる第3の数値データ格納領域(たとえば、始動入賞に対応して抽出した乱数を保留記憶するためのいわゆる保留記憶領域)に格納する決定前数値データ読出手段を備える場合には、当該決定を行なう際に当該第3の数値データ格納領域に格納されている数値データであってもよい(パチンコ機)。
(6) 遊技の進行制御が開始されるとき(電源投入時、電圧低下時など)に、前記数値データ保持手段による数値データの保持を解除する保持解除手段(Sa206、Sm9〜Sm12)を備える。
このような構成によれば、遊技の進行制御が開始されるときには、数値データ保持手段による数値データの保持が解除されるようになっており、数値データが読み出され、新たな数値データを格納可能な状態となる。このため、遊技の進行制御が開始されるときなどの電源電圧が不安定な状態で誤って格納された数値データを乱数値として取得してしまうことを防止できる。
なお、保持解除手段は、電源が投入されたときに、前記数値データ保持手段による数値データの保持を解除するものであってもよい。これにより、たとえば電源投入時などの電源電圧が不安定な状態で誤って格納された数値データを乱数値として取得してしまうことを防止できる。
また、遊技機への電力供給に基づいて生成された所定電源電圧を監視し、該所定電源電圧が低下したことに基づいて検出信号を出力する電源監視手段と、
前記電源監視手段から前記検出信号が出力された後において、前記検出信号の入力状態を繰り返し判定する検出判定手段と、
前記検出判定手段によって前記検出信号が入力されていない旨の判定がなされたときに、遊技の進行制御を再開させるための電断復旧時制御手段とを備え、
保持解除手段は、前記検出判定手段によって前記検出信号が入力されていない旨の判定がなされた後、前記電断復旧時制御手段により前記遊技の進行制御が再開されるより前に、前記数値データ保持手段による数値データの保持を解除するものであってもよい。これにより、たとえば所定電源電圧の低下時などの電源電圧が不安定な状態で誤って乱数値格納手段に格納された数値データを乱数値として取得してしまうことを防止できる。
(7) 遊技機への電力供給に基づいて生成された所定電源電圧を監視し、該所定電源電圧が低下したことに基づいて検出信号を出力する電源監視手段と、
前記電源監視手段から前記検出信号が出力されてから一定時間経過したときに起動命令(ユーザリセット)を行なう起動命令手段とを備え、
前記保持解除手段は、前記電源監視手段から前記検出信号が出力された後、電力供給が停止するのを待機している期間において、前記数値データ保持手段による数値データの保持を解除する(図72、変形例(7)参照)。
このような構成によれば、一時的に電圧が低下した場合には、電力供給が停止するのを待機している期間において数値データ格納領域に格納された場合にはその数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっている。このため、一時的に電圧が不安定となり、信号線にノイズがのって数値データが数値データ格納領域に格納され、その状態が保持されたままの状態となっても、すぐに読み出されて数値データ格納領域に新たな数値データを格納可能な状態となる。その結果、復帰後、その間にノイズなどによって保持されていた数値データを用いて遊技に関連する決定が行なわれてしまうことを防止することができる。
(8) 前記特定時判定手段により前記開閉体が開放状態でないと判定されたときに、遊技の進行を不能動化する不能動化手段(Sa27c、Sa27c’、Se22a〜Se22c、Se35b)を備える。
このような構成によれば、不正行為を行なった場合、その後の遊技の進行が不能動化される。このため、不正行為が行なわれたことを、遊技場管理者や他の遊技者などによって容易に特定されてしまう。その結果、不正行為を行なうことのリスクを高めることにより、不正行為を抑止することができる。
(9) 遊技の進行制御を行なうとともに、該遊技の進行制御に基づく制御情報を送信する遊技制御手段(メイン制御部41)と、
前記遊技制御手段から受信した制御情報に基づいて演出の制御を行なう演出制御手段(サブ制御部91)と、を備え、
前記演出制御手段は、
遊技機への電力供給に基づいて生成された所定電源電圧が低下したことを条件として、演出状態を特定するための演出情報を記憶する記憶手段(図52)と、
電力供給が再開されたときに該記憶した演出情報から特定される演出状態で演出を再開する再開手段(図56)とを含み、
前記遊技制御手段は、前記設定変更状態が開始したときに設定変更開始制御情報を前記演出制御手段に対して送信し、
前記再開手段は、電力供給が再開した場合において前記設定変更開始制御情報を受信したときには、前記記憶した演出情報に基づき特定される演出状態で演出を再開せず、当該演出情報を消去する(図58、変形例(3)など参照)。
このような構成によれば、再開後の演出から、設定変更状態に制御されたか否かを特定することができる。
(10) 表示状態を変化させることが可能な可変表示装置(リール2L、2C、2R)と、
前記可変表示装置の表示結果として特定表示結果(ボーナス)が導出されたことに基づいて、遊技者にとって有利な状態(ボーナス)に制御する有利制御手段と、
選択されている設定値から特定される確率にしたがって、前記特定表示結果の導出を許容するか否かを決定する事前決定手段(内部抽選)と、
前記特定表示結果の導出を許容する旨が決定され、前記特定表示結果が導出されなかったときに当該特定表示結果の導出を許容する旨の決定を次ゲーム以降に持ち越す持越手段と、
前記持越手段により前記特定表示結果の導出を許容する旨の決定が持ち越されている場合において、前記操作手段の操作状態が前記特定操作状態となったときには、当該特定表示結果の導出を許容する旨の決定を消去する消去手段(初期化1)とを備える。
このような構成によれば、操作手段の操作状態が特定操作状態となったときには、不正行為であるか否かに関わらず、特定表示結果の導出を許容する旨の決定が消去される。このため、特定操作状態となる前の遊技状態を特定操作状態となった後に引き継がれることを防止することができ、遊技の公平性を担保することができる。
本発明が適用された実施の形態のスロットマシンの正面図である。 スロットマシンの内部構造図である。 リールの図柄配列を示す図である。 スロットマシンの構成を示すブロック図である。 メイン制御部の構成を示すブロック図である。 メイン制御部におけるアドレスマップの一例を示す図である。 プログラム管理エリアおよび内蔵レジスタの主要部分を例示する図である。 ヘッダおよび機能設定における設定内容の一例を示す図である。 第1乱数初期設定、第2乱数初期設定および割込み初期設定における設定内容の一例を示す図である。 セキュリティ時間設定における設定内容の一例を示す図である。 内部情報レジスタの構成例等を示す図である。 乱数回路の構成例を示すブロック図である。 乱数列変更レジスタの構成例等を示す図である。 乱数列変更回路による乱数更新規則の変更動作を示す説明図である。 乱数列変更回路による乱数更新規則の変更動作を示す説明図である。 乱数値取込レジスタの構成例等を示す図である。 乱数ラッチ選択レジスタの構成例等を示す図である。 乱数値レジスタの構成例を示す図である。 乱数ラッチフラグレジスタの構成例等を示す図である。 乱数割込み制御レジスタの構成例等を示す図である。 入力ポートレジスタの構成例等を示す図である。 入賞として定められた役の構成および遊技状態別の内部抽選の対象役を示す図である。 メイン制御部が起動時に実行する起動処理(メイン)の制御内容を示すフローチャートである。 メイン制御部が実行するセキュリティチェック処理の制御内容を示すフローチャートである。 メイン制御部が実行するセキュリティチェック処理の制御内容を示すフローチャートである。 メイン制御部が実行する乱数回路異常検査処理の制御内容を示すフローチャートである。 メイン制御部がエラー発生時に実行するエラー処理の制御内容を示すフローチャートである。 メイン制御部が実行する設定変更処理の制御内容を示すフローチャートである。 メイン制御部が設定変更処理後に実行するゲーム処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が一定間隔毎に実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。 メイン制御部が一定間隔毎に実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行する乱数値読出処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行するスイッチ入力判定処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)のタイマ割込2内において実行するコマンド送信処理の制御内容を示すフローチャートである。 メイン制御部が、電断検出回路から電圧低下信号の入力されることによって実行する電断割込処理(メイン)の制御内容を示すフローチャートである。 乱数回路における動作を説明するためのタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの検出状況を示すタイミングチャートである。 サブCPUが起動時に実行する起動処理(サブ)の制御内容を示すフローチャートである。 サブCPUが一定間隔毎に実行するタイマ割込処理(サブ)の制御内容を示すフローチャートである。 サブCPUが一定間隔毎に実行するタイマ割込処理(サブ)の制御内容を示すフローチャートである。 サブCPUが一定間隔毎に実行するタイマ割込処理(サブ)の制御内容を示すフローチャートである。 サブCPUがタイマ割込処理(サブ)において実行する操作検出処理1の制御内容を示すフローチャートである。 サブCPUがタイマ割込処理(サブ)において実行する操作検出処理2の制御内容を示すフローチャートである。 サブCPUが、電断検出回路から電圧低下信号の入力されることによって実行する電断割込処理(サブ)の制御内容を示すフローチャートである。 制御状態に応じてゲームの進行制御に関与する操作スイッチおよびゲームの進行制御に関与しない操作スイッチを示す図である。 起動時におけるメインCPUの制御状況を示すタイミングチャートである。 サブCPUの制御状態を示すタイミングチャートである。 サブCPUの起動時における制御状態を示すタイミングチャートである。 サブCPUの起動時における制御状態を示すタイミングチャートである。 サブCPUの起動時における制御状態を示すタイミングチャートである。 サブCPUの起動時における制御状態を示すタイミングチャートである。 サブCPUの起動時における制御状態を示すタイミングチャートである。 操作演出の一例を示す図である。 連続操作演出の実行状況を示す図である。 台情報の閲覧状況を示す図である。 設定変更時におけるメインCPUおよびサブCPUの制御状況を示すタイミングチャートである。 設定確認時におけるメインCPUおよびサブCPUの制御状況を示すタイミングチャートである。 管理者モード画面を示す図である。 履歴データクリア画面を示す図である。 オプション画面を示す図である。 変形例における、メイン制御部が起動時に実行する起動処理(メイン)の制御内容を示すフローチャートである。 変形例における、メイン制御部が、乱数をラッチする毎に実行する乱数値ラッチ割込処理の制御内容を示すフローチャートである。 変形例における、スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 変形例における、メイン制御部が、電圧低下信号が入力されることによって実行する電断処理(メイン)の制御内容を示すフローチャートである。 パチンコ機の斜視図である。 本体枠を開放した状態を示すパチンコ機の斜視図である。 ガラス扉を開放した状態を示すパチンコ機の斜視図である。 本体枠を開放した状態であって本体枠の背面側の構成を示す図である。
以下、添付図面を参照して、実施の形態について説明する。本実施の形態においては、遊技機としてスロットマシンを一例として説明する。図1は、この実施の形態にかかるスロットマシンの全体構造を示す正面図であり、図2は、スロットマシンの内部構造を示す図である。スロットマシン1は、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施の形態のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図3に示すように、それぞれ「黒7」、「網7(図中網掛け7)」、「白7」、「BAR」、「リプレイ」、「スイカ」、「黒チェリー」、「白チェリー」、「ベル」、「オレンジ」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図4参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51(図1参照)の表示領域51aが配置されている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で、透過性を有するノーマリーホワイトタイプの液晶パネルを有しており、表示領域51aの透視窓3に対応する透過領域51bおよび透視窓3を介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。また、表示領域51aの透過領域51bを除く領域の裏面には、背後から表示領域51aを照射するバックライト(図示略)が設けられているとともに、さらにその裏面には、内部を隠蔽する隠蔽部材(図示略)が設けられている。
前面扉1bには、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いてメダル1枚分の賭数を設定する際に操作される1枚BETスイッチ5、クレジットを用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数(本実施の形態では遊技状態がRB(BB)の場合には2、通常遊技状態では3)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダルおよび賭数の設定に用いたメダルを精算する(クレジットおよび賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、が遊技者により操作可能にそれぞれ設けられている。
また、前面扉1bには、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、後述するBB中のメダルの獲得枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、入賞の発生により払い出されたメダル枚数が表示されるペイアウト表示器13が設けられている。
また、前面扉1bには、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられている。
MAXBETスイッチ6の内部には、1枚BETスイッチ5およびMAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられている。
前面扉1bの内側には、所定のキー操作により後述するエラー状態および後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、メダル投入部4から投入されたメダルの流路を、筐体1a内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31を有するメダルセレクタ(図示略)が設けられている。
筐体1a内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34cからなるホッパーユニット34、電源ボックス100、前面扉1bの開放状態を検出するためのドア開放検出スイッチ25が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留された所定量のメダルを検出可能な高さに設けられた左右に離間する一対の導電部材からなる満タンセンサ35aが設けられており、導電部材がオーバーフロータンク35内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。
電源ボックス100の前面には、後述のBB終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、後述のBB終了時に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、電源投入時(起動時)に設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をON/OFFする際に操作される電源スイッチ39が設けられている。
また、ドア開放検出スイッチ25は、後述するように設定値を変更する際に操作される設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が搭載された電源ボックス100が設けられた側面と対向する側面に設けられている。また、電源ボックス100は、筐体1a内部の下方位置に設けられているのに対し、ドア開放検出スイッチ25は、筐体1a内部の上方位置に設けられている。すなわち、ドア開放検出スイッチ25は、筐体1a内部において、電源ボックス100が設けられている位置に対し、対角する位置に設けられている。
なお、ドア開放検出スイッチ25は、電源ボックス100が設けられた側面と対向する側面あるいは電源ボックス100と対角する位置において、前面扉1bの開放状態を検出するものであれば、筐体1aに設けられているものに限らず、前面扉1bの内側に設けられているものであってもよい。
本実施の形態におけるドア開放検出スイッチ25としては、反射型の光センサを採用している。たとえば、光センサは、光(可視光線、赤外線など)を発射する投光部と、該光を検出する受光部とを含み、投光部は所定方向に光を発射し、受光部は投光部から発射された光のうち前面扉1bが閉鎖状態であるときにのみ当該前面扉1bに設けられている反射部材によって反射された光を検出することにより、前面扉1bが閉鎖状態であることを特定可能に構成されている。なお、ドア開放検出スイッチ25は、前面扉1bの開閉状態を検出できるものであればよく、反射型の光センサに限るものではなく、透過型のものであってもよく、また前面扉1bの開閉状態に応じてON/OFFするスイッチであってもよい。
本実施の形態のスロットマシン1においてゲームを行なう場合には、まず、メダルをメダル投入部4から投入するか、或いはクレジットを使用して賭数を設定する。クレジットを使用するには1枚BETスイッチ5またはMAXBETスイッチ6を操作すればよい。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインL1〜L5(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施の形態では、規定数の賭数として遊技状態がRB(BB)では2枚、通常遊技状態では3枚が定められている。なお、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施の形態では、図1に示すように、各リール2L、2C、2Rの中段に並んだ図柄に跨って設定された入賞ラインL1、各リール2L、2C、2Rの上段に並んだ図柄に跨って設定された入賞ラインL2、各リール2L、2C、2Rの下段に並んだ図柄に跨って設定された入賞ラインL3、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された入賞ラインL4、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された入賞ラインL5の5種類が入賞ラインとして定められている。
ゲームが開始可能な状態でスタートスイッチ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参照)から払い出されるようになっている。なお、有効化された複数の入賞ライン上にメダルの払出を伴う図柄の組合せが揃った場合には、有効化された入賞ラインに揃った図柄の組合せそれぞれに対して定められた払出枚数を合計し、合計した枚数のメダルが遊技者に対して付与されることとなる。
ただし、1ゲームで付与されるメダルの払出枚数には、上限(本実施の形態では15枚)が定められており、合計した払出枚数が上限を超える場合には、上限枚数のメダルが付与されることとなる。また、有効化されたいずれかの入賞ラインL1〜L5上に、遊技状態の移行を伴う図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組合せに応じた遊技状態に移行するようになっている。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40および遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。
また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、打止スイッチ36a、自動精算スイッチ36b、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31、ドア開放検出スイッチ25、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、打止スイッチ36a、自動精算スイッチ36b、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介してホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載されたメイン制御部41の制御に基づいて駆動される。
遊技制御基板40には、メイン制御部41、制御用クロック発生回路42、乱数用クロック生成回路43、スイッチ検出回路44、モータ駆動回路45、ソレノイド駆動回路46、LED駆動回路47、電断検出回路48、リセット回路49が搭載されている。
メイン制御部41は、1チップマイクロコンピュータにて構成され、後述するROM506に記憶された制御プログラムを実行して、遊技の進行に関する処理を行なうととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。
制御用クロック生成回路42は、メイン制御部41の外部にて、所定周波数の発振信号となる制御用クロックCCLKを生成する。制御用クロック生成回路42により生成された制御用クロックCCLKは、たとえば図5に示すようなメイン制御部41の制御用外部クロック端子EXCを介してクロック回路502に供給される。乱数用クロック生成回路43は、メイン制御部41の外部にて、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する。
乱数用クロック生成回路43により生成された乱数用クロックRCLKは、たとえば図5に示すようなメイン制御部41の乱数用外部クロック端子ERCを介して乱数回路509に供給される。一例として、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数以下となるようにすればよい。
スイッチ検出回路44は、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送する。モータ駆動回路45は、メイン制御部41から出力されたモータ駆動信号をリールモータ32L、32C、32Rに伝送する。ソレノイド駆動回路46は、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送する。LED駆動回路は、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送する。
電断検出回路48は、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する。リセット回路49は、電源投入時または電源遮断時などの電源が不安定な状態においてメイン制御部41にリセット信号を与える。
図5は、遊技制御基板40に搭載されたメイン制御部41の構成例を示している。図5に示すメイン制御部41は、1チップマイクロコンピュータであり、外部バスインタフェース501と、クロック回路502と、固有情報記憶回路503と、リセット/割込コントローラ504と、CPU505と、ROM506と、RAM507と、CTC(カウンタ/タイマサーキット)508と、乱数回路509と、PIP(パラレルインプットポート)510と、シリアル通信回路511と、アドレスデコード回路512とを備えて構成される。
図6は、メイン制御部41におけるアドレスマップの一例を示している。図6に示すように、アドレス0000H〜アドレス1FFFHの領域は、ROM506に割り当てられ、ユーザプログラムエリアとプログラム管理エリアとを含んでいる。図7(A)は、ROM506におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。
アドレス2000H〜アドレス20FFHの領域は、メイン制御部41の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図7(B)は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。アドレス7E00H〜アドレス7FFFHの領域は、RAM507に割り当てられたワークエリアであり、I/Oマップやメモリマップに割り付けることができる。アドレスFDD0H〜アドレスFDFBHの領域は、アドレスデコード回路512に割り当てられるXCSデコードエリアである。
プログラム管理エリアは、CPU505がユーザプログラムを実行するために必要な情報を格納する記憶領域である。図7(A)に示すように、プログラム管理エリアには、ヘッダKHDR、機能設定KFCS、第1乱数初期設定KRS1、第2乱数初期設定KRS2、割込初期設定KIIS、セキュリティ時間設定KSESなどが、含まれている。
プログラム管理エリアに記憶されるヘッダKHDRは、メイン制御部41における内部データの読出設定を示す。図8(A)は、ヘッダKHDRにおける設定データと動作との対応関係を例示している。ここで、メイン制御部41では、ROM読出防止機能と、バス出力マスク機能とを設定可能である。ROM読出防止機能は、メイン制御部41が備えるROM506の記憶データについて、読出動作を許可又は禁止する機能であり、読出禁止に設定された状態では、ROM506の記憶データを読み出すことができない。バス出力マスク機能は、外部バスインタフェース501に接続された外部装置からメイン制御部41の内部データに対する読出要求があった場合に、外部バスインタフェース501におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることにより、外部装置から内部データの読み出しを不能にする機能である。
図8(A)に示すように、ヘッダKHDRの設定データに対応して、ROM読出防止機能やバス出力マスク機能の動作組合せが異なるように設定される。図8(A)に示す設定データのうち、ROM読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ROM読出が禁止されるとともに、バス出力マスクが有効となる設定データ(全て「00H」)は、ROM読出禁止データともいう。ROM読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
プログラム管理エリアに記憶される機能設定KFCSは、メイン制御部41におけるウォッチドッグタイマの動作設定や、各種機能兼用端子の使用設定を示す。図8(B)は、機能設定KFCSにおける設定内容の一例を示している。
機能設定KFCSのビット番号[7−5]は、たとえばリセット/割込コントローラ504における割込要因として設定可能なウォッチドッグタイマの動作許可/禁止や、許可した場合の周期を示している。機能設定KFCSのビット番号[4]は、メイン制御部41における所定の機能兼用端子(第1兼用端子)を、シリアル通信回路511が使用する第2チャネル送信端子TXBとするか、アドレスデコード回路512が使用するチップセレクト出力端子XCS13とするかを指定するTXB端子設定である。
図8(B)に示す例において、機能設定KFCSのビット番号[4]におけるビット値が“0”であれば、第1兼用端子がシリアル通信回路511での第2チャネル送信に使用される第2チャネル送信端子TXBの設定となる。これに対して、そのビット値が“1”であれば、第1兼用端子がアドレスデコード回路512で使用されるチップセレクト出力端子XCS13の設定となる。本実施の形態では、機能設定KFCSのビット番号[4]を“0”として、第1兼用端子を第2チャネル送信端子TXBに設定することにより、演出制御基板90との間でのシリアル通信を可能にする。
機能設定KFCSのビット番号[3]は、メイン制御部41における所定の機能兼用端子(第2兼用端子)を、シリアル通信回路511が使用する第1チャネル送信端子TXAとするか、アドレスデコード回路512が使用するチップセレクト出力端子XCS12とするかを示すTXA端子設定である。図8(B)に示す例において、機能設定KFCSのビット番号[3]におけるビット値が“0”であれば、第2兼用端子がシリアル通信回路511での第1チャネル送信に使用される第1チャネル送信端子TXAの設定となる。これに対して、そのビット値が“1”であれば、第2兼用端子がアドレスデコード回路512で使用されるチップセレクト出力端子XCS12の設定となる。本実施の形態では、機能設定KFCSのビット番号[3]を“0”として、第2兼用端子を第1チャネル送信端子TXAに設定しているが、第1チャンネル受信は未使用とされている。
機能設定KFCSのビット番号[2]は、メイン制御部41における所定の機能兼用端子(第3兼用端子)を、シリアル通信回路511が使用する第1チャネル受信端子RXAとするか、PIP510が使用する入力ポートP5とするかを示すRXA端子設定である。図8(B)に示す例において、機能設定KFCSのビット番号[2]におけるビット値が“0”であれば、第3兼用端子がシリアル通信回路511での第1チャネル受信に使用される第1チャネル受信端子RXAの設定となる。これに対して、そのビット値が“1”であれば、第3兼用端子がPIP510で使用される入力ポートP5の設定となる。本実施の形態では、機能設定KFCSのビット番号[2]を“0”として、第3兼用端子を第1チャネル受信端子RXAに設定しているが、第1チャンネル受信は未使用とされている。
機能設定KFCSのビット番号[1]は、メイン制御部41における所定の機能兼用端子(第4兼用端子)を、CPU505等に接続される外部ノンマスカブル割込端子XNMIとするか、PIP510が使用する入力ポートP4とするかを示すNMI接続設定である。図8(B)に示す例において、機能設定KFCSのビット番号[1]におけるビット値が“0”であれば、第4兼用端子がCPU505等に接続される外部ノンマスカブル割込端子XNMIの設定となる(CPU接続)。これに対して、そのビット値が“1”であれば、第4兼用端子がPIP510で使用される入力ポートP4の設定となる(CPU非接続)。本実施の形態では、機能設定KFCSのビット番号[1]を“1”として、第4兼用端子をPIP510で使用される入力ポートP4に設定しているが、入力ポートP4は未使用とされている。
機能設定KFCSのビット番号[0]は、メイン制御部41における所定の機能兼用端子(第5兼用端子)を、CPU505等に接続される外部マスカブル割込端子XINTとするか、PIP510が使用する入力ポートP3とするかを示すXINT接続設定である。図8(B)に示す例において、機能設定KFCSのビット番号[0]におけるビット値が“0”であれば、第5兼用端子がCPU505等に接続される外部マスカブル割込端子XINTの設定となる(CPU接続)。これに対して、そのビット値が“1”であれば、第5兼用端子がPIP510で使用される入力ポートP3の設定となる(CPU非接続)。本実施の形態では、機能設定KFCSのビット番号[0]を“0”として、第4兼用端子をCPU505等に接続される外部マスカブル割込端子XINTに設定することにより、電断検出回路48からの電圧低下信号が入力される。
プログラム管理エリアに記憶される第1乱数初期設定KRS1および第2乱数初期設定KRS2は、乱数回路509の初期設定を示す。図9(A)は、第1乱数初期設定KRS1における設定内容の一例を示している。図9(B)は、第2乱数初期設定KRS2における設定内容の一例を示している。
第1乱数初期設定KRS1のビット番号[3]は、乱数回路509を使用するか否かを示す乱数回路使用設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[3]におけるビット値が“0”であれば、乱数回路509を使用しない設定となる一方(未使用)、“1”であれば、乱数回路509を使用する設定となる(使用)。本実施の形態では、第1乱数初期設定KRS1のビット番号[3]を“1”として、乱数回路509を使用可能に設定する。
第1乱数初期設定KRS1のビット番号[2]は、乱数回路509における乱数値となる数値データの更新に用いられる乱数更新クロックRGK(図12参照)を、内部システムクロックSCLKとするか、乱数用クロックRCLKの2分周とするかを示す乱数更新クロック設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[2]におけるビット値が“0”であれば、内部システムクロックSCLKを乱数更新クロックRGKに用いる設定となる一方、“1”であれば、乱数用クロックRCLKを2分周して乱数更新クロックRGKに用いる設定となる。本実施の形態では、第1乱数初期設定KRS1のビット番号[2]を“1”として、乱数用クロックRCLKを2分周して乱数更新クロックRGKに用いる設定とする。
第1乱数初期設定KRS1のビット番号[1−0]は、乱数回路509における乱数更新規則を変更するか否かや、変更する場合における変更方式を示す乱数更新規則設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値が“00”であれば、乱数更新規則を変更しない設定となり、“01”であれば、2周目以降にて乱数更新規則をソフトウェアにより変更する設定となり、“10”であれば、2周目以降にて乱数更新規則を自動で変更する設定となる。
第2乱数初期設定KRS2のビット番号[3−2]は、固定のビット値“00”が設定される。なお、図9(B)における「00B」の“B”は2進数表示であることを示す。第2乱数初期設定KRS2のビット番号[1−0]は、乱数回路509における乱数値となる数値データでのスタート値に関する設定を示す。図9(B)に示す例において、第2乱数初期設定KRS2のビット番号[1]におけるビット値が“0”であれば、スタート値が所定のデフォルト値0001Hに設定される一方、“1”であるときには、メイン制御部41毎に付与された固有の識別情報であるIDナンバーに基づく値がスタート値に設定される。
また、図9(B)に示す例では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“0”であれば、システムリセット毎にスタート値を変更しない設定となる一方、“1”であるときには、システムリセット毎にスタート値を変更する設定となる。なお、スタート値をIDナンバーに基づく値に設定する場合には、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値をスタート値に用いるようにすればよい。
また、スタート値をシステムリセット毎に変更する場合には、たとえばメイン制御部41に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時にメイン制御部41が備える所定の内蔵レジスタ(乱数スタート値用レジスタ)に格納する。そして、初期設定時に乱数スタート値用レジスタの格納値をそのまま用いること、或いは、その格納値を所定の演算関数(たとえばハッシュ関数)に代入して得られた値を用いることなどにより、スタート値がランダムに決定されればよい。
フリーランカウンタは、遊技制御基板40におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。或いは、フリーランカウンタは、RAM507におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、フリーランカウンタがパックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間はフリーランカウンタにおけるカウント値が保存されることになる。
なお、乱数回路509にて乱数値となる数値データを生成するための回路が2系統(第1および第2チャネル対応)設けられる場合には、図9(A)および(B)に示す第1乱数初期設定KRS1のビット番号[3−0]と第2乱数初期設定KRS2のビット番号[3−0]とを、第1チャネルにおける初期設定を示すものとして使用する。その一方で、第1乱数初期設定KRS1のビット番号[7−4]や第2乱数初期設定KRS2のビット番号[7−4]を(図9(A)および(B)では省略)、第2チャネルにおける初期設定を示すものとして使用すればよい。
プログラム管理エリアに記憶される割込初期設定KIISは、メイン制御部41にて発生するマスカブル割込の取扱いに関する初期設定を示す。図9(C)は、割込初期設定KIISにおける設定内容の一例を示している。
割込初期設定KIISのビット番号[7−4]では、割込ベクタの上位4ビットを設定する。割込初期設定KIISのビット番号[3−0]では、マスカブル割込要因の優先度の組合せを設定する。図9(C)に示す例において、割込初期設定KIISのビット番号[3−0]により「00H」〜「02H」および「06H」のいずれかが指定されれば、CTC508からのマスカブル割込要因を最優先とする優先度の組合せが設定される。これに対して、「03H」および「07H」のいずれかが指定されれば、乱数回路509からのマスカブル割込要因を最優先とする優先度の組合せが設定される。また、「04H」および「05H」のいずれかが指定されれば、シリアル通信回路511からのマスカブル割込要因を最優先とする優先度の組合せが設定される。なお、同一回路からのマスカブル割込要因を最優先とする優先度の組合せでも、指定値が異なる場合には、最優先となるマスカブル割込要因の種類や第2順位以下における優先度の組合せなどが異なっている。
プログラム管理エリアに記憶されるセキュリティ時間設定KSESは、乱数用クロックRCLKの周波数を監視する場合に異常を検知する周波数や、メイン制御部41の動作開始時などに移行するセキュリティモードの時間(セキュリティ時間)に関する設定を示す。ここで、メイン制御部41の動作モードがセキュリティモードであるときには、所定のセキュリティチェック処理が実行されて、ROM506の記憶内容が変更されたか否かが検査される。図10(A)は、セキュリティ時間設定KSESにおける設定内容の一例を示している。
セキュリティ時間設定KSESのビット番号[7−6]は、乱数用クロックRCLKの周波数を監視する場合に異常が検出される周波数を示す乱数用クロック異常検出設定である。図10(B)は、セキュリティ時間設定KSESのビット番号[7−6]における設定内容の一例を示している。セキュリティ時間設定KSESのビット番号[7−6]は、内部システムクロックSCLKの周波数に基づき、乱数用クロックRCLKの周波数が異常と検知される基準値(判定値)を指定する。セキュリティ時間設定KSESのビット番号「5」は、固定のビット値“0”が設定される。
セキュリティ時間設定KSESのビット番号[4−3]は、セキュリティ時間をシステムリセット毎にランダムな時間分延長する場合の時間設定を示す。図10(C)は、セキュリティ時間設定KSESのビット番号[4−3]における設定内容の一例を示している。図10(C)に示す例において、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”であれば、ランダムな時間延長を行なわない設定となる。これに対して、そのビット値が“01”であればショートモードの設定となり、“10”であればロングモードの設定となる。
ここで、ショートモードやロングモードが指定された場合には、たとえばメイン制御部41に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時にメイン制御部41が備える所定の内蔵レジスタ(可変セキュリティ時間用レジスタ)に格納する。そして、初期設定時に可変セキュリティ時間用レジスタの格納値をそのまま用いること、或いは、その格納値を所定の演算関数(たとえばハッシュ関数)に代入して得られた値を用いることなどにより、セキュリティ時間を延長する際の延長時間がランダムに決定されればよい。
一例として、内部システムクロックSCLKの周波数が6.0MHzである場合には、ショートモードにおいて0〜680μs(マイクロ秒)の範囲で延長時間がランダムに決定され、ロングモードにおいて0〜348,160μsの範囲で延長時間がランダムに決定される。また、他の一例として、内部システムクロックSCLKの周波数が10.0MHzである場合には、ショートモードにおいて0〜408μsの範囲で延長時間がランダムに決定され、ロングモードにおいて0〜208,896μsの範囲で延長時間がランダムに決定される。なお、セキュリティ時間を延長する際の延長時間をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタは、乱数回路509にて生成される乱数のスタート値をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタと、同一のカウンタであってもよいし、別個に設けられたカウンタであってもよい。
セキュリティ時間設定KSESのビット番号[2−0]は、セキュリティ時間を固定時間に加えて予め選択可能な複数の延長時間のいずれかとする場合の時間設定を示す。図10(D)は、セキュリティ時間設定KSESのビット番号[2−0]における設定内容の一例を示している。図10(D)に示す例において、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”であれば、固定時間に加える延長時間がなく延長しない設定となる。これに対して、そのビット値が“000”以外の値であれば、内部システムクロックSCLKの周期TSCLKを用いて定められる複数の延長時間のいずれかに設定される。この場合には、指定されたビット値に応じて、異なる延長時間の設定となる。
一例として、内部システムクロックSCLKの周波数が6.0MHzである場合に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“001”であれば、固定時間に加えて約699.1ms(ミリ秒)の延長時間が設定される。また、他の一例として、内部システムクロックSCLKの周波数が10.0MHzである場合に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“001”であれば、固定時間に加えて約419.4msの延長時間が設定される。
また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値によりショートモード又はロングモードを設定するとともに、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を“000”以外とすることにより固定時間に加える延長時間を設定することもできる。この場合には、ビット番号[2−0]におけるビット値に対応した延長時間と、ビット番号[4−3]におけるビット値に基づいてランダムに決定された延長時間との双方が、固定時間に加算されて、メイン制御部41がセキュリティモードとなるセキュリティ時間が決定されることになる。
図5に示すメイン制御部41が備える外部バスインタフェース501は、メイン制御部41を構成するチップの外部バスと内部バスとのインタフェース機能や、アドレスバス、データバスおよび各制御信号の方向制御機能などを有するバスインタフェースである。たとえば、外部バスインタフェース501は、メイン制御部41に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部装置との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであればよい。この実施の形態において、外部バスインタフェース501には、内部リソースアクセス制御回路501Aが含まれている。
内部リソースアクセス制御回路501Aは、外部バスインタフェース501を介した外部装置からメイン制御部41の内部データに対するアクセスを制御して、たとえばROM506に記憶されたゲーム制御用プログラムや固定データといった、内部データの不適切な外部読出を制限するための回路である。ここで、外部バスインタフェース501には、たとえばインサーキットエミュレータ(ICE)といった回路解析装置が、外部装置として接続されることがある。
一例として、ROM506のプログラム管理エリアに記憶されたヘッダKHDRの内容に応じて、ROM506における記憶データの読み出しを禁止するか許可するかを切り替えられるようにする。たとえば、ヘッダKHDRがバス出力マスク無効データとなっている場合には、外部装置によるROM506の読み出しを可能にして、内部データの外部読出を許可する。これに対して、ヘッダKHDRがバス出力マスク有効データとなっている場合には、たとえば外部バスインタフェース501におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることなどにより、外部装置からROM506の読み出しを不能にして、内部データの外部読出を禁止する。この場合、外部バスインタフェース501に接続された外部装置から内部データの読み出しが要求されたときには、予め定められた固定値を出力することで、外部装置からは内部データを読み出すことができないようにする。
また、ヘッダKHDRがROM読出禁止データとなっている場合には、ROM506自体を読出不能として、ROM506における記憶データの読み出しを防止してもよい。そして、たとえば製造段階のROMでは、ヘッダKHDRをROM読出禁止データとすることで、ROM自体を読出不能としておき、開発用ROMとするのであればバス出力マスク無効データをヘッダKHDRに書き込むことで、外部装置による内部データの検証を可能にする。これに対して、量産用ROMとするのであればバス出力マスク有効データをヘッダKHDRに書き込むことで、CPU505などによるメイン制御部41の内部におけるROM506の読み出しは可能とする一方で、外部装置によるROM506の読み出しはできないようにすればよい。
他の一例として、内部リソースアクセス制御回路501Aは、ROM506における記憶データの全部又は一部といった、メイン制御部41の内部データの読み出しが、外部バスインタフェース501に接続された外部装置から要求されたことを検出する。この読出要求を検出したときに、内部リソースアクセス制御回路501Aは、メイン制御部41の内部データの読み出しを許可するか否かの判定を行なう。たとえば、ROM506における記憶データの全部又は一部に暗号化処理が施されているものとする。この場合、内部リソースアクセス制御回路501Aは、外部装置からの読出要求がROM506に記憶された暗号化処理プログラムや鍵データ等に対する読出要求であれば、この読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。外部バスインタフェース501では、ROM506の記憶データが出力される出力ポートと、内部バスとの間にスイッチ素子を設け、内部リソースアクセス制御回路501Aが内部データの読み出しを禁止した場合には、このスイッチ素子をオフ状態とするように制御すればよい。このように、内部リソースアクセス制御回路501Aは、外部装置からの読出要求が所定の内部データ(たとえばROM506の所定領域)の読み出しを要求するものであるか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
或いは、内部リソースアクセス制御回路501Aは、内部データの読出要求を検出したときに、所定の認証コードが外部装置から入力されたか否かを判定してもよい。この場合には、たとえば内部リソースアクセス制御回路501Aの内部或いはROM506の所定領域に、認証コードとなる所定のコードパターンが予め記憶されていればよい。そして、外部装置から認証コードが入力されたときには、この認証コードを内部記憶された認証コードと比較して、一致すれば読出要求を受容して、メイン制御部41の内部データの読み出しを許可する。これに対して、外部装置から入力された認証コードが内部記憶された認証コードと一致しない場合には、読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。このように、内部リソースアクセス制御回路501Aは、外部装置から入力された認証コードが内部記憶された認証コードと一致するか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。これにより、検査機関などが予め知得した正しい認証コードを用いて、メイン制御部41の内部データを損なうことなく読み出すことができ、内部データの正当性を適切に検査することなどが可能になる。
さらに他の一例として、内部リソースアクセス制御回路501Aに読出禁止フラグを設け、読出禁止フラグがオン状態であれば外部装置によるROM506の読み出しを禁止する。その一方で、読出禁止フラグがオフ状態であるときには、外部装置によるROM506の読み出しが許可される。ここで、読出禁止フラグは、初期状態ではオフ状態であるが、読出禁止フラグを一旦オン状態とした後には、読出禁止フラグをクリアしてオフ状態に復帰させることができないように構成されていればよい。
すなわち、読出禁止フラグはオフ状態からオン状態に不可逆的に変更することが可能とされている。たとえば、内部リソースアクセス制御回路501Aには、読出禁止フラグをクリアしてオフ状態とする機能が設けられておらず、どのような命令によっても読出禁止フラグをクリアすることができないように設定されていればよい。そして、内部リソースアクセス制御回路501Aは、外部装置からROM506における記憶データといったメイン制御部41の内部データの読み出しが要求されたときに、読出禁止フラグがオンであるか否かを判定する。このとき、読出禁止フラグがオンであれば、外部装置からの読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。
他方、読出禁止フラグがオフであれば、外部装置からの読出要求を受容して、メイン制御部41の内部データの読み出しを許可にする。このような構成であれば、ゲーム制御用のプログラムを作成してROM506に格納する提供者においては、読出禁止フラグがオフとなっている状態でデバッグの終了したプログラムをROM506から外部装置に読み込むことができる。
そして、デバッグの作業が終了した後に出荷する際には、読出禁止フラグをオン状態にセットすることにより、それ以後はROM506の外部読出を制限することができ、スロットマシン1の使用者などによるROM506の読出を防止することができる。このように、内部リソースアクセス制御回路501Aは、読出禁止フラグといった内部フラグがオフであるかオンであるかに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
なお、読出禁止フラグを不可逆に設定するのではなく、オン状態からオフ状態に変更することも可能とする一方で、読出禁止フラグをオン状態からオフ状態に変更して内部データの読み出しが許可されるときには、ROM506の記憶データを消去(たとえばフラッシュ消去など)することにより、ROM506の外部読出を制限するようにしてもよい。
メイン制御部41が備えるクロック回路502は、たとえば制御用外部クロック端子EXCに入力される発振信号を2分周することなどにより、内部システムクロックSCLKを生成する回路である。本実施の形態では、制御用外部クロック端子EXCに制御用クロック生成回路42が生成した制御用クロックCCLKが入力される。クロック回路502により生成された内部システムクロックSCLKは、たとえばCPU505といった、メイン制御部41において遊技の進行を制御する各種回路に供給される。
また、内部システムクロックSCLKは、乱数回路509にも供給され、乱数用クロック生成回路43から供給される乱数用クロックRCLKの周波数を監視するために用いられる。さらに、内部システムクロックSCLKは、クロック回路502に接続されたシステムクロック出力端子CLKOから、メイン制御部41の外部へと出力されてもよい。なお、内部システムクロックSCLKは、メイン制御部41の外部へは出力されないことが望ましい。このように、内部システムクロックSCLKの外部出力を制限することにより、メイン制御部41の内部回路(CPU505など)の動作周期を外部から特定することが困難になり、乱数値となる数値データをソフトウェアにより更新する場合に、乱数値の更新周期が外部から特定されてしまうことを防止できる。
メイン制御部41が備える固有情報記憶回路503は、たとえばメイン制御部41の内部情報となる複数種類の固有情報を記憶する回路である。一例として、固有情報記憶回路503は、ROMコード、チップ個別ナンバー、IDナンバーといった3種類の固有情報を記憶する。ROM506コードは、ROM506の所定領域における記憶データから生成される4バイトの数値であり、生成方法の異なる4つの数値が準備されればよい。チップ個別ナンバーは、メイン制御部41の製造時に付与される4バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値を示している。IDナンバーは、メイン制御部41の製造時に付与される8バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値を示している。
ここで、チップ個別ナンバーはユーザプログラムから読み取ることができる一方、IDナンバーはユーザプログラムから読み取ることができないように設定されていればよい。なお、固有情報記憶回路503は、たとえばROM506の所定領域を用いることなどにより、ROM506に含まれるようにしてもよい。或いは、固有情報記憶回路503は、たとえばCPU505の内蔵レジスタを用いることなどにより、CPU505に含まれるようにしてもよい。
メイン制御部41が備えるリセット/割込コントローラ504は、メイン制御部41の内部や外部にて発生する各種リセット、割込要求を制御するためのものである。リセット/割込コントローラ504が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。ユーザリセットは、ウォッチドッグタイマ(WDT)がタイムアップしてタイムアウト信号が発生した場合(すなわちメイン制御部41のCPU505の動作が一定時間停止した場合)や、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
リセット/割込コントローラ504が制御する割込には、ノンマスカブル割込NMIとマスカブル割込INTが含まれている。ノンマスカブル割込NMIは、CPU505の割込禁止状態でも無条件に受け付けられる割込であり、外部ノンマスカブル割込端子XNMI(入力ポートP4と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込である。マスカブル割込INTは、CPU505の設定命令により、割込要求の受け付けを許可/禁止できる割込であり、優先順位設定による多重割込の実行が可能である。マスカブル割込INTの要因としては、外部マスカブル割込端子XINT(入力ポートP3と兼用)に一定の期間にわたりローレベル信号が入力されたこと、CTC508に含まれるタイマ回路にてタイムアウトが発生したこと、シリアル通信回路511にてデータ送信による割込要因が発生したこと、乱数回路509にて乱数値となる数値データの取込による割込要因が発生したことなど、複数種類の割込要因が予め定められていればよい。
リセット/割込コントローラ504は、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、割込マスクレジスタIMR(アドレス2028H)、割込待ちモニタレジスタIRR(アドレス2029H)、割込中モニタレジスタISR(アドレス202AH)、内部情報レジスタCIF(アドレス208CH)などを用いて、割込の制御やリセットの管理を行なう。割込マスクレジスタIMRは、互いに異なる複数の要因によるマスカブル割込INTのうち、使用するものと使用しないものとを設定するレジスタである。割込待ちモニタレジスタIRRは、割込初期設定KIISにより設定されたマスカブル割込要因のそれぞれについて、マスカブル割込要求信号の発生状態を確認するレジスタである。割込中モニタレジスタISRは、割込初期設定KIISにより設定されたマスカブル割込要因のそれぞれについて、マスカブル割込要求信号の処理状態を確認するレジスタである。内部情報レジスタCIFは、直前に発生したリセット要因を管理したり、乱数用クロックRCLKの周波数異常を記録したりするためのレジスタである。
図11(A)は、内部情報レジスタCIFの構成例を示している。図11(B)は、内部情報レジスタCIFに格納される内部情報データの各ビットにおける設定内容の一例を示している。内部情報レジスタCIFのビット番号[4]に格納される内部情報データCIF4は、乱数用クロックRCLKにおける周波数異常の有無を示す乱数用クロック異常指示である。図11(B)に示す例では、乱数用クロックRCLKの周波数異常が検知されないときに、内部情報データCIF4のビット値が“0”となる一方、周波数異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[2]に格納される内部情報データCIF2は、直前に発生したリセット要因がシステムリセットであるか否かを示すシステムリセット指示である。図11(B)に示す例では、直前のリセット要因がシステムリセットではないときに(システムリセット未発生)、内部情報データCIF2のビット値が“0”となる一方、システムリセットであるときには(システムリセット発生)、そのビット値が“1”となる。
内部情報レジスタCIFのビット番号[1]に格納される内部情報データCIF1は、直前に発生したリセット要因がウォッチドッグタイマ(WDT)のタイムアウトによるユーザリセットであるか否かを示すWDTタイムアウト指示である。図11(B)に示す例では、直前のリセット要因がウォッチドッグタイマのタイムアウトによるユーザリセットではないときに(タイムアウト未発生)、内部情報データCIF1のビット値が“0”となる一方、ウォッチドッグタイマのタイムアウトによるユーザリセットであるときに(タイムアウト発生)、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[0]に格納される内部情報データCIF0は、直前に発生したリセット要因が指定エリア外走行禁止(IAT)によるユーザリセットであるか否かを示すIAT発生指示である。図11(B)に示す例では、直前のリセット要因が指定エリア外走行の発生によるユーザリセットではないときに(IAT発生なし)、内部情報データCIF0のビット値が“0”となる一方、指定エリア外走行の発生によるユーザリセットであるときに(IAT発生あり)、そのビット値が“1”となる。
メイン制御部41が備えるCPU505は、ROM506から読み出したプログラムを実行することにより、スロットマシン1におけるゲームの進行を制御するための処理などを実行する。このときには、CPU505がROM506から固定データを読み出す固定データ読出動作や、CPU505がRAM507に各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU505がRAM507に一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU505が外部バスインタフェース501やPIP510などを介してメイン制御部41の外部から各種信号の入力を受け付ける受信動作、CPU505が外部バスインタフェース501やシリアル通信回路511などを介してメイン制御部41の外部へと各種信号を出力する送信動作等も行なわれる。
このように、メイン制御部41では、CPU505がROM506に格納されているプログラムに従って制御を実行するので、以下、メイン制御部41(又はCPU505)が実行する(又は処理を行なう)ということは、具体的には、CPU505がプログラムに従って制御を実行することである。このことは、遊技制御基板40以外の他の基板に搭載されているマイクロコンピュータについても同様である。
メイン制御部41が備えるROM506には、ゲーム制御用のユーザプログラムや固定データ等が記憶されている。また、ROM506には、セキュリティチェックプログラム506Aが記憶されている。CPU505は、スロットマシン1の電源投入やシステムリセットの発生に応じてメイン制御部41がセキュリティモードに移行したときに、ROM506に記憶されたセキュリティチェックプログラム506Aを読み出し、ROM506の記憶内容が変更されたか否かを検査するセキュリティチェック処理を実行する。なお、セキュリティチェックプログラム506Aは、ROM506とは異なる内蔵メモリに記憶されてもよい。また、セキュリティチェックプログラム506Aは、たとえば外部バスインタフェース501を介してメイン制御部41に外付けされた外部メモリの記憶内容を検査するセキュリティチェック処理に対応したものであってもよい。
メイン制御部41が備えるRAM507は、ゲーム制御用のワークエリアを提供する。ここで、RAM507の少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであればよい。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM507の少なくとも一部の内容が保存される。なお、本実施の形態では、RAM507の全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM507の全ての内容が保存される。
メイン制御部41が備えるCTC508は、たとえば8ビットのプログラマブルタイマを3チャネル(PTC0−PTC2)内蔵して構成され、リアルタイム割込の発生や時間計測を可能とするタイマ回路を含んでいる。各プログラマブルタイマPTC0−PTC2は、内部システムクロックSCLKに基づいて生成されたカウントクロックの信号変化(たとえばハイレベルからローレベルへと変化する立ち下がりタイミング)などに応じて、タイマ値が更新されるものであればよい。また、CTC508は、たとえば8ビットのプログラマブルカウンタを4チャネル(PCC0−PCC3)内蔵してもよい。各プログラマブルカウンタPCC0−PCC3は、内部システムクロックSCLKの信号変化、或いは、プログラマブルカウンタPCC0−PCC3のいずれかにおけるタイムアウトの発生などに応じて、カウント値が更新されるものであればよい。CTC508は、セキュリティ時間を延長する際の延長時間(可変設定時間)をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタや、乱数回路509にて生成される乱数のスタート値をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタなどを、含んでもよい。或いは、これらのフリーランカウンタは、たとえばRAM507のバックアップ領域といった、CTC508とは異なるメイン制御部41の内部回路に含まれてもよい。
メイン制御部41が備える乱数回路509は、たとえば16ビット乱数といった、所定の更新範囲を有する乱数値となる数値データを生成する回路である。本実施の形態では、遊技制御基板40の側において、後述する内部抽選用の乱数値を示す数値データがカウント可能に制御される。なお、遊技効果を高めるために、これら以外の乱数値が用いられてもよい。CPU505は、乱数回路509から抽出した数値データに基づき、乱数回路509とは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工或いは更新することで、内部抽選用の乱数値を示す数値データをカウントするようにしてもよい。以下では、内部抽選用の乱数値を示す数値データが、ハードウェアとなる乱数回路509からCPU505により抽出された数値データをソフトウェアにより加工しないものとする。なお、乱数回路509は、メイン制御部41に内蔵されるものであってもよいし、メイン制御部41とは異なる乱数回路チップとして、メイン制御部41に外付けされるものであってもよい。
内部抽選用の乱数値は、複数種類の入賞について発生を許容するか否かを判定するために用いられる値であり、本実施の形態では、「0」〜「65535」の範囲の値をとる。
図12は、乱数回路509の一構成例を示すブロック図である。乱数回路509は、図12に示すように、周波数監視回路551、クロック用フリップフロップ552、乱数生成回路553、スタート値設定回路554、乱数列変更回路555、乱数列変更設定回路556、ラッチ用フリップフロップ557A、557B、乱数ラッチセレクタ558A、558B、乱数値レジスタ559A、559Bを備えて構成される。なお、乱数値レジスタ559Aと乱数値レジスタ559Bはそれぞれ、図7(B)に示すようなメイン制御部41の内蔵レジスタに含まれる乱数値レジスタR1D(アドレス2038H−2039H)と乱数値レジスタR2D(アドレス203AH−203BH)に対応している。なお、本実施の形態では、取得する乱数が内部抽選用の乱数値のみであり、ラッチ用フリップフロップ557A、557B、乱数ラッチセレクタ558A、558B、乱数値レジスタ559A、559Bのうちラッチ用フリップフロップ557B、乱数ラッチセレクタ558B、乱数値レジスタ559Bは未使用とされている。
周波数監視回路551は、乱数用クロック生成回路43により生成された乱数用クロックRCLKの周波数を監視して、その異常発生を検知するための回路である。周波数監視回路551は、たとえば乱数用外部クロック端子ERCに入力される発振信号を監視して、内部システムクロックSCLKに基づきセキュリティ時間設定KSESのビット番号[7−6]における設定内容(図10(B)参照)に応じた周波数異常を検知したときに、内部情報レジスタCIFのビット番号[4]を“1”にセットする。本実施の形態では、乱数用外部クロック端子ERCに乱数用クロック生成回路43が生成した乱数用クロックRCLKが入力される。
クロック用フリップフロップ552は、たとえばD型フリップフロップなどを用いて構成され、乱数用外部クロック端子ERCからの乱数用クロックRCLKがクロック端子CKに入力される。また、クロック用フリップフロップ552では、逆相出力端子(反転出力端子)QバーがD入力端子に接続されている。そして、正相出力端子(非反転出力端子)Qから乱数更新クロックRGKを出力する一方で、逆相出力端子(反転出力端子)Qバーからラッチ用クロックRC0を出力する。この場合、クロック用フリップフロップ552は、クロック端子CKに入力される乱数用クロックRCLKにおける信号状態が所定の変化をしたときに、正相出力端子(非反転出力端子)Qおよび逆相出力端子(反転出力端子)Qバーからの出力信号における信号状態を変化させる。
たとえば、クロック用フリップフロップ552は、乱数用クロックRCLKの信号状態がローレベルからハイレベルへと変化する立上りのタイミング、或いは、乱数用クロックRCLKの信号状態がハイレベルからローレベルへと変化する立ち下がりのタイミングのうち、いずれか一方のタイミングにて、D入力端子における入力信号を取り込む。このとき、正相出力端子(非反転出力端子)Qからは、D入力端子にて取り込まれた入力信号が反転されることなく出力される一方で、逆相出力端子(反転出力端子)Qバーからは、D入力端子にて取り込まれた入力信号が反転されて出力される。こうして、クロック用フリップフロップ552の正相出力端子(非反転出力端子)Qからは乱数用クロックRCLKにおける発振周波数(たとえば20MHz)の1/2となる発振周波数(たとえば10MHz)を有する乱数更新クロックRGKが出力される一方、逆相出力端子(反転出力端子)Qバーからは乱数更新クロックRGKの逆相信号(反転信号)、すなわち乱数更新クロックRGKと同一周波数で乱数更新クロックRGKとは位相がπ(=180°)だけ異なるラッチ用クロックRC0が出力される。
クロック用フリップフロップ552から出力された乱数更新クロックRGKは、乱数生成回路553のクロック端子に入力されて、乱数生成回路553におけるカウント値の歩進に用いられる。また、クロック用フリップフロップ552から出力されたラッチ用クロックRC0は、分岐点BR1にてラッチ用クロックRC1とラッチ用クロックRC2とに分岐される。したがって、ラッチ用クロックRC1とラッチ用クロックRC2とは、互いに同一の発振周波数を有し、互いに共通の周期で信号状態が変化することになる。ここで、ラッチ用クロックRC1やラッチ用クロックRC2における信号状態の変化としては、たとえばローレベルからハイレベルへと変化する立上りや、ハイレベルからローレベルへと変化する立ち下がりなどがある。ラッチ用クロックRC1は、ラッチ用フリップフロップ557Aのクロック端子CKに入力されて、ゲーム開始時ラッチ信号SL1の生成に用いられる乱数取得用クロックとなる。
乱数用クロックRCLKの発振周波数と、制御用クロック生成回路42によって生成される制御用クロックCCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。一例として、制御用クロックCCLKの発振周波数が11.0MHzである一方で、乱数用クロックRCLKの発振周波数は9.7MHzであればよい。そのため、乱数更新クロックRGKやラッチ用クロックRC1、RC2はいずれも、CPU505に供給される制御用クロックCCLKとは異なる周期で信号状態が変化する発振信号となる。すなわち、クロック用フリップフロップ552は、乱数用クロック生成回路43によって生成された乱数用クロックRCLKに基づき、カウント値を更新するための乱数更新クロックRGKや、複数の乱数取得用クロックとなるラッチ用クロックRC1、RC2として、制御用クロックCCLKや内部システムクロックSCLK(制御用クロックCCLKを2分周したもの)とは異なる周期で信号状態が変化する発振信号を生成する。
乱数生成回路553は、たとえば16ビットのカウンタなどから構成され、クロック用フリップフロップ552から出力される乱数更新クロックRGKなどの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。たとえば乱数生成回路553は、所定のクロック端子への入力信号である乱数更新クロックRGKにおける立上りエッジに応答して、「0」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ加算するように数値データをカウントアップして行く。そして、「65535」までカウントアップした後には、「0」から初期値よりも1小さい最終値となる数値まで1ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
スタート値設定回路554は、第2乱数初期設定KRS2のビット番号[1−0]におけるビット値(図9(B)参照)に応じて、乱数生成回路553により生成されるカウント値におけるスタート値を設定する。たとえば、スタート値設定回路554は、第2乱数初期設定KRS2のビット番号[1−0]が“00”であればスタート値をデフォルト値である「0000H」に設定し、“10”であればIDナンバーに基づく値に設定し、“01”であればシステムリセット毎に変更される値に設定する。本実施の形態では、第2乱数初期設定KRS2のビット番号[1−0]が“10”に設定されており、乱数生成回路553により生成されるカウント値におけるスタート値としてIDナンバーに基づく値が設定される。
乱数列変更回路555は、乱数生成回路553により生成された数値データが一巡したときに、数値データの更新順である順列を所定の乱数更新規則に従った順列に変更可能とする回路である。たとえば、乱数列変更回路555は、乱数生成回路553から出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路555は、たとえばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの更新順である順列の変更を行なうことができる。
乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値(図9(A)参照)などに応じて、乱数列変更回路555における数値データの更新順を変更する設定を行なうための回路である。たとえば、乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]が“00”であれば2周目以降も乱数更新規則を変更しない設定とする一方、“01”であれば2周目以降はソフトウェアでの変更要求に応じて乱数更新規則を変更し、“10”であれば自動で乱数更新規則を変更する。本実施の形態では、第1乱数初期設定KRS1のビット番号[1−0]が“10”に設定されており、自動で乱数更新規則が変更される。
乱数列変更回路556は、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応してソフトウェアによる乱数更新規則の変更を行なう場合に、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数列変更レジスタRDSC(アドレス2034H)を用いて、乱数更新規則の変更を制御する。図13(A)は、乱数列変更レジスタRDSCの構成例を示している。図13(B)は、乱数列変更レジスタRDSCに格納される乱数列変更要求データの各ビットにおける設定内容の一例を示している。乱数列変更レジスタRDSCのビット番号[0]に格納される乱数列変更要求データRDSC0は、乱数更新規則をソフトウェアにより変更する場合に、乱数列の変更要求の有無を示している。図13(B)に示す例では、ソフトウェアにより乱数列の変更要求がないときに、乱数列変更要求データRDSC0のビット値が“0”となる一方、乱数列の変更要求があったときには、そのビット値が“1”となる。
図14は、乱数更新規則をソフトウェアにより変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたときに、乱数列変更要求データRDSC0が“1”であることに応答して、乱数更新規則を変更する。図14に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。この後、CPU505がROM506に格納されたユーザプログラムを実行することによって、所定のタイミングで乱数列変更レジスタRDSCのビット番号[0]に“1”が書き込まれたものとする。
そして、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応して、乱数列変更設定回路556が乱数列変更要求データRDSC0を読み出し、そのビット値が“1”であることに応答して、乱数更新規則を変更するための設定を行なう。このとき、乱数列変更設定回路556は、乱数生成回路553から出力されたカウント値順列RCNが所定の最終値に達したことに応じて、たとえば予め用意された複数種類の乱数更新規則のいずれかを選択することなどにより、乱数更新規則を変更する。図14に示す動作例では、乱数列変更回路555が乱数生成回路553から出力されたカウント値順列RCNにおける最終値に対応する数値データ「65535」を出力した後、乱数列変更要求データRDSC0に応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「65535→65534→…→0」を出力する。乱数列変更レジスタRDSCは、乱数列変更設定回路556により乱数列変更要求データRDSC0が読み出されたときに初期化される。そのため、再び乱数列変更レジスタRDSCのビット番号[0]にビット値“1”が書き込まれるまでは、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。
CPU505がROM506に格納されたユーザプログラムを実行することによって、乱数列変更レジスタRDSCのビット番号[0]に再びビット値“1”が書き込まれると、乱数更新規則が再度変更される。図14に示す動作例では、乱数列変更回路555が乱数列RSNにおける最終値に対応する数値データ「0」を出力したときに、乱数列変更要求データRDSC0としてビット値“1”が書き込まれたことに応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「0→2→…→65534→1→…→65535」を出力する。
図15は、乱数更新規則を自動で変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更設定回路556が自動的に乱数更新規則を変更する。図15に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。
そして、乱数変更回路555から出力された乱数列RSNが所定の最終値に達したときに、乱数列変更設定回路556は、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。或いは、乱数列変更設定回路556は、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図15に示す動作例では、1回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。その後、2回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「0→2→…→65534→1→…→65535」となる。図15に示す動作例では、3回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「65534→0→…→32768」となる。4回目の乱数更新規則の変更が行なわれたときには、乱数列変更回路555から出力される乱数列RSNが、「16383→49151→…→49150」となる。5回目の乱数更新規則の変更が行なわれたときには、乱数列変更回路555から出力される乱数列RSNが、「4→3→…→465531」となる。
ラッチ用フリップフロップ557Aは、たとえばD型フリップフロップなどを用いて構成される。ラッチ用フリップフロップ557Aでは、D入力端子にPIP510が備える入力ポートP0からの配線が接続され、クロック端子CKにラッチ用クロックRC1を伝送する配線が接続されている。本実施の形態では、入力ポートP0にスタートスイッチ7からのゲーム開始信号SS1が入力される。ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立上りエッジなどに応答して、ゲーム開始信号SS1を取り込み、ゲーム開始時ラッチ信号SL1として出力する。これにより、ラッチ用フリップフロップ557Aでは、ラッチ用クロックRC1の立上りエッジに同期して、ゲーム開始信号SS1がゲーム開始時ラッチ信号SL1として出力される。
なお、ゲーム開始信号SS1は、スタートスイッチ7から直接伝送されるものに限定されない。一例として、スタートスイッチ7からの出力信号からの出力信号がオン状態となっている時間を計測し、計測した時間が所定の時間(たとえば3ms)になったときに、ゲーム開始信号SS1を出力するタイマ回路を設けてもよい。
乱数ラッチセレクタ558Aは、ラッチ用フリップフロップ557Aから伝送されるゲーム開始時ラッチ信号SL1と、ソフトウェアによる乱数ラッチ要求信号とを取り込み、いずれかを乱数ラッチ信号LL1として選択的に出力する回路である。乱数ラッチセレクタ558Aは、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数値取込レジスタRDLT(アドレス2032H)を用いて、乱数ラッチ信号LL1の出力を制御する。乱数値取込レジスタRDLTは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、ソフトウェアにより乱数値レジスタ559Aに取り込むために用いられるレジスタである。乱数ラッチ選択レジスタRDLSは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、乱数値レジスタ559Aに、ソフトウェアにより取り込むか、入力ポートP0への信号入力により取り込むかの取込方法を示すレジスタである。
図16(A)は、乱数値取込レジスタRDLTの構成例を示している。図16(B)は、乱数値取込レジスタRDLTに格納される乱数値取込指定データの各ビットにおける設定内容の一例を示している。乱数値取込レジスタRDLTのビット番号[0]に格納される乱数値取込指定データRDLT0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに対する乱数値取込指定の有無を示している。図16(B)に示す例では、ソフトウェアにより乱数値レジスタR1Dに対する乱数値の取込指定がないときに、乱数値取込指定データRDLT0のビット値が“0”となる一方、乱数値の取込指定があったときには、そのビット値が“1”となる。
図17(A)は、乱数ラッチ選択レジスタRDLSの構成例を示している。図17(B)は、乱数ラッチ選択レジスタRDLSに格納される乱数ラッチ選択データの各ビットにおける設定内容の一例を示している。乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aへの取込方法を示している。図17(B)に示す例では、ソフトウェアによる乱数値取込指定データRDLT0の書き込みに応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合に、乱数ラッチ選択データRDLS0のビット値を“0”とする。これに対して、入力ポートP0への信号入力に応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合には、乱数ラッチ選択データRDLS0のビット値を“1”とする。本実施の形態では、乱数ラッチ選択データRDLS0のビット値が“1”とされており、入力ポートP0への信号入力に応じて乱数値となる数値データが乱数値レジスタR1Dに取り込まれる。
乱数値レジスタ559Aは、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として格納するレジスタである。図18(A)および(B)は、乱数値レジスタR1Dとなる乱数値レジスタ559Aの構成例を示している。なお、図18(A)は、乱数値レジスタR1Dの下位バイトR1D(L)を示し、図18(B)は、乱数値レジスタR1Dの上位バイトR1D(H)を示している。乱数値レジスタ559Aは16ビット(2バイト)のレジスタであり、16ビットの乱数値を格納することができる。
乱数値レジスタ559Aは、乱数ラッチセレクタ558Aから供給される乱数ラッチ信号LL1がオン状態となったことに応答して、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。乱数値レジスタ559Aは、CPU505から供給されるレジスタリード信号RRS1がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力する。これに対して、レジスタリード信号RRS1がオフ状態であるときには、常に同じ値(たとえば「65535H」など)を出力して、読出不能(ディセーブル)状態となればよい。また、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態である場合に、レジスタリード信号RRS1を受信不可能な状態となるようにしてもよい。さらに、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態となるより前にレジスタリード信号RRS1がオン状態となっている場合に、乱数ラッチ信号LL1を受信不可能な状態となるようにしてもよい。
乱数値レジスタ559Aは、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数ラッチフラグレジスタRDFM(アドレス2033H)と、乱数割込制御レジスタRDIC(アドレス2031H)とを用いて、乱数ラッチ時の動作管理や割込制御を可能にする。乱数ラッチフラグレジスタRDFMは、乱数値レジスタ559Aに対応して、乱数値となる数値データがラッチされたか否かを示す乱数ラッチフラグを格納するレジスタである。乱数割込制御レジスタRDICは、乱数値レジスタ559Aに乱数値となる数値データがラッチされたときに発生する割込の許可/禁止を設定するレジスタである。
図19(A)は、乱数ラッチフラグレジスタRDFMの構成例を示している。図19(B)は、乱数ラッチフラグレジスタRDFMに格納される乱数ラッチフラグデータの各ビットにおける設定内容の一例を示している。乱数ラッチフラグレジスタRDFMのビット番号[0]に格納される乱数ラッチフラグデータRDFM0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図19(B)に示す例では、乱数値レジスタR1Dに数値データが取り込まれていないときに(乱数値取込なし)、乱数ラッチフラグデータRDFM0のビット値が“0”となる一方、数値データが取り込まれたときには(乱数値取込あり)、そのビット値が“1”となる。乱数ラッチフラグデータRDFM0が“1”の状態、すなわち乱数値レジスタR1Dに数値データが取り込まれている状態では、新たな乱数値の取込要求が発生した場合でも、新たな数値データを乱数値レジスタR1Dに取り込まないようになっており、このような状態では、乱数値レジスタR1Dの数値データが読み出されて、乱数ラッチフラグデータRDFM0がクリアされるまで新たな数値データを乱数値レジスタR1Dに取り込むことが不可能となる。
図20(A)は、乱数割込制御レジスタRDICの構成例を示している。図20(B)は、乱数割込制御レジスタRDICに格納される乱数割込制御データの各ビットにおける設定内容の一例を示している。乱数割込制御レジスタRDICのビット番号[0]に格納される乱数割込制御データRDIC0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたときに発生する割込を、許可するか禁止するかの割込制御設定を示している。図20(B)に示す例では、乱数値レジスタR1Dへの取込時における割込を禁止する場合に(割込禁止)、乱数割込制御データRDIC0のビット値を“0”とする一方、この割込を許可する場合には(割込許可)、そのビット値を“1”とする。本実施の形態では、乱数割込制御データRDIC0のビット値が“0”に設定されており、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれても割込は発生しない。
メイン制御部41が備えるPIP510は、たとえば6ビット幅の入力専用ポートであり、専用端子となる入力ポートP0〜入力ポートP2と、機能兼用端子となる入力ポートP3〜入力ポートP5とを含んでいる。入力ポートP3は、CPU505等に接続される外部マスカブル割込端子XINTと兼用される。入力ポートP4は、CPU505等に接続される外部ノンマスカブル割込端子XNMIと兼用される。入力ポートP5は、シリアル通信回路511が使用する第1チャネル受信端子RXAと兼用される。入力ポートP3〜入力ポートP5の使用設定は、プログラム管理エリアに記憶される機能設定KFCSにより指示される。
PIP510は、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、入力ポートレジスタPI(アドレス2090H)などを用いて、入力ポートP0〜入力ポートP5の状態管理等を行なう。入力ポートレジスタPIは、入力ポートP0〜入力ポートP5のそれぞれに対応して、外部信号の入力状態を示すビット値が格納されるレジスタである。
図21(A)は、入力ポートレジスタPIの構成例を示している。図21(B)は、入力ポートレジスタPIに格納される入力ポートデータの各ビットにおける設定内容の一例を示している。入力ポートレジスタPIのビット番号[5]に格納される入力ポートデータPI5は、第1チャネル受信端子RXAと兼用される入力ポートP5における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[4]に格納される入力ポートデータPI4は、外部ノンマスカブル割込端子XNMIと兼用される入力ポートP4における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[3]に格納される入力ポートデータPI3は、外部マスカブル割込端子XINTと兼用される入力ポートP3における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[2]に格納される入力ポートデータPI2は、入力ポートP2における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[1]に格納される入力ポートデータPI1は、入力ポートP1における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[0]に格納される入力ポートデータPI0は、入力ポートP0における端子状態(オン/オフ)を示している。
図5に示すメイン制御部41が備えるアドレスデコード回路512は、メイン制御部41の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行なうための回路である。チップセレクト信号により、メイン制御部41の内部回路、或いは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU505からのアクセスが可能となる。
メイン制御部41が備えるROM506には、ゲーム制御用のユーザプログラムやセキュリティチェックプログラム506Aの他に、ゲームの進行を制御するために用いられる各種の選択用データ、テーブルデータなどが格納される。たとえば、ROM506には、CPU505が各種の判定や決定、設定を行なうために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ROM506には、CPU505が遊技制御基板40から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータなどが記憶されている。
メイン制御部41が備えるRAM507には、スロットマシン1におけるゲームの進行などを制御するために用いられる各種のデータを保持する領域として、遊技制御用データ保持エリア590が設けられている。RAM507としては、たとえばDRAMが使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要になる。CPU505には、このリフレッシュ動作を行なうためのリフレッシュレジスタが内蔵されている。たとえば、リフレッシュレジスタは8ビットからなり、そのうち下位7ビットはCPU505がROM506から命令フェッチするごとに自動的にインクリメントされる。したがって、リフレッシュレジスタにおける格納値の更新は、CPU505における1命令の実行時間ごとに行なわれることになる。
メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態が入力ポートから入力される。そしてメイン制御部41は、これら入力ポートから入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、メイン制御部41は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施の形態では、外部マスカブル割込端子XINTが、前述した電断検出回路48と接続されており、メイン制御部41は電断検出回路48から出力された電圧低下信号の入力に応じて後述する電断割込処理(メイン)を実行する。また、メイン制御部41は、CTC508に含まれるタイマ回路にてタイムアウトが発生したこと、すなわち一定時間間隔(本実施の形態では、約0.56ms)毎に後述するタイマ割込処理(メイン)を実行する。
また、メイン制御部41は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。本実施の形態では、タイマ割込処理(メイン)よりも電断割込処理(メイン)の方が優先順位が高く、これらの割込が同時に発生した場合には電断割込処理(メイン)が優先して実行される。
なお、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。たとえば、タイマ割込処理(メイン)の実行中に電圧低下信号が入力された場合に、その時点で電断割込処理(メイン)が実行されることはないが、実行中のタイマ割込処理(メイン)が終了した時点で、電圧低下信号の入力が継続している場合には、その時点で電断割込処理(メイン)が実行されることとなる。
メイン制御部41は、基本処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メイン制御部41は、電断検出回路48から出力された電圧低下信号の入力に応じて電断割込処理(メイン)を実行し、一定時間間隔(本実施の形態では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。
なお、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
メイン制御部41は、演出制御基板90に各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。
演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
なお、本実施の形態では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行なわれる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行なう出力制御部を演出制御基板90または他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行なう構成としてもよく、このような構成では、サブ制御部91および出力制御部の双方によって演出装置の出力制御が行なわれることとなる。
また、本実施の形態では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、たとえば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用してもよい。
演出制御基板90には、サブCPU91a、ROM91b、RAM91c、I/Oポート91dなどを備えたマイクロコンピュータにて構成され、演出の制御を行なうサブ制御部91、演出制御基板90に接続された液晶表示器51の表示制御を行なう表示制御回路92、演出効果LED52、リールLED55の駆動制御を行なうLED駆動回路93、スピーカ53、54からの音声出力制御を行なう音声出力回路94、電源投入時または電源遮断時にサブCPU91aにリセット信号を与えるリセット回路95、日付情報および時刻情報を含む時間情報を出力する時計装置97、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブ制御部91に対して出力する電断検出回路98が搭載されており、サブ制御部91は、メイン制御部から送信されるコマンドを受けて、演出を行なうための各種の制御を行なうとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
サブ制御部91は、メイン制御部41と同様に、割込機能を備えており、メイン制御部41からのコマンド受信時に割込を発生させて、メイン制御部41から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部91は、システムクロックの入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。また、サブ制御部91の割込端子の1つは、電断検出回路98と接続されており、サブ制御部91は、電断検出回路98から出力された電圧低下信号の入力に応じて電断割込処理(サブ)を実行する。
また、サブ制御部91は、メイン制御部41とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。なお、電断割込処理(サブ)の実行中には、コマンド受信割込処理も禁止されるが、電断割込処理(サブ)の契機となる割込が同時に発生した場合にはコマンド受信割込処理を優先して実行する。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。
本実施の形態のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、前面扉1bを開放させ、筐体1a内に設けられている電源ボックス100の電源スイッチ39および設定キースイッチ37を操作して、スロットマシン1の電源がON状態である場合には一旦OFF状態にし、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24にRAM507から読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がOFFされると、確定した表示値(設定値)がメイン制御部41のRAM507に格納され、遊技の進行が可能な状態に移行する。なお、電源スイッチ39を一旦OFF状態にし、設定キースイッチ37をON状態として電源スイッチ39をONさせる操作を行なうことにより、設定変更状態に移行されるため、当該操作をまとめて設定変更操作ともいう。
本実施の形態においては、前面扉1bを開放状態とすることにより設定変更操作を行なうことが可能となるため、当該前面扉1bが開閉体であるといえる。また、前面扉1bの開放状態を検出するためのドア開放検出スイッチ25が開閉状態検出手段であるといえる。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をON状態とすればよい。このような状況で設定キースイッチ37をON状態とすると、設定値表示器24にRAM507から読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をOFF状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
本実施の形態のスロットマシン1においては、メイン制御部41が電断検出回路48からの電圧低下信号を検出した際に、電断割込処理(メイン)を実行する。電断割込処理(メイン)では、レジスタを後述するRAM507のスタックに退避し、RAM507にいずれかのビットが1となる破壊診断用データ(本実施の形態では、5AH)、すなわち0以外の特定のデータを格納するとともに、RAM507の全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM507に格納する処理を行なうようになっている。なお、RAMパリティとはRAM507の該当する領域(本実施の形態では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM507の全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM507の全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、メイン制御部41は、その起動時においてRAM507の全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM507に記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。なお、RAM異常エラー状態は、通常のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更状態において新たな設定値が設定されるまで解除されることがない。
なお、本実施の形態では、RAM507に格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、メイン制御部41は、電源投入時においてRAM507のデータが正常であると判定した場合に、RAM507の格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM507に格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としてもよい。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であればよく、たとえば、入力ポートの状態などを全て電断前の状態に復帰させる必要はない。
また、サブ制御部91も電断検出回路98からの電圧低下信号を検出した際に、電断割込処理(サブ)を実行する。電断割込処理(サブ)では、レジスタを後述するRAM91cのスタックに退避し、RAM91cにいずれかのビットが1となる破壊診断用データを格納するとともに、RAM91cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM91cに格納する処理を行なうようになっている。
そして、サブ制御部91は、その起動時においてRAM91cの全ての領域に格納されたデータに基づいてRAMパリティを計算し、RAMパリティが0であることを条件に、RAM91cに記憶されているデータに基づいてサブ制御部91の処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)には、RAM異常と判定し、RAM91cを初期化するようになっている。この場合、メイン制御部41と異なり、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
なお、本実施の形態では、RAM91cに格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、サブ制御部91は、電源投入時においてRAM91cのデータが正常であると判定した場合に、RAM91cの格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM91cに格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としてもよい。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であればよく、入力ポートの状態や、演出が途中で中断された場合の途中経過などを全て電断前の状態に復帰させる必要はない。
次に、メイン制御部41のRAM507の初期化について説明する。メイン制御部41のRAM507の格納領域は、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、未使用領域、スタック領域に区分されている。
重要ワークは、各種表示器やLEDの表示用データ、I/Oの入出力データ、遊技時間の計時カウンタ等、BB終了時に初期化すると不都合があるデータが格納されるワークである。一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数、BB中のメダル払出総数等、BB終了時に初期化可能なデータが格納されるワークである。
特別ワークは、演出制御基板90へコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。設定値ワークは、内部抽選処理で抽選を行なう際に用いる設定値が格納されるワークである。非保存ワークは、各種スイッチ類の状態を保持するワークであり、起動時にRAM507のデータが破壊されているか否かに関わらず必ず値が設定されることとなる。
未使用領域は、RAM507の格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。スタック領域は、メイン制御部41のレジスタから退避したデータが格納される領域であり、このうちの未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施の形態においてメイン制御部41は、設定キースイッチ37がONの状態での起動時、RAM異常エラー発生時、BB終了時、設定キースイッチ37がOFFの状態での起動時においてRAM507のデータが破壊されていないとき、1ゲーム終了時の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行なう。
初期化1は、起動時において設定キースイッチ37がONの状態であり、設定変更状態へ移行する場合において、その前に行なう初期化、またはRAM異常エラー発生時に行なう初期化であり、初期化1では、RAM507の格納領域のうち、使用中スタック領域を除く全ての領域(未使用領域および未使用スタック領域を含む)が初期化される。
初期化1において初期化される情報には、たとえば、電断時にバックアップされていた情報(設定されていた賭数を特定するための情報、BB当選を特定するための情報など)が含まれる。これにより、初期化1が行なわれたときには、電断前に賭数が設定されていたとしても当該賭数が設定された状態に復帰されることがなく、また、電断前にBB当選していたとしてもBB当選状況に復帰されることがない。これにより、設定変更状態となる前の遊技状態を設定変更状態となった後に引き継がれることを防止することができ、遊技の公平性を担保することができる。
初期化2は、BB終了時に行なう初期化であり、初期化2では、RAM507の格納領域のうち、一般ワーク、未使用領域および未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がOFFの状態であり、かつRAM507のデータが破壊されていない場合において行なう初期化であり、初期化3では、非保存ワーク、未使用領域および未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行なう初期化であり、初期化4では、RAM507の格納領域のうち、未使用領域および未使用スタック領域が初期化される。
なお、本実施の形態では、初期化1を設定変更状態の移行前に行なっているが、設定変更状態の終了時に行なったり、設定変更状態移行前、設定変更状態終了時の双方で行なうようにしてもよい。この場合、設定値ワークを初期化してしまうと確定した設定値が失われてしまうこととなるので、設定変更状態終了時の初期化では、設定値ワークの初期化は行なわれない。
本実施の形態のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。本実施の形態では、後に説明するが、遊技状態として、レギュラーボーナス(以下ではRBと称す)、ビッグボーナス(以下ではBBと称す)、通常遊技状態があり、このうちRBやBBでは賭数の規定数として2が定められており、通常遊技状態では賭数の規定数として3が定められている。このため、遊技状態がRBやBBであれば、賭数として2が設定されるとゲームを開始させることが可能となり、通常遊技状態であれば、賭数として3が設定されるとゲームを開始させることが可能となる。なお、本実施の形態では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化されるようになっており、RBやBBでは賭数として2が定められた時点で全ての入賞ラインL1〜L5が有効化されることなり、通常遊技状態では賭数として3が設定された時点で全ての入賞ラインL1〜L5が有効化されることとなる。
本実施の形態のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施の形態の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインと呼ぶ)上に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであってもよいし、異なる図柄を含む組合せであってもよい。
入賞となる役の種類は、遊技状態に応じて定められているが、大別すると、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM507に設定されている必要がある。
なお、これら各役の当選フラグのうち、小役および再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
このスロットマシン1における役としては、図22に示すように、特別役としてビッグボーナス(以下ではビッグボーナスをBBとする)、レギュラーボーナス(以下ではレギュラーボーナスをRBとする)が、小役としてスイカ、チェリー、ベルが、再遊技役としてリプレイが定められている。
チェリーは、いずれの遊技状態においても右リールについて入賞ラインのいずれかに「白チェリー」の図柄が導出されたときに入賞となり、いずれの遊技状態においても1枚のメダルが払い出される。なお、「白チェリー」の図柄が右リールの上段または下段に停止した場合には、入賞ラインL2、L5または入賞ラインL3、L4の2本の入賞ラインにチェリーの組合せが揃うこととなり、2本の入賞ライン上でチェリーに入賞したこととなるので、2枚のメダルが払い出されることとなる。
スイカは、いずれの遊技状態においても入賞ラインのいずれかに「スイカ−スイカ−スイカ」の組合せまたは「スイカ−スイカ−BAR」の組合せが揃ったときに入賞となり、RBやBBでは15枚のメダルが払い出され、通常遊技状態では12枚のメダルが払い出される。ベルは、いずれの遊技状態においても入賞ラインのいずれかに「ベル−ベル−ベル」の組合せが揃ったときに入賞となり、RBやBBでは15枚のメダルが払い出され、通常遊技状態では10枚のメダルが払い出される。
リプレイは、通常遊技状態において入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組合せ、「BAR−リプレイ−リプレイ」の組合せ、または「黒7−リプレイ−リプレイ」の組合せのうちいずれかの組合せが揃ったときに入賞となる。リプレイが入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
RBは、通常遊技状態において入賞ラインのいずれかに「網7−網7−黒7」の組合せが揃ったときに入賞となり、遊技状態がRBに移行する。RBは、小役、特にベルの当選確率が高まることによって他の遊技状態よりも遊技者にとって有利となる遊技状態であり、RBが開始した後、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。
BBは、通常遊技状態において入賞ラインのいずれかに「黒7−黒7−黒7」の組合せ、「網7−網7−網7」の組合せまたは「白7−白7−白7」の組合せが揃ったときに入賞となる。
BBが入賞すると、遊技状態がBBに移行するとともに同時にRBに移行し、RBが終了した際に、BBが終了していなければ、再度RBに移行し、BBが終了するまで繰り返しRBに制御される。すなわちBB中は、常にRBに制御されることとなる。そして、BBは、当該BB中において遊技者に払い出したメダルの総数が465枚を超えたときに終了する。BBの終了時には、RBの終了条件が成立しているか否かに関わらずRBも終了する。
以下、本実施の形態の内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、スタートスイッチ7の検出時に内部抽選用の乱数値(0〜65535の整数)を取得する。詳しくは、RAM507に割り当てられた乱数値格納ワークの値を同じくRAM507に割り当てられた抽選用ワークに設定する。そして、遊技状態および特別役の持ち越しの有無に応じて定められた各役について、抽選用ワークに格納された数値データと、遊技状態、賭数および設定値に応じて定められた各役の判定値数に応じて行なわれる。
乱数値格納ワークは、スタートスイッチ7の操作と同時に乱数値レジスタR1Dにラッチされた数値データが格納される記憶領域であり、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、ラッチされた数値データがその後のタイマ割込処理(メイン)において読み出され、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
本実施の形態では、図22に示すように、遊技状態が、通常遊技状態であるか、RBやBBであるか、によって内部抽選の対象となる役が異なる。さらに遊技状態が通常遊技状態においては、特別役の持越中であるか否かによっても内部抽選の対象となる役が異なる。
遊技状態が通常遊技状態であり、いずれの特別役も持ち越されていない状態では、BB、RB、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態が通常遊技状態であり、いずれかの特別役が持ち越されている状態では、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態がRB(BB中を含む)では、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
なお、本実施の形態においては、BBに対応する図柄組合せが3種類、リプレイに対応する図柄組合せが3種類、スイカに対応する図柄組合せが2種類定められている例について説明したが、内部抽選では、図柄組合せ毎に対象役として読み出される。たとえば、BBについては、「黒7−黒7−黒7」の組合せ、「網7−網7−網7」の組合せ、「白7−白7−白7」の組合せが内部抽選の対象役として順に読み出される。リプレイやスイカについても、図柄組合せ毎に、対象役として順に読み出される。また、内部抽選で用いられる判定値数は、設定値1〜6に対応して、図柄組合せ毎に定められている。すなわち、当選率は、設定値1〜6に対応して、図柄組合せ毎に定められている。このため、内部抽選においては、設定値に対応して図柄組合せ毎に定められた当選率にしたがって、図柄組合せの導出(発生)が許容されることになる。
内部抽選では、内部抽選の対象となる役、現在の遊技状態および設定値に対応して定められた判定値数を、内部抽選用の乱数値(抽選用ワークの値)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM507に割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。なお、いずれの役および役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
次に、リール2L、2C、2Rの停止制御について説明する。
メイン制御部41は、リールの回転が開始したとき、およびリールが停止し、かつ未だ回転中のリールが残っているときに、ROM506Aに格納されているテーブルインデックスおよびテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行なう。
テーブルインデックスには、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。なお、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。なお、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
停止制御テーブルは、停止操作が行なわれたタイミング別の滑りコマ数を特定可能なデータである。本実施の形態では、リールモータ32L、32C、32Rに、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを168ステップ駆動させることでリール2L、2C、2Rが1周することとなる。そして、リール1周に対して16ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から0〜20の領域番号が割り当てられている。
一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から0〜20の図柄番号が割り当てられているので、0番図柄から20番図柄に対して、それぞれ0〜20の領域番号が順に割り当てられていることとなる。そして、停止制御テーブルには、領域番号別の滑りコマ数が所定のルールで圧縮して格納されており、停止制御テーブルを展開することによって領域番号別の滑りコマ数を取得できるようになっている。
前述のようにテーブルインデックスおよびテーブル作成用データを参照して作成される停止制御テーブルは、領域番号に対応して、各領域番号に対応する領域が停止基準位置(本実施の形態では、透視窓3の下段図柄の領域)に位置するタイミング(リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング)でストップスイッチ8L、8C、8Rの操作が検出された場合の滑りコマ数がそれぞれ設定されたテーブルである。
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスを取得する。具体的には、まずテーブルインデックスを参照し、内部当選状態に対応するインデックスデータを取得し、そして取得したインデックスデータに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリールが回転中の状態に対応する各リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して全てのリールについて停止制御テーブルを作成する。
また、いずれか1つのリールが停止したとき、またはいずれか2つのリールが停止したときには、リール回転開始時に取得したインデックスデータ、すなわちそのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリールおよび当該リールの停止位置の領域番号に対応する未停止リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して未停止のリールについて停止制御テーブルを作成する。
次に、メイン制御部41がストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明すると、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する滑りコマ数を取得する。そして、取得した滑りコマ数分リールを回転させて停止させる制御を行なう。
具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した滑りコマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行なう。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域から滑りコマ数分先の停止位置となる領域番号に対応する領域が停止基準位置(本実施の形態では、透視窓3の下段図柄の領域)に停止することとなる。
本実施の形態のテーブルインデックスには、一の遊技状態における一の内部当選状態に対応するインデックスデータとして1つのアドレスのみが格納されており、更に、一のテーブル作成用データには、一のリールの停止状況(および停止済みのリールの停止位置)に対応する停止制御テーブルの格納領域のアドレスとして1つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状態に対応するテーブル作成用データ、およびリールの停止状況(および停止済みのリールの停止位置)に対応する停止制御テーブルが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状態、およびリールの停止状況(および停止済みのリールの停止位置)に対して一意となる。このため、遊技状態、内部当選状態、リールの停止状況(および停止済みのリールの停止位置)の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行なわれることとなる。
また、本実施の形態では、滑りコマ数として0〜4の値が定められており、停止操作を検出してから最大4コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施の形態では、いずれかの役に当選している場合には、当選役を入賞ライン上に4コマの範囲で最大限引き込み、当選していない役が入賞ライン上に揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行なう一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行なう。これにより、停止操作が行なわれた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行なわれ、当選していない役は、最大4コマの引込範囲でハズシて停止させる制御が行なわれることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインに最大4コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行なう。
これにより、停止操作が行なわれた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行なわれ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行なわれ、当選していない役は、4コマの引込範囲でハズシて停止させる制御が行なわれることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。なお、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになっている。
なお、本実施の形態では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ライン上に揃える制御を行なっているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行なってもよい。
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行なわれた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行なわれる。なお、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。なお、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになっている。
本実施の形態においてメイン制御部41は、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行なうようになっている。なお、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行なうようになっている。
なお、本実施の形態では、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行なうようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行なうようにしてもよい。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例え、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
次に、メイン制御部41が演出制御基板90に対して送信するコマンドについて説明する。
本実施の形態では、メイン制御部41が演出制御基板90に対して、BETコマンド、クレジットコマンド、内部当選コマンド、リール回転開始コマンド、リール停止コマンド、入賞判定コマンド、払出開始コマンド、払出終了コマンド、遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、復帰コマンド、設定開始コマンド、確認開始コマンド、確認終了コマンド、操作検出コマンドを含む複数種類のコマンドを送信する。
これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブ制御部91は、種類データからコマンドの種類を判別できるようになっている。
BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されていない状態において、メダルが投入されるか、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。また、BETコマンドは、賭数の設定操作がなされたときに送信されるので、BETコマンドを受信することで賭数の設定操作がなされたことを特定可能である。
クレジットコマンドは、クレジットとして記憶されているメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されている状態において、メダルが投入されてクレジットが加算されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。また、内部当選コマンドは、スタートスイッチ7が操作されたときに送信されるので、内部当選コマンドを受信することでスタートスイッチ7が操作されたことを特定可能である。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行なわれる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行なわれた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞およびクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態を特定可能なコマンドであり、設定変更状態の終了時およびゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するとき、クレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が終了し、払出終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除、エラー状態の種類を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生およびその種類を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
復帰コマンドは、メイン制御部41が電断前の制御状態に復帰した旨を示すコマンドであり、メイン制御部41の起動時において電断前の制御状態に復帰した際に送信される。
設定開始コマンドは、設定変更状態の開始を示すコマンドであり、設定変更状態に移行する際に送信される。また、設定変更状態への移行に伴ってメイン制御部41の制御状態が初期化されるため、設定開始コマンドによりメイン制御部41の制御状態が初期化されたことを特定可能である。
確認開始コマンドは、設定確認状態の開始を示すコマンドであり、設定確認状態に移行する際に送信される。確認終了コマンドは、設定確認状態の終了を示すコマンドであり、設定確認状態の終了時に送信される。
操作検出コマンドは、操作スイッチ類(1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R)の検出状態(ON/OFF)を示すコマンドであり、一定間隔毎に送信される。
これらコマンドのうち設定開始コマンド、RAM異常または乱数回路異常を示すエラーコマンド、復帰コマンドは、起動処理において割込が許可される前の段階で生成され、RAM507の特別ワークに割り当てられた特定コマンド送信用バッファに格納され、直ちに送信される。
設定開始コマンド、RAM異常または乱数回路異常を示すエラーコマンド、復帰コマンド、操作検出コマンド以外のコマンドは、ゲーム処理においてゲームの進行状況に応じて生成され、RAM507の特別ワークに設けられた通常コマンド送信用バッファに一時格納され、タイマ割込処理(メイン)において実行するコマンド送信処理において送信される。
操作検出コマンドは、コマンド送信処理が5回実行される毎に生成され、前述の特定コマンド送信用バッファに格納され、直ちに送信される。また、通常コマンド送信用バッファに未送信のコマンドが格納されている状態で操作検出コマンドの送信時期に到達した場合には、操作検出コマンドの送信を優先し、通常コマンド送信用バッファに格納されている未送信のコマンドは、次回のコマンド送信処理において送信されるようになっており、1度のコマンド送信処理において複数のコマンドが送信されることがないようになっている。
次に、メイン制御部41が演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブ制御部91は、メイン制御部41からのコマンドを受信した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
サブ制御部91は、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の出力制御を行なう。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLEDの点灯態様等、これら演出装置の制御パターンが登録されており、サブ制御部91は、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行なう。これにより演出パターンおよび遊技の進行状況に応じた演出が実行されることとなる。
なお、サブ制御部91は、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
特に、本実施の形態では、演出の実行中に賭数の設定操作がなされたとき、すなわちサブ制御部91が、賭数が設定された旨を示すBETコマンドを受信したときに、実行中の演出を中止するようになっている。このため、遊技者が、演出を最後まで見るよりも次のゲームを進めたい場合には、演出がキャンセルされ、次のゲームを開始できるので、このような遊技者に対して煩わしい思いをさせることがない。また、演出の実行中にクレジットまたは賭数の精算操作がなされたとき、すなわちサブ制御部91が、ゲームの終了を示す遊技状態コマンドを受信した後、ゲームの開始を示す内部当選コマンドを受信する前に、払出開始コマンドを受信した場合には、実行中の演出を中止するようになっている。クレジットや賭数の精算を行なうのは、遊技を終了する場合であり、このような場合に実行中の演出を終了させることで、遊技を終了する意志があるのに、不要に演出が継続してしまわないようになっている。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブ制御部91は、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行なわれることがある。
次に、本実施の形態におけるメイン制御部41が実行する各種制御内容を、図23〜図38に基づいて以下に説明する。
メイン制御部41は、リセット要因が発生すると、図23のフローチャートに示す起動処理(メイン)を行なう。なお、リセット要因としては、電源投入時において外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するシステムリセットや、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなどのユーザリセットがある。このため、起動処理(メイン)は、電源投入に伴うメイン制御部41の起動時およびメイン制御部41の不具合に伴う再起動時に行なわれる処理である。
起動処理(メイン)では、まず、CPU505がROM506から読み出したセキュリティチェックプログラム506Aに基づき、図24に示すセキュリティチェック処理を実行する(Sa1)。このとき、メイン制御部41は、セキュリティモードとなり、ROM506に記憶されているゲーム制御用のユーザプログラムは未だ実行されない状態となる。
セキュリティチェック処理では、図24に示すように、まず、セキュリティモードに制御する時間(セキュリティ時間)を決定するための処理を実行する。このとき、CPU505は、ROM506のプログラム管理エリアに記憶されるセキュリティ時間設定KSESのビット番号[2−0]におけるビット値を読み出す(Sa101)。そして、この読出値が“000”であるか否かを判定する(Sa102)。
Sa102にて読出値が“000”と判定された場合には、定常設定時間を既定の固定時間に設定する(Sa103)。ここで、定常設定時間は、セキュリティ時間のうち、システムリセットの発生等に基づくセキュリティチェック処理の実行回数(メイン制御部41がセキュリティモードとなる回数)に関わりなく、一定となる時間成分である。また、固定時間は、セキュリティ時間のうち、メイン制御部41の仕様などに基づいて予め定められた不変時間成分であり、たとえばセキュリティ時間として設定可能な最小値となるものであればよい。
Sa102にて読出値が“000”以外と判定された場合には、その読出値に対応して、固定時間に加えて図10(D)に示す設定内容により選択される延長時間を、定常設定時間に設定する(Sa104)。こうして、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、固定時間に加えて予め選択可能な複数の延長時間のいずれかに設定することができる。
Sa103、Sa104の処理のいずれかを実行した後には、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を読み出す(Sa105)。そして、この読出値が“00”であるか否かを判定する(Sa106)。
Sa106にて読出値が“00”と判定された場合には、定常設定時間をセキュリティ時間に設定する(Sa107)。これに対して、読出値が“00”以外と判定された場合には、その読出値に対応して決定される可変設定時間を、定常設定時間に加算してセキュリティ時間に設定する(Sa108)。ここで、可変設定時間は、セキュリティ時間のうち、セキュリティチェック処理が実行されるごとに変化する時間成分であり、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“01”(ショートモード)であるか“10”(ロングモード)であるかに応じて異なる所定の時間範囲で変化する。
たとえば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値がメイン制御部41に内蔵された可変セキュリティ時間用レジスタに格納される場合には、Sa108の処理において、可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(たとえばハッシュ関数)に代入して得られた値を用いることなどにより、可変設定時間がシステムリセット毎に所定の時間範囲でランダムに変化するように決定されればよい。こうして、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、システムリセットの発生等に基づくセキュリティチェック処理が実行されるごとに所定の時間範囲で変化させることができる。
ここで、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であり、かつ、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、ステップS4にて設定される延長時間と、ステップS8にて設定される可変設定時間との双方が、固定時間に加算されて、セキュリティ時間が決定されることになる。
Sa107、Sa108の処理のいずれかを実行した後には、ROM506の所定領域に記憶されたセキュリティコードを読み出す(Sa109)。ここで、ROM506の所定領域には、記憶内容のデータを所定の演算式によって演算した演算結果のセキュリティコードが予め記憶されている。セキュリティコードの生成方法としては、たとえばハッシュ関数を用いてハッシュ値を生成するもの、エラー検出コード(CRCコード)を用いるもの、エラー訂正コード(ECCコード)を用いるもののいずれかといった、予め定められた生成方法を使用すればよい。また、ROM506のセキュリティコード記憶領域とは異なる所定領域には、セキュリティコードを演算により特定するための演算式が、暗号化して予め記憶されている。
ステップSa109の処理に続いて、暗号化された演算式を復号化して元に戻す(Sa110)。その後、Sa110で復号化した演算式により、ROM506の所定領域における記憶データを演算してセキュリティコードを特定する(Sa111)。このときセキュリティコードを特定するための演算に用いる記憶データは、たとえばROM506の記憶データのうち、セキュリティチェックプログラム506Aとは異なるユーザプログラムの全部又は一部に相当するプログラムデータ、あるいは、所定のテーブルデータを構成する固定データの全部又は一部であればよい。そして、Sa109にて読み出したセキュリティコードと、Sa111にて特定されたセキュリティコードとを比較する(Sa112)。このときには、比較結果においてセキュリティコードが一致したか否かを判定する(Sa113)。
Sa113にてセキュリティコードが一致しない場合には、ROM506に不正な変更が加えられたと判断して、CPU505の動作を停止状態(HALT)へ移行させる。これに対して、Sa113にてセキュリティコードが一致した場合には、Sa107やSa108の処理で設定されたセキュリティ時間が経過したか否かを判定する(Sa114)。このとき、セキュリティ時間が経過していなければ、Sa114の処理を繰り返し実行して、セキュリティ時間が経過するまで待機する。そして、Sa114にてセキュリティ時間が経過したと判定された場合には、セキュリティチェック処理を終了し、CPU505に内蔵されたプログラムカウンタの値をROM506におけるユーザプログラムの先頭アドレス(アドレス0000H)に設定することなどにより、メイン制御部41の動作状態がセキュリティモードからユーザモードへと移行し、ROM506に記憶されたユーザプログラムの実行が開始されることになる。
メイン制御部41は、Sa1のセキュリティチェック処理の終了後、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sa2)、IレジスタおよびIYレジスタの値を初期化する(Sa3)。IレジスタおよびIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM507の格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM507へのアクセスを許可し(Sa4)、RAM507の全ての格納領域(未使用領域および未使用スタック領域を含む)のRAMパリティを計算し(Sa5)、打止スイッチ36、自動精算スイッチ29の状態を取得し、メイン制御部41の特定のレジスタに打止機能、自動精算機能の有効/無効を設定する(Sa6)。
次いで、Sa5のステップにおいて計算したRAMパリティが0か否かを判定する(Sa7)。正常に電断割込処理(メイン)が行なわれていれば、RAMパリティが0になるはずであり、Sa7のステップにおいてRAMパリティが0でなければ、RAM507に格納されているデータが正常ではなく、この場合には、RAM507の格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa30)、設定キースイッチ37がONか否かを判定し(Sa31)、設定キースイッチ37がONであれば、プログラム管理エリアに記憶されている第1乱数初期設定KRS1や第2乱数初期設定KRS2を読み出して、図25に示す乱数回路設定処理を実行した後(Sa25)、乱数回路509における動作異常の有無を検査するために図26に示す乱数回路異常検査処理を実行する(Sa26)。
図25に示す乱数回路設定処理では、まず、第1乱数初期設定KRS1のビット番号[3]におけるビット値に基づき、乱数回路509を使用するための設定を行なう(Sa201)。本実施の形態では、第1乱数初期設定KRS1のビット番号[3]におけるビット値が予め“1”とされており、このビット値に対応して乱数回路509を使用する設定が行なわれる。続いて、第1乱数初期設定KRS1のビット番号[2]におけるビット値に基づき、乱数回路509における乱数更新クロックRGKの設定を行なう(Sa202)。本実施の形態では、第1乱数初期設定KRS1のビット番号[2]におけるビット値が予め“1”とされていることに対応して、乱数用クロック生成回路43で生成された乱数用クロックRCLKを2分周して乱数更新クロックRGKとする設定が行なわれる。
Sa202での設定を行なった後には、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値に基づき、乱数回路509における乱数更新規則の設定を行なう(Sa203)。本実施の形態では、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値として予め“10”が設定されており、乱数列RSNにおける乱数更新規則を2周目以降は自動で変更する設定がなされる。
続いて、第2乱数初期設定KRS2のビット番号[1]におけるビット値に基づき、乱数値となる数値データにおける起動時スタート値を決定する(Sa204)。本実施の形態では、第2乱数初期設定KRS2のビット番号[1]におけるビット値として予め“1”が設定されており、乱数のスタート値をIDナンバーに基づく値とする設定がなされる。
さらに、第2乱数初期設定KRS2のビット番号[0]におけるビット値に基づき、乱数値となる数値データのスタート値をシステムリセット毎に変更するか否かの設定を行なう(Sa205)。本実施の形態では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“0”とされており、Sa204にて設定した起動時スタート値をそのまま用いて、乱数回路509におけるスタート値としている。Sa205の処理による設定が完了すると、乱数回路509では乱数値の生成動作が開始されることとなる。なお、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“1”とされている場合には、乱数のスタート値をシステムリセット毎に変更する設定がなされる。この場合には、たとえば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値がメイン制御部41に内蔵された乱数スタート値用レジスタに格納される場合には、Sa205の処理において、乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(たとえばハッシュ関数)に代入して得られた値を用いることなどにより、乱数のスタート値がシステムリセット毎に所定の数値範囲(たとえば乱数生成回路553にて生成されるカウント値順列RCNに含まれる数値データの全部又は一部を含む範囲)でランダムに変化するように決定されればよい。
Sa205の処理を実行した後には、たとえば乱数値レジスタR1Dや乱数値レジスタR2Dに格納されている数値データを読み出すことなどにより、乱数ラッチフラグレジスタRDFMのビット番号[1]やビット番号[0]に格納される乱数ラッチフラグデータRDFM1や乱数ラッチフラグデータRDFM0のビット値を“0”として、各乱数ラッチフラグをオフ状態にクリアする(ステップSa206)。一例として、乱数ラッチフラグデータRDFM1と乱数ラッチフラグデータRDFM0について、それぞれの値が“1”であるか“0”であるかを判定し、その値が“1”であれば、対応する乱数値レジスタの読み出しを行なうことにより、乱数ラッチフラグをオフ状態とすればよい。あるいは、乱数ラッチフラグデータRDFM1や乱数ラッチフラグデータRDFM0の値にかかわらず、乱数値レジスタR1Dと乱数値レジスタR2Dの読み出しを行なうことにより、各乱数ラッチフラグをオフ状態としてもよい。なお、ステップSa206の処理により乱数値レジスタR1Dや乱数値レジスタR2Dから読み出された数値データは、内部抽選には使用せず、そのまま破棄(消去)すればよい。こうしたステップSa206の処理による設定が完了すると、乱数回路509では乱数値の生成動作が開始されればよい。
このように、遊技制御の実行が開始されるときには、ステップSa206の処理において、乱数値レジスタから数値データを読出可能であり、各乱数ラッチフラグをオフ状態に設定することができる。これにより、電源投入時の電源電圧が不安定な状態で誤って乱数値レジスタに格納された数値データが、乱数値として取得されてしまうことを防止できる。
なお、乱数回路設定処理による設定は、CPU505の処理が介在することなく、乱数回路509がプログラム管理エリアの記憶データに基づき自律的に行なうようにしてもよい。この場合、乱数回路509は、メイン制御部41がセキュリティモードとなっているときには初期設定を行なわず、乱数値の生成動作が行なわれないようにしてもよい。そして、メイン制御部41にてCPU505がROM506に記憶されたユーザプログラムを読み出してユーザモードが開始されたときに、たとえばCPU505から乱数回路509に対して初期設定を指示する制御信号が伝送されたことなどに応答して、乱数回路509が初期設定を行なってから乱数値の生成動作を開始するようにしてもよい。また、特に乱数回路509がメイン制御部41に外付けされる場合などには、メイン制御部41がセキュリティモードとなっているときでも、乱数回路509がCPU505における処理とは独立して、プログラム管理エリアの記憶データに基づく初期設定を行なってから、乱数値の生成動作を開始するようにしてもよい。
図26に示す乱数回路異常検査処理では、まず乱数用クロック異常判定カウンタをクリアして、そのカウント値である乱数用クロック異常判定カウント値を「0」に初期化する(Sa301)。続いて、内部情報レジスタCIFのビット番号[4]に格納されている内部情報データCIF4を読み出す(Sa302)。そして、Sa302での読出値が“1”であるか否かを判定する。このとき、乱数回路509が備える周波数監視回路551によって、乱数用外部クロック端子ERCからの乱数用クロックRCLKに周波数異常が検知された場合には、内部情報データCIF4としてビット値“1”が書き込まれる。
そこで、Sa303にて読出値が“1”と判定された場合には、乱数用クロック異常判定カウント値を1加算するように更新する(Sa304)。このときには、Sa304での更新後におけるカウント値が所定のクロック異常判定値に達したか否かを判定する(Sa305)。ここで、クロック異常判定値は、周波数監視回路551により乱数用クロックRCLKの周波数異常が連続して検知された場合にクロック異常と判定するために予め定められた数値であればよい。Sa305にてクロック異常判定値に達していなければ、Sa302の処理に戻り、再び内部情報データCIF4のビット値に基づく判定を行なう。
Sa305にてクロック異常判定値に達した場合には、乱数回路異常を示すエラーコードをレジスタに設定し(Sa306)、乱数回路異常検査処理を終了する。
Sa303にて読出値が“0”と判定された場合には、乱数値異常判定カウンタをクリアして、そのカウント値である乱数値異常判定カウント値を「0」に初期化する(Sa307)。なお、Sa303の処理では、Sa302にて読み出した内部情報データCIF4のビット値が複数回(たとえば2回など)連続して“0”となったときに、読出値が“0”であると判定してもよい。
Sa307の処理に続いて、乱数値における異常の有無をチェックするために用いるチェック値を、初期値「0000H」に設定する(Sa308)。そして、乱数回路509が備える乱数値レジスタR1Dとなる乱数値レジスタ559Aから、格納されている乱数値となる数値データを読み出す(Sa309)。たとえば、Sa309の処理では、乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0のビット値を“0”として、ソフトウェアによる乱数値の取り込みを指定する。続いて、乱数値取込指定レジスタRDLTのビット番号[0]に格納される乱数値取込指定データRDLT0のビット値を“1”として、乱数値レジスタR1Dへの取り込みを指定する。なお、乱数値取込指定レジスタRDLTのビット番号[0]におけるビット値を“1”とすることは、CPU505から乱数回路509に対して数値データの取り込み(ラッチ)を指示するラッチ信号を出力することに相当する。その後、乱数値レジスタR1Dに供給するレジスタリード信号RRS1をオン状態とすることにより、格納されている乱数値となる数値データを読み出すようにすればよい。
Sa309にて数値データを読み出した後には、その読出値を乱数検査基準値に設定する(Sa310)。続けて、さらに乱数値レジスタ559Aから乱数値となる数値データを読み出す(Sa311)。なお、Sa311での読出動作は、Sa309での読出動作と同様の手順で行なわれればよい。また、Sa309での読出動作と、Sa311での読出動作との間には、乱数回路509で生成される乱数列RSNにおける数値データが変化するために十分な遅延時間を設けるとよい。Sa311にて数値データを読み出した後には、乱数検査基準値と、Sa311での読出値との排他的論理和演算を実行する(Sa312)。また、Sa312での演算結果と、チェック値との論理和演算を実行し、演算結果を新たなチェック値とするように更新させる(Sa313)。たとえば、チェック値はRAM507の所定領域に記憶しておき、Sa313の処理が実行される毎に、その処理で得られた演算結果を新たなチェック値として保存すればよい。これにより、乱数値レジスタ559Aから読み出した数値データにおける全ビットの変化が記録され、複数回の読出中に少なくとも1回は値が変化したビットであれば、チェック値において対応するビット値が“1”となる。
そこで、チェック値が「FFFFH」となったか否かを判定し(Sa314)、なっていれば、全ビットについてビット値の変化が認められることから、乱数値が正常に更新されていると判断して、乱数回路異常検査処理を終了する。なお、乱数値が正常に更新されていることを確認できた場合には、乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0のビット値を“1”として、入力ポートP0への信号入力に応じた乱数値レジスタR1Dへの乱数値取込を、指示するよう設定される。本実施の形態では、入力ポートP0にスタートスイッチ7からのゲーム開始信号SS1を伝送する配線が接続される。これにより、ゲーム開始信号SS1がオン状態となったときに乱数値レジスタR1Dへの乱数値取込を行なうことができる。
Sa314にてチェック値が「FFFFH」以外と判定された場合には、乱数値異常判定カウント値を1加算するように更新する(Sa315)。このときには、Sa315での更新後におけるカウント値が所定の乱数値異常判定値に達したか否かを判定する(Sa316)。ここで、乱数値異常判定値は、乱数回路509が正常動作していれば、乱数値レジスタ559Aから読み出される数値データの全ビットが少なくとも1回は変化するのに十分な判定回数となるように、予め定められた数値であればよい。Sa316にて乱数値異常判定値に達していなければ、Sa311の処理に戻り、再び乱数回路509から乱数値となる数値データを読み出して異常の有無をチェックするための判定などを行なう。
Sa316にて乱数値異常判定値に達した場合には、乱数回路異常を示すエラーコードをレジスタに設定し(Sa317)、乱数回路異常検査処理を終了する。
なお、乱数回路異常検査処理は、CPU505が実行するものに限定されず、CPU505以外のメイン制御部41における内蔵回路により乱数回路異常検査処理が実行されてもよい。一例として、乱数回路509が乱数回路異常検査処理を実行する機能を有し、乱数用クロックRCLKの周波数異常が検知されたときや、乱数値の異常が検知されたときに、エラーの発生をCPU505に通知するようにしてもよい。また、乱数回路異常検査処理は、たとえばメイン制御部41にてタイマ割込みが発生する毎に、乱数回路異常検査処理の一部又は全部が実行されるようにしてもよい。
Sa26のステップにおける乱数回路異常検査処理の後、乱数回路異常か否かを判定する(Sa27a)。乱数回路異常か否かは、乱数回路異常を示すエラーコードが設定されているか否かによって判定する。Sa27aのステップにおいて乱数異常と判定された場合には、乱数回路異常を示すエラーコマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信し(Sa22)、割込を許可して(Sa23)、エラー処理、すなわちRAM異常エラー状態に移行する。
Sa27aのステップにおいて乱数異常ではないと判定された場合には、ドア開放検出スイッチからの検出信号に基づき、前面扉1bが開放状態であるか否か判定する(Sa27b)。
Sa27bのステップにおいて前面扉1bが開放状態でないと判定されたとき、すなわち閉じた状態(閉鎖状態)であると判定されたときには、設定キースイッチがON状態であるが前面扉1bが開放状態でない旨を示す、設定時扉閉状態フラグを設定し(Sa27c)、Sa16の処理へ移行する。設定時扉閉状態フラグが設定されているときには、後述するように、所定のタイミングで遊技制御の進行が停止されて不能動化される。
このように、Sa27bでは、電源スイッチ39がOFFからONとなったとき(電源投入時)に、設定キースイッチ37がONを特定するための検出信号が出力されている特定操作状態となったときの前面扉1bの開閉状態が判定され、前面扉1bが開放状態でないと判定されたときには、不正行為とみなし、設定変更状態に制御されることがない。すなわち、本来であれば前面扉1bが開放状態でなければ、電源スイッチ39や設定キースイッチ37を操作できず特定操作状態にも成り得ないところ、特定操作状態となったときに前面扉1bが開放状態となっておらず不正行為が行なわれた可能性があるときには、設定変更状態に制御されることがない。これにより、不正行為によって設定変更状態に制御されて、設定変更が行なわれることを確実に防止することができる。
また、図2で説明したように、ドア開放検出スイッチ25と、設定変更操作を行なうための設定キースイッチ37、リセット/設定スイッチ38、および電源スイッチ39が搭載された電源ボックス100とが、各々、筐体1a内の異なる側面に設けられているため、ドア開放検出スイッチ25と電源ボックス100との双方に対して不正行為を行なうことの困難性が高められている。
さらに、前面扉1bが筐体1aに対して閉鎖状態でありながら、ドア開放検出スイッチ25により開放状態と同じ検出信号が出力されるようにする不正行為が考えられる。しかし、前述したように、ドア開放検出スイッチ25として反射型の光センサを採用している。このため、上記不正行為を行なうためには、たとえば反射部材を取り除くなどといった困難性を伴う。また、反射部材が取り除かれているか否かについては、視覚により認識することができるため、不正行為が行なわれたことを容易に把握することができる。よって、前面扉1bが筐体1aに対して閉鎖状態でありながら、ドア開放検出スイッチ25により開放状態と同じ検出信号が出力されるようにするような不正行為を防止することができる。
一方、Sa27bのステップにおいて前面扉1bが開放状態であると判定されたときには、設定開始コマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信する(Sa28)。次いで、割込を許可して(Sa29)、設定変更処理、すなわち設定変更状態に移行する。設定変更処理では、前面扉1bの開閉状態に関わらず、設定キースイッチ37がOFFされるまで継続される。すなわち、一旦設定変更処理に移行されてから、設定キースイッチ37がOFFされて設定終了条件が成立するまで、前面扉1bの開閉状態に関わらず、当該設定変更処理が維持される。このため、不正行為ではなく正規に電源スイッチ39や設定キースイッチ37の操作が行なわれて設定変更状態に制御された後においては、設定変更途中において、たとえばドア開放検出スイッチに誤って手が触れるなどして前面扉1bが閉鎖状態であると誤検出されたとしても、当該設定変更状態を維持させて、確実に設定変更を行なうことができる。このため、誤操作によって再度、電源を落として最初から設定変更状態としなければならないといった煩わしさを遊技場管理者に抱かせてしまうことがない。
Sa31のステップにおいて設定キースイッチ37がOFFであれば、RAM異常を示すエラーコードをレジスタに設定し(Sa32)、RAM異常を示すエラーコマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信し(Sa33)、割込を許可して(Sa34)、エラー処理、すなわちRAM異常エラー状態に移行する。
Sa7のステップにおいて、RAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa8)。正常に電断割込処理(メイン)が行なわれていれば、破壊診断用データが設定されているはずであり、Sa8のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM507のデータが正常ではないので、Sa30のステップに移行して初期化1を実行し、その後、Sa31のステップにおいて設定キースイッチ37がONであれば、乱数回路設定処理(Sa25)、乱数回路異常検査処理(Sa26)を順次行ない、乱数回路異常であれば、乱数回路異常を示すエラーコマンドの送信(Sa22)の後、割込を許可して(Sa23)、エラー処理に移行する。一方、乱数回路異常でなければ、設定開始コマンドの送信(Sa28)の後、割込を許可して(Sa29)、設定変更処理に移行する。また、Sa31のステップにおいて設定キースイッチ37がOFFであれば、RAM異常を示すエラーコードの設定(Sa32)、RAM異常を示すエラーコマンドの送信(S33)の後、割込を許可して(Sa34)、エラー処理に移行する。
Sa8のステップにおいて破壊診断用データが正常であると判定した場合には、RAM507のデータは正常であるので、破壊診断用データをクリアし(Sa9)、RAM507の非保存ワーク、未使用領域および未使用スタック領域を初期化する初期化3を行なった後(Sa10)、設定キースイッチ37がONか否かを判定し(Sa11)、設定キースイッチ37がONであれば、Sa24のステップに移行して初期化1を実行し、乱数回路設定処理(Sa25)、乱数回路異常検査処理(Sa26)を順次行ない、乱数回路異常であれば、乱数回路異常を示すエラーコマンドの送信(Sa22)の後、割込を許可して(Sa23)、エラー処理に移行する。一方、乱数回路異常でなければ、設定開始コマンドの送信(Sa28)の後、割込を許可して(Sa29)、設定変更処理に移行する。
Sa11のステップにおいて設定キースイッチ37がOFFであれば、Sa25のステップと同じ乱数回路設定処理(Sa13)、Sa26のステップと同じ乱数回路異常検査処理(Sa14)を実行し、乱数回路異常か否かを判定する(Sa15)。
Sa15のステップにおいて乱数回路異常であると判定された場合には、乱数回路異常を示すエラーコマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信し(Sa22)、割込を許可して(Sa23)、エラー処理、すなわちRAM異常エラー状態に移行する。
Sa15のステップにおいて乱数回路異常ではないと判定された場合には、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa16)、復帰コマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信する(Sa17)。そして、乱数ラッチフラグレジスタの値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sa18)、乱数値がラッチされていなければSa20のステップに進み、乱数値がラッチされていれば、乱数値レジスタ559Aから格納されている数値データを読み出し(Sa19)、Sa20のステップに進む。なお、Sa19のステップにおいて乱数値レジスタ559から数値データが読み出されると乱数ラッチフラグレジスタがクリアされ、新たな数値データの取込が許可されることとなる。また、Sa19のステップにおいては、数値データを読み出すものの、読み出した数値データを用いる訳ではなく、スタートスイッチ7の操作に応じて新たな数値データの取込を可能とするためにダミーとして読み出すものである。
Sa20のステップでは、復帰コマンドを特定コマンド送信用バッファに設定し、サブ制御部91に対して送信し、その後、割込を許可して(Sa21)、電断前の最後に実行していた処理に戻る。
図27は、メイン制御部41が実行するエラー処理の制御内容を示すフローチャートである。
エラー処理では、まず、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、レジスタに格納されているエラーコードを遊技補助表示器12に表示し(Sb2)、エラーコードがRAM異常エラーまたは乱数回路異常を示すエラーコードであるか否かを判定し(Sb3)、RAM異常エラーまたは乱数回路異常を示すエラーコードである場合には、いずれの処理も行なわないループ処理に移行する。
Sb3のステップにおいてRAM異常エラーを示すエラーコードでも乱数回路異常を示すエラーコードでもないと判定された場合には、エラー状態の発生およびその種類を示すエラーコマンドを通常コマンド送信用バッファに設定する(Sb4)。Sb4のステップで設定されたエラーコマンドは、その後のタイマ割込処理(メイン)にてサブ制御部91に対して送信される。
次いで、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb5)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb6)、リセットスイッチ23の操作も検出されていなければ、Sb5のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb5のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb6のステップにおいてリセットスイッチ23の操作が検出された場合には、レジスタに格納されているエラーコードをクリアし(Sb7)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させ(Sb8)、エラー状態が解除された旨を示すエラーコマンドを通常コマンド用送信バッファに設定して(Sb9)、もとの処理に戻る。Sb9で設定されたエラーコマンドは、その後のタイマ割込処理(メイン)にてサブ制御部91に対して送信される。
このようにエラー処理においては、RAM異常、乱数回路異常以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常や乱数回路異常によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除され、元の状態に復帰することはない。
図28は、メイン制御部41が実行する設定変更処理の制御内容を示すフローチャートである。
設定変更処理では、まず、RAM507の設定値ワークに格納されている設定値を読み出して、読み出した値を表示値とし(Sc1)、表示値が設定可能な範囲(1〜6)外か否かを判定し(Sc2)、表示値が設定可能な範囲内であればSc4のステップに進み、表示値が設定可能な範囲外であれば、表示値を1に補正し、Sc4のステップに進む。
Sc4のステップでは、設定値表示器24に表示値を表示させた後、リセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態となり(Sc5、Sc6)、Sc5のステップにおいてリセット/設定スイッチ38のonが検出されると、操作スイッチの立上りを示す立上りエッジをクリアし(Sc7)、表示値を1加算し(Sc8)、Sc2のステップに戻る。
また、Sc6のステップにおいてスタートスイッチ7のonが検出された場合には、立上りエッジをクリアし(Sc9)、設定値表示器24に表示されている値を0に更新し(Sc10)、設定キースイッチ37がOFFの状態となるまで待機する(Sc11)。
Sc11のステップにおいて設定キースイッチ37のOFFが判定されると、表示値を設定値ワークに格納して(Sc12)、遊技状態コマンドを生成し、コマンド送信用バッファに設定する(Sc13)。Sc13のステップにおいて設定された遊技状態コマンドは、その後のタイマ割込処理(メイン)にてサブ制御部91に対して送信される。
Sc14のステップにおいては、遊技を不能動化させるための設定時扉閉状態フラグや不能化フラグが設定されているか否か判定する。Sc14のステップにおいて当該フラグが設定されていないと判定されたときには、そのままゲーム処理に移行する。一方、Sc14のステップにおいて当該フラグが設定されていると判定されたときには、設定されている当該フラグをクリアし(Sc15)、ゲーム処理に移行する。これにより、設定時扉閉状態フラグや不能化フラグが一旦設定されると設定変更状態に移行されるまで、当該フラグがクリアされないため、遊技を不能動化することができる。
図29は、メイン制御部41が実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、入賞判定処理(Sd4)、払出処理(Sd5)、ゲーム終了時処理(Sd6)を順に実行し、ゲーム終了時処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点でゲームを開始させる処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおけるスタートスイッチ7の検出によるゲーム開始と同時にラッチされた数値データに基づいて上記した各役への入賞を許容するかどうかを決定する処理を行なう。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM507に当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理、遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd4のステップにおける入賞判定処理では、Sd3のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd5のステップにおける払出処理では、Sd4のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行なう。
Sd6のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
また、ゲーム処理では、ゲームの進行制御に応じてコマンドを生成し、通常コマンド送信用バッファに設定することで、その後のタイマ割込処理(メイン)においてサブ制御部91に対して設定されたコマンドが送信されるようになっている。
図30〜図32は、メイン制御部41がSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM507において賭数の値が格納されるBETカウンタの値をクリアし(Se1)、遊技状態に応じた規定数(本実施の形態では遊技状態に関わらず3)をRAM507に設定し(Se2)、RAM507にリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(Se3)。
Se3のステップにおいて当該ゲームがリプレイゲームであると判定された場合には、賭数が3加算された旨を示すBETコマンドを通常コマンド用送信バッファに設定し(Se4)、BETカウンタの値を1加算し(Se5)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されているか否かを判定し(Se6)、BETカウンタの値が規定数でなければSe5のステップに戻り、BETカウンタの値が規定数であれば、メダルの投入不可を示す投入不可フラグをRAM507に設定し(Se7)、Se12のステップに進む。Se4のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。
Se3のステップにおいて当該ゲームがリプレイゲームでないと判定されれば、投入待ち前の設定を行ない(Se8)、Se9のステップに進む。投入待ち前の設定では、RAM507に設定されている投入不可フラグをクリアし、メダルの投入が可能な状態とする。
Se9のステップでは、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されているか否かを判定し、BETカウンタの値が規定数でなければSe14のステップに進み、BETカウンタの値が規定数であれば、さらにいずれかのスイッチがOFFに変化したか否かを判定する(Se10)。Se10のステップでは、いずれかのスイッチの立下りを示す立下りエッジが設定されているか否かに基づいていずれかのスイッチがOFFに変化したか否かが判定される。さらに立下りエッジは、いずれかのスイッチがOFFに変化し、かつ全てのスイッチがOFFである場合にのみ設定されるので、Se10のステップでは、いずれかのスイッチがOFFに変化したか否かに加えて他のスイッチがOFFであるかどうかについても判定されることとなる。
Se10のステップにおいていずれのスイッチもOFFに変化していないと判定された場合、またはいずれかのスイッチがOFFに変化したものの未だONが継続しているスイッチがある場合には、Se14のステップに進み、いずれかのスイッチがOFFに変化し、かつ全てのスイッチがOFFであると判定された場合には、立下りエッジをクリアし(Se11)、Se12のステップに進む。
Se12のステップでは、乱数ラッチフラグレジスタの値に基づいて数値データがラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し、数値データがラッチされていなければSe14のステップに進み、数値データがラッチされていれば乱数値レジスタ559Aから数値データを読み出し(Se13)、Se14のステップに進む。なお、Se13のステップにおいて乱数値レジスタ559から数値データが読み出されると乱数ラッチフラグレジスタがクリアされ、新たな数値データの取込が許可されることとなる。また、Se13のステップにおいては、数値データを読み出すものの、読み出した数値データを用いる訳ではなく、スタートスイッチ7の操作に応じて新たな数値データの取込を可能とするためにダミーとして読み出すものである。このため、ゲームの開始条件となる賭数が設定されている状態であるが、スタートスイッチ7以外のスイッチが操作されており、スタートスイッチ7の操作が無効化されている状態でスタートスイッチ7が操作されたために数値データがラッチされ、新たな数値データの取込が禁止されている状態であっても、全てのスイッチがOFFの状態となり、スタートスイッチ7の操作が有効化された時点でラッチされている数値データがダミーとして読み出され、その後のスタートスイッチ7が操作されたタイミングで新たに数値データをラッチすることが可能となる。
Se14のステップでは、レジスタにエラーコードが設定されているか否か、すなわちエラーが検知されたか否かを判定し、エラーコードが設定されていれば、図27に示すエラー処理に移行する。
Se14のステップにおいてエラーコードが設定されていなければ、RAM507に投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する(Se15)。Se15のステップにおいてメダルの投入が可能な状態であると判定された場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とし(Se16)、Se18のステップに進み、メダルの投入が可能な状態でないと判定された場合には、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se17)、Se18のステップに進む。
Se18のステップにおいては、設定キースイッチ37がonの状態か否かを判定し、設定キースイッチ37がonであれば、BETカウンタの値が0か否かを判定する(Se19)。そして、Se19のステップにおいてBETカウンタの値が0であれば、確認開始コマンドを通常コマンド送信用バッファに設定し(Se20)、設定確認処理(Se21)、すなわち設定確認状態に移行する。Se20のステップで設定された確認開始コマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。また、Se21のステップにおける設定確認処理が終了した後は、Se9のステップに戻る。
設定確認処理では、まず、ペイアウト表示器13の表示値を待避し、RAM41cの設定値ワークから現在設定されている設定値を取得し、取得した設定値をペイアウト表示器13に表示する。その後、設定キースイッチ37がoffになるまで待機し、設定キースイッチ37がoffになると先に待避させていたペイアウト表示器13の表示値を復帰させた後、確認終了コマンドを通常コマンド送信用バッファに設定し、設定確認処理を終了する。設定された確認終了コマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se18のステップにおいて設定キースイッチ37がonではない場合またはSe19のステップにおいてBETカウンタの値が0ではない場合には、Se22aのステップに進み、設定時扉閉状態フラグが設定されているか否かを判定する。設定時扉閉状態フラグが設定されていると判定されたときには、Se22bのステップに進み、現在有効な特定操作が検出されたか否か判定する。現在有効な特定操作の検出とは、投入メダルセンサ31の検出、1枚BETスイッチ5の検出、MAXBETスイッチ6の検出、精算スイッチ10の検出などをいう。
なお、特定操作については、設定時扉閉状態フラグが設定されているときであっても、後述するスタートスイッチ7への操作が検出されるまでの間においては、有効に検出され、対応する処理(たとえば、Se22d、Se39、Se47、Se56各々においてYESと判定されたときの処理など)が実行される。
Se22bにおいて、現在有効な特定操作が検出されたと判定されたときには、Se22cのステップに進み、スタートスイッチ7の操作を不能化することにより遊技の進行を停止させて不能動化させるための不能化フラグを設定する。一方、Se22aで設定時扉閉状態フラグが設定されていないと判定されたとき、Se22bで現在有効な特定操作が検出されていないと判定されたとき、およびSe22cにおいて不能化フラグが設定されたときには、Se22dのステップに進む。
Se22dでは、投入メダルセンサ31により投入メダルの通過が検出されたか否か、すなわち投入メダルの通過が検出された旨を示す投入メダルフラグの有無を判定する。Se22dのステップにおいて投入メダルの通過が検出されていなければ、Se33のステップに進み、投入メダルの通過が検出されていれば、投入メダルフラグをクリアし(Se23)、RAM507に投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定し(Se24)、メダルの投入が可能な状態でなければSe33のステップに進む。
Se24のステップにおいてメダルの投入が可能な状態であれば、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se20)、BETカウンタの値が規定数でなければ、賭数が1加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se26)、BETカウンタの値を1加算し(Se27)、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されたか否かを判定し(Se28)、BETカウンタの値が規定数でなければSe9のステップに戻る。Se26のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。
また、Se28のステップにおいてBETカウンタの値が規定数であれば、すなわちゲームの開始条件となる賭数が設定された場合には、Se12のステップに戻り、ゲームの開始条件となる賭数が設定される前に数値データがラッチされていれば、Sa13のステップにて数値データが読み出され、新たな数値データの取込が可能となる。このため、ゲームの開始条件となる賭数が設定されておらず、スタートスイッチ7の操作が無効化されている状態でスタートスイッチ7が操作されたために数値データがラッチされ、新たな数値データの取込が禁止されている状態であっても、ゲームの開始条件となる既定数の賭数が設定され、スタートスイッチ7の操作が有効化された時点でラッチされている数値データがダミーとして読み出され、その後のスタートスイッチ7が操作されたタイミングで新たに数値データをラッチすることが可能となる。
Se25のステップにおいてBETカウンタの値が規定数であれば、現在のクレジットカウンタの値を示すクレジットコマンドを通常コマンド送信用バッファに設定し(Se29)、RAM507においてクレジットの値が格納されるクレジットカウンタの値を1加算し(Se30)、クレジットカウンタの値が上限値である50であるか否かを判定し(Se31)、クレジットカウンタの値が50でなければ、Se9のステップに戻り、クレジットカウンタの値が50であれば投入不可フラグをRAM507に設定し(Se32)、Se9のステップに戻る。Se29のステップで設定されたクレジットコマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。
Se33のステップでは、スタートスイッチ7の操作が検出されているか否か、すなわちスタートスイッチ7の立上りを示す立上りエッジが設定されているか否かを判定する。さらに立上りエッジは、いずれかのスイッチがONに変化し、かつ全てのスイッチがOFFである場合にのみ設定されるので、Se33のステップでは、いずれかのスイッチがONに変化したか否かに加えて他のスイッチがOFFであるかどうかについても判定されることとなる。
Se33のステップにおいてスタートスイッチ7の操作が検出されていないと判定された場合、またはスタートスイッチ7が操作されたものの他のスイッチも操作されている場合には、Se39のステップに進み、スタートスイッチ7の操作が有効に検出されていれば、立上りエッジをクリアし(Se34)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか、すなわちゲームの開始条件となる賭数が設定されているか否かを判定する(Se35a)。
Se35aのステップにおいてBETカウンタの値が規定数でなければ、Se9のステップに戻り、BETカウンタの値が規定数であれば、Se35bのステップに進む。Se35bでは、不能化フラグが設定されているか否かを判定する。通常であれば前面扉1bを開放させなければ設定変更操作を行なうことができないところ、Se35bにおいて不能化フラグが設定されていると判定されたときには、設定変更操作が行なわれた際に前面扉1bが閉鎖状態であったような異常時であるため、いずれの処理も行なわないループ処理に移行する。これにより、設定変更状態に移行されるまで、遊技が不能動化される。このため、不正行為が行なわれたことを、遊技場管理者や他の遊技者などによって容易に特定されてしまう。その結果、不正行為を行なうことのリスクを高めることにより、不正行為を抑止することができる。
また、不能動化される直前の遊技の進行状況に関わらず、不能化フラグが設定されているときのスタートスイッチ7の操作が無効にされるため、スタートスイッチ7が操作されたときに不能化フラグが設定されているか否かを判断する処理を行ない、不能動化フラグが設定されているときにループ処理に移行することにより、それ以後の遊技の進行を不能動化できる。このため、不能動化するための処理を容易化でき、かつ不能動化するために特殊な制御を行なう必要性がなく処理負担が増大することを防止することができる。
遊技が不能動化されているときに、たとえば、設定キースイッチをON状態にせずに電源を再投入した場合には、図23のSa21以降で説明したように、当該ループ処理に移行される。このため、不能動化を解除することができない。一方、遊技が不能動化されているときに、たとえば、前面扉1bを開放させて設定キースイッチをON状態にして電源を再投入した場合には、図23のSa29以降で説明したように、図28の設定変更処理に移行されて、Sc15において不能動化フラグが消去されることにより、不能動化を解除することができる。このように、遊技の不能動化は、正規に設定変更状態に移行されることにより解除される。よって、不正行為を行なった者にとっては容易に遊技の不能動化を解除することができないのに対し、前面扉1bを開放状態にして設定キースイッチを操作することができる者(たとえば遊技場管理者)であれば、容易かつ速やかに不能動化を解除することができる。
一方、Se35bにおいて不能化フラグが設定されていないと判定されたときには、Se36のステップに進み、乱数値格納ワークの値を内部抽選用の乱数値として抽選用ワークに設定し(Se36)、投入不可フラグをRAM507に設定するとともに、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se37)、ゲーム開始時の設定を行なう(Se38)。そして、Se38のステップの後、BET処理を終了して図29のフローチャートに復帰する。
Se39のステップにおいては、1枚BETスイッチ5の操作が検出されているか否か、すなわち1枚BETスイッチ5の立上りを示す立上りエッジが設定されているか否かを判定する。Se39のステップにおいて1枚BETスイッチ5の操作が検出されていなければ、Se47のステップに進み、1枚BETスイッチ5の操作が検出されていれば立上りエッジをクリアし(Se40)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se41)。Se41のステップにおいてBETカウンタの値が規定数であればSe9のステップに戻り、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se42)、クレジットカウンタの値が0であればSe9のステップに戻る。Se42のステップにおいてクレジットカウンタの値が0でなければ、賭数が1加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se43)、クレジットカウンタの値を1減算し(Se44)、BETカウンタの値を1加算して(Se45)、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されたか否かを判定し(Se46)、BETカウンタの値が規定数でなければSe9のステップに戻る。Se43のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。
また、Se46のステップにおいてBETカウンタの値が規定数であれば、すなわちゲームの開始条件となる賭数が設定された場合には、Se12のステップに戻り、ゲームの開始条件となる賭数が設定される前に数値データがラッチされていれば、Sa13のステップにて数値データが読み出され、新たな数値データの取込が可能となる。このため、ゲームの開始条件となる賭数が設定されておらず、スタートスイッチ7の操作が無効化されている状態でスタートスイッチ7が操作されたために数値データがラッチされ、新たな数値データの取込が禁止されている状態であっても、ゲームの開始条件となる既定数の賭数が設定され、スタートスイッチ7の操作が有効化された時点でラッチされている数値データがダミーとして読み出され、その後のスタートスイッチ7が操作されたタイミングで新たに数値データをラッチすることが可能となる。
Se47のステップにおいては、MAXBETスイッチ6の操作が検出されているか否か、すなわちMAXBETスイッチ6の立上り示す立上りエッジが設定されているか否かを判定する。Se47のステップにおいてMAXBETスイッチ6の操作が検出されていなければ、Se61のステップに進み、MAXBETスイッチ6の操作が検出されていれば、立上りエッジをクリアし(Se48)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se49)。Se49のステップにおいてBETカウンタの値が規定数であれば、Se53のステップに進み、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se50)、クレジットカウンタの値が0であれば、Se53のステップに進む。Se50のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se51)、BETカウンタの値を1加算して(Se52)、Se49のステップに戻る。Se53のステップでは、BETカウンタが加算されたか否かを判定し、BETカウンタが加算されていなければ、Se9のステップに戻り、BETカウンタが加算されていれば、加算された数分賭数が加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se54)、Se55のステップに進む。Se54のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブ制御部91に対して送信される。
Se55のステップでは、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されたか否かを判定し、BETカウンタの値が規定数でなければSe9のステップに戻る。また、Se55のステップにおいてBETカウンタの値が規定数であれば、すなわちゲームの開始条件となる賭数が設定された場合には、Se12のステップに戻り、ゲームの開始条件となる賭数が設定される前に数値データがラッチされていれば、Sa13のステップにて数値データが読み出され、新たな数値データの取込が可能となる。このため、ゲームの開始条件となる賭数が設定されておらず、スタートスイッチ7の操作が無効化されている状態でスタートスイッチ7が操作されたために数値データがラッチされ、新たな数値データの取込が禁止されている状態であっても、ゲームの開始条件となる既定数の賭数が設定され、スタートスイッチ7の操作が有効化された時点でラッチされている数値データがダミーとして読み出され、その後のスタートスイッチ7が操作されたタイミングで新たに数値データをラッチすることが可能となる。
Se56のステップにおいては、精算スイッチ10の操作が検出されているか否か、すなわち精算スイッチ10の立上りを示す立上りエッジが設定されているか否かを判定する。Se56のステップにおいて精算スイッチ10の操作が検出されていなければ、Se9のステップに戻り、精算スイッチ10の操作が検出されていれば、立上りエッジをクリアし(Se57)、RAM507にリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定し(Se58)、当該ゲームがリプレイゲームであればSe9のステップに戻る。Se58のステップにおいて当該ゲームがリプレイゲームでなければ、BETカウンタの値が0か否かを判定し(Se59)、BETカウンタの値が0であればSe61のステップに進み、BETカウンタの値が0でなければ、既に設定済み賭数の精算を行なう旨を示す賭数精算フラグをRAM507に設定し(Se60)、Se61のステップに進む。Se61のステップにおいては、ホッパーモータ34を駆動してクレジットカウンタまたはBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダルまたは賭数の設定に用いられたメダルを返却する制御が行なわれる精算処理を行なう。そして、Se61のステップにおける精算処理の後、RAM507に設定されている投入不可フラグをクリアして(Se62)、Se9のステップに戻る。
図33および図34は、メイン制御部41が一定間隔(0.56msの間隔)で起動処理やゲーム処理に割り込んで実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。なお、タイマ割込処理(メイン)の実行期間中は自動的に他の割込が禁止される。
タイマ割込処理(メイン)においては、まず、使用中のレジスタをスタック領域に退避した後(Sk1)、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行なう(Sk2)。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理(メイン)において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Sk3)。Sk3のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Sk4)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSk8のモータステップ処理において変更した位相信号データや後述するSk21の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Sk5)。
次いで、分岐用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Sk7)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行なうリール始動処理(Sk8)、リールモータ32L、32C、32Rの位相信号データの変更を行なうモータステップ処理(Sk8)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Sk9)を順次実行した後、Sk1においてスタック領域に退避したレジスタを復帰し(Sk19)、割込前の処理に戻る。
また、Sk6のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Sk10)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Sk11)、各種時間カウンタを更新する時間カウンタ更新処理(Sk12)、通常コマンド送信用バッファに格納されているコマンドまたは操作検出コマンドをサブ制御部91に対して送信するコマンド送信処理(Sk13)、外部出力信号を更新する外部出力信号更新処理(Sk14)を順次実行した後、Sk1においてスタック領域に退避したレジスタを復帰し(Sk19)、割込前の処理に戻る。
また、Sk4のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Sk15)、タイマ割込4でなければ、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(Sk16)、スイッチ類の検出状態に変化があったか否かを判定するスイッチ入力判定処理(Sk17)、乱数値レジスタR1Dから数値データを読み出して乱数値格納ワークに格納する乱数値読出処理(Sk18)を順次実行した後、Sk1においてスタック領域に退避したレジスタを復帰し(Sk19)、割込前の処理に戻る。
また、Sk15のステップにおいてタイマ割込4であれば、ストップスイッチ8L、8C、8Rの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すればよいかを算出する停止スイッチ処理(Sk20)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Sk21)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Sk22)を順次実行した後、Sk1においてスタック領域に退避したレジスタを復帰し(Sk19)、割込前の処理に戻る。
図35は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込3内において実行する乱数値読出処理の制御内容を示すフローチャートである。
乱数値読出処理では、乱数ラッチフラグレジスタの値に基づいて数値データがラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sk101)、数値データがラッチされていなければ、乱数値読出処理を終了して図34に示すフローチャートに復帰する。
Sk101のステップにおいて数値データがラッチされていれば乱数値レジスタ559Aから数値データを読み出し(Sk102)、乱数値格納ワークに格納されている値を、Sk102において読み出した数値データに更新し(Sk103)、乱数値読出処理を終了して図34に示すフローチャートに復帰する。
なお、Sk102のステップにおいて乱数値レジスタ559から数値データが読み出されると乱数ラッチフラグレジスタがクリアされ、乱数値レジスタ559への新たな数値データの取込が許可されることとなる。
図36は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込3内において実行するスイッチ入力判定処理の制御内容を示すフローチャートである。
スイッチ入力判定処理では、ポート入力処理において取得した各スイッチの入力データを更新し(Sk201)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じであるか否かを判定し(Sk202)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じでなければ、図34のフローチャートに復帰する。
Sk202のステップにおいて、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じ場合、すなわち2.24msの間同じ検出状態を示している場合には、該当するスイッチの確定データを更新し(Sk203)、Sk204のステップに進む。Sk203のステップでは、今回の確定データを前回の確定データに移動し、前回と今回が同じと判定された入力データが示す検出状態を今回の確定データとして設定する。
Sk204のステップでは、更新後の前回の確定データと今回の確定データとが同じか否かを判定し、前回の確定データと今回の確定データとが同じであれば、図34のフローチャートに復帰する。
Sk204のステップにおいて前回の確定データと今回の確定データとが同じでなければ、前回の確定データと今回の確定データとが異なるスイッチがOFFからONに変化したかを判定し(Sk205)、OFFからONに変化した場合には、さらに他のスイッチがONか否かを判定し(Sk206)、他のスイッチがONであればSk208のステップに進み、他のスイッチがONでなければ、該当するスイッチがOFFからONに変化した旨を示す立上りエッジを設定し(Sk207)、Sk208のステップに進む。
Sk208のステップでは、前回の確定データと今回の確定データとが異なるスイッチがONからOFFに変化したかを判定し、ONからOFFに変化した場合には、他のスイッチがONか否かを判定し(Sk209)、他のスイッチがONであれば図34のフローチャートに復帰し、他のスイッチがONでなければ、該当するスイッチがONからOFFに変化した旨を示す立下りエッジを設定し(Sk210)、図34のフローチャートに復帰する。
図37は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込2内において実行するコマンド送信処理の制御内容を示すフローチャートである。
コマンド送信処理では、まず、操作検出コマンドの送信時期か否かを判定するためにRAM41cに割り当てられた送信カウンタの値を1減算し(Sk131)、送信カウンタの値が0か否かを判定する(Sk132)。
Sk132のステップにおいて送信カウンタの値が0ではない場合には、Sk137のステップに進み、送信カウンタの値が0の場合、すなわち操作検出コマンドの送信時期であれば、送信カウンタに5を設定し(Sk133)、各スイッチの確定データを取得し、各スイッチの検出状態(on/off)をそれぞれ特定可能な操作検出コマンドを作成し(Sk134)、作成した操作検出コマンドを特定コマンド送信用バッファに設定する(Sk135)。そして、特定コマンド送信用バッファのアドレスを設定し(Sk136)、Sk139のステップに進む。
Sk137のステップでは、通常コマンド送信用バッファに未送信のコマンドがあるか否かを判定し、未送信のコマンドがなければ、コマンド送信処理を終了し、図33に示すフローチャートに復帰する。
Sk137のステップにおいて通常コマンド送信用バッファに未送信のコマンドがあれば、通常コマンド送信用バッファの送信ポインタが示すアドレスを設定し(Sk138)、Sk139のステップに進む。
Sk139のステップでは、Sk136またはSk138ステップにおいて設定されたアドレスに格納されているコマンドを読み出し、サブCPU91aに対して送信し、コマンド送信処理を終了して、図33に示すフローチャートに復帰する。
図38は、電断検出回路48からの電圧低下信号が入力されたときにメイン制御部41が起動処理やゲーム処理に割り込んで実行する電断割込処理(メイン)の制御内容を示すフローチャートである。なお、電断割込処理(メイン)の開始後、自動的に他の割込が禁止され、元の処理に復帰する場合以外は割込が許可されることはない。
電断割込処理(メイン)においては、まず、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm1)。なお、前述したIレジスタおよびIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sm2)。この際、電圧低下信号が入力されていなければ、Sm1においてスタック領域に退避したレジスタを復帰し(Sm3)、割込前の処理に戻る。この際、自動的に割込が許可される。
また、Sm2のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施の形態では、5A(H))をセットして(Sm4)、全ての出力ポートを初期化する(Sm5)。次いでRAM507の全ての格納領域(未使用領域および未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm6)、RAM507へのアクセスを禁止する(Sm7)。
そして、電圧低下信号が入力されているか否かの判定(Sm8、なお、Sm8は、Sm2と同様の処理である)を除いて、何らの処理も行なわないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメイン制御部41は動作停止する。また、このループ処理において、電圧が回復し、ステップSm8のステップにおいて、電圧低下信号が入力されていないと判定されたときには、乱数ラッチフラグをクリアするための処理を実行する。
すなわち、乱数ラッチフラグレジスタRDFMのビット番号[0]に格納される乱数ラッチフラグデータRDFM0のビット値が“1”であるか否かに応じて、乱数値レジスタR1Dに対応する乱数ラッチフラグがオンであるか否かを判定する(ステップSm9)。そして、この乱数ラッチフラグがオンであれば、乱数値レジスタR1Dの読み出しを行なうことにより、乱数ラッチフラグデータRDFM0のビット値を“0”にクリアして、対応する乱数ラッチフラグをオフ状態とする(ステップSm10)。
また、ステップSm9にて乱数ラッチフラグデータRDFM0で指定される乱数ラッチフラグがオフである場合や、ステップSm10の処理を実行した後には、乱数ラッチフラグレジスタRDFMのビット番号[1]に格納される乱数ラッチフラグデータRDFM1のビット値が“1”であるか否かに応じて、乱数値レジスタR2Dに対応する乱数ラッチフラグがオンであるか否かを判定する(ステップSm11)。このとき、乱数ラッチフラグがオンであれば、乱数値レジスタR2Dの読み出しを行なうことにより、乱数ラッチフラグデータRDFM1のビット値を“0”にクリアして、対応する乱数ラッチフラグをオフ状態とする(ステップSm12)。
こうしたステップSm10やステップSm12の処理により、乱数ラッチフラグがオフ状態とされて、乱数値レジスタR1Dや乱数値レジスタR2Dに新たな数値データの格納が許可された状態に設定できる。なお、ステップSm10やステップSm12の処理により乱数値レジスタR1Dや乱数値レジスタR2Dから読み出された数値データは、内部抽選には使用せず、そのまま破棄(消去)すればよい。
また、ステップSm9〜ステップSm12の処理に代えて、乱数ラッチフラグデータRDFM0や乱数ラッチフラグデータRDFM1の値にかかわらず、乱数値レジスタR1Dと乱数値レジスタR2Dの読み出しを行なうことにより、各乱数ラッチフラグをオフ状態とする処理が実行されてもよい。
ステップSm11にて乱数ラッチフラグデータRDFM1で指定される乱数ラッチフラグがオフであるときや、ステップSm12の処理を実行した後には、前述した起動処理(メイン)が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
このように、電源供給が再開されて、遊技制御の実行が開始されるときには、すでにステップSm10やSm12の処理において、乱数値レジスタから数値データを読出可能であり、各乱数ラッチフラグをオフ状態に設定することができる。これにより、電源遮断が発生したときの電源電圧が不安定な状態で誤って乱数値レジスタに格納された数値データが、乱数値として取得されてしまうことを防止できる。
なお、本実施の形態では、RAM507へのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(メイン)へ移行するようになっているが、ループ処理において何らの処理も行なわず、ループ処理が行なわれている間に、電圧が回復してリセット回路49からリセット信号が入力されたことや、電圧が低下しないままウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことに基づいて、起動処理(メイン)へ移行するようにしてもよい。この場合においても、起動処理(メイン)へ移行するまでに、Sm9〜Sm12と同様の処理を行なうように構成してもよい(図72参照)。
なお、前述したように、電源投入時において、設定キースイッチ37がON状態であるときに、前面扉1bが閉状態となっており不正行為が行なわれていると判定されたとき(図23のSa27bでNO)には、正規に設定変更状態に移行されるまで(図28のSc15)、遊技が不能動化される。
本実施の形態のスロットマシン1におけるメイン制御部41は、電源投入時や、システムリセットの発生後における再起動時などに、CPU505がROM506などに記憶されているセキュリティチェックプログラム506Aを読み出して実行することにより、セキュリティモードとなる。
このときには、セキュリティチェックプログラム506Aに対応した処理としてセキュリティチェック処理が実行される。ここで、メイン制御部41がセキュリティモードとなるセキュリティ時間は、ROM506のプログラム管理エリアに記憶されているセキュリティ時間設定KSESのビット番号[2−0]やビット番号[4−3]に予め格納されたビット値に応じて、一定の固定時間とは異なる時間成分を含むことができる。
たとえば、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であれば、図10(D)に示す設定内容に対応して、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値であれば、図10(C)に示すショートモード又はロングモードに対応して、システムリセットや電源投入がなされるごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。
こうして設定されたセキュリティ時間が経過するまでは、ROM506に記憶されているユーザプログラムの実行が開始されない。そして、乱数回路509による乱数値となる数値データの生成動作も、メイン制御部41がセキュリティモード中である期間では、開始されないようにすればよい。これにより、電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
一例として、スロットマシン1の機種毎に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を異なる値に設定する。この場合には、セキュリティモードの延長時間を、スロットマシン1の機種毎に異ならせることができ、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“01”又は“10”に設定することにより、可変設定時間を、システムリセット毎に異ならせることができる。これにより、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することは著しく困難になる。
図39は、メイン制御部41に内蔵された乱数回路509の動作を説明するためのタイミングチャートである。また、図39(A)では、遊技制御基板40に搭載された制御用クロック生成回路42により生成される制御用クロックCCLKを示している。図39(B)では、乱数用クロック生成回路43により生成される乱数用クロックRCLKを示している。図39(A)および(B)に示すように、制御用クロックCCLKの発振周波数と、乱数用クロックRCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。
図39(B)に示すように、乱数用クロックRCLKは、タイミングT10,T11,T12,…においてローレベルからハイレベルに立ち上がる。そして、乱数用クロックRCLKは、メイン制御部41の乱数用外部クロック端子ERCに供給され、図12に示す乱数回路509が備えるクロック用フリップフロップ552におけるクロック端子CKに入力される。クロック用フリップフロップ552は、逆相出力端子(反転出力端子)QバーからD入力端子へとフィードバックされるラッチ用クロックRC0を、クロック端子CKに入力される乱数用クロックRCLKの立上りエッジに応答して取り込み(ラッチして)、正相出力端子(非反転出力端子)Qから乱数更新クロックRGKとして出力する。これにより、乱数更新クロックRGKは、図39(C)に示すように、タイミングT10,T12,T14,…において、ローレベルからハイレベルへと立上り、乱数用クロックRCLKの発振周波数の1/2の発振周波数を有する信号となる。たとえば、乱数用クロックRCLKの発振周波数が20MHzであれば、乱数更新クロックRGKの発振周波数は10MHzとなる。そして、乱数用クロックRCLKの発信周波数は制御用クロックCCLKの発振周波数の整数倍にも整数分の1にもならないことから、乱数更新クロックRGKの発振周波数は、制御用クロックCCLKの発振周波数とは異なる周波数となる。乱数生成回路553は、たとえば乱数更新クロックRGKの立上りエッジに応答して、カウント値順列RCNにおける数値データを更新する。乱数列変更回路555は、乱数列変更設定回路556による乱数更新規則の設定に基づき、乱数生成回路553から出力されたカウント値順列RCNにおける数値データの更新順を変更したものを、乱数列RSNとして出力する。こうして、乱数列RSNにおける数値データは、たとえば図39(D)に示すように、乱数更新クロックRGKの立上りエッジなどに応答して更新される。
クロック用フリップフロップ552から出力されるラッチ用クロックRC0は、乱数更新クロックRGKの反転信号となり、その発振周波数は乱数更新クロックRGKの発振周波数と同一で、その位相は乱数更新クロックRGKの位相とπ(=180°)だけ異なる。ラッチ用クロックRC0は、分岐点BR1にてラッチ用クロックRC1とラッチ用クロックRC2とに分岐される。したがって、たとえば図39(E)に示すように、各ラッチ用クロックRC0、RC1、RC2はいずれも、共通の周期で信号状態が変化する発振信号となる。ラッチ用クロックRC1は、ラッチ用フリップフロップ557Aのクロック端子CKに入力される。ラッチ用クロックRC2は、ラッチ用フリップフロップ557Bのクロック端子CKに入力される。
ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立上りエッジに応答して、スタートスイッチ7から伝送されて入力ポートP0に供給されたゲーム開始信号SS1を取り込み(ラッチして)、ゲーム開始時ラッチ信号SL1として出力端子Qから出力する。そして、乱数ラッチセレクタ558Aにおける取込方法が入力ポートP0への信号入力に指定されていれば、ゲーム開始時ラッチ信号SL1が乱数ラッチ信号LL1として出力される。これにより、たとえば図39(F)に示すようなタイミングでオフ状態(ローレベル)とオン状態(ハイレベル)とで信号状態が変化するゲーム開始信号SS1は、ラッチ用クロックRC1が立ち上がるタイミングT11、T13、T15、…にてラッチ用フリップフロップ557Aに取り込まれた後、図39(G)に示すようなタイミングT11、T13で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL1となって、乱数ラッチセレクタ558Aから出力される。
乱数値レジスタR1Dとなる乱数値レジスタ559Aは、乱数列変更回路555から出力される乱数列RSNにおける数値データを、乱数ラッチセレクタ558Aからクロック端子へと入力される乱数ラッチ信号LL1の立上りエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。
たとえば図39(G)に示すように、タイミングT11にて乱数ラッチ信号LL1がオフ状態からオン状態に変化する立上りエッジが生じた場合には、このタイミングT11にて乱数列変更回路555から出力されている乱数列RSNにおける数値データが、図39(H)に示すように、乱数値レジスタR1Dに取り込まれ、乱数値となる数値データとして取得される。これにより、乱数値レジスタR1Dとなる乱数値レジスタ559Aでは、スタートスイッチ7の操作が検出されたことに基づき、乱数値として用いられる数値データを取得して記憶することができる。
また、図9(B)に示すような第2乱数初期設定KRS2のビット番号[0]におけるビット値を“1”とすれば、たとえば乱数回路509にて生成される乱数値となる数値データのスタート値を、システムリセット毎に変更することができる。これにより、たとえ乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aから読み出される数値データを特定することは困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
このように本実施の形態では、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“00”以外の値とすることにより、システムリセットや電源投入ごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。これにより、電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
また、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を“000”以外の値とすることにより、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。これにより、電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
また、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数と、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数とは、互いに異なっており、また、一方の発振周波数が他方の発振周波数の整数倍となることもない。そのため、乱数回路509のクロック用フリップフロップ552により生成される乱数更新クロックRGKやラッチ用クロックRC0の発振周波数は、乱数用クロックRCLKの発振周波数の1/2となるが、制御用クロックCCLKの発振周波数や、制御用クロックCCLKの発振周波数の1/2となる内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、乱数更新クロックRGKとに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数生成回路553や乱数列変更回路555により生成される乱数列RSNにおける数値データの更新タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの更新動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。また、ラッチ用クロックRC0を分岐することにより生成されるラッチ用クロックRC1、RC2の発振周波数も、制御用クロックCCLKや内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、ラッチ用クロックRC1、RC2とに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数値となる数値データが取り込まれる動作タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの取込動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
メイン制御部41に内蔵又は外付けされた乱数回路509では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”とされたことに対応して、乱数生成回路553から出力されるカウント値順列RCNや乱数列変更回路555から出力される乱数列RSNにおける数値データのスタート値を、システムリセット毎に変更することができる。これにより、たとえ乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aから読み出される数値データを特定することは困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
メイン制御部41が備える外部バスインタフェース501では、内部リソースアクセス制御回路501Aにより、たとえばROM506の記憶データといった、メイン制御部41の内部データにつき、CPU505等の内部回路以外による外部読出が制限される。これにより、たとえばROM506に記憶されているユーザプログラムといった、ゲームを制御するプログラムがメイン制御部41の外部から読み出されて解析などに提供されることを防止できる。そして、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
メイン制御部41に内蔵又は外付けされた乱数回路509では、周波数監視回路551により乱数用クロックRCLKにおける周波数異常が検知されたときに、内部情報レジスタCIFのビット番号[4]に格納される内部情報データCIF4のビット値が“1”に設定される。そして、CPU505では、内部情報データCIF4の読出値が“1”であると連続して判定された回数が、ステップS65にてクロック異常判定値に達したと判定されたときに、乱数回路509の動作状態に異常が発生したと判定する。そして乱数回路509の動作状態に異常が発生したと判定された場合には、エラー状態に制御され、ゲームの進行が不能化されることとなる。これにより、乱数用クロックRCLKとして不正信号を入力することによる不正行為を確実に防止することができる。
メイン制御部41に内蔵されたCPU505は、乱数回路509に対するラッチ信号の出力に相当する乱数値取込指定レジスタRDLTへのビット値“1”の書き込みを行ない、乱数値レジスタ559Aを複数回読み出す。そして、読み出した数値データの全ビットを監視して、変化しないビットデータの有無に基づき、乱数回路509の動作状態に異常が発生したと判定する。そして乱数回路509の動作状態に異常が発生したと判定された場合には、エラー状態に制御され、ゲームの進行が不能化されることとなる。これにより、乱数回路509の動作状態に異常が発生していることを確実かつ容易に検知して、不正行為を防止することができる。特に、乱数回路509により数値データが正常に更新されないまま、すなわち数値データが固定されたままの状態で内部抽選を行なわせることで、常に特別役を当選させるなどの不正を防止できる。
メイン制御部41に内蔵又は外付けされた乱数回路509は、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”である場合に、システムリセット毎に乱数値となる数値データのスタート値を変更する。このときには、たとえばメイン制御部41に内蔵されたフリーランカウンタのカウント値などを用いて、システムリセット毎に変更されるスタート値を決定すればよい。これにより、システムリセット等のタイミングにより異なる初期値決定用データを用いて初期値を決定することができ、狙い撃ちなどによる不正行為を防止することができる。
なお、本実施の形態では、セキュリティモードの延長時間が、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値に対応して、予め選択可能な複数の延長時間のいずれかとなり、この延長時間はシステムリセット毎に変更されないものであったが、たとえばROM506に記憶されたユーザプログラムにおける設定などにより、固定時間に加算される延長時間を、システムリセット毎に複数の延長時間のいずれかに決定するようにしてもよい。この場合には、延長時間がいずれも、最長の可変設定時間に比べて、長くなるように定義しておく。そして、大まかな延長時間を決定した後、詳細な延長時間を決定すればよい。これにより、電源投入時やシステムリセット時にセキュリティモードとなるセキュリティ時間を、システムリセット毎に大きく変化させることが可能になり、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングや更新される数値データなどを特定することが、より困難になる。
また、セキュリティモードの延長時間などは、メイン制御部41を構成するチップ毎に付与されるIDナンバーを用いて決定されるようにしてもよい。一例として、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値に対応して延長時間を設定してもよい。この場合には、たとえばシステムリセット毎に延長時間を決定するために用いる演算式を変更することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。さらに、たとえばIDナンバーを用いて延長時間を決定するための演算式をシステムリセット時に格納したフリーランカウンタのカウント値に対応して決定するといったように、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。また、乱数回路509にて生成される乱数のスタート値をシステムリセット毎に変更する場合にも、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、乱数のスタート値を決定してもよい。
本実施の形態では、メイン制御部41の外部に設けられた乱数用クロック生成回路43により、制御用クロック生成回路42で生成される制御用クロックCCLKの発振周波数とは異なる発振周波数を有する乱数用クロックRCLKを生成して、乱数回路509に供給するものであったが、メイン制御部41のCPU505に供給されるクロック信号と、乱数回路509に供給されるクロック信号とが、共通のクロック生成回路に含まれる1つの発振器により生成された発振信号を用いて、生成されるようにしてもよい。この場合には、たとえば乱数用クロックRCLKと制御用クロックCCLKをそれぞれ生成するための分周器などを設け、ラッチ用クロックRC0、RC1、RC2と制御用クロックCCLKあるいは内部システムクロックSCLKとの同期が生じにくくなるように、各分周器における分周比などを設定すればよい。制御用クロック生成回路42と乱数用クロック生成回路43とは、その全部又は一部が、メイン制御部41の内部に設けられてもよいし、メイン制御部41の外部に設けられてもよい。
本実施の形態では、乱数回路509が乱数用クロック生成回路43により生成された乱数用クロックRCLKの供給を受け、クロック用フリップフロップ552により、乱数更新クロックRGKとラッチ用クロックRC0とを生成するものであったが、たとえば乱数用クロック生成回路43といった、乱数回路509の外部において、乱数更新クロックRGKやラッチ用クロックRC0となる発振信号が生成されるようにしてもよい。あるいは、乱数回路509の内部にて、乱数更新クロックRGKを生成するための回路と、ラッチ用クロックRC0を生成するための回路とを、別個に設けるようにしてもよい。一例として、クロック用フリップフロップ552と同様のフリップフロップにより乱数更新クロックRGKを生成する一方で、乱数更新クロックRGKの信号状態を反転させる反転回路を設け、その反転回路から出力される信号を、ラッチ用クロックRC0として用いるようにしてもよい。
本実施の形態に適用した乱数回路509では、乱数ラッチフラグデータRDFM0が“1”の状態、すなわち乱数値レジスタR1Dに数値データが取り込まれている状態では、新たな数値データの取込要求が発生した場合でも、新たな数値データを乱数値レジスタR1Dに取り込まないようになっており、このような状態では、乱数値レジスタR1Dの数値データが読み出されて、乱数ラッチフラグデータRDFM0がクリアされるまで新たな数値データを乱数値レジスタR1Dに取り込むことが不可能となる。
このため、図40に示すように、スタートスイッチ7の操作によりゲーム開始信号SS1が入力されて数値データがラッチされ、乱数値レジスタR1Dに格納された後、この格納された数値データが読み出されて乱数値格納ワークの数値データが更新されるまでは、乱数ラッチフラグデータRDFM0が“1”の状態となることで、格納されている数値データが保持され、その間にゲーム開始信号SS1が入力されても新たな数値データに上書きされてしまうことがないので、静電気などによりゲーム開始信号SS1の信号線にノイズがのっても数値データが変わってしまうことがない。
なお、乱数値レジスタR1Dに数値データが取り込まれている状態において新たな数値データを乱数値レジスタR1Dに取り込まないようにする構成としては、新たな数値データのラッチを禁止する構成であってもよいし、新たな数値データをラッチするものの、乱数値レジスタR1Dへの書込を禁止する構成であってもよい。
上記のように、本実施の形態では、乱数値レジスタR1Dに数値データが取り込まれている状態では、この格納された数値データが読み出されるまで、格納されている数値データを保持する構成を採用しているが、この場合には、スタートスイッチ7の操作がゲームの進行上有効でない期間においてなされた場合でも、ラッチされて乱数値レジスタR1Dに数値データが保持されたままとなり、その後、スタートスイッチ7の操作が有効となってスタートスイッチ7が操作された場合、本来、ゲームを開始させるためにスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データによって内部抽選が行なわれてしまうという新たな問題が生じることとなる。
これに対して本実施の形態では、約0.56ms毎に基本処理に割り込んで実行するタイマ割込処理4回に1回(約2.24ms)毎に実行される乱数値読出処理において乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。すなわち一定時間間隔(約2.24ms)毎に、乱数値レジスタR1Dに数値データがラッチされているか否かを確認し、ラッチされていれば乱数値レジスタR1Dの数値データを読み出すことで、乱数値レジスタR1Dに数値データが保持されている状態を解除し、乱数値レジスタR1Dに新たな数値データの取込が可能な状態となる。
このため、図41に示すように、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、一定時間(乱数値読出処理の実行間隔である約2.24ms)以内に乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となるので、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
また、乱数値読出処理では、乱数値レジスタR1Dに数値データがラッチされている場合に、数値データを読み出すだけではなく、RAM507の乱数値格納ワークの値を読み出した数値データに更新することにより、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、ラッチされた数値データがその後の乱数値読出処理において読み出され、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
そして、ゲームの開始時に、乱数値レジスタR1Dに格納されている数値データではなく、RAM507の乱数値格納ワークに格納されている数値データを取得して内部抽選を行なうので、乱数値レジスタR1Dから数値データが読み出された後に、スタートスイッチの信号線にノイズがのって数値データが変わってしまっても内部抽選に用いる乱数値格納ワークの数値データに影響することがなく、このような場合であってもスタートスイッチ7が操作されたタイミングでラッチした数値データを用いて内部抽選を行なうことができる。
また、本実施の形態では、電断した際に乱数値レジスタR1Dの値は保持されないが、乱数値格納ワークが割り当てられたRAM507は、電断しても格納データが保持されるようになっているため、スタートスイッチ7の操作が検出された後、内部抽選を開始する前の段階で瞬停などにより乱数値レジスタR1Dの値が消失しても乱数値格納ワークの数値データは維持されるため、スタートスイッチ7が操作されたタイミングでラッチされた数値データを内部抽選に用いることができる。
また、本実施の形態では、スタートスイッチ7の操作が検出された時点で、RAM507の乱数値格納ワークに格納されている数値データを同じくRAM507に割り当てられた抽選用ワークに設定し、その後の内部抽選において抽選用ワークに設定された数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようになっており、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでに乱数値格納ワークに格納されている数値データが更新されても、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことがないが、スタートスイッチ7の操作が検出された時点でRAM507の乱数値格納ワークに格納されている数値データをCPU505のワークレジスタに設定し、その後の内部抽選においてワークレジスタに設定された数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようにしてもよい。
また、乱数値格納ワークに格納されている数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようにしてもよいが、この場合には、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでの期間において、タイマ割込処理(メイン)を禁止することなどにより、乱数値格納ワークに格納されている数値データが新たにラッチされた数値データによって更新されてしまうことがないようにすることで、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことを防止できる。
また、本実施の形態では、タイマ割込処理(メイン)4回に1回の割合でスイッチ類の検出信号を入力し、2回連続して検出信号の状態が一致した場合、すなわち約2.24msの期間検出信号の状態が同じ場合に、該当するスイッチ類の検出状態を確定させる。このため、スタートスイッチ7の操作(OFFからONへの変化)を検知するのに約2.24msかかることとなるが、乱数値読出処理がこの時間よりも短いと、スタートスイッチがOFFからONに変化した時点から検知されるまでの間に乱数値格納ワークの数値データが、ノイズなどによって新たにラッチされた数値データに更新されてしまう可能性がある。一方、乱数値読出処理がこの時間よりも長いとスタートスイッチ7の操作のタイミングでラッチした数値データが乱数値格納ワークの数値データに反映されない可能性がある。
これに対して乱数値読出処理もタイマ割込処理(メイン)4回に1回の割合で実行され、乱数値格納ワークの数値データが更新されるのに要する最小時間も同じ約2.24msであり、スタートスイッチ7がOFFからONに変化した時点から検知されるまでに乱数値格納ワークの数値データが新たにラッチされた数値データに更新されてしまうことがなく、かつ、スタートスイッチ7の操作のタイミングでラッチした数値データを乱数値格納ワークの数値データに反映させることができる。
また、本実施の形態では、図42に示すように、規定数の賭数が設定されていない状態において規定数の賭数が設定され、ゲームの開始条件を満たした時点で、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、規定数の賭数が設定される前にスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納されており、その状態が保持されていても、規定数の賭数が設定され、ゲームの開始条件を満たすと同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となる。
なお、本実施の形態では、規定数の賭数が設定され、ゲームの開始条件を満たした時点で乱数ラッチフラグが設定されているか否か、すなわち規定数の賭数が設定される前にラッチされた数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数ラッチフラグが設定されている場合にのみ、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、規定数の賭数が設定され、ゲームの開始条件を満たした時点で一律に乱数値レジスタR1Dに格納されている数値データを読み出すようにしてもよい。
また、本実施の形態では、図43に示すように、ゲームの開始条件を満たす規定数の賭数が設定されている状態においてスタートスイッチ7が操作されても、スタートスイッチ7以外のスイッチが操作されている状態では、ゲームの開始が禁止されるようになっているが、規定数の賭数が設定されている状態であるもののスタートスイッチ7以外のスイッチが操作されており、ゲームの開始が禁止されている状態では、全てのスイッチがOFFとなり、ゲームの開始が許可された時点で、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、ゲームの開始条件を満たす規定数の賭数が設定されている状態であるもののスタートスイッチ7以外のスイッチが操作されており、ゲームの開始が禁止されている状態においてスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、全てのスイッチがOFFとなりゲームの開始が許可されると同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となる。
なお、本実施の形態では、ゲームの開始条件を満たす規定数の賭数が設定されている状態であるもののスタートスイッチ7以外のスイッチが操作されており、ゲームの開始が禁止されている状態においては、全てのスイッチがOFFとなりゲームの開始が許可された時点で乱数ラッチフラグが設定されているか否か、すなわちゲームの開始が許可される前にラッチされた数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数ラッチフラグが設定されている場合にのみ、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、ゲームの開始が許可された時点で一律に乱数値レジスタR1Dに格納されている数値データを読み出すようにしてもよい。
また、本実施の形態では、電源投入時においてメイン制御部41の制御状態を電断前の制御状態に復帰させることが可能とされており、ゲームの開始条件を満たす規定数の賭数が設定されている状態に復帰することもあるが、本実施の形態では、図44に示すように、電源投入時に電断前の制御状態に復帰する場合には、復帰した時点、すなわちゲームの開始が許可された時点で、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、図44に示すように、電源投入後、リセット信号がOFFとなってメイン制御部41が動作を開始した後、電断前の制御状態に復帰する前の段階でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、制御状態が復帰してゲームの開始が許可されるのと同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となる。
また、電源投入時だけではなく、メイン制御部41がリセット要因の発生によりリセットされ、再起動した場合にも、起動処理の先頭から処理が開始することとなるが、この場合も同様で、メイン制御部41が再起動した際に、リセット前の制御状態に復帰する場合には、復帰した時点、すなわちゲームの開始が許可された時点で、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出すことで、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、リセット要因の発生によりメイン制御部41が再起動した後、リセット前の制御状態に復帰する前の段階でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、制御状態が復帰してゲームの開始が許可されるのと同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となる。
特に、スタートスイッチ7からの検出信号の入力を負論理で行なっている場合には、瞬停時など電圧供給が不安定な状態では、復帰前にスタートスイッチ7のON(電圧LOW)の信号が入力されて乱数値レジスタR1Dに数値データが格納されてしまう可能性が高くなるが、このような場合でも制御状態が復帰してゲームの開始が許可されるのと同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となり、復帰前に格納された乱数値レジスタR1Dの数値データが保持されたままとなってしまうことを確実に防止できる。
なお、本実施の形態では、電源投入後またはリセット後、電断前またはリセット前の制御状態に復帰する場合には、復帰する制御状態がゲームを開始可能な状態か否かに関わらず一律に乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、復帰する制御状態がゲームを開始可能な状態であるか否かを確認し、復帰する制御状態がゲームを開始可能な状態である場合にのみ乱数値レジスタR1Dに格納されている数値データを読み出すようにしてもよい。
また、電源投入後またはリセット後、電断前またはリセット前の制御状態に復帰した時点で乱数ラッチフラグが設定されているか否か、すなわちゲームの開始が許可される前にラッチされた数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数ラッチフラグが設定されている場合にのみ、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、電源投入後またはリセット後、電断前またはリセット前の制御状態に復帰した時点で一律に乱数値レジスタR1Dに格納されている数値データを読み出すようにしてもよい。さらには、電源投入後またはリセット後、電断前またはリセット前の制御状態に復帰するか否かに関わらず、一律に乱数値レジスタR1Dに格納されている数値データを読み出すようにしてもよい。
メイン制御部41は、ゲームを開始可能な状態でスタートスイッチ7が操作されたか否かをスタートスイッチ7の立上りを示す立上りエッジが設定されているか否かに基づいて判定する。
スタートスイッチ7の立上りエッジは、一定間隔毎に割り込んで実行するタイマ割込処理(メイン)4回に1回毎(約2.24ms毎)に実行するスイッチ入力判定処理において、スタートスイッチ7の検出状態に基づく確定データがOFFからONに変化したことを条件に設定される。確定データは、スイッチ入力判定処理毎に前回の検出状態と今回の状態が一致する場合にのみ更新されるデータであることから、スタートスイッチ7の立上りエッジは、スタートスイッチ7の検出状態がOFFの状態である場合に、スイッチ入力判定処理において2回連続してスタートスイッチ7のONが検知されることで設定されることとなる。
一方、スイッチ入力判定処理の実行間隔は約2.24msであることから、スタートスイッチ7がONとなってから最低でも約2.24ms以上ONが継続して検知されることを条件にスタートスイッチ7の立上りエッジが設定され、スタートスイッチ7の操作が検出されることとなる。
このように本実施の形態では、図45に示すように、ゲームを開始可能な状態においてスタートスイッチ7のONが一定期間(最低でも約2.24ms)以上継続して検知されたことを条件に、スタートスイッチ7の操作が検出され、ゲームが開始されるようになっており、静電気などのノイズによってスタートスイッチ7のONが誤って検出されたにも関わらず、ゲームが開始してしまうことを防止できる。
なお、本実施の形態では、ゲームを開始可能な状態においてスタートスイッチ7のONが一定期間(最低でも約2.24ms)以上継続して検知されたことを条件に、スタートスイッチ7の操作が検出され、ゲームが開始されるようになっているが、たとえば、1回のスイッチ入力判定処理においてスタートスイッチ7の検出状態を複数回確認し、全てにおいてONが判定されたことを条件に、スタートスイッチの操作が検出され、ゲームが開始されるようにしてもよく、このような構成であっても静電気などのノイズによってスタートスイッチ7のONが誤って検出されたにも関わらず、ゲームが開始してしまうことを防止できる。
次に、サブ制御部91のサブCPU91aが実行する各種制御内容を、図46〜図52のフローチャートに基づいて以下に説明する。
サブCPU91aは、サブ制御部91にリセット回路95からリセット信号が入力されると、図46に示す起動処理(サブ)を行なう。
起動処理(サブ)では、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sr1)、RAM91cへのアクセスを許可する(Sr2)。そして、RAM91cの全ての格納領域のRAMパリティを計算し(Sr3)、RAMパリティが0か否かを判定する(Sr4)。
RAM91cのデータが正常であれば、RAMパリティが0になるはずであり、Sr4のステップにおいてRAMパリティが0であれば、RAM91cに格納されているデータが正常であるので、Sr5のステップに進み、電断前の制御状態を復帰させる。Sr5のステップでは、制御パターン格納領域に設定されている制御パターンではなく、復旧中パターンAに応じて演出装置の出力制御を行なった後、Sr9のステップに進む。
Sr4のステップにおいてRAMパリティが0でなければ、RAM91cに格納されているデータが正常ではないので、RAM91cを初期化した後(Sr6)、制御パターン格納領域にパターン0を設定し(Sr7)、制御パターン格納領域に設定されているパターン0ではなく、復旧中パターンBに応じて演出装置の出力制御を行なった後、Sr9のステップに進む。
Sr9のステップでは、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかの受信待ちである旨を示す復旧待ちフラグをRAM91cに設定し、割込を許可する(Sr10)。
その後、タイマ割込処理(サブ)において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかの受信が判定され、復旧待ちフラグがクリアされるか、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれも受信せずに復旧待ち時間が経過するまで待機し(Sr11、Sr12)、Sr11のステップにおいて復旧待ちフラグが設定されていないと判定された場合、すなわち復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信した場合には、ループ処理に移行する。
また、Sr12のステップにおいて復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれも受信せずに復旧待ち時間が経過したと判定した場合には、遊技制御基板40と正常に接続されていない旨を報知する接続エラー報知状態に移行する。
次に、サブCPU91aが1.12msの間隔で定期的に実行するタイマ割込処理(サブ)を、図47のフローチャートに基づいて以下に説明する。
図47に示すように、タイマ割込処理(サブ)においては、まず、電断割込を禁止し(Ss1)、受信用バッファにコマンドが格納されているか否か、すなわちメインCPU41aからコマンドを受信しているか否かを判定する(Ss2)。Ss2のステップにおいて受信用バッファにコマンドが格納されていなければ、復旧待ちフラグが設定されているか否かを判定し(Ss3)、復旧待ちフラグが設定されていなければ、Ss43のステップに進み、復旧待ちフラグが設定されていれば、Ss47のステップに進む。
Ss2のステップにおいて受信用バッファにコマンドが格納されていれば、受信用バッファからコマンドを取得し(Ss4)、復旧待ちフラグが設定されているか否かを判定し(Ss5)、復旧待ちフラグが設定されていなければ、Ss19のステップに進む。
Ss5のステップにおいて復旧待ちフラグが設定されていれば、取得したコマンドが復帰コマンドか否かを判定し(Ss6)、復帰コマンドでなければSs9のステップに進み、復帰コマンドであれば、復旧待ちフラグをクリアして(Ss7)、後述する検出状態格納領域と後述する操作検出フラグ、時間経過フラグ、連続操作カウンタ、操作時間カウンタからなる検出履歴とを初期化し(Ss8)、Ss40のステップに進む。
Ss9のステップでは、取得したコマンドが設定開始コマンドか否かを判定し、設定開始コマンドでなければSs14のステップに進み、設定開始コマンドであれば、復旧待ちフラグをクリアして(Ss10)、RAM91cを初期化し(Ss11)、管理者モードに制御されている旨を示す管理者モードをRAM91cに設定し(Ss12)、制御パターン格納領域に後述する管理者モード画面の表示などが行なわれる管理者用パターンを設定し(Ss13)、Ss40のステップに進む。
Ss14のステップでは、取得したコマンドがRAM異常あるいは乱数回路異常エラーを示すエラーコマンドか否かを判定し、RAM異常あるいは乱数回路異常エラーを示すエラーコマンドでなければ、受信用バッファに格納されているコマンドのうち今回取得したコマンドをクリアし(Ss18)、Ss47のステップに進む。
Ss14のステップにおいて取得したコマンドがRAM異常あるいは乱数回路異常エラーを示すエラーコマンドであれば、復旧待ちフラグをクリアして(Ss15)、RAM91cを初期化し(Ss16)、制御パターン格納領域にエラーパターンを設定し(Ss17)、Ss40のステップに進む。
Ss19のステップでは、取得したコマンドが遊技状態コマンドか否かを判定し、遊技状態コマンドでなければSs24のステップに進み、遊技状態コマンドであれば、遊技状態コマンドから特定される次ゲームの遊技状態をRAM91cに設定し(Ss20)、管理者モードが設定されているか否かを判定する(Ss21)。
Ss21のステップにおいて管理者モードが設定されていなければSs40のステップに進み、管理者モードが設定されていれば、制御パターン格納領域にパターン0を設定し(Ss22)、管理者モードをクリアして(Ss23)、Ss40のステップに進む。
Ss24のステップでは、取得したコマンドが確認開始コマンドか否かを判定し、確認開始コマンドでなければSs28のステップに進み、確認開始コマンドであれば、制御パターン格納領域に設定されている制御パターンを待避し(Ss25)、RAM91cに管理者モードを設定し(Ss26)、制御パターン格納領域に管理者用パターンを設定し(Ss27)、Ss40のステップに進む。
Ss28のステップでは、取得したコマンドがエラーの発生を示すエラーコマンドか否かを判定し、エラーの発生を示すエラーコマンドでなければSs31のステップに進み、エラーの発生を示すエラーコマンドであれば、制御パターン格納領域に設定されている制御パターンを待避し(Ss29)、制御パターン格納領域にエラーパターンを設定し(Ss30)、Ss40のステップに進む。
Ss31のステップでは、取得したコマンドがエラーの解除を示すエラーコマンドか否かを判定し、エラーの解除を示すエラーコマンドであればSs34のステップに進み、エラーの解除を示すエラーコマンドでなければ、取得したコマンドが確認終了コマンドか否かを判定する(Ss32)。Ss32のステップにおいて取得したコマンドが確認終了コマンドでなければSs35のステップに進み、確認終了コマンドであれば、管理者モードをクリアし(Ss33)、Ss34のステップに進む。Ss34のステップでは、待避していた制御パターンを制御パターン格納領域に復帰させ、Ss40のステップに進む。
Ss35のステップでは、取得したコマンドが内部当選コマンドか否かを判定し、内部当選コマンドでなければSs37のステップに進み、内部当選コマンドであれば、ROM91bに格納されている演出テーブルを参照し、内部当選コマンドが示す内部抽選の結果に応じた選択率にて演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンあるいは当該ゲームから複数ゲーム(たとえば5ゲーム)に亘る演出パターン(連続演出パターン)としてRAM91cに設定する演出パターン選択処理を実行し(Ss36)、Ss39のステップに進む。
Ss37のステップでは、取得したコマンドが操作検出コマンドか否かを判定し、操作検出コマンドでなければSs39のステップに進み、操作検出コマンドであれば、操作スイッチの検出状態を更新する操作検出処理1を実行し(Ss38)、Ss42のステップに進む。
Ss39のステップでは、ROM91bに格納されている制御パターンテーブルを参照し、RAM91cに設定されている演出パターンおよび取得したコマンドに対応して登録されている制御パターンを読み出して制御パターン格納領域の制御パターンを更新する制御パターン更新処理を実行し、Ss40のステップに進む。
Ss40のステップでは、制御パターン格納領域に設定されている制御パターンと演出装置の出力状態とが一致するか否かを判定し、制御パターン格納領域に設定されている制御パターンと演出装置の出力状態が一致する場合には、Ss42のステップに進み、一致しない場合には、制御パターン格納領域に設定されている制御パターンに応じて演出装置の出力制御を行ない(Ss41)、Ss42のステップに進む。
Ss42のステップでは、受信用バッファに格納されているコマンドのうち今回取得したコマンドをクリアし、Ss43のステップに進む。Ss43のステップでは、操作スイッチが一定時間継続して操作されたか否かを監視する操作検出処理2を実行し、Ss44のステップに進む。
Ss44のステップでは、管理者モードが設定されているか否かを判定し、管理者モードが設定されていなければ、操作スイッチの検出状態などに応じて操作演出を行なう操作演出処理を実行し(Ss45)、Ss47のステップに進む。Ss44のステップにおいて管理者モードが設定されていれば、操作スイッチの検出状態などに応じて管理情報へのアクセス制御を行なう管理者モード処理を実行し(Ss46)、Ss47のステップに進む。
Ss47のステップでは、各種カウンタの値を更新する処理を行なった後、Ss1のステップにおいて禁止した電断割込を許可して(Ss48)、タイマ割込処理(サブ)を終了する。
図50は、サブCPU91aが前述したタイマ割込処理(サブ)において実行する操作検出処理1の制御内容を示すフローチャートである。
操作検出処理1では、操作スイッチの検出状態の変化状況(前回の検出状態と今回の検出状態)が操作スイッチ毎に格納される検出状態格納領域における各操作スイッチの検出状態を操作検出コマンドが示す検出状態に合わせて更新する(Ss201)。
次いで、更新された検出状態格納領域を参照し、いずれかの操作スイッチの検出状態がOFFからONに変化したか否かを判定し(Ss202)、OFFからONに変化した操作スイッチがなければSs206のステップに進み、OFFからONに変化した操作スイッチがあれば、操作スイッチの操作状態が変化した旨を示す操作検出フラグ(立上りまたは立下り)が操作スイッチ毎に格納される操作検出フラグ格納領域に、OFFからONに変化した操作スイッチに対応して立上りフラグを設定し(Ss203)、連続して操作された回数を各操作スイッチ毎に計数する連続操作カウンタを更新する(Ss204)。詳しくは、今回OFFからONに変化した操作スイッチ以外に対応するカウンタの値をクリアし、今回OFFからONに変化した操作スイッチに対応するカウンタの値を1回加算する。
次いで、各操作スイッチが継続して操作されている時間を計時するための操作時間カウンタのうちOFFからONに変化した操作スイッチに対応するカウンタの値を初期化(0とする)し(Ss205)、Ss206のステップに進む。
Ss206のステップでは、更新された検出状態格納領域を参照し、いずれかの操作スイッチの検出状態がONからOFFに変化したか否かを判定し、ONからOFFに変化した操作スイッチがなければ、図48のフローチャートに復帰し、ONからOFFに変化した操作スイッチがあれば、操作検出フラグ格納領域に、ONからOFFに変化した操作スイッチに対応して立下りフラグを設定し(Ss207)、図48のフローチャートに復帰する。
図51は、サブCPU91aが前述したタイマ割込処理(サブ)において実行する操作検出処理2の制御内容を示すフローチャートである。
操作検出処理2では、検出状態格納領域を参照し、今回の状態がONの操作スイッチがあるか否かを判定し(Ss301)、今回の状態がONの操作スイッチがなければ、図49に示すフローチャートに復帰する。
Ss301のステップにおいて今回の状態がONの操作スイッチがあれば、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから10秒経過したか否かを判定し(Ss302)、10秒経過していなければ、Ss304のステップに進み、10秒経過していれば10秒経過フラグを設定し(Ss303)、Ss304のステップに進む。
Ss304のステップでは、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから5秒経過したか否かを判定し、5秒経過していなければ、Ss306のステップに進み、5秒経過していれば5秒経過フラグを設定し(Ss305)、Ss306のステップに進む。
Ss306のステップでは、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから3秒経過したか否かを判定し、3秒経過していなければ、図48に示すフローチャートに復帰し、3秒経過していれば3秒経過フラグを設定し(Ss307)、図48に示すフローチャートに復帰する。
図52は、サブCPU91aが電断検出回路98からの電圧低下信号が入力されたときに実行する電断割込処理(サブ)の制御内容を示すフローチャートである。
電断割込処理(サブ)においては、まず、割込を禁止する(St1)。すなわち電断割込処理(サブ)の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(St2)。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(St3)。この際、電圧低下信号が入力されていなければ、St2においてスタック領域に退避したレジスタを復帰し(St4)、St1のステップにおいて禁止した割込を許可して(St5)、割込前の処理に戻る。
また、St3のステップにおいて電圧低下信号が入力されていれば、全ての出力ポートを初期化する(St6)。次いでRAM91cの全ての格納領域の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(St7)、RAM91cへのアクセスを禁止する(St8)。
そして、電圧低下信号が入力されているか否かの判定(St9、なお、St9は、St3と同様の処理である)を除いて、何らの処理も行なわないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にサブCPU91aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理(サブ)が実行され、RAMパリティが0となれば、元の処理に復帰することとなる。
なお、本実施の形態では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(サブ)へ移行するようになっているが、ループ処理において何らの処理も行なわず、ループ処理が行なわれている間に、電圧が回復し、リセット回路95からリセット信号が入力されたことに基づいて、起動処理(サブ)へ移行するようにしてもよい。
本実施の形態のスロットマシン1は、メインCPU41aがゲームの進行制御を行なう操作スイッチとして1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rを備える。また、これら操作スイッチのうちスタートスイッチ7は、設定変更状態において設定値の確定操作にも用いられる。
これらスイッチ類の操作は、ゲームの終了時から次回のゲーム終了時までを構成する全ての制御状態において常にゲームの進行制御に関与するものではなく、制御状態に応じてゲームの進行制御に関与することもあれば関与しないことがある。
図53に示すように、ゲーム終了後(設定変更後)からゲーム開始までの制御状態においては、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作がゲームの進行制御に関与し、ストップスイッチ8L、8C、8Rの操作はゲームの進行制御に関与しない。さらにゲーム終了後(設定変更後)からゲーム開始までの制御状態であっても、賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない状態では、1枚BETスイッチ5、MAXBETスイッチ6の操作がゲームの進行制御に関与するが、スタートスイッチ7の操作はゲームの進行制御に関与せず、一方で、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している状態では、スタートスイッチ7の操作がゲームの進行制御に関与するが、1枚BETスイッチ5、MAXBETスイッチ6の操作はゲームの進行制御に関与しない。
また、ゲーム開始後からゲーム終了までの制御状態では、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与し、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作はゲームの進行制御に関与しない。さらにゲーム開始後からゲーム終了までの制御状態であっても、全リールが回転中であれば、ストップスイッチ8L、8C、8Rの全ての操作がゲームの進行制御に関与するが、いずれかのリールが停止している状態であれば、ストップスイッチ8L、8C、8Rのうち回転中のリールに対応するストップスイッチのみがゲームの進行制御に関与し、停止済みのリールに対応するストップスイッチはゲームの進行制御に関与しない。
なお、制御状態とは、ゲーム終了後(設定変更後)からゲーム開始までの制御状態、ゲーム開始後からゲーム終了までの制御状態に限らず、ゲーム終了後(設定変更後)からゲーム開始までの制御状態のうち賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない制御状態、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している制御状態、ゲーム開始後からゲーム終了までの制御状態のうち全リールが回転中の制御状態、左リールのみが停止している制御状態、中リールのみが停止している制御状態、右リールのみが停止している制御状態、左、中リールが停止している制御状態、左、右リールが停止している制御状態、右、中リールが停止している制御状態、ウェイト期間の状態、メダルの払出期間の状態のそれぞれについても該当する。さらに、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない状態であっても、規定数の賭数が既に設定されているために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態と、規定数の賭数が未だ設定されてはいないが、クレジットが残存していないために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態とは、異なる制御状態といえる。
また、設定変更状態では、スタートスイッチ7の操作が設定値の変更制御に関与し、1枚BETスイッチ5、MAXBETスイッチ6、ストップスイッチ8L、8C、8Rの操作はゲームの進行制御に関与しない。さらに設定変更状態であっても、設定値が確定する前であればスタートスイッチ7の操作が設定値の変更制御に関与するが、設定値が確定した後は、いずれの操作スイッチも設定値の変更制御に関与しない。また、設定確認状態では、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれの操作もゲームの進行制御に関与しない。
メインCPU41aは、これら操作スイッチを、一定時間間隔毎に割り込んで実行されるタイマ割込処理(メイン)中に実行するスイッチ入力判定処理(図36参照)において検出する。スイッチ入力判定処理では、操作スイッチの検出状態を監視し、いずれかの操作スイッチがOFFからONに変化した場合に、該当する操作スイッチがOFFからONに変化した旨を示すエッジデータ(立上りエッジ)を設定し、ONからOFFに変化した場合に、該当する操作スイッチがONからOFFに変化した旨を示すエッジデータ(立下りエッジ)を設定する。
そして、メインCPU41aは、ゲーム処理において現段階の制御状態に応じてゲームの進行制御に関与する操作スイッチの立上りエッジが設定されているか否かに基づいて当該操作スイッチの操作がなされたか否かを判定し、当該操作スイッチの操作がなされていると判定した場合には、エッジデータを全てクリアし、当該操作スイッチの操作に応じたゲームの進行制御を実行するとともに、ゲームの進行制御に伴うコマンド(BETコマンド、内部当選コマンド、リール停止コマンドなど)を通常コマンド送信用バッファに設定する。
メインCPU41a、リール回転処理において回転中のリールに対応するストップスイッチの立上りエッジが設定されていると判定した場合に、他の操作スイッチの検出状態がONであるか否かを判定し、他の操作スイッチの検出状態がONであると判定した場合、すなわち他の操作スイッチが操作されている状態で回転中のリールに対応するストップスイッチの操作が検出された場合には、有効な停止操作とせず、対応するリールの停止制御を行なわないようになっている。
これは、ストップスイッチ8L、8C、8Rのうち2つ以上の操作が検出された場合に、いずれかの操作に基づく停止制御を優先すると、他方の停止制御が遅れてしまい、リールの停止態様が不自然になる等の問題が生じ得る虞があるためであり、上記のように他の操作スイッチが操作されている状態で回転中のリールに対応するストップスイッチの操作が検出されても、対応するリールの停止制御を行なわないことで、一方のリールの停止制御によって他方のリールの停止制御が遅れることがないようになっている。
また、メインCPU41aは、リール回転処理において回転中のリールに対応するストップスイッチの立上りエッジが設定されていると判定した場合に、他のストップスイッチに限らず、他の操作スイッチの検出状態がONであるか否かを判定し、他の操作スイッチのいずれかの検出状態がONであると判定した場合には、有効な停止操作とせず、対応するリールの停止制御を行なわないようになっており、操作スイッチの検出状態のうちストップスイッチの検出状態のみを抽出することなく、たとえば、ONを1とし、OFFを0とした場合に、操作スイッチ全ての検出状態の総和を算出し、2以上であれば、他の操作スイッチが検出状態と判定するなど、操作スイッチ全ての検出状態を一括して判定することが可能となる。
また、メインCPU41aは、設定変更状態において、未だ設定値が確定していない段階で、設定値を確定させるためのスタートスイッチ7の立上りエッジが設定されていると判定した場合に、他の操作スイッチの検出状態がONであるか否かを判定し、他の操作スイッチのいずれかの検出状態がONであると判定した場合には、設定値を確定させる制御を行なわないようになっている。
これは、後述のように設定変更状態においてサブCPU91a側で制御される管理者モードの操作手段として本来であればメインCPU41aがゲームの進行制御に用いる操作スイッチを流用しているためであり、上記のように未だ設定値が確定していない段階で、他の操作スイッチが操作されている状態で設定値を確定させるためのスタートスイッチ7が操作されても設定値の確定制御を行なわないことで、管理者モードの操作に伴い、誤ってスタートスイッチ7も同時に操作してしまった場合でも、設定値は確定せず、設定値が未設定の段階が維持されるので、管理者が予期せずに設定値を確定させてしまうことがなく、誤操作によって再度、電源を落として最初から設定変更状態としなければならないといった煩わしさを軽減できるようになっている。
メインCPU41aは、タイマ割込処理(メイン)中にサブCPU91aに対してコマンドを送信するコマンド送信処理(図37参照)を実行する。コマンド送信処理では、通常コマンド送信用バッファにコマンドが格納されているか否か、すなわちゲームの進行制御に伴うコマンドが格納されているか否かを判定し、通常コマンド送信用バッファにコマンドが格納されていると判定した場合には、通常コマンド送信用バッファに格納されているゲームの進行制御に伴うコマンドをサブCPU91aに対して送信する。
また、コマンド送信処理では、操作検出コマンドの送信時期か否かを判定し、操作検出コマンドの送信時期であれば、操作スイッチの検出状態が変化したか否かに関わらず、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rの検出状態を示す確定データを取得し、取得した確定データに基づいて、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8RそれぞれのON/OFFの状態を特定可能な操作検出コマンドを作成して特定コマンド送信用バッファに設定し、直ちにサブCPU91aに対して送信する。操作検出コマンドの送信時期か否かは、RAM41cに割り当てられた送信カウンタの値を参照して判断する。送信カウンタは、コマンド送信処理が実行される毎に1ずつ減算され、その値が0となった際に操作検出コマンドの送信時期であることが特定され、送信カウンタには新たに初期値(本実施の形態では5)が設定される。このため、本実施の形態では、コマンド送信処理が5回実行される毎に1回、その時点の確定データに基づいて操作検出コマンドがサブCPU91aに対して送信されるようになっている。
前述のように、コマンド送信処理は、タイマ割込処理(メイン)が4回実行される毎に1回実行されるので、操作検出コマンドはタイマ割込処理(メイン)が20回実行される毎に1回送信され、タイマ割込処理(メイン)の実行間隔は、約0.56msであるので、メインCPU41aは、約11.2ms毎に1回、サブCPU91aに対して送信することとなる。
なお、本実施の形態では、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rの確定データを取得して操作検出コマンドを作成しているが、ポート入力処理において検知された1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rの入力データを取得して操作検出コマンドを作成してもよい。
このように本実施の形態では、メインCPU41aが、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rが操作されたことを特定可能な操作検出コマンドをサブCPU91aに対して送信することで、サブCPU91aが、それぞれの制御状態においてゲームの進行制御に関与する操作スイッチであるか否かに関わらず、メインCPU41aにより検出される操作スイッチが操作されたことが特定できるようになっており、ゲームの進行制御に関与しない操作スイッチの操作に応じて演出を実行可能である。
また、メインCPU41aは、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれかが操作されたか否かに関わらず、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8RそれぞれのON/OFFの状態を特定可能な操作検出コマンドを定期的に送信することで、サブCPU91aは、これら操作スイッチのON/OFFの状態を定期的に特定できるようになっており、サブCPU91aが操作検出コマンドを取りこぼした場合であっても、次回送信される操作検出コマンドに基づいて全ての操作スイッチについて最新の検出状態を特定することが可能となり、ゲームの進行制御に関与しない操作スイッチの操作に応じた演出を確実に実行することができる。
また、操作検出コマンドから、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R全ての検出状態を特定することが可能であるため、サブCPU91a側で、複数のスイッチの同時操作や特定のスイッチのみの操作といった複数の操作スイッチの操作状況を反映した演出を行なうことが可能となり、操作スイッチの操作を用いた演出を多様なものにできる。
また、操作検出コマンドは、メインCPU41aが一定間隔毎に実行するタイマ割込処理(メイン)が実行される毎に送信されるのではなく、タイマ割込処理(メイン)が予め定められた回数(本実施の形態では20回)実行される毎に送信されるので、操作検出コマンドの送信によってメインCPU41aの負荷が極端に増大してしまうことを防止できる。
なお、本実施の形態では、メインCPU41aが、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれかが操作されたか否かに関わらず、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8RそれぞれのON/OFFの状態を特定可能な操作検出コマンドを一定間隔毎に送信する構成であるが、いずれかの操作スイッチの検出状態(ON/OFF)が変化したときのみ、その旨を示す操作検出コマンドを送信するようにしてもよく、このような構成とすることで、操作検出コマンドの送信を極力減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブCPU91a側でも必要以上に操作検出コマンドを受信せずに済む。
また、いずれかの操作スイッチの検出状態(ON/OFF)が変化したときに、当該操作スイッチの検出状態に加えて他の操作スイッチの検出状態も特定可能な操作検出コマンドをサブCPU91aに対して送信する構成としてもよく、このような構成とすることで、操作検出コマンドの送信を極力減らすことが可能となるうえに、サブCPU91aは、操作検出コマンドから検出状態の変化した操作スイッチの検出状態だけでなく、他の操作手段の検出状態も特定できるようになり、サブCPU91a側で複数の操作手段の操作状況を反映した演出を行なうことが可能となり、操作スイッチの操作を用いた演出を多様なものにできる。
また、メインCPU41aは、コマンド送信処理において操作検出コマンドを送信する場合、通常コマンド送信用バッファに未送信のコマンドが残っていても通常コマンド送信用バッファのコマンドを送信せず、通常コマンド送信用バッファに設定されている未送信のコマンドは、次回のコマンド送信処理において送信するようになっている。すなわち通常コマンド送信用バッファに未送信のコマンドが設定されている状態で操作検出コマンドの送信時期となった場合には、操作検出コマンドの送信を優先する。
通常コマンド送信用バッファのコマンドは、あるコマンド送信処理において送信されなかった場合でも、次回のコマンド送信処理で送信されるため、演出のタイミングが大幅に遅れてしまうことがないが、操作検出コマンドはコマンド送信処理が5回実行される毎に送信されるため、操作検出コマンドの送信時期となったコマンド送信処理で操作検出コマンドが送信されなかった場合には、前回の操作スイッチの検出状態との違いが特定されるまでの間隔が本来の操作検出コマンドの送信間隔よりも長くなることで、演出のタイミングが大幅に遅れてしまう可能性があるが、本実施の形態では、前述のように通常コマンド送信用バッファの未送信コマンドよりも操作検出コマンドの送信が優先されるので、ゲームの進行制御に関与しない操作スイッチの操作に伴う演出の遅れを極力抑えることができるとともに、メインCPU41aからサブCPU91aに対してコマンドが連続して送信される場合でも、必ずコマンド送信処理が実行された後、次回コマンド送信処理が実行されるまでの間隔を空けてコマンドが1つずつ送信されるので、サブCPU91aが確実にコマンドを受信することが可能となる。
また、ゲームの進行制御に伴うコマンドはゲーム処理において一時的に通常コマンド送信用バッファに設定され、その後のコマンド送信処理において送信されるのに対して、操作検出コマンドは、通常コマンド送信用バッファには設定されず、それとは異なる特定コマンド送信用バッファに設定されて送信されるようになっており、ゲームの進行制御に基づいて不定期に送信されるコマンドの送信タイミングと、一定間隔毎に送信される操作検出コマンドの送信タイミングと、が重複してもこれらコマンドの送信制御が複雑とならない。特に、本実施の形態のように、ゲームの進行制御に基づいて不定期に送信されるコマンドの送信タイミングと、一定間隔毎に送信される操作検出コマンドの送信タイミングと、が重複した場合において、いずれか一方のコマンドを優先させるにあたり、いずれか一方のコマンド送信用バッファのアドレスを指定する制御を行なうのみで、一方のコマンドの送信を優先させることが可能となる。さらに、通常コマンド送信用バッファのように、複数のコマンドを格納可能であり、さらに最も最初に格納されたコマンドを送信する構成(いわゆるキュー)を採っているにも関わらず、後から格納された格納された操作検出コマンドを優先させようとすると、送信順位の入替などを行なう必要があり、送信制御が著しく複雑となってしまうこととなるが、操作検出コマンドを通常コマンド送信用バッファに格納せずに送信する構成とすることでこのような問題は生じることがない。
なお、本実施の形態では、コマンド送信処理において通常コマンド送信用バッファの未送信コマンドよりも操作検出コマンドの送信を優先する構成であるが、コマンド送信処理において操作検出コマンドの送信時期か否かを判定する前に通常コマンド送信用バッファに未送信のコマンドが設定されているか否かを判定し、通常コマンド送信用バッファに未送信のコマンドが残っている場合には、通常コマンドの送信用バッファに設定されているコマンドを送信し、同じコマンド送信処理において操作検出コマンドを送信しない構成、すなわち操作検出コマンドよりも通常コマンド送信用バッファの未送信のコマンドの送信を優先する構成としてもよく、このようにすることで、ゲームの進行制御に応じた演出が、操作スイッチの検出状態が変化したか否かに関わらず送信される操作検出コマンド、すなわち演出が実行されるか否かが不確定な状態を示すコマンドの送信によって遅れてしまうことを防止できる。
また、操作検出コマンドの送信時期において、通常コマンド送信用バッファに未送信のコマンドが設定されている場合に、同じコマンド送信処理において双方のコマンドを送信する構成としてもよく、このような構成とした場合には、ゲームの進行制御に応じた演出およびゲームの進行制御に関与しない操作スイッチの操作に伴う演出の双方について演出のタイミングが遅れてしまうことを防止できる。
また、メインCPU41aは、図54に示すように、リセット信号がOFFとなって起動した際に、起動処理を実行し、起動処理の終了時に割込が許可され、その後、タイマ割込処理(メイン)を一定間隔毎に実行する。そして、メインCPU41aが電断前の状態に復帰可能な場合には、図54(a)に示すように、起動処理において割込が許可される前に復帰コマンドをサブCPU91aに対して送信する。また、RAM41cの格納データの異常によりメインCPU41aが電断前の状態に復帰不可能な場合には、起動処理において割込が許可される前にRAM異常あるいは乱数回路異常を示すエラーコマンドをサブCPU91aに対して送信する。
また、設定キースイッチ37がONの状態であり、RAM41cが初期化され、電断前の状態に復帰しない場合には、図54(b)に示すように、起動処理において割込が許可される前に設定開始コマンドをサブCPU91aに対して送信する。これら起動処理において送信されるコマンドのうち復帰コマンドからは、メインCPU41aが電断前の状態に復帰する旨が特定され、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドからは、メインCPU41aが電断前の状態には復帰しない旨が特定されることとなる。
そして、前述のように操作検出コマンドは、タイマ割込処理(メイン)において送信されるとともに、起動処理の終了までは割込処理が許可されないので、メインCPU41aの起動後、メインCPU41aが電断前の状態に復帰する旨が特定される復帰コマンドを送信したか、メインCPU41aが電断前の状態に復帰しない旨が特定されるRAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドを送信した後に、操作検出コマンドの送信が許可されることとなる。
このようにメインCPU41aは、電源投入後、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、あるいは設定開始コマンドをサブCPU91aに対して送信するまでは操作検出コマンドをサブCPU91aに対して送信しないので、たとえばメインCPU41aを復帰させるか否かが確定していない状態にも関わらず、サブCPU91aが操作検出コマンドから特定される操作に応じて演出を実行してしまうことがなく、電源投入時においてメインCPU41aの状態と食い違った演出が実行されてしまうことを防止できる。
また、メインCPU41aは、起動処理において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドをサブCPU91aに対して送信し、その後、割込を許可することでタイマ割込処理(メイン)を実行してその中のコマンド送信処理にて操作検出コマンドを送信するようになっており、コマンド送信処理において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドが既に送信されているか否かを判断することなく、操作検出コマンドよりも先にコマンド送信処理において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドを送信することができる。
なお、本実施の形態では、起動処理において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドをサブCPU91aに対して送信し、コマンド送信処理において操作検出コマンドを送信する構成であるが、起動処理では、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかを特定コマンド送信用バッファに設定し、割込が許可された後、コマンド送信処理において、まず復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかが特定コマンド送信用バッファに設定されているか否かを判定し、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかが設定されている場合には、最優先でサブCPU91aに対して送信し、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれも設定されていないことを条件に、操作検出コマンドを送信する構成としてもよく、このような構成であっても操作検出コマンドよりも先に復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドを送信することができる。
また、起動処理において復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかを通常コマンド送信用バッファに設定し、コマンド送信処理において、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかが送信されるまでは、操作検出コマンドの送信を禁止し、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドのいずれかが送信されたことを条件に操作検出コマンドの送信を許可し、その後のコマンド送信処理から操作検出コマンドを送信する構成としてもよく、このような構成であっても操作検出コマンドよりも先に復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンド、設定開始コマンドを送信することができる。
また、メインCPU41aは、タイマ割込処理(メイン)中は、割込が禁止され、その間に電圧低下信号が入力されても、タイマ割込処理(メイン)が終了するまでは、電断割込処理(メイン)を実行することはなく、タイマ割込処理(メイン)の終了を待って電断割込処理(メイン)を実行する。
また、通常コマンド送信用バッファには、複数のコマンドが格納可能であり、通常コマンド送信用バッファに未送信のコマンドが格納されている状態でも電断割込処理(メイン)が実行され、停電状態となり、その後の起動時において電断前の状態に復帰する場合には、通常コマンド送信用バッファに未送信のコマンドが残っている状態で復帰することとなる。
一方、操作検出コマンドは、コマンド送信処理において操作検出コマンドの送信時期である場合に、操作検出コマンドが作成され、そのコマンド送信処理内で送信されてしまう。そして、コマンド送信処理は、タイマ割込処理(メイン)において実行されるので、電断時に未送信の操作検出コマンドが残ることはなく、起動時において電断前の状態に復帰する場合でも、未送信の操作検出コマンドが残った状態で復帰することはない。
このように本実施の形態では、メインCPU41aの起動時において電断前の状態に復帰する場合に、電断前に未送信のコマンドが通常コマンド送信用バッファに格納されている場合には、これら通常コマンド送信用バッファに格納されている未送信のコマンドも復帰することとなるが、電断前の状態で操作検出コマンドが未送信となることはなく、電断前の状態で未送信となった操作検出コマンドが復帰して、復帰後の操作スイッチの検出状態が反映されていない操作検出コマンドが送信されてしまうことはない。このため、電源投入後、操作スイッチがなんら操作されていないにも関わらず、ゲームの進行制御に関与しない操作に応じた演出が実行されてしまうことを防止できる。
また、本実施の形態では、前述のように操作検出コマンドは、ゲームの進行制御に応じたコマンドが設定される通常コマンド送信用バッファには格納されずに送信されるので、電断前にゲームの進行制御に応じたコマンドのみ復帰させ、操作検出コマンドは復帰させない構成とするにあたり、制御が複雑化してしまうことを防止できる。
なお、本実施の形態では、操作検出コマンドは、コマンド送信処理において操作検出コマンドの送信時期である場合に、操作検出コマンドが作成され、そのコマンド送信処理内で送信されるとともに、タイマ割込処理(メイン)の実行中は、電断割込処理が禁止されることにより、電断前の状態で操作検出コマンドが未送信となることはなく、電断前の状態で未送信となった操作検出コマンドが復帰しない構成であるが、起動時において未送信の操作検出コマンドが残っている場合に、未送信の操作検出コマンドをクリアすることで、電断前の状態で未送信となった操作検出コマンドが復帰しない構成としてもよい。この場合には、ゲームの進行制御に応じたコマンドと、操作検出コマンドと、が異なるコマンド送信用バッファに格納される構成とすることで、操作検出コマンドが格納されているコマンド送信用バッファのデータのみをクリアすることで、操作検出コマンドをクリアすることが可能となり、通常コマンド送信用バッファに格納されているコマンドの送信順などを変更する必要もない。
本実施の形態では、タイマ割込処理(メイン)においてコマンド送信処理が5回実行される毎、すなわちコマンド送信処理は、タイマ割込処理(メイン)4回毎に実行するタイマ割込2において実行されるので、タイマ割込処理(メイン)20回毎に操作検出コマンドが送信されるようになっている。このため、操作検出コマンドの送信回数と操作検出コマンドの送信間隔とから、メインCPU41aが起動したタイミング(リセット信号がOFFとなったタイミング)や割込許可がなされたタイミングを特定することが可能となり、メインCPU41aが備える乱数カウンタを、起動時に初期化し、その後のタイマ割込処理(メイン)毎に更新する場合や、起動時に初期化した後、一定間隔(クロック信号の入力など)で更新する場合に、メインCPU41aが起動したタイミングや割込許可がなされたタイミングが特定されてしまうと、現在の乱数カウンタの値を特定し、特定した乱数カウンタの値を用いて不正がなされる可能性があり、乱数カウンタの値がゲームに関わる場合には、著しく不公正な結果を導く虞がある。
これに対して本実施の形態では、メインCPU41aは、起動時において電断前の状態に復帰する場合には、電断前の送信カウンタの値も復帰させて、電断前の送信カウンタの値からコマンド送信処理の回数を計数し、送信カウンタの値が0となったとき、すなわち電断前にコマンド送信処理を実行してから実行したコマンド送信処理が5回に到達したときに起動後、最初の操作検出コマンドを送信し、その後は、コマンド送信処理5回毎に操作検出コマンドを送信することとなり、図54(a)に示すように、メインCPU41aの起動後、割込が許可された後に、最初に操作検出コマンドが送信されるまでに実行されるコマンド送信処理の回数が一定とならず、メインCPU41aの起動時から最初の操作検出コマンドが送信されるまでに要する時間(t1)が一定とならないので、操作検出コマンドの送信回数と操作検出コマンドの送信間隔とから、メインCPU41aが起動したタイミング(リセット信号がOFFとなったタイミング)や割込許可がなされたタイミングを特定することが困難となり、これらメインCPU41aが起動したタイミングや割込許可がなされたタイミングが特定されることに伴う不正を防止できる。
また、メインCPU41aは、起動時においてRAM41cを初期化する場合に、電断前の送信カウンタの値も初期化されてしまうこととなるが、この場合には、0〜3の範囲からいずれかの値をランダムに選択し、選択した値に1を加算した値を送信カウンタに設定し、その値からコマンド送信処理の回数を計数し、送信カウンタの値が0となったとき、すなわち起動時に1〜4からランダムに選択された回数のコマンド送信処理を実行したときに、起動後、最初の操作検出コマンドを送信し、その後は、コマンド送信処理5回毎に操作検出コマンドを送信することとなり、この場合であっても、図54(b)に示すように、メインCPU41aの起動後、割込が許可された後に、最初に操作検出コマンドが送信されるまでに実行されるコマンド送信処理の回数が一定とならず、メインCPU41aの起動時から最初の操作検出コマンドが送信されるまでに要する時間(t1’)が一定とならないので、操作検出コマンドの送信回数と操作検出コマンドの送信間隔とから、メインCPU41aが起動したタイミング(リセット信号がOFFとなったタイミング)や割込許可がなされたタイミングを特定することが困難となり、これらメインCPU41aが起動したタイミングや割込許可がなされたタイミングが特定されることに伴う不正を防止できる。
なお、本実施の形態では、メインCPU41aの起動時に、電断前の状態に復帰する場合には、電断前の送信カウンタの値から操作検出コマンドの送信時期を計数し、RAM41cを初期化する場合には、送信カウンタの値をランダムに選択し、操作検出コマンドの送信時期を計数することで、メインCPU41aの起動時から最初の操作検出コマンドが送信されるまでに要する時間が一定とならない構成としているが、いずれの場合においても、送信カウンタの値をランダムに選択し、操作検出コマンドの送信時期を計数することで、メインCPU41aの起動時から最初の操作検出コマンドが送信されるまでに要する時間が一定とならない構成としてもよい。
また、メインCPU41aの起動毎に、送信カウンタの初期値として異なる値を設定すること、たとえば、起動毎に2と4を交互に設定したり、起動毎に送信カウンタの初期値を1、2、3、4、5の順番で設定するなど、予め定められたルールに従って送信カウンタの初期値を設定することにより、メインCPU41aの起動時から最初の操作検出コマンドが送信されるまでに要する時間が一定とならない構成としてもよい。
サブ制御部91のRAM91cには、操作スイッチの検出状態の変化状況が操作スイッチ毎に格納される検出状態格納領域と、操作スイッチの操作状態が変化した旨を示す操作検出フラグが操作スイッチ毎に格納される操作検出フラグ格納領域と、が割り当てられている。さらに検出状態格納領域には、操作検出コマンドを受信する前(前回)の検出状態と、操作検出コマンドを受信した後(今回)の検出状態と、が割り当てられており、それぞれに操作検出コマンドの受信前後の各操作スイッチの検出状態が格納されるようになっている。
サブCPU91aは、タイマ割込処理(サブ)において受信用バッファに未処理のコマンドが格納されていると判定した場合に、操作検出処理1を行なう。操作検出処理1では、未処理のコマンドが操作検出コマンドか否かを判定し、操作検出コマンドであると判定した場合に、検出状態格納領域に格納されている今回の検出状態を前回の検出状態に移動し、操作検出コマンドが示す各操作スイッチの検出状態を今回の検出状態として格納するとともに、前回の検出状態と今回の検出状態とが異なる操作スイッチがある場合に、OFFからONに変化した場合には、その操作スイッチに対応する操作検出フラグとして立上りフラグを設定し、ONからOFFに変化した場合には、その操作スイッチに対応する操作検出フラグとして立下りフラグを設定する。
このように本実施の形態では、メインCPU41aが、操作スイッチの検出状態が変化したか否かに関わらず、定期的に全ての操作スイッチの検出状態を特定可能な操作検出コマンドを送信するとともに、サブCPU91aは、操作検出コマンドを受信した際に、検出状態格納領域に格納されている操作検出コマンドの受信前後の各操作スイッチの検出状態を更新し、検出状態が異なる操作スイッチがある場合に、その操作スイッチに対応する操作検出フラグを設定するようになっており、サブCPU91aは、操作検出フラグの有無を確認することで、操作スイッチの検出状態が変化した旨に加え、操作検出コマンドの受信前後で各操作スイッチの検出状態がどのように変化したか、すなわちOFFからONに変化したのか、ONからOFFに変化したのか、を判別できるようになっている。
このため、サブCPU91aは、操作スイッチの操作が開始したタイミングだけでなく、その操作が解除されたタイミングに応じて演出を行なったり、演出を変化させることが可能となり、ゲームの進行制御に関与しない操作スイッチの操作態様に応じて多彩な演出を行なうことができる。
なお、本実施の形態では、サブCPU91aが、操作スイッチの検出状態の変化に加えて操作検出コマンドの受信前後の各操作スイッチの検出状態がどのように変化したか否かを判別できるようになっているが、サブCPU91aが、操作スイッチが操作されたこと、すなわちOFFからONに変化したことのみを判別できる構成としてもよく、このような構成とすることで、ゲームの進行制御に影響しない操作スイッチの操作に伴うサブCPU91aの制御負荷を軽減することができる。
また、検出状態格納領域には、各操作スイッチの検出状態が格納されており、サブCPU91aは、いずれかの操作検出フラグが設定され、当該操作検出フラグに対応する操作スイッチの検出状態の変化が特定された場合に、検出状態格納領域の他の操作スイッチの検出状態を確認することで、検出状態が変化した操作スイッチだけでなく、他の操作スイッチの検出状態も特定できるようになっている。
このため、複数の操作スイッチが同時に操作されている状態を特定可能となり、たとえば、パターン1やパターン3の操作演出のように、複数の操作スイッチが同時に操作されることで演出を行なうことが可能となり、複数の操作スイッチの操作の仕方によって多様な演出を行なうことができる。
また、サブCPU91aは、パターン1(後述する図61参照)の操作演出のように、左ストップスイッチ、中ストップスイッチの操作スイッチが同時に操作されることで演出を行なう場合に、左ストップスイッチが検出されており、かつ右ストップスイッチが検出されていない状態で、中ストップスイッチの操作を検出した場合にはステージ変更演出を行なうが、左ストップスイッチおよび右ストップスイッチの双方が検出されている状態で、中ストップスイッチの操作を検出した場合には、上記と同様に左ストップスイッチと中ストップスイッチの操作が同時に検出されていることとなるが、この場合には、ステージ変更演出を行なわないようになっている。
すなわち特定の操作スイッチの操作に応じて特定の操作演出を行なう際に、特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行なわないようになっている。
このため、特定の操作スイッチの操作に基づく特定の操作演出は、特定の操作スイッチが他の操作スイッチと同時に操作された場合や他の操作スイッチが操作されている状態で操作された場合には実行されることがなく、誤った操作によって特定の操作演出が実行されることがないため、特定の操作演出を希望する遊技者に対してのみ特定の操作演出を実行することができる。
また、上記のように特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行なわないことにより、たとえば、パターン1とパターン3(後述する図61参照)の操作演出のように、各々の演出を実行させるための操作スイッチの一部が重複する場合でも、異なる演出を実行させることが可能となる。すなわちパターン1の操作演出は、左ストップスイッチと中ストップスイッチが同時に操作されることで実行され、パターン2の操作演出は、中ストップスイッチと右ストップスイッチが同時に操作されることで実行されるが、左ストップスイッチと右ストップスイッチが同時に操作されている状態で、中ストップスイッチが操作された際に、左ストップスイッチと中ストップスイッチの同時操作なのか、中ストップスイッチと右ストップスイッチの同時操作なのか、を判別することができなくなってしまい、いずれか一方の同時操作に対してしか演出を割り当てることができなくなってしまうが、特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行なわないことにより、パターン1とパターン2の操作演出のようなケースであっても、それぞれの同時操作に対して演出を割り当てることが可能となり、複数の操作スイッチの操作の仕方によってさらに多様な演出を行なうことができる。
サブCPU91aは、操作検出処理1においていずれかの操作スイッチの検出状態がOFFからONに変化した場合、すなわち操作スイッチの操作が開始した場合に、RAM91cに割り当てられた操作時間カウンタのうち該当する操作スイッチの操作時間カウンタの値を初期化する。操作時間カウンタの値は、タイマ割込処理(サブ)が実行される毎に加算されるようになっており、操作時間カウンタの値を参照することで操作スイッチの操作が開始してからの経過時間を判別できる。
また、サブCPU91aは、タイマ割込処理(サブ)が実行される毎に、操作検出処理2を実行する。操作検出処理2では、検出状態格納領域に格納された今回の検出状態がONであるか否かを操作スイッチ毎に判定し、ONである場合、すなわち操作スイッチの操作が継続している場合には、該当する操作スイッチの操作時間カウンタの値を参照し、予め定められた時間経過していれば、その旨を示す時間経過フラグを操作スイッチに対応付けて設定する。本実施の形態では、3秒経過時、5秒経過時、10秒経過時に、それぞれ時間経過フラグとして3秒経過フラグ、5秒経過フラグ、10秒経過フラグを設定する。
このため、サブCPU91aは、時間経過フラグが設定されているか否かを確認することにより操作スイッチが継続して操作された時間が一定時間経過したことを契機に演出を行なうことが可能となる。
なお、本実施の形態では、サブCPU91aが、操作スイッチの検出状態がOFFからONに変化した後、当該操作スイッチの検出状態がONからOFFに変化せずに経過した時間を計時することで、サブCPU91a側で操作スイッチの連続操作時間を把握することが可能となり、メインCPU41a側で個々のスイッチ毎に連続操作時間を計時するタイマを有することなく、サブCPU91aのプログラムを変更するのみで操作スイッチの連続操作時間を検出することが可能となるが、メインCPU41a側で操作スイッチの操作がOFFからONに変化した後、ONからOFFに変化せずに経過した時間を計時し、この時間が規定時間に到達したときに操作スイッチが規定時間連続して操作された旨を示すコマンドを送信することで、サブCPU91a側で、操作スイッチの操作が継続して操作された旨を特定できるようにしてもよい。
また、サブCPU91aは、操作検出処理1においていずれかの操作スイッチの検出状態がOFFからONに変化した場合、すなわち操作スイッチの操作が開始した場合に、RAM91cに割り当てられた連続操作カウンタのうち該当する操作スイッチの連続操作カウンタの値を1加算する。連続操作カウンタの値は、他の操作スイッチの検出状態がOFFからONに変化した場合または演出開始時などのサブCPU91aからの命令によりクリアされるようになっており、連続操作カウンタの値を参照することである起点から特定の操作スイッチが連続して操作された回数を判別できる。そして、サブCPU91aは、連続操作カウンタの値を確認することにより、ある起点からの操作スイッチの連続操作回数が規定回数に到達したことを契機に演出を行なうことが可能となる。
なお、本実施の形態では、サブCPU91aが、操作スイッチの検出状態がOFFからONに変化した回数を計数することで、サブCPU91a側で操作スイッチ連続操作回数を把握することが可能となり、メインCPU41a側で個々のスイッチ毎に連続操作回数を計数するカウンタを有することなく、サブCPU91aのプログラムを変更するのみで操作スイッチの操作回数を検出することが可能となるが、メインCPU41a側で操作スイッチの操作がOFFからONに変化した回数を計数し、この回数が規定回数に到達したときに操作スイッチが規定回数操作された旨を示すコマンドを送信することで、サブCPU91a側で、操作スイッチの操作が規定回数操作された旨を特定できるようにしてもよい。
サブ制御部91のRAM91cには、制御パターンが設定される制御パターン格納領域が割り当てられており、サブCPU91aは、メイン制御部41からコマンドを受信した際に、当該コマンドに応じた制御パターンを制御パターン格納領域に設定するとともに、制御パターン格納領域に設定されている制御パターンを参照して演出装置の出力状態を制御する。
たとえば、図55(a)に示すように、サブCPU91aがゲームの進行制御に応じたコマンドaを受信すると、コマンドaに対応するパターンaを制御パターン格納領域に設定し、これとほぼ同時に演出装置をパターンaに基づく出力状態に制御する。これにより液晶表示器51にはパターンaに基づく画像が表示され、スピーカ53、54からパターンaに基づく効果音が出力され、演出効果LED52、リールLED55がパターンaに基づく点灯態様となる。その後、ゲームの進行制御に応じたコマンドbを受信すると、制御パターン格納領域の制御パターンをコマンドbに対応するパターンbに更新し、制御パターン格納領域の制御パターンが変更されると、これとほぼ同時に演出装置を変更後のパターンbに基づく出力状態に制御する。これにより液晶表示器51に表示されているパターンaに基づく画像がパターンbに基づく画像に更新され、スピーカ53、54からパターンbに基づく効果音が出力され、演出効果LED52、リールLED55がパターンbに基づく点灯態様となる。また、図55(b)に示すように、対応する制御パターンがコマンドaと同じコマンドcを受信すると、制御パターン格納領域の制御パターンをコマンドcに対応するパターンaに更新するが、制御パターン格納領域の制御パターン自体は変化せず、この場合には、演出装置の出力状態を切り替えることなく、そのままの状態を維持するようになっている。
また、サブCPU91aは、電源投入時においてメインCPU41aよりも先に起動するとともに、その起動時に、RAM91cのデータが正常であれば、図56に示すように、メインCPU41aの起動時に必ず送信される復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信せずとも、サブCPU91aの制御状態を電断前の制御状態に復帰させるが、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信するまでは、制御パターン格納領域に設定されている制御パターンに応じた出力制御は行なわず、復旧処理中である旨を報知する復旧中パターンAに応じた出力制御を行なう。これにより液晶表示器51には復旧処理中を示す復旧中画像が表示され、演出効果LED52は消灯状態となる。なお、スピーカ53、54からの効果音の出力はなく、リールLED55も消灯状態となる。
その後、復帰コマンドを受信した場合には、制御パターン格納領域に設定されている制御パターンに応じた出力制御を行ない、この時点で演出装置の出力状態が復旧中パターンAから制御パターン格納領域に設定されている制御パターンに応じた出力状態に切り替わる。これにより液晶表示器51に表示されている復旧中画像が制御パターン格納領域に設定されている制御パターンに基づく画像に更新され、スピーカ53、54から制御パターン格納領域に設定されている制御パターンに基づく効果音が出力され、演出効果LED52、リールLED55が制御パターン格納領域に設定されている制御パターンに基づく点灯態様となる。
また、復帰コマンドを受信した場合には、検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴を初期化するようになっており、これら電断前に受信した操作検出フラグに基づく操作スイッチの検出状態や操作履歴は、復帰コマンドを受信しても復帰させない。
また、サブCPU91aは、その起動時に、RAM91cのデータが正常でなければ、図57に示すように、メインCPU41aの起動時に必ず送信される復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信せずとも、RAM91cを初期化し、制御パターン格納領域に初期化後に対応するパターン0(通常画面の表示など)を設定するが、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信するまでは、制御パターン格納領域に設定されているパターン0に応じた出力制御は行なわず、復旧処理中である旨を報知する復旧中パターンBに応じた出力制御を行なう。これにより液晶表示器51には復旧中パターンAと同じ復旧中画像が表示されるが、演出効果LED52は復旧中パターンAと異なり点滅状態となる。なお、復旧中パターンAと同様にスピーカ53、54からの効果音の出力はなく、リールLED55も消灯状態となる。
その後、復帰コマンドを受信した場合には、制御パターン格納領域に設定されているパターン0に応じた出力制御を行ない、この時点で演出装置の出力状態が復旧中パターンBから制御パターン格納領域に設定されているパターン0に応じた出力状態に切り替わる。これにより液晶表示器51に表示されている復旧中画像が制御パターン0に基づく通常画面に更新され、スピーカ53、54からの効果音の出力はなく、演出効果LED52、リールLED55が消灯した状態となる。
また、RAM91cのデータが正常でない場合には、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信するまでの出力状態として、RAM91cのデータが正常の場合の復旧中パターンAとは、その出力態様の異なる復旧中パターンBに応じた出力制御を行なうようになっている。本実施の形態では、復旧中パターンA、Bともに液晶表示器51に復旧中画像が表示され、スピーカ53、54からの効果音の出力はなく、リールLED55が消灯された状態となるが、復旧中パターンAでは、演出効果LEDが消灯状態となるのに対して、復旧中パターンBでは、演出効果LEDが点滅状態となる。
また、RAM91cの初期化に伴って検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴も初期化される。
また、サブCPU91aは、その起動時に、RAM91cのデータが正常であり、制御状態を電断前の制御状態に復帰させた後、設定開始コマンドを受信した場合には、図58に示すように、RAM91cを初期化し、制御パターン格納領域に後述する管理情報へアクセス可能とする管理者用パターンを設定し、制御パターン格納領域の制御パターンが管理者用パターンに変更されると、これとほぼ同時に演出装置を管理者用パターンに応じた出力状態に制御し、演出装置の出力状態を復旧中パターンAから設管理者用パターンに基づく出力状態に切り替える。これにより液晶表示器51に表示されている復旧中画像が管理者モード画面に更新され、スピーカ53、54から警告音が出力され、演出効果LED52、リールLED55が点滅状態となる。
また、RAM91cの初期化に伴って検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴も初期化される。
また、RAM91cのデータ正常ではなく、RAM91cを初期化した後、設定開始コマンドを受信した場合には、制御パターン格納領域に設定されているパターン0を管理者用パターンに更新し、制御パターン格納領域のパターン0が管理者用パターンに変更されると、これとほぼ同時に演出装置を管理者用パターンに応じた出力状態に制御し、演出装置の出力状態を復旧中パターンBから管理者用パターンに基づく出力状態に切り替える。
また、RAM91cの初期化に伴って検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴も初期化される。
また、サブCPU91aは、その起動時に、RAM91cのデータが正常であり、制御状態を電断前の制御状態に復帰させた後、RAM異常あるいは乱数回路異常を示すエラーコマンドを受信した場合には、図59に示すように、RAM91cを初期化し、制御パターン格納領域にエラーパターンを設定し、制御パターン格納領域がエラーパターンに変更されると、これとほぼ同時に演出装置をエラーパターンに応じた出力状態に制御し、演出装置の出力状態を復旧中パターンAからエラーパターンに基づく出力状態に切り替える。これにより液晶表示器51に表示されている復旧中画像がエラー報知画像に更新され、スピーカ53、54から警告音が出力され、演出効果LED52、リールLED55が点滅状態となる。
また、RAM91cの初期化に伴って検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴も初期化される。
また、RAM91cのデータ正常ではなく、RAM91cを初期化した後、RAM異常あるいは乱数回路異常を示すエラーコマンドを受信した場合には、制御パターン格納領域に設定されているパターン0をエラーパターンに更新し、制御パターン格納領域のパターン0がエラーパターンに変更されると、これとほぼ同時に演出装置をエラーパターンに応じた出力状態に制御し、演出装置の出力状態を復旧中パターンBからエラーパターンに基づく出力状態に切り替える。
また、RAM91cの初期化に伴って検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴も初期化される。
また、サブCPU91aは、その起動時に、RAM91cのデータが正常であり、制御状態を電断前の制御状態に復帰させた後、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれも受信せずに、復帰待ち時間が経過した場合には、図60に示すように、制御パターン格納領域に設定されている電断前の制御パターンを待避し、遊技制御基板40との接続エラーを報知する接続エラーパターンに更新し、制御パターン格納領域の電断前の制御パターンが接続エラーパターンに変更されると、これとほぼ同時に演出装置を接続エラー報知の出力状態に制御し、演出装置の出力状態を復旧中パターンAから接続エラー報知の出力状態に切り替える。これにより液晶表示器51に表示されている復旧中画像が接続エラー報知画面に更新され、スピーカ53、54から警告音が出力され、演出効果LED52、リールLED55が点滅状態となる。
また、復帰待ち時間が経過した場合には、検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴を初期化する。
なお、本実施の形態では、接続エラー状態へ移行してもRAM91cはクリアされず、さらに制御パターン格納領域に設定されている電断前の制御パターンも待避されるようになっており、接続エラー状態へ移行後、一度電源を落として再投入し、サブCPU91aを再起動させた際にRAM91cのデータが正常であれば、その後メインCPU41aから復帰コマンドを受信した際に、RAM91cに保持されているデータに基づいてサブCPU91aの制御状態および演出装置の出力状態が復帰するようになっている。なお、復帰待ち時間が経過した場合には、検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴は、初期化されているため、復帰することはない。
また、RAM91cのデータ正常ではなく、RAM91cを初期化した後、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれも受信せずに、復帰待ち時間が経過した場合には、制御パターン格納領域に設定されているパターン0を接続エラーパターンに更新し、制御パターン格納領域のパターン0が接続エラーパターンに変更されると、これとほぼ同時に演出装置を接続エラー報知の出力状態に制御し、演出装置の出力状態を復旧中パターンBから接続エラー報知の出力状態に切り替える。
このようにサブCPU91aは、その起動時にRAM91cのデータが正常である場合に、制御状態を電断前の制御状態に復帰させるが、メインCPU41aから復帰コマンドを受信するまでは、演出装置による出力状態は復帰させず、復帰コマンドを受信した時点で出力状態も復帰させるようになっており、メインCPU41aが電断前の状態に復帰しない状態で、演出装置による出力状態のみが復帰してしまうことがなく、電源投入時におけるメインCPU41a側の制御状態と演出装置による出力状態とを整合させることができる。
また、サブCPU91aは、その起動時にRAM91cのデータが正常である場合に、制御状態を電断前の制御状態に復帰させるが、メインCPU41aからRAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドを受信した場合、すなわちメインCPU41a側が電断前の状態に復帰しない場合には、RAM91cを初期化するようになっており、電源投入時において、サブCPU91a側のみが復帰可能な場合でも、メインCPU41aとサブCPU91aとの制御状態とを整合させることができる。
また、サブCPU91aは、起動時にRAM91cのデータが正常か否かを判定し、正常でない場合には、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドの受信を待たずに、RAM91cを初期化し、制御パターン格納領域にパターン0を設定し、その後、復帰コマンドを受信した際に、パターン0に応じた出力状態にて演出装置の出力制御を行なうようになっており、サブCPU91aがRAM91cのデータに基づいて電断前の制御状態に復帰できない場合でも、メインCPU41aから復帰コマンドを受信した際に、演出装置の出力が停止してしまうことがなく、初期化された制御パターンに応じて演出装置の出力制御を開始することができる。
また、サブCPU91aは、その起動後、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかを受信するまでの状態において、復旧処理中を示す復旧中パターンに応じて演出装置の出力制御を行なうようになっており、電源投入後、制御パターン格納領域に設定されている制御パターンに応じた演出装置の出力が開始する前の状態でも、サブCPU91aが現在どのような状態にあるか、を外部から容易に確認することができる。
特に、本実施の形態では、サブCPU91aが電断前の制御状態に復帰した状態で、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかの受信を待機している場合には、復旧中パターンAに応じて演出装置の出力制御が行なわれるのに対して、サブCPU91aがRAM91cを初期化した状態で、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれかの受信を待機している場合には、復旧中パターンAとは出力態様の異なる復旧中パターンBに応じて演出装置の出力制御が行なわれるようになっており、復旧中パターンの出力状態にある演出装置の出力態様から、サブCPU91aが電断前の制御状態に復帰したのか、RAM91cが初期化されたのか、を外部から確認することができる。
また、サブCPU91aは、その起動後、復帰コマンド、RAM異常あるいは乱数回路異常を示すエラーコマンドまたは設定開始コマンドのいずれも受信せずに、復帰待ち時間が経過した場合には、接続エラー報知が実行されるようになっており、遊技制御基板40との接続不良である旨を特定できるようになっている。
また、接続エラー報知が実行されてもRAM91cは初期化されず、再度、電源投入した際に、メインCPU41aから復帰コマンドを受信することで、元の制御状態に復帰させることができるようになっている。
また、サブCPU91aは、その起動時にRAM91cのデータが正常である場合に、制御状態を電断前の制御状態に復帰させるが、メインCPU41aから復帰情報を受信して演出装置の出力状態も復帰させる際に、検出状態格納領域に設定されている操作スイッチの検出状態と、操作検出フラグ、操作時間カウンタの値、時間経過フラグ、連続操作カウンタの値からなる操作履歴を初期化し、これら電断前に受信した操作検出フラグに基づく操作スイッチの検出状態や操作履歴を復帰させないようになっており、電源投入後、操作スイッチが操作されていないにも関わらず、ゲームの進行制御に関与しない操作スイッチの操作に応じた演出が実行されてしまうことを防止できる。このため、後述の連続操作演出のように演出条件を満たす介入操作によって演出結果が報知されない演出は、電源投入後であっても、演出条件を満たす介入操作が行なわれた場合にしか演出結果が報知されることはないので、遊技者の介入操作に伴う演出の価値を高めることができるとともに、演出条件が電断を跨って判定されることがないため、演出条件を満たす操作が分かりやすいものとなる。
また、サブCPU91aは、その起動時にRAM91cのデータが正常であり、制御状態を電断前の制御状態に復帰させる場合において、メインCPU41aから復帰コマンドを受信したとき、すなわちメインCPU41aの制御状態も復帰し、演出装置の出力状態も含めサブCPU91a側の状態を電断前に復帰することが確定した段階で操作スイッチの検出状態や操作履歴を初期化するようになっており、メインCPU41a側が電断前の状態に復帰せず、RAM91cのデータが全て初期化されるにも関わらず、無駄に操作スイッチの検出状態や操作履歴のみの初期化が行なわれてしまうことがないうえに、演出装置の出力状態を含め全ての状態が復帰する前に操作スイッチの検出状態や操作履歴が初期化されるので、これら操作スイッチの検出状態や操作履歴が初期化されないまま演出が開始してしまうことを確実に防止できる。
また、サブCPU91aは、起動時において操作スイッチの検出状態や操作履歴を初期化するようになっており、電断時においては、操作スイッチの検出状態や操作履歴を含め、RAM91cに格納されている全てデータを保持しておく構成であるため、電断時の処理においてバックアップするデータを選別する必要がなく、電断時の処理を速やかに終了させることができる。
なお、本実施の形態では、サブCPU91aは、その起動時にRAM91cのデータが正常であり、制御状態を電断前の制御状態に復帰させる場合において、メインCPU41aから復帰コマンドを受信したときに操作スイッチの検出状態や操作履歴を初期化する構成であるが、起動時においてRAM91cのデータが正常である場合に、復帰コマンドの受信を待たず、一律に操作スイッチの検出状態や操作履歴を初期化する構成としてもよく、このような構成とした場合には、演出装置の出力状態が復帰するか否かに関わらず、その前の段階で確実に操作スイッチの検出状態や操作履歴が初期化されるので、これら操作スイッチの検出状態や操作履歴が初期化されないまま演出が開始してしまうことを確実に防止できる。また、復帰コマンドの受信を待たず、一律に操作スイッチの検出状態や操作履歴を初期化する構成を採る場合には、メインCPU41aが電断前の制御状態に復帰する際に、復帰コマンドを送信しない構成としてもよい。
また、本実施の形態では、電断時にRAM91cに格納されている全てのデータをバックアップし、メインCPU91aが起動時に操作スイッチの検出状態や操作履歴を初期化することで、電断前の操作スイッチの検出状態や操作履歴が復帰しないようにしているが、電断時に、操作スイッチの検出状態や操作履歴をバックアップしないことにより、電断前の操作スイッチの検出状態や操作履歴を復帰させない構成としてもよい。
本実施の形態においてサブCPU91aは、メインCPU41aの制御状態に応じてゲームの進行制御に関与しない操作スイッチの操作、すなわち操作検出コマンドから特定される操作スイッチの検出状態に応じて操作演出を実行する。
図61は、操作演出の一例を示すものである。図61に示すパターン1は、液晶表示器51の背景や出現するキャラクタなどの種類が異なる複数種類の演出ステージからいずれかのステージを変更するためのステージ変更演出を実行するためのパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rのうち左、中のストップスイッチ8L、8Cが同時に操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、ストップスイッチ8L、8Cの検出状態のいずれかがOFFの状態で、ストップスイッチ8L、8Cの検出状態がともにON、ストップスイッチ8Rの検出状態がOFFに変化した場合に実行される。
パターン2は、ステージ変更演出において、各ストップスイッチに対応して提示された演出パターンを選択して決定するパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態であり、かつステージ変更演出が実行されている状態においていずれかのストップスイッチが操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、いずれかのストップスイッチの検出状態がOFFの状態で、当該ストップスイッチの検出状態がON、他のストップスイッチの検出状態がOFFに変化した場合に実行される。
パターン3は、ゲームの履歴や演出情報などの台情報閲覧演出を実行するパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rのうち中、右のストップスイッチ8C、8Rが同時に操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、ストップスイッチ8C、8Rの検出状態のいずれかがOFFの状態で、ストップスイッチ8C、8Rの検出状態がともにON、ストップスイッチ8Lの検出状態がOFFに変化した場合に実行される。
パターン4は、効果音を出力するパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態であり、かつステージ変更演出が実行されていない状態においていずれかのストップスイッチが操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、いずれかのストップスイッチの検出状態がOFFの状態で、当該ストップスイッチの検出状態がON、他のストップスイッチに変化した場合に1/100の確率で実行される。
パターン5は、特別役に当選した可能性を示唆するとともに、最終的に特別役に当選しているか否かを報知する特別役当選示唆演出を実行するパターンであり、ゲーム開始後からゲーム終了までの制御状態においてMAXBETスイッチ6の連続操作を指示する演出を行なった後、MAXBETスイッチ6が10回連続操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、MAXBETスイッチ6の検出状態がON、OFFを交互に10回繰り返して変化したときに実行される。
パターン6は、パターン5と同様に特別役当選示唆演出を実行するパターンであり、ゲーム開始後からゲーム終了までの制御状態においてMAXBETスイッチ6の長押しを指示する演出を行なった後、MAXBETスイッチ6が3秒間継続して操作されたとき、すなわち操作検出コマンドが示す操作スイッチの検出状態が、MAXBETスイッチ6の検出状態がOFFの状態で、MAXBETスイッチ6の検出状態がONに変化した後、OFFに変化せずに3秒間経過したときに実行される。
なお、図61に示す操作演出は、ゲームの進行制御に関与しない操作がなされた際に実行される演出の一例であり、他の演出を適用してもよい。
次に、前述した操作演出のうちパターン5の特別役当選示唆演出(以下連続操作演出とする)について説明する。
連続操作演出は、ゲーム開始に伴う内部当選コマンドの受信時に実行する演出パターン選択処理において該当する演出パターンが選択されたときに実行される。
演出パターン選択処理では、内部当選コマンドから特別役が当選している旨が特定される場合に、特別役が当選していない旨が特定される場合よりも高い比率にて連続操作演出の演出パターンを選択するようになっており、連続操作演出が実行されるだけでも特別役の当選に対する期待感を高めることができる。
連続操作演出では、まず、ゲームの開始と同時にMAXBETスイッチ6を5秒以内に10回操作する旨を指示する指示演出を開始する。そして、指示演出が開始した後、ゲームが終了するまで(全てのリールが停止するまで)の間にMAXBETスイッチ6が操作されなければ、ゲームの終了時点で指示演出は終了する。この場合には、特別役に当選しているか否かが指示演出に続けて告知されることはない。
その後、新たなゲームが開始された(内部当選コマンドを受信した)時点で、前回のゲームまでに特別役に当選していたのであれば、特別役の当選が告知される。特別役の当選の告知は、これらの特別役に入賞するまで継続される(以下に示すような他の条件で行なわれた告知も同じ)。
前回のゲームまでに特別役に当選していなければ、新たなゲームが開始された時点では前回のゲームでの指示演出に関連した告知は行なわれない。但し、新たに開始されたゲームで特別役に当選していれば、改めて新たな連続操作演出の指示演出は開始され得る。
一方、ゲームが終了するまでに遊技者により最初にMAXBETスイッチ6が操作されると、RAM91cに割り当てられた制限時間計時用タイマの計時が開始される。この制限時間計時用タイマの計時する時間が5秒になるまでに、MAXBETスイッチ6が10回(計時を開始させたときの操作を回数に含む)まで操作されず、且つ全てのリールが停止した場合には、MAXBETスイッチ6が全く操作されなかった場合と同様にゲームの終了時点で指示演出が終了する。
この場合も、特別役の当選の有無が指示演出に続けて告知されることはなく、新たなゲームが開始された時点で、前回のゲームまでに特別役に当選していたのであれば、特別役の当選が告知される。前回のゲームまでに特別役に当選していなければ、新たなゲームが開始された時点では前回のゲームでの指示演出に関連した告知は行なわれない。
また、MAXBETスイッチ6の最初の操作により計時開始されたタイマの計時する時間が5秒になるまでに全てのリールが停止しなかったが、制限時間計時用タイマの計時する時間が5秒になるまでにMAXBETスイッチ6が10回まで操作されることもなかった場合には、制限時間計時用タイマの計時する時間が5秒になった時点で指示演出が終了する。この場合には、特別役に当選しているか否かに関わらず、指示演出に続けて、特別役の何れにも当選していないこと(ハズレ)が告知される。このハズレの告知は、全てのリールが停止したことによりゲームが終了すると、終了する。
その後、新たなゲームが開始された時点で、前回のゲームまでに特別役に当選していたのであれば、特別役の当選が告知される。前回のゲームまでに特別役に当選していなければ、新たなゲームが開始された時点では前回のゲームでの指示演出に関連した告知は行なわれない。
また、MAXBETスイッチ6の最初の操作により計時開始されたタイマの計時する時間が5秒になるまでに全てのリールが停止することなくMAXBETスイッチ6が10回操作された場合には、MAXBETスイッチ6の操作回数が10回になった時点で指示演出が終了する。この場合には、特別役に当選していれば、指示演出に続けて特別役の当選が告知され、何れにも当選していなければ、指示演出に続けてハズレが告知される。
以下、連続操作演出を具体例に基づいて説明する。図62(a)〜(d)は、遊技の進行と連続操作演出の実行態様との関係を示すタイミングチャートである。
図62(a)の例では、遊技者によるスタートスイッチ7の操作によりゲーム1が開始されたときに、特別役に当選したものとする。このような状況で連続操作演出を実行する場合には、当該ゲームが開始されたタイミングから指示演出が開始される。
次に、ゲーム1が終了するまで(すなわち、全てのリールが停止するまで)の任意のタイミングで遊技者がMAXBETスイッチ6を最初に操作すると、制限時間計時用タイマによる計時が開始される。遊技者がMAXBETスイッチ6の操作を繰り返して行ない、全てのリールが停止する前に、また、制限時間計時用タイマにより計時している時間が5秒に到達するよりも前に、MAXBETスイッチ6の操作回数が最初の操作を含めて10回に達したものとする。
すると、この時点で指示演出が終了し、終了した指示演出に続けてゲーム1のうちに特別役に当選していることが告知されるものとなる。なお、このボーナス当選の告知は、ゲーム2が開始しても、当選した特別役に入賞するまで継続される。
図62(b)の例では、遊技者によるスタートレバー11の操作によりゲーム1が開始されたときに、いずれの特別役にも当選していないものとする。このような状況で連続操作演出を実行する場合にも、当該ゲームが開始されたタイミングから指示演出が開始される。
次に、ゲーム1が終了するまで(すなわち、全てのリールが停止するまで)の任意のタイミングで遊技者がMAXBETスイッチ6を最初に操作すると、制限時間計時用タイマによる計時が開始される。遊技者がMAXBETスイッチ6の操作を繰り返して行ない、全てのリールが停止する前に、また、制限時間計時用タイマにより計時している時間が5秒に到達するよりも前に、MAXBETスイッチ6の操作回数が最初の操作を含めて10回に達したものとする。
すると、この時点で指示演出が終了し、終了した指示演出に続けてゲーム1のうちに特別役に当選していないことが告知されるものとなる。このハズレ告知は、ゲーム1が終了した時点で終了させられるが、ゲーム1においていずれの特別役にも当選していないので、次のゲーム2が開始されたときに何らの報知も行なわれない。
図62(c)の例では、図62(a)の例と同様に、特別役に当選した場合に連続操作演出を実行するものであるが、制限時間掲示用タイマにより計時している時間が5秒に到達するまでに全てのリールが停止することもなかったが、制限時間掲示用タイマにより計時している時間が5秒に到達した時点でMAXBETスイッチ6の操作回数が最初の操作を含めて10回未満しか行なわれなかったものとする。
この場合、制限時間掲示用タイマにより計時している時間が5秒に到達した時点で指示演出が終了し、終了した指示演出に続けてゲーム1のうちに特別役に当選していないことが告知される。このハズレ告知は、ゲーム1が終了した時点で終了させられるが、ゲーム1において特別役に当選しているので、次のゲーム2が開始された時点で特別役に当選していることが告知されるものとなる。なお、この特別役の当選の告知は、ゲーム2が開始しても、当選した特別役に入賞するまで継続される。
図62(d)の例では、図62(b)の例と同様に、特別役に当選していない場合に連続操作演出を実行するものであるが、制限時間計時用タイマにより計時している時間が5秒に到達するまでに全てのリールが停止することもなかったが、制限時間計時用タイマにより計時している時間が5秒に到達した時点でMAXBETスイッチ6の操作回数が最初の操作を含めて10回未満しか行なわれなかったものとする。
この場合、制限時間計時用タイマにより計時している時間が5秒に到達した時点で指示演出が終了し、終了した指示演出に続けてゲーム1のうちに特別役に当選していないことが告知される。このハズレ告知は、ゲーム1が終了した時点で終了させられるが、ゲーム1において特別役の何れにも当選していないので、次のゲーム2が開始されたときに何らの報知も行なわれない。
このように本実施の形態では、特別役の当選している可能性を示唆する連続操作演出がゲーム開始同時に開始されるものとなっている。この連続操作演出は、指示演出の後に、特別役に当選しているか否かを告知するものである。
連続操作演出において特別役に当選しているか否かを告知することに対して、遊技者は、指示演出が行なわれている間にMAXBETスイッチ6を操作することによって介入することが可能となっている。この連続操作演出(指示演出)に対して遊技者がMAXBETスイッチ6を操作して介入し、その最初の操作から5秒以内に合わせて10回のMAXBETスイッチ6の操作を行なうと、指示演出の終了と同時に特別役の当選の有無が遊技者に告知されるものとなっている。
ここで、指示演出に続けて特別役の当選の有無が遊技者に告知されることとなる10回のMAXBETスイッチ6が操作されたかどうかを判断する計時の起算点は、最初にMAXBETスイッチ6が操作されたときからとなっている。連続操作演出(指示演出)が開始された後の自由なタイミングで、すなわち自由度の高い介入操作で連続操作演出に遊技者が介入することができるので、連続操作演出に遊技者が介入しやすくなり、結果として遊技の興趣を向上させることができる。
また、遊技者がMAXBETスイッチ6を最初に操作して連続操作演出の介入への意思表示を行なっても、指示演出に続けてそのまま特別役の当選の有無が遊技者に告知されるようにするには、さらに5秒以内で10回(最初の操作を除くと9回)もMAXBETスイッチ6を繰り返して操作しなければならない。このように遊技者が連続操作演出の介入を開始してからも、その介入操作を続けることが必要になるので、演出への介入感が高まり、さらに遊技の興趣を向上させることができる。
また、連続操作演出が行なわれたときにおいて当該ゲーム中で指示演出に続けて特別役の当選の有無が告知されるのは、最初のMAXBETスイッチ6の操作から5秒以内で合計10回のMAXBETスイッチ6の操作があったことが条件となっている。もっとも、10回目のMAXBETスイッチ6の操作があれば、その時点で、最初のMAXBETスイッチ6の操作から5秒の経過を待たずに特別役の当選の有無が告知されるものとなる。
これにより、特別役の当選が指示演出に続けて実行される条件の成立タイミングと、特別役の当選の有無の告知タイミングとがリンクするものとなるので、特別役の当選の有無が告知されたときに、これが遊技者にとって分かり易いものとなる。しかも、遊技者の操作(10回目のMAXBETスイッチ6の操作)とリンクしたタイミングで特別役の当選の有無が告知されることとなるので、連続操作演出に対する遊技者の介入感をさらに高めさせることができ、さらに遊技の興趣を向上させることができる。
また、連続操作演出が行なわれたときであっても、遊技者がMAXBETスイッチ6を操作しない限り、何れにしても当該ゲーム中で指示演出に続けて特別役の当選の有無が告知されることはない。一般的な遊技者であれば、特別役に当選しているかどうかをなるべく早く知りたいものであるので、これによってMAXBETスイッチ6の操作により連続操作演出に介入させることを遊技者に促すことができるものとなる。
一方、特別役に当選していて連続操作演出が行なわれたときに遊技者がMAXBETスイッチ6を全く操作しなかったり、MAXBETスイッチ6を10回操作する前にゲームが終了したり、最初の操作から5秒以内でMAXBETスイッチ6を10回操作することができなかったりした場合でも、次のゲームが開始されたときに特別役の当選が遊技者に告知されるものとなる。
このため、連続操作演出の指示演出が行なわれている間にMAXBETスイッチ6を操作しなかったばかりに、あるいは操作しても適切な操作ができなかったばかりに、遊技者が知りたいはずの情報(つまり、特別役に当選しているか否かという情報)を遊技者が何時までも知り得ず、遊技者の不利益が大きくなりすぎてしまうことがない。
ところで、本実施の形態では、リール2L、2C、2Lの回転は、遊技者が停止操作することによって停止されるものとなっているが、遊技者が停止操作をしなければいつまでも回転し続けることとなるが、ゲームの開始と同時に指示演出が開始されても、遊技者がMAXBETスイッチ6を操作しない限り特別役の当選を告知すべきかどうかの判断を行なう必要がない。このため、リール2L、2C、2Lが回転している状態で放置されているときの制御負荷を増大させずに済むものとなる。
さらに、指示演出が実行されている場合において、MAXBETスイッチ6が操作された後にリール2L、2C、2Rの全部または一部が回転を継続しているまま放置されてしまうという場合も考えられる。もっとも、当該ゲーム中で指示演出に続けて特別役の当選またはハズレの告知を行なうかどうかの判断は、最初のMAXBETスイッチ6の操作から5秒間の間だけ行なえばよい。このため、制御負荷が大きくなりすぎることはない。
また、本実施の形態では、サブCPU91aが、メインCPU41aから送信される操作検出コマンドにより特定される操作スイッチのON/OFFの状態に基づいてMAXBETスイッチ6の検出状態を特定し、上述の連続操作演出を実行するようになっている。
一方、連続操作演出では、MAXBETスイッチ6の最初の操作から5秒以内にMAXBETスイッチ6を最初の操作を含めて10回操作しなければ特別役の当選が告知されないため、サブCPU91aが操作検出コマンドを取りこぼした場合、それが反映されないと、遊技者がMAXBETスイッチ6を5秒以内に連続して10回操作したにも関わらず、特別役の当選が告知されなくなってしまう可能性があるが、本実施の形態では、前述のようにメインCPU41aが1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれかが操作されたか否かに関わらず、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8RそれぞれのON/OFFの状態を特定可能な操作検出コマンドを定期的に送信することで、サブCPU91aは、これら操作スイッチのON/OFFの状態を定期的に特定できるようになっており、操作検出コマンドを取りこぼしても次回送信された操作制御情報から最新の検出状態を取得して告知の条件を満たすか否かが判定されるので、遊技者が告知の条件を満たす操作を行なったにも関わらず、操作検出コマンドの取りこぼしによって特別役の当選が告知されなくなってしまうことを防止できる。
なお、本実施の形態では、連続操作演出が行なわれた場合において、最初のMAXBETスイッチ6の操作から5秒以内にMAXBETスイッチ6が合計で10回操作されていないと、指示演出の終了とともにハズレ告知がされるものとなっていたが、このような場合には何も告知せずに指示演出だけを終了させるものとしてもよい。そして、特別役に当選していた場合には、次のゲームでBET操作がなされた場合やスタート操作がなされたときに特別役の当選を告知してもよい。
また、連続操作演出が行なわれた場合において、最初のMAXBETスイッチ6の操作から5秒以内に合計で10回MAXBETスイッチ6が操作されたことを条件として、当該ゲーム中に指示演出に続けて特別役の当選の有無が遊技者に告知されるものとなっていたが、この5秒という時間の条件、あるいは10回という操作の条件の何れか一方または両方は、たとえば、連続操作演出が実行される度に行なわれる抽選などにより可変されるものとしてもよい。
たとえば、2秒4回、3秒6回という条件から何れかを選ぶものや3秒3回、3秒6回という条件から何れかを選ぶものであってもよい。これらの場合、指示演出に続けて特別役の当選の有無が告知されることとなるタイミングに変化が生じたり、そのために必要な操作の難易度に変化が生じたりするので、連続操作演出への介入に対する面白みをさらに増すことができるものとなる。
また、連続操作演出は、ゲームの開始時から開始されるものとなっていたが、これ以外の条件およびタイミングで開始されるものとしてもよい。たとえば、全てのリールが停止したタイミングから連続操作演出を開始させるものとしてもよい。
このようにゲームが終了してから開始される連続操作演出では、指示演出が実行されているときにおいて、ストップスイッチ8L、8C、8Rがゲームの進行制御に関与しないこととなるので、ストップスイッチ8L、8C、8RをMAXBETスイッチ6の代わりに適用することができる。
また、本実施の形態では、指示演出が実行されている場合においてゲームの進行制御に関与しないMAXBETスイッチ6が最初に操作されたことを連続操作演出への介入を開始する意思表示となる操作として制限時間掲示用タイマによる計時を開始するものとし、また、そのMAXBETスイッチ6の操作を介入の意思表示の後に連続操作演出に介入する操作としていた。
これに対して、制限時間掲示用タイマによる計時を開始させる介入の意思表示となる操作の方は、遊技の進行制御に関与する操作であってもよい。たとえば、全リール回転中におけるストップスイッチの操作(第1停止操作)はゲームの進行制御に関与するが、制限時間掲示用タイマによる計時を開始させる介入の意思表示となる操作として適用することもできる。
また、本実施の形態では、最初の操作を含めて5秒以内にMAXBETスイッチ6が10回操作されることを、指示演出に続けて連続操作演出が行なわれたゲームのうちに特別役の当選の有無を告知するかどうかの条件としていたが、指示演出に続けて特別役の当選の有無を告知するかどうかの操作の条件は、これに限るものではなく、たとえば、MAXBETスイッチ6が所定時間(3秒以下)継続して(断続して)操作されたこととしてもよい。また、最初のMAXBETスイッチ6の操作から3秒を経過するまでの間になされた2回目以降のMAXBETスイッチ6の操作が所定時間継続したこととしてもよい。
あるいは、連続操作演出への介入を開始する意思表示(最初のMAXBETスイッチ6の操作)の後に連続操作演出に介入する操作を複数の操作手段の操作とする場合には、該複数の操作手段が所定のパターンで操作されたこととしてもよい。たとえば、連続操作演出への介入を開始する意思表示の後に連続操作演出に介入するための操作手段として1枚BETボタン14とMAXBETスイッチ6の2つを適用し、これらが交互に20回(各々のボタンの操作が10回)だけ最初のMAXBETスイッチ6の操作から5秒以内に行なわれたときに、指示演出に続けて特別役の当選の有無を告知するものとしてもよい。
また、本実施の形態では、連続操作演出への介入を開始する意思表示となる操作と、その意思表示の後に連続操作演出に介入する操作とは、何れもMAXBETスイッチ6の操作としていたが、両者の操作は、異なる操作手段の操作であってもよい。たとえば、1枚BETボタン14の操作を連続操作演出への介入を開始する意思表示となる操作として計時を開始するが、MAXBETスイッチ6の操作をその意思表示の後に連続操作演出に介入する操作として、計時開始から所定時間以内にMAXBETスイッチ6が所定回数操作されたかどうかを判定するものとしてもよい。
また、本実施の形態では、特別役に当選して連続操作演出が行なわれた場合において、MAXBETスイッチ6を操作したものの5秒以内に10回の操作ができなくて指示演出に続けてハズレが告知された場合、若しくは、MAXBETスイッチ6が操作されないまま、あるいはMAXBETスイッチ6の操作から5秒経過または10回の操作がある前にゲームが終了して指示演出だけが終了させられた場合、次のゲームの開始時点(すなわち、スタート操作時点)において、特別役の当選が告知されるものとなっていたが、このような場合における特別役の当選の告知のタイミングは、これに限るものではなく、たとえば、次のゲームの終了時(第3停止ボタンが操作されたとき)、第1停止時、第2停止時としてもよい。さらには、次のゲームを開始するための賭数の設定操作が行なわれたときとしてもよい。
また、本実施の形態では、連続操作演出によって特別役に当選したか否かが告知されるようになっているが、遊技者の介入操作によって遊技者にとって有利な情報を報知する演出であればよく、たとえば、遊技者の介入操作によって遊技者にとって有利な操作手順を報知する報知状態に当選したか否かを報知するものや、遊技者の介入操作によって設定値を推測させる情報を報知するものとしてもよい。
次に、前述した操作演出のうち台情報閲覧演出について説明する。
サブ制御部91のRAM91cには、既に行なわれた遊技に関する遊技履歴データを記憶可能な遊技履歴データ記憶領域が割り当てられているとともに、これら遊技履歴データは、メインCPU41aから送信されたコマンドに基づいて逐次最新のデータに更新されるようになっている。一方、サブ制御部91のROM91bには、当該スロットマシン1にて実施される演出を紹介する演出紹介データが記憶されている。
そして、遊技者は、前述のようにゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rのうち中、右のストップスイッチ8C、8Rを同時に操作することにより、閲覧メニュー画面を表示させて、さらにストップスイッチ8L、8C、8Rを操作してメニューを選択することにより、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データ(後述する設定変更の履歴を除く)に基づく遊技履歴情報やROM91bに記憶されている演出紹介データを閲覧することが可能とされている。
遊技履歴データ記憶領域は、ボーナス間ゲーム数カウンタ、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BBカウンタ、投入枚数カウンタ、払出枚数カウンタ、時間別差枚数テーブル、日付別履歴テーブル、設定値変更テーブルから構成される。
ボーナス間ゲーム数カウンタは、前回のボーナス終了時からのゲーム数を計数するカウンタであり、ボーナス中以外の状態で遊技状態コマンドを受信する毎に1加算され、BBやRBから通常遊技状態への移行を示す遊技状態コマンドを受信した際にクリアされる。
ボーナス間ゲーム数テーブルは、ボーナス間ゲーム数を各ボーナス毎に当該ボーナスの種類(BB、RB)とともに格納するテーブルであり、通常遊技状態からBBまたはRBへの移行を示す遊技状態コマンドを受信した際に、ボーナスの種類を格納するとともに、ボーナス間ゲーム数カウンタの値を取得してボーナス間ゲーム数として格納する。
総ゲーム数カウンタは、本日の総ゲーム数を計数するカウンタであり、ボーナス中以外の状態で遊技状態コマンドを受信する毎に1加算される。
RBカウンタは、本日のRB回数を計数するカウンタであり、通常遊技状態からRBへの移行を示す遊技状態コマンドを受信した際に1加算される。
BBカウンタは、本日のBB回数を計数するカウンタであり、通常遊技状態からBBへの移行を示す遊技状態コマンドを受信した際に1加算される。
投入枚数カウンタは、ゲームに使用されたパチンコ球数、すなわち賭数の設定に用いるために取り込まれた球数を計数するカウンタであり、内部当選コマンドを受信した際に、現在の遊技状態に応じてゲームの開始に必要なメダル数が加算される。
払出枚数カウンタは、小役入賞時に払い出されたメダル数を計数するカウンタであり、小役の入賞を示す入賞判定コマンドを受信した際に、当該コマンドにより特定される払出枚数が加算される。
時間別差枚数テーブルは、所定間隔毎の差枚数(払出枚数カウンタの値−投入枚数カウンタの値)を格納するテーブルであり、所定間隔毎(たとえば5分毎)に、払出枚数カウンタの値と投入枚数カウンタの値を取得し、差枚数を算出して格納する。
日付別履歴テーブルは、過去3日分のボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BBカウンタ、投入枚数カウンタ、払出枚数カウンタ、時間別差枚数テーブルの各データを格納するテーブルである。サブCPU91aは、起動処理(サブ)において、時計装置97から日付情報を取得し、取得した日付情報をRAM91cの日付記憶領域に記憶する。そして、起動処理において新たに取得した日付情報がRAM91cの日付記憶領域記憶されていた日付情報と一致するか否かを判定し、一致していない、すなわち日付が更新されたと判定したときには、その時点で2日前の領域に格納されているデータを3日前の領域に格納し、1日前の領域に格納されているデータを2日前の領域に格納し、本日の領域に格納されているデータを1日前の領域に格納するとともに、本日のデータが格納される領域に格納されているデータをクリア(初期化)する。つまり、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BBカウンタ、投入枚数カウンタ、払出枚数カウンタ、時間別差枚数テーブルの各データを1日前のデータとして格納する処理が行なわれる。
また、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BBカウンタ、投入枚数カウンタ、払出枚数カウンタ、時間別差枚数テーブルの各データを日付別履歴テーブルに格納することに伴って、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BBカウンタ、投入枚数カウンタ、払出枚数カウンタ、時間別差枚数テーブルはクリアされる。
設定値変更テーブルは、過去5回分の設定値の変更履歴を格納するテーブルであり、管理者モードが設定されている状態で遊技状態コマンドを受信した際に、時計装置97から取得した時間情報(日付および時間)に対応付けて遊技状態コマンドが示す設定値を格納する。なお、この際、最も古い変更履歴はクリアされる。
ここで、遊技履歴情報や演出紹介データの閲覧状況およびその際のサブCPU91aの制御状況を図63に基づいて説明する。
本実施の形態では、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rのうち中、右のストップスイッチ8C、8Rが同時に操作されると、液晶表示器51に図63(a)に示す閲覧メニュー画面を表示させる。
閲覧メニュー画面には、現在選択されているメニューの説明領域と、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」「戻る」からなるメニュー領域と、が設けられており、ストップスイッチ8L、8Cの操作に応じてメニュー領域の選択枠を移動させるとともに、この移動に伴って説明領域の表示内容も現在選択されているメニュー領域の説明に更新される。なお、閲覧メニュー画面には、RAM91cに設定されている閲覧有効フラグの設定状況に応じたメニュー領域のみが表示されるようになっており、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」のうち、閲覧有効フラグが設定されていない項目のメニュー領域は表示されないようになっている。閲覧有効フラグは、後述するオプション画面にて閲覧を有効とする設定がなされた項目についてのみ設定されるようになっており、後述するオプション画面にて閲覧を有効とする設定がなされていない項目については、遊技者の操作によって閲覧ができないようになっている。
閲覧メニュー画面で「ボーナス間情報」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図63(b)に示すボーナス間情報画面を表示させる。ボーナス間情報画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、ボーナス毎にボーナスの種類およびボーナス間ゲーム数が表示されるボーナス間情報表示領域と、が設けられている。そして、閲覧メニュー画面からボーナス間情報画面を表示させる際には、本日のボーナス間ゲーム数テーブルに登録されているデータに基づいてボーナス間情報表示領域に、本日のボーナスの種類およびボーナス間ゲーム数がボーナス毎に表示される。また、ボーナス間情報画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、ストップスイッチ8Rを操作すると、日付別履歴データテーブルに格納されているデータに基づいて、選択された日のボーナスの種類およびボーナス間ゲーム数がボーナス毎にボーナス間情報表示領域に表示される。また、ボーナス間情報画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「演出紹介」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図63(c)に示す演出紹介画面を表示させる。ボーナス間情報画面には、各演出に対応するメニュー領域と、「戻る」に対応するメニュー領域と、が設けられている。そして、演出紹介画面において各演出に対応するメニュー領域のいずれかが選択された状態で、ストップスイッチ8Rを操作すると、ROM91bに格納されている演出紹介データから該当するデータが抽出されて表示される。また、演出紹介画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「ボーナス確率」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図63(d)に示すボーナス確率画面を表示させる。ボーナス確率画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、ボーナスの種類別に確率が表示されるボーナス確率表示領域と、が設けられている。そして、閲覧メニュー画面からボーナス確率画面を表示させる際には、本日の総ゲーム数カウンタ、RBカウンタおよびBBカウンタの値に基づき本日のBBの確率およびRBの確率が算出されてボーナス確率表示領域に表示される。また、ボーナス確率画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、決定スイッチ57を検出すると、日付別履歴データテーブルに格納されているデータに基づき、選択された日のBBの確率およびRBの確率が算出されてボーナス確率表示領域に表示される。また、ボーナス確率画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「スランプグラフ」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図63(e)に示すスランプグラフ画面を表示させる。スランプグラフ画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、時系列的に差球の状況を示すスランプグラフが表示されるグラフ表示領域と、が設けられている。そして、閲覧メニュー画面からスランプグラフ画面を表示させる際には、本日の時間別差枚数テーブルに基づき本日のスランプグラフが生成されてグラフ表示領域に表示される。また、スランプグラフ画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、ストップスイッチ8Rを操作すると、日付別履歴データテーブルに格納されているデータに基づき、選択された日のスランプグラフが生成されてグラフ表示領域に表示される。また、スランプグラフ画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、閲覧メニュー画面に戻る。
以上のように、遊技者はゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rのうち中、右のストップスイッチ8C、8Rが同時に操作することにより、閲覧メニュー画面を表示させ、さらにストップスイッチ8L、8C、8Rの操作を行なうことにより、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データ(後述する設定変更の履歴を除く)に基づく遊技履歴情報やROM91bに記憶されている演出紹介データを閲覧することが可能となる。
本実施の形態においてメインCPU41aは、図64に示すように、設定キースイッチ37がONの状態で起動すると、設定開始コマンドをサブCPU91aに送信し、設定変更状態の開始を通知するとともに、設定値を変更可能な設定変更状態に移行することとなる。設定変更状態では、スタートスイッチ7が操作されるまでは、任意に設定値を選択することが可能となるが、スタートスイッチ7が操作されると、その時点で選択されている設定値が確定し、以後設定値を変更できない設定確定状態となり、この状態で設定キースイッチ37がOFFの状態とすることで設定変更状態は終了し、サブCPU91aに対して遊技状態コマンドを送信して設定変更状態の終了を通知する。
一方、サブCPU91aは、設定開始コマンドにより設定変更状態の開始が通知されることで、前述した遊技履歴データをクリアしたり、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行なうこと、すなわち遊技店が管理するサブCPU91a側の管理情報にアクセス可能な管理者モードに制御する。そしてこの管理者モードは、遊技状態コマンドにより設定変更状態の終了が通知されることで終了することとなる。
なお、設定変更状態において設定値が確定してもメインCPU41aからサブCPU91aに対して何らの通知もされず、サブCPU91aは、メインCPU41a側で設定値が確定した後も、遊技状態コマンドによって設定変更状態の終了が通知されるまでは、継続して管理者モードに制御されるようになっており、設定変更状態において設定値が確定した後も、電源を再投入して設定値の確定前の状態にわざわざ戻すことなく、管理情報へのアクセスが可能となる。
また、メインCPU41aは、図65に示すように、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37がONの状態となると、確認開始コマンドをサブCPU91aに送信し、設定確認状態の開始を通知するとともに、設定値を確認可能な設定確認状態に移行することとなる。設定確認状態は、設定キースイッチ37がOFFの状態とすることで設定確認状態は終了し、サブCPU91aに対して確認終了コマンドを送信して設定確認状態の終了を通知する。
そして、サブCPU91aは、確認開始コマンドにより設定確認状態の開始が通知された場合にも、設定開始コマンドを受信した場合と同様に、遊技店が管理するサブCPU91a側の管理情報にアクセス可能な管理者モードに制御する。そしてこの管理者モードは、確認終了コマンドにより設定確認状態の終了が通知されることで終了することとなる。
設定キースイッチ37は、キーを挿入し、回転させることでON/OFFを変更することが可能なスイッチであるが、通常キーは、店員が所持するものであり、遊技者が任意に設定キースイッチ37を操作することはできない。すなわち遊技者が任意に操作することのできない設定キースイッチ37を操作した場合のみ遊技店が管理するサブCPU91a側の管理情報にアクセス可能な管理者モードに制御されることとなる。
このように本実施の形態では、メインCPU41aが設定変更状態に制御された場合だけでなく、設定確認状態に制御された場合にも管理者モードに制御されるようになっており、設定変更状態に移行させることなく、管理情報へのアクセスが可能となっている。特に、本実施の形態のように電源を再投入しないと設定変更状態に移行しない場合でも、管理情報へアクセスするだけのために電源を落とす必要がなくなる。さらに、本実施の形態のように、設定変更状態への移行に伴ってRAM41cが初期化されてしまう場合でも、RAM41cの格納データを維持したままで管理情報へのアクセスが可能となる。
なお、本実施の形態では、メインCPU91aから設定開始コマンドまたは確認開始コマンドを受信した場合に、そのまま管理者モードに制御されるようになっているが、設定開始コマンドまたは確認開始コマンドを受信した後、たとえば、MAXBETスイッチ6を一定時間以上操作するなど、一定の操作がなされた場合にのみ管理者モードに制御する構成としてもよく、このようにすることで設定変更または設定確認が目的で管理情報にアクセスする必要がないにも関わらず、管理者モードに制御されてしまうことを防止できる。
また、メインCPU41aは、設定変更状態に移行する前に割込を許可するようになっており、設定変更状態に制御されている間も定期的に操作検出コマンドを送信するため、サブCPU91aは、設定変更状態に制御されている間も、設定値の変更制御に関与しない操作スイッチの検出状態を逐次特定できるようになっている。
また、設定確認状態においても割込は許可されており、設定変更状態と同様に設定確認状態に制御されている間も定期的に操作検出コマンドを送信するため、サブCPU91aは、設定確認状態に制御されている間も、設定値の確認制御に関与しない操作スイッチの検出状態を逐次特定できるようになっている。
また、前述のようにサブCPU91aは、メインCPU41aが設定変更状態または設定確認状態に制御されている期間において管理情報にアクセス可能な管理者モードに制御することとなるので、その間に送信された操作検出コマンドから特定される操作スイッチの操作を利用して管理者モード期間中の操作を行なうことが可能とされており、演出制御基板90側に管理情報にアクセスするための操作手段を別途備えることなく、本来であれば、遊技制御基板40側でゲームの進行制御に用いられる操作スイッチを活用して管理情報へのアクセス操作を行なうことができる。
次に、サブCPU91a側の管理情報にアクセスする際の操作状況およびその際のサブCPU91aの制御状況を図66に基づいて説明する。
まず、サブCPU91aは、設定開始コマンドまたは確認開始コマンドを受信したときに管理者モードに制御する。これに伴い、図66に示す管理者モード画面が液晶表示器51に表示されるようになっており、この管理者モード画面において、遊技履歴データのクリアや遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行なうことが可能とされている。
また、管理者モードでは、遊技状態コマンドまたは確認終了コマンドを受信したときに、終了するとともに、管理者モード画面に表示された所定のメニュー領域(後述する「戻る」のメニュー領域)をストップスイッチ8L、8Cにより選択した状態でストップスイッチ8Rを操作した場合にも終了するようになっている。なお、この場合には、設定変更中または設定確認中である旨が引き続き報知されることとなる。
管理者モード画面には、現在選択されているメニューの説明領域と、「履歴データクリア」「オプション」「設定変更履歴」「戻る」からなるメニュー領域と、が設けられており、ストップスイッチ8L、8Cの操作に応じて、メニュー領域の選択枠を移動させるとともに、この移動に伴って説明領域の表示内容も現在選択されているメニュー領域の説明に更新される。
図66(a)に示すように、管理者モード画面で「履歴データクリア」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図67(a)に示す履歴データクリア画面を表示させる。履歴データクリア画面には、現在選択されているメニューの説明領域と、「はい」「いいえ」からなるメニュー領域と、が設けられている。そして、履歴データクリア画面において「はい」が選択された状態で、ストップスイッチ8Rを操作すると、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データのうち、設定変更履歴を除く全てのデータがクリアされた後、図67(b)に示すように履歴データのクリアが完了した旨を示すメッセージが表示され、管理者モード画面に戻る。なお、履歴データクリア画面において「いいえ」が選択された状態で、決ストップスイッチ8Rを操作すると、遊技履歴データはクリアされずに管理者モード画面に戻る。
図66(b)に示すように、管理者モード画面で「オプション」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図68(a)に示すオプション画面を表示させる。オプション画面には、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」「戻る」からなるメニュー領域が設けられている。そして、オプション画面において「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」のいずれかが選択された状態で、ストップスイッチ8Rを操作すると、対応する閲覧可能設定欄の表示が切り替わる。具体的には、閲覧を有効とする旨を示す「ON」が表示されている状態では閲覧を有効としない旨を示す「OFF」に切り替わり、「OFF」が表示されている状態では「ON」に切り替わる。そして、オプション画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、閲覧可能設定欄に「ON」が表示されている項目の閲覧有効フラグを設定する一方、「OFF」が表示されている項目の閲覧有効フラグをクリアした後、管理者モード画面に戻る。
図66(c)に示すように、管理者モード画面で「設定変更履歴」のメニュー領域が選択された状態で、ストップスイッチ8Rを操作すると、図68(b)に示す設定変更履歴画面を表示させる。設定変更履歴画面には、過去5回分の設定変更履歴、すなわちRAM91cに格納されている設定変更履歴が表示される設定変更履歴表示領域と、「戻る」に対応するメニュー領域と、が設けられている。そして、設定変更履歴画面において「戻る」が選択された状態で、ストップスイッチ8Rを操作すると、管理者モード画面に戻る。
図66(d)に示すように、管理者モード画面で「戻る」のメニュー領域が選択された状態でストップスイッチ8Rを操作すると、管理者用モードを終了して、設定変更中または設定確認中の報知画面が表示される。
以上のように、メインCPU41aが設定変更状態または設定確認状態に制御される場合に、管理者モード画面が表示され、当該画面においてストップスイッチ8L、8C、8Rを操作することにより、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行なうことが可能となる。
なお、本実施の形態では、遊技履歴データをクリアしても設定変更履歴のデータはクリアされないようになっているので、たとえば、不正に設定変更がなされた場合でも、その証拠を確実に残しておくことができるが、遊技履歴データのクリアとともに設定変更履歴データについてもクリアされるようにしてもよいし、遊技履歴データと、設定変更履歴データと、を別個の操作によりクリアできるようにしてもよい。
また、本実施の形態では、管理情報の一例としての設定変更履歴が記憶され、遊技店設定用モードにおいて該設定変更履歴を確認できるようになっているが、たとえばスロットマシン1の前面扉の開放履歴(前面扉の開放に基づく開放時刻や開放回数情報)やエラーの発生履歴(エラーの発生時刻や発生したエラーの種類、エラーの発生回数)等を記憶し、管理者モードにおいてこれら前面扉の開放履歴やエラーの発生履歴を確認できるようにしてもよい。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形例などについて説明する。
(1) 前述した実施の形態においては、設定変更操作が行なわれた際に前面扉1bが閉鎖状態であったために不能動化された場合、正規の操作(前面扉1bを開放、電源断して設定キースイッチ37をON状態にして電源投入する操作)を行なって設定変更状態に移行させることを契機として、当該不能動化が解除される例について説明した。しかし、不能動化を解除する契機は、これに限るものではなく、所定の操作を行なうことであってもよい。
図69は、第1の変形例における、起動処理(メイン)の制御内容を示すフローチャートである。以下では、図23と異なる部分のみについて説明する。図69を参照し、Sa27bで前面扉1bが開放状態でない、すなわち閉鎖状態であると判定されたときに、設定キースイッチ37がOFF状態であるか否かを判定する処理(Sa27c’)を行ない、当該Sa27c’においてOFF状態であると判定されるまで当該Sa27c’の処理が繰返し行なわれ、OFF状態であると判定されたときにSa16に移行される。すなわち、Sa27bで前面扉1bが閉鎖状態であると判定された後においては、設定キースイッチ37がON状態である限り遊技を不能動化させ、設定キースイッチ37がOFF状態とされることにより当該不能動化が解除される。これにより、不正行為を行なった者にとっては容易に遊技の不能動化を解除することができないのに対し、前面扉1bを開放状態にして設定キースイッチを操作することができる者(たとえば遊技場管理者)であれば、容易かつ速やかに不能動化を解除することができる。
(2) 前述した実施の形態においては、図23のSa27bの処理においてNOと判定されたときに、Sa27bの処理が行なわれ、当該Sa27bの判定結果に応じて遊技が不能動化される例について説明した。しかし、Sa27bの処理は、電源投入されてから設定変更操作が行なわれているならば設定変更状態に移行されるまでの間に行なうものであればよい。
たとえば、Sa11において設定キースイッチ37がON状態であると判定されたときにSa27bと同様の処理(以下では、Sa27b’という)を行ない、当該Sa27b’において前面扉1bが開放状態であると判定されたときには、Sa24へ移行する。一方、前面扉1bが開放状態でないと判定されたときには、図23に示すSa27cと同様の処理、あるいは図69に示すSa27c’と同様の処理を行なって遊技を不能動化するための処理を行なった後、Sa13に移行するように構成してもよい。
このように構成した場合、電源投入時において設定キースイッチ37がON状態であっても、Sa27b’において前面扉1bが開放状態でないと判定されたときには、遊技を不能動化するための処理が行なわれた後、初期化1が行なわれることなくSa13へ移行され、その後Sa16において電断前の状態に復帰される。このため、不能動化が解除された後において電断前の状態から遊技を再開することができる。たとえば、電断前に賭数として3枚設定されている状態で電源が遮断された後に、不正に設定変更操作が行なわれた可能性がある場合には設定変更状態に移行させないものの、電断前の賭数として3枚設定されている状態に復帰させることができ、不能動化が解除された後において賭数として3枚設定されている状態から遊技を再開することができる。すなわち、設定変更操作が不正行為であるか否かに関わらず、電力供給が再開される前の遊技の進行状態から遊技を再開することができる。
(3) 前述した実施の形態におけるメイン制御部41は、電源投入時において、設定キースイッチ37がON状態であるときには原則として設定開始コマンドあるいはエラーコマンドを送信し、サブ制御部91側においてRAM91cを初期化させるのに対し、設定キースイッチ37がON状態であってもSa27bで前面扉1bが閉状態であると判定されたときには復帰コマンドを送信し、サブ側において復帰させるための処理を行なわせる例について説明した。しかし、メイン制御部41は、電源投入時において、設定キースイッチ37がON状態であるときには、前面扉1bが閉状態であるか否かに関わらず、サブ制御部91側においてRAM91cを初期化させるためのコマンドを送信するようにしてもよい。たとえば、Sa27bで前面扉1bが閉状態であると判定されたときには、設定変更異常を示すエラーコマンドを送信し、サブ制御部91側においてRAM91cを初期化させるように構成してもよい。これにより、たとえば、複数ゲームに亘り実行される連続演出実行中において電断されるときには当該連続演出を実行中である情報がバックアップされるため、電源投入された後、通常であれば連続演出が再開されるところ、連続演出が再開されないことにより設定キースイッチ37がON状態にされて設定変更状態に制御された可能性があることを特定することができる。
上記のように構成した場合、さらに、サブ制御部91側においては、当該設定変更異常を示すエラーコマンドを受信したときには、RAM91cを初期化させるとともに、設定変更異常である旨を報知してもよい。たとえば、液晶表示器51に「設定変更異常!!」といったメッセージを表示するようにしてもよい。
(4) 前述した実施の形態では、乱数割込制御データRDIC0のビット値が“0”に設定されており、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれても割込は発生しない構成であったが、乱数割込制御データRDIC0のビット値が“1”に設定されており、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれることで、乱数割込が発生するように構成してもよい。
そして、メイン制御部41は、乱数割込が発生した際に、基本処理に割り込んで乱数値ラッチ割込処理を実行するように構成してもよい。なお、乱数割込が発生した際に、他の割込処理の実行中であれば、実行中の割込処理の終了を待って乱数値ラッチ割込処理を実行する。
図70は、変形例における、メイン制御部41が乱数割込の発生に伴い実行する乱数値ラッチ割込処理の制御内容を示すフローチャートである。なお、乱数値ラッチ割込処理の実行期間中は自動的に他の割込が禁止される。
乱数値ラッチ割込処理では、まず、使用中のレジスタをスタック領域に退避した後(Sk1001)、乱数値レジスタ559Aから数値データを読み出し(Sk1002)、乱数値格納ワークに格納されている値を、Sk1002において読み出した数値データに更新し(Sk1003)、Sk1001においてスタック領域に退避したレジスタを復帰し(Sk1004)、割込前の処理に戻る。
この例では、乱数値レジスタR1Dに数値データが取り込まれることで、乱数割込が発生し、これに伴いメイン制御部41は、基本処理に割り込んで乱数値ラッチ割込処理を実行し、乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。すなわち乱数値レジスタR1Dに数値データが取り込まれる毎に、乱数値ラッチ割込処理を実行して乱数値レジスタR1Dの数値データを読み出すことで、乱数値レジスタR1Dに数値データが保持されている状態を解除し、乱数値レジスタR1Dに新たな数値データの取込が可能な状態となる。
このため、図71に示すように、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されても、数値データがラッチされたことに伴う割込の発生により乱数値レジスタR1Dの数値データが読み出され、新たにラッチされた数値データを格納可能な状態となるので、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
また、乱数値ラッチ割込処理では、乱数値レジスタR1Dにラッチされた数値データを読み出すだけではなく、RAM507の乱数値格納ワークの値を読み出した数値データに更新することにより、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
そして、ゲームの開始時に、乱数値レジスタR1Dに格納されている数値データではなく、RAM507の乱数値格納ワークに格納されている数値データを取得して内部抽選を行なうので、乱数値レジスタR1Dから数値データが読み出された後に、スタートスイッチの信号線にノイズがのって数値データが変わってしまっても内部抽選に用いる乱数値格納ワークの数値データに影響することがなく、このような場合であってもスタートスイッチ7が操作されたタイミングでラッチした数値データを用いて内部抽選を行なうことができる。
また、この例では、スタートスイッチ7の操作が検出された時点で、RAM507の乱数値格納ワークに格納されている数値データを同じくRAM507に割り当てられた抽選用ワークに設定し、その後の内部抽選において抽選用ワークに設定された数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようになっており、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでに乱数値格納ワークに格納されている数値データが更新されても、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことがないが、スタートスイッチ7の操作が検出された時点でRAM507の乱数値格納ワークに格納されている数値データをCPU505のワークレジスタに設定し、その後の内部抽選においてワークレジスタに設定された数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようにしてもよい。
また、乱数値格納ワークに格納されている数値データに対して演算を行なうことにより役に当選したか否かの判定を行なうようにしてもよいが、この場合には、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでの期間において、乱数割込の発生に伴う乱数値割込処理を禁止することなどにより、乱数値格納ワークに格納されている数値データが新たにラッチされた数値データによって更新されてしまうことがないようにすることで、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことを防止できる。
なお、この例では、乱数値ラッチ割込処理において、乱数値レジスタR1Dの数値データを読み出すようになっているが、乱数値ラッチ割込処理では、乱数値レジスタR1Dに数値データがラッチされた旨を示すラッチフラグをRAM507に設定し、BET処理などの基本処理やタイマ割込処理(メイン)などにおいてラッチフラグがRAM507に設定されているか否かを判定し、RAM507にラッチフラグが設定されていると判定した場合に、乱数値レジスタR1Dの数値データを読み出す構成としてもよく、このような構成とした場合でも、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されたままとなってしまうことがなく、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
(5) 上記の実施の形態では、遊技機の一例として、1ゲームに対してメダルやクレジットを用いて賭数を設定することによりゲームが開始可能となるとともに、表示状態を変化させることが可能な可変表示装置に表示結果が導出されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシンを説明した。
しかしながら、本発明を具現化する遊技機は、このようなスロットマシンに限定されるものではなく、遊技者に対する有利度を変更可能な遊技機であればよい。遊技機としては、たとえば、所定の遊技領域に遊技媒体(たとえばパチンコ球)を打ち込み、該打ち込まれた遊技媒体が遊技領域に設けられた始動領域(たとえば始動口)を通過(入賞)することにより、可変表示装置における表示状態を変化させることが可能となり、当該可変表示装置の表示結果が特定表示結果(たとえば大当り図柄の組合せ)となったときに、遊技者にとって有利な特定遊技状態(大当り状態)に制御するパチンコ機であってもよい。この場合、有利度を変更するとは、特定遊技状態(いわゆる大当り)に制御される確率が異なるように定められた複数種類の設定値のうちいずれかを設定することをいう。また、可変表示条件は、始動領域を通過したときに成立して乱数が読み出され、当該始動領域への通過を契機として可変表示を開始できるタイミングに到達したときに、設定されている設定値から特定される確率にしたがって、当該乱数を用いて特定表示結果を導出させるか否かを決定する。
ここで、図73〜図76を用いて、本発明をパチンコ機に適用した場合の“開閉体”および“開閉状態検出手段”に相当する構成について説明する。図73〜図76に示すように、パチンコ機は、外枠912と、本体枠914とを備えている、外枠912は略矩形に形成され、遊技場におけるいわゆる島などに固定される。本体枠914は、一方側が外枠912に軸支されて、図73に示すように、他方側を外枠912に近接させた閉じ位置(閉鎖状態)と、図74や図76に示すように、他方側を外枠912から離間させた開き位置(開放状態)との間で回動自在となっている。
本体枠914の前面側には、ガラス扉916、遊技球の受け皿918、遊技球を発射させる操作ハンドル920が設けられている。ガラス扉916は、一方側が本体枠914に軸支されて、図73に示すように、他方側を本体枠914に近接させた閉じ位置(閉鎖状態)と、図75に示すように、他方側を本体枠914から離間させた開き位置(開放状態)との間で回動自在となっている。
ガラス扉916の背後には、パチンコ球を打ち込むための遊技領域924を形成するための遊技盤922が配置されており、ガラス扉916を介して遊技盤922を視認できる。遊技盤922には、いわゆる役物、始動口、入賞口、アタッカ、アウト口、遊技釘、風車、始動口への入賞に伴い複数の図柄を変動表示させて表示結果を導出させるための可変表示装置などが設けられている。
また、本体枠914の背面側には、遊技球を受けるための遊技球タンク、遊技球タンクに貯留された遊技球を受け皿に払い出す払出装置、遊技や演出の制御を行なう各種制御基板、保護カバー、電源基盤を収容する電源基盤ケース901、本体枠914の開放状態を検出するための本体枠開放検出スイッチ925が設けられている。
電源基盤ケース901の前面には、電源をON/OFFする際に操作される電源スイッチ939、設定スイッチ938が設けられている。設定変更を行なう際には、たとえば、本体枠914を開放状態にし、設定スイッチ938を押圧操作したままの状態で電源スイッチ939をONすることにより、前述した実施の形態における設定変更状態と同様の状態に制御される。当該設定変更状態においては、設定スイッチ938を押圧操作する毎に設定値が1ずつ更新され(設定6からさらに操作されたときは、設定1に戻る)、所定の設定終了操作(たとえば、設定スイッチ938を5秒以上押圧操作するなど)により現在の設定値が設定されて当該設定変更状態が終了する。電源スイッチ939を一旦OFF状態にし、設定スイッチ938を押圧操作したまま電源スイッチ939をONさせる操作を行なうことにより、設定変更状態に移行されるため、当該操作をまとめて設定変更操作ともいう。
以上のように、遊技機本体である本体枠914が外枠912に対して回動自在に取付けられており、当該本体枠914を開放状態とすることにより設定変更操作を行なうことが可能となる。このような場合には、当該本体枠914が開閉体であるといえる。また、本体枠914の開放状態を検出するための本体枠開放検出スイッチ925が開閉状態検出手段であるといえる。
なお、図73〜図76に示すパチンコ機において、たとえば、図75のようにガラス扉916を開放状態とすることにより設定変更操作を行なうことが可能となるように、電源スイッチ、設定スイッチが設けられており、ガラス扉916の開放状態を検出するためのガラス扉開放検出スイッチが設けられている場合には、当該ガラス扉916が開閉体であるといえる。また、ガラス扉916の開放状態を検出するためのガラス扉開放検出スイッチが開閉状態検出手段であるといえる。
(6) 上記の実施の形態では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、パチンコ遊技機で用いられている遊技球(パチンコ球)を用いて賭数を設定するいわゆるパロットや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであってもよい。
さらに、流路切替ソレノイド30や投入メダルセンサ31など、メダルの投入機構に加えて、遊技球の取込を行なう球取込装置、球取込装置により取り込まれた遊技球を検出する取込球検出スイッチを設けるとともに、ホッパーモータ34bや払出センサ34cなど、メダルの払出機構に加えて、遊技球の払出を行なう球払出装置、球払出装置により払い出された遊技球を検出する払出球検出スイッチを設け、メダルおよび遊技球の双方を用いて賭数を設定してゲームを行なうことが可能であり、かつ入賞の発生によってメダルおよび遊技球が払い出されるスロットマシンに適用してもよい。
(7) 前述した実施の形態においては、電断処理の一例として、電圧低下信号が入力されると割り込んで実行され、電圧低下信号が入力されなくなると復帰する例について説明した(図38、図52)。以下に、電断処理の変形例について説明する。なお、この変形例における起動処理(メイン)では、ユーザリセット信号が入力された場合には、Sa2のステップから処理を開始する。すなわち、電源投入に伴う起動の場合のみセキュリティチェック処理を行なうセキュリティモードから開始する一方、ウォッチドッグタイマのタイムアップによる起動の場合には、セキュリティチェック処理を省略してROM506に記憶されたユーザプログラムを実行するユーザモードから開始されることになる。
メイン制御部41による電断処理として、たとえば、図72のように構成してもよい。図72は、電圧低下信号が入力されたときにメイン制御部41が実行する電断処理の制御内容を示すフローチャートである。
メイン制御部41による電断処理として、たとえば、図72のように構成してもよい。図72は、電圧低下信号が入力されたときにメイン制御部41が実行する電断処理の制御内容を示すフローチャートである。
電断処理(メイン)においては、まず、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm1)。なお、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、破壊診断用データ(本実施例では、5A(H))をセットして(Sm4’)、全ての出力ポートを初期化する(Sm5’)。次いでRAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm6’)、RAM507へのアクセスを禁止する(Sm7’)。
その後、電圧が低下してCPU505が停止するか、ユーザリセット信号が入力されて再起動するか、の待機状態に移行する。この待機状態では、乱数ラッチフラグレジスタの値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sm13)、乱数値がラッチされていれば、乱数値レジスタ559Aから内部抽選用の乱数値を読み出す(Sm14)ようになっており、これら以外の処理は行われない。Sm14のステップにおいて乱数値レジスタ559から内部抽選用の乱数値が読み出されると乱数ラッチフラグレジスタがクリアされ、新たな数値データの取込が許可されることとなる。また、Sm14のステップにおいては、内部抽選用の乱数値を読み出すものの、読み出した乱数値を用いる訳ではなく、スタートスイッチ7の操作に応じて新たな乱数値の取込を可能とするためにダミーとして読み出すものである。
そしてこの待機状態のまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメイン制御部41は動作停止する。また、この待機状態において、電圧が低下せずにユーザリセット信号が入力されると前述した起動処理(メイン)がユーザモードから実行され、RAM507の格納データが正常であれば、元の処理に復帰することとなる。
このように本実施例のメイン制御部41は、システムリセットであるかユーザリセットであるかに関わらず、RAM507へのアクセスが許可された後、他の処理を行なうことなく、まず、RAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し、その後、計算したRAMパリティから格納データが正常か否かの判定を行なう前に、RAM507の格納データが正常か否かに関わらず共通して行なう必要のある処理を行い、その後、RAMパリティに基づいてRAM507の格納データが正常か否かの判定を行なうようになっている。
このため、これらRAM507の格納データが正常か否かに関わらず共通して行なう必要のある処理を、RAM507の格納データが正常と判定された場合と異常と判定された場合とで個別に実行する必要がないため、起動時の処理に用いるプログラム容量を削減することができる。
また、メイン制御部41の起動後、RAM507へのアクセスが許可された後、他の処理を行なう前にRAMパリティの計算が行われるので、RAM507に対して何らのアクセスも行われる前の状態で算出されたRAMパリティに基づいて格納データが正常か否かの判断が行われるため、データが正常か否かの判定の信頼性を高めることができる。
また、電断処理において、RAM507の未使用領域及び未使用スタック領域を含む全てのデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM507における未使用領域及び未使用スタック領域を含む全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否かを判定することで、RAM507のデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行なうことができるうえに、未使用領域や未使用スタック領域に不正なプログラムやデータが格納された場合でも、これら不正なプログラムやデータが格納されたまま復帰してしまうことを防止できる。
また、RAMパリティを計算した後、計算したRAMパリティから格納データが正常か否かの判定を行なう前に、RAM507の格納データが正常か否かに関わらず共通して行なう処理として、RAM507に格納されている各スイッチ入力データ、確定データ、エッジデータ、すなわち各スイッチの検出状況を示すデータをクリアするようになっており、メイン制御部41の起動時においてRAM507のデータが正常であり、以前の制御状態に復帰させる場合でも以前の制御状態には復帰させない場合でも、割込が許可された後、速やかにスイッチの検出状態のチェックを開始することが可能となる。
この変形例のスロットマシン1におけるメイン制御部41は、システムリセット時、すなわち電源投入などに伴いシステムリセット信号が入力されたときに、CPU505がROM506などに記憶されているセキュリティチェックプログラム506Aを読み出して実行することにより、セキュリティモードとなる。
このときには、セキュリティチェックプログラム506Aに対応した処理としてセキュリティチェック処理が実行される。ここで、メイン制御部41がセキュリティモードとなるセキュリティ時間は、ROM506のプログラム管理エリアに記憶されているセキュリティ時間設定KSESのビット番号[2−0]やビット番号[4−3]に予め格納されたビット値に応じて、一定の固定時間とは異なる時間成分を含むことができる。
たとえば、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であれば、図10(D)に示す設定内容に対応して、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値であれば、図10(C)に示すショートモード又はロングモードに対応して、システムリセットや電源投入がなされるごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。
こうして設定されたセキュリティ時間が経過するまでは、ROM506に記憶されているユーザプログラムの実行が開始されない。そして、乱数回路509による乱数値となる数値データの生成動作も、メイン制御部41がセキュリティモード中である期間では、開始されないようにすれば良い。これにより、電源投入等のシステムリセットによる動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
一例として、スロットマシン1の機種毎に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を異なる値に設定する。この場合には、セキュリティモードの延長時間を、スロットマシン1の機種毎に異ならせることができ、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“01”又は“10”に設定することにより、可変設定時間を、システムリセット毎に異ならせることができる。これにより、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することは著しく困難になる。
なお、図72では、Sm7’以降において、電圧が低下してCPU505が停止するか、ユーザリセット信号が入力されて再起動するか、の待機状態に移行する例について説明したが、たとえば、Sm7’以降において、図38と同様に電圧低下信号が入力されなくなったときに起動時処理に移行(すなわち瞬停復帰)するようにしてもよい。この場合においても、Sm7’以降において瞬停復帰するまでの間においてSm13およびSm14が実行される。これによっても、瞬停復帰して遊技制御の実行が開始されるときには、すでにステップSm14の処理において、乱数値レジスタから数値データが読出されて、各乱数ラッチフラグをオフ状態に設定することができる。これにより、電源遮断が発生したときの電源電圧が不安定な状態で誤って乱数値レジスタに格納された数値データが、乱数値として取得されてしまうことを防止できる。
(8) 前述した実施の形態における図38のSm9〜Sm11の処理は、瞬停時に実行されるものであれば、Sm8においてNOと判定されたときに実行されるものに限らず、Sm2においてNOと判定されたときに実行するものであってもよい。
(9) 前述した実施の形態においては、図25においてSa206の処理を実行するとともに、図38においてSm9〜Sm12の処理を実行する例について説明した。しかし、これに限らず、図25においてSa206の処理を実行し、図38においてSm9〜Sm12の処理を実行しないように構成してもよく、図25においてSa206の処理を実行せずに、図38においてSm9〜Sm12の処理を実行するように構成してもよい。これによっても、前述したように電源電圧が不安定な状態で誤って乱数値レジスタに格納された数値データが、乱数値として取得されてしまうことを防止できる。
(10) 前述した実施の形態においては、有利度を設定するための設定値が、入賞の発生を許容する旨が決定される確率(当選率)を特定する値である例について説明した。しかし、設定値は、遊技者にとっての有利度を異ならせるものであればよく、たとえば、当選状況に応じた情報が報知されるナビ演出を実行、あるいは当該ナビ演出を実行するアシストタイム(AT)に制御するスロットマシンにおいては、当該ナビ演出を実行する確率、あるいはATに制御する確率を特定する値であってもよい。また、特定の図柄組合せにより、再遊技役の当選確率が向上するリプレイタイム(RT)に制御するスロットマシンにおいては、当該RTに制御する確率を特定する値であってもよい。このように、設定値に応じて遊技者にとっての有利度が異なるものであれば、当選率が同じであってもよい。
また、パチンコ機に適用した場合、有利度を設定するための設定値は、大当りに当選する確率を特定する値であってもよい。また、遊技者にとって有利度が異なる当りの種類が複数種類(大当り、中当り、小当り)設けられているパチンコ機においては、設定値が、当りの種類毎に当選する確率を特定する値であってもよく、いずれかの当りに当選する合計確率を特定する値であってもよい。また、大当りとなる確率が向上する確率変動状態に制御するパチンコ機においては、設定値が、確率変動状態に制御する確率を特定する値であってもよい。
(11) 前述した実施の形態においては、電源投入時において、設定キースイッチ37がON状態であるか否かを判定し、ON状態であるときにドア開放検出スイッチ25に基づき、前面扉1bが開放状態であるか否かを判定し、閉鎖状態であれば設定変更状態に移行させることなく不能動化させる例について説明した。しかし、前面扉1bが開放状態であるか否かを判定するタイミングは、これにかぎらず、たとえば、電源投入された後、設定キースイッチ37がON状態であるか否かを判定するまでのタイミングであってもよい。具体的には、図23におけるSa11やSa31の処理が行なわれるまでに、前面扉1bが開放状態であるか否かを判定し、前面扉1bが開放状態であるときにはSa11やSa31の処理に移行可能とし、前面扉1bが閉鎖状態であるときにはSa11やSa31の処理に移行させないことにより設定変更状態に制御されないように構成してもよい。これによっても、不正行為によって設定変更操作が行なわれたときには設定変更状態に制御させないようにすることができる。
(12) 前述した実施の形態においては、図30のBET処理において、設定キースイッチ37がON状態であることを条件として、設定確認処理が行なわれる例について説明した。これに関連して、図30のBET処理において、設定キースイッチ37がON状態であるときに、前面扉1bが開放状態であるか否かを判定して、前面扉1bが開放状態であるときには設定確認処理に移行可能とし、前面扉1bが閉鎖状態であるときには設定確認処理に移行させない(たとえば図30のSe19でNOと判定されたときと同じ)ように構成してもよい。さらに、前面扉1bが閉鎖状態であるときには、設定確認処理に移行させないことに加えて、不能動化するための処理(図23のSa27c、図69のSa27c’参照)を実行するようにしてもよい。これにより、不正行為によって設定キースイッチ37がON状態となり設定確認操作が行なわれたときには、設定確認処理に制御させず、設定確認できないようにすることができる。
(13) なお、今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 スロットマシン、2L、2C、2R リール、6 MAXBETスイッチ、7 スタートスイッチ、8L、8C、8R ストップスイッチ、41 メイン制御部、91 サブ制御部、505 CPU、506 ROM、507 RAM、509 乱数回路、559A 乱数値レジスタ。

Claims (10)

  1. 遊技者に対する有利度を変更可能な遊技機であって、
    開閉可能に設けられた開閉体と、
    前記開閉体が開放状態であるときに操作可能となる操作手段と、
    前記開閉体の開閉状態を検出する開閉状態検出手段と、
    前記操作手段の操作状態が特定操作状態となったときの前記開閉体の開閉状態を、前記開閉状態検出手段の検出結果に基づいて判定する特定時判定手段と、
    前記特定時判定手段により前記開閉体が開放状態であると判定されたときに、複数種類の設定値のうちからいずれかの設定値を選択することで前記有利度を変更可能な設定変更状態に制御し、前記開閉体が開放状態でないと判定されたときには、前記設定変更状態に制御しない状態制御手段とを備え、
    前記状態制御手段は、前記設定変更状態に制御した後においては、当該設定変更状態における前記開閉状態検出手段の検出結果に関わらず、所定の設定終了条件が成立するまで当該設定変更状態を維持することを特徴とする、遊技機。
  2. 前記操作手段は、一方側に設けられ、
    前記開閉状態検出手段は、前記操作手段と異なる側に設けられていることを特徴とする、請求項1に記載の遊技機。
  3. 前記操作手段と異なり、遊技者により操作可能な遊技操作手段と、
    前記状態制御手段を含む手段であって、前記遊技操作手段の操作に応じて遊技の進行制御を行なうとともに、該遊技の進行制御に基づく制御情報を送信する遊技制御手段と、
    前記遊技制御手段から受信した制御情報に基づいて演出の制御を行なう演出制御手段と、を備え、
    前記遊技制御手段は、
    前記設定変更状態が開始したときに設定変更開始制御情報を前記演出制御手段に対して送信する設定変更開始制御情報送信手段と、
    前記遊技操作手段のうちの特定の遊技操作手段が遊技の進行制御に関与する関与制御状態に制御する関与制御手段と、
    前記関与制御状態以外の制御状態において、前記特定の遊技操作手段の操作状態を示す操作制御情報を前記演出制御手段に対して送信する操作制御情報送信手段と、
    前記特定の遊技操作手段の操作に関与することなく、前記状態制御手段により制御される前記設定変更状態において有利度を変更するための変更制御を行なう有利度変更制御手段と、を含み、
    前記操作制御情報送信手段は、前記設定変更状態においても前記操作制御情報を前記演出制御手段に対して送信し、
    前記演出制御手段は、
    前記遊技制御手段から受信した前記操作制御情報に基づいて操作演出を実行する操作演出実行手段と、
    前記設定変更開始制御情報を受信したことに基づいて、前記演出制御手段が管理する管理情報にアクセス可能な管理者用状態に制御する管理者用状態制御手段と、
    前記管理者用状態において前記遊技制御手段から受信した前記操作制御情報に基づいて管理者用制御を行う管理者用制御手段と、を含むことを特徴とする、請求項1または請求項2に記載の遊技機。
  4. 表示状態を変化させることが可能な可変表示装置と、
    前記可変表示装置の表示結果として特定表示結果が導出されたことに基づいて、遊技者にとって有利な状態に制御する有利制御手段と、
    数値データを更新する数値更新手段と、
    前記可変表示装置において表示状態を変化させた後に表示結果を導出させる可変表示を行なうための可変表示条件が成立したときに、前記数値更新手段によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域に格納する乱数抽出手段と、
    前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段により新たな数値データが格納されることがなく、該第1の数値データ格納領域に格納されている数値データを保持する数値データ保持手段と、
    一定時間毎に、前記第1の数値データ格納領域に数値データが格納されているか否かを判定する数値データ格納判定手段と、
    前記数値データ格納判定手段が前記第1の数値データ格納領域に数値データが格納されていると判定したときに、前記第1の数値データ格納領域に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域とは異なる第2の数値データ格納領域に格納する数値データ読出手段と、
    前記可変表示装置において表示状態の変化を開始させるときに、選択されている設定値から特定される確率にしたがって、前記第2の数値データ格納領域に格納された数値データを用いて前記特定表示結果の導出を許容するか否かを決定する事前決定手段と、を備えることを特徴とする、請求項1〜請求項3のいずれかに記載の遊技機。
  5. 表示状態を変化させることが可能な可変表示装置と、
    前記可変表示装置の表示結果として特定表示結果が導出されたことに基づいて、遊技者にとって有利な状態に制御する有利制御手段と、
    数値データを更新する数値更新手段と、
    前記可変表示装置において表示状態を変化させた後に表示結果を導出させる可変表示を行なうための可変表示条件が成立したときに、前記数値更新手段によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域に格納する乱数抽出手段と、
    前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段により新たな数値データが格納されることがなく、該第1の数値データ格納領域に格納されている数値データを保持する数値データ保持手段と、
    前記第1の数値データ格納領域に数値データが格納されたときに割込を発生させる割込発生手段と、
    前記割込発生手段が前記割込を発生させたことに応じて、前記第1の数値データ格納領域に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域とは異なる第2の数値データ格納領域に格納する数値データ読出手段と、
    前記可変表示装置において表示状態の変化を開始させるときに、選択されている設定値から特定される確率にしたがって、前記第2の数値データ格納領域に格納された数値データを用いて前記特定表示結果の導出を許容するか否かを決定する事前決定手段と、を備えることを特徴とする、請求項1〜請求項3のいずれかに記載の遊技機。
  6. 遊技の進行制御が開始されるときに、前記数値データ保持手段による数値データの保持を解除する保持解除手段を備えることを特徴とする、請求項4または請求項5に記載の遊技機。
  7. 遊技機への電力供給に基づいて生成された所定電源電圧を監視し、該所定電源電圧が低下したことに基づいて検出信号を出力する電源監視手段と、
    前記電源監視手段から前記検出信号が出力されてから一定時間経過したときに起動命令を行なう起動命令手段とを備え、
    前記保持解除手段は、前記電源監視手段から前記検出信号が出力された後、電力供給が停止するのを待機している期間において、前記数値データ保持手段による数値データの保持を解除することを特徴とする、請求項4〜請求項6のいずれかに記載の遊技機。
  8. 前記特定時判定手段により前記開閉体が開放状態でないと判定されたときに、遊技の進行を不能動化する不能動化手段を備えることを特徴とする、請求項1〜請求項7のいずれかに記載の遊技機。
  9. 遊技の進行制御を行なうとともに、該遊技の進行制御に基づく制御情報を送信する遊技制御手段と、
    前記遊技制御手段から受信した制御情報に基づいて演出の制御を行なう演出制御手段と、を備え、
    前記演出制御手段は、
    遊技機への電力供給に基づいて生成された所定電源電圧が低下したことを条件として、演出状態を特定するための演出情報を記憶する記憶手段と、
    電力供給が再開されたときに該記憶した演出情報から特定される演出状態で演出を再開する再開手段とを含み、
    前記遊技制御手段は、前記設定変更状態が開始したときに設定変更開始制御情報を前記演出制御手段に対して送信し、
    前記再開手段は、電力供給が再開した場合において前記設定変更開始制御情報を受信したときには、前記記憶した演出情報に基づき特定される演出状態で演出を再開せず、当該演出情報を消去することを特徴とする、請求項1〜請求項8のいずれかに記載の遊技機。
  10. 表示状態を変化させることが可能な可変表示装置と、
    前記可変表示装置の表示結果として特定表示結果が導出されたことに基づいて、遊技者にとって有利な状態に制御する有利制御手段と、
    選択されている設定値から特定される確率にしたがって、前記特定表示結果の導出を許容するか否かを決定する事前決定手段と、
    前記特定表示結果の導出を許容する旨が決定され、前記特定表示結果が導出されなかったときに当該特定表示結果の導出を許容する旨の決定を次ゲーム以降に持ち越す持越手段と、
    前記持越手段により前記特定表示結果の導出を許容する旨の決定が持ち越されている場合において、前記操作手段の操作状態が前記特定操作状態となったときには、当該特定表示結果の導出を許容する旨の決定を消去する消去手段とを備えることを特徴とする、請求項1〜請求項9のいずれかに記載の遊技機。
JP2010048429A 2010-03-04 2010-03-04 遊技機 Active JP5618050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010048429A JP5618050B2 (ja) 2010-03-04 2010-03-04 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010048429A JP5618050B2 (ja) 2010-03-04 2010-03-04 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014169736A Division JP5940609B2 (ja) 2014-08-22 2014-08-22 遊技機

Publications (2)

Publication Number Publication Date
JP2011182839A true JP2011182839A (ja) 2011-09-22
JP5618050B2 JP5618050B2 (ja) 2014-11-05

Family

ID=44789845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010048429A Active JP5618050B2 (ja) 2010-03-04 2010-03-04 遊技機

Country Status (1)

Country Link
JP (1) JP5618050B2 (ja)

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015123151A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2015123150A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2015123149A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2018015634A (ja) * 2017-11-01 2018-02-01 株式会社三共 スロットマシン
JP2019025009A (ja) * 2017-07-31 2019-02-21 株式会社大一商会 遊技機
JP2019025010A (ja) * 2017-07-31 2019-02-21 株式会社大一商会 遊技機
JP2019058518A (ja) * 2017-09-27 2019-04-18 株式会社ソフイア 遊技機
JP2019068888A (ja) * 2017-10-06 2019-05-09 株式会社ソフイア 遊技機
JP2019076130A (ja) * 2017-10-20 2019-05-23 株式会社ソフイア 遊技機
JP2019076422A (ja) * 2017-10-25 2019-05-23 株式会社ソフイア 遊技機
JP2019093261A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093258A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093263A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093259A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093262A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093264A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093260A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093257A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019097706A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP2019097707A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP2019097710A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP2019208599A (ja) * 2018-05-31 2019-12-12 サミー株式会社 ぱちんこ遊技機
JP2019208596A (ja) * 2018-05-31 2019-12-12 サミー株式会社 ぱちんこ遊技機
JP2020039806A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039817A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039803A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039805A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039820A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039819A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039818A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039804A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108511A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108524A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108529A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108527A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108528A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020130285A (ja) * 2019-02-14 2020-08-31 株式会社ソフイア 遊技機
JP2020146546A (ja) * 2020-06-16 2020-09-17 株式会社ユニバーサルエンターテインメント 遊技機
JP2020171793A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP2020171794A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP2020171792A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP2021154174A (ja) * 2017-10-25 2021-10-07 株式会社ソフイア 遊技機
JP2022016480A (ja) * 2018-04-02 2022-01-21 株式会社ユニバーサルエンターテインメント 遊技機
JP2022031365A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP2022031558A (ja) * 2017-10-11 2022-02-18 株式会社三洋物産 遊技機
JP2022031366A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP2022031364A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP7068726B1 (ja) 2021-01-12 2022-05-17 株式会社大都技研 遊技台
JP7160424B1 (ja) 2022-06-14 2022-10-25 株式会社大都技研 遊技台
JP7383879B2 (ja) 2018-12-28 2023-11-21 株式会社三洋物産 遊技機
JP7383878B2 (ja) 2018-12-28 2023-11-21 株式会社三洋物産 遊技機

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5940265B2 (ja) * 2011-08-23 2016-06-29 株式会社三共 遊技機
JP5940609B2 (ja) * 2014-08-22 2016-06-29 株式会社三共 遊技機
JP5940625B2 (ja) * 2014-10-23 2016-06-29 株式会社三共 遊技機
JP6026032B2 (ja) * 2016-03-11 2016-11-16 株式会社三共 遊技機
JP6026029B2 (ja) * 2016-03-11 2016-11-16 株式会社三共 遊技機
JP6680439B2 (ja) * 2016-06-27 2020-04-15 サミー株式会社 遊技機
JP6901673B2 (ja) * 2016-06-27 2021-07-14 サミー株式会社 スロットマシン
JP6680440B2 (ja) * 2016-06-27 2020-04-15 サミー株式会社 遊技機

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005137817A (ja) * 2003-11-10 2005-06-02 Olympia:Kk 遊技機
JP2005319050A (ja) * 2004-05-07 2005-11-17 Sankyo Kk 遊技機
JP2006061510A (ja) * 2004-08-27 2006-03-09 Sankyo Kk 遊技機
JP2007252557A (ja) * 2006-03-23 2007-10-04 Olympia:Kk 遊技機
JP2007307138A (ja) * 2006-05-18 2007-11-29 Sankyo Kk スロットマシン
JP2008132246A (ja) * 2006-11-29 2008-06-12 Yamasa Kk スロットマシン
JP2008148947A (ja) * 2006-12-18 2008-07-03 Samii Kk 遊技機
JP2010022605A (ja) * 2008-07-18 2010-02-04 Sankyo Co Ltd スロットマシン
JP4415057B1 (ja) * 2008-11-12 2010-02-17 株式会社大都技研 遊技台

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005137817A (ja) * 2003-11-10 2005-06-02 Olympia:Kk 遊技機
JP2005319050A (ja) * 2004-05-07 2005-11-17 Sankyo Kk 遊技機
JP2006061510A (ja) * 2004-08-27 2006-03-09 Sankyo Kk 遊技機
JP2007252557A (ja) * 2006-03-23 2007-10-04 Olympia:Kk 遊技機
JP2007307138A (ja) * 2006-05-18 2007-11-29 Sankyo Kk スロットマシン
JP2008132246A (ja) * 2006-11-29 2008-06-12 Yamasa Kk スロットマシン
JP2008148947A (ja) * 2006-12-18 2008-07-03 Samii Kk 遊技機
JP2010022605A (ja) * 2008-07-18 2010-02-04 Sankyo Co Ltd スロットマシン
JP4415057B1 (ja) * 2008-11-12 2010-02-17 株式会社大都技研 遊技台

Cited By (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015123150A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2015123149A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2015123151A (ja) * 2013-12-25 2015-07-06 株式会社三共 スロットマシン
JP2019025009A (ja) * 2017-07-31 2019-02-21 株式会社大一商会 遊技機
JP2019025010A (ja) * 2017-07-31 2019-02-21 株式会社大一商会 遊技機
JP2019058518A (ja) * 2017-09-27 2019-04-18 株式会社ソフイア 遊技機
JP2019068888A (ja) * 2017-10-06 2019-05-09 株式会社ソフイア 遊技機
JP2022031558A (ja) * 2017-10-11 2022-02-18 株式会社三洋物産 遊技機
JP2019076130A (ja) * 2017-10-20 2019-05-23 株式会社ソフイア 遊技機
JP2019076422A (ja) * 2017-10-25 2019-05-23 株式会社ソフイア 遊技機
JP2021154174A (ja) * 2017-10-25 2021-10-07 株式会社ソフイア 遊技機
JP7121427B2 (ja) 2017-10-25 2022-08-18 株式会社ソフイア 遊技機
JP2018015634A (ja) * 2017-11-01 2018-02-01 株式会社三共 スロットマシン
JP2019097706A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP2019097707A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP7239129B2 (ja) 2017-11-29 2023-03-14 株式会社ソフイア 遊技機
JP6989949B2 (ja) 2017-11-29 2022-01-12 株式会社ソフイア 遊技機
JP2019097710A (ja) * 2017-11-29 2019-06-24 株式会社ソフイア 遊技機
JP2022031365A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP2022031366A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP2022016480A (ja) * 2018-04-02 2022-01-21 株式会社ユニバーサルエンターテインメント 遊技機
JP2022031364A (ja) * 2018-04-02 2022-02-18 株式会社ユニバーサルエンターテインメント 遊技機
JP7281220B2 (ja) 2018-04-02 2023-05-25 株式会社ユニバーサルエンターテインメント 遊技機
JP7189414B2 (ja) 2018-05-31 2022-12-14 サミー株式会社 ぱちんこ遊技機
JP2019208599A (ja) * 2018-05-31 2019-12-12 サミー株式会社 ぱちんこ遊技機
JP2019208596A (ja) * 2018-05-31 2019-12-12 サミー株式会社 ぱちんこ遊技機
JP7189415B2 (ja) 2018-05-31 2022-12-14 サミー株式会社 ぱちんこ遊技機
JP2020039817A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP7202601B2 (ja) 2018-09-13 2023-01-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039818A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039804A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039819A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039806A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039803A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039805A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP2020039820A (ja) * 2018-09-13 2020-03-19 株式会社ユニバーサルエンターテインメント 遊技機
JP7383878B2 (ja) 2018-12-28 2023-11-21 株式会社三洋物産 遊技機
JP7383879B2 (ja) 2018-12-28 2023-11-21 株式会社三洋物産 遊技機
JP2020108529A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP7218902B2 (ja) 2019-01-04 2023-02-07 株式会社ユニバーサルエンターテインメント 遊技機
JP7218899B2 (ja) 2019-01-04 2023-02-07 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108528A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108527A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP7218898B2 (ja) 2019-01-04 2023-02-07 株式会社ユニバーサルエンターテインメント 遊技機
JP7218900B2 (ja) 2019-01-04 2023-02-07 株式会社ユニバーサルエンターテインメント 遊技機
JP7218901B2 (ja) 2019-01-04 2023-02-07 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108524A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020108511A (ja) * 2019-01-04 2020-07-16 株式会社ユニバーサルエンターテインメント 遊技機
JP2020130285A (ja) * 2019-02-14 2020-08-31 株式会社ソフイア 遊技機
JP7127837B2 (ja) 2019-02-14 2022-08-30 株式会社ソフイア 遊技機
JP2019093260A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093257A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093261A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093258A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093263A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093259A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093262A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP2019093264A (ja) * 2019-03-28 2019-06-20 株式会社ニューギン 遊技機
JP7076498B2 (ja) 2020-06-16 2022-05-27 株式会社ユニバーサルエンターテインメント 遊技機
JP2020146546A (ja) * 2020-06-16 2020-09-17 株式会社ユニバーサルエンターテインメント 遊技機
JP2020171794A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP2020171793A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP2020171792A (ja) * 2020-07-27 2020-10-22 株式会社ニューギン 遊技機
JP7125777B2 (ja) 2020-07-27 2022-08-25 株式会社ニューギン 遊技機
JP7125778B2 (ja) 2020-07-27 2022-08-25 株式会社ニューギン 遊技機
JP7125776B2 (ja) 2020-07-27 2022-08-25 株式会社ニューギン 遊技機
JP7068726B1 (ja) 2021-01-12 2022-05-17 株式会社大都技研 遊技台
JP2022107964A (ja) * 2021-01-12 2022-07-25 株式会社大都技研 遊技台
JP7160424B1 (ja) 2022-06-14 2022-10-25 株式会社大都技研 遊技台
JP2023182147A (ja) * 2022-06-14 2023-12-26 株式会社大都技研 遊技台

Also Published As

Publication number Publication date
JP5618050B2 (ja) 2014-11-05

Similar Documents

Publication Publication Date Title
JP5618050B2 (ja) 遊技機
JP5618051B2 (ja) 遊技機
JP5706624B2 (ja) 遊技機
JP6129112B2 (ja) 遊技機
JP2011224169A (ja) スロットマシン
JP2011194157A (ja) 遊技機
JP2011188944A (ja) 遊技機
JP6023747B2 (ja) 遊技機
JP6023746B2 (ja) 遊技機
JP2016137351A (ja) 遊技機
JP5937640B2 (ja) 遊技機
JP6129113B2 (ja) 遊技機
JP6023748B2 (ja) 遊技機
JP5940609B2 (ja) 遊技機
JP5940610B2 (ja) 遊技機
JP5706627B2 (ja) スロットマシン
JP5543248B2 (ja) スロットマシン
JP6026029B2 (ja) 遊技機
JP6026030B2 (ja) 遊技機
JP5543243B2 (ja) 遊技機
JP5543249B2 (ja) 遊技機
JP5543244B2 (ja) 遊技機
JP5706625B2 (ja) スロットマシン
JP5706628B2 (ja) 遊技機
JP5543246B2 (ja) スロットマシン

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140411

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: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140902

R150 Certificate of patent or registration of utility model

Ref document number: 5618050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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